Math-BigInt-2.005003/0000755403072340010010000000000014776770432013755 5ustar OSPJADomain UsersMath-BigInt-2.005003/BUGS0000644403072340010010000000426614546553333014442 0ustar OSPJADomain UsersFor an updated list of bugs, see https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt The following list is not up to date: Known bugs and limitations: * TODO BUGS: + implement test for the upgrading bug in bsub() * NaN handling in comparisons slightly broken. See also [perl #33106]. * General: + BigInt can not the IEEE '-0'. Currently there are no plans to add this. If you need it, please bug the author(s) about it. * BigFloat: + comparing (<=> or == or !=) a BigFloat to a BigInt don't work yet + new is first running the entire number trough _split, then again the parts to construct BigInts. Could be a bit more optimized. + fdiv() using F (fallback) mode does not work properly in all cases of local (aka $x's or $y's) A or P settings. Not definite test case yet, but it might calculate not enough digits to satisfy the rounding needs. * BigInt: + exponent on input is limited to a Perl int (bigger numbers won't fit into your memory, anyway - use BigFloat) + doesn't have a mode akin to 'use integer;', e.g. it always emulates Perl (this is solved partially by use bigint ;) + Handling of undef arguments is somewhat broken (no proper warnings) + eval('use...') and use Math::BigInt qw/:constant/ fail on Perl prior 5.6.0 This is likely an Exporter bug, and causes Math::BigInt to eval require on earlier Perls when loading the core math lib. Thus the loading can fail under older Perls on filesystems that can not cope with the 'Math/BigInt/Calc.pm'-style filenames. * BigRat: + BigRat does not handle modify() yet or in a very incomplete manner + There are probably many... rats. + inf handling (partial) + NaN handling (partial) + rounding (not implemented except for bceil/bfloor) + $x ** $y where $y is not an integer + bmod(), blog(), bmodinv() and bmodpow() (partial) ############################################################################### Mixing of classes does not always work like expected. "use bignum;", "use bigint;", "use bigfloat", and "use bigrat;" should solve this problem for most cases. Please send me test-reports, your experiences with this and your ideas - I love to hear about my work! Math-BigInt-2.005003/CHANGES0000644403072340010010000036363714776675370014777 0ustar OSPJADomain Users2.005003 2025-04-13 * Add new methods to_fp80() and from_fp80() for encoding and decoding values in the x86 extended-precision 80 bit format. 2.005002 2025-03-28 * Fix the handling of read-only objects in bblsft() and bbrsft() in Math::BigFloat and Math::BigRat. 2.005001 2025-03-25 New: * Add new method bperm() to Math::BigInt, Math::BigFloat, and Math::BigRat. * Add the following methods to Math::BigRat and Math::BigFloat: bilog2(), bilog10(), bclog2(), bclog10(), bfib(), blucas(), from_bytes(), from_base(), to_bytes(), to_ieee754() * Add method bmuladd(), bgcd(), and blcm() to Math::BigRat. * Add method bpi() to Math::BigRat. It returns a rational approximation of PI accurate to the specified accuracy or precision, or the default accuracy if no accuracy is specified. * Add methods bdstr(), bnstr(), and bestr() to Math::BigRat. * Add support for rounding in Math::BigFloat methods bdstr(), bestr(), bnstr(), and bestr(). * Add method from_ieee754() to Math::BigInt and Math::BigRat, including documentation. In Math::BigInt, from_ieee754() is similar to the other from_xxx() methods in that way that it returns a NaN if the input is a finite non-integer. * Add new backend library method _scmp() for doing signed comparison. Changes/Improvements: * Method new() now always returns a new object, as would be expected. * Make bgcd() in Math::BigRat and Math::BigFloat support non-integer arguments. Now, bgcd(0.8, 1.2) in Math::BigFloat returns 0.4, and bgcd(4/5, 6/5) in Math::BigRat returns 2/5. * Make blcm(0, 0) work the same way in Math::BigInt, Math::BigRat, and Math::BigFloat. Now blcm(0, 0) is always 0. * Correct the documentation for is_inf(), bceil() and bfloor() * Methods bdiv() and bmod() are now aliases to bfdiv() and bfmod(), respectively. (This doesn't change the behaviour of bdiv() and bmod().) * Math::BigFloat methods bfmod() and btmod() are faster than before. * Improve documentation for bnok(). * Improve upgrading and downgrading, e.g., use $class->upgrade() rather than just $upgrade, since the former works better for sublasses. Fixes: * Add missing calls to modify(). * All boolean methods now return 1 or 0. Some would return 1 or "". * Harmonise methods in different classes so they behave similarly, at least to the extent possible. * Fix bug in Math::BigInt->bfib() causing sign to be incorrect for some of the output values when bfib() was called in list context with a negative input. * Correct miscellaneous typos and errors in the documentation. 2.004001 2025-02-12 * Improve upgrading and downgrading. - Upgrading and downgrading is more consistent. - Upgrading and downgrading now keeps the reference, so in the following example, $x changes from being a Math::BigInt with a value of 2 to a Math::BigFloat with the value 1.4142... perl -Mbignum -le '$x = 2; $x -> bsqrt(); print $x' * Fix bug in Math::BigFloat->bdiv(): in list context, bdiv() would do floored division, except when the denominator was 1. Now, bdiv() always does floored division. 2.003004 2025-01-23 * Fix CPAN RT #150252 regarding bdiv() not modifying the invocand object when upgrading/downgrading is enabled. * Add hyperoperator method bhyperop(). This method implements succession, addition, multiplication, exponentiation, tetration, pentation ...). 2.003003 2024-05-27 * Fix CPAN RT #153736 regarding bnok() with large input values. 2.003002 2024-01-05 * Improved interaction between Math::BigInt and the backend libraries. * Much faster versions of _ilog2() and _clog2() implemented in the Math::BigInt::Calc backend library. This should speed up bilog2() and bclog2() in Math::BigInt when "Calc" is used as the backend liberary. 2.003001 2023-12-26 * Add configuration methods trap_inf() and trap_nan(). Previously it was only possible to modify these properties by using the config() method. * Fix CPAN RT #150796 so that config() no longer modifies the input when it is a hash ref. * Fix CPAN RT #150797 so that both accuracy and precision can be set simultaneously with config(). * Add the following methods to Math::BigInt - bilog2() base 2 logarithm rounded downwards, i.e., int(log2(x)) - bilog10() base 10 logarithm rounded downwards, i.e., int(log10(x)) - bclog2() base 2 logarithm rounded upwards, i.e., ceil(log2(x)) - bclog10() base 10 logarithm rounded upwards, i.e., ceil(log10(x)) * Add the following backend library methods to Math::BigInt::Lib. These methods do the core computations for the corresponding methods in Math::BigInt (see above). - _ilog2() base 2 logarithm rounded downwards - _ilog10() base 10 logarithm rounded downwards - _clog2() base 2 logarithm rounded upwards - _clog10() base 10 logarithm rounded upwards 2.002001 2023-12-09 * Fix CPAN RT #150523 2.002000 2023-12-02 * Fix bug in Math::BigFloat method bsin(). It can now handle any argument to any precision. Also improve downgrading. This fixes CPAN RT #150590 and the bsin() part of CPAN RT #107604. * Fix bug in Math::BigFloat method bexp(). Specifying precision (rather than accuracy) used to give a NaN. Also improve downgrading. * Improve upgrading in Math::BigInt methods bsin() and bcos(). They now upgrade only when necessary. 2.001001 2023-11-21 * Fix CPAN RT #150469 2.001000 2023-11-13 * Fix rounding bug in bsqrt() in Math::BigInt. Also make bsqrt() upgrade only when necessary. * Simplify and speed up bsqrt() (for computing the square root) in Math::BigFloat. The computation time now mainly depends on the desired accuracy, not the number of digits in the significand. * Add support for using "div_scale" as import parameter, like this use Math::BigFloat div_scale => 80; * Add better argument checking when the "div_scale" value is set by the user. 2.000000 2023-10-29 * Merge the Math-BigRat distribution into the Math-BigInt distribution. This merge eliminates the problems that users have experienced when incompatible versions of the two distributions have been installed. This fixes CPAN RT #143228. * Add method from_dec() to Math::BigRat to make Math::BigRat more consistent with Math::BigInt and Math::BigFloat. * To be consistent with Math::BigInt and Math::BigFloat, make it possible to use "require" with Math::BigRat, e.g., require Math::BigRat; $x = Math::BigRat -> bone(); * Fix cases where "require" doesn't work for Math::BigInt and Math::BigFloat, and add tests to verify that "require" works for Math::BigInt, Math::BigRat, and Math::BigFloat. * Add methods bblsft() and bbrsft() to Math::BigRat to make Math::BigRat consistent with Math::BigInt and Math::BigFloat. These methods do bitwise left and right shift, respectively. * Fix bug in to_oct() and to_bin() in Math::BigFloat. They called to_hex() when upgrading, but should have called to_oct() and to_bin(), respectively. * Add to_hex(), to_oct(), to_bin() to Math::BigRat. * Add new method binv() to Math::BigInt, Math::BigFloat, and Math::BigRat. * Improve as_float() and as_rat(). * POD updates. 1.999842 2023-09-27 * Fix a bug causing Math::BigInt and Math::BigFloat to be caught in an endless recursion. The bug was introduced when trying to fix https://github.com/pjacklam/p5-Math-BigInt/issues/8 * Allow div_scale to be 0. It is not documented what div_scale <= 0 means, but there are modules that set div_scale to 0 (e.g., Astro::Units) and fail their tests if this is not supported. 1.999841 2023-09-21 * Remove development files that were accidentally included in the distribution. 1.999840 2023-09-18 * Add methods bblsft() and bbrsft(), which do bitwise left and right shift, respectively. The binary operators for bitwise left and right shift, "<<" and ">>", now call the methods bblsft() and bbrsft(), respectively. While this behaviour is consistent with how "<<" and ">>" work on floating point numbers in core Perl, it changes how "<<" and ">>" worked on Math::BigFloat objects. This is a corner case, but any code currently using "<<" and ">>" on Math::BigFloat objects might need to be modified as follows $x >>= $y should be changed to $x -> brsft($y) $x <<= $y should be changed to $x -> blsft($y) $x >> $y should be changed to $x -> copy() -> brsft($y) $x << $y should be changed to $x -> copy() -> blsft($y) * Improve blsft() and brsft(). They now support negative shift values, an arbitrarily large base, and have better handling of cases involving NaN. 1.999839 2023-07-14 * Update documentation. Remove/update obsolete URLs. * Fix CPAN RT #148953 regarding loss of precision when using "log" in "bignum". The issue was related to broken upgrading and downgrading in Math::BigFloat. 1.999838 2023-03-30 * Fix CPAN RT #146411 regarding infinite recursion in bitwise operations. This happened when arguments were upgraded and downgraded and upgraded again ad infinitum. Add tests to verify the fix. 1.999837 2022-07-02 * Improve the interoperability between objects of different classes for the methods that are still used as functions. 1.999836 2022-06-24 * Improve compatibility with older versions of the Math-BigRat distribution. Math-BigInt version 1.999835 works with Math-BigRat version 0.2623 and newer. Math-BigInt version 1.999836 works with Math-BigRat version 0.2618 and newer. * Re-enable upgrading in Math::BigFloat->bdiv(). * Fix an error in the enabling/disabling of upgrading/downgrading. * Fix typos and other formatting errors. 1.999835 2022-05-24 * Fix bug related to upgrading in Math::BigInt->brsft(). This bug only showed up in Perl versions 5.16 and older. 1.999834 2022-05-23 * Further improvements to upgrading and downgrading. 1.999833 2022-05-23 * Fix Math::BigFloat->bpi(). The previous attempt at correcting it wasn't sufficient. Added test to verify the fix. * Correct the formatting in the CHANGES file. 1.999832 2022-05-21 * Improve as_int(), as_float(), and as_rat() so that they return a Math::BigInt, Math::BigFloat, and Math::BigRat, respectivly, regardless of upgrading and downgrading. * Improve stringification method bsstr() so that it handles upgrading and downgrading better. * Fix Math::BigFloat->bpi(), which unfortunately didn't handle downgrading. * Avoid unnecessary downgrading/upgrading. * Add missed cases where downgrading/upgrading should be performed. * Avoid unnecessary stringification. 1.999831 2022-05-16 * Further improvements to upgrading, downgrading, and rounding. * New stringification method bfstr() for representing numbers as fractions. E.g., Math::BigFloat -> new("1.25") -> bfstr() returns "5/4". * Miscellaneous bug fixes. * Fixed errors and typos in the documentation. 1.999830 2022-04-11 * Improve upgrading and downgrading. This work is not complete. Some methods still don't downgrade when they should. 1.999829 2021-12-29 * Improve methods div_scale() and round_mode() so they work better with subclasses. This fixes CPAN RT #125430. * Make div_scale() accept a Math::Big(Int|Float|Rat) object as input. This fixes CPAN RT #140599. 1.999828 2021-12-17 * Add new methods numerator(), denominator(), and fparts(). * Fix bug in to_ieee754(). Avoid that the significand overflows. * Improve bpow(). Avoid unnecessary upgrading. * Fix typos and improve wording. 1.999827 2021-10-03 * Improve error message for missing library argument. * Skip tests that don't work on older Perls. Also skip tests that compare floating point numbers. 1.999826 2021-10-01 * Improve documentation related to floating point literals. * Skip tests that fail due to Perl's broken handling of floating point literals before v5.32.0. 1.999825 2021-09-28 * Make Math::BigInt accept integers regardless of whether they are written as decimal, binary, octal, or hexadecimal integers or decimal, binary, octal, or hexadecimal floating point number. * When numeric constants are overloaded (with the ":constant" option) in Math::BigInt, every numeric constant that represent an integer is converted to an object regardless of how it is written. All finite non-integers are converted to a NaN. * When numeric constants are overloaded (with the ":constant" option) in Math::BigFloat, every numeric constant is converted to an object regardless of how it is written. * Add method from_dec() (cf. from_bin(), from_oct(), and from_hex()). It is like new() except that it does not accept anything but a string representing a finite decimal number. 1.999824 2021-09-20 * Don't allow mixing math libraries. Use the first backend math library that is successfully loaded, and ignore any further attempts at loading a different backend library. This is a solution to the re-occurring problem of using objects using different math libraries. * Add missing documentation. * Miscellaneous minor improvements. 1.999823 2021-07-12 * Improve the handling of the backend libraries. Provide more useful warnings and error messages. Update the documentation. 1.999822 2021-07-09 * Make the from_hex(), from_oct(), and from_bin() methods consistent with CORE::oct(), which does not require a leading "0" before the letter ("x", "o", or "b"). * Make the from_oct() and new() methods accept octal numbers with prefix "0o", "0O", "o" (lowercase letter o), and "O" (capital letter O). * Make the from_bin() and new() methods accept binary numbers with prefix "0b", "0B", "b", and "B". * Make the from_hex() and new() methods accept hexadecimal numbers with prefix "0x", "0X", "x", and "X". * Update test files to match with the above. 1.999821 2021-07-06 * Make new() and from_hex() accept the "0X" prefix, not just the "0x" prefix, but not accept just "X" or "x". Now, "0XFF" returns 255, not NaN. * Make new() and from_bin() accept the "0B" prefix, not just the "0b" prefix, but not accept just "B" or "b". Now, "0B1111" returns 255, not NaN. * Make new() and from_oct() accept the "0o" and "0O" prefixes, but not accept just "O" (capital letter O) or "o" (lowercase letter o). Now, "0o377" and "0O377" return 255, not NaN. Also intepret floating point numbers with a leading zero and a binary exponent as an octal number, so that "01.4p0" returns 1.5, not NaN. There is still no ambiguety, since decimal floating point numbers use "e" or "E" before the exponent, and binary and hexadecimal floating point numbers use a "0b"/"0B" or "0x"/"0x" prefix, respectively. 1.999820 2021-07-06 * Fix bug and improve error messages in Math::BigInt::import(). 1.999819 2021-07-02 * Add method btfac() (triple factorial) and bmfac() (multi-factorial), including tests and documentation. * Add missing and correct erroneous documentation for bfac() (factorial) and bdfac() (double factorial). Also correct handling of special cases and add tests for these cases. * Fix error in bsin() and bcos() causing them to hang indefinitely if the invocand is +/-inf. * Make it possible for the end user to specify the base length used internally in Math::BigInt::Calc. 1.999818 2019-10-20 * Fix CPAN RT #130736 regarding numify() on a Math::BigFloat with a large number of digits and an equally large, but negative, exponent. * Fix a problem in to_ieee754() due to rounding in bpow(). 1.999817 2019-10-11 * Avoid non-integers in intermediate computations in Math::BigInt::Calc. This causes errors due to rounding issues, e.g., 47265625999999999 / 1000000000 is 47265626 with double precision. * Remove api_version() and the corresponding test file. There is no need to check which methods are supported by a backend library now that each backend library is a subclass of Math::BigInt::Lib. Methods not provided in the backend library are provided by the parent class. * Add to_ieee745() and from_ieee754(). * Add backermann() and ackermann() for the Ackermann function. * Add buparrow() and uparrow() for Knuth's up-arrow notation. * Add information about the github repository. * Update links in SUPPORT section in POD. * Fix bpow(). It returned NaN when it should truncate to zero. * Make blsft() in Math::BigInt allow bases up until the largest unsigned integer. * Make _lsft() in Math::BigInt::Calc handle an arbitrarily large base. * Add new methods bdigitsum() and digitsum() to Math::BigInt. Add new method _digitsum() to Math::BigInt::Lib. * Add new methods is_non_negative() and is_non_positive(). * Extend the default collation sequence used by to_base() and from_base() to all the 94 printable ASCII characters except blank/space. * Make new() in Math::BigFloat handle octal floating point numbers. * Slightly more robust t/01load.t. * Remove unused variables. * Miscellaneous code cleanup. 1.999816 2018-10-26 * bnok() for Math::BigInt and Math::BigFloat now support the full Kronenburg extension. The behaviour is identical to the behaviour of the Maple and Mathematica function for negative integers n, k. Add tests. This closes CPAN RT #95628. * Fix POD errors. This closes CPAN RT #125141. 1.999815 2018-10-19 * Move bitwise operators signed and, signed or, and signed xor from lib/Math/BigInt/CalcEmu.pm into lib/Math/BigInt/Lib.pm. The file lib/Math/BigInt/CalcEmu.pm is no longer needed and thus removed. 1.999814 2018-10-01 * Add to_base() and from_base() to Math::BigInt and corresponding library methods _to_base() and _from_base() to Math::BigInt::Lib. This was inspired by CPAN RT #122681. * Fix Makefile.PL to reflect that Test::More is only needed for testing, not for building. * In the documentation for each of the to_(bin|hex|oct|bytes) methods, add a reference to the corresponding from_(bin|hex|oct|bytes) method. 1.999813 2018-04-18 * Fix CPAN RT #125108. Remove test files try.pl, t/author-bpi-big-mbf.t, and t/release-unused-vars.t, which were included in the 1.999812 distribution by accident. 1.999812 2018-04-17 * Fix CPAN RT #120351 regarding bpow(). Add test. * Fix CPAN RT #120717 regarding tests now that '.' is not in @INC by default. * Fix CPAN RT #122756 regarding testing for 64 bit integer support. * Fix case when both accuracy and precision are set, resulting in a NaN. This closes CPAN RT #124790. * Fix typo in one of the change log entries for version 1.999811. * Clearify documentation of rounding modes. * Update the documentation of configuration parameters. * Fix rounding and accuracy in bpi(). Extra digits in intermediate computation were not used, causing the last digits to be inaccurate. In addition, the rounding was incorrect in some cases. * Use config() as a method, rather than a function. Also use config("xyz") rather than config()->{xyz}. * Correct more of the problems with rounding in the constructors. If rounding arguments are given as arguments to the constructor, the constructor should assign those values to the instance. If no rounding arguments are given, and the constructor is called as a class method, the class rounding variables should be assigned to the instance. Added test file t/author-constructors-a-p-r.t to replace t/author-constructors-a-p.t, but lots of tests are failing and (for now) commented out. * Remove statements used for debugging. * Fix typos. * Cleaner log/exp-related code in Math::BigFloat. * Remove unused variables. * Add test file t/release-portability.t. * Add test file t/release-whitespaces.t. * Convert test file t/02pod.t to t/release-pod.t and t/03podcov.t to t/release-pod-coverage.t. * Reformat CHANGES to match the specification in CPAN::Changes::Spec and CPAN::Meta::Spec. * Expand tabs to spaces and clean up whitepace. * Include tests that were previously commented out. * Use $LIB as the variable name for backend math library. * Import "carp" and "croak" from the Carp module. * Math::BigInt isa Exporter, so Math::BigInt should require Exporter. Math::BigFloat has Math::BigInt in @ISA, so it doesn't need to require Exporter. * Don't load Test::More when it isn't really needed. This speeds up processing of author test files when they are skipped. 1.999811 2017-03-15 pjacklam * Fix an old bug in the Math::BigFloat methods as_hex(), as_oct(), and as_bin() methods resulting in loss of accuracy. This bug was introduced in bug in Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests, this bug was also present in the newer to_hex(), to_oct(), and to_bin() methods. This shows the bug, as it did not print "0xffff...": print Math::BigFloat -> from_hex("f" x 30) -> as_hex(); * Fix incorrect formatting in the output from the Math::BigFloat methods to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was added when it shouldn't have been. * Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(), as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin(). * "Synchronize" tests and code formatting in bigintpm.inc and bigfltpm.inc. 1.999810 2017-03-01 pjacklam * CPAN RT #120240 revealed that the problems with undefined values is still present. After a close examination, I believe the only way to get this really working is to to make blog() call objectify() differently depending on whether the base for the logarithm is undefined or not. That way we can avoid objectify() converting the undefined value to a zero. Ideally, we should warn about undefined values when used in any other context, but we'll handle that in a later release. See also the related changelog entry for v1.999801. * Fix the way the argument count is computed in objectify(). When an argument count of 0 is given, it means that we should objectify all input arguments. However, it turned out that the actual argument count was computed incorrectly. * Fix CPAN RT #120242 rearding c3 method resolution. 1.999809 2017-02-10 pjacklam * When a new method is added to Math::BigInt or Math::BigFloat, and this new method requires a new backend library method, die with a suitable error message if the installed backend library does not support this new method. The error message says that the method requires a newer version of the backend library. * Fix typos in Math::BigFloat and Math::BigInt. * Add bfib() and blucas() to Math::BigInt. They return Fibonacci and Lucas numbers, respectively. The actual computation of the numbers is done by the backend library. Documented both methods in POD. Add test files bfib-mbi.t and blucas-mbi.t. * Add _fib() and _lucas() to Math::BigInt::Lib. They return Fibonacci and Lucas numbers, respectively. Document both methods in POD. Add test files author-lib-arithmetic-unary-_fib.t and author-lib-arithmetic-unary-_lucas.t. 1.999808 2017-01-11 pjacklam * In Math::BigInt and Math::BigFloat, add methods bdfac() for double factorial. Add tests for this method. * In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and to_bin() for hexadecimal, octal, and binary string output without prefix. Even for Math::BigFloat there is still only support for integer output. Add tests for these methods. * Add test for as_oct() corresponding to the old tests for as_hex() and as_bin(). * In Math::BigInt::Lib, add method _dfac() for double factorial. Add corresponding tests. * In Math::BigInt::Lib, fix bug in overloaded "int". * In Math::BigInt::Lib, implement much faster versions of _from_hex(), _from_oct(), and _from_bin(). * In Makefile.PL, improve the wording in the message displayed if some of the installed backend libraries are not a subclass of Math::BigInt::Lib (and hence will not provide * Fix minor bugs in some of the author library test files (t/author-lib*.t). * Allow leading and trailing whitespace in the input to from_hex(), from_oct(), and from_bin(). Add tests to verify. This is a regressions (CPAN RT #119805). 1.999807 2016-12-23 pjacklam * Add a message to Makefile.PL recommending upgrade if old libraries are installed. This message is more or less equivalent to the one appearing in Math-BigInt up until v1.997. * Improve the documentation (POD) in Math::BigInt::Lib. * Speed up _sqrt() and _root() in Math::BigInt::Lib. * Remove checking for exception cases (cases that would return +Inf, -Inf, or NaN) in Math::BigInt::Lib. It has been documented for a long time that such checking should be done by the caller. * Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that the _to_*() methods don't use a prefix in the output. This removes the need for the frequent removal of the various prefixes. Now each _as_*() method calls the equivalent _to_*() method, adds a prefix, and returns the output. The _to_*() methods are faster than the equivalent _as_*() methods were. * Add author test files for the methods _to_bin(), _to_oct(), and _to_hex(). * Add library method _to_bytes(). The method _as_bytes() would have been called _to_bytes() if I had thought of it earlier. The method _as_bytes() is now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug that was present in the _as_bytes() method. (CPAN RT #119346). * Add author test files for the method _to_bytes(). * Add more tests for library methods _inc() and _dec(). When trying to bring the Math::BigInt::BitVect library back to life I realized that the test suite didn't catch certain errors in _inc() and _dec(). * Die if trying to use as_bytes() or from_bytes() with a backend library that doesn't support the corresponding library methods. * Correct minor errors in the output messages in the test files. * Improve/correct various comments in the source code. * More diagnostic output is displayed by the author test files if the AUTHOR_DEBUGGING environment variable is set. 1.999806 2016-12-13 pjacklam * Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199 and #119225). * In the TODO file, remove stuff that has been implemented. 1.999805 2016-12-11 pjacklam * Fix Makefile.PL so that this module installs over the core version. * Add more tests for _nok() (binomial coefficient "n over k"). These new tests revealed some problems with some of the backend libraries when _nok() was given very large arguments. * Remove t/Math/BigFloat/#Subclass.pm#, which is an Emacs temporary file included by accident. 1.999804 2016-12-07 pjacklam * Implement as_bytes(), as requested (CPAN RT 119096). Also implement the inverse conversion from_bytes(). This applies to Math::BigInt only. (Alas, these methods will be inherited from Math::BigInt into Math::BigFloat, Math::BigRat etc. where the methods won't work. Fixing this class relationship is an issue of its own.) * Implement _as_bytes() and _from_bytes() in Math::BigInt::Lib. Preferably, the various backend libraries will implement faster versions of their own. Add author test files for testing these methods thorougly. * Fix from_hex(), from_oct(), and from_bin(). - When called as instance methods, the new value should be assigned to the invocand unless the invocand is read-only (a constant). - When called as instance methods, the assigned value was incorrect, if the invocand was inf or NaN. - Add tests to t/from_hex-mbf.t, t/from_oct-mbf.t, and t/from_bin-mbf.t to confirm the fix. - Add new test files t/from_hex-mbi.t, t/from_oct-mbi.t, and t/from_bin-mbi.t for better testing of these methods with Math::BigInt. * Correct typo in Math/BigInt/Lib.pm (otherise -> otherwise) (CPAN RT 118829). * Add POD coverage testing of Math::BigInt::Lib to t/03podcov.t. 1.999803 2016-12-03 pjacklam * Remove BENCHMARK file. The information was obsolete. * Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL * Reorder CHANGES file (this file) so the newest entries appear at the top. * Fix error in test information text in various author test files. * Remove author information in LICENSE file. * Inform that the TODO file is not up to date. 1.999802 2016-11-28 pjacklam * When bzero(), bone(), binf(), and bnan() are used as constructors, don't check whether the class allows the object to be modified. A constructor isn't modifying any existing object. This applies to both Math::BigInt and Math::BigFloat. * Improve bgcd() and blcm(). This applies to both Math::BigInt and Math::BigFloat. 1.999801 2016-11-23 pjacklam * Fix, hopefully once and for all, the longstanding problem of handling undef as an operand to mathematical methods. The only method that accepts undef as an operand is blog(), where the second operand might be undef, as in $x->blog() or $x->blog($b), where $b is undef. The undef signifies that Euler's number should be used as the base. With this fix, we should be able to get Math::BigInt::Lite working again. * Add least common multiple method _lcm() to Math::BigInt::Lib, and add corresponding test file t/author-lib-arithmetic-binary-_lcm.t and test data file t/author-lib-arithmetic-binary-_lcm.dat. * Remove internal function __lcm() which has become redundant now that _lcm() is in the library. * Make it possible to use bgcd() and blcm() as class methods, since other methods can be used as class methods. This applies to both Math::BigInt and Math::BigFloat. * Fix blcm() with negative input. The LCM should always be non-negative. This applies to both Math::BigInt and Math::BigFloat. * Add tests for bgcd() and blcm() in t/bigintpm.t and t/bigfltpm.t. * Fix tests for blcm() assuming that LCM(0,0) should be a NaN. LCM(0,0) is 0 by convention. * Prefer Class->config('option') over Class->config()->{option}. However, this does not seem to be working for all options. It seems that this won't work properly until we move the global variables into the OO interface. * Explicitly specify the library in all test files that are shared between Math-BigInt and the library distributions (FaatCalc, GMP, Pari, ...) with, e.g., "use Math::BigInt only => 'Calc';". This way, it will fail immediately if the specified library can't be loaded rather than using the fallback library. 1.999800 2016-11-15 pjacklam * Upgrade bundled Module::Install from version 1.16 to version 1.17. * Add Math::BigInt::Lib (lib/Math/BigInt/Lib.pm), a parent class for Math::BigInt backend libraries. * Use objects in Math::BigInt::Calc, not just array refs. Also use OO-style, i.e., use $class->_add($x, $y) rather than _add($class, $x, $y). * Not all library methods modify the invocand, so call library methods as, e.g, $x = $LIB->method($x, $y) rather than just $LIB->method($x, $y). * Math::BigInt::Calc is now a subclass of Math::BigInt::Lib. * Add Math::BigInt::Lib::Minimal (t/Math/BigInt/Lib/Minimal.pm) for testing inheritance from Math::BigInt::Lib. * Minor simplification in Math::BigInt::Calc->_str(). * Speed up Math::BigInt::Calc->_root(). * Remove test files that were included in the previous release by accident. * Add more tests and use more verbose output in some tests. * Fix typo in lib/Math/BigFloat.pm * Fix documentation error in lib/Math/Calc.pm * Use Config::Tiny and an .ini file to handle the library specific configuration for the author-lib*.t test files. 1.999727 2016-11-04 pjacklam * Skip test exceeding the range of VAX floating point number in t/bigintpm.inc (CPAN RT 118468). * Fix typo in lib/Math/BigInt.pm (CPAN RT 118550). 1.999726 2016-07-15 pjacklam * Re-insert Math::BigFloat->DESTROY, which was accidentally removed in v1.999725. 1.999725 2016-07-13 pjacklam Changes: * Add method is_finite(). * In Math::BigInt and Math::BigFloat, remove warnings about deprecated usage, at least until we have removed this usage from the "bignum" distribution. These warnings were too annoying for some people. Improvements: * Faster bnok() when the library (backend) does not support it. * In the Math::BigFloat method bpi(), use a precomputed list of digits when the accuracy is <= 1000. This speeds up the trigonometric functions considerably, when I will introduce range reduction in a later release. This makes the _atan_inv() method redundant, so remove it. Also, the _alen() library method is now only used in _log_int(), which is good, because it isn't clear from the docs and tests what it was supposed to do. Fixes: * Fix bug in the Math::BigInt::Calc library method _digit(). It would sometimes return undef or an empty string when it should have returned zero. * Fix bug in the Math::BigInt::Calc library method _rsft(). It would sometimes return two output arguments. * Fix bug in the Math::BigInt::Calc library method _lsft(). When the number zero was shifted N places in base 10, the result was not zero, but an invalid object. * Fix bug in the Math::BigInt::Calc library methods _and(), _or(), and _xor(). They always assigned zero to the first input argument (the invocand). * Improve the Math::BigInt::Calc library method _log_int() for the cases when the output is zero or one. Also simplify the code. * Simplify the code for the Math::BigInt::Calc library method _zeros(). * Reformat Math::BigInt::Calc so it is easier to read, for me anyway. * Add file t/author-bnok-mbi.t * Add one test file for every method in the libraries, including t/Math/BigInt/Lib/TestUtil.pm with test utilities. * Clean up whitespace in all files in the distribution. * Better testing in t/author-bpi-mbf.t * The Math::BigInt::Calc library now always uses integers inside the objects, so there is no longer any need for all the "0 + ..." to convert strings to numbers, and the "int()" inside "length(int(...))" to determine the length of an array element. The only case that needs "0 + ..." now is the constructor _new(), whose input is a string. Note, however, that the Math::BigInt::FastCalc library method _new() still creates objects with leading zeros, so until that is fixed, we can't remove all the "0 + ..." etc. until Math::BigInt::FastCalc has been modified. 1.999724 2016-06-19 pjacklam * In Math/BigInt.pm and Math/BigFloat.pm, correct and improve to the documentation, e.g., reorder the methods so that methods that belogin together are grouped together. * In Math/BigInt.pm and Math/BigFloat.pm, refactor the code so that methods that belong together are grouped together. Also use consistent code formatting. * In Math/BigInt/Calc.pm, reformat the code. 1.999723 2016-06-09 pjacklam * Add Math::BigInt and Math::BigFloat methods bnstr(), bestr(), and bdstr(), as well as corresponding methods nparts(), eparts(), and dparts(). Also add test files bdstr-mbf.t, bdstr-mbi.t, bestr-mbf.t, bestr-mbi.t, bnstr-mbf.t, bnstr-mbi.t, bsstr-mbf.t, bsstr-mbi.t, dparts-mbf.t, dparts-mbi.t, eparts-mbf.t, eparts-mbi.t, nparts-mbf.t, nparts-mbi.t, sparts-mbf.t, and sparts-mbi.t. * Fix documentation errors. 1.999722 2016-04-26 pjacklam * Fix bug in bone() and binf() when used as a function. The error caused warnings about using an unitialized variable. This fix applies to both Math::BigInt and Math::BigFloat. 1.999721 2016-04-26 pjacklam * Prevent Math::BigFloat methods band(), bior(), bxor(), and bnot() from modifying unmodifiable objects. 1.999720 2016-04-26 pjacklam * Overloaded 'int' should not modify it's argument. * Better documentation of blsft() and brsft(). 1.999719 2016-04-25 pjacklam * Revert the change to Math::BigFloat's blsft() and brsft() methods, which truncated the input (and output) to integers. However, now convert the base to an object only when the base isn't an object already. Also return NaN if any of the three operands is a NaN. * Change t/bigfltpm.inc to reflect the changes to blsft() and brsft(). Also, when a method should be tested, actually test that method, not the overloaded operator, which doesn't necessarily behave in the exact same manner as the method. This applies to the methods binc(), bdec(), bpow(), badd(), bsub(), bmul(), bdiv() in scalar context, brsft(), blsft(), and bmod(). * The first output argument from objectify() is the class name, so use the variable name $class, not $self. 1.999718 2016-04-22 pjacklam * Improve documentation on large, unquoted input values to Math::BigInt. * Remove stuff from bitfltpm.inc that was placed into author-numify-mbf.t, but accidentally still present in bitfltpm.inc. Adjusted test counts as needed. * Fix file headers in author-bmod-bdiv-mbi.t and author-btmod-btdiv-mbi.t. * Add bnan(), binf(), and bsub() methods to Math::BigFloat. This is a step along the way to having Math::BigFloat no longer being a subclass of Math::BigInt. * Using bnan, binf(), bzero() and bone() as functions is deprecated. This is a step along the way to a pure object oriented design. * When bnan() and binf() are used as instance methods, they no longer delete the accuracy and precision instance variables. * Add test files from_bin-mbf.t, from_oct-mbf.t, and new-mbf.t. * Remove some code for Perl prior to 5.6. Such old versions are no longer support anyway. * Fix buggy handling of NaN in bcmp(). * Add methods beq(), bne(), blt(), ble(), bgt(), and bge() to Math::BigInt and Math::BigFloat. These methods are called for the overloaded operators. * Add overloading of '==', '!=', '<', '<=', '>', to to Math::BigInt and Math::BigFloat and fix the broken overloading of '>='. These overloaded operators now behave like the equivalent core Perl operators. * Add test file author-relop-mbi-mbf.t for testing bcmp(), beq(), bne(), blt(), ble(), bgt(), and bge(), as well as the overloaded operators '==', '!=', '<', '<=', '>', and '>='. * 'int' now truncates a Math::BigFloat object to an integer without converting it to a Math::BigInt. When an object becomes a Math::BigInt, further computations with that object as invocand causes the arguments to be converted to Math::BigInt objects too, leading to unexpected results. This is confusing people. Unless downgrading is in effect, no Math::BigFloat object should become a Math::BigInt unless a Math::BigInt is explicitly requested. * For Math::BigFloat, modify bitwise operations brsft() and brsft(), and add band(), bior(), bxor(), and bnot(). These now handle floating point numbers the same way as core Perl does, i.e., truncate non-integers to integers before applying the bitwise operator. This change will also make Perl's behaviour more consistent whether 'use bignum' is in effect or not. * Add overloading of '~' (bitwise not). It just calls bnot(), which has been implemented for ages. * Fix error in POD for bone(). * Take parts of the code in t/calling.t and move it into the new files t/calling-class-methods.t and t/calling-instance-methods.t. * Improve test descriptions in t/mbimbf.inc. 1.999717 2016-04-16 pjacklam * Using new() with an undefined argument no longer gives a warning. Explicit use of this is discouraged, but it is sometimes used by the modules themselves issuing warnings that is confusing to the end user. Just uncomment the code, since we plan to reintroduce this warning later. * Avoid using L<> around e-mail addressess in POD. 1.999716 2016-04-03 pjacklam * $x->new(...) can no longer be used to assign a value to $x. This was a mistake introduced in v1.999712. As the name "new" implies, it should always return a new object. * Using new() with no argument no longer gives a warning. This use has been discouraged, in favour of bzero(), for many years, but people are still using it, so I am reintroducing the support for this. * Added btdiv() and btmod() for truncated division (T-division) and ditto remainder. Add tests. * Add test files author-bmod-bdiv-mbi.t author-btmod-btdiv-mbi.t with more thorough testing of bdiv(), bmod(), btdiv(), and btmod(). * When new() is used as an instance method, the new object is initialized as a copy of the invocand. * Move test for numfiy() of +Inf, -Inf, NaN, and big integers from bigfltpm.inc and bigintpm.inc into author-numify-mbi.t and author-numify-mbf.t. * Improved wording and fixed typos in earlier changelog entries. 1.999715 2016-01-05 pjacklam * Fix Math::BigFloat->bexp() based on patch by DANAJ (Dana Jacobsen). * Add Math::BigFloat->bexp() tests to "t/biglog.t" and new file "t/author-bexp-mbf.t". * Fix flawed test in test_bpow. It used ok($x, $y) rather than is($x, $y). * Add better descriptions (test names) to a few tests. * Wrap long line in the CHANGES file. 1.999714 2016-01-03 pjacklam * Add code to speed up Math::BigFloat->batan(). Thanks to DANAJ (Dana Jacobsen) for the patch. * Re-write Math::BigFloat->batan2() completely, except for the parts related to the rounding. The old version was sometimes correct, sometimes off by pi, and sometimes very inaccurate. Also add more tests. * Make it clearer in Math::BigFloat->bpi() when it is called as a method vs. as a function. * The Math::BigFloat->bpi() method can now be used as an instance method to assign pi to $x, as in $x->bpi(). * Add tests for as_oct(). * Minor simplifications in Math::BigInt->as_oct() and Math::BigInt::Calc::_as_oct(). 1.999713 2015-12-31 pjacklam * Fix Math::BigInt->new(), which had a faulty handling in the shortcut for non-zero scalar integers with no non-zero exponent, like "12", "12.000", "12e3", and "12.000e4". Added tests for this in t/bigintpm.inc. 1.999712 2015-12-29 pjacklam * Fix bug in internal function _e_add() and _e_sub() which causes it to return "-0" in some cases. * Let new() be used for assignment. Now $x->new(3) assigns 3 to $x. * Improve code in new() for non-zero scalar integers with no exponent. * Allow both "inf" and "infinity". Allow a leading sign, and ignore letter case. This is to be consistent with core Perl. * Be more consistent about allowed whitespace in input. E.g., "23 " gave 23, but "inf " gave a NaN. * Core Perl allows both "0x" and "0X" as hexadecimal prefix, and both "0b" and "0B" as binary prefix, so we do too. Previously, only 0x and 0b were allowed. * Math::BigFloat now has its own from_bin() method which supports binary floating point numbers, e.g., "0b1.1001p-4". This complements from_hex(). * Math::BigFloat now has its own from_oct() method which supports octal floating point numbers, e.g., "1.3267p-4". This complements from_hex(). * The Math::BigInt and Math::BigFloat methods from_hex(), from_oct(), and from_bin() can now be used as instance methods to assign values to the invocand, e.g, $x->from_oct("10") assigns 8 to $x. * Update documentation. Perl now uses "Inf", not "inf" to represent infinity. * When the new() method is called with an undefined argument, the round parameters are now passed on to bzero(). This applies to both Math::BigInt and Math::BigFloat. * Replace "UNIVERSAL::isa($this, $that)" with "$this->isa($that)", and ditto for "can()", where possible. Not every instance of "UNIVERSAL::Isa()" has been replaced, though, since the change causes some tests to fail. This must be looked into. * Simplify the copy() methods. Always copy accuracy and precision parameters, even when they are undefined. * Reformat more of the code in accordancw with the "perlstyle" manual page. This makes the code a lot easier to read -- for me, anyway. * Use a more generic regex in t/calling.t, since the exact wording of the error message depends not on the Perl version, but on the module that does the version checking. * Avoid infinite loop in the Math::BigFloat->batan() method. Thanks to DANAJ (Dana Jacobsen) for the patch. This was not intended to be added before the next release, but was included in this release by accident. 1.9997_11 2015-12-10 pjacklam This release introduces no changes in the library code, i.e., the .pm files in the 'lib' directory, but there are a lot of changes in the test files. Since there are so many changes, I let this be a development release. * Add 'use strict;' and 'use warnings;' to all test files. * Reformat code in the test files according to the "perlstyle" manual page. This makes the code a lot easier to read -- for me, anyway. * Decrement required version of Perl from v5.6.2 to v5.6.1. All tests pass when running the test suite with Perl 5.6.1 on Cygwin. * Replace "use vars ..." with "our ..." in test files. * Replace "BEGIN { unshift @INC, 't'; }" with "use lib 't';" in test files. * Use "our $x; $x = ...;" rather than "our $x = ...;" since the latter causes Perl 5.6.1 to complain about variables only used once. * Add comment to all tests. Now the tests no longer says just "ok 123", but rather "ok 123 - $x->blog(2)" etc. This makes it easier to identify failed tests, especially in the smoke testing reports. * Fix various flawed tests, e.g., ok($x, 2) was used testing whether $x was 2. * Use the skip() feature of Test::More for skipping tests. * Use more descriptive variable names in test files. * Remove unused variables in test files. * Move variable declarations to limit their scope in test files. * Remove trailing whitespace in test files. * Wrap (most) lines to fit 80 columns in test files. 1.999710 2015-11-12 pjacklam * New method Math::BigFloat -> from_hex() which supports hexadecimal floating point numbers, e.g., "0x1.999ap-4". * New test file t/from_hex-mbf.t for testing Math::BigFloat -> from_hex(). * Add 'from_hex' and 'from_bin' to list of methods in the Math::BigInt POD. 1.999709 2015-11-06 pjacklam * Represent and return zero as 0E0, not 0E1. The old POD said "A zero is represented and returned as 0E1, not 0E0 (after Knuth)." I find no references to Knuth ever having said this. The closest reference I can find is that Knuth says 0**0 should be defined to be 1, not 0, but that is something else than 0e0, which is 0*10**0. I have yet to see any other mathematical software that represents and returns zero as 0e1 rather than 0e0. * Required version of Test::More is 0.9301. 1.999708 2015-11-03 pjacklam * Use bxxx() method names consistently, rather than mixing bxxx() and fxxx() in code and test files. The fxxx() methods for Math::BigFloat objects are still available through autoloading. However, we leave the fround() method in Math::BigInt, as it seems to provide some kind of compatibility with Math::BigFloat. * Correct author information in the README file. * Remove INSTALL file, which by accident wasn't removed in v1.999707. * Use present tense, not past tense, in CHANGES file. * Add '#!perl' to Makefile.PL for correct syntax highlighting in editors supporting this. * Use Math::Complex::Inf() in testfiles also (for generating Perl scalar infinity) since it is more portable. 1.999707 2015-10-29 pjacklam * Add dependency on Math::Complex 1.39 for Math::Complex::Inf(), which is used for numifying infinity. * Update author information. * Update information in the file README. * Remove the files INSTALL and LICENSE as this information is already covered in the file README. * Enable 'use warnings' in all modules. We require a Perl newer than 5.6.0 anyway. * Replace 'use vars ...' with 'our ...'. We require a Perl newer than 5.6.0 anyway. * Avoid indirect object syntax in documentation. * Moved 'Test::More' from 'build_requires' to 'test_requires' in Makefile.PL. 1.999706 2015-10-28 pjacklam * Correct release date of v1.999705 in CHANGES. * Add code and tests for numify() on non-finite objects. 1.999705 2015-10-26 pjacklam * Avoid using "my" in a false conditional. See "Deprecated use of my() in false conditional" in perldiag(1). * Faster algorithm for bpi() when accuracy is >= 1000. 1.999704 2015-09-25 pjacklam * objectify() in lib/Math/BigInt.pm now uses 'isa' not 'eq' to check object relationship. This is necessary for correct handling of subclasses. * objectify() in lib/Math/BigInt.pm no longer expects as_int(), as_number() and as_float() to return objects, but allows them to return numbers formatted as strings. This is used by some other modules on CPAN. * Better documentation of as_int() and as_number() in lib/Math/BigInt.pm. * Add documentation for as_float() in lib/Math/BigFloat.pm * Add test files t/objectify_mbf.t and t/objectify_mbi.t. 1.999703 2015-09-21 pjacklam * Fix blog() in Math::BigInt and Math::BigFloat to work correctly regardless of the base. * Correct existing tests in bigintpm.inc and bigfltpm.inc. * Update test plans (number of tests) in t/bare_mbi.t, t/bigintpm.t, and t/sub_mbi.t. * Add test files t/blog-mbf.t and t/blog-mbi.t for better testing of the blog() methods. 1.999702 2015-09-17 pjacklam * The overloaded log() is a unary operator, so don't pass additional arguments. * Fix blog() so the cases $x->blog() and $x->blog(undef) work correctly. An undefined base means that blog() should use base e (Euler's number). * Both CORE::log() and other mathematical software returns inf for log(inf), so we do the same. * Add tests for log() as well as templates for future tests of the other overloadable functions. * Improve descriptions of a few tests. 1.999701 2015-09-11 pjacklam * The POD documentation, as well as the comments in the code, said that $x->bdiv($y) in list context should return quotient $q and remainder $r so that $x = $q * $y + $r, and that the remainder (modulo) $r should correspond to Perl's % operator as well as the bmod() method. This has not been the actual behaviour. This is now fixed. In scalar context, only the quotient is returned. * Clearer POD documentation for the bdiv() and bmod() methods. * All non-integer input values to Math::BigInt gave a NaN, except non-zero numbers in the range (-1,1) that were written without an exponent, e.g., "-0.75" and "0.5". Now also these return a NaN. * Input values with a large (absolute value) negative exponent, e.g., 1e-9999999, now return NaN. The former behaviour was to die with the message "Quantifier in {,} bigger than 32766 in regex; marked by ..." * Intermediate computations in blog() increased the number of digits significantly in some cases. Now reduce the number of digits by rounding. However, keep some extra digits for remaining intermediate computations before the final rounding. * When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0 returned -0. Negative zero is never used by Math::Big(Int|Float), and care has been taken to avoid it, so this bug is surely an oversight. * Explicitly specify the backend (lib => 'Calc') in t/mbimbf.t for easier release management of the backend distributions. * Add "use warnings" to test scripts, since Perl 5.6.2 is required anyway, and "use warnings" was introduced in Perl 5.6.1. * Modified test scripts so the difference between the test files in the Math-BigInt distribution and the backend distributions are as few and as small as possible. This makes for easier release management. 1.9997 2015-08-12 pjacklam CHANGES * Add recent changes. t/bigintpm.inc * Correct spelling errors. t/upgrade.inc * Correct spelling errors. 1.9996 2015-08-12 pjacklam CHANGES * Add recent changes. * Use present tense in change descriptions. lib/Math/BigInt.pm * Change incorrect use of ok() to is() in example. 1.9995 2015-08-11 pjacklam CHANGES * Move changes that were incorrectly reported as being for the release 1.9994 when they were in fact for release 1.9993. * Add changes both for release 1.9994 and 1.9995. lib/Math/BigInt.pm * Break lines to avoid lines with more than 80 characters. * Improve objectify() for better handling of subclasses. 1.9994 2015-08-10 pjacklam CHANGES * Add recent changes. lib/Math/BigFloat.pm * Fix blog() which sometimes returns incorrect result. * bdiv() in list context now returns the integer quotient and the remainder. t/bigfltpm.inc * Modify tests for blog() in list context. t/biglog.t * Change incorrect use of ok() to is(). t/upgrade.inc * Modify tests for blog() in list context. inc/Module/Install* * Upgrade bundled Module::Install from version 1.08 to version 1.16. 1.9993 2014-04-03 pjacklam BUGS * Add reference to CPAN RT for the Math-BigInt distro. CHANGES * Add recent changes. examples/hailstone.pl * Remove this file as it doesn't seem to be working. lib/Math/BigFloat.pm * Correct spelling errors. * Reformat code to avoid long lines. * Improve POD formatting. * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.) * Add the bint() method. lib/Math/BigInt.pm * Correct spelling errors. * Reformat code to avoid long lines. * Improve POD formatting. * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.) * Add the bint() method. * Remove references to the obsolete Math::Big lib/Math/BigInt/Calc.pm * Correct spelling errors. * Added meta-documentation (CPAN ratings, CPAN testers matrix, etc.) lib/Math/BigInt/CalcEmu.pm * Correct spelling errors. * Improve POD formatting. * Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.) * Remove references to Math::BigInt::BitVect, which is no longer on CPAN. Makefile.PL * Remove code that checks for compatible versions of distributions that depend on Math-BigInt. Such checking should be done in the distributions that depend on Math-BigInt, not in Math-BigInt itself. NEW * This file now only refers to the change log. t/bigfltpm.inc * Add tests for fint(). t/bigintpm.inc * Add tests for int(). t/upgrade.inc * Add tests for int(). t/*.t * Increment test counts as needed for the new tests in the t/*.inc files. inc/Module/Install* * Upgrade bundled Module::Install from version 1.01 to version 1.08. 1.997 2011-09-04 pjacklam * Document actual behaviour of from_xxx() methods. [perl #85334] (Peter John Acklam) * Make bmuladd() able to handle third arg properly. [perl #85482] (Peter John Acklam) * Add sign function bsgn() as a complement to babs(). (Peter John Acklam) * Fix objectify()'s handling of "foreign objects". (RT #16221 and #52124) (Peter John Acklam) * Rewrap some verbatim pod in Math::BigInt. (Father Chrysostomos) * Correct links to sections. (Alexandr Ciornii) * Remove incorrect formatting inside verbatim paragraphs. (Alexandr Ciornii) * Upgrade bundled modules in "inc" to latest version. (Peter John Acklam) * Include "^MYMETA\.(yml|json)\z" in MANIFEST.SKIP. Whereas META.* are generated by the distribution author at packaging time, MYMETA.* are generated by the end user at configure time after any dynamic dependencies are known. (Peter John Acklam) 1.993 2011-02-26 pjacklam * Change default backend library from Math::BigInt::FastCalc to Math::BigInt::Calc, which is included in the Math-BigInt distro. This avoids recursive distribution dependency (RT #65976) (Peter John Acklam). 1.992 2011-02-18 pjacklam * Math::BigInt::Calc->_nok(): Use symmetry property nok(n,k) = nok(n,n-k) to speed up execution when k is large. Also general code cleanup. (Peter John Acklam). * Math::BigInt::Calc->_gcd(): Speed up by reducing amount of data copying (Peter John Acklam). * Add '01load.t' for basic module loading and diagnostics useful for debugging. Rename '00-signature.t' to '00sig.t', 'pod.t' to '02pod.t', and 'pod_cov.t' to '03podcov.t' (Peter John Acklam). * Math::BigInt:: Make from_hex(), from_oct(), and behave more like hex() and oct() in the Perl core, and make from_bin() consistent with from_hex() and from_oct() (this is related to RT #58954) (Peter John Acklam). * Math::BigInt::Calc->_rem(): Modify first input arg always, not just sometimes (Peter John Acklam). * Math::BigInt::Calc->_modinv(): be more consistent with the _modinv() method in other libraries (Math::BigInt::GMP, etc.) (Peter John Acklam) * Math::BigInt::Calc->_nok(): use symmetry property nok(n,k) = nok(n,n-k). This cuts computation time tremendously when n and k are large (Peter John Acklam). * Math::BigInt::Calc->_gcd(): quickly handle zero cases, avoid code duplication, and always modify the first input argument in-place (Peter John Acklam). * Clean up code and add more code comments (Peter John Acklam). * Fix typos (Peter John Acklam). 1.991 2011-02-05 pjacklam * Add workaround for library inconsistencies (Math::BigInt::Calc vs. Math::BigInt::GMP). This makes older versions of Math::BigInt::GMP work with latest version of Math::BigInt (Peter John Acklam). * Correct and extend API documentation (Peter John Acklam). 1.99_05 2011-01-29 pjacklam * Fix typos (reminder -> remainder etc.) (Peter John Acklam) * Fix Math::BigInt::Calc::_num returning NaN, not Inf, when it overflowed (Peter John Acklam) (Closes: RT #25274). * Fix Math::BigFloat->bcmp() so it can handle arbitrarily large exponents (Peter John Acklam) (Closes: RT #62764). * Fix bmodpow() in Math::BigInt 1.99 mis-calculating powers of one (Peter John Acklam) (Closes: RT #63237). * Fix bmodpow() and bmodinv() in Math::BigInt to handle negative input (Peter John Acklam) (Closes: RT #61543) * Clean up whitespace (Nicholas Clark). * Added file t/00-signature.t for testing SIGNATURE (Peter John Acklam). If you just want to see which things are new and different from the original Math::* in the Perl core, see HISTORY. In earlier versions of the distribution, each module had a separate changelog: ############################################################################## Math::BigInt::Calc: 0.52 2007-09-16 Tels * fix 64bit ints on Perl v5.8.0 (thanx zefram) 0.51 2007-05-30 Tels * use CORE::hex() instead of hex() to help bigint/bignum/bigrat * use 9 digit parts on 64bit integer or long double systems 0.50 2007-05-05 Tels * speed up _mul() by "use integer;" * we do not need to remove zeros after mul() * implement an alternative algorithm for _fac() 0.49 2007-04-16 Tels * API version 2.0 support: add _1ex(), _alen() * make _fac() about twice as fast 0.48 2007-01-27 Tels * support for octal numbers 0.47 2005-05-17 Tels * remove shortcut in div(), it wasn't working properly 0.46 2005-03-29 Tels * avoid crash in FastCalc by making $BASE and $BASE_LEN use vars qw//; 0.45 2005-03-20 Tels * fix the div() shortcut for short numbers to actually work 0.44 2005-01-01 Tels * small cleanups * shortcut for numbers of same length in _div, where X > Y 0.42 2004-10-10 Tels * fix critical bug in _from_hex() with parts that were to big for one part (introduced in v1.72, thanx Mark Lakata for finding it!) 0.41 2004-07-30 Tels * from_hex() convert 28 bits (vs 16) at a time, faster (helps from_bin(), too) * potential bug in padding with '0' in _digit() * fixed undef warnings in fceil(0.222222222222...) (thanx kenny!) * removed the unused integer-detection code and combined the two BEGIN blocks 0.40 2004-03-12 Tels * added: api_version(), _ten(), _two(), _is_ten(), _is_two(), _gcd() * streamlined: is_foo() methods * _new() takes scalar, not scalar ref * _str() returns scalar, not scalar ref * _and(): bugfix for [perl #26559]: negative arguments that are shorter than the positive one caused an error due to cutting instead padding * _ior(): forgot to calculate the proper sing of result, making, for instance, 30 | -4 go wrong 0.39 2004-01-25 Tels (not released) * _zeros(0) is 0, not 1 0.38 2003-12-30 Tels * guess _log_int() result based on $base if $base < $BASE * _pow() handle cases 0 ** Y, 1 ** Y, X ** 0 and X ** 1 * _new(): shortcut for short numbers, makes MBI->new() about 20% faster * _root() was wrong for numbers like 9 (0b1001) because they start with the pattern /^0b1(0+)/ (missing '$' in regexp) and after fixing this it was dead slow for large numbers. 0.37 2003-12-11 Tels * implemented _log_int() with a simple and fast "iterative" method * fixed bug in _root(): int() rounds sometimes wrong, so use sprintf() * _as_bin() and _as_hex() are faster (for small values) due to inlining is_zero() * _acmp() is about 26% faster for very small numbers or numbers that differ in length, and slightly faster for bigger numbers. This helps both bacmp() and bcmp() * _fac() did: + not modify $x in place for small arguments + something strange for large arguments + not handle 0..2 optimal (code now simplified) * _as_bin() used %b, which was not known to v5.5.3 - workaround that * implemented _log_int(), which is simple and very fast * implemented the missing pieces for _root() (which is quite fast) 0.36 2003-08-31 Tels * fixed a bug in div_use_div() that computed remainder wrong if X == X and X was very large * fixed a off-by-one error discovered with mbi_rand.t in _div_use_XXX() (one internal in $x overflowed, thus the wrong computation) 0.35 2003-07-06 Tels * fixed a bug in _floor() which caused ffloor(0.1234567) to fail. (Thanx to cpan@ali.as for finding it and sending a fix/testcases) * make _as_hex() and _as_bin() handle 0, and make them faster for very short numbers (less than BASE_LEN digits) 0.34 2002-09-27 Tels * fixed bug in mul_use_div() shortcut that used * $RBASE instead of / $MBASE * $caught & 1 != 0 vs ($caught & 1) != 0 (changed to $caught != 2) * $i %= $MBASE does not work on ARM (v5.003), so make it $i -= $car * $MBASE * removed unused LEN_CONVERT code (smaller memory footprint) 0.33 2002-09-09 Tels * _fac() keep $n as scalar if possible * test for when to USE_MUL or not was inverted * _mul() is about 6 times faster if $y is small and $x is big 0.32 2002-08-21 Tels * fixed bug in _rsft() that did not set result to 0 in some cases * _modinv() now works, thanx to the all-positive algorithm * much more tests in bigintc.t (taken over from FastCalc) 0.31 2002-08-13 Tels * _acmp() no longer calls _len() => tad faster * some cleanup of old code, added some more comments 0.30 2002-06-10 Tels * undef mul/div in case Calc.pm get's loaded twice * fix in _as_hex() and _as_bin() for older Perls * speedups in _pow() and _modpow() 0.29 2002-06-09 Tels * filled in _modpow() 0.28 2002-05-30 Tels * added _modinv(), _modpow() (not yet implemented) 0.26 2002-03-17 Tels * a fix in _rsft() that left empty array instead of (0) * a fix in _sub(): early out made -1 + 100000000001 == 0 (if length($y) > 8) 0.25 2002-03-03 Tels * started _square() (not done yet) 0.24 2002-02-27 Tels * streamlined _mod() shortcuts * _div() has shortcut if $y is very small 0.23 2002-02-24 Tels * from_bin() repack input and use from_hex(): twice as fast 0.22 2002-02-10 Tels * _sqrt1() => _sqrt() (oups) * much better guess for _sqrt() resulting in faster sqrt * added _fac() 0.20 2002-01-07 Tels * better detection of higher-int-only base (but disabled due to failures) * streamlined converting * turned dual-basis off by default (now 7-7 on 32 bit and 9-9 on most 64 it) * _str() uses int() on first part to avoid '0000' instead of '0' 0.19 2001-12-23 Tels * first working version of using two different bases: one for mul/div, the other for all other ops, including converting via _to_large()/_to_small() 0.18 2001-12-20 Tels * added _as_hex() and _as_bin() with 16 bit chunks * from_bin() now uses oct() and 16 bits per iteration * removed needless return statements 0.17 2001-12-06 Tels * added _sqrt() for more speed * _sqrt() shortcut for small (< $BASE) numbers for better performance * shortcut in _mul for small numbers (< $BASE_LEN2) * added _and, _or, and _xor and let them use more than 16 bits * find out how many bits _and, _or and _xor can safely use (cap at 23) * div() might leave empty array, so __strip_zeros fixes these * streamlined _acmp() * cap of 5 for BASE for UTS and UNICOS/Cray * better test to find out what BASE should be (use +0.0 to force floats) 0.16 2001-11-19 Tels * fixed comments a bit * finished _mod() when $y < $BASE and $BASE % $y != 0 and $BASE % $y != 1 * streamlined _mod() loops a bit * added _pow() for faster bpow() * small fix to make 5.005_03 happy ($x = shift @prod vs $x = shift @prod || 0) 0.15 2001-11-11 Tels * added _dec() and _inc() for much faster $x++ and $x-- 0.14 2001-11-04 Tels * added _mod() for faster $x % $y 0.13 2001-10-23 Tels * better detection of BASELEN by matching against expected pattern 0.12 2001-10-03 Tels * _div: 99999 => $BASE-1 ($MAX_VAL), that made some div's fail if $BASE != 5 0.11 2001-09-07 Tels * automatically USE_MUL or USE_DIV 0.10 2001-08-24 Tels * no longer export anything, ignore import calls 0.09 2001-07-20 Tels * don't use warnings for older Perls 0.08 2001-07-15 Tels * fixed bug in mul() shortcut 0.07 2001-07-15 Tels * applied Philip Newtons spelling and doc patch(s) * accidentally had the old, slow mul() code in. Oups. * fixed also a bug in that new code * also the speedup in mul() occurs with $x having lots of zeros, not $y. * first argument is always classname, so removed checks and shift * shift in base ten by _lsft() and _rsft() 0.06 2001-07-09 Tels * first release ############################################################################## Math::BigInt::CalcEmu: 0.04 2004-03-12 Tels * removed unnec. emulation routines (all except _signed_foo) 0.03 2004-01-13 Tels * $VERSION was overriding the $VERSION from MBI (Thanx Gisle Aas!) 0.02 2003-12-30 Tels * the code in Calc::_root() uses now sprintf(), but the one in Emu was not 0.01 2003-12-26 Tels * first version, taken over all the code from BigInt ############################################################################## Math::BigInt::Scalar: 0.11 2002-01-07 Tels * fixed version * added DESCRIPTION section to stop pod2man complaining * added _dec, _inc 0.10 2001-08-24 Tels * no longer export anything, ignore import calls 0.06 2001-07-20 Tels * don't use warnings for older Perls 0.05 2001-07-15 Tels * first argument is always classname, so removed checks and shift 0.04 2001-07-09 Tels * first release ############################################################################## Math::BigFloat: 1.60 2008-04-20 Tels * fix #34459: bsqrt() breaks on floats with enough digits (Thanx Niko Tyni!) * fix #35238: batan2() handles inf/+inf wrong * fix #35162: MBI segfault (as_number(Math::BigRat()) was wrong) 1.58 2007-06-30 Tels * remove Exporer from @ISA * support config('lib') as shortcut for config()->{lib} * add bpi(), bcos(), bsin(), batan(), batan2() methods * add bmuladd() * streamline the is_xxx() and copy() methods 1.57 2007-05-05 Tels * add bnok() method (n over k) * add all the missing modify() hooks 1.55 2007-04-16 Tels * make bexp() much faster (esp. under GMP) by caching the first coefficients and rewriting the inner loop * support "try" and "only" in import() 1.54 2007-04-09 Tels * fix bug #21747: Re: weirdity in bignum... (powers and high precision): infinite loops for blog() (and consequently bpow()) if you requested an accuracy greater than 67 digits (uses _log() now, and not blog()) Thanx to darconc! * cache the result of _log(2) and _log(10) so that subsequent calculations can re-use the already done work * instead of computing _log(10), compute _log(1.25) and _log(2) and then do: _log(1.25 * 2 * 2 * 2) = _log(1.25) + _log(2) + _log(2) + _log(2) This makes computing _log(10) much faster, so that computing blog(N) is about a factor of 5 faster when N >= 10 or N <= 0.1 * add bexp() 1.53 2007-03-04 Tels * fix #25144: [PATCH] Math::BigFloat->new considers any reference a BigInt (Thanx mschwern!) * fix bug #13866: NaN (in bignum queue) * fix bug #21586: Incorrect result when comparing with NaN * fix bug #15896: "==" overloading is broken for "NaN" 1.52 2007-01-27 Tels * fix brsft() and bpow() in list context only return on number (bug #21413) * make as_int() return a BigInt, too (not just as_number()) (bug #21412) * add as_oct() * bpow(): handle negative X and negative Y (instead of returning NaN) 1.51 2005-04-10 Tels * fix new() to work with Math::BigInt::Pari 1.50 2005-03-29 Tels * fix rounding doc, add notes about prevision vs. accuracy * set FastCalc as default (we still use whatever MBI uses) 1.49 2005-03-20 Tels * remove dependecy on Scalar::Util in bdiv() * bdiv() cache result of "!$y->is_one()" for wantarray case to make ($res,$rem) = $x->bdiv($y); about 10% faster 1.48 2005-01-01 Tels * use new interface to _scale_a() and _scale_p() in BigInt * add bneg() and inline is_zero() in it, making it 1.6 times faster * replace ref($_[0]) w/ undef when it isn't actually needed. This makes some ops (bsstr(), bneg etc) about 2% faster for small numbers * use MBI::_register_callback() to get notified of lib changes * bgcd()/blcm() never worked, so fix them for integers and add tests 1.47 2004-10-10 Tels * inf/NaN fixes for bpow() * eliminate the need for _zeros() in new() (speed-up for GMP et. al.) * eliminate _is_zero() in new() (small speed up) * added shortcut for simple numbers in new() (speed up) 1.46 2004-08-13 Tels * blog(10,10) ($x == $y) returned '1.0000...' instead of '1' 1.45 2004-07-30 Tels * simple inherit bsub() from BigInt, also fixes bsub() failing under $x -= $x - Thanx Peter J. Acklam! * bdiv() failed when passed a variable twice (thanx Peter J. Acklam!) * bfround() and bround() are about 10% faster when going via Math::BigInt's bround() due to constructing a fake BigInt instead of going via ->new() * fixed undef warnings in bpow(0,$y) ($y non-integer) (thanx kenny!) 1.44 2004-03-12 Tels * bpow() computed -X ** Y wrong for Y that are odd * use $HALF instead of 0.5 to speed up broot() * use Calc instead of BigInt for parts, that makes it roughly 2x faster it also saves memory (419 vs. 767 bytes per (small number) object) * bmod() did needlessly test for NaN arguments twice 1.43 2004-01-13 Tels * small fixes in AUTOLOAD * delete $x->{_a} vs. $x->{_a} = undef to save memory 1.42 2003-12-30 Tels * ffac(inf) is inf, not NaN * flog() calculate integer result first, and if it fits, return it this makes it much faster in case the result is a perfect integer * require (instead of use) Exporter * froot() calculates an integer result first, and it if fits, returns it 1.41 2003-12-11 Tels * flog(): 0.5, 0.25, 0.125, 2, 4 and 8 were not scaled properly back to 1, instead they remained 0.5 and 2, respectively. This was a '<' vs. '>=' respective '<' vs. '<=' issue. No other values are affected (neither getting slower nor faster), but the ones in question (incl. their multiples like 20, 80, 0.0125 etc) are now tremendously faster - about a factor of 30 to 60! :-) * removed some crufty logic from _log_10() and made the special cases of 2, 10 and 0.1 slightly faster. This also helps log($x,2) and log($x,10). * bfac() slightly faster for small arguments * downgrading to bigint failed for .2e2 (produced 200 vs. 20) 1.40 2003-09-23 Tels * bstr(): removed unnec. BigInt math and inlined is_zero() => great speedup (10% to factor 6.5 depending on input) * replace $self->_one() by $self->bone() 1.39 2003-07-06 Tels * $x->blog($base) can handle a $base which is a Math::Bigint * replace die() with Carp::croak 1.39 2002-11-03 Tels * $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0) were still not doing the right thing and no tests caught it *sigh* * blog(): + MUCH faster when $x > 10 or $x < 0.1 (constant time vs. time * 10 when doubling/halving $x) + also much faster if $x has many digits (like 1/3 or 123**123) + for $x < 1 and $x > 0 did not work at all (bacmp vs bcmp) + returns now NaN if $base <= 0 or $base == 1 + does handle other bases than "undef" (aka e) properly now * require Math::BigFloat did not work (opposed to BigInt, where it does) * _pow() suffered the same bug of bacmp vs bcmp (so 0.2 ** 0.2 failed) * removed unused _pow2() routine * _find_round_parameters() returns ($x,$a,$p,$r) and not ($a,$p,$r), so use it correctly, and also test for $x = NaN afterwards (happens when $a and $p were set and thus $x became NaN) * bsqrt() failed since v1.63 for values like 0.2, 0.002, 0.00134 etc * added broot() method (albeit slow for now) * $x->is_one('-') was broken (never returned true for $x == -1) * config() can take arguments and set them, croak on wrong ones * config(trap_nan => 1) to manipulate former $NaNOK variable * config(trap_inf => 1), too * trap_nan/trap_inf really croak on any attempt to create an NaN/inf * spellings of Bigint => BigInt * simplify config() by using SUPER::config() 1.38 2002-09-08 Tels * fix that bsqrt() would hang for certain inputs. Instead of using Newton's, we now rely on the fact that sqrt(x*y) = sqrt(x) * sqrt(y) by setting y to 100. This removes the while loop entirely and makes it much faster while fixing the bug at the same time. * $x->bsqrt(0) did needless warn about undef values, and round to 4 digits instead of beeing equivalent to $x->bsqrt(undef) * ditto for $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0) * use File::Spec was needless, since it was required later on again 1.37 2002-08-20 Tels * bcmp()/bacmp() upgrade now if requested 1.36 2002-08-13 Tels * as_hex() and as_bin() work now at least for inf, NaN and integers * fixed bsstr() (and thus also numify()) for negative numbers - Ouch! * $x->new("0.02"); $x->accuracy($a); $x->bdiv($y,$d) failed to round when $d > $a * numify() returned '+inf' instead of 'inf' * (more) tests for bsstr(), numify(), as_hex(), as_bin 1.35 2002-07-07 Tels * bfround() used accidentally BigInt math; is now about 5.6 times faster for small numbers * bdiv()/badd() etc skip objectify() if possible and are thus faster * doc for accuracy()/precision() * $x->bmod() was not modifying $x in place when returning NaN/inf/-inf * avoid unec. calls to objectify() for binary op's 1.34 2002-06-10 Tels * upgrade used badd() instead of bmul() inside bmul() (again! arg!) 1.33 2002-06-09 Tels * import() fixed for older Perls 1.32 2002-05-19 Tels * upgrade used badd() instead of bmul() inside bmul() * bpow() now uses slower, but more correct way for fractions (this needs work) 1.31 2002-03-03 Tels * bpow() can handle second arguments beeing non-integer (f.i. 2 ** 0.2) * $x->bpow(0.5) optimized to $x->bsqrt(); 1.30 2002-02-25 Tels * bug in bsub() with not rounding when $x->bsub(0) was also in MBF * bcmp() and bacmp() 5 times faster due to numify() (might have now impose a limit on exponent - but I couldn't find a test that breaks it) * streamlined ffloor() and fceil() * fixed bug in $x->bsub(0) and $x->badd(0) (both forgot to round result) * new() downgrade integers if $downgrade is in effect * optimized fpow() (one is_zero() less) * optimized as_number (nearly twice as fast) * $x->badd(0) forgot to round $x * downgrade and upgrade are valid methods for inheritance 1.29 2002-02-24 Tels * overload for 'log' now inherited by BigInt * _binf(), _bnan(), _bone() and _bzero() instead of longer bone() etc * inf/NaN fixes from v1.51 were missing for BigFloat * bdiv() upgrades if applicable 1.28 2002-02-16 Tels * fixed use Math::BigFloat ':constant'; * fixed flog() function to calc right result, honour rounding-globals 1.27 2002-02-10 Tels (forgot to increase version) * ffac() * various: disable Math::BigInt::upgrade to avoid deep recursion 1.27 2002-01-06 Tels * overload for log() and flog()/blog() * bzero()/bone() handling of A & P was broken * bround()/bfround() handling of zeros forgot to set A & P * fdiv: fixed a bug in round to A with given round_mode (always used global) * fsqrt(): would hang/fail if either $x's or global A or P were set * fsqrt() didn't modify $x sometimes, but returned a new reference * fsqrt(): calc 4 more digits for rounding, not 1 (endless looping otherwise) * fmod() now actually works 1.26 2001-12-06 Tels * fneg() failed (now hand up to MBI) * frsft() and flsft() were no aliases to brsft() and blsft() * fone() was no alias for bone() * blsft() and brsft() were missing altogether * streamlined: fpow() and fmul() * removed the EXPORT_OK * fqsrt() uses now BigInt::bsqrt() as guess: greatly improved performance * make fsqrt() subclass proof by using $self instead of Math::BigFloat * bzero(), bone(): take additional A and P and store 'em * bnan(), binf(): clear A and P 1.25 2001-11-18 Tels * streamlining fixes in new() were missing * further streamlining in new() for 12345e1234 cases (fraction part empty) * added $rnd_mode support for compatibility * replaced the 'laber schwad blah blah' pod section by a pointer to MBI 1.24 2001-11-11 Tels * bacmp() fix for +-inf * streamlined new() * faster finc()/fdec() 1.23 2001-10-05 Tels * fixed facmp() (was broken the same way as fcmp()) * more rounding fixes from John P. 1.22 2001-10-03 Tels * Quite a lot of rounding fixes * $x->bnorm() is 4 times faster if $x == 0 * $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op) * added as_number() 1.21 2001-09-03 Tels * serious bug in bcmp() caused 1.5 to be greater than 2. Yikes! * bcmp() did not only return -1,0,1 and undef but other values, too * new('inf') produced NaN (was expecting '+inf') * exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN * include finf in AUTOLOAD list 1.20 2001-08-03 Tels * streamlined bcmp * drop leading '+' for inf 1.19 2001-08-02 Tels * 123/+-inf => 0, test for that and -1,0 / NaN => NaN * +123 / 0 => +inf, -123 / 0 => -inf (was missing in MBF) * fixed +-inf handling in bacmp/bcmp/bsub/badd/bdiv and tests for that * padd bstr() output of numbers with set A or P * remove bfloat() (Math::BigInt->bfloat() did not work, anyway, see bint()) 1.17 2001-07-15 Tels * applied Philip Newtons spelling and doc patch(s) * added bone() * tests for bnan() and bone() 1.16 2001-07-09 Tels * is_positive(), is_negative() * various pod fixes (overlong =item, spelling erorrs etc) * removed internal _set() and the tests for it * infinity support for fcmp(), fpow() * nailed the bug in fdiv() that caused fsqrt() to fail. fsqr() works now, too. * more tests 1.15 2001-06-15 Tels * added bfloor(), bceil() 1.14 2001-06-13 Tels * accuracy/precision rounding after fdiv() was missing * binary integer input (0b01110 etc) * A/P rounding after fdiv() was missing * '-0x0' would wrongly leave '-0' * as_number() was wrong for negative numbers and had no tests * added is_even(), is_odd(), _set(), the inherited ones were broken * fixed is_zero() for NaN * $x->bpow($y) for negative $y was unfinished * added is_inf(), binf() and some support for +-inf in new(), bsstr() etc * added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr() 1.13 2001-06-09 Tels: * adjusted fdiv() so that it now works proper with old testcases * (except a few nits, see testsuite and ACCURACY) * fdiv() in listmode (uses non-working fmod()) * fixed/test A/P after each op * $x->accuracy(), $x->precision() actually round $x to the value A/P * fixed fpow(), added tests for it * hexadecimal integer input (0xdeadbeef) * is_one() for -1 was wrongly true, tests for is_one() 1.12 2001-05-11 Tels * taken over testsuite from John P. * added tests for compare with fraction * fixed fcmp/fround/ffround * added accuracy/precision/fallback/round_mode * bsstr('NaN') returned 'NaNeNaN' 1.11 2001-05-09 * bug bcmp() (1e-08 was < 0, aka fractions were broken) 1.10 2001-05-07 * Tom's round fixes (minus one nit) * new: .xxx, -.xxx, +.xxx etc are valid inputs, while '.', 'x x x' and 'Exxx' are now invalid * finally got rid of C&P of overload section and clone() 1.09 2001-04-23 * length() in list context return length of mantissa & exponent * bug in bstr() for '0.x' style strings * added bsqrt() * workaround for Perl v5.6.0 overload-bool bug (via MBI) * fixed rounding 1.08 2001-04-18 * exponent(), mantissa() and parts() now return BigInt's * bnorm: 0Ey => 0E1 (was wrongly 0E0) * fixed is_zero() * added bround() and bfround() (only truncate mode) * fixed bug in bstr() for 1.203E-2 style numbers (Thanx Tom!) 1.07 2001-04-07 * bug in bstr() for 0.xxx style numbers, as well as for "-xxx" * babs(), bneg(), bint() work now * empty stubs for bsqrt(), bround() and bmod() * exponent(), mantissa(), parts() work now as expected 1.06 2001-04-05 * bstr() returns NaN for NaN's * renamed _norm to bnorm, added it to AUTOLOAD for compatibility * fixed bug Math::BigFloat->new(Math::BigInt->new(3)); * bug mul/div when second arg was BigInt * bdiv() works now with precision * precision() * doc about mixing different objects in overloaded math 1.05 2001-03-31 * fixed bstr() and bsstr() * added AUTOLOAD for fxxx() to work as well as bxxx() * enhanced and fixed testsuite for mul/cmp/add/new 1.04 2001-03-27 * bmul/bdiv/cmp work now, better _norm() 1.03 2001-03-06 * layed more foundations (mul() etc) 1.02 2001-02-24 * add()/sub() should work now 1.01 2001-02-22 * new() and bstr() work now (sort of) 1.00 2001-02-18 * started work ############################################################################## Math::BigInt: 1.99 2010-11-15 rafl * Stop as_int/as_number from losing precision (Peter John Acklam) (Closes: RT#43694) * Fix Math::BigInt::Calc::_modpow for (0 ** $x) % $y, with $x > 0 (Peter John Acklam) (Closes: RT#62918). * Stop $x -> bmodpow(1, 1) from failing when $x is large (Peter John Acklam) (Closes: RT#62949). 1.98 2010-11-08 rafl * Fix from_bin() documentation error (Peter John Acklam) (Closes: RT#61845). * Make as_int($inf) return inf, not NaN (Peter John Acklam) (Closes RT#62101). * Fix various typos in documentation and tests (Peter John Acklam) (Closes RT#62643). * Make digit($n) return 0 for "out of range"-digits (Peter John Acklam) (Closes RT#61812). 1.97 2010-11-07 rafl * Reorder the list return of Math::BigInt::Calc::_base_len() (Nicholas Clark) This change requires an update of Math::BigInt::FastCalc to version 0.24. * Fix segfault when upgrading irrational numbers (Father Chrysostomos) 1.96 2010-09-28 rafl * Various documentation fixes provided by gregor herrmann 1.95 2010-09-14 rafl * Re-upload v1.94 as a stable release 1.94 2010-09-13 rafl DEVELOPMENT RELEASE * Attempt to fix Math::BigInt::Lite failures 1.93 2010-09-13 rafl * Depend on perl >= 5.6.2 * Remove obsolete core test directory boilerplate * Convert from Test to Test::More 1.92 2010-09-10 rafl * re-upload v1.91 with a fixed SIGNATURE 1.91 2010-09-10 rafl * fix various documentation bugs 1.90 2010-09-03 rafl * fix bnok() for k==0 and k==n-1 1.89 2008-04-20 Tels * fix #35238: batan2() handles inf/+inf wrong 1.88 2007-09-22 Tels * fix wide ints on Perl v5.8.0 (Thanx zefram!) * minimum required is Perl v5.6 (tested by zefram) * _find_round_parameters(), _scale_a() and _scale_p(): trunc A/P to integers * fix from_oct(), from_bin() and from_hex() 1.87 2007-06-30 Tels * fix undef base in blog() * support config('lib') as shortcut for config()->{lib} * _find_round_parameters(): convert $a & $p to normal scalars, or bad things will happen during rounding of BigFloats * add bpi(), bcos(), bsin(), batan(), batan2() methods * add bmuladd() * streamline the is_xxx() and copy() methods 1.86 2007-05-05 Tels * bump version 1.85 2007-05-05 Tels * bump version 1.84 2007-05-04 Tels * add bnok() method (n over k) 1.83 2007-04-16 Tels * bump version 1.82 2007-04-09 Tels * use $CALC->_zeros() directly (instead _trailing_zeros()) to speed up exponent() and mantissa() * fix documentation that blsft() and brsft() default to base 2 (not 10) * add bexp() and fix overloading for exp() 1.81 2007-03-16 Tels * no code change, just a package update 1.80 2007-03-04 Tels * require Perl v5.6.2 as minimum * fix bug #24969 (Can't use an undefined value as an ARRAY reference) * fix bug #12857: Subclasses and overload * fix bug #13866: NaN (in bignum queue) * fix bug #21586: Incorrect result when comparing with NaN * fix bug #15896: "==" overloading is broken for "NaN" 1.79 2007-02-02 Tels * fix typos 1.78 2007-01-27 Tels * implement "try" and "only" as replacements for "lib" * make 'use Math::BigInt lib => "foo"' warn if foo cannot be loaded and a fallback occurs * fix bug #21446 - Docs/code inconsistency for bnorm() method * fix bug #21964 - A patch to include a rounding mode of 'common' * fix bug #21445 - Documentation error for exponent() method * fix bug perl #41050 - NaN returned when raising integer value to negative power * add from_hex(), from_oct(), and from_bin() * add as_oct() 1.77 2005-05-17 Tels * bump version 1.76 2005-04-10 Tels * fix rounding doc, add notes about prevision vs. accuracy * trap inf and -inf in new() * load FastCalc as default 1.75 2005-03-20 Tels * use a trick to remove the dependency on Scalar::Util in bsub() * fix atan2(), it did not preserve the order of arguments (Thanx to Ambros & Zaxo for report and patch!) 1.74 2005-01-01 Tels * streamline _scale_a() and _scale_p() for more speed in rounding * remove the now unnec. support for MB_NEVER_ROUND and {_f}, this makes all ops that call round() a tad faster (one exists is removed) and shrinks the codesize a bit * streamline bneg(), inline is_zero(): makes it 1.6 times faster * replace ref($_[0]) w/ undef when it isn't actually needed. This makes some ops (bsstr(), bneg etc) about 2% faster for small numbers * restrict low-level math library names to sane chars to avoid exploitation of eval() * fill_can_cache() accidentally did checks for 'or' & 'xor' * inline _fill_can_cache * add _register_callback() to notify subclasses of lower math lib changes * bgcd() is now about 10% faster * is_positive(0) == 0, since 0 is neither positive nor negative * streamline bmod() a bit * fix blog() constructing arguments (broke Math::BigInt::Constant) 1.73 2004-10-10 Tels * overloading of <<= and >>= makes these ops about 10% faster and fixes the problem that "$a <<= 2" would create a different object for $a to point to * quite a lot of fixes for NaN/inf handling in bpow() (bmul already did it right) - bug report by jeff at thekidders com and Hugo - Thank you! 1.72 2004-07-13 Tels * no changes 1.71 2004-07-08 Tels * fixed bsub() failing under $x -= $x; Thanx Peter J. Acklam! * _scan_for_nonzero() reuses length/stringform of $x and is thus faster, this helps rounding if the number after the roundposition is '5' 1.70 2004-03-12 Tels * bpow() computed -X ** Y wrong for Y that are odd * 0 ** -Y => +inf (was NaN) due to 0 ** -Y => 1/0**Y => 1/0 => +inf * fixed bug in perl -Mbignum -le 'print 2 ** 46 * 3' under Bigint::Lite leading to "Can't use an undefined value as an ARRAY reference at /usr/local/lib/perl5/5.8.2/Math/BigInt/Calc.pm line 462." * fixed upgrading of blog() with base = undef (means: base e) * make the synopsis actually runnable (Thanx Paul McCarthy) * blcm(): handle a list of strings (instead one obj and some strings), too 1.69 2004-01-13 Tels * bacmp(+-$x,-inf) was wrong (Thanx William T. Morgan!) * digit($x,$y) segfaulted under 5.6.1 if $y was a BigInt * blog() was missing the modify() check (breaking MBI::Constant) * delete $x->{_a} vs. $x->{_a} = undef to save memory 1.68 2003-12-26 Tels * bfac(inf) is inf, not NaN * added alias names: as_int() (as_number()), is_pos(), is_neg() and doc * factored out all the emulation code and moved it to Math::BigInt::CalcEmu * binary/hexadecimal input was twice as slow as v1.66 due to a typo in v1.67 * streamlined overload for boolean context (20% faster "... if $x;") * round() was missing a croak() in path testing for wrong roundmode * badd(): optimize away setting of sign if it is already right * bdec() is about 10% faster for negative numbers * bpow(): removed some now needless tests for 0 and 1: about 30% faster for small numbers * streamlined exponent() (parts() benefits from this, too) 1.67 2003-12-02 Tels * overload for cos/sin/exp/atan2 to make cos(Math::BigInt->new(...)) work * implemented blog() with a simple and fast "iterative" method * use _log_int() in $CALC if possible * cache $CALC->can(...) calls in global %CAN hash for speed * reorder is_zero() check for band(), bior() and bxor() to speed up the case for when the underlying lib has _and(), _ior() and _xor() * implement a new way of emulating AND, OR and XOR, this tremendously helps if band() et. al. are called with negative arguments * try to call _signed_or(), _signed_and() and _signed_xor() in lib * is_foobar() methods are slightly faster * bnot() is about 12% faster * bsqrt(): moved is_zero() || is_one() test out of the way => 28% faster for "small" values (Calc and GMP) * small change for overload::constant * bfac(): do 0 or 1 check only if CALC cannot do _fac() (thus faster) * removed a needless _copy in bmod() with negative arguments (slightly faster) 1.66 2003-09-01 Tels * document accepted inputs better * fix wrong upgrade and undef-parameter handling in broot() * implement broot() if lib doesn't have a _root() routine for $y that are powers of two and for small $x * warn if broot() cannot yet compute proper result * remove needless _one(): 3% speedup for binc() * remove needless _swap(): 1% (Calc) - 6% (GMP) speedup for overloaded math 1.65 2003-07-13 Tels * document that config() can set certain values * replace die() with Carp::croak() * remove needless is_zero() check in as_bin() and as_hex(), making them faster, especially when under a different lib like GMP. * Fixed the infinite recursion in bignum. See http://xrl.us/k6y * fix handling of 0e999, 0e-999 etc 1.64 2002-11-03 Tels * removed needless "my $c = ...;" statements in binf() and bnan() * forgot () around "$x->{_f} & MB_NEVER_ROUND" * bsqrt(inf) == inf, not NaN * $x->bdiv($x) did not round the resulting 1 properly * removed the shortcut testcode in bdiv() (Calc handles this now) * added (non-working for now) broot() method * changed length() to CORE::length() in two places (thanx Liz!) * config() can take arguments and set them, croak on wrong ones * config(trap_nan => 1) to manipulate former $NaNOK variable * config(trap_inf => 1), too * trap_nan/trap_inf really croak on any attempt to create an NaN/inf * spellings of Bigint => BigInt * _find_rounding_parameters(): set $a to undef if it is 0 1.63 2002-09-08 Tels * bsqrt() did not modify $x but returned new object when lib does not have a _sqrt() routine (BareCalc, BitVect and Pari are affected, Calc, FastCalc and GMP were not) 1.62 2002-08-21 Tels * bcmp()/bacmp() upgrade now if requested * bmodinv() uses an all-positive algorithm, speeding it up by about 5-8% and allowing to implement the same algorithm in Calc for factor 4 speedup 1.61 2002-08-13 Tels * tests for bsstr()/numify() with negative/special inputs * bround() keeps $scale as scalar for speed and less problems * fix for trailing newlines in input * some doc fixes (especially return values of is_foo() methods) * make testsuite so that it will pass under FastCalc easily 1.60 2002-07-07 Tels * shortcuts to avoid calls to objectify for add/sub/mul/div/mod/pow/bcmp etc * fix overloaded bcmp() so that the objectify()-avoidance kicks in * avoid calling round() when BigFloat requested 'no rounding please' * bcmp()'s shortcut for comparing x <=> 0, 0 <=> 0, 0 <=> $y was making things slower than just handing the compare to Calc. Even more so for Pari et al. * $x->accuracy() and $x->precision() returned undef, instead of 0 if A/P of $x was 0 and global A/P was undef. * $x->bmod() did not modify $x in place when returning NaN/inf/-inf * some binary ops (band/bxor/bior/bpow) were not properly rounding the result to the requested A/P/R; the same ops also forgot to take $y into account * doc for accuracy()/precision() 1.59 2002-06-10 Tels * pod fixes for bmodpow()/bmodinv() * fix in as_hex() and as_bin() for older Perls * speedups in bpow(), bmodin() and bmodpow() 1.58 2002-06-09 Tels * invalid inputs with two dot's (1.2.3 or 1..2 etc) are now really invalid 1.57 2002-05-30 Tels * fixed objectify() to make "perl -Mbigrat -le 'print 1+2/3'" work * added bmodpow() and bmodinv() as (not-working yet) stubs 1.56 2002-03-17 Tels * documented config() * simplified import() logic a bit * changed some isa->($upgrade) => !$isa->($self); 1.55 2002-03-17 Tels * :constant picks up binary/hexadecimal constants * Math::BigInt->digit(123) works now 1.54 2002-03-03 Tels * really fixed overlong pod =item * downgrade() and upgrade() with undef as argument didn't clear the variable * bmul() upgrades if second argument is non-integer * bdiv() upgrades if $x > $y * bpow() upgrades if second argument is non-integer * objectify disable downgrade (for MBF) * new() twice as fast due to shortcut simple numbers, save _split() & _round() 1.53 2002-02-27 Tels * precisision typo * fixed overlong pod =item * added downgrade() 1.52 2002-02-24 Tels * hooks for _bin(), _bnan(), _bone() and _bzero() * =head2 section for accuracy 1.51 2002-02-16 Tels * fixed bfround(-x) (f.i. 0.004->bfround(-2) resulted in 0.01, not 0.00) * bfround(x) rounded at wrong place (off by one) * calling bfround(x) rounded further and further instead of keeping result * blog() upgrades if requested * added doc stub for every public function 1.50 2002-02-10 Tels * bfac() and hook for _fac() in libs * documented sub-classing and auto-upgrade * < 4 test in bsqrt() after the CALC call for more performance * added overload for sqrt() * added possibility to upgrade via use Math::BigInt upgrade => 'Foo::Bar' * Math::Big(Int|Float)->accuracy() clears precision, and vice versa * small optimization in bdiv() regarding abs($x) < abs($y) * brsft() for negative numbers in base 2 was completely wrong 1.49 2002-01-07 Tels * as_hex() and as_bin() use 16 instead of 8 bits per iteration * overload for log() and blog() * tricks to make 'require Math::BigInt' and 'use Math::BigInt();' work again * use $CALC instead of require for newer Perls (test for $] > 5.006 vs 5.6) * bzero()/bone() handling of A & P was broken * bround()/bfround() forgot to set A or P for zeros * embedded _find_round_parameters into round(), streamlined both versions * round() now uses string-add to make it almost twice as fast * bnot() did round twice 1.48 2001-12-06 Tels * fixed pod in many places * bmod: use round(), not bround() * bsqrt: use _sqrt() from lib, if possible * bsqrt: would hang for certain (most?) inputs * bdiv: slow check for 1 || -1 replaced by much faster version * bdiv: call _div() only when nec. in list context, otherwise scalar * streamlined copy(), _find_round_parameters() * removed the EXPORT_OK except for objectify, _swap and bgcd/blcm * bzero(), bone(): take additional A and P and store 'em * bnan(), binf(): clear A and P 1.47 2001-11-18 Tels * added $rnd_mode support for compatibility * two 'my $t = ... if ..;' cases to 'my $t; $t = ... if ...;' * added overload for %=, |=, &= and ^= for more speed * _split(): check for 1e2e3 and reject it 1.46 2001-11-11 Tels * binc(),bdec() use lib (via _inc(),_dec()) => faster (see BENCHMARK) * avoid the unnec. rounding bsub()/binc()/bdec() (badd() already took care) * made bsub() faster by removing the bneg() overhead from it 1.45 2001-11-04 Tels * tests run now in subclass, too * bmod() can use _mod in lib * lots of tests fixed (assumed wrong base etc) and added * bpow() about 10-15% faster for small numbers (like 2 ** 150, 3 * 200 etc) 1.43 2001-10-05 Tels * $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op) * Heaploads of rounding fixes (and tests) * Test for 99999-bug in Calc 1.42 2001-09-03 Tels * bug in overload section causing performance losses in subclasses * call $CALC->import() with list of libs * odd numbers never have trailing zeros, so don't convert them to DEC to look * as_hex() and as_bin() * $x->bmod() did not modify $x, only returned result. Oups. * new('inf') produced NaN (was expecting '+inf') * exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN 1.41 2001-08-08 Tels * fixed inf test (coredumps) 1.40 2001-08-03 Tels * bxor(-$x,-$y) was broken (and not tested *sigh*) * streamlined bcmp * drop leading '+' for inf * bxor(), band(), bior() with negative arguments don't get passed to lib (makes it work with BitVect, Pari, GMP etc) 1.39 2001-08-02 Tels * fixed history (duh!) * assign return values from $CALC back to $x->{value} * fixed +-inf handling in a lot of places and tests for that * band(), bxor() and bior() now work with negative inputs * remove bint() (Math::BigFloat->bint() just DNDWIM and no sense, either) 1.38 2001-07-15 Tels * test for mul() shortcut 1.37 2001-07-15 Tels * applied Philip Newtons spelling and doc patch(s) * Benjamin Trott: _split() is faster for numbers that need no splitting * Benjamin Trott: don't take shortcut in badd(), or Pari won't work * allow use Math::BigInt lib => 'Pari,BitVect,Foo,Bar'; * delegate shifting to CALC if possible, otherwise fallback * test for self-pow, to see if lib's fail (since BitVect failed for self-pow) * _one() => bone() * +x / 0 => +inf, -x / 0 => -inf, while 0/0 and +-x % 0 are still NaN * tests for bnan() and bone() * Math::BigInt::Calc now determines biggest $BASE to use. Default should now be 1e7 on most systems, giving 20% to 40% speedups. 1.36 2001-07-04 Tels * is_positive(), is_negative() * various pod fixes (overlong =item, spelling erorrs etc) * torn out the bones from under the flesh and moved them to Math::BigInt::Calc * added Math::BigInt::Calc, Math::BigInt::Small (and Math::BigInt::BitVect) * fixed tests for bacmp() (could never fail) * removed internal _set() and tests for it * +-inf handling in bcmp(), bpow() 1.35 2001-06-15 Tels * added bfloor(), bceil() * fixed bior(), bxor(), band() for $x->bxxx(NaN,0), added modify() to them 1.34 2001-06-13 Tels * binary integer input (0b01110 etc) * fixed: '-0x0' left '-0' * added is_inf(), binf() and some support for +-inf in new(), bsstr() etc * added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr() 1.33 2001-06-09 Tels * bround() no longer uses 10 ** $pad and is thus much faster when rounding up * fixed and added rounding benchmark (did time bmul instead bround) * blsft(),brsft(): can work in different bases, check against invalid inputs, more tests, speedup when in base 10 * _trailing_zeros is 50% faster * A/P after each op, tests for it in accuracy.t * round() instead of bnorm() * $x->accuracy(), $x->precision() actually round $x to the set value * tests for is_one() * hexadecimal integer input (0xcafebabe etc) 1.32 2001-05-11 Tels * added accuracy/precision/fallback/round_mode 1.31 2001-05-08 Tels * _ between digits now accepted, ' ' no longer valid inside (but at front/end) * Exxx is NaN, and no longer produces warning * .xxx style numbers are valid input * tests for 1E1, 123E-2, 1E2 etc style input to Bigint.pm * fixed overload (w/ _swap/copy), subclasses can inherit it easily * removed clone() * added bsstr() 1.3 2001-04-23 Tels * added (compatible to MBF) mantissa(), exponent() & parts() as well as tests * _trailing_zeros() * fixed as_number() to return copy of BigInt * added bround(), bfround() and support for round_mode() as well as $rnd_mode * fixed bug in bdiv() wich left reminder "-0", causing further op's to die() * added is_valid to testsuite to see whether invalid objects are created * added bsqrt() * workaround coredump bug in bool() for v5.6.1 1.23 2001-04-07 Tels * spelling errors in pod 1.22 2001-04-05 Tels * documented Peters OS/390 patch/changes (fix was in for quite some time) * fixed bug Math::BigInt->new(Math::BigFloat->new(3)); * objectify() with other objects than BigInt as further args, copy() etc * $x->digit($n) to query fast value of Nth digit * as_number() 1.21 2001-03-30 Tels * bool() works now under 5_005 * bug in bsub where numbers with at least 6 trailing digits after any op failed 1.20 2001-03-24 Tels * added: is_nan() * bug in bmod/bdiv, I forgot some cases with negatives. Thanx to Bruce Fields! * documented ':constant' and eval() crash on Perl 5.00x * documented BigInts behaviour of bmod/bdiv and use integer 1.16 2001-03-09 Tels * Math::BigInt::badd(4,5) and Math::SomeChildOfBI->badd(4,5) work now * '$x = scalar (**|%|+|-|*|\) $object;' failed (was not tested, either) * 'if ($x)' is now O(1) instead of O(N) and at least twice as fast * fixed nasty bug in _digits that caused <=> after add/sub/mul etc to fail if result was between 100001 and 109999, added test for this * added test cases for op's that should preserve args (+,+=,abs(), neg() etc) * added tests for overloaded 'bool' * added test.pl and some examples (prime.pl, bigprimes.pl) * tests after "use Math::BigInt :constant" were screwed due to not using eval * $x->numify() (for $array[$x] = 0; etc) is much faster now * added caveat documentation for $x = -$x; and $x *= string1 operator string2; 1.15 2001-02-24 Tels * $x / $x is now a lot faster (more O(1) than O(N)) * 10 ** $x is now a lot faster (more O(N/5) instead of O(N)) * overload of **= makes $x **= $y faster * 0 ** 0 was NaN, not 1 * -a % b = +c (was -c) to be compatible with perl * added $x->length() and test for it; fixed _digits() (was off by 1) * objectify() was not exported, added tests for objectify() 1.14 2001-02-21 Tels * overload +=, -=, *= and /= for about 20-30% more speed if both args have roughly same length * shortcut in add() makes $x += $y; $x -= $y; for large $x and small $y an O(1) case instead of O(N) * fixed (non-critical) bug that caused objectify in numify/bool/stringify to create scratch objects from undef params. 1.13 2001-02-18 Tels * got rid of duplicated copy() code in new() 1.12 2001-02-16 Tels * accidentally dropped self-multiply test in bigintpm.t * fixed bug in overloading cmp * after correcting the overload for 'cmp', I got a lot of test failings and finally discovered that the bstr()'s return of '[+-][0-9]+' instead of Perls ways of '[-]?[0-9]+' breaks string comparisons with numbers :( F.i. ok() from Test.pm uses 'eq' and you can not do ok($a,3*3) where $a is a BigInt. IMNSHO clearly wrong. And only changing the way cmp is overloaded would lead to the curios situation that the following: 'print "$a eq $b" if $a eq $b;' would print "+3 eq 3", which looks wrong. Mark B. said go ahead and change bstr(), so I changed it ;) to drop the '+', adapted all the tests, changed the doc, etc. BigInts behave now transparently like build-in scalars in integer/string context ;o) 1.11 2001-02-14 Tels (first release) * fixed bug in band(), bxor(), etc that used badd($x, fixed_number_here); * since subclasses might not be happy with fixed numbers, make sure we pass BigInts all the time if using something like $someclass->badd(); * fixed bug in band/bxor/bior which destroyed second argument * bxor/band/bior work now correctly for subclasses * ++ and -- are now a tad (ca 5%) faster 1.10 2000-11-24 Tels * finally made it Math::BigInt (w/o trailing 's') 1.09 2000-11-23 Tels * fixed bug in bmul (and thus bpow) (self multiply works now) 1.08 2000-11-22 Tels * fixed all but one test (band bior bxor etc) 1.07 2000-11-20 Tels * objectify fixed to not make copies and work with subclasses 1.06 2000-11-19 Tels * 7 tests remain * bgcd accepts lists, added blcm 1.05 2000-11-16 Tels * 8 tests remain * new copies _all_ fields, not only Math::Bigint ones 1.04 2000-11-15 Tels * fixed bigintpm to test '++' and '--' properly * done div, fixed mul/bpow (13 tests remain) 1.03 2000-11-14 Tels * x**0 => 1 (instead of x) * fixed bigintpm to include bpow, binc, bdec, new() test 1.02 2000-11-13 Tels * fixed sub and mul (sort of) * found out that "$wanted = shift || return bzero()" causes a call to numify, * testing for undefined fixes this problem (but might waste more time for * a new(0), will save time on average. ############################################################################## Math::BigRat: 0.2624 2022-06-27 * Improve stringification. Better handling of upgrading/downgrading in stringification methods. Add new method bfstr() for compatibility with Math::BigInt og Math::BigFloat. Add new author test files to confirm. 0.2623 2022-05-16 * Fix rounding issues. 0.2622 2022-04-13 * Add more cases for downgrading, and more tests. 0.2621 2022-04-11 * Improve downgrading and upgrading. 0.2620 2021-10-03 * Skip tests that don't work on older Perls. Also skip tests that compare floating point numbers. 0.2619 2021-10-01 * Correct the handling of Inf and NaN in numify(). * Improve constant overloading. When numeric constants are overloaded (with the ":constant" option) in Math::BigRat, every numeric constant is converted to an object regardless of how it is written. 0.2618 2021-09-28 * Add new method binv() for the inverse. * Add new method dparts(), which returns the integer part and fraction part of a number. For example, 9/4 is split into 2 and 1/4. This method is equivalent to the Math::BigInt and Math::BigFloat methods with the same name. * Improve blog(). Handle cases $x->blog($b) where the numerator of $x and/or $b is 1 as special. * Sync tests with Math-BigInt. 0.2617 2021-07-12 * Fix CPAN RT #132712. * Reorganize existing test files and add more test files. 0.2616 2021-07-12 * Improve the handling of the backend libraries. 0.2615 2021-07-10 * Fix bnok(). It didn't work at all. * Fix minor POD error (CPAN RT #125148). * Better Makefile.PL. * Update the BUGS and SUPPORT sections in the POD. * Update README. 0.2614 2018-04-17 * Fix bug in bpow() (CPAN RT #124002). Add tests to verify fix. * Fix bug in is_one(). The code $x->is_one("-") returned false when $x was -1 and true when $x was 1. Add tests to verify fix. * Improve bsqrt() so it returns the exact result when possible. * Fix documentation errors. * The tests now require Test::More version 0.88 or newer. * Add test files t/release-portability.t, t/release-test-version.t, and t/release-cpan-changes.t. * Update TODO file. * Prefer as_int() to as_number(), since what is does is return an integer. * Expand tabs to spaces and clean up whitepace. * Convert test file t/02pod.t to t/release-pod.t and t/03podcov.t to t/release-pod-coverage.t. * Reformat CHANGES to match the specification in CPAN::Changes::Spec and CPAN::Meta::Spec. * Better testing of NaN and Inf trapping. * Use $class->config("xyz") rather than $class->config()->{xyz}. * Add more tests of is_inf() to catch bugs like the one that was in is_one(). Specifically, make sure we test is_inf() with and without a sign argument. * Use $LIB for the math backend library class. * Reformat test data in t/bigratpm.inc. * Import carp() and croak() from Carp. * Make tests pass when '.' is not in @INC (CPAN RT #120892). * Remove t/bigroot.t and t/biglog.t which didn't test Math::BigRat at all. 0.2613 2017-06-16 pjacklam * Fix problem with second operand being changed in multiplication (CPAN RT #121139). 0.2612 2017-03-01 pjacklam * Improve the logic in blog() to determine how to call objectify(). The old, simpler logic didn't handle an undefined base correctly. * Fix bexp() which was objectifying one argument too many. * Don't quote the version number of a use'd module. 0.2611 2016-12-13 pjacklam * Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199 and #119225). 0.2610 2016-12-11 pjacklam * Fix Makefile.PL so that this module installs over the core version. 0.2609 2016-12-03 pjacklam * Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL * Remove INSTALL file. The information is in the README file. * Inform in the BUGS file that the file may not be up to date. * Inform in the TODO file that the file may not be up to date. * Update AUTHOR information in Math/BigRat.pm. * Remove author information in LICENSE file. * Update README file. * Minor POD reformatting in lib/Math/BigRat.pm. 0.260805 2016-11-15 pjacklam * Standardize on using $LIB for the variable holding the class of the backend library. * Improve bmul() by doing _gcd() twice on smaller numbers rather than once on larger numbers. 0.260804 2016-04-25 pjacklam * Revert the change to the blsft() and brsft() methods, which truncated the input (and output) to integers. However, now convert the base to an object only when the base isn't an object already. Also return NaN if any of the three operands is a NaN. * Overloaded 'int' should not modify it's argument. * The first output argument from objectify() is the class name, so use the variable name $class, not $self. * In Makefile.PL, change "build_requires 'Test::More' => 0.47" to "test_requires 'Test::More' => 0.47". Test::More is only needed for testing, not for building. 0.260803 2016-04-22 pjacklam * Add methods bnan(), binf(), bzero(), and bone(). The old code was based on an undocumented behaviour where the superclass made assumptions about the subclass. * Fix tests where ok() was used incorrectly, like ok($got, $expected). * Remove "require Carp", since we have "use Carp" in the heading. * Completly rewrite new(). It was buggy and hard to maintain. * Add more descriptions to tests. * Rename blog-mbr.t to author-blog-mbr.t. * Simplify bsqrt() and blog(). Don't assume we know the internals of Math::BigFloat objects. * Change bmodpow() and bmodinv() so they handle all input arguments. Non-integers are truncated to integers. * Change internals of bnok(). * as_float() and numify() should not make assumptions about the internals of Math::BigFloat objects. * Wrap long lines. * Fix typo in POD ("conversation" -> "conversion"). * Make internal functions _new_from_float() and _new_from_int() redundant and remove them. They make assumtions about the internals of Math::BigFloat objects and Math::BigInt objects, respectively. * Make internal function _as_float() redundant and remove it. * Add methods band(), bior(), bxor(), and bnot(). 0.260802 2015-12-28 pjacklam * Fix blog(). The handling of inf and NaN was broken. It also returned incorrect result in several cases, especially when both the operand and the base were both integers. In some cases, the correct result was returned, but the operand was not set to this value. An undefined base (indicating that Euler's number e should be used) was not handled correctly. * Update author information in Makefile.PL. * Add tests for log() in t/bigratpm.inc as well as templates for the other overloaded functions exp, sin, cos, atan2, int, abs, and sqrt. * Update number of tests in t/bigratpm.t. * Add test file t/blog-mbr.t. * Reformat tests and add comments/descriptions to them. * Accept both "Inf" and "Infinity", ignoring letter case, and letting the sign be optional. This matches the current behaviour of core Perl. * Internal clean-up of the copy() method. * Remove all occurences of "require Carp", since we "use Carp". * Reformat some of the code to make the code more readable (for me, at least) and more in accordance with the guidelines in the "perlstyle" man page. * Correct some errors in the comments in the code. * Use "our ..." rather than "use vars ...". * Rename variables so they have more descriptive names and are more in accordance with the Math-BigInt distribution. * Remove unused variables. * Use "use lib 't'" rather than "unshift @INC, 't'". * Include "use strict" and "use warnings" in all files. 0.260801 2015-09-14 pjacklam * Added support for bdiv() in list context. Added corresponding tests. * Changed bmod() so the result corresponds to Perl's % operator, as well as the second output argument of bdiv() in list contest. Modified tests correspondingly. Now the behaviour of bmod() is consistent between Math::BigInt, Math::BigFloat, and Math::BigRat. * Clearer POD for the bdiv() and bmod() methods. * Display more information about loaded modules. 0.2608 2015-08-28 pjacklam * Wrap long lines. * Increment version number. (Sync with blead.) 0.2607 2015-08-28 pjacklam * Add changes from v0.2602 to v0.2606. * Increment version number. (Sync with blead.) * Update bundled version of Module::Install from v1.08 to v1.16. 0.2606 2014-04-03 pjacklam * Add ref to https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigRat * Misc. updates. * Update bundled version of Module::Install from v1.00 to v1.08. * Fix spelling errors. * Avoid negative zero. * Various POD corrections. * Add refereces to CPAN testers, CPAN RT etc. * Test to avoid negative zero. 0.2602 2011-02-13 pjacklam (1000 tests) * Fix spelling errors (Peter John Acklam). * Include latest versions test scripts shared with the Math::BigInt distribution (Peter John Acklam). * Add 00sig.t for testing the SIGNATURE file, 01load.t for explicitly testing module loading and showing version information useful for debugging (Peter John Acklam). * Replace pod.t and pod_cov.t by 02pod.t as a generic script for testing POD syntax, and 03podcov.t as a more generic script for testing POD coverage (Peter John Acklam). 0.26 2010-09-15 rafl 975 tests * Remove obsolete test boilerplate that was once needed to test within the perl core (Nicholas Clark). * Convert tests from Test to Test::More (Nicholas Clark). 0.25 2010-09-13 rafl 975 tests * Re-upload 0.24 with a fixed SIGNATURE 0.24 2009-09-09 Leto 975 tests * Fix [perl RT #49565: SIGNATURES] * Fix [perl RT #44827: Documentation incorrect] 0.23 2009-09-08 Leto 975 tests * Fix [perl RT #67244] hex "e" misunderstood by Math::BigRat 0.22 2008-04-06 Tels 973 tests * fix bug ##34584: hang when calling exp (Thanx Steve Wills!) + broot() normalizes result + bexp() works for values like '1/2' (sqrt), '1/4' (broot), etc. + broot() works for values like '2/3' * added as_float() - return the BigRat as rounded Math::BigFloat 0.21 2007-09-16 Tels 956 tests * require Math::BigInt v1.88 * fix as_number() with Nan/inf (thanx zefram!) * add POD stub for objectify() to make pod_cov.t happy 0.20 2007-06-30 Tels 956 tests * require Math::BigInt v1.87 * add bnok() and bexp() 0.19 2007-04-17 Tels 934 tests * fix the check in bnorm() as it breaks under Pari * require Math::BigInt v1.83 * exponent() makes a copy, so we can skip copy() * fix the licence back to be "perl" 0.18 2007-04-09 Tels 934 tests * install_as_core() to work around Module::Install bug * remove PREREQ_FATAL since the toolchain is broken * require Math::BigInt v1.82 0.17 2007-02-03 Tels 934 tests * include the spelling fixes for bleadperl * more typo and POD fixes * include from_bin(), from_hex() and from_oct() * add tests for octal and from_hex()/from_bin() * bundle and use Module::Install 0.16 2007-01-28 Tels 926 tests * require Math::BigInt 1.78 * add support for 'try' and 'only' * add pod tests 0.15 2005-04-02 Tels 924 tests * no need to require Exporter * rem no longer used 'with' from import * add a few comments here and there * fix import()'s handling of the lib argument (it didn't work) * fix segfault under trap_nan in _bnan() * remove unused IMPORT logic (require BigRat seems to work without it) 0.14 2005-01-01 Tels 924 tests * require Math::BigInt v1.74 * streamline copy() * inline is_zero() into bneg(), making it about 50% faster * more tests for bneg() * register callback to get notified of lib changes from Math::BigInt * much simpler import() logic * new() accepts input like new(Math::BigInt->new(123),Math::BigInt->new(7)); * doc: as_hex(), as_bin(), add note about as_pos(), as_neg() and as_int() * numify() now deals with large N and D by using BigFloat (Thanx Hugo!) * numify() lost the sign on negative integer values (Thanx Zefram!) 0.13 2004-10-22 Tels 892 tests * fixed digit(): it never worked due to dropping the second parameter * fixed a bug in brsft() when passing arguments (2 vs. 3 in objectify) * use Math::BigInt->config('lib') for parts instead of Math::BigInt + This makes everything go about 2..4 times faster :) + And it saves memory (408 vs. 807 bytes for a simple number) * _as_float() is about 6 times as fast for integers (e.g. 123/1 vs. 2/3) * denominator() returns 1 for +inf and -inf (+inf/1, -inf/1) instead of +-inf * when using "lib => GMP;", certain things never worked: + sqrt() was not possible + new("2.3") did not work + new("12.3e-2") did not work 0.12 2004-02-15 Tels 863 tests * fixed bug in is_one() (segfault under v.5.6.x) * implemented length() and digit() for integers * beefed up testing class Test.pm to make more float tests work (185 of them still fail) * added AUTOLOAD to load fxxx() stubs (for BigFloat compatibility tests) * $IMPORT for require and AUTOLOAD * added as_bin(), as_hex() which work for integers, NaN, and +-inf * implement broot() and blog() for non-integer numbers * fixed blsft()/brsft() to work with undefined or scalar base * added a copy() method to be independend from BigInt's copy() * adopted to new internal format of Math::BigFloat v1.44 (from BigInt v1.70) 0.11 2004-01-07 Tels 859 tests * require Exporter vs. use it * more tests for bacmp(), bnorm() * fixed bug in bacmp() with ($x,[+-]inf) (Thanx to William T. Morgan!) * fixed bug in new("+-inf/X") (e.g. "-inf/5" resulted in "inf", not "-inf") * delete _a and _p on _d and _n, reduces size of a BigRat object from 887 bytes to 767 bytes on a x86 32 bit system. This also makes some operations slightly (single-digit percentages) faster. * bacmp() is about 20% faster * bcmp() is: * about 4 times faster if sign($x) != sign($y) * about 20% faster if sign($x) == sign($y) * added broot(), bmodinv(), bmodpow(), blog() so that their equivalent of: # perl -MMath::BigRat=:constant -le '$a = 2.0 ** 32; print $a->broot(4)' Can't call method "copy" on an undefined value at BigFloat.pm line 1442. works now for integer arguments and inf/NaN, at least. * doc: rationales => rational numbers 0.10 2003-07-06 Tels 751 tests (released on 2003-08-13) * one more die => croak conversion * fix inf/NAN handling in new() * fix bsqrt(3/4) and similiar cases failing with some obscure error, this was a simple typo ({_n} vs. {_m}). Added tests for that. * numify() is now much faster (38400 vs 720 tries/s on 2Ghz AMD XP2400+) * support for :trap_nan/:trap_inf * doc for config() * implement trapping of creation of NaN/inf/-inf * as_number() forgot to disable $upgrade, resulting in BigRat again when run under -Mbigrat -- thanx to Ian Phillips. * fixed a bug in new() that failed with Math::BigRat->new(Math::BigInt::Lite->new(123)); * fixed new() to work better under use Math::BigRat with => 'Math::BigInt::Lite'; * add a test for "require Math::BigRat; $x = Math::BigRat->new(123); $x++;" (it already works since we "use Math::BigFloat;" * require Carp; Carp::croak () instead of simple die() * implemented bmod() - Thanx Ian Phillips. * bsqrt() now returns a big rationale - Ian again * tests for bmod(), as_number(), bsqrt() and some NaN cases * bfloor()/bceil() broke under use bigrat; due to missing upgrade-disabling 0.09 2002-08-14 Tels * documentation was lacking a proper description, METHODS missing etc * setting accuracy/precision in BigFloat/BigInt interfered with BigRat * new testcases for the A/P fix in t/big_ap.t * speedup: apply the same trick to avoid calls to objectify() like in BigInt * speedup: badd()/bsub() did needless gcd(), copy() and bdiv() * speedup: workaround for 'x.y.z'-valid bug in BigFloat no longer neccessary 0.08 2002-08-13 Tels * bsstr() returned positive result for negative numbers - Oups! * added a numify() so that $array[Math::BigRat->new('17/8')] works 0.07 2002-06-04 Tels * bfac() now works for integers (x/1), and returns $x->bnan() instead of Math::BigRat->bnan() (modify in-place) * bpow() faster for x/1 ** y/1 and x/z ** y/1 cases (some of the speedups are two-digit factors :) - also some bugfixes * bpow() no longer litters stdout * removed some (all of them commented out) debug prints to reduce footprint * shortened testfile bigrat.t * some hardcoded 'Math::BigInt' replaced with '$MBI' * bceil() would leave -0 in some cases * (more) tests (all in all 628) for: bceil/bfloor/bpow/bfac/parts/denominator/nominator/binc/bdec * parts('-3/1') would return (3,1) instead of (-3,1) * parts() did not work for NaN, +inf, -inf * numerator()/denominator() did not work for inf,-inf,NaN * new('1.2.2') was valid (resulted in 12/10 due to bug in BigFloat) * new() for some cases left internal state not as 0/0 for NaN, inf, -inf etc * binc()/bdec() were missing entirely 0.06 2002-05-23 Tels * added import() routine * support for 'use Math::BigRat with => Foo::Bar;' * support for 'use Math::BigRat lib => Foo::Bar;' * bnorm() makes sure that both parts (n and d) are of class $MBI * more documentation * bugfix in new() with two arguments * INSTALLDIRS => perl 0.05 2002-03-26 Tels * various bugfixes (local undef upgrade, Bigint handling, handling of string arguments) * fixed up isa() * removed some old and wrong comments 0.04 2002-03-19 Tels * 5/7+3/7 hung under "Math::BigInt upgrade =>" (forgot local upgrade = undef) * better testsuite * added & fixed isa() * new() can handle Lite 0.04 2002-03-19 Tels * bcmp/bacmp/as_number/bfloor/bceil work now * bsqrt() is better now * t/Math/BigInt/Test.pm is fixed now and makes a much better figure (formerly almost all of the 1500 tests in bigfltrt.inc would fail. Now we fail "only" 868 of 2014 tests, and most of them since the test dies early. * added stubs for round, bfround, bround and certain others 0.03 2002-02-25 Tels (early morning hours) * fixed bstr()/bsstr() for negative output and inf/NaN * _d/_n were accidentily swapped * added numerator()/denominator()/parts() and doc and tests * fixed is_one() * '1/ ' is as invalid as '1/' * badd/bsub/bmul: inf/NaN handling was wrong due to copy&paste (ha!) from bdiv * more extensive testsuite (about 400 tests) * bnorm() normalizes 0/x to 0/1 * badd()/bsub()/bmul()/bdiv() handle +/-/NaN/inf/-inf sign properly * t/Math/BigRat/Test.pm: fixed bstr() and bsstr() to handle inf/NaN and signs 0.02 2002-02-24 Tels (late night) * ripped out doc and replaced by something closer to the truth * subclass of BigFloat w/ overload section * uses d/n instead of x/y for denominator and nominator * tests from Math::BigFloat with a test subclass warping the input/output * added preliminary bmul(), badd(), bdiv() methods * added binf(), bone(), bzero() and bnan() * added _bzero(), _bone(), _bnan() and _binf() (bnan() etc inherited) * dummy blog(), bceil(), floor(), bfac() and bpow() functions * parse input as '0.1', '0.1/0.1', '1/10', '10' or '10/0.1' * input as Math::BigInts or Math::BigFloats is okay 0.01 2001-11-21 Tels * first release Math-BigInt-2.005003/CREDITS0000644403072340010010000000343514511435771014771 0ustar OSPJADomain UsersI wish to thank the following people: * Mark A. Biggar and Ilya for the original versions. * Steffen Beyer for the discussions and ideas, and for Bit::Vector. * Bruce Fields for spotting bugs. * Mark Dickinson for spotting bugs. * HH for listening to my boring explanations. * Peter Prymmer for spotting the OS/390 problems with / 1e5 * Tom Phoenix for the discussions about factoring/primes/speed. * John Peacock for pushing me to finish Math::BigInt::Calc. * Benjamin Trott for the _split optimization and finding the bug in badd() * Daniel Pfeiffer for v0.49 * Compaq for their TestDrive accounts and the admins managing them - this makes testing on a large variety of platforms possible. Thanx! * Sisyphus for the discussions and ideas * Jarkko for the inf/NaN help and for beeing generally helpful and witty * Creager, Robert S for pointing me towards the precision/accuracy bug and for general asking questions and providing feedback * Feztaa for the report that let to the discovery of the _rsft() bug in v1.61 He also deserves the mention as the first known user of bignum :) * Tim Rushing for reporting the bsqrt() hang and giving me the chance to improve BigInt/BigFloat. * cpan@ali.as for reporting the floor() bug with 0.1412024 and providing a fix and testcase - thanx! * Stephen Ross for finding the -2 ** Y with odd Y bug Special thanx must go to John Peacock and Tom Roche, both have helped me a lot in developing the latest version, not only by cheerfully kicking my lazy butt from time to time, but also by providing advice, bug-reports, suggestions and nagging questions, as well as bearing with my countless ranting emails. So, thank you very much! Also I want to thank all the ever-busy people on p5p. You guys (and gals) rock! List still not complete ;o) Tels Math-BigInt-2.005003/examples/0000755403072340010010000000000014776770355015577 5ustar OSPJADomain UsersMath-BigInt-2.005003/examples/1000.txt0000644403072340010010000001615214505066124016703 0ustar OSPJADomain Users# The First 1,000 Primes # (the 1,000th is 7919) # For more information on primes see http://www.utm.edu/research/primes 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 2003 2011 2017 2027 2029 2039 2053 2063 2069 2081 2083 2087 2089 2099 2111 2113 2129 2131 2137 2141 2143 2153 2161 2179 2203 2207 2213 2221 2237 2239 2243 2251 2267 2269 2273 2281 2287 2293 2297 2309 2311 2333 2339 2341 2347 2351 2357 2371 2377 2381 2383 2389 2393 2399 2411 2417 2423 2437 2441 2447 2459 2467 2473 2477 2503 2521 2531 2539 2543 2549 2551 2557 2579 2591 2593 2609 2617 2621 2633 2647 2657 2659 2663 2671 2677 2683 2687 2689 2693 2699 2707 2711 2713 2719 2729 2731 2741 2749 2753 2767 2777 2789 2791 2797 2801 2803 2819 2833 2837 2843 2851 2857 2861 2879 2887 2897 2903 2909 2917 2927 2939 2953 2957 2963 2969 2971 2999 3001 3011 3019 3023 3037 3041 3049 3061 3067 3079 3083 3089 3109 3119 3121 3137 3163 3167 3169 3181 3187 3191 3203 3209 3217 3221 3229 3251 3253 3257 3259 3271 3299 3301 3307 3313 3319 3323 3329 3331 3343 3347 3359 3361 3371 3373 3389 3391 3407 3413 3433 3449 3457 3461 3463 3467 3469 3491 3499 3511 3517 3527 3529 3533 3539 3541 3547 3557 3559 3571 3581 3583 3593 3607 3613 3617 3623 3631 3637 3643 3659 3671 3673 3677 3691 3697 3701 3709 3719 3727 3733 3739 3761 3767 3769 3779 3793 3797 3803 3821 3823 3833 3847 3851 3853 3863 3877 3881 3889 3907 3911 3917 3919 3923 3929 3931 3943 3947 3967 3989 4001 4003 4007 4013 4019 4021 4027 4049 4051 4057 4073 4079 4091 4093 4099 4111 4127 4129 4133 4139 4153 4157 4159 4177 4201 4211 4217 4219 4229 4231 4241 4243 4253 4259 4261 4271 4273 4283 4289 4297 4327 4337 4339 4349 4357 4363 4373 4391 4397 4409 4421 4423 4441 4447 4451 4457 4463 4481 4483 4493 4507 4513 4517 4519 4523 4547 4549 4561 4567 4583 4591 4597 4603 4621 4637 4639 4643 4649 4651 4657 4663 4673 4679 4691 4703 4721 4723 4729 4733 4751 4759 4783 4787 4789 4793 4799 4801 4813 4817 4831 4861 4871 4877 4889 4903 4909 4919 4931 4933 4937 4943 4951 4957 4967 4969 4973 4987 4993 4999 5003 5009 5011 5021 5023 5039 5051 5059 5077 5081 5087 5099 5101 5107 5113 5119 5147 5153 5167 5171 5179 5189 5197 5209 5227 5231 5233 5237 5261 5273 5279 5281 5297 5303 5309 5323 5333 5347 5351 5381 5387 5393 5399 5407 5413 5417 5419 5431 5437 5441 5443 5449 5471 5477 5479 5483 5501 5503 5507 5519 5521 5527 5531 5557 5563 5569 5573 5581 5591 5623 5639 5641 5647 5651 5653 5657 5659 5669 5683 5689 5693 5701 5711 5717 5737 5741 5743 5749 5779 5783 5791 5801 5807 5813 5821 5827 5839 5843 5849 5851 5857 5861 5867 5869 5879 5881 5897 5903 5923 5927 5939 5953 5981 5987 6007 6011 6029 6037 6043 6047 6053 6067 6073 6079 6089 6091 6101 6113 6121 6131 6133 6143 6151 6163 6173 6197 6199 6203 6211 6217 6221 6229 6247 6257 6263 6269 6271 6277 6287 6299 6301 6311 6317 6323 6329 6337 6343 6353 6359 6361 6367 6373 6379 6389 6397 6421 6427 6449 6451 6469 6473 6481 6491 6521 6529 6547 6551 6553 6563 6569 6571 6577 6581 6599 6607 6619 6637 6653 6659 6661 6673 6679 6689 6691 6701 6703 6709 6719 6733 6737 6761 6763 6779 6781 6791 6793 6803 6823 6827 6829 6833 6841 6857 6863 6869 6871 6883 6899 6907 6911 6917 6947 6949 6959 6961 6967 6971 6977 6983 6991 6997 7001 7013 7019 7027 7039 7043 7057 7069 7079 7103 7109 7121 7127 7129 7151 7159 7177 7187 7193 7207 7211 7213 7219 7229 7237 7243 7247 7253 7283 7297 7307 7309 7321 7331 7333 7349 7351 7369 7393 7411 7417 7433 7451 7457 7459 7477 7481 7487 7489 7499 7507 7517 7523 7529 7537 7541 7547 7549 7559 7561 7573 7577 7583 7589 7591 7603 7607 7621 7639 7643 7649 7669 7673 7681 7687 7691 7699 7703 7717 7723 7727 7741 7753 7757 7759 7789 7793 7817 7823 7829 7841 7853 7867 7873 7877 7879 7883 7901 7907 7919 Math-BigInt-2.005003/examples/bigprimes.pl0000755403072340010010000001017114505066124020076 0ustar OSPJADomain Users#!/usr/bin/perl -w use Test; BEGIN { plan tests => 17; } use lib '../lib'; # comment out to use old module #use lib '../../old/Math-BigInt-0.01/lib'; # for old version use strict; #use Math::BigInt; use Math::BigInt qw/:constant/; #use Math::BigInt qw/calc BitVect :constant/; print "# Using Math::BigInt v",$Math::BigInt::VERSION,"\n"; # calculate some sample prime numbers from # http://www.utm.edu/research/primes/largest.html # also: http://www-stud.enst.fr/~bellard/mersenne.html # (c takes 1 minute on 800 Mhz, so Perl will take..ages..) my ($x,$y,$z); my $two = Math::BigInt->new(2); # some new() are to make stop Perl from calculating things like 1234 ** 4321 # at compile time. (we want to see run-time behaviour) # Also there is len(), since the old BigInt has not got length() and we want # this script to be comparable between old and new version. ############################################################################## # Todo: these do not complete in reasonable time: # $x = $two ** 6972593; $x--; #ok (len($x),'2098960'); # $x = $two ** 3021377; $x--; #ok (len($x),'909526'); # $x = $two ** 756839; $x--; #ok (len($x),'227832'); # $x = 1041870 ** 32768; $x++; #ok (len($x),'197192'); ############################################################################## # but these do: # some twin primes (first in list at 03/2001) $x = ($two ** 80025) * 665551035; $x++; $y = $x-2; ok (len($x),'24099'); $x = ($two ** 66443) * 1693965; $x++; $y = $x-2; ok (len($x),'20008'); $x = ($two ** 64955) * 83475759; $x++; $y = $x-2; ok (len($x),'19562'); # ... $x = ($two ** 38880) * 242206083; $x++; $y = $x-2; ok (len($x),'11713'); ############################################################################## # Sophie Germain primes # todo: does not finish after 30 m on 800 Mhz # $x = Math::BigInt->new(72021)**223630; $x--; ok (len($x),'7119'); ############################################################################## # some quadruplet primes... # 3510160221387831655*(2^3363-2^1121)-6*2^1121-7 $x = '3510160221387831655' * (2 ** 3363 - 2**1121) - 6*(2**1121); my @q = ( $x-7,$x-5,$x-1,$x+1); ok (len($q[0]),'1031'); ok (len($q[1]),'1031'); ok (len($q[2]),'1031'); ok (len($q[3]),'1031'); ############################################################################## # some real weird primes: # (2^3833-1)/(14193959303*340789152474053904109001) $x = Math::BigInt->new('340789152474053904109001'); $x *= '14193959303'; $x = (2**3833-1) / $x; ok (len($x),'1121'); #(2^4751-1)/(268982617*3274778783*629530076753*81630665742097*1507074535068001) $x = Math::BigInt->new('268982617'); $x = $x * '3274778783' * '629530076753' * '81630665742097' * '1507074535068001'; $x = ((2**4751)-1) / $x; ok (len($x),'1372'); # 2^7039-1)/ (1252943*1057032553*8541573097*218216841131937276721 $x = Math::BigInt->new('1252943')*'1057032553'*'8541573097'; $x *= '218216841131937276721'; $x = ((2**7039)-1) / $x; ok (len($x),'2074'); # 5616^1153-1)/5615 $x = Math::BigInt->new(5616) ** 1153; $x--; $x /= 5616; ok (len($x),'4320'); # (7147^2161-1)/7146 $x = Math::BigInt->new(7147) ** 2161; $x--; $x /= 7146; ok (len($x),'8325'); # 16*R(5700)*(150093*10^8000+1)+1 # most ending 7's # gives error in BigInt $x = 16 * R(5700); $x *= (150093*(Math::BigInt->new(10)**8000))+1; $x++; ok (len($x),'13706'); # 2*11^13359+1 $x = 2*(Math::BigInt->new(11)**13359)+1; ok(len($x),'13913'); # 10^14800+5*(10^8880+10^5920)+7*10^7400+1 # palindrome $x = Math::BigInt->new(10) ** 14800; $x += 5*((Math::BigInt->new(10) ** 8800) + (Math::BigInt->new(10)**5920)); $x += 7*(Math::BigInt->new(10) ** 7400); ok(len($x),'14801'); $y = "$x"; $y =~ s/^\+//; my $left = substr("$y",7400); my $right = substr("$y",-7401); ok($left,$right); # EOF ############################################################################## # some helper functions sub R { my $x = shift; # These numbers have a decimal expansion of n '1's, # and are usually called "repunits". return ((Math::BigInt->new(10) ** $x) - 1)/9; } sub len { # old bigint has not got length, so use "" and strip it's sign my $x = shift; $x = "$x"; $x =~ s/^\+//; return length($x); } Math-BigInt-2.005003/examples/prime.pl0000755403072340010010000000366114505066124017237 0ustar OSPJADomain Users#!/usr/bin/perl -w BEGIN { unshift @INC, '../lib'; } # uncomment to use old, org version $| = 1; use Math::BigInt; # this is a complicated version of the prime number sieve. # It is not optimized (since we want to benchmark as many features as # possible). $amount = Math::BigInt->new( shift || 1000000 ); @primes = (1,1,0); # any not defined number is prime, 0,1 are not, but 2 is my $prime = Math::BigInt->new (3); # start # the loop below is faster in the old version than in the new, since it is # the worst case for new lib: small numbers and lot's of bstr()/new(). # It also slows down the benchmark too much so we use slightly faster int here $r = 0; my $a = $amount->numify(); for ($i = 3; $i < $a; $i++) # int version { $primes[$i] = $r; $r = 1-$r; } # find primes OUTER: while ($prime < $amount) { # find first unmarked, it is the next prime $cur = $prime; while ($primes[$cur]) { $cur += 2; last OUTER if $cur >= $amount; # no more to do } # $cur is now new prime $str = "$cur"; $str =~ s/\+//; # unify output for comapre #print "$str $prime $amount\n"; # now strike out all multiples of $cur $add = $cur*2; $prime = $cur + 2; # next round start two higher $cur += $add; while ($cur < $amount) { $primes[$cur] = 1; $cur += $add; } } $i = 0; foreach (@primes) { push @real_primes, $i if $primes[$i] == 0; $i++; } # uncomment to print em: # foreach (@real_primes) { print "$_\n"; } print "last prime: $real_primes[-1]\n"; # check against text open FILE, '1000.txt' or die "Can't read 1000.txt: $!"; my @test; while () { next if /^#/; next if /^\s*$/; $_ =~ s/\s+/ /g; $_ =~ s/^\s+//; $_ =~ s/\s+$//; push @test, split /\s+/,$_; } close FILE; my $i = 0; foreach (@real_primes) { print "oups: $i: $test[$i] != $real_primes[$i]\n" if $test[$i] != $real_primes[$i]; $i++; last if $i >= 1000; } print "done\n"; Math-BigInt-2.005003/GOALS0000644403072340010010000000253114511435771014535 0ustar OSPJADomain UsersThis file contains a short description of what the goals of this project are, building guidelines etc. This was born after discussions with John Peacock, who provided helpfull feedback. * KISS - Keep It Simple, Stupid! * Favour correctness over speed * Make your code maintable, so avoid Copy&Paste, unclear constructs, read-only code and special hacks whenever possible * Optimize more for the average case than the worst, while trying to avoid performance hits for the worst case. The average case is more for longer numbers than short, based on the assumption that if you wanted to add 1 and 2 _fast_ together, you wouldn't use BigInt nor Perl, now would you? ;) (Or in other words: Time saved in one case of a large number may be multitudes of what you can waste on a small number) * Make subclassing as easy and painless as possible. This means clean inheritance and overload section, no C&P code etc. * Keep the interface as consistent and easy as possible. Secondary goals: * Make mixing of classes work, like in: $x = Math::BigFloat->new(10); $y = Math::BigInt->new(2); $z = $x / $y; # $z = Math::BigFloat = 5 * Make auto-upgrading/downgrading work See also BUGS. Please send me test-reports, your experiences with this and your ideas - I love to hear about my work! Tels Math-BigInt-2.005003/HISTORY0000644403072340010010000001136614511435771015037 0ustar OSPJADomain UsersThis file contains all the changes and bugfixes from the original version of BigInt/BigFloat to the rewritten one. For what has changed in the latest version see NEW and for a complete list of changes see the file CHANGES. v1.82: general: + It is subsequent faster than the original in many places + Use more than 16 bit at a time, greater BASELEN for 64 bit systems + overload for things like += + special operations like binc() + many optimizations and shortcuts in normal operations + Can use Math::BigInt lib => 'name'; for Pari, GMP, Bit::Vector or others + regression test suite greatly enhanced to cover more problematic cases + added example scripts (prime.pl, bigprimes.pl, hailstone.pl) + documentation fixed and greatly enhanced + BigInt is sub-classable with very little effort, see M::S or M::BF + subclasses of Math::BigInt know all the same methods, so that you can call $x->some_method() without having to know which type of class $x is + added infinity handling + much better NaN handling caveats: + bstr() and stringify now drop the leading '+' (to make overloaded cmp work as expected when cmp'aring to scalars and other objects (read: bugfix) + due to the dropping of '+' the string sort order has changed. It is now compatible to the way perl sorts it's strings. + spaces are no longer allowed in a number (but may precede or follow it) !! You can always make a subclass and change all these things quite easily !! input: + underscores are now valid between any two digits (in hex/binary input, too) + integers of the form 1E2, 1.23E2, 2.00 etc now valid for BigInt.pm, too + hexadecimal numbers of the form 0xabcdefABCDEF0123456789 + binary numbers of the form 0b01010101101000001000100101 + octal numbers can be input via from_oct() output: + as_hex(), as_bin() and as_oct() for easier conversation between bases bugs and buglets fixed over Mark's original: + 0**0 gave NaN instead of 1 + -1**y gave -1 instead of +1 for even y + fsqrt() gave slightly wrong results (like for fsqrt(9)) + +x/0 is now +inf, -x/0 is -inf (both were NaN), as well as other inf cases + mod/div for negative numbers were incompatible to Perl's way + added P. Prymmer's OS/390 '/1e5 vs *1e-5' patch w/o the performance snag + incorporated all the patches to the core modules by John Peacock + BigFloat::bxxx() works as well as BigFloat::fxxx() + Math::BigInt->new(10) / Math::BigFloat->new(2) returned NaN (ditto for other subclasses of Math::BigInt) + $a = new Math::BigInt; creates now a +0, while "" still gives a NaN This suppresses all warnings on undef arguments. Wether this is better... + import() would always use "Math::BigInt" and clash with Exporter + use Math::BigInt qw(bneg); $a = bneg('1234'); etc did not work at all + $x->xxx() now modifies $x in all cases of modifiers and actually returns the same $x (e.g. not a plain scalar or a different reference). All testing routines leave $x alone. bpow(), bmod(), fround(), ffround() etc were broken in this regard. accuracy and precision: + there is now support for both accuracy (significant digits) and precision (fixed number of digits after decimal point), which by default is off + objects/numbers now can have a local accuracy/precision internal fixes: + uses a blessed hash ref instead scalar ref (easier subclassable) + my instead of local + use strict and -w + s/$[/0/ (after all, $[ = 1; in main does not effect this package) + $# partially removed ($#y is scalar @y -1, $#$y is scalar @$y-1 - ugh!) + added LICENSE section and file new stuff: + MBF: :constant works now + MBI: :constant picks up binary and hexadecimal constants + brsft()/blsft() also can do other bases than 2 + bacmp (acmp), because needed for more efficient add() + bzero(), bnan(), bone(), binf() + binc(), bdec(), bfac() + is_zero(), is_nan(), is_one(), is_odd(), is_even(), is_inf(), is_int() + digit(), length(), copy() + as_number() (alias: as_int()), as_hex(), as_bin() + is_positive(), is_negative() (alias: is_pos() and is_neg()) + mantissa(), exponent(), parts(), sign() + bgcd() accepts now lists, blcm() (also accepts lists) + flog()/blog() for overloading of log() + fexp()/bexp() for overloading of exp() + round(accuracy,precision,mode) round to accuracy/precision using mode + MBF: fpow(), fmod(), fdiv() in list context (Thanx J. Peacock) + fpow() can now handle non-integer arguments, like in fpow(2.1 ** 0.2) + MBI: bsqrt() + bmodpow(), bmodinv() (Thanx John Borwick) + bfloor(), bceil(), broot() + CORE cos()/sin()/exp()/atan2() now work when passed BigInts or BigFloats Please send me test-reports, your experiences with this and your ideas - I love to hear about my work! Tels Math-BigInt-2.005003/lib/0000755403072340010010000000000014776770353014525 5ustar OSPJADomain UsersMath-BigInt-2.005003/lib/Math/0000755403072340010010000000000014776770354015417 5ustar OSPJADomain UsersMath-BigInt-2.005003/lib/Math/BigFloat.pm0000644403072340010010000101720114776760254017444 0ustar OSPJADomain Userspackage Math::BigFloat; # # Mike grinned. 'Two down, infinity to go' - Mike Nostrus in 'Before and After' # # The following hash values are used internally: # # sign : "+", "-", "+inf", "-inf", or "NaN" # _m : absolute value of mantissa ($LIB thingy) # _es : sign of exponent ("+" or "-") # _e : absolute value of exponent ($LIB thingy) # accuracy : accuracy (scalar) # precision : precision (scalar) use 5.006001; use strict; use warnings; use Carp qw< carp croak >; use Scalar::Util qw< blessed >; use Math::BigInt qw< >; our $VERSION = '2.005003'; $VERSION =~ tr/_//d; require Exporter; our @ISA = qw< Math::BigInt >; our @EXPORT_OK = qw< bpi >; use overload # overload key: with_assign '+' => sub { $_[0] -> copy() -> badd($_[1]); }, '-' => sub { my $c = $_[0] -> copy(); $_[2] ? $c -> bneg() -> badd($_[1]) : $c -> bsub($_[1]); }, '*' => sub { $_[0] -> copy() -> bmul($_[1]); }, '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0]) : $_[0] -> copy() -> bdiv($_[1]); }, '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0]) : $_[0] -> copy() -> bmod($_[1]); }, '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0]) : $_[0] -> copy() -> bpow($_[1]); }, '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bblsft($_[0]) : $_[0] -> copy() -> bblsft($_[1]); }, '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bbrsft($_[0]) : $_[0] -> copy() -> bbrsft($_[1]); }, # overload key: assign '+=' => sub { $_[0] -> badd($_[1]); }, '-=' => sub { $_[0] -> bsub($_[1]); }, '*=' => sub { $_[0] -> bmul($_[1]); }, '/=' => sub { scalar $_[0] -> bdiv($_[1]); }, '%=' => sub { $_[0] -> bmod($_[1]); }, '**=' => sub { $_[0] -> bpow($_[1]); }, '<<=' => sub { $_[0] -> bblsft($_[1]); }, '>>=' => sub { $_[0] -> bbrsft($_[1]); }, # 'x=' => sub { }, # '.=' => sub { }, # overload key: num_comparison '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0]) : $_[0] -> blt($_[1]); }, '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0]) : $_[0] -> ble($_[1]); }, '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0]) : $_[0] -> bgt($_[1]); }, '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0]) : $_[0] -> bge($_[1]); }, '==' => sub { $_[0] -> beq($_[1]); }, '!=' => sub { $_[0] -> bne($_[1]); }, # overload key: 3way_comparison '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]); defined($cmp) && $_[2] ? -$cmp : $cmp; }, 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr() : $_[0] -> bstr() cmp "$_[1]"; }, # overload key: str_comparison # 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0]) # : $_[0] -> bstrlt($_[1]); }, # # 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0]) # : $_[0] -> bstrle($_[1]); }, # # 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0]) # : $_[0] -> bstrgt($_[1]); }, # # 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0]) # : $_[0] -> bstrge($_[1]); }, # # 'eq' => sub { $_[0] -> bstreq($_[1]); }, # # 'ne' => sub { $_[0] -> bstrne($_[1]); }, # overload key: binary '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0]) : $_[0] -> copy() -> band($_[1]); }, '&=' => sub { $_[0] -> band($_[1]); }, '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0]) : $_[0] -> copy() -> bior($_[1]); }, '|=' => sub { $_[0] -> bior($_[1]); }, '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0]) : $_[0] -> copy() -> bxor($_[1]); }, '^=' => sub { $_[0] -> bxor($_[1]); }, # '&.' => sub { }, # '&.=' => sub { }, # '|.' => sub { }, # '|.=' => sub { }, # '^.' => sub { }, # '^.=' => sub { }, # overload key: unary 'neg' => sub { $_[0] -> copy() -> bneg(); }, # '!' => sub { }, '~' => sub { $_[0] -> copy() -> bnot(); }, # '~.' => sub { }, # overload key: mutators '++' => sub { $_[0] -> binc() }, '--' => sub { $_[0] -> bdec() }, # overload key: func 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0]) : $_[0] -> copy() -> batan2($_[1]); }, 'cos' => sub { $_[0] -> copy() -> bcos(); }, 'sin' => sub { $_[0] -> copy() -> bsin(); }, 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); }, 'abs' => sub { $_[0] -> copy() -> babs(); }, 'log' => sub { $_[0] -> copy() -> blog(); }, 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); }, 'int' => sub { $_[0] -> copy() -> bint(); }, # overload key: conversion 'bool' => sub { $_[0] -> is_zero() ? '' : 1; }, '""' => sub { $_[0] -> bstr(); }, '0+' => sub { $_[0] -> numify(); }, '=' => sub { $_[0] -> copy(); }, ; ############################################################################## # global constants, flags and assorted stuff # the following are public, but their usage is not recommended. Use the # accessor methods instead. # class constants, use Class->constant_name() to access # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common' our $accuracy = undef; our $precision = undef; our $round_mode = 'even'; our $div_scale = 40; our $upgrade = undef; our $downgrade = undef; our $_trap_nan = 0; # croak on NaNs? our $_trap_inf = 0; # croak on Infs? my $nan = 'NaN'; # constant for easier life my $LIB = Math::BigInt -> config('lib'); # math backend library # Has import() been called yet? This variable is needed to make "require" work. my $IMPORT = 0; # some digits of accuracy for blog(undef, 10); which we use in blog() for speed my $LOG_10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726097'; my $LOG_10_A = length($LOG_10)-1; # ditto for log(2) my $LOG_2 = '0.6931471805599453094172321214581765680755001343602552541206800094933936220'; my $LOG_2_A = length($LOG_2)-1; my $HALF = '0.5'; # made into an object if nec. ############################################################################## # the old code had $rnd_mode, so we need to support it, too our $rnd_mode; our $AUTOLOAD; sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; } sub FETCH { return $round_mode; } sub STORE { $rnd_mode = (ref $_[0]) -> round_mode($_[1]); } BEGIN { *objectify = \&Math::BigInt::objectify; # when someone sets $rnd_mode, we catch this and check the value to see # whether it is valid or not. $rnd_mode = 'even'; tie $rnd_mode, 'Math::BigFloat'; *as_number = \&as_int; } sub DESTROY { # going through AUTOLOAD for every DESTROY is costly, avoid it by empty sub } sub AUTOLOAD { # Make fxxx() work by mapping fxxx() to Math::BigFloat::bxxx(). my $name = $AUTOLOAD; $name =~ s/^(.*):://; # strip package name my $class = $1 || __PACKAGE__; $class -> import() if $IMPORT == 0; # E.g., "fabs" -> "babs", but "is_neg" -> "is_neg" my $bname = $name; $bname =~ s/^f/b/; # Map, e.g., Math::BigFloat::fabs() to Math::BigFloat::babs() if ($bname ne $name && Math::BigFloat -> can($bname)) { no strict 'refs'; return &{"Math::BigFloat::$bname"}(@_); } # Map, e.g., Math::BigFloat::babs() to Math::BigInt::babs() elsif (Math::BigInt -> can($bname)) { no strict 'refs'; return &{"Math::BigInt::$bname"}(@_); } else { croak("Can't call $class->$name(), not a valid method"); } } ############################################################################## # Compare the following function with @ISA above. This inheritance mess needs a # clean up. When doing so, also consider the BEGIN block and the AUTOLOAD code. # Fixme! sub isa { my ($self, $class) = @_; return if $class =~ /^Math::BigInt/; # we aren't one of these UNIVERSAL::isa($self, $class); } sub config { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # Getter/accessor. if (@_ == 1 && ref($_[0]) ne 'HASH') { my $param = shift; return $class if $param eq 'class'; return $LIB if $param eq 'with'; return $self -> SUPER::config($param); } # Setter. my $cfg = $self -> SUPER::config(@_); # We need only to override the ones that are different from our parent. unless (ref($self)) { $cfg->{class} = $class; $cfg->{with} = $LIB; } $cfg; } ############################################################################### # Constructor methods ############################################################################### sub new { # Create a new Math::BigFloat object from a string or another Math::BigInt, # Math::BigFloat, or Math::BigRat object. See hash keys documented at top. my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Calling new() with no input arguments has been discouraged for more than # 10 years, but people apparently still use it, so we still support it. return $class -> bzero() unless @_; my ($wanted, @r) = @_; if (!defined($wanted)) { #if (warnings::enabled("uninitialized")) { # warnings::warn("uninitialized", # "Use of uninitialized value in new()"); #} return $class -> bzero(@r); } if (!ref($wanted) && $wanted eq "") { #if (warnings::enabled("numeric")) { # warnings::warn("numeric", # q|Argument "" isn't numeric in new()|); #} #return $class -> bzero(@r); return $class -> bnan(@r); } # Initialize a new object. $self = bless {}, $class; # See if $wanted is an object that is a Math::BigFloat or can convert # itself to a Math::BigFloat. if (defined(blessed($wanted)) && $wanted -> can('as_float')) { my $tmp = $wanted -> as_float(@r); for my $attr ('sign', '_m', '_es', '_e') { $self -> {$attr} = $tmp -> {$attr}; } return $self -> round(@r); } # From now on we only work on the stringified version of $wanted, so # stringify it once and for all. $wanted = "$wanted"; # Shortcut for simple forms like '123' that have no trailing zeros. # Trailing zeros would require a non-zero exponent. if ($wanted =~ / ^ \s* # optional leading whitespace ( [+-]? ) # optional sign 0* # optional leading zeros ( [1-9] (?: [0-9]* [1-9] )? ) # significand \s* # optional trailing whitespace $ /x) { my $dng = $class -> downgrade(); return $dng -> new($1 . $2) if $dng && $dng ne $class; $self->{sign} = $1 || '+'; $self->{_m} = $LIB -> _new($2); $self->{_es} = '+'; $self->{_e} = $LIB -> _zero(); $self -> round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1]; return $self; } # Handle Infs. if ($wanted =~ / ^ \s* ( [+-]? ) inf (?: inity )? \s* \z /ix) { my $sgn = $1 || '+'; return $class -> binf($sgn, @r); } # Handle explicit NaNs (not the ones returned due to invalid input). if ($wanted =~ / ^ \s* ( [+-]? ) nan \s* \z /ix) { return $class -> bnan(@r); } my @parts; if ( # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if # they have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Xx]/ and @parts = $class -> _hex_str_to_flt_lib_parts($wanted) or # Handle octal numbers. We auto-detect octal numbers if they have a # "0o", "0O", "o", "O" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Oo]/ and @parts = $class -> _oct_str_to_flt_lib_parts($wanted) or # Handle binary numbers. We auto-detect binary numbers if they have a # "0b", "0B", "b", or "B" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Bb]/ and @parts = $class -> _bin_str_to_flt_lib_parts($wanted) or # At this point, what is left are decimal numbers that aren't handled # above and octal floating point numbers that don't have any of the # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal # number. @parts = $class -> _dec_str_to_flt_lib_parts($wanted) or # See if it is an octal floating point number. The extra check is # included because _oct_str_to_flt_lib_parts() accepts octal numbers # that don't have a prefix (this is needed to make it work with, e.g., # from_oct() that don't require a prefix). However, Perl requires a # prefix for octal floating point literals. For example, "1p+0" is not # valid, but "01p+0" and "0__1p+0" are. $wanted =~ /^\s*[+-]?0_*\d/ and @parts = $class -> _oct_str_to_flt_lib_parts($wanted)) { ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts; $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } # If we get here, the value is neither a valid decimal, binary, octal, or # hexadecimal number. It is not an explicit Inf or a NaN either. return $class -> bnan(@r); } sub from_dec { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_dec'); my $str = shift; my @r = @_; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); } ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts; $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } return $self -> bnan(@r); } sub from_hex { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_hex'); my $str = shift; my @r = @_; if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); } ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts; $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } return $self -> bnan(@r); } sub from_oct { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_oct'); my $str = shift; my @r = @_; if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); } ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts; $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } return $self -> bnan(@r); } sub from_bin { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bin'); my $str = shift; my @r = @_; if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); } ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts; $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } return $self -> bnan(@r); } sub from_bytes { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bytes'); my $str = shift; my @r = @_; # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = "+"; $self -> {_m} = $LIB -> _from_bytes($str); $self -> {_es} = "+"; $self -> {_e} = $LIB -> _zero(); $self -> bnorm(); $self -> _dng(); return $self; } sub from_ieee754 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_ieee754'); my $in = shift; # input string (or raw bytes) my $format = shift; # format ("binary32", "decimal64" etc.) my $enc; # significand encoding (applies only to decimal) my $k; # storage width in bits my $b; # base my @r = @_; # rounding parameters, if any if ($format =~ /^binary(\d+)\z/) { $k = $1; $b = 2; } elsif ($format =~ /^decimal(\d+)(dpd|bcd)?\z/) { $k = $1; $b = 10; $enc = $2 || 'dpd'; # default is dencely-packed decimals (DPD) } elsif ($format eq 'half') { $k = 16; $b = 2; } elsif ($format eq 'single') { $k = 32; $b = 2; } elsif ($format eq 'double') { $k = 64; $b = 2; } elsif ($format eq 'quadruple') { $k = 128; $b = 2; } elsif ($format eq 'octuple') { $k = 256; $b = 2; } elsif ($format eq 'sexdecuple') { $k = 512; $b = 2; } if ($b == 2) { # Get the parameters for this format. my $p; # precision (in bits) my $t; # number of bits in significand my $w; # number of bits in exponent if ($k == 16) { # binary16 (half-precision) $p = 11; $t = 10; $w = 5; } elsif ($k == 32) { # binary32 (single-precision) $p = 24; $t = 23; $w = 8; } elsif ($k == 64) { # binary64 (double-precision) $p = 53; $t = 52; $w = 11; } else { # binaryN (quadruple-precision and above) if ($k < 128 || $k != 32 * sprintf('%.0f', $k / 32)) { croak "Number of bits must be 16, 32, 64, or >= 128 and", " a multiple of 32"; } $p = $k - sprintf('%.0f', 4 * log($k) / log(2)) + 13; $t = $p - 1; $w = $k - $t - 1; } # The maximum exponent, minimum exponent, and exponent bias. my $emax = $class -> new(2) -> bpow($w - 1) -> bdec(); my $emin = 1 - $emax; my $bias = $emax; # Undefined input. unless (defined $in) { carp("Input is undefined"); return $self -> bzero(@r); } # Make sure input string is a string of zeros and ones. my $len = CORE::length $in; if (8 * $len == $k) { # bytes $in = unpack "B*", $in; } elsif (4 * $len == $k) { # hexadecimal if ($in =~ /([^\da-f])/i) { croak "Illegal hexadecimal digit '$1'"; } $in = unpack "B*", pack "H*", $in; } elsif ($len == $k) { # bits if ($in =~ /([^01])/) { croak "Illegal binary digit '$1'"; } } else { croak "Unknown input -- $in"; } # Split bit string into sign, exponent, and mantissa/significand. my $sign = substr($in, 0, 1) eq '1' ? '-' : '+'; my $expo = $class -> from_bin(substr($in, 1, $w)); my $mant = $class -> from_bin(substr($in, $w + 1)); my $x; $expo -> bsub($bias); # subtract bias if ($expo < $emin) { # zero and subnormals if ($mant == 0) { # zero $x = $class -> bzero(); } else { # subnormals # compute (1/$b)**(N) rather than ($b)**(-N) $x = $class -> new("0.5"); # 1/$b $x -> bpow($bias + $t - 1) -> bmul($mant); $x -> bneg() if $sign eq '-'; } } elsif ($expo > $emax) { # inf and nan if ($mant == 0) { # inf $x = $class -> binf($sign); } else { # nan $x = $class -> bnan(@r); } } else { # normals $mant = $class -> new(2) -> bpow($t) -> badd($mant); if ($expo < $t) { # compute (1/$b)**(N) rather than ($b)**(-N) $x = $class -> new("0.5"); # 1/$b $x -> bpow($t - $expo) -> bmul($mant); } else { $x = $class -> new(2); $x -> bpow($expo - $t) -> bmul($mant); } $x -> bneg() if $sign eq '-'; } if ($selfref) { $self -> {sign} = $x -> {sign}; $self -> {_m} = $x -> {_m}; $self -> {_es} = $x -> {_es}; $self -> {_e} = $x -> {_e}; } else { $self = $x; } $self -> round(@r); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } croak("The format '$format' is not yet supported."); } sub from_fp80 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_fp80'); my $in = shift; # input string (or raw bytes) my @r = @_; # rounding parameters, if any # Undefined input. unless (defined $in) { carp("Input is undefined"); return $self -> bzero(@r); } # The parameters for this format. my $p = 64; # precision (in bits) my $w = 15; # number of bits in exponent # The maximum exponent, minimum exponent, and exponent bias. my $emax = $class -> new(2) -> bpow($w - 1) -> bdec(); # = 16383 my $emin = 1 - $emax; # = -16382 my $bias = $emax; # = -16383 # Make sure input string is a string of zeros and ones. my $len = CORE::length $in; if (8 * $len == 80) { # bytes $in = unpack "B*", $in; } elsif (4 * $len == 80) { # hexadecimal if ($in =~ /([^\da-f])/i) { croak "Illegal hexadecimal digit '$1'"; } $in = unpack "B*", pack "H*", $in; } elsif ($len == 80) { # bits if ($in =~ /([^01])/) { croak "Illegal binary digit '$1'"; } } else { croak "Unknown input -- $in"; } # Split bit string into sign, exponent, and mantissa/significand. my $sign = substr($in, 0, 1) eq '1' ? '-' : '+'; my $expo = $class -> from_bin(substr($in, 1, $w)); my $mant = $class -> from_bin(substr($in, $w + 1)); my $x; $expo -> bsub($bias); # subtract bias # zero and subnormal numbers if ($expo < $emin) { if ($mant == 0) { # zero $x = $class -> bzero(); } else { # subnormals # compute (1/2)**N rather than 2**(-N) $x = $class -> new("0.5"); $x -> bpow(-$emin - 1 + $p) -> bmul($mant); $x -> bneg() if $sign eq '-'; } } # inf and nan elsif ($expo > $emax) { # if fraction of mantissa is zero, i.e., if mantissa is # 0.000... or 1.000... if (substr($in, 16) =~ /^[01]0+$/) { $x = $class -> binf($sign); } else { $x = $class -> bnan(); } } # normal numbers else { # downscale mantissa $mant -> blsft($p - 1, "0.5"); # brsft($p - 1, 2) does division if ($expo < 0) { # compute (1/2)**N rather than 2**(-N) $x = $mant -> blsft(-$expo, "0.5"); } elsif ($expo > 0) { $x = $mant -> blsft($expo, "2"); } else { $x = $mant; } $x -> bneg() if $sign eq '-'; } if ($selfref) { $self -> {sign} = $x -> {sign}; $self -> {_m} = $x -> {_m}; $self -> {_es} = $x -> {_es}; $self -> {_e} = $x -> {_e}; } else { $self = $x; } $self -> round(@r); $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } sub from_base { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_base'); my ($str, $base, $cs, @r) = @_; # $cs is the collation sequence $base = $class -> new($base) unless ref($base); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); # If called as a class method, initialize a new object. $self = $class -> bzero() unless $selfref; # If no collating sequence is given, pass some of the conversions to # methods optimized for those cases. unless (defined $cs) { return $self -> from_bin($str, @r) if $base == 2; return $self -> from_oct($str, @r) if $base == 8; return $self -> from_hex($str, @r) if $base == 16; return $self -> from_dec($str, @r) if $base == 10; } croak("from_base() requires a newer version of the $LIB library.") unless $LIB -> can('_from_base'); my $base_lib = $LIB -> _lsft($LIB -> _copy($base->{_m}), $base->{_e}, 10); $self -> {sign} = '+'; $self -> {_m} = $LIB->_from_base($str, $base_lib, defined($cs) ? $cs : ()); $self -> {_es} = "+"; $self -> {_e} = $LIB->_zero(); $self -> bnorm(); $self -> bround(@r); $self -> _dng(); return $self; } sub bzero { # create/assign '+0' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bzero'); my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bzero(@_) if $selfref; return $dng -> bzero(@_); } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = '+'; $self -> {_m} = $LIB -> _zero(); $self -> {_es} = '+'; $self -> {_e} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bone { # Create or assign '+1' (or -1 if given sign '-'). # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bone'); my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bone(@_) if $selfref; return $dng -> bone(@_); } # Get the sign. my $sign = '+'; # default is to return +1 if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) { $sign = $1; shift; } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $sign; $self -> {_m} = $LIB -> _one(); $self -> {_es} = '+'; $self -> {_e} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $_[0]; $self->{precision} = $_[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub binf { # create/assign a '+inf' or '-inf' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_inf"}) { croak("Tried to create +-inf in $class->binf()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('binf'); # Get the sign. my $sign = '+'; # default is to return positive infinity if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) { $sign = $1; shift; } # Get the rounding parameters, if any. my @r = @_; # Downgrade? my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> binf($sign, @r) if $selfref; return $dng -> binf($sign, @r); } # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $sign . 'inf'; $self -> {_m} = $LIB -> _zero(); $self -> {_es} = '+'; $self -> {_e} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bnan { # create/assign a 'NaN' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_nan"}) { croak("Tried to create NaN in $class->bnan()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bnan'); my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bnan(@_) if $selfref; return $dng -> bnan(@_); } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $nan; $self -> {_m} = $LIB -> _zero(); $self -> {_es} = '+'; $self -> {_e} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bpi { # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } # Called as Argument list # --------- ------------- # Math::BigFloat->bpi() ("Math::BigFloat") # Math::BigFloat->bpi(10) ("Math::BigFloat", 10) # $x->bpi() ($x) # $x->bpi(10) ($x, 10) # Math::BigFloat::bpi() () # Math::BigFloat::bpi(10) (10) # # In ambiguous cases, we favour the OO-style, so the following case # # $n = Math::BigFloat->new("10"); # $x = Math::BigFloat->bpi($n); # # which gives an argument list with the single element $n, is resolved as # # $n->bpi(); my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; my @r = @_; # rounding paramters # Make "require" work. $class -> import() if $IMPORT == 0; if ($selfref) { # bpi() called as an instance method return $self if $self -> modify('bpi'); } else { # bpi() called as a class method $self = bless {}, $class; # initialize new instance } ($self, @r) = $self -> _find_round_parameters(@r); # The accuracy, i.e., the number of digits. Pi has one digit before the # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits. my $n = defined $r[0] ? $r[0] : defined $r[1] ? 1 - $r[1] : $self -> div_scale(); my $rmode = defined $r[2] ? $r[2] : $self -> round_mode(); my $pi; if ($n <= 1000) { # 75 x 14 = 1050 digits my $all_digits = < '+', _m => $LIB -> _new($digits), _es => CORE::length($digits) > 1 ? '-' : '+', _e => $LIB -> _new($n - 1), }, $class; } else { # For large accuracy, the arctan formulas become very inefficient with # Math::BigFloat, so use Brent-Salamin (aka AGM or Gauss-Legendre). # Use a few more digits in the intermediate computations. $n += 8; $HALF = $class -> new($HALF) unless ref($HALF); my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy() -> bsqrt($n), $HALF -> copy() -> bmul($HALF), $class -> bone); while ($pn < $n) { my $prev_an = $an -> copy(); $an -> badd($bn) -> bmul($HALF, $n); $bn -> bmul($prev_an) -> bsqrt($n); $prev_an -> bsub($an); $tn -> bsub($pn * $prev_an * $prev_an); $pn -> badd($pn); } $an -> badd($bn); $an -> bmul($an, $n) -> bdiv(4 * $tn, $n); $an -> round(@r); $pi = $an; } if (defined $r[0]) { $pi -> accuracy($r[0]); } elsif (defined $r[1]) { $pi -> precision($r[1]); } $pi -> _dng() if ($pi -> is_int() || $pi -> is_inf() || $pi -> is_nan()); %$self = %$pi; bless $self, ref($pi); return $self; } sub copy { my ($x, $class); if (ref($_[0])) { # $y = $x -> copy() $x = shift; $class = ref($x); } else { # $y = Math::BigInt -> copy($y) $class = shift; $x = shift; } carp "Rounding is not supported for ", (caller(0))[3], "()" if @_; my $copy = bless {}, $class; $copy->{sign} = $x->{sign}; $copy->{_es} = $x->{_es}; $copy->{_m} = $LIB->_copy($x->{_m}); $copy->{_e} = $LIB->_copy($x->{_e}); $copy->{accuracy} = $x->{accuracy} if exists $x->{accuracy}; $copy->{precision} = $x->{precision} if exists $x->{precision}; return $copy; } sub as_int { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. my $upg = Math::BigInt -> upgrade(); my $dng = Math::BigInt -> downgrade(); Math::BigInt -> upgrade(undef); Math::BigInt -> downgrade(undef); my $y; if ($x -> isa("Math::BigInt")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigInt -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigInt -> bnan(); } else { $y = Math::BigInt -> new($x -> copy() -> bint() -> bdstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigInt -> upgrade($upg); Math::BigInt -> downgrade($dng); return $y; } sub as_rat { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. require Math::BigRat; my $upg = Math::BigRat -> upgrade(); my $dng = Math::BigRat -> downgrade(); Math::BigRat -> upgrade(undef); Math::BigRat -> downgrade(undef); my $y; if ($x -> isa("Math::BigRat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigRat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigRat -> bnan(); } else { $y = Math::BigRat -> new($x -> bfstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigRat -> upgrade($upg); Math::BigRat -> downgrade($dng); return $y; } sub as_float { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Disable upgrading and downgrading. require Math::BigFloat; my $upg = Math::BigFloat -> upgrade(); my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $y; if ($x -> isa("Math::BigFloat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigFloat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigFloat -> bnan(); } else { if ($x -> isa("Math::BigRat")) { if ($x -> is_int()) { $y = Math::BigFloat -> new($x -> bdstr()); } else { my ($num, $den) = $x -> fparts(); my $str = $num -> as_float() -> bdiv($den, @r) -> bdstr(); $y = Math::BigFloat -> new($str); } } else { $y = Math::BigFloat -> new($x -> bdstr()); } } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigFloat -> upgrade($upg); Math::BigFloat -> downgrade($dng); return $y; } ############################################################################### # Boolean methods ############################################################################### sub is_zero { # return true if arg (BFLOAT or num_str) is zero my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 if $x->{sign} ne '+'; return 1 if $LIB->_is_zero($x->{_m}); return 0; } sub is_one { # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_); if (defined($sign)) { croak 'is_one(): sign argument must be "+" or "-"' unless $sign eq '+' || $sign eq '-'; } else { $sign = '+'; } return 0 if $x->{sign} ne $sign; $LIB->_is_zero($x->{_e}) && $LIB->_is_one($x->{_m}) ? 1 : 0; } sub is_odd { # return true if arg (BFLOAT or num_str) is odd or false if even my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 unless $x -> is_finite(); $LIB->_is_zero($x->{_e}) && $LIB->_is_odd($x->{_m}) ? 1 : 0; } sub is_even { # return true if arg (BINT or num_str) is even or false if odd my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 unless $x -> is_finite(); ($x->{_es} eq '+') && # 123.45 isn't ($LIB->_is_even($x->{_m})) ? 1 : 0; # but 1200 is } sub is_int { # return true if arg (BFLOAT or num_str) is an integer my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 unless $x -> is_finite(); return $x->{_es} eq '+' ? 1 : 0; # 1e-1 => no integer } ############################################################################### # Comparison methods ############################################################################### sub bcmp { # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort) # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Handle all 'nan' cases. return if $x -> is_nan() || $y -> is_nan(); # Handle all '+inf' and '-inf' cases. return 0 if ($x -> is_inf("+") && $y -> is_inf("+") || $x -> is_inf("-") && $y -> is_inf("-")); return +1 if $x -> is_inf("+"); # x = +inf and y < +inf return -1 if $x -> is_inf("-"); # x = -inf and y > -inf return -1 if $y -> is_inf("+"); # x < +inf and y = +inf return +1 if $y -> is_inf("-"); # x > -inf and y = -inf # Handle all cases with opposite signs. return +1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # also does 0 <=> -y return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # also does -x <=> 0 # Handle all remaining zero cases. my $xz = $x -> is_zero(); my $yz = $y -> is_zero(); return 0 if $xz && $yz; # 0 <=> 0 return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y return +1 if $yz && $x->{sign} eq '+'; # +x <=> 0 # Both arguments are now finite, non-zero numbers with the same sign. my $cmp; # The next step is to compare the exponents, but since each mantissa is an # integer of arbitrary value, the exponents must be normalized by the # length of the mantissas before we can compare them. my $mxl = $LIB->_len($x->{_m}); my $myl = $LIB->_len($y->{_m}); # If the mantissas have the same length, there is no point in normalizing # the exponents by the length of the mantissas, so treat that as a special # case. if ($mxl == $myl) { # First handle the two cases where the exponents have different signs. if ($x->{_es} eq '+' && $y->{_es} eq '-') { $cmp = +1; } elsif ($x->{_es} eq '-' && $y->{_es} eq '+') { $cmp = -1; } # Then handle the case where the exponents have the same sign. else { $cmp = $LIB->_acmp($x->{_e}, $y->{_e}); $cmp = -$cmp if $x->{_es} eq '-'; } # Adjust for the sign, which is the same for x and y, and bail out if # we're done. $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123 return $cmp if $cmp; } # We must normalize each exponent by the length of the corresponding # mantissa. Life is a lot easier if we first make both exponents # non-negative. We do this by adding the same positive value to both # exponent. This is safe, because when comparing the exponents, only the # relative difference is important. my $ex; my $ey; if ($x->{_es} eq '+') { # If the exponent of x is >= 0 and the exponent of y is >= 0, there is # no need to do anything special. if ($y->{_es} eq '+') { $ex = $LIB->_copy($x->{_e}); $ey = $LIB->_copy($y->{_e}); } # If the exponent of x is >= 0 and the exponent of y is < 0, add the # absolute value of the exponent of y to both. else { $ex = $LIB->_copy($x->{_e}); $ex = $LIB->_add($ex, $y->{_e}); # ex + |ey| $ey = $LIB->_zero(); # -ex + |ey| = 0 } } else { # If the exponent of x is < 0 and the exponent of y is >= 0, add the # absolute value of the exponent of x to both. if ($y->{_es} eq '+') { $ex = $LIB->_zero(); # -ex + |ex| = 0 $ey = $LIB->_copy($y->{_e}); $ey = $LIB->_add($ey, $x->{_e}); # ey + |ex| } # If the exponent of x is < 0 and the exponent of y is < 0, add the # absolute values of both exponents to both exponents. else { $ex = $LIB->_copy($y->{_e}); # -ex + |ey| + |ex| = |ey| $ey = $LIB->_copy($x->{_e}); # -ey + |ex| + |ey| = |ex| } } # Now we can normalize the exponents by adding lengths of the mantissas. $ex = $LIB->_add($ex, $LIB->_new($mxl)); $ey = $LIB->_add($ey, $LIB->_new($myl)); # We're done if the exponents are different. $cmp = $LIB->_acmp($ex, $ey); $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123 return $cmp if $cmp; # Compare the mantissas, but first normalize them by padding the shorter # mantissa with zeros (shift left) until it has the same length as the # longer mantissa. my $mx = $x->{_m}; my $my = $y->{_m}; if ($mxl > $myl) { $my = $LIB->_lsft($LIB->_copy($my), $LIB->_new($mxl - $myl), 10); } elsif ($mxl < $myl) { $mx = $LIB->_lsft($LIB->_copy($mx), $LIB->_new($myl - $mxl), 10); } $cmp = $LIB->_acmp($mx, $my); $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123 return $cmp; } sub bacmp { # Compares 2 values, ignoring their signs. # Returns one of undef, <0, =0, >0. (suitable for sort) # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # handle +-inf and NaN if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) { return if ($x -> is_nan() || $y -> is_nan()); return 0 if ($x -> is_inf() && $y -> is_inf()); return 1 if ($x -> is_inf() && !$y -> is_inf()); return -1; } # shortcut my $xz = $x -> is_zero(); my $yz = $y -> is_zero(); return 0 if $xz && $yz; # 0 <=> 0 return -1 if $xz && !$yz; # 0 <=> +y return 1 if $yz && !$xz; # +x <=> 0 # adjust so that exponents are equal my $lxm = $LIB->_len($x->{_m}); my $lym = $LIB->_len($y->{_m}); my ($xes, $yes) = (1, 1); $xes = -1 if $x->{_es} ne '+'; $yes = -1 if $y->{_es} ne '+'; # the numify somewhat limits our length, but makes it much faster my $lx = $lxm + $xes * $LIB->_num($x->{_e}); my $ly = $lym + $yes * $LIB->_num($y->{_e}); my $l = $lx - $ly; return $l <=> 0 if $l != 0; # lengths (corrected by exponent) are equal # so make mantissa equal-length by padding with zero (shift left) my $diff = $lxm - $lym; my $xm = $x->{_m}; # not yet copy it my $ym = $y->{_m}; if ($diff > 0) { $ym = $LIB->_copy($y->{_m}); $ym = $LIB->_lsft($ym, $LIB->_new($diff), 10); } elsif ($diff < 0) { $xm = $LIB->_copy($x->{_m}); $xm = $LIB->_lsft($xm, $LIB->_new(-$diff), 10); } $LIB->_acmp($xm, $ym); } ############################################################################### # Arithmetic methods ############################################################################### sub bneg { # (BINT or num_str) return BINT # negate number or make a negated number from string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bneg'); # For +0 do not negate (to have always normalized +0). $x->{sign} =~ tr/+-/-+/ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_m}); $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bnorm { # bnorm() can't support rounding, because bround() and bfround() call # bnorm(), which would recurse indefinitely. # adjust m and e so that m is smallest possible my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # inf and nan if ($x->{sign} !~ /^[+-]$/) { $x -> round(@r); $x -> _dng(); return $x; } my $zeros = $LIB->_zeros($x->{_m}); # correct for trailing zeros if ($zeros != 0) { my $z = $LIB->_new($zeros); $x->{_m} = $LIB->_rsft($x->{_m}, $z, 10); if ($x->{_es} eq '-') { if ($LIB->_acmp($x->{_e}, $z) >= 0) { $x->{_e} = $LIB->_sub($x->{_e}, $z); $x->{_es} = '+' if $LIB->_is_zero($x->{_e}); } else { $x->{_e} = $LIB->_sub($LIB->_copy($z), $x->{_e}); $x->{_es} = '+'; } } else { $x->{_e} = $LIB->_add($x->{_e}, $z); } } else { # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing # zeros). So, for something like 0Ey, set y to 0, and -0 => +0 if ($LIB->_is_zero($x->{_m})) { $x->{sign} = '+'; $x->{_es} = '+'; $x->{_e} = $LIB->_zero(); } } # Inf and NaN was handled above, so no need to check for this. $x -> _dng() if $x -> is_int(); return $x; } sub binc { # increment arg by one my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('binc'); # Inf and NaN if ($x -> is_inf() || $x -> is_nan()) { $x -> round(@r); $x -> _dng(); return $x } # Non-integer if ($x->{_es} eq '-') { return $x -> badd($class -> bone(), @r); } # If the exponent is non-zero, convert the internal representation, so # that, e.g., 12e+3 becomes 12000e+0 and we can easily increment the # mantissa. if (!$LIB->_is_zero($x->{_e})) { $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100 $x->{_e} = $LIB->_zero(); # normalize $x->{_es} = '+'; # we know that the last digit of $x will be '1' or '9', depending on # the sign } # now $x->{_e} == 0 if ($x->{sign} eq '+') { $x->{_m} = $LIB->_inc($x->{_m}); return $x -> bnorm() -> bround(@r); } elsif ($x->{sign} eq '-') { $x->{_m} = $LIB->_dec($x->{_m}); $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0 return $x -> bnorm() -> bround(@r); } $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bdec { # decrement arg by one my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdec'); # Inf and NaN if ($x -> is_inf() || $x -> is_nan()) { $x -> round(@r); $x -> _dng(); return $x } # Non-integer if ($x->{_es} eq '-') { return $x -> badd($class -> bone('-'), @r); } # If the exponent is non-zero, convert the internal representation, so # that, e.g., 12e+3 becomes 12000e+0 and we can easily increment the # mantissa. if (!$LIB->_is_zero($x->{_e})) { $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100 $x->{_e} = $LIB->_zero(); # normalize $x->{_es} = '+'; } # now $x->{_e} == 0 my $zero = $x -> is_zero(); if (($x->{sign} eq '-') || $zero) { # x <= 0 $x->{_m} = $LIB->_inc($x->{_m}); $x->{sign} = '-' if $zero; # 0 => 1 => -1 $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0 $x -> bnorm(); } elsif ($x->{sign} eq '+') { # x > 0 $x->{_m} = $LIB->_dec($x->{_m}); $x -> bnorm(); } $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub badd { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('badd'); unless ($x -> is_finite() && $y -> is_finite()) { return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); return $x -> is_inf("+") ? ($y -> is_inf("-") ? $x -> bnan(@r) : $x -> binf("+", @r)) : $x -> is_inf("-") ? ($y -> is_inf("+") ? $x -> bnan(@r) : $x -> binf("-", @r)) : ($y -> is_inf("+") ? $x -> binf("+", @r) : $x -> binf("-", @r)); } return $x -> _upg() -> badd($y, @r) if $class -> upgrade(); $r[3] = $y; # no push! # for speed: no add for $x + 0 if ($y -> is_zero()) { $x -> round(@r); } # for speed: no add for 0 + $y elsif ($x -> is_zero()) { # make copy, clobbering up x (modify in place!) $x->{_e} = $LIB->_copy($y->{_e}); $x->{_es} = $y->{_es}; $x->{_m} = $LIB->_copy($y->{_m}); $x->{sign} = $y->{sign} || $nan; $x -> round(@r); } # both $x and $y are non-zero else { # take lower of the two e's and adapt m1 to it to match m2 my $e = $y->{_e}; $e = $LIB->_zero() if !defined $e; # if no BFLOAT? $e = $LIB->_copy($e); # make copy (didn't do it yet) my $es; ($e, $es) = $LIB -> _ssub($e, $y->{_es} || '+', $x->{_e}, $x->{_es}); my $add = $LIB->_copy($y->{_m}); if ($es eq '-') { # < 0 $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10); ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es); } elsif (!$LIB->_is_zero($e)) { # > 0 $add = $LIB->_lsft($add, $e, 10); } # else: both e are the same, so just leave them if ($x->{sign} eq $y->{sign}) { $x->{_m} = $LIB->_add($x->{_m}, $add); } else { ($x->{_m}, $x->{sign}) = $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $y->{sign}); } # delete trailing zeros, then round $x -> bnorm() -> round(@r); } $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bsub { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsub'); $r[3] = $y; # no push! unless ($x -> is_finite() && $y -> is_finite()) { return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); return $x -> is_inf("+") ? ($y -> is_inf("+") ? $x -> bnan(@r) : $x -> binf("+", @r)) : $x -> is_inf("-") ? ($y -> is_inf("-") ? $x -> bnan(@r) : $x -> binf("-", @r)) : ($y -> is_inf("+") ? $x -> binf("-", @r) : $x -> binf("+", @r)); } $x -> badd($y -> copy() -> bneg(), @r); return $x; } sub bmul { # multiply two numbers # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmul'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # inf handling if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) { return $x -> bnan(@r) if $x -> is_zero() || $y -> is_zero(); # result will always be +-inf: # +inf * +/+inf => +inf, -inf * -/-inf => +inf # +inf * -/-inf => -inf, -inf * +/+inf => -inf return $x -> binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/); return $x -> binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/); return $x -> binf('-', @r); } return $x -> _upg() -> bmul($y, @r) if $class -> upgrade(); # aEb * cEd = (a*c)E(b+d) $x->{_m} = $LIB->_mul($x->{_m}, $y->{_m}); ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); $r[3] = $y; # no push! # adjust sign: $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+'; $x -> bnorm -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } *bdiv = \&bfdiv; *bmod = \&bfmod; sub bfdiv { # This does floored division (or floor division) where the quotient is # rounded towards minus infinity. # # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is floor($x / $y) # and $q * $y + $r = $x. # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bfdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> bdiv(). See the comment in the code for Math::BigInt -> # bdiv() for further details. if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. This is handled the same way as in # Math::BigInt -> bdiv(). See the comment in the code for Math::BigInt -> # bdiv() for further details. if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x->{sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> bdiv(). See the comment in the code for Math::BigInt -> # bdiv() for further details. if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign, @r); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigInt -> bdiv(), with one exception: In scalar context, # Math::BigFloat does true division (although rounded), not floored # division (F-division), so a finite number divided by +/-inf is always # zero. See the comment in the code for Math::BigInt -> bdiv() for further # details. if ($y -> is_inf()) { my $rem; if ($wantarray) { if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); $x -> bzero(@r); } else { $rem = $class -> binf($y -> {sign}, @r); $x -> bone('-', @r); } } else { $x -> bzero(@r); } return $wantarray ? ($x, $rem) : $x; } # At this point, both the numerator and denominator are finite, non-zero # numbers. # we need to limit the accuracy to protect against overflow my $fallback = 0; my (@params, $scale); ($x, @params) = $x->_find_round_parameters($r[0], $r[1], $r[2], $y); if ($x -> is_nan()) { # error in _find_round_parameters? $x -> round(@r); return $wantarray ? ($x, $class -> bnan(@r)) : $x; } # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # Temporarily disable downgrading my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> downgrade(undef); my $rem; $rem = $class -> bzero() if $wantarray; $y = $class -> new($y) unless $y -> isa('Math::BigFloat'); my $lx = $LIB -> _len($x->{_m}); my $ly = $LIB -> _len($y->{_m}); $scale = $lx if $lx > $scale; $scale = $ly if $ly > $scale; my $diff = $ly - $lx; $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx! # Are both operands the same object, i.e., like $x -> bdiv($x)? If so, # flipping the sign of $y also flips the sign of $x. my $xsign = $x -> {sign}; my $ysign = $y -> {sign}; $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ... my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x. $y -> {sign} = $ysign; # Re-insert the original sign. if ($same) { # $x -> bdiv($x) $x -> bone(); } else { # make copy of $x in case of list context for later remainder # calculation $rem = $x -> copy() if $wantarray; $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+'; # promote Math::BigInt and its subclasses (except when already a # Math::BigFloat) $y = $class -> new($y) unless $y -> isa('Math::BigFloat'); # calculate the result to $scale digits and then round it # (a * 10 ** b) / (c * 10 ** d) => (a/c) * 10 ** (b-d) $x->{_m} = $LIB->_lsft($x->{_m}, $LIB->_new($scale), 10); # scale up $x->{_m} = $LIB->_div($x->{_m}, $y->{_m}); # divide # correct exponent of $x ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); # correct for 10**scale ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($scale), '+'); $x -> bnorm(); # remove trailing zeros } # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x->{accuracy} = undef; # clear before round $x -> bround($params[0], $params[2]); # then round accordingly } else { $x->{precision} = undef; # clear before round $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore downgrading Math::BigFloat -> downgrade($dng); if ($wantarray) { $x -> bfloor(); $rem -> bfmod($y, @params); # copy already done if ($fallback) { # clear a/p after round, since user did not request it $rem->{accuracy} = undef; $rem->{precision} = undef; } $x -> _dng() if $x -> is_int(); $rem -> _dng() if $rem -> is_int(); return $x, $rem; } $x -> _dng() if $x -> is_int(); $x; # rounding already done above } sub bfmod { # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return # remainder # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfmod'); # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> bfmod(). return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # Modulo zero. This is handled the same way as in Math::BigInt -> bfmod(). if ($y -> is_zero()) { return $x -> round(@r); } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> bfmod(). if ($x -> is_inf()) { return $x -> bnan(@r); } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigInt -> bfmod(). if ($y -> is_inf()) { if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { return $x -> round(@r); } else { return $x -> binf($y -> sign(), @r); } } # Modulo is zero if $x is zero or if $x is an integer and $y is +/-1. return $x -> bzero(@r) if $x -> is_zero() || ($x -> is_int() && # check that $y == +1 or $y == -1: ($LIB->_is_zero($y->{_e}) && $LIB->_is_one($y->{_m}))); # Numerator (dividend) and denominator (divisor) are identical. Return # zero. my $cmp = $x -> bacmp($y); # $x <=> $y if ($cmp == 0) { # $x == $y => result 0 return $x -> bzero(@r); } # Compare the exponents of $x and $y. my $ecmp = $LIB->_scmp($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); my $ym = $y->{_m}; # mantissa of y, scaled if necessary if ($ecmp > 0) { # $x has a larger exponent than $y, so shift the mantissa of $x by the # difference between the exponents of $x and $y. # # 123e+2 % 456e+1 => 1230 % 456 (+2 - +1 = 1) # 123e+2 % 456e-1 => 123000 % 456 (+2 - -1 = 3) # 456e-1 % 123e-3 => 12300 % 456 (-1 - -3 = 2) # get the difference between exponents; $ds is always "+" here my ($de, $ds) = $LIB->_ssub($LIB->_copy($x->{_e}), $x->{_es}, $y->{_e}, $y->{_es}); # adjust the mantissa of x by the difference between exponents $x->{_m} = $LIB->_lsft($x->{_m}, $de, 10); # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $ym); # adjust the exponent of x to correct for the ajustment of the mantissa ($x->{_e}, $x->{_es}) = $LIB->_ssub($x->{_e}, $x->{_es}, $de, $ds); } elsif ($ecmp < 0) { # $x has a smaller exponent than $y, so shift the mantissa of $y by the # difference between the exponents of $x and $y. # # 123456e+1 % 78e+2 => 123456 % 780 (+2 - +1 = 1) # 123456e-2 % 78e+1 => 123456 % 78000 (+1 - -2 = 3) # get the difference between exponents; $ds is always "+" here my ($de, $ds) = $LIB->_ssub($LIB->_copy($y->{_e}), $y->{_es}, $x->{_e}, $x->{_es}); # adjust the mantissa of y by the difference between exponents $ym = $LIB->_lsft($LIB->_copy($ym), $de, 10); # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $ym); } else { # $x has the same exponent as $y, so compute the modulus directly # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $ym); } if ($LIB->_is_zero($x->{_m})) { $x->{sign} = '+'; } else { # adjust for floored division/modulus $x->{_m} = $LIB->_sub($ym, $x->{_m}, 1) if $x->{sign} ne $y->{sign}; $x->{sign} = $y->{sign}; } $x -> bnorm(); $x -> round($r[0], $r[1], $r[2], $y); $x -> _dng() if $x -> is_int(); return $x; } sub btdiv { # This does truncated division, where the quotient is truncted, i.e., # rounded towards zero. # # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is int($x / $y) # and $q * $y + $r = $x. # Set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('btdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. Return NaN for both quotient and the # modulo/remainder. if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. # # Division: Use the common convention that x / 0 is inf with the same sign # as x, except when x = 0, where we return NaN. This is also what earlier # versions did. # # Modulo: In modular arithmetic, the congruence relation z = x (mod y) # means that there is some integer k such that z - x = k y. If y = 0, we # get z - x = 0 or z = x. This is also what earlier versions did, except # that 0 % 0 returned NaN. # # inf / 0 = inf inf % 0 = inf # 5 / 0 = inf 5 % 0 = 5 # 0 / 0 = NaN 0 % 0 = 0 # -5 / 0 = -inf -5 % 0 = -5 # -inf / 0 = -inf -inf % 0 = -inf if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy(@r); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x -> {sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. # The divide by zero cases are covered above. In all of the cases listed # below we return the same as core Perl. # # inf / -inf = NaN inf % -inf = NaN # inf / -5 = -inf inf % -5 = NaN # inf / 5 = inf inf % 5 = NaN # inf / inf = NaN inf % inf = NaN # # -inf / -inf = NaN -inf % -inf = NaN # -inf / -5 = inf -inf % -5 = NaN # -inf / 5 = -inf -inf % 5 = NaN # -inf / inf = NaN -inf % inf = NaN if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign,@r ); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. In the modulo cases (in the right column) we return # the same as core Perl, which does floored division, so for consistency we # also do floored division in the division cases (in the left column). # # -5 / inf = 0 -5 % inf = -5 # 0 / inf = 0 0 % inf = 0 # 5 / inf = 0 5 % inf = 5 # # -5 / -inf = 0 -5 % -inf = -5 # 0 / -inf = 0 0 % -inf = 0 # 5 / -inf = 0 5 % -inf = 5 if ($y -> is_inf()) { my $rem; if ($wantarray) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); } $x -> bzero(@r); return $wantarray ? ($x, $rem) : $x; } # At this point, both the numerator and denominator are finite, non-zero # numbers. # we need to limit the accuracy to protect against overflow my $fallback = 0; my (@params, $scale); ($x, @params) = $x->_find_round_parameters($r[0], $r[1], $r[2], $y); if ($x -> is_nan()) { # error in _find_round_parameters? $x -> round(@r); return $wantarray ? ($x, $class -> bnan(@r)) : $x; } # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # Temporarily disable downgrading my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> downgrade(undef); my $rem; $rem = $class -> bzero() if $wantarray; $y = $class -> new($y) unless $y -> isa('Math::BigFloat'); my $lx = $LIB -> _len($x->{_m}); my $ly = $LIB -> _len($y->{_m}); $scale = $lx if $lx > $scale; $scale = $ly if $ly > $scale; my $diff = $ly - $lx; $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx! # Are both operands the same object, i.e., like $x -> bdiv($x)? If so, # flipping the sign of $y also flips the sign of $x. my $xsign = $x -> {sign}; my $ysign = $y -> {sign}; $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ... my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x. $y -> {sign} = $ysign; # Re-insert the original sign. if ($same) { # $x -> bdiv($x) $x -> bone(); } else { # make copy of $x in case of list context for later remainder # calculation $rem = $x -> copy() if $wantarray; $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+'; # promote Math::BigInt and its subclasses (except when already a # Math::BigFloat) $y = $class -> new($y) unless $y -> isa('Math::BigFloat'); # calculate the result to $scale digits and then round it # (a * 10 ** b) / (c * 10 ** d) => (a/c) * 10 ** (b-d) $x->{_m} = $LIB->_lsft($x->{_m}, $LIB->_new($scale), 10); # scale up $x->{_m} = $LIB->_div($x->{_m}, $y->{_m}); # divide # correct exponent of $x ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); # correct for 10**scale ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($scale), '+'); $x -> bnorm(); # remove trailing zeros in mantissa } # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x->{accuracy} = undef; # clear before round $x -> bround($params[0], $params[2]); # then round accordingly } else { $x->{precision} = undef; # clear before round $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore downgrading Math::BigFloat -> downgrade($dng); if ($wantarray) { $x -> bint(); $rem -> btmod($y, @params); # copy already done if ($fallback) { # clear a/p after round, since user did not request it $rem->{accuracy} = undef; $rem->{precision} = undef; } $x -> _dng() if $x -> is_int(); $rem -> _dng() if $rem -> is_int(); return $x, $rem; } $x -> _dng() if $x -> is_int(); $x; # rounding already done above } sub btmod { # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return # remainder # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('btmod'); # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> btmod(). return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # Modulo zero. This is handled the same way as in Math::BigInt -> btmod(). if ($y -> is_zero()) { return $x -> round(@r); } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> btmod(). if ($x -> is_inf()) { return $x -> bnan(@r); } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigInt -> btmod(). if ($y -> is_inf()) { return $x -> round(@r); } # Modulo is zero if $x is zero or if $x is an integer and $y is +/-1. return $x -> bzero(@r) if $x -> is_zero() || ($x -> is_int() && # check that $y == +1 or $y == -1: ($LIB->_is_zero($y->{_e}) && $LIB->_is_one($y->{_m}))); # Numerator (dividend) and denominator (divisor) are identical. Return # zero. my $cmp = $x -> bacmp($y); # $x <=> $y if ($cmp == 0) { # $x == $y => result 0 return $x -> bzero(@r); } # Compare the exponents of $x and $y. my $ecmp = $LIB->_scmp($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); if ($ecmp > 0) { # $x has a larger exponent than $y, so shift the mantissa of $x by the # difference between the exponents of $x and $y. # # 123e+2 % 456e+1 => 1230 % 456 (+2 - +1 = 1) # 123e+2 % 456e-1 => 123000 % 456 (+2 - -1 = 3) # 456e-1 % 123e-3 => 12300 % 456 (-1 - -3 = 2) # get the difference between exponents; $ds is always "+" here my ($de, $ds) = $LIB->_ssub($LIB->_copy($x->{_e}), $x->{_es}, $y->{_e}, $y->{_es}); # adjust the mantissa of x by the difference between exponents $x->{_m} = $LIB->_lsft($x->{_m}, $de, 10); # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $y->{_m}); # adjust the exponent of x to correct for the ajustment of the mantissa ($x->{_e}, $x->{_es}) = $LIB->_ssub($x->{_e}, $x->{_es}, $de, $ds); } elsif ($ecmp < 0) { # $x has a smaller exponent than $y, so shift the mantissa of $y by the # difference between the exponents of $x and $y. # # 123456e+1 % 78e+2 => 123456 % 780 (+2 - +1 = 1) # 123456e-2 % 78e+1 => 123456 % 78000 (+1 - -2 = 3) # get the difference between exponents; $ds is always "+" here my ($de, $ds) = $LIB->_ssub($LIB->_copy($y->{_e}), $y->{_es}, $x->{_e}, $x->{_es}); # adjust the mantissa of y by the difference between exponents my $ym = $LIB->_lsft($LIB->_copy($y->{_m}), $de, 10); # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $ym); } else { # $x has the same exponent as $y, so compute the modulus directly # compute the modulus $x->{_m} = $LIB->_mod($x->{_m}, $y->{_m}); } $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # fix sign for -0 $x -> bnorm(); $x -> round($r[0], $r[1], $r[2], $y); $x -> _dng() if $x -> is_int(); return $x; } sub binv { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('binv'); # bone() might perform downgrading, so temporarily disable downgrading my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> downgrade(undef); my $inv = $class -> bone() -> bdiv($x, @r); # Restore downgrading Math::BigFloat -> downgrade($dng); %$x = %$inv; $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bsqrt { # calculate square root my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsqrt'); # Handle trivial cases. return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> round(@r) if $x -> is_zero() || $x -> is_one(); # We don't support complex numbers. if ($x -> is_neg()) { return $x -> _upg() -> bsqrt(@r) if $class -> upgrade(); return $x -> bnan(@r); } # we need to limit the accuracy to protect against overflow my $fallback = 0; my (@params, $scale); ($x, @params) = $x->_find_round_parameters(@r); # error in _find_round_parameters? return $x -> bnan(@r) if $x -> is_nan(); # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # Shift the significand left or right to get the desired number of digits, # which is 2*$scale with possibly one extra digit to ensure that the # exponent is an even number. my $l = $LIB -> _len($x->{_m}); my $n = 2 * $scale - $l; # how much should we shift? $n++ if ($l % 2 xor $LIB -> _is_odd($x->{_e})); my ($na, $ns) = $n < 0 ? (abs($n), "-") : ($n, "+"); $na = $LIB -> _new($na); $x->{_m} = $ns eq "+" ? $LIB -> _lsft($x->{_m}, $na, 10) : $LIB -> _rsft($x->{_m}, $na, 10); $x->{_m} = $LIB -> _sqrt($x->{_m}); # Adjust the exponent by the amount that we shifted the significand. The # square root of the exponent is simply half of it: sqrt(10^(2*a)) = 10^a. ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $na, $ns); $x->{_e} = $LIB -> _div($x->{_e}, $LIB -> _new("2")); # Normalize to get rid of any trailing zeros in the significand. $x -> bnorm(); # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } $x -> round(@r); $x -> _dng() if $x -> is_int(); $x; } sub bpow { # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT # compute power of two numbers, second arg is used as integer # modifies first argument # set up parameters my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_); # objectify is costly, so avoid it if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) { ($class, $x, $y, $a, $p, $r) = objectify(2, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('bpow'); # $x and/or $y is a NaN return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); # $x and/or $y is a +/-Inf if ($x -> is_inf("-")) { return $x -> bzero() if $y -> is_negative(); return $x -> bnan() if $y -> is_zero(); return $x if $y -> is_odd(); return $x -> bneg(); } elsif ($x -> is_inf("+")) { return $x -> bzero() if $y -> is_negative(); return $x -> bnan() if $y -> is_zero(); return $x; } elsif ($y -> is_inf("-")) { return $x -> bnan() if $x -> is_one("-"); return $x -> binf("+") if $x > -1 && $x < 1; return $x -> bone() if $x -> is_one("+"); return $x -> bzero(); } elsif ($y -> is_inf("+")) { return $x -> bnan() if $x -> is_one("-"); return $x -> bzero() if $x > -1 && $x < 1; return $x -> bone() if $x -> is_one("+"); return $x -> binf("+"); } if ($x -> is_zero()) { return $x -> bone() if $y -> is_zero(); return $x -> binf() if $y -> is_negative(); return $x; } # We don't support complex numbers, so upgrade or return NaN. if ($x -> is_negative() && !$y -> is_int()) { return $x -> _upg() -> bpow($y, $a, $p, $r) if $class -> upgrade(); return $x -> bnan(); } if ($x -> is_one("+") || $y -> is_one()) { return $x; } if ($x -> is_one("-")) { return $x if $y -> is_odd(); return $x -> bneg(); } return $x -> _pow($y, $a, $p, $r) if !$y -> is_int(); # We should NOT be looking at private variables of other objects. Fixme XXX my $y1 = $y -> as_int()->{value}; # make MBI part my $new_sign = '+'; $new_sign = $LIB -> _is_odd($y1) ? '-' : '+' if $x->{sign} ne '+'; # calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster) $x->{_m} = $LIB -> _pow($x->{_m}, $y1); $x->{_e} = $LIB -> _mul($x->{_e}, $y1); $x->{sign} = $new_sign; $x -> bnorm(); # x ** (-y) = 1 / (x ** y) if ($y->{sign} eq '-') { # modify $x in place! my $z = $x -> copy(); $x -> bone(); # round in one go (might ignore y's A!) return scalar $x -> bdiv($z, $a, $p, $r); } $x -> round($a, $p, $r, $y); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub broot { # calculate $y'th root of $x # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('broot'); # Handle trivial cases. return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); if ($x -> is_neg()) { # -27 ** (1/3) = -(27 ** (1/3)) = -3 return $x -> broot($y -> copy() -> bneg(), @r) -> bneg() if ($x -> is_int() && $y -> is_int() && $y -> is_neg() && $y -> is_odd()); return $x -> _upg -> broot($y, @r) if $class -> upgrade(); return $x -> bnan(@r); } # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0 return $x -> bnan(@r) if ($x->{sign} !~ /^\+/ || $y -> is_zero() || $y->{sign} !~ /^\+$/); # Trivial cases. return $x if ($x -> is_zero() || $x -> is_one() || $x -> is_inf() || $y -> is_one()); # we need to limit the accuracy to protect against overflow my $fallback = 0; my (@params, $scale); ($x, @params) = $x->_find_round_parameters(@r); return $x if $x -> is_nan(); # error in _find_round_parameters? # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; # remember sign and make $x positive, since -4 ** (1/2) => -2 my $sign = 0; $sign = 1 if $x->{sign} eq '-'; $x->{sign} = '+'; my $is_two = 0; if ($y -> isa('Math::BigFloat')) { $is_two = $y->{sign} eq '+' && $LIB->_is_two($y->{_m}) && $LIB->_is_zero($y->{_e}); } else { $is_two = $y == 2; } # Normal square root if $y == 2 if ($is_two) { $x -> bsqrt($scale + 4); } # Inverse: $x ** (-1) => 1 / $x elsif ($y -> is_one('-')) { $x -> binv($scale + 4); } # General case: calculate the broot() as integer result first, and if it # fits, return it rightaway (but only if $x and $y are integer). # # This code should be improved. XXX else { # Temporarily disable upgrading in Math::BigInt. my $mbi_upg = Math::BigInt -> upgrade(); Math::BigInt -> upgrade(undef); my $done = 0; # not yet if ($y -> is_int() && $x -> is_int()) { my $i = $LIB->_copy($x->{_m}); $i = $LIB->_lsft($i, $x->{_e}, 10) unless $LIB->_is_zero($x->{_e}); my $int = Math::BigInt -> bzero(); $int->{value} = $i; $int -> broot($y -> as_int()); # if ($exact) if ($int -> copy() -> bpow($y -> as_int()) == $x -> as_int()) { # found result, return it $x->{_m} = $int->{value}; $x->{_e} = $LIB->_zero(); $x->{_es} = '+'; $x -> bnorm(); $done = 1; } } if ($done == 0) { my $u = $class -> bone() -> bdiv($y, $scale+4); $u->{accuracy} = undef; $u->{precision} = undef; $x -> bpow($u, $scale+4); # el cheapo } Math::BigInt -> upgrade($mbi_upg); } $x -> bneg() if $sign == 1; # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bmuladd { # multiply two numbers and add the third to the result # set up parameters my ($class, $x, $y, $z, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmuladd'); # At least one of x, y, and z is a NaN return $x -> bnan(@r) if ($x -> is_nan() || $y -> is_nan() || $z -> is_nan()); # At least one of x, y, and z is an Inf if ($x -> is_inf("-")) { if ($y -> is_neg()) { # x = -inf, y < 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y -> is_zero()) { # x = -inf, y = 0 return $x -> bnan(@r); } else { # x = -inf, y > 0 if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } } elsif ($x->{sign} eq "+inf") { if ($y -> is_neg()) { # x = +inf, y < 0 if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y -> is_zero()) { # x = +inf, y = 0 return $x -> bnan(@r); } else { # x = +inf, y > 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } } elsif ($x -> is_neg()) { if ($y -> is_inf("-")) { # -inf < x < 0, y = -inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y->{sign} eq "+inf") { # -inf < x < 0, y = +inf if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } else { # -inf < x < 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } elsif ($x -> is_zero()) { if ($y -> is_inf("-")) { # x = 0, y = -inf return $x -> bnan(@r); } elsif ($y->{sign} eq "+inf") { # x = 0, y = +inf return $x -> bnan(@r); } else { # x = 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } elsif ($x -> is_pos()) { if ($y -> is_inf("-")) { # 0 < x < +inf, y = -inf if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y->{sign} eq "+inf") { # 0 < x < +inf, y = +inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } else { # 0 < x < +inf, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } # At this point, we know that x, y, and z are finite numbers # Rather than copying $y and/or $z, perhaps we should assign the output to # a temporary $x value, and assign the final result to $x? XXX $y = $y -> copy() if refaddr($y) eq refaddr($x); $z = $z -> copy() if refaddr($z) eq refaddr($x); # aEb * cEd = (a*c)E(b+d) $x->{_m} = $LIB->_mul($x->{_m}, $y->{_m}); ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es}); $r[3] = $y; # no push! # adjust sign: $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+'; # take lower of the two e's and adapt m1 to it to match m2 my $e = $z->{_e}; $e = $LIB->_zero() if !defined $e; # if no BFLOAT? $e = $LIB->_copy($e); # make copy (didn't do it yet) my $es; ($e, $es) = $LIB -> _ssub($e, $z->{_es} || '+', $x->{_e}, $x->{_es}); my $add = $LIB->_copy($z->{_m}); if ($es eq '-') # < 0 { $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10); ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es); } elsif (!$LIB->_is_zero($e)) # > 0 { $add = $LIB->_lsft($add, $e, 10); } # else: both e are the same, so just leave them if ($x->{sign} eq $z->{sign}) { # add $x->{_m} = $LIB->_add($x->{_m}, $add); } else { ($x->{_m}, $x->{sign}) = $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $z->{sign}); } # delete trailing zeros, then round $x -> bnorm() -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bmodpow { # takes a very large number to a very large exponent in a given very # large modulus, quickly, thanks to binary exponentiation. Supports # negative exponents. my ($class, $num, $exp, $mod, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); # Don't modify constant (read-only) objects. return $num if $num -> modify('bmodpow'); return $num -> bnan(@r) if $mod -> is_nan() || $exp -> is_nan() || $mod -> is_nan(); # check modulus for valid values return $num -> bnan(@r) if $mod->{sign} ne '+' || $mod -> is_zero(); # check exponent for valid values if ($exp->{sign} =~ /\w/) { # i.e., if it's NaN, +inf, or -inf... return $num -> bnan(@r); } $num -> bmodinv($mod, @r) if $exp->{sign} eq '-'; # check num for valid values (also NaN if there was no inverse but $exp < 0) return $num -> bnan(@r) if $num->{sign} !~ /^[+-]$/; # $mod is positive, sign on $exp is ignored, result also positive # XXX TODO: speed it up when all three numbers are integers $num -> bpow($exp) -> bmod($mod); $num -> round(@r); $num -> _dng() if ($num -> is_int() || $num -> is_inf() || $num -> is_nan()); return $num; } sub blog { # Return the logarithm of the operand. If a second operand is defined, that # value is used as the base, otherwise the base is assumed to be Euler's # constant. my ($class, $x, $base, @r); # Only objectify the base if it is defined, since an undefined base, as in # $x->blog() or $x->blog(undef) signals that the base is Euler's number = # 2.718281828... if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigFloat->blog(256, 2) ($class, $x, $base, @r) = defined $_[2] ? objectify(2, @_) : objectify(1, @_); } else { # E.g., $x->blog(2) or the deprecated Math::BigFloat::blog(256, 2) ($class, $x, $base, @r) = defined $_[1] ? objectify(2, @_) : objectify(1, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('blog'); # Handle all exception cases and all trivial cases. I have used Wolfram # Alpha (http://www.wolframalpha.com) as the reference for these cases. return $x -> bnan(@r) if $x -> is_nan(); if (defined $base) { $base = $class -> new($base) unless defined(blessed($base)) && $base -> isa(__PACKAGE__); if ($base -> is_nan() || $base -> is_one()) { return $x -> bnan(@r); } elsif ($base -> is_inf() || $base -> is_zero()) { return $x -> bnan(@r) if $x -> is_inf() || $x -> is_zero(); return $x -> bzero(@r); } elsif ($base -> is_negative()) { # -inf < base < 0 return $x -> bzero(@r) if $x -> is_one(); # x = 1 return $x -> bone('+', @r) if $x == $base; # x = base # we can't handle these cases, so upgrade, if we can return $x -> _upg() -> blog($base, @r) if $class -> upgrade(); return $x -> bnan(@r); } return $x -> bone(@r) if $x == $base; # 0 < base && 0 < x < inf } if ($x -> is_inf()) { # x = +/-inf my $sign = defined($base) && $base < 1 ? '-' : '+'; return $x -> binf($sign, @r); } elsif ($x -> is_neg()) { # -inf < x < 0 return $x -> _upg() -> blog($base, @r) if $class -> upgrade(); return $x -> bnan(@r); } elsif ($x -> is_one()) { # x = 1 return $x -> bzero(@r); } elsif ($x -> is_zero()) { # x = 0 my $sign = defined($base) && $base < 1 ? '+' : '-'; return $x -> binf($sign, @r); } # we need to limit the accuracy to protect against overflow my $fallback = 0; my ($scale, @params); ($x, @params) = $x->_find_round_parameters(@r); # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # P = undef $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; my $done = 0; # If both $x and $base are integers, try to calculate an integer result # first. This is very fast, and if the exact result was found, we are done. if (defined($base) && $base -> is_int() && $x -> is_int()) { my $x_lib = $LIB -> _new($x -> bdstr()); my $b_lib = $LIB -> _new($base -> bdstr()); ($x_lib, my $exact) = $LIB -> _log_int($x_lib, $b_lib); if ($exact) { $x->{_m} = $x_lib; $x->{_e} = $LIB -> _zero(); $x -> bnorm(); $done = 1; } } # If the integer result was not accurate, compute the natural logarithm # log($x) (using reduction by 10 and possibly also by 2), and if a # different base was requested, convert the result with log($x)/log($base). unless ($done) { $x -> _log_10($scale); if (defined $base) { # log_b(x) = ln(x) / ln(b), so compute ln(b) my $base_log_e = $base -> copy() -> _log_10($scale); $x -> bdiv($base_log_e, $scale); } } # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); $x -> round(@r); return $x -> _dng() if $x -> is_int(); return $x; } sub bexp { # Calculate e ** X (Euler's number to the power of X) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bexp'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf(@r) if $x -> is_inf("+"); return $x -> bzero(@r) if $x -> is_inf("-"); # Get the rounding parameters, if any. my $fallback = 0; my ($scale, @params); ($x, @params) = $x -> _find_round_parameters(@r); # Error in _find_round_parameters? return $x -> bnan(@r) if $x -> is_nan(); return $x -> bone(@r) if $x -> is_zero(); # If no rounding parameters are give, use fallback. if (!@params) { $params[0] = $class -> div_scale(); # fallback accuracy $params[1] = undef; # no precision $params[2] = $r[2]; # rounding mode $scale = $params[0]; $fallback = 1; # to clear a/p afterwards } else { if (defined($params[0])) { $scale = $params[0]; } else { # We perform the computations below using accuracy only, not # precision, so when precision is given, we need to "convert" this # to accuracy. To do that, we need to know, at least approximately, # how many digits there will be in the final result. # # log10(exp($x)) = log(exp($x)) / log(10) = $x / log(10) #$scale = 1 + int(log($ms) / log(10) + $es) - $params[1]; my $ndig = $x -> numify() / log(10); $scale = 1 + int($ndig) - $params[1]; } } # Add extra digits to reduce the consequence of round-off errors in the # intermediate computations. $scale += 4; if (!$x -> isa('Math::BigFloat')) { $x = Math::BigFloat -> new($x); $class = ref($x); } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; my $x_orig = $x -> copy(); # We use the following Taylor series: # x x^2 x^3 x^4 # e = 1 + --- + --- + --- + --- ... # 1! 2! 3! 4! # The difference for each term is X and N, which would result in: # 2 copy, 2 mul, 2 add, 1 inc, 1 div operations per term # But it is faster to compute exp(1) and then raising it to the # given power, esp. if $x is really big and an integer because: # * The numerator is always 1, making the computation faster # * the series converges faster in the case of x == 1 # * We can also easily check when we have reached our limit: when the # term to be added is smaller than "1E$scale", we can stop - f.i. # scale == 5, and we have 1/40320, then we stop since 1/40320 < 1E-5. # * we can compute the *exact* result by simulating bigrat math: # 1 1 gcd(3, 4) = 1 1*24 + 1*6 5 # - + - = ---------- = -- # 6 24 6*24 24 # We do not compute the gcd() here, but simple do: # 1 1 1*24 + 1*6 30 # - + - = --------- = -- # 6 24 6*24 144 # In general: # a c a*d + c*b and note that c is always 1 and d = (b*f) # - + - = --------- # b d b*d # This leads to: which can be reduced by b to: # a 1 a*b*f + b a*f + 1 # - + - = --------- = ------- # b b*f b*b*f b*f # The first terms in the series are: # 1 1 1 1 1 1 1 1 13700 # -- + -- + -- + -- + -- + --- + --- + ---- = ----- # 1 1 2 6 24 120 720 5040 5040 # Note that we cannot simply reduce 13700/5040 to 685/252, but must keep # the numerator and the denominator! if ($scale <= 75) { # set $x directly from a cached string form $x->{_m} = $LIB->_new("2718281828459045235360287471352662497757" . "2470936999595749669676277240766303535476"); $x->{sign} = '+'; $x->{_es} = '-'; $x->{_e} = $LIB->_new(79); } else { # compute A and B so that e = A / B. # After some terms we end up with this, so we use it as a starting # point: my $A = $LIB->_new("9093339520860578540197197" . "0164779391644753259799242"); my $F = $LIB->_new(42); my $step = 42; # Compute number of steps needed to get $A and $B sufficiently large. my $steps = _len_to_steps($scale - 4); # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n"; while ($step++ <= $steps) { # calculate $a * $f + 1 $A = $LIB -> _mul($A, $F); $A = $LIB -> _inc($A); # increment f $F = $LIB -> _inc($F); } # Compute $B as factorial of $steps (this is faster than doing it # manually) my $B = $LIB->_fac($LIB->_new($steps)); # print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n"; # compute A/B with $scale digits in the result (truncate, not round) $A = $LIB->_lsft($A, $LIB->_new($scale), 10); $A = $LIB->_div($A, $B); $x->{_m} = $A; $x->{sign} = '+'; $x->{_es} = '-'; $x->{_e} = $LIB->_new($scale); } # Now $x contains now an estimate of e, with some additional digits. if ($x_orig -> is_one()) { # else just round the already computed result $x->{accuracy} = undef; $x->{precision} = undef; # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } } else { # Use the fact exp(x) = exp(x/n)**n. In our case, n = 2**i for some # integer i. We use this to compute exp(y) where y = x / (2**i) and # 1 <= |y| < 2. # # The code below is similar to the code found in to_ieee754(). # We need to find the base 2 exponent. First make an estimate of the # base 2 exponent, before adjusting it below. We could skip this # estimation and go straight to the while-loops below, but the loops # are slow, especially when the final exponent is far from zero and # even more so if the number of digits is large. This initial # estimation speeds up the computation dramatically. # # log2($m * 10**$e) = log10($m + 10**$e) * log(10)/log(2) # = (log10($m) + $e) * log(10)/log(2) # = (log($m)/log(10) + $e) * log(10)/log(2) my ($m, $e) = $x_orig -> nparts(); my $ms = $m -> numify(); my $es = $e -> numify(); # We start off by initializing the exponent to zero and the mantissa to # the input value. Then we increase the mantissa and decrease the # exponent, or vice versa, until the mantissa is in the desired range # or we hit one of the limits for the exponent. my $mant = $x_orig -> copy() -> babs(); my $expo; my $one = $class -> bone(); my $two = $class -> new("2"); my $half = $class -> new("0.5"); my $expo_est = (log(abs($ms))/log(10) + $es) * log(10)/log(2); $expo_est = int($expo_est); # Don't multiply by a number raised to a negative exponent. This will # cause a division, whose result is truncated to some fixed number of # digits. Instead, multiply by the inverse number raised to a positive # exponent. $expo = $class -> new($expo_est); if ($expo_est > 0) { $mant -> bmul($half -> copy() -> bpow($expo)); } elsif ($expo_est < 0) { my $expo_abs = $expo -> copy() -> bneg(); $mant -> bmul($two -> copy() -> bpow($expo_abs)); } # Final adjustment of the estimate above. while ($mant -> bcmp($two) >= 0) { # $mant <= $two $mant -> bmul($half); $expo -> binc(); } while ($mant -> bcmp($one) < 0) { # $mant > $one $mant -> bmul($two); $expo -> bdec(); } # Because of the upscaling, we need some additional digits. my $rescale = int($scale + abs($expo) * log(2) / log(10) + 1); $rescale = 4 if $rescale < 4; $x -> bpow($mant, $rescale); my $pow2 = $two -> bpow($expo, $rescale); $pow2 -> bneg() if $x_orig -> is_negative(); # The bpow() below fails with the GMP and GMPz libraries if abs($pow2) # >= 2**30 = 1073741824. With the Pari library, it fails already when # abs($pow) >= 2**13 = 8192. With the Calc library, it is rediculously # slow when abs($pow2) is large. Fixme? croak "cannot compute bexp(); input value is too large" if $pow2 -> copy() -> babs() -> bcmp("1073741824") >= 0; $x -> bpow($pow2, $rescale); # Rounding parameters given as arguments currently don't override # instance variables, so accuracy (which is set in the computations # above) must be undefined before rounding. Fixme. $x->{accuracy} = undef; $x -> round(@params); } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); # If downgrading, remember to preserve the relevant instance parameters. # There should be a more elegant way to do this. Fixme. $x -> round(@r); $x -> _dng() if $x -> is_int(); $x; } sub bilog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } if ($x->{_es} eq '-') { # exponent < 0 $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); } elsif (! $LIB->_is_zero($x->{_e})) { # exponent > 0 $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); } $x->{_m} = $LIB -> _ilog2($x->{_m}); $x->{_e} = $LIB -> _zero(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bilog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } if ($x->{_es} eq '-') { # exponent < 0 $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); } elsif (! $LIB->_is_zero($x->{_e})) { # exponent > 0 $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); } $x->{_m} = $LIB -> _ilog10($x->{_m}); $x->{_e} = $LIB -> _zero(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bclog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } if ($x->{_es} eq '-') { # exponent < 0 $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); } elsif (! $LIB->_is_zero($x->{_e})) { # exponent > 0 $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); } $x->{_m} = $LIB -> _clog2($x->{_m}); $x->{_e} = $LIB -> _zero(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bclog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } if ($x->{_es} eq '-') { # exponent < 0 $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); } elsif (! $LIB->_is_zero($x->{_e})) { # exponent > 0 $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); } $x->{_m} = $LIB -> _clog10($x->{_m}); $x->{_e} = $LIB -> _zero(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bnok { # Calculate n over k (binomial coefficient or "choose" function) as # integer. set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $x if $x -> modify('bnok'); return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); return $x -> bnan() if (($x -> is_finite() && !$x -> is_int()) || ($y -> is_finite() && !$y -> is_int())); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt my $yint = $y -> as_int(); # to Math::BigInt $xint -> bnok($yint); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } sub bperm { # Calculate n over k (binomial coefficient or "choose" function) as # integer. set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $x if $x -> modify('bperm'); return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); return $x -> bnan() if (($x -> is_finite() && !$x -> is_int()) || ($y -> is_finite() && !$y -> is_int())); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt my $yint = $y -> as_int(); # to Math::BigInt $xint -> bperm($yint); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } sub bsin { # Calculate a sinus of x. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # First we apply range reduction to x. This is because if x is large, the # Taylor series converges slowly and requires higher accuracy in the # intermediate computation. The Taylor series is: # # x^3 x^5 x^7 x^9 # sin(x) = x - --- + --- - --- + --- ... # 3! 5! 7! 9! # Don't modify constant (read-only) objects. return $x if $x -> modify('bsin'); return $x -> bzero(@r) if $x -> is_zero(); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf(); # Get the rounding parameters, if any. my $fallback = 0; my ($scale, @params); ($x, @params) = $x -> _find_round_parameters(@r); # Error in _find_round_parameters? return $x -> bnan(@r) if $x -> is_nan(); # If no rounding parameters are given, use fallback. if (!@params) { $params[0] = $class -> div_scale(); # fallback accuracy $params[1] = undef; # no precision $params[2] = $r[2]; # rounding mode $scale = $params[0]; $fallback = 1; # to clear a/p afterwards } else { if (defined($params[0])) { $scale = $params[0]; } else { # We perform the computations below using accuracy only, not # precision, so when precision is given, we need to "convert" this # to accuracy. $scale = 1 - $params[1]; } } # Add more digits to the scale if the magnitude of $x is large. my ($m, $e) = $x -> nparts(); $scale += $e if $x >= 10; $scale = 4 if $scale < 4; # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; my $sin_prev; # the previous approximation of sin(x) my $sin; # the current approximation of sin(x) while (1) { # Compute constants to the current scale. my $pi = $class -> bpi($scale); # 𝜋 my $twopi = $pi -> copy() -> bmul("2"); # 2𝜋 my $halfpi = $pi -> copy() -> bmul("0.5"); # 𝜋/2 # Use the fact that sin(-x) = -sin(x) to reduce the range to the # interval to [0,∞). my $xsgn = $x < 0 ? -1 : 1; my $x = $x -> copy() -> babs(); # Use the fact that sin(2𝜋x) = sin(x) to reduce the range to the # interval to [0, 2𝜋). $x -> bmod($twopi, $scale); # Use the fact that sin(x+𝜋) = -sin(x) to reduce the range to the # interval to [0,𝜋). if ($x -> bcmp($pi) > 0) { $xsgn = -$xsgn; $x -> bsub($pi); } # Use the fact that sin(𝜋-x) = sin(x) to reduce the range to the # interval [0,𝜋/2). if ($x -> bcmp($halfpi) > 0) { $x -> bsub($pi) -> bneg(); # 𝜋 - x } my $tol = $class -> new("1E-". ($scale-1)); my $xsq = $x -> copy() -> bmul($x, $scale) -> bneg(); my $term = $x -> copy(); my $fac = $class -> bone(); my $n = $class -> bone(); $sin = $x -> copy(); # initialize sin(x) to the first term while (1) { $n -> binc(); $fac = $n -> copy(); $n -> binc(); $fac -> bmul($n); $term -> bmul($xsq, $scale) -> bdiv($fac, $scale); $sin -> badd($term, $scale); last if $term -> copy() -> babs() -> bcmp($tol) < 0; } $sin -> bneg() if $xsgn < 0; # Rounding parameters given as arguments currently don't override # instance variables, so accuracy (which is set in the computations # above) must be undefined before rounding. Fixme. $sin->{accuracy} = undef; $sin -> round(@params); # Compare the current approximation of sin(x) with the previous one, # and if they are identical, we're done. if (defined $sin_prev) { last if $sin -> bcmp($sin_prev) == 0; } # If the current approximation of sin(x) is different from the previous # approximation, double the scale (accuracy) and retry. $sin_prev = $sin; $scale *= 2; } # Assign the result to the invocand. %$x = %$sin; if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); # rounding has already been done $x -> _dng() if $x -> is_int(); $x; } sub bcos { # Calculate a cosinus of x. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Taylor: x^2 x^4 x^6 x^8 # cos = 1 - --- + --- - --- + --- ... # 2! 4! 6! 8! # Don't modify constant (read-only) objects. return $x if $x -> modify('bcos'); # we need to limit the accuracy to protect against overflow my $fallback = 0; my ($scale, @params); ($x, @params) = $x->_find_round_parameters(@r); # error in _find_round_parameters? return $x if $x -> is_nan(); return $x -> bnan() if $x -> is_inf(); return $x -> bone(@r) if $x -> is_zero(); # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # disable P $scale = $params[0] + 4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; my $over = $x * $x; # X ^ 2 my $x2 = $over -> copy(); # X ^ 2; difference between terms my $sign = 1; # start with -= my $below = $class -> new(2); my $factorial = $class -> new(3); $x -> bone(); $x->{accuracy} = undef; $x->{precision} = undef; my $limit = $class -> new("1E-". ($scale-1)); #my $steps = 0; while (3 < 5) { # we calculate the next term, and add it to the last # when the next term is below our limit, it won't affect the outcome # anymore, so we stop: my $next = $over -> copy() -> bdiv($below, $scale); last if $next -> bacmp($limit) <= 0; if ($sign == 0) { $x -> badd($next); } else { $x -> bsub($next); } $sign = 1-$sign; # alternate # calculate things for the next term $over -> bmul($x2); # $x*$x $below -> bmul($factorial); # n*(n+1) $factorial -> binc(); $below -> bmul($factorial); # n*(n+1) $factorial -> binc(); } # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); $x -> round(@r); $x -> _dng() if $x -> is_int(); $x; } sub batan { # Calculate a arcus tangens of x. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # taylor: x^3 x^5 x^7 x^9 # atan = x - --- + --- - --- + --- ... # 3 5 7 9 # Don't modify constant (read-only) objects. return $x if $x -> modify('batan'); return $x -> bnan(@r) if $x -> is_nan(); # We need to limit the accuracy to protect against overflow. my $fallback = 0; my ($scale, @params); ($x, @params) = $x->_find_round_parameters(@r); # Error in _find_round_parameters? return $x -> bnan(@r) if $x -> is_nan(); if ($x->{sign} =~ /^[+-]inf\z/) { # +inf result is PI/2 # -inf result is -PI/2 # calculate PI/2 my $pi = $class -> bpi(@r); # modify $x in place $x->{_m} = $pi->{_m}; $x->{_e} = $pi->{_e}; $x->{_es} = $pi->{_es}; # -y => -PI/2, +y => PI/2 $x->{sign} = substr($x->{sign}, 0, 1); # "+inf" => "+" $x -> {_m} = $LIB->_div($x->{_m}, $LIB->_new(2)); return $x; } return $x -> bzero(@r) if $x -> is_zero(); # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # disable P $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # 1 or -1 => PI/4 # inlined is_one() && is_one('-') if ($LIB->_is_one($x->{_m}) && $LIB->_is_zero($x->{_e})) { my $pi = $class -> bpi($scale - 3); # modify $x in place $x->{_m} = $pi->{_m}; $x->{_e} = $pi->{_e}; $x->{_es} = $pi->{_es}; # leave the sign of $x alone (+1 => +PI/4, -1 => -PI/4) $x->{_m} = $LIB->_div($x->{_m}, $LIB->_new(4)); return $x; } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disable upgrading and downgrading. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; # This series is only valid if -1 < x < 1, so for other x we need to # calculate PI/2 - atan(1/x): my $pi = undef; if ($x -> bacmp($x -> copy() -> bone) >= 0) { # calculate PI/2 $pi = $class -> bpi($scale - 3); $pi->{_m} = $LIB->_div($pi->{_m}, $LIB->_new(2)); # calculate 1/$x: my $x_copy = $x -> copy(); # modify $x in place $x -> bone(); $x -> bdiv($x_copy, $scale); } my $fmul = 1; foreach (0 .. int($scale / 20)) { $fmul *= 2; $x -> bdiv($x -> copy() -> bmul($x) -> binc() -> bsqrt($scale + 4) -> binc(), $scale + 4); } my $over = $x * $x; # X ^ 2 my $x2 = $over -> copy(); # X ^ 2; difference between terms $over -> bmul($x); # X ^ 3 as starting value my $sign = 1; # start with -= my $below = $class -> new(3); my $two = $class -> new(2); $x->{accuracy} = undef; $x->{precision} = undef; my $limit = $class -> new("1E-". ($scale-1)); #my $steps = 0; while (1) { # We calculate the next term, and add it to the last. When the next # term is below our limit, it won't affect the outcome anymore, so we # stop: my $next = $over -> copy() -> bdiv($below, $scale); last if $next -> bacmp($limit) <= 0; if ($sign == 0) { $x -> badd($next); } else { $x -> bsub($next); } $sign = 1 - $sign; # alternatex # calculate things for the next term $over -> bmul($x2); # $x*$x $below -> badd($two); # n += 2 } $x -> bmul($fmul); if (defined $pi) { my $x_copy = $x -> copy(); # modify $x in place $x->{_m} = $pi->{_m}; $x->{_e} = $pi->{_e}; $x->{_es} = $pi->{_es}; # PI/2 - $x $x -> bsub($x_copy); } # Shortcut to not run through _find_round_parameters again. if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # Clear a/p after round, since user did not request it. $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); return $x -> _dng() if ($x -> is_int() || $x -> is_inf()); $x; } sub batan2 { # $y -> batan2($x) returns the arcus tangens of $y / $x. # Set up parameters. my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $y if $y -> modify('batan2'); # Handle all NaN cases. return $y -> bnan() if $x -> is_nan() || $y -> is_nan(); # We need to limit the accuracy to protect against overflow. my $fallback = 0; my ($scale, @params); ($y, @params) = $y -> _find_round_parameters(@r); # Error in _find_round_parameters? return $y if $y -> is_nan(); # No rounding at all, so must use fallback. if (scalar @params == 0) { # Simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # disable P $scale = $params[0] + 4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # The 4 below is empirical, and there might be cases where it is not # enough ... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } if ($x -> is_inf("+")) { # x = inf if ($y -> is_inf("+")) { # y = inf $y -> bpi($scale) -> bmul("0.25"); # pi/4 } elsif ($y -> is_inf("-")) { # y = -inf $y -> bpi($scale) -> bmul("-0.25"); # -pi/4 } else { # -inf < y < inf return $y -> bzero(@r); # 0 } } elsif ($x -> is_inf("-")) { # x = -inf if ($y -> is_inf("+")) { # y = inf $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi } elsif ($y -> is_inf("-")) { # y = -inf $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi } elsif ($y >= 0) { # y >= 0 $y -> bpi($scale); # pi } else { # y < 0 $y -> bpi($scale) -> bneg(); # -pi } } elsif ($x > 0) { # 0 < x < inf if ($y -> is_inf("+")) { # y = inf $y -> bpi($scale) -> bmul("0.5"); # pi/2 } elsif ($y -> is_inf("-")) { # y = -inf $y -> bpi($scale) -> bmul("-0.5"); # -pi/2 } else { # -inf < y < inf $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x) } } elsif ($x < 0) { # -inf < x < 0 my $pi = $class -> bpi($scale); if ($y >= 0) { # y >= 0 $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi -> badd($pi); } else { # y < 0 $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi -> bsub($pi); } } else { # x = 0 if ($y > 0) { # y > 0 $y -> bpi($scale) -> bmul("0.5"); # pi/2 } elsif ($y < 0) { # y < 0 $y -> bpi($scale) -> bmul("-0.5"); # -pi/2 } else { # y = 0 return $y -> bzero(@r); # 0 } } $y -> round(@r); if ($fallback) { $y->{accuracy} = undef; $y->{precision} = undef; } return $y; } sub bfac { # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT # compute factorial number, modifies first argument # set up parameters my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x -> is_neg() || !$x -> is_int(); return $x -> bone(@r) if $x -> is_zero() || $x -> is_one(); if ($x -> is_neg() || !$x -> is_int()) { return $x -> _upg() -> bfac(@r) if $class -> upgrade(); return $x -> bnan(@r); } if (! $LIB->_is_zero($x->{_e})) { $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0 $x->{_e} = $LIB->_zero(); # normalize $x->{_es} = '+'; } $x->{_m} = $LIB->_fac($x->{_m}); # calculate factorial $x -> bnorm(); # norm again $x -> round(@r); $x -> _dng(); return $x; } sub bdfac { # compute double factorial, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x <= -2 || !$x -> is_int(); return $x -> bone(@r) if $x <= 1; croak("bdfac() requires a newer version of the $LIB library.") unless $LIB -> can('_dfac'); if (! $LIB->_is_zero($x->{_e})) { $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0 $x->{_e} = $LIB->_zero(); # normalize $x->{_es} = '+'; } $x->{_m} = $LIB->_dfac($x->{_m}); # calculate factorial $x -> bnorm(); # norm again $x -> round(@r); $x -> _dng(); return $x; } sub btfac { # compute triple factorial # set up parameters my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('btfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); if ($x <= -3 || !$x -> is_int()) { return $x -> _upg() -> btfac(@r) if $class -> upgrade(); return $x -> bnan(@r); } my $k = $class -> new("3"); return $x -> bnan(@r) if $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x = $x -> bmul($f); } $x -> round(@r); $x -> _dng(); return $x; } sub bmfac { my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-") || !$k -> is_pos(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bround(@r) if $k -> is_inf("+"); return $x -> bnan(@r) if !$x -> is_int() || !$k -> is_int(); return $x -> bnan(@r) if $k < 1 || $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x -> bmul($f); } $x -> round(@r); $x -> _dng(); return $x; } sub bfib { # compute Fibonacci number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("bfib() requires a newer version of the $LIB library.") unless $LIB -> can('_fib'); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfib'); # List context. if (wantarray) { croak("bfib() can't return an infinitely long list of numbers") if $x -> is_inf(); return if $x -> is_nan() || !$x -> is_int(); # The following places a limit on how large $x can be. Should this # limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{_m} = $LIB -> _zero(); $y[0]{_e} = $LIB -> _zero(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{_m} = $LIB -> _one(); $y[1]{_e} = $LIB -> _zero(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{_m} = $LIB -> _add($LIB -> _copy($y[$i - 1]{_m}), $y[$i - 2]{_m}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{sign} = $y[-1]{sign}; $x->{_m} = $y[-1]{_m}; $x->{_es} = $y[-1]{_es}; $x->{_e} = $y[-1]{_e}; $y[-1] = $x; } for (@y) { $_ -> bnorm(); $_ -> round(@r); } return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-'); if ($x -> is_int()) { $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{_m} = $LIB -> _lsft($x->{_m}, $x -> {_e}, 10); $x->{_e} = $LIB -> _zero(); $x->{_m} = $LIB -> _fib($x->{_m}); $x -> bnorm(); } return $x -> round(@r); } } sub blucas { # compute Lucas number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("blucas() requires a newer version of the $LIB library.") unless $LIB -> can('_lucas'); # Don't modify constant (read-only) objects. return $x if $x -> modify('blucas'); # List context. if (wantarray) { croak("blucas() can't return an infinitely long list of numbers") if $x -> is_inf(); return if $x -> is_nan() || !$x -> is_int(); # The following places a limit on how large $x can be. Should this # limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{_m} = $LIB -> _two(); $y[0]{_e} = $LIB -> _zero(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{_m} = $LIB -> _one(); $y[1]{_e} = $LIB -> _zero(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{_m} = $LIB -> _add($LIB -> _copy($y[$i - 1]{_m}), $y[$i - 2]{_m}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{sign} = $y[-1]{sign}; $x->{_m} = $y[-1]{_m}; $x->{_es} = $y[-1]{_es}; $x->{_e} = $y[-1]{_e}; $y[-1] = $x; } for (@y) { $_ -> bnorm(); $_ -> round(@r); } return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-'); if ($x -> is_int()) { $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{_m} = $LIB -> _lsft($x->{_m}, $x -> {_e}, 10); $x->{_e} = $LIB -> _zero(); $x->{_m} = $LIB -> _lucas($x->{_m}); $x -> bnorm(); } return $x -> round(@r); } } sub blsft { # shift left by $y in base $b, i.e., multiply by $b ** $y # set up parameters my ($class, $x, $y, $b, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('blsft'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); $b = 2 if !defined $b; $b = $class -> new($b) unless defined(blessed($b)) && $b -> isa(__PACKAGE__); return $x -> bnan(@r) if $b -> is_nan(); # There needs to be more checking for special cases here. Fixme! # shift by a negative amount? return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/; $x = $x -> bmul($b -> bpow($y), $r[0], $r[1], $r[2], $y); $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub brsft { # shift right by $y in base $b, i.e., divide by $b ** $y # set up parameters my ($class, $x, $y, $b, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('brsft'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # There needs to be more checking for special cases here. Fixme! $b = 2 if !defined $b; $b = $class -> new($b) unless defined(blessed($b)) && $b -> isa(__PACKAGE__); return $x -> bnan(@r) if $b -> is_nan(); # shift by a negative amount? return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/; # call bdiv() $x = $x -> bdiv($b -> bpow($y), $r[0], $r[1], $r[2], $y); $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } ############################################################################### # Bitwise methods ############################################################################### # Bitwise left shift. sub bblsft { # We don't call objectify(), because the bitwise methods should not # upgrade, even when upgrading is enabled. my ($class, $x, $y, @r) = ref($_[0]) ? (ref($_[0]), @_) : @_; # Don't modify constant (read-only) objects. return $x if ref($x) && $x -> modify('bblsft'); # Let Math::BigInt do the job. my $xint = Math::BigInt -> bblsft($x, $y, @r); # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); # convert to our class without downgrading. my $xflt = $class -> new($xint); # Reset downgrading. $class -> downgrade($dng); # If we are called as a class method, the first operand might not be an # object of this class, so check. if (defined(blessed($x)) && $x -> isa(__PACKAGE__)) { $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; } else { $x = $xflt; } # Now we might downgrade. $x -> round(@r); $x -> _dng(); return $x; } # Bitwise right shift. sub bbrsft { # We don't call objectify(), because the bitwise methods should not # upgrade, even when upgrading is enabled. my ($class, $x, $y, @r) = ref($_[0]) ? (ref($_[0]), @_) : @_; # Don't modify constant (read-only) objects. return $x if ref($x) && $x -> modify('bbrsft'); # Let Math::BigInt do the job. my $xint = Math::BigInt -> bbrsft($x, $y, @r); # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); # Convert to our class without downgrading. my $xflt = $class -> new($xint); # Reset downgrading. $class -> downgrade($dng); # If we are called as a class method, the first operand might not be an # object of this class, so check. if (defined(blessed($x)) && $x -> isa(__PACKAGE__)) { $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; } else { $x = $xflt; } # Now we might downgrade. $x -> round(@r); $x -> _dng(); return $x; } sub band { my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return if $x -> modify('band'); # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan(@r) if ($x -> is_nan() || $x -> is_inf() || $y -> is_nan() || $y -> is_inf()); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt my $yint = $y -> as_int(); # to Math::BigInt $xint -> band($yint); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } sub bior { my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return if $x -> modify('bior'); # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan(@r) if ($x -> is_nan() || $x -> is_inf() || $y -> is_nan() || $y -> is_inf()); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt my $yint = $y -> as_int(); # to Math::BigInt $xint -> bior($yint); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } sub bxor { my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return if $x -> modify('bxor'); # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan(@r) if ($x -> is_nan() || $x -> is_inf() || $y -> is_nan() || $y -> is_inf()); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt my $yint = $y -> as_int(); # to Math::BigInt $xint -> bxor($yint); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } sub bnot { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return if $x -> modify('bnot'); return $x -> bnan(@r) if $x -> is_nan(); # This should be implemented without converting to Math::BigInt. XXX my $xint = $x -> as_int(); # to Math::BigInt $xint -> bnot(); $xint -> round(@r); my $xflt = $xint -> as_float(); $x -> {sign} = $xflt -> {sign}; $x -> {_m} = $xflt -> {_m}; $x -> {_es} = $xflt -> {_es}; $x -> {_e} = $xflt -> {_e}; return $x -> _dng(); return $x; } ############################################################################### # Rounding methods ############################################################################### sub bround { # accuracy: preserve $N digits, and overwrite the rest with 0's my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); if (($a[0] || 0) < 0) { croak('bround() needs positive accuracy'); } # Don't modify constant (read-only) objects. return $x if $x -> modify('bround'); my ($scale, $mode) = $x->_scale_a(@a); if (!defined $scale) { # no-op $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # Scale is now either $x->{accuracy}, $accuracy, or the input argument. # Test whether $x already has lower accuracy, do nothing in this case but # do round if the accuracy is the same, since a math operation might want # to round a number with A=5 to 5 digits afterwards again if (defined $x->{accuracy} && $x->{accuracy} < $scale) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # scale < 0 makes no sense # scale == 0 => keep all digits # never round a +-inf, NaN if ($scale <= 0 || $x->{sign} !~ /^[+-]$/) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # 1: never round a 0 # 2: if we should keep more digits than the mantissa has, do nothing if ($x -> is_zero() || $LIB->_len($x->{_m}) <= $scale) { $x->{accuracy} = $scale if !defined $x->{accuracy} || $x->{accuracy} > $scale; $x -> _dng() if $x -> is_int(); return $x; } # pass sign to bround for '+inf' and '-inf' rounding modes my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt'; $m = $m -> bround($scale, $mode); # round mantissa $x->{_m} = $m->{value}; # get our mantissa back $x->{accuracy} = $scale; # remember rounding $x->{precision} = undef; # and clear P # bnorm() downgrades if necessary, so no need to check whether to # downgrade. $x -> bnorm(); # del trailing zeros gen. by bround() } sub bfround { # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.' # $n == 0 means round to integer # expects and returns normalized numbers! my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfround'); # no-op my ($scale, $mode) = $x->_scale_p(@p); if (!defined $scale) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # never round a 0, +-inf, NaN if ($x -> is_zero()) { $x->{precision} = $scale if !defined $x->{precision} || $x->{precision} < $scale; # -3 < -2 $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } if ($x->{sign} !~ /^[+-]$/) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # don't round if x already has lower precision if (defined $x->{precision} && $x->{precision} < 0 && $scale < $x->{precision}) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } $x->{precision} = $scale; # remember round in any case $x->{accuracy} = undef; # and clear A if ($scale < 0) { # round right from the '.' if ($x->{_es} eq '+') { # e >= 0 => nothing to round $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } $scale = -$scale; # positive for simplicity my $len = $LIB->_len($x->{_m}); # length of mantissa # the following poses a restriction on _e, but if _e is bigger than a # scalar, you got other problems (memory etc) anyway my $dad = -(0+ ($x->{_es}.$LIB->_num($x->{_e}))); # digits after dot my $zad = 0; # zeros after dot $zad = $dad - $len if (-$dad < -$len); # for 0.00..00xxx style # print "scale $scale dad $dad zad $zad len $len\n"; # number bsstr len zad dad # 0.123 123e-3 3 0 3 # 0.0123 123e-4 3 1 4 # 0.001 1e-3 1 2 3 # 1.23 123e-2 3 0 2 # 1.2345 12345e-4 5 0 4 # do not round after/right of the $dad if ($scale > $dad) { # 0.123, scale >= 3 => exit $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # round to zero if rounding inside the $zad, but not for last zero like: # 0.0065, scale -2, round last '0' with following '65' (scale == zad # case) if ($scale < $zad) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x -> bzero(); } if ($scale == $zad) { # for 0.006, scale -3 and trunc $scale = -$len; } else { # adjust round-point to be inside mantissa if ($zad != 0) { $scale = $scale-$zad; } else { my $dbd = $len - $dad; $dbd = 0 if $dbd < 0; # digits before dot $scale = $dbd+$scale; } } } else { # round left from the '.' # 123 => 100 means length(123) = 3 - $scale (2) => 1 my $dbt = $LIB->_len($x->{_m}); # digits before dot my $dbd = $dbt + ($x->{_es} . $LIB->_num($x->{_e})); # should be the same, so treat it as this $scale = 1 if $scale == 0; # shortcut if already integer if ($scale == 1 && $dbt <= $dbd) { $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } # maximum digits before dot ++$dbd; if ($scale > $dbd) { # not enough digits before dot, so round to zero return $x -> bzero; } elsif ($scale == $dbd) { # maximum $scale = -$dbt; } else { $scale = $dbd - $scale; } } # pass sign to bround for rounding modes '+inf' and '-inf' my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt'; $m = $m -> bround($scale, $mode); $x->{_m} = $m->{value}; # get our mantissa back # bnorm() downgrades if necessary, so no need to check whether to # downgrade. $x -> bnorm(); } sub bfloor { # round towards minus infinity my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfloor'); return $x -> bnan(@r) if $x -> is_nan(); if ($x -> is_finite()) { # if $x has digits after dot, remove them if ($x->{_es} eq '-') { $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); $x->{_e} = $LIB->_zero(); $x->{_es} = '+'; # increment if negative $x->{_m} = $LIB->_inc($x->{_m}) if $x->{sign} eq '-'; } } $x -> round(@r); $x -> _dng(); return $x; } sub bceil { # round towards plus infinity my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bceil'); return $x -> bnan(@r) if $x -> is_nan(); if ($x -> is_finite()) { # if $x has digits after dot, remove them if ($x->{_es} eq '-') { $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); $x->{_e} = $LIB->_zero(); $x->{_es} = '+'; if ($x->{sign} eq '+') { $x->{_m} = $LIB->_inc($x->{_m}); # increment if positive } else { $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0 } } } $x -> round(@r); $x -> _dng(); return $x; } sub bint { # round towards zero my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bint'); return $x -> bnan(@r) if $x -> is_nan(); if ($x -> is_finite()) { # if $x has digits after the decimal point if ($x->{_es} eq '-') { $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # remove frac part $x->{_e} = $LIB->_zero(); # truncate/normalize $x->{_es} = '+'; # abs e $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0 } } $x -> round(@r); $x -> _dng(); return $x; } ############################################################################### # Other mathematical methods ############################################################################### sub bgcd { # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff) # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_finite(); } # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; # greatest common divisor while (! $y -> is_zero()) { ($x, $y) = ($y -> copy(), $x -> copy() -> bmod($y)); } last if $x -> is_one(); } $x -> babs(); # Restore downgrading. $class -> downgrade($dng); $x -> _dng() if $x -> is_int(); return $x; } sub blcm { # Least Common Multiple # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_finite(); } for my $arg (@args) { return $class -> bzero() if $arg -> is_zero(); } my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; my $gcd = $x -> copy() -> bgcd($y); $x -> bdiv($gcd) -> bmul($y); } $x -> babs(); # might downgrade return $x; } ############################################################################### # Object property methods ############################################################################### sub length { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return 1 if $LIB->_is_zero($x->{_m}); my $len = $LIB->_len($x->{_m}); $len += $LIB->_num($x->{_e}) if $x->{_es} eq '+'; if (wantarray()) { my $t = 0; $t = $LIB->_num($x->{_e}) if $x->{_es} eq '-'; return $len, $t; } $len; } sub mantissa { # return a copy of the mantissa my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # The following line causes a lot of noise in the test suits for # the Math-BigRat and bignum distributions. Fixme! #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bnan(@r) if $x -> is_nan(); if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; $s =~ s/^\+//; return Math::BigInt -> new($s, undef, undef); # -inf, +inf => +inf } my $m = Math::BigInt -> new($LIB->_str($x->{_m}), undef, undef); $m = $m -> bneg() if $x->{sign} eq '-'; $m; } sub exponent { # return a copy of the exponent my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # The following line causes a lot of noise in the test suits for # the Math-BigRat and bignum distributions. Fixme! #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bnan(@r) if $x -> is_nan(); if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; $s =~ s/^[+-]//; return Math::BigInt -> new($s, undef, undef); # -inf, +inf => +inf } Math::BigInt -> new($x->{_es} . $LIB->_str($x->{_e}), undef, undef); } sub parts { # return a copy of both the exponent and the mantissa my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if ($x->{sign} !~ /^[+-]$/) { my $s = $x->{sign}; $s =~ s/^\+//; my $se = $s; $se =~ s/^-//; # +inf => inf and -inf, +inf => inf return $class -> new($s), $class -> new($se); } my $m = Math::BigInt -> bzero(); $m->{value} = $LIB->_copy($x->{_m}); $m = $m -> bneg() if $x->{sign} eq '-'; ($m, Math::BigInt -> new($x->{_es} . $LIB->_num($x->{_e}))); } # Parts used for scientific notation with significand/mantissa and exponent as # integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4" # (exponent). sub sparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number. if ($x -> is_nan()) { my $mant = $class -> bnan(); # mantissa return $mant unless wantarray; # scalar context my $expo = $class -> bnan(); # exponent return $mant, $expo; # list context } # Infinity. if ($x -> is_inf()) { my $mant = $class -> binf($x->{sign}); # mantissa return $mant unless wantarray; # scalar context my $expo = $class -> binf('+'); # exponent return $mant, $expo; # list context } # Finite number. my $mant = $class -> new($x); $mant->{_es} = '+'; $mant->{_e} = $LIB->_zero(); $mant -> _dng(); return $mant unless wantarray; my $expo = $class -> new($x -> {_es} . $LIB->_str($x -> {_e})); $expo -> _dng(); return $mant, $expo; } # Parts used for normalized notation with significand/mantissa as either 0 or a # number in the semi-open interval [1,10). E.g., "12345.6789" is returned as # "1.23456789" and "4". sub nparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number and Infinity. return $x -> sparts() if $x -> is_nan() || $x -> is_inf(); # Finite number. my ($mant, $expo) = $x -> sparts(); if ($mant -> bcmp(0)) { my ($ndigtot, $ndigfrac) = $mant -> length(); my $expo10adj = $ndigtot - $ndigfrac - 1; if ($expo10adj > 0) { # if mantissa is not an integer $mant = $mant -> brsft($expo10adj, 10); return $mant unless wantarray; $expo = $expo -> badd($expo10adj); return $mant, $expo; } } return $mant unless wantarray; return $mant, $expo; } # Parts used for engineering notation with significand/mantissa as either 0 or # a number in the semi-open interval [1,1000) and the exponent is a multiple of # 3. E.g., "12345.6789" is returned as "12.3456789" and "3". sub eparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number and Infinity. return $x -> sparts() if $x -> is_nan() || $x -> is_inf(); # Finite number. my ($mant, $expo) = $x -> nparts(); my $c = $expo -> copy() -> bmod(3); $mant = $mant -> blsft($c, 10); return $mant unless wantarray; $expo = $expo -> bsub($c); return $mant, $expo; } # Parts used for decimal notation, e.g., "12345.6789" is returned as "12345" # (integer part) and "0.6789" (fraction part). sub dparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number. if ($x -> is_nan()) { my $int = $class -> bnan(); return $int unless wantarray; my $frc = $class -> bzero(); # or NaN? return $int, $frc; } # Infinity. if ($x -> is_inf()) { my $int = $class -> binf($x->{sign}); return $int unless wantarray; my $frc = $class -> bzero(); return $int, $frc; } # Finite number. my $int = $x -> copy(); my $frc; # If the input is an integer. if ($int->{_es} eq '+') { $frc = $class -> bzero(); } # If the input has a fraction part else { $int->{_m} = $LIB -> _rsft($int->{_m}, $int->{_e}, 10); $int->{_e} = $LIB -> _zero(); $int->{_es} = '+'; $int->{sign} = '+' if $LIB->_is_zero($int->{_m}); # avoid -0 return $int unless wantarray; $frc = $x -> copy() -> bsub($int); return $int, $frc; } $int -> _dng(); return $int unless wantarray; return $int, $frc; } # Fractional parts with the numerator and denominator as integers. E.g., # "123.4375" is returned as "1975" and "16". sub fparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # NaN => NaN/NaN if ($x -> is_nan()) { return $class -> bnan() unless wantarray; return $class -> bnan(), $class -> bnan(); } # ±Inf => ±Inf/1 if ($x -> is_inf()) { my $numer = $class -> binf($x->{sign}); return $numer unless wantarray; my $denom = $class -> bone(); return $numer, $denom; } # Finite number. # If we get here, we know that the output is an integer. $class = $downgrade if $class -> downgrade(); my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e}); my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts); my $numer = $class -> new($LIB -> _str($rat_parts[1])); $numer -> bneg() if $rat_parts[0] eq "-"; return $numer unless wantarray; my $denom = $class -> new($LIB -> _str($rat_parts[2])); return $numer, $denom; } # Given "123.4375", returns "1975", since "123.4375" is "1975/16". sub numerator { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $class -> bnan() if $x -> is_nan(); return $class -> binf($x -> sign()) if $x -> is_inf(); return $class -> bzero() if $x -> is_zero(); # If we get here, we know that the output is an integer. $class = $downgrade if $class -> downgrade(); if ($x -> {_es} eq '-') { # exponent < 0 my $numer_lib = $LIB -> _copy($x -> {_m}); my $denom_lib = $LIB -> _1ex($x -> {_e}); my $gcd_lib = $LIB -> _gcd($LIB -> _copy($numer_lib), $denom_lib); $numer_lib = $LIB -> _div($numer_lib, $gcd_lib); return $class -> new($x -> {sign} . $LIB -> _str($numer_lib)); } elsif (! $LIB -> _is_zero($x -> {_e})) { # exponent > 0 my $numer_lib = $LIB -> _copy($x -> {_m}); $numer_lib = $LIB -> _lsft($numer_lib, $x -> {_e}, 10); return $class -> new($x -> {sign} . $LIB -> _str($numer_lib)); } else { # exponent = 0 return $class -> new($x -> {sign} . $LIB -> _str($x -> {_m})); } } # Given "123.4375", returns "16", since "123.4375" is "1975/16". sub denominator { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $class -> bnan() if $x -> is_nan(); # If we get here, we know that the output is an integer. $class = $downgrade if $class -> downgrade(); if ($x -> {_es} eq '-') { # exponent < 0 my $numer_lib = $LIB -> _copy($x -> {_m}); my $denom_lib = $LIB -> _1ex($x -> {_e}); my $gcd_lib = $LIB -> _gcd($LIB -> _copy($numer_lib), $denom_lib); $denom_lib = $LIB -> _div($denom_lib, $gcd_lib); return $class -> new($LIB -> _str($denom_lib)); } else { # exponent >= 0 return $class -> bone(); } } ############################################################################### # String conversion methods ############################################################################### sub bstr { # (ref to BFLOAT or num_str) return num_str # Convert number from internal format to (non-scientific) string format. # internal format is always normalized (no leading zeros, "-0" => "+0") my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Finite number my $es = '0'; my $len = 1; my $cad = 0; my $dot = '.'; # $x is zero? my $not_zero = !($x->{sign} eq '+' && $LIB->_is_zero($x->{_m})); if ($not_zero) { $es = $LIB->_str($x->{_m}); $len = CORE::length($es); my $e = $LIB->_num($x->{_e}); $e = -$e if $x->{_es} eq '-'; if ($e < 0) { $dot = ''; # if _e is bigger than a scalar, the following will blow your memory if ($e <= -$len) { my $r = abs($e) - $len; $es = '0.'. ('0' x $r) . $es; $cad = -($len+$r); } else { substr($es, $e, 0) = '.'; $cad = $LIB->_num($x->{_e}); $cad = -$cad if $x->{_es} eq '-'; } } elsif ($e > 0) { # expand with zeros $es .= '0' x $e; $len += $e; $cad = 0; } } # if not zero $es = '-'.$es if $x->{sign} eq '-'; # if set accuracy or precision, pad with zeros on the right side if ((defined $x->{accuracy}) && ($not_zero)) { # 123400 => 6, 0.1234 => 4, 0.001234 => 4 my $zeros = $x->{accuracy} - $cad; # cad == 0 => 12340 $zeros = $x->{accuracy} - $len if $cad != $len; $es .= $dot.'0' x $zeros if $zeros > 0; } elsif ((($x->{precision} || 0) < 0)) { # 123400 => 6, 0.1234 => 4, 0.001234 => 6 my $zeros = -$x->{precision} + $cad; $es .= $dot.'0' x $zeros if $zeros > 0; } $es; } # Scientific notation with significand/mantissa and exponent as integers, e.g., # "12345.6789" is written as "123456789e-4". sub bsstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bsstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Round according to arguments or global settings, if any. $x = $x -> copy() -> round(@r); # Finite number ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{_m}) . 'e' . $x->{_es} . $LIB->_str($x->{_e}); } # Normalized notation, e.g., "12345.6789" is written as "1.23456789e+4". sub bnstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bnstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $str = $x->{sign} eq '-' ? '-' : ''; # Round according to arguments or global settings, if any. $x = $x -> copy() -> round(@r); # Get the mantissa and the length of the mantissa. my $mant = $LIB->_str($x->{_m}); my $mantlen = CORE::length($mant); if ($mantlen == 1) { # Not decimal point when the mantissa has length one, i.e., return the # number 2 as the string "2", not "2.". $str .= $mant . 'e' . $x->{_es} . $LIB->_str($x->{_e}); } else { # Compute new exponent where the original exponent is adjusted by the # length of the mantissa minus one (because the decimal point is after # one digit). my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es}, $LIB -> _new($mantlen - 1), "+"); substr $mant, 1, 0, "."; $str .= $mant . 'e' . $esgn . $LIB->_str($eabs); } return $str; } # Engineering notation, e.g., "12345.6789" is written as "12.3456789e+3". sub bestr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bestr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Round according to arguments or global settings, if any. $x = $x -> copy() -> round(@r); # Finite number my $str = $x->{sign} eq '-' ? '-' : ''; # Get the mantissa, the length of the mantissa, and adjust the exponent by # the length of the mantissa minus 1 (because the dot is after one digit). my $mant = $LIB->_str($x->{_m}); my $mantlen = CORE::length($mant); my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es}, $LIB -> _new($mantlen - 1), "+"); my $dotpos = 1; my $mod = $LIB -> _mod($LIB -> _copy($eabs), $LIB -> _new("3")); unless ($LIB -> _is_zero($mod)) { if ($esgn eq '+') { $eabs = $LIB -> _sub($eabs, $mod); $dotpos += $LIB -> _num($mod); } else { my $delta = $LIB -> _sub($LIB -> _new("3"), $mod); $eabs = $LIB -> _add($eabs, $delta); $dotpos += $LIB -> _num($delta); } } if ($dotpos < $mantlen) { substr $mant, $dotpos, 0, "."; } elsif ($dotpos > $mantlen) { $mant .= "0" x ($dotpos - $mantlen); } $str .= $mant . 'e' . $esgn . $LIB->_str($eabs); return $str; } # Decimal notation, e.g., "12345.6789" (no exponent). sub bdstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bdstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Round according to arguments or global settings, if any. $x = $x -> copy() -> round(@r); # Finite number my $mant = $LIB->_str($x->{_m}); my $esgn = $x->{_es}; my $eabs = $LIB -> _num($x->{_e}); my $uintmax = ~0; my $str = $mant; if ($esgn eq '+') { croak("The absolute value of the exponent is too large") if $eabs > $uintmax; $str .= "0" x $eabs; } else { my $mlen = CORE::length($mant); my $c = $mlen - $eabs; my $intmax = ($uintmax - 1) / 2; croak("The absolute value of the exponent is too large") if (1 - $c) > $intmax; $str = "0" x (1 - $c) . $str if $c <= 0; substr($str, -$eabs, 0) = '.'; } return $x->{sign} eq '-' ? '-' . $str : $str; } # Fractional notation, e.g., "123.4375" is written as "1975/16". sub bfstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bfstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $str = $x->{sign} eq '-' ? '-' : ''; if ($x->{_es} eq '+') { $str .= $LIB -> _str($x->{_m}) . ("0" x $LIB -> _num($x->{_e})); } else { my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e}); my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts); $str = $LIB -> _str($rat_parts[1]) . "/" . $LIB -> _str($rat_parts[2]); $str = "-" . $str if $rat_parts[0] eq "-"; } return $str; } sub to_hex { # return number as hexadecimal string (only for integers defined) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_hex(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number return '0' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_to_hex($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub to_oct { # return number as octal digit string (only for integers defined) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_oct(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number return '0' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_to_oct($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub to_bin { # return number as binary digit string (only for integers defined) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_bin(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number return '0' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_to_bin($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub to_bytes { # return a byte string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; croak("to_bytes() requires a finite, non-negative integer") if $x -> is_neg() || ! $x -> is_int(); return $x -> _upg() -> to_bytes(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); croak("to_bytes() requires a newer version of the $LIB library.") unless $LIB -> can('_to_bytes'); return $LIB->_to_bytes($LIB -> _lsft($x->{_m}, $x->{_e}, 10)); } sub to_ieee754 { my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $enc; # significand encoding (applies only to decimal) my $k; # storage width in bits my $b; # base if ($format =~ /^binary(\d+)\z/) { $k = $1; $b = 2; } elsif ($format =~ /^decimal(\d+)(dpd|bcd)?\z/) { $k = $1; $b = 10; $enc = $2 || 'dpd'; # default is dencely-packed decimals (DPD) } elsif ($format eq 'half') { $k = 16; $b = 2; } elsif ($format eq 'single') { $k = 32; $b = 2; } elsif ($format eq 'double') { $k = 64; $b = 2; } elsif ($format eq 'quadruple') { $k = 128; $b = 2; } elsif ($format eq 'octuple') { $k = 256; $b = 2; } elsif ($format eq 'sexdecuple') { $k = 512; $b = 2; } if ($b == 2) { # Get the parameters for this format. my $p; # precision (in bits) my $t; # number of bits in significand my $w; # number of bits in exponent if ($k == 16) { # binary16 (half-precision) $p = 11; $t = 10; $w = 5; } elsif ($k == 32) { # binary32 (single-precision) $p = 24; $t = 23; $w = 8; } elsif ($k == 64) { # binary64 (double-precision) $p = 53; $t = 52; $w = 11; } else { # binaryN (quadruple-precition and above) if ($k < 128 || $k != 32 * sprintf('%.0f', $k / 32)) { croak "Number of bits must be 16, 32, 64, or >= 128 and", " a multiple of 32"; } $p = $k - sprintf('%.0f', 4 * log($k) / log(2)) + 13; $t = $p - 1; $w = $k - $t - 1; } # The maximum exponent, minimum exponent, and exponent bias. my $emax = $class -> new(2) -> bpow($w - 1) -> bdec(); my $emin = 1 - $emax; my $bias = $emax; # Get numerical sign, exponent, and mantissa/significand for bit # string. my $sign = 0; my $expo; my $mant; if ($x -> is_nan()) { # nan $sign = 1; $expo = $emax -> copy() -> binc(); $mant = $class -> new(2) -> bpow($t - 1); } elsif ($x -> is_inf()) { # inf $sign = 1 if $x -> is_neg(); $expo = $emax -> copy() -> binc(); $mant = $class -> bzero(); } elsif ($x -> is_zero()) { # zero $expo = $emin -> copy() -> bdec(); $mant = $class -> bzero(); } else { # normal and subnormal $sign = 1 if $x -> is_neg(); # Now we need to compute the mantissa and exponent in base $b. my $binv = $class -> new("0.5"); my $b = $class -> new(2); my $one = $class -> bone(); # We start off by initializing the exponent to zero and the # mantissa to the input value. Then we increase the mantissa and # decrease the exponent, or vice versa, until the mantissa is in # the desired range or we hit one of the limits for the exponent. $mant = $x -> copy() -> babs(); # We need to find the base 2 exponent. First make an estimate of # the base 2 exponent, before adjusting it below. We could skip # this estimation and go straight to the while-loops below, but the # loops are slow, especially when the final exponent is far from # zero and even more so if the number of digits is large. This # initial estimation speeds up the computation dramatically. # # log2($m * 10**$e) = log10($m + 10**$e) * log(10)/log(2) # = (log10($m) + $e) * log(10)/log(2) # = (log($m)/log(10) + $e) * log(10)/log(2) my ($m, $e) = $x -> nparts(); my $ms = $m -> numify(); my $es = $e -> numify(); my $expo_est = (log(abs($ms))/log(10) + $es) * log(10)/log(2); $expo_est = int($expo_est); # Limit the exponent. if ($expo_est > $emax) { $expo_est = $emax; } elsif ($expo_est < $emin) { $expo_est = $emin; } # Don't multiply by a number raised to a negative exponent. This # will cause a division, whose result is truncated to some fixed # number of digits. Instead, multiply by the inverse number raised # to a positive exponent. $expo = $class -> new($expo_est); if ($expo_est > 0) { $mant = $mant -> bmul($binv -> copy() -> bpow($expo)); } elsif ($expo_est < 0) { my $expo_abs = $expo -> copy() -> bneg(); $mant = $mant -> bmul($b -> copy() -> bpow($expo_abs)); } # Final adjustment of the estimate above. while ($mant >= $b && $expo <= $emax) { $mant = $mant -> bmul($binv); $expo = $expo -> binc(); } while ($mant < $one && $expo >= $emin) { $mant = $mant -> bmul($b); $expo = $expo -> bdec(); } # This is when the magnitude is larger than what can be represented # in this format. Encode as infinity. if ($expo > $emax) { $mant = $class -> bzero(); $expo = $emax -> copy() -> binc(); } # This is when the magnitude is so small that the number is encoded # as a subnormal number. # # If the magnitude is smaller than that of the smallest subnormal # number, and rounded downwards, it is encoded as zero. This works # transparently and does not need to be treated as a special case. # # If the number is between the largest subnormal number and the # smallest normal number, and the value is rounded upwards, the # value must be encoded as a normal number. This must be treated as # a special case. elsif ($expo < $emin) { # Scale up the mantissa (significand), and round to integer. my $const = $class -> new($b) -> bpow($t - 1); $mant = $mant -> bmul($const); $mant = $mant -> bfround(0); # If the mantissa overflowed, encode as the smallest normal # number. if ($mant == $const -> bmul($b)) { $mant = $mant -> bzero(); $expo = $expo -> binc(); } } # This is when the magnitude is within the range of what can be # encoded as a normal number. else { # Remove implicit leading bit, scale up the mantissa # (significand) to an integer, and round. $mant = $mant -> bdec(); my $const = $class -> new($b) -> bpow($t); $mant = $mant -> bmul($const) -> bfround(0); # If the mantissa overflowed, encode as the next larger value. # This works correctly also when the next larger value is # infinity. if ($mant == $const) { $mant = $mant -> bzero(); $expo = $expo -> binc(); } } } $expo = $expo -> badd($bias); # add bias my $signbit = "$sign"; my $mantbits = $mant -> to_bin(); $mantbits = ("0" x ($t - CORE::length($mantbits))) . $mantbits; my $expobits = $expo -> to_bin(); $expobits = ("0" x ($w - CORE::length($expobits))) . $expobits; my $bin = $signbit . $expobits . $mantbits; return pack "B*", $bin; } croak("The format '$format' is not yet supported."); } sub to_fp80 { my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # The maximum exponent, minimum exponent, and exponent bias. my $emax = Math::BigFloat -> new("16383"); my $emin = 1 - $emax; my $bias = $emax; # Get numerical sign, exponent, and mantissa/significand for bit string. my $sign = 0; my $expo; my $mant; if ($x -> is_nan()) { # nan $sign = 1; $expo = $emax -> copy() -> binc(); $mant = $class -> new(2) -> bpow(64) -> bdec(); } elsif ($x -> is_inf()) { # inf $sign = 1 if $x -> is_neg(); $expo = $emax -> copy() -> binc(); $mant = $class -> bzero(); } elsif ($x -> is_zero()) { # zero $expo = $emin -> copy() -> bdec(); $mant = $class -> bzero(); } else { # normal and subnormal $sign = 1 if $x -> is_neg(); # Now we need to compute the mantissa and exponent in base $b. my $binv = $class -> new("0.5"); my $b = $class -> new("2"); my $one = $class -> bone(); # We start off by initializing the exponent to zero and the # mantissa to the input value. Then we increase the mantissa and # decrease the exponent, or vice versa, until the mantissa is in # the desired range or we hit one of the limits for the exponent. $mant = $x -> copy() -> babs(); # We need to find the base 2 exponent. First make an estimate of # the base 2 exponent, before adjusting it below. We could skip # this estimation and go straight to the while-loops below, but the # loops are slow, especially when the final exponent is far from # zero and even more so if the number of digits is large. This # initial estimation speeds up the computation dramatically. # # log2($m * 10**$e) = log10($m + 10**$e) * log(10)/log(2) # = (log10($m) + $e) * log(10)/log(2) # = (log($m)/log(10) + $e) * log(10)/log(2) my ($m, $e) = $x -> nparts(); my $ms = $m -> numify(); my $es = $e -> numify(); my $expo_est = (log(abs($ms))/log(10) + $es) * log(10)/log(2); $expo_est = int($expo_est); # Limit the exponent. if ($expo_est > $emax) { $expo_est = $emax; } elsif ($expo_est < $emin) { $expo_est = $emin; } # Don't multiply by a number raised to a negative exponent. This # will cause a division, whose result is truncated to some fixed # number of digits. Instead, multiply by the inverse number raised # to a positive exponent. $expo = $class -> new($expo_est); if ($expo_est > 0) { $mant = $mant -> bmul($binv -> copy() -> bpow($expo)); } elsif ($expo_est < 0) { my $expo_abs = $expo -> copy() -> bneg(); $mant = $mant -> bmul($b -> copy() -> bpow($expo_abs)); } # Final adjustment of the estimate above. while ($mant >= $b && $expo <= $emax) { $mant = $mant -> bmul($binv); $expo = $expo -> binc(); } while ($mant < $one && $expo >= $emin) { $mant = $mant -> bmul($b); $expo = $expo -> bdec(); } # This is when the magnitude is larger than what can be represented in # this format. Encode as infinity. if ($expo > $emax) { $mant = $class -> bzero(); $expo = $emax -> copy() -> binc(); } # This is when the magnitude is so small that the number is encoded as # a subnormal number. # # If the magnitude is smaller than that of the smallest subnormal # number, and rounded downwards, it is encoded as zero. This works # transparently and does not need to be treated as a special case. # # If the number is between the largest subnormal number and the # smallest normal number, and the value is rounded upwards, the value # must be encoded as a normal number. This must be treated as a special # case. elsif ($expo < $emin) { # Scale up the mantissa (significand), and round to integer. my $const = $class -> new($b) -> bpow(62); $mant -> bmul($const) -> bfround(0); # If the mantissa overflowed, encode as the smallest normal number. if ($mant == $const -> bmul($b)) { $expo -> binc(); } } # This is when the magnitude is within the range of what can be encoded # as a normal number. else { # Remove implicit leading bit, scale up the mantissa (significand) # to an integer, and round. my $const = $class -> new($b) -> bpow(63); $mant -> bmul($const) -> bfround(0); # If the mantissa overflowed, encode as the next larger value. If # this caused the exponent to overflow, encode as infinity. if ($mant == $const -> copy() -> bmul($b)) { $expo -> binc(); if ($expo > $emax) { $mant = $class -> bzero(); } else { $mant = $const; } } } } $expo = $expo -> badd($bias); # add bias my $signbit = "$sign"; my $mantbits = $mant -> to_bin(); $mantbits = ("0" x (64 - CORE::length($mantbits))) . $mantbits; my $expobits = $expo -> to_bin(); $expobits = ("0" x (15 - CORE::length($expobits))) . $expobits; my $bin = $signbit . $expobits . $mantbits; return pack "B*", $bin; } sub as_hex { # return number as hexadecimal string (only for integers defined) my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc return '0x0' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_as_hex($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub as_oct { # return number as octal digit string (only for integers defined) my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc return '00' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_as_oct($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub as_bin { # return number as binary digit string (only for integers defined) my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc return '0b0' if $x -> is_zero(); return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary? my $z = $LIB->_copy($x->{_m}); if (! $LIB->_is_zero($x->{_e})) { # > 0 $z = $LIB->_lsft($z, $x->{_e}, 10); } my $str = $LIB->_as_bin($z); return $x->{sign} eq '-' ? "-$str" : $str; } sub numify { # Make a Perl scalar number from a Math::BigFloat object. my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if ($x -> is_nan()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $inf - $inf; } if ($x -> is_inf()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $x -> is_negative() ? -$inf : $inf; } # Create a string and let Perl's atoi()/atof() handle the rest. return 0 + $x -> bnstr(); } ############################################################################### # Private methods and functions. ############################################################################### sub import { my $class = shift; $IMPORT++; # remember we did import() my @a; # unrecognized arguments my @import = (); while (@_) { my $param = shift; # Enable overloading of constants. if ($param eq ':constant') { overload::constant integer => sub { $class -> new(shift); }, float => sub { $class -> new(shift); }, binary => sub { # E.g., a literal 0377 shall result in an object whose # value is decimal 255, but new("0377") returns decimal # 377. return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/; $class -> new(shift); }; next; } # Upgrading. if ($param eq 'upgrade') { $class -> upgrade(shift); next; } # Downgrading. if ($param eq 'downgrade') { $class -> downgrade(shift); next; } # Accuracy. if ($param eq 'accuracy') { $class -> accuracy(shift); next; } # Precision. if ($param eq 'precision') { $class -> precision(shift); next; } # Rounding mode. if ($param eq 'round_mode') { $class -> round_mode(shift); next; } # Fall-back accuracy. if ($param eq 'div_scale') { $class -> div_scale(shift); next; } # Backend library. if ($param =~ /^(lib|try|only)\z/) { push @import, $param; push @import, shift() if @_; next; } if ($param eq 'with') { # alternative class for our private parts() # XXX: no longer supported # $LIB = shift() || 'Calc'; # carp "'with' is no longer supported, use 'lib', 'try', or 'only'"; shift; next; } # Unrecognized parameter. push @a, $param; } Math::BigInt -> import(@import); # find out which library was actually loaded $LIB = Math::BigInt -> config('lib'); $class -> SUPER::import(@a); # for subclasses $class -> export_to_level(1, $class, @a) if @a; # need this, too } sub _len_to_steps { # Given D (digits in decimal), compute N so that N! (N factorial) is # at least D digits long. D should be at least 50. my $d = shift; # two constants for the Ramanujan estimate of ln(N!) my $lg2 = log(2 * 3.14159265) / 2; my $lg10 = log(10); # D = 50 => N => 42, so L = 40 and R = 50 my $l = 40; my $r = $d; # Otherwise this does not work under -Mbignum and we do not yet have "no # bignum;" :( $l = $l -> numify if ref($l); $r = $r -> numify if ref($r); $lg2 = $lg2 -> numify if ref($lg2); $lg10 = $lg10 -> numify if ref($lg10); # binary search for the right value (could this be written as the reverse # of lg(n!)?) while ($r - $l > 1) { my $n = int(($r - $l) / 2) + $l; my $ramanujan = int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2) / $lg10); $ramanujan > $d ? $r = $n : $l = $n; } $l; } sub _log { # internal log function to calculate ln() based on Taylor series. # Modifies $x in place. my ($x, $scale) = @_; my $class = ref $x; # in case of $x == 1, result is 0 return $x -> bzero() if $x -> is_one(); # XXX TODO: rewrite this in a similar manner to bexp() # http://www.efunda.com/math/taylor_series/logarithmic.cfm?search_string=log # u = x-1, v = x+1 # _ _ # Taylor: | u 1 u^3 1 u^5 | # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 0 # |_ v 3 v^3 5 v^5 _| # This takes much more steps to calculate the result and is thus not used # u = x-1 # _ _ # Taylor: | u 1 u^2 1 u^3 | # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 1/2 # |_ x 2 x^2 3 x^3 _| # scale used in intermediate computations my $scaleup = $scale + 4; my ($v, $u, $numer, $denom, $factor, $f); $v = $x -> copy(); $v = $v -> binc(); # v = x+1 $x = $x -> bdec(); $u = $x -> copy(); # u = x-1; x = x-1 $x = $x -> bdiv($v, $scaleup); # first term: u/v $numer = $u -> copy(); # numerator $denom = $v -> copy(); # denominator $u = $u -> bmul($u); # u^2 $v = $v -> bmul($v); # v^2 $numer = $numer -> bmul($u); # u^3 $denom = $denom -> bmul($v); # v^3 $factor = $class -> new(3); $f = $class -> new(2); while (1) { my $next = $numer -> copy() -> bround($scaleup) -> bdiv($denom -> copy() -> bmul($factor) -> bround($scaleup), $scaleup); $next->{accuracy} = undef; $next->{precision} = undef; my $x_prev = $x -> copy(); $x = $x -> badd($next); last if $x -> bacmp($x_prev) == 0; # calculate things for the next term $numer = $numer -> bmul($u); $denom = $denom -> bmul($v); $factor = $factor -> badd($f); } $x = $x -> bmul($f); # $x *= 2 $x = $x -> bround($scale); } sub _log_10 { # Internal log function based on reducing input to the range of 0.1 .. 9.99 # and then "correcting" the result to the proper one. Modifies $x in place. my ($x, $scale) = @_; my $class = ref $x; # Taking blog() from numbers greater than 10 takes a *very long* time, so # we break the computation down into parts based on the observation that: # blog(X*Y) = blog(X) + blog(Y) # We set Y here to multiples of 10 so that $x becomes below 1 - the smaller # $x is the faster it gets. Since 2*$x takes about 10 times as long, we # make it faster by about a factor of 100 by dividing $x by 10. # The same observation is valid for numbers smaller than 0.1, e.g. # computing log(1) is fastest, and the further away we get from 1, the # longer it takes. So we also 'break' this down by multiplying $x with 10 # and subtract the log(10) afterwards to get the correct result. # To get $x even closer to 1, we also divide by 2 and then use log(2) to # correct for this. For instance if $x is 2.4, we use the formula: # blog(2.4 * 2) == blog(1.2) + blog(2) # and thus calculate only blog(1.2) and blog(2), which is faster in total # than calculating blog(2.4). # In addition, the values for blog(2) and blog(10) are cached. # Calculate the number of digits before the dot, i.e., 1 + floor(log10(x)): # x = 123 => dbd = 3 # x = 1.23 => dbd = 1 # x = 0.0123 => dbd = -1 # x = 0.000123 => dbd = -3 # etc. my $dbd = $LIB->_num($x->{_e}); $dbd = -$dbd if $x->{_es} eq '-'; $dbd += $LIB->_len($x->{_m}); # more than one digit (e.g. at least 10), but *not* exactly 10 to avoid # infinite recursion my $calc = 1; # do some calculation? # No upgrading or downgrading in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # disable the shortcut for 10, since we need log(10) and this would recurse # infinitely deep if ($x->{_es} eq '+' && # $x == 10 ($LIB->_is_one($x->{_e}) && $LIB->_is_one($x->{_m}))) { $dbd = 0; # disable shortcut # we can use the cached value in these cases if ($scale <= $LOG_10_A) { $x = $x -> bzero(); $x = $x -> badd($LOG_10); # modify $x in place $calc = 0; # no need to calc, but round } # if we can't use the shortcut, we continue normally } else { # disable the shortcut for 2, since we maybe have it cached if (($LIB->_is_zero($x->{_e}) && # $x == 2 $LIB->_is_two($x->{_m}))) { $dbd = 0; # disable shortcut # we can use the cached value in these cases if ($scale <= $LOG_2_A) { $x = $x -> bzero(); $x = $x -> badd($LOG_2); # modify $x in place $calc = 0; # no need to calc, but round } # if we can't use the shortcut, we continue normally } } # if $x = 0.1, we know the result must be 0-log(10) if ($calc != 0 && ($x->{_es} eq '-' && # $x == 0.1 ($LIB->_is_one($x->{_e}) && $LIB->_is_one($x->{_m})))) { $dbd = 0; # disable shortcut # we can use the cached value in these cases if ($scale <= $LOG_10_A) { $x = $x -> bzero(); $x = $x -> bsub($LOG_10); $calc = 0; # no need to calc, but round } } return $x if $calc == 0; # already have the result # default: these correction factors are undef and thus not used my $l_10; # value of ln(10) to A of $scale my $l_2; # value of ln(2) to A of $scale my $two = $class -> new(2); # $x == 2 => 1, $x == 13 => 2, $x == 0.1 => 0, $x == 0.01 => -1 # so don't do this shortcut for 1 or 0 if (($dbd > 1) || ($dbd < 0)) { # convert our cached value to an object if not already (avoid doing # this at import() time, since not everybody needs this) $LOG_10 = $class -> new($LOG_10, undef, undef) unless ref $LOG_10; # got more than one digit before the dot, or more than one zero after # the dot, so do: # log(123) == log(1.23) + log(10) * 2 # log(0.0123) == log(1.23) - log(10) * 2 if ($scale <= $LOG_10_A) { # use cached value $l_10 = $LOG_10 -> copy(); # copy for mul } else { # else: slower, compute and cache result # shorten the time to calculate log(10) based on the following: # log(1.25 * 8) = log(1.25) + log(8) # = log(1.25) + log(2) + log(2) + log(2) # first get $l_2 (and possible compute and cache log(2)) $LOG_2 = $class -> new($LOG_2, undef, undef) unless ref $LOG_2; if ($scale <= $LOG_2_A) { # use cached value $l_2 = $LOG_2 -> copy(); # copy() for the mul below } else { # else: slower, compute and cache result $l_2 = $two -> copy(); $l_2 = $l_2->_log($scale); # scale+4, actually $LOG_2 = $l_2 -> copy(); # cache the result for later # the copy() is for mul below $LOG_2_A = $scale; } # now calculate log(1.25): $l_10 = $class -> new('1.25'); $l_10 = $l_10->_log($scale); # scale+4, actually # log(1.25) + log(2) + log(2) + log(2): $l_10 = $l_10 -> badd($l_2); $l_10 = $l_10 -> badd($l_2); $l_10 = $l_10 -> badd($l_2); $LOG_10 = $l_10 -> copy(); # cache the result for later # the copy() is for mul below $LOG_10_A = $scale; } $dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1 $l_10 = $l_10 -> bmul($class -> new($dbd)); # log(10) * (digits_before_dot-1) my $dbd_sign = '+'; if ($dbd < 0) { $dbd = -$dbd; $dbd_sign = '-'; } ($x->{_e}, $x->{_es}) = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($dbd), $dbd_sign); } # Now: 0.1 <= $x < 10 (and possible correction in l_10) ### Since $x in the range 0.5 .. 1.5 is MUCH faster, we do a repeated div ### or mul by 2 (maximum times 3, since x < 10 and x > 0.1) $HALF = $class -> new($HALF) unless ref($HALF); my $twos = 0; # default: none (0 times) while ($x -> bacmp($HALF) <= 0) { # X <= 0.5 $twos--; $x = $x -> bmul($two); } while ($x -> bacmp($two) >= 0) { # X >= 2 $twos++; $x = $x -> bdiv($two, $scale+4); # keep all digits } $x = $x -> bround($scale+4); # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both) # So calculate correction factor based on ln(2): if ($twos != 0) { $LOG_2 = $class -> new($LOG_2, undef, undef) unless ref $LOG_2; if ($scale <= $LOG_2_A) { # use cached value $l_2 = $LOG_2 -> copy(); # copy() for the mul below } else { # else: slower, compute and cache result $l_2 = $two -> copy(); $l_2 = $l_2->_log($scale); # scale+4, actually $LOG_2 = $l_2 -> copy(); # cache the result for later # the copy() is for mul below $LOG_2_A = $scale; } $l_2 = $l_2 -> bmul($twos); # * -2 => subtract, * 2 => add } else { undef $l_2; } $x = $x->_log($scale); # need to do the "normal" way $x = $x -> badd($l_10) if defined $l_10; # correct it by ln(10) $x = $x -> badd($l_2) if defined $l_2; # and maybe by ln(2) # Restore globals $class -> upgrade($upg); $class -> downgrade($dng); # all done, $x contains now the result $x; } sub _pow { # Calculate a power where $y is a non-integer, like 2 ** 0.3 my ($x, $y, @r) = @_; my $class = ref($x); # if $y == 0.5, it is sqrt($x) $HALF = $class -> new($HALF) unless ref($HALF); return $x -> bsqrt(@r, $y) if $y -> bcmp($HALF) == 0; # Using: # a ** x == e ** (x * ln a) # u = y * ln x # _ _ # Taylor: | u u^2 u^3 | # x ** y = 1 + | --- + --- + ----- + ... | # |_ 1 1*2 1*2*3 _| # we need to limit the accuracy to protect against overflow my $fallback = 0; my ($scale, @params); ($x, @params) = $x->_find_round_parameters(@r); return $x if $x -> is_nan(); # error in _find_round_parameters? # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # disable P $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it is not # enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } # When user set globals, they would interfere with our calculation, so # disable them and later re-enable them. my $ab = $class -> accuracy(); my $pb = $class -> precision(); $class -> accuracy(undef); $class -> precision(undef); # Disabling upgrading and downgrading is no longer necessary to avoid an # infinite recursion, but it avoids unnecessary upgrading and downgrading # in the intermediate computations. my $upg = $class -> upgrade(); my $dng = $class -> downgrade(); $class -> upgrade(undef); $class -> downgrade(undef); # We also need to disable any set A or P on $x (_find_round_parameters took # them already into account), since these would interfere, too. $x->{accuracy} = undef; $x->{precision} = undef; my ($limit, $v, $u, $below, $factor, $next, $over); $u = $x -> copy() -> blog(undef, $scale) -> bmul($y); my $do_invert = ($u->{sign} eq '-'); $u = $u -> bneg() if $do_invert; $v = $class -> bone(); # 1 $factor = $class -> new(2); # 2 $x = $x -> bone(); # first term: 1 $below = $v -> copy(); $over = $u -> copy(); $limit = $class -> new("1E-". ($scale-1)); while (3 < 5) { # we calculate the next term, and add it to the last # when the next term is below our limit, it won't affect the outcome # anymore, so we stop: $next = $over -> copy() -> bdiv($below, $scale); last if $next -> bacmp($limit) <= 0; $x = $x -> badd($next); # calculate things for the next term $over *= $u; $below *= $factor; $factor = $factor -> binc(); last if $x->{sign} !~ /^[-+]$/; } if ($do_invert) { my $x_copy = $x -> copy(); $x = $x -> bone -> bdiv($x_copy, $scale); } # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x = $x -> bround($params[0], $params[2]); # then round accordingly } else { $x = $x -> bfround($params[1], $params[2]); # then round accordingly } if ($fallback) { # clear a/p after round, since user did not request it $x->{accuracy} = undef; $x->{precision} = undef; } # Restore globals. We need to do it like this, because setting one # undefines the other. if (defined $ab) { $class -> accuracy($ab); } else { $class -> precision($pb); } $class -> upgrade($upg); $class -> downgrade($dng); $x; } # These functions are only provided for backwards compabibility so that old # version of Math::BigRat etc. don't complain about missing them. sub _e_add { my ($x, $y, $xs, $ys) = @_; return $LIB -> _sadd($x, $xs, $y, $ys); } sub _e_sub { my ($x, $y, $xs, $ys) = @_; return $LIB -> _ssub($x, $xs, $y, $ys); } 1; __END__ =pod =head1 NAME Math::BigFloat - arbitrary size floating point math package =head1 SYNOPSIS use Math::BigFloat; # Configuration methods (may be used as class methods and instance methods) Math::BigFloat->accuracy($n); # set accuracy Math::BigFloat->accuracy(); # get accuracy Math::BigFloat->precision($n); # set precision Math::BigFloat->precision(); # get precision Math::BigFloat->round_mode($m); # set rounding mode, must be # 'even', 'odd', '+inf', '-inf', # 'zero', 'trunc', or 'common' Math::BigFloat->round_mode(); # get class rounding mode Math::BigFloat->div_scale($n); # set fallback accuracy Math::BigFloat->div_scale(); # get fallback accuracy Math::BigFloat->trap_inf($b); # trap infinities or not Math::BigFloat->trap_inf(); # get trap infinities status Math::BigFloat->trap_nan($b); # trap NaNs or not Math::BigFloat->trap_nan(); # get trap NaNs status Math::BigFloat->config($par, $val); # set configuration parameter Math::BigFloat->config($par); # get configuration parameter Math::BigFloat->config(); # get hash with configuration Math::BigFloat->config("lib"); # get name of backend library # Generic constructor method (always returns a new object) $x = Math::BigFloat->new($str); # defaults to 0 $x = Math::BigFloat->new('256'); # from decimal $x = Math::BigFloat->new('0256'); # from decimal $x = Math::BigFloat->new('0xcafe'); # from hexadecimal $x = Math::BigFloat->new('0x1.cafep+7'); # from hexadecimal $x = Math::BigFloat->new('0o377'); # from octal $x = Math::BigFloat->new('0o1.3571p+6'); # from octal $x = Math::BigFloat->new('0b101'); # from binary $x = Math::BigFloat->new('0b1.101p+3'); # from binary # Specific constructor methods (no prefix needed; when used as # instance method, the value is assigned to the invocand) $x = Math::BigFloat->from_dec('234'); # from decimal $x = Math::BigFloat->from_hex('c.afep+3'); # from hexadecimal $x = Math::BigFloat->from_hex('cafe'); # from hexadecimal $x = Math::BigFloat->from_oct('1.3267p-4'); # from octal $x = Math::BigFloat->from_oct('377'); # from octal $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary $x = Math::BigFloat->from_bin('0101'); # from binary $x = Math::BigFloat->from_bytes($bytes); # from byte string $x = Math::BigFloat->from_base('why', 36); # from any base $x = Math::BigFloat->from_ieee754($b, $fmt); # from IEEE-754 bytes $x = Math::BigFloat->from_fp80($b); # from x86 80-bit $x = Math::BigFloat->bzero(); # create a +0 $x = Math::BigFloat->bone(); # create a +1 $x = Math::BigFloat->bone('-'); # create a -1 $x = Math::BigFloat->binf(); # create a +inf $x = Math::BigFloat->binf('-'); # create a -inf $x = Math::BigFloat->bnan(); # create a Not-A-Number $x = Math::BigFloat->bpi(); # returns pi $y = $x->copy(); # make a copy (unlike $y = $x) $y = $x->as_int(); # return as BigInt $y = $x->as_float(); # return as a Math::BigFloat $y = $x->as_rat(); # return as a Math::BigRat # Boolean methods (these don't modify the invocand) $x->is_zero(); # true if $x is 0 $x->is_one(); # true if $x is +1 $x->is_one("+"); # true if $x is +1 $x->is_one("-"); # true if $x is -1 $x->is_inf(); # true if $x is +inf or -inf $x->is_inf("+"); # true if $x is +inf $x->is_inf("-"); # true if $x is -inf $x->is_nan(); # true if $x is NaN $x->is_finite(); # true if -inf < $x < inf $x->is_positive(); # true if $x > 0 $x->is_pos(); # true if $x > 0 $x->is_negative(); # true if $x < 0 $x->is_neg(); # true if $x < 0 $x->is_non_positive() # true if $x <= 0 $x->is_non_negative() # true if $x >= 0 $x->is_odd(); # true if $x is odd $x->is_even(); # true if $x is even $x->is_int(); # true if $x is an integer # Comparison methods (these don't modify the invocand) $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0) $x->bacmp($y); # compare abs values (undef, < 0, == 0, > 0) $x->beq($y); # true if $x == $y $x->bne($y); # true if $x != $y $x->blt($y); # true if $x < $y $x->ble($y); # true if $x <= $y $x->bgt($y); # true if $x > $y $x->bge($y); # true if $x >= $y # Arithmetic methods (these modify the invocand) $x->bneg(); # negation $x->babs(); # absolute value $x->bsgn(); # sign function (-1, 0, 1, or NaN) $x->binc(); # increment $x by 1 $x->bdec(); # decrement $x by 1 $x->badd($y); # addition (add $y to $x) $x->bsub($y); # subtraction (subtract $y from $x) $x->bmul($y); # multiplication (multiply $x by $y) $x->bmuladd($y, $z); # $x = $x * $y + $z $x->bdiv($y); # division (floored), set $x to quotient $x->bmod($y); # modulus (x % y) $x->bmodinv($mod); # modular multiplicative inverse $x->bmodpow($y, $mod); # modular exponentiation (($x ** $y) % $mod) $x->btdiv($y); # division (truncated), set $x to quotient $x->btmod($y); # modulus (truncated) $x->binv() # inverse (1/$x) $x->bpow($y); # power of arguments (x ** y) $x->blog(); # logarithm of $x to base e (Euler's number) $x->blog($base); # logarithm of $x to base $base (e.g., base 2) $x->bexp(); # calculate e ** $x where e is Euler's number $x->bilog2(); # log2($x) rounded down to nearest int $x->bilog10(); # log10($x) rounded down to nearest int $x->bclog2(); # log2($x) rounded up to nearest int $x->bclog10(); # log10($x) rounded up to nearest int $x->bnok($y); # combinations (binomial coefficient n over k) $x->bperm($y); # permutations $x->bsin(); # sine $x->bcos(); # cosine $x->batan(); # inverse tangent $x->batan2($y); # two-argument inverse tangent $x->bsqrt(); # calculate square root $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root) $x->bfac(); # factorial of $x (1*2*3*4*..$x) $x->bdfac(); # double factorial of $x ($x*($x-2)*($x-4)*...) $x->btfac(); # triple factorial of $x ($x*($x-3)*($x-6)*...) $x->bmfac($k); # $k'th multi-factorial of $x ($x*($x-$k)*...) $x->bfib($k); # $k'th Fibonacci number $x->blucas($k); # $k'th Lucas number $x->blsft($n); # left shift $n places in base 2 $x->blsft($n, $b); # left shift $n places in base $b $x->brsft($n); # right shift $n places in base 2 $x->brsft($n, $b); # right shift $n places in base $b # Bitwise methods (these modify the invocand) $x->bblsft($y); # bitwise left shift $x->bbrsft($y); # bitwise right shift $x->band($y); # bitwise and $x->bior($y); # bitwise inclusive or $x->bxor($y); # bitwise exclusive or $x->bnot(); # bitwise not (two's complement) # Rounding methods (these modify the invocand) $x->round($A, $P, $R); # round to accuracy or precision using # rounding mode $R $x->bround($n); # accuracy: preserve $n digits $x->bfround($n); # $n > 0: round to $nth digit left of dec. point # $n < 0: round to $nth digit right of dec. point $x->bfloor(); # round towards minus infinity $x->bceil(); # round towards plus infinity $x->bint(); # round towards zero # Other mathematical methods (these don't modify the invocand) $x->bgcd($y); # greatest common divisor $x->blcm($y); # least common multiple # Object property methods (these don't modify the invocand) $x->sign(); # the sign, either +, - or NaN $x->digit($n); # the nth digit, counting from the right $x->digit(-$n); # the nth digit, counting from the left $x->length(); # return number of digits in number $x->mantissa(); # return (signed) mantissa as BigInt $x->exponent(); # return exponent as BigInt $x->parts(); # return (mantissa,exponent) as BigInt $x->sparts(); # mantissa and exponent (as integers) $x->nparts(); # mantissa and exponent (normalised) $x->eparts(); # mantissa and exponent (engineering notation) $x->dparts(); # integer and fraction part $x->fparts(); # numerator and denominator $x->numerator(); # numerator $x->denominator(); # denominator # Conversion methods (these don't modify the invocand) $x->bstr(); # decimal notation (possibly zero padded) $x->bsstr(); # string in scientific notation with integers $x->bnstr(); # string in normalized notation $x->bestr(); # string in engineering notation $x->bdstr(); # string in decimal notation (no padding) $x->bfstr(); # string in fractional notation $x->to_hex(); # as signed hexadecimal string $x->to_bin(); # as signed binary string $x->to_oct(); # as signed octal string $x->to_bytes(); # as byte string $x->to_ieee754($fmt); # to bytes encoded according to IEEE 754-2008 $x->to_fp80(); # encode value in x86 80-bit format $x->as_hex(); # as signed hexadecimal string with "0x" prefix $x->as_bin(); # as signed binary string with "0b" prefix $x->as_oct(); # as signed octal string with "0" prefix # Other conversion methods (these don't modify the invocand) $x->numify(); # return as scalar (might overflow or underflow) =head1 DESCRIPTION Math::BigFloat provides support for arbitrary precision floating point. Overloading is also provided for Perl operators. All operators (including basic math operations) are overloaded if you declare your big floating point numbers as $x = Math::BigFloat -> new('12_3.456_789_123_456_789E-2'); Operations with overloaded operators preserve the arguments, which is exactly what you expect. =head2 Input Input values to these routines may be any scalar number or string that looks like a number. Anything that is accepted by Perl as a literal numeric constant should be accepted by this module. =over =item * Leading and trailing whitespace is ignored. =item * Leading zeros are ignored, except for floating point numbers with a binary exponent, in which case the number is interpreted as an octal floating point number. For example, "01.4p+0" gives 1.5, "00.4p+0" gives 0.5, but "0.4p+0" gives a NaN. And while "0377" gives 255, "0377p0" gives 255. =item * If the string has a "0x" or "0X" prefix, it is interpreted as a hexadecimal number. =item * If the string has a "0o" or "0O" prefix, it is interpreted as an octal number. A floating point literal with a "0" prefix is also interpreted as an octal number. =item * If the string has a "0b" or "0B" prefix, it is interpreted as a binary number. =item * Underline characters are allowed in the same way as they are allowed in literal numerical constants. =item * If the string can not be interpreted, NaN is returned. =item * For hexadecimal, octal, and binary floating point numbers, the exponent must be separated from the significand (mantissa) by the letter "p" or "P", not "e" or "E" as with decimal numbers. =back Some examples of valid string input Input string Resulting value 123 123 1.23e2 123 12300e-2 123 67_538_754 67538754 -4_5_6.7_8_9e+0_1_0 -4567890000000 0x13a 314 0x13ap0 314 0x1.3ap+8 314 0x0.00013ap+24 314 0x13a000p-12 314 0o472 314 0o1.164p+8 314 0o0.0001164p+20 314 0o1164000p-10 314 0472 472 Note! 01.164p+8 314 00.0001164p+20 314 01164000p-10 314 0b100111010 314 0b1.0011101p+8 314 0b0.00010011101p+12 314 0b100111010000p-3 314 0x1.921fb5p+1 3.14159262180328369140625e+0 0o1.2677025p1 2.71828174591064453125 01.2677025p1 2.71828174591064453125 0b1.1001p-4 9.765625e-2 =head2 Output Output values are usually Math::BigFloat objects. Boolean operators L, L, L, etc. return true or false. Comparison operators L and L) return -1, 0, 1, or undef. =head1 METHODS Math::BigFloat supports all methods that Math::BigInt supports, except it calculates non-integer results when possible. Please see L for a full description of each method. Below are just the most important differences: =head2 Configuration methods =over =item accuracy() $x->accuracy(5); # local for $x CLASS->accuracy(5); # global for all members of CLASS # Note: This also applies to new()! $A = $x->accuracy(); # read out accuracy that affects $x $A = CLASS->accuracy(); # read out global accuracy Set or get the global or local accuracy, aka how many significant digits the results have. If you set a global accuracy, then this also applies to new()! Warning! The accuracy I, e.g. once you created a number under the influence of C<< CLASS->accuracy($A) >>, all results from math operations with that number will also be rounded. In most cases, you should probably round the results explicitly using one of L, L or L or by passing the desired accuracy to the math operation as additional parameter: my $x = Math::BigInt->new(30000); my $y = Math::BigInt->new(7); print scalar $x->copy()->bdiv($y, 2); # print 4300 print scalar $x->copy()->bdiv($y)->bround(2); # print 4300 =item precision() $x->precision(-2); # local for $x, round at the second # digit right of the dot $x->precision(2); # ditto, round at the second digit # left of the dot CLASS->precision(5); # Global for all members of CLASS # This also applies to new()! CLASS->precision(-5); # ditto $P = CLASS->precision(); # read out global precision $P = $x->precision(); # read out precision that affects $x Note: You probably want to use L instead. With L you set the number of digits each result should have, with L you set the place where to round! =back =head2 Constructor methods =over =item from_dec() $x -> from_hex("314159"); $x = Math::BigInt -> from_hex("314159"); Interpret input as a decimal. It is equivalent to new(), but does not accept anything but strings representing finite, decimal numbers. =item from_hex() $x -> from_hex("0x1.921fb54442d18p+1"); $x = Math::BigFloat -> from_hex("0x1.921fb54442d18p+1"); Interpret input as a hexadecimal string.A prefix ("0x", "x", ignoring case) is optional. A single underscore character ("_") may be placed between any two digits. If the input is invalid, a NaN is returned. The exponent is in base 2 using decimal digits. If called as an instance method, the value is assigned to the invocand. =item from_oct() $x -> from_oct("1.3267p-4"); $x = Math::BigFloat -> from_oct("1.3267p-4"); Interpret input as an octal string. A single underscore character ("_") may be placed between any two digits. If the input is invalid, a NaN is returned. The exponent is in base 2 using decimal digits. If called as an instance method, the value is assigned to the invocand. =item from_bin() $x -> from_bin("0b1.1001p-4"); $x = Math::BigFloat -> from_bin("0b1.1001p-4"); Interpret input as a hexadecimal string. A prefix ("0b" or "b", ignoring case) is optional. A single underscore character ("_") may be placed between any two digits. If the input is invalid, a NaN is returned. The exponent is in base 2 using decimal digits. If called as an instance method, the value is assigned to the invocand. =item from_bytes() $x = Math::BigFloat->from_bytes("\xf3\x6b"); # $x = 62315 Interpret the input as a byte string, assuming big endian byte order. The output is always a non-negative, finite integer. See L. =item from_ieee754() Interpret the input as a value encoded as described in IEEE754-2008. The input can be given as a byte string, hex string, or binary string. The input is assumed to be in big-endian byte-order. # Both $dbl, $xr, $xh, and $xb below are 3.141592... $dbl = unpack "d>", "\x40\x09\x21\xfb\x54\x44\x2d\x18"; $raw = "\x40\x09\x21\xfb\x54\x44\x2d\x18"; # raw bytes $xr = Math::BigFloat -> from_ieee754($raw, "binary64"); $hex = "400921fb54442d18"; $xh = Math::BigFloat -> from_ieee754($hex, "binary64"); $bin = "0100000000001001001000011111101101010100010001000010110100011000"; $xb = Math::BigFloat -> from_ieee754($bin, "binary64"); Supported formats are all IEEE 754 binary formats: "binary16", "binary32", "binary64", "binary128", "binary160", "binary192", "binary224", "binary256", etc. where the number of bits is a multiple of 32 for all formats larger than "binary128". Aliases are "half" ("binary16"), "single" ("binary32"), "double" ("binary64"), "quadruple" ("binary128"), "octuple" ("binary256"), and "sexdecuple" ("binary512"). See also L. =item from_fp80() Interpret the input as a value encoded as an x86 80-bit floating point number. The input can be given as a 10 character byte string, 20 character hex string, or 80 character binary string. The input is assumed to be in big-endian byte-order. # Both $xr, $xh, and $xb below are 3.141592... $dbl = unpack "d>", "\x40\x09\x21\xfb\x54\x44\x2d\x18"; $raw = "\x40\x00\xc9\x0f\xda\xa2\x21\x68\xc2\x35"; # raw bytes $xr = Math::BigFloat -> from_fp80($raw); $hex = "4000c90fdaa22168c235"; $xh = Math::BigFloat -> from_fp80($hex); $bin = "0100000000000000110010010000111111011010" . "1010001000100001011010001100001000110101"; $xb = Math::BigFloat -> from_fp80($bin); See also L. =item from_base() See L. =item bpi() print Math::BigFloat->bpi(100), "\n"; Calculate PI to N digits (including the 3 before the dot). The result is rounded according to the current rounding mode, which defaults to "even". This method was added in v1.87 of Math::BigInt (June 2007). =item as_int() $y = $x -> as_int(); # $y is a Math::BigInt Returns $x as a Math::BigInt object regardless of upgrading and downgrading. If $x is finite, but not an integer, $x is truncated. =item as_rat() $y = $x -> as_rat(); # $y is a Math::BigRat Returns $x a Math::BigRat object regardless of upgrading and downgrading. The invocand is not modified. =item as_float() $y = $x -> as_float(); # $y is a Math::BigFloat Returns $x a Math::BigFloat object regardless of upgrading and downgrading. The invocand is not modified. =back =head2 Arithmetic methods =over =item bdiv() $x->bdiv($y); # set $x to quotient ($q, $r) = $x->bdiv($y); # also remainder This is an alias for L. =item bmod() $x->bmod($y); Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the result is identical to the remainder after floored division (F-division). If, in addition, both $x and $y are integers, the result is identical to the result from Perl's % operator. =item bfdiv() $q = $x->bfdiv($y); ($q, $r) = $x->bfdiv($y); In scalar context, divides $x by $y and returns the result to the given accuracy or precision or the default accuracy. In list context, does floored division (F-division), returning an integer $q and a remainder $r $q = floor($x / $y) $r = $x - $q * $y so that the following relationship always holds $x = $q * $y + $r The remainer (modulo) is equal to what is returned by C<< $x->bmod($y) >>. =item binv() $x->binv(); Invert the value of $x, i.e., compute 1/$x. =item bmuladd() $x->bmuladd($y,$z); Multiply $x by $y, and then add $z to the result. This method was added in v1.87 of Math::BigInt (June 2007). =item bexp() $x->bexp($accuracy); # calculate e ** X Calculates the expression C where C is Euler's number. This method was added in v1.82 of Math::BigInt (April 2007). =item bnok() See L. =item bperm() See L. =item bsin() my $x = Math::BigFloat->new(1); print $x->bsin(100), "\n"; Calculate the sinus of $x, modifying $x in place. This method was added in v1.87 of Math::BigInt (June 2007). =item bcos() my $x = Math::BigFloat->new(1); print $x->bcos(100), "\n"; Calculate the cosinus of $x, modifying $x in place. This method was added in v1.87 of Math::BigInt (June 2007). =item batan() my $x = Math::BigFloat->new(1); print $x->batan(100), "\n"; Calculate the arcus tanges of $x, modifying $x in place. See also L. This method was added in v1.87 of Math::BigInt (June 2007). =item batan2() my $y = Math::BigFloat->new(2); my $x = Math::BigFloat->new(3); print $y->batan2($x), "\n"; Calculate the arcus tanges of C<$y> divided by C<$x>, modifying $y in place. See also L. This method was added in v1.87 of Math::BigInt (June 2007). =item bgcd() $x -> bgcd($y); # GCD of $x and $y $x -> bgcd($y, $z, ...); # GCD of $x, $y, $z, ... Returns the greatest common divisor (GCD), which is the number with the largest absolute value such that $x/$gcd, $y/$gcd, ... is an integer. For example, when the operands are 0.8 and 1.2, the GCD is 0.4. This is a generalisation of the ordinary GCD for integers. See L. =back =head2 String conversion methods =over =item bstr() my $x = Math::BigRat->new('8/4'); print $x->bstr(), "\n"; # prints 1/2 Returns a string representing the number. =item bsstr() See L. =item bnstr() See L. =item bestr() See L. =item bdstr() See L. =item to_bytes() See L. =item to_ieee754() Encodes the invocand as a byte string in the given format as specified in IEEE 754-2008. Note that the encoded value is the nearest possible representation of the value. This value might not be exactly the same as the value in the invocand. # $x = 3.1415926535897932385 $x = Math::BigFloat -> bpi(30); $b = $x -> to_ieee754("binary64"); # encode as 8 bytes $h = unpack "H*", $b; # "400921fb54442d18" # 3.141592653589793115997963... $y = Math::BigFloat -> from_ieee754($h, "binary64"); All binary formats in IEEE 754-2008 are accepted. For convenience, som aliases are recognized: "half" for "binary16", "single" for "binary32", "double" for "binary64", "quadruple" for "binary128", "octuple" for "binary256", and "sexdecuple" for "binary512". See also L, L. =back =head2 ACCURACY AND PRECISION See also: L. Math::BigFloat supports both precision (rounding to a certain place before or after the dot) and accuracy (rounding to a certain number of digits). For a full documentation, examples and tips on these topics please see the large section about rounding in L. Since things like C or C<1 / 3> must presented with a limited accuracy lest a operation consumes all resources, each operation produces no more than the requested number of digits. If there is no global precision or accuracy set, B the operation in question was not called with a requested precision or accuracy, B the input $x has no accuracy or precision set, then a fallback parameter will be used. For historical reasons, it is called C and can be accessed via: $d = Math::BigFloat->div_scale(); # query Math::BigFloat->div_scale($n); # set to $n digits The default value for C is 40. In case the result of one operation has more digits than specified, it is rounded. The rounding mode taken is either the default mode, or the one supplied to the operation after the I: $x = Math::BigFloat->new(2); Math::BigFloat->accuracy(5); # 5 digits max $y = $x->copy()->bdiv(3); # gives 0.66667 $y = $x->copy()->bdiv(3,6); # gives 0.666667 $y = $x->copy()->bdiv(3,6,undef,'odd'); # gives 0.666667 Math::BigFloat->round_mode('zero'); $y = $x->copy()->bdiv(3,6); # will also give 0.666667 Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >> set the global variables, and thus B newly created number will be subject to the global rounding B. This means that in the examples above, the C<3> as argument to L will also get an accuracy of B<5>. It is less confusing to either calculate the result fully, and afterwards round it explicitly, or use the additional parameters to the math functions like so: use Math::BigFloat; $x = Math::BigFloat->new(2); $y = $x->copy()->bdiv(3); print $y->bround(5),"\n"; # gives 0.66667 or use Math::BigFloat; $x = Math::BigFloat->new(2); $y = $x->copy()->bdiv(3,5); # gives 0.66667 print "$y\n"; =head2 Rounding =over =item bfround ( +$scale ) Rounds to the $scale'th place left from the '.', counting from the dot. The first digit is numbered 1. =item bfround ( -$scale ) Rounds to the $scale'th place right from the '.', counting from the dot. =item bfround ( 0 ) Rounds to an integer. =item bround ( +$scale ) Preserves accuracy to $scale digits from the left (aka significant digits) and pads the rest with zeros. If the number is between 1 and -1, the significant digits count from the first non-zero after the '.' =item bround ( -$scale ) and bround ( 0 ) These are effectively no-ops. =back All rounding functions take as a second parameter a rounding mode from one of the following: 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'. The default rounding mode is 'even'. By using C<< Math::BigFloat->round_mode($round_mode); >> you can get and set the default mode for subsequent rounding. The usage of C<$Math::BigFloat::$round_mode> is no longer supported. The second parameter to the round functions then overrides the default temporarily. The L method returns a BigInt from a Math::BigFloat. It uses 'trunc' as rounding mode to make it equivalent to: $x = 2.5; $y = int($x) + 2; You can override this by passing the desired rounding mode as parameter to L: $x = Math::BigFloat->new(2.5); $y = $x->as_number('odd'); # $y = 3 =head1 NUMERIC LITERALS After C all numeric literals in the given scope are converted to C objects. This conversion happens at compile time. For example, perl -MMath::BigFloat=:constant -le 'print 2e-150' prints the exact value of C<2e-150>. Note that without conversion of constants the expression C<2e-150> is calculated using Perl scalars, which leads to an inaccuracte result. Note that strings are not affected, so that use Math::BigFloat qw/:constant/; $y = "1234567890123456789012345678901234567890" + "123456789123456789"; does not give you what you expect. You need an explicit Math::BigFloat->new() around at least one of the operands. You should also quote large constants to prevent loss of precision: use Math::BigFloat; $x = Math::BigFloat->new("1234567889123456789123456789123456789"); Without the quotes Perl converts the large number to a floating point constant at compile time, and then converts the result to a Math::BigFloat object at runtime, which results in an inaccurate result. =head2 Hexadecimal, octal, and binary floating point literals Perl (and this module) accepts hexadecimal, octal, and binary floating point literals, but use them with care with Perl versions before v5.32.0, because some versions of Perl silently give the wrong result. Below are some examples of different ways to write the number decimal 314. Hexadecimal floating point literals: 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 Octal floating point literals (with "0" prefix): 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 Octal floating point literals (with "0o" prefix) (requires v5.34.0): 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 Binary floating point literals: 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 =head2 Math library Math with the numbers is done (by default) by a module called Math::BigInt::Calc. This is equivalent to saying: use Math::BigFloat lib => "Calc"; You can change this by using: use Math::BigFloat lib => "GMP"; B: General purpose packages should not be explicit about the library to use; let the script author decide which is best. Note: The keyword 'lib' will warn when the requested library could not be loaded. To suppress the warning use 'try' instead: use Math::BigFloat try => "GMP"; If your script works with huge numbers and Calc is too slow for them, you can also for the loading of one of these libraries and if none of them can be used, the code will die: use Math::BigFloat only => "GMP,Pari"; The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc: use Math::BigFloat lib => "Foo,Math::BigInt::Bar"; See the respective low-level library documentation for further details. See L for more details about using a different low-level library. =head1 EXPORTS C exports nothing by default, but can export the L method: use Math::BigFloat qw/bpi/; print bpi(10), "\n"; =over =item Modifying and = Beware of: $x = Math::BigFloat->new(5); $y = $x; It will not do what you think, e.g. making a copy of $x. Instead it just makes a second reference to the B object and stores it in $y. Thus anything that modifies $x will modify $y (except overloaded math operators), and vice versa. See L for details and how to avoid that. =item precision() vs. accuracy() A common pitfall is to use L when you want to round a result to a certain number of digits: use Math::BigFloat; Math::BigFloat->precision(4); # does not do what you # think it does my $x = Math::BigFloat->new(12345); # rounds $x to "12000"! print "$x\n"; # print "12000" my $y = Math::BigFloat->new(3); # rounds $y to "0"! print "$y\n"; # print "0" $z = $x / $y; # 12000 / 0 => NaN! print "$z\n"; print $z->precision(),"\n"; # 4 Replacing L with L is probably not what you want, either: use Math::BigFloat; Math::BigFloat->accuracy(4); # enables global rounding: my $x = Math::BigFloat->new(123456); # rounded immediately # to "12350" print "$x\n"; # print "123500" my $y = Math::BigFloat->new(3); # rounded to "3 print "$y\n"; # print "3" print $z = $x->copy()->bdiv($y),"\n"; # 41170 print $z->accuracy(),"\n"; # 4 What you want to use instead is: use Math::BigFloat; my $x = Math::BigFloat->new(123456); # no rounding print "$x\n"; # print "123456" my $y = Math::BigFloat->new(3); # no rounding print "$y\n"; # print "3" print $z = $x->copy()->bdiv($y,4),"\n"; # 41150 print $z->accuracy(),"\n"; # undef In addition to computing what you expected, the last example also does B "taint" the result with an accuracy or precision setting, which would influence any further operation. =back =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L (requires login). We will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Math::BigFloat You can also look for information at: =over 4 =item * GitHub L =item * RT: CPAN's request tracker L =item * MetaCPAN L =item * CPAN Testers Matrix L =back =head1 LICENSE This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L and L as well as the backend libraries L, L, and L, L, and L. The pragmas L, L, and L might also be of interest. In addition there is the L pragma which does upgrading and downgrading. =head1 AUTHORS =over 4 =item * Mark Biggar, overloaded interface by Ilya Zakharevich, 1996-2001. =item * Completely rewritten by Tels L in 2001-2008. =item * Florian Ragwitz Eflora@cpan.orgE, 2010. =item * Peter John Acklam Epjacklam@gmail.comE, 2011-. =back =cut Math-BigInt-2.005003/lib/Math/BigInt/0000755403072340010010000000000014776770353016572 5ustar OSPJADomain UsersMath-BigInt-2.005003/lib/Math/BigInt/Calc.pm0000644403072340010010000022440714776760255020003 0ustar OSPJADomain Userspackage Math::BigInt::Calc; use 5.006001; use strict; use warnings; use Carp qw< carp croak >; use Math::BigInt::Lib; our $VERSION = '2.005003'; $VERSION =~ tr/_//d; our @ISA = ('Math::BigInt::Lib'); # Package to store unsigned big integers in decimal and do math with them # # Internally the numbers are stored in an array with at least 1 element, no # leading zero parts (except the first) and in base 1eX where X is determined # automatically at loading time to be the maximum possible value # # todo: # - fully remove funky $# stuff in div() (maybe - that code scares me...) ############################################################################## # global constants, flags and accessory # constants for easier life my $MAX_EXP_F; # the maximum possible base 10 exponent with "no integer" my $MAX_EXP_I; # the maximum possible base 10 exponent with "use integer" my $MAX_BITS; # the maximum possible number of bits for $AND_BITS etc. my $BASE_LEN; # the current base exponent in use my $USE_INT; # whether "use integer" is used in the computations my $BASE; # the current base, e.g., 10000 if $BASE_LEN is 5 my $MAX_VAL; # maximum value for an element, i.e., $BASE - 1 my $AND_BITS; # maximum value used in binary and, e.g., 0xffff my $OR_BITS; # ditto for binary or my $XOR_BITS; # ditto for binary xor my $AND_MASK; # $AND_BITS + 1, e.g., 0x10000 if $AND_BITS is 0xffff my $OR_MASK; # ditto for binary or my $XOR_MASK; # ditto for binary xor sub config { my $self = shift; croak "Missing input argument" unless @_; # Called as a getter. if (@_ == 1) { my $param = shift; croak "Parameter name must be a non-empty string" unless defined $param && length $param; return $BASE_LEN if $param eq 'base_len'; return $USE_INT if $param eq 'use_int'; croak "Unknown parameter '$param'"; } # Called as a setter. my $opts; while (@_) { my $param = shift; croak "Parameter name must be a non-empty string" unless defined $param && length $param; croak "Missing value for parameter '$param'" unless @_; my $value = shift; if ($param eq 'base_len' || $param eq 'use_int') { $opts -> {$param} = $value; next; } croak "Unknown parameter '$param'"; } $BASE_LEN = $opts -> {base_len} if exists $opts -> {base_len}; $USE_INT = $opts -> {use_int} if exists $opts -> {use_int}; __PACKAGE__ -> _base_len($BASE_LEN, $USE_INT); return $self; } sub _base_len { #my $class = shift; # $class is not used shift; if (@_) { # if called as setter ... my ($base_len, $use_int) = @_; croak "The base length must be a positive integer" unless defined($base_len) && $base_len == int($base_len) && $base_len > 0; if ( $use_int && ($base_len > $MAX_EXP_I) || !$use_int && ($base_len > $MAX_EXP_F)) { croak "The maximum base length (exponent) is $MAX_EXP_I with", " 'use integer' and $MAX_EXP_F without 'use integer'. The", " requested settings, a base length of $base_len ", $use_int ? "with" : "without", " 'use integer', is invalid."; } $BASE_LEN = $base_len; $BASE = 0 + ("1" . ("0" x $BASE_LEN)); $MAX_VAL = $BASE - 1; $USE_INT = $use_int ? 1 : 0; { no warnings "redefine"; if ($use_int) { *_mul = \&_mul_use_int; *_div = \&_div_use_int; } else { *_mul = \&_mul_no_int; *_div = \&_div_no_int; } } } # Find max bits. This is the largest power of two that is both no larger # than $BASE and no larger than the maximum integer (i.e., ~0). We need # this limitation because _and(), _or(), and _xor() only work on one # element at a time. my $umax = ~0; # largest unsigned integer my $tmp = $umax < $BASE ? $umax : $BASE; $MAX_BITS = 0; while ($tmp >>= 1) { $MAX_BITS++; } # Limit to 32 bits for portability. Is this really necessary? XXX $MAX_BITS = 32 if $MAX_BITS > 32; # Find out how many bits _and, _or and _xor can take (old default = 16). # Are these tests really necessary? Can't we just use $MAX_BITS? XXX for ($AND_BITS = $MAX_BITS ; $AND_BITS > 0 ; $AND_BITS--) { my $x = CORE::oct('0b' . '1' x $AND_BITS); my $y = $x & $x; my $z = 2 * (2 ** ($AND_BITS - 1)) + 1; last unless $AND_BITS < $MAX_BITS && $x == $z && $y == $x; } for ($XOR_BITS = $MAX_BITS ; $XOR_BITS > 0 ; $XOR_BITS--) { my $x = CORE::oct('0b' . '1' x $XOR_BITS); my $y = $x ^ $x; my $z = 2 * (2 ** ($XOR_BITS - 1)) + 1; last unless $XOR_BITS < $MAX_BITS && $x == $z && $y == $x; } for ($OR_BITS = $MAX_BITS ; $OR_BITS > 0 ; $OR_BITS--) { my $x = CORE::oct('0b' . '1' x $OR_BITS); my $y = $x | $x; my $z = 2 * (2 ** ($OR_BITS - 1)) + 1; last unless $OR_BITS < $MAX_BITS && $x == $z && $y == $x; } $AND_MASK = __PACKAGE__->_new(( 2 ** $AND_BITS )); $XOR_MASK = __PACKAGE__->_new(( 2 ** $XOR_BITS )); $OR_MASK = __PACKAGE__->_new(( 2 ** $OR_BITS )); return $BASE_LEN unless wantarray; return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL, $MAX_BITS, $MAX_EXP_F, $MAX_EXP_I, $USE_INT); } sub _new { # Given a string representing an integer, returns a reference to an array # of integers, where each integer represents a chunk of the original input # integer. my ($class, $str) = @_; #unless ($str =~ /^([1-9]\d*|0)\z/) { # croak("Invalid input string '$str'"); #} my $input_len = length($str) - 1; # Shortcut for small numbers. return bless [ $str ], $class if $input_len < $BASE_LEN; my $format = "a" . (($input_len % $BASE_LEN) + 1); $format .= $] < 5.008 ? "a$BASE_LEN" x int($input_len / $BASE_LEN) : "(a$BASE_LEN)*"; my $self = [ reverse(map { 0 + $_ } unpack($format, $str)) ]; return bless $self, $class; } BEGIN { # Compute $MAX_EXP_F, the maximum usable base 10 exponent. # The largest element in base 10**$BASE_LEN is 10**$BASE_LEN-1. For instance, # with $BASE_LEN = 5, the largest element is 99_999, and the largest carry is # # int( 99_999 * 99_999 / 100_000 ) = 99_998 # # so make sure that 99_999 * 99_999 + 99_998 is within the range of integers # that can be represented accuratly. # # Note that on some systems with quadmath support, the following is within # the range of numbers that can be represented exactly, but it still gives # the incorrect value $r = 2 (even though POSIX::fmod($x, $y) gives the # correct value of 1: # # $x = 99999999999999999; # $y = 100000000000000000; # $r = $x * $x % $y; # should be 1 # # so also check for this. for ($MAX_EXP_F = 1 ; ; $MAX_EXP_F++) { # when $MAX_EXP_F = 5 my $MAX_EXP_FM1 = $MAX_EXP_F - 1; # = 4 my $bs = "1" . ("0" x $MAX_EXP_F); # = "100000" my $xs = "9" x $MAX_EXP_F; # = "99999" my $cs = ("9" x $MAX_EXP_FM1) . "8"; # = "99998" my $ys = $cs . ("0" x $MAX_EXP_FM1) . "1"; # = "9999800001" # Compute and check the product. my $yn = $xs * $xs; # = 9999800001 last if $yn != $ys; # Compute and check the remainder. my $rn = $yn % $bs; # = 1 last if $rn != 1; # Compute and check the carry. The division here is exact. my $cn = ($yn - $rn) / $bs; # = 99998 last if $cn != $cs; # Compute and check product plus carry. my $zs = $cs . ("9" x $MAX_EXP_F); # = "9999899999" my $zn = $yn + $cn; # = 99998999999 last if $zn != $zs; last if $zn - ($zn - 1) != 1; } $MAX_EXP_F--; # last test failed, so retract one step # Compute $MAX_EXP_I, the maximum usable base 10 exponent within the range # of what is available with "use integer". On older versions of Perl, # integers are converted to floating point numbers, even though they are # within the range of what can be represented as integers. For example, on # some 64 bit Perls, 999999999 * 999999999 becomes 999999998000000000, not # 999999998000000001, even though the latter is less than the maximum value # for a 64 bit integer, 18446744073709551615. my $umax = ~0; # largest unsigned integer for ($MAX_EXP_I = int(0.5 * log($umax) / log(10)); $MAX_EXP_I > 0; $MAX_EXP_I--) { # when $MAX_EXP_I = 5 my $MAX_EXP_IM1 = $MAX_EXP_I - 1; # = 4 my $bs = "1" . ("0" x $MAX_EXP_I); # = "100000" my $xs = "9" x $MAX_EXP_I; # = "99999" my $cs = ("9" x $MAX_EXP_IM1) . "8"; # = "99998" my $ys = $cs . ("0" x $MAX_EXP_IM1) . "1"; # = "9999800001" # Compute and check the product. my $yn = $xs * $xs; # = 9999800001 next if $yn != $ys; # Compute and check the remainder. my $rn = $yn % $bs; # = 1 next if $rn != 1; # Compute and check the carry. The division here is exact. my $cn = ($yn - $rn) / $bs; # = 99998 next if $cn != $cs; # Compute and check product plus carry. my $zs = $cs . ("9" x $MAX_EXP_I); # = "9999899999" my $zn = $yn + $cn; # = 99998999999 next if $zn != $zs; next if $zn - ($zn - 1) != 1; last; } ($BASE_LEN, $USE_INT) = $MAX_EXP_F > $MAX_EXP_I ? ($MAX_EXP_F, 0) : ($MAX_EXP_I, 1); __PACKAGE__ -> _base_len($BASE_LEN, $USE_INT); } ############################################################################### sub _zero { # create a zero my $class = shift; return bless [ 0 ], $class; } sub _one { # create a one my $class = shift; return bless [ 1 ], $class; } sub _two { # create a two my $class = shift; return bless [ 2 ], $class; } sub _ten { # create a 10 my $class = shift; my $self = $BASE_LEN == 1 ? [ 0, 1 ] : [ 10 ]; bless $self, $class; } sub _1ex { # create a 1Ex my $class = shift; my $rem = $_[0] % $BASE_LEN; # remainder my $div = ($_[0] - $rem) / $BASE_LEN; # parts # With a $BASE_LEN of 6, 1e14 becomes # [ 000000, 000000, 100 ] -> [ 0, 0, 100 ] bless [ (0) x $div, 0 + ("1" . ("0" x $rem)) ], $class; } sub _copy { # make a true copy my $class = shift; return bless [ @{ $_[0] } ], $class; } sub import { my $self = shift; my $opts; my ($base_len, $use_int); while (@_) { my $param = shift; croak "Parameter name must be a non-empty string" unless defined $param && length $param; croak "Missing value for parameter '$param'" unless @_; my $value = shift; if ($param eq 'base_len' || $param eq 'use_int') { $opts -> {$param} = $value; next; } croak "Unknown parameter '$param'"; } $base_len = exists $opts -> {base_len} ? $opts -> {base_len} : $BASE_LEN; $use_int = exists $opts -> {use_int} ? $opts -> {use_int} : $USE_INT; __PACKAGE__ -> _base_len($base_len, $use_int); return $self; } ############################################################################## # convert back to string and number sub _str { # Convert number from internal base 1eN format to string format. Internal # format is always normalized, i.e., no leading zeros. my $ary = $_[1]; my $idx = $#$ary; # index of last element if ($idx < 0) { # should not happen croak("$_[1] has no elements"); } # Handle first one differently, since it should not have any leading zeros. my $ret = int($ary->[$idx]); if ($idx > 0) { # Interestingly, the pre-padd method uses more time. # The old grep variant takes longer (14 vs. 10 sec). my $z = '0' x ($BASE_LEN - 1); while (--$idx >= 0) { $ret .= substr($z . $ary->[$idx], -$BASE_LEN); } } $ret; } sub _num { # Make a Perl scalar number (int/float) from a BigInt object. my $x = $_[1]; return $x->[0] if @$x == 1; # below $BASE # Start with the most significant element and work towards the least # significant element. Avoid multiplying "inf" (which happens if the number # overflows) with "0" (if there are zero elements in $x) since this gives # "nan" which propagates to the output. my $num = 0; for (my $i = $#$x ; $i >= 0 ; --$i) { $num *= $BASE; $num += $x -> [$i]; } return $num; } ############################################################################## # actual math code sub _add { # (ref to int_num_array, ref to int_num_array) # # Routine to add two base 1eX numbers stolen from Knuth Vol 2 Algorithm A # pg 231. There are separate routines to add and sub as per Knuth pg 233. # This routine modifies array x, but not y. my ($c, $x, $y) = @_; # $x + 0 => $x return $x if @$y == 1 && $y->[0] == 0; # 0 + $y => $y->copy if (@$x == 1 && $x->[0] == 0) { @$x = @$y; return $x; } # For each in Y, add Y to X and carry. If after that, something is left in # X, foreach in X add carry to X and then return X, carry. Trades one # "$j++" for having to shift arrays. my $car = 0; my $j = 0; for my $i (@$y) { $x->[$j] -= $BASE if $car = (($x->[$j] += $i + $car) >= $BASE) ? 1 : 0; $j++; } while ($car != 0) { $x->[$j] -= $BASE if $car = (($x->[$j] += $car) >= $BASE) ? 1 : 0; $j++; } $x; } sub _inc { # (ref to int_num_array, ref to int_num_array) # Add 1 to $x, modify $x in place my ($c, $x) = @_; for my $i (@$x) { return $x if ($i += 1) < $BASE; # early out $i = 0; # overflow, next } push @$x, 1 if $x->[-1] == 0; # last overflowed, so extend $x; } sub _dec { # (ref to int_num_array, ref to int_num_array) # Sub 1 from $x, modify $x in place my ($c, $x) = @_; my $MAX = $BASE - 1; # since MAX_VAL based on BASE for my $i (@$x) { last if ($i -= 1) >= 0; # early out $i = $MAX; # underflow, next } pop @$x if $x->[-1] == 0 && @$x > 1; # last underflowed (but leave 0) $x; } sub _sub { # (ref to int_num_array, ref to int_num_array, swap) # # Subtract base 1eX numbers -- stolen from Knuth Vol 2 pg 232, $x > $y # subtract Y from X by modifying x in place my ($c, $sx, $sy, $s) = @_; my $car = 0; my $j = 0; if (!$s) { for my $i (@$sx) { last unless defined $sy->[$j] || $car; $i += $BASE if $car = (($i -= ($sy->[$j] || 0) + $car) < 0); $j++; } # might leave leading zeros, so fix that return __strip_zeros($sx); } for my $i (@$sx) { # We can't do an early out if $x < $y, since we need to copy the high # chunks from $y. Found by Bob Mathews. #last unless defined $sy->[$j] || $car; $sy->[$j] += $BASE if $car = ($sy->[$j] = $i - ($sy->[$j] || 0) - $car) < 0; $j++; } # might leave leading zeros, so fix that __strip_zeros($sy); } sub _mul_use_int { # (ref to int_num_array, ref to int_num_array) # multiply two numbers in internal representation # modifies first arg, second need not be different from first # works for 64 bit integer with "use integer" my ($c, $xv, $yv) = @_; use integer; if (@$yv == 1) { # shortcut for two very short numbers (improved by Nathan Zook) works # also if xv and yv are the same reference, and handles also $x == 0 if (@$xv == 1) { if (($xv->[0] *= $yv->[0]) >= $BASE) { $xv->[0] = $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE; } return $xv; } # $x * 0 => 0 if ($yv->[0] == 0) { @$xv = (0); return $xv; } # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; foreach my $i (@$xv) { #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE; $i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE; } push @$xv, $car if $car != 0; return $xv; } # shortcut for result $x == 0 => result = 0 return $xv if @$xv == 1 && $xv->[0] == 0; # since multiplying $x with $x fails, make copy in this case $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); my ($prod, $car, $cty); for my $xi (@$xv) { $car = 0; $cty = 0; # looping through this if $xi == 0 is silly - so optimize it away! $xi = (shift(@prod) || 0), next if $xi == 0; for my $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE; } $prod[$cty] += $car if $car; # need really to check for 0? $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; $xv; } sub _mul_no_int { # (ref to int_num_array, ref to int_num_array) # multiply two numbers in internal representation # modifies first arg, second need not be different from first my ($c, $xv, $yv) = @_; if (@$yv == 1) { # shortcut for two very short numbers (improved by Nathan Zook) works # also if xv and yv are the same reference, and handles also $x == 0 if (@$xv == 1) { if (($xv->[0] *= $yv->[0]) >= $BASE) { my $rem = $xv->[0] % $BASE; $xv->[1] = ($xv->[0] - $rem) / $BASE; $xv->[0] = $rem; } return $xv; } # $x * 0 => 0 if ($yv->[0] == 0) { @$xv = (0); return $xv; } # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; my $rem; foreach my $i (@$xv) { $i = $i * $y + $car; $rem = $i % $BASE; $car = ($i - $rem) / $BASE; $i = $rem; } push @$xv, $car if $car != 0; return $xv; } # shortcut for result $x == 0 => result = 0 return $xv if @$xv == 1 && $xv->[0] == 0; # since multiplying $x with $x fails, make copy in this case $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); my ($prod, $rem, $car, $cty); for my $xi (@$xv) { $car = 0; $cty = 0; # looping through this if $xi == 0 is silly - so optimize it away! $xi = (shift(@prod) || 0), next if $xi == 0; for my $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; $rem = $prod % $BASE; $car = ($prod - $rem) / $BASE; $prod[$cty++] = $rem; } $prod[$cty] += $car if $car; # need really to check for 0? $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; $xv; } sub _div_use_int { # ref to array, ref to array, modify first array and return remainder if # in list context # This version works on integers use integer; my ($c, $x, $yorg) = @_; # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers if (wantarray) { my $rem = [ $x->[0] % $yorg->[0] ]; bless $rem, $c; $x->[0] = $x->[0] / $yorg->[0]; return ($x, $rem); } else { $x->[0] = $x->[0] / $yorg->[0]; return $x; } } # if x has more than one, but y has only one element: if (@$yorg == 1) { my $rem; $rem = $c->_mod($c->_copy($x), $yorg) if wantarray; # shortcut, $y is < $BASE my $j = @$x; my $r = 0; my $y = $yorg->[0]; my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; $r = $b % $y; $x->[$j] = $b / $y; } pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero return ($x, $rem) if wantarray; return $x; } # now x and y have more than one element # check whether y has more elements than x, if so, the result is 0 if (@$yorg > @$x) { my $rem; $rem = $c->_copy($x) if wantarray; # make copy @$x = 0; # set to 0 return ($x, $rem) if wantarray; # including remainder? return $x; # only x, which is [0] now } # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { my $cmp = 0; for (my $j = $#$x ; $j >= 0 ; --$j) { last if $cmp = $x->[$j] - $yorg->[$j]; } if ($cmp == 0) { # x = y @$x = 1; return $x, $c->_zero() if wantarray; return $x; } if ($cmp < 0) { # x < y if (wantarray) { my $rem = $c->_copy($x); @$x = 0; return $x, $rem; } @$x = 0; return $x; } } # all other cases: my $y = $c->_copy($yorg); # always make copy to preserve my $tmp; my $dd = $BASE / ($y->[-1] + 1); if ($dd != 1) { my $car = 0; for my $xi (@$x) { $xi = $xi * $dd + $car; $xi -= ($car = $xi / $BASE) * $BASE; } push(@$x, $car); $car = 0; for my $yi (@$y) { $yi = $yi * $dd + $car; $yi -= ($car = $yi / $BASE) * $BASE; } } else { push(@$x, 0); } # @q will accumulate the final result, $q contains the current computed # part of the final result my @q = (); my ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { my ($u2, $u1, $u0) = @$x[-3 .. -1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; my $tmp = $u0 * $BASE + $u1; my $rem = $tmp % $v1; my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1); --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2; if ($q) { my $prd; my ($car, $bar) = (0, 0); for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; $prd -= ($car = int($prd / $BASE)) * $BASE; $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE); } } } pop(@$x); unshift(@q, $q); } if (wantarray) { my $d = bless [], $c; if ($dd != 1) { my $car = 0; my $prd; for my $xi (reverse @$x) { $prd = $car * $BASE + $xi; $car = $prd - ($tmp = $prd / $dd) * $dd; unshift @$d, $tmp; } } else { @$d = @$x; } @$x = @q; __strip_zeros($x); __strip_zeros($d); return ($x, $d); } @$x = @q; __strip_zeros($x); $x; } sub _div_no_int { # ref to array, ref to array, modify first array and return remainder if # in list context my ($c, $x, $yorg) = @_; # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers my $rem = [ $x->[0] % $yorg->[0] ]; bless $rem, $c; $x->[0] = ($x->[0] - $rem->[0]) / $yorg->[0]; return ($x, $rem) if wantarray; return $x; } # if x has more than one, but y has only one element: if (@$yorg == 1) { my $rem; $rem = $c->_mod($c->_copy($x), $yorg) if wantarray; # shortcut, $y is < $BASE my $j = @$x; my $r = 0; my $y = $yorg->[0]; my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; $r = $b % $y; $x->[$j] = ($b - $r) / $y; } pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero return ($x, $rem) if wantarray; return $x; } # now x and y have more than one element # check whether y has more elements than x, if so, the result is 0 if (@$yorg > @$x) { my $rem; $rem = $c->_copy($x) if wantarray; # make copy @$x = 0; # set to 0 return ($x, $rem) if wantarray; # including remainder? return $x; # only x, which is [0] now } # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { my $cmp = 0; for (my $j = $#$x ; $j >= 0 ; --$j) { last if $cmp = $x->[$j] - $yorg->[$j]; } if ($cmp == 0) { # x = y @$x = 1; return $x, $c->_zero() if wantarray; return $x; } if ($cmp < 0) { # x < y if (wantarray) { my $rem = $c->_copy($x); @$x = 0; return $x, $rem; } @$x = 0; return $x; } } # all other cases: my $y = $c->_copy($yorg); # always make copy to preserve my $tmp = $y->[-1] + 1; my $rem = $BASE % $tmp; my $dd = ($BASE - $rem) / $tmp; if ($dd != 1) { my $car = 0; for my $xi (@$x) { $xi = $xi * $dd + $car; $rem = $xi % $BASE; $car = ($xi - $rem) / $BASE; $xi = $rem; } push(@$x, $car); $car = 0; for my $yi (@$y) { $yi = $yi * $dd + $car; $rem = $yi % $BASE; $car = ($yi - $rem) / $BASE; $yi = $rem; } } else { push(@$x, 0); } # @q will accumulate the final result, $q contains the current computed # part of the final result my @q = (); my ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { my ($u2, $u1, $u0) = @$x[-3 .. -1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; my $tmp = $u0 * $BASE + $u1; my $rem = $tmp % $v1; my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1); --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2; if ($q) { my $prd; my ($car, $bar) = (0, 0); for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; $rem = $prd % $BASE; $car = ($prd - $rem) / $BASE; $prd -= $car * $BASE; $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE); } } } pop(@$x); unshift(@q, $q); } if (wantarray) { my $d = bless [], $c; if ($dd != 1) { my $car = 0; my ($prd, $rem); for my $xi (reverse @$x) { $prd = $car * $BASE + $xi; $rem = $prd % $dd; $tmp = ($prd - $rem) / $dd; $car = $rem; unshift @$d, $tmp; } } else { @$d = @$x; } @$x = @q; __strip_zeros($x); __strip_zeros($d); return ($x, $d); } @$x = @q; __strip_zeros($x); $x; } ############################################################################## # testing sub _acmp { # Internal absolute post-normalized compare (ignore signs) # ref to array, ref to array, return <0, 0, >0 # Arrays must have at least one entry; this is not checked for. my ($c, $cx, $cy) = @_; # shortcut for short numbers return (($cx->[0] <=> $cy->[0]) <=> 0) if @$cx == 1 && @$cy == 1; # fast comp based on number of array elements (aka pseudo-length) my $lxy = (@$cx - @$cy) # or length of first element if same number of elements (aka difference 0) || # need int() here because sometimes the last element is '00018' vs '18' (length(int($cx->[-1])) - length(int($cy->[-1]))); return -1 if $lxy < 0; # already differs, ret return 1 if $lxy > 0; # ditto # manual way (abort if unequal, good for early ne) my $a; my $j = @$cx; while (--$j >= 0) { last if $a = $cx->[$j] - $cy->[$j]; } $a <=> 0; } sub _len { # compute number of digits in base 10 # int() because add/sub sometimes leaves strings (like '00005') instead of # '5' in this place, thus causing length() to report wrong length my $cx = $_[1]; (@$cx - 1) * $BASE_LEN + length(int($cx->[-1])); } sub _digit { # Return the nth digit. Zero is rightmost, so _digit(123, 0) gives 3. # Negative values count from the left, so _digit(123, -1) gives 1. my ($c, $x, $n) = @_; my $len = _len('', $x); $n += $len if $n < 0; # -1 last, -2 second-to-last # Math::BigInt::Calc returns 0 if N is out of range, but this is not done # by the other backend libraries. return "0" if $n < 0 || $n >= $len; # return 0 for digits out of range my $elem = int($n / $BASE_LEN); # index of array element my $digit = $n % $BASE_LEN; # index of digit within the element substr("0" x $BASE_LEN . "$x->[$elem]", -1 - $digit, 1); } sub _zeros { # Return number of trailing zeros in decimal. # Check each array element for having 0 at end as long as elem == 0 # Upon finding a elem != 0, stop. my $x = $_[1]; return 0 if @$x == 1 && $x->[0] == 0; my $zeros = 0; foreach my $elem (@$x) { if ($elem != 0) { $elem =~ /[^0](0*)\z/; $zeros += length($1); # count trailing zeros last; # early out } $zeros += $BASE_LEN; } $zeros; } ############################################################################## # _is_* routines sub _is_zero { # return true if arg is zero @{$_[1]} == 1 && $_[1]->[0] == 0 ? 1 : 0; } sub _is_even { # return true if arg is even $_[1]->[0] % 2 ? 0 : 1; } sub _is_odd { # return true if arg is odd $_[1]->[0] % 2 ? 1 : 0; } sub _is_one { # return true if arg is one @{$_[1]} == 1 && $_[1]->[0] == 1 ? 1 : 0; } sub _is_two { # return true if arg is two @{$_[1]} == 1 && $_[1]->[0] == 2 ? 1 : 0; } sub _is_ten { # return true if arg is ten if ($BASE_LEN == 1) { @{$_[1]} == 2 && $_[1]->[0] == 0 && $_[1]->[1] == 1 ? 1 : 0; } else { @{$_[1]} == 1 && $_[1]->[0] == 10 ? 1 : 0; } } sub __strip_zeros { # Internal normalization function that strips leading zeros from the array. # Args: ref to array my $x = shift; push @$x, 0 if @$x == 0; # div might return empty results, so fix it return $x if @$x == 1; # early out #print "strip: cnt $cnt i $i\n"; # '0', '3', '4', '0', '0', # 0 1 2 3 4 # cnt = 5, i = 4 # i = 4 # i = 3 # => fcnt = cnt - i (5-2 => 3, cnt => 5-1 = 4, throw away from 4th pos) # >= 1: skip first part (this can be zero) my $i = $#$x; while ($i > 0) { last if $x->[$i] != 0; $i--; } $i++; splice(@$x, $i) if $i < @$x; $x; } ############################################################################### # check routine to test internal state for corruptions sub _check { # used by the test suite my ($class, $x) = @_; my $msg = $class -> SUPER::_check($x); return $msg if $msg; my $n; eval { $n = @$x }; return "Not an array reference" unless $@ eq ''; return "Reference to an empty array" unless $n > 0; # The following fails with Math::BigInt::FastCalc because a # Math::BigInt::FastCalc "object" is an unblessed array ref. # #return 0 unless ref($x) eq $class; for (my $i = 0 ; $i <= $#$x ; ++ $i) { my $e = $x -> [$i]; return "Element at index $i is undefined" unless defined $e; return "Element at index $i is a '" . ref($e) . "', which is not a scalar" unless ref($e) eq ""; # It would be better to use the regex /^([1-9]\d*|0)\z/, but that fails # in Math::BigInt::FastCalc, because it sometimes creates array # elements like "000000". return "Element at index $i is '$e', which does not look like an" . " normal integer" unless $e =~ /^\d+\z/; return "Element at index $i is '$e', which is not smaller than" . " the base '$BASE'" if $e >= $BASE; return "Element at index $i (last element) is zero" if $#$x > 0 && $i == $#$x && $e == 0; } return 0; } ############################################################################### sub _mod { # if possible, use mod shortcut my ($c, $x, $yo) = @_; # slow way since $y too big if (@$yo > 1) { my ($xo, $rem) = $c->_div($x, $yo); @$x = @$rem; return $x; } my $y = $yo->[0]; # if both are single element arrays if (@$x == 1) { $x->[0] %= $y; return $x; } # if @$x has more than one element, but @$y is a single element my $b = $BASE % $y; if ($b == 0) { # when BASE % Y == 0 then (B * BASE) % Y == 0 # (B * BASE) % $y + A % Y => A % Y # so need to consider only last element: O(1) $x->[0] %= $y; } elsif ($b == 1) { # else need to go through all elements in @$x: O(N), but loop is a bit # simplified my $r = 0; foreach (@$x) { $r = ($r + $_) % $y; # not much faster, but heh... #$r += $_ % $y; $r %= $y; } $r = 0 if $r == $y; $x->[0] = $r; } else { # else need to go through all elements in @$x: O(N) my $r = 0; my $bm = 1; foreach (@$x) { $r = ($_ * $bm + $r) % $y; $bm = ($bm * $b) % $y; #$r += ($_ % $y) * $bm; #$bm *= $b; #$bm %= $y; #$r %= $y; } $r = 0 if $r == $y; $x->[0] = $r; } @$x = $x->[0]; # keep one element of @$x return $x; } ############################################################################## # shifts sub _rsft { my ($c, $x, $n, $b) = @_; return $x if $c->_is_zero($x) || $c->_is_zero($n); # For backwards compatibility, allow the base $b to be a scalar. $b = $c->_new($b) unless ref $b; if ($c -> _acmp($b, $c -> _ten())) { return scalar $c->_div($x, $c->_pow($c->_copy($b), $n)); } # shortcut (faster) for shifting by 10) # multiples of $BASE_LEN my $dst = 0; # destination my $src = $c->_num($n); # as normal int my $xlen = (@$x - 1) * $BASE_LEN + length(int($x->[-1])); if ($src >= $xlen or ($src == $xlen and !defined $x->[1])) { # 12345 67890 shifted right by more than 10 digits => 0 splice(@$x, 1); # leave only one element $x->[0] = 0; # set to zero return $x; } my $rem = $src % $BASE_LEN; # remainder to shift $src = int($src / $BASE_LEN); # source if ($rem == 0) { splice(@$x, 0, $src); # even faster, 38.4 => 39.3 } else { my $len = @$x - $src; # elems to go my $vd; my $z = '0' x $BASE_LEN; $x->[ @$x ] = 0; # avoid || 0 test inside loop while ($dst < $len) { $vd = $z . $x->[$src]; $vd = substr($vd, -$BASE_LEN, $BASE_LEN - $rem); $src++; $vd = substr($z . $x->[$src], -$rem, $rem) . $vd; $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN; $x->[$dst] = int($vd); $dst++; } splice(@$x, $dst) if $dst > 0; # kill left-over array elems pop(@$x) if $x->[-1] == 0 && @$x > 1; # kill last element if 0 } # else rem == 0 $x; } sub _lsft { my ($c, $x, $n, $b) = @_; return $x if $c->_is_zero($x) || $c->_is_zero($n); # For backwards compatibility, allow the base $b to be a scalar. $b = $c->_new($b) unless ref $b; # If the base is a power of 10, use shifting, since the internal # representation is in base 10eX. my $bstr = $c->_str($b); if ($bstr =~ /^1(0+)\z/) { # Adjust $n so that we're shifting in base 10. Do this by multiplying # $n by the base 10 logarithm of $b: $b ** $n = 10 ** (log10($b) * $n). my $log10b = length($1); $n = $c->_mul($c->_new($log10b), $n); $n = $c->_num($n); # shift-len as normal int # $q is the number of places to shift the elements within the array, # and $r is the number of places to shift the values within the # elements. my $r = $n % $BASE_LEN; my $q = ($n - $r) / $BASE_LEN; # If we must shift the values within the elements ... if ($r) { my $i = @$x; # index $x->[$i] = 0; # initialize most significant element my $z = '0' x $BASE_LEN; my $vd; while ($i >= 0) { $vd = $x->[$i]; $vd = $z . $vd; $vd = substr($vd, $r - $BASE_LEN, $BASE_LEN - $r); $vd .= $i > 0 ? substr($z . $x->[$i - 1], -$BASE_LEN, $r) : '0' x $r; $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN; $x->[$i] = int($vd); # e.g., "0...048" -> 48 etc. $i--; } pop(@$x) if $x->[-1] == 0; # if most significant element is zero } # If we must shift the elements within the array ... if ($q) { unshift @$x, (0) x $q; } } else { $x = $c->_mul($x, $c->_pow($b, $n)); } return $x; } sub _pow { # power of $x to $y # ref to array, ref to array, return ref to array my ($c, $cx, $cy) = @_; if (@$cy == 1 && $cy->[0] == 0) { splice(@$cx, 1); $cx->[0] = 1; # y == 0 => x => 1 return $cx; } if ((@$cx == 1 && $cx->[0] == 1) || # x == 1 (@$cy == 1 && $cy->[0] == 1)) # or y == 1 { return $cx; } if (@$cx == 1 && $cx->[0] == 0) { splice (@$cx, 1); $cx->[0] = 0; # 0 ** y => 0 (if not y <= 0) return $cx; } my $pow2 = $c->_one(); my $y_bin = $c->_as_bin($cy); $y_bin =~ s/^0b//; my $len = length($y_bin); while (--$len > 0) { $c->_mul($pow2, $cx) if substr($y_bin, $len, 1) eq '1'; # is odd? $c->_mul($cx, $cx); } $c->_mul($cx, $pow2); $cx; } sub _nok { # Return binomial coefficient (n over k). # Given refs to arrays, return ref to array. # First input argument is modified. my ($c, $n, $k) = @_; # If k > n/2, or, equivalently, 2*k > n, compute nok(n, k) as # nok(n, n-k), to minimize the number if iterations in the loop. { my $twok = $c->_mul($c->_two(), $c->_copy($k)); # 2 * k if ($c->_acmp($twok, $n) > 0) { # if 2*k > n $k = $c->_sub($c->_copy($n), $k); # k = n - k } } # Example: # # / 7 \ 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7 # | | = --------- = --------------- = --------- = 5 * - * - # \ 3 / (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3 if ($c->_is_zero($k)) { @$n = 1; } else { # Make a copy of the original n, since we'll be modifying n in-place. my $n_orig = $c->_copy($n); # n = 5, f = 6, d = 2 (cf. example above) $c->_sub($n, $k); $c->_inc($n); my $f = $c->_copy($n); $c->_inc($f); my $d = $c->_two(); # while f <= n (the original n, that is) ... while ($c->_acmp($f, $n_orig) <= 0) { # n = (n * f / d) == 5 * 6 / 2 (cf. example above) $c->_mul($n, $f); $c->_div($n, $d); # f = 7, d = 3 (cf. example above) $c->_inc($f); $c->_inc($d); } } return $n; } sub _fac { # factorial of $x # ref to array, return ref to array my ($c, $cx) = @_; # We cache the smallest values. Don't assume that a single element has a # value larger than 9 or else it won't work with a $BASE_LEN of 1. if (@$cx == 1) { my @factorials = ( '1', '1', '2', '6', '24', '120', '720', '5040', '40320', '362880', ); if ($cx->[0] <= $#factorials) { my $tmp = $c -> _new($factorials[ $cx->[0] ]); @$cx = @$tmp; return $cx; } } # The old code further below doesn't work for small values of $BASE_LEN. # Alas, I have not been able to (or taken the time to) decipher it, so for # the case when $BASE_LEN is small, we call the parent class. This code # works in for every value of $x and $BASE_LEN. We could use this code for # all cases, but it is a little slower than the code further below, so at # least for now we keep the code below. if ($BASE_LEN <= 2) { my $tmp = $c -> SUPER::_fac($cx); @$cx = @$tmp; return $cx; } # This code does not work for small values of $BASE_LEN. if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000 ($cx->[0] >= 12 && $cx->[0] < 7000)) { # Calculate (k-j) * (k-j+1) ... k .. (k+j-1) * (k + j) # See http://blogten.blogspot.com/2007/01/calculating-n.html # The above series can be expressed as factors: # k * k - (j - i) * 2 # We cache k*k, and calculate (j * j) as the sum of the first j odd integers # This will not work when N exceeds the storage of a Perl scalar, however, # in this case the algorithm would be way too slow to terminate, anyway. # As soon as the last element of $cx is 0, we split it up and remember # how many zeors we got so far. The reason is that n! will accumulate # zeros at the end rather fast. my $zero_elements = 0; # If n is even, set n = n -1 my $k = $c->_num($cx); my $even = 1; if (($k & 1) == 0) { $even = $k; $k --; } # set k to the center point $k = ($k + 1) / 2; # print "k $k even: $even\n"; # now calculate k * k my $k2 = $k * $k; my $odd = 1; my $sum = 1; my $i = $k - 1; # keep reference to x my $new_x = $c->_new($k * $even); @$cx = @$new_x; if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } # print STDERR "x = ", $c->_str($cx), "\n"; my $BASE2 = int(sqrt($BASE))-1; my $j = 1; while ($j <= $i) { my $m = ($k2 - $sum); $odd += 2; $sum += $odd; $j++; while ($j <= $i && ($m < $BASE2) && (($k2 - $sum) < $BASE2)) { $m *= ($k2 - $sum); $odd += 2; $sum += $odd; $j++; # print STDERR "\n k2 $k2 m $m sum $sum odd $odd\n"; sleep(1); } if ($m < $BASE) { $c->_mul($cx, [$m]); } else { $c->_mul($cx, $c->_new($m)); } if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } # print STDERR "Calculate $k2 - $sum = $m (x = ", $c->_str($cx), ")\n"; } # multiply in the zeros again unshift @$cx, (0) x $zero_elements; return $cx; } # go forward until $base is exceeded limit is either $x steps (steps == 100 # means a result always too high) or $base. my $steps = 100; $steps = $cx->[0] if @$cx == 1; my $r = 2; my $cf = 3; my $step = 2; my $last = $r; while ($r * $cf < $BASE && $step < $steps) { $last = $r; $r *= $cf++; $step++; } if ((@$cx == 1) && $step == $cx->[0]) { # completely done, so keep reference to $x and return $cx->[0] = $r; return $cx; } # now we must do the left over steps my $n; # steps still to do if (@$cx == 1) { $n = $cx->[0]; } else { $n = $c->_copy($cx); } # Set $cx to the last result below $BASE (but keep ref to $x) $cx->[0] = $last; splice (@$cx, 1); # As soon as the last element of $cx is 0, we split it up and remember # how many zeors we got so far. The reason is that n! will accumulate # zeros at the end rather fast. my $zero_elements = 0; # do left-over steps fit into a scalar? if (ref $n eq 'ARRAY') { # No, so use slower inc() & cmp() # ($n is at least $BASE here) my $base_2 = int(sqrt($BASE)) - 1; #print STDERR "base_2: $base_2\n"; while ($step < $base_2) { if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } my $b = $step * ($step + 1); $step += 2; $c->_mul($cx, [$b]); } $step = [$step]; while ($c->_acmp($step, $n) <= 0) { if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } $c->_mul($cx, $step); $c->_inc($step); } } else { # Yes, so we can speed it up slightly # print "# left over steps $n\n"; my $base_4 = int(sqrt(sqrt($BASE))) - 2; #print STDERR "base_4: $base_4\n"; my $n4 = $n - 4; while ($step < $n4 && $step < $base_4) { if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } my $b = $step * ($step + 1); $step += 2; $b *= $step * ($step + 1); $step += 2; $c->_mul($cx, [$b]); } my $base_2 = int(sqrt($BASE)) - 1; my $n2 = $n - 2; #print STDERR "base_2: $base_2\n"; while ($step < $n2 && $step < $base_2) { if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } my $b = $step * ($step + 1); $step += 2; $c->_mul($cx, [$b]); } # do what's left over while ($step <= $n) { $c->_mul($cx, [$step]); $step++; if ($cx->[0] == 0) { $zero_elements ++; shift @$cx; } } } # multiply in the zeros again unshift @$cx, (0) x $zero_elements; $cx; # return result } sub _log_int { # calculate integer log of $x to base $base # ref to array, ref to array - return ref to array my ($c, $x, $base) = @_; # X == 0 => NaN return if @$x == 1 && $x->[0] == 0; # BASE 0 or 1 => NaN return if @$base == 1 && $base->[0] < 2; # X == 1 => 0 (is exact) if (@$x == 1 && $x->[0] == 1) { @$x = 0; return $x, 1; } my $cmp = $c->_acmp($x, $base); # X == BASE => 1 (is exact) if ($cmp == 0) { @$x = 1; return $x, 1; } # 1 < X < BASE => 0 (is truncated) if ($cmp < 0) { @$x = 0; return $x, 0; } my $x_org = $c->_copy($x); # preserve x # Compute a guess for the result based on: # $guess = int ( length_in_base_10(X) / ( log(base) / log(10) ) ) my $len = $c->_len($x_org); my $log = log($base->[-1]) / log(10); # for each additional element in $base, we add $BASE_LEN to the result, # based on the observation that log($BASE, 10) is BASE_LEN and # log(x*y) == log(x) + log(y): $log += (@$base - 1) * $BASE_LEN; # calculate now a guess based on the values obtained above: my $res = $c->_new(int($len / $log)); @$x = @$res; my $trial = $c->_pow($c->_copy($base), $x); my $acmp = $c->_acmp($trial, $x_org); # Did we get the exact result? return $x, 1 if $acmp == 0; # Too small? while ($acmp < 0) { $c->_mul($trial, $base); $c->_inc($x); $acmp = $c->_acmp($trial, $x_org); } # Too big? while ($acmp > 0) { $c->_div($trial, $base); $c->_dec($x); $acmp = $c->_acmp($trial, $x_org); } return $x, 1 if $acmp == 0; # result is exact return $x, 0; # result is too small } sub _ilog2 { # calculate int(log2($x)) # There is virtually nothing to gain from computing this any differently # than _log_int(), but it is important that we don't use the method # inherited from the parent, because that method is very slow for backend # libraries whose internal representation uses base 10. my ($c, $x) = @_; ($x, my $is_exact) = $c -> _log_int($x, $c -> _two()); return wantarray ? ($x, $is_exact) : $x; } sub _ilog10 { # calculate int(log10($x)) my ($c, $x) = @_; # X == 0 => NaN return if @$x == 1 && $x->[0] == 0; # X == 1 => 0 (is exact) if (@$x == 1 && $x->[0] == 1) { @$x = 0; return wantarray ? ($x, 1) : $x; } my $x_orig = $c -> _copy($x); my $nm1 = $c -> _len($x) - 1; my $xtmp = $c -> _new($nm1); @$x = @$xtmp; return $x unless wantarray; # See if the original $x is an exact power of 10, in which case all but the # most significan chunks are 0, and the most significant chunk is a power # of 10. my $is_pow10 = 1; for my $i (0 .. $#$x_orig - 1) { last unless $is_pow10 = $x_orig->[$i] == 0; } $is_pow10 &&= $x_orig->[-1] == 10**int(0.5 + log($x_orig->[-1]) / log(10)); return wantarray ? ($x, 1) : $x if $is_pow10; return wantarray ? ($x, 0) : $x; } sub _clog2 { # calculate ceil(log2($x)) my ($c, $x) = @_; # X == 0 => NaN return if @$x == 1 && $x->[0] == 0; # X == 1 => 0 (is exact) if (@$x == 1 && $x->[0] == 1) { @$x = 0; return wantarray ? ($x, 1) : $x; } my $base = $c -> _two(); my $acmp = $c -> _acmp($x, $base); # X == BASE => 1 (is exact) if ($acmp == 0) { @$x = 1; return wantarray ? ($x, 1) : $x; } # 1 < X < BASE => 0 (is truncated) if ($acmp < 0) { @$x = 0; return wantarray ? ($x, 0) : $x; } # Compute a guess for the result based on: # $guess = int( length_in_base_10(X) / (log(base) / log(10)) ) my $len = $c -> _len($x); my $log = log(2) / log(10); my $guess = $c -> _new(int($len / $log)); my $x_orig = $c -> _copy($x); @$x = @$guess; my $trial = $c -> _pow($c -> _copy($base), $x); $acmp = $c -> _acmp($trial, $x_orig); # Too big? while ($acmp > 0) { $c -> _div($trial, $base); $c -> _dec($x); $acmp = $c -> _acmp($trial, $x_orig); } # Too small? while ($acmp < 0) { $c -> _mul($trial, $base); $c -> _inc($x); $acmp = $c -> _acmp($trial, $x_orig); } return wantarray ? ($x, 1) : $x if $acmp == 0; # result is exact return wantarray ? ($x, 0) : $x; # result is too small } sub _clog10 { # calculate ceil(log2($x)) my ($c, $x) = @_; # X == 0 => NaN return if @$x == 1 && $x->[0] == 0; # X == 1 => 0 (is exact) if (@$x == 1 && $x->[0] == 1) { @$x = 0; return wantarray ? ($x, 1) : $x; } # Get the number of base 10 digits. $n is the desired output, except when # $x is an exact power of 10, in which case $n is 1 too big. my $n = $c -> _len($x); # See if $x is an exact power of 10, in which case all but the most # significan chunks are 0, and the most significant chunk is a power of 10. my $is_pow10 = 1; for my $i (0 .. $#$x - 1) { last unless $is_pow10 = $x->[$i] == 0; } $is_pow10 &&= $x->[-1] == 10**int(0.5 + log($x->[-1]) / log(10)); $n-- if $is_pow10; my $xtmp = $c ->_new($n); @$x = @$xtmp; return wantarray ? ($x, 1) : $x if $is_pow10; # result is exact return wantarray ? ($x, 0) : $x; # result is too small } # for debugging: use constant DEBUG => 0; my $steps = 0; sub steps { $steps }; sub _sqrt { # square-root of $x in-place my ($c, $x) = @_; if (@$x == 1) { # fits into one Perl scalar, so result can be computed directly $x->[0] = int(sqrt($x->[0])); return $x; } # Create an initial guess for the square root. my $s; if (@$x % 2) { $s = [ (0) x ((@$x - 1) / 2), int(sqrt($x->[-1])) ]; } else { $s = [ (0) x ((@$x - 2) / 2), int(sqrt($x->[-2] + $x->[-1] * $BASE)) ]; } # Newton's method for the square root of y: # # x(n) * x(n) - y # x(n+1) = x(n) - ----------------- # 2 * x(n) my $cmp; while (1) { my $sq = $c -> _mul($c -> _copy($s), $s); $cmp = $c -> _acmp($sq, $x); # If x(n)*x(n) > y, compute # # x(n) * x(n) - y # x(n+1) = x(n) - ----------------- # 2 * x(n) if ($cmp > 0) { my $num = $c -> _sub($c -> _copy($sq), $x); my $den = $c -> _mul($c -> _two(), $s); my $delta = $c -> _div($num, $den); last if $c -> _is_zero($delta); $s = $c -> _sub($s, $delta); } # If x(n)*x(n) < y, compute # # y - x(n) * x(n) # x(n+1) = x(n) + ----------------- # 2 * x(n) elsif ($cmp < 0) { my $num = $c -> _sub($c -> _copy($x), $sq); my $den = $c -> _mul($c -> _two(), $s); my $delta = $c -> _div($num, $den); last if $c -> _is_zero($delta); $s = $c -> _add($s, $delta); } # If x(n)*x(n) = y, we have the exact result. else { last; } } $s = $c -> _dec($s) if $cmp > 0; # never overshoot @$x = @$s; return $x; } sub _root { # Take n'th root of $x in place. my ($c, $x, $n) = @_; # Small numbers. if (@$x == 1) { return $x if $x -> [0] == 0 || $x -> [0] == 1; if (@$n == 1) { # Result can be computed directly. Adjust initial result for # numerical errors, e.g., int(1000**(1/3)) is 2, not 3. my $y = int($x->[0] ** (1 / $n->[0])); my $yp1 = $y + 1; $y = $yp1 if $yp1 ** $n->[0] == $x->[0]; $x->[0] = $y; return $x; } } # If x <= n, the result is always (truncated to) 1. if ((@$x > 1 || $x -> [0] > 0) && # if x is non-zero ... $c -> _acmp($x, $n) <= 0) # ... and x <= n { my $one = $c -> _one(); @$x = @$one; return $x; } # If $n is a power of two, take sqrt($x) repeatedly, e.g., root($x, 4) = # sqrt(sqrt($x)), root($x, 8) = sqrt(sqrt(sqrt($x))). my $b = $c -> _as_bin($n); if ($b =~ /0b1(0+)$/) { my $count = length($1); # 0b100 => len('00') => 2 my $cnt = $count; # counter for loop unshift @$x, 0; # add one element, together with one # more below in the loop this makes 2 while ($cnt-- > 0) { # 'Inflate' $x by adding one element, basically computing # $x * $BASE * $BASE. This gives us more $BASE_LEN digits for # result since len(sqrt($X)) approx == len($x) / 2. unshift @$x, 0; # Calculate sqrt($x), $x is now one element to big, again. In the # next round we make that two, again. $c -> _sqrt($x); } # $x is now one element too big, so truncate result by removing it. shift @$x; return $x; } my $DEBUG = 0; # Now the general case. This works by finding an initial guess. If this # guess is incorrect, a relatively small delta is chosen. This delta is # used to find a lower and upper limit for the correct value. The delta is # doubled in each iteration. When a lower and upper limit is found, # bisection is applied to narrow down the region until we have the correct # value. # Split x into mantissa and exponent in base 10, so that # # x = xm * 10^xe, where 0 < xm < 1 and xe is an integer my $x_str = $c -> _str($x); my $xm = "." . $x_str; my $xe = length($x_str); # From this we compute the base 10 logarithm of x # # log_10(x) = log_10(xm) + log_10(xe^10) # = log(xm)/log(10) + xe # # and then the base 10 logarithm of y, where y = x^(1/n) # # log_10(y) = log_10(x)/n my $log10x = log($xm) / log(10) + $xe; my $log10y = $log10x / $c -> _num($n); # And from this we compute ym and ye, the mantissa and exponent (in # base 10) of y, where 1 < ym <= 10 and ye is an integer. my $ye = int $log10y; my $ym = 10 ** ($log10y - $ye); # Finally, we scale the mantissa and exponent to incraese the integer # part of ym, before building the string representing our guess of y. if ($DEBUG) { print "\n"; print "xm = $xm\n"; print "xe = $xe\n"; print "log10x = $log10x\n"; print "log10y = $log10y\n"; print "ym = $ym\n"; print "ye = $ye\n"; print "\n"; } my $d = $ye < 15 ? $ye : 15; $ym *= 10 ** $d; $ye -= $d; my $y_str = sprintf('%.0f', $ym) . "0" x $ye; my $y = $c -> _new($y_str); if ($DEBUG) { print "ym = $ym\n"; print "ye = $ye\n"; print "\n"; print "y_str = $y_str (initial guess)\n"; print "\n"; } # See if our guess y is correct. my $trial = $c -> _pow($c -> _copy($y), $n); my $acmp = $c -> _acmp($trial, $x); if ($acmp == 0) { @$x = @$y; return $x; } # Find a lower and upper limit for the correct value of y. Start off with a # delta value that is approximately the size of the accuracy of the guess. my $lower; my $upper; my $delta = $c -> _new("1" . ("0" x $ye)); my $two = $c -> _two(); if ($acmp < 0) { $lower = $y; while ($acmp < 0) { $upper = $c -> _add($c -> _copy($lower), $delta); if ($DEBUG) { print "lower = $lower\n"; print "upper = $upper\n"; print "delta = $delta\n"; print "\n"; } $acmp = $c -> _acmp($c -> _pow($c -> _copy($upper), $n), $x); if ($acmp == 0) { @$x = @$upper; return $x; } $delta = $c -> _mul($delta, $two); } } elsif ($acmp > 0) { $upper = $y; while ($acmp > 0) { if ($c -> _acmp($upper, $delta) <= 0) { $lower = $c -> _zero(); last; } $lower = $c -> _sub($c -> _copy($upper), $delta); if ($DEBUG) { print "lower = $lower\n"; print "upper = $upper\n"; print "delta = $delta\n"; print "\n"; } $acmp = $c -> _acmp($c -> _pow($c -> _copy($lower), $n), $x); if ($acmp == 0) { @$x = @$lower; return $x; } $delta = $c -> _mul($delta, $two); } } # Use bisection to narrow down the interval. my $one = $c -> _one(); { $delta = $c -> _sub($c -> _copy($upper), $lower); if ($c -> _acmp($delta, $one) <= 0) { @$x = @$lower; return $x; } if ($DEBUG) { print "lower = $lower\n"; print "upper = $upper\n"; print "delta = $delta\n"; print "\n"; } $delta = $c -> _div($delta, $two); my $middle = $c -> _add($c -> _copy($lower), $delta); $acmp = $c -> _acmp($c -> _pow($c -> _copy($middle), $n), $x); if ($acmp < 0) { $lower = $middle; } elsif ($acmp > 0) { $upper = $middle; } else { @$x = @$middle; return $x; } redo; } $x; } ############################################################################## # binary stuff sub _and { my ($c, $x, $y) = @_; # the shortcut makes equal, large numbers _really_ fast, and makes only a # very small performance drop for small numbers (e.g. something with less # than 32 bit) Since we optimize for large numbers, this is enabled. return $x if $c->_acmp($x, $y) == 0; # shortcut my $m = $c->_one(); my ($xr, $yr); my $mask = $AND_MASK; my $x1 = $c->_copy($x); my $y1 = $c->_copy($y); my $z = $c->_zero(); use integer; until ($c->_is_zero($x1) || $c->_is_zero($y1)) { ($x1, $xr) = $c->_div($x1, $mask); ($y1, $yr) = $c->_div($y1, $mask); $c->_add($z, $c->_mul([ 0 + $xr->[0] & 0 + $yr->[0] ], $m)); $c->_mul($m, $mask); } @$x = @$z; return $x; } sub _xor { my ($c, $x, $y) = @_; return $c->_zero() if $c->_acmp($x, $y) == 0; # shortcut (see -and) my $m = $c->_one(); my ($xr, $yr); my $mask = $XOR_MASK; my $x1 = $c->_copy($x); my $y1 = $c->_copy($y); # make copy my $z = $c->_zero(); use integer; until ($c->_is_zero($x1) || $c->_is_zero($y1)) { ($x1, $xr) = $c->_div($x1, $mask); ($y1, $yr) = $c->_div($y1, $mask); # make ints() from $xr, $yr (see _and()) #$b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; } #$b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; } #$c->_add($x, $c->_mul($c->_new($xrr ^ $yrr)), $m) ); $c->_add($z, $c->_mul([ 0 + $xr->[0] ^ 0 + $yr->[0] ], $m)); $c->_mul($m, $mask); } # the loop stops when the shorter of the two numbers is exhausted # the remainder of the longer one will survive bit-by-bit, so we simple # multiply-add it in $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1); $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1); @$x = @$z; return $x; } sub _or { my ($c, $x, $y) = @_; return $x if $c->_acmp($x, $y) == 0; # shortcut (see _and) my $m = $c->_one(); my ($xr, $yr); my $mask = $OR_MASK; my $x1 = $c->_copy($x); my $y1 = $c->_copy($y); # make copy my $z = $c->_zero(); use integer; until ($c->_is_zero($x1) || $c->_is_zero($y1)) { ($x1, $xr) = $c->_div($x1, $mask); ($y1, $yr) = $c->_div($y1, $mask); # make ints() from $xr, $yr (see _and()) # $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; } # $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; } # $c->_add($x, $c->_mul(_new( $c, ($xrr | $yrr) ), $m) ); $c->_add($z, $c->_mul([ 0 + $xr->[0] | 0 + $yr->[0] ], $m)); $c->_mul($m, $mask); } # the loop stops when the shorter of the two numbers is exhausted # the remainder of the longer one will survive bit-by-bit, so we simple # multiply-add it in $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1); $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1); @$x = @$z; return $x; } sub _as_hex { # convert a decimal number to hex (ref to array, return ref to string) my ($c, $x) = @_; return "0x0" if @$x == 1 && $x->[0] == 0; my $x1 = $c->_copy($x); my $x10000 = [ 0x10000 ]; my $es = ''; my $xr; until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero() ($x1, $xr) = $c->_div($x1, $x10000); $es = sprintf('%04x', $xr->[0]) . $es; } #$es = reverse $es; $es =~ s/^0*/0x/; return $es; } sub _as_bin { # convert a decimal number to bin (ref to array, return ref to string) my ($c, $x) = @_; return "0b0" if @$x == 1 && $x->[0] == 0; my $x1 = $c->_copy($x); my $x10000 = [ 0x10000 ]; my $es = ''; my $xr; until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero() ($x1, $xr) = $c->_div($x1, $x10000); $es = sprintf('%016b', $xr->[0]) . $es; } $es =~ s/^0*/0b/; return $es; } sub _as_oct { # convert a decimal number to octal (ref to array, return ref to string) my ($c, $x) = @_; return "00" if @$x == 1 && $x->[0] == 0; my $x1 = $c->_copy($x); my $x1000 = [ 1 << 15 ]; # 15 bits = 32768 = 0100000 my $es = ''; my $xr; until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero() ($x1, $xr) = $c->_div($x1, $x1000); $es = sprintf("%05o", $xr->[0]) . $es; } $es =~ s/^0*/0/; # excactly one leading zero return $es; } sub _from_oct { # convert a octal number to decimal (string, return ref to array) my ($c, $os) = @_; my $m = $c->_new(1 << 30); # 30 bits at a time (<32 bits!) my $d = 10; # 10 octal digits at a time my $mul = $c->_one(); my $x = $c->_zero(); my $len = int((length($os) - 1) / $d); # $d digit parts, w/o the '0' my $val; my $i = -$d; while ($len >= 0) { $val = substr($os, $i, $d); # get oct digits $val = CORE::oct($val); $i -= $d; $len --; my $adder = $c -> _new($val); $c->_add($x, $c->_mul($adder, $mul)) if $val != 0; $c->_mul($mul, $m) if $len >= 0; # skip last mul } $x; } sub _from_hex { # convert a hex number to decimal (string, return ref to array) my ($c, $hs) = @_; my $m = $c->_new(0x10000000); # 28 bit at a time (<32 bit!) my $d = 7; # 7 hexadecimal digits at a time my $mul = $c->_one(); my $x = $c->_zero(); my $len = int((length($hs) - 2) / $d); # $d digit parts, w/o the '0x' my $val; my $i = -$d; while ($len >= 0) { $val = substr($hs, $i, $d); # get hex digits $val =~ s/^0x// if $len == 0; # for last part only because $val = CORE::hex($val); # hex does not like wrong chars $i -= $d; $len --; my $adder = $c->_new($val); # if the resulting number was to big to fit into one element, create a # two-element version (bug found by Mark Lakata - Thanx!) if (CORE::length($val) > $BASE_LEN) { $adder = $c->_new($val); } $c->_add($x, $c->_mul($adder, $mul)) if $val != 0; $c->_mul($mul, $m) if $len >= 0; # skip last mul } $x; } sub _from_bin { # convert a hex number to decimal (string, return ref to array) my ($c, $bs) = @_; # instead of converting X (8) bit at a time, it is faster to "convert" the # number to hex, and then call _from_hex. my $hs = $bs; $hs =~ s/^[+-]?0b//; # remove sign and 0b my $l = length($hs); # bits $hs = '0' x (8 - ($l % 8)) . $hs if ($l % 8) != 0; # padd left side w/ 0 my $h = '0x' . unpack('H*', pack ('B*', $hs)); # repack as hex $c->_from_hex($h); } ############################################################################## # special modulus functions sub _modinv { # modular multiplicative inverse my ($c, $x, $y) = @_; # modulo zero if ($c->_is_zero($y)) { return; } # modulo one if ($c->_is_one($y)) { return $c->_zero(), '+'; } my $u = $c->_zero(); my $v = $c->_one(); my $a = $c->_copy($y); my $b = $c->_copy($x); # Euclid's Algorithm for bgcd(), only that we calc bgcd() ($a) and the result # ($u) at the same time. See comments in BigInt for why this works. my $q; my $sign = 1; { ($a, $q, $b) = ($b, $c->_div($a, $b)); # step 1 last if $c->_is_zero($b); my $t = $c->_add( # step 2: $c->_mul($c->_copy($v), $q), # t = v * q $u); # + u $u = $v; # u = v $v = $t; # v = t $sign = -$sign; redo; } # if the gcd is not 1, then return NaN return unless $c->_is_one($a); ($v, $sign == 1 ? '+' : '-'); } sub _modpow { # modulus of power ($x ** $y) % $z my ($c, $num, $exp, $mod) = @_; # a^b (mod 1) = 0 for all a and b if ($c->_is_one($mod)) { @$num = 0; return $num; } # 0^a (mod m) = 0 if m != 0, a != 0 # 0^0 (mod m) = 1 if m != 0 if ($c->_is_zero($num)) { if ($c->_is_zero($exp)) { @$num = 1; } else { @$num = 0; } return $num; } # We could do the following, but it doesn't actually save any time. The # _copy() is needed in case $num and $mod are the same object. #$num = $c->_mod($c->_copy($num), $mod); my $acc = $c->_copy($num); my $t = $c->_one(); my $expbin = $c->_to_bin($exp); my $len = length($expbin); while ($len--) { if (substr($expbin, $len, 1) eq '1') { # if odd $t = $c->_mul($t, $acc); $t = $c->_mod($t, $mod); } $acc = $c->_mul($acc, $acc); $acc = $c->_mod($acc, $mod); } @$num = @$t; $num; } sub _gcd { # Greatest common divisor. my ($c, $x, $y) = @_; # gcd(0, 0) = 0 # gcd(0, a) = a, if a != 0 if (@$x == 1 && $x->[0] == 0) { if (@$y == 1 && $y->[0] == 0) { @$x = 0; } else { @$x = @$y; } return $x; } # Until $y is zero ... until (@$y == 1 && $y->[0] == 0) { # Compute remainder. $c->_mod($x, $y); # Swap $x and $y. my $tmp = $c->_copy($x); @$x = @$y; $y = $tmp; # no deref here; that would modify input $y } return $x; } 1; =pod =head1 NAME Math::BigInt::Calc - pure Perl module to support Math::BigInt =head1 SYNOPSIS # to use it with Math::BigInt use Math::BigInt lib => 'Calc'; # to use it with Math::BigFloat use Math::BigFloat lib => 'Calc'; # to use it with Math::BigRat use Math::BigRat lib => 'Calc'; # explicitly set base length and whether to "use integer" use Math::BigInt::Calc base_len => 4, use_int => 1; use Math::BigInt lib => 'Calc'; =head1 DESCRIPTION Math::BigInt::Calc inherits from Math::BigInt::Lib. In this library, the numbers are represented interenally in base B = 10**N, where N is the largest possible integer that does not cause overflow in the intermediate computations. The base B elements are stored in an array, with the least significant element stored in array element zero. There are no leading zero elements, except a single zero element when the number is zero. For instance, if B = 10000, the number 1234567890 is represented internally as [7890, 3456, 12]. =head1 OPTIONS When the module is loaded, it computes the maximum exponent, i.e., power of 10, that can be used with and without "use integer" in the computations. The default is to use this maximum exponent. If the combination of the 'base_len' value and the 'use_int' value exceeds the maximum value, an error is thrown. =over 4 =item base_len The base length can be specified explicitly with the 'base_len' option. The value must be a positive integer. use Math::BigInt::Calc base_len => 4; # use 10000 as internal base =item use_int This option is used to specify whether "use integer" should be used in the internal computations. The value is interpreted as a boolean value, so use 0 or "" for false and anything else for true. If the 'base_len' is not specified together with 'use_int', the current value for the base length is used. use Math::BigInt::Calc use_int => 1; # use "use integer" internally =back =head1 METHODS This overview constains only the methods that are specific to C. For the other methods, see L. =over 4 =item _base_len() Specify the desired base length and whether to enable "use integer" in the computations. Math::BigInt::Calc -> _base_len($base_len, $use_int); Note that it is better to specify the base length and whether to use integers as options when the module is loaded, for example like this use Math::BigInt::Calc base_len => 6, use_int => 1; =back =head1 SEE ALSO L for a description of the API. Alternative libraries L, L, L, L, and L. Some of the modules that use these libraries L, L, and L. =cut Math-BigInt-2.005003/lib/Math/BigInt/Lib.pm0000644403072340010010000023554214776760255017651 0ustar OSPJADomain Userspackage Math::BigInt::Lib; use 5.006001; use strict; use warnings; our $VERSION = '2.005003'; $VERSION =~ tr/_//d; use Carp; use overload # overload key: with_assign '+' => sub { my $class = ref $_[0]; my $x = $class -> _copy($_[0]); my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); return $class -> _add($x, $y); }, '-' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _sub($x, $y); }, '*' => sub { my $class = ref $_[0]; my $x = $class -> _copy($_[0]); my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); return $class -> _mul($x, $y); }, '/' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _div($x, $y); }, '%' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _mod($x, $y); }, '**' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _pow($x, $y); }, '<<' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $class -> _num($_[0]); $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $_[0]; $y = ref($_[1]) ? $class -> _num($_[1]) : $_[1]; } return $class -> _lsft($x, $y); }, '>>' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _rsft($x, $y); }, # overload key: num_comparison '<' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _acmp($x, $y) < 0; }, '<=' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _acmp($x, $y) <= 0; }, '>' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _acmp($x, $y) > 0; }, '>=' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _acmp($x, $y) >= 0; }, '==' => sub { my $class = ref $_[0]; my $x = $class -> _copy($_[0]); my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); return $class -> _acmp($x, $y) == 0; }, '!=' => sub { my $class = ref $_[0]; my $x = $class -> _copy($_[0]); my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); return $class -> _acmp($x, $y) != 0; }, # overload key: 3way_comparison '<=>' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _acmp($x, $y); }, # overload key: binary '&' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _and($x, $y); }, '|' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _or($x, $y); }, '^' => sub { my $class = ref $_[0]; my ($x, $y); if ($_[2]) { # if swapped $y = $_[0]; $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } else { $x = $class -> _copy($_[0]); $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]); } return $class -> _xor($x, $y); }, # overload key: func 'abs' => sub { $_[0] }, 'sqrt' => sub { my $class = ref $_[0]; return $class -> _sqrt($class -> _copy($_[0])); }, 'int' => sub { $_[0] }, # overload key: conversion 'bool' => sub { ref($_[0]) -> _is_zero($_[0]) ? '' : 1; }, '""' => sub { ref($_[0]) -> _str($_[0]); }, '0+' => sub { ref($_[0]) -> _num($_[0]); }, '=' => sub { ref($_[0]) -> _copy($_[0]); }, ; sub _new { croak "@{[(caller 0)[3]]} method not implemented"; } sub _zero { my $class = shift; return $class -> _new("0"); } sub _one { my $class = shift; return $class -> _new("1"); } sub _two { my $class = shift; return $class -> _new("2"); } sub _ten { my $class = shift; return $class -> _new("10"); } sub _1ex { my ($class, $exp) = @_; $exp = $class -> _num($exp) if ref($exp); return $class -> _new("1" . ("0" x $exp)); } sub _copy { my ($class, $x) = @_; return $class -> _new($class -> _str($x)); } # catch and throw away sub import { } ############################################################################## # convert back to string and number sub _str { # Convert number from internal base 1eN format to string format. Internal # format is always normalized, i.e., no leading zeros. croak "@{[(caller 0)[3]]} method not implemented"; } sub _num { my ($class, $x) = @_; 0 + $class -> _str($x); } ############################################################################## # actual math code sub _add { croak "@{[(caller 0)[3]]} method not implemented"; } sub _sub { croak "@{[(caller 0)[3]]} method not implemented"; } sub _mul { my ($class, $x, $y) = @_; my $sum = $class -> _zero(); my $i = $class -> _zero(); while ($class -> _acmp($i, $y) < 0) { $sum = $class -> _add($sum, $x); $i = $class -> _inc($i); } return $sum; } sub _div { my ($class, $x, $y) = @_; croak "@{[(caller 0)[3]]} requires non-zero divisor" if $class -> _is_zero($y); my $r = $class -> _copy($x); my $q = $class -> _zero(); while ($class -> _acmp($r, $y) >= 0) { $q = $class -> _inc($q); $r = $class -> _sub($r, $y); } return $q, $r if wantarray; return $q; } sub _inc { my ($class, $x) = @_; $class -> _add($x, $class -> _one()); } sub _dec { my ($class, $x) = @_; $class -> _sub($x, $class -> _one()); } # Signed addition. If the flag is false, $xa might be modified, but not $ya. If # the false is true, $ya might be modified, but not $xa. sub _sadd { my $class = shift; my ($xa, $xs, $ya, $ys, $flag) = @_; my ($za, $zs); # If the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8) if ($xs eq $ys) { if ($flag) { $za = $class -> _add($ya, $xa); } else { $za = $class -> _add($xa, $ya); } $zs = $class -> _is_zero($za) ? '+' : $xs; return $za, $zs; } my $acmp = $class -> _acmp($xa, $ya); # abs(x) = abs(y) if ($acmp == 0) { # x = -y or -x = y $za = $class -> _zero(); $zs = '+'; return $za, $zs; } if ($acmp > 0) { # abs(x) > abs(y) $za = $class -> _sub($xa, $ya, $flag); $zs = $xs; } else { # abs(x) < abs(y) $za = $class -> _sub($ya, $xa, !$flag); $zs = $ys; } return $za, $zs; } # Signed subtraction. If the flag is false, $xa might be modified, but not $ya. # If the false is true, $ya might be modified, but not $xa. sub _ssub { my $class = shift; my ($xa, $xs, $ya, $ys, $flag) = @_; # Swap sign of second operand and let _sadd() do the job. $ys = $ys eq '+' ? '-' : '+'; $class -> _sadd($xa, $xs, $ya, $ys, $flag); } ############################################################################## # testing sub _acmp { # Compare two (absolute) values. Return -1, 0, or 1. my ($class, $x, $y) = @_; my $xstr = $class -> _str($x); my $ystr = $class -> _str($y); length($xstr) <=> length($ystr) || $xstr cmp $ystr; } sub _scmp { # Compare two signed values. Return -1, 0, or 1. my ($class, $xa, $xs, $ya, $ys) = @_; if ($xs eq '+') { if ($ys eq '+') { return $class -> _acmp($xa, $ya); } else { return 1; } } else { if ($ys eq '+') { return -1; } else { return $class -> _acmp($ya, $xa); } } } sub _len { my ($class, $x) = @_; CORE::length($class -> _str($x)); } sub _alen { my ($class, $x) = @_; $class -> _len($x); } sub _digit { my ($class, $x, $n) = @_; substr($class ->_str($x), -($n+1), 1); } sub _digitsum { my ($class, $x) = @_; my $len = $class -> _len($x); my $sum = $class -> _zero(); for (my $i = 0 ; $i < $len ; ++$i) { my $digit = $class -> _digit($x, $i); $digit = $class -> _new($digit); $sum = $class -> _add($sum, $digit); } return $sum; } sub _zeros { my ($class, $x) = @_; my $str = $class -> _str($x); $str =~ /[^0](0*)\z/ ? CORE::length($1) : 0; } ############################################################################## # _is_* routines sub _is_zero { # return true if arg is zero my ($class, $x) = @_; $class -> _str($x) == 0; } sub _is_even { # return true if arg is even my ($class, $x) = @_; substr($class -> _str($x), -1, 1) % 2 == 0; } sub _is_odd { # return true if arg is odd my ($class, $x) = @_; substr($class -> _str($x), -1, 1) % 2 != 0; } sub _is_one { # return true if arg is one my ($class, $x) = @_; $class -> _str($x) == 1; } sub _is_two { # return true if arg is two my ($class, $x) = @_; $class -> _str($x) == 2; } sub _is_ten { # return true if arg is ten my ($class, $x) = @_; $class -> _str($x) == 10; } ############################################################################### # check routine to test internal state for corruptions sub _check { # used by the test suite my ($class, $x) = @_; return "Input is undefined" unless defined $x; return "$x is not a reference" unless ref($x); return 0; } ############################################################################### sub _mod { # modulus my ($class, $x, $y) = @_; croak "@{[(caller 0)[3]]} requires non-zero second operand" if $class -> _is_zero($y); if ($class -> can('_div')) { $x = $class -> _copy($x); my ($q, $r) = $class -> _div($x, $y); return $r; } else { my $r = $class -> _copy($x); while ($class -> _acmp($r, $y) >= 0) { $r = $class -> _sub($r, $y); } return $r; } } ############################################################################## # shifts sub _rsft { my ($class, $x, $n, $b) = @_; $b = $class -> _new($b) unless ref $b; return scalar $class -> _div($x, $class -> _pow($class -> _copy($b), $n)); } sub _lsft { my ($class, $x, $n, $b) = @_; $b = $class -> _new($b) unless ref $b; return $class -> _mul($x, $class -> _pow($class -> _copy($b), $n)); } sub _pow { # power of $x to $y my ($class, $x, $y) = @_; if ($class -> _is_zero($y)) { return $class -> _one(); # y == 0 => x => 1 } if (($class -> _is_one($x)) || # x == 1 ($class -> _is_one($y))) # or y == 1 { return $x; } if ($class -> _is_zero($x)) { return $class -> _zero(); # 0 ** y => 0 (if not y <= 0) } my $pow2 = $class -> _one(); my $y_bin = $class -> _as_bin($y); $y_bin =~ s/^0b//; my $len = length($y_bin); while (--$len > 0) { $pow2 = $class -> _mul($pow2, $x) if substr($y_bin, $len, 1) eq '1'; $x = $class -> _mul($x, $x); } $x = $class -> _mul($x, $pow2); return $x; } sub _nok { # Return binomial coefficient (n over k). my ($class, $n, $k) = @_; # If k > n/2, or, equivalently, 2*k > n, compute nok(n, k) as # nok(n, n-k), to minimize the number if iterations in the loop. { my $twok = $class -> _mul($class -> _two(), $class -> _copy($k)); if ($class -> _acmp($twok, $n) > 0) { $k = $class -> _sub($class -> _copy($n), $k); } } # Example: # # / 7 \ 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 # | | = --------- = --------------- = --------- = ((5 * 6) / 2 * 7) / 3 # \ 3 / (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 # # Equivalently, _nok(11, 5) is computed as # # (((((((7 * 8) / 2) * 9) / 3) * 10) / 4) * 11) / 5 if ($class -> _is_zero($k)) { return $class -> _one(); } # Make a copy of the original n, in case the subclass modifies n in-place. my $n_orig = $class -> _copy($n); # n = 5, f = 6, d = 2 (cf. example above) $n = $class -> _sub($n, $k); $n = $class -> _inc($n); my $f = $class -> _copy($n); $f = $class -> _inc($f); my $d = $class -> _two(); # while f <= n (the original n, that is) ... while ($class -> _acmp($f, $n_orig) <= 0) { $n = $class -> _mul($n, $f); $n = $class -> _div($n, $d); $f = $class -> _inc($f); $d = $class -> _inc($d); } return $n; } #sub _fac { # # factorial # my ($class, $x) = @_; # # my $two = $class -> _two(); # # if ($class -> _acmp($x, $two) < 0) { # return $class -> _one(); # } # # my $i = $class -> _copy($x); # while ($class -> _acmp($i, $two) > 0) { # $i = $class -> _dec($i); # $x = $class -> _mul($x, $i); # } # # return $x; #} sub _fac { # factorial my ($class, $x) = @_; # This is an implementation of the split recursive algorithm. See # http://www.luschny.de/math/factorial/csharp/FactorialSplit.cs.html my $p = $class -> _one(); my $r = $class -> _one(); my $two = $class -> _two(); my ($log2n) = $class -> _log_int($class -> _copy($x), $two); my $h = $class -> _zero(); my $shift = $class -> _zero(); my $k = $class -> _one(); while ($class -> _acmp($h, $x)) { $shift = $class -> _add($shift, $h); $h = $class -> _rsft($class -> _copy($x), $log2n, $two); $log2n = $class -> _dec($log2n) if !$class -> _is_zero($log2n); my $high = $class -> _copy($h); $high = $class -> _dec($high) if $class -> _is_even($h); while ($class -> _acmp($k, $high)) { $k = $class -> _add($k, $two); $p = $class -> _mul($p, $k); } $r = $class -> _mul($r, $p); } return $class -> _lsft($r, $shift, $two); } sub _dfac { # double factorial my ($class, $x) = @_; my $two = $class -> _two(); if ($class -> _acmp($x, $two) < 0) { return $class -> _one(); } my $i = $class -> _copy($x); while ($class -> _acmp($i, $two) > 0) { $i = $class -> _sub($i, $two); $x = $class -> _mul($x, $i); } return $x; } sub _log_int { # calculate integer log of $x to base $base # calculate integer log of $x to base $base # ref to array, ref to array - return ref to array my ($class, $x, $base) = @_; # X == 0 => NaN return if $class -> _is_zero($x); $base = $class -> _new(2) unless defined($base); $base = $class -> _new($base) unless ref($base); # BASE 0 or 1 => NaN return if $class -> _is_zero($base) || $class -> _is_one($base); # X == 1 => 0 (is exact) if ($class -> _is_one($x)) { return $class -> _zero(), 1 if wantarray; return $class -> _zero(); } my $cmp = $class -> _acmp($x, $base); # X == BASE => 1 (is exact) if ($cmp == 0) { return $class -> _one(), 1 if wantarray; return $class -> _one(); } # 1 < X < BASE => 0 (is truncated) if ($cmp < 0) { return $class -> _zero(), 0 if wantarray; return $class -> _zero(); } my $y; # log(x) / log(b) = log(xm * 10^xe) / log(bm * 10^be) # = (log(xm) + xe*(log(10))) / (log(bm) + be*log(10)) { my $x_str = $class -> _str($x); my $b_str = $class -> _str($base); my $xm = "." . $x_str; my $bm = "." . $b_str; my $xe = length($x_str); my $be = length($b_str); my $log10 = log(10); my $guess = int((log($xm) + $xe * $log10) / (log($bm) + $be * $log10)); $y = $class -> _new($guess); } my $trial = $class -> _pow($class -> _copy($base), $y); my $acmp = $class -> _acmp($trial, $x); # Too small? while ($acmp < 0) { $trial = $class -> _mul($trial, $base); $y = $class -> _inc($y); $acmp = $class -> _acmp($trial, $x); } # Too big? while ($acmp > 0) { $trial = $class -> _div($trial, $base); $y = $class -> _dec($y); $acmp = $class -> _acmp($trial, $x); } return wantarray ? ($y, 1) : $y if $acmp == 0; # result is exact return wantarray ? ($y, 0) : $y; # result is too small } sub _ilog2 { my ($class, $x) = @_; return if $class -> _is_zero($x); my $str = $class -> _to_hex($x); # First do the bits in all but the most significant hex digit. my $y = $class -> _new(length($str) - 1); $y = $class -> _mul($y, $class -> _new(4)); # Now add the number of bits in the most significant hex digit. my $n = int log(hex(substr($str, 0, 1))) / log(2); $y = $class -> _add($y, $class -> _new($n)); return $y unless wantarray; my $pow2 = $class -> _lsft($class -> _one(), $y, 2); my $is_exact = $class -> _acmp($x, $pow2) == 0 ? 1 : 0; return $y, $is_exact; } sub _ilog10 { my ($class, $x) = @_; return if $class -> _is_zero($x); my $str = $class -> _str($x); my $len = length($str); my $y = $class -> _new($len - 1); return $y unless wantarray; #my $pow10 = $class -> _1ex($y); #my $is_exact = $class -> _acmp($x, $pow10) ? 1 : 0; my $is_exact = $str =~ /^10*$/ ? 1 : 0; return $y, $is_exact; } sub _clog2 { my ($class, $x) = @_; return if $class -> _is_zero($x); my $str = $class -> _to_hex($x); # First do the bits in all but the most significant hex digit. my $y = $class -> _new(length($str) - 1); $y = $class -> _mul($y, $class -> _new(4)); # Now add the number of bits in the most significant hex digit. my $n = int log(hex(substr($str, 0, 1))) / log(2); $y = $class -> _add($y, $class -> _new($n)); # $y is now 1 too small unless $y is an exact power of 2. my $pow2 = $class -> _lsft($class -> _one(), $y, 2); my $is_exact = $class -> _acmp($x, $pow2) == 0 ? 1 : 0; $y = $class -> _inc($y) if $is_exact == 0; return $y, $is_exact if wantarray; return $y; } sub _clog10 { my ($class, $x) = @_; return if $class -> _is_zero($x); my $str = $class -> _str($x); my $len = length($str); if ($str =~ /^10*$/) { my $y = $class -> _new($len - 1); return $y, 1 if wantarray; return $y; } my $y = $class -> _new($len); return $y, 0 if wantarray; return $y; } sub _sqrt { # square-root of $y in place my ($class, $y) = @_; return $y if $class -> _is_zero($y); my $y_str = $class -> _str($y); my $y_len = length($y_str); # Compute the guess $x. my $xm; my $xe; if ($y_len % 2 == 0) { $xm = sqrt("." . $y_str); $xe = $y_len / 2; $xm = sprintf "%.0f", int($xm * 1e15); $xe -= 15; } else { $xm = sqrt(".0" . $y_str); $xe = ($y_len + 1) / 2; $xm = sprintf "%.0f", int($xm * 1e16); $xe -= 16; } my $x; if ($xe < 0) { $x = substr $xm, 0, length($xm) + $xe; } else { $x = $xm . ("0" x $xe); } $x = $class -> _new($x); # Newton's method for computing square root of y # # x(i+1) = x(i) - f(x(i)) / f'(x(i)) # = x(i) - (x(i)^2 - y) / (2 * x(i)) # use if x(i)^2 > y # = x(i) + (y - x(i)^2) / (2 * x(i)) # use if x(i)^2 < y # Determine if x, our guess, is too small, correct, or too large. my $xsq = $class -> _mul($class -> _copy($x), $x); # x(i)^2 my $acmp = $class -> _acmp($xsq, $y); # x(i)^2 <=> y # Only assign a value to this variable if we will be using it. my $two; $two = $class -> _two() if $acmp != 0; # If x is too small, do one iteration of Newton's method. Since the # function f(x) = x^2 - y is concave and monotonically increasing, the next # guess for x will either be correct or too large. if ($acmp < 0) { # x(i+1) = x(i) + (y - x(i)^2) / (2 * x(i)) my $numer = $class -> _sub($class -> _copy($y), $xsq); # y - x(i)^2 my $denom = $class -> _mul($class -> _copy($two), $x); # 2 * x(i) my $delta = $class -> _div($numer, $denom); unless ($class -> _is_zero($delta)) { $x = $class -> _add($x, $delta); $xsq = $class -> _mul($class -> _copy($x), $x); # x(i)^2 $acmp = $class -> _acmp($xsq, $y); # x(i)^2 <=> y } } # If our guess for x is too large, apply Newton's method repeatedly until # we either have got the correct value, or the delta is zero. while ($acmp > 0) { # x(i+1) = x(i) - (x(i)^2 - y) / (2 * x(i)) my $numer = $class -> _sub($xsq, $y); # x(i)^2 - y my $denom = $class -> _mul($class -> _copy($two), $x); # 2 * x(i) my $delta = $class -> _div($numer, $denom); last if $class -> _is_zero($delta); $x = $class -> _sub($x, $delta); $xsq = $class -> _mul($class -> _copy($x), $x); # x(i)^2 $acmp = $class -> _acmp($xsq, $y); # x(i)^2 <=> y } # When the delta is zero, our value for x might still be too large. We # require that the outout is either exact or too small (i.e., rounded down # to the nearest integer), so do a final check. while ($acmp > 0) { $x = $class -> _dec($x); $xsq = $class -> _mul($class -> _copy($x), $x); # x(i)^2 $acmp = $class -> _acmp($xsq, $y); # x(i)^2 <=> y } return $x; } sub _root { my ($class, $y, $n) = @_; return $y if $class -> _is_zero($y) || $class -> _is_one($y) || $class -> _is_one($n); # If y <= n, the result is always (truncated to) 1. return $class -> _one() if $class -> _acmp($y, $n) <= 0; # Compute the initial guess x of y^(1/n). When n is large, Newton's method # converges slowly if the "guess" (initial value) is poor, so we need a # good guess. It the guess is too small, the next guess will be too large, # and from then on all guesses are too large. my $DEBUG = 0; # Split y into mantissa and exponent in base 10, so that # # y = xm * 10^xe, where 0 < xm < 1 and xe is an integer my $y_str = $class -> _str($y); my $ym = "." . $y_str; my $ye = length($y_str); # From this compute the approximate base 10 logarithm of y # # log_10(y) = log_10(ym) + log_10(ye^10) # = log(ym)/log(10) + ye my $log10y = log($ym) / log(10) + $ye; # And from this compute the approximate base 10 logarithm of x, where # x = y^(1/n) # # log_10(x) = log_10(y)/n my $log10x = $log10y / $class -> _num($n); # From this compute xm and xe, the mantissa and exponent (in base 10) of x, # where 1 < xm <= 10 and xe is an integer. my $xe = int $log10x; my $xm = 10 ** ($log10x - $xe); # Scale the mantissa and exponent to increase the integer part of ym, which # gives us better accuracy. if ($DEBUG) { print "\n"; print "y_str = $y_str\n"; print "ym = $ym\n"; print "ye = $ye\n"; print "log10y = $log10y\n"; print "log10x = $log10x\n"; print "xm = $xm\n"; print "xe = $xe\n"; } my $d = $xe < 15 ? $xe : 15; $xm *= 10 ** $d; $xe -= $d; if ($DEBUG) { print "\n"; print "xm = $xm\n"; print "xe = $xe\n"; } # If the mantissa is not an integer, round up to nearest integer, and then # convert the number to a string. It is important to always round up due to # how Newton's method behaves in this case. If the initial guess is too # small, the next guess will be too large, after which every succeeding # guess converges the correct value from above. Now, if the initial guess # is too small and n is large, the next guess will be much too large and # require a large number of iterations to get close to the solution. # Because of this, we are likely to find the solution faster if we make # sure the initial guess is not too small. my $xm_int = int($xm); my $x_str = sprintf '%.0f', $xm > $xm_int ? $xm_int + 1 : $xm_int; $x_str .= "0" x $xe; my $x = $class -> _new($x_str); if ($DEBUG) { print "xm = $xm\n"; print "xe = $xe\n"; print "\n"; print "x_str = $x_str (initial guess)\n"; print "\n"; } # Use Newton's method for computing n'th root of y. # # x(i+1) = x(i) - f(x(i)) / f'(x(i)) # = x(i) - (x(i)^n - y) / (n * x(i)^(n-1)) # use if x(i)^n > y # = x(i) + (y - x(i)^n) / (n * x(i)^(n-1)) # use if x(i)^n < y # Determine if x, our guess, is too small, correct, or too large. Rather # than computing x(i)^n and x(i)^(n-1) directly, compute x(i)^(n-1) and # then the same value multiplied by x. my $nm1 = $class -> _dec($class -> _copy($n)); # n-1 my $xpownm1 = $class -> _pow($class -> _copy($x), $nm1); # x(i)^(n-1) my $xpown = $class -> _mul($class -> _copy($xpownm1), $x); # x(i)^n my $acmp = $class -> _acmp($xpown, $y); # x(i)^n <=> y if ($DEBUG) { print "\n"; print "x = ", $class -> _str($x), "\n"; print "x^n = ", $class -> _str($xpown), "\n"; print "y = ", $class -> _str($y), "\n"; print "acmp = $acmp\n"; } # If x is too small, do one iteration of Newton's method. Since the # function f(x) = x^n - y is concave and monotonically increasing, the next # guess for x will either be correct or too large. if ($acmp < 0) { # x(i+1) = x(i) + (y - x(i)^n) / (n * x(i)^(n-1)) my $numer = $class -> _sub($class -> _copy($y), $xpown); # y - x(i)^n my $denom = $class -> _mul($class -> _copy($n), $xpownm1); # n * x(i)^(n-1) my $delta = $class -> _div($numer, $denom); if ($DEBUG) { print "\n"; print "numer = ", $class -> _str($numer), "\n"; print "denom = ", $class -> _str($denom), "\n"; print "delta = ", $class -> _str($delta), "\n"; } unless ($class -> _is_zero($delta)) { $x = $class -> _add($x, $delta); $xpownm1 = $class -> _pow($class -> _copy($x), $nm1); # x(i)^(n-1) $xpown = $class -> _mul($class -> _copy($xpownm1), $x); # x(i)^n $acmp = $class -> _acmp($xpown, $y); # x(i)^n <=> y if ($DEBUG) { print "\n"; print "x = ", $class -> _str($x), "\n"; print "x^n = ", $class -> _str($xpown), "\n"; print "y = ", $class -> _str($y), "\n"; print "acmp = $acmp\n"; } } } # If our guess for x is too large, apply Newton's method repeatedly until # we either have got the correct value, or the delta is zero. while ($acmp > 0) { # x(i+1) = x(i) - (x(i)^n - y) / (n * x(i)^(n-1)) my $numer = $class -> _sub($class -> _copy($xpown), $y); # x(i)^n - y my $denom = $class -> _mul($class -> _copy($n), $xpownm1); # n * x(i)^(n-1) if ($DEBUG) { print "numer = ", $class -> _str($numer), "\n"; print "denom = ", $class -> _str($denom), "\n"; } my $delta = $class -> _div($numer, $denom); if ($DEBUG) { print "delta = ", $class -> _str($delta), "\n"; } last if $class -> _is_zero($delta); $x = $class -> _sub($x, $delta); $xpownm1 = $class -> _pow($class -> _copy($x), $nm1); # x(i)^(n-1) $xpown = $class -> _mul($class -> _copy($xpownm1), $x); # x(i)^n $acmp = $class -> _acmp($xpown, $y); # x(i)^n <=> y if ($DEBUG) { print "\n"; print "x = ", $class -> _str($x), "\n"; print "x^n = ", $class -> _str($xpown), "\n"; print "y = ", $class -> _str($y), "\n"; print "acmp = $acmp\n"; } } # When the delta is zero, our value for x might still be too large. We # require that the outout is either exact or too small (i.e., rounded down # to the nearest integer), so do a final check. while ($acmp > 0) { $x = $class -> _dec($x); $xpown = $class -> _pow($class -> _copy($x), $n); # x(i)^n $acmp = $class -> _acmp($xpown, $y); # x(i)^n <=> y } return $x; } ############################################################################## # binary stuff sub _and { my ($class, $x, $y) = @_; return $x if $class -> _acmp($x, $y) == 0; my $m = $class -> _one(); my $mask = $class -> _new("32768"); my ($xr, $yr); # remainders after division my $xc = $class -> _copy($x); my $yc = $class -> _copy($y); my $z = $class -> _zero(); until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) { ($xc, $xr) = $class -> _div($xc, $mask); ($yc, $yr) = $class -> _div($yc, $mask); my $bits = $class -> _new($class -> _num($xr) & $class -> _num($yr)); $z = $class -> _add($z, $class -> _mul($bits, $m)); $m = $class -> _mul($m, $mask); } return $z; } sub _xor { my ($class, $x, $y) = @_; return $class -> _zero() if $class -> _acmp($x, $y) == 0; my $m = $class -> _one(); my $mask = $class -> _new("32768"); my ($xr, $yr); # remainders after division my $xc = $class -> _copy($x); my $yc = $class -> _copy($y); my $z = $class -> _zero(); until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) { ($xc, $xr) = $class -> _div($xc, $mask); ($yc, $yr) = $class -> _div($yc, $mask); my $bits = $class -> _new($class -> _num($xr) ^ $class -> _num($yr)); $z = $class -> _add($z, $class -> _mul($bits, $m)); $m = $class -> _mul($m, $mask); } # The loop above stops when the smallest of the two numbers is exhausted. # The remainder of the longer one will survive bit-by-bit, so we simple # multiply-add it in. $z = $class -> _add($z, $class -> _mul($xc, $m)) unless $class -> _is_zero($xc); $z = $class -> _add($z, $class -> _mul($yc, $m)) unless $class -> _is_zero($yc); return $z; } sub _or { my ($class, $x, $y) = @_; return $x if $class -> _acmp($x, $y) == 0; # shortcut (see _and) my $m = $class -> _one(); my $mask = $class -> _new("32768"); my ($xr, $yr); # remainders after division my $xc = $class -> _copy($x); my $yc = $class -> _copy($y); my $z = $class -> _zero(); until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) { ($xc, $xr) = $class -> _div($xc, $mask); ($yc, $yr) = $class -> _div($yc, $mask); my $bits = $class -> _new($class -> _num($xr) | $class -> _num($yr)); $z = $class -> _add($z, $class -> _mul($bits, $m)); $m = $class -> _mul($m, $mask); } # The loop above stops when the smallest of the two numbers is exhausted. # The remainder of the longer one will survive bit-by-bit, so we simple # multiply-add it in. $z = $class -> _add($z, $class -> _mul($xc, $m)) unless $class -> _is_zero($xc); $z = $class -> _add($z, $class -> _mul($yc, $m)) unless $class -> _is_zero($yc); return $z; } sub _sand { my ($class, $x, $sx, $y, $sy) = @_; return ($class -> _zero(), '+') if $class -> _is_zero($x) || $class -> _is_zero($y); my $sign = $sx eq '-' && $sy eq '-' ? '-' : '+'; my ($bx, $by); if ($sx eq '-') { # if x is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $bx $bx = $class -> _copy($x); $bx = $class -> _dec($bx); $bx = $class -> _as_hex($bx); $bx =~ s/^-?0x//; $bx =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { # if x is positive $bx = $class -> _as_hex($x); # get binary representation $bx =~ s/^-?0x//; $bx =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } if ($sy eq '-') { # if y is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $by $by = $class -> _copy($y); $by = $class -> _dec($by); $by = $class -> _as_hex($by); $by =~ s/^-?0x//; $by =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { $by = $class -> _as_hex($y); # get binary representation $by =~ s/^-?0x//; $by =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } # now we have bit-strings from X and Y, reverse them for padding $bx = reverse $bx; $by = reverse $by; # padd the shorter string my $xx = "\x00"; $xx = "\x0f" if $sx eq '-'; my $yy = "\x00"; $yy = "\x0f" if $sy eq '-'; my $diff = CORE::length($bx) - CORE::length($by); if ($diff > 0) { # if $yy eq "\x00", we can cut $bx, otherwise we need to padd $by $by .= $yy x $diff; } elsif ($diff < 0) { # if $xx eq "\x00", we can cut $by, otherwise we need to padd $bx $bx .= $xx x abs($diff); } # and the strings together my $r = $bx & $by; # and reverse the result again $bx = reverse $r; # One of $bx or $by was negative, so need to flip bits in the result. In both # cases (one or two of them negative, or both positive) we need to get the # characters back. if ($sign eq '-') { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> <0123456789abcdef>; } else { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> ; } # leading zeros will be stripped by _from_hex() $bx = '0x' . $bx; $bx = $class -> _from_hex($bx); $bx = $class -> _inc($bx) if $sign eq '-'; # avoid negative zero $sign = '+' if $class -> _is_zero($bx); return $bx, $sign; } sub _sxor { my ($class, $x, $sx, $y, $sy) = @_; return ($class -> _zero(), '+') if $class -> _is_zero($x) && $class -> _is_zero($y); my $sign = $sx ne $sy ? '-' : '+'; my ($bx, $by); if ($sx eq '-') { # if x is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $bx $bx = $class -> _copy($x); $bx = $class -> _dec($bx); $bx = $class -> _as_hex($bx); $bx =~ s/^-?0x//; $bx =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { # if x is positive $bx = $class -> _as_hex($x); # get binary representation $bx =~ s/^-?0x//; $bx =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } if ($sy eq '-') { # if y is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $by $by = $class -> _copy($y); $by = $class -> _dec($by); $by = $class -> _as_hex($by); $by =~ s/^-?0x//; $by =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { $by = $class -> _as_hex($y); # get binary representation $by =~ s/^-?0x//; $by =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } # now we have bit-strings from X and Y, reverse them for padding $bx = reverse $bx; $by = reverse $by; # padd the shorter string my $xx = "\x00"; $xx = "\x0f" if $sx eq '-'; my $yy = "\x00"; $yy = "\x0f" if $sy eq '-'; my $diff = CORE::length($bx) - CORE::length($by); if ($diff > 0) { # if $yy eq "\x00", we can cut $bx, otherwise we need to padd $by $by .= $yy x $diff; } elsif ($diff < 0) { # if $xx eq "\x00", we can cut $by, otherwise we need to padd $bx $bx .= $xx x abs($diff); } # xor the strings together my $r = $bx ^ $by; # and reverse the result again $bx = reverse $r; # One of $bx or $by was negative, so need to flip bits in the result. In both # cases (one or two of them negative, or both positive) we need to get the # characters back. if ($sign eq '-') { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> <0123456789abcdef>; } else { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> ; } # leading zeros will be stripped by _from_hex() $bx = '0x' . $bx; $bx = $class -> _from_hex($bx); $bx = $class -> _inc($bx) if $sign eq '-'; # avoid negative zero $sign = '+' if $class -> _is_zero($bx); return $bx, $sign; } sub _sor { my ($class, $x, $sx, $y, $sy) = @_; return ($class -> _zero(), '+') if $class -> _is_zero($x) && $class -> _is_zero($y); my $sign = $sx eq '-' || $sy eq '-' ? '-' : '+'; my ($bx, $by); if ($sx eq '-') { # if x is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $bx $bx = $class -> _copy($x); $bx = $class -> _dec($bx); $bx = $class -> _as_hex($bx); $bx =~ s/^-?0x//; $bx =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { # if x is positive $bx = $class -> _as_hex($x); # get binary representation $bx =~ s/^-?0x//; $bx =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } if ($sy eq '-') { # if y is negative # two's complement: inc (dec unsigned value) and flip all "bits" in $by $by = $class -> _copy($y); $by = $class -> _dec($by); $by = $class -> _as_hex($by); $by =~ s/^-?0x//; $by =~ tr<0123456789abcdef> <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } else { $by = $class -> _as_hex($y); # get binary representation $by =~ s/^-?0x//; $by =~ tr <\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00>; } # now we have bit-strings from X and Y, reverse them for padding $bx = reverse $bx; $by = reverse $by; # padd the shorter string my $xx = "\x00"; $xx = "\x0f" if $sx eq '-'; my $yy = "\x00"; $yy = "\x0f" if $sy eq '-'; my $diff = CORE::length($bx) - CORE::length($by); if ($diff > 0) { # if $yy eq "\x00", we can cut $bx, otherwise we need to padd $by $by .= $yy x $diff; } elsif ($diff < 0) { # if $xx eq "\x00", we can cut $by, otherwise we need to padd $bx $bx .= $xx x abs($diff); } # or the strings together my $r = $bx | $by; # and reverse the result again $bx = reverse $r; # One of $bx or $by was negative, so need to flip bits in the result. In both # cases (one or two of them negative, or both positive) we need to get the # characters back. if ($sign eq '-') { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> <0123456789abcdef>; } else { $bx =~ tr<\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00> ; } # leading zeros will be stripped by _from_hex() $bx = '0x' . $bx; $bx = $class -> _from_hex($bx); $bx = $class -> _inc($bx) if $sign eq '-'; # avoid negative zero $sign = '+' if $class -> _is_zero($bx); return $bx, $sign; } sub _to_bin { # convert the number to a string of binary digits without prefix my ($class, $x) = @_; my $str = ''; my $tmp = $class -> _copy($x); my $chunk = $class -> _new("16777216"); # 2^24 = 24 binary digits my $rem; until ($class -> _acmp($tmp, $chunk) < 0) { ($tmp, $rem) = $class -> _div($tmp, $chunk); $str = sprintf("%024b", $class -> _num($rem)) . $str; } unless ($class -> _is_zero($tmp)) { $str = sprintf("%b", $class -> _num($tmp)) . $str; } return length($str) ? $str : '0'; } sub _to_oct { # convert the number to a string of octal digits without prefix my ($class, $x) = @_; my $str = ''; my $tmp = $class -> _copy($x); my $chunk = $class -> _new("16777216"); # 2^24 = 8 octal digits my $rem; until ($class -> _acmp($tmp, $chunk) < 0) { ($tmp, $rem) = $class -> _div($tmp, $chunk); $str = sprintf("%08o", $class -> _num($rem)) . $str; } unless ($class -> _is_zero($tmp)) { $str = sprintf("%o", $class -> _num($tmp)) . $str; } return length($str) ? $str : '0'; } sub _to_hex { # convert the number to a string of hexadecimal digits without prefix my ($class, $x) = @_; my $str = ''; my $tmp = $class -> _copy($x); my $chunk = $class -> _new("16777216"); # 2^24 = 6 hexadecimal digits my $rem; until ($class -> _acmp($tmp, $chunk) < 0) { ($tmp, $rem) = $class -> _div($tmp, $chunk); $str = sprintf("%06x", $class -> _num($rem)) . $str; } unless ($class -> _is_zero($tmp)) { $str = sprintf("%x", $class -> _num($tmp)) . $str; } return length($str) ? $str : '0'; } sub _as_bin { # convert the number to a string of binary digits with prefix my ($class, $x) = @_; return '0b' . $class -> _to_bin($x); } sub _as_oct { # convert the number to a string of octal digits with prefix my ($class, $x) = @_; return '0' . $class -> _to_oct($x); # yes, 0 becomes "00" } sub _as_hex { # convert the number to a string of hexadecimal digits with prefix my ($class, $x) = @_; return '0x' . $class -> _to_hex($x); } sub _to_bytes { # convert the number to a string of bytes my ($class, $x) = @_; my $str = ''; my $tmp = $class -> _copy($x); my $chunk = $class -> _new("65536"); my $rem; until ($class -> _is_zero($tmp)) { ($tmp, $rem) = $class -> _div($tmp, $chunk); $str = pack('n', $class -> _num($rem)) . $str; } $str =~ s/^\0+//; return length($str) ? $str : "\x00"; } *_as_bytes = \&_to_bytes; sub _to_base { # convert the number to a string of digits in various bases my $class = shift; my $x = shift; my $base = shift; $base = $class -> _new($base) unless ref($base); my $collseq; if (@_) { $collseq = shift; croak "The collation sequence must be a non-empty string" unless defined($collseq) && length($collseq); } else { if ($class -> _acmp($base, $class -> _new("94")) <= 0) { $collseq = '0123456789' # 48 .. 57 . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90 . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122 . '!"#$%&\'()*+,-./' # 33 .. 47 . ':;<=>?@' # 58 .. 64 . '[\\]^_`' # 91 .. 96 . '{|}~'; # 123 .. 126 } else { croak "When base > 94, a collation sequence must be given"; } } my @collseq = split '', $collseq; my $str = ''; my $tmp = $class -> _copy($x); my $rem; until ($class -> _is_zero($tmp)) { ($tmp, $rem) = $class -> _div($tmp, $base); my $num = $class -> _num($rem); croak "no character to represent '$num' in collation sequence", " (collation sequence is too short)" if $num > $#collseq; my $chr = $collseq[$num]; $str = $chr . $str; } return $collseq[0] unless length $str; return $str; } sub _to_base_num { # Convert the number to an array of integers in any base. my ($class, $x, $base) = @_; # Make sure the base is an object and >= 2. $base = $class -> _new($base) unless ref($base); my $two = $class -> _two(); croak "base must be >= 2" unless $class -> _acmp($base, $two) >= 0; my $out = []; my $xcopy = $class -> _copy($x); my $rem; # Do all except the last (most significant) element. until ($class -> _acmp($xcopy, $base) < 0) { ($xcopy, $rem) = $class -> _div($xcopy, $base); unshift @$out, $rem; } # Do the last (most significant element). unless ($class -> _is_zero($xcopy)) { unshift @$out, $xcopy; } # $out is empty if $x is zero. unshift @$out, $class -> _zero() unless @$out; return $out; } sub _from_hex { # Convert a string of hexadecimal digits to a number. my ($class, $hex) = @_; $hex =~ s/^0[xX]//; # Find the largest number of hexadecimal digits that we can safely use with # 32 bit integers. There are 4 bits pr hexadecimal digit, and we use only # 31 bits to play safe. This gives us int(31 / 4) = 7. my $len = length $hex; my $rem = 1 + ($len - 1) % 7; # Do the first chunk. my $ret = $class -> _new(int hex substr $hex, 0, $rem); return $ret if $rem == $len; # Do the remaining chunks, if any. my $shift = $class -> _new(1 << (4 * 7)); for (my $offset = $rem ; $offset < $len ; $offset += 7) { my $part = int hex substr $hex, $offset, 7; $ret = $class -> _mul($ret, $shift); $ret = $class -> _add($ret, $class -> _new($part)); } return $ret; } sub _from_oct { # Convert a string of octal digits to a number. my ($class, $oct) = @_; # Find the largest number of octal digits that we can safely use with 32 # bit integers. There are 3 bits pr octal digit, and we use only 31 bits to # play safe. This gives us int(31 / 3) = 10. my $len = length $oct; my $rem = 1 + ($len - 1) % 10; # Do the first chunk. my $ret = $class -> _new(int oct substr $oct, 0, $rem); return $ret if $rem == $len; # Do the remaining chunks, if any. my $shift = $class -> _new(1 << (3 * 10)); for (my $offset = $rem ; $offset < $len ; $offset += 10) { my $part = int oct substr $oct, $offset, 10; $ret = $class -> _mul($ret, $shift); $ret = $class -> _add($ret, $class -> _new($part)); } return $ret; } sub _from_bin { # Convert a string of binary digits to a number. my ($class, $bin) = @_; $bin =~ s/^0[bB]//; # The largest number of binary digits that we can safely use with 32 bit # integers is 31. We use only 31 bits to play safe. my $len = length $bin; my $rem = 1 + ($len - 1) % 31; # Do the first chunk. my $ret = $class -> _new(int oct '0b' . substr $bin, 0, $rem); return $ret if $rem == $len; # Do the remaining chunks, if any. my $shift = $class -> _new(1 << 31); for (my $offset = $rem ; $offset < $len ; $offset += 31) { my $part = int oct '0b' . substr $bin, $offset, 31; $ret = $class -> _mul($ret, $shift); $ret = $class -> _add($ret, $class -> _new($part)); } return $ret; } sub _from_bytes { # convert string of bytes to a number my ($class, $str) = @_; my $x = $class -> _zero(); my $base = $class -> _new("256"); my $n = length($str); for (my $i = 0 ; $i < $n ; ++$i) { $x = $class -> _mul($x, $base); my $byteval = $class -> _new(unpack 'C', substr($str, $i, 1)); $x = $class -> _add($x, $byteval); } return $x; } sub _from_base { # convert a string to a decimal number my $class = shift; my $str = shift; my $base = shift; $base = $class -> _new($base) unless ref($base); my $n = length($str); my $x = $class -> _zero(); my $collseq; if (@_) { $collseq = shift(); } else { if ($class -> _acmp($base, $class -> _new("36")) <= 0) { $str = uc $str; $collseq = '0123456789' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; } elsif ($class -> _acmp($base, $class -> _new("94")) <= 0) { $collseq = '0123456789' # 48 .. 57 . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90 . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122 . '!"#$%&\'()*+,-./' # 33 .. 47 . ':;<=>?@' # 58 .. 64 . '[\\]^_`' # 91 .. 96 . '{|}~'; # 123 .. 126 } else { croak "When base > 94, a collation sequence must be given"; } $collseq = substr $collseq, 0, $class -> _num($base); } # Create a mapping from each character in the collation sequence to the # corresponding integer. Check for duplicates in the collation sequence. my @collseq = split '', $collseq; my %collseq; for my $num (0 .. $#collseq) { my $chr = $collseq[$num]; die "duplicate character '$chr' in collation sequence" if exists $collseq{$chr}; $collseq{$chr} = $num; } for (my $i = 0 ; $i < $n ; ++$i) { my $chr = substr($str, $i, 1); die "input character '$chr' does not exist in collation sequence" unless exists $collseq{$chr}; $x = $class -> _mul($x, $base); my $num = $class -> _new($collseq{$chr}); $x = $class -> _add($x, $num); } return $x; } sub _from_base_num { # Convert an array in the given base to a number. my ($class, $in, $base) = @_; # Make sure the base is an object and >= 2. $base = $class -> _new($base) unless ref($base); my $two = $class -> _two(); croak "base must be >= 2" unless $class -> _acmp($base, $two) >= 0; # @$in = map { ref($_) ? $_ : $class -> _new($_) } @$in; my $ele = $in -> [0]; $ele = $class -> _new($ele) unless ref($ele); my $x = $class -> _copy($ele); for my $i (1 .. $#$in) { $x = $class -> _mul($x, $base); $ele = $in -> [$i]; $ele = $class -> _new($ele) unless ref($ele); $x = $class -> _add($x, $ele); } return $x; } ############################################################################## # special modulus functions sub _modinv { # modular multiplicative inverse my ($class, $x, $y) = @_; # modulo zero if ($class -> _is_zero($y)) { return; } # modulo one if ($class -> _is_one($y)) { return ($class -> _zero(), '+'); } my $u = $class -> _zero(); my $v = $class -> _one(); my $a = $class -> _copy($y); my $b = $class -> _copy($x); # Euclid's Algorithm for bgcd(). my $q; my $sign = 1; { ($a, $q, $b) = ($b, $class -> _div($a, $b)); last if $class -> _is_zero($b); my $vq = $class -> _mul($class -> _copy($v), $q); my $t = $class -> _add($vq, $u); $u = $v; $v = $t; $sign = -$sign; redo; } # if the gcd is not 1, there exists no modular multiplicative inverse return unless $class -> _is_one($a); ($v, $sign == 1 ? '+' : '-'); } sub _modpow { # modulus of power ($x ** $y) % $z my ($class, $num, $exp, $mod) = @_; # a^b (mod 1) = 0 for all a and b if ($class -> _is_one($mod)) { return $class -> _zero(); } # 0^a (mod m) = 0 if m != 0, a != 0 # 0^0 (mod m) = 1 if m != 0 if ($class -> _is_zero($num)) { return $class -> _is_zero($exp) ? $class -> _one() : $class -> _zero(); } # We could do the following, but it doesn't actually save any time. The # _copy() is needed in case $num and $mod are the same object. $num = $class -> _mod($class -> _copy($num), $mod); my $acc = $class -> _copy($num); my $t = $class -> _one(); my $expbin = $class -> _to_bin($exp); my $len = length($expbin); while ($len--) { if (substr($expbin, $len, 1) eq '1') { # if odd $t = $class -> _mul($t, $acc); $t = $class -> _mod($t, $mod); } $acc = $class -> _mul($acc, $acc); $acc = $class -> _mod($acc, $mod); } return $t; } sub _gcd { # Greatest common divisor. my ($class, $x, $y) = @_; # gcd(0, 0) = 0 # gcd(0, a) = a, if a != 0 if ($class -> _acmp($x, $y) == 0) { return $class -> _copy($x); } if ($class -> _is_zero($x)) { if ($class -> _is_zero($y)) { return $class -> _zero(); } else { return $class -> _copy($y); } } else { if ($class -> _is_zero($y)) { return $class -> _copy($x); } else { # Until $y is zero ... $x = $class -> _copy($x); until ($class -> _is_zero($y)) { # Compute remainder. $x = $class -> _mod($x, $y); # Swap $x and $y. my $tmp = $x; $x = $class -> _copy($y); $y = $tmp; } return $x; } } } sub _lcm { # Least common multiple. my ($class, $x, $y) = @_; # lcm(0, x) = 0 for all x return $class -> _zero() if ($class -> _is_zero($x) || $class -> _is_zero($y)); my $gcd = $class -> _gcd($class -> _copy($x), $y); $x = $class -> _div($x, $gcd); $x = $class -> _mul($x, $y); return $x; } sub _lucas { my ($class, $n) = @_; $n = $class -> _num($n) if ref $n; # In list context, use lucas(n) = lucas(n-1) + lucas(n-2) if (wantarray) { my @y; push @y, $class -> _two(); return @y if $n == 0; push @y, $class -> _one(); return @y if $n == 1; for (my $i = 2 ; $i <= $n ; ++ $i) { $y[$i] = $class -> _add($class -> _copy($y[$i - 1]), $y[$i - 2]); } return @y; } # In scalar context use that lucas(n) = fib(n-1) + fib(n+1). # # Remember that _fib() behaves differently in scalar context and list # context, so we must add scalar() to get the desired behaviour. return $class -> _two() if $n == 0; return $class -> _add(scalar($class -> _fib($n - 1)), scalar($class -> _fib($n + 1))); } sub _fib { my ($class, $n) = @_; $n = $class -> _num($n) if ref $n; # In list context, use fib(n) = fib(n-1) + fib(n-2) if (wantarray) { my @y; push @y, $class -> _zero(); return @y if $n == 0; push @y, $class -> _one(); return @y if $n == 1; for (my $i = 2 ; $i <= $n ; ++ $i) { $y[$i] = $class -> _add($class -> _copy($y[$i - 1]), $y[$i - 2]); } return @y; } # In scalar context use a fast algorithm that is much faster than the # recursive algorith used in list context. my $cache = {}; my $two = $class -> _two(); my $fib; $fib = sub { my $n = shift; return $class -> _zero() if $n <= 0; return $class -> _one() if $n <= 2; return $cache -> {$n} if exists $cache -> {$n}; my $k = int($n / 2); my $a = $fib -> ($k + 1); my $b = $fib -> ($k); my $y; if ($n % 2 == 1) { # a*a + b*b $y = $class -> _add($class -> _mul($class -> _copy($a), $a), $class -> _mul($class -> _copy($b), $b)); } else { # (2*a - b)*b $y = $class -> _mul($class -> _sub($class -> _mul( $class -> _copy($two), $a), $b), $b); } $cache -> {$n} = $y; return $y; }; return $fib -> ($n); } ############################################################################## ############################################################################## 1; __END__ =pod =head1 NAME Math::BigInt::Lib - virtual parent class for Math::BigInt libraries =head1 SYNOPSIS # In the backend library for Math::BigInt et al. package Math::BigInt::MyBackend; use Math::BigInt::Lib; our @ISA = qw< Math::BigInt::Lib >; sub _new { ... } sub _str { ... } sub _add { ... } str _sub { ... } ... # In your main program. use Math::BigInt lib => 'MyBackend'; =head1 DESCRIPTION This module provides support for big integer calculations. It is not intended to be used directly, but rather as a parent class for backend libraries used by Math::BigInt, Math::BigFloat, Math::BigRat, and related modules. Other backend libraries include Math::BigInt::Calc, Math::BigInt::FastCalc, Math::BigInt::GMP, and Math::BigInt::Pari. In order to allow for multiple big integer libraries, Math::BigInt was rewritten to use a plug-in library for core math routines. Any module which conforms to the API can be used by Math::BigInt by using this in your program: use Math::BigInt lib => 'libname'; 'libname' is either the long name, like 'Math::BigInt::Pari', or only the short version, like 'Pari'. =head2 General Notes A library only needs to deal with unsigned big integers. Testing of input parameter validity is done by the caller, so there is no need to worry about underflow (e.g., in C<_sub()> and C<_dec()>) or about division by zero (e.g., in C<_div()> and C<_mod()>)) or similar cases. Some libraries use methods that don't modify their argument, and some libraries don't even use objects, but rather unblessed references. Because of this, liberary methods are always called as class methods, not instance methods: $x = Class -> method($x, $y); # like this $x = $x -> method($y); # not like this ... $x -> method($y); # ... or like this And with boolean methods $bool = Class -> method($x, $y); # like this $bool = $x -> method($y); # not like this Return values are always objects, strings, Perl scalars, or true/false for comparison routines. =head3 API version =over 4 =item CLASS-Eapi_version() This method is no longer used and can be omitted. Methods that are not implemented by a subclass will be inherited from this class. =back =head3 Constructors The following methods are mandatory: _new(), _str(), _add(), and _sub(). However, computations will be very slow without _mul() and _div(). =over 4 =item CLASS-E_new(STR) Convert a string representing an unsigned decimal number to an object representing the same number. The input is normalized, i.e., it matches C<^(0|[1-9]\d*)$>. =item CLASS-E_zero() Return an object representing the number zero. =item CLASS-E_one() Return an object representing the number one. =item CLASS-E_two() Return an object representing the number two. =item CLASS-E_ten() Return an object representing the number ten. =item CLASS-E_from_bin(STR) Return an object given a string representing a binary number. The input has a '0b' prefix and matches the regular expression C<^0[bB](0|1[01]*)$>. =item CLASS-E_from_oct(STR) Return an object given a string representing an octal number. The input has a '0' prefix and matches the regular expression C<^0[1-7]*$>. =item CLASS-E_from_hex(STR) Return an object given a string representing a hexadecimal number. The input has a '0x' prefix and matches the regular expression C<^0x(0|[1-9a-fA-F][\da-fA-F]*)$>. =item CLASS-E_from_bytes(STR) Returns an object given a byte string representing the number. The byte string is in big endian byte order, so the two-byte input string "\x01\x00" should give an output value representing the number 256. =item CLASS-E_from_base(STR, BASE, COLLSEQ) Returns an object given a string STR, a base BASE, and a collation sequence COLLSEQ. Each character in STR represents a numerical value identical to the character's position in COLLSEQ. All characters in STR must be present in COLLSEQ. If BASE is less than or equal to 94, and a collation sequence is not specified, the following default collation sequence is used. It contains of all the 94 printable ASCII characters except space/blank: 0123456789 # ASCII 48 to 57 ABCDEFGHIJKLMNOPQRSTUVWXYZ # ASCII 65 to 90 abcdefghijklmnopqrstuvwxyz # ASCII 97 to 122 !"#$%&'()*+,-./ # ASCII 33 to 47 :;<=>?@ # ASCII 58 to 64 [\]^_` # ASCII 91 to 96 {|}~ # ASCII 123 to 126 If the default collation sequence is used, and the BASE is less than or equal to 36, the letter case in STR is ignored. For instance, with base 3 and collation sequence "-/|", the character "-" represents 0, "/" represents 1, and "|" represents 2. So if STR is "/|-", the output is 1 * 3**2 + 2 * 3**1 + 0 * 3**0 = 15. The following examples show standard binary, octal, decimal, and hexadecimal conversion. All examples return 250. $x = $class -> _from_base("11111010", 2) $x = $class -> _from_base("372", 8) $x = $class -> _from_base("250", 10) $x = $class -> _from_base("FA", 16) Some more examples, all returning 250: $x = $class -> _from_base("100021", 3) $x = $class -> _from_base("3322", 4) $x = $class -> _from_base("2000", 5) $x = $class -> _from_base("caaa", 5, "abcde") $x = $class -> _from_base("42", 62) $x = $class -> _from_base("2!", 94) =item CLASS-E_from_base_num(ARRAY, BASE) Returns an object given an array of values and a base. This method is equivalent to C<_from_base()>, but works on numbers in an array rather than characters in a string. Unlike C<_from_base()>, all input values may be arbitrarily large. $x = $class -> _from_base_num([1, 1, 0, 1], 2) # $x is 13 $x = $class -> _from_base_num([3, 125, 39], 128) # $x is 65191 =back =head3 Mathematical functions =over 4 =item CLASS-E_add(OBJ1, OBJ2) Addition. Returns the result of adding OBJ2 to OBJ1. =item CLASS-E_mul(OBJ1, OBJ2) Multiplication. Returns the result of multiplying OBJ2 and OBJ1. =item CLASS-E_div(OBJ1, OBJ2) Division. In scalar context, returns the quotient after dividing OBJ1 by OBJ2 and truncating the result to an integer. In list context, return the quotient and the remainder. =item CLASS-E_sub(OBJ1, OBJ2, FLAG) =item CLASS-E_sub(OBJ1, OBJ2) Subtraction. Returns the result of subtracting OBJ2 by OBJ1. If C is false or omitted, OBJ1 might be modified. If C is true, OBJ2 might be modified. =item CLASS-E_sadd(OBJ1, SIGN1, OBJ2, SIGN2) Signed addition. Returns the result of adding OBJ2 with sign SIGN2 to OBJ1 with sign SIGN1. ($obj3, $sign3) = $class -> _sadd($obj1, $sign1, $obj2, $sign2); =item CLASS-E_ssub(OBJ1, SIGN1, OBJ2, SIGN2) Signed subtraction. Returns the result of subtracting OBJ2 with sign SIGN2 to OBJ1 with sign SIGN1. ($obj3, $sign3) = $class -> _sadd($obj1, $sign1, $obj2, $sign2); =item CLASS-E_dec(OBJ) Returns the result after decrementing OBJ by one. =item CLASS-E_inc(OBJ) Returns the result after incrementing OBJ by one. =item CLASS-E_mod(OBJ1, OBJ2) Returns OBJ1 modulo OBJ2, i.e., the remainder after dividing OBJ1 by OBJ2. =item CLASS-E_sqrt(OBJ) Returns the square root of OBJ, truncated to an integer. =item CLASS-E_root(OBJ, N) Returns the Nth root of OBJ, truncated to an integer. =item CLASS-E_fac(OBJ) Returns the factorial of OBJ, i.e., the product of all positive integers up to and including OBJ. =item CLASS-E_dfac(OBJ) Returns the double factorial of OBJ. If OBJ is an even integer, returns the product of all positive, even integers up to and including OBJ, i.e., 2*4*6*...*OBJ. If OBJ is an odd integer, returns the product of all positive, odd integers, i.e., 1*3*5*...*OBJ. =item CLASS-E_pow(OBJ1, OBJ2) Returns OBJ1 raised to the power of OBJ2. By convention, 0**0 = 1. =item CLASS-E_modinv(OBJ1, OBJ2) Returns the modular multiplicative inverse, i.e., return OBJ3 so that (OBJ3 * OBJ1) % OBJ2 = 1 % OBJ2 The result is returned as two arguments. If the modular multiplicative inverse does not exist, both arguments are undefined. Otherwise, the arguments are a number (object) and its sign ("+" or "-"). The output value, with its sign, must either be a positive value in the range 1,2,...,OBJ2-1 or the same value subtracted OBJ2. For instance, if the input arguments are objects representing the numbers 7 and 5, the method must either return an object representing the number 3 and a "+" sign, since (3*7) % 5 = 1 % 5, or an object representing the number 2 and a "-" sign, since (-2*7) % 5 = 1 % 5. =item CLASS-E_modpow(OBJ1, OBJ2, OBJ3) Returns the modular exponentiation, i.e., (OBJ1 ** OBJ2) % OBJ3. =item CLASS-E_rsft(OBJ, N, B) Returns the result after shifting OBJ N digits to thee right in base B. This is equivalent to performing integer division by B**N and discarding the remainder, except that it might be much faster. For instance, if the object $obj represents the hexadecimal number 0xabcde, then C<_rsft($obj, 2, 16)> returns an object representing the number 0xabc. The "remainer", 0xde, is discarded and not returned. =item CLASS-E_lsft(OBJ, N, B) Returns the result after shifting OBJ N digits to the left in base B. This is equivalent to multiplying by B**N, except that it might be much faster. =item CLASS-E_log_int(OBJ, B) Returns the logarithm of OBJ to base BASE truncted to an integer. This method has two output arguments, the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact result, 0 if the result was truncted to give OBJ, and undef if it is unknown whether OBJ is the exact result. =item CLASS-E_ilog2(OBJ) Returns the base 2 logarithm of OBJ rounded downwards to the nearest integer, i.e., C. In list context, this method returns two output arguments, the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact result, 0 if the result was truncted to give OBJ, and undef if it is unknown whether OBJ is the exact result. This method is equivalent to the more general method _log_int() when it is used with base 2 argument, but _ilog2() method might be faster. =item CLASS-E_ilog10(OBJ) Returns the base 10 logarithm of OBJ rounded downwards to the nearest integer, i.e., C. In list context, this method returns two output arguments, the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact result, 0 if the result was truncted to give OBJ, and undef if it is unknown whether OBJ is the exact result. This method is equivalent to the more general method _log_int() when it is used with base 10 argument, but _ilog10() method might be faster. Also, the output from _ilog10() is always 1 smaller than the output from _len(). =item CLASS-E_clog2(OBJ) Returns the base 2 logarithm of OBJ rounded upwards to the nearest integer, i.e., C. In list context, this method returns two output arguments, the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact result, 0 if the result was truncted to give OBJ, and undef if it is unknown whether OBJ is the exact result. =item CLASS-E_clog10(OBJ) Returns the base 10 logarithm of OBJ rounded upnwards to the nearest integer, i.e., C. In list context, this method returns two output arguments, the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact result, 0 if the result was truncted to give OBJ, and undef if it is unknown whether OBJ is the exact result. =item CLASS-E_gcd(OBJ1, OBJ2) Returns the greatest common divisor of OBJ1 and OBJ2. =item CLASS-E_lcm(OBJ1, OBJ2) Return the least common multiple of OBJ1 and OBJ2. =item CLASS-E_fib(OBJ) In scalar context, returns the nth Fibonacci number: _fib(0) returns 0, _fib(1) returns 1, _fib(2) returns 1, _fib(3) returns 2 etc. In list context, returns the Fibonacci numbers from F(0) to F(n): 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... =item CLASS-E_lucas(OBJ) In scalar context, returns the nth Lucas number: _lucas(0) returns 2, _lucas(1) returns 1, _lucas(2) returns 3, etc. In list context, returns the Lucas numbers from L(0) to L(n): 2, 1, 3, 4, 7, 11, 18, 29,47, 76, ... =back =head3 Bitwise operators =over 4 =item CLASS-E_and(OBJ1, OBJ2) Returns bitwise and. =item CLASS-E_or(OBJ1, OBJ2) Returns bitwise or. =item CLASS-E_xor(OBJ1, OBJ2) Returns bitwise exclusive or. =item CLASS-E_sand(OBJ1, OBJ2, SIGN1, SIGN2) Returns bitwise signed and. =item CLASS-E_sor(OBJ1, OBJ2, SIGN1, SIGN2) Returns bitwise signed or. =item CLASS-E_sxor(OBJ1, OBJ2, SIGN1, SIGN2) Returns bitwise signed exclusive or. =back =head3 Boolean operators =over 4 =item CLASS-E_is_zero(OBJ) Returns a true value if OBJ is zero, and false value otherwise. =item CLASS-E_is_one(OBJ) Returns a true value if OBJ is one, and false value otherwise. =item CLASS-E_is_two(OBJ) Returns a true value if OBJ is two, and false value otherwise. =item CLASS-E_is_ten(OBJ) Returns a true value if OBJ is ten, and false value otherwise. =item CLASS-E_is_even(OBJ) Return a true value if OBJ is an even integer, and a false value otherwise. =item CLASS-E_is_odd(OBJ) Return a true value if OBJ is an even integer, and a false value otherwise. =item CLASS-E_acmp(OBJ1, OBJ2) Compare OBJ1 and OBJ2 and return -1, 0, or 1, if OBJ1 is numerically less than, equal to, or larger than OBJ2, respectively. =item CLASS-E_scmp(OBJ1, SIGN1, OBJ2, SIGN2) Compare OBJ1 and OBJ2 and return -1, 0, or 1, if OBJ1 is numerically less than, equal to, or larger than OBJ2, respectively. =back =head3 String conversion =over 4 =item CLASS-E_str(OBJ) Returns a string representing OBJ in decimal notation. The returned string should have no leading zeros, i.e., it should match C<^(0|[1-9]\d*)$>. =item CLASS-E_to_bin(OBJ) Returns the binary string representation of OBJ. =item CLASS-E_to_oct(OBJ) Returns the octal string representation of the number. =item CLASS-E_to_hex(OBJ) Returns the hexadecimal string representation of the number. =item CLASS-E_to_bytes(OBJ) Returns a byte string representation of OBJ. The byte string is in big endian byte order, so if OBJ represents the number 256, the output should be the two-byte string "\x01\x00". =item CLASS-E_to_base(OBJ, BASE, COLLSEQ) Returns a string representation of OBJ in base BASE with collation sequence COLLSEQ. $val = $class -> _new("210"); $str = $class -> _to_base($val, 10, "xyz") # $str is "zyx" $val = $class -> _new("32"); $str = $class -> _to_base($val, 2, "-|") # $str is "|-----" See _from_base() for more information. =item CLASS-E_to_base_num(OBJ, BASE) Converts the given number to the given base. This method is equivalent to C<_to_base()>, but returns numbers in an array rather than characters in a string. In the output, the first element is the most significant. Unlike C<_to_base()>, all input values may be arbitrarily large. $x = $class -> _to_base_num(13, 2) # $x is [1, 1, 0, 1] $x = $class -> _to_base_num(65191, 128) # $x is [3, 125, 39] =item CLASS-E_as_bin(OBJ) Like C<_to_bin()> but with a '0b' prefix. =item CLASS-E_as_oct(OBJ) Like C<_to_oct()> but with a '0' prefix. =item CLASS-E_as_hex(OBJ) Like C<_to_hex()> but with a '0x' prefix. =item CLASS-E_as_bytes(OBJ) This is an alias to C<_to_bytes()>. =back =head3 Numeric conversion =over 4 =item CLASS-E_num(OBJ) Returns a Perl scalar number representing the number OBJ as close as possible. Since Perl scalars have limited precision, the returned value might not be exactly the same as OBJ. =back =head3 Miscellaneous =over 4 =item CLASS-E_copy(OBJ) Returns a true copy OBJ. =item CLASS-E_len(OBJ) Returns the number of the decimal digits in OBJ. The output is a Perl scalar. =item CLASS-E_zeros(OBJ) Returns the number of trailing decimal zeros. The output is a Perl scalar. The number zero has no trailing decimal zeros. =item CLASS-E_digit(OBJ, N) Returns the Nth digit in OBJ as a Perl scalar. N is a Perl scalar, where zero refers to the rightmost (least significant) digit, and negative values count from the left (most significant digit). If $obj represents the number 123, then CLASS->_digit($obj, 0) # returns 3 CLASS->_digit($obj, 1) # returns 2 CLASS->_digit($obj, 2) # returns 1 CLASS->_digit($obj, -1) # returns 1 =item CLASS-E_digitsum(OBJ) Returns the sum of the base 10 digits. =item CLASS-E_check(OBJ) Returns true if the object is invalid and false otherwise. Preferably, the true value is a string describing the problem with the object. This is a check routine to test the internal state of the object for corruption. =item CLASS-E_set(OBJ) xxx =back =head2 API version 2 The following methods are required for an API version of 2 or greater. =head3 Constructors =over 4 =item CLASS-E_1ex(N) Return an object representing the number 10**N where N E= 0 is a Perl scalar. =back =head3 Mathematical functions =over 4 =item CLASS-E_nok(OBJ1, OBJ2) Return the binomial coefficient OBJ1 over OBJ1. =back =head3 Miscellaneous =over 4 =item CLASS-E_alen(OBJ) Return the approximate number of decimal digits of the object. The output is a Perl scalar. =back =head1 WRAP YOUR OWN If you want to port your own favourite C library for big numbers to the Math::BigInt interface, you can take any of the already existing modules as a rough guideline. You should really wrap up the latest Math::BigInt and Math::BigFloat testsuites with your module, and replace in them any of the following: use Math::BigInt; by this: use Math::BigInt lib => 'yourlib'; This way you ensure that your library really works 100% within Math::BigInt. =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L (requires login). We will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Math::BigInt::Calc You can also look for information at: =over 4 =item * GitHub Source Repository L =item * RT: CPAN's request tracker L =item * MetaCPAN L =item * CPAN Testers Matrix L =back =head1 LICENSE This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR Peter John Acklam, Epjacklam@gmail.comE Code and documentation based on the Math::BigInt::Calc module by Tels Enospam-abuse@bloodgate.comE =head1 SEE ALSO L, L, L, L and L. =cut Math-BigInt-2.005003/lib/Math/BigInt.pm0000644403072340010010000120032214776760254017127 0ustar OSPJADomain Users# -*- coding: utf-8-unix -*- package Math::BigInt; # # "Mike had an infinite amount to do and a negative amount of time in which # to do it." - Before and After # # The following hash values are used: # # sign : "+", "-", "+inf", "-inf", or "NaN" # value : unsigned int with actual value ($LIB thingy) # accuracy : accuracy (scalar) # precision : precision (scalar) # Remember not to take shortcuts ala $xs = $x->{value}; $LIB->foo($xs); since # underlying lib might change the reference! use 5.006001; use strict; use warnings; use Carp qw< carp croak >; use Scalar::Util qw< blessed refaddr >; our $VERSION = '2.005003'; $VERSION =~ tr/_//d; require Exporter; our @ISA = qw< Exporter >; our @EXPORT_OK = qw< objectify bgcd blcm >; # Inside overload, the first arg is always an object. If the original code had # it reversed (like $x = 2 * $y), then the third parameter is true. # In some cases (like add, $x = $x + 2 is the same as $x = 2 + $x) this makes # no difference, but in some cases it does. # For overloaded ops with only one argument we simple use $_[0]->copy() to # preserve the argument. # Thus inheritance of overload operators becomes possible and transparent for # our subclasses without the need to repeat the entire overload section there. use overload # overload key: with_assign '+' => sub { $_[0] -> copy() -> badd($_[1]); }, '-' => sub { my $c = $_[0] -> copy(); $_[2] ? $c -> bneg() -> badd($_[1]) : $c -> bsub($_[1]); }, '*' => sub { $_[0] -> copy() -> bmul($_[1]); }, '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0]) : $_[0] -> copy() -> bdiv($_[1]); }, '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0]) : $_[0] -> copy() -> bmod($_[1]); }, '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0]) : $_[0] -> copy() -> bpow($_[1]); }, '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bblsft($_[0]) : $_[0] -> copy() -> bblsft($_[1]); }, '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bbrsft($_[0]) : $_[0] -> copy() -> bbrsft($_[1]); }, # overload key: assign '+=' => sub { $_[0] -> badd($_[1]); }, '-=' => sub { $_[0] -> bsub($_[1]); }, '*=' => sub { $_[0] -> bmul($_[1]); }, '/=' => sub { scalar $_[0] -> bdiv($_[1]); }, '%=' => sub { $_[0] -> bmod($_[1]); }, '**=' => sub { $_[0] -> bpow($_[1]); }, '<<=' => sub { $_[0] -> bblsft($_[1]); }, '>>=' => sub { $_[0] -> bbrsft($_[1]); }, # 'x=' => sub { }, # '.=' => sub { }, # overload key: num_comparison '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0]) : $_[0] -> blt($_[1]); }, '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0]) : $_[0] -> ble($_[1]); }, '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0]) : $_[0] -> bgt($_[1]); }, '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0]) : $_[0] -> bge($_[1]); }, '==' => sub { $_[0] -> beq($_[1]); }, '!=' => sub { $_[0] -> bne($_[1]); }, # overload key: 3way_comparison '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]); defined($cmp) && $_[2] ? -$cmp : $cmp; }, 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr() : $_[0] -> bstr() cmp "$_[1]"; }, # overload key: str_comparison # 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0]) # : $_[0] -> bstrlt($_[1]); }, # # 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0]) # : $_[0] -> bstrle($_[1]); }, # # 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0]) # : $_[0] -> bstrgt($_[1]); }, # # 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0]) # : $_[0] -> bstrge($_[1]); }, # # 'eq' => sub { $_[0] -> bstreq($_[1]); }, # # 'ne' => sub { $_[0] -> bstrne($_[1]); }, # overload key: binary '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0]) : $_[0] -> copy() -> band($_[1]); }, '&=' => sub { $_[0] -> band($_[1]); }, '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0]) : $_[0] -> copy() -> bior($_[1]); }, '|=' => sub { $_[0] -> bior($_[1]); }, '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0]) : $_[0] -> copy() -> bxor($_[1]); }, '^=' => sub { $_[0] -> bxor($_[1]); }, # '&.' => sub { }, # '&.=' => sub { }, # '|.' => sub { }, # '|.=' => sub { }, # '^.' => sub { }, # '^.=' => sub { }, # overload key: unary 'neg' => sub { $_[0] -> copy() -> bneg(); }, # '!' => sub { }, '~' => sub { $_[0] -> copy() -> bnot(); }, # '~.' => sub { }, # overload key: mutators '++' => sub { $_[0] -> binc() }, '--' => sub { $_[0] -> bdec() }, # overload key: func 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0]) : $_[0] -> copy() -> batan2($_[1]); }, 'cos' => sub { $_[0] -> copy() -> bcos(); }, 'sin' => sub { $_[0] -> copy() -> bsin(); }, 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); }, 'abs' => sub { $_[0] -> copy() -> babs(); }, 'log' => sub { $_[0] -> copy() -> blog(); }, 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); }, 'int' => sub { $_[0] -> copy() -> bint(); }, # overload key: conversion 'bool' => sub { $_[0] -> is_zero() ? '' : 1; }, '""' => sub { $_[0] -> bstr(); }, '0+' => sub { $_[0] -> numify(); }, '=' => sub { $_[0] -> copy(); }, ; ############################################################################## # global constants, flags and accessory # These vars are public, but their direct usage is not recommended, use the # accessor methods instead our $accuracy = undef; our $precision = undef; our $round_mode = 'even'; # even, odd, +inf, -inf, zero, trunc, common our $div_scale = 40; our $upgrade = undef; our $downgrade = undef; our $_trap_nan = 0; # croak on NaNs? our $_trap_inf = 0; # croak on Infs? my $nan = 'NaN'; # constant for easier life # Module to do the low level math. my $DEFAULT_LIB = 'Math::BigInt::Calc'; my $LIB; # Has import() been called yet? This variable is needed to make "require" work. my $IMPORT = 0; ############################################################################## # the old code had $rnd_mode, so we need to support it, too our $rnd_mode = 'even'; sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; } sub FETCH { return $round_mode; } sub STORE { $rnd_mode = (ref $_[0]) -> round_mode($_[1]); } BEGIN { # tie to enable $rnd_mode to work transparently tie $rnd_mode, 'Math::BigInt'; # set up some handy alias names *is_pos = \&is_positive; *is_neg = \&is_negative; *as_number = \&as_int; } ############################################################################### # Configuration methods ############################################################################### sub accuracy { my $x = shift; my $class = ref($x) || $x || __PACKAGE__; # setter/mutator if (@_) { my $a = shift; if (defined $a) { $a = $a -> can('numify') ? $a -> numify() : 0 + "$a" if ref($a); croak "accuracy must be a number, not '$a'" if $a !~ /^\s*[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\s*\z/; croak "accuracy must be an integer, not '$a'" if $a != int $a; } if (ref($x)) { $x -> bround($a) if defined $a; $x -> {precision} = undef; # clear instance P $x -> {accuracy} = $a; # set instance A } else { no strict 'refs'; ${"${class}::precision"} = undef; # clear class P ${"${class}::accuracy"} = $a; # set class A } } # getter/accessor else { if (ref($x)) { return $x -> {accuracy}; } else { no strict 'refs'; return ${"${class}::accuracy"}; } } } sub precision { my $x = shift; my $class = ref($x) || $x || __PACKAGE__; # setter/mutator if (@_) { my $p = shift; if (defined $p) { $p = $p -> can('numify') ? $p -> numify() : 0 + "$p" if ref($p); croak "precision must be a number, not '$p'" if $p !~ /^\s*[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\s*\z/; croak "precision must be an integer, not '$p'" if $p != int $p; } if (ref($x)) { $x -> bfround($p) if defined $p; $x -> {accuracy} = undef; # clear instance A $x -> {precision} = $p; # set instance P } else { no strict 'refs'; ${"${class}::accuracy"} = undef; # clear class A ${"${class}::precision"} = $p; # set class P } } # getter/accessor else { if (ref($x)) { return $x -> {precision}; } else { no strict 'refs'; return ${"${class}::precision"}; } } } sub round_mode { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $m = shift; croak("The value for 'round_mode' must be defined") unless defined $m; croak("Unknown round mode '$m'") unless $m =~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/; if (ref($self) && exists $self -> {round_mode}) { $self->{round_mode} = $m; } else { no strict 'refs'; ${"${class}::round_mode"} = $m; } } # getter/accessor else { if (ref($self) && exists $self -> {round_mode}) { return $self->{round_mode}; } else { no strict 'refs'; my $m = ${"${class}::round_mode"}; return defined($m) ? $m : $round_mode; } } } sub div_scale { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $f = shift; croak("The value for 'div_scale' must be defined") unless defined $f; $f = $f -> can('numify') ? $f -> numify() : 0 + "$f" if ref($f); # also croak on non-numerical croak "div_scale must be a number, not '$f'" unless $f =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/; croak "div_scale must be an integer, not '$f'" if $f != int $f; # It is not documented what div_scale <= 0 means, but Astro::Units sets # div_scale to 0 and fails its tests if this is not supported. So we # silently support div_scale = 0. croak "div_scale must be positive, not '$f'" if $f < 0; if (ref($self) && exists $self -> {div_scale}) { $self -> {div_scale} = $f; } else { no strict 'refs'; ${"${class}::div_scale"} = $f; } } # getter/accessor else { if (ref($self) && exists $self -> {div_scale}) { return $self -> {div_scale}; } else { no strict 'refs'; my $f = ${"${class}::div_scale"}; return defined($f) ? $f : $div_scale; } } } sub trap_inf { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $b = shift() ? 1 : 0; if (ref($self) && exists $self -> {trap_inf}) { $self -> {trap_inf} = $b; } else { no strict 'refs'; ${"${class}::_trap_inf"} = $b; } } # getter/accessor else { if (ref($self) && exists $self -> {trap_inf}) { return $self -> {trap_inf}; } else { no strict 'refs'; return ${"${class}::_trap_inf"}; } } } sub trap_nan { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $b = shift() ? 1 : 0; if (ref($self) && exists $self -> {trap_nan}) { $self -> {trap_nan} = $b; } else { no strict 'refs'; ${"${class}::_trap_nan"} = $b; } } # getter/accessor else { if (ref($self) && exists $self -> {trap_nan}) { return $self -> {trap_nan}; } else { no strict 'refs'; return ${"${class}::_trap_nan"}; } } } sub upgrade { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $u = shift; if (ref($self) && exists $self -> {upgrade}) { $self -> {upgrade} = $u; } else { no strict 'refs'; ${"${class}::upgrade"} = $u; } } # getter/accessor else { if (ref($self) && exists $self -> {upgrade}) { return $self -> {upgrade}; } else { no strict 'refs'; return ${"${class}::upgrade"}; } } } sub downgrade { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator if (@_) { my $d = shift; if (ref($self) && exists $self -> {downgrade}) { $self -> {downgrade} = $d; } else { no strict 'refs'; ${"${class}::downgrade"} = $d; } } # getter/accessor else { if (ref($self) && exists $self -> {downgrade}) { return $self -> {downgrade}; } else { no strict 'refs'; return ${"${class}::downgrade"}; } } } sub modify () { # This method returns 0 if the object can be modified, or 1 if not. We use # a fast constant sub() here, to avoid costly calls. Subclasses may # override it with special code (f.i. Math::BigInt::Constant does so). 0; } sub config { # return (or set) configuration data. my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # setter/mutator # # $self -> config(param => value, ...) # $self -> config({ param => value, ... }) if (@_ > 1 || (@_ == 1 && (ref($_[0]) eq 'HASH'))) { # try to set given options as arguments from hash # If the argument is a hash ref, make a copy of it, since hash keys # will be deleted below, and we don't want to modify the input hash. my $args = ref($_[0]) eq 'HASH' ? { %{ $_[0] } }: { @_ }; # We use this special handling of accuracy and precision because # accuracy() always sets precision to undef and precision() always sets # accuracy to undef. With out this special treatment, the following # would result in both accuracy and precision being undef. # # $x -> config(accuracy => 3, precision => undef) croak "config(): both accuracy and precision are defined" if defined($args -> {accuracy}) && defined ($args -> {precision}); if (defined $args -> {accuracy}) { $self -> accuracy($args -> {accuracy}); } elsif (defined $args -> {precision}) { $self -> precision($args -> {precision}); } else { $self -> accuracy(undef); # also sets precision to undef } delete $args->{accuracy}; delete $args->{precision}; # Set any remaining hash keys. foreach my $key (qw/ round_mode div_scale upgrade downgrade trap_inf trap_nan /) { # use a method call to check argument $self -> $key($args->{$key}) if exists $args->{$key}; delete $args->{$key}; } # If there are any keys left, they are invalid. if (keys %$args) { croak("Illegal key(s) '", join("', '", keys %$args), "' passed to ${class}->config()"); } } # getter/accessor my $cfg = {}; # When only a single parameter is wanted, it is not necessary to build the # whole configuration first. if (@_ == 1 && (ref($_[0]) ne 'HASH')) { my $param = shift; return $LIB if $param eq 'lib'; return $LIB -> VERSION() if $param eq 'lib_version'; return $class if $param eq 'class'; return $class -> VERSION() if $param eq 'version'; # $x -> config("param") or $class -> config("param") return $self -> $param(); } else { if (ref($self)) { # $x -> config() # Currently, only 'accuracy' and 'precision' are supported, but # more parameters will be added as the global variables are moved # into the OO interface. my @param = ('accuracy', 'precision'); for my $param (@param) { $cfg -> {$param} = $self -> {$param}; } } else { # $class -> config() my @param = ('accuracy', 'precision', 'round_mode', 'div_scale', 'upgrade', 'downgrade', 'trap_inf', 'trap_nan'); for my $param (@param) { $cfg -> {$param} = $self -> $param(); } # Additional read-only parameters. $cfg -> {lib} = $LIB; $cfg -> {lib_version} = $LIB -> VERSION(); $cfg -> {class} = $class; $cfg -> {version} = $class -> VERSION(); } return $cfg; } } sub _scale_a { # select accuracy parameter based on precedence, # used by bround() and bfround(), may return undef for scale (means no op) my ($x, $scale, $mode) = @_; $scale = $x->{accuracy} unless defined $scale; my $class = ref($x); $mode = $class -> round_mode() unless defined $mode; if (defined $scale) { $scale = $scale -> can('numify') ? $scale -> numify() : "$scale" if ref($scale); $scale = int($scale); } ($scale, $mode); } sub _scale_p { # select precision parameter based on precedence, # used by bround() and bfround(), may return undef for scale (means no op) my ($x, $scale, $mode) = @_; $scale = $x->{precision} unless defined $scale; my $class = ref($x); $scale = $class -> precision() unless defined $scale; $mode = $class -> round_mode() unless defined $mode; if (defined $scale) { $scale = $scale -> can('numify') ? $scale -> numify() : "$scale" if ref($scale); $scale = int($scale); } ($scale, $mode); } # An undocumented method which downgrades an instance to its downgrade class. sub _dng { my $self = shift; my $class = ref($self); my $downgrade = $class -> downgrade(); return $self unless $downgrade; # bail out if no downgrading return $self if ref($self) eq $downgrade; # bail out if already downgraded # new() might perform upgrading or downgrading, so temporarily disable # upgrading and downgrading in the downgrade class while calling new(). It # should be possible to give new() extra arguments that disable # downgrading. XXX my $upg = $downgrade -> upgrade(); my $dng = $downgrade -> downgrade(); $downgrade -> upgrade(undef); $downgrade -> downgrade(undef); my $tmp = $downgrade -> new($self); # new instance $downgrade -> upgrade($upg); $downgrade -> downgrade($dng); for my $param ('accuracy', 'precision') { # copy instance variables $tmp -> {$param} = $self -> {$param} if exists $self -> {$param}; } %$self = %$tmp; # replace bless $self, $downgrade; # bless into downgrade class return $self; } # An undocumented method which upgrades an instance to its upgrade class. sub _upg { my $self = shift; my $class = ref($self); my $upgrade = $class -> upgrade(); return $self unless $upgrade; # bail out if no upgrading return $self if ref($self) eq $upgrade; # bail out if already upgraded # new() might perform upgrading or downgrading, so temporarily disable # upgrading and downgrading in the upgrade class while calling new(). It # should be possible to give new() extra arguments that disable # upgrading. XXX my $upg = $upgrade -> upgrade(); my $dng = $upgrade -> downgrade(); $upgrade -> upgrade(undef); $upgrade -> downgrade(undef); my $tmp = $upgrade -> new($self); # new instance $upgrade -> upgrade($upg); $upgrade -> downgrade($dng); for my $param ('accuracy', 'precision') { # copy instance variables $tmp -> {$param} = $self -> {$param} if exists $self -> {$param}; } %$self = %$tmp; # replace bless $self, $upgrade; # bless into upgrade class return $self; } ############################################################################### # Constructor methods ############################################################################### sub _init { my $self = shift; my $class = ref($self); $self -> SUPER::_init() if SUPER -> can('_init'); $self -> {accuracy} = $class -> accuracy(); $self -> {precision} = $class -> precision(); #$self -> {round_mode} = $round_mode; #$self -> {div_scale} = $div_scale; #$self -> {trap_inf} = $_trap_inf; #$self -> {trap_nan} = $_trap_nan; #$self -> {upgrade} = $upgrade; #$self -> {downgrade} = $downgrade; return $self; } sub new { # Create a new Math::BigInt object from a string or another Math::BigInt, # Math::BigFloat, or Math::BigRat object. See hash keys documented at top. my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Calling new() with no input arguments has been discouraged for more than # 10 years, but people apparently still use it, so we still support it. return $class -> bzero() unless @_; my ($wanted, @r) = @_; if (!defined($wanted)) { #carp("Use of uninitialized value in new()") # if warnings::enabled("uninitialized"); return $class -> bzero(@r); } if (!ref($wanted) && $wanted eq "") { #carp(q|Argument "" isn't numeric in new()|) # if warnings::enabled("numeric"); #return $class -> bzero(@r); return $class -> bnan(@r); } # Initialize a new object. $self = bless {}, $class; #$self -> _init(); # <-- this causes problems because if the global # accuracy is 2, new(3, 5) will not set the accuracy # to 5 because it is currently not possible to # increase the accuracy. Ditto for precision. XXX # See if $wanted is an object that is a Math::BigInt. We could check if the # object supports the as_int() method. However, as_int() truncates a finite # non-integer whereas new() is supposed to return a NaN for finite # non-integers. This inconsistency should be sorted out. XXX if (defined(blessed($wanted)) && $wanted -> isa(__PACKAGE__)) { # Don't copy the accuracy and precision, because a new object should # get them from the global configuration. $self -> {sign} = $wanted -> {sign}; $self -> {value} = $LIB -> _copy($wanted -> {value}); $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); return $self; } # From now on we only work on the stringified version of $wanted, so # stringify it once and for all. $wanted = "$wanted"; # Shortcut for non-zero scalar integers with no non-zero exponent. if ($wanted =~ / ^ # optional leading whitespace \s* # optional sign ( [+-]? ) # integer mantissa with optional leading zeros 0* ( [1-9] \d* (?: _ \d+ )* | 0 ) # ... with optional zero fraction part (?: \.0* )? # optional non-negative exponent (?: [eE] \+? ( \d+ (?: _ \d+ )* ) )? # optional trailing whitespace \s* $ /x) { my $sign = $1; (my $mant = $2) =~ tr/_//d; my $expo = $3; $mant .= "0" x $expo if defined($expo) && $mant ne "0"; $self->{sign} = $sign eq "-" && $mant ne "0" ? "-" : "+"; $self->{value} = $LIB->_new($mant); $self -> round(@r); return $self; } # Handle Infs. if ($wanted =~ / ^ \s* ( [+-]? ) inf (?: inity )? \s* \z /ix) { my $sgn = $1 || '+'; return $class -> binf($sgn, @r); } # Handle explicit NaNs (not the ones returned due to invalid input). if ($wanted =~ / ^ \s* ( [+-]? ) nan \s* \z /ix) { return $class -> bnan(@r); } my @parts; if ( # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if # they have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Xx]/ and @parts = $class -> _hex_str_to_flt_lib_parts($wanted) or # Handle octal numbers. We auto-detect octal numbers if they have a # "0o", "0O", "o", "O" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Oo]/ and @parts = $class -> _oct_str_to_flt_lib_parts($wanted) or # Handle binary numbers. We auto-detect binary numbers if they have a # "0b", "0B", "b", or "B" prefix, cf. CORE::oct(). $wanted =~ /^\s*[+-]?0?[Bb]/ and @parts = $class -> _bin_str_to_flt_lib_parts($wanted) or # At this point, what is left are decimal numbers that aren't handled # above and octal floating point numbers that don't have any of the # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal # number. @parts = $class -> _dec_str_to_flt_lib_parts($wanted) or # See if it is an octal floating point number. The extra check is # included because _oct_str_to_flt_lib_parts() accepts octal numbers # that don't have a prefix (this is needed to make it work with, e.g., # from_oct() that don't require a prefix). However, Perl requires a # prefix for octal floating point literals. For example, "1p+0" is not # valid, but "01p+0" and "0__1p+0" are. $wanted =~ /^\s*[+-]?0_*\d/ and @parts = $class -> _oct_str_to_flt_lib_parts($wanted)) { # The value is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { $self -> {sign} = $parts[0]; $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10); $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]); return $self; } # The value is not an integer, so upgrade if upgrading is enabled. my $upg = $class -> upgrade(); return $upg -> new($wanted, @r) if $upg; } # If we get here, the value is neither a valid decimal, binary, octal, or # hexadecimal number. It is not explicit an Inf or a NaN either. return $class -> bnan(@r); } # Create a Math::BigInt from a decimal string. This is an equivalent to # from_hex(), from_oct(), and from_bin(). It is like new() except that it does # not accept anything but a string representing a finite decimal number. sub from_dec { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_dec'); my $str = shift; my @r = @_; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } # The value is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { $self -> {sign} = $parts[0]; $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10); return $self -> round(@r); } # The value is not an integer, so upgrade if upgrading is enabled. my $upg = $class -> upgrade(); if ($upg) { return $self -> _upg() -> from_dec($str, @r) # instance method if $selfref && $selfref ne $upg; return $upg -> from_dec($str, @r); # class method } } return $self -> bnan(@r); } # Create a Math::BigInt from a hexadecimal string. sub from_hex { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_hex'); my $str = shift; my @r = @_; if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } # The value is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { $self -> {sign} = $parts[0]; $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10); return $self -> round(@r); } # The value is not an integer, so upgrade if upgrading is enabled. my $upg = $class -> upgrade(); if ($upg) { return $self -> _upg() -> from_hex($str, @r) # instance method if $selfref && $selfref ne $upg; return $upg -> from_hex($str, @r); # class method } } return $self -> bnan(@r); } # Create a Math::BigInt from an octal string. sub from_oct { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_oct'); my $str = shift; my @r = @_; if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } # The value is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { $self -> {sign} = $parts[0]; $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10); return $self -> round(@r); } # The value is not an integer, so upgrade if upgrading is enabled. my $upg = $class -> upgrade(); if ($upg) { return $self -> _upg() -> from_oct($str, @r) # instance method if $selfref && $selfref ne $upg; return $upg -> from_oct($str, @r); # class method } } return $self -> bnan(@r); } # Create a Math::BigInt from a binary string. sub from_bin { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bin'); my $str = shift; my @r = @_; if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } # The value is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { $self -> {sign} = $parts[0]; $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10); return $self -> round(@r); } # The value is not an integer, so upgrade if upgrading is enabled. my $upg = $class -> upgrade(); if ($upg) { return $self -> _upg() -> from_bin($str, @r) # instance method if $selfref && $selfref ne $upg; return $upg -> from_bin($str, @r); # class method } } return $self -> bnan(@r); } # Create a Math::BigInt from a byte string. sub from_bytes { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bytes'); croak("from_bytes() requires a newer version of the $LIB library.") unless $LIB -> can('_from_bytes'); my $str = shift; my @r = @_; # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = '+'; $self -> {value} = $LIB -> _from_bytes($str); return $self -> round(@r); } sub from_ieee754 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_ieee754'); my $in = shift; my $format = shift; my @r = @_; require Math::BigFloat; my $tmp = Math::BigFloat -> from_ieee754($in, $format, @r); return $self -> bnan(@r) unless $tmp -> is_inf() || $tmp -> is_int(); $tmp = $tmp -> as_int(); # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = $tmp -> {sign}; $self -> {value} = $tmp -> {value}; return $self; } sub from_fp80 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_fp80'); my $in = shift; my @r = @_; require Math::BigFloat; my $tmp = Math::BigFloat -> from_fp80($in, @r); return $self -> bnan(@r) unless $tmp -> is_inf() || $tmp -> is_int(); $tmp = $tmp -> as_int(); # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = $tmp -> {sign}; $self -> {value} = $tmp -> {value}; return $self; } sub from_base { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_base'); my ($str, $base, $cs, @r) = @_; # $cs is the collation sequence $base = $class -> new($base) unless ref($base); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); # If called as a class method, initialize a new object. $self = $class -> bzero() unless $selfref; # If no collating sequence is given, pass some of the conversions to # methods optimized for those cases. unless (defined $cs) { return $self -> from_bin($str, @r) if $base == 2; return $self -> from_oct($str, @r) if $base == 8; return $self -> from_hex($str, @r) if $base == 16; return $self -> from_dec($str, @r) if $base == 10; } croak("from_base() requires a newer version of the $LIB library.") unless $LIB -> can('_from_base'); $self -> {sign} = '+'; $self -> {value} = $LIB->_from_base($str, $base -> {value}, defined($cs) ? $cs : ()); return $self -> bround(@r); } sub from_base_num { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_base_num'); # Make sure we have an array of non-negative, finite, numerical objects. my $nums = shift; $nums = [ @$nums ]; # create new reference for my $i (0 .. $#$nums) { # Make sure we have an object. $nums -> [$i] = $class -> new($nums -> [$i]) unless defined(blessed($nums -> [$i])) && $nums -> [$i] -> isa(__PACKAGE__); # Make sure we have a finite, non-negative integer. croak "the elements must be finite non-negative integers" if $nums -> [$i] -> is_neg() || ! $nums -> [$i] -> is_int(); } my $base = shift; $base = $class -> new($base) unless defined(blessed($base)) && $base -> isa(__PACKAGE__); my @r = @_; # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; croak("from_base_num() requires a newer version of the $LIB library.") unless $LIB -> can('_from_base_num'); $self -> {sign} = '+'; $self -> {value} = $LIB -> _from_base_num([ map { $_ -> {value} } @$nums ], $base -> {value}); return $self -> round(@r); } sub bzero { # create/assign '+0' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bzero'); # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } $self->{sign} = '+'; $self->{value} = $LIB->_zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method, initialize the new # instance with the class variables. if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $_[0]; $self->{precision} = $_[1]; } elsif (!$selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } return $self; } sub bone { # Create or assign '+1' (or -1 if given sign '-'). # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bone'); my ($sign, @r) = @_; # Get the sign. if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) { $sign = $1; shift; } else { $sign = '+'; } # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } $self->{sign} = $sign; $self->{value} = $LIB->_one(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method, initialize the new # instance with the class variables. if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $_[0]; $self->{precision} = $_[1]; } elsif (!$selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } return $self; } sub binf { # create/assign a '+inf' or '-inf' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_inf"}) { croak("Tried to create +-inf in $class->binf()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('binf'); # Get the sign. my $sign = '+'; # default is to return positive infinity if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) { $sign = $1; shift; } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } $self -> {sign} = $sign . 'inf'; $self -> {value} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method, initialize the new # instance with the class variables. if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $_[0]; $self->{precision} = $_[1]; } elsif (!$selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } return $self; } sub bnan { # create/assign a 'NaN' # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my $self = shift; my $selfref = ref($self); my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_nan"}) { croak("Tried to create NaN in $class->bnan()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bnan'); # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; #$self -> _init(); # see comment on _init() in new() } $self -> {sign} = $nan; $self -> {value} = $LIB -> _zero(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method, initialize the new # instance with the class variables. if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $_[0]; $self->{precision} = $_[1]; } elsif (!$selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } return $self; } sub bpi { # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i)) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } # Called as Argument list # --------- ------------- # Math::BigFloat->bpi() ("Math::BigFloat") # Math::BigFloat->bpi(10) ("Math::BigFloat", 10) # $x->bpi() ($x) # $x->bpi(10) ($x, 10) # Math::BigFloat::bpi() () # Math::BigFloat::bpi(10) (10) # # In ambiguous cases, we favour the OO-style, so the following case # # $n = Math::BigFloat->new("10"); # $x = Math::BigFloat->bpi($n); # # which gives an argument list with the single element $n, is resolved as # # $n->bpi(); my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; my @r = @_; # rounding paramters # Make "require" work. $class -> import() if $IMPORT == 0; if ($selfref) { # bpi() called as an instance method return $self if $self -> modify('bpi'); } else { # bpi() called as a class method $self = bless {}, $class; # initialize new instance #$self -> _init(); # see comment on _init() in new() } my $upg = $class -> upgrade(); if ($upg) { return $self -> _upg() -> bpi(@r) # instance method if $selfref && $selfref ne $upg; return $upg -> bpi(@r); # class method } # hard-wired to "3" $self -> {sign} = '+'; $self -> {value} = $LIB -> _new("3"); $self -> round(@r); return $self; } sub copy { my ($x, $class); if (ref($_[0])) { # $y = $x -> copy() $x = shift; $class = ref($x); } else { # $y = Math::BigInt -> copy($x) $class = shift; $x = shift; } carp "Rounding is not supported for ", (caller(0))[3], "()" if @_; my $copy = bless {}, $class; $copy->{sign} = $x->{sign}; $copy->{value} = $LIB->_copy($x->{value}); $copy->{accuracy} = $x->{accuracy} if exists $x->{accuracy}; $copy->{precision} = $x->{precision} if exists $x->{precision}; return $copy; } sub as_int { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. my $upg = Math::BigInt -> upgrade(); my $dng = Math::BigInt -> downgrade(); Math::BigInt -> upgrade(undef); Math::BigInt -> downgrade(undef); my $y; if ($x -> isa("Math::BigInt")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigInt -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigInt -> bnan(); } else { $y = Math::BigInt -> new($x -> copy() -> bint() -> bdstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigInt -> upgrade($upg); Math::BigInt -> downgrade($dng); return $y; } sub as_rat { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. require Math::BigRat; my $upg = Math::BigRat -> upgrade(); my $dng = Math::BigRat -> downgrade(); Math::BigRat -> upgrade(undef); Math::BigRat -> downgrade(undef); my $y; if ($x -> isa("Math::BigRat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigRat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigRat -> bnan(); } else { $y = Math::BigRat -> new($x -> bfstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigRat -> upgrade($upg); Math::BigRat -> downgrade($dng); return $y; } sub as_float { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. require Math::BigFloat; my $upg = Math::BigFloat -> upgrade(); my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $y; if ($x -> isa("Math::BigFloat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigFloat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigFloat -> bnan(); } else { if ($x -> isa("Math::BigRat")) { if ($x -> is_int()) { $y = Math::BigFloat -> new($x -> bdstr()); } else { my ($num, $den) = $x -> fparts(); my $str = $num -> as_float() -> bdiv($den, @r) -> bdstr(); $y = Math::BigFloat -> new($str); } } else { $y = Math::BigFloat -> new($x -> bdstr()); } } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading.. Math::BigFloat -> upgrade($upg); Math::BigFloat -> downgrade($dng); return $y; } ############################################################################### # Boolean methods ############################################################################### sub is_zero { # return true if arg (BINT or num_str) is zero (array '+', '0') my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 if $x->{sign} ne '+'; return 1 if $LIB->_is_zero($x->{value}); return 0; } sub is_one { # return true if arg (BINT or num_str) is +1, or -1 if sign is given my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_); if (defined($sign)) { croak 'is_one(): sign argument must be "+" or "-"' unless $sign eq '+' || $sign eq '-'; } else { $sign = '+'; } return 0 if $x->{sign} ne $sign; $LIB->_is_one($x->{value}) ? 1 : 0; } sub is_finite { my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); $x->{sign} eq '+' || $x->{sign} eq '-' ? 1 : 0; } sub is_inf { # return true if arg (BINT or num_str) is +-inf my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_); if (defined $sign) { $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-' return $x->{sign} =~ /^$sign$/ ? 1 : 0; } $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity } sub is_nan { # return true if arg (BINT or num_str) is NaN my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); $x->{sign} eq $nan ? 1 : 0; } sub is_positive { # return true when arg (BINT or num_str) is positive (> 0) my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 1 if $x -> is_inf("+"); # 0+ is neither positive nor negative ($x->{sign} eq '+' && !$x -> is_zero()) ? 1 : 0; } sub is_negative { # return true when arg (BINT or num_str) is negative (< 0) my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not } sub is_non_positive { # Return true if argument is non-positive (<= 0). my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 1 if $x->{sign} =~ /^\-/; return 1 if $x -> is_zero(); return 0; } sub is_non_negative { # Return true if argument is non-negative (>= 0). my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 1 if $x->{sign} =~ /^\+/; return 1 if $x -> is_zero(); return 0; } sub is_odd { # return true when arg (BINT or num_str) is odd, false for even my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 unless $x -> is_finite(); $LIB->_is_odd($x->{value}) ? 1 : 0; } sub is_even { # return true when arg (BINT or num_str) is even, false for odd my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); return 0 unless $x -> is_finite(); $LIB->_is_even($x->{value}) ? 1 : 0; } sub is_int { # return true when arg (BINT or num_str) is an integer my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_); $x -> is_finite() ? 1 : 0; } ############################################################################### # Comparison methods ############################################################################### sub bcmp { # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort) # (BINT or num_str, BINT or num_str) return cond_code # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Unless both $x and $y are finite ... unless ($x -> is_finite() && $y -> is_finite()) { # handle +-inf and NaN return if $x -> is_nan() || $y -> is_nan(); return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/; return +1 if $x -> is_inf("+"); return -1 if $x -> is_inf("-"); return -1 if $y -> is_inf("+"); return +1; } # check sign for speed first return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0 ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bcmp($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### # post-normalized compare for internal use (honors signs) if ($x->{sign} eq '+') { # $x and $y both > 0 return $LIB->_acmp($x->{value}, $y->{value}); } # $x && $y both < 0; use swapped acmp (lib returns 0, 1, -1) $LIB->_acmp($y->{value}, $x->{value}); } sub bacmp { # Compares 2 values, ignoring their signs. # Returns one of undef, <0, =0, >0. (suitable for sort) # (BINT, BINT) return cond_code # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; ########################################################################### # Code for all classes that share the common interface. ########################################################################### if ((!$x -> is_finite()) || (!$y -> is_finite())) { # handle +-inf and NaN return if $x -> is_nan() || $y -> is_nan(); return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/; return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/; return -1; } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bacmp($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### $LIB->_acmp($x->{value}, $y->{value}); # lib does only 0, 1, -1 } sub beq { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && !$cmp; } sub bne { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && !$cmp ? '' : 1; } sub blt { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && $cmp < 0; } sub ble { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && $cmp <= 0; } sub bgt { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && $cmp > 0; } sub bge { my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (undef, @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary return defined($cmp) && $cmp >= 0; } ############################################################################### # Arithmetic methods ############################################################################### sub bneg { # negate number or make a negated number from string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bneg'); $x->{sign} =~ tr/+-/-+/ unless $x -> is_zero(); $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub babs { # (BINT or num_str) return BINT # make number absolute, or return absolute BINT from string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('babs'); $x->{sign} =~ s/^-/+/; $x -> round(@r); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); return $x; } sub bsgn { # Signum function. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsgn'); # bone() downgrades, if necessary return $x -> bone("+", @r) if $x -> is_pos(); return $x -> bone("-", @r) if $x -> is_neg(); $x -> round(@r); $x -> _dng() if $x -> is_int(); return $x; } sub bnorm { # (numstr or BINT) return BINT # Normalize number -- no-op here my ($class, $x, @r) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # This method is called from the rounding methods, so if this method # supports rounding by calling the rounding methods, we get an infinite # recursion. carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; $x; } sub binc { # increment arg by one my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('binc'); return $x -> round(@r) if $x -> is_inf() || $x -> is_nan(); ########################################################################### # Code for Math::BigInt objects ########################################################################### if ($x->{sign} eq '+') { $x->{value} = $LIB->_inc($x->{value}); } elsif ($x->{sign} eq '-') { $x->{value} = $LIB->_dec($x->{value}); $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # -1 +1 => -0 => +0 } return $x -> round(@r); } sub bdec { # decrement arg by one my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bdec'); return $x -> round(@r) if $x -> is_inf() || $x -> is_nan(); ########################################################################### # Code for Math::BigInt objects ########################################################################### if ($x->{sign} eq '-') { $x->{value} = $LIB->_inc($x->{value}); } elsif ($x->{sign} eq '+') { if ($LIB->_is_zero($x->{value})) { # +1 - 1 => +0 $x->{value} = $LIB->_one(); $x->{sign} = '-'; } else { $x->{value} = $LIB->_dec($x->{value}); } } return $x -> round(@r); } #sub bstrcmp { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrcmp() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrcmp()' unless @_ == 1; # # return $self -> bstr() CORE::cmp shift; #} # #sub bstreq { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstreq() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstreq()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && ! $cmp; #} # #sub bstrne { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrne() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrne()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && ! $cmp ? '' : 1; #} # #sub bstrlt { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrlt() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrlt()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && $cmp < 0; #} # #sub bstrle { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrle() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrle()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && $cmp <= 0; #} # #sub bstrgt { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrgt() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrgt()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && $cmp > 0; #} # #sub bstrge { # my $self = shift; # my $selfref = ref $self; # my $class = $selfref || $self; # # croak 'bstrge() is an instance method, not a class method' # unless $selfref; # croak 'Wrong number of arguments for bstrge()' unless @_ == 1; # # my $cmp = $self -> bstrcmp(shift); # return defined($cmp) && $cmp >= 0; #} sub badd { # add second arg (BINT or string) to first (BINT) (modifies first) # return result as BINT # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); return $x -> badd($y, @r) unless $x -> isa(__PACKAGE__); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('badd'); $r[3] = $y; # no push! unless ($x -> is_finite() && $y -> is_finite()) { return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); return $x -> is_inf("+") ? ($y -> is_inf("-") ? $x -> bnan(@r) : $x -> binf("+", @r)) : $x -> is_inf("-") ? ($y -> is_inf("+") ? $x -> bnan(@r) : $x -> binf("-", @r)) : ($y -> is_inf("+") ? $x -> binf("+", @r) : $x -> binf("-", @r)); } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> badd($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### ($x->{value}, $x->{sign}) = $LIB -> _sadd($x->{value}, $x->{sign}, $y->{value}, $y->{sign}); $x -> round(@r); } sub bsub { # (BINT or num_str, BINT or num_str) return BINT # subtract second arg from first, modify first # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); return $x -> bsub($y, @r) unless $x -> isa(__PACKAGE__); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bsub'); $r[3] = $y; # no push! unless ($x -> is_finite() && $y -> is_finite()) { return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); return $x -> is_inf("+") ? ($y -> is_inf("+") ? $x -> bnan(@r) : $x -> binf("+", @r)) : $x -> is_inf("-") ? ($y -> is_inf("-") ? $x -> bnan(@r) : $x -> binf("-", @r)) : ($y -> is_inf("+") ? $x -> binf("-", @r) : $x -> binf("+", @r)); } return $x -> bzero(@r) if refaddr($x) eq refaddr($y); # $x -> bsub($x) ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bsub($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### ($x->{value}, $x->{sign}) = $LIB -> _ssub($x->{value}, $x->{sign}, $y->{value}, $y->{sign}); $x -> round(@r); } sub bmul { # multiply the first number by the second number # (BINT or num_str, BINT or num_str) return BINT # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bmul'); return $x -> bmul($y, @r) unless $x -> isa(__PACKAGE__); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # inf handling if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) { return $x -> bnan(@r) if $x -> is_zero() || $y -> is_zero(); # result will always be +-inf: # +inf * +/+inf => +inf, -inf * -/-inf => +inf # +inf * -/-inf => -inf, -inf * +/+inf => -inf return $x -> binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/); return $x -> binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/); return $x -> binf('-', @r); } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bmul($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### $r[3] = $y; # no push here $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # no -0 $x -> round(@r); } *bdiv = \&bfdiv; *bmod = \&bfmod; sub bfdiv { # This does floored division, where the quotient is floored, i.e., rounded # towards negative infinity. As a consequence, the remainder has the same # sign as the divisor. # # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is floor($x / $y) # and $q * $y + $r = $x. # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bfdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. Return NaN for both quotient and the # modulo/remainder. if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. # # Division: Use the common convention that x / 0 is inf with the same sign # as x, except when x = 0, where we return NaN. This is also what earlier # versions did. # # Modulo: In modular arithmetic, the congruence relation z = x (mod y) # means that there is some integer k such that z - x = k y. If y = 0, we # get z - x = 0 or z = x. This is also what earlier versions did, except # that 0 % 0 returned NaN. # # inf / 0 = inf inf % 0 = inf # 5 / 0 = inf 5 % 0 = 5 # 0 / 0 = NaN 0 % 0 = 0 # -5 / 0 = -inf -5 % 0 = -5 # -inf / 0 = -inf -inf % 0 = -inf if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy() -> round(@r); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x -> {sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. # The divide by zero cases are covered above. In all of the cases listed # below we return the same as core Perl. # # inf / -inf = NaN inf % -inf = NaN # inf / -5 = -inf inf % -5 = NaN # inf / 5 = inf inf % 5 = NaN # inf / inf = NaN inf % inf = NaN # # -inf / -inf = NaN -inf % -inf = NaN # -inf / -5 = inf -inf % -5 = NaN # -inf / 5 = -inf -inf % 5 = NaN # -inf / inf = NaN -inf % inf = NaN if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign, @r); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. In the modulo cases (in the right column) we return # the same as core Perl, which does floored division, so for consistency we # also do floored division in the division cases (in the left column). # # -5 / inf = -1 -5 % inf = inf # 0 / inf = 0 0 % inf = 0 # 5 / inf = 0 5 % inf = 5 # # -5 / -inf = 0 -5 % -inf = -5 # 0 / -inf = 0 0 % -inf = 0 # 5 / -inf = -1 5 % -inf = -inf if ($y -> is_inf()) { my $rem; if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { $rem = $x -> copy() -> round(@r) if $wantarray; $x -> bzero(@r); } else { $rem = $class -> binf($y -> {sign}, @r) if $wantarray; $x -> bone('-', @r); } return $wantarray ? ($x, $rem) : $x; } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # At this point, both the numerator and denominator are finite, non-zero # numbers. unless ($wantarray) { my $upg = $class -> upgrade(); if ($upg) { my $tmp = $upg -> bfdiv($x, $y, @r); if ($tmp -> is_int()) { $tmp = $tmp -> as_int(); %$x = %$tmp; } else { %$x = %$tmp; bless $x, $upg; } return $x; } } # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bfdiv($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### $r[3] = $y; # no push! # Initialize remainder. my $rem = $class -> bzero(); # Are both operands the same object, i.e., like $x -> bfdiv($x)? If so, # flipping the sign of $y also flips the sign of $x. my $xsign = $x -> {sign}; my $ysign = $y -> {sign}; $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ... my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x. $y -> {sign} = $ysign; # Restore the original sign. if ($same) { # $x -> bfdiv($x) $x -> bone(); } else { # Compute quotient and remainder, ignoring signs. ($x -> {value}, $rem -> {value}) = $LIB -> _div($x -> {value}, $y -> {value}); # x y q r # 23 / 7 => 3 2 # -23 / 7 => -4 5 # 23 / -7 => -4 -5 # -23 / -7 => 3 -2 # We are doing floored division, so adjust quotient and remainder as # necessary. if ($xsign ne $ysign && !$LIB -> _is_zero($rem -> {value})) { $x -> {value} = $LIB -> _inc($x -> {value}); $rem -> {value} = $LIB -> _sub($LIB -> _copy($y -> {value}), $rem -> {value}); } # Now do the signs. $x -> {sign} = $xsign eq $ysign || $LIB -> _is_zero($x -> {value}) ? '+' : '-'; $rem -> {sign} = $ysign eq '+' || $LIB -> _is_zero($rem -> {value}) ? '+' : '-'; } # List context. if ($wantarray) { $rem -> {accuracy} = $x -> {accuracy}; $rem -> {precision} = $x -> {precision}; $x -> round(@r); $rem -> round(@r); return $x, $rem; } # Scalar context. return $x -> round(@r) if $LIB -> _is_zero($rem -> {value}); # We could use this instead of the upgrade code above, but this code gives # more decimals when the integer part is non-zero. This is because the # fraction part is divided separately and the rounding is done on that part # separeately before the integer part is added. # #if ($class -> upgrade()) { # $rem -> _upg() -> bfdiv($y); # $x -> _upg() -> badd($rem, @r); # return $x; #} $x -> round(@r); return $x; } sub bfmod { # This is the remainder after floored division. # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bfmod'); $r[3] = $y; # no push! # At least one argument is NaN. if ($x -> is_nan() || $y -> is_nan()) { return $x -> bnan(@r); } # Modulo zero. See documentation for bfdiv(). if ($y -> is_zero()) { return $x -> round(@r); } # Numerator (dividend) is +/-inf. if ($x -> is_inf()) { return $x -> bnan(@r); } # Denominator (divisor) is +/-inf. if ($y -> is_inf()) { if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { return $x -> round(@r); } else { return $x -> binf($y -> sign(), @r); } } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bfmod($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### # Calc new sign and in case $y == +/- 1, return $x. $x -> {value} = $LIB -> _mod($x -> {value}, $y -> {value}); if ($LIB -> _is_zero($x -> {value})) { $x -> {sign} = '+'; # do not leave -0 } else { $x -> {value} = $LIB -> _sub($y -> {value}, $x -> {value}, 1) # $y-$x if ($x -> {sign} ne $y -> {sign}); $x -> {sign} = $y -> {sign}; } $x -> round(@r); } sub btdiv { # This does truncated division, where the quotient is truncted, i.e., # rounded towards zero. # # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is int($x / $y) # and $q * $y + $r = $x. # Set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('btdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. Return NaN for both quotient and the # modulo/remainder. if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. # # Division: Use the common convention that x / 0 is inf with the same sign # as x, except when x = 0, where we return NaN. This is also what earlier # versions did. # # Modulo: In modular arithmetic, the congruence relation z = x (mod y) # means that there is some integer k such that z - x = k y. If y = 0, we # get z - x = 0 or z = x. This is also what earlier versions did, except # that 0 % 0 returned NaN. # # inf / 0 = inf inf % 0 = inf # 5 / 0 = inf 5 % 0 = 5 # 0 / 0 = NaN 0 % 0 = 0 # -5 / 0 = -inf -5 % 0 = -5 # -inf / 0 = -inf -inf % 0 = -inf if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy(@r); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x -> {sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. # The divide by zero cases are covered above. In all of the cases listed # below we return the same as core Perl. # # inf / -inf = NaN inf % -inf = NaN # inf / -5 = -inf inf % -5 = NaN # inf / 5 = inf inf % 5 = NaN # inf / inf = NaN inf % inf = NaN # # -inf / -inf = NaN -inf % -inf = NaN # -inf / -5 = inf -inf % -5 = NaN # -inf / 5 = -inf -inf % 5 = NaN # -inf / inf = NaN -inf % inf = NaN if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign,@r ); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. In the modulo cases (in the right column) we return # the same as core Perl, which does floored division, so for consistency we # also do floored division in the division cases (in the left column). # # -5 / inf = 0 -5 % inf = -5 # 0 / inf = 0 0 % inf = 0 # 5 / inf = 0 5 % inf = 5 # # -5 / -inf = 0 -5 % -inf = -5 # 0 / -inf = 0 0 % -inf = 0 # 5 / -inf = 0 5 % -inf = 5 if ($y -> is_inf()) { my $rem; $rem = $x -> copy() -> round(@r) if $wantarray; $x -> bzero(@r); return $wantarray ? ($x, $rem) : $x; } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # Division might return a non-integer result, so upgrade, if upgrading is # enabled. unless ($wantarray) { my $upg = $class -> upgrade(); if ($upg) { my $tmp = $upg -> btdiv($x, $y, @r); if ($tmp -> is_int()) { $tmp = $tmp -> as_int(); %$x = %$tmp; } else { %$x = %$tmp; bless $x, $upg; } return $x; } } # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> btdiv($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects objects ########################################################################### $r[3] = $y; # no push! # Initialize remainder. my $rem = $class -> bzero(); # Are both operands the same object, i.e., like $x -> btdiv($x)? If so, # flipping the sign of $y also flips the sign of $x. my $xsign = $x -> {sign}; my $ysign = $y -> {sign}; $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ... my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x. $y -> {sign} = $ysign; # Re-insert the original sign. if ($same) { $x -> bone(@r); } else { ($x -> {value}, $rem -> {value}) = $LIB -> _div($x -> {value}, $y -> {value}); $x -> {sign} = $xsign eq $ysign ? '+' : '-'; $x -> {sign} = '+' if $LIB -> _is_zero($x -> {value}); $x -> round(@r); } if ($wantarray) { $rem -> {sign} = $xsign; $rem -> {sign} = '+' if $LIB -> _is_zero($rem -> {value}); $rem -> {accuracy} = $x -> {accuracy}; $rem -> {precision} = $x -> {precision}; $rem -> round(@r); return $x, $rem; } return $x; } sub btmod { # Remainder after truncated division. # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('btmod'); $r[3] = $y; # no push! # At least one argument is NaN. if ($x -> is_nan() || $y -> is_nan()) { return $x -> bnan(@r); } # Modulo zero. See documentation for btdiv(). if ($y -> is_zero()) { return $x -> round(@r); } # Numerator (dividend) is +/-inf. if ($x -> is_inf()) { return $x -> bnan(@r); } # Denominator (divisor) is +/-inf. if ($y -> is_inf()) { return $x -> round(@r); } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> btmod($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### my $xsign = $x -> {sign}; $x -> {value} = $LIB -> _mod($x -> {value}, $y -> {value}); $x -> {sign} = $xsign; $x -> {sign} = '+' if $LIB -> _is_zero($x -> {value}); $x -> round(@r); } sub binv { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('binv'); return $x -> binf("+", @r) if $x -> is_zero(); return $x -> bzero(@r) if $x -> is_inf(); return $x -> bnan(@r) if $x -> is_nan(); return $x -> round(@r) if $x -> is_one("+") || $x -> is_one("-"); ########################################################################### # Output might be finite, non-integer, so upgrade. ########################################################################### return $x -> _upg() -> binv(@r) if $class -> upgrade(); ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### unless ($x -> isa(__PACKAGE__)) { croak "Can't handle a ", ref($x), " in ", (caller(0))[3], "()"; } ########################################################################### # Code for Math::BigInt objects ########################################################################### $x -> bzero(@r); } sub bsqrt { # calculate square root of $x my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bsqrt'); return $x -> round(@r) if ($x -> is_zero() || $x -> is_one("+") || $x -> is_nan() || $x -> is_inf("+")); return $x -> bnan(@r) if $x -> is_negative(); ########################################################################### # Output might be finite, non-integer, so upgrade. ########################################################################### return $x -> _upg() -> bsqrt(@r) if $class -> upgrade(); ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### unless ($x -> isa(__PACKAGE__)) { croak "Can't handle a ", ref($x), " in ", (caller(0))[3], "()"; } ########################################################################### # Code for Math::BigInt objects ########################################################################### $x->{value} = $LIB -> _sqrt($x->{value}); return $x -> round(@r); } sub bpow { # (BINT or num_str, BINT or num_str) return BINT # compute power of two numbers -- stolen from Knuth Vol 2 pg 233 # modifies first argument # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bpow'); # $x and/or $y is a NaN return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # $x and/or $y is a +/-Inf if ($x -> is_inf("-")) { return $x -> bzero(@r) if $y -> is_negative(); return $x -> bnan(@r) if $y -> is_zero(); return $x -> round(@r) if $y -> is_odd(); return $x -> bneg(@r); } elsif ($x -> is_inf("+")) { return $x -> bzero(@r) if $y -> is_negative(); return $x -> bnan(@r) if $y -> is_zero(); return $x -> round(@r); } elsif ($y -> is_inf("-")) { return $x -> bnan(@r) if $x -> is_one("-"); return $x -> binf("+", @r) if $x -> is_zero(); return $x -> bone(@r) if $x -> is_one("+"); return $x -> bzero(@r); } elsif ($y -> is_inf("+")) { return $x -> bnan(@r) if $x -> is_one("-"); return $x -> bzero(@r) if $x -> is_zero(); return $x -> bone(@r) if $x -> is_one("+"); return $x -> binf("+", @r); } if ($x -> is_zero()) { return $x -> bone(@r) if $y -> is_zero(); return $x -> binf(@r) if $y -> is_negative(); return $x -> round(@r); } if ($x -> is_one("+")) { return $x -> round(@r); } if ($x -> is_one("-")) { return $x -> round(@r) if $y -> is_odd(); return $x -> bneg(@r); } ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### return $x -> _upg() -> bpow($y, @r) if $class -> upgrade(); # We don't support finite non-integers, so return zero. The reason for # returning zero, not NaN, is that all output is in the open interval # (0,1), and truncating that to integer gives zero. if ($y->{sign} eq '-' || !$y -> isa(__PACKAGE__)) { return $x -> bzero(@r); } $r[3] = $y; # no push! $x->{value} = $LIB -> _pow($x->{value}, $y->{value}); $x->{sign} = $x -> is_negative() && $y -> is_odd() ? '-' : '+'; $x -> round(@r); } sub broot { # calculate $y'th root of $x # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); $y = $class -> new("2") unless defined $y; # default base # Don't modify constant (read-only) objects. return $x if $x -> modify('broot'); # If called with "foreign" argument. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> broot($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0 return $x -> bnan(@r) if ($x->{sign} !~ /^\+/ || $y -> is_zero() || $y->{sign} !~ /^\+$/); # Quick exit for trivial cases. return $x -> round(@r) if $x -> is_zero() || $x -> is_one() || $x -> is_inf() || $y -> is_one(); return $x -> _upg() -> broot($y, @r) if $class -> upgrade(); $x->{value} = $LIB->_root($x->{value}, $y->{value}); $x -> round(@r); } sub bmuladd { # multiply two numbers and then add the third to the result # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT # set up parameters my ($class, $x, $y, $z, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmuladd'); # At least one of x, y, and z is a NaN return $x -> bnan(@r) if ($x -> is_nan() || $y -> is_nan() || $z -> is_nan()); # At least one of x, y, and z is an Inf if ($x -> is_inf("-")) { if ($y -> is_neg()) { # x = -inf, y < 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y -> is_zero()) { # x = -inf, y = 0 return $x -> bnan(@r); } else { # x = -inf, y > 0 if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } } elsif ($x->{sign} eq "+inf") { if ($y -> is_neg()) { # x = +inf, y < 0 if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y -> is_zero()) { # x = +inf, y = 0 return $x -> bnan(@r); } else { # x = +inf, y > 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } } elsif ($x -> is_neg()) { if ($y -> is_inf("-")) { # -inf < x < 0, y = -inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y->{sign} eq "+inf") { # -inf < x < 0, y = +inf if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } else { # -inf < x < 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } elsif ($x -> is_zero()) { if ($y -> is_inf("-")) { # x = 0, y = -inf return $x -> bnan(@r); } elsif ($y->{sign} eq "+inf") { # x = 0, y = +inf return $x -> bnan(@r); } else { # x = 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } elsif ($x -> is_pos()) { if ($y -> is_inf("-")) { # 0 < x < +inf, y = -inf if ($z->{sign} eq "+inf") { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y->{sign} eq "+inf") { # 0 < x < +inf, y = +inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } else { # 0 < x < +inf, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z->{sign} eq "+inf") { return $x -> binf("+", @r); } } } # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__) && $z -> isa(__PACKAGE__)) { if ($y -> is_int() && $z -> is_int()) { $y = $y -> as_int(); $z = $z -> as_int(); } else { return $x -> _upg() -> bmuladd($y, $z, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()" unless $y -> isa(__PACKAGE__); croak "Can't handle a ", ref($z), " in ", (caller(0))[3], "()" unless $z -> isa(__PACKAGE__); } } # At this point, we know that x, y, and z are finite numbers # TODO: what if $y and $z have A or P set? $r[3] = $z; # no push here my $zs = $z->{sign}; my $zv = $z->{value}; $zv = $LIB -> _copy($zv) if refaddr($x) eq refaddr($z); $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # no -0 ($x->{value}, $x->{sign}) = $LIB -> _sadd($x->{value}, $x->{sign}, $zv, $zs); return $x -> round(@r); } sub bmodpow { # Modular exponentiation. Raises a very large number to a very large # exponent in a given very large modulus quickly, thanks to binary # exponentiation. Supports negative exponents. my ($class, $num, $exp, $mod, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $num if $num -> modify('bmodpow'); # Check for valid input. All operands must be finite, and the modulus must # be non-zero. return $num -> bnan(@r) if (!$num -> is_finite() || # NaN, -inf, +inf !$exp -> is_finite() || # NaN, -inf, +inf !$mod -> is_finite()); # NaN, -inf, +inf ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($exp -> isa(__PACKAGE__) && $mod -> isa(__PACKAGE__)) { if ($exp -> is_int() && $mod -> is_int()) { $exp = $exp -> as_int(); $mod = $mod -> as_int(); } else { return $num -> _upg() -> bmodpow($exp, $mod, @r) if $class -> upgrade(); croak "Can't handle a ", ref($exp), " in ", (caller(0))[3], "()" unless $exp -> isa(__PACKAGE__); croak "Can't handle a ", ref($mod), " in ", (caller(0))[3], "()" unless $mod -> isa(__PACKAGE__); } } # When the exponent 'e' is negative, use the following relation, which is # based on finding the multiplicative inverse 'd' of 'b' modulo 'm': # # b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m) # # Return NaN if no modular multiplicative inverse exists. if ($exp->{sign} eq '-') { $num -> bmodinv($mod); return $num -> bnan(@r) if $num -> is_nan(); } # Modulo zero. See documentation for Math::BigInt's bmod() method. if ($mod -> is_zero()) { if ($num -> is_zero()) { return $num -> bnan(@r); } else { return $num -> round(@r); } } ########################################################################### # Code for Math::BigInt objects ########################################################################### # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting # value is zero, the output is also zero, regardless of the signs on 'a' # and 'm'. my $value = $LIB->_modpow($num->{value}, $exp->{value}, $mod->{value}); my $sign = '+'; # If the resulting value is non-zero, we have four special cases, depending # on the signs on 'a' and 'm'. unless ($LIB->_is_zero($value)) { # There is a negative sign on 'a' (= $num**$exp) only if the number we # are exponentiating ($num) is negative and the exponent ($exp) is odd. if ($num->{sign} eq '-' && $exp -> is_odd()) { # When both the number 'a' and the modulus 'm' have a negative # sign, use this relation: # # -a (mod -m) = -(a (mod m)) if ($mod->{sign} eq '-') { $sign = '-'; } # When only the number 'a' has a negative sign, use this relation: # # -a (mod m) = m - (a (mod m)) else { # Use copy of $mod since _sub() modifies the first argument. my $mod = $LIB->_copy($mod->{value}); $value = $LIB->_sub($mod, $value); $sign = '+'; } } else { # When only the modulus 'm' has a negative sign, use this relation: # # a (mod -m) = (a (mod m)) - m # = -(m - (a (mod m))) if ($mod->{sign} eq '-') { # Use copy of $mod since _sub() modifies the first argument. my $mod = $LIB->_copy($mod->{value}); $value = $LIB->_sub($mod, $value); $sign = '-'; } # When neither the number 'a' nor the modulus 'm' have a negative # sign, directly return the already computed value. # # (a (mod m)) } } $num->{value} = $value; $num->{sign} = $sign; return $num -> round(@r); } sub bmodinv { # Return modular multiplicative inverse: # # z is the modular inverse of x (mod y) if and only if # # x*z ≡ 1 (mod y) # # If the modulus y is larger than one, x and z are relative primes (i.e., # their greatest common divisor is one). # # If no modular multiplicative inverse exists, NaN is returned. # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bmodinv'); # Return NaN if one or both arguments is +inf, -inf, or nan. return $x -> bnan(@r) if !$y -> is_finite() || !$x -> is_finite(); # Return NaN if $y is zero; 1 % 0 makes no sense. return $x -> bnan(@r) if $y -> is_zero(); ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bmodinv($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } ########################################################################### # Code for Math::BigInt objects ########################################################################### # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite # integers $x. return $x -> bzero(@r) if $y -> is_one('+') || $y -> is_one('-'); # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when # $x = 0 is when $y = 1 or $y = -1, but that was covered above. # # Note that computing $x modulo $y here affects the value we'll feed to # $LIB->_modinv() below when $x and $y have opposite signs. E.g., if $x = # 5 and $y = 7, those two values are fed to _modinv(), but if $x = -5 and # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7. # The value if $x is affected only when $x and $y have opposite signs. $x -> bfmod($y); return $x -> bnan(@r) if $x -> is_zero(); # Compute the modular multiplicative inverse of the absolute values. We'll # correct for the signs of $x and $y later. Return NaN if no GCD is found. ($x->{value}, $x->{sign}) = $LIB->_modinv($x->{value}, $y->{value}); return $x -> bnan(@r) if !defined($x->{value}); # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions # <= 1.32 return undef rather than a "+" for the sign. $x->{sign} = '+' unless defined $x->{sign}; # When one or both arguments are negative, we have the following # relations. If x and y are positive: # # modinv(-x, -y) = -modinv(x, y) # modinv(-x, y) = y - modinv(x, y) = -modinv(x, y) (mod y) # modinv( x, -y) = modinv(x, y) - y = modinv(x, y) (mod -y) # We must swap the sign of the result if the original $x is negative. # However, we must compensate for ignoring the signs when computing the # inverse modulo. The net effect is that we must swap the sign of the # result if $y is negative. $x -> bneg() if $y->{sign} eq '-'; # Compute $x modulo $y again after correcting the sign. $x -> bmod($y) if $x->{sign} ne $y->{sign}; $x -> round(@r); } sub blog { # Return the logarithm of the operand. If a second operand is defined, that # value is used as the base, otherwise the base is assumed to be Euler's # constant. my ($class, $x, $base, @r); # Only objectify the base if it is defined, since an undefined base, as in # $x->blog() or $x->blog(undef) signals that the base is Euler's number = # 2.718281828... if (!ref($_[0]) && $_[0] =~ /^[a-z]\w*(?:::\w+)*$/i) { # E.g., Math::BigInt->blog(256, 2) ($class, $x, $base, @r) = defined $_[2] ? objectify(2, @_) : objectify(1, @_); } else { # E.g., $x->blog(2) or the deprecated Math::BigInt::blog(256, 2) ($class, $x, $base, @r) = defined $_[1] ? objectify(2, @_) : objectify(1, @_); } # Don't modify constant (read-only) objects. return $x if $x->modify('blog'); # Handle all exception cases and all trivial cases. I have used Wolfram # Alpha (http://www.wolframalpha.com) as the reference for these cases. return $x -> bnan(@r) if $x -> is_nan(); if (defined $base) { $base = $class -> new($base) unless defined(blessed($base)) && $base -> isa(__PACKAGE__); if ($base -> is_nan() || $base -> is_one()) { return $x -> bnan(@r); } elsif ($base -> is_inf() || $base -> is_zero()) { return $x -> bnan(@r) if $x -> is_inf() || $x -> is_zero(); return $x -> bzero(@r); } elsif ($base -> is_negative()) { # -inf < base < 0 return $x -> bzero(@r) if $x -> is_one(); # x = 1 return $x -> bone('+', @r) if $x == $base; # x = base # we can't handle these cases, so upgrade, if we can return $x -> _upg() -> blog($base, @r) if $class -> upgrade(); return $x -> bnan(@r); } return $x -> bone(@r) if $x == $base; # 0 < base && 0 < x < inf } # We now know that the base is either undefined or >= 2 and finite. if ($x -> is_inf()) { # x = +/-inf return $x -> binf('+', @r); } elsif ($x -> is_neg()) { # -inf < x < 0 return $x -> _upg() -> blog($base, @r) if $class -> upgrade(); return $x -> bnan(@r); } elsif ($x -> is_one()) { # x = 1 return $x -> bzero(@r); } elsif ($x -> is_zero()) { # x = 0 return $x -> binf('-', @r); } # At this point we are done handling all exception cases and trivial cases. return $x -> _upg() -> blog($base, @r) if $class -> upgrade(); # fix for bug #24969: # the default base is e (Euler's number) which is not an integer if (!defined $base) { require Math::BigFloat; # disable upgrading and downgrading my $upg = Math::BigFloat -> upgrade(); my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $u = Math::BigFloat -> new($x) -> blog() -> as_int(); # reset upgrading and downgrading Math::BigFloat -> upgrade($upg); Math::BigFloat -> downgrade($dng); # modify $x in place $x->{value} = $u->{value}; $x->{sign} = $u->{sign}; return $x -> round(@r); } my ($rc) = $LIB -> _log_int($x->{value}, $base->{value}); return $x -> bnan(@r) unless defined $rc; # not possible to take log? $x->{value} = $rc; $x -> round(@r); } sub bexp { # Calculate e ** $x (Euler's number to the power of X), truncated to # an integer value. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bexp'); # inf, -inf, NaN, <0 => NaN return $x -> bnan(@r) if $x -> is_nan(); return $x -> bone(@r) if $x -> is_zero(); return $x -> round(@r) if $x -> is_inf("+"); return $x -> bzero(@r) if $x -> is_inf("-"); ########################################################################### # Output might be finite, non-integer, so upgrade. ########################################################################### return $x -> _upg() -> bexp(@r) if $class -> upgrade(); ########################################################################### # Code for things that aren't Math::BigInt ########################################################################### unless ($x -> isa(__PACKAGE__)) { croak "Can't handle a ", ref($x), " in ", (caller(0))[3], "()"; } ########################################################################### # Code for Math::BigInt objects ########################################################################### require Math::BigFloat; my $tmp = Math::BigFloat -> bexp($x) -> bint() -> round(@r) -> as_int(); $x->{value} = $tmp->{value}; return $x -> round(@r); } sub bilog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x -> {value} = $LIB -> _ilog2($x -> {value}); return $x -> round(@r); } sub bilog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x -> {value} = $LIB -> _ilog10($x -> {value}); return $x -> round(@r); } sub bclog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x -> {value} = $LIB -> _clog2($x -> {value}); return $x -> round(@r); } sub bclog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x -> {value} = $LIB -> _clog10($x -> {value}); return $x -> round(@r); } sub bnok { # Calculate n over k (binomial coefficient or "choose" function) as # integer. # Set up parameters. my ($class, $n, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $n if $n -> modify('bnok'); # If called with "foreign" arguments. unless ($k -> isa(__PACKAGE__)) { if ($k -> is_int()) { $k = $k -> as_int(); } else { return $n -> _upg() -> bnok($k, @r) if $class -> upgrade(); croak "Can't handle a ", ref($k), " in ", (caller(0))[3], "()"; } } # All cases where at least one argument is NaN. return $n -> bnan(@r) if $n -> is_nan() || $k -> is_nan(); # All cases where at least one argument is +/-inf. if ($n -> is_inf()) { if ($k -> is_inf()) { # bnok(+/-inf,+/-inf) return $n -> bnan(@r); } elsif ($k -> is_neg()) { # bnok(+/-inf,k), k < 0 return $n -> bzero(@r); } elsif ($k -> is_zero()) { # bnok(+/-inf,k), k = 0 return $n -> bone(@r); } else { if ($n -> is_inf("+", @r)) { # bnok(+inf,k), 0 < k < +inf return $n -> binf("+"); } else { # bnok(-inf,k), k > 0 my $sign = $k -> is_even() ? "+" : "-"; return $n -> binf($sign, @r); } } } elsif ($k -> is_inf()) { # bnok(n,+/-inf), -inf <= n <= inf return $n -> bnan(@r); } # At this point, both n and k are real numbers. my $sign = 1; if ($n >= 0) { if ($k < 0 || $k > $n) { return $n -> bzero(@r); } } else { if ($k >= 0) { # n < 0 and k >= 0: bnok(n,k) = (-1)^k * bnok(-n+k-1,k) $sign = (-1) ** $k; $n -> bneg() -> badd($k) -> bdec(); } elsif ($k <= $n) { # n < 0 and k <= n: bnok(n,k) = (-1)^(n-k) * bnok(-k-1,n-k) $sign = (-1) ** ($n - $k); my $x0 = $n -> copy(); $n -> bone() -> badd($k) -> bneg(); $k = $k -> copy(); $k -> bneg() -> badd($x0); } else { # n < 0 and n < k < 0: return $n -> bzero(@r); } } # Some backends, e.g., Math::BigInt::GMP, can't handle the case when k is # very large, so if k > n/2, or, equivalently, 2*k > n, perform range # reduction by computing nok(n, k) as nok(n, n-k). my $k_val = $k->{value}; my $two_k = $LIB -> _mul($LIB -> _two(), $k_val); if ($LIB -> _acmp($two_k, $n->{value}) > 0) { $k_val = $LIB -> _sub($LIB -> _copy($n->{value}), $k_val); } $n->{value} = $LIB -> _nok($n->{value}, $k_val); $n -> bneg() if $sign == -1; $n -> round(@r); } sub bperm { # Calculate permutations: n! / (n - k)! # Set up parameters. my ($class, $n, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $n if $n -> modify('bnok'); # If called with "foreign" arguments. unless ($k -> isa(__PACKAGE__)) { if ($k -> is_int()) { $k = $k -> as_int(); } else { return $n -> _upg() -> bperm($k, @r) if $class -> upgrade(); croak "Can't handle a ", ref($k), " in ", (caller(0))[3], "()"; } } # Special cases. return $n -> bnan(@r) if $n -> is_nan() || $k -> is_nan(); return $n -> bnan(@r) unless $n >= $k && $k >= 0; return $n -> bone("+", @r) if $k -> is_zero(); if ($n -> is_inf()) { if ($k -> is_inf()) { return $n -> bnan(@r); } else { return $n -> binf("+", @r); } } # Should this code be moved into the backend library? XXX # $factor is $n my $factor = $LIB -> _copy($n->{value}); # $limit is $n - $k + 1 my $limit = $LIB -> _copy($n->{value}); $limit = $LIB -> _sub($limit, $k->{value}); $limit = $LIB -> _inc($limit); while ($LIB -> _acmp($factor, $limit) > 0) { $LIB -> _dec($factor); $LIB -> _mul($n->{value}, $factor); } $n -> round(@r); } sub bhyperop { my ($class, $a, $n, $b, @r) = objectify(3, @_); # Don't modify constant (read-only) objects. return $a if $a -> modify('bhyperop'); my $tmp = $a -> hyperop($n, $b); $a -> {value} = $tmp -> {value}; return $a -> round(@r); } sub hyperop { my ($class, $a, $n, $b, @r) = objectify(3, @_); croak("a must be non-negative") if $a < 0; croak("n must be non-negative") if $n < 0; croak("b must be non-negative") if $b < 0; # The following is a non-recursive implementation of the hyperoperator, # with special cases handled for speed. my @stack = ($a, $n, $b); while (@stack > 1) { my ($a, $n, $b) = splice @stack, -3; # Special cases for $b if ($b == 2 && $a == 2) { push @stack, $n == 0 ? Math::BigInt -> new("3") : Math::BigInt -> new("4"); next; } if ($b == 1) { if ($n == 0) { push @stack, Math::BigInt -> new("2"); next; } if ($n == 1) { push @stack, $a + 1; next; } push @stack, $a; next; } if ($b == 0) { if ($n == 1) { push @stack, $a; next; } if ($n == 2) { push @stack, Math::BigInt -> bzero(); next; } push @stack, Math::BigInt -> bone(); next; } # Special cases for $a if ($a == 0) { if ($n == 0) { push @stack, $b + 1; next; } if ($n == 1) { push @stack, $b; next; } if ($n == 2) { push @stack, Math::BigInt -> bzero(); next; } if ($n == 3) { push @stack, $b == 0 ? Math::BigInt -> bone() : Math::BigInt -> bzero(); next; } push @stack, $b -> is_odd() ? Math::BigInt -> bzero() : Math::BigInt -> bone(); next; } if ($a == 1) { if ($n == 0 || $n == 1) { push @stack, $b + 1; next; } if ($n == 2) { push @stack, $b; next; } push @stack, Math::BigInt -> bone(); next; } # Special cases for $n if ($n == 4) { # tetration if ($b == 0) { push @stack, Math::BigInt -> bone(); next; } my $y = $a; $y = $a ** $y for 2 .. $b; push @stack, $y; next; } if ($n == 3) { # exponentiation push @stack, $a ** $b; next; } if ($n == 2) { # multiplication push @stack, $a * $b; next; } if ($n == 1) { # addition push @stack, $a + $b; next; } if ($n == 0) { # succession push @stack, $b + 1; next; } push @stack, $a, $n - 1, $a, $n, $b - 1; } $a = pop @stack; return $a -> round(@r); } sub buparrow { my ($class, $a, $n, $b, @r) = objectify(3, @_); # Don't modify constant (read-only) objects. return $a if $a -> modify('buparrow'); $a -> bhyperop($n + 2, $b, @r); } sub uparrow { my ($class, $a, $n, $b, @r) = objectify(3, @_); $a -> hyperop($n + 2, $b, @r); } sub backermann { my $m = shift; # Don't modify constant (read-only) objects. return $m if $m -> modify('backermann'); my $y = $m -> ackermann(@_); $m -> {value} = $y -> {value}; return $m; } sub ackermann { # Ackermann's function ackermann(m, n) # # The following is a simple, recursive implementation of the ackermann # function, just to show the idea. Such implementations cause "Deep # recursion on subroutine ..." warnings, so we use a faster, non-recursive # algorithm below with @_ as a stack. # # sub ackermann { # my ($m, $n) = @_; # return $n + 1 if $m == 0; # return ackermann($m - 1, 1) if $m > 0 && $n == 0; # return ackermann($m - 1, ackermann($m, $n - 1) if $m > 0 && $n > 0; # } my ($m, $n) = @_; my $class = ref $m; croak("m must be non-negative") if $m < 0; croak("n must be non-negative") if $n < 0; my $two = $class -> new("2"); my $three = $class -> new("3"); my $thirteen = $class -> new("13"); $n = pop; $n = $class -> new($n) unless ref($n); while (@_) { my $m = pop; if ($m > $three) { push @_, (--$m) x $n; while (--$m >= $three) { push @_, $m; } $n = $thirteen; } elsif ($m == $three) { $n = $class -> bone() -> blsft($n + $three) -> bsub($three); } elsif ($m == $two) { $n -> bmul($two) -> badd($three); } elsif ($m >= 0) { $n -> badd($m) -> binc(); } else { die "negative m!"; } } $n; } sub bsin { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsin'); # Trivial cases. return $x -> bzero(@r) if $x -> is_zero(); return $x -> bnan(@r) if $x -> is_inf() || $x -> is_nan(); my $upg = $class -> upgrade(); if ($upg) { my $xtmp = $upg -> bsin($x, @r); if ($xtmp -> is_int()) { $xtmp = $xtmp -> as_int(); %$x = %$xtmp; } else { %$x = %$xtmp; bless $x, $upg; } return $x; } # When x is an integer ≠ 0, sin(x) truncated to an integer is always zero. $x -> bzero(@r); } sub bcos { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bcos'); # Trivial cases. return $x -> bone(@r) if $x -> is_zero(); return $x -> bnan(@r) if $x -> is_inf() || $x -> is_nan(); my $upg = $class -> upgrade(); if ($upg) { my $xtmp = $upg -> bcos($x, @r); if ($xtmp -> is_int()) { $xtmp = $xtmp -> as_int(); %$x = %$xtmp; } else { %$x = %$xtmp; bless $x, $upg; } return $x; } # When x is a non-zero integer, cos(x) truncated to an integer is always # zero. $x -> bzero(@r); } sub batan { # Calculate arctan(x) to N digits. Unless upgrading is in effect, returns # the result truncated to an integer. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('batan'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> bzero(@r) if $x -> is_zero(); return $x -> _upg() -> batan(@r) if $class -> upgrade(); return $x -> bone("+", @r) if $x -> bgt("1"); return $x -> bone("-", @r) if $x -> blt("-1"); $x -> bzero(@r); } sub batan2 { # calculate arcus tangens of ($y/$x) my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $y if $y -> modify('batan2'); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $y -> _upg() -> batan2($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } return $y -> bnan() if $y -> is_nan() || $x -> is_nan(); # Y X # != 0 -inf result is +- pi if ($x -> is_inf() || $y -> is_inf()) { if ($y -> is_inf()) { if ($x -> is_inf("-")) { # calculate 3 pi/4 => 2.3.. => 2 $y -> bone(substr($y->{sign}, 0, 1)); $y -> bmul($class -> new(2)); } elsif ($x -> is_inf("+")) { # calculate pi/4 => 0.7 => 0 $y -> bzero(); } else { # calculate pi/2 => 1.5 => 1 $y -> bone(substr($y->{sign}, 0, 1)); } } else { if ($x -> is_inf("+")) { # calculate pi/4 => 0.7 => 0 $y -> bzero(); } else { # PI => 3.1415.. => 3 $y -> bone(substr($y->{sign}, 0, 1)); $y -> bmul($class -> new(3)); } } return $y; } # Temporarily disable downgrading in Math::BigFloat. my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> downgrade(undef); my $yflt = $y -> as_float(); my $xflt = $x -> as_float(); my $yint = $yflt -> batan2($xflt, @r) -> as_int(); $y->{value} = $yint->{value}; $y->{sign} = $yint->{sign}; # Restore downgrading. Math::BigFloat -> downgrade($dng); $y -> round(@r); } sub bfac { # (BINT or num_str, BINT or num_str) return BINT # compute factorial number from $x, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-");; return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x -> is_neg(); return $x -> bone(@r) if $x -> is_zero() || $x -> is_one(); $x->{value} = $LIB->_fac($x->{value}); $x -> round(@r); } sub bdfac { # compute double factorial, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x <= -2; return $x -> bone(@r) if $x <= 1; croak("bdfac() requires a newer version of the $LIB library.") unless $LIB -> can('_dfac'); $x->{value} = $LIB->_dfac($x->{value}); $x -> round(@r); } sub btfac { # compute triple factorial, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('btfac'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); my $k = $class -> new("3"); return $x -> bnan(@r) if $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x -> bmul($f); } $x -> round(@r); } sub bmfac { # compute multi-factorial my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmfac'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> bnan(@r) if $k -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); # If called with "foreign" arguments. unless ($k -> isa(__PACKAGE__)) { if ($k -> is_int()) { $k = $k -> as_int(); } else { return $x -> _upg() -> bmfac($k, @r) if $class -> upgrade(); croak "Can't handle a ", ref($k), " in ", (caller(0))[3], "()"; } } return $x -> bnan(@r) if $k < 1 || $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x -> bmul($f); } $x -> round(@r); } sub bfib { # compute Fibonacci number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("bfib() requires a newer version of the $LIB library.") unless $LIB -> can('_fib'); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfib'); # List context. if (wantarray) { croak("bfib() can't return an infinitely long list of numbers") if $x -> is_inf(); return if $x -> is_nan() || !$x -> is_int(); # The following places a limit on how large $x can be. Should this # limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{value} = $LIB -> _zero(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{value} = $LIB -> _one(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{value} = $LIB -> _add($LIB -> _copy($y[$i - 1]{value}), $y[$i - 2]{value}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{value} = $y[-1]{value}; $x->{sign} = $y[-1]{sign}; $y[-1] = $x; } @y = map { $_ -> round(@r) } @y; return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-'); $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{value} = $LIB -> _fib($x->{value}); return $x -> round(@r); } } sub blucas { # compute Lucas number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("blucas() requires a newer version of the $LIB library.") unless $LIB -> can('_lucas'); # Don't modify constant (read-only) objects. return $x if $x -> modify('blucas'); # List context. if (wantarray) { return if $x -> is_nan(); croak("blucas() can't return an infinitely long list of numbers") if $x -> is_inf(); # The following places a limit on how large $x can be. Should this # limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{value} = $LIB -> _two(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{value} = $LIB -> _one(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{value} = $LIB -> _add($LIB -> _copy($y[$i - 1]{value}), $y[$i - 2]{value}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{value} = $y[-1]{value}; $x->{sign} = $y[-1]{sign}; $y[-1] = $x; } @y = map { $_ -> round(@r) } @y; return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-'); $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{value} = $LIB -> _lucas($x->{value}); return $x -> round(@r); } } sub blsft { # (BINT or num_str, BINT or num_str) return BINT # compute $x << $y, base $n my ($class, $x, $y, $b, @r); # Objectify the base only when it is defined, since an undefined base, as # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2. if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigInt->blog(256, 5, 2) ($class, $x, $y, $b, @r) = defined $_[3] ? objectify(3, @_) : objectify(2, @_); } else { # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2) ($class, $x, $y, $b, @r) = defined $_[2] ? objectify(3, @_) : objectify(2, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('blsft'); # The default base is 2. $b = 2 unless defined $b; $b = $class -> new($b) unless defined(blessed($b)); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__) && $b -> isa(__PACKAGE__)) { if ($y -> is_int() && $b -> is_int()) { $y = $y -> as_int(); $b = $b -> as_int(); } else { return $x -> _upg() -> blsft($y, $b, @r) if $class -> upgrade(); croak "Can't handle a ", ref($x), " in ", (caller(0))[3], "()" unless $y -> isa(__PACKAGE__); croak "Can't handle a ", ref($b), " in ", (caller(0))[3], "()" unless $b -> isa(__PACKAGE__); } } # Handle NaN cases. return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan() || $b -> is_nan(); # blsft($x, -$y, $b) = brsft($x, $y, $b) return $x -> brsft($y -> copy() -> bneg(), $b, @r) if $y -> is_neg(); # Now handle all cases where at least one operand is ±Inf or the result # will be ±Inf or NaN. if ($y -> is_inf("+")) { if ($b -> is_one("-")) { return $x -> bnan(@r); } elsif ($b -> is_one("+")) { return $x -> round(@r); } elsif ($b -> is_zero()) { return $x -> bnan(@r) if $x -> is_inf(); return $x -> bzero(@r); } else { return $x -> binf("-", @r) if $x -> is_negative(); return $x -> binf("+", @r) if $x -> is_positive(); return $x -> bnan(@r); } } if ($b -> is_inf()) { return $x -> bnan(@r) if $x -> is_zero() || $y -> is_zero(); if ($b -> is_inf("-")) { return $x -> binf("+", @r) if ($x -> is_negative() && $y -> is_odd() || $x -> is_positive() && $y -> is_even()); return $x -> binf("-", @r); } else { return $x -> binf("-", @r) if $x -> is_negative(); return $x -> binf("+", @r); } } if ($b -> is_zero()) { return $x -> round(@r) if $y -> is_zero(); return $x -> bnan(@r) if $x -> is_inf(); return $x -> bzero(@r); } if ($x -> is_inf()) { if ($b -> is_negative()) { if ($x -> is_inf("-")) { if ($y -> is_even()) { return $x -> round(@r); } else { return $x -> binf("+", @r); } } else { if ($y -> is_even()) { return $x -> round(@r); } else { return $x -> binf("-", @r); } } } else { return $x -> round(@r); } } # At this point, we know that both the input and the output is finite. # Handle some trivial cases. return $x -> round(@r) if $x -> is_zero() || $y -> is_zero() || $b -> is_one("+") || $b -> is_one("-") && $y -> is_even(); return $x -> bneg(@r) if $b -> is_one("-") && $y -> is_odd(); # While some of the libraries support an arbitrarily large base, not all of # them do, so rather than returning an incorrect result in those cases, # disallow bases that don't work with all libraries. my $uintmax = ~0; if ($x -> bcmp($uintmax) > 0) { $x -> bmul($b -> bpow($y)); } else { my $neg = 0; if ($b -> is_negative()) { $neg = 1 if $y -> is_odd(); $b -> babs(); } $b = $b -> numify(); $x -> {value} = $LIB -> _lsft($x -> {value}, $y -> {value}, $b); $x -> {sign} =~ tr/+-/-+/ if $neg; } $x -> round(@r); } sub brsft { # (BINT or num_str, BINT or num_str) return BINT # compute $x >> $y, base $n my ($class, $x, $y, $b, @r); # Objectify the base only when it is defined, since an undefined base, as # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2. if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigInt->blog(256, 5, 2) ($class, $x, $y, $b, @r) = defined $_[3] ? objectify(3, @_) : objectify(2, @_); } else { # E.g., Math::BigInt::blog(256, 5, 2) or $x -> blog(5, 2) ($class, $x, $y, $b, @r) = defined $_[2] ? objectify(3, @_) : objectify(2, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('brsft'); # The default base is 2. $b = 2 unless defined $b; $b = $class -> new($b) unless defined(blessed($b)); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__) && $b -> isa(__PACKAGE__)) { if ($y -> is_int() && $b -> is_int()) { $y = $y -> as_int(); $b = $b -> as_int(); } else { return $x -> _upg() -> brsft($y, $b, @r) if $class -> upgrade(); croak "Can't handle a ", ref($x), " in ", (caller(0))[3], "()" unless $y -> isa(__PACKAGE__); croak "Can't handle a ", ref($b), " in ", (caller(0))[3], "()" unless $b -> isa(__PACKAGE__); } } # Handle NaN cases. return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan() || $b -> is_nan(); # brsft($x, -$y, $b) = blsft($x, $y, $b) return $x -> blsft($y -> copy() -> bneg(), $b, @r) if $y -> is_neg(); # Now handle all cases where at least one operand is ±Inf or the result # will be ±Inf or NaN. if ($b -> is_inf()) { return $x -> bnan(@r) if $x -> is_inf() || $y -> is_zero(); if ($b -> is_inf("+")) { if ($x -> is_negative()) { return $x -> bone("-", @r); } else { return $x -> bzero(@r); } } else { if ($x -> is_negative()) { return $y -> is_odd() ? $x -> bzero(@r) : $x -> bone("-", @r); } elsif ($x -> is_positive()) { return $y -> is_odd() ? $x -> bone("-", @r) : $x -> bzero(@r); } else { return $x -> bzero(@r); } } } if ($b -> is_zero()) { return $x -> round(@r) if $y -> is_zero(); return $x -> bnan(@r) if $x -> is_zero(); return $x -> is_negative() ? $x -> binf("-", @r) : $x -> binf("+", @r); } if ($y -> is_inf("+")) { if ($b -> is_one("-")) { return $x -> bnan(@r); } elsif ($b -> is_one("+")) { return $x -> round(@r); } else { return $x -> bnan(@r) if $x -> is_inf(); return $x -> is_negative() ? $x -> bone("-", @r) : $x -> bzero(@r); } } if ($x -> is_inf()) { if ($b -> is_negative()) { if ($x -> is_inf("-")) { if ($y -> is_even()) { return $x -> round(@r); } else { return $x -> binf("+", @r); } } else { if ($y -> is_even()) { return $x -> round(@r); } else { return $x -> binf("-", @r); } } } else { return $x -> round(@r); } } # At this point, we know that both the input and the output is finite. # Handle some trivial cases. return $x -> round(@r) if $x -> is_zero() || $y -> is_zero() || $b -> is_one("+") || $b -> is_one("-") && $y -> is_even(); return $x -> bneg(@r) if $b -> is_one("-") && $y -> is_odd(); # We know that $y is positive. Shifting right by a positive amount might # lead to a non-integer result. return $x -> _upg() -> brsft($y, $b, @r) if $class -> upgrade(); # This only works for negative numbers when shifting in base 2. if ($x -> is_neg() && $b -> bcmp("2") == 0) { return $x -> round(@r) if $x -> is_one('-'); # -1 => -1 # Although this is O(N*N) in Math::BigInt::Calc->_as_bin(), it is O(N) # in Pari et al., but perhaps there is a better emulation for two's # complement shift ... if $y != 1, we must simulate it by doing: # convert to bin, flip all bits, shift, and be done $x -> binc(); # -3 => -2 my $bin = $x -> to_bin(); # convert to string $bin =~ s/^-//; # strip leading minus $bin =~ tr/10/01/; # flip bits my $nbits = CORE::length($bin); return $x -> bone("-", @r) if $y >= $nbits; $bin = substr $bin, 0, $nbits - $y; # keep most significant bits $bin = '1' . $bin; # prepend one dummy '1' $bin =~ tr/10/01/; # flip bits back my $res = $class -> from_bin($bin); # convert back from string $res -> binc(); # remember to increment $x -> {value} = $res -> {value}; # take over value return $x -> round(@r); } # While some of the libraries support an arbitrarily large base, not all of # them do, so rather than returning an incorrect result in those cases, use # division. my $uintmax = ~0; if ($x -> bcmp($uintmax) > 0 || $x -> is_neg() || $b -> is_negative()) { $x -> bdiv($b -> bpow($y)); } else { $b = $b -> numify(); $x -> {value} = $LIB -> _rsft($x -> {value}, $y -> {value}, $b); } return $x -> round(@r); } ############################################################################### # Bitwise methods ############################################################################### # Bitwise left shift. sub bblsft { # We don't call objectify(), because the bitwise methods should not # upgrade, even when upgrading is enabled. my ($class, $x, $y, @r); # $x -> bblsft($y) if (ref($_[0])) { ($class, $x, $y, @r) = (ref($_[0]), @_); $y = $y -> as_int() if ref($y) && !$y -> isa(__PACKAGE__) && $y -> can('as_int'); $y = $class -> new(int($y)) unless ref($y); } # $class -> bblsft($x, $y) else { ($class, $x, $y, @r) = @_; for ($x, $y) { $_ = $_ -> as_int() if ref($_) && !$_ -> isa(__PACKAGE__) && $_ -> can('as_int'); $_ = $class -> new(int($_)) unless ref($_); } } # Don't modify constant (read-only) objects. return $x if $x -> modify('bblsft'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # bblsft($x, -$y) = bbrsft($x, $y) return $x -> bbrsft($y -> copy() -> bneg()) if $y -> is_neg(); # Shifting infinitely far to the left. if ($y -> is_inf("+")) { return $x -> binf("+", @r) if $x -> is_pos(); return $x -> binf("-", @r) if $x -> is_neg(); return $x -> bnan(@r); } # These cases change nothing. return $x -> round(@r) if $x -> is_zero() || $x -> is_inf() || $y -> is_zero(); $x -> {value} = $LIB -> _lsft($x -> {value}, $y -> {value}, 2); $x -> round(@r); } # Bitwise right shift. sub bbrsft { # We don't call objectify(), because the bitwise methods should not # upgrade, even when upgrading is enabled. my ($class, $x, $y, @r); # $x -> bblsft($y) if (ref($_[0])) { ($class, $x, $y, @r) = (ref($_[0]), @_); $y = $y -> as_int() if ref($y) && !$y -> isa(__PACKAGE__) && $y -> can('as_int'); $y = $class -> new(int($y)) unless ref($y); } # $class -> bblsft($x, $y) else { ($class, $x, $y, @r) = @_; for ($x, $y) { $_ = $_ -> as_int() if ref($_) && !$_ -> isa(__PACKAGE__) && $_ -> can('as_int'); $_ = $class -> new(int($_)) unless ref($_); } } # Don't modify constant (read-only) objects. return $x if $x -> modify('bbrsft'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # bbrsft($x, -$y) = bblsft($x, $y) return $x -> bblsft($y -> copy() -> bneg()) if $y -> is_neg(); # Shifting infinitely far to the right. if ($y -> is_inf("+")) { return $x -> bnan(@r) if $x -> is_inf(); return $x -> bone("-", @r) if $x -> is_neg(); return $x -> bzero(@r); } # These cases change nothing. return $x -> round(@r) if $x -> is_zero() || $x -> is_inf() || $y -> is_zero(); # At this point, $x is either positive or negative, not zero. if ($x -> is_pos()) { $x -> {value} = $LIB -> _rsft($x -> {value}, $y -> {value}, 2); } else { my $n = $x -> {value}; my $d = $LIB -> _pow($LIB -> _new("2"), $y -> {value}); my ($p, $q) = $LIB -> _div($n, $d); $p = $LIB -> _inc($p) unless $LIB -> _is_zero($q); $x -> {value} = $p; } $x -> round(@r); } sub band { #(BINT or num_str, BINT or num_str) return BINT # compute x & y my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('band'); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> band($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } $r[3] = $y; # no push! # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan(@r) if !$x -> is_finite() || !$y -> is_finite(); if ($x->{sign} eq '+' && $y->{sign} eq '+') { $x->{value} = $LIB->_and($x->{value}, $y->{value}); } else { ($x->{value}, $x->{sign}) = $LIB->_sand($x->{value}, $x->{sign}, $y->{value}, $y->{sign}); } return $x -> round(@r); } sub bior { #(BINT or num_str, BINT or num_str) return BINT # compute x | y my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bior'); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bior($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } $r[3] = $y; # no push! # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan() if (!$x -> is_finite() || !$y -> is_finite()); if ($x->{sign} eq '+' && $y->{sign} eq '+') { $x->{value} = $LIB->_or($x->{value}, $y->{value}); } else { ($x->{value}, $x->{sign}) = $LIB->_sor($x->{value}, $x->{sign}, $y->{value}, $y->{sign}); } return $x -> round(@r); } sub bxor { #(BINT or num_str, BINT or num_str) return BINT # compute x ^ y my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bxor'); # If called with "foreign" arguments. unless ($y -> isa(__PACKAGE__)) { if ($y -> is_int()) { $y = $y -> as_int(); } else { return $x -> _upg() -> bxor($y, @r) if $class -> upgrade(); croak "Can't handle a ", ref($y), " in ", (caller(0))[3], "()"; } } $r[3] = $y; # no push! # If $x and/or $y is Inf or NaN, return NaN. return $x -> bnan(@r) if !$x -> is_finite() || !$y -> is_finite(); if ($x->{sign} eq '+' && $y->{sign} eq '+') { $x->{value} = $LIB->_xor($x->{value}, $y->{value}); } else { ($x->{value}, $x->{sign}) = $LIB->_sxor($x->{value}, $x->{sign}, $y->{value}, $y->{sign}); } return $x -> round(@r); } sub bnot { # (num_str or BINT) return BINT # represent ~x as twos-complement number my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bnot'); $x -> binc() -> bneg(@r); } ############################################################################### # Rounding methods ############################################################################### sub round { # Round $self according to given parameters, or given second argument's # parameters or global defaults my ($class, $self, @args) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # These signal no rounding: # # $x->round(undef) # $x->round(undef, undef, ...) # # The "@args <= 3" is necessary because the final set of parameters that # will be used for rounding depend on the "extra arguments", if any. if (@args == 1 && !defined($args[0]) || @args >= 2 && @args <= 3 && !defined($args[0]) && !defined($args[1])) { $self->{accuracy} = undef; $self->{precision} = undef; return $self; } my ($a, $p, $r) = splice @args, 0, 3; # $a accuracy, if given by caller # $p precision, if given by caller # $r round_mode, if given by caller # @args all 'other' arguments (0 for unary, 1 for binary ops) if (defined $a) { croak "accuracy must be a number, not '$a'" unless $a =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/; } if (defined $p) { croak "precision must be a number, not '$p'" unless $p =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/; } # now pick $a or $p, but only if we have got "arguments" if (!defined $a) { foreach ($self, @args) { # take the defined one, or if both defined, the one that is smaller $a = $_->{accuracy} if (defined $_->{accuracy}) && (!defined $a || $_->{accuracy} < $a); } } if (!defined $p) { # even if $a is defined, take $p, to signal error for both defined foreach ($self, @args) { # take the defined one, or if both defined, the one that is bigger # -2 > -3, and 3 > 2 $p = $_->{precision} if (defined $_->{precision}) && (!defined $p || $_->{precision} > $p); } } # if still none defined, use globals unless (defined $a || defined $p) { $a = $class -> accuracy(); $p = $class -> precision(); } # A == 0 is useless, so undef it to signal no rounding $a = undef if defined $a && $a == 0; # no rounding today? return $self unless defined $a || defined $p; # set A and set P is an fatal error if (defined $a && defined $p) { #carp "can't specify both accuracy and precision"; return $self -> bnan(); } # Infs and NaNs are not rounded, but assign rounding parameters to them. # #if ($self -> is_inf() || $self -> is_nan()) { # $self->{accuracy} = $a; # $self->{precision} = $p; # return $self; #} $r = $class -> round_mode() unless defined $r; if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) { croak("Unknown round mode '$r'"); } # now round, by calling either bround or bfround: if (defined $a) { $self -> bround(int($a), $r) if !defined $self->{accuracy} || $self->{accuracy} >= $a; } else { # both can't be undefined due to early out $self -> bfround(int($p), $r) if !defined $self->{precision} || $self->{precision} <= $p; } # bround() or bfround() already called bnorm() if nec. $self; } sub bround { # accuracy: +$n preserve $n digits from left, # -$n preserve $n digits from right (f.i. for 0.1234 style in MBF) # no-op for $n == 0 # and overwrite the rest with 0's, return normalized number # do not return $x->bnorm(), but $x my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bround'); my ($scale, $mode) = $x->_scale_a(@a); return $x if !defined $scale; # no-op if ($x -> is_zero() || $scale == 0) { $x->{accuracy} = $scale if !defined $x->{accuracy} || $x->{accuracy} > $scale; # 3 > 2 return $x; } return $x if !$x -> is_finite(); # inf, NaN # we have fewer digits than we want to scale to my $len = $x -> length(); # convert $scale to a scalar in case it is an object (put's a limit on the # number length, but this would already limited by memory constraints), # makes it faster $scale = $scale -> numify() if ref ($scale); # scale < 0, but > -len (not >=!) if (($scale < 0 && $scale < -$len-1) || ($scale >= $len)) { $x->{accuracy} = $scale if !defined $x->{accuracy} || $x->{accuracy} > $scale; # 3 > 2 return $x; } # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6 my ($pad, $digit_round, $digit_after); $pad = $len - $scale; $pad = abs($scale-1) if $scale < 0; # do not use digit(), it is very costly for binary => decimal # getting the entire string is also costly, but we need to do it only once my $xs = $LIB->_str($x->{value}); my $pl = -$pad-1; # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4 # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3 $digit_round = '0'; $digit_round = substr($xs, $pl, 1) if $pad <= $len; $pl++; $pl ++ if $pad >= $len; $digit_after = '0'; $digit_after = substr($xs, $pl, 1) if $pad > 0; # in case of 01234 we round down, for 6789 up, and only in case 5 we look # closer at the remaining digits of the original $x, remember decision my $round_up = 1; # default round up $round_up -- if ($mode eq 'trunc') || # trunc by round down ($digit_after =~ /[01234]/) || # round down anyway, # 6789 => round up ($digit_after eq '5') && # not 5000...0000 ($x->_scan_for_nonzero($pad, $xs, $len) == 0) && ( ($mode eq 'even') && ($digit_round =~ /[24680]/) || ($mode eq 'odd') && ($digit_round =~ /[13579]/) || ($mode eq '+inf') && ($x->{sign} eq '-') || ($mode eq '-inf') && ($x->{sign} eq '+') || ($mode eq 'zero') # round down if zero, sign adjusted below ); my $put_back = 0; # not yet modified if (($pad > 0) && ($pad <= $len)) { substr($xs, -$pad, $pad) = '0' x $pad; # replace with '00...' $xs =~ s/^0+(\d)/$1/; # "00000" -> "0" $put_back = 1; # need to put back } elsif ($pad > $len) { $x -> bzero(); # round to '0' } if ($round_up) { # what gave test above? $put_back = 1; # need to put back $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0 # we modify directly the string variant instead of creating a number # and adding it, since that is faster (we already have the string) my $c = 0; $pad ++; # for $pad == $len case while ($pad <= $len) { $c = substr($xs, -$pad, 1) + 1; $c = '0' if $c eq '10'; substr($xs, -$pad, 1) = $c; $pad++; last if $c != 0; # no overflow => early out } $xs = '1'.$xs if $c == 0; } $x->{value} = $LIB->_new($xs) if $put_back == 1; # put back, if needed $x->{accuracy} = $scale if $scale >= 0; if ($scale < 0) { $x->{accuracy} = $len+$scale; $x->{accuracy} = 0 if $scale < -$len; } $x; } sub bfround { # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.' # $n == 0 || $n == 1 => round to integer my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfround'); my ($scale, $mode) = $x->_scale_p(@p); return $x if !defined $scale; # no-op for Math::BigInt objects if $n <= 0 $x = $x -> bround($x -> length() - $scale, $mode) if $scale > 0; $x->{accuracy} = undef; $x->{precision} = $scale; # store new precision $x; } sub fround { # Exists to make life easier for switch between MBF and MBI (should we # autoload fxxx() like MBF does for bxxx()?) my $x = shift; $x = __PACKAGE__ -> new($x) unless ref $x; $x -> bround(@_); } sub bfloor { # round towards minus infinity; no-op since it's already integer my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfloor'); $x -> round(@r); } sub bceil { # round towards plus infinity; no-op since it's already int my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bceil'); $x -> round(@r); } sub bint { # round towards zero; no-op since it's already integer my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bint'); $x->round(@r); } ############################################################################### # Other mathematical methods ############################################################################### sub bgcd { # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff) # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_int(); } # Upgrade? my $upg = $class -> upgrade(); if ($upg) { my $do_upgrade = 0; for my $arg (@args) { unless ($arg -> isa(__PACKAGE__)) { $do_upgrade = 1; last; } } if ($do_upgrade) { my $x = shift @args; $x -> _upg(); return $x -> bgcd(@args); } } my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; $x->{value} = $LIB->_gcd($x->{value}, $y->{value}); last if $LIB->_is_one($x->{value}); } return $x -> babs(); } sub blcm { # Least Common Multiple # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_finite(); } for my $arg (@args) { return $class -> bzero() if $arg -> is_zero(); } # Upgrade? my $upg = $class -> upgrade(); if ($upg) { my $do_upgrade = 0; for my $arg (@args) { unless ($arg -> isa(__PACKAGE__)) { $do_upgrade = 1; last; } } if ($do_upgrade) { my $x = shift @args; $x -> _upg(); return $x -> bgcd(@args); } } my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; return $x -> bnan() if !$y -> is_int(); # is $y not integer? $x -> {value} = $LIB->_lcm($x -> {value}, $y -> {value}); } return $x -> babs(); } ############################################################################### # Object property methods ############################################################################### sub sign { # return the sign of the number: +/-/-inf/+inf/NaN my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; $x->{sign}; } sub digit { # return the nth decimal digit, negative values count backward, 0 is right my (undef, $x, $n, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; $n = $n -> numify() if ref($n); $LIB->_digit($x->{value}, $n || 0); } sub bdigitsum { # like digitsum(), but assigns the result to the invocand my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdigitsum'); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x if $x -> is_nan(); return $x -> bnan() if $x -> is_inf(); $x -> {value} = $LIB -> _digitsum($x -> {value}); $x -> {sign} = '+'; return $x; } sub digitsum { # compute sum of decimal digits and return it my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $class -> bnan() if $x -> is_nan(); return $class -> bnan() if $x -> is_inf(); my $y = $class -> bzero(); $y -> {value} = $LIB -> _digitsum($x -> {value}); $y -> round(@r); } sub length { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; my $e = $LIB->_len($x->{value}); wantarray ? ($e, 0) : $e; } sub mantissa { # return the mantissa (compatible to Math::BigFloat, e.g. reduced) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if (!$x -> is_finite()) { # for NaN, +inf, -inf: keep the sign return $class -> new($x->{sign}, @r); } my $m = $x -> copy(); $m -> precision(undef); $m -> accuracy(undef); # that's a bit inefficient: my $zeros = $LIB->_zeros($m->{value}); $m = $m -> brsft($zeros, 10) if $zeros != 0; $m -> round(@r); } sub exponent { # return a copy of the exponent (here always 0, NaN or 1 for $m == 0) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if (!$x -> is_finite()) { my $s = $x->{sign}; $s =~ s/^[+-]//; # NaN, -inf, +inf => NaN or inf return $class -> new($s, @r); } return $class -> bzero(@r) if $x -> is_zero(); # 12300 => 2 trailing zeros => exponent is 2 $class -> new($LIB->_zeros($x->{value}), @r); } sub parts { # return a copy of both the exponent and the mantissa my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; ($x -> mantissa(@r), $x -> exponent(@r)); } # Parts used for scientific notation with significand/mantissa and exponent as # integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4" # (exponent). sub sparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number. if ($x -> is_nan()) { my $mant = $class -> bnan(@r); # mantissa return $mant unless wantarray; # scalar context my $expo = $class -> bnan(@r); # exponent return $mant, $expo; # list context } # Infinity. if ($x -> is_inf()) { my $mant = $class -> binf($x->{sign}, @r); # mantissa return $mant unless wantarray; # scalar context my $expo = $class -> binf('+', @r); # exponent return $mant, $expo; # list context } # Finite number. my $mant = $x -> copy(); my $nzeros = $LIB -> _zeros($mant -> {value}); $mant -> {value} = $LIB -> _rsft($mant -> {value}, $LIB -> _new($nzeros), 10) if $nzeros != 0; return $mant unless wantarray; my $expo = $class -> new($nzeros, @r); return $mant, $expo; } # Parts used for normalized notation with significand/mantissa as either 0 or a # number in the semi-open interval [1,10). E.g., "12345.6789" is returned as # "1.23456789" and "4". sub nparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-Number and Infinity. return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf(); # Finite number. my ($mant, $expo) = $x -> sparts(@r); if ($mant -> bcmp(0)) { my ($ndigtot, $ndigfrac) = $mant -> length(); my $expo10adj = $ndigtot - $ndigfrac - 1; if ($expo10adj > 0) { # if mantissa is not an integer return $x -> _upg() -> nparts(@r) if $class -> upgrade(); $mant -> bnan(@r); return $mant unless wantarray; $expo -> badd($expo10adj, @r); return $mant, $expo; } } return $mant unless wantarray; return $mant, $expo; } # Parts used for engineering notation with significand/mantissa as either 0 or # a number in the semi-open interval [1,1000) and the exponent is a multiple of # 3. E.g., "12345.6789" is returned as "12.3456789" and "3". sub eparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number and Infinity. return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf(); # Finite number. my ($mant, $expo) = $x -> sparts(@r); if ($mant -> bcmp(0)) { my $ndigmant = $mant -> length(); $expo -> badd($ndigmant, @r); # $c is the number of digits that will be in the integer part of the # final mantissa. my $c = $expo -> copy() -> bdec() -> bmod(3) -> binc(); $expo -> bsub($c); if ($ndigmant > $c) { return $x -> _upg() -> eparts(@r) if $class -> upgrade(); $mant -> bnan(@r); return $mant unless wantarray; return $mant, $expo; } $mant -> blsft($c - $ndigmant, 10, @r); } return $mant unless wantarray; return $mant, $expo; } # Parts used for decimal notation, e.g., "12345.6789" is returned as "12345" # (integer part) and "0.6789" (fraction part). sub dparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Not-a-number. if ($x -> is_nan()) { my $int = $class -> bnan(@r); return $int unless wantarray; my $frc = $class -> bzero(@r); # or NaN? return $int, $frc; } # Infinity. if ($x -> is_inf()) { my $int = $class -> binf($x->{sign}, @r); return $int unless wantarray; my $frc = $class -> bzero(@r); return $int, $frc; } # Finite number. my $int = $x -> copy() -> round(@r); return $int unless wantarray; my $frc = $class -> bzero(@r); return $int, $frc; } # Fractional parts with the numerator and denominator as integers. E.g., # "123.4375" is returned as "1975" and "16". sub fparts { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # NaN => NaN/NaN if ($x -> is_nan()) { return $class -> bnan(@r) unless wantarray; return $class -> bnan(@r), $class -> bnan(@r); } # ±Inf => ±Inf/1 if ($x -> is_inf()) { my $numer = $class -> binf($x->{sign}, @r); return $numer unless wantarray; my $denom = $class -> bone(@r); return $numer, $denom; } # N => N/1 my $numer = $x -> copy() -> round(@r); return $numer unless wantarray; my $denom = $x -> copy(); $denom -> {sign} = "+"; $denom -> {value} = $LIB -> _one(); $denom -> round(@r); return $numer, $denom; } sub numerator { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> copy() -> round(@r); } sub denominator { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> is_nan() ? $class -> bnan(@r) : $class -> bone(@r); } ############################################################################### # String conversion methods ############################################################################### sub bstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $str = $LIB->_str($x->{value}); return $x->{sign} eq '-' ? "-$str" : $str; } # Scientific notation with significand/mantissa as an integer, e.g., "12345" is # written as "1.2345e+4". sub bsstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bsstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $expo = $LIB -> _zeros($x->{value}); my $mant = $LIB -> _str($x->{value}); $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo; } # Normalized notation, e.g., "12345" is written as "1.2345e+4". sub bnstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bnstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $expo = $LIB -> _zeros($x->{value}); my $mant = $LIB -> _str($x->{value}); $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros my $mantlen = CORE::length($mant); if ($mantlen > 1) { $expo += $mantlen - 1; # adjust exponent substr $mant, 1, 0, "."; # insert decimal point } ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo; } # Engineering notation, e.g., "12345" is written as "12.345e+3". sub bestr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bestr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $expo = $LIB -> _zeros($x->{value}); # number of trailing zeros my $mant = $LIB -> _str($x->{value}); # mantissa as a string $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros my $mantlen = CORE::length($mant); # length of mantissa $expo += $mantlen; my $dotpos = ($expo - 1) % 3 + 1; # offset of decimal point $expo -= $dotpos; if ($dotpos < $mantlen) { substr $mant, $dotpos, 0, "."; # insert decimal point } elsif ($dotpos > $mantlen) { $mant .= "0" x ($dotpos - $mantlen); # append zeros } ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo; } # Decimal notation, e.g., "12345" (no exponent). sub bdstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bdstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value}); } # Fraction notation, e.g., "123.4375" is written as "1975/16", but "123" is # written as "123", not "123/1". sub bfstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bfstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value}); } sub to_hex { # return as hex string with no prefix my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_hex(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $hex = $LIB->_to_hex($x->{value}); return $x->{sign} eq '-' ? "-$hex" : $hex; } sub to_oct { # return as octal string with no prefix my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_oct(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $oct = $LIB->_to_oct($x->{value}); return $x->{sign} eq '-' ? "-$oct" : $oct; } sub to_bin { # return as binary string with no prefix my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> to_bin(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Finite number my $bin = $LIB->_to_bin($x->{value}); return $x->{sign} eq '-' ? "-$bin" : $bin; } sub to_bytes { # return a byte string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; croak("to_bytes() requires a finite, non-negative integer") if $x -> is_neg() || ! $x -> is_int(); return $x -> _upg() -> to_bytes(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); croak("to_bytes() requires a newer version of the $LIB library.") unless $LIB -> can('_to_bytes'); return $LIB->_to_bytes($x->{value}); } sub to_ieee754 { my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> _upg() -> to_ieee754($format, @r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); croak("the value to convert must be an integer, +/-infinity, or NaN") unless $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x -> as_float() -> to_ieee754($format); } sub to_fp80 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); return $x -> _upg() -> to_fp80(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); croak("the value to convert must be an integer, +/-infinity, or NaN") unless $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x -> as_float(@r) -> to_fp80(); } sub to_base { # return a base anything string # $cs is the collation sequence my ($class, $x, $base, $cs, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; croak("the value to convert must be a finite, non-negative integer") if $x -> is_neg() || !$x -> is_int(); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); # If no collating sequence is given, pass some of the conversions to # methods optimized for those cases. unless (defined $cs) { return $x -> to_bin() if $base == 2; return $x -> to_oct() if $base == 8; return uc $x -> to_hex() if $base == 16; return $x -> bstr() if $base == 10; } croak("to_base() requires a newer version of the $LIB library.") unless $LIB -> can('_to_base'); return $x -> _upg() -> to_basen($base, $cs, @r) if $class -> upgrade() && (!$x -> isa(__PACKAGE__) || !$base -> isa(__PACKAGE__)); return $LIB->_to_base($x->{value}, $base -> {value}, defined($cs) ? $cs : ()); } sub to_base_num { # return a base anything array ref, e.g., # Math::BigInt -> new(255) -> to_base_num(10) returns [2, 5, 5]; # $cs is the collation sequence my ($class, $x, $base, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; croak("the value to convert must be a finite non-negative integer") if $x -> is_neg() || !$x -> is_int(); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); croak("to_base() requires a newer version of the $LIB library.") unless $LIB -> can('_to_base'); return $x -> _upg() -> to_base_num($base, @r) if $class -> upgrade() && (!$x -> isa(__PACKAGE__) || !$base -> isa(__PACKAGE__)); # Get a reference to an array of library thingies, and replace each element # with a Math::BigInt object using that thingy. my $vals = $LIB -> _to_base_num($x->{value}, $base -> {value}); for my $i (0 .. $#$vals) { my $x = $class -> bzero(); $x -> {value} = $vals -> [$i]; $vals -> [$i] = $x; } return $vals; } sub as_hex { # return as hex string, with prefixed 0x my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if !$x -> is_finite(); # inf, nan etc return $x -> _upg() -> as_hex(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); my $hex = $LIB->_as_hex($x->{value}); return $x->{sign} eq '-' ? "-$hex" : $hex; } sub as_oct { # return as octal string, with prefixed 0 my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if !$x -> is_finite(); # inf, nan etc return $x -> _upg() -> as_oct(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); my $oct = $LIB->_as_oct($x->{value}); return $x->{sign} eq '-' ? "-$oct" : $oct; } sub as_bin { # return as binary string, with prefixed 0b my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> bstr() if !$x -> is_finite(); # inf, nan etc return $x -> _upg() -> as_bin(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); my $bin = $LIB->_as_bin($x->{value}); return $x->{sign} eq '-' ? "-$bin" : $bin; } *as_bytes = \&to_bytes; ############################################################################### # Other conversion methods ############################################################################### sub numify { # Make a Perl scalar number from a Math::BigInt object. my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if ($x -> is_nan()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $inf - $inf; } if ($x -> is_inf()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $x -> is_negative() ? -$inf : $inf; } return $x -> _upg() -> numify(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); my $num = 0 + $LIB->_num($x->{value}); return $x->{sign} eq '-' ? -$num : $num; } ############################################################################### # Private methods and functions. ############################################################################### sub _trailing_zeros { # return the amount of trailing zeros in $x (as scalar) my $x = shift; $x = __PACKAGE__ -> new($x) unless ref $x; return 0 if !$x -> is_finite(); # NaN, inf, -inf etc $LIB->_zeros($x->{value}); # must handle odd values, 0 etc } sub _scan_for_nonzero { # internal, used by bround() to scan for non-zeros after a '5' my ($x, $pad, $xs, $len) = @_; return 0 if $len == 1; # "5" is trailed by invisible zeros my $follow = $pad - 1; return 0 if $follow > $len || $follow < 1; # use the string form to check whether only '0's follow or not substr ($xs, -$follow) =~ /[^0]/ ? 1 : 0; } sub _find_round_parameters { # After any operation or when calling round(), the result is rounded by # regarding the A & P from arguments, local parameters, or globals. # !!!!!!! If you change this, remember to change round(), too! !!!!!!!!!! # This procedure finds the round parameters, but it is for speed reasons # duplicated in round. Otherwise, it is tested by the testsuite and used # by bdiv(). # returns ($self) or ($self, $a, $p, $r) - sets $self to NaN of both A and # P were requested/defined (locally or globally or both) my ($self, $a, $p, $r, @args) = @_; # $a accuracy, if given by caller # $p precision, if given by caller # $r round_mode, if given by caller # @args all 'other' arguments (0 for unary, 1 for binary ops) my $class = ref($self); # find out class of argument(s) # convert to normal scalar for speed and correctness in inner parts $a = $a -> can('numify') ? $a -> numify() : "$a" if defined $a && ref($a); $p = $p -> can('numify') ? $p -> numify() : "$p" if defined $p && ref($p); # now pick $a or $p, but only if we have got "arguments" if (!defined $a) { foreach ($self, @args) { # take the defined one, or if both defined, the one that is smaller $a = $_->{accuracy} if (defined $_->{accuracy}) && (!defined $a || $_->{accuracy} < $a); } } if (!defined $p) { # even if $a is defined, take $p, to signal error for both defined foreach ($self, @args) { # take the defined one, or if both defined, the one that is bigger # -2 > -3, and 3 > 2 $p = $_->{precision} if (defined $_->{precision}) && (!defined $p || $_->{precision} > $p); } } # if still none defined, use globals (#2) $a = $class -> accuracy() unless defined $a; $p = $class -> precision() unless defined $p; # A == 0 is useless, so undef it to signal no rounding $a = undef if defined $a && $a == 0; # no rounding today? return ($self) unless defined $a || defined $p; # early out # set A and set P is an fatal error return ($self -> bnan()) if defined $a && defined $p; # error $r = $class -> round_mode() unless defined $r; if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) { croak("Unknown round mode '$r'"); } $a = int($a) if defined $a; $p = int($p) if defined $p; ($self, $a, $p, $r); } # Return true if the input is numeric and false if it is a string. sub _is_numeric { shift; # class name my $value = shift; no warnings 'numeric'; # detect numbers # string & "" -> "" # number & "" -> 0 (with warning) # nan and inf can detect as numbers, so check with * 0 return unless CORE::length((my $dummy = "") & $value); return unless 0 + $value eq $value; return 1 if $value * 0 == 0; return -1; # Inf/NaN } # Trims the sign of the significand, the (absolute value of the) significand, # the sign of the exponent, and the (absolute value of the) exponent. The # returned values have no underscores ("_") or unnecessary leading or trailing # zeros. sub _trim_split_parts { shift; # class name my $sig_sgn = shift() || '+'; my $sig_str = shift() || '0'; my $exp_sgn = shift() || '+'; my $exp_str = shift() || '0'; $sig_str =~ tr/_//d; # "1.0_0_0" -> "1.000" $sig_str =~ s/^0+//; # "01.000" -> "1.000" $sig_str =~ s/\.0*$// # "1.000" -> "1" || $sig_str =~ s/(\..*[^0])0+$/$1/; # "1.010" -> "1.01" $sig_str = '0' unless CORE::length($sig_str); return '+', '0', '+', '0' if $sig_str eq '0'; $exp_str =~ tr/_//d; # "01_234" -> "01234" $exp_str =~ s/^0+//; # "01234" -> "1234" $exp_str = '0' unless CORE::length($exp_str); $exp_sgn = '+' if $exp_str eq '0'; # "+3e-0" -> "+3e+0" return $sig_sgn, $sig_str, $exp_sgn, $exp_str; } # Takes any string representing a valid decimal number and splits it into four # strings: the sign of the significand, the absolute value of the significand, # the sign of the exponent, and the absolute value of the exponent. Both the # significand and the exponent are in base 10. # # Perl accepts literals like the following. The value is 100.1. # # 1__0__.__0__1__e+0__1__ (prints "Misplaced _ in number") # 1_0.0_1e+0_1 # # Strings representing decimal numbers do not allow underscores, so only the # following is valid # # "10.01e+01" sub _dec_str_to_dec_str_parts { my $class = shift; my $str = shift; if ($str =~ / ^ # optional leading whitespace \s* # optional sign ( [+-]? ) # significand ( # integer part and optional fraction part ... \d+ (?: _+ \d+ )* _* (?: \. (?: _* \d+ (?: _+ \d+ )* _* )? )? | # ... or mandatory fraction part \. \d+ (?: _+ \d+ )* _* ) # optional exponent (?: [Ee] ( [+-]? ) ( \d+ (?: _+ \d+ )* _* ) )? # optional trailing whitespace \s* $ /x) { return $class -> _trim_split_parts($1, $2, $3, $4); } return; } # Takes any string representing a valid hexadecimal number and splits it into # four strings: the sign of the significand, the absolute value of the # significand, the sign of the exponent, and the absolute value of the # exponent. The significand is in base 16, and the exponent is in base 2. # # Perl accepts literals like the following. The "x" might be a capital "X". The # value is 32.0078125. # # 0x__1__0__.0__1__p+0__1__ (prints "Misplaced _ in number") # 0x1_0.0_1p+0_1 # # The CORE::hex() function does not accept floating point accepts # # "0x_1_0" # "x_1_0" # "_1_0" sub _hex_str_to_hex_str_parts { my $class = shift; my $str = shift; if ($str =~ / ^ # optional leading whitespace \s* # optional sign ( [+-]? ) # optional hex prefix (?: 0? [Xx] _* )? # significand using the hex digits 0..9 and a..f ( # integer part and optional fraction part ... [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _* (?: \. (?: _* [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _* )? )? | # ... or mandatory fraction part \. [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _* ) # optional exponent (power of 2) using decimal digits (?: [Pp] ( [+-]? ) ( \d+ (?: _+ \d+ )* _* ) )? # optional trailing whitespace \s* $ /x) { return $class -> _trim_split_parts($1, $2, $3, $4); } return; } # Takes any string representing a valid octal number and splits it into four # strings: the sign of the significand, the absolute value of the significand, # the sign of the exponent, and the absolute value of the exponent. The # significand is in base 8, and the exponent is in base 2. sub _oct_str_to_oct_str_parts { my $class = shift; my $str = shift; if ($str =~ / ^ # optional leading whitespace \s* # optional sign ( [+-]? ) # optional octal prefix (?: 0? [Oo] _* )? # significand using the octal digits 0..7 ( # integer part and optional fraction part ... [0-7]+ (?: _+ [0-7]+ )* _* (?: \. (?: _* [0-7]+ (?: _+ [0-7]+ )* _* )? )? | # ... or mandatory fraction part \. [0-7]+ (?: _+ [0-7]+ )* _* ) # optional exponent (power of 2) using decimal digits (?: [Pp] ( [+-]? ) ( \d+ (?: _+ \d+ )* _* ) )? # optional trailing whitespace \s* $ /x) { return $class -> _trim_split_parts($1, $2, $3, $4); } return; } # Takes any string representing a valid binary number and splits it into four # strings: the sign of the significand, the absolute value of the significand, # the sign of the exponent, and the absolute value of the exponent. The # significand is in base 2, and the exponent is in base 2. sub _bin_str_to_bin_str_parts { my $class = shift; my $str = shift; if ($str =~ / ^ # optional leading whitespace \s* # optional sign ( [+-]? ) # optional binary prefix (?: 0? [Bb] _* )? # significand using the binary digits 0 and 1 ( # integer part and optional fraction part ... [01]+ (?: _+ [01]+ )* _* (?: \. (?: _* [01]+ (?: _+ [01]+ )* _* )? )? | # ... or mandatory fraction part \. [01]+ (?: _+ [01]+ )* _* ) # optional exponent (power of 2) using decimal digits (?: [Pp] ( [+-]? ) ( \d+ (?: _+ \d+ )* _* ) )? # optional trailing whitespace \s* $ /x) { return $class -> _trim_split_parts($1, $2, $3, $4); } return; } # Takes any string representing a valid decimal number and splits it into four # parts: the sign of the significand, the absolute value of the significand as # a libray thingy, the sign of the exponent, and the absolute value of the # exponent as a library thingy. sub _dec_str_parts_to_flt_lib_parts { shift; # class name my ($sig_sgn, $sig_str, $exp_sgn, $exp_str) = @_; # Handle zero. if ($sig_str eq '0') { return '+', $LIB -> _zero(), '+', $LIB -> _zero(); } # Absolute value of exponent as library "object". my $exp_lib = $LIB -> _new($exp_str); # If there is a dot in the significand, remove it so the significand # becomes an integer and adjust the exponent accordingly. Also remove # leading zeros which might now appear in the significand. E.g., # # 12.345e-2 -> 12345e-5 # 12.345e+2 -> 12345e-1 # 0.0123e+5 -> 00123e+1 -> 123e+1 my $idx = index $sig_str, '.'; if ($idx >= 0) { substr($sig_str, $idx, 1) = ''; # delta = length - index my $delta = $LIB -> _new(CORE::length($sig_str)); $delta = $LIB -> _sub($delta, $LIB -> _new($idx)); # exponent - delta ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+'); $sig_str =~ s/^0+//; } # If there are trailing zeros in the significand, remove them and # adjust the exponent. E.g., # # 12340e-5 -> 1234e-4 # 12340e-1 -> 1234e0 # 12340e+3 -> 1234e4 if ($sig_str =~ s/(0+)\z//) { my $len = CORE::length($1); ($exp_lib, $exp_sgn) = $LIB -> _sadd($exp_lib, $exp_sgn, $LIB -> _new($len), '+'); } # At this point, the significand is empty or an integer with no trailing # zeros. The exponent is in base 10. unless (CORE::length $sig_str) { return '+', $LIB -> _zero(), '+', $LIB -> _zero(); } # Absolute value of significand as library "object". my $sig_lib = $LIB -> _new($sig_str); return $sig_sgn, $sig_lib, $exp_sgn, $exp_lib; } # Takes any string representing a valid binary number and splits it into four # parts: the sign of the significand, the absolute value of the significand as # a libray thingy, the sign of the exponent, and the absolute value of the # exponent as a library thingy. sub _bin_str_parts_to_flt_lib_parts { shift; # class name my ($sig_sgn, $sig_str, $exp_sgn, $exp_str, $bpc) = @_; my $bpc_lib = $LIB -> _new($bpc); # Handle zero. if ($sig_str eq '0') { return '+', $LIB -> _zero(), '+', $LIB -> _zero(); } # Absolute value of exponent as library "object". my $exp_lib = $LIB -> _new($exp_str); # If there is a dot in the significand, remove it so the significand # becomes an integer and adjust the exponent accordingly. Also remove # leading zeros which might now appear in the significand. E.g., with # hexadecimal numbers # # 12.345p-2 -> 12345p-14 # 12.345p+2 -> 12345p-10 # 0.0123p+5 -> 00123p-11 -> 123p-11 my $idx = index $sig_str, '.'; if ($idx >= 0) { substr($sig_str, $idx, 1) = ''; # delta = (length - index) * bpc my $delta = $LIB -> _new(CORE::length($sig_str)); $delta = $LIB -> _sub($delta, $LIB -> _new($idx)); $delta = $LIB -> _mul($delta, $bpc_lib) if $bpc != 1; # exponent - delta ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+'); $sig_str =~ s/^0+//; } # If there are trailing zeros in the significand, remove them and # adjust the exponent accordingly. E.g., with hexadecimal numbers # # 12340p-5 -> 1234p-1 # 12340p-1 -> 1234p+3 # 12340p+3 -> 1234p+7 if ($sig_str =~ s/(0+)\z//) { # delta = length * bpc my $delta = $LIB -> _new(CORE::length($1)); $delta = $LIB -> _mul($delta, $bpc_lib) if $bpc != 1; # exponent + delta ($exp_lib, $exp_sgn) = $LIB -> _sadd($exp_lib, $exp_sgn, $delta, '+'); } # At this point, the significand is empty or an integer with no leading # or trailing zeros. The exponent is in base 2. unless (CORE::length $sig_str) { return '+', $LIB -> _zero(), '+', $LIB -> _zero(); } # Absolute value of significand as library "object". my $sig_lib = $bpc == 1 ? $LIB -> _from_bin('0b' . $sig_str) : $bpc == 3 ? $LIB -> _from_oct('0' . $sig_str) : $bpc == 4 ? $LIB -> _from_hex('0x' . $sig_str) : die "internal error: invalid exponent multiplier"; # If the exponent (in base 2) is positive or zero ... if ($exp_sgn eq '+') { if (!$LIB -> _is_zero($exp_lib)) { # Multiply significand by 2 raised to the exponent. my $p = $LIB -> _pow($LIB -> _two(), $exp_lib); $sig_lib = $LIB -> _mul($sig_lib, $p); $exp_lib = $LIB -> _zero(); } } # ... else if the exponent is negative ... else { # Rather than dividing the significand by 2 raised to the absolute # value of the exponent, multiply the significand by 5 raised to the # absolute value of the exponent and let the exponent be in base 10: # # a * 2^(-b) = a * 5^b * 10^(-b) = c * 10^(-b), where c = a * 5^b my $p = $LIB -> _pow($LIB -> _new("5"), $exp_lib); $sig_lib = $LIB -> _mul($sig_lib, $p); } # Adjust for the case when the conversion to decimal introduced trailing # zeros in the significand. my $n = $LIB -> _zeros($sig_lib); if ($n) { $n = $LIB -> _new($n); $sig_lib = $LIB -> _rsft($sig_lib, $n, 10); ($exp_lib, $exp_sgn) = $LIB -> _sadd($exp_lib, $exp_sgn, $n, '+'); } return $sig_sgn, $sig_lib, $exp_sgn, $exp_lib; } # Takes any string representing a valid hexadecimal number and splits it into # four parts: the sign of the significand, the absolute value of the # significand as a libray thingy, the sign of the exponent, and the absolute # value of the exponent as a library thingy. sub _hex_str_to_flt_lib_parts { my $class = shift; my $str = shift; if (my @parts = $class -> _hex_str_to_hex_str_parts($str)) { # 4 bits pr. chr return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 4); } return; } # Takes any string representing a valid octal number and splits it into four # parts: the sign of the significand, the absolute value of the significand as # a libray thingy, the sign of the exponent, and the absolute value of the # exponent as a library thingy. sub _oct_str_to_flt_lib_parts { my $class = shift; my $str = shift; if (my @parts = $class -> _oct_str_to_oct_str_parts($str)) { # 3 bits pr. chr return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 3); } return; } # Takes any string representing a valid binary number and splits it into four # parts: the sign of the significand, the absolute value of the significand as # a libray thingy, the sign of the exponent, and the absolute value of the # exponent as a library thingy. sub _bin_str_to_flt_lib_parts { my $class = shift; my $str = shift; if (my @parts = $class -> _bin_str_to_bin_str_parts($str)) { # 1 bit pr. chr return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 1); } return; } # Decimal string is split into the sign of the signficant, the absolute value # of the significand as library thingy, the sign of the exponent, and the # absolute value of the exponent as a a library thingy. sub _dec_str_to_flt_lib_parts { my $class = shift; my $str = shift; if (my @parts = $class -> _dec_str_to_dec_str_parts($str)) { return $class -> _dec_str_parts_to_flt_lib_parts(@parts); } return; } # Decimal string to a string using decimal floating point notation. sub dec_str_to_dec_flt_str { my $class = shift; my $str = shift; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_flt_str(@parts); } return; } # Hexdecimal string to a string using decimal floating point notation. sub hex_str_to_dec_flt_str { my $class = shift; my $str = shift; if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_flt_str(@parts); } return; } # Octal string to a string using decimal floating point notation. sub oct_str_to_dec_flt_str { my $class = shift; my $str = shift; if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_flt_str(@parts); } return; } # Binary string to a string decimal floating point notation. sub bin_str_to_dec_flt_str { my $class = shift; my $str = shift; if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_flt_str(@parts); } return; } # Decimal string to decimal notation (no exponent). sub dec_str_to_dec_str { my $class = shift; my $str = shift; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_dec_str(@parts); } return; } # Hexdecimal string to decimal notation (no exponent). sub hex_str_to_dec_str { my $class = shift; my $str = shift; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_dec_str(@parts); } return; } # Octal string to decimal notation (no exponent). sub oct_str_to_dec_str { my $class = shift; my $str = shift; if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_dec_str(@parts); } return; } # Binary string to decimal notation (no exponent). sub bin_str_to_dec_str { my $class = shift; my $str = shift; if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) { return $class -> _flt_lib_parts_to_dec_str(@parts); } return; } sub _flt_lib_parts_to_flt_str { my $class = shift; my @parts = @_; return $parts[0] . $LIB -> _str($parts[1]) . 'e' . $parts[2] . $LIB -> _str($parts[3]); } sub _flt_lib_parts_to_dec_str { my $class = shift; my @parts = @_; # The number is an integer iff the exponent is non-negative. if ($parts[2] eq '+') { my $str = $parts[0] . $LIB -> _str($LIB -> _lsft($parts[1], $parts[3], 10)); return $str; } # If it is not an integer, add a decimal point. else { my $mant = $LIB -> _str($parts[1]); my $mant_len = CORE::length($mant); my $expo = $LIB -> _num($parts[3]); my $len_cmp = $mant_len <=> $expo; if ($len_cmp <= 0) { return $parts[0] . '0.' . '0' x ($expo - $mant_len) . $mant; } else { substr $mant, $mant_len - $expo, 0, '.'; return $parts[0] . $mant; } } } # Takes four arguments, the sign of the significand, the absolute value of the # significand as a libray thingy, the sign of the exponent, and the absolute # value of the exponent as a library thingy, and returns three parts: the sign # of the rational number, the absolute value of the numerator as a libray # thingy, and the absolute value of the denominator as a library thingy. # # For example, to convert data representing the value "+12e-2", then # # $sm = "+"; # $m = $LIB -> _new("12"); # $se = "-"; # $e = $LIB -> _new("2"); # ($sr, $n, $d) = $class -> _flt_lib_parts_to_rat_lib_parts($sm, $m, $se, $e); # # returns data representing the same value written as the fraction "+3/25" # # $sr = "+" # $n = $LIB -> _new("3"); # $d = $LIB -> _new("12"); sub _flt_lib_parts_to_rat_lib_parts { my $self = shift; my ($msgn, $mabs, $esgn, $eabs) = @_; if ($esgn eq '-') { # "12e-2" -> "12/100" -> "3/25" my $num_lib = $LIB -> _copy($mabs); my $den_lib = $LIB -> _1ex($LIB -> _num($eabs)); my $gcd_lib = $LIB -> _gcd($LIB -> _copy($num_lib), $den_lib); $num_lib = $LIB -> _div($LIB -> _copy($num_lib), $gcd_lib); $den_lib = $LIB -> _div($den_lib, $gcd_lib); return $msgn, $num_lib, $den_lib; } elsif (!$LIB -> _is_zero($eabs)) { # "12e+2" -> "1200" -> "1200/1" return $msgn, $LIB -> _lsft($LIB -> _copy($mabs), $eabs, 10), $LIB -> _one(); } else { # "12e+0" -> "12" -> "12/1" return $msgn, $mabs, $LIB -> _one(); } } # Add the function _register_callback() to Math::BigInt. It is provided for # backwards compabibility so that old version of Math::BigRat etc. don't # complain about missing it. sub _register_callback { } ############################################################################### # Other methods. ############################################################################### sub objectify { # Convert strings and "foreign objects" to the objects we want. # The first argument, $count, is the number of following arguments that # objectify() looks at and converts to objects. The first is a classname. # If the given count is 0, all arguments will be used. # After the count is read, objectify obtains the name of the class to which # the following arguments are converted. If the second argument is a # reference, use the reference type as the class name. Otherwise, if it is # a string that looks like a class name, use that. Otherwise, use $class. # Caller: Gives us: # # $x->badd(1); => ref x, scalar y # Class->badd(1, 2); => classname x (scalar), scalar x, scalar y # Class->badd(Class->(1), 2); => classname x (scalar), ref x, scalar y # Math::BigInt::badd(1, 2); => scalar x, scalar y # A shortcut for the common case $x->unary_op(), in which case the argument # list is (0, $x) or (1, $x). return (ref($_[1]), $_[1]) if @_ == 2 && ($_[0] || 0) == 1 && ref($_[1]); # Check the context. unless (wantarray) { croak(__PACKAGE__ . "::objectify() needs list context"); } # Get the number of arguments to objectify. my $count = shift; # Initialize the output array. my @a = @_; # If the first argument is a reference, use that reference type as our # class name. Otherwise, if the first argument looks like a class name, # then use that as our class name. Otherwise, use the default class name. my $class; if (ref($a[0])) { # reference? $class = ref($a[0]); } elsif ($a[0] =~ /^[A-Z].*::/) { # string with class name? $class = shift @a; } else { $class = __PACKAGE__; # default class name } $count ||= @a; unshift @a, $class; # What we upgrade to, if anything. Note that we need the whole upgrade # chain, since there might be multiple levels of upgrading. E.g., class A # upgrades to class B, which upgrades to class C. Delay getting the chain # until we actually need it. my @upg = (); my $have_upgrade_chain = 0; # Disable downgrading, because Math::BigFloat -> foo('1.0', '2.0') needs # floats. my $dng = $class -> downgrade(); $class -> downgrade(undef); ARG: for my $i (1 .. $count) { my $ref = ref $a[$i]; # Perl scalars are fed to the appropriate constructor. unless ($ref) { $a[$i] = $class -> new($a[$i]); next; } # If it is an object of the right class, all is fine. next if $ref -> isa($class); # Upgrading is OK, so skip further tests if the argument is upgraded, # but first get the whole upgrade chain if we haven't got it yet. unless ($have_upgrade_chain) { my $cls = $class; my $upg = $cls -> upgrade(); while (defined $upg) { last if $upg eq $cls; push @upg, $upg; $cls = $upg; $upg = $cls -> upgrade(); } $have_upgrade_chain = 1; } for my $upg (@upg) { next ARG if $ref -> isa($upg); } # See if we can call one of the as_xxx() methods. We don't know whether # the as_xxx() method returns an object or a scalar, so re-check # afterwards. my $recheck = 0; if ($class -> isa('Math::BigInt')) { if ($a[$i] -> can('as_int')) { $a[$i] = $a[$i] -> as_int(); $recheck = 1; } elsif ($a[$i] -> can('as_number')) { $a[$i] = $a[$i] -> as_number(); $recheck = 1; } } elsif ($class -> isa('Math::BigRat')) { if ($a[$i] -> can('as_rat')) { $a[$i] = $a[$i] -> as_rat(); $recheck = 1; } } elsif ($class -> isa('Math::BigFloat')) { if ($a[$i] -> can('as_float')) { $a[$i] = $a[$i] -> as_float(); $recheck = 1; } } # If we called one of the as_xxx() methods, recheck. if ($recheck) { $ref = ref($a[$i]); # Perl scalars are fed to the appropriate constructor. unless ($ref) { $a[$i] = $class -> new($a[$i]); next; } # If it is an object of the right class, all is fine. next if $ref -> isa($class); } # Last resort. $a[$i] = $class -> new($a[$i]); } # Restore the downgrading. $class -> downgrade($dng); return @a; } sub import { my $class = shift; $IMPORT++; # remember we did import() my @a; # unrecognized arguments while (@_) { my $param = shift; # Enable overloading of constants. if ($param eq ':constant') { overload::constant integer => sub { $class -> new(shift); }, float => sub { $class -> new(shift); }, binary => sub { # E.g., a literal 0377 shall result in an object whose # value is decimal 255, but new("0377") returns decimal # 377. return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/; $class -> new(shift); }; next; } # Upgrading. if ($param eq 'upgrade') { $class -> upgrade(shift); next; } # Downgrading. if ($param eq 'downgrade') { $class -> downgrade(shift); next; } # Accuracy. if ($param eq 'accuracy') { $class -> accuracy(shift); next; } # Precision. if ($param eq 'precision') { $class -> precision(shift); next; } # Rounding mode. if ($param eq 'round_mode') { $class -> round_mode(shift); next; } # Fall-back accuracy. if ($param eq 'div_scale') { $class -> div_scale(shift); next; } # Backend library. if ($param =~ /^(lib|try|only)\z/) { # try => 0 (no warn if unavailable module) # lib => 1 (warn on fallback) # only => 2 (die on fallback) # Get the list of user-specified libraries. croak "Library argument for import parameter '$param' is missing" unless @_; my $libs = shift; croak "Library argument for import parameter '$param' is undefined" unless defined($libs); # Check and clean up the list of user-specified libraries. my @libs; for my $lib (split /,/, $libs) { $lib =~ s/^\s+//; $lib =~ s/\s+$//; if ($lib =~ /[^a-zA-Z0-9_:]/) { carp "Library name '$lib' contains invalid characters"; next; } if (! CORE::length $lib) { carp "Library name is empty"; next; } $lib = "Math::BigInt::$lib" if $lib !~ /^Math::BigInt::/i; # If a library has already been loaded, that is OK only if the # requested library is identical to the loaded one. if (defined($LIB)) { if ($lib ne $LIB) { #carp "Library '$LIB' has already been loaded, so", # " ignoring requested library '$lib'"; } next; } push @libs, $lib; } next if defined $LIB; croak "Library list contains no valid libraries" unless @libs; # Try to load the specified libraries, if any. for (my $i = 0 ; $i <= $#libs ; $i++) { my $lib = $libs[$i]; eval "require $lib"; unless ($@) { $LIB = $lib; last; } } next if defined $LIB; # No library has been loaded, and none of the requested libraries # could be loaded, and fallback and the user doesn't allow # fallback. if ($param eq 'only') { croak "Couldn't load the specified math lib(s) ", join(", ", map "'$_'", @libs), ", and fallback to '$DEFAULT_LIB' is not allowed"; } # No library has been loaded, and none of the requested libraries # could be loaded, but the user accepts the use of a fallback # library, so try to load it. eval "require $DEFAULT_LIB"; if ($@) { croak "Couldn't load the specified math lib(s) ", join(", ", map "'$_'", @libs), ", not even the fallback lib '$DEFAULT_LIB'"; } # The fallback library was successfully loaded, but the user # might want to know that we are using the fallback. if ($param eq 'lib') { carp "Couldn't load the specified math lib(s) ", join(", ", map "'$_'", @libs), ", so using fallback lib '$DEFAULT_LIB'"; } next; } # Unrecognized parameter. push @a, $param; } # Any non-':constant' stuff is handled by our parent, Exporter $class -> SUPER::import(@a); # for subclasses $class -> export_to_level(1, $class, @a) if @a; # need this, too # We might not have loaded any backend library yet, either because the user # didn't specify any, or because the specified libraries failed to load and # the user allows the use of a fallback library. unless (defined $LIB) { eval "require $DEFAULT_LIB"; if ($@) { croak "No lib specified, and couldn't load the default", " lib '$DEFAULT_LIB'"; } $LIB = $DEFAULT_LIB; } # import done } 1; __END__ =pod =head1 NAME Math::BigInt - arbitrary size integer math package =head1 SYNOPSIS use Math::BigInt; # or make it faster with huge numbers: install (optional) # Math::BigInt::GMP and always use (it falls back to # pure Perl if the GMP library is not installed): # (See also the L section!) # to warn if Math::BigInt::GMP cannot be found, use use Math::BigInt lib => 'GMP'; # to suppress the warning if Math::BigInt::GMP cannot be found, use # use Math::BigInt try => 'GMP'; # to die if Math::BigInt::GMP cannot be found, use # use Math::BigInt only => 'GMP'; # Configuration methods (may be used as class methods and instance methods) Math::BigInt->accuracy($n); # set accuracy Math::BigInt->accuracy(); # get accuracy Math::BigInt->precision($n); # set precision Math::BigInt->precision(); # get precision Math::BigInt->round_mode($m); # set rounding mode, must be # 'even', 'odd', '+inf', '-inf', # 'zero', 'trunc', or 'common' Math::BigInt->round_mode(); # get class rounding mode Math::BigInt->div_scale($n); # set fallback accuracy Math::BigInt->div_scale(); # get fallback accuracy Math::BigInt->trap_inf($b); # trap infinities or not Math::BigInt->trap_inf(); # get trap infinities status Math::BigInt->trap_nan($b); # trap NaNs or not Math::BigInt->trap_nan(); # get trap NaNs status Math::BigInt->config($par, $val); # set configuration parameter Math::BigInt->config($par); # get configuration parameter Math::BigInt->config(); # get hash with configuration Math::BigFloat->config("lib"); # get name of backend library # Generic constructor method (always returns a new object) $x = Math::BigInt->new($str); # defaults to 0 $x = Math::BigInt->new('256'); # from decimal $x = Math::BigInt->new('0256'); # from decimal $x = Math::BigInt->new('0xcafe'); # from hexadecimal $x = Math::BigInt->new('0x1.fap+7'); # from hexadecimal $x = Math::BigInt->new('0o377'); # from octal $x = Math::BigInt->new('0o1.35p+6'); # from octal $x = Math::BigInt->new('0b101'); # from binary $x = Math::BigInt->new('0b1.101p+3'); # from binary # Specific constructor methods (no prefix needed; when used as # instance method, the value is assigned to the invocand) $x = Math::BigInt->from_dec('234'); # from decimal $x = Math::BigInt->from_hex('cafe'); # from hexadecimal $x = Math::BigInt->from_hex('1.fap+7'); # from hexadecimal $x = Math::BigInt->from_oct('377'); # from octal $x = Math::BigInt->from_oct('1.35p+6'); # from octal $x = Math::BigInt->from_bin('1101'); # from binary $x = Math::BigInt->from_bin('1.101p+3'); # from binary $x = Math::BigInt->from_bytes($bytes); # from byte string $x = Math::BigInt->from_base('why', 36); # from any base $x = Math::BigInt->from_base_num([1, 0], 2); # from any base $x = Math::BigInt->from_ieee754($b, $fmt); # from IEEE-754 bytes $x = Math::BigInt->from_fp80($b); # from x86 80-bit $x = Math::BigInt->bzero(); # create a +0 $x = Math::BigInt->bone(); # create a +1 $x = Math::BigInt->bone('-'); # create a -1 $x = Math::BigInt->binf(); # create a +inf $x = Math::BigInt->binf('-'); # create a -inf $x = Math::BigInt->bnan(); # create a Not-A-Number $x = Math::BigInt->bpi(); # returns pi $y = $x->copy(); # make a copy (unlike $y = $x) $y = $x->as_int(); # return as a Math::BigInt $y = $x->as_float(); # return as a Math::BigFloat $y = $x->as_rat(); # return as a Math::BigRat # Boolean methods (these don't modify the invocand) $x->is_zero(); # true if $x is 0 $x->is_one(); # true if $x is +1 $x->is_one("+"); # true if $x is +1 $x->is_one("-"); # true if $x is -1 $x->is_inf(); # true if $x is +inf or -inf $x->is_inf("+"); # true if $x is +inf $x->is_inf("-"); # true if $x is -inf $x->is_nan(); # true if $x is NaN $x->is_finite(); # true if -inf < $x < inf $x->is_positive(); # true if $x > 0 $x->is_pos(); # true if $x > 0 $x->is_negative(); # true if $x < 0 $x->is_neg(); # true if $x < 0 $x->is_non_positive() # true if $x <= 0 $x->is_non_negative() # true if $x >= 0 $x->is_odd(); # true if $x is odd $x->is_even(); # true if $x is even $x->is_int(); # true if $x is an integer # Comparison methods (these don't modify the invocand) $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0) $x->bacmp($y); # compare abs values (undef, < 0, == 0, > 0) $x->beq($y); # true if $x == $y $x->bne($y); # true if $x != $y $x->blt($y); # true if $x < $y $x->ble($y); # true if $x <= $y $x->bgt($y); # true if $x > $y $x->bge($y); # true if $x >= $y # Arithmetic methods (these modify the invocand) $x->bneg(); # negation $x->babs(); # absolute value $x->bsgn(); # sign function (-1, 0, 1, or NaN) $x->bdigitsum(); # sum of decimal digits $x->binc(); # increment $x by 1 $x->bdec(); # decrement $x by 1 $x->badd($y); # addition (add $y to $x) $x->bsub($y); # subtraction (subtract $y from $x) $x->bmul($y); # multiplication (multiply $x by $y) $x->bmuladd($y, $z); # $x = $x * $y + $z $x->bdiv($y); # division (floored) $x->bmod($y); # modulus (x % y) $x->bmodinv($mod); # modular multiplicative inverse $x->bmodpow($y, $mod); # modular exponentiation (($x ** $y) % $mod) $x->btdiv($y); # division (truncated), set $x to quotient $x->btmod($y); # modulus (truncated) $x->binv() # inverse (1/$x) $x->bpow($y); # power of arguments (x ** y) $x->blog(); # logarithm of $x to base e (Euler's number) $x->blog($base); # logarithm of $x to base $base (e.g., base 2) $x->bexp(); # calculate e ** $x where e is Euler's number $x->bilog2(); # log2($x) rounded down to nearest int $x->bilog10(); # log10($x) rounded down to nearest int $x->bclog2(); # log2($x) rounded up to nearest int $x->bclog10(); # log10($x) rounded up to nearest int $x->bnok($y); # combinations (binomial coefficient n over k) $x->bperm($y); # permutations $x->buparrow($n, $y); # Knuth's up-arrow notation $x->bhyperop($n, $y); # n'th hyperoprator $x->backermann($y); # the Ackermann function $x->bsin(); # sine $x->bcos(); # cosine $x->batan(); # inverse tangent $x->batan2($y); # two-argument inverse tangent $x->bsqrt(); # calculate square root $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root) $x->bfac(); # factorial of $x (1*2*3*4*..$x) $x->bdfac(); # double factorial of $x ($x*($x-2)*($x-4)*...) $x->btfac(); # triple factorial of $x ($x*($x-3)*($x-6)*...) $x->bmfac($k); # $k'th multi-factorial of $x ($x*($x-$k)*...) $x->bfib($k); # $k'th Fibonacci number $x->blucas($k); # $k'th Lucas number $x->blsft($n); # left shift $n places in base 2 $x->blsft($n, $b); # left shift $n places in base $b $x->brsft($n); # right shift $n places in base 2 $x->brsft($n, $b); # right shift $n places in base $b # Bitwise methods (these modify the invocand) $x->bblsft($y); # bitwise left shift $x->bbrsft($y); # bitwise right shift $x->band($y); # bitwise and $x->bior($y); # bitwise inclusive or $x->bxor($y); # bitwise exclusive or $x->bnot(); # bitwise not (two's complement) # Rounding methods (these modify the invocand) $x->round($A, $P, $R); # round to accuracy or precision using # rounding mode $R $x->bround($n); # accuracy: preserve $n digits $x->bfround($n); # $n > 0: round to $nth digit left of dec. point # $n < 0: round to $nth digit right of dec. point $x->bfloor(); # round towards minus infinity $x->bceil(); # round towards plus infinity $x->bint(); # round towards zero # Other mathematical methods (these don't modify the invocand) $x->bgcd($y); # greatest common divisor $x->blcm($y); # least common multiple # Object property methods (these don't modify the invocand) $x->sign(); # the sign, either +, - or NaN $x->digit($n); # the nth digit, counting from the right $x->digit(-$n); # the nth digit, counting from the left $x->digitsum(); # sum of decimal digits $x->length(); # return number of digits in number $x->mantissa(); # return (signed) mantissa as a Math::BigInt $x->exponent(); # return exponent as a Math::BigInt $x->parts(); # return (mantissa,exponent) as a Math::BigInt $x->sparts(); # mantissa and exponent (as integers) $x->nparts(); # mantissa and exponent (normalised) $x->eparts(); # mantissa and exponent (engineering notation) $x->dparts(); # integer and fraction part $x->fparts(); # numerator and denominator $x->numerator(); # numerator $x->denominator(); # denominator # Conversion methods (these don't modify the invocand) $x->bstr(); # decimal notation (possibly zero padded) $x->bsstr(); # string in scientific notation with integers $x->bnstr(); # string in normalized notation $x->bestr(); # string in engineering notation $x->bdstr(); # string in decimal notation (no padding) $x->bfstr(); # string in fractional notation $x->to_hex(); # as signed hexadecimal string $x->to_bin(); # as signed binary string $x->to_oct(); # as signed octal string $x->to_bytes(); # as byte string $x->to_base($b); # as string in any base $x->to_base_num($b); # as array of integers in any base $x->to_ieee754($fmt); # to bytes encoded according to IEEE 754-2008 $x->to_fp80(); # encode value in x86 80-bit format $x->as_hex(); # as signed hexadecimal string with "0x" prefix $x->as_bin(); # as signed binary string with "0b" prefix $x->as_oct(); # as signed octal string with "0" prefix # Other conversion methods (these don't modify the invocand) $x->numify(); # return as scalar (might overflow or underflow) =head1 DESCRIPTION Math::BigInt provides support for arbitrary precision integers. Overloading is also provided for Perl operators. =head2 Input Input values to these routines may be any scalar number or string that looks like a number and represents an integer. Anything that is accepted by Perl as a literal numeric constant should be accepted by this module, except that finite non-integers return NaN. =over =item * Leading and trailing whitespace is ignored. =item * Leading zeros are ignored, except for floating point numbers with a binary exponent, in which case the number is interpreted as an octal floating point number. For example, "01.4p+0" gives 1.5, "00.4p+0" gives 0.5, but "0.4p+0" gives a NaN. And while "0377" gives 255, "0377p0" gives 255. =item * If the string has a "0x" or "0X" prefix, it is interpreted as a hexadecimal number. =item * If the string has a "0o" or "0O" prefix, it is interpreted as an octal number. A floating point literal with a "0" prefix is also interpreted as an octal number. =item * If the string has a "0b" or "0B" prefix, it is interpreted as a binary number. =item * Underline characters are allowed in the same way as they are allowed in literal numerical constants. =item * If the string can not be interpreted, or does not represent a finite integer, NaN is returned. =item * For hexadecimal, octal, and binary floating point numbers, the exponent must be separated from the significand (mantissa) by the letter "p" or "P", not "e" or "E" as with decimal numbers. =back Some examples of valid string input Input string Resulting value 123 123 1.23e2 123 12300e-2 123 67_538_754 67538754 -4_5_6.7_8_9e+0_1_0 -4567890000000 0x13a 314 0x13ap0 314 0x1.3ap+8 314 0x0.00013ap+24 314 0x13a000p-12 314 0o472 314 0o1.164p+8 314 0o0.0001164p+20 314 0o1164000p-10 314 0472 472 Note! 01.164p+8 314 00.0001164p+20 314 01164000p-10 314 0b100111010 314 0b1.0011101p+8 314 0b0.00010011101p+12 314 0b100111010000p-3 314 Input given as scalar numbers might lose precision. Quote your input to ensure that no digits are lost: $x = Math::BigInt->new( 56789012345678901234 ); # bad $x = Math::BigInt->new('56789012345678901234'); # good Currently, Cnew()> (no input argument) and Cnew("")> return 0. This might change in the future, so always use the following explicit forms to get a zero: $zero = Math::BigInt->bzero(); =head2 Output Output values are usually Math::BigInt objects. Boolean operators L, L, L, etc. return true or false. Comparison operators L and L) return -1, 0, 1, or undef. =head1 METHODS =head2 Configuration methods Each of the methods below (except L, L and L) accepts three additional parameters. These arguments C<$A>, C<$P> and C<$R> are C, C and C. Please see the section about L for more information. Setting a class variable effects all object instance that are created afterwards. =over =item accuracy() Math::BigInt->accuracy(5); # set class accuracy $x->accuracy(5); # set instance accuracy $A = Math::BigInt->accuracy(); # get class accuracy $A = $x->accuracy(); # get instance accuracy Set or get the accuracy, i.e., the number of significant digits. The accuracy must be an integer. If the accuracy is set to C, no rounding is done. Alternatively, one can round the results explicitly using one of L, L or L or by passing the desired accuracy to the method as an additional parameter: my $x = Math::BigInt->new(30000); my $y = Math::BigInt->new(7); print scalar $x->copy()->bdiv($y, 2); # prints 4300 print scalar $x->copy()->bdiv($y)->bround(2); # prints 4300 Please see the section about L for further details. $y = Math::BigInt->new(1234567); # $y is not rounded Math::BigInt->accuracy(4); # set class accuracy to 4 $x = Math::BigInt->new(1234567); # $x is rounded automatically print "$x $y"; # prints "1235000 1234567" print $x->accuracy(); # prints "4" print $y->accuracy(); # also prints "4", since # class accuracy is 4 Math::BigInt->accuracy(5); # set class accuracy to 5 print $x->accuracy(); # prints "4", since instance # accuracy is 4 print $y->accuracy(); # prints "5", since no instance # accuracy, and class accuracy is 5 Note: Each class has it's own globals separated from Math::BigInt, but it is possible to subclass Math::BigInt and make the globals of the subclass aliases to the ones from Math::BigInt. =item precision() Math::BigInt->precision(-2); # set class precision $x->precision(-2); # set instance precision $P = Math::BigInt->precision(); # get class precision $P = $x->precision(); # get instance precision Set or get the precision, i.e., the place to round relative to the decimal point. The precision must be a integer. Setting the precision to $P means that each number is rounded up or down, depending on the rounding mode, to the nearest multiple of 10**$P. If the precision is set to C, no rounding is done. You might want to use L instead. With L you set the number of digits each result should have, with L you set the place where to round. Please see the section about L for further details. $y = Math::BigInt->new(1234567); # $y is not rounded Math::BigInt->precision(4); # set class precision to 4 $x = Math::BigInt->new(1234567); # $x is rounded automatically print $x; # prints "1230000" Note: Each class has its own globals separated from Math::BigInt, but it is possible to subclass Math::BigInt and make the globals of the subclass aliases to the ones from Math::BigInt. =item round_mode() Set/get the rounding mode. =item div_scale() Set/get the fallback accuracy. This is the accuracy used when neither accuracy nor precision is set explicitly. It is used when a computation might otherwise attempt to return an infinite number of digits. =item trap_inf() Set/get the value determining whether infinities should cause a fatal error or not. =item trap_nan() Set/get the value determining whether NaNs should cause a fatal error or not. =item upgrade() Set/get the class for upgrading. When a computation might result in a non-integer, the operands are upgraded to this class. This is used for instance by L. The default is C, i.e., no upgrading. # with no upgrading $x = Math::BigInt->new(12); $y = Math::BigInt->new(5); print $x / $y, "\n"; # 2 as a Math::BigInt # with upgrading to Math::BigFloat Math::BigInt -> upgrade("Math::BigFloat"); print $x / $y, "\n"; # 2.4 as a Math::BigFloat # with upgrading to Math::BigRat (after loading Math::BigRat) Math::BigInt -> upgrade("Math::BigRat"); print $x / $y, "\n"; # 12/5 as a Math::BigRat =item downgrade() Set/get the class for downgrading. The default is C, i.e., no downgrading. Downgrading is not done by Math::BigInt. =item modify() $x->modify('bpowd'); This method returns 0 if the object can be modified with the given operation, or 1 if not. This is used for instance by L. =item config() Math::BigInt->config("trap_nan" => 1); # set $accu = Math::BigInt->config("accuracy"); # get Set or get class variables. Read-only parameters are marked as RO. Read-write parameters are marked as RW. The following parameters are supported. Parameter RO/RW Description Example ============================================================ lib RO Name of the math backend library Math::BigInt::Calc lib_version RO Version of the math backend library 0.30 class RO The class of config you just called Math::BigRat version RO version number of the class you used 0.10 upgrade RW To which class numbers are upgraded undef downgrade RW To which class numbers are downgraded undef precision RW Global precision undef accuracy RW Global accuracy undef round_mode RW Global round mode even div_scale RW Fallback accuracy for division etc. 40 trap_nan RW Trap NaNs undef trap_inf RW Trap +inf/-inf undef =back =head2 Constructor methods =over =item new() $x = Math::BigInt->new($str,$A,$P,$R); Creates a new Math::BigInt object from a scalar or another Math::BigInt object. The input is accepted as decimal, hexadecimal (with leading '0x'), octal (with leading ('0o') or binary (with leading '0b'). See L for more info on accepted input formats. =item from_dec() $x = Math::BigInt->from_dec("314159"); # input is decimal Interpret input as a decimal. It is equivalent to L, but does not accept anything but strings representing finite, decimal numbers. =item from_hex() $x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal Interpret input as a hexadecimal string. A "0x" or "x" prefix is optional. A single underscore character may be placed right after the prefix, if present, or between any two digits. If the input is invalid, a NaN is returned. =item from_oct() $x = Math::BigInt->from_oct("0775"); # input is octal Interpret the input as an octal string and return the corresponding value. A "0" (zero) prefix is optional. A single underscore character may be placed right after the prefix, if present, or between any two digits. If the input is invalid, a NaN is returned. =item from_bin() $x = Math::BigInt->from_bin("0b10011"); # input is binary Interpret the input as a binary string. A "0b" or "b" prefix is optional. A single underscore character may be placed right after the prefix, if present, or between any two digits. If the input is invalid, a NaN is returned. =item from_bytes() $x = Math::BigInt->from_bytes("\xf3\x6b"); # $x = 62315 Interpret the input as a byte string, assuming big endian byte order. The output is always a non-negative, finite integer. In some special cases, L matches the conversion done by unpack(): $b = "\x4e"; # one char byte string $x = Math::BigInt->from_bytes($b); # = 78 $y = unpack "C", $b; # ditto, but scalar $b = "\xf3\x6b"; # two char byte string $x = Math::BigInt->from_bytes($b); # = 62315 $y = unpack "S>", $b; # ditto, but scalar $b = "\x2d\xe0\x49\xad"; # four char byte string $x = Math::BigInt->from_bytes($b); # = 769673645 $y = unpack "L>", $b; # ditto, but scalar $b = "\x2d\xe0\x49\xad\x2d\xe0\x49\xad"; # eight char byte string $x = Math::BigInt->from_bytes($b); # = 3305723134637787565 $y = unpack "Q>", $b; # ditto, but scalar =item from_ieee754() # set $x to 314159 $x = Math::BigInt -> from_ieee754("40490fdb", "binary32"); Interpret the input as a value encoded as described in IEEE754-2008. NaN is returned if the value is neither +/-infinity nor an integer. See L. =item from_fp80() # set $x to 314159 $x = Math::BigInt -> from_fp80("40119965e00000000000"); Interpret the input as a value encoded in the x86 extended-precision 80-bit format. See L. =item from_base() Given a string, a base, and an optional collation sequence, interpret the string as a number in the given base. The collation sequence describes the value of each character in the string. If a collation sequence is not given, a default collation sequence is used. If the base is less than or equal to 36, the collation sequence is the string consisting of the 36 characters "0" to "9" and "A" to "Z". In this case, the letter case in the input is ignored. If the base is greater than 36, and smaller than or equal to 62, the collation sequence is the string consisting of the 62 characters "0" to "9", "A" to "Z", and "a" to "z". A base larger than 62 requires the collation sequence to be specified explicitly. These examples show standard binary, octal, and hexadecimal conversion. All cases return 250. $x = Math::BigInt->from_base("11111010", 2); $x = Math::BigInt->from_base("372", 8); $x = Math::BigInt->from_base("fa", 16); When the base is less than or equal to 36, and no collation sequence is given, the letter case is ignored, so both of these also return 250: $x = Math::BigInt->from_base("6Y", 16); $x = Math::BigInt->from_base("6y", 16); When the base greater than 36, and no collation sequence is given, the default collation sequence contains both uppercase and lowercase letters, so the letter case in the input is not ignored: $x = Math::BigInt->from_base("6S", 37); # $x is 250 $x = Math::BigInt->from_base("6s", 37); # $x is 276 $x = Math::BigInt->from_base("121", 3); # $x is 16 $x = Math::BigInt->from_base("XYZ", 36); # $x is 44027 $x = Math::BigInt->from_base("Why", 42); # $x is 58314 The collation sequence can be any set of unique characters. These two cases are equivalent $x = Math::BigInt->from_base("100", 2, "01"); # $x is 4 $x = Math::BigInt->from_base("|--", 2, "-|"); # $x is 4 =item from_base_num() Returns a new Math::BigInt object given an array of values and a base. This method is equivalent to L, but works on numbers in an array rather than characters in a string. Unlike L, all input values may be arbitrarily large. $x = Math::BigInt->from_base_num([1, 1, 0, 1], 2) # $x is 13 $x = Math::BigInt->from_base_num([3, 125, 39], 128) # $x is 65191 =item bzero() $x = Math::BigInt->bzero(); $x->bzero(); Returns a new Math::BigInt object representing zero. If used as an instance method, assigns the value to the invocand. =item bone() $x = Math::BigInt->bone(); # +1 $x = Math::BigInt->bone("+"); # +1 $x = Math::BigInt->bone("-"); # -1 $x->bone(); # +1 $x->bone("+"); # +1 $x->bone('-'); # -1 Creates a new Math::BigInt object representing one. The optional argument is either '-' or '+', indicating whether you want plus one or minus one. If used as an instance method, assigns the value to the invocand. =item binf() $x = Math::BigInt->binf($sign); Creates a new Math::BigInt object representing infinity. The optional argument is either '-' or '+', indicating whether you want infinity or minus infinity. If used as an instance method, assigns the value to the invocand. $x->binf(); $x->binf('-'); =item bnan() $x = Math::BigInt->bnan(); Creates a new Math::BigInt object representing NaN (Not A Number). If used as an instance method, assigns the value to the invocand. $x->bnan(); =item bpi() $x = Math::BigInt->bpi(100); # 3 $x->bpi(100); # 3 Creates a new Math::BigInt object representing PI. If used as an instance method, assigns the value to the invocand. With Math::BigInt this always returns 3. If upgrading is in effect, returns PI, rounded to N digits with the current rounding mode: use Math::BigFloat; use Math::BigInt upgrade => "Math::BigFloat"; print Math::BigInt->bpi(3), "\n"; # 3.14 print Math::BigInt->bpi(100), "\n"; # 3.1415.... =item copy() $x->copy(); # make a true copy of $x (unlike $y = $x) =item as_int() $y = $x -> as_int(); # $y is a Math::BigInt Returns $x as a Math::BigInt object regardless of upgrading and downgrading. If $x is finite, but not an integer, $x is truncated. =item as_rat() $y = $x -> as_rat(); # $y is a Math::BigRat Returns $x a Math::BigRat object regardless of upgrading and downgrading. The invocand is not modified. =item as_float() $y = $x -> as_float(); # $y is a Math::BigFloat Returns $x a Math::BigFloat object regardless of upgrading and downgrading. The invocand is not modified. =back =head2 Boolean methods None of these methods modify the invocand object. =over =item is_zero() $x->is_zero(); # true if $x is 0 Returns true if the invocand is zero and false otherwise. =item is_one() $x->is_one(); # true if $x is +1 $x->is_one("+"); # ditto $x->is_one("-"); # true if $x is -1 Returns true if the invocand is one and false otherwise. =item is_finite() $x->is_finite(); # true if $x is not +inf, -inf or NaN Returns true if the invocand is a finite number, i.e., it is neither +inf, -inf, nor NaN. =item is_inf() $x->is_inf(); # true if $x is +inf or -inf $x->is_inf("+"); # true if $x is +inf $x->is_inf("-"); # true if $x is -inf Returns true if the invocand is infinite and false otherwise. =item is_nan() $x->is_nan(); # true if $x is NaN =item is_positive() =item is_pos() $x->is_positive(); # true if > 0 $x->is_pos(); # ditto Returns true if the invocand is positive and false otherwise. A C is neither positive nor negative. =item is_negative() =item is_neg() $x->is_negative(); # true if < 0 $x->is_neg(); # ditto Returns true if the invocand is negative and false otherwise. A C is neither positive nor negative. =item is_non_positive() $x->is_non_positive(); # true if <= 0 Returns true if the invocand is negative or zero. =item is_non_negative() $x->is_non_negative(); # true if >= 0 Returns true if the invocand is positive or zero. =item is_odd() $x->is_odd(); # true if odd, false for even Returns true if the invocand is odd and false otherwise. C, C<+inf>, and C<-inf> are neither odd nor even. =item is_even() $x->is_even(); # true if $x is even Returns true if the invocand is even and false otherwise. C, C<+inf>, C<-inf> are not integers and are neither odd nor even. =item is_int() $x->is_int(); # true if $x is an integer Returns true if the invocand is an integer and false otherwise. C, C<+inf>, C<-inf> are not integers. =back =head2 Comparison methods None of these methods modify the invocand object. Note that a C is neither less than, greater than, or equal to anything else, even a C. =over =item bcmp() $x->bcmp($y); Returns -1, 0, 1 depending on whether $x is less than, equal to, or grater than $y. Returns undef if any operand is a NaN. =item bacmp() $x->bacmp($y); Returns -1, 0, 1 depending on whether the absolute value of $x is less than, equal to, or grater than the absolute value of $y. Returns undef if any operand is a NaN. =item beq() $x -> beq($y); Returns true if and only if $x is equal to $y, and false otherwise. =item bne() $x -> bne($y); Returns true if and only if $x is not equal to $y, and false otherwise. =item blt() $x -> blt($y); Returns true if and only if $x is equal to $y, and false otherwise. =item ble() $x -> ble($y); Returns true if and only if $x is less than or equal to $y, and false otherwise. =item bgt() $x -> bgt($y); Returns true if and only if $x is greater than $y, and false otherwise. =item bge() $x -> bge($y); Returns true if and only if $x is greater than or equal to $y, and false otherwise. =back =head2 Arithmetic methods These methods modify the invocand object and returns it. =over =item bneg() $x->bneg(); Negate the number, e.g. change the sign between '+' and '-', or between '+inf' and '-inf', respectively. Does nothing for NaN or zero. =item babs() $x->babs(); Set the number to its absolute value, e.g. change the sign from '-' to '+' and from '-inf' to '+inf', respectively. Does nothing for NaN or positive numbers. =item bsgn() $x->bsgn(); Signum function. Set the number to -1, 0, or 1, depending on whether the number is negative, zero, or positive, respectively. Does not modify NaNs. =item bnorm() $x->bnorm(); # normalize (no-op) Normalize the number. This is a no-op and is provided only for backwards compatibility. =item binc() $x->binc(); # increment x by 1 =item bdec() $x->bdec(); # decrement x by 1 =item badd() $x->badd($y); # addition (add $y to $x) =item bsub() $x->bsub($y); # subtraction (subtract $y from $x) =item bmul() $x->bmul($y); # multiplication (multiply $x by $y) =item bdiv() $x->bdiv($y); # set $x to quotient ($q, $r) = $x->bdiv($y); # also return remainder The behaviour of L and L is based on Perl's C<%> operator, which is the remainder after performing floored division. Because of this, L and L are aliases for L and L, respectively. =item bmod() $x->bmod($y); # modulus (x % y) This is an alias for L. =item bfdiv() $x->bfdiv($y); # return quotient ($q, $r) = $x->bfdiv($y); # return quotient and remainder Divides $x by $y by doing floored division (F-division), where the quotient is the floored (rounded towards negative infinity) quotient of the two operands. In list context, returns the quotient and the remainder. In scalar context, only the quotient is returned. $q = floor($x / $y) # quotient $r = $x - $q * $y # remainder With F-division, the remainder is either zero or has the same sign as the divisor. 7 / 4 => ( 1, 3) -7 / 4 => (-2, 1) -7 / -4 => ( 1, -3) 7 / -4 => (-2, -1) The behavior of the overloaded operator % agrees with the behavior of Perl's built-in % operator (as documented in the perlop manpage), and the equation $x == ($x / $y) * $y + ($x % $y) holds true for any finite $x and finite, non-zero $y. Perl's "use integer" might change the behaviour of % and / for scalars. This is because under 'use integer' Perl does what the underlying C library thinks is right, and this varies. However, "use integer" does not change the way things are done with Math::BigInt objects. =item bfmod() $x->bfmod($y); # floored modulus (x % y) Returns $x modulo $y, i.e., the remainder after floored division (F-division). This method is like Perl's % operator. See L. =item btdiv() $x->btdiv($y); # divide, set $x to quotient Divides $x by $y by doing truncated division (T-division), where quotient is the truncated (rouneded towards zero) quotient of the two operands. In list context, returns the quotient and the remainder. The remainder is either zero or has the same sign as the first operand. In scalar context, only the quotient is returned. =item btmod() $x->btmod($y); # modulus Returns the remainer after truncated division (T-division). See L. =item binv() $x->binv(); Invert the value of $x, i.e., compute 1/$x. =item bsqrt() $x->bsqrt(); # calculate square root Returns the square root truncated to an integer. If you want a better approximation of the square root, then use: $x = Math::BigFloat->new(12); Math::BigFloat->precision(0); Math::BigFloat->round_mode("even"); print $x->copy->bsqrt(),"\n"; # 4 Math::BigFloat->precision(2); print $x->bsqrt(),"\n"; # 3.46 print $x->bsqrt(3),"\n"; # 3.464 =item bpow() $x->bpow($y); # power of arguments (x ** y) Returns $x raised to the power of $y. The first two modifies $x, the last one doesn't: print $x->bpow($i),"\n"; # modifies $x print $x **= $i,"\n"; # ditto print $x ** $i,"\n"; # leaves $x alone The form C<$x **= $y> is faster than C<$x = $x ** $y;>, though. =item broot() $x->broot($N); Calculates the $N'th root of C<$x>. =item bmuladd() $x->bmuladd($y,$z); Multiply $x by $y, and then add $z to the result, This method was added in v1.88 of Math::BigInt. =item bmodpow() $num->bmodpow($exp,$mod); # modular exponentiation # ($num**$exp % $mod) Returns the value of C<$num> taken to the power C<$exp> in the modulus C<$mod> using binary exponentiation. C is far superior to writing $num ** $exp % $mod because it is much faster - it reduces internal variables into the modulus whenever possible, so it operates on smaller numbers. C also supports negative exponents. bmodpow($num, -1, $mod) is exactly equivalent to bmodinv($num, $mod) =item bmodinv() $x->bmodinv($mod); # modular multiplicative inverse Returns the multiplicative inverse of C<$x> modulo C<$mod>. If $y = $x -> copy() -> bmodinv($mod) then C<$y> is the number closest to zero, and with the same sign as C<$mod>, satisfying ($x * $y) % $mod = 1 % $mod If C<$x> and C<$y> are non-zero, they must be relative primes, i.e., C. 'C' is returned when no modular multiplicative inverse exists. =item blog() $x->blog($base, $accuracy); # logarithm of x to the base $base If C<$base> is not defined, Euler's number (e) is used: print $x->blog(undef, 100); # log(x) to 100 digits =item bexp() $x->bexp($accuracy); # calculate e ** X Calculates the expression C where C is Euler's number. This method was added in v1.82 of Math::BigInt (April 2007). See also L. =item bilog2() Base 2 logarithm rounded down towards the nearest integer. $x->bilog2(); # int(log2(x)) = int(log(x)/log(2)) In list context a second argument is returned. This is 1 if the result is exact, i.e., the input is an exact power of 2, and 0 otherwise. =item bilog10() Base 10 logarithm rounded down towards the nearest integer. $x->bilog10(); # int(log10(x)) = int(log(x)/log(10)) In list context a second argument is returned. This is 1 if the result is exact, i.e., the input is an exact power of 10, and 0 otherwise. =item bclog2() Base 2 logarithm rounded up towards the nearest integer. $x->bclog2(); # ceil(log2(x)) = ceil(log(x)/log(2)) In list context a second argument is returned. This is 1 if the result is exact, i.e., the input is an exact power of 2, and 0 otherwise. =item bclog10() Base 10 logarithm rounded up towards the nearest integer. $x->bclog10(); # ceil(log10(x)) = ceil(log(x)/log(10)) In list context a second argument is returned. This is 1 if the result is exact, i.e., the input is an exact power of 10, and 0 otherwise. =item bnok() Combinations. $n->bnok($k); # binomial coefficient n over k Calculates the binomial coefficient n over k, also called the "choose" function, which is the number of ways to choose a sample of k elements from a set of n distinct objects where order does not matter and replacements are not allowed. The result is equivalent to / n \ n! C(n, k) = | | = -------- where 0 <= k <= n \ k / k!(n-k)! when n and k are non-negative. This method implements the full Kronenburg extension (Kronenburg, M.J. "The Binomial Coefficient for Negative Arguments." 18 May 2011. http://arxiv.org/abs/1105.3689/) illustrated by the following pseudo-code: if n >= 0 and k >= 0: return binomial(n, k) if k >= 0: return (-1)^k*binomial(-n+k-1, k) if k <= n: return (-1)^(n-k)*binomial(-k-1, n-k) else return 0 The behaviour is identical to the behaviour of the Maple and Mathematica function for negative integers n, k. =item bperm() Permutations $n->bperm($k); Calculates the number of ways to choose a sample of k elements from a set of n distinct objects where order does matter and replacements are not allowed. n! P(n, k) = ------ where 0 <= k <= n (n-k)! =item bhyperop() =item hyperop() $a -> bhyperop($n, $b); # modifies $a $x = $a -> hyperop($n, $b); # does not modify $a H_n(a, b) = a[n]b is the Ith hyperoperator, n = 0 : succession (b + 1) n = 1 : addition (a + b) n = 2 : multiplication (a * b) n = 3 : exponentiation (a ** b) n = 4 : tetration (a ** a ** ... ** a) (b occurrences of a) ... / b+1 if n = 0 | a if n = 1 and b = 0 H_n(a, b) = a[n]b = | 0 if n = 2 and b = 0 | 1 if n >= 3 and b = 0 \ H_(n-1)(a, H_n(a, b-1)) otherwise Note that the result can be a very large number, even for small operands. Also note that the backend library C silently returns the incorrect result when the numbers are larger than it can handle. It is better to use C or C; they throw an error if they can't handle the number. See also L, L. =item buparrow() =item uparrow() $a -> buparrow($n, $b); # modifies $a $x = $a -> uparrow($n, $b); # does not modify $a This method implements Knuth's up-arrow notation, where $n is a non-negative integer representing the number of up-arrows. $n = 0 gives multiplication, $n = 1 gives exponentiation, $n = 2 gives tetration, $n = 3 gives hexation etc. The following illustrates the relation between the first values of $n. The L method is equivalent to the L method with an offset of two. The following two give the same result: $x -> buparrow($n, $b); $x -> bhyperop($n + 2, $b); See also L, L. =item backermann() =item ackermann() $m -> backermann($n); # modifies $a $x = $m -> ackermann($n); # does not modify $a This method implements the Ackermann function: / n + 1 if m = 0 A(m, n) = | A(m-1, 1) if m > 0 and n = 0 \ A(m-1, A(m, n-1)) if m > 0 and n > 0 Its value grows rapidly, even for small inputs. For example, A(4, 2) is an integer of 19729 decimal digits. See https://en.wikipedia.org/wiki/Ackermann_function =item bsin() my $x = Math::BigInt->new(1); print $x->bsin(100), "\n"; Calculate the sine of $x, modifying $x in place. In Math::BigInt, unless upgrading is in effect, the result is truncated to an integer. This method was added in v1.87 of Math::BigInt (June 2007). =item bcos() my $x = Math::BigInt->new(1); print $x->bcos(100), "\n"; Calculate the cosine of $x, modifying $x in place. In Math::BigInt, unless upgrading is in effect, the result is truncated to an integer. This method was added in v1.87 of Math::BigInt (June 2007). =item batan() my $x = Math::BigFloat->new(0.5); print $x->batan(100), "\n"; Calculate the arcus tangens of $x, modifying $x in place. In Math::BigInt, unless upgrading is in effect, the result is truncated to an integer. This method was added in v1.87 of Math::BigInt (June 2007). =item batan2() my $x = Math::BigInt->new(1); my $y = Math::BigInt->new(1); print $y->batan2($x), "\n"; Calculate the arcus tangens of C<$y> divided by C<$x>, modifying $y in place. In Math::BigInt, unless upgrading is in effect, the result is truncated to an integer. This method was added in v1.87 of Math::BigInt (June 2007). =item bfac() $x->bfac(); # factorial of $x Returns the factorial of C<$x>, i.e., $x*($x-1)*($x-2)*...*2*1, the product of all positive integers up to and including C<$x>. C<$x> must be > -1. The factorial of N is commonly written as N!, or N!1, when using the multifactorial notation. =item bdfac() $x->bdfac(); # double factorial of $x Returns the double factorial of C<$x>, i.e., $x*($x-2)*($x-4)*... C<$x> must be > -2. The double factorial of N is commonly written as N!!, or N!2, when using the multifactorial notation. =item btfac() $x->btfac(); # triple factorial of $x Returns the triple factorial of C<$x>, i.e., $x*($x-3)*($x-6)*... C<$x> must be > -3. The triple factorial of N is commonly written as N!!!, or N!3, when using the multifactorial notation. =item bmfac() $x->bmfac($k); # $k'th multifactorial of $x Returns the multi-factorial of C<$x>, i.e., $x*($x-$k)*($x-2*$k)*... C<$x> must be > -$k. The multi-factorial of N is commonly written as N!K. =item bfib() $F = $n->bfib(); # a single Fibonacci number @F = $n->bfib(); # a list of Fibonacci numbers In scalar context, returns a single Fibonacci number. In list context, returns a list of Fibonacci numbers. The invocand is the last element in the output. The Fibonacci sequence is defined by F(0) = 0 F(1) = 1 F(n) = F(n-1) + F(n-2) In list context, F(0) and F(n) is the first and last number in the output, respectively. For example, if $n is 12, then C<< @F = $n->bfib() >> returns the following values, F(0) to F(12): 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 The sequence can also be extended to negative index n using the re-arranged recurrence relation F(n-2) = F(n) - F(n-1) giving the bidirectional sequence n -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 F(n) 13 -8 5 -3 2 -1 1 0 1 1 2 3 5 8 13 If $n is -12, the following values, F(0) to F(12), are returned: 0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55, 89, -144 =item blucas() $F = $n->blucas(); # a single Lucas number @F = $n->blucas(); # a list of Lucas numbers In scalar context, returns a single Lucas number. In list context, returns a list of Lucas numbers. The invocand is the last element in the output. The Lucas sequence is defined by L(0) = 2 L(1) = 1 L(n) = L(n-1) + L(n-2) In list context, L(0) and L(n) is the first and last number in the output, respectively. For example, if $n is 12, then C<< @L = $n->blucas() >> returns the following values, L(0) to L(12): 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322 The sequence can also be extended to negative index n using the re-arranged recurrence relation L(n-2) = L(n) - L(n-1) giving the bidirectional sequence n -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 L(n) 29 -18 11 -7 4 -3 1 2 1 3 4 7 11 18 29 If $n is -12, the following values, L(0) to L(-12), are returned: 2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123, 199, -322 =item blsft() Left shift. $x->blsft($n); # left shift $n places in base 2 $x->blsft($n, $b); # left shift $n places in base $b The latter is equivalent to $x -> bmul($b -> copy() -> bpow($n)); =item brsft() Right shift. $x->brsft($n); # right shift $n places in base 2 $x->brsft($n, $b); # right shift $n places in base $b The latter is equivalent to $x -> bdiv($b -> copy() -> bpow($n)); =back =head2 Bitwise methods For all bitwise methods, the operands are truncated to integers, i.e., rounded towards zero, if necessary, before the method is applied. The bitwise methods never upgrade, and they always return an integer. =over =item bblsft() Bitwise left shift. This is equivalent to Perl's CE> operator. $x -> bblsft($n); # left shift $n places in base 2 If C<$n> is negative, the shifting is done in the opposite direction, so these two are equivalent for all C<$x> and C<$n> $y = $x -> bblsft($n); $y = $x -> bbrsft(-$n); and also equivalent to $y = $x -> bmul(ref($x) -> new(2) -> bpow($n)); # if $n > 0 $y = $x -> bdiv(ref($x) -> new(2) -> bpow($n)); # if $n < 0 =item bbrsft() Bitwise right shift. This is equivalent to Perl's CE> operator. $x -> bbrsft($n); # right shift $n places in base 2 If C<$n> is negative, the shifting is done in the opposite direction, so these two are equivalent for all C<$x> and C<$n> $y = $x -> bbrsft($n); $y = $x -> bblsft(-$n); and also equivalent to $y = $x -> bdiv(ref($x) -> new(2) -> bpow($n)); # if $n > 0 $y = $x -> bmul(ref($x) -> new(2) -> bpow(-$n)); # if $n < 0 =item band() $x->band($y); # bitwise and =item bior() $x->bior($y); # bitwise inclusive or =item bxor() $x->bxor($y); # bitwise exclusive or =item bnot() $x->bnot(); # bitwise not (two's complement) Two's complement (bitwise not). This is equivalent to, but faster than, $x->binc()->bneg(); =back =head2 Rounding methods =over =item round() $x->round($A,$P,$round_mode); Round $x to accuracy C<$A> or precision C<$P> using the round mode C<$round_mode>. =item bround() $x->bround($N); # accuracy: preserve $N digits Rounds $x to an accuracy of $N digits. =item bfround() $x->bfround($N); Rounds to a multiple of 10**$N. Examples: Input N Result 123456.123456 3 123500 123456.123456 2 123450 123456.123456 -2 123456.12 123456.123456 -3 123456.123 =item bfloor() $x->bfloor(); Round $x towards minus infinity, i.e., set $x to the largest integer less than or equal to $x. =item bceil() $x->bceil(); Round $x towards plus infinity, i.e., set $x to the smallest integer greater than or equal to $x. =item bint() $x->bint(); Round $x towards zero. =back =head2 Other mathematical methods =over =item bgcd() $x -> bgcd($y); # GCD of $x and $y $x -> bgcd($y, $z, ...); # GCD of $x, $y, $z, ... Returns the greatest common divisor (GCD), which is the largest positive integer that divides each of the operands. =item blcm() $x -> blcm($y); # LCM of $x and $y $x -> blcm($y, $z, ...); # LCM of $x, $y, $z, ... Returns the least common multiple (LCM). =back =head2 Object property methods =over =item sign() $x->sign(); Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN. If you want $x to have a certain sign, use one of the following methods: $x->babs(); # '+' $x->babs()->bneg(); # '-' $x->bnan(); # 'NaN' $x->binf(); # '+inf' $x->binf('-'); # '-inf' =item digit() $x->digit($n); # return the nth digit, counting from right If C<$n> is negative, returns the digit counting from left. =item bdigitsum() $x->bdigitsum(); Computes the sum of the base 10 digits and assigns the result to the invocand. =item digitsum() $x->digitsum(); Computes the sum of the base 10 digits and returns it. =item length() $x->length(); ($xl, $fl) = $x->length(); Returns the number of digits in the decimal representation of the number. In list context, returns the length of the integer and fraction part. For Math::BigInt objects, the length of the fraction part is always 0. The following probably doesn't do what you expect: $c = Math::BigInt->new(123); print $c->length(),"\n"; # prints 30 It prints both the number of digits in the number and in the fraction part since print calls L in list context. Use something like: print scalar $c->length(),"\n"; # prints 3 =item mantissa() $x->mantissa(); Return the signed mantissa of $x as a Math::BigInt. =item exponent() $x->exponent(); Return the exponent of $x as a Math::BigInt. =item parts() $x->parts(); Returns the significand (mantissa) and the exponent as integers. In Math::BigFloat, both are returned as Math::BigInt objects. =item sparts() Returns the significand (mantissa) and the exponent as integers. In scalar context, only the significand is returned. The significand is the integer with the smallest absolute value. The output of L corresponds to the output from L. In Math::BigInt, this method is identical to L. =item nparts() Returns the significand (mantissa) and exponent corresponding to normalized notation. In scalar context, only the significand is returned. For finite non-zero numbers, the significand's absolute value is greater than or equal to 1 and less than 10. The output of L corresponds to the output from L. In Math::BigInt, if the significand can not be represented as an integer, upgrading is performed or NaN is returned. =item eparts() Returns the significand (mantissa) and exponent corresponding to engineering notation. In scalar context, only the significand is returned. For finite non-zero numbers, the significand's absolute value is greater than or equal to 1 and less than 1000, and the exponent is a multiple of 3. The output of L corresponds to the output from L. In Math::BigInt, if the significand can not be represented as an integer, upgrading is performed or NaN is returned. =item dparts() Returns the integer part and the fraction part. If the fraction part can not be represented as an integer, upgrading is performed or NaN is returned. The output of L corresponds to the output from L. =item fparts() Returns the smallest possible numerator and denominator so that the numerator divided by the denominator gives back the original value. For finite numbers, both values are integers. Mnemonic: fraction. =item numerator() Together with L, returns the smallest integers so that the numerator divided by the denominator reproduces the original value. With Math::BigInt, L simply returns a copy of the invocand. =item denominator() Together with L, returns the smallest integers so that the numerator divided by the denominator reproduces the original value. With Math::BigInt, L always returns either a 1 or a NaN. =back =head2 String conversion methods =over =item bstr() Returns a string representing the number using decimal notation. In Math::BigFloat, the output is zero padded according to the current accuracy or precision, if any of those are defined. =item bsstr() Returns a string representing the number using scientific notation where both the significand (mantissa) and the exponent are integers. The output corresponds to the output from L. 123 is returned as "123e+0" 1230 is returned as "123e+1" 12300 is returned as "123e+2" 12000 is returned as "12e+3" 10000 is returned as "1e+4" =item bnstr() Returns a string representing the number using normalized notation, the most common variant of scientific notation. For finite non-zero numbers, the absolute value of the significand is greater than or equal to 1 and less than 10. The output corresponds to the output from L. 123 is returned as "1.23e+2" 1230 is returned as "1.23e+3" 12300 is returned as "1.23e+4" 12000 is returned as "1.2e+4" 10000 is returned as "1e+4" =item bestr() Returns a string representing the number using engineering notation. For finite non-zero numbers, the absolute value of the significand is greater than or equal to 1 and less than 1000, and the exponent is a multiple of 3. The output corresponds to the output from L. 123 is returned as "123e+0" 1230 is returned as "1.23e+3" 12300 is returned as "12.3e+3" 12000 is returned as "12e+3" 10000 is returned as "10e+3" =item bdstr() Returns a string representing the number using decimal notation. The output corresponds to the output from L. 123 is returned as "123" 1230 is returned as "1230" 12300 is returned as "12300" 12000 is returned as "12000" 10000 is returned as "10000" =item bfstr() Returns a string representing the number using fractional notation. The output corresponds to the output from L. 12.345 is returned as "2469/200" 123.45 is returned as "2469/20" 1234.5 is returned as "2469/2" 12345 is returned as "12345" 123450 is returned as "123450" =item to_hex() $x->to_hex(); Returns a hexadecimal string representation of the number. See also L. =item to_oct() $x->to_oct(); Returns an octal string representation of the number. See also L. =item to_bin() $x->to_bin(); Returns a binary string representation of the number. See also L. =item to_bytes() $x = Math::BigInt->new("1667327589"); $s = $x->to_bytes(); # $s = "cafe" Returns a byte string representation of the number using big endian byte order. The invocand must be a non-negative, finite integer. See also L. =item to_ieee754() See L. =item to_fp80() See L. =item to_base() $x = Math::BigInt->new("250"); $x->to_base(2); # returns "11111010" $x->to_base(8); # returns "372" $x->to_base(16); # returns "fa" Returns a string representation of the number in the given base. If a collation sequence is given, the collation sequence determines which characters are used in the output. Here are some more examples $x = Math::BigInt->new("16")->to_base(3); # returns "121" $x = Math::BigInt->new("44027")->to_base(36); # returns "XYZ" $x = Math::BigInt->new("58314")->to_base(42); # returns "Why" $x = Math::BigInt->new("4")->to_base(2, "-|"); # returns "|--" If the collation sequence are the bytes from "\x00" to "\xff", and the base is 256, then L returns the same output as L. In the following example, $x and $y are identical: $cs = join "", map chr, 0 .. 255; # collation sequence $x = Math::BigInt -> to_base("1230129310", 256, $cs) $y = Math::BigInt -> to_bytes("1230129310"); See L for information and examples. =item to_base_num() Converts the given number to the given base. This method is equivalent to L, but returns numbers in an array rather than characters in a string. In the output, the first element is the most significant. $x = Math::BigInt->new(13); # decimal 13 is binary 1101 $x->to_base_num(2); # returns [1, 1, 0, 1] $x = Math::BigInt->new(65191); $x->to_base_num(128); # returns [3, 125, 39] =item as_hex() $x->as_hex(); As, L, but with a "0x" prefix. =item as_oct() $x->as_oct(); As, L, but with a "0" prefix. =item as_bin() $x->as_bin(); As, L, but with a "0b" prefix. =item as_bytes() This is an alias for L. =back =head2 Other conversion methods =over =item numify() print $x->numify(); Returns a Perl scalar from $x. It is used automatically whenever a scalar is needed, for instance in array index operations. =back =head2 Utility methods These utility methods are made public =over =item dec_str_to_dec_flt_str() Takes a string representing any valid number using decimal notation and converts it to a string representing the same number using decimal floating point notation. The output consists of five parts joined together: the sign of the significand, the absolute value of the significand as the smallest possible integer, the letter "e", the sign of the exponent, and the absolute value of the exponent. If the input is invalid, nothing is returned. $str2 = $class -> dec_str_to_dec_flt_str($str1); Some examples Input Output 31400.00e-4 +314e-2 -0.00012300e8 -123e+2 0 +0e+0 =item hex_str_to_dec_flt_str() Takes a string representing any valid number using hexadecimal notation and converts it to a string representing the same number using decimal floating point notation. The output has the same format as that of L. $str2 = $class -> hex_str_to_dec_flt_str($str1); Some examples Input Output 0xff +255e+0 Some examples =item oct_str_to_dec_flt_str() Takes a string representing any valid number using octal notation and converts it to a string representing the same number using decimal floating point notation. The output has the same format as that of L. $str2 = $class -> oct_str_to_dec_flt_str($str1); =item bin_str_to_dec_flt_str() Takes a string representing any valid number using binary notation and converts it to a string representing the same number using decimal floating point notation. The output has the same format as that of L. $str2 = $class -> bin_str_to_dec_flt_str($str1); =item dec_str_to_dec_str() Takes a string representing any valid number using decimal notation and converts it to a string representing the same number using decimal notation. If the number represents an integer, the output consists of a sign and the absolute value. If the number represents a non-integer, the output consists of a sign, the integer part of the number, the decimal point ".", and the fraction part of the number without any trailing zeros. If the input is invalid, nothing is returned. =item hex_str_to_dec_str() Takes a string representing any valid number using hexadecimal notation and converts it to a string representing the same number using decimal notation. The output has the same format as that of L. =item oct_str_to_dec_str() Takes a string representing any valid number using octal notation and converts it to a string representing the same number using decimal notation. The output has the same format as that of L. =item bin_str_to_dec_str() Takes a string representing any valid number using binary notation and converts it to a string representing the same number using decimal notation. The output has the same format as that of L. =back =head1 ACCURACY AND PRECISION Math::BigInt and Math::BigFloat have full support for accuracy and precision based rounding, both automatically after every operation, as well as manually. This section describes the accuracy/precision handling in Math::BigInt and Math::BigFloat as it used to be and as it is now, complete with an explanation of all terms and abbreviations. Not yet implemented things (but with correct description) are marked with '!', things that need to be answered are marked with '?'. In the next paragraph follows a short description of terms used here (because these may differ from terms used by others people or documentation). During the rest of this document, the shortcuts A (for accuracy), P (for precision), R (rounding mode), and F (fallback) are be used. =head2 Accuracy A Number of significant digits. Leading zeros are not counted. A number may have an accuracy greater than the non-zero digits when there are zeros in it or trailing zeros. For example, 123.456 has A of 6, 10203 has 5, 123.0506 has 7, 123.45000 has 8 and 0.000123 has 3. The string output (of floating point numbers) is padded with zeros: Initial value P A Result String ------------------------------------------------------------ 1234.01 3 1230 1230 1234.01 6 1234.01 1234.01 1234.1 8 1234.1 1234.1000 For Math::BigInt objects, no padding occurs. =head2 Precision P Precision is a fixed number of digits before (positive) or after (negative) the decimal point. For example, 123.45 has a precision of -2. 0 means an integer like 123 (or 120). A precision of 2 means at least two digits to the left of the decimal point are zero, so 123 with P = 1 becomes 120. Note that numbers with zeros before the decimal point may have different precisions, because 1200 can have P = 0, 1 or 2 (depending on what the initial value was). It could also have p < 0, when the digits after the decimal point are zero. The string output (of floating point numbers) is padded with zeros: Initial value P A Result String ------------------------------------------------------------ 1234.01 -3 1000 1000 1234 -2 1200 1200 1234.5 -1 1230 1230 1234.001 1 1234 1234.0 1234.01 0 1234 1234 1234.01 2 1234.01 1234.01 1234.01 5 1234.01 1234.01000 For Math::BigInt objects, no padding occurs. =head2 Rounding mode R When rounding a number, different 'styles' or 'kinds' of rounding are possible. (Note that random rounding, as in Math::Round, is not implemented.) =head3 Directed rounding These round modes always round in the same direction. =over =item 'trunc' Round towards zero. Remove all digits following the rounding place, i.e., replace them with zeros. Thus, 987.65 rounded to tens (P=1) becomes 980, and rounded to the fourth significant digit becomes 987.6 (A=4). 123.456 rounded to the second place after the decimal point (P=-2) becomes 123.46. This corresponds to the IEEE 754 rounding mode 'roundTowardZero'. =back =head3 Rounding to nearest These rounding modes round to the nearest digit. They differ in how they determine which way to round in the ambiguous case when there is a tie. =over =item 'even' Round towards the nearest even digit, e.g., when rounding to nearest integer, -5.5 becomes -6, 4.5 becomes 4, but 4.501 becomes 5. This corresponds to the IEEE 754 rounding mode 'roundTiesToEven'. =item 'odd' Round towards the nearest odd digit, e.g., when rounding to nearest integer, 4.5 becomes 5, -5.5 becomes -5, but 5.501 becomes 6. This corresponds to the IEEE 754 rounding mode 'roundTiesToOdd'. =item '+inf' Round towards plus infinity, i.e., always round up. E.g., when rounding to the nearest integer, 4.5 becomes 5, -5.5 becomes -5, and 4.501 also becomes 5. This corresponds to the IEEE 754 rounding mode 'roundTiesToPositive'. =item '-inf' Round towards minus infinity, i.e., always round down. E.g., when rounding to the nearest integer, 4.5 becomes 4, -5.5 becomes -6, but 4.501 becomes 5. This corresponds to the IEEE 754 rounding mode 'roundTiesToNegative'. =item 'zero' Round towards zero, i.e., round positive numbers down and negative numbers up. E.g., when rounding to the nearest integer, 4.5 becomes 4, -5.5 becomes -5, but 4.501 becomes 5. This corresponds to the IEEE 754 rounding mode 'roundTiesToZero'. =item 'common' Round away from zero, i.e., round to the number with the largest absolute value. E.g., when rounding to the nearest integer, -1.5 becomes -2, 1.5 becomes 2 and 1.49 becomes 1. This corresponds to the IEEE 754 rounding mode 'roundTiesToAway'. =back =head2 Fallback F When neither A nor P are defined, the fallback accuracy is used when computing values that would potentially give an infinite number of digits, e.g., division, roots, logarithms, trigonometric functions etc. =head2 More details on rounding The handling of A & P in MBI/MBF (the old core code shipped with Perl versions <= 5.7.2) is like this: =over =item Precision * bfround($p) is able to round to $p number of digits after the decimal point * otherwise P is unused =item Accuracy (significant digits) * bround($a) rounds to $a significant digits * only bdiv() and bsqrt() take A as (optional) parameter + other operations simply create the same number (bneg etc), or more (bmul) of digits + rounding/truncating is only done when explicitly calling one of bround or bfround, and never for Math::BigInt (not implemented) * bsqrt() simply hands its accuracy argument over to bdiv. * the documentation and the comment in the code indicate two different ways on how bdiv() determines the maximum number of digits it should calculate, and the actual code does yet another thing POD: max($Math::BigFloat::div_scale,length(dividend)+length(divisor)) Comment: result has at most max(scale, length(dividend), length(divisor)) digits Actual code: scale = max(scale, length(dividend)-1,length(divisor)-1); scale += length(divisor) - length(dividend); So for lx = 3, ly = 9, scale = 10, scale will actually be 16 (10 So for lx = 3, ly = 9, scale = 10, scale will actually be 16 (10+9-3). Actually, the 'difference' added to the scale is cal- culated from the number of "significant digits" in dividend and divisor, which is derived by looking at the length of the man- tissa. Which is wrong, since it includes the + sign (oops) and actually gets 2 for '+100' and 4 for '+101'. Oops again. Thus 124/3 with div_scale=1 will get you '41.3' based on the strange assumption that 124 has 3 significant digits, while 120/7 will get you '17', not '17.1' since 120 is thought to have 2 signif- icant digits. The rounding after the division then uses the remainder and $y to determine whether it must round up or down. ? I have no idea which is the right way. That's why I used a slightly more ? simple scheme and tweaked the few failing testcases to match it. =back This is how it works now: =over =item Setting/Accessing * You can set the A global via Math::BigInt->accuracy() or Math::BigFloat->accuracy() or whatever class you are using. * You can also set P globally by using Math::SomeClass->precision() likewise. * Globals are classwide, and not inherited by subclasses. * to undefine A, use Math::SomeClass->accuracy(undef); * to undefine P, use Math::SomeClass->precision(undef); * Setting Math::SomeClass->accuracy() clears automatically Math::SomeClass->precision(), and vice versa. * To be valid, A must be > 0, P can have any value. * If P is negative, this means round to the P'th place to the right of the decimal point; positive values mean to the left of the decimal point. P of 0 means round to integer. * to find out the current global A, use Math::SomeClass->accuracy() * to find out the current global P, use Math::SomeClass->precision() * use $x->accuracy() respective $x->precision() for the local setting of $x. * Please note that $x->accuracy() respective $x->precision() return eventually defined global A or P, when $x's A or P is not set. =item Creating numbers * When you create a number, you can give the desired A or P via: $x = Math::BigInt->new($number,$A,$P); * Only one of A or P can be defined, otherwise the result is NaN * If no A or P is give ($x = Math::BigInt->new($number) form), then the globals (if set) will be used. Thus changing the global defaults later on will not change the A or P of previously created numbers (i.e., A and P of $x will be what was in effect when $x was created) * If given undef for A and P, NO rounding will occur, and the globals will NOT be used. This is used by subclasses to create numbers without suffering rounding in the parent. Thus a subclass is able to have its own globals enforced upon creation of a number by using $x = Math::BigInt->new($number,undef,undef): use Math::BigInt::SomeSubclass; use Math::BigInt; Math::BigInt->accuracy(2); Math::BigInt::SomeSubclass->accuracy(3); $x = Math::BigInt::SomeSubclass->new(1234); $x is now 1230, and not 1200. A subclass might choose to implement this otherwise, e.g. falling back to the parent's A and P. =item Usage * If A or P are enabled/defined, they are used to round the result of each operation according to the rules below * Negative P is ignored in Math::BigInt, since Math::BigInt objects never have digits after the decimal point * Math::BigFloat uses Math::BigInt internally, but setting A or P inside Math::BigInt as globals does not tamper with the parts of a Math::BigFloat. A flag is used to mark all Math::BigFloat numbers as 'never round'. =item Precedence * It only makes sense that a number has only one of A or P at a time. If you set either A or P on one object, or globally, the other one will be automatically cleared. * If two objects are involved in an operation, and one of them has A in effect, and the other P, this results in an error (NaN). * A takes precedence over P (Hint: A comes before P). If neither of them is defined, nothing is used, i.e. the result will have as many digits as it can (with an exception for bdiv/bsqrt) and will not be rounded. * There is another setting for bdiv() (and thus for bsqrt()). If neither of A or P is defined, bdiv() will use a fallback (F) of $div_scale digits. If either the dividend's or the divisor's mantissa has more digits than the value of F, the higher value will be used instead of F. This is to limit the digits (A) of the result (just consider what would happen with unlimited A and P in the case of 1/3 :-) * bdiv will calculate (at least) 4 more digits than required (determined by A, P or F), and, if F is not used, round the result (this will still fail in the case of a result like 0.12345000000001 with A or P of 5, but this can not be helped - or can it?) * Thus you can have the math done by on Math::Big* class in two modi: + never round (this is the default): This is done by setting A and P to undef. No math operation will round the result, with bdiv() and bsqrt() as exceptions to guard against overflows. You must explicitly call bround(), bfround() or round() (the latter with parameters). Note: Once you have rounded a number, the settings will 'stick' on it and 'infect' all other numbers engaged in math operations with it, since local settings have the highest precedence. So, to get SaferRound[tm], use a copy() before rounding like this: $x = Math::BigFloat->new(12.34); $y = Math::BigFloat->new(98.76); $z = $x * $y; # 1218.6984 print $x->copy()->bround(3); # 12.3 (but A is now 3!) $z = $x * $y; # still 1218.6984, without # copy would have been 1210! + round after each op: After each single operation (except for testing like is_zero()), the method round() is called and the result is rounded appropriately. By setting proper values for A and P, you can have all-the-same-A or all-the-same-P modes. For example, Math::Currency might set A to undef, and P to -2, globally. ?Maybe an extra option that forbids local A & P settings would be in order, ?so that intermediate rounding does not 'poison' further math? =item Overriding globals * you will be able to give A, P and R as an argument to all the calculation routines; the second parameter is A, the third one is P, and the fourth is R (shift right by one for binary operations like badd). P is used only if the first parameter (A) is undefined. These three parameters override the globals in the order detailed as follows, i.e. the first defined value wins: (local: per object, global: global default, parameter: argument to sub) + parameter A + parameter P + local A (if defined on both of the operands: smaller one is taken) + local P (if defined on both of the operands: bigger one is taken) + global A + global P + global F * bsqrt() will hand its arguments to bdiv(), as it used to, only now for two arguments (A and P) instead of one =item Local settings * You can set A or P locally by using $x->accuracy() or $x->precision() and thus force different A and P for different objects/numbers. * Setting A or P this way immediately rounds $x to the new value. * $x->accuracy() clears $x->precision(), and vice versa. =item Rounding * the rounding routines will use the respective global or local settings. bround() is for accuracy rounding, while bfround() is for precision * the two rounding functions take as the second parameter one of the following rounding modes (R): 'even', 'odd', '+inf', '-inf', 'zero', 'trunc', 'common' * you can set/get the global R by using Math::SomeClass->round_mode() or by setting $Math::SomeClass::round_mode * after each operation, $result->round() is called, and the result may eventually be rounded (that is, if A or P were set either locally, globally or as parameter to the operation) * to manually round a number, call $x->round($A,$P,$round_mode); this will round the number by using the appropriate rounding function and then normalize it. * rounding modifies the local settings of the number: $x = Math::BigFloat->new(123.456); $x->accuracy(5); $x->bround(4); Here 4 takes precedence over 5, so 123.5 is the result and $x->accuracy() will be 4 from now on. =item Default values * A: undef * P: undef * R: 'even' * F: 40 =item Remarks * The defaults are set up so that the new code gives the same results as the old code (except in a few cases on bdiv): + Both A and P are undefined and thus will not be used for rounding after each operation. + round() is thus a no-op, unless given extra parameters A and P =back =head1 INTERNALS You should neither care about nor depend on the internal representation; it might change without notice. Use B method calls like C<< $x->sign(); >> instead relying on the internal representation. =head2 Math Library The mathematical computations are performed by a backend library. It is not required to specify which backend library to use, but some backend libraries are much faster than the default library. =head3 The default library The default library is L, which is implemented in pure Perl and hence does not require a compiler. =head3 Specifying a library The simple case use Math::BigInt; is equivalent to saying use Math::BigInt try => 'Calc'; You can use a different backend library with, e.g., use Math::BigInt try => 'GMP'; which attempts to load the L library, and falls back to the default library if the specified library can't be loaded. Multiple libraries can be specified by separating them by a comma, e.g., use Math::BigInt try => 'GMP,Pari'; If you request a specific set of libraries and do not allow fallback to the default library, specify them using "only", use Math::BigInt only => 'GMP,Pari'; If you prefer a specific set of libraries, but want to see a warning if the fallback library is used, specify them using "lib", use Math::BigInt lib => 'GMP,Pari'; The following first tries to find Math::BigInt::Foo, then Math::BigInt::Bar, and if this also fails, reverts to Math::BigInt::Calc: use Math::BigInt try => 'Foo,Math::BigInt::Bar'; =head3 Which library to use? B: General purpose packages should not be explicit about the library to use; let the script author decide which is best. L, L, and L are in cases involving big numbers much faster than L. However these libraries are slower when dealing with very small numbers (less than about 20 digits) and when converting very large numbers to decimal (for instance for printing, rounding, calculating their length in decimal etc.). So please select carefully what library you want to use. Different low-level libraries use different formats to store the numbers, so mixing them won't work. You should not depend on the number having a specific internal format. See the respective math library module documentation for further details. =head3 Loading multiple libraries The first library that is successfully loaded is the one that will be used. Any further attempts at loading a different module will be ignored. This is to avoid the situation where module A requires math library X, and module B requires math library Y, causing modules A and B to be incompatible. For example, use Math::BigInt; # loads default "Calc" use Math::BigFloat only => "GMP"; # ignores "GMP" =head2 Sign The sign is either '+', '-', 'NaN', '+inf' or '-inf'. A sign of 'NaN' is used to represent values that are not numbers, e.g., the result of 0/0. '+inf' and '-inf' represen positive and negative infinity, respectively. For example you get '+inf' when dividing a positive number by 0, and '-inf' when dividing any negative number by 0. =head1 EXAMPLES use Math::BigInt; sub bigint { Math::BigInt->new(shift); } $x = Math::BigInt->bstr("1234") # string "1234" $x = "$x"; # same as bstr() $x = Math::BigInt->bneg("1234"); # Math::BigInt "-1234" $x = Math::BigInt->babs("-12345"); # Math::BigInt "12345" $x = Math::BigInt->bnorm("-0.00"); # Math::BigInt "0" $x = bigint(1) + bigint(2); # Math::BigInt "3" $x = bigint(1) + "2"; # ditto ("2" becomes a Math::BigInt) $x = bigint(1); # Math::BigInt "1" $x = $x + 5 / 2; # Math::BigInt "3" $x = $x ** 3; # Math::BigInt "27" $x *= 2; # Math::BigInt "54" $x = Math::BigInt->new(0); # Math::BigInt "0" $x--; # Math::BigInt "-1" $x = Math::BigInt->badd(4,5) # Math::BigInt "9" print $x->bsstr(); # 9e+0 Examples for rounding: use Math::BigFloat; use Test::More; $x = Math::BigFloat->new(123.4567); $y = Math::BigFloat->new(123.456789); Math::BigFloat->accuracy(4); # no more A than 4 is ($x->copy()->bround(),123.4); # even rounding print $x->copy()->bround(),"\n"; # 123.4 Math::BigFloat->round_mode('odd'); # round to odd print $x->copy()->bround(),"\n"; # 123.5 Math::BigFloat->accuracy(5); # no more A than 5 Math::BigFloat->round_mode('odd'); # round to odd print $x->copy()->bround(),"\n"; # 123.46 $y = $x->copy()->bround(4),"\n"; # A = 4: 123.4 print "$y, ",$y->accuracy(),"\n"; # 123.4, 4 Math::BigFloat->accuracy(undef); # A not important now Math::BigFloat->precision(2); # P important print $x->copy()->bnorm(),"\n"; # 123.46 print $x->copy()->bround(),"\n"; # 123.46 Examples for converting: my $x = Math::BigInt->new('0b1'.'01' x 123); print "bin: ",$x->as_bin()," hex:",$x->as_hex()," dec: ",$x,"\n"; =head1 NUMERIC LITERALS After C all numeric literals in the given scope are converted to C objects. This conversion happens at compile time. Every non-integer is convert to a NaN. For example, perl -MMath::BigInt=:constant -le 'print 2**150' prints the exact value of C<2**150>. Note that without conversion of constants to objects the expression C<2**150> is calculated using Perl scalars, which leads to an inaccurate result. Please note that strings are not affected, so that use Math::BigInt qw/:constant/; $x = "1234567890123456789012345678901234567890" + "123456789123456789"; does give you what you expect. You need an explicit Math::BigInt->new() around at least one of the operands. You should also quote large constants to prevent loss of precision: use Math::BigInt; $x = Math::BigInt->new("1234567889123456789123456789123456789"); Without the quotes Perl first converts the large number to a floating point constant at compile time, and then converts the result to a Math::BigInt object at run time, which results in an inaccurate result. =head2 Hexadecimal, octal, and binary floating point literals Perl (and this module) accepts hexadecimal, octal, and binary floating point literals, but use them with care with Perl versions before v5.32.0, because some versions of Perl silently give the wrong result. Below are some examples of different ways to write the number decimal 314. Hexadecimal floating point literals: 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 Octal floating point literals (with "0" prefix): 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 Octal floating point literals (with "0o" prefix) (requires v5.34.0): 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 Binary floating point literals: 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 =head1 PERFORMANCE Using the form $x += $y; etc over $x = $x + $y is faster, since a copy of $x must be made in the second case. For long numbers, the copy can eat up to 20% of the work (in the case of addition/subtraction, less for multiplication/division). If $y is very small compared to $x, the form $x += $y is MUCH faster than $x = $x + $y since making the copy of $x takes more time then the actual addition. With a technique called copy-on-write, the cost of copying with overload could be minimized or even completely avoided. A test implementation of COW did show performance gains for overloaded math, but introduced a performance loss due to a constant overhead for all other operations. So Math::BigInt does currently not COW. The rewritten version of this module (vs. v0.01) is slower on certain operations, like L, L and L. The reason are that it does now more work and handles much more cases. The time spent in these operations is usually gained in the other math operations so that code on the average should get (much) faster. If they don't, please contact the author. Some operations may be slower for small numbers, but are significantly faster for big numbers. Other operations are now constant (O(1), like L, L etc), instead of O(N) and thus nearly always take much less time. These optimizations were done on purpose. If you find the Calc module to slow, try to install any of the replacement modules and see if they help you. =head2 Alternative math libraries You can use an alternative library to drive Math::BigInt. See the section L for more information. For more benchmark results see L. =head1 SUBCLASSING =head2 Subclassing Math::BigInt The basic design of Math::BigInt allows simple subclasses with very little work, as long as a few simple rules are followed: =over =item * The public API must remain consistent, i.e. if a sub-class is overloading addition, the sub-class must use the same name, in this case badd(). The reason for this is that Math::BigInt is optimized to call the object methods directly. =item * The private object hash keys like C<< $x->{sign} >> may not be changed, but additional keys can be added, like C<< $x->{_custom} >>. =item * Accessor functions are available for all existing object hash keys and should be used instead of directly accessing the internal hash keys. The reason for this is that Math::BigInt itself has a pluggable interface which permits it to support different storage methods. =back More complex sub-classes may have to replicate more of the logic internal of Math::BigInt if they need to change more basic behaviors. A subclass that needs to merely change the output only needs to overload L. All other object methods and overloaded functions can be directly inherited from the parent class. At the very minimum, any subclass needs to provide its own L and can store additional hash keys in the object. There are also some package globals that must be defined, e.g.: # Globals our $accuracy = 2; # round to 2 decimal places our $precision = undef; our $round_mode = 'even'; our $div_scale = 40; Additionally, you might want to provide the following two globals to allow auto-upgrading and auto-downgrading: our $upgrade = undef; our $downgrade = undef; This allows Math::BigInt to correctly retrieve package globals from the subclass, like C<$SubClass::precision>. See C, C, or C for subclass examples. Don't forget to use overload; in your subclass to automatically inherit the overloading from the parent. If you like, you can change part of the overloading, look at Math::String for an example. =head1 UPGRADING When used like this: use Math::BigInt upgrade => 'Foo::Bar'; use Math::BigInt; Math::BigInt -> upgrade('Foo::Bar'); any operation whose result cannot be represented as an Math::BigInt object is upgraded to the class Foo::Bar. Usually this is used in conjunction with Math::BigRat or Math::BigFloat: use Math::BigInt upgrade => 'Math::BigFloat'; For example, the following returns 3 as a Math::BigInt when no upgrading is defined, and 3.125 as a Math::BigFloat if Math::BigInt is set to upgrade to Math::BigFloat: $x = Math::BigInt -> new(25) -> bdiv(8); As a shortcut, you can use the module L: use bignum; which is also good for one-liners: perl -Mbignum -le 'print 2 ** 255' This makes it possible to mix arguments of different classes (as in 2.5 + 2) as well as preserve accuracy (as in sqrt(3)). =head2 Auto-upgrade The following methods upgrade themselves unconditionally; that is if upgrade is in effect, they always hands up their work: bdiv bfdiv btdiv bsqrt blog bexp bpi bsin bcos batan batan2 All other methods upgrade themselves only when one (or all) of their arguments are of the class mentioned in $upgrade. =head1 EXPORTS C exports nothing by default, but can export the following methods: bgcd blcm =head1 CAVEATS Some things might not work as you expect them. Below is documented what is known to be troublesome: =over =item Comparing numbers as strings Both L and L as well as stringify via overload drop the leading '+'. This is to be consistent with Perl and to make C (especially with overloading) to work as you expect. It also solves problems with C and L, which stringify arguments before comparing them. Mark Biggar said, when asked about to drop the '+' altogether, or make only C work: I agree (with the first alternative), don't add the '+' on positive numbers. It's not as important anymore with the new internal form for numbers. It made doing things like abs and neg easier, but those have to be done differently now anyway. So, the following examples now works as expected: use Test::More tests => 1; use Math::BigInt; my $x = Math::BigInt -> new(3*3); my $y = Math::BigInt -> new(3*3); is($x,3*3, 'multiplication'); print "$x eq 9" if $x eq $y; print "$x eq 9" if $x eq '9'; print "$x eq 9" if $x eq 3*3; Additionally, the following still works: print "$x == 9" if $x == $y; print "$x == 9" if $x == 9; print "$x == 9" if $x == 3*3; There is now a L method to get the string in scientific notation aka C<1e+2> instead of C<100>. Be advised that overloaded 'eq' always uses bstr() for comparison, but Perl represents some numbers as 100 and others as 1e+308. If in doubt, convert both arguments to Math::BigInt before comparing them as strings: use Test::More tests => 3; use Math::BigInt; $x = Math::BigInt->new('1e56'); $y = 1e56; is($x,$y); # fails is($x->bsstr(), $y); # okay $y = Math::BigInt->new($y); is($x, $y); # okay Alternatively, simply use C<< <=> >> for comparisons, this always gets it right. There is not yet a way to get a number automatically represented as a string that matches exactly the way Perl represents it. =item oct()/hex() These perl routines currently (as of Perl v.5.8.6) cannot handle passed inf. te@linux:~> perl -wle 'print 2 ** 3333' Inf te@linux:~> perl -wle 'print 2 ** 3333 == 2 ** 3333' 1 te@linux:~> perl -wle 'print oct(2 ** 3333)' 0 te@linux:~> perl -wle 'print hex(2 ** 3333)' Illegal hexadecimal digit 'I' ignored at -e line 1. 0 The same problems occur if you pass them Math::BigInt->binf() objects. Since overloading these routines is not possible, this cannot be fixed from Math::BigInt. =item int() L returns (at least for Perl v5.7.1 and up) another Math::BigInt, not a Perl scalar: $x = Math::BigInt->new(123); $y = int($x); # 123 as a Math::BigInt $x = Math::BigFloat->new(123.45); $y = int($x); # 123 as a Math::BigFloat If you want a real Perl scalar, use L: $y = $x->numify(); # 123 as a scalar This is seldom necessary, though, because this is done automatically, like when you access an array: $z = $array[$x]; # does work automatically =item Modifying and = Beware of: $x = Math::BigFloat->new(5); $y = $x; This makes a second reference to the B object and stores it in $y. Thus anything that modifies $x (except overloaded operators) also modifies $y, and vice versa. Or in other words, C<=> is only safe if you modify your Math::BigInt objects only via overloaded math. As soon as you use a method call it breaks: $x->bmul(2); print "$x, $y\n"; # prints '10, 10' If you want a true copy of $x, use: $y = $x->copy(); You can also chain the calls like this, this first makes a copy and then multiply it by 2: $y = $x->copy()->bmul(2); See also the documentation for overload.pm regarding C<=>. =item Overloading -$x The following: $x = -$x; is slower than $x->bneg(); since overload calls C instead of C. The first variant needs to preserve $x since it does not know that it later gets overwritten. This makes a copy of $x and takes O(N), but $x->bneg() is O(1). =item Mixing different object types With overloaded operators, it is the first (dominating) operand that determines which method is called. Here are some examples showing what actually gets called in various cases. use Math::BigInt; use Math::BigFloat; $mbf = Math::BigFloat->new(5); $mbi2 = Math::BigInt->new(5); $mbi = Math::BigInt->new(2); # what actually gets called: $float = $mbf + $mbi; # $mbf->badd($mbi) $float = $mbf / $mbi; # $mbf->bdiv($mbi) $integer = $mbi + $mbf; # $mbi->badd($mbf) $integer = $mbi2 / $mbi; # $mbi2->bdiv($mbi) $integer = $mbi2 / $mbf; # $mbi2->bdiv($mbf) For instance, Math::BigInt->bdiv() always returns a Math::BigInt, regardless of whether the second operant is a Math::BigFloat. To get a Math::BigFloat you either need to call the operation manually, make sure each operand already is a Math::BigFloat, or cast to that type via Math::BigFloat->new(): $float = Math::BigFloat->new($mbi2) / $mbi; # = 2.5 Beware of casting the entire expression, as this would cast the result, at which point it is too late: $float = Math::BigFloat->new($mbi2 / $mbi); # = 2 Beware also of the order of more complicated expressions like: $integer = ($mbi2 + $mbi) / $mbf; # int / float => int $integer = $mbi2 / Math::BigFloat->new($mbi); # ditto If in doubt, break the expression into simpler terms, or cast all operands to the desired resulting type. Scalar values are a bit different, since: $float = 2 + $mbf; $float = $mbf + 2; both result in the proper type due to the way the overloaded math works. This section also applies to other overloaded math packages, like Math::String. One solution to you problem might be autoupgrading|upgrading. See the pragmas L, L and L for an easy way to do this. =back =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L (requires login). We will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Math::BigInt You can also look for information at: =over 4 =item * GitHub L =item * RT: CPAN's request tracker L =item * MetaCPAN L =item * CPAN Testers Matrix L =back =head1 LICENSE This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L and L as well as the backend libraries L, L, and L, L, and L. The pragmas L, L, and L might also be of interest. In addition there is the L pragma which does upgrading and downgrading. =head1 AUTHORS =over 4 =item * Mark Biggar, overloaded interface by Ilya Zakharevich, 1996-2001. =item * Completely rewritten by Tels L, 2001-2008. =item * Florian Ragwitz Eflora@cpan.orgE, 2010. =item * Peter John Acklam Epjacklam@gmail.comE, 2011-. =back Many people contributed in one or more ways to the final beast, see the file CREDITS for an (incomplete) list. If you miss your name, please drop me a mail. Thank you! =cut Math-BigInt-2.005003/lib/Math/BigRat.pm0000644403072340010010000042634714776760255017144 0ustar OSPJADomain Users# # "Tax the rat farms." - Lord Vetinari # # The following hash values are used: # sign : "+", "-", "+inf", "-inf", or "NaN" # _d : denominator # _n : numerator (value = _n/_d) # accuracy : accuracy # precision : precision # You should not look at the innards of a BigRat - use the methods for this. package Math::BigRat; use 5.006; use strict; use warnings; use Carp qw< carp croak >; use Scalar::Util qw< blessed >; use Math::BigFloat qw<>; our $VERSION = '2.005003'; $VERSION =~ tr/_//d; require Exporter; our @ISA = qw< Math::BigFloat >; use overload # overload key: with_assign '+' => sub { $_[0] -> copy() -> badd($_[1]); }, '-' => sub { my $c = $_[0] -> copy; $_[2] ? $c -> bneg() -> badd( $_[1]) : $c -> bsub($_[1]); }, '*' => sub { $_[0] -> copy() -> bmul($_[1]); }, '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bfdiv($_[0]) : $_[0] -> copy() -> bfdiv($_[1]); }, '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bfmod($_[0]) : $_[0] -> copy() -> bfmod($_[1]); }, '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0]) : $_[0] -> copy() -> bpow($_[1]); }, '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bblsft($_[0]) : $_[0] -> copy() -> bblsft($_[1]); }, '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bbrsft($_[0]) : $_[0] -> copy() -> bbrsft($_[1]); }, # overload key: assign '+=' => sub { $_[0] -> badd($_[1]); }, '-=' => sub { $_[0] -> bsub($_[1]); }, '*=' => sub { $_[0] -> bmul($_[1]); }, '/=' => sub { scalar $_[0] -> bfdiv($_[1]); }, '%=' => sub { $_[0] -> bfmod($_[1]); }, '**=' => sub { $_[0] -> bpow($_[1]); }, '<<=' => sub { $_[0] -> bblsft($_[1]); }, '>>=' => sub { $_[0] -> bbrsft($_[1]); }, # 'x=' => sub { }, # '.=' => sub { }, # overload key: num_comparison '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0]) : $_[0] -> blt($_[1]); }, '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0]) : $_[0] -> ble($_[1]); }, '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0]) : $_[0] -> bgt($_[1]); }, '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0]) : $_[0] -> bge($_[1]); }, '==' => sub { $_[0] -> beq($_[1]); }, '!=' => sub { $_[0] -> bne($_[1]); }, # overload key: 3way_comparison '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]); defined($cmp) && $_[2] ? -$cmp : $cmp; }, 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr() : $_[0] -> bstr() cmp "$_[1]"; }, # overload key: str_comparison # 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0]) # : $_[0] -> bstrlt($_[1]); }, # # 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0]) # : $_[0] -> bstrle($_[1]); }, # # 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0]) # : $_[0] -> bstrgt($_[1]); }, # # 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0]) # : $_[0] -> bstrge($_[1]); }, # # 'eq' => sub { $_[0] -> bstreq($_[1]); }, # # 'ne' => sub { $_[0] -> bstrne($_[1]); }, # overload key: binary '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0]) : $_[0] -> copy() -> band($_[1]); }, '&=' => sub { $_[0] -> band($_[1]); }, '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0]) : $_[0] -> copy() -> bior($_[1]); }, '|=' => sub { $_[0] -> bior($_[1]); }, '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0]) : $_[0] -> copy() -> bxor($_[1]); }, '^=' => sub { $_[0] -> bxor($_[1]); }, # '&.' => sub { }, # '&.=' => sub { }, # '|.' => sub { }, # '|.=' => sub { }, # '^.' => sub { }, # '^.=' => sub { }, # overload key: unary 'neg' => sub { $_[0] -> copy() -> bneg(); }, # '!' => sub { }, '~' => sub { $_[0] -> copy() -> bnot(); }, # '~.' => sub { }, # overload key: mutators '++' => sub { $_[0] -> binc() }, '--' => sub { $_[0] -> bdec() }, # overload key: func 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0]) : $_[0] -> copy() -> batan2($_[1]); }, 'cos' => sub { $_[0] -> copy() -> bcos(); }, 'sin' => sub { $_[0] -> copy() -> bsin(); }, 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); }, 'abs' => sub { $_[0] -> copy() -> babs(); }, 'log' => sub { $_[0] -> copy() -> blog(); }, 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); }, 'int' => sub { $_[0] -> copy() -> bint(); }, # overload key: conversion 'bool' => sub { $_[0] -> is_zero() ? '' : 1; }, '""' => sub { $_[0] -> bstr(); }, '0+' => sub { $_[0] -> numify(); }, '=' => sub { $_[0]->copy(); }, ; BEGIN { *objectify = \&Math::BigInt::objectify; *AUTOLOAD = \&Math::BigFloat::AUTOLOAD; # can't inherit AUTOLOAD *as_number = \&as_int; *is_pos = \&is_positive; *is_neg = \&is_negative; } ############################################################################## # Global constants and flags. Access these only via the accessor methods! our $accuracy = undef; our $precision = undef; our $round_mode = 'even'; our $div_scale = 40; our $upgrade = undef; our $downgrade = undef; our $_trap_nan = 0; # croak on NaNs? our $_trap_inf = 0; # croak on Infs? my $nan = 'NaN'; # constant for easier life my $LIB = Math::BigInt -> config('lib'); # math backend library # Has import() been called yet? This variable is needed to make "require" work. my $IMPORT = 0; # Compare the following function with @ISA above. This inheritance mess needs a # clean up. When doing so, also consider the BEGIN block and the AUTOLOAD code. # Fixme! sub isa { return 0 if $_[1] =~ /^Math::Big(Int|Float)/; # we aren't UNIVERSAL::isa(@_); } ############################################################################## sub new { # Create a new Math::BigFloat object from a string or another Math::BigInt, # Math::BigFloat, or Math::BigRat object. See hash keys documented at top. my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; if (@_ > 2) { carp("Superfluous arguments to new() ignored."); } # Calling new() with no input arguments has been discouraged for more than # 10 years, but people apparently still use it, so we still support it. # Also, if any of the arguments is undefined, return zero. if (@_ == 0 || @_ == 1 && !defined($_[0]) || @_ == 2 && (!defined($_[0]) || !defined($_[1]))) { #carp("Use of uninitialized value in new()"); return $class -> bzero(); } my @args = @_; # Initialize a new object. $self = bless {}, $class; # Special cases for speed and to avoid infinite recursion. The methods # Math::BigInt->as_rat() and Math::BigFloat->as_rat() call # Math::BigRat->as_rat() (i.e., this method) with a scalar (non-ref) # integer argument. if (@args == 1 && !ref($args[0])) { # "3", "+3", "-3", "+001_2_3e+4" if ($args[0] =~ m{ ^ \s* # optional sign ( [+-]? ) # integer mantissa with optional leading zeros 0* ( [1-9] \d* (?: _ \d+ )* | 0 ) # optional non-negative exponent (?: [eE] \+? ( \d+ (?: _ \d+ )* ) )? \s* $ }x) { my $sign = $1; (my $mant = $2) =~ tr/_//d; my $expo = $3; $mant .= "0" x $expo if defined($expo) && $mant ne "0"; $self -> {_n} = $LIB -> _new($mant); $self -> {_d} = $LIB -> _one(); $self -> {sign} = $sign eq "-" && $mant ne "0" ? "-" : "+"; $self -> _dng(); return $self; } # "3/5", "+3/5", "-3/5", "+001_2_3e+4 / 05_6e7" if ($args[0] =~ m{ ^ \s* # optional leading sign ( [+-]? ) # integer mantissa with optional leading zeros 0* ( [1-9] \d* (?: _ \d+ )* | 0 ) # optional non-negative exponent (?: [eE] \+? ( \d+ (?: _ \d+ )* ) )? # fraction \s* / \s* # non-zero integer mantissa with optional leading zeros 0* ( [1-9] \d* (?: _ \d+ )* ) # optional non-negative exponent (?: [eE] \+? ( \d+ (?: _ \d+ )* ) )? \s* $ }x) { my $sign = $1; (my $mant1 = $2) =~ tr/_//d; my $expo1 = $3; $mant1 .= "0" x $expo1 if defined($expo1) && $mant1 ne "0"; (my $mant2 = $4) =~ tr/_//d; my $expo2 = $5; $mant2 .= "0" x $expo2 if defined($expo2) && $mant2 ne "0"; $self -> {_n} = $LIB -> _new($mant1); $self -> {_d} = $LIB -> _new($mant2); $self -> {sign} = $sign eq "-" && $mant1 ne "0" ? "-" : "+"; my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}), $self -> {_d}); unless ($LIB -> _is_one($gcd)) { $self -> {_n} = $LIB -> _div($self->{_n}, $gcd); $self -> {_d} = $LIB -> _div($self->{_d}, $gcd); } $self -> _dng() if $self -> is_int(); return $self; } } # If given exactly one argument which is a string that looks like a # fraction, replace this argument with the fraction's numerator and # denominator. if (@args == 1 && !ref($args[0]) && $args[0] =~ m{ ^ \s* ( \S+ ) \s* / \s* ( \S+ ) \s* $ }x) { @args = ($1, $2); } # Now get the numerator and denominator either by calling as_rat() or by # letting Math::BigFloat->new() parse the argument as a string. my ($n, $d); if (@args >= 1) { if (ref($args[0]) && $args[0] -> can('as_rat')) { $n = $args[0] -> as_rat(); } else { $n = Math::BigFloat -> new($args[0], undef, undef) -> as_rat(); } } if (@args >= 2) { if (ref($args[1]) && $args[1] -> can('as_rat')) { $d = $args[1] -> as_rat(); } else { $d = Math::BigFloat -> new($args[1], undef, undef) -> as_rat(); } } $n -> bdiv($d) if defined $d; $self -> {sign} = $n -> {sign}; $self -> {_n} = $n -> {_n}; $self -> {_d} = $n -> {_d}; $self -> _dng() if ($self -> is_int() || $self -> is_inf() || $self -> is_nan()); return $self; } # Create a Math::BigRat from a decimal string. This is an equivalent to # from_hex(), from_oct(), and from_bin(). It is like new() except that it does # not accept anything but a string representing a finite decimal number. sub from_dec { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_dec'); my $str = shift; my @r = @_; if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; $self -> _init(); } my ($mant_sgn, $mant_abs, $expo_sgn, $expo_abs) = @parts; $self->{sign} = $mant_sgn; $self->{_n} = $mant_abs; if ($expo_sgn eq "+") { $self->{_n} = $LIB -> _lsft($self->{_n}, $expo_abs, 10); $self->{_d} = $LIB -> _one(); } else { $self->{_d} = $LIB -> _1ex($expo_abs); } my $gcd = $LIB -> _gcd($LIB -> _copy($self->{_n}), $self->{_d}); if (!$LIB -> _is_one($gcd)) { $self->{_n} = $LIB -> _div($self->{_n}, $gcd); $self->{_d} = $LIB -> _div($self->{_d}, $gcd); } $self -> _dng() if $self -> is_int(); return $self; } return $self -> bnan(@r); } sub from_hex { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_hex'); my $str = shift; my @r = @_; if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; $self -> _init(); } my ($mant_sgn, $mant_abs, $expo_sgn, $expo_abs) = @parts; $self->{sign} = $mant_sgn; $self->{_n} = $mant_abs; if ($expo_sgn eq "+") { # e.g., 345e+2 => 34500/1 $self->{_n} = $LIB -> _lsft($self->{_n}, $expo_abs, 10); $self->{_d} = $LIB -> _one(); } else { # e.g., 345e-2 => 345/100 $self->{_d} = $LIB -> _1ex($expo_abs); # e.g., 345/100 => 69/20 my $gcd = $LIB -> _gcd($LIB -> _copy($self->{_n}), $self->{_d}); unless ($LIB -> _is_one($gcd)) { $self->{_n} = $LIB -> _div($self->{_n}, $gcd); $self->{_d} = $LIB -> _div($self->{_d}, $gcd); } } $self -> _dng() if $self -> is_int(); return $self; } return $self -> bnan(@r); } sub from_oct { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_oct'); my $str = shift; my @r = @_; if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; $self -> _init(); } my ($mant_sgn, $mant_abs, $expo_sgn, $expo_abs) = @parts; $self->{sign} = $mant_sgn; $self->{_n} = $mant_abs; if ($expo_sgn eq "+") { # e.g., 345e+2 => 34500/1 $self->{_n} = $LIB -> _lsft($self->{_n}, $expo_abs, 10); $self->{_d} = $LIB -> _one(); } else { # e.g., 345e-2 => 345/100 $self->{_d} = $LIB -> _1ex($expo_abs); # e.g., 345/100 => 69/20 my $gcd = $LIB -> _gcd($LIB -> _copy($self->{_n}), $self->{_d}); unless ($LIB -> _is_one($gcd)) { $self->{_n} = $LIB -> _div($self->{_n}, $gcd); $self->{_d} = $LIB -> _div($self->{_d}, $gcd); } } $self -> _dng() if $self -> is_int(); return $self; } return $self -> bnan(@r); } sub from_bin { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bin'); my $str = shift; my @r = @_; if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) { # If called as a class method, initialize a new object. unless ($selfref) { $self = bless {}, $class; $self -> _init(); } my ($mant_sgn, $mant_abs, $expo_sgn, $expo_abs) = @parts; $self->{sign} = $mant_sgn; $self->{_n} = $mant_abs; if ($expo_sgn eq "+") { # e.g., 345e+2 => 34500/1 $self->{_n} = $LIB -> _lsft($self->{_n}, $expo_abs, 10); $self->{_d} = $LIB -> _one(); } else { # e.g., 345e-2 => 345/100 $self->{_d} = $LIB -> _1ex($expo_abs); # e.g., 345/100 => 69/20 my $gcd = $LIB -> _gcd($LIB -> _copy($self->{_n}), $self->{_d}); unless ($LIB -> _is_one($gcd)) { $self->{_n} = $LIB -> _div($self->{_n}, $gcd); $self->{_d} = $LIB -> _div($self->{_d}, $gcd); } } $self -> _dng() if $self -> is_int(); return $self; } return $self -> bnan(@r); } sub from_bytes { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_bytes'); my $str = shift; my @r = @_; # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = "+"; $self -> {_n} = $LIB -> _from_bytes($str); $self -> {_d} = $LIB -> _one(); $self -> _dng(); return $self; } sub from_ieee754 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_ieee754'); my $in = shift; my $format = shift; my @r = @_; my $tmp = Math::BigFloat -> from_ieee754($in, $format, @r); $tmp = $tmp -> as_rat(); # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = $tmp -> {sign}; $self -> {_n} = $tmp -> {_n}; $self -> {_d} = $tmp -> {_d}; $self -> _dng() if $self -> is_int(); return $self; } sub from_fp80 { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_fp80'); my $in = shift; my @r = @_; my $tmp = Math::BigFloat -> from_fp80($in, @r); $tmp = $tmp -> as_rat(); # If called as a class method, initialize a new object. $self = $class -> bzero(@r) unless $selfref; $self -> {sign} = $tmp -> {sign}; $self -> {_n} = $tmp -> {_n}; $self -> {_d} = $tmp -> {_d}; $self -> _dng() if $self -> is_int(); return $self; } sub from_base { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('from_base'); my ($str, $base, $cs, @r) = @_; # $cs is the collation sequence $base = $class -> new($base) unless ref($base); croak("the base must be a finite integer >= 2") if $base < 2 || ! $base -> is_int(); # If called as a class method, initialize a new object. $self = $class -> bzero() unless $selfref; # If no collating sequence is given, pass some of the conversions to # methods optimized for those cases. unless (defined $cs) { return $self -> from_bin($str, @r) if $base == 2; return $self -> from_oct($str, @r) if $base == 8; return $self -> from_hex($str, @r) if $base == 16; return $self -> from_dec($str, @r) if $base == 10; } croak("from_base() requires a newer version of the $LIB library.") unless $LIB -> can('_from_base'); $self -> {sign} = '+'; $self -> {_n} = $LIB->_from_base($str, $base -> {_n}, defined($cs) ? $cs : ()); $self -> {_d} = $LIB->_one(); $self -> bnorm(); $self -> _dng(); return $self; } sub bzero { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bzero'); # Downgrade? my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bzero(@_) if $selfref; return $dng -> bzero(@_); } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = '+'; $self -> {_n} = $LIB -> _zero(); $self -> {_d} = $LIB -> _one(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bone { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bone'); # Downgrade? my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bone(@_) if $selfref; return $dng -> bone(@_); } # Get the sign. my $sign = '+'; # default is to return +1 if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) { $sign = $1; shift; } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $sign; $self -> {_n} = $LIB -> _one(); $self -> {_d} = $LIB -> _one(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub binf { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_inf"}) { croak("Tried to create +-inf in $class->binf()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('binf'); # Get the sign. my $sign = '+'; # default is to return positive infinity if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) { $sign = $1; shift; } # Get the rounding parameters, if any. my @r = @_; # Downgrade? my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> binf($sign, @r) if $selfref; return $dng -> binf($sign, @r); } # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $sign . 'inf'; $self -> {_n} = $LIB -> _zero(); $self -> {_d} = $LIB -> _one(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bnan { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; { no strict 'refs'; if (${"${class}::_trap_nan"}) { croak("Tried to create NaN in $class->bnan()"); } } # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bnan'); my $dng = $class -> downgrade(); if ($dng && $dng ne $class) { return $self -> _dng() -> bnan(@_) if $selfref; return $dng -> bnan(@_); } # Get the rounding parameters, if any. my @r = @_; # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; $self -> {sign} = $nan; $self -> {_n} = $LIB -> _zero(); $self -> {_d} = $LIB -> _one(); # If rounding parameters are given as arguments, use them. If no rounding # parameters are given, and if called as a class method initialize the new # instance with the class variables. #return $self -> round(@r); # this should work, but doesnt; fixme! if (@r) { if (@r >= 2 && defined($r[0]) && defined($r[1])) { carp "can't specify both accuracy and precision"; return $self -> bnan(); } $self->{accuracy} = $r[0]; $self->{precision} = $r[1]; } else { unless($selfref) { $self->{accuracy} = $class -> accuracy(); $self->{precision} = $class -> precision(); } } return $self; } sub bpi { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; my @r = @_; # rounding paramters # Make "require" work. $class -> import() if $IMPORT == 0; # Don't modify constant (read-only) objects. return $self if $selfref && $self -> modify('bpi'); # If called as a class method, initialize a new object. $self = bless {}, $class unless $selfref; ($self, @r) = $self -> _find_round_parameters(@r); # The accuracy, i.e., the number of digits. Pi has one digit before the # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits. my $n = defined $r[0] ? $r[0] : defined $r[1] ? 1 - $r[1] : $self -> div_scale(); # The algorithm below creates a fraction from a floating point number. The # worst case is the number (1 + sqrt(5))/2 (golden ratio), which takes # almost 2.4*N iterations to find a fraction that is accurate to N digits, # i.e., the relative error is less than 10**(-N). # # This algorithm might be useful in general, so it should probably be moved # out to a method of its own. XXX my $max_iter = $n * 2.4; my $x = Math::BigFloat -> bpi($n + 10); my $tol = $class -> new("1/10") -> bpow("$n") -> bmul($x); my $n0 = $class -> bzero(); my $d0 = $class -> bone(); my $n1 = $class -> bone(); my $d1 = $class -> bzero(); my ($n2, $d2); my $xtmp = $x -> copy(); for (my $iter = 0 ; $iter <= $max_iter ; $iter++) { my $t = $xtmp -> copy() -> bint(); $n2 = $n1 -> copy() -> bmul($t) -> badd($n0); $d2 = $d1 -> copy() -> bmul($t) -> badd($d0); my $err = $n2 -> copy() -> bdiv($d2) -> bsub($x); last if $err -> copy() -> babs() -> ble($tol); $xtmp -> bsub($t); last if $xtmp -> is_zero(); $xtmp -> binv(); ($n1, $n0) = ($n2, $n1); ($d1, $d0) = ($d2, $d1); } my $mbr = $n2 -> bdiv($d2); %$self = %$mbr; return $self; } sub copy { my $self = shift; my $selfref = ref $self; my $class = $selfref || $self; # If called as a class method, the object to copy is the next argument. $self = shift() unless $selfref; my $copy = bless {}, $class; $copy->{sign} = $self->{sign}; $copy->{_d} = $LIB->_copy($self->{_d}); $copy->{_n} = $LIB->_copy($self->{_n}); $copy->{accuracy} = $self->{accuracy} if defined $self->{accuracy}; $copy->{precision} = $self->{precision} if defined $self->{precision}; #($copy, $copy->{accuracy}, $copy->{precision}) # = $copy->_find_round_parameters(@_); return $copy; } sub as_int { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. my $upg = Math::BigInt -> upgrade(); my $dng = Math::BigInt -> downgrade(); Math::BigInt -> upgrade(undef); Math::BigInt -> downgrade(undef); my $y; if ($x -> isa("Math::BigInt")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigInt -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigInt -> bnan(); } else { $y = Math::BigInt -> new($x -> copy() -> bint() -> bdstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigInt -> upgrade($upg); Math::BigInt -> downgrade($dng); return $y; } sub as_rat { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Temporarily disable upgrading and downgrading. require Math::BigRat; my $upg = Math::BigRat -> upgrade(); my $dng = Math::BigRat -> downgrade(); Math::BigRat -> upgrade(undef); Math::BigRat -> downgrade(undef); my $y; if ($x -> isa("Math::BigRat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigRat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigRat -> bnan(); } else { $y = Math::BigRat -> new($x -> bfstr()); } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigRat -> upgrade($upg); Math::BigRat -> downgrade($dng); return $y; } sub as_float { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Disable upgrading and downgrading. require Math::BigFloat; my $upg = Math::BigFloat -> upgrade(); my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $y; if ($x -> isa("Math::BigFloat")) { $y = $x -> copy(); } else { if ($x -> is_inf()) { $y = Math::BigFloat -> binf($x -> sign()); } elsif ($x -> is_nan()) { $y = Math::BigFloat -> bnan(); } else { if ($x -> isa("Math::BigRat")) { if ($x -> is_int()) { $y = Math::BigFloat -> new($x -> bdstr()); } else { my ($num, $den) = $x -> fparts(); my $str = $num -> as_float() -> bdiv($den, @r) -> bdstr(); $y = Math::BigFloat -> new($str); } } else { $y = Math::BigFloat -> new($x -> bdstr()); } } # Copy the remaining instance variables. ($y->{accuracy}, $y->{precision}) = ($x->{accuracy}, $x->{precision}); } $y -> round(@r); # Restore upgrading and downgrading. Math::BigFloat -> upgrade($upg); Math::BigFloat -> downgrade($dng); return $y; } sub is_zero { # return true if arg (BRAT or num_str) is zero my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return 1 if $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); return 0; } sub is_one { # return true if arg (BRAT or num_str) is +1 or -1 if signis given my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_); if (defined($sign)) { croak 'is_one(): sign argument must be "+" or "-"' unless $sign eq '+' || $sign eq '-'; } else { $sign = '+'; } return 0 if $x->{sign} ne $sign; return 1 if $LIB->_is_one($x->{_n}) && $LIB->_is_one($x->{_d}); return 0; } sub is_odd { # return true if arg (BFLOAT or num_str) is odd or false if even my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return 0 unless $x -> is_finite(); return 1 if $LIB->_is_one($x->{_d}) && $LIB->_is_odd($x->{_n}); return 0; } sub is_even { # return true if arg (BINT or num_str) is even or false if odd my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return 0 unless $x -> is_finite(); return 1 if $LIB->_is_one($x->{_d}) && $LIB->_is_even($x->{_n}); return 0; } sub is_int { # return true if arg (BRAT or num_str) is an integer my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return 1 if $x -> is_finite() && $LIB->_is_one($x->{_d}); return 0; } ############################################################################## sub config { my $self = shift; my $class = ref($self) || $self || __PACKAGE__; # Getter/accessor. if (@_ == 1 && ref($_[0]) ne 'HASH') { my $param = shift; return $class if $param eq 'class'; return $LIB if $param eq 'with'; return $self -> SUPER::config($param); } # Setter. my $cfg = $self -> SUPER::config(@_); # We need only to override the ones that are different from our parent. unless (ref($self)) { $cfg->{class} = $class; $cfg->{with} = $LIB; } $cfg; } ############################################################################## # comparing sub bcmp { # compare two signed numbers # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; if (!$x -> is_finite() || !$y -> is_finite()) { # $x is NaN and/or $y is NaN return if $x -> is_nan() || $y -> is_nan(); # $x and $y are both either +inf or -inf return 0 if $x->{sign} eq $y->{sign} && $x -> is_inf(); # $x = +inf and $y < +inf return +1 if $x -> is_inf("+"); # $x = -inf and $y > -inf return -1 if $x -> is_inf("-"); # $x < +inf and $y = +inf return -1 if $y -> is_inf("+"); # $x > -inf and $y = -inf return +1; } # $x >= 0 and $y < 0 return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # $x < 0 and $y >= 0 return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # At this point, we know that $x and $y have the same sign. # shortcut my $xz = $LIB->_is_zero($x->{_n}); my $yz = $LIB->_is_zero($y->{_n}); return 0 if $xz && $yz; # 0 <=> 0 return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y return 1 if $yz && $x->{sign} eq '+'; # +x <=> 0 my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d}); my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d}); my $cmp = $LIB->_acmp($t, $u); # signs are equal $cmp = -$cmp if $x->{sign} eq '-'; # both are '-' => reverse $cmp; } sub bacmp { # compare two numbers (as unsigned) # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # handle +-inf and NaN if (!$x -> is_finite() || !$y -> is_finite()) { return if ($x -> is_nan() || $y -> is_nan()); return 0 if $x -> is_inf() && $y -> is_inf(); return 1 if $x -> is_inf() && !$y -> is_inf(); return -1; } my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d}); my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d}); $LIB->_acmp($t, $u); # ignore signs } ############################################################################## # sign manipulation sub bneg { # (BRAT or num_str) return BRAT # negate number or make a negated number from string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bneg'); # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN' $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_n})); $x -> round(@r); $x -> _dng() if $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x; } sub bnorm { # reduce the number to the shortest form my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # Both parts must be objects of whatever we are using today. if (my $c = $LIB->_check($x->{_n})) { croak("n did not pass the self-check ($c) in bnorm()"); } if (my $c = $LIB->_check($x->{_d})) { croak("d did not pass the self-check ($c) in bnorm()"); } # no normalize for NaN, inf etc. if (!$x -> is_finite()) { $x -> _dng(); return $x; } # normalize zeros to 0/1 if ($LIB->_is_zero($x->{_n})) { $x->{sign} = '+'; # never leave a -0 $x->{_d} = $LIB->_one() unless $LIB->_is_one($x->{_d}); $x -> _dng(); return $x; } # n/1 if ($LIB->_is_one($x->{_d})) { $x -> _dng(); return $x; # no need to reduce } # Compute the GCD. my $gcd = $LIB->_gcd($LIB->_copy($x->{_n}), $x->{_d}); if (!$LIB->_is_one($gcd)) { $x->{_n} = $LIB->_div($x->{_n}, $gcd); $x->{_d} = $LIB->_div($x->{_d}, $gcd); } $x; } sub binc { # increment value (add 1) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('binc'); if (!$x -> is_finite()) { # NaN, inf, -inf $x -> round(@r); $x -> _dng(); return $x; } if ($x->{sign} eq '-') { if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) { # -1/3 ++ => 2/3 (overflow at 0) $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n}); $x->{sign} = '+'; } else { $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # -5/2 => -3/2 } } else { $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # 5/2 => 7/2 } $x -> bnorm(); # is this necessary? check! XXX $x -> round(@r); $x -> _dng() if $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x; } sub bdec { # decrement value (subtract 1) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdec'); if (!$x -> is_finite()) { # NaN, inf, -inf $x -> round(@r); $x -> _dng(); return $x; } if ($x->{sign} eq '-') { $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2 } else { if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) # n < d? { # 1/3 -- => -2/3 $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n}); $x->{sign} = '-'; } else { $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # 5/2 => 3/2 } } $x -> bnorm(); # is this necessary? check! XXX $x -> round(@r); $x -> _dng() if $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x; } ############################################################################## # mul/add/div etc sub badd { # add two rational numbers # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('badd'); unless ($x -> is_finite() && $y -> is_finite()) { if ($x -> is_nan() || $y -> is_nan()) { return $x -> bnan(@r); } elsif ($x -> is_inf("+")) { return $x -> bnan(@r) if $y -> is_inf("-"); return $x -> binf("+", @r); } elsif ($x -> is_inf("-")) { return $x -> bnan(@r) if $y -> is_inf("+"); return $x -> binf("-", @r); } elsif ($y -> is_inf("+")) { return $x -> binf("+", @r); } elsif ($y -> is_inf("-")) { return $x -> binf("-", @r); } } # 1 1 gcd(3, 4) = 1 1*3 + 1*4 7 # - + - = --------- = -- # 4 3 4*3 12 # we do not compute the gcd() here, but simple do: # 5 7 5*3 + 7*4 43 # - + - = --------- = -- # 4 3 4*3 12 # and bnorm() will then take care of the rest # 5 * 3 $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d}); # 7 * 4 my $m = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d}); # 5 * 3 + 7 * 4 ($x->{_n}, $x->{sign}) = $LIB -> _sadd($x->{_n}, $x->{sign}, $m, $y->{sign}); # 4 * 3 $x->{_d} = $LIB->_mul($x->{_d}, $y->{_d}); # normalize result, and possible round $x -> bnorm() -> round(@r); } sub bsub { # subtract two rational numbers # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsub'); # flip sign of $x, call badd(), then flip sign of result $x->{sign} =~ tr/+-/-+/ unless $x->{sign} eq '+' && $x -> is_zero(); # not -0 $x = $x -> badd($y, @r); # does norm and round $x->{sign} =~ tr/+-/-+/ unless $x->{sign} eq '+' && $x -> is_zero(); # not -0 $x -> bnorm(); } sub bmul { # multiply two rational numbers # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmul'); return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan(); # inf handling if ($x -> is_inf() || $y -> is_inf()) { return $x -> bnan(@r) if $x -> is_zero() || $y -> is_zero(); # result will always be +-inf: # +inf * +/+inf => +inf, -inf * -/-inf => +inf # +inf * -/-inf => -inf, -inf * +/+inf => -inf return $x -> binf(@r) if $x -> is_positive() && $y -> is_positive(); return $x -> binf(@r) if $x -> is_negative() && $y -> is_negative(); return $x -> binf('-', @r); } return $x -> _upg() -> bmul($y, @r) if $class -> upgrade(); if ($x -> is_zero() || $y -> is_zero()) { return $x -> bzero(@r); } # According to Knuth, this can be optimized by doing gcd twice (for d # and n) and reducing in one step. # # p s p * s (p / gcd(p, r)) * (s / gcd(s, q)) # - * - = ----- = --------------------------------- # q r q * r (q / gcd(s, q)) * (r / gcd(p, r)) my $gcd_pr = $LIB -> _gcd($LIB -> _copy($x->{_n}), $y->{_d}); my $gcd_sq = $LIB -> _gcd($LIB -> _copy($y->{_n}), $x->{_d}); $x->{_n} = $LIB -> _mul(scalar $LIB -> _div($x->{_n}, $gcd_pr), scalar $LIB -> _div($LIB -> _copy($y->{_n}), $gcd_sq)); $x->{_d} = $LIB -> _mul(scalar $LIB -> _div($x->{_d}, $gcd_sq), scalar $LIB -> _div($LIB -> _copy($y->{_d}), $gcd_pr)); # compute new sign $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; $x -> bnorm(); # this is probably redundant; check XXX $x -> round(@r); $x -> _dng() if $x -> is_int(); return $x; } *bdiv = \&bfdiv; *bmod = \&bfmod; sub bfdiv { # (dividend: BRAT or num_str, divisor: BRAT or num_str) return # (BRAT, BRAT) (quo, rem) or BRAT (only rem) # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bfdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> bfdiv(). if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. This is handled the same way as in # Math::BigInt -> bfdiv(). See the comments in the code implementing that # method. if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x -> {sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> bfdiv(). See the comment in the code for Math::BigInt -> # bfdiv() for further details. if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign, @r); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigFloat -> bfdiv(). See the comments in the code implementing that # method. if ($y -> is_inf()) { my $rem; if ($wantarray) { if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); $x -> bzero(@r); } else { $rem = $class -> binf($y -> {sign}, @r); $x -> bone('-', @r); } } else { $x -> bzero(@r); } return $wantarray ? ($x, $rem) : $x; } # At this point, both the numerator and denominator are finite, non-zero # numbers. # According to Knuth, this can be optimized by doing gcd twice (for d and n) # and reducing in one step. This would save us the bnorm(). # # p r p * s (p / gcd(p, r)) * (s / gcd(s, q)) # - / - = ----- = --------------------------------- # q s q * r (q / gcd(s, q)) * (r / gcd(p, r)) $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d}); $x->{_d} = $LIB->_mul($x->{_d}, $y->{_n}); # compute new sign $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; $x -> bnorm(); if ($wantarray) { my $rem = $x -> copy(); $x -> bfloor(); $x -> round(@r); $rem -> bsub($x -> copy()) -> bmul($y); $x -> _dng() if $x -> is_int(); $rem -> _dng() if $rem -> is_int(); return $x, $rem; } $x -> _dng() if $x -> is_int(); return $x; } sub bfmod { # This is the remainder after floored division. # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('bfmod'); # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> bfmod(). if ($x -> is_nan() || $y -> is_nan()) { return $x -> bnan(); } # Modulo zero. This is handled the same way as in Math::BigInt -> bfmod(). if ($y -> is_zero()) { return $x -> round(); } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> bfmod(). if ($x -> is_inf()) { return $x -> bnan(); } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigInt -> bfmod(). if ($y -> is_inf()) { if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) { $x -> _dng() if $x -> is_int(); return $x; } else { return $x -> binf($y -> sign()); } } # At this point, both the numerator and denominator are finite numbers, and # the denominator (divisor) is non-zero. if ($x -> is_zero()) { # 0 / 7 = 0, mod 0 return $x -> bzero(); } # Compute $x - $y * floor($x / $y). This can be optimized by working on the # library thingies directly. XXX $x -> bsub($x -> copy() -> bfdiv($y) -> bfloor() -> bmul($y)); return $x -> round(@r); } sub btdiv { # (dividend: BRAT or num_str, divisor: BRAT or num_str) return # (BRAT, BRAT) (quo, rem) or BRAT (only rem) # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('btdiv'); my $wantarray = wantarray; # call only once # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> btdiv(). if ($x -> is_nan() || $y -> is_nan()) { return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r)) : $x -> bnan(@r); } # Divide by zero and modulo zero. This is handled the same way as in # Math::BigInt -> btdiv(). See the comments in the code implementing that # method. if ($y -> is_zero()) { my $rem; if ($wantarray) { $rem = $x -> copy() -> round(@r); $rem -> _dng() if $rem -> is_int(); } if ($x -> is_zero()) { $x -> bnan(@r); } else { $x -> binf($x -> {sign}, @r); } return $wantarray ? ($x, $rem) : $x; } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> btdiv(). See the comment in the code for Math::BigInt -> # btdiv() for further details. if ($x -> is_inf()) { my $rem; $rem = $class -> bnan(@r) if $wantarray; if ($y -> is_inf()) { $x -> bnan(@r); } else { my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-'; $x -> binf($sign, @r); } return $wantarray ? ($x, $rem) : $x; } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigFloat -> btdiv(). See the comments in the code implementing that # method. if ($y -> is_inf()) { my $rem; if ($wantarray) { $rem = $x -> copy(); $rem -> _dng() if $rem -> is_int(); $x -> bzero(); return $x, $rem; } else { if ($y -> is_inf()) { if ($x -> is_nan() || $x -> is_inf()) { return $x -> bnan(); } else { return $x -> bzero(); } } } } if ($x -> is_zero()) { $x -> round(@r); $x -> _dng() if $x -> is_int(); if ($wantarray) { my $rem = $class -> bzero(@r); return $x, $rem; } return $x; } # At this point, both the numerator and denominator are finite, non-zero # numbers. # According to Knuth, this can be optimized by doing gcd twice (for d and n) # and reducing in one step. This would save us the bnorm(). # # p r p * s (p / gcd(p, r)) * (s / gcd(s, q)) # - / - = ----- = --------------------------------- # q s q * r (q / gcd(s, q)) * (r / gcd(p, r)) $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d}); $x->{_d} = $LIB->_mul($x->{_d}, $y->{_n}); # compute new sign $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; $x -> bnorm(); if ($wantarray) { my $rem = $x -> copy(); $x -> bint(); $x -> round(@r); $rem -> bsub($x -> copy()) -> bmul($y); $x -> _dng() if $x -> is_int(); $rem -> _dng() if $rem -> is_int(); return $x, $rem; } $x -> _dng() if $x -> is_int(); return $x; } sub btmod { # This is the remainder after floored division. # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); ########################################################################### # Code for all classes that share the common interface. ########################################################################### # Don't modify constant (read-only) objects. return $x if $x -> modify('btmod'); # At least one argument is NaN. This is handled the same way as in # Math::BigInt -> btmod(). if ($x -> is_nan() || $y -> is_nan()) { return $x -> bnan(); } # Modulo zero. This is handled the same way as in Math::BigInt -> btmod(). if ($y -> is_zero()) { return $x -> round(); } # Numerator (dividend) is +/-inf. This is handled the same way as in # Math::BigInt -> btmod(). if ($x -> is_inf()) { return $x -> bnan(); } # Denominator (divisor) is +/-inf. This is handled the same way as in # Math::BigInt -> btmod(). if ($y -> is_inf()) { $x -> _dng() if $x -> is_int(); return $x; } # At this point, both the numerator and denominator are finite numbers, and # the denominator (divisor) is non-zero. if ($x -> is_zero()) { # 0 / 7 = 0, mod 0 return $x -> bzero(); } # Compute $x - $y * int($x / $y). # # p r (p * s / gcd(q, s)) mod (r * q / gcd(q, s)) # - mod - = ------------------------------------------- # q s q * s / gcd(q, s) # # u mod v u = p * (s / gcd(q, s)) # = ------- where v = r * (q / gcd(q, s)) # w w = q * (s / gcd(q, s)) my $p = $x -> {_n}; my $q = $x -> {_d}; my $r = $y -> {_n}; my $s = $y -> {_d}; my $gcd_qs = $LIB -> _gcd($LIB -> _copy($q), $s); my $s_by_gcd_qs = $LIB -> _div($LIB -> _copy($s), $gcd_qs); my $q_by_gcd_qs = $LIB -> _div($LIB -> _copy($q), $gcd_qs); my $u = $LIB -> _mul($LIB -> _copy($p), $s_by_gcd_qs); my $v = $LIB -> _mul($LIB -> _copy($r), $q_by_gcd_qs); my $w = $LIB -> _mul($LIB -> _copy($q), $s_by_gcd_qs); $x->{_n} = $LIB -> _mod($u, $v); $x->{_d} = $w; $x -> bnorm(); return $x -> round(@r); } sub binv { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('binv'); return $x -> round(@r) if $x -> is_nan(); return $x -> bzero(@r) if $x -> is_inf(); return $x -> binf("+", @r) if $x -> is_zero(); ($x -> {_n}, $x -> {_d}) = ($x -> {_d}, $x -> {_n}); $x -> round(@r); $x -> _dng() if $x -> is_int() || $x -> is_inf() || $x -> is_nan(); return $x; } sub bsqrt { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bsqrt'); return $x -> bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0 return $x if $x -> is_inf("+"); # sqrt(inf) == inf return $x -> round(@r) if $x -> is_zero() || $x -> is_one(); my $n = $x -> {_n}; my $d = $x -> {_d}; # Look for an exact solution. For the numerator and the denominator, take # the square root and square it and see if we got the original value. If we # did, for both the numerator and the denominator, we have an exact # solution. { my $nsqrt = $LIB -> _sqrt($LIB -> _copy($n)); my $n2 = $LIB -> _mul($LIB -> _copy($nsqrt), $nsqrt); if ($LIB -> _acmp($n, $n2) == 0) { my $dsqrt = $LIB -> _sqrt($LIB -> _copy($d)); my $d2 = $LIB -> _mul($LIB -> _copy($dsqrt), $dsqrt); if ($LIB -> _acmp($d, $d2) == 0) { $x -> {_n} = $nsqrt; $x -> {_d} = $dsqrt; return $x -> round(@r); } } } local $Math::BigFloat::upgrade = undef; local $Math::BigFloat::downgrade = undef; local $Math::BigFloat::precision = undef; local $Math::BigFloat::accuracy = undef; local $Math::BigInt::upgrade = undef; local $Math::BigInt::precision = undef; local $Math::BigInt::accuracy = undef; my $xn = Math::BigFloat -> new($LIB -> _str($n)); my $xd = Math::BigFloat -> new($LIB -> _str($d)); my $xtmp = Math::BigRat -> new($xn -> bfdiv($xd) -> bsqrt() -> bfstr()); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; $x -> round(@r); } sub bpow { # power ($x ** $y) # Set up parameters. my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bpow'); # $x and/or $y is a NaN return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); # $x and/or $y is a +/-Inf if ($x -> is_inf("-")) { return $x -> bzero() if $y -> is_negative(); return $x -> bnan() if $y -> is_zero(); return $x if $y -> is_odd(); return $x -> bneg(); } elsif ($x -> is_inf("+")) { return $x -> bzero() if $y -> is_negative(); return $x -> bnan() if $y -> is_zero(); return $x; } elsif ($y -> is_inf("-")) { return $x -> bnan() if $x -> is_one("-"); return $x -> binf("+") if $x > -1 && $x < 1; return $x -> bone() if $x -> is_one("+"); return $x -> bzero(); } elsif ($y -> is_inf("+")) { return $x -> bnan() if $x -> is_one("-"); return $x -> bzero() if $x > -1 && $x < 1; return $x -> bone() if $x -> is_one("+"); return $x -> binf("+"); } if ($x -> is_zero()) { return $x -> bone() if $y -> is_zero(); return $x -> binf() if $y -> is_negative(); return $x; } # We don't support complex numbers, so upgrade or return NaN. if ($x -> is_negative() && !$y -> is_int()) { return $x -> _upg() -> bpow($y, @r) if $class -> upgrade(); return $x -> bnan(); } if ($x -> is_one("+") || $y -> is_one()) { return $x; } if ($x -> is_one("-")) { return $x if $y -> is_odd(); return $x -> bneg(); } # (a/b)^-(c/d) = (b/a)^(c/d) ($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}) if $y -> is_negative(); unless ($LIB->_is_one($y->{_n})) { $x->{_n} = $LIB->_pow($x->{_n}, $y->{_n}); $x->{_d} = $LIB->_pow($x->{_d}, $y->{_n}); $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_even($y->{_n}); } unless ($LIB->_is_one($y->{_d})) { return $x -> bsqrt(@r) if $LIB->_is_two($y->{_d}); # 1/2 => sqrt return $x -> broot($LIB->_str($y->{_d}), @r); # 1/N => root(N) } return $x -> round(@r); } sub broot { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('broot'); # Convert $x into a Math::BigFloat. my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d})); my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n})) -> bfdiv($xd); $xflt -> {sign} = $x -> {sign}; # Convert $y into a Math::BigFloat. my $yd = Math::BigFloat -> new($LIB -> _str($y->{_d})); my $yflt = Math::BigFloat -> new($LIB -> _str($y->{_n})) -> bfdiv($yd); $yflt -> {sign} = $y -> {sign}; # Compute the root and convert back to a Math::BigRat. $xflt -> broot($yflt, @r); my $xtmp = Math::BigRat -> new($xflt -> bfstr()); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x; } sub bmuladd { # multiply two numbers and then add the third to the result # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT # set up parameters my ($class, $x, $y, $z, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmuladd'); # At least one of x, y, and z is a NaN return $x -> bnan(@r) if ($x -> is_nan() || $y -> is_nan() || $z -> is_nan()); # At least one of x, y, and z is an Inf if ($x -> is_inf("-")) { if ($y -> is_neg()) { # x = -inf, y < 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y -> is_zero()) { # x = -inf, y = 0 return $x -> bnan(@r); } else { # x = -inf, y > 0 if ($z -> is_inf("+")) { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } } elsif ($x -> is_inf("+")) { if ($y -> is_neg()) { # x = +inf, y < 0 if ($z -> is_inf("+")) { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y -> is_zero()) { # x = +inf, y = 0 return $x -> bnan(@r); } else { # x = +inf, y > 0 if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } } elsif ($x -> is_neg()) { if ($y -> is_inf("-")) { # -inf < x < 0, y = -inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } elsif ($y -> is_inf("+")) { # -inf < x < 0, y = +inf if ($z -> is_inf("+")) { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } else { # -inf < x < 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z -> is_inf("+")) { return $x -> binf("+", @r); } } } elsif ($x -> is_zero()) { if ($y -> is_inf("-")) { # x = 0, y = -inf return $x -> bnan(@r); } elsif ($y -> is_inf("+")) { # x = 0, y = +inf return $x -> bnan(@r); } else { # x = 0, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z -> is_inf("+")) { return $x -> binf("+", @r); } } } elsif ($x -> is_pos()) { if ($y -> is_inf("-")) { # 0 < x < +inf, y = -inf if ($z -> is_inf("+")) { return $x -> bnan(@r); } else { return $x -> binf("-", @r); } } elsif ($y -> is_inf("+")) { # 0 < x < +inf, y = +inf if ($z -> is_inf("-")) { return $x -> bnan(@r); } else { return $x -> binf("+", @r); } } else { # 0 < x < +inf, -inf < y < +inf if ($z -> is_inf("-")) { return $x -> binf("-", @r); } elsif ($z -> is_inf("+")) { return $x -> binf("+", @r); } } } # The code below might be faster if we compute the GCD earlier than in the # call to bnorm(). # # xs * xn ys * yn zs * zn / xs: sign of x \ # ------- * ------- + ------- | xn: numerator of x | # xd yd zd | xd: denominator of x | # \ ditto for y and z / # xs * ys * xn * yn zs * zn # = ----------------- + ------- # xd * yd zd # # xs * ys * xn * yn * zd + zs * xd * yd * zn # = ------------------------------------------ # xd * yd * zd my $xn_yn = $LIB -> _mul($LIB -> _copy($x->{_n}), $y->{_n}); my $xn_yn_zd = $LIB -> _mul($xn_yn, $z->{_d}); my $xd_yd = $LIB -> _mul($x->{_d}, $y->{_d}); my $xd_yd_zn = $LIB -> _mul($LIB -> _copy($xd_yd), $z->{_n}); my $xd_yd_zd = $LIB -> _mul($xd_yd, $z->{_d}); my $sgn1 = $x->{sign} eq $y->{sign} ? "+" : "-"; my $sgn2 = $z->{sign}; ($x->{_n}, $x->{sign}) = $LIB -> _sadd($xn_yn_zd, $sgn1, $xd_yd_zn, $sgn2); $x->{_d} = $xd_yd_zd; $x -> bnorm(); return $x; } sub bmodpow { # set up parameters my ($class, $x, $y, $m, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2]) ? (ref($_[0]), @_) : objectify(3, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmodpow'); # Convert $x, $y, and $m into Math::BigInt objects. my $xint = Math::BigInt -> new($x -> copy() -> bint()); my $yint = Math::BigInt -> new($y -> copy() -> bint()); my $mint = Math::BigInt -> new($m -> copy() -> bint()); $xint -> bmodpow($yint, $mint, @r); my $xtmp = Math::BigRat -> new($xint -> bfstr()); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x; } sub bmodinv { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmodinv'); # Convert $x and $y into Math::BigInt objects. my $xint = Math::BigInt -> new($x -> copy() -> bint()); my $yint = Math::BigInt -> new($y -> copy() -> bint()); $xint -> bmodinv($yint, @r); my $xtmp = Math::BigRat -> new($xint -> bfstr()); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x; } sub blog { # Return the logarithm of the operand. If a second operand is defined, that # value is used as the base, otherwise the base is assumed to be Euler's # constant. my ($class, $x, $base, @r); # Don't objectify the base, since an undefined base, as in $x->blog() or # $x->blog(undef) signals that the base is Euler's number. if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigRat->blog(256, 2) ($class, $x, $base, @r) = defined $_[2] ? objectify(2, @_) : objectify(1, @_); } else { # E.g., Math::BigRat::blog(256, 2) or $x->blog(2) ($class, $x, $base, @r) = defined $_[1] ? objectify(2, @_) : objectify(1, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('blog'); # Handle all exception cases and all trivial cases. I have used Wolfram Alpha # (http://www.wolframalpha.com) as the reference for these cases. return $x -> bnan() if $x -> is_nan(); if (defined $base) { $base = $class -> new($base) unless ref $base; if ($base -> is_nan() || $base -> is_one()) { return $x -> bnan(); } elsif ($base -> is_inf() || $base -> is_zero()) { return $x -> bnan() if $x -> is_inf() || $x -> is_zero(); return $x -> bzero(); } elsif ($base -> is_negative()) { # -inf < base < 0 return $x -> bzero() if $x -> is_one(); # x = 1 return $x -> bone() if $x == $base; # x = base return $x -> bnan(); # otherwise } return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf } # We now know that the base is either undefined or positive and finite. if ($x -> is_inf()) { # x = +/-inf my $sign = defined $base && $base < 1 ? '-' : '+'; return $x -> binf($sign); } elsif ($x -> is_neg()) { # -inf < x < 0 return $x -> bnan(); } elsif ($x -> is_one()) { # x = 1 return $x -> bzero(); } elsif ($x -> is_zero()) { # x = 0 my $sign = defined $base && $base < 1 ? '+' : '-'; return $x -> binf($sign); } # Now take care of the cases where $x and/or $base is 1/N. # # log(1/N) / log(B) = -log(N)/log(B) # log(1/N) / log(1/B) = log(N)/log(B) # log(N) / log(1/B) = -log(N)/log(B) my $neg = 0; if ($x -> numerator() -> is_one()) { $x -> binv(); $neg = !$neg; } if (defined(blessed($base)) && $base -> isa($class)) { if ($base -> numerator() -> is_one()) { $base = $base -> copy() -> binv(); $neg = !$neg; } } # disable upgrading and downgrading require Math::BigFloat; my $upg = Math::BigFloat -> upgrade(); my $dng = Math::BigFloat -> downgrade(); Math::BigFloat -> upgrade(undef); Math::BigFloat -> downgrade(undef); # At this point we are done handling all exception cases and trivial cases. $base = Math::BigFloat -> new($base) if defined $base; my $xnum = Math::BigFloat -> new($LIB -> _str($x->{_n})); my $xden = Math::BigFloat -> new($LIB -> _str($x->{_d})); my $xstr = $xnum -> bfdiv($xden) -> blog($base, @r) -> bfstr(); # reset upgrading and downgrading Math::BigFloat -> upgrade($upg); Math::BigFloat -> downgrade($dng); my $xobj = Math::BigRat -> new($xstr); $x -> {sign} = $xobj -> {sign}; $x -> {_n} = $xobj -> {_n}; $x -> {_d} = $xobj -> {_d}; return $neg ? $x -> bneg() : $x; } sub bexp { # set up parameters my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bexp'); return $x -> binf(@r) if $x -> is_inf("+"); return $x -> bzero(@r) if $x -> is_inf("-"); # we need to limit the accuracy to protect against overflow my $fallback = 0; my ($scale, @params); ($x, @params) = $x->_find_round_parameters(@r); # also takes care of the "error in _find_round_parameters?" case return $x if $x -> is_nan(); # no rounding at all, so must use fallback if (scalar @params == 0) { # simulate old behaviour $params[0] = $class -> div_scale(); # and round to it as accuracy $params[1] = undef; # P = undef $scale = $params[0]+4; # at least four more for proper round $params[2] = $r[2]; # round mode by caller or undef $fallback = 1; # to clear a/p afterwards } else { # the 4 below is empirical, and there might be cases where it's not enough... $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined } return $x -> bone(@params) if $x -> is_zero(); # See the comments in Math::BigFloat on how this algorithm works. # Basically we calculate A and B (where B is faculty(N)) so that A/B = e my $x_org = $x -> copy(); if ($scale <= 75) { # set $x directly from a cached string form $x->{_n} = $LIB->_new("90933395208605785401971970164779391644753259799242"); $x->{_d} = $LIB->_new("33452526613163807108170062053440751665152000000000"); $x->{sign} = '+'; } else { # compute A and B so that e = A / B. # After some terms we end up with this, so we use it as a starting point: my $A = $LIB->_new("90933395208605785401971970164779391644753259799242"); my $F = $LIB->_new(42); my $step = 42; # Compute how many steps we need to take to get $A and $B sufficiently big my $steps = Math::BigFloat::_len_to_steps($scale - 4); # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n"; while ($step++ <= $steps) { # calculate $a * $f + 1 $A = $LIB->_mul($A, $F); $A = $LIB->_inc($A); # increment f $F = $LIB->_inc($F); } # compute $B as factorial of $steps (this is faster than doing it manually) my $B = $LIB->_fac($LIB->_new($steps)); # print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n"; $x->{_n} = $A; $x->{_d} = $B; $x->{sign} = '+'; } # $x contains now an estimate of e, with some surplus digits, so we can round if (!$x_org -> is_one()) { # raise $x to the wanted power and round it in one step: $x -> bpow($x_org, @params); } else { # else just round the already computed result delete $x->{accuracy}; delete $x->{precision}; # shortcut to not run through _find_round_parameters again if (defined $params[0]) { $x -> bround($params[0], $params[2]); # then round accordingly } else { $x -> bfround($params[1], $params[2]); # then round accordingly } } if ($fallback) { # clear a/p after round, since user did not request it delete $x->{accuracy}; delete $x->{precision}; } $x; } sub bilog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x->{_n} = $LIB -> _div($x->{_n}, $x->{_d}); $x->{_n} = $LIB -> _ilog2($x->{_n}); $x->{_d} = $LIB -> _one(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bilog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bilog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bilog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x->{_n} = $LIB -> _div($x->{_n}, $x->{_d}); $x->{_n} = $LIB -> _ilog10($x->{_n}); $x->{_d} = $LIB -> _one(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bclog2 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog2'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog2(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x->{_n} = $LIB -> _div($x->{_n}, $x->{_d}); $x->{_n} = $LIB -> _clog2($x->{_n}); $x->{_d} = $LIB -> _one(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bclog10 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bclog10'); return $x -> bnan(@r) if $x -> is_nan(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> binf("-", @r) if $x -> is_zero(); if ($x -> is_neg()) { return $x -> _upg() -> bclog10(@r) if $class -> upgrade(); return $x -> bnan(@r); } $x->{_n} = $LIB -> _div($x->{_n}, $x->{_d}); $x->{_n} = $LIB -> _clog10($x->{_n}); $x->{_d} = $LIB -> _one(); $x -> bnorm() -> round(@r); $x -> _dng(); return $x; } sub bnok { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $x if $x -> modify('bnok'); return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); return $x -> bnan() if (($x -> is_finite() && !$x -> is_int()) || ($y -> is_finite() && !$y -> is_int())); my $xint = Math::BigInt -> new($x -> bstr()); my $yint = Math::BigInt -> new($y -> bstr()); $xint -> bnok($yint); my $xrat = Math::BigRat -> new($xint); $x -> {sign} = $xrat -> {sign}; $x -> {_n} = $xrat -> {_n}; $x -> {_d} = $xrat -> {_d}; return $x; } sub bperm { # set up parameters my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Don't modify constant (read-only) objects. return $x if $x -> modify('bperm'); return $x -> bnan() if $x -> is_nan() || $y -> is_nan(); return $x -> bnan() if (($x -> is_finite() && !$x -> is_int()) || ($y -> is_finite() && !$y -> is_int())); my $xint = Math::BigInt -> new($x -> bstr()); my $yint = Math::BigInt -> new($y -> bstr()); $xint -> bperm($yint); my $xrat = Math::BigRat -> new($xint); $x -> {sign} = $xrat -> {sign}; $x -> {_n} = $xrat -> {_n}; $x -> {_d} = $xrat -> {_d}; return $x; } sub bfac { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x -> is_neg() || !$x -> is_int(); return $x -> bone(@r) if $x -> is_zero() || $x -> is_one(); $x->{_n} = $LIB->_fac($x->{_n}); # since _d is 1, we don't need to reduce/norm the result $x -> round(@r); $x -> _dng(); return $x; } sub bdfac { # compute double factorial, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bdfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-"); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bnan(@r) if $x <= -2 || !$x -> is_int(); return $x -> bone(@r) if $x <= 1; croak("bdfac() requires a newer version of the $LIB library.") unless $LIB -> can('_dfac'); $x->{_n} = $LIB->_dfac($x->{_n}); # since _d is 1, we don't need to reduce/norm the result $x -> round(@r); $x -> _dng(); return $x; } sub btfac { # compute triple factorial, modify $x in place my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('btfac'); return $x -> bnan(@r) if $x -> is_nan() || !$x -> is_int(); return $x -> binf("+", @r) if $x -> is_inf("+"); my $k = $class -> new("3"); return $x -> bnan(@r) if $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x -> bmul($f); } $x -> round(@r); $x -> _dng(); return $x; } sub bmfac { # compute multi-factorial my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1]) ? (ref($_[0]), @_) : objectify(2, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bmfac'); return $x -> bnan(@r) if $x -> is_nan() || $x -> is_inf("-") || !$k -> is_pos(); return $x -> binf("+", @r) if $x -> is_inf("+"); return $x -> bround(@r) if $k -> is_inf("+"); return $x -> bnan(@r) if !$x -> is_int() || !$k -> is_int(); return $x -> bnan(@r) if $k < 1 || $x <= -$k; my $one = $class -> bone(); return $x -> bone(@r) if $x <= $one; my $f = $x -> copy(); while ($f -> bsub($k) > $one) { $x -> bmul($f); } $x -> round(@r); $x -> _dng(); return $x; } sub bfib { # compute Fibonacci number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("bfib() requires a newer version of the $LIB library.") unless $LIB -> can('_fib'); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfib'); # List context. if (wantarray) { croak("bfib() can't return an infinitely long list of numbers") if $x -> is_inf(); return if $x -> is_nan() || !$x -> is_int(); # The following places a limit on how large $x can be. Should this # limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{_n} = $LIB -> _zero(); $y[0]{_d} = $LIB -> _one(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{_n} = $LIB -> _one(); $y[1]{_d} = $LIB -> _one(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{_n} = $LIB -> _add($LIB -> _copy($y[$i - 1]{_n}), $y[$i - 2]{_n}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{sign} = $y[-1]{sign}; $x->{_n} = $y[-1]{_n}; $x->{_d} = $y[-1]{_d}; $y[-1] = $x; } for (@y) { $_ -> bnorm(); $_ -> round(@r); } return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-') || !$x -> is_int(); $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{_n} = $LIB -> _fib($x->{_n}); $x->{_d} = $LIB -> _one(); $x -> bnorm(); return $x -> round(@r); } } sub blucas { # compute Lucas number(s) my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); croak("blucas() requires a newer version of the $LIB library.") unless $LIB -> can('_lucas'); # Don't modify constant (read-only) objects. return $x if $x -> modify('blucas'); # List context. if (wantarray) { croak("blucas() can't return an infinitely long list of numbers") if $x -> is_inf(); return if $x -> is_nan() || !$x -> is_int(); # The following places a limit on how large $x can be, at least on 32 # bit systems. Should this limit be removed? XXX my $n = $x -> numify(); my @y; { $y[0] = $x -> copy() -> babs(); $y[0]{_n} = $LIB -> _two(); last if $n == 0; $y[1] = $y[0] -> copy(); $y[1]{_n} = $LIB -> _one(); last if $n == 1; for (my $i = 2 ; $i <= abs($n) ; $i++) { $y[$i] = $y[$i - 1] -> copy(); $y[$i]{_n} = $LIB -> _add($LIB -> _copy($y[$i - 1]{_n}), $y[$i - 2]{_n}); } # If negative, insert sign as appropriate. if ($x -> is_neg()) { for (my $i = 2 ; $i <= $#y ; $i += 2) { $y[$i]{sign} = '-'; } } # The last element in the array is the invocand. $x->{_n} = $y[-1]{_n}; $x->{sign} = $y[-1]{sign}; $y[-1] = $x; } @y = map { $_ -> round(@r) } @y; return @y; } # Scalar context. else { return $x if $x -> is_inf('+'); return $x -> bnan() if $x -> is_nan() || $x -> is_inf('-') || !$x -> is_int(); $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+'; $x->{_n} = $LIB -> _lucas($x->{_n}); return $x -> round(@r); } } sub blsft { my ($class, $x, $y, $b, @r); # Objectify the base only when it is defined, since an undefined base, as # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2. if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigInt->blog(256, 5, 2) ($class, $x, $y, $b, @r) = defined $_[3] ? objectify(3, @_) : objectify(2, @_); } else { # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2) ($class, $x, $y, $b, @r) = defined $_[2] ? objectify(3, @_) : objectify(2, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('blsft'); $b = 2 unless defined($b); $b = $class -> new($b) unless ref($b) && $b -> isa($class); return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan(); # shift by a negative amount? return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/; $x -> bmul($b -> bpow($y)); } sub brsft { my ($class, $x, $y, $b, @r); # Objectify the base only when it is defined, since an undefined base, as # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2. if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) { # E.g., Math::BigInt->blog(256, 5, 2) ($class, $x, $y, $b, @r) = defined $_[3] ? objectify(3, @_) : objectify(2, @_); } else { # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2) ($class, $x, $y, $b, @r) = defined $_[2] ? objectify(3, @_) : objectify(2, @_); } # Don't modify constant (read-only) objects. return $x if $x -> modify('brsft'); $b = 2 unless defined($b); $b = $class -> new($b) unless ref($b) && $b -> isa($class); return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan(); # shift by a negative amount? return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/; # the following call to bfdiv() will return either quotient (scalar context) # or quotient and remainder (list context). $x -> bfdiv($b -> bpow($y)); } ############################################################################### # Bitwise methods ############################################################################### # Bitwise left shift. sub bblsft { # We don't call objectify(), because the bitwise methods should not # upgrade, even when upgrading is enabled. my ($class, $x, $y, @r) = ref($_[0]) ? (ref($_[0]), @_) : @_; # Don't modify constant (read-only) objects. return $x if ref($x) && $x -> modify('bblsft'); # Let Math::BigInt do the job. my $xint = Math::BigInt -> bblsft($x, $y, @r); # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); # Convert to our class without downgrading. my $xrat = $class -> new($xint); # Reset downgrading. $class -> downgrade($dng); # If we are called as a class method, the first operand might not be an # object of this class, so check. if (defined(blessed($x)) && $x -> isa(__PACKAGE__)) { $x -> {sign} = $xrat -> {sign}; $x -> {_n} = $xrat -> {_n}; $x -> {_d} = $xrat -> {_d}; } else { $x = $xrat; } # Now we might downgrade. $x -> round(@r); $x -> _dng(); return $x; } # Bitwise right shift. sub bbrsft { # We don't call objectify(), because the bitwise methods should not # upgrade/downgrade, even when upgrading/downgrading is enabled. my ($class, $x, $y, @r) = ref($_[0]) ? (ref($_[0]), @_) : @_; # Don't modify constant (read-only) objects. return $x if ref($x) && $x -> modify('bbrsft'); # Let Math::BigInt do the job. my $xint = Math::BigInt -> bbrsft($x, $y, @r); # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); # Convert to our class without downgrading. my $xrat = $class -> new($xint); # Reset downgrading. $class -> downgrade($dng); # If we are called as a class method, the first operand might not be an # object of this class, so check. if (defined(blessed($x)) && $x -> isa(__PACKAGE__)) { $x -> {sign} = $xrat -> {sign}; $x -> {_n} = $xrat -> {_n}; $x -> {_d} = $xrat -> {_d}; } else { $x = $xrat; } # Now we might downgrade. $x -> round(@r); $x -> _dng(); return $x; } sub band { my $x = shift; my $xref = ref($x); my $class = $xref || $x; # Don't modify constant (read-only) objects. return $x if $x -> modify('band'); croak 'band() is an instance method, not a class method' unless $xref; croak 'Not enough arguments for band()' if @_ < 1; my $y = shift; $y = $class -> new($y) unless ref($y); my @r = @_; my $xtmp = $x -> as_int() -> band($y -> as_int()) -> as_rat(); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x -> round(@r); } sub bior { my $x = shift; my $xref = ref($x); my $class = $xref || $x; # Don't modify constant (read-only) objects. return $x if $x -> modify('bior'); croak 'bior() is an instance method, not a class method' unless $xref; croak 'Not enough arguments for bior()' if @_ < 1; my $y = shift; $y = $class -> new($y) unless ref($y); my @r = @_; my $xtmp = $x -> as_int() -> bior($y -> as_int()) -> as_rat(); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x -> round(@r); } sub bxor { my $x = shift; my $xref = ref($x); my $class = $xref || $x; # Don't modify constant (read-only) objects. return $x if $x -> modify('bxor'); croak 'bxor() is an instance method, not a class method' unless $xref; croak 'Not enough arguments for bxor()' if @_ < 1; my $y = shift; $y = $class -> new($y) unless ref($y); my @r = @_; my $xtmp = $x -> as_int() -> bxor($y -> as_int()) -> as_rat(); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x -> round(@r); } sub bnot { my $x = shift; my $xref = ref($x); my $class = $xref || $x; # Don't modify constant (read-only) objects. return $x if $x -> modify('bnot'); croak 'bnot() is an instance method, not a class method' unless $xref; my @r = @_; my $xtmp = $x -> as_int() -> bnot() -> as_rat(); $x -> {sign} = $xtmp -> {sign}; $x -> {_n} = $xtmp -> {_n}; $x -> {_d} = $xtmp -> {_d}; return $x -> round(@r); } ############################################################################## # round sub round { my $x = shift; # Don't modify constant (read-only) objects. return $x if $x -> modify('round'); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); $x; } sub bround { my $x = shift; # Don't modify constant (read-only) objects. return $x if $x -> modify('bround'); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); $x; } sub bfround { my $x = shift; # Don't modify constant (read-only) objects. return $x if $x -> modify('bfround'); $x -> _dng() if ($x -> is_int() || $x -> is_inf() || $x -> is_nan()); $x; } sub bfloor { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bfloor'); return $x -> bnan(@r) if $x -> is_nan(); if (!$x -> is_finite() || # NaN or inf or $LIB->_is_one($x->{_d})) # integer { $x -> round(@r); $x -> _dng(); return $x; } $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate $x->{_d} = $LIB->_one(); # d => 1 $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '-'; # -22/7 => -4/1 $x -> round(@r); $x -> _dng(); return $x; } sub bceil { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bceil'); return $x -> bnan(@r) if $x -> is_nan(); if (!$x -> is_finite() || # NaN or inf or $LIB->_is_one($x->{_d})) # integer { $x -> round(@r); $x -> _dng(); return $x; } $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate $x->{_d} = $LIB->_one(); # d => 1 $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '+'; # +22/7 => 4/1 $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_zero($x->{_n}); # -0 => 0 $x -> round(@r); $x -> _dng(); return $x; } sub bint { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Don't modify constant (read-only) objects. return $x if $x -> modify('bint'); return $x -> bnan(@r) if $x -> is_nan(); if (!$x -> is_finite() || # NaN or inf or $LIB->_is_one($x->{_d})) # integer { $x -> round(@r); $x -> _dng(); return $x; } $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate $x->{_d} = $LIB->_one(); # d => 1 $x->{sign} = '+' if $x->{sign} eq '-' && $LIB -> _is_zero($x->{_n}); $x -> round(@r); $x -> _dng(); return $x; } sub bgcd { # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff) # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_finite(); } # Temporarily disable downgrading. my $dng = $class -> downgrade(); $class -> downgrade(undef); my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; # greatest common divisor while (! $y -> is_zero()) { ($x, $y) = ($y -> copy(), $x -> copy() -> bmod($y)); } last if $x -> is_one(); } $x -> babs(); # Restore downgrading. $class -> downgrade($dng); $x -> _dng() if $x -> is_int(); return $x; } sub blcm { # Least Common Multiple # Class::method(...) -> Class->method(...) unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) || ($_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i && $_[0] !~ /^(inf|nan)/i))) { #carp "Using ", (caller(0))[3], "() as a function is deprecated;", # " use is as a method instead"; unshift @_, __PACKAGE__; } my ($class, @args) = objectify(0, @_); # Pre-process list of operands. for my $arg (@args) { return $class -> bnan() unless $arg -> is_finite(); } for my $arg (@args) { return $class -> bzero() if $arg -> is_zero(); } my $x = shift @args; $x = $x -> copy(); # bgcd() and blcm() never modify any operands while (@args) { my $y = shift @args; my $gcd = $x -> copy() -> bgcd($y); $x -> bdiv($gcd) -> bmul($y); } $x -> babs(); # might downgrade return $x; } sub digit { my ($class, $x, $n) = ref($_[0]) ? (undef, $_[0], $_[1]) : objectify(1, @_); return $nan unless $x -> is_int(); $LIB->_digit($x->{_n}, $n || 0); # digit(-123/1, 2) => digit(123, 2) } sub length { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return $nan unless $x -> is_int(); $LIB->_len($x->{_n}); # length(-123/1) => length(123) } sub parts { my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); my $c = 'Math::BigInt'; return ($c -> bnan(), $c -> bnan()) if $x -> is_nan(); return ($c -> binf(), $c -> binf()) if $x -> is_inf("+"); return ($c -> binf('-'), $c -> binf()) if $x -> is_inf("-"); my $n = $c -> new($LIB->_str($x->{_n})); $n->{sign} = $x->{sign}; my $d = $c -> new($LIB->_str($x->{_d})); ($n, $d); } sub dparts { my $x = shift; my $class = ref $x; croak("dparts() is an instance method") unless $class; if ($x -> is_nan()) { return $class -> bnan(), $class -> bnan() if wantarray; return $class -> bnan(); } if ($x -> is_inf()) { return $class -> binf($x -> sign()), $class -> bzero() if wantarray; return $class -> binf($x -> sign()); } # 355/113 => 3 + 16/113 my ($q, $r) = $LIB -> _div($LIB -> _copy($x -> {_n}), $x -> {_d}); my $int = Math::BigRat -> new($x -> {sign} . $LIB -> _str($q)); return $int unless wantarray; my $frc = Math::BigRat -> new($x -> {sign} . $LIB -> _str($r), $LIB -> _str($x -> {_d})); return $int, $frc; } sub fparts { my $x = shift; my $class = ref $x; # NaN => NaN/NaN if ($x -> is_nan()) { return $class -> bnan(), $class -> bnan() if wantarray; return $class -> bnan(); } # ±Inf => ±Inf/1 if ($x -> is_inf()) { return $class -> binf($x -> sign()), $class -> bone() if wantarray; return $class -> binf($x -> sign()); } # -3/2 -> -3/1 my $numer = $x -> copy(); $numer -> {_d} = $LIB -> _one(); return $numer unless wantarray; # -3/2 -> 2/1 my $denom = $x -> copy(); $denom -> {sign} = "+"; $denom -> {_n} = $denom -> {_d}; $denom -> {_d} = $LIB -> _one(); return $numer, $denom; } sub numerator { my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); # NaN, inf, -inf return Math::BigInt -> new($x->{sign}) if !$x -> is_finite(); my $n = Math::BigInt -> new($LIB->_str($x->{_n})); $n->{sign} = $x->{sign}; $n; } sub denominator { my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); # NaN return Math::BigInt -> new($x->{sign}) if $x -> is_nan(); # inf, -inf return Math::BigInt -> bone() if !$x -> is_finite(); Math::BigInt -> new($LIB->_str($x->{_d})); } ############################################################################### # String conversion methods ############################################################################### sub bstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bstr(@r) if $class -> upgrade() && !$x -> isa($class); # Finite number my $s = ''; $s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2' my $str = $x->{sign} eq '-' ? '-' : ''; $str .= $LIB->_str($x->{_n}); $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d}); return $str; } sub bsstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bsstr(@r) if $class -> upgrade() && !$x -> isa($class); # Finite number my $str = $x->{sign} eq '-' ? '-' : ''; $str .= $LIB->_str($x->{_n}); $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d}); return $str; } sub bnstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bnstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); return $x -> as_float(@r) -> bnstr(); } sub bestr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? $x -> _upg() -> bestr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); return $x -> as_float(@r) -> bestr(); } sub bdstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); # Inf and NaN if ($x->{sign} ne '+' && $x->{sign} ne '-') { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } return ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{_n}) if $x -> is_int(); # Upgrade? $x -> _upg() -> bdstr(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); # Integer number return $x -> as_float(@r) -> bdstr(); } sub bfstr { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } # Upgrade? return $x -> _upg() -> bfstr(@r) if $class -> upgrade() && !$x -> isa($class); # Finite number my $str = $x->{sign} eq '-' ? '-' : ''; $str .= $LIB->_str($x->{_n}); $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d}); return $str; } sub to_hex { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } return $nan unless $x -> is_int(); my $str = $LIB->_to_hex($x->{_n}); return $x->{sign} eq "-" ? "-$str" : $str; } sub to_oct { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } return $nan unless $x -> is_int(); my $str = $LIB->_to_oct($x->{_n}); return $x->{sign} eq "-" ? "-$str" : $str; } sub to_bin { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # Inf and NaN if (!$x -> is_finite()) { return $x->{sign} unless $x -> is_inf("+"); # -inf, NaN return 'inf'; # +inf } return $nan unless $x -> is_int(); my $str = $LIB->_to_bin($x->{_n}); return $x->{sign} eq "-" ? "-$str" : $str; } sub to_bytes { # return a byte string my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; croak("to_bytes() requires a finite, non-negative integer") if $x -> is_neg() || ! $x -> is_int(); return $x -> _upg() -> to_bytes(@r) if $class -> upgrade() && !$x -> isa(__PACKAGE__); croak("to_bytes() requires a newer version of the $LIB library.") unless $LIB -> can('_to_bytes'); return $LIB->_to_bytes($x->{_n}); } sub to_ieee754 { my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); carp "Rounding is not supported for ", (caller(0))[3], "()" if @r; return $x -> as_float() -> to_ieee754($format); } sub to_fp80 { my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_); return $x -> as_float(@r) -> to_fp80(); } sub as_hex { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return $x unless $x -> is_int(); my $s = $x->{sign}; $s = '' if $s eq '+'; $s . $LIB->_as_hex($x->{_n}); } sub as_oct { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return $x unless $x -> is_int(); my $s = $x->{sign}; $s = '' if $s eq '+'; $s . $LIB->_as_oct($x->{_n}); } sub as_bin { my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); return $x unless $x -> is_int(); my $s = $x->{sign}; $s = '' if $s eq '+'; $s . $LIB->_as_bin($x->{_n}); } sub numify { # convert 17/8 => float (aka 2.125) my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_); # Non-finite number. if ($x -> is_nan()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $inf - $inf; } if ($x -> is_inf()) { require Math::Complex; my $inf = $Math::Complex::Inf; return $x -> is_negative() ? -$inf : $inf; } # Finite number. my $abs = $LIB->_is_one($x->{_d}) ? $LIB->_num($x->{_n}) : Math::BigFloat -> new($LIB->_str($x->{_n})) -> bfdiv($LIB->_str($x->{_d})) -> bstr(); return $x->{sign} eq '-' ? 0 - $abs : 0 + $abs; } ############################################################################## # import sub import { my $class = shift; $IMPORT++; # remember we did import() my @a; # unrecognized arguments my @import = (); while (@_) { my $param = shift; # Enable overloading of constants. if ($param eq ':constant') { overload::constant integer => sub { $class -> new(shift); }, float => sub { $class -> new(shift); }, binary => sub { # E.g., a literal 0377 shall result in an object whose value # is decimal 255, but new("0377") returns decimal 377. return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/; $class -> new(shift); }; next; } # Upgrading. if ($param eq 'upgrade') { $class -> upgrade(shift); next; } # Downgrading. if ($param eq 'downgrade') { $class -> downgrade(shift); next; } # Accuracy. if ($param eq 'accuracy') { $class -> accuracy(shift); next; } # Precision. if ($param eq 'precision') { $class -> precision(shift); next; } # Rounding mode. if ($param eq 'round_mode') { $class -> round_mode(shift); next; } # Fall-back accuracy. if ($param eq 'div_scale') { $class -> div_scale(shift); next; } # Backend library. if ($param =~ /^(lib|try|only)\z/) { push @import, $param; push @import, shift() if @_; next; } if ($param eq 'with') { # alternative class for our private parts() # XXX: no longer supported # $LIB = shift() || 'Calc'; # carp "'with' is no longer supported, use 'lib', 'try', or 'only'"; shift; next; } # Unrecognized parameter. push @a, $param; } Math::BigInt -> import(@import); # find out which library was actually loaded $LIB = Math::BigInt -> config("lib"); $class -> SUPER::import(@a); # for subclasses $class -> export_to_level(1, $class, @a) if @a; # need this, too } 1; __END__ =pod =head1 NAME Math::BigRat - arbitrary size rational number math package =head1 SYNOPSIS use Math::BigRat; # Generic constructor method (always returns a new object) $x = Math::BigRat->new($str); # defaults to 0 $x = Math::BigRat->new('256'); # from decimal $x = Math::BigRat->new('0256'); # from decimal $x = Math::BigRat->new('0xcafe'); # from hexadecimal $x = Math::BigRat->new('0x1.fap+7'); # from hexadecimal $x = Math::BigRat->new('0o377'); # from octal $x = Math::BigRat->new('0o1.35p+6'); # from octal $x = Math::BigRat->new('0b101'); # from binary $x = Math::BigRat->new('0b1.101p+3'); # from binary # Specific constructor methods (no prefix needed; when used as # instance method, the value is assigned to the invocand) $x = Math::BigRat->from_dec('234'); # from decimal $x = Math::BigRat->from_hex('cafe'); # from hexadecimal $x = Math::BigRat->from_hex('1.fap+7'); # from hexadecimal $x = Math::BigRat->from_oct('377'); # from octal $x = Math::BigRat->from_oct('1.35p+6'); # from octal $x = Math::BigRat->from_bin('1101'); # from binary $x = Math::BigRat->from_bin('1.101p+3'); # from binary $x = Math::BigRat->from_bytes($bytes); # from byte string $x = Math::BigRat->from_base('why', 36); # from any base $x = Math::BigRat->from_base_num([1, 0], 2); # from any base $x = Math::BigRat->from_ieee754($b, $fmt); # from IEEE-754 bytes $x = Math::BigRat->from_fp80($b); # from x86 80-bit $x = Math::BigRat->bzero(); # create a +0 $x = Math::BigRat->bone(); # create a +1 $x = Math::BigRat->bone('-'); # create a -1 $x = Math::BigRat->binf(); # create a +inf $x = Math::BigRat->binf('-'); # create a -inf $x = Math::BigRat->bnan(); # create a Not-A-Number $x = Math::BigRat->bpi(); # returns pi $y = $x->copy(); # make a copy (unlike $y = $x) $y = $x->as_int(); # return as a Math::BigInt $y = $x->as_float(); # return as a Math::BigFloat $y = $x->as_rat(); # return as a Math::BigRat # Boolean methods (these don't modify the invocand) $x->is_zero(); # true if $x is 0 $x->is_one(); # true if $x is +1 $x->is_one("+"); # true if $x is +1 $x->is_one("-"); # true if $x is -1 $x->is_inf(); # true if $x is +inf or -inf $x->is_inf("+"); # true if $x is +inf $x->is_inf("-"); # true if $x is -inf $x->is_nan(); # true if $x is NaN $x->is_finite(); # true if -inf < $x < inf $x->is_positive(); # true if $x > 0 $x->is_pos(); # true if $x > 0 $x->is_negative(); # true if $x < 0 $x->is_neg(); # true if $x < 0 $x->is_non_positive() # true if $x <= 0 $x->is_non_negative() # true if $x >= 0 $x->is_odd(); # true if $x is odd $x->is_even(); # true if $x is even $x->is_int(); # true if $x is an integer # Comparison methods (these don't modify the invocand) $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0) $x->bacmp($y); # compare abs values (undef, < 0, == 0, > 0) $x->beq($y); # true if $x == $y $x->bne($y); # true if $x != $y $x->blt($y); # true if $x < $y $x->ble($y); # true if $x <= $y $x->bgt($y); # true if $x > $y $x->bge($y); # true if $x >= $y # Arithmetic methods (these modify the invocand) $x->bneg(); # negation $x->babs(); # absolute value $x->bsgn(); # sign function (-1, 0, 1, or NaN) $x->bdigitsum(); # sum of decimal digits $x->binc(); # increment $x by 1 $x->bdec(); # decrement $x by 1 $x->badd($y); # addition (add $y to $x) $x->bsub($y); # subtraction (subtract $y from $x) $x->bmul($y); # multiplication (multiply $x by $y) $x->bmuladd($y, $z); # $x = $x * $y + $z $x->bdiv($y); # division (floored) $x->bmod($y); # modulus (x % y) $x->bmodinv($mod); # modular multiplicative inverse $x->bmodpow($y, $mod); # modular exponentiation (($x ** $y) % $mod) $x->btdiv($y); # division (truncated), set $x to quotient $x->btmod($y); # modulus (truncated) $x->binv() # inverse (1/$x) $x->bpow($y); # power of arguments (x ** y) $x->blog(); # logarithm of $x to base e (Euler's number) $x->blog($base); # logarithm of $x to base $base (e.g., base 2) $x->bexp(); # calculate e ** $x where e is Euler's number $x->bilog2(); # log2($x) rounded down to nearest int $x->bilog10(); # log10($x) rounded down to nearest int $x->bclog2(); # log2($x) rounded up to nearest int $x->bclog10(); # log10($x) rounded up to nearest int $x->bnok($y); # combinations (binomial coefficient n over k) $x->bperm($y); # permutations $x->buparrow($n, $y); # Knuth's up-arrow notation $x->bhyperop($n, $y); # n'th hyperoprator $x->backermann($y); # the Ackermann function $x->bsin(); # sine $x->bcos(); # cosine $x->batan(); # inverse tangent $x->batan2($y); # two-argument inverse tangent $x->bsqrt(); # calculate square root $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root) $x->bfac(); # factorial of $x (1*2*3*4*..$x) $x->bdfac(); # double factorial of $x ($x*($x-2)*($x-4)*...) $x->btfac(); # triple factorial of $x ($x*($x-3)*($x-6)*...) $x->bmfac($k); # $k'th multi-factorial of $x ($x*($x-$k)*...) $x->bfib($k); # $k'th Fibonacci number $x->blucas($k); # $k'th Lucas number $x->blsft($n); # left shift $n places in base 2 $x->blsft($n, $b); # left shift $n places in base $b $x->brsft($n); # right shift $n places in base 2 $x->brsft($n, $b); # right shift $n places in base $b # Bitwise methods (these modify the invocand) $x->bblsft($y); # bitwise left shift $x->bbrsft($y); # bitwise right shift $x->band($y); # bitwise and $x->bior($y); # bitwise inclusive or $x->bxor($y); # bitwise exclusive or $x->bnot(); # bitwise not (two's complement) # Rounding methods (these modify the invocand) $x->round($A, $P, $R); # round to accuracy or precision using # rounding mode $R $x->bround($n); # accuracy: preserve $n digits $x->bfround($n); # $n > 0: round to $nth digit left of dec. point # $n < 0: round to $nth digit right of dec. point $x->bfloor(); # round towards minus infinity $x->bceil(); # round towards plus infinity $x->bint(); # round towards zero # Other mathematical methods (these don't modify the invocand) $x->bgcd($y); # greatest common divisor $x->blcm($y); # least common multiple # Object property methods (these don't modify the invocand) $x->sign(); # the sign, either +, - or NaN $x->digit($n); # the nth digit, counting from the right $x->digit(-$n); # the nth digit, counting from the left $x->digitsum(); # sum of decimal digits $x->length(); # return number of digits in number $x->mantissa(); # return (signed) mantissa as a Math::BigInt $x->exponent(); # return exponent as a Math::BigInt $x->parts(); # return (mantissa,exponent) as a Math::BigInt $x->sparts(); # mantissa and exponent (as integers) $x->nparts(); # mantissa and exponent (normalised) $x->eparts(); # mantissa and exponent (engineering notation) $x->dparts(); # integer and fraction part $x->fparts(); # numerator and denominator $x->numerator(); # numerator $x->denominator(); # denominator # Conversion methods (these don't modify the invocand) $x->bstr(); # decimal notation (possibly zero padded) $x->bnstr(); # string in normalized notation $x->bestr(); # string in engineering notation $x->bdstr(); # string in decimal notation (no padding) $x->bfstr(); # string in fractional notation $x->to_hex(); # as signed hexadecimal string $x->to_bin(); # as signed binary string $x->to_oct(); # as signed octal string $x->to_bytes(); # as byte string $x->to_base($b); # as string in any base $x->to_base_num($b); # as array of integers in any base $x->to_ieee754($fmt); # to bytes encoded according to IEEE 754-2008 $x->to_fp80(); # encode value in x86 80-bit format $x->as_hex(); # as signed hexadecimal string with "0x" prefix $x->as_bin(); # as signed binary string with "0b" prefix $x->as_oct(); # as signed octal string with "0" prefix # Other conversion methods (these don't modify the invocand) $x->numify(); # return as scalar (might overflow or underflow) =head1 DESCRIPTION Math::BigRat complements L and L by providing support for arbitrary big rational numbers. =head2 Math Library You can change the underlying module that does the low-level math operations by using: use Math::BigRat try => 'GMP'; Note: This needs Math::BigInt::GMP installed. The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc: use Math::BigRat try => 'Foo,Math::BigInt::Bar'; If you want to get warned when the fallback occurs, replace "try" with "lib": use Math::BigRat lib => 'Foo,Math::BigInt::Bar'; If you want the code to die instead, replace "try" with "only": use Math::BigRat only => 'Foo,Math::BigInt::Bar'; =head1 METHODS Any methods not listed here are derived from Math::BigFloat (or Math::BigInt), so make sure you check these two modules for further information. =over =item new() $x = Math::BigRat->new('1/3'); Create a new Math::BigRat object. Input can come in various forms: $x = Math::BigRat->new(123); # scalars $x = Math::BigRat->new('inf'); # infinity $x = Math::BigRat->new('123.3'); # float $x = Math::BigRat->new('1/3'); # simple string $x = Math::BigRat->new('1 / 3'); # spaced $x = Math::BigRat->new('1 / 0.1'); # w/ floats $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite # You can also give D and N as different objects: $x = Math::BigRat->new( Math::BigInt->new(-123), Math::BigInt->new(7), ); # => -123/7 =item from_dec() my $h = Math::BigRat->from_dec("1.2"); Create a BigRat from a decimal number in string form. It is equivalent to L, but does not accept anything but strings representing finite, decimal numbers. =item from_hex() my $h = Math::BigRat->from_hex("0x10"); Create a BigRat from a hexadecimal number in string form. =item from_oct() my $o = Math::BigRat->from_oct("020"); Create a BigRat from an octal number in string form. =item from_bin() my $b = Math::BigRat->from_bin("0b10000000"); Create a BigRat from an binary number in string form. =item from_bytes() $x = Math::BigRat->from_bytes("\xf3\x6b"); # $x = 62315 Interpret the input as a byte string, assuming big endian byte order. The output is always a non-negative, finite integer. See L. =item from_ieee754() # set $x to 13176795/4194304, the closest value to pi that can be # represented in the binary32 (single) format $x = Math::BigRat -> from_ieee754("40490fdb", "binary32"); Interpret the input as a value encoded as described in IEEE754-2008. See L. =item from_fp80() # set $x to 14488038916154245685/4611686018427387904, the closest value # to pi that can be represented in the x86 80-bit format $x = Math::BigRat -> from_fp80("4000c90fdaa22168c235"); Interpret the input as a value encoded in the x86 extended-precision 80-bit format. See L. =item from_base() See L. =item bzero() $x = Math::BigRat->bzero(); Creates a new BigRat object representing zero. If used on an object, it will set it to zero: $x->bzero(); =item bone() $x = Math::BigRat->bone($sign); Creates a new BigRat object representing one. The optional argument is either '-' or '+', indicating whether you want one or minus one. If used on an object, it will set it to one: $x->bone(); # +1 $x->bone('-'); # -1 =item binf() $x = Math::BigRat->binf($sign); Creates a new BigRat object representing infinity. The optional argument is either '-' or '+', indicating whether you want infinity or minus infinity. If used on an object, it will set it to infinity: $x->binf(); $x->binf('-'); =item bnan() $x = Math::BigRat->bnan(); Creates a new BigRat object representing NaN (Not A Number). If used on an object, it will set it to NaN: $x->bnan(); =item bpi() $x = Math::BigRat -> bpi(); # default accuracy $x = Math::BigRat -> bpi(7); # specified accuracy Returns a rational approximation of PI accurate to the specified accuracy or the default accuracy if no accuracy is specified. If called as an instance method, the value is assigned to the invocand. $x = Math::BigRat -> bpi(1); # returns "3" $x = Math::BigRat -> bpi(3); # returns "22/7" $x = Math::BigRat -> bpi(7); # returns "355/113" =item copy() my $z = $x->copy(); Makes a deep copy of the object. Please see the documentation in L for further details. =item as_int() $y = $x -> as_int(); # $y is a Math::BigInt Returns $x as a Math::BigInt object regardless of upgrading and downgrading. If $x is finite, but not an integer, $x is truncated. =item as_rat() $y = $x -> as_rat(); # $y is a Math::BigRat Returns $x a Math::BigRat object regardless of upgrading and downgrading. The invocand is not modified. =item as_float() $x = Math::BigRat->new('13/7'); print $x->as_float(), "\n"; # '1' $x = Math::BigRat->new('2/3'); print $x->as_float(5), "\n"; # '0.66667' Returns a copy of the object as Math::BigFloat object regardless of upgrading and downgrading, preserving the accuracy as wanted, or the default of 40 digits. =item bround()/round()/bfround() Are not yet implemented. =item is_zero() print "$x is 0\n" if $x->is_zero(); Return true if $x is exactly zero, otherwise false. =item is_one() print "$x is 1\n" if $x->is_one(); Return true if $x is exactly one, otherwise false. =item is_finite() $x->is_finite(); # true if $x is not +inf, -inf or NaN Returns true if the invocand is a finite number, i.e., it is neither +inf, -inf, nor NaN. =item is_positive() =item is_pos() print "$x is >= 0\n" if $x->is_positive(); Return true if $x is positive (greater than or equal to zero), otherwise false. Please note that '+inf' is also positive, while 'NaN' and '-inf' aren't. L is an alias for L. =item is_negative() =item is_neg() print "$x is < 0\n" if $x->is_negative(); Return true if $x is negative (smaller than zero), otherwise false. Please note that '-inf' is also negative, while 'NaN' and '+inf' aren't. L is an alias for L. =item is_odd() print "$x is odd\n" if $x->is_odd(); Return true if $x is odd, otherwise false. =item is_even() print "$x is even\n" if $x->is_even(); Return true if $x is even, otherwise false. =item is_int() print "$x is an integer\n" if $x->is_int(); Return true if $x has a denominator of 1 (e.g. no fraction parts), otherwise false. Please note that '-inf', 'inf' and 'NaN' aren't integer. =back =head2 Comparison methods None of these methods modify the invocand object. Note that a C is neither less than, greater than, or equal to anything else, even a C. =over =item bcmp() $x->bcmp($y); Compares $x with $y and takes the sign into account. Returns -1, 0, 1 or undef. =item bacmp() $x->bacmp($y); Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef. =item beq() $x -> beq($y); Returns true if and only if $x is equal to $y, and false otherwise. =item bne() $x -> bne($y); Returns true if and only if $x is not equal to $y, and false otherwise. =item blt() $x -> blt($y); Returns true if and only if $x is equal to $y, and false otherwise. =item ble() $x -> ble($y); Returns true if and only if $x is less than or equal to $y, and false otherwise. =item bgt() $x -> bgt($y); Returns true if and only if $x is greater than $y, and false otherwise. =item bge() $x -> bge($y); Returns true if and only if $x is greater than or equal to $y, and false otherwise. =item blsft()/brsft() Used to shift numbers left/right. Please see the documentation in L for further details. =item bneg() $x->bneg(); Used to negate the object in-place. =item bnorm() $x->bnorm(); Reduce the number to the shortest form. This routine is called automatically whenever it is needed. =item binc() $x->binc(); Increments $x by 1 and returns the result. =item bdec() $x->bdec(); Decrements $x by 1 and returns the result. =item badd() $x->badd($y); Adds $y to $x and returns the result. =item bsub() $x->bsub($y); Subtracts $y from $x and returns the result. =item bmul() $x->bmul($y); Multiplies $y to $x and returns the result. =item bdiv() $q = $x->bdiv($y); ($q, $r) = $x->bdiv($y); In scalar context, divides $x by $y and returns the result. In list context, does floored division (F-division), returning an integer $q and a remainder $r so that $x = $q * $y + $r. The remainer (modulo) is equal to what is returned by C<< $x->bmod($y) >>. =item bmod() $x->bmod($y); Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the result is identical to the remainder after floored division (F-division). If, in addition, both $x and $y are integers, the result is identical to the result from Perl's % operator. =item binv() $x->binv(); Inverse of $x. =item bsqrt() $x->bsqrt(); Calculate the square root of $x. =item bpow() $x->bpow($y); Compute $x ** $y. Please see the documentation in L for further details. =item broot() $x->broot($n); Calculate the N'th root of $x. =item bmodpow() $num->bmodpow($exp,$mod); # modular exponentiation # ($num**$exp % $mod) Returns the value of C<$num> taken to the power C<$exp> in the modulus C<$mod> using binary exponentiation. C is far superior to writing $num ** $exp % $mod because it is much faster - it reduces internal variables into the modulus whenever possible, so it operates on smaller numbers. C also supports negative exponents. bmodpow($num, -1, $mod) is exactly equivalent to bmodinv($num, $mod) =item bmodinv() $x->bmodinv($mod); # modular multiplicative inverse Returns the multiplicative inverse of C<$x> modulo C<$mod>. If $y = $x -> copy() -> bmodinv($mod) then C<$y> is the number closest to zero, and with the same sign as C<$mod>, satisfying ($x * $y) % $mod = 1 % $mod If C<$x> and C<$y> are non-zero, they must be relative primes, i.e., C. 'C' is returned when no modular multiplicative inverse exists. =item blog() $x->blog($base, $accuracy); # logarithm of x to the base $base If C<$base> is not defined, Euler's number (e) is used: print $x->blog(undef, 100); # log(x) to 100 digits =item bexp() $x->bexp($accuracy); # calculate e ** X Calculates two integers A and B so that A/B is equal to C, where C is Euler's number. This method was added in v0.20 of Math::BigRat (May 2007). See also L. =item bnok() See L. =item bperm() See L. =item bfac() $x->bfac(); Calculates the factorial of $x. For instance: print Math::BigRat->new('3/1')->bfac(), "\n"; # 1*2*3 print Math::BigRat->new('5/1')->bfac(), "\n"; # 1*2*3*4*5 Works currently only for integers. =item band() $x->band($y); # bitwise and =item bior() $x->bior($y); # bitwise inclusive or =item bxor() $x->bxor($y); # bitwise exclusive or =item bnot() $x->bnot(); # bitwise not (two's complement) =item bfloor() $x->bfloor(); Round $x towards minus infinity, i.e., set $x to the largest integer less than or equal to $x. =item bceil() $x->bceil(); Round $x towards plus infinity, i.e., set $x to the smallest integer greater than or equal to $x. =item bint() $x->bint(); Round $x towards zero. =item bgcd() $x -> bgcd($y); # GCD of $x and $y $x -> bgcd($y, $z, ...); # GCD of $x, $y, $z, ... Returns the greatest common divisor (GCD), which is the number with the largest absolute value such that $x/$gcd, $y/$gcd, ... is an integer. For example, when the operands are 4/5 and 6/5, the GCD is 2/5. This is a generalisation of the ordinary GCD for integers. See L. =item digit() print Math::BigRat->new('123/1')->digit(1); # 1 print Math::BigRat->new('123/1')->digit(-1); # 3 Return the N'ths digit from X when X is an integer value. =item length() $len = $x->length(); Return the length of $x in digits for integer values. =item parts() ($n, $d) = $x->parts(); Return a list consisting of (signed) numerator and (unsigned) denominator as BigInts. =item dparts() Returns the integer part and the fraction part. =item fparts() Returns the smallest possible numerator and denominator so that the numerator divided by the denominator gives back the original value. For finite numbers, both values are integers. Mnemonic: fraction. =item numerator() $n = $x->numerator(); Returns a copy of the numerator (the part above the line) as signed BigInt. =item denominator() $d = $x->denominator(); Returns a copy of the denominator (the part under the line) as positive BigInt. =back =head2 String conversion methods =over =item bstr() my $x = Math::BigRat->new('8/4'); print $x->bstr(), "\n"; # prints 1/2 Returns a string representing the number. =item bnstr() See L. =item bestr() See L. =item bdstr() See L. =item to_bytes() See L. =item to_ieee754() See L. =item to_fp80() See L. =item as_hex() $x = Math::BigRat->new('13'); print $x->as_hex(), "\n"; # '0xd' Returns the BigRat as hexadecimal string. Works only for integers. =item as_oct() $x = Math::BigRat->new('13'); print $x->as_oct(), "\n"; # '015' Returns the BigRat as octal string. Works only for integers. =item as_bin() $x = Math::BigRat->new('13'); print $x->as_bin(), "\n"; # '0x1101' Returns the BigRat as binary string. Works only for integers. =item numify() my $y = $x->numify(); Returns the object as a scalar. This will lose some data if the object cannot be represented by a normal Perl scalar (integer or float), so use L or L instead. This routine is automatically used whenever a scalar is required: my $x = Math::BigRat->new('3/1'); @array = (0, 1, 2, 3); $y = $array[$x]; # set $y to 3 =item config() Math::BigRat->config("trap_nan" => 1); # set $accu = Math::BigRat->config("accuracy"); # get Set or get configuration parameter values. Read-only parameters are marked as RO. Read-write parameters are marked as RW. The following parameters are supported. Parameter RO/RW Description Example ============================================================ lib RO Name of the math backend library Math::BigInt::Calc lib_version RO Version of the math backend library 0.30 class RO The class of config you just called Math::BigRat version RO version number of the class you used 0.10 upgrade RW To which class numbers are upgraded undef downgrade RW To which class numbers are downgraded undef precision RW Global precision undef accuracy RW Global accuracy undef round_mode RW Global round mode even div_scale RW Fallback accuracy for div, sqrt etc. 40 trap_nan RW Trap NaNs undef trap_inf RW Trap +inf/-inf undef =back =head1 NUMERIC LITERALS After C all numeric literals in the given scope are converted to C objects. This conversion happens at compile time. Every non-integer is convert to a NaN. For example, perl -MMath::BigRat=:constant -le 'print 2**150' prints the exact value of C<2**150>. Note that without conversion of constants to objects the expression C<2**150> is calculated using Perl scalars, which leads to an inaccurate result. Please note that strings are not affected, so that use Math::BigRat qw/:constant/; $x = "1234567890123456789012345678901234567890" + "123456789123456789"; does give you what you expect. You need an explicit Math::BigRat->new() around at least one of the operands. You should also quote large constants to prevent loss of precision: use Math::BigRat; $x = Math::BigRat->new("1234567889123456789123456789123456789"); Without the quotes Perl first converts the large number to a floating point constant at compile time, and then converts the result to a Math::BigRat object at run time, which results in an inaccurate result. =head2 Hexadecimal, octal, and binary floating point literals Perl (and this module) accepts hexadecimal, octal, and binary floating point literals, but use them with care with Perl versions before v5.32.0, because some versions of Perl silently give the wrong result. Below are some examples of different ways to write the number decimal 314. Hexadecimal floating point literals: 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 Octal floating point literals (with "0" prefix): 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 Octal floating point literals (with "0o" prefix) (requires v5.34.0): 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 Binary floating point literals: 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L (requires login). We will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Math::BigInt You can also look for information at: =over 4 =item * GitHub L =item * RT: CPAN's request tracker L =item * MetaCPAN L =item * CPAN Testers Matrix L =back =head1 LICENSE This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L and L as well as the backend libraries L, L, and L, L, and L. The pragmas L, L, and L might also be of interest. In addition there is the L pragma which does upgrading and downgrading. =head1 AUTHORS =over 4 =item * Tels L 2001-2009. =item * Maintained by Peter John Acklam 2011- =back =cut Math-BigInt-2.005003/LICENSE0000644403072340010010000000015514511435771014752 0ustar OSPJADomain UsersThis program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. Math-BigInt-2.005003/Makefile.PL0000644403072340010010000000702314536617515015725 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use ExtUtils::MakeMaker; $| = 1; # This is a list of known backend libraries and the version number when these # libraries became subclasses of Math::BigInt::Lib. New library methods are # added to Math::BigInt::Lib first. Later, optimized versions are implemented # for the specific libraries. In the meantime, these new methods won't be # available to libraries that aren't a subclass of Math::BigInt::Lib. my $recommend_versions = { #'Math::BigInt::Calc' => '1.999819', 'Math::BigInt::FastCalc' => '0.5006', 'Math::BigInt::GMP' => '1.6000', 'Math::BigInt::Pari' => '1.3000', 'Math::BigInt::BitVect' => '1.13', 'Math::BigInt::GMPz' => '0.0005', }; my $recommend_update = []; while (my ($module, $recommend_version) = each %$recommend_versions) { next unless eval "require $module"; my $version = $module -> VERSION(); next if $version >= $recommend_version; push @$recommend_update, [ $module, $recommend_version, $version ]; } if (@$recommend_update) { print <<"EOF"; ########################################################################## # # Some of the new methods will not work unless the following installed # modules are updated. It is therefore recommended that the modules listed # below are upgraded after installing this distribution. # # Module Recommended Installed # ------ ----------- --------- EOF for my $entry (@$recommend_update) { printf "# %-30s %-14s %s\n", @$entry; } print <<"EOF"; # ########################################################################## EOF printf "Sleeping for a few seconds ..."; sleep 5; printf " done.\n"; } my %WriteMakefileArgs = ( 'NAME' => 'Math::BigInt', 'VERSION_FROM' => 'lib/Math/BigInt.pm', 'AUTHOR' => 'Peter John Acklam ', 'MIN_PERL_VERSION' => 5.006001, # A hash of modules that are required to run Makefile.PL itself, but not to # run the distribution. 'CONFIGURE_REQUIRES' => { 'ExtUtils::MakeMaker' => 6.58, }, # A hash of modules that are needed to build the module but not run it. 'BUILD_REQUIRES' => {}, # A hash of modules that are needed to run the module. 'PREREQ_PM' => { 'Math::Complex' => 1.36, 'Carp' => 1.22, 'Scalar::Util' => 0, }, # A hash of modules that are needed to test the module but not run or build # it. 'TEST_REQUIRES' => { 'Test::More' => 0.94, }, 'LICENSE' => 'perl_5', 'LIBS' => [''], # e.g., '-lm' 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING' 'INC' => '', # e.g., '-I/usr/include/other' 'SIGN' => 1, 'META_MERGE' => { 'meta-spec' => { version => 2 }, resources => { repository => { type => 'git', url => 'https://github.com/pjacklam/p5-Math-BigInt.git', web => 'https://github.com/pjacklam/p5-Math-BigInt', }, }, }, ); # Install over the core version? (Cf. CPAN RT #119199 and #119225.) $WriteMakefileArgs{INSTALLDIRS} = 'perl' if $] < 5.012; WriteMakefile(%WriteMakefileArgs); Math-BigInt-2.005003/MANIFEST0000644403072340010010000003277314776770405015122 0ustar OSPJADomain UsersBUGS CHANGES CREDITS examples/1000.txt examples/bigprimes.pl examples/prime.pl GOALS HISTORY lib/Math/BigFloat.pm lib/Math/BigInt.pm lib/Math/BigInt/Calc.pm lib/Math/BigInt/Lib.pm lib/Math/BigRat.pm LICENSE Makefile.PL MANIFEST This list of files MANIFEST.SKIP NEW README README.md t/00sig.t t/01load.t t/alias.inc t/bare_mbf.t t/bare_mbi.t t/bare_mbr.t t/bare_mif.t t/bfround_numify.t t/big_ap.t t/big_pi_e.t t/bigfltpm.inc t/bigfltpm.t t/bigfltrt.t t/bigintc-import.t t/bigintc.t t/bigintpm.inc t/bigintpm.t t/bigints.t t/biglog.t t/bigrat.t t/bigratpm.inc t/bigratpm.t t/bigratup.t t/bigroot.t t/bitwise-mbr.t t/calling-class-methods.t t/calling-constant.t t/calling-instance-methods.t t/calling-lib1.t t/calling-lib2.t t/config.t t/downgrade-mbi-mbf.t t/downgrade-mbi-mbr.t t/hang-mbr.t t/inf_nan.t t/isa.t t/Math/BigFloat/BareSubclass.pm t/Math/BigFloat/Subclass.pm t/Math/BigInt/BareCalc.pm t/Math/BigInt/Lib/Minimal.pm t/Math/BigInt/Lib/TestUtil.pm t/Math/BigInt/Scalar.pm t/Math/BigInt/Subclass.pm t/Math/BigRat/Subclass.pm t/mbf_ali.t t/mbi_ali.t t/mbi_rand.t t/mbimbf.inc t/mbimbf.t t/mbr_ali.t t/nan_cmp.t t/new_overloaded.t t/round.t t/rt-16221.t t/rt121139.t t/sub_ali.t t/sub_mbf.t t/sub_mbi.t t/sub_mbr.t t/sub_mif.t t/trap.t t/upgrade.inc t/upgrade.t t/upgrade2.t t/upgradef.t t/use.t t/use_mbfw.t t/with_sub.t TODO xt/author/_bin_str_parts_to_flt_lib_parts.t xt/author/_bin_str_to_bin_str_parts.t xt/author/_dec_str_parts_to_flt_lib_parts.t xt/author/_dec_str_to_dec_str_parts.t xt/author/_flt_lib_parts_to_rat_lib_parts.t xt/author/_hex_str_to_hex_str_parts.t xt/author/_oct_str_to_oct_str_parts.t xt/author/as_float-mbf.t xt/author/as_float-mbi.t xt/author/as_float-mbr.t xt/author/as_int-mbf.t xt/author/as_int-mbi.t xt/author/as_int-mbr.t xt/author/as_number-mbf.t xt/author/as_number-mbi.t xt/author/as_number-mbr.t xt/author/as_rat-mbf.t xt/author/as_rat-mbi.t xt/author/as_rat-mbr.t xt/author/babs-mbf.t xt/author/babs-mbi.t xt/author/backermann-mbi.t xt/author/badd-mbr.t xt/author/batan-mbf.t xt/author/batan-mbi.t xt/author/batan2-mbf.t xt/author/bblsft-mbf-mbr.t xt/author/bblsft-mbi-mbf.t xt/author/bblsft-mbi-mbr.t xt/author/bbrsft-mbi-mbf.t xt/author/bbrsft-mbi-mbr.t xt/author/bclog10-mbf.t xt/author/bclog10-mbi.t xt/author/bclog10-mbr.t xt/author/bclog2-mbf.t xt/author/bclog2-mbi.t xt/author/bclog2-mbr.t xt/author/bcos-mbf.t xt/author/bcos-mbi-upg-mbf.t xt/author/bcos-mbi.t xt/author/bdec-mbf.t xt/author/bdec-mbi.t xt/author/bdfac-mbf.t xt/author/bdfac-mbi.t xt/author/bdfac-mbr.t xt/author/bdigitsum-mbi.t xt/author/bdstr-mbf.t xt/author/bdstr-mbi.t xt/author/bdstr-mbr.t xt/author/beq-mbf.t xt/author/beq-mbi.t xt/author/bestr-mbf.t xt/author/bestr-mbi.t xt/author/bestr-mbr.t xt/author/bexp-mbf.t xt/author/bfac-mbf.t xt/author/bfac-mbi.t xt/author/bfac-mbr.t xt/author/bfdiv-mbi-mbf.t xt/author/bfdiv-mbi-mbr.t xt/author/bfib-mbf.t xt/author/bfib-mbi.t xt/author/bfib-mbr.t xt/author/bfmod-bfdiv-mbf.t xt/author/bfmod-bfdiv-mbi.t xt/author/bfmod-bfdiv-mbr.t xt/author/bfstr-mbf.t xt/author/bfstr-mbi.t xt/author/bfstr-mbr.t xt/author/bgcd-mbi-mbr-mbf.t xt/author/bhyperop-mbi.t xt/author/bilog10-mbf.t xt/author/bilog10-mbi.t xt/author/bilog10-mbr.t xt/author/bilog2-mbf.t xt/author/bilog2-mbi.t xt/author/bilog2-mbr.t xt/author/binc-mbf.t xt/author/binc-mbi.t xt/author/binf-mbf.t xt/author/binf-mbi.t xt/author/binv-mbf-dng-mbi.t xt/author/binv-mbf.t xt/author/binv-mbi-upg-mbf.t xt/author/binv-mbi.t xt/author/binv-mbr.t xt/author/blcm-mbi-mbr-mbf.t xt/author/ble-mbf.t xt/author/ble-mbi.t xt/author/blog-mbf.t xt/author/blog-mbi.t xt/author/blog-mbr.t xt/author/blsft-mbi.t xt/author/blt-mbf.t xt/author/blt-mbi.t xt/author/blucas-mbf.t xt/author/blucas-mbi.t xt/author/blucas-mbr.t xt/author/bmfac-mbf.t xt/author/bmfac-mbi.t xt/author/bmfac-mbr.t xt/author/bmodpow-mbf.t xt/author/bmodpow-mbi.t xt/author/bmuladd-mbf.t xt/author/bmuladd-mbi.t xt/author/bmuladd-mbr.t xt/author/bnan-mbf.t xt/author/bnan-mbi.t xt/author/bneg-mbf.t xt/author/bneg-mbi-mbf.t xt/author/bneg-mbi.t xt/author/bnok-mbi-mbr-mbf.t xt/author/bnorm-mbf.t xt/author/bnstr-mbf.t xt/author/bnstr-mbi.t xt/author/bnstr-mbr.t xt/author/bone-mbf.t xt/author/bone-mbi.t xt/author/bperm-mbi-mbr-mbf.t xt/author/bpi-mbf.t xt/author/bpi-mbi.t xt/author/bpi-mbr.t xt/author/bpow-mbf.t xt/author/bpow-mbi.t xt/author/broot-mbf.t xt/author/brsft-mbi.t xt/author/bsgn-mbf.t xt/author/bsgn-mbi.t xt/author/bsin-mbf.t xt/author/bsin-mbi-upg-mbf.t xt/author/bsin-mbi.t xt/author/bsqrt-mbi-mbf.t xt/author/bsstr-mbf.t xt/author/bsstr-mbi.t xt/author/btfac-mbf.t xt/author/btfac-mbi.t xt/author/btfac-mbr.t xt/author/btmod-btdiv-mbf.t xt/author/btmod-btdiv-mbi.t xt/author/btmod-btdiv-mbr.t xt/author/buparrow-mbi.t xt/author/bxxx-addr-in-1-out-1-mbi-mbf.t xt/author/bxxx-addr-in-1-out-1-mbi-mbr.t xt/author/bxxx-addr-in-2-out-1-2-mbi-mbf.t xt/author/bxxx-addr-in-2-out-1-2-mbi-mbr.t xt/author/bxxx-addr-in-2-out-1-mbi-mbf.t xt/author/bxxx-addr-in-2-out-1-mbi-mbr.t xt/author/bxxx-addr-in-3-out-1-mbi-mbf.t xt/author/bxxx-addr-in-3-out-1-mbi-mbr.t xt/author/bzero-mbf.t xt/author/bzero-mbi.t xt/author/const-mbf.t xt/author/const-mbi.t xt/author/const-mbr.t xt/author/constructors-a-p-r.t xt/author/copy-mbf.t xt/author/copy-mbi.t xt/author/dparts-mbf.t xt/author/dparts-mbi.t xt/author/dparts-mbr.t xt/author/eparts-mbf.t xt/author/eparts-mbi.t xt/author/fparts-numerator-denominator-mbf.t xt/author/fparts-numerator-denominator-mbi.t xt/author/fparts-numerator-denominator-mbr.t xt/author/from_base-mbi-mbr-mbf.t xt/author/from_base_num-mbi.t xt/author/from_bin-mbf.t xt/author/from_bin-mbi-mbf.t xt/author/from_bin-mbi-mbr.t xt/author/from_bin-mbi.t xt/author/from_bytes-mbi-mbr-mbf.t xt/author/from_dec-mbf.t xt/author/from_dec-mbi-mbf.t xt/author/from_dec-mbi-mbr.t xt/author/from_dec-mbi.t xt/author/from_dec-mbr.t xt/author/from_fp80-mbf.t xt/author/from_fp80-mbi.t xt/author/from_fp80-mbr.t xt/author/from_hex-mbf.t xt/author/from_hex-mbi-mbf.t xt/author/from_hex-mbi-mbr.t xt/author/from_hex-mbi.t xt/author/from_ieee754-mbf.t xt/author/from_ieee754-mbi.t xt/author/from_ieee754-mbr.t xt/author/from_oct-mbf.t xt/author/from_oct-mbi-mbf.t xt/author/from_oct-mbi-mbr.t xt/author/from_oct-mbi.t xt/author/interop-mbf-mbi.t xt/author/interop-mbi-mbf.t xt/author/interop-mbil-mbf.t xt/author/interop-mbil-mbi.t xt/author/interop-mbr-mbf.t xt/author/interop-mbr-mbi.t xt/author/is_zero-mbf.t xt/author/is_zero-mbi.t xt/author/lib-arithmetic-binary-_add.dat xt/author/lib-arithmetic-binary-_add.t xt/author/lib-arithmetic-binary-_div.dat xt/author/lib-arithmetic-binary-_div.t xt/author/lib-arithmetic-binary-_gcd.dat xt/author/lib-arithmetic-binary-_gcd.t xt/author/lib-arithmetic-binary-_lcm.dat xt/author/lib-arithmetic-binary-_lcm.t xt/author/lib-arithmetic-binary-_log_int.t xt/author/lib-arithmetic-binary-_mod.dat xt/author/lib-arithmetic-binary-_mod.t xt/author/lib-arithmetic-binary-_modinv.dat xt/author/lib-arithmetic-binary-_modinv.t xt/author/lib-arithmetic-binary-_mul.dat xt/author/lib-arithmetic-binary-_mul.t xt/author/lib-arithmetic-binary-_nok.dat xt/author/lib-arithmetic-binary-_nok.t xt/author/lib-arithmetic-binary-_pow.t xt/author/lib-arithmetic-binary-_root.dat xt/author/lib-arithmetic-binary-_root.t xt/author/lib-arithmetic-binary-_sadd.t xt/author/lib-arithmetic-binary-_ssub.t xt/author/lib-arithmetic-binary-_sub.dat xt/author/lib-arithmetic-binary-_sub.t xt/author/lib-arithmetic-ternary-_lsft.dat xt/author/lib-arithmetic-ternary-_lsft.t xt/author/lib-arithmetic-ternary-_modpow.dat xt/author/lib-arithmetic-ternary-_modpow.t xt/author/lib-arithmetic-ternary-_rsft.dat xt/author/lib-arithmetic-ternary-_rsft.t xt/author/lib-arithmetic-unary-_clog10.t xt/author/lib-arithmetic-unary-_clog2.t xt/author/lib-arithmetic-unary-_dec.dat xt/author/lib-arithmetic-unary-_dec.t xt/author/lib-arithmetic-unary-_dfac.dat xt/author/lib-arithmetic-unary-_dfac.t xt/author/lib-arithmetic-unary-_fac.dat xt/author/lib-arithmetic-unary-_fac.t xt/author/lib-arithmetic-unary-_fib.dat xt/author/lib-arithmetic-unary-_fib.t xt/author/lib-arithmetic-unary-_ilog10.t xt/author/lib-arithmetic-unary-_ilog2.t xt/author/lib-arithmetic-unary-_inc.dat xt/author/lib-arithmetic-unary-_inc.t xt/author/lib-arithmetic-unary-_lucas.dat xt/author/lib-arithmetic-unary-_lucas.t xt/author/lib-arithmetic-unary-_sqrt.dat xt/author/lib-arithmetic-unary-_sqrt.t xt/author/lib-bitwise-_and.dat xt/author/lib-bitwise-_and.t xt/author/lib-bitwise-_or.dat xt/author/lib-bitwise-_or.t xt/author/lib-bitwise-_sand.dat xt/author/lib-bitwise-_sand.t xt/author/lib-bitwise-_sor.dat xt/author/lib-bitwise-_sor.t xt/author/lib-bitwise-_sxor.dat xt/author/lib-bitwise-_sxor.t xt/author/lib-bitwise-_xor.dat xt/author/lib-bitwise-_xor.t xt/author/lib-boolean-_is_even.t xt/author/lib-boolean-_is_odd.t xt/author/lib-boolean-_is_one.t xt/author/lib-boolean-_is_ten.t xt/author/lib-boolean-_is_two.t xt/author/lib-boolean-_is_zero.t xt/author/lib-comparison-_acmp.t xt/author/lib-comparison-_scmp.t xt/author/lib-constructor-binary-_from_base.dat xt/author/lib-constructor-binary-_from_base.t xt/author/lib-constructor-nullary-_one.t xt/author/lib-constructor-nullary-_ten.t xt/author/lib-constructor-nullary-_two.t xt/author/lib-constructor-nullary-_zero.t xt/author/lib-constructor-unary-_copy.t xt/author/lib-constructor-unary-_from_bin.dat xt/author/lib-constructor-unary-_from_bin.t xt/author/lib-constructor-unary-_from_bytes.dat xt/author/lib-constructor-unary-_from_bytes.t xt/author/lib-constructor-unary-_from_hex.dat xt/author/lib-constructor-unary-_from_hex.t xt/author/lib-constructor-unary-_from_oct.dat xt/author/lib-constructor-unary-_from_oct.t xt/author/lib-constructor-unary-_new.t xt/author/lib-convert-number-_from_base_num.t xt/author/lib-convert-number-_num.t xt/author/lib-convert-number-_to_base_num.t xt/author/lib-convert-string-_as_bin.dat xt/author/lib-convert-string-_as_bin.t xt/author/lib-convert-string-_as_bytes.dat xt/author/lib-convert-string-_as_bytes.t xt/author/lib-convert-string-_as_hex.dat xt/author/lib-convert-string-_as_hex.t xt/author/lib-convert-string-_as_oct.dat xt/author/lib-convert-string-_as_oct.t xt/author/lib-convert-string-_str.t xt/author/lib-convert-string-_to_base.dat xt/author/lib-convert-string-_to_base.t xt/author/lib-convert-string-_to_bin.dat xt/author/lib-convert-string-_to_bin.t xt/author/lib-convert-string-_to_bytes.dat xt/author/lib-convert-string-_to_bytes.t xt/author/lib-convert-string-_to_hex.dat xt/author/lib-convert-string-_to_hex.t xt/author/lib-convert-string-_to_oct.dat xt/author/lib-convert-string-_to_oct.t xt/author/lib-misc-_check.t xt/author/lib-property-_alen.t xt/author/lib-property-_digit.t xt/author/lib-property-_digitsum.t xt/author/lib-property-_len.t xt/author/lib-property-_zeros.t xt/author/lib.ini xt/author/lib.t xt/author/lib_load-mbf-mbi.t xt/author/lib_load-mbi-mbf.t xt/author/new-mbf.t xt/author/new-mbi.t xt/author/new-mbr.t xt/author/nparts-mbf.t xt/author/nparts-mbi.t xt/author/numify-mbf.t xt/author/numify-mbi.t xt/author/objectify-mbf.t xt/author/objectify-mbi.t xt/author/relop-mbi-mbf.t xt/author/relop-mbr.t xt/author/req_mbf_binf.t xt/author/req_mbf_bnan.t xt/author/req_mbf_bone.t xt/author/req_mbf_bpi.t xt/author/req_mbf_bzero.t xt/author/req_mbf_from_bin.t xt/author/req_mbf_from_dec.t xt/author/req_mbf_from_hex.t xt/author/req_mbf_from_ieee754.t xt/author/req_mbf_from_oct.t xt/author/req_mbf_new.t xt/author/req_mbi_binf.t xt/author/req_mbi_bnan.t xt/author/req_mbi_bone.t xt/author/req_mbi_bpi.t xt/author/req_mbi_bzero.t xt/author/req_mbi_from_base.t xt/author/req_mbi_from_base_num.t xt/author/req_mbi_from_bin.t xt/author/req_mbi_from_bytes.t xt/author/req_mbi_from_dec.t xt/author/req_mbi_from_hex.t xt/author/req_mbi_from_oct.t xt/author/req_mbi_new.t xt/author/req_mbr_binf.t xt/author/req_mbr_bnan.t xt/author/req_mbr_bone.t xt/author/req_mbr_bzero.t xt/author/req_mbr_from_bin.t xt/author/req_mbr_from_dec.t xt/author/req_mbr_from_hex.t xt/author/req_mbr_from_ieee754.t xt/author/req_mbr_from_oct.t xt/author/req_mbr_new.t xt/author/sparts-mbf.t xt/author/sparts-mbi.t xt/author/to_base-mbi.t xt/author/to_base_num-mbi.t xt/author/to_bin-mbf.t xt/author/to_bin-mbi.t xt/author/to_bin-mbr.t xt/author/to_bytes-mbi-mbr-mbf.t xt/author/to_fp80-mbf.t xt/author/to_fp80-mbi.t xt/author/to_fp80-mbr.t xt/author/to_hex-mbf.t xt/author/to_hex-mbi.t xt/author/to_hex-mbr.t xt/author/to_ieee754-mbf.t xt/author/to_ieee754-mbi.t xt/author/to_ieee754-mbr.t xt/author/to_oct-mbf.t xt/author/to_oct-mbi.t xt/author/to_oct-mbr.t xt/author/upgrade-mbi-mbf.t xt/author/upgrade-mbi-mbr.t xt/author/use_accuracy-mbf.t xt/author/use_accuracy-mbi.t xt/author/use_accuracy-mbr.t xt/author/use_div_scale-mbf.t xt/author/use_div_scale-mbi.t xt/author/use_div_scale-mbr.t xt/author/use_lib1_mbf.t xt/author/use_lib1_mbr.t xt/author/use_lib2_mbf.t xt/author/use_lib2_mbr.t xt/author/use_lib3_mbf.t xt/author/use_lib3_mbr.t xt/author/use_lib4_mbf.t xt/author/use_lib4_mbr.t xt/author/use_lib5_mbf.t xt/author/use_lib5_mbr.t xt/author/use_lib6_mbf.t xt/author/use_lib6_mbr.t xt/author/use_precision-mbf.t xt/author/use_precision-mbi.t xt/author/use_precision-mbr.t xt/author/use_round_mode-mbf.t xt/author/use_round_mode-mbi.t xt/author/use_round_mode-mbr.t xt/release/cpan-changes.t xt/release/dist-manifest.t xt/release/distmeta.t xt/release/git.t xt/release/kwalitee.t xt/release/minimum-version.t xt/release/pod-coverage.t xt/release/pod-linkcheck.t xt/release/pod-syntax.t xt/release/portability.t xt/release/unused-vars.t xt/release/version.t xt/release/whitespaces.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) SIGNATURE Public-key signature (added by MakeMaker) Math-BigInt-2.005003/MANIFEST.SKIP0000644403072340010010000000324314546540201015635 0ustar OSPJADomain Users# Start included MANIFEST.SKIP template from ExtUtils::Manifest 1.75 # Avoid version control files. \bRCS\b \bCVS\b \bSCCS\b ,v$ \B\.svn\b \B\.git\b ^\.github\b \B\.gitignore\b \b_darcs\b \B\.cvsignore$ \B\.bzr\b \B\.bzrignore$ # Avoid VMS specific MakeMaker generated files \bDescrip.MMS$ \bDESCRIP.MMS$ \bdescrip.mms$ # Avoid Makemaker generated and utility files. \bMANIFEST\.bak \bMakefile$ \bblib/ \bMakeMaker-\d \bpm_to_blib\.ts$ \bpm_to_blib$ \bblibdirs\.ts$ # 6.18 through 6.25 generated this \b_eumm/ # 7.05_05 and above # Avoid Module::Build generated and utility files. \bBuild$ \b_build/ \bBuild.bat$ \bBuild.COM$ \bBUILD.COM$ \bbuild.com$ # and Module::Build::Tiny generated files \b_build_params$ # Avoid temp and backup files. ~$ \.old$ \#$ \b\.# \.bak$ \.tmp$ \.# \.rej$ \..*\.sw.?$ \.~\d+~$ # Avoid OS-specific files/dirs # Mac OSX metadata \B\.DS_Store # Mac OSX SMB mount metadata files \B\._ # Placeholder files created when iCloud will "optimize Mac storage" \.i[cC]loud$ # Avoid Devel::Cover and Devel::CoverX::Covered files. \bcover_db\b \bcovered\b # Avoid prove files \B\.prove$ # Avoid MYMETA files ^MYMETA\. # Temp files for new META ^META_new\.(?:json|yml) # Avoid travis-ci.org file ^\.travis\.yml # Avoid AppVeyor file ^\.?appveyor.yml # End included /usr/local/lib/perl5/ExtUtils/MANIFEST.SKIP # Avoid more git stuff. \B\.gitattributes\b # Avoid patch files. \.patch$ \.diff$ # Avoid archives. \.zip$ \.tar$ \.Z$ \.tz$ \.gz$ \.bz2$ \.tbz2$ \.xz$ \.txz$ \.lzma$ \.tlzma$ \.lz$ \.tlz$ \.lzo$ \.tzo$ \.lz4$ \.tlz4$ \.rz$ \.lrz$ \.lzh$ # Avoid development stuff. ^dev(el)?/ # Avoid distribution-specific stuff. ^Math-BigInt-[0-9] Math-BigInt-2.005003/META.json0000644403072340010010000000237614776770403015404 0ustar OSPJADomain Users{ "abstract" : "unknown", "author" : [ "Peter John Acklam " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.74, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Math-BigInt", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : {} }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "6.58" } }, "runtime" : { "requires" : { "Carp" : "1.22", "Math::Complex" : "1.36", "Scalar::Util" : "0", "perl" : "5.006001" } }, "test" : { "requires" : { "Test::More" : "0.94" } } }, "release_status" : "stable", "resources" : { "repository" : { "type" : "git", "url" : "https://github.com/pjacklam/p5-Math-BigInt.git", "web" : "https://github.com/pjacklam/p5-Math-BigInt" } }, "version" : "2.005003", "x_serialization_backend" : "JSON::PP version 4.16" } Math-BigInt-2.005003/META.yml0000644403072340010010000000123714776770364015235 0ustar OSPJADomain Users--- abstract: unknown author: - 'Peter John Acklam ' build_requires: Test::More: '0.94' configure_requires: ExtUtils::MakeMaker: '6.58' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.74, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Math-BigInt no_index: directory: - t - inc requires: Carp: '1.22' Math::Complex: '1.36' Scalar::Util: '0' perl: '5.006001' resources: repository: https://github.com/pjacklam/p5-Math-BigInt.git version: '2.005003' x_serialization_backend: 'CPAN::Meta::YAML version 0.020' Math-BigInt-2.005003/NEW0000644403072340010010000000010014511435771014307 0ustar OSPJADomain UsersFor the list of recent changes see the end of the CHANGES file. Math-BigInt-2.005003/README0000644403072340010010000000250614546553333014632 0ustar OSPJADomain UsersMath-BigInt Math::BigInt, Math::BigFloat, and Math::BigRat are modules for arbitrary precision integers, floating point numbers, and rational numbers. INSTALLATION To install this module, unpack the distribution file, and run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for these modules with the perldoc command: perldoc Math::BigInt perldoc Math::BigFloat perldoc Math::BigRat You can find documentation for the backend libraries with the following commands: perldoc Math::BigInt::Lib perldoc Math::BigInt::Calc You can also look for information at: GitHub Source Repository https://github.com/pjacklam/p5-Math-BigInt RT: CPAN's request tracker https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt MetaCPAN https://metacpan.org/release/Math-BigInt CPAN Testers Matrix http://matrix.cpantesters.org/?dist=Math-BigInt COPYRIGHT Copyright 1996-2001 Mark Biggar, Ilya Zakharevich. Copyright 2001-2008 Tels, http://bloodgate.com. Copyright 2010 Florian Ragwitz, flora@cpan.org. Copyright 2011- Peter John Acklam, pjacklam@gmail.com. LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Math-BigInt-2.005003/README.md0000644403072340010010000000276114546553333015234 0ustar OSPJADomain Users# Math-BigInt Math::BigInt, Math::BigFloat, and Math::BigRat are modules for arbitrary precision integers, floating point numbers, and rational numbers. # INSTALLATION To install this module, unpack the distribution file, and run the following commands: perl Makefile.PL make make test make install # SUPPORT AND DOCUMENTATION After installing, you can find documentation for these modules with the perldoc command: perldoc Math::BigInt perldoc Math::BigFloat perldoc Math::BigRat You can find documentation for the backend libraries with the following commands: perldoc Math::BigInt::Lib perldoc Math::BigInt::Calc You can also look for information at: - GitHub [https://github.com/pjacklam/p5-Math-BigInt](https://github.com/pjacklam/p5-Math-BigInt) - RT: CPAN's request tracker [https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt](https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt) - MetaCPAN [https://metacpan.org/release/Math-BigInt](https://metacpan.org/release/Math-BigInt) - CPAN Testers Matrix [http://matrix.cpantesters.org/?dist=Math-BigInt](http://matrix.cpantesters.org/?dist=Math-BigInt) # COPYRIGHT Copyright 1996-2001 Mark Biggar, Ilya Zakharevich. Copyright 2001-2008 Tels, http://bloodgate.com. Copyright 2010 Florian Ragwitz, flora@cpan.org. Copyright 2011- Peter John Acklam, pjacklam@gmail.com. # LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Math-BigInt-2.005003/SIGNATURE0000644403072340010010000014416114776770432015250 0ustar OSPJADomain UsersThis file contains message digests of all files listed in MANIFEST, signed via the Module::Signature module, version 0.89. To verify the content in this distribution, first make sure you have Module::Signature installed, then type: % cpansign -v It will check each file's integrity, as well as the signature's validity. If "==> Signature verified OK! <==" is not displayed, the distribution may already have been compromised, and you should not run its Makefile.PL or Build.PL. -----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 SHA256 2677599dc73efd849184914cd5ed2905bafa61673bb1fc43f2f3c33459260de1 BUGS SHA256 7dc53235ee84f36b4ee4c5a5bdea1ceecf4c6eafc704c576cf23dcfc057bbea8 CHANGES SHA256 7d84c6e69ee6c3ab6301314d2fa4bc233f24bd36a4a546b2cfd05a078bda98b7 CREDITS SHA256 fd8f78318c23adef95971cc01ee0e79d68f52f60b761ba28129c8509fff46954 GOALS SHA256 28e80ee628ff111dd34a2a26af921693c9c823caadab30c848e4c4f4fc00830f HISTORY SHA256 b857edab549ac6893e2df5e1ec768ee46b62bcf1607a55e876f4d23f079eacce LICENSE SHA256 bc581f8083d05d1a3590b619e2dc876614472d52295efa3fdf2a08ea5998a87b MANIFEST SHA256 0bdf5fe74f8ecbcfa26dfeaf0821f7647254991f2d395349d6e304f5fdd4500a MANIFEST.SKIP SHA256 1146ad3c603634dba4e7052ebbe6c01b46d9d9f81e28a71569b12105bb00e237 META.json SHA256 acb9273995473dcf245f754fd032abe3dc81e8ec7a22a0942edbf9ac5c4c81d1 META.yml SHA256 053b2511fa5ac8e6141b5596d6777220ef257a5ddfda3f3ff7325907757660a7 Makefile.PL SHA256 99f7f7df45a00c9f19ad38edec8c5dad5f5977c2b1a14ac3bb491ac193db1f7d NEW SHA256 70dc2b8b9ddfa5cd5ae485ffc441809f48b63d0671629f581f291a7067965df7 README SHA256 d6900e7f372399fc417416047eacb124644cd6ae87bfe98d2c685c4b12943982 README.md SHA256 6b912d3c6836dd213a1b5873d94a3cfa1ba44f65c73c32011927d7d9b793a5df TODO SHA256 77a80748e329a042faaa91eb0b44a493dfdfd726fec854a1a376c8404324b485 examples/1000.txt SHA256 702e323f59be58db758a3fa70ffe5fb80d392043bb855b0f172dd748809435df examples/bigprimes.pl SHA256 81a3ff3476038ec839c12a2b3548898055112bebc81fbf3513ee5efd6adfd0bd examples/prime.pl SHA256 94085ddfd60e6438cc4a2a77f1840cb034edac73dabd5be64c5dca562b9ee278 lib/Math/BigFloat.pm SHA256 3ce3981c7853f89c15b1c084519989b568afdddc3f65f032c103de641c2874d3 lib/Math/BigInt.pm SHA256 8756fa21df53b74c934eb5d85c368ccc3874caca4126a10460de4605fa508eb9 lib/Math/BigInt/Calc.pm SHA256 6466f9721f160cdf3f2a9ca18df125b232c4da815e142d5c5143bde0fca84cc7 lib/Math/BigInt/Lib.pm SHA256 fe8ef44722628d7cb97671958d4e5073bec3c7f2ebe1d901db3d45945c018933 lib/Math/BigRat.pm SHA256 f855e68d0f171debf8369ead8b36d004188f1c9069287a0d3c67a87f9afb1312 t/00sig.t SHA256 a7995afb323f2e34325d93295c5b22bd8e25578cc4bd5d00ea6176ae35a3d975 t/01load.t SHA256 6a80318c7a1dd1580732a319ca2b9f4949dcfc7910189a039ca9953d2e33c701 t/Math/BigFloat/BareSubclass.pm SHA256 01cd81234b75a2e2b04bb8889f9a753c30d83a20239353af19dcf7ee632a2c6e t/Math/BigFloat/Subclass.pm SHA256 e7f3b9b9a9ae9794f4c9e983b70ccb9e6a62a5c43ecbf4a50bb28927d9718433 t/Math/BigInt/BareCalc.pm SHA256 e92d44cb33dc733d82d9caa25459a355e7bdacc010b8ae18d61c788886d5a6c9 t/Math/BigInt/Lib/Minimal.pm SHA256 9567333ab26747265ddf9bbcda1d6a672b71c6e85eb2cad3021ba7d2f96eb1c1 t/Math/BigInt/Lib/TestUtil.pm SHA256 8d9365bd4ca2abe84a14c75ec4c2bb3b3a297697ecb2ef6a9f397e43132a39b3 t/Math/BigInt/Scalar.pm SHA256 34227a2180ecb65334a4b4e287bfdebf300252a47aa1408cc7eedc9938e2bc08 t/Math/BigInt/Subclass.pm SHA256 5308c53c95d6487625412d931c2d6a51cb13fb04d1f5f1535251c20b48e4db97 t/Math/BigRat/Subclass.pm SHA256 e2b70f02b22a3243434edc3a53c6c483a652b1d3b57f9d470a3b51cb30a35aa4 t/alias.inc SHA256 047ca70d1848c1dbb96cc833883cf49e2172c5113d1c6fbf9eb0e73d0cb3c94e t/bare_mbf.t SHA256 344aa4edbd0c9d8e8882f0229049b5b2d09720e7e46dc6420500cfadbc1246e6 t/bare_mbi.t SHA256 f43e1817d573e32eeea462482bbc7a313b93a24ca488ebef1a35542fd8dcf03b t/bare_mbr.t SHA256 529b262c435496677cacbaf88170621ce2db3311592925651f8c6ea613df350e t/bare_mif.t SHA256 a1861954ec5e5713386422c4348a8c33fa1b156535b0d8b93385805aa8fc6583 t/bfround_numify.t SHA256 f5d23cd2471685b1f289ca4527fdd257994342794cda6a695a24a0e18c53eda3 t/big_ap.t SHA256 10c71cc30ee340d9302f998260bb4f74b267c48c204c62d293c44e3ba1195b40 t/big_pi_e.t SHA256 e91a9d83dc55ce67621aaec023652a0e0b2c4798055d7eda6fb3623f49f423e2 t/bigfltpm.inc SHA256 2e2e28dde05851db40b820056709971c75fd211857befa4c56402fc646009c0f t/bigfltpm.t SHA256 adb742baab9c513b329a9421a46692e3cee28a3631addb70047046c8d8eb0dc3 t/bigfltrt.t SHA256 e8ed5c7a000a202b564152fac8525d734a462747aff386ab349378835b3e6134 t/bigintc-import.t SHA256 cb716a0a66c5e7d1b680944f5a39ebddbd21e5e36d1ded7e7a3a323d6e66b4f4 t/bigintc.t SHA256 f5e474a10404d614db2eeb7aa85b8573cabc335c57e1d540924446dce41e7b2d t/bigintpm.inc SHA256 6bc579630d21ec7dd8657f10e66338698583acf96c377321ee9e426719734b6b t/bigintpm.t SHA256 03ca0a635e7179631eb6bc35788324cd1bb1f882f9a324b160401056c24f12b2 t/bigints.t SHA256 3dd02fa446006a69b7a3777e2400ac53be122c98531bdd4b9b0ee20779603c6e t/biglog.t SHA256 62b1587e13492b1fdf889f71b5e3f78e3a1d027edf12b0ab5e007251479844b8 t/bigrat.t SHA256 10848f925406fced38ad4f5a03b07bdc8b1d930fe04f41f1113c3185dd358b09 t/bigratpm.inc SHA256 b85716633405fb343218a9338ba6a2dabe13548a967ec8c701e2d569e1686cfa t/bigratpm.t SHA256 d4ec2bf1e557e61bcdd116e2d1e8a882fa8ae68ffd98950c0d6cfbbde8c3d4a6 t/bigratup.t SHA256 6d17398e95c2a93942a6a28c97504e8662726903a72c402d8fa3d7a7f32d00b0 t/bigroot.t SHA256 43fb862bff8b1b7656f2f3190fa0d7a04a7e7a67b5916dd64dcc90b7dcf4da2a t/bitwise-mbr.t SHA256 82011363145092616dcd8791bf1269dc8111b80edcb16d9f8a172eedc8c6371f t/calling-class-methods.t SHA256 cc5702ba53c9629bc89e71594d534a2e27160379102777520ba1bdd3b855e0cc t/calling-constant.t SHA256 1b1976b1b4ea7ce42dcb969a7a5cc428706caa315b471857b8136bf437a6ea1e t/calling-instance-methods.t SHA256 fdfc51b646339dbfb3f4401f7d0160345a3fda1d3673ea810518c5a0a0459aa3 t/calling-lib1.t SHA256 f09924e2d385af1bf78824aa01e17430242007c683a40a23412e9803e0ebb16b t/calling-lib2.t SHA256 1baecf87d5e8958a9f00661fa7900c024fbcd26c6e1cab81d40db349033ea26f t/config.t SHA256 8a2f8809dd19b2ce909798513721046d46d741352e590434470b0cd1e74578f8 t/downgrade-mbi-mbf.t SHA256 ffd0c01bbbf08014bbf2cdef9e2b1e2a3927117b61c23498c5656e99ea914812 t/downgrade-mbi-mbr.t SHA256 68f3634333693b6414c46b7c97c14699dfed46e21b8317f97caee839d1a07847 t/hang-mbr.t SHA256 324d86a08ef2dd6b9d900d0872ec8b5f91b0d4aa18b436ebdd479bd31525487b t/inf_nan.t SHA256 c6f580965233c9ae86263531feaabe9eb4943131121ae3c14b840f1870c264c4 t/isa.t SHA256 0ee0a589b916eba4ba34539dff1825d257d4334017016ed52872d843ce59415e t/mbf_ali.t SHA256 bb5c7625cf1ee256e05e9997f1300b6ccddda3b60e60552ecf9aad197cef669f t/mbi_ali.t SHA256 c54763f1221b8b5ff3a262b1a7405c686f87197932f11f401fd52f0d4e6d7718 t/mbi_rand.t SHA256 6c724a175f9bac281bce097499ce97e1cedab287bb659ae108d28567f8d202b1 t/mbimbf.inc SHA256 d64300e6afc48bc76b65f25fffdbaea2e5c99ea6019eb93e7696fd1db5f0fb2d t/mbimbf.t SHA256 eda4b504617246a45e8ae6765ae825f16afc84015b74b7f7969a54e5e6e91e66 t/mbr_ali.t SHA256 c6631d5efdc13d02d6e90bde8f3705ac1ae3d90bd6a6c337b71bced9e88585cb t/nan_cmp.t SHA256 9926011c771c07a60479a1ef9fdb2370670352c3fca14d2a7d71857e4c6b44ad t/new_overloaded.t SHA256 04ca994d41eec1bfdab2fdf1abe78501176f63bc9f7dc75c13c64c184aa992f8 t/round.t SHA256 0e6d57b77e35d6d6787d517c0b0ee245141fa6dac27a5276387dad2fcfa313f5 t/rt-16221.t SHA256 d53a6b3e079dbf198ca826c49a6b1416cfc4cf1d3ea3697d7051179270b0264a t/rt121139.t SHA256 bb0bd580da90ed714465d7c1d8007744b65ef09c0b3fbea721ffc4bdedc25191 t/sub_ali.t SHA256 363ae9c882ad8d8b5aaa138bb11185ac2f9f1e247e09fb0b24d0941d117ccaec t/sub_mbf.t SHA256 99dbaa1b164d3230eae604b8b589f74f93cd057d8eb22d7886d3fbd19b631fc6 t/sub_mbi.t SHA256 d6e3e7715c7586ec876e79a088b0c09645923a612d0c6e9570980713c42b3e7c t/sub_mbr.t SHA256 e77752e001d0a5650d815d4221bb1de2d27e821df0a246bec8e6fb21ba261228 t/sub_mif.t SHA256 1d58e6475d4327d4db80b5d622804cbf5eb0609cd212d315a44d8b5732f7f76a t/trap.t SHA256 2ff5ba21e9578e9cd5ee9568fafeeeee964d4ebbbb17ba4c6841b91008d05951 t/upgrade.inc SHA256 52434b2c67d5b3e7ae6dd72b1781d219f848e120c3ee173505bc801d0efbdd86 t/upgrade.t SHA256 eeba20d1316a6d66ef1890bb2048a9f18648b8da5398db27797b75cfb0f334bd t/upgrade2.t SHA256 01b543fd9de9aacb54d5d4c64479a064e9c5e3050f9f79b88c0d8d5d2d858f4a t/upgradef.t SHA256 abb78d9e1b5f3bbb798f28050130d1fe03bfe61e6a8cb2110ea12795a1d5a850 t/use.t SHA256 7626568e8dc004b8ecd04bdb6cce75062135b332de92c101cc6531a69fd112ab t/use_mbfw.t SHA256 b2c6d785624e590f766d2e30a878d5f7c99197f4a0b42a82849a0998726bb9f0 t/with_sub.t SHA256 cb1c97ab712ade6934652123b8de5c108bba871ddb69a5a6f80de075d76fe00c xt/author/_bin_str_parts_to_flt_lib_parts.t SHA256 ef8c464b70d1eae23f2605bddd7586ce523d12efe2ba235ee2d16a6a1f588cde xt/author/_bin_str_to_bin_str_parts.t SHA256 fd776cc0d0d58fda6cdbdaad040130d8ef09749a9db5c27f5f72a2e1a20181a8 xt/author/_dec_str_parts_to_flt_lib_parts.t SHA256 5a0fd3d0e95eb7cedb4458495ba43f195c3e0ec66bc0d0ea655e8ccbedb8b747 xt/author/_dec_str_to_dec_str_parts.t SHA256 7c62ee6590cdd3d210546cee6e3ea39f5b40a4a07243340c1920d27148fdd9d5 xt/author/_flt_lib_parts_to_rat_lib_parts.t SHA256 4c21d0512d373aaa0860466b4d6d4da434e272108572123a7f8d0e5b4cb845c4 xt/author/_hex_str_to_hex_str_parts.t SHA256 45564d0dc3ee6037d8a2fa27bcc03def8db82ca0fbdb3cf8c51029e56bab511f xt/author/_oct_str_to_oct_str_parts.t SHA256 9cd80a767df92a1664996b5a5ad63bd0dbf8c9b140a5be3db1271368b84143f4 xt/author/as_float-mbf.t SHA256 6de06bb017eaf1d31f2388367b36eba304bbf6730f98294aef58d09a1f706aed xt/author/as_float-mbi.t SHA256 3dccda2203eaa7947a52985258deb8d2729529c53e31033e3e7113d14cfe01c8 xt/author/as_float-mbr.t SHA256 1c79b4cbb16620aee8a3d6d1dcf01cea51685a744d5d462469ab930935be4175 xt/author/as_int-mbf.t SHA256 748886d803bdc7831a5dc073f52c62da872922042533adf51b8210a2889a130f xt/author/as_int-mbi.t SHA256 dd109d99cb37c6dfcea8405d799a63bb87fae10302ac55502f9e116d80308daf xt/author/as_int-mbr.t SHA256 b9947d26e8551eeb9df4f61b2c983cfd5d12d3f39b920bd1484da146a4651b6f xt/author/as_number-mbf.t SHA256 892665f9146f1fce47942198f223a0a4e6e101ed95c2bb554f9d46c12d0612ce xt/author/as_number-mbi.t SHA256 bc27e622c44b62c2a67b6d8902e4edf89daaa7b19c00a0c1ddd4c5a1277fb90e xt/author/as_number-mbr.t SHA256 1937994418cf2ba692ddcf61720730494126dbb2c26d086d69a0bf64d476b9a4 xt/author/as_rat-mbf.t SHA256 2a7ef0f828d4c956f8d212638106a496c617370f5705cbed9c6a7398fd38c552 xt/author/as_rat-mbi.t SHA256 54532a70a0f51f1b7f51006b8e57b05b2806e3925513a14d11f333afa3bfb0b5 xt/author/as_rat-mbr.t SHA256 c068133b089c9fefedbe188c9ad1aecd4d9d219a179c841e3c7dce2761dc1c4f xt/author/babs-mbf.t SHA256 7cf02946e8d29705e02dcefcb5b2a8e85038cc8cf5bb941252dde3b8cc3e8eef xt/author/babs-mbi.t SHA256 aa857ab7a0b4f0a34abf9de889324ac9b4e5cb2a0034ab766718f6586b051eed xt/author/backermann-mbi.t SHA256 55c8013dac8ccda4bd4a3dea94b30b8f9ab1df0683f63b4f36ea8bfed09a7446 xt/author/badd-mbr.t SHA256 fb876c13806468a30194a66ea48a90344914199616e99088f988cca82727d569 xt/author/batan-mbf.t SHA256 d3138b2139a762ee5ee36bf271228798efd1dcc24703a2850164886a6e91eeb7 xt/author/batan-mbi.t SHA256 657c6516268f4aa545fde8f7241bcf998789fe1cd7a4830fda91bb99d555897e xt/author/batan2-mbf.t SHA256 3c597fb045d0579c5037514c5f96a61f66cc4c425a1d7b38ed9d72b698464a2b xt/author/bblsft-mbf-mbr.t SHA256 fc1a21a65ad1fb3136007aeefff964e360906cbb1c78b6714362a3b887e69fec xt/author/bblsft-mbi-mbf.t SHA256 8e3860683cbb72958bc597ec6a886676b7602b187945740698f5e51ff313397d xt/author/bblsft-mbi-mbr.t SHA256 e3326a3137434083cd0f05edf227bfd41af53117efeb7f6f29215a6305d0ab70 xt/author/bbrsft-mbi-mbf.t SHA256 84e7c6bb067402bdeb5ef60193f55a80096162b1601f6c35583f4de311b06782 xt/author/bbrsft-mbi-mbr.t SHA256 7e93ead356d633f193d92bf6f889e90d7e60d8f57c794c34064e7a7df5a90496 xt/author/bclog10-mbf.t SHA256 0260f9345525e82b84b1404d508a88982bc797eb20a17b6004b1ef300491162f xt/author/bclog10-mbi.t SHA256 a8a364f34140fb594fca7667b3aa8d5cfdf2aab89937eb41dcea67845acd77f2 xt/author/bclog10-mbr.t SHA256 9702d3dff7ce776cf198cf6b8c96fc0576aa97f4cfa7472a28e2375ec1d723c8 xt/author/bclog2-mbf.t SHA256 1c4f3f768b557dcd6ed5c536a635f81bdf88a80f32bb2c061cc06ccd60224465 xt/author/bclog2-mbi.t SHA256 3c3b735040d81c2f9b5a177fb3f91468252d6d42de99ad03bd29ebf601adbaac xt/author/bclog2-mbr.t SHA256 e990fe4bdee17ac35da2649da5327f15d456f9d3bd12764ba4468499053e0c52 xt/author/bcos-mbf.t SHA256 8702dc1a187f911905af3682c2984c266859dde1d7d53082c0c6b5d1ae978998 xt/author/bcos-mbi-upg-mbf.t SHA256 5843b0736896704814a252a147f44600f360e31ca6734533fb6968ed72006bf5 xt/author/bcos-mbi.t SHA256 46e724cad023968b3b5f95ec9ff734a784b9b41b4ee0952c51ef101408063186 xt/author/bdec-mbf.t SHA256 e98bea680f4056bb74f9ca86646a470c325176856baa17901c3c9b8707505fcb xt/author/bdec-mbi.t SHA256 b557b041146bca03731701c13ddc31a3c77795a0d1bcc5ac22f6efd36c3d9968 xt/author/bdfac-mbf.t SHA256 32129c596ee5212c5c21549649753931866c0d9aaf71e5c5d35a828776ca42f0 xt/author/bdfac-mbi.t SHA256 a9ef7f3b85f8d572baefdea1e9a15a3fabdab39921145308125cb559fa34549b xt/author/bdfac-mbr.t SHA256 0a849013ae831b46f7948a23fd1b65c9cdb52a10d50e6aa456323c6499485975 xt/author/bdigitsum-mbi.t SHA256 7cdf403c4f4055f07fe7adfd05f6e2172859da504888595721201c8e9c03d86b xt/author/bdstr-mbf.t SHA256 1f3c6025bb8d9737e8dbddd1acb1e910cd90f22816ff77f981d652adbd0fa463 xt/author/bdstr-mbi.t SHA256 8424e90d117b75022ae06faa093e299f85880644489517bf8e2c0295c3760c58 xt/author/bdstr-mbr.t SHA256 8a30bdf443701899dbf1f4cc6e24bb443ec6911b1fc62e600b53ebaf3032bef1 xt/author/beq-mbf.t SHA256 d00fccad3f94246f7bc2185975fe70eda40df6bcddb87914ebfbd167c33149ef xt/author/beq-mbi.t SHA256 54eb7b8066f980ea1cdaa0e675a69dda189f6c7a369d72e00de2964562155e3a xt/author/bestr-mbf.t SHA256 1b76e811ded692b13780953433146a40f792726909f74d9f9c3f253845947a9c xt/author/bestr-mbi.t SHA256 100a90c57af6130687e4228ad334d1f2662f4992d82953d2ff5d39a46facb173 xt/author/bestr-mbr.t SHA256 e006f40742bfbaa46a97264bf56e8e131cc7c4ee31dd7dca08da61218a71c2a2 xt/author/bexp-mbf.t SHA256 7181e63a134d73c4b867aec45d0ca28887caf56bebcaa8b15aaa9bb2ee19bc66 xt/author/bfac-mbf.t SHA256 5ec5d650710c76e2cfc48e451012a07475b0af7e535da73f971fadb7fda832f1 xt/author/bfac-mbi.t SHA256 f2067b7389a8e0a61ccab75b967496036468f5b9a1358ca09e7f4205b2f1ce7f xt/author/bfac-mbr.t SHA256 ccfeb7264726f90485524878d66f8ea5064fef1eaa3729a5db3ef4e0140dccfd xt/author/bfdiv-mbi-mbf.t SHA256 45a5a84f21cf5fcd5ae35992e597769704c12cf908fd31b859e5cc0cc02351ab xt/author/bfdiv-mbi-mbr.t SHA256 d8b03caec97bc525649751737856ea2a64846ac6bc2c2cec6fcf855f8da65080 xt/author/bfib-mbf.t SHA256 f55d7bb2f6aaa3a8eb4ad893217ade047b6b05ab96e7d6b605b38d27dd67be90 xt/author/bfib-mbi.t SHA256 ad5bc9b3f48d32e44710dedb4784288681c0ae77e3ade3a7c593b0f42ecc70c7 xt/author/bfib-mbr.t SHA256 c59cd0d5475ee478d6747b205c55da8fd899ed9a7e2615c6244b52f655fd4e11 xt/author/bfmod-bfdiv-mbf.t SHA256 ea4655abc07a690b27ea16c76e2de176552b541a0e32f1847099cb7f370d2bc3 xt/author/bfmod-bfdiv-mbi.t SHA256 4d1da1391f15182517edcb93ebebbf3a6f7ec15d98dcce1dd3e52b965785d0b6 xt/author/bfmod-bfdiv-mbr.t SHA256 36362345f8181d8fdc2477ed1e0e9665f292db9ac4716a086ade31557dabeb27 xt/author/bfstr-mbf.t SHA256 5c0afee54a5ffd38c9577a5a42742499042517ee2b96f8b9e3732ae5a6c94ab8 xt/author/bfstr-mbi.t SHA256 c084fea010fd0fa35910de0f89bc0939168f3699d0a0eef466b6042e8956602a xt/author/bfstr-mbr.t SHA256 7cede20718e3a48e450ec93f9269793ea3fdbcab05910ae223cc9b08e1bd6ea1 xt/author/bgcd-mbi-mbr-mbf.t SHA256 e492423e943f10076fbc4cb3292d8a1531e4d79a4bad2244a57f9188a4002832 xt/author/bhyperop-mbi.t SHA256 935e262196276c77a834fc2b872cdf1ccf28d4006fc50c5f4a4e0afd8536b18e xt/author/bilog10-mbf.t SHA256 2ce67b3085b9db06a07fca3bb5b41205d90dbce44032df4950413d048806bfdf xt/author/bilog10-mbi.t SHA256 ee647a37fba2d66bd2e76b5316bba6684196269e703f16c046762e6360390a7f xt/author/bilog10-mbr.t SHA256 bfbfa39a8d668c587118f4a53848230e63418c9b4b3937598989d1e9c2dde0a0 xt/author/bilog2-mbf.t SHA256 a66ae5993d88aebe8936da021361aae9f61437136b9520a6b165b42f7a935bbd xt/author/bilog2-mbi.t SHA256 51d4d4102a2145424841bd1a2e57561de0ddc7f4ef5b655781436ebc21aee9a4 xt/author/bilog2-mbr.t SHA256 027f12d43cf2682df17e8418591720da6773841a6d9f1728f8349bef7ca8dd3b xt/author/binc-mbf.t SHA256 7615206680e48d42173cb4a5b0d3d4beb8a39538377323f7ae8335f34e08d2a0 xt/author/binc-mbi.t SHA256 93d3c18d2a4e1c04feda084e09e2cf526483201a19e04a9614473c91e0e3f27f xt/author/binf-mbf.t SHA256 9311139f8dded8b472a2192ff5296be62bd7f132e5a9ee8e020c3c382c9819ff xt/author/binf-mbi.t SHA256 744d6d1351b9c0f0549d260d7df8bb56c97a053f053043708a34c2d2aef1c032 xt/author/binv-mbf-dng-mbi.t SHA256 8f8fdcd430abf78c32449f9eda2184da6e1a47073be807c4d43b98508bc43dc3 xt/author/binv-mbf.t SHA256 65be8d591d6928ffacf2f9997ab839cb30cc84f570c50b03b679260a1f590aa2 xt/author/binv-mbi-upg-mbf.t SHA256 0cc71edf693e389f1b7ed43833338c75db1cd4953614113be4b28823ee85ef4e xt/author/binv-mbi.t SHA256 6e316bedec258e4fa60835523c27292f519e6c4f5ca022dc9d5913a0085497b5 xt/author/binv-mbr.t SHA256 0b446af8b1670f4c838cd42882e3484b50637ebb2d80d4f79e05f7be8bd465ee xt/author/blcm-mbi-mbr-mbf.t SHA256 e8a5acd766bbc860052a761d7fbcc366153a2910131998a007551044d3cb4d30 xt/author/ble-mbf.t SHA256 25668b3e793753c4d43b153b2aeb88f55057fe528f34c2e2c94ea047273c250c xt/author/ble-mbi.t SHA256 c1bc74b784717bba95a4e06c3e4d9d9ff0e63b428e73285be2408eac16c352f1 xt/author/blog-mbf.t SHA256 e3a2f45d9de7756c570c7fac5f7f3a80cd33e8f321dc5fb6d8d3743a3441cabc xt/author/blog-mbi.t SHA256 b961cceb2d3153bb46b71e1d8053e6db994ccf1059c3fba60e4fe7392e893f3d xt/author/blog-mbr.t SHA256 a50cb3ac9b6648ed0798539a443ba231d5224e30c7e3366407a2c338e40bf23d xt/author/blsft-mbi.t SHA256 7cb1ca91835113727cc22496aad82f93661c31c3e314b8a7c5683d1e65f5883e xt/author/blt-mbf.t SHA256 b705035ada49a56056f1c8b97accbb85e6dcb9d8f06e741a4adc5429377a7259 xt/author/blt-mbi.t SHA256 e648f6734f151482f2cc5b70151b11efd1b351c11e32857399c21b135126a063 xt/author/blucas-mbf.t SHA256 03c9ff253a85c2930f5beb75295e1d048d0d37b3e26a30fae4b8ebf1f5b5f98e xt/author/blucas-mbi.t SHA256 f62c012965bd699f3e3eaada50049327a2e4bb3e76af6bf1de3e5633b9cb6836 xt/author/blucas-mbr.t SHA256 82dcfb2afcf196da133006f0a5677050f20135b6faf585c2835d003649268f44 xt/author/bmfac-mbf.t SHA256 c41815f01ecf518bdd18adfbcbf60dccc35d73487662f30dabd71d7ce9443723 xt/author/bmfac-mbi.t SHA256 a22158f26c616e55941eaeeaf628254e61563514016832cb074f9f515f385c8e xt/author/bmfac-mbr.t SHA256 0bc38d6ad8ff4ffe4de073cf91357feeba07908f42803628ff633e1e25053530 xt/author/bmodpow-mbf.t SHA256 f4aeb4767bf5e33d54d3806e92c6e6f23f25a2d85359033d6b013295a207b2cf xt/author/bmodpow-mbi.t SHA256 7c2ca668daba592a6e01d0d6e839657eee4079846d463477a376d3f348f75c0e xt/author/bmuladd-mbf.t SHA256 1908d147665c5d2a91cfb8ac54d32af937b2402466c59605424c598e2dddabf6 xt/author/bmuladd-mbi.t SHA256 b07a84f4fb6182056f338b61b1abb1126a9fac79fdd83af04f649c15a21468df xt/author/bmuladd-mbr.t SHA256 3252d68216cfb8ce557cd74b25e78c94e526a7e3115e8ff20e5eb1e43491d138 xt/author/bnan-mbf.t SHA256 19fe57436cda8a6b74ab0d0ff41403ce54f0eb85382f30128d7e5249478ea9a5 xt/author/bnan-mbi.t SHA256 786c8b492b7ea861ba10194f8a698a6f3d7f5c5663ac050e8fa9c9832790ac0b xt/author/bneg-mbf.t SHA256 6571f8f28b6eee223f5e89bfeeb88066d443bd0648a37570ca1a7c6a0d8b666a xt/author/bneg-mbi-mbf.t SHA256 bb4119bd8a49aae7ebac4b9f6439103330fca5477f079d7c00c35879ce2cfa3b xt/author/bneg-mbi.t SHA256 65563dbf926ac65cd1a208801fa761831724c27533403436d1a7578c6bd496d0 xt/author/bnok-mbi-mbr-mbf.t SHA256 b4497aa276b541c7fbbc9a4d0a7d1315db0e14409fe88ff71eab890338908323 xt/author/bnorm-mbf.t SHA256 1629b0ce8ec348fe60e4d19e86552010d95160f84265764e9f01ecfa121b8e70 xt/author/bnstr-mbf.t SHA256 f95ca6063ca238b36fbcde350b04ab4787d4fb0b19a3adc419e588435b83f31a xt/author/bnstr-mbi.t SHA256 dc06d3a63bf1dac786b03d8c445d0123fb917eeb4df403272adfa13bcc20c7f8 xt/author/bnstr-mbr.t SHA256 b489371f2f5493dc19ddc11ffda65f7e3321574e85a0e74ce370ad53ab5d9d47 xt/author/bone-mbf.t SHA256 cd2836f84da3f252ee77bf1365bf49249c49f2a50cb6c9b8c6cdb1fc6f4965cf xt/author/bone-mbi.t SHA256 181e5cc4aaec3f0764da90c3eaadc09b5da68db1bf45b1d70f07c7163e535355 xt/author/bperm-mbi-mbr-mbf.t SHA256 e387f02a7c267cc0579d5519a3796a0622c76daecd8af3775c28d7b740f88b06 xt/author/bpi-mbf.t SHA256 49ee4f0001113143be0fd4bf6f7ab20e94090b388702218bc3c91b928a7265cd xt/author/bpi-mbi.t SHA256 dbfbb05fe8d816e3821e4481fd45f8f05a719b15e979fd51d332256754e33d1c xt/author/bpi-mbr.t SHA256 d014125c19c30dcbbb44f472f5f49fbf95985c4c344217527a8a79363b0f8fe3 xt/author/bpow-mbf.t SHA256 de2d8f97ca544c42a642a5cf8d6dddaf03a408b441b66940c0602be1cb350b96 xt/author/bpow-mbi.t SHA256 cb1565b7486d9a297e0c4aaef5530aacde8acc4db95f94f568116a2b793ca908 xt/author/broot-mbf.t SHA256 816415813cfd56a49b93a5afda91f34bd761365da9355e7f5247a1ab82984572 xt/author/brsft-mbi.t SHA256 4103c4e47f83c6dd72cb089ca4481fec47cd25569fd449867a911e07bfc14345 xt/author/bsgn-mbf.t SHA256 ecc148c7fcca63eef1ed1129739dc0d778ee06e1f554b26ed1f4c453a88640d7 xt/author/bsgn-mbi.t SHA256 17efb67f8b8770deb1af6e695d766873abf2ee87918299482e99532b9ab1743d xt/author/bsin-mbf.t SHA256 022b2c56cb3aefb261b871a7f72a1738ae7bc8fc849582377c57f8d5bf3a97e1 xt/author/bsin-mbi-upg-mbf.t SHA256 d39aadaf99a16d2f05fa2603e2202cc3bb640594aa0ff2b3add37a363f2473c6 xt/author/bsin-mbi.t SHA256 f7faa9cf12b07f6d4947a3a5e42da38b9f7f76eefdfcaa19e78870036d29fed2 xt/author/bsqrt-mbi-mbf.t SHA256 95aca6f782b43b89f3dd8992e6861ba3ec232c8f06abc8a18c08d9b8992d2a21 xt/author/bsstr-mbf.t SHA256 ea3a42e5132afa883ef70ad4d19ee56e1cd5438a0ebf7e5b8cdc06477e2b5b5c xt/author/bsstr-mbi.t SHA256 b59cf74fa7de61cc56ddda9ddf1700d49c13b9db0e7405d1fe7c5bc3196c8606 xt/author/btfac-mbf.t SHA256 b5e3004f6ba636cbc8a76adadb0e703733d4f7ccc99a43b3f652af2aadb47668 xt/author/btfac-mbi.t SHA256 54f1585b24b51b3028458954191cfb667a1f1124ac407a43d62fa3e5d4ea93a2 xt/author/btfac-mbr.t SHA256 1bbc1f518339b568fea4862774d94254b59c2c898a188cc03870b71fd00ab6ba xt/author/btmod-btdiv-mbf.t SHA256 388be26660796917fd6d92b158332f43026befe8ad2b00556b1df844692693d9 xt/author/btmod-btdiv-mbi.t SHA256 01f542ac474e6fd0dc7177684efbc0d73f7197d8f4c21c73a16b365f7a2dd7ad xt/author/btmod-btdiv-mbr.t SHA256 08b55b58d3ea32d359577e242fcd4f6474271c8525a9d552c862f8314edc381c xt/author/buparrow-mbi.t SHA256 1ea1ec622c80c810c5e86d7bd042c3b3604040984342b3a83777424978040915 xt/author/bxxx-addr-in-1-out-1-mbi-mbf.t SHA256 c62c96373c5c94bab8fcb6e0fac2cf6a88930d0832e34ac21cb7a1c8b7981969 xt/author/bxxx-addr-in-1-out-1-mbi-mbr.t SHA256 7955b58e7ed4da77b069951970cf1289735c97bf94376f4f7926ccfab3c9c140 xt/author/bxxx-addr-in-2-out-1-2-mbi-mbf.t SHA256 fd333e8b62c43ae92c2535c857d5acd4491f5a5148c7ad58adcd126e0287ce57 xt/author/bxxx-addr-in-2-out-1-2-mbi-mbr.t SHA256 b17d00c9b4fa68076a3b1513c776f437b821f8463a2a10e992fd231e909e3e1a xt/author/bxxx-addr-in-2-out-1-mbi-mbf.t SHA256 8ddfb8b01700f65bc4072f8c349cafd4ff2a8a61d9cb226fc69f27e861ff05ac xt/author/bxxx-addr-in-2-out-1-mbi-mbr.t SHA256 b55fbb9ec8ae24c7273a91959f7767579deebbe697ed6e737e22b4d11c615927 xt/author/bxxx-addr-in-3-out-1-mbi-mbf.t SHA256 1105530447c38d32d034d7441030f875c4ebdf7697ae37338dee5ecee0c014d5 xt/author/bxxx-addr-in-3-out-1-mbi-mbr.t SHA256 861588150fb96b475081d35073e9379ebae4cdef996bcf5cf581c85996baf67b xt/author/bzero-mbf.t SHA256 6724c7f2ff9859093148d5c7089416ff28f75405d9e5369818ae188f388ba4d2 xt/author/bzero-mbi.t SHA256 2ae8168531ed6415bdb20ec7aea33e77fb27f5b3236800e7fb0f139f400bc46a xt/author/const-mbf.t SHA256 fe3ebc915d56ac4bbb3dbbdc91a9b25d56dbfcdd4da06c1aa44473a036d6e5f6 xt/author/const-mbi.t SHA256 ce2ade7de6e234194805024905b37230e8a0c0447870de0efb29060f28226d8f xt/author/const-mbr.t SHA256 91e7ae04f7f680a10c576a2d062d2850a9557f67a2967dce365917e6117e4abd xt/author/constructors-a-p-r.t SHA256 ff9ad8cd113392b6f6c13f970ef9c53336b38d5a9d875234f99e67bdddd34005 xt/author/copy-mbf.t SHA256 078d8ed9cb0ac62aa0d9c0334695f1c7f189f2142b98e75b431b0f43a2e2dcbc xt/author/copy-mbi.t SHA256 3b4f29c10335315aa9a7f43b496c32313ddd535b439f0e02000502077a964e5e xt/author/dparts-mbf.t SHA256 20885f8ff653f1b7f03960ef1c2a83c227e4b045bb6977716da88f58753046d0 xt/author/dparts-mbi.t SHA256 a95c56f9789be967de9365c4fd0323e6349f2266191eabc159324cb49005989f xt/author/dparts-mbr.t SHA256 1214cb07c16402a1800db390f280a868765f1d6378282f6fd680d205bd0b47df xt/author/eparts-mbf.t SHA256 5a5933ca63a21953ce2f8d1dcbddf14053bcb85c22c6b398b5257a58ae92b5b7 xt/author/eparts-mbi.t SHA256 5e0a64848bc295aef596cf8cfa311ee78dc38ddab885f1283fd71549c517f215 xt/author/fparts-numerator-denominator-mbf.t SHA256 5d41b670b1d55b9618a26c458090b761a46fdec0d76410dacd096a9f4fead57f xt/author/fparts-numerator-denominator-mbi.t SHA256 1231f4a99c79d67dbe26fbe40b9fffcfe1e85000196f5191f7a9c46e592db020 xt/author/fparts-numerator-denominator-mbr.t SHA256 a1aeaf49549a26bab7733b1613bf40986b292d299a0628280a4dc9c03052a9df xt/author/from_base-mbi-mbr-mbf.t SHA256 eefaa18ad1baa9b009bdb504949953ef70d09032210ddb088c7663c700cb918a xt/author/from_base_num-mbi.t SHA256 18124023a83f6a1321ee483259f24269d5dfea9b8f613a2d4d04032dfeb949b4 xt/author/from_bin-mbf.t SHA256 6dcfa222e6590288a13926bd1ad9558ebf50f6b15cd9bd39269ddfc2c1d2c84f xt/author/from_bin-mbi-mbf.t SHA256 b3a9ac9909a96a77250a67cc28bbc5418dd17baf28a713fb6e1e554022f98639 xt/author/from_bin-mbi-mbr.t SHA256 24fa9ad9db9b318a1c88bb0c3d8b2479f53592be4ae71510b4c200cc5efefb56 xt/author/from_bin-mbi.t SHA256 c0872549ada2cf50fe2da62a784906c85a405f2b9a4f9fc7ada1d4df49f0cc8b xt/author/from_bytes-mbi-mbr-mbf.t SHA256 e0c8b3391c95e33ea181fefb6d2f122b415435fd698e97c09a04456cec2f3bd3 xt/author/from_dec-mbf.t SHA256 343dbb214ceb31c7bf93373b8af5fb6d40d9fa4962938cc36c0f40fdad12906d xt/author/from_dec-mbi-mbf.t SHA256 54ca0f24fe2e19d7ce1e176fb1d5a7a15c16a42ef13e7e4799785009215cfbf8 xt/author/from_dec-mbi-mbr.t SHA256 402a5d794b5d52f48d5d9bff0a912f09c7abb822c2842944d544d2ebdeebe0b4 xt/author/from_dec-mbi.t SHA256 056b74cdf7a7eccc15525579b901c556ce7922b9dd900f8fcb3516b2bdeea23c xt/author/from_dec-mbr.t SHA256 caa34bedfce3a0dcd8ba64cc33a091dd1bb83c31a9a729b1300c9940ff8c442e xt/author/from_fp80-mbf.t SHA256 e047117055bc96883585fec434f3c6470504806481c00b9367bb0efa5ceebe6f xt/author/from_fp80-mbi.t SHA256 9eeef86ee5f39ca41a943fca673d16a4047b58c8892f3176136cda6667903df7 xt/author/from_fp80-mbr.t SHA256 cb72337beed33901fe40b51fa583b0e3f448db9afc7f91cc1c24327032b35aa3 xt/author/from_hex-mbf.t SHA256 172ca2fab2be5600b5f2bd3c555b94a9a6b9403f53ef189f0c8b77a5166a51e6 xt/author/from_hex-mbi-mbf.t SHA256 c1c8e801b24bc7da53f37703f6cd0c718178a98e8a67f71e37386156339883ff xt/author/from_hex-mbi-mbr.t SHA256 57dd7322babf88d3a1e0f8e5c088030487266c674a879f9ce2b33e0cfcfd99f2 xt/author/from_hex-mbi.t SHA256 bd298065b3fde3d00d7638ee36c022d36b5652e8d122e2ab022a5ef1b29438b8 xt/author/from_ieee754-mbf.t SHA256 e47aae8185a9709d25e28517956334e730e5e28dda0d2f581bb13ccac52d34c2 xt/author/from_ieee754-mbi.t SHA256 9ded4ed2bade28f115ef5ba2e52a8252588ded131bff4a194fdd693f7f16f6db xt/author/from_ieee754-mbr.t SHA256 50f5f7f8b95c3d2627e44b1c4332437a17226f8c082510da71af471f1dd05abd xt/author/from_oct-mbf.t SHA256 f09a4248fa77de215554c3d725836b443d1f8a79337a6b72ab23d5124bcc13c1 xt/author/from_oct-mbi-mbf.t SHA256 f3d8048c99f94dac955f2fa57593f6ed2d49e07a0c9c8f6849cb651a7f56a952 xt/author/from_oct-mbi-mbr.t SHA256 a181ff4fd5caf2ba3287599f5ee05a20c03f34cd4783ec6fa9fe2bbf3c23b20b xt/author/from_oct-mbi.t SHA256 784c744c617e71ef6275025f384feca058238c2227e0b9e675970a92c03e80bd xt/author/interop-mbf-mbi.t SHA256 96036b9354f303df36a0cd2878257dcb5493db1f255583a68880383c21eef637 xt/author/interop-mbi-mbf.t SHA256 a1e557ca151050df148c3a4f279e7b447042faefee11ab65ed277f2c4fab598e xt/author/interop-mbil-mbf.t SHA256 f0361aa3a5636f91316db80afa22330d0809e72b68d12a16db9d7b36f9d98d69 xt/author/interop-mbil-mbi.t SHA256 524772391a95b0fbb8bb0ccd4c4cd879009ae9a41ca242d45ec604fdf5f7346d xt/author/interop-mbr-mbf.t SHA256 c11b84a5aadf1be92b51c7c86fd5d65d20a8054767c625bbbd1dcb41cc5a2b49 xt/author/interop-mbr-mbi.t SHA256 1c54a3dab554bc054b4997457f7ee10b9f4560ba908c5fc36f77593ce3874646 xt/author/is_zero-mbf.t SHA256 2425d3ed127845ae1653eda4fe51955e9994326041c8894e8105e07f10ca0168 xt/author/is_zero-mbi.t SHA256 b0eca4959a7e5555737837211728b34450eb933205414eedbbfa5345abf17eea xt/author/lib-arithmetic-binary-_add.dat SHA256 da56a2a378404c7344d702200cf8c6eb04a901917106429f5f4aaf191c0b6011 xt/author/lib-arithmetic-binary-_add.t SHA256 3c21ed128445e95c51c48ec243a919e4ca8ce4c6198e9dd39ffad473fbb7d1d0 xt/author/lib-arithmetic-binary-_div.dat SHA256 baa4b84f169e510adc4440f91b46f21fecb4d662ee988669501c20739e21b321 xt/author/lib-arithmetic-binary-_div.t SHA256 7208ac11c8d853a423695fd57fb6870e2c5fdce9a2bc6c46c3701bbb5dfb3a6e xt/author/lib-arithmetic-binary-_gcd.dat SHA256 cde7ef698c7af532276cf04738a2286ab3208d176ddf4b3a6ab57c0b0afc1749 xt/author/lib-arithmetic-binary-_gcd.t SHA256 9c2eeaac286c1ff867e8d1e13e303637df34bb79a4edb24c670a8a19cf924cdf xt/author/lib-arithmetic-binary-_lcm.dat SHA256 dd6fe19492251019c680e392388788d7c3893321526fe29f2dbc9914bec716ff xt/author/lib-arithmetic-binary-_lcm.t SHA256 94c9bb1b1388390839e1011847a6075505f9f432bb8f26b3f74ba4d78665065a xt/author/lib-arithmetic-binary-_log_int.t SHA256 4cb097b928c88e95b49fc76198dd75c2b909cae0ca2b5f6abedf33ad07a90bbc xt/author/lib-arithmetic-binary-_mod.dat SHA256 0161a89d6df264535241d5bd7568677e1c8ae60b23ca09f9707c1831cbada139 xt/author/lib-arithmetic-binary-_mod.t SHA256 9ce9460416424ec2965fddebb4ebccebf0e8b0a59d3997075a7ff80a5566456f xt/author/lib-arithmetic-binary-_modinv.dat SHA256 66b6eaf20fe3464cb880b4192032ac3a82ddb50aa207a025d321528ed1320bf2 xt/author/lib-arithmetic-binary-_modinv.t SHA256 75354f125320b70e19247ded923d12e48bd9db02598602bbfa9f24ff5fe629e5 xt/author/lib-arithmetic-binary-_mul.dat SHA256 089bcba994a3a1781ce1f3e7320e723f8c0a727ce979c4e4c4ddf3792832a23f xt/author/lib-arithmetic-binary-_mul.t SHA256 88552df391be5cf4ae5b9f22ed01f5948fbff6b2a1e22af659d549dd0ec58f38 xt/author/lib-arithmetic-binary-_nok.dat SHA256 b0221866be427a357e29c2dfb608158fc45f3d86b45094017709eeaf8b0fa017 xt/author/lib-arithmetic-binary-_nok.t SHA256 453abc091d15e7ed908513643ff05ce03aa1b280d5f7aa6cbc213a833591710b xt/author/lib-arithmetic-binary-_pow.t SHA256 df5042489f114fec7922f57edf2dfccd51d09e8ed180458970336b18f07c3ea8 xt/author/lib-arithmetic-binary-_root.dat SHA256 4ff31cee26a8dcba5188e2ca8de26fc6ddd5dee86a5252bae408db4032537e61 xt/author/lib-arithmetic-binary-_root.t SHA256 896e6e610d4837135aa93d6533083d9ed424eb70c6706c60113f047666fe6626 xt/author/lib-arithmetic-binary-_sadd.t SHA256 f0d191f9490020d72901c858029110e69f08ab04f880f541f495480e148fa37d xt/author/lib-arithmetic-binary-_ssub.t SHA256 f874ddb12061ff2c72d3ca9b723ac7b8002a09cfd788d50edb584822a629de88 xt/author/lib-arithmetic-binary-_sub.dat SHA256 0027ea741e8665a2c166396501072c670366b1b3a33452213ee69389c1dc35c0 xt/author/lib-arithmetic-binary-_sub.t SHA256 2241015a26ae9fbb3d1b0ca81786033e93d7e61d2402b796cd3a17df71bad483 xt/author/lib-arithmetic-ternary-_lsft.dat SHA256 fea0e92615173ad19448da774a169986bc9b3057934ee5d92f9830b87af61c54 xt/author/lib-arithmetic-ternary-_lsft.t SHA256 c5a53b0ec7c1b14b17c0e4bf41c315f0141ff21f7dbad7fd25dc7d3b579a764f xt/author/lib-arithmetic-ternary-_modpow.dat SHA256 d8611619dab9fdc6d96c96405199000fdac98981d98a57abff92bec4ae09a5e1 xt/author/lib-arithmetic-ternary-_modpow.t SHA256 5331d847542708905a63dd06446490f32cfe18d88718590292fc1ad69c0cb81d xt/author/lib-arithmetic-ternary-_rsft.dat SHA256 33f5d3dc42033c732d91012e4c5d9562899f70e7f3f1c2e034668f161dd688d9 xt/author/lib-arithmetic-ternary-_rsft.t SHA256 0d77de7a7ecff8ffd6ac9060b3ec12727d6bea8ca86132bcc1e76fe402af4297 xt/author/lib-arithmetic-unary-_clog10.t SHA256 60048154f8903979b61a72826fc7e774118d1cd8c89babb8ec514ed2605466b2 xt/author/lib-arithmetic-unary-_clog2.t SHA256 dbc1a33f78e6d0cfe4c8dfd31ab271adff848df77d53e6ec97f54bab56dde2ad xt/author/lib-arithmetic-unary-_dec.dat SHA256 f5f920dd152f07178ebb084a6e80952b90c7711e747f436dfb7b31642c949907 xt/author/lib-arithmetic-unary-_dec.t SHA256 1c34633b7790e445119757453c6e3697119552458bccb15ffc8873d4e218fc33 xt/author/lib-arithmetic-unary-_dfac.dat SHA256 c2acf32e1d12eefdb24b2c27ab6b2bb2e0d6a999757d6b9f62cb14660b0d0832 xt/author/lib-arithmetic-unary-_dfac.t SHA256 57f3186dd5b8925f3dcf49f721b622bd20f1b9c440e9947942993f8c51c1fd86 xt/author/lib-arithmetic-unary-_fac.dat SHA256 f727848ea6674b21cea458fbc8b16a1eb083bcea28949c04fe4ae9fcdcf8484e xt/author/lib-arithmetic-unary-_fac.t SHA256 c50db521aa2edb08964e8786efcf6aa32d8bbdea044c74d120662d1fb6622296 xt/author/lib-arithmetic-unary-_fib.dat SHA256 b2f82fca9468eaecb8678f45c29909022b02a5f016e0426f35308d87bda1ac21 xt/author/lib-arithmetic-unary-_fib.t SHA256 ded69272216c3aeb1ffc49f7a6f7a15decaec1a9b58b7a788b0308105607ad78 xt/author/lib-arithmetic-unary-_ilog10.t SHA256 eade22df632466f8dbeba003ef39ca2abf1a139151077f50c598301663a53fe0 xt/author/lib-arithmetic-unary-_ilog2.t SHA256 80e1a9a614a37a16d007cf88be0683f6452d0a8e3aef4eb13fba6053dc439e77 xt/author/lib-arithmetic-unary-_inc.dat SHA256 eace71a2c79601988d3ff32271c6832e07c1fd293e06260aebb4cf7893cdeae8 xt/author/lib-arithmetic-unary-_inc.t SHA256 4ae236ecf145b651b5521a3539e00f0942dd48594717a5058b07986b9f7e2191 xt/author/lib-arithmetic-unary-_lucas.dat SHA256 6a8f08c52d5e2ee6f3dce590e73c40b1fb94465df9417c727d829735ab7badad xt/author/lib-arithmetic-unary-_lucas.t SHA256 55b064926e20f6f504f2f83ead49cdb03d443980011b595cff6b85f32fa03703 xt/author/lib-arithmetic-unary-_sqrt.dat SHA256 cae4e76018ab9aa4e243b951107e5d899381a85e8eceb3170e134b0d9b805129 xt/author/lib-arithmetic-unary-_sqrt.t SHA256 7ee208bbac681fc3d5549767f43e31b71cee4024335f62368ebc1e1861c32f4c xt/author/lib-bitwise-_and.dat SHA256 86122f28fccc970007b30fc3448c97e0f0923a22f12785cf4ae252558e8fba69 xt/author/lib-bitwise-_and.t SHA256 9e51be4cd0d00aa9beea437fb6c4a9a6889dbc462b21859136e0b82ac3be9762 xt/author/lib-bitwise-_or.dat SHA256 07c8af551022e402c705ed9ec496587a8a375dd2e92203b743542b0a90412493 xt/author/lib-bitwise-_or.t SHA256 ada25317b9ad4ef18aecb96624d78067c65ae8621c92728c72319a872b91f17d xt/author/lib-bitwise-_sand.dat SHA256 089aeb74ae12970440ac7256dc37dc89cf77a2755611f10cf3b9745f469dd7fd xt/author/lib-bitwise-_sand.t SHA256 4edd6f8c46f25dfa5c2d15cdcab58f7cc1205e78b4c3eee251c0355a154c2c9e xt/author/lib-bitwise-_sor.dat SHA256 d50b5bbbb0b4394b6a98dc0e525e377fa1be60620a172f8cd98abcd3cad40cde xt/author/lib-bitwise-_sor.t SHA256 cd6c826cc2c35ec4729751a1e36024341cffc1d1b1c20acb3201e07f8dd8a81f xt/author/lib-bitwise-_sxor.dat SHA256 61f35365a1bae5acf72daf50906283c30ca73b068b0f0f2a91c2ff7d781b86a2 xt/author/lib-bitwise-_sxor.t SHA256 3ca45377bb69cca5eeac2e9f825474db9eea48eebeaacd3fd68f35ad3b91d3c4 xt/author/lib-bitwise-_xor.dat SHA256 010d68d6829fa1bceed13b2bbb53f77c9cc5333f79cb3def0f46d34c25f964f2 xt/author/lib-bitwise-_xor.t SHA256 1589091d0c7b68e7a3d2f5d59abe96d07394c80cb58b79b90d99e9547ff1087d xt/author/lib-boolean-_is_even.t SHA256 65346536f8371afa7f35d5bbe300a547b0a9035203daf3dc6c3d931abaff3082 xt/author/lib-boolean-_is_odd.t SHA256 667358594a631290d15df3a1527e62368423cd0c069283c59fc0589832a10095 xt/author/lib-boolean-_is_one.t SHA256 5c04a7d1a265c2664016bd347d8f40a7009a03fd5b3217133f6824d5aa19ada6 xt/author/lib-boolean-_is_ten.t SHA256 910ccb928f092e50b0dd45fdb93f584fd702b63e255a3fc125851c454820d034 xt/author/lib-boolean-_is_two.t SHA256 6d2bb5e2405c9563c6877d1ec086a5dce2d61621d04dd8ab5b28a5bd0ed03bcf xt/author/lib-boolean-_is_zero.t SHA256 cd3bfc09bb93df64006255ea7c45940aff2eb864007444b23a7d797f181b908d xt/author/lib-comparison-_acmp.t SHA256 48bda3cf59139648db67b96546fd260c518e3dd97e54e4a3a3a369dd43129b9e xt/author/lib-comparison-_scmp.t SHA256 63568923af657af310f9adca9be11418f169707e646f906193d98a52e4148fda xt/author/lib-constructor-binary-_from_base.dat SHA256 4b173614f1b3a63dbb5140a7685ae8ede70f0f0828799afb72c38d07da60948f xt/author/lib-constructor-binary-_from_base.t SHA256 a955ad729cafc5eac08765cb8e953e4941aae30e3ecfbf914bc42f364b59196a xt/author/lib-constructor-nullary-_one.t SHA256 4d4b42440d1ab70b169d50463684b1ce154d1fb33ae80b851c710722ab382dcd xt/author/lib-constructor-nullary-_ten.t SHA256 1426e79c00527dafcfbb4432d53691e6d29edccd7b3d9b67ae303c1caf80ba40 xt/author/lib-constructor-nullary-_two.t SHA256 fbd60186b2514a40eb31f76ab0a71e1b22d9a475b8c8a61a32113ca62029d0b1 xt/author/lib-constructor-nullary-_zero.t SHA256 8020b6d30cf3f04eebe49f80b7cf64d4af1fda67940bf2255c6f78393467f983 xt/author/lib-constructor-unary-_copy.t SHA256 5c66085f4e14e205f90aa1a17631e83240f0a8b540cc15c4f9255852e6cf8e99 xt/author/lib-constructor-unary-_from_bin.dat SHA256 1c7c086b92b12928b85d74910bcb71081e61d4b02e09a7f820eb9376aaae317d xt/author/lib-constructor-unary-_from_bin.t SHA256 4fa0a85034671dbb748853947ec4d8aba70b694037be495cc6e973ced04e972e xt/author/lib-constructor-unary-_from_bytes.dat SHA256 12451990072f478dfac4007ac6c961682ae11517b8a76270cf0a6842f02d26fe xt/author/lib-constructor-unary-_from_bytes.t SHA256 1d0370578bb232472fcafd6b34a33adc9e0758bdc0f6eeadb355a445eb129698 xt/author/lib-constructor-unary-_from_hex.dat SHA256 01f986f06624be7ad5687927e47b7b8b57b2670199dea4ee88aa0bf63bc9d0f1 xt/author/lib-constructor-unary-_from_hex.t SHA256 2a4ef3e8b1d7d717d2005d485f51f0406fc0f26bcc47affd9d813c6814aafe84 xt/author/lib-constructor-unary-_from_oct.dat SHA256 b0a5079267ba67b5be091cfc64f16c1c438da1745b0bef275b44bb3ea9f59735 xt/author/lib-constructor-unary-_from_oct.t SHA256 616083f9113b13c47dce45dadfb5a2eced03a67fda451f8d4dcb2ae0159f9d39 xt/author/lib-constructor-unary-_new.t SHA256 35bc061734acc262f9ba140a0d552effab7296e547db7af8c001caa3da0af757 xt/author/lib-convert-number-_from_base_num.t SHA256 f672eb59e091f74c4336dbc9c0cfd4823dcbd0c0d1dc9e69d67976be31f144b6 xt/author/lib-convert-number-_num.t SHA256 0b680d9797fb5e223b4095e433bda3199f6ff7997823307cab8b977c2bc98676 xt/author/lib-convert-number-_to_base_num.t SHA256 1f5a3ec8ec8bb2ead1e6b0d6622c061cc2a1df4fe36becc9513e3948e60a1e7c xt/author/lib-convert-string-_as_bin.dat SHA256 69c6358bc878257e7eb0c2f962b2865a2b0d1e660c91aaa87c9034e857cec09e xt/author/lib-convert-string-_as_bin.t SHA256 3cd66e10d8d4276853c8359e8b38ffe0f67b7f9837b0973e891b60b63d99b86b xt/author/lib-convert-string-_as_bytes.dat SHA256 57a45ef4eb720d45bf678f6eab88a8752f4ca567a6699d09e67f33d6a1650f2a xt/author/lib-convert-string-_as_bytes.t SHA256 b0a47dd2d660bfe2c6311440722584999c70b54c49b6f0e7717a70b853a52081 xt/author/lib-convert-string-_as_hex.dat SHA256 3cf40be764bee61e4a0a6273dd596926f465191d39999e2665b7ede66cb492c2 xt/author/lib-convert-string-_as_hex.t SHA256 00b846d21e94a54a08d695e3493ecc178ae85959012683a6a86e9f218d0f962f xt/author/lib-convert-string-_as_oct.dat SHA256 ae4bfa0ced81dbc1dadbf920e24c101bd766ed00236120b4e6399dcee2585213 xt/author/lib-convert-string-_as_oct.t SHA256 a7524882616bbecd4e0099af485bae1066644f7e56fa9cb91e8626f24a0f9047 xt/author/lib-convert-string-_str.t SHA256 b872703b71a41d8c216d89ed0e64c8bdb4a456f951cab8a0842646998a5bf369 xt/author/lib-convert-string-_to_base.dat SHA256 dcee0efe832b70507e6ba363a9031bebdec54ef3cebe5ecee2ce20fec498bfd2 xt/author/lib-convert-string-_to_base.t SHA256 1c9c6a9efe802b92e3ae4efa7bb496511fc02f8a3f8629a7a6ec3c2431a00ebd xt/author/lib-convert-string-_to_bin.dat SHA256 5127c488207271567f729a8f40437d19ad66849df817fd9a306d7049932fe777 xt/author/lib-convert-string-_to_bin.t SHA256 3cd66e10d8d4276853c8359e8b38ffe0f67b7f9837b0973e891b60b63d99b86b xt/author/lib-convert-string-_to_bytes.dat SHA256 cc73447d34841852f897a6cd6c258b196d025a43166f25428ef59518ab2ce6d6 xt/author/lib-convert-string-_to_bytes.t SHA256 967aebe88119aa360d9ca52958f82e5268a5872f0ce49429edf0f72fbc2bffa0 xt/author/lib-convert-string-_to_hex.dat SHA256 2dca2553f0d44fbbe1c7be250abb090438b75edd79c8506806824a0e75e28b88 xt/author/lib-convert-string-_to_hex.t SHA256 17b4cf8bd6fdb73151adbff22093b6942dacdd419752c3b6ee8562958eea4ea5 xt/author/lib-convert-string-_to_oct.dat SHA256 ca979c1b9e0bbebe6c761e0ce02827c4191ab8305a96758b6f0b43e0be8cec8d xt/author/lib-convert-string-_to_oct.t SHA256 2be9a383f6936dca892867c8af5cbb9a07b0ea69ffd4ac4b5d12ba90dd94b79f xt/author/lib-misc-_check.t SHA256 4ed7b68ecf32e0e28fb9cace4b38000dd6e2b9e3268d650703b58da59c248026 xt/author/lib-property-_alen.t SHA256 715d55ed8417b2a71a701776f888136695a39298276f12e6fe9cbf50b53bfeaf xt/author/lib-property-_digit.t SHA256 979e8c571998389d84abd2ebdb82ac0a095a4524cbfacd337b826c0ed63b8a30 xt/author/lib-property-_digitsum.t SHA256 d39cb7dc01f97ae1c4334d675456eab72a6396d93d77322b90c7fba08f06fca4 xt/author/lib-property-_len.t SHA256 cf92c7351c227cd056534ec0deab83ea5dc5fca3db7b9c49416abe55b17bf32d xt/author/lib-property-_zeros.t SHA256 81e18950d31ab63150b101c121e6ad01a1693bf2ea3e0d9bcecc156f5ea20f6a xt/author/lib.ini SHA256 6816b75d56f07bf2f6fcb7805bfb2a039138eec06ec8f1a2ad449601cc200d8d xt/author/lib.t SHA256 cef6083a4cd49fec0c881193f17f30f0b0d265d578809e66c8b10a4e5703b8e0 xt/author/lib_load-mbf-mbi.t SHA256 26e8ea11db97c085e5b6828cf6f870631a853803b570494d823cc985c21a29ba xt/author/lib_load-mbi-mbf.t SHA256 5453944f9354e6837c8d73118cd39584b4ed1a891bdabbe982cbab3498a194b7 xt/author/new-mbf.t SHA256 91c8b856551dbef255d3dcc8d5002d120838edd40d662ec4f0805fecffc12fa2 xt/author/new-mbi.t SHA256 7dd9228d17309fa41285835735a466f2a7f70f56109d99d165850ebc14de610d xt/author/new-mbr.t SHA256 8805abd6b5c03118ea85ec06da5bd147ae0ed9bc3aa64da9c275a23c37fbb150 xt/author/nparts-mbf.t SHA256 30383e09e14b0b7035f2e9252f09bd6d278fbcfe0fb15929d6853443b65a4906 xt/author/nparts-mbi.t SHA256 e1f349b61afae26e73a08ba4927eb44023b176bd2ceab0ca3ffb9905dad90f40 xt/author/numify-mbf.t SHA256 e26abfaf3833a0b5c8f6b1f4da9f6f5c8aebdef98c6699c9522b66d98ecbf944 xt/author/numify-mbi.t SHA256 aaed59450d1d267018e70889d9b47bed046298b74514d0a837f9c6ab5f429b52 xt/author/objectify-mbf.t SHA256 82dcd68d49b9dc8d931c6b1f132431545b3addf7d137074b26e23b0451dec650 xt/author/objectify-mbi.t SHA256 291a9d9b311a223e7790640c436f8f5bcc03380b63bb587aad08d8d793905ef8 xt/author/relop-mbi-mbf.t SHA256 d810fdedd8d8bfa6c233274d66b8c11cf8e1e96991f594b196bd300af3cb29e3 xt/author/relop-mbr.t SHA256 f6c713a94b3419c795e2af8fad14a70777b26e7b696631d6c38daada51c90664 xt/author/req_mbf_binf.t SHA256 65febe4559e6e658b5f74326d8c2dbb697926bab183cb376f82343e6943993bb xt/author/req_mbf_bnan.t SHA256 6d434c0dcd01eb50971fe04b490c8fc4e42669316968db544c689ed8c4609156 xt/author/req_mbf_bone.t SHA256 51ea751b43067cecd1386cd5ae835edfc5196d8d90109fb6b52aebe7c2c80666 xt/author/req_mbf_bpi.t SHA256 536f2b7bd6450917cc86c02d7e7c038081074e37a8d1181e89a152bec6d128a3 xt/author/req_mbf_bzero.t SHA256 e4ee80b84083ef19134e2a49acd27832cedfa4879c5819ca5ea8881c9a7ec70d xt/author/req_mbf_from_bin.t SHA256 366f1132f535824cc0beb4ccecc6c2d3bab739f9340ce00b67ce6653bd2ae0e5 xt/author/req_mbf_from_dec.t SHA256 aeba9f7d500be29044c3f529be69d1be642dd1ab860c8d6ce1cb80da3d69af63 xt/author/req_mbf_from_hex.t SHA256 bd443f261b34db5027175dabc5b16a02796176f082cf3e47da06f014fc9b7fa1 xt/author/req_mbf_from_ieee754.t SHA256 2184014520a4b44da5f716087de85f1bc1fae5d24951e0f63a6173ff7a2f9037 xt/author/req_mbf_from_oct.t SHA256 f1f9823bc451bb2685d4ec95366a56f438c5d949d5880dfc4f29b0b1d2409ae6 xt/author/req_mbf_new.t SHA256 693bd2d38d198230bf4a089372fdb5af6bca2041a098b1b06aec63df8230cd1f xt/author/req_mbi_binf.t SHA256 1042c4188b2d7f6adaf38320f567e16b99aada36b0e9d81fbd066694476df9c5 xt/author/req_mbi_bnan.t SHA256 45503bd7ae9c7b978f53fe9066a8d1fcba0923d8f4a5ea6c5c797a1e3dba7934 xt/author/req_mbi_bone.t SHA256 b1549db63540c89de9680b9c6990aa96fd348576a71b91b7e86121aee3bc1b67 xt/author/req_mbi_bpi.t SHA256 85f0546816e7fd5cad05baed0b524170ab858be9b5b19d66a6bc91ca62fa4105 xt/author/req_mbi_bzero.t SHA256 729a5e267c9b83e5e5936eb86cc1541184eb837442666f0751ac0209be28b453 xt/author/req_mbi_from_base.t SHA256 190a33a0f659242e777d630be2dfbb0dd67ad916b0ca6f9e39c230f7091b8b5b xt/author/req_mbi_from_base_num.t SHA256 b29a46a477cbba04008fc03e46f3779c9932cf8cbba7decec1f62510a8f42536 xt/author/req_mbi_from_bin.t SHA256 c67daf9224587bfca4b6996912d32fd925207eefc23896f2d18a257ac998ba5a xt/author/req_mbi_from_bytes.t SHA256 6ec185a17f0c50d14e49830b1a82700acf68c46a6f870516730090335350cf2e xt/author/req_mbi_from_dec.t SHA256 efee36bb368f2b30267bf0c017ef34df3cf931fd958dbda2726d6ec6d035ed73 xt/author/req_mbi_from_hex.t SHA256 95228b4ed6288d887035f409bc066c898d9f50b9ff755c2062ade488081a346b xt/author/req_mbi_from_oct.t SHA256 1a9e7ad457def3364b9c0dc13644a111216252c29cf1cd6480735860e7a57a3a xt/author/req_mbi_new.t SHA256 a29b7e1c9842fdd5ab1ec1e74ec33ce749d6553f93db19f20305194dbb343f10 xt/author/req_mbr_binf.t SHA256 93a7e0d3027276bbd04fdfcd977822651f0b4922a98b2d7427bac48a06b493c2 xt/author/req_mbr_bnan.t SHA256 816cfc7bfa46c06af106482ee46851439137392f71a5f0736670b18d9a5b270f xt/author/req_mbr_bone.t SHA256 39754d1690fe80d9abd33ca1d9b60cd38d2732085f9186778873728805db90e3 xt/author/req_mbr_bzero.t SHA256 c619af3557bfb759f43ec4b0062ba648f84b44b2a3de814b1ee6f82e417fb142 xt/author/req_mbr_from_bin.t SHA256 00c146103ea442ee47b44da011782e69b0fcac182f7a80f3b23e7155465e22b2 xt/author/req_mbr_from_dec.t SHA256 68e4742e5cc5d232b3d7efb134753e8ca437c5edf71f5c70dad07cef7602031a xt/author/req_mbr_from_hex.t SHA256 ab33ca4d743c211bc3c7c3957560f6000f5ebac81f46a7fa8d7ec9878473ca91 xt/author/req_mbr_from_ieee754.t SHA256 9e6148dcd31bb350c2bde7c4577bfd2dd362fad3aa47108bae20c9c8b2b16c14 xt/author/req_mbr_from_oct.t SHA256 2fac049caf6034f38e646face6679353883cc4010e5c2ebb70b95142d0b081ca xt/author/req_mbr_new.t SHA256 07ed3954d507fa3befd44142da7f23cb90abe5f0bab19cfd7582ca996f615edb xt/author/sparts-mbf.t SHA256 7fb4d9612d591694d3db8ae1cb5549fcec42bbec4a13957bbc2d514388610fe3 xt/author/sparts-mbi.t SHA256 697e650c97e0da6e80f3fabc23a1acc47cc647559a8666f8c21094a05dbeb0e6 xt/author/to_base-mbi.t SHA256 aca767e64ac49a5f48a93132ae175d3cc451c332232cb3aae157d36784b49ab7 xt/author/to_base_num-mbi.t SHA256 17842b4097d17ed44e63a82c2917db560023d1ef5483f34fa24bdad05e8cf420 xt/author/to_bin-mbf.t SHA256 d2e1b46d1cbe7b0c957b25c5dd4eb703f96297328fd053347a429cc76e3dff62 xt/author/to_bin-mbi.t SHA256 21360f8e256a9922b37bb649e97b2091d2e14286d32605af105c16a164b2dbcb xt/author/to_bin-mbr.t SHA256 f5c45df60e82cdca4a8074b6705e63ab36c2df6c354c14e8a5a9c770fccf7076 xt/author/to_bytes-mbi-mbr-mbf.t SHA256 dcc3df224ed81da0b3816191eadc2f358c782652f704ae9ff218fd6a96b7f988 xt/author/to_fp80-mbf.t SHA256 0d336bf57e0d7f9f55c1af02542073a09ff2c2c43f268425bb7ac9ffa1ca5676 xt/author/to_fp80-mbi.t SHA256 385503dd0509626f84f8d623fa9371010354d98cda52fb30ddce5196e093541a xt/author/to_fp80-mbr.t SHA256 e731d6793418cfdc26d5c367d94d5e5424e5a2f552f96882f3e5b78cabc613f1 xt/author/to_hex-mbf.t SHA256 46d32d4b6b89abad3f06f0c56919fe6390c42f7674d2a1b3efc5b52e7995c4fe xt/author/to_hex-mbi.t SHA256 061d4b7e0d82038a46f78f78bd272a997e7d8c6a7cf6e29435fb03adf59ba97e xt/author/to_hex-mbr.t SHA256 f4773770de69cf3919425c6716ed3792c64fd23eca00b4a1aaf800a65b1a9fc5 xt/author/to_ieee754-mbf.t SHA256 9b4374c8548ea7d038e386cfbb64d7d44c795d843a7978a388f9e809177381b7 xt/author/to_ieee754-mbi.t SHA256 62d182a8268cbf5b9bcd2c8ae9c670f261d84a01de96c13f4be3efa8562cd2b0 xt/author/to_ieee754-mbr.t SHA256 38c694392c18576fd350cffb93b6787050079250e3d79edfc2791657251be536 xt/author/to_oct-mbf.t SHA256 a9751a09f81af196c4880d16254788b0906a2c6eb07187cb0fe5378ae4b9607f xt/author/to_oct-mbi.t SHA256 4b7a7f2f079009b6b7237187f1277c295696367e49811c0c71d94dcb914c12d2 xt/author/to_oct-mbr.t SHA256 779bc14c11b25b6ea02338362fbadeb29e5c8544b5fa4cc35284e2cc4e665580 xt/author/upgrade-mbi-mbf.t SHA256 ebeb5352bc11ff2c04dfb45a233e51552c70c814b658f9753384ef5fb6b4675d xt/author/upgrade-mbi-mbr.t SHA256 d1dd1e5d25f4f01abd31a845e0092c8048eb7a30d3235211f7bc90b839d677f3 xt/author/use_accuracy-mbf.t SHA256 ab943f5b8dfb86e1ce52676ee34e664afea6523533756cfc0df3182c290cdecb xt/author/use_accuracy-mbi.t SHA256 ad0cb8a451abf10d07d0fcdcbe0264d5ea825fe8666ca034f68ee1b60677fa52 xt/author/use_accuracy-mbr.t SHA256 a236023522a32f71e370ec976a898d491108f02e31a5fd94a74f904c994f5640 xt/author/use_div_scale-mbf.t SHA256 cf6d30f6af6a7899c16eb240e3c00b10f634bf5ba4380258caf4a9ffc26876c6 xt/author/use_div_scale-mbi.t SHA256 18538f5f1e1810ced26207d52d58ca426c3900e02a8fe6b34ef76cff8cf76be1 xt/author/use_div_scale-mbr.t SHA256 16a220f7496a8b20c3cf9803bb1ff7407dd550b058d565799e6754df7ead682b xt/author/use_lib1_mbf.t SHA256 3ce6e7269e04eb83340ef418026b3ab918fae68beb3da3dd50dc5495fa9d7fa8 xt/author/use_lib1_mbr.t SHA256 e599d09b4ec45bc16ecbce02bd1582032aa439373832f7077794142008dab7af xt/author/use_lib2_mbf.t SHA256 b0f5204cff27fe518b4a9fbf10dc3b7bf905020a899a77b7f2e1463002633d02 xt/author/use_lib2_mbr.t SHA256 f54ae4c68e38df178ca6dde9d1cfafdbfca604ece210329596b57d155856c24b xt/author/use_lib3_mbf.t SHA256 7d0944ffd6fcd303d47e5d27632278cf2935b3e45d93fd6fb3af879a6be49ec7 xt/author/use_lib3_mbr.t SHA256 02dc9edd68230987a46616c2713b47406f29bb4a97ec8ec168967de26242d7cd xt/author/use_lib4_mbf.t SHA256 514e3fe5a3b889a87d6e4e0fdc5eec1af81af18d285153be702e3e839b0ed9ad xt/author/use_lib4_mbr.t SHA256 2d99ec9bbd02778244269af1c7d81cb014b681a70c678d04aeb10ca42aabce0e xt/author/use_lib5_mbf.t SHA256 e3609fd59266b77bf4beec77cf5ad246cd461a63b62de8535fc9f008c8d26c95 xt/author/use_lib5_mbr.t SHA256 6cf6864dd3814b301e0eb2a5383e2b2748b75397d99efd1b37f2dea8d8ea0b8d xt/author/use_lib6_mbf.t SHA256 998b5f30809589474cda1b4fefcdf0dad844516b765d3790bd540948009ba80a xt/author/use_lib6_mbr.t SHA256 fd31b29d0dea4b49d6d874423d25be176a230a20dbf0eb86f8c668d17a99e677 xt/author/use_precision-mbf.t SHA256 10cfe1beaba0263c620006c7bfca72a312bf4cce6288dd062d90dabed57a18d1 xt/author/use_precision-mbi.t SHA256 6f0537cd47c6e09a71e6071ecf413d90fbccdad92ed6708de329cb5dfafede1a xt/author/use_precision-mbr.t SHA256 81014c3218947686751606ff0ec05080e8ab3e5d04bfdf8d5b5347b9eef29d39 xt/author/use_round_mode-mbf.t SHA256 51ab8e5978d9158fd4c65f23b79c5e5db67ac040ae2f7dbe10a43e6190c32f33 xt/author/use_round_mode-mbi.t SHA256 449a90b51def0f9c57201a77d7ac9dc8b4b97939985198b85257871504a8699c xt/author/use_round_mode-mbr.t SHA256 594dcd1659befa019adbd521d4c8c60fc9f1446688b011780655272e6a56b61a xt/release/cpan-changes.t SHA256 befb07cbace153e844bd1aa24309e8136f0265cc97708bfb2f5f427964f7a88d xt/release/dist-manifest.t SHA256 dfba9c5f1e2b047a07c92747e523aceeab0d692a1bf655c2658386e45d9b4311 xt/release/distmeta.t SHA256 2f6418e76023a02d013902d68fb5d7a957bb4ba09b6150b05a4baf2efcd73386 xt/release/git.t SHA256 ab76d17849b85e317470c4307f01cc9f8c4e0bbc78556d61b4fd572f16eca31c xt/release/kwalitee.t SHA256 c6f4a981a4c1990e5f524646375b7b219c29cba04869438e5463c096c808bf09 xt/release/minimum-version.t SHA256 fc50f819a9b8ee7c8bbe367870b438f2b1592e6f2ced3c5d830340bf40fd08dc xt/release/pod-coverage.t SHA256 86c4d367bbff5a1c0f62c01449091b0005552e9e1e90a39beb0f5bc1383a674a xt/release/pod-linkcheck.t SHA256 a53467ddfe6b66ed46c5503a6d63749921157fd2ac6eb32ef2c894feaeda4db2 xt/release/pod-syntax.t SHA256 8744eea2d067b22d9b814abfba7962975e26d678aa359e6da2506645b24b6d5f xt/release/portability.t SHA256 342344fc7ab46bb33766acbb120e5ea0aa2939a21cbffb2b36e0d743245070bb xt/release/unused-vars.t SHA256 d4fa980903622923a45e0c3b2566a8c9425f27648fdd286792f331cb0c99c738 xt/release/version.t SHA256 7aa223732dec88d581e015ac171308b256a9d061ea3c832ad4f7048266226e97 xt/release/whitespaces.t -----BEGIN PGP SIGNATURE----- iQEzBAEBAwAdFiEETKm/EiRoNYMVDAUYZyY+XZ+vXroFAmf78RAACgkQZyY+XZ+v XrqE0Af/QMAH40iJBLJNYyn5Soq/13fV31Brf1iYyoGuGcex2nD6crNEBQpkrGTw NwM+z3bAoK53IaSbiZnzoVQ3bf/pyYHAfn+sjmsHaAVAVGiCYrPOUA5oJy0PW+na EDwu5O+XQ15/c8TBKVSCj8keXgGvGOC8KukO/36oyvfkdgT5AEAnlMGA4JMVzkmq qWpSTpFxP91b+gDGIwu382uR9gvrlKC0GqatpmNVXNAbrv6AN90TmyIuPMC9IRW5 1HyIikkJ3afrIhKngwY+X5NikuLUFZKpVcdUtqGuI71FqkKrRPa9azYyHY9MuooY 8HVjv7c4TC3Sv/jvgq92duReRB9EHg== =neL5 -----END PGP SIGNATURE----- Math-BigInt-2.005003/t/0000755403072340010010000000000014776770355014224 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/00sig.t0000644403072340010010000000205114536617515015321 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; # restrict unsafe constructs use warnings; # enable optional warnings use Test::More; if (!$ENV{TEST_SIGNATURE}) { plan skip_all => "Set the environment variable TEST_SIGNATURE to enable this test."; } elsif (!eval { require Module::Signature; 1 }) { plan skip_all => "Next time around, consider installing Module::Signature, ". "so you can verify the integrity of this distribution."; } elsif (!-e 'SIGNATURE') { plan skip_all => "SIGNATURE not found"; } elsif (!-s 'SIGNATURE') { plan skip_all => "SIGNATURE file empty"; } elsif (!eval { require Socket; Socket::inet_aton('pool.sks-keyservers.net') }) { plan skip_all => "Cannot connect to the keyserver to check module ". "signature"; } else { plan tests => 1; } my $ret = Module::Signature::verify(); SKIP: { skip "Module::Signature cannot verify", 1 if $ret eq Module::Signature::CANNOT_VERIFY(); cmp_ok $ret, '==', Module::Signature::SIGNATURE_OK(), "Valid signature"; } Math-BigInt-2.005003/t/01load.t0000644403072340010010000000133514546553333015461 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; # restrict unsafe constructs use warnings; # enable optional warnings use Test::More tests => 3; BEGIN { use_ok('Math::BigInt'); use_ok('Math::BigFloat'); use_ok('Math::BigRat'); }; my @mods = ('Math::BigInt', 'Math::BigFloat', 'Math::BigRat', 'Math::BigInt::Lib', 'Math::BigInt::Calc', ); diag(""); diag("Testing with Perl $], $^X"); diag(""); diag(sprintf("%12s %s\n", 'Version', 'Module')); diag(sprintf("%12s %s\n", '-------', '------')); for my $mod (@mods) { my $ver = $mod -> VERSION(); my $str = defined($ver) ? $ver : 'undef'; diag(sprintf("%12s %s\n", $str, $mod)); } diag(""); Math-BigInt-2.005003/t/alias.inc0000644403072340010010000000106614546553333016001 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; our $CLASS; # alias subroutine testing, included by sub_ali.t, mbi_ali.t, and mbf_ali.t our $x = $CLASS->new(123); is($x->is_pos(), 1, "$CLASS -> new(123) -> is_pos()"); is($x->is_neg(), 0, "$CLASS -> new(123) -> is_neg()"); is($x->as_int(), 123, "$CLASS -> new(123) -> as_int()"); isa_ok($x->as_int(), 'Math::BigInt', "$CLASS -> new(123) -> as_int() isa Math::BigInt"); $x->bneg(); is($x->is_pos(), 0, "$CLASS -> new(123) -> bneg() -> is_pos()"); is($x->is_neg(), 1, "$CLASS -> new(123) -> bneg() -> is_neg()"); Math-BigInt-2.005003/t/bare_mbf.t0000644403072340010010000000045514536617516016143 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3070; use lib 't'; use Math::BigFloat lib => 'BareCalc'; our ($CLASS, $LIB); $CLASS = "Math::BigFloat"; $LIB = "Math::BigInt::BareCalc"; # backend require './t/bigfltpm.inc'; # all tests here for sharing Math-BigInt-2.005003/t/bare_mbi.t0000644403072340010010000000060514756672324016145 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4294; # tests in require'd file use lib 't'; use Math::BigInt lib => 'BareCalc'; print "# ", Math::BigInt->config('lib'), "\n"; our ($CLASS, $LIB); $CLASS = "Math::BigInt"; $LIB = "Math::BigInt::BareCalc"; # backend require './t/bigintpm.inc'; # perform same tests as bigintpm.t Math-BigInt-2.005003/t/bare_mbr.t0000644403072340010010000000060414546553333016150 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 899; # tests in require'd file use lib 't'; use Math::BigRat lib => 'BareCalc'; print "# ", Math::BigRat->config('lib'), "\n"; our ($CLASS, $LIB); $CLASS = "Math::BigRat"; $LIB = "Math::BigInt::BareCalc"; # backend require './t/bigratpm.inc'; # perform same tests as bigratpm.t Math-BigInt-2.005003/t/bare_mif.t0000644403072340010010000000107414750142746016144 0ustar OSPJADomain Users# -*- mode: perl; -*- # test rounding, accuracy, precision and fallback, round_mode and mixing # of classes under Math::BigInt::BareCalc use strict; use warnings; use Test::More tests => 712 # tests in require'd file + 1; # tests in this file use lib 't'; use Math::BigInt lib => 'BareCalc'; use Math::BigFloat lib => 'BareCalc'; our ($mbi, $mbf); $mbi = 'Math::BigInt'; $mbf = 'Math::BigFloat'; is(Math::BigInt->config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt->config('lib')"); require './t/mbimbf.inc'; Math-BigInt-2.005003/t/bfround_numify.t0000644403072340010010000000047514537274604017434 0ustar OSPJADomain Usersuse strict; use warnings; use Test::More tests => 3; use Math::BigFloat; my $mbf = 'Math::BigFloat'; my $x = $mbf->new('123456.123456'); is($x->numify, 123456.123456, 'numify before bfround'); $x->bfround(-2); is($x->numify, 123456.12, 'numify after bfround'); is($x->bstr, "123456.12", 'bstr after bfround'); Math-BigInt-2.005003/t/bigfltpm.inc0000644403072340010010000013157714776666035016540 0ustar OSPJADomain Users#include this file into another test for subclass testing... use strict; use warnings; our ($CLASS, $LIB); is($CLASS->config('lib'), $LIB, "$CLASS->config('lib')"); my ($x, $y, $z, @args, $try, $want, $got); my ($f, $setup); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $f = $_; next; } if (/^\$/) { $setup = $_; $setup =~ s/\$/\$${CLASS}::/g; # round_mode, div_scale next; } if (m|^(.*?):(/.+)$|) { $want = $2; @args = split(/:/, $1, 99); } else { @args = split(/:/, $_, 99); $want = pop(@args); } $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try .= qq| \$x;|; } elsif ($f =~ /^is_(zero|one|odd|even||(non_)?(negative|positive)|nan|int)$/) { $try .= qq| \$x->$f();|; } elsif ($f eq "is_inf") { $try .= qq| \$x->is_inf("$args[1]");|; } elsif ($f eq "binf") { $try .= qq| \$x->binf("$args[1]");|; } elsif ($f eq "bone") { $try .= length($args[1]) ? qq| \$x->bone("$args[1]");| : qq| \$x->bone();|; } elsif ($f eq "bstr") { $try .= qq| \$x->accuracy($args[1]); \$x->precision($args[2]);|; $try .= ' $x->bstr();'; # some unary ops } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp)$/) { $try .= qq| \$x->$f();|; } elsif ($f =~ /^b[dt]?fac$/) { $try .= qq| \$x->$f();|; } elsif ($f =~ /^(numify|length|as_number)$/) { $try .= qq| \$x->$f();|; } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) { $try .= " \$x->$f();"; # overloaded functions } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) { $try .= qq| \$x = $f(\$x);|; } elsif ($f eq "parts") { # ->bstr() to see if an object is returned $try .= ' ($a, $b) = $x->parts(); $a = $a->bstr(); $b = $b->bstr();'; $try .= ' "$a $b";'; } elsif ($f eq "exponent") { # ->bstr() to see if an object is returned $try .= ' $x->exponent()->bstr();'; } elsif ($f eq "mantissa") { # ->bstr() to see if an object is returned $try .= ' $x->mantissa()->bstr();'; } elsif ($f eq "bpi") { $try .= qq| $CLASS->bpi(\$x);|; } elsif ($f eq "bround") { $try .= qq| $setup; \$x->bround($args[1]);|; } elsif ($f eq "bfround") { $try .= qq| $setup; \$x->bfround($args[1]);|; } elsif ($f eq "bsqrt") { $try .= qq| $setup; \$x->bsqrt();|; } elsif ($f eq "bfac") { $try .= qq| $setup; \$x->bfac();|; } elsif ($f eq "bdfac") { $try .= qq| $setup; \$x->bdfac();|; } elsif ($f eq "blog") { if (defined $args[1] && $args[1] ne '') { $try .= qq| \$y = $CLASS->new($args[1]);|; $try .= qq| $setup; \$x->blog(\$y);|; } else { $try .= qq| $setup; \$x->blog();|; } } else { # binary operators $try .= qq| \$y = $CLASS->new("$args[1]");|; if ($f eq "bgcd") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= qq| $CLASS->bgcd(\$x, \$y|; $try .= qq|, \$z| if defined $args[2]; $try .= qq|);|; } elsif ($f eq "blcm") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= qq| $CLASS->blcm(\$x, \$y|; $try .= qq|, \$z| if defined $args[2]; $try .= qq|);|; } elsif ($f eq "bcmp") { $try .= ' $x->bcmp($y);'; } elsif ($f eq "bacmp") { $try .= ' $x->bacmp($y);'; } elsif ($f eq "bpow") { $try .= ' $x->bpow($y);'; } elsif ($f eq "bnok") { $try .= ' $x->bnok($y);'; } elsif ($f eq "bmfac") { $try .= ' $x->bmfac($y);'; } elsif ($f eq "bcos") { $try .= ' $x->bcos($y);'; } elsif ($f eq "bsin") { $try .= ' $x->bsin($y);'; } elsif ($f eq "batan") { $try .= ' $x->batan($y);'; } elsif ($f eq "broot") { $try .= qq| $setup; \$x->broot(\$y);|; } elsif ($f eq "badd") { $try .= ' $x->badd($y);'; } elsif ($f eq "bsub") { $try .= ' $x->bsub($y);'; } elsif ($f eq "bmul") { $try .= ' $x->bmul($y);'; } elsif ($f eq "bdiv") { $try .= qq| $setup; scalar \$x->bdiv(\$y);|; } elsif ($f eq "bdiv-list") { $try .= qq| $setup; join(",", \$x->bdiv(\$y));|; } elsif ($f eq "brsft") { $try .= ' $x->brsft($y);'; } elsif ($f eq "blsft") { $try .= ' $x->blsft($y);'; } elsif ($f eq "bmod") { $try .= ' $x->bmod($y);'; } else { # Functions with three arguments $try .= qq| \$z = $CLASS->new("$args[2]");|; if ($f eq "bmodpow") { $try .= ' $x->bmodpow($y, $z);'; } elsif ($f eq "bmuladd") { $try .= ' $x->bmuladd($y, $z);'; } elsif ($f eq "batan2") { $try .= ' $x->batan2($y, $z);'; } else { warn qq|Unknown op "$f"|; } } } note "\n$try\n\n"; $got = eval $try; diag "Error: $@\n" if $@; if ($want =~ m|^/(.*)$|) { my $pat = $1; like($got, qr/$pat/, $try); } else { if ($want eq "") { is($got, undef, $try); } else { is($got, $want, $try); if (ref($got) eq $CLASS) { # float numbers are normalized (for now), so mantissa shouldn't # have trailing zeros print $got->_trailing_zeros(), "\n"; is($LIB->_zeros($got->{_m}), 0, $try); } } } # end pattern or string } # end while # check whether $CLASS->new(Math::BigInt->new()) destroys it # ($y == 12 in this case) $x = Math::BigInt->new(1200); $y = $CLASS->new($x); is($y, 1200, qq|\$x = Math::BigInt->new(1200); \$y = $CLASS->new(\$x); # check \$y|); is($x, 1200, qq|\$x = Math::BigInt->new(1200); \$y = $CLASS->new(\$x); # check \$x|); ############################################################################### # Really huge, big, ultra-mega-biggy-monster exponents. Technically, the # exponents should not be limited (they are Math::BigInt objects), but # practically there are a few places were they are limited to a Perl scalar. # This is sometimes for speed, sometimes because otherwise the number wouldn't # fit into your memory (just think of 1e123456789012345678901234567890 + 1!) # anyway. We don't test everything here, but let's make sure it just basically # works. my $monster = '1e1234567890123456789012345678901234567890'; # new and exponent is($CLASS->new($monster)->bsstr(), '1e+1234567890123456789012345678901234567890', qq|$CLASS->new("$monster")->bsstr()|); is($CLASS->new($monster)->exponent(), '1234567890123456789012345678901234567890', qq|$CLASS->new("$monster")->exponent()|); # cmp is($CLASS->new($monster) > 0, 1, qq|$CLASS->new("$monster") > 0|); # sub/mul is($CLASS->new($monster)->bsub($monster), 0, qq|$CLASS->new("$monster")->bsub("$monster")|); is($CLASS->new($monster)->bmul(2)->bsstr(), '2e+1234567890123456789012345678901234567890', qq|$CLASS->new("$monster")->bmul(2)->bsstr()|); # mantissa $monster = '1234567890123456789012345678901234567890e2'; is($CLASS->new($monster)->mantissa(), '123456789012345678901234567890123456789', qq|$CLASS->new("$monster")->mantissa()|); ############################################################################### # zero, inf, one, nan $x = $CLASS->new(2); $x->bzero(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bzero(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bzero(); \$x->{precision}|); $x = $CLASS->new(2); $x->binf(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->binf(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->binf(); \$x->{precision}|); $x = $CLASS->new(2); $x->bone(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bone(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bone(); \$x->{precision}|); $x = $CLASS->new(2); $x->bnan(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bnan(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bnan(); \$x->{precision}|); ############################################################################### # bone/binf etc as plain calls (Lite failed them) is($CLASS->bzero(), 0, qq|$CLASS->bzero()|); is($CLASS->bone(), 1, qq|$CLASS->bone()|); is($CLASS->bone("+"), 1, qq|$CLASS->bone("+")|); is($CLASS->bone("-"), -1, qq|$CLASS->bone("-")|); is($CLASS->bnan(), "NaN", qq|$CLASS->bnan()|); is($CLASS->binf(), "inf", qq|$CLASS->binf()|); is($CLASS->binf("+"), "inf", qq|$CLASS->binf("+")|); is($CLASS->binf("-"), "-inf", qq|$CLASS->binf("-")|); is($CLASS->binf("-inf"), "-inf", qq|$CLASS->binf("-inf")|); $CLASS->accuracy(undef); # reset $CLASS->precision(undef); # reset ############################################################################### # bsqrt() with set global A/P or A/P enabled on $x, also a test whether bsqrt() # correctly modifies $x $x = $CLASS->new(12); $CLASS->precision(-2); $x->bsqrt(); is($x, '3.46', qq|\$x = $CLASS->new(12); $CLASS->precision(-2); \$x->bsqrt();|); $CLASS->precision(undef); $x = $CLASS->new(12); $CLASS->precision(0); $x->bsqrt(); is($x, '3', qq|$CLASS->precision(undef); \$x = $CLASS->new(12);| . qq| $CLASS->precision(0); \$x->bsqrt();|); $CLASS->precision(-3); $x = $CLASS->new(12); $x->bsqrt(); is($x, '3.464', qq|$CLASS->precision(-3); \$x = $CLASS->new(12); \$x->bsqrt();|); { no strict 'refs'; # A and P set => NaN ${${CLASS}.'::accuracy'} = 4; $x = $CLASS->new(12); $x->bsqrt(3); is($x, 'NaN', "A and P set => NaN"); # supplied arg overrides set global $CLASS->precision(undef); $x = $CLASS->new(12); $x->bsqrt(3); is($x, '3.46', "supplied arg overrides set global"); # reset for further tests $CLASS->accuracy(undef); $CLASS->precision(undef); } ############################################################################# # can we call objectify (broken until v1.52) { no strict; $try = '@args' . " = $CLASS" . "::objectify(2, $CLASS, 4, 5);" . ' join(" ", @args);'; $want = eval $try; is($want, "$CLASS 4 5", $try); } ############################################################################# # is_one('-') (broken until v1.64) is($CLASS->new(-1)->is_one(), 0, qq|$CLASS->new(-1)->is_one()|); is($CLASS->new(-1)->is_one("-"), 1, qq|$CLASS->new(-1)->is_one("-")|); ############################################################################# # bug 1/0.5 leaving 2e-0 instead of 2e0 is($CLASS->new(1)->bdiv("0.5")->bsstr(), "2e+0", qq|$CLASS->new(1)->bdiv("0.5")->bsstr()|); ############################################################################### # [perl #30609] bug with $x -= $x not being 0, but 2*$x $x = $CLASS->new(3); $x -= $x; is($x, 0, qq|\$x = $CLASS->new(3); \$x -= \$x;|); $x = $CLASS->new(-3); $x -= $x; is($x, 0, qq|\$x = $CLASS->new(-3); \$x -= \$x;|); $x = $CLASS->new(3); $x += $x; is($x, 6, qq|\$x = $CLASS->new(3); \$x += \$x;|); $x = $CLASS->new(-3); $x += $x; is($x, -6, qq|\$x = $CLASS->new(-3); \$x += \$x;|); $x = $CLASS->new("NaN"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("NaN"); \$x -= \$x;|); $x = $CLASS->new("inf"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("inf"); \$x -= \$x;|); $x = $CLASS->new("-inf"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("-inf"); \$x -= \$x;|); $x = $CLASS->new("NaN"); $x += $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("NaN"); \$x += \$x;|); $x = $CLASS->new("inf"); $x += $x; is($x->is_inf(), 1, qq|\$x = $CLASS->new("inf"); \$x += \$x;|); $x = $CLASS->new("-inf"); $x += $x; is($x->is_inf("-"), 1, qq|\$x = $CLASS->new("-inf"); \$x += \$x;|); $x = $CLASS->new("3.14"); $x -= $x; is($x, 0, qq|\$x = $CLASS->new("3.14"); \$x -= \$x;|); $x = $CLASS->new("-3.14"); $x -= $x; is($x, 0, qq|\$x = $CLASS->new("-3.14"); \$x -= \$x;|); $x = $CLASS->new("3.14"); $x += $x; is($x, "6.28", qq|$x = $CLASS->new("3.14"); $x += $x;|); $x = $CLASS->new("-3.14"); $x += $x; is($x, "-6.28", qq|$x = $CLASS->new("-3.14"); $x += $x;|); $x = $CLASS->new("3.14"); $x *= $x; is($x, "9.8596", qq|$x = $CLASS->new("3.14"); $x *= $x;|); $x = $CLASS->new("-3.14"); $x *= $x; is($x, "9.8596", qq|$x = $CLASS->new("-3.14"); $x *= $x;|); $x = $CLASS->new("3.14"); $x /= $x; is($x, "1", qq|$x = $CLASS->new("3.14"); $x /= $x;|); $x = $CLASS->new("-3.14"); $x /= $x; is($x, "1", qq|$x = $CLASS->new("-3.14"); $x /= $x;|); $x = $CLASS->new("3.14"); $x %= $x; is($x, "0", qq|$x = $CLASS->new("3.14"); $x %= $x;|); $x = $CLASS->new("-3.14"); $x %= $x; is($x, "0", qq|$x = $CLASS->new("-3.14"); $x %= $x;|); ############################################################################### # the following two were reported by "kenny" via hotmail.com: #perl -MMath::BigFloat -wle 'print Math::BigFloat->new(0)->bpow(".1")' #Use of uninitialized value in numeric le (<=) at BigFloat.pm line 1851. $x = $CLASS->new(0); $y = $CLASS->new("0.1"); is($x ** $y, 0, qq|\$x = $CLASS->new(0); \$y = $CLASS->new("0.1"); \$x ** \$y|); #perl -MMath::BigFloat -lwe 'print Math::BigFloat->new(".222222222222222222222222222222222222222222")->bceil()' #Use of uninitialized value in numeric le (<=) at BigFloat.pm line 1851. $x = $CLASS->new(".222222222222222222222222222222222222222222"); is($x->bceil(), 1, qq|$x = $CLASS->new(".222222222222222222222222222222222222222222");| . qq| $x->bceil();|); ############################################################################### # test **=, <<=, >>= # ((2**148)+1)/17 $x = $CLASS->new(2); $x **= 148; $x++; $x->bdiv(17, 60)->bfloor(); $x->accuracy(undef); is($x, "20988936657440586486151264256610222593863921", "value of ((2**148)+1)/17"); is($x->length(), length("20988936657440586486151264256610222593863921"), "number of digits in ((2**148)+1)/17"); $x = $CLASS->new("2"); $y = $CLASS->new("18"); is($x <<= $y, 2 << 18, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18");| . q| $x <<= $y|); is($x, 2 << 18, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18");| . q| $x <<= $y; $x|); is($x >>= $y, 2, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18");| . q| $x <<= $y; $x >>= $y|); is($x, 2, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18");| . q| $x <<= $y; $x >>= $y; $x|); $x = $CLASS->new("2"); $y = $CLASS->new("18.2"); # 2 * (2 ** int(18.2)); $x <<= $y; is($x, 524288, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18.2");| . q| $x <<= $y|); # 2 * (2 ** int(18.2)) / (2 ** int(18.2)) => 2 is($x >>= $y, 2, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18.2");| . q| $x <<= $y; $x >>= $y|); is($x, 2, qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18.2");| . q| $x <<= $y; $x >>= $y; $x|); __DATA__ &bgcd inf:12:NaN -inf:12:NaN 12:inf:NaN 12:-inf:NaN inf:inf:NaN inf:-inf:NaN -inf:-inf:NaN abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +0:+1:1 +1:+0:1 +1:+1:1 +2:+3:1 +3:+2:1 -3:+2:1 -3:-2:1 -144:-60:12 144:-60:12 144:60:12 100:625:25 4096:81:1 1034:804:2 27:90:56:1 27:90:54:9 &blcm abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +1:+0:0 +0:+1:0 +27:+90:270 +1034:+804:415668 $div_scale = 40 &bcos NaN:10:NaN +inf:10:NaN -inf:10:NaN 1.2:10:0.3623577545 2.4:12:-0.737393715541 0:10:1.000000000 0:20:1.0000000000000000000 1:10:0.5403023059 1:12:0.540302305868 &bsin NaN:10:NaN +inf:10:NaN -inf:10:NaN 1:10:0.8414709848 0:10:0 0:20:0 2.1:12:0.863209366649 1.2:13:0.9320390859672 0.2:13:0.1986693307951 3.2:12:-0.0583741434276 &batan NaN:10:NaN inf:14:1.5707963267949 -inf:14:-1.5707963267949 0:14:0 0:10:0 0.1:14:0.099668652491162 0.2:13:0.1973955598499 0.2:14:0.19739555984988 0.5:14:0.46364760900081 1:14:0.78539816339744 -1:14:-0.78539816339744 1.5:14:0.98279372324732 2.0:14:1.1071487177941 2.5:14:1.1902899496825 3.0:14:1.2490457723982 6.0:14:1.4056476493803 12:14:1.4876550949064 24:14:1.5291537476963 48:14:1.5499660067587 &batan2 NaN:1:10:NaN NaN:NaN:10:NaN 1:NaN:10:NaN -inf:-inf:14:-2.3561944901923 -inf:-1:14:-1.5707963267949 -inf:0:14:-1.5707963267949 -inf:+1:14:-1.5707963267949 -inf:+inf:14:-0.78539816339745 -1:-inf:14:-3.1415926535898 -1:-1:14:-2.3561944901923 -1:0:14:-1.5707963267949 -1:+1:14:-0.78539816339745 -1:+inf:14:0 0:-inf:14:3.1415926535898 0:-1:14:3.1415926535898 0:0:14:0 0:+1:14:0 0:+inf:14:0 +1:-inf:14:3.1415926535898 +1:-1:14:2.3561944901923 +1:0:14:1.5707963267949 +1:+1:14:0.78539816339745 +1:+inf:14:0 +inf:-inf:14:2.3561944901923 +inf:-1:14:1.5707963267949 +inf:0:14:1.5707963267949 +inf:+1:14:1.5707963267949 +inf:+inf:14:0.78539816339745 1:5:13:0.1973955598499 1:5:14:0.19739555984988 0:2:14:0 5:0:14:1.5707963267949 -1:0:11:-1.5707963268 -2:0:77:-1.5707963267948966192313216916397514420985846996875529104874722961539082031431 2:0:77:1.5707963267948966192313216916397514420985846996875529104874722961539082031431 -1:5:14:-0.19739555984988 1:5:14:0.19739555984988 -1:8:14:-0.12435499454676 1:8:14:0.12435499454676 # test an argument X > 1 and one X < 1 1:2:24:0.463647609000806116214256 2:1:14:1.1071487177941 -2:1:14:-1.1071487177941 &bpi 150:3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940813 77:3.1415926535897932384626433832795028841971693993751058209749445923078164062862 +0:3.141592653589793238462643383279502884197 11:3.1415926536 &bnok +inf:10:inf NaN:NaN:NaN NaN:1:NaN 1:NaN:NaN 1:1:1 # k > n 1:2:0 2:3:0 # k < 0 1:-2:0 # 7 over 3 = 35 7:3:35 7:6:7 100:90:17310309456440 100:95:75287520 2:0:1 7:0:1 2:1:2 &blog 0::-inf -1::NaN -2::NaN # base > 0, base != 1 2:-1:NaN 2:0:0 2:1:NaN # log(1) 1::0 1:1:NaN 1:2:0 2::0.6931471805599453094172321214581765680755 2.718281828::0.9999999998311266953289851340574956564911 $div_scale = 20 2.718281828::0.99999999983112669533 $div_scale = 15 123::4.81218435537242 10::2.30258509299405 1000::6.90775527898214 100::4.60517018598809 2::0.693147180559945 3.1415::1.14470039286086 12345::9.42100640177928 0.001::-6.90775527898214 # bug until v1.71: 10:10:1 100:100:1 # reset for further tests $div_scale = 40 1::0 &brsft invalid:2:NaN 0:2:0 1:1:0.5 2:1:1 4:1:2 123:1:61.5 32:3:4 &blsft invalid:0:NaN 2:1:4 4:3:32 5:3:40 1:2:4 0:5:0 &bnorm 1:1 -0:0 invalid:NaN +inf:inf -inf:-inf 123:123 -123.4567:-123.4567 # invalid inputs .2E-3.:NaN 1e3e4:NaN # strange, but valid .2E2:20 1.E3:1000 # some inputs that result in zero 0e0:0 +0e0:0 +0e+0:0 -0e+0:0 0e-0:0 -0e-0:0 +0e-0:0 000:0 00e2:0 00e02:0 000e002:0 000e1230:0 00e-3:0 00e+3:0 00e-03:0 00e+03:0 -000:0 -00e2:0 -00e02:0 -000e002:0 -000e1230:0 -00e-3:0 -00e+3:0 -00e-03:0 -00e+03:0 &as_number 0:0 1:1 1.2:1 2.345:2 -2:-2 -123.456:-123 -200:-200 -inf:-inf inf:inf NaN:NaN 71243225429896467497217836789578596379:71243225429896467497217836789578596379 # test for bug in brsft() not handling cases that return 0 0.000641:0 0.0006412:0 0.00064123:0 0.000641234:0 0.0006412345:0 0.00064123456:0 0.000641234567:0 0.0006412345678:0 0.00064123456789:0 0.1:0 0.01:0 0.001:0 0.0001:0 0.00001:0 0.000001:0 0.0000001:0 0.00000001:0 0.000000001:0 0.0000000001:0 0.00000000001:0 0.12345:0 0.123456:0 0.1234567:0 0.12345678:0 0.123456789:0 &binf 1:+:inf 2:-:-inf 3:abc:inf &as_hex 128:0x80 -128:-0x80 0:0x0 -0:0x0 1:0x1 0x123456789123456789:0x123456789123456789 +inf:inf -inf:-inf invalid:NaN &as_bin 128:0b10000000 -128:-0b10000000 0:0b0 -0:0b0 1:0b1 0b1010111101010101010110110110110110101:0b1010111101010101010110110110110110101 0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001 +inf:inf -inf:-inf invalid:NaN &as_oct 128:0200 -128:-0200 0:00 -0:00 1:01 0b1010111101010101010110110110110110101:01275252666665 0x123456789123456789:044321263611044321263611 +inf:inf -inf:-inf invalid:NaN &to_hex 128:80 -128:-80 0:0 -0:0 1:1 0x123456789123456789:123456789123456789 +inf:inf -inf:-inf invalid:NaN &to_bin 128:10000000 -128:-10000000 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1010111101010101010110110110110110101 0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001 +inf:inf -inf:-inf invalid:NaN &to_oct 128:200 -128:-200 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1275252666665 0x123456789123456789:44321263611044321263611 +inf:inf -inf:-inf invalid:NaN &numify # uses bsstr() so 5 => 5e+0 to be compatible w/ Perls output 0:0 +1:1 1234:1234 -5:-5 100:100 -100:-100 &bnan abc:NaN 2:NaN -2:NaN 0:NaN &bone 2:+:1 -2:-:-1 -2:+:1 2:-:-1 0::1 -2::1 abc::1 2::1 &bsstr +inf:inf -inf:-inf abcfsstr:NaN -abcfsstr:NaN 1234.567:1234567e-3 123:123e+0 -5:-5e+0 -100:-1e+2 &bstr +inf:::inf -inf:::-inf abcfstr:::NaN 1234.567:9::1234.56700 1234.567::-6:1234.567000 12345:5::12345 0.001234:6::0.00123400 0.001234::-8:0.00123400 0:4::0 0::-4:0.0000 &bnorm inf:inf +inf:inf -inf:-inf +infinity:inf +-inf:NaN abc:NaN 1 a:NaN 1bcd2:NaN 11111b:NaN +1z:NaN -1z:NaN 0e999:0 0e-999:0 -0e999:0 -0e-999:0 0:0 +0:0 +00:0 +0_0_0:0 000000_0000000_00000:0 -0:0 -0000:0 +1:1 +01:1 +001:1 +00000100000:100000 123456789:123456789 -1:-1 -01:-1 -001:-1 -123456789:-123456789 -00000100000:-100000 123.456a:NaN 123.456:123.456 0.01:0.01 .002:0.002 +.2:0.2 -0.0003:-0.0003 -.0000000004:-0.0000000004 123456E2:12345600 123456E-2:1234.56 -123456E2:-12345600 -123456E-2:-1234.56 1e1:10 2e-11:0.00000000002 # exercise _split .02e-1:0.002 000001:1 -00001:-1 -1:-1 000.01:0.01 -000.0023:-0.0023 1.1e1:11 -3e111:-3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -4e-1111:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 &bpow # abc:123.456:NaN 123.456:abc:NaN # -inf:-inf:0 -inf:-3:0 -inf:-2:0 -inf:-1.5:0 -inf:-1:0 -inf:-0.5:0 -inf:0:NaN -inf:0.5:inf # directed infinity -inf:1:-inf -inf:1.5:inf # directed infinity -inf:2:inf -inf:3:-inf -inf:inf:inf # complex infinity -inf:NaN:NaN # -3:-inf:0 -3:-3:-0.03703703703703703703703703703703703703704 -3:-2:0.1111111111111111111111111111111111111111 -3:-1.5:NaN -3:-1:-0.3333333333333333333333333333333333333333 -3:-0.5:NaN -3:0:1 -3:0.5:NaN -3:1:-3 -3:1.5:NaN -3:2:9 -3:3:-27 -3:inf:inf # complex infinity -3:NaN:NaN # -2:-inf:0 -2:-3:-0.125 -2:-2:0.25 -2:-1.5:NaN -2:-1:-0.5 -2:-0.5:NaN -2:0:1 -2:0.5:NaN -2:1:-2 -2:1.5:NaN -2:2:4 -2:3:-8 -2:inf:inf # complex infinity -2:NaN:NaN # -1.5:-inf:0 -1.5:-3:-0.2962962962962962962962962962962962962963 -1.5:-2:0.4444444444444444444444444444444444444444 -1.5:-1.5:NaN -1.5:-1:-0.6666666666666666666666666666666666666667 -1.5:-0.5:NaN -1.5:0:1 -1.5:0.5:NaN -1.5:1:-1.5 -1.5:1.5:NaN -1.5:2:2.25 -1.5:3:-3.375 -1.5:inf:inf # complex infinity -1.5:NaN:NaN # -1:-inf:NaN -1:-3:-1 -1:-2:1 -1:-1.5:NaN -1:-1:-1 -1:-0.5:NaN -1:0:1 -1:0.5:NaN -1:1:-1 -1:1.5:NaN -1:2:1 -1:3:-1 -1:inf:NaN -1:NaN:NaN # -0.5:-inf:inf # complex infinity -0.5:-3:-8 -0.5:-2:4 -0.5:-1.5:NaN -0.5:-1:-2 -0.5:-0.5:NaN -0.5:0:1 -0.5:0.5:NaN -0.5:1:-0.5 -0.5:1.5:NaN -0.5:2:0.25 -0.5:3:-0.125 -0.5:inf:0 -0.5:NaN:NaN # 0:-inf:inf # complex infinity 0:-3:inf # complex infinity 0:-2:inf # complex infinity 0:-1.5:inf # complex infinity 0:-1:inf # complex infinity 0:-0.5:inf # complex infinity 0:0:1 0:0.5:0 0:1:0 0:1.5:0 0:2:0 0:3:0 0:inf:0 0:NaN:NaN # 0.5:-inf:inf 0.5:-3:8 0.5:-2:4 0.5:-1.5:2.828427124746190097603377448419396157139 0.5:-1:2 0.5:-0.5:1.41421356237309504880168872420969807857 0.5:0:1 0.5:0.5:0.7071067811865475244008443621048490392848 0.5:1:0.5 0.5:1.5:0.3535533905932737622004221810524245196424 0.5:2:0.25 0.5:3:0.125 0.5:inf:0 0.5:NaN:NaN # 1:-inf:1 1:-3:1 1:-2:1 1:-1.5:1 1:-1:1 1:-0.5:1 1:0:1 1:0.5:1 1:1:1 1:1.5:1 1:2:1 1:3:1 1:inf:1 1:NaN:NaN # 1.5:-inf:0 1.5:-3:0.2962962962962962962962962962962962962963 1.5:-2:0.4444444444444444444444444444444444444444 1.5:-1.5:0.5443310539518173551549520166013091982147 1.5:-1:0.6666666666666666666666666666666666666667 1.5:-0.5:0.816496580927726032732428024901963797322 1.5:0:1 1.5:0.5:1.224744871391589049098642037352945695983 1.5:1:1.5 1.5:1.5:1.837117307087383573647963056029418543974 1.5:2:2.25 1.5:3:3.375 1.5:inf:inf 1.5:NaN:NaN # 2:-inf:0 2:-3:0.125 2:-2:0.25 2:-1.5:0.3535533905932737622004221810524245196424 2:-1:0.5 2:-0.5:0.7071067811865475244008443621048490392848 2:0:1 2:0.5:1.41421356237309504880168872420969807857 2:1:2 2:1.5:2.828427124746190097603377448419396157139 2:2:4 2:3:8 2:inf:inf 2:NaN:NaN # 3:-inf:0 3:-3:0.03703703703703703703703703703703703703704 3:-2:0.1111111111111111111111111111111111111111 3:-1.5:0.1924500897298752548363829268339858185492 3:-1:0.3333333333333333333333333333333333333333 3:-0.5:0.5773502691896257645091487805019574556476 3:0:1 3:0.5:1.732050807568877293527446341505872366943 3:1:3 3:1.5:5.196152422706631880582339024517617100828 3:2:9 3:3:27 3:inf:inf 3:NaN:NaN # inf:-inf:0 inf:-3:0 inf:-2:0 inf:-1.5:0 inf:-1:0 inf:-0.5:0 inf:0:NaN inf:0.5:inf inf:1:inf inf:1.5:inf inf:2:inf inf:3:inf inf:inf:inf inf:NaN:NaN # NaN:-inf:NaN NaN:-3:NaN NaN:-2:NaN NaN:-1.5:NaN NaN:-1:NaN NaN:-0.5:NaN NaN:0:NaN NaN:0.5:NaN NaN:1:NaN NaN:1.5:NaN NaN:2:NaN NaN:3:NaN NaN:inf:NaN NaN:NaN:NaN # 123.456:2:15241.383936 128:-2:0.00006103515625 # +inf:123.45:inf -inf:123.45:inf # directed infinity +inf:-123.45:0 -inf:-123.45:0 #2:0.2:1.148698354997035006798626946777927589444 #6:1.5:14.6969384566990685891837044482353483518 $div_scale = 20 #62.5:12.5:26447206647554886213592.3959144 $div_scale = 40 &bneg invalid:NaN +inf:-inf -inf:inf +0:0 +1:-1 -1:1 +123456789:-123456789 -123456789:123456789 +123.456789:-123.456789 -123456.789:123456.789 &babs invalid:NaN +inf:inf -inf:inf +0:0 +1:1 -1:1 +123456789:123456789 -123456789:123456789 +123.456789:123.456789 -123456.789:123456.789 &bround $round_mode = "trunc" +inf:5:inf -inf:5:-inf 0:5:0 invalid:5:NaN +10123456789:5:10123000000 -10123456789:5:-10123000000 +10123456789.123:5:10123000000 -10123456789.123:5:-10123000000 +10123456789:9:10123456700 -10123456789:9:-10123456700 +101234500:6:101234000 -101234500:6:-101234000 $round_mode = "zero" +20123456789:5:20123000000 -20123456789:5:-20123000000 +20123456789.123:5:20123000000 -20123456789.123:5:-20123000000 +20123456789:9:20123456800 -20123456789:9:-20123456800 +201234500:6:201234000 -201234500:6:-201234000 $round_mode = "+inf" +30123456789:5:30123000000 -30123456789:5:-30123000000 +30123456789.123:5:30123000000 -30123456789.123:5:-30123000000 +30123456789:9:30123456800 -30123456789:9:-30123456800 +301234500:6:301235000 -301234500:6:-301234000 $round_mode = "-inf" +40123456789:5:40123000000 -40123456789:5:-40123000000 +40123456789.123:5:40123000000 -40123456789.123:5:-40123000000 +40123456789:9:40123456800 -40123456789:9:-40123456800 +401234500:6:401234000 -401234500:6:-401235000 $round_mode = "odd" +50123456789:5:50123000000 -50123456789:5:-50123000000 +50123456789.123:5:50123000000 -50123456789.123:5:-50123000000 +50123456789:9:50123456800 -50123456789:9:-50123456800 +501234500:6:501235000 -501234500:6:-501235000 $round_mode = "even" +60123456789:5:60123000000 -60123456789:5:-60123000000 +60123456789:9:60123456800 -60123456789:9:-60123456800 +601234500:6:601234000 -601234500:6:-601234000 +60123456789.0123:5:60123000000 -60123456789.0123:5:-60123000000 $round_mode = "common" +60123456789:5:60123000000 -60123456789:5:-60123000000 +60123456789:6:60123500000 -60123456789:6:-60123500000 +60123456789:9:60123456800 -60123456789:9:-60123456800 +601234500:6:601235000 -601234500:6:-601235000 +601234400:6:601234000 -601234400:6:-601234000 +601234600:6:601235000 -601234600:6:-601235000 +601234300:6:601234000 +60123456789.0123:5:60123000000 -60123456789.0123:5:-60123000000 &bfround $round_mode = "trunc" +inf:5:inf -inf:5:-inf 0:5:0 invalid:5:NaN +1.23:-1:1.2 +1.234:-1:1.2 +1.2345:-1:1.2 +1.23:-2:1.23 +1.234:-2:1.23 +1.2345:-2:1.23 +1.23:-3:1.230 +1.234:-3:1.234 +1.2345:-3:1.234 -1.23:-1:-1.2 +1.27:-1:1.2 -1.27:-1:-1.2 +1.25:-1:1.2 -1.25:-1:-1.2 +1.35:-1:1.3 -1.35:-1:-1.3 -0.0061234567890:-1:0.0 -0.0061:-1:0.0 -0.00612:-1:0.0 -0.00612:-2:0.00 -0.006:-1:0.0 -0.006:-2:0.00 -0.0006:-2:0.00 -0.0006:-3:0.000 -0.0065:-3:/-0\.006|-6e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:0 0.51:0:0 0.41:0:0 $round_mode = "zero" +2.23:-1:/2.2(?:0{5}\d+)? -2.23:-1:/-2.2(?:0{5}\d+)? +2.27:-1:/2.(?:3|29{5}\d+) -2.27:-1:/-2.(?:3|29{5}\d+) +2.25:-1:/2.2(?:0{5}\d+)? -2.25:-1:/-2.2(?:0{5}\d+)? +2.35:-1:/2.(?:3|29{5}\d+) -2.35:-1:/-2.(?:3|29{5}\d+) -0.0065:-1:0.0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-6e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:0 0.51:0:1 0.41:0:0 $round_mode = "+inf" +3.23:-1:/3.2(?:0{5}\d+)? -3.23:-1:/-3.2(?:0{5}\d+)? +3.27:-1:/3.(?:3|29{5}\d+) -3.27:-1:/-3.(?:3|29{5}\d+) +3.25:-1:/3.(?:3|29{5}\d+) -3.25:-1:/-3.2(?:0{5}\d+)? +3.35:-1:/3.(?:4|39{5}\d+) -3.35:-1:/-3.(?:3|29{5}\d+) -0.0065:-1:0.0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-6e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:1 0.51:0:1 0.41:0:0 $round_mode = "-inf" +4.23:-1:/4.2(?:0{5}\d+)? -4.23:-1:/-4.2(?:0{5}\d+)? +4.27:-1:/4.(?:3|29{5}\d+) -4.27:-1:/-4.(?:3|29{5}\d+) +4.25:-1:/4.2(?:0{5}\d+)? -4.25:-1:/-4.(?:3|29{5}\d+) +4.35:-1:/4.(?:3|29{5}\d+) -4.35:-1:/-4.(?:4|39{5}\d+) -0.0065:-1:0.0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.007|-7e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:0 0.51:0:1 0.41:0:0 $round_mode = "odd" +5.23:-1:/5.2(?:0{5}\d+)? -5.23:-1:/-5.2(?:0{5}\d+)? +5.27:-1:/5.(?:3|29{5}\d+) -5.27:-1:/-5.(?:3|29{5}\d+) +5.25:-1:/5.(?:3|29{5}\d+) -5.25:-1:/-5.(?:3|29{5}\d+) +5.35:-1:/5.(?:3|29{5}\d+) -5.35:-1:/-5.(?:3|29{5}\d+) -0.0065:-1:0.0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.007|-7e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:1 0.51:0:1 0.41:0:0 $round_mode = "even" +6.23:-1:/6.2(?:0{5}\d+)? -6.23:-1:/-6.2(?:0{5}\d+)? +6.27:-1:/6.(?:3|29{5}\d+) -6.27:-1:/-6.(?:3|29{5}\d+) +6.25:-1:/6.(?:2(?:0{5}\d+)?|29{5}\d+) -6.25:-1:/-6.(?:2(?:0{5}\d+)?|29{5}\d+) +6.35:-1:/6.(?:4|39{5}\d+|29{8}\d+) -6.35:-1:/-6.(?:4|39{5}\d+|29{8}\d+) -0.0065:-1:0.0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-7e-03 -0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 -0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 0.05:0:0 0.5:0:0 0.51:0:1 0.41:0:0 0.01234567:-3:0.012 0.01234567:-4:0.0123 0.01234567:-5:0.01235 0.01234567:-6:0.012346 0.01234567:-7:0.0123457 0.01234567:-8:0.01234567 0.01234567:-9:0.012345670 0.01234567:-12:0.012345670000 &bcmp invalid:invalid: invalid:+0: +0:invalid: +0:+0:0 -1:+0:-1 +0:-1:1 +1:+0:1 +0:+1:-1 -1:+1:-1 +1:-1:1 -1:-1:0 +1:+1:0 -1.1:0:-1 +0:-1.1:1 +1.1:+0:1 +0:+1.1:-1 +123:+123:0 +123:+12:1 +12:+123:-1 -123:-123:0 -123:-12:-1 -12:-123:1 +123:+124:-1 +124:+123:1 -123:-124:1 -124:-123:-1 0:0.01:-1 0:0.0001:-1 0:-0.0001:1 0:-0.1:1 0.1:0:1 0.00001:0:1 -0.0001:0:-1 -0.1:0:-1 0:0.0001234:-1 0:-0.0001234:1 0.0001234:0:1 -0.0001234:0:-1 0.0001:0.0005:-1 0.0005:0.0001:1 0.005:0.0001:1 0.001:0.0005:1 0.000001:0.0005:-1 0.00000123:0.0005:-1 0.00512:0.0001:1 0.005:0.000112:1 0.00123:0.0005:1 1.5:2:-1 2:1.5:1 1.54321:234:-1 234:1.54321:1 1e1234567890987654321:1e1234567890987654320:1 1e-1234567890987654321:1e-1234567890987654320:-1 # infinity -inf:5432112345:-1 +inf:5432112345:1 -inf:-5432112345:-1 +inf:-5432112345:1 -inf:54321.12345:-1 +inf:54321.12345:1 -inf:-54321.12345:-1 +inf:-54321.12345:1 +inf:+inf:0 -inf:-inf:0 +inf:-inf:1 -inf:+inf:-1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: &bacmp invalid:invalid: invalid:+0: +0:invalid: +0:+0:0 -1:+0:1 +0:-1:-1 +1:+0:1 +0:+1:-1 -1:+1:0 +1:-1:0 -1:-1:0 +1:+1:0 -1.1:0:1 +0:-1.1:-1 +1.1:+0:1 +0:+1.1:-1 +123:+123:0 +123:+12:1 +12:+123:-1 -123:-123:0 -123:-12:1 -12:-123:-1 +123:+124:-1 +124:+123:1 -123:-124:-1 -124:-123:1 0:0.01:-1 0:0.0001:-1 0:-0.0001:-1 0:-0.1:-1 0.1:0:1 0.00001:0:1 -0.0001:0:1 -0.1:0:1 0:0.0001234:-1 0:-0.0001234:-1 0.0001234:0:1 -0.0001234:0:1 0.0001:0.0005:-1 0.0005:0.0001:1 0.005:0.0001:1 0.001:0.0005:1 0.000001:0.0005:-1 0.00000123:0.0005:-1 0.00512:0.0001:1 0.005:0.000112:1 0.00123:0.0005:1 1.5:2:-1 2:1.5:1 1.54321:234:-1 234:1.54321:1 # infinity -inf:5432112345:1 +inf:5432112345:1 -inf:-5432112345:1 +inf:-5432112345:1 -inf:54321.12345:1 +inf:54321.12345:1 -inf:-54321.12345:1 +inf:-54321.12345:1 +inf:+inf:0 -inf:-inf:0 +inf:-inf:0 -inf:+inf:0 5:inf:-1 -1:inf:-1 5:-inf:-1 -1:-inf:-1 # return undef +inf:invalid: invalid:inf: -inf:invalid: invalid:-inf: &bdec invalid:NaN +inf:inf -inf:-inf +0:-1 +1:0 -1:-2 1.23:0.23 -1.23:-2.23 100:99 101:100 -100:-101 -99:-100 -98:-99 99:98 &binc invalid:NaN +inf:inf -inf:-inf +0:1 +1:2 -1:0 1.23:2.23 -1.23:-0.23 100:101 -100:-99 -99:-98 -101:-100 99:100 &badd abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:NaN -inf:+inf:NaN +inf:+inf:inf -inf:-inf:-inf invalid:+inf:NaN invalid:+inf:NaN +inf:invalid:NaN -inf:invalid:NaN +0:+0:0 +1:+0:1 +0:+1:1 +1:+1:2 -1:+0:-1 +0:-1:-1 -1:-1:-2 -1:+1:0 +1:-1:0 +9:+1:10 +99:+1:100 +999:+1:1000 +9999:+1:10000 +99999:+1:100000 +999999:+1:1000000 +9999999:+1:10000000 +99999999:+1:100000000 +999999999:+1:1000000000 +9999999999:+1:10000000000 +99999999999:+1:100000000000 +10:-1:9 +100:-1:99 +1000:-1:999 +10000:-1:9999 +100000:-1:99999 +1000000:-1:999999 +10000000:-1:9999999 +100000000:-1:99999999 +1000000000:-1:999999999 +10000000000:-1:9999999999 +123456789:+987654321:1111111110 -123456789:+987654321:864197532 -123456789:-987654321:-1111111110 +123456789:-987654321:-864197532 0.001234:0.0001234:0.0013574 &bsub abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:inf -inf:+inf:-inf +inf:+inf:NaN -inf:-inf:NaN invalid:+inf:NaN invalid:+inf:NaN +inf:invalid:NaN -inf:invalid:NaN +0:+0:0 +1:+0:1 +0:+1:-1 +1:+1:0 -1:+0:-1 +0:-1:1 -1:-1:0 -1:+1:-2 +1:-1:2 +9:+1:8 +99:+1:98 +999:+1:998 +9999:+1:9998 +99999:+1:99998 +999999:+1:999998 +9999999:+1:9999998 +99999999:+1:99999998 +999999999:+1:999999998 +9999999999:+1:9999999998 +99999999999:+1:99999999998 +10:-1:11 +100:-1:101 +1000:-1:1001 +10000:-1:10001 +100000:-1:100001 +1000000:-1:1000001 +10000000:-1:10000001 +100000000:-1:100000001 +1000000000:-1:1000000001 +10000000000:-1:10000000001 +123456789:+987654321:-864197532 -123456789:+987654321:-1111111110 -123456789:-987654321:864197532 +123456789:-987654321:1111111110 &bmuladd abc:abc:0:NaN abc:+0:0:NaN +0:abc:0:NaN +0:0:abc:NaN invalid:+inf:0:NaN invalid:-inf:0:NaN -inf:invalid:0:NaN +inf:invalid:0:NaN +inf:+inf:0:inf +inf:-inf:0:-inf -inf:+inf:0:-inf -inf:-inf:0:inf +0:+0:0:0 +0:+1:0:0 +1:+0:0:0 +0:-1:0:0 -1:+0:0:0 123456789123456789:0:0:0 0:123456789123456789:0:0 -1:-1:0:1 -1:-1:0:1 -1:+1:0:-1 +1:-1:0:-1 +1:+1:0:1 +2:+3:0:6 -2:+3:0:-6 +2:-3:0:-6 -2:-3:0:6 111:111:0:12321 10101:10101:0:102030201 1001001:1001001:0:1002003002001 100010001:100010001:0:10002000300020001 10000100001:10000100001:0:100002000030000200001 11111111111:9:0:99999999999 22222222222:9:0:199999999998 33333333333:9:0:299999999997 44444444444:9:0:399999999996 55555555555:9:0:499999999995 66666666666:9:0:599999999994 77777777777:9:0:699999999993 88888888888:9:0:799999999992 99999999999:9:0:899999999991 11111111111:9:1:100000000000 22222222222:9:1:199999999999 33333333333:9:1:299999999998 44444444444:9:1:399999999997 55555555555:9:1:499999999996 66666666666:9:1:599999999995 77777777777:9:1:699999999994 88888888888:9:1:799999999993 99999999999:9:1:899999999992 -3:-4:-5:7 3:-4:-5:-17 -3:4:-5:-17 3:4:-5:7 -3:4:5:-7 3:-4:5:-7 9999999999999999999:10000000000000000000:1234567890:99999999999999999990000000001234567890 3.2:5.7:8.9:27.14 -3.2:5.197:6.05:-10.5804 &bmodpow 3:4:8:1 3:4:7:4 3:4:7:4 77777:777:123456789:99995084 3.2:6.2:5.2:2.970579856718063040273642739529400818 &bmul abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:invalid:NaN +inf:invalid:NaN invalid:+inf:NaN invalid:-inf:NaN +inf:+inf:inf +inf:-inf:-inf +inf:-inf:-inf +inf:+inf:inf +inf:123.34:inf +inf:-123.34:-inf -inf:123.34:-inf -inf:-123.34:inf 123.34:+inf:inf -123.34:+inf:-inf 123.34:-inf:-inf -123.34:-inf:inf +0:+0:0 +0:+1:0 +1:+0:0 +0:-1:0 -1:+0:0 +123456789123456789:+0:0 +0:+123456789123456789:0 -1:-1:1 -1:+1:-1 +1:-1:-1 +1:+1:1 +2:+3:6 -2:+3:-6 +2:-3:-6 -2:-3:6 +111:+111:12321 +10101:+10101:102030201 +1001001:+1001001:1002003002001 +100010001:+100010001:10002000300020001 +10000100001:+10000100001:100002000030000200001 +11111111111:+9:99999999999 +22222222222:+9:199999999998 +33333333333:+9:299999999997 +44444444444:+9:399999999996 +55555555555:+9:499999999995 +66666666666:+9:599999999994 +77777777777:+9:699999999993 +88888888888:+9:799999999992 +99999999999:+9:899999999991 6:120:720 10:10000:100000 &bdiv-list 0:0:NaN,0 0:1:0,0 9:4:2,1 9:5:1,4 # bug in v1.74 with bdiv in list context, when $y is 1 or -1 2.1:-1:-3,-0.9 2.1:1:2,0.1 -2.1:-1:2,-0.1 -2.1:1:-3,0.9 &bdiv $div_scale = 40; $round_mode = "even" abc:abc:NaN abc:+1:abc:NaN +1:abc:NaN -1:abc:NaN 0:abc:NaN +0:+0:NaN +0:+1:0 +1:+0:inf +3214:+0:inf +0:-1:0 -1:+0:-inf -3214:+0:-inf +1:+1:1 -1:-1:1 +1:-1:-1 -1:+1:-1 +1:+2:0.5 +2:+1:2 123:+inf:0 123:-inf:0 +10:+5:2 +100:+4:25 +1000:+8:125 +10000:+16:625 +10000:-16:-625 +999999999999:+9:111111111111 +999999999999:+99:10101010101 +999999999999:+999:1001001001 +999999999999:+9999:100010001 +999999999999999:+99999:10000100001 +1000000000:+9:111111111.1111111111111111111111111111111 +2000000000:+9:222222222.2222222222222222222222222222222 +3000000000:+9:333333333.3333333333333333333333333333333 +4000000000:+9:444444444.4444444444444444444444444444444 +5000000000:+9:555555555.5555555555555555555555555555556 +6000000000:+9:666666666.6666666666666666666666666666667 +7000000000:+9:777777777.7777777777777777777777777777778 +8000000000:+9:888888888.8888888888888888888888888888889 +9000000000:+9:1000000000 +35500000:+113:314159.2920353982300884955752212389380531 +71000000:+226:314159.2920353982300884955752212389380531 +106500000:+339:314159.2920353982300884955752212389380531 +1000000000:+3:333333333.3333333333333333333333333333333 2:25.024996000799840031993601279744051189762:0.07992009269196593320152084692285869265447 123456:1:123456 $div_scale = 20 +1000000000:+9:111111111.11111111111 +2000000000:+9:222222222.22222222222 +3000000000:+9:333333333.33333333333 +4000000000:+9:444444444.44444444444 +5000000000:+9:555555555.55555555556 +6000000000:+9:666666666.66666666667 +7000000000:+9:777777777.77777777778 +8000000000:+9:888888888.88888888889 +9000000000:+9:1000000000 1:10:0.1 1:100:0.01 1:1000:0.001 1:10000:0.0001 1:504:0.001984126984126984127 2:1.987654321:1.0062111801179738436 123456789.123456789123456789123456789:1:123456789.12345678912 # the next two cases are the "old" behaviour, but are now (>v0.01) different #+35500000:+113:314159.292035398230088 #+71000000:+226:314159.292035398230088 +35500000:+113:314159.29203539823009 +71000000:+226:314159.29203539823009 +106500000:+339:314159.29203539823009 +1000000000:+3:333333333.33333333333 $div_scale = 1 # round to accuracy 1 after bdiv +124:+3:40 123456789.1234:1:100000000 # reset scale for further tests $div_scale = 40 &bmod +9:4:1 +9:5:4 +9000:56:40 +56:9000:56 # inf handling, see table in doc 0:inf:0 0:-inf:0 5:inf:5 5:-inf:-inf -5:inf:inf -5:-inf:-5 inf:5:NaN -inf:5:NaN inf:-5:NaN -inf:-5:NaN 5:5:0 -5:-5:0 inf:inf:NaN -inf:-inf:NaN -inf:inf:NaN inf:-inf:NaN 8:0:8 inf:0:inf -inf:0:-inf -8:0:-8 0:0:0 abc:abc:NaN abc:1:abc:NaN 1:abc:NaN 0:1:0 1:0:1 0:-1:0 -1:0:-1 1:1:0 -1:-1:0 1:-1:0 -1:1:0 1:2:1 2:1:0 1000000000:9:1 2000000000:9:2 3000000000:9:3 4000000000:9:4 5000000000:9:5 6000000000:9:6 7000000000:9:7 8000000000:9:8 9000000000:9:0 35500000:113:33 71000000:226:66 106500000:339:99 1000000000:3:1 10:5:0 100:4:0 1000:8:0 10000:16:0 999999999999:9:0 999999999999:99:0 999999999999:999:0 999999999999:9999:0 999999999999999:99999:0 -9:+5:1 +9:-5:-1 -9:-5:-4 -5:3:1 -2:3:1 4:3:1 1:3:1 -5:-3:-2 -2:-3:-2 4:-3:-2 1:-3:-2 4095:4095:0 100041000510123:3:0 152403346:12345:4321 87654321:87654321:0 # now some floating point tests 123:2.5:0.5 1230:2.5:0 123.4:2.5:0.9 123e1:25:5 -2.1:1:0.9 2.1:1:0.1 -2.1:-1:-0.1 2.1:-1:-0.9 -3:1:0 3:1:0 -3:-1:0 3:-1:0 &bfac invalid:NaN +inf:inf -inf:NaN -1:NaN 0:1 1:1 2:2 3:6 4:24 5:120 6:720 7:5040 8:40320 9:362880 10:3628800 11:39916800 12:479001600 20:2432902008176640000 22:1124000727777607680000 69:171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000 &bdfac NaN:NaN +inf:inf -inf:NaN -2:NaN -1:1 0:1 1:1 2:2 3:3 4:8 5:15 6:48 7:105 8:384 9:945 10:3840 11:10395 12:46080 &btfac NaN:NaN +inf:inf -inf:NaN -3:NaN -2:1 -1:1 0:1 1:1 2:2 3:3 4:4 5:10 6:18 7:28 8:80 9:162 10:280 11:880 12:1944 &bmfac 7:-inf:NaN 7:-1:NaN 7:0:NaN 7:2.5:NaN 7:inf:7 7:NaN:NaN NaN:1:NaN +inf:1:inf -inf:1:NaN -1:1:NaN 0:1:1 1:1:1 2:1:2 3:1:6 4:1:24 5:1:120 6:1:720 7:1:5040 8:1:40320 9:1:362880 10:1:3628800 NaN:2:NaN +inf:2:inf -inf:2:NaN -2:2:NaN -1:2:1 0:2:1 1:2:1 2:2:2 3:2:3 4:2:8 5:2:15 6:2:48 7:2:105 8:2:384 9:2:945 10:2:3840 NaN:3:NaN +inf:3:inf -inf:3:NaN -3:3:NaN -2:3:1 -1:3:1 0:3:1 1:3:1 2:3:2 3:3:3 4:3:4 5:3:10 6:3:18 7:3:28 8:3:80 9:3:162 10:3:280 NaN:4:NaN +inf:4:inf -inf:4:NaN -4:4:NaN -3:4:1 -2:4:1 -1:4:1 0:4:1 1:4:1 2:4:2 3:4:3 4:4:4 5:4:5 6:4:12 7:4:21 8:4:32 9:4:45 10:4:120 NaN:5:NaN +inf:5:inf -inf:5:NaN -5:5:NaN -4:5:1 -3:5:1 -2:5:1 -1:5:1 0:5:1 1:5:1 2:5:2 3:5:3 4:5:4 5:5:5 6:5:6 7:5:14 8:5:24 9:5:36 10:5:50 &broot # sqrt() +0:2:0 +1:2:1 -1:2:NaN # -$x ** (1/2) => -$y, but not in broot() -123.456:2:NaN +inf:2:inf -inf:2:NaN 2:2:1.41421356237309504880168872420969807857 -2:2:NaN 4:2:2 9:2:3 16:2:4 100:2:10 123.456:2:11.11107555549866648462149404118219234119 15241.38393:2:123.4559999756998444766131352122991626468 1.44:2:1.2 12:2:3.464101615137754587054892683011744733886 0.49:2:0.7 0.0049:2:0.07 # invalid ones 1:NaN:NaN -1:NaN:NaN 0:NaN:NaN -inf:NaN:NaN +inf:NaN:NaN NaN:0:NaN NaN:2:NaN NaN:inf:NaN NaN:inf:NaN 12:-inf:NaN 12:inf:NaN +0:0:NaN +1:0:NaN -1:0:NaN -2:0:NaN -123.45:0:NaN +inf:0:NaN 12:1:12 -12:1:NaN 8:-1:NaN -8:-1:NaN # cubic root 8:3:2 -8:3:NaN # fourths root 16:4:2 81:4:3 # see t/bigroot() for more tests &bsqrt +0:0 -1:NaN -2:NaN -16:NaN -123.45:NaN nanbsqrt:NaN +inf:inf -inf:NaN 1:1 2:1.41421356237309504880168872420969807857 4:2 9:3 16:4 100:10 123.456:11.11107555549866648462149404118219234119 15241.38393:123.4559999756998444766131352122991626468 1.44:1.2 # sqrt(1.44) = 1.2, sqrt(e10) = e5 => 12e4 1.44E10:120000 2e10:141421.356237309504880168872420969807857 144e20:120000000000 # proved to be an endless loop under 7-9 12:3.464101615137754587054892683011744733886 0.49:0.7 0.0049:0.07 &is_nan 123:0 abc:1 NaN:1 -123:0 &is_inf +inf::1 -inf::1 abc::0 1::0 NaN::0 -1::0 +inf:-:0 +inf:+:1 -inf:-:1 -inf:+:0 -inf:-inf:1 -inf:+inf:0 +inf:-inf:0 +inf:+inf:1 +iNfInItY::1 -InFiNiTy::1 &is_odd abc:0 0:0 -1:1 -3:1 1:1 3:1 1000001:1 1000002:0 +inf:0 -inf:0 123.45:0 -123.45:0 2:0 &is_int invalid:0 0:1 1:1 2:1 -2:1 -1:1 -inf:0 +inf:0 123.4567:0 -0.1:0 -0.002:0 &is_even abc:0 0:1 -1:0 -3:0 1:0 3:0 1000001:0 1000002:1 2:1 +inf:0 -inf:0 123.456:0 -123.456:0 0.01:0 -0.01:0 120:1 1200:1 -1200:1 &is_positive 0:0 1:1 -1:0 -123:0 NaN:0 -inf:0 +inf:1 &is_negative 0:0 1:0 -1:1 -123:1 NaN:0 -inf:1 +inf:0 &is_non_positive 0:1 1:0 -1:1 NaN:0 -inf:1 +inf:0 &is_non_negative 0:1 1:1 -1:0 NaN:0 -inf:0 +inf:1 &parts 0:0 0 1:1 0 123:123 0 -123:-123 0 -1200:-12 2 invalid:NaN NaN +inf:inf inf -inf:-inf inf &exponent 0:0 1:0 123:0 -123:0 -1200:2 +inf:inf -inf:inf invalid:NaN &mantissa 0:0 1:1 123:123 -123:-123 -1200:-12 +inf:inf -inf:-inf invalid:NaN &length 123:3 -123:3 0:1 1:1 12345678901234567890:20 &is_zero invalid:0 +inf:0 -inf:0 0:1 -1:0 1:0 &is_one invalid:0 +inf:0 -inf:0 0:0 2:0 1:1 -1:0 -2:0 &bfloor 0:0 abc:NaN +inf:inf -inf:-inf 1:1 -51:-51 -51.2:-52 12.2:12 0.12345:0 0.123456:0 0.1234567:0 0.12345678:0 0.123456789:0 &bceil 0:0 abc:NaN +inf:inf -inf:-inf 1:1 -51:-51 -51.2:-51 12.2:13 -0.4:0 &bint 0:0 NaN:NaN +inf:inf -inf:-inf 1:1 -51:-51 -51.2:-51 12.2:12 -0.4:0 # overloaded functions &log -1:NaN 0:-inf 1:0 2:0.6931471805599453094172321214581765680755 3:1.098612288668109691395245236922525704647 123456789:18.63140176616801803319393334796320420971 1234567890987654321:41.657252696908474880343847955484513481 -inf:inf inf:inf NaN:NaN &exp &sin &cos &atan2 &int &neg &abs &sqrt Math-BigInt-2.005003/t/bigfltpm.t0000644403072340010010000000472314750142746016210 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3070 # tests in require'd file + 19; # tests in this file use Math::BigInt only => 'Calc'; use Math::BigFloat; our ($CLASS, $LIB); $CLASS = "Math::BigFloat"; $LIB = Math::BigInt -> config('lib'); # backend library is($CLASS->config("class"), $CLASS, qq|$CLASS->config("class")|); is($CLASS->config("with"), $LIB, qq|$CLASS->config("with")|); # bug #17447: Can't call method Math::BigFloat->bsub, not a valid method my $c = Math::BigFloat->new('123.3'); is($c->bsub(123), '0.3', qq|\$c = Math::BigFloat -> new("123.3"); \$y = \$c -> bsub("123")|); # Bug until Math::BigInt v1.86, the scale wasn't treated as a scalar: $c = Math::BigFloat->new('0.008'); my $d = Math::BigFloat->new(3); my $e = $c->bdiv(Math::BigFloat->new(3), $d); is($e, '0.00267', '0.008 / 3 = 0.0027'); my $x; ############################################################################# # bgcd() as function, class method and instance method. my $gcd0 = Math::BigFloat::bgcd(-12, 18, 27); isa_ok($gcd0, "Math::BigFloat", "bgcd() as function"); is($gcd0, 3, "bgcd() as function"); my $gcd1 = Math::BigFloat->bgcd(-12, 18, 27); isa_ok($gcd1, "Math::BigFloat", "bgcd() as class method"); is($gcd1, 3, "bgcd() as class method"); $x = Math::BigFloat -> new(-12); my $gcd2 = $x -> bgcd(18, 27); isa_ok($gcd2, "Math::BigFloat", "bgcd() as instance method"); is($gcd2, 3, "bgcd() as instance method"); is($x, -12, "bgcd() does not modify invocand"); ############################################################################# # blcm() as function, class method and instance method. my $lcm0 = Math::BigFloat::blcm(-12, 18, 27); isa_ok($lcm0, "Math::BigFloat", "blcm() as function"); is($lcm0, 108, "blcm() as function"); my $lcm1 = Math::BigFloat->blcm(-12, 18, 27); isa_ok($lcm1, "Math::BigFloat", "blcm() as class method"); is($lcm1, 108, "blcm() as class method"); $x = Math::BigFloat -> new(-12); my $lcm2 = $x -> blcm(18, 27); isa_ok($lcm2, "Math::BigFloat", "blcm() as instance method"); is($lcm2, 108, "blcm() as instance method"); is($x, -12, "blcm() does not modify invocand"); ############################################################################# SKIP: { skip("skipping test which is not for this backend", 1) unless $LIB eq 'Math::BigInt::Calc'; is(ref($e->{_e}->[0]), '', '$e->{_e}->[0] is a scalar'); } require './t/bigfltpm.inc'; # all tests here for sharing Math-BigInt-2.005003/t/bigfltrt.t0000644403072340010010000000053414546553333016216 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 899; use Math::BigRat::Subclass lib => 'Calc'; # test via this Subclass our ($CLASS, $LIB); $CLASS = "Math::BigRat::Subclass"; $LIB = "Math::BigInt::Calc"; # fails still too many tests require './t/bigratpm.inc'; # all tests here for sharing Math-BigInt-2.005003/t/bigintc-import.t0000644403072340010010000000165114536617516017334 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4; use Math::BigInt::Calc base_len => 1, use_int => 0; my ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN_SMALL, $MAX_VAL, $MAX_BITS, $MAX_EXP_F, $MAX_EXP_I, $USE_INT) = Math::BigInt::Calc->_base_len(); note(<<"EOF"); BASE_LEN = $BASE_LEN BASE = $BASE MAX_VAL = $MAX_VAL AND_BITS = $AND_BITS XOR_BITS = $XOR_BITS OR_BITS = $OR_BITS MAX_EXP_F = $MAX_EXP_F MAX_EXP_I = $MAX_EXP_I USE_INT = $USE_INT EOF cmp_ok($BASE_LEN, "==", 1, '$BASE_LEN is 1'); cmp_ok($USE_INT, "==", 0, '$USE_INT is 0'); my $LIB = 'Math::BigInt::Calc'; my $x = $LIB -> _new("31415926535897932384626433832"); my $str = $LIB -> _str($x); is($str, "31415926535897932384626433832", "string representation of $LIB object"); is("[ @$x ]", "[ 2 3 8 3 3 4 6 2 6 4 8 3 2 3 9 7 9 8 5 3 5 6 2 9 5 1 4 1 3 ]", "internal representation of $LIB object"); Math-BigInt-2.005003/t/bigintc.t0000644403072340010010000006213514536617516016030 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test Math::BigInt::Calc use strict; use warnings; use Test::More tests => 524; use Math::BigInt::Calc; my ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN_SMALL, $MAX_VAL, $MAX_BITS, $MAX_EXP_F, $MAX_EXP_I, $USE_INT) = Math::BigInt::Calc -> _base_len(); note(<<"EOF"); BASE_LEN = $BASE_LEN BASE = $BASE MAX_VAL = $MAX_VAL AND_BITS = $AND_BITS XOR_BITS = $XOR_BITS OR_BITS = $OR_BITS MAX_EXP_F = $MAX_EXP_F MAX_EXP_I = $MAX_EXP_I USE_INT = $USE_INT EOF my $LIB = 'Math::BigInt::Calc'; my $REF = 'Math::BigInt::Calc'; # _new and _str my $x = $LIB->_new("123"); my $y = $LIB->_new("321"); is(ref($x), $REF, q|ref($x) is a $REF|); is($LIB->_str($x), 123, qq|$LIB->_str(\$x) = 123|); is($LIB->_str($y), 321, qq|$LIB->_str(\$y) = 321|); ############################################################################### # _add, _sub, _mul, _div is($LIB->_str($LIB->_add($x, $y)), 444, qq|$LIB->_str($LIB->_add(\$x, \$y)) = 444|); is($LIB->_str($LIB->_sub($x, $y)), 123, qq|$LIB->_str($LIB->_sub(\$x, \$y)) = 123|); is($LIB->_str($LIB->_mul($x, $y)), 39483, qq|$LIB->_str($LIB->_mul(\$x, \$y)) = 39483|); is($LIB->_str($LIB->_div($x, $y)), 123, qq|$LIB->_str($LIB->_div(\$x, \$y)) = 123|); ############################################################################### # check that mul/div doesn't change $y # and returns the same reference, not something new is($LIB->_str($LIB->_mul($x, $y)), 39483, qq|$LIB->_str($LIB->_mul(\$x, \$y)) = 39483|); is($LIB->_str($x), 39483, qq|$LIB->_str(\$x) = 39483|); is($LIB->_str($y), 321, qq|$LIB->_str(\$y) = 321|); is($LIB->_str($LIB->_div($x, $y)), 123, qq|$LIB->_str($LIB->_div(\$x, \$y)) = 123|); is($LIB->_str($x), 123, qq|$LIB->_str(\$x) = 123|); is($LIB->_str($y), 321, qq|$LIB->_str(\$y) = 321|); $x = $LIB->_new("39483"); my ($x1, $r1) = $LIB->_div($x, $y); is("$x1", "$x", q|"$x1" = "$x"|); $LIB->_inc($x1); is("$x1", "$x", q|"$x1" = "$x"|); is($LIB->_str($r1), "0", qq|$LIB->_str(\$r1) = "0"|); $x = $LIB->_new("39483"); # reset ############################################################################### my $z = $LIB->_new("2"); is($LIB->_str($LIB->_add($x, $z)), 39485, qq|$LIB->_str($LIB->_add(\$x, \$z)) = 39485|); my ($re, $rr) = $LIB->_div($x, $y); is($LIB->_str($re), 123, qq|$LIB->_str(\$re) = 123|); is($LIB->_str($rr), 2, qq|$LIB->_str(\$rr) = 2|); # is_zero, _is_one, _one, _zero ok(! $LIB->_is_zero($x), qq|$LIB->_is_zero(\$x)|); ok(! $LIB->_is_one($x), qq|$LIB->_is_one(\$x)|); is($LIB->_str($LIB->_zero()), "0", qq|$LIB->_str($LIB->_zero()) = "0"|); is($LIB->_str($LIB->_one()), "1", qq|$LIB->_str($LIB->_one()) = "1"|); # _two() and _ten() is($LIB->_str($LIB->_two()), "2", qq|$LIB->_str($LIB->_two()) = "2"|); is($LIB->_str($LIB->_ten()), "10", qq|$LIB->_str($LIB->_ten()) = "10"|); ok(! $LIB->_is_ten($LIB->_two()), qq|$LIB->_is_ten($LIB->_two()) is false|); ok( $LIB->_is_two($LIB->_two()), qq|$LIB->_is_two($LIB->_two()) is true|); ok( $LIB->_is_ten($LIB->_ten()), qq|$LIB->_is_ten($LIB->_ten()) is true|); ok(! $LIB->_is_two($LIB->_ten()), qq|$LIB->_is_two($LIB->_ten()) is false|); ok( $LIB->_is_one($LIB->_one()), qq|$LIB->_is_one($LIB->_one()) is true|); ok(! $LIB->_is_one($LIB->_two()), qq|$LIB->_is_one($LIB->_two()) is false|); ok(! $LIB->_is_one($LIB->_ten()), qq|$LIB->_is_one($LIB->_ten()) is false|); ok(! $LIB->_is_one($LIB->_zero()), qq/$LIB->_is_one($LIB->_zero()) is false/); ok( $LIB->_is_zero($LIB->_zero()), qq|$LIB->_is_zero($LIB->_zero()) is true|); ok(! $LIB->_is_zero($LIB->_one()), qq/$LIB->_is_zero($LIB->_one()) is false/); # is_odd, is_even ok( $LIB->_is_odd($LIB->_one()), qq/$LIB->_is_odd($LIB->_one()) is true/); ok(! $LIB->_is_odd($LIB->_zero()), qq/$LIB->_is_odd($LIB->_zero()) is false/); ok(! $LIB->_is_even($LIB->_one()), qq/$LIB->_is_even($LIB->_one()) is false/); ok( $LIB->_is_even($LIB->_zero()), qq/$LIB->_is_even($LIB->_zero()) is true/); # _alen and _len for my $method (qw/_alen _len/) { $x = $LIB->_new("1"); is($LIB->$method($x), 1, qq|$LIB->$method(\$x) = 1|); $x = $LIB->_new("12"); is($LIB->$method($x), 2, qq|$LIB->$method(\$x) = 2|); $x = $LIB->_new("123"); is($LIB->$method($x), 3, qq|$LIB->$method(\$x) = 3|); $x = $LIB->_new("1234"); is($LIB->$method($x), 4, qq|$LIB->$method(\$x) = 4|); $x = $LIB->_new("12345"); is($LIB->$method($x), 5, qq|$LIB->$method(\$x) = 5|); $x = $LIB->_new("123456"); is($LIB->$method($x), 6, qq|$LIB->$method(\$x) = 6|); $x = $LIB->_new("1234567"); is($LIB->$method($x), 7, qq|$LIB->$method(\$x) = 7|); $x = $LIB->_new("12345678"); is($LIB->$method($x), 8, qq|$LIB->$method(\$x) = 8|); $x = $LIB->_new("123456789"); is($LIB->$method($x), 9, qq|$LIB->$method(\$x) = 9|); $x = $LIB->_new("8"); is($LIB->$method($x), 1, qq|$LIB->$method(\$x) = 1|); $x = $LIB->_new("21"); is($LIB->$method($x), 2, qq|$LIB->$method(\$x) = 2|); $x = $LIB->_new("321"); is($LIB->$method($x), 3, qq|$LIB->$method(\$x) = 3|); $x = $LIB->_new("4321"); is($LIB->$method($x), 4, qq|$LIB->$method(\$x) = 4|); $x = $LIB->_new("54321"); is($LIB->$method($x), 5, qq|$LIB->$method(\$x) = 5|); $x = $LIB->_new("654321"); is($LIB->$method($x), 6, qq|$LIB->$method(\$x) = 6|); $x = $LIB->_new("7654321"); is($LIB->$method($x), 7, qq|$LIB->$method(\$x) = 7|); $x = $LIB->_new("87654321"); is($LIB->$method($x), 8, qq|$LIB->$method(\$x) = 8|); $x = $LIB->_new("987654321"); is($LIB->$method($x), 9, qq|$LIB->$method(\$x) = 9|); $x = $LIB->_new("0"); is($LIB->$method($x), 1, qq|$LIB->$method(\$x) = 1|); $x = $LIB->_new("20"); is($LIB->$method($x), 2, qq|$LIB->$method(\$x) = 2|); $x = $LIB->_new("320"); is($LIB->$method($x), 3, qq|$LIB->$method(\$x) = 3|); $x = $LIB->_new("4320"); is($LIB->$method($x), 4, qq|$LIB->$method(\$x) = 4|); $x = $LIB->_new("54320"); is($LIB->$method($x), 5, qq|$LIB->$method(\$x) = 5|); $x = $LIB->_new("654320"); is($LIB->$method($x), 6, qq|$LIB->$method(\$x) = 6|); $x = $LIB->_new("7654320"); is($LIB->$method($x), 7, qq|$LIB->$method(\$x) = 7|); $x = $LIB->_new("87654320"); is($LIB->$method($x), 8, qq|$LIB->$method(\$x) = 8|); $x = $LIB->_new("987654320"); is($LIB->$method($x), 9, qq|$LIB->$method(\$x) = 9|); for (my $i = 1; $i < 9; $i++) { my $a = "$i" . '0' x ($i - 1); $x = $LIB->_new($a); is($LIB->_len($x), $i, qq|$LIB->_len(\$x) = $i|); } } # _digit $x = $LIB->_new("123456789"); is($LIB->_digit($x, 0), 9, qq|$LIB->_digit(\$x, 0) = 9|); is($LIB->_digit($x, 1), 8, qq|$LIB->_digit(\$x, 1) = 8|); is($LIB->_digit($x, 2), 7, qq|$LIB->_digit(\$x, 2) = 7|); is($LIB->_digit($x, 8), 1, qq|$LIB->_digit(\$x, 8) = 1|); is($LIB->_digit($x, 9), 0, qq|$LIB->_digit(\$x, 9) = 0|); is($LIB->_digit($x, -1), 1, qq|$LIB->_digit(\$x, -1) = 1|); is($LIB->_digit($x, -2), 2, qq|$LIB->_digit(\$x, -2) = 2|); is($LIB->_digit($x, -3), 3, qq|$LIB->_digit(\$x, -3) = 3|); is($LIB->_digit($x, -9), 9, qq|$LIB->_digit(\$x, -9) = 9|); is($LIB->_digit($x, -10), 0, qq|$LIB->_digit(\$x, -10) = 0|); # _copy foreach (qw/ 1 12 123 1234 12345 123456 1234567 12345678 123456789/) { $x = $LIB->_new("$_"); is($LIB->_str($LIB->_copy($x)), "$_", qq|$LIB->_str($LIB->_copy(\$x)) = "$_"|); is($LIB->_str($x), "$_", # did _copy destroy original x? qq|$LIB->_str(\$x) = "$_"|); } # _zeros $x = $LIB->_new("1256000000"); is($LIB->_zeros($x), 6, qq|$LIB->_zeros(\$x) = 6|); $x = $LIB->_new("152"); is($LIB->_zeros($x), 0, qq|$LIB->_zeros(\$x) = 0|); $x = $LIB->_new("123000"); is($LIB->_zeros($x), 3, qq|$LIB->_zeros(\$x) = 3|); $x = $LIB->_new("0"); is($LIB->_zeros($x), 0, qq|$LIB->_zeros(\$x) = 0|); # _lsft, _rsft $x = $LIB->_new("10"); $y = $LIB->_new("3"); is($LIB->_str($LIB->_lsft($x, $y, 10)), 10000, qq|$LIB->_str($LIB->_lsft(\$x, \$y, 10)) = 10000|); $x = $LIB->_new("20"); $y = $LIB->_new("3"); is($LIB->_str($LIB->_lsft($x, $y, 10)), 20000, qq|$LIB->_str($LIB->_lsft(\$x, \$y, 10)) = 20000|); $x = $LIB->_new("128"); $y = $LIB->_new("4"); is($LIB->_str($LIB->_lsft($x, $y, 2)), 128 << 4, qq|$LIB->_str($LIB->_lsft(\$x, \$y, 2)) = 128 << 4|); $x = $LIB->_new("1000"); $y = $LIB->_new("3"); is($LIB->_str($LIB->_rsft($x, $y, 10)), 1, qq|$LIB->_str($LIB->_rsft(\$x, \$y, 10)) = 1|); $x = $LIB->_new("20000"); $y = $LIB->_new("3"); is($LIB->_str($LIB->_rsft($x, $y, 10)), 20, qq|$LIB->_str($LIB->_rsft(\$x, \$y, 10)) = 20|); $x = $LIB->_new("256"); $y = $LIB->_new("4"); is($LIB->_str($LIB->_rsft($x, $y, 2)), 256 >> 4, qq|$LIB->_str($LIB->_rsft(\$x, \$y, 2)) = 256 >> 4|); $x = $LIB->_new("6411906467305339182857313397200584952398"); $y = $LIB->_new("45"); is($LIB->_str($LIB->_rsft($x, $y, 10)), 0, qq|$LIB->_str($LIB->_rsft(\$x, \$y, 10)) = 0|); # _lsft() with large bases for my $xstr ("1", "2", "3") { for my $nstr ("1", "2", "3") { for my $bpow (25, 50, 75) { my $bstr = "1" . ("0" x $bpow); my $expected = $xstr . ("0" x ($bpow * $nstr)); my $xobj = $LIB->_new($xstr); my $nobj = $LIB->_new($nstr); my $bobj = $LIB->_new($bstr); is($LIB->_str($LIB->_lsft($xobj, $nobj, $bobj)), $expected, qq|$LIB->_str($LIB->_lsft($LIB->_new("$xstr"), | . qq|$LIB->_new("$nstr"), | . qq|$LIB->_new("$bstr")))|); is($LIB->_str($nobj), $nstr, q|$n is unmodified|); is($LIB->_str($bobj), $bstr, q|$b is unmodified|); } } } # _acmp $x = $LIB->_new("123456789"); $y = $LIB->_new("987654321"); is($LIB->_acmp($x, $y), -1, qq|$LIB->_acmp(\$x, \$y) = -1|); is($LIB->_acmp($y, $x), 1, qq|$LIB->_acmp(\$y, \$x) = 1|); is($LIB->_acmp($x, $x), 0, qq|$LIB->_acmp(\$x, \$x) = 0|); is($LIB->_acmp($y, $y), 0, qq|$LIB->_acmp(\$y, \$y) = 0|); $x = $LIB->_new("12"); $y = $LIB->_new("12"); is($LIB->_acmp($x, $y), 0, qq|$LIB->_acmp(\$x, \$y) = 0|); $x = $LIB->_new("21"); is($LIB->_acmp($x, $y), 1, qq|$LIB->_acmp(\$x, \$y) = 1|); is($LIB->_acmp($y, $x), -1, qq|$LIB->_acmp(\$y, \$x) = -1|); $x = $LIB->_new("123456789"); $y = $LIB->_new("1987654321"); is($LIB->_acmp($x, $y), -1, qq|$LIB->_acmp(\$x, \$y) = -1|); is($LIB->_acmp($y, $x), +1, qq|$LIB->_acmp(\$y, \$x) = +1|); $x = $LIB->_new("1234567890123456789"); $y = $LIB->_new("987654321012345678"); is($LIB->_acmp($x, $y), 1, qq|$LIB->_acmp(\$x, \$y) = 1|); is($LIB->_acmp($y, $x), -1, qq|$LIB->_acmp(\$y, \$x) = -1|); is($LIB->_acmp($x, $x), 0, qq|$LIB->_acmp(\$x, \$x) = 0|); is($LIB->_acmp($y, $y), 0, qq|$LIB->_acmp(\$y, \$y) = 0|); $x = $LIB->_new("1234"); $y = $LIB->_new("987654321012345678"); is($LIB->_acmp($x, $y), -1, qq|$LIB->_acmp(\$x, \$y) = -1|); is($LIB->_acmp($y, $x), 1, qq|$LIB->_acmp(\$y, \$x) = 1|); is($LIB->_acmp($x, $x), 0, qq|$LIB->_acmp(\$x, \$x) = 0|); is($LIB->_acmp($y, $y), 0, qq|$LIB->_acmp(\$y, \$y) = 0|); # _modinv $x = $LIB->_new("8"); $y = $LIB->_new("5033"); my ($xmod, $sign) = $LIB->_modinv($x, $y); is($LIB->_str($xmod), "629", # -629 % 5033 == 4404 qq|$LIB->_str(\$xmod) = "629"|); is($sign, "-", q|$sign = "-"|); # _div $x = $LIB->_new("3333"); $y = $LIB->_new("1111"); is($LIB->_str(scalar($LIB->_div($x, $y))), 3, qq|$LIB->_str(scalar($LIB->_div(\$x, \$y))) = 3|); $x = $LIB->_new("33333"); $y = $LIB->_new("1111"); ($x, $y) = $LIB->_div($x, $y); is($LIB->_str($x), 30, qq|$LIB->_str(\$x) = 30|); is($LIB->_str($y), 3, qq|$LIB->_str(\$y) = 3|); $x = $LIB->_new("123"); $y = $LIB->_new("1111"); ($x, $y) = $LIB->_div($x, $y); is($LIB->_str($x), 0, qq|$LIB->_str(\$x) = 0|); is($LIB->_str($y), 123, qq|$LIB->_str(\$y) = 123|); # _num foreach (qw/1 12 123 1234 12345 1234567 12345678 123456789 1234567890/) { $x = $LIB->_new("$_"); is(ref($x), $REF, q|ref($x) = "$REF"|); is($LIB->_str($x), "$_", qq|$LIB->_str(\$x) = "$_"|); $x = $LIB->_num($x); is(ref($x), "", q|ref($x) = ""|); is($x, $_, qq|\$x = $_|); } # _sqrt $x = $LIB->_new("144"); is($LIB->_str($LIB->_sqrt($x)), "12", qq|$LIB->_str($LIB->_sqrt(\$x)) = "12"|); $x = $LIB->_new("144000000000000"); is($LIB->_str($LIB->_sqrt($x)), "12000000", qq|$LIB->_str($LIB->_sqrt(\$x)) = "12000000"|); # _root $x = $LIB->_new("81"); my $n = $LIB->_new("3"); # 4*4*4 = 64, 5*5*5 = 125 is($LIB->_str($LIB->_root($x, $n)), "4", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "4"|); # 4.xx => 4.0 $x = $LIB->_new("81"); $n = $LIB->_new("4"); # 3*3*3*3 == 81 is($LIB->_str($LIB->_root($x, $n)), "3", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "3"|); # _pow (and _root) $x = $LIB->_new("0"); $n = $LIB->_new("3"); # 0 ** y => 0 is($LIB->_str($LIB->_pow($x, $n)), 0, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 0|); $x = $LIB->_new("3"); $n = $LIB->_new("0"); # x ** 0 => 1 is($LIB->_str($LIB->_pow($x, $n)), 1, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 1|); $x = $LIB->_new("1"); $n = $LIB->_new("3"); # 1 ** y => 1 is($LIB->_str($LIB->_pow($x, $n)), 1, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 1|); $x = $LIB->_new("5"); $n = $LIB->_new("1"); # x ** 1 => x is($LIB->_str($LIB->_pow($x, $n)), 5, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 5|); $x = $LIB->_new("81"); $n = $LIB->_new("3"); # 81 ** 3 == 531441 is($LIB->_str($LIB->_pow($x, $n)), 81 ** 3, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 81 ** 3|); is($LIB->_str($LIB->_root($x, $n)), 81, qq|$LIB->_str($LIB->_root(\$x, \$n)) = 81|); $x = $LIB->_new("81"); is($LIB->_str($LIB->_pow($x, $n)), 81 ** 3, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = 81 ** 3|); is($LIB->_str($LIB->_pow($x, $n)), "150094635296999121", # 531441 ** 3 qq|$LIB->_str($LIB->_pow(\$x, \$n)) = "150094635296999121"|); is($LIB->_str($LIB->_root($x, $n)), "531441", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "531441"|); is($LIB->_str($LIB->_root($x, $n)), "81", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "81"|); $x = $LIB->_new("81"); $n = $LIB->_new("14"); is($LIB->_str($LIB->_pow($x, $n)), "523347633027360537213511521", qq|$LIB->_str($LIB->_pow(\$x, \$n)) = "523347633027360537213511521"|); is($LIB->_str($LIB->_root($x, $n)), "81", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "81"|); $x = $LIB->_new("523347633027360537213511520"); is($LIB->_str($LIB->_root($x, $n)), "80", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "80"|); $x = $LIB->_new("523347633027360537213511522"); is($LIB->_str($LIB->_root($x, $n)), "81", qq|$LIB->_str($LIB->_root(\$x, \$n)) = "81"|); my $res = [ qw/9 31 99 316 999 3162 9999 31622 99999/ ]; # 99 ** 2 = 9801, 999 ** 2 = 998001 etc for my $i (2 .. 9) { $x = '9' x $i; $x = $LIB->_new($x); $n = $LIB->_new("2"); my $rc = '9' x ($i-1). '8' . '0' x ($i - 1) . '1'; print "# _pow( ", '9' x $i, ", 2) \n" unless is($LIB->_str($LIB->_pow($x, $n)), $rc, qq|$LIB->_str($LIB->_pow(\$x, \$n)) = $rc|); SKIP: { # If $i > $BASE_LEN, the test takes a really long time. skip "$i > $BASE_LEN", 2 unless $i <= $BASE_LEN; $x = '9' x $i; $x = $LIB->_new($x); $n = '9' x $i; $n = $LIB->_new($n); print "# _root( ", '9' x $i, ", ", 9 x $i, ") \n"; print "# _root( ", '9' x $i, ", ", 9 x $i, ") \n" unless is($LIB->_str($LIB->_root($x, $n)), '1', qq|$LIB->_str($LIB->_root(\$x, \$n)) = '1'|); $x = '9' x $i; $x = $LIB->_new($x); $n = $LIB->_new("2"); print "# BASE_LEN $BASE_LEN _root( ", '9' x $i, ", ", 9 x $i, ") \n" unless is($LIB->_str($LIB->_root($x, $n)), $res->[$i-2], qq|$LIB->_str($LIB->_root(\$x, \$n)) = $res->[$i-2]|); } } ############################################################################## # _fac $x = $LIB->_new("0"); is($LIB->_str($LIB->_fac($x)), "1", qq|$LIB->_str($LIB->_fac(\$x)) = "1"|); $x = $LIB->_new("1"); is($LIB->_str($LIB->_fac($x)), "1", qq|$LIB->_str($LIB->_fac(\$x)) = "1"|); $x = $LIB->_new("2"); is($LIB->_str($LIB->_fac($x)), "2", qq|$LIB->_str($LIB->_fac(\$x)) = "2"|); $x = $LIB->_new("3"); is($LIB->_str($LIB->_fac($x)), "6", qq|$LIB->_str($LIB->_fac(\$x)) = "6"|); $x = $LIB->_new("4"); is($LIB->_str($LIB->_fac($x)), "24", qq|$LIB->_str($LIB->_fac(\$x)) = "24"|); $x = $LIB->_new("5"); is($LIB->_str($LIB->_fac($x)), "120", qq|$LIB->_str($LIB->_fac(\$x)) = "120"|); $x = $LIB->_new("10"); is($LIB->_str($LIB->_fac($x)), "3628800", qq|$LIB->_str($LIB->_fac(\$x)) = "3628800"|); $x = $LIB->_new("11"); is($LIB->_str($LIB->_fac($x)), "39916800", qq|$LIB->_str($LIB->_fac(\$x)) = "39916800"|); $x = $LIB->_new("12"); is($LIB->_str($LIB->_fac($x)), "479001600", qq|$LIB->_str($LIB->_fac(\$x)) = "479001600"|); $x = $LIB->_new("13"); is($LIB->_str($LIB->_fac($x)), "6227020800", qq|$LIB->_str($LIB->_fac(\$x)) = "6227020800"|); # test that _fac modifies $x in place for small arguments $x = $LIB->_new("3"); $LIB->_fac($x); is($LIB->_str($x), "6", qq|$LIB->_str(\$x) = "6"|); $x = $LIB->_new("13"); $LIB->_fac($x); is($LIB->_str($x), "6227020800", qq|$LIB->_str(\$x) = "6227020800"|); # _inc and _dec for (qw/1 11 121 1231 12341 1234561 12345671 123456781 1234567891/) { $x = $LIB->_new("$_"); $LIB->_inc($x); my $expected = substr($_, 0, length($_) - 1) . '2'; is($LIB->_str($x), $expected, qq|$LIB->_str(\$x) = $expected|); $LIB->_dec($x); is($LIB->_str($x), $_, qq|$LIB->_str(\$x) = $_|); } for (qw/19 119 1219 12319 1234519 12345619 123456719 1234567819/) { $x = $LIB->_new("$_"); $LIB->_inc($x); my $expected = substr($_, 0, length($_)-2) . '20'; is($LIB->_str($x), $expected, qq|$LIB->_str(\$x) = $expected|); $LIB->_dec($x); is($LIB->_str($x), $_, qq|$LIB->_str(\$x) = $_|); } for (1 .. 20) { my $p = "9" x $_; # = $q - 1 my $q = "1" . ("0" x $_); # = $p + 1 $x = $LIB->_new("$p"); $LIB->_inc($x); is($LIB->_str($x), $q, qq|\$x = $LIB->_new("$p"); $LIB->_inc()|); $x = $LIB->_new("$q"); $LIB->_dec($x); is($LIB->_str($x), $p, qq|\$x = $LIB->_new("$q"); $LIB->_dec()|); } for (1 .. 20) { my $p = "1" . ("0" x $_); # = $q - 1 my $q = "1" . ("0" x ($_ - 1)) . "1"; # = $p + 1 $x = $LIB->_new("$p"); $LIB->_inc($x); is($LIB->_str($x), $q, qq|\$x = $LIB->_new("$p"); $LIB->_inc()|); $x = $LIB->_new("$q"); $LIB->_dec($x); is($LIB->_str($x), $p, qq|\$x = $LIB->_new("$q"); $LIB->_dec()|); } $x = $LIB->_new("1000"); $LIB->_inc($x); is($LIB->_str($x), "1001", qq|$LIB->_str(\$x) = "1001"|); $LIB->_dec($x); is($LIB->_str($x), "1000", qq|$LIB->_str(\$x) = "1000"|); my $BL = $LIB -> _base_len(); $x = '1' . '0' x $BL; $z = '1' . '0' x ($BL - 1); $z .= '1'; $x = $LIB->_new($x); $LIB->_inc($x); is($LIB->_str($x), $z, qq|$LIB->_str(\$x) = $z|); $x = '1' . '0' x $BL; $z = '9' x $BL; $x = $LIB->_new($x); $LIB->_dec($x); is($LIB->_str($x), $z, qq|$LIB->_str(\$x) = $z|); # should not happen: # $x = $LIB->_new("-2"); # $y = $LIB->_new("4"); # is($LIB->_acmp($x, $y), -1, qq|$LIB->_acmp($x, $y) = -1|); ############################################################################### # _mod $x = $LIB->_new("1000"); $y = $LIB->_new("3"); is($LIB->_str(scalar($LIB->_mod($x, $y))), 1, qq|$LIB->_str(scalar($LIB->_mod(\$x, \$y))) = 1|); $x = $LIB->_new("1000"); $y = $LIB->_new("2"); is($LIB->_str(scalar($LIB->_mod($x, $y))), 0, qq|$LIB->_str(scalar($LIB->_mod(\$x, \$y))) = 0|); # _and, _or, _xor $x = $LIB->_new("5"); $y = $LIB->_new("2"); is($LIB->_str(scalar($LIB->_xor($x, $y))), 7, qq|$LIB->_str(scalar($LIB->_xor(\$x, \$y))) = 7|); $x = $LIB->_new("5"); $y = $LIB->_new("2"); is($LIB->_str(scalar($LIB->_or($x, $y))), 7, qq|$LIB->_str(scalar($LIB->_or(\$x, \$y))) = 7|); $x = $LIB->_new("5"); $y = $LIB->_new("3"); is($LIB->_str(scalar($LIB->_and($x, $y))), 1, qq|$LIB->_str(scalar($LIB->_and(\$x, \$y))) = 1|); # _from_hex, _from_bin, _from_oct is($LIB->_str($LIB->_from_hex("0xFf")), 255, qq|$LIB->_str($LIB->_from_hex("0xFf")) = 255|); is($LIB->_str($LIB->_from_bin("0b10101011")), 160+11, qq|$LIB->_str($LIB->_from_bin("0b10101011")) = 160+11|); is($LIB->_str($LIB->_from_oct("0100")), 8*8, qq|$LIB->_str($LIB->_from_oct("0100")) = 8*8|); is($LIB->_str($LIB->_from_oct("01000")), 8*8*8, qq|$LIB->_str($LIB->_from_oct("01000")) = 8*8*8|); is($LIB->_str($LIB->_from_oct("010001")), 8*8*8*8+1, qq|$LIB->_str($LIB->_from_oct("010001")) = 8*8*8*8+1|); is($LIB->_str($LIB->_from_oct("010007")), 8*8*8*8+7, qq|$LIB->_str($LIB->_from_oct("010007")) = 8*8*8*8+7|); # _as_hex, _as_bin, as_oct is($LIB->_str($LIB->_from_hex($LIB->_as_hex($LIB->_new("128")))), 128, qq|$LIB->_str($LIB->_from_hex($LIB->_as_hex(| . qq|$LIB->_new("128")))) = 128|); is($LIB->_str($LIB->_from_bin($LIB->_as_bin($LIB->_new("128")))), 128, qq|$LIB->_str($LIB->_from_bin($LIB->_as_bin(| . qq|$LIB->_new("128")))) = 128|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new("128")))), 128, qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct(| . qq|$LIB->_new("128")))) = 128|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new("123456")))), 123456, qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct| . qq|($LIB->_new("123456")))) = 123456|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new("123456789")))), "123456789", qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct(| . qq|$LIB->_new("123456789")))) = "123456789"|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new("1234567890123")))), "1234567890123", qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct(| . qq|$LIB->_new("1234567890123")))) = "1234567890123"|); my $long = "123456789012345678901234567890"; is($LIB->_str($LIB->_from_hex($LIB->_as_hex($LIB->_new($long)))), $long, qq|$LIB->_str($LIB->_from_hex($LIB->_as_hex(| . qq|$LIB->_new("$long")))) = "$long"|); is($LIB->_str($LIB->_from_bin($LIB->_as_bin($LIB->_new($long)))), $long, qq|$LIB->_str($LIB->_from_bin($LIB->_as_bin(| . qq|$LIB->_new("$long")))) = "$long"|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new($long)))), $long, qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct(| . qq|$LIB->_new("$long")))) = "$long"|); is($LIB->_str($LIB->_from_hex($LIB->_as_hex($LIB->_new("0")))), 0, qq|$LIB->_str($LIB->_from_hex($LIB->_as_hex(| . qq|$LIB->_new("0")))) = 0|); is($LIB->_str($LIB->_from_bin($LIB->_as_bin($LIB->_new("0")))), 0, qq|$LIB->_str($LIB->_from_bin($LIB->_as_bin(| . qq|$LIB->_new("0")))) = 0|); is($LIB->_str($LIB->_from_oct($LIB->_as_oct($LIB->_new("0")))), 0, qq|$LIB->_str($LIB->_from_oct($LIB->_as_oct(| . qq|$LIB->_new("0")))) = 0|); is($LIB->_as_hex($LIB->_new("0")), "0x0", qq|$LIB->_as_hex($LIB->_new("0")) = "0x0"|); is($LIB->_as_bin($LIB->_new("0")), "0b0", qq|$LIB->_as_bin($LIB->_new("0")) = "0b0"|); is($LIB->_as_oct($LIB->_new("0")), "00", qq|$LIB->_as_oct($LIB->_new("0")) = "00"|); is($LIB->_as_hex($LIB->_new("12")), "0xc", qq|$LIB->_as_hex($LIB->_new("12")) = "0xc"|); is($LIB->_as_bin($LIB->_new("12")), "0b1100", qq|$LIB->_as_bin($LIB->_new("12")) = "0b1100"|); is($LIB->_as_oct($LIB->_new("64")), "0100", qq|$LIB->_as_oct($LIB->_new("64")) = "0100"|); # _1ex is($LIB->_str($LIB->_1ex(0)), "1", qq|$LIB->_str($LIB->_1ex(0)) = "1"|); is($LIB->_str($LIB->_1ex(1)), "10", qq|$LIB->_str($LIB->_1ex(1)) = "10"|); is($LIB->_str($LIB->_1ex(2)), "100", qq|$LIB->_str($LIB->_1ex(2)) = "100"|); is($LIB->_str($LIB->_1ex(12)), "1000000000000", qq|$LIB->_str($LIB->_1ex(12)) = "1000000000000"|); is($LIB->_str($LIB->_1ex(16)), "10000000000000000", qq|$LIB->_str($LIB->_1ex(16)) = "10000000000000000"|); # _check $x = $LIB->_new("123456789"); is($LIB->_check($x), 0, qq|$LIB->_check(\$x) = 0|); is($LIB->_check(123), "123 is not a reference", qq|$LIB->_check(123) = "123 is not a reference"|); ############################################################################### # __strip_zeros { no strict 'refs'; # correct empty arrays $x = &{$LIB."::__strip_zeros"}([]); is(@$x, 1, q|@$x = 1|); is($x->[0], 0, q|$x->[0] = 0|); # don't strip single elements $x = &{$LIB."::__strip_zeros"}([0]); is(@$x, 1, q|@$x = 1|); is($x->[0], 0, q|$x->[0] = 0|); $x = &{$LIB."::__strip_zeros"}([1]); is(@$x, 1, q|@$x = 1|); is($x->[0], 1, q|$x->[0] = 1|); # don't strip non-zero elements $x = &{$LIB."::__strip_zeros"}([0, 1]); is(@$x, 2, q|@$x = 2|); is($x->[0], 0, q|$x->[0] = 0|); is($x->[1], 1, q|$x->[1] = 1|); $x = &{$LIB."::__strip_zeros"}([0, 1, 2]); is(@$x, 3, q|@$x = 3|); is($x->[0], 0, q|$x->[0] = 0|); is($x->[1], 1, q|$x->[1] = 1|); is($x->[2], 2, q|$x->[2] = 2|); # but strip leading zeros $x = &{$LIB."::__strip_zeros"}([0, 1, 2, 0]); is(@$x, 3, q|@$x = 3|); is($x->[0], 0, q|$x->[0] = 0|); is($x->[1], 1, q|$x->[1] = 1|); is($x->[2], 2, q|$x->[2] = 2|); $x = &{$LIB."::__strip_zeros"}([0, 1, 2, 0, 0]); is(@$x, 3, q|@$x = 3|); is($x->[0], 0, q|$x->[0] = 0|); is($x->[1], 1, q|$x->[1] = 1|); is($x->[2], 2, q|$x->[2] = 2|); $x = &{$LIB."::__strip_zeros"}([0, 1, 2, 0, 0, 0]); is(@$x, 3, q|@$x = 3|); is($x->[0], 0, q|$x->[0] = 0|); is($x->[1], 1, q|$x->[1] = 1|); is($x->[2], 2, q|$x->[2] = 2|); # collapse multiple zeros $x = &{$LIB."::__strip_zeros"}([0, 0, 0, 0]); is(@$x, 1, q|@$x = 1|); is($x->[0], 0, q|$x->[0] = 0|); } Math-BigInt-2.005003/t/bigintpm.inc0000644403072340010010000021272114776666035016534 0ustar OSPJADomain Users#include this file into another for subclass testing use strict; use warnings; our ($CLASS, $LIB); ############################################################################## # for testing inheritance of _swap package Math::Foo; use Math::BigInt lib => $main::LIB; our @ISA = qw/Math::BigInt/; use overload # customized overload for sub, since original does not use swap there '-' => sub { my @a = ref($_[0])->_swap(@_); $a[0]->bsub($a[1]); }; sub _swap { # a fake _swap, which reverses the params my $self = shift; # for override in subclass if ($_[2]) { my $c = ref($_[0]) || 'Math::Foo'; return( $_[0]->copy(), $_[1] ); } else { return( Math::Foo->new($_[1]), $_[0] ); } } ############################################################################## package main; is($CLASS->config('lib'), $LIB, "$CLASS->config('lib')"); my ($x, $y, $z, @args, $try, $got, $want); my ($f, $round_mode, $expected_class); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($m, $e); if (s/^&//) { $f = $_; next; } if (/^\$/) { $round_mode = $_; $round_mode =~ s/^\$/$CLASS\->/; next; } @args = split(/:/, $_, 99); $want = pop(@args); $expected_class = $CLASS; if ($want =~ /(.*?)=(.*)/) { $expected_class = $2; $want = $1; } $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try = qq|\$x = $CLASS->bnorm("$args[0]");|; } elsif ($f =~ /^is_(zero|one|odd|even|(non_)?(negative|positive)|nan|int)$/) { $try .= " \$x->$f() || 0;"; } elsif ($f eq "is_inf") { $try .= qq| \$x->is_inf("$args[1]");|; } elsif ($f eq "binf") { $try .= qq| \$x->binf("$args[1]");|; } elsif ($f eq "bone") { $try .= qq| \$x->bone("$args[1]");|; # some unary ops } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp)$/) { $try .= " \$x->$f();"; } elsif ($f =~ /^b[dt]?fac$/) { $try .= " \$x->$f();"; } elsif ($f =~ /^(numify|length|stringify)$/) { $try .= " \$x->$f();"; } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) { $try .= " \$x->$f();"; # overloaded functions } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) { $try .= " \$x = $f(\$x);"; } elsif ($f eq "parts") { $try .= ' ($m, $e) = $x->parts();'; # ->bstr() to see if an object is returned $try .= ' $m = $m->bstr(); $m = "NaN" if !defined $m;'; $try .= ' $e = $e->bstr(); $e = "NaN" if !defined $e;'; $try .= ' "$m,$e";'; } elsif ($f eq "exponent") { # ->bstr() to see if an object is returned $try .= ' $x = $x->exponent()->bstr();'; } elsif ($f eq "mantissa") { # ->bstr() to see if an object is returned $try .= ' $x = $x->mantissa()->bstr();'; } elsif ($f eq "bpi") { $try .= " $CLASS\->bpi(\$x);"; } else { # binary operators $try .= qq| \$y = $CLASS->new("$args[1]");|; if ($f eq "bcmp") { $try .= ' $x->bcmp($y);'; } elsif ($f eq "bround") { $try .= " $round_mode; \$x->bround(\$y);"; } elsif ($f eq "bacmp") { $try .= ' $x->bacmp($y);'; } elsif ($f eq "badd") { $try .= ' $x->badd($y);'; } elsif ($f eq "bsub") { $try .= ' $x->bsub($y);'; } elsif ($f eq "bmul") { $try .= ' $x->bmul($y);'; } elsif ($f eq "bdiv") { $try .= ' $x->bdiv($y);'; } elsif ($f eq "bdiv-list") { $try .= ' join(",", $x->bdiv($y));'; } elsif ($f eq "btdiv") { $try .= ' $x->btdiv($y);'; } elsif ($f eq "btdiv-list") { $try .= ' join (",", $x->btdiv($y));'; # overload via x= } elsif ($f =~ /^.=$/) { $try .= " \$x $f \$y;"; # overload via x } elsif ($f =~ /^.$/) { $try .= " \$x $f \$y;"; } elsif ($f eq "bmod") { $try .= ' $x % $y;'; } elsif ($f eq "bgcd") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= " $CLASS->bgcd(\$x, \$y"; $try .= ", \$z" if defined $args[2]; $try .= ");"; } elsif ($f eq "blcm") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= " $CLASS->blcm(\$x, \$y"; $try .= ", \$z" if defined $args[2]; $try .= ");"; } elsif ($f eq "blsft") { if (defined $args[2]) { $try .= " \$x->blsft(\$y, $args[2]);"; } else { $try .= " \$x << \$y;"; } } elsif ($f eq "brsft") { if (defined $args[2]) { $try .= " \$x->brsft(\$y, $args[2]);"; } else { $try .= " \$x >> \$y;"; } } elsif ($f eq "bnok") { $try .= " \$x->bnok(\$y);"; } elsif ($f eq "bmfac") { $try .= " \$x->bmfac(\$y);"; } elsif ($f eq "broot") { $try .= " \$x->broot(\$y);"; } elsif ($f eq "blog") { $try .= " \$x->blog(\$y);"; } elsif ($f eq "band") { $try .= " \$x & \$y;"; } elsif ($f eq "bior") { $try .= " \$x | \$y;"; } elsif ($f eq "bxor") { $try .= " \$x ^ \$y;"; } elsif ($f eq "bpow") { $try .= " \$x ** \$y;"; } elsif ( $f eq "bmodinv") { $try .= " \$x->bmodinv(\$y);"; } elsif ($f eq "digit") { $try .= " \$x->digit(\$y);"; } elsif ($f eq "batan2") { $try .= " \$x->batan2(\$y);"; } else { # Functions with three arguments $try .= qq| \$z = $CLASS->new("$args[2]");|; if ( $f eq "bmodpow") { $try .= " \$x->bmodpow(\$y, \$z);"; } elsif ($f eq "bmuladd") { $try .= " \$x->bmuladd(\$y, \$z);"; } else { warn "Unknown op '$f'"; } } } # end else all other ops $got = eval $try; print "# Error: $@\n" if $@; # convert hex/binary targets to decimal if ($want =~ /^(0x0x|0b0b)/) { $want =~ s/^0[xb]//; $want = Math::BigInt->new($want)->bstr(); } if ($want eq "") { is($got, undef, $try); } else { # print "try: $try ans: $got $want\n"; is($got, $want, $try); is(ref($got), $expected_class, qq|output is a "$expected_class" object|) if $expected_class ne $CLASS; } # check internal state of number objects is_valid($got, $f) if ref $got; } # end while data tests close DATA; # test whether self-multiplication works correctly (result is 2**64) $try = qq|\$x = $CLASS->new("4294967296");|; $try .= ' $a = $x->bmul($x);'; $got = eval $try; is($got, $CLASS->new(2) ** 64, $try); # test self-pow $try = qq|\$x = $CLASS->new(10);|; $try .= ' $a = $x->bpow($x);'; $got = eval $try; is($got, $CLASS->new(10) ** 10, $try); ############################################################################### # test whether op destroys args or not (should better not) $x = $CLASS->new(3); $y = $CLASS->new(4); $z = $x & $y; is($x, 3, '$z = $x & $y; $x'); is($y, 4, '$z = $x & $y; $y'); is($z, 0, '$z = $x & $y; $z'); $z = $x | $y; is($x, 3, '$z = $x | $y; $x'); is($y, 4, '$z = $x | $y; $y'); is($z, 7, '$z = $x | $y; $z'); $x = $CLASS->new(1); $y = $CLASS->new(2); $z = $x | $y; is($x, 1, '$z = $x | $y; $x'); is($y, 2, '$z = $x | $y; $y'); is($z, 3, '$z = $x | $y; $z'); $x = $CLASS->new(5); $y = $CLASS->new(4); $z = $x ^ $y; is($x, 5, '$z = $x ^ $y; $x'); is($y, 4, '$z = $x ^ $y; $y'); is($z, 1, '$z = $x ^ $y; $z'); $x = $CLASS->new(-5); $y = -$x; is($x, -5, '$y = -$x; $x'); $x = $CLASS->new(-5); $y = abs($x); is($x, -5, '$y = abs($x); $x'); $x = $CLASS->new(8); $y = $CLASS->new(-1); $z = $CLASS->new(5033); my $u = $x->copy()->bmodpow($y, $z); is($u, 4404, '$x->copy()->bmodpow($y, $z); $u'); is($y, -1, '$x->copy()->bmodpow($y, $z); $y'); is($z, 5033, '$x->copy()->bmodpow($y, $z); $z'); $x = $CLASS->new(-5); $y = -$x; is($x, -5, '$y = -$x; $x'); is($y, 5, '$y = -$x; $y'); $x = $CLASS->new(-5); $y = $x->copy()->bneg(); is($x, -5, '$y = $x->copy()->bneg(); $x'); is($y, 5, '$y = $x->copy()->bneg(); $y'); $x = $CLASS->new(-5); $y = $CLASS->new(3); $x->bmul($y); is($x, -15, '$x->bmul($y); $x'); is($y, 3, '$x->bmul($y); $y'); $x = $CLASS->new(-5); $y = $CLASS->new(3); $x->badd($y); is($x, -2, '$x->badd($y); $x'); is($y, 3, '$x->badd($y); $y'); $x = $CLASS->new(-5); $y = $CLASS->new(3); $x->bsub($y); is($x, -8, '$x->bsub($y); $x'); is($y, 3, '$x->bsub($y); $y'); $x = $CLASS->new(-15); $y = $CLASS->new(3); $x->bdiv($y); is($x, -5, '$x->bdiv($y); $x'); is($y, 3, '$x->bdiv($y); $y'); $x = $CLASS->new(-5); $y = $CLASS->new(3); $x->bmod($y); is($x, 1, '$x->bmod($y); $x'); is($y, 3, '$x->bmod($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(3); $x->bmul($y); is($x, 15, '$x->bmul($y); $x'); is($y, 3, '$x->bmul($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(3); $x->badd($y); is($x, 8, '$x->badd($y); $x'); is($y, 3, '$x->badd($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(3); $x->bsub($y); is($x, 2, '$x->bsub($y); $x'); is($y, 3, '$x->bsub($y); $y'); $x = $CLASS->new(15); $y = $CLASS->new(3); $x->bdiv($y); is($x, 5, '$x->bdiv($y); $x'); is($y, 3, '$x->bdiv($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(3); $x->bmod($y); is($x, 2, '$x->bmod($y); $x'); is($y, 3, '$x->bmod($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(-3); $x->bmul($y); is($x, -15, '$x->bmul($y); $x'); is($y, -3, '$x->bmul($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(-3); $x->badd($y); is($x, 2, '$x->badd($y); $x'); is($y, -3, '$x->badd($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(-3); $x->bsub($y); is($x, 8, '$x->bsub($y); $x'); is($y, -3, '$x->bsub($y); $y'); $x = $CLASS->new(15); $y = $CLASS->new(-3); $x->bdiv($y); is($x, -5, '$x->bdiv($y); $x'); is($y, -3, '$x->bdiv($y); $y'); $x = $CLASS->new(5); $y = $CLASS->new(-3); $x->bmod($y); is($x, -1, '$x->bmod($y); $x'); is($y, -3, '$x->bmod($y); $y'); ############################################################################### # check whether overloading cmp works $try = '$x = $CLASS->new(0);'; $try .= ' $y = 10;'; $try .= ' $x ne $y;'; $want = eval $try; ok($want, "overloading cmp works"); # We can't test for working cmpt with other objects here, we would need a dummy # object with stringify overload for this. See Math::String tests as example. ############################################################################### # check reversed order of arguments $try = "\$x = $CLASS->new(10); \$x = 2 ** \$x; \$x == 1024;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS->new(10); \$x = 2 * \$x; \$x == 20;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS->new(10); \$x = 2 + \$x; \$x == 12;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(10); \$x = 2 - \$x; \$x == -8;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(10); \$x = 20 / \$x; \$x == 2;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(3); \$x = 20 % \$x; \$x == 2;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(7); \$x = 20 & \$x; \$x == 4;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(7); \$x = 0x20 | \$x; \$x == 0x27;"; $want = eval $try; ok($want, $try); $try = "\$x = $CLASS\->new(7); \$x = 0x20 ^ \$x; \$x == 0x27;"; $want = eval $try; ok($want, $try); ############################################################################### # check badd(4, 5) form $try = "\$x = $CLASS\->badd(4, 5); \$x == 9;"; $want = eval $try; ok($want, $try); ############################################################################### # check undefs: NOT DONE YET ############################################################################### # bool $x = $CLASS->new(1); if ($x) { pass("\$x = $CLASS->new(1); \$x is true"); } else { fail("\$x = $CLASS->new(1); \$x is true"); } $x = $CLASS->new(0); if (!$x) { pass("\$x = $CLASS->new(0); !\$x is false"); } else { fail("\$x = $CLASS->new(0); !\$x is false"); } ############################################################################### # objectify() @args = Math::BigInt::objectify(2, 4, 5); is(scalar(@args), 3, "objectify(2, 4, 5) gives $CLASS, 4, 5"); like($args[0], qr/^Math::BigInt/, "first arg matches /^Math::BigInt/"); is($args[1], 4, "second arg is 4"); is($args[2], 5, "third arg is 5"); @args = Math::BigInt::objectify(0, 4, 5); is(scalar(@args), 3, "objectify(0, 4, 5) gives $CLASS, 4, 5"); like($args[0], qr/^Math::BigInt/, "first arg matches /^Math::BigInt/"); is($args[1], 4, "second arg is 4"); is($args[2], 5, "third arg is 5"); @args = Math::BigInt::objectify(2, 4, 5); is(scalar(@args), 3, "objectify(2, 4, 5) gives $CLASS, 4, 5"); like($args[0], qr/^Math::BigInt/, "first arg matches /^Math::BigInt/"); is($args[1], 4, "second arg is 4"); is($args[2], 5, "third arg is 5"); @args = Math::BigInt::objectify(2, 4, 5, 6, 7); is(scalar(@args), 5, "objectify(2, 4, 5, 6, 7) gives $CLASS, 4, 5, 6, 7"); like($args[0], qr/^Math::BigInt/, "first arg matches /^Math::BigInt/"); is($args[1], 4, "second arg is 4"); is(ref($args[1]), $args[0], "second arg is a $args[0] object"); is($args[2], 5, "third arg is 5"); is(ref($args[2]), $args[0], "third arg is a $args[0] object"); is($args[3], 6, "fourth arg is 6"); is(ref($args[3]), '', "fourth arg is a scalar"); is($args[4], 7, "fifth arg is 7"); is(ref($args[4]), '', "fifth arg is a scalar"); @args = Math::BigInt::objectify(2, $CLASS, 4, 5, 6, 7); is(scalar(@args), 5, "objectify(2, $CLASS, 4, 5, 6, 7) gives $CLASS, 4, 5, 6, 7"); is($args[0], $CLASS, "first arg is $CLASS"); is($args[1], 4, "second arg is 4"); is(ref($args[1]), $args[0], "second arg is a $args[0] object"); is($args[2], 5, "third arg is 5"); is(ref($args[2]), $args[0], "third arg is a $args[0] object"); is($args[3], 6, "fourth arg is 6"); is(ref($args[3]), '', "fourth arg is a scalar"); is($args[4], 7, "fifth arg is 7"); is(ref($args[4]), '', "fifth arg is a scalar"); ############################################################################### # test whether an opp calls objectify properly or not (or at least does what # it should do given non-objects, w/ or w/o objectify()) is($CLASS->new(123)->badd(123), 246, qq|$CLASS->new(123)->badd(123) = 246|);; is($CLASS->badd(123, 321), 444, qq|$CLASS->badd(123, 321) = 444|);; is($CLASS->badd(123, $CLASS->new(321)), 444, qq|$CLASS->badd(123, $CLASS->new(321)) = 444|);; is($CLASS->new(123)->bsub(122), 1, qq|$CLASS->new(123)->bsub(122) = 1|);; is($CLASS->bsub(321, 123), 198, qq|$CLASS->bsub(321, 123) = 198|);; is($CLASS->bsub(321, $CLASS->new(123)), 198, qq|$CLASS->bsub(321, $CLASS->new(123)) = 198|);; is($CLASS->new(123)->bmul(123), 15129, qq|$CLASS->new(123)->bmul(123) = 15129|);; is($CLASS->bmul(123, 123), 15129, qq|$CLASS->bmul(123, 123) = 15129|);; is($CLASS->bmul(123, $CLASS->new(123)), 15129, qq|$CLASS->bmul(123, $CLASS->new(123)) = 15129|);; is($CLASS->new(15129)->bdiv(123), 123, qq|$CLASS->new(15129)->bdiv(123) = 123|);; is($CLASS->bdiv(15129, 123), 123, qq|$CLASS->bdiv(15129, 123) = 123|);; is($CLASS->bdiv(15129, $CLASS->new(123)), 123, qq|$CLASS->bdiv(15129, $CLASS->new(123)) = 123|);; is($CLASS->new(15131)->bmod(123), 2, qq|$CLASS->new(15131)->bmod(123) = 2|);; is($CLASS->bmod(15131, 123), 2, qq|$CLASS->bmod(15131, 123) = 2|);; is($CLASS->bmod(15131, $CLASS->new(123)), 2, qq|$CLASS->bmod(15131, $CLASS->new(123)) = 2|);; is($CLASS->new(2)->bpow(16), 65536, qq|$CLASS->new(2)->bpow(16) = 65536|);; is($CLASS->bpow(2, 16), 65536, qq|$CLASS->bpow(2, 16) = 65536|);; is($CLASS->bpow(2, $CLASS->new(16)), 65536, qq|$CLASS->bpow(2, $CLASS->new(16)) = 65536|);; is($CLASS->new(2**15)->brsft(1), 2**14, qq|$CLASS->new(2**15)->brsft(1) = 2**14|);; is($CLASS->brsft(2**15, 1), 2**14, qq|$CLASS->brsft(2**15, 1) = 2**14|);; is($CLASS->brsft(2**15, $CLASS->new(1)), 2**14, qq|$CLASS->brsft(2**15, $CLASS->new(1)) = 2**14|);; is($CLASS->new(2**13)->blsft(1), 2**14, qq|$CLASS->new(2**13)->blsft(1) = 2**14|);; is($CLASS->blsft(2**13, 1), 2**14, qq|$CLASS->blsft(2**13, 1) = 2**14|);; is($CLASS->blsft(2**13, $CLASS->new(1)), 2**14, qq|$CLASS->blsft(2**13, $CLASS->new(1)) = 2**14|);; ############################################################################### # test for floating-point input (other tests in bnorm() below) $z = 1050000000000000; # may be int on systems with 64bit? $x = $CLASS->new($z); is($x->bsstr(), '105e+13', # not 1.05e+15 qq|\$x = $CLASS->new($z); \$x->bsstr() = "105e+13"|); $z = 1e+129; # definitely a float (may fail on UTS) # don't compare to $z, since some Perl versions stringify $z into something # like '1.e+129' or something equally ugly SKIP:{ my $vax_float = (pack("d", 1) =~ /^[\x80\x10]\x40/); skip("vax float range smaller", 1) if $vax_float; $x = $CLASS->new($z); is($x -> bsstr(), '1e+129', qq|\$x = $CLASS->new($z); \$x->bsstr() = "1e+129"|); } ############################################################################### # test for whitespace including newlines to be handled correctly # is($Math::BigInt::strict, 1); # the default foreach my $c (qw/1 12 123 1234 12345 123456 1234567 12345678 123456789 1234567890/) { my $m = $CLASS->new($c); is($CLASS->new("$c"), $m, qq|$CLASS->new("$c") = $m|); is($CLASS->new(" $c"), $m, qq|$CLASS->new(" $c") = $m|); is($CLASS->new("$c "), $m, qq|$CLASS->new("$c ") = $m|); is($CLASS->new(" $c "), $m, qq|$CLASS->new(" $c ") = $m|); is($CLASS->new("\n$c"), $m, qq|$CLASS->new("\\n$c") = $m|); is($CLASS->new("$c\n"), $m, qq|$CLASS->new("$c\\n") = $m|); is($CLASS->new("\n$c\n"), $m, qq|$CLASS->new("\\n$c\\n") = $m|); is($CLASS->new(" \n$c\n"), $m, qq|$CLASS->new(" \\n$c\\n") = $m|); is($CLASS->new(" \n$c \n"), $m, qq|$CLASS->new(" \\n$c \\n") = $m|); is($CLASS->new(" \n$c\n "), $m, qq|$CLASS->new(" \\n$c\\n ") = $m|); is($CLASS->new(" \n$c\n1"), 'NaN', qq|$CLASS->new(" \\n$c\\n1") = 'NaN'|); is($CLASS->new("1 \n$c\n1"), 'NaN', qq|$CLASS->new("1 \\n$c\\n1") = 'NaN'|); } ############################################################################### # prime number tests, also test for **= and length() # found on: http://www.utm.edu/research/primes/notes/by_year.html # ((2^148)+1)/17 $x = $CLASS->new(2); $x **= 148; $x++; $x = $x / 17; is($x, "20988936657440586486151264256610222593863921", "value of ((2^148)+1)/17"); is($x->length(), length("20988936657440586486151264256610222593863921"), "number of digits in ((2^148)+1)/17"); # MM7 = 2^127-1 $x = $CLASS->new(2); $x **= 127; $x--; is($x, "170141183460469231731687303715884105727", "value of 2^127-1"); $x = $CLASS->new('215960156869840440586892398248'); ($x, $y) = $x->length(); is($x, 30, "number of digits in 2^127-1"); is($y, 0, "number of digits in fraction part of 2^127-1"); $x = $CLASS->new('1_000_000_000_000'); ($x, $y) = $x->length(); is($x, 13, "number of digits in 1_000_000_000_000"); is($y, 0, "number of digits in fraction part of 1_000_000_000_000"); # test <<=, >>= $x = $CLASS->new('2'); $y = $CLASS->new('18'); is($x <<= $y, 2 << 18, "2 <<= 18 with $CLASS objects"); is($x, 2 << 18, "2 <<= 18 with $CLASS objects"); is($x >>= $y, 2, "2 >>= 18 with $CLASS objects"); is($x, 2, "2 >>= 18 with $CLASS objects"); # I am afraid the following is not yet possible due to slowness # Also, testing for 2 meg output is a bit hard ;) #$x = $CLASS->new(2); #$x **= 6972593; #$x--; # 593573509*2^332162+1 has exactly 1,000,000 digits # takes about 24 mins on 300 Mhz, so cannot be done yet ;) #$x = $CLASS->new(2); #$x **= 332162; #$x *= "593573509"; #$x++; #is($x->length(), 1_000_000); ############################################################################### # inheritance and overriding of _swap $x = Math::Foo->new(5); $x = $x - 8; # 8 - 5 instead of 5-8 is($x, 3, '$x = Math::Foo->new(5); $x = $x - 8; $x = 3'); is(ref($x), 'Math::Foo', '$x is an object of class "Math::Foo"'); $x = Math::Foo->new(5); $x = 8 - $x; # 5 - 8 instead of 8 - 5 is($x, -3, '$x = Math::Foo->new(5); $x = 8 - $x; $x = -3'); is(ref($x), 'Math::Foo', '$x is an object of class "Math::Foo"'); ############################################################################### # Test whether +inf eq inf # # This tried to test whether Math::BigInt inf equals Perl inf. Unfortunately, # Perl hasn't (before 5.7.3 at least) a consistent way to say inf, and some # things like 1e100000 crash on some platforms. So simple test for the string # 'inf'. $x = $CLASS->new('+inf'); is($x, 'inf', qq|$CLASS->new("+inf") = "inf"|); ############################################################################### # numify() and 64 bit integer support require Config; SKIP: { skip("no 64 bit integer support", 4) if ! $Config::Config{use64bitint} || ! $Config::Config{use64bitall} || "$]" < 5.007001; # The following should not give "1.84467440737096e+19". $x = $CLASS -> new(2) -> bpow(64) -> bdec(); is($x -> bstr(), "18446744073709551615", "bigint 2**64-1 as string"); is($x -> numify(), "18446744073709551615", "bigint 2**64-1 as number"); # The following should not give "-9.22337203685478e+18". $x = $CLASS -> new(2) -> bpow(63) -> bneg(); is($x -> bstr(), "-9223372036854775808", "bigint -2**63 as string"); is($x -> numify(), "-9223372036854775808", "bigint -2**63 as number"); }; ############################################################################### ############################################################################### # the following tests only make sense with Math::BigInt::Calc or BareCalc or # FastCalc SKIP: { # skip GMP, Pari et al. skip("skipping tests not intended for the backend $LIB", 50) unless $LIB =~ /^Math::BigInt::(Bare|Fast)?Calc$/; ########################################################################### # check proper length of internal arrays my $bl = $LIB->_base_len(); my $BASE = '9' x $bl; my $MAX = $BASE; $BASE++; # f.i. 9999 $x = $CLASS->new($MAX); is_valid($x); # 10000 $x += 1; is($x, $BASE, "\$x == $BASE"); is_valid($x); # 9999 again $x -= 1; is($x, $MAX, "\$x == $MAX"); is_valid($x); ########################################################################### # check numify $x = $CLASS->new($BASE-1); is($x->numify(), $BASE-1, q|$x->numify() = $BASE-1|); $x = $CLASS->new(-($BASE-1)); is($x->numify(), -($BASE-1), q|$x->numify() = -($BASE-1)|); # +0 is to protect from 1e15 vs 100000000 (stupid to_string aaarglburbll...) $x = $CLASS->new($BASE); is($x->numify()+0, $BASE+0, q|$x->numify()+0 = $BASE+0|); $x = $CLASS->new(-$BASE); is($x->numify(), -$BASE, q|$x->numify() = -$BASE|); $x = $CLASS->new(-($BASE*$BASE*1+$BASE*1+1)); is($x->numify(), -($BASE*$BASE*1+$BASE*1+1), q|$x->numify() = -($BASE*$BASE*1+$BASE*1+1))|); ########################################################################### # test bug in _digits with length($c[-1]) where $c[-1] was "00001" instead # of 1 $x = $CLASS->new($BASE - 2); $x++; $x++; $x++; $x++; ok($x > $BASE, '$x > $BASE'); $x = $CLASS->new($BASE + 3); $x++; ok($x > $BASE, '$x > $BASE'); # test for +0 instead of int(): $x = $CLASS->new($MAX); is($x->length(), length($MAX), q|$x->length() = length($MAX)|); ########################################################################### # test bug that $CLASS->digit($string) did not work is($CLASS->digit(123, 2), 1, qq|$CLASS->digit(123, 2) = 1|); ########################################################################### # bug in sub where number with at least 6 trailing zeros after any op failed $x = $CLASS->new(123456); $z = $CLASS->new(10000); $z *= 10; $x -= $z; is($z, 100000, "testing bug in sub"); is($x, 23456, "testing bug in sub"); ########################################################################### # bug in shortcut in mul() # construct a number with a zero-hole of BASE_LEN_SMALL { my @bl = $LIB->_base_len(); my $bl = $bl[5]; # Compute the value. $x = ('1' x $bl) . ('0' x $bl) . ('1' x $bl) . ('0' x $bl); $y = '1' x (2 * $bl); $x = $CLASS->new($x)->bmul($y); # Build the expected output. $y = ''; if ($bl >= 2) { $y .= '123456790' x int(($bl - 2) / 9); $y .= substr '123456790', 0, ($bl - 2) % 9; $y .= ($bl - 1) % 9; } $y .= ((($bl - 1) % 9) + 1) x ($bl * 3); if ($bl >= 2) { $y .= substr '098765432', -(($bl - 1) % 9); $y .= '098765432' x int(($bl - 2) / 9); } $y .= '1'; $y .= '0' x $bl; is($x, $y, "testing number with a zero-hole of BASE_LEN_SMALL"); ######################################################################### # see if mul shortcut for small numbers works $x = '9' x $bl; $x = $CLASS->new($x); # 999 * 999 => 998 . 001 # 9999 * 9999 => 9998 . 0001 $y = '9' x ($bl - 1) . '8' . '0' x ($bl - 1) . '1'; is($x * $x, $y, "see if mul shortcut for small numbers works ($x * $x = $y)"); } ########################################################################### # bug with rest "-0" in div, causing further div()s to fail $x = $CLASS->new('-322056000'); ($x, $y) = $x->bdiv('-12882240'); is($y, '0', '-322056000 / -12882240 has remainder 0'); is_valid($y); # $y not '-0' ########################################################################### # bug in $x->bmod($y) # if $x < 0 and $y > 0 $x = $CLASS->new('-629'); is($x->bmod(5033), 4404, q|$x->bmod(5033) = 4404|); ########################################################################### # bone/binf etc as plain calls (Lite failed them) is($CLASS->bzero(), 0, qq|$CLASS->bzero() = 0|); is($CLASS->bone(), 1, qq|$CLASS->bone() = 1|); is($CLASS->bone("+"), 1, qq|$CLASS->bone("+") = 1|); is($CLASS->bone("-"), -1, qq|$CLASS->bone("-") = -1|); is($CLASS->bnan(), "NaN", qq|$CLASS->bnan() = "NaN"|); is($CLASS->binf(), "inf", qq|$CLASS->binf() = "inf"|); is($CLASS->binf("+"), "inf", qq|$CLASS->binf("+") = "inf"|); is($CLASS->binf("-"), "-inf", qq|$CLASS->binf("-") = "-inf"|); is($CLASS->binf("-inf"), "-inf", qq|$CLASS->binf("-inf") = "-inf"|); ########################################################################### # is_one("-") is($CLASS->new(1)->is_one("-"), 0, qq|$CLASS->new(1)->is_one("-") = 0|); is($CLASS->new(-1)->is_one("-"), 1, qq|$CLASS->new(-1)->is_one("-") = 1|); is($CLASS->new(1)->is_one(), 1, qq|$CLASS->new(1)->is_one() = 1|); is($CLASS->new(-1)->is_one(), 0, qq|$CLASS->new(-1)->is_one() = 0|); ########################################################################### # [perl #30609] bug with $x -= $x not being 0, but 2*$x $x = $CLASS->new(3); $x -= $x; is($x, 0, qq|\$x = $CLASS->new(3); \$x -= \$x; = 0|); $x = $CLASS->new(-3); $x -= $x; is($x, 0, qq|\$x = $CLASS->new(-3); \$x -= \$x; = 0|); $x = $CLASS->new("NaN"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("NaN"); \$x -= \$x; \$x->is_nan() = 1|); $x = $CLASS->new("inf"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("inf"); \$x -= \$x; \$x->is_nan() = 1|); $x = $CLASS->new("-inf"); $x -= $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("-inf"); \$x -= \$x; \$x->is_nan() = 1|); $x = $CLASS->new("NaN"); $x += $x; is($x->is_nan(), 1, qq|\$x = $CLASS->new("NaN"); \$x += \$x; \$x->is_nan() = 1|); $x = $CLASS->new("inf"); $x += $x; is($x->is_inf(), 1, qq|\$x = $CLASS->new("inf"); \$x += \$x; \$x->is_inf() = 1|); $x = $CLASS->new("-inf"); $x += $x; is($x->is_inf("-"), 1, qq|\$x = $CLASS->new("-inf"); \$x += \$x; \$x->is_inf("-") = 1|); $x = $CLASS->new(3); $x += $x; is($x, 6, qq|\$x = $CLASS->new(3); \$x += \$x; \$x = 6|); $x = $CLASS->new(-3); $x += $x; is($x, -6, qq|\$x = $CLASS->new(-3); \$x += \$x; \$x = -6|); $x = $CLASS->new(3); $x *= $x; is($x, 9, qq|\$x = $CLASS->new(3); \$x *= \$x; \$x = 9|); $x = $CLASS->new(-3); $x *= $x; is($x, 9, qq|\$x = $CLASS->new(-3); \$x *= \$x; \$x = 9|); $x = $CLASS->new(3); $x /= $x; is($x, 1, qq|\$x = $CLASS->new(3); \$x /= \$x; \$x = 1|); $x = $CLASS->new(-3); $x /= $x; is($x, 1, qq|\$x = $CLASS->new(-3); \$x /= \$x; \$x = 1|); $x = $CLASS->new(3); $x %= $x; is($x, 0, qq|\$x = $CLASS->new(3); \$x %= \$x; \$x = 0|); $x = $CLASS->new(-3); $x %= $x; is($x, 0, qq|\$x = $CLASS->new(-3); \$x %= \$x; \$x = 0|); } ############################################################################### # all tests done 1; ############################################################################### # sub to check validity of a Math::BigInt internally, to ensure that no op # leaves a number object in an invalid state (f.i. "-0") sub is_valid { my ($x, $f) = @_; my $e = 0; # error? # allow the check to pass for all Lite, and all MBI and subclasses # ok as reference? $e = 'Not a reference to Math::BigInt' if ref($x) !~ /^Math::BigInt/; if (ref($x) ne 'Math::BigInt::Lite') { # has ok sign? $e = qq|Illegal sign $x->{sign}| . qq| (expected: "+", "-", "-inf", "+inf" or "NaN"| if $e eq '0' && $x->{sign} !~ /^(\+|-|\+inf|-inf|NaN)$/; $e = "-0 is invalid!" if $e ne '0' && $x->{sign} eq '-' && $x == 0; $e = $LIB->_check($x->{value}) if $e eq '0'; } # test done, see if error did crop up if ($e eq '0') { pass('is a valid object'); return; } fail($e . " after op '$f'"); } __DATA__ &.= 1234:-345:1234-345 &+= 1:2:3 -1:-2:-3 &-= 1:2:-1 -1:-2:1 &*= 2:3:6 -1:5:-5 &%= 100:3:1 8:9:8 -629:5033:4404 &/= 100:3:33 -8:2:-4 &|= 2:1:3 &&= 5:7:5 &^= 5:7:2 &blog # invalid:2:NaN 122:invalid:NaN invalid:invalid:NaN # 122:inf:0 inf:122:inf 122:-inf:0 -inf:122:inf -inf:-inf:NaN 0:4:-inf -21:4:NaN 21:-21:NaN # 0:-inf:NaN 0:-1:NaN 0:0:NaN 0:1:NaN 0:inf:NaN # 1:-inf:0 1:-1:0 1:0:0 1:1:NaN 1:4:0 1:inf:0 # inf:-inf:NaN inf:-1:NaN inf:0:NaN inf:1:NaN inf:4:inf inf:inf:NaN # # normal results 1024:2:10 81:3:4 # 3.01.. truncate 82:3:4 # 3.9... truncate 80:3:3 4096:2:12 15625:5:6 15626:5:6 15624:5:5 1000:10:3 10000:10:4 100000:10:5 1000000:10:6 10000000:10:7 100000000:10:8 8916100448256:12:12 8916100448257:12:12 8916100448255:12:11 2251799813685248:8:17 72057594037927936:2:56 144115188075855872:2:57 288230376151711744:2:58 576460752303423488:2:59 1329227995784915872903807060280344576:2:120 # $x == $base => result 1 3:3:1 # $x < $base => result 0 ($base ** 0 <= $x) 3:4:0 # $x == 1 => result 0 1:5:0 &is_negative 0:0 -1:1 1:0 +inf:0 -inf:1 invalid:0 &is_positive 0:0 -1:0 1:1 +inf:1 -inf:0 invalid:0 &is_non_negative 0:1 -1:0 1:1 +inf:1 -inf:0 NaN:0 &is_non_positive 0:1 -1:1 1:0 +inf:0 -inf:1 NaN:0 &is_int -inf:0 +inf:0 invalid:0 1:1 0:1 123e12:1 &is_odd abc:0 0:0 1:1 3:1 -1:1 -3:1 10000001:1 10000002:0 2:0 120:0 121:1 &is_even abc:0 0:1 1:0 3:0 -1:0 -3:0 10000001:0 10000002:1 2:1 120:1 121:0 &bacmp +0:-0:0 +0:+1:-1 -1:+1:0 +1:-1:0 -1:+2:-1 +2:-1:1 -123456789:+987654321:-1 +123456789:-987654321:-1 +987654321:+123456789:1 -987654321:+123456789:1 -123:+4567889:-1 # NaNs invalid:123: 123:invalid: invalid:invalid: # infinity +inf:+inf:0 -inf:-inf:0 +inf:-inf:0 -inf:+inf:0 +inf:123:1 -inf:123:1 +inf:-123:1 -inf:-123:1 123:-inf:-1 -123:inf:-1 -123:-inf:-1 123:inf:-1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: &bnorm 0e999:0 0e-999:0 -0e999:0 -0e-999:0 123:123 123.000:123 123e0:123 123e+0:123 123e-0:123 123.000e0:123 123.000e+0:123 123.000e-0:123 # binary input 0babc:NaN 0b123:NaN 0b0:0 -0b0:0 -0b1:-1 0b0001:1 0b001:1 0b011:3 0b101:5 0b1001:9 0b10001:17 0b100001:33 0b1000001:65 0b10000001:129 0b100000001:257 0b1000000001:513 0b10000000001:1025 0b100000000001:2049 0b1000000000001:4097 0b10000000000001:8193 0b100000000000001:16385 0b1000000000000001:32769 0b10000000000000001:65537 0b100000000000000001:131073 0b1000000000000000001:262145 0b10000000000000000001:524289 0b100000000000000000001:1048577 0b1000000000000000000001:2097153 0b10000000000000000000001:4194305 0b100000000000000000000001:8388609 0b1000000000000000000000001:16777217 0b10000000000000000000000001:33554433 0b100000000000000000000000001:67108865 0b1000000000000000000000000001:134217729 0b10000000000000000000000000001:268435457 0b100000000000000000000000000001:536870913 0b1000000000000000000000000000001:1073741825 0b10000000000000000000000000000001:2147483649 0b100000000000000000000000000000001:4294967297 0b1000000000000000000000000000000001:8589934593 0b10000000000000000000000000000000001:17179869185 0b1_0_1:5 0b0_0_0_1:1 # hex input -0x0:0 0xabcdefgh:NaN 0x1234:4660 0xabcdef:11259375 -0xABCDEF:-11259375 -0x1234:-4660 0x12345678:305419896 0x1_2_3_4_56_78:305419896 0xa_b_c_d_e_f:11259375 0x9:9 0x11:17 0x21:33 0x41:65 0x81:129 0x101:257 0x201:513 0x401:1025 0x801:2049 0x1001:4097 0x2001:8193 0x4001:16385 0x8001:32769 0x10001:65537 0x20001:131073 0x40001:262145 0x80001:524289 0x100001:1048577 0x200001:2097153 0x400001:4194305 0x800001:8388609 0x1000001:16777217 0x2000001:33554433 0x4000001:67108865 0x8000001:134217729 0x10000001:268435457 0x20000001:536870913 0x40000001:1073741825 0x80000001:2147483649 0x100000001:4294967297 0x200000001:8589934593 0x400000001:17179869185 0x800000001:34359738369 # bug found by Mark Lakata in Calc.pm creating too big one-element numbers # in _from_hex() 0x2dd59e18a125dbed30a6ab1d93e9c855569f44f75806f0645dc9a2e98b808c3:1295719234436071846486578237372801883390756472611551858964079371952886122691 # inf input inf:inf +inf:inf -inf:-inf 0inf:NaN # abnormal input :NaN abc:NaN 1 a:NaN 1bcd2:NaN 11111b:NaN +1z:NaN -1z:NaN # only one underscore between two digits _123:NaN _123_:NaN 1E_12:NaN 1_E_12:NaN +_1E12:NaN +0_1E2:100 +0_0_1E2:100 -0_0_1E2:-100 -0_0_1E+0_0_2:-100 E1:NaN E23:NaN 1.23E1:NaN 1.23E-1:NaN # bug with two E's in number being valid 1e2e3:NaN 1e2r:NaN 1e2.0:NaN # bug with two '.' in number being valid 1.2.2:NaN 1.2.3e1:NaN -1.2.3:NaN -1.2.3e-4:NaN 1.2e3.4:NaN 1.2e-3.4:NaN 1.2.3.4:NaN 1.2.t:NaN 1..2:NaN 1..2e1:NaN 1..2e1..1:NaN 12e1..1:NaN ..2:NaN .-2:NaN # leading zeros 012:12 0123:123 01234:1234 012345:12345 0123456:123456 01234567:1234567 012345678:12345678 0123456789:123456789 01234567891:1234567891 012345678912:12345678912 0123456789123:123456789123 01234567891234:1234567891234 # some inputs that result in zero 0e0:0 +0e0:0 +0e+0:0 -0e+0:0 0e-0:0 -0e-0:0 +0e-0:0 000:0 00e2:0 00e02:0 000e002:0 000e1230:0 00e-3:0 00e+3:0 00e-03:0 00e+03:0 -000:0 -00e2:0 -00e02:0 -000e002:0 -000e1230:0 -00e-3:0 -00e+3:0 -00e-03:0 -00e+03:0 # normal input 0:0 +0:0 +00:0 +000:0 000000000000000000:0 -0:0 -0000:0 +1:1 +01:1 +001:1 +00000100000:100000 123456789:123456789 -1:-1 -01:-1 -001:-1 -123456789:-123456789 -00000100000:-100000 1_2_3:123 10000000000E-1_0:1 1E2:100 1E1:10 1E0:1 1.23E2:123 100E-1:10 # floating point input # .2e2:20 1.E3:1000 1.01E2:101 1010E-1:101 -1010E0:-1010 -1010E1:-10100 1234.00:1234 # non-integer numbers -1010E-2:NaN -1.01E+1:NaN -1.01E-1:NaN 1E-999999:NaN 0.5:NaN &bnan 1:NaN 2:NaN abc:NaN &bone 2:+:1 2:-:-1 invalid:-:-1 invalid:+:1 3::1 &binf 1:+:inf 2:-:-inf 3:+inf:inf &is_nan 123:0 abc:1 NaN:1 -123:0 &is_inf +inf::1 -inf::1 abc::0 1::0 NaN::0 -1::0 +inf:-:0 +inf:+:1 -inf:-:1 -inf:+:0 -inf:-inf:1 -inf:+inf:0 +inf:-inf:0 +inf:+inf:1 +iNfInItY::1 -InFiNiTy::1 &blsft abc:abc:NaN +2:+2:8 +1:+32:4294967296 +1:+48:281474976710656 +8:-2:2 # exercise base 10 +12345:4:10:123450000 -1234:0:10:-1234 +1234:0:10:1234 +2:2:10:200 +12:2:10:1200 +1234:-3:10:1 1234567890123:12:10:1234567890123000000000000 -3:1:2:-6 -5:1:2:-10 -2:1:2:-4 -102533203:1:2:-205066406 &brsft abc:abc:NaN +8:+2:2 +4294967296:+32:1 +281474976710656:+48:1 +2:-2:8 # exercise base 10 -1234:0:10:-1234 +1234:0:10:1234 +200:2:10:2 +1234:3:10:1 +1234:2:10:12 +1234:-3:10:1234000 310000:4:10:31 12300000:5:10:123 1230000000000:10:10:123 09876123456789067890:12:10:9876123 1234561234567890123:13:10:123456 820265627:1:2:410132813 # test shifting negative numbers in base 2 -15:1:2:-8 -14:1:2:-7 -13:1:2:-7 -12:1:2:-6 -11:1:2:-6 -10:1:2:-5 -9:1:2:-5 -8:1:2:-4 -7:1:2:-4 -6:1:2:-3 -5:1:2:-3 -4:1:2:-2 -3:1:2:-2 -2:1:2:-1 -1:1:2:-1 -1640531254:2:2:-410132814 -1640531254:1:2:-820265627 -820265627:1:2:-410132814 -205066405:1:2:-102533203 &bsstr +inf:inf -inf:-inf 1e+34:1e+34 123.456E3:123456e+0 100:1e+2 bsstrabc:NaN -5:-5e+0 -100:-1e+2 &numify 5:5 -5:-5 100:100 -100:-100 &bneg invalid:NaN +inf:-inf -inf:inf abd:NaN 0:0 1:-1 -1:1 +123456789:-123456789 -123456789:123456789 &babs invalid:NaN +inf:inf -inf:inf 0:0 1:1 -1:1 +123456789:123456789 -123456789:123456789 &bsgn NaN:NaN +inf:1 -inf:-1 0:0 +123456789:1 -123456789:-1 &bcmp invalid:invalid: invalid:0: 0:invalid: 0:0:0 -1:0:-1 0:-1:1 1:0:1 0:1:-1 -1:1:-1 1:-1:1 -1:-1:0 1:1:0 123:123:0 123:12:1 12:123:-1 -123:-123:0 -123:-12:-1 -12:-123:1 123:124:-1 124:123:1 -123:-124:1 -124:-123:-1 100:5:1 -123456789:987654321:-1 +123456789:-987654321:1 -987654321:123456789:-1 -inf:5432112345:-1 +inf:5432112345:1 -inf:-5432112345:-1 +inf:-5432112345:1 +inf:+inf:0 -inf:-inf:0 +inf:-inf:1 -inf:+inf:-1 5:inf:-1 5:inf:-1 -5:-inf:1 -5:-inf:1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: &binc abc:NaN +inf:inf -inf:-inf +0:1 +1:2 -1:0 &bdec abc:NaN +inf:inf -inf:-inf +0:-1 +1:0 -1:-2 &badd abc:abc:NaN abc:0:NaN +0:abc:NaN +inf:-inf:NaN -inf:+inf:NaN +inf:+inf:inf -inf:-inf:-inf invalid:+inf:NaN invalid:+inf:NaN +inf:invalid:NaN -inf:invalid:NaN +inf:1:inf -inf:1:-inf 1:+inf:inf 1:-inf:-inf 0:0:0 1:0:1 0:1:1 1:1:2 -1:0:-1 0:-1:-1 -1:-1:-2 -1:+1:0 +1:-1:0 +9:+1:10 +99:+1:100 +999:+1:1000 +9999:+1:10000 +99999:+1:100000 +999999:+1:1000000 +9999999:+1:10000000 +99999999:+1:100000000 +999999999:+1:1000000000 +9999999999:+1:10000000000 +99999999999:+1:100000000000 +10:-1:9 +100:-1:99 +1000:-1:999 +10000:-1:9999 +100000:-1:99999 +1000000:-1:999999 +10000000:-1:9999999 +100000000:-1:99999999 +1000000000:-1:999999999 +10000000000:-1:9999999999 +123456789:987654321:1111111110 -123456789:987654321:864197532 -123456789:-987654321:-1111111110 +123456789:-987654321:-864197532 -1:10001:10000 -1:100001:100000 -1:1000001:1000000 -1:10000001:10000000 -1:100000001:100000000 -1:1000000001:1000000000 -1:10000000001:10000000000 -1:100000000001:100000000000 -1:1000000000001:1000000000000 -1:10000000000001:10000000000000 -1:-10001:-10002 -1:-100001:-100002 -1:-1000001:-1000002 -1:-10000001:-10000002 -1:-100000001:-100000002 -1:-1000000001:-1000000002 -1:-10000000001:-10000000002 -1:-100000000001:-100000000002 -1:-1000000000001:-1000000000002 -1:-10000000000001:-10000000000002 &bsub abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:inf -inf:+inf:-inf +inf:+inf:NaN -inf:-inf:NaN +inf:1:inf -inf:1:-inf 1:+inf:-inf 1:-inf:inf +0:+0:0 +1:+0:1 +0:+1:-1 +1:+1:0 -1:+0:-1 +0:-1:1 -1:-1:0 -1:+1:-2 +1:-1:2 +9:+1:8 +99:+1:98 +999:+1:998 +9999:+1:9998 +99999:+1:99998 +999999:+1:999998 +9999999:+1:9999998 +99999999:+1:99999998 +999999999:+1:999999998 +9999999999:+1:9999999998 +99999999999:+1:99999999998 +10:-1:11 +100:-1:101 +1000:-1:1001 +10000:-1:10001 +100000:-1:100001 +1000000:-1:1000001 +10000000:-1:10000001 +100000000:-1:100000001 +1000000000:-1:1000000001 +10000000000:-1:10000000001 +123456789:+987654321:-864197532 -123456789:+987654321:-1111111110 -123456789:-987654321:864197532 +123456789:-987654321:1111111110 10001:1:10000 100001:1:100000 1000001:1:1000000 10000001:1:10000000 100000001:1:100000000 1000000001:1:1000000000 10000000001:1:10000000000 100000000001:1:100000000000 1000000000001:1:1000000000000 10000000000001:1:10000000000000 10001:-1:10002 100001:-1:100002 1000001:-1:1000002 10000001:-1:10000002 100000001:-1:100000002 1000000001:-1:1000000002 10000000001:-1:10000000002 100000000001:-1:100000000002 1000000000001:-1:1000000000002 10000000000001:-1:10000000000002 &bmuladd abc:abc:0:NaN abc:+0:0:NaN +0:abc:0:NaN +0:0:abc:NaN invalid:+inf:0:NaN invalid:-inf:0:NaN -inf:invalid:0:NaN +inf:invalid:0:NaN +inf:+inf:0:inf +inf:-inf:0:-inf -inf:+inf:0:-inf -inf:-inf:0:inf +0:+0:0:0 +0:+1:0:0 +1:+0:0:0 +0:-1:0:0 -1:+0:0:0 123456789123456789:0:0:0 0:123456789123456789:0:0 -1:-1:0:1 -1:-1:0:1 -1:+1:0:-1 +1:-1:0:-1 +1:+1:0:1 +2:+3:0:6 -2:+3:0:-6 +2:-3:0:-6 -2:-3:0:6 111:111:0:12321 10101:10101:0:102030201 1001001:1001001:0:1002003002001 100010001:100010001:0:10002000300020001 10000100001:10000100001:0:100002000030000200001 11111111111:9:0:99999999999 22222222222:9:0:199999999998 33333333333:9:0:299999999997 44444444444:9:0:399999999996 55555555555:9:0:499999999995 66666666666:9:0:599999999994 77777777777:9:0:699999999993 88888888888:9:0:799999999992 99999999999:9:0:899999999991 11111111111:9:1:100000000000 22222222222:9:1:199999999999 33333333333:9:1:299999999998 44444444444:9:1:399999999997 55555555555:9:1:499999999996 66666666666:9:1:599999999995 77777777777:9:1:699999999994 88888888888:9:1:799999999993 99999999999:9:1:899999999992 -3:-4:-5:7 3:-4:-5:-17 -3:4:-5:-17 3:4:-5:7 -3:4:5:-7 3:-4:5:-7 9999999999999999999:10000000000000000000:1234567890:99999999999999999990000000001234567890 2:3:12345678901234567890:12345678901234567896 &bmul abc:abc:NaN abc:+0:NaN +0:abc:NaN invalid:+inf:NaN invalid:-inf:NaN -inf:invalid:NaN +inf:invalid:NaN +inf:+inf:inf +inf:-inf:-inf -inf:+inf:-inf -inf:-inf:inf +0:+0:0 +0:+1:0 +1:+0:0 +0:-1:0 -1:+0:0 123456789123456789:0:0 0:123456789123456789:0 -1:-1:1 -1:+1:-1 +1:-1:-1 +1:+1:1 +2:+3:6 -2:+3:-6 +2:-3:-6 -2:-3:6 111:111:12321 10101:10101:102030201 1001001:1001001:1002003002001 100010001:100010001:10002000300020001 10000100001:10000100001:100002000030000200001 11111111111:9:99999999999 22222222222:9:199999999998 33333333333:9:299999999997 44444444444:9:399999999996 55555555555:9:499999999995 66666666666:9:599999999994 77777777777:9:699999999993 88888888888:9:799999999992 99999999999:9:899999999991 +25:+25:625 +12345:+12345:152399025 +99999:+11111:1111088889 9999:10000:99990000 99999:100000:9999900000 999999:1000000:999999000000 9999999:10000000:99999990000000 99999999:100000000:9999999900000000 999999999:1000000000:999999999000000000 9999999999:10000000000:99999999990000000000 99999999999:100000000000:9999999999900000000000 999999999999:1000000000000:999999999999000000000000 9999999999999:10000000000000:99999999999990000000000000 99999999999999:100000000000000:9999999999999900000000000000 999999999999999:1000000000000000:999999999999999000000000000000 9999999999999999:10000000000000000:99999999999999990000000000000000 99999999999999999:100000000000000000:9999999999999999900000000000000000 999999999999999999:1000000000000000000:999999999999999999000000000000000000 9999999999999999999:10000000000000000000:99999999999999999990000000000000000000 &bdiv-list # Divide by zero and modulo zero. inf:0:inf,inf 5:0:inf,5 0:0:NaN,0 -5:0:-inf,-5 -inf:0:-inf,-inf # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. inf:-inf:NaN,NaN inf:-5:-inf,NaN inf:5:inf,NaN inf:inf:NaN,NaN -inf:-inf:NaN,NaN -inf:-5:inf,NaN -inf:5:-inf,NaN -inf:inf:NaN,NaN # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. -5:inf:-1,inf 0:inf:0,0 5:inf:0,5 -5:-inf:0,-5 0:-inf:0,0 5:-inf:-1,-inf # Numerator is finite, and denominator is finite and non-zero. -5:-5:1,0 -5:-2:2,-1 -5:-1:5,0 -5:1:-5,0 -5:2:-3,1 -5:5:-1,0 -2:-5:0,-2 -2:-2:1,0 -2:-1:2,0 -2:1:-2,0 -2:2:-1,0 -2:5:-1,3 -1:-5:0,-1 -1:-2:0,-1 -1:-1:1,0 -1:1:-1,0 -1:2:-1,1 -1:5:-1,4 0:-5:0,0 0:-2:0,0 0:-1:0,0 0:1:0,0 0:2:0,0 0:5:0,0 1:-5:-1,-4 1:-2:-1,-1 1:-1:-1,0 1:1:1,0 1:2:0,1 1:5:0,1 2:-5:-1,-3 2:-2:-1,0 2:-1:-2,0 2:1:2,0 2:2:1,0 2:5:0,2 5:-5:-1,0 5:-2:-3,-1 5:-1:-5,0 5:1:5,0 5:2:2,1 5:5:1,0 # test the shortcut in Calc if @$x == @$yorg 1234567812345678:123456712345678:10,688888898 12345671234567:1234561234567:10,58888897 123456123456:12345123456:10,4888896 1234512345:123412345:10,388895 1234567890999999999:1234567890:1000000000,999999999 1234567890000000000:1234567890:1000000000,0 1234567890999999999:9876543210:124999998,9503086419 1234567890000000000:9876543210:124999998,8503086420 96969696969696969696969696969678787878626262626262626262626262:484848484848484848484848486666666666666689898989898989898989:199,484848484848484848484848123012121211954972727272727272727451 # bug in v1.76 1267650600228229401496703205375:1267650600228229401496703205376:0,1267650600228229401496703205375 # exercise shortcut for numbers of the same length in div 999999999999999999999999999999999:999999999999999999999999999999999:1,0 999999999999999999999999999999999:888888888888888888888888888888888:1,111111111111111111111111111111111 999999999999999999999999999999999:777777777777777777777777777777777:1,222222222222222222222222222222222 999999999999999999999999999999999:666666666666666666666666666666666:1,333333333333333333333333333333333 999999999999999999999999999999999:555555555555555555555555555555555:1,444444444444444444444444444444444 999999999999999999999999999999999:444444444444444444444444444444444:2,111111111111111111111111111111111 999999999999999999999999999999999:333333333333333333333333333333333:3,0 999999999999999999999999999999999:222222222222222222222222222222222:4,111111111111111111111111111111111 999999999999999999999999999999999:111111111111111111111111111111111:9,0 9999999_9999999_9999999_9999999:3333333_3333333_3333333_3333333:3,0 9999999_9999999_9999999_9999999:3333333_0000000_0000000_0000000:3,999999999999999999999 9999999_9999999_9999999_9999999:3000000_0000000_0000000_0000000:3,999999999999999999999999999 9999999_9999999_9999999_9999999:2000000_0000000_0000000_0000000:4,1999999999999999999999999999 9999999_9999999_9999999_9999999:1000000_0000000_0000000_0000000:9,999999999999999999999999999 9999999_9999999_9999999_9999999:100000_0000000_0000000_0000000:99,99999999999999999999999999 9999999_9999999_9999999_9999999:10000_0000000_0000000_0000000:999,9999999999999999999999999 9999999_9999999_9999999_9999999:1000_0000000_0000000_0000000:9999,999999999999999999999999 9999999_9999999_9999999_9999999:100_0000000_0000000_0000000:99999,99999999999999999999999 9999999_9999999_9999999_9999999:10_0000000_0000000_0000000:999999,9999999999999999999999 9999999_9999999_9999999_9999999:1_0000000_0000000_0000000:9999999,999999999999999999999 &bdiv # Divide by zero and modulo zero. inf:0:inf 5:0:inf 0:0:NaN -5:0:-inf -inf:0:-inf # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. inf:-inf:NaN inf:-5:-inf inf:5:inf inf:inf:NaN -inf:-inf:NaN -inf:-5:inf -inf:5:-inf -inf:inf:NaN # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. -5:inf:-1 0:inf:0 5:inf:0 -5:-inf:0 0:-inf:0 5:-inf:-1 # Numerator is finite, and denominator is finite and non-zero. 5:5:1 -5:-5:1 11:2:5 -11:-2:5 -11:2:-6 11:-2:-6 0:1:0 0:-1:0 1:1:1 -1:-1:1 1:-1:-1 -1:1:-1 1:2:0 2:1:2 1:26:0 1000000000:9:111111111 2000000000:9:222222222 3000000000:9:333333333 4000000000:9:444444444 5000000000:9:555555555 6000000000:9:666666666 7000000000:9:777777777 8000000000:9:888888888 9000000000:9:1000000000 35500000:113:314159 71000000:226:314159 106500000:339:314159 1000000000:3:333333333 +10:+5:2 +100:+4:25 +1000:+8:125 +10000:+16:625 999999999999:9:111111111111 999999999999:99:10101010101 999999999999:999:1001001001 999999999999:9999:100010001 999999999999999:99999:10000100001 +1111088889:99999:11111 -5:-3:1 -5:3:-2 4:3:1 4:-3:-2 1:3:0 1:-3:-1 -2:-3:0 -2:3:-1 8:3:2 -8:3:-3 14:-3:-5 -14:3:-5 -14:-3:4 14:3:4 # bug in Calc with '99999' vs $BASE-1 10000000000000000000000000000000000000000000000000000000000000000000000000000000000:10000000375084540248994272022843165711074:999999962491547381984643365663244474111576 # test the shortcut in Calc if @$x == @$yorg 1234567812345678:123456712345678:10 12345671234567:1234561234567:10 123456123456:12345123456:10 1234512345:123412345:10 1234567890999999999:1234567890:1000000000 1234567890000000000:1234567890:1000000000 1234567890999999999:9876543210:124999998 1234567890000000000:9876543210:124999998 96969696969696969696969696969678787878626262626262626262626262:484848484848484848484848486666666666666689898989898989898989:199 # bug up to v0.35 in Calc (--$q one too many) 84696969696969696956565656566184292929292929292847474747436308080808080808086765396464646464646465:13131313131313131313131313131394949494949494949494949494943535353535353535353535:6449999999999999999 84696969696969696943434343434871161616161616161452525252486813131313131313143230042929292929292930:13131313131313131313131313131394949494949494949494949494943535353535353535353535:6449999999999999998 84696969696969696969696969697497424242424242424242424242385803030303030303030300750000000000000000:13131313131313131313131313131394949494949494949494949494943535353535353535353535:6450000000000000000 84696969696969696930303030303558030303030303030057575757537318181818181818199694689393939393939395:13131313131313131313131313131394949494949494949494949494943535353535353535353535:6449999999999999997 # exercise shortcut for numbers of the same length in div 999999999999999999999999999999999:999999999999999999999999999999999:1 999999999999999999999999999999999:888888888888888888888888888888888:1 999999999999999999999999999999999:777777777777777777777777777777777:1 999999999999999999999999999999999:666666666666666666666666666666666:1 999999999999999999999999999999999:555555555555555555555555555555555:1 999999999999999999999999999999999:444444444444444444444444444444444:2 999999999999999999999999999999999:333333333333333333333333333333333:3 999999999999999999999999999999999:222222222222222222222222222222222:4 999999999999999999999999999999999:111111111111111111111111111111111:9 9999999_9999999_9999999_9999999:3333333_3333333_3333333_3333333:3 9999999_9999999_9999999_9999999:3333333_0000000_0000000_0000000:3 9999999_9999999_9999999_9999999:3000000_0000000_0000000_0000000:3 9999999_9999999_9999999_9999999:2000000_0000000_0000000_0000000:4 9999999_9999999_9999999_9999999:1000000_0000000_0000000_0000000:9 9999999_9999999_9999999_9999999:100000_0000000_0000000_0000000:99 9999999_9999999_9999999_9999999:10000_0000000_0000000_0000000:999 9999999_9999999_9999999_9999999:1000_0000000_0000000_0000000:9999 9999999_9999999_9999999_9999999:100_0000000_0000000_0000000:99999 9999999_9999999_9999999_9999999:10_0000000_0000000_0000000:999999 9999999_9999999_9999999_9999999:1_0000000_0000000_0000000:9999999 # bug with shortcut in Calc 0.44 949418181818187070707070707070707070:181818181853535353535353535353535353:5 &btdiv-list # Divide by zero and modulo zero. inf:0:inf,inf 5:0:inf,5 0:0:NaN,0 -5:0:-inf,-5 -inf:0:-inf,-inf # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. inf:-inf:NaN,NaN inf:-5:-inf,NaN inf:5:inf,NaN inf:inf:NaN,NaN -inf:-inf:NaN,NaN -inf:-5:inf,NaN -inf:5:-inf,NaN -inf:inf:NaN,NaN # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. -5:inf:0,-5 0:inf:0,0 5:inf:0,5 -5:-inf:0,-5 0:-inf:0,0 5:-inf:0,5 # Numerator is finite, and denominator is finite and non-zero. -5:-5:1,0 -5:-2:2,-1 -5:-1:5,0 -5:1:-5,0 -5:2:-2,-1 -5:5:-1,0 -2:-5:0,-2 -2:-2:1,0 -2:-1:2,0 -2:1:-2,0 -2:2:-1,0 -2:5:0,-2 -1:-5:0,-1 -1:-2:0,-1 -1:-1:1,0 -1:1:-1,0 -1:2:0,-1 -1:5:0,-1 0:-5:0,0 0:-2:0,0 0:-1:0,0 0:1:0,0 0:2:0,0 0:5:0,0 1:-5:0,1 1:-2:0,1 1:-1:-1,0 1:1:1,0 1:2:0,1 1:5:0,1 2:-5:0,2 2:-2:-1,0 2:-1:-2,0 2:1:2,0 2:2:1,0 2:5:0,2 5:-5:-1,0 5:-2:-2,1 5:-1:-5,0 5:1:5,0 5:2:2,1 5:5:1,0 &btdiv # Divide by zero and modulo zero. inf:0:inf 5:0:inf 0:0:NaN -5:0:-inf -inf:0:-inf # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. inf:-inf:NaN inf:-5:-inf inf:5:inf inf:inf:NaN -inf:-inf:NaN -inf:-5:inf -inf:5:-inf -inf:inf:NaN # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. -5:inf:0 0:inf:0 5:inf:0 -5:-inf:0 0:-inf:0 5:-inf:0 # Numerator is finite, and denominator is finite and non-zero. -5:-5:1 -5:-2:2 -5:-1:5 -5:1:-5 -5:2:-2 -5:5:-1 -2:-5:0 -2:-2:1 -2:-1:2 -2:1:-2 -2:2:-1 -2:5:0 -1:-5:0 -1:-2:0 -1:-1:1 -1:1:-1 -1:2:0 -1:5:0 0:-5:0 0:-2:0 0:-1:0 0:1:0 0:2:0 0:5:0 1:-5:0 1:-2:0 1:-1:-1 1:1:1 1:2:0 1:5:0 2:-5:0 2:-2:-1 2:-1:-2 2:1:2 2:2:1 2:5:0 5:-5:-1 5:-2:-2 5:-1:-5 5:1:5 5:2:2 5:5:1 ############################################################################### &bmodinv # format: number:modulus:result # bmodinv Data errors abc:abc:NaN abc:5:NaN 5:abc:NaN # bmodinv Expected Results from normal use 1:5:1 3:5:2 3:-5:-3 -2:5:2 8:5033:4404 1234567891:13:6 -1234567891:13:7 324958749843759385732954874325984357439658735983745:2348249874968739:1741662881064902 -2:1:0 -1:1:0 0:1:0 1:1:0 2:1:0 3:1:0 4:1:0 -2:3:1 -1:3:2 0:3:NaN 1:3:1 2:3:2 3:3:NaN 4:3:1 -2:4:NaN -1:4:3 0:4:NaN 1:4:1 2:4:NaN 3:4:3 4:4:NaN ## bmodinv Error cases / useless use of function inf:5:NaN 5:inf:NaN -inf:5:NaN 5:-inf:NaN &bmodpow # format: number:exponent:modulus:result # bmodpow Data errors abc:abc:abc:NaN 5:abc:abc:NaN abc:5:abc:NaN abc:abc:5:NaN 5:5:abc:NaN 5:abc:5:NaN abc:5:5:NaN 3:5:0:3 # bmodpow Expected results 0:0:2:1 1:0:2:1 0:3:5:0 -2:-2:1:0 -1:-2:1:0 0:-2:1:0 1:-2:1:0 2:-2:1:0 3:-2:1:0 4:-2:1:0 -2:-1:1:0 -1:-1:1:0 0:-1:1:0 1:-1:1:0 2:-1:1:0 3:-1:1:0 4:-1:1:0 -2:0:1:0 -1:0:1:0 0:0:1:0 1:0:1:0 2:0:1:0 3:0:1:0 4:0:1:0 -2:1:1:0 -1:1:1:0 0:1:1:0 1:1:1:0 2:1:1:0 3:1:1:0 4:1:1:0 -2:2:1:0 -1:2:1:0 0:2:1:0 1:2:1:0 2:2:1:0 3:2:1:0 4:2:1:0 -2:3:1:0 -1:3:1:0 0:3:1:0 1:3:1:0 2:3:1:0 3:3:1:0 4:3:1:0 -2:4:1:0 -1:4:1:0 0:4:1:0 1:4:1:0 2:4:1:0 3:4:1:0 4:4:1:0 -2:-2:3:1 -1:-2:3:1 0:-2:3:NaN 1:-2:3:1 2:-2:3:1 3:-2:3:NaN 4:-2:3:1 -2:-1:3:1 -1:-1:3:2 0:-1:3:NaN 1:-1:3:1 2:-1:3:2 3:-1:3:NaN 4:-1:3:1 -2:0:3:1 -1:0:3:1 0:0:3:1 1:0:3:1 2:0:3:1 3:0:3:1 4:0:3:1 -2:1:3:1 -1:1:3:2 0:1:3:0 1:1:3:1 2:1:3:2 3:1:3:0 4:1:3:1 -2:2:3:1 -1:2:3:1 0:2:3:0 1:2:3:1 2:2:3:1 3:2:3:0 4:2:3:1 -2:3:3:1 -1:3:3:2 0:3:3:0 1:3:3:1 2:3:3:2 3:3:3:0 4:3:3:1 -2:4:3:1 -1:4:3:1 0:4:3:0 1:4:3:1 2:4:3:1 3:4:3:0 4:4:3:1 -2:-2:4:NaN -1:-2:4:1 0:-2:4:NaN 1:-2:4:1 2:-2:4:NaN 3:-2:4:1 4:-2:4:NaN -2:-1:4:NaN -1:-1:4:3 0:-1:4:NaN 1:-1:4:1 2:-1:4:NaN 3:-1:4:3 4:-1:4:NaN -2:0:4:1 -1:0:4:1 0:0:4:1 1:0:4:1 2:0:4:1 3:0:4:1 4:0:4:1 -2:1:4:2 -1:1:4:3 0:1:4:0 1:1:4:1 2:1:4:2 3:1:4:3 4:1:4:0 -2:2:4:0 -1:2:4:1 0:2:4:0 1:2:4:1 2:2:4:0 3:2:4:1 4:2:4:0 -2:3:4:0 -1:3:4:3 0:3:4:0 1:3:4:1 2:3:4:0 3:3:4:3 4:3:4:0 -2:4:4:0 -1:4:4:1 0:4:4:0 1:4:4:1 2:4:4:0 3:4:4:1 4:4:4:0 8:-1:16:NaN 8:-1:5033:4404 8:7:5032:3840 8:8:-5:-4 1e50:1:1:0 98436739867439843769485798542749827593285729587325:43698764986460981048259837659386739857456983759328457:6943857329857295827698367:3104744730915914415259518 # bmodpow Error cases inf:5:13:NaN 5:inf:13:NaN &bmod # Divide by zero and modulo zero. inf:0:inf 5:0:5 0:0:0 -5:0:-5 -inf:0:-inf # Numerator (dividend) is +/-inf, and denominator is finite and non-zero. inf:-inf:NaN inf:-5:NaN inf:5:NaN inf:inf:NaN -inf:-inf:NaN -inf:-5:NaN -inf:5:NaN -inf:inf:NaN # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf # are covered above. -5:inf:inf 0:inf:0 5:inf:5 -5:-inf:-5 0:-inf:0 5:-inf:-inf # Numerator is finite, and denominator is finite and non-zero. 5:5:0 -5:-5:0 0:1:0 0:-1:0 1:1:0 -1:-1:0 1:-1:0 -1:1:0 1:2:1 2:1:0 1000000000:9:1 2000000000:9:2 3000000000:9:3 4000000000:9:4 5000000000:9:5 6000000000:9:6 7000000000:9:7 8000000000:9:8 9000000000:9:0 35500000:113:33 71000000:226:66 106500000:339:99 1000000000:3:1 10:5:0 100:4:0 1000:8:0 10000:16:0 999999999999:9:0 999999999999:99:0 999999999999:999:0 999999999999:9999:0 999999999999999:99999:0 -9:+5:1 +9:-5:-1 -9:-5:-4 -5:3:1 -2:3:1 4:3:1 1:3:1 -5:-3:-2 -2:-3:-2 4:-3:-2 1:-3:-2 4095:4095:0 100041000510123:3:0 152403346:12345:4321 9:5:4 # test shortcuts in Calc # 1ex % 9 is always == 1, 1ex % 113 is != 1 for x = (4..9), 1ex % 10 = 0 1234:9:1 123456:9:3 12345678:9:0 1234567891:9:1 123456789123:9:6 12345678912345:9:6 1234567891234567:9:1 123456789123456789:9:0 1234:10:4 123456:10:6 12345678:10:8 1234567891:10:1 123456789123:10:3 12345678912345:10:5 1234567891234567:10:7 123456789123456789:10:9 1234:113:104 123456:113:60 12345678:113:89 1234567891:113:64 123456789123:113:95 12345678912345:113:53 1234567891234567:113:56 123456789123456789:113:39 # bug in bmod() not modifying the variable in place -629:5033:4404 # bug in bmod() in Calc in the _div_use_div() shortcut code path, # when X == X and X was big 111111111111111111111111111111:111111111111111111111111111111:0 12345678901234567890:12345678901234567890:0 &bgcd inf:12:NaN -inf:12:NaN 12:inf:NaN 12:-inf:NaN inf:inf:NaN inf:-inf:NaN -inf:-inf:NaN abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +0:+1:1 +1:+0:1 +1:+1:1 +2:+3:1 +3:+2:1 -3:+2:1 -3:-2:1 -144:-60:12 144:-60:12 144:60:12 100:625:25 4096:81:1 1034:804:2 27:90:56:1 27:90:54:9 &blcm abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +1:+0:0 +0:+1:0 +27:+90:270 +1034:+804:415668 &band abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:0 3:2:2 +8:+2:0 +281474976710656:0:0 +281474976710656:1:0 +281474976710656:+281474976710656:281474976710656 281474976710656:-1:281474976710656 -2:-3:-4 -1:-1:-1 -6:-6:-6 -7:-4:-8 -7:4:0 -4:7:4 # negative argument is bitwise shorter than positive [perl #26559] 30:-3:28 123:-1:123 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0x0xFFFF 0xFFFFFF:0xFFFFFF:0x0xFFFFFF 0xFFFFFFFF:0xFFFFFFFF:0x0xFFFFFFFF 0xFFFFFFFFFF:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0x0xF0F0 0x0F0F:0x0F0F:0x0x0F0F 0xF0F0F0:0xF0F0F0:0x0xF0F0F0 0x0F0F0F:0x0F0F0F:0x0x0F0F0F 0xF0F0F0F0:0xF0F0F0F0:0x0xF0F0F0F0 0x0F0F0F0F:0x0F0F0F0F:0x0x0F0F0F0F 0xF0F0F0F0F0:0xF0F0F0F0F0:0x0xF0F0F0F0F0 0x0F0F0F0F0F:0x0F0F0F0F0F:0x0x0F0F0F0F0F 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0x0xF0F0F0F0F0F0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F 0x1F0F0F0F0F0F:0x3F0F0F0F0F0F:0x0x1F0F0F0F0F0F &bior abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:3 +8:+2:10 +281474976710656:0:281474976710656 +281474976710656:1:281474976710657 +281474976710656:281474976710656:281474976710656 -2:-3:-1 -1:-1:-1 -6:-6:-6 -7:4:-3 -4:7:-1 +281474976710656:-1:-1 30:-3:-1 30:-4:-2 300:-76:-68 -76:300:-68 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0x0xFFFF 0xFFFFFF:0xFFFFFF:0x0xFFFFFF 0xFFFFFFFF:0xFFFFFFFF:0x0xFFFFFFFF 0xFFFFFFFFFF:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0:0xFFFF:0x0xFFFF 0:0xFFFFFF:0x0xFFFFFF 0:0xFFFFFFFF:0x0xFFFFFFFF 0:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xFFFF:0:0x0xFFFF 0xFFFFFF:0:0x0xFFFFFF 0xFFFFFFFF:0:0x0xFFFFFFFF 0xFFFFFFFFFF:0:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0x0xF0F0 0x0F0F:0x0F0F:0x0x0F0F 0xF0F0:0x0F0F:0x0xFFFF 0xF0F0F0:0xF0F0F0:0x0xF0F0F0 0x0F0F0F:0x0F0F0F:0x0x0F0F0F 0x0F0F0F:0xF0F0F0:0x0xFFFFFF 0xF0F0F0F0:0xF0F0F0F0:0x0xF0F0F0F0 0x0F0F0F0F:0x0F0F0F0F:0x0x0F0F0F0F 0x0F0F0F0F:0xF0F0F0F0:0x0xFFFFFFFF 0xF0F0F0F0F0:0xF0F0F0F0F0:0x0xF0F0F0F0F0 0x0F0F0F0F0F:0x0F0F0F0F0F:0x0x0F0F0F0F0F 0x0F0F0F0F0F:0xF0F0F0F0F0:0x0xFFFFFFFFFF 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0x0xF0F0F0F0F0F0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F 0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF 0x1F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF &bxor abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:3 +8:+2:10 +281474976710656:0:281474976710656 +281474976710656:1:281474976710657 +281474976710656:281474976710656:0 -2:-3:3 -1:-1:0 -6:-6:0 -7:4:-3 -4:7:-5 4:-7:-3 -4:-7:5 30:-3:-29 30:-4:-30 300:-76:-360 -76:300:-360 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0 0xFFFFFF:0xFFFFFF:0 0xFFFFFFFF:0xFFFFFFFF:0 0xFFFFFFFFFF:0xFFFFFFFFFF:0 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0 0:0xFFFF:0x0xFFFF 0:0xFFFFFF:0x0xFFFFFF 0:0xFFFFFFFF:0x0xFFFFFFFF 0:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xFFFF:0:0x0xFFFF 0xFFFFFF:0:0x0xFFFFFF 0xFFFFFFFF:0:0x0xFFFFFFFF 0xFFFFFFFFFF:0:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0 0x0F0F:0x0F0F:0 0xF0F0:0x0F0F:0x0xFFFF 0xF0F0F0:0xF0F0F0:0 0x0F0F0F:0x0F0F0F:0 0x0F0F0F:0xF0F0F0:0x0xFFFFFF 0xF0F0F0F0:0xF0F0F0F0:0 0x0F0F0F0F:0x0F0F0F0F:0 0x0F0F0F0F:0xF0F0F0F0:0x0xFFFFFFFF 0xF0F0F0F0F0:0xF0F0F0F0F0:0 0x0F0F0F0F0F:0x0F0F0F0F0F:0 0x0F0F0F0F0F:0xF0F0F0F0F0:0x0xFFFFFFFFFF 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0 0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF &bnot abc:NaN +0:-1 +8:-9 +281474976710656:-281474976710657 -1:0 -2:1 -12:11 &digit 0:0:0 12:0:2 12:1:1 123:0:3 123:1:2 123:2:1 123:-1:1 123:-2:2 123:-3:3 123456:0:6 123456:1:5 123456:2:4 123456:3:3 123456:4:2 123456:5:1 123456:-1:1 123456:-2:2 123456:-3:3 100000:-3:0 100000:0:0 100000:1:0 &mantissa abc:NaN 1e4:1 2e0:2 123:123 -1:-1 -2:-2 +inf:inf -inf:-inf &exponent abc:NaN 1e4:4 2e0:0 123:0 -1:0 -2:0 0:0 +inf:inf -inf:inf &parts abc:NaN,NaN 1e4:1,4 2e0:2,0 123:123,0 -1:-1,0 -2:-2,0 0:0,0 +inf:inf,inf -inf:-inf,inf &bfac NaN:NaN +inf:inf -inf:NaN -1:NaN 0:1 1:1 2:2 3:6 4:24 5:120 6:720 7:5040 8:40320 9:362880 10:3628800 11:39916800 12:479001600 20:2432902008176640000 22:1124000727777607680000 69:171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000 &bdfac NaN:NaN +inf:inf -inf:NaN -2:NaN -1:1 0:1 1:1 2:2 3:3 4:8 5:15 6:48 7:105 8:384 9:945 10:3840 11:10395 12:46080 &btfac NaN:NaN +inf:inf -inf:NaN -3:NaN -2:1 -1:1 0:1 1:1 2:2 3:3 4:4 5:10 6:18 7:28 8:80 9:162 10:280 11:880 12:1944 &bmfac 7:-inf:NaN 7:-1:NaN 7:0:NaN 7:inf:7 7:NaN:NaN NaN:1:NaN +inf:1:inf -inf:1:NaN -1:1:NaN 0:1:1 1:1:1 2:1:2 3:1:6 4:1:24 5:1:120 6:1:720 7:1:5040 8:1:40320 9:1:362880 10:1:3628800 NaN:2:NaN +inf:2:inf -inf:2:NaN -2:2:NaN -1:2:1 0:2:1 1:2:1 2:2:2 3:2:3 4:2:8 5:2:15 6:2:48 7:2:105 8:2:384 9:2:945 10:2:3840 NaN:3:NaN +inf:3:inf -inf:3:NaN -3:3:NaN -2:3:1 -1:3:1 0:3:1 1:3:1 2:3:2 3:3:3 4:3:4 5:3:10 6:3:18 7:3:28 8:3:80 9:3:162 10:3:280 NaN:4:NaN +inf:4:inf -inf:4:NaN -4:4:NaN -3:4:1 -2:4:1 -1:4:1 0:4:1 1:4:1 2:4:2 3:4:3 4:4:4 5:4:5 6:4:12 7:4:21 8:4:32 9:4:45 10:4:120 NaN:5:NaN +inf:5:inf -inf:5:NaN -5:5:NaN -4:5:1 -3:5:1 -2:5:1 -1:5:1 0:5:1 1:5:1 2:5:2 3:5:3 4:5:4 5:5:5 6:5:6 7:5:14 8:5:24 9:5:36 10:5:50 &bpow # abc:12:NaN 12:abc:NaN # # -inf:-inf:0 -inf:-3:0 -inf:-2:0 -inf:-1:0 -inf:0:NaN -inf:1:-inf -inf:2:inf -inf:3:-inf -inf:inf:inf # complex infinity -inf:NaN:NaN # -3:-inf:0 -3:-3:0 -3:-2:0 -3:-1:0 -3:0:1 -3:1:-3 -3:2:9 -3:3:-27 -3:inf:inf # complex infinity -3:NaN:NaN # -2:-inf:0 -2:-3:0 -2:-2:0 -2:-1:0 -2:0:1 -2:1:-2 -2:2:4 -2:3:-8 -2:inf:inf # complex infinity -2:NaN:NaN # -1:-inf:NaN -1:-3:-1 -1:-2:1 -1:-1:-1 -1:0:1 -1:1:-1 -1:2:1 -1:3:-1 -1:inf:NaN -1:NaN:NaN # 0:-inf:inf # complex infinity 0:-3:inf # complex infinity 0:-2:inf # complex infinity 0:-1:inf # complex infinity 0:0:1 0:1:0 0:2:0 0:3:0 0:inf:0 0:NaN:NaN # 1:-inf:1 1:-3:1 1:-2:1 1:-1:1 1:0:1 1:1:1 1:2:1 1:3:1 1:inf:1 1:NaN:NaN # 2:-inf:0 2:-3:0 2:-2:0 2:-1:0 2:0:1 2:1:2 2:2:4 2:3:8 2:inf:inf 2:NaN:NaN # 3:-inf:0 3:-3:0 3:-2:0 3:-1:0 3:0:1 3:1:3 3:2:9 3:3:27 3:inf:inf 3:NaN:NaN # inf:-inf:0 inf:-3:0 inf:-2:0 inf:-1:0 inf:0:NaN inf:1:inf inf:2:inf inf:3:inf inf:inf:inf inf:NaN:NaN # NaN:-inf:NaN NaN:-3:NaN NaN:-2:NaN NaN:-1:NaN NaN:0:NaN NaN:1:NaN NaN:2:NaN NaN:3:NaN NaN:inf:NaN NaN:NaN:NaN # +inf:1234500012:inf -inf:1234500012:inf -inf:1234500013:-inf +inf:-12345000123:0 -inf:-12345000123:0 # 10:2:100 10:3:1000 10:4:10000 10:5:100000 10:6:1000000 10:7:10000000 10:8:100000000 10:9:1000000000 10:20:100000000000000000000 123456:2:15241383936 -2:4:16 -2:5:-32 -3:3:-27 -3:4:81 -3:5:-243 &length 100:3 10:2 1:1 0:1 12345:5 10000000000000000:17 -123:3 215960156869840440586892398248:30 &broot # sqrt() +0:2:0 +1:2:1 -1:2:NaN # -$x ** (1/2) => -$y, but not in broot() -123:2:NaN +inf:2:inf -inf:2:NaN 2:2:1 -2:2:NaN 4:2:2 9:2:3 16:2:4 100:2:10 123:2:11 15241:2:123 144:2:12 12:2:3 # invalid ones 1:NaN:NaN -1:NaN:NaN 0:NaN:NaN -inf:NaN:NaN +inf:NaN:NaN NaN:0:NaN NaN:2:NaN NaN:inf:NaN NaN:inf:NaN 12:-inf:NaN 12:inf:NaN +0:0:NaN +1:0:NaN -1:0:NaN -2:0:NaN -123.45:0:NaN +inf:0:NaN 12:1:12 -12:1:NaN 8:-1:NaN -8:-1:NaN # cubic root 8:3:2 -8:3:NaN # fourths root 16:4:2 81:4:3 # 2 ** 64 18446744073709551616:4:65536 18446744073709551616:8:256 18446744073709551616:16:16 18446744073709551616:32:4 18446744073709551616:64:2 18446744073709551616:128:1 # 213 ** 15 84274086103068221283760416414557757:15:213 # see t/bigroot.t for more tests &bsqrt 145:12 144:12 143:11 16:4 170:13 169:13 168:12 4:2 3:1 2:1 9:3 12:3 256:16 100000000:10000 4000000000000:2000000 152399026:12345 152399025:12345 152399024:12344 # 2 ** 64 => 2 ** 32 18446744073709551616:4294967296 84274086103068221283760416414557757:290299993288095377 1:1 0:0 -2:NaN -123:NaN Nan:NaN +inf:inf -inf:NaN # see t/biglog.t for more tests &bexp NaN:NaN inf:inf 1:2 2:7 &batan2 NaN:1:10:NaN NaN:NaN:10:NaN 1:NaN:10:NaN inf:1:14:1 -inf:1:14:-1 0:-inf:14:3 -1:-inf:14:-3 1:-inf:14:3 0:inf:14:0 inf:-inf:14:2 -inf:-inf:14:-2 # +- 0.78.... inf:+inf:14:0 -inf:+inf:14:0 1:5:13:0 1:5:14:0 0:0:10:0 0:1:14:0 0:2:14:0 1:0:14:1 5:0:14:1 -1:0:11:-1 -2:0:77:-1 2:0:77:1 -1:5:14:0 1:5:14:0 -1:8:14:0 1:8:14:0 -1:1:14:0 &bpi 77:3 +0:3 11:3 # see t/bignok.t for more tests &bnok +inf:10:inf NaN:NaN:NaN NaN:1:NaN 1:NaN:NaN 1:1:1 # k > n 1:2:0 2:3:0 # k < 0 1:-2:0 # 7 over 3 = 35 7:3:35 7:6:7 100:90:17310309456440 100:95:75287520 2:0:1 7:0:1 2:1:2 &bround $round_mode("trunc") 0:12:0 invalid:12:NaN +inf:12:inf -inf:12:-inf 1234:0:1234 1234:2:1200 123456:4:123400 123456:5:123450 123456:6:123456 +10123456789:5:10123000000 -10123456789:5:-10123000000 +10123456789:9:10123456700 -10123456789:9:-10123456700 +101234500:6:101234000 -101234500:6:-101234000 #+101234500:-4:101234000 #-101234500:-4:-101234000 $round_mode("zero") +20123456789:5:20123000000 -20123456789:5:-20123000000 +20123456789:9:20123456800 -20123456789:9:-20123456800 +201234500:6:201234000 -201234500:6:-201234000 #+201234500:-4:201234000 #-201234500:-4:-201234000 +12345000:4:12340000 -12345000:4:-12340000 $round_mode("+inf") +30123456789:5:30123000000 -30123456789:5:-30123000000 +30123456789:9:30123456800 -30123456789:9:-30123456800 +301234500:6:301235000 -301234500:6:-301234000 #+301234500:-4:301235000 #-301234500:-4:-301234000 +12345000:4:12350000 -12345000:4:-12340000 $round_mode("-inf") +40123456789:5:40123000000 -40123456789:5:-40123000000 +40123456789:9:40123456800 -40123456789:9:-40123456800 +401234500:6:401234000 +401234500:6:401234000 #-401234500:-4:-401235000 #-401234500:-4:-401235000 +12345000:4:12340000 -12345000:4:-12350000 $round_mode("odd") +50123456789:5:50123000000 -50123456789:5:-50123000000 +50123456789:9:50123456800 -50123456789:9:-50123456800 +501234500:6:501235000 -501234500:6:-501235000 #+501234500:-4:501235000 #-501234500:-4:-501235000 +12345000:4:12350000 -12345000:4:-12350000 $round_mode("common") +60123456789:5:60123000000 +60123199999:5:60123000000 +60123299999:5:60123000000 +60123399999:5:60123000000 +60123499999:5:60123000000 +60123500000:5:60124000000 +60123600000:5:60124000000 +60123700000:5:60124000000 +60123800000:5:60124000000 +60123900000:5:60124000000 -60123456789:5:-60123000000 -60123199999:5:-60123000000 -60123299999:5:-60123000000 -60123399999:5:-60123000000 -60123499999:5:-60123000000 -60123500000:5:-60124000000 -60123600000:5:-60124000000 -60123700000:5:-60124000000 -60123800000:5:-60124000000 -60123900000:5:-60124000000 $round_mode("even") +60123456789:5:60123000000 -60123456789:5:-60123000000 +60123456789:9:60123456800 -60123456789:9:-60123456800 +601234500:6:601234000 -601234500:6:-601234000 #+601234500:-4:601234000 #-601234500:-4:-601234000 #-601234500:-9:0 #-501234500:-9:0 #-601234500:-8:0 #-501234500:-8:0 +1234567:7:1234567 +1234567:6:1234570 +12345000:4:12340000 -12345000:4:-12340000 &is_zero 0:1 invalid:0 +inf:0 -inf:0 123:0 -1:0 1:0 &is_one 0:0 invalid:0 +inf:0 -inf:0 1:1 2:0 -1:0 -2:0 # floor, ceil, and int are pretty pointless in integer space, but play safe &bfloor 0:0 invalid:NaN +inf:inf -inf:-inf -1:-1 -2:-2 2:2 3:3 abc:NaN &bceil invalid:NaN +inf:inf -inf:-inf 0:0 -1:-1 -2:-2 2:2 3:3 abc:NaN &bint NaN:NaN +inf:inf -inf:-inf 0:0 -1:-1 -2:-2 2:2 3:3 &as_hex 128:0x80 -128:-0x80 0:0x0 -0:0x0 1:0x1 0x123456789123456789:0x123456789123456789 +inf:inf -inf:-inf invalid:NaN &as_bin 128:0b10000000 -128:-0b10000000 0:0b0 -0:0b0 1:0b1 0b1010111101010101010110110110110110101:0b1010111101010101010110110110110110101 0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001 +inf:inf -inf:-inf invalid:NaN &as_oct 128:0200 -128:-0200 0:00 -0:00 1:01 0b1010111101010101010110110110110110101:01275252666665 0x123456789123456789:044321263611044321263611 +inf:inf -inf:-inf invalid:NaN &to_hex 128:80 -128:-80 0:0 -0:0 1:1 0x123456789123456789:123456789123456789 +inf:inf -inf:-inf invalid:NaN &to_bin 128:10000000 -128:-10000000 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1010111101010101010110110110110110101 0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001 +inf:inf -inf:-inf invalid:NaN &to_oct 128:200 -128:-200 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1275252666665 0x123456789123456789:44321263611044321263611 +inf:inf -inf:-inf invalid:NaN # overloaded functions &log -1:NaN 0:-inf 1:0 2:0 3:1 123456789:18 1234567890987654321:41 -inf:inf inf:inf NaN:NaN &exp &sin &cos &atan2 &int &neg &abs &sqrt Math-BigInt-2.005003/t/bigintpm.t0000644403072340010010000000506314756672324016221 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4294 # tests in require'd file + 20; # tests in this file use Math::BigInt only => 'Calc'; our ($CLASS, $LIB); $CLASS = "Math::BigInt"; $LIB = Math::BigInt -> config('lib'); # backend library my $x; ############################################################################# # bgcd() as function, class method and instance method. my $gcd0 = Math::BigInt::bgcd(-12, 18, 27); isa_ok($gcd0, "Math::BigInt", "bgcd() as function"); is($gcd0, 3, "bgcd() as function"); my $gcd1 = Math::BigInt->bgcd(-12, 18, 27); isa_ok($gcd1, "Math::BigInt", "bgcd() as class method"); is($gcd1, 3, "bgcd() as class method"); $x = Math::BigInt -> new(-12); my $gcd2 = $x -> bgcd(18, 27); isa_ok($gcd2, "Math::BigInt", "bgcd() as instance method"); is($gcd2, 3, "bgcd() as instance method"); is($x, -12, "bgcd() does not modify invocand"); ############################################################################# # blcm() as function, class method and instance method. my $lcm0 = Math::BigInt::blcm(-12, 18, 27); isa_ok($lcm0, "Math::BigInt", "blcm() as function"); is($lcm0, 108, "blcm() as function"); my $lcm1 = Math::BigInt->blcm(-12, 18, 27); isa_ok($lcm1, "Math::BigInt", "blcm() as class method"); is($lcm1, 108, "blcm() as class method"); $x = Math::BigInt -> new(-12); my $lcm2 = $x -> blcm(18, 27); isa_ok($lcm2, "Math::BigInt", "blcm() as instance method"); is($lcm2, 108, "blcm() as instance method"); is($x, -12, "blcm() does not modify invocand"); ############################################################################# # from_hex(), from_bin() and from_oct() tests $x = Math::BigInt->from_hex('0xcafe'); is($x, "51966", qq|Math::BigInt->from_hex("0xcafe")|); $x = Math::BigInt->from_hex('0xcafebabedead'); is($x, "223195403574957", qq|Math::BigInt->from_hex("0xcafebabedead")|); $x = Math::BigInt->from_bin('0b1001'); is($x, "9", qq|Math::BigInt->from_bin("0b1001")|); $x = Math::BigInt->from_bin('0b1001100110011001100110011001'); is($x, "161061273", qq|Math::BigInt->from_bin("0b1001100110011001100110011001");|); $x = Math::BigInt->from_oct('0775'); is($x, "509", qq|Math::BigInt->from_oct("0775");|); $x = Math::BigInt->from_oct('07777777777777711111111222222222'); is($x, "9903520314281112085086151826", qq|Math::BigInt->from_oct("07777777777777711111111222222222");|); ############################################################################# # all the other tests require './t/bigintpm.inc'; # all tests here for sharing Math-BigInt-2.005003/t/bigints.t0000644403072340010010000001105114536617516016037 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 50; # testing of Math::BigInt:Scalar (used by the testsuite), # primarily for interface/api and not for the math functionality use Math::BigInt::Scalar; my $class = 'Math::BigInt::Scalar'; # pass classname to sub's # _new and _str my $x = $class->_new("123"); my $y = $class->_new("321"); is(ref($x), 'SCALAR', 'ref($x)'); is($class->_str($x), 123, "$class->_str(\$x)"); is($class->_str($y), 321, "$class->_str(\$y)"); # _add, _sub, _mul, _div is($class->_str($class->_add($x, $y)), 444, "$class->_str($class->_add(\$x, \$y)"); is($class->_str($class->_sub($x, $y)), 123, "$class->_str($class->_sub(\$x, \$y)"); is($class->_str($class->_mul($x, $y)), 39483, "$class->_str($class->_mul(\$x, \$y))"); is($class->_str($class->_div($x, $y)), 123, "$class->_str($class->_div(\$x, \$y)"); $class->_mul($x, $y); is($class->_str($x), 39483, "$class->_str(\$x)"); is($class->_str($y), 321, "$class->_str(\$y)"); my $z = $class->_new("2"); is($class->_str($class->_add($x, $z)), 39485, "$class->_str($class->_add(\$x, \$z)"); my ($re, $rr) = $class->_div($x, $y); is($class->_str($re), 123, "$class->_str(\$re)"); is($class->_str($rr), 2, "$class->_str(\$rr)"); # is_zero, _is_one, _one, _zero is($class->_is_zero($x), 0, "$class->_is_zero($x)"); is($class->_is_one($x), 0, "$class->_is_one($x)"); is($class->_is_one($class->_one()), 1, "$class->_is_one($class->_one())"); is($class->_is_one($class->_zero()), 0, "$class->_is_one($class->_zero())"); is($class->_is_zero($class->_zero()), 1, "$class->_is_zero($class->_zero())"); is($class->_is_zero($class->_one()), 0, "$class->_is_zero($class->_one())"); # is_odd, is_even is($class->_is_odd($class->_one()), 1, "$class->_is_odd($class->_one())"); is($class->_is_odd($class->_zero()), 0, "$class->_is_odd($class->_zero())"); is($class->_is_even($class->_one()), 0, "$class->_is_even($class->_one())"); is($class->_is_even($class->_zero()), 1, "$class->_is_even($class->_zero())"); # _digit $x = $class->_new("123456789"); is($class->_digit($x, 0), 9, "$class->_digit(\$x, 0)"); is($class->_digit($x, 1), 8, "$class->_digit(\$x, 1)"); is($class->_digit($x, 2), 7, "$class->_digit(\$x, 2)"); is($class->_digit($x, -1), 1, "$class->_digit(\$x, -1)"); is($class->_digit($x, -2), 2, "$class->_digit(\$x, -2)"); is($class->_digit($x, -3), 3, "$class->_digit(\$x, -3)"); # _copy $x = $class->_new("12356"); is($class->_str($class->_copy($x)), 12356, "$class->_str($class->_copy(\$x))"); # _acmp $x = $class->_new("123456789"); $y = $class->_new("987654321"); is($class->_acmp($x, $y), -1, "$class->_acmp(\$x, \$y)"); is($class->_acmp($y, $x), 1, "$class->_acmp(\$y, \$x)"); is($class->_acmp($x, $x), 0, "$class->_acmp(\$x, \$x)"); is($class->_acmp($y, $y), 0, "$class->_acmp(\$y, \$y)"); # _div $x = $class->_new("3333"); $y = $class->_new("1111"); is($class->_str(scalar $class->_div($x, $y)), 3, "$class->_str(scalar $class->_div(\$x, \$y))"); $x = $class->_new("33333"); $y = $class->_new("1111"); ($x, $y) = $class->_div($x, $y); is($class->_str($x), 30, "$class->_str(\$x)"); is($class->_str($y), 3, "$class->_str(\$y)"); $x = $class->_new("123"); $y = $class->_new("1111"); ($x, $y) = $class->_div($x, $y); is($class->_str($x), 0, "$class->_str(\$x)"); is($class->_str($y), 123, "$class->_str(\$y)"); # _num $x = $class->_new("12345"); $x = $class->_num($x); is(ref($x) || '', '', 'ref($x) || ""'); is($x, 12345, '$x'); # _len $x = $class->_new("12345"); $x = $class->_len($x); is(ref($x) || '', '', 'ref($x) || ""'); is($x, 5, '$x'); # _and, _or, _xor $x = $class->_new("3"); $y = $class->_new("4"); is($class->_str($class->_or($x, $y)), 7, "$class->_str($class->_or($x, $y))"); $x = $class->_new("1"); $y = $class->_new("4"); is($class->_str($class->_xor($x, $y)), 5, "$class->_str($class->_xor($x, $y))"); $x = $class->_new("7"); $y = $class->_new("3"); is($class->_str($class->_and($x, $y)), 3, "$class->_str($class->_and($x, $y))"); # _pow $x = $class->_new("2"); $y = $class->_new("4"); is($class->_str($class->_pow($x, $y)), 16, "$class->_str($class->_pow($x, $y))"); $x = $class->_new("2"); $y = $class->_new("5"); is($class->_str($class->_pow($x, $y)), 32, "$class->_str($class->_pow($x, $y))"); $x = $class->_new("3"); $y = $class->_new("3"); is($class->_str($class->_pow($x, $y)), 27, "$class->_str($class->_pow($x, $y))"); # _check $x = $class->_new("123456789"); is($class->_check($x), 0, "$class->_check(\$x)"); is($class->_check(123), '123 is not a reference', "$class->_check(123)"); Math-BigInt-2.005003/t/biglog.t0000644403072340010010000002175414537274604015654 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test blog function (and bpow, since it uses blog), as well as bexp(). # It is too slow to be simple included in bigfltpm.inc, where it would get # executed 3 times. One time would be under Math::BigInt::BareCalc, which # shouldn't make any difference since there is no $LIB->_log() function, and # one time under a subclass, which *should* work. # But it is better to test the numerical functionality, instead of not testing # it at all (which did lead to wrong answers for 0 < $x < 1 in blog() in # versions up to v1.63, and for bsqrt($x) when $x << 1 for instance). use strict; use warnings; use Test::More tests => 73; use Math::BigFloat only => 'Calc'; use Math::BigInt; my $class = "Math::BigInt"; ############################################################################### # test $n->blog() in Math::BigInt (broken until 1.80) is($class->new(2)->blog(), '0', "$class->new(2)->blog()"); is($class->new(288)->blog(), '5', "$class->new(288)->blog()"); is($class->new(2000)->blog(), '7', "$class->new(2000)->blog()"); ############################################################################### # test $n->bexp() in Math::BigInt is($class->new(1)->bexp(), '2', "$class->new(1)->bexp()"); is($class->new(2)->bexp(), '7', "$class->new(2)->bexp()"); is($class->new(3)->bexp(), '20', "$class->new(3)->bexp()"); ############################################################################### # Math::BigFloat tests ############################################################################### # test $n->blog(undef, N) where N > 67 (broken until 1.82) $class = "Math::BigFloat"; # These tests can take quite a while, but are necessary. Maybe protect them # with some alarm()? # this triggers the calculation and caching of ln(2): is($class->new(5)->blog(undef, 71), '1.6094379124341003746007593332261876395256013542685177219126478914741790', "$class->new(5)->blog(undef, 71)"); # if the cache was correct, we should get this result, fast: is($class->new(2)->blog(undef, 71), '0.69314718055994530941723212145817656807550013436025525412068000949339362', "$class->new(2)->blog(undef, 71)"); is($class->new(11)->blog(undef, 71), '2.3978952727983705440619435779651292998217068539374171752185677091305736', "$class->new(11)->blog(undef, 71)"); is($class->new(21)->blog(undef, 71), '3.0445224377234229965005979803657054342845752874046106401940844835750742', "$class->new(21)->blog(undef, 71)"); ############################################################################### # These tests are now really fast, since they collapse to blog(10), basically # Don't attempt to run them with older versions. You are warned. # $x < 0 => NaN is($class->new(-2)->blog(), 'NaN', "$class->new(-2)->blog()"); is($class->new(-1)->blog(), 'NaN', "$class->new(-1)->blog()"); is($class->new(-10)->blog(), 'NaN', "$class->new(-10)->blog()"); is($class->new(-2, 2)->blog(), 'NaN', "$class->new(-2, 2)->blog()"); my $ten = $class->new(10)->blog(); # 10 is cached (up to 75 digits) is($class->new(10)->blog(), '2.302585092994045684017991454684364207601', qq|$class->new(10)->blog()|); # 0.1 is using the cached value for log(10), too is($class->new("0.1")->blog(), -$ten, qq|$class->new("0.1")->blog()|); is($class->new("0.01")->blog(), -$ten * 2, qq|$class->new("0.01")->blog()|); is($class->new("0.001")->blog(), -$ten * 3, qq|$class->new("0.001")->blog()|); is($class->new("0.0001")->blog(), -$ten * 4, qq|$class->new("0.0001")->blog()|); # also cached is($class->new(2)->blog(), '0.6931471805599453094172321214581765680755', qq|$class->new(2)->blog()|); is($class->new(4)->blog(), $class->new(2)->blog * 2, qq|$class->new(4)->blog()|); # These are still slow, so do them only to 10 digits is($class->new("0.2")->blog(undef, 10), "-1.609437912", qq|$class->new("0.2")->blog(undef, 10)|); is($class->new("0.3")->blog(undef, 10), "-1.203972804", qq|$class->new("0.3")->blog(undef, 10)|); is($class->new("0.4")->blog(undef, 10), "-0.9162907319", qq|$class->new("0.4")->blog(undef, 10)|); is($class->new("0.5")->blog(undef, 10), "-0.6931471806", qq|$class->new("0.5")->blog(undef, 10)|); is($class->new("0.6")->blog(undef, 10), "-0.5108256238", qq|$class->new("0.6")->blog(undef, 10)|); is($class->new("0.7")->blog(undef, 10), "-0.3566749439", qq|$class->new("0.7")->blog(undef, 10)|); is($class->new("0.8")->blog(undef, 10), "-0.2231435513", qq|$class->new("0.8")->blog(undef, 10)|); is($class->new("0.9")->blog(undef, 10), "-0.1053605157", qq|$class->new("0.9")->blog(undef, 10)|); is($class->new("9")->blog(undef, 10), "2.197224577", qq|$class->new("9")->blog(undef, 10)|); is($class->new("10")->blog(10, 10), "1.000000000", qq|$class->new("10")->blog(10, 10)|); is($class->new("20")->blog(20, 10), "1.000000000", qq|$class->new("20")->blog(20, 10)|); is($class->new("100")->blog(100, 10), "1.000000000", qq|$class->new("100")->blog(100, 10)|); is($class->new("100")->blog(10, 10), "2.000000000", # 10 ** 2 == 100 qq|$class->new("100")->blog(10, 10)|); is($class->new("400")->blog(20, 10), "2.000000000", # 20 ** 2 == 400 qq|$class->new("400")->blog(20, 10)|); is($class->new("4")->blog(2, 10), "2.000000000", # 2 ** 2 == 4 qq|$class->new("4")->blog(2, 10)|); is($class->new("16")->blog(2, 10), "4.000000000", # 2 ** 4 == 16 qq|$class->new("16")->blog(2, 10)|); is($class->new("1.2")->bpow("0.3", 10), "1.056219968", qq|$class->new("1.2")->bpow("0.3", 10)|); is($class->new("10")->bpow("0.6", 10), "3.981071706", qq|$class->new("10")->bpow("0.6", 10)|); # blog should handle bigint input is(Math::BigFloat->blog(Math::BigInt->new(100), 10), 2, "blog(100)"); ############################################################################### # some integer results is($class->new(2)->bpow(32)->blog(2), "32", "2 ** 32"); is($class->new(3)->bpow(32)->blog(3), "32", "3 ** 32"); is($class->new(2)->bpow(65)->blog(2), "65", "2 ** 65"); my $x = Math::BigInt->new('777') ** 256; my $base = Math::BigInt->new('12345678901234'); is($x->copy()->blog($base), 56, 'blog(777**256, 12345678901234)'); $x = Math::BigInt->new('777') ** 777; $base = Math::BigInt->new('777'); is($x->copy()->blog($base), 777, 'blog(777**777, 777)'); ############################################################################### # test for bug in bsqrt() not taking negative _e into account test_bpow('200', '0.5', 10, '14.14213562'); test_bpow('20', '0.5', 10, '4.472135955'); test_bpow('2', '0.5', 10, '1.414213562'); test_bpow('0.2', '0.5', 10, '0.4472135955'); test_bpow('0.02', '0.5', 10, '0.1414213562'); test_bpow('0.49', '0.5', undef, '0.7'); test_bpow('0.49', '0.5', 10, '0.7000000000'); test_bpow('0.002', '0.5', 10, '0.04472135955'); test_bpow('0.0002', '0.5', 10, '0.01414213562'); test_bpow('0.0049', '0.5', undef, '0.07'); test_bpow('0.0049', '0.5', 10, '0.07000000000'); test_bpow('0.000002', '0.5', 10, '0.001414213562'); test_bpow('0.021', '0.5', 10, '0.1449137675'); test_bpow('1.2', '0.5', 10, '1.095445115'); test_bpow('1.23', '0.5', 10, '1.109053651'); test_bpow('12.3', '0.5', 10, '3.507135583'); test_bpow('9.9', '0.5', 10, '3.146426545'); test_bpow('9.86902225', '0.5', 10, '3.141500000'); test_bpow('9.86902225', '0.5', undef, '3.1415'); ############################################################################### # other tests for bpow() test_bpow('0.2', '0.41', 10, '0.5169187652'); is($class->new("0.1")->bpow("28.4", 40)->bsstr(), '3981071705534972507702523050877520434877e-68', qq|$class->new("0.1")->bpow("28.4", 40)->bsstr()|); # The following test takes too long. #is($class->new("2")->bpow("-1034.5", 40)->bsstr(), # '3841222690408590466868250378242558090957e-351', # qq|$class->new("2")->bpow("-1034.5", 40)|); ############################################################################### # test bexp() with cached results is($class->new(1)->bexp(), '2.718281828459045235360287471352662497757', 'bexp(1)'); is($class->new(2)->bexp(40), $class->new(1)->bexp(45)->bpow(2, 40), 'bexp(2)'); is($class->new("12.5")->bexp(61), $class->new(1)->bexp(65)->bpow(12.5, 61), 'bexp(12.5)'); ############################################################################### # test bexp() with big values (non-cached) is($class->new(1)->bexp(100), '2.7182818284590452353602874713526624977572470936999' . '59574966967627724076630353547594571382178525166427', qq|$class->new(1)->bexp(100)|); is($class->new("12.5")->bexp(91), $class->new(1)->bexp(95)->bpow(12.5, 91), qq|$class->new("12.5")->bexp(91)|); is($class->new("-118.5")->bexp(20)->bsstr(), '34364014567198602057e-71', qq|$class->new("-118.5")->bexp(20)->bsstr()|); is($class->new("-394.84010945715266885")->bexp(20)->bsstr(), '33351796227864913873e-191', qq|$class->new("-118.5")->bexp(20)->bsstr()|); # all done ############################################################################### sub test_bpow { my ($x, $y, $scale, $result) = @_; is($class->new($x)->bpow($y, $scale), $result, qq|$class->new($x)->bpow($y, | . (defined($scale) ? $scale : 'undef') . qq|)|); } Math-BigInt-2.005003/t/bigrat.t0000644403072340010010000003154114546553333015653 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 203; # basic testing of Math::BigRat use Math::BigRat; use Math::BigInt; use Math::BigFloat; # shortcuts my $mbr = 'Math::BigRat'; my $mbi = 'Math::BigInt'; my $mbf = 'Math::BigFloat'; my ($x, $y, $z); $x = Math::BigRat->new(1234); is($x, 1234, 'value of $x'); isa_ok($x, 'Math::BigRat'); ok(!$x->isa('Math::BigInt'), "An object of class '" . ref($x) . "' isn't a 'Math::BigInt'"); ok(!$x->isa('Math::BigFloat'), "An object of class '" . ref($x) . "' isn't a 'Math::BigFloat'"); ############################################################################## # new and bnorm() foreach my $method (qw/ new bnorm /) { $x = $mbr->$method(1234); is($x, 1234, qq|\$x = $mbr->$method(1234)|); $x = $mbr->$method("1234/1"); is($x, 1234, qq|\$x = $mbr->$method("1234/1")|); $x = $mbr->$method("1234/2"); is($x, 617, qq|\$x = $mbr->$method("1234/2")|); $x = $mbr->$method("100/1.0"); is($x, 100, qq|\$x = $mbr->$method("100/1.0")|); $x = $mbr->$method("10.0/1.0"); is($x, 10, qq|\$x = $mbr->$method("10.0/1.0")|); $x = $mbr->$method("0.1/10"); is($x, "1/100", qq|\$x = $mbr->$method("0.1/10")|); $x = $mbr->$method("0.1/0.1"); is($x, "1", qq|\$x = $mbr->$method("0.1/0.1")|); $x = $mbr->$method("1e2/10"); is($x, 10, qq|\$x = $mbr->$method("1e2/10")|); $x = $mbr->$method("5/1e2"); is($x, "1/20", qq|\$x = $mbr->$method("5/1e2")|); $x = $mbr->$method("1e2/1e1"); is($x, 10, qq|\$x = $mbr->$method("1e2/1e1")|); $x = $mbr->$method("1 / 3"); is($x, "1/3", qq|\$x = $mbr->$method("1 / 3")|); $x = $mbr->$method("-1 / 3"); is($x, "-1/3", qq|\$x = $mbr->$method("-1 / 3")|); $x = $mbr->$method("NaN"); is($x, "NaN", qq|\$x = $mbr->$method("NaN")|); $x = $mbr->$method("inf"); is($x, "inf", qq|\$x = $mbr->$method("inf")|); $x = $mbr->$method("-inf"); is($x, "-inf", qq|\$x = $mbr->$method("-inf")|); $x = $mbr->$method("1/"); is($x, "NaN", qq|\$x = $mbr->$method("1/")|); $x = $mbr->$method("0x7e"); is($x, 126, qq|\$x = $mbr->$method("0x7e")|); # input ala "1+1/3" isn"t parsed ok yet $x = $mbr->$method("1+1/3"); is($x, "NaN", qq|\$x = $mbr->$method("1+1/3")|); $x = $mbr->$method("1/1.2"); is($x, "5/6", qq|\$x = $mbr->$method("1/1.2")|); $x = $mbr->$method("1.3/1.2"); is($x, "13/12", qq|\$x = $mbr->$method("1.3/1.2")|); $x = $mbr->$method("1.2/1"); is($x, "6/5", qq|\$x = $mbr->$method("1.2/1")|); ############################################################################ # other classes as input $x = $mbr->$method($mbi->new(1231)); is($x, "1231", qq|\$x = $mbr->$method($mbi->new(1231))|); $x = $mbr->$method($mbf->new(1232)); is($x, "1232", qq|\$x = $mbr->$method($mbf->new(1232))|); $x = $mbr->$method($mbf->new(1232.3)); is($x, "12323/10", qq|\$x = $mbr->$method($mbf->new(1232.3))|); } my $n = 'numerator'; my $d = 'denominator'; $x = $mbr->new('-0'); is($x, '0'); is($x->$n(), '0'); is($x->$d(), '1'); $x = $mbr->new('NaN'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); $x = $mbr->new('-NaN'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); $x = $mbr->new('-1r4'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); $x = $mbr->new('+inf'); is($x, 'inf'); is($x->$n(), 'inf'); is($x->$d(), '1'); $x = $mbr->new('-inf'); is($x, '-inf'); is($x->$n(), '-inf'); is($x->$d(), '1'); $x = $mbr->new('123a4'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); # wrong inputs $x = $mbr->new('1e2e2'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); $x = $mbr->new('1+2+2'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); # failed due to BigFloat bug $x = $mbr->new('1.2.2'); is($x, 'NaN'); is($x->$n(), 'NaN'); is($x->$d(), 'NaN'); is($mbr->new('123a4'), 'NaN'); is($mbr->new('123e4'), '1230000'); is($mbr->new('-NaN'), 'NaN'); is($mbr->new('NaN'), 'NaN'); is($mbr->new('+inf'), 'inf'); is($mbr->new('-inf'), '-inf'); ############################################################################## # two Bigints is($mbr->new($mbi->new(3), $mbi->new(7))->badd(1), '10/7'); is($mbr->new($mbi->new(-13), $mbi->new(7)), '-13/7'); is($mbr->new($mbi->new(13), $mbi->new(-7)), '-13/7'); is($mbr->new($mbi->new(-13), $mbi->new(-7)), '13/7'); ############################################################################## # mixed arguments is($mbr->new('3/7')->badd(1), '10/7'); is($mbr->new('3/10')->badd(1.1), '7/5'); is($mbr->new('3/7')->badd($mbi->new(1)), '10/7'); is($mbr->new('3/10')->badd($mbf->new('1.1')), '7/5'); is($mbr->new('3/7')->bsub(1), '-4/7'); is($mbr->new('3/10')->bsub(1.1), '-4/5'); is($mbr->new('3/7')->bsub($mbi->new(1)), '-4/7'); is($mbr->new('3/10')->bsub($mbf->new('1.1')), '-4/5'); is($mbr->new('3/7')->bmul(1), '3/7'); is($mbr->new('3/10')->bmul(1.1), '33/100'); is($mbr->new('3/7')->bmul($mbi->new(1)), '3/7'); is($mbr->new('3/10')->bmul($mbf->new('1.1')), '33/100'); is($mbr->new('3/7')->bdiv(1), '3/7'); is($mbr->new('3/10')->bdiv(1.1), '3/11'); is($mbr->new('3/7')->bdiv($mbi->new(1)), '3/7'); is($mbr->new('3/10')->bdiv($mbf->new('1.1')), '3/11'); ############################################################################## $x = $mbr->new('1/4'); $y = $mbr->new('1/3'); is($x + $y, '7/12'); is($x * $y, '1/12'); is($x / $y, '3/4'); $x = $mbr->new('7/5'); $x *= '3/2'; is($x, '21/10'); $x -= '0.1'; is($x, '2'); # not 21/10 $x = $mbr->new('2/3'); $y = $mbr->new('3/2'); is($x > $y, ''); is($x < $y, 1); is($x == $y, ''); $x = $mbr->new('-2/3'); $y = $mbr->new('3/2'); is($x > $y, ''); is($x < $y, '1'); is($x == $y, ''); $x = $mbr->new('-2/3'); $y = $mbr->new('-2/3'); is($x > $y, ''); is($x < $y, ''); is($x == $y, '1'); $x = $mbr->new('-2/3'); $y = $mbr->new('-1/3'); is($x > $y, ''); is($x < $y, '1'); is($x == $y, ''); $x = $mbr->new('-124'); $y = $mbr->new('-122'); is($x->bacmp($y), 1); $x = $mbr->new('-124'); $y = $mbr->new('-122'); is($x->bcmp($y), -1); $x = $mbr->new('3/7'); $y = $mbr->new('5/7'); is($x+$y, '8/7'); $x = $mbr->new('3/7'); $y = $mbr->new('5/7'); is($x*$y, '15/49'); $x = $mbr->new('3/5'); $y = $mbr->new('5/7'); is($x*$y, '3/7'); $x = $mbr->new('3/5'); $y = $mbr->new('5/7'); is($x/$y, '21/25'); $x = $mbr->new('7/4'); $y = $mbr->new('1'); is($x % $y, '3/4'); $x = $mbr->new('7/4'); $y = $mbr->new('5/13'); is($x % $y, '11/52'); $x = $mbr->new('7/4'); $y = $mbr->new('5/9'); is($x % $y, '1/12'); $x = $mbr->new('-144/9')->bsqrt(); is($x, 'NaN'); $x = $mbr->new('144/9')->bsqrt(); is($x, '4'); $x = $mbr->new('3/4')->bsqrt(); is($x, '4330127018922193233818615853764680917357/' . '5000000000000000000000000000000000000000'); ############################################################################## # bpow $x = $mbr->new('2/1'); $z = $x->bpow('3/1'); is($x, '8'); $x = $mbr->new('1/2'); $z = $x->bpow('3/1'); is($x, '1/8'); $x = $mbr->new('1/3'); $z = $x->bpow('4/1'); is($x, '1/81'); $x = $mbr->new('2/3'); $z = $x->bpow('4/1'); is($x, '16/81'); $x = $mbr->new('2/3'); $z = $x->bpow('5/3'); is($x, '31797617848703662994667839220546583581/62500000000000000000000000000000000000'); ############################################################################## # bfac $x = $mbr->new('1'); $x->bfac(); is($x, '1'); for (my $i = 0; $i < 8; $i++) { $x = $mbr->new("$i/1")->bfac(); is($x, $mbi->new($i)->bfac()); } # test for $self->bnan() vs. $x->bnan(); $x = $mbr->new('-1'); $x->bfac(); is($x, 'NaN'); ############################################################################## # binc/bdec note("binc()"); $x = $mbr->new('3/2'); is($x->binc(), '5/2'); note("bdec()"); $x = $mbr->new('15/6'); is($x->bdec(), '3/2'); ############################################################################## # bfloor note("bfloor()"); $x = $mbr->new('-7/7'); is($x->$n(), '-1'); is($x->$d(), '1'); $x = $mbr->new('-7/7')->bfloor(); is($x->$n(), '-1'); is($x->$d(), '1'); ############################################################################## # bsstr $x = $mbr->new('7/5')->bsstr(); is($x, '7/5'); $x = $mbr->new('-7/5')->bsstr(); is($x, '-7/5'); ############################################################################## note("numify()"); my @array = qw/1 2 3 4 5 6 7 8 9/; $x = $mbr->new('8/8'); is($array[$x], 2); $x = $mbr->new('16/8'); is($array[$x], 3); $x = $mbr->new('17/8'); is($array[$x], 3); $x = $mbr->new('33/8'); is($array[$x], 5); $x = $mbr->new('-33/8'); is($array[$x], 6); $x = $mbr->new('-8/1'); is($array[$x], 2); # -8 => 2 require Math::Complex; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; sub isnumeric { my $value = shift; ($value ^ $value) eq "0"; } subtest qq|$mbr -> new("33/8") -> numify()| => sub { plan tests => 3; $x = $mbr -> new("33/8") -> numify(); is(ref($x), "", '$x is a scalar'); ok(isnumeric($x), '$x is numeric'); cmp_ok($x, "==", 4.125, '$x has the right value'); }; subtest qq|$mbr -> new("-33/8") -> numify()| => sub { plan tests => 3; $x = $mbr -> new("-33/8") -> numify(); is(ref($x), "", '$x is a scalar'); ok(isnumeric($x), '$x is numeric'); cmp_ok($x, "==", -4.125, '$x has the right value'); }; subtest qq|$mbr -> new("inf") -> numify()| => sub { plan tests => 3; $x = $mbr -> new("inf") -> numify(); is(ref($x), "", '$x is a scalar'); ok(isnumeric($x), '$x is numeric'); cmp_ok($x, "==", $inf, '$x has the right value'); }; subtest qq|$mbr -> new("-inf") -> numify()| => sub { plan tests => 3; $x = $mbr -> new("-inf") -> numify(); is(ref($x), "", '$x is a scalar'); ok(isnumeric($x), '$x is numeric'); cmp_ok($x, "==", -$inf, '$x has the right value'); }; subtest qq|$mbr -> new("NaN") -> numify()| => sub { plan tests => 3; $x = $mbr -> new("NaN") -> numify(); is(ref($x), "", '$x is a scalar'); ok(isnumeric($x), '$x is numeric'); cmp_ok($x, "!=", $nan, '$x has the right value'); # Note: NaN != NaN }; ############################################################################## # as_hex(), as_bin(), as_oct() note("as_hex(), as_bin(), as_oct()"); $x = $mbr->new('8/8'); is($x->as_hex(), '0x1'); is($x->as_bin(), '0b1'); is($x->as_oct(), '01'); $x = $mbr->new('80/8'); is($x->as_hex(), '0xa'); is($x->as_bin(), '0b1010'); is($x->as_oct(), '012'); ############################################################################## # broot(), blog(), bmodpow() and bmodinv() note("broot(), blog(), bmodpow(), bmodinv()"); $x = $mbr->new(2) ** 32; $y = $mbr->new(4); $z = $mbr->new(3); is($x->copy()->broot($y), 2 ** 8); is(ref($x->copy()->broot($y)), $mbr, "\$x is a $mbr"); is($x->copy()->bmodpow($y, $z), 1); is(ref($x->copy()->bmodpow($y, $z)), $mbr, "\$x is a $mbr"); $x = $mbr->new(8); $y = $mbr->new(5033); $z = $mbr->new(4404); is($x->copy()->bmodinv($y), $z); is(ref($x->copy()->bmodinv($y)), $mbr, "\$x is a $mbr"); # square root with exact result $x = $mbr->new('1.44'); is($x->copy()->broot(2), '6/5'); is(ref($x->copy()->broot(2)), $mbr, "\$x is a $mbr"); # log with exact result $x = $mbr->new('256.1'); is($x->copy()->blog(2), '8000563442710106079310294693803606983661/1000000000000000000000000000000000000000', "\$x = $mbr->new('256.1')->blog(2)"); is(ref($x->copy()->blog(2)), $mbr, "\$x is a $mbr"); $x = $mbr->new(144); is($x->copy()->broot('2'), 12, 'v/144 = 12'); $x = $mbr->new(12*12*12); is($x->copy()->broot('3'), 12, '(12*12*12) ** 1/3 = 12'); ############################################################################## # from_hex(), from_bin(), from_oct() note("from_hex(), from_bin(), from_oct()"); $x = Math::BigRat->from_hex('0x100'); is($x, '256', 'from_hex'); $x = $mbr->from_hex('0x100'); is($x, '256', 'from_hex'); $x = Math::BigRat->from_bin('0b100'); is($x, '4', 'from_bin'); $x = $mbr->from_bin('0b100'); is($x, '4', 'from_bin'); $x = Math::BigRat->from_oct('0100'); is($x, '64', 'from_oct'); $x = $mbr->from_oct('0100'); is($x, '64', 'from_oct'); ############################################################################## # as_float() $x = Math::BigRat->new('1/2'); my $f = $x->as_float(); is($x, '1/2', '$x unmodified'); is($f, '0.5', 'as_float(0.5)'); $x = Math::BigRat->new('2/3'); $f = $x->as_float(5); is($x, '2/3', '$x unmodified'); is($f, '0.66667', 'as_float(2/3, 5)'); # Integers should be converted exactly. $x = Math::BigRat->new("3141592653589793238462643383279502884197169399375106"); $f = $x->as_float(); is($x, "3141592653589793238462643383279502884197169399375106", '$x unmodified'); is($f, "3141592653589793238462643383279502884197169399375106", 'as_float(3141592653589793238462643383279502884197169399375106, 5)'); ############################################################################## # int() $x = Math::BigRat->new('5/2'); is(int($x), '2', '5/2 converted to integer'); $x = Math::BigRat->new('-1/2'); is(int($x), '0', '-1/2 converted to integer'); ############################################################################## # done 1; Math-BigInt-2.005003/t/bigratpm.inc0000644403072340010010000004454614776666035016540 0ustar OSPJADomain Users#include this file into another test for subclass testing... use strict; use warnings; our ($CLASS, $try, $x, $y, $z, $f, @args, $want, $got, $setup, $LIB); is($CLASS->config()->{lib}, $LIB); $setup = ''; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $f = $_; next; } if (/^\$/) { $setup = $_; $setup =~ s/\$/\$${CLASS}::/g; # round_mode, div_scale #print "\$setup== $setup\n"; next; } if (m|^(.*?):(/.+)$|) { $want = $2; @args = split(/:/, $1, 99); } else { @args = split(/:/, $_, 99); $want = pop(@args); } $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try .= " \$x;"; } elsif ($f eq "finf") { my $a = $args[1] || ''; $try .= qq| \$x->binf("$a");|; } elsif ($f eq "fone") { $try .= qq| \$x->bone("$args[1]");|; } elsif ($f eq "fstr") { $try .= " \$x->accuracy($args[1]); \$x->precision($args[2]);"; $try .= ' $x->bstr();'; } elsif ($f eq "parts") { # ->bstr() to see if an object is returned $try .= ' ($a,$b) = $x->parts(); $a = $a->bstr(); $b = $b->bstr();'; $try .= ' "$a $b";'; } elsif ($f eq "numerator") { # ->bstr() to see if an object is returned $try .= ' $x->numerator()->bstr();'; } elsif ($f eq "denominator") { # ->bstr() to see if an object is returned $try .= ' $x->denominator()->bstr();'; } elsif ($f =~ /^(length|numify)$/) { $try .= " \$x->$f();"; # some unary ops (can't test the fxxx form, since no AUTOLOAD in BigRat) } elsif ($f =~ /^f(nan|sstr|neg|floor|ceil|abs)$/) { $try .= " \$x->b$1();"; # overloaded functions } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) { $try .= " \$x = $f(\$x);"; # some is_xxx test function } elsif ($f =~ /^is_(zero|pos|neg|negative|positive|odd|even|nan|int)\z/) { $try .= " \$x->$f();"; } elsif ($f =~ /^is_(one|inf)$/) { $try .= @args == 1 ? qq| \$x->$f();| : qq| \$x->$f("$args[1]");|; } elsif ($f =~ /^(as_number|as_int)\z/) { $try .= " \$x->$1();"; } elsif ($f eq "finc") { $try .= ' ++$x;'; } elsif ($f eq "fdec") { $try .= ' --$x;'; } elsif ($f eq "digit") { $try .= " \$x->digit($args[1]);"; } elsif ($f eq "fround") { $try .= " $setup; \$x->bround($args[1]);"; } elsif ($f eq "ffround") { $try .= " $setup; \$x->bfround($args[1]);"; } elsif ($f eq "fsqrt") { $try .= " $setup; \$x->bsqrt();"; } elsif ($f eq "flog") { $try .= " $setup; \$x->blog();"; } elsif ($f eq "ffac") { $try .= " $setup; \$x->bfac();"; } else { $try .= qq| \$y = $CLASS->new("$args[1]");|; if ($f eq "bcmp") { $try .= ' $x <=> $y;'; } elsif ($f eq "bacmp") { $try .= ' $x->bacmp($y);'; } elsif ($f eq "bpow") { $try .= ' $x->bpow($y);'; } elsif ($f eq "badd") { $try .= ' $x + $y;'; } elsif ($f eq "bsub") { $try .= ' $x - $y;'; } elsif ($f eq "bmul") { $try .= ' $x * $y;'; } elsif ($f eq "bdiv") { $try .= " $setup; \$x / \$y;"; } elsif ($f eq "bdiv-list") { $try .= qq| $setup; join(",", \$x->bdiv(\$y));|; } elsif ($f eq "brsft") { $try .= ' $x >> $y;'; } elsif ($f eq "blsft") { $try .= ' $x << $y;'; } elsif ($f eq "bmod") { $try .= ' $x % $y;'; } elsif ($f eq "bmodinv") { $try .= " \$x->bmodinv(\$y);"; } elsif ($f eq "blog") { $try .= " \$x->blog(\$y);"; } else { $try .= qq| \$z = $CLASS->new("$args[2]");|; # Functions with three arguments if ($f eq "bmodpow") { $try .= " \$x->bmodpow(\$y, \$z);"; } else { warn "Unknown op '$f'"; } } } # print "# Trying: '$try'\n"; $got = eval $try; if ($want =~ m|^/(.*)$|) { my $pat = $1; like($got, qr/$pat/, $try); } else { if ($want eq "") { is($got, undef, $try); } else { is($got, $want, $try); #if (ref($got) eq "$CLASS") { # # float numbers are normalized (for now), so mantissa shouldn't have # # trailing zeros # #print $got->_trailing_zeros(), "\n"; # print "# Has trailing zeros after '$try'\n" # if !is($got->{_m}->_trailing_zeros(), 0); #} } } # end pattern or string } # end while # check whether $CLASS->new(Math::BigInt->new()) destroys it # ($y == 12 in this case) $x = Math::BigInt->new(1200); $y = $CLASS->new($x); is($y, 1200, qq|\$x = Math::BigInt->new(1200); \$y = $CLASS->new(\$x); $y|); is($x, 1200, qq|\$x = Math::BigInt->new(1200); \$y = $CLASS->new(\$x); $x|); ############################################################################### # zero, inf, one, nan $x = $CLASS->new(2); $x->bzero(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bzero(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bzero(); \$x->{precision}|); $x = $CLASS->new(2); $x->binf(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->binf(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->binf(); \$x->{precision}|); $x = $CLASS->new(2); $x->bone(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bone(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bone(); \$x->{precision}|); $x = $CLASS->new(2); $x->bnan(); is($x->{accuracy}, undef, qq|\$x = $CLASS->new(2); \$x->bnan(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $CLASS->new(2); \$x->bnan(); \$x->{precision}|); __DATA__ &digit 123:2:1 1234:0:4 1234:1:3 1234:2:2 1234:3:1 1234:-1:1 1234:-2:2 1234:-3:3 1234:-4:4 0:0:0 0:1:0 &bmodinv # format: number:modulus:result # bmodinv Data errors abc:abc:NaN abc:5:NaN 5:abc:NaN # bmodinv Expected Results from normal use 1:5:1 3:5:2 3:-5:-3 -2:5:2 8:5033:4404 1234567891:13:6 -1234567891:13:7 324958749843759385732954874325984357439658735983745:2348249874968739:1741662881064902 ## bmodinv Error cases / useless use of function inf:5:NaN 5:inf:NaN -inf:5:NaN 5:-inf:NaN &as_number 144/7:20 12/1:12 -12/1:-12 -12/3:-4 NaN:NaN +inf:inf -inf:-inf &as_int 144/7:20 12/1:12 -12/1:-12 -12/3:-4 NaN:NaN +inf:inf -inf:-inf &bmodpow # format: number:exponent:modulus:result # bmodpow Data errors abc:abc:abc:NaN 5:abc:abc:NaN abc:5:abc:NaN abc:abc:5:NaN 5:5:abc:NaN 5:abc:5:NaN abc:5:5:NaN # bmodpow Expected results 0:0:2:1 1:0:2:1 0:0:1:0 8:7:5032:3840 8:-1:5033:4404 8:8:-5:-4 98436739867439843769485798542749827593285729587325:43698764986460981048259837659386739857456983759328457:6943857329857295827698367:3104744730915914415259518 # bmodpow Error cases 8:-1:16:NaN inf:5:13:NaN 5:inf:13:NaN &bmod NaN:1:NaN 1:NaN:NaN 1:1:0 2:2:0 12:6:0 7/4:4/14:1/28 7/4:4/16:0 -7/4:4/16:0 -7/4:-4/16:0 7/4:-4/16:0 7/4:4/32:0 -7/4:4/32:0 -7/4:-4/32:0 7/4:-4/32:0 7/4:4/28:1/28 -7/4:4/28:3/28 7/4:-4/28:-3/28 -7/4:-4/28:-1/28 &fsqrt 1:1 0:0 NaN:NaN +inf:inf -inf:NaN 144:12 # sqrt(144) / sqrt(4) = 12/2 = 6/1 144/4:6 25/16:5/4 -3:NaN 4/9:2/3 36/49:6/7 49/121:7/11 999966000289/99999820000081:999983/9999991 &flog NaN:NaN 0:-inf -2:NaN &blog NaN:NaN:NaN 0:NaN:NaN NaN:0:NaN NaN:1:NaN 1:NaN:NaN 0:2:-inf 0:-2:NaN 3:-2:NaN &finf 1:+:inf 2:-:-inf 3:abc:inf &numify 0:0 +1:1 1234:1234 3/4:0.75 5/2:2.5 3/2:1.5 5/4:1.25 &fnan abc:NaN 2:NaN -2:NaN 0:NaN &fone 2:+:1 -2:-:-1 -2:+:1 2:-:-1 0::1 -2::1 abc::1 2:abc:1 &fsstr +inf:inf -inf:-inf abcfsstr:NaN 1:1 3/1:3 0.1:1/10 &bnorm 1:1 -0:0 bnormNaN:NaN +inf:inf -inf:-inf inf/inf:NaN 5/inf:0 5/-inf:0 inf/5:inf -inf/5:-inf inf/-5:-inf -inf/-5:inf 123:123 -123.4567:-1234567/10000 #1.E3:NaN .2E-3.:NaN #1e3e4:NaN .2E2:20 inf:inf +inf:inf -inf:-inf +InFiNiTy:inf +-inf:NaN abc:NaN 1 a:NaN 1bcd2:NaN 11111b:NaN +1z:NaN -1z:NaN 0:0 +0:0 +00:0 +0_0_0:0 000000_0000000_00000:0 -0:0 -0000:0 +1:1 +01:1 +001:1 +00000100000:100000 +00000800/00000010:80 -00000800/00000010:-80 +00000800/-00000010:-80 -00000800/-00000010:80 123456789:123456789 -1:-1 -01:-1 -001:-1 -123456789:-123456789 -00000100000:-100000 123.456a:NaN 123.456:15432/125 0.01:1/100 .002:1/500 +.2:1/5 -0.0003:-3/10000 -.0000000004:-1/2500000000 123456E2:12345600 123456E-2:30864/25 -123456E2:-12345600 -123456E-2:-30864/25 1e1:10 2e-11:1/50000000000 12/10:6/5 0.1/0.1:1 100/0.1:1000 0.1/10:1/100 1 / 3:1/3 1/ 3:1/3 1 /3:1/3 &fneg fnegNaN:NaN +inf:-inf -inf:inf +0:0 +1:-1 -1:1 +123456789:-123456789 -123456789:123456789 +123.456789:-123456789/1000000 -123456.789:123456789/1000 123/7:-123/7 -123/7:123/7 123/-7:123/7 &fabs fabsNaN:NaN +inf:inf -inf:inf +0:0 +1:1 -1:1 +123456789:123456789 -123456789:123456789 +123.456789:123456789/1000000 -123456.789:123456789/1000 &badd abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:NaN -inf:+inf:NaN +inf:+inf:inf -inf:-inf:-inf baddNaN:+inf:NaN baddNaN:+inf:NaN +inf:baddNaN:NaN -inf:baddNaN:NaN +0:+0:0 +1:+0:1 +0:+1:1 +1:+1:2 -1:+0:-1 +0:-1:-1 -1:-1:-2 -1:+1:0 +1:-1:0 +9:+1:10 +99:+1:100 +999:+1:1000 +9999:+1:10000 +99999:+1:100000 +999999:+1:1000000 +9999999:+1:10000000 +99999999:+1:100000000 +999999999:+1:1000000000 +9999999999:+1:10000000000 +99999999999:+1:100000000000 +10:-1:9 +100:-1:99 +1000:-1:999 +10000:-1:9999 +100000:-1:99999 +1000000:-1:999999 +10000000:-1:9999999 +100000000:-1:99999999 +1000000000:-1:999999999 +10000000000:-1:9999999999 +123456789:+987654321:1111111110 -123456789:+987654321:864197532 -123456789:-987654321:-1111111110 +123456789:-987654321:-864197532 1/3:1/3:2/3 2/3:-1/3:1/3 &bsub abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:inf -inf:+inf:-inf +inf:+inf:NaN -inf:-inf:NaN baddNaN:+inf:NaN baddNaN:+inf:NaN +inf:baddNaN:NaN -inf:baddNaN:NaN +0:+0:0 +1:+0:1 +0:+1:-1 +1:+1:0 -1:+0:-1 +0:-1:1 -1:-1:0 -1:+1:-2 +1:-1:2 +9:+1:8 +99:+1:98 +999:+1:998 +9999:+1:9998 +99999:+1:99998 +999999:+1:999998 +9999999:+1:9999998 +99999999:+1:99999998 +999999999:+1:999999998 +9999999999:+1:9999999998 +99999999999:+1:99999999998 +10:-1:11 +100:-1:101 +1000:-1:1001 +10000:-1:10001 +100000:-1:100001 +1000000:-1:1000001 +10000000:-1:10000001 +100000000:-1:100000001 +1000000000:-1:1000000001 +10000000000:-1:10000000001 +123456789:+987654321:-864197532 -123456789:+987654321:-1111111110 -123456789:-987654321:864197532 +123456789:-987654321:1111111110 2/3:1/3:1/3 7/27:3/54:11/54 -2/3:+2/3:-4/3 -2/3:-2/3:0 0:-123:123 0:123:-123 &bmul abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:NaNmul:NaN +inf:NaNmul:NaN NaNmul:+inf:NaN NaNmul:-inf:NaN +inf:+inf:inf +inf:-inf:-inf +inf:-inf:-inf +inf:+inf:inf +inf:123.34:inf +inf:-123.34:-inf -inf:123.34:-inf -inf:-123.34:inf 123.34:+inf:inf -123.34:+inf:-inf 123.34:-inf:-inf -123.34:-inf:inf +0:+0:0 +0:+1:0 +1:+0:0 +0:-1:0 -1:+0:0 +123456789123456789:+0:0 +0:+123456789123456789:0 -1:-1:1 -1:+1:-1 +1:-1:-1 +1:+1:1 +2:+3:6 -2:+3:-6 +2:-3:-6 -2:-3:6 +111:+111:12321 +10101:+10101:102030201 +1001001:+1001001:1002003002001 +100010001:+100010001:10002000300020001 +10000100001:+10000100001:100002000030000200001 +11111111111:+9:99999999999 +22222222222:+9:199999999998 +33333333333:+9:299999999997 +44444444444:+9:399999999996 +55555555555:+9:499999999995 +66666666666:+9:599999999994 +77777777777:+9:699999999993 +88888888888:+9:799999999992 +99999999999:+9:899999999991 6:120:720 10:10000:100000 1/4:1/3:1/12 &bdiv-list 0:0:NaN,0 0:1:0,0 1:0:inf,1 -1:0:-inf,-1 9:4:2,1 -9:4:-3,3 9:-4:-3,-3 -9:-4:2,-1 11/7:2/3:2,5/21 -11/7:2/3:-3,3/7 &bdiv $div_scale = 40; $round_mode = "even" abc:abc:NaN abc:+1:abc:NaN +1:abc:NaN -1:abc:NaN 0:abc:NaN +0:+0:NaN +0:+1:0 +1:+0:inf +3214:+0:inf +0:-1:0 -1:+0:-inf -3214:+0:-inf +1:+1:1 -1:-1:1 +1:-1:-1 -1:+1:-1 +1:+2:1/2 +2:+1:2 123:+inf:0 123:-inf:0 +10:+5:2 +100:+4:25 +1000:+8:125 +10000:+16:625 +10000:-16:-625 +999999999999:+9:111111111111 +999999999999:+99:10101010101 +999999999999:+999:1001001001 +999999999999:+9999:100010001 +999999999999999:+99999:10000100001 +1000000000:+9:1000000000/9 +2000000000:+9:2000000000/9 +3000000000:+9:1000000000/3 +4000000000:+9:4000000000/9 +5000000000:+9:5000000000/9 +6000000000:+9:2000000000/3 +7000000000:+9:7000000000/9 +8000000000:+9:8000000000/9 +9000000000:+9:1000000000 +35500000:+113:35500000/113 +71000000:+226:35500000/113 +106500000:+339:35500000/113 +1000000000:+3:1000000000/3 2:25.024996000799840031993601279744051189762:1000000000000000000000000000000000000000/12512498000399920015996800639872025594881 123456:1:123456 1/4:1/3:3/4 # reset scale for further tests $div_scale = 40 &is_nan 123:0 abc:1 NaN:1 -123:0 &is_inf # without sign argument abc:0 NaN:0 +inf:1 -inf:1 -1:0 0:0 1:0 # with sign argument "+" abc:+:0 NaN:+:0 +inf:+:1 -inf:+:0 -1:+:0 0:+:0 1:+:0 # with sign argument "-" abc:-:0 NaN:-:0 +inf:-:0 -inf:-:1 -1:-:0 0:-:0 1:-:0 +infinity:1 -infinity:1 &is_odd abc:0 0:0 -1:1 -3:1 1:1 3:1 1000001:1 1000002:0 +inf:0 -inf:0 123.45:0 -123.45:0 2:0 &is_int NaNis_int:0 0:1 1:1 2:1 -2:1 -1:1 -inf:0 +inf:0 123.4567:0 -0.1:0 -0.002:0 1/3:0 3/1:1 &is_even abc:0 0:1 -1:0 -3:0 1:0 3:0 1000001:0 1000002:1 2:1 +inf:0 -inf:0 123.456:0 -123.456:0 0.01:0 -0.01:0 120:1 1200:1 -1200:1 &is_pos 0:0 1:1 -1:0 -123:0 NaN:0 -inf:0 +inf:1 &is_positive 0:0 1:1 -1:0 -123:0 NaN:0 -inf:0 +inf:1 &is_neg 0:0 1:0 -1:1 -123:1 NaN:0 -inf:1 +inf:0 &is_negative 0:0 1:0 -1:1 -123:1 NaN:0 -inf:1 +inf:0 &parts 0:0 1 1:1 1 123:123 1 -123:-123 1 -1200:-1200 1 5/7:5 7 -5/7:-5 7 NaNparts:NaN NaN +inf:inf inf -inf:-inf inf &length 123:3 -123:3 0:1 1:1 12345678901234567890:20 &is_zero NaNzero:0 +inf:0 -inf:0 0:1 -1:0 1:0 0/3:1 1/3:0 -0/3:1 5/inf:1 &is_one # with no sign argument invalid:0 NaN:0 +inf:0 -inf:0 -2:0 -1:0 0:0 1:1 -2:0 # with sign argument "+" invalid:+:0 NaN:+:0 +inf:+:0 -inf:+:0 -2:+:0 -1:+:0 0:+:0 1:+:1 -2:+:0 # with sign argument "-" invalid:-:0 NaN:-:0 +inf:-:0 -inf:-:0 -2:-:0 -1:-:1 0:-:0 1:-:0 -2:-:0 1/3:0 100/100:1 0.1/0.1:1 5/inf:0 &ffloor 0:0 abc:NaN +inf:inf -inf:-inf 1:1 -51:-51 -51.2:-52 12.2:12 3/7:0 6/7:0 7/7:1 8/7:1 13/7:1 14/7:2 15/7:2 -3/7:-1 -6/7:-1 -7/1:-7 -8/7:-2 -13/7:-2 -14/7:-2 -15/7:-3 &fceil 0:0 abc:NaN +inf:inf -inf:-inf 1:1 -51:-51 -51.2:-51 12.2:13 3/7:1 6/7:1 8/7:2 13/7:2 14/7:2 15/7:3 -3/7:0 -6/7:0 -8/7:-1 -13/7:-1 -14/7:-2 -15/7:-2 &ffac NaN:NaN 1:1 -1:NaN &bpow # abc:123:NaN 123:abc:NaN # -inf:-inf:0 -inf:-3:0 -inf:-2:0 -inf:-3/2:0 -inf:-1:0 -inf:-1/2:0 -inf:0:NaN -inf:1/2:inf # directed infinity -inf:1:-inf -inf:3/2:inf # directed infinity -inf:2:inf -inf:3:-inf -inf:inf:inf # complex infinity -inf:NaN:NaN # -3:-inf:0 -3:-3:-1/27 -3:-2:1/9 -3:-3/2:NaN -3:-1:-1/3 -3:-1/2:NaN -3:0:1 -3:1/2:NaN -3:1:-3 -3:3/2:NaN -3:2:9 -3:3:-27 -3:inf:inf # complex infinity -3:NaN:NaN # -2:-inf:0 -2:-3:-1/8 -2:-2:1/4 -2:-3/2:NaN -2:-1:-1/2 -2:-1/2:NaN -2:0:1 -2:1/2:NaN -2:1:-2 -2:3/2:NaN -2:2:4 -2:3:-8 -2:inf:inf # complex infinity -2:NaN:NaN # -3/2:-inf:0 -3/2:-3:-8/27 -3/2:-2:4/9 -3/2:-3/2:NaN -3/2:-1:-2/3 -3/2:-1/2:NaN -3/2:0:1 -3/2:1/2:NaN -3/2:1:-3/2 -3/2:3/2:NaN -3/2:2:9/4 -3/2:3:-27/8 -3/2:inf:inf # complex infinity -3/2:NaN:NaN # -1:-inf:NaN -1:-3:-1 -1:-2:1 -1:-3/2:NaN -1:-1:-1 -1:-1/2:NaN -1:0:1 -1:1/2:NaN -1:1:-1 -1:3/2:NaN -1:2:1 -1:3:-1 -1:inf:NaN -1:NaN:NaN # -1/2:-inf:inf # complex infinity -1/2:-3:-8 -1/2:-2:4 -1/2:-3/2:NaN -1/2:-1:-2 -1/2:-1/2:NaN -1/2:0:1 -1/2:1/2:NaN -1/2:1:-1/2 -1/2:3/2:NaN -1/2:2:1/4 -1/2:3:-1/8 -1/2:inf:0 -1/2:NaN:NaN # 0:-inf:inf # complex infinity 0:-3:inf # complex infinity 0:-2:inf # complex infinity 0:-3/2:inf # complex infinity 0:-1:inf # complex infinity 0:-1/2:inf # complex infinity 0:0:1 0:1/2:0 0:1:0 0:3/2:0 0:2:0 0:3:0 0:inf:0 0:NaN:NaN # 1/2:-inf:inf 1/2:-3:8 1/2:-2:4 #1/2:-3/2:2.828427124746190097603377448419396157139 1/2:-1:2 #1/2:-1/2:1.41421356237309504880168872420969807857 1/2:0:1 #1/2:1/2:0.7071067811865475244008443621048490392848 1/2:1:1/2 #1/2:3/2:0.3535533905932737622004221810524245196424 1/2:2:1/4 1/2:3:1/8 1/2:inf:0 1/2:NaN:NaN # 1:-inf:1 1:-3:1 1:-2:1 1:-3/2:1 1:-1:1 1:-1/2:1 1:0:1 1:1/2:1 1:1:1 1:3/2:1 1:2:1 1:3:1 1:inf:1 1:NaN:NaN # 3/2:-inf:0 3/2:-3:8/27 3/2:-2:4/9 #3/2:-3/2:0.5443310539518173551549520166013091982147 3/2:-1:2/3 #3/2:-1/2:0.816496580927726032732428024901963797322 3/2:0:1 #3/2:1/2:1.224744871391589049098642037352945695983 3/2:1:3/2 #3/2:3/2:1.837117307087383573647963056029418543974 3/2:2:9/4 3/2:3:27/8 3/2:inf:inf 3/2:NaN:NaN # 2:-inf:0 2:-3:1/8 2:-2:1/4 #2:-3/2:0.3535533905932737622004221810524245196424 2:-1:1/2 #2:-1/2:0.7071067811865475244008443621048490392848 2:0:1 #2:1/2:1.41421356237309504880168872420969807857 2:1:2 #2:3/2:2.828427124746190097603377448419396157139 2:2:4 2:3:8 2:inf:inf 2:NaN:NaN # 3:-inf:0 3:-3:1/27 3:-2:1/9 #3:-3/2:0.1924500897298752548363829268339858185492 3:-1:1/3 #3:-1/2:0.5773502691896257645091487805019574556476 3:0:1 #3:1/2:1.732050807568877293527446341505872366943 3:1:3 #3:3/2:5.196152422706631880582339024517617100828 3:2:9 3:3:27 3:inf:inf 3:NaN:NaN # inf:-inf:0 inf:-3:0 inf:-2:0 inf:-3/2:0 inf:-1:0 inf:-1/2:0 inf:0:NaN inf:1/2:inf inf:1:inf inf:3/2:inf inf:2:inf inf:3:inf inf:inf:inf inf:NaN:NaN # NaN:-inf:NaN NaN:-3:NaN NaN:-2:NaN NaN:-3/2:NaN NaN:-1:NaN NaN:-1/2:NaN NaN:0:NaN NaN:1/2:NaN NaN:1:NaN NaN:3/2:NaN NaN:2:NaN NaN:3:NaN NaN:inf:NaN NaN:NaN:NaN &bacmp +0:-0:0 +0:+1:-1 -1:+1:0 +1:-1:0 -1:+2:-1 +2:-1:1 -123456789:+987654321:-1 +123456789:-987654321:-1 +987654321:+123456789:1 -987654321:+123456789:1 -123:+4567889:-1 # NaNs acmpNaN:123: 123:acmpNaN: acmpNaN:acmpNaN: # infinity +inf:+inf:0 -inf:-inf:0 +inf:-inf:0 -inf:+inf:0 +inf:123:1 -inf:123:1 +inf:-123:1 -inf:-123:1 +inf:1/23:1 -inf:1/23:1 +inf:-1/23:1 -inf:-1/23:1 +inf:12/3:1 -inf:12/3:1 +inf:-12/3:1 -inf:-12/3:1 123:inf:-1 -123:inf:-1 123:-inf:-1 -123:-inf:-1 1/23:inf:-1 -1/23:inf:-1 1/23:-inf:-1 -1/23:-inf:-1 12/3:inf:-1 -12/3:inf:-1 12/3:-inf:-1 -12/3:-inf:-1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: 1/3:2/3:-1 2/3:1/3:1 2/3:2/3:0 &numerator NaN:NaN inf:inf -inf:-inf 3/7:3 -3/7:-3 0:0 1:1 5/-3:-5 &denominator NaN:NaN inf:1 -inf:1 3/7:7 0:1 1/1:1 -1/1:1 -3/7:7 4/-5:5 &finc 3/2:5/2 -15/6:-3/2 NaN:NaN -1/3:2/3 -2/7:5/7 &fdec 15/6:3/2 -3/2:-5/2 1/3:-2/3 2/7:-5/7 NaN:NaN &log -1:NaN 0:-inf 1:0 34803:3267955896544848894312057422508991/312500000000000000000000000000000 -inf:inf inf:inf NaN:NaN &exp &sin &cos &atan2 &int &abs &sqrt Math-BigInt-2.005003/t/bigratpm.t0000644403072340010010000000040514546553333016203 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 899; use Math::BigRat lib => 'Calc'; our ($CLASS, $LIB); $CLASS = "Math::BigRat"; $LIB = "Math::BigInt::Calc"; # backend require './t/bigratpm.inc'; # all tests here for sharing Math-BigInt-2.005003/t/bigratup.t0000644403072340010010000000152014546553333016212 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test whether $Math::BigInt::upgrade breaks our neck use strict; use warnings; use Test::More tests => 5; use Math::BigInt upgrade => 'Math::BigRat'; use Math::BigRat; my $rat = 'Math::BigRat'; my($x, $y, $z); ############################################################################## # bceil/bfloor $x = $rat->new('49/4'); is($x->bfloor(), '12', 'floor(49/4)'); $x = $rat->new('49/4'); is($x->bceil(), '13', 'ceil(49/4)'); ############################################################################## # bsqrt $x = $rat->new('144'); is($x->bsqrt(), '12', 'bsqrt(144)'); $x = $rat->new('144/16'); is($x->bsqrt(), '3', 'bsqrt(144/16)'); $x = $rat->new('1/3'); is($x->bsqrt(), '1443375672974064411272871951254893639119/2500000000000000000000000000000000000000', 'bsqrt(1/3)'); # all tests successful 1; Math-BigInt-2.005003/t/bigroot.t0000644403072340010010000000342014536617516016046 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test broot function (and bsqrt() function, since it is used by broot()). # It is too slow to be simple included in bigfltpm.inc, where it would get # executed 3 times. # But it is better to test the numerical functionality, instead of not testing # it at all. use strict; # restrict unsafe constructs use warnings; # enable optional warnings use Test::More tests => 16; use Math::BigFloat only => 'Calc'; use Math::BigInt; my $mbf = "Math::BigFloat"; my $mbi = "Math::BigInt"; # 2 ** 240 = # 1766847064778384329583297500742918515827483896875618958121606201292619776 test_broot('2', '240', 8, undef, '1073741824'); test_broot('2', '240', 9, undef, '106528681.3099908308759836475139583940127'); test_broot('2', '120', 9, undef, '10321.27324073880096577298929482324664787'); test_broot('2', '120', 17, undef, '133.3268493632747279600707813049418888729'); test_broot('2', '120', 8, undef, '32768'); test_broot('2', '60', 8, undef, '181.0193359837561662466161566988413540569'); test_broot('2', '60', 9, undef, '101.5936673259647663841091609134277286651'); test_broot('2', '60', 17, undef, '11.54672461623965153271017217302844672562'); sub test_broot { my ($x, $n, $y, $scale, $expected) = @_; my $s = $scale || 'undef'; is($mbf->new($x)->bpow($n)->broot($y, $scale), $expected, "Try: $mbf->new($x)->bpow($n)->broot($y, $s) == $expected"); # Math::BigInt returns the truncated integer part of the output, so remove # the dot an anything after it before comparing. $expected =~ s/\..*//; is($mbi->new($x)->bpow($n)->broot($y, $scale), $expected, "Try: $mbi->new($x)->bpow($n)->broot($y, $s) == $expected"); } Math-BigInt-2.005003/t/big_ap.t0000644403072340010010000000610214546553333015617 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test that accuracy() and precision() in BigInt/BigFloat do not disturb # the rounding force in BigRat. use strict; use warnings; use Test::More tests => 17; use Math::BigInt; use Math::BigFloat; use Math::BigRat; my $proper = Math::BigRat -> new('12345678901234567890/2'); my $proper_inc = Math::BigRat -> new('12345678901234567890/2') -> binc(); my $proper_dec = Math::BigRat -> new('12345678901234567890/2') -> bdec(); my $proper_int = Math::BigInt -> new('12345678901234567890'); my $proper_float = Math::BigFloat -> new('12345678901234567890'); my $proper2 = Math::BigRat -> new('12345678901234567890'); Math::BigInt -> accuracy(3); Math::BigFloat -> accuracy(5); my ($x, $y, $z); ############################################################################## # new() note "Test new()"; $z = Math::BigRat->new("12345678901234567890/2"); is($z, $proper, q|Math::BigRat->new("12345678901234567890/2")|); $z = Math::BigRat->new("1234567890123456789E1"); is($z, $proper2, q|Math::BigRat->new("1234567890123456789E1")|); $z = Math::BigRat->new("12345678901234567890/1E0"); is($z, $proper2, q|Math::BigRat->new("12345678901234567890/1E0")|); $z = Math::BigRat->new("1234567890123456789e1/1"); is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1")|); $z = Math::BigRat->new("1234567890123456789e1/1E0"); is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1E0")|); $z = Math::BigRat->new($proper_int); is($z, $proper2, qq|Math::BigRat->new("$proper_int")|); $z = Math::BigRat->new($proper_float); is($z, $proper2, qq|Math::BigRat->new("$proper_float")|); ############################################################################## # bdiv note "Test bdiv()"; $x = Math::BigRat->new("12345678901234567890"); $y = Math::BigRat->new("2"); $z = $x->copy->bdiv($y); is($z, $proper); ############################################################################## # bmul note "Test bmul()"; $x = Math::BigRat->new("$proper"); $y = Math::BigRat->new("1"); $z = $x->copy->bmul($y); is($z, $proper); $z = Math::BigRat->new("12345678901234567890/1E0"); is($z, $proper2); $z = Math::BigRat->new($proper_int); is($z, $proper2); $z = Math::BigRat->new($proper_float); is($z, $proper2); ############################################################################## # bdiv note "Test bdiv()"; $x = Math::BigRat->new("12345678901234567890"); $y = Math::BigRat->new("2"); $z = $x->copy->bdiv($y); is($z, $proper); ############################################################################## # bmul note "Test bmul()"; $x = Math::BigRat->new("$proper"); $y = Math::BigRat->new("1"); $z = $x->copy->bmul($y); is($z, $proper); $x = Math::BigRat->new("$proper"); $y = Math::BigRat->new("2"); $z = $x->copy->bmul($y); is($z, $proper2); ############################################################################## # binc note "Test binc()"; $x = $proper->copy()->binc(); is($x, $proper_inc); ############################################################################## # binc note "Test bdec()"; $x = $proper->copy()->bdec(); is($x, $proper_dec); Math-BigInt-2.005003/t/big_pi_e.t0000644403072340010010000000144314546553333016136 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test bpi() and bexp() use strict; use warnings; use Test::More tests => 8; use Math::BigFloat; ############################################################################# my $pi = Math::BigFloat::bpi(); is($pi->{accuracy}, undef, 'A is not defined'); is($pi->{precision}, undef, 'P is not defined'); $pi = Math::BigFloat->bpi(); is($pi->{accuracy}, undef, 'A is not defined'); is($pi->{precision}, undef, 'P is not defined'); $pi = Math::BigFloat->bpi(10); is($pi->{accuracy}, 10, 'A is defined'); is($pi->{precision}, undef, 'P is not defined'); ############################################################################# my $e = Math::BigFloat->new(1)->bexp(); is($e->{accuracy}, undef, 'A is not defined'); is($e->{precision}, undef, 'P is not defined'); Math-BigInt-2.005003/t/bitwise-mbr.t0000644403072340010010000000203414546553333016622 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2602; my @classes = ('Math::BigRat'); # We should test all the following operators: # # & | ^ << >> &= |= ^= <<= >>= # # as well as the corresponding methods # # band bior bxor blsft brsft for my $class (@classes) { use_ok($class); for my $op (qw( & | ^ )) { for (my $xscalar = 0 ; $xscalar <= 8 ; $xscalar += 0.5) { for (my $yscalar = 0 ; $yscalar <= 8 ; $yscalar += 0.5) { my $xint = int $xscalar; my $yint = int $yscalar; my $x = $class -> new("$xscalar"); my $y = $class -> new("$yscalar"); my $test = "$x $op $y"; my $expected = eval "$xscalar $op $yscalar"; my $got = eval "\$x $op \$y"; is($@, '', 'is $@ empty'); isa_ok($got, $class, $test); is($got, $expected, "$x $op $y = $xint $op $yint = $expected"); } } } } Math-BigInt-2.005003/t/calling-class-methods.t0000644403072340010010000000413114536617516020556 0ustar OSPJADomain Users# -*- mode: perl; -*- # test calling conventions, and :constant overloading use strict; use warnings; use Test::More tests => 164; ############################################################################## package Math::BigInt::Test; use Math::BigInt; our @ISA = qw/Math::BigInt/; # subclass of MBI use overload; ############################################################################## package Math::BigFloat::Test; use Math::BigFloat; our @ISA = qw/Math::BigFloat/; # subclass of MBI use overload; ############################################################################## package main; use Math::BigInt try => 'Calc'; use Math::BigFloat; my ($x, $y, $z, $u); ############################################################################### # check whether op's accept normal strings, even when inherited by subclasses # do one positive and one negative test to avoid false positives by "accident" my ($method, $expected); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $method = $_; next; } my @args = split /:/, $_, 99; $expected = pop @args; foreach my $class (qw/ Math::BigInt Math::BigFloat Math::BigInt::Test Math::BigFloat::Test /) { my $arg = $args[0] =~ /"/ || $args[0] eq "" ? $args[0] : qq|"$args[0]"|; my $try = "$class -> $method($arg);"; my $got = eval $try; is($got, $expected, $try); } } __END__ &is_zero 1:0 0:1 &is_one 1:1 0:0 &is_positive 1:1 -1:0 &is_negative 1:0 -1:1 &is_non_positive 1:0 -1:1 &is_non_negative 1:1 -1:0 &is_nan abc:1 1:0 &is_inf inf:1 0:0 &bstr 5:5 10:10 -10:-10 abc:NaN "+inf":inf "-inf":-inf &bsstr 1:1e+0 0:0e+0 2:2e+0 200:2e+2 -5:-5e+0 -100:-1e+2 abc:NaN "+inf":inf &babs -1:1 1:1 #&bnot #-2:1 #1:-2 &bzero :0 &bnan :NaN abc:NaN &bone :1 "+":1 "-":-1 &binf :inf "+":inf "-":-inf Math-BigInt-2.005003/t/calling-constant.t0000644403072340010010000000056414536617516017647 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 1; my ($x, $expected, $try); my $class = 'Math::BigInt'; # test whether :constant works or not $try = qq|use $class 0, "bgcd", ":constant";| . q| $x = 2**150; bgcd($x); $x = "$x";|; $expected = eval $try; is($expected, "1427247692705959881058285969449495136382746624", $try); Math-BigInt-2.005003/t/calling-instance-methods.t0000644403072340010010000000414314536617516021260 0ustar OSPJADomain Users# -*- mode: perl; -*- # test calling conventions, and :constant overloading use strict; use warnings; use Test::More tests => 156; ############################################################################## package Math::BigInt::Test; use Math::BigInt; our @ISA = qw/Math::BigInt/; # subclass of MBI use overload; ############################################################################## package Math::BigFloat::Test; use Math::BigFloat; our @ISA = qw/Math::BigFloat/; # subclass of MBI use overload; ############################################################################## package main; use Math::BigInt try => 'Calc'; use Math::BigFloat; my ($x, $y, $z, $u); ############################################################################### # check whether op's accept normal strings, even when inherited by subclasses # do one positive and one negative test to avoid false positives by "accident" my ($method, $expected); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $method = $_; next; } my @args = split /:/, $_, 99; $expected = pop @args; foreach my $class (qw/ Math::BigInt Math::BigFloat Math::BigInt::Test Math::BigFloat::Test /) { my $arg = $args[0] =~ /"/ || $args[0] eq "" ? $args[0] : qq|"$args[0]"|; my $try = "$class -> new($arg) -> $method();"; my $got = eval $try; is($got, $expected, $try); } } __END__ &is_zero 1:0 0:1 &is_one 1:1 0:0 &is_positive 1:1 -1:0 &is_negative 1:0 -1:1 &is_non_positive 1:0 -1:1 &is_non_negative 1:1 -1:0 &is_nan abc:1 1:0 &is_inf inf:1 0:0 &bstr 5:5 10:10 -10:-10 abc:NaN "+inf":inf "-inf":-inf &bsstr 1:1e+0 0:0e+0 2:2e+0 200:2e+2 -5:-5e+0 -100:-1e+2 abc:NaN "+inf":inf &babs -1:1 1:1 &bnot -2:1 1:-2 &bzero :0 &bnan :NaN abc:NaN &bone :1 #"+":1 #"-":-1 &binf :inf #"+":inf #"-":-inf Math-BigInt-2.005003/t/calling-lib1.t0000644403072340010010000000054514536617516016644 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 1; my ($x, $expected, $try); my $class = 'Math::BigInt'; # test whether Math::BigInt::Scalar via use works (w/ dff. spellings of calc) $try = qq|use $class 0, "lib" => "Scalar";| . q| $x = 2**10; $x = "$x";|; $expected = eval $try; is($expected, "1024", $try); Math-BigInt-2.005003/t/calling-lib2.t0000644403072340010010000000055614536617516016647 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 1; my ($x, $expected, $try); my $class = 'Math::BigInt'; # test whether Math::BigInt::Scalar via use works (w/ dff. spellings of calc) $try = qq|use $class 0, "lib" => "$class\::Scalar";| . q| $x = 2**10; $x = "$x";|; $expected = eval $try; is($expected, "1024", $try); Math-BigInt-2.005003/t/config.t0000644403072340010010000003405014756672324015653 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 246; use Math::BigInt lib => 'Calc'; use Math::BigFloat; use Math::BigRat; my $mbi = 'Math::BigInt'; my $mbf = 'Math::BigFloat'; my $mbr = 'Math::BigRat'; my @classes = ($mbi, $mbf, $mbr); # Default configuration for all classes. # # config() can also return 'lib', 'lib_version', 'class', and 'version' but # they are read-only. my %defaults = ( 'accuracy' => undef, 'precision' => undef, 'round_mode' => 'even', 'div_scale' => 40, 'trap_inf' => 0, 'trap_nan' => 0, 'upgrade' => undef, 'downgrade' => undef, ); ############################################################################## # Test config() as a class method getter. ############################################################################## for my $class (@classes) { note <<"EOF"; Verify that $class -> config("key") works. EOF can_ok($class, 'config'); my %table = (%defaults, # the following three are read-only 'lib' => 'Math::BigInt::Calc', 'lib_version' => $Math::BigInt::Calc::VERSION, 'class' => $class, 'version' => $Math::BigInt::VERSION, ); # Test getting via the new style $class -> config($key). subtest qq|New-style getter $class -> config("\$key")| => sub { plan tests => scalar keys %table; for my $key (sort keys %table) { my $val = $table{$key}; note qq|\n$class -> config("$key")\n\n|; is($class -> config($key), $val, qq|$class -> config("$key")|); } }; # Test getting via the old style $class -> config()->{$key}, which is still # supported. my $cfg = $class -> config(); is(ref($cfg), 'HASH', "ref() of output from $class -> config()"); subtest qq|Old-style getter $class -> config()->{"\$key"}| => sub { plan tests => scalar keys %table; for my $key (sort keys %table) { my $val = $table{$key}; note qq|\n$class -> config() -> {$key}\n\n|; is($cfg->{$key}, $val, qq|$class -> config()->{$key}|); } }; } ############################################################################## # Test config() as a class method setter. ############################################################################## # Alternative configuration. All values should be different from the default # configuration. Note that in reality, both "accuracy" and "precision" cannot # both be set simultaneously. This configuration is just for testing. my %test = ( 'accuracy' => 2, 'precision' => 3, 'round_mode' => 'zero', 'div_scale' => '100', 'trap_inf' => 1, 'trap_nan' => 1, 'upgrade' => 'Math::BigInt::SomeClass', 'downgrade' => 'Math::BigInt::SomeClass', ); for my $class (@classes) { note <<"EOF"; Verify that $class -> config("key" => value) works and that it doesn't affect the configuration of other classes. EOF for my $key (sort keys %test) { # Get the original value for restoring it later. my $orig = $class -> config($key); # Try setting the new value. eval { $class -> config($key => $test{$key}); }; die $@ if $@; # Verify that the value was set correctly. is($class -> config($key), $test{$key}, qq|$class -> config("$key") is $test{$key}|); # Verify that setting it in class $class didn't affect other classes. for my $other (@classes) { next if $other eq $class; isnt($other -> config($key), $class -> config($key), qq|$other -> config("$key") isn't affected by setting | . qq|$class -> config("$key")|); } # Restore the value. $class -> config($key => $orig); # Verify that the value was restored. is($class -> config($key), $orig, qq|$class -> config("$key") reset to | . (defined($orig) ? qq|"$orig"| : "undef")); } note <<"EOF"; Verify that $class -> config({"key" => value}) works and that it doesn't affect the configuration of other classes. EOF for my $key (sort keys %test) { # Get the original value for restoring it later. my $orig = $class -> config($key); # Try setting the new value. eval { $class -> config({ $key => $test{$key} }); }; die $@ if $@; # Verify that the value was set correctly. is($class -> config($key), $test{$key}, qq|$class -> config("$key") is $test{$key}|); # Verify that setting it in class $class didn't affect other classes. for my $other (@classes) { next if $other eq $class; isnt($other -> config($key), $class -> config($key), qq|$other -> config("$key") isn't affected by setting | . qq|$class -> config("$key")|); } # Restore the value. $class -> config($key => $orig); # Verify that the value was restored. is($class -> config($key), $orig, qq|$class -> config("$key") reset to | . (defined($orig) ? qq|"$orig"| : "undef")); } } # Verify that setting via a hash doesn't modify the hash. # In the %test configuration, both accuracy and precision are defined, which # won't work, so set one of them to undef. $test{accuracy} = undef; for my $class (@classes) { note <<"EOF"; Verify that $class -> config({key1 => val1, key2 => val2, ...}) doesn't modify the hash ref argument. EOF subtest "Verify that $class -> config(\$cfg) doesn't modify \$cfg" => sub { plan tests => 2 * keys %test; # Make copy of the configuration hash and use it as input to config(). my $cfg = { %test }; eval { $class -> config($cfg); }; die $@ if $@; # Verify that the configuration hash hasn't been modified. for my $key (sort keys %test) { ok(exists $cfg->{$key}, qq|existens of \$cfg->{"$key"}|); is($cfg->{$key}, $test{$key}, qq|value of \$cfg->{"$key"}|); } }; } # Special testing of setting both accuracy and precision simultaneouly with # config(). This didn't work correctly before. for my $class (@classes) { note <<"EOF"; Verify that $class -> config({accuracy => \$a, precision => \$p}) works as intended. EOF $class -> config({"accuracy" => 4, "precision" => undef}); subtest qq|$class -> config({"accuracy" => 4, "precision" => undef})| => sub { plan tests => 2; is($class -> config("accuracy"), 4, qq|$class -> config("accuracy")|); is($class -> config("precision"), undef, qq|$class -> config("precision")|); }; $class -> config({"accuracy" => undef, "precision" => 5}); subtest qq|$class -> config({"accuracy" => undef, "precision" => 5})| => sub { plan tests => 2; is($class -> config("accuracy"), undef, qq|$class -> config("accuracy")|); is($class -> config("precision"), 5, qq|$class -> config("precision")|); }; } # Test getting an invalid key (should croak). note <<"EOF"; Verify behaviour when getting an invalid key. EOF for my $class (@classes) { eval { $class -> config('some_garbage' => 1); }; like($@, qr/ ^ Illegal \s+ key\(s\) \s+ 'some_garbage' \s+ passed \s+ to \s+ /x, "Passing invalid key to $class -> config() causes an error."); } # Restore global configuration. for my $class (@classes) { my %config = %defaults; $class -> config(%defaults); } ############################################################################## # Test config() as an instance method getter. ############################################################################## # The following must be extended as global variables are moved into the OO # interface. XXX for my $class (@classes) { note <<"EOF"; $class: Verify that \$x -> config("key") works. EOF my $x = $class -> bzero(); #my %table = %defaults; my %table = map { $_ => $defaults{$_} } 'accuracy', 'precision'; # Test getting via $x -> config($key). subtest qq|$class: Test getter \$x -> config("\$key") where \$x is a $class| => sub { plan tests => 2; for my $key (sort keys %table) { my $val = $table{$key}; is($x -> config($key), $val, qq|\$x -> config("$key")|); } }; note <<"EOF"; $class: Verify that \$x -> config() works. EOF subtest qq|$class: Test that \$x -> config() where \$x is a $class| => sub { plan tests => 3; my $cfg = $x -> config(); cmp_ok(scalar(keys(%$cfg)), "==", 2, qq|configuration hash has correct number of keys|); for my $key ('accuracy', 'precision') { ok(exists($cfg->{$key}), qq|configuration has contains key "$key"|); } }; } ############################################################################## # Test config() as an instance method setter. ############################################################################## # Alternative configuration. All values should be different from the default # configuration. Note that in reality, both "accuracy" and "precision" cannot # both be set simultaneously. This configuration is just for testing. # At the moment, not all variables have been moved into the OO interface. XXX %test = ( 'accuracy' => 2, 'precision' => 3, #'round_mode' => 'zero', #'div_scale' => '100', #'trap_inf' => 1, #'trap_nan' => 1, #'upgrade' => 'Math::BigInt::SomeClass', #'downgrade' => 'Math::BigInt::SomeClass', ); for my $class (@classes) { note <<"EOF"; $class: Verify that \$x -> config("key" => value) works and that it doesn't affect the configuration of other classes. EOF my $x = $class -> bone(); for my $key (sort keys %test) { # Get the original value for restoring it later. my $orig = $x -> config($key); # Try setting the new value. subtest "$class: \$x -> config($key => $test{$key})" => sub { plan tests => 2; eval { $x -> config($key => $test{$key}); }; die $@ if $@; # Verify that the value was set correctly. is($x -> config($key), $test{$key}, qq|$class: \$x -> config("$key") is $test{$key}|); # Restore the value. $x -> config($key => $orig); # Verify that the value was restored. is($x -> config($key), $orig, qq|$class: \$x -> config("$key") reset to | . (defined($orig) ? qq|"$orig"| : "undef")); }; } note <<"EOF"; $class: Verify that \$x -> config({"key" => value}) works and that it doesn't affect the configuration of other classes. EOF for my $key (sort keys %test) { # Get the original value for restoring it later. my $orig = $x -> config($key); # Try setting the new value. subtest "$class: \$x -> config({ $key => $test{$key} })" => sub { plan tests => 2; eval { $x -> config({ $key => $test{$key} }); }; die $@ if $@; # Verify that the value was set correctly. is($x -> config($key), $test{$key}, qq|$class: \$x -> config("$key") is $test{$key}|); # Restore the value. $x -> config($key => $orig); # Verify that the value was restored. is($x -> config($key), $orig, qq|\$x -> config("$key") reset to | . (defined($orig) ? qq|"$orig"| : "undef")); }; } } # Verify that setting via a hash doesn't modify the hash. # In the %test configuration, both accuracy and precision are defined, which # won't work, so set one of them to undef. $test{accuracy} = undef; for my $class (@classes) { note <<"EOF"; $class: Verify that \$x -> config({key1 => val1, key2 => val2, ...}) doesn't modify the hash ref argument. EOF my $x = $class -> bone(); subtest "$class: Verify that \$x -> config(\$cfg) doesn't modify \$cfg" => sub { plan tests => 2 * keys %test; # Make copy of the configuration hash and use it as input to # config(). #my $cfg = { %test }; my $cfg = { map { $_ => $test{$_} } 'accuracy', 'precision' }; eval { $x -> config($cfg); }; die $@ if $@; # Verify that the configuration hash hasn't been modified. for my $key (sort keys %test) { ok(exists $cfg->{$key}, qq|existens of \$cfg->{"$key"}|); is($cfg->{$key}, $test{$key}, qq|value of \$cfg->{"$key"}|); } }; } # Special testing of setting both accuracy and precision simultaneouly with # config(). This didn't work correctly before. for my $class (@classes) { note <<"EOF"; $class: Verify that \$x -> config({accuracy => \$a, precision => \$p}) works as intended. EOF my $x = $class -> bone(); $x -> config({"accuracy" => 4, "precision" => undef}); subtest qq|$class: \$x -> config({"accuracy" => 4, "precision" => undef})| => sub { plan tests => 2; is($x -> config("accuracy"), 4, qq|\$x -> config("accuracy")|); is($x -> config("precision"), undef, qq|\$x -> config("precision")|); }; $x -> config({"accuracy" => undef, "precision" => 5}); subtest qq|$class: \$x -> config({"accuracy" => undef, "precision" => 5})| => sub { plan tests => 2; is($x -> config("accuracy"), undef, qq|\$x -> config("accuracy")|); is($x -> config("precision"), 5, qq|\$x -> config("precision")|); }; } # Test getting an invalid key (should croak). note <<"EOF"; Verify behaviour when getting an invalid key. EOF for my $class (@classes) { my $x = $class -> bone(); eval { $x -> config('some_garbage' => 1); }; like($@, qr/ ^ Illegal \s+ key\(s\) \s+ 'some_garbage' \s+ passed \s+ to \s+ /x, "$class: Passing invalid key to \$x -> config() causes an error."); } Math-BigInt-2.005003/t/downgrade-mbi-mbf.t0000644403072340010010000005377514750670765017707 0ustar OSPJADomain Users# -*- mode: perl; -*- # Note that this does not test Math::BigFloat upgrading. use strict; use warnings; use Test::More tests => 93; use Math::BigInt upgrade => 'Math::BigFloat'; use Math::BigFloat downgrade => 'Math::BigInt'; is(Math::BigFloat->downgrade(), 'Math::BigInt', 'Math::BigFloat->downgrade()'); is(Math::BigInt->upgrade(), 'Math::BigFloat', 'Math::BigInt->upgrade()'); # bug until v1.67: subtest 'Math::BigFloat->new("0.2E0")' => sub { plan tests => 2; my $x = Math::BigFloat->new("0.2E0"); is($x, "0.2", 'value of $x'); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); }; subtest 'Math::BigFloat->new("0.2E1")' => sub { plan tests => 2; my $x = Math::BigFloat->new("2"); is($x, "2", 'value of $x'); is(ref($x), "Math::BigInt", '$x is downgraded to a Math::BigInt'); }; subtest 'Math::BigFloat->new("0.2E2")' => sub { plan tests => 2; my $x = Math::BigFloat->new("20"); is($x, "20", 'value of $x'); is(ref($x), "Math::BigInt", '$x is downgraded to a Math::BigInt'); }; # $x is a downgraded to a Math::BigInt, but bpow() and bsqrt() upgrades to # Math::BigFloat. Math::BigFloat -> div_scale(20); # make it a bit faster my ($x, $y, $z); subtest '$x = Math::BigFloat -> new(2);' => sub { plan tests => 2; $x = Math::BigFloat -> new(2); # downgrades is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt'); cmp_ok($x, "==", 2, 'value of $x'); }; subtest '$y = Math::BigFloat -> bpow("2", "0.5");' => sub { plan tests => 2; $y = Math::BigFloat -> bpow("2", "0.5"); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "1.4142135623730950488", 'value of $y'); }; subtest '$z = $x -> bsqrt();' => sub { plan tests => 2; $z = $x -> bsqrt(); is(ref($z), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($z, "==", "1.4142135623730950488", 'value of $z'); }; # log_2(16) = 4 subtest '$x = Math::BigFloat -> new(16); $y = $x -> blog(2);' => sub { plan tests => 4; $x = Math::BigFloat -> new(16); is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt'); cmp_ok($x, "==", 16, 'value of $x'); $y = $x -> blog(2); is(ref($y), 'Math::BigInt', '$y is downgraded to a Math::BigInt'); cmp_ok($y, "==", 4, 'value of $y'); }; # log_16(2) = 1/4 subtest '$x = Math::BigFloat -> new(2); $y = $x -> blog(16);' => sub { plan tests => 4; $x = Math::BigFloat -> new(2); is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt'); cmp_ok($x, "==", 2, 'value of $x'); $y = $x -> blog(16); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 0.25, 'value of $y'); }; ################################################################################ # Verify that constructors downgrade when they should. note("Enable downgrading, and see if constructors downgrade"); note("testing new()"); $x = Math::BigFloat -> new("0.5"); subtest '$x = Math::BigFloat -> new("0.5")' => sub { plan tests => 2; cmp_ok($x, "==", 0.5, 'value of $x'); is(ref $x, "Math::BigFloat", "does not downgrade from Math::BigFloat"); }; $x = Math::BigFloat -> new("4"); subtest '$x = Math::BigFloat -> new("4")' => sub { plan tests => 2; cmp_ok($x, "==", 4, 'value of $x'); is(ref $x, "Math::BigInt", "downgrades to Math::BigInt"); }; $x = Math::BigFloat -> new("0"); subtest '$x = Math::BigFloat -> new("0")' => sub { plan tests => 2; cmp_ok($x, "==", 0, 'value of $x'); is(ref $x, "Math::BigInt", "downgrades to Math::BigInt"); }; $x = Math::BigFloat -> new("1"); subtest '$x = Math::BigFloat -> new("1")' => sub { plan tests => 2; cmp_ok($x, "==", 1, 'value of $x'); is(ref $x, "Math::BigInt", "downgrades to Math::BigInt"); }; $x = Math::BigFloat -> new("Inf"); subtest '$x = Math::BigFloat -> new("inf")' => sub { plan tests => 2; cmp_ok($x, "==", "Inf", 'value of $x'); is(ref $x, "Math::BigInt", "downgrades to Math::BigInt"); }; $x = Math::BigFloat -> new("NaN"); subtest '$x = Math::BigFloat -> new("NaN")' => sub { plan tests => 2; is($x, "NaN", ); is(ref $x, "Math::BigInt", "downgrades to Math::BigInt"); }; note("testing bzero()"); $x = Math::BigFloat -> bzero(); subtest '$x = Math::BigFloat -> bzero()' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing bone()"); $x = Math::BigFloat -> bone(); subtest '$x = Math::BigFloat -> bone()' => sub { plan tests => 2; cmp_ok($x, '==', 1, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing binf()"); $x = Math::BigFloat -> binf(); subtest '$x = Math::BigFloat -> binf()' => sub { plan tests => 2; cmp_ok($x, '==', 'Inf', 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing bnan()"); $x = Math::BigFloat -> bnan(); subtest '$x = Math::BigFloat -> bnan()' => sub { plan tests => 2; is($x, 'NaN', 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing from_dec()"); $x = Math::BigFloat -> from_dec('3.14e2'); subtest '$x = Math::BigFloat -> from_dec("3.14e2")' => sub { plan tests => 2; cmp_ok($x, '==', 314, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing from_hex()"); $x = Math::BigFloat -> from_hex('0x1.3ap+8'); subtest '$x = Math::BigFloat -> from_hex("3.14e2")' => sub { plan tests => 2; cmp_ok($x, '==', 314, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing from_oct()"); $x = Math::BigFloat -> from_oct('0o1.164p+8'); subtest '$x = Math::BigFloat -> from_oct("0o1.164p+8")' => sub { plan tests => 2; cmp_ok($x, '==', 314, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing from_bin()"); $x = Math::BigFloat -> from_bin('0b1.0011101p+8'); subtest '$x = Math::BigFloat -> from_bin("0b1.0011101p+8")' => sub { plan tests => 2; cmp_ok($x, '==', 314, 'value of $x'); is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt'); }; note("testing from_ieee754()"); $x = Math::BigFloat -> from_ieee754("\x43\x9d\x00\x00", "binary32"); subtest '$x = Math::BigFloat -> from_ieee754("\x43\x9d\x00\x00", "binary32")' => sub { plan tests => 2; cmp_ok($x, "==", 314, 'value of $x'); is(ref $x, "Math::BigInt", 'downgrades to Math::BigInt'); }; note("Disable downgrading, and see if constructors downgrade"); Math::BigFloat -> downgrade(undef); my $zero = Math::BigFloat -> bzero(); my $half = Math::BigFloat -> new("0.5"); my $one = Math::BigFloat -> bone(); my $four = Math::BigFloat -> new("4"); my $inf = Math::BigFloat -> binf(); my $nan = Math::BigFloat -> bnan(); is(ref $zero, "Math::BigFloat", "Creating a 0 does not downgrade"); is(ref $half, "Math::BigFloat", "Creating a 0.5 does not downgrade"); is(ref $one, "Math::BigFloat", "Creating a 1 does not downgrade"); is(ref $four, "Math::BigFloat", "Creating a 4 does not downgrade"); is(ref $inf, "Math::BigFloat", "Creating an Inf does not downgrade"); is(ref $nan, "Math::BigFloat", "Creating a NaN does not downgrade"); ################################################################################ # Verify that other methods downgrade when they should. Math::BigFloat -> downgrade("Math::BigInt"); note("testing bneg()"); $x = $zero -> copy() -> bneg(); subtest '$x = $zero -> copy() -> bneg();' => sub { plan tests => 2; cmp_ok($x, '==', 0, '-(0) = 0'); is(ref($x), 'Math::BigInt', '-(0) => Math::BigInt'); }; $x = $four -> copy() -> bneg(); subtest '$x = $four -> copy() -> bneg();' => sub { plan tests => 2; cmp_ok($x, '==', -4, '-(4) = -4'); is(ref($x), 'Math::BigInt', '-(4) => Math::BigInt'); }; $x = $inf -> copy() -> bneg(); subtest '$x = $inf -> copy() -> bneg();' => sub { plan tests => 2; cmp_ok($x, '==', '-inf', '-(Inf) = -Inf'); is(ref($x), 'Math::BigInt', '-(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bneg(); subtest '$x = $nan -> copy() -> bneg();' => sub { plan tests => 2; is($x, 'NaN', '-(NaN) = NaN'); is(ref($x), 'Math::BigInt', '-(NaN) => Math::BigInt'); }; note("testing bnorm()"); $x = $zero -> copy() -> bnorm(); subtest '$x = $zero -> copy() -> bnorm();' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'value of $x'); is(ref($x), 'Math::BigInt', 'bnorm(0) => Math::BigInt'); }; $x = $four -> copy() -> bnorm(); subtest '$x = $four -> copy() -> bnorm();' => sub { plan tests => 2; cmp_ok($x, '==', 4, 'value of $x'); is(ref($x), 'Math::BigInt', 'bnorm(4) => Math::BigInt'); }; $x = $inf -> copy() -> bnorm(); subtest '$x = $inf -> copy() -> bnorm();' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'value of $x'); is(ref($x), 'Math::BigInt', 'bnorm(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bnorm(); subtest '$x = $nan -> copy() -> bnorm();' => sub { plan tests => 2; is($x, 'NaN', 'bnorm(NaN)'); is(ref($x), 'Math::BigInt', 'bnorm(NaN) => Math::BigInt'); }; note("testing binc()"); $x = $zero -> copy() -> binc(); subtest '$x = $zero -> copy() -> binc();' => sub { plan tests => 2; cmp_ok($x, '==', 1, 'binc(0)'); is(ref($x), 'Math::BigInt', 'binc(0) => Math::BigInt'); }; $x = $four -> copy() -> binc(); subtest '$x = $four -> copy() -> binc();' => sub { plan tests => 2; cmp_ok($x, '==', 5, 'binc(4)'); is(ref($x), 'Math::BigInt', 'binc(4) => Math::BigInt'); }; $x = $inf -> copy() -> binc(); subtest '$x = $inf -> copy() -> binc();' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'binc(Inf)'); is(ref($x), 'Math::BigInt', 'binc(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> binc(); subtest '$x = $nan -> copy() -> binc();' => sub { plan tests => 2; is($x, 'NaN', 'binc(NaN)'); is(ref($x), 'Math::BigInt', 'binc(NaN) => Math::BigInt'); }; note("testing bdec()"); $x = $zero -> copy() -> bdec(); subtest '$x = $zero -> copy() -> bdec();' => sub { plan tests => 2; cmp_ok($x, '==', -1, 'bdec(0)'); is(ref($x), 'Math::BigInt', 'bdec(0) => Math::BigInt'); }; $x = $four -> copy() -> bdec(); subtest '$x = $four -> copy() -> bdec();' => sub { plan tests => 2; cmp_ok($x, '==', 3, 'bdec(4)'); is(ref($x), 'Math::BigInt', 'bdec(4) => Math::BigInt'); }; $x = $inf -> copy() -> bdec(); subtest '$x = $inf -> copy() -> bdec();' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bdec(Inf)'); is(ref($x), 'Math::BigInt', 'bdec(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bdec(); subtest '$x = $nan -> copy() -> bdec();' => sub { plan tests => 2; is($x, 'NaN', 'bdec(NaN)'); is(ref($x), 'Math::BigInt', 'bdec(NaN) => Math::BigInt'); }; note("testing badd()"); $x = $half -> copy() -> badd($nan); subtest '$x = $half -> copy() -> badd($nan);' => sub { plan tests => 2; is($x, 'NaN', '0.5 + NaN = NaN'); is(ref($x), 'Math::BigInt', '0.5 + NaN => Math::BigInt'); }; $x = $half -> copy() -> badd($inf); subtest '$x = $half -> copy() -> badd($inf);' => sub { plan tests => 2; cmp_ok($x, '==', '+Inf', '0.5 + Inf = Inf'); is(ref($x), 'Math::BigInt', '2.5 + Inf => Math::BigInt'); }; $x = $half -> copy() -> badd($half); subtest '$x = $half -> copy() -> badd($half);' => sub { plan tests => 2; cmp_ok($x, '==', 1, '0.5 + 0.5 = 1'); is(ref($x), 'Math::BigInt', '0.5 + 0.5 => Math::BigInt'); }; $x = $half -> copy() -> badd($half -> copy() -> bneg()); subtest '$x = $half -> copy() -> badd($half -> copy() -> bneg());' => sub { plan tests => 2; cmp_ok($x, '==', 0, '0.5 + -0.5 = 0'); is(ref($x), 'Math::BigInt', '0.5 + -0.5 => Math::BigInt'); }; $x = $four -> copy() -> badd($zero); subtest '$x = $four -> copy() -> badd($zero);' => sub { plan tests => 2; cmp_ok($x, '==', 4, '4 + 0 = 4'); is(ref($x), 'Math::BigInt', '4 + 0 => Math::BigInt'); }; $x = $zero -> copy() -> badd($four); subtest '$x = $zero -> copy() -> badd($four);' => sub { plan tests => 2; cmp_ok($x, '==', 4, '0 + 4 = 4'); is(ref($x), 'Math::BigInt', '0 + 4 => Math::BigInt'); }; $x = $inf -> copy() -> badd($four); subtest '$x = $inf -> copy() -> badd($four);' => sub { plan tests => 2; cmp_ok($x, '==', '+Inf', 'Inf + 4 = Inf'); is(ref($x), 'Math::BigInt', 'Inf + 4 => Math::BigInt'); }; $x = $nan -> copy() -> badd($four); subtest '$x = $nan -> copy() -> badd($four);' => sub { plan tests => 2; is($x, 'NaN', 'NaN + 4 = NaN'); is(ref($x), 'Math::BigInt', 'NaN + 4 => Math::BigInt'); }; note("testing bsub()"); $x = $half -> copy() -> bsub($nan); subtest '$x = $half -> copy() -> bsub($nan);' => sub { plan tests => 2; is($x, 'NaN', '0.5 - NaN = NaN'); is(ref($x), 'Math::BigInt', '0.5 - NaN => Math::BigInt'); }; $x = $half -> copy() -> bsub($inf); subtest '$x = $half -> copy() -> bsub($inf);' => sub { plan tests => 2; cmp_ok($x, '==', '-Inf', '2.5 - Inf = -Inf'); is(ref($x), 'Math::BigInt', '2.5 - Inf => Math::BigInt'); }; $x = $half -> copy() -> bsub($half); subtest '$x = $half -> copy() -> bsub($half);' => sub { plan tests => 2; cmp_ok($x, '==', 0, '0.5 + 0.5 = 0'); is(ref($x), 'Math::BigInt', '0.5 - 0.5 => Math::BigInt'); }; $x = $half -> copy() -> bsub($half -> copy() -> bneg()); subtest '$x = $half -> copy() -> bsub($half -> copy() -> bneg());' => sub { plan tests => 2; cmp_ok($x, '==', 1, '0.5 - -0.5 = 1'); is(ref($x), 'Math::BigInt', '0.5 - -0.5 => Math::BigInt'); }; $x = $four -> copy() -> bsub($zero); subtest '$x = $four -> copy() -> bsub($zero);' => sub { plan tests => 2; cmp_ok($x, '==', 4, '4 - 0 = 4'); is(ref($x), 'Math::BigInt', '4 - 0 => Math::BigInt'); }; $x = $zero -> copy() -> bsub($four); subtest '$x = $zero -> copy() -> bsub($four);' => sub { plan tests => 2; cmp_ok($x, '==', -4, '0 - 4 = -4'); is(ref($x), 'Math::BigInt', '0 - 4 => Math::BigInt'); }; $x = $inf -> copy() -> bsub($four); subtest '$x = $inf -> copy() -> bsub($four);' => sub { plan tests => 2; cmp_ok($x, '==', 'Inf', 'Inf - 4 = Inf'); is(ref($x), 'Math::BigInt', 'Inf - 4 => Math::BigInt'); }; $x = $nan -> copy() -> bsub($four); subtest '$x = $nan -> copy() -> bsub($four);' => sub { plan tests => 2; is($x, 'NaN', 'NaN - 4 = NaN'); is(ref($x), 'Math::BigInt', 'NaN - 4 => Math::BigInt'); }; note("testing bmul()"); $x = $zero -> copy() -> bmul($four); subtest '$x = $zero -> copy() -> bmul($four);' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bmul(0, 4) = 0'); is(ref($x), 'Math::BigInt', 'bmul(0, 4) => Math::BigInt'); }; $x = $four -> copy() -> bmul($four); subtest '$x = $four -> copy() -> bmul($four);' => sub { plan tests => 2; cmp_ok($x, '==', 16, 'bmul(4, 4) = 16'); is(ref($x), 'Math::BigInt', 'bmul(4, 4) => Math::BigInt'); }; $x = $inf -> copy() -> bmul($four); subtest '$x = $inf -> copy() -> bmul($four);' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bmul(Inf, 4) = Inf'); is(ref($x), 'Math::BigInt', 'bmul(Inf, 4) => Math::BigInt'); }; $x = $nan -> copy() -> bmul($four); subtest '$x = $nan -> copy() -> bmul($four);' => sub { plan tests => 2; is($x, 'NaN', 'bmul(NaN, 4) = NaN'); is(ref($x), 'Math::BigInt', 'bmul(NaN, 4) => Math::BigInt'); }; $x = $four -> copy() -> bmul("0.5"); subtest '$four -> copy() -> bmul("0.5");' => sub { plan tests => 2; cmp_ok($x, '==', 2, 'bmul(4, 0.5) = 2'); is(ref($x), 'Math::BigInt', 'bmul(4, 0.5) => Math::BigInt'); }; note("testing bmuladd()"); $x = $zero -> copy() -> bmuladd($four, $four); subtest '$x = $zero -> copy() -> bmuladd($four, $four);' => sub { plan tests => 2; cmp_ok($x, '==', 4, 'bmuladd(0, 4, 4) = 4'); is(ref($x), 'Math::BigInt', 'bmuladd(0, 4, 4) => Math::BigInt'); }; $x = $four -> copy() -> bmuladd($four, $four); subtest '$x = $four -> copy() -> bmuladd($four, $four);' => sub { plan tests => 2; cmp_ok($x, '==', 20, 'bmuladd(4, 4, 4) = 20'); is(ref($x), 'Math::BigInt', 'bmuladd(4, 4, 4) => Math::BigInt'); }; $x = $four -> copy() -> bmuladd($four, $inf); subtest '$x = $four -> copy() -> bmuladd($four, $inf);' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bmuladd(4, 4, Inf) = Inf'); is(ref($x), 'Math::BigInt', 'bmuladd(4, 4, Inf) => Math::BigInt'); }; $x = $inf -> copy() -> bmuladd($four, $four); subtest '$x = $inf -> copy() -> bmuladd($four, $four);' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bmuladd(Inf, 4, 4) = Inf'); is(ref($x), 'Math::BigInt', 'bmuladd(Inf, 4, 4) => Math::BigInt'); }; $x = $inf -> copy() -> bmuladd($four, $four); subtest '$x = $inf -> copy() -> bmuladd($four, $four);' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bmuladd(Inf, 4, 4) = Inf'); is(ref($x), 'Math::BigInt', 'bmuladd(Inf, 4, 4) => Math::BigInt'); }; $x = $nan -> copy() -> bmuladd($four, $four); subtest '$x = $nan -> copy() -> bmuladd($four, $four);' => sub { plan tests => 2; is($x, 'NaN', 'bmuladd(NaN, 4, 4) = NaN'); is(ref($x), 'Math::BigInt', 'bmuladd(NaN, 4, 4) => Math::BigInt'); }; $x = $four -> copy() -> bmuladd("0.5", $four); subtest '$x = $four -> copy() -> bmuladd("0.5", $four);' => sub { plan tests => 2; cmp_ok($x, '==', 6, 'bmuladd(4, 0.5, 4) = 6'); is(ref($x), 'Math::BigInt', 'bmuladd(4, 0.5, 4) => Math::BigInt'); }; note("testing bdiv()"); $x = $zero -> copy() -> bdiv($one); subtest '$x = $zero -> copy() -> bdiv($one);' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bdiv(0, 1) = 0'); is(ref($x), 'Math::BigInt', 'bdiv(0, 1) => Math::BigInt'); }; note("testing bmod()"); note("testing bmodpow()"); note("testing bpow()"); note("testing blog()"); note("testing bexp()"); note("testing bnok()"); note("testing bsin()"); note("testing bcos()"); note("testing batan()"); note("testing batan()"); note("testing bsqrt()"); note("testing broot()"); note("testing bfac()"); note("testing bdfac()"); note("testing btfac()"); note("testing bmfac()"); note("testing blsft()"); note("testing brsft()"); note("testing band()"); note("testing bior()"); note("testing bxor()"); note("testing bnot()"); note("testing bround()"); note("testing Add tests for rounding a non-integer to an integer. Fixme!"); $x = $zero -> copy() -> bround(); subtest '$x = $zero -> copy() -> bround();' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bround(0)'); is(ref($x), 'Math::BigInt', 'bround(0) => Math::BigInt'); }; $x = $four -> copy() -> bround(); subtest '$x = $four -> copy() -> bround();' => sub { plan tests => 2; cmp_ok($x, '==', 4, 'bround(4)'); is(ref($x), 'Math::BigInt', 'bround(4) => Math::BigInt'); }; $x = $inf -> copy() -> bround(); subtest '$x = $inf -> copy() -> bround();' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bround(Inf)'); is(ref($x), 'Math::BigInt', 'bround(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bround(); subtest '$x = $nan -> copy() -> bround();' => sub { plan tests => 2; is($x, 'NaN', 'bround(NaN)'); is(ref($x), 'Math::BigInt', 'bround(NaN) => Math::BigInt'); }; note("testing bfround()"); note("testing Add tests for rounding a non-integer to an integer. Fixme!"); $x = $zero -> copy() -> bfround(); subtest '$x = $zero -> copy() -> bfround();' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bfround(0)'); is(ref($x), 'Math::BigInt', 'bfround(0) => Math::BigInt'); }; $x = $four -> copy() -> bfround(); subtest '$x = $four -> copy() -> bfround();' => sub { plan tests => 2; cmp_ok($x, '==', 4, 'bfround(4)'); is(ref($x), 'Math::BigInt', 'bfround(4) => Math::BigInt'); }; $x = $inf -> copy() -> bfround(); subtest '$x = $inf -> copy() -> bfround();' => sub { plan tests => 2; cmp_ok($x, '==', 'inf', 'bfround(Inf)'); is(ref($x), 'Math::BigInt', 'bfround(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bfround(); subtest '$x = $nan -> copy() -> bfround();' => sub { plan tests => 2; is($x, 'NaN', 'bfround(NaN)'); is(ref($x), 'Math::BigInt', 'bfround(NaN) => Math::BigInt'); }; note("testing bfloor()"); $x = $half -> copy() -> bfloor(); subtest '$x = $half -> copy() -> bfloor();' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bfloor(0)'); is(ref($x), 'Math::BigInt', 'bfloor(0) => Math::BigInt'); }; $x = $inf -> copy() -> bfloor(); subtest '$x = $inf -> copy() -> bfloor();' => sub { plan tests => 2; cmp_ok($x, '==', 'Inf', 'bfloor(Inf)'); is(ref($x), 'Math::BigInt', 'bfloor(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bfloor(); subtest '$x = $nan -> copy() -> bfloor();' => sub { plan tests => 2; is($x, 'NaN', 'bfloor(NaN)'); is(ref($x), 'Math::BigInt', 'bfloor(NaN) => Math::BigInt'); }; note("testing bceil()"); $x = $half -> copy() -> bceil(); subtest '$x = $half -> copy() -> bceil();' => sub { plan tests => 2; cmp_ok($x, '==', 1, 'bceil(0)'); is(ref($x), 'Math::BigInt', 'bceil(0) => Math::BigInt'); }; $x = $inf -> copy() -> bceil(); subtest '$x = $inf -> copy() -> bceil();' => sub { plan tests => 2; cmp_ok($x, '==', 'Inf', 'bceil(Inf)'); is(ref($x), 'Math::BigInt', 'bceil(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bceil(); subtest '$x = $nan -> copy() -> bceil();' => sub { plan tests => 2; is($x, 'NaN', 'bceil(NaN)'); is(ref($x), 'Math::BigInt', 'bceil(NaN) => Math::BigInt'); }; note("testing bint()"); $x = $half -> copy() -> bint(); subtest '$x = $half -> copy() -> bint();' => sub { plan tests => 2; cmp_ok($x, '==', 0, 'bint(0)'); is(ref($x), 'Math::BigInt', 'bint(0) => Math::BigInt'); }; $x = $inf -> copy() -> bint(); subtest '$x = $inf -> copy() -> bint();' => sub { plan tests => 2; cmp_ok($x, '==', 'Inf', 'bint(Inf)'); is(ref($x), 'Math::BigInt', 'bint(Inf) => Math::BigInt'); }; $x = $nan -> copy() -> bint(); subtest '$x = $nan -> copy() -> bint();' => sub { plan tests => 2; is($x, 'NaN', 'bint(NaN)'); is(ref($x), 'Math::BigInt', 'bint(NaN) => Math::BigInt'); }; note("testing bgcd()"); note("testing blcm()"); note("testing mantissa()"); note("testing exponent()"); note("testing parts()"); note("testing sparts()"); note("testing nparts()"); note("testing eparts()"); note("testing dparts()"); note("testing fparts()"); note("testing numerator()"); note("testing denominator()"); Math-BigInt-2.005003/t/downgrade-mbi-mbr.t0000644403072340010010000002577614546553333017715 0ustar OSPJADomain Users# -*- mode: perl; -*- # Note that this does not test Math::BigRat upgrading. use strict; use warnings; use Test::More tests => 141; use Math::BigInt upgrade => 'Math::BigRat'; use Math::BigRat downgrade => 'Math::BigInt'; is(Math::BigRat->downgrade(), 'Math::BigInt', 'Math::BigRat->downgrade()'); is(Math::BigInt->upgrade(), 'Math::BigRat', 'Math::BigInt->upgrade()'); ################################################################################ # Verify that constructors downgrade when they should. note("Enable downgrading, and see if constructors downgrade"); my $x; # new() $x = Math::BigRat -> new("0.5"); cmp_ok($x, "==", 0.5); is(ref $x, "Math::BigRat", "Creating a 0.5 does not downgrade"); $x = Math::BigRat -> new("4"); cmp_ok($x, "==", 4, 'new("4")'); is(ref $x, "Math::BigInt", "Creating a 4 downgrades to Math::BigInt"); $x = Math::BigRat -> new("0"); cmp_ok($x, "==", 0, 'new("0")'); is(ref $x, "Math::BigInt", "Creating a 0 downgrades to Math::BigInt"); $x = Math::BigRat -> new("1"); cmp_ok($x, "==", 1, 'new("1")'); is(ref $x, "Math::BigInt", "Creating a 1 downgrades to Math::BigInt"); $x = Math::BigRat -> new("Inf"); cmp_ok($x, "==", "Inf", 'new("inf")'); is(ref $x, "Math::BigInt", "Creating an Inf downgrades to Math::BigInt"); $x = Math::BigRat -> new("NaN"); is($x, "NaN", 'new("NaN")'); is(ref $x, "Math::BigInt", "Creating a NaN downgrades to Math::BigInt"); # bzero() $x = Math::BigRat -> bzero(); cmp_ok($x, "==", 0, "bzero()"); is(ref $x, "Math::BigInt", "Creating a 0 downgrades to Math::BigInt"); # bone() $x = Math::BigRat -> bone(); cmp_ok($x, "==", 1, "bone()"); is(ref $x, "Math::BigInt", "Creating a 1 downgrades to Math::BigInt"); # binf() $x = Math::BigRat -> binf(); cmp_ok($x, "==", "Inf", "binf()"); is(ref $x, "Math::BigInt", "Creating an Inf downgrades to Math::BigInt"); # bnan() $x = Math::BigRat -> bnan(); is($x, "NaN", "bnan()"); is(ref $x, "Math::BigInt", "Creating a NaN downgrades to Math::BigInt"); # from_hex() $x = Math::BigRat -> from_hex("13a"); cmp_ok($x, "==", 314, 'from_hex("13a")'); is(ref $x, "Math::BigInt", 'from_hex("13a") downgrades to Math::BigInt'); # from_oct() $x = Math::BigRat -> from_oct("472"); cmp_ok($x, "==", 314, 'from_oct("472")'); is(ref $x, "Math::BigInt", 'from_oct("472") downgrades to Math::BigInt'); # from_bin() $x = Math::BigRat -> from_bin("100111010"); cmp_ok($x, "==", 314, 'from_bin("100111010")'); is(ref $x, "Math::BigInt", 'from_bin("100111010") downgrades to Math::BigInt'); note("Disable downgrading, and see if constructors downgrade"); Math::BigRat -> downgrade(undef); my $half = Math::BigRat -> new("1/2"); my $four = Math::BigRat -> new("4"); my $zero = Math::BigRat -> bzero(); my $inf = Math::BigRat -> binf(); my $nan = Math::BigRat -> bnan(); is(ref $half, "Math::BigRat", "Creating a 0.5 does not downgrade"); is(ref $four, "Math::BigRat", "Creating a 4 does not downgrade"); is(ref $zero, "Math::BigRat", "Creating a 0 does not downgrade"); is(ref $inf, "Math::BigRat", "Creating an Inf does not downgrade"); is(ref $nan, "Math::BigRat", "Creating a NaN does not downgrade"); ################################################################################ # Verify that other methods downgrade when they should. Math::BigRat -> downgrade("Math::BigInt"); note("bneg()"); $x = $zero -> copy() -> bneg(); cmp_ok($x, "==", 0, "-(0) = 0"); is(ref($x), "Math::BigInt", "-(0) => Math::BigInt"); $x = $four -> copy() -> bneg(); cmp_ok($x, "==", -4, "-(4) = -4"); is(ref($x), "Math::BigInt", "-(4) => Math::BigInt"); $x = $inf -> copy() -> bneg(); cmp_ok($x, "==", "-inf", "-(Inf) = -Inf"); is(ref($x), "Math::BigInt", "-(Inf) => Math::BigInt"); $x = $nan -> copy() -> bneg(); is($x, "NaN", "-(NaN) = NaN"); is(ref($x), "Math::BigInt", "-(NaN) => Math::BigInt"); note("bnorm()"); $x = $zero -> copy() -> bnorm(); cmp_ok($x, "==", 0, "bnorm(0)"); is(ref($x), "Math::BigInt", "bnorm(0) => Math::BigInt"); $x = $four -> copy() -> bnorm(); cmp_ok($x, "==", 4, "bnorm(4)"); is(ref($x), "Math::BigInt", "bnorm(4) => Math::BigInt"); $x = $inf -> copy() -> bnorm(); cmp_ok($x, "==", "inf", "bnorm(Inf)"); is(ref($x), "Math::BigInt", "bnorm(Inf) => Math::BigInt"); $x = $nan -> copy() -> bnorm(); is($x, "NaN", "bnorm(NaN)"); is(ref($x), "Math::BigInt", "bnorm(NaN) => Math::BigInt"); note("binc()"); $x = $zero -> copy() -> binc(); cmp_ok($x, "==", 1, "binc(0)"); is(ref($x), "Math::BigInt", "binc(0) => Math::BigInt"); $x = $four -> copy() -> binc(); cmp_ok($x, "==", 5, "binc(4)"); is(ref($x), "Math::BigInt", "binc(4) => Math::BigInt"); $x = $inf -> copy() -> binc(); cmp_ok($x, "==", "inf", "binc(Inf)"); is(ref($x), "Math::BigInt", "binc(Inf) => Math::BigInt"); $x = $nan -> copy() -> binc(); is($x, "NaN", "binc(NaN)"); is(ref($x), "Math::BigInt", "binc(NaN) => Math::BigInt"); note("bdec()"); $x = $zero -> copy() -> bdec(); cmp_ok($x, "==", -1, "bdec(0)"); is(ref($x), "Math::BigInt", "bdec(0) => Math::BigInt"); $x = $four -> copy() -> bdec(); cmp_ok($x, "==", 3, "bdec(4)"); is(ref($x), "Math::BigInt", "bdec(4) => Math::BigInt"); $x = $inf -> copy() -> bdec(); cmp_ok($x, "==", "inf", "bdec(Inf)"); is(ref($x), "Math::BigInt", "bdec(Inf) => Math::BigInt"); $x = $nan -> copy() -> bdec(); is($x, "NaN", "bdec(NaN)"); is(ref($x), "Math::BigInt", "bdec(NaN) => Math::BigInt"); note("badd()"); $x = $half -> copy() -> badd($nan); is($x, "NaN", "0.5 + NaN = NaN"); is(ref($x), "Math::BigInt", "0.5 + NaN => Math::BigInt"); $x = $half -> copy() -> badd($inf); cmp_ok($x, "==", "+Inf", "0.5 + Inf = Inf"); is(ref($x), "Math::BigInt", "2.5 + Inf => Math::BigInt"); $x = $half -> copy() -> badd($half); cmp_ok($x, "==", 1, "0.5 + 0.5 = 1"); is(ref($x), "Math::BigInt", "0.5 + 0.5 => Math::BigInt"); $x = $half -> copy() -> badd($half -> copy() -> bneg()); cmp_ok($x, "==", 0, "0.5 + -0.5 = 0"); is(ref($x), "Math::BigInt", "0.5 + -0.5 => Math::BigInt"); $x = $four -> copy() -> badd($zero); cmp_ok($x, "==", 4, "4 + 0 = 4"); is(ref($x), "Math::BigInt", "4 + 0 => Math::BigInt"); $x = $zero -> copy() -> badd($four); cmp_ok($x, "==", 4, "0 + 4 = 4"); is(ref($x), "Math::BigInt", "0 + 4 => Math::BigInt"); $x = $inf -> copy() -> badd($four); cmp_ok($x, "==", "+Inf", "Inf + 4 = Inf"); is(ref($x), "Math::BigInt", "Inf + 4 => Math::BigInt"); $x = $nan -> copy() -> badd($four); is($x, "NaN", "NaN + 4 = NaN"); is(ref($x), "Math::BigInt", "NaN + 4 => Math::BigInt"); note("bsub()"); $x = $half -> copy() -> bsub($nan); is($x, "NaN", "0.5 - NaN = NaN"); is(ref($x), "Math::BigInt", "0.5 - NaN => Math::BigInt"); $x = $half -> copy() -> bsub($inf); cmp_ok($x, "==", "-Inf", "2.5 - Inf = -Inf"); is(ref($x), "Math::BigInt", "2.5 - Inf => Math::BigInt"); $x = $half -> copy() -> bsub($half); cmp_ok($x, "==", 0, "0.5 - 0.5 = 0"); is(ref($x), "Math::BigInt", "0.5 - 0.5 => Math::BigInt"); $x = $half -> copy() -> bsub($half -> copy() -> bneg()); cmp_ok($x, "==", 1, "0.5 - -0.5 = 1"); is(ref($x), "Math::BigInt", "0.5 - -0.5 => Math::BigInt"); $x = $four -> copy() -> bsub($zero); cmp_ok($x, "==", 4, "4 - 0 = 4"); is(ref($x), "Math::BigInt", "4 - 0 => Math::BigInt"); $x = $zero -> copy() -> bsub($four); cmp_ok($x, "==", -4, "0 - 4 = -4"); is(ref($x), "Math::BigInt", "0 - 4 => Math::BigInt"); $x = $inf -> copy() -> bsub($four); cmp_ok($x, "==", "Inf", "Inf - 4 = Inf"); is(ref($x), "Math::BigInt", "Inf - 4 => Math::BigInt"); $x = $nan -> copy() -> bsub($four); is($x, "NaN", "NaN - 4 = NaN"); is(ref($x), "Math::BigInt", "NaN - 4 => Math::BigInt"); note("bmul()"); $x = $zero -> copy() -> bmul($four); cmp_ok($x, "==", 0, "bmul(0, 4) = 0"); is(ref($x), "Math::BigInt", "bmul(0, 4) => Math::BigInt"); $x = $four -> copy() -> bmul($four); cmp_ok($x, "==", 16, "bmul(4, 4) = 16"); is(ref($x), "Math::BigInt", "bmul(4, 4) => Math::BigInt"); $x = $inf -> copy() -> bmul($four); cmp_ok($x, "==", "inf", "bmul(Inf, 4) = Inf"); is(ref($x), "Math::BigInt", "bmul(Inf, 4) => Math::BigInt"); $x = $nan -> copy() -> bmul($four); is($x, "NaN", "bmul(NaN, 4) = NaN"); is(ref($x), "Math::BigInt", "bmul(NaN, 4) => Math::BigInt"); $x = $four -> copy() -> bmul("0.5"); cmp_ok($x, "==", 2, "bmul(4, 0.5) = 2"); is(ref($x), "Math::BigInt", "bmul(4, 0.5) => Math::BigInt"); # bmuladd() note("bdiv()"); note("bmod()"); note("bmodpow()"); note("bpow()"); note("blog()"); note("bexp()"); note("bnok()"); note("bsin()"); note("bcos()"); note("batan()"); note("batan()"); note("bsqrt()"); note("broot()"); note("bfac()"); note("bdfac()"); note("btfac()"); note("bmfac()"); note("blsft()"); note("brsft()"); note("band()"); note("bior()"); note("bxor()"); note("bnot()"); note("bround()"); # Add tests for rounding a non-integer to an integer. Fixme! $x = $zero -> copy() -> bround(); cmp_ok($x, "==", 0, "bround(0)"); is(ref($x), "Math::BigInt", "bround(0) => Math::BigInt"); $x = $four -> copy() -> bround(); cmp_ok($x, "==", 4, "bround(4)"); is(ref($x), "Math::BigInt", "bround(4) => Math::BigInt"); $x = $inf -> copy() -> bround(); cmp_ok($x, "==", "inf", "bround(Inf)"); is(ref($x), "Math::BigInt", "bround(Inf) => Math::BigInt"); $x = $nan -> copy() -> bround(); is($x, "NaN", "bround(NaN)"); is(ref($x), "Math::BigInt", "bround(NaN) => Math::BigInt"); note("bfround()"); # Add tests for rounding a non-integer to an integer. Fixme! $x = $zero -> copy() -> bfround(); cmp_ok($x, "==", 0, "bfround(0)"); is(ref($x), "Math::BigInt", "bfround(0) => Math::BigInt"); $x = $four -> copy() -> bfround(); cmp_ok($x, "==", 4, "bfround(4)"); is(ref($x), "Math::BigInt", "bfround(4) => Math::BigInt"); $x = $inf -> copy() -> bfround(); cmp_ok($x, "==", "inf", "bfround(Inf)"); is(ref($x), "Math::BigInt", "bfround(Inf) => Math::BigInt"); $x = $nan -> copy() -> bfround(); is($x, "NaN", "bfround(NaN)"); is(ref($x), "Math::BigInt", "bfround(NaN) => Math::BigInt"); note("bfloor()"); $x = $half -> copy() -> bfloor(); cmp_ok($x, "==", 0, "bfloor(0)"); is(ref($x), "Math::BigInt", "bfloor(0) => Math::BigInt"); $x = $inf -> copy() -> bfloor(); cmp_ok($x, "==", "Inf", "bfloor(Inf)"); is(ref($x), "Math::BigInt", "bfloor(Inf) => Math::BigInt"); $x = $nan -> copy() -> bfloor(); is($x, "NaN", "bfloor(NaN)"); is(ref($x), "Math::BigInt", "bfloor(NaN) => Math::BigInt"); note("bceil()"); $x = $half -> copy() -> bceil(); cmp_ok($x, "==", 1, "bceil(0)"); is(ref($x), "Math::BigInt", "bceil(0) => Math::BigInt"); $x = $inf -> copy() -> bceil(); cmp_ok($x, "==", "Inf", "bceil(Inf)"); is(ref($x), "Math::BigInt", "bceil(Inf) => Math::BigInt"); $x = $nan -> copy() -> bceil(); is($x, "NaN", "bceil(NaN)"); is(ref($x), "Math::BigInt", "bceil(NaN) => Math::BigInt"); note("bint()"); $x = $half -> copy() -> bint(); cmp_ok($x, "==", 0, "bint(0)"); is(ref($x), "Math::BigInt", "bint(0) => Math::BigInt"); $x = $inf -> copy() -> bint(); cmp_ok($x, "==", "Inf", "bint(Inf)"); is(ref($x), "Math::BigInt", "bint(Inf) => Math::BigInt"); $x = $nan -> copy() -> bint(); is($x, "NaN", "bint(NaN)"); is(ref($x), "Math::BigInt", "bint(NaN) => Math::BigInt"); note("bgcd()"); note("blcm()"); # mantissa() ? # exponent() ? # parts() ? # sparts() # nparts() # eparts() # dparts() # fparts() # numerator() # denominator() #require 'upgrade.inc'; # all tests here for sharing Math-BigInt-2.005003/t/hang-mbr.t0000644403072340010010000000061514546553333016074 0ustar OSPJADomain Users# -*- mode: perl; -*- # test for bug #34584: hang in exp(1/2) use strict; use warnings; use Test::More tests => 1; use Math::BigRat; my $result = Math::BigRat->new('1/2')->bexp(); is("$result", "824360635350064073424325393907081785827/500000000000000000000000000000000000000", "exp(1/2) worked"); ############################################################################## # done 1; Math-BigInt-2.005003/t/inf_nan.t0000644403072340010010000002311514537274604016012 0ustar OSPJADomain Users# -*- mode: perl; -*- # test inf/NaN handling all in one place use strict; use warnings; use lib 't'; use Test::More tests => 1044; use Math::BigInt; use Math::BigFloat; use Math::BigInt::Subclass; use Math::BigFloat::Subclass; my @biclasses = qw/ Math::BigInt Math::BigInt::Subclass /; my @bfclasses = qw/ Math::BigFloat Math::BigFloat::Subclass /; my (@args, $x, $y, $z, $test); # + foreach (qw/ -inf:-inf:-inf -1:-inf:-inf -0:-inf:-inf 0:-inf:-inf 1:-inf:-inf inf:-inf:NaN NaN:-inf:NaN -inf:-1:-inf -1:-1:-2 -0:-1:-1 0:-1:-1 1:-1:0 inf:-1:inf NaN:-1:NaN -inf:0:-inf -1:0:-1 -0:0:0 0:0:0 1:0:1 inf:0:inf NaN:0:NaN -inf:1:-inf -1:1:0 -0:1:1 0:1:1 1:1:2 inf:1:inf NaN:1:NaN -inf:inf:NaN -1:inf:inf -0:inf:inf 0:inf:inf 1:inf:inf inf:inf:inf NaN:inf:NaN -inf:NaN:NaN -1:NaN:NaN -0:NaN:NaN 0:NaN:NaN 1:NaN:NaN inf:NaN:NaN NaN:NaN:NaN /) { @args = split /:/, $_; for my $class (@biclasses, @bfclasses) { $args[2] = '0' if $args[2] eq '-0'; # Math::Big* has no -0 $x = $class->new($args[0]); $y = $class->new($args[1]); $z = $x->badd($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$z = \$x->badd(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($z), $class, "\$z is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($z->bstr(), $args[2], 'value of $z'); }; } } # - foreach (qw/ -inf:-inf:NaN -1:-inf:inf -0:-inf:inf 0:-inf:inf 1:-inf:inf inf:-inf:inf NaN:-inf:NaN -inf:-1:-inf -1:-1:0 -0:-1:1 0:-1:1 1:-1:2 inf:-1:inf NaN:-1:NaN -inf:0:-inf -1:0:-1 -0:0:-0 0:0:0 1:0:1 inf:0:inf NaN:0:NaN -inf:1:-inf -1:1:-2 -0:1:-1 0:1:-1 1:1:0 inf:1:inf NaN:1:NaN -inf:inf:-inf -1:inf:-inf -0:inf:-inf 0:inf:-inf 1:inf:-inf inf:inf:NaN NaN:inf:NaN -inf:NaN:NaN -1:NaN:NaN -0:NaN:NaN 0:NaN:NaN 1:NaN:NaN inf:NaN:NaN NaN:NaN:NaN /) { @args = split /:/, $_; for my $class (@biclasses, @bfclasses) { $args[2] = '0' if $args[2] eq '-0'; # Math::Big* has no -0 $x = $class->new($args[0]); $y = $class->new($args[1]); $z = $x->bsub($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$z = \$x->bsub(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($z), $class, "\$z is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($z->bstr(), $args[2], 'value of $z'); }; } } # * foreach (qw/ -inf:-inf:inf -1:-inf:inf -0:-inf:NaN 0:-inf:NaN 1:-inf:-inf inf:-inf:-inf NaN:-inf:NaN -inf:-1:inf -1:-1:1 -0:-1:0 0:-1:-0 1:-1:-1 inf:-1:-inf NaN:-1:NaN -inf:0:NaN -1:0:-0 -0:0:-0 0:0:0 1:0:0 inf:0:NaN NaN:0:NaN -inf:1:-inf -1:1:-1 -0:1:-0 0:1:0 1:1:1 inf:1:inf NaN:1:NaN -inf:inf:-inf -1:inf:-inf -0:inf:NaN 0:inf:NaN 1:inf:inf inf:inf:inf NaN:inf:NaN -inf:NaN:NaN -1:NaN:NaN -0:NaN:NaN 0:NaN:NaN 1:NaN:NaN inf:NaN:NaN NaN:NaN:NaN /) { @args = split /:/, $_; for my $class (@biclasses, @bfclasses) { $args[2] = '0' if $args[2] eq '-0'; # Math::Big* has no -0 $x = $class->new($args[0]); $y = $class->new($args[1]); $z = $x->bmul($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$z = \$x->bmul(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($z), $class, "\$z is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($z->bstr(), $args[2], 'value of $z'); }; } } # / foreach (qw/ -inf:-inf:NaN -1:-inf:0 -0:-inf:0 0:-inf:-0 1:-inf:-1 inf:-inf:NaN NaN:-inf:NaN -inf:-1:inf -1:-1:1 -0:-1:0 0:-1:-0 1:-1:-1 inf:-1:-inf NaN:-1:NaN -inf:0:-inf -1:0:-inf -0:0:NaN 0:0:NaN 1:0:inf inf:0:inf NaN:0:NaN -inf:1:-inf -1:1:-1 -0:1:-0 0:1:0 1:1:1 inf:1:inf NaN:1:NaN -inf:inf:NaN -1:inf:-1 -0:inf:-0 0:inf:0 1:inf:0 inf:inf:NaN NaN:inf:NaN -inf:NaN:NaN -1:NaN:NaN -0:NaN:NaN 0:NaN:NaN 1:NaN:NaN inf:NaN:NaN NaN:NaN:NaN /) { @args = split /:/, $_; for my $class (@biclasses, @bfclasses) { $args[2] = '0' if $args[2] eq '-0'; # Math::Big* has no -0 my ($q, $r); # bdiv in scalar context $x = $class->new($args[0]); $y = $class->new($args[1]); unless ($class =~ /^Math::BigFloat/) { $q = $x->bdiv($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$q = \$x->bdiv(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($q), $class, "\$q is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($q->bstr(), $args[2], 'value of $q'); }; } # bmod and bdiv in list context $x = $class->new($args[0]); $y = $class->new($args[1]); ($q, $r) = $x->bdiv($y); # bdiv in list context $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|(\$q, \$r) = \$x->bdiv(\$y);|; subtest $test => sub { plan tests => 7; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($q), $class, "\$q is a $class"); is(ref($r), $class, "\$r is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($q->bstr(), $args[2], 'value of $q'); }; # bmod $x = $class->new($args[0]); $y = $class->new($args[1]); my $m = $x->bmod($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$m = \$x->bmod(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($m), $class, "\$m is a $class"); is($x->bstr(), $r->bstr(), 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($m->bstr(), $r->bstr(), 'value of $m'); }; } } # / foreach (qw/ -inf:-inf:NaN -1:-inf:0 -0:-inf:0 0:-inf:-0 1:-inf:-0 inf:-inf:NaN NaN:-inf:NaN -inf:-1:inf -1:-1:1 -0:-1:0 0:-1:-0 1:-1:-1 inf:-1:-inf NaN:-1:NaN -inf:0:-inf -1:0:-inf -0:0:NaN 0:0:NaN 1:0:inf inf:0:inf NaN:0:NaN -inf:1:-inf -1:1:-1 -0:1:-0 0:1:0 1:1:1 inf:1:inf NaN:1:NaN -inf:inf:NaN -1:inf:-0 -0:inf:-0 0:inf:0 1:inf:0 inf:inf:NaN NaN:inf:NaN -inf:NaN:NaN -1:NaN:NaN -0:NaN:NaN 0:NaN:NaN 1:NaN:NaN inf:NaN:NaN NaN:NaN:NaN /) { @args = split /:/, $_; for my $class (@bfclasses) { $args[2] = '0' if $args[2] eq '-0'; # Math::Big* has no -0 $x = $class->new($args[0]); $y = $class->new($args[1]); $z = $x->bdiv($y); $test = qq|\$x = $class->new("$args[0]"); | . qq|\$y = $class->new("$args[1]"); | . qq|\$z = \$x->bdiv(\$y);|; subtest $test => sub { plan tests => 6; is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is still a $class"); is(ref($z), $class, "\$z is a $class"); is($x->bstr(), $args[2], 'value of $x'); is($y->bstr(), $args[1], 'value of $y'); is($z->bstr(), $args[2], 'value of $z'); }; } } ############################################################################# # overloaded comparisons foreach my $c (@biclasses, @bfclasses) { $x = $c->bnan(); $y = $c->bnan(); # test with two different objects, too $z = $c->bzero(); is($x == $y, '', 'NaN == NaN: ""'); is($x != $y, 1, 'NaN != NaN: 1'); is($x == $x, '', 'NaN == NaN: ""'); is($x != $x, 1, 'NaN != NaN: 1'); is($z != $x, 1, '0 != NaN: 1'); is($z == $x, '', '0 == NaN: ""'); is($z < $x, '', '0 < NaN: ""'); is($z <= $x, '', '0 <= NaN: ""'); is($z >= $x, '', '0 >= NaN: ""'); #is($z > $x, '', '0 > NaN: ""'); # Bug! Todo: fix it! } # All done. Math-BigInt-2.005003/t/isa.t0000644403072340010010000000303214537274604015152 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use lib 't'; use Test::More tests => 13; use Math::BigInt::Subclass; use Math::BigFloat::Subclass; use Math::BigFloat::BareSubclass; use Math::BigInt; use Math::BigFloat; my $class = "Math::BigInt::Subclass"; my $LIB = "Math::BigInt::Calc"; # Check that a subclass is still considered a Math::BigInt isa_ok($class->new(123), 'Math::BigInt'); # ditto for plain Math::BigInt isa_ok(Math::BigInt->new(123), 'Math::BigInt'); # But Math::BigFloat objects aren't ok(!Math::BigFloat->new(123)->isa('Math::BigInt'), "A Math::BigFloat isn't a Math::BigInt"); { # see what happens if we feed a Math::BigFloat into new() my $x = Math::BigInt->new(Math::BigFloat->new(123)); is(ref($x), 'Math::BigInt', 'ref($x) = "Math::BigInt"'); isa_ok($x, 'Math::BigInt'); } { # ditto for subclass my $x = Math::BigInt->new(Math::BigFloat::Subclass->new(123)); is(ref($x), 'Math::BigInt', 'ref($x) = "Math::BigInt"'); isa_ok($x, 'Math::BigInt'); } { my $x = Math::BigFloat->new(Math::BigInt->new(123)); is(ref($x), 'Math::BigFloat', 'ref($x) = "Math::BigFloat"'); isa_ok($x, 'Math::BigFloat'); } { my $x = Math::BigFloat->new(Math::BigInt::Subclass->new(123)); is(ref($x), 'Math::BigFloat', 'ref($x) = "Math::BigFloat"'); isa_ok($x, 'Math::BigFloat'); } { my $x = Math::BigFloat->new(9999.99); my $y = Math::BigFloat::BareSubclass->new(9999.99); ok($x == $y, "Math::BigFloat parent == subclass"); ok($y == $x, "Math::BigFloat subclass == parent"); } Math-BigInt-2.005003/t/Math/0000755403072340010010000000000014776770355015115 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/Math/BigFloat/0000755403072340010010000000000014776770354016603 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/Math/BigFloat/BareSubclass.pm0000644403072340010010000000010414537274604021475 0ustar OSPJADomain Userspackage Math::BigFloat::BareSubclass; use base 'Math::BigFloat'; 1; Math-BigInt-2.005003/t/Math/BigFloat/Subclass.pm0000644403072340010010000000200014546553333020677 0ustar OSPJADomain Users# -*- mode: perl; -*- # test subclassing Math::BigFloat package Math::BigFloat::Subclass; use strict; use warnings; use Math::BigFloat; our @ISA = qw(Math::BigFloat); our $VERSION = "0.09"; use overload; # inherit overload # Global variables. The values can be specified explicitly or obtained from the # superclass. our $accuracy = undef; # or Math::BigFloat::Subclass -> accuracy(); our $precision = undef; # or Math::BigFloat::Subclass -> precision(); our $round_mode = "even"; # or Math::BigFloat::Subclass -> round_mode(); our $div_scale = 40; # or Math::BigFloat::Subclass -> div_scale(); BEGIN { *objectify = \&Math::BigInt::objectify; } # We override new() sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class -> SUPER::new(@_); $self->{'_custom'} = 1; # attribute specific to this subclass bless $self, $class; } # Any other methods to override can go here: # sub method { # ... # } 1; Math-BigInt-2.005003/t/Math/BigInt/0000755403072340010010000000000014776770354016270 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/Math/BigInt/BareCalc.pm0000644403072340010010000000054014536617515020252 0ustar OSPJADomain Users# -*- mode: perl; -*- package Math::BigInt::BareCalc; use strict; use warnings; our $VERSION = '1.999803'; # Package to to test Bigint's simulation of Calc use Math::BigInt::Calc 1.9998; our @ISA = qw(Math::BigInt::Calc); print "# Math::BigInt::BareCalc v", $VERSION, " using", " Math::BigInt::Calc v", Math::BigInt::Calc -> VERSION, "\n"; 1; Math-BigInt-2.005003/t/Math/BigInt/Lib/0000755403072340010010000000000014776770354016776 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/Math/BigInt/Lib/Minimal.pm0000644403072340010010000003442614507021455020712 0ustar OSPJADomain Users# This is a rather minimalistic library, whose purpose is to test inheritance # from its parent class. package Math::BigInt::Lib::Minimal; use 5.006001; use strict; use warnings; use Carp; use Math::BigInt::Lib; our @ISA = ('Math::BigInt::Lib'); my $BASE_LEN = 5; my $BASE = 0 + ("1" . ("0" x $BASE_LEN)); my $MAX_VAL = $BASE - 1; sub _new { my ($class, $str) = @_; croak "Invalid input string '$str'" unless $str =~ /^([1-9]\d*|0)\z/; my $n = length $str; my $p = int($n / $BASE_LEN); my $q = $n % $BASE_LEN; my $format = $] < 5.008 ? "a$BASE_LEN" x $p : "(a$BASE_LEN)*"; $format = "a$q" . $format if $q > 0; my $self = [ reverse(map { 0 + $_ } unpack($format, $str)) ]; return bless $self, $class; } ############################################################################## # convert to string sub _str { my ($class, $x) = @_; my $idx = $#$x; # index of last element # Handle first one differently, since it should not have any leading zeros. my $str = int($x->[$idx]); if ($idx > 0) { my $z = '0' x ($BASE_LEN - 1); while (--$idx >= 0) { $str .= substr($z . $x->[$idx], -$BASE_LEN); } } $str; } ############################################################################## # actual math code sub _add { # (ref to int_num_array, ref to int_num_array) # # Routine to add two base 1eX numbers stolen from Knuth Vol 2 Algorithm A # pg 231. There are separate routines to add and sub as per Knuth pg 233. # This routine modifies array x, but not y. my ($c, $x, $y) = @_; # $x + 0 => $x return $x if @$y == 1 && $y->[0] == 0; # 0 + $y => $y->copy if (@$x == 1 && $x->[0] == 0) { @$x = @$y; return $x; } # For each in Y, add Y to X and carry. If after that, something is left in # X, foreach in X add carry to X and then return X, carry. Trades one # "$j++" for having to shift arrays. my $i; my $car = 0; my $j = 0; for $i (@$y) { $x->[$j] -= $BASE if $car = (($x->[$j] += $i + $car) >= $BASE) ? 1 : 0; $j++; } while ($car != 0) { $x->[$j] -= $BASE if $car = (($x->[$j] += $car) >= $BASE) ? 1 : 0; $j++; } $x; } sub _sub { # (ref to int_num_array, ref to int_num_array, swap) # # Subtract base 1eX numbers -- stolen from Knuth Vol 2 pg 232, $x > $y # subtract Y from X by modifying x in place my ($c, $sx, $sy, $s) = @_; my $car = 0; my $i; my $j = 0; if (!$s) { for $i (@$sx) { last unless defined $sy->[$j] || $car; $i += $BASE if $car = (($i -= ($sy->[$j] || 0) + $car) < 0); $j++; } # might leave leading zeros, so fix that return __strip_zeros($sx); } for $i (@$sx) { # We can't do an early out if $x < $y, since we need to copy the high # chunks from $y. Found by Bob Mathews. #last unless defined $sy->[$j] || $car; $sy->[$j] += $BASE if $car = ($sy->[$j] = $i - ($sy->[$j] || 0) - $car) < 0; $j++; } # might leave leading zeros, so fix that __strip_zeros($sy); } # The following _mul function is an exact copy of _mul_use_div_64 in # Math::BigInt::Calc. sub _mul { # (ref to int_num_array, ref to int_num_array) # multiply two numbers in internal representation # modifies first arg, second need not be different from first # works for 64 bit integer with "use integer" my ($c, $xv, $yv) = @_; use integer; if (@$yv == 1) { # shortcut for two small numbers, also handles $x == 0 if (@$xv == 1) { # shortcut for two very short numbers (improved by Nathan Zook) # works also if xv and yv are the same reference, and handles also $x == 0 if (($xv->[0] *= $yv->[0]) >= $BASE) { $xv->[0] = $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE; } return $xv; } # $x * 0 => 0 if ($yv->[0] == 0) { @$xv = (0); return $xv; } # multiply a large number a by a single element one, so speed up my $y = $yv->[0]; my $car = 0; foreach my $i (@$xv) { #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE; $i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE; } push @$xv, $car if $car != 0; return $xv; } # shortcut for result $x == 0 => result = 0 return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) ); # since multiplying $x with $x fails, make copy in this case $yv = $c->_copy($xv) if $xv == $yv; # same references? my @prod = (); my ($prod, $car, $cty, $xi, $yi); for $xi (@$xv) { $car = 0; $cty = 0; # looping through this if $xi == 0 is silly - so optimize it away! $xi = (shift @prod || 0), next if $xi == 0; for $yi (@$yv) { $prod = $xi * $yi + ($prod[$cty] || 0) + $car; $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE; } $prod[$cty] += $car if $car; # need really to check for 0? $xi = shift @prod || 0; # || 0 makes v5.005_3 happy } push @$xv, @prod; $xv; } # The following _div function is an exact copy of _div_use_div_64 in # Math::BigInt::Calc. sub _div { # ref to array, ref to array, modify first array and return remainder if # in list context # This version works on 64 bit integers my ($c, $x, $yorg) = @_; use integer; # the general div algorithm here is about O(N*N) and thus quite slow, so # we first check for some special cases and use shortcuts to handle them. # This works, because we store the numbers in a chunked format where each # element contains 5..7 digits (depending on system). # if both numbers have only one element: if (@$x == 1 && @$yorg == 1) { # shortcut, $yorg and $x are two small numbers if (wantarray) { my $rem = [ $x->[0] % $yorg->[0] ]; bless $rem, $c; $x->[0] = int($x->[0] / $yorg->[0]); return ($x, $rem); } else { $x->[0] = int($x->[0] / $yorg->[0]); return $x; } } # if x has more than one, but y has only one element: if (@$yorg == 1) { my $rem; $rem = $c->_mod($c->_copy($x), $yorg) if wantarray; # shortcut, $y is < $BASE my $j = @$x; my $r = 0; my $y = $yorg->[0]; my $b; while ($j-- > 0) { $b = $r * $BASE + $x->[$j]; $x->[$j] = int($b/$y); $r = $b % $y; } pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero return ($x, $rem) if wantarray; return $x; } # now x and y have more than one element # check whether y has more elements than x, if yet, the result will be 0 if (@$yorg > @$x) { my $rem; $rem = $c->_copy($x) if wantarray; # make copy @$x = 0; # set to 0 return ($x, $rem) if wantarray; # including remainder? return $x; # only x, which is [0] now } # check whether the numbers have the same number of elements, in that case # the result will fit into one element and can be computed efficiently if (@$yorg == @$x) { my $rem; # if $yorg has more digits than $x (it's leading element is longer than # the one from $x), the result will also be 0: if (length(int($yorg->[-1])) > length(int($x->[-1]))) { $rem = $c->_copy($x) if wantarray; # make copy @$x = 0; # set to 0 return ($x, $rem) if wantarray; # including remainder? return $x; } # now calculate $x / $yorg if (length(int($yorg->[-1])) == length(int($x->[-1]))) { # same length, so make full compare my $a = 0; my $j = @$x - 1; # manual way (abort if unequal, good for early ne) while ($j >= 0) { last if ($a = $x->[$j] - $yorg->[$j]); $j--; } # $a contains the result of the compare between X and Y # a < 0: x < y, a == 0: x == y, a > 0: x > y if ($a <= 0) { $rem = $c->_zero(); # a = 0 => x == y => rem 0 $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x @$x = 0; # if $a < 0 $x->[0] = 1 if $a == 0; # $x == $y return ($x, $rem) if wantarray; # including remainder? return $x; } # $x >= $y, so proceed normally } } # all other cases: my $y = $c->_copy($yorg); # always make copy to preserve my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0); $car = $bar = $prd = 0; if (($dd = int($BASE / ($y->[-1] + 1))) != 1) { for $xi (@$x) { $xi = $xi * $dd + $car; $xi -= ($car = int($xi / $BASE)) * $BASE; } push(@$x, $car); $car = 0; for $yi (@$y) { $yi = $yi * $dd + $car; $yi -= ($car = int($yi / $BASE)) * $BASE; } } else { push(@$x, 0); } # @q will accumulate the final result, $q contains the current computed # part of the final result @q = (); ($v2, $v1) = @$y[-2, -1]; $v2 = 0 unless $v2; while ($#$x > $#$y) { ($u2, $u1, $u0) = @$x[-3..-1]; $u2 = 0 unless $u2; #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n" # if $v1 == 0; $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1)); --$q while ($v2 * $q > ($u0 * $BASE +$ u1- $q*$v1) * $BASE + $u2); if ($q) { ($car, $bar) = (0, 0); for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $prd = $q * $y->[$yi] + $car; $prd -= ($car = int($prd / $BASE)) * $BASE; $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0)); } if ($x->[-1] < $car + $bar) { $car = 0; --$q; for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) { $x->[$xi] -= $BASE if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE)); } } } pop(@$x); unshift(@q, $q); } if (wantarray) { my $d = bless [], $c; if ($dd != 1) { $car = 0; for $xi (reverse @$x) { $prd = $car * $BASE + $xi; $car = $prd - ($tmp = int($prd / $dd)) * $dd; unshift(@$d, $tmp); } } else { @$d = @$x; } @$x = @q; __strip_zeros($x); __strip_zeros($d); return ($x, $d); } @$x = @q; __strip_zeros($x); $x; } # The following _mod function is an exact copy of _mod in Math::BigInt::Calc. sub _mod { # if possible, use mod shortcut my ($c, $x, $yo) = @_; # slow way since $y too big if (@$yo > 1) { my ($xo, $rem) = $c->_div($x, $yo); @$x = @$rem; return $x; } my $y = $yo->[0]; # if both are single element arrays if (@$x == 1) { $x->[0] %= $y; return $x; } # if @$x has more than one element, but @$y is a single element my $b = $BASE % $y; if ($b == 0) { # when BASE % Y == 0 then (B * BASE) % Y == 0 # (B * BASE) % $y + A % Y => A % Y # so need to consider only last element: O(1) $x->[0] %= $y; } elsif ($b == 1) { # else need to go through all elements in @$x: O(N), but loop is a bit # simplified my $r = 0; foreach (@$x) { $r = ($r + $_) % $y; # not much faster, but heh... #$r += $_ % $y; $r %= $y; } $r = 0 if $r == $y; $x->[0] = $r; } else { # else need to go through all elements in @$x: O(N) my $r = 0; my $bm = 1; foreach (@$x) { $r = ($_ * $bm + $r) % $y; $bm = ($bm * $b) % $y; #$r += ($_ % $y) * $bm; #$bm *= $b; #$bm %= $y; #$r %= $y; } $r = 0 if $r == $y; $x->[0] = $r; } @$x = $x->[0]; # keep one element of @$x return $x; } sub __strip_zeros { # Internal normalization function that strips leading zeros from the array. # Args: ref to array my $x = shift; push @$x, 0 if @$x == 0; # div might return empty results, so fix it return $x if @$x == 1; # early out #print "strip: cnt $cnt i $i\n"; # '0', '3', '4', '0', '0', # 0 1 2 3 4 # cnt = 5, i = 4 # i = 4 # i = 3 # => fcnt = cnt - i (5-2 => 3, cnt => 5-1 = 4, throw away from 4th pos) # >= 1: skip first part (this can be zero) my $i = $#$x; while ($i > 0) { last if $x->[$i] != 0; $i--; } $i++; splice(@$x, $i) if $i < @$x; $x; } ############################################################################### # check routine to test internal state for corruptions sub _check { # used by the test suite my ($class, $x) = @_; return "Undefined" unless defined $x; return "$x is not a reference" unless ref($x); return "Not an '$class'" unless ref($x) eq $class; for (my $i = 0 ; $i <= $#$x ; ++ $i) { my $e = $x -> [$i]; return "Element at index $i is undefined" unless defined $e; return "Element at index $i is a '" . ref($e) . "', which is not a scalar" unless ref($e) eq ""; return "Element at index $i is '$e', which does not look like an" . " normal integer" #unless $e =~ /^([1-9]\d*|0)\z/; unless $e =~ /^\d+\z/; return "Element at index $i is '$e', which is negative" if $e < 0; return "Element at index $i is '$e', which is not smaller than" . " the base '$BASE'" if $e >= $BASE; return "Element at index $i (last element) is zero" if $#$x > 0 && $i == $#$x && $e == 0; } return 0; } 1; Math-BigInt-2.005003/t/Math/BigInt/Lib/TestUtil.pm0000644403072340010010000000135314536617515021104 0ustar OSPJADomain Users# -*- mode: perl; -*- package Math::BigInt::Lib::TestUtil; use strict; use warnings; use Exporter; our @ISA = qw< Exporter >; our @EXPORT_OK = qw< randstr >; # randstr NUM, BASE # # Generate a string representing a NUM digit number in base BASE. sub randstr { die "randstr: wrong number of input arguments\n" unless @_ == 2; my $n = shift; my $b = shift; die "randstr: first input argument must be >= 0" unless $n >= 0; die "randstr: second input argument must be in the range 2 .. 36\n" unless 2 <= $b && $b <= 36; return '' if $n == 0; my @dig = (0 .. 9, 'a' .. 'z'); my $str = $dig[ 1 + int rand ($b - 1) ]; $str .= $dig[ int rand $b ] for 2 .. $n; return $str; } 1; Math-BigInt-2.005003/t/Math/BigInt/Scalar.pm0000644403072340010010000001144314505066124020015 0ustar OSPJADomain Users############################################################################### # core math lib for BigInt, representing big numbers by normal int/float's # for testing only, will fail any bignum test if range is exceeded package Math::BigInt::Scalar; use 5.006; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our $VERSION = '0.13'; ############################################################################## # global constants, flags and accessory # constants for easier life my $nan = 'NaN'; ############################################################################## # create objects from various representations sub _new { # create scalar ref from string my $d = $_[1]; my $x = $d; # make copy \$x; } sub _from_hex { # not used } sub _from_oct { # not used } sub _from_bin { # not used } sub _zero { my $x = 0; \$x; } sub _one { my $x = 1; \$x; } sub _two { my $x = 2; \$x; } sub _ten { my $x = 10; \$x; } sub _copy { my $x = $_[1]; my $z = $$x; \$z; } # catch and throw away sub import { } ############################################################################## # convert back to string and number sub _str { # make string "${$_[1]}"; } sub _num { # make a number 0+${$_[1]}; } sub _zeros { my $x = $_[1]; $x =~ /\d(0*)$/; length($1 || ''); } sub _rsft { # not used } sub _lsft { # not used } sub _mod { # not used } sub _gcd { # not used } sub _sqrt { # not used } sub _root { # not used } sub _fac { # not used } sub _modinv { # not used } sub _modpow { # not used } sub _log_int { # not used } sub _as_hex { sprintf("0x%x", ${$_[1]}); } sub _as_bin { sprintf("0b%b", ${$_[1]}); } sub _as_oct { sprintf("0%o", ${$_[1]}); } ############################################################################## # actual math code sub _add { my ($c, $x, $y) = @_; $$x += $$y; return $x; } sub _sub { my ($c, $x, $y) = @_; $$x -= $$y; return $x; } sub _mul { my ($c, $x, $y) = @_; $$x *= $$y; return $x; } sub _div { my ($c, $x, $y) = @_; my $u = int($$x / $$y); my $r = $$x % $$y; $$x = $u; return ($x, \$r) if wantarray; return $x; } sub _pow { my ($c, $x, $y) = @_; my $u = $$x ** $$y; $$x = $u; return $x; } sub _and { my ($c, $x, $y) = @_; my $u = int($$x) & int($$y); $$x = $u; return $x; } sub _xor { my ($c, $x, $y) = @_; my $u = int($$x) ^ int($$y); $$x = $u; return $x; } sub _or { my ($c, $x, $y) = @_; my $u = int($$x) | int($$y); $$x = $u; return $x; } sub _inc { my ($c, $x) = @_; my $u = int($$x)+1; $$x = $u; return $x; } sub _dec { my ($c, $x) = @_; my $u = int($$x)-1; $$x = $u; return $x; } ############################################################################## # testing sub _acmp { my ($c, $x, $y) = @_; return ($$x <=> $$y); } sub _len { return length("${$_[1]}"); } sub _digit { # return the nth digit, negative values count backward # 0 is the rightmost digit my ($c, $x, $n) = @_; $n ++; # 0 => 1, 1 => 2 return substr($$x, -$n, 1); # 1 => -1, -2 => 2 etc } ############################################################################## # _is_* routines sub _is_zero { # return true if arg is zero my ($c, $x) = @_; ($$x == 0) <=> 0; } sub _is_even { # return true if arg is even my ($c, $x) = @_; (!($$x & 1)) <=> 0; } sub _is_odd { # return true if arg is odd my ($c, $x) = @_; ($$x & 1) <=> 0; } sub _is_one { # return true if arg is one my ($c, $x) = @_; ($$x == 1) <=> 0; } sub _is_two { # return true if arg is one my ($c, $x) = @_; ($$x == 2) <=> 0; } sub _is_ten { # return true if arg is one my ($c, $x) = @_; ($$x == 10) <=> 0; } ############################################################################### # check routine to test internal state of corruptions sub _check { # no checks yet, pull it out from the test suite my ($c, $x) = @_; return "$x is not a reference" if !ref($x); return 0; } 1; __END__ =head1 NAME Math::BigInt::Scalar - Pure Perl module to test Math::BigInt with scalars =head1 SYNOPSIS Provides support for big integer calculations via means of 'small' int/floats. Only for testing purposes, since it will fail at large values. But it is simple enough not to introduce bugs on it's own and to serve as a testbed. =head1 DESCRIPTION Please see Math::BigInt::Calc. =head1 LICENSE This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR Tels http://bloodgate.com in 2001 - 2007. =head1 SEE ALSO L, L. =cut Math-BigInt-2.005003/t/Math/BigInt/Subclass.pm0000644403072340010010000000274114546553333020400 0ustar OSPJADomain Users# -*- mode: perl; -*- # test subclassing Math::BigInt package Math::BigInt::Subclass; use strict; use warnings; use Math::BigInt; our @ISA = qw(Math::BigInt); our $VERSION = "0.08"; use overload; # inherit overload # Global variables. The values can be specified explicitly or obtained from the # superclass. our $accuracy = undef; # or Math::BigInt::Subclass -> accuracy(); our $precision = undef; # or Math::BigInt::Subclass -> precision(); our $round_mode = "even"; # or Math::BigInt::Subclass -> round_mode(); our $div_scale = 40; # or Math::BigInt::Subclass -> div_scale(); BEGIN { *objectify = \&Math::BigInt::objectify; } # We override new(). sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class -> SUPER::new(@_); $self->{'_custom'} = 1; # attribute specific to this subclass bless $self, $class; } # We override import(). This is just for a sample for demonstration. sub import { my $self = shift; my $class = ref($self) || $self; my @a; # unrecognized arguments while (@_) { my $param = shift; # The parameter "this" takes an option. if ($param eq 'something') { $self -> {$param} = shift; next; } push @a, $_; } $self -> SUPER::import(@a); # need it for subclasses } # Any other methods to override can go here: # sub method { # ... # } 1; Math-BigInt-2.005003/t/Math/BigRat/0000755403072340010010000000000014776770355016265 5ustar OSPJADomain UsersMath-BigInt-2.005003/t/Math/BigRat/Subclass.pm0000644403072340010010000000176214546553333020376 0ustar OSPJADomain Users# -*- mode: perl; -*- # test subclassing Math::BigRat package Math::BigRat::Subclass; use strict; use warnings; use Math::BigRat; our @ISA = qw(Math::BigRat); our $VERSION = '0.04'; use overload; # inherit overload # Global variables. The values can be specified explicitly or obtained from the # superclass. our $accuracy = undef; # or Math::BigInt::Subclass -> accuracy(); our $precision = undef; # or Math::BigInt::Subclass -> precision(); our $round_mode = "even"; # or Math::BigInt::Subclass -> round_mode(); our $div_scale = 40; # or Math::BigInt::Subclass -> div_scale(); BEGIN { *objectify = \&Math::BigInt::objectify; } # We override new() sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class -> SUPER::new(@_); $self->{'_custom'} = 1; # attribute specific to this subclass bless $self, $class; } # Any other methods to override can go here: # sub method { # ... # } 1; Math-BigInt-2.005003/t/mbf_ali.t0000644403072340010010000000031214536617516015767 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that the new alias names work use strict; use warnings; use Test::More tests => 6; use Math::BigFloat; our $CLASS; $CLASS = 'Math::BigFloat'; require './t/alias.inc'; Math-BigInt-2.005003/t/mbimbf.inc0000644403072340010010000013340314755643327016152 0ustar OSPJADomain Users# test rounding, accuracy, precision and fallback, round_mode and mixing # of classes # Make sure you always quote any bare floating-point values, lest 123.46 will # be stringified to 123.4599999999 due to limited float prevision. use strict; use warnings; my ($x, $y, $z, $u, $rc); our ($mbi, $mbf); ############################################################################### # test defaults and set/get { no strict 'refs'; is(${"$mbi\::accuracy"}, undef, qq|\${"$mbi\::accuracy"}|); is(${"$mbi\::precision"}, undef, qq|\${"$mbi\::precision"}|); is($mbi->accuracy(), undef, qq|$mbi->accuracy()|); is($mbi->precision(), undef, qq|$mbi->precision()|); is(${"$mbi\::div_scale"}, 40, qq|\${"$mbi\::div_scale"}|); is(${"$mbi\::round_mode"}, 'even', qq|\${"$mbi\::round_mode"}|); is($mbi->round_mode(), 'even', qq|$mbi->round_mode()|); is(${"$mbf\::accuracy"}, undef, qq|\${"$mbf\::accuracy"}|); is(${"$mbf\::precision"}, undef, qq|\${"$mbf\::precision"}|); is($mbf->precision(), undef, qq|$mbf->precision()|); is($mbf->precision(), undef, qq|$mbf->precision()|); is(${"$mbf\::div_scale"}, 40, qq|\${"$mbf\::div_scale"}|); is(${"$mbf\::round_mode"}, 'even', qq|\${"$mbf\::round_mode"}|); is($mbf->round_mode(), 'even', qq|$mbf->round_mode()|); } # accessors foreach my $class ($mbi, $mbf) { is($class->accuracy(), undef, qq|$class->accuracy()|); is($class->precision(), undef, qq|$class->precision()|); is($class->round_mode(), "even", qq|$class->round_mode()|); is($class->div_scale(), 40, qq|$class->div_scale()|); is($class->div_scale(20), 20, qq|$class->div_scale(20)|); $class->div_scale(40); is($class->div_scale(), 40, qq|$class->div_scale()|); is($class->round_mode("odd"), "odd", qq|$class->round_mode("odd")|); $class->round_mode("even"); is($class->round_mode(), "even", qq|$class->round_mode()|); is($class->accuracy(2), 2, qq|$class->accuracy(2)|); $class->accuracy(3); is($class->accuracy(), 3, qq|$class->accuracy()|); is($class->accuracy(undef), undef, qq|$class->accuracy(undef)|); is($class->precision(2), 2, qq|$class->precision(2)|); is($class->precision(-2), -2, qq|$class->precision(-2)|); $class->precision(3); is($class->precision(), 3, qq|$class->precision()|); is($class->precision(undef), undef, qq|$class->precision(undef)|); } { no strict 'refs'; # accuracy foreach (qw/5 42 -1 0/) { is(${"$mbf\::accuracy"} = $_, $_, qq|\${"$mbf\::accuracy"} = $_|); is(${"$mbi\::accuracy"} = $_, $_, qq|\${"$mbi\::accuracy"} = $_|); } is(${"$mbf\::accuracy"} = undef, undef, qq|\${"$mbf\::accuracy"} = undef|); is(${"$mbi\::accuracy"} = undef, undef, qq|\${"$mbi\::accuracy"} = undef|); # precision foreach (qw/5 42 -1 0/) { is(${"$mbf\::precision"} = $_, $_, qq|\${"$mbf\::precision"} = $_|); is(${"$mbi\::precision"} = $_, $_, qq|\${"$mbi\::precision"} = $_|); } is(${"$mbf\::precision"} = undef, undef, qq|\${"$mbf\::precision"} = undef|); is(${"$mbi\::precision"} = undef, undef, qq|\${"$mbi\::precision"} = undef|); # fallback foreach (qw/5 42 1/) { is(${"$mbf\::div_scale"} = $_, $_, qq|\${"$mbf\::div_scale"} = $_|); is(${"$mbi\::div_scale"} = $_, $_, qq|\${"$mbi\::div_scale"} = $_|); } # illegal values are possible for fallback due to no accessor # round_mode foreach (qw/odd even zero trunc +inf -inf/) { is(${"$mbf\::round_mode"} = $_, $_, qq|\${"$mbf\::round_mode"} = "$_"|); is(${"$mbi\::round_mode"} = $_, $_, qq|\${"$mbi\::round_mode"} = "$_"|); } ${"$mbf\::round_mode"} = 'zero'; is(${"$mbf\::round_mode"}, 'zero', qq|\${"$mbf\::round_mode"}|); is(${"$mbi\::round_mode"}, '-inf', qq|\${"$mbi\::round_mode"}|); # reset for further tests ${"$mbi\::accuracy"} = undef; ${"$mbi\::precision"} = undef; ${"$mbf\::div_scale"} = 40; } # local copies $x = $mbf->new('123.456'); is($x->accuracy(), undef, q|$x->accuracy()|); is($x->accuracy(5), 5, q|$x->accuracy(5)|); is($x->accuracy(undef), undef, q|$x->accuracy(undef)|); is($x->precision(), undef, q|$x->precision()|); is($x->precision(5), 5, q|$x->precision(5)|); is($x->precision(undef), undef, q|$x->precision(undef)|); { no strict 'refs'; # see if MBF changes MBIs values is(${"$mbi\::accuracy"} = 42, 42, qq|\${"$mbi\::accuracy"} = 42|); is(${"$mbf\::accuracy"} = 64, 64, qq|\${"$mbf\::accuracy"} = 64|); is(${"$mbi\::accuracy"}, 42, qq|\${"$mbi\::accuracy"} = 42|); is(${"$mbf\::accuracy"}, 64, qq|\${"$mbf\::accuracy"} = 64|); } ############################################################################### # see if creating a number under set A or P will round it { no strict 'refs'; ${"$mbi\::accuracy"} = 4; ${"$mbi\::precision"} = undef; is($mbi->new(123456), 123500, qq|$mbi->new(123456) = 123500|); # with A ${"$mbi\::accuracy"} = undef; ${"$mbi\::precision"} = 3; is($mbi->new(123456), 123000, qq|$mbi->new(123456) = 123000|); # with P ${"$mbf\::accuracy"} = 4; ${"$mbf\::precision"} = undef; ${"$mbi\::precision"} = undef; is($mbf->new("123.456"), "123.5", qq|$mbf->new("123.456") = 123.5|); ${"$mbf\::accuracy"} = undef; ${"$mbf\::precision"} = -1; is($mbf->new("123.456"), "123.5", qq|$mbf->new("123.456") = 123.5|); ${"$mbf\::precision"} = undef; # reset } ############################################################################### # see if MBI leaves MBF's private parts alone { no strict 'refs'; ${"$mbi\::precision"} = undef; ${"$mbf\::precision"} = undef; ${"$mbi\::accuracy"} = 4; ${"$mbf\::accuracy"} = undef; is($mbf->new("123.456"), "123.456", qq|$mbf->new("123.456") = 123.456|); ${"$mbi\::accuracy"} = undef; # reset } ############################################################################### # see if setting accuracy/precision actually rounds the number $x = $mbf->new("123.456"); $x->accuracy(4); is($x, "123.5", qq|\$x = $mbf->new("123.456"); \$x->accuracy(4)|); $x = $mbf->new("123.456"); $x->precision(-2); is($x, "123.46", qq|\$x = $mbf->new("123.456"); \$x->precision(-2)|); $x = $mbi->new(123456); $x->accuracy(4); is($x, 123500, qq|\$x = $mbi->new(123456); \$x->accuracy(4)|); $x = $mbi->new(123456); $x->precision(2); is($x, 123500, qq|\$x = $mbi->new(123456); \$x->precision(2)|); ############################################################################### # test actual rounding via round() $x = $mbf->new("123.456"); is($x->copy()->round(5), "123.46", qq|\$x = $mbf->new("123.456"); \$x->copy()->round(5)|); is($x->copy()->round(4), "123.5", qq|\$x = $mbf->new("123.456"); \$x->copy()->round(4)|); is($x->copy()->round(5, 2), "NaN", qq|\$x = $mbf->new("123.456"); \$x->copy()->round(5, 2)|); is($x->copy()->round(undef, -2), "123.46", qq|\$x = $mbf->new("123.456"); \$x->copy()->round(undef, -2)|); is($x->copy()->round(undef, 2), 120, qq|\$x = $mbf->new("123.456"); \$x->copy()->round(undef, 2)|); $x = $mbi->new("123"); is($x->round(5, 2), "NaN", qq|\$x = $mbi->new("123"); \$x->round(5, 2)|); $x = $mbf->new("123.45000"); is($x->copy()->round(undef, -1, "odd"), "123.5", qq|\$x = $mbf->new("123.45000"); \$x->copy()->round(undef, -1, "odd")|); # see if rounding is 'sticky' $x = $mbf->new("123.4567"); $y = $x->copy()->bround(); # no-op since nowhere A or P defined is($y, 123.4567, qq|\$x = $mbf->new("123.4567"); \$y = \$x->copy()->bround()|); $y = $x->copy()->round(5); is($y->accuracy(), 5, q|$y = $x->copy()->round(5); $y->accuracy()|); is($y->precision(), undef, # A has precedence, so P still unset q|$y = $x->copy()->round(5); $y->precision()|); $y = $x->copy()->round(undef, 2); is($y->precision(), 2, q|$y = $x->copy()->round(undef, 2); $y->precision()|); is($y->accuracy(), undef, # P has precedence, so A still unset q|$y = $x->copy()->round(undef, 2); $y->accuracy()|); # see if setting A clears P and vice versa $x = $mbf->new("123.4567"); is($x, "123.4567", q|$x = $mbf->new("123.4567")|); is($x->accuracy(4), 4, q|$x->accuracy(4)|); is($x->precision(-2), -2, q|$x->precision(-2)|); # clear A is($x->accuracy(), undef, q|$x->accuracy()|); $x = $mbf->new("123.4567"); is($x, "123.4567", q|$x = $mbf->new("123.4567")|); is($x->precision(-2), -2, q|$x->precision(-2)|); is($x->accuracy(4), 4, q|$x->accuracy(4)|); # clear P is($x->precision(), undef, q|$x->precision()|); # does copy work? $x = $mbf->new(123.456); $x->accuracy(4); $x->precision(2); $z = $x->copy(); is($z->accuracy(), undef, q|$z = $x->copy(); $z->accuracy()|); is($z->precision(), 2, q|$z = $x->copy(); $z->precision()|); # does $x->bdiv($y, d) work when $d > div_scale? $x = $mbf->new("0.008"); $x->accuracy(8); for my $e (4, 8, 16, 32) { is(scalar $x->copy()->bdiv(3, $e), "0.002" . ("6" x ($e - 2)) . "7", qq|\$x->copy()->bdiv(3, $e)|); } # does accuracy()/precision work on zeros? foreach my $class ($mbi, $mbf) { $x = $class->bzero(); $x->accuracy(5); is($x->{accuracy}, 5, qq|\$x = $class->bzero(); \$x->accuracy(5); \$x->{accuracy}|); $x = $class->bzero(); $x->precision(5); is($x->{precision}, 5, qq|\$x = $class->bzero(); \$x->precision(5); \$x->{precision}|); $x = $class->new(0); $x->accuracy(5); is($x->{accuracy}, 5, qq|\$x = $class->new(0); \$x->accuracy(5); \$x->{accuracy}|); $x = $class->new(0); $x->precision(5); is($x->{precision}, 5, qq|\$x = $class->new(0); \$x->precision(5); \$x->{precision}|); $x = $class->bzero(); $x->round(5); is($x->{accuracy}, 5, qq|\$x = $class->bzero(); \$x->round(5); \$x->{accuracy}|); $x = $class->bzero(); $x->round(undef, 5); is($x->{precision}, 5, qq|\$x = $class->bzero(); \$x->round(undef, 5); \$x->{precision}|); $x = $class->new(0); $x->round(5); is($x->{accuracy}, 5, qq|\$x = $class->new(0); \$x->round(5); \$x->{accuracy}|); $x = $class->new(0); $x->round(undef, 5); is($x->{precision}, 5, qq|\$x = $class->new(0); \$x->round(undef, 5); \$x->{precision}|); # see if trying to increasing A in bzero() doesn't do something $x = $class->bzero(); $x->{accuracy} = 3; $x->round(5); is($x->{accuracy}, 3, qq|\$x = $class->bzero(); \$x->{accuracy} = 3; \$x->round(5); \$x->{accuracy}|); } ############################################################################### # test whether an opp calls objectify properly or not (or at least does what # it should do given non-objects, w/ or w/o objectify()) foreach my $class ($mbi, $mbf) { # ${"$class\::precision"} = undef; # reset # ${"$class\::accuracy"} = undef; # reset is($class->new(123)->badd(123), 246, qq|$class->new(123)->badd(123)|); is($class->badd(123, 321), 444, qq|$class->badd(123, 321)|); is($class->badd(123, $class->new(321)), 444, qq|$class->badd(123, $class->new(321))|); is($class->new(123)->bsub(122), 1, qq|$class->new(123)->bsub(122)|); is($class->bsub(321, 123), 198, qq|$class->bsub(321, 123)|); is($class->bsub(321, $class->new(123)), 198, qq|$class->bsub(321, $class->new(123))|); is($class->new(123)->bmul(123), 15129, qq|$class->new(123)->bmul(123)|); is($class->bmul(123, 123), 15129, qq|$class->bmul(123, 123)|); is($class->bmul(123, $class->new(123)), 15129, qq|$class->bmul(123, $class->new(123))|); # is($class->new(15129)->bdiv(123), 123, qq|$class->new(15129)->bdiv(123)|); # is($class->bdiv(15129, 123), 123, qq|$class->bdiv(15129, 123)|); # is($class->bdiv(15129, $class->new(123)), 123, # qq|$class->bdiv(15129, $class->new(123))|); is($class->new(15131)->bmod(123), 2, qq|$class->new(15131)->bmod(123)|); is($class->bmod(15131, 123), 2, qq|$class->bmod(15131, 123)|); is($class->bmod(15131, $class->new(123)), 2, qq|$class->bmod(15131, $class->new(123))|); is($class->new(2)->bpow(16), 65536, qq|$class->new(2)->bpow(16)|); is($class->bpow(2, 16), 65536, qq|$class->bpow(2, 16)|); is($class->bpow(2, $class->new(16)), 65536, qq|$class->bpow(2, $class->new(16))|); is($class->new(2**15)->brsft(1), 2**14, qq|$class->new(2**15)->brsft(1)|); is($class->brsft(2**15, 1), 2**14, qq|$class->brsft(2**15, 1)|); is($class->brsft(2**15, $class->new(1)), 2**14, qq|$class->brsft(2**15, $class->new(1))|); is($class->new(2**13)->blsft(1), 2**14, qq|$class->new(2**13)->blsft(1)|); is($class->blsft(2**13, 1), 2**14, qq|$class->blsft(2**13, 1)|); is($class->blsft(2**13, $class->new(1)), 2**14, qq|$class->blsft(2**13, $class->new(1))|); } ############################################################################### # Test whether operations round properly afterwards. # These tests are not complete, since they do not exercise every "return" # statement in the op's. But heh, it's better than nothing... $x = $mbf->new("123.456"); $y = $mbf->new("654.321"); $x->{accuracy} = 5; # $x->accuracy(5) would round $x straight away $y->{accuracy} = 4; # $y->accuracy(4) would round $x straight away $z = $x + $y; is($z, "777.8", q|$z = $x + $y|); $z = $y - $x; is($z, "530.9", q|$z = $y - $x|); $z = $y * $x; is($z, "80780", q|$z = $y * $x|); $z = $x ** 2; is($z, "15241", q|$z = $x ** 2|); $z = $x * $x; is($z, "15241", q|$z = $x * $x|); # not: #$z = -$x; #is($z, '-123.46'); #is($x, '123.456'); $z = $x->copy(); $z->{accuracy} = 2; $z = $z / 2; is($z, 62, q|$z = $z / 2|); $x = $mbf->new(123456); $x->{accuracy} = 4; $z = $x->copy; $z++; is($z, 123500, q|$z++|); $x = $mbi->new(123456); $y = $mbi->new(654321); $x->{accuracy} = 5; # $x->accuracy(5) would round $x straight away $y->{accuracy} = 4; # $y->accuracy(4) would round $x straight away $z = $x + $y; is($z, 777800, q|$z = $x + $y|); $z = $y - $x; is($z, 530900, q|$z = $y - $x|); $z = $y * $x; is($z, 80780000000, q|$z = $y * $x|); $z = $x ** 2; is($z, 15241000000, q|$z = $x ** 2|); # not yet: $z = -$x; # is($z, -123460, qq|$z|); # is($x, 123456, qq|$x|); $z = $x->copy; $z++; is($z, 123460, q|$z++|); $z = $x->copy(); $z->{accuracy} = 2; $z = $z / 2; is($z, 62000, q|$z = $z / 2|); $x = $mbi->new(123400); $x->{accuracy} = 4; is($x->bnot(), -123400, q|$x->bnot()|); # not -1234001 # to be consistent with other methods, babs() and bneg() also support rounding $x = $mbi->new(-123401); $x->{accuracy} = 4; is($x->babs(), 123400, q|$x->babs()|); $x = $mbi->new(-123401); $x->{accuracy} = 4; is($x->bneg(), 123400, q|$x->bneg()|); # test bdiv rounding to A and R (bug in v1.48 and maybe earlier versions) $mbf->round_mode('even'); $x = $mbf->new('740.7')->bdiv('6', 4, undef, 'zero'); is($x, '123.4', q|$x|); $x = $mbi->new('123456'); $y = $mbi->new('123456'); $y->{accuracy} = 6; is($x->bdiv($y), 1, q|$x->bdiv($y)|); is($x->{accuracy}, 6, q|$x->{accuracy}|); # carried over $x = $mbi->new('123456'); $y = $mbi->new('123456'); $x->{accuracy} = 6; is($x->bdiv($y), 1, q|$x->bdiv($y)|); is($x->{accuracy}, 6, q|$x->{accuracy}|); # carried over $x = $mbi->new('123456'); $y = $mbi->new('223456'); $y->{accuracy} = 6; is($x->bdiv($y), 0, q|$x->bdiv($y)|); is($x->{accuracy}, 6, q|$x->{accuracy}|); # carried over $x = $mbi->new('123456'); $y = $mbi->new('223456'); $x->{accuracy} = 6; is($x->bdiv($y), 0, q|$x->bdiv($y)|); is($x->{accuracy}, 6, q|$x->{accuracy}|); # carried over ############################################################################### # test that bop(0) does the same than bop(undef) $x = $mbf->new('1234567890'); is($x->copy()->bsqrt(0), $x->copy()->bsqrt(undef), q|$x->copy()->bsqrt(...)|); is($x->copy->bsqrt(0), '35136.41828644462161665823116758077037159', q|$x->copy->bsqrt(...)|); is($x->{accuracy}, undef, q|$x->{accuracy}|); # test that bsqrt() modifies $x and does not just return something else # (especially under Math::BigInt::BareCalc) $z = $x->bsqrt(); is($z, $x, q|$z = $x->bsqrt(); $z|); is($x, '35136.41828644462161665823116758077037159', q|$z = $x->bsqrt(); $x|); $x = $mbf->new('1.234567890123456789'); is($x->copy()->bpow('0.5', 0), $x->copy()->bpow('0.5', undef), q|$x->copy()->bpow(...)|); is($x->copy()->bpow('0.5', 0), $x->copy()->bsqrt(undef), q|$x->copy()->bpow(...) vs. $x->copy()->bsqrt(...)|); is($x->copy()->bpow('2', 0), '1.524157875323883675019051998750190521', q|$x->copy()->bpow('2', 0)|); ############################################################################### # test (also under Bare) that bfac() rounds at last step is($mbi->new(12)->bfac(), '479001600', q|$mbi->new(12)->bfac()|); is($mbi->new(12)->bfac(2), '480000000', q|$mbi->new(12)->bfac(2)|); $x = $mbi->new(12); $x->accuracy(2); is($x->bfac(), '480000000', qq|\$x = $mbi->new(12); \$x->accuracy(2); \$x->bfac()|); $x = $mbi->new(13); $x->accuracy(2); is($x->bfac(), '6200000000', qq|\$x = $mbi->new(13); \$x->accuracy(2); \$x->bfac()|); $x = $mbi->new(13); $x->accuracy(3); is($x->bfac(), '6230000000', qq|\$x = $mbi->new(13); \$x->accuracy(3); \$x->bfac()|); $x = $mbi->new(13); $x->accuracy(4); is($x->bfac(), '6227000000', qq|\$x = $mbi->new(13); \$x->accuracy(4); \$x->bfac()|); # this does 1, 2, 3...9, 10, 11, 12...20 $x = $mbi->new(20); $x->accuracy(1); is($x->bfac(), '2000000000000000000', qq|\$x = $mbi->new(20); \$x->accuracy(1); \$x->bfac()|); ############################################################################### # test bsqrt) rounding to given A/P/R (bug prior to v1.60) $x = $mbi->new('123456')->bsqrt(2, undef); is($x, '350', qq|\$x = $mbi->new("123456")->bsqrt(2, undef)|); # not 351 $x = $mbi->new('3')->bsqrt(2, undef); is($x->accuracy(), 2, q|$x->accuracy()|); $mbi->round_mode('even'); $x = $mbi->new('126025')->bsqrt(2, undef, '+inf'); is($x, '360', q|$x = 360|); # not 355 nor 350 $x = $mbi->new('126025')->bsqrt(undef, 2); is($x, '400', q|$x = 400|); # not 355 ############################################################################### # test mixed arguments $x = $mbf->new(10); $u = $mbf->new(2.5); $y = $mbi->new(2); $z = $x + $y; is($z, 12, q|$z = $x + $y;|); is(ref($z), $mbf, qq|\$z is a "$mbf" object|); $z = $x / $y; is($z, 5, q|$z = $x / $y;|); is(ref($z), $mbf, qq|\$z is a "$mbf" object|); $z = $u * $y; is($z, 5, q|$z = $u * $y;|); is(ref($z), $mbf, qq|\$z is a "$mbf" object|); $y = $mbi->new(12345); $z = $u->copy()->bmul($y, 2, undef, 'odd'); is($z, 31000, q|$z = 31000|); $z = $u->copy()->bmul($y, 3, undef, 'odd'); is($z, 30900, q|$z = 30900|); $z = $u->copy()->bmul($y, undef, 0, 'odd'); is($z, 30863, q|$z = 30863|); $z = $u->copy()->bmul($y, undef, 1, 'odd'); is($z, 30863, q|$z = 30863|); $z = $u->copy()->bmul($y, undef, 2, 'odd'); is($z, 30860, q|$z = 30860|); $z = $u->copy()->bmul($y, undef, 3, 'odd'); is($z, 30900, q|$z = 30900|); $z = $u->copy()->bmul($y, undef, -1, 'odd'); is($z, 30862.5, q|$z = 30862.5|); my $warn = ''; $SIG{__WARN__} = sub { $warn = shift; }; # These should no longer warn, even though '3.17' is a NaN in Math::BigInt # (>= returns now false, bug until v1.80). $warn = ''; eval '$z = 3.17 <= $y'; is($z, '', q|$z = ""|); unlike($warn, qr/^Use of uninitialized value (\$y )?(in numeric le \(<=\) |)at/, q|"$z = $y >= 3.17" gives warning as expected|); $warn = ''; eval '$z = $y >= 3.17'; is($z, '', q|$z = ""|); unlike($warn, qr/^Use of uninitialized value (\$y )?(in numeric ge \(>=\) |)at/, q|"$z = $y >= 3.17" gives warning as expected|); # XXX TODO breakage: # # $z = $y->copy()->bmul($u, 2, 0, 'odd'); # is($z, 31000); # # $z = $y * $u; # is($z, 5); # is(ref($z), $mbi, q|\$z is a $mbi object|); # # $z = $y + $x; # is($z, 12); # is(ref($z), $mbi, q|\$z is a $mbi object|); # # $z = $y / $x; # is($z, 0); # is(ref($z), $mbi, q|\$z is a $mbi object|); ############################################################################### # rounding in bdiv with fallback and already set A or P { no strict 'refs'; ${"$mbf\::accuracy"} = undef; ${"$mbf\::precision"} = undef; ${"$mbf\::div_scale"} = 40; } $x = $mbf->new(10); $x->{accuracy} = 4; is($x->bdiv(3), '3.333', q|$x->bdiv(3)|); is($x->{accuracy}, 4, q|$x->{accuracy}|); # set's it since no fallback $x = $mbf->new(10); $x->{accuracy} = 4; $y = $mbf->new(3); is($x->bdiv($y), '3.333', q|$x->bdiv($y)|); is($x->{accuracy}, 4, q|$x->{accuracy}|); # set's it since no fallback # rounding to P of x $x = $mbf->new(10); $x->{precision} = -2; is($x->bdiv(3), '3.33', q|$x->bdiv(3)|); # round in div with requested P $x = $mbf->new(10); is($x->bdiv(3, undef, -2), '3.33', q|$x->bdiv(3, undef, -2)|); # round in div with requested P greater than fallback { no strict 'refs'; ${"$mbf\::div_scale"} = 5; $x = $mbf->new(10); is($x->bdiv(3, undef, -8), "3.33333333", q|$x->bdiv(3, undef, -8) = "3.33333333"|); ${"$mbf\::div_scale"} = 40; } $x = $mbf->new(10); $y = $mbf->new(3); $y->{accuracy} = 4; is($x->bdiv($y), '3.333', q|$x->bdiv($y) = '3.333'|); is($x->{accuracy}, 4, q|$x->{accuracy} = 4|); is($y->{accuracy}, 4, q|$y->{accuracy} = 4|); # set's it since no fallback is($x->{precision}, undef, q|$x->{precision} = undef|); is($y->{precision}, undef, q|$y->{precision} = undef|); # rounding to P of y $x = $mbf->new(10); $y = $mbf->new(3); $y->{precision} = -2; is($x->bdiv($y), '3.33', q|$x->bdiv($y) = '3.33'|); is($x->{precision}, -2, q|$x->{precision} = -2|); is($y->{precision}, -2, q|$y->{precision} = -2|); is($x->{accuracy}, undef, q|$x->{accuracy} = undef|); is($y->{accuracy}, undef, q|$y->{accuracy} = undef|); ############################################################################### # test whether bround(-n) fails in MBF (undocumented in MBI) eval { $x = $mbf->new(1); $x->bround(-2); }; like($@, qr/^bround\(\) needs positive accuracy/, qq|"\$x->bround(-2)" gives warning as expected|); note("test whether rounding to higher accuracy is no-op"); $x = $mbf->new(1); $x->{accuracy} = 4; is($x, "1.000", q|$x = "1.000"|); $x->bround(6); # must be no-op is($x->{accuracy}, 4, q|$x->{accuracy} = 4|); is($x, "1.000", q|$x = "1.000"|); $x = $mbi->new(1230); $x->{accuracy} = 3; is($x, "1230", q|$x = "1230"|); $x->bround(6); # must be no-op is($x->{accuracy}, 3, q|$x->{accuracy} = 3|); is($x, "1230", q|$x = "1230"|); note("bround(n) should set accuracy"); $x->bround(2); # smaller works is($x, "1200", q|$x = "1200"|); is($x->{accuracy}, 2, q|$x->{accuracy} = 2|); # bround(-n) is undocumented and only used by MBF note("bround(-n) should set accuracy"); $x = $mbi->new(12345); $x->bround(-1); is($x, "12300", q|$x = "12300"|); is($x->{accuracy}, 4, q|$x->{accuracy} = 4|); note("bround(-n) should set accuracy"); $x = $mbi->new(12345); $x->bround(-2); is($x, "12000", q|$x = "12000"|); is($x->{accuracy}, 3, q|$x->{accuracy} = 3|); note("bround(-n) should set accuracy"); $x = $mbi->new(12345); $x->{accuracy} = 5; $x->bround(-3); is($x, "10000", q|$x = "10000"|); is($x->{accuracy}, 2, q|$x->{accuracy} = 2|); note("bround(-n) should set accuracy"); $x = $mbi->new(12345); $x->{accuracy} = 5; $x->bround(-4); is($x, "0", q|$x = "0"|); is($x->{accuracy}, 1, q|$x->{accuracy} = 1|); note("bround(-n) should be no-op if n too big"); $x = $mbi->new(12345); $x->bround(-5); is($x, "0", q|$x = "0"|); # scale to "big" => 0 is($x->{accuracy}, 0, q|$x->{accuracy} = 0|); note("bround(-n) should be no-op if n too big"); $x = $mbi->new(54321); $x->bround(-5); is($x, "100000", q|$x = "100000"|); # used by MBF to round 0.0054321 at 0.0_6_00000 is($x->{accuracy}, 0, q|$x->{accuracy} = 0|); note("bround(-n) should be no-op if n too big"); $x = $mbi->new(54321); $x->{accuracy} = 5; $x->bround(-6); is($x, "100000", q|$x = "100000"|); # no-op is($x->{accuracy}, 0, q|$x->{accuracy} = 0|); note("bround(n) should set accuracy"); $x = $mbi->new(12345); $x->{accuracy} = 5; $x->bround(5); # must be no-op is($x, "12345", q|$x = "12345"|); is($x->{accuracy}, 5, q|$x->{accuracy} = 5|); note("bround(n) should set accuracy"); $x = $mbi->new(12345); $x->{accuracy} = 5; $x->bround(6); # must be no-op is($x, "12345", q|$x = "12345"|); $x = $mbf->new("0.0061"); $x->bfround(-2); is($x, "0.01", q|$x = "0.01"|); $x = $mbf->new("0.004"); $x->bfround(-2); is($x, "0.00", q|$x = "0.00"|); $x = $mbf->new("0.005"); $x->bfround(-2); is($x, "0.00", q|$x = "0.00"|); $x = $mbf->new("12345"); $x->bfround(2); is($x, "12340", q|$x = "12340"|); $x = $mbf->new("12340"); $x->bfround(2); is($x, "12340", q|$x = "12340"|); note("MBI::bfround should clear A for negative P"); $x = $mbi->new("1234"); $x->accuracy(3); $x->bfround(-2); is($x->{accuracy}, undef, q|$x->{accuracy} = undef|); note("test that bfround() and bround() work with large numbers"); $x = $mbf->new(1)->bdiv(5678, undef, -63); is($x, "0.000176118351532229658330398027474462839027826699542092286016203", q|$x = "0.000176118351532229658330398027474462839027826699542092286016203"|); $x = $mbf->new(1)->bdiv(5678, undef, -90); is($x, "0.00017611835153222965833039802747446283902782" . "6699542092286016202888340965128566396618527651", q|$x = "0.00017611835153222965833039802747446283902782| . q|6699542092286016202888340965128566396618527651"|); $x = $mbf->new(1)->bdiv(5678, 80); is($x, "0.00017611835153222965833039802747446283902782" . "669954209228601620288834096512856639662", q|$x = "0.00017611835153222965833039802747446283902782| . q|669954209228601620288834096512856639662"|); ############################################################################### note("rounding with already set precision/accuracy"); $x = $mbf->new(1); $x->{precision} = -5; is($x, "1.00000", q|$x = "1.00000"|); note("further rounding down"); is($x->bfround(-2), "1.00", q|$x->bfround(-2) = "1.00"|); is($x->{precision}, -2, q|$x->{precision} = -2|); $x = $mbf->new(12345); $x->{accuracy} = 5; is($x->bround(2), "12000", q|$x->bround(2) = "12000"|); is($x->{accuracy}, 2, q|$x->{accuracy} = 2|); $x = $mbf->new("1.2345"); $x->{accuracy} = 5; is($x->bround(2), "1.2", q|$x->bround(2) = "1.2"|); is($x->{accuracy}, 2, q|$x->{accuracy} = 2|); note("mantissa/exponent format and A/P"); $x = $mbf->new("12345.678"); $x->accuracy(4); is($x, "12350", q|$x = "12350"|); is($x->{accuracy}, 4, q|$x->{accuracy} = 4|); is($x->{precision}, undef, q|$x->{precision} = undef|); #is($x->{_m}->{accuracy}, undef, q|$x->{_m}->{accuracy} = undef|); #is($x->{_e}->{accuracy}, undef, q|$x->{_e}->{accuracy} = undef|); #is($x->{_m}->{precision}, undef, q|$x->{_m}->{precision} = undef|); #is($x->{_e}->{precision}, undef, q|$x->{_e}->{precision} = undef|); note("check for no A/P in case of fallback result"); $x = $mbf->new(100) / 3; is($x->{accuracy}, undef, q|$x->{accuracy} = undef|); is($x->{precision}, undef, q|$x->{precision} = undef|); note("result & remainder"); $x = $mbf->new(100) / 3; ($x, $y) = $x->bdiv(3); is($x->{accuracy}, undef, q|$x->{accuracy} = undef|); is($x->{precision}, undef, q|$x->{precision} = undef|); is($y->{accuracy}, undef, q|$y->{accuracy} = undef|); is($y->{precision}, undef, q|$y->{precision} = undef|); ############################################################################### # math with two numbers with different A and P $x = $mbf->new(12345); $x->accuracy(4); # "12340" $y = $mbf->new(12345); $y->accuracy(2); # "12000" is($x+$y, 24000, q|$x+$y = 24000|); # 12340+12000=> 24340 => 24000 $x = $mbf->new(54321); $x->accuracy(4); # "12340" $y = $mbf->new(12345); $y->accuracy(3); # "12000" is($x-$y, 42000, q|$x-$y = 42000|); # 54320+12300=> 42020 => 42000 $x = $mbf->new("1.2345"); $x->precision(-2); # "1.23" $y = $mbf->new("1.2345"); $y->precision(-4); # "1.2345" is($x+$y, "2.46", q|$x+$y = "2.46"|); # 1.2345+1.2300=> 2.4645 => 2.46 ############################################################################### # round should find and use proper class #$x = Foo->new(); #is($x->round($Foo::accuracy), "a" x $Foo::accuracy); #is($x->round(undef, $Foo::precision), "p" x $Foo::precision); #is($x->bfround($Foo::precision), "p" x $Foo::precision); #is($x->bround($Foo::accuracy), "a" x $Foo::accuracy); ############################################################################### # find out whether _find_round_parameters is doing what's it's supposed to do { no strict 'refs'; ${"$mbi\::accuracy"} = undef; ${"$mbi\::precision"} = undef; ${"$mbi\::div_scale"} = 40; ${"$mbi\::round_mode"} = 'odd'; } $x = $mbi->new(123); my @params = $x->_find_round_parameters(); is(scalar(@params), 1, q|scalar(@params) = 1|); # nothing to round @params = $x->_find_round_parameters(1); is(scalar(@params), 4, q|scalar(@params) = 4|); # a=1 is($params[0], $x, q|$params[0] = $x|); # self is($params[1], 1, q|$params[1] = 1|); # a is($params[2], undef, q|$params[2] = undef|); # p is($params[3], "odd", q|$params[3] = "odd"|); # round_mode @params = $x->_find_round_parameters(undef, 2); is(scalar(@params), 4, q|scalar(@params) = 4|); # p=2 is($params[0], $x, q|$params[0] = $x|); # self is($params[1], undef, q|$params[1] = undef|); # a is($params[2], 2, q|$params[2] = 2|); # p is($params[3], "odd", q|$params[3] = "odd"|); # round_mode eval { @params = $x->_find_round_parameters(undef, 2, "foo"); }; like($@, qr/^Unknown round mode 'foo'/, q|round mode "foo" gives a warning as expected|); @params = $x->_find_round_parameters(undef, 2, "+inf"); is(scalar(@params), 4, q|scalar(@params) = 4|); # p=2 is($params[0], $x, q|$params[0] = $x|); # self is($params[1], undef, q|$params[1] = undef|); # a is($params[2], 2, q|$params[2] = 2|); # p is($params[3], "+inf", q|$params[3] = "+inf"|); # round_mode @params = $x->_find_round_parameters(2, -2, "+inf"); is(scalar(@params), 1, q|scalar(@params) = 1|); # error, A and P defined is($params[0], $x, q|$params[0] = $x|); # self { no strict 'refs'; ${"$mbi\::accuracy"} = 1; @params = $x->_find_round_parameters(undef, -2); is(scalar(@params), 1, q|scalar(@params) = 1|); # error, A and P defined is($params[0], $x, q|$params[0] = $x|); # self is($x->is_nan(), 1, q|$x->is_nan() = 1|); # and must be NaN ${"$mbi\::accuracy"} = undef; ${"$mbi\::precision"} = 1; @params = $x->_find_round_parameters(1, undef); is(scalar(@params), 1, q|scalar(@params) = 1|); # error, A and P defined is($params[0], $x, q|$params[0] = $x|); # self is($x->is_nan(), 1, q|$x->is_nan() = 1|); # and must be NaN ${"$mbi\::precision"} = undef; # reset } ############################################################################### # test whether bone/bzero take additional A & P, or reset it etc foreach my $class ($mbi, $mbf) { $x = $class->new(2)->bzero(); is($x->{accuracy}, undef, qq|\$x = $class->new(2)->bzero(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2)->bzero(); \$x->{precision}|); $x = $class->new(2)->bone(); is($x->{accuracy}, undef, qq|\$x = $class->new(2)->bone(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2)->bone(); \$x->{precision}|); $x = $class->new(2)->binf(); is($x->{accuracy}, undef, qq|\$x = $class->new(2)->binf(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2)->binf(); \$x->{precision}|); $x = $class->new(2)->bnan(); is($x->{accuracy}, undef, qq|\$x = $class->new(2)->bnan(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2)->bnan(); \$x->{precision}|); note "Verify that bnan() does not delete/undefine accuracy and precision."; $x = $class->new(2); $x->{accuracy} = 1; $x->bnan(); is($x->{accuracy}, 1, qq|\$x = $class->new(2); \$x->{accuracy} = 1; \$x->bnan(); \$x->{accuracy}|); $x = $class->new(2); $x->{precision} = 1; $x->bnan(); is($x->{precision}, 1, qq|\$x = $class->new(2); \$x->{precision} = 1; \$x->bnan(); \$x->{precision}|); note "Verify that binf() does not delete/undefine accuracy and precision."; $x = $class->new(2); $x->{accuracy} = 1; $x->binf(); is($x->{accuracy}, 1, qq|\$x = $class->new(2); \$x->{accuracy} = 1; \$x->binf(); \$x->{accuracy}|); $x = $class->new(2); $x->{precision} = 1; $x->binf(); is($x->{precision}, 1, qq|\$x = $class->new(2); \$x->{precision} = 1; \$x->binf(); \$x->{precision}|); note "Verify that accuracy can be set as argument to new()."; $x = $class->new(2, 1); is($x->{accuracy}, 1, qq|\$x = $class->new(2, 1); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2, 1); \$x->{precision}|); note "Verify that precision can be set as argument to new()."; $x = $class->new(2, undef, 1); is($x->{accuracy}, undef, qq|\$x = $class->new(2, undef, 1); \$x->{accuracy}|); is($x->{precision}, 1, qq|\$x = $class->new(2, undef, 1); \$x->{precision}|); note "Verify that accuracy set with new() is preserved after calling bzero()."; $x = $class->new(2, 1)->bzero(); is($x->{accuracy}, 1, qq|\$x = $class->new(2, 1)->bzero(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2, 1)->bzero(); \$x->{precision}|); note "Verify that precision set with new() is preserved after calling bzero()."; $x = $class->new(2, undef, 1)->bzero(); is($x->{accuracy}, undef, qq|\$x = $class->new(2, undef, 1)->bzero(); \$x->{accuracy}|); is($x->{precision}, 1, qq|\$x = $class->new(2, undef, 1)->bzero(); \$x->{precision}|); note "Verify that accuracy set with new() is preserved after calling bone()."; $x = $class->new(2, 1)->bone(); is($x->{accuracy}, 1, qq|\$x = $class->new(2, 1)->bone(); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2, 1)->bone(); \$x->{precision}|); note "Verify that precision set with new() is preserved after calling bone()."; $x = $class->new(2, undef, 1)->bone(); is($x->{accuracy}, undef, qq|\$x = $class->new(2, undef, 1)->bone(); \$x->{accuracy}|); is($x->{precision}, 1, qq|\$x = $class->new(2, undef, 1)->bone(); \$x->{precision}|); note "Verify that accuracy can be set with instance method bone('+')."; $x = $class->new(2); $x->bone('+', 2, undef); is($x->{accuracy}, 2, qq|\$x = $class->new(2); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2); \$x->{precision}|); note "Verify that precision can be set with instance method bone('+')."; $x = $class->new(2); $x->bone('+', undef, 2); is($x->{accuracy}, undef, qq|\$x = $class->new(2); \$x->bone('+', undef, 2); \$x->{accuracy}|); is($x->{precision}, 2, qq|\$x = $class->new(2); \$x->bone('+', undef, 2); \$x->{precision}|); note "Verify that accuracy can be set with instance method bone('-')."; $x = $class->new(2); $x->bone('-', 2, undef); is($x->{accuracy}, 2, qq|\$x = $class->new(2); \$x->bone('-', 2, undef); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2); \$x->bone('-', 2, undef); \$x->{precision}|); note "Verify that precision can be set with instance method bone('-')."; $x = $class->new(2); $x->bone('-', undef, 2); is($x->{accuracy}, undef, qq|\$x = $class->new(2); \$x->bone('-', undef, 2); \$x->{accuracy}|); is($x->{precision}, 2, qq|\$x = $class->new(2); \$x->bone('-', undef, 2); \$x->{precision}|); note "Verify that accuracy can be set with instance method bzero()."; $x = $class->new(2); $x->bzero(2, undef); is($x->{accuracy}, 2, qq|\$x = $class->new(2);\$x->bzero(2, undef); \$x->{accuracy}|); is($x->{precision}, undef, qq|\$x = $class->new(2);\$x->bzero(2, undef); \$x->{precision}|); note "Verify that precision can be set with instance method bzero()."; $x = $class->new(2); $x->bzero(undef, 2); is($x->{accuracy}, undef, qq|\$x = $class->new(2); \$x->bzero(undef, 2); \$x->{accuracy}|); is($x->{precision}, 2, qq|\$x = $class->new(2); \$x->bzero(undef, 2); \$x->{precision}|); } ############################################################################### # test whether bone/bzero honour class variables for my $class ($mbi, $mbf) { note "Verify that class accuracy is copied into new objects."; $class->accuracy(3); # set $x = $class->bzero(); is($x->accuracy(), 3, qq|$class->accuracy(3); \$x = $class->bzero(); \$x->accuracy()|); $x = $class->bone(); is($x->accuracy(), 3, qq|$class->accuracy(3); \$x = $class->bone(); \$x->accuracy()|); $x = $class->new(2); is($x->accuracy(), 3, qq|$class->accuracy(3); \$x = $class->new(2); \$x->accuracy()|); $class->accuracy(undef); # reset note "Verify that class precision is copied into new objects."; $class->precision(-4); # set $x = $class->bzero(); is($x->precision(), -4, qq|$class->precision(-4); \$x = $class->bzero(); \$x->precision()|); $x = $class->bone(); is($x->precision(), -4, qq|$class->precision(-4); \$x = $class->bone(); \$x->precision()|); $x = $class->new(2); is($x->precision(), -4, qq|$class->precision(-4); \$x = $class->new(2); \$x->precision()|); $class->precision(undef); # reset note "Verify that setting accuracy as method argument overrides class variable"; $class->accuracy(2); # set $x = $class->bzero(5); is($x->accuracy(), 5, qq|$class->accuracy(2); \$x = $class->bzero(5); \$x->accuracy()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->bzero(undef); is($x->accuracy(), undef, qq|$class->accuracy(2); \$x = $class->bzero(undef); \$x->accuracy()|); } $x = $class->bone("+", 5); is($x->accuracy(), 5, qq|$class->accuracy(2); \$x = $class->bone("+", 5); \$x->accuracy()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->bone("+", undef); is($x->accuracy(), undef, qq|$class->accuracy(2); \$x = $class->bone("+", undef); \$x->accuracy()|); } $x = $class->new(2, 5); is($x->accuracy(), 5, qq|$class->accuracy(2); \$x = $class->new(2, 5); \$x->accuracy()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->new(2, undef); is($x->accuracy(), undef, qq|$class->accuracy(2); \$x = $class->new(2, undef); \$x->accuracy()|); } $class->accuracy(undef); # reset note "Verify that setting precision as method argument overrides class variable"; $class->precision(-2); # set $x = $class->bzero(undef, -6); is($x->precision(), -6, qq|$class->precision(-2); \$x = $class->bzero(undef, -6); \$x->precision()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->bzero(undef, undef); is($x->precision(), undef, qq|$class->precision(-2); \$x = $class->bzero(undef, undef); \$x->precision()|); } $x = $class->bone("+", undef, -6); is($x->precision(), -6, qq|$class->precision(-2); \$x = $class->bone("+", undef, -6); \$x->precision()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->bone("+", undef, undef); is($x->precision(), undef, qq|$class->precision(-2); \$x = $class->bone("+", undef, undef); \$x->precision()|); } $x = $class->new(2, undef, -6); is($x->precision(), -6, qq|$class->precision(-2); \$x = $class->new(2, undef, -6); \$x->precision()|); SKIP: { skip 1, "this won't work until we have a better OO implementation"; $x = $class->new(2, undef, undef); is($x->precision(), undef, qq|$class->precision(-2); \$x = $class->new(2, undef, undef); \$x->precision()|); } $class->precision(undef); # reset } ############################################################################### # check whether mixing A and P creates a NaN # new with set accuracy/precision and with parameters { no strict 'refs'; foreach my $class ($mbi, $mbf) { is($class->new(123, 4, -3), 'NaN', # with parameters "mixing A and P creates a NaN"); ${"$class\::accuracy"} = 42; ${"$class\::precision"} = 2; is($class->new(123), "NaN", # with globals q|$class->new(123) = "NaN"|); ${"$class\::accuracy"} = undef; ${"$class\::precision"} = undef; } } # binary ops foreach my $class ($mbi, $mbf) { #foreach (qw/add sub mul div pow mod/) { foreach my $method (qw/add sub mul pow mod/) { my $try = "my \$x = $class->new(1234); \$x->accuracy(5);"; $try .= " my \$y = $class->new(12); \$y->precision(-3);"; $try .= " \$x->b$method(\$y);"; $rc = eval $try; is($rc, "NaN", $try); } } # unary ops foreach my $method (qw/new bsqrt/) { my $try = "my \$x = $mbi->$method(1234, 5, -3);"; $rc = eval $try; is($rc, "NaN", $try); } # see if $x->bsub(0) and $x->badd(0) really round foreach my $class ($mbi, $mbf) { $x = $class->new(123); $class->accuracy(2); $x->bsub(0); is($x, 120, q|$x = 120|); $class->accuracy(undef); # reset $x = $class->new(123); $class->accuracy(2); $x->badd(0); is($x, 120, q|$x = 120|); $class->accuracy(undef); # reset } ############################################################################### # test whether shortcuts returning zero/one preserve A and P my ($got, $f, $a, $p, $xp, $yp, $xa, $ya, $try, $want, @args); my $LIB = Math::BigInt->config('lib'); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $f = $_; # function next; } @args = split(/:/, $_); my $want = pop(@args); ($x, $xa, $xp) = split (/,/, $args[0]); $xa = $xa || ''; $xp = $xp || ''; $try = qq|\$x = $mbi->new("$x");|; $try .= qq| \$x->accuracy($xa);| if $xa ne ''; $try .= qq| \$x->precision($xp);| if $xp ne ''; ($y, $ya, $yp) = split (/,/, $args[1]); $ya = $ya || ''; $yp = $yp || ''; $try .= qq| \$y = $mbi->new("$y");|; $try .= qq| \$y->accuracy($ya);| if $ya ne ''; $try .= qq| \$y->precision($yp);| if $yp ne ''; $try .= ' $x->' . $f . '($y);'; # print "trying $try\n"; $rc = eval $try; print "# Error: $@\n" if $@; # convert hex/binary targets to decimal if ($want =~ /^(0x0x|0b0b)/) { $want =~ s/^0[xb]//; $want = $mbi->new($want)->bstr(); } is($rc, $want, $try); # check internal state of number objects is_valid($rc, $f) if ref $rc; # now check whether A and P are set correctly # only one of $a or $p will be set (no crossing here) $a = $xa || $ya; $p = $xp || $yp; # print "Check a=$a p=$p\n"; # print "# Tried: '$try'\n"; if ($a ne '') { unless (is($x->{accuracy}, $a, qq|\$x->{accuracy} == $a|) && is($x->{precision}, undef, qq|\$x->{precision} is undef|)) { print "# Check: A = $a and P = undef\n"; print "# Tried: $try\n"; } } if ($p ne '') { unless (is($x->{precision}, $p, qq|\$x->{precision} == $p|) && is($x->{accuracy}, undef, qq|\$x->{accuracy} is undef|)) { print "# Check: A = undef and P = $p\n"; print "# Tried: $try\n"; } } } # all done 1; ############################################################################### # sub to check validity of a Math::BigInt object internally, to ensure that no # op leaves a number object in an invalid state (f.i. "-0") sub is_valid { my ($x, $f) = @_; my $e = 0; # error? # ok as reference? $e = 'Not a reference' if !ref($x); # has ok sign? $e = qq|Illegal sign $x->{sign}| . q| (expected: "+", "-", "-inf", "+inf" or "NaN")| if $e eq '0' && $x->{sign} !~ /^(\+|-|\+inf|-inf|NaN)$/; $e = "-0 is invalid!" if $e ne '0' && $x->{sign} eq '-' && $x == 0; $e = $LIB->_check($x->{value}) if $e eq '0'; # test done, see if error did crop up if ($e eq '0') { pass('is a valid object'); return; } fail($e . qq| after op "$f"|); } # format is: # x,A,P:x,A,P:result # 123,,3 means 123 with precision 3 (A is undef) # the A or P of the result is calculated automatically __DATA__ &badd 123,,:123,,:246 123,3,:0,,:123 123,,-3:0,,:123 123,,:0,3,:123 123,,:0,,-3:123 &bmul 123,,:1,,:123 123,3,:0,,:0 123,,-3:0,,:0 123,,:0,3,:0 123,,:0,,-3:0 123,3,:1,,:123 123,,-3:1,,:123 123,,:1,3,:123 123,,:1,,-3:123 1,3,:123,,:123 1,,-3:123,,:123 1,,:123,3,:123 1,,:123,,-3:123 &bdiv 123,,:1,,:123 123,4,:1,,:123 123,,:1,4,:123 123,,:1,,-4:123 123,,-4:1,,:123 1,4,:123,,:0 1,,:123,4,:0 1,,:123,,-4:0 1,,-4:123,,:0 &band 1,,:3,,:1 1234,1,:0,,:0 1234,,:0,1,:0 1234,,-1:0,,:0 1234,,:0,,-1:0 0xFF,,:0x10,,:0x0x10 0xFF,2,:0xFF,,:250 0xFF,,:0xFF,2,:250 0xFF,,1:0xFF,,:250 0xFF,,:0xFF,,1:250 &bxor 1,,:3,,:2 1234,1,:0,,:1000 1234,,:0,1,:1000 1234,,3:0,,:1000 1234,,:0,,3:1000 0xFF,,:0x10,,:239 # 250 ^ 255 => 5 0xFF,2,:0xFF,,:5 0xFF,,:0xFF,2,:5 0xFF,,1:0xFF,,:5 0xFF,,:0xFF,,1:5 # 250 ^ 4095 = 3845 => 3800 0xFF,2,:0xFFF,,:3800 # 255 ^ 4100 = 4347 => 4300 0xFF,,:0xFFF,2,:4300 0xFF,,2:0xFFF,,:3800 # 255 ^ 4100 = 10fb => 4347 => 4300 0xFF,,:0xFFF,,2:4300 &bior 1,,:3,,:3 1234,1,:0,,:1000 1234,,:0,1,:1000 1234,,3:0,,:1000 1234,,:0,,3:1000 0xFF,,:0x10,,:0x0xFF # FF | FA = FF => 250 250,2,:0xFF,,:250 0xFF,,:250,2,:250 0xFF,,1:0xFF,,:250 0xFF,,:0xFF,,1:250 &bpow 2,,:3,,:8 2,,:0,,:1 2,2,:0,,:1 2,,:0,2,:1 Math-BigInt-2.005003/t/mbimbf.t0000644403072340010010000001020514750142746015630 0ustar OSPJADomain Users# -*- mode: perl; -*- # test rounding, accuracy, precision and fallback, round_mode and mixing # of classes use strict; use warnings; use Test::More tests => 712 # tests in require'd file + 52; # tests in this file use Math::BigInt only => 'Calc'; use Math::BigFloat; our $mbi = 'Math::BigInt'; our $mbf = 'Math::BigFloat'; require './t/mbimbf.inc'; # some tests that won't work with subclasses, since the things are only # guaranteed in the Math::Big(Int|Float) (unless subclass chooses to support # this) Math::BigInt->round_mode("even"); # reset for tests Math::BigFloat->round_mode("even"); # reset for tests is($Math::BigInt::rnd_mode, "even", '$Math::BigInt::rnd_mode = "even"'); is($Math::BigFloat::rnd_mode, "even", '$Math::BigFloat::rnd_mode = "even"'); my $x = eval '$mbi->round_mode("huhmbi");'; like($@, qr/^Unknown round mode 'huhmbi' at/, '$mbi->round_mode("huhmbi")'); $x = eval '$mbf->round_mode("huhmbf");'; like($@, qr/^Unknown round mode 'huhmbf' at/, '$mbf->round_mode("huhmbf")'); # old way (now with test for validity) $x = eval '$Math::BigInt::rnd_mode = "huhmbi";'; like($@, qr/^Unknown round mode 'huhmbi' at/, '$Math::BigInt::rnd_mode = "huhmbi"'); $x = eval '$Math::BigFloat::rnd_mode = "huhmbf";'; like($@, qr/^Unknown round mode 'huhmbf' at/, '$Math::BigFloat::rnd_mode = "huhmbf"'); # see if accessor also changes old variable $mbi->round_mode('odd'); is($Math::BigInt::rnd_mode, 'odd', '$Math::BigInt::rnd_mode = "odd"'); $mbf->round_mode('odd'); is($Math::BigInt::rnd_mode, 'odd', '$Math::BigInt::rnd_mode = "odd"'); foreach my $class (qw/Math::BigInt Math::BigFloat/) { is($class->accuracy(5), 5, "set A ..."); is($class->precision(), undef, "... and now P must be cleared"); is($class->precision(5), 5, "set P ..."); is($class->accuracy(), undef, "... and now A must be cleared"); } foreach my $class (qw/Math::BigInt Math::BigFloat/) { my $x; # Accuracy # set and check the class accuracy $class->accuracy(1); is($class->accuracy(), 1, "$class has A of 1"); # a new instance gets the class accuracy $x = $class->new(123); is($x->accuracy(), 1, '$x has A of 1'); # set and check the instance accuracy $x->accuracy(2); is($x->accuracy(), 2, '$x has A of 2'); # change the class accuracy $class->accuracy(3); is($class->accuracy(), 3, "$class has A of 3"); # verify that the instance accuracy hasn't changed is($x->accuracy(), 2, '$x still has A of 2'); # change the instance accuracy $x->accuracy(undef); is($x->accuracy(), undef, '$x now has A of undef'); # check the class accuracy is($class->accuracy(), 3, "$class still has A of 3"); # change the class accuracy again $class->accuracy(undef); is($class->accuracy(), undef, "$class now has A of undef"); # Precision # set and check the class precision $class->precision(1); is($class->precision(), 1, "$class has A of 1"); # a new instance gets the class precision $x = $class->new(123); is($x->precision(), 1, '$x has A of 1'); # set and check the instance precision $x->precision(2); is($x->precision(), 2, '$x has A of 2'); # change the class precision $class->precision(3); is($class->precision(), 3, "$class has A of 3"); # verify that the instance precision hasn't changed is($x->precision(), 2, '$x still has A of 2'); # change the instance precision $x->precision(undef); is($x->precision(), undef, '$x now has A of undef'); # check the class precision is($class->precision(), 3, "$class still has A of 3"); # change the class precision again $class->precision(undef); is($class->precision(), undef, "$class now has A of undef"); } # bug with blog(Math::BigFloat, Math::BigInt) $x = Math::BigFloat->new(100); $x = $x->blog(Math::BigInt->new(10)); is($x, 2, 'bug with blog(Math::BigFloat, Math::BigInt)'); # bug until v1.88 for sqrt() with enough digits for my $i (80, 88, 100) { $x = Math::BigFloat->new("1." . ("0" x $i) . "1"); $x = $x->bsqrt; is($x, 1, '$x->bsqrt() with many digits'); } Math-BigInt-2.005003/t/mbi_ali.t0000644403072340010010000000030614536617516015775 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that the new alias names work use strict; use warnings; use Test::More tests => 6; use Math::BigInt; our $CLASS; $CLASS = 'Math::BigInt'; require './t/alias.inc'; Math-BigInt-2.005003/t/mbi_rand.t0000644403072340010010000000564314536617516016165 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; my $count = 128; plan(($^O eq 'os390') ? (skip_all => 'takes too long on os390') : (tests => $count*4)); use Math::BigInt only => 'Calc'; my $length = 128; # If you get a failure here, please re-run the test with the printed seed # value as input "perl t/mbi_rand.t seed" and send me the output my $seed = @ARGV == 1 ? $ARGV[0] : int(rand(1165537)); #diag(" seed: $seed\n"); srand($seed); my $_base_len; my @_base_len; #diag(" lib: ", Math::BigInt->config('lib')); if (Math::BigInt->config('lib') =~ /::Calc/) { $_base_len = Math::BigInt::Calc->_base_len(); @_base_len = Math::BigInt::Calc->_base_len(); #diag("base len: $_base_len (scalar context)"); #diag("base len: @_base_len (list contex)"); } my ($A, $B, $A_str, $B_str, $AdivB, $AmodB, $A_len, $B_len); my $two = Math::BigInt->new(2); for (my $i = 0; $i < $count; $i++) { #diag(""); # length of A and B $A_len = int(rand($length) + 1); $B_len = int(rand($length) + 1); $A_str = ''; $B_str = ''; # We create the numbers from "patterns", e.g. get a random number and a # random count and string them together. This means things like # "100000999999999999911122222222" are much more likely. If we just strung # together digits, we would end up with "1272398823211223" etc. It also # means that we get more frequently equal numbers or other special cases. while (length($A_str) < $A_len) { $A_str .= int(rand(100)) x int(rand(16)); } while (length($B_str) < $B_len) { $B_str .= int(rand(100)) x int(rand(16)); } $A_str =~ s/^0+(?=\d)//; $B_str =~ s/^0+(?=\d)//; #diag(" As: $A_str"); #diag(" Bs: $B_str"); $A = Math::BigInt->new($A_str); $B = Math::BigInt->new($B_str); #diag(" A: $A"); #diag(" B: $B"); SKIP: { skip '$A and/or $B are zero.', 4 if $A->is_zero() || $B->is_zero(); # check that int(A / B) * B + A % B == A holds for all inputs # $X = ($A / $B) * $B + 2 * ($A % $B) - ($A % $B); ($AdivB, $AmodB) = $A->copy()->bdiv($B); #diag(" A / B: $AdivB"); #diag(" A % B: $AmodB"); is($AdivB * $B + $two * $AmodB - $AmodB, $A_str, "AdivB * B + 2 * AmodB - AmodB == A"); if (is($AdivB * $B / $B, $AdivB, "AdivB * B / B == AdivB")) { if (Math::BigInt->config('lib') =~ /::Calc/) { #diag("AdivB->[-1]: ", $AdivB->{value}->[-1]); #diag(" B->[-1]: ", $B->{value}->[-1]); } } # swap 'em and try this, too # $X = ($B/$A)*$A + $B % $A; ($AdivB, $AmodB) = $B->copy()->bdiv($A); # print "check: $AdivB $AmodB"; is($AdivB * $A + $two * $AmodB - $AmodB, $B_str, "AdivB * A + 2 * AmodB - AmodB == B"); is($AdivB * $A / $A, $AdivB, "AdivB * A / A == AdivB"); } } Math-BigInt-2.005003/t/mbr_ali.t0000644403072340010010000000030614546553333016003 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that the new alias names work use strict; use warnings; use Test::More tests => 6; use Math::BigRat; our $CLASS; $CLASS = 'Math::BigRat'; require './t/alias.inc'; Math-BigInt-2.005003/t/nan_cmp.t0000644403072340010010000000215514536617516016020 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that overloaded compare works when NaN are involved use strict; use warnings; use Test::More tests => 26; use Math::BigInt; use Math::BigFloat; compare('Math::BigInt'); compare('Math::BigFloat'); sub compare { my $class = shift; my $nan = $class->bnan(); my $one = $class->bone(); is($one, $one, "$class->bone() == $class->bone()"); is($one != $nan, 1, "$class->bone() != $class->bnan()"); is($nan != $one, 1, "$class->bnan() != $class->bone()"); is($nan != $nan, 1, "$class->bnan() != $class->bnan()"); is($nan == $one, '', "$class->bnan() == $class->bone()"); is($one == $nan, '', "$class->bone() == $class->bnan()"); is($nan == $nan, '', "$class->bnan() == $class->bnan()"); is($nan <= $one, '', "$class->bnan() <= $class->bone()"); is($one <= $nan, '', "$class->bone() <= $class->bnan()"); is($nan <= $nan, '', "$class->bnan() <= $class->bnan()"); is($nan >= $one, '', "$class->bnan() >= $class->bone()"); is($one >= $nan, '', "$class->bone() >= $class->bnan()"); is($nan >= $nan, '', "$class->bnan() >= $class->bnan()"); } Math-BigInt-2.005003/t/new_overloaded.t0000644403072340010010000000165114536617516017402 0ustar OSPJADomain Users# -*- mode: perl; -*- # Math::BigFloat->new had a bug where it would assume any object is a # Math::BigInt which broke overloaded non-Math::BigInt objects. use strict; use warnings; use Test::More tests => 4; ############################################################################## package Overloaded::Num; use overload '0+' => sub { ${$_[0]} }, fallback => 1; sub new { my ($class, $num) = @_; return bless \$num, $class; } package main; use Math::BigFloat; my $overloaded_num = Overloaded::Num->new(2.23); is($overloaded_num, 2.23, 'Overloaded::Num->new(2.23)'); my $bigfloat = Math::BigFloat->new($overloaded_num); is($bigfloat, 2.23, 'Math::BigFloat->new() accepts overloaded numbers'); my $bigint = Math::BigInt->new(Overloaded::Num->new(3)); is($bigint, 3, 'Math::BigInt->new() accepts overloaded numbers'); is(Math::BigFloat->new($bigint), 3, 'Math::BigFloat->new() accepts a Math::BigInt'); Math-BigInt-2.005003/t/round.t0000644403072340010010000000547414536617516015543 0ustar OSPJADomain Users# -*- mode: perl; -*- # test rounding with non-integer A and P parameters use strict; use warnings; use Test::More tests => 95; use Math::BigFloat; my $mbf = 'Math::BigFloat'; #my $mbi = 'Math::BigInt'; my $x = $mbf->new('123456.123456'); # unary ops with A _do_a($x, 'round', 3, '123000'); _do_a($x, 'bfround', 3, '123500'); _do_a($x, 'bfround', 2, '123460'); _do_a($x, 'bfround', -2, '123456.12'); _do_a($x, 'bfround', -3, '123456.123'); _do_a($x, 'bround', 4, '123500'); _do_a($x, 'bround', 3, '123000'); _do_a($x, 'bround', 2, '120000'); _do_a($x, 'bsqrt', 4, '351.4'); _do_a($x, 'bsqrt', 3, '351'); _do_a($x, 'bsqrt', 2, '350'); # setting P _do_p($x, 'bsqrt', 2, '350'); _do_p($x, 'bsqrt', -2, '351.36'); # binary ops _do_2_a($x, 'bdiv', 2, 6, '61728.1'); _do_2_a($x, 'bdiv', 2, 4, '61730'); _do_2_a($x, 'bdiv', 2, 3, '61700'); _do_2_p($x, 'bdiv', 2, -6, '61728.061728'); _do_2_p($x, 'bdiv', 2, -4, '61728.0617'); _do_2_p($x, 'bdiv', 2, -3, '61728.062'); # all tests done ############################################################################# sub _do_a { my ($x, $method, $A, $result) = @_; is($x->copy->$method($A), $result, "$method($A)"); is($x->copy->$method($A.'.1'), $result, "$method(${A}.1)"); is($x->copy->$method($A.'.5'), $result, "$method(${A}.5)"); is($x->copy->$method($A.'.6'), $result, "$method(${A}.6)"); is($x->copy->$method($A.'.9'), $result, "$method(${A}.9)"); } sub _do_p { my ($x, $method, $P, $result) = @_; is($x->copy->$method(undef, $P), $result, "$method(undef, $P)"); is($x->copy->$method(undef, $P.'.1'), $result, "$method(undef, ${P}.1)"); is($x->copy->$method(undef, $P.'.5'), $result, "$method(undef.${P}.5)"); is($x->copy->$method(undef, $P.'.6'), $result, "$method(undef, ${P}.6)"); is($x->copy->$method(undef, $P.'.9'), $result, "$method(undef, ${P}.9)"); } sub _do_2_a { my ($x, $method, $y, $A, $result) = @_; my $cy = $mbf->new($y); is($x->copy->$method($cy, $A), $result, "$method($cy, $A)"); is($x->copy->$method($cy, $A.'.1'), $result, "$method($cy, ${A}.1)"); is($x->copy->$method($cy, $A.'.5'), $result, "$method($cy, ${A}.5)"); is($x->copy->$method($cy, $A.'.6'), $result, "$method($cy, ${A}.6)"); is($x->copy->$method($cy, $A.'.9'), $result, "$method($cy, ${A}.9)"); } sub _do_2_p { my ($x, $method, $y, $P, $result) = @_; my $cy = $mbf->new($y); is($x->copy->$method($cy, undef, $P), $result, "$method(undef, $P)"); is($x->copy->$method($cy, undef, $P.'.1'), $result, "$method($cy, undef, ${P}.1)"); is($x->copy->$method($cy, undef, $P.'.5'), $result, "$method($cy, undef, ${P}.5)"); is($x->copy->$method($cy, undef, $P.'.6'), $result, "$method($cy, undef, ${P}.6)"); is($x->copy->$method($cy, undef, $P.'.9'), $result, "$method($cy, undef, ${P}.9)"); } Math-BigInt-2.005003/t/rt-16221.t0000644403072340010010000000312614536617516015502 0ustar OSPJADomain Users# -*- mode: perl; -*- # # Verify that # - Math::BigInt::objectify() calls as_int() (or as_number(), as a fallback) # if the target object class is Math::BigInt. # - Math::BigInt::objectify() calls as_float() if the target object class is # Math::BigFloat. # # See RT #16221 and RT #52124. use strict; use warnings; package main; use Test::More tests => 2; use Math::BigInt; use Math::BigFloat; ############################################################################ my $int = Math::BigInt->new(10); my $int_percent = My::Percent::Float->new(100); is($int * $int_percent, 10, '$int * $int_percent = 10'); ############################################################################ my $float = Math::BigFloat->new(10); my $float_percent = My::Percent::Float->new(100); is($float * $float_percent, 10, '$float * $float_percent = 10'); ############################################################################ package My::Percent::Int; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_number { my $self = shift; return Math::BigInt->new($$self / 100); } sub as_string { my $self = shift; return $$self; } ############################################################################ package My::Percent::Float; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_int { my $self = shift; return Math::BigInt->new($$self / 100); } sub as_float { my $self = shift; return Math::BigFloat->new($$self / 100); } sub as_string { my $self = shift; return $$self; } Math-BigInt-2.005003/t/rt121139.t0000644403072340010010000000037514546553333015512 0ustar OSPJADomain Users# -*- mode: perl; -*- # check for cpan rt #121139 use strict; use warnings; use Test::More tests => 2; use Math::BigRat; my $a = Math::BigRat->new('3/2'); my $x = Math::BigRat->new('2/3'); is("$a", "3/2"); my $y = $a; $y = $x * $y; is("$a", "3/2"); Math-BigInt-2.005003/t/sub_ali.t0000644403072340010010000000035014536617516016016 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that the new alias names work use strict; use warnings; use Test::More tests => 6; use lib 't'; use Math::BigInt::Subclass; our $CLASS; $CLASS = 'Math::BigInt::Subclass'; require './t/alias.inc'; Math-BigInt-2.005003/t/sub_mbf.t0000644403072340010010000000254114546553333016016 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3070 # tests in require'd file + 10; # tests in this file use lib 't'; use Math::BigFloat::Subclass; our ($CLASS, $LIB); $CLASS = "Math::BigFloat::Subclass"; $LIB = $CLASS -> config('lib'); # backend library require './t/bigfltpm.inc'; # perform same tests as bigfltpm ############################################################################### # Now do custom tests for Subclass itself my $ms = $CLASS -> new(23); is($ms->{_custom}, 1, '$ms has custom attribute \$ms->{_custom}'); # Check that subclass is a Math::BigFloat, but not a Math::Bigint isa_ok($ms, 'Math::BigFloat'); ok(!$ms -> isa('Math::BigInt'), "An object of class '" . ref($ms) . "' isn't a 'Math::BigInt'"); my $bf = Math::BigFloat -> new(23); # same as other $ms += $bf; is($ms, 46, '$ms is 46'); is($ms->{_custom}, 1, '$ms has custom attribute $ms->{_custom}'); is(ref($ms), $CLASS, "\$ms is not an object of class '$CLASS'"); is($CLASS -> accuracy(), undef, "$CLASS gets 'accuracy' from parent"); is($CLASS -> precision(), undef, "$CLASS gets 'precision' from parent"); cmp_ok($CLASS -> div_scale(), "==", 40, "$CLASS gets 'div_scale' from parent"); is($CLASS -> round_mode(), "even", "$CLASS gets 'round_mode' from parent"); Math-BigInt-2.005003/t/sub_mbi.t0000644403072340010010000000236014756672324016025 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4294 # tests in require'd file + 9; # tests in this file use lib 't'; use Math::BigInt::Subclass; our ($CLASS, $LIB); $CLASS = "Math::BigInt::Subclass"; $LIB = $CLASS -> config('lib'); # backend library require './t/bigintpm.inc'; # perform same tests as bigintpm ############################################################################### # Now do custom tests for Subclass itself my $ms = $CLASS -> new(23); is($ms->{_custom}, 1, '$ms has custom attribute \$ms->{_custom}'); # Check that a subclass is still considered a Math::BigInt isa_ok($ms, 'Math::BigInt'); my $bi = Math::BigInt -> new(23); # same as other $ms += $bi; is($ms, 46, '$ms is 46'); is($ms->{_custom}, 1, '$ms has custom attribute $ms->{_custom}'); is(ref($ms), $CLASS, "\$ms is not an object of class '$CLASS'"); is($CLASS -> accuracy(), undef, "$CLASS gets 'accuracy' from parent"); is($CLASS -> precision(), undef, "$CLASS gets 'precision' from parent"); cmp_ok($CLASS -> div_scale(), "==", 40, "$CLASS gets 'div_scale' from parent"); is($CLASS -> round_mode(), "even", "$CLASS gets 'round_mode' from parent"); Math-BigInt-2.005003/t/sub_mbr.t0000644403072340010010000000230314546553333016026 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 899 # tests in require'd file + 9; # tests in this file use lib 't'; use Math::BigRat::Subclass; our ($CLASS, $LIB); $CLASS = "Math::BigRat::Subclass"; $LIB = $CLASS -> config('lib'); # backend library require './t/bigratpm.inc'; ############################################################################### # Now do custom tests for Subclass itself my $ms = $CLASS -> new(23); is($ms->{_custom}, 1, '$ms has custom attribute \$ms->{_custom}'); # Check that a subclass is still considered a Math::BigRat isa_ok($ms, 'Math::BigRat'); my $bi = Math::BigRat -> new(23); # same as other $ms += $bi; is($ms, 46, '$ms is 46'); is($ms->{_custom}, 1, '$ms has custom attribute $ms->{_custom}'); is(ref($ms), $CLASS, "\$ms is not an object of class '$CLASS'"); is($CLASS -> accuracy(), undef, "$CLASS gets 'accuracy' from parent"); is($CLASS -> precision(), undef, "$CLASS gets 'precision' from parent"); cmp_ok($CLASS -> div_scale(), "==", 40, "$CLASS gets 'div_scale' from parent"); is($CLASS -> round_mode(), "even", "$CLASS gets 'round_mode' from parent"); Math-BigInt-2.005003/t/sub_mif.t0000644403072340010010000000054114750142746016022 0ustar OSPJADomain Users# -*- mode: perl; -*- # test rounding, accuracy, precision and fallback, round_mode and mixing # of classes use strict; use warnings; use Test::More tests => 712; use lib 't'; use Math::BigInt::Subclass; use Math::BigFloat::Subclass; our ($mbi, $mbf); $mbi = 'Math::BigInt::Subclass'; $mbf = 'Math::BigFloat::Subclass'; require './t/mbimbf.inc'; Math-BigInt-2.005003/t/trap.t0000644403072340010010000001017114546553333015345 0ustar OSPJADomain Users# -*- mode: perl; -*- # test that config ( trap_nan => 1, trap_inf => 1) really works/dies use strict; use warnings; use Test::More tests => 90; my $mbi = 'Math::BigInt'; my $mbf = 'Math::BigFloat'; my $mbr = 'Math::BigRat'; use_ok($mbi); use_ok($mbf); use_ok($mbr); my $x; foreach my $class ($mbi, $mbf, $mbr) { # can do? can_ok($class, 'config'); ########################################################################### # Default values. ########################################################################### # defaults are okay? is($class->config("trap_nan"), 0, 'trap_nan defaults to 0'); is($class->config("trap_inf"), 0, 'trap_inf defaults to 0'); ########################################################################### # Trap NaN. ########################################################################### # can set? $class->config( trap_nan => 1 ); is($class->config("trap_nan"), 1, qq|$class->config( trap_nan => 1 );|); # can reset? $class->config( trap_nan => 0 ); is($class->config("trap_nan"), 0, qq|$class->config( trap_nan => 0 );|); # can set via hash ref? $class->config( { trap_nan => 1 } ); is($class->config("trap_nan"), 1, qq|$class->config( { trap_nan => 1 } );|); # 0/0 => NaN $x = $class->new("0"); eval { $x->bdiv(0); }; like($@, qr/^Tried to /, qq|\$x = $class->new("0"); \$x->bdiv(0);|); # new() didn't modify $x is($x, 0, qq|\$x = $class->new("0"); \$x->bdiv(0);|); # also test that new() still works normally eval { $x = $class->new('42'); $x->bnan(); }; like($@, qr/^Tried to /, 'died'); is($x, 42, '$x after new() never modified'); # can reset? $class->config( trap_nan => 0 ); is($class->config("trap_nan"), 0, qq|$class->config( trap_nan => 0 );|); ########################################################################### # Trap inf. ########################################################################### # can set? $class->config( trap_inf => 1 ); is($class->config("trap_inf"), 1, 'trap_inf enabled'); eval { $x = $class->new('4711'); $x->binf(); }; like($@, qr/^Tried to /, 'died'); is($x, 4711, '$x after new() never modified'); eval { $x = $class->new('inf'); }; like($@, qr/^Tried to /, 'died'); is($x, 4711, '$x after new() never modified'); eval { $x = $class->new('-inf'); }; like($@, qr/^Tried to /, 'died'); is($x, 4711, '$x after new() never modified'); # +$x/0 => +inf eval { $x = $class->new('4711'); $x->bdiv(0); }; like($@, qr/^Tried to /, 'died'); is($x, 4711, '$x after new() never modified'); # -$x/0 => -inf eval { $x = $class->new('-0815'); $x->bdiv(0); }; like($@, qr/^Tried to /, 'died'); is($x, '-815', '$x after new not modified'); $class->config( trap_nan => 1 ); # 0/0 => NaN eval { $x = $class->new('0'); $x->bdiv(0); }; like($@, qr/^Tried to /, 'died'); is($x, '0', '$x after new not modified'); } ############################################################################## # Math::BigInt $x = Math::BigInt->new(2); eval { $x = $mbi->new('0.1'); }; is($x, 2, 'never modified since it dies'); eval { $x = $mbi->new('0a.1'); }; is($x, 2, 'never modified since it dies'); ############################################################################## # Math::BigFloat $x = Math::BigFloat->new(2); eval { $x = $mbf->new('0.1a'); }; is($x, 2, 'never modified since it dies'); ############################################################################## # BigRat Math::BigRat->config(trap_nan => 1, trap_inf => 1); for my $trap (qw/ 0.1a +inf inf -inf /) { my $x = Math::BigRat->new('7/4'); note(""); # this is just for some space in the output # In each of the cases below, $x is not modified, because the code dies. eval { $x = $mbr->new("$trap"); }; is($x, "7/4", qq|\$x = $mbr->new("$trap");|); eval { $x = $mbr->new("$trap"); }; is($x, "7/4", qq|\$x = $mbr->new("$trap");|); eval { $x = $mbr->new("$trap/7"); }; is($x, "7/4", qq|\$x = $mbr->new("$trap/7");|); } # all tests done Math-BigInt-2.005003/t/upgrade.inc0000644403072340010010000007033314776666035016353 0ustar OSPJADomain Users# include this file into another for subclass testing # This file is nearly identical to bigintpm.t, except that certain results are # _requird_ to be different due to "upgrading" or "promoting" to # Math::BigFloat. The reverse is not true. Any unmarked results can be either # Math::BigInt or Math::BigFloat, depending on how good the internal # optimization is (e.g., it is usually desirable to have 2 ** 2 return a # Math::BigInt, not a Math::BigFloat). # Results that are required to be Math::BigFloat are marked with C<^> at the # end. # Please note that the testcount goes up by two for each extra result marked # with ^, since then we test whether it has the proper class and that it left # the upgrade variable alone. use strict; use warnings; our ($CLASS, $LIB, $EXPECTED_CLASS); ############################################################################## # for testing inheritance of _swap package Math::Foo; use Math::BigInt lib => $main::LIB; our @ISA = ('Math::BigInt'); use overload # customized overload for sub, since original does not use swap there '-' => sub { my @a = ref($_[0])->_swap(@_); $a[0]->bsub($a[1]); }; sub _swap { # a fake _swap, which reverses the params my $self = shift; # for override in subclass if ($_[2]) { my $c = ref ($_[0] ) || 'Math::Foo'; return ( $_[0]->copy(), $_[1] ); } else { return ( Math::Foo->new($_[1]), $_[0] ); } } ############################################################################## package main; is($CLASS->config('lib'), $LIB, "$CLASS->config('lib')"); my ($x, $y, $z, @args, $a, $m, $e, $try, $got, $want, $exp); my ($f, $round_mode, $expected_class); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines if (s/^&//) { $f = $_; next; } if (/^\$/) { $round_mode = $_; $round_mode =~ s/^\$/$CLASS\->/; next; } @args = split(/:/, $_, 99); $want = pop(@args); $expected_class = $CLASS; if ($want =~ /\^$/) { $expected_class = $EXPECTED_CLASS; $want =~ s/\^$//; } $try = qq|\$x = $CLASS->new("$args[0]");|; if ($f eq "bnorm") { $try = qq|\$x = $CLASS->bnorm("$args[0]");|; } elsif ($f =~ /^is_(zero|one|odd|even||(non_)?(negative|positive)|nan|int)$/) { $try .= " \$x->$f();"; } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) { $try .= " \$x->$f();"; } elsif ($f eq "is_inf") { $try .= " \$x->is_inf('$args[1]');"; } elsif ($f eq "binf") { $try .= " \$x->binf('$args[1]');"; } elsif ($f eq "bone") { $try .= " \$x->bone('$args[1]');"; # some unary ops } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|inc|dec|not|sqrt)$/) { $try .= " \$x->$f();"; } elsif ($f eq "length") { $try .= ' $x->length();'; } elsif ($f eq "exponent") { # ->bstr() to see if an object is returned $try .= ' $x = $x->exponent()->bstr();'; } elsif ($f eq "mantissa") { # ->bstr() to see if an object is returned $try .= ' $x = $x->mantissa()->bstr();'; } elsif ($f eq "parts") { $try .= ' ($m, $e) = $x->parts();'; # ->bstr() to see if an object is returned $try .= ' $m = $m->bstr(); $m = "NaN" if !defined $m;'; $try .= ' $e = $e->bstr(); $e = "NaN" if !defined $e;'; $try .= ' "$m,$e";'; } else { if ($args[1] !~ /\./) { $try .= qq| \$y = $CLASS->new("$args[1]");|; } else { $try .= qq| \$y = $EXPECTED_CLASS->new("$args[1]");|; } if ($f eq "bcmp") { $try .= ' $x->bcmp($y);'; } elsif ($f eq "bacmp") { $try .= ' $x->bacmp($y);'; } elsif ($f eq "bround") { $try .= " $round_mode; \$x->bround(\$y);"; } elsif ($f eq "broot") { $try .= " \$x->broot(\$y);"; } elsif ($f eq "badd") { $try .= ' $x + $y;'; } elsif ($f eq "bsub") { $try .= ' $x - $y;'; } elsif ($f eq "bmul") { $try .= ' $x * $y;'; } elsif ($f eq "bdiv") { $try .= ' $x / $y;'; } elsif ($f eq "bdiv-list") { $try .= ' join(",", $x->bdiv($y));'; # overload via x= } elsif ($f =~ /^.=$/) { $try .= " \$x $f \$y;"; # overload via x } elsif ($f =~ /^.$/) { $try .= " \$x $f \$y;"; } elsif ($f eq "bmod") { $try .= ' $x % $y;'; } elsif ($f eq "bgcd") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= " $CLASS\::bgcd(\$x, \$y"; $try .= ", \$z" if defined $args[2]; $try .= ");"; } elsif ($f eq "blcm") { if (defined $args[2]) { $try .= qq| \$z = $CLASS->new("$args[2]");|; } $try .= " $CLASS\::blcm(\$x, \$y"; $try .= ", \$z" if defined $args[2]; $try .= ");"; } elsif ($f eq "blsft") { if (defined $args[2]) { $try .= " \$x->blsft(\$y, $args[2]);"; } else { $try .= " \$x << \$y;"; } } elsif ($f eq "brsft") { if (defined $args[2]) { $try .= " \$x->brsft(\$y, $args[2]);"; } else { $try .= " \$x >> \$y;"; } } elsif ($f eq "band") { $try .= " \$x & \$y;"; } elsif ($f eq "bior") { $try .= " \$x | \$y;"; } elsif ($f eq "bxor") { $try .= " \$x ^ \$y;"; } elsif ($f eq "bpow") { $try .= " \$x ** \$y;"; } elsif ($f eq "digit") { $try = qq|\$x = $CLASS->new("$args[0]"); \$x->digit($args[1]);|; } else { warn "Unknown op '$f'"; } } # end else all other ops note "\n$try\n\n"; $got = eval $try; diag "Error: $@\n" if $@; # convert hex/binary targets to decimal if ($want =~ /^(0x0x|0b0b)/) { $want =~ s/^0[xb]//; $want = Math::BigInt->new($want)->bstr(); } if ($want eq "") { is($got, undef, $try); } else { # print "try: $try ans: $got $want\n"; is($got, $want, $try); if ($expected_class ne $CLASS) { is(ref($got), $expected_class, 'ref($got)'); is($Math::BigInt::upgrade, 'Math::BigFloat', '$Math::BigInt::upgrade'); } } # check internal state of number objects is_valid($got, $f) if ref $got; } # endwhile data tests close DATA; my $warn = ''; $SIG{__WARN__} = sub { $warn = shift; }; # these should not warn $warn = ''; eval '$z = 3.17 <= $y'; is($z, 1, '$z = 3.17 <= $y'); is($warn, '', 'the code "$z = 3.17 <= $y" issued no warning'); $warn = ''; eval '$z = $y >= 3.17'; is($z, 1, '$z = $y >= 3.17'); is($warn, '', 'the code "$z = $y >= 3.17" issued no warning'); # all tests done 1; ############################################################################### # sub to check validity of a Math::BigInt internally, to ensure that no op # leaves a number object in an invalid state (f.i. "-0") sub is_valid { my ($x, $f, $c) = @_; # The checks here are loosened a bit to allow Math::BigInt or # Math::BigFloat objects to pass my $e = 0; # error? # ok as reference? # $e = "Not a reference to $c" if (ref($x) || '') ne $c; # has ok sign? $e = "Illegal sign $x->{sign} (expected: '+', '-', '-inf', '+inf' or 'NaN'" if $e eq '0' && $x->{sign} !~ /^(\+|-|\+inf|-inf|NaN)$/; $e = "-0 is invalid!" if $e ne '0' && $x->{sign} eq '-' && $x == 0; #$e = $LIB->_check($x->{value}) if $e eq '0'; # test done, see if error did crop up if ($e eq '0') { pass('is a valid object'); return; } fail($e . " after op '$f'"); } __DATA__ &.= 1234:-345:1234-345 &+= 1:2:3 -1:-2:-3 &-= 1:2:-1 -1:-2:1 &*= 2:3:6 -1:5:-5 &%= 100:3:1 8:9:8 &/= 100:3:33.33333333333333333333333333333333333333 -8:2:-4 &|= 2:1:3 &&= 5:7:5 &^= 5:7:2 &is_negative 0:0 -1:1 1:0 +inf:0 -inf:1 NaNneg:0 &is_positive 0:0 -1:0 1:1 +inf:1 -inf:0 NaNneg:0 &is_non_negative 0:1 -1:0 1:1 +inf:1 -inf:0 NaN:0 &is_non_positive 0:1 -1:1 1:0 +inf:0 -inf:1 NaN:0 &is_odd abc:0 0:0 1:1 3:1 -1:1 -3:1 10000001:1 10000002:0 2:0 120:0 121:1 &is_int NaN:0 inf:0 -inf:0 1:1 12:1 123e12:1 &is_even abc:0 0:1 1:0 3:0 -1:0 -3:0 10000001:0 10000002:1 2:1 120:1 121:0 &bacmp +0:-0:0 +0:+1:-1 -1:+1:0 +1:-1:0 -1:+2:-1 +2:-1:1 -123456789:+987654321:-1 +123456789:-987654321:-1 +987654321:+123456789:1 -987654321:+123456789:1 -123:+4567889:-1 # NaNs acmpNaN:123: 123:acmpNaN: acmpNaN:acmpNaN: # infinity +inf:+inf:0 -inf:-inf:0 +inf:-inf:0 -inf:+inf:0 +inf:123:1 -inf:123:1 +inf:-123:1 -inf:-123:1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: &bnorm 123:123 12.3:12.3^ # binary input 0babc:NaN 0b123:NaN 0b0:0 -0b0:0 -0b1:-1 0b0001:1 0b001:1 0b011:3 0b101:5 0b1001:9 0b10001:17 0b100001:33 0b1000001:65 0b10000001:129 0b100000001:257 0b1000000001:513 0b10000000001:1025 0b100000000001:2049 0b1000000000001:4097 0b10000000000001:8193 0b100000000000001:16385 0b1000000000000001:32769 0b10000000000000001:65537 0b100000000000000001:131073 0b1000000000000000001:262145 0b10000000000000000001:524289 0b100000000000000000001:1048577 0b1000000000000000000001:2097153 0b10000000000000000000001:4194305 0b100000000000000000000001:8388609 0b1000000000000000000000001:16777217 0b10000000000000000000000001:33554433 0b100000000000000000000000001:67108865 0b1000000000000000000000000001:134217729 0b10000000000000000000000000001:268435457 0b100000000000000000000000000001:536870913 0b1000000000000000000000000000001:1073741825 0b10000000000000000000000000000001:2147483649 0b100000000000000000000000000000001:4294967297 0b1000000000000000000000000000000001:8589934593 0b10000000000000000000000000000000001:17179869185 0b1_0_1:5 0b0_0_0_1:1 # hex input -0x0:0 0xabcdefgh:NaN 0x1234:4660 0xabcdef:11259375 -0xABCDEF:-11259375 -0x1234:-4660 0x12345678:305419896 0x1_2_3_4_56_78:305419896 0xa_b_c_d_e_f:11259375 0x9:9 0x11:17 0x21:33 0x41:65 0x81:129 0x101:257 0x201:513 0x401:1025 0x801:2049 0x1001:4097 0x2001:8193 0x4001:16385 0x8001:32769 0x10001:65537 0x20001:131073 0x40001:262145 0x80001:524289 0x100001:1048577 0x200001:2097153 0x400001:4194305 0x800001:8388609 0x1000001:16777217 0x2000001:33554433 0x4000001:67108865 0x8000001:134217729 0x10000001:268435457 0x20000001:536870913 0x40000001:1073741825 0x80000001:2147483649 0x100000001:4294967297 0x200000001:8589934593 0x400000001:17179869185 0x800000001:34359738369 # inf input inf:inf +inf:inf -inf:-inf 0inf:NaN # abnormal input :NaN abc:NaN 1 a:NaN 1bcd2:NaN 11111b:NaN +1z:NaN -1z:NaN # only one underscore between two digits _123:NaN _123_:NaN 1E_12:NaN 1_E_12:NaN +_1E12:NaN +0_1E2:100 +0_0_1E2:100 -0_0_1E2:-100 -0_0_1E+0_0_2:-100 E1:NaN E23:NaN 1.23E1:12.3^ 1.23E-1:0.123^ # bug with two E's in number being valid 1e2e3:NaN 1e2r:NaN 1e2.0:NaN # leading zeros 012:12 0123:123 01234:1234 012345:12345 0123456:123456 01234567:1234567 012345678:12345678 0123456789:123456789 01234567891:1234567891 012345678912:12345678912 0123456789123:123456789123 01234567891234:1234567891234 # normal input 0:0 +0:0 +00:0 +000:0 000000000000000000:0 -0:0 -0000:0 +1:1 +01:1 +001:1 +00000100000:100000 123456789:123456789 -1:-1 -01:-1 -001:-1 -123456789:-123456789 -00000100000:-100000 1_2_3:123 10000000000E-1_0:1 1E2:100 1E1:10 1E0:1 1.23E2:123 100E-1:10 # floating point input # .2e2:20 1.E3:1000 1.01E2:101 1010E-1:101 -1010E0:-1010 -1010E1:-10100 1234.00:1234 # non-integer numbers -1010E-2:-10.1^ -1.01E+1:-10.1^ -1.01E-1:-0.101^ &bnan 1:NaN 2:NaN abc:NaN &bone 2:+:1 2:-:-1 boneNaN:-:-1 boneNaN:+:1 2:abc:1 3::1 &binf 1:+:inf 2:-:-inf 3:+inf:inf &is_nan 123:0 abc:1 NaN:1 -123:0 &is_inf +inf::1 -inf::1 abc::0 1::0 NaN::0 -1::0 +inf:-:0 +inf:+:1 -inf:-:1 -inf:+:0 +iNfInItY::1 -InFiNiTy::1 &blsft abc:abc:NaN +2:+2:8 +1:+32:4294967296 +1:+48:281474976710656 +8:-2:2 # exercise base 10 +12345:4:10:123450000 -1234:0:10:-1234 +1234:0:10:1234 +2:2:10:200 +12:2:10:1200 +1234:-3:10:1.234 1234567890123:12:10:1234567890123000000000000 &brsft abc:abc:NaN +8:+2:2 +4294967296:+32:1 +281474976710656:+48:1 +2:-2:8 # exercise base 10 -1234:0:10:-1234 +1234:0:10:1234 +200:2:10:2 +1234:3:10:1.234 +1234:2:10:12.34 +1234:-3:10:1234000 310000:4:10:31 12300000:5:10:123 1230000000000:10:10:123 09876123456789067890:12:10:9876123.45678906789 1234561234567890123:13:10:123456.1234567890123 &bsstr 1e+34:1e+34 123.456E3:123456e+0 100:1e+2 abc:NaN &bneg bnegNaN:NaN +inf:-inf -inf:inf abd:NaN 0:0 1:-1 -1:1 +123456789:-123456789 -123456789:123456789 &babs babsNaN:NaN +inf:inf -inf:inf 0:0 1:1 -1:1 +123456789:123456789 -123456789:123456789 &bcmp bcmpNaN:bcmpNaN: bcmpNaN:0: 0:bcmpNaN: 0:0:0 -1:0:-1 0:-1:1 1:0:1 0:1:-1 -1:1:-1 1:-1:1 -1:-1:0 1:1:0 123:123:0 123:12:1 12:123:-1 -123:-123:0 -123:-12:-1 -12:-123:1 123:124:-1 124:123:1 -123:-124:1 -124:-123:-1 100:5:1 -123456789:987654321:-1 +123456789:-987654321:1 -987654321:123456789:-1 -inf:5432112345:-1 +inf:5432112345:1 -inf:-5432112345:-1 +inf:-5432112345:1 +inf:+inf:0 -inf:-inf:0 +inf:-inf:1 -inf:+inf:-1 5:inf:-1 5:inf:-1 -5:-inf:1 -5:-inf:1 # return undef +inf:NaN: NaN:inf: -inf:NaN: NaN:-inf: &binc abc:NaN +inf:inf -inf:-inf +0:1 +1:2 -1:0 &bdec abc:NaN +inf:inf -inf:-inf +0:-1 +1:0 -1:-2 &badd abc:abc:NaN abc:0:NaN +0:abc:NaN +inf:-inf:NaN -inf:+inf:NaN +inf:+inf:inf -inf:-inf:-inf baddNaN:+inf:NaN baddNaN:+inf:NaN +inf:baddNaN:NaN -inf:baddNaN:NaN 0:0:0 1:0:1 0:1:1 1:1:2 -1:0:-1 0:-1:-1 -1:-1:-2 -1:+1:0 +1:-1:0 +9:+1:10 +99:+1:100 +999:+1:1000 +9999:+1:10000 +99999:+1:100000 +999999:+1:1000000 +9999999:+1:10000000 +99999999:+1:100000000 +999999999:+1:1000000000 +9999999999:+1:10000000000 +99999999999:+1:100000000000 +10:-1:9 +100:-1:99 +1000:-1:999 +10000:-1:9999 +100000:-1:99999 +1000000:-1:999999 +10000000:-1:9999999 +100000000:-1:99999999 +1000000000:-1:999999999 +10000000000:-1:9999999999 +123456789:987654321:1111111110 -123456789:987654321:864197532 -123456789:-987654321:-1111111110 +123456789:-987654321:-864197532 2:2.5:4.5^ -123:-1.5:-124.5^ -1.2:1:-0.2^ &bsub abc:abc:NaN abc:+0:NaN +0:abc:NaN +inf:-inf:inf -inf:+inf:-inf +inf:+inf:NaN -inf:-inf:NaN +0:+0:0 +1:+0:1 +0:+1:-1 +1:+1:0 -1:+0:-1 +0:-1:1 -1:-1:0 -1:+1:-2 +1:-1:2 +9:+1:8 +99:+1:98 +999:+1:998 +9999:+1:9998 +99999:+1:99998 +999999:+1:999998 +9999999:+1:9999998 +99999999:+1:99999998 +999999999:+1:999999998 +9999999999:+1:9999999998 +99999999999:+1:99999999998 +10:-1:11 +100:-1:101 +1000:-1:1001 +10000:-1:10001 +100000:-1:100001 +1000000:-1:1000001 +10000000:-1:10000001 +100000000:-1:100000001 +1000000000:-1:1000000001 +10000000000:-1:10000000001 +123456789:+987654321:-864197532 -123456789:+987654321:-1111111110 -123456789:-987654321:864197532 +123456789:-987654321:1111111110 &bmul abc:abc:NaN abc:+0:NaN +0:abc:NaN NaNmul:+inf:NaN NaNmul:-inf:NaN -inf:NaNmul:NaN +inf:NaNmul:NaN +inf:+inf:inf +inf:-inf:-inf -inf:+inf:-inf -inf:-inf:inf +0:+0:0 +0:+1:0 +1:+0:0 +0:-1:0 -1:+0:0 123456789123456789:0:0 0:123456789123456789:0 -1:-1:1 -1:+1:-1 +1:-1:-1 +1:+1:1 +2:+3:6 -2:+3:-6 +2:-3:-6 -2:-3:6 111:111:12321 10101:10101:102030201 1001001:1001001:1002003002001 100010001:100010001:10002000300020001 10000100001:10000100001:100002000030000200001 11111111111:9:99999999999 22222222222:9:199999999998 33333333333:9:299999999997 44444444444:9:399999999996 55555555555:9:499999999995 66666666666:9:599999999994 77777777777:9:699999999993 88888888888:9:799999999992 99999999999:9:899999999991 +25:+25:625 +12345:+12345:152399025 +99999:+11111:1111088889 9999:10000:99990000 99999:100000:9999900000 999999:1000000:999999000000 9999999:10000000:99999990000000 99999999:100000000:9999999900000000 999999999:1000000000:999999999000000000 9999999999:10000000000:99999999990000000000 99999999999:100000000000:9999999999900000000000 999999999999:1000000000000:999999999999000000000000 9999999999999:10000000000000:99999999999990000000000000 99999999999999:100000000000000:9999999999999900000000000000 999999999999999:1000000000000000:999999999999999000000000000000 9999999999999999:10000000000000000:99999999999999990000000000000000 99999999999999999:100000000000000000:9999999999999999900000000000000000 999999999999999999:1000000000000000000:999999999999999999000000000000000000 9999999999999999999:10000000000000000000:99999999999999999990000000000000000000 3:3.5:10.5^ 3.5:3:10.5^ &bdiv-list 100:20:5,0 4095:4095:1,0 -4095:-4095:1,0 4095:-4095:-1,0 -4095:4095:-1,0 123:2:61,1 9:5:1,4 9:4:2,1 # inf handling and general remainder 5:8:0,5 0:8:0,0 11:2:5,1 11:-2:-6,-1 -11:2:-6,1 # see table in documentation in MBI 0:inf:0,0 0:-inf:0,0 5:inf:0,5 5:-inf:-1,-inf -5:inf:-1,inf -5:-inf:0,-5 inf:5:inf,NaN -inf:5:-inf,NaN inf:-5:-inf,NaN -inf:-5:inf,NaN 5:5:1,0 -5:-5:1,0 inf:inf:NaN,NaN -inf:-inf:NaN,NaN -inf:inf:NaN,NaN inf:-inf:NaN,NaN 8:0:inf,8 inf:0:inf,inf # exceptions to remainder rule -8:0:-inf,-8 -inf:0:-inf,-inf 0:0:NaN,0 &bdiv abc:abc:NaN abc:1:NaN 1:abc:NaN 0:0:NaN # inf handling (see table in doc) 0:inf:0 0:-inf:0 5:inf:0 5:-inf:-1 -5:inf:-1 -5:-inf:0 inf:5:inf -inf:5:-inf inf:-5:-inf -inf:-5:inf 5:5:1 -5:-5:1 inf:inf:NaN -inf:-inf:NaN -inf:inf:NaN inf:-inf:NaN 8:0:inf inf:0:inf -8:0:-inf -inf:0:-inf 11:2:5.5^ -11:-2:5.5^ -11:2:-5.5^ 11:-2:-5.5^ 0:1:0 0:-1:0 1:1:1 -1:-1:1 1:-1:-1 -1:1:-1 1:2:0.5^ 2:1:2 1000000000:9:111111111.1111111111111111111111111111111^ 2000000000:9:222222222.2222222222222222222222222222222^ 3000000000:9:333333333.3333333333333333333333333333333^ 4000000000:9:444444444.4444444444444444444444444444444^ 5000000000:9:555555555.5555555555555555555555555555556^ 6000000000:9:666666666.6666666666666666666666666666667^ 7000000000:9:777777777.7777777777777777777777777777778^ 8000000000:9:888888888.8888888888888888888888888888889^ 9000000000:9:1000000000 35500000:113:314159.2920353982300884955752212389380531^ 71000000:226:314159.2920353982300884955752212389380531^ 106500000:339:314159.2920353982300884955752212389380531^ 1000000000:3:333333333.3333333333333333333333333333333^ +10:+5:2 +100:+4:25 +1000:+8:125 +10000:+16:625 999999999999:9:111111111111 999999999999:99:10101010101 999999999999:999:1001001001 999999999999:9999:100010001 999999999999999:99999:10000100001 +1111088889:99999:11111 -5:-3:1.666666666666666666666666666666666666667^ -5:3:-1.666666666666666666666666666666666666667^ 4:3:1.333333333333333333333333333333333333333^ 4:-3:-1.333333333333333333333333333333333333333^ 1:3:0.3333333333333333333333333333333333333333^ 1:-3:-0.3333333333333333333333333333333333333333^ -2:-3:0.6666666666666666666666666666666666666667^ -2:3:-0.6666666666666666666666666666666666666667^ 8:5:1.6^ -8:5:-1.6^ 14:-3:-4.666666666666666666666666666666666666667^ -14:3:-4.666666666666666666666666666666666666667^ -14:-3:4.666666666666666666666666666666666666667^ 14:3:4.666666666666666666666666666666666666667^ # bug in Calc with '99999' vs $BASE-1 #10000000000000000000000000000000000000000000000000000000000000000000000000000000000:10000000375084540248994272022843165711074:999999962491547381984643365663244474111576 12:24:0.5^ &bmod # inf handling, see table in doc 0:inf:0 0:-inf:0 5:inf:5 5:-inf:-inf -5:inf:inf -5:-inf:-5 inf:5:NaN -inf:5:NaN inf:-5:NaN -inf:-5:NaN 5:5:0 -5:-5:0 inf:inf:NaN -inf:-inf:NaN -inf:inf:NaN inf:-inf:NaN 8:0:8 inf:0:inf -inf:0:-inf -8:0:-8 0:0:0 abc:abc:NaN abc:1:abc:NaN 1:abc:NaN 0:1:0 1:0:1 0:-1:0 -1:0:-1 1:1:0 -1:-1:0 1:-1:0 -1:1:0 1:2:1 2:1:0 1000000000:9:1 2000000000:9:2 3000000000:9:3 4000000000:9:4 5000000000:9:5 6000000000:9:6 7000000000:9:7 8000000000:9:8 9000000000:9:0 35500000:113:33 71000000:226:66 106500000:339:99 1000000000:3:1 10:5:0 100:4:0 1000:8:0 10000:16:0 999999999999:9:0 999999999999:99:0 999999999999:999:0 999999999999:9999:0 999999999999999:99999:0 -9:+5:1 +9:-5:-1 -9:-5:-4 -5:3:1 -2:3:1 4:3:1 1:3:1 -5:-3:-2 -2:-3:-2 4:-3:-2 1:-3:-2 4095:4095:0 100041000510123:3:0 152403346:12345:4321 9:5:4 &bgcd abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +0:+1:1 +1:+0:1 +1:+1:1 +2:+3:1 +3:+2:1 -3:+2:1 100:625:25 4096:81:1 1034:804:2 27:90:56:1 27:90:54:9 &blcm abc:abc:NaN abc:+0:NaN +0:abc:NaN +0:+0:0 +1:+0:0 +0:+1:0 +27:+90:270 +1034:+804:415668 &band abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:0 3:2:2 +8:+2:0 +281474976710656:0:0 +281474976710656:1:0 +281474976710656:+281474976710656:281474976710656 -2:-3:-4 -1:-1:-1 -6:-6:-6 -7:-4:-8 -7:4:0 -4:7:4 1:0.5:0 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0x0xFFFF 0xFFFFFF:0xFFFFFF:0x0xFFFFFF 0xFFFFFFFF:0xFFFFFFFF:0x0xFFFFFFFF 0xFFFFFFFFFF:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0x0xF0F0 0x0F0F:0x0F0F:0x0x0F0F 0xF0F0F0:0xF0F0F0:0x0xF0F0F0 0x0F0F0F:0x0F0F0F:0x0x0F0F0F 0xF0F0F0F0:0xF0F0F0F0:0x0xF0F0F0F0 0x0F0F0F0F:0x0F0F0F0F:0x0x0F0F0F0F 0xF0F0F0F0F0:0xF0F0F0F0F0:0x0xF0F0F0F0F0 0x0F0F0F0F0F:0x0F0F0F0F0F:0x0x0F0F0F0F0F 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0x0xF0F0F0F0F0F0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F 0x1F0F0F0F0F0F:0x3F0F0F0F0F0F:0x0x1F0F0F0F0F0F &bior abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:3 +8:+2:10 +281474976710656:0:281474976710656 +281474976710656:1:281474976710657 +281474976710656:281474976710656:281474976710656 -2:-3:-1 -1:-1:-1 -6:-6:-6 -7:4:-3 -4:7:-1 1:0.5:1 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0x0xFFFF 0xFFFFFF:0xFFFFFF:0x0xFFFFFF 0xFFFFFFFF:0xFFFFFFFF:0x0xFFFFFFFF 0xFFFFFFFFFF:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0:0xFFFF:0x0xFFFF 0:0xFFFFFF:0x0xFFFFFF 0:0xFFFFFFFF:0x0xFFFFFFFF 0:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xFFFF:0:0x0xFFFF 0xFFFFFF:0:0x0xFFFFFF 0xFFFFFFFF:0:0x0xFFFFFFFF 0xFFFFFFFFFF:0:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0x0xF0F0 0x0F0F:0x0F0F:0x0x0F0F 0xF0F0:0x0F0F:0x0xFFFF 0xF0F0F0:0xF0F0F0:0x0xF0F0F0 0x0F0F0F:0x0F0F0F:0x0x0F0F0F 0x0F0F0F:0xF0F0F0:0x0xFFFFFF 0xF0F0F0F0:0xF0F0F0F0:0x0xF0F0F0F0 0x0F0F0F0F:0x0F0F0F0F:0x0x0F0F0F0F 0x0F0F0F0F:0xF0F0F0F0:0x0xFFFFFFFF 0xF0F0F0F0F0:0xF0F0F0F0F0:0x0xF0F0F0F0F0 0x0F0F0F0F0F:0x0F0F0F0F0F:0x0x0F0F0F0F0F 0x0F0F0F0F0F:0xF0F0F0F0F0:0x0xFFFFFFFFFF 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0x0xF0F0F0F0F0F0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F 0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF 0x1F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF &bxor abc:abc:NaN abc:0:NaN 0:abc:NaN 1:2:3 +8:+2:10 +281474976710656:0:281474976710656 +281474976710656:1:281474976710657 +281474976710656:281474976710656:0 -2:-3:3 -1:-1:0 -6:-6:0 -7:4:-3 -4:7:-5 4:-7:-3 -4:-7:5 1:0.5:1 # equal arguments are treated special, so also do some test with unequal ones 0xFFFF:0xFFFF:0 0xFFFFFF:0xFFFFFF:0 0xFFFFFFFF:0xFFFFFFFF:0 0xFFFFFFFFFF:0xFFFFFFFFFF:0 0xFFFFFFFFFFFF:0xFFFFFFFFFFFF:0 0:0xFFFF:0x0xFFFF 0:0xFFFFFF:0x0xFFFFFF 0:0xFFFFFFFF:0x0xFFFFFFFF 0:0xFFFFFFFFFF:0x0xFFFFFFFFFF 0:0xFFFFFFFFFFFF:0x0xFFFFFFFFFFFF 0xFFFF:0:0x0xFFFF 0xFFFFFF:0:0x0xFFFFFF 0xFFFFFFFF:0:0x0xFFFFFFFF 0xFFFFFFFFFF:0:0x0xFFFFFFFFFF 0xFFFFFFFFFFFF:0:0x0xFFFFFFFFFFFF 0xF0F0:0xF0F0:0 0x0F0F:0x0F0F:0 0xF0F0:0x0F0F:0x0xFFFF 0xF0F0F0:0xF0F0F0:0 0x0F0F0F:0x0F0F0F:0 0x0F0F0F:0xF0F0F0:0x0xFFFFFF 0xF0F0F0F0:0xF0F0F0F0:0 0x0F0F0F0F:0x0F0F0F0F:0 0x0F0F0F0F:0xF0F0F0F0:0x0xFFFFFFFF 0xF0F0F0F0F0:0xF0F0F0F0F0:0 0x0F0F0F0F0F:0x0F0F0F0F0F:0 0x0F0F0F0F0F:0xF0F0F0F0F0:0x0xFFFFFFFFFF 0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0 0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0 0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF &bnot abc:NaN +0:-1 +8:-9 +281474976710656:-281474976710657 -1:0 -2:1 -12:11 &digit 0:0:0 12:0:2 12:1:1 123:0:3 123:1:2 123:2:1 123:-1:1 123:-2:2 123:-3:3 123456:0:6 123456:1:5 123456:2:4 123456:3:3 123456:4:2 123456:5:1 123456:-1:1 123456:-2:2 123456:-3:3 100000:-3:0 100000:0:0 100000:1:0 &mantissa abc:NaN 1e4:1 2e0:2 123:123 -1:-1 -2:-2 +inf:inf -inf:-inf &exponent abc:NaN 1e4:4 2e0:0 123:0 -1:0 -2:0 0:0 +inf:inf -inf:inf &parts abc:NaN,NaN 1e4:1,4 2e0:2,0 123:123,0 -1:-1,0 -2:-2,0 0:0,0 +inf:inf,inf -inf:-inf,inf &bpow abc:12:NaN 12:abc:NaN 0:0:1 0:1:0 0:2:0 0:-1:inf 0:-2:inf 1:0:1 1:1:1 1:2:1 1:3:1 1:-1:1 1:-2:1 1:-3:1 2:0:1 2:1:2 2:2:4 2:3:8 3:3:27 2:-1:0.5^ -2:-1:-0.5^ 2:-2:0.25^ # Y is even => result positive -2:-2:0.25^ # Y is odd => result negative -2:-3:-0.125^ +inf:1234500012:inf -inf:1234500012:inf -inf:1234500013:-inf +inf:-12345000123:0 -inf:-12345000123:0 # 1 ** -x => 1 / (1 ** x) -1:0:1 -2:0:1 -1:1:-1 -1:2:1 -1:3:-1 -1:4:1 -1:5:-1 -1:-1:-1 -1:-2:1 -1:-3:-1 -1:-4:1 -2:2:4 -2:3:-8 -2:4:16 -2:5:-32 -3:2:9 -3:3:-27 -3:4:81 -3:5:-243 10:2:100 10:3:1000 10:4:10000 10:5:100000 10:6:1000000 10:7:10000000 10:8:100000000 10:9:1000000000 10:20:100000000000000000000 123456:2:15241383936 #2:0.5:1.41^ &length 100:3 10:2 1:1 0:1 12345:5 10000000000000000:17 -123:3 215960156869840440586892398248:30 # broot always upgrades &broot 144:2:12^ 123:2:11.09053650640941716205160010260993291846^ &bsqrt 145:12.04159457879229548012824103037860805243^ 143:11.95826074310139802112984075619561661399^ 16:4 170:13.03840481040529742916594311485836883306^ 169:13 168:12.96148139681572046193193487217599331541^ 4:2 3:1.732050807568877293527446341505872366943^ 2:1.41421356237309504880168872420969807857^ 9:3 12:3.464101615137754587054892683011744733886^ 256:16 100000000:10000 4000000000000:2000000 152399026:12345.00004050222755607815159966235881398^ 152399025:12345 152399024:12344.99995949777231103967404745303741942^ 1:1 0:0 -2:NaN -123:NaN Nan:NaN +inf:inf -inf:NaN &bround $round_mode('trunc') 0:12:0 NaNbround:12:NaN +inf:12:inf -inf:12:-inf 1234:0:1234 1234:2:1200 123456:4:123400 123456:5:123450 123456:6:123456 +10123456789:5:10123000000 -10123456789:5:-10123000000 +10123456789:9:10123456700 -10123456789:9:-10123456700 +101234500:6:101234000 -101234500:6:-101234000 #+101234500:-4:101234000 #-101234500:-4:-101234000 $round_mode('zero') +20123456789:5:20123000000 -20123456789:5:-20123000000 +20123456789:9:20123456800 -20123456789:9:-20123456800 +201234500:6:201234000 -201234500:6:-201234000 #+201234500:-4:201234000 #-201234500:-4:-201234000 +12345000:4:12340000 -12345000:4:-12340000 $round_mode('+inf') +30123456789:5:30123000000 -30123456789:5:-30123000000 +30123456789:9:30123456800 -30123456789:9:-30123456800 +301234500:6:301235000 -301234500:6:-301234000 #+301234500:-4:301235000 #-301234500:-4:-301234000 +12345000:4:12350000 -12345000:4:-12340000 $round_mode('-inf') +40123456789:5:40123000000 -40123456789:5:-40123000000 +40123456789:9:40123456800 -40123456789:9:-40123456800 +401234500:6:401234000 +401234500:6:401234000 #-401234500:-4:-401235000 #-401234500:-4:-401235000 +12345000:4:12340000 -12345000:4:-12350000 $round_mode('odd') +50123456789:5:50123000000 -50123456789:5:-50123000000 +50123456789:9:50123456800 -50123456789:9:-50123456800 +501234500:6:501235000 -501234500:6:-501235000 #+501234500:-4:501235000 #-501234500:-4:-501235000 +12345000:4:12350000 -12345000:4:-12350000 $round_mode('even') +60123456789:5:60123000000 -60123456789:5:-60123000000 +60123456789:9:60123456800 -60123456789:9:-60123456800 +601234500:6:601234000 -601234500:6:-601234000 #+601234500:-4:601234000 #-601234500:-4:-601234000 #-601234500:-9:0 #-501234500:-9:0 #-601234500:-8:0 #-501234500:-8:0 +1234567:7:1234567 +1234567:6:1234570 +12345000:4:12340000 -12345000:4:-12340000 &is_zero 0:1 NaNzero:0 +inf:0 -inf:0 123:0 -1:0 1:0 &is_one 0:0 NaNone:0 +inf:0 -inf:0 1:1 2:0 -1:0 -2:0 # floor and ceil are pretty pointless in integer space, but play safe &bfloor 0:0 NaNfloor:NaN +inf:inf -inf:-inf -1:-1 -2:-2 2:2 3:3 abc:NaN &bceil NaNceil:NaN +inf:inf -inf:-inf 0:0 -1:-1 -2:-2 2:2 3:3 abc:NaN &bint NaN:NaN +inf:inf -inf:-inf 0:0 -1:-1 -2:-2 2:2 3:3 &to_hex 128:80 -128:-80 0:0 -0:0 1:1 0x123456789123456789:123456789123456789 +inf:inf -inf:-inf NaNto_hex:NaN &to_oct 128:200 -128:-200 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1275252666665 0x123456789123456789:44321263611044321263611 +inf:inf -inf:-inf NaNto_oct:NaN &to_bin 128:10000000 -128:-10000000 0:0 -0:0 1:1 0b1010111101010101010110110110110110101:1010111101010101010110110110110110101 +inf:inf -inf:-inf NaNto_bin:NaN &as_hex 128:0x80 -128:-0x80 0:0x0 -0:0x0 1:0x1 0x123456789123456789:0x123456789123456789 +inf:inf -inf:-inf NaNas_hex:NaN &as_bin 128:0b10000000 -128:-0b10000000 0:0b0 -0:0b0 1:0b1 0b1010111101010101010110110110110110101:0b1010111101010101010110110110110110101 +inf:inf -inf:-inf NaNas_bin:NaN &as_oct 128:0200 -128:-0200 0:00 -0:00 1:01 0b1010111101010101010110110110110110101:01275252666665 0x123456789123456789:044321263611044321263611 +inf:inf -inf:-inf NaNas_oct:NaN Math-BigInt-2.005003/t/upgrade.t0000644403072340010010000000203514546553333016026 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2136 # tests in require'd file + 6; # tests in this file use Math::BigInt; use Math::BigFloat; my $x = Math::BigInt -> new(9); my $y = Math::BigInt -> new(4); # Without upgrading. my $zi = $x / $y; cmp_ok($zi, "==", 2, "9/4 = 2 without upgrading"); is(ref($zi), "Math::BigInt", "9/4 gives a Math::BigInt without upgrading"); # With upgrading. Math::BigInt -> upgrade("Math::BigFloat"); my $zf = $x / $y; cmp_ok($zf, "==", 2.25, "9/4 = 2.25 with upgrading"); is(ref($zf), "Math::BigFloat", "9/4 gives a Math::BigFloat with upgrading"); # Other tests. our ($CLASS, $EXPECTED_CLASS, $LIB); $CLASS = "Math::BigInt"; $EXPECTED_CLASS = "Math::BigFloat"; $LIB = "Math::BigInt::Calc"; # backend is(Math::BigInt->upgrade(), "Math::BigFloat", "Math::BigInt->upgrade()"); is(Math::BigInt->downgrade(), undef, "Math::BigInt->downgrade()"); require './t/upgrade.inc'; # all tests here for sharing Math-BigInt-2.005003/t/upgrade2.t0000644403072340010010000000422614546553333016114 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; # Test 2 levels of upgrade classes. This used to cause a segv. use Test::More tests => 9; use Math::BigInt upgrade => 'Math::BigFloat'; use Math::BigFloat upgrade => 'Math::BigMouse'; no warnings 'once'; @Math::BigMouse::ISA = 'Math::BigFloat'; sub Math::BigMouse::bsqrt {}; () = sqrt Math::BigInt->new(2); pass('sqrt on a big int does not segv if there are 2 upgrade levels'); # Math::BigRat inherits from Math::BigFloat, which inherits from Math::BigInt. # Typically, methods call the upgrade version if upgrading is defined and the # argument is an unknown type. This will call infinite recursion for methods # that are not implemented in the upgrade class. use Math::BigRat; Math::BigFloat -> upgrade("Math::BigRat"); Math::BigFloat -> downgrade(undef); Math::BigRat -> upgrade(undef); Math::BigRat -> downgrade(undef); # Input is a scalar. note 'Math::BigRat -> babs("2");'; () = Math::BigRat -> babs("2"); pass(qq|no 'Deep recursion on subroutine ...'|); note 'Math::BigRat -> bsgn("2");'; () = Math::BigRat -> bsgn("2"); pass(qq|no 'Deep recursion on subroutine ...'|); # Input is a Math::BigInt. note 'Math::BigRat -> babs(Math::BigInt -> new("2"));'; () = Math::BigRat -> babs(Math::BigInt -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); note 'Math::BigRat -> bsgn(Math::BigInt -> new("2"));'; () = Math::BigRat -> bsgn(Math::BigInt -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); # Input is a Math::BigFloat. note 'Math::BigRat -> babs(Math::BigFloat -> new("2"));'; () = Math::BigRat -> babs(Math::BigFloat -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); note 'Math::BigRat -> bsgn(Math::BigFloat -> new("2"));'; () = Math::BigRat -> bsgn(Math::BigFloat -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); # Input is a Math::BigRat. note 'Math::BigRat -> babs(Math::BigRat -> new("2"));'; () = Math::BigRat -> babs(Math::BigRat -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); note 'Math::BigRat -> bsgn(Math::BigRat -> new("2"));'; () = Math::BigRat -> bsgn(Math::BigRat -> new("2")); pass(qq|no 'Deep recursion on subroutine ...'|); Math-BigInt-2.005003/t/upgradef.t0000644403072340010010000000336414536617516016205 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 6; ############################################################################### package Math::BigFloat::Test; use Math::BigFloat; require Exporter; our @ISA = qw/Math::BigFloat Exporter/; use overload; sub isa { my ($self, $class) = @_; return if $class =~ /^Math::Big(Int|Float$)/; # we aren't one of these UNIVERSAL::isa($self, $class); } sub bmul { return __PACKAGE__->new(123); } sub badd { return __PACKAGE__->new(321); } ############################################################################### package main; # use Math::BigInt upgrade => 'Math::BigFloat'; use Math::BigFloat upgrade => 'Math::BigFloat::Test'; my ($x, $y, $z); our ($CLASS, $EXPECTED_CLASS, $LIB); $CLASS = "Math::BigFloat"; $EXPECTED_CLASS = "Math::BigFloat::Test"; $LIB = "Math::BigInt::Calc"; # backend is(Math::BigFloat->upgrade(), $EXPECTED_CLASS, qq|Math::BigFloat->upgrade()|); is(Math::BigFloat->downgrade(), undef, qq|Math::BigFloat->downgrade()|); $x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123); $z = $x->bmul($y); is(ref($z), $EXPECTED_CLASS, qq|\$x = $CLASS->new(123); \$y = $EXPECTED_CLASS->new(123);| . q| $z = $x->bmul($y); ref($z)|); is($z, 123, qq|\$x = $CLASS->new(123); \$y = $EXPECTED_CLASS->new(123);| . q| $z = $x->bmul($y); $z|); $x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123); $z = $x->badd($y); is(ref($z), $EXPECTED_CLASS, qq|$x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123);| . q| $z = $x->badd($y); ref($z)|); is($z, 321, qq|$x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123);| . q| $z = $x->badd($y); $z|); # not yet: #require './t/upgrade.inc'; # all tests here for sharing Math-BigInt-2.005003/t/use.t0000644403072340010010000000065314536617516015202 0ustar OSPJADomain Users# -*- mode: perl; -*- # use Module(); doesn't call import() - thanx for cpan testers David. M. Town # and Andreas Marcel Riechert for spotting it. It is fixed by the same code # that fixes require Math::BigInt, but we make a test to be sure it really # works. use strict; use warnings; use Test::More tests => 1; my $x; use Math::BigInt (); $x = Math::BigInt->new(1); ++$x; is($x, 2, '$x = Math::BigInt->new(1); ++$x;'); Math-BigInt-2.005003/t/use_mbfw.t0000644403072340010010000000177414536617516016222 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that using Math::BigFloat with "with" and "lib" at the same time works # broken in versions up to v1.63 use strict; use warnings; use lib 't'; use Test::More tests => 2; # the replacement lib can handle the lib statement, but it could also ignore it # completely, for instance, when it is a 100% replacement for Math::BigInt, but # doesn't know the concept of alternative libs. But it still needs to cope with # "lib => ". SubClass does record it, so we test here essential if # Math::BigFloat hands the lib properly down, any more is outside out testing # reach. use Math::BigFloat with => 'Math::BigInt::Subclass', lib => 'BareCalc'; is(Math::BigFloat->config("with"), 'Math::BigInt::BareCalc', 'Math::BigFloat->config("with")'); # is($Math::BigInt::Subclass::lib, 'BareCalc'); # it never arrives here, but that is a design decision in SubClass is(Math::BigInt->config("lib"), 'Math::BigInt::BareCalc', 'Math::BigInt->config("lib")'); # all tests done Math-BigInt-2.005003/t/with_sub.t0000644403072340010010000000116514536617516016231 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test use Math::BigFloat with => 'Math::BigInt::SomeSubclass'; use strict; use warnings; use Test::More tests => 3070 # tests in require'd file + 1; # tests in this file use Math::BigFloat with => 'Math::BigInt::Subclass', lib => 'Calc'; our ($CLASS, $LIB); $CLASS = "Math::BigFloat"; $LIB = "Math::BigInt::Calc"; # backend # the "with" argument should be ignored is(Math::BigFloat->config("with"), 'Math::BigInt::Calc', qq|Math::BigFloat->config("with")|); require './t/bigfltpm.inc'; # all tests here for sharing Math-BigInt-2.005003/TODO0000644403072340010010000000643414750142746014445 0ustar OSPJADomain UsersThe following list is not up to date: See also various .pm files. General: * Copy on write (helps for $x = -$x; cases etc) (seems to make it slower :/ * run config() and die_on_nan() tests under Subclass.pm Math::BigFloat: * finish downgrading (and upgrading?) * ! bround()/bfround(): some bugs may lurk in there * accuracy() & precision() maybe not finished (bnorm() in every op, testcases) * do not reduce numbers in new(), rather do it in anything that outputs it like bsstr(), bstr(), mantissa(), exponent() and parts(). Reducing the number after each op is slow with a binary core math lib like BitVect. * add bfract() that returns just the fractional part? * tests for frsft() and flsft() with $n != 2 * blog() is still quite slow for non-integer results. See if we can reuse the integer calculation somehow * finish broot() by using different algorithm Math::BigInt: * finish upgrading (and downgrading?) * Better testing of upgrading, e.g., Math::BigInt->bmod($x,$y) where $x and $y are Math::BigFloat objects. * Finite non-integers should be handled consistently. The may appear as input and as a result of a computation. Alternatives are: round, truncate, die, and return NaN. * finish 'upgrade' * remove rounding overhead when no rounding is done, e.g. no $object has A nor P and neither of bround(), bround(), accuracy() or precision() was called * bround() is only used by MBF for -$scale = -$len, anyway. POD is wrong for this, too * overload of cos()/sin()/exp()/atan2() is too DWIM (should return BigInt or BigFloat, not scalar) - also document it * +5 % 0 or -5 % 0 == NaN (should it be something else?) * certain shortcuts returning bzero(), bone() etc may not set the requested rounding parameters, so that $x->foo($y,$a,$p,$r) may return $x without a set $a or $p, thus failing later on: use Test; BEGIN { plan tests => 1; } use Math::BigInt; $x = Math::BigInt->bone(); $x->bsqrt(3,0,'odd'); # $x = 0, but _a is not 3! ok ($x + '12345','12300'); # fails (12346 instead of 12300) The shortcuts in code that return $x->bzero() or similar things need to do $x->bzero($a,$p); and this needs tests. Update: Should now work for most things. Check for completeness. Given the fact that we are be able to plug-in a much faster core-lib, the following are pretty much ultra-low-priority: Math::BigRat: * Make blog() handle exact cases correctly. E.g., (8/27) ** (2/3) = 4/9, so Math::BigRat -> new("4/9") -> blog("8/27") should return 2/3. * Rounding needs a new definiton: rounding to nearest fraction (see Knuth and fixed-slash fractions) * bmod(), bmodpow(), bmodinv() not fully/properly implemented yet. * BigRat does not handle modify() yet or in a very incomplete manner. Math::BigInt::Calc: * look at div() for more speed (I have the hunch that the general _div() routine does way too much work for normal div (e.g. when we don't need the reminder). A simplified version could take care of this. * alternative mul() method using shifts * implement in Calc (and GMP etc) to calculate band(), bior(), bxor() for negative inputs (_signed_or() etc) * _root() doesn't scale too well Please send me test-reports, your experiences with this and your ideas - I love to hear about my work! Math-BigInt-2.005003/xt/0000755403072340010010000000000014776770353014412 5ustar OSPJADomain UsersMath-BigInt-2.005003/xt/author/0000755403072340010010000000000014776770355015716 5ustar OSPJADomain UsersMath-BigInt-2.005003/xt/author/as_float-mbf.t0000644403072340010010000001226314546553333020427 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("as_float() as a class method"); $x = Math::BigFloat -> as_float("Inf"); subtest '$x = Math::BigFloat -> as_float("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigFloat -> as_float("-Inf"); subtest '$x = Math::BigFloat -> as_float("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigFloat -> as_float("NaN"); subtest '$x = Math::BigFloat -> as_float("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigFloat -> as_float("2"); subtest '$x = Math::BigFloat -> new("2"); $x -> as_float();' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigFloat -> as_float("2.5"); subtest '$x = Math::BigFloat -> as_float("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("as_float() as an instance method"); $x = Math::BigFloat -> new("Inf"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("-Inf"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("-Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("NaN"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("NaN"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2.5"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("2.5"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 2.5, '$y == 2.5'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_float() returns a Math::BigFloat regardless of upgrading/downgrading"); require Math::BigInt; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); Math::BigFloat -> upgrade("Math::BigRat"); $x = Math::BigFloat -> new("3"); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("3"); $y = $x -> as_float();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $x'); is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok(eval("$y"), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_float("3"); subtest '$y = Math::BigFloat -> as_float("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok(eval("$y"), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_float("3.5"); subtest '$y = Math::BigFloat -> as_float("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok(eval("$y"), "==", 3.5, 'value of $y'); }; note("as_float() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_float()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_float(); subtest '$x = Math::BigFloat -> new("3"); $x -> precision(2); $y = $x -> as_float()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_float-mbi.t0000644403072340010010000001112414546553333020425 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigInt; my ($x, $y); note("as_float() as a class method"); $x = Math::BigInt -> as_float("Inf"); subtest '$x = Math::BigInt -> as_float("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigInt -> as_float("-Inf"); subtest '$x = Math::BigInt -> as_float("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigInt -> as_float("NaN"); subtest '$x = Math::BigInt -> as_float("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigInt -> as_float("2"); subtest '$x = Math::BigInt -> as_float("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_float() as an instance method"); $x = Math::BigInt -> new("Inf"); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("-Inf"); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("-Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("NaN"); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("NaN"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("2"); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_float() returns a Math::BigFloat regardless of upgrading/downgrading"); require Math::BigFloat; require Math::BigRat; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); Math::BigFloat -> upgrade("Math::BigRat"); $x = Math::BigInt -> new("3"); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("3"); $y = $x -> as_float();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $y'); is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigInt -> as_float("3"); subtest '$y = Math::BigInt -> as_float("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; # Upgrading prevents "3.5" from becoming a Math::BigInt with the value "NaN". $y = Math::BigInt -> as_float("3.5"); subtest '$y = Math::BigInt -> as_float("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3.5, 'value of $y'); }; note("as_float() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_float()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_float(); subtest '$x = Math::BigInt -> new("3"); $x -> precision(2); $y = $x -> as_float()' => sub { is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_float-mbr.t0000644403072340010010000001246714775747325020463 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigRat; my ($x, $y); note("as_float() as a class method"); $x = Math::BigRat -> as_float("Inf"); subtest '$x = Math::BigRat -> as_float("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigRat -> as_float("-Inf"); subtest '$x = Math::BigRat -> as_float("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigRat -> as_float("NaN"); subtest '$x = Math::BigRat -> as_float("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigRat -> as_float("2"); subtest '$x = Math::BigRat -> as_float("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigRat -> as_float("2.5"); subtest '$x = Math::BigRat -> as_float("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("as_float() as an instance method"); $x = Math::BigRat -> new("Inf"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("-Inf"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("-Inf"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("NaN"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("NaN"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("2"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("2.5"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("2.5"); $y = $x -> as_float();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); cmp_ok($y, "==", 2.5, '$y == 2.5'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_float() returns a Math::BigFloat regardless of upgrading/downgrading"); require Math::BigFloat; Math::BigInt -> upgrade("Math::BigRat"); Math::BigFloat -> downgrade("Math::BigInt"); Math::BigFloat -> upgrade("Math::BigRat"); $x = Math::BigRat -> new("3"); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("3"); $y = $x -> as_float();' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_float("3"); subtest '$y = Math::BigRat -> as_float("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_float("3.5"); subtest 'Math::BigRat -> as_float("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 3.5, 'value of $y'); }; Math::BigRat -> downgrade("Math::BigFloat"); $y = Math::BigRat -> as_float("3/2"); subtest 'Math::BigRat -> as_float("3/2");' => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', 'class of $y'); cmp_ok($y -> numify(), "==", 1.5, 'value of $y'); }; note("as_float() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_float()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_float(); subtest '$x = Math::BigRat -> new("3"); $x -> precision(2); $y = $x -> as_float()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_int-mbf.t0000644403072340010010000000525214546553333020114 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("as_int() as a class method"); $x = Math::BigFloat -> as_int("2"); subtest '$x = Math::BigFloat -> as_int("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_int() as an instance method"); $x = Math::BigFloat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_int() returns a Math::BigInt regardless of upgrading/downgrading"); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); Math::BigFloat -> upgrade("Math::BigRat"); $x = Math::BigFloat -> new("3"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("3"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $y'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_int("3"); subtest '$y = Math::BigFloat -> as_int("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_int("3.5"); subtest '$y = Math::BigFloat -> as_int("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); is($y, "3", 'value of $y'); }; note("as_int() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("3"); $x -> precision(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_int-mbi.t0000644403072340010010000001253114770455336020120 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; use Math::BigRat; my ($x, $y); note("as_int() as a class method"); $x = Math::BigInt -> as_int("2"); subtest '$x = Math::BigInt -> as_int("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_int() as an instance method"); $x = Math::BigInt -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2.8"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("2.8"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("14/5"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("14/5"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_int() returns a Math::BigInt regardless of upgrading/downgrading"); require Math::BigFloat; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); Math::BigFloat -> upgrade("Math::BigRat"); $y = Math::BigInt -> as_int("2"); subtest '$y = Math::BigInt -> as_int("2");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; $y = Math::BigInt -> as_int("2.8"); subtest '$y = Math::BigInt -> as_int("2.8");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); is($y, "2", 'value of $y'); }; $x = Math::BigInt -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $x'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; $x = Math::BigFloat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $x'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; $x = Math::BigFloat -> new("2.8"); $y = $x -> as_int(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigFloat', 'class of $x'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; $x = Math::BigRat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigRat', 'class of $x'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; $x = Math::BigRat -> new("14/5"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigRat', 'class of $x'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 2, 'value of $y'); }; note("as_int() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_int(); subtest '$x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_int(); subtest '$x = Math::BigInt -> new("3"); $x -> precision(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_int-mbr.t0000644403072340010010000000520414546553333020125 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigRat; my ($x, $y); note("as_int() as a class method"); $x = Math::BigRat -> as_int("2"); subtest '$x = Math::BigRat -> as_int("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_int() as an instance method"); $x = Math::BigRat -> new("2"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_int();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_int() returns a Math::BigInt regardless of upgrading/downgrading"); Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); Math::BigRat -> upgrade("Math::BigRat"); $x = Math::BigRat -> new("3"); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("3"); $y = $x -> as_int();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $y'); is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_int("3"); subtest '$y = Math::BigRat -> as_int("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_int("3.5"); subtest '$y = Math::BigRat -> as_int("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class of $y'); is($y, "3", 'value of $y'); }; note("as_int() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); Math::BigFloat -> upgrade(undef); $x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_int(); subtest '$x = Math::BigRat -> new("3"); $x -> precision(2); $y = $x -> as_int()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_number-mbf.t0000644403072340010010000000150014546553333020602 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("as_number() as a class method"); $x = Math::BigFloat -> as_number("2"); subtest '$x = Math::BigFloat -> as_number("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_number() as an instance method"); $x = Math::BigFloat -> new("2"); $y = $x -> as_number(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_number();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_number-mbi.t0000644403072340010010000000146214546553333020614 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigInt; my ($x, $y); note("as_number() as a class method"); $x = Math::BigInt -> as_number("2"); subtest '$x = Math::BigInt -> as_number("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_number() as an instance method"); $x = Math::BigInt -> new("2"); $y = $x -> as_number(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> as_number();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_number-mbr.t0000644403072340010010000000146214546553333020625 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigRat; my ($x, $y); note("as_number() as a class method"); $x = Math::BigRat -> as_number("2"); subtest '$x = Math::BigRat -> as_number("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_number() as an instance method"); $x = Math::BigRat -> new("2"); $y = $x -> as_number(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_number();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_rat-mbf.t0000644403072340010010000001200314546553333020100 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("as_rat() as a class method"); $x = Math::BigFloat -> as_rat("Inf"); subtest '$x = Math::BigFloat -> as_rat("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigFloat -> as_rat("-Inf"); subtest '$x = Math::BigFloat -> as_rat("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigFloat -> as_rat("NaN"); subtest '$x = Math::BigFloat -> as_rat("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigFloat -> as_rat("2"); subtest '$x = Math::BigFloat -> as_rat("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigFloat -> as_rat("2.5"); subtest '$x = Math::BigFloat -> as_rat("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("as_rat() as an instance method"); $x = Math::BigFloat -> new("Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("-Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("-Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("NaN"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("NaN"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigFloat -> new("2.5"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("2.5"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", 2.5, '$y == 2.5'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_rat() returns a Math::BigRat regardless of upgrading/downgrading"); require Math::BigRat; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigRat -> downgrade("Math::BigInt"); Math::BigRat -> upgrade("Math::BigFloat"); $x = Math::BigFloat -> new("3"); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("3"); $y = $x -> as_rat();' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_rat("3"); subtest '$y = Math::BigFloat -> as_rat("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigFloat -> as_rat("3.5"); subtest 'Math::BigFloat -> as_rat("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok($y -> numify(), "==", 3.5, 'value of $y'); }; note("as_rat() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); Math::BigRat -> upgrade(undef); $x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("3"); $x -> accuracy(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_rat(); subtest '$x = Math::BigFloat -> new("3"); $x -> precision(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_rat-mbi.t0000644403072340010010000001072514546553333020114 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigInt; my ($x, $y); note("as_rat() as a class method"); $x = Math::BigInt -> as_rat("Inf"); subtest '$x = Math::BigInt -> as_rat("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigInt -> as_rat("-Inf"); subtest '$x = Math::BigInt -> as_rat("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigInt -> as_rat("NaN"); subtest '$x = Math::BigInt -> as_rat("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigInt -> as_rat("2"); subtest '$x = Math::BigInt -> as_rat("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 2, '$x == 2'); }; note("as_rat() as an instance method"); $x = Math::BigInt -> new("Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("-Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("-Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("NaN"); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("NaN"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigInt -> new("2"); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_rat() returns a Math::BigRat regardless of upgrading/downgrading"); require Math::BigRat; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigRat -> downgrade("Math::BigInt"); Math::BigRat -> upgrade("Math::BigFloat"); $x = Math::BigInt -> new("3"); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("3"); $y = $x -> as_rat();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $y'); is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; $y = Math::BigInt -> as_rat("3"); subtest '$y = Math::BigInt -> as_rat("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok($y -> numify(), "==", 3, 'value of $y'); }; # Upgrading prevents the "3.5" to become a Math::BigInt with the value "NaN". $y = Math::BigInt -> as_rat("3.5"); subtest '$y = Math::BigInt -> as_rat("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); is($y, "7/2", 'value of $y'); }; note("as_rat() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); Math::BigRat -> upgrade(undef); $x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("3"); $x -> accuracy(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_rat(); subtest '$x = Math::BigInt -> new("3"); $x -> precision(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/as_rat-mbr.t0000644403072340010010000001173214546553333020124 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Scalar::Util qw< refaddr >; use Math::BigRat; my ($x, $y); note("as_rat() as a class method"); $x = Math::BigRat -> as_rat("Inf"); subtest '$x = Math::BigRat -> as_rat("Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "Inf", '$x == Inf'); }; $x = Math::BigRat -> as_rat("-Inf"); subtest '$x = Math::BigRat -> as_rat("-Inf");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "-Inf", '$x == -Inf'); }; $x = Math::BigRat -> as_rat("NaN"); subtest '$x = Math::BigRat -> as_rat("NaN");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is($x, "NaN", '$x is NaN'); }; $x = Math::BigRat -> as_rat("2"); subtest '$x = Math::BigRat -> as_rat("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigRat -> as_rat("2.5"); subtest '$x = Math::BigRat -> as_rat("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("as_rat() as an instance method"); $x = Math::BigRat -> new("Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "Inf", '$y == Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("-Inf"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("-Inf"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", "-Inf", '$y == -Inf'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("NaN"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("NaN"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, "NaN", '$y is NaN'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("2"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("2"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", 2, '$y == 2'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; $x = Math::BigRat -> new("2.5"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("2.5"); $y = $x -> as_rat();' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); cmp_ok($y, "==", 2.5, '$y == 2.5'); isnt(refaddr($x), refaddr($y), '$x and $y are different objects'); }; note("as_rat() returns a Math::BigRat regardless of upgrading/downgrading"); require Math::BigInt; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); Math::BigRat -> upgrade("Math::BigFloat"); $x = Math::BigRat -> new("3"); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("3"); $y = $x -> as_rat();' => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class of $x'); is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok(eval("$y"), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_rat("3"); subtest '$y = Math::BigRat -> as_rat("3");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok(eval("$y"), "==", 3, 'value of $y'); }; $y = Math::BigRat -> as_rat("3.5"); subtest '$y = Math::BigRat -> as_rat("3.5");' => sub { plan tests => 2; is(ref($y), 'Math::BigRat', 'class of $y'); cmp_ok(eval("$y"), "==", 3.5, 'value of $y'); }; note("as_rat() preserves all instance variables"); Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); Math::BigRat -> upgrade(undef); $x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("3"); $x -> accuracy(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), 2, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; $x -> precision(2); $y = $x -> as_rat(); subtest '$x = Math::BigRat -> new("3"); $x -> precision(2); $y = $x -> as_rat()' => sub { plan tests => 4; is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 2, 'precision of $x'); is($y -> accuracy(), $x -> accuracy(), 'accuracy of $y'); is($y -> precision(), $x -> precision(), 'precision of $y'); }; done_testing(); Math-BigInt-2.005003/xt/author/babs-mbf.t0000644403072340010010000000461414537274604017550 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 6; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; my ($x, $y); note("Testing Math::BigFloat->babs() without downgrading and upgrading"); note("babs() as a class method"); $x = Math::BigFloat -> babs("-2.5"); subtest '$x = Math::BigFloat -> babs("-2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("babs() as an instance method"); $x = Math::BigFloat -> new("-2.5"); $y = $x -> babs(); subtest '$x = Math::BigFloat -> new("-2.5"); $y = $x -> babs();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("babs() as a function"); SKIP: { skip "Math::BigFloat::babs() is a method, not a function", 1; $x = Math::BigFloat::babs("-2.5"); subtest '$x = Math::BigFloat::babs("-2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; } note("Testing Math::BigFloat->babs() with downgrading and upgrading"); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); note("babs() as a class method"); $x = Math::BigFloat -> babs("-2.5"); subtest '$x = Math::BigFloat -> babs("-2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("babs() as an instance method"); $x = Math::BigFloat -> new("-2.5"); $y = $x -> babs(); subtest '$x = Math::BigFloat -> new("-2.5"); $y = $x -> babs();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; note("babs() as a function"); SKIP: { skip "Math::BigFloat::babs() is a method, not a function", 1; $x = Math::BigFloat::babs("-2.5"); subtest '$x = Math::BigFloat::babs("-2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; } Math-BigInt-2.005003/xt/author/babs-mbi.t0000644403072340010010000001365314756672324017562 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 72; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; use Math::BigRat; my $cases = [ [ "-9", "9" ], [ "9", "9" ], [ "0", "0" ], [ "-inf", "inf" ], [ "inf", "inf" ], [ "NaN", "NaN" ], ]; note("\nMath::BigInt->babs() without downgrading and upgrading\n\n"); note("babs() as an instance method"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $x = Math::BigInt -> new($in); my $xa = refaddr($x); my $y = $x -> babs(); subtest qq|\$x = Math::BigInt -> new("$in"); \$y = \$x -> babs();| => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class'); is(refaddr($y), $xa, 'address'); is($x, $wanted, 'value'); }; } note("babs() as a class method given a scalar"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $y = Math::BigInt -> babs($in); subtest qq|\$y = Math::BigInt -> babs("$in");| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigInt"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $x = Math::BigInt -> new($in); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigInt -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigFloat"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $x = Math::BigFloat -> new($in); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigFloat -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigRat"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $x = Math::BigRat -> new($in); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigRat -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a function"); for my $case (@$cases) { my ($in, $wanted) = @$case; my $y = Math::BigInt::babs($in); subtest qq|\$y = Math::BigInt::babs("$in");| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("\nMath::BigInt->babs() with downgrading and upgrading\n\n"); note("babs() as an instance method"); for my $case (@$cases) { my ($in, $wanted) = @$case; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigInt -> new($in); my $xa = refaddr($x); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = $x -> babs(); subtest qq|\$x = Math::BigInt -> new("$in"); \$y = \$x -> babs();| => sub { plan tests => 3; is(ref($x), 'Math::BigInt', 'class'); is(refaddr($y), $xa, 'address'); is($x, $wanted, 'value'); }; } note("babs() as a class method"); note("babs() as a class method given a scalar"); for my $case (@$cases) { my ($in, $wanted) = @$case; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = Math::BigInt -> babs($in); subtest qq|\$y = Math::BigInt -> babs("$in");| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigInt"); for my $case (@$cases) { my ($in, $wanted) = @$case; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigInt -> new($in); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigInt -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigFloat"); for my $case (@$cases) { my ($in, $wanted) = @$case; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigFloat -> new($in); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigFloat -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } note("babs() as a class method given a Math::BigRat"); for my $case (@$cases) { my ($in, $wanted) = @$case; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigRat -> new($in); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = Math::BigInt -> babs($x); subtest qq|\$x = Math::BigRat -> new("$in"); \$y = Math::BigInt -> babs(\$x);| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } for my $case (@$cases) { my ($in, $wanted) = @$case; note("babs() as a function"); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = Math::BigInt::babs($in); subtest qq|\$y = Math::BigInt::babs("$in");| => sub { plan tests => 2; is(ref($y), 'Math::BigInt', 'class'); is($y, $wanted, 'value'); }; } Math-BigInt-2.005003/xt/author/backermann-mbi.t0000644403072340010010000001573714744447127020757 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 858; my $class; BEGIN { $class = 'Math::BigInt'; use_ok($class); } can_ok($class, 'backermann', 'ackermann'); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($m, $n, $expected) = split /:/; # backermann() modifies the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$m"); \$y = \$x->backermann("$n");|; subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $expected, "'$test' invocand has the right value"); }; } # ackermann() does not modify the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$m"); \$y = \$x->ackermann("$n");|; subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $m, "'$test' invocand has the right value"); }; } } __DATA__ 0:0:1 0:1:2 0:2:3 0:3:4 0:4:5 0:5:6 0:6:7 0:7:8 0:8:9 0:9:10 0:10:11 0:11:12 0:12:13 0:13:14 0:14:15 0:15:16 0:16:17 0:17:18 0:18:19 0:19:20 0:20:21 0:21:22 0:22:23 0:23:24 0:24:25 0:25:26 0:26:27 0:27:28 0:28:29 0:29:30 0:30:31 0:31:32 0:32:33 0:33:34 0:34:35 0:35:36 0:36:37 0:37:38 0:38:39 0:39:40 0:40:41 0:41:42 0:42:43 0:43:44 0:44:45 0:45:46 0:46:47 0:47:48 0:48:49 0:49:50 0:50:51 0:51:52 0:52:53 0:53:54 0:54:55 0:55:56 0:56:57 0:57:58 0:58:59 0:59:60 0:60:61 0:61:62 0:62:63 0:63:64 0:64:65 0:65:66 0:66:67 0:67:68 0:68:69 0:69:70 0:70:71 0:71:72 0:72:73 0:73:74 0:74:75 0:75:76 0:76:77 0:77:78 0:78:79 0:79:80 0:80:81 0:81:82 0:82:83 0:83:84 0:84:85 0:85:86 0:86:87 0:87:88 0:88:89 0:89:90 0:90:91 0:91:92 0:92:93 0:93:94 0:94:95 0:95:96 0:96:97 0:97:98 0:98:99 0:99:100 0:100:101 0:1000:1001 0:100000:100001 0:10000000:10000001 0:10000000000:10000000001 0:10000000000000:10000000000001 0:10000000000000000000000000000000000:10000000000000000000000000000000001 0:12345678987654321012345678987654321:12345678987654321012345678987654322 1:0:2 1:1:3 1:2:4 1:3:5 1:4:6 1:5:7 1:6:8 1:7:9 1:8:10 1:9:11 1:10:12 1:11:13 1:12:14 1:13:15 1:14:16 1:15:17 1:16:18 1:17:19 1:18:20 1:19:21 1:20:22 1:21:23 1:22:24 1:23:25 1:24:26 1:25:27 1:26:28 1:27:29 1:28:30 1:29:31 1:30:32 1:31:33 1:32:34 1:33:35 1:34:36 1:35:37 1:36:38 1:37:39 1:38:40 1:39:41 1:40:42 1:41:43 1:42:44 1:43:45 1:44:46 1:45:47 1:46:48 1:47:49 1:48:50 1:49:51 1:50:52 1:51:53 1:52:54 1:53:55 1:54:56 1:55:57 1:56:58 1:57:59 1:58:60 1:59:61 1:60:62 1:61:63 1:62:64 1:63:65 1:64:66 1:65:67 1:66:68 1:67:69 1:68:70 1:69:71 1:70:72 1:71:73 1:72:74 1:73:75 1:74:76 1:75:77 1:76:78 1:77:79 1:78:80 1:79:81 1:80:82 1:81:83 1:82:84 1:83:85 1:84:86 1:85:87 1:86:88 1:87:89 1:88:90 1:89:91 1:90:92 1:91:93 1:92:94 1:93:95 1:94:96 1:95:97 1:96:98 1:97:99 1:98:100 1:99:101 1:100:102 1:1000:1002 1:100000:100002 1:10000000:10000002 1:10000000000:10000000002 1:10000000000000:10000000000002 1:10000000000000000000000000000000000:10000000000000000000000000000000002 1:12345678987654321012345678987654321:12345678987654321012345678987654323 2:0:3 2:1:5 2:2:7 2:3:9 2:4:11 2:5:13 2:6:15 2:7:17 2:8:19 2:9:21 2:10:23 2:11:25 2:12:27 2:13:29 2:14:31 2:15:33 2:16:35 2:17:37 2:18:39 2:19:41 2:20:43 2:21:45 2:22:47 2:23:49 2:24:51 2:25:53 2:26:55 2:27:57 2:28:59 2:29:61 2:30:63 2:31:65 2:32:67 2:33:69 2:34:71 2:35:73 2:36:75 2:37:77 2:38:79 2:39:81 2:40:83 2:41:85 2:42:87 2:43:89 2:44:91 2:45:93 2:46:95 2:47:97 2:48:99 2:49:101 2:50:103 2:51:105 2:52:107 2:53:109 2:54:111 2:55:113 2:56:115 2:57:117 2:58:119 2:59:121 2:60:123 2:61:125 2:62:127 2:63:129 2:64:131 2:65:133 2:66:135 2:67:137 2:68:139 2:69:141 2:70:143 2:71:145 2:72:147 2:73:149 2:74:151 2:75:153 2:76:155 2:77:157 2:78:159 2:79:161 2:80:163 2:81:165 2:82:167 2:83:169 2:84:171 2:85:173 2:86:175 2:87:177 2:88:179 2:89:181 2:90:183 2:91:185 2:92:187 2:93:189 2:94:191 2:95:193 2:96:195 2:97:197 2:98:199 2:99:201 2:100:203 2:1000:2003 2:100000:200003 2:10000000:20000003 2:10000000000:20000000003 2:10000000000000:20000000000003 2:10000000000000000000000000000000000:20000000000000000000000000000000003 2:12345678987654321012345678987654321:24691357975308642024691357975308645 3:0:5 3:1:13 3:2:29 3:3:61 3:4:125 3:5:253 3:6:509 3:7:1021 3:8:2045 3:9:4093 3:10:8189 3:11:16381 3:12:32765 3:13:65533 3:14:131069 3:15:262141 3:16:524285 3:17:1048573 3:18:2097149 3:19:4194301 3:20:8388605 3:21:16777213 3:22:33554429 3:23:67108861 3:24:134217725 3:25:268435453 3:26:536870909 3:27:1073741821 3:28:2147483645 3:29:4294967293 3:30:8589934589 3:31:17179869181 3:32:34359738365 3:33:68719476733 3:34:137438953469 3:35:274877906941 3:36:549755813885 3:37:1099511627773 3:38:2199023255549 3:39:4398046511101 3:40:8796093022205 3:41:17592186044413 3:42:35184372088829 3:43:70368744177661 3:44:140737488355325 3:45:281474976710653 3:46:562949953421309 3:47:1125899906842621 3:48:2251799813685245 3:49:4503599627370493 3:50:9007199254740989 3:51:18014398509481981 3:52:36028797018963965 3:53:72057594037927933 3:54:144115188075855869 3:55:288230376151711741 3:56:576460752303423485 3:57:1152921504606846973 3:58:2305843009213693949 3:59:4611686018427387901 3:60:9223372036854775805 3:61:18446744073709551613 3:62:36893488147419103229 3:63:73786976294838206461 3:64:147573952589676412925 3:65:295147905179352825853 3:66:590295810358705651709 3:67:1180591620717411303421 3:68:2361183241434822606845 3:69:4722366482869645213693 3:70:9444732965739290427389 3:71:18889465931478580854781 3:72:37778931862957161709565 3:73:75557863725914323419133 3:74:151115727451828646838269 3:75:302231454903657293676541 3:76:604462909807314587353085 3:77:1208925819614629174706173 3:78:2417851639229258349412349 3:79:4835703278458516698824701 3:80:9671406556917033397649405 3:81:19342813113834066795298813 3:82:38685626227668133590597629 3:83:77371252455336267181195261 3:84:154742504910672534362390525 3:85:309485009821345068724781053 3:86:618970019642690137449562109 3:87:1237940039285380274899124221 3:88:2475880078570760549798248445 3:89:4951760157141521099596496893 3:90:9903520314283042199192993789 3:91:19807040628566084398385987581 3:92:39614081257132168796771975165 3:93:79228162514264337593543950333 3:94:158456325028528675187087900669 3:95:316912650057057350374175801341 3:96:633825300114114700748351602685 3:97:1267650600228229401496703205373 3:98:2535301200456458802993406410749 3:99:5070602400912917605986812821501 3:100:10141204801825835211973625643005 4:0:13 4:1:65533 5:0:65533 Math-BigInt-2.005003/xt/author/badd-mbr.t0000644403072340010010000000657414546553333017555 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 173; my $class; BEGIN { $class = 'Math::BigRat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($xval, $yval, $zval) = split /:/; my ($x, $y, $got, @got); for my $context_is_scalar (0, 1) { for my $y_is_scalar (0, 1) { my $test = qq|\$x = $class -> new("$xval");|; $test .= $y_is_scalar ? qq| \$y = "$yval";| : qq| \$y = $class -> new("$yval");|; $test .= $context_is_scalar ? qq| \$got = \$x -> badd(\$y);| : qq| \@got = \$x -> badd(\$y);|; my $desc = "badd() in "; $desc .= $context_is_scalar ? "scalar context" : "list context"; $desc .= $y_is_scalar ? " with y as scalar" : " with y as object"; subtest $desc, sub { plan tests => $context_is_scalar ? 7 : 8; eval $test; is($@, "", "'$test' gives emtpy \$\@"); if ($context_is_scalar) { # Check output. is(ref($got), $class, "'$test' output arg is a $class"); is($got -> bstr(), $zval, "'$test' output arg has the right value"); } else { # Check number of output arguments. cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); # Check output. is(ref($got[0]), $class, "'$test' output arg is a $class"); is($got[0] -> bstr(), $zval, "'$test' output arg has the right value"); } # Check the invocand. is(ref($x), $class, "'$test' invocand is still a $class"); is($x -> bstr(), $zval, "'$test' invocand has the right value"); # Check the input argument. if ($y_is_scalar) { is(ref($y), '', "'$test' second input arg is still a scalar"); is($y, $yval, "'$test' second input arg is unmodified"); } else { is(ref($y), $class, "'$test' second input arg is still a $class"); is($y -> bstr(), $yval, "'$test' second input arg is unmodified"); } }; } } } __DATA__ # x and/or y is NaN NaN:NaN:NaN NaN:-inf:NaN NaN:-3:NaN NaN:0:NaN NaN:3:NaN NaN:inf:NaN -inf:NaN:NaN -3:NaN:NaN 0:NaN:NaN 3:NaN:NaN inf:NaN:NaN # x = inf inf:-inf:NaN inf:-3:inf inf:-2:inf inf:-1:inf inf:0:inf inf:1:inf inf:2:inf inf:3:inf inf:inf:inf # x = -inf -inf:-inf:-inf -inf:-3:-inf -inf:-2:-inf -inf:-1:-inf -inf:0:-inf -inf:1:-inf -inf:2:-inf -inf:3:-inf -inf:inf:NaN # y = inf -3:inf:inf -2:inf:inf -1:inf:inf 0:inf:inf 1:inf:inf 2:inf:inf 3:inf:inf # y = -inf -3:-inf:-inf -2:-inf:-inf -1:-inf:-inf 0:-inf:-inf 1:-inf:-inf 2:-inf:-inf 3:-inf:-inf Math-BigInt-2.005003/xt/author/batan-mbf.t0000644403072340010010000001013214546553333017715 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; note("batan() as a class method"); cmp_ok(Math::BigFloat -> batan("-inf"), "==", "-1.570796326794896619231321691639751442098", 'Math::BigFloat -> batan("-inf")'); cmp_ok(Math::BigFloat -> batan("-2"), "==", "-1.107148717794090503017065460178537040070", 'Math::BigFloat -> batan("-2")'); cmp_ok(Math::BigFloat -> batan(0), "==", "0", 'Math::BigFloat -> batan(0)'); cmp_ok(Math::BigFloat -> batan("2"), "==", "1.107148717794090503017065460178537040070", 'Math::BigFloat -> batan("2")'); cmp_ok(Math::BigFloat -> batan("inf"), "==", "1.570796326794896619231321691639751442098", 'Math::BigFloat -> batan("inf")'); is(Math::BigFloat -> batan("NaN"), "NaN", 'Math::BigFloat -> batan("NaN")'); note("batan() as an instance method"); cmp_ok(Math::BigFloat -> new("-inf") -> batan(), "==", "-1.570796326794896619231321691639751442098", 'Math::BigFloat -> new("-inf")'); cmp_ok(Math::BigFloat -> new("-2") -> batan(), "==", "-1.107148717794090503017065460178537040070", 'Math::BigFloat -> new("-2")'); cmp_ok(Math::BigFloat -> new(0) -> batan(), "==", "0", 'Math::BigFloat -> new(0)'); cmp_ok(Math::BigFloat -> new("2") -> batan(), "==", "1.107148717794090503017065460178537040070", 'Math::BigFloat -> new("2")'); cmp_ok(Math::BigFloat -> new("inf") -> batan(), "==", "1.570796326794896619231321691639751442098", 'Math::BigFloat -> new("inf")'); is(Math::BigFloat -> new("NaN") -> batan(), "NaN", 'Math::BigFloat -> new("NaN")'); ################################################################################ use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $class = 'Math::BigFloat'; # atan X sub atan { atan2($_[0], 1) } # isnan X sub isnan { $_[0] != $_[0] } # linspace MIN, MAX, N # # Returns N linearly spaced elements from MIN to MAX. sub linspace { my ($xmin, $xmax, $n) = @_; if ($n == 0) { return (); } elsif ($n == 1) { return ($xmin); } else { my $c = ($xmax - $xmin) / ($n - 1); return map { $xmin + $c * $_ } 0 .. ($n - 1); } } # logspace MIN, MAX, N # # Returns N logarithmically spaced elements from MIN to MAX. sub logspace { my ($xmin, $xmax, $n) = @_; if ($n == 0) { return (); } elsif ($n == 1) { return ($xmin); } else { my @lin = linspace(log($xmin), log($xmax), $n); my @log = map { exp } @lin; $log[ 0 ] = $xmin; $log[ $#log ] = $xmax; return @log; } } my @x; @x = logspace(0.01, 12, 20); @x = map { sprintf "%.3g", $_ } @x; @x = (reverse(map( { -$_ } @x)), 0, @x, $nan); my $accu = 16; my $tol = 1e-13; my $max_relerr = 0; for (my $i = 0; $i <= $#x ; ++$i) { my $x = $x[$i]; my $pl = atan($x); my $bf = $class -> new("$x") -> batan($accu); my $desc = qq|$class->new("$x")->batan($accu) vs. CORE::atan2("$x", 1)|; if (isnan($x)) { is($bf, "NaN", $desc); } elsif ($x == 0) { cmp_ok($bf, '==', $pl, $desc); } else { my $relerr = abs(($bf - $pl) / $pl); # relative error #printf("# %23.15e %23.15e %23.15e %23.15e\n", $x, $pl, $bf, $relerr); cmp_ok($relerr, '<', $tol, "relative error of $desc"); $max_relerr = $relerr if $relerr > $max_relerr; } } diag("Maximum relative error = ", $max_relerr -> numify(), "\n"); # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before batan()"); my $x = $class -> new("1.2345"); $x -> batan(); is($class -> accuracy(), 10, "class accuracy is 10 after batan()"); } SKIP: { skip "Test causes accuracy and precision to be set internally. Fixme!", 2; $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before batan()"); my $x = $class -> new("1.2345"); $x -> batan(); is($class -> precision(), -10, "class precision is -10 after batan()"); } done_testing(); Math-BigInt-2.005003/xt/author/batan-mbi.t0000644403072340010010000000230314537274604017722 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; use Math::BigInt; note("batan() as a class method"); cmp_ok(Math::BigInt -> batan("-inf"), "==", -1, 'Math::BigInt -> batan("-inf")'); cmp_ok(Math::BigInt -> batan("-2"), "==", -1, 'Math::BigInt -> batan("-2")'); cmp_ok(Math::BigInt -> batan(0), "==", 0, 'Math::BigInt -> batan(0)'); cmp_ok(Math::BigInt -> batan("2"), "==", 1, 'Math::BigInt -> batan("2")'); cmp_ok(Math::BigInt -> batan("inf"), "==", 1, 'Math::BigInt -> batan("inf")'); is(Math::BigInt -> batan("NaN"), "NaN", 'Math::BigInt -> batan("NaN")'); note("batan() as an instance method"); cmp_ok(Math::BigInt -> new("-inf") -> batan(), "==", -1, 'Math::BigInt -> new("-inf")'); cmp_ok(Math::BigInt -> new("-2") -> batan(), "==", -1, 'Math::BigInt -> new("-2")'); cmp_ok(Math::BigInt -> new(0) -> batan(), "==", 0, 'Math::BigInt -> new(0)'); cmp_ok(Math::BigInt -> new("2") -> batan(), "==", 1, 'Math::BigInt -> new("2")'); cmp_ok(Math::BigInt -> new("inf") -> batan(), "==", 1, 'Math::BigInt -> new("inf")'); is(Math::BigInt -> new("NaN") -> batan(), "NaN", 'Math::BigInt -> new("NaN")'); Math-BigInt-2.005003/xt/author/batan2-mbf.t0000644403072340010010000000631014536617517020006 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3528; use Math::Complex (); use Math::BigFloat; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $class = 'Math::BigFloat'; # isnan X sub isnan { $_[0] != $_[0] } # linspace MIN, MAX, N # # Returns N linearly spaced elements from MIN to MAX. sub linspace { my ($xmin, $xmax, $n) = @_; if ($n == 0) { return (); } elsif ($n == 1) { return ($xmin); } else { my $c = ($xmax - $xmin) / ($n - 1); return map { $xmin + $c * $_ } 0 .. ($n - 1); } } # logspace MIN, MAX, N # # Returns N logarithmically spaced elements from MIN to MAX. sub logspace { my ($xmin, $xmax, $n) = @_; if ($n == 0) { return (); } elsif ($n == 1) { return ($xmin); } else { my @lin = linspace(log($xmin), log($xmax), $n); my @log = map { exp } @lin; $log[ 0 ] = $xmin; $log[ $#log ] = $xmax; return @log; } } my @x; @x = logspace(0.01, 12, 20); @x = map { sprintf "%.3g", $_ } @x; @x = (reverse(map( { -$_ } @x)), 0, @x, $nan); my $accu = 16; my $tol = 1e-13; my $max_relerr = 0; for my $ply (@x) { for my $plx (@x) { my $plz = CORE::atan2($ply, $plx); # $y -> batan2($x) where $x is a scalar { my $y = $class -> new($ply); $y -> batan2($plx, $accu); my $desc = qq|\$y = $class->new("$ply");| . qq| \$y->batan2("$plx", $accu)| . qq| vs. CORE::atan2($ply, $plx)|; if (isnan($plz)) { is($y, "NaN", $desc); } elsif ($plz == 0) { cmp_ok($y, '==', $plz, $desc); } else { my $relerr = abs(($y - $plz) / $plz); if (!cmp_ok($relerr, '<', $tol, "relative error of $desc")) { diag(sprintf(" CORE::atan2(...): %.15g\n" . " Math::BigFloat->batan2(...): %.15g\n", $plz, $y)); } $max_relerr = $relerr if $relerr > $max_relerr; } } # $y -> batan2($x) where $x is an object { my $x = $class -> new($plx); my $y = $class -> new($ply); $y -> batan2($plx, $accu); my $desc = qq|\$y = $class->new("$ply");| . qq| \$x = $class->new("$plx");| . qq| \$y->batan2(\$x, $accu)| . qq| vs. CORE::atan2($ply, $plx)|; if (isnan($plz)) { is($y, "NaN", $desc); } elsif ($plz == 0) { cmp_ok($y, '==', $plz, $desc); } else { my $relerr = abs(($y - $plz) / $plz); if (!cmp_ok($relerr, '<', $tol, "relative error of $desc")) { diag(sprintf(" CORE::atan2(...): %.15g\n" . " Math::BigFloat->batan2(...): %.15g\n", $plz, $y)); } $max_relerr = $relerr if $relerr > $max_relerr; } } } } diag("Maximum relative error = ", $max_relerr -> numify(), "\n"); Math-BigInt-2.005003/xt/author/bblsft-mbf-mbr.t0000644403072340010010000002335214756672324020677 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test # - Math::BigFloat -> bblsft() with and without upgrading to Math::BigRat # - Math::BigRat -> bblsft() with and without downgrading to Math::BigFloat use strict; use warnings; use Test::More tests => 1553472; use Math::BigFloat; use Math::BigRat; $| = 1; my @cases = ( [ 0, 1, 0 ], [ 0, 1.5, 0 ], [ 0, 1, 0 ], [ 7, 1, 14 ], [ 7, 1, 14 ], [ 7.5, 1, 14 ], [ 7, 1.5, 14 ], [ 7.5, 1.5, 14 ], [ -7, 1, -14 ], [ -7.5, 1, -14 ], [ -7, 1.5, -14 ], [ -7.5, 1.5, -14 ], [ 7, -1, 3 ], [ 7.5, -1, 3 ], [ 7, -1.5, 3 ], [ 7.5, -1.5, 3 ], [ -7, -1, -4 ], [ -7.5, -1, -4 ], [ -7, -1.5, -4 ], [ -7.5, -1.5, -4 ], # NaN [ "NaN", 0, "NaN" ], [ "NaN", 1, "NaN" ], [ "NaN", 1.5, "NaN" ], [ "NaN", "inf", "NaN" ], [ "NaN", -1, "NaN" ], [ "NaN", -1.5, "NaN" ], [ "NaN", "-inf", "NaN" ], [ "NaN", "NaN", "NaN" ], [ 0, "NaN", "NaN" ], [ 1, "NaN", "NaN" ], [ 1.5, "NaN", "NaN" ], [ "inf", "NaN", "NaN" ], [ -1, "NaN", "NaN" ], [ -1.5, "NaN", "NaN" ], [ "-inf", "NaN", "NaN" ], [ "NaN", "NaN", "NaN" ], # inf [ "inf", 0, "inf" ], [ "inf", 1, "inf" ], [ "inf", 1.5, "inf" ], [ "inf", "inf", "inf" ], [ "inf", -1, "inf" ], [ "inf", -1.5, "inf" ], [ "inf", "-inf", "NaN" ], [ 0, "inf", "NaN" ], [ 1, "inf", "inf" ], [ 1.5, "inf", "inf" ], [ -1, "inf", "-inf" ], [ -1.5, "inf", "-inf" ], # -inf (note that floored division is used here) [ "-inf", 0, "-inf" ], # -inf * 2**(0) = -inf [ "-inf", 1, "-inf" ], # -inf * 2**(1) = -inf [ "-inf", 1.5, "-inf" ], # -inf * 2**(1.5) = -inf [ "-inf", "inf", "-inf" ], # -inf * 2**(inf) = -inf * inf = -inf [ "-inf", -1, "-inf" ], # -inf * 2**(-1) = -inf / 2 = -inf [ "-inf", -1.5, "-inf" ], # -inf * 2**(-1.5) = -inf / 2**(1.5) = -inf [ "-inf", "-inf", "NaN" ], # -inf * 2**(-inf) = -inf / 2**(inf) = NaN [ 0, "-inf", 0 ], # 0 * 2**(-inf) = 0 / 2**(inf) = 0 / inf = 0 [ 1, "-inf", 0 ], # 1 * 2**(-inf) = 1 / 2**(inf) = 1 / inf = 0 [ 1.5, "-inf", 0 ], # 1.5 * 2**(-inf) = 1.5 / 2**(inf) = 0 [ -1, "-inf", -1 ], # -1 * 2**(-inf) = -1 / 2**(inf) = -1 [ -1.5, "-inf", -1 ], # -1.5 * 2**(-inf) = -1.5 / 2**(inf) = -1 ); # Add more test cases. if (1) { my @x = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); my @y = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); for my $x (@x) { for my $y (@y) { my $xint = Math::BigFloat -> new($x) -> as_int(); my $yint = Math::BigFloat -> new($y) -> as_int(); my $z = $yint < 0 ? $xint -> bdiv(Math::BigInt -> new(2) -> bpow(-$yint)) : $xint -> bmul(Math::BigInt -> new(2) -> bpow($yint)); $z = $z -> bint(); $z = $z -> is_nan() ? "NaN" : $z -> is_inf("+") ? "inf" : $z -> is_inf("-") ? "-inf" : $z -> numify(); push @cases, [ $x, $y, $z ]; } } } # If called as an instance method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigFloat") { Math::BigFloat -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat'); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigFloat'; # unless $xscl =~ /\./; unshift @yref, 'Math::BigFloat'; # unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the class of the # invocand, except if we are downgrading. my $zref = $dng ? "Math::BigFloat" : $xref; # test "$x -> bblsft($y)", which modifies $x note "\n"; note "Math::BigFloat -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x -> bblsft(\$y);", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x -> bblsft($y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x <<= $y", which modifies $x note "\n"; note "Math::BigFloat -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x <<= \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x <<= $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x << $y", which does not modify $x note "\n"; note "Math::BigFloat -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x << \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x << $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); if ($xscl == $xscl) { # $x is not a NaN cmp_ok($x, "==", $xscl, "invocand value $xscl is unmodified"); } else { # $x is a NaN is($x, $xscl, "invocand value $xscl is unmodified"); } } } } } } } # If called as a class method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigFloat") { Math::BigFloat -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $ref ("Math::BigFloat", "Math::BigRat") { for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat', ''); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigFloat'; #unless $xscl =~ /\./; unshift @yref, 'Math::BigFloat'; #unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the calling class, # except if we are downgrading. my $zref = $dng ? "Math::BigFloat" : $ref; my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; note "\n"; note "Math::BigFloat -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = \"$xscl\";", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = \"$yscl\";", " \$z = $ref -> bblsft(\$x, \$y);", " print \$z\n"; note "\n"; my $z = eval { $ref -> bblsft($x, $y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); # What happens when we are upgrading and/or downgrading # is more complicated, so ignore these cases for now. if ($ref eq "Math::BigFloat" && $xref eq "Math::BigFloat" || $ref eq "Math::BigRat" && $xref eq "Math::BigRat" && !$dng) { is($x, $z, "invocand is the output (value is $zscl)"); } } } } } } } Math-BigInt-2.005003/xt/author/bblsft-mbi-mbf.t0000644403072340010010000002276314756672324020673 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test # - Math::BigInt -> bblsft() with and without upgrading to Math::BigFloat # - Math::BigFloat -> bblsft() with and without downgrading to Math::BigInt use strict; use warnings; use Test::More tests => 832814; use Math::BigInt; use Math::BigFloat; $| = 1; my @cases = ( [ 0, 1, 0 ], [ 0, 1.5, 0 ], [ 0, 1, 0 ], [ 7, 1, 14 ], [ 7, 1, 14 ], [ 7.5, 1, 14 ], [ 7, 1.5, 14 ], [ 7.5, 1.5, 14 ], [ -7, 1, -14 ], [ -7.5, 1, -14 ], [ -7, 1.5, -14 ], [ -7.5, 1.5, -14 ], [ 7, -1, 3 ], [ 7.5, -1, 3 ], [ 7, -1.5, 3 ], [ 7.5, -1.5, 3 ], [ -7, -1, -4 ], [ -7.5, -1, -4 ], [ -7, -1.5, -4 ], [ -7.5, -1.5, -4 ], # NaN [ "NaN", 0, "NaN" ], [ "NaN", 1, "NaN" ], [ "NaN", 1.5, "NaN" ], [ "NaN", "inf", "NaN" ], [ "NaN", -1, "NaN" ], [ "NaN", -1.5, "NaN" ], [ "NaN", "-inf", "NaN" ], [ "NaN", "NaN", "NaN" ], [ 0, "NaN", "NaN" ], [ 1, "NaN", "NaN" ], [ 1.5, "NaN", "NaN" ], [ "inf", "NaN", "NaN" ], [ -1, "NaN", "NaN" ], [ -1.5, "NaN", "NaN" ], [ "-inf", "NaN", "NaN" ], [ "NaN", "NaN", "NaN" ], # inf [ "inf", 0, "inf" ], [ "inf", 1, "inf" ], [ "inf", 1.5, "inf" ], [ "inf", "inf", "inf" ], [ "inf", -1, "inf" ], [ "inf", -1.5, "inf" ], [ "inf", "-inf", "NaN" ], [ 0, "inf", "NaN" ], [ 1, "inf", "inf" ], [ 1.5, "inf", "inf" ], [ -1, "inf", "-inf" ], [ -1.5, "inf", "-inf" ], # -inf (note that floored division is used here) [ "-inf", 0, "-inf" ], # -inf * 2**(0) = -inf [ "-inf", 1, "-inf" ], # -inf * 2**(1) = -inf [ "-inf", 1.5, "-inf" ], # -inf * 2**(1.5) = -inf [ "-inf", "inf", "-inf" ], # -inf * 2**(inf) = -inf * inf = -inf [ "-inf", -1, "-inf" ], # -inf * 2**(-1) = -inf / 2 = -inf [ "-inf", -1.5, "-inf" ], # -inf * 2**(-1.5) = -inf / 2**(1.5) = -inf [ "-inf", "-inf", "NaN" ], # -inf * 2**(-inf) = -inf / 2**(inf) = NaN [ 0, "-inf", 0 ], # 0 * 2**(-inf) = 0 / 2**(inf) = 0 / inf = 0 [ 1, "-inf", 0 ], # 1 * 2**(-inf) = 1 / 2**(inf) = 1 / inf = 0 [ 1.5, "-inf", 0 ], # 1.5 * 2**(-inf) = 1.5 / 2**(inf) = 0 [ -1, "-inf", -1 ], # -1 * 2**(-inf) = -1 / 2**(inf) = -1 [ -1.5, "-inf", -1 ], # -1.5 * 2**(-inf) = -1.5 / 2**(inf) = -1 ); # Add more test cases. if (1) { my @x = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); my @y = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); for my $x (@x) { for my $y (@y) { my $xint = Math::BigFloat -> new($x) -> as_int(); my $yint = Math::BigFloat -> new($y) -> as_int(); my $z = $yint < 0 ? $xint -> bdiv(Math::BigInt -> new(2) -> bpow(-$yint)) : $xint -> bmul(Math::BigInt -> new(2) -> bpow($yint)); $z = $z -> bint(); $z = $z -> is_nan() ? "NaN" : $z -> is_inf("+") ? "inf" : $z -> is_inf("-") ? "-inf" : $z -> numify(); push @cases, [ $x, $y, $z ]; } } } # If called as an instance method. for my $upg (undef, "Math::BigFloat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigFloat -> downgrade($dng); for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigFloat'); my @yref = ('Math::BigFloat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the class of the # invocand, except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $xref; # test "$x -> bblsft($y)", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x -> bblsft(\$y);", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x -> bblsft($y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x <<= $y", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x <<= \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x <<= $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x << $y", which does not modify $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x << \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x << $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $xscl, "invocand value $xscl is unmodified"); } } } } } } # If called as a class method. for my $upg (undef, "Math::BigFloat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigFloat -> downgrade($dng); for my $ref ("Math::BigInt", "Math::BigFloat") { for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigFloat', ''); my @yref = ('Math::BigFloat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the calling class, # except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $ref; my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = \"$xscl\";", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = \"$yscl\";", " \$z = $ref -> bblsft(\$x, \$y);", " print \$z\n"; note "\n"; my $z = eval { $ref -> bblsft($x, $y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); # What happens when we are upgrading and/or downgrading # is more complicated, so ignore these cases for now. if ($ref eq "Math::BigInt" && $xref eq "Math::BigInt" || $ref eq "Math::BigFloat" && $xref eq "Math::BigFloat" && !$dng) { is($x, $z, "invocand is the output (value is $zscl)"); } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bblsft-mbi-mbr.t0000644403072340010010000002331014756672324020674 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test # - Math::BigInt -> bblsft() with and without upgrading to Math::BigRat # - Math::BigRat -> bblsft() with and without downgrading to Math::BigInt use strict; use warnings; use Test::More tests => 832814; use Math::BigInt; use Math::BigRat; $| = 1; my @cases = ( [ 0, 1, 0 ], [ 0, 1.5, 0 ], [ 0, 1, 0 ], [ 7, 1, 14 ], [ 7, 1, 14 ], [ 7.5, 1, 14 ], [ 7, 1.5, 14 ], [ 7.5, 1.5, 14 ], [ -7, 1, -14 ], [ -7.5, 1, -14 ], [ -7, 1.5, -14 ], [ -7.5, 1.5, -14 ], [ 7, -1, 3 ], [ 7.5, -1, 3 ], [ 7, -1.5, 3 ], [ 7.5, -1.5, 3 ], [ -7, -1, -4 ], [ -7.5, -1, -4 ], [ -7, -1.5, -4 ], [ -7.5, -1.5, -4 ], # NaN [ "NaN", 0, "NaN" ], [ "NaN", 1, "NaN" ], [ "NaN", 1.5, "NaN" ], [ "NaN", "inf", "NaN" ], [ "NaN", -1, "NaN" ], [ "NaN", -1.5, "NaN" ], [ "NaN", "-inf", "NaN" ], [ "NaN", "NaN", "NaN" ], [ 0, "NaN", "NaN" ], [ 1, "NaN", "NaN" ], [ 1.5, "NaN", "NaN" ], [ "inf", "NaN", "NaN" ], [ -1, "NaN", "NaN" ], [ -1.5, "NaN", "NaN" ], [ "-inf", "NaN", "NaN" ], [ "NaN", "NaN", "NaN" ], # inf [ "inf", 0, "inf" ], [ "inf", 1, "inf" ], [ "inf", 1.5, "inf" ], [ "inf", "inf", "inf" ], [ "inf", -1, "inf" ], [ "inf", -1.5, "inf" ], [ "inf", "-inf", "NaN" ], [ 0, "inf", "NaN" ], [ 1, "inf", "inf" ], [ 1.5, "inf", "inf" ], [ -1, "inf", "-inf" ], [ -1.5, "inf", "-inf" ], # -inf (note that floored division is used here) [ "-inf", 0, "-inf" ], # -inf * 2**(0) = -inf [ "-inf", 1, "-inf" ], # -inf * 2**(1) = -inf [ "-inf", 1.5, "-inf" ], # -inf * 2**(1.5) = -inf [ "-inf", "inf", "-inf" ], # -inf * 2**(inf) = -inf * inf = -inf [ "-inf", -1, "-inf" ], # -inf * 2**(-1) = -inf / 2 = -inf [ "-inf", -1.5, "-inf" ], # -inf * 2**(-1.5) = -inf / 2**(1.5) = -inf [ "-inf", "-inf", "NaN" ], # -inf * 2**(-inf) = -inf / 2**(inf) = NaN [ 0, "-inf", 0 ], # 0 * 2**(-inf) = 0 / 2**(inf) = 0 / inf = 0 [ 1, "-inf", 0 ], # 1 * 2**(-inf) = 1 / 2**(inf) = 1 / inf = 0 [ 1.5, "-inf", 0 ], # 1.5 * 2**(-inf) = 1.5 / 2**(inf) = 0 [ -1, "-inf", -1 ], # -1 * 2**(-inf) = -1 / 2**(inf) = -1 [ -1.5, "-inf", -1 ], # -1.5 * 2**(-inf) = -1.5 / 2**(inf) = -1 ); # Add more test cases. if (1) { my @x = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); my @y = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); for my $x (@x) { for my $y (@y) { my $xint = Math::BigFloat -> new($x) -> as_int(); my $yint = Math::BigFloat -> new($y) -> as_int(); my $z = $yint < 0 ? $xint -> bdiv(Math::BigInt -> new(2) -> bpow(-$yint)) : $xint -> bmul(Math::BigInt -> new(2) -> bpow($yint)); $z = $z -> bint(); $z = $z -> is_nan() ? "NaN" : $z -> is_inf("+") ? "inf" : $z -> is_inf("-") ? "-inf" : $z -> numify(); push @cases, [ $x, $y, $z ]; } } } # If called as an instance method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat'); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the class of the # invocand, except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $xref; # test "$x -> bblsft($y)", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x -> bblsft(\$y);", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x -> bblsft($y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x <<= $y", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x <<= \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x <<= $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x << $y", which does not modify $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x << \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x << $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); if ($xscl == $xscl) { # $x is not a NaN cmp_ok($x, "==", $xscl, "invocand value $xscl is unmodified"); } else { # $x is a NaN is($x, $xscl, "invocand value $xscl is unmodified"); } } } } } } } # If called as a class method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $ref ("Math::BigInt", "Math::BigRat") { for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat', ''); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the calling class, # except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $ref; my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = \"$xscl\";", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = \"$yscl\";", " \$z = $ref -> bblsft(\$x, \$y);", " print \$z\n"; note "\n"; my $z = eval { $ref -> bblsft($x, $y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); # What happens when we are upgrading and/or downgrading # is more complicated, so ignore these cases for now. if ($ref eq "Math::BigInt" && $xref eq "Math::BigInt" || $ref eq "Math::BigRat" && $xref eq "Math::BigRat" && !$dng) { is($x, $z, "invocand is the output (value is $zscl)"); } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bbrsft-mbi-mbf.t0000644403072340010010000002264214756672324020675 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test # - Math::BigInt -> bbrsft() with and without upgrading to Math::BigFloat # - Math::BigFloat -> bbrsft() with and without downgrading to Math::BigInt use strict; use warnings; use Test::More tests => 832814; use Math::BigInt; use Math::BigFloat; $| = 1; my @cases = ( [ 0, -1, 0 ], [ 0, -1.5, 0 ], [ 0, -1, 0 ], [ 7, -1, 14 ], [ 7, -1, 14 ], [ 7.5, -1, 14 ], [ 7, -1.5, 14 ], [ 7.5, -1.5, 14 ], [ -7, -1, -14 ], [ -7.5, -1, -14 ], [ -7, -1.5, -14 ], [ -7.5, -1.5, -14 ], [ 7, 1, 3 ], [ 7.5, 1, 3 ], [ 7, 1.5, 3 ], [ 7.5, 1.5, 3 ], [ -7, 1, -4 ], [ -7.5, 1, -4 ], [ -7, 1.5, -4 ], [ -7.5, 1.5, -4 ], # NaN [ "NaN", 0, "NaN" ], [ "NaN", -1, "NaN" ], [ "NaN", -1.5, "NaN" ], [ "NaN", "-inf", "NaN" ], [ "NaN", 1, "NaN" ], [ "NaN", 1.5, "NaN" ], [ "NaN", "inf", "NaN" ], [ "NaN", "NaN", "NaN" ], [ 0, "NaN", "NaN" ], [ 1, "NaN", "NaN" ], [ 1.5, "NaN", "NaN" ], [ "inf", "NaN", "NaN" ], [ -1, "NaN", "NaN" ], [ -1.5, "NaN", "NaN" ], [ "-inf", "NaN", "NaN" ], [ "NaN", "NaN", "NaN" ], # inf [ "inf", 0, "inf" ], [ "inf", -1, "inf" ], [ "inf", -1.5, "inf" ], [ "inf", "-inf", "inf" ], [ "inf", 1, "inf" ], [ "inf", 1.5, "inf" ], [ "inf", "inf", "NaN" ], [ 0, "-inf", "NaN" ], [ 1, "-inf", "inf" ], [ 1.5, "-inf", "inf" ], [ -1, "-inf", "-inf" ], [ -1.5, "-inf", "-inf" ], # -inf (note that floored division is used here) [ "-inf", 0, "-inf" ], # -inf / 2**(0) = -inf [ "-inf", -1, "-inf" ], # -inf / 2**(-1) = -inf [ "-inf", -1.5, "-inf" ], # -inf / 2**(-1.5) = -inf [ "-inf", "-inf", "-inf" ], # -inf / 2**(-inf) = -inf * 2**(inf) = -inf [ "-inf", 1, "-inf" ], # -inf / 2**(1) = -inf / 2 = -inf [ "-inf", 1.5, "-inf" ], # -inf / 2**(1.5) = -inf / 2**(1.5) = -inf [ "-inf", "inf", "NaN" ], # -inf / 2**(inf) = -inf / 2**(inf) = NaN [ 0, "inf", 0 ], # 0 / 2**(inf) = 0 / inf = 0 [ 1, "inf", 0 ], # 1 / 2**(inf) = 1 / inf = 0 [ 1.5, "inf", 0 ], # 1.5 / 2**(inf) = 0 [ -1, "inf", -1 ], # -1 / 2**(inf) = -1 [ -1.5, "inf", -1 ], # -1.5 / 2**(inf) = -1 ); # Add more test cases. if (1) { my @x = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); my @y = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); for my $x (@x) { for my $y (@y) { my $xint = Math::BigFloat -> new($x) -> as_int(); my $yint = Math::BigFloat -> new($y) -> as_int(); my $z = $yint < 0 ? $xint -> bmul(Math::BigInt -> new(2) -> bpow(-$yint)) : $xint -> bdiv(Math::BigInt -> new(2) -> bpow($yint)); $z = $z -> bint(); $z = $z -> is_nan() ? "NaN" : $z -> is_inf("+") ? "inf" : $z -> is_inf("-") ? "-inf" : $z -> numify(); push @cases, [ $x, $y, $z ]; } } } # If called as an instance method. for my $upg (undef, "Math::BigFloat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigFloat -> downgrade($dng); for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigFloat'); my @yref = ('Math::BigFloat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the class of the # invocand, except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $xref; # test "$x -> bbrsft($y)", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x -> bbrsft(\$y);", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x -> bbrsft($y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x >>= $y", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x >>= \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x >>= $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x >> $y", which does not modify $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x >> \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x >> $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $xscl, "invocand value $xscl is unmodified"); } } } } } } # If called as a class method. for my $upg (undef, "Math::BigFloat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigFloat -> downgrade($dng); for my $ref ("Math::BigInt", "Math::BigFloat") { for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigFloat', ''); my @yref = ('Math::BigFloat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the calling class, # except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $ref; my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigFloat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = \"$xscl\";", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = \"$yscl\";", " \$z = $ref -> bbrsft(\$x, \$y);", " print \$z\n"; note "\n"; my $z = eval { $ref -> bbrsft($x, $y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); # What happens when we are upgrading and/or downgrading # is more complicated, so ignore these cases for now. if ($ref eq "Math::BigInt" && $xref eq "Math::BigInt" || $ref eq "Math::BigFloat" && $xref eq "Math::BigFloat" && !$dng) { is($x, $z, "invocand is the output (value is $zscl)"); } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bbrsft-mbi-mbr.t0000644403072340010010000002316614756672324020713 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test # - Math::BigInt -> bbrsft() with and without upgrading to Math::BigRat # - Math::BigRat -> bbrsft() with and without downgrading to Math::BigInt use strict; use warnings; use Test::More tests => 832814; use Math::BigInt; use Math::BigRat; $| = 1; my @cases = ( [ 0, -1, 0 ], [ 0, -1.5, 0 ], [ 0, -1, 0 ], [ 7, -1, 14 ], [ 7, -1, 14 ], [ 7.5, -1, 14 ], [ 7, -1.5, 14 ], [ 7.5, -1.5, 14 ], [ -7, -1, -14 ], [ -7.5, -1, -14 ], [ -7, -1.5, -14 ], [ -7.5, -1.5, -14 ], [ 7, 1, 3 ], [ 7.5, 1, 3 ], [ 7, 1.5, 3 ], [ 7.5, 1.5, 3 ], [ -7, 1, -4 ], [ -7.5, 1, -4 ], [ -7, 1.5, -4 ], [ -7.5, 1.5, -4 ], # NaN [ "NaN", 0, "NaN" ], [ "NaN", -1, "NaN" ], [ "NaN", -1.5, "NaN" ], [ "NaN", "-inf", "NaN" ], [ "NaN", 1, "NaN" ], [ "NaN", 1.5, "NaN" ], [ "NaN", "inf", "NaN" ], [ "NaN", "NaN", "NaN" ], [ 0, "NaN", "NaN" ], [ 1, "NaN", "NaN" ], [ 1.5, "NaN", "NaN" ], [ "inf", "NaN", "NaN" ], [ -1, "NaN", "NaN" ], [ -1.5, "NaN", "NaN" ], [ "-inf", "NaN", "NaN" ], [ "NaN", "NaN", "NaN" ], # inf [ "inf", 0, "inf" ], [ "inf", -1, "inf" ], [ "inf", -1.5, "inf" ], [ "inf", "-inf", "inf" ], [ "inf", 1, "inf" ], [ "inf", 1.5, "inf" ], [ "inf", "inf", "NaN" ], [ 0, "-inf", "NaN" ], [ 1, "-inf", "inf" ], [ 1.5, "-inf", "inf" ], [ -1, "-inf", "-inf" ], [ -1.5, "-inf", "-inf" ], # -inf (note that floored division is used here) [ "-inf", 0, "-inf" ], # -inf / 2**(0) = -inf [ "-inf", -1, "-inf" ], # -inf / 2**(-1) = -inf [ "-inf", -1.5, "-inf" ], # -inf / 2**(-1.5) = -inf [ "-inf", "-inf", "-inf" ], # -inf / 2**(-inf) = -inf * 2**(inf) = -inf [ "-inf", 1, "-inf" ], # -inf / 2**(1) = -inf / 2 = -inf [ "-inf", 1.5, "-inf" ], # -inf / 2**(1.5) = -inf / 2**(1.5) = -inf [ "-inf", "inf", "NaN" ], # -inf / 2**(inf) = -inf / 2**(inf) = NaN [ 0, "inf", 0 ], # 0 / 2**(inf) = 0 / inf = 0 [ 1, "inf", 0 ], # 1 / 2**(inf) = 1 / inf = 0 [ 1.5, "inf", 0 ], # 1.5 / 2**(inf) = 0 [ -1, "inf", -1 ], # -1 / 2**(inf) = -1 [ -1.5, "inf", -1 ], # -1.5 / 2**(inf) = -1 ); # Add more test cases. if (1) { my @x = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); my @y = ("-inf", "inf", "NaN", map { $_ / 4} -25 .. 25); for my $x (@x) { for my $y (@y) { my $xint = Math::BigFloat -> new($x) -> as_int(); my $yint = Math::BigFloat -> new($y) -> as_int(); my $z = $yint < 0 ? $xint -> bmul(Math::BigInt -> new(2) -> bpow(-$yint)) : $xint -> bdiv(Math::BigInt -> new(2) -> bpow($yint)); $z = $z -> bint(); $z = $z -> is_nan() ? "NaN" : $z -> is_inf("+") ? "inf" : $z -> is_inf("-") ? "-inf" : $z -> numify(); push @cases, [ $x, $y, $z ]; } } } # If called as an instance method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat'); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the class of the # invocand, except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $xref; # test "$x -> brsft($y)", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x -> bbrsft(\$y);", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x -> bbrsft($y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x >>= $y", which modifies $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x >>= \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x >>= $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); is($x, $z, "invocand value $z is the output"); } # test "$x >> $y", which does not modify $x note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = $xscl;", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = $yscl;", " \$z = \$x >> \$y;", " print \$z\n"; note "\n"; { my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; my $z = eval { $x >> $y }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); if ($xscl == $xscl) { # $x is not a NaN cmp_ok($x, "==", $xscl, "invocand value $xscl is unmodified"); } else { # $x is a NaN is($x, $xscl, "invocand value $xscl is unmodified"); } } } } } } } # If called as a class method. for my $upg (undef, "Math::BigRat") { for my $dng (undef, "Math::BigInt") { Math::BigInt -> upgrade($upg); Math::BigRat -> downgrade($dng); for my $ref ("Math::BigInt", "Math::BigRat") { for my $case (@cases) { my ($xscl, $yscl, $zscl) = @$case; my @xref = ('Math::BigRat', ''); my @yref = ('Math::BigRat', ''); unshift @xref, 'Math::BigInt' unless $xscl =~ /\./; unshift @yref, 'Math::BigInt' unless $yscl =~ /\./; for my $xref (@xref) { for my $yref (@yref) { # The output class is identical to the calling class, # except if we are downgrading. my $zref = $dng ? "Math::BigInt" : $ref; my $x = $xref ? $xref -> new($xscl) : $xscl; my $y = $yref ? $yref -> new($yscl) : $yscl; note "\n"; note "Math::BigInt -> upgrade(", defined($upg) ? "\"$upg\"" : "undef", ");", " Math::BigRat -> downgrade(", defined($dng) ? "\"$dng\"" : "undef", ");", $xref ? " \$x = $xref -> new(\"$xscl\");" : " \$x = \"$xscl\";", $yref ? " \$y = $yref -> new(\"$yscl\");" : " \$y = \"$yscl\";", " \$z = $ref -> bbrsft(\$x, \$y);", " print \$z\n"; note "\n"; my $z = eval { $ref -> bbrsft($x, $y) }; is($@, '', "eval succeeded"); is(ref($z), $zref, "output class is $zref"); is($z, $zscl, "output value is $zscl"); # What happens when we are upgrading and/or downgrading # is more complicated, so ignore these cases for now. if ($ref eq "Math::BigInt" && $xref eq "Math::BigInt" || $ref eq "Math::BigRat" && $xref eq "Math::BigRat" && !$dng) { is($x, $z, "invocand is the output (value is $zscl)"); } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bclog10-mbf.t0000644403072340010010000000436714774525141020073 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigFloat; # ceil(log(x) / log(10) sub clog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 10 ** $y; } while ($trial < $x) { $y++; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog10($x); push @cases, [ $x, $y ]; } note("\nbclog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigFloat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigFloat -> new("$in0"); | . qq|\$y = \$x -> bclog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bclog10-mbi.t0000644403072340010010000000433514774525141020071 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigInt; # ceil(log(x) / log(10) sub clog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 10 ** $y; } while ($trial < $x) { $y++; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog10($x); push @cases, [ $x, $y ]; } note("\nbclog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigInt -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigInt -> new("$in0"); | . qq|\$y = \$x -> bclog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bclog10-mbr.t0000644403072340010010000000433514774525141020102 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigRat; # ceil(log(x) / log(10) sub clog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 10 ** $y; } while ($trial < $x) { $y++; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog10($x); push @cases, [ $x, $y ]; } note("\nbclog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigRat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigRat -> new("$in0"); | . qq|\$y = \$x -> bclog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bclog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bclog2-mbf.t0000644403072340010010000000435314774525715020016 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigFloat; # ceil(log(x) / log(2)) sub clog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 2 ** $y; } while ($trial < $x) { $y++; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog2($x); push @cases, [ $x, $y ]; } note("\nbclog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigFloat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigFloat -> new("$in0"); | . qq|\$y = \$x -> bclog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bclog2-mbi.t0000644403072340010010000000432114774525141020005 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigInt; # ceil(log(x) / log(2)) sub clog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 2 ** $y; } while ($trial < $x) { $y++; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog2($x); push @cases, [ $x, $y ]; } note("\nbclog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigInt -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigInt -> new("$in0"); | . qq|\$y = \$x -> bclog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bclog2-mbr.t0000644403072340010010000000432114774525141020016 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigRat; # ceil(log(x) / log(2)) sub clog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 2 ** $y; } while ($trial < $x) { $y++; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = clog2($x); push @cases, [ $x, $y ]; } note("\nbclog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigRat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbclog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigRat -> new("$in0"); | . qq|\$y = \$x -> bclog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bclog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bcos-mbf.t0000644403072340010010000000124414546553333017562 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $class = 'Math::BigFloat'; # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before bcos()"); my $x = $class -> new("1.2345"); $x -> bcos(); is($class -> accuracy(), 10, "class accuracy is 10 after bcos()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before bcos()"); my $x = $class -> new("1.2345"); $x -> bcos(); is($class -> precision(), -10, "class precision is -10 after bcos()"); } done_testing(); Math-BigInt-2.005003/xt/author/bcos-mbi-upg-mbf.t0000644403072340010010000000341714546553333021124 0ustar OSPJADomain Users# -*- mode: perl; -*- # Verify that the output is a Math::BigInt when the output is an integer. use strict; use warnings; use Test::More; use Math::BigInt; use Math::BigFloat; Math::BigInt -> upgrade("Math::BigFloat"); my ($x, $y, $test); $test = '$x = Math::BigInt -> new(1); $x -> bcos(20);'; note "\n", $test, "\n\n"; $y = eval $test; die $@ if $@; subtest $test => sub { plan tests => 4; is(ref($x), "Math::BigFloat", 'class of $x'); is($x, "0.54030230586813971740", 'value of $x'); is($x -> accuracy(), 20, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> bcos(undef, 1);'; note "\n", $test, "\n\n"; $y = eval $test; die $@ if $@; subtest $test => sub { plan tests => 4; is(ref($x), "Math::BigInt", 'class of $x'); is($x, "1", 'value of $x'); # 0.54030... rounded to integer is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 1, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> accuracy(20); $x -> bcos()'; note "\n", $test, "\n\n"; $y = eval $test; die $@ if $@; subtest $test => sub { plan tests => 4; is(ref($x), "Math::BigFloat", 'class of $x'); is($x, "0.54030230586813971740", 'value of $x'); is($x -> accuracy(), 20, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> precision(1); $x -> bcos();'; note "\n", $test, "\n\n"; $y = eval $test; die $@ if $@; subtest $test => sub { plan tests => 4; is(ref($x), "Math::BigInt", 'class of $x'); is($x, "1", 'value of $x'); # 0.54030... rounded to integer is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 1, 'precision of $x'); }; done_testing(); Math-BigInt-2.005003/xt/author/bcos-mbi.t0000644403072340010010000000114414546553333017564 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; $| = 1; my $cases = [ [ 'NaN', 'NaN' ], [ '-inf', 'NaN' ], [ '-150', '0' ], [ '-10', '0' ], [ '-5', '0' ], [ '-1', '0' ], [ '0', '1' ], [ '1', '0' ], [ ' 5', '0' ], [ '10', '0' ], [ '510', '0' ], [ 'inf', 'NaN' ], ]; for my $case (@$cases) { my ($x, $want) = @$case; my $test = qq|Math::BigInt -> new("$x") -> bcos();|; note "\n", $test, "\n\n"; my $y = eval $test; die $@ if $@; is($y, $want, $test); } done_testing(); Math-BigInt-2.005003/xt/author/bdec-mbf.t0000644403072340010010000000420514537274604017532 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 24; use Math::BigFloat; note("bdec() as a class method"); is(Math::BigFloat -> bdec(-2), -3, 'Math::BigFloat -> bdec(-2)'); is(Math::BigFloat -> bdec(-1), -2, 'Math::BigFloat -> bdec(-1)'); is(Math::BigFloat -> bdec(0), -1, 'Math::BigFloat -> bdec(0)'); is(Math::BigFloat -> bdec(1), 0, 'Math::BigFloat -> bdec(1)'); is(Math::BigFloat -> bdec(2), 1, 'Math::BigFloat -> bdec(2)'); is(Math::BigFloat -> bdec("-inf"), "-inf", 'Math::BigFloat -> bdec("-inf")'); is(Math::BigFloat -> bdec("inf"), "inf", 'Math::BigFloat -> bdec("inf")'); is(Math::BigFloat -> bdec("NaN"), "NaN", 'Math::BigFloat -> bdec("NaN")'); note("bdec() as an instance method"); is(Math::BigFloat -> new(-2) -> bdec(), -3, 'Math::BigFloat -> new(-2) -> bdec()'); is(Math::BigFloat -> new(-1) -> bdec(), -2, 'Math::BigFloat -> new(-1) -> bdec()'); is(Math::BigFloat -> new(0) -> bdec(), -1, 'Math::BigFloat -> new(0) -> bdec()'); is(Math::BigFloat -> new(1) -> bdec(), 0, 'Math::BigFloat -> new(1) -> bdec()'); is(Math::BigFloat -> new(2) -> bdec(), 1, 'Math::BigFloat -> new(2) -> bdec()'); is(Math::BigFloat -> new("-inf") -> bdec(), "-inf", 'Math::BigFloat -> new("-inf") -> bdec()'); is(Math::BigFloat -> new("inf") -> bdec(), "inf", 'Math::BigFloat -> new("inf") -> bdec()'); is(Math::BigFloat -> new("NaN") -> bdec(), "NaN", 'Math::BigFloat -> new("NaN") -> bdec()'); note("bdec() as a function"); SKIP: { skip "Math::BigInt doesn't support binc() as a function", 8; is(Math::BigFloat::bdec(-2), -3, 'Math::BigFloat::bdec(-2)'); is(Math::BigFloat::bdec(-1), -2, 'Math::BigFloat::bdec(-1)'); is(Math::BigFloat::bdec(0), -1, 'Math::BigFloat::bdec(0)'); is(Math::BigFloat::bdec(1), 0, 'Math::BigFloat::bdec(1)'); is(Math::BigFloat::bdec(2), 1, 'Math::BigFloat::bdec(2)'); is(Math::BigFloat::bdec("-inf"), "-inf", 'Math::BigFloat::bdec("-inf")'); is(Math::BigFloat::bdec("inf"), "inf", 'Math::BigFloat::bdec("inf")'); is(Math::BigFloat::bdec("NaN"), "NaN", 'Math::BigFloat::bdec("NaN")'); } Math-BigInt-2.005003/xt/author/bdec-mbi.t0000644403072340010010000000362714537274604017544 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 24; use Math::BigInt; note("bdec() as a class method"); is(Math::BigInt -> bdec(-2), -3, 'Math::BigInt -> bdec(-2)'); is(Math::BigInt -> bdec(-1), -2, 'Math::BigInt -> bdec(-1)'); is(Math::BigInt -> bdec(0), -1, 'Math::BigInt -> bdec(0)'); is(Math::BigInt -> bdec(1), 0, 'Math::BigInt -> bdec(1)'); is(Math::BigInt -> bdec(2), 1, 'Math::BigInt -> bdec(2)'); is(Math::BigInt -> bdec("-inf"), "-inf", 'Math::BigInt -> bdec("-inf")'); is(Math::BigInt -> bdec("inf"), "inf", 'Math::BigInt -> bdec("inf")'); is(Math::BigInt -> bdec("NaN"), "NaN", 'Math::BigInt -> bdec("NaN")'); note("bdec() as an instance method"); is(Math::BigInt -> new(-2) -> bdec(), -3, 'Math::BigInt -> new(-2) -> bdec()'); is(Math::BigInt -> new(-1) -> bdec(), -2, 'Math::BigInt -> new(-1) -> bdec()'); is(Math::BigInt -> new(0) -> bdec(), -1, 'Math::BigInt -> new(0) -> bdec()'); is(Math::BigInt -> new(1) -> bdec(), 0, 'Math::BigInt -> new(1) -> bdec()'); is(Math::BigInt -> new(2) -> bdec(), 1, 'Math::BigInt -> new(2) -> bdec()'); is(Math::BigInt -> new("-inf") -> bdec(), "-inf", 'Math::BigInt -> new("-inf") -> bdec()'); is(Math::BigInt -> new("inf") -> bdec(), "inf", 'Math::BigInt -> new("inf") -> bdec()'); is(Math::BigInt -> new("NaN") -> bdec(), "NaN", 'Math::BigInt -> new("NaN") -> bdec()'); note("bdec() as a function"); is(Math::BigInt::bdec(-2), -3, 'Math::BigInt::bdec(-2)'); is(Math::BigInt::bdec(-1), -2, 'Math::BigInt::bdec(-1)'); is(Math::BigInt::bdec(0), -1, 'Math::BigInt::bdec(0)'); is(Math::BigInt::bdec(1), 0, 'Math::BigInt::bdec(1)'); is(Math::BigInt::bdec(2), 1, 'Math::BigInt::bdec(2)'); is(Math::BigInt::bdec("-inf"), "-inf", 'Math::BigInt::bdec("-inf")'); is(Math::BigInt::bdec("inf"), "inf", 'Math::BigInt::bdec("inf")'); is(Math::BigInt::bdec("NaN"), "NaN", 'Math::BigInt::bdec("NaN")'); Math-BigInt-2.005003/xt/author/bdfac-mbf.t0000644403072340010010000000417314757633615017705 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 123; my $class = "Math::BigFloat"; use_ok($class); note("bdfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bdfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bdfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a class method { my $y; my $test = qq|\$y = $class -> bdfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my $y; # my $test = qq|\$y = $ {class}::bdfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigFloat -1.5 NaN -0.5 NaN 1.5 NaN 2.5 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -3 NaN -2 NaN -1 1 0 1 1 1 2 2 3 3 4 8 5 15 6 48 7 105 8 384 9 945 10 3840 11 10395 12 46080 13 135135 14 645120 15 2027025 16 10321920 17 34459425 18 185794560 19 654729075 20 3715891200 21 13749310575 22 81749606400 23 316234143225 24 1961990553600 25 7905853580625 26 51011754393600 27 213458046676875 28 1428329123020800 29 6190283353629375 30 42849873690624000 31 191898783962510625 32 1371195958099968000 33 6332659870762850625 34 46620662575398912000 35 221643095476699771875 36 1678343852714360832000 37 8200794532637891559375 38 63777066403145711616000 39 319830986772877770815625 40 2551082656125828464640000 41 13113070457687988603440625 42 107145471557284795514880000 43 563862029680583509947946875 44 4714400748520531002654720000 45 25373791335626257947657609375 46 216862434431944426122117120000 47 1192568192774434123539907640625 48 10409396852733332453861621760000 49 58435841445947272053455474390625 50 520469842636666622693081088000000 inf inf Math-BigInt-2.005003/xt/author/bdfac-mbi.t0000644403072340010010000000362714757632776017722 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 172; my $class = "Math::BigInt"; use_ok($class); note("bdfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bdfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bdfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a class method { my $y; my $test = qq|\$y = $class -> bdfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a function { my $y; my $test = qq|\$y = $ {class}::bdfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } } __DATA__ # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -3 NaN -2 NaN -1 1 0 1 1 1 2 2 3 3 4 8 5 15 6 48 7 105 8 384 9 945 10 3840 11 10395 12 46080 13 135135 14 645120 15 2027025 16 10321920 17 34459425 18 185794560 19 654729075 20 3715891200 21 13749310575 22 81749606400 23 316234143225 24 1961990553600 25 7905853580625 26 51011754393600 27 213458046676875 28 1428329123020800 29 6190283353629375 30 42849873690624000 31 191898783962510625 32 1371195958099968000 33 6332659870762850625 34 46620662575398912000 35 221643095476699771875 36 1678343852714360832000 37 8200794532637891559375 38 63777066403145711616000 39 319830986772877770815625 40 2551082656125828464640000 41 13113070457687988603440625 42 107145471557284795514880000 43 563862029680583509947946875 44 4714400748520531002654720000 45 25373791335626257947657609375 46 216862434431944426122117120000 47 1192568192774434123539907640625 48 10409396852733332453861621760000 49 58435841445947272053455474390625 50 520469842636666622693081088000000 inf inf Math-BigInt-2.005003/xt/author/bdfac-mbr.t0000644403072340010010000000417514757634560017723 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 123; my $class = "Math::BigRat"; use_ok($class); note("bdfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bdfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bdfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a class method { my $y; my $test = qq|\$y = $class -> bdfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bdfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my ($y, $test); # $test = qq|\$y = $ {class}::bdfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigRat -3/2 NaN -1/2 NaN 3/2 NaN 5/2 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -3 NaN -2 NaN -1 1 0 1 1 1 2 2 3 3 4 8 5 15 6 48 7 105 8 384 9 945 10 3840 11 10395 12 46080 13 135135 14 645120 15 2027025 16 10321920 17 34459425 18 185794560 19 654729075 20 3715891200 21 13749310575 22 81749606400 23 316234143225 24 1961990553600 25 7905853580625 26 51011754393600 27 213458046676875 28 1428329123020800 29 6190283353629375 30 42849873690624000 31 191898783962510625 32 1371195958099968000 33 6332659870762850625 34 46620662575398912000 35 221643095476699771875 36 1678343852714360832000 37 8200794532637891559375 38 63777066403145711616000 39 319830986772877770815625 40 2551082656125828464640000 41 13113070457687988603440625 42 107145471557284795514880000 43 563862029680583509947946875 44 4714400748520531002654720000 45 25373791335626257947657609375 46 216862434431944426122117120000 47 1192568192774434123539907640625 48 10409396852733332453861621760000 49 58435841445947272053455474390625 50 520469842636666622693081088000000 inf inf Math-BigInt-2.005003/xt/author/bdigitsum-mbi.t0000644403072340010010000000402314537274604020625 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 48; use Math::BigInt; my $x; my $y; ############################################################################### # bdigitsum() # Finite numbers. $x = Math::BigInt -> new("123"); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "6"); is($y, "6"); $x = Math::BigInt -> new("0"); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "0"); is($y, "0"); $x = Math::BigInt -> new("-123"); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "6"); is($y, "6"); # Infinity $x = Math::BigInt -> binf("+"); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "NaN"); is($y, "NaN"); $x = Math::BigInt -> binf("-"); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "NaN"); is($y, "NaN"); # NaN $x = Math::BigInt -> bnan(); isa_ok($x, 'Math::BigInt'); $y = $x -> bdigitsum(); isa_ok($y, 'Math::BigInt'); is($x, "NaN"); is($y, "NaN"); ############################################################################### # digitsum() # Finite numbers. $x = Math::BigInt -> new("123"); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "123"); is($y, "6"); $x = Math::BigInt -> new("0"); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "0"); is($y, "0"); $x = Math::BigInt -> new("-123"); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "-123"); is($y, "6"); # Infinity $x = Math::BigInt -> binf("+"); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "inf"); is($y, "NaN"); $x = Math::BigInt -> binf("-"); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "-inf"); is($y, "NaN"); # NaN $x = Math::BigInt -> bnan(); isa_ok($x, 'Math::BigInt'); $y = $x -> digitsum(); isa_ok($y, 'Math::BigInt'); is($x, "NaN"); is($y, "NaN"); Math-BigInt-2.005003/xt/author/bdstr-mbf.t0000644403072340010010000001505114770523005017743 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 929; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigFloat -> accuracy($accu);| . qq| \$x = Math::BigFloat -> new("$x_str");| . qq| \$str = \$x -> bdstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } # Reset accuracy and precision. Math::BigFloat -> accuracy(undef); Math::BigFloat -> precision(undef); # 355/113 rounded to 40 digits. my $str = '3.141592920353982300884955752212389380531'; # Default rounding. note(qq|\nMath::BigFloat -> new("$str") -> bdstr();\n\n|); is(Math::BigFloat -> new($str) -> bdstr(), '3.141592920353982300884955752212389380531'); # Accuracy as argument. note(qq|\nMath::BigFloat -> new("$str") -> bdstr(3);\n\n|); is(Math::BigFloat -> new($str) -> bdstr(3), '3.14'); # Precision as argument. note(qq|\nMath::BigFloat -> new("$str") -> bdstr(undef, -3);\n\n|); is(Math::BigFloat -> new($str) -> bdstr(undef, -3), '3.142'); # Accuracy as class variable. note(qq|\nMath::BigFloat -> accuracy(5); Math::BigFloat -> new("$str") -> bdstr();\n\n|); Math::BigFloat -> accuracy(5); is(Math::BigFloat -> new($str) -> bdstr(), '3.1416'); # Precision as class variable. note(qq|\nMath::BigFloat -> precision(-5); Math::BigFloat -> new("$str") -> bdstr();\n\n|); Math::BigFloat -> precision(-5); is(Math::BigFloat -> new($str) -> bdstr(), '3.14159'); __DATA__ NaN:NaN inf:inf -inf:-inf 0:0 -0:0 # positive numbers 0.000000000001:0.000000000001 0.00000000001:0.00000000001 0.0000000001:0.0000000001 0.000000001:0.000000001 0.00000001:0.00000001 0.0000001:0.0000001 0.000001:0.000001 0.00001:0.00001 0.0001:0.0001 0.001:0.001 0.01:0.01 0.1:0.1 1:1 10:10 100:100 1000:1000 10000:10000 100000:100000 1000000:1000000 10000000:10000000 100000000:100000000 1000000000:1000000000 10000000000:10000000000 100000000000:100000000000 1000000000000:1000000000000 0.0000000000012:0.0000000000012 0.000000000012:0.000000000012 0.00000000012:0.00000000012 0.0000000012:0.0000000012 0.000000012:0.000000012 0.00000012:0.00000012 0.0000012:0.0000012 0.000012:0.000012 0.00012:0.00012 0.0012:0.0012 0.012:0.012 0.12:0.12 1.2:1.2 12:12 120:120 1200:1200 12000:12000 120000:120000 1200000:1200000 12000000:12000000 120000000:120000000 1200000000:1200000000 12000000000:12000000000 120000000000:120000000000 1200000000000:1200000000000 0.00000000000123:0.00000000000123 0.0000000000123:0.0000000000123 0.000000000123:0.000000000123 0.00000000123:0.00000000123 0.0000000123:0.0000000123 0.000000123:0.000000123 0.00000123:0.00000123 0.0000123:0.0000123 0.000123:0.000123 0.00123:0.00123 0.0123:0.0123 0.123:0.123 1.23:1.23 12.3:12.3 123:123 1230:1230 12300:12300 123000:123000 1230000:1230000 12300000:12300000 123000000:123000000 1230000000:1230000000 12300000000:12300000000 123000000000:123000000000 1230000000000:1230000000000 0.000000000001234:0.000000000001234 0.00000000001234:0.00000000001234 0.0000000001234:0.0000000001234 0.000000001234:0.000000001234 0.00000001234:0.00000001234 0.0000001234:0.0000001234 0.000001234:0.000001234 0.00001234:0.00001234 0.0001234:0.0001234 0.001234:0.001234 0.01234:0.01234 0.1234:0.1234 1.234:1.234 12.34:12.34 123.4:123.4 1234:1234 12340:12340 123400:123400 1234000:1234000 12340000:12340000 123400000:123400000 1234000000:1234000000 12340000000:12340000000 123400000000:123400000000 1234000000000:1234000000000 0.000003141592:0.000003141592 0.00003141592:0.00003141592 0.0003141592:0.0003141592 0.003141592:0.003141592 0.03141592:0.03141592 0.3141592:0.3141592 3.141592:3.141592 31.41592:31.41592 314.1592:314.1592 3141.592:3141.592 31415.92:31415.92 314159.2:314159.2 3141592:3141592 # negative numbers -0.000000000001:-0.000000000001 -0.00000000001:-0.00000000001 -0.0000000001:-0.0000000001 -0.000000001:-0.000000001 -0.00000001:-0.00000001 -0.0000001:-0.0000001 -0.000001:-0.000001 -0.00001:-0.00001 -0.0001:-0.0001 -0.001:-0.001 -0.01:-0.01 -0.1:-0.1 -1:-1 -10:-10 -100:-100 -1000:-1000 -10000:-10000 -100000:-100000 -1000000:-1000000 -10000000:-10000000 -100000000:-100000000 -1000000000:-1000000000 -10000000000:-10000000000 -100000000000:-100000000000 -1000000000000:-1000000000000 -0.0000000000012:-0.0000000000012 -0.000000000012:-0.000000000012 -0.00000000012:-0.00000000012 -0.0000000012:-0.0000000012 -0.000000012:-0.000000012 -0.00000012:-0.00000012 -0.0000012:-0.0000012 -0.000012:-0.000012 -0.00012:-0.00012 -0.0012:-0.0012 -0.012:-0.012 -0.12:-0.12 -1.2:-1.2 -12:-12 -120:-120 -1200:-1200 -12000:-12000 -120000:-120000 -1200000:-1200000 -12000000:-12000000 -120000000:-120000000 -1200000000:-1200000000 -12000000000:-12000000000 -120000000000:-120000000000 -1200000000000:-1200000000000 -0.00000000000123:-0.00000000000123 -0.0000000000123:-0.0000000000123 -0.000000000123:-0.000000000123 -0.00000000123:-0.00000000123 -0.0000000123:-0.0000000123 -0.000000123:-0.000000123 -0.00000123:-0.00000123 -0.0000123:-0.0000123 -0.000123:-0.000123 -0.00123:-0.00123 -0.0123:-0.0123 -0.123:-0.123 -1.23:-1.23 -12.3:-12.3 -123:-123 -1230:-1230 -12300:-12300 -123000:-123000 -1230000:-1230000 -12300000:-12300000 -123000000:-123000000 -1230000000:-1230000000 -12300000000:-12300000000 -123000000000:-123000000000 -1230000000000:-1230000000000 -0.000000000001234:-0.000000000001234 -0.00000000001234:-0.00000000001234 -0.0000000001234:-0.0000000001234 -0.000000001234:-0.000000001234 -0.00000001234:-0.00000001234 -0.0000001234:-0.0000001234 -0.000001234:-0.000001234 -0.00001234:-0.00001234 -0.0001234:-0.0001234 -0.001234:-0.001234 -0.01234:-0.01234 -0.1234:-0.1234 -1.234:-1.234 -12.34:-12.34 -123.4:-123.4 -1234:-1234 -12340:-12340 -123400:-123400 -1234000:-1234000 -12340000:-12340000 -123400000:-123400000 -1234000000:-1234000000 -12340000000:-12340000000 -123400000000:-123400000000 -1234000000000:-1234000000000 -0.000003141592:-0.000003141592 -0.00003141592:-0.00003141592 -0.0003141592:-0.0003141592 -0.003141592:-0.003141592 -0.03141592:-0.03141592 -0.3141592:-0.3141592 -3.141592:-3.141592 -31.41592:-31.41592 -314.1592:-314.1592 -3141.592:-3141.592 -31415.92:-31415.92 -314159.2:-314159.2 -3141592:-3141592 Math-BigInt-2.005003/xt/author/bdstr-mbi.t0000644403072340010010000000543414537274604017763 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 222; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigInt -> accuracy($accu);| . qq| \$x = Math::BigInt -> new("$x_str");| . qq| \$str = \$x -> bdstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0 -0:0 # positive numbers 1:1 10:10 100:100 1000:1000 10000:10000 100000:100000 1000000:1000000 10000000:10000000 100000000:100000000 1000000000:1000000000 10000000000:10000000000 100000000000:100000000000 1000000000000:1000000000000 12:12 120:120 1200:1200 12000:12000 120000:120000 1200000:1200000 12000000:12000000 120000000:120000000 1200000000:1200000000 12000000000:12000000000 120000000000:120000000000 1200000000000:1200000000000 123:123 1230:1230 12300:12300 123000:123000 1230000:1230000 12300000:12300000 123000000:123000000 1230000000:1230000000 12300000000:12300000000 123000000000:123000000000 1230000000000:1230000000000 1234:1234 12340:12340 123400:123400 1234000:1234000 12340000:12340000 123400000:123400000 1234000000:1234000000 12340000000:12340000000 123400000000:123400000000 1234000000000:1234000000000 3:3 31:31 314:314 3141:3141 31415:31415 314159:314159 3141592:3141592 # negative numbers -1:-1 -10:-10 -100:-100 -1000:-1000 -10000:-10000 -100000:-100000 -1000000:-1000000 -10000000:-10000000 -100000000:-100000000 -1000000000:-1000000000 -10000000000:-10000000000 -100000000000:-100000000000 -1000000000000:-1000000000000 -12:-12 -120:-120 -1200:-1200 -12000:-12000 -120000:-120000 -1200000:-1200000 -12000000:-12000000 -120000000:-120000000 -1200000000:-1200000000 -12000000000:-12000000000 -120000000000:-120000000000 -1200000000000:-1200000000000 -123:-123 -1230:-1230 -12300:-12300 -123000:-123000 -1230000:-1230000 -12300000:-12300000 -123000000:-123000000 -1230000000:-1230000000 -12300000000:-12300000000 -123000000000:-123000000000 -1230000000000:-1230000000000 -1234:-1234 -12340:-12340 -123400:-123400 -1234000:-1234000 -12340000:-12340000 -123400000:-123400000 -1234000000:-1234000000 -12340000000:-12340000000 -123400000000:-123400000000 -1234000000000:-1234000000000 -3:-3 -31:-31 -314:-314 -3141:-3141 -31415:-31415 -314159:-314159 -3141592:-3141592 Math-BigInt-2.005003/xt/author/bdstr-mbr.t0000644403072340010010000000303214775750635017773 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 8; use Math::BigRat; # Reset accuracy and precision. Math::BigRat -> accuracy(undef); Math::BigRat -> precision(undef); # Inf and NaN. note(qq|\nMath::BigRat -> new("+inf") -> bdstr();\n\n|); is(Math::BigRat -> new("+inf") -> bdstr(), 'inf'); note(qq|\nMath::BigRat -> new("-inf") -> bdstr();\n\n|); is(Math::BigRat -> new("-inf") -> bdstr(), '-inf'); note(qq|\nMath::BigRat -> new("NaN") -> bdstr();\n\n|); is(Math::BigRat -> new("NaN") -> bdstr(), 'NaN'); # Default rounding. note(qq|\nMath::BigRat -> new("355/113") -> bdstr();\n\n|); is(Math::BigRat -> new("355/113") -> bdstr(), '3.141592920353982300884955752212389380531'); # Accuracy as argument. note(qq|\nMath::BigRat -> new("355/113") -> bdstr(3);\n\n|); is(Math::BigRat -> new("355/113") -> bdstr(3), '3.14'); # Precision as argument. note(qq|\nMath::BigRat -> new("355/113") -> bdstr(undef, -3);\n\n|); is(Math::BigRat -> new("355/113") -> bdstr(undef, -3), '3.142'); SKIP: { skip "accuracy and precision as class variables are not yet supported", 2; # Accuracy as class variable. note(qq|\nMath::BigRat -> accuracy(5); Math::BigRat -> new("355/113") -> bdstr();\n\n|); Math::BigRat -> accuracy(5); is(Math::BigRat -> new("355/113") -> bdstr(), '3.1416'); # Precision as class variable. note(qq|\nMath::BigRat -> precision(-5); Math::BigRat -> new("355/113") -> bdstr();\n\n|); Math::BigRat -> precision(-5); is(Math::BigRat -> new("355/113") -> bdstr(), '3.14159'); } Math-BigInt-2.005003/xt/author/beq-mbf.t0000644403072340010010000000276214537274604017412 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; use Math::BigFloat; note("beq() as a class method"); is(Math::BigFloat -> beq(5, 5), 1, "Math::BigFloat -> beq(5, 5)"); is(Math::BigFloat -> beq(5, 7), "", "Math::BigFloat -> beq(5, 7)"); is(Math::BigFloat -> beq(Math::BigFloat -> new(5), 5), 1, "Math::BigFloat -> beq(Math::BigFloat -> new(5), 5)"); is(Math::BigFloat -> beq(Math::BigFloat -> new(5), 7), "", "Math::BigFloat -> beq(Math::BigFloat -> new(5), 7)"); is(Math::BigFloat -> beq(5, Math::BigFloat -> new(5)), 1, "Math::BigFloat -> beq(5, Math::BigFloat -> new(5))"); is(Math::BigFloat -> beq(5, Math::BigFloat -> new(7)), "", "Math::BigFloat -> beq(5, Math::BigFloat -> new(7))"); is(Math::BigFloat -> beq(Math::BigFloat -> new(5), Math::BigFloat -> new(5)), 1, "Math::BigFloat -> beq(Math::BigFloat -> new(5), Math::BigFloat -> new(5))"); is(Math::BigFloat -> beq(Math::BigFloat -> new(5), Math::BigFloat -> new(7)), "", "Math::BigFloat -> beq(5, Math::BigFloat -> new(7))"); note("beq() as an instance method"); is(Math::BigFloat -> new(5) -> beq(5), 1, "Math::BigFloat -> new(5) -> beq(5)"); is(Math::BigFloat -> new(5) -> beq(7), "", "Math::BigFloat -> new(5) -> beq(7)"); is(Math::BigFloat -> new(5) -> beq(Math::BigFloat -> new(5)), 1, "Math::BigFloat -> new(5) -> beq(Math::BigFloat -> new(5))"); is(Math::BigFloat -> new(5) -> beq(Math::BigFloat -> new(7)), "", "Math::BigFloat -> new(5) -> beq(Math::BigFloat -> new(7))"); Math-BigInt-2.005003/xt/author/beq-mbi.t0000644403072340010010000000263214537274604017411 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; use Math::BigInt; note("beq() as a class method"); is(Math::BigInt -> beq(5, 5), 1, "Math::BigInt -> beq(5, 5)"); is(Math::BigInt -> beq(5, 7), "", "Math::BigInt -> beq(5, 7)"); is(Math::BigInt -> beq(Math::BigInt -> new(5), 5), 1, "Math::BigInt -> beq(Math::BigInt -> new(5), 5)"); is(Math::BigInt -> beq(Math::BigInt -> new(5), 7), "", "Math::BigInt -> beq(Math::BigInt -> new(5), 7)"); is(Math::BigInt -> beq(5, Math::BigInt -> new(5)), 1, "Math::BigInt -> beq(5, Math::BigInt -> new(5))"); is(Math::BigInt -> beq(5, Math::BigInt -> new(7)), "", "Math::BigInt -> beq(5, Math::BigInt -> new(7))"); is(Math::BigInt -> beq(Math::BigInt -> new(5), Math::BigInt -> new(5)), 1, "Math::BigInt -> beq(Math::BigInt -> new(5), Math::BigInt -> new(5))"); is(Math::BigInt -> beq(Math::BigInt -> new(5), Math::BigInt -> new(7)), "", "Math::BigInt -> beq(5, Math::BigInt -> new(7))"); note("beq() as an instance method"); is(Math::BigInt -> new(5) -> beq(5), 1, "Math::BigInt -> new(5) -> beq(5)"); is(Math::BigInt -> new(5) -> beq(7), "", "Math::BigInt -> new(5) -> beq(7)"); is(Math::BigInt -> new(5) -> beq(Math::BigInt -> new(5)), 1, "Math::BigInt -> new(5) -> beq(Math::BigInt -> new(5))"); is(Math::BigInt -> new(5) -> beq(Math::BigInt -> new(7)), "", "Math::BigInt -> new(5) -> beq(Math::BigInt -> new(7))"); Math-BigInt-2.005003/xt/author/bestr-mbf.t0000644403072340010010000001427614770523012017752 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 929; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigFloat -> accuracy($accu);| . qq| \$x = Math::BigFloat -> new("$x_str");| . qq| \$str = \$x -> bestr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } # Reset accuracy and precision. Math::BigFloat -> accuracy(undef); Math::BigFloat -> precision(undef); # 355/113 rounded to 40 digits. my $str = '3.141592920353982300884955752212389380531'; # Default rounding. note(qq|\nMath::BigFloat -> new("$str") -> bestr();\n\n|); is(Math::BigFloat -> new($str) -> bestr(), '3.141592920353982300884955752212389380531e+0'); # Accuracy as argument. note(qq|\nMath::BigFloat -> new("$str") -> bestr(3);\n\n|); is(Math::BigFloat -> new($str) -> bestr(3), '3.14e+0'); # Precision as argument. note(qq|\nMath::BigFloat -> new("$str") -> bestr(undef, -3);\n\n|); is(Math::BigFloat -> new($str) -> bestr(undef, -3), '3.142e+0'); # Accuracy as class variable. note(qq|\nMath::BigFloat -> accuracy(5); Math::BigFloat -> new("$str") -> bestr();\n\n|); Math::BigFloat -> accuracy(5); is(Math::BigFloat -> new($str) -> bestr(), '3.1416e+0'); # Precision as class variable. note(qq|\nMath::BigFloat -> precision(-5); Math::BigFloat -> new("$str") -> bestr();\n\n|); Math::BigFloat -> precision(-5); is(Math::BigFloat -> new($str) -> bestr(), '3.14159e+0'); __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 0.000000000001:1e-12 0.00000000001:10e-12 0.0000000001:100e-12 0.000000001:1e-9 0.00000001:10e-9 0.0000001:100e-9 0.000001:1e-6 0.00001:10e-6 0.0001:100e-6 0.001:1e-3 0.01:10e-3 0.1:100e-3 1:1e+0 10:10e+0 100:100e+0 1000:1e+3 10000:10e+3 100000:100e+3 1000000:1e+6 10000000:10e+6 100000000:100e+6 1000000000:1e+9 10000000000:10e+9 100000000000:100e+9 1000000000000:1e+12 0.0000000000012:1.2e-12 0.000000000012:12e-12 0.00000000012:120e-12 0.0000000012:1.2e-9 0.000000012:12e-9 0.00000012:120e-9 0.0000012:1.2e-6 0.000012:12e-6 0.00012:120e-6 0.0012:1.2e-3 0.012:12e-3 0.12:120e-3 1.2:1.2e+0 12:12e+0 120:120e+0 1200:1.2e+3 12000:12e+3 120000:120e+3 1200000:1.2e+6 12000000:12e+6 120000000:120e+6 1200000000:1.2e+9 12000000000:12e+9 120000000000:120e+9 1200000000000:1.2e+12 0.00000000000123:1.23e-12 0.0000000000123:12.3e-12 0.000000000123:123e-12 0.00000000123:1.23e-9 0.0000000123:12.3e-9 0.000000123:123e-9 0.00000123:1.23e-6 0.0000123:12.3e-6 0.000123:123e-6 0.00123:1.23e-3 0.0123:12.3e-3 0.123:123e-3 1.23:1.23e+0 12.3:12.3e+0 123:123e+0 1230:1.23e+3 12300:12.3e+3 123000:123e+3 1230000:1.23e+6 12300000:12.3e+6 123000000:123e+6 1230000000:1.23e+9 12300000000:12.3e+9 123000000000:123e+9 1230000000000:1.23e+12 0.000000000001234:1.234e-12 0.00000000001234:12.34e-12 0.0000000001234:123.4e-12 0.000000001234:1.234e-9 0.00000001234:12.34e-9 0.0000001234:123.4e-9 0.000001234:1.234e-6 0.00001234:12.34e-6 0.0001234:123.4e-6 0.001234:1.234e-3 0.01234:12.34e-3 0.1234:123.4e-3 1.234:1.234e+0 12.34:12.34e+0 123.4:123.4e+0 1234:1.234e+3 12340:12.34e+3 123400:123.4e+3 1234000:1.234e+6 12340000:12.34e+6 123400000:123.4e+6 1234000000:1.234e+9 12340000000:12.34e+9 123400000000:123.4e+9 1234000000000:1.234e+12 0.000003141592:3.141592e-6 0.00003141592:31.41592e-6 0.0003141592:314.1592e-6 0.003141592:3.141592e-3 0.03141592:31.41592e-3 0.3141592:314.1592e-3 3.141592:3.141592e+0 31.41592:31.41592e+0 314.1592:314.1592e+0 3141.592:3.141592e+3 31415.92:31.41592e+3 314159.2:314.1592e+3 3141592:3.141592e+6 # negative numbers -0.000000000001:-1e-12 -0.00000000001:-10e-12 -0.0000000001:-100e-12 -0.000000001:-1e-9 -0.00000001:-10e-9 -0.0000001:-100e-9 -0.000001:-1e-6 -0.00001:-10e-6 -0.0001:-100e-6 -0.001:-1e-3 -0.01:-10e-3 -0.1:-100e-3 -1:-1e+0 -10:-10e+0 -100:-100e+0 -1000:-1e+3 -10000:-10e+3 -100000:-100e+3 -1000000:-1e+6 -10000000:-10e+6 -100000000:-100e+6 -1000000000:-1e+9 -10000000000:-10e+9 -100000000000:-100e+9 -1000000000000:-1e+12 -0.0000000000012:-1.2e-12 -0.000000000012:-12e-12 -0.00000000012:-120e-12 -0.0000000012:-1.2e-9 -0.000000012:-12e-9 -0.00000012:-120e-9 -0.0000012:-1.2e-6 -0.000012:-12e-6 -0.00012:-120e-6 -0.0012:-1.2e-3 -0.012:-12e-3 -0.12:-120e-3 -1.2:-1.2e+0 -12:-12e+0 -120:-120e+0 -1200:-1.2e+3 -12000:-12e+3 -120000:-120e+3 -1200000:-1.2e+6 -12000000:-12e+6 -120000000:-120e+6 -1200000000:-1.2e+9 -12000000000:-12e+9 -120000000000:-120e+9 -1200000000000:-1.2e+12 -0.00000000000123:-1.23e-12 -0.0000000000123:-12.3e-12 -0.000000000123:-123e-12 -0.00000000123:-1.23e-9 -0.0000000123:-12.3e-9 -0.000000123:-123e-9 -0.00000123:-1.23e-6 -0.0000123:-12.3e-6 -0.000123:-123e-6 -0.00123:-1.23e-3 -0.0123:-12.3e-3 -0.123:-123e-3 -1.23:-1.23e+0 -12.3:-12.3e+0 -123:-123e+0 -1230:-1.23e+3 -12300:-12.3e+3 -123000:-123e+3 -1230000:-1.23e+6 -12300000:-12.3e+6 -123000000:-123e+6 -1230000000:-1.23e+9 -12300000000:-12.3e+9 -123000000000:-123e+9 -1230000000000:-1.23e+12 -0.000000000001234:-1.234e-12 -0.00000000001234:-12.34e-12 -0.0000000001234:-123.4e-12 -0.000000001234:-1.234e-9 -0.00000001234:-12.34e-9 -0.0000001234:-123.4e-9 -0.000001234:-1.234e-6 -0.00001234:-12.34e-6 -0.0001234:-123.4e-6 -0.001234:-1.234e-3 -0.01234:-12.34e-3 -0.1234:-123.4e-3 -1.234:-1.234e+0 -12.34:-12.34e+0 -123.4:-123.4e+0 -1234:-1.234e+3 -12340:-12.34e+3 -123400:-123.4e+3 -1234000:-1.234e+6 -12340000:-12.34e+6 -123400000:-123.4e+6 -1234000000:-1.234e+9 -12340000000:-12.34e+9 -123400000000:-123.4e+9 -1234000000000:-1.234e+12 -0.000003141592:-3.141592e-6 -0.00003141592:-31.41592e-6 -0.0003141592:-314.1592e-6 -0.003141592:-3.141592e-3 -0.03141592:-31.41592e-3 -0.3141592:-314.1592e-3 -3.141592:-3.141592e+0 -31.41592:-31.41592e+0 -314.1592:-314.1592e+0 -3141.592:-3.141592e+3 -31415.92:-31.41592e+3 -314159.2:-314.1592e+3 -3141592:-3.141592e+6 Math-BigInt-2.005003/xt/author/bestr-mbi.t0000644403072340010010000000532214537274604017760 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 222; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigInt -> accuracy($accu);| . qq| \$x = Math::BigInt -> new("$x_str");| . qq| \$str = \$x -> bestr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 1:1e+0 10:10e+0 100:100e+0 1000:1e+3 10000:10e+3 100000:100e+3 1000000:1e+6 10000000:10e+6 100000000:100e+6 1000000000:1e+9 10000000000:10e+9 100000000000:100e+9 1000000000000:1e+12 12:12e+0 120:120e+0 1200:1.2e+3 12000:12e+3 120000:120e+3 1200000:1.2e+6 12000000:12e+6 120000000:120e+6 1200000000:1.2e+9 12000000000:12e+9 120000000000:120e+9 1200000000000:1.2e+12 123:123e+0 1230:1.23e+3 12300:12.3e+3 123000:123e+3 1230000:1.23e+6 12300000:12.3e+6 123000000:123e+6 1230000000:1.23e+9 12300000000:12.3e+9 123000000000:123e+9 1230000000000:1.23e+12 1234:1.234e+3 12340:12.34e+3 123400:123.4e+3 1234000:1.234e+6 12340000:12.34e+6 123400000:123.4e+6 1234000000:1.234e+9 12340000000:12.34e+9 123400000000:123.4e+9 1234000000000:1.234e+12 3:3e+0 31:31e+0 314:314e+0 3141:3.141e+3 31415:31.415e+3 314159:314.159e+3 3141592:3.141592e+6 # negative numbers -1:-1e+0 -10:-10e+0 -100:-100e+0 -1000:-1e+3 -10000:-10e+3 -100000:-100e+3 -1000000:-1e+6 -10000000:-10e+6 -100000000:-100e+6 -1000000000:-1e+9 -10000000000:-10e+9 -100000000000:-100e+9 -1000000000000:-1e+12 -12:-12e+0 -120:-120e+0 -1200:-1.2e+3 -12000:-12e+3 -120000:-120e+3 -1200000:-1.2e+6 -12000000:-12e+6 -120000000:-120e+6 -1200000000:-1.2e+9 -12000000000:-12e+9 -120000000000:-120e+9 -1200000000000:-1.2e+12 -123:-123e+0 -1230:-1.23e+3 -12300:-12.3e+3 -123000:-123e+3 -1230000:-1.23e+6 -12300000:-12.3e+6 -123000000:-123e+6 -1230000000:-1.23e+9 -12300000000:-12.3e+9 -123000000000:-123e+9 -1230000000000:-1.23e+12 -1234:-1.234e+3 -12340:-12.34e+3 -123400:-123.4e+3 -1234000:-1.234e+6 -12340000:-12.34e+6 -123400000:-123.4e+6 -1234000000:-1.234e+9 -12340000000:-12.34e+9 -123400000000:-123.4e+9 -1234000000000:-1.234e+12 -3:-3e+0 -31:-31e+0 -314:-314e+0 -3141:-3.141e+3 -31415:-31.415e+3 -314159:-314.159e+3 -3141592:-3.141592e+6 Math-BigInt-2.005003/xt/author/bestr-mbr.t0000644403072340010010000000305114775750322017766 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 8; use Math::BigRat; # Reset accuracy and precision. Math::BigRat -> accuracy(undef); Math::BigRat -> precision(undef); # Inf and NaN. note(qq|\nMath::BigRat -> new("+inf") -> bestr();\n\n|); is(Math::BigRat -> new("+inf") -> bestr(), 'inf'); note(qq|\nMath::BigRat -> new("-inf") -> bestr();\n\n|); is(Math::BigRat -> new("-inf") -> bestr(), '-inf'); note(qq|\nMath::BigRat -> new("NaN") -> bestr();\n\n|); is(Math::BigRat -> new("NaN") -> bestr(), 'NaN'); # Default rounding. note(qq|\nMath::BigRat -> new("355/113") -> bestr();\n\n|); is(Math::BigRat -> new("355/113") -> bestr(), '3.141592920353982300884955752212389380531e+0'); # Accuracy as argument. note(qq|\nMath::BigRat -> new("355/113") -> bestr(3);\n\n|); is(Math::BigRat -> new("355/113") -> bestr(3), '3.14e+0'); # Precision as argument. note(qq|\nMath::BigRat -> new("355/113") -> bestr(undef, -3);\n\n|); is(Math::BigRat -> new("355/113") -> bestr(undef, -3), '3.142e+0'); SKIP: { skip "accuracy and precision as class variables are not yet supported", 2; # Accuracy as class variable. note(qq|\nMath::BigRat -> accuracy(5); Math::BigRat -> new("355/113") -> bestr();\n\n|); Math::BigRat -> accuracy(5); is(Math::BigRat -> new("355/113") -> bestr(), '3.1416e+0'); # Precision as class variable. note(qq|\nMath::BigRat -> precision(-5); Math::BigRat -> new("355/113") -> bestr();\n\n|); Math::BigRat -> precision(-5); is(Math::BigRat -> new("355/113") -> bestr(), '3.14159e+0'); } Math-BigInt-2.005003/xt/author/bexp-mbf.t0000644403072340010010000010634514546553333017602 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $class = 'Math::BigFloat'; my ($x, $test); ################################################ my $entries = [ [ '$x = Math::BigFloat -> bone(); $x -> bexp();', '2.718281828459045235360287471352662497757', ], # Test accuracy. [ '$x = Math::BigFloat -> bone(); $x -> bexp(8);', '2.7182818', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(8); $x -> bexp();', '2.7182818', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(8); $x -> bexp(4);', '2.718', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(4); $x -> bexp(8);', '2.7182818', ], # Test precision. [ '$x = Math::BigFloat -> bone(); $x -> bexp(undef, -7);', '2.7182818', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-7); $x -> bexp();', '2.7182818', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-7); $x -> bexp(undef, -3);', '2.718', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-3); $x -> bexp(undef, -7);', '2.7182818', ], # Test accuracy for large positive argument. [ '$x = Math::BigFloat -> new("123.45678"); $x -> bexp();', '413616930694187906441132159048439731462700000000000000', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> bexp(60);', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(60); $x -> bexp();', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(40); $x -> bexp(60);', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(80); $x -> bexp(60);', '413616930694187906441132159048439731462689955622231644.661237', ], # Test precision for large positive argument. [ '$x = Math::BigFloat -> new("123.45678"); $x -> bexp();', '413616930694187906441132159048439731462700000000000000', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> bexp(undef, -6);', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-6); $x -> bexp();', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-5); $x -> bexp(undef, -6);', '413616930694187906441132159048439731462689955622231644.661237', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-9); $x -> bexp(undef, -6);', '413616930694187906441132159048439731462689955622231644.661237', ], # Test accuracy for large negative argument. [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bexp();', '0.000000000000000000000000000000000000000000000000000002417696002728091119130671660435314456803', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bexp(60);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(60); $x -> bexp();', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(40); $x -> bexp(60);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(80); $x -> bexp(60);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], # Test precision for large negative argument. [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bexp(undef, -113);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-113); $x -> bexp();', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-93); $x -> bexp(undef, -113);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-133); $x -> bexp(undef, -113);', '0.00000000000000000000000000000000000000000000000000000241769600272809111913067166043531445680296248978007951017367', ], ]; for my $entry (@$entries) { my ($test, $want) = @$entry; note "\n", $test, "\n\n"; eval $test; die $@ if $@; is($x, $want, 'value of $x'); } my $accu = 16; my $tol = 1e-14; my $max_relerr = 0; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in, $wanted) = split /:/; my $test = qq|\$x = $class -> new("$in", 20) -> bexp() -> bsstr();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; is($x, $wanted, $test); } # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before bexp()"); my $x = $class -> new(2); $x -> bexp(); is($class -> accuracy(), 10, "class accuracy is 10 after bexp()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before bexp()"); my $x = $class -> new(2); $x -> bexp(); is($class -> precision(), -10, "class precision is -10 after bexp()"); } done_testing(); __DATA__ -120.00:76676480737219996324e-72 -119.75:9845455012875848912e-71 -119.50:12641814475388325097e-71 -119.25:16232411099449616144e-71 -119.00:20842828425817513239e-71 -118.75:26762721454411435331e-71 -118.50:34364014567198602057e-71 -118.25:44124268123710803338e-71 -118.00:56656681763589393363e-71 -117.75:72748619409637634865e-71 -117.50:93411076350917881994e-71 -117.25:11994219623473776769e-70 -117.00:15400882849875201985e-70 -116.75:19775125018670097804e-70 -116.50:25391763142150053927e-70 -116.25:32603669249035658995e-70 -116.00:41863939993042315515e-70 -115.75:53754362993756764505e-70 -115.50:69021968341842640327e-70 -115.25:88625961660742597394e-70 -115.00:11379798735078681489e-69 -114.75:14611950812632037462e-69 -114.50:18762116230810634694e-69 -114.25:24091034111210462891e-69 -114.00:3093350011308560843e-68 -113.75:39719400372315046683e-69 -113.50:51000719613649062059e-69 -113.25:65486220253290406784e-69 -113.00:84085971248036430243e-69 -112.75:10796852426935342718e-68 -112.50:1386343293641170635e-67 -112.25:17801000252898600736e-68 -112.00:22856936767186717347e-68 -111.75:29348887756692283505e-68 -111.50:37684717831108563734e-68 -111.25:48388135515849135057e-68 -111.00:62131595868481088366e-68 -110.75:79778548274500786728e-68 -110.50:10243768369090897206e-67 -110.25:13153258948574645287e-67 -110.00:16889118802245323352e-67 -109.75:2168605780754182068e-66 -109.50:27845449412643335817e-67 -109.25:35754264784926785636e-67 -109.00:4590938473882945758e-66 -108.75:58948816869153334016e-67 -108.50:75691779143663974075e-67 -108.25:97190168254779634597e-67 -108.00:12479464629129512485e-66 -107.75:16023949770457953511e-66 -107.50:20575158780995713264e-66 -107.25:26419026827184463853e-66 -107.00:33922701930260152026e-66 -106.75:43557611481176344062e-66 -106.50:55929080232040207716e-66 -106.25:71814360549907552883e-66 -106.00:92211464229258749255e-66 -105.75:11840186378036073414e-65 -105.50:1520310024771828978e-64 -105.25:19521167130521982812e-65 -105.00:25065674758999531731e-65 -104.75:32184963476983777833e-65 -104.50:41326311139613836304e-65 -104.25:53064033881209908793e-65 -104.00:68135568215452985134e-65 -103.75:87487801369103053668e-65 -103.50:11233656060805690838e-64 -103.25:14424299904402799765e-64 -103.00:18521167695179754623e-64 -102.75:23781650067346720982e-64 -102.50:30536243137246928736e-64 -102.25:39209312318381673938e-64 -102.00:50345753587649823968e-64 -101.75:64645227228840420972e-64 -101.50:83006114829385553249e-64 -101.25:10658196118143230263e-63 -101.00:13685394711738530002e-63 -100.75:17572394647276279739e-63 -100.50:22563401359170363132e-63 -100.25:28971980832101478072e-63 -100.00:3720075976020835963e-62 -99.75:47766721052202104946e-63 -99.50:61333683902860921145e-63 -99.25:78754009030365216655e-63 -99.00:10112214926104485299e-62 -98.75:12984340984127310697e-62 -98.50:16672223842559789452e-62 -98.25:21407559166554132125e-62 -98.00:274878500791021493e-60 -97.75:35295098151669304968e-62 -97.50:4531980311123191359e-61 -97.25:58191779074105960769e-62 -97.00:74719723373429901606e-62 -96.75:95942023939361106199e-62 -96.50:12319199726660341309e-61 -96.25:15818165562284555743e-61 -96.00:20310926627348109257e-61 -95.75:26079746025994799787e-61 -95.50:33487056758138442847e-61 -95.25:42998232007514763574e-61 -95.00:55210822770285327317e-61 -94.75:70892099713288663036e-61 -94.50:91027257874224394149e-61 -94.25:1168813127218934748e-59 -94.00:15007857627073948875e-60 -93.75:19270470643193926345e-60 -93.50:24743774097395970922e-60 -93.25:31771634845836206e-57 -93.00:40795586671775601577e-60 -92.75:52382570175247539595e-60 -92.50:67260551496447081483e-60 -92.25:86364257661872757829e-60 -92.00:11089390193121363795e-59 -91.75:14239058863535613154e-59 -91.50:18283313490492594385e-59 -91.25:23476239223062358704e-59 -91.00:30144087850653745533e-59 -90.75:38705774963107561194e-59 -90.50:4969919882522613803e-58 -90.25:63815034480607903936e-59 -90.00:81940126239905154304e-59 -89.75:10521320473864035558e-58 -89.50:13509642905558533942e-58 -89.25:17346724861112387118e-58 -89.00:22273635617957437392e-58 -88.75:28599914255498718833e-58 -88.50:36723016819150420212e-58 -88.25:47153286973240557166e-58 -88.00:60546018954011858845e-58 -87.75:77742627216208970853e-58 -87.50:9982350930569247556e-57 -87.25:12817592313147442053e-57 -87.00:16458114310822736512e-57 -86.75:21132637085848645513e-57 -86.50:27134843139867625959e-57 -86.25:34841828269425031899e-57 -86.00:44737793061811207346e-57 -85.75:57444463377882085421e-57 -85.50:73760151025188750427e-57 -85.25:94709908655068727477e-57 -85.00:12160992992528255644e-56 -84.75:15615024094567797714e-56 -84.50:20050087819616539644e-56 -84.25:2574482236720893743e-55 -84.00:33057006267607342985e-56 -83.75:4244603624721380045e-55 -83.50:54501789379071678925e-56 -83.25:69981682817690035738e-56 -83.00:89858259440493806697e-56 -82.75:11538028902091524009e-55 -82.50:14815122368763273507e-55 -82.25:19022993672831141914e-55 -82.00:24426007377405276794e-55 -81.75:313636143007906581e-53 -81.50:40271677921406332541e-55 -81.25:51709858023748284986e-55 -81.00:66396771995807344007e-55 -80.75:85255142828637489655e-55 -80.50:10946977029531416782e-54 -80.25:14056196741815211947e-54 -80.00:18048513878454151723e-54 -79.75:23174750553376577323e-54 -79.50:29756968735933827241e-54 -79.25:38208704180521528511e-54 -79.00:49060947306492805661e-54 -78.75:62995503308314753001e-54 -78.50:80887827384912847916e-54 -78.25:10386202626287882612e-53 -78.00:13336148155022613415e-53 -77.75:17123953191762366003e-53 -77.50:21987591132394052761e-53 -77.25:28232625865731963229e-53 -77.00:36251409191435592242e-53 -76.75:46547730792550907923e-53 -76.50:59768469426773994703e-53 -76.25:76744233860502015951e-53 -76.00:98541546861112580289e-53 -75.75:12652985076939468481e-52 -75.50:16246754435760975758e-52 -75.25:20861245634201399181e-52 -75.00:26786369618080779443e-52 -74.75:34394379410408031541e-52 -74.50:44163257354165448968e-52 -74.25:56706744926470254098e-52 -74.00:72812901783216438343e-52 -73.75:93493616552438082193e-52 -73.50:1200481799513882329e-50 -73.25:15414491428468624897e-51 -73.00:19792598779469045537e-51 -72.75:25414199895141024714e-51 -72.50:32632478610144010189e-51 -72.25:41900931944943973771e-51 -72.00:53801861600211384138e-51 -71.75:69082957759787620349e-51 -71.50:88704273623532943184e-51 -71.25:11389854190144032355e-50 -71.00:14624862272512309468e-50 -70.75:18778694873463448014e-50 -70.50:24112321509750858678e-50 -70.25:3096083367386663815e-49 -70.00:39754497359086468078e-50 -69.75:51045785036712720566e-50 -69.50:65544085401917930254e-50 -69.25:84160271569614584159e-50 -69.00:10806392777072784945e-49 -68.75:13875682988472282558e-49 -68.50:17816729631100128627e-49 -68.25:22877133688586173275e-49 -68.00:29374821117108029466e-49 -67.75:37718016925022505322e-49 -67.50:48430892398787308141e-49 -67.25:62186496792912045045e-49 -67.00:79849042456869788084e-49 -66.75:10252820001279939066e-48 -66.50:13164881474367883936e-48 -66.25:1690404242076995063e-47 -66.00:2170522011303639412e-47 -65.75:27870054299940703276e-48 -65.50:35785858085591342804e-48 -65.25:45949951339879806699e-48 -65.00:59000905415970613914e-48 -64.75:75758662161695690827e-48 -64.50:97276047749877143426e-48 -64.25:12490491774577263648e-47 -64.00:1603810890548637853e-46 -63.75:20593339470250524694e-47 -63.50:26442371294280543444e-47 -63.25:33952676819350548893e-47 -63.00:43596100000630809736e-47 -62.75:55978500469270422248e-47 -62.50:71877817390609886133e-47 -62.25:92292944425583250339e-47 -62.00:11850648642339810063e-46 -61.75:15216534061000392514e-46 -61.50:19538416488219240091e-46 -61.25:25087823372704348409e-46 -61.00:3221340285992516089e-45 -60.75:41362828030145487931e-46 -60.50:53110922496790953416e-46 -60.25:68195774389612347283e-46 -60.00:87565107626965203385e-46 -59.75:11243582380802092517e-45 -59.50:1443704555157235529e-44 -59.25:18537533430097598089e-45 -59.00:23802664086944006059e-45 -58.75:30563225672516617073e-45 -58.50:39243958579474627186e-45 -58.25:50390240267486375548e-45 -58.00:64702349256454603262e-45 -57.75:83079460964694902339e-45 -57.50:10667613948338532507e-44 -57.25:13697487445079347359e-44 -57.00:1758792202424311649e-43 -56.75:2258333890585027333e-43 -56.50:28997581148784881061e-44 -56.25:37233631217505104293e-44 -56.00:47808928838854690813e-44 -55.75:61387879773704975006e-44 -55.50:78823597906008507933e-44 -55.25:1012115031460895615e-42 -55.00:12995814250075030736e-43 -54.75:16686955807649079951e-43 -54.50:21426475384166537618e-43 -54.25:27512138983304074257e-43 -54.00:35326285722008070297e-43 -53.75:45359848744231624988e-43 -53.50:58243198684704939568e-43 -53.25:74785747460355176767e-43 -53.00:96026800545086760302e-43 -52.75:12330085258309566847e-42 -52.50:15832142861596320162e-42 -52.25:20328873834921066848e-42 -52.00:26102790696677048047e-42 -51.75:33516646701013648448e-42 -51.50:43036226246244865914e-42 -51.25:55259608338502480501e-42 -51.00:7095474162284704139e-41 -50.75:91107691678247206731e-42 -50.50:11698459177061964686e-41 -50.25:15021118919431522539e-41 -50.00:1928749847963917783e-40 -49.75:24765638272182875672e-41 -49.50:31799709001977494982e-41 -49.25:40831634601813076879e-41 -49.00:52428856633634639372e-41 -48.75:67319984485464577081e-41 -48.50:86440571130360945577e-41 -48.25:11099189036438807005e-40 -48.00:14251640827409351063e-40 -47.75:18299469051898320814e-40 -47.50:23496983374528170976e-40 -47.25:30170723868383468759e-40 -47.00:38739976286871871129e-40 -46.75:4974311419422387845e-39 -46.50:63871422930584223502e-40 -46.25:82012530442882373902e-40 -46.00:10530617357553812379e-39 -45.75:13521580340512197092e-39 -45.50:17362052831002947254e-39 -45.25:22293317120883141026e-39 -45.00:28625185805493936445e-39 -44.75:36755466131663374597e-39 -44.50:47194952715261234164e-39 -44.25:60599518825771562567e-39 -44.00:77811322411337965157e-39 -43.75:9991171568224242818e-38 -43.50:12828918236087848928e-38 -43.25:16472657083745665699e-38 -43.00:21151310375910804866e-38 -42.75:27158820118920621185e-38 -42.50:34872615319944467343e-38 -42.25:4477732441718301199e-37 -42.00:57495222642935598067e-38 -41.75:73825327211649850516e-38 -41.50:94793596535047559454e-38 -41.25:12171738729024408987e-37 -41.00:15628821893349887681e-37 -40.75:20067804543947086326e-37 -40.50:25767571091549809481e-37 -40.25:33086216207858245787e-37 -40.00:42483542552915889953e-37 -39.75:54549948428879222214e-37 -39.50:70043520261686452206e-37 -39.25:8993766029028821023e-36 -39.00:11548224173015785986e-36 -38.75:14828213355760043407e-36 -38.50:19039802832864523191e-36 -38.25:24447590766121310119e-36 -38.00:31391327920480296287e-36 -37.75:40307262913476245811e-36 -37.50:51755550058018685349e-36 -37.25:66455441729150705396e-36 -37.00:85330476257440657943e-36 -36.75:10956650033262367229e-35 -36.50:14068617124461467672e-35 -36.25:18064461965456931424e-35 -36.00:23195228302435693883e-35 -35.75:29783262686202286388e-35 -35.50:38242466280971353519e-35 -35.25:49104298701591145602e-35 -35.00:63051167601469893856e-35 -34.75:80959301752126006249e-35 -34.50:1039538011670221944e-33 -34.25:13347932285976030013e-34 -34.00:17139084315420129663e-34 -33.75:22007019879753666488e-34 -33.50:28257572871156112102e-34 -33.25:36283441780470446345e-34 -33.00:46588861451033973642e-34 -32.75:59821282237671354351e-34 -32.50:76812046852020949067e-34 -32.25:98628620465804520664e-34 -32.00:12664165549094175723e-33 -31.75:16261110446178189415e-33 -31.50:20879679116459335505e-33 -31.25:26810038677818032222e-33 -31.00:34424771084699764584e-33 -30.75:4420228103641172961e-32 -30.50:56756852326327224619e-33 -30.25:72877240958196924193e-33 -30.00:93576229688401746049e-33 -29.75:12015425731771785743e-32 -29.50:1542811203191887833e-31 -29.25:19810087980489795691e-32 -29.00:25436656473769229103e-32 -28.75:3266131342787447136e-31 -28.50:41937956583795444253e-32 -28.25:53849402177540356665e-32 -28.00:69144001069402030094e-32 -27.75:88782654784596584473e-32 -27.50:11399918530443553453e-31 -27.25:14637785141259089276e-31 -27.00:18795288165390832948e-31 -26.75:24133627718332140455e-31 -26.50:30988191387218254416e-31 -26.25:39789625358372400943e-31 -26.00:51090890280633247199e-31 -25.75:65602001681537786682e-31 -25.50:84234637544686474059e-31 -25.25:10815941557285692308e-30 -25.00:13887943864964020595e-30 -24.75:17832472908146389494e-30 -24.50:22897348456455528941e-30 -24.25:29400777392844724843e-30 -24.00:37751345442790977516e-30 -23.75:48473687062702555447e-30 -23.50:62241446229077832321e-30 -23.25:79919598929539319543e-30 -23.00:10261879631701890304e-29 -22.75:13176514270095466813e-29 -22.50:16918979226151303613e-29 -22.25:21724399350790169583e-29 -22.00:27894680928689248077e-29 -21.75:35817479302831807357e-29 -21.50:45990553786523167791e-29 -21.25:59053039989440397431e-29 -21.00:75825604279119067279e-29 -20.75:97362003130095654095e-29 -20.50:12501528663867426289e-28 -20.25:16052280551856116087e-28 -20.00:2061153622438557828e-27 -19.75:26465736389091170007e-28 -19.50:33982678194950712251e-28 -19.25:43634622529437014933e-28 -19.00:560279643753726754e-26 -18.75:71941330303253835055e-28 -18.50:92374496619705948979e-28 -18.25:11861120151343829833e-27 -18.00:15229979744712628436e-27 -17.75:195556810878504954e-25 -17.50:25109991557439818035e-27 -17.25:32241867372567333107e-27 -17.00:41399377187851666597e-27 -16.75:53157852544244215455e-27 -16.50:68256033763348697554e-27 -16.25:87642482194436362887e-27 -16.00:11253517471925911451e-26 -15.75:1444980246109244758e-25 -15.50:18553913626159782407e-26 -15.25:2382369667501817918e-25 -15.00:30590232050182578837e-26 -14.75:39278635454810390256e-26 -14.50:50434766256788807589e-26 -14.25:64759521758422092483e-26 -14.00:83152871910356788406e-26 -13.75:10677040100347826947e-25 -13.50:13709590863840843645e-25 -13.25:17603463121561692986e-25 -13.00:22603294069810543258e-25 -12.75:29023204086504038856e-25 -12.50:37266531720786709929e-25 -12.25:47851173921290090896e-25 -12.00:61442123533282097587e-25 -11.75:78893248272002232423e-25 -11.50:10130093598630710729e-24 -11.25:13007297654067620979e-24 -11.00:16701700790245659313e-24 -10.75:21445408316589163929e-24 -10.50:27536449349747157857e-24 -10.25:35357500850409982405e-24 -10.00:45399929762484851536e-24 -9.75:58294663730868807758e-24 -9.50:74851829887700591471e-24 -9.25:9611165206139469382e-23 -9.00:1234098040866795495e-22 -8.75:15846132511575125041e-23 -8.50:20346836901064417437e-23 -8.25:26125855730166753249e-23 -8.00:33546262790251183882e-23 -7.75:43074254057568753685e-23 -7.50:5530843701478335831e-22 -7.25:71017438884254906358e-23 -7.00:911881965554516208e-21 -6.75:1170879620791174401e-21 -6.50:15034391929775724474e-22 -6.25:19304541362277092422e-22 -6.00:2478752176666358423e-21 -5.75:3182780796509667068e-21 -5.50:40867714384640669935e-22 -5.25:52475183991813842765e-22 -5.00:67379469990854670966e-22 -4.75:86516952031206341771e-22 -4.50:11108996538242306496e-21 -4.25:14264233908999255273e-21 -4.00:18315638888734180294e-21 -3.75:23517745856009108236e-21 -3.50:3019738342231850074e-20 -3.25:38774207831722009887e-21 -3.00:49787068367863942979e-21 -2.75:63927861206707572702e-21 -2.50:8208499862389879517e-20 -2.25:10539922456186433678e-20 -2.00:13533528323661269189e-20 -1.75:17377394345044512668e-20 -1.50:22313016014842982893e-20 -1.25:28650479686019010032e-20 -1.00:3678794411714423216e-19 -0.75:47236655274101470714e-20 -0.50:6065306597126334236e-19 -0.25:77880078307140486825e-20 0.00:1e+0 0.25:12840254166877414841e-19 0.50:16487212707001281468e-19 0.75:21170000166126746685e-19 1.00:27182818284590452354e-19 1.25:34903429574618413761e-19 1.50:44816890703380648226e-19 1.75:57546026760057304369e-19 2.00:73890560989306502272e-19 2.25:94877358363585257206e-19 2.50:12182493960703473438e-18 2.75:1564263188418817161e-17 3.00:20085536923187667741e-18 3.25:25790339917193062089e-18 3.50:33115451958692313751e-18 3.75:42521082000062783056e-18 4.00:54598150033144239078e-18 4.25:70105412346687858102e-18 4.50:9001713130052181355e-17 4.75:11558428452718765813e-17 5.00:14841315910257660342e-17 5.25:19056626845862999618e-17 5.50:24469193226422038792e-17 5.75:31419066028569419814e-17 6.00:40342879349273512261e-17 6.25:51801282466834202594e-17 6.50:66514163304436184069e-17 6.75:85405876252615155278e-17 7.00:10966331584284585993e-16 7.25:1408104848204695575e-15 7.50:18080424144560632069e-16 7.75:23215724146110567464e-16 8.00:29809579870417282747e-16 8.25:38276258214399062273e-16 8.50:49147688402991343754e-16 8.75:6310688108089023997e-15 9.00:81030839275753840077e-16 9.25:10404565716560723288e-15 9.50:13359726829661872276e-15 9.75:17154228809290985045e-15 10.00:22026465794806716517e-15 10.25:2828254192033497909e-14 10.50:36315502674246637739e-15 10.75:46630028453524329213e-15 11.00:59874141715197818455e-15 11.25:76879919764677763445e-15 11.50:98715771010760497428e-15 11.75:12675355900574341904e-14 12.00:16275479141900392081e-14 12.25:20898128886971296151e-14 12.50:26833728652087445696e-14 12.75:34455189613782370094e-14 13.00:44241339200892050333e-14 13.25:56807004002249126779e-14 13.50:72941636984770133186e-14 13.75:93658915823255445599e-14 14.00:12026042841647767777e-13 14.25:15441744670851405697e-13 14.50:19827592635375687671e-13 14.75:25459132895553061663e-13 15.00:32690173724721106393e-13 15.25:41975013938479676712e-13 15.50:53896984762830123678e-13 15.75:69205098318305803181e-13 16.00:88861105205078726368e-13 16.25:11409991763828444531e-12 16.50:1465071942895351691e-11 16.75:18811896119537229518e-12 17.00:24154952753575298215e-12 17.25:31015573274482230832e-12 17.50:39824784397576225022e-12 17.75:5113603538059727805e-11 18.00:65659969137330511139e-12 18.25:84309069231265055313e-12 18.50:10825498775023075725e-11 18.75:13900215575451639811e-11 19.00:17848230096318726084e-11 19.25:22917581086564340584e-11 19.50:29426756604150880657e-11 19.75:3778470341041358312e-10 20.00:48516519540979027797e-11 20.25:62296444219844548365e-11 20.50:7999021774755054067e-10 20.75:10270947267424175703e-10 21.00:13188157344832146972e-10 21.25:16933929230041595871e-10 21.50:21743595535764885455e-10 21.75:27919329318100222587e-10 22.00:35849128461315915617e-10 22.25:46031192110433541268e-10 22.50:59105220630232906143e-10 22.75:7589260554815570164e-9 23.00:97448034462489026e-7 23.25:12512575305609886385e-9 23.50:16066464720622478609e-9 23.75:20629749057596176166e-9 24.00:26489122129843472294e-9 24.25:34012706080464738693e-9 24.50:4367317909764641453e-8 24.75:56077471988933799045e-9 25.00:72004899337385872524e-9 25.25:92456120875245775651e-9 25.50:11871600913216965097e-8 25.75:15243437309343985937e-8 26.00:19572960942883876427e-8 26.25:25132179330499358875e-8 26.50:32270357037115483078e-8 26.75:4143595864124439884e-7 27.00:53204824060179861668e-8 27.25:68316346383670420573e-8 27.50:87719925131876492831e-8 27.75:11263461341927520006e-7 28.00:14462570642914751737e-7 28.25:18570308296144511349e-7 28.50:23844747847976778768e-7 28.75:30617262291312510388e-7 29.00:39313342971440420744e-7 29.25:50479331590291879204e-7 29.50:64816744779343202179e-7 29.75:83226347723639147632e-7 30.00:10686474581524462147e-6 30.25:13721704977464905311e-6 30.50:17619017951355631412e-6 30.75:22623266866618211942e-6 31.00:29048849665247425231e-6 31.25:37299461295718884905e-6 31.50:47893456332463727075e-6 31.75:61496415223907888198e-6 32.00:78962960182680695161e-6 32.25:10139044785146411902e-5 32.50:13018791205063293871e-5 32.75:16716458801852100004e-5 33.00:21464357978591606462e-5 33.25:27560781197395935993e-5 33.50:35388743561225987393e-5 33.75:45440046197258826949e-5 34.00:5834617425274548814e-4 34.25:74917970707017099022e-5 34.50:96196578554477641049e-5 34.75:12351885186234820941e-4 35.00:15860134523134307281e-4 35.25:20364815839791162985e-4 35.50:26148941144456966074e-4 35.75:33575905048954583547e-4 36.00:43112315471151952271e-4 36.25:55357308837219249338e-4 36.50:71080191546422440649e-4 36.75:91268772568639554088e-4 37.00:11719142372802611309e-3 37.25:15047676668460840439e-3 37.50:19321599304402836208e-3 37.75:24809424597909427774e-3 38.00:3185593175711375622e-2 38.25:40903826048404247573e-3 38.50:52521552285925158157e-3 38.75:67439008059022052463e-3 39.00:86593400423993746954e-3 39.25:11118812706182702103e-2 39.50:14276838118129198592e-2 39.75:18331823013614275199e-2 40.00:23538526683701998541e-2 40.25:30224066533255980371e-2 40.50:38808469624362032402e-2 40.75:49831061380435016884e-2 41.00:63984349353005494922e-2 41.25:82157530839486902849e-2 41.50:10549235777020814185e-1 41.75:13545486864326381243e-1 42.00:17392749415205010474e-1 42.25:22332732315204085594e-1 42.50:28675795916805715596e-1 42.75:368204508009290948e+1 43.00:47278394682293465615e-1 43.25:60706660432259368343e-1 43.50:77948894957253063996e-1 43.75:10008836232783585641e+0 44.00:12851600114359308276e+0 44.25:16501781191944436918e+0 44.50:21188706471076390949e+0 44.75:2720683765559810729e+1 45.00:34934271057485095348e+0 45.25:4485649195126980689e+1 45.50:57596875768879535865e+0 45.75:73955852409047626713e+0 46.00:94961194206024488745e+0 46.25:1219325869595561365e+2 46.50:15656454077855834166e+1 46.75:20103284971171326815e+1 47.00:25813128861900673962e+1 47.25:33144713542916378987e+1 47.50:42558654617939031863e+1 47.75:54646394229468838738e+1 48.00:70167359120976317387e+1 48.25:90096672533190013954e+1 48.50:11568641749160830075e+2 48.75:14854430042477437334e+2 49.00:19073465724950996905e+2 49.25:24490814775159559005e+2 49.50:31446828646696548517e+2 49.75:40378527256582541339e+2 50.00:51847055285870724641e+2 50.25:66572936767472526876e+2 50.50:85481342872980576923e+2 50.75:10976021690150658605e+3 51.00:14093490824269387964e+3 51.25:18096400428217362072e+3 51.50:2323623810039002176e+4 51.75:29835920309108872329e+3 52.00:38310080007165768493e+3 52.25:49191116444541740149e+3 52.50:63162643790037920251e+3 52.75:81102440011602827585e+3 53.00:10413759433029087797e+4 53.25:13371531795281072966e+4 53.50:17169386685189163673e+4 53.75:22045928892722976404e+4 54.00:28307533032746939004e+4 54.25:36347591897774894756e+4 54.50:46671231832136385508e+4 54.75:59927047900589106814e+4 55.00:76947852651420171382e+4 55.25:98802998563966718928e+4 55.50:12686556140109568975e+5 55.75:16289860534136614536e+5 56.00:20916594960129961539e+5 56.25:26857439559369587339e+5 56.50:34485635021385366422e+5 56.75:44280431878075715825e+5 57.00:56857199993359322226e+5 57.25:73006089913171456063e+5 57.50:93741675021502699374e+5 57.75:12036669333049185121e+6 58.00:15455389355901039304e+6 58.25:19845112757782116459e+6 58.50:25481629178026396623e+6 58.75:32719059523197855451e+6 59.00:4201210403790514255e+7 59.25:53944609393199897211e+6 59.50:69266249554160951309e+6 59.75:889396249461786033e+8 60.00:11420073898156842837e+7 60.25:14663665145685640327e+7 60.50:18828518748858515756e+7 60.75:24176296632116008646e+7 61.00:31042979357019199087e+7 61.25:39859974504125534321e+7 61.50:51181220371822540943e+7 61.75:65717987814516561268e+7 62.00:84383566687414544891e+7 62.25:10835064437740528235e+8 62.50:13912498129508311164e+8 62.75:17864001207909333228e+8 63.00:22937831594696098791e+8 63.25:29452758771292899986e+8 63.50:3781809085391289879e+9 63.75:48559389867030375025e+8 64.00:62351490808116168829e+8 64.25:8006089896599324668e+9 64.50:10280022915520464989e+9 64.75:13199810707660696131e+9 65.00:16948892444103337141e+9 65.25:21762808682935500663e+9 65.50:27943999487401854681e+9 65.75:35880805585733200894e+9 66.00:46071866343312915427e+9 66.25:59157447379054298782e+9 66.50:75959666021073336335e+9 66.75:97534141814170368893e+9 67.00:12523631708422137805e+10 67.25:16080661422850547256e+10 67.50:20647977984090163798e+10 67.75:26512528534780684974e+10 68.00:34042760499317405214e+10 68.25:43711769735337017573e+10 68.50:56127023348574721279e+10 68.75:72068524542596251832e+10 69.00:92537817255877876002e+10 69.25:11882090936135266395e+11 69.50:1525690676539272172e+12 69.75:19590256066799411611e+11 70.00:25154386709191670063e+11 70.25:32298871875794420422e+11 70.50:41472572418860905091e+11 70.75:53251837081240408409e+11 71.00:68376712297627438668e+11 71.25:8779743649969888934e+12 71.50:11273413998564138954e+12 71.75:14475350106999736396e+12 72.00:18586717452841279803e+12 72.25:23865817622241841327e+12 72.50:30644316416992723992e+12 72.75:39348081156440079544e+12 73.00:50523936302761041946e+12 73.25:64874018363857655767e+12 73.50:83299888461860519478e+12 73.75:10695917399228284257e+13 74.00:13733829795401761878e+13 74.25:17634586525759266668e+13 74.50:22643257311854073807e+13 74.75:2907451790502117624e+14 75.00:37332419967990016403e+13 75.25:47935776105360141408e+13 75.50:615507548879353372e+15 75.75:79032733692426212242e+13 76.00:10148003881138887278e+14 76.25:13030294912028177541e+14 76.50:16731229853981138431e+14 76.75:21483324384956511381e+14 77.00:27585134545231702063e+14 77.25:35420013878828548428e+14 77.50:45480198079848413399e+14 77.75:58397730290518379155e+14 78.00:74984169969901204347e+14 78.25:96281580090586825727e+14 78.50:12362799599516990337e+15 78.75:1587414890719684706e+16 79.00:20382810665126687668e+15 79.25:26172046957556636282e+15 79.50:33605573500247796662e+15 79.75:43150410516686200204e+15 80.00:55406223843935100526e+15 80.25:71142999658303045143e+15 80.50:9134941978066841756e+16 80.75:11729497679805617914e+16 81.00:15060973145850305484e+16 81.25:19338672319323323195e+16 81.50:24831346783006822105e+16 81.75:31884080399968143772e+16 82.00:40939969621274546967e+16 82.25:52567961552140528084e+16 82.50:67498598736412415156e+16 82.75:86669916368360612187e+16 83.00:11128637547917594121e+17 83.25:14289453464631734428e+17 83.50:18348021439163854018e+17 83.75:23559325873817981842e+17 84.00:30250773222011423383e+17 84.25:38842761691519589936e+17 84.50:49875093266256083711e+17 84.75:6404088741354443731e+18 85.00:82230127146229135103e+17 85.25:10558557327322282771e+18 85.50:13557455971836400187e+18 85.75:17408118053462942925e+18 86.00:22352466037347150474e+18 86.25:2870113451760326459e+19 86.50:36852986208376451985e+18 86.75:47320170972398163873e+18 87.00:60760302250568721495e+18 87.25:78017772415359619297e+18 87.50:10017680273468151854e+19 87.75:12862956087384511746e+19 88.00:16516362549940018555e+19 88.25:21207429305352540792e+19 88.50:27230878250681116121e+19 88.75:34965139792603977031e+19 89.00:44896128191743452463e+19 89.25:57647769709069644146e+19 89.50:7402120152180711149e+20 89.75:95045104127765660391e+19 90.00:1220403294317840802e+21 90.25:15670288485135579448e+20 90.50:20121048701743329676e+20 90.75:25835937943450318708e+20 91.00:33174000983357426258e+20 91.25:42596260435855064996e+20 91.50:54694681055488356515e+20 91.75:70229360632876557178e+20 92.00:90176284050342989314e+20 92.25:11578864070309379322e+21 92.50:14867555762649719192e+21 92.75:19090319483264537812e+21 93.00:24512455429200857856e+21 93.25:31474615796519322531e+21 93.50:40414206663212293443e+21 93.75:51892868550835663453e+21 94.00:66631762164108958342e+21 94.25:85556876177408492502e+21 94.50:10985720358419844238e+22 94.75:14105944160835045224e+22 95.00:18112390828890232822e+22 95.25:23256770181277008566e+22 95.50:29862284022825251975e+22 95.75:38343931685655879194e+22 96.00:49234582860120583998e+22 96.25:63218455772413467762e+22 96.50:8117410401552875886e+23 96.75:10422961273279338382e+23 97.00:13383347192042695005e+23 97.25:17184557954939336403e+23 97.50:2206540918868562407e+24 97.75:28332546227887578202e+23 98.00:36379709476088045793e+23 98.25:46712471619012930437e+23 98.50:5998000083511737607e+24 98.75:77015845565242671006e+23 99.00:98890303193469467706e+23 99.25:12697766276437172563e+24 99.50:16304254634105792122e+24 99.75:20935077350340729796e+24 100.00:26881171418161354484e+24 100.25:34516107331259239871e+24 100.50:4431955909845895416e+25 100.75:56907440338815742922e+24 101.00:73070599793680672726e+24 101.25:93824507347704022713e+24 101.50:12047305214265772033e+25 101.75:15469046097712008637e+25 102.00:19862648361376543259e+25 102.25:25504145338738601552e+25 102.50:32747970845838552539e+25 102.75:42049226911005857362e+25 103.00:53992276105801688698e+25 103.25:69327454824671601441e+25 103.50:89018214069149526772e+25 103.75:11430164941293829253e+26 104.00:14676622301554423285e+26 104.25:18845156066322017808e+26 104.50:24197659370604648107e+26 104.75:31070409656208665623e+26 105.00:39895195705472158508e+26 105.25:51226445289557882906e+26 105.50:65776057758356352562e+26 105.75:84458129971250466654e+26 106.00:10844638552900230813e+27 106.25:13924791536715664689e+27 106.50:17879786255221267423e+27 106.75:22958099996648240809e+27 107.00:29478783914555093774e+27 107.25:37851507799334495336e+27 107.50:48602298074299772045e+27 107.75:62406586036834580316e+27 108.00:80131642640005911411e+27 108.25:10289106583070678347e+28 108.50:13211474367671911753e+28 108.75:16963868880009342429e+28 109.00:21782038807290206356e+28 109.25:27968691455839362744e+28 109.50:35912510700795012746e+28 109.75:46112576516891291178e+28 110.00:5920972027664670299e+29 110.25:76026785750185898786e+28 110.50:97620325252312095227e+28 110.75:1253469788092928904e+30 111.00:16094870669615180549e+29 111.25:20666223018087941005e+29 111.50:26535955622162162862e+29 111.75:34072841474954187489e+29 112.00:43750394472613410735e+29 112.25:56176618492950496549e+29 112.50:72132205968519045371e+29 112.75:92619585825333660519e+29 113.00:1189259022828200882e+31 113.25:15270388123366368993e+30 113.50:19607566473089040657e+30 113.75:251766137108407451e+32 114.00:32327411910848593114e+30 114.25:4150921854926362193e+31 114.50:53298891644100750211e+30 114.75:68437131552311248574e+30 115.00:87875016358370231131e+30 115.25:11283375449599843527e+31 115.50:14488140863316671496e+31 115.75:18603141109050883756e+31 116.00:23886906014249914255e+31 116.25:30671394448328164271e+31 116.50:39382850036908651969e+31 116.75:5056858042899246693e+32 117.00:64931342556644621362e+31 117.25:83373494182390091402e+31 117.50:10705368560825642761e+32 117.75:13745965327109993311e+32 118.00:17650168856917655833e+32 118.25:22663265421112690832e+32 118.50:29100208825849105824e+32 118.75:37365407763311190463e+32 119.00:4797813327299302186e+33 119.25:61605142567754859039e+32 119.50:7910256885566915324e+33 119.75:10156970893597134655e+33 120.00:13041808783936322797e+33 Math-BigInt-2.005003/xt/author/bfac-mbf.t0000644403072340010010000000543414757633615017542 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 121; my $class = "Math::BigFloat"; use_ok($class); note("bfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a class method { my $y; my $test = qq|\$y = $class -> bfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my ($y, $test); # $test = qq|\$y = $ {class}::bfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigFloat -1.5 NaN -0.5 NaN 1.5 NaN 2.5 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -2 NaN -1 NaN 0 1 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 6227020800 14 87178291200 15 1307674368000 16 20922789888000 17 355687428096000 18 6402373705728000 19 121645100408832000 20 2432902008176640000 21 51090942171709440000 22 1124000727777607680000 23 25852016738884976640000 24 620448401733239439360000 25 15511210043330985984000000 26 403291461126605635584000000 27 10888869450418352160768000000 28 304888344611713860501504000000 29 8841761993739701954543616000000 30 265252859812191058636308480000000 31 8222838654177922817725562880000000 32 263130836933693530167218012160000000 33 8683317618811886495518194401280000000 34 295232799039604140847618609643520000000 35 10333147966386144929666651337523200000000 36 371993326789901217467999448150835200000000 37 13763753091226345046315979581580902400000000 38 523022617466601111760007224100074291200000000 39 20397882081197443358640281739902897356800000000 40 815915283247897734345611269596115894272000000000 41 33452526613163807108170062053440751665152000000000 42 1405006117752879898543142606244511569936384000000000 43 60415263063373835637355132068513997507264512000000000 44 2658271574788448768043625811014615890319638528000000000 45 119622220865480194561963161495657715064383733760000000000 46 5502622159812088949850305428800254892961651752960000000000 47 258623241511168180642964355153611979969197632389120000000000 48 12413915592536072670862289047373375038521486354677760000000000 49 608281864034267560872252163321295376887552831379210240000000000 50 30414093201713378043612608166064768844377641568960512000000000000 inf inf Math-BigInt-2.005003/xt/author/bfac-mbi.t0000644403072340010010000000506214757632776017551 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 169; my $class = "Math::BigInt"; use_ok($class); note("bfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a class method { my $y; my $test = qq|\$y = $class -> bfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a function { my $y; my $test = qq|\$y = $ {class}::bfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } } __DATA__ # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -2 NaN -1 NaN 0 1 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 6227020800 14 87178291200 15 1307674368000 16 20922789888000 17 355687428096000 18 6402373705728000 19 121645100408832000 20 2432902008176640000 21 51090942171709440000 22 1124000727777607680000 23 25852016738884976640000 24 620448401733239439360000 25 15511210043330985984000000 26 403291461126605635584000000 27 10888869450418352160768000000 28 304888344611713860501504000000 29 8841761993739701954543616000000 30 265252859812191058636308480000000 31 8222838654177922817725562880000000 32 263130836933693530167218012160000000 33 8683317618811886495518194401280000000 34 295232799039604140847618609643520000000 35 10333147966386144929666651337523200000000 36 371993326789901217467999448150835200000000 37 13763753091226345046315979581580902400000000 38 523022617466601111760007224100074291200000000 39 20397882081197443358640281739902897356800000000 40 815915283247897734345611269596115894272000000000 41 33452526613163807108170062053440751665152000000000 42 1405006117752879898543142606244511569936384000000000 43 60415263063373835637355132068513997507264512000000000 44 2658271574788448768043625811014615890319638528000000000 45 119622220865480194561963161495657715064383733760000000000 46 5502622159812088949850305428800254892961651752960000000000 47 258623241511168180642964355153611979969197632389120000000000 48 12413915592536072670862289047373375038521486354677760000000000 49 608281864034267560872252163321295376887552831379210240000000000 50 30414093201713378043612608166064768844377641568960512000000000000 inf inf Math-BigInt-2.005003/xt/author/bfac-mbr.t0000644403072340010010000000543014757634560017552 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 121; my $class = "Math::BigRat"; use_ok($class); note("bfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # bfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> bfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a class method { my $y; my $test = qq|\$y = $class -> bfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # bfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my ($y, $test); # $test = qq|\$y = $ {class}::bfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigRat -3/2 NaN -1/2 NaN 3/2 NaN 5/2 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: NaN NaN -inf NaN -2 NaN -1 NaN 0 1 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 6227020800 14 87178291200 15 1307674368000 16 20922789888000 17 355687428096000 18 6402373705728000 19 121645100408832000 20 2432902008176640000 21 51090942171709440000 22 1124000727777607680000 23 25852016738884976640000 24 620448401733239439360000 25 15511210043330985984000000 26 403291461126605635584000000 27 10888869450418352160768000000 28 304888344611713860501504000000 29 8841761993739701954543616000000 30 265252859812191058636308480000000 31 8222838654177922817725562880000000 32 263130836933693530167218012160000000 33 8683317618811886495518194401280000000 34 295232799039604140847618609643520000000 35 10333147966386144929666651337523200000000 36 371993326789901217467999448150835200000000 37 13763753091226345046315979581580902400000000 38 523022617466601111760007224100074291200000000 39 20397882081197443358640281739902897356800000000 40 815915283247897734345611269596115894272000000000 41 33452526613163807108170062053440751665152000000000 42 1405006117752879898543142606244511569936384000000000 43 60415263063373835637355132068513997507264512000000000 44 2658271574788448768043625811014615890319638528000000000 45 119622220865480194561963161495657715064383733760000000000 46 5502622159812088949850305428800254892961651752960000000000 47 258623241511168180642964355153611979969197632389120000000000 48 12413915592536072670862289047373375038521486354677760000000000 49 608281864034267560872252163321295376887552831379210240000000000 50 30414093201713378043612608166064768844377641568960512000000000000 inf inf Math-BigInt-2.005003/xt/author/bfdiv-mbi-mbf.t0000644403072340010010000003763514757667145020523 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More tests => 40; use Math::BigFloat; note "\nScalar context, no upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, upgrading, but no downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2.25", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigInt -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, downgrading, but no upgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("7.5"); $q = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigFloat -> new("7.5"); my $q = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("0"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("0"); my $q = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("NaN"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("NaN"); my $q = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, upgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2.25", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("7.5"); $q = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigFloat -> new("7.5"); my $q = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("8"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my $q = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("0"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("0"); my $q = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigFloat -> new("NaN"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("NaN"); my $q = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nList context, no upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigFloat", "remainder class"); }; note "\nList context, upgrading, but no downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade, because in list context, we want both the # quotient and the remainder, and when dividing two integers, we know # in advance that the quotient and remainder are integers my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigFloat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigFloat", "remainder class"); }; note "\nList context, downgrading, but no upgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("7.5"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigFloat -> new("7.5"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "8", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("0"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("0"); my ($q, $r) = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("NaN"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("NaN"); my ($q, $r) = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; note "\nList context, upgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must upgrade internally, then downgrade the results my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("7.5"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigFloat -> new("7.5"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "8", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("0"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigFloat -> new("0"); my ($q, $r) = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("NaN"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("NaN"); my ($q, $r) = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigFloat -> new("8"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade, but only the quotient, not the remainder my $x = Math::BigFloat -> new("8"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0.5", "remainder value"); is(ref($r), "Math::BigFloat", "remainder class"); }; Math-BigInt-2.005003/xt/author/bfdiv-mbi-mbr.t0000644403072340010010000003736714757667145020541 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More tests => 40; use Math::BigRat; note "\nScalar context, no upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, upgrading, but no downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "9/4", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigInt -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, downgrading, but no upgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("7.5"); $q = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigRat -> new("7.5"); my $q = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("0"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("0"); my $q = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("NaN"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("NaN"); my $q = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nScalar context, upgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigInt -> new("9"); $q = $x -> bfdiv("4");' => sub { # this must upgrade my $x = Math::BigInt -> new("9"); my $q = $x -> bfdiv("4"); is($x, "9/4", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("7.5"); $q = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigRat -> new("7.5"); my $q = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("8"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my $q = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("0"); $q = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("0"); my $q = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; subtest '$x = Math::BigRat -> new("NaN"); $q = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("NaN"); my $q = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); }; note "\nList context, no upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigRat", "remainder class"); }; note "\nList context, upgrading, but no downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade, because in list context, we want both the # quotient and the remainder, and when dividing two integers, we know # in advance that the quotient and remainder are integers my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigRat", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigRat", "remainder class"); }; note "\nList context, downgrading, but no upgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must not upgrade my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("7.5"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigRat -> new("7.5"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "8", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("0"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("0"); my ($q, $r) = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("NaN"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("NaN"); my ($q, $r) = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; note "\nList context, upgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> new("9"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must upgrade internally, then downgrade the results my $x = Math::BigInt -> new("9"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("4"); is($x, "2", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("7.5"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade my $x = Math::BigRat -> new("7.5"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("1");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("1"); is($x, "8", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("0"); is($x, "inf", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "8", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("0"); ($q, $r) = $x -> bfdiv("0");' => sub { # this must downgrade my $x = Math::BigRat -> new("0"); my ($q, $r) = $x -> bfdiv("0"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "0", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("NaN"); ($q, $r) = $x -> bfdiv("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("NaN"); my ($q, $r) = $x -> bfdiv("4"); is($x, "NaN", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "NaN", "remainder value"); is(ref($r), "Math::BigInt", "remainder class"); }; subtest '$x = Math::BigRat -> new("8"); ($q, $r) = $x -> bfdiv("2.5");' => sub { # this must downgrade, but only the quotient, not the remainder my $x = Math::BigRat -> new("8"); my ($q, $r) = $x -> bfdiv("2.5"); is($x, "3", "quotient value"); is(ref($x), "Math::BigInt", "quotient class"); is(refaddr($x), refaddr($q), "quotient address"); is($r, "1/2", "remainder value"); is(ref($r), "Math::BigRat", "remainder class"); }; Math-BigInt-2.005003/xt/author/bfib-mbf.t0000644403072340010010000000406214757627233017544 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigFloat"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-6765" ], [ "-15", "610" ], [ "-2", "-1" ], [ "-1", "1" ], [ "0", "0" ], [ "1", "1" ], [ "2", "1" ], [ "15", "610" ], [ "20", "6765" ], [ "250", "7896325826131730509282738943634332893686268675876375" ], [ "inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # bfib() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> bfib();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # bfib() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> bfib("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55) [0 .. $k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values") or diag(<<"EOF"); got: ( @{[ join ", ", @y ]} ) expected: ( @{[ join ", ", @$want ]} ) EOF } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55) [0 .. -$k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/bfib-mbi.t0000644403072340010010000000370714757626555017562 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigInt"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-6765" ], [ "-15", "610" ], [ "-2", "-1" ], [ "-1", "1" ], [ "0", "0" ], [ "1", "1" ], [ "2", "1" ], [ "15", "610" ], [ "20", "6765" ], [ "250", "7896325826131730509282738943634332893686268675876375" ], [ "inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # bfib() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> bfib();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # bfib() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> bfib("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55) [0 .. $k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55) [0 .. -$k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/bfib-mbr.t0000644403072340010010000000406014757627775017571 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigRat"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-6765" ], [ "-15", "610" ], [ "-2", "-1" ], [ "-1", "1" ], [ "0", "0" ], [ "1", "1" ], [ "2", "1" ], [ "15", "610" ], [ "20", "6765" ], [ "250", "7896325826131730509282738943634332893686268675876375" ], [ "inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # bfib() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> bfib();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # bfib() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> bfib("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55) [0 .. $k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values") or diag(<<"EOF"); got: ( @{[ join ", ", @y ]} ) expected: ( @{[ join ", ", @$want ]} ) EOF } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55) [0 .. -$k] ]; my $test = qq|\@y = $class -> bfib("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/bfmod-bfdiv-mbf.t0000644403072340010010000003405014757667145021027 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 19125; use Math::BigFloat; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigFloat object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigFloat uses 'NaN'. sub pl2mbf { my $x = shift; return Math::BigFloat -> binf('+') if $x == $inf; return Math::BigFloat -> binf('-') if $x == -$inf; return Math::BigFloat -> bnan() if isnan($x); return Math::BigFloat -> new($x); } # Does a floored division (F-division). sub fdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigFloat, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is non-zero. if (isinf($x)) { my $q = $x / $y; my $r = $nan; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = Inf # 5 % -Inf = -Inf if (isinf($y)) { if (wantarray) { if ($x == 0 || ($x <=> 0) == ($y <=> 0)) { return 0, $x; } else { return -1, ($y <=> 0) * $inf; } } else { return 0; } } return $x / $y unless wantarray; # First do a truncated division ... my $q = int($x / $y); my $r = $x - $y * $q; # ... then convert it to a floored division. if ($y > 0 && $r < 0 || $y < 0 && $r > 0) { $q -= 1; $r += $y; } return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20, -16, -10, -8, -5, -4, -2, -1, 0, 1, 2, 4, 5, 8, 10, 16, 20, $inf, $nan) { ####################################################################### # bfdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = fdiv($num, $den); note(qq|\n(\$quo, \$rem) = | . qq|Math::BigFloat -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my ($mbf_quo, $mbf_rem) = $mbf_num -> bfdiv($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $den = $quo"); is($mbf_rem, pl2mbf($rem), "$num % $den = $rem"); is($mbf_den, pl2mbf($den), "value of denominator has not changed"); # Check addresses. my ($mbf_quo_addr, $mbf_rem_addr); $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbf_rem_addr != $mbf_num_addr && $mbf_rem_addr != $mbf_den_addr && $mbf_rem_addr != $mbf_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = fdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigFloat -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my $mbf_quo = $mbf_num -> bfdiv($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $den = $quo"); is($mbf_den, pl2mbf($den), "value of numerator has not changed"); # Check addresses. my $mbf_quo_addr; $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = fdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigFloat -> new("$num") -> bfmod("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my $mbf_rem = $mbf_num -> bfmod($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_rem, pl2mbf($rem), "$num % $den = $rem"); is($mbf_den, pl2mbf($den), "value of denominator has not changed"); # Check addresses. my $mbf_rem_addr; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_rem_addr, $mbf_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. #for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { ####################################################################### # bfdiv() in list context. ####################################################################### { # Compute expected output values. my ($quo, $rem) = fdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> bfdiv("\$x")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my ($mbf_quo, $mbf_rem) = $mbf_num -> bfdiv($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $num = $quo"); is($mbf_rem, pl2mbf($rem), "$num % $num = $rem"); # Check addresses. my ($mbf_quo_addr, $mbf_rem_addr); $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); ok($mbf_rem_addr != $mbf_num_addr && $mbf_rem_addr != $mbf_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { # Compute expected output values. my $quo = fdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num"); | . qq|\$quo = \$x -> bfdiv(\$x)\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my $mbf_quo = $mbf_num -> bfdiv($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $num = $quo"); # Check addresses. my $mbf_quo_addr; $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { # Compute expected output values. my (undef, $rem) = fdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num") | . qq|\$quo = \$x -> bfmod(\$x)\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my $mbf_rem = $mbf_num -> bfmod($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_rem, pl2mbf($rem), "$num % $num = $rem"); # Check addresses. my $mbf_rem_addr; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_rem_addr, $mbf_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/bfmod-bfdiv-mbi.t0000644403072340010010000003274714757667145021045 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 41301; use Math::BigInt; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigInt object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigInt uses 'NaN'. sub pl2mbi { my $x = shift; return Math::BigInt -> binf('+') if $x == $inf; return Math::BigInt -> binf('-') if $x == -$inf; return Math::BigInt -> bnan() if isnan($x); return Math::BigInt -> new($x); } # Does a floored division (F-division). sub fdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigInt, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is non-zero. if (isinf($x)) { my $q = $x / $y; my $r = $nan; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = Inf # 5 % -Inf = -Inf if (isinf($y)) { if (wantarray) { if ($x == 0 || ($x <=> 0) == ($y <=> 0)) { return 0, $x; } else { return -1, ($y <=> 0) * $inf; } } else { return 0; } } # First do a truncated division ... my $q = int($x / $y); my $r = $x - $y * $q; # ... then convert it to a floored division. if ($y > 0 && $r < 0 || $y < 0 && $r > 0) { $q -= 1; $r += $y; } return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20 .. 20, $inf, $nan) { # Compute expected output values. my ($quo, $rem) = fdiv($num, $den); ####################################################################### # bfdiv() in list context. ####################################################################### { note(qq|\n(\$quo, \$rem) = | . qq|Math::BigInt -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my ($mbi_quo, $mbi_rem) = $mbi_num -> bfdiv($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $den = $quo"); is($mbi_rem, pl2mbi($rem), "$num % $den = $rem"); is($mbi_den, pl2mbi($den), "value of denominator has not changed"); # Check addresses. my ($mbi_quo_addr, $mbi_rem_addr); $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbi_rem_addr != $mbi_num_addr && $mbi_rem_addr != $mbi_den_addr && $mbi_rem_addr != $mbi_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { note(qq|\n\$quo = | . qq|Math::BigInt -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my $mbi_quo = $mbi_num -> bfdiv($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $den = $quo"); is($mbi_den, pl2mbi($den), "value of numerator has not changed"); # Check addresses. my $mbi_quo_addr; $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { note(qq|\n\$quo = | . qq|Math::BigInt -> new("$num") -> bfmod("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my $mbi_rem = $mbi_num -> bfmod($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_rem, pl2mbi($rem), "$num % $den = $rem"); is($mbi_den, pl2mbi($den), "value of denominator has not changed"); # Check addresses. my $mbi_rem_addr; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_rem_addr, $mbi_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. #for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { # Compute expected output values. my ($quo, $rem) = fdiv($num, $num); ####################################################################### # bfdiv() in list context. ####################################################################### { note(qq|\n\$x = Math::BigInt -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> bfdiv("\$x")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my ($mbi_quo, $mbi_rem) = $mbi_num -> bfdiv($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $num = $quo"); is($mbi_rem, pl2mbi($rem), "$num % $num = $rem"); # Check addresses. my ($mbi_quo_addr, $mbi_rem_addr); $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); ok($mbi_rem_addr != $mbi_num_addr && $mbi_rem_addr != $mbi_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { note(qq|\n\$x = Math::BigInt -> new("$num"); | . qq|\$quo = \$x -> bfdiv(\$x)\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my $mbi_quo = $mbi_num -> bfdiv($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $num = $quo"); # Check addresses. my $mbi_quo_addr; $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { note(qq|\n\$x = Math::BigInt -> new("$num") | . qq|\$quo = \$x -> bfmod(\$x)\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my $mbi_rem = $mbi_num -> bfmod($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_rem, pl2mbi($rem), "$num % $num = $rem"); # Check addresses. my $mbi_rem_addr; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_rem_addr, $mbi_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/bfmod-bfdiv-mbr.t0000644403072340010010000003366614757667145021057 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 19125; use Math::BigRat; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigRat object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigRat uses 'NaN'. sub pl2mbr { my $x = shift; return Math::BigRat -> binf('+') if $x == $inf; return Math::BigRat -> binf('-') if $x == -$inf; return Math::BigRat -> bnan() if isnan($x); return Math::BigRat -> new($x); } # Does a floored division (F-division). sub fdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigRat, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is non-zero. if (isinf($x)) { my $q = $x / $y; my $r = $nan; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = Inf # 5 % -Inf = -Inf if (isinf($y)) { if (wantarray) { if ($x == 0 || ($x <=> 0) == ($y <=> 0)) { return 0, $x; } else { return -1, ($y <=> 0) * $inf; } } else { return 0; } } return $x / $y unless wantarray; # First do a truncated division ... my $q = int($x / $y); my $r = $x - $y * $q; # ... then convert it to a floored division. if ($y > 0 && $r < 0 || $y < 0 && $r > 0) { $q -= 1; $r += $y; } return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20, -16, -10, -8, -5, -4, -2, -1, 0, 1, 2, 4, 5, 8, 10, 16, 20, $inf, $nan) { ####################################################################### # bfdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = fdiv($num, $den); note(qq|\n(\$quo, \$rem) = | . qq|Math::BigRat -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my ($mbr_quo, $mbr_rem) = $mbr_num -> bfdiv($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $den = $quo"); is($mbr_rem, pl2mbr($rem), "$num % $den = $rem"); is($mbr_den, pl2mbr($den), "value of denominator has not changed"); # Check addresses. my ($mbr_quo_addr, $mbr_rem_addr); $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbr_rem_addr != $mbr_num_addr && $mbr_rem_addr != $mbr_den_addr && $mbr_rem_addr != $mbr_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = fdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigRat -> new("$num") -> bfdiv("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my $mbr_quo = $mbr_num -> bfdiv($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $den = $quo"); is($mbr_den, pl2mbr($den), "value of numerator has not changed"); # Check addresses. my $mbr_quo_addr; $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = fdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigRat -> new("$num") -> bfmod("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my $mbr_rem = $mbr_num -> bfmod($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_rem, pl2mbr($rem), "$num % $den = $rem"); is($mbr_den, pl2mbr($den), "value of denominator has not changed"); # Check addresses. my $mbr_rem_addr; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_rem_addr, $mbr_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. #for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { ####################################################################### # bfdiv() in list context. ####################################################################### { # Compute expected output values. my ($quo, $rem) = fdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> bfdiv("\$x")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my ($mbr_quo, $mbr_rem) = $mbr_num -> bfdiv($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $num = $quo"); is($mbr_rem, pl2mbr($rem), "$num % $num = $rem"); # Check addresses. my ($mbr_quo_addr, $mbr_rem_addr); $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); ok($mbr_rem_addr != $mbr_num_addr && $mbr_rem_addr != $mbr_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # bfdiv() in scalar context. ####################################################################### { # Compute expected output values. my $quo = fdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num"); | . qq|\$quo = \$x -> bfdiv(\$x)\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my $mbr_quo = $mbr_num -> bfdiv($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $num = $quo"); # Check addresses. my $mbr_quo_addr; $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # bfmod() (scalar context only). ####################################################################### { # Compute expected output values. my (undef, $rem) = fdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num") | . qq|\$quo = \$x -> bfmod(\$x)\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my $mbr_rem = $mbr_num -> bfmod($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_rem, pl2mbr($rem), "$num % $num = $rem"); # Check addresses. my $mbr_rem_addr; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_rem_addr, $mbr_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/bfstr-mbf.t0000644403072340010010000000271514537274604017761 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 62; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigFloat -> accuracy($accu);| . qq| \$x = Math::BigFloat -> new("$x_str");| . qq| \$str = \$x -> bfstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0 -0:0 # positive numbers 0.001234375:79/64000 0.01234375:79/6400 0.1234375:79/640 1.234375:79/64 12.34375:395/32 123.4375:1975/16 1234.375:9875/8 12343.75:49375/4 123437.5:246875/2 1234375:1234375 12343750:12343750 123437500:123437500 1234375000:1234375000 # negative numbers -0.001234375:-79/64000 -0.01234375:-79/6400 -0.1234375:-79/640 -1.234375:-79/64 -12.34375:-395/32 -123.4375:-1975/16 -1234.375:-9875/8 -12343.75:-49375/4 -123437.5:-246875/2 -1234375:-1234375 -12343750:-12343750 -123437500:-123437500 -1234375000:-1234375000 Math-BigInt-2.005003/xt/author/bfstr-mbi.t0000644403072340010010000000236514537274604017765 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 50; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigInt -> accuracy($accu);| . qq| \$x = Math::BigInt -> new("$x_str");| . qq| \$str = \$x -> bfstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0 -0:0 # positive numbers 1:1 12:12 123:123 1234:1234 12343:12343 123437:123437 1234375:1234375 12343750:12343750 123437500:123437500 1234375000:1234375000 # negative numbers -1:-1 -12:-12 -123:-123 -1234:-1234 -12343:-12343 -123437:-123437 -1234375:-1234375 -12343750:-12343750 -123437500:-123437500 -1234375000:-1234375000 Math-BigInt-2.005003/xt/author/bfstr-mbr.t0000644403072340010010000000247114770530053017764 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 62; use Math::BigRat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); my $test = qq|\$x = Math::BigRat -> new("$x_str");| . qq| \$str = \$x -> bfstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0 -0:0 # positive numbers 0.001234375:79/64000 0.01234375:79/6400 0.1234375:79/640 1.234375:79/64 12.34375:395/32 123.4375:1975/16 1234.375:9875/8 12343.75:49375/4 123437.5:246875/2 1234375:1234375 12343750:12343750 123437500:123437500 1234375000:1234375000 # negative numbers -0.001234375:-79/64000 -0.01234375:-79/6400 -0.1234375:-79/640 -1.234375:-79/64 -12.34375:-395/32 -123.4375:-1975/16 -1234.375:-9875/8 -12343.75:-49375/4 -123437.5:-246875/2 -1234375:-1234375 -12343750:-12343750 -123437500:-123437500 -1234375000:-1234375000 Math-BigInt-2.005003/xt/author/bgcd-mbi-mbr-mbf.t0000644403072340010010000001123714763555402021061 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 299; use Scalar::Util qw< refaddr >; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } my %cases = ( # Common test cases for Math::BigInt, Math::BigRat, and Math::BigFloat. 'common' => [ ['NaN', 'NaN', 'NaN'], ['inf', 'NaN', 'NaN'], ['NaN', 'inf', 'NaN'], ['0', 'NaN', 'NaN'], ['0', 'inf', 'NaN'], ['0', '-inf', 'NaN'], ['1', 'NaN', 'NaN'], ['1', 'inf', 'NaN'], ['1', '-inf', 'NaN'], ['-4', '0', '4'], [ '0', '-4', '4'], ['-1', '0', '1'], [ '0', '-1', '1'], [ '0', '0', '0'], [ '1', '0', '1'], [ '0', '1', '1'], [ '4', '0', '4'], [ '0', '4', '4'], ['-6', '-4', '2'], ['-6', '4', '2'], [ '4', '-6', '2'], [ '4', '6', '2'], ], # Test cases for Math::BigInt only. 'Math::BigInt' => [ ['0.8', '1.2', 'NaN'], ['1.2', '0.8', 'NaN'], [ '0', '0.8', 'NaN'], ['1.2', '0', 'NaN'], ], # Test cases for Math::BigRat only. 'Math::BigRat' => [ ['4/5', '6/5', '2/5'], ['6/5', '4/5', '2/5'], ], # Test cases for Math::BigFloat only. 'Math::BigFloat' => [ ['0.8', '1.2', '0.4'], ['1.2', '0.8', '0.4'], ], ); for my $class (@classes) { my @cases = (@{ $cases{common} }, # common test cases @{ $cases{$class} }); # class-specific test cases for my $case (@cases) { my ($in0, $in1, $out0) = @$case; # As class method. { my ($x, $z); my $test = qq|\$z = $class -> bgcd("$in0", "$in1");|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); }; } # As instance method. { my ($x, $y, $z); my $test = qq|\$x = $class -> new("$in0");| . qq| \$y = $class -> new("$in1");| . qq| \$z = \$x -> bgcd(\$y);|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); is($x, $in0, 'first operand is unmodified') unless $class eq "Math::BigInt" && $in0 =~ m|[./]|; is($y, $in1, 'second operand is unmodified') unless $class eq "Math::BigInt" && $in1 =~ m|[./]|; isnt(refaddr($z), refaddr($x), 'output arg is not the first operand'); isnt(refaddr($z), refaddr($y), 'output arg is not the second operand'); }; } # As function. # # For some reason, the original author decided that bgcd() and blcm() # should support being used functions, not methods. In addition, if # used as instance methods, they should not modify their invocand. This # is inconsistent with all other bxxx() methods, but there we are. { my ($x, $y, $z); my $test = qq|\$x = $class -> new("$in0");| . qq| \$y = $class -> new("$in1");| . qq| \$z = ${class}::bgcd(\$x, \$y);|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); is($x, $in0, 'first operand is unmodified') unless $class eq "Math::BigInt" && $in0 =~ m|[./]|; is($y, $in1, 'second operand is unmodified') unless $class eq "Math::BigInt" && $in1 =~ m|[./]|; isnt(refaddr($z), refaddr($x), 'output arg is not the first operand'); isnt(refaddr($z), refaddr($y), 'output arg is not the second operand'); }; } { my $z; my $test = qq|\$z = ${class}::bgcd("$in0", "$in1");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); }; } } } Math-BigInt-2.005003/xt/author/bhyperop-mbi.t0000644403072340010010000021712314744170551020471 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1548; my $class; BEGIN { $class = 'Math::BigInt'; use_ok($class); } can_ok($class, 'bhyperop', 'hyperop'); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($a, $n, $b, $expected) = split /:/; # bhyperop() modifies the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$a"); \$y = \$x->bhyperop("$n", "$b");|; note("\n$test\n\n"); subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $expected, "'$test' invocand has the right value"); }; } # hyperop() does not modify the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$a"); \$y = \$x->hyperop("$n", "$b");|; note("\n$test\n\n"); subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $a, "'$test' invocand has the right value"); }; } } __DATA__ # n = 0 (succession) 0:0:0:1 0:0:1:2 0:0:2:3 0:0:3:4 0:0:4:5 0:0:5:6 0:0:6:7 0:0:7:8 0:0:8:9 0:0:9:10 1:0:0:1 1:0:1:2 1:0:2:3 1:0:3:4 1:0:4:5 1:0:5:6 1:0:6:7 1:0:7:8 1:0:8:9 1:0:9:10 2:0:0:1 2:0:1:2 2:0:2:3 2:0:3:4 2:0:4:5 2:0:5:6 2:0:6:7 2:0:7:8 2:0:8:9 2:0:9:10 3:0:0:1 3:0:1:2 3:0:2:3 3:0:3:4 3:0:4:5 3:0:5:6 3:0:6:7 3:0:7:8 3:0:8:9 3:0:9:10 4:0:0:1 4:0:1:2 4:0:2:3 4:0:3:4 4:0:4:5 4:0:5:6 4:0:6:7 4:0:7:8 4:0:8:9 4:0:9:10 5:0:0:1 5:0:1:2 5:0:2:3 5:0:3:4 5:0:4:5 5:0:5:6 5:0:6:7 5:0:7:8 5:0:8:9 5:0:9:10 6:0:0:1 6:0:1:2 6:0:2:3 6:0:3:4 6:0:4:5 6:0:5:6 6:0:6:7 6:0:7:8 6:0:8:9 6:0:9:10 7:0:0:1 7:0:1:2 7:0:2:3 7:0:3:4 7:0:4:5 7:0:5:6 7:0:6:7 7:0:7:8 7:0:8:9 7:0:9:10 8:0:0:1 8:0:1:2 8:0:2:3 8:0:3:4 8:0:4:5 8:0:5:6 8:0:6:7 8:0:7:8 8:0:8:9 8:0:9:10 9:0:0:1 9:0:1:2 9:0:2:3 9:0:3:4 9:0:4:5 9:0:5:6 9:0:6:7 9:0:7:8 9:0:8:9 9:0:9:10 # n = 1 (addition) 0:1:0:0 0:1:1:1 0:1:2:2 0:1:3:3 0:1:4:4 0:1:5:5 0:1:6:6 0:1:7:7 0:1:8:8 0:1:9:9 1:1:0:1 1:1:1:2 1:1:2:3 1:1:3:4 1:1:4:5 1:1:5:6 1:1:6:7 1:1:7:8 1:1:8:9 1:1:9:10 2:1:0:2 2:1:1:3 2:1:2:4 2:1:3:5 2:1:4:6 2:1:5:7 2:1:6:8 2:1:7:9 2:1:8:10 2:1:9:11 3:1:0:3 3:1:1:4 3:1:2:5 3:1:3:6 3:1:4:7 3:1:5:8 3:1:6:9 3:1:7:10 3:1:8:11 3:1:9:12 4:1:0:4 4:1:1:5 4:1:2:6 4:1:3:7 4:1:4:8 4:1:5:9 4:1:6:10 4:1:7:11 4:1:8:12 4:1:9:13 5:1:0:5 5:1:1:6 5:1:2:7 5:1:3:8 5:1:4:9 5:1:5:10 5:1:6:11 5:1:7:12 5:1:8:13 5:1:9:14 6:1:0:6 6:1:1:7 6:1:2:8 6:1:3:9 6:1:4:10 6:1:5:11 6:1:6:12 6:1:7:13 6:1:8:14 6:1:9:15 7:1:0:7 7:1:1:8 7:1:2:9 7:1:3:10 7:1:4:11 7:1:5:12 7:1:6:13 7:1:7:14 7:1:8:15 7:1:9:16 8:1:0:8 8:1:1:9 8:1:2:10 8:1:3:11 8:1:4:12 8:1:5:13 8:1:6:14 8:1:7:15 8:1:8:16 8:1:9:17 9:1:0:9 9:1:1:10 9:1:2:11 9:1:3:12 9:1:4:13 9:1:5:14 9:1:6:15 9:1:7:16 9:1:8:17 9:1:9:18 # n = 2 (multiplication) 0:2:0:0 0:2:1:0 0:2:2:0 0:2:3:0 0:2:4:0 0:2:5:0 0:2:6:0 0:2:7:0 0:2:8:0 0:2:9:0 1:2:0:0 1:2:1:1 1:2:2:2 1:2:3:3 1:2:4:4 1:2:5:5 1:2:6:6 1:2:7:7 1:2:8:8 1:2:9:9 2:2:0:0 2:2:1:2 2:2:2:4 2:2:3:6 2:2:4:8 2:2:5:10 2:2:6:12 2:2:7:14 2:2:8:16 2:2:9:18 3:2:0:0 3:2:1:3 3:2:2:6 3:2:3:9 3:2:4:12 3:2:5:15 3:2:6:18 3:2:7:21 3:2:8:24 3:2:9:27 4:2:0:0 4:2:1:4 4:2:2:8 4:2:3:12 4:2:4:16 4:2:5:20 4:2:6:24 4:2:7:28 4:2:8:32 4:2:9:36 5:2:0:0 5:2:1:5 5:2:2:10 5:2:3:15 5:2:4:20 5:2:5:25 5:2:6:30 5:2:7:35 5:2:8:40 5:2:9:45 6:2:0:0 6:2:1:6 6:2:2:12 6:2:3:18 6:2:4:24 6:2:5:30 6:2:6:36 6:2:7:42 6:2:8:48 6:2:9:54 7:2:0:0 7:2:1:7 7:2:2:14 7:2:3:21 7:2:4:28 7:2:5:35 7:2:6:42 7:2:7:49 7:2:8:56 7:2:9:63 8:2:0:0 8:2:1:8 8:2:2:16 8:2:3:24 8:2:4:32 8:2:5:40 8:2:6:48 8:2:7:56 8:2:8:64 8:2:9:72 9:2:0:0 9:2:1:9 9:2:2:18 9:2:3:27 9:2:4:36 9:2:5:45 9:2:6:54 9:2:7:63 9:2:8:72 9:2:9:81 # n = 3 (exponentiation) 0:3:0:1 0:3:1:0 0:3:2:0 0:3:3:0 0:3:4:0 0:3:5:0 0:3:6:0 0:3:7:0 0:3:8:0 0:3:9:0 1:3:0:1 1:3:1:1 1:3:2:1 1:3:3:1 1:3:4:1 1:3:5:1 1:3:6:1 1:3:7:1 1:3:8:1 1:3:9:1 2:3:0:1 2:3:1:2 2:3:2:4 2:3:3:8 2:3:4:16 2:3:5:32 2:3:6:64 2:3:7:128 2:3:8:256 2:3:9:512 3:3:0:1 3:3:1:3 3:3:2:9 3:3:3:27 3:3:4:81 3:3:5:243 3:3:6:729 3:3:7:2187 3:3:8:6561 3:3:9:19683 4:3:0:1 4:3:1:4 4:3:2:16 4:3:3:64 4:3:4:256 4:3:5:1024 4:3:6:4096 4:3:7:16384 4:3:8:65536 4:3:9:262144 5:3:0:1 5:3:1:5 5:3:2:25 5:3:3:125 5:3:4:625 5:3:5:3125 5:3:6:15625 5:3:7:78125 5:3:8:390625 5:3:9:1953125 6:3:0:1 6:3:1:6 6:3:2:36 6:3:3:216 6:3:4:1296 6:3:5:7776 6:3:6:46656 6:3:7:279936 6:3:8:1679616 6:3:9:10077696 7:3:0:1 7:3:1:7 7:3:2:49 7:3:3:343 7:3:4:2401 7:3:5:16807 7:3:6:117649 7:3:7:823543 7:3:8:5764801 7:3:9:40353607 8:3:0:1 8:3:1:8 8:3:2:64 8:3:3:512 8:3:4:4096 8:3:5:32768 8:3:6:262144 8:3:7:2097152 8:3:8:16777216 8:3:9:134217728 9:3:0:1 9:3:1:9 9:3:2:81 9:3:3:729 9:3:4:6561 9:3:5:59049 9:3:6:531441 9:3:7:4782969 9:3:8:43046721 9:3:9:387420489 # n = 4 (tetration) 0:4:0:1 0:4:1:0 0:4:2:1 0:4:3:0 0:4:4:1 0:4:5:0 0:4:6:1 0:4:7:0 0:4:8:1 0:4:9:0 1:4:0:1 1:4:1:1 1:4:2:1 1:4:3:1 1:4:4:1 1:4:5:1 1:4:6:1 1:4:7:1 1:4:8:1 1:4:9:1 2:4:0:1 2:4:1:2 2:4:2:4 2:4:3:16 2:4:4:65536 2:4:5:2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736 3:4:0:1 3:4:1:3 3:4:2:27 3:4:3:7625597484987 # 3:4:4:... (a 3638334640025 digit number) 4:4:0:1 4:4:1:4 4:4:2:256 4:4:3:13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096 # 4:4:4:... (a 8072304726028210248596771043321139499346627442954296810188546463927511841459889094223339600264516627999927712174459405837378703581264109741141923867978290 digit number) # n = 5 (pentation) 5:4:0:1 5:4:1:5 5:4:2:3125 5:4:3:1911012597945477520356404559703964599198081048990094337139512789246520530242615803012059386519739850265586440155794462235359212788673806972288410146915986602087961896757195701839281660338047611225975533626101001482651123413147768252411493094447176965282756285196737514395357542479093219206641883011787169122552421070050709064674382870851449950256586194461543183511379849133691779928127433840431549236855526783596374102105331546031353725325748636909159778690328266459182983815230286936572873691422648131291743762136325730321645282979486862576245362218017673224940567642819360078720713837072355305446356153946401185348493792719514594505508232749221605848912910945189959948686199543147666938013037176163592594479746164220050885079469804487133205133160739134230540198872570038329801246050197013467397175909027389493923817315786996845899794781068042822436093783946335265422815704302832442385515082316490967285712171708123232790481817268327510112746782317410985888683708522000711733492253913322300756147180429007527677793352306200618286012455254243061006894805446584704820650982664319360960388736258510747074340636286976576702699258649953557976318173902550891331223294743930343956161328334072831663498258145226862004307799084688103804187368324800903873596212919633602583120781673673742533322879296907205490595621406888825991244581842379597863476484315673760923625090371511798941424262270220066286486867868710182980872802560693101949280830825044198424796792058908817112327192301455582916746795197430548026404646854002733993860798594465961501752586965811447568510041568687730903712482535343839285397598749458497050038225012489284001826590056251286187629938044407340142347062055785305325034918189589707199305662188512963187501743535960282201038211616048545121039313312256332260766436236688296850208839496142830484739113991669622649948563685234712873294796680884509405893951104650944137909502276545653133018670633521323028460519434381399810561400652595300731790772711065783494174642684720956134647327748584238274899668755052504394218232191357223054066715373374248543645663782045701654593218154053548393614250664498585403307466468541890148134347714650315037954175778622811776585876941680908203125 6:4:0:1 6:4:1:6 6:4:2:46656 6:4:3:265911977215322677968248940438791859490534220026992430066043278949707355987388290912134229290617558303244068282650672342560163577559027938964261261109302039893034777446061389442537960087466214788422902213385381919290542791575075927495293510931902036227198983057853932880763319683450709063994613113899946027767197828941253221232925203296051182048791364008389549044365792095626712629192228922460944103484957826646121969087967503992005139138817452525944319386504163034800032329572923169272580812038862895645133020319941418621365459381247897039074948526861497196424842856278264872081854849393729902569313271916554406043106913602901064055895953421212374607966076698330673506053248292555308212118869609719907808556324604601321610265543147645240039660236473266424625276737459325658213465426520922004237014324045664647970387863402847679951630130232058962063799462389599996237653062587414899860913010693318793720947688749687131107213871394369489435728806106155770846190228969206308973600818603623114117110987742542396241094684938897236922298685698434294496424701408029483172932386618629065996040198226842823646538422586113704883857989007702229553937496834838684871215875596667442178077474619334121028488932766083813638995310139077457475830177551325338144732131509087834262021410745896573377350678674850098385414388602041091113739704476471248961781346576074509649789560993834854196961759483379704895730837108476073243820752302407048567636674324794945261956856304309751928127990186556725142283682860915312621646073453158008803215388643682616411219867012372209679528053501516815952615060246385651031976562807101388014614012727625982704958770707410574826165853317280489979664766579951201612185779455431473280794446393767971020284196670959037332691306485094879711657607592738752654869501755331152983075423102199223873789151170394698211199449920074131308554214681213100553681303428933484193987068952218348302678831827921107401559352065829092083220235853420468576169753257004117360848240587083162510683198727366804395473509269321561136071328831038756345050322110155370605205773322174682858545420089112607776943756235718685791083329489150388849193534368560214077259275017330081801022785506555813374097953179402013552081883260678201008163982491139468985286586839525924516399022060889167034026307259495537031036865710606177193275628159515876151135875206383384565803345010001967990900297897721047625041503686189053938223646710134213940404719809893782173642263134508441550849287889447186844367723211381684596533430978485492183483286280866059762937533235790152346913482052907574065476985428074987463200630523320192960729488033220100471728132419843750933418994651827766195280398535457879210590938725541731207476215251178380018544287270261438480751698862350923128502235087740792752699447916376634508067462510897466136541982989588498885556218913512465902304156653376336871566688387251967036152900780064068602888069931935207999310689140776424351948418730004965515832221710968997431459333784941295229440309655511855867028445035198762119848288829295380202219936661078120427828843001276230841951275304807279299943098104127984653113848966391547080166051152516695839546951857411342509029205658037023718240037774832603354543093511500118479701534297400745136744846115854618011592988204941297108616076522379205004659217817374565514468243397003282844487472709177905919919935899275425573964493827579365446000027476477191798414513254581650275367333019821278843172709465750692752171808594901217509501207417421617586944497161282705033574579740947969818330006129341292987484417693746915156267819694419069070551740834127011011653057480954762302376223721506011117278656836781687467642565660245054195922383015063540983302976564585032232212348328492684438517686135813543777864727386998363224693825363151801851106716453198841449354389812191334113521409843330236524538792076198600969222577026478681492227501540566298351707639566416336862868467950597297476836923209472900922293702286186940890332878669151652070026861441427046793265655884082960714097320267268049408177667445088496534818017853672361822688485733913385400255456567934282631484871977114047875708058685436192476663298724761448156342842830402602505021574204296564158930366078365481437442997463536675091000411699963360673064732160583745460680016965456758566096290515270920164587535961300182886653830784412200942190677050444291047244003389456102541814425739429044704330880008696148653836354976484820864386333590772821957611006776947872616515008395331769033371947624815253698065061836502368055443145909315203440556148456886065074331669131896824759958256508800018017148943114323386161400405917446760035859282703814428874771624962132036197765252454933467861555487197397619695431510692383342974202667545414955466938030160673169706724462625855137085164539132257730434810596984801783923003483105541564030100015743183630882716196703166554265650963071038792205396803159204779044332369316517777859190655421620788215534975404890121605354486244302325493234970592691383707828560134937722533674320536537516987734918377779951255422227597271611802930324522204021758057752412497127455218252920942278428479471698539697813452696767907179228508491839775153628228243052306992659549440199892772061036616473355839050070498310473487182064267545001577079206261540203265717301064221019125068350266791249399179609291090367076356849258440718452955522072597481584063311817403113771618731801958998128677729597378367094064062033675539166479397859978760723803175210934594321121324518477664328229171706732939059061137733423725445425333376420568500011937009911220804854369888817399953540372960084640042151028030142531122831961619571524522422266809290751616197961883530242609434051902857830543763397061153243582494210503092681521241839983612388292362168558481080453724926008984522786772923739257464771832909220710235406334318389309363173179239077529730921381408865699869199075222777463146266117543342519940204770331943339078678783474761260772613750616583256430398445294250039146099139399860652378000419745042078241181875123263807183683939638150929032237564582040219925725544066194365465456072775046043019953993748322983683489516208150738424224196778813811196748091317343045579356718550325307737095111433942009322636455898150323810716497918542945385958749141645826113403821601639049146905546228789873935871271101782517043060004493333790352302613291297240328564529779500158901992057657168980489272863072158461749965174823389901373567049766197477456695811834009402652112653589115553592994292565814973047995369272297261017111119344511199618772851626644393751712810887048244077398755032272241691310649437516764253759232572706022781934855221122174485770810461351760722786628516143158455550642611470543692693710220729528959120340445210529788692903692277110929238083192013051552699177390638979085275991136415947758803248065658708433324533317375936823619422963019751271123958949266745154287327508514137369673627508864714146824134776235394625172665199539967765285667592328910514509788672574445865951869081323812569736008479758269334749025290058433197876943284080580745193611989429990468280533178199550083230163227944716082271056280731820677005355961868362024509891022139820125623841787690585309928612267303595625824508436018544241421864042750273384716167606981280931250329649599434752052971462973363672222035938392416581549006207453756828721700346944745735294757240987973604996890528648783086812325888847405838796103442374669651862064044434887259551215107382960629850522578340713349255321774853789028601004245977335322044392190426364996651123770623213960923374849645936962093842457558760552195368235329700552845151069077200413182755865827314444969724970410721026079430403668206368143382579398573856744555443907200016627368907470972273592217094439747656651587759921449935310041011278838427588582684058312705649787648119492683806365037319800437060302992518823221372565574622697024120942134211743868144784037217825939334570966080175296107167014761063573878764298769872073630597860069568435695489708455471417296025446297551851567364487849328103367222701989883802494786171436302954969918207348486513230712677788751869942315794571999554857157496720173838789205258104548081079810451185601751030835725087918474499339432087503990193076470750547948775977855358485409413012204167161008344913898947567902878642168826811118376878528543846712653149082404118060490652755864988462101460370601811780023726130518568384806414483578827026111605055591597332741401022568196421828157231909693624098089055609103548620026370881684170231338454875054885411126510070161725747437966591249357866528886086706489298876392642744160118970606956928665435440332410837187184771741684096117675991110268740224339044107121286235825797872641933884252895920171694272374852330986381424704405554720432213808590250910052515845368806455661289841979888898496284938747083462857147394174768624657638140589204233692069874340266435896620604197215859497775734519355596485093355986281552555553876637144264112107050854226245879960823641485704807633869148606767226023183261796956540334262005758333261045868501266693308281023681427721918822056924812008821204534830044654602066446687314813657144604524271412597676737460939657352003890495077862128279292449414208247189079648329501330142509407727347591066686369332364802156261024141032358374502783755634343861798500282951879660646660629481466668133405040220522200280171108546969716343594555462039079692851957417002424888105893065048277613075277549575313245632715147314669715412024040329823708192959224423808246692757409437349315576119847840425210718798954425192388505562440936682434151237375513226295724498075849529979937732877694105147208871848111189812916480877473371785496167602764408871411247754224503353946883319174406712144432837791420728008577200624913032381852272196096837422198435262420299836299729271608009378269710389890410171747674715111904373088567457435014594879091368705600688007101215820026528663115527646246147728140985412548401456814934852708715538761594295805551267452651180429333684268516031849931062195799522678787157577600563347342341331836322988591894412992525937987173318134193990210689518078163555907235238853815379773691546246995995608375329977513075931839086826932047597565683018282299362258470622934630351415117782501732398783298437154204578260937966327569667172864420534855709163219251858795348798337006617691315353399699461860343190483637203756593186066419144028800227652609457125666376633516790109663620347636975698740142905735080137176798745760015315507027808438442428818313304866101754151500082701256096763943176106018568210388507516985167245380074711202913270160244940132970964370790189988317746584257548400289775525880140679745537412020982395367711258261144075551696849205873413439885660637900372629399072607756167012840505370788404636652118089611175070254411191967276530749834800340315078515624047044443843800548133076292757931322031245477272208271569139366156660369445314106758948526343231972951616250248160130237019508749245330726407137979944932556407418997416340099124064330450253506970063255261524844335867914461321021406288026937068429350126536671931757868016862812597156713876878172616168625524292260940347541700734738562142047647305723053881410229273825705072603260789109530288429356116848550927749075462006726604534197266327419654040613692101581093498295056301997299527017704165195710476563419145822684533889701667936555956484762791914445656139676481352345551216386449858109988937265671471973844681311429975749166840093462727879587818457712428704255344559061591532375113973314282008450900403092885758378292759533393050237320140953727613312702323636738951262974123205418288741397543451587603552646624247785552013314031192733246010912730484816415238192195349735466749770728067928503549656651656073233219678107283595565211925536596476285568332871576455097190154739727932800047918608913057369146767557746792528779299399728183694415823499687330127087758737047474994989156500107530548160976123883318437794772844111307075048213457629500443809360274691131620176241365042370710483640300663273050001492189318116979891143885697328268812532306505266364178977237563209358836554989475411347896892051678879301807258515307322923197206927569654412473870860647597082046284096970211213086853213077079583376130225517380758198285144994545668777118410072441336848088288912710026485935090558379495040979631540762442690074319825071132295476718724755365322307056654838102078522716992464692185740996789940963759426635815082609874311642814465663278310925100433649714232243396943774667447600732323274092995514794127098681498564314483494785776699171605823087465819773805874903515931812982154302270951498194208323195734298452691177766317870774297896878337595050008916366692834531015019438079697216037584094989943337553566464573425551343857891020619203587260757327436584898400993791510054147654356650858983129505994893865621299442621781153092790652176034693439864930622511013686730943869682925636443692558679546898863603665855630583172805499503349850642014514121193862834030570451253380424533982166942882325081614482406954734609046200523990247481209299536211933236590300256653077831592975673453496541090621701855413666597584167024844986010971736908181470245722975460872681422559593960315974723533197673148835514287190868362599834270400499224298567901025841345491864396262256475645201871059473180234586620834044589586160820199442461923914785856105411868402806753113119614849401467281772004893587038668657846417413716863007212681900774342602539212792220982908691560673641270058922493307705207693953852412366850882359948312420885917410290539202108431364158028831478952581466061057898564248286789006302089681470922690768111466742981273588223554788036400897829393832820314005422341091232015012900850944803712813177904595244116656449724186006465154847998942775267146316247645761883742804889848246791047994217728623038776307185127119085603589168365310026686699717767682202672035099875544905437455762474952669266826185925494760109140188350857814663423722054270499500299780865313880819240215932197686815613601058506815284724120507808761695627491647723994169983628082403721237061521250736485898629687166636110705477603528516177144778256890343648794041841228026365658117440073990089619025538739489191448585986816990161467401163679675742143222965321708414428129093810694714794064755941973350198612586814344308856251415549285762605619198901973252095999562808987773675654102973681561875892313268432764268630178621453552636520965667196316764034017722091666434789744950852473244657028634169270005001819431542040030172084599795191051798000372557785415768631806304331979721857525124326614036667339830688282444658238941288478669002310876132729503261262054301680693611889765562642391666129911836236611052659658675015666836246339735878483580736126251721492564510017824333924256759757104426644702004525230397427721324746167652910676129219635786478600427070678272625615428041849395626325111576358427602533598962529090699274873940416160695412097599267113126195867660840416457036419601438801767026373993563567374041380716659079947109713880435283320310340418840400006748983425147322869892866456106784243368166276491001043027738157129824773590467857765440706061341139892694918287329393435501095272854345385425759862664207901348095621343861624169032267733079271215106361980031739837397443252721253861444927543937398843985100588467186098922679135834654204236540579567720424333553573026139793867213711726734594997346716921068511887113468577183206220984939442957319753319701649775406168208888735292783748091505628859253662062402814748990091517499775398994412131990711116701806279801762213809809742790235685284108795453665970190523832117054042610767320725588540527996267650384289783805201679611190735044814267455083346488538176439282296344699381075190427267955101076921278189266206795852459943997547981950831527958646685773915067665412058659535964094172358493522912265025350044444517073944582065840479233816563753250588358010388823033147262606260903572966866661513824618140389522937363208322485410406357066138237538169911849381134193030378943781947634127904084745365618684528148004877911534280611852531652130002074329762748614955388918330020720697669159867040909571161103275938008718814332363439287947278005283066831078950153622593636076264069522747373357670031079500890891180431992065781991891921742367825343055866099321871970209934401863036961327661239319991637468025733947258443019537105699601636862210867982110963614287526566134345592092209734615961572329973184429215030829361179224300085964204734328464692710684304672186911785670568896173325697007134133808580335315007145509287686224644510112656026142171246348439697874978450468431519035002262396924289167744597623621006121042262278601469416979637060489934748965688080386494347933043119779331388649543253873533920471939791980828036522414144542989399184229888734954941080387791374729264602243046275162453298013463979814323763208568814908551670330583136102351395754428351841674160433800986699064733712674710338921125140638398786016364200272312026231970962873045513931700196813555606961732228887872506911609937164230689479726518689273237627495626505371179030038296496157201468169424133928191808115243786209845843036387479229838995429956820298177524928653119079262956383497038961417196832641047310616397286588471055182298284174546890188264991312551407389236987459407711433787616010960449520735466638516190877517628715763573713499273526194467203324805988213337736974381162024332452909250396288994124148315509243791182380425590106447395053094679039474272936701768064847072107163292619276334960808681518904078807377598977202909225473012661178239349904871648397166160349391422007998555807238335163595744012726486003972757115734101966460743821532022859918387077331253175572094767473034990147061835884693194220103610195359462069701879060370058816128132397917633322661832076420105665300421196345882636122310107049448090349486531407780885952826080138331536295852904972315103219470562658391019463008301093325544676476745220513240843273988894397363754748826640317547540708429269194630233756057054027655982526115175006345274369721659327892990894276623610814215972772580534039036115566745947585879869710178470141069683014158293470466674015404641151895596292241104271989383730209567357939768599634076515647021503455694360168312464713764497386906314124282347673152838368276565889307665549538023182548189885740728443857260979036520440451722088724577389277741443766464029498915747411102613663322984251421937287887095410172694013765016605302418431168106150791075738627806964887786906139961007250586656591133559643715442286592858586236142538017781731820527486015709802133501974028722035090693451450306497245245215528304909056469902922121779701079055424156392458682629256744994346072147630703817055226383332507726259384615824707840577783629783466008871371167317746879749418084368553113139786077545998529102211148634248576771908391839750864525017059934870026110151139293831284247885292358444680220558420653075015786922413126862003392343108515624920339701061554340826024789206010806116365712658771877097703881170908531182205477324806097504257022224177029472211284503267700113702305252751341039289809014030966135250358397752970870522090287477767349465854312033304994361963835823181413600126244550799595224717138817269690354088331878145260812534962536394578542427927349325605221444612219970160602813480868607014195544269170142079701984468319409573188521205369735140508849965452010589074620574734722211621181056839968271681386086158143341056227474435761755114553134720912996350742991987455275716806187335192882806387477755095565118299464970462913403262924040062737335315869032230805280720986765101692725258804052810013344193659820284083349726000668974775769977416428569330903730831808424720315529943948118591415585703667948439960382465339321107685686342063187160959886399917413955596599866887830868180570306328331158195513701521495944030282495670450166585528664632018435343089871895767687435158019062939508962976787026744453442447348178603455305571256558224353437999976346113240615045577906938914648762713106879932434523718967649656006933427411784596621660858217413405789595804803951105739961515750763022664559388807757433977383507362278120932963306010369271922899485352297012779458770876329621720815200962887581209479769466748019564370865483485048606490745173049067330388573472552036559269484892805536744136041286999099573093891799335305566445799572190205268207850077513887970443364276364878847242295710383378583695690058361306317352505574780146387079894593195689746353431572593163491913406577524442326656960190772216978449626440188897907450525773517566686053118883345509958845235103412740510255697130927637557179261574308099488342096889819805159974999184591751320856671292211104691417981830712254968392083688622671687360862070940314289779784493036141339337953514387743820278023538501439496490869951649542866302662163034540369528194003975413133161311528514289231644058420005456780712551691381115806887633142813708913962304644614538369223760488989972474973103825145911767197174998045774138152640628162876546283132457442355920692365451628058497510188887892526264003814971731602105055234818719107838886356959682060649964827951019132766391995843881370243949502688394360121574662387362829285756072646693984051210611564015138843502208887665563925574988404547634323051414714550860444803999362346842504852373348657580868280707134306894808698582449847968789094783822363454178076755828656450140031164739541422476900917580263194621455479525273900249469658344098031776686722596828921998300349077350029640688826299750423878798978699564278985686563794477690270252730681015512058434101506347167002791080508452943138765337884548339641218995418432300733512057744986193371001036792587086631343896442313427496361530956083717242339987774763434542732327941411809033639235512162268163975192903425063572703044483466885753452289537074669342943483597534944642923906486759987728914245046599668601990167960567967264486474200783090405672844871878943357041652889801956592460419371291957070980482003888240195591742170422714036242962873126519723755554309125264913966520882045061820440268836684965614063084372311823337969459831473373581241603551810711317668737190676840138466160533141282205242982052110279265585206135042053711149729232949444723481363085144504398104764554621621739793470969279842693820801004440178109566448519055631758790006579897275067504711398253058045705615224997091452792132741456599864714516725356212353146245236150920395600581197052850851140146897869419045725738539179267342100080380438274687584500073715470125113751158371646421559672903690837722114128516533870903323828206998964494268438297762425175694125238497778342928918184808119616601180421380762321784155942033530734811733183766471223838335941864040803977946917986111719449498134609282379018700898077393380394787240248157835760680422405170400175212982874151204848263714962414356213569439528766098980209839277444432989805915729320652333792795467772682741662187031097620823286577618713957008795099273401004918147686880915935752902935726571979899593497812819165033655326155937223654243918866996475437642968250228882881095390600833566137419536092403977749420844482288588608666320354466954709639746456396686354719437247139547612185447447844429258032649905580354783765002771378922269193319466736886245329527583373947527028207306481338810365981263064387121552573917049889544373108425827996879880319251902239799222485758222352266686829495660123251249819555280214954446159147488966364004672827794283179805076555739573747443491012549330630801413043430631559352096216330478081125280584868031018540880829189003032427432634502379340334998388768429542217546449932324947454943174021367876108453633517130620350922827476559540171044171720757264143314937479682337365620787118313120457531720598483812884240140968138449392671512765668123154786031582283855321363289227043172599722510680679491210311059930919051447262797704359165321083202571994672134239951525034253827512974402061000655607824661263738394805085661984307601887017471332189856418318717556294420087301367902918518986219289565274115136325019719718255371571071730106352484556250145755254593180069407636939013945170287884160099956865652794633202082759889880053878554128674693393574517549409291525900667717305195348608458162008345938765562654658435482241043229885013239260260934497153691572263850852945473511254106857488983998210810103689575625658957108073143908931533638183553142900822450143541318887707274769742324109614894795230253766024113617096667517601444832948779718056737432810005111634934571785051288650660775799158420126184936071583996379433507682223770755509729897304292563940930701081192610005359416409963258452334662953897805552304269619036646374462034866682834054071716186060657873239709629829260769184560702331154988025345824462370077914728946848125793854106183847021039283603683341182085994463028320671669931582867405674325283927074053293078667358300427151029814076856662722086044390555574402052799849351596380851480804974564092850288441836701117381262578711648380250347531066354105661040650669045325383933104797095994409994143419324419851651221915951821076229828827871532847247739797544425101756010239926904530509399329591693307458996088044859606499247220133680246521250139941891795301700412853870705655106830683963183080445289235950620108687174452251984758749095621431915311490758604683887872877862192572933211224093729144879090554330496784780291289412030896777225504991599630096270492360124201011465522615855714101408365265075789286397758277778326412013047738303748921460961822272763074013386950299347449978183468131962125441101344773216621533961127807630714207540092940650314088481608281794179161099654243837322194809624057123020096750707286193637438121176874973426631490000311706745919757027290302807127924246865803715768336845894042825086875757291018492832334096739056800895816340490818057121269669350286401156814978372960023092861407244781182704128899176355487832266117903864521594748102586124066260958308830911962711019622322227989641327068488581164607275870981739596179910187428644297276676725936524233646145187804906589570092519820167644099856777265978171722666035016698052384441532160026944709203621795654645711408036798593921214002357254741126764616226165231366379857237254388916034749901865888268313194140230572640844398450473344459162514165789308458497122798191680668364883436901899801790897109375190999826287342954826172107099867023687243044488741182994022449197043841254520697320154782265195195600059980532516617449689939149674410059652188296880439643923717875555609461876292722949906688754376617430473173604167070113032334775498690950941837377891959517612584470467630599072016484428433702054260481000072574957641100180832010382006080999884936897615254619217428531422948128764481099975168161859113291991236546485166360054028938088045666105959376093238089250875724345314946126338613160863139735204962511137413082802658453545773104565697967756835563330891130963795058671484926152600333911588494035825279706025045181472418551652110888328278068257412751370410459401706307156008695550183797095457937263463336179007644534708686979098699867342597294018091915081471279230521861941452204533399720666276267188728765411484206785652960571204994041653540903245195470345175135302303354362890393919792999586423994524796177950597328509816636469491756339816252165582740371856250008997343465405436871511433960572629273457690574568529069763064489644388067873182213790917310524896778947355097664202133140017746489105304814751184002326477592292882711864700513297342818189590050222380841821262414295703051852364741779338277816768964001342477353439497885689844286183833123526858476630387966054662726438674482459828986988743551814214259944129103951901837167822387684498153971259572244622583022603057334331793332217701824150371021487866490787799543644930408566024722240534433202334153508675416814754990235633028480720123461126884915660356301999846769997938897160098488183542446933682251921476137249978853166155527525762928346775039785203586370589677615353714555056807831359889509804635947203591439319253721793644938863053407413602485816395329675422350368997523484060140835685714677305132330413918613258468226678534787395866089555560721512026067089391522824887064553103293686252787722045329571012880733425789152714993515065475896868590011491613047870475801969172295742595546647503708062599674649365594948000381042582813859675657662262207110369363557450947375778685081334440678228499217056769817931865090141596139051120845564020942757184209216884668907821816927329681157223737482143990362162774714718059028826233739897859179184847870380477043476556772662681335514313701393835302534231766199506413145893538081057921464407953752152152466188785249172065678228231385797366006844671998544192185655114363113279699279687734818267288268450295294086936892418302522104097805869622109336407272103269470569254106856491672244877541093240686108552310695994235786360728492357117344838597229014947463773836991287972573077739289185178750172023200012729291483227918819139344879219234644698858300272325009787543453632979932010395151245999045988542284962776090932733276695501414931835677462267762496257651519794312344723017201493134372444147373483448838427053824667786432896684419965817859659278225629224104711729610171247470013884360372378250866809386773758931290944195533250294800388366404481334994972660544068487052862971038318125952952221266656230888503549510932822550104978623992848912737228900638213766482475313816628335230558078256577583872816207577206411958576703975670367239282145829652075223941028417996954228554662116361416545981396544923092833995348937568231847952456868264208542780958636296562296512681059045940793420743819684995664426433444364372468077056993782826477937962698075314476560639781199774999093480058071101367983523940180652102398466559676129222396620717971348046230669383045058321418315048804101873936917453925354751238683211614278879359577707932931547841397915011896802271195540369405947803302555097489994149436519585866360029069596827016540801858315473947735801163592524960057047153151462334744162860603553945295352641899348408023847463856952412996957520001436409162782582723567789747264046879345384789306923535910951705352734082309656703668138810555120128109846526329155976395502843888943999359511911944511000044816575267463865328446911221558949734398589574358232550402076583207889460067430313130318914680213184937175304035286442521552022442214280256728759731686116539509093115407025057793925860380810159744331521694801208444812893654295493906970546139756575543937826101990313468451636314664896112128953216197607340763188524269536241573661788795533122770754992761255886493738158709873207280895308714156655807492059457201549011952837895391597020502116873808733273837887820359548311327062393900685531144108899709054270698870670955718682663846272629497617794855616448293214274230393511194061102021530776483100665521107923871595711497155328703311140326373791204614842758165614806770957610350731365858305920499849843838940310930825818734480881780451713733471351518474226482493177752132463998210403663643700718188771186092584850735679067209634328163714795933158555576696028841137723137415404378516010769267208635592058909474420842642165819877171071936917378641195882269269089613403494360361766808846507028552437675211626145758495622465044704055848259065652867474779740359399938771814210472442935482766104690159766341274969631001679409674293979840576869065446443739858510967412494368205664767943232926058921605329598630206382788803827478822769780948691094780122518829267978522201366662147212451866113907862216290529612280724669882340792250720229363347941558318868392206538384434094866270586206182180257100201951885939289746163839296773495154341055793695526607996218692742713752667728109656241655028336108429469426081010185050395579035523458490647098271037522067060099139459541655067741111000392371430816201202837708223967561589025598776314795730561946268899364992104197790801325589764679898708965638028546442148876319116669067360434341298843947159416842070217544705297411281143178949172496978700005365278068339621848521422115715445850152130603441539828658565312739732965812926440450627857026261031781729341704320810741203498659702819707870208504622661946654488150088072722798066735017836549515246208711042761409512712803622431050029574862282207128429507638849308547357626704905897815342319042283214289034621570407592599497164306292075511593628968502052919343951525565810010648837504835305222743662624667832392322060810691962454588096312499799138396373520741507795953319083662971026640218051070282553434014895675499215127934162912745972184858203642844227050593361079113952768949606536996785596460878337067471222759643974653246991920865792626204849669242113660638209542916439857862004106774478657053881127637206543795622456625937135637517606842748901784831452297594281561816472907723916063958200216593159317564841818578810377221322420792956117314303997105587830693313155685347118123828821891308593582898985659622273267328020305358500873328310520996446562305759133927029055418095319855618043792758509176884127208763329966073221668272512192379412414888923758174420357559195566886953341782605751900782716320388043241633137809902127257055207136730594560969199701767926949379272381553859032077105935124258603291611491468563595580107849013467483251070405535908000413587348834917975008983379006423032736725435308133232670701004555152600869066632444317409473018659370169554362499526328233311586339612305247595282607922165990326055504210932883228237210279569037090398728709708792380649679178790103987588507883054533970631331405733116335218024376456146862040572042769149531635124850928761871056375614250590496539974686710414245871398178326489964416768377405265389606730066416269561718459262035698253866258358269727180862719562537631535970405634835288111400540685865940744348298797179700642272390305765628709085485331995998881439837596050767753577254922530702245329018858598274235970621140901606963317621959685348480871734137815963130983613545595955611303976819711484729588060825978486919635772257032472793890257911399504934606378742258656347306389277575547308978219623614066328716167064997437355782313470274208225811493883336456503709130385258356852333749235612220448562916421100463482601608517467074722842457893471774684894845488309399260340076946733677434307644637972585935651136371967565545056795319009107480009314821805482835539908116378037378851958333358861531712610566344197477232464573814601621508364941105092920962336819058174612453423688548936714840862928418574768255765006860796506931527704492197901211182575740867337966671059257412445262955677133599908076070190948675406361774213319534247121019445924422469451370447683440366540665191224244775391900072290905076828765240529751662460880817381001480221427681492457887573771785909121495587929305820355179008022337476868800151862899359830113957536925042115388653867519975432109926147098364083977726344218340724463129037720361020180656730648147127781827441094272939615922384958082811309317743400505342065637571899596909893912144189020632714210097588901782140031192415466799213969489949023456297428492352215760115958676402534840933879832300594090906728425720095503729219280120813485188045550955097574835196300668913948685394050243155373446050415496851619814694355524354393963415898955748196918575124639686606261084323952543952954376633408280328887771703528092086423626596989563534927567913002284271773241207729098151967136917516980307139873276519562004450277668286867556784081420157546364597131075481198125957232154973022807919258807742890502586456890157155005911381208889802670980904973138220778573321023776412934515236969903334340004543237615824740138452977767305148811654765158056740764645737506028497831009933261553909886742201440804409700727728098119363658170387329946625135359001059731116600566534160916575417028270236804575672330755226813486686330324778198807485998187922400794388849254841891129516749632495442104959209918292769043226185019275754338770030345725130209264975029693050099855591403833756073178893506170285700154123539751272707971496738152757732073571943375843905591512803741216384006006657341604796207067484269920834829310031543440955770431798603763911808459968851865750867549700107681983611900129007236993090453625742241461439539835476961058941984772639995456932954961310054888630049605723200735744078204722234221231544532257474116257191040537530672362313491705629432886056717863878656 7:4:0:1 7:4:1:7 7:4:2:823543 # 7:4:3:37598235267837885389...10357073612870132343 (a 695975 digit number) 8:4:0:1 8:4:1:8 8:4:2:16777216 # 8:4:3:60145207536513920379...25397555555421126656 (a 15151336 digit number) 9:4:0:1 9:4:1:9 9:4:2:387420489 # 9:4:3:42812477317574704803...99359681422627177289 (a 369693100 digit number) 10:4:0:1 10:4:1:10 10:4:2:10000000000 # 10:4:3:... (a 10000000000 digit number) 11:4:0:1 11:4:1:11 11:4:2:285311670611 # 11:4:3:... (a 297121486765 digit number) 12:4:0:1 12:4:1:12 12:4:2:8916100448256 # 12:4:3:... (a 9622088391635 digit number) 13:4:0:1 13:4:1:13 13:4:2:302875106592253 # 13:4:3:... (a 337385711567665 digit number) 14:4:0:1 14:4:1:14 14:4:2:11112006825558016 # 14:4:3:... (a 12735782555419959 digit number) 15:4:0:1 15:4:1:15 15:4:2:437893890380859375 # 15:4:3:... (a 515003176870814403 digit number) 16:4:0:1 16:4:1:16 16:4:2:18446744073709551616 # 16:4:3:... (a 22212093154093386895 digit number) 17:4:0:1 17:4:1:17 17:4:2:827240261886336764177 # 17:4:3:... (a 1017876887958722011919 digit number) 18:4:0:1 18:4:1:18 18:4:2:39346408075296537575424 # 18:4:3:... (a 49390464231494343541444 digit number) 19:4:0:1 19:4:1:19 19:4:2:1978419655660313589123979 # 19:4:3:... (a 2529911258871477183123293 digit number) 20:4:0:1 20:4:1:20 20:4:2:104857600000000000000000000 # 20:4:3:... (a 136422882873335218863214297 digit number) 21:4:0:1 21:4:1:21 21:4:2:5842587018385982521381124421 # 21:4:3:... (a 7725181286871851536584161699 digit number) 22:4:0:1 22:4:1:22 22:4:2:341427877364219557396646723584 # 22:4:3:... (a 458340526438710225132843406543 digit number) 23:4:0:1 23:4:1:23 23:4:2:20880467999847912034355032910567 # 23:4:3:... (a 28433514504467439831900993035955 digit number) 24:4:0:1 24:4:1:24 24:4:2:1333735776850284124449081472843776 # 24:4:3:... (a 1840837112681720683942395084381216 digit number) 25:4:0:1 25:4:1:25 25:4:2:88817841970012523233890533447265625 # 25:4:3:... (a 124162014773790739964431599731838212 digit number) 26:4:0:1 26:4:1:26 26:4:2:6156119580207157310796674288400203776 # 26:4:3:... (a 8710745132914411485514673420443810093 digit number) 27:4:0:1 27:4:1:27 27:4:2:443426488243037769948249630619149892803 # 27:4:3:... (a 634704607339354284876828904762819985796 digit number) 28:4:0:1 28:4:1:28 28:4:2:33145523113253374862572728253364605812736 # 28:4:3:... (a 47966809976383689164978385644364084203503 digit number) 29:4:0:1 29:4:1:29 29:4:2:2567686153161211134561828214731016126483469 # 29:4:3:... (a 3754979089615820440662116198963008711183407 digit number) 30:4:0:1 30:4:1:30 30:4:2:205891132094649000000000000000000000000000000 # 30:4:3:... (a 304126167375299121454244837378097999976300328 digit number) 31:4:0:1 31:4:1:31 31:4:2:17069174130723235958610643029059314756044734431 # 31:4:3:... (a 25456312443947506419913530706783844472823216353 digit number) 32:4:0:1 32:4:1:32 32:4:2:1461501637330902918203684832716283019655932542976 # 32:4:3:... (a 2199779157743111490588923283107086827417053752053 digit number) 33:4:0:1 33:4:1:33 33:4:2:129110040087761027839616029934664535539337183380513 # 33:4:3:... (a 196055395651457624070747411885057553879849564955563 digit number) 34:4:0:1 34:4:1:34 34:4:2:11756638905368616011414050501310355554617941909569536 # 34:4:3:... (a 18005044618850738018040884096438161566983607509140556 digit number) 35:4:0:1 35:4:1:35 35:4:2:1102507499354148695951786433413508348166942596435546875 # 35:4:3:... (a 1702346598409269964330866750261687948077899768864682678 digit number) 36:4:0:1 36:4:1:36 36:4:2:106387358923716524807713475752456393740167855629859291136 # 36:4:3:... (a 165570912743006692163267611092812105074488614008940964618 digit number) 37:4:0:1 37:4:1:37 37:4:2:10555134955777783414078330085995832946127396083370199442517 # 37:4:3:... (a 16552580835410493917255137076161060316511419991143722758700 digit number) 38:4:0:1 38:4:1:38 38:4:2:1075911801979993982060429252856123779115487368830416064610304 # 38:4:3:... (a 1699707816174424954321799266374566733167183523201848870889698 digit number) 39:4:0:1 39:4:1:39 39:4:2:112595147462071192539789448988889059930192105219196517009951959 # 39:4:3:... (a 179146154049830695635173738661912935811919990301877037742029069 digit number) 40:4:0:1 40:4:1:40 40:4:2:12089258196146291747061760000000000000000000000000000000000000000 # 40:4:3:... (a 19367716880879590104496859546004717199408818522283304763563550218 digit number) 41:4:0:1 41:4:1:41 41:4:2:1330877630632711998713399240963346255985889330161650994325137953641 # 41:4:3:... (a 2146417957953844823376201545581268787491595643213033406665376497189 digit number) 42:4:0:1 42:4:1:42 42:4:2:150130937545296572356771972164254457814047970568738777235893533016064 # 42:4:3:... (a 243699937837173716717726828717860034703775970860235550846981072974342 digit number) 43:4:0:1 43:4:1:43 43:4:2:17343773367030267519903781288812032158308062539012091953077767198995507 # 43:4:3:... (a 28330506695765243281623175267881552459593254038006373203060553323364140 digit number) 44:4:0:1 44:4:1:44 44:4:2:2050773823560610053645205609172376035486179836520607547294916966189367296 # 44:4:3:... (a 3370349729198490580651375043417911949914536054787130437661383001826156033 digit number) 45:4:0:1 45:4:1:45 45:4:2:248063644451341145494649182395412689744530581492654164321720600128173828125 # 45:4:3:... (a 410101921219674011473927237729199519279738684312248843030133150910423792460 digit number) 46:4:0:1 46:4:1:46 46:4:2:30680346300794274230660433647640397899788170645078853280082659754365153181696 # 46:4:3:... (a 51013986090348393998474945010096958955257976345093525672914575644029102371800 digit number) 47:4:0:1 47:4:1:47 47:4:2:3877924263464448622666648186154330754898344901344205917642325627886496385062863 # 47:4:3:... (a 6484268854175837242486802784110235149754653600611235824254236359662614978276766 digit number) 48:4:0:1 48:4:1:48 48:4:2:500702078263459319174537025249570888246709955377400223021257741084821677152403456 # 48:4:3:... (a 841800981616184880487268534079734532078120989957118390561691624001515952416172873 digit number) 49:4:0:1 49:4:1:49 49:4:2:66009724686219550843768321818371771650147004059278069406814190436565131829325062449 # 49:4:3:... (a 111569377908409484669478841232440867814957170723180995217259334164911961178605030730 digit number) 50:4:0:1 50:4:1:50 50:4:2:8881784197001252323389053344726562500000000000000000000000000000000000000000000000000 # 50:4:3:... (a 15089884935690772673530649371062523685706555590284695099921533545613226521640191055100 digit number) # pentation 0:5:0:1 0:5:1:0 0:5:2:1 0:5:3:0 0:5:4:1 0:5:5:0 0:5:6:1 0:5:7:0 0:5:8:1 0:5:9:0 1:5:0:1 1:5:1:1 1:5:2:1 1:5:3:1 1:5:4:1 1:5:5:1 1:5:6:1 1:5:7:1 1:5:8:1 1:5:9:1 2:5:0:1 2:5:1:2 2:5:2:4 2:5:3:65536 3:5:0:1 3:5:1:3 3:5:2:7625597484987 # 3:5:3:... (a 3638334640025 digit number) # hexation 0:6:0:1 0:6:1:0 0:6:2:1 0:6:3:0 0:6:4:1 0:6:5:0 0:6:6:1 0:6:7:0 0:6:8:1 0:6:9:0 1:6:0:1 1:6:1:1 1:6:2:1 1:6:3:1 1:6:4:1 1:6:5:1 1:6:6:1 1:6:7:1 1:6:8:1 1:6:9:1 2:6:0:1 2:6:1:2 2:6:2:4 3:6:0:1 3:6:1:3 4:6:0:1 4:6:1:4 5:6:0:1 5:6:1:5 6:6:0:1 6:6:1:6 7:6:0:1 7:6:1:7 8:6:0:1 8:6:1:8 9:6:0:1 9:6:1:9 # heptation / septation 0:7:0:1 0:7:1:0 0:7:2:1 0:7:3:0 0:7:4:1 0:7:5:0 0:7:6:1 0:7:7:0 0:7:8:1 0:7:9:0 1:7:0:1 1:7:1:1 1:7:2:1 1:7:3:1 1:7:4:1 1:7:5:1 1:7:6:1 1:7:7:1 1:7:8:1 1:7:9:1 2:7:0:1 2:7:1:2 2:7:2:4 3:7:0:1 3:7:1:3 4:7:0:1 4:7:1:4 5:7:0:1 5:7:1:5 6:7:0:1 6:7:1:6 7:7:0:1 7:7:1:7 8:7:0:1 8:7:1:8 9:7:0:1 9:7:1:9 # octation 0:8:0:1 0:8:1:0 0:8:2:1 0:8:3:0 0:8:4:1 0:8:5:0 0:8:6:1 0:8:7:0 0:8:8:1 0:8:9:0 1:8:0:1 1:8:1:1 1:8:2:1 1:8:3:1 1:8:4:1 1:8:5:1 1:8:6:1 1:8:7:1 1:8:8:1 1:8:9:1 2:8:0:1 2:8:1:2 2:8:2:4 3:8:0:1 3:8:1:3 4:8:0:1 4:8:1:4 5:8:0:1 5:8:1:5 6:8:0:1 6:8:1:6 7:8:0:1 7:8:1:7 8:8:0:1 8:8:1:8 9:8:0:1 9:8:1:9 # nontation / enneation 0:9:0:1 0:9:1:0 0:9:2:1 0:9:3:0 0:9:4:1 0:9:5:0 0:9:6:1 0:9:7:0 0:9:8:1 0:9:9:0 1:9:0:1 1:9:1:1 1:9:2:1 1:9:3:1 1:9:4:1 1:9:5:1 1:9:6:1 1:9:7:1 1:9:8:1 1:9:9:1 2:9:0:1 2:9:1:2 2:9:2:4 3:9:0:1 3:9:1:3 4:9:0:1 4:9:1:4 5:9:0:1 5:9:1:5 6:9:0:1 6:9:1:6 7:9:0:1 7:9:1:7 8:9:0:1 8:9:1:8 9:9:0:1 9:9:1:9 # decation 10:10:0:1 10:10:1:10 # undecation 11:11:0:1 11:11:1:11 # doedecation 12:12:0:1 12:12:1:12 # tredecation 13:13:0:1 13:13:1:13 # higher operators 1234:1234:0:1 1234:1234:1:1234 1234567:1234567:0:1 1234567:1234567:1:1234567 1234567898:1234567898:0:1 1234567898:1234567898:1:1234567898 1234567898765:1234567898765:0:1 1234567898765:1234567898765:1:1234567898765 1234567898765432:1234567898765432:0:1 1234567898765432:1234567898765432:1:1234567898765432 1234567898765432101:1234567898765432101:0:1 1234567898765432101:1234567898765432101:1:1234567898765432101 1234567898765432101234:1234567898765432101234:0:1 1234567898765432101234:1234567898765432101234:1:1234567898765432101234 1234567898765432101234567:1234567898765432101234567:0:1 1234567898765432101234567:1234567898765432101234567:1:1234567898765432101234567 Math-BigInt-2.005003/xt/author/bilog10-mbf.t0000644403072340010010000000436614774525141020100 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigFloat; # int(log(x) / log(10) sub ilog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 10 ** $y; } while ($trial > $x) { $y--; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog10($x); push @cases, [ $x, $y ]; } note("\nbilog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigFloat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigFloat -> new("$in0"); | . qq|\$y = \$x -> bilog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bilog10-mbi.t0000644403072340010010000000433414760020024020057 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigInt; # int(log(x) / log(10) sub ilog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 10 ** $y; } while ($trial > $x) { $y--; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog10($x); push @cases, [ $x, $y ]; } note("\nbilog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigInt -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigInt -> new("$in0"); | . qq|\$y = \$x -> bilog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bilog10-mbr.t0000644403072340010010000000433414757624223020111 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigRat; # int(log(x) / log(10) sub ilog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 10 ** $y; } while ($trial > $x) { $y--; $trial = 10 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog10($x); push @cases, [ $x, $y ]; } note("\nbilog10() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigRat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog10() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigRat -> new("$in0"); | . qq|\$y = \$x -> bilog10();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bilog10("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bilog2-mbf.t0000644403072340010010000000435214774525715020023 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigFloat; # int(log(x) / log(2)) sub ilog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 2 ** $y; } while ($trial > $x) { $y--; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog2($x); push @cases, [ $x, $y ]; } note("\nbilog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigFloat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigFloat -> new("$in0"); | . qq|\$y = \$x -> bilog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigFloat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigFloat', '$y[0] is a Math::BigFloat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bilog2-mbi.t0000644403072340010010000000432014774525141020012 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigInt; # int(log(x) / log(2)) sub ilog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 2 ** $y; } while ($trial > $x) { $y--; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog2($x); push @cases, [ $x, $y ]; } note("\nbilog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigInt -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigInt -> new("$in0"); | . qq|\$y = \$x -> bilog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigInt -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigInt', '$y[0] is a Math::BigInt'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/bilog2-mbr.t0000644403072340010010000000432014773764715020036 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4112; use Scalar::Util qw< refaddr >; use Math::BigRat; # int(log(x) / log(2)) sub ilog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 2 ** $y; } while ($trial > $x) { $y--; $trial = 2 ** $y; } return $y; } my @cases = ( [ "NaN", "NaN" ], [ "-1", "NaN" ], [ "0", "-inf" ], ); for (my $x = 1 ; $x <= 1025 ; $x++) { my $y = ilog2($x); push @cases, [ $x, $y ]; } note("\nbilog2() as a class method"); for my $case (@cases) { my ($test, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$y = Math::BigRat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } note("\nbilog2() as an instance method"); for my $case (@cases) { my ($test, $x, $y, @y); my ($in0, $out0) = @$case; # Scalar context. $test = qq|\$x = Math::BigRat -> new("$in0"); | . qq|\$y = \$x -> bilog2();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 2; is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is($y, $out0, 'value of $y'); }; # List context. $test = qq|\@y = Math::BigRat -> bilog2("$in0");|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; subtest $test => sub { plan tests => 3; is(scalar(@y), 1, 'number of output arguments'); is(ref($y[0]), 'Math::BigRat', '$y[0] is a Math::BigRat'); is($y[0], $out0, 'value of $y[0]'); }; } Math-BigInt-2.005003/xt/author/binc-mbf.t0000644403072340010010000000417714537274604017560 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 24; use Math::BigFloat; note("binc() as a class method"); is(Math::BigFloat -> binc(-2), -1, 'Math::BigFloat -> binc(-2)'); is(Math::BigFloat -> binc(-1), 0, 'Math::BigFloat -> binc(-1)'); is(Math::BigFloat -> binc(0), 1, 'Math::BigFloat -> binc(0)'); is(Math::BigFloat -> binc(1), 2, 'Math::BigFloat -> binc(1)'); is(Math::BigFloat -> binc(2), 3, 'Math::BigFloat -> binc(2)'); is(Math::BigFloat -> binc("-inf"), "-inf", 'Math::BigFloat -> binc("-inf")'); is(Math::BigFloat -> binc("inf"), "inf", 'Math::BigFloat -> binc("inf")'); is(Math::BigFloat -> binc("NaN"), "NaN", 'Math::BigFloat -> binc("NaN")'); note("binc() as an instance method"); is(Math::BigFloat -> new(-2) -> binc(), -1, 'Math::BigFloat -> new(-2) -> binc()'); is(Math::BigFloat -> new(-1) -> binc(), 0, 'Math::BigFloat -> new(-1) -> binc()'); is(Math::BigFloat -> new(0) -> binc(), 1, 'Math::BigFloat -> new(0) -> binc()'); is(Math::BigFloat -> new(1) -> binc(), 2, 'Math::BigFloat -> new(1) -> binc()'); is(Math::BigFloat -> new(2) -> binc(), 3, 'Math::BigFloat -> new(2) -> binc()'); is(Math::BigFloat -> new("-inf") -> binc(), "-inf", 'Math::BigFloat -> new("-inf") -> binc()'); is(Math::BigFloat -> new("inf") -> binc(), "inf", 'Math::BigFloat -> new("inf") -> binc()'); is(Math::BigFloat -> new("NaN") -> binc(), "NaN", 'Math::BigFloat -> new("NaN") -> binc()'); note("binc() as a function"); SKIP: { skip "Math::BigInt doesn't support binc() as a function", 8; is(Math::BigFloat::binc(-2), -1, 'Math::BigFloat::binc(-2)'); is(Math::BigFloat::binc(-1), 0, 'Math::BigFloat::binc(-1)'); is(Math::BigFloat::binc(0), 1, 'Math::BigFloat::binc(0)'); is(Math::BigFloat::binc(1), 2, 'Math::BigFloat::binc(1)'); is(Math::BigFloat::binc(2), 3, 'Math::BigFloat::binc(2)'); is(Math::BigFloat::binc("-inf"), "-inf", 'Math::BigFloat::binc("-inf")'); is(Math::BigFloat::binc("inf"), "inf", 'Math::BigFloat::binc("inf")'); is(Math::BigFloat::binc("NaN"), "NaN", 'Math::BigFloat::binc("NaN")'); } Math-BigInt-2.005003/xt/author/binc-mbi.t0000644403072340010010000000362114537274604017554 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 24; use Math::BigInt; note("binc() as a class method"); is(Math::BigInt -> binc(-2), -1, 'Math::BigInt -> binc(-2)'); is(Math::BigInt -> binc(-1), 0, 'Math::BigInt -> binc(-1)'); is(Math::BigInt -> binc(0), 1, 'Math::BigInt -> binc(0)'); is(Math::BigInt -> binc(1), 2, 'Math::BigInt -> binc(1)'); is(Math::BigInt -> binc(2), 3, 'Math::BigInt -> binc(2)'); is(Math::BigInt -> binc("-inf"), "-inf", 'Math::BigInt -> binc("-inf")'); is(Math::BigInt -> binc("inf"), "inf", 'Math::BigInt -> binc("inf")'); is(Math::BigInt -> binc("NaN"), "NaN", 'Math::BigInt -> binc("NaN")'); note("binc() as an instance method"); is(Math::BigInt -> new(-2) -> binc(), -1, 'Math::BigInt -> new(-2) -> binc()'); is(Math::BigInt -> new(-1) -> binc(), 0, 'Math::BigInt -> new(-1) -> binc()'); is(Math::BigInt -> new(0) -> binc(), 1, 'Math::BigInt -> new(0) -> binc()'); is(Math::BigInt -> new(1) -> binc(), 2, 'Math::BigInt -> new(1) -> binc()'); is(Math::BigInt -> new(2) -> binc(), 3, 'Math::BigInt -> new(2) -> binc()'); is(Math::BigInt -> new("-inf") -> binc(), "-inf", 'Math::BigInt -> new("-inf") -> binc()'); is(Math::BigInt -> new("inf") -> binc(), "inf", 'Math::BigInt -> new("inf") -> binc()'); is(Math::BigInt -> new("NaN") -> binc(), "NaN", 'Math::BigInt -> new("NaN") -> binc()'); note("binc() as a function"); is(Math::BigInt::binc(-2), -1, 'Math::BigInt::binc(-2)'); is(Math::BigInt::binc(-1), 0, 'Math::BigInt::binc(-1)'); is(Math::BigInt::binc(0), 1, 'Math::BigInt::binc(0)'); is(Math::BigInt::binc(1), 2, 'Math::BigInt::binc(1)'); is(Math::BigInt::binc(2), 3, 'Math::BigInt::binc(2)'); is(Math::BigInt::binc("-inf"), "-inf", 'Math::BigInt::binc("-inf")'); is(Math::BigInt::binc("inf"), "inf", 'Math::BigInt::binc("inf")'); is(Math::BigInt::binc("NaN"), "NaN", 'Math::BigInt::binc("NaN")'); Math-BigInt-2.005003/xt/author/binf-mbf.t0000644403072340010010000000406514537274604017557 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 9; use Math::BigFloat; my $x; note("binf() as a class method"); $x = Math::BigFloat -> binf(); subtest '$x = Math::BigFloat -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == inf'); }; $x = Math::BigFloat -> binf("+"); subtest '$x = Math::BigFloat -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == inf'); }; $x = Math::BigFloat -> binf("-"); subtest '$x = Math::BigFloat -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "-inf", '$x == inf'); }; note("binf() as an instane method"); $x = Math::BigFloat -> new("2") -> binf(); subtest '$x = Math::BigFloat -> new("2") -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == -inf'); }; $x = Math::BigFloat -> new("2") -> binf("+"); subtest '$x = Math::BigFloat -> new("2") -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == inf'); }; $x = Math::BigFloat -> new("2") -> binf("-"); subtest '$x = Math::BigFloat -> new("2") -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "-inf", '$x == -inf'); }; note("binf() as a function"); $x = Math::BigFloat::binf(); subtest '$x = Math::BigFloat -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == inf'); }; $x = Math::BigFloat::binf("+"); subtest '$x = Math::BigFloat -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "inf", '$x == inf'); }; $x = Math::BigFloat::binf("-"); subtest '$x = Math::BigFloat -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "-inf", '$x == -inf'); }; Math-BigInt-2.005003/xt/author/binf-mbi.t0000644403072340010010000000375314537274604017565 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 9; use Math::BigInt; my $x; note("binf() as a class method"); $x = Math::BigInt -> binf(); subtest '$x = Math::BigInt -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == inf'); }; $x = Math::BigInt -> binf("+"); subtest '$x = Math::BigInt -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == inf'); }; $x = Math::BigInt -> binf("-"); subtest '$x = Math::BigInt -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "-inf", '$x == inf'); }; note("binf() as an instane method"); $x = Math::BigInt -> new("2") -> binf(); subtest '$x = Math::BigInt -> new("2") -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == -inf'); }; $x = Math::BigInt -> new("2") -> binf("+"); subtest '$x = Math::BigInt -> new("2") -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == inf'); }; $x = Math::BigInt -> new("2") -> binf("-"); subtest '$x = Math::BigInt -> new("2") -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "-inf", '$x == -inf'); }; note("binf() as a function"); $x = Math::BigInt::binf(); subtest '$x = Math::BigInt -> binf()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == inf'); }; $x = Math::BigInt::binf("+"); subtest '$x = Math::BigInt -> binf("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "inf", '$x == inf'); }; $x = Math::BigInt::binf("-"); subtest '$x = Math::BigInt -> binf("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "-inf", '$x == -inf'); }; Math-BigInt-2.005003/xt/author/binv-mbf-dng-mbi.t0000644403072340010010000000306314756672324021113 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; my $class; my $downgrade; BEGIN { $class = 'Math::BigFloat'; $downgrade = 'Math::BigInt'; use_ok($class); use_ok($downgrade); } # We need to create these before we enable downgrading, otherwise the # downgrading will happen already in the constructors. my $ninf = $class -> binf("-"); my $nfour = $class -> new("-4"); my $ntwo = $class -> new("-2"); my $none = $class -> bone("-"); my $zero = $class -> bzero(); my $pone = $class -> bone(); my $ptwo = $class -> new("2"); my $pfour = $class -> new("4"); my $pinf = $class -> binf(); my $nan = $class -> bnan(); # Enable downgrading. $class -> downgrade($downgrade); my $data = [ # input, output, 0=down/1=up [ $ninf, 0, 0, ], [ $nfour, -0.25, 1, ], [ $ntwo, -0.5, 1, ], [ $none, -1, 0, ], [ $zero, "inf", 0, ], [ $pone, 1, 0, ], [ $ptwo, 0.5, 1, ], [ $pfour, 0.25, 1, ], [ $pinf, 0, 0, ], [ $nan, "NaN", 0, ], ]; for my $entry (@$data) { my ($x, $want, $up) = @$entry; my $test = qq|binv("$x")|; my $y = $x -> binv(); subtest $test => sub { plan tests => 3; if ($up) { is(ref($x), $class, "\$x is a $class"); is(ref($y), $class, "\$y is a $class"); } else { is(ref($x), $downgrade, "\$x is a $downgrade due to downgrading"); is(ref($y), $downgrade, "\$y is a $downgrade due to downgrading"); } is($y, $want, "\$y has the right value"); }; } Math-BigInt-2.005003/xt/author/binv-mbf.t0000644403072340010010000000247614546553333017602 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; my $class; BEGIN { $class = 'Math::BigFloat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @args = split /:/; my $want = pop @args; # binv() as an instance method { my ($x, $y); my $test = qq|\$x = $class -> new("$args[0]"); | . qq|\$y = \$x -> binv();|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($x), $class, "\$x is still a $class"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); is($x, $want, "the invocand \$x has the right value"); } # binv() as an class method { my ($y); my $test = qq|\$y = $class -> binv("$args[0]");|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); } } __DATA__ -inf:0 -4:-0.25 -2:-0.5 -1:-1 0:inf 1:1 2:0.5 4:0.25 inf:0 NaN:NaN Math-BigInt-2.005003/xt/author/binv-mbi-upg-mbf.t0000644403072340010010000000306114756672324021134 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; my $class; my $upgrade; BEGIN { $class = 'Math::BigInt'; $upgrade = 'Math::BigFloat'; use_ok($class); use_ok($upgrade); } # We need to create these before we enable upgrading, otherwise the upgrading # will happen already in the constructors. my $ninf = $class -> binf("-"); my $nfour = $class -> new("-4"); my $ntwo = $class -> new("-2"); my $none = $class -> bone("-"); my $zero = $class -> bzero(); my $pone = $class -> bone(); my $ptwo = $class -> new("2"); my $pfour = $class -> new("4"); my $pinf = $class -> binf(); my $nan = $class -> bnan(); # Enable upgrading. $class -> upgrade($upgrade); my $data = [ # input, output, upgrading or not [ $ninf, 0, 0, ], [ $nfour, -0.25, 1, ], [ $ntwo, -0.5, 1, ], [ $none, -1, 0, ], [ $zero, "inf", 0, ], [ $pone, 1, 0, ], [ $ptwo, 0.5, 1, ], [ $pfour, 0.25, 1, ], [ $pinf, 0, 0, ], [ $nan, "NaN", 0, ], ]; for my $entry (@$data) { my ($x, $want, $up) = @$entry; my $test = qq|binv("$x")|; $x = $x -> copy(); my $y = $x -> binv(); subtest $test => sub { plan tests => 3; if ($up) { is(ref($x), $upgrade, "\$x is a $upgrade due to upgrading"); is(ref($y), $upgrade, "\$y is a $upgrade due to upgrading"); } else { is(ref($x), $class, "\$y is a $class"); is(ref($y), $class, "\$y is a $class"); } is($y, $want, "\$y has the right value"); }; } Math-BigInt-2.005003/xt/author/binv-mbi.t0000644403072340010010000000246014546553333017576 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; my $class; BEGIN { $class = 'Math::BigInt'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @args = split /:/; my $want = pop @args; # binv() as an instance method { my ($x, $y); my $test = qq|\$x = $class -> new("$args[0]"); | . qq|\$y = \$x -> binv();|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($x), $class, "\$x is still a $class"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); is($x, $want, "the invocand \$x has the right value"); } # binv() as an class method { my ($y); my $test = qq|\$y = $class -> binv("$args[0]");|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); } } __DATA__ -inf:0 -4:0 -2:0 -1:-1 0:inf 1:1 2:0 4:0 inf:0 NaN:NaN Math-BigInt-2.005003/xt/author/binv-mbr.t0000644403072340010010000000247314546553333017613 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; my $class; BEGIN { $class = 'Math::BigRat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @args = split /:/; my $want = pop @args; # binv() as an instance method { my ($x, $y); my $test = qq|\$x = $class -> new("$args[0]"); | . qq|\$y = \$x -> binv();|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($x), $class, "\$x is still a $class"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); is($x, $want, "the invocand \$x has the right value"); } # binv() as an class method { my ($y); my $test = qq|\$y = $class -> binv("$args[0]");|; note "\n"; note "$test\n"; note "\n"; eval "$test"; is($@, "", "eval succeeded"); is(ref($y), $class, "\$y is a $class"); is($y, $want, "the output \$y has the right value"); } } __DATA__ NaN:NaN inf:0 5:1/5 2:1/2 1:1 0:inf -1:-1 -2:-1/2 -5:-1/5 -inf:0 Math-BigInt-2.005003/xt/author/blcm-mbi-mbr-mbf.t0000644403072340010010000001115414770462107021072 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 299; use Scalar::Util qw< refaddr >; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } my %cases = ( # Common test cases for Math::BigInt, Math::BigRat, and Math::BigFloat. 'common' => [ ['NaN', 'NaN', 'NaN'], ['inf', 'NaN', 'NaN'], ['NaN', 'inf', 'NaN'], ['0', 'NaN', 'NaN'], ['0', 'inf', 'NaN'], ['0', '-inf', 'NaN'], ['1', 'NaN', 'NaN'], ['1', 'inf', 'NaN'], ['1', '-inf', 'NaN'], ['-4', '0', '0'], [ '0', '-4', '0'], ['-1', '0', '0'], [ '0', '-1', '0'], [ '0', '0', '0'], [ '1', '0', '0'], [ '0', '1', '0'], [ '4', '0', '0'], [ '0', '4', '0'], ['-6', '-4', '12'], ['-6', '4', '12'], [ '4', '-6', '12'], [ '4', '6', '12'], ], # Test cases for Math::BigInt only. 'Math::BigInt' => [ ['0.8', '1.2', 'NaN'], ['1.2', '0.8', 'NaN'], [ '0', '0.8', 'NaN'], ['1.2', '0', 'NaN'], ], # For Math::BigRat only: 'Math::BigRat' => [ ['4/5', '6/5', '12/5'], ['6/5', '4/5', '12/5'], ], # For Math::BigFloat only: 'Math::BigFloat' => [ ['0.8', '1.2', '2.4'], ['1.2', '0.8', '2.4'], ], ); for my $class (@classes) { my @cases = (@{ $cases{common} }, # common test cases @{ $cases{$class} }); # class-specific test cases for my $case (@cases) { my ($in0, $in1, $out0) = @$case; # As class method. { my ($x, $z); my $test = qq|\$z = $class -> blcm("$in0", "$in1");|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); }; } # As instance method. { my ($x, $y, $z); my $test = qq|\$x = $class -> new("$in0");| . qq| \$y = $class -> new("$in1");| . qq| \$z = \$x -> blcm(\$y);|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); is($x, $in0, 'first operand is unmodified') unless $class eq "Math::BigInt" && $in0 =~ m|[./]|; is($y, $in1, 'second operand is unmodified') unless $class eq "Math::BigInt" && $in1 =~ m|[./]|; isnt(refaddr($z), refaddr($x), 'output arg is not the first operand'); isnt(refaddr($z), refaddr($y), 'output arg is not the second operand'); }; } # As function. # # For some reason, the original author decided that bgcd() and blcm() # should support being used functions, not methods. In addition, if # used as instance methods, they should not modify their invocand. This # is inconsistent with all other bxxx() methods, but there we are. { my ($x, $y, $z); my $test = qq|\$x = $class -> new("$in0");| . qq| \$y = $class -> new("$in1");| . qq| \$z = ${class}::blcm(\$x, \$y);|; note("\n$test\n\n"); eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); is($x, $in0, 'first operand is unmodified') unless $class eq "Math::BigInt" && $in0 =~ m|[./]|; is($y, $in1, 'second operand is unmodified') unless $class eq "Math::BigInt" && $in1 =~ m|[./]|; isnt(refaddr($z), refaddr($x), 'output arg is not the first operand'); isnt(refaddr($z), refaddr($y), 'output arg is not the second operand'); }; } { my $z; my $test = qq|\$z = ${class}::blcm("$in0", "$in1");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { is(ref($z), $class, "output arg is a $class"); is($z, $out0, 'output arg has the right value'); }; } } } Math-BigInt-2.005003/xt/author/ble-mbf.t0000644403072340010010000000420714537274604017401 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigFloat; note("ble() as a class method"); is(Math::BigFloat -> ble(5, 7), 1, "Math::BigFloat -> ble(5, 7)"); is(Math::BigFloat -> ble(5, 5), 1, "Math::BigFloat -> ble(5, 5)"); is(Math::BigFloat -> ble(7, 5), "", "Math::BigFloat -> ble(7, 5)"); is(Math::BigFloat -> ble(Math::BigFloat -> new(5), 7), 1, "Math::BigFloat -> ble(Math::BigFloat -> new(5), 7)"); is(Math::BigFloat -> ble(Math::BigFloat -> new(5), 5), 1, "Math::BigFloat -> ble(Math::BigFloat -> new(5), 5)"); is(Math::BigFloat -> ble(Math::BigFloat -> new(7), 5), "", "Math::BigFloat -> ble(Math::BigFloat -> new(7), 5)"); is(Math::BigFloat -> ble(5, Math::BigFloat -> new(7)), 1, "Math::BigFloat -> ble(5, Math::BigFloat -> new(7))"); is(Math::BigFloat -> ble(5, Math::BigFloat -> new(5)), 1, "Math::BigFloat -> ble(5, Math::BigFloat -> new(5))"); is(Math::BigFloat -> ble(7, Math::BigFloat -> new(5)), "", "Math::BigFloat -> ble(7, Math::BigFloat -> new(5))"); is(Math::BigFloat -> ble(Math::BigFloat -> new(5), Math::BigFloat -> new(7)), 1, "Math::BigFloat -> ble(5, Math::BigFloat -> new(7))"); is(Math::BigFloat -> ble(Math::BigFloat -> new(5), Math::BigFloat -> new(5)), 1, "Math::BigFloat -> ble(Math::BigFloat -> new(5), Math::BigFloat -> new(5))"); is(Math::BigFloat -> ble(Math::BigFloat -> new(7), Math::BigFloat -> new(5)), "", "Math::BigFloat -> ble(7, Math::BigFloat -> new(5))"); note("ble() as an instance method"); is(Math::BigFloat -> new(5) -> ble(7), 1, "Math::BigFloat -> new(5) -> ble(7)"); is(Math::BigFloat -> new(5) -> ble(5), 1, "Math::BigFloat -> new(5) -> ble(5)"); is(Math::BigFloat -> new(7) -> ble(5), "", "Math::BigFloat -> new(7) -> ble(5)"); is(Math::BigFloat -> new(5) -> ble(Math::BigFloat -> new(7)), 1, "Math::BigFloat -> new(5) -> ble(Math::BigFloat -> new(7))"); is(Math::BigFloat -> new(5) -> ble(Math::BigFloat -> new(5)), 1, "Math::BigFloat -> new(5) -> ble(Math::BigFloat -> new(5))"); is(Math::BigFloat -> new(7) -> ble(Math::BigFloat -> new(5)), "", "Math::BigFloat -> new(7) -> ble(Math::BigFloat -> new(5))"); Math-BigInt-2.005003/xt/author/ble-mbi.t0000644403072340010010000000400514537274604017400 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigInt; note("ble() as a class method"); is(Math::BigInt -> ble(5, 7), 1, "Math::BigInt -> ble(5, 7)"); is(Math::BigInt -> ble(5, 5), 1, "Math::BigInt -> ble(5, 5)"); is(Math::BigInt -> ble(7, 5), "", "Math::BigInt -> ble(7, 5)"); is(Math::BigInt -> ble(Math::BigInt -> new(5), 7), 1, "Math::BigInt -> ble(Math::BigInt -> new(5), 7)"); is(Math::BigInt -> ble(Math::BigInt -> new(5), 5), 1, "Math::BigInt -> ble(Math::BigInt -> new(5), 5)"); is(Math::BigInt -> ble(Math::BigInt -> new(7), 5), "", "Math::BigInt -> ble(Math::BigInt -> new(7), 5)"); is(Math::BigInt -> ble(5, Math::BigInt -> new(7)), 1, "Math::BigInt -> ble(5, Math::BigInt -> new(7))"); is(Math::BigInt -> ble(5, Math::BigInt -> new(5)), 1, "Math::BigInt -> ble(5, Math::BigInt -> new(5))"); is(Math::BigInt -> ble(7, Math::BigInt -> new(5)), "", "Math::BigInt -> ble(7, Math::BigInt -> new(5))"); is(Math::BigInt -> ble(Math::BigInt -> new(5), Math::BigInt -> new(7)), 1, "Math::BigInt -> ble(5, Math::BigInt -> new(7))"); is(Math::BigInt -> ble(Math::BigInt -> new(5), Math::BigInt -> new(5)), 1, "Math::BigInt -> ble(Math::BigInt -> new(5), Math::BigInt -> new(5))"); is(Math::BigInt -> ble(Math::BigInt -> new(7), Math::BigInt -> new(5)), "", "Math::BigInt -> ble(7, Math::BigInt -> new(5))"); note("ble() as an instance method"); is(Math::BigInt -> new(5) -> ble(7), 1, "Math::BigInt -> new(5) -> ble(7)"); is(Math::BigInt -> new(5) -> ble(5), 1, "Math::BigInt -> new(5) -> ble(5)"); is(Math::BigInt -> new(7) -> ble(5), "", "Math::BigInt -> new(7) -> ble(5)"); is(Math::BigInt -> new(5) -> ble(Math::BigInt -> new(7)), 1, "Math::BigInt -> new(5) -> ble(Math::BigInt -> new(7))"); is(Math::BigInt -> new(5) -> ble(Math::BigInt -> new(5)), 1, "Math::BigInt -> new(5) -> ble(Math::BigInt -> new(5))"); is(Math::BigInt -> new(7) -> ble(Math::BigInt -> new(5)), "", "Math::BigInt -> new(7) -> ble(Math::BigInt -> new(5))"); Math-BigInt-2.005003/xt/author/blog-mbf.t0000644403072340010010000001567114546553333017570 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 143; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class) } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines # $in0 - the x value # $in1 - the base # $out0 - the wanted output value # $type - the type of the wanted number (real, non-real, ...) # $expr - mathematical expression of the wanted number my ($in0, $in1, $out0, $type, $expr) = split /:/; # Some of the test data use rational numbers. # - with Math::BigInt, we skip them # - with Math::BigFloat, we convert them to floats # - with Math::BigRat, we use them as they are $in0 = eval $in0 if $in0 =~ m|/|; $in1 = eval $in1 if $in1 =~ m|/|; $out0 = eval $out0 if $out0 =~ m|/|; my ($x, $y); # input values as objects my ($yo); # copy of input value my ($got); # test output my $test = qq|\$x = $class -> new("$in0"); | . qq|\$y = $class -> new("$in1"); | . qq|\$yo = \$y -> copy(); | . qq|\$got = \$x -> blog(\$y);|; my $desc = "logarithm of $in0 to base $in1"; print("#\n", "# Now about to execute the following test.\n", "#\n", "# $test\n", "#\n"); if ($in0 ne 'NaN' && $in1 ne 'NaN') { print("# Enter log($in1, $in0) into Wolfram Alpha", " (http://www.wolframalpha.com/), and it says that the result", " is ", length($type) ? $type : "real", length($expr) ? ": $expr" : "", ".", "\n", "#\n"); } eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 5; # Check output. is(ref($got), $class, "output arg is a $class"); is($got, $out0, 'output arg has the right value'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($got), refaddr($x), 'output arg is the invocand'); } # The second argument (if the invocand is the first) shall *not* be # modified. is(ref($y), $class, "second input arg is still a $class"); is_deeply($y, $yo, 'second input arg is unmodified'); }; } # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before blog()"); my $x = $class -> new(12345); $x -> blog(); is($class -> accuracy(), 10, "class accuracy is 10 after blog()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before blog()"); my $x = $class -> new(12345); $x -> blog(); is($class -> precision(), -10, "class precision is -10 after blog()"); } __END__ # base = -inf -inf:-inf:NaN:undefined: -4:-inf:0:: -2:-inf:0:: -1:-inf:0:: -1/2:-inf:0:: 0:-inf:NaN:undefined: 1/2:-inf:0:: 1:-inf:0:: 2:-inf:0:: 4:-inf:0:: inf:-inf:NaN:undefined: NaN:-inf:NaN:undefined: # base = -4 -4:-4:1:: -2:-4:NaN:non-real and finite:(log(2)+i pi)/(log(4)+i pi) 0:-4:NaN:non-real (directed) infinity:(-sqrt(pi^2+log^2(4))/(log(4)+i pi))infinity 1/2:-4:NaN:non-real and finite:-(log(2))/(log(4)+i pi) 1:-4:0:: 2:-4:NaN:non-real and finite:(log(2))/(log(4)+i pi) 4:-4:NaN:non-real and finite:(log(4))/(log(4)+i pi) NaN:-4:NaN:undefined: # base = -2 -inf:-2:NaN:non-real (directed) infinity:sqrt(pi^2+log^2(2))/(log(2)+i pi)infinity -4:-2:NaN:non-real and finite:(log(4)+i pi)/(log(2)+i pi) -2:-2:1:: -1:-2:NaN:non-real and finite:(i pi)/(log(2)+i pi) -1/2:-2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)+i pi) 0:-2:NaN:complex infinity: 1/2:-2:NaN:non-real and finite:-(log(2))/(log(2)+i pi) 1:-2:0:: 2:-2:NaN:non-real and finite:(log(2))/(log(2)+i pi) 4:-2:NaN:non-real and finite:(log(4))/(log(2)+i pi) inf:-2:NaN:non-real (directed) infinity: NaN:-2:NaN:undefined: # base = -1 -inf:-1:NaN:non-real (directed) infinity: -4:-1:NaN:non-real and finite:-(i (log(4)+i pi))/pi -2:-1:NaN:non-real and finite:-(i (log(2)+i pi))/pi -1:-1:1:: -1/2:-1:NaN:non-real and finite:-(i (-log(2)+i pi))/pi 0:-1:NaN:complex infinity: 1:-1:0:: 1/2:-1:NaN:non-real and finite:(i log(2))/pi 2:-1:NaN:non-real and finite:-(i log(2))/pi 4:-1:NaN:non-real and finite:-(i log(4))/pi inf:-1:NaN:non-real (directed) infinity: NaN:-1:NaN:undefined: # base = -1/2 -inf:-1/2:NaN:non-real (directed) infinity: -4:-1/2:NaN:non-real and finite:(log(4)+i pi)/(-log(2)+i pi) -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:-1/2:NaN:non-real and finite:(i pi)/(-log(2)+i pi) -1/2:-1/2:1:: 0:-1/2:NaN:complex infinity: 1:-1/2:0:: 1/2:-1/2:NaN:non-real and finite:-(log(2))/(-log(2)+i pi) 2:-1/2:NaN:non-real and finite:(log(2))/(-log(2)+i pi) 4:-1/2:NaN:non-real and finite:(log(4))/(-log(2)+i pi) inf:-1/2:NaN:non-real (directed) infinity: NaN:-1/2:NaN:undefined: # base = 0 -inf:0:NaN:undefined: -4:0:0:: -2:0:0:: -1:0:0:: -1/2:0:0:: 0:0:NaN:undefined: 1/2:0:0:: 1:0:0:: 2:0:0:: 4:0:0:: inf:0:NaN:undefined: NaN:0:NaN:undefined: # base = 1/2 -inf:1/2:-inf:: -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:1/2:NaN:non-real and finite:-(i pi)/(log(2)) -1/2:1/2:NaN:non-real and finite:-(-log(2)+i pi)/(log(2)) 0:1/2:inf:: 1/2:1/2:1:: 1:1/2:0:: 2:1/2:-1:: inf:1/2:-inf:: NaN:1/2:NaN:undefined: # base = 1 -inf:1:NaN:complex infinity: -4:1:NaN:complex infinity: -2:1:NaN:complex infinity: -1:1:NaN:complex infinity: -1/2:1:NaN:complex infinity: 0:1:NaN:complex infinity: 1/2:1:NaN:complex infinity: 1:1:NaN:undefined: 2:1:NaN:complex infinity: 4:1:NaN:complex infinity: inf:1:NaN:complex infinity: NaN:1:NaN:undefined: # base = 2 -inf:2:inf:: -4:2:NaN:non-real and finite:(log(4)+i pi)/(log(2)) -2:2:NaN:non-real and finite:(log(2)+i pi)/(log(2)) -1:2:NaN:non-real and finite:(i pi)/(log(2)) -1/2:2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)) 0:2:-inf:: 1/2:2:-1:: 1:2:0:: 2:2:1:: 4:2:2:: 4:4:1:: inf:2:inf:: NaN:2:NaN:undefined: # base = 4 -inf:4:inf:: -4:4:NaN:non-real and finite:(log(4)+i pi)/(log(4)) -2:4:NaN:non-real and finite:(log(2)+i pi)/(log(4)) -1/2:4:NaN:non-real and finite:(-log(2)+i pi)/(log(4)) 0:4:-inf:: 1:4:0:: 1/2:4:-1/2:: 2:4:1/2:: 4:4:1:: inf:4:inf:: NaN:4:NaN:undefined: # base = inf -inf:inf:NaN:undefined: -4:inf:0:: -2:inf:0:: -1:inf:0:: -1/2:inf:0:: 0:inf:NaN:undefined: 1:inf:0:: 1/2:inf:0:: 2:inf:0:: 4:inf:0:: inf:inf:NaN:undefined: NaN:inf:NaN:undefined: # base is NaN -inf:NaN:NaN:undefined: -4:NaN:NaN:undefined: -2:NaN:NaN:undefined: -1:NaN:NaN:undefined: -1/2:NaN:NaN:undefined: 0:NaN:NaN:undefined: 1:NaN:NaN:undefined: 1/2:NaN:NaN:undefined: 2:NaN:NaN:undefined: 4:NaN:NaN:undefined: inf:NaN:NaN:undefined: NaN:NaN:NaN:undefined: Math-BigInt-2.005003/xt/author/blog-mbi.t0000644403072340010010000001457414536617517017600 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 97; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class) } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines # $in0 - the x value # $in1 - the base # $out0 - the wanted output value # $type - the type of the wanted number (real, non-real, ...) # $expr - mathematical expression of the wanted number my ($in0, $in1, $out0, $type, $expr) = split /:/; # Some of the test data use rational numbers. # - with Math::BigInt, we skip them # - with Math::BigFloat, we convert them to floats # - with Math::BigRat, we use them as they are next if ($in0 =~ m|/| || $in1 =~ m|/| || $out0 =~ m|/|); my ($x, $y); # input values as objects my ($yo); # copy of input value my ($got); # test output my $test = qq|\$x = $class -> new("$in0"); | . qq|\$y = $class -> new("$in1"); | . qq|\$yo = \$y -> copy(); | . qq|\$got = \$x -> blog(\$y);|; my $desc = "logarithm of $in0 to base $in1"; print("#\n", "# Now about to execute the following test.\n", "#\n", "# $test\n", "#\n"); if ($in0 ne 'NaN' && $in1 ne 'NaN') { print("# Enter log($in1, $in0) into Wolfram Alpha", " (http://www.wolframalpha.com/), and it says that the result", " is ", length($type) ? $type : "real", length($expr) ? ": $expr" : "", ".", "\n", "#\n"); } eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 5; # Check output. is(ref($got), $class, "output arg is a $class"); is($got, $out0, 'output arg has the right value'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($got), refaddr($x), 'output arg is the invocand'); } # The second argument (if the invocand is the first) shall *not* be # modified. is(ref($y), $class, "second input arg is still a $class"); is_deeply($y, $yo, 'second input arg is unmodified'); }; } __END__ # base = -inf -inf:-inf:NaN:undefined: -4:-inf:0:: -2:-inf:0:: -1:-inf:0:: -1/2:-inf:0:: 0:-inf:NaN:undefined: 1/2:-inf:0:: 1:-inf:0:: 2:-inf:0:: 4:-inf:0:: inf:-inf:NaN:undefined: NaN:-inf:NaN:undefined: # base = -4 -4:-4:1:: -2:-4:NaN:non-real and finite:(log(2)+i pi)/(log(4)+i pi) 0:-4:NaN:non-real (directed) infinity:(-sqrt(pi^2+log^2(4))/(log(4)+i pi))infinity 1/2:-4:NaN:non-real and finite:-(log(2))/(log(4)+i pi) 1:-4:0:: 2:-4:NaN:non-real and finite:(log(2))/(log(4)+i pi) 4:-4:NaN:non-real and finite:(log(4))/(log(4)+i pi) NaN:-4:NaN:undefined: # base = -2 -inf:-2:NaN:non-real (directed) infinity:sqrt(pi^2+log^2(2))/(log(2)+i pi)infinity -4:-2:NaN:non-real and finite:(log(4)+i pi)/(log(2)+i pi) -2:-2:1:: -1:-2:NaN:non-real and finite:(i pi)/(log(2)+i pi) -1/2:-2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)+i pi) 0:-2:NaN:complex infinity: 1/2:-2:NaN:non-real and finite:-(log(2))/(log(2)+i pi) 1:-2:0:: 2:-2:NaN:non-real and finite:(log(2))/(log(2)+i pi) 4:-2:NaN:non-real and finite:(log(4))/(log(2)+i pi) inf:-2:NaN:non-real (directed) infinity: NaN:-2:NaN:undefined: # base = -1 -inf:-1:NaN:non-real (directed) infinity: -4:-1:NaN:non-real and finite:-(i (log(4)+i pi))/pi -2:-1:NaN:non-real and finite:-(i (log(2)+i pi))/pi -1:-1:1:: -1/2:-1:NaN:non-real and finite:-(i (-log(2)+i pi))/pi 0:-1:NaN:complex infinity: 1:-1:0:: 1/2:-1:NaN:non-real and finite:(i log(2))/pi 2:-1:NaN:non-real and finite:-(i log(2))/pi 4:-1:NaN:non-real and finite:-(i log(4))/pi inf:-1:NaN:non-real (directed) infinity: NaN:-1:NaN:undefined: # base = -1/2 -inf:-1/2:NaN:non-real (directed) infinity: -4:-1/2:NaN:non-real and finite:(log(4)+i pi)/(-log(2)+i pi) -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:-1/2:NaN:non-real and finite:(i pi)/(-log(2)+i pi) -1/2:-1/2:1:: 0:-1/2:NaN:complex infinity: 1:-1/2:0:: 1/2:-1/2:NaN:non-real and finite:-(log(2))/(-log(2)+i pi) 2:-1/2:NaN:non-real and finite:(log(2))/(-log(2)+i pi) 4:-1/2:NaN:non-real and finite:(log(4))/(-log(2)+i pi) inf:-1/2:NaN:non-real (directed) infinity: NaN:-1/2:NaN:undefined: # base = 0 -inf:0:NaN:undefined: -4:0:0:: -2:0:0:: -1:0:0:: -1/2:0:0:: 0:0:NaN:undefined: 1/2:0:0:: 1:0:0:: 2:0:0:: 4:0:0:: inf:0:NaN:undefined: NaN:0:NaN:undefined: # base = 1/2 -inf:1/2:-inf:: -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:1/2:NaN:non-real and finite:-(i pi)/(log(2)) -1/2:1/2:NaN:non-real and finite:-(-log(2)+i pi)/(log(2)) 0:1/2:inf:: 1/2:1/2:1:: 1:1/2:0:: 2:1/2:-1:: inf:1/2:-inf:: NaN:1/2:NaN:undefined: # base = 1 -inf:1:NaN:complex infinity: -4:1:NaN:complex infinity: -2:1:NaN:complex infinity: -1:1:NaN:complex infinity: -1/2:1:NaN:complex infinity: 0:1:NaN:complex infinity: 1/2:1:NaN:complex infinity: 1:1:NaN:undefined: 2:1:NaN:complex infinity: 4:1:NaN:complex infinity: inf:1:NaN:complex infinity: NaN:1:NaN:undefined: # base = 2 -inf:2:inf:: -4:2:NaN:non-real and finite:(log(4)+i pi)/(log(2)) -2:2:NaN:non-real and finite:(log(2)+i pi)/(log(2)) -1:2:NaN:non-real and finite:(i pi)/(log(2)) -1/2:2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)) 0:2:-inf:: 1/2:2:-1:: 1:2:0:: 2:2:1:: 4:2:2:: 4:4:1:: inf:2:inf:: NaN:2:NaN:undefined: # base = 4 -inf:4:inf:: -4:4:NaN:non-real and finite:(log(4)+i pi)/(log(4)) -2:4:NaN:non-real and finite:(log(2)+i pi)/(log(4)) -1/2:4:NaN:non-real and finite:(-log(2)+i pi)/(log(4)) 0:4:-inf:: 1:4:0:: 1/2:4:-1/2:: 2:4:1/2:: 4:4:1:: inf:4:inf:: NaN:4:NaN:undefined: # base = inf -inf:inf:NaN:undefined: -4:inf:0:: -2:inf:0:: -1:inf:0:: -1/2:inf:0:: 0:inf:NaN:undefined: 1:inf:0:: 1/2:inf:0:: 2:inf:0:: 4:inf:0:: inf:inf:NaN:undefined: NaN:inf:NaN:undefined: # base is NaN -inf:NaN:NaN:undefined: -4:NaN:NaN:undefined: -2:NaN:NaN:undefined: -1:NaN:NaN:undefined: -1/2:NaN:NaN:undefined: 0:NaN:NaN:undefined: 1:NaN:NaN:undefined: 1/2:NaN:NaN:undefined: 2:NaN:NaN:undefined: 4:NaN:NaN:undefined: inf:NaN:NaN:undefined: NaN:NaN:NaN:undefined: Math-BigInt-2.005003/xt/author/blog-mbr.t0000644403072340010010000001364114546553333017577 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 139; use Scalar::Util qw< refaddr >; my $class; BEGIN { $class = 'Math::BigRat'; } BEGIN { use_ok($class) } while () { s/\s+\z//; next if /^#/ || ! /\S/; # $in0 - the x value # $in1 - the base # $out0 - the wanted output value # $type - the type of the wanted number (real, non-real, ...) # $expr - mathematical expression of the wanted number my ($in0, $in1, $out0, $type, $expr) = split /:/; # Some of the test data use rational numbers. # - with Math::BigInt, we skip them # - with Math::BigFloat, we convert them to floats # - with Math::BigRat, we use them as they are my ($x, $y); # input values as objects my ($yo); # copy of input value my ($got); # test output my $test = qq|\$x = $class -> new("$in0"); | . qq|\$y = $class -> new("$in1"); | . qq|\$yo = \$y -> copy(); | . qq|\$got = \$x -> blog(\$y);|; my $desc = "logarithm of $in0 to base $in1"; print("#\n", "# Now about to execute the following test.\n", "#\n", "# $test\n", "#\n"); if ($in0 ne 'NaN' && $in1 ne 'NaN') { print("# Enter log($in1, $in0) into Wolfram Alpha", " (http://www.wolframalpha.com/), and it says that the result", " is ", length($type) ? $type : "real", length($expr) ? ": $expr" : "", ".", "\n", "#\n"); } eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 5, # Check output. is(ref($got), $class, "output arg is a $class"); is($got, $out0, 'output arg has the right value'); is(refaddr($got), refaddr($x), 'output arg is the invocand'); # The second argument (if the invocand is the first) shall *not* be # modified. is(ref($y), $class, "second input arg is still a $class"); is_deeply($y, $yo, 'second output arg is unmodified'); }; } __END__ # base = -inf -inf:-inf:NaN:undefined: -4:-inf:0:: -2:-inf:0:: -1:-inf:0:: -1/2:-inf:0:: 0:-inf:NaN:undefined: 1/2:-inf:0:: 1:-inf:0:: 2:-inf:0:: 4:-inf:0:: inf:-inf:NaN:undefined: NaN:-inf:NaN:undefined: # base = -4 -4:-4:1:: -2:-4:NaN:non-real and finite:(log(2)+i pi)/(log(4)+i pi) 0:-4:NaN:non-real (directed) infinity:(-sqrt(pi^2+log^2(4))/(log(4)+i pi))infinity 1/2:-4:NaN:non-real and finite:-(log(2))/(log(4)+i pi) 1:-4:0:: 2:-4:NaN:non-real and finite:(log(2))/(log(4)+i pi) 4:-4:NaN:non-real and finite:(log(4))/(log(4)+i pi) NaN:-4:NaN:undefined: # base = -2 -inf:-2:NaN:non-real (directed) infinity:sqrt(pi^2+log^2(2))/(log(2)+i pi)infinity -4:-2:NaN:non-real and finite:(log(4)+i pi)/(log(2)+i pi) -2:-2:1:: -1:-2:NaN:non-real and finite:(i pi)/(log(2)+i pi) -1/2:-2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)+i pi) 0:-2:NaN:complex infinity: 1/2:-2:NaN:non-real and finite:-(log(2))/(log(2)+i pi) 1:-2:0:: 2:-2:NaN:non-real and finite:(log(2))/(log(2)+i pi) 4:-2:NaN:non-real and finite:(log(4))/(log(2)+i pi) inf:-2:NaN:non-real (directed) infinity: NaN:-2:NaN:undefined: # base = -1 -inf:-1:NaN:non-real (directed) infinity: -4:-1:NaN:non-real and finite:-(i (log(4)+i pi))/pi -2:-1:NaN:non-real and finite:-(i (log(2)+i pi))/pi -1:-1:1:: -1/2:-1:NaN:non-real and finite:-(i (-log(2)+i pi))/pi 0:-1:NaN:complex infinity: 1:-1:0:: 1/2:-1:NaN:non-real and finite:(i log(2))/pi 2:-1:NaN:non-real and finite:-(i log(2))/pi 4:-1:NaN:non-real and finite:-(i log(4))/pi inf:-1:NaN:non-real (directed) infinity: NaN:-1:NaN:undefined: # base = -1/2 -inf:-1/2:NaN:non-real (directed) infinity: -4:-1/2:NaN:non-real and finite:(log(4)+i pi)/(-log(2)+i pi) -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:-1/2:NaN:non-real and finite:(i pi)/(-log(2)+i pi) -1/2:-1/2:1:: 0:-1/2:NaN:complex infinity: 1:-1/2:0:: 1/2:-1/2:NaN:non-real and finite:-(log(2))/(-log(2)+i pi) 2:-1/2:NaN:non-real and finite:(log(2))/(-log(2)+i pi) 4:-1/2:NaN:non-real and finite:(log(4))/(-log(2)+i pi) inf:-1/2:NaN:non-real (directed) infinity: NaN:-1/2:NaN:undefined: # base = 0 -inf:0:NaN:undefined: -4:0:0:: -2:0:0:: -1:0:0:: -1/2:0:0:: 0:0:NaN:undefined: 1/2:0:0:: 1:0:0:: 2:0:0:: 4:0:0:: inf:0:NaN:undefined: NaN:0:NaN:undefined: # base = 1/2 -inf:1/2:-inf:: -2:-1/2:NaN:non-real and finite:(log(2)+i pi)/(-log(2)+i pi) -1:1/2:NaN:non-real and finite:-(i pi)/(log(2)) -1/2:1/2:NaN:non-real and finite:-(-log(2)+i pi)/(log(2)) 0:1/2:inf:: 1/2:1/2:1:: 1:1/2:0:: 2:1/2:-1:: inf:1/2:-inf:: NaN:1/2:NaN:undefined: # base = 1 -inf:1:NaN:complex infinity: -4:1:NaN:complex infinity: -2:1:NaN:complex infinity: -1:1:NaN:complex infinity: -1/2:1:NaN:complex infinity: 0:1:NaN:complex infinity: 1/2:1:NaN:complex infinity: 1:1:NaN:undefined: 2:1:NaN:complex infinity: 4:1:NaN:complex infinity: inf:1:NaN:complex infinity: NaN:1:NaN:undefined: # base = 2 -inf:2:inf:: -4:2:NaN:non-real and finite:(log(4)+i pi)/(log(2)) -2:2:NaN:non-real and finite:(log(2)+i pi)/(log(2)) -1:2:NaN:non-real and finite:(i pi)/(log(2)) -1/2:2:NaN:non-real and finite:(-log(2)+i pi)/(log(2)) 0:2:-inf:: 1/2:2:-1:: 1:2:0:: 2:2:1:: 4:2:2:: 4:4:1:: inf:2:inf:: NaN:2:NaN:undefined: # base = 4 -inf:4:inf:: -4:4:NaN:non-real and finite:(log(4)+i pi)/(log(4)) -2:4:NaN:non-real and finite:(log(2)+i pi)/(log(4)) -1/2:4:NaN:non-real and finite:(-log(2)+i pi)/(log(4)) 0:4:-inf:: 1:4:0:: 1/2:4:-1/2:: 2:4:1/2:: 4:4:1:: inf:4:inf:: NaN:4:NaN:undefined: # base = inf -inf:inf:NaN:undefined: -4:inf:0:: -2:inf:0:: -1:inf:0:: -1/2:inf:0:: 0:inf:NaN:undefined: 1:inf:0:: 1/2:inf:0:: 2:inf:0:: 4:inf:0:: inf:inf:NaN:undefined: NaN:inf:NaN:undefined: # base is NaN -inf:NaN:NaN:undefined: -4:NaN:NaN:undefined: -2:NaN:NaN:undefined: -1:NaN:NaN:undefined: -1/2:NaN:NaN:undefined: 0:NaN:NaN:undefined: 1:NaN:NaN:undefined: 1/2:NaN:NaN:undefined: 2:NaN:NaN:undefined: 4:NaN:NaN:undefined: inf:NaN:NaN:undefined: NaN:NaN:NaN:undefined: Math-BigInt-2.005003/xt/author/blsft-mbi.t0000644403072340010010000000400414537274604017747 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; use Test::More; my @x = (-20 .. 20); my @y = ( 0 .. 10); my @b = (-10 .. 10); my $cls = "Math::BigInt"; @x = ("-inf", @x, "inf", "NaN"); @y = ("-inf", @y, "inf", "NaN"); @b = ("-inf", @b, "inf", "NaN"); # Math::BigInt -> blsft($x, $y, $b) for my $b (@b) { for my $x (@x) { for my $y (@y) { note "\n"; note "\$z = $cls -> blsft(", ($x =~ /inf|nan/i ? qq|"$x"| : $x), ", ", ($y =~ /inf|nan/i ? qq|"$y"| : $y), ", ", ($b =~ /inf|nan/i ? qq|"$b"| : $b), ");"; note "\n"; my $zobj = eval { $cls -> blsft($x, $y, $b) }; is($@, '', "eval succeeded"); my $want = $y > 0 ? $cls -> new($x) -> bmul($cls -> new($b) -> bpow($y)) : $cls -> new($x) -> bdiv($cls -> new($b) -> bpow(-$y)); is(ref($zobj), $cls, "output class is $cls"); is($zobj, $want, "output value is $want"); } } } # Math::BigInt -> new($x) -> blsft($y, $b) for my $b (@b) { for my $x (@x) { for my $y (@y) { note "\n"; note "\$x = $cls -> new(", ($x =~ /inf|nan/i ? qq|"$x"| : $x), "); \$z = \$x -> blsft(", ($y =~ /inf|nan/i ? qq|"$y"| : $y), ", ", ($b =~ /inf|nan/i ? qq|"$b"| : $b), ");"; note "\n"; my $xobj = $cls -> new($x); my $zobj = eval { $xobj -> blsft($y, $b) }; is($@, '', "eval succeeded"); my $want = $y > 0 ? $cls -> new($x) -> bmul($cls -> new($b) -> bpow($y)) : $cls -> new($x) -> bdiv($cls -> new($b) -> bpow(-$y)); is(ref($zobj), $cls, "output class is $cls"); is($zobj, $want, "output value is $want"); is($xobj, $want, "invocand value $xobj is the output"); } } } done_testing(); Math-BigInt-2.005003/xt/author/blt-mbf.t0000644403072340010010000000421514537274604017417 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigFloat; note("blt() as a class method"); is(Math::BigFloat -> blt(5, 7), 1, "Math::BigFloat -> blt(5, 7)"); is(Math::BigFloat -> blt(5, 5), "", "Math::BigFloat -> blt(5, 5)"); is(Math::BigFloat -> blt(7, 5), "", "Math::BigFloat -> blt(7, 5)"); is(Math::BigFloat -> blt(Math::BigFloat -> new(5), 7), 1, "Math::BigFloat -> blt(Math::BigFloat -> new(5), 7)"); is(Math::BigFloat -> blt(Math::BigFloat -> new(5), 5), "", "Math::BigFloat -> blt(Math::BigFloat -> new(5), 5)"); is(Math::BigFloat -> blt(Math::BigFloat -> new(7), 5), "", "Math::BigFloat -> blt(Math::BigFloat -> new(7), 5)"); is(Math::BigFloat -> blt(5, Math::BigFloat -> new(7)), 1, "Math::BigFloat -> blt(5, Math::BigFloat -> new(7))"); is(Math::BigFloat -> blt(5, Math::BigFloat -> new(5)), "", "Math::BigFloat -> blt(5, Math::BigFloat -> new(5))"); is(Math::BigFloat -> blt(7, Math::BigFloat -> new(5)), "", "Math::BigFloat -> blt(7, Math::BigFloat -> new(5))"); is(Math::BigFloat -> blt(Math::BigFloat -> new(5), Math::BigFloat -> new(7)), 1, "Math::BigFloat -> blt(5, Math::BigFloat -> new(7))"); is(Math::BigFloat -> blt(Math::BigFloat -> new(5), Math::BigFloat -> new(5)), "", "Math::BigFloat -> blt(Math::BigFloat -> new(5), Math::BigFloat -> new(5))"); is(Math::BigFloat -> blt(Math::BigFloat -> new(7), Math::BigFloat -> new(5)), "", "Math::BigFloat -> blt(7, Math::BigFloat -> new(5))"); note("blt() as an instance method"); is(Math::BigFloat -> new(5) -> blt(7), 1, "Math::BigFloat -> new(5) -> blt(7)"); is(Math::BigFloat -> new(5) -> blt(5), "", "Math::BigFloat -> new(5) -> blt(5)"); is(Math::BigFloat -> new(7) -> blt(5), "", "Math::BigFloat -> new(7) -> blt(5)"); is(Math::BigFloat -> new(5) -> blt(Math::BigFloat -> new(7)), 1, "Math::BigFloat -> new(5) -> blt(Math::BigFloat -> new(7))"); is(Math::BigFloat -> new(5) -> blt(Math::BigFloat -> new(5)), "", "Math::BigFloat -> new(5) -> blt(Math::BigFloat -> new(5))"); is(Math::BigFloat -> new(7) -> blt(Math::BigFloat -> new(5)), "", "Math::BigFloat -> new(7) -> blt(Math::BigFloat -> new(5))"); Math-BigInt-2.005003/xt/author/blt-mbi.t0000644403072340010010000000401314537274604017416 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigInt; note("blt() as a class method"); is(Math::BigInt -> blt(5, 7), 1, "Math::BigInt -> blt(5, 7)"); is(Math::BigInt -> blt(5, 5), "", "Math::BigInt -> blt(5, 5)"); is(Math::BigInt -> blt(7, 5), "", "Math::BigInt -> blt(7, 5)"); is(Math::BigInt -> blt(Math::BigInt -> new(5), 7), 1, "Math::BigInt -> blt(Math::BigInt -> new(5), 7)"); is(Math::BigInt -> blt(Math::BigInt -> new(5), 5), "", "Math::BigInt -> blt(Math::BigInt -> new(5), 5)"); is(Math::BigInt -> blt(Math::BigInt -> new(7), 5), "", "Math::BigInt -> blt(Math::BigInt -> new(7), 5)"); is(Math::BigInt -> blt(5, Math::BigInt -> new(7)), 1, "Math::BigInt -> blt(5, Math::BigInt -> new(7))"); is(Math::BigInt -> blt(5, Math::BigInt -> new(5)), "", "Math::BigInt -> blt(5, Math::BigInt -> new(5))"); is(Math::BigInt -> blt(7, Math::BigInt -> new(5)), "", "Math::BigInt -> blt(7, Math::BigInt -> new(5))"); is(Math::BigInt -> blt(Math::BigInt -> new(5), Math::BigInt -> new(7)), 1, "Math::BigInt -> blt(5, Math::BigInt -> new(7))"); is(Math::BigInt -> blt(Math::BigInt -> new(5), Math::BigInt -> new(5)), "", "Math::BigInt -> blt(Math::BigInt -> new(5), Math::BigInt -> new(5))"); is(Math::BigInt -> blt(Math::BigInt -> new(7), Math::BigInt -> new(5)), "", "Math::BigInt -> blt(7, Math::BigInt -> new(5))"); note("blt() as an instance method"); is(Math::BigInt -> new(5) -> blt(7), 1, "Math::BigInt -> new(5) -> blt(7)"); is(Math::BigInt -> new(5) -> blt(5), "", "Math::BigInt -> new(5) -> blt(5)"); is(Math::BigInt -> new(7) -> blt(5), "", "Math::BigInt -> new(7) -> blt(5)"); is(Math::BigInt -> new(5) -> blt(Math::BigInt -> new(7)), 1, "Math::BigInt -> new(5) -> blt(Math::BigInt -> new(7))"); is(Math::BigInt -> new(5) -> blt(Math::BigInt -> new(5)), "", "Math::BigInt -> new(5) -> blt(Math::BigInt -> new(5))"); is(Math::BigInt -> new(7) -> blt(Math::BigInt -> new(5)), "", "Math::BigInt -> new(7) -> blt(Math::BigInt -> new(5))"); Math-BigInt-2.005003/xt/author/blucas-mbf.t0000644403072340010010000000374114760274347020114 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigFloat"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-15127" ], [ "-15", "1364" ], [ "-2", "-3" ], [ "-1", "1" ], [ "0", "2" ], [ "1", "1" ], [ "2", "3" ], [ "15", "1364" ], [ "20", "15127" ], [ "250", "17656721319717734662791328845675730903632844218828123" ], [ "+inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # blucas() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> blucas();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # blucas() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> blucas("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123) [0 .. $k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123) [0 .. -$k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/blucas-mbi.t0000644403072340010010000000373714760256445020123 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigInt"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-15127" ], [ "-15", "1364" ], [ "-2", "-3" ], [ "-1", "1" ], [ "0", "2" ], [ "1", "1" ], [ "2", "3" ], [ "15", "1364" ], [ "20", "15127" ], [ "250", "17656721319717734662791328845675730903632844218828123" ], [ "+inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # blucas() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> blucas();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # blucas() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> blucas("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123) [0 .. $k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123) [0 .. -$k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/blucas-mbr.t0000644403072340010010000000373714760271125020124 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 74; my $class = "Math::BigRat"; use_ok($class); my $x; ############################################################################### # Scalar context. ############################################################################### my $y; my $cases = [ [ "-20", "-15127" ], [ "-15", "1364" ], [ "-2", "-3" ], [ "-1", "1" ], [ "0", "2" ], [ "1", "1" ], [ "2", "3" ], [ "15", "1364" ], [ "20", "15127" ], [ "250", "17656721319717734662791328845675730903632844218828123" ], [ "+inf", "inf" ], [ "-inf", "NaN" ], [ "NaN", "NaN" ], ]; # blucas() as instance method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$x = $class -> new("$in"); \$y = \$x -> blucas();|; note "\n$test\n\n"; my ($x, $y); eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } # blucas() as class method for my $case (@$cases) { my ($in, $want) = @$case; my $test = qq|\$y = $class -> blucas("$in");|; note "\n$test\n\n"; my $y; eval $test; die $@ if $@; is(ref($y), $class, "output class is $class"); is($y, $want, "output value is $want"); } ############################################################################### # List context. ############################################################################### for (my $k = 0 ; $k <= 10 ; $k++) { my $want = [ (2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123) [0 .. $k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } for (my $k = -1 ; $k >= -10 ; $k--) { my $want = [ (2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123) [0 .. -$k] ]; my $test = qq|\@y = $class -> blucas("$k");|; note "\n$test\n\n"; my @y; eval $test; die $@ if $@; is_deeply(\@y, $want, "output values"); } Math-BigInt-2.005003/xt/author/bmfac-mbf.t0000644403072340010010000001654114757633615017720 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 815; my $class = "Math::BigFloat"; use_ok($class); note("bmfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $y, $want) = split; # bmfac() as an instance method { my $z; my $test = qq|\$z = $class -> new("$x") -> bmfac("$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a class method { my $z; my $test = qq|\$z = $class -> bmfac("$x", "$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a function does not work, since objectify() converts the # scalar to a Math::BigInt, which is the name of the package in which # objectify() is defined. # { # my $z; # my $test = qq|\$z = $ {class}::bmfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigFloat -1.5 1 NaN -0.5 1 NaN 1.5 1 NaN 2.5 1 NaN 1 -1.5 NaN 1 -0.5 NaN 1 1.5 NaN 1 2.5 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -inf 1 NaN -inf -inf NaN 1 -inf NaN 1 inf 1 5 inf 5 50 inf 50 inf inf inf -5 -1 NaN -5 0 NaN -5 1 NaN -5 2 NaN -5 3 NaN -5 4 NaN -5 5 NaN -4 -1 NaN -4 0 NaN -4 1 NaN -4 2 NaN -4 3 NaN -4 4 NaN -4 5 1 -3 -1 NaN -3 0 NaN -3 1 NaN -3 2 NaN -3 3 NaN -3 4 1 -3 5 1 -2 -1 NaN -2 0 NaN -2 1 NaN -2 2 NaN -2 3 1 -2 4 1 -2 5 1 -1 -1 NaN -1 0 NaN -1 1 NaN -1 2 1 -1 3 1 -1 4 1 -1 5 1 0 -1 NaN 0 0 NaN 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 1 -1 NaN 1 0 NaN 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 2 -1 NaN 2 0 NaN 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2 3 -1 NaN 3 0 NaN 3 1 6 3 2 3 3 3 3 3 4 3 3 5 3 4 -1 NaN 4 0 NaN 4 1 24 4 2 8 4 3 4 4 4 4 4 5 4 5 -1 NaN 5 0 NaN 5 1 120 5 2 15 5 3 10 5 4 5 5 5 5 6 -1 NaN 6 0 NaN 6 1 720 6 2 48 6 3 18 6 4 12 6 5 6 7 -1 NaN 7 0 NaN 7 1 5040 7 2 105 7 3 28 7 4 21 7 5 14 8 -1 NaN 8 0 NaN 8 1 40320 8 2 384 8 3 80 8 4 32 8 5 24 9 -1 NaN 9 0 NaN 9 1 362880 9 2 945 9 3 162 9 4 45 9 5 36 10 -1 NaN 10 0 NaN 10 1 3628800 10 2 3840 10 3 280 10 4 120 10 5 50 11 -1 NaN 11 0 NaN 11 1 39916800 11 2 10395 11 3 880 11 4 231 11 5 66 12 -1 NaN 12 0 NaN 12 1 479001600 12 2 46080 12 3 1944 12 4 384 12 5 168 13 -1 NaN 13 0 NaN 13 1 6227020800 13 2 135135 13 3 3640 13 4 585 13 5 312 14 -1 NaN 14 0 NaN 14 1 87178291200 14 2 645120 14 3 12320 14 4 1680 14 5 504 15 -1 NaN 15 0 NaN 15 1 1307674368000 15 2 2027025 15 3 29160 15 4 3465 15 5 750 16 -1 NaN 16 0 NaN 16 1 20922789888000 16 2 10321920 16 3 58240 16 4 6144 16 5 1056 17 -1 NaN 17 0 NaN 17 1 355687428096000 17 2 34459425 17 3 209440 17 4 9945 17 5 2856 18 -1 NaN 18 0 NaN 18 1 6402373705728000 18 2 185794560 18 3 524880 18 4 30240 18 5 5616 19 -1 NaN 19 0 NaN 19 1 121645100408832000 19 2 654729075 19 3 1106560 19 4 65835 19 5 9576 20 -1 NaN 20 0 NaN 20 1 2432902008176640000 20 2 3715891200 20 3 4188800 20 4 122880 20 5 15000 21 -1 NaN 21 0 NaN 21 1 51090942171709440000 21 2 13749310575 21 3 11022480 21 4 208845 21 5 22176 22 -1 NaN 22 0 NaN 22 1 1124000727777607680000 22 2 81749606400 22 3 24344320 22 4 665280 22 5 62832 23 -1 NaN 23 0 NaN 23 1 25852016738884976640000 23 2 316234143225 23 3 96342400 23 4 1514205 23 5 129168 24 -1 NaN 24 0 NaN 24 1 620448401733239439360000 24 2 1961990553600 24 3 264539520 24 4 2949120 24 5 229824 25 -1 NaN 25 0 NaN 25 1 15511210043330985984000000 25 2 7905853580625 25 3 608608000 25 4 5221125 25 5 375000 26 -1 NaN 26 0 NaN 26 1 403291461126605635584000000 26 2 51011754393600 26 3 2504902400 26 4 17297280 26 5 576576 27 -1 NaN 27 0 NaN 27 1 10888869450418352160768000000 27 2 213458046676875 27 3 7142567040 27 4 40883535 27 5 1696464 28 -1 NaN 28 0 NaN 28 1 304888344611713860501504000000 28 2 1428329123020800 28 3 17041024000 28 4 82575360 28 5 3616704 29 -1 NaN 29 0 NaN 29 1 8841761993739701954543616000000 29 2 6190283353629375 29 3 72642169600 29 4 151412625 29 5 6664896 30 -1 NaN 30 0 NaN 30 1 265252859812191058636308480000000 30 2 42849873690624000 30 3 214277011200 30 4 518918400 30 5 11250000 31 -1 NaN 31 0 NaN 31 1 8222838654177922817725562880000000 31 2 191898783962510625 31 3 528271744000 31 4 1267389585 31 5 17873856 32 -1 NaN 32 0 NaN 32 1 263130836933693530167218012160000000 32 2 1371195958099968000 32 3 2324549427200 32 4 2642411520 32 5 54286848 33 -1 NaN 33 0 NaN 33 1 8683317618811886495518194401280000000 33 2 6332659870762850625 33 3 7071141369600 33 4 4996616625 33 5 119351232 34 -1 NaN 34 0 NaN 34 1 295232799039604140847618609643520000000 34 2 46620662575398912000 34 3 17961239296000 34 4 17643225600 34 5 226606464 35 -1 NaN 35 0 NaN 35 1 10333147966386144929666651337523200000000 35 2 221643095476699771875 35 3 81359229952000 35 4 44358635475 35 5 393750000 36 -1 NaN 36 0 NaN 36 1 371993326789901217467999448150835200000000 36 2 1678343852714360832000 36 3 254561089305600 36 4 95126814720 36 5 643458816 37 -1 NaN 37 0 NaN 37 1 13763753091226345046315979581580902400000000 37 2 8200794532637891559375 37 3 664565853952000 37 4 184874815125 37 5 2008613376 38 -1 NaN 38 0 NaN 38 1 523022617466601111760007224100074291200000000 38 2 63777066403145711616000 38 3 3091650738176000 38 4 670442572800 38 5 4535346816 39 -1 NaN 39 0 NaN 39 1 20397882081197443358640281739902897356800000000 39 2 319830986772877770815625 39 3 9927882482918400 39 4 1729986783525 39 5 8837652096 40 -1 NaN 40 0 NaN 40 1 815915283247897734345611269596115894272000000000 40 2 2551082656125828464640000 40 3 26582634158080000 40 4 3805072588800 40 5 15750000000 41 -1 NaN 41 0 NaN 41 1 33452526613163807108170062053440751665152000000000 41 2 13113070457687988603440625 41 3 126757680265216000 41 4 7579867420125 41 5 26381811456 42 -1 NaN 42 0 NaN 42 1 1405006117752879898543142606244511569936384000000000 42 2 107145471557284795514880000 42 3 416971064282572800 42 4 28158588057600 42 5 84361761792 43 -1 NaN 43 0 NaN 43 1 60415263063373835637355132068513997507264512000000000 43 2 563862029680583509947946875 43 3 1143053268797440000 43 4 74389431691575 43 5 195019913088 44 -1 NaN 44 0 NaN 44 1 2658271574788448768043625811014615890319638528000000000 44 2 4714400748520531002654720000 44 3 5577337931669504000 44 4 167423193907200 44 5 388856692224 45 -1 NaN 45 0 NaN 45 1 119622220865480194561963161495657715064383733760000000000 45 2 25373791335626257947657609375 45 3 18763697892715776000 45 4 341094033905625 45 5 708750000000 46 -1 NaN 46 0 NaN 46 1 5502622159812088949850305428800254892961651752960000000000 46 2 216862434431944426122117120000 46 3 52580450364682240000 46 4 1295295050649600 46 5 1213563326976 47 -1 NaN 47 0 NaN 47 1 258623241511168180642964355153611979969197632389120000000000 47 2 1192568192774434123539907640625 47 3 262134882788466688000 47 4 3496303289504025 47 5 3965002804224 48 -1 NaN 48 0 NaN 48 1 12413915592536072670862289047373375038521486354677760000000000 48 2 10409396852733332453861621760000 48 3 900657498850357248000 48 4 8036313307545600 48 5 9360955828224 49 -1 NaN 49 0 NaN 49 1 608281864034267560872252163321295376887552831379210240000000000 49 2 58435841445947272053455474390625 49 3 2576442067869429760000 49 4 16713607661375625 49 5 19053977918976 50 -1 NaN 50 0 NaN 50 1 30414093201713378043612608166064768844377641568960512000000000000 50 2 520469842636666622693081088000000 50 3 13106744139423334400000 50 4 64764752532480000 50 5 35437500000000 Math-BigInt-2.005003/xt/author/bmfac-mbi.t0000644403072340010010000001612114757632776017724 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1198; my $class = "Math::BigInt"; use_ok($class); note("bmfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $y, $want) = split; # bmfac() as an instance method { my $z; my $test = qq|\$z = $class -> new("$x") -> bmfac("$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a class method { my $z; my $test = qq|\$z = $class -> bmfac("$x", "$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a function { my $z; my $test = qq|\$z = $ {class}::bmfac("$x", "$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } } __DATA__ # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -inf 1 NaN -inf -inf NaN 1 -inf NaN 1 inf 1 5 inf 5 50 inf 50 inf inf inf -5 -1 NaN -5 0 NaN -5 1 NaN -5 2 NaN -5 3 NaN -5 4 NaN -5 5 NaN -4 -1 NaN -4 0 NaN -4 1 NaN -4 2 NaN -4 3 NaN -4 4 NaN -4 5 1 -3 -1 NaN -3 0 NaN -3 1 NaN -3 2 NaN -3 3 NaN -3 4 1 -3 5 1 -2 -1 NaN -2 0 NaN -2 1 NaN -2 2 NaN -2 3 1 -2 4 1 -2 5 1 -1 -1 NaN -1 0 NaN -1 1 NaN -1 2 1 -1 3 1 -1 4 1 -1 5 1 0 -1 NaN 0 0 NaN 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 1 -1 NaN 1 0 NaN 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 2 -1 NaN 2 0 NaN 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2 3 -1 NaN 3 0 NaN 3 1 6 3 2 3 3 3 3 3 4 3 3 5 3 4 -1 NaN 4 0 NaN 4 1 24 4 2 8 4 3 4 4 4 4 4 5 4 5 -1 NaN 5 0 NaN 5 1 120 5 2 15 5 3 10 5 4 5 5 5 5 6 -1 NaN 6 0 NaN 6 1 720 6 2 48 6 3 18 6 4 12 6 5 6 7 -1 NaN 7 0 NaN 7 1 5040 7 2 105 7 3 28 7 4 21 7 5 14 8 -1 NaN 8 0 NaN 8 1 40320 8 2 384 8 3 80 8 4 32 8 5 24 9 -1 NaN 9 0 NaN 9 1 362880 9 2 945 9 3 162 9 4 45 9 5 36 10 -1 NaN 10 0 NaN 10 1 3628800 10 2 3840 10 3 280 10 4 120 10 5 50 11 -1 NaN 11 0 NaN 11 1 39916800 11 2 10395 11 3 880 11 4 231 11 5 66 12 -1 NaN 12 0 NaN 12 1 479001600 12 2 46080 12 3 1944 12 4 384 12 5 168 13 -1 NaN 13 0 NaN 13 1 6227020800 13 2 135135 13 3 3640 13 4 585 13 5 312 14 -1 NaN 14 0 NaN 14 1 87178291200 14 2 645120 14 3 12320 14 4 1680 14 5 504 15 -1 NaN 15 0 NaN 15 1 1307674368000 15 2 2027025 15 3 29160 15 4 3465 15 5 750 16 -1 NaN 16 0 NaN 16 1 20922789888000 16 2 10321920 16 3 58240 16 4 6144 16 5 1056 17 -1 NaN 17 0 NaN 17 1 355687428096000 17 2 34459425 17 3 209440 17 4 9945 17 5 2856 18 -1 NaN 18 0 NaN 18 1 6402373705728000 18 2 185794560 18 3 524880 18 4 30240 18 5 5616 19 -1 NaN 19 0 NaN 19 1 121645100408832000 19 2 654729075 19 3 1106560 19 4 65835 19 5 9576 20 -1 NaN 20 0 NaN 20 1 2432902008176640000 20 2 3715891200 20 3 4188800 20 4 122880 20 5 15000 21 -1 NaN 21 0 NaN 21 1 51090942171709440000 21 2 13749310575 21 3 11022480 21 4 208845 21 5 22176 22 -1 NaN 22 0 NaN 22 1 1124000727777607680000 22 2 81749606400 22 3 24344320 22 4 665280 22 5 62832 23 -1 NaN 23 0 NaN 23 1 25852016738884976640000 23 2 316234143225 23 3 96342400 23 4 1514205 23 5 129168 24 -1 NaN 24 0 NaN 24 1 620448401733239439360000 24 2 1961990553600 24 3 264539520 24 4 2949120 24 5 229824 25 -1 NaN 25 0 NaN 25 1 15511210043330985984000000 25 2 7905853580625 25 3 608608000 25 4 5221125 25 5 375000 26 -1 NaN 26 0 NaN 26 1 403291461126605635584000000 26 2 51011754393600 26 3 2504902400 26 4 17297280 26 5 576576 27 -1 NaN 27 0 NaN 27 1 10888869450418352160768000000 27 2 213458046676875 27 3 7142567040 27 4 40883535 27 5 1696464 28 -1 NaN 28 0 NaN 28 1 304888344611713860501504000000 28 2 1428329123020800 28 3 17041024000 28 4 82575360 28 5 3616704 29 -1 NaN 29 0 NaN 29 1 8841761993739701954543616000000 29 2 6190283353629375 29 3 72642169600 29 4 151412625 29 5 6664896 30 -1 NaN 30 0 NaN 30 1 265252859812191058636308480000000 30 2 42849873690624000 30 3 214277011200 30 4 518918400 30 5 11250000 31 -1 NaN 31 0 NaN 31 1 8222838654177922817725562880000000 31 2 191898783962510625 31 3 528271744000 31 4 1267389585 31 5 17873856 32 -1 NaN 32 0 NaN 32 1 263130836933693530167218012160000000 32 2 1371195958099968000 32 3 2324549427200 32 4 2642411520 32 5 54286848 33 -1 NaN 33 0 NaN 33 1 8683317618811886495518194401280000000 33 2 6332659870762850625 33 3 7071141369600 33 4 4996616625 33 5 119351232 34 -1 NaN 34 0 NaN 34 1 295232799039604140847618609643520000000 34 2 46620662575398912000 34 3 17961239296000 34 4 17643225600 34 5 226606464 35 -1 NaN 35 0 NaN 35 1 10333147966386144929666651337523200000000 35 2 221643095476699771875 35 3 81359229952000 35 4 44358635475 35 5 393750000 36 -1 NaN 36 0 NaN 36 1 371993326789901217467999448150835200000000 36 2 1678343852714360832000 36 3 254561089305600 36 4 95126814720 36 5 643458816 37 -1 NaN 37 0 NaN 37 1 13763753091226345046315979581580902400000000 37 2 8200794532637891559375 37 3 664565853952000 37 4 184874815125 37 5 2008613376 38 -1 NaN 38 0 NaN 38 1 523022617466601111760007224100074291200000000 38 2 63777066403145711616000 38 3 3091650738176000 38 4 670442572800 38 5 4535346816 39 -1 NaN 39 0 NaN 39 1 20397882081197443358640281739902897356800000000 39 2 319830986772877770815625 39 3 9927882482918400 39 4 1729986783525 39 5 8837652096 40 -1 NaN 40 0 NaN 40 1 815915283247897734345611269596115894272000000000 40 2 2551082656125828464640000 40 3 26582634158080000 40 4 3805072588800 40 5 15750000000 41 -1 NaN 41 0 NaN 41 1 33452526613163807108170062053440751665152000000000 41 2 13113070457687988603440625 41 3 126757680265216000 41 4 7579867420125 41 5 26381811456 42 -1 NaN 42 0 NaN 42 1 1405006117752879898543142606244511569936384000000000 42 2 107145471557284795514880000 42 3 416971064282572800 42 4 28158588057600 42 5 84361761792 43 -1 NaN 43 0 NaN 43 1 60415263063373835637355132068513997507264512000000000 43 2 563862029680583509947946875 43 3 1143053268797440000 43 4 74389431691575 43 5 195019913088 44 -1 NaN 44 0 NaN 44 1 2658271574788448768043625811014615890319638528000000000 44 2 4714400748520531002654720000 44 3 5577337931669504000 44 4 167423193907200 44 5 388856692224 45 -1 NaN 45 0 NaN 45 1 119622220865480194561963161495657715064383733760000000000 45 2 25373791335626257947657609375 45 3 18763697892715776000 45 4 341094033905625 45 5 708750000000 46 -1 NaN 46 0 NaN 46 1 5502622159812088949850305428800254892961651752960000000000 46 2 216862434431944426122117120000 46 3 52580450364682240000 46 4 1295295050649600 46 5 1213563326976 47 -1 NaN 47 0 NaN 47 1 258623241511168180642964355153611979969197632389120000000000 47 2 1192568192774434123539907640625 47 3 262134882788466688000 47 4 3496303289504025 47 5 3965002804224 48 -1 NaN 48 0 NaN 48 1 12413915592536072670862289047373375038521486354677760000000000 48 2 10409396852733332453861621760000 48 3 900657498850357248000 48 4 8036313307545600 48 5 9360955828224 49 -1 NaN 49 0 NaN 49 1 608281864034267560872252163321295376887552831379210240000000000 49 2 58435841445947272053455474390625 49 3 2576442067869429760000 49 4 16713607661375625 49 5 19053977918976 50 -1 NaN 50 0 NaN 50 1 30414093201713378043612608166064768844377641568960512000000000000 50 2 520469842636666622693081088000000 50 3 13106744139423334400000 50 4 64764752532480000 50 5 35437500000000 Math-BigInt-2.005003/xt/author/bmfac-mbr.t0000644403072340010010000001653514757634560017737 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 815; my $class = "Math::BigRat"; use_ok($class); note("bmfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $y, $want) = split; # bmfac() as an instance method { my $z; my $test = qq|\$z = $class -> new("$x") -> bmfac("$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a class method { my $z; my $test = qq|\$z = $class -> bmfac("$x", "$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want); } # bmfac() as a function does not work, since objectify() converts the # scalar to a Math::BigInt, which is the name of the package in which # objectify() is defined. # { # my $z; # my $test = qq|\$z = $ {class}::bmfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigRat -3/2 1 NaN -1/2 1 NaN 3/2 1 NaN 5/2 1 NaN 1 -3/2 NaN 1 -1/2 NaN 1 3/2 NaN 1 5/2 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -inf 1 NaN -inf -inf NaN 1 -inf NaN 1 inf 1 5 inf 5 50 inf 50 inf inf inf -5 -1 NaN -5 0 NaN -5 1 NaN -5 2 NaN -5 3 NaN -5 4 NaN -5 5 NaN -4 -1 NaN -4 0 NaN -4 1 NaN -4 2 NaN -4 3 NaN -4 4 NaN -4 5 1 -3 -1 NaN -3 0 NaN -3 1 NaN -3 2 NaN -3 3 NaN -3 4 1 -3 5 1 -2 -1 NaN -2 0 NaN -2 1 NaN -2 2 NaN -2 3 1 -2 4 1 -2 5 1 -1 -1 NaN -1 0 NaN -1 1 NaN -1 2 1 -1 3 1 -1 4 1 -1 5 1 0 -1 NaN 0 0 NaN 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 1 -1 NaN 1 0 NaN 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 2 -1 NaN 2 0 NaN 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2 3 -1 NaN 3 0 NaN 3 1 6 3 2 3 3 3 3 3 4 3 3 5 3 4 -1 NaN 4 0 NaN 4 1 24 4 2 8 4 3 4 4 4 4 4 5 4 5 -1 NaN 5 0 NaN 5 1 120 5 2 15 5 3 10 5 4 5 5 5 5 6 -1 NaN 6 0 NaN 6 1 720 6 2 48 6 3 18 6 4 12 6 5 6 7 -1 NaN 7 0 NaN 7 1 5040 7 2 105 7 3 28 7 4 21 7 5 14 8 -1 NaN 8 0 NaN 8 1 40320 8 2 384 8 3 80 8 4 32 8 5 24 9 -1 NaN 9 0 NaN 9 1 362880 9 2 945 9 3 162 9 4 45 9 5 36 10 -1 NaN 10 0 NaN 10 1 3628800 10 2 3840 10 3 280 10 4 120 10 5 50 11 -1 NaN 11 0 NaN 11 1 39916800 11 2 10395 11 3 880 11 4 231 11 5 66 12 -1 NaN 12 0 NaN 12 1 479001600 12 2 46080 12 3 1944 12 4 384 12 5 168 13 -1 NaN 13 0 NaN 13 1 6227020800 13 2 135135 13 3 3640 13 4 585 13 5 312 14 -1 NaN 14 0 NaN 14 1 87178291200 14 2 645120 14 3 12320 14 4 1680 14 5 504 15 -1 NaN 15 0 NaN 15 1 1307674368000 15 2 2027025 15 3 29160 15 4 3465 15 5 750 16 -1 NaN 16 0 NaN 16 1 20922789888000 16 2 10321920 16 3 58240 16 4 6144 16 5 1056 17 -1 NaN 17 0 NaN 17 1 355687428096000 17 2 34459425 17 3 209440 17 4 9945 17 5 2856 18 -1 NaN 18 0 NaN 18 1 6402373705728000 18 2 185794560 18 3 524880 18 4 30240 18 5 5616 19 -1 NaN 19 0 NaN 19 1 121645100408832000 19 2 654729075 19 3 1106560 19 4 65835 19 5 9576 20 -1 NaN 20 0 NaN 20 1 2432902008176640000 20 2 3715891200 20 3 4188800 20 4 122880 20 5 15000 21 -1 NaN 21 0 NaN 21 1 51090942171709440000 21 2 13749310575 21 3 11022480 21 4 208845 21 5 22176 22 -1 NaN 22 0 NaN 22 1 1124000727777607680000 22 2 81749606400 22 3 24344320 22 4 665280 22 5 62832 23 -1 NaN 23 0 NaN 23 1 25852016738884976640000 23 2 316234143225 23 3 96342400 23 4 1514205 23 5 129168 24 -1 NaN 24 0 NaN 24 1 620448401733239439360000 24 2 1961990553600 24 3 264539520 24 4 2949120 24 5 229824 25 -1 NaN 25 0 NaN 25 1 15511210043330985984000000 25 2 7905853580625 25 3 608608000 25 4 5221125 25 5 375000 26 -1 NaN 26 0 NaN 26 1 403291461126605635584000000 26 2 51011754393600 26 3 2504902400 26 4 17297280 26 5 576576 27 -1 NaN 27 0 NaN 27 1 10888869450418352160768000000 27 2 213458046676875 27 3 7142567040 27 4 40883535 27 5 1696464 28 -1 NaN 28 0 NaN 28 1 304888344611713860501504000000 28 2 1428329123020800 28 3 17041024000 28 4 82575360 28 5 3616704 29 -1 NaN 29 0 NaN 29 1 8841761993739701954543616000000 29 2 6190283353629375 29 3 72642169600 29 4 151412625 29 5 6664896 30 -1 NaN 30 0 NaN 30 1 265252859812191058636308480000000 30 2 42849873690624000 30 3 214277011200 30 4 518918400 30 5 11250000 31 -1 NaN 31 0 NaN 31 1 8222838654177922817725562880000000 31 2 191898783962510625 31 3 528271744000 31 4 1267389585 31 5 17873856 32 -1 NaN 32 0 NaN 32 1 263130836933693530167218012160000000 32 2 1371195958099968000 32 3 2324549427200 32 4 2642411520 32 5 54286848 33 -1 NaN 33 0 NaN 33 1 8683317618811886495518194401280000000 33 2 6332659870762850625 33 3 7071141369600 33 4 4996616625 33 5 119351232 34 -1 NaN 34 0 NaN 34 1 295232799039604140847618609643520000000 34 2 46620662575398912000 34 3 17961239296000 34 4 17643225600 34 5 226606464 35 -1 NaN 35 0 NaN 35 1 10333147966386144929666651337523200000000 35 2 221643095476699771875 35 3 81359229952000 35 4 44358635475 35 5 393750000 36 -1 NaN 36 0 NaN 36 1 371993326789901217467999448150835200000000 36 2 1678343852714360832000 36 3 254561089305600 36 4 95126814720 36 5 643458816 37 -1 NaN 37 0 NaN 37 1 13763753091226345046315979581580902400000000 37 2 8200794532637891559375 37 3 664565853952000 37 4 184874815125 37 5 2008613376 38 -1 NaN 38 0 NaN 38 1 523022617466601111760007224100074291200000000 38 2 63777066403145711616000 38 3 3091650738176000 38 4 670442572800 38 5 4535346816 39 -1 NaN 39 0 NaN 39 1 20397882081197443358640281739902897356800000000 39 2 319830986772877770815625 39 3 9927882482918400 39 4 1729986783525 39 5 8837652096 40 -1 NaN 40 0 NaN 40 1 815915283247897734345611269596115894272000000000 40 2 2551082656125828464640000 40 3 26582634158080000 40 4 3805072588800 40 5 15750000000 41 -1 NaN 41 0 NaN 41 1 33452526613163807108170062053440751665152000000000 41 2 13113070457687988603440625 41 3 126757680265216000 41 4 7579867420125 41 5 26381811456 42 -1 NaN 42 0 NaN 42 1 1405006117752879898543142606244511569936384000000000 42 2 107145471557284795514880000 42 3 416971064282572800 42 4 28158588057600 42 5 84361761792 43 -1 NaN 43 0 NaN 43 1 60415263063373835637355132068513997507264512000000000 43 2 563862029680583509947946875 43 3 1143053268797440000 43 4 74389431691575 43 5 195019913088 44 -1 NaN 44 0 NaN 44 1 2658271574788448768043625811014615890319638528000000000 44 2 4714400748520531002654720000 44 3 5577337931669504000 44 4 167423193907200 44 5 388856692224 45 -1 NaN 45 0 NaN 45 1 119622220865480194561963161495657715064383733760000000000 45 2 25373791335626257947657609375 45 3 18763697892715776000 45 4 341094033905625 45 5 708750000000 46 -1 NaN 46 0 NaN 46 1 5502622159812088949850305428800254892961651752960000000000 46 2 216862434431944426122117120000 46 3 52580450364682240000 46 4 1295295050649600 46 5 1213563326976 47 -1 NaN 47 0 NaN 47 1 258623241511168180642964355153611979969197632389120000000000 47 2 1192568192774434123539907640625 47 3 262134882788466688000 47 4 3496303289504025 47 5 3965002804224 48 -1 NaN 48 0 NaN 48 1 12413915592536072670862289047373375038521486354677760000000000 48 2 10409396852733332453861621760000 48 3 900657498850357248000 48 4 8036313307545600 48 5 9360955828224 49 -1 NaN 49 0 NaN 49 1 608281864034267560872252163321295376887552831379210240000000000 49 2 58435841445947272053455474390625 49 3 2576442067869429760000 49 4 16713607661375625 49 5 19053977918976 50 -1 NaN 50 0 NaN 50 1 30414093201713378043612608166064768844377641568960512000000000000 50 2 520469842636666622693081088000000 50 3 13106744139423334400000 50 4 64764752532480000 50 5 35437500000000 Math-BigInt-2.005003/xt/author/bmodpow-mbf.t0000644403072340010010000000334014537274604020303 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("bmodpow() as a class method"); $x = Math::BigFloat -> bmodpow("5", "7", "11"); subtest '$x = Math::BigFloat -> bmodpow("5, "7", "11");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 3, '$x == 3'); }; note("bmodpow() as an instance method"); $x = Math::BigFloat -> new("5"); $y = $x -> bmodpow("7", "11"); subtest '$x = Math::BigFloat -> new("5"); $y = $x -> bmodpow("7", "11");' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 3, '$x == 3'); }; # Test when the same object appears more than once. $x = Math::BigFloat -> new("5"); $y = $x -> bmodpow("7", $x); subtest '$x = Math::BigFloat->new("5"); $y = $x -> bmodpow("5", $x);' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0, '$x == 0'); # (5**7) % 5 = 0 }; $x = Math::BigFloat -> new("5"); $y = $x -> bmodpow($x, "7"); subtest '$x = Math::BigFloat->new("5"); $y = $x -> bmodpow($x, "7");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 3, '$x == 3'); # (5**5) % 7 = 3 }; $x = Math::BigFloat -> new("5"); $y = $x -> bmodpow($x, $x); subtest '$x = Math::BigFloat->new("5"); $y = $x -> bmodpow($x, $x);' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0, '$x == 0'); # (5**5) % 5 = 0 }; Math-BigInt-2.005003/xt/author/bmodpow-mbi.t0000644403072340010010000000326214537274604020311 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; use Scalar::Util qw< refaddr >; use Math::BigInt; my ($x, $y); note("bmodpow() as a class method"); $x = Math::BigInt -> bmodpow("5", "7", "11"); subtest '$x = Math::BigInt -> bmodpow("5, "7", "11");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 3, '$x == 3'); }; note("bmodpow() as an instance method"); $x = Math::BigInt -> new("5"); $y = $x -> bmodpow("7", "11"); subtest '$x = Math::BigInt -> new("5"); $y = $x -> bmodpow("7", "11");' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 3, '$x == 3'); }; # Test when the same object appears more than once. $x = Math::BigInt -> new("5"); $y = $x -> bmodpow("7", $x); subtest '$x = Math::BigInt->new("5"); $y = $x -> bmodpow("5", $x);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); # (5**7) % 5 = 0 }; $x = Math::BigInt -> new("5"); $y = $x -> bmodpow($x, "7"); subtest '$x = Math::BigInt->new("5"); $y = $x -> bmodpow($x, "7");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 3, '$x == 3'); # (5**5) % 7 = 3 }; $x = Math::BigInt -> new("5"); $y = $x -> bmodpow($x, $x); subtest '$x = Math::BigInt->new("5"); $y = $x -> bmodpow($x, $x);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); # (5**5) % 5 = 0 }; Math-BigInt-2.005003/xt/author/bmuladd-mbf.t0000644403072340010010000001116214770455336020247 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12108; use Scalar::Util qw< refaddr >; use Math::Complex; use Math::BigFloat; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my ($x, $y); note("bmuladd() as a class method"); $x = Math::BigFloat -> bmuladd("2", "3", "5"); subtest '$x = Math::BigFloat -> bmuladd("2", "3", "5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 11, '$x == 11'); }; note("bmuladd() as an instance method"); $x = Math::BigFloat -> new("2"); $y = $x -> bmuladd("3", "5"); subtest '$x = Math::BigFloat -> new("2"); $y = $x -> bmuladd("3", "5");' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 11, '$x == 11'); }; note <<'EOF'; Verify that these three expressions give the same result: $x -> bmuladd($y, $z) $x -> bmul($y) -> badd($z) $x * $y + $z EOF my @values = qw< -Inf -3 -2.5 -2 -1.5 -1 0.5 0 0.5 1 1.5 2 2.5 3 Inf NaN >; for my $a (@values) { for my $b (@values) { for my $c (@values) { note <<"EOF"; \$x = Math::BigFloat -> new("$a") -> bmuladd("$b", "$c"); \$y = Math::BigFloat -> new("$a") -> bmul("$b") -> badd("$c"); \$z = $a * $b + $c; EOF my $x = Math::BigFloat -> new("$a") -> bmuladd("$b", "$c"); my $y = Math::BigFloat -> new("$a") -> bmul("$b") -> badd("$c"); my $z = $a * $b + $c; $z = "NaN" if $z =~ /nan/i; if ($z =~ /inf/i) { $z = $z < 0 ? "-inf" : "inf"; } subtest "$a * $b + $c = $z" => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, $z, qq|Math::BigFloat -> new("$a") -> bmuladd("$b", "$c")|); is(ref($y), 'Math::BigFloat', '$x is a Math::BigFloat'); is($y, $z, qq|Math::BigFloat -> new("$a") -> bmul("$b") -> badd("$c")|); }; } } } note <<'EOF'; Test when the same object appears more than once. EOF my $t; for my $a (-2, 2) { for my $b (-3, 3) { $x = Math::BigFloat -> new("$a"); $y = $x -> bmuladd("$b", $x); $t = qq|\$x = Math::BigFloat->new("$a"); \$y = \$x -> bmuladd("$b", \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', 'class of $x'); cmp_ok($x, "==", $a * $b + $a, 'value of $x'); }; $x = Math::BigFloat -> new("$a"); $y = $x -> bmuladd($x, "$b"); $t = qq|\$x = Math::BigFloat->new("$a"); \$y = \$x -> bmuladd(\$x, "$b");|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', 'class of $x'); cmp_ok($x, "==", $a * $a + $b, 'value of $x'); }; } $x = Math::BigFloat -> new("$a"); $y = $x -> bmuladd($x, $x); $t = qq|\$x = Math::BigFloat->new("$a"); \$y = \$x -> bmuladd(\$x, \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', 'class of $x'); cmp_ok($x, "==", $a * $a + $a, 'value of $x'); }; } # Some random tests. for (1 .. 20) { for (1 .. 20) { for (1 .. 20) { my $xi = int(rand(2 ** int(rand(16)))); my $xf = int(rand(2 ** int(rand(8)))); my $xs = rand() < 0.5 ? "+" : "-"; my $x = Math::BigFloat -> new("$xs$xi.$xf"); my $yi = int(rand(2 ** int(rand(16)))); my $yf = int(rand(2 ** int(rand(8)))); my $ys = rand() < 0.5 ? "+" : "-"; my $y = Math::BigFloat -> new("$ys$yi.$yf"); my $y_orig = $y -> copy(); my $zi = int(rand(2 ** int(rand(16)))); my $zf = int(rand(2 ** int(rand(8)))); my $zs = rand() < 0.5 ? "+" : "-"; my $z = Math::BigFloat -> new("$zs$zi.$zf"); my $z_orig = $z -> copy(); note <<"EOF"; \$w1 = Math::BigFloat -> new("$x") -> bmuladd("$y", "$z"); \$w2 = Math::BigFloat -> new("$x") -> bmul("$y") -> badd("$z"); EOF my $w1 = $x -> copy() -> bmul($y -> copy()) -> badd($z -> copy()); my $w2 = $x -> copy() -> bmuladd($y, $z); subtest "$x * $y + $z" => sub { plan tests => 3; is($w1, $w2, '$w1 and $w2 are identical'); is($y, $y_orig, '$y is unmodifief'); is($z, $z_orig, '$z is unmodifief'); }; } } } Math-BigInt-2.005003/xt/author/bmuladd-mbi.t0000644403072340010010000001037114770455336020253 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 9012; use Scalar::Util qw< refaddr >; use Math::Complex; use Math::BigInt; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my ($x, $y); note("bmuladd() as a class method"); $x = Math::BigInt -> bmuladd("2", "3", "5"); subtest '$x = Math::BigInt -> bmuladd("2", "3", "5");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 11, '$x == 11'); }; note("bmuladd() as an instance method"); $x = Math::BigInt -> new("2"); $y = $x -> bmuladd("3", "5"); subtest '$x = Math::BigInt -> new("2"); $y = $x -> bmuladd("3", "5");' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 11, '$x == 11'); }; note <<'EOF'; Verify that these three expressions give the same result: $x -> bmuladd($y, $z) $x -> bmul($y) -> badd($z) $x * $y + $z EOF my @values = qw< -Inf -3 -2 -1 0 1 2 3 Inf NaN >; for my $a (@values) { for my $b (@values) { for my $c (@values) { note <<"EOF"; \$x = Math::BigInt -> new("$a") -> bmuladd("$b", "$c"); \$y = Math::BigInt -> new("$a") -> bmul("$b") -> badd("$c"); \$z = $a * $b + $c; EOF my $x = Math::BigInt -> new("$a") -> bmuladd("$b", "$c"); my $y = Math::BigInt -> new("$a") -> bmul("$b") -> badd("$c"); my $z = $a * $b + $c; $z = "NaN" if $z =~ /nan/i; if ($z =~ /inf/i) { $z = $z < 0 ? "-inf" : "inf"; } subtest "$a * $b + $c = $z" => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, $z, qq|Math::BigInt -> new("$a") -> bmuladd("$b", "$c")|); is(ref($y), 'Math::BigInt', '$x is a Math::BigInt'); is($y, $z, qq|Math::BigInt -> new("$a") -> bmul("$b") -> badd("$c")|); }; } } } note <<'EOF'; Test when the same object appears more than once. EOF my $t; for my $a (-2, 2) { for my $b (-3, 3) { $x = Math::BigInt -> new("$a"); $y = $x -> bmuladd("$b", $x); $t = qq|\$x = Math::BigInt->new("$a"); \$y = \$x -> bmuladd("$b", \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigInt', 'class of $x'); cmp_ok($x, "==", $a * $b + $a, 'value of $x'); }; $x = Math::BigInt -> new("$a"); $y = $x -> bmuladd($x, "$b"); $t = qq|\$x = Math::BigInt->new("$a"); \$y = \$x -> bmuladd(\$x, "$b");|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigInt', 'class of $x'); cmp_ok($x, "==", $a * $a + $b, 'value of $x'); }; } $x = Math::BigInt -> new("$a"); $y = $x -> bmuladd($x, $x); $t = qq|\$x = Math::BigInt->new("$a"); \$y = \$x -> bmuladd(\$x, \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigInt', 'class of $x'); cmp_ok($x, "==", $a * $a + $a, 'value of $x'); }; } # Some random tests. for (1 .. 20) { for (1 .. 20) { for (1 .. 20) { my $x = int(rand(2 ** int(rand(24)))); $x = -$x if rand() < 0.5; $x = Math::BigInt -> new($x); my $y = int(rand(2 ** int(rand(24)))); $y = -$y if rand() < 0.5; $y = Math::BigInt -> new($y); my $y_orig = $y -> copy(); my $z = int(rand(2 ** int(rand(24)))); $z = -$z if rand() < 0.5; $z = Math::BigInt -> new($z); my $z_orig = $z -> copy(); note <<"EOF"; \$w1 = Math::BigInt -> new("$x") -> bmuladd("$y", "$z"); \$w2 = Math::BigInt -> new("$x") -> bmul("$y") -> badd("$z"); EOF my $w1 = $x -> copy() -> bmul($y -> copy()) -> badd($z -> copy()); my $w2 = $x -> copy() -> bmuladd($y, $z); subtest "$x * $y + $z" => sub { plan tests => 3; is($w1, $w2, '$w1 and $w2 are identical'); is($y, $y_orig, '$y is unmodified'); is($z, $z_orig, '$z is unmodified'); }; } } } Math-BigInt-2.005003/xt/author/bmuladd-mbr.t0000644403072340010010000001140414770455336020262 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12108; use Scalar::Util qw< refaddr >; use Math::Complex; use Math::BigRat; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my ($x, $y); note("bmuladd() as a class method"); $x = Math::BigRat -> bmuladd("2", "3", "5"); subtest '$x = Math::BigRat -> bmuladd("2", "3", "5");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", 11, '$x == 11'); }; note("bmuladd() as an instance method"); $x = Math::BigRat -> new("2"); $y = $x -> bmuladd("3", "5"); subtest '$x = Math::BigRat -> new("2"); $y = $x -> bmuladd("3", "5");' => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is(ref($y), 'Math::BigRat', '$y is a Math::BigRat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", 11, '$x == 11'); }; note <<'EOF'; Verify that these three expressions give the same result: $x -> bmuladd($y, $z) $x -> bmul($y) -> badd($z) $x * $y + $z EOF my @values = qw< -Inf -3 -5/2 -2 -3/2 -1 1/2 0 1/2 1 3/2 2 5/2 3 Inf NaN >; for my $a (@values) { for my $b (@values) { for my $c (@values) { note <<"EOF"; \$x = Math::BigRat -> new("$a") -> bmuladd("$b", "$c"); \$y = Math::BigRat -> new("$a") -> bmul("$b") -> badd("$c"); \$z = $a * $b + $c; EOF my $x = Math::BigRat -> new("$a") -> bmuladd("$b", "$c"); my $y = Math::BigRat -> new("$a") -> bmul("$b") -> badd("$c"); for ($a, $b, $c) { $_ = eval $_ if m|/|; # 3/2 -> 1.5 etc. } my $z = $a * $b + $c; $z = "NaN" if $z =~ /nan/i; if ($z =~ /inf/i) { $z = $z < 0 ? "-inf" : "inf"; } subtest "$a * $b + $c = $z" => sub { plan tests => 4; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); $x = eval $x if $x =~ m|/|; # 3/2 -> 1.5 etc. is($x, $z, qq|Math::BigRat -> new("$a") -> bmuladd("$b", "$c")|); is(ref($y), 'Math::BigRat', '$x is a Math::BigRat'); $y = eval $y if $y =~ m|/|; # 3/2 -> 1.5 etc. is($y, $z, qq|Math::BigRat -> new("$a") -> bmul("$b") -> badd("$c")|); }; } } } note <<'EOF'; Test when the same object appears more than once. EOF my $t; for my $a (-2, 2) { for my $b (-3, 3) { $x = Math::BigRat -> new("$a"); $y = $x -> bmuladd("$b", $x); $t = qq|\$x = Math::BigRat->new("$a"); \$y = \$x -> bmuladd("$b", \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigRat', 'class of $x'); cmp_ok($x, "==", $a * $b + $a, 'value of $x'); }; $x = Math::BigRat -> new("$a"); $y = $x -> bmuladd($x, "$b"); $t = qq|\$x = Math::BigRat->new("$a"); \$y = \$x -> bmuladd(\$x, "$b");|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigRat', 'class of $x'); cmp_ok($x, "==", $a * $a + $b, 'value of $x'); }; } $x = Math::BigRat -> new("$a"); $y = $x -> bmuladd($x, $x); $t = qq|\$x = Math::BigRat->new("$a"); \$y = \$x -> bmuladd(\$x, \$x);|; subtest $t => sub { plan tests => 2; is(ref($x), 'Math::BigRat', 'class of $x'); cmp_ok($x, "==", $a * $a + $a, 'value of $x'); }; } # Some random tests. for (1 .. 20) { for (1 .. 20) { for (1 .. 20) { my $xn = int(rand(2 ** int(rand(24)))); my $xd = int(rand(2 ** int(rand(24)))); $xn = -$xn if rand() < 0.5; my $x = Math::BigRat -> new($xn, $xd); my $yn = int(rand(2 ** int(rand(24)))); my $yd = int(rand(2 ** int(rand(24)))); $yn = -$yn if rand() < 0.5; my $y = Math::BigRat -> new($yn, $yd); my $y_orig = $y -> copy(); my $zn = int(rand(2 ** int(rand(24)))); my $zd = int(rand(2 ** int(rand(24)))); $zn = -$zn if rand() < 0.5; my $z = Math::BigRat -> new($zn, $zd); my $z_orig = $z -> copy(); note <<"EOF"; \$w1 = Math::BigRat -> new("$x") -> bmuladd("$y", "$z"); \$w2 = Math::BigRat -> new("$x") -> bmul("$y") -> badd("$z"); EOF my $w1 = $x -> copy() -> bmul($y -> copy()) -> badd($z -> copy()); my $w2 = $x -> copy() -> bmuladd($y, $z); subtest "$x * $y + $z" => sub { plan tests => 3; is($w1, $w2, '$w1 and $w2 are identical'); is($y, $y_orig, '$y is unmodified'); is($z, $z_orig, '$z is unmodified'); }; } } } Math-BigInt-2.005003/xt/author/bnan-mbf.t0000644403072340010010000000147214537274604017556 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3; use Math::BigFloat; my $x; note("bnan() as a class method"); $x = Math::BigFloat -> bnan(); subtest '$x = Math::BigFloat -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x == NaN'); }; note("bnan() as an instane method"); $x = Math::BigFloat -> new("2") -> bnan(); subtest '$x = Math::BigFloat -> new("2") -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x == NaN'); }; note("bnan() as a function"); $x = Math::BigFloat::bnan(); subtest '$x = Math::BigFloat -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is($x, "NaN", '$x == NaN'); }; Math-BigInt-2.005003/xt/author/bnan-mbi.t0000644403072340010010000000144014537274604017554 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3; use Math::BigInt; my $x; note("bnan() as a class method"); $x = Math::BigInt -> bnan(); subtest '$x = Math::BigInt -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "NaN", '$x == NaN'); }; note("bnan() as an instane method"); $x = Math::BigInt -> new("2") -> bnan(); subtest '$x = Math::BigInt -> new("2") -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "NaN", '$x == NaN'); }; note("bnan() as a function"); $x = Math::BigInt::bnan(); subtest '$x = Math::BigInt -> bnan()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is($x, "NaN", '$x == NaN'); }; Math-BigInt-2.005003/xt/author/bneg-mbf.t0000644403072340010010000000142014537274604017544 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Scalar::Util qw< refaddr >; use Math::BigFloat; my ($x, $y); note("bneg() as a class method"); $x = Math::BigInt -> bneg("2"); subtest '$x = Math::BigInt -> bneg("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -2, '$x == -2'); }; note("bneg() as an instance method"); $x = Math::BigInt -> new("2"); $y = $x -> bneg(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> bneg();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", -2, '$y == -2'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); }; Math-BigInt-2.005003/xt/author/bneg-mbi-mbf.t0000644403072340010010000000242114756672324020317 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More tests => 12; use Math::BigFloat; my $cases = [ [ "-9", "9" ], [ "9", "-9" ], [ "0", "0" ], [ "-inf", "inf" ], [ "inf", "-inf" ], [ "NaN", "NaN" ], ]; for my $case (@$cases) { my ($in, $wanted) = @$case; subtest qq|Math::BigInt -> new("$in")| => sub { Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigInt -> new($in); my $xa = refaddr($x); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = $x -> bneg(); is($x, $wanted, "value"); is(ref($x), "Math::BigInt", "class"); is(refaddr($x), $xa, "address"); }; subtest qq|Math::BigFloat -> new("$in")| => sub { Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); my $x = Math::BigFloat -> new($in); my $xa = refaddr($x); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); my $y = $x -> bneg(); is($x, $wanted, "value"); is(ref($x), "Math::BigInt", "class"); is(refaddr($x), $xa, "address"); }; } Math-BigInt-2.005003/xt/author/bneg-mbi.t0000644403072340010010000000141614537274604017554 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Scalar::Util qw< refaddr >; use Math::BigInt; my ($x, $y); note("bneg() as a class method"); $x = Math::BigInt -> bneg("2"); subtest '$x = Math::BigInt -> bneg("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -2, '$x == -2'); }; note("bneg() as an instance method"); $x = Math::BigInt -> new("2"); $y = $x -> bneg(); subtest '$x = Math::BigInt -> new("2"); $y = $x -> bneg();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($y, "==", -2, '$y == -2'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); }; Math-BigInt-2.005003/xt/author/bnok-mbi-mbr-mbf.t0000644403072340010010000004241214761570120021102 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More tests => 45183; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } while () { s/(^|\s+)#.*$//; # remove comments s/^\s+//; # remove leading whitespace s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($nval, $kval, $outval) = split /:/; for my $class (@classes) { for my $scalar_context (0, 1) { for my $instance_method (0, 1) { for my $n_is_scalar (0, 1) { for my $k_is_scalar (0, 1) { my ($n, $k, $got, @got); # We cannot use an instance method when the first # operand is scalar. next if $instance_method && $n_is_scalar; # Build test. my $test; $test .= $n_is_scalar ? qq|\$n = "$nval";| : qq|\$n = $class -> new("$nval");|; $test .= $k_is_scalar ? qq| \$k = "$kval";| : qq| \$k = $class -> new("$kval");|; $test .= $scalar_context ? qq| \$got =| : qq| \@got =|; $test .= $instance_method ? qq| \$n -> bnok(\$k);| : qq| $class -> bnok(\$n, \$k);|; # Display tests. note("\n$test\n\n"); subtest $test, sub { eval $test; is($@, "", '$@ is empty'); unless ($scalar_context) { # Check number of output arguments. cmp_ok(scalar(@got), '==', 1, "got one output arg"); $got = $got[0]; } # Check output. is(ref($got), $class, "output arg is a $class"); is($got, $outval, "output arg has the right value"); unless ($n_is_scalar) { is(refaddr($got), refaddr($n), "the output is the first operand"); } # Check the second operand. if ($k_is_scalar) { is(ref($k), '', "second input arg is still a scalar"); is($k, $kval, "second input arg is unmodified"); } else { is(ref($k), $class, "second input arg is still a $class"); is($k, $kval, "second input arg is unmodified"); } }; } } } } } } __DATA__ # n and/or k is NaN NaN:NaN:NaN NaN:0:NaN NaN:3:NaN 3:NaN:NaN NaN:-3:NaN -3:NaN:NaN # n = inf inf:-inf:NaN inf:-3:0 inf:-2:0 inf:-1:0 inf:0:1 inf:1:inf inf:2:inf inf:3:inf inf:inf:NaN # n = -inf -inf:-inf:NaN -inf:-3:0 -inf:-2:0 -inf:-1:0 -inf:0:1 -inf:1:-inf -inf:2:inf -inf:3:-inf -inf:inf:NaN # k = inf -3:inf:NaN -2:inf:NaN -1:inf:NaN 0:inf:NaN 1:inf:NaN 2:inf:NaN 3:inf:NaN # k = -inf -3:-inf:NaN -2:-inf:NaN -1:-inf:NaN 0:-inf:NaN 1:-inf:NaN 2:-inf:NaN 3:-inf:NaN # n = -15, k = n - 15 ... n + 15 -15:-30:-77558760 -15:-29:40116600 -15:-28:-20058300 -15:-27:9657700 -15:-26:-4457400 -15:-25:1961256 -15:-24:-817190 -15:-23:319770 -15:-22:-116280 -15:-21:38760 -15:-20:-11628 -15:-19:3060 -15:-18:-680 -15:-17:120 -15:-16:-15 -15:-15:1 -15:-14:0 -15:-13:0 -15:-12:0 -15:-11:0 -15:-10:0 -15:-9:0 -15:-8:0 -15:-7:0 -15:-6:0 -15:-5:0 -15:-4:0 -15:-3:0 -15:-2:0 -15:-1:0 -15:0:1 -15:1:-15 -15:2:120 -15:3:-680 -15:4:3060 -15:5:-11628 -15:6:38760 -15:7:-116280 -15:8:319770 -15:9:-817190 -15:10:1961256 -15:11:-4457400 -15:12:9657700 -15:13:-20058300 -15:14:40116600 -15:15:-77558760 # n = -14, k = n - 15 ... n + 15 -14:-29:-37442160 -14:-28:20058300 -14:-27:-10400600 -14:-26:5200300 -14:-25:-2496144 -14:-24:1144066 -14:-23:-497420 -14:-22:203490 -14:-21:-77520 -14:-20:27132 -14:-19:-8568 -14:-18:2380 -14:-17:-560 -14:-16:105 -14:-15:-14 -14:-14:1 -14:-13:0 -14:-12:0 -14:-11:0 -14:-10:0 -14:-9:0 -14:-8:0 -14:-7:0 -14:-6:0 -14:-5:0 -14:-4:0 -14:-3:0 -14:-2:0 -14:-1:0 -14:0:1 -14:1:-14 -14:2:105 -14:3:-560 -14:4:2380 -14:5:-8568 -14:6:27132 -14:7:-77520 -14:8:203490 -14:9:-497420 -14:10:1144066 -14:11:-2496144 -14:12:5200300 -14:13:-10400600 -14:14:20058300 -14:15:-37442160 # n = -13, k = n - 15 ... n + 15 -13:-28:-17383860 -13:-27:9657700 -13:-26:-5200300 -13:-25:2704156 -13:-24:-1352078 -13:-23:646646 -13:-22:-293930 -13:-21:125970 -13:-20:-50388 -13:-19:18564 -13:-18:-6188 -13:-17:1820 -13:-16:-455 -13:-15:91 -13:-14:-13 -13:-13:1 -13:-12:0 -13:-11:0 -13:-10:0 -13:-9:0 -13:-8:0 -13:-7:0 -13:-6:0 -13:-5:0 -13:-4:0 -13:-3:0 -13:-2:0 -13:-1:0 -13:0:1 -13:1:-13 -13:2:91 -13:3:-455 -13:4:1820 -13:5:-6188 -13:6:18564 -13:7:-50388 -13:8:125970 -13:9:-293930 -13:10:646646 -13:11:-1352078 -13:12:2704156 -13:13:-5200300 -13:14:9657700 -13:15:-17383860 # n = -12, k = n - 15 ... n + 15 -12:-27:-7726160 -12:-26:4457400 -12:-25:-2496144 -12:-24:1352078 -12:-23:-705432 -12:-22:352716 -12:-21:-167960 -12:-20:75582 -12:-19:-31824 -12:-18:12376 -12:-17:-4368 -12:-16:1365 -12:-15:-364 -12:-14:78 -12:-13:-12 -12:-12:1 -12:-11:0 -12:-10:0 -12:-9:0 -12:-8:0 -12:-7:0 -12:-6:0 -12:-5:0 -12:-4:0 -12:-3:0 -12:-2:0 -12:-1:0 -12:0:1 -12:1:-12 -12:2:78 -12:3:-364 -12:4:1365 -12:5:-4368 -12:6:12376 -12:7:-31824 -12:8:75582 -12:9:-167960 -12:10:352716 -12:11:-705432 -12:12:1352078 -12:13:-2496144 -12:14:4457400 -12:15:-7726160 # n = -11, k = n - 15 ... n + 15 -11:-26:-3268760 -11:-25:1961256 -11:-24:-1144066 -11:-23:646646 -11:-22:-352716 -11:-21:184756 -11:-20:-92378 -11:-19:43758 -11:-18:-19448 -11:-17:8008 -11:-16:-3003 -11:-15:1001 -11:-14:-286 -11:-13:66 -11:-12:-11 -11:-11:1 -11:-10:0 -11:-9:0 -11:-8:0 -11:-7:0 -11:-6:0 -11:-5:0 -11:-4:0 -11:-3:0 -11:-2:0 -11:-1:0 -11:0:1 -11:1:-11 -11:2:66 -11:3:-286 -11:4:1001 -11:5:-3003 -11:6:8008 -11:7:-19448 -11:8:43758 -11:9:-92378 -11:10:184756 -11:11:-352716 -11:12:646646 -11:13:-1144066 -11:14:1961256 -11:15:-3268760 # n = -10, k = n - 15 ... n + 15 -10:-25:-1307504 -10:-24:817190 -10:-23:-497420 -10:-22:293930 -10:-21:-167960 -10:-20:92378 -10:-19:-48620 -10:-18:24310 -10:-17:-11440 -10:-16:5005 -10:-15:-2002 -10:-14:715 -10:-13:-220 -10:-12:55 -10:-11:-10 -10:-10:1 -10:-9:0 -10:-8:0 -10:-7:0 -10:-6:0 -10:-5:0 -10:-4:0 -10:-3:0 -10:-2:0 -10:-1:0 -10:0:1 -10:1:-10 -10:2:55 -10:3:-220 -10:4:715 -10:5:-2002 -10:6:5005 -10:7:-11440 -10:8:24310 -10:9:-48620 -10:10:92378 -10:11:-167960 -10:12:293930 -10:13:-497420 -10:14:817190 -10:15:-1307504 # n = -9, k = n - 15 ... n + 15 -9:-24:-490314 -9:-23:319770 -9:-22:-203490 -9:-21:125970 -9:-20:-75582 -9:-19:43758 -9:-18:-24310 -9:-17:12870 -9:-16:-6435 -9:-15:3003 -9:-14:-1287 -9:-13:495 -9:-12:-165 -9:-11:45 -9:-10:-9 -9:-9:1 -9:-8:0 -9:-7:0 -9:-6:0 -9:-5:0 -9:-4:0 -9:-3:0 -9:-2:0 -9:-1:0 -9:0:1 -9:1:-9 -9:2:45 -9:3:-165 -9:4:495 -9:5:-1287 -9:6:3003 -9:7:-6435 -9:8:12870 -9:9:-24310 -9:10:43758 -9:11:-75582 -9:12:125970 -9:13:-203490 -9:14:319770 -9:15:-490314 # n = -8, k = n - 15 ... n + 15 -8:-23:-170544 -8:-22:116280 -8:-21:-77520 -8:-20:50388 -8:-19:-31824 -8:-18:19448 -8:-17:-11440 -8:-16:6435 -8:-15:-3432 -8:-14:1716 -8:-13:-792 -8:-12:330 -8:-11:-120 -8:-10:36 -8:-9:-8 -8:-8:1 -8:-7:0 -8:-6:0 -8:-5:0 -8:-4:0 -8:-3:0 -8:-2:0 -8:-1:0 -8:0:1 -8:1:-8 -8:2:36 -8:3:-120 -8:4:330 -8:5:-792 -8:6:1716 -8:7:-3432 -8:8:6435 -8:9:-11440 -8:10:19448 -8:11:-31824 -8:12:50388 -8:13:-77520 -8:14:116280 -8:15:-170544 # n = -7, k = n - 15 ... n + 15 -7:-22:-54264 -7:-21:38760 -7:-20:-27132 -7:-19:18564 -7:-18:-12376 -7:-17:8008 -7:-16:-5005 -7:-15:3003 -7:-14:-1716 -7:-13:924 -7:-12:-462 -7:-11:210 -7:-10:-84 -7:-9:28 -7:-8:-7 -7:-7:1 -7:-6:0 -7:-5:0 -7:-4:0 -7:-3:0 -7:-2:0 -7:-1:0 -7:0:1 -7:1:-7 -7:2:28 -7:3:-84 -7:4:210 -7:5:-462 -7:6:924 -7:7:-1716 -7:8:3003 -7:9:-5005 -7:10:8008 -7:11:-12376 -7:12:18564 -7:13:-27132 -7:14:38760 -7:15:-54264 # n = -6, k = n - 15 ... n + 15 -6:-21:-15504 -6:-20:11628 -6:-19:-8568 -6:-18:6188 -6:-17:-4368 -6:-16:3003 -6:-15:-2002 -6:-14:1287 -6:-13:-792 -6:-12:462 -6:-11:-252 -6:-10:126 -6:-9:-56 -6:-8:21 -6:-7:-6 -6:-6:1 -6:-5:0 -6:-4:0 -6:-3:0 -6:-2:0 -6:-1:0 -6:0:1 -6:1:-6 -6:2:21 -6:3:-56 -6:4:126 -6:5:-252 -6:6:462 -6:7:-792 -6:8:1287 -6:9:-2002 -6:10:3003 -6:11:-4368 -6:12:6188 -6:13:-8568 -6:14:11628 -6:15:-15504 # n = -5, k = n - 15 ... n + 15 -5:-20:-3876 -5:-19:3060 -5:-18:-2380 -5:-17:1820 -5:-16:-1365 -5:-15:1001 -5:-14:-715 -5:-13:495 -5:-12:-330 -5:-11:210 -5:-10:-126 -5:-9:70 -5:-8:-35 -5:-7:15 -5:-6:-5 -5:-5:1 -5:-4:0 -5:-3:0 -5:-2:0 -5:-1:0 -5:0:1 -5:1:-5 -5:2:15 -5:3:-35 -5:4:70 -5:5:-126 -5:6:210 -5:7:-330 -5:8:495 -5:9:-715 -5:10:1001 -5:11:-1365 -5:12:1820 -5:13:-2380 -5:14:3060 -5:15:-3876 # n = -4, k = n - 15 ... n + 15 -4:-19:-816 -4:-18:680 -4:-17:-560 -4:-16:455 -4:-15:-364 -4:-14:286 -4:-13:-220 -4:-12:165 -4:-11:-120 -4:-10:84 -4:-9:-56 -4:-8:35 -4:-7:-20 -4:-6:10 -4:-5:-4 -4:-4:1 -4:-3:0 -4:-2:0 -4:-1:0 -4:0:1 -4:1:-4 -4:2:10 -4:3:-20 -4:4:35 -4:5:-56 -4:6:84 -4:7:-120 -4:8:165 -4:9:-220 -4:10:286 -4:11:-364 -4:12:455 -4:13:-560 -4:14:680 -4:15:-816 # n = -3, k = n - 15 ... n + 15 -3:-18:-136 -3:-17:120 -3:-16:-105 -3:-15:91 -3:-14:-78 -3:-13:66 -3:-12:-55 -3:-11:45 -3:-10:-36 -3:-9:28 -3:-8:-21 -3:-7:15 -3:-6:-10 -3:-5:6 -3:-4:-3 -3:-3:1 -3:-2:0 -3:-1:0 -3:0:1 -3:1:-3 -3:2:6 -3:3:-10 -3:4:15 -3:5:-21 -3:6:28 -3:7:-36 -3:8:45 -3:9:-55 -3:10:66 -3:11:-78 -3:12:91 -3:13:-105 -3:14:120 -3:15:-136 # n = -2, k = n - 15 ... n + 15 -2:-17:-16 -2:-16:15 -2:-15:-14 -2:-14:13 -2:-13:-12 -2:-12:11 -2:-11:-10 -2:-10:9 -2:-9:-8 -2:-8:7 -2:-7:-6 -2:-6:5 -2:-5:-4 -2:-4:3 -2:-3:-2 -2:-2:1 -2:-1:0 -2:0:1 -2:1:-2 -2:2:3 -2:3:-4 -2:4:5 -2:5:-6 -2:6:7 -2:7:-8 -2:8:9 -2:9:-10 -2:10:11 -2:11:-12 -2:12:13 -2:13:-14 -2:14:15 -2:15:-16 # n = -1, k = n - 15 ... n + 15 -1:-16:-1 -1:-15:1 -1:-14:-1 -1:-13:1 -1:-12:-1 -1:-11:1 -1:-10:-1 -1:-9:1 -1:-8:-1 -1:-7:1 -1:-6:-1 -1:-5:1 -1:-4:-1 -1:-3:1 -1:-2:-1 -1:-1:1 -1:0:1 -1:1:-1 -1:2:1 -1:3:-1 -1:4:1 -1:5:-1 -1:6:1 -1:7:-1 -1:8:1 -1:9:-1 -1:10:1 -1:11:-1 -1:12:1 -1:13:-1 -1:14:1 -1:15:-1 # n = 0, k = n - 15 ... n + 15 0:-15:0 0:-14:0 0:-13:0 0:-12:0 0:-11:0 0:-10:0 0:-9:0 0:-8:0 0:-7:0 0:-6:0 0:-5:0 0:-4:0 0:-3:0 0:-2:0 0:-1:0 0:0:1 0:1:0 0:2:0 0:3:0 0:4:0 0:5:0 0:6:0 0:7:0 0:8:0 0:9:0 0:10:0 0:11:0 0:12:0 0:13:0 0:14:0 0:15:0 # n = 1, k = n - 15 ... n + 15 1:-15:0 1:-14:0 1:-13:0 1:-12:0 1:-11:0 1:-10:0 1:-9:0 1:-8:0 1:-7:0 1:-6:0 1:-5:0 1:-4:0 1:-3:0 1:-2:0 1:-1:0 1:0:1 1:1:1 1:2:0 1:3:0 1:4:0 1:5:0 1:6:0 1:7:0 1:8:0 1:9:0 1:10:0 1:11:0 1:12:0 1:13:0 1:14:0 1:15:0 1:16:0 # n = 2, k = n - 15 ... n + 15 2:-15:0 2:-14:0 2:-13:0 2:-12:0 2:-11:0 2:-10:0 2:-9:0 2:-8:0 2:-7:0 2:-6:0 2:-5:0 2:-4:0 2:-3:0 2:-2:0 2:-1:0 2:0:1 2:1:2 2:2:1 2:3:0 2:4:0 2:5:0 2:6:0 2:7:0 2:8:0 2:9:0 2:10:0 2:11:0 2:12:0 2:13:0 2:14:0 2:15:0 2:16:0 2:17:0 # n = 3, k = n - 15 ... n + 15 3:-15:0 3:-14:0 3:-13:0 3:-12:0 3:-11:0 3:-10:0 3:-9:0 3:-8:0 3:-7:0 3:-6:0 3:-5:0 3:-4:0 3:-3:0 3:-2:0 3:-1:0 3:0:1 3:1:3 3:2:3 3:3:1 3:4:0 3:5:0 3:6:0 3:7:0 3:8:0 3:9:0 3:10:0 3:11:0 3:12:0 3:13:0 3:14:0 3:15:0 3:16:0 3:17:0 3:18:0 # n = 4, k = n - 15 ... n + 15 4:-15:0 4:-14:0 4:-13:0 4:-12:0 4:-11:0 4:-10:0 4:-9:0 4:-8:0 4:-7:0 4:-6:0 4:-5:0 4:-4:0 4:-3:0 4:-2:0 4:-1:0 4:0:1 4:1:4 4:2:6 4:3:4 4:4:1 4:5:0 4:6:0 4:7:0 4:8:0 4:9:0 4:10:0 4:11:0 4:12:0 4:13:0 4:14:0 4:15:0 4:16:0 4:17:0 4:18:0 4:19:0 # n = 5, k = n - 15 ... n + 15 5:-15:0 5:-14:0 5:-13:0 5:-12:0 5:-11:0 5:-10:0 5:-9:0 5:-8:0 5:-7:0 5:-6:0 5:-5:0 5:-4:0 5:-3:0 5:-2:0 5:-1:0 5:0:1 5:1:5 5:2:10 5:3:10 5:4:5 5:5:1 5:6:0 5:7:0 5:8:0 5:9:0 5:10:0 5:11:0 5:12:0 5:13:0 5:14:0 5:15:0 5:16:0 5:17:0 5:18:0 5:19:0 5:20:0 # n = 6, k = n - 15 ... n + 15 6:-15:0 6:-14:0 6:-13:0 6:-12:0 6:-11:0 6:-10:0 6:-9:0 6:-8:0 6:-7:0 6:-6:0 6:-5:0 6:-4:0 6:-3:0 6:-2:0 6:-1:0 6:0:1 6:1:6 6:2:15 6:3:20 6:4:15 6:5:6 6:6:1 6:7:0 6:8:0 6:9:0 6:10:0 6:11:0 6:12:0 6:13:0 6:14:0 6:15:0 6:16:0 6:17:0 6:18:0 6:19:0 6:20:0 6:21:0 # n = 7, k = n - 15 ... n + 15 7:-15:0 7:-14:0 7:-13:0 7:-12:0 7:-11:0 7:-10:0 7:-9:0 7:-8:0 7:-7:0 7:-6:0 7:-5:0 7:-4:0 7:-3:0 7:-2:0 7:-1:0 7:0:1 7:1:7 7:2:21 7:3:35 7:4:35 7:5:21 7:6:7 7:7:1 7:8:0 7:9:0 7:10:0 7:11:0 7:12:0 7:13:0 7:14:0 7:15:0 7:16:0 7:17:0 7:18:0 7:19:0 7:20:0 7:21:0 7:22:0 # n = 8, k = n - 15 ... n + 15 8:-15:0 8:-14:0 8:-13:0 8:-12:0 8:-11:0 8:-10:0 8:-9:0 8:-8:0 8:-7:0 8:-6:0 8:-5:0 8:-4:0 8:-3:0 8:-2:0 8:-1:0 8:0:1 8:1:8 8:2:28 8:3:56 8:4:70 8:5:56 8:6:28 8:7:8 8:8:1 8:9:0 8:10:0 8:11:0 8:12:0 8:13:0 8:14:0 8:15:0 8:16:0 8:17:0 8:18:0 8:19:0 8:20:0 8:21:0 8:22:0 8:23:0 # n = 9, k = n - 15 ... n + 15 9:-15:0 9:-14:0 9:-13:0 9:-12:0 9:-11:0 9:-10:0 9:-9:0 9:-8:0 9:-7:0 9:-6:0 9:-5:0 9:-4:0 9:-3:0 9:-2:0 9:-1:0 9:0:1 9:1:9 9:2:36 9:3:84 9:4:126 9:5:126 9:6:84 9:7:36 9:8:9 9:9:1 9:10:0 9:11:0 9:12:0 9:13:0 9:14:0 9:15:0 9:16:0 9:17:0 9:18:0 9:19:0 9:20:0 9:21:0 9:22:0 9:23:0 9:24:0 # n = 10, k = n - 15 ... n + 15 10:-15:0 10:-14:0 10:-13:0 10:-12:0 10:-11:0 10:-10:0 10:-9:0 10:-8:0 10:-7:0 10:-6:0 10:-5:0 10:-4:0 10:-3:0 10:-2:0 10:-1:0 10:0:1 10:1:10 10:2:45 10:3:120 10:4:210 10:5:252 10:6:210 10:7:120 10:8:45 10:9:10 10:10:1 10:11:0 10:12:0 10:13:0 10:14:0 10:15:0 10:16:0 10:17:0 10:18:0 10:19:0 10:20:0 10:21:0 10:22:0 10:23:0 10:24:0 10:25:0 # n = 11, k = n - 15 ... n + 15 11:-15:0 11:-14:0 11:-13:0 11:-12:0 11:-11:0 11:-10:0 11:-9:0 11:-8:0 11:-7:0 11:-6:0 11:-5:0 11:-4:0 11:-3:0 11:-2:0 11:-1:0 11:0:1 11:1:11 11:2:55 11:3:165 11:4:330 11:5:462 11:6:462 11:7:330 11:8:165 11:9:55 11:10:11 11:11:1 11:12:0 11:13:0 11:14:0 11:15:0 11:16:0 11:17:0 11:18:0 11:19:0 11:20:0 11:21:0 11:22:0 11:23:0 11:24:0 11:25:0 11:26:0 # n = 12, k = n - 15 ... n + 15 12:-15:0 12:-14:0 12:-13:0 12:-12:0 12:-11:0 12:-10:0 12:-9:0 12:-8:0 12:-7:0 12:-6:0 12:-5:0 12:-4:0 12:-3:0 12:-2:0 12:-1:0 12:0:1 12:1:12 12:2:66 12:3:220 12:4:495 12:5:792 12:6:924 12:7:792 12:8:495 12:9:220 12:10:66 12:11:12 12:12:1 12:13:0 12:14:0 12:15:0 12:16:0 12:17:0 12:18:0 12:19:0 12:20:0 12:21:0 12:22:0 12:23:0 12:24:0 12:25:0 12:26:0 12:27:0 # n = 13, k = n - 15 ... n + 15 13:-15:0 13:-14:0 13:-13:0 13:-12:0 13:-11:0 13:-10:0 13:-9:0 13:-8:0 13:-7:0 13:-6:0 13:-5:0 13:-4:0 13:-3:0 13:-2:0 13:-1:0 13:0:1 13:1:13 13:2:78 13:3:286 13:4:715 13:5:1287 13:6:1716 13:7:1716 13:8:1287 13:9:715 13:10:286 13:11:78 13:12:13 13:13:1 13:14:0 13:15:0 13:16:0 13:17:0 13:18:0 13:19:0 13:20:0 13:21:0 13:22:0 13:23:0 13:24:0 13:25:0 13:26:0 13:27:0 13:28:0 # n = 14, k = n - 15 ... n + 15 14:-15:0 14:-14:0 14:-13:0 14:-12:0 14:-11:0 14:-10:0 14:-9:0 14:-8:0 14:-7:0 14:-6:0 14:-5:0 14:-4:0 14:-3:0 14:-2:0 14:-1:0 14:0:1 14:1:14 14:2:91 14:3:364 14:4:1001 14:5:2002 14:6:3003 14:7:3432 14:8:3003 14:9:2002 14:10:1001 14:11:364 14:12:91 14:13:14 14:14:1 14:15:0 14:16:0 14:17:0 14:18:0 14:19:0 14:20:0 14:21:0 14:22:0 14:23:0 14:24:0 14:25:0 14:26:0 14:27:0 14:28:0 14:29:0 # n = 15, k = n - 15 ... n + 15 15:-15:0 15:-14:0 15:-13:0 15:-12:0 15:-11:0 15:-10:0 15:-9:0 15:-8:0 15:-7:0 15:-6:0 15:-5:0 15:-4:0 15:-3:0 15:-2:0 15:-1:0 15:0:1 15:1:15 15:2:105 15:3:455 15:4:1365 15:5:3003 15:6:5005 15:7:6435 15:8:6435 15:9:5005 15:10:3003 15:11:1365 15:12:455 15:13:105 15:14:15 15:15:1 15:16:0 15:17:0 15:18:0 15:19:0 15:20:0 15:21:0 15:22:0 15:23:0 15:24:0 15:25:0 15:26:0 15:27:0 15:28:0 15:29:0 15:30:0 # big numbers 340282366920938463463374607431768211456:-1:0 340282366920938463463374607431768211456:0:1 340282366920938463463374607431768211456:1:340282366920938463463374607431768211456 340282366920938463463374607431768211456:2:57896044618658097711785492504343953926464851149359812787997104700240680714240 340282366920938463463374607431768211456:340282366920938463463374607431768211454:57896044618658097711785492504343953926464851149359812787997104700240680714240 340282366920938463463374607431768211456:340282366920938463463374607431768211455:340282366920938463463374607431768211456 340282366920938463463374607431768211456:340282366920938463463374607431768211456:1 340282366920938463463374607431768211456:340282366920938463463374607431768211457:0 -340282366920938463463374607431768211456:-340282366920938463463374607431768211458:57896044618658097711785492504343953926805133516280751251460479307672448925696 -340282366920938463463374607431768211456:-340282366920938463463374607431768211457:-340282366920938463463374607431768211456 -340282366920938463463374607431768211456:-340282366920938463463374607431768211456:1 -340282366920938463463374607431768211456:-340282366920938463463374607431768211455:0 -340282366920938463463374607431768211456:-1:0 -340282366920938463463374607431768211456:0:1 -340282366920938463463374607431768211456:1:-340282366920938463463374607431768211456 -340282366920938463463374607431768211456:2:57896044618658097711785492504343953926805133516280751251460479307672448925696 Math-BigInt-2.005003/xt/author/bnorm-mbf.t0000644403072340010010000000236214537274605017755 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; use Math::BigFloat; my $LIB = Math::BigFloat -> config('lib'); my $x = Math::BigFloat -> bzero(); my @data = ( [ ['+', '0', '-', '2'], ['+', '0', '+', '0'] ], [ ['+', '0', '+', '0'], ['+', '0', '+', '0'] ], [ ['+', '0', '+', '2'], ['+', '0', '+', '0'] ], [ ['+', '10', '+', '0'], ['+', '1', '+', '1'] ], [ ['+', '100', '+', '0'], ['+', '1', '+', '2'] ], ); for my $entry (@data) { my $in = $entry -> [0]; my $out = $entry -> [1]; my $x = bless { sign => $in->[0], _m => $LIB -> _new($in->[1]), _es => $in->[2], _e => $LIB -> _new($in->[3]), }, "Math::BigFloat"; $x -> bnorm(); my $test = $in->[0] . $in->[1] . 'e' . $in->[2] . $in->[3] . " => " . $out->[0] . $out->[1] . 'e' . $out->[2] . $out->[3]; subtest $test => sub { plan tests => 4; is($x->{sign}, $out->[0], 'sign of mantissa'); is($LIB->_str($x->{_m}), $out->[1], 'absolute value of mantissa'); is($x->{_es}, $out->[2], 'sign of exponent'); is($LIB->_str($x->{_e}), $out->[3], 'absolute value of exponent'); }; } Math-BigInt-2.005003/xt/author/bnstr-mbf.t0000644403072340010010000001427614770523024017766 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 929; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigFloat -> accuracy($accu);| . qq| \$x = Math::BigFloat -> new("$x_str");| . qq| \$str = \$x -> bnstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } # Reset accuracy and precision. Math::BigFloat -> accuracy(undef); Math::BigFloat -> precision(undef); # 355/113 rounded to 40 digits. my $str = '3.141592920353982300884955752212389380531'; # Default rounding. note(qq|\nMath::BigFloat -> new("$str") -> bnstr();\n\n|); is(Math::BigFloat -> new($str) -> bnstr(), '3.141592920353982300884955752212389380531e+0'); # Accuracy as argument. note(qq|\nMath::BigFloat -> new("$str") -> bnstr(3);\n\n|); is(Math::BigFloat -> new($str) -> bnstr(3), '3.14e+0'); # Precision as argument. note(qq|\nMath::BigFloat -> new("$str") -> bnstr(undef, -3);\n\n|); is(Math::BigFloat -> new($str) -> bnstr(undef, -3), '3.142e+0'); # Accuracy as class variable. note(qq|\nMath::BigFloat -> accuracy(5); Math::BigFloat -> new("$str") -> bnstr();\n\n|); Math::BigFloat -> accuracy(5); is(Math::BigFloat -> new($str) -> bnstr(), '3.1416e+0'); # Precision as class variable. note(qq|\nMath::BigFloat -> precision(-5); Math::BigFloat -> new("$str") -> bnstr();\n\n|); Math::BigFloat -> precision(-5); is(Math::BigFloat -> new($str) -> bnstr(), '3.14159e+0'); __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 0.000000000001:1e-12 0.00000000001:1e-11 0.0000000001:1e-10 0.000000001:1e-9 0.00000001:1e-8 0.0000001:1e-7 0.000001:1e-6 0.00001:1e-5 0.0001:1e-4 0.001:1e-3 0.01:1e-2 0.1:1e-1 1:1e+0 10:1e+1 100:1e+2 1000:1e+3 10000:1e+4 100000:1e+5 1000000:1e+6 10000000:1e+7 100000000:1e+8 1000000000:1e+9 10000000000:1e+10 100000000000:1e+11 1000000000000:1e+12 0.0000000000012:1.2e-12 0.000000000012:1.2e-11 0.00000000012:1.2e-10 0.0000000012:1.2e-9 0.000000012:1.2e-8 0.00000012:1.2e-7 0.0000012:1.2e-6 0.000012:1.2e-5 0.00012:1.2e-4 0.0012:1.2e-3 0.012:1.2e-2 0.12:1.2e-1 1.2:1.2e+0 12:1.2e+1 120:1.2e+2 1200:1.2e+3 12000:1.2e+4 120000:1.2e+5 1200000:1.2e+6 12000000:1.2e+7 120000000:1.2e+8 1200000000:1.2e+9 12000000000:1.2e+10 120000000000:1.2e+11 1200000000000:1.2e+12 0.00000000000123:1.23e-12 0.0000000000123:1.23e-11 0.000000000123:1.23e-10 0.00000000123:1.23e-9 0.0000000123:1.23e-8 0.000000123:1.23e-7 0.00000123:1.23e-6 0.0000123:1.23e-5 0.000123:1.23e-4 0.00123:1.23e-3 0.0123:1.23e-2 0.123:1.23e-1 1.23:1.23e+0 12.3:1.23e+1 123:1.23e+2 1230:1.23e+3 12300:1.23e+4 123000:1.23e+5 1230000:1.23e+6 12300000:1.23e+7 123000000:1.23e+8 1230000000:1.23e+9 12300000000:1.23e+10 123000000000:1.23e+11 1230000000000:1.23e+12 0.000000000001234:1.234e-12 0.00000000001234:1.234e-11 0.0000000001234:1.234e-10 0.000000001234:1.234e-9 0.00000001234:1.234e-8 0.0000001234:1.234e-7 0.000001234:1.234e-6 0.00001234:1.234e-5 0.0001234:1.234e-4 0.001234:1.234e-3 0.01234:1.234e-2 0.1234:1.234e-1 1.234:1.234e+0 12.34:1.234e+1 123.4:1.234e+2 1234:1.234e+3 12340:1.234e+4 123400:1.234e+5 1234000:1.234e+6 12340000:1.234e+7 123400000:1.234e+8 1234000000:1.234e+9 12340000000:1.234e+10 123400000000:1.234e+11 1234000000000:1.234e+12 0.000003141592:3.141592e-6 0.00003141592:3.141592e-5 0.0003141592:3.141592e-4 0.003141592:3.141592e-3 0.03141592:3.141592e-2 0.3141592:3.141592e-1 3.141592:3.141592e+0 31.41592:3.141592e+1 314.1592:3.141592e+2 3141.592:3.141592e+3 31415.92:3.141592e+4 314159.2:3.141592e+5 3141592:3.141592e+6 # negative numbers -0.000000000001:-1e-12 -0.00000000001:-1e-11 -0.0000000001:-1e-10 -0.000000001:-1e-9 -0.00000001:-1e-8 -0.0000001:-1e-7 -0.000001:-1e-6 -0.00001:-1e-5 -0.0001:-1e-4 -0.001:-1e-3 -0.01:-1e-2 -0.1:-1e-1 -1:-1e+0 -10:-1e+1 -100:-1e+2 -1000:-1e+3 -10000:-1e+4 -100000:-1e+5 -1000000:-1e+6 -10000000:-1e+7 -100000000:-1e+8 -1000000000:-1e+9 -10000000000:-1e+10 -100000000000:-1e+11 -1000000000000:-1e+12 -0.0000000000012:-1.2e-12 -0.000000000012:-1.2e-11 -0.00000000012:-1.2e-10 -0.0000000012:-1.2e-9 -0.000000012:-1.2e-8 -0.00000012:-1.2e-7 -0.0000012:-1.2e-6 -0.000012:-1.2e-5 -0.00012:-1.2e-4 -0.0012:-1.2e-3 -0.012:-1.2e-2 -0.12:-1.2e-1 -1.2:-1.2e+0 -12:-1.2e+1 -120:-1.2e+2 -1200:-1.2e+3 -12000:-1.2e+4 -120000:-1.2e+5 -1200000:-1.2e+6 -12000000:-1.2e+7 -120000000:-1.2e+8 -1200000000:-1.2e+9 -12000000000:-1.2e+10 -120000000000:-1.2e+11 -1200000000000:-1.2e+12 -0.00000000000123:-1.23e-12 -0.0000000000123:-1.23e-11 -0.000000000123:-1.23e-10 -0.00000000123:-1.23e-9 -0.0000000123:-1.23e-8 -0.000000123:-1.23e-7 -0.00000123:-1.23e-6 -0.0000123:-1.23e-5 -0.000123:-1.23e-4 -0.00123:-1.23e-3 -0.0123:-1.23e-2 -0.123:-1.23e-1 -1.23:-1.23e+0 -12.3:-1.23e+1 -123:-1.23e+2 -1230:-1.23e+3 -12300:-1.23e+4 -123000:-1.23e+5 -1230000:-1.23e+6 -12300000:-1.23e+7 -123000000:-1.23e+8 -1230000000:-1.23e+9 -12300000000:-1.23e+10 -123000000000:-1.23e+11 -1230000000000:-1.23e+12 -0.000000000001234:-1.234e-12 -0.00000000001234:-1.234e-11 -0.0000000001234:-1.234e-10 -0.000000001234:-1.234e-9 -0.00000001234:-1.234e-8 -0.0000001234:-1.234e-7 -0.000001234:-1.234e-6 -0.00001234:-1.234e-5 -0.0001234:-1.234e-4 -0.001234:-1.234e-3 -0.01234:-1.234e-2 -0.1234:-1.234e-1 -1.234:-1.234e+0 -12.34:-1.234e+1 -123.4:-1.234e+2 -1234:-1.234e+3 -12340:-1.234e+4 -123400:-1.234e+5 -1234000:-1.234e+6 -12340000:-1.234e+7 -123400000:-1.234e+8 -1234000000:-1.234e+9 -12340000000:-1.234e+10 -123400000000:-1.234e+11 -1234000000000:-1.234e+12 -0.000003141592:-3.141592e-6 -0.00003141592:-3.141592e-5 -0.0003141592:-3.141592e-4 -0.003141592:-3.141592e-3 -0.03141592:-3.141592e-2 -0.3141592:-3.141592e-1 -3.141592:-3.141592e+0 -31.41592:-3.141592e+1 -314.1592:-3.141592e+2 -3141.592:-3.141592e+3 -31415.92:-3.141592e+4 -314159.2:-3.141592e+5 -3141592:-3.141592e+6 Math-BigInt-2.005003/xt/author/bnstr-mbi.t0000644403072340010010000000533614537274605017777 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 222; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigInt -> accuracy($accu);| . qq| \$x = Math::BigInt -> new("$x_str");| . qq| \$str = \$x -> bnstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 1:1e+0 10:1e+1 100:1e+2 1000:1e+3 10000:1e+4 100000:1e+5 1000000:1e+6 10000000:1e+7 100000000:1e+8 1000000000:1e+9 10000000000:1e+10 100000000000:1e+11 1000000000000:1e+12 12:1.2e+1 120:1.2e+2 1200:1.2e+3 12000:1.2e+4 120000:1.2e+5 1200000:1.2e+6 12000000:1.2e+7 120000000:1.2e+8 1200000000:1.2e+9 12000000000:1.2e+10 120000000000:1.2e+11 1200000000000:1.2e+12 123:1.23e+2 1230:1.23e+3 12300:1.23e+4 123000:1.23e+5 1230000:1.23e+6 12300000:1.23e+7 123000000:1.23e+8 1230000000:1.23e+9 12300000000:1.23e+10 123000000000:1.23e+11 1230000000000:1.23e+12 1234:1.234e+3 12340:1.234e+4 123400:1.234e+5 1234000:1.234e+6 12340000:1.234e+7 123400000:1.234e+8 1234000000:1.234e+9 12340000000:1.234e+10 123400000000:1.234e+11 1234000000000:1.234e+12 3:3e+0 31:3.1e+1 314:3.14e+2 3141:3.141e+3 31415:3.1415e+4 314159:3.14159e+5 3141592:3.141592e+6 # negative numbers -1:-1e+0 -10:-1e+1 -100:-1e+2 -1000:-1e+3 -10000:-1e+4 -100000:-1e+5 -1000000:-1e+6 -10000000:-1e+7 -100000000:-1e+8 -1000000000:-1e+9 -10000000000:-1e+10 -100000000000:-1e+11 -1000000000000:-1e+12 -12:-1.2e+1 -120:-1.2e+2 -1200:-1.2e+3 -12000:-1.2e+4 -120000:-1.2e+5 -1200000:-1.2e+6 -12000000:-1.2e+7 -120000000:-1.2e+8 -1200000000:-1.2e+9 -12000000000:-1.2e+10 -120000000000:-1.2e+11 -1200000000000:-1.2e+12 -123:-1.23e+2 -1230:-1.23e+3 -12300:-1.23e+4 -123000:-1.23e+5 -1230000:-1.23e+6 -12300000:-1.23e+7 -123000000:-1.23e+8 -1230000000:-1.23e+9 -12300000000:-1.23e+10 -123000000000:-1.23e+11 -1230000000000:-1.23e+12 -1234:-1.234e+3 -12340:-1.234e+4 -123400:-1.234e+5 -1234000:-1.234e+6 -12340000:-1.234e+7 -123400000:-1.234e+8 -1234000000:-1.234e+9 -12340000000:-1.234e+10 -123400000000:-1.234e+11 -1234000000000:-1.234e+12 -3:-3e+0 -31:-3.1e+1 -314:-3.14e+2 -3141:-3.141e+3 -31415:-3.1415e+4 -314159:-3.14159e+5 -3141592:-3.141592e+6 Math-BigInt-2.005003/xt/author/bnstr-mbr.t0000644403072340010010000000305114775750711020001 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 8; use Math::BigRat; # Reset accuracy and precision. Math::BigRat -> accuracy(undef); Math::BigRat -> precision(undef); # Inf and NaN. note(qq|\nMath::BigRat -> new("+inf") -> bnstr();\n\n|); is(Math::BigRat -> new("+inf") -> bnstr(), 'inf'); note(qq|\nMath::BigRat -> new("-inf") -> bnstr();\n\n|); is(Math::BigRat -> new("-inf") -> bnstr(), '-inf'); note(qq|\nMath::BigRat -> new("NaN") -> bnstr();\n\n|); is(Math::BigRat -> new("NaN") -> bnstr(), 'NaN'); # Default rounding. note(qq|\nMath::BigRat -> new("355/113") -> bnstr();\n\n|); is(Math::BigRat -> new("355/113") -> bnstr(), '3.141592920353982300884955752212389380531e+0'); # Accuracy as argument. note(qq|\nMath::BigRat -> new("355/113") -> bnstr(3);\n\n|); is(Math::BigRat -> new("355/113") -> bnstr(3), '3.14e+0'); # Precision as argument. note(qq|\nMath::BigRat -> new("355/113") -> bnstr(undef, -3);\n\n|); is(Math::BigRat -> new("355/113") -> bnstr(undef, -3), '3.142e+0'); SKIP: { skip "accuracy and precision as class variables are not yet supported", 2; # Accuracy as class variable. note(qq|\nMath::BigRat -> accuracy(5); Math::BigRat -> new("355/113") -> bnstr();\n\n|); Math::BigRat -> accuracy(5); is(Math::BigRat -> new("355/113") -> bnstr(), '3.1416e+0'); # Precision as class variable. note(qq|\nMath::BigRat -> precision(-5); Math::BigRat -> new("355/113") -> bnstr();\n\n|); Math::BigRat -> precision(-5); is(Math::BigRat -> new("355/113") -> bnstr(), '3.14159e+0'); } Math-BigInt-2.005003/xt/author/bone-mbf.t0000644403072340010010000000412514546553333017560 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 9; use Math::BigFloat; my $x; note("bone() as a class method"); $x = Math::BigFloat -> bone(); subtest '$x = Math::BigFloat -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat -> bone("+"); subtest '$x = Math::BigFloat -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat -> bone("-"); subtest '$x = Math::BigFloat -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", -1, '$x == 0'); }; note("bone() as an instane method"); $x = Math::BigFloat -> new("2") -> bone(); subtest '$x = Math::BigFloat -> new("2") -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat -> new("2") -> bone("+"); subtest '$x = Math::BigFloat -> new("2") -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat -> new("2") -> bone("-"); subtest '$x = Math::BigFloat -> new("2") -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", -1, '$x == 0'); }; note("bone() as a function"); $x = Math::BigFloat::bone(); subtest '$x = Math::BigFloat -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat::bone("+"); subtest '$x = Math::BigFloat -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 1, '$x == 0'); }; $x = Math::BigFloat::bone("-"); subtest '$x = Math::BigFloat -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", -1, '$x == 0'); }; Math-BigInt-2.005003/xt/author/bone-mbi.t0000644403072340010010000000401714537274605017565 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 9; use Math::BigInt; my $x; note("bone() as a class method"); $x = Math::BigInt -> bone(); subtest '$x = Math::BigInt -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt -> bone("+"); subtest '$x = Math::BigInt -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt -> bone("-"); subtest '$x = Math::BigInt -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bone() as an instane method"); $x = Math::BigInt -> new("2") -> bone(); subtest '$x = Math::BigInt -> new("2") -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt -> new("2") -> bone("+"); subtest '$x = Math::BigInt -> new("2") -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt -> new("2") -> bone("-"); subtest '$x = Math::BigInt -> new("2") -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bone() as a function"); $x = Math::BigInt::bone(); subtest '$x = Math::BigInt -> bone()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt::bone("+"); subtest '$x = Math::BigInt -> bone("+")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 1, '$x == 1'); }; $x = Math::BigInt::bone("-"); subtest '$x = Math::BigInt -> bone("-")' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; Math-BigInt-2.005003/xt/author/bperm-mbi-mbr-mbf.t0000644403072340010010000012614014761570422021264 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More tests => 51951; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } while () { s/(^|\s+)#.*$//; # remove comments s/^\s+//; # remove leading whitespace s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($nval, $kval, $outval) = split /:/; for my $class (@classes) { for my $scalar_context (0, 1) { for my $instance_method (0, 1) { for my $n_is_scalar (0, 1) { for my $k_is_scalar (0, 1) { my ($n, $k, $got, @got); # We cannot use an instance method when the first # operand is scalar. next if $instance_method && $n_is_scalar; # Build test. my $test; $test .= $n_is_scalar ? qq|\$n = "$nval";| : qq|\$n = $class -> new("$nval");|; $test .= $k_is_scalar ? qq| \$k = "$kval";| : qq| \$k = $class -> new("$kval");|; $test .= $scalar_context ? qq| \$got =| : qq| \@got =|; $test .= $instance_method ? qq| \$n -> bperm(\$k);| : qq| $class -> bperm(\$n, \$k);|; # Display tests. note("\n$test\n\n"); subtest $test, sub { eval $test; is($@, "", '$@ is empty'); unless ($scalar_context) { # Check number of output arguments. cmp_ok(scalar(@got), '==', 1, "got one output arg"); $got = $got[0]; } # Check output. is(ref($got), $class, "output arg is a $class"); is($got, $outval, "output arg has the right value"); unless ($n_is_scalar) { is(refaddr($got), refaddr($n), "the output is the first operand"); } # Check the second operand. if ($k_is_scalar) { is(ref($k), '', "second input arg is still a scalar"); is($k, $kval, "second input arg is unmodified"); } else { is(ref($k), $class, "second input arg is still a $class"); is($k, $kval, "second input arg is unmodified"); } }; } } } } } } __DATA__ NaN:NaN:NaN NaN:3:NaN 3:NaN:NaN inf:-inf:NaN inf:-1:NaN inf:0:1 inf:1:inf inf:2:inf inf:inf:NaN 0:inf:NaN 1:inf:NaN 2:inf:NaN 0:-1:NaN 0:0:1 0:1:NaN 1:-1:NaN 1:0:1 1:1:1 1:2:NaN 2:-1:NaN 2:0:1 2:1:2 2:2:2 2:3:NaN 3:-1:NaN 3:0:1 3:1:3 3:2:6 3:3:6 3:4:NaN 4:-1:NaN 4:0:1 4:1:4 4:2:12 4:3:24 4:4:24 4:5:NaN 5:-1:NaN 5:0:1 5:1:5 5:2:20 5:3:60 5:4:120 5:5:120 5:6:NaN 6:-1:NaN 6:0:1 6:1:6 6:2:30 6:3:120 6:4:360 6:5:720 6:6:720 6:7:NaN 7:-1:NaN 7:0:1 7:1:7 7:2:42 7:3:210 7:4:840 7:5:2520 7:6:5040 7:7:5040 7:8:NaN 8:-1:NaN 8:0:1 8:1:8 8:2:56 8:3:336 8:4:1680 8:5:6720 8:6:20160 8:7:40320 8:8:40320 8:9:NaN 9:-1:NaN 9:0:1 9:1:9 9:2:72 9:3:504 9:4:3024 9:5:15120 9:6:60480 9:7:181440 9:8:362880 9:9:362880 9:10:NaN 10:-1:NaN 10:0:1 10:1:10 10:2:90 10:3:720 10:4:5040 10:5:30240 10:6:151200 10:7:604800 10:8:1814400 10:9:3628800 10:10:3628800 10:11:NaN 11:-1:NaN 11:0:1 11:1:11 11:2:110 11:3:990 11:4:7920 11:5:55440 11:6:332640 11:7:1663200 11:8:6652800 11:9:19958400 11:10:39916800 11:11:39916800 11:12:NaN 12:-1:NaN 12:0:1 12:1:12 12:2:132 12:3:1320 12:4:11880 12:5:95040 12:6:665280 12:7:3991680 12:8:19958400 12:9:79833600 12:10:239500800 12:11:479001600 12:12:479001600 12:13:NaN 13:-1:NaN 13:0:1 13:1:13 13:2:156 13:3:1716 13:4:17160 13:5:154440 13:6:1235520 13:7:8648640 13:8:51891840 13:9:259459200 13:10:1037836800 13:11:3113510400 13:12:6227020800 13:13:6227020800 13:14:NaN 14:-1:NaN 14:0:1 14:1:14 14:2:182 14:3:2184 14:4:24024 14:5:240240 14:6:2162160 14:7:17297280 14:8:121080960 14:9:726485760 14:10:3632428800 14:11:14529715200 14:12:43589145600 14:13:87178291200 14:14:87178291200 14:15:NaN 15:-1:NaN 15:0:1 15:1:15 15:2:210 15:3:2730 15:4:32760 15:5:360360 15:6:3603600 15:7:32432400 15:8:259459200 15:9:1816214400 15:10:10897286400 15:11:54486432000 15:12:217945728000 15:13:653837184000 15:14:1307674368000 15:15:1307674368000 15:16:NaN 16:-1:NaN 16:0:1 16:1:16 16:2:240 16:3:3360 16:4:43680 16:5:524160 16:6:5765760 16:7:57657600 16:8:518918400 16:9:4151347200 16:10:29059430400 16:11:174356582400 16:12:871782912000 16:13:3487131648000 16:14:10461394944000 16:15:20922789888000 16:16:20922789888000 16:17:NaN 17:-1:NaN 17:0:1 17:1:17 17:2:272 17:3:4080 17:4:57120 17:5:742560 17:6:8910720 17:7:98017920 17:8:980179200 17:9:8821612800 17:10:70572902400 17:11:494010316800 17:12:2964061900800 17:13:14820309504000 17:14:59281238016000 17:15:177843714048000 17:16:355687428096000 17:17:355687428096000 17:18:NaN 18:-1:NaN 18:0:1 18:1:18 18:2:306 18:3:4896 18:4:73440 18:5:1028160 18:6:13366080 18:7:160392960 18:8:1764322560 18:9:17643225600 18:10:158789030400 18:11:1270312243200 18:12:8892185702400 18:13:53353114214400 18:14:266765571072000 18:15:1067062284288000 18:16:3201186852864000 18:17:6402373705728000 18:18:6402373705728000 18:19:NaN 19:-1:NaN 19:0:1 19:1:19 19:2:342 19:3:5814 19:4:93024 19:5:1395360 19:6:19535040 19:7:253955520 19:8:3047466240 19:9:33522128640 19:10:335221286400 19:11:3016991577600 19:12:24135932620800 19:13:168951528345600 19:14:1013709170073600 19:15:5068545850368000 19:16:20274183401472000 19:17:60822550204416000 19:18:121645100408832000 19:19:121645100408832000 19:20:NaN 20:-1:NaN 20:0:1 20:1:20 20:2:380 20:3:6840 20:4:116280 20:5:1860480 20:6:27907200 20:7:390700800 20:8:5079110400 20:9:60949324800 20:10:670442572800 20:11:6704425728000 20:12:60339831552000 20:13:482718652416000 20:14:3379030566912000 20:15:20274183401472000 20:16:101370917007360000 20:17:405483668029440000 20:18:1216451004088320000 20:19:2432902008176640000 20:20:2432902008176640000 20:21:NaN 21:-1:NaN 21:0:1 21:1:21 21:2:420 21:3:7980 21:4:143640 21:5:2441880 21:6:39070080 21:7:586051200 21:8:8204716800 21:9:106661318400 21:10:1279935820800 21:11:14079294028800 21:12:140792940288000 21:13:1267136462592000 21:14:10137091700736000 21:15:70959641905152000 21:16:425757851430912000 21:17:2128789257154560000 21:18:8515157028618240000 21:19:25545471085854720000 21:20:51090942171709440000 21:21:51090942171709440000 21:22:NaN 22:-1:NaN 22:0:1 22:1:22 22:2:462 22:3:9240 22:4:175560 22:5:3160080 22:6:53721360 22:7:859541760 22:8:12893126400 22:9:180503769600 22:10:2346549004800 22:11:28158588057600 22:12:309744468633600 22:13:3097444686336000 22:14:27877002177024000 22:15:223016017416192000 22:16:1561112121913344000 22:17:9366672731480064000 22:18:46833363657400320000 22:19:187333454629601280000 22:20:562000363888803840000 22:21:1124000727777607680000 22:22:1124000727777607680000 22:23:NaN 23:-1:NaN 23:0:1 23:1:23 23:2:506 23:3:10626 23:4:212520 23:5:4037880 23:6:72681840 23:7:1235591280 23:8:19769460480 23:9:296541907200 23:10:4151586700800 23:11:53970627110400 23:12:647647525324800 23:13:7124122778572800 23:14:71241227785728000 23:15:641171050071552000 23:16:5129368400572416000 23:17:35905578804006912000 23:18:215433472824041472000 23:19:1077167364120207360000 23:20:4308669456480829440000 23:21:12926008369442488320000 23:22:25852016738884976640000 23:23:25852016738884976640000 23:24:NaN 24:-1:NaN 24:0:1 24:1:24 24:2:552 24:3:12144 24:4:255024 24:5:5100480 24:6:96909120 24:7:1744364160 24:8:29654190720 24:9:474467051520 24:10:7117005772800 24:11:99638080819200 24:12:1295295050649600 24:13:15543540607795200 24:14:170978946685747200 24:15:1709789466857472000 24:16:15388105201717248000 24:17:123104841613737984000 24:18:861733891296165888000 24:19:5170403347776995328000 24:20:25852016738884976640000 24:21:103408066955539906560000 24:22:310224200866619719680000 24:23:620448401733239439360000 24:24:620448401733239439360000 24:25:NaN 25:-1:NaN 25:0:1 25:1:25 25:2:600 25:3:13800 25:4:303600 25:5:6375600 25:6:127512000 25:7:2422728000 25:8:43609104000 25:9:741354768000 25:10:11861676288000 25:11:177925144320000 25:12:2490952020480000 25:13:32382376266240000 25:14:388588515194880000 25:15:4274473667143680000 25:16:42744736671436800000 25:17:384702630042931200000 25:18:3077621040343449600000 25:19:21543347282404147200000 25:20:129260083694424883200000 25:21:646300418472124416000000 25:22:2585201673888497664000000 25:23:7755605021665492992000000 25:24:15511210043330985984000000 25:25:15511210043330985984000000 25:26:NaN 26:-1:NaN 26:0:1 26:1:26 26:2:650 26:3:15600 26:4:358800 26:5:7893600 26:6:165765600 26:7:3315312000 26:8:62990928000 26:9:1133836704000 26:10:19275223968000 26:11:308403583488000 26:12:4626053752320000 26:13:64764752532480000 26:14:841941782922240000 26:15:10103301395066880000 26:16:111136315345735680000 26:17:1111363153457356800000 26:18:10002268381116211200000 26:19:80018147048929689600000 26:20:560127029342507827200000 26:21:3360762176055046963200000 26:22:16803810880275234816000000 26:23:67215243521100939264000000 26:24:201645730563302817792000000 26:25:403291461126605635584000000 26:26:403291461126605635584000000 26:27:NaN 27:-1:NaN 27:0:1 27:1:27 27:2:702 27:3:17550 27:4:421200 27:5:9687600 27:6:213127200 27:7:4475671200 27:8:89513424000 27:9:1700755056000 27:10:30613591008000 27:11:520431047136000 27:12:8326896754176000 27:13:124903451312640000 27:14:1748648318376960000 27:15:22732428138900480000 27:16:272789137666805760000 27:17:3000680514334863360000 27:18:30006805143348633600000 27:19:270061246290137702400000 27:20:2160489970321101619200000 27:21:15123429792247711334400000 27:22:90740578753486268006400000 27:23:453702893767431340032000000 27:24:1814811575069725360128000000 27:25:5444434725209176080384000000 27:26:10888869450418352160768000000 27:27:10888869450418352160768000000 27:28:NaN 28:-1:NaN 28:0:1 28:1:28 28:2:756 28:3:19656 28:4:491400 28:5:11793600 28:6:271252800 28:7:5967561600 28:8:125318793600 28:9:2506375872000 28:10:47621141568000 28:11:857180548224000 28:12:14572069319808000 28:13:233153109116928000 28:14:3497296636753920000 28:15:48962152914554880000 28:16:636507987889213440000 28:17:7638095854670561280000 28:18:84019054401376174080000 28:19:840190544013761740800000 28:20:7561714896123855667200000 28:21:60493719168990845337600000 28:22:423456034182935917363200000 28:23:2540736205097615504179200000 28:24:12703681025488077520896000000 28:25:50814724101952310083584000000 28:26:152444172305856930250752000000 28:27:304888344611713860501504000000 28:28:304888344611713860501504000000 28:29:NaN 29:-1:NaN 29:0:1 29:1:29 29:2:812 29:3:21924 29:4:570024 29:5:14250600 29:6:342014400 29:7:7866331200 29:8:173059286400 29:9:3634245014400 29:10:72684900288000 29:11:1381013105472000 29:12:24858235898496000 29:13:422590010274432000 29:14:6761440164390912000 29:15:101421602465863680000 29:16:1419902434522091520000 29:17:18458731648787189760000 29:18:221504779785446277120000 29:19:2436552577639909048320000 29:20:24365525776399090483200000 29:21:219289731987591814348800000 29:22:1754317855900734514790400000 29:23:12280224991305141603532800000 29:24:73681349947830849621196800000 29:25:368406749739154248105984000000 29:26:1473626998956616992423936000000 29:27:4420880996869850977271808000000 29:28:8841761993739701954543616000000 29:29:8841761993739701954543616000000 29:30:NaN 30:-1:NaN 30:0:1 30:1:30 30:2:870 30:3:24360 30:4:657720 30:5:17100720 30:6:427518000 30:7:10260432000 30:8:235989936000 30:9:5191778592000 30:10:109027350432000 30:11:2180547008640000 30:12:41430393164160000 30:13:745747076954880000 30:14:12677700308232960000 30:15:202843204931727360000 30:16:3042648073975910400000 30:17:42597073035662745600000 30:18:553761949463615692800000 30:19:6645143393563388313600000 30:20:73096577329197271449600000 30:21:730965773291972714496000000 30:22:6578691959627754430464000000 30:23:52629535677022035443712000000 30:24:368406749739154248105984000000 30:25:2210440498434925488635904000000 30:26:11052202492174627443179520000000 30:27:44208809968698509772718080000000 30:28:132626429906095529318154240000000 30:29:265252859812191058636308480000000 30:30:265252859812191058636308480000000 30:31:NaN 31:-1:NaN 31:0:1 31:1:31 31:2:930 31:3:26970 31:4:755160 31:5:20389320 31:6:530122320 31:7:13253058000 31:8:318073392000 31:9:7315688016000 31:10:160945136352000 31:11:3379847863392000 31:12:67596957267840000 31:13:1284342188088960000 31:14:23118159385601280000 31:15:393008709555221760000 31:16:6288139352883548160000 31:17:94322090293253222400000 31:18:1320509264105545113600000 31:19:17166620433372086476800000 31:20:205999445200465037721600000 31:21:2265993897205115414937600000 31:22:22659938972051154149376000000 31:23:203939450748460387344384000000 31:24:1631515605987683098755072000000 31:25:11420609241913781691285504000000 31:26:68523655451482690147713024000000 31:27:342618277257413450738565120000000 31:28:1370473109029653802954260480000000 31:29:4111419327088961408862781440000000 31:30:8222838654177922817725562880000000 31:31:8222838654177922817725562880000000 31:32:NaN 32:-1:NaN 32:0:1 32:1:32 32:2:992 32:3:29760 32:4:863040 32:5:24165120 32:6:652458240 32:7:16963914240 32:8:424097856000 32:9:10178348544000 32:10:234102016512000 32:11:5150244363264000 32:12:108155131628544000 32:13:2163102632570880000 32:14:41098950018846720000 32:15:739781100339240960000 32:16:12576278705767096320000 32:17:201220459292273541120000 32:18:3018306889384103116800000 32:19:42256296451377443635200000 32:20:549331853867906767257600000 32:21:6591982246414881207091200000 32:22:72511804710563693278003200000 32:23:725118047105636932780032000000 32:24:6526062423950732395020288000000 32:25:52208499391605859160162304000000 32:26:365459495741241014121136128000000 32:27:2192756974447446084726816768000000 32:28:10963784872237230423634083840000000 32:29:43855139488948921694536335360000000 32:30:131565418466846765083609006080000000 32:31:263130836933693530167218012160000000 32:32:263130836933693530167218012160000000 32:33:NaN 33:-1:NaN 33:0:1 33:1:33 33:2:1056 33:3:32736 33:4:982080 33:5:28480320 33:6:797448960 33:7:21531121920 33:8:559809169920 33:9:13995229248000 33:10:335885501952000 33:11:7725366544896000 33:12:169958063987712000 33:13:3569119343741952000 33:14:71382386874839040000 33:15:1356265350621941760000 33:16:24412776311194951680000 33:17:415017197290314178560000 33:18:6640275156645026856960000 33:19:99604127349675402854400000 33:20:1394457782895455639961600000 33:21:18127951177640923319500800000 33:22:217535414131691079834009600000 33:23:2392889555448601878174105600000 33:24:23928895554486018781741056000000 33:25:215360059990374169035669504000000 33:26:1722880479922993352285356032000000 33:27:12060163359460953465997492224000000 33:28:72360980156765720795984953344000000 33:29:361804900783828603979924766720000000 33:30:1447219603135314415919699066880000000 33:31:4341658809405943247759097200640000000 33:32:8683317618811886495518194401280000000 33:33:8683317618811886495518194401280000000 33:34:NaN 34:-1:NaN 34:0:1 34:1:34 34:2:1122 34:3:35904 34:4:1113024 34:5:33390720 34:6:968330880 34:7:27113264640 34:8:732058145280 34:9:19033511777280 34:10:475837794432000 34:11:11420107066368000 34:12:262662462526464000 34:13:5778574175582208000 34:14:121350057687226368000 34:15:2427001153744527360000 34:16:46113021921146019840000 34:17:830034394580628357120000 34:18:14110584707870682071040000 34:19:225769355325930913136640000 34:20:3386540329888963697049600000 34:21:47411564618445491758694400000 34:22:616350340039791392863027200000 34:23:7396204080477496714356326400000 34:24:81358244885252463857919590400000 34:25:813582448852524638579195904000000 34:26:7322242039672721747212763136000000 34:27:58577936317381773977702105088000000 34:28:410045554221672417843914735616000000 34:29:2460273325330034507063488413696000000 34:30:12301366626650172535317442068480000000 34:31:49205466506600690141269768273920000000 34:32:147616399519802070423809304821760000000 34:33:295232799039604140847618609643520000000 34:34:295232799039604140847618609643520000000 34:35:NaN 35:-1:NaN 35:0:1 35:1:35 35:2:1190 35:3:39270 35:4:1256640 35:5:38955840 35:6:1168675200 35:7:33891580800 35:8:948964262400 35:9:25622035084800 35:10:666172912204800 35:11:16654322805120000 35:12:399703747322880000 35:13:9193186188426240000 35:14:202250096145377280000 35:15:4247252019052922880000 35:16:84945040381058457600000 35:17:1613955767240110694400000 35:18:29051203810321992499200000 35:19:493870464775473872486400000 35:20:7901927436407581959782400000 35:21:118528911546113729396736000000 35:22:1659404761645592211554304000000 35:23:21572261901392698750205952000000 35:24:258867142816712385002471424000000 35:25:2847538570983836235027185664000000 35:26:28475385709838362350271856640000000 35:27:256278471388545261152446709760000000 35:28:2050227771108362089219573678080000000 35:29:14351594397758534624537015746560000000 35:30:86109566386551207747222094479360000000 35:31:430547831932756038736110472396800000000 35:32:1722191327731024154944441889587200000000 35:33:5166573983193072464833325668761600000000 35:34:10333147966386144929666651337523200000000 35:35:10333147966386144929666651337523200000000 35:36:NaN 36:-1:NaN 36:0:1 36:1:36 36:2:1260 36:3:42840 36:4:1413720 36:5:45239040 36:6:1402410240 36:7:42072307200 36:8:1220096908800 36:9:34162713446400 36:10:922393263052800 36:11:23982224839372800 36:12:599555620984320000 36:13:14389334903623680000 36:14:330954702783344640000 36:15:7281003461233582080000 36:16:152901072685905223680000 36:17:3058021453718104473600000 36:18:58102407620643984998400000 36:19:1045843337171591729971200000 36:20:17779336731917059409510400000 36:21:284469387710672950552166400000 36:22:4267040815660094258282496000000 36:23:59738571419241319615954944000000 36:24:776601428450137155007414272000000 36:25:9319217141401645860088971264000000 36:26:102511388555418104460978683904000000 36:27:1025113885554181044609786839040000000 36:28:9226024969987629401488081551360000000 36:29:73808199759901035211904652410880000000 36:30:516657398319307246483332566876160000000 36:31:3099944389915843478899995401256960000000 36:32:15499721949579217394499977006284800000000 36:33:61998887798316869577999908025139200000000 36:34:185996663394950608733999724075417600000000 36:35:371993326789901217467999448150835200000000 36:36:371993326789901217467999448150835200000000 36:37:NaN 37:-1:NaN 37:0:1 37:1:37 37:2:1332 37:3:46620 37:4:1585080 37:5:52307640 37:6:1673844480 37:7:51889178880 37:8:1556675366400 37:9:45143585625600 37:10:1264020397516800 37:11:34128550732953600 37:12:887342319056793600 37:13:22183557976419840000 37:14:532405391434076160000 37:15:12245324002983751680000 37:16:269397128065642536960000 37:17:5657339689378493276160000 37:18:113146793787569865523200000 37:19:2149789081963827444940800000 37:20:38696203475348894008934400000 37:21:657835459080931198151884800000 37:22:10525367345294899170430156800000 37:23:157880510179423487556452352000000 37:24:2210327142511928825790332928000000 37:25:28734252852655074735274328064000000 37:26:344811034231860896823291936768000000 37:27:3792921376550469865056211304448000000 37:28:37929213765504698650562113044480000000 37:29:341362923889542287855059017400320000000 37:30:2730903391116338302840472139202560000000 37:31:19116323737814368119883304974417920000000 37:32:114697942426886208719299829846507520000000 37:33:573489712134431043596499149232537600000000 37:34:2293958848537724174385996596930150400000000 37:35:6881876545613172523157989790790451200000000 37:36:13763753091226345046315979581580902400000000 37:37:13763753091226345046315979581580902400000000 37:38:NaN 38:-1:NaN 38:0:1 38:1:38 38:2:1406 38:3:50616 38:4:1771560 38:5:60233040 38:6:1987690320 38:7:63606090240 38:8:1971788797440 38:9:59153663923200 38:10:1715456253772800 38:11:48032775105638400 38:12:1296884927852236800 38:13:33719008124158156800 38:14:842975203103953920000 38:15:20231404874494894080000 38:16:465322312113382563840000 38:17:10237090866494416404480000 38:18:214978908196382744494080000 38:19:4299578163927654889881600000 38:20:81691985114625442907750400000 38:21:1470455732063257972339507200000 38:22:24997747445075385529771622400000 38:23:399963959121206168476345958400000 38:24:5999459386818092527145189376000000 38:25:83992431415453295380032651264000000 38:26:1091901608400892839940424466432000000 38:27:13102819300810714079285093597184000000 38:28:144131012308917854872136029569024000000 38:29:1441310123089178548721360295690240000000 38:30:12971791107802606938492242661212160000000 38:31:103774328862420855507937941289697280000000 38:32:726420302036945988555565589027880960000000 38:33:4358521812221675931333393534167285760000000 38:34:21792609061108379656666967670836428800000000 38:35:87170436244433518626667870683345715200000000 38:36:261511308733300555880003612050037145600000000 38:37:523022617466601111760007224100074291200000000 38:38:523022617466601111760007224100074291200000000 38:39:NaN 39:-1:NaN 39:0:1 39:1:39 39:2:1482 39:3:54834 39:4:1974024 39:5:69090840 39:6:2349088560 39:7:77519922480 39:8:2480637519360 39:9:76899763100160 39:10:2306992893004800 39:11:66902793897139200 39:12:1873278229119897600 39:13:50578512186237235200 39:14:1315041316842168115200 39:15:32876032921054202880000 39:16:789024790105300869120000 39:17:18147570172421919989760000 39:18:399246543793282239774720000 39:19:8384177419658927035269120000 39:20:167683548393178540705382400000 39:21:3185987419470392273402265600000 39:22:57347773550467060921240780800000 39:23:974912150357940035661093273600000 39:24:15598594405727040570577492377600000 39:25:233978916085905608558662385664000000 39:26:3275704825202678519821273399296000000 39:27:42584162727634820757676554190848000000 39:28:511009952731617849092118650290176000000 39:29:5621109480047796340013305153191936000000 39:30:56211094800477963400133051531919360000000 39:31:505899853204301670601197463787274240000000 39:32:4047198825634413364809579710298193920000000 39:33:28330391779440893553667057972087357440000000 39:34:169982350676645361322002347832524144640000000 39:35:849911753383226806610011739162620723200000000 39:36:3399647013532907226440046956650482892800000000 39:37:10198941040598721679320140869951448678400000000 39:38:20397882081197443358640281739902897356800000000 39:39:20397882081197443358640281739902897356800000000 39:40:NaN 40:-1:NaN 40:0:1 40:1:40 40:2:1560 40:3:59280 40:4:2193360 40:5:78960960 40:6:2763633600 40:7:93963542400 40:8:3100796899200 40:9:99225500774400 40:10:3075990524006400 40:11:92279715720192000 40:12:2676111755885568000 40:13:74931129164795904000 40:14:2023140487449489408000 40:15:52601652673686724608000 40:16:1315041316842168115200000 40:17:31560991604212034764800000 40:18:725902806896876799590400000 40:19:15969861751731289590988800000 40:20:335367096786357081410764800000 40:21:6707341935727141628215296000000 40:22:127439496778815690936090624000000 40:23:2293910942018682436849631232000000 40:24:38996486014317601426443730944000000 40:25:623943776229081622823099695104000000 40:26:9359156643436224342346495426560000000 40:27:131028193008107140792850935971840000000 40:28:1703366509105392830307062167633920000000 40:29:20440398109264713963684746011607040000000 40:30:224844379201911853600532206127677440000000 40:31:2248443792019118536005322061276774400000000 40:32:20235994128172066824047898551490969600000000 40:33:161887953025376534592383188411927756800000000 40:34:1133215671177635742146682318883494297600000000 40:35:6799294027065814452880093913300965785600000000 40:36:33996470135329072264400469566504828928000000000 40:37:135985880541316289057601878266019315712000000000 40:38:407957641623948867172805634798057947136000000000 40:39:815915283247897734345611269596115894272000000000 40:40:815915283247897734345611269596115894272000000000 40:41:NaN 41:-1:NaN 41:0:1 41:1:41 41:2:1640 41:3:63960 41:4:2430480 41:5:89927760 41:6:3237399360 41:7:113308977600 41:8:3852505238400 41:9:127132672867200 41:10:4068245531750400 41:11:126115611484262400 41:12:3783468344527872000 41:13:109720581991308288000 41:14:3072176295756632064000 41:15:82948759985429065728000 41:16:2156667759621155708928000 41:17:53916693990528892723200000 41:18:1294000655772693425356800000 41:19:29762015082771948783206400000 41:20:654764331820982873230540800000 41:21:13750050968240640337841356800000 41:22:275001019364812806756827136000000 41:23:5225019367931443328379715584000000 41:24:94050348622765979910834880512000000 41:25:1598855926587021658484192968704000000 41:26:25581694825392346535747087499264000000 41:27:383725422380885198036206312488960000000 41:28:5372155913332392772506888374845440000000 41:29:69838026873321106042589548872990720000000 41:30:838056322479853272511074586475888640000000 41:31:9218619547278385997621820451234775040000000 41:32:92186195472783859976218204512347750400000000 41:33:829675759255054739785963840611129753600000000 41:34:6637406074040437918287710724889038028800000000 41:35:46461842518283065428013975074223266201600000000 41:36:278771055109698392568083850445339597209600000000 41:37:1393855275548491962840419252226697986048000000000 41:38:5575421102193967851361677008906791944192000000000 41:39:16726263306581903554085031026720375832576000000000 41:40:33452526613163807108170062053440751665152000000000 41:41:33452526613163807108170062053440751665152000000000 41:42:NaN 42:-1:NaN 42:0:1 42:1:42 42:2:1722 42:3:68880 42:4:2686320 42:5:102080160 42:6:3776965920 42:7:135970773120 42:8:4758977059200 42:9:161805220012800 42:10:5339572260422400 42:11:170866312333516800 42:12:5296855682339020800 42:13:158905670470170624000 42:14:4608264443634948096000 42:15:129031404421778546688000 42:16:3483847919388020760576000 42:17:90580045904088539774976000 42:18:2264501147602213494374400000 42:19:54348027542453123864985600000 42:20:1250004633476421848894668800000 42:21:27500101936481280675682713600000 42:22:577502140666106894189336985600000 42:23:11550042813322137883786739712000000 42:24:219450813453120619791948054528000000 42:25:3950114642156171156255064981504000000 42:26:67151948916654909656336104685568000000 42:27:1074431182666478554501377674969088000000 42:28:16116467739997178317520665124536320000000 42:29:225630548359960496445289311743508480000000 42:30:2933197128679486453788761052665610240000000 42:31:35198365544153837445465132631987322880000000 42:32:387182020985692211900116458951860551680000000 42:33:3871820209856922119001164589518605516800000000 42:34:34846381888712299071010481305667449651200000000 42:35:278771055109698392568083850445339597209600000000 42:36:1951397385767888747976586953117377180467200000000 42:37:11708384314607332487859521718704263082803200000000 42:38:58541921573036662439297608593521315414016000000000 42:39:234167686292146649757190434374085261656064000000000 42:40:702503058876439949271571303122255784968192000000000 42:41:1405006117752879898543142606244511569936384000000000 42:42:1405006117752879898543142606244511569936384000000000 42:43:NaN 43:-1:NaN 43:0:1 43:1:43 43:2:1806 43:3:74046 43:4:2961840 43:5:115511760 43:6:4389446880 43:7:162409534560 43:8:5846743244160 43:9:204636013545600 43:10:6957624460550400 43:11:229601607198163200 43:12:7347251430341222400 43:13:227764794340577894400 43:14:6832943830217336832000 43:15:198155371076302768128000 43:16:5548350390136477507584000 43:17:149805460533684892704768000 43:18:3894941973875807210323968000 43:19:97373549346895180258099200000 43:20:2336965184325484326194380800000 43:21:53750199239486139502470758400000 43:22:1182504383268695069054356684800000 43:23:24832592048642596450141490380800000 43:24:496651840972851929002829807616000000 43:25:9436384978484186651053766344704000000 43:26:169854929612715359718967794204672000000 43:27:2887533803416161115222452501479424000000 43:28:46200540854658577843559240023670784000000 43:29:693008112819878667653388600355061760000000 43:30:9702113579478301347147440404970864640000000 43:31:126127476533217917512916725264621240320000000 43:32:1513529718398615010155000703175454883840000000 43:33:16648826902384765111705007734930003722240000000 43:34:166488269023847651117050077349300037222400000000 43:35:1498394421214628860053450696143700335001600000000 43:36:11987155369717030880427605569149602680012800000000 43:37:83910087588019216162993238984047218760089600000000 43:38:503460525528115296977959433904283312560537600000000 43:39:2517302627640576484889797169521416562802688000000000 43:40:10069210510562305939559188678085666251210752000000000 43:41:30207631531686917818677566034256998753632256000000000 43:42:60415263063373835637355132068513997507264512000000000 43:43:60415263063373835637355132068513997507264512000000000 43:44:NaN 44:-1:NaN 44:0:1 44:1:44 44:2:1892 44:3:79464 44:4:3258024 44:5:130320960 44:6:5082517440 44:7:193135662720 44:8:7146019520640 44:9:257256702743040 44:10:9003984596006400 44:11:306135476264217600 44:12:10102470716719180800 44:13:323279062935013785600 44:14:10021650950985427353600 44:15:300649528529562820608000 44:16:8718836327357321797632000 44:17:244127417166005010333696000 44:18:6591440263482135279009792000 44:19:171377446850535517254254592000 44:20:4284436171263387931356364800000 44:21:102826468110321310352552755200000 44:22:2365008766537390138108713369600000 44:23:52030192863822583038391694131200000 44:24:1092634050140274243806225576755200000 44:25:21852681002805484876124511535104000000 44:26:415200939053304212646365719166976000000 44:27:7473616902959475827634582945005568000000 44:28:127051487350311089069787910065094656000000 44:29:2032823797604977425116606561041514496000000 44:30:30492356964074661376749098415622717440000000 44:31:426892997497045259274487377818718044160000000 44:32:5549608967461588370568335911643334574080000000 44:33:66595307609539060446820030939720014888960000000 44:34:732548383704929664915020340336920163778560000000 44:35:7325483837049296649150203403369201637785600000000 44:36:65929354533443669842351830630322814740070400000000 44:37:527434836267549358738814645042582517920563200000000 44:38:3692043853872845511171702515298077625443942400000000 44:39:22152263123237073067030215091788465752663654400000000 44:40:110761315616185365335151075458942328763318272000000000 44:41:443045262464741461340604301835769315053273088000000000 44:42:1329135787394224384021812905507307945159819264000000000 44:43:2658271574788448768043625811014615890319638528000000000 44:44:2658271574788448768043625811014615890319638528000000000 44:45:NaN 45:-1:NaN 45:0:1 45:1:45 45:2:1980 45:3:85140 45:4:3575880 45:5:146611080 45:6:5864443200 45:7:228713284800 45:8:8691104822400 45:9:321570878428800 45:10:11576551623436800 45:11:405179306820288000 45:12:13776096431889792000 45:13:454611182252363136000 45:14:14547557832075620352000 45:15:450974292794344230912000 45:16:13529228783830326927360000 45:17:392347634731079480893440000 45:18:10985733772470225465016320000 45:19:296614811856696087555440640000 45:20:7711985108274098276441456640000 45:21:192799627706852456911036416000000 45:22:4627191064964458965864873984000000 45:23:106425394494182556214892101632000000 45:24:2341358678872016236727626235904000000 45:25:49168532256312340971280150953984000000 45:26:983370645126246819425603019079680000000 45:27:18684042257398689569086457362513920000000 45:28:336312760633176412243556232525250560000000 45:29:5717316930763999008140455952929259520000000 45:30:91477070892223984130247295246868152320000000 45:31:1372156063383359761953709428703022284800000000 45:32:19210184887367036667351932001842311987200000000 45:33:249732403535771476675575116023950055833600000000 45:34:2996788842429257720106901392287400670003200000000 45:35:32964677266721834921175915315161407370035200000000 45:36:329646772667218349211759153151614073700352000000000 45:37:2966820954004965142905832378364526663303168000000000 45:38:23734567632039721143246659026916213306425344000000000 45:39:166141973424278048002726613188413493144977408000000000 45:40:996851840545668288016359679130480958869864448000000000 45:41:4984259202728341440081798395652404794349322240000000000 45:42:19937036810913365760327193582609619177397288960000000000 45:43:59811110432740097280981580747828857532191866880000000000 45:44:119622220865480194561963161495657715064383733760000000000 45:45:119622220865480194561963161495657715064383733760000000000 45:46:NaN 46:-1:NaN 46:0:1 46:1:46 46:2:2070 46:3:91080 46:4:3916440 46:5:164490480 46:6:6744109680 46:7:269764387200 46:8:10520811100800 46:9:399790821830400 46:10:14792260407724800 46:11:532521374678092800 46:12:18638248113733248000 46:13:633700435866930432000 46:14:20912114383608704256000 46:15:669187660275478536192000 46:16:20744817468539834621952000 46:17:622344524056195038658560000 46:18:18047991197629656121098240000 46:19:505343753533630371390750720000 46:20:13644281345408020027550269440000 46:21:354751314980608520716307005440000 46:22:8868782874515213017907675136000000 46:23:212850788988365112429784203264000000 46:24:4895568146732397585885036675072000000 46:25:107702499228112746889470806851584000000 46:26:2261752483790367684678886943883264000000 46:27:45235049675807353693577738877665280000000 46:28:859465943840339720177977038675640320000000 46:29:15470386989126114963203586696161525760000000 46:30:262996578815143954374460973834745937920000000 46:31:4207945261042303269991375581355935006720000000 46:32:63119178915634549049870633720339025100800000000 46:33:883668504818883686698188872084746351411200000000 46:34:11487690562645487927076455337101702568345600000000 46:35:137852286751745855124917464045220430820147200000000 46:36:1516375154269204406374092104497424739021619200000000 46:37:15163751542692044063740921044974247390216192000000000 46:38:136473763884228396573668289404768226511945728000000000 46:39:1091790111073827172589346315238145812095565824000000000 46:40:7642530777516790208125424206667020684668960768000000000 46:41:45855184665100741248752545240002124108013764608000000000 46:42:229275923325503706243762726200010620540068823040000000000 46:43:917103693302014824975050904800042482160275292160000000000 46:44:2751311079906044474925152714400127446480825876480000000000 46:45:5502622159812088949850305428800254892961651752960000000000 46:46:5502622159812088949850305428800254892961651752960000000000 46:47:NaN 47:-1:NaN 47:0:1 47:1:47 47:2:2162 47:3:97290 47:4:4280760 47:5:184072680 47:6:7731052560 47:7:316973154960 47:8:12678926198400 47:9:494478121737600 47:10:18790168626028800 47:11:695236239163065600 47:12:25028504609870361600 47:13:875997661345462656000 47:14:29783920485745730304000 47:15:982869376029609100032000 47:16:31451820032947491201024000 47:17:975006421021372227231744000 47:18:29250192630641166816952320000 47:19:848255586288593837691617280000 47:20:23751156416080627455365283840000 47:21:641281223234176941294862663680000 47:22:16673311804088600473666429255680000 47:23:416832795102215011841660731392000000 47:24:10003987082453160284199857553408000000 47:25:230091702896422686536596723728384000000 47:26:5062017463721299103805127922024448000000 47:27:106302366738147281179907686362513408000000 47:28:2126047334762945623598153727250268160000000 47:29:40394899360495966848364920817755095040000000 47:30:727108188488927403270568574719591710720000000 47:31:12360839204311765855599665770233059082240000000 47:32:197773427268988253689594652323728945315840000000 47:33:2966601409034823805343919784855934179737600000000 47:34:41532419726487533274814876987983078516326400000000 47:35:539921456444337932572593400843780020712243200000000 47:36:6479057477332055190871120810125360248546918400000000 47:37:71269632250652607099582328911378962734016102400000000 47:38:712696322506526070995823289113789627340161024000000000 47:39:6414266902558734638962409602024106646061449216000000000 47:40:51314135220469877111699276816192853168491593728000000000 47:41:359198946543289139781894937713349972179441156096000000000 47:42:2155193679259734838691369626280099833076646936576000000000 47:43:10775968396298674193456848131400499165383234682880000000000 47:44:43103873585194696773827392525601996661532938731520000000000 47:45:129311620755584090321482177576805989984598816194560000000000 47:46:258623241511168180642964355153611979969197632389120000000000 47:47:258623241511168180642964355153611979969197632389120000000000 47:48:NaN 48:-1:NaN 48:0:1 48:1:48 48:2:2256 48:3:103776 48:4:4669920 48:5:205476480 48:6:8835488640 48:7:371090522880 48:8:15214711438080 48:9:608588457523200 48:10:23734949843404800 48:11:901928094049382400 48:12:33371339479827148800 48:13:1201368221273777356800 48:14:42047887744582207488000 48:15:1429628183315795054592000 48:16:47177730049421236801536000 48:17:1509687361581479577649152000 48:18:46800308209025866907123712000 48:19:1404009246270776007213711360000 48:20:40716268141852504209197629440000 48:21:1140055507971870117857533624320000 48:22:30781498715240493182153407856640000 48:23:800318966596252822735988604272640000 48:24:20007974164906320568399715106816000000 48:25:480191379957751693641593162563584000000 48:26:11044401739028288953756642738962432000000 48:27:242976838258622356982646140257173504000000 48:28:5102513603431069496635568945400643584000000 48:29:102050272068621389932711378908012871680000000 48:30:1938955169303806408721516199252244561920000000 48:31:34901193047468515356987291586540402114560000000 48:32:593320281806964761068783956971186835947520000000 48:33:9493124508911436177100543311538989375160320000000 48:34:142396867633671542656508149673084840627404800000000 48:35:1993556146871401597191114095423187768783667200000000 48:36:25916229909328220763484483240501440994187673600000000 48:37:310994758911938649161813798886017291930252083200000000 48:38:3420942348031325140779951787746190211232772915200000000 48:39:34209423480313251407799517877461902112327729152000000000 48:40:307884811322819262670195660897157119010949562368000000000 48:41:2463078490582554101361565287177256952087596498944000000000 48:42:17241549434077878709530957010240798664613175492608000000000 48:43:103449296604467272257185742061444791987679052955648000000000 48:44:517246483022336361285928710307223959938395264778240000000000 48:45:2068985932089345445143714841228895839753581059112960000000000 48:46:6206957796268036335431144523686687519260743177338880000000000 48:47:12413915592536072670862289047373375038521486354677760000000000 48:48:12413915592536072670862289047373375038521486354677760000000000 48:49:NaN 49:-1:NaN 49:0:1 49:1:49 49:2:2352 49:3:110544 49:4:5085024 49:5:228826080 49:6:10068347520 49:7:432938943360 49:8:18183435621120 49:9:745520860465920 49:10:29820834418636800 49:11:1163012542326835200 49:12:44194476608419737600 49:13:1635195634511530291200 49:14:58867042842415090483200 49:15:2060346499484528166912000 49:16:70051780982473957675008000 49:17:2311708772421640603275264000 49:18:73974680717492499304808448000 49:19:2293215102242267478449061888000 49:20:68796453067268024353471856640000 49:21:1995097138950772706250683842560000 49:22:55862719890621635775019147591680000 49:23:1508293437046784165925516984975360000 49:24:39215629363216388314063441609359360000 49:25:980390734080409707851586040233984000000 49:26:23529377617929832988438064965615616000000 49:27:541175685212386158734075494209159168000000 49:28:11905865074672495492149660872601501696000000 49:29:250023166568122405335142878324631535616000000 49:30:5000463331362448106702857566492630712320000000 49:31:95008803295886514027354293763359983534080000000 49:32:1710158459325957252492377287740479703613440000000 49:33:29072693808541273292370413891588154961428480000000 49:34:465163100936660372677926622265410479382855680000000 49:35:6977446514049905590168899333981157190742835200000000 49:36:97684251196698678262364590675736200670399692800000000 49:37:1269895265557082817410739678784570608715196006400000000 49:38:15238743186684993808928876145414847304582352076800000000 49:39:167626175053534931898217637599563320350405872844800000000 49:40:1676261750535349318982176375995633203504058728448000000000 49:41:15086355754818143870839587383960698831536528556032000000000 49:42:120690846038545150966716699071685590652292228448256000000000 49:43:844835922269816056767016893501799134566045599137792000000000 49:44:5069015533618896340602101361010794807396273594826752000000000 49:45:25345077668094481703010506805053974036981367974133760000000000 49:46:101380310672377926812042027220215896147925471896535040000000000 49:47:304140932017133780436126081660647688443776415689605120000000000 49:48:608281864034267560872252163321295376887552831379210240000000000 49:49:608281864034267560872252163321295376887552831379210240000000000 49:50:NaN 50:-1:NaN 50:0:1 50:1:50 50:2:2450 50:3:117600 50:4:5527200 50:5:254251200 50:6:11441304000 50:7:503417376000 50:8:21646947168000 50:9:909171781056000 50:10:37276043023296000 50:11:1491041720931840000 50:12:58150627116341760000 50:13:2209723830420986880000 50:14:81759781725576514560000 50:15:2943352142120754524160000 50:16:103017324974226408345600000 50:17:3502589049123697883750400000 50:18:115585438621082030163763200000 50:19:3698734035874624965240422400000 50:20:114660755112113373922453094400000 50:21:3439822653363401217673592832000000 50:22:99754856947538635312534192128000000 50:23:2793135994531081788750957379584000000 50:24:75414671852339208296275849248768000000 50:25:1960781468160819415703172080467968000000 50:26:49019536704020485392579302011699200000000 50:27:1176468880896491649421903248280780800000000 50:28:27058784260619307936703774710457958400000000 50:29:595293253733624774607483043630075084800000000 50:30:12501158328406120266757143916231576780800000000 50:31:250023166568122405335142878324631535616000000000 50:32:4750440164794325701367714688167999176704000000000 50:33:85507922966297862624618864387023985180672000000000 50:34:1453634690427063664618520694579407748071424000000000 50:35:23258155046833018633896331113270523969142784000000000 50:36:348872325702495279508444966699057859537141760000000000 50:37:4884212559834933913118229533786810033519984640000000000 50:38:63494763277854140870536983939228530435759800320000000000 50:39:761937159334249690446443807270742365229117603840000000000 50:40:8381308752676746594910881879978166017520293642240000000000 50:41:83813087526767465949108818799781660175202936422400000000000 50:42:754317787740907193541979369198034941576826427801600000000000 50:43:6034542301927257548335834953584279532614611422412800000000000 50:44:42241796113490802838350844675089956728302279956889600000000000 50:45:253450776680944817030105068050539740369813679741337600000000000 50:46:1267253883404724085150525340252698701849068398706688000000000000 50:47:5069015533618896340602101361010794807396273594826752000000000000 50:48:15207046600856689021806304083032384422188820784480256000000000000 50:49:30414093201713378043612608166064768844377641568960512000000000000 50:50:30414093201713378043612608166064768844377641568960512000000000000 50:51:NaN # big numbers 340282366920938463463374607431768211456:0:1 340282366920938463463374607431768211456:1:340282366920938463463374607431768211456 340282366920938463463374607431768211456:2:115792089237316195423570985008687907852929702298719625575994209400481361428480 Math-BigInt-2.005003/xt/author/bpi-mbf.t0000644403072340010010000001422314546553333017407 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 10; use Math::BigFloat; my $pi = { 16 => '3.141592653589793', 40 => '3.141592653589793238462643383279502884197', }; subtest "Called as class method without argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat -> bpi()'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {40}, "'$test' gives correct output"); is($x -> {accuracy}, undef, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as class method with scalar argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat -> bpi(16);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {16}, "'$test' gives correct output"); is($x -> {accuracy}, 16, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as class method with class argument.", sub { plan tests => 5; my ($n, $x); my $test = '$n = Math::BigFloat -> new("16"); ' . '$x = Math::BigFloat -> bpi($n);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {16}, "'$test' gives correct output"); is($x -> {accuracy}, 16, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as instance method without argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat -> bnan(); $x -> bpi();'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {40}, "'$test' gives correct output"); is($x -> {accuracy}, undef, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as instance method with scalar argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat -> bnan(); $x -> bpi(16);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {16}, "'$test' gives correct output"); is($x -> {accuracy}, 16, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as instance method with instance argument.", sub { plan tests => 5; my ($n, $x); my $test = '$n = Math::BigFloat -> new("16"); ' . '$x = Math::BigFloat -> bnan(); ' . '$x -> bpi($n);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {16}, "'$test' gives correct output"); is($x -> {accuracy}, 16, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as function without argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat::bpi();'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {40}, "'$test' gives correct output"); is($x -> {accuracy}, undef, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; subtest "Called as function with scalar argument.", sub { plan tests => 5; my $x; my $test = '$x = Math::BigFloat::bpi(16);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {16}, "'$test' gives correct output"); is($x -> {accuracy}, 16, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); }; # The following is an ambiguous case. The argument list to bpi() is ($n), which # is assumed to mean $n->bpi(), since we favour the OO-style. So in the test # below, $n is assigned the value of pi with the default number of digits, and # then $n is assigned to $x. subtest "Called as function with instance argument.", sub { plan tests => 9; my ($n, $x); my $test = '$n = Math::BigFloat -> new("16"); ' . '$x = Math::BigFloat::bpi($n);'; eval $test; is($@, "", "'$test' gives emtpy \$\@"); isa_ok($x, 'Math::BigFloat'); is($x, $pi -> {40}, "'$test' gives correct output"); is($x -> {accuracy}, undef, "'$test' gives correct accuracy"); is($x -> {precision}, undef, "'$test' gives correct precision"); isa_ok($n, 'Math::BigFloat'); is($n, $pi -> {40}, "'$test' gives correct output"); is($n -> {accuracy}, undef, "'$test' gives correct accuracy"); is($n -> {precision}, undef, "'$test' gives correct precision"); }; # Test the algorithm used for a large number of digits. is(Math::BigFloat -> bpi(1001), "3.14159265358979323846264338327950288419716939937510582097494459230781" . "6406286208998628034825342117067982148086513282306647093844609550582231" . "7253594081284811174502841027019385211055596446229489549303819644288109" . "7566593344612847564823378678316527120190914564856692346034861045432664" . "8213393607260249141273724587006606315588174881520920962829254091715364" . "3678925903600113305305488204665213841469519415116094330572703657595919" . "5309218611738193261179310511854807446237996274956735188575272489122793" . "8183011949129833673362440656643086021394946395224737190702179860943702" . "7705392171762931767523846748184676694051320005681271452635608277857713" . "4275778960917363717872146844090122495343014654958537105079227968925892" . "3542019956112129021960864034418159813629774771309960518707211349999998" . "3729780499510597317328160963185950244594553469083026425223082533446850" . "3526193118817101000313783875288658753320838142061717766914730359825349" . "0428755468731159562863882353787593751957781857780532171226806613001927" . "8766111959092164201989", "bpi(1001)"); Math-BigInt-2.005003/xt/author/bpi-mbi.t0000644403072340010010000001036014756672324017415 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 37; use Math::BigInt; use Scalar::Util qw< refaddr >; my $x; ################################################################################ note('class method, without upgrading'); $x = Math::BigInt -> bpi(); is($x, '3', '$x = Math::BigInt -> bpi()'); is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); $x = Math::BigInt -> bpi(10); is($x, '3', '$x = Math::BigInt -> bpi(10)'); is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); note('class method, with upgrading'); require Math::BigFloat; Math::BigInt -> upgrade('Math::BigFloat'); # When no accuracy is specified, default accuracy shall be used. $x = Math::BigInt -> bpi(); is($x, '3.141592653589793238462643383279502884197', '$x = Math::BigInt -> bpi()'); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); # When accuracy is specified, it shall be used. $x = Math::BigInt -> bpi(10); is($x, '3.141592654', '$x = Math::BigInt -> bpi(10)'); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); # When precision is specified, it shall be used. $x = Math::BigInt -> bpi(undef, -9); is($x, '3.141592654', '$x = Math::BigInt -> bpi(undef, -9)'); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); ################################################################################ Math::BigInt -> upgrade(undef); note('instance method, without upgrading'); my $y; $x = Math::BigInt -> new(100); $y = $x -> bpi(); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi();'); is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); $x = Math::BigInt -> new(100); $y = $x -> bpi(10); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi(10);'); is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); note('instance method, with upgrading'); require Math::BigFloat; Math::BigInt -> upgrade('Math::BigFloat'); # When no accuracy is specified, default accuracy shall be used. $x = Math::BigInt -> new(100); $y = $x -> bpi(); is($x, '3.141592653589793238462643383279502884197', '$x = Math::BigInt -> new(100); $y = $x -> bpi();'); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); # When accuracy is specified, it shall be used. $x = Math::BigInt -> new(100); $y = $x -> bpi(10); is($x, '3.141592654', '$x = Math::BigInt -> new(100); $y = $x -> bpi(10);'); is(ref($x), "Math::BigFloat", '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); # When precision is specified, it shall be used. $x = Math::BigInt -> new(100); $y = $x -> bpi(undef, -9); is($x, '3.141592654', '$x = Math::BigInt -> new(100); $y = $x -> bpi(undef, -9);'); is(ref($x), "Math::BigFloat", '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); # When accuracy is small enough, the result is an integer. $x = Math::BigInt -> new(100); $y = $x -> bpi(1); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi(10);'); is(ref($x), "Math::BigFloat", '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); # When precision is small enough, the result is an integer. $x = Math::BigInt -> new(100); $y = $x -> bpi(undef, 0); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi(undef, 0);'); is(ref($x), "Math::BigFloat", '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); note('instance method, with upgrading and downgrading'); # When accuracy is small enough, the result is an integer. Math::BigFloat -> downgrade("Math::BigInt"); $x = Math::BigInt -> new(100); $y = $x -> bpi(1); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi(1);'); is(ref($x), "Math::BigInt", '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); # When precision is small enough, the result is an integer. $x = Math::BigInt -> new(100); $y = $x -> bpi(undef, 0); is($x, '3', '$x = Math::BigInt -> new(100); $y = $x -> bpi(undef, 0);'); is(ref($x), "Math::BigInt", '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); Math-BigInt-2.005003/xt/author/bpi-mbr.t0000644403072340010010000001201714761334725017423 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 106; use Math::BigRat; subtest "Called as class method without argument.", sub { # With no argument, the default div_scale of 40 is used. my $x = Math::BigRat -> bpi(); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(50); my $rel_err = $x -> as_float(50) -> bsub($mbf_ref) -> bdiv($mbf_ref); $rel_err -> babs() -> bround(5); my $rel_tol = Math::BigFloat -> new("1e-40"); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; subtest "Called as class method with scalar argument.", sub { my $x = Math::BigRat -> bpi(16); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(26); my $rel_err = $x -> as_float(26) -> bsub($mbf_ref) -> bdiv($mbf_ref); $rel_err -> babs() -> bround(5); my $rel_tol = Math::BigFloat -> new("1e-16"); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; subtest "Called as class method with instance argument.", sub { my $n = Math::BigRat -> new("16"); my $x = Math::BigRat -> bpi($n); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(26); my $rel_err = $x -> as_float(26) -> bsub($mbf_ref) -> bdiv($mbf_ref); my $rel_tol = Math::BigFloat -> new("1e-16"); $rel_err -> babs() -> bround(5); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; subtest "Called as instance method without argument.", sub { # With no argument, the default div_scale of 40 is used. my $x = Math::BigRat -> bnan(); $x -> bpi(); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(50); my $rel_err = $x -> as_float(50) -> bsub($mbf_ref) -> bdiv($mbf_ref); $rel_err -> babs() -> bround(5); my $rel_tol = Math::BigFloat -> new("1e-40"); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; subtest "Called as instance method with scalar argument.", sub { my $x = Math::BigRat -> bnan(); $x -> bpi(16); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(26); my $rel_err = $x -> as_float(26) -> bsub($mbf_ref) -> bdiv($mbf_ref); $rel_err -> babs() -> bround(5); my $rel_tol = Math::BigFloat -> new("1e-16"); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; subtest "Called as instance method with instance argument.", sub { my $n = Math::BigRat -> new("16"); my $x = Math::BigRat -> bnan(); $x -> bpi($n); isa_ok($x, 'Math::BigRat'); # Compute reference value with Math::BigFloat and compare. my $mbf_ref = Math::BigFloat -> bpi(26); my $rel_err = $x -> as_float(26) -> bsub($mbf_ref) -> bdiv($mbf_ref); $rel_err -> babs() -> bround(5); my $rel_tol = Math::BigFloat -> new("1e-16"); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; for my $n (1 .. 100) { note "\nMath::BigRat -> bpi($n);\n\n"; # Compute rational approximation of PI. my $mbr = Math::BigRat -> bpi($n); # Convert rational approximation to a floating point number using some # extra digits. my $mbf = $mbr -> as_float($n + 10); # Compute reference value, again using some extra digits. my $mbf_ref = Math::BigFloat -> bpi($n + 10); # Compute the absolute error. my $abs_err = $mbf - $mbf_ref; # Compute the relative error. my $rel_err = $abs_err / $mbf_ref; my $rel_tol = Math::BigFloat -> new("0.1") -> bpow($n); my $rel_err_num = $rel_err -> numify(); my $rel_tol_num = $rel_tol -> numify(); ok(abs($rel_err) < $rel_tol); note(sprintf(<<"EOF", $rel_err_num, $rel_tol_num)); relative error: %+.5e relative tolerance: %+.5e EOF }; Math-BigInt-2.005003/xt/author/bpow-mbf.t0000644403072340010010000001437714546553333017616 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 259; use Math::BigFloat; my $class = "Math::BigFloat"; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; # The following is used to compute the data at the end of this file. if (0) { my @x = (-$inf, -64, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 64, $inf); my @y = (-$inf, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, $inf); for my $x (@x) { for my $y (@y) { # The exceptions here are based on Wolfram Alpha, # https://www.wolframalpha.com/ my $z = $x == -$inf && $y == 0 ? $nan : $x == $inf && $y == 0 ? $nan : $x == -1 && $y == -$inf ? $nan : $x == -1 && $y == $inf ? $nan : $x ** $y; # Unfortunately, Math::Big* uses "inf", not "Inf" as Perl. printf "%s\n", join ":", map { $_ == $inf ? "inf" : $_ == -$inf ? "-inf" : $_ } $x, $y, $z; } } exit; } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @args = split /:/; my $want = pop @args; my ($x, $y, $z); my $test = qq|\$x = $class -> new("$args[0]"); | . qq|\$y = $class -> new("$args[1]"); | . qq|\$z = \$x -> bpow(\$y)|; eval "$test"; die $@ if $@; subtest $test => sub { plan tests => 5; is(ref($x), $class, "\$x is still a $class"); is(ref($y), $class, "\$y is still a $class"); is($y, $args[1], "\$y is unmodified"); is(ref($z), $class, "\$z is a $class"); # If $want is a finite non-integer and $x is finite, measure the # relative difference. if ($want * 0 == 0 && $want != int $want && $x -> is_finite()) { if (abs(($z -> numify() - $want) / $want) < 1e-8) { pass("\$z has the right value"); } else { fail("\$z has the right value"); diag(<<"EOF"); got: '$z' expected: '$want' EOF } } else { is($z, $want, "\$z has the right value"); } }; } # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before bpow()"); my $x = $class -> new(12345); $x -> bpow(2); is($class -> accuracy(), 10, "class accuracy is 10 after bpow()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before bpow()"); my $x = $class -> new(12345); $x -> bpow(2); is($class -> precision(), -10, "class precision is -10 after bpow()"); } __END__ -inf:-inf:0 -inf:-3:0 -inf:-2.5:0 -inf:-2:0 -inf:-1.5:0 -inf:-1:0 -inf:-0.5:0 -inf:0:NaN -inf:0.5:inf -inf:1:-inf -inf:1.5:inf -inf:2:inf -inf:2.5:inf -inf:3:-inf -inf:inf:inf -64:-inf:0 -64:-3:-3.814697265625e-06 -64:-2.5:NaN -64:-2:0.000244140625 -64:-1.5:NaN -64:-1:-0.015625 -64:-0.5:NaN -64:0:1 -64:0.5:NaN -64:1:-64 -64:1.5:NaN -64:2:4096 -64:2.5:NaN -64:3:-262144 -64:inf:inf -3:-inf:0 -3:-3:-0.037037037037037 -3:-2.5:NaN -3:-2:0.111111111111111 -3:-1.5:NaN -3:-1:-0.333333333333333 -3:-0.5:NaN -3:0:1 -3:0.5:NaN -3:1:-3 -3:1.5:NaN -3:2:9 -3:2.5:NaN -3:3:-27 -3:inf:inf -2.5:-inf:0 -2.5:-3:-0.064 -2.5:-2.5:NaN -2.5:-2:0.16 -2.5:-1.5:NaN -2.5:-1:-0.4 -2.5:-0.5:NaN -2.5:0:1 -2.5:0.5:NaN -2.5:1:-2.5 -2.5:1.5:NaN -2.5:2:6.25 -2.5:2.5:NaN -2.5:3:-15.625 -2.5:inf:inf -2:-inf:0 -2:-3:-0.125 -2:-2.5:NaN -2:-2:0.25 -2:-1.5:NaN -2:-1:-0.5 -2:-0.5:NaN -2:0:1 -2:0.5:NaN -2:1:-2 -2:1.5:NaN -2:2:4 -2:2.5:NaN -2:3:-8 -2:inf:inf -1.5:-inf:0 -1.5:-3:-0.296296296296296 -1.5:-2.5:NaN -1.5:-2:0.444444444444444 -1.5:-1.5:NaN -1.5:-1:-0.666666666666667 -1.5:-0.5:NaN -1.5:0:1 -1.5:0.5:NaN -1.5:1:-1.5 -1.5:1.5:NaN -1.5:2:2.25 -1.5:2.5:NaN -1.5:3:-3.375 -1.5:inf:inf -1:-inf:NaN -1:-3:-1 -1:-2.5:NaN -1:-2:1 -1:-1.5:NaN -1:-1:-1 -1:-0.5:NaN -1:0:1 -1:0.5:NaN -1:1:-1 -1:1.5:NaN -1:2:1 -1:2.5:NaN -1:3:-1 -1:inf:NaN -0.5:-inf:inf -0.5:-3:-8 -0.5:-2.5:NaN -0.5:-2:4 -0.5:-1.5:NaN -0.5:-1:-2 -0.5:-0.5:NaN -0.5:0:1 -0.5:0.5:NaN -0.5:1:-0.5 -0.5:1.5:NaN -0.5:2:0.25 -0.5:2.5:NaN -0.5:3:-0.125 -0.5:inf:0 0:-inf:inf 0:-3:inf 0:-2.5:inf 0:-2:inf 0:-1.5:inf 0:-1:inf 0:-0.5:inf 0:0:1 0:0.5:0 0:1:0 0:1.5:0 0:2:0 0:2.5:0 0:3:0 0:inf:0 0.5:-inf:inf 0.5:-3:8 0.5:-2.5:5.65685424949238 0.5:-2:4 0.5:-1.5:2.82842712474619 0.5:-1:2 0.5:-0.5:1.4142135623731 0.5:0:1 0.5:0.5:0.707106781186548 0.5:1:0.5 0.5:1.5:0.353553390593274 0.5:2:0.25 0.5:2.5:0.176776695296637 0.5:3:0.125 0.5:inf:0 1:-inf:1 1:-3:1 1:-2.5:1 1:-2:1 1:-1.5:1 1:-1:1 1:-0.5:1 1:0:1 1:0.5:1 1:1:1 1:1.5:1 1:2:1 1:2.5:1 1:3:1 1:inf:1 1.5:-inf:0 1.5:-3:0.296296296296296 1.5:-2.5:0.362887369301212 1.5:-2:0.444444444444444 1.5:-1.5:0.544331053951817 1.5:-1:0.666666666666667 1.5:-0.5:0.816496580927726 1.5:0:1 1.5:0.5:1.22474487139159 1.5:1:1.5 1.5:1.5:1.83711730708738 1.5:2:2.25 1.5:2.5:2.75567596063108 1.5:3:3.375 1.5:inf:inf 2:-inf:0 2:-3:0.125 2:-2.5:0.176776695296637 2:-2:0.25 2:-1.5:0.353553390593274 2:-1:0.5 2:-0.5:0.707106781186548 2:0:1 2:0.5:1.4142135623731 2:1:2 2:1.5:2.82842712474619 2:2:4 2:2.5:5.65685424949238 2:3:8 2:inf:inf 2.5:-inf:0 2.5:-3:0.064 2.5:-2.5:0.101192885125388 2.5:-2:0.16 2.5:-1.5:0.25298221281347 2.5:-1:0.4 2.5:-0.5:0.632455532033676 2.5:0:1 2.5:0.5:1.58113883008419 2.5:1:2.5 2.5:1.5:3.95284707521047 2.5:2:6.25 2.5:2.5:9.88211768802619 2.5:3:15.625 2.5:inf:inf 3:-inf:0 3:-3:0.037037037037037 3:-2.5:0.0641500299099584 3:-2:0.111111111111111 3:-1.5:0.192450089729875 3:-1:0.333333333333333 3:-0.5:0.577350269189626 3:0:1 3:0.5:1.73205080756888 3:1:3 3:1.5:5.19615242270663 3:2:9 3:2.5:15.5884572681199 3:3:27 3:inf:inf 64:-inf:0 64:-3:3.814697265625e-06 64:-2.5:3.0517578125e-05 64:-2:0.000244140625 64:-1.5:0.001953125 64:-1:0.015625 64:-0.5:0.125 64:0:1 64:0.5:8 64:1:64 64:1.5:512 64:2:4096 64:2.5:32768 64:3:262144 64:inf:inf inf:-inf:0 inf:-3:0 inf:-2.5:0 inf:-2:0 inf:-1.5:0 inf:-1:0 inf:-0.5:0 inf:0:NaN inf:0.5:inf inf:1:inf inf:1.5:inf inf:2:inf inf:2.5:inf inf:3:inf inf:inf:inf Math-BigInt-2.005003/xt/author/bpow-mbi.t0000644403072340010010000000525614537274605017617 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 99; use Math::BigInt; my $class = "Math::BigInt"; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; # The following is used to compute the data at the end of this file. if (0) { for my $x (-$inf, -64, -3, -2, -1, 0, 1, 2, 3, 64, $inf) { for my $y (-$inf, -3, -2, -1, 0, 1, 2, 3, $inf) { # The exceptions here are based on Wolfram Alpha, # https://www.wolframalpha.com/ my $z = $x == -$inf && $y == 0 ? $nan : $x == $inf && $y == 0 ? $nan : $x == -1 && $y == -$inf ? $nan : $x == -1 && $y == $inf ? $nan : int($x ** $y); # Unfortunately, Math::Big* uses "inf", not "Inf" as Perl. printf "%s\n", join ":", map { $_ == $inf ? "inf" : $_ == -$inf ? "-inf" : $_ } $x, $y, $z; } } exit; } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @args = split /:/; my $want = pop @args; my ($x, $y, $z); my $test = qq|\$x = $class -> new("$args[0]"); | . qq|\$y = $class -> new("$args[1]"); | . qq|\$z = \$x -> bpow(\$y)|; eval "$test"; die $@ if $@; subtest $test => sub { plan tests => 5; is(ref($x), $class, "\$x is still a $class"); is(ref($y), $class, "\$y is still a $class"); is($y, $args[1], "\$y is unmodified"); is(ref($z), $class, "\$z is a $class"); is($z, $want, "\$z has the right value"); }; } __DATA__ -inf:-inf:0 -inf:-3:0 -inf:-2:0 -inf:-1:0 -inf:0:NaN -inf:1:-inf -inf:2:inf -inf:3:-inf -inf:inf:inf -64:-inf:0 -64:-3:0 -64:-2:0 -64:-1:0 -64:0:1 -64:1:-64 -64:2:4096 -64:3:-262144 -64:inf:inf -3:-inf:0 -3:-3:0 -3:-2:0 -3:-1:0 -3:0:1 -3:1:-3 -3:2:9 -3:3:-27 -3:inf:inf -2:-inf:0 -2:-3:0 -2:-2:0 -2:-1:0 -2:0:1 -2:1:-2 -2:2:4 -2:3:-8 -2:inf:inf -1:-inf:NaN -1:-3:-1 -1:-2:1 -1:-1:-1 -1:0:1 -1:1:-1 -1:2:1 -1:3:-1 -1:inf:NaN 0:-inf:inf 0:-3:inf 0:-2:inf 0:-1:inf 0:0:1 0:1:0 0:2:0 0:3:0 0:inf:0 1:-inf:1 1:-3:1 1:-2:1 1:-1:1 1:0:1 1:1:1 1:2:1 1:3:1 1:inf:1 2:-inf:0 2:-3:0 2:-2:0 2:-1:0 2:0:1 2:1:2 2:2:4 2:3:8 2:inf:inf 3:-inf:0 3:-3:0 3:-2:0 3:-1:0 3:0:1 3:1:3 3:2:9 3:3:27 3:inf:inf 64:-inf:0 64:-3:0 64:-2:0 64:-1:0 64:0:1 64:1:64 64:2:4096 64:3:262144 64:inf:inf inf:-inf:0 inf:-3:0 inf:-2:0 inf:-1:0 inf:0:NaN inf:1:inf inf:2:inf inf:3:inf inf:inf:inf Math-BigInt-2.005003/xt/author/broot-mbf.t0000644403072340010010000000124614546553333017763 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $class = 'Math::BigFloat'; # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before broot()"); my $x = $class -> new(12345); $x -> broot(2); is($class -> accuracy(), 10, "class accuracy is 10 after broot()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before broot()"); my $x = $class -> new(12345); $x -> broot(2); is($class -> precision(), -10, "class precision is -10 after broot()"); } done_testing(); Math-BigInt-2.005003/xt/author/brsft-mbi.t0000644403072340010010000000400414537274605017756 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; use Test::More; my @x = (-20 .. 20); my @y = ( 0 .. 10); my @b = (-10 .. 10); my $cls = "Math::BigInt"; @x = ("-inf", @x, "inf", "NaN"); @y = ("-inf", @y, "inf", "NaN"); @b = ("-inf", @b, "inf", "NaN"); # Math::BigInt -> brsft($x, $y, $b) for my $b (@b) { for my $x (@x) { for my $y (@y) { note "\n"; note "\$z = $cls -> brsft(", ($x =~ /inf|nan/i ? qq|"$x"| : $x), ", ", ($y =~ /inf|nan/i ? qq|"$y"| : $y), ", ", ($b =~ /inf|nan/i ? qq|"$b"| : $b), ");"; note "\n"; my $zobj = eval { $cls -> brsft($x, $y, $b) }; is($@, '', "eval succeeded"); my $want = $y > 0 ? $cls -> new($x) -> bdiv($cls -> new($b) -> bpow($y)) : $cls -> new($x) -> bmul($cls -> new($b) -> bpow(-$y)); is(ref($zobj), $cls, "output class is $cls"); is($zobj, $want, "output value is $want"); } } } # Math::BigInt -> new($x) -> brsft($y, $b) for my $b (@b) { for my $x (@x) { for my $y (@y) { note "\n"; note "\$x = $cls -> new(", ($x =~ /inf|nan/i ? qq|"$x"| : $x), "); \$z = \$x -> brsft(", ($y =~ /inf|nan/i ? qq|"$y"| : $y), ", ", ($b =~ /inf|nan/i ? qq|"$b"| : $b), ");"; note "\n"; my $xobj = $cls -> new($x); my $zobj = eval { $xobj -> brsft($y, $b) }; is($@, '', "eval succeeded"); my $want = $y > 0 ? $cls -> new($x) -> bdiv($cls -> new($b) -> bpow($y)) : $cls -> new($x) -> bmul($cls -> new($b) -> bpow(-$y)); is(ref($zobj), $cls, "output class is $cls"); is($zobj, $want, "output value is $want"); is($xobj, $want, "invocand value $xobj is the output"); } } } done_testing(); Math-BigInt-2.005003/xt/author/bsgn-mbf.t0000644403072340010010000000337614756672324017602 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; my ($x, $y); note("Testing Math::BigFloat->bsgn() without downgrading and upgrading"); note("bsgn() as a class method"); $x = Math::BigFloat -> bsgn("-2"); subtest '$x = Math::BigFloat -> bsgn("-2");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bsgn() as an instance method"); $x = Math::BigFloat -> new("-2"); $y = $x -> bsgn(); subtest '$x = Math::BigFloat -> new("-2"); $y = $x -> bsgn();' => sub { plan tests => 4; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", -1, '$x == -1'); }; note("Testing Math::BigFloat->bsgn() with downgrading and upgrading"); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); # The cases below will downgrade, since the sign can be represented as a # Math::BigInt object. note("bsgn() as a class method"); $x = Math::BigFloat -> bsgn("-2.5"); subtest '$x = Math::BigFloat -> bsgn("-2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bsgn() as an instance method"); $x = Math::BigFloat -> new("-2.5"); $y = $x -> bsgn(); subtest '$x = Math::BigFloat -> new("-2.5"); $y = $x -> bsgn();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); cmp_ok($y, "==", -1, '$x == -1'); }; Math-BigInt-2.005003/xt/author/bsgn-mbi.t0000644403072340010010000000322214537274605017570 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; my ($x, $y); note("Testing Math::BigInt->bsgn() without downgrading and upgrading"); note("bsgn() as a class method"); $x = Math::BigInt -> bsgn("-2"); subtest '$x = Math::BigInt -> bsgn("-2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bsgn() as an instance method"); $x = Math::BigInt -> new("-2"); $y = $x -> bsgn(); subtest '$x = Math::BigInt -> new("-2"); $y = $x -> bsgn();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", -1, '$x == -1'); }; note("Testing Math::BigInt->bsgn() with downgrading and upgrading"); Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); note("bsgn() as a class method"); $x = Math::BigInt -> bsgn("-2"); subtest '$x = Math::BigInt -> bsgn("-2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", -1, '$x == -1'); }; note("bsgn() as an instance method"); $x = Math::BigInt -> new("-2"); $y = $x -> bsgn(); subtest '$x = Math::BigInt -> new("-2"); $y = $x -> bsgn();' => sub { plan tests => 4; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); is(ref($y), 'Math::BigInt', '$y is a Math::BigInt'); is(refaddr($x), refaddr($y), '$x and $y are the same object'); cmp_ok($x, "==", -1, '$x == -1'); }; Math-BigInt-2.005003/xt/author/bsin-mbf.t0000644403072340010010000001153114546553333017567 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $class = 'Math::BigFloat'; my ($x, $test); ################################################ my $entries = [ [ '$x = Math::BigFloat -> bzero(); $x -> bsin();', '0', ], [ '$x = Math::BigFloat -> bone(); $x -> bsin();', '0.8414709848078965066525023216302989996226', ], # Test accuracy. [ '$x = Math::BigFloat -> bone(); $x -> bsin(8);', '0.84147098', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(8); $x -> bsin();', '0.84147098', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(8); $x -> bsin(4);', '0.8415', ], [ '$x = Math::BigFloat -> bone(); $x -> accuracy(4); $x -> bsin(8);', '0.84147098', ], # Test precision. [ '$x = Math::BigFloat -> bone(); $x -> bsin(undef, -8);', '0.84147098', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-8); $x -> bsin();', '0.84147098', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-8); $x -> bsin(undef, -3);', '0.841', ], [ '$x = Math::BigFloat -> bone(); $x -> precision(-3); $x -> bsin(undef, -8);', '0.84147098', ], # Test accuracy for large positive argument. [ '$x = Math::BigFloat -> new("123.45678"); $x -> bsin();', '-0.804401000865501740112089385846151121696', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> bsin(60);', '-0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(60); $x -> bsin();', '-0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(40); $x -> bsin(60);', '-0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> accuracy(80); $x -> bsin(60);', '-0.804401000865501740112089385846151121695970189701914695913935', ], # Test precision for large positive argument. [ '$x = Math::BigFloat -> new("123.45678"); $x -> bsin();', '-0.804401000865501740112089385846151121696', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> bsin(undef, -6);', '-0.804401', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-6); $x -> bsin();', '-0.804401', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-5); $x -> bsin(undef, -6);', '-0.804401', ], [ '$x = Math::BigFloat -> new("123.45678"); $x -> precision(-9); $x -> bsin(undef, -6);', '-0.804401', ], # Test accuracy for large negative argument. [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bsin();', '0.804401000865501740112089385846151121696', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bsin(60);', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(60); $x -> bsin();', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(40); $x -> bsin(60);', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> accuracy(80); $x -> bsin(60);', '0.804401000865501740112089385846151121695970189701914695913935', ], # Test precision for large negative argument. [ '$x = Math::BigFloat -> new("-123.45678"); $x -> bsin(undef, -60);', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-60); $x -> bsin();', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-93); $x -> bsin(undef, -60);', '0.804401000865501740112089385846151121695970189701914695913935', ], [ '$x = Math::BigFloat -> new("-123.45678"); $x -> precision(-133); $x -> bsin(undef, -60);', '0.804401000865501740112089385846151121695970189701914695913935', ], ]; for my $entry (@$entries) { my ($test, $want) = @$entry; note "\n", $test, "\n\n"; eval $test; die $@ if $@; is($x, $want, 'value of $x'); } # Verify that accuracy and precision is restored (CPAN RT #150523). { $class -> accuracy(10); is($class -> accuracy(), 10, "class accuracy is 10 before bsin()"); my $x = $class -> new("1.2345"); $x -> bsin(); is($class -> accuracy(), 10, "class accuracy is 10 after bsin()"); } { $class -> precision(-10); is($class -> precision(), -10, "class precision is -10 before bsin()"); my $x = $class -> new("1.2345"); $x -> bsin(); is($class -> precision(), -10, "class precision is -10 after bsin()"); } done_testing(); Math-BigInt-2.005003/xt/author/bsin-mbi-upg-mbf.t0000644403072340010010000000353514757562023021132 0ustar OSPJADomain Users# -*- mode: perl; -*- # Verify that the output is a Math::BigInt when the output is an integer. use strict; use warnings; use Test::More; use Math::BigInt; use Math::BigFloat; Math::BigInt -> upgrade("Math::BigFloat"); my $test; $test = '$x = Math::BigInt -> new(1); $x -> bsin(20);'; note "\n", $test, "\n\n"; subtest $test => sub { plan tests => 4; my $x; my $y = eval $test; die $@ if $@; is(ref($x), "Math::BigFloat", 'class of $x'); is($x, "0.84147098480789650665", 'value of $x'); is($x -> accuracy(), 20, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> bsin(undef, 1);'; note "\n", $test, "\n\n"; subtest $test => sub { plan tests => 4; my $x; my $y = eval $test; die $@ if $@; is(ref($x), "Math::BigInt", 'class of $x'); is($x, "1", 'value of $x'); # 0.84147... rounded to integer is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 1, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> accuracy(20); $x -> bsin()'; note "\n", $test, "\n\n"; subtest $test => sub { plan tests => 4; my $x; my $y = eval $test; die $@ if $@; is(ref($x), "Math::BigFloat", 'class of $x'); is($x, "0.84147098480789650665", 'value of $x'); is($x -> accuracy(), 20, 'accuracy of $x'); is($x -> precision(), undef, 'precision of $x'); }; $test = '$x = Math::BigInt -> new(1); $x -> precision(1); $x -> bsin();'; note "\n", $test, "\n\n"; subtest $test => sub { plan tests => 4; my $x; my $y = eval $test; die $@ if $@; is(ref($x), "Math::BigInt", 'class of $x'); is($x, "1", 'value of $x'); # 0.84147... rounded to integer is($x -> accuracy(), undef, 'accuracy of $x'); is($x -> precision(), 1, 'precision of $x'); }; done_testing(); Math-BigInt-2.005003/xt/author/bsin-mbi.t0000644403072340010010000000114414546553333017571 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; $| = 1; my $cases = [ [ 'NaN', 'NaN' ], [ '-inf', 'NaN' ], [ '-150', '0' ], [ '-10', '0' ], [ '-5', '0' ], [ '-1', '0' ], [ '0', '0' ], [ '1', '0' ], [ ' 5', '0' ], [ '10', '0' ], [ '510', '0' ], [ 'inf', 'NaN' ], ]; for my $case (@$cases) { my ($x, $want) = @$case; my $test = qq|Math::BigInt -> new("$x") -> bsin();|; note "\n", $test, "\n\n"; my $y = eval $test; die $@ if $@; is($y, $want, $test); } done_testing(); Math-BigInt-2.005003/xt/author/bsqrt-mbi-mbf.t0000644403072340010010000000154314546553333020536 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; use Math::BigInt; # The default is to truncate to integer, and since sqrt(3) = 1.732..., the # output should be 1. is(Math::BigInt -> new(3) -> bsqrt(), "1", "Math::BigInt -> new(3) -> bsqrt() = 1"); # When upgrading is not enabled, the output should be truncated. for (my $i = 10 ; $i <= 100 ; $i += 10) { my $in = "9" x (2 * $i); my $out = "9" x $i; is(Math::BigInt -> new($in) -> bsqrt(), $out, qq|Math::BigInt -> new("$in") -> bsqrt()|); } # When the user has specified an accuracy of 1, the output should be rounded to # the nearest integer, and since sqrt(3) = 1.732..., the output should be 2. require Math::BigFloat; Math::BigInt -> upgrade("Math::BigFloat"); is(Math::BigInt -> new(3) -> bsqrt(1), "2", "Math::BigInt -> new(3) -> bsqrt(1) = 2"); Math-BigInt-2.005003/xt/author/bsstr-mbf.t0000644403072340010010000001402014770523031017754 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 929; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigFloat -> accuracy($accu);| . qq| \$x = Math::BigFloat -> new("$x_str");| . qq| \$str = \$x -> bsstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } # Reset accuracy and precision. Math::BigFloat -> accuracy(undef); Math::BigFloat -> precision(undef); # 355/113 rounded to 40 digits. my $str = '3.141592920353982300884955752212389380531'; # Default rounding. note(qq|\nMath::BigFloat -> new("$str") -> bsstr();\n\n|); is(Math::BigFloat -> new($str) -> bsstr(), '3141592920353982300884955752212389380531e-39'); # Accuracy as argument. note(qq|\nMath::BigFloat -> new("$str") -> bsstr(3);\n\n|); is(Math::BigFloat -> new($str) -> bsstr(3), '314e-2'); # Precision as argument. note(qq|\nMath::BigFloat -> new("$str") -> bsstr(undef, -3);\n\n|); is(Math::BigFloat -> new($str) -> bsstr(undef, -3), '3142e-3'); # Accuracy as class variable. note(qq|\nMath::BigFloat -> accuracy(5); Math::BigFloat -> new("$str") -> bsstr();\n\n|); Math::BigFloat -> accuracy(5); is(Math::BigFloat -> new($str) -> bsstr(), '31416e-4'); # Precision as class variable. note(qq|\nMath::BigFloat -> precision(-5); Math::BigFloat -> new("$str") -> bsstr();\n\n|); Math::BigFloat -> precision(-5); is(Math::BigFloat -> new($str) -> bsstr(), '314159e-5'); __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 0.000000000001:1e-12 0.00000000001:1e-11 0.0000000001:1e-10 0.000000001:1e-9 0.00000001:1e-8 0.0000001:1e-7 0.000001:1e-6 0.00001:1e-5 0.0001:1e-4 0.001:1e-3 0.01:1e-2 0.1:1e-1 1:1e+0 10:1e+1 100:1e+2 1000:1e+3 10000:1e+4 100000:1e+5 1000000:1e+6 10000000:1e+7 100000000:1e+8 1000000000:1e+9 10000000000:1e+10 100000000000:1e+11 1000000000000:1e+12 0.0000000000012:12e-13 0.000000000012:12e-12 0.00000000012:12e-11 0.0000000012:12e-10 0.000000012:12e-9 0.00000012:12e-8 0.0000012:12e-7 0.000012:12e-6 0.00012:12e-5 0.0012:12e-4 0.012:12e-3 0.12:12e-2 1.2:12e-1 12:12e+0 120:12e+1 1200:12e+2 12000:12e+3 120000:12e+4 1200000:12e+5 12000000:12e+6 120000000:12e+7 1200000000:12e+8 12000000000:12e+9 120000000000:12e+10 1200000000000:12e+11 0.00000000000123:123e-14 0.0000000000123:123e-13 0.000000000123:123e-12 0.00000000123:123e-11 0.0000000123:123e-10 0.000000123:123e-9 0.00000123:123e-8 0.0000123:123e-7 0.000123:123e-6 0.00123:123e-5 0.0123:123e-4 0.123:123e-3 1.23:123e-2 12.3:123e-1 123:123e+0 1230:123e+1 12300:123e+2 123000:123e+3 1230000:123e+4 12300000:123e+5 123000000:123e+6 1230000000:123e+7 12300000000:123e+8 123000000000:123e+9 1230000000000:123e+10 0.000000000001234:1234e-15 0.00000000001234:1234e-14 0.0000000001234:1234e-13 0.000000001234:1234e-12 0.00000001234:1234e-11 0.0000001234:1234e-10 0.000001234:1234e-9 0.00001234:1234e-8 0.0001234:1234e-7 0.001234:1234e-6 0.01234:1234e-5 0.1234:1234e-4 1.234:1234e-3 12.34:1234e-2 123.4:1234e-1 1234:1234e+0 12340:1234e+1 123400:1234e+2 1234000:1234e+3 12340000:1234e+4 123400000:1234e+5 1234000000:1234e+6 12340000000:1234e+7 123400000000:1234e+8 1234000000000:1234e+9 0.000003141592:3141592e-12 0.00003141592:3141592e-11 0.0003141592:3141592e-10 0.003141592:3141592e-9 0.03141592:3141592e-8 0.3141592:3141592e-7 3.141592:3141592e-6 31.41592:3141592e-5 314.1592:3141592e-4 3141.592:3141592e-3 31415.92:3141592e-2 314159.2:3141592e-1 3141592:3141592e+0 # negative numbers -0.000000000001:-1e-12 -0.00000000001:-1e-11 -0.0000000001:-1e-10 -0.000000001:-1e-9 -0.00000001:-1e-8 -0.0000001:-1e-7 -0.000001:-1e-6 -0.00001:-1e-5 -0.0001:-1e-4 -0.001:-1e-3 -0.01:-1e-2 -0.1:-1e-1 -1:-1e+0 -10:-1e+1 -100:-1e+2 -1000:-1e+3 -10000:-1e+4 -100000:-1e+5 -1000000:-1e+6 -10000000:-1e+7 -100000000:-1e+8 -1000000000:-1e+9 -10000000000:-1e+10 -100000000000:-1e+11 -1000000000000:-1e+12 -0.0000000000012:-12e-13 -0.000000000012:-12e-12 -0.00000000012:-12e-11 -0.0000000012:-12e-10 -0.000000012:-12e-9 -0.00000012:-12e-8 -0.0000012:-12e-7 -0.000012:-12e-6 -0.00012:-12e-5 -0.0012:-12e-4 -0.012:-12e-3 -0.12:-12e-2 -1.2:-12e-1 -12:-12e+0 -120:-12e+1 -1200:-12e+2 -12000:-12e+3 -120000:-12e+4 -1200000:-12e+5 -12000000:-12e+6 -120000000:-12e+7 -1200000000:-12e+8 -12000000000:-12e+9 -120000000000:-12e+10 -1200000000000:-12e+11 -0.00000000000123:-123e-14 -0.0000000000123:-123e-13 -0.000000000123:-123e-12 -0.00000000123:-123e-11 -0.0000000123:-123e-10 -0.000000123:-123e-9 -0.00000123:-123e-8 -0.0000123:-123e-7 -0.000123:-123e-6 -0.00123:-123e-5 -0.0123:-123e-4 -0.123:-123e-3 -1.23:-123e-2 -12.3:-123e-1 -123:-123e+0 -1230:-123e+1 -12300:-123e+2 -123000:-123e+3 -1230000:-123e+4 -12300000:-123e+5 -123000000:-123e+6 -1230000000:-123e+7 -12300000000:-123e+8 -123000000000:-123e+9 -1230000000000:-123e+10 -0.000000000001234:-1234e-15 -0.00000000001234:-1234e-14 -0.0000000001234:-1234e-13 -0.000000001234:-1234e-12 -0.00000001234:-1234e-11 -0.0000001234:-1234e-10 -0.000001234:-1234e-9 -0.00001234:-1234e-8 -0.0001234:-1234e-7 -0.001234:-1234e-6 -0.01234:-1234e-5 -0.1234:-1234e-4 -1.234:-1234e-3 -12.34:-1234e-2 -123.4:-1234e-1 -1234:-1234e+0 -12340:-1234e+1 -123400:-1234e+2 -1234000:-1234e+3 -12340000:-1234e+4 -123400000:-1234e+5 -1234000000:-1234e+6 -12340000000:-1234e+7 -123400000000:-1234e+8 -1234000000000:-1234e+9 -0.000003141592:-3141592e-12 -0.00003141592:-3141592e-11 -0.0003141592:-3141592e-10 -0.003141592:-3141592e-9 -0.03141592:-3141592e-8 -0.3141592:-3141592e-7 -3.141592:-3141592e-6 -31.41592:-3141592e-5 -314.1592:-3141592e-4 -3141.592:-3141592e-3 -31415.92:-3141592e-2 -314159.2:-3141592e-1 -3141592:-3141592e+0 Math-BigInt-2.005003/xt/author/bsstr-mbi.t0000644403072340010010000000520414537274605017776 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2 * 222; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $expected) = split /:/; my ($x, $str); for my $accu ("undef", "20") { my $test = qq|Math::BigInt -> accuracy($accu);| . qq| \$x = Math::BigInt -> new("$x_str");| . qq| \$str = \$x -> bsstr();|; note "\n$test\n\n"; eval $test; die $@ if $@; # should never happen is($str, $expected, qq|output is "$expected"|); if ($x_str eq 'NaN') { ok($x -> is_nan(), "input object is unmodified"); } else { cmp_ok($x, "==", $x_str, "input object is unmodified"); } } } __DATA__ NaN:NaN inf:inf -inf:-inf 0:0e+0 -0:0e+0 # positive numbers 1:1e+0 10:1e+1 100:1e+2 1000:1e+3 10000:1e+4 100000:1e+5 1000000:1e+6 10000000:1e+7 100000000:1e+8 1000000000:1e+9 10000000000:1e+10 100000000000:1e+11 1000000000000:1e+12 12:12e+0 120:12e+1 1200:12e+2 12000:12e+3 120000:12e+4 1200000:12e+5 12000000:12e+6 120000000:12e+7 1200000000:12e+8 12000000000:12e+9 120000000000:12e+10 1200000000000:12e+11 123:123e+0 1230:123e+1 12300:123e+2 123000:123e+3 1230000:123e+4 12300000:123e+5 123000000:123e+6 1230000000:123e+7 12300000000:123e+8 123000000000:123e+9 1230000000000:123e+10 1234:1234e+0 12340:1234e+1 123400:1234e+2 1234000:1234e+3 12340000:1234e+4 123400000:1234e+5 1234000000:1234e+6 12340000000:1234e+7 123400000000:1234e+8 1234000000000:1234e+9 3:3e+0 31:31e+0 314:314e+0 3141:3141e+0 31415:31415e+0 314159:314159e+0 3141592:3141592e+0 # negative numbers -1:-1e+0 -10:-1e+1 -100:-1e+2 -1000:-1e+3 -10000:-1e+4 -100000:-1e+5 -1000000:-1e+6 -10000000:-1e+7 -100000000:-1e+8 -1000000000:-1e+9 -10000000000:-1e+10 -100000000000:-1e+11 -1000000000000:-1e+12 -12:-12e+0 -120:-12e+1 -1200:-12e+2 -12000:-12e+3 -120000:-12e+4 -1200000:-12e+5 -12000000:-12e+6 -120000000:-12e+7 -1200000000:-12e+8 -12000000000:-12e+9 -120000000000:-12e+10 -1200000000000:-12e+11 -123:-123e+0 -1230:-123e+1 -12300:-123e+2 -123000:-123e+3 -1230000:-123e+4 -12300000:-123e+5 -123000000:-123e+6 -1230000000:-123e+7 -12300000000:-123e+8 -123000000000:-123e+9 -1230000000000:-123e+10 -1234:-1234e+0 -12340:-1234e+1 -123400:-1234e+2 -1234000:-1234e+3 -12340000:-1234e+4 -123400000:-1234e+5 -1234000000:-1234e+6 -12340000000:-1234e+7 -123400000000:-1234e+8 -1234000000000:-1234e+9 -3:-3e+0 -31:-31e+0 -314:-314e+0 -3141:-3141e+0 -31415:-31415e+0 -314159:-314159e+0 -3141592:-3141592e+0 Math-BigInt-2.005003/xt/author/btfac-mbf.t0000644403072340010010000000360314757633615017722 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 119; my $class = "Math::BigFloat"; use_ok($class); note("btfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # btfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> btfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a class method { my $y; my $test = qq|\$y = $class -> btfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my $y; # my $test = qq|\$y = $ {class}::btfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigFloat -1.5 NaN -0.5 NaN 1.5 NaN 2.5 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -4 NaN -3 NaN -2 1 -1 1 0 1 1 1 2 2 3 3 4 4 5 10 6 18 7 28 8 80 9 162 10 280 11 880 12 1944 13 3640 14 12320 15 29160 16 58240 17 209440 18 524880 19 1106560 20 4188800 21 11022480 22 24344320 23 96342400 24 264539520 25 608608000 26 2504902400 27 7142567040 28 17041024000 29 72642169600 30 214277011200 31 528271744000 32 2324549427200 33 7071141369600 34 17961239296000 35 81359229952000 36 254561089305600 37 664565853952000 38 3091650738176000 39 9927882482918400 40 26582634158080000 41 126757680265216000 42 416971064282572800 43 1143053268797440000 44 5577337931669504000 45 18763697892715776000 46 52580450364682240000 47 262134882788466688000 48 900657498850357248000 49 2576442067869429760000 50 13106744139423334400000 Math-BigInt-2.005003/xt/author/btfac-mbi.t0000644403072340010010000000323714757632776017737 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 166; my $class = "Math::BigInt"; use_ok($class); note("btfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # btfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> btfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a class method { my $y; my $test = qq|\$y = $class -> btfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a function { my $y; my $test = qq|\$y = $ {class}::btfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } } __DATA__ # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -4 NaN -3 NaN -2 1 -1 1 0 1 1 1 2 2 3 3 4 4 5 10 6 18 7 28 8 80 9 162 10 280 11 880 12 1944 13 3640 14 12320 15 29160 16 58240 17 209440 18 524880 19 1106560 20 4188800 21 11022480 22 24344320 23 96342400 24 264539520 25 608608000 26 2504902400 27 7142567040 28 17041024000 29 72642169600 30 214277011200 31 528271744000 32 2324549427200 33 7071141369600 34 17961239296000 35 81359229952000 36 254561089305600 37 664565853952000 38 3091650738176000 39 9927882482918400 40 26582634158080000 41 126757680265216000 42 416971064282572800 43 1143053268797440000 44 5577337931669504000 45 18763697892715776000 46 52580450364682240000 47 262134882788466688000 48 900657498850357248000 49 2576442067869429760000 50 13106744139423334400000 Math-BigInt-2.005003/xt/author/btfac-mbr.t0000644403072340010010000000357714757634560017750 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 119; my $class = "Math::BigRat"; use_ok($class); note("btfac() as a class method"); while () { s/^\s+//; next if /^#/ || !/\S/; my ($x, $want) = split; # btfac() as an instance method { my $y; my $test = qq|\$y = $class -> new("$x") -> btfac();|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a class method { my $y; my $test = qq|\$y = $class -> btfac("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($y, $want); } # btfac() as a function does not work, since objectify() converts the scalar # to a Math::BigInt, which is the name of the package in which objectify() # is defined. # { # my $y; # my $test = qq|\$y = $ {class}::btfac("$x");|; # note("\n$test\n\n"); # eval $test; # die $@ if $@; # is($y, $want); # } } __DATA__ # Tests only for Math::BigRat -3/2 NaN -1/2 NaN 3/2 NaN 5/2 NaN # Common tests for Math::BigInt, Math::BigFloat, and Math::BigRat: -4 NaN -3 NaN -2 1 -1 1 0 1 1 1 2 2 3 3 4 4 5 10 6 18 7 28 8 80 9 162 10 280 11 880 12 1944 13 3640 14 12320 15 29160 16 58240 17 209440 18 524880 19 1106560 20 4188800 21 11022480 22 24344320 23 96342400 24 264539520 25 608608000 26 2504902400 27 7142567040 28 17041024000 29 72642169600 30 214277011200 31 528271744000 32 2324549427200 33 7071141369600 34 17961239296000 35 81359229952000 36 254561089305600 37 664565853952000 38 3091650738176000 39 9927882482918400 40 26582634158080000 41 126757680265216000 42 416971064282572800 43 1143053268797440000 44 5577337931669504000 45 18763697892715776000 46 52580450364682240000 47 262134882788466688000 48 900657498850357248000 49 2576442067869429760000 50 13106744139423334400000 Math-BigInt-2.005003/xt/author/btmod-btdiv-mbf.t0000644403072340010010000003317314757667145021070 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 19125; use Math::BigFloat; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigFloat object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigFloat uses 'NaN'. sub pl2mbf { my $x = shift; return Math::BigFloat -> binf('+') if $x == $inf; return Math::BigFloat -> binf('-') if $x == -$inf; return Math::BigFloat -> bnan() if isnan($x); return Math::BigFloat -> new($x); } # Does a truncated division (T-division). sub tdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigFloat, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is finite and non-zero. if (isinf($x)) { my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = -5 # 5 % -Inf = 5 if (isinf($y)) { return wantarray ? (0, $x) : 0; } return $x / $y unless wantarray; # Do a truncated division. my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20, -16, -10, -8, -5, -4, -2, -1, 0, 1, 2, 4, 5, 8, 10, 16, 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = tdiv($num, $den); note(qq|\n(\$quo, \$rem) = | . qq|Math::BigFloat -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my ($mbf_quo, $mbf_rem) = $mbf_num -> btdiv($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $den = $quo"); is($mbf_rem, pl2mbf($rem), "$num % $den = $rem"); is($mbf_den, pl2mbf($den), "value of denominator has not change"); # Check addresses. my ($mbf_quo_addr, $mbf_rem_addr); $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); ok($mbf_rem_addr != $mbf_num_addr && $mbf_rem_addr != $mbf_den_addr && $mbf_rem_addr != $mbf_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigFloat -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my $mbf_quo = $mbf_num -> btdiv($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $den = $quo"); is($mbf_den, pl2mbf($den), "value of numerator has not change"); # Check addresses. my $mbf_quo_addr; $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok;; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigFloat -> new("$num") -> btmod("$den")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); my $mbf_den = Math::BigFloat -> new("$den"); # Get addresses for later tests. my ($mbf_num_addr, $mbf_den_addr); $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; $mbf_den_addr = refaddr($mbf_den) if $scalar_util_ok; # Compute actual output values. my $mbf_rem = $mbf_num -> btmod($mbf_den); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_den), 'Math::BigFloat', "class of denominator is still Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_rem, pl2mbf($rem), "$num % $den = $rem"); is($mbf_den, pl2mbf($den), "value of denominator has not change"); # Check addresses. my $mbf_rem_addr; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_rem_addr, $mbf_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> btdiv("\$x")\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my ($mbf_quo, $mbf_rem) = $mbf_num -> btdiv($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $num = $quo"); is($mbf_rem, pl2mbf($rem), "$num % $num = $rem"); # Check addresses. my ($mbf_quo_addr, $mbf_rem_addr); $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbf_rem_addr != $mbf_num_addr && $mbf_rem_addr != $mbf_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = tdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num"); | . qq|\$quo = \$x -> btdiv(\$x)\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my $mbf_quo = $mbf_num -> btdiv($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_quo), 'Math::BigFloat', "class of quotient is Math::BigFloat"); # Check values. is($mbf_quo, pl2mbf($quo), "$num / $num = $quo"); # Check addresses. my $mbf_quo_addr; $mbf_quo_addr = refaddr($mbf_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_quo_addr, $mbf_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigFloat -> new("$num") | . qq|\$quo = \$x -> btmod(\$x)\n\n|); # Input values as objects. my $mbf_num = Math::BigFloat -> new("$num"); # Get addresses for later tests. my $mbf_num_addr; $mbf_num_addr = refaddr($mbf_num) if $scalar_util_ok; # Compute actual output values. my $mbf_rem = $mbf_num -> btmod($mbf_num); # Check classes. is(ref($mbf_num), 'Math::BigFloat', "class of numerator is still Math::BigFloat"); is(ref($mbf_rem), 'Math::BigFloat', "class of remainder is Math::BigFloat"); # Check values. is($mbf_rem, pl2mbf($rem), "$num % $num = $rem"); # Check addresses. my $mbf_rem_addr; $mbf_rem_addr = refaddr($mbf_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbf_rem_addr, $mbf_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/btmod-btdiv-mbi.t0000644403072340010010000003270414757667151021067 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 41301; use Math::BigInt; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigInt object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigInt uses 'NaN'. sub pl2mbi { my $x = shift; return Math::BigInt -> binf('+') if $x == $inf; return Math::BigInt -> binf('-') if $x == -$inf; return Math::BigInt -> bnan() if isnan($x); return Math::BigInt -> new($x); } # Does a truncated division (T-division). sub tdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigInt, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is finite and non-zero. if (isinf($x)) { my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = -5 # 5 % -Inf = 5 if (isinf($y)) { return wantarray ? (0, $x) : 0; } # Do a truncated division. my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20 .. 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output values. my ($quo, $rem) = tdiv($num, $den); note(qq|\n(\$quo, \$rem) = | . qq|Math::BigInt -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my ($mbi_quo, $mbi_rem) = $mbi_num -> btdiv($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $den = $quo"); is($mbi_rem, pl2mbi($rem), "$num % $den = $rem"); is($mbi_den, pl2mbi($den), "value of denominator has not change"); # Check addresses. my ($mbi_quo_addr, $mbi_rem_addr); $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); ok($mbi_rem_addr != $mbi_num_addr && $mbi_rem_addr != $mbi_den_addr && $mbi_rem_addr != $mbi_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output values. my $quo = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigInt -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my $mbi_quo = $mbi_num -> btdiv($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $den = $quo"); is($mbi_den, pl2mbi($den), "value of numerator has not change"); # Check addresses. my $mbi_quo_addr; $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok;; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output values. my (undef, $rem) = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigInt -> new("$num") -> btmod("$den")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); my $mbi_den = Math::BigInt -> new("$den"); # Get addresses for later tests. my ($mbi_num_addr, $mbi_den_addr); $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; $mbi_den_addr = refaddr($mbi_den) if $scalar_util_ok; # Compute actual output values. my $mbi_rem = $mbi_num -> btmod($mbi_den); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_den), 'Math::BigInt', "class of denominator is still Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_rem, pl2mbi($rem), "$num % $den = $rem"); is($mbi_den, pl2mbi($den), "value of denominator has not change"); # Check addresses. my $mbi_rem_addr; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_rem_addr, $mbi_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output values. my ($quo, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigInt -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> btdiv("\$x")\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my ($mbi_quo, $mbi_rem) = $mbi_num -> btdiv($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $num = $quo"); is($mbi_rem, pl2mbi($rem), "$num % $num = $rem"); # Check addresses. my ($mbi_quo_addr, $mbi_rem_addr); $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbi_rem_addr != $mbi_num_addr && $mbi_rem_addr != $mbi_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output values. my $quo = tdiv($num, $num); note(qq|\n\$x = Math::BigInt -> new("$num"); | . qq|\$quo = \$x -> btdiv(\$x)\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my $mbi_quo = $mbi_num -> btdiv($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_quo), 'Math::BigInt', "class of quotient is Math::BigInt"); # Check values. is($mbi_quo, pl2mbi($quo), "$num / $num = $quo"); # Check addresses. my $mbi_quo_addr; $mbi_quo_addr = refaddr($mbi_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_quo_addr, $mbi_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output values. my (undef, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigInt -> new("$num") | . qq|\$quo = \$x -> btmod(\$x)\n\n|); # Input values as objects. my $mbi_num = Math::BigInt -> new("$num"); # Get addresses for later tests. my $mbi_num_addr; $mbi_num_addr = refaddr($mbi_num) if $scalar_util_ok; # Compute actual output values. my $mbi_rem = $mbi_num -> btmod($mbi_num); # Check classes. is(ref($mbi_num), 'Math::BigInt', "class of numerator is still Math::BigInt"); is(ref($mbi_rem), 'Math::BigInt', "class of remainder is Math::BigInt"); # Check values. is($mbi_rem, pl2mbi($rem), "$num % $num = $rem"); # Check addresses. my $mbi_rem_addr; $mbi_rem_addr = refaddr($mbi_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbi_rem_addr, $mbi_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/btmod-btdiv-mbr.t0000644403072340010010000003301114757667151021070 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 19125; use Math::BigRat; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; # Return 1 if the input argument is +inf or -inf, and "" otherwise. sub isinf { my $x = shift; return $x == $inf || $x == -$inf; } # Return 1 if the input argument is a nan (Not-a-Number), and "" otherwise. sub isnan { my $x = shift; return $x != $x; } # Convert a Perl scalar to a Math::BigRat object. This function is used for # consistent comparisons. For instance, a Not-a-Number might be stringified to # 'nan', but Math::BigRat uses 'NaN'. sub pl2mbr { my $x = shift; return Math::BigRat -> binf('+') if $x == $inf; return Math::BigRat -> binf('-') if $x == -$inf; return Math::BigRat -> bnan() if isnan($x); return Math::BigRat -> new($x); } # Does a truncated division (T-division). sub tdiv { die "Usage: fdiv X Y\n" if @_ != 2; #no integer; my $x = shift; # numerator my $y = shift; # denominator # Convert Perl strings representing nan, +inf, and -inf into Perl numbers. if ($x =~ /^\s*nan\s*$/i) { $x = $nan; } elsif ($x =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $x = $1 eq '-' ? -$inf : $inf; } if ($y =~ /^\s*nan\s*$/i) { $y = $nan; } elsif ($y =~ /^\s*([+-]?)inf(inity)?\s*$/i) { $y = $1 eq '-' ? -$inf : $inf; } # If any input is nan, the output is nan. if (isnan($x) || isnan($y)) { return wantarray ? ($nan, $nan) : $nan; } # Divide by zero and modulo zero. if ($y == 0) { # Core Perl gives an "Illegal division by zero" error whenever the # denominator is zero. Math::BigRat, however, has a different # convention. my $q = $x < 0 ? -$inf : $x > 0 ? $inf : $nan; my $r = $x; return wantarray ? ($q, $r) : $q; } # Numerator is +/-infinity, and denominator is finite and non-zero. if (isinf($x)) { my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; if (isinf($y)) { return wantarray ? ($nan, $nan) : $nan; } else { if (($x <=> 0) == ($y <=> 0)) { return wantarray ? ($inf, $nan) : $inf; } else { return wantarray ? (-$inf, $nan) : -$inf; } } } # Denominator is +/- infinity, and the numerator is finite. # # Core Perl: 5 % Inf = 5 # -5 % -Inf = -5 # -5 % Inf = -5 # 5 % -Inf = 5 if (isinf($y)) { return wantarray ? (0, $x) : 0; } return $x / $y unless wantarray; # Do a truncated division. my $q = int($x / $y); my $r = $x - $y * $q; return wantarray ? ($q, $r) : $q; } # Tests where the invocand and the argument are two different objects. #for my $num (-20 .. 20) { # for my $den (-20 .. -1, 1 .. 20) { for my $num (-$inf, -20 .. 20, $inf, $nan) { for my $den (-$inf, -20, -16, -10, -8, -5, -4, -2, -1, 0, 1, 2, 4, 5, 8, 10, 16, 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = tdiv($num, $den); note(qq|\n(\$quo, \$rem) = | . qq|Math::BigRat -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my ($mbr_quo, $mbr_rem) = $mbr_num -> btdiv($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $den = $quo"); is($mbr_rem, pl2mbr($rem), "$num % $den = $rem"); is($mbr_den, pl2mbr($den), "value of denominator has not change"); # Check addresses. my ($mbr_quo_addr, $mbr_rem_addr); $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); ok($mbr_rem_addr != $mbr_num_addr && $mbr_rem_addr != $mbr_den_addr && $mbr_rem_addr != $mbr_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigRat -> new("$num") -> btdiv("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my $mbr_quo = $mbr_num -> btdiv($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $den = $quo"); is($mbr_den, pl2mbr($den), "value of numerator has not change"); # Check addresses. my $mbr_quo_addr; $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok;; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = tdiv($num, $den); note(qq|\n\$quo = | . qq|Math::BigRat -> new("$num") -> btmod("$den")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); my $mbr_den = Math::BigRat -> new("$den"); # Get addresses for later tests. my ($mbr_num_addr, $mbr_den_addr); $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; $mbr_den_addr = refaddr($mbr_den) if $scalar_util_ok; # Compute actual output values. my $mbr_rem = $mbr_num -> btmod($mbr_den); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_den), 'Math::BigRat', "class of denominator is still Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_rem, pl2mbr($rem), "$num % $den = $rem"); is($mbr_den, pl2mbr($den), "value of denominator has not change"); # Check addresses. my $mbr_rem_addr; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_rem_addr, $mbr_num_addr, "the remainder object is the numerator object"); } } } } # Tests where the invocand and the argument is the same object. for my $num (-$inf, -20 .. -1, 1 .. 20, $inf, $nan) { ####################################################################### # btdiv() in list context. ####################################################################### { # Compute expected output. my ($quo, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num"); | . qq|(\$quo, \$rem) = \$x -> btdiv("\$x")\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my ($mbr_quo, $mbr_rem) = $mbr_num -> btdiv($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $num = $quo"); is($mbr_rem, pl2mbr($rem), "$num % $num = $rem"); # Check addresses. my ($mbr_quo_addr, $mbr_rem_addr); $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; ok($mbr_rem_addr != $mbr_num_addr && $mbr_rem_addr != $mbr_quo_addr, "the remainder object is neither the numerator," . " denominator, nor quotient object"); } } ####################################################################### # btdiv() in scalar context. ####################################################################### { # Compute expected output. my $quo = tdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num"); | . qq|\$quo = \$x -> btdiv(\$x)\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my $mbr_quo = $mbr_num -> btdiv($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_quo), 'Math::BigRat', "class of quotient is Math::BigRat"); # Check values. is($mbr_quo, pl2mbr($quo), "$num / $num = $quo"); # Check addresses. my $mbr_quo_addr; $mbr_quo_addr = refaddr($mbr_quo) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_quo_addr, $mbr_num_addr, "the quotient object is the numerator object"); } } ####################################################################### # btmod() (scalar context only). ####################################################################### { # Compute expected output. my (undef, $rem) = tdiv($num, $num); note(qq|\n\$x = Math::BigRat -> new("$num") | . qq|\$quo = \$x -> btmod(\$x)\n\n|); # Input values as objects. my $mbr_num = Math::BigRat -> new("$num"); # Get addresses for later tests. my $mbr_num_addr; $mbr_num_addr = refaddr($mbr_num) if $scalar_util_ok; # Compute actual output values. my $mbr_rem = $mbr_num -> btmod($mbr_num); # Check classes. is(ref($mbr_num), 'Math::BigRat', "class of numerator is still Math::BigRat"); is(ref($mbr_rem), 'Math::BigRat', "class of remainder is Math::BigRat"); # Check values. is($mbr_rem, pl2mbr($rem), "$num % $num = $rem"); # Check addresses. my $mbr_rem_addr; $mbr_rem_addr = refaddr($mbr_rem) if $scalar_util_ok; SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is($mbr_rem_addr, $mbr_num_addr, "the remainder object is the numerator object"); } } } Math-BigInt-2.005003/xt/author/buparrow-mbi.t0000644403072340010010000021373014744170551020502 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1148; my $class; BEGIN { $class = 'Math::BigInt'; use_ok($class); } can_ok($class, 'buparrow', 'uparrow'); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($a, $n, $b, $expected) = split /:/; # buparrow() modifies the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$a"); \$y = \$x->buparrow("$n", "$b");|; note("\n$test\n\n"); subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $expected, "'$test' invocand has the right value"); }; } # uparrow() does not modify the invocand. { my ($x, $y); my $test = qq|\$x = $class->new("$a"); \$y = \$x->uparrow("$n", "$b");|; note("\n$test\n\n"); subtest $test, sub { plan tests => 4; eval $test; is($@, "", "'$test' gives emtpy \$\@"); is(ref($y), $class, "'$test' output arg is a $class"); is($y -> bstr(), $expected, "'$test' output arg has the right value"); is($x -> bstr(), $a, "'$test' invocand has the right value"); }; } } __DATA__ # The data below is copied from bhyperop-mbi.t and adjusted for the n offset. # n = 0 (multiplication) 0:0:0:0 0:0:1:0 0:0:2:0 0:0:3:0 0:0:4:0 0:0:5:0 0:0:6:0 0:0:7:0 0:0:8:0 0:0:9:0 1:0:0:0 1:0:1:1 1:0:2:2 1:0:3:3 1:0:4:4 1:0:5:5 1:0:6:6 1:0:7:7 1:0:8:8 1:0:9:9 2:0:0:0 2:0:1:2 2:0:2:4 2:0:3:6 2:0:4:8 2:0:5:10 2:0:6:12 2:0:7:14 2:0:8:16 2:0:9:18 3:0:0:0 3:0:1:3 3:0:2:6 3:0:3:9 3:0:4:12 3:0:5:15 3:0:6:18 3:0:7:21 3:0:8:24 3:0:9:27 4:0:0:0 4:0:1:4 4:0:2:8 4:0:3:12 4:0:4:16 4:0:5:20 4:0:6:24 4:0:7:28 4:0:8:32 4:0:9:36 5:0:0:0 5:0:1:5 5:0:2:10 5:0:3:15 5:0:4:20 5:0:5:25 5:0:6:30 5:0:7:35 5:0:8:40 5:0:9:45 6:0:0:0 6:0:1:6 6:0:2:12 6:0:3:18 6:0:4:24 6:0:5:30 6:0:6:36 6:0:7:42 6:0:8:48 6:0:9:54 7:0:0:0 7:0:1:7 7:0:2:14 7:0:3:21 7:0:4:28 7:0:5:35 7:0:6:42 7:0:7:49 7:0:8:56 7:0:9:63 8:0:0:0 8:0:1:8 8:0:2:16 8:0:3:24 8:0:4:32 8:0:5:40 8:0:6:48 8:0:7:56 8:0:8:64 8:0:9:72 9:0:0:0 9:0:1:9 9:0:2:18 9:0:3:27 9:0:4:36 9:0:5:45 9:0:6:54 9:0:7:63 9:0:8:72 9:0:9:81 # n = 1 (exponentiation) 0:1:0:1 0:1:1:0 0:1:2:0 0:1:3:0 0:1:4:0 0:1:5:0 0:1:6:0 0:1:7:0 0:1:8:0 0:1:9:0 1:1:0:1 1:1:1:1 1:1:2:1 1:1:3:1 1:1:4:1 1:1:5:1 1:1:6:1 1:1:7:1 1:1:8:1 1:1:9:1 2:1:0:1 2:1:1:2 2:1:2:4 2:1:3:8 2:1:4:16 2:1:5:32 2:1:6:64 2:1:7:128 2:1:8:256 2:1:9:512 3:1:0:1 3:1:1:3 3:1:2:9 3:1:3:27 3:1:4:81 3:1:5:243 3:1:6:729 3:1:7:2187 3:1:8:6561 3:1:9:19683 4:1:0:1 4:1:1:4 4:1:2:16 4:1:3:64 4:1:4:256 4:1:5:1024 4:1:6:4096 4:1:7:16384 4:1:8:65536 4:1:9:262144 5:1:0:1 5:1:1:5 5:1:2:25 5:1:3:125 5:1:4:625 5:1:5:3125 5:1:6:15625 5:1:7:78125 5:1:8:390625 5:1:9:1953125 6:1:0:1 6:1:1:6 6:1:2:36 6:1:3:216 6:1:4:1296 6:1:5:7776 6:1:6:46656 6:1:7:279936 6:1:8:1679616 6:1:9:10077696 7:1:0:1 7:1:1:7 7:1:2:49 7:1:3:343 7:1:4:2401 7:1:5:16807 7:1:6:117649 7:1:7:823543 7:1:8:5764801 7:1:9:40353607 8:1:0:1 8:1:1:8 8:1:2:64 8:1:3:512 8:1:4:4096 8:1:5:32768 8:1:6:262144 8:1:7:2097152 8:1:8:16777216 8:1:9:134217728 9:1:0:1 9:1:1:9 9:1:2:81 9:1:3:729 9:1:4:6561 9:1:5:59049 9:1:6:531441 9:1:7:4782969 9:1:8:43046721 9:1:9:387420489 # n = 2 (tetration) 0:2:0:1 0:2:1:0 0:2:2:1 0:2:3:0 0:2:4:1 0:2:5:0 0:2:6:1 0:2:7:0 0:2:8:1 0:2:9:0 1:2:0:1 1:2:1:1 1:2:2:1 1:2:3:1 1:2:4:1 1:2:5:1 1:2:6:1 1:2:7:1 1:2:8:1 1:2:9:1 2:2:0:1 2:2:1:2 2:2:2:4 2:2:3:16 2:2:4:65536 2:2:5:2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736 3:2:0:1 3:2:1:3 3:2:2:27 3:2:3:7625597484987 # 3:2:4:... (a 3638334640025 digit number) 4:2:0:1 4:2:1:4 4:2:2:256 4:2:3:13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096 # 4:2:4:... (a 8072304726028210248596771043321139499346627442954296810188546463927511841459889094223339600264516627999927712174459405837378703581264109741141923867978290 digit number) 5:2:0:1 5:2:1:5 5:2:2:3125 5:2:3:1911012597945477520356404559703964599198081048990094337139512789246520530242615803012059386519739850265586440155794462235359212788673806972288410146915986602087961896757195701839281660338047611225975533626101001482651123413147768252411493094447176965282756285196737514395357542479093219206641883011787169122552421070050709064674382870851449950256586194461543183511379849133691779928127433840431549236855526783596374102105331546031353725325748636909159778690328266459182983815230286936572873691422648131291743762136325730321645282979486862576245362218017673224940567642819360078720713837072355305446356153946401185348493792719514594505508232749221605848912910945189959948686199543147666938013037176163592594479746164220050885079469804487133205133160739134230540198872570038329801246050197013467397175909027389493923817315786996845899794781068042822436093783946335265422815704302832442385515082316490967285712171708123232790481817268327510112746782317410985888683708522000711733492253913322300756147180429007527677793352306200618286012455254243061006894805446584704820650982664319360960388736258510747074340636286976576702699258649953557976318173902550891331223294743930343956161328334072831663498258145226862004307799084688103804187368324800903873596212919633602583120781673673742533322879296907205490595621406888825991244581842379597863476484315673760923625090371511798941424262270220066286486867868710182980872802560693101949280830825044198424796792058908817112327192301455582916746795197430548026404646854002733993860798594465961501752586965811447568510041568687730903712482535343839285397598749458497050038225012489284001826590056251286187629938044407340142347062055785305325034918189589707199305662188512963187501743535960282201038211616048545121039313312256332260766436236688296850208839496142830484739113991669622649948563685234712873294796680884509405893951104650944137909502276545653133018670633521323028460519434381399810561400652595300731790772711065783494174642684720956134647327748584238274899668755052504394218232191357223054066715373374248543645663782045701654593218154053548393614250664498585403307466468541890148134347714650315037954175778622811776585876941680908203125 6:2:0:1 6:2:1:6 6:2:2:46656 6:2:3:265911977215322677968248940438791859490534220026992430066043278949707355987388290912134229290617558303244068282650672342560163577559027938964261261109302039893034777446061389442537960087466214788422902213385381919290542791575075927495293510931902036227198983057853932880763319683450709063994613113899946027767197828941253221232925203296051182048791364008389549044365792095626712629192228922460944103484957826646121969087967503992005139138817452525944319386504163034800032329572923169272580812038862895645133020319941418621365459381247897039074948526861497196424842856278264872081854849393729902569313271916554406043106913602901064055895953421212374607966076698330673506053248292555308212118869609719907808556324604601321610265543147645240039660236473266424625276737459325658213465426520922004237014324045664647970387863402847679951630130232058962063799462389599996237653062587414899860913010693318793720947688749687131107213871394369489435728806106155770846190228969206308973600818603623114117110987742542396241094684938897236922298685698434294496424701408029483172932386618629065996040198226842823646538422586113704883857989007702229553937496834838684871215875596667442178077474619334121028488932766083813638995310139077457475830177551325338144732131509087834262021410745896573377350678674850098385414388602041091113739704476471248961781346576074509649789560993834854196961759483379704895730837108476073243820752302407048567636674324794945261956856304309751928127990186556725142283682860915312621646073453158008803215388643682616411219867012372209679528053501516815952615060246385651031976562807101388014614012727625982704958770707410574826165853317280489979664766579951201612185779455431473280794446393767971020284196670959037332691306485094879711657607592738752654869501755331152983075423102199223873789151170394698211199449920074131308554214681213100553681303428933484193987068952218348302678831827921107401559352065829092083220235853420468576169753257004117360848240587083162510683198727366804395473509269321561136071328831038756345050322110155370605205773322174682858545420089112607776943756235718685791083329489150388849193534368560214077259275017330081801022785506555813374097953179402013552081883260678201008163982491139468985286586839525924516399022060889167034026307259495537031036865710606177193275628159515876151135875206383384565803345010001967990900297897721047625041503686189053938223646710134213940404719809893782173642263134508441550849287889447186844367723211381684596533430978485492183483286280866059762937533235790152346913482052907574065476985428074987463200630523320192960729488033220100471728132419843750933418994651827766195280398535457879210590938725541731207476215251178380018544287270261438480751698862350923128502235087740792752699447916376634508067462510897466136541982989588498885556218913512465902304156653376336871566688387251967036152900780064068602888069931935207999310689140776424351948418730004965515832221710968997431459333784941295229440309655511855867028445035198762119848288829295380202219936661078120427828843001276230841951275304807279299943098104127984653113848966391547080166051152516695839546951857411342509029205658037023718240037774832603354543093511500118479701534297400745136744846115854618011592988204941297108616076522379205004659217817374565514468243397003282844487472709177905919919935899275425573964493827579365446000027476477191798414513254581650275367333019821278843172709465750692752171808594901217509501207417421617586944497161282705033574579740947969818330006129341292987484417693746915156267819694419069070551740834127011011653057480954762302376223721506011117278656836781687467642565660245054195922383015063540983302976564585032232212348328492684438517686135813543777864727386998363224693825363151801851106716453198841449354389812191334113521409843330236524538792076198600969222577026478681492227501540566298351707639566416336862868467950597297476836923209472900922293702286186940890332878669151652070026861441427046793265655884082960714097320267268049408177667445088496534818017853672361822688485733913385400255456567934282631484871977114047875708058685436192476663298724761448156342842830402602505021574204296564158930366078365481437442997463536675091000411699963360673064732160583745460680016965456758566096290515270920164587535961300182886653830784412200942190677050444291047244003389456102541814425739429044704330880008696148653836354976484820864386333590772821957611006776947872616515008395331769033371947624815253698065061836502368055443145909315203440556148456886065074331669131896824759958256508800018017148943114323386161400405917446760035859282703814428874771624962132036197765252454933467861555487197397619695431510692383342974202667545414955466938030160673169706724462625855137085164539132257730434810596984801783923003483105541564030100015743183630882716196703166554265650963071038792205396803159204779044332369316517777859190655421620788215534975404890121605354486244302325493234970592691383707828560134937722533674320536537516987734918377779951255422227597271611802930324522204021758057752412497127455218252920942278428479471698539697813452696767907179228508491839775153628228243052306992659549440199892772061036616473355839050070498310473487182064267545001577079206261540203265717301064221019125068350266791249399179609291090367076356849258440718452955522072597481584063311817403113771618731801958998128677729597378367094064062033675539166479397859978760723803175210934594321121324518477664328229171706732939059061137733423725445425333376420568500011937009911220804854369888817399953540372960084640042151028030142531122831961619571524522422266809290751616197961883530242609434051902857830543763397061153243582494210503092681521241839983612388292362168558481080453724926008984522786772923739257464771832909220710235406334318389309363173179239077529730921381408865699869199075222777463146266117543342519940204770331943339078678783474761260772613750616583256430398445294250039146099139399860652378000419745042078241181875123263807183683939638150929032237564582040219925725544066194365465456072775046043019953993748322983683489516208150738424224196778813811196748091317343045579356718550325307737095111433942009322636455898150323810716497918542945385958749141645826113403821601639049146905546228789873935871271101782517043060004493333790352302613291297240328564529779500158901992057657168980489272863072158461749965174823389901373567049766197477456695811834009402652112653589115553592994292565814973047995369272297261017111119344511199618772851626644393751712810887048244077398755032272241691310649437516764253759232572706022781934855221122174485770810461351760722786628516143158455550642611470543692693710220729528959120340445210529788692903692277110929238083192013051552699177390638979085275991136415947758803248065658708433324533317375936823619422963019751271123958949266745154287327508514137369673627508864714146824134776235394625172665199539967765285667592328910514509788672574445865951869081323812569736008479758269334749025290058433197876943284080580745193611989429990468280533178199550083230163227944716082271056280731820677005355961868362024509891022139820125623841787690585309928612267303595625824508436018544241421864042750273384716167606981280931250329649599434752052971462973363672222035938392416581549006207453756828721700346944745735294757240987973604996890528648783086812325888847405838796103442374669651862064044434887259551215107382960629850522578340713349255321774853789028601004245977335322044392190426364996651123770623213960923374849645936962093842457558760552195368235329700552845151069077200413182755865827314444969724970410721026079430403668206368143382579398573856744555443907200016627368907470972273592217094439747656651587759921449935310041011278838427588582684058312705649787648119492683806365037319800437060302992518823221372565574622697024120942134211743868144784037217825939334570966080175296107167014761063573878764298769872073630597860069568435695489708455471417296025446297551851567364487849328103367222701989883802494786171436302954969918207348486513230712677788751869942315794571999554857157496720173838789205258104548081079810451185601751030835725087918474499339432087503990193076470750547948775977855358485409413012204167161008344913898947567902878642168826811118376878528543846712653149082404118060490652755864988462101460370601811780023726130518568384806414483578827026111605055591597332741401022568196421828157231909693624098089055609103548620026370881684170231338454875054885411126510070161725747437966591249357866528886086706489298876392642744160118970606956928665435440332410837187184771741684096117675991110268740224339044107121286235825797872641933884252895920171694272374852330986381424704405554720432213808590250910052515845368806455661289841979888898496284938747083462857147394174768624657638140589204233692069874340266435896620604197215859497775734519355596485093355986281552555553876637144264112107050854226245879960823641485704807633869148606767226023183261796956540334262005758333261045868501266693308281023681427721918822056924812008821204534830044654602066446687314813657144604524271412597676737460939657352003890495077862128279292449414208247189079648329501330142509407727347591066686369332364802156261024141032358374502783755634343861798500282951879660646660629481466668133405040220522200280171108546969716343594555462039079692851957417002424888105893065048277613075277549575313245632715147314669715412024040329823708192959224423808246692757409437349315576119847840425210718798954425192388505562440936682434151237375513226295724498075849529979937732877694105147208871848111189812916480877473371785496167602764408871411247754224503353946883319174406712144432837791420728008577200624913032381852272196096837422198435262420299836299729271608009378269710389890410171747674715111904373088567457435014594879091368705600688007101215820026528663115527646246147728140985412548401456814934852708715538761594295805551267452651180429333684268516031849931062195799522678787157577600563347342341331836322988591894412992525937987173318134193990210689518078163555907235238853815379773691546246995995608375329977513075931839086826932047597565683018282299362258470622934630351415117782501732398783298437154204578260937966327569667172864420534855709163219251858795348798337006617691315353399699461860343190483637203756593186066419144028800227652609457125666376633516790109663620347636975698740142905735080137176798745760015315507027808438442428818313304866101754151500082701256096763943176106018568210388507516985167245380074711202913270160244940132970964370790189988317746584257548400289775525880140679745537412020982395367711258261144075551696849205873413439885660637900372629399072607756167012840505370788404636652118089611175070254411191967276530749834800340315078515624047044443843800548133076292757931322031245477272208271569139366156660369445314106758948526343231972951616250248160130237019508749245330726407137979944932556407418997416340099124064330450253506970063255261524844335867914461321021406288026937068429350126536671931757868016862812597156713876878172616168625524292260940347541700734738562142047647305723053881410229273825705072603260789109530288429356116848550927749075462006726604534197266327419654040613692101581093498295056301997299527017704165195710476563419145822684533889701667936555956484762791914445656139676481352345551216386449858109988937265671471973844681311429975749166840093462727879587818457712428704255344559061591532375113973314282008450900403092885758378292759533393050237320140953727613312702323636738951262974123205418288741397543451587603552646624247785552013314031192733246010912730484816415238192195349735466749770728067928503549656651656073233219678107283595565211925536596476285568332871576455097190154739727932800047918608913057369146767557746792528779299399728183694415823499687330127087758737047474994989156500107530548160976123883318437794772844111307075048213457629500443809360274691131620176241365042370710483640300663273050001492189318116979891143885697328268812532306505266364178977237563209358836554989475411347896892051678879301807258515307322923197206927569654412473870860647597082046284096970211213086853213077079583376130225517380758198285144994545668777118410072441336848088288912710026485935090558379495040979631540762442690074319825071132295476718724755365322307056654838102078522716992464692185740996789940963759426635815082609874311642814465663278310925100433649714232243396943774667447600732323274092995514794127098681498564314483494785776699171605823087465819773805874903515931812982154302270951498194208323195734298452691177766317870774297896878337595050008916366692834531015019438079697216037584094989943337553566464573425551343857891020619203587260757327436584898400993791510054147654356650858983129505994893865621299442621781153092790652176034693439864930622511013686730943869682925636443692558679546898863603665855630583172805499503349850642014514121193862834030570451253380424533982166942882325081614482406954734609046200523990247481209299536211933236590300256653077831592975673453496541090621701855413666597584167024844986010971736908181470245722975460872681422559593960315974723533197673148835514287190868362599834270400499224298567901025841345491864396262256475645201871059473180234586620834044589586160820199442461923914785856105411868402806753113119614849401467281772004893587038668657846417413716863007212681900774342602539212792220982908691560673641270058922493307705207693953852412366850882359948312420885917410290539202108431364158028831478952581466061057898564248286789006302089681470922690768111466742981273588223554788036400897829393832820314005422341091232015012900850944803712813177904595244116656449724186006465154847998942775267146316247645761883742804889848246791047994217728623038776307185127119085603589168365310026686699717767682202672035099875544905437455762474952669266826185925494760109140188350857814663423722054270499500299780865313880819240215932197686815613601058506815284724120507808761695627491647723994169983628082403721237061521250736485898629687166636110705477603528516177144778256890343648794041841228026365658117440073990089619025538739489191448585986816990161467401163679675742143222965321708414428129093810694714794064755941973350198612586814344308856251415549285762605619198901973252095999562808987773675654102973681561875892313268432764268630178621453552636520965667196316764034017722091666434789744950852473244657028634169270005001819431542040030172084599795191051798000372557785415768631806304331979721857525124326614036667339830688282444658238941288478669002310876132729503261262054301680693611889765562642391666129911836236611052659658675015666836246339735878483580736126251721492564510017824333924256759757104426644702004525230397427721324746167652910676129219635786478600427070678272625615428041849395626325111576358427602533598962529090699274873940416160695412097599267113126195867660840416457036419601438801767026373993563567374041380716659079947109713880435283320310340418840400006748983425147322869892866456106784243368166276491001043027738157129824773590467857765440706061341139892694918287329393435501095272854345385425759862664207901348095621343861624169032267733079271215106361980031739837397443252721253861444927543937398843985100588467186098922679135834654204236540579567720424333553573026139793867213711726734594997346716921068511887113468577183206220984939442957319753319701649775406168208888735292783748091505628859253662062402814748990091517499775398994412131990711116701806279801762213809809742790235685284108795453665970190523832117054042610767320725588540527996267650384289783805201679611190735044814267455083346488538176439282296344699381075190427267955101076921278189266206795852459943997547981950831527958646685773915067665412058659535964094172358493522912265025350044444517073944582065840479233816563753250588358010388823033147262606260903572966866661513824618140389522937363208322485410406357066138237538169911849381134193030378943781947634127904084745365618684528148004877911534280611852531652130002074329762748614955388918330020720697669159867040909571161103275938008718814332363439287947278005283066831078950153622593636076264069522747373357670031079500890891180431992065781991891921742367825343055866099321871970209934401863036961327661239319991637468025733947258443019537105699601636862210867982110963614287526566134345592092209734615961572329973184429215030829361179224300085964204734328464692710684304672186911785670568896173325697007134133808580335315007145509287686224644510112656026142171246348439697874978450468431519035002262396924289167744597623621006121042262278601469416979637060489934748965688080386494347933043119779331388649543253873533920471939791980828036522414144542989399184229888734954941080387791374729264602243046275162453298013463979814323763208568814908551670330583136102351395754428351841674160433800986699064733712674710338921125140638398786016364200272312026231970962873045513931700196813555606961732228887872506911609937164230689479726518689273237627495626505371179030038296496157201468169424133928191808115243786209845843036387479229838995429956820298177524928653119079262956383497038961417196832641047310616397286588471055182298284174546890188264991312551407389236987459407711433787616010960449520735466638516190877517628715763573713499273526194467203324805988213337736974381162024332452909250396288994124148315509243791182380425590106447395053094679039474272936701768064847072107163292619276334960808681518904078807377598977202909225473012661178239349904871648397166160349391422007998555807238335163595744012726486003972757115734101966460743821532022859918387077331253175572094767473034990147061835884693194220103610195359462069701879060370058816128132397917633322661832076420105665300421196345882636122310107049448090349486531407780885952826080138331536295852904972315103219470562658391019463008301093325544676476745220513240843273988894397363754748826640317547540708429269194630233756057054027655982526115175006345274369721659327892990894276623610814215972772580534039036115566745947585879869710178470141069683014158293470466674015404641151895596292241104271989383730209567357939768599634076515647021503455694360168312464713764497386906314124282347673152838368276565889307665549538023182548189885740728443857260979036520440451722088724577389277741443766464029498915747411102613663322984251421937287887095410172694013765016605302418431168106150791075738627806964887786906139961007250586656591133559643715442286592858586236142538017781731820527486015709802133501974028722035090693451450306497245245215528304909056469902922121779701079055424156392458682629256744994346072147630703817055226383332507726259384615824707840577783629783466008871371167317746879749418084368553113139786077545998529102211148634248576771908391839750864525017059934870026110151139293831284247885292358444680220558420653075015786922413126862003392343108515624920339701061554340826024789206010806116365712658771877097703881170908531182205477324806097504257022224177029472211284503267700113702305252751341039289809014030966135250358397752970870522090287477767349465854312033304994361963835823181413600126244550799595224717138817269690354088331878145260812534962536394578542427927349325605221444612219970160602813480868607014195544269170142079701984468319409573188521205369735140508849965452010589074620574734722211621181056839968271681386086158143341056227474435761755114553134720912996350742991987455275716806187335192882806387477755095565118299464970462913403262924040062737335315869032230805280720986765101692725258804052810013344193659820284083349726000668974775769977416428569330903730831808424720315529943948118591415585703667948439960382465339321107685686342063187160959886399917413955596599866887830868180570306328331158195513701521495944030282495670450166585528664632018435343089871895767687435158019062939508962976787026744453442447348178603455305571256558224353437999976346113240615045577906938914648762713106879932434523718967649656006933427411784596621660858217413405789595804803951105739961515750763022664559388807757433977383507362278120932963306010369271922899485352297012779458770876329621720815200962887581209479769466748019564370865483485048606490745173049067330388573472552036559269484892805536744136041286999099573093891799335305566445799572190205268207850077513887970443364276364878847242295710383378583695690058361306317352505574780146387079894593195689746353431572593163491913406577524442326656960190772216978449626440188897907450525773517566686053118883345509958845235103412740510255697130927637557179261574308099488342096889819805159974999184591751320856671292211104691417981830712254968392083688622671687360862070940314289779784493036141339337953514387743820278023538501439496490869951649542866302662163034540369528194003975413133161311528514289231644058420005456780712551691381115806887633142813708913962304644614538369223760488989972474973103825145911767197174998045774138152640628162876546283132457442355920692365451628058497510188887892526264003814971731602105055234818719107838886356959682060649964827951019132766391995843881370243949502688394360121574662387362829285756072646693984051210611564015138843502208887665563925574988404547634323051414714550860444803999362346842504852373348657580868280707134306894808698582449847968789094783822363454178076755828656450140031164739541422476900917580263194621455479525273900249469658344098031776686722596828921998300349077350029640688826299750423878798978699564278985686563794477690270252730681015512058434101506347167002791080508452943138765337884548339641218995418432300733512057744986193371001036792587086631343896442313427496361530956083717242339987774763434542732327941411809033639235512162268163975192903425063572703044483466885753452289537074669342943483597534944642923906486759987728914245046599668601990167960567967264486474200783090405672844871878943357041652889801956592460419371291957070980482003888240195591742170422714036242962873126519723755554309125264913966520882045061820440268836684965614063084372311823337969459831473373581241603551810711317668737190676840138466160533141282205242982052110279265585206135042053711149729232949444723481363085144504398104764554621621739793470969279842693820801004440178109566448519055631758790006579897275067504711398253058045705615224997091452792132741456599864714516725356212353146245236150920395600581197052850851140146897869419045725738539179267342100080380438274687584500073715470125113751158371646421559672903690837722114128516533870903323828206998964494268438297762425175694125238497778342928918184808119616601180421380762321784155942033530734811733183766471223838335941864040803977946917986111719449498134609282379018700898077393380394787240248157835760680422405170400175212982874151204848263714962414356213569439528766098980209839277444432989805915729320652333792795467772682741662187031097620823286577618713957008795099273401004918147686880915935752902935726571979899593497812819165033655326155937223654243918866996475437642968250228882881095390600833566137419536092403977749420844482288588608666320354466954709639746456396686354719437247139547612185447447844429258032649905580354783765002771378922269193319466736886245329527583373947527028207306481338810365981263064387121552573917049889544373108425827996879880319251902239799222485758222352266686829495660123251249819555280214954446159147488966364004672827794283179805076555739573747443491012549330630801413043430631559352096216330478081125280584868031018540880829189003032427432634502379340334998388768429542217546449932324947454943174021367876108453633517130620350922827476559540171044171720757264143314937479682337365620787118313120457531720598483812884240140968138449392671512765668123154786031582283855321363289227043172599722510680679491210311059930919051447262797704359165321083202571994672134239951525034253827512974402061000655607824661263738394805085661984307601887017471332189856418318717556294420087301367902918518986219289565274115136325019719718255371571071730106352484556250145755254593180069407636939013945170287884160099956865652794633202082759889880053878554128674693393574517549409291525900667717305195348608458162008345938765562654658435482241043229885013239260260934497153691572263850852945473511254106857488983998210810103689575625658957108073143908931533638183553142900822450143541318887707274769742324109614894795230253766024113617096667517601444832948779718056737432810005111634934571785051288650660775799158420126184936071583996379433507682223770755509729897304292563940930701081192610005359416409963258452334662953897805552304269619036646374462034866682834054071716186060657873239709629829260769184560702331154988025345824462370077914728946848125793854106183847021039283603683341182085994463028320671669931582867405674325283927074053293078667358300427151029814076856662722086044390555574402052799849351596380851480804974564092850288441836701117381262578711648380250347531066354105661040650669045325383933104797095994409994143419324419851651221915951821076229828827871532847247739797544425101756010239926904530509399329591693307458996088044859606499247220133680246521250139941891795301700412853870705655106830683963183080445289235950620108687174452251984758749095621431915311490758604683887872877862192572933211224093729144879090554330496784780291289412030896777225504991599630096270492360124201011465522615855714101408365265075789286397758277778326412013047738303748921460961822272763074013386950299347449978183468131962125441101344773216621533961127807630714207540092940650314088481608281794179161099654243837322194809624057123020096750707286193637438121176874973426631490000311706745919757027290302807127924246865803715768336845894042825086875757291018492832334096739056800895816340490818057121269669350286401156814978372960023092861407244781182704128899176355487832266117903864521594748102586124066260958308830911962711019622322227989641327068488581164607275870981739596179910187428644297276676725936524233646145187804906589570092519820167644099856777265978171722666035016698052384441532160026944709203621795654645711408036798593921214002357254741126764616226165231366379857237254388916034749901865888268313194140230572640844398450473344459162514165789308458497122798191680668364883436901899801790897109375190999826287342954826172107099867023687243044488741182994022449197043841254520697320154782265195195600059980532516617449689939149674410059652188296880439643923717875555609461876292722949906688754376617430473173604167070113032334775498690950941837377891959517612584470467630599072016484428433702054260481000072574957641100180832010382006080999884936897615254619217428531422948128764481099975168161859113291991236546485166360054028938088045666105959376093238089250875724345314946126338613160863139735204962511137413082802658453545773104565697967756835563330891130963795058671484926152600333911588494035825279706025045181472418551652110888328278068257412751370410459401706307156008695550183797095457937263463336179007644534708686979098699867342597294018091915081471279230521861941452204533399720666276267188728765411484206785652960571204994041653540903245195470345175135302303354362890393919792999586423994524796177950597328509816636469491756339816252165582740371856250008997343465405436871511433960572629273457690574568529069763064489644388067873182213790917310524896778947355097664202133140017746489105304814751184002326477592292882711864700513297342818189590050222380841821262414295703051852364741779338277816768964001342477353439497885689844286183833123526858476630387966054662726438674482459828986988743551814214259944129103951901837167822387684498153971259572244622583022603057334331793332217701824150371021487866490787799543644930408566024722240534433202334153508675416814754990235633028480720123461126884915660356301999846769997938897160098488183542446933682251921476137249978853166155527525762928346775039785203586370589677615353714555056807831359889509804635947203591439319253721793644938863053407413602485816395329675422350368997523484060140835685714677305132330413918613258468226678534787395866089555560721512026067089391522824887064553103293686252787722045329571012880733425789152714993515065475896868590011491613047870475801969172295742595546647503708062599674649365594948000381042582813859675657662262207110369363557450947375778685081334440678228499217056769817931865090141596139051120845564020942757184209216884668907821816927329681157223737482143990362162774714718059028826233739897859179184847870380477043476556772662681335514313701393835302534231766199506413145893538081057921464407953752152152466188785249172065678228231385797366006844671998544192185655114363113279699279687734818267288268450295294086936892418302522104097805869622109336407272103269470569254106856491672244877541093240686108552310695994235786360728492357117344838597229014947463773836991287972573077739289185178750172023200012729291483227918819139344879219234644698858300272325009787543453632979932010395151245999045988542284962776090932733276695501414931835677462267762496257651519794312344723017201493134372444147373483448838427053824667786432896684419965817859659278225629224104711729610171247470013884360372378250866809386773758931290944195533250294800388366404481334994972660544068487052862971038318125952952221266656230888503549510932822550104978623992848912737228900638213766482475313816628335230558078256577583872816207577206411958576703975670367239282145829652075223941028417996954228554662116361416545981396544923092833995348937568231847952456868264208542780958636296562296512681059045940793420743819684995664426433444364372468077056993782826477937962698075314476560639781199774999093480058071101367983523940180652102398466559676129222396620717971348046230669383045058321418315048804101873936917453925354751238683211614278879359577707932931547841397915011896802271195540369405947803302555097489994149436519585866360029069596827016540801858315473947735801163592524960057047153151462334744162860603553945295352641899348408023847463856952412996957520001436409162782582723567789747264046879345384789306923535910951705352734082309656703668138810555120128109846526329155976395502843888943999359511911944511000044816575267463865328446911221558949734398589574358232550402076583207889460067430313130318914680213184937175304035286442521552022442214280256728759731686116539509093115407025057793925860380810159744331521694801208444812893654295493906970546139756575543937826101990313468451636314664896112128953216197607340763188524269536241573661788795533122770754992761255886493738158709873207280895308714156655807492059457201549011952837895391597020502116873808733273837887820359548311327062393900685531144108899709054270698870670955718682663846272629497617794855616448293214274230393511194061102021530776483100665521107923871595711497155328703311140326373791204614842758165614806770957610350731365858305920499849843838940310930825818734480881780451713733471351518474226482493177752132463998210403663643700718188771186092584850735679067209634328163714795933158555576696028841137723137415404378516010769267208635592058909474420842642165819877171071936917378641195882269269089613403494360361766808846507028552437675211626145758495622465044704055848259065652867474779740359399938771814210472442935482766104690159766341274969631001679409674293979840576869065446443739858510967412494368205664767943232926058921605329598630206382788803827478822769780948691094780122518829267978522201366662147212451866113907862216290529612280724669882340792250720229363347941558318868392206538384434094866270586206182180257100201951885939289746163839296773495154341055793695526607996218692742713752667728109656241655028336108429469426081010185050395579035523458490647098271037522067060099139459541655067741111000392371430816201202837708223967561589025598776314795730561946268899364992104197790801325589764679898708965638028546442148876319116669067360434341298843947159416842070217544705297411281143178949172496978700005365278068339621848521422115715445850152130603441539828658565312739732965812926440450627857026261031781729341704320810741203498659702819707870208504622661946654488150088072722798066735017836549515246208711042761409512712803622431050029574862282207128429507638849308547357626704905897815342319042283214289034621570407592599497164306292075511593628968502052919343951525565810010648837504835305222743662624667832392322060810691962454588096312499799138396373520741507795953319083662971026640218051070282553434014895675499215127934162912745972184858203642844227050593361079113952768949606536996785596460878337067471222759643974653246991920865792626204849669242113660638209542916439857862004106774478657053881127637206543795622456625937135637517606842748901784831452297594281561816472907723916063958200216593159317564841818578810377221322420792956117314303997105587830693313155685347118123828821891308593582898985659622273267328020305358500873328310520996446562305759133927029055418095319855618043792758509176884127208763329966073221668272512192379412414888923758174420357559195566886953341782605751900782716320388043241633137809902127257055207136730594560969199701767926949379272381553859032077105935124258603291611491468563595580107849013467483251070405535908000413587348834917975008983379006423032736725435308133232670701004555152600869066632444317409473018659370169554362499526328233311586339612305247595282607922165990326055504210932883228237210279569037090398728709708792380649679178790103987588507883054533970631331405733116335218024376456146862040572042769149531635124850928761871056375614250590496539974686710414245871398178326489964416768377405265389606730066416269561718459262035698253866258358269727180862719562537631535970405634835288111400540685865940744348298797179700642272390305765628709085485331995998881439837596050767753577254922530702245329018858598274235970621140901606963317621959685348480871734137815963130983613545595955611303976819711484729588060825978486919635772257032472793890257911399504934606378742258656347306389277575547308978219623614066328716167064997437355782313470274208225811493883336456503709130385258356852333749235612220448562916421100463482601608517467074722842457893471774684894845488309399260340076946733677434307644637972585935651136371967565545056795319009107480009314821805482835539908116378037378851958333358861531712610566344197477232464573814601621508364941105092920962336819058174612453423688548936714840862928418574768255765006860796506931527704492197901211182575740867337966671059257412445262955677133599908076070190948675406361774213319534247121019445924422469451370447683440366540665191224244775391900072290905076828765240529751662460880817381001480221427681492457887573771785909121495587929305820355179008022337476868800151862899359830113957536925042115388653867519975432109926147098364083977726344218340724463129037720361020180656730648147127781827441094272939615922384958082811309317743400505342065637571899596909893912144189020632714210097588901782140031192415466799213969489949023456297428492352215760115958676402534840933879832300594090906728425720095503729219280120813485188045550955097574835196300668913948685394050243155373446050415496851619814694355524354393963415898955748196918575124639686606261084323952543952954376633408280328887771703528092086423626596989563534927567913002284271773241207729098151967136917516980307139873276519562004450277668286867556784081420157546364597131075481198125957232154973022807919258807742890502586456890157155005911381208889802670980904973138220778573321023776412934515236969903334340004543237615824740138452977767305148811654765158056740764645737506028497831009933261553909886742201440804409700727728098119363658170387329946625135359001059731116600566534160916575417028270236804575672330755226813486686330324778198807485998187922400794388849254841891129516749632495442104959209918292769043226185019275754338770030345725130209264975029693050099855591403833756073178893506170285700154123539751272707971496738152757732073571943375843905591512803741216384006006657341604796207067484269920834829310031543440955770431798603763911808459968851865750867549700107681983611900129007236993090453625742241461439539835476961058941984772639995456932954961310054888630049605723200735744078204722234221231544532257474116257191040537530672362313491705629432886056717863878656 7:2:0:1 7:2:1:7 7:2:2:823543 # 7:2:3:37598235267837885389...10357073612870132343 (a 695975 digit number) 8:2:0:1 8:2:1:8 8:2:2:16777216 # 8:2:3:60145207536513920379...25397555555421126656 (a 15151336 digit number) 9:2:0:1 9:2:1:9 9:2:2:387420489 # 9:2:3:42812477317574704803...99359681422627177289 (a 369693100 digit number) 10:2:0:1 10:2:1:10 10:2:2:10000000000 # 10:2:3:... (a 10000000000 digit number) 11:2:0:1 11:2:1:11 11:2:2:285311670611 # 11:2:3:... (a 297121486765 digit number) 12:2:0:1 12:2:1:12 12:2:2:8916100448256 # 12:2:3:... (a 9622088391635 digit number) 13:2:0:1 13:2:1:13 13:2:2:302875106592253 # 13:2:3:... (a 337385711567665 digit number) 14:2:0:1 14:2:1:14 14:2:2:11112006825558016 # 14:2:3:... (a 12735782555419959 digit number) 15:2:0:1 15:2:1:15 15:2:2:437893890380859375 # 15:2:3:... (a 515003176870814403 digit number) 16:2:0:1 16:2:1:16 16:2:2:18446744073709551616 # 16:2:3:... (a 22212093154093386895 digit number) 17:2:0:1 17:2:1:17 17:2:2:827240261886336764177 # 17:2:3:... (a 1017876887958722011919 digit number) 18:2:0:1 18:2:1:18 18:2:2:39346408075296537575424 # 18:2:3:... (a 49390464231494343541444 digit number) 19:2:0:1 19:2:1:19 19:2:2:1978419655660313589123979 # 19:2:3:... (a 2529911258871477183123293 digit number) 20:2:0:1 20:2:1:20 20:2:2:104857600000000000000000000 # 20:2:3:... (a 136422882873335218863214297 digit number) 21:2:0:1 21:2:1:21 21:2:2:5842587018385982521381124421 # 21:2:3:... (a 7725181286871851536584161699 digit number) 22:2:0:1 22:2:1:22 22:2:2:341427877364219557396646723584 # 22:2:3:... (a 458340526438710225132843406543 digit number) 23:2:0:1 23:2:1:23 23:2:2:20880467999847912034355032910567 # 23:2:3:... (a 28433514504467439831900993035955 digit number) 24:2:0:1 24:2:1:24 24:2:2:1333735776850284124449081472843776 # 24:2:3:... (a 1840837112681720683942395084381216 digit number) 25:2:0:1 25:2:1:25 25:2:2:88817841970012523233890533447265625 # 25:2:3:... (a 124162014773790739964431599731838212 digit number) 26:2:0:1 26:2:1:26 26:2:2:6156119580207157310796674288400203776 # 26:2:3:... (a 8710745132914411485514673420443810093 digit number) 27:2:0:1 27:2:1:27 27:2:2:443426488243037769948249630619149892803 # 27:2:3:... (a 634704607339354284876828904762819985796 digit number) 28:2:0:1 28:2:1:28 28:2:2:33145523113253374862572728253364605812736 # 28:2:3:... (a 47966809976383689164978385644364084203503 digit number) 29:2:0:1 29:2:1:29 29:2:2:2567686153161211134561828214731016126483469 # 29:2:3:... (a 3754979089615820440662116198963008711183407 digit number) 30:2:0:1 30:2:1:30 30:2:2:205891132094649000000000000000000000000000000 # 30:2:3:... (a 304126167375299121454244837378097999976300328 digit number) 31:2:0:1 31:2:1:31 31:2:2:17069174130723235958610643029059314756044734431 # 31:2:3:... (a 25456312443947506419913530706783844472823216353 digit number) 32:2:0:1 32:2:1:32 32:2:2:1461501637330902918203684832716283019655932542976 # 32:2:3:... (a 2199779157743111490588923283107086827417053752053 digit number) 33:2:0:1 33:2:1:33 33:2:2:129110040087761027839616029934664535539337183380513 # 33:2:3:... (a 196055395651457624070747411885057553879849564955563 digit number) 34:2:0:1 34:2:1:34 34:2:2:11756638905368616011414050501310355554617941909569536 # 34:2:3:... (a 18005044618850738018040884096438161566983607509140556 digit number) 35:2:0:1 35:2:1:35 35:2:2:1102507499354148695951786433413508348166942596435546875 # 35:2:3:... (a 1702346598409269964330866750261687948077899768864682678 digit number) 36:2:0:1 36:2:1:36 36:2:2:106387358923716524807713475752456393740167855629859291136 # 36:2:3:... (a 165570912743006692163267611092812105074488614008940964618 digit number) 37:2:0:1 37:2:1:37 37:2:2:10555134955777783414078330085995832946127396083370199442517 # 37:2:3:... (a 16552580835410493917255137076161060316511419991143722758700 digit number) 38:2:0:1 38:2:1:38 38:2:2:1075911801979993982060429252856123779115487368830416064610304 # 38:2:3:... (a 1699707816174424954321799266374566733167183523201848870889698 digit number) 39:2:0:1 39:2:1:39 39:2:2:112595147462071192539789448988889059930192105219196517009951959 # 39:2:3:... (a 179146154049830695635173738661912935811919990301877037742029069 digit number) 40:2:0:1 40:2:1:40 40:2:2:12089258196146291747061760000000000000000000000000000000000000000 # 40:2:3:... (a 19367716880879590104496859546004717199408818522283304763563550218 digit number) 41:2:0:1 41:2:1:41 41:2:2:1330877630632711998713399240963346255985889330161650994325137953641 # 41:2:3:... (a 2146417957953844823376201545581268787491595643213033406665376497189 digit number) 42:2:0:1 42:2:1:42 42:2:2:150130937545296572356771972164254457814047970568738777235893533016064 # 42:2:3:... (a 243699937837173716717726828717860034703775970860235550846981072974342 digit number) 43:2:0:1 43:2:1:43 43:2:2:17343773367030267519903781288812032158308062539012091953077767198995507 # 43:2:3:... (a 28330506695765243281623175267881552459593254038006373203060553323364140 digit number) 44:2:0:1 44:2:1:44 44:2:2:2050773823560610053645205609172376035486179836520607547294916966189367296 # 44:2:3:... (a 3370349729198490580651375043417911949914536054787130437661383001826156033 digit number) 45:2:0:1 45:2:1:45 45:2:2:248063644451341145494649182395412689744530581492654164321720600128173828125 # 45:2:3:... (a 410101921219674011473927237729199519279738684312248843030133150910423792460 digit number) 46:2:0:1 46:2:1:46 46:2:2:30680346300794274230660433647640397899788170645078853280082659754365153181696 # 46:2:3:... (a 51013986090348393998474945010096958955257976345093525672914575644029102371800 digit number) 47:2:0:1 47:2:1:47 47:2:2:3877924263464448622666648186154330754898344901344205917642325627886496385062863 # 47:2:3:... (a 6484268854175837242486802784110235149754653600611235824254236359662614978276766 digit number) 48:2:0:1 48:2:1:48 48:2:2:500702078263459319174537025249570888246709955377400223021257741084821677152403456 # 48:2:3:... (a 841800981616184880487268534079734532078120989957118390561691624001515952416172873 digit number) 49:2:0:1 49:2:1:49 49:2:2:66009724686219550843768321818371771650147004059278069406814190436565131829325062449 # 49:2:3:... (a 111569377908409484669478841232440867814957170723180995217259334164911961178605030730 digit number) 50:2:0:1 50:2:1:50 50:2:2:8881784197001252323389053344726562500000000000000000000000000000000000000000000000000 # 50:2:3:... (a 15089884935690772673530649371062523685706555590284695099921533545613226521640191055100 digit number) # pentation 0:3:0:1 0:3:1:0 0:3:2:1 0:3:3:0 0:3:4:1 0:3:5:0 0:3:6:1 0:3:7:0 0:3:8:1 0:3:9:0 1:3:0:1 1:3:1:1 1:3:2:1 1:3:3:1 1:3:4:1 1:3:5:1 1:3:6:1 1:3:7:1 1:3:8:1 1:3:9:1 2:3:0:1 2:3:1:2 2:3:2:4 2:3:3:65536 3:3:0:1 3:3:1:3 3:3:2:7625597484987 # 3:3:3:... (a 3638334640025 digit number) # hexation 0:4:0:1 0:4:1:0 0:4:2:1 0:4:3:0 0:4:4:1 0:4:5:0 0:4:6:1 0:4:7:0 0:4:8:1 0:4:9:0 1:4:0:1 1:4:1:1 1:4:2:1 1:4:3:1 1:4:4:1 1:4:5:1 1:4:6:1 1:4:7:1 1:4:8:1 1:4:9:1 2:4:0:1 2:4:1:2 2:4:2:4 3:4:0:1 3:4:1:3 4:4:0:1 4:4:1:4 5:4:0:1 5:4:1:5 6:4:0:1 6:4:1:6 7:4:0:1 7:4:1:7 8:4:0:1 8:4:1:8 9:4:0:1 9:4:1:9 # heptation / septation 0:5:0:1 0:5:1:0 0:5:2:1 0:5:3:0 0:5:4:1 0:5:5:0 0:5:6:1 0:5:7:0 0:5:8:1 0:5:9:0 1:5:0:1 1:5:1:1 1:5:2:1 1:5:3:1 1:5:4:1 1:5:5:1 1:5:6:1 1:5:7:1 1:5:8:1 1:5:9:1 2:5:0:1 2:5:1:2 2:5:2:4 3:5:0:1 3:5:1:3 4:5:0:1 4:5:1:4 5:5:0:1 5:5:1:5 6:5:0:1 6:5:1:6 7:5:0:1 7:5:1:7 8:5:0:1 8:5:1:8 9:5:0:1 9:5:1:9 # octation 0:6:0:1 0:6:1:0 0:6:2:1 0:6:3:0 0:6:4:1 0:6:5:0 0:6:6:1 0:6:7:0 0:6:8:1 0:6:9:0 1:6:0:1 1:6:1:1 1:6:2:1 1:6:3:1 1:6:4:1 1:6:5:1 1:6:6:1 1:6:7:1 1:6:8:1 1:6:9:1 2:6:0:1 2:6:1:2 2:6:2:4 3:6:0:1 3:6:1:3 4:6:0:1 4:6:1:4 5:6:0:1 5:6:1:5 6:6:0:1 6:6:1:6 7:6:0:1 7:6:1:7 8:6:0:1 8:6:1:8 9:6:0:1 9:6:1:9 # nontation / enneation 0:7:0:1 0:7:1:0 0:7:2:1 0:7:3:0 0:7:4:1 0:7:5:0 0:7:6:1 0:7:7:0 0:7:8:1 0:7:9:0 1:7:0:1 1:7:1:1 1:7:2:1 1:7:3:1 1:7:4:1 1:7:5:1 1:7:6:1 1:7:7:1 1:7:8:1 1:7:9:1 2:7:0:1 2:7:1:2 2:7:2:4 3:7:0:1 3:7:1:3 4:7:0:1 4:7:1:4 5:7:0:1 5:7:1:5 6:7:0:1 6:7:1:6 7:7:0:1 7:7:1:7 8:7:0:1 8:7:1:8 9:7:0:1 9:7:1:9 # decation 10:8:0:1 10:8:1:10 # undecation 11:9:0:1 11:9:1:11 # doedecation 12:10:0:1 12:10:1:12 # tredecation 13:11:0:1 13:11:1:13 # higher operators 1234:1232:0:1 1234:1232:1:1234 1234567:1234565:0:1 1234567:1234565:1:1234567 1234567898:1234567896:0:1 1234567898:1234567896:1:1234567898 1234567898765:1234567898763:0:1 1234567898765:1234567898763:1:1234567898765 1234567898765432:1234567898765430:0:1 1234567898765432:1234567898765430:1:1234567898765432 1234567898765432101:1234567898765432099:0:1 1234567898765432101:1234567898765432099:1:1234567898765432101 1234567898765432101234:1.23456789876543e+21:0:1 1234567898765432101234:1.23456789876543e+21:1:1234567898765432101234 1234567898765432101234567:1.23456789876543e+24:0:1 1234567898765432101234567:1.23456789876543e+24:1:1234567898765432101234567 Math-BigInt-2.005003/xt/author/bxxx-addr-in-1-out-1-mbi-mbf.t0000644403072340010010000000550614761071312023003 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigFloat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); # Not yet in Math::BigInt: batan # Not yet in Math::BigFloat: bfib blucas my @methods = qw< babs bsgn bneg binv binc bdec bint bfloor bceil bsqrt bsin bcos batan bfac bdfac btfac bexp blog bilog2 bilog10 bclog2 bclog10 bnot broot bzero bone bpi binf bnan >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigFloat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigFloat") { for my $xs (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigFloat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigFloat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method();|; # Wrap test into a one-liner, which is displayed before # the test is run. my $note; $note .= q|perl -Ilib -MMath::BigFloat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-1-out-1-mbi-mbr.t0000644403072340010010000000546714761071312023025 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigRat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); # Not yet in Math::BigInt: btan # Not yet in Math::BigRat: bfib blucas bsin batan bpi my @methods = qw< babs bsgn bneg binv binc bdec bint bfloor bceil bsqrt bcos bfac bdfac btfac bexp blog bilog2 bilog10 bclog2 bclog10 bnot broot bzero bone binf bnan >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigRat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigRat") { for my $xs (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigRat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigRat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method();|; # Wrap test into a one-liner, which is displayed before # the test is run. my $note; $note .= q|perl -Ilib -MMath::BigRat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-2-out-1-2-mbi-mbf.t0000644403072340010010000000727214761071312023145 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigFloat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); my @methods = qw< bfdiv bfmod btdiv btmod >; for my $method (@methods) { for my $context ('scalar', 'list') { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigFloat") { my $title = "\u$context context, "; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigFloat") { for my $yclass ("Math::BigInt", "Math::BigFloat", "") { for my $xs (@num) { for my $ys (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigFloat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigFloat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= $context eq 'list' ? q| ($q, $r)| : q| $q|; $test .= qq| = \$x -> $method(\$y);|; # Wrap test into a one-liner, which is displayed # before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigFloat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $q, $r); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-2-out-1-2-mbi-mbr.t0000644403072340010010000000725414761071312023161 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigRat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); my @methods = qw< bfdiv bfmod btdiv btmod >; for my $method (@methods) { for my $context ('scalar', 'list') { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigRat") { my $title = "\u$context context, "; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigRat") { for my $yclass ("Math::BigInt", "Math::BigRat", "") { for my $xs (@num) { for my $ys (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigRat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigRat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= $context eq 'list' ? q| ($q, $r)| : q| $q|; $test .= qq| = \$x -> $method(\$y);|; # Wrap test into a one-liner, which is displayed # before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigRat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $q, $r); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-2-out-1-mbi-mbf.t0000644403072340010010000000704614763555454023025 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigFloat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); # Not yet in Math::BigFloat: btmod my @methods = qw< badd bsub bmul bpow bmod band bior bxor blsft brsft bmfac bnok bperm bblsft bbrsft broot batan2 >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigFloat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigFloat") { for my $yclass ("Math::BigInt", "Math::BigFloat", "") { for my $xs (@num) { for my $ys (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigFloat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigFloat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method(\$y);|; # Wrap test into a one-liner, which is displayed # before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigFloat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-2-out-1-mbi-mbr.t0000644403072340010010000000702614763555454023037 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; use Math::BigRat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); # Not yet in Math::BigRat: batan2 my @methods = qw< badd bsub bmul bpow bmod btmod band bior bxor blsft brsft bmfac bnok bperm bblsft bbrsft broot >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigRat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigRat") { for my $yclass ("Math::BigInt", "Math::BigRat", "") { for my $xs (@num) { for my $ys (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigRat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigRat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method(\$y);|; # Wrap test into a one-liner, which is displayed # before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigRat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-3-out-1-mbi-mbf.t0000644403072340010010000001057114763604262023013 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; # Not yet: bmodpow bmodinv use Math::BigFloat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); my @methods = qw< bmuladd >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigFloat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigFloat") { for my $yclass ("Math::BigInt", "Math::BigFloat", "") { for my $zclass ("Math::BigInt", "Math::BigFloat", "") { for my $xs (@num) { for my $ys (@num) { for my $zs (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigFloat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } if ($zclass) { $test .= qq| \$z = $zclass -> new("$zs");| } else { $test .= $zs =~ /^\+?inf$/i ? qq| \$z = 1e99**1e99;| : $zs =~ /^\-inf$/i ? qq| \$z = -(1e99**1e99);| : $zs =~ /^nan$/i ? qq| \$z = (1e99**1e99)-(1e99**1e99);| : qq| \$z = $zs;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigFloat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method(\$y, \$z);|; # Wrap test into a one-liner, which is # displayed before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigFloat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $z, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bxxx-addr-in-3-out-1-mbi-mbr.t0000644403072340010010000001055114763604270023024 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Scalar::Util qw< refaddr >; use Test::More; # Not yet: bmodpow bmodinv use Math::BigRat; my @num = qw< 1 2.5 4 4.5 7.5 8 9 Inf >; @num = ((map { "-$_" } reverse @num), 0, @num, "NaN"); my @methods = qw< bmuladd >; for my $method (@methods) { for my $downgrade (undef, "Math::BigInt") { for my $upgrade (undef, "Math::BigRat") { my $title = ""; if ($downgrade) { if ($upgrade) { $title .= "upgrading and downgrading"; } else { $title .= "downgrading, but no upgrading"; } } else { if ($upgrade) { $title .= "upgrading, but no downgrading" } else { $title .= "no upgrading or downgrading"; } } for my $xclass ("Math::BigInt", "Math::BigRat") { for my $yclass ("Math::BigInt", "Math::BigRat", "") { for my $zclass ("Math::BigInt", "Math::BigRat", "") { for my $xs (@num) { for my $ys (@num) { for my $zs (@num) { # Set default upgrading and downgrading. my $test; $test .= 'Math::BigInt -> upgrade(undef);'; $test .= ' Math::BigRat -> downgrade(undef);'; # Append constructors. $test .= qq| \$x = $xclass -> new("$xs");|; if ($yclass) { $test .= qq| \$y = $yclass -> new("$ys");| } else { $test .= $ys =~ /^\+?inf$/i ? qq| \$y = 1e99**1e99;| : $ys =~ /^\-inf$/i ? qq| \$y = -(1e99**1e99);| : $ys =~ /^nan$/i ? qq| \$y = (1e99**1e99)-(1e99**1e99);| : qq| \$y = $ys;|; } if ($zclass) { $test .= qq| \$z = $zclass -> new("$zs");| } else { $test .= $zs =~ /^\+?inf$/i ? qq| \$z = 1e99**1e99;| : $zs =~ /^\-inf$/i ? qq| \$z = -(1e99**1e99);| : $zs =~ /^nan$/i ? qq| \$z = (1e99**1e99)-(1e99**1e99);| : qq| \$z = $zs;|; } # Get address. $test .= ' $xa = refaddr($x);'; # Append upgrading and downgrading, if applicable. $test .= qq| Math::BigInt -> upgrade("$upgrade");| if $upgrade; $test .= qq| Math::BigRat -> downgrade("$downgrade");| if $downgrade; # Apply method call. $test .= qq| \$q = \$x -> $method(\$y, \$z);|; # Wrap test into a one-liner, which is # displayed before the test is run. my $note; $note .= q|perl -Ilib -MMath::BigRat -MScalar::Util=refaddr -wle '|; $note .= $test; $note .= q|'|; note "\n", $note, "\n\n"; subtest $test => sub { my ($x, $xa, $y, $z, $q); eval $test; is($@, '', '$@ is empty'); is($xa, refaddr($q), 'refaddr($x) = refaddr($q)'); }; } } } } } } } } } done_testing(); Math-BigInt-2.005003/xt/author/bzero-mbf.t0000644403072340010010000000152014537274605017754 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3; use Math::BigFloat; my $x; note("bzero() as a class method"); $x = Math::BigFloat -> bzero(); subtest '$x = Math::BigFloat -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0, '$x == 0'); }; note("bzero() as an instance method"); $x = Math::BigFloat -> new("2") -> bzero(); subtest '$x = Math::BigFloat -> new("2") -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0, '$x == 0'); }; note("bzero() as a function"); $x = Math::BigFloat::bzero(); subtest '$x = Math::BigFloat -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0, '$x == 0'); }; Math-BigInt-2.005003/xt/author/bzero-mbi.t0000644403072340010010000000146614537274605017770 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3; use Math::BigInt; my $x; note("bzero() as a class method"); $x = Math::BigInt -> bzero(); subtest '$x = Math::BigInt -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); }; note("bzero() as an instance method"); $x = Math::BigInt -> new("2") -> bzero(); subtest '$x = Math::BigInt -> new("2") -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); }; note("bzero() as a function"); $x = Math::BigInt::bzero(); subtest '$x = Math::BigInt -> bzero()' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); }; Math-BigInt-2.005003/xt/author/const-mbf.t0000644403072340010010000002263414537274605017772 0ustar OSPJADomain Users# -*- mode: perl; -*- # Binary, octal, and hexadecimal floating point literals were introduced in # v5.22.0. # # - It wasn't until v5.28.0 that binary, octal, and hexadecimal floating point # literals were converted to the correct value on perls compiled with quadmath # support. # # - It wasn't until v5.32.0 that binary and octal floating point literals worked # correctly with constant overloading. Before v5.32.0, it seems like the # second character is always silently converted to an "x", so, e.g., "0b1.1p8" # is passed to the overload::constant subroutine as "0x1.1p8", and "01.1p+8" # is passed as "0x.1p+8". # # - Octal floating point literals using the "0o" prefix were introduced in # v5.34.0. # Note that all numeric literals that should not be overloaded must be quoted. use strict; use warnings; use Test::More tests => "170"; use Math::BigFloat ":constant"; my $class = "Math::BigFloat"; my $x; ################################################################################ # The following tests should be identical for Math::BigInt, Math::BigFloat and # Math::BigRat. # These are handled by "binary". $x = 0xff; is($x, "255", "hexadecimal integer literal 0xff"); is(ref($x), $class, "value is a $class"); SKIP: { # Hexadecimal literals using the "0X" prefix require v5.14.0. skip "perl v5.14.0 required for hexadecimal integer literals" . " with '0X' prefix", "2" if $] < "5.014"; $x = eval "0XFF"; is($x, "255", "hexadecimal integer literal 0XFF"); is(ref($x), $class, "value is a $class"); } $x = 0377; is($x, "255", "octal integer literal 0377"); is(ref($x), $class, "value is a $class"); SKIP: { # Octal literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "4" if $] < "5.034"; for my $str (qw/ 0o377 0O377 /) { $x = eval $str; is($x, "255", "octal integer literal $str"); is(ref($x), $class, "value is a $class"); } } $x = 0b11111111; is($x, "255", "binary integer literal 0b11111111"); is(ref($x), $class, "value is a $class"); SKIP: { # Binary literals using the "0B" prefix require v5.14.0. skip "perl v5.14.0 required for binary integer literals" . " with '0B' prefix", "2" if $] < "5.014"; $x = eval "0B11111111"; is($x, "255", "binary integer literal 0B11111111"); is(ref($x), $class, "value is a $class"); } # These are handled by "float". $x = 999999999999999999999999999999999999999999999999999999999999999999999999; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "decimal integer literal " . ("9" x 72)); is(ref($x), $class, "value is a $class"); $x = 1e72 - 1; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "literal 1e72 - 1"); is(ref($x), $class, "value is a $class"); # These are handled by "float". SKIP: { # Hexadecimal floating point literals require v5.28.0. skip "perl v5.28.0 required for hexadecimal floating point literals", "6" * "2" + "2" * "2" if $] < "5.028"; for my $str (qw/ 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 /) { $x = eval $str; is($x, "314", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0x0.0p+8 0X0.0P+8 /) { $x = eval $str; is($x, "0", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "6" * "2" + "6" * "2" if $] < "5.034"; for my $str (qw/ 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0o0.0p+8 0O0.0P+8 0o0.0p8 0O0.0P8 0o0.0p-8 0O0.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0" prefix require v5.32.0. skip "perl v5.32.0 required for octal floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 00.0p+8 00.0P+8 00.0p8 00.0P8 00.0p-8 00.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Binary floating point literals require v5.32.0. skip "perl v5.32.0 required for binary floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 /) { $x = eval $str; is($x, "314", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0b0p+8 0B0P+8 0b0p8 0B0P8 0b0p-8 0B0P-8 /) { $x = eval $str; is($x, "0", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } } # These are handled by "integer". $x = 314; is($x, "314", "integer literal 314"); is(ref($x), $class, "value is a $class"); $x = 0; is($x, "0", "integer literal 0"); is(ref($x), $class, "value is a $class"); $x = 2 ** 255; is($x, "578960446186580977117854925043439539266" . "34992332820282019728792003956564819968", "2 ** 255"); is(ref($x), $class, "value is a $class"); # These are handled by "binary". { no warnings "portable"; # protect against "non-portable" warnings # hexadecimal constant $x = 0x123456789012345678901234567890; is($x, "94522879687365475552814062743484560", "hexadecimal constant 0x123456789012345678901234567890"); is(ref($x), $class, "value is a $class"); # octal constant $x = 012345676543210123456765432101234567654321; is($x, "1736132869400711976876385488263403729", "octal constant 012345676543210123456765432101234567654321"); is(ref($x), $class, "value is a $class"); # binary constant $x = 0b01010100011001010110110001110011010010010110000101101101; is($x, "23755414508757357", "binary constant 0b0101010001100101011011000111" . "0011010010010110000101101101"); is(ref($x), $class, "value is a $class"); } ################################################################################ # The following tests are unique to $class. # These are handled by "float". $x = 0.999999999999999999999999999999999999999999999999999999999999999999999999; is($x, "0.999999999999999999999999999999999999999999999999999999999999999999999999", "decimal floating point literal 0." . ("9" x 72)); is(ref($x), $class, "value is a $class"); $x = 1e72 - 0.1; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999.9", "literal 1e72 - 0.1"); is(ref($x), $class, "value is a $class"); # These are handled by "float". SKIP: { # Hexadecimal floating point literals require v5.28.0. skip "perl v5.28.0 required for hexadecimal floating point literals", "6" * "2" if $] < "5.028"; for my $str (qw/ 0x1.92p+1 0X1.92P+1 0x1.92p1 0X1.92P1 0x19.2p-3 0X19.2P-3 /) { $x = eval $str; is($x, "3.140625", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "6" * "2" if $] < "5.034"; for my $str (qw/ 0o1.444p+1 0O1.444P+1 0o1.444p1 0O1.444P1 0o14.44p-2 0O14.44P-2 /) { $x = eval $str; is($x, "3.140625", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0" prefix require v5.32.0. skip "perl v5.32.0 required for octal floating point literals", "6" * "2" if $] < "5.032"; for my $str (qw/ 01.444p+1 01.444P+1 01.444p1 01.444P1 014.44p-2 014.44P-2 /) { $x = eval $str; is($x, "3.140625", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Binary floating point literals require v5.32.0. skip "perl v5.32.0 required for binary floating point literals", "6" * "2" if $] < "5.032"; for my $str (qw/ 0b1.1001001p+1 0B1.1001001P+1 0b1.1001001p1 0B1.1001001P1 0b110.01001p-1 0B110.01001P-1 /) { $x = eval $str; is($x, "3.140625", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } } Math-BigInt-2.005003/xt/author/const-mbi.t0000644403072340010010000001571214537274605017774 0ustar OSPJADomain Users# -*- mode: perl; -*- # Binary, octal, and hexadecimal floating point literals were introduced in # v5.22.0. # # - It wasn't until v5.28.0 that binary, octal, and hexadecimal floating point # literals were converted to the correct value on perls compiled with quadmath # support. # # - It wasn't until v5.34.0 that binary and octal floating point literals worked # correctly with constant overloading. Before v5.34.0, it seems like the # second character is always silently converted to an "x", so, e.g., "0b1.1p8" # is passed to the overload::constant subroutine as "0x1.1p8", and "01.1p+8" # is passed as "0x.1p+8". # # - Octal floating point literals using the "0o" prefix were introduced in # v5.34.0. # Note that all numeric literals that should not be overloaded must be quoted. use strict; use warnings; use Test::More tests => "118"; use Math::BigInt ":constant"; my $class = "Math::BigInt"; my $x; ################################################################################ # The following tests should be identical for Math::BigInt, Math::BigFloat and # Math::BigRat. # These are handled by "binary". $x = 0xff; is($x, "255", "hexadecimal integer literal 0xff"); is(ref($x), $class, "value is a $class"); SKIP: { # Hexadecimal literals using the "0X" prefix require v5.14.0. skip "perl v5.14.0 required for hexadecimal integer literals" . " with '0X' prefix", "2" if $] < "5.014"; $x = eval "0XFF"; is($x, "255", "hexadecimal integer literal 0XFF"); is(ref($x), $class, "value is a $class"); } $x = 0377; is($x, "255", "octal integer literal 0377"); is(ref($x), $class, "value is a $class"); SKIP: { # Octal literals using the "0o" prefix were introduced in v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "4" if $] < "5.034"; for my $str (qw/ 0o377 0O377 /) { $x = eval $str; is($x, "255", "octal integer literal $str"); is(ref($x), $class, "value is a $class"); } } $x = 0b11111111; is($x, "255", "binary integer literal 0b11111111"); is(ref($x), $class, "value is a $class"); SKIP: { # Binary literals using the "0B" prefix require v5.14.0. skip "perl v5.14.0 required for binary integer literals" . " with '0B' prefix", "2" if $] < "5.014"; $x = eval "0B11111111"; is($x, "255", "binary integer literal 0B11111111"); is(ref($x), $class, "value is a $class"); } # These are handled by "float". $x = 999999999999999999999999999999999999999999999999999999999999999999999999; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "decimal integer literal " . ("9" x 72)); is(ref($x), $class, "value is a $class"); $x = 1e72 - 1; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "literal 1e72 - 1"); is(ref($x), $class, "value is a $class"); # These are handled by "float". SKIP: { # Hexadecimal floating point literals require v5.28.0. skip "perl v5.28.0 required for hexadecimal floating point literals", "6" * "2" + "2" * "2" if $] < "5.028"; for my $str (qw/ 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 /) { $x = eval $str; is($x, "314", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0x0.0p+8 0X0.0P+8 /) { $x = eval $str; is($x, "0", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "6" * "2" + "6" * "2" if $] < "5.034"; for my $str (qw/ 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0o0.0p+8 0O0.0P+8 0o0.0p8 0O0.0P8 0o0.0p-8 0O0.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0" prefix require v5.32.0. skip "perl v5.32.0 required for octal floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 00.0p+8 00.0P+8 00.0p8 00.0P8 00.0p-8 00.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Binary floating point literals require v5.32.0. skip "perl v5.32.0 required for binary floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 /) { $x = eval $str; is($x, "314", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0b0p+8 0B0P+8 0b0p8 0B0P8 0b0p-8 0B0P-8 /) { $x = eval $str; is($x, "0", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } } # These are handled by "integer". $x = 314; is($x, "314", "integer literal 314"); is(ref($x), $class, "value is a $class"); $x = 0; is($x, "0", "integer literal 0"); is(ref($x), $class, "value is a $class"); $x = 2 ** 255; is($x, "578960446186580977117854925043439539266" . "34992332820282019728792003956564819968", "2 ** 255"); is(ref($x), $class, "value is a $class"); # These are handled by "binary". { no warnings "portable"; # protect against "non-portable" warnings # hexadecimal constant $x = 0x123456789012345678901234567890; is($x, "94522879687365475552814062743484560", "hexadecimal constant 0x123456789012345678901234567890"); is(ref($x), $class, "value is a $class"); # octal constant $x = 012345676543210123456765432101234567654321; is($x, "1736132869400711976876385488263403729", "octal constant 012345676543210123456765432101234567654321"); is(ref($x), $class, "value is a $class"); # binary constant $x = 0b01010100011001010110110001110011010010010110000101101101; is($x, "23755414508757357", "binary constant 0b0101010001100101011011000111" . "0011010010010110000101101101"); is(ref($x), $class, "value is a $class"); } Math-BigInt-2.005003/xt/author/const-mbr.t0000644403072340010010000002303014546553333017773 0ustar OSPJADomain Users# -*- mode: perl; -*- # Binary, octal, and hexadecimal floating point literals were introduced in # v5.22.0. # # - It wasn't until v5.28.0 that binary, octal, and hexadecimal floating point # literals were converted to the correct value on perls compiled with quadmath # support. # # - It wasn't until v5.32.0 that binary and octal floating point literals worked # correctly with constant overloading. Before v5.32.0, it seems like the # second character is always silently converted to an "x", so, e.g., "0b1.1p8" # is passed to the overload::constant subroutine as "0x1.1p8", and "01.1p+8" # is passed as "0x.1p+8". # # - Octal floating point literals using the "0o" prefix were introduced in # v5.34.0. # Note that all numeric literals that should not be overloaded must be quoted. use strict; use warnings; use Test::More tests => "171"; use Math::BigRat ":constant"; my $class = "Math::BigRat"; my $x; ################################################################################ # The following tests should be identical for Math::BigInt, Math::BigFloat and # Math::BigRat. # These are handled by "binary". $x = 0xff; is($x, "255", "hexadecimal integer literal 0xff"); is(ref($x), $class, "value is a $class"); SKIP: { # Hexadecimal literals using the "0X" prefix require v5.14.0. skip "perl v5.14.0 required for hexadecimal integer literals" . " with '0X' prefix", "2" if $] < "5.014"; $x = eval "0XFF"; is($x, "255", "hexadecimal integer literal 0XFF"); is(ref($x), $class, "value is a $class"); } $x = 0377; is($x, "255", "octal integer literal 0377"); is(ref($x), $class, "value is a $class"); SKIP: { # Octal literals using the "0o" prefix requires v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "4" if $] < "5.034"; for my $str (qw/ 0o377 0O377 /) { $x = eval $str; is($x, "255", "octal integer literal $str"); is(ref($x), $class, "value is a $class"); } } $x = 0b11111111; is($x, "255", "binary integer literal 0b11111111"); is(ref($x), $class, "value is a $class"); SKIP: { # Binary literals using the "0B" prefix require v5.14.0. skip "perl v5.14.0 required for binary integer literals" . " with '0B' prefix", "2" if $] < "5.014"; $x = eval "0B11111111"; is($x, "255", "binary integer literal 0B11111111"); is(ref($x), $class, "value is a $class"); } # These are handled by "float". $x = 999999999999999999999999999999999999999999999999999999999999999999999999; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "decimal integer literal " . ("9" x 72)); is(ref($x), $class, "value is a $class"); $x = 1e72 - 1; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999", "literal 1e72 - 1"); is(ref($x), $class, "value is a $class"); # These are handled by "float". SKIP: { # Hexadecimal floating point literals require v5.28.0. skip "perl v5.28.0 required for hexadecimal floating point literals", "6" * "2" + "2" * "2" if $] < "5.028"; for my $str (qw/ 0x1.3ap+8 0X1.3AP+8 0x1.3ap8 0X1.3AP8 0x13a0p-4 0X13A0P-4 /) { $x = eval $str; is($x, "314", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0x0.0p+8 0X0.0P+8 /) { $x = eval $str; is($x, "0", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "6" * "2" + "6" * "2" if $] < "5.034"; for my $str (qw/ 0o1.164p+8 0O1.164P+8 0o1.164p8 0O1.164P8 0o11640p-4 0O11640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0o0.0p+8 0O0.0P+8 0o0.0p8 0O0.0P8 0o0.0p-8 0O0.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0" prefix require v5.32.0. skip "perl v5.32.0 required for octal floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 01.164p+8 01.164P+8 01.164p8 01.164P8 011640p-4 011640P-4 /) { $x = eval $str; is($x, "314", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 00.0p+8 00.0P+8 00.0p8 00.0P8 00.0p-8 00.0P-8 /) { $x = eval $str; is($x, "0", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Binary floating point literals require v5.32.0. skip "perl v5.32.0 required for binary floating point literals", "6" * "2" + "6" * "2" if $] < "5.032"; for my $str (qw/ 0b1.0011101p+8 0B1.0011101P+8 0b1.0011101p8 0B1.0011101P8 0b10011101000p-2 0B10011101000P-2 /) { $x = eval $str; is($x, "314", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } for my $str (qw/ 0b0p+8 0B0P+8 0b0p8 0B0P8 0b0p-8 0B0P-8 /) { $x = eval $str; is($x, "0", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } } # These are handled by "integer". $x = 314; is($x, "314", "integer literal 314"); is(ref($x), $class, "value is a $class"); $x = 0; is($x, "0", "integer literal 0"); is(ref($x), $class, "value is a $class"); $x = 2 ** 255; is($x, "578960446186580977117854925043439539266" . "34992332820282019728792003956564819968", "2 ** 255"); is(ref($x), $class, "value is a $class"); # These are handled by "binary". { no warnings "portable"; # protect against "non-portable" warnings # hexadecimal constant $x = 0x123456789012345678901234567890; is($x, "94522879687365475552814062743484560", "hexadecimal constant 0x123456789012345678901234567890"); is(ref($x), $class, "value is a $class"); # octal constant $x = 012345676543210123456765432101234567654321; is($x, "1736132869400711976876385488263403729", "octal constant 012345676543210123456765432101234567654321"); is(ref($x), $class, "value is a $class"); # binary constant $x = 0b01010100011001010110110001110011010010010110000101101101; is($x, "23755414508757357", "binary constant 0b0101010001100101011011000111" . "0011010010010110000101101101"); is(ref($x), $class, "value is a $class"); } ################################################################################ # The following tests are unique to $class. # These are handled by "float". $x = 0.999999999999999999999999999999999999999999999999999999999999999999999999; is($x, "999999999999999999999999999999999999999999999999999999999999999999999999" . "/1000000000000000000000000000000000000000000000000000000000000000000000000", "decimal floating point literal 0." . ("9" x 72)); is(ref($x), $class, "value is a $class"); $x = 1e72 - 0.1; is($x, "9999999999999999999999999999999999999999999999999999999999999999999999999" . "/10", "literal 1e72 - 0.1"); is(ref($x), $class, "value is a $class"); # These are handled by "float". SKIP: { # Hexadecimal floating point literals require v5.28.0. skip "perl v5.28.0 required for hexadecimal floating point literals", "6" * "2" if $] < "5.028"; for my $str (qw/ 0x1.92p+1 0X1.92P+1 0x1.92p1 0X1.92P1 0x19.2p-3 0X19.2P-3 /) { $x = eval $str; is($x, "201/64", "hexadecimal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0o" prefix require v5.34.0. skip "perl v5.34.0 required for octal floating point literals" . " with '0o' prefix", "6" * "2" if $] < "5.034"; for my $str (qw/ 0o1.444p+1 0O1.444P+1 0o1.444p1 0O1.444P1 0o14.44p-2 0O14.44P-2 /) { $x = eval $str; is($x, "201/64", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Octal floating point literals using the "0" prefix require v5.32.0. skip "perl v5.32.0 required for octal floating point literals", "6" * "2" if $] < "5.032"; for my $str (qw/ 01.444p+1 01.444P+1 01.444p1 01.444P1 014.44p-2 014.44P-2 /) { $x = eval $str; is($x, "201/64", "octal floating point literal $str"); is(ref($x), $class, "value is a $class"); } } SKIP: { # Binary floating point literals require v5.32.0. skip "perl v5.32.0 required for binary floating point literals", "6" * "2" if $] < "5.032"; for my $str (qw/ 0b1.1001001p+1 0B1.1001001P+1 0b1.1001001p1 0B1.1001001P1 0b110.01001p-1 0B110.01001P-1 /) { $x = eval $str; is($x, "201/64", "binary floating point literal $str"); is(ref($x), $class, "value is a $class"); } } is(1.0 / 3.0, "1/3", "1.0 / 3.0 = 1/3"); Math-BigInt-2.005003/xt/author/constructors-a-p-r.t0000644403072340010010000003433714546553333021565 0ustar OSPJADomain Users# -*- mode: perl; -*- # Test how accuracy and precision are set in the constructors. All of the # constructors need to be tested: # # new(), bzero(), bone(), binf(), bnan(), bpi(), and the from_*() methods. use strict; use warnings; use Test::More tests => 160; use Math::BigInt; use Math::BigFloat; my $classes = [ 'Math::BigInt', 'Math::BigFloat', ]; # Each line in the table constains three elements. One with the class # variables, one with the arguments to the constructor, and one with the # resulting instance variables. my $table1 = [ [ 'new', [ [{a => 4, r => 'even'}, [ ], [ 0, 4, undef, 'even']], [{a => 4, r => 'even'}, [ 5, ], [ 5, 4, undef, 'even']], # [{a => 4, r => 'even'}, [ 5, undef ], [ 5, undef, undef, 'even']], [{a => 4, r => 'even'}, [ 5, undef, -3 ], [ 5, undef, -3, 'even']], [{a => 4, r => 'even'}, [ 5, undef, -3, 'odd'], [ 5, undef, -3, 'odd']], [{a => 4, r => 'even'}, [ 5, undef, undef ], [ 5, undef, undef, 'even']], [{a => 4, r => 'even'}, [ 5, undef, undef, 'odd'], [ 5, undef, undef, 'odd']], [{p => -3, r => 'even'}, [ 5, ], [ 5, undef, -3, 'even']], [{p => -3, r => 'even'}, [ 5, 4, ], [ 5, 4, undef, 'even']], [{p => -3, r => 'even'}, [ 5, 4, undef ], [ 5, 4, undef, 'even']], [{p => -3, r => 'even'}, [ 5, 4, undef, 'odd'], [ 5, 4, undef, 'odd']], [{p => -3, r => 'even'}, [ 5, undef, undef ], [ 5, undef, undef, 'even']], [{p => -3, r => 'even'}, [ 5, undef, undef, 'odd'], [ 5, undef, undef, 'odd']], # [{a => 4, r => 'even'}, [ 'NaN', ], [ 'NaN', 4, undef, 'even']], # [{a => 4, r => 'even'}, [ 'NaN', undef ], [ 'NaN', undef, undef, undef]], # [{a => 4, r => 'even'}, [ 'NaN', undef, -3 ], [ 'NaN', undef, -3, undef]], # [{a => 4, r => 'even'}, [ 'NaN', undef, -3, 'odd'], [ 'NaN', undef, -3, undef]], # [{a => 4, r => 'even'}, [ 'NaN', undef, undef ], [ 'NaN', undef, undef, undef]], # [{a => 4, r => 'even'}, [ 'NaN', undef, undef, 'odd'], [ 'NaN', undef, undef, undef]], [{p => -3, r => 'even'}, [ 'NaN', ], [ 'NaN', undef, -3, undef]], # [{p => -3, r => 'even'}, [ 'NaN', 4, ], [ 'NaN', 4, undef, undef]], # [{p => -3, r => 'even'}, [ 'NaN', 4, undef ], [ 'NaN', 4, undef, undef]], # [{p => -3, r => 'even'}, [ 'NaN', 4, undef, 'odd'], [ 'NaN', 4, undef, undef]], # [{p => -3, r => 'even'}, [ 'NaN', undef, undef ], [ 'NaN', undef, undef, undef]], # [{p => -3, r => 'even'}, [ 'NaN', undef, undef, 'odd'], [ 'NaN', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '+inf', ], [ 'inf', 4, undef, 'even']], # [{a => 4, r => 'even'}, [ '+inf', undef ], [ 'inf', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '+inf', undef, -3 ], [ 'inf', undef, -3, undef]], # [{a => 4, r => 'even'}, [ '+inf', undef, -3, 'odd'], [ 'inf', undef, -3, undef]], # [{a => 4, r => 'even'}, [ '+inf', undef, undef ], [ 'inf', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '+inf', undef, undef, 'odd'], [ 'inf', undef, undef, undef]], # [{p => -3, r => 'even'}, [ '+inf', ], [ 'inf', undef, -3, undef]], # [{p => -3, r => 'even'}, [ '+inf', 4, ], [ 'inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '+inf', 4, undef ], [ 'inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '+inf', 4, undef, 'odd'], [ 'inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '+inf', undef, undef ], [ 'inf', undef, undef, undef]], # [{p => -3, r => 'even'}, [ '+inf', undef, undef, 'odd'], [ 'inf', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '-inf', ], [ '-inf', 4, undef, 'even']], # [{a => 4, r => 'even'}, [ '-inf', undef ], [ '-inf', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '-inf', undef, -3 ], [ '-inf', undef, -3, undef]], # [{a => 4, r => 'even'}, [ '-inf', undef, -3, 'odd'], [ '-inf', undef, -3, undef]], # [{a => 4, r => 'even'}, [ '-inf', undef, undef ], [ '-inf', undef, undef, undef]], # [{a => 4, r => 'even'}, [ '-inf', undef, undef, 'odd'], [ '-inf', undef, undef, undef]], # [{p => -3, r => 'even'}, [ '-inf', ], [ '-inf', undef, -3, undef]], # [{p => -3, r => 'even'}, [ '-inf', 4, ], [ '-inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '-inf', 4, undef ], [ '-inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '-inf', 4, undef, 'odd'], [ '-inf', 4, undef, undef]], # [{p => -3, r => 'even'}, [ '-inf', undef, undef ], [ '-inf', undef, undef, undef]], # [{p => -3, r => 'even'}, [ '-inf', undef, undef, 'odd'], [ '-inf', undef, undef, undef]], ] ], [ 'bzero', [ [{a => 4, r => 'even'}, [ ], [0, 4, undef, 'even']], [{a => 4, r => 'even'}, [undef ], [0, undef, undef, 'even']], [{a => 4, r => 'even'}, [undef, -3 ], [0, undef, -3, 'even']], [{a => 4, r => 'even'}, [undef, -3, 'odd'], [0, undef, -3, 'odd']], [{a => 4, r => 'even'}, [undef, undef ], [0, undef, undef, 'even']], [{a => 4, r => 'even'}, [undef, undef, 'odd'], [0, undef, undef, 'odd']], [{p => -3, r => 'even'}, [ ], [0, undef, -3, 'even']], [{p => -3, r => 'even'}, [ 4, ], [0, 4, undef, 'even']], [{p => -3, r => 'even'}, [ 4, undef ], [0, 4, undef, 'even']], [{p => -3, r => 'even'}, [ 4, undef, 'odd'], [0, 4, undef, 'odd']], [{p => -3, r => 'even'}, [undef, undef ], [0, undef, undef, 'even']], [{p => -3, r => 'even'}, [undef, undef, 'odd'], [0, undef, undef, 'odd']], ], ], [ 'bone', [ [{a => 4, r => 'even'}, [ ], [ 1, 4, undef, 'even']], [{a => 4, r => 'even'}, ['+', ], [ 1, 4, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef ], [ 1, undef, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef, -3 ], [ 1, undef, -3, 'even']], [{a => 4, r => 'even'}, ['+', undef, -3, 'odd'], [ 1, undef, -3, 'odd']], [{a => 4, r => 'even'}, ['+', undef, undef ], [ 1, undef, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef, undef, 'odd'], [ 1, undef, undef, 'odd']], [{p => -3, r => 'even'}, [ ], [ 1, undef, -3, 'even']], [{p => -3, r => 'even'}, ['+', ], [ 1, undef, -3, 'even']], [{p => -3, r => 'even'}, ['+', 4, ], [ 1, 4, undef, 'even']], [{p => -3, r => 'even'}, ['+', 4, undef ], [ 1, 4, undef, 'even']], [{p => -3, r => 'even'}, ['+', 4, undef, 'odd'], [ 1, 4, undef, 'odd']], [{p => -3, r => 'even'}, ['+', undef, undef ], [ 1, undef, undef, 'even']], [{p => -3, r => 'even'}, ['+', undef, undef, 'odd'], [ 1, undef, undef, 'odd']], [{a => 4, r => 'even'}, ['-', ], [-1, 4, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef ], [-1, undef, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef, -3 ], [-1, undef, -3, 'even']], [{a => 4, r => 'even'}, ['-', undef, -3, 'odd'], [-1, undef, -3, 'odd']], [{a => 4, r => 'even'}, ['-', undef, undef ], [-1, undef, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef, undef, 'odd'], [-1, undef, undef, 'odd']], [{p => -3, r => 'even'}, ['-', ], [-1, undef, -3, 'even']], [{p => -3, r => 'even'}, ['-', 4, ], [-1, 4, undef, 'even']], [{p => -3, r => 'even'}, ['-', 4, undef ], [-1, 4, undef, 'even']], [{p => -3, r => 'even'}, ['-', 4, undef, 'odd'], [-1, 4, undef, 'odd']], [{p => -3, r => 'even'}, ['-', undef, undef ], [-1, undef, undef, 'even']], [{p => -3, r => 'even'}, ['-', undef, undef, 'odd'], [-1, undef, undef, 'odd']], ], ], [ 'binf', [ [{a => 4, r => 'even'}, [ ], [ 'inf', 4, undef, 'even']], [{a => 4, r => 'even'}, ['+', ], [ 'inf', 4, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef ], [ 'inf', undef, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef, -3 ], [ 'inf', undef, -3, 'even']], [{a => 4, r => 'even'}, ['+', undef, -3, 'odd'], [ 'inf', undef, -3, 'odd']], [{a => 4, r => 'even'}, ['+', undef, undef ], [ 'inf', undef, undef, 'even']], [{a => 4, r => 'even'}, ['+', undef, undef, 'odd'], [ 'inf', undef, undef, 'odd']], [{p => -3, r => 'even'}, [ ], [ 'inf', undef, -3, 'even']], [{p => -3, r => 'even'}, ['+', ], [ 'inf', undef, -3, 'even']], [{p => -3, r => 'even'}, ['+', 4, ], [ 'inf', 4, undef, 'even']], [{p => -3, r => 'even'}, ['+', 4, undef ], [ 'inf', 4, undef, 'even']], [{p => -3, r => 'even'}, ['+', 4, undef, 'odd'], [ 'inf', 4, undef, 'odd']], [{p => -3, r => 'even'}, ['+', undef, undef ], [ 'inf', undef, undef, 'even']], [{p => -3, r => 'even'}, ['+', undef, undef, 'odd'], [ 'inf', undef, undef, 'odd']], [{a => 4, r => 'even'}, ['-', ], ['-inf', 4, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef ], ['-inf', undef, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef, -3 ], ['-inf', undef, -3, 'even']], [{a => 4, r => 'even'}, ['-', undef, -3, 'odd'], ['-inf', undef, -3, 'odd']], [{a => 4, r => 'even'}, ['-', undef, undef ], ['-inf', undef, undef, 'even']], [{a => 4, r => 'even'}, ['-', undef, undef, 'odd'], ['-inf', undef, undef, 'odd']], [{p => -3, r => 'even'}, ['-', ], ['-inf', undef, -3, 'even']], [{p => -3, r => 'even'}, ['-', 4, ], ['-inf', 4, undef, 'even']], [{p => -3, r => 'even'}, ['-', 4, undef ], ['-inf', 4, undef, 'even']], [{p => -3, r => 'even'}, ['-', 4, undef, 'odd'], ['-inf', 4, undef, 'odd']], [{p => -3, r => 'even'}, ['-', undef, undef ], ['-inf', undef, undef, 'even']], [{p => -3, r => 'even'}, ['-', undef, undef, 'odd'], ['-inf', undef, undef, 'odd']], ], ], # [ # 'bnan', # [ # # [{a => 4, r => 'even'}, [ ], ['NaN', 4, undef, 'even']], # [{a => 4, r => 'even'}, [undef ], ['NaN', undef, undef, 'even']], # [{a => 4, r => 'even'}, [undef, -3 ], ['NaN', undef, -3, 'even']], # [{a => 4, r => 'even'}, [undef, -3, 'odd'], ['NaN', undef, -3, 'odd']], # [{a => 4, r => 'even'}, [undef, undef ], ['NaN', undef, undef, 'even']], # [{a => 4, r => 'even'}, [undef, undef, 'odd'], ['NaN', undef, undef, 'odd']], # # [{p => -3, r => 'even'}, [ ], ['NaN', undef, -3, 'even']], # [{p => -3, r => 'even'}, [ 4, ], ['NaN', 4, undef, 'even']], # [{p => -3, r => 'even'}, [ 4, undef ], ['NaN', 4, undef, 'even']], # [{p => -3, r => 'even'}, [ 4, undef, 'odd'], ['NaN', 4, undef, 'odd']], # [{p => -3, r => 'even'}, [undef, undef ], ['NaN', undef, undef, 'even']], # [{p => -3, r => 'even'}, [undef, undef, 'odd'], ['NaN', undef, undef, 'odd']], # # ], # ], ]; my $table2 = [ # qq|new(0, 4, -3);|, # qq|new(5, 4, -3);|, # qq|new("+inf", 4, -3);|, # qq|new("-inf", 4, -3);|, # qq|new("NaN", 4, -3);|, qq|bzero(4, -3);|, qq|bone("+", 4, -3);|, qq|bone("-", 4, -3);|, # qq|binf("+", 4, -3);|, # qq|binf("-", 4, -3);|, # qq|bnan(4, -3);|, ]; sub arg2str { my $arg = shift; return "undef" unless defined $arg; # undefined return $arg if $arg =~ /\d/; # number return qq|"$arg"|; # string } for my $class (@$classes) { for my $entry (@$table1) { my $method = $entry -> [0]; my $table = $entry -> [1]; for my $line (@$table) { # class variables, constructor arguments, and instance variables my ($cvars, $cargs, $ivars) = @$line; my $test = ''; $test .= "$class -> accuracy(" . arg2str($cvars -> {a}) . ");" if exists $cvars -> {a}; $test .= " $class -> precision(" . arg2str($cvars -> {p}) . ");" if exists $cvars -> {p}; #$test .= " $class -> round_mode(" . arg2str($cvars -> {r}) . ");" # if exists $cvars -> {r}; $test .= " \$x = $class->$method("; $test .= join ", ", map arg2str($_), @$cargs; $test .= ");"; my $x; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 3; is($x -> bdstr(), $ivars -> [0], '$x -> bdstr()'); #is($x -> accuracy(), $ivars -> [1], '$x -> accuracy()'); is($x -> {accuracy}, $ivars -> [1], '$x -> {accuracy}'); #is($x -> precision(), $ivars -> [2], '$x -> precision()'); is($x -> {precision}, $ivars -> [2], '$x -> {precision}'); #is($x -> round_mode(), $ivars -> [3], '$x -> round_mode()'); #is($x -> {_r}, $ivars -> [3], '$x -> {_r}'); }; } } # Setting both the accuracy and the precision to defined values is an # error. Avoid the "noise" from carp(). require File::Spec; open STDERR, '>', File::Spec -> devnull(); for my $entry (@$table2) { my $x; my $test = "\$x = " . $class . " -> " . $entry; eval $test; is($x, "NaN", $test); } } Math-BigInt-2.005003/xt/author/copy-mbf.t0000644403072340010010000000721314546553333017610 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Math::BigFloat; use Scalar::Util qw< refaddr >; use Test::More tests => 2; my $LIB = Math::BigFloat -> config('lib'); my $x = Math::BigFloat -> new("314159e-5"); my $y; # testing copy() as an instance method $y = $x -> copy(); subtest '$y = $x -> copy()' => sub { plan tests => 21; # object ok(defined($y), '$y is defined'); is(ref($y), 'Math::BigFloat', '$y has the right class'); isnt(refaddr($y), refaddr($x), '$y is a different object than $x'); # sign ok(defined($y->{sign}), 'sign of $y is defined'); is(ref($y->{sign}), '', 'sign of $y is not a reference'); is($y->{sign}, $x->{sign}, 'sign of $y is correct'); # mantissa ok(defined($y->{_m}), 'mantissa of $y is defined'); is(ref($y->{_m}), ref($x->{_m}), 'mantissa of $y and $x use the same reference type'); isnt(ref($y->{_m}), '', 'mantissa of $y is a reference'); isnt(refaddr($y->{_m}), refaddr($x->{_m}), 'mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{_m}), $LIB->_str($x->{_m}), 'mantissa of $y is correct'); # exponent sign ok(defined($y->{_es}), 'exponent sign of $y is defined'); is(ref($y->{_es}), '', 'exponent sign of $y is not a reference'); is($y->{_es}, $x->{_es}, 'exponent sign of $y is correct'); # exponent value ok(defined($y->{_e}), 'exponent mantissa of $y is defined'); is(ref($y->{_e}), ref($x->{_e}), 'exponent mantissa of $y and $x use the same reference type'); isnt(ref($y->{_e}), '', 'exponent mantissa of $y is a reference'); isnt(refaddr($y->{_e}), refaddr($x->{_e}), 'exponent mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{_e}), $LIB->_str($x->{_e}), 'exponent mantissa of $y is correct'); # accuracy and precision is($y->{accuracy}, $x->{accuracy}, 'accuracy'); is($y->{precision}, $x->{precision}, 'precision'); }; # testing copy() as a class method $y = Math::BigFloat -> copy($x); subtest 'Math::BigFloat -> copy($x)' => sub { plan tests => 21; # object ok(defined($y), '$y is defined'); is(ref($y), 'Math::BigFloat', '$y has the right class'); isnt(refaddr($y), refaddr($x), '$y is a different object than $x'); # sign ok(defined($y->{sign}), 'sign of $y is defined'); is(ref($y->{sign}), '', 'sign of $y is not a reference'); is($y->{sign}, $x->{sign}, 'sign of $y is correct'); # mantissa ok(defined($y->{_m}), 'mantissa of $y is defined'); is(ref($y->{_m}), ref($x->{_m}), 'mantissa of $y and $x use the same reference type'); isnt(ref($y->{_m}), '', 'mantissa of $y is a reference'); isnt(refaddr($y->{_m}), refaddr($x->{_m}), 'mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{_m}), $LIB->_str($x->{_m}), 'mantissa of $y is correct'); # exponent sign ok(defined($y->{_es}), 'exponent sign of $y is defined'); is(ref($y->{_es}), '', 'exponent sign of $y is not a reference'); is($y->{_es}, $x->{_es}, 'exponent sign of $y is correct'); # exponent value ok(defined($y->{_e}), 'exponent mantissa of $y is defined'); is(ref($y->{_e}), ref($x->{_e}), 'exponent mantissa of $y and $x use the same reference type'); isnt(ref($y->{_e}), '', 'exponent mantissa of $y is a reference'); isnt(refaddr($y->{_e}), refaddr($x->{_e}), 'exponent mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{_e}), $LIB->_str($x->{_e}), 'exponent mantissa of $y is correct'); # accuracy and precision is($y->{accuracy}, $x->{accuracy}, 'accuracy'); is($y->{precision}, $x->{precision}, 'precision'); }; Math-BigInt-2.005003/xt/author/copy-mbi.t0000644403072340010010000000451714546553333017617 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Math::BigInt; use Scalar::Util qw< refaddr >; use Test::More tests => 2; my $LIB = Math::BigInt -> config('lib'); my $x = Math::BigInt -> new("314159"); my $y; # testing copy() as an instance method $y = $x -> copy(); subtest '$y = $x -> copy()' => sub { plan tests => 13; # object ok(defined($y), '$y is defined'); is(ref($y), 'Math::BigInt', '$y has the right class'); isnt(refaddr($y), refaddr($x), '$y is a different object than $x'); # sign ok(defined($y->{sign}), 'sign of $y is defined'); is(ref($y->{sign}), '', 'sign of $y is not a reference'); is($y->{sign}, $x->{sign}, 'sign of $y is correct'); # mantissa ok(defined($y->{value}), 'mantissa of $y is defined'); is(ref($y->{value}), ref($x->{value}), 'mantissa of $y and $x use the same reference type'); isnt(ref($y->{value}), '', 'mantissa of $y is a reference'); isnt(refaddr($y->{value}), refaddr($x->{value}), 'mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{value}), $LIB->_str($x->{value}), 'mantissa of $y is correct'); # accuracy and precision is($y->{accuracy}, $x->{accuracy}, 'accuracy'); is($y->{precision}, $x->{precision}, 'precision'); }; # testing copy() as a class method $y = Math::BigInt -> copy($x); subtest '$y = Math::BigInt -> copy($x)' => sub { plan tests => 13; # object ok(defined($y), '$y is defined'); is(ref($y), 'Math::BigInt', '$y has the right class'); isnt(refaddr($y), refaddr($x), '$y is a different object than $x'); # sign ok(defined($y->{sign}), 'sign of $y is defined'); is(ref($y->{sign}), '', 'sign of $y is not a reference'); is($y->{sign}, $x->{sign}, 'sign of $y is correct'); # mantissa ok(defined($y->{value}), 'mantissa of $y is defined'); is(ref($y->{value}), ref($x->{value}), 'mantissa of $y and $x use the same reference type'); isnt(ref($y->{value}), '', 'mantissa of $y is a reference'); isnt(refaddr($y->{value}), refaddr($x->{value}), 'mantissa of $y is not the mantissa of $x'); is($LIB->_str($y->{value}), $LIB->_str($x->{value}), 'mantissa of $y is correct'); # accuracy and precision is($y->{accuracy}, $x->{accuracy}, 'accuracy'); is($y->{precision}, $x->{precision}, 'precision'); }; Math-BigInt-2.005003/xt/author/dparts-mbf.t0000644403072340010010000001431014537274605020131 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1840; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $int_str, $frc_str) = split /:/; note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| (\$i, \$f) = \$x -> dparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my ($int_got, $frc_got) = $x -> dparts(); isa_ok($int_got, "Math::BigFloat"); isa_ok($frc_got, "Math::BigFloat"); is($int_got, $int_str, "value of integer part"); is($frc_got, $frc_str, "value of fraction part"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| \$i = \$x -> dparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my $int_got = $x -> dparts(); isa_ok($int_got, "Math::BigFloat"); is($int_got, $int_str, "value of integer part"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:0 inf:inf:0 -inf:-inf:0 0:0:0 # positive numbers 0.000000000001:0:0.000000000001 0.00000000001:0:0.00000000001 0.0000000001:0:0.0000000001 0.000000001:0:0.000000001 0.00000001:0:0.00000001 0.0000001:0:0.0000001 0.000001:0:0.000001 0.00001:0:0.00001 0.0001:0:0.0001 0.001:0:0.001 0.01:0:0.01 0.1:0:0.1 1:1:0 10:10:0 100:100:0 1000:1000:0 10000:10000:0 100000:100000:0 1000000:1000000:0 10000000:10000000:0 100000000:100000000:0 1000000000:1000000000:0 10000000000:10000000000:0 100000000000:100000000000:0 1000000000000:1000000000000:0 0.0000000000012:0:0.0000000000012 0.000000000012:0:0.000000000012 0.00000000012:0:0.00000000012 0.0000000012:0:0.0000000012 0.000000012:0:0.000000012 0.00000012:0:0.00000012 0.0000012:0:0.0000012 0.000012:0:0.000012 0.00012:0:0.00012 0.0012:0:0.0012 0.012:0:0.012 0.12:0:0.12 1.2:1:0.2 12:12:0 120:120:0 1200:1200:0 12000:12000:0 120000:120000:0 1200000:1200000:0 12000000:12000000:0 120000000:120000000:0 1200000000:1200000000:0 12000000000:12000000000:0 120000000000:120000000000:0 1200000000000:1200000000000:0 0.00000000000123:0:0.00000000000123 0.0000000000123:0:0.0000000000123 0.000000000123:0:0.000000000123 0.00000000123:0:0.00000000123 0.0000000123:0:0.0000000123 0.000000123:0:0.000000123 0.00000123:0:0.00000123 0.0000123:0:0.0000123 0.000123:0:0.000123 0.00123:0:0.00123 0.0123:0:0.0123 0.123:0:0.123 1.23:1:0.23 12.3:12:0.3 123:123:0 1230:1230:0 12300:12300:0 123000:123000:0 1230000:1230000:0 12300000:12300000:0 123000000:123000000:0 1230000000:1230000000:0 12300000000:12300000000:0 123000000000:123000000000:0 1230000000000:1230000000000:0 0.000000000001234:0:0.000000000001234 0.00000000001234:0:0.00000000001234 0.0000000001234:0:0.0000000001234 0.000000001234:0:0.000000001234 0.00000001234:0:0.00000001234 0.0000001234:0:0.0000001234 0.000001234:0:0.000001234 0.00001234:0:0.00001234 0.0001234:0:0.0001234 0.001234:0:0.001234 0.01234:0:0.01234 0.1234:0:0.1234 1.234:1:0.234 12.34:12:0.34 123.4:123:0.4 1234:1234:0 12340:12340:0 123400:123400:0 1234000:1234000:0 12340000:12340000:0 123400000:123400000:0 1234000000:1234000000:0 12340000000:12340000000:0 123400000000:123400000000:0 1234000000000:1234000000000:0 0.000003141592:0:0.000003141592 0.00003141592:0:0.00003141592 0.0003141592:0:0.0003141592 0.003141592:0:0.003141592 0.03141592:0:0.03141592 0.3141592:0:0.3141592 3.141592:3:0.141592 31.41592:31:0.41592 314.1592:314:0.1592 3141.592:3141:0.592 31415.92:31415:0.92 314159.2:314159:0.2 3141592:3141592:0 # negative numbers -0.000000000001:0:-0.000000000001 -0.00000000001:0:-0.00000000001 -0.0000000001:0:-0.0000000001 -0.000000001:0:-0.000000001 -0.00000001:0:-0.00000001 -0.0000001:0:-0.0000001 -0.000001:0:-0.000001 -0.00001:0:-0.00001 -0.0001:0:-0.0001 -0.001:0:-0.001 -0.01:0:-0.01 -0.1:0:-0.1 -1:-1:0 -10:-10:0 -100:-100:0 -1000:-1000:0 -10000:-10000:0 -100000:-100000:0 -1000000:-1000000:0 -10000000:-10000000:0 -100000000:-100000000:0 -1000000000:-1000000000:0 -10000000000:-10000000000:0 -100000000000:-100000000000:0 -1000000000000:-1000000000000:0 -0.0000000000012:0:-0.0000000000012 -0.000000000012:0:-0.000000000012 -0.00000000012:0:-0.00000000012 -0.0000000012:0:-0.0000000012 -0.000000012:0:-0.000000012 -0.00000012:0:-0.00000012 -0.0000012:0:-0.0000012 -0.000012:0:-0.000012 -0.00012:0:-0.00012 -0.0012:0:-0.0012 -0.012:0:-0.012 -0.12:0:-0.12 -1.2:-1:-0.2 -12:-12:0 -120:-120:0 -1200:-1200:0 -12000:-12000:0 -120000:-120000:0 -1200000:-1200000:0 -12000000:-12000000:0 -120000000:-120000000:0 -1200000000:-1200000000:0 -12000000000:-12000000000:0 -120000000000:-120000000000:0 -1200000000000:-1200000000000:0 -0.00000000000123:0:-0.00000000000123 -0.0000000000123:0:-0.0000000000123 -0.000000000123:0:-0.000000000123 -0.00000000123:0:-0.00000000123 -0.0000000123:0:-0.0000000123 -0.000000123:0:-0.000000123 -0.00000123:0:-0.00000123 -0.0000123:0:-0.0000123 -0.000123:0:-0.000123 -0.00123:0:-0.00123 -0.0123:0:-0.0123 -0.123:0:-0.123 -1.23:-1:-0.23 -12.3:-12:-0.3 -123:-123:0 -1230:-1230:0 -12300:-12300:0 -123000:-123000:0 -1230000:-1230000:0 -12300000:-12300000:0 -123000000:-123000000:0 -1230000000:-1230000000:0 -12300000000:-12300000000:0 -123000000000:-123000000000:0 -1230000000000:-1230000000000:0 -0.000000000001234:0:-0.000000000001234 -0.00000000001234:0:-0.00000000001234 -0.0000000001234:0:-0.0000000001234 -0.000000001234:0:-0.000000001234 -0.00000001234:0:-0.00000001234 -0.0000001234:0:-0.0000001234 -0.000001234:0:-0.000001234 -0.00001234:0:-0.00001234 -0.0001234:0:-0.0001234 -0.001234:0:-0.001234 -0.01234:0:-0.01234 -0.1234:0:-0.1234 -1.234:-1:-0.234 -12.34:-12:-0.34 -123.4:-123:-0.4 -1234:-1234:0 -12340:-12340:0 -123400:-123400:0 -1234000:-1234000:0 -12340000:-12340000:0 -123400000:-123400000:0 -1234000000:-1234000000:0 -12340000000:-12340000000:0 -123400000000:-123400000000:0 -1234000000000:-1234000000000:0 -0.000003141592:0:-0.000003141592 -0.00003141592:0:-0.00003141592 -0.0003141592:0:-0.0003141592 -0.003141592:0:-0.003141592 -0.03141592:0:-0.03141592 -0.3141592:0:-0.3141592 -3.141592:-3:-0.141592 -31.41592:-31:-0.41592 -314.1592:-314:-0.1592 -3141.592:-3141:-0.592 -31415.92:-31415:-0.92 -314159.2:-314159:-0.2 -3141592:-3141592:0 Math-BigInt-2.005003/xt/author/dparts-mbi.t0000644403072340010010000000613314537274605020140 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 784; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $int_str, $frc_str) = split /:/; note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| (\$i, \$f) = \$x -> dparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my ($int_got, $frc_got) = $x -> dparts(); isa_ok($int_got, "Math::BigInt"); isa_ok($frc_got, "Math::BigInt"); is($int_got, $int_str, "value of integer part"); is($frc_got, $frc_str, "value of fraction part"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| \$i = \$x -> dparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my $int_got = $x -> dparts(); isa_ok($int_got, "Math::BigInt"); is($int_got, $int_str, "value of integer part"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:0 inf:inf:0 -inf:-inf:0 0:0:0 # positive numbers 1:1:0 10:10:0 100:100:0 1000:1000:0 10000:10000:0 100000:100000:0 1000000:1000000:0 10000000:10000000:0 100000000:100000000:0 1000000000:1000000000:0 10000000000:10000000000:0 100000000000:100000000000:0 1000000000000:1000000000000:0 12:12:0 120:120:0 1200:1200:0 12000:12000:0 120000:120000:0 1200000:1200000:0 12000000:12000000:0 120000000:120000000:0 1200000000:1200000000:0 12000000000:12000000000:0 120000000000:120000000000:0 1200000000000:1200000000000:0 123:123:0 1230:1230:0 12300:12300:0 123000:123000:0 1230000:1230000:0 12300000:12300000:0 123000000:123000000:0 1230000000:1230000000:0 12300000000:12300000000:0 123000000000:123000000000:0 1230000000000:1230000000000:0 1234:1234:0 12340:12340:0 123400:123400:0 1234000:1234000:0 12340000:12340000:0 123400000:123400000:0 1234000000:1234000000:0 12340000000:12340000000:0 123400000000:123400000000:0 1234000000000:1234000000000:0 3141592:3141592:0 # negative numbers -1:-1:0 -10:-10:0 -100:-100:0 -1000:-1000:0 -10000:-10000:0 -100000:-100000:0 -1000000:-1000000:0 -10000000:-10000000:0 -100000000:-100000000:0 -1000000000:-1000000000:0 -10000000000:-10000000000:0 -100000000000:-100000000000:0 -1000000000000:-1000000000000:0 -12:-12:0 -120:-120:0 -1200:-1200:0 -12000:-12000:0 -120000:-120000:0 -1200000:-1200000:0 -12000000:-12000000:0 -120000000:-120000000:0 -1200000000:-1200000000:0 -12000000000:-12000000000:0 -120000000000:-120000000000:0 -1200000000000:-1200000000000:0 -123:-123:0 -1230:-1230:0 -12300:-12300:0 -123000:-123000:0 -1230000:-1230000:0 -12300000:-12300000:0 -123000000:-123000000:0 -1230000000:-1230000000:0 -12300000000:-12300000000:0 -123000000000:-123000000000:0 -1230000000000:-1230000000000:0 -1234:-1234:0 -12340:-12340:0 -123400:-123400:0 -1234000:-1234000:0 -12340000:-12340000:0 -123400000:-123400000:0 -1234000000:-1234000000:0 -12340000000:-12340000000:0 -123400000000:-123400000000:0 -1234000000000:-1234000000000:0 -3141592:-3141592:0 Math-BigInt-2.005003/xt/author/dparts-mbr.t0000644403072340010010000000257014546553333020150 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 17; my $class; BEGIN { $class = 'Math::BigRat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $int_str, $frc_str) = split /:/; my $test; $test = qq|\$x = $class -> new("$x_str");| . qq| (\$i, \$f) = \$x -> dparts();|; subtest $test => sub { plan tests => 5; my $x = $class -> new($x_str); my ($int_got, $frc_got) = $x -> dparts(); is(ref($int_got), $class, "class of integer part"); is(ref($frc_got), $class, "class of fraction part"); is($int_got, $int_str, "value of integer part"); is($frc_got, $frc_str, "value of fraction part"); is($x, $x_str, "input is unmodified"); }; $test = qq|\$x = $class -> new("$x_str");| . qq| \$i = \$x -> dparts();|; subtest $test => sub { plan tests => 3, my $x = $class -> new($x_str); my $int_got = $x -> dparts(); isa_ok($int_got, $class); is($int_got, $int_str, "value of integer part"); is($x, $x_str, "input is unmodified"); }; } __DATA__ NaN:NaN:NaN inf:inf:0 -inf:-inf:0 -9/4:-2:-1/4 -1:-1:0 0:0:0 1:1:0 9/4:2:1/4 Math-BigInt-2.005003/xt/author/eparts-mbf.t0000644403072340010010000001241514537274605020136 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1840; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| (\$m, \$e) = \$x -> eparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my ($mant_got, $expo_got) = $x -> eparts(); isa_ok($mant_got, "Math::BigFloat"); isa_ok($expo_got, "Math::BigFloat"); is($mant_got, $mant_str, "value of mantissa"); is($expo_got, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| \$m = \$x -> eparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my $mant_got = $x -> eparts(); isa_ok($mant_got, "Math::BigFloat"); is($mant_got, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 0.000000000001:1:-12 0.00000000001:10:-12 0.0000000001:100:-12 0.000000001:1:-9 0.00000001:10:-9 0.0000001:100:-9 0.000001:1:-6 0.00001:10:-6 0.0001:100:-6 0.001:1:-3 0.01:10:-3 0.1:100:-3 1:1:0 10:10:0 100:100:0 1000:1:3 10000:10:3 100000:100:3 1000000:1:6 10000000:10:6 100000000:100:6 1000000000:1:9 10000000000:10:9 100000000000:100:9 1000000000000:1:12 0.0000000000012:1.2:-12 0.000000000012:12:-12 0.00000000012:120:-12 0.0000000012:1.2:-9 0.000000012:12:-9 0.00000012:120:-9 0.0000012:1.2:-6 0.000012:12:-6 0.00012:120:-6 0.0012:1.2:-3 0.012:12:-3 0.12:120:-3 1.2:1.2:0 12:12:0 120:120:0 1200:1.2:3 12000:12:3 120000:120:3 1200000:1.2:6 12000000:12:6 120000000:120:6 1200000000:1.2:9 12000000000:12:9 120000000000:120:9 1200000000000:1.2:12 0.00000000000123:1.23:-12 0.0000000000123:12.3:-12 0.000000000123:123:-12 0.00000000123:1.23:-9 0.0000000123:12.3:-9 0.000000123:123:-9 0.00000123:1.23:-6 0.0000123:12.3:-6 0.000123:123:-6 0.00123:1.23:-3 0.0123:12.3:-3 0.123:123:-3 1.23:1.23:0 12.3:12.3:0 123:123:0 1230:1.23:3 12300:12.3:3 123000:123:3 1230000:1.23:6 12300000:12.3:6 123000000:123:6 1230000000:1.23:9 12300000000:12.3:9 123000000000:123:9 1230000000000:1.23:12 0.000000000001234:1.234:-12 0.00000000001234:12.34:-12 0.0000000001234:123.4:-12 0.000000001234:1.234:-9 0.00000001234:12.34:-9 0.0000001234:123.4:-9 0.000001234:1.234:-6 0.00001234:12.34:-6 0.0001234:123.4:-6 0.001234:1.234:-3 0.01234:12.34:-3 0.1234:123.4:-3 1.234:1.234:0 12.34:12.34:0 123.4:123.4:0 1234:1.234:3 12340:12.34:3 123400:123.4:3 1234000:1.234:6 12340000:12.34:6 123400000:123.4:6 1234000000:1.234:9 12340000000:12.34:9 123400000000:123.4:9 1234000000000:1.234:12 0.000003141592:3.141592:-6 0.00003141592:31.41592:-6 0.0003141592:314.1592:-6 0.003141592:3.141592:-3 0.03141592:31.41592:-3 0.3141592:314.1592:-3 3.141592:3.141592:0 31.41592:31.41592:0 314.1592:314.1592:0 3141.592:3.141592:3 31415.92:31.41592:3 314159.2:314.1592:3 3141592:3.141592:6 # negativ: numbers -0.000000000001:-1:-12 -0.00000000001:-10:-12 -0.0000000001:-100:-12 -0.000000001:-1:-9 -0.00000001:-10:-9 -0.0000001:-100:-9 -0.000001:-1:-6 -0.00001:-10:-6 -0.0001:-100:-6 -0.001:-1:-3 -0.01:-10:-3 -0.1:-100:-3 -1:-1:0 -10:-10:0 -100:-100:0 -1000:-1:3 -10000:-10:3 -100000:-100:3 -1000000:-1:6 -10000000:-10:6 -100000000:-100:6 -1000000000:-1:9 -10000000000:-10:9 -100000000000:-100:9 -1000000000000:-1:12 -0.0000000000012:-1.2:-12 -0.000000000012:-12:-12 -0.00000000012:-120:-12 -0.0000000012:-1.2:-9 -0.000000012:-12:-9 -0.00000012:-120:-9 -0.0000012:-1.2:-6 -0.000012:-12:-6 -0.00012:-120:-6 -0.0012:-1.2:-3 -0.012:-12:-3 -0.12:-120:-3 -1.2:-1.2:0 -12:-12:0 -120:-120:0 -1200:-1.2:3 -12000:-12:3 -120000:-120:3 -1200000:-1.2:6 -12000000:-12:6 -120000000:-120:6 -1200000000:-1.2:9 -12000000000:-12:9 -120000000000:-120:9 -1200000000000:-1.2:12 -0.00000000000123:-1.23:-12 -0.0000000000123:-12.3:-12 -0.000000000123:-123:-12 -0.00000000123:-1.23:-9 -0.0000000123:-12.3:-9 -0.000000123:-123:-9 -0.00000123:-1.23:-6 -0.0000123:-12.3:-6 -0.000123:-123:-6 -0.00123:-1.23:-3 -0.0123:-12.3:-3 -0.123:-123:-3 -1.23:-1.23:0 -12.3:-12.3:0 -123:-123:0 -1230:-1.23:3 -12300:-12.3:3 -123000:-123:3 -1230000:-1.23:6 -12300000:-12.3:6 -123000000:-123:6 -1230000000:-1.23:9 -12300000000:-12.3:9 -123000000000:-123:9 -1230000000000:-1.23:12 -0.000000000001234:-1.234:-12 -0.00000000001234:-12.34:-12 -0.0000000001234:-123.4:-12 -0.000000001234:-1.234:-9 -0.00000001234:-12.34:-9 -0.0000001234:-123.4:-9 -0.000001234:-1.234:-6 -0.00001234:-12.34:-6 -0.0001234:-123.4:-6 -0.001234:-1.234:-3 -0.01234:-12.34:-3 -0.1234:-123.4:-3 -1.234:-1.234:0 -12.34:-12.34:0 -123.4:-123.4:0 -1234:-1.234:3 -12340:-12.34:3 -123400:-123.4:3 -1234000:-1.234:6 -12340000:-12.34:6 -123400000:-123.4:6 -1234000000:-1.234:9 -12340000000:-12.34:9 -123400000000:-123.4:9 -1234000000000:-1.234:12 -0.000003141592:-3.141592:-6 -0.00003141592:-31.41592:-6 -0.0003141592:-314.1592:-6 -0.003141592:-3.141592:-3 -0.03141592:-31.41592:-3 -0.3141592:-314.1592:-3 -3.141592:-3.141592:0 -31.41592:-31.41592:0 -314.1592:-314.1592:0 -3141.592:-3.141592:3 -31415.92:-31.41592:3 -314159.2:-314.1592:3 -3141592:-3.141592:6 Math-BigInt-2.005003/xt/author/eparts-mbi.t0000644403072340010010000000517414537274605020145 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 784; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| (\$m, \$e) = \$x -> eparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my ($mant_got, $expo_got) = $x -> eparts(); isa_ok($mant_got, "Math::BigInt"); isa_ok($expo_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($expo_got, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| \$m = \$x -> eparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my $mant_got = $x -> eparts(); isa_ok($mant_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 1:1:0 10:10:0 100:100:0 1000:1:3 10000:10:3 100000:100:3 1000000:1:6 10000000:10:6 100000000:100:6 1000000000:1:9 10000000000:10:9 100000000000:100:9 1000000000000:1:12 12:12:0 120:120:0 1200:NaN:3 12000:12:3 120000:120:3 1200000:NaN:6 12000000:12:6 120000000:120:6 1200000000:NaN:9 12000000000:12:9 120000000000:120:9 1200000000000:NaN:12 123:123:0 1230:NaN:3 12300:NaN:3 123000:123:3 1230000:NaN:6 12300000:NaN:6 123000000:123:6 1230000000:NaN:9 12300000000:NaN:9 123000000000:123:9 1230000000000:NaN:12 1234:NaN:3 12340:NaN:3 123400:NaN:3 1234000:NaN:6 12340000:NaN:6 123400000:NaN:6 1234000000:NaN:9 12340000000:NaN:9 123400000000:NaN:9 1234000000000:NaN:12 3141592:NaN:6 # negativ: numbers -1:-1:0 -10:-10:0 -100:-100:0 -1000:-1:3 -10000:-10:3 -100000:-100:3 -1000000:-1:6 -10000000:-10:6 -100000000:-100:6 -1000000000:-1:9 -10000000000:-10:9 -100000000000:-100:9 -1000000000000:-1:12 -12:-12:0 -120:-120:0 -1200:NaN:3 -12000:-12:3 -120000:-120:3 -1200000:NaN:6 -12000000:-12:6 -120000000:-120:6 -1200000000:NaN:9 -12000000000:-12:9 -120000000000:-120:9 -1200000000000:NaN:12 -123:-123:0 -1230:NaN:3 -12300:NaN:3 -123000:-123:3 -1230000:NaN:6 -12300000:NaN:6 -123000000:-123:6 -1230000000:NaN:9 -12300000000:NaN:9 -123000000000:-123:9 -1230000000000:NaN:12 -1234:NaN:3 -12340:NaN:3 -123400:NaN:3 -1234000:NaN:6 -12340000:NaN:6 -123400000:NaN:6 -1234000000:NaN:9 -12340000000:NaN:9 -123400000000:NaN:9 -1234000000000:NaN:12 -3141592:NaN:6 Math-BigInt-2.005003/xt/author/fparts-numerator-denominator-mbf.t0000644403072340010010000000442314775747325024476 0ustar OSPJADomain Users# -*- mode: perl; -*- # test fparts(), numerator(), denominator() use strict; use warnings; use Test::More tests => 57; my $class; BEGIN { $class = 'Math::BigFloat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $n_str, $d_str) = split /:/; my $test; # test fparts() in list context $test = qq|\$x = $class -> new("$x_str");| . qq| (\$n, \$d) = \$x -> fparts();|; subtest $test => sub { plan tests => 5; my $x = $class -> new($x_str); my ($n, $d) = $x -> fparts(); is(ref($n), $class, "class of numerator"); is(ref($d), $class, "class of denominator"); is($n, $n_str, "value of numerator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; # test fparts() in scalar context $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> fparts();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> fparts(); is(ref($n), $class, "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test numerator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> numerator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> numerator(); is(ref($n), $class, "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test denominator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$d = \$x -> denominator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $d = $x -> denominator(); is(ref($d), $class, "class of denominator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; } __DATA__ NaN:NaN:NaN inf:inf:1 -inf:-inf:1 -30:-30:1 -3:-3:1 -1:-1:1 0:0:1 1:1:1 3:3:1 30:30:1 -31400:-31400:1 -3.14:-157:50 3.14:157:50 31400:31400:1 Math-BigInt-2.005003/xt/author/fparts-numerator-denominator-mbi.t0000644403072340010010000000433014775747325024476 0ustar OSPJADomain Users# -*- mode: perl; -*- # test fparts(), numerator(), denominator() use strict; use warnings; use Test::More tests => 41; my $class; BEGIN { $class = 'Math::BigInt'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $n_str, $d_str) = split /:/; my $test; # test fparts() in list context $test = qq|\$x = $class -> new("$x_str");| . qq| (\$n, \$d) = \$x -> fparts();|; subtest $test => sub { plan tests => 5; my $x = $class -> new($x_str); my ($n, $d) = $x -> fparts(); is(ref($n), $class, "class of numerator"); is(ref($d), $class, "class of denominator"); is($n, $n_str, "value of numerator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; # test fparts() in scalar context $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> fparts();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> fparts(); is(ref($n), $class, "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test numerator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> numerator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> numerator(); is(ref($n), $class, "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test denominator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$d = \$x -> denominator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $d = $x -> denominator(); is(ref($d), $class, "class of denominator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; } __DATA__ NaN:NaN:NaN inf:inf:1 -inf:-inf:1 -30:-30:1 -3:-3:1 -1:-1:1 0:0:1 1:1:1 3:3:1 30:30:1 Math-BigInt-2.005003/xt/author/fparts-numerator-denominator-mbr.t0000644403072340010010000000444514775747325024516 0ustar OSPJADomain Users# -*- mode: perl; -*- # test fparts(), numerator(), denominator() use strict; use warnings; use Test::More tests => 57; my $class; BEGIN { $class = 'Math::BigRat'; use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $n_str, $d_str) = split /:/; my $test; # test fparts() in list context $test = qq|\$x = $class -> new("$x_str");| . qq| (\$n, \$d) = \$x -> fparts();|; subtest $test => sub { plan tests => 5; my $x = $class -> new($x_str); my ($n, $d) = $x -> fparts(); is(ref($n), $class, "class of numerator"); is(ref($d), $class, "class of denominator"); is($n, $n_str, "value of numerator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; # test fparts() in scalar context $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> fparts();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> fparts(); is(ref($n), $class, "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test numerator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$n = \$x -> numerator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $n = $x -> numerator(); is(ref($n), "Math::BigInt", "class of numerator"); is($n, $n_str, "value of numerator"); is($x, $x_str, "input is unmodified"); }; # test denominator() $test = qq|\$x = $class -> new("$x_str");| . qq| \$d = \$x -> denominator();|; subtest $test => sub { plan tests => 3; my $x = $class -> new($x_str); my $d = $x -> denominator(); is(ref($d), "Math::BigInt", "class of denominator"); is($d, $d_str, "value of denominator"); is($x, $x_str, "input is unmodified"); }; } __DATA__ NaN:NaN:NaN inf:inf:1 -inf:-inf:1 -30:-30:1 -3:-3:1 -1:-1:1 0:0:1 1:1:1 3:3:1 30:30:1 -31400:-31400:1 -157/50:-157:50 157/50:157:50 31400:31400:1 Math-BigInt-2.005003/xt/author/from_base-mbi-mbr-mbf.t0000644403072340010010000000502114762330741022105 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 153; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } my @data; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @in = split /:/; my $out = pop @in; for my $class (@classes) { # As class method. { my $x; my $test = qq|\$x = $class -> from_base("$in[0]", $in[1]|; $test .= qq|, "$in[2]"| if @in == 3; $test .= qq|);|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } # As instance method. { my $x; my $test = qq|\$x = $class -> bnan();|; $test .= qq| \$x -> from_base("$in[0]", $in[1]|; $test .= qq|, "$in[2]"| if @in == 3; $test .= qq|);|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } } } __END__ # Base 2 11111010:2:250 11111010:2:01:250 # Base 8 372:8:250 372:8:01234567:250 # Base 10 (in the last case, use a truncted collation sequence that does not # include unused characters) 250:10:250 250:10:0123456789:250 250:10:012345:250 # Base 16 fa:16:250 FA:16:250 fa:16:0123456789abcdef:250 # Base 3 100021:3:250 100021:3:012:250 /|-:3:-/|:15 # Base 4 3322:4:250 3322:4:0123:250 # Base 5 2000:5:250 2000:5:01234:250 caaa:5:abcde:250 # when base is less than or equal to 36, case is ignored 6Y:36:250 6y:36:250 6S:37:250 7H:37:276 121:3:16 XYZ:36:44027 Why:62:125734 Math-BigInt-2.005003/xt/author/from_base_num-mbi.t0000644403072340010010000000661314537274605021462 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 365; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } # For simplicity, we use the same data in the test programs for to_base_num() and # from_base_num(). my @data = ( [ 0, 2, [ 0 ] ], [ 1, 2, [ 1 ] ], [ 2, 2, [ 1, 0 ] ], [ 3, 2, [ 1, 1, ] ], [ 4, 2, [ 1, 0, 0 ] ], [ 0, 10, [ 0 ] ], [ 1, 10, [ 1 ] ], [ 12, 10, [ 1, 2 ] ], [ 123, 10, [ 1, 2, 3 ] ], [ 1230, 10, [ 1, 2, 3, 0 ] ], [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ], [ "1234567890" x 3, "987654321", [ "128", "142745769", "763888804", "574845669" ]], [ "1234567890" x 5, "987654321" x 3, [ "12499999874843750102814", "447551941015330718793208596" ]], ); for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = ($data[$i][2], $data[$i][1]); my $out = $data[$i][0]; # As class method. { for my $base_as_scalar (1, 0) { for my $elements_as_scalar (1, 0) { my $x; my $test = "\$x = $class -> from_base_num(["; if ($elements_as_scalar) { $test .= join ", ", map qq|"$_"|, @{ $in[0] }; } else { $test .= join ", ", map qq|$class -> new("$_")|, @{ $in[0] }; } $test .= "], "; if ($base_as_scalar) { $test .= qq|"$in[1]"|; } else { $test .= qq|$class -> new("$in[1]")|; } $test .= ")"; eval $test; die "\nThe following test died when eval()'ed. This", "indicates a broken test\n\n $test\n\nThe error", " message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } } } # As instance method. { for my $base_as_scalar (1, 0) { for my $elements_as_scalar (1, 0) { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");|; $test .= " \$x -> from_base_num(["; if ($elements_as_scalar) { $test .= join ", ", map qq|"$_"|, @{ $in[0] }; } else { $test .= join ", ", map qq|$class -> new("$_")|, @{ $in[0] }; } $test .= "], "; if ($base_as_scalar) { $test .= qq|"$in[1]"|; } else { $test .= qq|$class -> new("$in[1]")|; } $test .= ")"; eval $test; die "\nThe following test died when eval()'ed. This", "indicates a broken test\n\n $test\n\nThe error", " message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } } } } } Math-BigInt-2.005003/xt/author/from_bin-mbf.t0000644403072340010010000000376014537274605020436 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 785; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class, '1.999710'); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_bin("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_bin("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ 0b1p+0:1 0b.1p+1:1 0b.01p+2:1 0b.001p+3:1 0b.0001p+4:1 0b10p-1:1 0b100p-2:1 0b1000p-3:1 -0b1p+0:-1 0b0p+0:0 0b0p+7:0 0b0p-7:0 0b0.p+0:0 0b.0p+0:0 0b0.0p+0:0 0b1100101011111110:51966 0B1100101011111110:51966 b1100101011111110:51966 B1100101011111110:51966 1100101011111110:51966 0b1.1001p+3:12.5 0b10010.001101p-1:9.1015625 -0b.11110001001101010111100110111101111p+31:-2023406814.9375 0b10.0100011010001010110011110001001101p+34:39093746765 0b.p+0:NaN NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/from_bin-mbi-mbf.t0000644403072340010010000000542014750145222021163 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigFloat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> from_bin("1.001p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_bin("1.001p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigFloat -> from_bin("100");' => sub { # this must not downgrade my $x = Math::BigFloat -> from_bin("100"); # = 4 is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_bin("1.001p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_bin("1.001p+2"); # = 4.5 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_bin("100");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_bin("100"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_bin("1.001p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_bin("1.001p+2"); # = 4.5 is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); }; subtest '$x = Math::BigFloat -> from_bin("100");' => sub { # this must downgrade my $x = Math::BigFloat -> from_bin("100"); # = 4 is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_bin("1.001p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_bin("1.001p+2"); # = 4.5 is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_bin("100");' => sub { # this must downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_bin("100"); # = 4 is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_bin-mbi-mbr.t0000644403072340010010000000540614750145222021203 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigRat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> from_bin("1.001p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_bin("1.001p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigRat -> from_bin("100");' => sub { # this must not downgrade my $x = Math::BigRat -> from_bin("100"); # = 4 is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_bin("1.001p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_bin("1.001p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_bin("100");' => sub { # this must not downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_bin("100"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_bin("1.001p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_bin("1.001p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); }; subtest '$x = Math::BigRat -> from_bin("100");' => sub { # this must downgrade my $x = Math::BigRat -> from_bin("100"); # = 4 is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_bin("1.001p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_bin("1.001p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_bin("100");' => sub { # this must downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_bin("100"); # = 4 is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_bin-mbi.t0000644403072340010010000000575614537274605020450 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1457; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_bin("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_bin("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ 0b0:0 0b1:1 0b10:2 0b11:3 0b100:4 0b101:5 0b110:6 0b111:7 0b1000:8 0b1001:9 0b1010:10 0b1011:11 0b1100:12 0b1101:13 0b1110:14 0b1111:15 0b10000:16 0b10001:17 0b11111110:254 0b11111111:255 0b100000000:256 0b100000001:257 0b1111111111111110:65534 0b1111111111111111:65535 0b10000000000000000:65536 0b10000000000000001:65537 0b111111111111111111111110:16777214 0b111111111111111111111111:16777215 0b1000000000000000000000000:16777216 0b1000000000000000000000001:16777217 0b11111111111111111111111111111110:4294967294 0b11111111111111111111111111111111:4294967295 0b100000000000000000000000000000000:4294967296 0b100000000000000000000000000000001:4294967297 0b1111111111111111111111111111111111111110:1099511627774 0b1111111111111111111111111111111111111111:1099511627775 0b10000000000000000000000000000000000000000:1099511627776 0b10000000000000000000000000000000000000001:1099511627777 0b111111111111111111111111111111111111111111111110:281474976710654 0b111111111111111111111111111111111111111111111111:281474976710655 0b1000000000000000000000000000000000000000000000000:281474976710656 0b1000000000000000000000000000000000000000000000001:281474976710657 0b11111111111111111111111111111111111111111111111111111110:72057594037927934 0b11111111111111111111111111111111111111111111111111111111:72057594037927935 0b100000000000000000000000000000000000000000000000000000000:72057594037927936 0b100000000000000000000000000000000000000000000000000000001:72057594037927937 0B10:2 b10:2 B10:2 NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/from_bytes-mbi-mbr-mbf.t0000644403072340010010000000343414762330741022327 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 39; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } my $cases = [ [ "\\x00", 0 ], [ "\\xff", 255 ], [ "\\x27\\x10", 10000 ], [ "\\xCA\\xFE", 51966 ], [ "\\xCA\\xFE\\xBA\\xBE", 3405691582 ], [ "\\xDE\\xAD\\xBE\\xEF", 3735928559 ], ]; for my $case (@$cases) { my ($in, $out) = @$case; for my $class (@classes) { # As class method. { my $x; my $test = qq|\$x = $class -> from_bytes("$in")|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } # As instance method. { my $x; my $test = qq|\$x = $class -> bnan(); \$x -> from_bytes("$in")|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, $out, 'output arg has the right value'); }; } } } Math-BigInt-2.005003/xt/author/from_dec-mbf.t0000644403072340010010000000355614762016667020426 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 701; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ # invalid input NaN:NaN +inf:NaN -inf:NaN 0xff:NaN 0o377:NaN 0b11:NaN # integers 0:0 -1:-1 +1:1 1:1 -10:-10 10:10 -314159:-314159 314159:314159 -314159.:-314159 314159.:314159 -314159.000:-314159 314159.000:314159 3.14159e+5:314159 31415900e-2:314159 0377:377 # finite non-integers -314159.5:-314159.5 314159.5:314159.5 314159.5:314159.5 314.159e-2:3.14159 Math-BigInt-2.005003/xt/author/from_dec-mbi-mbf.t0000644403072340010010000000515514750145222021153 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigFloat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> from_dec("4.5");' => sub { # this must not upgrade my $x = Math::BigInt -> from_dec("4.5"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigFloat -> from_dec("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> from_dec("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_dec("4.5"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_dec("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_dec("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_dec("4.5");' => sub { # this must upgrade my $x = Math::BigInt -> from_dec("4.5"); is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); }; subtest '$x = Math::BigFloat -> from_dec("4");' => sub { # this must downgrade my $x = Math::BigFloat -> from_dec("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_dec("4.5"); is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_dec("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_dec("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_dec-mbi-mbr.t0000644403072340010010000000511514750145222021163 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigRat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> from_dec("4.5");' => sub { # this must not upgrade my $x = Math::BigInt -> from_dec("4.5"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigRat -> from_dec("4");' => sub { # this must not downgrade my $x = Math::BigRat -> from_dec("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_dec("4.5"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_dec("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_dec("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_dec("4.5");' => sub { # this must upgrade my $x = Math::BigInt -> from_dec("4.5"); is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); }; subtest '$x = Math::BigRat -> from_dec("4");' => sub { # this must downgrade my $x = Math::BigRat -> from_dec("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_dec("4.5"); is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_dec("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_dec("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_dec-mbi.t0000644403072340010010000000353014762015633020411 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 701; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ # invalid input NaN:NaN +inf:NaN -inf:NaN 0xff:NaN 0o377:NaN 0b11:NaN # integers 0:0 -1:-1 +1:1 1:1 -10:-10 10:10 -314159:-314159 314159:314159 -314159.:-314159 314159.:314159 -314159.000:-314159 314159.000:314159 3.14159e+5:314159 31415900e-2:314159 0377:377 # finite non-integers -314159.5:NaN 314159.5:NaN 314159.5:NaN 314.159e-2:NaN Math-BigInt-2.005003/xt/author/from_dec-mbr.t0000644403072340010010000000356214762017007020424 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 701; my $class; BEGIN { $class = 'Math::BigRat'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_dec("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ # invalid input NaN:NaN +inf:NaN -inf:NaN 0xff:NaN 0o377:NaN 0b11:NaN # integers 0:0 -1:-1 +1:1 1:1 -10:-10 10:10 -314159:-314159 314159:314159 -314159.:-314159 314159.:314159 -314159.000:-314159 314159.000:314159 3.14159e+5:314159 31415900e-2:314159 0377:377 # finite non-integers -314159.5:-628319/2 314159.5:628319/2 314159.5:628319/2 314.159e-2:314159/100000 Math-BigInt-2.005003/xt/author/from_fp80-mbf.t0000644403072340010010000001552214775747130020444 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 68; use Math::BigFloat; my $b = 2; # base my $k = 80; # total width in bits my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigFloat -> new($b); $p = Math::BigFloat -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigFloat -> new("0"), }, { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 1)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "second smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "10", asc => "$b ** ($emin) * $b ** (" . (2 - $p) . ") " . "= $b ** (" . ($emin + 2 - $p) . ")", obj => $binv ** ($p - 2 - $emin), }, { dsc => "second largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 2)) . "0", asc => "$b ** ($emin) * (1 - $b ** (" . (2 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 2)), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "second smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * (1 + $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 + $binv ** ($p - 1)), }, { dsc => "second largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1) . "0", asc => "1 - $b ** (1 - $p)", obj => 1 - $binv ** ($p - 1), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x $p, asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("1" . "0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "second largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1) . "0", asc => "$b ** $emax * ($b - $b ** (" . (2 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 2)), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigFloat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigFloat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigFloat -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigFloat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigFloat -> new("-inf"), }, { dsc => "NaN", bin => "0" . ("1" x $w) . ("0" x ($p - 1)) . "1", asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (alternative encoding)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 2)) . "1", asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (another alternative encoding)", bin => "0" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; my ($got, $test); $got = Math::BigFloat -> from_fp80($bin); $test = qq|Math::BigFloat->from_fp80("$bin")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigFloat -> from_fp80($hex); $test = qq|Math::BigFloat->from_fp80("$hex")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigFloat -> from_fp80($bytes); $test = qq|Math::BigFloat->from_fp80("$str")|; is($got -> bnstr(), $expected -> bnstr(), $test); } note("\nTest as class method vs. instance method.\n\n"); # As class method. { my $bin = "0" . "100000000000000" . "1000000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigFloat -> from_fp80($hex); is($x, 2, "class method"); } # As instance method, the invocand should be modified. { my $bin = "0" . "100000000000000" . "1100000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigFloat -> bnan(); $x -> from_fp80($hex); is($x, 3, "instance method modifies invocand"); } Math-BigInt-2.005003/xt/author/from_fp80-mbi.t0000644403072340010010000001562614775747130020454 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 68; use Math::BigInt; my $b = 2; # base my $k = 80; # total width in bits my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigInt -> new($b); $p = Math::BigInt -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; my $binv = Math::BigInt -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigInt -> new("0"), }, { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 1)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "second smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "10", asc => "$b ** ($emin) * $b ** (" . (2 - $p) . ") " . "= $b ** (" . ($emin + 2 - $p) . ")", obj => $binv ** ($p - 2 - $emin), }, { dsc => "second largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 2)) . "0", asc => "$b ** ($emin) * (1 - $b ** (" . (2 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 2)), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "second smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * (1 + $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 + $binv ** ($p - 1)), }, { dsc => "second largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1) . "0", asc => "1 - $b ** (1 - $p)", obj => 1 - $binv ** ($p - 1), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x $p, asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigInt -> new("1"), }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("1" . "0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "second largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1) . "0", asc => "$b ** $emax * ($b - $b ** (" . (2 - $p) . "))", #obj => $b ** $emax * ($b - $binv ** ($p - 2)), obj => $b ** ($emax + 1) - $b ** ($emax - $p + 2), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", #obj => $b ** $emax * ($b - $binv ** ($p - 1)), obj => $b ** ($emax + 1) - $b ** ($emax - $p + 1), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigInt -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigInt -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigInt -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigInt -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigInt -> new("-inf"), }, { dsc => "NaN", bin => "0" . ("1" x $w) . ("0" x ($p - 1)) . "1", asc => "NaN", obj => Math::BigInt -> new("NaN"), }, { dsc => "NaN (alternative encoding)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 2)) . "1", asc => "NaN", obj => Math::BigInt -> new("NaN"), }, { dsc => "NaN (another alternative encoding)", bin => "0" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigInt -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; my ($got, $test); $got = Math::BigInt -> from_fp80($bin); $test = qq|Math::BigInt->from_fp80("$bin")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigInt -> from_fp80($hex); $test = qq|Math::BigInt->from_fp80("$hex")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigInt -> from_fp80($bytes); $test = qq|Math::BigInt->from_fp80("$str")|; is($got -> bnstr(), $expected -> bnstr(), $test); } note("\nTest as class method vs. instance method.\n\n"); # As class method. { my $bin = "0" . "100000000000000" . "1000000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigInt -> from_fp80($hex); is($x, 2, "class method"); } # As instance method, the invocand should be modified. { my $bin = "0" . "100000000000000" . "1100000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigInt -> bnan(); $x -> from_fp80($hex); is($x, 3, "instance method modifies invocand"); } Math-BigInt-2.005003/xt/author/from_fp80-mbr.t0000644403072340010010000001544614775747130020465 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 68; use Math::BigRat; my $b = 2; # base my $k = 80; # total width in bits my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigRat -> new($b); $p = Math::BigRat -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; my $binv = Math::BigRat -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigRat -> new("0"), }, { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 1)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "second smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "10", asc => "$b ** ($emin) * $b ** (" . (2 - $p) . ") " . "= $b ** (" . ($emin + 2 - $p) . ")", obj => $binv ** ($p - 2 - $emin), }, { dsc => "second largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 2)) . "0", asc => "$b ** ($emin) * (1 - $b ** (" . (2 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 2)), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "second smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * (1 + $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 + $binv ** ($p - 1)), }, { dsc => "second largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1) . "0", asc => "1 - $b ** (1 - $p)", obj => 1 - $binv ** ($p - 1), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x $p, asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigRat -> new("1"), }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("1" . "0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "second largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1) . "0", asc => "$b ** $emax * ($b - $b ** (" . (2 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 2)), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigRat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigRat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigRat -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigRat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigRat -> new("-inf"), }, { dsc => "NaN", bin => "0" . ("1" x $w) . ("0" x ($p - 1)) . "1", asc => "NaN", obj => Math::BigRat -> new("NaN"), }, { dsc => "NaN (alternative encoding)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 2)) . "1", asc => "NaN", obj => Math::BigRat -> new("NaN"), }, { dsc => "NaN (another alternative encoding)", bin => "0" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigRat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; my ($got, $test); $got = Math::BigRat -> from_fp80($bin); $test = qq|Math::BigRat->from_fp80("$bin")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigRat -> from_fp80($hex); $test = qq|Math::BigRat->from_fp80("$hex")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigRat -> from_fp80($bytes); $test = qq|Math::BigRat->from_fp80("$str")|; is($got -> bnstr(), $expected -> bnstr(), $test); } note("\nTest as class method vs. instance method.\n\n"); # As class method. { my $bin = "0" . "100000000000000" . "1000000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigRat -> from_fp80($hex); is($x, 2, "class method"); } # As instance method, the invocand should be modified. { my $bin = "0" . "100000000000000" . "1100000000000000000000000000000000000000000000000000000000000000"; note "bin : ", join(" ", unpack "(a8)*", $bin); my $hex = unpack "H*", pack "B*", $bin; note "hex : ", join(" ", unpack "(a2)*", $hex); my $x = Math::BigRat -> bnan(); $x -> from_fp80($hex); is($x, 3, "instance method modifies invocand"); } Math-BigInt-2.005003/xt/author/from_hex-mbf.t0000644403072340010010000000355214537274605020451 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 785; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class, '1.999821'); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_hex("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_hex("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ 0x1p+0:1 0x.8p+1:1 0x.4p+2:1 0x.2p+3:1 0x.1p+4:1 0x2p-1:1 0x4p-2:1 0x8p-3:1 -0x1p+0:-1 0x0p+0:0 0x0p+7:0 0x0p-7:0 0x0.p+0:0 0x.0p+0:0 0x0.0p+0:0 0xcafe:51966 0Xcafe:51966 xcafe:51966 Xcafe:51966 cafe:51966 0x1.9p+3:12.5 0x12.34p-1:9.1015625 -0x.789abcdefp+32:-2023406814.9375 0x12.3456789ap+31:39093746765 0x.p+0:NaN NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/from_hex-mbi-mbf.t0000644403072340010010000000530314750145222021177 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigFloat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> from_hex("1.2p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_hex("1.2p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigFloat -> from_hex("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> from_hex("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_hex("1.2p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_hex("1.2p+2"); # = 4.5 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_hex("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_hex("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_hex("1.2p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_hex("1.2p+2"); # = 4.5 is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); }; subtest '$x = Math::BigFloat -> from_hex("4");' => sub { # this must downgrade my $x = Math::BigFloat -> from_hex("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_hex("1.2p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_hex("1.2p+2"); # = 4.5 is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_hex("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_hex("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_hex-mbi-mbr.t0000644403072340010010000000526514750145222021222 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigRat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> from_hex("1.2p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_hex("1.2p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigRat -> from_hex("4");' => sub { # this must not downgrade my $x = Math::BigRat -> from_hex("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_hex("1.2p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_hex("1.2p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_hex("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_hex("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_hex("1.2p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_hex("1.2p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); }; subtest '$x = Math::BigRat -> from_hex("4");' => sub { # this must downgrade my $x = Math::BigRat -> from_hex("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_hex("1.2p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_hex("1.2p+2"); # = 4.5 = 9/2 is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_hex("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_hex("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_hex-mbi.t0000644403072340010010000000445114537274605020453 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1457; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_hex("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_hex("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ 0x0:0 0x1:1 0x2:2 0x3:3 0x4:4 0x5:5 0x6:6 0x7:7 0x8:8 0x9:9 0xa:10 0xb:11 0xc:12 0xd:13 0xe:14 0xf:15 0x10:16 0x11:17 0xfe:254 0xff:255 0x100:256 0x101:257 0xfffe:65534 0xffff:65535 0x10000:65536 0x10001:65537 0xfffffe:16777214 0xffffff:16777215 0x1000000:16777216 0x1000001:16777217 0xfffffffe:4294967294 0xffffffff:4294967295 0x100000000:4294967296 0x100000001:4294967297 0xfffffffffe:1099511627774 0xffffffffff:1099511627775 0x10000000000:1099511627776 0x10000000001:1099511627777 0xfffffffffffe:281474976710654 0xffffffffffff:281474976710655 0x1000000000000:281474976710656 0x1000000000001:281474976710657 0xfffffffffffffe:72057594037927934 0xffffffffffffff:72057594037927935 0x100000000000000:72057594037927936 0x100000000000001:72057594037927937 0X10:16 x10:16 X10:16 NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/from_ieee754-mbf.t0000644403072340010010000001447314762037427021037 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 230; use Math::BigFloat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigFloat -> new($b); $k = Math::BigFloat -> new($k); $p = Math::BigFloat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = sprintf 'binary%u', $k; my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1), asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1), asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigFloat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigFloat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigFloat -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigFloat -> new("0"), }, { dsc => "negative zero", bin => "1" . ("0" x $w) . ("0" x ($p - 1)), asc => "-0", obj => Math::BigFloat -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigFloat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigFloat -> new("-inf"), }, { dsc => "NaN (sNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . ("0" x ($p - 2)) . "1", asc => "sNaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (qNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 3)) . "1", asc => "qNaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (an alternative encoding)", bin => "0" . ("1" x $w) . ("1" x ($p - 1)), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", $bin, "\n", "hexadecimal : ", $hex, "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; my ($got, $test); $got = Math::BigFloat -> from_ieee754($bin, $format); $test = qq|Math::BigFloat->from_ieee754("$bin")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigFloat -> from_ieee754($hex, $format); $test = qq|Math::BigFloat->from_ieee754("$hex")|; is($got -> bnstr(), $expected -> bnstr(), $test); $got = Math::BigFloat -> from_ieee754($bytes, $format); $test = qq|Math::BigFloat->from_ieee754("$str")|; is($got -> bnstr(), $expected -> bnstr(), $test); } } note("\nTest as class method vs. instance method.\n\n"); # As class method. my $x = Math::BigFloat -> from_ieee754("4000000000000000", "binary64"); is($x, 2, "class method"); # As instance method, the invocand should be modified. $x -> from_ieee754("4008000000000000", "binary64"); is($x, 3, "instance method modifies invocand"); Math-BigInt-2.005003/xt/author/from_ieee754-mbi.t0000644403072340010010000001462414762040340021024 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 230; use Math::BigInt; use Math::BigFloat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigFloat -> new($b); $k = Math::BigFloat -> new($k); $p = Math::BigFloat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = sprintf 'binary%u', $k; my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1), asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1), asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigFloat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigFloat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigFloat -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigFloat -> new("0"), }, { dsc => "negative zero", bin => "1" . ("0" x $w) . ("0" x ($p - 1)), asc => "-0", obj => Math::BigFloat -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigFloat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigFloat -> new("-inf"), }, { dsc => "NaN (sNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . ("0" x ($p - 2)) . "1", asc => "sNaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (qNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 3)) . "1", asc => "qNaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (an alternative encoding)", bin => "0" . ("1" x $w) . ("1" x ($p - 1)), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", $bin, "\n", "hexadecimal : ", $hex, "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; $expected = "NaN" unless ($expected -> is_inf() || $expected -> is_int()); my ($got, $test); $got = Math::BigInt -> from_ieee754($bin, $format); $test = qq|Math::BigInt->from_ieee754("$bin", "$format")|; is($got, $expected, $test); $got = Math::BigInt -> from_ieee754($hex, $format); $test = qq|Math::BigInt->from_ieee754("$hex", "$format")|; is($got, $expected, $test); $got = Math::BigInt -> from_ieee754($bytes, $format); $test = qq|Math::BigInt->from_ieee754("$str", "$format")|; is($got, $expected, $test); } } note("\nTest as class method vs. instance method.\n\n"); # As class method. my $x = Math::BigInt -> from_ieee754("4000000000000000", "binary64"); is($x, 2, "class method"); # As instance method, the invocand should be modified. $x -> from_ieee754("4008000000000000", "binary64"); is($x, 3, "instance method modifies invocand"); Math-BigInt-2.005003/xt/author/from_ieee754-mbr.t0000644403072340010010000001435314762036734021050 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 230; use Math::BigRat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigRat -> new($b); $k = Math::BigRat -> new($k); $p = Math::BigRat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = sprintf 'binary%u', $k; my $binv = Math::BigRat -> new("0.5"); my $data = [ { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1), asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1), asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigRat -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigRat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigRat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigRat -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigRat -> new("0"), }, { dsc => "negative zero", bin => "1" . ("0" x $w) . ("0" x ($p - 1)), asc => "-0", obj => Math::BigRat -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigRat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigRat -> new("-inf"), }, { dsc => "NaN (sNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . ("0" x ($p - 2)) . "1", asc => "sNaN", obj => Math::BigRat -> new("NaN"), }, { dsc => "NaN (qNaN on most processors, such as x86 and ARM)", bin => "0" . ("1" x $w) . "1" . ("0" x ($p - 3)) . "1", asc => "qNaN", obj => Math::BigRat -> new("NaN"), }, { dsc => "NaN (an alternative encoding)", bin => "0" . ("1" x $w) . ("1" x ($p - 1)), asc => "NaN", obj => Math::BigRat -> new("NaN"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigRat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", $bin, "\n", "hexadecimal : ", $hex, "\n", " bytes : ", $str, "\n", "\n"); my $expected = $entry -> {obj}; my ($got, $test); $got = Math::BigRat -> from_ieee754($bin, $format); $test = qq|Math::BigRat->from_ieee754("$bin", "$format")|; is($got, $expected, $test); $got = Math::BigRat -> from_ieee754($hex, $format); $test = qq|Math::BigRat->from_ieee754("$hex", "$format")|; is($got, $expected, $test); $got = Math::BigRat -> from_ieee754($bytes, $format); $test = qq|Math::BigRat->from_ieee754("$str", "$format")|; is($got, $expected, $test); } } note("\nTest as class method vs. instance method.\n\n"); # As class method. my $x = Math::BigRat -> from_ieee754("4000000000000000", "binary64"); is($x, 2, "class method"); # As instance method, the invocand should be modified. $x -> from_ieee754("4008000000000000", "binary64"); is($x, 3, "instance method modifies invocand"); Math-BigInt-2.005003/xt/author/from_oct-mbf.t0000644403072340010010000000427514537274605020455 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1401; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class, '1.999710'); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_oct("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_oct("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ # Without "0o" prefix. 01p+0:1 0.4p+1:1 0.2p+2:1 0.1p+3:1 0.04p+4:1 02p-1:1 04p-2:1 010p-3:1 -1p+0:-1 0p+0:0 0p+7:0 0p-7:0 0.p+0:0 .0p+0:0 0.0p+0:0 145376:51966 0145376:51966 00145376:51966 3.1p+2:12.5 22.15p-1:9.1015625 -0.361152746757p+32:-2023406814.9375 44.3212636115p+30:39093746765 .p+0:NaN # With "0o" prefix. 0o01p+0:1 0o0.4p+1:1 0o0.2p+2:1 0o0.1p+3:1 0o0.04p+4:1 0o02p-1:1 0o04p-2:1 0o010p-3:1 -0o1p+0:-1 0o0p+0:0 0o0p+7:0 0o0p-7:0 0o0.p+0:0 0o.0p+0:0 0o0.0p+0:0 0o145376:51966 0O145376:51966 o145376:51966 O145376:51966 0o3.1p+2:12.5 0o22.15p-1:9.1015625 -0o0.361152746757p+32:-2023406814.9375 0o44.3212636115p+30:39093746765 0o.p+0:NaN NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/from_oct-mbi-mbf.t0000644403072340010010000000526514750145222021207 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigFloat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigFloat -> downgrade(undef); subtest '$x = Math::BigInt -> from_oct("1.1p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_oct("1.1p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigFloat -> from_oct("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> from_oct("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_oct("1.1p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_oct("1.1p+2"); # = 4.5 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_oct("4");' => sub { # this must not downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_oct("4"); is(ref($x), "Math::BigFloat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigFloat"); Math::BigFloat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_oct("1.1p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_oct("1.1p+2"); is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); }; subtest '$x = Math::BigFloat -> from_oct("4");' => sub { # this must downgrade my $x = Math::BigFloat -> from_oct("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_oct("1.1p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_oct("1.1p+2"); # = 4.5 is(ref($x), "Math::BigFloat", "class"); is($x, "4.5", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigFloat -> new("4.5"); $q = $x -> from_oct("4");' => sub { # this must downgrade my $x = Math::BigFloat -> new("4.5"); my $q = $x -> from_oct("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_oct-mbi-mbr.t0000644403072340010010000000522514750145222021217 0ustar OSPJADomain Users# -*- mode: perl; -*- # The purpose is primarily to test upgrading and downgrading, not whether the # method returns the correct value for various input. That is tested elsewhere. use strict; use warnings; use Scalar::Util 'refaddr'; use Test::More; use Math::BigRat; note "\nNo upgrading or downgrading\n\n"; Math::BigInt -> upgrade(undef); Math::BigRat -> downgrade(undef); subtest '$x = Math::BigInt -> from_oct("1.1p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> from_oct("1.1p+2"); is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); }; subtest '$x = Math::BigRat -> from_oct("4");' => sub { # this must not downgrade my $x = Math::BigRat -> from_oct("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_oct("1.1p+2");' => sub { # this must not upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_oct("1.1p+2"); # = 4.5 is(ref($x), "Math::BigInt", "class"); is($x, "NaN", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_oct("4");' => sub { # this must not downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_oct("4"); is(ref($x), "Math::BigRat", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; note "\nUpgrading and downgrading\n\n"; Math::BigInt -> upgrade("Math::BigRat"); Math::BigRat -> downgrade("Math::BigInt"); subtest '$x = Math::BigInt -> from_oct("1.1p+2");' => sub { # this must upgrade my $x = Math::BigInt -> from_oct("1.1p+2"); is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); }; subtest '$x = Math::BigRat -> from_oct("4");' => sub { # this must downgrade my $x = Math::BigRat -> from_oct("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); }; subtest '$x = Math::BigInt -> new("4"); $q = $x -> from_oct("1.1p+2");' => sub { # this must upgrade my $x = Math::BigInt -> new("4"); my $q = $x -> from_oct("1.1p+2"); # = 4.5 is(ref($x), "Math::BigRat", "class"); is($x, "9/2", "value"); is(refaddr($x), refaddr($q), "address"); }; subtest '$x = Math::BigRat -> new("4.5"); $q = $x -> from_oct("4");' => sub { # this must downgrade my $x = Math::BigRat -> new("4.5"); my $q = $x -> from_oct("4"); is(ref($x), "Math::BigInt", "class"); is($x, "4", "value"); is(refaddr($x), refaddr($q), "address"); }; done_testing(); Math-BigInt-2.005003/xt/author/from_oct-mbi.t0000644403072340010010000000614614537274605020457 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2745; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } my @data; my $space = "\t\r\n "; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; push @data, [ $in0, $out0 ], [ $in0 . $space, $out0 ], [ $space . $in0, $out0 ], [ $space . $in0 . $space, $out0 ]; } for my $entry (@data) { my ($in0, $out0) = @$entry; # As class method. { my $x; my $test = qq|\$x = $class -> from_oct("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } # As instance method. { for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") { my $x; my $test = qq|\$x = $class -> new("$str");| . qq| \$x -> from_oct("$in0");|; eval $test; die $@ if $@; # this should never happen subtest $test, sub { plan tests => 2, is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; } } } __END__ 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 10:8 11:9 12:10 13:11 14:12 15:13 16:14 17:15 20:16 21:17 376:254 377:255 400:256 401:257 177776:65534 177777:65535 200000:65536 200001:65537 77777776:16777214 77777777:16777215 100000000:16777216 100000001:16777217 37777777776:4294967294 37777777777:4294967295 40000000000:4294967296 40000000001:4294967297 17777777777776:1099511627774 17777777777777:1099511627775 20000000000000:1099511627776 20000000000001:1099511627777 7777777777777776:281474976710654 7777777777777777:281474976710655 10000000000000000:281474976710656 10000000000000001:281474976710657 3777777777777777776:72057594037927934 3777777777777777777:72057594037927935 4000000000000000000:72057594037927936 4000000000000000001:72057594037927937 0o0:0 0o1:1 0o2:2 0o3:3 0o4:4 0o5:5 0o6:6 0o7:7 0o10:8 0o11:9 0o12:10 0o13:11 0o14:12 0o15:13 0o16:14 0o17:15 0o20:16 0o21:17 0o376:254 0o377:255 0o400:256 0o401:257 0o177776:65534 0o177777:65535 0o200000:65536 0o200001:65537 0o77777776:16777214 0o77777777:16777215 0o100000000:16777216 0o100000001:16777217 0o37777777776:4294967294 0o37777777777:4294967295 0o40000000000:4294967296 0o40000000001:4294967297 0o17777777777776:1099511627774 0o17777777777777:1099511627775 0o20000000000000:1099511627776 0o20000000000001:1099511627777 0o7777777777777776:281474976710654 0o7777777777777777:281474976710655 0o10000000000000000:281474976710656 0o10000000000000001:281474976710657 0o3777777777777777776:72057594037927934 0o3777777777777777777:72057594037927935 0o4000000000000000000:72057594037927936 0o4000000000000000001:72057594037927937 0O10:8 o10:8 O10:8 NaN:NaN +inf:NaN -inf:NaN Math-BigInt-2.005003/xt/author/interop-mbf-mbi.t0000644403072340010010000000072414537274605021065 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; use Math::BigFloat; plan tests => 5; my $x = Math::BigFloat -> new("12"); is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat'); my $gcd = Math::BigInt::bgcd($x, 18); is(ref($gcd), "Math::BigInt", '$gcd is a Math::BigInt'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigInt::blcm($x, 18); is(ref($lcm), "Math::BigInt", '$lcm is a Math::BigInt'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/interop-mbi-mbf.t0000644403072340010010000000073214537274605021064 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; use Math::BigFloat; plan tests => 5; my $x = Math::BigInt -> new("12"); is(ref($x), "Math::BigInt", '$x is a Math::BigInt'); my $gcd = Math::BigFloat::bgcd($x, 18); is(ref($gcd), "Math::BigFloat", '$gcd is a Math::BigFloat'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigFloat::blcm($x, 18); is(ref($lcm), "Math::BigFloat", '$lcm is a Math::BigFloat'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/interop-mbil-mbf.t0000644403072340010010000000110714537274605021235 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; eval { require Math::BigInt::Lite; }; plan skip_all => "Math::BigInt::Lite required for thie test" if $@; plan tests => 5; my $x = Math::BigInt::Lite -> new("12"); is(ref($x), "Math::BigInt::Lite", '$x is a Math::BigInt::Lite'); my $gcd = Math::BigFloat::bgcd($x, 18); is(ref($gcd), "Math::BigFloat", '$gcd is a Math::BigFloat'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigFloat::blcm($x, 18); is(ref($lcm), "Math::BigFloat", '$lcm is a Math::BigFloat'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/interop-mbil-mbi.t0000644403072340010010000000107114537274605021240 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; eval { require Math::BigInt::Lite; }; plan skip_all => "Math::BigInt::Lite required for thie test" if $@; plan tests => 5; my $x = Math::BigInt::Lite -> new("12"); is(ref($x), "Math::BigInt::Lite", '$x is a Math::BigInt::Lite'); my $gcd = Math::BigInt::bgcd($x, 18); is(ref($gcd), "Math::BigInt", '$gcd is a Math::BigInt'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigInt::blcm($x, 18); is(ref($lcm), "Math::BigInt", '$lcm is a Math::BigInt'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/interop-mbr-mbf.t0000644403072340010010000000105114537274605021070 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; eval { require Math::BigRat; }; plan skip_all => "Math::BigRat required for thie test" if $@; plan tests => 5; my $x = Math::BigRat -> new("12"); is(ref($x), "Math::BigRat", '$x is a Math::BigRat'); my $gcd = Math::BigFloat::bgcd($x, 18); is(ref($gcd), "Math::BigFloat", '$gcd is a Math::BigFloat'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigFloat::blcm($x, 18); is(ref($lcm), "Math::BigFloat", '$lcm is a Math::BigFloat'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/interop-mbr-mbi.t0000644403072340010010000000103314537274605021073 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; eval { require Math::BigRat; }; plan skip_all => "Math::BigRat required for thie test" if $@; plan tests => 5; my $x = Math::BigRat -> new("12"); is(ref($x), "Math::BigRat", '$x is a Math::BigRat'); my $gcd = Math::BigInt::bgcd($x, 18); is(ref($gcd), "Math::BigInt", '$gcd is a Math::BigInt'); is($gcd, "6", '$gcd is 6'); my $lcm = Math::BigInt::blcm($x, 18); is(ref($lcm), "Math::BigInt", '$lcm is a Math::BigInt'); is($lcm, "36", '$gcd is 36'); Math-BigInt-2.005003/xt/author/is_zero-mbf.t0000644403072340010010000000135414537274605020312 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 6; use Math::BigFloat; note("is_zero() as a class method"); is(Math::BigFloat -> is_zero(0), 1, "Math::BigFloat -> is_zero(0)"); is(Math::BigFloat -> is_zero(1), 0, "Math::BigFloat -> is_zero(1)"); is(Math::BigFloat -> is_zero(Math::BigFloat -> bzero()), 1, "Math::BigFloat -> is_zero(Math::BigFloat -> bzero())"); is(Math::BigFloat -> is_zero(Math::BigFloat -> bone()), 0, "Math::BigFloat -> is_zero(Math::BigFloat -> bone())"); note("is_zero() as an instance method"); is(Math::BigFloat -> bzero() -> is_zero(), 1, "Math::BigFloat -> bzero() -> is_zero()"); is(Math::BigFloat -> bone() -> is_zero(), 0, "Math::BigFloat -> bone() -> is_zero()"); Math-BigInt-2.005003/xt/author/is_zero-mbi.t0000644403072340010010000000131214537274605020307 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 6; use Math::BigInt; note("is_zero() as a class method"); is(Math::BigInt -> is_zero(0), 1, "Math::BigInt -> is_zero(0)"); is(Math::BigInt -> is_zero(1), 0, "Math::BigInt -> is_zero(1)"); is(Math::BigInt -> is_zero(Math::BigInt -> bzero()), 1, "Math::BigInt -> is_zero(Math::BigInt -> bzero())"); is(Math::BigInt -> is_zero(Math::BigInt -> bone()), 0, "Math::BigInt -> is_zero(Math::BigInt -> bone())"); note("is_zero() as an instance method"); is(Math::BigInt -> bzero() -> is_zero(), 1, "Math::BigInt -> bzero() -> is_zero()"); is(Math::BigInt -> bone() -> is_zero(), 0, "Math::BigInt -> bone() -> is_zero()"); Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_add.dat0000644403072340010010000006535714505066136023455 0ustar OSPJADomain Users38:95:133 51:582:633 77:3259:3336 77:48939:49016 87:785746:785833 51:8013093:8013144 17:84981862:84981879 73:518093993:518094066 30:2050839865:2050839895 47:29590479892:29590479939 82:881113766641:881113766723 94:2365621927473:2365621927567 42:57129686171278:57129686171320 97:714600987409929:714600987410026 16:9193587152443802:9193587152443818 69:34574756119616287:34574756119616356 63:129203528618918440:129203528618918503 89:4564395485854842757:4564395485854842846 52:43281574081450827737:43281574081450827789 64:879882042331215118762:879882042331215118826 99:9815890112038293073519:9815890112038293073618 87:32765771533116119241571:32765771533116119241658 94:639148516878340632189500:639148516878340632189594 69:9647162707796234310274816:9647162707796234310274885 543:95:638 311:941:1252 454:4101:4555 869:68317:69186 742:564815:565557 611:7399862:7400473 331:19658460:19658791 442:714143728:714144170 168:2386517046:2386517214 210:99110091792:99110092002 588:826300028675:826300029263 403:4410735238882:4410735239285 437:92091100683922:92091100684359 828:658015468778579:658015468779407 947:4220984310162412:4220984310163359 506:26738778699642029:26738778699642535 949:890230005532953486:890230005532954435 568:3922825066173932437:3922825066173933005 628:62505015474366834170:62505015474366834798 730:132028171858756066047:132028171858756066777 883:4737039980787213331336:4737039980787213332219 345:14372745729267444679207:14372745729267444679552 424:414010976463363950688976:414010976463363950689400 459:9223329874769558018680399:9223329874769558018680858 9459:77:9536 2149:417:2566 9595:9000:18595 1204:77327:78531 7304:496118:503422 4108:2927745:2931853 8146:46777007:46785153 3504:647771524:647775028 3253:5801007851:5801011104 6648:35280178805:35280185453 1417:194886926548:194886927965 5326:2990614262187:2990614267513 3443:55183342419999:55183342423442 3392:633446883541448:633446883544840 7999:9817088827014053:9817088827022052 6677:86655547463194854:86655547463201531 7836:469808383526938388:469808383526946224 8832:5592181420493197656:5592181420493206488 3921:55149516509993724639:55149516509993728560 4231:398160871733741326661:398160871733741330892 2864:6139432649736846839193:6139432649736846842057 6294:70861998413748565645930:70861998413748565652224 4628:833664652049286387409906:833664652049286387414534 7510:9968043041021011411794368:9968043041021011411801878 17797:39:17836 37507:562:38069 66551:5342:71893 62475:16938:79413 17501:407729:425230 43158:7877608:7920766 31560:38917207:38948767 75914:676435357:676511271 19667:7374678858:7374698525 63995:27192208612:27192272607 19778:388411234299:388411254077 14028:2114834510710:2114834524738 79516:16409430525902:16409430605418 22272:814912250681150:814912250703422 99758:6040319323078675:6040319323178433 67178:63754174502512454:63754174502579632 41985:717742466744115882:717742466744157867 30684:1782105050492224367:1782105050492255051 68343:63548492877548405564:63548492877548473907 93568:592216777063702842047:592216777063702935615 86169:8092452505794800709192:8092452505794800795361 46664:21253946235709418631717:21253946235709418678381 41166:735283246010825732902491:735283246010825732943657 50860:7012478285453214991051668:7012478285453214991102528 132631:15:132646 322798:541:323339 299313:9249:308562 199648:81737:281385 521850:813289:1335139 774280:7117493:7891773 229030:33008889:33237919 559752:714115421:714675173 576782:9877822769:9878399551 455065:94261465941:94261921006 511413:371668375932:371668887345 530296:6840272199342:6840272729638 976579:43907494395463:43907495372042 995925:666602750157219:666602751153144 767279:6216665892203900:6216665892971179 934690:96884761479803369:96884761480738059 580832:817448168323860218:817448168324441050 973282:2295757143807389695:2295757143808362977 255586:11815597744558097544:11815597744558353130 668022:463699427795924643173:463699427795925311195 756100:9363304141768984233382:9363304141768984989482 293890:26183307454183245836187:26183307454183246130077 807549:894831758902262698143188:894831758902262698950737 309216:4169368097765789401124419:4169368097765789401433635 5913690:75:5913765 5083204:448:5083652 9750673:1913:9752586 9466811:55702:9522513 5229727:357671:5587398 2006436:6290660:8297096 5241050:69129573:74370623 6476228:328916590:335392818 4709008:9456386627:9461095635 5378199:14393183642:14398561841 5704852:626353795303:626359500155 3364623:5176169832029:5176173196652 1157104:62569330160722:62569331317826 7879849:431827923085798:431827930965647 9497770:9083627021512724:9083627031010494 3493758:29646705240437970:29646705243931728 5394256:370153101741238621:370153101746632877 5497457:1568010330580995070:1568010330586492527 2167224:20700004571464145634:20700004571466312858 8080930:122282277162815310489:122282277162823391419 2562132:5332464226618516636463:5332464226618519198595 6151154:71726351080048278299890:71726351080048284451044 6155998:491199108757670858241914:491199108757670864397912 1776162:1486504762310437887099422:1486504762310437888875584 67627136:74:67627210 15857075:498:15857573 71825805:2689:71828494 15440325:41943:15482268 47185724:310373:47496097 41476221:7509269:48985490 93251524:64162613:157414137 27526215:745747577:773273792 55575841:1299378605:1354954446 95203435:51811311183:51906514618 80186920:522069567260:522149754180 45176756:2522528480337:2522573657093 77144041:51624637410498:51624714554539 93667423:522097325144134:522097418811557 97857782:1132628083803050:1132628181660832 51695405:18706988852090991:18706988903786396 44120134:524028427672515890:524028427716636024 30134935:7904023062373301655:7904023062403436590 24333530:39527588659527008512:39527588659551342042 14877216:519496083150274285117:519496083150289162333 20697269:3288753338559466298974:3288753338559486996243 79700606:50528795162107243563443:50528795162107323264049 47254378:811355293457227127242956:811355293457227174497334 71068213:3493394877495298284247417:3493394877495298355315630 665232890:62:665232952 743586690:749:743587439 838270608:1349:838271957 615183383:29123:615212506 865735549:178624:865914173 587794231:7599478:595393709 263590918:23598444:287189362 324000586:484951280:808951866 615305242:8043210762:8658516004 285636445:41334672687:41620309132 796629907:287845927412:288642557319 403314958:5928682554001:5929085868959 295082893:17959476461053:17959771543946 669189855:276689362857396:276690032047251 307819887:7080057770162561:7080058077982448 178924573:73206798479607154:73206798658531727 684330563:895415107766644457:895415108450975020 110895291:1527441236096786813:1527441236207682104 139998623:37537035424603093662:37537035424743092285 975325452:132352644838529647347:132352644839504972799 710434638:5995165437482418378406:5995165437483128813044 307423685:54615252244279083824283:54615252244279391247968 354177665:143314873981406459164372:143314873981406813342037 647407055:5539034701295398394506529:5539034701295399041913584 2911696780:80:2911696860 3411540795:610:3411541405 4692231106:6079:4692237185 2028534377:14705:2028549082 2450413760:569579:2450983339 8551236326:1118859:8552355185 1384081964:39828728:1423910692 3450906868:220323232:3671230100 5768043138:5218652851:10986695989 2504999290:97314069135:99819068425 2110879419:701033225704:703144105123 6640865137:4513745825803:4520386690940 8308615763:26449658816453:26457967432216 2264823766:526492871950980:526495136774746 1875480191:2305928358015944:2305930233496135 2088744444:42441580981294501:42441583070038945 1804378467:674686951483865830:674686953288244297 3891042279:8234586806703117787:8234586810594160066 3631368829:74123755131914729748:74123755135546098577 1107519346:961275538810824262488:961275538811931781834 7837160335:3327196843569127986805:3327196843576965147140 2269979592:43189607381864052248054:43189607381866322227646 3554155764:376995601544081173565483:376995601544084727721247 2330014325:6240642076808412869063588:6240642076808415199077913 47521857298:98:47521857396 29855709998:133:29855710131 26059343189:8890:26059352079 76220627648:79014:76220706662 98869754891:488859:98870243750 36546005659:7732753:36553738412 60518586003:50968560:60569554563 25422482306:986326526:26408808832 58827043678:3262348615:62089392293 13914559309:10856765235:24771324544 63284387910:421539369103:484823757013 92879359350:6740000506016:6832879865366 59428223914:16468941035462:16528369259376 92734144387:732822963251536:732915697395923 19505171630:1841800444202701:1841819949374331 43837430087:55282967691699730:55283011529129817 87841633084:860176176531278839:860176264372911923 89158750064:6890425624128678624:6890425713287428688 60606782936:83084605697981245853:83084605758588028789 34000632864:680306029462456383806:680306029496457016670 80654953026:1656699497278453991955:1656699497359108944981 79282191200:15784114706496076879577:15784114706575359070777 20550390726:719508822656923966870644:719508822656944517261370 46843806797:8206390444376816870432577:8206390444376863714239374 203804183732:59:203804183791 881354617654:207:881354617861 118912306453:7389:118912313842 630665273332:42836:630665316168 331224282098:135774:331224417872 196617834651:9962689:196627797340 520953769460:72720610:521026490070 540643129023:226865287:540869994310 319589907148:9148627592:328738534740 548370065479:35479801564:583849867043 885165593394:712376729597:1597542322991 952742027760:4930416376061:5883158403821 960843001679:25833194217774:26794037219453 955579154217:538965952443465:539921531597682 216103433714:1461716588666077:1461932692099791 421396827096:56138655828538750:56139077225365846 240398545338:873124571000103763:873124811398649101 789981933788:4400510409611681516:4400511199593615304 537889589554:90758404931454976687:90758405469344566241 688891346078:391296683808766851832:391296684497658197910 352790936363:1493425087356870797973:1493425087709661734336 548154313471:80146219324931026684054:80146219325479180997525 383298201579:421809518573793184629579:421809518574176482831158 418672369800:5212629249895037301938500:5212629249895455974308300 4926362728296:16:4926362728312 9816116647030:356:9816116647386 7154921421405:4656:7154921426061 1673041573729:79711:1673041653440 8309789506219:226002:8309789732221 9405874378302:7538593:9405881916895 9819543125670:54322790:9819597448460 3385431210527:302697080:3385733907607 5181994517394:2727767603:5184722284997 2050836592675:84313229390:2135149822065 9244749302254:314359974808:9559109277062 8328912197651:9228375835982:17557288033633 3486674870939:63945828926868:67432503797807 1078638847336:799570811265338:800649450112674 9509676791835:3666946266300223:3676455943092058 8855783606803:34300430744120935:34309286527727738 5386727033022:206306522801062928:206311909528095950 6936577607444:8274049520725934612:8274056457303542056 7774050529704:94491102483090006369:94491110257140536073 6437618088389:196511217671768864466:196511224109386952855 4868690783597:1855364786767055789814:1855364791635746573411 1294741457708:11419155121805243466589:11419155123099984924297 7686674301597:481340853638404528982321:481340853646091203283918 5748891305348:7651012123264148371393799:7651012123269897262699147 95939441191683:19:95939441191702 61786336010685:483:61786336011168 61746183009943:6085:61746183016028 35781501403274:52148:35781501455422 73188326495531:537033:73188327032564 64954655577396:7286147:64954662863543 88045012011646:74965568:88045086977214 19814370921064:153932353:19814524853417 94399717056242:2923189115:94402640245357 73842612582419:72059819764:73914672402183 45465937108493:561044808473:46026981916966 98366213885414:2341918580988:100708132466402 55294115994704:58748467290444:114042583285148 21852222846305:265872137113269:287724359959574 45808622489742:6701017272505142:6746825894994884 77897680155120:31129557129944474:31207454810099594 21275318519666:230889315659949608:230910590978469274 66600881993609:4859480276943369093:4859546877825362702 40600605931222:77157735792545585734:77157776393151516956 19743948720620:955249542708565034171:955249562452513754791 69340559803093:6009099389988142357876:6009099459328702160969 28297968959799:75117085555736425359203:75117085584034394319002 82048941595545:692184003711664542958934:692184003793713484554479 94904585143508:2738931273415411915470603:2738931273510316500614111 442907756480959:82:442907756481041 178462823527746:491:178462823528237 958538725918951:4043:958538725922994 695612829171856:68780:695612829240636 697315011539971:274630:697315011814601 750139099147100:5718750:750139104865850 299671952863561:54803458:299672007667019 311893449913439:146111337:311893596024776 288450232716997:3466320301:288453699037298 135963378508569:74264847544:136037643356113 251120981256365:904178412927:252025159669292 458678954528654:6851233122104:465530187650758 298135357329571:32417062880185:330552420209756 293672873410880:851005726763514:1144678600174394 970282071415966:1776232765771656:2746514837187622 388501615416706:40827011185413388:41215512800830094 105960332687526:749884726692585168:749990687025272694 317832744061140:8249358420973227800:8249676253717288940 867879052015004:41670028247026712672:41670896126078727676 844858850496026:725205253097414832996:725206097956265329022 315914796180158:2456655025867968991912:2456655341782765172070 561914227465634:14602911326439012541126:14602911888353240006760 693846259553834:995200889549233370079732:995200890243079629633566 289019500698574:1921607759514607080118840:1921607759803626580817414 6586745434167218:79:6586745434167297 3874061842555415:420:3874061842555835 7113609043545984:1385:7113609043547369 3025828750020285:46250:3025828750066535 2789476696435345:126974:2789476696562319 5770375998928322:4311827:5770376003240149 7270576569761040:55986361:7270576625747401 3927169190480660:754319658:3927169944800318 6570496777698913:9617185382:6570506394884295 9244767746865106:76132957278:9244843879822384 8451059713153207:683622004271:8451743335157478 1634476262414891:9739219040751:1644215481455642 4548844165105896:80130715172201:4628974880278097 8148285943170373:375291533410713:8523577476581086 2193714685151355:6146103542951725:8339818228103080 7335486858396207:69014070008603427:76349556866999634 3329351849143829:220458728804573015:223788080653716844 4019720020715369:4822584106321388029:4826603826342103398 4282642147391871:67919169959050015185:67923452601197407056 7399786458103667:895259886998644812517:895267286785102916184 9080167559868583:6071679339552366256441:6071688419719926125024 5853817187467547:37090184392713544722637:37090190246530732190184 1199641686435023:918841226745049845682115:918841227944691532117138 6982926101101493:6215447157221713524848119:6215447164204639625949612 33880586973540105:99:33880586973540204 56971064008907582:442:56971064008908024 67560902118282259:7345:67560902118289604 10564773217702105:89862:10564773217791967 92977495594526378:669068:92977495595195446 52451077857053795:5885475:52451077862939270 60041179729484951:93320099:60041179822805050 41431875220597760:360328139:41431875580925899 85390906627142973:2660327797:85390909287470770 45895929860960606:82132198986:45896011993159592 90069248292517442:189059168678:90069437351686120 99327917547688057:5409849814565:99333327397502622 72601177107831311:52522205456695:72653699313288006 95017035417633240:690361970660444:95707397388293684 72948380514228342:9836109479775008:82784489994003350 50346569218111194:46718698247608190:97065267465719384 85573987119347048:431446756223737442:517020743343084490 74918921984864492:4586237687231475590:4661156609216340082 18994961090896048:65977755560479780586:65996750521570676634 54212096672696500:557647750259775614200:557701962356448310700 89647735133341810:2432260725784762339708:2432350373519895681518 44438572952070806:76877039567515937815104:76877084006088889885910 25310571830388872:220571264682979455399436:220571289993551285788308 81653662614001616:7922695925583375060978442:7922696007237037674980058 564129680773681620:72:564129680773681692 273559364257334305:989:273559364257335294 378401007153901687:6968:378401007153908655 264366044750850589:22447:264366044750873036 687097330601219006:106632:687097330601325638 873120763430274707:3952148:873120763434226855 659404740372285895:15366957:659404740387652852 858086664758222576:512709623:858086665270932199 277944987267676397:4417866870:277944991685543267 978451541324238030:93879626336:978451635203864366 571433400428371683:632075830424:571434032504202107 435289772981320636:4825351708653:435294598333029289 891700558675626112:53989487948189:891754548163574301 837798895801703812:578212247038430:838377108048742242 575671434863197896:6809748102182594:582481182965380490 458405761462120524:77495684183111184:535901445645231708 423795116331610954:726934288879987438:1150729405211598392 118368788986646104:9767225868273711314:9885594657260357418 137287639015303388:47995009574982402294:48132297213997705682 207298911052769184:813014915272906139482:813222214183958908666 490332708518219428:6449742008810967273470:6450232341519485492898 274052610854248936:71877512830839220757868:71877786883450075006804 400053018784603440:885915131167680957136746:885915531220699741740186 436051821788532020:1941271107269048062925070:1941271543320869851457090 3014582907476113784:89:3014582907476113873 2784787897474980629:345:2784787897474980974 9271985251013682281:8160:9271985251013690441 3054221451767246589:88100:3054221451767334689 4336190857240022737:462759:4336190857240485496 7110648843451193090:3253109:7110648843454446199 9225379379411686480:55450300:9225379379467136780 4999588793325843917:603087117:4999588793928931034 3781857500028475182:4101588644:3781857504130063826 1854196791009998019:54787289997:1854196845797288016 3896275114575246108:628921094762:3896275743496340870 4903608702114032649:9562072973662:4903618264187006311 2734040659867770778:48467380717646:2734089127248488424 6721210251407333663:580531121728113:6721790782529061776 6737475239570438419:3815986340711813:6741291225911150232 2996674105940141127:87750140932050619:3084424246872191746 4505528465748852589:708240326313438319:5213768792062290908 7724435405316634177:3871355912314925411:11595791317631559588 5349831095183443541:93446228346476122519:98796059441659566060 6842914129254171561:721989182463274844733:728832096592529016294 1309892798362694591:8291677969468375733777:8292987862266738428368 6680808419803274675:81693655723638971634469:81700336532058774909144 3845259086432056039:345729713345378356284793:345733558604464788340832 4810135106142332763:6892397561842137305798925:6892402371977243448131688 45123364737125838607:33:45123364737125838640 54090731930833550684:547:54090731930833551231 54174780072448771104:7050:54174780072448778154 26883263877354327656:62224:26883263877354389880 94091167085383231685:471795:94091167085383703480 99373324792379540141:1469993:99373324792381010134 18267055785591681422:92634592:18267055785684316014 24420554980268571542:317447567:24420554980586019109 28473905620585043325:6909518330:28473905627494561655 72996010120415281544:63473818266:72996010183889099810 11318498466544959527:825790675132:11318499292335634659 70611477733898881179:3721334277824:70611481455233159003 54085263322445093588:85942582465063:54085349265027558651 43905610924320212803:888191622020917:43906499115942233720 18021757345909237111:7602198130535049:18029359544039772160 83061914270387352299:13231051706819487:83075145322094171786 69606002940165683441:119295434012060563:69725298374177744004 88488757097920513029:6265599204171873991:94754356302092387020 59848299936217803865:41620752506234357229:101469052442452161094 19932325601235556079:168454181854515061953:188386507455750618032 15495981843710919651:7497997909517802085589:7513493891361513005240 86934286700879594025:60347855607292018762635:60434789893992898356660 85148093127215474877:375262271857426991595071:375347419950554207069948 34066120512372499601:7041762838436453274931251:7041796904556965647430852 301492478607448951205:60:301492478607448951265 626159810656892084109:751:626159810656892084860 116869082683733007342:4905:116869082683733012247 783795709573932421251:23403:783795709573932444654 172627403765817332188:408067:172627403765817740255 704870409283928271305:1620970:704870409283929892275 634124382550275049562:24568650:634124382550299618212 195461848734224187646:420535052:195461848734644722698 387657849167525876347:9003769504:387657849176529645851 143431997755497449998:95713949554:143431997851211399552 110355354749325650418:535748806856:110355355285074457274 584051741444091726167:1107082145345:584051742551173871512 417466798489758145658:66889275670014:417466865379033815672 797358684365884894161:476240275458419:797359160606160352580 753788663176948292263:8040180512774969:753796703357461067232 551056520094492494619:67128980564607693:551123649075057102312 185524386810973785807:541960141851070369:186066346952824856176 303303816418135022019:8738649374506915253:312042465792641937272 852495733433086795767:78074947571099953417:930570681004186749184 997465331674817142173:699220352420858080799:1696685684095675222972 893917817891187754865:6543267021930792869395:7437184839821980624260 502341234725678398085:73396911060241554246361:73899252294967232644446 249771191177498153915:635242800245435624100673:635492571436613122254588 324652375413295863395:5925375509448690556711765:5925700161824103852575160 1789936140077116147351:33:1789936140077116147384 8576606456390085467648:291:8576606456390085467939 1584719880662477426493:7886:1584719880662477434379 8688829064889303339870:75015:8688829064889303414885 4694164392882910429875:284804:4694164392882910714679 5366697690794778938828:1946663:5366697690794780885491 7579145499969571981945:78319638:7579145499969650301583 4828260696984229733578:892075134:4828260696985121808712 3341734213317143512079:9976898757:3341734213327120410836 1147088609879452218328:84715883196:1147088609964168101524 4327910719446801850613:922094877734:4327910720368896728347 2218655590607882369654:6898605706884:2218655597506488076538 7119488488812331075243:35351972027922:7119488524164303103165 4790200368214597220734:938624195700584:4790201306838792921318 2270929245883198267490:7573067834475244:2270936818951032742734 1228104498958014747014:46331747515978416:1228150830705530725430 4315916567543335923946:101299387789318836:4316017866931125242782 7558063010997766677134:5324820726670614264:7563387831724437291398 5315047196190310638460:17002833449040923798:5332050029639351562258 1318444185297526565952:995029431178219490554:2313473616475746056506 6715914371472445472068:5863936113438544261022:12579850484910989733090 4111966649130116831880:51179853760755126098050:55291820409885242929930 4060650888268892915724:803193447548221641747366:807254098436490534663090 4362891179467949115856:3821323522018170950552842:3825686413197638899668698 63289288480467904289304:57:63289288480467904289361 88294395673367816498229:733:88294395673367816498962 69841732960055071468384:8413:69841732960055071476797 54140984260688785569951:25474:54140984260688785595425 38806440777757272682757:442989:38806440777757273125746 50801909009926816159174:7882236:50801909009926824041410 97748354956044360567253:50576303:97748354956044411143556 27720358992253790240553:612097156:27720358992254402337709 20779576706813437840350:9430164492:20779576706822868004842 93414238854820197381427:39041039727:93414238854859238421154 28307636688265854714444:747639741250:28307636689013494455694 40958918618775462619385:9857607115393:40958918628633069734778 38420856925894337036376:97553818639721:38420857023448155676097 66812100451837178340086:518156107831712:66812100969993286171798 17248604330878722713946:7915241528352932:17248612246120251066878 56600734627580566106622:84428883247371240:56600819056463813477862 85584016226756797276386:219351057312963078:85584235577814110239464 97104664757076221726512:8500556944889315690:97113165314021111042202 19032843758065040760628:88104798262565550076:19120948556327606310704 82658655049299755840790:330744708650497149120:82989399757950252989910 25937775258459376450938:9117236290339930087876:35055011548799306538814 79630397663318903941150:91266358701181876787458:170896756364500780728608 72363750170986252170278:352822843949235545048656:425186594120221797218934 41633236615281651457418:3513474588574508538718292:3555107825189790190175710 862382897072047863920942:67:862382897072047863921009 345365086632616786979602:165:345365086632616786979767 830917411328470856914167:1577:830917411328470856915744 861328817548390237954458:59803:861328817548390238014261 435702441147691312915569:852845:435702441147691313768414 163650798094815134949666:4890705:163650798094815139840371 829972879311295759699527:52079524:829972879311295811779051 905398967434531022182765:809939827:905398967434531832122592 878572102846981788905912:8671635815:878572102846990460541727 966819332280842407656343:81404007009:966819332280923811663352 605914324927487434954496:836963143115:605914324928324398097611 785889551334926098144317:7355877270848:785889551342281975415165 410214032371695638643806:68589772674009:410214032440285411317815 462994403230711797902629:471001494226809:462994403701713292129438 639185048152260312035675:4518316291388173:639185052670576603423848 430192732263357843456993:91520206145619971:430192823783563989076964 590635656249492501482997:763432491013000107:590636419681983514483104 104601987456388095909341:2537987326381803615:104604525443714477712956 728422130387509745109937:73834339964384107603:728495964727474129217540 718248234259751470727877:138830030885139879705:718387064290636610607582 893755587645623388592635:2079483375835386354861:895835071021458774947496 609068028736876094057391:33159553495973691451265:642227582232849785508656 850894165421275537728675:466768583304814459423637:1317662748726089997152312 889595520322071688083671:8126860723954790789209321:9016456244276862477292992 3451989882450493243366475:44:3451989882450493243366519 3676153522703674807812863:228:3676153522703674807813091 9685068642890486639735688:4341:9685068642890486639740029 4613512245353828870809701:99024:4613512245353828870908725 6626765697622463003196582:204900:6626765697622463003401482 1855110671684747849405083:2861253:1855110671684747852266336 9343797076968945720810273:79418802:9343797076968945800229075 1251688292887159125871506:389410492:1251688292887159515281998 9279157541589530206326647:2935764182:9279157541589533142090829 1167245941941112391056619:37763871218:1167245941941150154927837 4912527100967787448470943:754359292966:4912527100968541807763909 4850890418572250491729576:1808353379161:4850890418574058845108737 5810035777814083249544709:13975429026659:5810035777828058678571368 3927232818092860557052400:779039725509162:3927232818871900282561562 9087609812767633363355124:4724382733901774:9087609817492016097256898 5234627893021110881058360:71140343296456836:5234627964161454177515196 9697164662445358490418398:208444783124859336:9697164870890141615277734 5407486861167440724261314:2798637010678278988:5407489659804451402540302 4083151706985507799310608:65152127165302838858:4083216859112673102149466 7219110157835469406203668:642658258798688213336:7219752816094268094417004 7043625276900062501518290:3357409280053756244982:7046982686180116257763272 2475791768058130306552480:91956007428434837342810:2567747775486565143895290 3250420820556278555501310:303180259280279321472232:3553601079836557876973542 2248566248782537066521058:9572688262788075807973484:11821254511570612874494542 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_add.t0000644403072340010010000001202714536617520023135 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 7705; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_add'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 0; $y <= 24 ; ++ $y) { push @data, [ $x, $y, $x + $y ]; } } # 9 + 11, 99 + 101, 999 + 1001, 9999 + 1001, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $y = "1" . ("0" x ($p - 1)) . "1"; my $z = "2" . ("0" x $p); push @data, [ $x, $y, $z ]; } # 9 + 9, 99 + 99, 999 + 999, 9999 + 9999, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $z = "1" . ("9" x ($p - 1)) . "8"; push @data, [ $x, $x, $z ]; } # Powers of 10. for (my $p = 0; $p <= 24 ; ++ $p) { for (my $q = 0; $q <= 24 ; ++ $q) { my $x = "1" . ("0" x $p); my $y = "1" . ("0" x $q); my ($max, $min) = $p > $q ? ($p, $q) : ($q, $p); my $z = "1" . ("0" x $max); substr($z, -1 - $min, 1) = substr($z, -1 - $min, 1) + 1; push @data, [ $x, $y, $z ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_add(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_add() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_add(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_add() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_div.dat0000644403072340010010000003416314505066136023476 0ustar OSPJADomain Users9:54:0:9 1:781:0:1 3:4665:0:3 3:12746:0:3 6:401608:0:6 5:4973563:0:5 2:38956011:0:2 5:158697436:0:5 7:7124748164:0:7 8:53946138772:0:8 3:336282406075:0:3 7:5075747178985:0:7 2:12741528190606:0:2 6:534035067908715:0:6 3:4355706918152932:0:3 2:10871312221127208:0:2 8:119865422092255109:0:8 3:7394159221356238406:0:3 8:70181009638469054829:0:8 76:6:12:4 93:70:1:23 98:500:0:98 85:5843:0:85 28:76287:0:28 27:389276:0:27 14:2106171:0:14 43:83817435:0:43 93:709704213:0:93 72:7721474597:0:72 28:21540325401:0:28 73:804764354059:0:73 15:4417473085200:0:15 28:18486035530348:0:28 48:592021382407669:0:48 75:2526408092525483:0:75 92:11195823033459326:0:92 94:442333652048327763:0:94 38:4519419506056979436:0:38 32:54670855129208237849:0:32 462:4:115:2 873:91:9:54 120:293:0:120 466:8340:0:466 425:89933:0:425 493:762687:0:493 727:4016580:0:727 429:92218359:0:429 153:194912651:0:153 254:4147676135:0:254 752:27376661295:0:752 621:542759240192:0:621 998:1945866604362:0:998 221:24578881912168:0:221 572:154357937401421:0:572 296:9457382019920673:0:296 154:52400786487349660:0:154 108:190209567462298859:0:108 440:6164636360441565028:0:440 714:23535004752460335857:0:714 1267:9:140:7 3002:44:68:10 7189:653:11:6 9522:7247:1:2275 6818:77522:0:6818 6197:853484:0:6197 6134:9018359:0:6134 9319:54687670:0:9319 1608:870022677:0:1608 9681:9050448475:0:9681 7852:11572637984:0:7852 5888:516174684603:0:5888 7863:4921462150542:0:7863 5979:43852240340461:0:5979 5499:173256160271247:0:5499 3844:1405180378886787:0:3844 2398:97350995707774135:0:2398 8319:195445934782089888:0:8319 3986:3791071368230034525:0:3986 1447:54551629872573097192:0:1447 36809:9:4089:8 35455:92:385:35 44068:678:64:676 15586:4062:3:3400 36181:55119:0:36181 39335:936852:0:39335 88611:5846538:0:88611 80687:55734122:0:80687 47953:451250620:0:47953 51113:9874877859:0:51113 69117:17237187914:0:69117 51275:300287562141:0:51275 49575:9647163059923:0:49575 44529:56325613082253:0:44529 23494:611400683835599:0:23494 20783:6902647686603794:0:20783 86879:12188914403900169:0:86879 92722:601221826736435231:0:92722 82406:9422212723735232531:0:82406 37331:55975007755788120748:0:37331 322789:6:53798:1 831257:45:18472:17 713855:369:1934:209 223945:7920:28:2185 522515:11940:43:9095 836834:989153:0:836834 537979:7226665:0:537979 632261:95400227:0:632261 719209:982015298:0:719209 622413:5630235775:0:622413 566993:20100556462:0:566993 806924:329920616535:0:806924 493919:8000613898695:0:493919 151792:73173763491629:0:151792 919978:515313872677780:0:919978 371697:4839940299798753:0:371697 837394:24743492517418066:0:837394 696529:427492743841595191:0:696529 619946:4328877720548698283:0:619946 930154:15359013102601717284:0:930154 4526030:4:1131507:2 2693929:88:30612:73 1303958:926:1408:150 5610335:7316:766:6279 1112571:58580:18:58131 4009490:501198:7:501104 4934643:6971096:0:4934643 5613194:55587510:0:5613194 2461401:473851479:0:2461401 7513056:2813007185:0:7513056 6730764:28215736440:0:6730764 2626386:859625430383:0:2626386 8314568:7420181740840:0:8314568 8580608:81004176270812:0:8580608 4577500:321499930821778:0:4577500 4867244:6866791044783223:0:4867244 4994809:94422246381803620:0:4994809 6799865:449826531660591763:0:6799865 4621297:8243216569435287494:0:4621297 9651873:55881476630960943914:0:9651873 17084510:5:3416902:0 98683010:63:1566396:62 46862987:162:289277:113 33108190:4202:7879:632 95668269:41838:2286:26601 64405858:250755:256:212578 14061020:5381002:2:3299016 47751487:41381502:1:6369985 66923018:812094384:0:66923018 38608057:3888278753:0:38608057 38154295:37984413331:0:38154295 92030342:696128642471:0:92030342 19558161:5003401424535:0:19558161 18687555:87166408760955:0:18687555 32409659:804112444869419:0:32409659 80985663:4458420111026852:0:80985663 61657971:15720184746905393:0:61657971 21620877:976106176482122466:0:21620877 92149039:1815947180936688646:0:92149039 16413343:93148843025990351227:0:16413343 241539998:7:34505714:0 553724115:65:8518832:35 148654342:330:450467:232 576600760:6601:87350:3410 234884438:84324:2785:42098 816647581:845079:966:301267 317436435:2424383:130:2266645 342031261:97245915:3:50293516 678697197:940150484:0:678697197 398983015:5995268728:0:398983015 461843182:27019709441:0:461843182 487632385:159898741040:0:487632385 576593978:9226752173660:0:576593978 719781897:12040248754000:0:719781897 504954340:231360953230610:0:504954340 324290141:5206286911543031:0:324290141 628522022:48573569746934682:0:628522022 100796922:488322639350384702:0:100796922 376682178:9130249333439273762:0:376682178 381394252:99037776588064723015:0:381394252 1085102340:1:1085102340:0 8512483854:55:154772433:39 3556988100:932:3816510:780 2022229405:2283:885777:514 4297445513:12264:350411:5009 7454932845:662000:11261:150845 6403673044:7947090:805:6265594 7386153529:23523213:313:23387860 2147729671:866090584:2:415548503 7465546697:4730638851:1:2734907846 5397361286:36434742382:0:5397361286 9904184726:283560758911:0:9904184726 7061677513:1592243347797:0:7061677513 8464970610:77360078485205:0:8464970610 7277282427:752538647923295:0:7277282427 7625083838:5321909164375635:0:7625083838 1501707071:22664145124272409:0:1501707071 1710959478:766301062337515181:0:1710959478 4900917534:5141803525329389219:0:4900917534 6724278238:28153126766136651497:0:6724278238 23472845057:8:2934105632:1 49788096210:71:701240791:49 89856106039:635:141505678:509 21558467507:1404:15355033:1175 28666537818:39827:719776:19066 79270455863:527756:150202:449151 26616721474:7758711:3430:4342744 65981371765:59326043:1112:10811949 21183908605:441168287:48:7830829 35756474766:3324970372:10:2506771046 44796120541:41822469141:1:2973651400 52136996614:515714992133:0:52136996614 16797619057:2726414496023:0:16797619057 31480994742:99390790697358:0:31480994742 47582791265:353250485585137:0:47582791265 69096624962:6965472809790151:0:69096624962 38700729904:95917404906224078:0:38700729904 84158762973:310092991299016114:0:84158762973 55631392877:8646492908705298455:0:55631392877 97661790609:27946911272321260928:0:97661790609 147733356815:6:24622226135:5 929784281268:58:16030763470:8 177296509142:258:687195771:224 801753739955:3503:228876317:1504 226377580403:49911:4535625:1028 431473211893:542225:795745:379268 280342055034:6791964:41275:3740934 665599705429:61470546:10827:58103887 560377686457:629894492:889:401483069 181473543575:5881125382:30:5039782115 631472384131:30560743199:20:20257520151 783086153013:800215962262:0:783086153013 954394972973:5893287801579:0:954394972973 895308919349:52360347803216:0:895308919349 693436399568:906439013840477:0:693436399568 413546830707:3184926099979518:0:413546830707 683608430192:30734267055303493:0:683608430192 609893378986:815219742538269958:0:609893378986 859069036850:1887808929737825386:0:859069036850 821054664946:23985684834984347150:0:821054664946 9400023950976:1:9400023950976:0 8439447423583:68:124109520935:3 2224144584533:458:4856210883:119 7399432632711:9457:782429167:392 2974196527921:81530:36479780:64521 8510790996128:592379:14367138:154826 7735109732622:5155064:1500487:3216454 5859664257522:12162758:481771:173104 4144232170133:202086694:20507:40336275 1827240340396:8514716234:214:5091066320 3284868271769:95152071316:34:49697847025 6543922986523:699493493432:9:248481545635 4795138517183:7387059276822:0:4795138517183 7264630163401:71378276832462:0:7264630163401 7468462026846:596027896723774:0:7468462026846 6142283940151:3213166952958483:0:6142283940151 7802251415656:57989933709313351:0:7802251415656 9407948307604:154172920242974832:0:9407948307604 9348641870843:5402977263622641773:0:9348641870843 5671120081396:78385087137566687061:0:5671120081396 33113571679488:7:4730510239926:6 29067877816927:88:330316793374:15 12598834992985:431:29231635714:251 50238168642790:7592:6617250874:7382 19003551955206:28852:658656313:12530 34545242568759:156422:220846444:105391 33568933439468:8284272:4052128:2908652 26161212216954:34787149:752036:23831590 83044235221333:520118706:159664:2146549 55691478895634:8690641767:6408:1846452698 73114547728246:95207665862:767:90268012092 66357425836812:978069515630:67:826768289602 87798815375485:6581753828794:13:2236015601163 36471759749463:53736151805767:0:36471759749463 71184175246144:581646390815651:0:71184175246144 54281523438393:3202960547020668:0:54281523438393 26003022079051:85491475881707584:0:26003022079051 12234838969506:763178636153826206:0:12234838969506 83694514363204:5296247038706373762:0:83694514363204 95036577985030:89303562224828917200:0:95036577985030 386554080086282:4:96638520021570:2 555442654222403:16:34715165888900:3 601214107045020:675:890687565992:420 789298027787145:1707:462389002804:717 785075545238810:54173:14492007923:26131 943984400785905:612806:1540429435:441295 601780961713314:5974938:100717524:299802 866107570737606:62701332:13813224:26723238 577876328822058:590045697:979375:324322683 951342598363119:7385543973:128811:3293657016 334933002458339:85480202965:3918:21567241469 370740439812905:353729972822:1048:31428295449 944194170298682:6063032240155:155:4424173074657 267817428827967:35941063361519:7:16229985297334 466165713063112:692101684311234:0:466165713063112 338409855360588:2756669038595046:0:338409855360588 488047298774032:73646994422383124:0:488047298774032 574887166019822:179755791036348114:0:574887166019822 249674598258396:3011039408609599222:0:249674598258396 334659872023898:40876605815916543140:0:334659872023898 9917691229548030:9:1101965692172003:3 3395730125084115:28:121276075895861:7 7492168836846444:794:9435980902829:218 2167468920849561:2899:747660890255:316 2689078408805738:45530:59061682600:27738 6104619178667311:777913:7847431754:617909 7324043712939896:6976819:1049768341:5852617 5074873799611388:45191410:112297310:21504288 8928112448793193:568414247:15707052:313623349 5689029942573434:4836787761:1176200:178085234 8015125213947007:39186359108:204538:25694714903 6555620701790984:273104626906:24004:17237539360 8400118752640485:3592645918088:2338:512596150741 2906665345396774:32515289313820:89:12804596466794 7795922566511643:658314600586189:11:554461960063564 2823609071734735:8478161336989857:0:2823609071734735 3712602526722755:56697350328782517:0:3712602526722755 5339224434671863:579255647165837833:0:5339224434671863 5620634593429099:7249439809329477277:0:5620634593429099 1355592260480799:70105974904095190803:0:1355592260480799 49211220109556295:8:6151402513694536:7 99382245339605360:30:3312741511320178:20 65135390277190255:794:82034496570768:463 25312398930569059:7585:3337165317148:1479 44624347560792506:60236:740825213506:45090 76159966178314687:699240:108918205735:173287 79350160799142604:4817818:16470144949:1241322 97550711974220665:53465677:1824548335:24222870 24752075989778890:616029215:40180035:570056365 43383416255497487:1634096419:26548871:1225904538 83449385052730371:85928758130:971146:15309813391 87044707767102300:396162197278:219719:345943377418 15677409029417437:6831272835602:2294:6469144546449 64191683561676130:16557609060194:3876:14390844364186 11900449842391213:239715150354351:49:154407475028014 84525852702634881:7107737533206691:11:6340739837361280 53248729343829207:58016657665747177:0:53248729343829207 19084457241118795:296188830002690941:0:19084457241118795 38518215045194577:1463031117216156915:0:38518215045194577 95941604506645605:36000726079517939239:0:95941604506645605 582966093218529977:3:194322031072843325:2 575953889379831214:96:5999519681039908:46 621557523994082627:199:3123404643186344:171 160157963334450039:3895:41118860933106:2169 461832382692724250:64011:7214890920196:58094 858501364869511583:776745:1105255089983:666248 570823650092962472:9287239:61463223902:4575894 440268371177706695:83501248:5272596299:11025543 705258301360858608:799997926:881575162:147744596 243362724609010669:2676153812:90937495:711029729 185087644961065001:89792075745:2061291:47356578206 333297256538063418:530953636430:627733:137480950228 272960644332062259:8867314657116:30782:6964556717547 918295619002877772:30243396661683:30363:15366164196843 721633882860909049:794932746061197:907:629882183403370 169389528431751055:9119393533116001:18:5240444835663037 870850773930362499:91793011343683701:9:44713671837209190 385437945847748791:899349609491523121:0:385437945847748791 731420154113178323:7817111681620133189:0:731420154113178323 115189439870468615:66913001836699189657:0:115189439870468615 6152567165728753787:8:769070895716094223:3 9662915319512269359:68:142101695875180431:51 9219331076799277042:639:14427748164005128:250 2707411073848918550:1587:1705993115216709:1367 9202718168197294795:32727:281196509554719:6082 9463740888646403780:607616:15575200272287:465988 3330126773566829009:9722185:342528636676:4971949 7531595898225639718:37347780:201661140186:9752638 6419038589354279195:183289716:35021269765:168042455 2262595813038116180:7424761451:304736499:2550216131 7130759690750270360:31464808485:226626508:18905949980 3552031724223072796:933761829237:3804001:792043695559 6746038478670589705:2533111559145:2663143:161714496970 6426908179601004516:66917599797775:96042:8059823097966 3316034503448939889:439873438503129:7538:268524012353487 2500986629586635195:8334475268911725:300:644048913117695 7181503793819621231:80693480636275009:88:80477497827420439 8880092664915659875:577963439727003305:15:210641069010610300 2647767568053861387:9483440349319738685:0:2647767568053861387 1141049451439372467:32067592292137537657:0:1141049451439372467 48381650365935706715:7:6911664337990815245:0 11443951369677816280:47:243488327014421622:46 71575729850152768604:436:164164518004937542:292 64962897906082089311:6594:9851819518665770:1931 84656283928071714152:75631:1119333129643555:5947 72160800405357420569:712145:101328802990061:429724 35293423780155717037:2375807:14855341271473:1263326 82038385938984403086:11239218:7299296618233:941292 11007810151186072725:409596969:26874735372:137785257 56182008551081388694:2463826139:22802748806:1807548660 24649963214397883391:97592831089:252579650:95429144541 46793473583322704008:782325092977:59813335:718183255713 56394698010479266599:4101201380506:13750775:597451874449 76643840958357018576:40503079789005:1892296:25085942013096 99280187265137504077:877546428662817:113133:727151227028416 48868369685289275957:4032097523101815:12119:3379802818379972 15701765108586655113:11977088300936683:1310:11779434359600383 92767908704599648797:317314859219406495:292:111969812532952257 10018105311046654961:4057927198723966611:2:1902250913598721739 86016853985828329221:84443436749010104153:1:1573417236818225068 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_div.t0000644403072340010010000001172114536617520023167 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3997; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_div'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 1; $y <= 24 ; ++ $y) { push @data, [ $x, $y, int($x / $y), $x % $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_div(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_div() in list context: $test", sub { plan tests => 13; cmp_ok(scalar @got, '==', 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' first output arg is not the second input arg"); } SKIP: { skip "$LIB doesn't use real objects", 1 if $LIB eq 'Math::BigInt::FastCalc'; is(ref($got[1]), $REF, "'$test' second output arg is a $REF"); } is($LIB->_check($got[1]), 0, "'$test' second output arg is valid"); is($LIB->_str($got[1]), $out1, "'$test' second output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[1]), refaddr($y), "'$test' second output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0, $out1) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_div(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_div() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_gcd.dat0000644403072340010010000004734714505066136023461 0ustar OSPJADomain Users0:0:0 0:1:1 0:2:2 0:3:3 0:4:4 0:5:5 0:6:6 0:7:7 0:8:8 0:9:9 0:10:10 0:11:11 0:12:12 0:13:13 0:14:14 0:15:15 0:16:16 0:17:17 0:18:18 0:19:19 0:20:20 0:21:21 0:22:22 0:23:23 0:24:24 0:25:25 0:26:26 0:27:27 0:28:28 0:29:29 0:30:30 0:31:31 0:32:32 0:33:33 0:34:34 0:35:35 0:36:36 0:37:37 0:38:38 0:39:39 0:40:40 0:41:41 0:42:42 0:43:43 0:44:44 0:45:45 0:46:46 0:47:47 0:48:48 0:49:49 0:50:50 1:0:1 1:1:1 1:2:1 1:3:1 1:4:1 1:5:1 1:6:1 1:7:1 1:8:1 1:9:1 1:10:1 1:11:1 1:12:1 1:13:1 1:14:1 1:15:1 1:16:1 1:17:1 1:18:1 1:19:1 1:20:1 1:21:1 1:22:1 1:23:1 1:24:1 1:25:1 1:26:1 1:27:1 1:28:1 1:29:1 1:30:1 1:31:1 1:32:1 1:33:1 1:34:1 1:35:1 1:36:1 1:37:1 1:38:1 1:39:1 1:40:1 1:41:1 1:42:1 1:43:1 1:44:1 1:45:1 1:46:1 1:47:1 1:48:1 1:49:1 1:50:1 2:0:2 2:1:1 2:2:2 2:3:1 2:4:2 2:5:1 2:6:2 2:7:1 2:8:2 2:9:1 2:10:2 2:11:1 2:12:2 2:13:1 2:14:2 2:15:1 2:16:2 2:17:1 2:18:2 2:19:1 2:20:2 2:21:1 2:22:2 2:23:1 2:24:2 2:25:1 2:26:2 2:27:1 2:28:2 2:29:1 2:30:2 2:31:1 2:32:2 2:33:1 2:34:2 2:35:1 2:36:2 2:37:1 2:38:2 2:39:1 2:40:2 2:41:1 2:42:2 2:43:1 2:44:2 2:45:1 2:46:2 2:47:1 2:48:2 2:49:1 2:50:2 3:0:3 3:1:1 3:2:1 3:3:3 3:4:1 3:5:1 3:6:3 3:7:1 3:8:1 3:9:3 3:10:1 3:11:1 3:12:3 3:13:1 3:14:1 3:15:3 3:16:1 3:17:1 3:18:3 3:19:1 3:20:1 3:21:3 3:22:1 3:23:1 3:24:3 3:25:1 3:26:1 3:27:3 3:28:1 3:29:1 3:30:3 3:31:1 3:32:1 3:33:3 3:34:1 3:35:1 3:36:3 3:37:1 3:38:1 3:39:3 3:40:1 3:41:1 3:42:3 3:43:1 3:44:1 3:45:3 3:46:1 3:47:1 3:48:3 3:49:1 3:50:1 4:0:4 4:1:1 4:2:2 4:3:1 4:4:4 4:5:1 4:6:2 4:7:1 4:8:4 4:9:1 4:10:2 4:11:1 4:12:4 4:13:1 4:14:2 4:15:1 4:16:4 4:17:1 4:18:2 4:19:1 4:20:4 4:21:1 4:22:2 4:23:1 4:24:4 4:25:1 4:26:2 4:27:1 4:28:4 4:29:1 4:30:2 4:31:1 4:32:4 4:33:1 4:34:2 4:35:1 4:36:4 4:37:1 4:38:2 4:39:1 4:40:4 4:41:1 4:42:2 4:43:1 4:44:4 4:45:1 4:46:2 4:47:1 4:48:4 4:49:1 4:50:2 5:0:5 5:1:1 5:2:1 5:3:1 5:4:1 5:5:5 5:6:1 5:7:1 5:8:1 5:9:1 5:10:5 5:11:1 5:12:1 5:13:1 5:14:1 5:15:5 5:16:1 5:17:1 5:18:1 5:19:1 5:20:5 5:21:1 5:22:1 5:23:1 5:24:1 5:25:5 5:26:1 5:27:1 5:28:1 5:29:1 5:30:5 5:31:1 5:32:1 5:33:1 5:34:1 5:35:5 5:36:1 5:37:1 5:38:1 5:39:1 5:40:5 5:41:1 5:42:1 5:43:1 5:44:1 5:45:5 5:46:1 5:47:1 5:48:1 5:49:1 5:50:5 6:0:6 6:1:1 6:2:2 6:3:3 6:4:2 6:5:1 6:6:6 6:7:1 6:8:2 6:9:3 6:10:2 6:11:1 6:12:6 6:13:1 6:14:2 6:15:3 6:16:2 6:17:1 6:18:6 6:19:1 6:20:2 6:21:3 6:22:2 6:23:1 6:24:6 6:25:1 6:26:2 6:27:3 6:28:2 6:29:1 6:30:6 6:31:1 6:32:2 6:33:3 6:34:2 6:35:1 6:36:6 6:37:1 6:38:2 6:39:3 6:40:2 6:41:1 6:42:6 6:43:1 6:44:2 6:45:3 6:46:2 6:47:1 6:48:6 6:49:1 6:50:2 7:0:7 7:1:1 7:2:1 7:3:1 7:4:1 7:5:1 7:6:1 7:7:7 7:8:1 7:9:1 7:10:1 7:11:1 7:12:1 7:13:1 7:14:7 7:15:1 7:16:1 7:17:1 7:18:1 7:19:1 7:20:1 7:21:7 7:22:1 7:23:1 7:24:1 7:25:1 7:26:1 7:27:1 7:28:7 7:29:1 7:30:1 7:31:1 7:32:1 7:33:1 7:34:1 7:35:7 7:36:1 7:37:1 7:38:1 7:39:1 7:40:1 7:41:1 7:42:7 7:43:1 7:44:1 7:45:1 7:46:1 7:47:1 7:48:1 7:49:7 7:50:1 8:0:8 8:1:1 8:2:2 8:3:1 8:4:4 8:5:1 8:6:2 8:7:1 8:8:8 8:9:1 8:10:2 8:11:1 8:12:4 8:13:1 8:14:2 8:15:1 8:16:8 8:17:1 8:18:2 8:19:1 8:20:4 8:21:1 8:22:2 8:23:1 8:24:8 8:25:1 8:26:2 8:27:1 8:28:4 8:29:1 8:30:2 8:31:1 8:32:8 8:33:1 8:34:2 8:35:1 8:36:4 8:37:1 8:38:2 8:39:1 8:40:8 8:41:1 8:42:2 8:43:1 8:44:4 8:45:1 8:46:2 8:47:1 8:48:8 8:49:1 8:50:2 9:0:9 9:1:1 9:2:1 9:3:3 9:4:1 9:5:1 9:6:3 9:7:1 9:8:1 9:9:9 9:10:1 9:11:1 9:12:3 9:13:1 9:14:1 9:15:3 9:16:1 9:17:1 9:18:9 9:19:1 9:20:1 9:21:3 9:22:1 9:23:1 9:24:3 9:25:1 9:26:1 9:27:9 9:28:1 9:29:1 9:30:3 9:31:1 9:32:1 9:33:3 9:34:1 9:35:1 9:36:9 9:37:1 9:38:1 9:39:3 9:40:1 9:41:1 9:42:3 9:43:1 9:44:1 9:45:9 9:46:1 9:47:1 9:48:3 9:49:1 9:50:1 10:0:10 10:1:1 10:2:2 10:3:1 10:4:2 10:5:5 10:6:2 10:7:1 10:8:2 10:9:1 10:10:10 10:11:1 10:12:2 10:13:1 10:14:2 10:15:5 10:16:2 10:17:1 10:18:2 10:19:1 10:20:10 10:21:1 10:22:2 10:23:1 10:24:2 10:25:5 10:26:2 10:27:1 10:28:2 10:29:1 10:30:10 10:31:1 10:32:2 10:33:1 10:34:2 10:35:5 10:36:2 10:37:1 10:38:2 10:39:1 10:40:10 10:41:1 10:42:2 10:43:1 10:44:2 10:45:5 10:46:2 10:47:1 10:48:2 10:49:1 10:50:10 11:0:11 11:1:1 11:2:1 11:3:1 11:4:1 11:5:1 11:6:1 11:7:1 11:8:1 11:9:1 11:10:1 11:11:11 11:12:1 11:13:1 11:14:1 11:15:1 11:16:1 11:17:1 11:18:1 11:19:1 11:20:1 11:21:1 11:22:11 11:23:1 11:24:1 11:25:1 11:26:1 11:27:1 11:28:1 11:29:1 11:30:1 11:31:1 11:32:1 11:33:11 11:34:1 11:35:1 11:36:1 11:37:1 11:38:1 11:39:1 11:40:1 11:41:1 11:42:1 11:43:1 11:44:11 11:45:1 11:46:1 11:47:1 11:48:1 11:49:1 11:50:1 12:0:12 12:1:1 12:2:2 12:3:3 12:4:4 12:5:1 12:6:6 12:7:1 12:8:4 12:9:3 12:10:2 12:11:1 12:12:12 12:13:1 12:14:2 12:15:3 12:16:4 12:17:1 12:18:6 12:19:1 12:20:4 12:21:3 12:22:2 12:23:1 12:24:12 12:25:1 12:26:2 12:27:3 12:28:4 12:29:1 12:30:6 12:31:1 12:32:4 12:33:3 12:34:2 12:35:1 12:36:12 12:37:1 12:38:2 12:39:3 12:40:4 12:41:1 12:42:6 12:43:1 12:44:4 12:45:3 12:46:2 12:47:1 12:48:12 12:49:1 12:50:2 13:0:13 13:1:1 13:2:1 13:3:1 13:4:1 13:5:1 13:6:1 13:7:1 13:8:1 13:9:1 13:10:1 13:11:1 13:12:1 13:13:13 13:14:1 13:15:1 13:16:1 13:17:1 13:18:1 13:19:1 13:20:1 13:21:1 13:22:1 13:23:1 13:24:1 13:25:1 13:26:13 13:27:1 13:28:1 13:29:1 13:30:1 13:31:1 13:32:1 13:33:1 13:34:1 13:35:1 13:36:1 13:37:1 13:38:1 13:39:13 13:40:1 13:41:1 13:42:1 13:43:1 13:44:1 13:45:1 13:46:1 13:47:1 13:48:1 13:49:1 13:50:1 14:0:14 14:1:1 14:2:2 14:3:1 14:4:2 14:5:1 14:6:2 14:7:7 14:8:2 14:9:1 14:10:2 14:11:1 14:12:2 14:13:1 14:14:14 14:15:1 14:16:2 14:17:1 14:18:2 14:19:1 14:20:2 14:21:7 14:22:2 14:23:1 14:24:2 14:25:1 14:26:2 14:27:1 14:28:14 14:29:1 14:30:2 14:31:1 14:32:2 14:33:1 14:34:2 14:35:7 14:36:2 14:37:1 14:38:2 14:39:1 14:40:2 14:41:1 14:42:14 14:43:1 14:44:2 14:45:1 14:46:2 14:47:1 14:48:2 14:49:7 14:50:2 15:0:15 15:1:1 15:2:1 15:3:3 15:4:1 15:5:5 15:6:3 15:7:1 15:8:1 15:9:3 15:10:5 15:11:1 15:12:3 15:13:1 15:14:1 15:15:15 15:16:1 15:17:1 15:18:3 15:19:1 15:20:5 15:21:3 15:22:1 15:23:1 15:24:3 15:25:5 15:26:1 15:27:3 15:28:1 15:29:1 15:30:15 15:31:1 15:32:1 15:33:3 15:34:1 15:35:5 15:36:3 15:37:1 15:38:1 15:39:3 15:40:5 15:41:1 15:42:3 15:43:1 15:44:1 15:45:15 15:46:1 15:47:1 15:48:3 15:49:1 15:50:5 16:0:16 16:1:1 16:2:2 16:3:1 16:4:4 16:5:1 16:6:2 16:7:1 16:8:8 16:9:1 16:10:2 16:11:1 16:12:4 16:13:1 16:14:2 16:15:1 16:16:16 16:17:1 16:18:2 16:19:1 16:20:4 16:21:1 16:22:2 16:23:1 16:24:8 16:25:1 16:26:2 16:27:1 16:28:4 16:29:1 16:30:2 16:31:1 16:32:16 16:33:1 16:34:2 16:35:1 16:36:4 16:37:1 16:38:2 16:39:1 16:40:8 16:41:1 16:42:2 16:43:1 16:44:4 16:45:1 16:46:2 16:47:1 16:48:16 16:49:1 16:50:2 17:0:17 17:1:1 17:2:1 17:3:1 17:4:1 17:5:1 17:6:1 17:7:1 17:8:1 17:9:1 17:10:1 17:11:1 17:12:1 17:13:1 17:14:1 17:15:1 17:16:1 17:17:17 17:18:1 17:19:1 17:20:1 17:21:1 17:22:1 17:23:1 17:24:1 17:25:1 17:26:1 17:27:1 17:28:1 17:29:1 17:30:1 17:31:1 17:32:1 17:33:1 17:34:17 17:35:1 17:36:1 17:37:1 17:38:1 17:39:1 17:40:1 17:41:1 17:42:1 17:43:1 17:44:1 17:45:1 17:46:1 17:47:1 17:48:1 17:49:1 17:50:1 18:0:18 18:1:1 18:2:2 18:3:3 18:4:2 18:5:1 18:6:6 18:7:1 18:8:2 18:9:9 18:10:2 18:11:1 18:12:6 18:13:1 18:14:2 18:15:3 18:16:2 18:17:1 18:18:18 18:19:1 18:20:2 18:21:3 18:22:2 18:23:1 18:24:6 18:25:1 18:26:2 18:27:9 18:28:2 18:29:1 18:30:6 18:31:1 18:32:2 18:33:3 18:34:2 18:35:1 18:36:18 18:37:1 18:38:2 18:39:3 18:40:2 18:41:1 18:42:6 18:43:1 18:44:2 18:45:9 18:46:2 18:47:1 18:48:6 18:49:1 18:50:2 19:0:19 19:1:1 19:2:1 19:3:1 19:4:1 19:5:1 19:6:1 19:7:1 19:8:1 19:9:1 19:10:1 19:11:1 19:12:1 19:13:1 19:14:1 19:15:1 19:16:1 19:17:1 19:18:1 19:19:19 19:20:1 19:21:1 19:22:1 19:23:1 19:24:1 19:25:1 19:26:1 19:27:1 19:28:1 19:29:1 19:30:1 19:31:1 19:32:1 19:33:1 19:34:1 19:35:1 19:36:1 19:37:1 19:38:19 19:39:1 19:40:1 19:41:1 19:42:1 19:43:1 19:44:1 19:45:1 19:46:1 19:47:1 19:48:1 19:49:1 19:50:1 20:0:20 20:1:1 20:2:2 20:3:1 20:4:4 20:5:5 20:6:2 20:7:1 20:8:4 20:9:1 20:10:10 20:11:1 20:12:4 20:13:1 20:14:2 20:15:5 20:16:4 20:17:1 20:18:2 20:19:1 20:20:20 20:21:1 20:22:2 20:23:1 20:24:4 20:25:5 20:26:2 20:27:1 20:28:4 20:29:1 20:30:10 20:31:1 20:32:4 20:33:1 20:34:2 20:35:5 20:36:4 20:37:1 20:38:2 20:39:1 20:40:20 20:41:1 20:42:2 20:43:1 20:44:4 20:45:5 20:46:2 20:47:1 20:48:4 20:49:1 20:50:10 21:0:21 21:1:1 21:2:1 21:3:3 21:4:1 21:5:1 21:6:3 21:7:7 21:8:1 21:9:3 21:10:1 21:11:1 21:12:3 21:13:1 21:14:7 21:15:3 21:16:1 21:17:1 21:18:3 21:19:1 21:20:1 21:21:21 21:22:1 21:23:1 21:24:3 21:25:1 21:26:1 21:27:3 21:28:7 21:29:1 21:30:3 21:31:1 21:32:1 21:33:3 21:34:1 21:35:7 21:36:3 21:37:1 21:38:1 21:39:3 21:40:1 21:41:1 21:42:21 21:43:1 21:44:1 21:45:3 21:46:1 21:47:1 21:48:3 21:49:7 21:50:1 22:0:22 22:1:1 22:2:2 22:3:1 22:4:2 22:5:1 22:6:2 22:7:1 22:8:2 22:9:1 22:10:2 22:11:11 22:12:2 22:13:1 22:14:2 22:15:1 22:16:2 22:17:1 22:18:2 22:19:1 22:20:2 22:21:1 22:22:22 22:23:1 22:24:2 22:25:1 22:26:2 22:27:1 22:28:2 22:29:1 22:30:2 22:31:1 22:32:2 22:33:11 22:34:2 22:35:1 22:36:2 22:37:1 22:38:2 22:39:1 22:40:2 22:41:1 22:42:2 22:43:1 22:44:22 22:45:1 22:46:2 22:47:1 22:48:2 22:49:1 22:50:2 23:0:23 23:1:1 23:2:1 23:3:1 23:4:1 23:5:1 23:6:1 23:7:1 23:8:1 23:9:1 23:10:1 23:11:1 23:12:1 23:13:1 23:14:1 23:15:1 23:16:1 23:17:1 23:18:1 23:19:1 23:20:1 23:21:1 23:22:1 23:23:23 23:24:1 23:25:1 23:26:1 23:27:1 23:28:1 23:29:1 23:30:1 23:31:1 23:32:1 23:33:1 23:34:1 23:35:1 23:36:1 23:37:1 23:38:1 23:39:1 23:40:1 23:41:1 23:42:1 23:43:1 23:44:1 23:45:1 23:46:23 23:47:1 23:48:1 23:49:1 23:50:1 24:0:24 24:1:1 24:2:2 24:3:3 24:4:4 24:5:1 24:6:6 24:7:1 24:8:8 24:9:3 24:10:2 24:11:1 24:12:12 24:13:1 24:14:2 24:15:3 24:16:8 24:17:1 24:18:6 24:19:1 24:20:4 24:21:3 24:22:2 24:23:1 24:24:24 24:25:1 24:26:2 24:27:3 24:28:4 24:29:1 24:30:6 24:31:1 24:32:8 24:33:3 24:34:2 24:35:1 24:36:12 24:37:1 24:38:2 24:39:3 24:40:8 24:41:1 24:42:6 24:43:1 24:44:4 24:45:3 24:46:2 24:47:1 24:48:24 24:49:1 24:50:2 25:0:25 25:1:1 25:2:1 25:3:1 25:4:1 25:5:5 25:6:1 25:7:1 25:8:1 25:9:1 25:10:5 25:11:1 25:12:1 25:13:1 25:14:1 25:15:5 25:16:1 25:17:1 25:18:1 25:19:1 25:20:5 25:21:1 25:22:1 25:23:1 25:24:1 25:25:25 25:26:1 25:27:1 25:28:1 25:29:1 25:30:5 25:31:1 25:32:1 25:33:1 25:34:1 25:35:5 25:36:1 25:37:1 25:38:1 25:39:1 25:40:5 25:41:1 25:42:1 25:43:1 25:44:1 25:45:5 25:46:1 25:47:1 25:48:1 25:49:1 25:50:25 26:0:26 26:1:1 26:2:2 26:3:1 26:4:2 26:5:1 26:6:2 26:7:1 26:8:2 26:9:1 26:10:2 26:11:1 26:12:2 26:13:13 26:14:2 26:15:1 26:16:2 26:17:1 26:18:2 26:19:1 26:20:2 26:21:1 26:22:2 26:23:1 26:24:2 26:25:1 26:26:26 26:27:1 26:28:2 26:29:1 26:30:2 26:31:1 26:32:2 26:33:1 26:34:2 26:35:1 26:36:2 26:37:1 26:38:2 26:39:13 26:40:2 26:41:1 26:42:2 26:43:1 26:44:2 26:45:1 26:46:2 26:47:1 26:48:2 26:49:1 26:50:2 27:0:27 27:1:1 27:2:1 27:3:3 27:4:1 27:5:1 27:6:3 27:7:1 27:8:1 27:9:9 27:10:1 27:11:1 27:12:3 27:13:1 27:14:1 27:15:3 27:16:1 27:17:1 27:18:9 27:19:1 27:20:1 27:21:3 27:22:1 27:23:1 27:24:3 27:25:1 27:26:1 27:27:27 27:28:1 27:29:1 27:30:3 27:31:1 27:32:1 27:33:3 27:34:1 27:35:1 27:36:9 27:37:1 27:38:1 27:39:3 27:40:1 27:41:1 27:42:3 27:43:1 27:44:1 27:45:9 27:46:1 27:47:1 27:48:3 27:49:1 27:50:1 28:0:28 28:1:1 28:2:2 28:3:1 28:4:4 28:5:1 28:6:2 28:7:7 28:8:4 28:9:1 28:10:2 28:11:1 28:12:4 28:13:1 28:14:14 28:15:1 28:16:4 28:17:1 28:18:2 28:19:1 28:20:4 28:21:7 28:22:2 28:23:1 28:24:4 28:25:1 28:26:2 28:27:1 28:28:28 28:29:1 28:30:2 28:31:1 28:32:4 28:33:1 28:34:2 28:35:7 28:36:4 28:37:1 28:38:2 28:39:1 28:40:4 28:41:1 28:42:14 28:43:1 28:44:4 28:45:1 28:46:2 28:47:1 28:48:4 28:49:7 28:50:2 29:0:29 29:1:1 29:2:1 29:3:1 29:4:1 29:5:1 29:6:1 29:7:1 29:8:1 29:9:1 29:10:1 29:11:1 29:12:1 29:13:1 29:14:1 29:15:1 29:16:1 29:17:1 29:18:1 29:19:1 29:20:1 29:21:1 29:22:1 29:23:1 29:24:1 29:25:1 29:26:1 29:27:1 29:28:1 29:29:29 29:30:1 29:31:1 29:32:1 29:33:1 29:34:1 29:35:1 29:36:1 29:37:1 29:38:1 29:39:1 29:40:1 29:41:1 29:42:1 29:43:1 29:44:1 29:45:1 29:46:1 29:47:1 29:48:1 29:49:1 29:50:1 30:0:30 30:1:1 30:2:2 30:3:3 30:4:2 30:5:5 30:6:6 30:7:1 30:8:2 30:9:3 30:10:10 30:11:1 30:12:6 30:13:1 30:14:2 30:15:15 30:16:2 30:17:1 30:18:6 30:19:1 30:20:10 30:21:3 30:22:2 30:23:1 30:24:6 30:25:5 30:26:2 30:27:3 30:28:2 30:29:1 30:30:30 30:31:1 30:32:2 30:33:3 30:34:2 30:35:5 30:36:6 30:37:1 30:38:2 30:39:3 30:40:10 30:41:1 30:42:6 30:43:1 30:44:2 30:45:15 30:46:2 30:47:1 30:48:6 30:49:1 30:50:10 31:0:31 31:1:1 31:2:1 31:3:1 31:4:1 31:5:1 31:6:1 31:7:1 31:8:1 31:9:1 31:10:1 31:11:1 31:12:1 31:13:1 31:14:1 31:15:1 31:16:1 31:17:1 31:18:1 31:19:1 31:20:1 31:21:1 31:22:1 31:23:1 31:24:1 31:25:1 31:26:1 31:27:1 31:28:1 31:29:1 31:30:1 31:31:31 31:32:1 31:33:1 31:34:1 31:35:1 31:36:1 31:37:1 31:38:1 31:39:1 31:40:1 31:41:1 31:42:1 31:43:1 31:44:1 31:45:1 31:46:1 31:47:1 31:48:1 31:49:1 31:50:1 32:0:32 32:1:1 32:2:2 32:3:1 32:4:4 32:5:1 32:6:2 32:7:1 32:8:8 32:9:1 32:10:2 32:11:1 32:12:4 32:13:1 32:14:2 32:15:1 32:16:16 32:17:1 32:18:2 32:19:1 32:20:4 32:21:1 32:22:2 32:23:1 32:24:8 32:25:1 32:26:2 32:27:1 32:28:4 32:29:1 32:30:2 32:31:1 32:32:32 32:33:1 32:34:2 32:35:1 32:36:4 32:37:1 32:38:2 32:39:1 32:40:8 32:41:1 32:42:2 32:43:1 32:44:4 32:45:1 32:46:2 32:47:1 32:48:16 32:49:1 32:50:2 33:0:33 33:1:1 33:2:1 33:3:3 33:4:1 33:5:1 33:6:3 33:7:1 33:8:1 33:9:3 33:10:1 33:11:11 33:12:3 33:13:1 33:14:1 33:15:3 33:16:1 33:17:1 33:18:3 33:19:1 33:20:1 33:21:3 33:22:11 33:23:1 33:24:3 33:25:1 33:26:1 33:27:3 33:28:1 33:29:1 33:30:3 33:31:1 33:32:1 33:33:33 33:34:1 33:35:1 33:36:3 33:37:1 33:38:1 33:39:3 33:40:1 33:41:1 33:42:3 33:43:1 33:44:11 33:45:3 33:46:1 33:47:1 33:48:3 33:49:1 33:50:1 34:0:34 34:1:1 34:2:2 34:3:1 34:4:2 34:5:1 34:6:2 34:7:1 34:8:2 34:9:1 34:10:2 34:11:1 34:12:2 34:13:1 34:14:2 34:15:1 34:16:2 34:17:17 34:18:2 34:19:1 34:20:2 34:21:1 34:22:2 34:23:1 34:24:2 34:25:1 34:26:2 34:27:1 34:28:2 34:29:1 34:30:2 34:31:1 34:32:2 34:33:1 34:34:34 34:35:1 34:36:2 34:37:1 34:38:2 34:39:1 34:40:2 34:41:1 34:42:2 34:43:1 34:44:2 34:45:1 34:46:2 34:47:1 34:48:2 34:49:1 34:50:2 35:0:35 35:1:1 35:2:1 35:3:1 35:4:1 35:5:5 35:6:1 35:7:7 35:8:1 35:9:1 35:10:5 35:11:1 35:12:1 35:13:1 35:14:7 35:15:5 35:16:1 35:17:1 35:18:1 35:19:1 35:20:5 35:21:7 35:22:1 35:23:1 35:24:1 35:25:5 35:26:1 35:27:1 35:28:7 35:29:1 35:30:5 35:31:1 35:32:1 35:33:1 35:34:1 35:35:35 35:36:1 35:37:1 35:38:1 35:39:1 35:40:5 35:41:1 35:42:7 35:43:1 35:44:1 35:45:5 35:46:1 35:47:1 35:48:1 35:49:7 35:50:5 36:0:36 36:1:1 36:2:2 36:3:3 36:4:4 36:5:1 36:6:6 36:7:1 36:8:4 36:9:9 36:10:2 36:11:1 36:12:12 36:13:1 36:14:2 36:15:3 36:16:4 36:17:1 36:18:18 36:19:1 36:20:4 36:21:3 36:22:2 36:23:1 36:24:12 36:25:1 36:26:2 36:27:9 36:28:4 36:29:1 36:30:6 36:31:1 36:32:4 36:33:3 36:34:2 36:35:1 36:36:36 36:37:1 36:38:2 36:39:3 36:40:4 36:41:1 36:42:6 36:43:1 36:44:4 36:45:9 36:46:2 36:47:1 36:48:12 36:49:1 36:50:2 37:0:37 37:1:1 37:2:1 37:3:1 37:4:1 37:5:1 37:6:1 37:7:1 37:8:1 37:9:1 37:10:1 37:11:1 37:12:1 37:13:1 37:14:1 37:15:1 37:16:1 37:17:1 37:18:1 37:19:1 37:20:1 37:21:1 37:22:1 37:23:1 37:24:1 37:25:1 37:26:1 37:27:1 37:28:1 37:29:1 37:30:1 37:31:1 37:32:1 37:33:1 37:34:1 37:35:1 37:36:1 37:37:37 37:38:1 37:39:1 37:40:1 37:41:1 37:42:1 37:43:1 37:44:1 37:45:1 37:46:1 37:47:1 37:48:1 37:49:1 37:50:1 38:0:38 38:1:1 38:2:2 38:3:1 38:4:2 38:5:1 38:6:2 38:7:1 38:8:2 38:9:1 38:10:2 38:11:1 38:12:2 38:13:1 38:14:2 38:15:1 38:16:2 38:17:1 38:18:2 38:19:19 38:20:2 38:21:1 38:22:2 38:23:1 38:24:2 38:25:1 38:26:2 38:27:1 38:28:2 38:29:1 38:30:2 38:31:1 38:32:2 38:33:1 38:34:2 38:35:1 38:36:2 38:37:1 38:38:38 38:39:1 38:40:2 38:41:1 38:42:2 38:43:1 38:44:2 38:45:1 38:46:2 38:47:1 38:48:2 38:49:1 38:50:2 39:0:39 39:1:1 39:2:1 39:3:3 39:4:1 39:5:1 39:6:3 39:7:1 39:8:1 39:9:3 39:10:1 39:11:1 39:12:3 39:13:13 39:14:1 39:15:3 39:16:1 39:17:1 39:18:3 39:19:1 39:20:1 39:21:3 39:22:1 39:23:1 39:24:3 39:25:1 39:26:13 39:27:3 39:28:1 39:29:1 39:30:3 39:31:1 39:32:1 39:33:3 39:34:1 39:35:1 39:36:3 39:37:1 39:38:1 39:39:39 39:40:1 39:41:1 39:42:3 39:43:1 39:44:1 39:45:3 39:46:1 39:47:1 39:48:3 39:49:1 39:50:1 40:0:40 40:1:1 40:2:2 40:3:1 40:4:4 40:5:5 40:6:2 40:7:1 40:8:8 40:9:1 40:10:10 40:11:1 40:12:4 40:13:1 40:14:2 40:15:5 40:16:8 40:17:1 40:18:2 40:19:1 40:20:20 40:21:1 40:22:2 40:23:1 40:24:8 40:25:5 40:26:2 40:27:1 40:28:4 40:29:1 40:30:10 40:31:1 40:32:8 40:33:1 40:34:2 40:35:5 40:36:4 40:37:1 40:38:2 40:39:1 40:40:40 40:41:1 40:42:2 40:43:1 40:44:4 40:45:5 40:46:2 40:47:1 40:48:8 40:49:1 40:50:10 41:0:41 41:1:1 41:2:1 41:3:1 41:4:1 41:5:1 41:6:1 41:7:1 41:8:1 41:9:1 41:10:1 41:11:1 41:12:1 41:13:1 41:14:1 41:15:1 41:16:1 41:17:1 41:18:1 41:19:1 41:20:1 41:21:1 41:22:1 41:23:1 41:24:1 41:25:1 41:26:1 41:27:1 41:28:1 41:29:1 41:30:1 41:31:1 41:32:1 41:33:1 41:34:1 41:35:1 41:36:1 41:37:1 41:38:1 41:39:1 41:40:1 41:41:41 41:42:1 41:43:1 41:44:1 41:45:1 41:46:1 41:47:1 41:48:1 41:49:1 41:50:1 42:0:42 42:1:1 42:2:2 42:3:3 42:4:2 42:5:1 42:6:6 42:7:7 42:8:2 42:9:3 42:10:2 42:11:1 42:12:6 42:13:1 42:14:14 42:15:3 42:16:2 42:17:1 42:18:6 42:19:1 42:20:2 42:21:21 42:22:2 42:23:1 42:24:6 42:25:1 42:26:2 42:27:3 42:28:14 42:29:1 42:30:6 42:31:1 42:32:2 42:33:3 42:34:2 42:35:7 42:36:6 42:37:1 42:38:2 42:39:3 42:40:2 42:41:1 42:42:42 42:43:1 42:44:2 42:45:3 42:46:2 42:47:1 42:48:6 42:49:7 42:50:2 43:0:43 43:1:1 43:2:1 43:3:1 43:4:1 43:5:1 43:6:1 43:7:1 43:8:1 43:9:1 43:10:1 43:11:1 43:12:1 43:13:1 43:14:1 43:15:1 43:16:1 43:17:1 43:18:1 43:19:1 43:20:1 43:21:1 43:22:1 43:23:1 43:24:1 43:25:1 43:26:1 43:27:1 43:28:1 43:29:1 43:30:1 43:31:1 43:32:1 43:33:1 43:34:1 43:35:1 43:36:1 43:37:1 43:38:1 43:39:1 43:40:1 43:41:1 43:42:1 43:43:43 43:44:1 43:45:1 43:46:1 43:47:1 43:48:1 43:49:1 43:50:1 44:0:44 44:1:1 44:2:2 44:3:1 44:4:4 44:5:1 44:6:2 44:7:1 44:8:4 44:9:1 44:10:2 44:11:11 44:12:4 44:13:1 44:14:2 44:15:1 44:16:4 44:17:1 44:18:2 44:19:1 44:20:4 44:21:1 44:22:22 44:23:1 44:24:4 44:25:1 44:26:2 44:27:1 44:28:4 44:29:1 44:30:2 44:31:1 44:32:4 44:33:11 44:34:2 44:35:1 44:36:4 44:37:1 44:38:2 44:39:1 44:40:4 44:41:1 44:42:2 44:43:1 44:44:44 44:45:1 44:46:2 44:47:1 44:48:4 44:49:1 44:50:2 45:0:45 45:1:1 45:2:1 45:3:3 45:4:1 45:5:5 45:6:3 45:7:1 45:8:1 45:9:9 45:10:5 45:11:1 45:12:3 45:13:1 45:14:1 45:15:15 45:16:1 45:17:1 45:18:9 45:19:1 45:20:5 45:21:3 45:22:1 45:23:1 45:24:3 45:25:5 45:26:1 45:27:9 45:28:1 45:29:1 45:30:15 45:31:1 45:32:1 45:33:3 45:34:1 45:35:5 45:36:9 45:37:1 45:38:1 45:39:3 45:40:5 45:41:1 45:42:3 45:43:1 45:44:1 45:45:45 45:46:1 45:47:1 45:48:3 45:49:1 45:50:5 46:0:46 46:1:1 46:2:2 46:3:1 46:4:2 46:5:1 46:6:2 46:7:1 46:8:2 46:9:1 46:10:2 46:11:1 46:12:2 46:13:1 46:14:2 46:15:1 46:16:2 46:17:1 46:18:2 46:19:1 46:20:2 46:21:1 46:22:2 46:23:23 46:24:2 46:25:1 46:26:2 46:27:1 46:28:2 46:29:1 46:30:2 46:31:1 46:32:2 46:33:1 46:34:2 46:35:1 46:36:2 46:37:1 46:38:2 46:39:1 46:40:2 46:41:1 46:42:2 46:43:1 46:44:2 46:45:1 46:46:46 46:47:1 46:48:2 46:49:1 46:50:2 47:0:47 47:1:1 47:2:1 47:3:1 47:4:1 47:5:1 47:6:1 47:7:1 47:8:1 47:9:1 47:10:1 47:11:1 47:12:1 47:13:1 47:14:1 47:15:1 47:16:1 47:17:1 47:18:1 47:19:1 47:20:1 47:21:1 47:22:1 47:23:1 47:24:1 47:25:1 47:26:1 47:27:1 47:28:1 47:29:1 47:30:1 47:31:1 47:32:1 47:33:1 47:34:1 47:35:1 47:36:1 47:37:1 47:38:1 47:39:1 47:40:1 47:41:1 47:42:1 47:43:1 47:44:1 47:45:1 47:46:1 47:47:47 47:48:1 47:49:1 47:50:1 48:0:48 48:1:1 48:2:2 48:3:3 48:4:4 48:5:1 48:6:6 48:7:1 48:8:8 48:9:3 48:10:2 48:11:1 48:12:12 48:13:1 48:14:2 48:15:3 48:16:16 48:17:1 48:18:6 48:19:1 48:20:4 48:21:3 48:22:2 48:23:1 48:24:24 48:25:1 48:26:2 48:27:3 48:28:4 48:29:1 48:30:6 48:31:1 48:32:16 48:33:3 48:34:2 48:35:1 48:36:12 48:37:1 48:38:2 48:39:3 48:40:8 48:41:1 48:42:6 48:43:1 48:44:4 48:45:3 48:46:2 48:47:1 48:48:48 48:49:1 48:50:2 49:0:49 49:1:1 49:2:1 49:3:1 49:4:1 49:5:1 49:6:1 49:7:7 49:8:1 49:9:1 49:10:1 49:11:1 49:12:1 49:13:1 49:14:7 49:15:1 49:16:1 49:17:1 49:18:1 49:19:1 49:20:1 49:21:7 49:22:1 49:23:1 49:24:1 49:25:1 49:26:1 49:27:1 49:28:7 49:29:1 49:30:1 49:31:1 49:32:1 49:33:1 49:34:1 49:35:7 49:36:1 49:37:1 49:38:1 49:39:1 49:40:1 49:41:1 49:42:7 49:43:1 49:44:1 49:45:1 49:46:1 49:47:1 49:48:1 49:49:49 49:50:1 50:0:50 50:1:1 50:2:2 50:3:1 50:4:2 50:5:5 50:6:2 50:7:1 50:8:2 50:9:1 50:10:10 50:11:1 50:12:2 50:13:1 50:14:2 50:15:5 50:16:2 50:17:1 50:18:2 50:19:1 50:20:10 50:21:1 50:22:2 50:23:1 50:24:2 50:25:25 50:26:2 50:27:1 50:28:2 50:29:1 50:30:10 50:31:1 50:32:2 50:33:1 50:34:2 50:35:5 50:36:2 50:37:1 50:38:2 50:39:1 50:40:10 50:41:1 50:42:2 50:43:1 50:44:2 50:45:5 50:46:2 50:47:1 50:48:2 50:49:1 50:50:50 # # Two consecutive Fibonacci numbers are a worst case scenario for # Euclid's algorithm. # 420196140727489673:679891637638612258:1 394810887814999156320699623170776339:638817435613190341905763972389505493:1 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_gcd.t0000644403072340010010000001066414536617520023147 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 10413; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_gcd'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_gcd(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_gcd() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); ok($strx eq $out0 || $strx eq $in0, "'$test' first input arg has the right value") or diag(" got: $strx\n", " expected: ", $out0 eq $in0 ? $out0 : "$out0 or $in0"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($got); my ($x, $y); my ($xo, $yo); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_gcd(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_gcd() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); ok($strx eq $out0 || $strx eq $in0, "'$test' first input arg has the right value") or diag(" got: $strx\n", " expected: ", $out0 eq $in0 ? $out0 : "$out0 or $in0"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_lcm.dat0000644403072340010010000024572014505066136023472 0ustar OSPJADomain Users# # Small numbers # 0:1:0 0:2:0 0:3:0 0:4:0 0:5:0 0:6:0 0:7:0 0:8:0 0:9:0 0:10:0 0:11:0 0:12:0 0:13:0 0:14:0 0:15:0 0:16:0 0:17:0 0:18:0 0:19:0 0:20:0 0:21:0 0:22:0 0:23:0 0:24:0 0:25:0 0:26:0 0:27:0 0:28:0 0:29:0 0:30:0 0:31:0 0:32:0 0:33:0 0:34:0 0:35:0 0:36:0 0:37:0 0:38:0 0:39:0 0:40:0 0:41:0 0:42:0 0:43:0 0:44:0 0:45:0 0:46:0 0:47:0 0:48:0 0:49:0 0:50:0 1:1:1 1:2:2 1:3:3 1:4:4 1:5:5 1:6:6 1:7:7 1:8:8 1:9:9 1:10:10 1:11:11 1:12:12 1:13:13 1:14:14 1:15:15 1:16:16 1:17:17 1:18:18 1:19:19 1:20:20 1:21:21 1:22:22 1:23:23 1:24:24 1:25:25 1:26:26 1:27:27 1:28:28 1:29:29 1:30:30 1:31:31 1:32:32 1:33:33 1:34:34 1:35:35 1:36:36 1:37:37 1:38:38 1:39:39 1:40:40 1:41:41 1:42:42 1:43:43 1:44:44 1:45:45 1:46:46 1:47:47 1:48:48 1:49:49 1:50:50 2:1:2 2:2:2 2:3:6 2:4:4 2:5:10 2:6:6 2:7:14 2:8:8 2:9:18 2:10:10 2:11:22 2:12:12 2:13:26 2:14:14 2:15:30 2:16:16 2:17:34 2:18:18 2:19:38 2:20:20 2:21:42 2:22:22 2:23:46 2:24:24 2:25:50 2:26:26 2:27:54 2:28:28 2:29:58 2:30:30 2:31:62 2:32:32 2:33:66 2:34:34 2:35:70 2:36:36 2:37:74 2:38:38 2:39:78 2:40:40 2:41:82 2:42:42 2:43:86 2:44:44 2:45:90 2:46:46 2:47:94 2:48:48 2:49:98 2:50:50 3:1:3 3:2:6 3:3:3 3:4:12 3:5:15 3:6:6 3:7:21 3:8:24 3:9:9 3:10:30 3:11:33 3:12:12 3:13:39 3:14:42 3:15:15 3:16:48 3:17:51 3:18:18 3:19:57 3:20:60 3:21:21 3:22:66 3:23:69 3:24:24 3:25:75 3:26:78 3:27:27 3:28:84 3:29:87 3:30:30 3:31:93 3:32:96 3:33:33 3:34:102 3:35:105 3:36:36 3:37:111 3:38:114 3:39:39 3:40:120 3:41:123 3:42:42 3:43:129 3:44:132 3:45:45 3:46:138 3:47:141 3:48:48 3:49:147 3:50:150 4:1:4 4:2:4 4:3:12 4:4:4 4:5:20 4:6:12 4:7:28 4:8:8 4:9:36 4:10:20 4:11:44 4:12:12 4:13:52 4:14:28 4:15:60 4:16:16 4:17:68 4:18:36 4:19:76 4:20:20 4:21:84 4:22:44 4:23:92 4:24:24 4:25:100 4:26:52 4:27:108 4:28:28 4:29:116 4:30:60 4:31:124 4:32:32 4:33:132 4:34:68 4:35:140 4:36:36 4:37:148 4:38:76 4:39:156 4:40:40 4:41:164 4:42:84 4:43:172 4:44:44 4:45:180 4:46:92 4:47:188 4:48:48 4:49:196 4:50:100 5:1:5 5:2:10 5:3:15 5:4:20 5:5:5 5:6:30 5:7:35 5:8:40 5:9:45 5:10:10 5:11:55 5:12:60 5:13:65 5:14:70 5:15:15 5:16:80 5:17:85 5:18:90 5:19:95 5:20:20 5:21:105 5:22:110 5:23:115 5:24:120 5:25:25 5:26:130 5:27:135 5:28:140 5:29:145 5:30:30 5:31:155 5:32:160 5:33:165 5:34:170 5:35:35 5:36:180 5:37:185 5:38:190 5:39:195 5:40:40 5:41:205 5:42:210 5:43:215 5:44:220 5:45:45 5:46:230 5:47:235 5:48:240 5:49:245 5:50:50 6:1:6 6:2:6 6:3:6 6:4:12 6:5:30 6:6:6 6:7:42 6:8:24 6:9:18 6:10:30 6:11:66 6:12:12 6:13:78 6:14:42 6:15:30 6:16:48 6:17:102 6:18:18 6:19:114 6:20:60 6:21:42 6:22:66 6:23:138 6:24:24 6:25:150 6:26:78 6:27:54 6:28:84 6:29:174 6:30:30 6:31:186 6:32:96 6:33:66 6:34:102 6:35:210 6:36:36 6:37:222 6:38:114 6:39:78 6:40:120 6:41:246 6:42:42 6:43:258 6:44:132 6:45:90 6:46:138 6:47:282 6:48:48 6:49:294 6:50:150 7:1:7 7:2:14 7:3:21 7:4:28 7:5:35 7:6:42 7:7:7 7:8:56 7:9:63 7:10:70 7:11:77 7:12:84 7:13:91 7:14:14 7:15:105 7:16:112 7:17:119 7:18:126 7:19:133 7:20:140 7:21:21 7:22:154 7:23:161 7:24:168 7:25:175 7:26:182 7:27:189 7:28:28 7:29:203 7:30:210 7:31:217 7:32:224 7:33:231 7:34:238 7:35:35 7:36:252 7:37:259 7:38:266 7:39:273 7:40:280 7:41:287 7:42:42 7:43:301 7:44:308 7:45:315 7:46:322 7:47:329 7:48:336 7:49:49 7:50:350 8:1:8 8:2:8 8:3:24 8:4:8 8:5:40 8:6:24 8:7:56 8:8:8 8:9:72 8:10:40 8:11:88 8:12:24 8:13:104 8:14:56 8:15:120 8:16:16 8:17:136 8:18:72 8:19:152 8:20:40 8:21:168 8:22:88 8:23:184 8:24:24 8:25:200 8:26:104 8:27:216 8:28:56 8:29:232 8:30:120 8:31:248 8:32:32 8:33:264 8:34:136 8:35:280 8:36:72 8:37:296 8:38:152 8:39:312 8:40:40 8:41:328 8:42:168 8:43:344 8:44:88 8:45:360 8:46:184 8:47:376 8:48:48 8:49:392 8:50:200 9:1:9 9:2:18 9:3:9 9:4:36 9:5:45 9:6:18 9:7:63 9:8:72 9:9:9 9:10:90 9:11:99 9:12:36 9:13:117 9:14:126 9:15:45 9:16:144 9:17:153 9:18:18 9:19:171 9:20:180 9:21:63 9:22:198 9:23:207 9:24:72 9:25:225 9:26:234 9:27:27 9:28:252 9:29:261 9:30:90 9:31:279 9:32:288 9:33:99 9:34:306 9:35:315 9:36:36 9:37:333 9:38:342 9:39:117 9:40:360 9:41:369 9:42:126 9:43:387 9:44:396 9:45:45 9:46:414 9:47:423 9:48:144 9:49:441 9:50:450 10:1:10 10:2:10 10:3:30 10:4:20 10:5:10 10:6:30 10:7:70 10:8:40 10:9:90 10:10:10 10:11:110 10:12:60 10:13:130 10:14:70 10:15:30 10:16:80 10:17:170 10:18:90 10:19:190 10:20:20 10:21:210 10:22:110 10:23:230 10:24:120 10:25:50 10:26:130 10:27:270 10:28:140 10:29:290 10:30:30 10:31:310 10:32:160 10:33:330 10:34:170 10:35:70 10:36:180 10:37:370 10:38:190 10:39:390 10:40:40 10:41:410 10:42:210 10:43:430 10:44:220 10:45:90 10:46:230 10:47:470 10:48:240 10:49:490 10:50:50 11:1:11 11:2:22 11:3:33 11:4:44 11:5:55 11:6:66 11:7:77 11:8:88 11:9:99 11:10:110 11:11:11 11:12:132 11:13:143 11:14:154 11:15:165 11:16:176 11:17:187 11:18:198 11:19:209 11:20:220 11:21:231 11:22:22 11:23:253 11:24:264 11:25:275 11:26:286 11:27:297 11:28:308 11:29:319 11:30:330 11:31:341 11:32:352 11:33:33 11:34:374 11:35:385 11:36:396 11:37:407 11:38:418 11:39:429 11:40:440 11:41:451 11:42:462 11:43:473 11:44:44 11:45:495 11:46:506 11:47:517 11:48:528 11:49:539 11:50:550 12:1:12 12:2:12 12:3:12 12:4:12 12:5:60 12:6:12 12:7:84 12:8:24 12:9:36 12:10:60 12:11:132 12:12:12 12:13:156 12:14:84 12:15:60 12:16:48 12:17:204 12:18:36 12:19:228 12:20:60 12:21:84 12:22:132 12:23:276 12:24:24 12:25:300 12:26:156 12:27:108 12:28:84 12:29:348 12:30:60 12:31:372 12:32:96 12:33:132 12:34:204 12:35:420 12:36:36 12:37:444 12:38:228 12:39:156 12:40:120 12:41:492 12:42:84 12:43:516 12:44:132 12:45:180 12:46:276 12:47:564 12:48:48 12:49:588 12:50:300 13:1:13 13:2:26 13:3:39 13:4:52 13:5:65 13:6:78 13:7:91 13:8:104 13:9:117 13:10:130 13:11:143 13:12:156 13:13:13 13:14:182 13:15:195 13:16:208 13:17:221 13:18:234 13:19:247 13:20:260 13:21:273 13:22:286 13:23:299 13:24:312 13:25:325 13:26:26 13:27:351 13:28:364 13:29:377 13:30:390 13:31:403 13:32:416 13:33:429 13:34:442 13:35:455 13:36:468 13:37:481 13:38:494 13:39:39 13:40:520 13:41:533 13:42:546 13:43:559 13:44:572 13:45:585 13:46:598 13:47:611 13:48:624 13:49:637 13:50:650 14:1:14 14:2:14 14:3:42 14:4:28 14:5:70 14:6:42 14:7:14 14:8:56 14:9:126 14:10:70 14:11:154 14:12:84 14:13:182 14:14:14 14:15:210 14:16:112 14:17:238 14:18:126 14:19:266 14:20:140 14:21:42 14:22:154 14:23:322 14:24:168 14:25:350 14:26:182 14:27:378 14:28:28 14:29:406 14:30:210 14:31:434 14:32:224 14:33:462 14:34:238 14:35:70 14:36:252 14:37:518 14:38:266 14:39:546 14:40:280 14:41:574 14:42:42 14:43:602 14:44:308 14:45:630 14:46:322 14:47:658 14:48:336 14:49:98 14:50:350 15:1:15 15:2:30 15:3:15 15:4:60 15:5:15 15:6:30 15:7:105 15:8:120 15:9:45 15:10:30 15:11:165 15:12:60 15:13:195 15:14:210 15:15:15 15:16:240 15:17:255 15:18:90 15:19:285 15:20:60 15:21:105 15:22:330 15:23:345 15:24:120 15:25:75 15:26:390 15:27:135 15:28:420 15:29:435 15:30:30 15:31:465 15:32:480 15:33:165 15:34:510 15:35:105 15:36:180 15:37:555 15:38:570 15:39:195 15:40:120 15:41:615 15:42:210 15:43:645 15:44:660 15:45:45 15:46:690 15:47:705 15:48:240 15:49:735 15:50:150 16:1:16 16:2:16 16:3:48 16:4:16 16:5:80 16:6:48 16:7:112 16:8:16 16:9:144 16:10:80 16:11:176 16:12:48 16:13:208 16:14:112 16:15:240 16:16:16 16:17:272 16:18:144 16:19:304 16:20:80 16:21:336 16:22:176 16:23:368 16:24:48 16:25:400 16:26:208 16:27:432 16:28:112 16:29:464 16:30:240 16:31:496 16:32:32 16:33:528 16:34:272 16:35:560 16:36:144 16:37:592 16:38:304 16:39:624 16:40:80 16:41:656 16:42:336 16:43:688 16:44:176 16:45:720 16:46:368 16:47:752 16:48:48 16:49:784 16:50:400 17:1:17 17:2:34 17:3:51 17:4:68 17:5:85 17:6:102 17:7:119 17:8:136 17:9:153 17:10:170 17:11:187 17:12:204 17:13:221 17:14:238 17:15:255 17:16:272 17:17:17 17:18:306 17:19:323 17:20:340 17:21:357 17:22:374 17:23:391 17:24:408 17:25:425 17:26:442 17:27:459 17:28:476 17:29:493 17:30:510 17:31:527 17:32:544 17:33:561 17:34:34 17:35:595 17:36:612 17:37:629 17:38:646 17:39:663 17:40:680 17:41:697 17:42:714 17:43:731 17:44:748 17:45:765 17:46:782 17:47:799 17:48:816 17:49:833 17:50:850 18:1:18 18:2:18 18:3:18 18:4:36 18:5:90 18:6:18 18:7:126 18:8:72 18:9:18 18:10:90 18:11:198 18:12:36 18:13:234 18:14:126 18:15:90 18:16:144 18:17:306 18:18:18 18:19:342 18:20:180 18:21:126 18:22:198 18:23:414 18:24:72 18:25:450 18:26:234 18:27:54 18:28:252 18:29:522 18:30:90 18:31:558 18:32:288 18:33:198 18:34:306 18:35:630 18:36:36 18:37:666 18:38:342 18:39:234 18:40:360 18:41:738 18:42:126 18:43:774 18:44:396 18:45:90 18:46:414 18:47:846 18:48:144 18:49:882 18:50:450 19:1:19 19:2:38 19:3:57 19:4:76 19:5:95 19:6:114 19:7:133 19:8:152 19:9:171 19:10:190 19:11:209 19:12:228 19:13:247 19:14:266 19:15:285 19:16:304 19:17:323 19:18:342 19:19:19 19:20:380 19:21:399 19:22:418 19:23:437 19:24:456 19:25:475 19:26:494 19:27:513 19:28:532 19:29:551 19:30:570 19:31:589 19:32:608 19:33:627 19:34:646 19:35:665 19:36:684 19:37:703 19:38:38 19:39:741 19:40:760 19:41:779 19:42:798 19:43:817 19:44:836 19:45:855 19:46:874 19:47:893 19:48:912 19:49:931 19:50:950 20:1:20 20:2:20 20:3:60 20:4:20 20:5:20 20:6:60 20:7:140 20:8:40 20:9:180 20:10:20 20:11:220 20:12:60 20:13:260 20:14:140 20:15:60 20:16:80 20:17:340 20:18:180 20:19:380 20:20:20 20:21:420 20:22:220 20:23:460 20:24:120 20:25:100 20:26:260 20:27:540 20:28:140 20:29:580 20:30:60 20:31:620 20:32:160 20:33:660 20:34:340 20:35:140 20:36:180 20:37:740 20:38:380 20:39:780 20:40:40 20:41:820 20:42:420 20:43:860 20:44:220 20:45:180 20:46:460 20:47:940 20:48:240 20:49:980 20:50:100 21:1:21 21:2:42 21:3:21 21:4:84 21:5:105 21:6:42 21:7:21 21:8:168 21:9:63 21:10:210 21:11:231 21:12:84 21:13:273 21:14:42 21:15:105 21:16:336 21:17:357 21:18:126 21:19:399 21:20:420 21:21:21 21:22:462 21:23:483 21:24:168 21:25:525 21:26:546 21:27:189 21:28:84 21:29:609 21:30:210 21:31:651 21:32:672 21:33:231 21:34:714 21:35:105 21:36:252 21:37:777 21:38:798 21:39:273 21:40:840 21:41:861 21:42:42 21:43:903 21:44:924 21:45:315 21:46:966 21:47:987 21:48:336 21:49:147 21:50:1050 22:1:22 22:2:22 22:3:66 22:4:44 22:5:110 22:6:66 22:7:154 22:8:88 22:9:198 22:10:110 22:11:22 22:12:132 22:13:286 22:14:154 22:15:330 22:16:176 22:17:374 22:18:198 22:19:418 22:20:220 22:21:462 22:22:22 22:23:506 22:24:264 22:25:550 22:26:286 22:27:594 22:28:308 22:29:638 22:30:330 22:31:682 22:32:352 22:33:66 22:34:374 22:35:770 22:36:396 22:37:814 22:38:418 22:39:858 22:40:440 22:41:902 22:42:462 22:43:946 22:44:44 22:45:990 22:46:506 22:47:1034 22:48:528 22:49:1078 22:50:550 23:1:23 23:2:46 23:3:69 23:4:92 23:5:115 23:6:138 23:7:161 23:8:184 23:9:207 23:10:230 23:11:253 23:12:276 23:13:299 23:14:322 23:15:345 23:16:368 23:17:391 23:18:414 23:19:437 23:20:460 23:21:483 23:22:506 23:23:23 23:24:552 23:25:575 23:26:598 23:27:621 23:28:644 23:29:667 23:30:690 23:31:713 23:32:736 23:33:759 23:34:782 23:35:805 23:36:828 23:37:851 23:38:874 23:39:897 23:40:920 23:41:943 23:42:966 23:43:989 23:44:1012 23:45:1035 23:46:46 23:47:1081 23:48:1104 23:49:1127 23:50:1150 24:1:24 24:2:24 24:3:24 24:4:24 24:5:120 24:6:24 24:7:168 24:8:24 24:9:72 24:10:120 24:11:264 24:12:24 24:13:312 24:14:168 24:15:120 24:16:48 24:17:408 24:18:72 24:19:456 24:20:120 24:21:168 24:22:264 24:23:552 24:24:24 24:25:600 24:26:312 24:27:216 24:28:168 24:29:696 24:30:120 24:31:744 24:32:96 24:33:264 24:34:408 24:35:840 24:36:72 24:37:888 24:38:456 24:39:312 24:40:120 24:41:984 24:42:168 24:43:1032 24:44:264 24:45:360 24:46:552 24:47:1128 24:48:48 24:49:1176 24:50:600 25:1:25 25:2:50 25:3:75 25:4:100 25:5:25 25:6:150 25:7:175 25:8:200 25:9:225 25:10:50 25:11:275 25:12:300 25:13:325 25:14:350 25:15:75 25:16:400 25:17:425 25:18:450 25:19:475 25:20:100 25:21:525 25:22:550 25:23:575 25:24:600 25:25:25 25:26:650 25:27:675 25:28:700 25:29:725 25:30:150 25:31:775 25:32:800 25:33:825 25:34:850 25:35:175 25:36:900 25:37:925 25:38:950 25:39:975 25:40:200 25:41:1025 25:42:1050 25:43:1075 25:44:1100 25:45:225 25:46:1150 25:47:1175 25:48:1200 25:49:1225 25:50:50 26:1:26 26:2:26 26:3:78 26:4:52 26:5:130 26:6:78 26:7:182 26:8:104 26:9:234 26:10:130 26:11:286 26:12:156 26:13:26 26:14:182 26:15:390 26:16:208 26:17:442 26:18:234 26:19:494 26:20:260 26:21:546 26:22:286 26:23:598 26:24:312 26:25:650 26:26:26 26:27:702 26:28:364 26:29:754 26:30:390 26:31:806 26:32:416 26:33:858 26:34:442 26:35:910 26:36:468 26:37:962 26:38:494 26:39:78 26:40:520 26:41:1066 26:42:546 26:43:1118 26:44:572 26:45:1170 26:46:598 26:47:1222 26:48:624 26:49:1274 26:50:650 27:1:27 27:2:54 27:3:27 27:4:108 27:5:135 27:6:54 27:7:189 27:8:216 27:9:27 27:10:270 27:11:297 27:12:108 27:13:351 27:14:378 27:15:135 27:16:432 27:17:459 27:18:54 27:19:513 27:20:540 27:21:189 27:22:594 27:23:621 27:24:216 27:25:675 27:26:702 27:27:27 27:28:756 27:29:783 27:30:270 27:31:837 27:32:864 27:33:297 27:34:918 27:35:945 27:36:108 27:37:999 27:38:1026 27:39:351 27:40:1080 27:41:1107 27:42:378 27:43:1161 27:44:1188 27:45:135 27:46:1242 27:47:1269 27:48:432 27:49:1323 27:50:1350 28:1:28 28:2:28 28:3:84 28:4:28 28:5:140 28:6:84 28:7:28 28:8:56 28:9:252 28:10:140 28:11:308 28:12:84 28:13:364 28:14:28 28:15:420 28:16:112 28:17:476 28:18:252 28:19:532 28:20:140 28:21:84 28:22:308 28:23:644 28:24:168 28:25:700 28:26:364 28:27:756 28:28:28 28:29:812 28:30:420 28:31:868 28:32:224 28:33:924 28:34:476 28:35:140 28:36:252 28:37:1036 28:38:532 28:39:1092 28:40:280 28:41:1148 28:42:84 28:43:1204 28:44:308 28:45:1260 28:46:644 28:47:1316 28:48:336 28:49:196 28:50:700 29:1:29 29:2:58 29:3:87 29:4:116 29:5:145 29:6:174 29:7:203 29:8:232 29:9:261 29:10:290 29:11:319 29:12:348 29:13:377 29:14:406 29:15:435 29:16:464 29:17:493 29:18:522 29:19:551 29:20:580 29:21:609 29:22:638 29:23:667 29:24:696 29:25:725 29:26:754 29:27:783 29:28:812 29:29:29 29:30:870 29:31:899 29:32:928 29:33:957 29:34:986 29:35:1015 29:36:1044 29:37:1073 29:38:1102 29:39:1131 29:40:1160 29:41:1189 29:42:1218 29:43:1247 29:44:1276 29:45:1305 29:46:1334 29:47:1363 29:48:1392 29:49:1421 29:50:1450 30:1:30 30:2:30 30:3:30 30:4:60 30:5:30 30:6:30 30:7:210 30:8:120 30:9:90 30:10:30 30:11:330 30:12:60 30:13:390 30:14:210 30:15:30 30:16:240 30:17:510 30:18:90 30:19:570 30:20:60 30:21:210 30:22:330 30:23:690 30:24:120 30:25:150 30:26:390 30:27:270 30:28:420 30:29:870 30:30:30 30:31:930 30:32:480 30:33:330 30:34:510 30:35:210 30:36:180 30:37:1110 30:38:570 30:39:390 30:40:120 30:41:1230 30:42:210 30:43:1290 30:44:660 30:45:90 30:46:690 30:47:1410 30:48:240 30:49:1470 30:50:150 31:1:31 31:2:62 31:3:93 31:4:124 31:5:155 31:6:186 31:7:217 31:8:248 31:9:279 31:10:310 31:11:341 31:12:372 31:13:403 31:14:434 31:15:465 31:16:496 31:17:527 31:18:558 31:19:589 31:20:620 31:21:651 31:22:682 31:23:713 31:24:744 31:25:775 31:26:806 31:27:837 31:28:868 31:29:899 31:30:930 31:31:31 31:32:992 31:33:1023 31:34:1054 31:35:1085 31:36:1116 31:37:1147 31:38:1178 31:39:1209 31:40:1240 31:41:1271 31:42:1302 31:43:1333 31:44:1364 31:45:1395 31:46:1426 31:47:1457 31:48:1488 31:49:1519 31:50:1550 32:1:32 32:2:32 32:3:96 32:4:32 32:5:160 32:6:96 32:7:224 32:8:32 32:9:288 32:10:160 32:11:352 32:12:96 32:13:416 32:14:224 32:15:480 32:16:32 32:17:544 32:18:288 32:19:608 32:20:160 32:21:672 32:22:352 32:23:736 32:24:96 32:25:800 32:26:416 32:27:864 32:28:224 32:29:928 32:30:480 32:31:992 32:32:32 32:33:1056 32:34:544 32:35:1120 32:36:288 32:37:1184 32:38:608 32:39:1248 32:40:160 32:41:1312 32:42:672 32:43:1376 32:44:352 32:45:1440 32:46:736 32:47:1504 32:48:96 32:49:1568 32:50:800 33:1:33 33:2:66 33:3:33 33:4:132 33:5:165 33:6:66 33:7:231 33:8:264 33:9:99 33:10:330 33:11:33 33:12:132 33:13:429 33:14:462 33:15:165 33:16:528 33:17:561 33:18:198 33:19:627 33:20:660 33:21:231 33:22:66 33:23:759 33:24:264 33:25:825 33:26:858 33:27:297 33:28:924 33:29:957 33:30:330 33:31:1023 33:32:1056 33:33:33 33:34:1122 33:35:1155 33:36:396 33:37:1221 33:38:1254 33:39:429 33:40:1320 33:41:1353 33:42:462 33:43:1419 33:44:132 33:45:495 33:46:1518 33:47:1551 33:48:528 33:49:1617 33:50:1650 34:1:34 34:2:34 34:3:102 34:4:68 34:5:170 34:6:102 34:7:238 34:8:136 34:9:306 34:10:170 34:11:374 34:12:204 34:13:442 34:14:238 34:15:510 34:16:272 34:17:34 34:18:306 34:19:646 34:20:340 34:21:714 34:22:374 34:23:782 34:24:408 34:25:850 34:26:442 34:27:918 34:28:476 34:29:986 34:30:510 34:31:1054 34:32:544 34:33:1122 34:34:34 34:35:1190 34:36:612 34:37:1258 34:38:646 34:39:1326 34:40:680 34:41:1394 34:42:714 34:43:1462 34:44:748 34:45:1530 34:46:782 34:47:1598 34:48:816 34:49:1666 34:50:850 35:1:35 35:2:70 35:3:105 35:4:140 35:5:35 35:6:210 35:7:35 35:8:280 35:9:315 35:10:70 35:11:385 35:12:420 35:13:455 35:14:70 35:15:105 35:16:560 35:17:595 35:18:630 35:19:665 35:20:140 35:21:105 35:22:770 35:23:805 35:24:840 35:25:175 35:26:910 35:27:945 35:28:140 35:29:1015 35:30:210 35:31:1085 35:32:1120 35:33:1155 35:34:1190 35:35:35 35:36:1260 35:37:1295 35:38:1330 35:39:1365 35:40:280 35:41:1435 35:42:210 35:43:1505 35:44:1540 35:45:315 35:46:1610 35:47:1645 35:48:1680 35:49:245 35:50:350 36:1:36 36:2:36 36:3:36 36:4:36 36:5:180 36:6:36 36:7:252 36:8:72 36:9:36 36:10:180 36:11:396 36:12:36 36:13:468 36:14:252 36:15:180 36:16:144 36:17:612 36:18:36 36:19:684 36:20:180 36:21:252 36:22:396 36:23:828 36:24:72 36:25:900 36:26:468 36:27:108 36:28:252 36:29:1044 36:30:180 36:31:1116 36:32:288 36:33:396 36:34:612 36:35:1260 36:36:36 36:37:1332 36:38:684 36:39:468 36:40:360 36:41:1476 36:42:252 36:43:1548 36:44:396 36:45:180 36:46:828 36:47:1692 36:48:144 36:49:1764 36:50:900 37:1:37 37:2:74 37:3:111 37:4:148 37:5:185 37:6:222 37:7:259 37:8:296 37:9:333 37:10:370 37:11:407 37:12:444 37:13:481 37:14:518 37:15:555 37:16:592 37:17:629 37:18:666 37:19:703 37:20:740 37:21:777 37:22:814 37:23:851 37:24:888 37:25:925 37:26:962 37:27:999 37:28:1036 37:29:1073 37:30:1110 37:31:1147 37:32:1184 37:33:1221 37:34:1258 37:35:1295 37:36:1332 37:37:37 37:38:1406 37:39:1443 37:40:1480 37:41:1517 37:42:1554 37:43:1591 37:44:1628 37:45:1665 37:46:1702 37:47:1739 37:48:1776 37:49:1813 37:50:1850 38:1:38 38:2:38 38:3:114 38:4:76 38:5:190 38:6:114 38:7:266 38:8:152 38:9:342 38:10:190 38:11:418 38:12:228 38:13:494 38:14:266 38:15:570 38:16:304 38:17:646 38:18:342 38:19:38 38:20:380 38:21:798 38:22:418 38:23:874 38:24:456 38:25:950 38:26:494 38:27:1026 38:28:532 38:29:1102 38:30:570 38:31:1178 38:32:608 38:33:1254 38:34:646 38:35:1330 38:36:684 38:37:1406 38:38:38 38:39:1482 38:40:760 38:41:1558 38:42:798 38:43:1634 38:44:836 38:45:1710 38:46:874 38:47:1786 38:48:912 38:49:1862 38:50:950 39:1:39 39:2:78 39:3:39 39:4:156 39:5:195 39:6:78 39:7:273 39:8:312 39:9:117 39:10:390 39:11:429 39:12:156 39:13:39 39:14:546 39:15:195 39:16:624 39:17:663 39:18:234 39:19:741 39:20:780 39:21:273 39:22:858 39:23:897 39:24:312 39:25:975 39:26:78 39:27:351 39:28:1092 39:29:1131 39:30:390 39:31:1209 39:32:1248 39:33:429 39:34:1326 39:35:1365 39:36:468 39:37:1443 39:38:1482 39:39:39 39:40:1560 39:41:1599 39:42:546 39:43:1677 39:44:1716 39:45:585 39:46:1794 39:47:1833 39:48:624 39:49:1911 39:50:1950 40:1:40 40:2:40 40:3:120 40:4:40 40:5:40 40:6:120 40:7:280 40:8:40 40:9:360 40:10:40 40:11:440 40:12:120 40:13:520 40:14:280 40:15:120 40:16:80 40:17:680 40:18:360 40:19:760 40:20:40 40:21:840 40:22:440 40:23:920 40:24:120 40:25:200 40:26:520 40:27:1080 40:28:280 40:29:1160 40:30:120 40:31:1240 40:32:160 40:33:1320 40:34:680 40:35:280 40:36:360 40:37:1480 40:38:760 40:39:1560 40:40:40 40:41:1640 40:42:840 40:43:1720 40:44:440 40:45:360 40:46:920 40:47:1880 40:48:240 40:49:1960 40:50:200 41:1:41 41:2:82 41:3:123 41:4:164 41:5:205 41:6:246 41:7:287 41:8:328 41:9:369 41:10:410 41:11:451 41:12:492 41:13:533 41:14:574 41:15:615 41:16:656 41:17:697 41:18:738 41:19:779 41:20:820 41:21:861 41:22:902 41:23:943 41:24:984 41:25:1025 41:26:1066 41:27:1107 41:28:1148 41:29:1189 41:30:1230 41:31:1271 41:32:1312 41:33:1353 41:34:1394 41:35:1435 41:36:1476 41:37:1517 41:38:1558 41:39:1599 41:40:1640 41:41:41 41:42:1722 41:43:1763 41:44:1804 41:45:1845 41:46:1886 41:47:1927 41:48:1968 41:49:2009 41:50:2050 42:1:42 42:2:42 42:3:42 42:4:84 42:5:210 42:6:42 42:7:42 42:8:168 42:9:126 42:10:210 42:11:462 42:12:84 42:13:546 42:14:42 42:15:210 42:16:336 42:17:714 42:18:126 42:19:798 42:20:420 42:21:42 42:22:462 42:23:966 42:24:168 42:25:1050 42:26:546 42:27:378 42:28:84 42:29:1218 42:30:210 42:31:1302 42:32:672 42:33:462 42:34:714 42:35:210 42:36:252 42:37:1554 42:38:798 42:39:546 42:40:840 42:41:1722 42:42:42 42:43:1806 42:44:924 42:45:630 42:46:966 42:47:1974 42:48:336 42:49:294 42:50:1050 43:1:43 43:2:86 43:3:129 43:4:172 43:5:215 43:6:258 43:7:301 43:8:344 43:9:387 43:10:430 43:11:473 43:12:516 43:13:559 43:14:602 43:15:645 43:16:688 43:17:731 43:18:774 43:19:817 43:20:860 43:21:903 43:22:946 43:23:989 43:24:1032 43:25:1075 43:26:1118 43:27:1161 43:28:1204 43:29:1247 43:30:1290 43:31:1333 43:32:1376 43:33:1419 43:34:1462 43:35:1505 43:36:1548 43:37:1591 43:38:1634 43:39:1677 43:40:1720 43:41:1763 43:42:1806 43:43:43 43:44:1892 43:45:1935 43:46:1978 43:47:2021 43:48:2064 43:49:2107 43:50:2150 44:1:44 44:2:44 44:3:132 44:4:44 44:5:220 44:6:132 44:7:308 44:8:88 44:9:396 44:10:220 44:11:44 44:12:132 44:13:572 44:14:308 44:15:660 44:16:176 44:17:748 44:18:396 44:19:836 44:20:220 44:21:924 44:22:44 44:23:1012 44:24:264 44:25:1100 44:26:572 44:27:1188 44:28:308 44:29:1276 44:30:660 44:31:1364 44:32:352 44:33:132 44:34:748 44:35:1540 44:36:396 44:37:1628 44:38:836 44:39:1716 44:40:440 44:41:1804 44:42:924 44:43:1892 44:44:44 44:45:1980 44:46:1012 44:47:2068 44:48:528 44:49:2156 44:50:1100 45:1:45 45:2:90 45:3:45 45:4:180 45:5:45 45:6:90 45:7:315 45:8:360 45:9:45 45:10:90 45:11:495 45:12:180 45:13:585 45:14:630 45:15:45 45:16:720 45:17:765 45:18:90 45:19:855 45:20:180 45:21:315 45:22:990 45:23:1035 45:24:360 45:25:225 45:26:1170 45:27:135 45:28:1260 45:29:1305 45:30:90 45:31:1395 45:32:1440 45:33:495 45:34:1530 45:35:315 45:36:180 45:37:1665 45:38:1710 45:39:585 45:40:360 45:41:1845 45:42:630 45:43:1935 45:44:1980 45:45:45 45:46:2070 45:47:2115 45:48:720 45:49:2205 45:50:450 46:1:46 46:2:46 46:3:138 46:4:92 46:5:230 46:6:138 46:7:322 46:8:184 46:9:414 46:10:230 46:11:506 46:12:276 46:13:598 46:14:322 46:15:690 46:16:368 46:17:782 46:18:414 46:19:874 46:20:460 46:21:966 46:22:506 46:23:46 46:24:552 46:25:1150 46:26:598 46:27:1242 46:28:644 46:29:1334 46:30:690 46:31:1426 46:32:736 46:33:1518 46:34:782 46:35:1610 46:36:828 46:37:1702 46:38:874 46:39:1794 46:40:920 46:41:1886 46:42:966 46:43:1978 46:44:1012 46:45:2070 46:46:46 46:47:2162 46:48:1104 46:49:2254 46:50:1150 47:1:47 47:2:94 47:3:141 47:4:188 47:5:235 47:6:282 47:7:329 47:8:376 47:9:423 47:10:470 47:11:517 47:12:564 47:13:611 47:14:658 47:15:705 47:16:752 47:17:799 47:18:846 47:19:893 47:20:940 47:21:987 47:22:1034 47:23:1081 47:24:1128 47:25:1175 47:26:1222 47:27:1269 47:28:1316 47:29:1363 47:30:1410 47:31:1457 47:32:1504 47:33:1551 47:34:1598 47:35:1645 47:36:1692 47:37:1739 47:38:1786 47:39:1833 47:40:1880 47:41:1927 47:42:1974 47:43:2021 47:44:2068 47:45:2115 47:46:2162 47:47:47 47:48:2256 47:49:2303 47:50:2350 48:1:48 48:2:48 48:3:48 48:4:48 48:5:240 48:6:48 48:7:336 48:8:48 48:9:144 48:10:240 48:11:528 48:12:48 48:13:624 48:14:336 48:15:240 48:16:48 48:17:816 48:18:144 48:19:912 48:20:240 48:21:336 48:22:528 48:23:1104 48:24:48 48:25:1200 48:26:624 48:27:432 48:28:336 48:29:1392 48:30:240 48:31:1488 48:32:96 48:33:528 48:34:816 48:35:1680 48:36:144 48:37:1776 48:38:912 48:39:624 48:40:240 48:41:1968 48:42:336 48:43:2064 48:44:528 48:45:720 48:46:1104 48:47:2256 48:48:48 48:49:2352 48:50:1200 49:1:49 49:2:98 49:3:147 49:4:196 49:5:245 49:6:294 49:7:49 49:8:392 49:9:441 49:10:490 49:11:539 49:12:588 49:13:637 49:14:98 49:15:735 49:16:784 49:17:833 49:18:882 49:19:931 49:20:980 49:21:147 49:22:1078 49:23:1127 49:24:1176 49:25:1225 49:26:1274 49:27:1323 49:28:196 49:29:1421 49:30:1470 49:31:1519 49:32:1568 49:33:1617 49:34:1666 49:35:245 49:36:1764 49:37:1813 49:38:1862 49:39:1911 49:40:1960 49:41:2009 49:42:294 49:43:2107 49:44:2156 49:45:2205 49:46:2254 49:47:2303 49:48:2352 49:49:49 49:50:2450 50:1:50 50:2:50 50:3:150 50:4:100 50:5:50 50:6:150 50:7:350 50:8:200 50:9:450 50:10:50 50:11:550 50:12:300 50:13:650 50:14:350 50:15:150 50:16:400 50:17:850 50:18:450 50:19:950 50:20:100 50:21:1050 50:22:550 50:23:1150 50:24:600 50:25:50 50:26:650 50:27:1350 50:28:700 50:29:1450 50:30:150 50:31:1550 50:32:800 50:33:1650 50:34:850 50:35:350 50:36:900 50:37:1850 50:38:950 50:39:1950 50:40:200 50:41:2050 50:42:1050 50:43:2150 50:44:1100 50:45:450 50:46:1150 50:47:2350 50:48:1200 50:49:2450 50:50:50 # # Fibonacci numbers # 0:55:0 0:89:0 0:144:0 0:233:0 0:377:0 0:610:0 0:987:0 0:1597:0 0:2584:0 0:4181:0 0:6765:0 0:10946:0 0:17711:0 0:28657:0 0:46368:0 0:75025:0 0:121393:0 0:196418:0 0:317811:0 0:514229:0 0:832040:0 0:1346269:0 0:2178309:0 0:3524578:0 0:5702887:0 0:9227465:0 0:14930352:0 0:24157817:0 0:39088169:0 0:63245986:0 0:102334155:0 0:165580141:0 0:267914296:0 0:433494437:0 0:701408733:0 0:1134903170:0 0:1836311903:0 0:2971215073:0 0:4807526976:0 0:7778742049:0 0:12586269025:0 1:55:55 1:89:89 1:144:144 1:233:233 1:377:377 1:610:610 1:987:987 1:1597:1597 1:2584:2584 1:4181:4181 1:6765:6765 1:10946:10946 1:17711:17711 1:28657:28657 1:46368:46368 1:75025:75025 1:121393:121393 1:196418:196418 1:317811:317811 1:514229:514229 1:832040:832040 1:1346269:1346269 1:2178309:2178309 1:3524578:3524578 1:5702887:5702887 1:9227465:9227465 1:14930352:14930352 1:24157817:24157817 1:39088169:39088169 1:63245986:63245986 1:102334155:102334155 1:165580141:165580141 1:267914296:267914296 1:433494437:433494437 1:701408733:701408733 1:1134903170:1134903170 1:1836311903:1836311903 1:2971215073:2971215073 1:4807526976:4807526976 1:7778742049:7778742049 1:12586269025:12586269025 1:55:55 1:89:89 1:144:144 1:233:233 1:377:377 1:610:610 1:987:987 1:1597:1597 1:2584:2584 1:4181:4181 1:6765:6765 1:10946:10946 1:17711:17711 1:28657:28657 1:46368:46368 1:75025:75025 1:121393:121393 1:196418:196418 1:317811:317811 1:514229:514229 1:832040:832040 1:1346269:1346269 1:2178309:2178309 1:3524578:3524578 1:5702887:5702887 1:9227465:9227465 1:14930352:14930352 1:24157817:24157817 1:39088169:39088169 1:63245986:63245986 1:102334155:102334155 1:165580141:165580141 1:267914296:267914296 1:433494437:433494437 1:701408733:701408733 1:1134903170:1134903170 1:1836311903:1836311903 1:2971215073:2971215073 1:4807526976:4807526976 1:7778742049:7778742049 1:12586269025:12586269025 2:55:110 2:89:178 2:144:144 2:233:466 2:377:754 2:610:610 2:987:1974 2:1597:3194 2:2584:2584 2:4181:8362 2:6765:13530 2:10946:10946 2:17711:35422 2:28657:57314 2:46368:46368 2:75025:150050 2:121393:242786 2:196418:196418 2:317811:635622 2:514229:1028458 2:832040:832040 2:1346269:2692538 2:2178309:4356618 2:3524578:3524578 2:5702887:11405774 2:9227465:18454930 2:14930352:14930352 2:24157817:48315634 2:39088169:78176338 2:63245986:63245986 2:102334155:204668310 2:165580141:331160282 2:267914296:267914296 2:433494437:866988874 2:701408733:1402817466 2:1134903170:1134903170 2:1836311903:3672623806 2:2971215073:5942430146 2:4807526976:4807526976 2:7778742049:15557484098 2:12586269025:25172538050 3:55:165 3:89:267 3:144:144 3:233:699 3:377:1131 3:610:1830 3:987:987 3:1597:4791 3:2584:7752 3:4181:12543 3:6765:6765 3:10946:32838 3:17711:53133 3:28657:85971 3:46368:46368 3:75025:225075 3:121393:364179 3:196418:589254 3:317811:317811 3:514229:1542687 3:832040:2496120 3:1346269:4038807 3:2178309:2178309 3:3524578:10573734 3:5702887:17108661 3:9227465:27682395 3:14930352:14930352 3:24157817:72473451 3:39088169:117264507 3:63245986:189737958 3:102334155:102334155 3:165580141:496740423 3:267914296:803742888 3:433494437:1300483311 3:701408733:701408733 3:1134903170:3404709510 3:1836311903:5508935709 3:2971215073:8913645219 3:4807526976:4807526976 3:7778742049:23336226147 3:12586269025:37758807075 5:55:55 5:89:445 5:144:720 5:233:1165 5:377:1885 5:610:610 5:987:4935 5:1597:7985 5:2584:12920 5:4181:20905 5:6765:6765 5:10946:54730 5:17711:88555 5:28657:143285 5:46368:231840 5:75025:75025 5:121393:606965 5:196418:982090 5:317811:1589055 5:514229:2571145 5:832040:832040 5:1346269:6731345 5:2178309:10891545 5:3524578:17622890 5:5702887:28514435 5:9227465:9227465 5:14930352:74651760 5:24157817:120789085 5:39088169:195440845 5:63245986:316229930 5:102334155:102334155 5:165580141:827900705 5:267914296:1339571480 5:433494437:2167472185 5:701408733:3507043665 5:1134903170:1134903170 5:1836311903:9181559515 5:2971215073:14856075365 5:4807526976:24037634880 5:7778742049:38893710245 5:12586269025:12586269025 8:55:440 8:89:712 8:144:144 8:233:1864 8:377:3016 8:610:2440 8:987:7896 8:1597:12776 8:2584:2584 8:4181:33448 8:6765:54120 8:10946:43784 8:17711:141688 8:28657:229256 8:46368:46368 8:75025:600200 8:121393:971144 8:196418:785672 8:317811:2542488 8:514229:4113832 8:832040:832040 8:1346269:10770152 8:2178309:17426472 8:3524578:14098312 8:5702887:45623096 8:9227465:73819720 8:14930352:14930352 8:24157817:193262536 8:39088169:312705352 8:63245986:252983944 8:102334155:818673240 8:165580141:1324641128 8:267914296:267914296 8:433494437:3467955496 8:701408733:5611269864 8:1134903170:4539612680 8:1836311903:14690495224 8:2971215073:23769720584 8:4807526976:4807526976 8:7778742049:62229936392 8:12586269025:100690152200 13:55:715 13:89:1157 13:144:1872 13:233:3029 13:377:377 13:610:7930 13:987:12831 13:1597:20761 13:2584:33592 13:4181:54353 13:6765:87945 13:10946:10946 13:17711:230243 13:28657:372541 13:46368:602784 13:75025:975325 13:121393:1578109 13:196418:2553434 13:317811:317811 13:514229:6684977 13:832040:10816520 13:1346269:17501497 13:2178309:28318017 13:3524578:45819514 13:5702887:74137531 13:9227465:9227465 13:14930352:194094576 13:24157817:314051621 13:39088169:508146197 13:63245986:822197818 13:102334155:1330344015 13:165580141:2152541833 13:267914296:267914296 13:433494437:5635427681 13:701408733:9118313529 13:1134903170:14753741210 13:1836311903:23872054739 13:2971215073:38625795949 13:4807526976:62497850688 13:7778742049:7778742049 13:12586269025:163621497325 21:55:1155 21:89:1869 21:144:1008 21:233:4893 21:377:7917 21:610:12810 21:987:987 21:1597:33537 21:2584:54264 21:4181:87801 21:6765:47355 21:10946:229866 21:17711:371931 21:28657:601797 21:46368:46368 21:75025:1575525 21:121393:2549253 21:196418:4124778 21:317811:2224677 21:514229:10798809 21:832040:17472840 21:1346269:28271649 21:2178309:2178309 21:3524578:74016138 21:5702887:119760627 21:9227465:193776765 21:14930352:104512464 21:24157817:507314157 21:39088169:820851549 21:63245986:1328165706 21:102334155:102334155 21:165580141:3477182961 21:267914296:5626200216 21:433494437:9103383177 21:701408733:4909861131 21:1134903170:23832966570 21:1836311903:38562549963 21:2971215073:62395516533 21:4807526976:4807526976 21:7778742049:163353583029 21:12586269025:264311649525 34:55:1870 34:89:3026 34:144:2448 34:233:7922 34:377:12818 34:610:10370 34:987:33558 34:1597:54298 34:2584:2584 34:4181:142154 34:6765:230010 34:10946:186082 34:17711:602174 34:28657:974338 34:46368:788256 34:75025:2550850 34:121393:4127362 34:196418:196418 34:317811:10805574 34:514229:17483786 34:832040:14144680 34:1346269:45773146 34:2178309:74062506 34:3524578:59917826 34:5702887:193898158 34:9227465:313733810 34:14930352:14930352 34:24157817:821365778 34:39088169:1328997746 34:63245986:1075181762 34:102334155:3479361270 34:165580141:5629724794 34:267914296:4554543032 34:433494437:14738810858 34:701408733:23847896922 34:1134903170:1134903170 34:1836311903:62434604702 34:2971215073:101021312482 34:4807526976:81727958592 34:7778742049:264477229666 34:12586269025:427933146850 55:0:0 55:1:55 55:1:55 55:2:110 55:3:165 55:5:55 55:8:440 55:13:715 55:21:1155 55:34:1870 55:55:55 55:89:4895 55:144:7920 55:233:12815 55:377:20735 55:610:6710 55:987:54285 55:1597:87835 55:2584:142120 55:4181:229955 55:6765:6765 55:10946:602030 55:17711:974105 55:28657:1576135 55:46368:2550240 55:75025:825275 55:121393:6676615 55:196418:10802990 55:317811:17479605 55:514229:28282595 55:832040:832040 55:1346269:74044795 55:2178309:119806995 55:3524578:193851790 55:5702887:313658785 55:9227465:101502115 55:14930352:821169360 55:24157817:1328679935 55:39088169:2149849295 55:63245986:3478529230 55:102334155:102334155 55:165580141:9106907755 55:267914296:14735286280 55:433494437:23842194035 55:701408733:38577480315 55:1134903170:12483934870 55:1836311903:100997154665 55:2971215073:163416829015 55:4807526976:264413983680 55:7778742049:427830812695 55:12586269025:12586269025 89:0:0 89:1:89 89:1:89 89:2:178 89:3:267 89:5:445 89:8:712 89:13:1157 89:21:1869 89:34:3026 89:55:4895 89:89:89 89:144:12816 89:233:20737 89:377:33553 89:610:54290 89:987:87843 89:1597:142133 89:2584:229976 89:4181:372109 89:6765:602085 89:10946:974194 89:17711:17711 89:28657:2550473 89:46368:4126752 89:75025:6677225 89:121393:10803977 89:196418:17481202 89:317811:28285179 89:514229:45766381 89:832040:74051560 89:1346269:119817941 89:2178309:193869501 89:3524578:3524578 89:5702887:507556943 89:9227465:821244385 89:14930352:1328801328 89:24157817:2150045713 89:39088169:3478847041 89:63245986:5628892754 89:102334155:9107739795 89:165580141:14736632549 89:267914296:23844372344 89:433494437:38581004893 89:701408733:701408733 89:1134903170:101006382130 89:1836311903:163431759367 89:2971215073:264438141497 89:4807526976:427869900864 89:7778742049:692308042361 89:12586269025:1120177943225 144:0:0 144:1:144 144:1:144 144:2:144 144:3:144 144:5:720 144:8:144 144:13:1872 144:21:1008 144:34:2448 144:55:7920 144:89:12816 144:144:144 144:233:33552 144:377:54288 144:610:43920 144:987:47376 144:1597:229968 144:2584:46512 144:4181:602064 144:6765:324720 144:10946:788112 144:17711:2550384 144:28657:4126608 144:46368:46368 144:75025:10803600 144:121393:17480592 144:196418:14142096 144:317811:15254928 144:514229:74048976 144:832040:14976720 144:1346269:193862736 144:2178309:104558832 144:3524578:253769616 144:5702887:821215728 144:9227465:1328754960 144:14930352:14930352 144:24157817:3478725648 144:39088169:5628696336 144:63245986:4553710992 144:102334155:4912039440 144:165580141:23843540304 144:267914296:4822457328 144:433494437:62423198928 144:701408733:33667619184 144:1134903170:81713028240 144:1836311903:264428914032 144:2971215073:427854970512 144:4807526976:4807526976 144:7778742049:1120138855056 144:12586269025:1812422739600 233:0:0 233:1:233 233:1:233 233:2:466 233:3:699 233:5:1165 233:8:1864 233:13:3029 233:21:4893 233:34:7922 233:55:12815 233:89:20737 233:144:33552 233:233:233 233:377:87841 233:610:142130 233:987:229971 233:1597:372101 233:2584:602072 233:4181:974173 233:6765:1576245 233:10946:2550418 233:17711:4126663 233:28657:6677081 233:46368:10803744 233:75025:17480825 233:121393:121393 233:196418:45765394 233:317811:74049963 233:514229:119815357 233:832040:193865320 233:1346269:313680677 233:2178309:507545997 233:3524578:821226674 233:5702887:1328772671 233:9227465:2149999345 233:14930352:3478772016 233:24157817:5628771361 233:39088169:9107543377 233:63245986:63245986 233:102334155:23843858115 233:165580141:38580172853 233:267914296:62424030968 233:433494437:101004203821 233:701408733:163428234789 233:1134903170:264432438610 233:1836311903:427860673399 233:2971215073:692293112009 233:4807526976:1120153785408 233:7778742049:1812446897417 233:12586269025:2932600682825 377:0:0 377:1:377 377:1:377 377:2:754 377:3:1131 377:5:1885 377:8:3016 377:13:377 377:21:7917 377:34:12818 377:55:20735 377:89:33553 377:144:54288 377:233:87841 377:377:377 377:610:229970 377:987:372099 377:1597:602069 377:2584:974168 377:4181:1576237 377:6765:2550405 377:10946:317434 377:17711:6677047 377:28657:10803689 377:46368:17480736 377:75025:28284425 377:121393:45765161 377:196418:74049586 377:317811:317811 377:514229:193864333 377:832040:313679080 377:1346269:507543413 377:2178309:821222493 377:3524578:1328765906 377:5702887:2149988399 377:9227465:267596485 377:14930352:5628742704 377:24157817:9107497009 377:39088169:14736239713 377:63245986:23843736722 377:102334155:38579976435 377:165580141:62423713157 377:267914296:267914296 377:433494437:163427402749 377:701408733:264431092341 377:1134903170:427858495090 377:1836311903:692289587431 377:2971215073:1120148082521 377:4807526976:1812437669952 377:7778742049:225583519421 377:12586269025:4745023422425 610:0:0 610:1:610 610:1:610 610:2:610 610:3:1830 610:5:610 610:8:2440 610:13:7930 610:21:12810 610:34:10370 610:55:6710 610:89:54290 610:144:43920 610:233:142130 610:377:229970 610:610:610 610:987:602070 610:1597:974170 610:2584:788120 610:4181:2550410 610:6765:825330 610:10946:3338530 610:17711:10803710 610:28657:17480770 610:46368:14142240 610:75025:9153050 610:121393:74049730 610:196418:59907490 610:317811:193864710 610:514229:313679690 610:832040:832040 610:1346269:821224090 610:2178309:1328768490 610:3524578:1074996290 610:5702887:3478761070 610:9227465:1125750730 610:14930352:4553757360 610:24157817:14736268370 610:39088169:23843783090 610:63245986:19290025730 610:102334155:12484766910 610:165580141:101003886010 610:267914296:81713860280 610:433494437:264431606570 610:701408733:427859327130 610:1134903170:1134903170 610:1836311903:1120150260830 610:2971215073:1812441194530 610:4807526976:1466295727680 610:7778742049:4745032649890 610:12586269025:1535524821050 987:0:0 987:1:987 987:1:987 987:2:1974 987:3:987 987:5:4935 987:8:7896 987:13:12831 987:21:987 987:34:33558 987:55:54285 987:89:87843 987:144:47376 987:233:229971 987:377:372099 987:610:602070 987:987:987 987:1597:1576239 987:2584:2550408 987:4181:4126647 987:6765:2225685 987:10946:10803702 987:17711:17480757 987:28657:28284459 987:46368:2179296 987:75025:74049675 987:121393:119814891 987:196418:193864566 987:317811:104559819 987:514229:507544023 987:832040:821223480 987:1346269:1328767503 987:2178309:2178309 987:3524578:3478758486 987:5702887:5628749469 987:9227465:9107507955 987:14930352:4912085808 987:24157817:23843765379 987:39088169:38580022803 987:63245986:62423788182 987:102334155:4809705285 987:165580141:163427599167 987:267914296:264431410152 987:433494437:427859009319 987:701408733:230763473157 987:1134903170:1120149428790 987:1836311903:1812439848261 987:2971215073:2932589277051 987:4807526976:4807526976 987:7778742049:7677618402363 987:12586269025:12422647527675 1597:0:0 1597:1:1597 1597:1:1597 1597:2:3194 1597:3:4791 1597:5:7985 1597:8:12776 1597:13:20761 1597:21:33537 1597:34:54298 1597:55:87835 1597:89:142133 1597:144:229968 1597:233:372101 1597:377:602069 1597:610:974170 1597:987:1576239 1597:1597:1597 1597:2584:4126648 1597:4181:6677057 1597:6765:10803705 1597:10946:17480762 1597:17711:28284467 1597:28657:45765229 1597:46368:74049696 1597:75025:119814925 1597:121393:193864621 1597:196418:313679546 1597:317811:507544167 1597:514229:821223713 1597:832040:1328767880 1597:1346269:2149991593 1597:2178309:3478759473 1597:3524578:5628751066 1597:5702887:5702887 1597:9227465:14736261605 1597:14930352:23843772144 1597:24157817:38580033749 1597:39088169:62423805893 1597:63245986:101003839642 1597:102334155:163427645535 1597:165580141:264431485177 1597:267914296:427859130712 1597:433494437:692290615889 1597:701408733:1120149746601 1597:1134903170:1812440362490 1597:1836311903:2932590109091 1597:2971215073:4745030471581 1597:4807526976:7677620580672 1597:7778742049:12422651052253 1597:12586269025:20100271632925 2584:0:0 2584:1:2584 2584:1:2584 2584:2:2584 2584:3:7752 2584:5:12920 2584:8:2584 2584:13:33592 2584:21:54264 2584:34:2584 2584:55:142120 2584:89:229976 2584:144:46512 2584:233:602072 2584:377:974168 2584:610:788120 2584:987:2550408 2584:1597:4126648 2584:2584:2584 2584:4181:10803704 2584:6765:17480760 2584:10946:14142232 2584:17711:45765224 2584:28657:74049688 2584:46368:14976864 2584:75025:193864600 2584:121393:313679512 2584:196418:14927768 2584:317811:821223624 2584:514229:1328767736 2584:832040:268748920 2584:1346269:3478759096 2584:2178309:5628750456 2584:3524578:4553754776 2584:5702887:14736260008 2584:9227465:23843769560 2584:14930352:14930352 2584:24157817:62423799128 2584:39088169:101003828696 2584:63245986:81713813912 2584:102334155:264431456520 2584:165580141:427859084344 2584:267914296:86536317608 2584:433494437:1120149625208 2584:701408733:1812440166072 2584:1134903170:86252640920 2584:1836311903:4745029957352 2584:2971215073:7677619748632 2584:4807526976:1552831213248 2584:7778742049:20100269454616 2584:12586269025:32522919160600 4181:0:0 4181:1:4181 4181:1:4181 4181:2:8362 4181:3:12543 4181:5:20905 4181:8:33448 4181:13:54353 4181:21:87801 4181:34:142154 4181:55:229955 4181:89:372109 4181:144:602064 4181:233:974173 4181:377:1576237 4181:610:2550410 4181:987:4126647 4181:1597:6677057 4181:2584:10803704 4181:4181:4181 4181:6765:28284465 4181:10946:45765226 4181:17711:74049691 4181:28657:119814917 4181:46368:193864608 4181:75025:313679525 4181:121393:507544133 4181:196418:821223658 4181:317811:1328767791 4181:514229:2149991449 4181:832040:3478759240 4181:1346269:5628750689 4181:2178309:9107509929 4181:3524578:14736260618 4181:5702887:23843770547 4181:9227465:38580031165 4181:14930352:62423801712 4181:24157817:101003832877 4181:39088169:39088169 4181:63245986:264431467466 4181:102334155:427859102055 4181:165580141:692290569521 4181:267914296:1120149671576 4181:433494437:1812440241097 4181:701408733:2932589912673 4181:1134903170:4745030153770 4181:1836311903:7677620066443 4181:2971215073:12422650220213 4181:4807526976:20100270286656 4181:7778742049:32522920506869 4181:12586269025:52623190793525 6765:0:0 6765:1:6765 6765:1:6765 6765:2:13530 6765:3:6765 6765:5:6765 6765:8:54120 6765:13:87945 6765:21:47355 6765:34:230010 6765:55:6765 6765:89:602085 6765:144:324720 6765:233:1576245 6765:377:2550405 6765:610:825330 6765:987:2225685 6765:1597:10803705 6765:2584:17480760 6765:4181:28284465 6765:6765:6765 6765:10946:74049690 6765:17711:119814915 6765:28657:193864605 6765:46368:104559840 6765:75025:101508825 6765:121393:821223645 6765:196418:1328767770 6765:317811:716663805 6765:514229:3478759185 6765:832040:102340920 6765:1346269:9107509785 6765:2178309:4912086795 6765:3524578:23843770170 6765:5702887:38580030555 6765:9227465:12484760145 6765:14930352:33667943760 6765:24157817:163427632005 6765:39088169:264431463285 6765:63245986:427859095290 6765:102334155:102334155 6765:165580141:1120149653865 6765:267914296:1812440212440 6765:433494437:2932589866305 6765:701408733:1581676692915 6765:1134903170:1535523989010 6765:1836311903:12422650023795 6765:2971215073:20100269968845 6765:4807526976:10840973330880 6765:7778742049:52623189961485 6765:12586269025:1548111090075 10946:0:0 10946:1:10946 10946:1:10946 10946:2:10946 10946:3:32838 10946:5:54730 10946:8:43784 10946:13:10946 10946:21:229866 10946:34:186082 10946:55:602030 10946:89:974194 10946:144:788112 10946:233:2550418 10946:377:317434 10946:610:3338530 10946:987:10803702 10946:1597:17480762 10946:2584:14142232 10946:4181:45765226 10946:6765:74049690 10946:10946:10946 10946:17711:193864606 10946:28657:313679522 10946:46368:253772064 10946:75025:821223650 10946:121393:1328767778 10946:196418:1074995714 10946:317811:267596862 10946:514229:5628750634 10946:832040:4553754920 10946:1346269:14736260474 10946:2178309:23843770314 10946:3524578:19290015394 10946:5702887:62423801102 10946:9227465:7769525530 10946:14930352:81713816496 10946:24157817:264431464882 10946:39088169:427859097874 10946:63245986:346145281378 10946:102334155:1120149660630 10946:165580141:1812440223386 10946:267914296:267914296 10946:433494437:4745030107402 10946:701408733:7677619991418 10946:1134903170:6211325049410 10946:1836311903:20100270090238 10946:2971215073:32522920189058 10946:4807526976:26311595139648 10946:7778742049:6549700805258 10946:12586269025:137769300747650 17711:0:0 17711:1:17711 17711:1:17711 17711:2:35422 17711:3:53133 17711:5:88555 17711:8:141688 17711:13:230243 17711:21:371931 17711:34:602174 17711:55:974105 17711:89:17711 17711:144:2550384 17711:233:4126663 17711:377:6677047 17711:610:10803710 17711:987:17480757 17711:1597:28284467 17711:2584:45765224 17711:4181:74049691 17711:6765:119814915 17711:10946:193864606 17711:17711:17711 17711:28657:507544127 17711:46368:821223648 17711:75025:1328767775 17711:121393:2149991423 17711:196418:3478759198 17711:317811:5628750621 17711:514229:9107509819 17711:832040:14736260440 17711:1346269:23843770259 17711:2178309:38580030699 17711:3524578:701391022 17711:5702887:101003831657 17711:9227465:163427632615 17711:14930352:264431464272 17711:24157817:427859096887 17711:39088169:692290561159 17711:63245986:1120149658046 17711:102334155:1812440219205 17711:165580141:2932589877251 17711:267914296:4745030096456 17711:433494437:7677619973707 17711:701408733:701408733 17711:1134903170:20100270043870 17711:1836311903:32522920114033 17711:2971215073:52623190157903 17711:4807526976:85146110271936 17711:7778742049:137769300429839 17711:12586269025:222915410701775 28657:0:0 28657:1:28657 28657:1:28657 28657:2:57314 28657:3:85971 28657:5:143285 28657:8:229256 28657:13:372541 28657:21:601797 28657:34:974338 28657:55:1576135 28657:89:2550473 28657:144:4126608 28657:233:6677081 28657:377:10803689 28657:610:17480770 28657:987:28284459 28657:1597:45765229 28657:2584:74049688 28657:4181:119814917 28657:6765:193864605 28657:10946:313679522 28657:17711:507544127 28657:28657:28657 28657:46368:1328767776 28657:75025:2149991425 28657:121393:3478759201 28657:196418:5628750626 28657:317811:9107509827 28657:514229:14736260453 28657:832040:23843770280 28657:1346269:38580030733 28657:2178309:62423801013 28657:3524578:101003831746 28657:5702887:163427632759 28657:9227465:264431464505 28657:14930352:427859097264 28657:24157817:692290561769 28657:39088169:1120149659033 28657:63245986:1812440220802 28657:102334155:2932589879835 28657:165580141:4745030100637 28657:267914296:7677619980472 28657:433494437:12422650081109 28657:701408733:20100270061581 28657:1134903170:32522920142690 28657:1836311903:1836311903 28657:2971215073:85146110346961 28657:4807526976:137769300551232 28657:7778742049:222915410898193 28657:12586269025:360684711449425 46368:0:0 46368:1:46368 46368:1:46368 46368:2:46368 46368:3:46368 46368:5:231840 46368:8:46368 46368:13:602784 46368:21:46368 46368:34:788256 46368:55:2550240 46368:89:4126752 46368:144:46368 46368:233:10803744 46368:377:17480736 46368:610:14142240 46368:987:2179296 46368:1597:74049696 46368:2584:14976864 46368:4181:193864608 46368:6765:104559840 46368:10946:253772064 46368:17711:821223648 46368:28657:1328767776 46368:46368:46368 46368:75025:3478759200 46368:121393:5628750624 46368:196418:4553754912 46368:317811:4912086816 46368:514229:23843770272 46368:832040:4822503840 46368:1346269:62423800992 46368:2178309:4809706272 46368:3524578:81713816352 46368:5702887:264431464416 46368:9227465:427859097120 46368:14930352:4807573344 46368:24157817:1120149658656 46368:39088169:1812440220192 46368:63245986:1466294939424 46368:102334155:225953814240 46368:165580141:7677619977888 46368:267914296:1552831259616 46368:433494437:20100270054816 46368:701408733:10840973377248 46368:1134903170:26311595093280 46368:1836311903:85146110318304 46368:2971215073:137769300504864 46368:4807526976:4807526976 46368:7778742049:360684711328032 46368:12586269025:583600122151200 75025:0:0 75025:1:75025 75025:1:75025 75025:2:150050 75025:3:225075 75025:5:75025 75025:8:600200 75025:13:975325 75025:21:1575525 75025:34:2550850 75025:55:825275 75025:89:6677225 75025:144:10803600 75025:233:17480825 75025:377:28284425 75025:610:9153050 75025:987:74049675 75025:1597:119814925 75025:2584:193864600 75025:4181:313679525 75025:6765:101508825 75025:10946:821223650 75025:17711:1328767775 75025:28657:2149991425 75025:46368:3478759200 75025:75025:75025 75025:121393:9107509825 75025:196418:14736260450 75025:317811:23843770275 75025:514229:38580030725 75025:832040:12484760200 75025:1346269:101003831725 75025:2178309:163427632725 75025:3524578:264431464450 75025:5702887:427859097175 75025:9227465:138458112325 75025:14930352:1120149658800 75025:24157817:1812440220425 75025:39088169:2932589879225 75025:63245986:4745030099650 75025:102334155:1535523995775 75025:165580141:12422650078525 75025:267914296:20100270057400 75025:433494437:32522920135925 75025:701408733:52623190193325 75025:1134903170:17029222065850 75025:1836311903:137769300522575 75025:2971215073:222915410851825 75025:4807526976:360684711374400 75025:7778742049:583600122226225 75025:12586269025:12586269025 121393:0:0 121393:1:121393 121393:1:121393 121393:2:242786 121393:3:364179 121393:5:606965 121393:8:971144 121393:13:1578109 121393:21:2549253 121393:34:4127362 121393:55:6676615 121393:89:10803977 121393:144:17480592 121393:233:121393 121393:377:45765161 121393:610:74049730 121393:987:119814891 121393:1597:193864621 121393:2584:313679512 121393:4181:507544133 121393:6765:821223645 121393:10946:1328767778 121393:17711:2149991423 121393:28657:3478759201 121393:46368:5628750624 121393:75025:9107509825 121393:121393:121393 121393:196418:23843770274 121393:317811:38580030723 121393:514229:62423800997 121393:832040:101003831720 121393:1346269:163427632717 121393:2178309:264431464437 121393:3524578:427859097154 121393:5702887:692290561591 121393:9227465:1120149658745 121393:14930352:1812440220336 121393:24157817:2932589879081 121393:39088169:4745030099417 121393:63245986:32951158706 121393:102334155:12422650077915 121393:165580141:20100270056413 121393:267914296:32522920134328 121393:433494437:52623190190741 121393:701408733:85146110325069 121393:1134903170:137769300515810 121393:1836311903:222915410840879 121393:2971215073:360684711356689 121393:4807526976:583600122197568 121393:7778742049:944284833554257 121393:12586269025:1527884955751825 196418:0:0 196418:1:196418 196418:1:196418 196418:2:196418 196418:3:589254 196418:5:982090 196418:8:785672 196418:13:2553434 196418:21:4124778 196418:34:196418 196418:55:10802990 196418:89:17481202 196418:144:14142096 196418:233:45765394 196418:377:74049586 196418:610:59907490 196418:987:193864566 196418:1597:313679546 196418:2584:14927768 196418:4181:821223658 196418:6765:1328767770 196418:10946:1074995714 196418:17711:3478759198 196418:28657:5628750626 196418:46368:4553754912 196418:75025:14736260450 196418:121393:23843770274 196418:196418:196418 196418:317811:62423800998 196418:514229:101003831722 196418:832040:81713816360 196418:1346269:264431464442 196418:2178309:427859097162 196418:3524578:346145280802 196418:5702887:1120149658766 196418:9227465:1812440220370 196418:14930352:86252643504 196418:24157817:4745030099506 196418:39088169:7677619978642 196418:63245986:6211325039074 196418:102334155:20100270056790 196418:165580141:32522920134938 196418:267914296:26311595095864 196418:433494437:85146110326666 196418:701408733:137769300518394 196418:1134903170:6556335613090 196418:1836311903:360684711363454 196418:2971215073:583600122208514 196418:4807526976:472142416785984 196418:7778742049:1527884955780482 196418:12586269025:2472169789352450 317811:0:0 317811:1:317811 317811:1:317811 317811:2:635622 317811:3:317811 317811:5:1589055 317811:8:2542488 317811:13:317811 317811:21:2224677 317811:34:10805574 317811:55:17479605 317811:89:28285179 317811:144:15254928 317811:233:74049963 317811:377:317811 317811:610:193864710 317811:987:104559819 317811:1597:507544167 317811:2584:821223624 317811:4181:1328767791 317811:6765:716663805 317811:10946:267596862 317811:17711:5628750621 317811:28657:9107509827 317811:46368:4912086816 317811:75025:23843770275 317811:121393:38580030723 317811:196418:62423800998 317811:317811:317811 317811:514229:163427632719 317811:832040:264431464440 317811:1346269:427859097159 317811:2178309:230763520533 317811:3524578:1120149658758 317811:5702887:1812440220357 317811:9227465:225583836855 317811:14930352:1581676699824 317811:24157817:7677619978587 317811:39088169:12422650078059 317811:63245986:20100270056646 317811:102334155:10840973378235 317811:165580141:52623190191351 317811:267914296:225851751528 317811:433494437:137769300517407 317811:701408733:74305136947821 317811:1134903170:360684711360870 317811:1836311903:583600122204333 317811:2971215073:944284833565203 317811:4807526976:509294985256512 317811:7778742049:190166906871903 317811:12586269025:4000054745104275 514229:0:0 514229:1:514229 514229:1:514229 514229:2:1028458 514229:3:1542687 514229:5:2571145 514229:8:4113832 514229:13:6684977 514229:21:10798809 514229:34:17483786 514229:55:28282595 514229:89:45766381 514229:144:74048976 514229:233:119815357 514229:377:193864333 514229:610:313679690 514229:987:507544023 514229:1597:821223713 514229:2584:1328767736 514229:4181:2149991449 514229:6765:3478759185 514229:10946:5628750634 514229:17711:9107509819 514229:28657:14736260453 514229:46368:23843770272 514229:75025:38580030725 514229:121393:62423800997 514229:196418:101003831722 514229:317811:163427632719 514229:514229:514229 514229:832040:427859097160 514229:1346269:692290561601 514229:2178309:1120149658761 514229:3524578:1812440220362 514229:5702887:2932589879123 514229:9227465:4745030099485 514229:14930352:7677619978608 514229:24157817:12422650078093 514229:39088169:20100270056701 514229:63245986:32522920134794 514229:102334155:52623190191495 514229:165580141:85146110326289 514229:267914296:137769300517784 514229:433494437:222915410844073 514229:701408733:360684711361857 514229:1134903170:583600122205930 514229:1836311903:944284833567787 514229:2971215073:1527884955773717 514229:4807526976:2472169789341504 514229:7778742049:4000054745115221 514229:12586269025:6472224534456725 832040:0:0 832040:1:832040 832040:1:832040 832040:2:832040 832040:3:2496120 832040:5:832040 832040:8:832040 832040:13:10816520 832040:21:17472840 832040:34:14144680 832040:55:832040 832040:89:74051560 832040:144:14976720 832040:233:193865320 832040:377:313679080 832040:610:832040 832040:987:821223480 832040:1597:1328767880 832040:2584:268748920 832040:4181:3478759240 832040:6765:102340920 832040:10946:4553754920 832040:17711:14736260440 832040:28657:23843770280 832040:46368:4822503840 832040:75025:12484760200 832040:121393:101003831720 832040:196418:81713816360 832040:317811:264431464440 832040:514229:427859097160 832040:832040:832040 832040:1346269:1120149658760 832040:2178309:1812440220360 832040:3524578:1466294939560 832040:5702887:4745030099480 832040:9227465:1535523995720 832040:14930352:1552831259760 832040:24157817:20100270056680 832040:39088169:32522920134760 832040:63245986:26311595095720 832040:102334155:1548111096840 832040:165580141:137769300517640 832040:267914296:27864426355480 832040:433494437:360684711361480 832040:701408733:583600122205320 832040:1134903170:1548007923880 832040:1836311903:1527884955772120 832040:2971215073:2472169789338920 832040:4807526976:500006843138880 832040:7778742049:6472224534449960 832040:12586269025:190405077810200 1346269:0:0 1346269:1:1346269 1346269:1:1346269 1346269:2:2692538 1346269:3:4038807 1346269:5:6731345 1346269:8:10770152 1346269:13:17501497 1346269:21:28271649 1346269:34:45773146 1346269:55:74044795 1346269:89:119817941 1346269:144:193862736 1346269:233:313680677 1346269:377:507543413 1346269:610:821224090 1346269:987:1328767503 1346269:1597:2149991593 1346269:2584:3478759096 1346269:4181:5628750689 1346269:6765:9107509785 1346269:10946:14736260474 1346269:17711:23843770259 1346269:28657:38580030733 1346269:46368:62423800992 1346269:75025:101003831725 1346269:121393:163427632717 1346269:196418:264431464442 1346269:317811:427859097159 1346269:514229:692290561601 1346269:832040:1120149658760 1346269:1346269:1346269 1346269:2178309:2932589879121 1346269:3524578:4745030099482 1346269:5702887:7677619978603 1346269:9227465:12422650078085 1346269:14930352:20100270056688 1346269:24157817:32522920134773 1346269:39088169:52623190191461 1346269:63245986:85146110326234 1346269:102334155:137769300517695 1346269:165580141:222915410843929 1346269:267914296:360684711361624 1346269:433494437:583600122205553 1346269:701408733:944284833567177 1346269:1134903170:1527884955772730 1346269:1836311903:2472169789339907 1346269:2971215073:4000054745112637 1346269:4807526976:6472224534452544 1346269:7778742049:10472279279565181 1346269:12586269025:16944503814017725 2178309:0:0 2178309:1:2178309 2178309:1:2178309 2178309:2:4356618 2178309:3:2178309 2178309:5:10891545 2178309:8:17426472 2178309:13:28318017 2178309:21:2178309 2178309:34:74062506 2178309:55:119806995 2178309:89:193869501 2178309:144:104558832 2178309:233:507545997 2178309:377:821222493 2178309:610:1328768490 2178309:987:2178309 2178309:1597:3478759473 2178309:2584:5628750456 2178309:4181:9107509929 2178309:6765:4912086795 2178309:10946:23843770314 2178309:17711:38580030699 2178309:28657:62423801013 2178309:46368:4809706272 2178309:75025:163427632725 2178309:121393:264431464437 2178309:196418:427859097162 2178309:317811:230763520533 2178309:514229:1120149658761 2178309:832040:1812440220360 2178309:1346269:2932589879121 2178309:2178309:2178309 2178309:3524578:7677619978602 2178309:5702887:12422650078083 2178309:9227465:20100270056685 2178309:14930352:10840973378256 2178309:24157817:52623190191453 2178309:39088169:85146110326221 2178309:63245986:137769300517674 2178309:102334155:10615019563995 2178309:165580141:360684711361569 2178309:267914296:583600122205464 2178309:433494437:944284833567033 2178309:701408733:509294985257499 2178309:1134903170:2472169789339530 2178309:1836311903:4000054745112027 2178309:2971215073:6472224534451557 2178309:4807526976:10610212036032 2178309:7778742049:16944503814015141 2178309:12586269025:27416783093578725 3524578:0:0 3524578:1:3524578 3524578:1:3524578 3524578:2:3524578 3524578:3:10573734 3524578:5:17622890 3524578:8:14098312 3524578:13:45819514 3524578:21:74016138 3524578:34:59917826 3524578:55:193851790 3524578:89:3524578 3524578:144:253769616 3524578:233:821226674 3524578:377:1328765906 3524578:610:1074996290 3524578:987:3478758486 3524578:1597:5628751066 3524578:2584:4553754776 3524578:4181:14736260618 3524578:6765:23843770170 3524578:10946:19290015394 3524578:17711:701391022 3524578:28657:101003831746 3524578:46368:81713816352 3524578:75025:264431464450 3524578:121393:427859097154 3524578:196418:346145280802 3524578:317811:1120149658758 3524578:514229:1812440220362 3524578:832040:1466294939560 3524578:1346269:4745030099482 3524578:2178309:7677619978602 3524578:3524578:3524578 3524578:5702887:20100270056686 3524578:9227465:32522920134770 3524578:14930352:26311595095728 3524578:24157817:85146110326226 3524578:39088169:137769300517682 3524578:63245986:111457705421954 3524578:102334155:360684711361590 3524578:165580141:583600122205498 3524578:267914296:472142416783544 3524578:433494437:1527884955772586 3524578:701408733:27777188644266 3524578:1134903170:2000027372556130 3524578:1836311903:6472224534451934 3524578:2971215073:10472279279564194 3524578:4807526976:8472251907008064 3524578:7778742049:27416783093580322 3524578:12586269025:44361286907596450 5702887:0:0 5702887:1:5702887 5702887:1:5702887 5702887:2:11405774 5702887:3:17108661 5702887:5:28514435 5702887:8:45623096 5702887:13:74137531 5702887:21:119760627 5702887:34:193898158 5702887:55:313658785 5702887:89:507556943 5702887:144:821215728 5702887:233:1328772671 5702887:377:2149988399 5702887:610:3478761070 5702887:987:5628749469 5702887:1597:5702887 5702887:2584:14736260008 5702887:4181:23843770547 5702887:6765:38580030555 5702887:10946:62423801102 5702887:17711:101003831657 5702887:28657:163427632759 5702887:46368:264431464416 5702887:75025:427859097175 5702887:121393:692290561591 5702887:196418:1120149658766 5702887:317811:1812440220357 5702887:514229:2932589879123 5702887:832040:4745030099480 5702887:1346269:7677619978603 5702887:2178309:12422650078083 5702887:3524578:20100270056686 5702887:5702887:5702887 5702887:9227465:52623190191455 5702887:14930352:85146110326224 5702887:24157817:137769300517679 5702887:39088169:222915410843903 5702887:63245986:360684711361582 5702887:102334155:583600122205485 5702887:165580141:944284833567067 5702887:267914296:1527884955772552 5702887:433494437:2472169789339619 5702887:701408733:4000054745112171 5702887:1134903170:6472224534451790 5702887:1836311903:10472279279563961 5702887:2971215073:16944503814015751 5702887:4807526976:27416783093579712 5702887:7778742049:44361286907595463 5702887:12586269025:71778070001175175 9227465:0:0 9227465:1:9227465 9227465:1:9227465 9227465:2:18454930 9227465:3:27682395 9227465:5:9227465 9227465:8:73819720 9227465:13:9227465 9227465:21:193776765 9227465:34:313733810 9227465:55:101502115 9227465:89:821244385 9227465:144:1328754960 9227465:233:2149999345 9227465:377:267596485 9227465:610:1125750730 9227465:987:9107507955 9227465:1597:14736261605 9227465:2584:23843769560 9227465:4181:38580031165 9227465:6765:12484760145 9227465:10946:7769525530 9227465:17711:163427632615 9227465:28657:264431464505 9227465:46368:427859097120 9227465:75025:138458112325 9227465:121393:1120149658745 9227465:196418:1812440220370 9227465:317811:225583836855 9227465:514229:4745030099485 9227465:832040:1535523995720 9227465:1346269:12422650078085 9227465:2178309:20100270056685 9227465:3524578:32522920134770 9227465:5702887:52623190191455 9227465:9227465:9227465 9227465:14930352:137769300517680 9227465:24157817:222915410843905 9227465:39088169:360684711361585 9227465:63245986:583600122205490 9227465:102334155:188856966713415 9227465:165580141:1527884955772565 9227465:267914296:190166906872280 9227465:433494437:4000054745112205 9227465:701408733:6472224534451845 9227465:1134903170:2094455855912810 9227465:1836311903:16944503814015895 9227465:2971215073:27416783093579945 9227465:4807526976:44361286907595840 9227465:7778742049:5521390000090445 9227465:12586269025:23227871381754325 14930352:0:0 14930352:1:14930352 14930352:1:14930352 14930352:2:14930352 14930352:3:14930352 14930352:5:74651760 14930352:8:14930352 14930352:13:194094576 14930352:21:104512464 14930352:34:14930352 14930352:55:821169360 14930352:89:1328801328 14930352:144:14930352 14930352:233:3478772016 14930352:377:5628742704 14930352:610:4553757360 14930352:987:4912085808 14930352:1597:23843772144 14930352:2584:14930352 14930352:4181:62423801712 14930352:6765:33667943760 14930352:10946:81713816496 14930352:17711:264431464272 14930352:28657:427859097264 14930352:46368:4807573344 14930352:75025:1120149658800 14930352:121393:1812440220336 14930352:196418:86252643504 14930352:317811:1581676699824 14930352:514229:7677619978608 14930352:832040:1552831259760 14930352:1346269:20100270056688 14930352:2178309:10840973378256 14930352:3524578:26311595095728 14930352:5702887:85146110326224 14930352:9227465:137769300517680 14930352:14930352:14930352 14930352:24157817:360684711361584 14930352:39088169:583600122205488 14930352:63245986:472142416783536 14930352:102334155:509294985257520 14930352:165580141:2472169789339632 14930352:267914296:500006843139024 14930352:433494437:6472224534451824 14930352:701408733:3490759759854672 14930352:1134903170:498367759235760 14930352:1836311903:27416783093579856 14930352:2971215073:44361286907595696 14930352:4807526976:498458819452608 14930352:7778742049:116139356908771248 14930352:12586269025:187917426909946800 24157817:0:0 24157817:1:24157817 24157817:1:24157817 24157817:2:48315634 24157817:3:72473451 24157817:5:120789085 24157817:8:193262536 24157817:13:314051621 24157817:21:507314157 24157817:34:821365778 24157817:55:1328679935 24157817:89:2150045713 24157817:144:3478725648 24157817:233:5628771361 24157817:377:9107497009 24157817:610:14736268370 24157817:987:23843765379 24157817:1597:38580033749 24157817:2584:62423799128 24157817:4181:101003832877 24157817:6765:163427632005 24157817:10946:264431464882 24157817:17711:427859096887 24157817:28657:692290561769 24157817:46368:1120149658656 24157817:75025:1812440220425 24157817:121393:2932589879081 24157817:196418:4745030099506 24157817:317811:7677619978587 24157817:514229:12422650078093 24157817:832040:20100270056680 24157817:1346269:32522920134773 24157817:2178309:52623190191453 24157817:3524578:85146110326226 24157817:5702887:137769300517679 24157817:9227465:222915410843905 24157817:14930352:360684711361584 24157817:24157817:24157817 24157817:39088169:944284833567073 24157817:63245986:1527884955772562 24157817:102334155:2472169789339635 24157817:165580141:4000054745112197 24157817:267914296:6472224534451832 24157817:433494437:10472279279564029 24157817:701408733:16944503814015861 24157817:1134903170:27416783093579890 24157817:1836311903:44361286907595751 24157817:2971215073:71778070001175641 24157817:4807526976:116139356908771392 24157817:7778742049:187917426909947033 24157817:12586269025:304056783818718425 39088169:0:0 39088169:1:39088169 39088169:1:39088169 39088169:2:78176338 39088169:3:117264507 39088169:5:195440845 39088169:8:312705352 39088169:13:508146197 39088169:21:820851549 39088169:34:1328997746 39088169:55:2149849295 39088169:89:3478847041 39088169:144:5628696336 39088169:233:9107543377 39088169:377:14736239713 39088169:610:23843783090 39088169:987:38580022803 39088169:1597:62423805893 39088169:2584:101003828696 39088169:4181:39088169 39088169:6765:264431463285 39088169:10946:427859097874 39088169:17711:692290561159 39088169:28657:1120149659033 39088169:46368:1812440220192 39088169:75025:2932589879225 39088169:121393:4745030099417 39088169:196418:7677619978642 39088169:317811:12422650078059 39088169:514229:20100270056701 39088169:832040:32522920134760 39088169:1346269:52623190191461 39088169:2178309:85146110326221 39088169:3524578:137769300517682 39088169:5702887:222915410843903 39088169:9227465:360684711361585 39088169:14930352:583600122205488 39088169:24157817:944284833567073 39088169:39088169:39088169 39088169:63245986:2472169789339634 39088169:102334155:4000054745112195 39088169:165580141:6472224534451829 39088169:267914296:10472279279564024 39088169:433494437:16944503814015853 39088169:701408733:27416783093579877 39088169:1134903170:44361286907595730 39088169:1836311903:71778070001175607 39088169:2971215073:116139356908771337 39088169:4807526976:187917426909946944 39088169:7778742049:304056783818718281 39088169:12586269025:491974210728665225 63245986:0:0 63245986:1:63245986 63245986:1:63245986 63245986:2:63245986 63245986:3:189737958 63245986:5:316229930 63245986:8:252983944 63245986:13:822197818 63245986:21:1328165706 63245986:34:1075181762 63245986:55:3478529230 63245986:89:5628892754 63245986:144:4553710992 63245986:233:63245986 63245986:377:23843736722 63245986:610:19290025730 63245986:987:62423788182 63245986:1597:101003839642 63245986:2584:81713813912 63245986:4181:264431467466 63245986:6765:427859095290 63245986:10946:346145281378 63245986:17711:1120149658046 63245986:28657:1812440220802 63245986:46368:1466294939424 63245986:75025:4745030099650 63245986:121393:32951158706 63245986:196418:6211325039074 63245986:317811:20100270056646 63245986:514229:32522920134794 63245986:832040:26311595095720 63245986:1346269:85146110326234 63245986:2178309:137769300517674 63245986:3524578:111457705421954 63245986:5702887:360684711361582 63245986:9227465:583600122205490 63245986:14930352:472142416783536 63245986:24157817:1527884955772562 63245986:39088169:2472169789339634 63245986:63245986:63245986 63245986:102334155:6472224534451830 63245986:165580141:10472279279564026 63245986:267914296:8472251907007928 63245986:433494437:27416783093579882 63245986:701408733:44361286907595738 63245986:1134903170:35889035000587810 63245986:1836311903:116139356908771358 63245986:2971215073:187917426909946978 63245986:4807526976:152028391909359168 63245986:7778742049:491974210728665314 63245986:12586269025:796030994547383650 102334155:0:0 102334155:1:102334155 102334155:1:102334155 102334155:2:204668310 102334155:3:102334155 102334155:5:102334155 102334155:8:818673240 102334155:13:1330344015 102334155:21:102334155 102334155:34:3479361270 102334155:55:102334155 102334155:89:9107739795 102334155:144:4912039440 102334155:233:23843858115 102334155:377:38579976435 102334155:610:12484766910 102334155:987:4809705285 102334155:1597:163427645535 102334155:2584:264431456520 102334155:4181:427859102055 102334155:6765:102334155 102334155:10946:1120149660630 102334155:17711:1812440219205 102334155:28657:2932589879835 102334155:46368:225953814240 102334155:75025:1535523995775 102334155:121393:12422650077915 102334155:196418:20100270056790 102334155:317811:10840973378235 102334155:514229:52623190191495 102334155:832040:1548111096840 102334155:1346269:137769300517695 102334155:2178309:10615019563995 102334155:3524578:360684711361590 102334155:5702887:583600122205485 102334155:9227465:188856966713415 102334155:14930352:509294985257520 102334155:24157817:2472169789339635 102334155:39088169:4000054745112195 102334155:63245986:6472224534451830 102334155:102334155:102334155 102334155:165580141:16944503814015855 102334155:267914296:27416783093579880 102334155:433494437:44361286907595735 102334155:701408733:23926023333725205 102334155:1134903170:23227871381754270 102334155:1836311903:187917426909946965 102334155:2971215073:304056783818718315 102334155:4807526976:23427343368031680 102334155:7778742049:796030994547383595 102334155:12586269025:23418276459564525 165580141:0:0 165580141:1:165580141 165580141:1:165580141 165580141:2:331160282 165580141:3:496740423 165580141:5:827900705 165580141:8:1324641128 165580141:13:2152541833 165580141:21:3477182961 165580141:34:5629724794 165580141:55:9106907755 165580141:89:14736632549 165580141:144:23843540304 165580141:233:38580172853 165580141:377:62423713157 165580141:610:101003886010 165580141:987:163427599167 165580141:1597:264431485177 165580141:2584:427859084344 165580141:4181:692290569521 165580141:6765:1120149653865 165580141:10946:1812440223386 165580141:17711:2932589877251 165580141:28657:4745030100637 165580141:46368:7677619977888 165580141:75025:12422650078525 165580141:121393:20100270056413 165580141:196418:32522920134938 165580141:317811:52623190191351 165580141:514229:85146110326289 165580141:832040:137769300517640 165580141:1346269:222915410843929 165580141:2178309:360684711361569 165580141:3524578:583600122205498 165580141:5702887:944284833567067 165580141:9227465:1527884955772565 165580141:14930352:2472169789339632 165580141:24157817:4000054745112197 165580141:39088169:6472224534451829 165580141:63245986:10472279279564026 165580141:102334155:16944503814015855 165580141:165580141:165580141 165580141:267914296:44361286907595736 165580141:433494437:71778070001175617 165580141:701408733:116139356908771353 165580141:1134903170:187917426909946970 165580141:1836311903:304056783818718323 165580141:2971215073:491974210728665293 165580141:4807526976:796030994547383616 165580141:7778742049:1288005205276048909 165580141:12586269025:2084036199823432525 267914296:0:0 267914296:1:267914296 267914296:1:267914296 267914296:2:267914296 267914296:3:803742888 267914296:5:1339571480 267914296:8:267914296 267914296:13:267914296 267914296:21:5626200216 267914296:34:4554543032 267914296:55:14735286280 267914296:89:23844372344 267914296:144:4822457328 267914296:233:62424030968 267914296:377:267914296 267914296:610:81713860280 267914296:987:264431410152 267914296:1597:427859130712 267914296:2584:86536317608 267914296:4181:1120149671576 267914296:6765:1812440212440 267914296:10946:267914296 267914296:17711:4745030096456 267914296:28657:7677619980472 267914296:46368:1552831259616 267914296:75025:20100270057400 267914296:121393:32522920134328 267914296:196418:26311595095864 267914296:317811:225851751528 267914296:514229:137769300517784 267914296:832040:27864426355480 267914296:1346269:360684711361624 267914296:2178309:583600122205464 267914296:3524578:472142416783544 267914296:5702887:1527884955772552 267914296:9227465:190166906872280 267914296:14930352:500006843139024 267914296:24157817:6472224534451832 267914296:39088169:10472279279564024 267914296:63245986:8472251907007928 267914296:102334155:27416783093579880 267914296:165580141:44361286907595736 267914296:267914296:267914296 267914296:433494437:116139356908771352 267914296:701408733:187917426909946968 267914296:1134903170:152028391909359160 267914296:1836311903:491974210728665288 267914296:2971215073:796030994547383608 267914296:4807526976:161000650659506112 267914296:7778742049:160310476909494808 267914296:12586269025:3372041405099481400 433494437:0:0 433494437:1:433494437 433494437:1:433494437 433494437:2:866988874 433494437:3:1300483311 433494437:5:2167472185 433494437:8:3467955496 433494437:13:5635427681 433494437:21:9103383177 433494437:34:14738810858 433494437:55:23842194035 433494437:89:38581004893 433494437:144:62423198928 433494437:233:101004203821 433494437:377:163427402749 433494437:610:264431606570 433494437:987:427859009319 433494437:1597:692290615889 433494437:2584:1120149625208 433494437:4181:1812440241097 433494437:6765:2932589866305 433494437:10946:4745030107402 433494437:17711:7677619973707 433494437:28657:12422650081109 433494437:46368:20100270054816 433494437:75025:32522920135925 433494437:121393:52623190190741 433494437:196418:85146110326666 433494437:317811:137769300517407 433494437:514229:222915410844073 433494437:832040:360684711361480 433494437:1346269:583600122205553 433494437:2178309:944284833567033 433494437:3524578:1527884955772586 433494437:5702887:2472169789339619 433494437:9227465:4000054745112205 433494437:14930352:6472224534451824 433494437:24157817:10472279279564029 433494437:39088169:16944503814015853 433494437:63245986:27416783093579882 433494437:102334155:44361286907595735 433494437:165580141:71778070001175617 433494437:267914296:116139356908771352 433494437:433494437:433494437 433494437:701408733:304056783818718321 433494437:1134903170:491974210728665290 433494437:1836311903:796030994547383611 433494437:2971215073:1288005205276048901 433494437:4807526976:2084036199823432512 433494437:7778742049:3372041405099481413 433494437:12586269025:5456077604922913925 701408733:0:0 701408733:1:701408733 701408733:1:701408733 701408733:2:1402817466 701408733:3:701408733 701408733:5:3507043665 701408733:8:5611269864 701408733:13:9118313529 701408733:21:4909861131 701408733:34:23847896922 701408733:55:38577480315 701408733:89:701408733 701408733:144:33667619184 701408733:233:163428234789 701408733:377:264431092341 701408733:610:427859327130 701408733:987:230763473157 701408733:1597:1120149746601 701408733:2584:1812440166072 701408733:4181:2932589912673 701408733:6765:1581676692915 701408733:10946:7677619991418 701408733:17711:701408733 701408733:28657:20100270061581 701408733:46368:10840973377248 701408733:75025:52623190193325 701408733:121393:85146110325069 701408733:196418:137769300518394 701408733:317811:74305136947821 701408733:514229:360684711361857 701408733:832040:583600122205320 701408733:1346269:944284833567177 701408733:2178309:509294985257499 701408733:3524578:27777188644266 701408733:5702887:4000054745112171 701408733:9227465:6472224534451845 701408733:14930352:3490759759854672 701408733:24157817:16944503814015861 701408733:39088169:27416783093579877 701408733:63245986:44361286907595738 701408733:102334155:23926023333725205 701408733:165580141:116139356908771353 701408733:267914296:187917426909946968 701408733:433494437:304056783818718321 701408733:701408733:701408733 701408733:1134903170:796030994547383610 701408733:1836311903:1288005205276048899 701408733:2971215073:2084036199823432509 701408733:4807526976:1124013801699827136 701408733:7778742049:5456077604922913917 701408733:12586269025:8828119010022395325 1134903170:0:0 1134903170:1:1134903170 1134903170:1:1134903170 1134903170:2:1134903170 1134903170:3:3404709510 1134903170:5:1134903170 1134903170:8:4539612680 1134903170:13:14753741210 1134903170:21:23832966570 1134903170:34:1134903170 1134903170:55:12483934870 1134903170:89:101006382130 1134903170:144:81713028240 1134903170:233:264432438610 1134903170:377:427858495090 1134903170:610:1134903170 1134903170:987:1120149428790 1134903170:1597:1812440362490 1134903170:2584:86252640920 1134903170:4181:4745030153770 1134903170:6765:1535523989010 1134903170:10946:6211325049410 1134903170:17711:20100270043870 1134903170:28657:32522920142690 1134903170:46368:26311595093280 1134903170:75025:17029222065850 1134903170:121393:137769300515810 1134903170:196418:6556335613090 1134903170:317811:360684711360870 1134903170:514229:583600122205930 1134903170:832040:1548007923880 1134903170:1346269:1527884955772730 1134903170:2178309:2472169789339530 1134903170:3524578:2000027372556130 1134903170:5702887:6472224534451790 1134903170:9227465:2094455855912810 1134903170:14930352:498367759235760 1134903170:24157817:27416783093579890 1134903170:39088169:44361286907595730 1134903170:63245986:35889035000587810 1134903170:102334155:23227871381754270 1134903170:165580141:187917426909946970 1134903170:267914296:152028391909359160 1134903170:433494437:491974210728665290 1134903170:701408733:796030994547383610 1134903170:1134903170:1134903170 1134903170:1836311903:2084036199823432510 1134903170:2971215073:3372041405099481410 1134903170:4807526976:2728038802461456960 1134903170:7778742049:8828119010022395330 1134903170:12586269025:2856839322989061850 1836311903:0:0 1836311903:1:1836311903 1836311903:1:1836311903 1836311903:2:3672623806 1836311903:3:5508935709 1836311903:5:9181559515 1836311903:8:14690495224 1836311903:13:23872054739 1836311903:21:38562549963 1836311903:34:62434604702 1836311903:55:100997154665 1836311903:89:163431759367 1836311903:144:264428914032 1836311903:233:427860673399 1836311903:377:692289587431 1836311903:610:1120150260830 1836311903:987:1812439848261 1836311903:1597:2932590109091 1836311903:2584:4745029957352 1836311903:4181:7677620066443 1836311903:6765:12422650023795 1836311903:10946:20100270090238 1836311903:17711:32522920114033 1836311903:28657:1836311903 1836311903:46368:85146110318304 1836311903:75025:137769300522575 1836311903:121393:222915410840879 1836311903:196418:360684711363454 1836311903:317811:583600122204333 1836311903:514229:944284833567787 1836311903:832040:1527884955772120 1836311903:1346269:2472169789339907 1836311903:2178309:4000054745112027 1836311903:3524578:6472224534451934 1836311903:5702887:10472279279563961 1836311903:9227465:16944503814015895 1836311903:14930352:27416783093579856 1836311903:24157817:44361286907595751 1836311903:39088169:71778070001175607 1836311903:63245986:116139356908771358 1836311903:102334155:187917426909946965 1836311903:165580141:304056783818718323 1836311903:267914296:491974210728665288 1836311903:433494437:796030994547383611 1836311903:701408733:1288005205276048899 1836311903:1134903170:2084036199823432510 1836311903:1836311903:1836311903 1836311903:2971215073:5456077604922913919 1836311903:4807526976:8828119010022395328 1836311903:7778742049:14284196614945309247 1836311903:12586269025:23112315624967704575 2971215073:0:0 2971215073:1:2971215073 2971215073:1:2971215073 2971215073:2:5942430146 2971215073:3:8913645219 2971215073:5:14856075365 2971215073:8:23769720584 2971215073:13:38625795949 2971215073:21:62395516533 2971215073:34:101021312482 2971215073:55:163416829015 2971215073:89:264438141497 2971215073:144:427854970512 2971215073:233:692293112009 2971215073:377:1120148082521 2971215073:610:1812441194530 2971215073:987:2932589277051 2971215073:1597:4745030471581 2971215073:2584:7677619748632 2971215073:4181:12422650220213 2971215073:6765:20100269968845 2971215073:10946:32522920189058 2971215073:17711:52623190157903 2971215073:28657:85146110346961 2971215073:46368:137769300504864 2971215073:75025:222915410851825 2971215073:121393:360684711356689 2971215073:196418:583600122208514 2971215073:317811:944284833565203 2971215073:514229:1527884955773717 2971215073:832040:2472169789338920 2971215073:1346269:4000054745112637 2971215073:2178309:6472224534451557 2971215073:3524578:10472279279564194 2971215073:5702887:16944503814015751 2971215073:9227465:27416783093579945 2971215073:14930352:44361286907595696 2971215073:24157817:71778070001175641 2971215073:39088169:116139356908771337 2971215073:63245986:187917426909946978 2971215073:102334155:304056783818718315 2971215073:165580141:491974210728665293 2971215073:267914296:796030994547383608 2971215073:433494437:1288005205276048901 2971215073:701408733:2084036199823432509 2971215073:1134903170:3372041405099481410 2971215073:1836311903:5456077604922913919 2971215073:2971215073:2971215073 2971215073:4807526976:14284196614945309248 2971215073:7778742049:23112315624967704577 2971215073:12586269025:37396512239913013825 4807526976:0:0 4807526976:1:4807526976 4807526976:1:4807526976 4807526976:2:4807526976 4807526976:3:4807526976 4807526976:5:24037634880 4807526976:8:4807526976 4807526976:13:62497850688 4807526976:21:4807526976 4807526976:34:81727958592 4807526976:55:264413983680 4807526976:89:427869900864 4807526976:144:4807526976 4807526976:233:1120153785408 4807526976:377:1812437669952 4807526976:610:1466295727680 4807526976:987:4807526976 4807526976:1597:7677620580672 4807526976:2584:1552831213248 4807526976:4181:20100270286656 4807526976:6765:10840973330880 4807526976:10946:26311595139648 4807526976:17711:85146110271936 4807526976:28657:137769300551232 4807526976:46368:4807526976 4807526976:75025:360684711374400 4807526976:121393:583600122197568 4807526976:196418:472142416785984 4807526976:317811:509294985256512 4807526976:514229:2472169789341504 4807526976:832040:500006843138880 4807526976:1346269:6472224534452544 4807526976:2178309:10610212036032 4807526976:3524578:8472251907008064 4807526976:5702887:27416783093579712 4807526976:9227465:44361286907595840 4807526976:14930352:498458819452608 4807526976:24157817:116139356908771392 4807526976:39088169:187917426909946944 4807526976:63245986:152028391909359168 4807526976:102334155:23427343368031680 4807526976:165580141:796030994547383616 4807526976:267914296:161000650659506112 4807526976:433494437:2084036199823432512 4807526976:701408733:1124013801699827136 4807526976:1134903170:2728038802461456960 4807526976:1836311903:8828119010022395328 4807526976:2971215073:14284196614945309248 4807526976:4807526976:4807526976 4807526976:7778742049:37396512239913013824 4807526976:12586269025:60508827864880718400 7778742049:0:0 7778742049:1:7778742049 7778742049:1:7778742049 7778742049:2:15557484098 7778742049:3:23336226147 7778742049:5:38893710245 7778742049:8:62229936392 7778742049:13:7778742049 7778742049:21:163353583029 7778742049:34:264477229666 7778742049:55:427830812695 7778742049:89:692308042361 7778742049:144:1120138855056 7778742049:233:1812446897417 7778742049:377:225583519421 7778742049:610:4745032649890 7778742049:987:7677618402363 7778742049:1597:12422651052253 7778742049:2584:20100269454616 7778742049:4181:32522920506869 7778742049:6765:52623189961485 7778742049:10946:6549700805258 7778742049:17711:137769300429839 7778742049:28657:222915410898193 7778742049:46368:360684711328032 7778742049:75025:583600122226225 7778742049:121393:944284833554257 7778742049:196418:1527884955780482 7778742049:317811:190166906871903 7778742049:514229:4000054745115221 7778742049:832040:6472224534449960 7778742049:1346269:10472279279565181 7778742049:2178309:16944503814015141 7778742049:3524578:27416783093580322 7778742049:5702887:44361286907595463 7778742049:9227465:5521390000090445 7778742049:14930352:116139356908771248 7778742049:24157817:187917426909947033 7778742049:39088169:304056783818718281 7778742049:63245986:491974210728665314 7778742049:102334155:796030994547383595 7778742049:165580141:1288005205276048909 7778742049:267914296:160310476909494808 7778742049:433494437:3372041405099481413 7778742049:701408733:5456077604922913917 7778742049:1134903170:8828119010022395330 7778742049:1836311903:14284196614945309247 7778742049:2971215073:23112315624967704577 7778742049:4807526976:37396512239913013824 7778742049:7778742049:7778742049 7778742049:12586269025:97905340104793732225 12586269025:0:0 12586269025:1:12586269025 12586269025:1:12586269025 12586269025:2:25172538050 12586269025:3:37758807075 12586269025:5:12586269025 12586269025:8:100690152200 12586269025:13:163621497325 12586269025:21:264311649525 12586269025:34:427933146850 12586269025:55:12586269025 12586269025:89:1120177943225 12586269025:144:1812422739600 12586269025:233:2932600682825 12586269025:377:4745023422425 12586269025:610:1535524821050 12586269025:987:12422647527675 12586269025:1597:20100271632925 12586269025:2584:32522919160600 12586269025:4181:52623190793525 12586269025:6765:1548111090075 12586269025:10946:137769300747650 12586269025:17711:222915410701775 12586269025:28657:360684711449425 12586269025:46368:583600122151200 12586269025:75025:12586269025 12586269025:121393:1527884955751825 12586269025:196418:2472169789352450 12586269025:317811:4000054745104275 12586269025:514229:6472224534456725 12586269025:832040:190405077810200 12586269025:1346269:16944503814017725 12586269025:2178309:27416783093578725 12586269025:3524578:44361286907596450 12586269025:5702887:71778070001175175 12586269025:9227465:23227871381754325 12586269025:14930352:187917426909946800 12586269025:24157817:304056783818718425 12586269025:39088169:491974210728665225 12586269025:63245986:796030994547383650 12586269025:102334155:23418276459564525 12586269025:165580141:2084036199823432525 12586269025:267914296:3372041405099481400 12586269025:433494437:5456077604922913925 12586269025:701408733:8828119010022395325 12586269025:1134903170:2856839322989061850 12586269025:1836311903:23112315624967704575 12586269025:2971215073:37396512239913013825 12586269025:4807526976:60508827864880718400 12586269025:7778742049:97905340104793732225 12586269025:12586269025:12586269025 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_lcm.t0000644403072340010010000001066414536617520023165 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 20205; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_lcm'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_lcm(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_lcm() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); ok($strx eq $out0 || $strx eq $in0, "'$test' first input arg has the right value") or diag(" got: $strx\n", " expected: ", $out0 eq $in0 ? $out0 : "$out0 or $in0"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($got); my ($x, $y); my ($xo, $yo); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_lcm(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_lcm() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); ok($strx eq $out0 || $strx eq $in0, "'$test' first input arg has the right value") or diag(" got: $strx\n", " expected: ", $out0 eq $in0 ? $out0 : "$out0 or $in0"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_log_int.t0000644403072340010010000000771514546553333024052 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 27369; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_log_int'); my @data; # Small numbers. for (my $x = 0; $x <= 1000 ; ++ $x) { for (my $b = 0; $b <= 10 ; ++ $b) { if ($x == 0 || $b <= 1) { push @data, [ $x, $b, undef, undef ]; next; } my $y = int(log($x) / log($b)); $y++ while $b ** $y < $x; $y-- while $b ** $y > $x; my $status = $b ** $y == $x ? 1 : 0; push @data, [ $x, $b, $y, $status ]; } } # Larger numbers. for (my $b = 2 ; $b <= 100 ; $b++) { my $bobj = $LIB -> _new($b); for (my $y = 2 ; $y <= 10 ; $y++) { my $x = $LIB -> _pow($LIB -> _copy($bobj), $LIB -> _new($y)); my $x_up = $LIB -> _inc($LIB -> _copy($x)); my $x_dn = $LIB -> _dec($LIB -> _copy($x)); push @data, [ $LIB -> _str($x), $b, $y, 1 ]; push @data, [ $LIB -> _str($x_up), $b, $y, 0 ]; push @data, [ $LIB -> _str($x_dn), $b, $y - 1, 0 ]; } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_log_int(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_log_int() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got[0], $out0, "'$test' output arg has the right value"); return; } plan tests => 11; # Number of input arguments. cmp_ok(scalar @got, '==', 2, "'$test' gives two output args"); # First output argument. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' first output arg is not the second input arg") } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); # Second output argument. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_mod.dat0000644403072340010010000207015114505066136023472 0ustar OSPJADomain Users335:8:7 183:2:1 132:2:0 445:8:5 638:7:1 839:39:20 443:38:25 389:97:1 531:43:15 553:48:25 381:860:381 343:872:343 721:712:9 483:204:75 561:294:267 341:5509:341 349:8257:349 441:3139:441 694:1203:694 507:2855:507 507:6:3 769:2:1 517:1:0 975:8:7 676:8:4 823:26:17 264:31:16 126:41:3 874:73:71 643:20:3 283:705:283 992:559:433 672:317:38 250:257:250 938:545:393 414:1740:414 306:5539:306 774:2296:774 227:5577:227 489:7925:489 734:6:2 636:6:0 431:6:5 344:4:0 530:2:0 865:67:61 623:14:7 408:33:12 452:10:2 525:74:7 224:653:224 471:842:471 861:677:184 403:394:9 833:996:833 670:3978:670 883:7984:883 740:6648:740 655:9837:655 643:3010:643 110:5:0 839:7:6 875:6:5 990:7:3 969:2:1 474:42:12 439:17:14 666:59:17 279:29:18 509:54:23 831:352:127 468:941:468 653:716:653 309:492:309 736:126:106 915:8378:915 143:8090:143 731:9138:731 977:6932:977 755:3681:755 491:2:1 450:9:0 608:9:5 948:4:0 102:8:6 219:12:3 821:41:1 143:48:47 430:40:30 506:45:11 263:735:263 346:291:55 895:556:339 228:296:228 322:264:58 806:2388:806 113:7038:113 439:9850:439 515:8130:515 686:9807:686 7016:8:0 4514:5:4 6177:7:3 5587:4:3 7737:3:0 6377:39:20 6017:54:23 9238:54:4 9443:11:5 9452:72:20 3828:335:143 8622:311:225 1681:433:382 9253:520:413 1726:110:76 1077:5669:1077 3963:2921:1042 9259:7534:1725 1656:1122:534 7602:3784:34 3030:50661:3030 6027:17249:6027 3882:38446:3882 1136:58517:1136 4375:70242:4375 2993:9:5 8011:4:3 3516:3:0 6248:3:2 6225:9:6 7504:60:4 9219:27:12 7853:31:10 1122:70:2 5615:82:39 5794:392:306 4807:216:55 2048:933:182 1378:697:681 5248:342:118 9147:3773:1601 2005:3090:2005 9955:9053:902 2319:3428:2319 8293:6840:1453 2068:93538:2068 9260:66014:9260 1343:16117:1343 2638:33541:2638 5528:12623:5528 1632:3:0 9950:9:5 3374:4:2 6815:9:2 2181:3:0 1650:23:17 3458:50:8 7962:48:42 5655:25:5 7837:41:6 3138:656:514 3580:371:241 6310:163:116 8776:918:514 6163:595:213 9191:1674:821 3666:9725:3666 1523:1226:297 9386:5251:4135 7233:8841:7233 5813:45382:5813 6461:74541:6461 7814:31612:7814 4847:37749:4847 7858:80381:7858 7401:4:1 4572:1:0 9030:1:0 7311:6:3 4556:9:2 3405:77:17 1140:16:4 5881:65:31 7292:93:38 4505:31:10 5038:824:94 3136:623:21 4095:811:40 9979:186:121 1375:940:435 8183:8324:8183 4847:2294:259 5251:6551:5251 5083:4880:203 9141:6290:2851 3890:50277:3890 7097:82328:7097 9469:71443:9469 6510:39354:6510 2187:88755:2187 3463:9:7 5638:2:0 2120:3:2 7292:8:4 2758:3:1 3144:26:24 8095:88:87 1578:10:8 8523:91:60 5185:61:0 9680:839:451 9249:389:302 6804:838:100 4158:812:98 4138:846:754 5431:6489:5431 9812:1350:362 6283:5171:1112 9546:9508:38 2249:5368:2249 9039:52152:9039 8084:53973:8084 7349:30635:7349 6400:88096:6400 3423:59892:3423 17236:4:0 42260:6:2 56700:9:0 70712:8:0 56832:3:0 81201:14:1 42264:33:24 51796:74:70 91899:99:27 46114:74:12 44940:943:619 69149:992:701 17319:944:327 38498:610:68 81612:922:476 95807:2081:81 20346:1008:186 64572:8202:7158 98600:6984:824 72993:1103:195 42267:51490:42267 77124:80935:77124 76747:52794:23953 90168:31773:26622 48371:24930:23441 54630:168709:54630 92449:343920:92449 83884:454948:83884 23012:685365:23012 72989:144464:72989 62895:7:0 86615:4:3 25570:4:2 28604:1:0 90934:9:7 79950:89:28 91589:77:36 33441:61:13 76503:38:9 96183:33:21 46737:788:245 77759:779:638 13349:183:173 41366:395:286 80672:983:66 95317:2333:1997 88312:3983:686 30647:5499:3152 11057:7984:3073 12776:4147:335 20624:43964:20624 19328:32155:19328 20247:11815:8432 89944:53179:36765 72751:91722:72751 79285:719192:79285 82427:176064:82427 38750:422445:38750 81162:605622:81162 36476:121259:36476 23938:7:5 82005:6:3 38056:2:0 66005:1:0 55867:1:0 29809:60:49 66880:41:9 68905:33:1 10377:70:17 25990:27:16 47941:324:313 88994:773:99 93339:460:419 30586:526:78 91557:212:185 38501:6825:4376 39875:3688:2995 53531:2136:131 85198:3355:1323 66531:9950:6831 87161:91712:87161 96805:16047:523 40342:15072:10198 59461:59913:59461 62151:38812:23339 35479:251645:35479 86191:988782:86191 88914:497407:88914 69487:968601:69487 77573:546788:77573 63528:4:0 63025:6:1 78315:6:3 24763:1:0 85255:4:3 60043:62:27 43321:33:25 97357:53:49 57457:48:1 30930:31:23 59514:149:63 80152:410:202 83471:392:367 40046:524:222 55265:502:45 33440:6522:830 35056:4579:3003 79690:4116:1486 26709:5488:4757 36523:1787:783 51451:47447:4004 83901:14732:10241 20388:51806:20388 17507:71627:17507 35161:57242:35161 90230:952437:90230 62744:104984:62744 35284:414994:35284 48131:315458:48131 11208:732496:11208 95271:5:1 66414:7:5 53604:1:0 22992:7:4 51064:9:7 28125:30:15 24980:43:40 65793:37:7 79359:27:6 27020:46:18 42142:707:429 72321:995:681 62201:838:189 38996:971:156 65142:874:466 71060:9852:2096 36660:5737:2238 45432:6718:5124 63045:4368:1893 25801:5344:4425 51114:92283:51114 92508:64727:27781 35069:45229:35069 27505:60708:27505 86358:24044:14226 95567:701050:95567 60994:913506:60994 85299:670082:85299 84363:583214:84363 42665:459351:42665 449628:2:0 133781:6:5 223421:3:2 773772:8:4 649662:4:2 863620:19:13 231906:45:21 493406:38:14 188092:63:37 710981:10:1 741174:209:60 884848:344:80 370278:707:517 797033:293:73 218203:926:593 827121:6257:1197 251223:5478:4713 969828:8401:3713 489861:1622:17 427168:3174:1852 440102:52313:21598 274971:50054:24701 544276:64103:31452 428114:47493:677 725528:77072:31880 161894:206885:161894 516856:743344:516856 470901:344115:126786 938804:294240:56084 278774:107028:64718 411932:7711827:411932 818457:4596594:818457 997315:1389806:997315 201753:4623379:201753 219000:8365338:219000 413400:5:0 990700:4:0 345204:9:0 836853:5:3 336627:6:3 873841:43:38 395440:95:50 803402:65:2 806166:67:22 589728:33:18 173150:695:95 973353:266:59 760533:329:214 426338:665:73 794032:597:22 372550:2879:1159 848948:2981:2344 105971:1466:419 984665:8485:405 285780:4339:3745 542996:90247:1514 495725:91707:37190 887655:36770:5175 128394:72366:56028 741878:96581:65811 246944:336455:246944 108338:617552:108338 216277:112494:103783 823575:736170:87405 618542:964691:618542 222964:7054066:222964 662347:6648878:662347 962378:9233345:962378 690967:9627756:690967 300549:8738170:300549 551280:7:2 520776:4:0 172483:4:3 560212:2:0 757999:4:3 226651:46:9 767890:21:4 810919:19:18 671432:38:10 104039:70:19 714466:303:295 278848:822:190 684970:306:142 763254:392:30 736697:433:164 511367:6914:6645 843410:4832:2642 409198:3597:2737 251185:6679:4062 853453:3496:429 721861:79591:5542 268176:44896:43696 946780:54581:18903 457524:93923:81832 835101:22340:8521 369993:822027:369993 838094:734098:103996 510761:257140:253621 826056:594487:231569 948169:283732:96973 383092:2618630:383092 962124:4602401:962124 268679:8511734:268679 696854:1208944:696854 243624:8513459:243624 125441:2:1 339431:1:0 524997:4:1 687475:2:1 744993:5:3 119028:82:46 965818:22:18 364830:72:6 281862:22:20 949959:26:23 681417:788:585 881810:667:36 252093:588:429 780593:624:593 467318:214:156 111310:9939:1981 818058:7207:3667 110222:4426:3998 970664:4051:2475 319824:8671:7668 280122:55488:2682 491169:57807:28713 448195:71562:18823 159361:84562:74799 889031:62958:7619 226745:500816:226745 251791:874472:251791 132547:259431:132547 533335:546316:533335 728510:605374:123136 434799:5166324:434799 676853:9261794:676853 566464:4208786:566464 561686:2245199:561686 465983:3516250:465983 813309:7:0 880649:2:1 954323:8:3 943994:5:4 463504:8:0 628357:36:13 688661:66:17 867421:39:22 139774:14:12 516917:32:21 846506:919:107 917646:984:558 994124:186:140 600164:775:314 134005:413:193 828002:6714:2180 601538:4592:4578 907081:5064:625 518966:4300:2966 656260:3201:55 960055:57701:36839 625980:60290:23080 718095:86045:29735 487892:46741:20482 695946:74129:28785 164727:514531:164727 900763:319258:262247 167797:933234:167797 679099:305545:68009 109376:254087:109376 939617:6468619:939617 623435:3480010:623435 608540:1019783:608540 425736:8013454:425736 165353:7360421:165353 9770451:7:5 7034869:7:2 8936367:5:2 2675200:9:4 3722834:5:4 3147020:31:24 4021907:12:11 3957820:28:20 1550639:82:19 2473935:15:0 8115582:756:678 1003387:399:301 5758356:680:116 3184360:967:29 5405225:754:553 4253282:6307:2364 3176522:7168:1098 3997395:7881:1728 1217011:9545:4796 4570541:4072:1757 4841465:93916:51749 4533687:57737:30201 9734726:13353:389 8730400:82147:22818 3157091:61563:17378 4549887:270296:225151 2939403:572940:74703 2964254:845421:427991 7786451:932847:323675 9119979:964525:439254 7344029:5080315:2263714 1046290:4021900:1046290 1182120:7658304:1182120 9502000:4620217:261566 8966170:5163576:3802594 1020753:95363962:1020753 4194901:57096647:4194901 4908146:73487014:4908146 3267340:16080677:3267340 8235694:83131021:8235694 9838198:1:0 6834159:8:7 5060713:7:0 7509236:5:1 2325978:6:0 1567922:67:55 2093028:36:24 1581930:39:12 3932148:56:52 6256753:46:17 3544058:518:420 7322468:596:12 8139477:926:863 5779428:508:420 5761225:161:1 3610827:4933:4804 8668266:7837:544 5889958:9693:6307 6694723:4007:3033 2716457:9645:6212 2814794:51700:22994 3140981:12946:8049 1559939:26188:14847 9942508:66868:46044 6810209:83904:13985 5706698:658797:436322 5293969:721606:242727 9874510:184789:80693 6191456:179548:86824 8236065:998287:249769 6823728:9302327:6823728 8192320:4189813:4002507 7490527:9327425:7490527 1413227:3725085:1413227 5204388:5879420:5204388 7731696:79465338:7731696 6196295:39029720:6196295 1062184:51981462:1062184 1869821:27223888:1869821 3171806:31585239:3171806 7619938:5:3 5298716:2:0 3549827:5:2 1250225:7:4 6400077:7:5 4665389:39:14 5458557:42:27 1558386:37:20 5166871:94:67 3648069:67:53 1632604:663:298 4700442:317:283 1804207:172:99 8406868:755:698 1776946:460:426 2201713:8660:2073 6892811:6345:2141 6870569:6278:2437 1576482:5402:4500 6869065:4586:3823 2696378:50593:14949 4888010:50141:24333 1013265:70042:32677 9099505:26582:8461 8454943:25234:1553 2515077:657035:543972 6846147:817400:306947 2692509:901050:890409 2698790:173774:92180 1236951:839766:397185 4303539:7690819:4303539 9081344:1997427:1091636 2680754:9617761:2680754 6711662:5997933:713729 9239603:4991372:4248231 6777212:67669214:6777212 1224223:94748011:1224223 8097637:53614682:8097637 7088967:89131111:7088967 8153224:38777414:8153224 6846499:3:1 4878706:6:4 8353568:6:2 2406088:7:6 2457196:7:0 2786972:96:92 9733551:75:51 8353534:52:46 4148684:66:56 2296488:74:46 3746644:946:484 8574375:112:103 4035226:792:778 9401335:122:15 4252848:767:600 4061817:7397:864 9336770:7526:4530 7006918:5115:4483 7920491:2974:729 8052048:1791:1503 2344568:58559:2208 1139521:86729:12044 1021742:76914:21860 9042827:18166:14325 8735013:60593:9621 4659614:914166:88784 5630070:485107:293893 8308338:870409:474657 9110478:780071:529697 2625350:431645:35480 3081021:5452445:3081021 2633153:2933937:2633153 7797518:6131839:1665679 8240054:9375678:8240054 2976521:5172364:2976521 4879133:48122414:4879133 7838870:99234068:7838870 5541896:29770327:5541896 5728159:59938077:5728159 1462226:42062631:1462226 3744437:1:0 4772108:1:0 5658468:6:0 3898797:6:3 2326304:7:1 7953280:86:0 1530761:70:1 8667009:93:60 2146405:33:19 5209020:50:20 7727585:603:140 8726344:551:157 9751631:228:71 9804805:606:331 6798606:846:150 2405865:5964:2373 8978526:3627:1701 2812797:3878:1247 6531829:5314:923 3442115:3323:2810 6844602:31152:22314 7003286:25804:10402 3180755:99470:97185 5730293:62425:49618 1515990:75317:9650 6388942:652004:520906 9078819:966350:381669 5850396:868628:638628 7932267:335175:223242 7509415:101768:80351 8955827:6803562:2152265 1111171:7357999:1111171 3401037:2800710:600327 2086046:8198221:2086046 3044272:8347385:3044272 3271444:11935650:3271444 5774706:50919966:5774706 9386550:25319905:9386550 1443888:25340916:1443888 6771765:83423971:6771765 86497363:8:3 66346971:5:1 82593336:8:0 74648862:8:6 15507832:7:4 70332912:45:27 33254542:42:34 98913044:99:65 10549013:60:53 77199906:55:36 90288448:304:144 90286381:603:397 91083741:737:122 86725522:367:119 72300468:280:268 71929906:2569:475 91538487:9460:3527 62688233:9955:1598 35255099:6267:3224 30545410:8954:3316 77116775:65873:45365 66399112:69850:41612 11204958:83728:69134 61000189:47110:39849 77781825:87116:74353 20653368:929427:205974 65340890:997553:499945 69944686:229492:179118 43952724:308643:125418 14362488:322243:183796 12640252:8899570:3740682 44807620:1628032:850756 49738334:3788886:482816 21530820:4875491:2028856 39131260:6231204:1744036 35340822:32379315:2961507 54834330:64754998:54834330 32182719:51719082:32182719 26967989:15920291:11047698 95599524:78243046:17356478 60600304:700233126:60600304 12838239:121695581:12838239 73967442:634796029:73967442 99174206:278436932:99174206 77470593:257183328:77470593 95437811:9:2 78282731:6:5 92297195:1:0 65335651:6:1 19185629:1:0 32673754:57:43 94610731:41:33 40473101:47:38 44188701:67:57 62038253:72:29 15462670:794:314 65150195:550:495 60385226:905:6 48027337:243:88 71007116:415:201 30471441:6950:2641 79307204:2860:2264 62211585:8581:7916 36157294:9908:3002 14704771:7885:7131 42711486:33348:26046 55982799:68482:33005 93851262:67034:3662 39751136:81109:7726 94381383:51846:21663 71271206:893574:678860 94881270:965685:244140 47814594:457085:277754 89142669:324624:195693 62451955:619889:463055 34285679:8736159:8077202 61793387:6493726:3349853 41577958:2979387:2845927 19015112:4858484:4439660 35538333:6066072:5207973 42985016:69925187:42985016 89397432:18789840:14238072 91008561:56620867:34387694 50502500:66765902:50502500 74311958:81465741:74311958 10204536:266573909:10204536 56375601:425356371:56375601 15361764:962164762:15361764 93144940:714410814:93144940 14208462:979701779:14208462 91440538:9:7 25752054:3:0 25736327:4:3 48553945:8:1 78364201:2:1 81255599:38:9 34135769:14:3 94995379:77:17 58967604:78:72 29297785:10:5 63025300:892:148 57235438:526:326 49230156:423:147 87061128:858:726 76761643:220:123 74558717:5932:5341 70203781:7748:6901 85318761:3012:849 61408672:1705:1392 61136616:9780:1836 29192415:92231:47419 77111996:33824:27100 79800082:14098:5402 32411421:20947:6412 64708529:90440:43929 83682599:248969:29015 72785705:848102:697035 48782649:572305:136724 25161462:990489:399237 82050065:717183:291203 13990490:7456395:6534095 38379557:4292946:4035989 77490557:7712117:369387 51200325:4599646:604219 68296790:6916690:6046580 68368914:63780178:4588736 65144338:85745458:65144338 19435303:24964822:19435303 78835696:44420680:34415016 13541527:97564465:13541527 60821084:795710123:60821084 96228359:695663239:96228359 93679528:504018779:93679528 64747323:506577353:64747323 43290274:127896398:43290274 98093998:7:2 85075786:7:5 33595494:1:0 91226063:1:0 34325069:7:2 78461287:72:7 49428269:54:17 57553645:78:19 83367253:16:5 92609388:98:74 31925040:827:359 55343403:276:159 54619111:195:1 40821554:515:79 37916459:143:9 32695079:1940:259 10368742:1668:454 43305855:9989:3540 47515968:8571:6915 27352831:6171:2959 95604227:94948:86539 69587323:91841:63686 23534598:59587:57320 82912118:21799:10521 66849414:56748:270 43091088:914392:114664 15109945:977428:448525 74325406:997927:478808 94401915:781509:620835 38698602:342518:336586 15485472:1389060:205812 91664033:2163286:806021 19020730:3702338:509040 60347685:1108329:497919 17817086:7416961:2983164 40862350:73145286:40862350 69145371:13059744:3846651 97228969:12065517:704833 85714386:89027124:85714386 57624474:70221490:57624474 20339909:420232381:20339909 85576650:716860476:85576650 25991089:467263023:25991089 45583063:599650139:45583063 10313676:162013784:10313676 10991281:9:4 75092533:6:1 86052062:9:2 50119440:2:0 84391781:9:5 13672535:43:40 83333998:73:45 46282774:64:22 60033329:72:17 17821182:99:93 13129436:867:455 83308583:834:323 36125797:482:379 78977859:860:619 93442842:592:378 14539965:9579:8622 91402042:3211:927 52220912:8871:6206 26275089:8721:7437 28534227:5104:2867 95683703:37652:9971 95271165:72728:70213 93945700:55294:1194 82509627:75743:25500 32048309:28333:3686 28972217:295989:261284 34318873:667054:299119 14328671:426932:239915 64062865:754240:706705 64015915:773215:612285 52061194:5992054:4124762 43363336:2666031:706840 99104218:6880037:2783700 27028658:7590858:4256084 47885838:5022662:2681880 77994096:84304691:77994096 48568352:46566325:2002027 53428641:65492679:53428641 54550713:82123195:54550713 93598032:23631933:22702233 20805003:864147360:20805003 55304860:211580843:55304860 50896838:920822038:50896838 24136365:980187625:24136365 23724577:935246391:23724577 206699044:5:4 815300438:5:3 962345179:9:1 779479658:1:0 651197485:2:1 495262077:81:51 990927278:98:82 678875493:23:18 206536092:55:37 119888278:46:42 730178205:348:81 745698031:524:443 754022811:424:291 704550740:306:122 730070440:793:541 982296817:7706:5291 734279797:7112:1357 977972228:2121:338 815720366:2508:890 652690783:6696:4879 180719567:35581:3668 625290998:61732:7570 788260801:82537:32451 675757306:74039:3353 766629091:56078:42831 448777684:197629:159854 209695430:299774:153404 899538619:721381:697893 615766674:158795:118459 498597415:229844:65779 592018870:3632355:3577360 844226432:6876091:5343330 688796134:6652225:3616959 856394756:3761970:2427566 348928064:5088120:2935904 152836313:27955344:13059593 247321610:54778383:28208078 964954815:73709271:6734292 133444099:37874430:19820809 876403271:45259570:16471441 286050534:621753483:286050534 210904131:932105104:210904131 382235706:224724813:157510893 243848827:324415033:243848827 909218396:509360496:399857900 737099033:4005654926:737099033 706293427:8012865032:706293427 671740045:6941022041:671740045 599393028:5884364487:599393028 863625569:7594668767:863625569 704902640:2:0 464723753:3:2 512968073:5:3 150737967:1:0 633351163:5:3 701804719:34:9 827062673:67:0 475602282:71:49 471663626:78:44 681331226:86:10 490490530:409:143 313127163:492:159 604943070:831:0 635314300:650:400 175698494:164:46 118502289:2832:81 895402683:2709:2331 670481720:2623:952 276154285:2397:709 915370398:6944:5374 276591433:46345:4473 597121006:58439:49743 548483825:40868:35265 442114578:91720:24178 551741822:64159:38581 947566536:469750:80786 510401894:266221:56237 201705473:597448:365497 697696246:587183:122842 110235244:665957:352339 139661959:1492809:830722 878180170:4125686:3534738 798214497:8789817:7130967 368331053:7984338:1051505 897164427:6234686:5604329 663628847:78889774:32510655 262263043:87678403:86906237 387147440:42888832:1147952 967664738:35859046:35329542 736393187:75434513:57482570 462438155:349195761:113242394 234459727:663649699:234459727 603543908:927489724:603543908 142996911:794482148:142996911 671838307:650187099:21651208 146470252:4889123402:146470252 884852054:4038659416:884852054 530640060:3197313341:530640060 100896578:1440485441:100896578 122976517:4492411413:122976517 366003722:1:0 713832639:2:1 512374296:1:0 367260642:3:0 494970985:2:1 292354157:53:9 509317931:49:24 266296703:27:23 281002516:15:1 225981450:90:0 778975422:433:195 563549440:229:134 630878479:555:544 595530915:966:609 222483696:562:260 187156525:7901:5538 946608578:5636:2926 495628178:7146:3056 687039942:8615:2307 616260257:7085:6957 440501037:33977:23209 707527157:88089:84398 417323140:20731:8110 796087984:65733:61354 676159671:33479:17787 933026395:794625:136645 192167864:527915:6804 542816966:172438:154580 182113134:243245:165874 231513545:396426:761 590456709:9115832:7043461 809333554:1115694:455404 341564268:3014446:931870 467513243:8991157:8964236 217650402:6923503:3021809 890800892:41808782:12816470 645509513:61330927:32200243 259947353:69023425:52877078 330486449:65236028:4306309 378513514:56726453:38154796 521933107:552327960:521933107 409715073:664009055:409715073 967154731:927709102:39445629 272393492:296829318:272393492 954924697:993571637:954924697 619416939:2863172516:619416939 235166054:4446946256:235166054 569824811:5284915630:569824811 747572585:8931598269:747572585 701271000:1776358445:701271000 498703833:9:0 375604754:8:2 844357755:8:3 634112777:2:1 139642524:3:0 677237916:13:4 301113662:29:21 305827447:21:16 394964452:77:36 238028854:43:32 957856177:938:593 227513209:709:72 761125473:271:22 154197349:273:124 748065044:564:260 558243319:2949:568 592010374:2200:1374 392250783:7734:5505 232786177:6166:1179 494700288:2830:2138 537094094:95508:52610 347322210:32352:23490 199577338:98925:45613 329608696:38242:898 182266934:82299:56948 595818167:115924:84731 974930247:852854:118125 461566639:396710:192909 899822639:950089:88356 124454941:769444:574457 377769545:9522883:6377108 379929596:2512472:546324 751309107:3940939:2530697 962081350:7824881:7445868 348595944:9078740:3603824 320394415:88622618:54526561 475306448:31343936:5147408 760311935:39310639:13409794 543155544:26146610:20223344 175884759:81051708:13781343 471952895:307851623:164101272 514425275:930011770:514425275 665499498:744140101:665499498 977931111:674390628:303540483 684706990:927451928:684706990 711171626:1414407650:711171626 433519749:9926201913:433519749 936437008:7790818608:936437008 536663446:3766479901:536663446 702841581:1139341189:702841581 195008931:7:5 822790849:3:1 499518946:6:4 873447560:3:2 346568150:3:2 943389116:47:40 113511544:92:12 194733342:43:16 639773129:62:27 803339033:28:21 489675254:193:93 374160728:987:872 779002000:947:747 838768848:560:288 256889851:471:328 508508807:7878:7541 383575291:4622:133 648663473:1625:848 788240290:8144:6962 107832358:9457:3644 915313422:42677:19803 476244809:34201:30085 202853341:57132:34741 918151177:77937:53317 649348854:24165:11139 905916018:359380:278418 964796109:721447:221470 761630877:664034:647913 801906972:103053:51579 519100614:970868:657102 903720699:3389401:2140033 877952270:4310312:2958934 507068440:4678603:1779316 667897772:7983266:5286694 147989901:9638929:3405966 622085623:72193178:44540199 491583793:66990476:22650461 642011542:72701549:60399150 327517020:94078735:45280815 709750962:37154376:3817818 326218783:611900123:326218783 944740653:781232696:163507957 857175466:194522691:79084702 963514736:905354100:58160636 429267152:674206989:429267152 363461543:6423352107:363461543 133862049:7734497020:133862049 830696789:1660507441:830696789 444565326:2753339002:444565326 598011809:8745485244:598011809 1058786229:7:4 8130304846:4:2 1830834994:9:4 9728492138:8:2 2309001906:6:0 8627091640:10:0 1327355446:30:16 5404283040:63:30 8275296027:16:11 6532508863:80:63 1925116831:574:43 7401113513:537:155 6975463302:318:60 9390436119:244:227 3845011554:732:18 6822700305:2571:1611 2088978681:5158:4155 4947113082:9660:4902 8368905708:3754:888 1325771899:3903:859 1096371715:46944:41539 6438175915:59622:13489 6921554892:40906:14256 3162463036:94839:56581 6885237738:85070:12218 2963218409:388640:227049 7207899464:330035:265099 5331931813:678272:35621 5095601380:930902:774734 8816034809:947413:356844 7579078526:1762537:169426 5562362079:3603922:1510433 6875387917:8560570:1250207 1395252131:4057454:3545409 5398809607:6477728:2862183 4216396304:20680147:18326463 9511669705:80955511:39874918 8926563893:84214186:84074363 8593826828:51621078:24727880 4883802344:34871750:1757344 8516500934:281641550:67254434 5485900218:305447251:293296951 5558747840:623339125:572034840 4586073177:408302393:94746854 6443857857:476671682:247125991 7670485165:8537198672:7670485165 8802604904:6230544302:2572060602 5700015705:4877102400:822913305 1747403689:9237913659:1747403689 8813885448:3809106017:1195673414 6377832054:82809857740:6377832054 8835867881:40262641036:8835867881 9545984792:32562832859:9545984792 2165645538:82414619066:2165645538 4496161181:54888700192:4496161181 9722411126:6:2 2595030891:3:0 8065926777:5:2 2799112212:5:2 6127157415:1:0 3862162969:90:79 3575511736:55:16 9497413607:24:23 6326201285:44:41 2624113881:93:27 1557203777:575:277 7791929588:874:214 7106627774:601:503 3280990444:672:172 2166529443:994:85 1182341801:8858:2535 8592162112:2202:2152 1545488076:9777:8355 6899817227:9142:2431 6693080635:8612:6475 3565484548:15679:1553 4896325242:29608:20674 3540769809:26520:5049 3602587603:89923:2454 1536905947:33410:12537 8330131121:981345:474761 5981332443:583137:96234 9909611401:844414:413111 9555603024:788283:36498 3531815480:758346:198158 9889776931:1705715:41361 7976981440:6984178:1050164 7721992211:8651661:4710599 8058690351:8974779:8313588 5543462487:7766660:5833907 3192684439:80594353:49504672 9770947122:59833011:18166329 9358979256:97063812:40853304 9196538078:58448673:20096417 2817592381:15391948:865897 1620080827:642525319:335030189 7468494982:476717813:317727787 4182662240:830691243:29206025 8968482122:677640938:159149928 9844090887:122296317:60385527 4035338615:4486832473:4035338615 2489354531:1986128306:503226225 2155944695:9960606726:2155944695 3820388468:1303395547:1213597374 2166111568:5760889966:2166111568 2206945025:14504696672:2206945025 1667152255:90242238582:1667152255 7267381820:85685407305:7267381820 6568194021:76903621410:6568194021 7860978749:88659550526:7860978749 4685229020:2:0 9178142779:9:1 3744142626:1:0 1946541828:3:0 6158494025:6:5 1592943065:32:25 8388326393:73:53 3595456964:56:36 6072161508:97:17 6294885881:67:41 7708047945:521:388 9013866333:378:87 1304526344:928:552 7427930925:771:504 8736654034:231:31 4672170137:4316:869 5581124445:1931:1489 1196965452:5843:3530 3708783545:8828:8325 2194823848:5101:1275 1073325921:64521:19086 6518959619:15251:11175 2197656960:45125:24335 7147389040:69965:44500 2902605360:99594:37824 4815627998:436054:283676 6981338646:636720:340566 3189459406:744299:138191 8367431546:453586:130604 6662937662:272610:76652 9849299331:5624807:262274 5864626107:1467496:512091 5966986290:6464921:6329128 1623161303:1446684:1428539 5794873070:9670832:2044702 9052136484:87133222:77414618 7356191520:76708181:68914325 2881378190:25225991:5615216 5695391016:29863781:21272626 1027084863:68426389:689028 4154795139:791337447:198107904 8957931012:816134617:796584842 6395460108:525515689:89271840 1563827077:936233862:627593215 6240888524:758125839:175881812 8870182600:8007242232:862940368 9650310940:8069022663:1581288277 9055262222:2461951886:1669406564 3672085414:1717332189:237421036 1315679357:3389382178:1315679357 5842219228:88314281043:5842219228 9008815908:49328018350:9008815908 3886866416:26590305350:3886866416 2587272508:13573974352:2587272508 4115951991:35526984888:4115951991 8643336920:1:0 3135337443:2:1 9271253168:3:2 7136412608:9:2 9465844515:8:3 3333020628:53:35 5049685435:20:15 9587277576:59:6 3567759862:46:0 6644692227:57:48 1932053305:226:97 1674038559:857:469 4274090660:258:224 7784791407:200:7 6049245450:977:469 1121467490:8356:374 5955744597:2579:580 4229715894:4575:294 6527171173:1778:1601 3821048262:7600:3862 1506568531:60768:8275 2877416897:11142:6539 9040561433:17038:11215 1925382233:63896:4065 4461549593:58710:563 4382130825:428245:327985 7036005172:318371:6072 3000171954:804939:164301 1680374178:615514:20958 6233888544:302834:50654 2865218857:2309767:1107777 1528355329:8816543:3093390 4424467104:9315793:8781222 3849748815:3876664:221463 7069663254:4536761:1389616 3573650337:40605540:362817 4231688153:77151307:65517575 9710508856:39511362:30225166 1875481126:15266914:12917618 9278222675:95241942:39754301 4997472885:404875356:138968613 5702188016:165769942:66009988 6388136224:971910191:556675078 3147707804:292882928:218878524 4169826835:308755741:156002202 2636841360:5131981561:2636841360 6170239010:3420406147:2749832863 5512488829:1170337146:831140245 3493398291:5494336270:3493398291 3437267239:4297357742:3437267239 7329205158:26460792334:7329205158 5644712486:10057280606:5644712486 5253850015:97348790915:5253850015 4922340803:68812083962:4922340803 2337088590:92294189578:2337088590 4617381111:7:0 4990612371:5:1 2852897093:8:5 2955108653:5:3 5562903167:3:2 7657375149:49:11 9247596734:86:50 8495635657:54:13 5701074083:93:80 8833665868:16:12 8857324973:187:35 1131455907:387:261 3372218625:108:57 6416184397:174:169 8281379637:418:3 2865339351:1603:896 8543136641:9957:770 2447012611:5472:5347 8779395455:8883:6767 9438123673:6213:5077 2886800304:89730:6744 2097022446:78771:59655 1336057758:26665:7933 3816927860:10536:8996 3029420015:98099:24796 1000634902:600656:542662 4645653070:572929:344738 1679822879:127526:50407 3671312291:997160:766331 8324874727:156870:97567 8809719140:5783017:2184249 3285451119:2237127:1348683 2155549862:8242344:4298078 4872240342:5113267:4410158 6331537086:3788534:896772 1353340510:87122247:46506805 9737694672:59857240:40821792 7355601658:43224956:7359138 2909802979:36313663:4709939 9558791543:89436181:78556357 8249940244:882465106:307754290 8038635436:326113702:211906588 4142019044:121161408:22531172 3494170526:346925481:24915716 4883762905:587128601:186734097 8288051961:9431116181:8288051961 9138174989:9835692288:9138174989 9229034998:3036439224:119717326 9334276033:5545090077:3789185956 5109293755:8570183193:5109293755 4445651250:14195218503:4445651250 1059134227:64988211386:1059134227 6434084218:59582953552:6434084218 4348678441:57948173461:4348678441 2872732941:63991881888:2872732941 30743995368:9:3 87243393266:8:2 42615219613:6:1 86255491956:6:0 27425898047:3:2 96748966433:99:20 40083425356:51:40 58837740324:71:67 20927303260:34:14 60753416334:13:0 93011727346:713:356 38516296425:766:239 95151266321:589:272 67571085820:312:4 87132015749:420:149 25155998782:7814:5696 85496928906:3881:853 73150454967:1323:240 40518558831:5674:2823 38518488325:7174:5353 34712316859:80091:76549 13791457509:63739:58862 58348811307:21185:3872 22188388221:86741:40421 36351629814:68651:32851 14578986643:555948:362239 83618602604:504699:72284 24204090446:619769:251689 94770762672:546762:505212 84197192507:569136:350939 49866473168:5091136:3887184 88029734823:7694151:953232 84164637895:4824921:3540892 63986862166:1558066:207678 39545356150:7100422:3106032 30256422626:10544639:3853335 29880726618:82458527:30739844 61315509061:64018039:50245738 19139231671:72118450:27842421 49499800846:15042402:10298266 57643455228:523822694:22958888 68292812858:345772077:175713689 47499457381:311924737:86897357 11634143040:585403886:511469206 29305202684:911045476:151747452 39282208194:5436556295:1226314129 19104292315:5270800643:3291890386 67131278466:5779223646:3559818360 40793084437:6283739593:3090646879 85527839170:6099169229:139469964 40631584355:37389183338:3242401017 67906313822:26403706196:15098901430 22721433103:89065176314:22721433103 28355632314:81949797689:28355632314 21169991636:50001207935:21169991636 34713528279:447226504573:34713528279 58802397192:525515788047:58802397192 36261679299:514806424865:36261679299 74872507512:176672708136:74872507512 69691803545:240565433662:69691803545 98283635896:3:1 38350351415:1:0 25627770694:6:4 32208108126:8:6 72750050714:8:2 54293137113:91:33 49894156369:17:11 54423105766:26:16 22109672182:79:10 84371111038:54:10 84480590940:797:36 54323035255:756:559 80645150397:500:397 67293402309:751:747 65848276748:205:18 71489332225:6197:2782 14527882845:1601:590 46733070641:8408:2505 56893688014:8322:2134 15989109861:1609:597 60672591674:50589:40427 71258680146:95206:35738 35787257740:58142:42752 11283438899:28416:13619 92570931106:77440:6946 23350505433:431363:394880 83371325004:449600:198604 86247469884:834136:309892 67801001368:369819:235003 10068194520:833135:591180 58287217286:2492121:1491338 31754496179:2611100:909079 92613883270:7673601:1192801 16781806504:9030966:2271676 13480164613:7338152:7317541 31631468206:80810155:34697601 86650095628:58339479:15969313 87747793256:29709946:14322718 63936556323:70329290:7231713 68866928065:33071271:12541843 63900782783:678933942:80992235 41751215753:108866388:55389149 16549764499:111431031:57971911 96822107347:134672329:127375125 29695419295:362173125:359396170 86498694186:1169295852:1140096990 49800347877:4634236092:3457986957 73766226658:3797375096:1616099834 18236207367:9151204839:9085002528 44288327675:3299306299:1397345788 62467992961:42708380274:19759612687 64007995061:10962334083:9196324646 98633478899:45651821756:7329835387 76477531212:45005536356:31471994856 73208587804:31041718290:11125151224 98719363569:350363568396:98719363569 87114127905:130691953527:87114127905 13054312849:488745788206:13054312849 44973665797:290984602085:44973665797 96358541144:332015387819:96358541144 16896354051:9:3 79674329310:2:0 57047091606:9:0 33529626130:6:4 48048374299:8:3 13400079712:42:40 33232044274:72:34 72344534551:67:27 30066289617:60:57 65598410804:89:49 58382694015:216:15 77863186048:270:148 78630437769:728:65 64784437322:367:138 85533488011:615:181 13781216517:7668:3201 79457511308:3407:2428 74408154797:2113:817 75041730179:1390:339 92552537193:4696:3001 98237587278:52897:29522 66138178923:27648:15723 39719050025:58526:28969 20590958508:35210:9668 28978376270:40457:38595 85726435255:561596:490643 57013944325:534920:31045 75009985383:905556:65235 72885985225:186919:98798 80787495820:420677:264063 92463144501:6690592:5853653 19197384336:8885550:4596336 96207994297:8491079:4069227 25752778150:7303743:7084075 56072073795:2475993:736317 12282454696:10361552:4015576 88404991368:35442898:10403756 50843796916:66790964:15873312 15272181110:82171848:70389230 15189230218:63043574:58772458 21711297104:800713847:92023235 87688276493:876219027:66373793 68428426520:142492095:32220920 40800187529:265494469:179533772 43423754345:787752149:97386150 55083894914:6223353616:5297065986 69553103557:3608502524:991555601 14222222989:7193430341:7028792648 57032919155:8776125936:4376163539 55963784063:8679245463:3888311285 61289397627:85781961592:61289397627 39162425556:15133505007:8895415542 47763496386:18954725101:9854046184 63881859606:39947903824:23933955782 54185928642:85839460940:54185928642 84803658875:101730950620:84803658875 15356577292:835978313845:15356577292 38105015420:305417665665:38105015420 34406374567:523266131462:34406374567 33012166043:144255185679:33012166043 67526052053:9:5 91995209778:7:3 11165678950:3:1 99076763462:8:6 99342479404:4:0 22298941878:22:4 54436147019:28:23 95508757331:40:11 81068390244:47:42 31761976872:10:2 20589174739:745:119 62262801195:822:195 27053038763:896:555 67411120042:787:720 29683321651:363:346 86871751940:8516:1876 54140751984:6904:5128 85217461124:2099:600 29846726987:9675:212 93561929197:2336:1677 55994488455:90976:34119 28948863383:23832:13823 54406083606:39416:21142 43487330263:33012:28447 43949821502:58663:29869 66666192726:857209:191587 25893039018:801161:316659 49085207048:393613:91496 60764348362:969731:34171 82961664369:571473:357486 84041745287:1607485:822002 40497626234:8644352:7481466 68202992445:8591786:1395177 98830834986:1297403:1161461 16679990874:9390820:1894554 14755445587:27640445:23088402 31418530063:83165448:65156167 62692148506:24779359:370236 98230635462:49682370:8589972 78105787587:46173229:26857348 41866937192:298881954:23463632 17220873631:113966264:11967767 90718577836:311764781:306791346 10577659503:358674363:176102976 24155407568:817059238:460689666 88704272252:2284883369:1878704230 99886201139:2771975463:95084471 34944137594:6848508152:701596834 41396107134:8268392474:54144764 68356614511:4027668890:3913912271 11918889703:15575214564:11918889703 22295265807:85019050112:22295265807 13744143619:86991726829:13744143619 37122857620:37235908155:37122857620 56734458604:78960804472:56734458604 42799402246:967927035275:42799402246 48392071888:516811369705:48392071888 87183480342:453174501459:87183480342 59234252254:234750506656:59234252254 64521188843:340531722413:64521188843 84226908981:3:0 56327012846:6:2 49525459226:9:8 30581677268:6:2 83330636630:7:3 95605524247:23:18 99198517038:73:3 76308369242:78:14 30010805046:27:0 67487296568:66:32 98660662087:736:455 46874600327:160:7 49845831757:209:139 52977190310:586:364 87956827469:660:269 67422878497:6191:3491 34693347638:8767:5383 94171626655:5292:5083 25910367626:7186:1448 56367517345:2439:538 82512048206:74845:1251 39325276550:51433:16214 87537468564:59808:27636 73507254343:85843:65129 91016029813:48256:2165 65176269820:684107:27716 16450333499:484646:478967 47382972118:682603:84873 16240101033:860249:320411 92899092462:436617:93372 34971060643:4206052:1944315 61633095378:7493266:982528 64205067539:9921446:3390473 95524145823:8711473:2844378 71023546323:8814685:3629278 99981000020:98457855:46277195 80719484940:67714505:3794980 74936481586:29040416:12208306 18258169318:30445373:21390891 56720101809:81391998:71271201 46546996203:166278160:155389563 24249391826:877855142:547302992 67736817612:330676220:278868732 72640962809:215501306:17022687 65530566562:622278000:191376562 12179388497:2763319224:1126111601 94020910727:2919186286:606949575 11760921756:8534418951:3226502805 35392307474:4278373997:1165315498 98157618402:6880736928:1827301410 12916398532:35650396763:12916398532 71913764221:76470057437:71913764221 49027222854:43692424420:5334798434 98029957745:10117359226:6973724711 54585483195:50163852889:4421630306 25531543119:348686383401:25531543119 57437483091:352190632740:57437483091 41559756096:945015660216:41559756096 88778016289:553577432131:88778016289 67280934478:807408920284:67280934478 747515368035:9:0 837359868505:1:0 141241942463:7:6 412196122033:8:1 738551536123:6:1 682385716320:34:2 313926488926:43:23 121423128535:54:19 368423154536:79:50 117349446674:23:9 918428365212:637:85 435432711617:131:18 306746862820:971:620 499717116259:490:249 853074868304:709:682 374006796416:8728:4144 234377779841:8893:8011 301489958535:9954:1347 394358890348:9013:5459 809467619240:9040:2120 241104550876:26617:19329 615934206741:37389:9555 940769298746:63621:36719 846820588882:88142:25846 846277646980:35155:15265 628700898618:734062:285602 366549140979:682293:190296 431508471599:253303:225221 313019587147:332931:191464 429113174480:499325:260030 544310749485:2688453:1178199 735247665225:1104354:798291 989528735056:5069729:3819649 581040555745:9894948:9209185 299196079960:1425440:500280 185073359020:61034661:16266868 901836782007:64875138:7488669 677762332910:15621143:7801569 119254485498:52976127:5223621 664076709635:51966280:51583795 162552339396:304514506:246107698 353110597813:933549461:228901555 236788293956:268064031:87754583 166614121171:113854599:44842834 490918208076:195424417:12072572 304571563152:8574393220:4467800452 470304032146:9920493126:4040855224 463216013614:2349029624:457177686 494948820018:5312459725:890065593 729755164765:1797587440:1732251565 299043929783:71822656478:11753303871 251910705079:50904370702:48293222271 823898935795:53870501374:15841415185 496762114078:91393191117:39796158493 526353089056:56329203292:19390259428 539952002097:159407723338:61728832083 585135387159:323149883869:261985503290 459657163894:435934892536:23722271358 397606487535:884971977216:397606487535 506682572559:971738829503:506682572559 735840602777:9889063632937:735840602777 422500605461:9155958168871:422500605461 349646960435:9074890752287:349646960435 333731638482:1441460958606:333731638482 868425267967:8788601628529:868425267967 926098781632:7:3 251605087964:4:0 999540441554:1:0 796398975214:7:3 793678190667:8:3 966685699286:50:36 830065443430:45:40 948876974637:10:7 756347572267:78:1 989530030263:48:39 351391290115:104:99 434567014090:105:55 983085056258:596:538 897454325178:385:103 375738724989:888:717 405033150529:6782:4659 103017211460:2546:2164 930180965924:6560:6244 496483008366:7936:7534 258642241194:2190:2184 574397608505:63244:42481 303352644501:50438:1755 533089103441:51715:23291 160436007831:82817:16836 577148016343:96321:1060 817983316512:243924:37572 792497329350:264745:115530 527992632519:686593:555740 274980292364:458196:377708 470565044216:830949:287414 551557426455:9106843:1480160 239231551704:3578746:3117842 646588224731:4898075:3140131 860613659148:5389199:1692440 992120010201:6556691:868227 460314740180:79919071:60810291 510657547890:71367697:21675855 547530601859:58725824:29744707 436263146691:32203125:7412316 967346795713:23494122:23310607 946367547714:238133794:23850358 238504897394:111466566:77912720 272706580355:239400739:29138634 132416580615:500923316:172825191 824898518936:480986032:7474056 554528404612:7020013512:6967350676 954305199796:2426999306:494472538 681239464646:8551438235:5675844081 159603726919:5814049841:2624381212 521598591948:6114521742:1864243878 391717838592:92220724663:22834939940 557106239723:47512892691:34464420122 478160245120:43116091880:3883234440 220506151568:50716583723:17639816676 939227020350:46786878938:3489441590 423094552462:994121705949:423094552462 450509813633:192619777022:65270259589 515994818383:926927488080:515994818383 364248763884:583830112779:364248763884 541248629875:241173056746:58902516383 185893454233:6004550794971:185893454233 400338301260:3268724021078:400338301260 177896261879:8024298807776:177896261879 506761503092:8598673857371:506761503092 478219745459:5844910617518:478219745459 104247110241:1:0 154699440080:9:5 139125010708:2:0 968249526314:5:4 809743476856:8:0 376102333422:90:72 735803669257:28:13 478446579019:27:10 230255856799:93:88 784862152318:60:58 456637494790:546:22 887492680878:536:6 850675782901:588:553 728322484068:201:123 468794744203:348:319 882068688719:3051:710 898033521790:1387:921 692533617962:3310:3292 997018345684:1743:424 732600414847:6971:4812 863624204775:12895:6730 900042794704:62929:17056 853725711632:14234:12586 703061795216:31693:2944 494049521020:80621:1970 602619375314:273678:124130 444819068597:471307:464611 564885364757:324251:239884 322147796544:743725:337894 993411751589:956882:781239 152638920974:3696777:2695421 517029992035:9117269:7901583 394905722097:3314310:2371287 704624653228:4239585:1386643 759979167734:3030779:2241147 124061371824:95369089:81556124 127591390927:75056358:70638685 425772284337:32542319:21124860 788894677119:31368080:18833199 543850302667:52361486:23909071 109580955130:155746533:91142431 857671310066:241200827:202370081 130688352904:202789617:91839556 828146602203:581074803:115007928 374947775261:567472241:416096201 963381447156:3947887024:97013300 767101604975:1243021715:157206820 846379254821:9310675339:8418474311 919038137160:6699316202:1231817486 947427390015:6809442597:914869032 243645730441:74182247513:21098987902 872407585254:94627407201:20760920445 748813944964:38376317530:19663911894 217345393717:36279078608:35950000677 447285799100:95400666376:65683133596 319867844166:982228864966:319867844166 215294476789:779616360031:215294476789 613220629262:219994076747:173232475768 255237018443:155487730000:99749288443 768957326974:161077324743:124648028002 854985153810:4429963505934:854985153810 487746551096:6530502256135:487746551096 138993955893:3769769108648:138993955893 366291509736:2908804435140:366291509736 183257052073:6358986562582:183257052073 530634024383:5:3 571196097526:8:6 230618397175:1:0 996620517228:3:0 367180464481:2:1 372116398926:89:0 228821536463:70:23 445619293691:78:65 502832139130:26:22 605583068698:10:8 929744103634:767:346 209493757602:548:458 934081287726:921:534 775284719468:277:37 225611128008:658:476 641594585233:2680:1713 845501959198:5447:1352 291579517140:1263:294 444165004813:8035:7513 670476360677:2502:851 241249185126:37414:9140 224040468030:63373:55812 443964835657:23006:16953 917051039659:30116:17159 396640331490:90548:69274 465526276456:861882:537442 166282034030:876003:20573 342122507533:299258:287903 312817862288:870470:540268 419132978737:439589:252852 112544057374:4277512:2716654 357791260919:2135782:788715 894453209854:5152414:4444282 682266384434:1944377:50150 711931943348:6583791:287354 217803945374:67974670:13102694 364236156608:59284119:53813591 672580524875:91699039:59772849 346553851391:55637516:43401743 455785079075:24450368:5769187 362944314516:992749927:590591161 181789944711:935070781:386213197 580719670470:679805620:165670990 785247052484:824303302:510308980 125115206442:973327797:529248426 563607390712:6689263461:1709259988 584858413950:8481808582:8095430374 407958184941:5068125272:2508163181 897712512970:8878516384:982358186 471764395387:3386438394:1049458621 212593327345:30636295872:28775552113 797389774594:79941582674:77915530528 478984322059:31263976095:10024680634 296355764187:70071159701:16071125383 721823579769:63631438405:21877757314 897837124485:849120582871:48716541614 568820827408:200689811563:167441204282 783673809299:467215575351:316458233948 249017084135:897795849433:249017084135 118081409471:105536490504:12544918967 327332296447:4893356553816:327332296447 859655659661:2100658347082:859655659661 898782514250:4901638355871:898782514250 366773382594:3462909566403:366773382594 538317479396:6015719954395:538317479396 118440457178:3:2 916161768165:7:0 206847710504:3:2 157341522023:4:3 480058795875:3:0 729529735675:40:35 961931018978:94:50 168614698756:15:1 185020184767:30:7 570341619946:64:42 101068329647:904:551 575663010362:318:278 404315907894:412:2 911871338488:406:180 411603080633:149:115 666515187164:7328:2940 445921354821:4773:1875 648563535644:6297:3158 612202276994:4803:4766 407861248245:9616:2565 388932988164:76515:50754 126128558845:40356:37513 295881983658:30139:6464 990858637301:49098:17585 635430827694:74223:5502 160745712363:378310:280123 482010279285:190381:46246 906133299942:814673:220924 773133455389:651677:154514 989486052739:206976:29059 997980456100:9645146:6844626 311913312356:7455768:1258076 157096382604:5571276:3113232 748222032637:6193539:5360203 118526095844:6210779:5800187 804448424846:68676685:38413441 530068445459:79345634:39610339 855527815264:43396296:13235920 644553129666:29887458:210438 577155781257:83280910:19074957 242788273387:716952914:458188455 172793167567:732366993:686924212 908666849530:959858025:641157880 728488014141:208477787:66626363 724285463135:970706576:138357439 532044864749:8408269321:2323897526 640782860903:7876238684:2807527499 691569527040:3744746195:2536227160 459676333871:1733187892:381542491 684277738143:6216026763:514794213 682791999958:44318136129:18019958023 138710353098:97730803399:40979549699 105741339854:59485418520:46255921334 268329706531:16604817608:2652624803 386705410401:67460140140:49404709701 669127574766:896748685770:669127574766 468248227268:661391837198:468248227268 295427783641:384190837993:295427783641 146811259008:744215394503:146811259008 672597806716:552261279555:120336527161 788949733960:3605874081547:788949733960 890518913706:7484616902647:890518913706 978803425039:7934513835216:978803425039 635835911675:5557365375903:635835911675 831279652517:7191452996831:831279652517 7163350830340:2:0 6539286150333:5:3 5109050198955:4:3 3155937958462:4:2 6545164294877:5:2 8608477604932:29:14 2189506636921:33:10 8699036388336:11:8 3055087428036:86:2 9556899906380:76:52 8834736210779:545:214 9840401080440:470:190 1429265962684:994:616 4504650623966:423:101 2788598166116:336:308 9955560422591:9914:2675 3032576672449:1124:649 3965356646986:9830:6656 3992007735202:5205:1117 5997024424340:4669:635 4506450866748:26741:116 3319645763665:66807:54649 4907062826298:75190:38428 2417186075304:96432:58968 6644419976199:28815:15879 9930959900060:811266:490334 3260334415597:249701:194544 7312565702677:371288:275237 1975120245583:338343:13522 3806697617813:294054:94871 5850393546526:8367454:3588990 5629063198015:6817336:2497487 9002887738799:6540738:111245 1808618278184:2560289:1965405 9408791689188:4989810:963378 2356570702173:25384165:6360233 1288593729720:37099147:29056969 9481722922320:91373848:41463056 9918490254496:83000671:76071338 7862376786236:93995286:47093480 6113300603874:531358879:16700979 1255304321667:486675995:166930562 7646318885476:151976171:93770124 6284682370953:844068178:594785743 7344914627839:400236844:168303595 1355013975627:5998487894:5354199477 3043918262135:8844289235:1482765295 6979700534101:1553799482:33260957 2702119414550:1564820964:1238430686 2853115498452:5269138479:2511581313 6693680957726:38502670720:32718923166 2689957596751:69404285333:52594754097 9588369721099:21211821365:626464119 1849337020366:81278354189:61213228208 1342077644203:56095224105:51887489788 5044174429444:975274977000:167799544444 5522462322193:719048561628:489122390797 4652831851236:795758216592:674040768276 4752192528640:758803507442:199371483988 5686361538335:950921418901:931754443830 1693974413647:7729260958298:1693974413647 2805636555907:6783537773354:2805636555907 8312348296784:7590619066450:721729230334 2314570396642:6215845105637:2314570396642 8939789433194:4937263805462:4002525627732 7990045907880:16835633617850:7990045907880 4192317459202:11316147845548:4192317459202 9228069941587:25249210170667:9228069941587 1480432682414:57389098027086:1480432682414 4318110502380:38686151042475:4318110502380 5834243027103:2:1 8268967914075:3:0 1649116796465:7:5 6360042078448:1:0 1252747730736:4:0 7397068876103:91:88 9224633392618:37:26 7021339681454:21:14 5660282362435:23:8 2010272844477:36:21 6216430569401:861:626 4779571776235:580:295 7708031726936:798:590 7777718046057:684:597 5248124062695:552:39 8221540717364:1946:982 9763432634947:1707:910 1856375518528:6246:3466 3250613631466:6686:3890 4283087896528:8979:3850 2140261036880:21138:2306 2097699976767:21235:13362 3868352718514:71351:31098 6328081795108:90510:21808 1243623472390:49165:8880 8616402885739:194560:44139 8724696309525:152061:123774 6339290263499:118819:41275 7521374707576:963112:662288 8493737911487:842616:108287 3855163016069:4596016:1815189 1334788859618:3945800:3635618 8293792674619:7309401:5404345 7569213131019:6654170:1597639 1104633362198:5017314:1442702 4066370139303:38370224:8910455 8317566000898:69355887:61252423 3247866604057:21480360:14691697 9920412095475:26319722:8798957 2685225385099:46498911:6272671 3087626614351:543947702:179457799 1497576030705:118365624:14155857 5222460814044:886793808:132078732 8970070255508:937716307:813779053 7229885546993:505538447:180216446 8350088330034:5572921009:1852658552 9375912032417:3259522071:1526556221 7420159757143:4009260270:3028257643 3217640616747:4486827814:585074109 3260887680554:9883942818:9070493432 5986716894024:98338897643:86383035444 9446776268524:50370500005:27492767589 3659987467742:31121899273:18725252801 6229582583747:89286258374:68830755941 1595752710681:68237255682:26295829995 9234146232566:702568610229:100754299589 2574619796527:833656556791:73650126154 3586573024027:488324184545:168303732212 6353989790068:446872294776:97777663204 2730805559906:198983280331:144022915603 5011195373747:4408424081254:602771292493 2378182470419:8297943253271:2378182470419 4965615002292:8744964449321:4965615002292 1348131915962:9539559043282:1348131915962 3512133767385:6228920592543:3512133767385 4703364220151:19724605415560:4703364220151 1349185198134:42209935424004:1349185198134 7812075804840:41003786123103:7812075804840 5998457491286:70756102450630:5998457491286 4724172233755:46967303977532:4724172233755 5809149102873:4:1 5036643268753:8:1 2409632206479:4:3 9172726878530:5:0 8832321082919:3:2 8386787127944:78:56 7453238945038:22:18 2763376150254:40:14 2098868140676:11:10 1479873891718:43:18 6238578413871:819:531 9521517915553:769:429 7864640255450:530:110 8101491591691:884:459 6013374011261:681:191 6269922164737:2225:2112 5869852841078:3897:953 2353690944017:1872:881 3607766939365:6618:3037 7067722484269:7219:542 4473730758476:64033:27882 9847238319485:37221:13367 7342850076230:61783:23259 1441960272813:95717:35420 2802173965250:45970:28620 9202166544531:263963:94880 8052958008710:142172:118446 2339743641247:284939:95671 8799176807895:964021:900778 4538104895446:190713:188188 8160029256425:7277700:2741525 3598900513181:3493303:1950097 4491916914588:3815524:3528536 8805171586158:2351599:1847691 9868248788324:6126492:1799324 9475923714957:65356390:31441637 9000336479498:78070748:28367066 9651585312126:46355538:37811760 6818619830001:57488760:50472681 1142072559947:18440061:5821973 7067738869628:810374275:464817353 4906558804631:794569107:94568906 5638647813349:572510473:564675245 8854364782061:934565332:292826693 9496403215904:334036538:78477102 5287564135667:3343999186:701422601 4831316061842:4268590649:3540037823 2574916859922:3616208230:176600162 7396183784174:3999569145:980435069 9991750301294:7237170999:4454322674 9154655924071:32708146836:29082956827 9320198653349:60730917630:28368255959 5098379808116:81427725349:49860836478 2920765622688:46676061953:26849781602 6126440905082:26982975265:1305519927 3919446230975:264808408084:212128517799 9472872450462:452850948055:415853489362 4991453864348:226345295530:11857362688 8085304910041:854820261328:391922558089 9149180889080:331235275479:205828451147 4519196645236:7667744124242:4519196645236 3256790978270:4482190895839:3256790978270 7192272764571:6182572052073:1009700712498 5484914384262:2830332782948:2654581601314 4084443386170:3269997047707:814446338463 7071767154796:82460272329724:7071767154796 6668068344583:96472581082084:6668068344583 4553393154229:55103294567838:4553393154229 7820013912882:41029848211214:7820013912882 5004750340819:73673238274608:5004750340819 4176554675625:8:1 5816004959108:6:2 6398206302654:5:4 7618552000823:9:2 2163730490388:1:0 8967147013591:21:4 3619335470016:49:0 4003011203256:29:23 3757234727390:64:30 1935689477436:28:8 4712375480738:227:61 4142893673555:904:19 3212944808016:663:216 7698660009881:791:533 3292128700957:227:168 6986207460439:9123:5425 7934493264507:9741:6378 5120844210359:1871:238 6826542642185:1644:1385 7284026840552:2921:1091 9146685996029:39083:12726 9578306064420:18051:1842 7477885103133:72398:8651 3988397230351:76338:20113 5675860395166:20393:1244 9192557147996:121543:77519 7672617150045:103720:57325 4570014995904:630722:169168 9710940007753:200723:7292 8991491753843:940941:698993 3373609768058:6097185:724448 6618721989636:4746898:3435786 5670842128477:2228202:1192417 8996039101149:7767816:7106493 6194718398340:1929266:1542886 9912903915339:82211609:74736946 7264631633431:42870095:36815111 8319840856816:90943956:14930068 5107555866707:76792600:3248107 9238989112680:62642919:35561046 3463296262937:941995489:520845373 3494230548878:791601857:99952080 1666192056931:744659749:388198418 8936166754321:737036140:340592961 6332514481105:918244582:299843633 6047248966523:2728946454:2632570913 5534351835240:6571486952:1159821656 4872080926818:3583584839:1989130617 6213148170907:3666930253:1368322325 6508792529205:7293300032:3168900661 7379717713322:81248363314:67365015062 8800108600854:85400071614:3901224612 7536212050313:61244481557:3140818802 9805245536248:96390857661:69768912487 3397154261705:16270865958:12814142441 9655338424998:278617134834:182355840642 4631313087610:697164065362:448328695438 8254310081999:890661350085:238357931234 2368998330903:522484427761:279060619859 2613395846166:370223213474:21833351848 7883193395371:5302687479436:2580505915935 8029864891979:3211370022949:1607124846081 3180480669973:7872448930495:3180480669973 5285857262908:8922234036364:5285857262908 3985550149758:2523978952231:1461571197527 3417627617193:37660231911907:3417627617193 1720690902380:17245042048383:1720690902380 1983187939160:72201826813725:1983187939160 2663953469884:98047457390307:2663953469884 2091378547859:61196167254141:2091378547859 8927605221729:1:0 4321583188101:2:1 4968571404441:5:1 4315729390088:7:4 1035154572142:2:0 6701137158135:65:30 9146026422499:78:31 1245266284412:15:2 3183841081603:23:4 2601360865637:55:17 4848087206107:797:378 3803651836234:851:455 8489623624303:954:373 4172100774576:391:325 5415706474665:183:132 6865892299333:8998:309 8810455017760:2704:1280 2678165383703:6080:3543 6645238876043:8792:5619 2664464818842:8827:2192 4982808789190:63663:430 2572577984652:75058:11680 4290428053884:17072:4108 6914905104978:58232:44426 7176300606901:81903:43177 2256888586906:790221:26044 2140405782736:225869:215870 9873611530820:631585:278040 9328638158744:942912:518936 4250756159264:497723:161449 2883324213884:5338811:3234736 2266360185968:5257424:362896 6829760506163:7111351:4783061 6595476716592:4870105:657402 7034955813265:4013813:1961547 3663190475888:86821623:12558272 9337960758658:98450672:12970130 1950836022143:28883879:18834483 9317661616629:93331706:77411531 5154620105918:76181969:71901409 8358438106533:867238696:858793181 6133681649548:505088459:392491911 9635530164432:556853092:301113556 1678779417069:332999812:127364777 8821008577040:296524296:3819632 6985539141575:8046547579:1135843003 5881204840336:8697083083:1976676228 6531453170911:9984953296:1293715327 2357889534998:1435444603:889496872 6583916692633:2789578978:510304553 2558949238970:21867276141:477930473 6083265448633:62536712712:17204315569 2478694989654:94570866209:19852468220 2560403512745:29904216754:18545088655 4090275659422:66090388909:58761935973 1862724454995:710590515609:441543423777 2591253086006:610690843408:148489712374 8783909471999:334658776516:82781282583 6081931221162:515731575770:408883887692 3610734371413:981942439260:664907053633 2625261820544:6639277778023:2625261820544 2338849419141:3017559842331:2338849419141 5671471776115:9745284314318:5671471776115 3878760842920:9693601309867:3878760842920 6465424608868:8466619492580:6465424608868 8254291711522:50151182258631:8254291711522 4470587239247:96050481574671:4470587239247 6883150657998:35806436001975:6883150657998 7361155678191:22564184948048:7361155678191 5631456228567:25631435689663:5631456228567 84742174365858:3:0 88394057490465:3:0 39326177198111:5:1 48493408797027:6:3 13285726883815:6:1 56741124066547:96:19 66854934085631:40:31 47895758283383:86:69 23139912475451:65:31 46236762724879:76:23 33880608688828:117:31 79547519834309:368:69 11800763867667:894:465 69565482020099:899:464 35335924010405:579:209 69376730342194:6895:5714 13444214531792:8695:1772 95078780539597:6098:495 93609460832573:6434:169 26543601191130:7391:559 42403097051484:96154:72022 72079480013595:12162:10467 44861265325804:21736:17516 63050790252936:64922:53396 81437492198057:47417:38197 56171993546230:713916:369574 97781568436028:564699:69299 43647137170405:947494:793131 35351562449323:634267:487560 25686281206104:639961:159244 82481816925160:9713026:4548384 69956964169870:6081518:3741644 17925344558553:6489540:2065953 70002245664680:1762852:928620 43984628441827:8829583:7749829 13066440681982:57207520:14283902 53558311632988:87017245:67507938 36706784576517:78537463:23657040 94721936329134:95495227:29677380 69640898408595:37701423:36288531 29697813023706:885677253:169053363 66063046245959:780273416:417206903 78064163790225:767691513:684599307 88919517617825:441051580:431728765 91597844639034:462508436:361431414 52728084147035:7491660338:1778688191 84871203633897:2543778103:591005405 10204738473822:2008995418:1050745800 47819871408720:9387040047:2289409302 90026228030524:1709414501:1622749860 17124229762498:48279057095:33443550868 15830922807392:66517185747:66349785353 45666739019974:13242720816:5837646406 65321052407454:30199645995:29417766264 11052806358807:82524687402:77022934341 32161773245045:560972858704:186320298917 63043689971250:972482601256:804803490866 83649122552698:684107871813:187962191512 59728255987536:979028810004:7498577292 94103226161304:957560816442:262266149988 49759383959646:7979424191816:1882838808750 40562716988650:6100456961355:3959975220520 81846896032987:8951463417986:1283725271113 57209843414603:1692736669572:1349533318727 10638858194423:6174839991054:4464018203369 84979035306525:82309765278273:2669270028252 92279761846941:30645997754751:341768582688 77761871100216:72862909270176:4898961830040 78100368738192:54373550214974:23726818523218 93774411279347:46928483842946:46845927436401 56517099618671:138397492378759:56517099618671 26851540191626:760930367360030:26851540191626 25621191555930:500268319178240:25621191555930 81280047457943:793202121522898:81280047457943 53686239921301:221588443819965:53686239921301 43420941426859:2:1 86187971691230:6:2 60578410646989:6:1 23817031831518:1:0 52810146706264:6:4 16992706401772:51:19 58931824194216:65:51 75570709544067:89:67 72081610485162:94:16 81720425640266:36:26 95418298558628:781:628 37632950984747:766:201 41134857880524:314:182 89055852295612:266:146 68330522965021:966:667 28677064003319:2339:81 74280978026195:8686:4659 69778493638769:9243:3620 96556123440337:2405:1367 24674061905755:6892:3799 87840963280633:29818:15165 61992461065175:74725:52000 87415348302622:67180:40622 78855523323478:26035:11853 26471139277702:72939:38851 39902572349607:310962:30867 10520415781894:474099:148729 85244380140953:109731:49955 52580558138433:784707:655749 75985440561767:318853:148050 99759646207161:2528918:1667081 21823647018563:8748980:7577983 74898283067160:8787199:3648327 73693480753267:3023252:2092635 64585938900047:9774397:7721439 45519174565490:86283486:62675732 13152006559347:75389578:68508513 34492281377559:82435884:35845467 61186370005710:84673765:6657765 35032023471111:67361322:26990469 48590225449004:801338314:275441300 31766082394433:802185835:325514268 75626324519825:372080402:238652521 65680003113538:698936997:194568451 72920078384417:485805720:154006697 66126595353050:3848566650:523172750 30776561262431:2057395098:2045386547 67657379991427:4272467321:2859963392 79051711281594:4639934238:1151668788 87169401791830:6671679737:3906027925 85804234025499:87611012594:33052695973 29722562438459:23359209897:9647449475 83942639270345:67378541892:56354614805 85345933408021:26231580965:14600528876 59148163092876:27461298878:23986608542 22313500950337:111916123585:42192356922 21500778993689:770237847949:704357099066 65306874053312:170113391894:153444957910 30344671686283:355107388198:160543689453 40125483115791:332958996658:170403516831 74603865976391:5683943922665:712594981746 30984244588923:2645767969048:1880796929395 95752710070026:3061749766933:838467295103 11943812297179:2874505968791:445788422015 59291187184128:6312020616092:2483001639300 22243042732980:13772558507361:8470484225619 86784322820963:22200170579919:20183811081206 54074788360207:72570512734954:54074788360207 65852274525532:94628663211569:65852274525532 87021369944022:89647699480337:87021369944022 66004678558710:348288958681369:66004678558710 22446211923566:221833258638325:22446211923566 42420831466575:887149669038154:42420831466575 26204984698021:221392845125761:26204984698021 80290977097345:137095961532367:80290977097345 39095582329493:3:2 50476789676288:5:3 15976215763942:6:4 13098594266956:6:4 59083668120228:2:0 69420600039088:85:28 79627677949287:91:13 23541302453864:88:8 19194476593397:62:35 81834931140318:74:10 62656102002362:970:62 28698083166996:757:338 45714788863131:728:115 35432522830154:474:248 70555183167759:432:303 78041959399580:9761:6292 33787180182481:4955:261 77837116511832:2389:100 48200511070706:7790:7246 57064818652579:2172:1171 79283411357658:92224:2202 64010923069158:39611:20943 25607535351941:89796:23405 24924879876879:29795:504 95331809251372:48022:2592 43754253974263:853306:695915 30013709868185:250867:50609 91335377052568:235457:229457 85308724021234:895724:715850 67822177221565:221635:168325 49157896106507:8909875:4091132 51318067329523:7879804:640495 22938821668436:1903607:1343927 86879350227158:6792605:3177338 85117545876710:7976727:5892365 56235382323686:17351806:1017316 50362260138392:73408175:67822417 31518783573476:74357190:34804706 72799868022079:25095654:10811749 51370948165385:58479729:15022625 44535841233918:519342799:118848472 67498195805888:271751223:83534702 84865132556077:909118555:733683937 48824582203072:635089563:166778758 16912671797194:856026362:158963160 24985626894889:7752177403:359125020 33227827574547:1264607619:262385322 68581112599755:3647298438:960070041 31634253678233:1112655644:341063669 42025961600507:3338601772:2981096343 87707730561841:99991207315:15441746586 57059610303824:41001797199:26110400015 14462298352746:14221754328:12995955498 44422062642140:15006915575:1592540140 22249405315306:10765260981:8376128560 65463371562018:505066551981:309786356469 10125420385360:926404335947:861377025890 10992225365800:568749514285:185984594385 74586119072117:254625067072:235599487093 83247279523544:944069613225:169153559744 99741137894368:1280151336196:1169485007276 60789782185950:1148012144431:1093150675538 85481014425213:4335585611597:3104887804870 28063221803313:1035798470938:96663087987 37279074317546:2539276031594:1729209875230 72629765508220:15796086559124:9445419271724 39169758365113:41402756655507:39169758365113 27370560044385:61644077414136:27370560044385 21600315421141:23424693370929:21600315421141 96468688643942:55739625085014:40729063558928 76366168723288:589014568730802:76366168723288 51480378076073:591380376169722:51480378076073 19192419644847:385291674345981:19192419644847 24153047372015:470576253082687:24153047372015 46709198253822:975761138042844:46709198253822 43762520060561:7:1 24632243486332:4:0 97462965807915:8:3 46729172422416:7:1 12972931433039:1:0 40169991849807:50:7 75688945752689:11:5 67721886560278:88:38 86683042110703:33:16 54232459279923:26:15 50714622201523:548:371 27354472557194:550:244 69603567500531:687:299 99743264015536:471:109 31209229305339:963:87 94009451056795:7985:4350 92140955574469:4770:4489 69338747016311:6970:4401 85553306239211:6242:2629 52846100411481:5797:5437 29800276619781:23878:20991 10115824406156:22383:17171 85919791337992:41760:28072 31481119800839:86213:60871 69913587916074:25302:15396 65608631363632:570062:252366 54154096982332:534912:332476 22184116639572:691145:153222 40002974938969:975127:673773 96150807421853:502110:111533 57069186531467:8816856:5293451 24329078153487:4540274:1763391 76475849522105:4484652:2804417 85066588017528:2507209:312746 48107794462223:7041668:5936391 78551805412184:11023954:3843760 45913237019850:14463307:4090709 58065903468858:70264689:7655526 94118760590822:43501996:17145022 40810305899321:46668080:3300921 56474957167583:871029155:39844848 16727916275957:139455194:126300463 46113391527758:598687150:112486158 69911969749634:824456229:554899121 24061361482766:786981073:202156864 70222419406885:9243791427:6579727393 68446521668407:8494476751:6522485600 65137182442259:9060425957:1780237386 93172757834001:9049849575:4556459376 79488046317012:6869829110:4123514312 40910374278118:32251235626:15807504350 23160704027820:21272170628:16582384556 96682009590538:58964977529:38411420507 71917633105535:89366162955:67238089715 63950867625980:33170272969:31751614717 52592976218210:367468418815:44992327665 37257098502841:960911764344:742451457769 42010311152415:726286769759:611965276152 29475175418350:760503374264:576047196318 62856943434878:834956194739:235228829453 12971732464339:9554501100262:3417231364077 65940611205808:4436337752253:3831882674266 89532260901061:8089575329943:546932271688 93091516842300:8466637988486:8425136957440 93254177489804:3252351239005:2188342797664 32505021700370:23017599206527:9487422493843 89565780205162:10410267898638:6283637016058 47542581845860:62080833332801:47542581845860 38132739385676:34603751968744:3528987416932 63496930860400:37139613657412:26357317202988 97950207750874:511537670223591:97950207750874 65544503772244:509044998671687:65544503772244 32900902665457:391825535641042:32900902665457 24166941819050:135373562589169:24166941819050 79383978548504:222407352358099:79383978548504 46605044703526:5:1 99468196476772:1:0 93618918659193:5:3 11223224896449:8:1 51947527544203:4:3 82777647705715:19:15 14350075898467:16:3 12695904682080:81:24 15611196721749:23:7 41276897231650:44:14 27229975164701:154:1 51425161116051:906:453 19727993427395:399:344 46030142439528:735:303 22480034508116:812:584 63581048384354:6437:3861 42829655041451:2494:863 27440790390964:5266:3676 12913683344414:8879:4298 72639092618739:4260:819 64590968861106:18779:5829 92145198271268:99571:27715 26627583790523:33570:12413 83121531346941:65974:11187 44862561649812:33407:18672 77904705608246:278818:100992 38311345911924:433622:118000 63472676404715:934492:510659 34115150561776:264015:79081 75779620286503:648747:267862 23481787117827:5805477:2745399 12146590165623:2385841:1648749 22636523640543:1413821:1026600 41855136862389:4310959:1443717 30988909410806:7584625:5063181 74561037925431:84651998:65999019 84134409886660:85243592:7505764 28519038126350:28274802:26661476 39501575595107:70069868:37859447 37588670452630:50821492:27718098 67014381017728:236714566:13953996 89348652947936:565008444:477647552 29983792017418:611989157:607248517 84930047346305:232716843:35493455 72832542101426:552163213:5653874 34371704650068:8478762917:7278547467 73503896695547:2804284116:805731071 35673547342210:6581962465:5892744375 50295009714511:3639947770:1851376421 41227837268986:5009034757:3481218876 33511472174015:94496091745:59855696285 35233972518141:35682681922:15165461127 72394308836879:92428833897:22531895528 68620245637942:26411649736:2779623814 64604808684597:79055969099:16081930714 42984802108603:171645491098:73429334103 25284358500494:839482207485:99892275944 75973787241215:525048166935:366851202575 26556508014148:678296115969:102959491357 92425026826585:802112958735:182036572060 34796929164556:5555043909141:1466665709710 80925273839522:1320876948076:351780006886 34418712646709:5136875214527:3597461359547 87334791781573:6911900245654:4391988833725 13759737907597:8094761605879:5664976301718 54389276778957:10190525648821:3436648534852 12117839882097:26343478984132:12117839882097 38304736642063:46543256982949:38304736642063 32241109970450:40946494962886:32241109970450 32138003201788:55853130023572:32138003201788 82734685527311:401689469730962:82734685527311 94122804587867:459261236843833:94122804587867 47682939033843:121417541872079:47682939033843 19527771872017:935435303455573:19527771872017 73464788525963:936953353160309:73464788525963 889172708841893:9:2 679976105934595:4:3 965869406447855:4:3 547840498354984:5:4 304329201194607:6:3 846364690681695:31:22 859005315544247:84:11 701956370874695:89:12 597232161151563:10:3 109422727506597:33:21 969310552493601:372:225 726073088547306:376:42 378914206232422:200:22 792771810293708:259:7 222090567475935:614:477 200267791361144:8006:3834 928948234596655:8160:2095 940691433186694:5280:1894 330289669526140:5306:4804 614826100751399:6066:1529 828603912127897:30508:24285 285773008472410:45916:45790 971324200584211:31687:16972 981255217526126:28919:11257 624024999346361:16187:13510 788613353969801:422699:20046 698428507894596:524795:29816 671775485969003:977816:547739 583472027620019:717811:146486 243342906765657:879554:792711 649810952085972:4345629:116394 578965416772493:2136013:928018 935582671016684:7132248:4543748 718324936579110:3073376:1897318 185132020745071:9896306:3482767 974004459866257:25694595:12482347 150739509034188:19150084:5829868 520208337006755:84450083:48230905 189875157765745:71882005:63552330 916840869151136:92039684:74382160 558114773498793:281254333:143943252 863571183097718:132044487:106073231 485542374717689:981966735:84896324 916197085407317:861398846:351819027 188517929404424:863003884:771971812 760847789296124:3108164723:146752954 844710361099366:4689044703:2403077431 569075841121525:8440534320:6576732805 780459878923347:2335603328:1677648851 432561741919600:5217029927:2139582249 368920308875574:91471412632:16101730718 559161542678581:89012953884:71179333177 858902335944613:10518949271:9090068921 732613168018314:66696589109:17833245058 207088879403786:84048656421:77038638863 670718306615932:506829349205:183077617717 495363070993322:178202657987:137884447449 797392353557207:304409382207:144181557074 442667699688191:300314344341:4356129557 642420984912248:408096596741:76941641914 974124510208671:2592967344565:1761755996796 831226352371426:4356143139571:3559155852936 221522869090767:7648891828860:7353897882687 191537190832973:8529145142851:3895997690251 498493839361426:8904124258682:8767005133916 328016142041883:90752686715541:55758081895260 623709717676489:90232485467365:82314804872299 625806272094022:93343639280385:65744436411712 750824032011770:99027196534196:57633656272398 953108122153493:34881738936568:11301170866157 204870350142478:525676885783518:204870350142478 356428100122706:360827721409844:356428100122706 878105014571442:199043750742799:81930011600246 193122337265934:825729044251502:193122337265934 388794269569550:549654620631440:388794269569550 647658682470747:9474050779197231:647658682470747 909887944909473:9832490090645350:909887944909473 741222375198506:8377180053502549:741222375198506 646691408400794:9104150848786113:646691408400794 636514134531656:8500210973386150:636514134531656 121578310740278:1:0 479548766875850:1:0 671237870327301:6:3 815786316983931:7:6 570018645553215:1:0 300623291471925:77:37 614568062099094:86:18 455810906964084:26:22 961754455453749:60:9 432738812777494:52:2 173646201371580:309:156 929203033655159:865:849 398174247439504:895:634 292043526543652:637:520 675978841079088:842:660 374381441396672:8334:2210 836118809575220:2269:1294 751934306451208:9438:6172 642516184838052:9106:86 506509612147336:1869:847 213610917793067:76539:5186 498291824293428:16579:12011 271729974324166:33301:18217 939126995498939:68662:59537 490176873379346:51438:45890 907123212280666:714485:496261 139630530559916:633740:94016 928663249395999:719757:338817 976727994166155:871908:867171 690645111921619:799923:112426 521753500267500:4663156:2803592 948925703189641:7606236:2633797 237210657190048:7180720:2494288 716654140985927:9546898:3342429 384176035737399:4709892:3101355 318478363836182:62107921:158120 643838424922284:18775130:14750844 729104471034209:73180096:51211617 597090735594870:17897857:6056444 177650164739744:92856875:12907869 610036814855824:959468474:42807306 377389337954973:676225800:567265173 493761240972294:255174960:245121894 632804383420782:707470400:409436782 970481828651573:281765072:81752405 288767358664125:5282449554:2253794715 310628840886863:6839148402:1559616425 950467661547860:9722809375:4708285360 874553690767569:5336440016:1891625441 836908697561034:3405062146:2308130716 441431426019055:50879392770:1814346535 199438784440749:34703968839:29779491855 898365374259107:20804182249:19980565038 593658800508184:83699129187:64576313980 701502285774173:24364946446:11112647387 261958429049143:616038303642:142150001293 607094331581902:606978925541:115406040902 921268674362323:272909525163:199026937198 830673198159171:872307988877:235992748267 998325330795751:731056148158:433688560081 302383231034591:1869907932419:1328053915132 513309025947912:1516194248416:835369983304 811035036505830:6765561682571:5933196279881 785487111217075:9768550371827:4003081470915 359531257682868:6969114420507:4106422237011 280362777580651:52721850160891:16753526776196 866963402278097:43055314523999:5857111798117 395373507713515:70878777200669:40979621710170 483310138640241:89163172532437:37494275978056 715891141381888:49000806930716:29879844351864 760288664310979:785682221871260:760288664310979 665251262141354:144850871026347:85847778035966 753230735641658:499303138827549:253927596814109 608509529091255:911401997988236:608509529091255 958236158879384:455893925109538:46448308660308 838873021066592:9330263735073774:838873021066592 426031529717994:2646787401694972:426031529717994 692561123766425:2628243914452687:692561123766425 905939724249192:7851195832424850:905939724249192 388786467558451:8582292378635897:388786467558451 168713542386953:4:1 435513642081373:6:1 990898889856634:9:1 630521147392551:4:3 103359257446396:8:4 847012533648076:45:1 976702179551306:14:12 549614348066182:74:20 828430969484444:73:28 211529079276342:57:18 868049571119825:313:272 770013658582228:385:368 483464715101196:546:192 194589005790125:572:89 891310187659336:816:280 435290208493923:9855:5103 422538582775635:4449:3330 565860538874496:6135:3126 918308536853155:9744:2611 587062744984045:6400:4845 529068884441485:34632:4405 204608499611660:40858:20562 869398450058072:17940:11972 550386195280546:68722:66420 928852695475498:56838:19204 747445438881744:671858:171246 213920191144906:315264:73930 479797140391093:699053:603874 779725422831569:224173:15127 897916040812869:968440:265629 112930192476669:3484357:899187 909081712733151:7253732:2847375 162423739419376:2045877:1339348 677220982760932:6284484:3325120 631212499228587:3079722:1687503 414419234010429:81486692:1391961 741421023949011:72693310:1879391 596684834458051:15945427:3911879 470035287515940:79457511:11032335 361765612691716:41123213:19884434 926521055382499:236329470:112437889 433617197138934:211139526:163732260 636658491833386:801782908:368387262 790343003891947:580995232:83926315 653300255721876:928761732:894577488 915229944088922:5109339025:4263218722 923258341527641:2611890696:1994524169 851023552307771:7081564096:3668635067 827772985009816:6949330280:3508707616 172922349272076:2016022927:2014754505 374916547385991:18079635843:17218545543 647985708887128:61907242236:2604402916 793232058007243:74757881155:50938952693 448092114293872:29241746703:20829563803 299230795652621:99553665594:72030542651 424894193492918:255722526288:139077328550 702399957718008:659920522794:244521465192 508589444959300:289326283255:243165280265 475711367198502:338509965818:104865224212 233223577524204:522606230052:141198921012 754145318733204:1962692170495:471525263124 127388144978380:7919253583010:680087650220 814631482453886:4476157021043:4447061645103 981698654370576:7686167630495:5555365297711 438047867558922:5890672660091:2138090712188 875202767466305:58361823901986:58137232838501 590500650691373:66002211046330:62482962320733 184808139568908:58084770692237:10553827492197 448785424998436:83777302478456:29898912606156 856186957443345:35754917455634:33823855963763 959736714110521:165233786381647:133567782202286 407756795366926:463957654186105:407756795366926 837724123985093:216953578052643:186863389827164 661657879151649:403332032370845:258325846780804 224856292457697:306702358240213:224856292457697 144097080611689:5594901153215553:144097080611689 392925429255724:9801992195637290:392925429255724 629263573287392:4511632547539656:629263573287392 780944957769401:1441107768313627:780944957769401 119361018628693:5817233592106175:119361018628693 414592279904430:2:0 492290635040331:2:1 930000939913897:3:1 780754633959155:8:3 249816657423443:1:0 959102269741079:17:11 423189623560280:13:5 852632596815649:57:49 985501431050376:42:30 142329459208009:70:59 558049262300640:272:192 688328019773841:209:51 844020313766075:855:605 134481937755381:986:795 539092285753164:236:168 752374968872358:6944:902 820888845108977:3307:1196 397281187875058:3189:1471 163871030834006:6094:4940 232118021454840:6801:5601 214443769702064:21865:12004 207152334936848:24350:23048 452010352056883:91594:24957 284027284151201:14839:6300 154117798867749:76240:56709 481382416077855:620342:478771 331365449609195:687582:399281 696309152773574:510102:229862 351512912840643:656799:545241 560180097888148:244241:9110 278271743760390:5229745:3724530 613695725198858:2849866:721230 993069769982991:1488702:409509 727670836133949:3476819:2860393 202807865866764:3553557:3456177 680034581652774:61402019:37191551 810240209516860:58059825:23848060 213090004545856:12394934:5303122 222760693306202:25653397:10484833 854639941209631:82170207:25903888 443486938377702:893794931:194334398 499847992568341:209424299:149019812 778038182795441:233930993:75246951 754190325840098:435007180:107572538 639885625829197:150659929:63501675 543393885877985:8543625011:2247928363 502791391676552:2299369565:2045115392 463712696140869:2241182942:739526359 696040513946893:4392869501:3520121946 297130800795623:3244515862:1282669525 975535050776094:25655831734:23360754212 748801413352684:69542153976:41041493092 472597062741587:65069304785:63771392917 110512922104913:29259987066:27210943697 807193687144446:62213438169:36540339840 989888881804376:332146673893:91793603236 535681655148696:270996202896:193158226200 661743216238327:144304642003:106432654572 737183709210916:468448251904:314608965924 649438350761402:132855631162:40025641546 759359603749879:5133742994014:4699383629821 829343114977602:5643317572348:5418749414794 939388256369894:2242951083226:1834703581426 517823362231655:2420374301585:2283635994050 842012087461387:4176574127558:2520687822229 308947136667928:19617825046894:14679760964518 734972134909851:97778731795016:50521012344739 946465901185508:74958843186132:46959782951924 147179035670825:74657527538805:72521508132020 409524450218564:31172712035407:4279193758273 780481920762943:546958783686080:233523137076863 282972188019264:507916661312117:282972188019264 473553856897283:590509609078970:473553856897283 406456816330426:607138154409290:406456816330426 167334542869139:206786560278683:167334542869139 385699706640044:2585179644705659:385699706640044 764485296870691:3620592938193406:764485296870691 182404340752279:7648187565932670:182404340752279 336933605945231:2649993928391868:336933605945231 846230990008728:7063387625474937:846230990008728 799419276955174:1:0 730399397177584:6:4 304525931295986:1:0 323553532962576:4:0 947441666618275:2:1 875386719033340:68:32 541051564409499:80:59 342865898364809:75:59 268957550389455:23:22 897597461817953:47:9 252661993901657:159:92 178475967201946:681:394 494173287456821:318:113 375485353749848:619:290 672533119259780:144:68 449311012339956:3959:402 516139915048567:1512:943 483464197745202:9763:1571 685591641019374:9759:1416 578833225691836:1910:1596 128427717978684:37599:36324 717888889614549:27025:22399 995944877036817:41176:29361 107073181853524:34100:14824 407340920476424:98572:70616 955127281152595:454753:437312 976199155955097:586273:211420 339538763215333:148433:61494 591578264460123:532412:387483 176094556345065:178113:9666 482625976359485:2151178:75891 818504682975090:5218119:2302956 793088853245021:3516736:1465821 486564915387495:2835294:1471029 244390629738407:1127974:801585 568064735795349:71071476:22776609 166147819221019:12616678:10456785 665842363401302:88512465:87416672 590757116129113:46612211:13502543 497519917379946:87227463:26074605 821110674492852:908956675:117348227 595393276132708:933887274:915692200 163067428276965:271355856:196951605 948185712426060:565069019:463613079 642890895466892:415336013:172328439 922609051048936:2820940874:591621118 901057377868484:5936279267:1420489088 506415916098913:8404152823:6879443402 399518368756107:2497515938:734217999 601989814825842:5258065463:4416097898 333210824361659:78445167763:54196872198 569036219722443:59975469147:48943924854 638432751644070:32624254576:8713846326 986375645307630:35394930042:25129827216 310249851637364:33276784566:10389128546 338233866648652:669254615780:260285679752 376857617125804:612491224754:175513902094 287512204038970:157256354666:47587709522 341723537865269:196813136114:55933571365 355188960467894:758991259461:740042299607 663381350377741:3571821070492:2594452336721 488025410421397:2597801605712:2236510153253 999648043140545:5303719809517:2548718951349 896084031015233:1352700058117:596592541779 135092589727201:8655966539621:5253091632886 691011541516603:46371687110875:41807921964353 717296886327416:54990739926120:2417267287856 335237123265173:94397118884189:52045766612606 987952855762861:28213947783876:464683327201 556328744939490:17619273463822:10131267561008 220599800976085:860538499732630:220599800976085 861157953558029:804200569293881:56957384264148 978758286777037:622628038905881:356130247871156 854264041914485:247681609785324:111219212558513 484312033329618:193918805168130:96474422993358 991179108075838:9109836393951371:991179108075838 910209195699654:8312155755610328:910209195699654 689812952966319:5065415408295201:689812952966319 220343126509351:8133217333791002:220343126509351 981766211711571:8885922427483740:981766211711571 6275043810706805:2:1 4482974116698456:3:0 5068407990505344:5:4 6894759366736878:2:0 9029886163592686:6:4 5747675888511667:53:33 3757148451432251:87:65 6693811430893822:92:74 7481803639505909:55:54 8773525365632926:87:4 7940887379019146:202:126 8114731704376933:601:13 8517771279954073:391:359 6612564811351424:802:652 8215957200662838:324:126 2142693982386104:6917:2100 8578957691563343:8245:6993 8648932215661901:7667:5663 8190878961487372:8326:1918 2769273992315665:2207:993 1703491161396752:72960:42512 9040186535569779:91693:36402 2113566272097605:88820:48225 1925801164927804:17195:7254 6512024464654045:54627:54031 6391813790920236:446392:311356 4171010009098620:779231:328012 8032037564012880:837543:540447 5307243409442843:820040:228603 5827257981018122:823896:803858 1854397960188488:4463223:1021784 6612986817594389:5565786:1706411 2661698066351003:3286262:1805693 6641081166389739:3924811:3807070 6253398157666035:8879806:3362501 8795079400108666:25553873:6393173 1071981498995456:90875625:85659206 3640837783661029:65014252:12967309 7234673703784759:28902892:27287307 2075388971782306:11876704:8366818 1804097017337295:970031467:483972284 3481300431578618:582997136:78625258 1472656372990265:675087891:70014026 2561335825209239:335871088:37546727 8392017210309771:145243158:2829867 3304565920946521:2659405389:2081602066 9315575675362951:5443057776:14049991 1783760435054139:9255923464:5144689379 6128687061914607:8055774866:6603584261 2601960704413733:5136914092:704705709 2577732003683387:62440324902:8070754121 8202930625769665:25193183189:4986248076 5021586614943866:79917105478:75209339214 2780485717433780:97738610295:17731761620 3226873386369085:32919970559:24952205346 8683610763923860:616060577015:236930897435 5039934147050117:715795757281:16220034596 5104644732717263:270025534071:82036639079 5065900875052480:223249140473:154628579637 2007547309454694:468217915438:297105971988 4720411561652158:7203623445093:2038205116243 1960359501153695:4213093734172:1270914763715 8244819045534718:8309222694479:2070132611550 1648206424501726:4348974845286:4293932983618 4903152609119064:5613475078663:2588865446265 5231060629298118:24406931017612:7977391529150 1372211707805210:15876654143986:6819451422414 8430020573126480:87603873508689:20048716292336 8064571844311693:76238498419255:59529510289918 9778995548580456:63444081490419:8606999055930 8827324435931187:513110480044560:104446275173667 2926202133677184:437640580188749:300358652544690 4388754989312874:603587988860757:163639067287575 1878548997614400:485085005361652:423293981529444 6832701736998104:286401614242747:245464609414923 3856610194581693:8675160923150277:3856610194581693 6312255037008445:3399099059000992:2913155978007453 9382178004965964:2015144504318097:1321599987693576 3061124208305158:1410607898088469:239908412128220 6742834874798034:2613040308501782:1516754257794470 7523610681392486:11086994981864686:7523610681392486 5121150867054487:78054716836313676:5121150867054487 4855756823846828:78065905487531950:4855756823846828 8000842423939238:84253526123340037:8000842423939238 4158041344824299:20130697245029980:4158041344824299 8128593996091906:7:1 5071854925205702:6:2 5715176957215964:8:4 3078722860989138:7:6 3338981024601427:7:2 5725063157508662:95:47 6536051799176871:73:60 2629645216090209:53:9 5149659432622693:50:43 6831648242053820:68:60 7927141721367926:364:330 6643125540189121:411:400 2224652897884843:314:185 3391433810467295:877:272 1778959103787930:105:15 5819269036073589:8711:8489 5633606579895226:5911:5537 8126921929002404:9656:6740 1594395959051206:9454:920 3461345800408821:4105:461 5846152656742766:42764:29430 9496086418845839:11086:4479 8668523095462056:93321:18552 8895350431112237:57094:18957 9947600696963364:36182:4994 1735193759010168:351638:192236 8561313342022514:466131:371378 7001065676925780:738401:33933 4581509025350418:623195:119588 5991282981886066:140132:22990 6770023360470306:9528048:7651026 6537637701860801:9306498:6050231 7866263385854117:4663280:99637 4783609026599204:6072897:5087603 5746489761995900:9907248:8725868 3596840866137552:12986646:2045394 3647972370846629:17248521:9643997 1401783920827176:35065179:21099738 5159020677683554:44927610:24309694 4646888099726308:26569698:4477660 6630456656692527:958136794:572872663 9486773475374864:600750159:305769209 7605186893422594:261307860:101390974 8807930064775035:255726798:240316101 7879415413008602:392758458:95120888 6524138647063651:3555224122:189143281 4228330988258439:9191191011:6284366988 3894471642955252:7024897868:1737995544 7857328961223624:6516442746:4307821950 8781312074625427:2884719329:1429041765 8648813092005331:91049969857:67505258758 6272282645606749:65732093613:60540960676 9720240476561771:64521998832:1352520971 2441883835387942:62140289670:19012515622 1130647249462337:12286637604:6283867049 8006318483431248:805862149094:78032182358 2471671181097631:486530352886:96988436751 9080961458124327:584451302460:341571803307 9553363450185022:607401554673:151798288078 4439465699133989:256376306641:53573338433 4907194354634773:8541714793432:4250063204805 7021378682881592:2102075946160:445022707192 4619035209429904:6373777276531:4420461221460 5686221871445790:3743492836215:3599746071420 3668649486326309:8115948958513:240557078433 6421491469512487:66707009959235:17618513425927 4224791413092894:39137314817837:37098727584335 2288217839075176:86184148408749:47429980447702 4033059280265745:74069486379318:33307015782573 2447905645639624:72375865603464:59502080725312 8429670688720502:913299046121322:209979273628604 3829250733923139:234229547461083:81577974545811 5465580841119461:722193265018677:410227985988722 9503713175223259:179445687642972:172537417788715 8468356238955612:961494901926813:776397023541108 1387202212711887:1486761561768565:1387202212711887 9682102400272913:8705323864528196:976778535744717 3878291575158596:7687987413307973:3878291575158596 1476828811250605:5613250939673965:1476828811250605 7760285620386510:6530852355861888:1229433264524622 3022005251182799:77877442779645973:3022005251182799 1633544315595574:38270352859793632:1633544315595574 3100956956577819:70804309699047438:3100956956577819 2069937986377156:35536860977071477:2069937986377156 6776991602191939:77464055802976766:6776991602191939 2767181482510745:4:1 4630588270597113:5:3 9254163649261237:2:1 4234265802874791:8:7 4687565421893694:5:4 4341477946432283:49:48 1747149511826488:37:21 3432871186367856:58:38 9444615551803350:81:18 6108456227086021:38:3 6025165720739753:444:77 4457551882044691:160:51 7217845822729876:513:472 8361736791241007:406:223 4414423774655413:899:67 6450970848210315:5728:1995 4067267697534809:1892:625 7892182625744022:5419:5293 5965127968852346:9406:9240 4088303063728119:9923:5840 4346741106672351:19823:1047 1101317042395771:73348:51175 5653315049710711:61890:27781 1985646406477091:73498:24601 5922399374268137:45649:5899 6466342982402482:806702:704064 9917462562509618:105868:71054 5637493918014790:953913:827908 9745577999065825:920720:808785 5666299187957829:504837:101808 1833354032310910:3351970:613570 1439800660943531:7100810:432201 6341385124124575:3119472:129103 5513506543707821:8634962:5229407 6850860619239888:8470998:4182954 1609660722116983:94976134:74373747 5784274327333091:14714788:9819927 9808167590554245:48673294:45637333 7442983902965184:42121447:1917981 6570522934410117:15779619:8583879 4013474893296733:117842201:26581889 2265571807943339:447859336:116418891 2656600541711734:558629143:548135224 8296300820242802:977685148:320566 8842483773134249:286767790:115555409 2856460851176831:5771989606:1318990733 5189772810129309:7993434460:3513236469 3519180643514403:2815564500:943835403 6909952004850913:7666604100:3396500413 3195796967062828:5572305688:1642715196 1605797073510756:40851766707:36679558707 2330416488998716:11317823388:8746469188 7121627506439803:85379326906:52469883437 2760832442523158:41476564791:27860339825 6548901629325043:90109150429:38903596610 9418990360730266:386509760884:133997748070 5372046003213540:138355141110:130939335570 7348518741655815:527358574326:304366997331 4492688094477467:910407292161:738514955093 8602540345314907:970175931298:960538426839 9194713692813020:4800644101233:1480238951825 8792525275194659:7975740470926:3259276234207 7195237755201483:6667340980067:1176837709190 9116994955388433:4413316361010:3496669902783 5134739743272195:8805511475630:1126552979905 3973876342924898:66625467081822:42973785097400 9519995099919479:74101756777126:34970232447351 1469380091550934:31532572972469:18881734817360 8161369856934464:26120379522258:11811445989968 4392233158626469:62541384056257:14336274688479 6474061904383193:991394915048253:525692414093675 9052289213918674:658724675504450:488868432360824 6082664564023299:404366205108407:17171487397194 3277832782666965:324572531248099:32107470185975 6617040310283029:881154839315800:448956435072429 9819646832496837:8493188613051917:1326458219444920 2353472539528625:5936195439193083:2353472539528625 3213500301379406:6828034294590177:3213500301379406 7518175009711395:3087628841293613:1342917327124169 5833106048506985:8650477661182620:5833106048506985 9772866860883736:20983811089658678:9772866860883736 2577291723368463:19332180430574055:2577291723368463 5986158739379934:17439086171449799:5986158739379934 3815785558188104:33134717851354474:3815785558188104 6456888679437482:47363009237491168:6456888679437482 6153185046636557:4:1 1632259925306192:5:2 8834858896766279:8:7 6840804592237456:5:1 2471681287988829:9:0 1560859319469280:55:50 2119238072834168:23:14 1384379861744312:71:51 4139471685722848:50:48 5766716924572268:15:8 8886767147613517:645:322 8476250697524175:147:111 1031690818346722:609:226 5753474616099939:800:739 7407287451397947:224:155 7595381960116861:5290:3461 4241348517942591:4970:3121 3121472198622003:9437:3383 1732354236920446:7617:2959 6643573168321515:9965:5585 1273497941590542:61450:18592 1636233247542384:89473:78381 9686391202917753:66993:66489 6138140410806830:23818:14728 2737274669845502:63163:19990 9464424785277782:554880:260822 8600100141885370:701213:681989 2691975492352822:346904:336910 3888192054508853:471166:236275 8949241291033082:262346:28522 6642474335125352:3486701:1443350 5187925427530093:6041620:5716153 2489718598970313:2855274:1249029 5410315268895270:4201217:2367371 8101589821866657:4967709:4582068 2954927329563744:95562038:37824464 2138183781096503:72180726:47679137 7712648939327943:45290124:17507595 1257419627173253:34321540:2789473 2683899208017049:92639572:101385 8678722802234477:462528282:303458921 4397869114005554:439260117:336682490 6716592442697842:101575824:71556994 7934379364764714:176045405:110100149 8644394626332815:156244165:110907300 6650859046463214:3323731868:1780225986 4128150092679764:3633868583:2705020104 2979578232574277:1346257575:579857027 1848891386299913:7775869697:7296704829 3817413113492563:9607864248:6882612955 6429840847355601:55224753694:22774763181 5596875640464468:40756908181:14738325005 7931229286471474:80038755262:28950049370 1862591046845738:70155505657:32527158045 9461491206587868:40513154645:8557639923 3769068195988922:318828284719:199042325623 8184929144812854:402717243702:103883813406 5135807551306119:580399618783:431724314135 1556524167279734:919648434976:479015300342 8891198427949058:548070169023:404146057952 8113696059890215:4123455844110:2858414525845 3177581655774818:2550946542836:1653209943998 3677366411623900:3568036786425:2288521606150 3062147632284721:3961187413737:149761466020 7425819089180729:5576405719139:3623077006720 9144526169360285:17931523136974:17380892640519 9163564307914484:65535352110053:54150364617117 7637351280857661:87995205565508:69763602223973 7902086184656619:96384217563558:94964562008421 3227287562696844:22100860652707:561907401622 9185356600438030:747064976129198:220576886887654 4991146649749206:387947834990502:335772629863182 4140837783808601:607775698699936:494183591608985 4699185536542288:670560257978854:5263730690310 1949367287450206:580256636035485:208597379343751 6270361972742881:4542077137661300:1728284835081581 5342598855314473:1035616099874701:164518355940968 6935346741143284:2167507462518750:432824353587034 1865449985134844:4271272535795033:1865449985134844 5728315386364154:4689779782150895:1038535604213259 3363258484430419:74654755838559481:3363258484430419 8767109808750276:84658961860103622:8767109808750276 3921551275178452:68439588387335653:3921551275178452 6325902446985328:37851998978735272:6325902446985328 2838335307734077:82598316255212557:2838335307734077 3291890737308541:5:1 4512627425859055:6:1 4482211812996353:4:1 1098322903122247:8:7 7456380860729773:1:0 6822797995365346:92:26 7349154056149652:36:8 7528990779182532:98:72 9370182153731180:67:26 5605616962373342:44:2 9371211820359939:471:330 9149478278995221:273:258 6241747808267188:842:618 3659404483879205:899:349 3222069604787623:795:178 8008887603899364:9640:1604 9637239666845713:3677:3011 8095745656389665:6183:2639 7663512089409265:1483:1067 3303368025517226:3323:3037 4566506312299320:27069:375 5103441454776444:89696:83868 2337445916287636:36270:7096 3033198065366071:25747:8748 1366992053928657:60267:21717 9862580653433422:469847:47458 7883184559595062:292431:20683 6656437540252000:755003:31407 4746602969505540:497337:320106 8702776252967592:810010:101882 3528966841937566:7467534:1173904 4547761478266669:1724831:227489 3644661410468666:2350886:1796912 6655192711059935:8827036:8253459 1298369820636376:9606067:998097 5167876111896926:22423812:17572370 4272485149029765:25828336:8018709 6006478834417548:47206802:13259606 6691406016555313:85586044:72564725 3842770134501447:78772010:38354987 2287754807108412:356309822:252401054 3927402826658163:886197415:91324158 6585649519398435:508610884:158435931 5060267692028403:971833176:372918723 2901323593195720:583900280:176712680 5043642679374465:5091290826:1244214999 8573849261705168:9244415479:5192720870 5927311418438804:3470296607:3170123520 4976517761988063:2822930077:2558545533 6969425502829048:2698619396:735532804 1383482954058899:27064226814:13807780847 2522545622305359:84745387258:14425183731 7990979160864489:97046756316:52199048733 4053988398118870:22621988344:14976932350 1521833456819279:98546361358:80544729043 8682161336226541:116585238429:58630418911 5330323303664304:203866780029:22473026070 6815733539189666:431981158015:366809187011 2067204658942179:840072280239:626849554239 3484458291996831:167148071759:89588108717 3858947670985615:5386898252372:1928522287263 4908291138828313:1412688627889:610845541927 8026298846528172:2927291772598:2592097837054 9942449831131896:6804584071251:952503034185 6568219159107841:4896448771558:2081356448563 9015320356527465:79225083123000:62885963628465 5500770170581472:56992597937729:29480768559488 2763408836271565:68397092976984:27525117192205 8595517465818008:99250385267088:59984332848440 5127698907591119:85435737420386:1554662367959 1473067192913225:610152329301452:252762534310321 8786213220538843:717642813807187:174499454852599 5893666107824408:865345222841275:701594770776758 2299092335303355:692705316485397:220976385847164 7146104577250207:970130632223860:355190151683187 3198809784072439:3251363634561085:3198809784072439 8712961810481405:8576508321177404:136453489304001 9867304561672105:3567005819524577:2733292922622951 2084956855276007:6845120274193835:2084956855276007 4197219808887971:3861725599525893:335494209362078 8810062721023500:78180388924302455:8810062721023500 3253004249200856:82068617629536646:3253004249200856 8754716468955489:24844935174650391:8754716468955489 2605159204851309:12409085564536866:2605159204851309 7067626305761773:21193077986524579:7067626305761773 11128489228631224:5:4 37645672781617366:8:6 19000843227605432:4:0 29201191444809671:6:5 98493572288290849:8:1 16695951783545222:43:2 10029838794010511:40:31 86580624914063966:91:49 87323261392886514:99:6 87331693086487812:86:54 90175480112734665:548:81 41645735262640287:141:75 34035859480208300:578:264 63399600047742776:504:440 68936135119611946:907:445 28053906001251184:5764:1088 50637520517579305:5190:2185 78446502668148555:7940:6295 40773153803515532:4181:263 26101603409725185:6904:4425 37336200571655472:96232:75776 71807519470169348:84801:29519 78721377622517714:12475:6314 91952733498121007:87186:18299 25070973511507590:27620:6630 57252117068063629:781592:280789 79880887206500360:656391:290378 56501019904644598:822828:324034 44761674100169917:958725:539992 96062294369996041:253491:67630 64658812254721325:5514406:414311 75760896453842498:8556989:4152018 48757871667522093:2802555:1961448 96856181687936896:8582637:1893802 59948928164778589:4687605:2929564 55053899623512325:80079937:71260662 44419922576828688:48524485:25541938 32160972827021599:40722346:3112719 14349863876788308:26360874:11368902 83853092443382193:18367725:2755068 86412355175293422:351124861:195901922 59834847744191182:377252274:94395922 75301886183805892:840377619:60904693 30878150266519298:351479898:127885346 62342392859218022:906044356:432212058 87526049301357947:4922843583:2295515054 75381017328439380:8625141548:5743648548 46820306632456903:9117871308:994391671 24160465182310679:3518596950:1632150929 44021739070504793:3068958680:386600873 47053090749123433:30472145169:15340734787 37094543626617695:53143096729:24392614947 91976491841209971:34961901360:15333672291 34935431907219948:62801789926:52207184668 45896597928153017:94689783633:81042103385 14346807019664204:761909847183:44597208314 94665888862117344:599751417858:525315992766 55756090810730013:776219726968:227822618573 30840364756837308:412486183784:10253858980 84053969783787619:363119167027:234357878740 60495459993237835:3209848423696:2656600263019 26202069162686213:3919733786971:2568530572049 71733642983675828:7219309902166:2579795754452 88839148329232598:7585212811048:1135886238422 82953741474405206:8626268726382:3541401515894 25796973353018535:78154784765430:5894380426635 83901135165355524:66763776728304:45831594605700 47120438085892835:34371865526062:30982315187895 64742001937528034:18403055163114:53873692982 46471625592572860:37052980585915:7187937835450 42881909501058991:575008670575689:331267878458005 51638387046196677:907040496605482:844119236289685 83561582841454377:634025631085996:504225169188901 50764487131392787:139168506199737:107150874688519 58153891316215026:375857004451306:271912630713902 64803703692840378:1179315288082697:1120678136374740 31716201553609164:6292139761868138:255502744268474 87024569712362190:8538121750539439:1643352206967800 80290600510259319:5757842660026919:5438645929909372 41008184233825634:4706793312884800:3353837730747234 71369261050441500:75966382643385839:71369261050441500 25659350166921231:82580106982569857:25659350166921231 25012890737578173:63948749438557582:25012890737578173 61424469153402475:28377750851603130:4668967450196215 61010200995690827:77408982215923841:61010200995690827 13236233845013546:719864951139909922:13236233845013546 68207714849085141:596084007050535996:68207714849085141 26919056310230729:133980650078799853:26919056310230729 15155273165615283:189295755745236141:15155273165615283 93021509729837268:784531670668979332:93021509729837268 51694188585485456:4:0 59510219208154895:8:7 62881723534253157:8:5 15856189187809628:5:3 72966632742348133:8:5 72829882829355542:10:2 54566337144239351:32:23 69194351531169173:38:25 98666506392191120:26:6 47499870078251521:70:21 33598258669062355:873:4 93630826809834849:263:65 96149389558105243:554:501 47439897181226201:301:85 72895501590878725:759:748 57552550497833153:2776:945 38468098627738286:9602:6746 45490187914911605:5155:4705 18725643337522148:3561:956 14194188165701718:5528:2014 41361660192853668:46341:11316 20016052007747749:58793:24383 29916663685339170:34705:25435 21298981389348914:83373:82958 17258453905691969:73912:18873 33295657532048532:152634:46578 62214243405515917:712590:501307 34961788084329814:131029:69692 75756375146089137:538658:104789 28196079761243461:340895:107621 86169035382479292:2335737:1829925 66299010451391414:6721698:2912006 17109025792929940:3288642:698602 37151854864577228:3591108:3471320 48026949830632385:6682073:332964 87086947856645344:62840035:15127814 28364644219294116:24908505:9614226 95552990931136669:82093179:79160746 87084514454610128:23675826:14776724 16464887125143956:76071267:34996526 77121231273558516:120612826:25113214 78677064022333965:121555686:27343707 63054548101226655:674475385:655382500 54841246386239601:175413432:127258065 62657039155397755:280435648:46649979 86943290286080123:3860448755:627909873 84528784729883374:1064588312:79872846 83006098003894271:4788605528:2750072391 10841594155892003:5026855433:4130456181 85318029935051371:5549046208:1735037291 40253792682885669:31958588728:706057261 79710430440532441:40844178501:34470800368 23055369495166770:11158763901:1906504848 17060303570351564:14344082721:11001220283 45322277120150789:76005360953:52367794030 71640284821904386:748441989486:166030293952 46158457053637523:912222009004:23398035123 13979525794047351:148902526336:109914044663 68397050158851040:251059482868:162062673196 15555584685370890:871949543414:4830865130 97561958623439453:3871585239318:1882177865171 21851518646603276:1847868259994:476472174226 45380819694621110:8129784864124:360583080942 62596886462252566:1236504747904:70104360470 85123879101747425:4779116438622:3036213450983 25349088785112535:92569574028329:77595075378718 51587095288387966:98307500234189:73965165672930 99327964466344992:36838822834189:10498105371448 92454617789600299:36642200250851:6346556703226 41923236939948052:20905356753328:7996649525412 30052714734873758:809191654988232:112623500309174 11027812047531554:566248152045211:269097158672545 37122907687266890:574845466877445:332797807110410 26934965120615040:700790935087026:304909587308052 96899663669725060:555686637004566:210188830930576 67091474311820561:2651690630498224:799208549364961 70833429783972722:1152160228965041:551655817105221 82456134188466807:8931862956439421:2069367580512018 98877375048112528:1903393732525575:1804294689308203 95031734548062930:7561245443082787:4296789231069486 94374823503887205:96007667074390893:94374823503887205 29095102398667968:21042755104536154:8052347294131814 62775048688178512:88902443645864781:62775048688178512 67769361438220162:21361006554556721:3686341774549999 53099479957987301:64724995491356211:53099479957987301 33856316974835049:986647584494969981:33856316974835049 42825174794206967:317099752443480586:42825174794206967 98823241997558604:197118734007568675:98823241997558604 68728819753440995:692192194449913034:68728819753440995 23393629325347502:662328396940862504:23393629325347502 88787975622135816:2:0 67599372825068629:1:0 31591295602881448:4:0 58043099215708907:6:5 44081933216328919:8:7 97698600509258276:60:56 39435500334833057:47:14 25483093713405828:74:68 70051249599582706:87:67 52202315677829231:53:15 71305186607354437:360:277 14477455373373152:273:251 29973013379847322:138:58 76676443344655018:466:330 33921239752332483:926:309 49402499484463577:1480:217 43681054817896243:6251:244 89320133863188303:8137:243 29294484547872209:8515:809 39652028933906848:8482:3814 47201724824089990:15517:6018 68989711063449495:25237:12799 46680440382106263:16061:11230 24579402379746422:32258:4338 71060579293568598:68718:56400 40437324387481923:414391:322059 59390179922658026:547702:340876 68023617056209639:832816:597335 30021160897997535:254234:5305 39011501915514082:515245:184587 44853545503637473:6485272:4897505 76488059535130629:5572419:4934685 83394984189503435:3382385:521175 29733359880311205:8674317:4881633 39996256388523214:2103248:1880574 99094672109595879:74990079:37005453 79093579166040954:68271880:18434 70126690059966822:20590337:16618068 67704415981015528:65391920:55578248 49868402496278615:44125258:8162711 94150684764207577:407199723:403562854 72898642827543800:805307539:270529557 65366875453714821:911077455:815792466 92577573010942637:364179171:22750064 10198812140399377:399963966:183148495 49523667153539492:4992508893:901081157 87829210275394973:6273088881:233869142 75927492998585380:2181520839:514441264 54696306137320564:9753889290:6399144964 45107349074569051:4056534869:3761656345 97460132864933725:94414482529:27958513243 61033250621213071:33345445459:14743350683 35564655094725304:62097238649:14089476779 92660482097943362:44898024520:28889616402 97138970228978032:44865932986:7916587348 69489427614918153:726378026633:473697072208 77875823515235373:208963596766:106126869557 45355040097296754:431909004048:275582216274 19512067621048341:695381306977:363528580698 39145087050747159:640531251263:300692311440 61941248809974080:8152745237662:4843239455866 19018872191337618:5737835127687:3686578182900 62270856360973783:7608661467900:1570907680183 11807764381199897:3700069058141:844016671966 98406957426387938:1620187005711:39073513220 70681744632989085:14705260277260:8263740477525 47181304119754590:21933714586338:1884044541552 35834092598077211:75907611294309:5700067163363 48747498480363600:46734842717095:3057526433515 40181401599879320:86152846596454:34175085931756 64536781339266292:991033807793970:119583832658242 90376699284961912:554202472221641:41696312834429 13564416544327259:507235350461766:376297432321343 98592038652656211:692991301651736:187273818109699 48955667470642137:477983070486952:201394280973033 94503536244336680:5185862044653905:1158019440566390 40960518333689876:8680815561692483:6237256086919944 31067886567256888:9328144020552481:3083454505599445 11488914566971415:8751882708649732:2737031858321683 49055358408993631:4777161180527444:1283746603719191 15848709216295636:72254756811612190:15848709216295636 24465247009667591:32785835687459978:24465247009667591 80571661824294531:16792547451747556:13401472017304307 30552285819700305:83249797636398107:30552285819700305 23636498961077441:80674116989151140:23636498961077441 94146022464815047:790580687766315862:94146022464815047 82003702454130735:367140471374260619:82003702454130735 88600401425924582:481244419044774732:88600401425924582 96719129268270148:319666917822007046:96719129268270148 97499883579359948:750895790622066881:97499883579359948 59466085919467548:1:0 35672724931862726:7:1 56970168870578335:9:7 55020535285055534:5:4 91460835230073232:4:0 83409588601956985:66:49 55185261507151464:57:36 97030434220770322:24:10 56515305825211089:27:3 71588258191421730:32:2 66204483627342099:821:124 76384289542413320:120:80 23652682206982328:193:45 40092267939755062:508:206 78421959250218395:458:265 99869122796810309:8398:6975 60472118072204901:2158:465 15223148022336384:5500:1384 78973490871482357:8523:1532 75507219963998431:1497:1078 99322727716498753:22678:17305 93716344158451140:14189:10059 81389789501598273:26658:4341 85144028061950998:59482:7810 89891628106805104:28306:3392 93298770010820155:338332:297627 44790234915752738:203319:10484 33628304471461388:502502:13702 64945788368859410:897970:577500 66591786780503128:348650:237978 97964093570332964:6428152:3809084 13452641042773534:5901512:5168846 46916107400913323:4603424:2470859 81909362851589104:4806930:3063874 86615421971643552:4974518:4923998 94745110163956056:95291739:27386964 32319602910184353:30339223:23029128 80604304068341913:63427882:30103933 29286710064745174:69488830:28545334 78389000769552040:33727809:10037824 69911652757437841:345767900:148905041 82375397055953169:323280370:109640209 29090056356470620:206585165:201402400 54551756806223715:233901300:40923015 86821108775342871:173563022:66125659 49441400808327296:5946556608:4667998976 69380288164764592:2536058941:2429119331 41726573308413257:2824561709:1076166417 22265207670340358:9515182794:3448595354 95703137333433384:5092876186:3075757550 77977881812858646:11375217171:5966103189 19679628848720990:23495393061:5097792695 18972099668456040:54627492564:26128471404 60063552042953663:39411746597:10817379066 60269445751581829:73924471128:7232461477 78666962657754949:748100095891:497074336844 63783033586818328:969262937441:685988513323 19727363468198481:826492215430:647270315241 75886148412962063:454111667149:1827359822 81141917529931134:731703066557:437667159176 86641882148163595:1270776803562:319681306435 80006208741521104:7780214036982:2267799235198 39804830013462129:6968215653393:2382201281313 76384298213647619:2633837752143:369563748476 49855324571489656:2824173521829:189390642319 26552086987039210:51099667179100:31359721086310 23591077477774402:46950126674035:22113887408832 43598503237314038:30359191743080:2703894251158 70919269208500216:23076396032814:5504199662794 49680337794615691:37989518873012:28036627589007 13012396933668254:353487857879920:286834049991134 41685933394592326:344775846974260:312831757681126 37552334686225217:361945278036002:271971048517011 96377527826116809:335308148267753:144089273271698 97360451270985656:337623724282311:124818677680088 39953843208115914:6425874304871553:1398597378886596 66542015155710524:1413057979202641:128290133186397 26649240790331172:1375509571940074:514558923469766 15412461327840449:9837573503821138:5574887824019311 81433764828416935:8682870728741999:3287928269738944 39397905457859075:47300337599576091:39397905457859075 27008564604431865:59987376199720800:27008564604431865 81311158064796893:75419979691135467:5891178373661426 26132543721050829:95748136426046069:26132543721050829 75459133491879546:95481790240945303:75459133491879546 49397598549657756:161410544000545184:49397598549657756 45255688797036198:502451918068932883:45255688797036198 71244948190657344:119705682254245618:71244948190657344 83272214654204104:933951184341498616:83272214654204104 66929056222489733:896115388033512533:66929056222489733 68884384858584742:2:0 20621893745933901:9:0 47129212306906883:2:1 79866478228175043:9:6 62894888781392760:5:0 42339316543429724:58:42 27479549899764251:76:3 46601091060515719:89:64 36713234338969805:80:45 25665552343932546:60:6 54400088818361650:675:400 68222494714778372:727:117 68975068886729856:939:933 16568090061082300:265:235 75888996932959062:409:38 48166247343017771:7881:3035 23790404847547578:3684:546 72756065127397236:5797:1509 21680198716722440:4189:1559 57897751315465716:9569:5135 61119766246393147:44147:33659 24465003897981038:59627:32640 76448053762861560:86110:56640 80147140875892686:82086:47322 51903918928021994:42178:12512 89450822430681917:848896:324413 79180692047619306:114617:19971 74589044484727994:937774:34096 40223145216085017:277505:125442 78791912459349288:950716:804132 15199565353614119:3299156:1988387 60220828175405845:8352516:5709169 31717525732793306:1794273:186332 82046809933680318:1665123:1186632 19068815606401607:7697425:2567057 73228338382852006:92409716:30111162 14799570054964683:74518742:48580555 18132203627499400:86390565:68760745 88401090582302967:45156855:33808212 58601382494726618:60638137:49748819 84783004227212083:171166141:43969552 31218754275746428:564703765:553781423 27869473274226472:638613498:246475162 16621227919456562:615667857:302945429 94169360926470371:880499334:299637737 65168346967316580:1061964102:187174248 22209382637261988:3123188283:358313613 45180714081036841:9996261745:100193896 85364321691078199:8159158252:1509461163 66893660069744680:4630860035:2369902995 55750024700073127:59699983313:31082994459 93147812278062892:89908946052:76262431696 12310048896273020:17909350924:2810608848 21151141741775754:48778972924:42513227190 43134010291912404:34697013818:1199899888 54034289621866063:930929077377:373183672852 94822115707372996:396088446248:126029386788 80243805019738502:495705142199:48010848780 41268069787084778:163617876809:41662565180 34794139282906411:198738289873:33183390936 50982564649948851:7413977397913:4056061899063 41969233003063500:1986438601665:1744665687045 13100468804230438:3645711728825:1426562562213 49640909301342472:9227087601906:8405090690098 93976993482872813:3704379609065:587180502828 85618355028510180:19107909049576:14922486409700 87761018030082831:30002763428384:2935002059631 18000823045547807:49573089794956:5791449978779 64438302958584011:38057351623980:7206659185871 55432065201431137:85062257266509:56535720933778 15955972439558727:185705457329921:171008566515442 98616492493254907:252236854219084:244119347812147 30877718874034672:589725941851156:211969897774560 48275642925159000:844530261707434:137418007835262 78616433686220553:455145612848710:331388276242433 56950947620706455:6807618518298865:2489999474315535 55915508227832587:6639879354950224:2796473388230795 28844374934616885:6241088671693527:3880020247842777 34431903018283097:2858275880355568:132592454016281 90599754950047894:9346098805445083:6484865701042147 93124063009729882:54388128863659379:38735934146070503 57662826241931856:46705996548707883:10956829693223973 76486143691207651:52652320153154224:23833823538053427 67157576673096661:97756233194971505:67157576673096661 13833403788432292:84281005538656997:13833403788432292 63697623635494722:786247231341781020:63697623635494722 57266390654230284:752483479032491699:57266390654230284 43998086056105281:353644398568504037:43998086056105281 79384782105305704:963170262478481773:79384782105305704 91302968258828459:484350461955506566:91302968258828459 768749119529505479:8:7 990344110702356095:9:5 503379644215286210:8:2 156955564166012752:2:0 909238539526059846:8:6 661307673106343605:93:67 802785837354615078:71:63 676399017247726722:91:40 450027456897063578:21:8 493104797809734670:77:21 494711312700234135:143:77 213478004326474157:170:97 558012571095573567:821:21 126952056219931247:553:18 918602898247563441:725:591 308063939004189562:2449:399 783663284613769502:3790:1122 999948726076469236:6661:4756 676718242818342821:8898:1445 275418811888875596:6791:3246 256381049588427547:43966:4645 574975716099429119:89691:53570 647117087621864699:46594:12875 432049604428009201:66068:45813 171931347343440216:69689:14088 240222815210004756:874424:748340 386761307108092346:716874:583250 735195884560770434:635087:408950 595309602161750424:748119:376176 546181675863860513:751239:542837 653713099058273634:2818291:2164122 881641210675441230:9473646:5824560 499628227588156597:1613078:649393 827394027501737061:5966665:3385091 441513209742786489:5255026:653485 205016098551052110:23614320:443070 758536437322564782:45008826:1531680 160139979041333361:86869052:17693005 966309682589972563:31706155:1270553 838998046555856392:75005537:24258959 580246152994890202:664656990:539628232 619681826118124385:287303333:287031214 596243777031857765:708718557:316945877 385193374695330764:218120994:103878428 794557101166507858:282852199:200118412 339776003931996372:4157232227:1302926818 974022962294047011:8029595917:11515892 254823210399699082:7441912692:4391756506 303789574919885264:3826509450:1180504814 809861571220449372:7853160779:7381842027 671164828129330544:28865254661:725635233 790896696511674883:35853394805:27630140958 880854893185203018:31162195906:19517792150 299020941086975991:56730564403:36097460903 166022774381676360:89076750863:11818452289 979711759846327167:695456338529:161157691939 708349981311090205:264250306117:82233247771 522653599125086739:996655107094:684379243481 924369628655339331:147803274668:115308109927 298329234564686625:712619943002:159486158351 796828839273747136:2868069983282:1560028458922 145195365405723515:5238664256107:546883461903 759710950749941666:5256064173014:4691246671120 852264769082193699:2434977240875:819980775824 231692931871713026:6405013748201:4369558038253 579042754477030690:30836687507069:22273156796077 621480562824507292:50425110285481:41503666239448 899001662186725803:10776488538997:5435286518069 807748248785586263:60894207013957:47486952460615 724702291967904131:74629034041137:54371428463861 147410712618966932:342992057553867:267119928357989 279844144233395900:693000154902677:565081807617069 461790467082195250:413968314953530:215795909009300 647115009032039777:906097106782707:161674789186979 373052633543023219:637410624831064:167418016850779 960376160608990981:7593410056325999:3606493511915107 217505726610542711:6483907657055351:3536773927716128 640349752224077416:8972511823866508:3301412729555348 564276577454789903:8264759361426410:2272940877794023 846543420529850367:5197997188517528:4467875990010831 332200415473352571:30161531748821601:423566236314960 929454447365155734:70695354951189371:10414832999693911 598046294875017930:40128125983775784:36252531102156954 498647971240549358:49843319162885245:214779611696908 110492368759039062:79086730323291983:31405638435747079 564606653432454517:353505876869733378:211100776562721139 797482606606551715:775727514263329487:21755092343222228 647624372890770357:456793787321180569:190830585569589788 859589935775589645:351807242714127863:155975450347333919 292576561055471883:963955049654571243:292576561055471883 791746272265835804:8947565853708892122:791746272265835804 399848844006008632:5675975883662473703:399848844006008632 934130310612378124:8026121702889407067:934130310612378124 292100655031185791:3980051271523670668:292100655031185791 752842153814428835:9644372722156867967:752842153814428835 471803709596065044:2:0 352562707701466628:4:0 793423186762868170:1:0 170953311332570743:6:1 733390968263051373:3:0 155908962950632750:46:26 760531627637032007:62:7 829445586616487775:43:23 502965807338241800:63:35 364705838509091795:79:63 225693238990844025:838:579 703821759534302979:331:32 183300215663209531:912:571 370649484067044784:856:136 995312371900510407:138:15 371498885022264028:9875:1403 607533355292069446:1816:1390 802274341025144592:8987:5819 186463916298840232:2618:1746 224923283613802148:8047:1181 845977789194294606:95904:70638 223513142718800866:41405:20406 363097952460036262:74051:9704 415583649657800216:38141:22463 875812694594969794:59152:25954 598414972580697295:277373:115740 386793872873107301:869144:768877 120817256594841900:583695:213705 926461209731648502:383233:338356 594023186157136659:976039:667527 654365347454356024:4632417:1172893 601810314351666297:7464411:248433 706071428723219399:2541817:1323224 638482022150502311:6235072:3403111 258789008966231957:7719290:5153637 366770051212681095:24987701:18148447 442108276737178536:95168818:24364646 796612474535778489:21838858:18686915 611112986641707977:45892616:7026985 693791392991622738:57985070:57446058 543815800513951499:868550967:544543910 355669299792680606:562477614:170695418 410060951732535573:321203428:132672373 441056525789861709:739712825:672477059 936511974011687914:247066935:114488359 674658309622480752:1626078449:219457344 376583403539271067:6188575741:4710595523 860895577448152541:8775054760:7725892341 281782146917266453:4099365610:2809473773 564948207712789430:6913791621:4296693326 608845102316842289:96518547443:24377909380 973934668747304665:93156734470:13837286545 212098441054365187:48126426135:35296971472 831089049866439710:50763546797:38848812614 276162996350146308:59262802762:54100506406 748762537974557285:830798433243:465223704077 843354275833464502:692827782804:650454119050 352075181549025254:304576356186:142615818554 759044468037891309:784109001888:294504243117 110526351695137864:639836714723:317757172121 575788540385593063:9093597085923:160099120549 315106165955128463:8919027993153:5825985026126 672149646337432924:2925112185304:2742837353284 704238063557477730:2902383060065:935480246065 691589005266137404:1109116926615:254792280769 434613417877462792:61375460587856:13781454854456 532556132679354677:23609621148018:17518064660669 696742807431014855:52948471858133:46814721700841 773164462134300678:14423983600289:10093191609700 273043918037437390:16592224383919:2273575666326 825064459126741227:357508834950805:291576895234092 529973913372027012:502560354285474:275299955137416 816609347967357404:201536543682910:184809507888994 955192285828967382:724743662464755:704882362885047 348225879290108733:183666773473487:177343557850868 120380683854959784:4224251166226760:2101651200610504 674108547485684101:4343507594541477:864870331755166 639258057296643196:9326140523741885:5080501682195016 443478784298004804:3739967983701155:2162562221268514 441952659821588832:4910596718502098:4909551874902110 781240184137211634:78377197461697781:75845406981931605 492692328104137232:59009199430524856:20618732659938384 641483939784005868:18015234820255140:10950721075075968 405159682121039698:20445955632533974:16686525102894192 783176456237745642:77710464951838954:6071806719356102 213408689307245364:112088517995274789:101320171311970575 488210259352455223:111204622898830867:43391767757131755 496195778132569021:448246413606150192:47949364526418829 312591790153368885:929986390592220259:312591790153368885 949109019919889383:872699454314765829:76409565605123554 760292927393486113:4476093490566987687:760292927393486113 726368974992026915:3643166775033025490:726368974992026915 576534276520855045:2590157505917301422:576534276520855045 196850518580921946:3314272849826817216:196850518580921946 363198200748036503:4648098834063943449:363198200748036503 481102773938859107:9:2 812867691023746352:8:0 187264884720368485:6:1 469805224296694031:1:0 929442223767177118:5:3 839194585270581640:67:51 891684361036282102:21:16 116553833843648234:26:20 133184658893569357:71:47 692604117866770726:24:22 134909570966606623:954:487 548781296877436221:772:653 399568345120626826:212:22 484802767684181027:130:107 563946114887841756:188:12 593316667613550326:2855:2216 803343459872794337:4156:953 624936160301759312:4767:503 126655369325719673:3016:2441 954037621335840716:5194:346 935490617922372606:57807:41445 777395918553175518:29621:7853 983278675915104143:51797:33463 330690965792625905:25064:3249 534247864489635044:53798:28750 270244538849825962:401760:295882 431132816680057108:893057:22012 120413687565455102:869901:349469 419371274278920208:714994:286636 442259138218535211:841553:427796 674188431848400728:1831537:1041896 287201913581565280:7486762:1613306 634219773116804718:6757675:3223343 367609904355278063:4351246:3784419 745357447571000145:5078622:1148835 687234318683459147:81247147:33473297 682733161957602230:82017565:1050895 642312795852137111:82630602:27419747 600914509741860456:83290466:66140328 979519605277155375:11594761:9858667 221743487348386924:741943889:63941005 846141275895003407:213802752:210269711 109841256416440790:898652544:197576918 133698375371363741:446208110:153375551 433034806325113530:692043874:652100698 600970458073312253:8518176277:3739495673 824855844385730574:6662912994:1858566060 875509318616430966:5303646110:3279016936 884223371314837033:9277761330:325959973 404493600219195051:5704074862:3347152023 423215032814479232:53897060616:6092432288 444087388386616324:23898782112:4092393316 523856101883772158:94461208437:27802073459 159491357388312451:68657627836:31213423631 262171933726431416:37189718101:3606265735 833600616759751093:443991412915:79140644868 493582342830935053:774435095448:6922629493 992597129640140575:744427878415:73825810440 226115943910548153:396538629251:100584525929 599049423324576813:226884487914:184004068935 802228634063470236:4015843428765:3671516230011 322496653025667943:3032212201934:2692076775439 534660107610630965:2634811193487:1585417055438 668103016910734283:3682697324818:2799031551995 779031165535404431:9725065267804:4812257965011 788399087656244122:30900724063535:28914623275667 833421035772915544:69005084446668:46630910506108 448345425245812524:84679563150928:51817924799692 570276885858767632:27562550833557:7709112473302 974448660309233668:61828257951433:35314994649588 582206414851971382:954174836014773:159764882959852 105930433565912737:888938476468648:146754866143625 431408292547653413:886773926543644:436164247442429 880204406758853355:336076366541048:20402787848643 104383331734545963:367440797937193:30145120383151 554986143299839115:4807418050264031:2133067519475550 304885841433973556:6549837852962288:3593300197708308 293173259494575988:2934200126795952:2687446941776740 516144332945565448:6729831760991112:4677119110240936 689908630687153874:1743118287717257:1376907038837359 126887846008204726:42767838287513889:41352169433176948 943094711334285025:65556561238286031:25302853998280591 763264979808086212:72650601631896085:36758963489125362 258429105240231652:40772241444436985:13795656573609742 335127664989003068:90513240303041414:63587944079878826 963351488371922196:910296994439705251:53054493932216945 332456407125873743:750357788924695666:332456407125873743 308318256094994505:535337243091861424:308318256094994505 998033788568981141:982329502057717199:15704286511263942 796896168228266082:360357238379442138:76181691469381806 524495611070526692:8877875159003607223:524495611070526692 214436298741697558:2858826478407279575:214436298741697558 101088518460831950:9802561378840569683:101088518460831950 647201320458866930:2348252793005931376:647201320458866930 560617742995258534:6288550357608630092:560617742995258534 156403527458264699:8:3 223201026877186823:8:7 692673078469220623:5:3 308763406892150754:7:5 829220540787424076:7:4 112666312063220730:74:68 807061061705087787:26:13 707859632400891604:71:38 791132967059477435:24:11 950572624636858232:83:52 640182840442041846:738:246 363079419526732559:749:462 465942573567367053:212:169 513700507731339538:801:376 976214634889415155:587:231 929557406684830496:6844:72 630846715026177895:5914:5859 616666356609983962:9480:3562 691078132805243946:4559:3591 908958769231820784:5749:2904 373836175947199888:74337:59158 768655749688274683:70940:39803 125993830448731802:61705:28172 391345209357274752:69551:35996 504807442886912708:59313:26990 469619229071245767:580694:537943 731927099807524443:743492:250699 397904426474913859:367687:14463 807080543873286866:515498:364320 177709008791076948:796258:248968 314866991255728614:9830271:2031072 313614664443827574:5212236:3831618 620077405297271398:2900868:627994 633640807618571510:2821236:718970 628986815079594422:5519049:2012711 900172078594059805:61095856:34080845 196874891278927341:69533175:44474991 876821535516803956:47438563:41883643 881808008650349333:63137740:26469113 989525778545774204:70432736:26729052 624730530702848082:894243194:339067774 500120526675930313:532242289:289204976 304276873690755195:156092200:117073395 485678065407052041:721500065:115775326 618945531806621245:779498595:507243325 652101736720572511:1276486829:1271495992 894986465190581152:9939868357:2655779448 562459959602649318:9039879506:3681375712 230668271624053704:1048359959:187151003 237110675915047942:6880225086:3818836504 540477544348762649:35332545987:4953872024 891811314152541774:40535689351:2910910379 689325274761650885:66103272781:15685018980 494415841508342584:13284196227:3431569588 943985572610736109:82144568566:69635857081 667025447238904527:730175419250:709473579277 650216928545997790:446319282781:251980760188 663717961962354749:950776314509:32329912029 640954498153070905:500302690291:211632491202 608139346913625045:662331733075:258570554620 325916189322402565:1975825232927:1841325860988 316594301241447661:5199516988712:911315762693 265773049579178218:4403358089518:3968728229810 679814433109123684:8365930744591:7266734403615 969833294469495689:7576156646782:1905958285087 738322411120042774:59190071540547:44648794800043 570049301548254625:40748601467597:17115618040192 570774793605580164:70763108069729:70327023215779 936561036798355292:64313813365553:23286569172506 146369144617962614:97573623240212:8709757644614 706051160029670422:693267531961744:304812492615030 888691971745866949:317641681046275:248189859435774 699592551161635810:883478275533685:761235214490975 635670939178103606:274797389965520:64576187855846 314615060749252586:852363535289697:92916227354393 922574312506198569:9005220710558440:4041800029237689 640144751248768541:1253510383781830:854455520035241 128660643925828266:4696713019914154:1849392388146108 950487372364011632:4267535188352709:3094560549710234 851196054155858233:2995988866493168:335216071798521 672330230538408350:35031613567902877:6729572748253687 729423504742296769:94965946535588615:64661878993176464 941798925042729494:70505348534007606:25229394100630616 416363236714938597:44521008293031826:15674162077652163 183217170000736474:13430425280262687:8621641357321543 545094981001779493:687278151595105418:545094981001779493 749533855105848139:541724598279190107:207809256826658032 657559182740400177:822869488080671550:657559182740400177 696880696486207479:748287182296732136:696880696486207479 306005267500795204:106473757509490252:93057752481814700 896174014164345152:5661331931160504479:896174014164345152 242196378412025115:6628174543319757162:242196378412025115 302050844701696859:6417722592307545204:302050844701696859 752527364334659325:7240705691914391353:752527364334659325 458428841298413412:4300053874599747812:458428841298413412 260587622018793583:1:0 307405671370944125:9:5 540916925148326588:3:2 384103830076030877:1:0 166987333248071691:5:1 904043712832754260:46:44 771090135746472654:95:59 143199295582373534:44:42 572282753851059384:79:65 444092977582730691:11:6 360595027300502916:379:140 552817626179529657:287:254 359383755902642894:755:209 880882018802993883:255:108 542065938001435450:458:222 147995464378735689:3912:705 752287309860376406:6175:1156 595969065865251981:6081:1473 475873087089167838:8856:1422 618288829986879359:9921:8162 864699505715073955:86263:66404 976466339711068642:87646:55010 461229869398056005:98539:76442 664275578453495333:51448:26245 253509270073960022:27456:5270 758828711466326791:848284:268335 945785746920154726:828133:342431 588445643609407513:484326:92737 473911613172092066:739092:587582 380301739666218007:183761:40286 905143840941531560:3673513:3144209 999492574385222931:1956027:48939 579018310843330597:6519150:5300347 662828219537573000:9102214:7046038 199978558992152661:4739289:2113773 872871871931536706:16270146:4916546 765328188201626567:83979231:62188154 626570176508930155:34028898:9887023 713260441208795743:50138283:30339949 561467106853964858:69113404:4601054 715329084006395514:586586491:115639878 311253863190298892:233822562:176204444 713075059273706362:214674883:161133892 292553501720280140:825907027:206761785 640179098570691006:928473056:632979422 721238938699193499:4229256295:1248827109 872299494343651358:7322601599:4910561217 633461408700133957:7683981767:6806286353 565953520432517628:1981429652:21545780 223004316049252443:8378027585:5274398013 538554800284686515:94228374596:63551216195 573035990806549398:97784614024:62472314958 891851641213535247:79476683663:61654997597 504456354834983985:70405485705:64081859115 158192619048850261:81148026464:59523081813 770614509377556535:124056862202:77660968167 553497244727208094:870582708132:782299169530 497204056085462828:801803371660:172695495208 843556781033850298:274808174110:113622312098 534601650779108934:143383542434:127553128086 573617430739894710:4454202981045:716637938565 441542287679184407:4189474547633:996680499638 804278820922476563:7020801145523:3924895943775 408402562467649992:3461588076767:939582602565 719066234980009420:4252591382268:4063335077836 137972100255440223:12597233907484:7194500675455 331524992769130707:13093709068642:5372860183909 371588402389561848:56755162144540:12355829258468 110579597981553327:21262539660602:14391746422927 664592018863404316:37364718936477:23127859224394 255319039297350857:806753239426330:385015638630577 720706582830563928:842867347404769:55000799486433 651669051254687769:206477927204982:24712995764577 206409187552597956:953983675765511:348713587247580 625634468769122836:113404291448827:96397137393104 400908382896312750:2381529204132265:811476602092230 625365652153792780:1150496024063263:646311087440971 689855554849494582:7511928953134516:6270020114253626 886338064165436872:2605749180838176:383342680457032 503120312557536474:9544831341409236:6789082804256202 307382883895325674:67838029345688995:36030766512569694 527285281181119602:50366592469024013:23619356490879472 404302261560393401:86931324377351384:56576964050987865 213147620922741466:40699160120302847:9651820321227231 622131044941888947:10381823536987109:9603456259649516 318574939903239961:638031838198236410:318574939903239961 519304047034198719:726120695834078026:519304047034198719 753875539514774034:202667462866733289:145873150914574167 610241357947094044:485186691472853949:125054666474240095 110429939165482666:667555674917630031:110429939165482666 855661158340092083:7810493751355067426:855661158340092083 448697041977651293:3582747569149288751:448697041977651293 203912632918014862:3421463156339775189:203912632918014862 972438241124909742:8399370510923792784:972438241124909742 901739552891548370:5840250909246411086:901739552891548370 4883819645987684728:9:7 3628245516993564642:8:2 1613180409596858629:9:1 4265905711456839060:8:4 2496680636428948889:5:4 9530251550738315287:97:10 2394877170400708016:73:48 7299892708917393558:55:28 7164261356019213145:90:85 9205323377696364687:83:19 9777219475432131133:687:487 9707932684550673941:782:461 2830596702920337922:334:120 3760666938150531014:322:4 1074118598288657518:169:116 2192703355217433784:7800:6784 6047942265874006541:1498:589 2762327965715021310:2670:2370 6091632365980308908:9770:4078 9437080707450938742:7741:910 6079538922628195213:92106:33145 5211457118565920637:60307:57329 2530418911270794220:19488:1132 8648937967551321084:52689:14568 5153660981469919413:65519:49411 4013996379096055067:807604:67699 3419724788887383939:699923:583587 4730701242075964189:586515:52759 9760051305537743309:569917:27224 6763083458379331145:345482:287979 8728881009227053151:1396893:891818 8292162256271824532:6873319:1790287 5607527510476649225:1879088:542825 2647018518893693164:5760661:3738240 1221284686721584271:2726166:677219 7698302874986646841:25985147:163758 5297091404339469096:11885967:2786481 4111060772138121387:93864906:81755973 5621812792110628608:48265133:26734741 7528649263647787891:87134044:59167863 6042766042354132676:281551183:49163747 7526858026796372245:840643939:89375536 9681144621966797570:547250483:158013732 8292662934430057647:110934606:59359437 2563423563266721271:448757156:232056651 2471542208508813653:4043491341:718891049 8582378154577039259:5064406366:1559084977 2729106631682453232:7055681051:6259121898 8155420885428293428:4467213997:3514869801 7043883542435683531:4236884250:4047734281 8726180818034672892:46149362690:7340517782 7863960124420655310:39486884716:23557457642 9554423333853909055:55900206695:30092502675 4340662037720024366:43089932073:14112769235 7485837216400083890:56308065447:26573500085 9445486378064357697:427911264077:355709884584 6222747197641930858:458464263624:285866788258 9232685272365795206:177374018246:103695689494 2333779420046407835:994689298004:596186800879 1245990756803010845:815595582490:491859542905 1412732088306703797:3574303945076:2751231195101 5891530100106347428:1430756531881:914309658296 4804042370910825260:3115253900321:3100718010518 3079300311944777008:5890661388211:4196548582446 9699732347440313827:1096735570360:67095957227 9657029798968164897:70060173807766:5501479507223 5337308155172174012:79580929548135:53953167403967 3197923592873256770:78153207532091:50647075157232 4964135401437126327:85463318296869:84021481787331 3105978793160595627:97574578412298:82387718737989 1672296138208039410:353173278614762:20663967141340 7595365626448968653:815755308300679:683706169647163 3020755329292408741:726720996211424:502869037730597 1379766117336261038:862425214027141:748200106862579 1902115526057357016:238822888572413:130041466659884 8680794922301821936:3276378320955539:1668750090599125 1889688224596813482:1254285030305101:734968957331376 6613051789610134014:4118389563985088:3036539414067774 1331477015513123038:1241807415330299:259466279042510 8770968650057768766:9852426935332064:2308677612231806 3873184250904566263:88149726331575520:82746018646818903 9466291046053500305:86651485826316007:21279090985055542 6536116671735783652:39142368807507894:38483449689473248 7787775154461105063:78830015947344081:62433591621385125 5709282449494732459:88374387648154821:53321640012823915 7027973433165262609:971734998474664798:225828443842609023 7434107297446724995:824207722062249309:16237798886481214 5068922534542079203:944190866780833392:347968200637912243 8898952740563314013:538419313906293854:284243718062612349 9726762363416884140:686801885794481647:111535962294141082 2702641390124076442:4861640605647376083:2702641390124076442 1977075653410272322:9387765475788983832:1977075653410272322 7854504730372620107:5175942802090512544:2678561928282107563 6488314028570671102:7223260084902514356:6488314028570671102 8673634593830147636:7844831376159173671:828803217670973965 1815687535180067484:33043725620619747175:1815687535180067484 8461189463731912367:17561107611549842851:8461189463731912367 2496707557164743408:80886975536629779754:2496707557164743408 6643729807320002490:10629608853286357605:6643729807320002490 1084813087824455911:26167542957200378702:1084813087824455911 4651704623724417914:5:4 3949078508315543054:1:0 8617610469081886443:3:0 2053335313182213952:6:4 7735993210699978560:1:0 2880939536240594059:59:33 9740880099591350252:61:26 2946735921441916316:98:20 7671817727531513498:44:30 3517747665470272312:95:7 4489733022410086151:410:221 7341182383718420849:411:341 1757295739922992001:388:257 1255248759493351329:116:5 7596763548501810572:165:32 1991571747748871978:1084:774 6869032273244996189:1765:1419 6173121985320229043:2103:1400 9085070134703376710:5309:4705 6974474217929037789:4562:1615 8016729678914606299:20200:14099 1764341451333393848:28952:9232 9193801779135820245:86192:30533 7482997844849555292:88683:69480 3189197882849941014:86057:28874 1694575365644473317:299561:145817 1139862739359569938:347307:105226 2322414504730043012:764258:68764 3167022046961017372:133394:69758 4323436655436416331:182526:78867 8358739810961086138:1043946:1021810 9100388554469684636:8210714:2308610 9547101812823085890:6284238:5713908 8608985471419032316:9271238:427488 6897081916448893636:7264184:5847844 5044979329971386200:88440151:83245329 6298745644629700392:36198573:14798226 6347374377153869939:72671418:6848429 5695747713951432680:54237937:24489878 5126061666181690386:70978641:18085683 4640373632881374489:983449497:963488373 9665236873439380147:947728009:260068197 4929389669648074848:814596237:318349248 5336470348778358630:719756691:246401769 3604953808027072636:843895256:249114788 7226458596894368623:6087866157:61286512 3939292521606624820:1357651943:36814966 3641243606195252725:1120064236:646969965 1435789781091928376:4261995920:3378553656 6684336351567369074:2892211376:2484794498 2520564359225579127:84280902991:3497415499 1124758025971883074:66910009034:38100243700 1851928759385152766:20787142063:7193997899 3065901667048844541:44741217808:7911380205 1131949165120664497:58174808346:33270533377 6507019080433319160:555650503392:514594855416 9471261625319916070:449302122379:293000061189 2508714341110496161:206785864831:15775099528 4198385725751235297:513429857260:469905485197 5778438168683339888:747392812605:533740286588 6158345144738877945:7564916798788:3586016725937 3476265850355042155:6508849006835:246237584850 2603024832755894412:2625961228593:1375494654267 8474497636821112446:5197699873500:1436670760446 2113095911542783719:9554315318840:6209736216279 3464503483528821449:48003216730336:15325667011657 7180740092260366617:59559281817470:34839218913537 8370540566767792472:19267797678537:11953483285025 4504491532380412752:75269716778189:50601506470236 8025397509723095033:52511692086523:35608139784943 3908781934129089232:624162912315741:273777207919090 9319004558938142895:295688663591223:80637197158827 9012098191607371869:704934249935066:218740437488125 2641767757968634989:889233327992446:744773831070369 3286580011967179703:267136872379534:262207954152435 1186842237089460704:4717187449061033:2828187375141421 7641181802420666851:3622334766326394:1677780238301905 9282285880209710174:5683114863111974:1759308747856632 8051257640869297493:8016411449523232:2780545547972565 1470640208886588778:9037596452582137:6549583568282584 6741589800884451035:68968136445090394:51680565710682817 6614094459498166325:74965719224995316:17111167698578517 8046564216432409467:24307430225732866:804811714830821 6641640440886891052:97152831116341991:35247924975635664 4507861823629363431:59390853965801638:53547776194240581 2892119072743951633:822339358769671484:425100996434937181 7593165130607314774:377651309945134325:40138931704628274 8720693042878036676:572289719210789408:136347254716195556 1060828361120631248:700121608552052386:360706752568578862 5096942811454358950:584897977054613816:417758995017448422 1881497492230855529:9516556143330981149:1881497492230855529 6460287004043287245:3495039334133524486:2965247669909762759 2226507316919551737:2599187118681517262:2226507316919551737 6025487860065382117:5247804887035488404:777682973029893713 4433074204171768638:6638112444803228564:4433074204171768638 5122755715413429090:24258595959821072003:5122755715413429090 7694339974713496430:84118155472986425056:7694339974713496430 5719191440809209258:31418248787487545711:5719191440809209258 3185520643941507238:68090764843540902340:3185520643941507238 4243575712589492872:44442990543662814223:4243575712589492872 5109477169345223497:1:0 5733379946825551492:7:3 7287106016702674225:4:1 1777799851492364186:4:2 4603691842987357121:8:1 4790091985721487462:10:2 4828451872747271538:64:50 5093433777465023033:39:17 8689257654609145502:63:56 3367472005891163185:92:81 9698271873775423958:294:236 2135709607414423944:595:344 2659787768245405078:279:172 7811673629349840495:456:63 3729287294169770795:475:45 7790059194311040278:6927:380 6183320538507425126:1176:422 7037272528837709748:9861:9768 7240670584430891555:2024:1883 8459902630618331824:6120:1504 2032161004713956065:97107:63814 8790585560629920323:32905:17438 9071917292615217906:70620:15606 4029682118597910314:19916:5610 2066266183385358727:99529:19193 3819727408922608270:390375:62770 1616506927063340364:165319:112241 8579842433274142667:193568:129003 3337308924495053318:631519:105496 2582112172925065406:639603:255902 3891861000525290041:1860232:1206377 5852008206368922676:7828416:5284084 2729246617235255351:2959391:1529369 3106841986260913195:8110984:2426859 6933296334400032841:9847152:4716025 2787821562015982244:57430291:42755276 8657568488069189854:93952846:81669454 5949177497667941835:25906769:16293687 7021167840739946464:11816453:5447639 7564743837572491258:22398125:10980008 3320124852306866039:921157717:474801553 6566433431797993939:697337005:444612159 4696347341203318804:481740820:348922324 9703007219369818434:703648349:449621141 6047732963471243502:255873488:20503902 9577290668870751943:6300694234:1450004299 1384205639824758865:8763858972:2762936257 6399950389981301774:3627138519:1236564209 9100192360526564923:5159968246:3646251265 2820506059168784649:1000470246:885918549 8622278653932741524:53490221418:26769509042 4253320272998703566:88845704287:9793976709 5117950164823524167:90244363546:87635511187 3756997795131596099:27671478717:9907132637 6512799303795406997:53766461098:17720761321 3052959938820938675:167874879861:132159662111 5152598161749092577:957497498192:597271013713 4783760278619589892:799181130830:287806843482 2735479778529093144:219676106538:187126653066 1273616508078542979:547756094594:329221114691 9725648052555185864:4330181002078:899353968772 9111490904660998216:5874055569598:2474379186898 7160313057532516987:8454349511603:3190874495373 9706420698705922969:8535786358230:2456162827849 6059685038685210317:6834702844901:3322881759212 9715037323967419738:63344843668061:28685127908351 5894860624589758636:79698970613364:5962142903740 2404403144384208089:27949951781755:8542358734214 3101332469411668842:68284236208059:67313550253239 3980426752010640587:33152099236242:19957211244857 6895607071713205154:734571911332804:180540032174006 9820685551390433728:319877288306733:132923085423895 2904399465842287068:738999098137138:133010163334728 5894091146128692531:651630963604571:89080325347836 8801057088288259613:251152231020011:180608885034151 7384099634127554636:2666359079709029:951342413253335 1015656949656131221:7430535143209196:5104170179680565 3054127878847299132:2260541804722564:135900667115168 9734451781714921269:5866905513825709:1255534278070038 5250408486866138232:1435212518403528:401094546032808 5190428986286016908:70174949217696079:67657693394203141 6436316811079028126:78246230624019137:20125899909458892 3231155245163674835:94243315349467912:26882523281765827 5600088653508789129:64106406404360311:22831296329442072 3047196180890138714:96019938177595760:70578097384670154 1600304993751776921:655086880793442800:290131232164891321 2360396732247531201:497321214634273706:371111873710436377 9612504075719692626:724705010482635703:191338939445428487 5989900236344493410:988893275132695023:56540585548323272 7649511341265294503:685510429971998310:108896611573313093 5737529805758750401:6748168865183109018:5737529805758750401 1772394007600832567:8962106115531051278:1772394007600832567 5844660841950772950:4866806377957814528:977854463992958422 3380988721978358361:9668113310565781671:3380988721978358361 3262557525443925350:8886759792747665371:3262557525443925350 9353973782622414967:81103234390696823496:9353973782622414967 1591897946002754182:40728630987861918796:1591897946002754182 8127428293063488943:12533410391194225495:8127428293063488943 2162710501113395177:93763139781219042038:2162710501113395177 8765805568390496149:77487499781521730272:8765805568390496149 3310452226429776833:5:3 1271494400102295456:9:3 7471856019478411041:8:1 8209327168769501598:1:0 9239061907812445635:3:0 8599442393606076217:63:37 7768194497119767625:71:18 2527247658704358666:28:6 9892644759639538100:18:8 2996295855235314427:87:76 7187273729699745145:485:475 3273201969181174536:228:96 8949853388088476927:388:151 1932006830197209761:462:149 6100097389363440786:300:186 2455829345225337898:2446:8 1991490950043926081:2803:1317 6793975862812243712:3120:1712 9641306422940868273:3334:1989 4562409273865827267:3162:393 8697717951768838513:54470:1743 1025934941378027492:86844:16436 1428748182391618150:13615:10345 6547233430897383233:95723:44735 3878143293092789541:25685:13306 3822392854052856703:892100:743703 8321263408431601885:256862:193115 3344844057895453746:237065:170461 8208336014508333148:967554:322396 1792634780471910666:547026:229056 4259589249561791954:8121233:1077351 9304099832540823684:8594530:1407234 7603653659998031504:2253597:2116907 7983038529262135899:2183850:2046699 1330426336283496693:3438995:64508 6132931532915702935:90099675:86771785 1852742277106625947:38723062:23568237 5025186621575332089:81299095:54485519 8476775682315070740:49485712:49443268 4571592530343503015:95538794:38251629 5152038821596359319:413060695:141713349 6297103465875699210:490106397:164782692 6716666327838118922:426759361:324540941 2371097054393878980:793644904:340852044 8618238563863572494:873168279:547988690 3493892833678448445:3359049992:710193629 5491020271432697674:7961463721:970265592 1520314253307926583:6361762272:1561360695 4563166692223963919:4193448229:1155937688 2695538608859779716:4257588580:455980376 2805222782776214070:90098896025:52059456845 5705525739290062671:38904555177:25262581968 1935407730471209854:16391959530:4010489764 1237912039709624268:30587244293:15258543252 8689330290916895118:26563794127:18278643661 9422166098075691072:983191948616:705228946616 7361393702945378203:152419236355:15677106943 6102724781129384211:560026063509:361468156776 4471407059524535574:808418893966:119216103342 1429872454188028715:173258833285:49006414580 4721238040227870613:9129601057855:1797174025188 1668526906648284393:7266295988520:3690284379393 8362796101358247658:4332971778003:249856671547 8714512069241241216:8523077283919:6469525420476 5568652553980041506:2314406992320:1863491743586 5414169217356893556:94047407701363:48050804828372 3790342446354914235:48721369208575:14807404613535 1982977772154419618:83724386097934:49411810950762 1721694397770693026:28960081152866:17573232809326 9997197725832086596:92338988095827:24840649280614 3175174443512320118:371019674105509:359092191479605 9891801757262590162:325201869201983:136501745873251 6058606903948746474:482515086572041:147476950199678 7463906309474859655:525309327834761:311379598575367 8384348080783800439:407736390645278:64679944948925 8301221769950064523:5848478249929641:2231133299903944 5013676454522018317:6309251028597979:4131137815222991 3437766263923626415:3973334274855131:832116173938100 2237801838288568088:5998257406091064:451825816601216 5582200949121446122:3359256896926627:2475243326318675 2726411925997965721:39284141021064630:15806195544506251 7780464838318750308:74350060029378780:48058595263357188 4521679351527156112:46393652247902049:21495083480657359 1698454006597961737:21853509636148240:15733764614547257 2416108992188101482:21593057321358882:19279629517265580 4146982029406182430:236083007137202365:133570908073742225 1490647446818604004:343809495424465131:115409465120743480 8915710398302761524:235230598136294323:212178267259871573 8815375570198025470:774372351933014364:297279698934867466 3574265671275326184:648310252576087242:332714408394889974 1210972516151251244:3571949645885241262:1210972516151251244 6820710574545728585:6798377577079081273:22332997466647312 7223335604331752673:8111945075354281072:7223335604331752673 2380450073383499957:3140949056835005827:2380450073383499957 2860604211350146032:1463113614025035665:1397490597325110367 2511415047121917139:26173413941219671773:2511415047121917139 2931089782186557589:30552500700317404722:2931089782186557589 9423995272792615775:29180710676095697440:9423995272792615775 2547604897243254228:76074711737849487414:2547604897243254228 7349222028066173575:28880251019534362432:7349222028066173575 7092201979625018753:7:0 3876237205500400972:7:0 5054419131317578569:2:1 7545039612564564497:3:2 6583658056125418509:1:0 3290515890619854761:35:11 7167816967563107351:40:31 2966519277575549506:98:90 4133838425862575260:87:1 6787515332805795520:37:23 3470562465129682316:764:188 5642431677918243226:814:700 8249180219582776707:283:134 4959458590488882096:854:22 2552668285032387317:442:185 5255499509843797015:8400:8215 8194084433515049032:1826:766 9605473760406715001:4803:2861 6220447034618723067:4773:2781 2919501179432456199:6200:5399 1154414493513274414:60809:11607 6925682907441864153:80823:3663 1668709533388507389:34787:16412 1142714091794298313:81061:37309 7620390683092220974:24741:4192 8190508985278506666:401397:33819 3257981153240851794:804098:526546 1787843117806030410:157614:115644 7151549260599094288:283905:229018 9559799259104050934:838175:203609 3592293419329590941:1884926:1658461 7956936761253858110:7026251:6417174 2525146744634021188:2209374:481672 4915232100942137932:9590401:3294865 4466636757842157539:2648735:642119 9821833964928718675:13687568:1770243 4554203678972357936:51603967:13197321 7897961906865178132:27406518:18772288 2017099242839902790:85794202:65210688 8854849634682692680:61220013:41362915 1661790620633403460:237861796:15831424 3436867622954302749:135027456:28237341 7861945426241636920:252626172:224728972 2227716284033242506:341712457:209604721 3455259558771330059:548198186:251320975 7223052910701603039:7402310973:1379257539 1412880486187684460:1240201123:753416519 6223753398938395037:5293164494:120125879 5171673671619612230:1531523465:95479425 3893000219460288395:5519103891:2306635034 6605277575305613818:20097329189:11323299524 1365931984078019232:29781918477:17983370088 8150860667701358727:53083412875:28807734352 2486816579336882984:54659753481:37039262684 4512657840426970197:26623736534:18929580371 5317684336345015551:706037046162:404470064481 3088183460860732099:160889149314:63025294693 9463437122746211092:282986610856:85980177708 2889179723558894406:993754370820:872362188066 4119678008871528924:788634528350:284696987074 3244115202474040987:1215263015894:963120405337 9909605884177738612:9732056519771:7457316556259 4163223555801231001:7676993828197:5156757654295 9793422266802854895:4276484694739:2897314776338 3364953503662392737:9740391312271:8699751316264 2673373516803924935:59975690892956:17070941304191 4757524198951128215:91814415805633:68429566448687 4511139744985922041:48637798966697:32528623741988 1589790233790596968:49714084958000:33225003672968 9932646330645750650:26340261947035:23293300269535 9689005372896155212:993468997846416:695705897906380 9576371498975086957:831157096847414:610586196030263 5336209525977122641:996234700623537:376469437458469 6190915162704772019:483224608888167:324698238464582 9968622273807859046:740612859224851:713801500589437 5142952867262776837:2600034263685506:85093692845969 5593806943258183193:5491401940993394:3559767326908101 5922897421350624921:4969106985743561:4691001330043770 7801059136559330080:4344793217670798:2155310840247670 8275521376943501398:3511489190413149:2452844330122354 3140084212579394709:16959178808799491:2636132951488874 3151473368999504606:37306906836070996:17693194769540942 7621560373091772794:98803979581773631:13653945295203207 7804640993996461934:48020368388155577:25341315115258460 3888262668462053531:78008160301473293:65862813689862174 2224167997894193872:496539403329648122:238010384575601384 6615621401549503144:847642991456587086:682120461353393542 7269741641990108062:555505404886449909:48171378466259245 6648306869072001112:278621077228941319:240022092806350775 3883104526528261933:247835897451900199:165566064749758948 8297590859426860613:6650746086232842189:1646844773194018424 3758748375125893210:5181683734468724495:3758748375125893210 8604319540081104796:5889697218144392680:2714622321936712116 5282097650693981918:8114781320555697011:5282097650693981918 3955388029921247530:5545543167574359617:3955388029921247530 4031312507194950871:17541320967458861438:4031312507194950871 9310083535510561091:58746282686969157947:9310083535510561091 2891048602768271809:60510734308683399530:2891048602768271809 2426569167384431739:83673565556516254891:2426569167384431739 8069942374881355275:10496184184764107199:8069942374881355275 53838776070315785637:1:0 48762094978176847542:1:0 98974797379490374729:9:7 30906304363617450396:9:6 20176295514498274441:2:1 95622359408757882436:71:67 93935416939986986745:84:45 34083200881887475375:57:25 20424406089965811649:99:34 35716593513565431380:51:41 75546416036337739935:939:87 94022447806149934274:844:194 21781717350123025511:723:104 68441860388786894476:337:311 39198374162890478085:791:151 33370141825819608969:3940:3189 13619142577501580918:4356:1118 25173543394019463700:8851:4289 29088481935548823149:4297:2089 22013292847497700293:9014:4099 66273276884246138841:93130:12261 96028219045501812064:24329:16680 89118820717538828134:73073:48967 78521906834141648806:20549:18393 85862647815788502415:33212:12483 84909181535009182161:690014:316711 46833610923527715194:448634:7412 58095322446134467193:796242:182729 24465115767253776886:137278:25244 57050369724124210641:960406:659203 62826905934918211311:1294799:119718 72851902055782465436:4555083:4479113 28003982801741115347:2433785:809092 19990999603641379907:3028044:2759951 99142710813940238781:6986171:6795695 49148841355374157480:97582515:29850130 33418327989447221169:31295428:17429953 88353689303496823756:32642142:23221852 65669476239250630042:76646877:11044282 73280697802442281311:57401562:7195341 17318832813724619148:866884332:317723544 31224236979063314913:847689136:638399425 23669089070063442510:746546321:637415560 65334085120176667161:591421581:158365734 19839757788368806208:979187522:601433840 63944857547862182523:7979792014:6206081951 28176422764759911260:1764421549:1570034271 77032274944324423003:1613136789:1446761761 71590254890713191297:3317690735:1424564342 98634769829656329096:7632086318:6744580294 24626437945683789626:48858552387:1940490080 25796284485219520433:88759716042:15407249627 35491660254958465083:76744369636:65019112167 28249249129932606492:32506846318:11171183692 72241936433715246930:52999042823:29560507647 14801939143336809940:298522019365:50425139470 89965191130839986985:656313309406:49537272039 65525946813968073519:935722447712:552791019503 43508508039928002569:889641632689:388361413585 57598896874635324343:914649596214:158045866123 91888308175315944298:9018310275018:5281714990822 85153777659664328486:4026589486758:2756697370058 50015841908408589961:1071558755220:121127263141 36168175927723428689:9830946629907:5304936016805 27264234723646270729:6058053653770:603176308349 71913566230397336969:44515138082987:28384403083274 30240042355475783410:21050172279035:17414754752495 80504560811188873534:90720709976362:705974974716 92481598810353867163:43221461504853:32527958835121 68858240022464728372:93683699613858:65020381801366 62934743123692246934:691545054322774:685455048199064 30747155974701101851:731707992405571:54425826602860 68429690399274095350:547286595276414:258245482947274 23873658213130082490:972257217507847:854494442407252 78508250869368653736:112696448644854:73064109432300 86599241176569068381:1287750716601091:580986578900813 74402748365712932733:2260892666828493:1292485720885089 68802111439146435938:8160610635006901:3175403253607 88294137565513214051:5583860705333754:2132092775895803 63168125985302220619:2402186826176013:221204177782771 25682614891964915402:33649704972607462:7889997865421896 48900673349045074672:27317244707653725:2805322344906922 43968675926293945494:47974466202309984:24064884978000150 59759941130362145728:50534333139890992:28359359010993184 93731529272931628082:70589450758529745:59328116362656467 54665581974347724104:883793136846640431:754200626702657813 93047915238463000137:851089315593315257:279179838791637124 72169809799079835264:664445256623732102:409722083716768248 33712070914385713644:600966963293713332:57920969937767052 82035229170631996007:155002870626781627:38710609064515324 28151207474788927560:1804246784438971634:1087505708204353050 55599401862646493683:4636752753873641067:4595121570036441946 98569221594491633946:9181719847509609554:6752023119395538406 18803703621932125095:7349698287060353777:4104307047811417541 42198876243011764130:9102859349715158254:5787438844151131114 16974143763246342554:61082972501690104035:16974143763246342554 89813441769731186067:92855749326948858096:89813441769731186067 24032161772788878611:95475936727079316428:24032161772788878611 65099433626999906998:91155373737107029797:65099433626999906998 66105231109706730657:46398872382231616556:19706358727475114101 19346190144209901737:601758992072905610604:19346190144209901737 12270546258637415440:358631715730057361166:12270546258637415440 81489301303813702457:469589175468422486276:81489301303813702457 13351328705609758379:140411479985450685753:13351328705609758379 33632815060147406452:350251650960739955295:33632815060147406452 13326065469289169113:7:6 74959558113426773641:1:0 68936219931633160599:2:1 73265790954787125861:3:0 66108274725794335608:2:0 75459195734138618507:95:82 72390102343534843233:96:33 59667508335430515163:79:34 54817856889475171647:59:22 39186111478557368340:25:15 39696156838463099222:375:347 92047828654152644460:556:384 63499228381807466068:501:46 51238900088460115320:758:380 27847003663891203614:857:28 68805121135315913474:3293:3127 60594978350200555139:1937:658 63085196413440882997:2736:2581 20847226622810216508:1433:1231 75819008745889804964:1865:1449 69764559485079673550:39183:22715 79599960536136479033:22791:19958 16842747219246120207:52504:27951 23471693204969197998:27820:7258 25349758837898665930:26756:17254 17335752791526880093:379229:294694 39090490605440479917:897186:440859 11407971887516937143:479204:285883 99348729110797203891:779390:38161 59424810755864458800:140626:39940 57814437168388144371:7560322:1278019 20117566784037191972:1873731:434765 79694566771740093318:8549699:5769853 77969393821305808985:7692735:2283005 70743754139271075337:8167905:4364752 43501932835124873597:33311815:13221847 95181536361114766150:75319457:26233501 74481227174848144359:12863749:6614035 48360012404475874588:55407358:39876830 69179929840702794675:45523788:39700275 83415924967505819865:711285862:665389173 78034629725440442467:709636043:633454968 41716109705964079615:693315717:204485413 77920956528205548640:434613386:184358216 25966693530261301462:690943299:645239251 87506058354676189591:2026062201:1858926823 43982681695710511435:7302885315:6247915630 29220976877265143849:4911873985:251936309 87633274432563816882:1141331322:876424806 73137665073145678131:3412629363:3044462547 35764122312885989534:29099683583:8724695785 82252291912537882950:63273989665:51923732695 78374279250580542030:28172033311:21849890378 43800609839374260959:98657184668:61130033939 39314011019762914388:60060567135:3222373193 49975452469401334837:936512053331:146870702733 76476037222252141976:717294193462:301296057410 53724741752792964068:358933966997:183688525934 46480194181871539810:614894108459:493390342016 31488134571104217648:498447340388:365731051316 91604618776409638774:2183793599438:93998517476 87103643370968883146:3105863637379:2035311291288 47016341721763915960:4611274713685:1470943199155 16851925339602889611:1625446697790:1046229708261 63426169500584648409:5683852477248:2868449443929 35840351625913375071:54398680909657:52701990408906 55542867108621714348:26977817593389:19001554265922 14467245292517158805:11203319968909:6100466055290 70591069668839016999:66377165452253:16245015187547 52819602416927394733:60799101352349:18322466086889 55139422465873194924:961599634430787:337827977437557 15730971592175441051:383873297391620:227738364245071 16490156815706379001:517492615912063:254609668491506 59700981923257457065:577002084460902:307250341309831 53904092760550467759:988826892834885:172351442381754 56083872306259690595:9820309671955600:83769721258995 68127471799636581954:7619614040109096:502667021154618 36731088043513259293:4530071704721738:1266661629407589 25106902393835070215:4065732982448062:1001227218287365 81353518185460629273:8854916650460728:3398917677921137 23437623959241308873:32882814431839545:25060083771552833 63927955086447057147:19939595806236274:1610931653562703 61476650358979829676:36732231889938774:23626407112260774 84629564541385933538:28096835400444573:1896315246879662 99552108050786422478:86949510766962758:81867733381027326 60134105739129420398:143356599243069671:67690656283228249 99999935344061948299:198741799041046177:32810426415721268 94751815326600028300:456854752833151480:182881490137671940 99577915322423501323:676329985990786877:157407381777830404 11812985125100209440:343560367239341229:131932638962607654 30056842123743687333:5039248833110062970:4860597958193372483 21767681327698764706:3743546746595431601:3049947594721606701 76205112748165370886:5390329167758011502:740504399553209858 87195142009286737349:3930102980959501088:732876428177713413 98766944767617206805:5203143021752918316:5110370376064677117 47058722957336577749:93408185058448439530:47058722957336577749 64224833763281985710:78736946869377748771:64224833763281985710 89573606698890613240:83701199717852084635:5872406981038528605 40290903822408839701:21347292560281521300:18943611262127318401 90896371684220017132:62500806316789560481:28395565367430456651 35338769947895995049:343138652270281652903:35338769947895995049 38278078581052662671:281446552527858565462:38278078581052662671 56484201087543413258:185468548753570748830:56484201087543413258 18657189650386565391:300990047155804119263:18657189650386565391 89651895031551960607:649972810647666933489:89651895031551960607 84841559974394197086:2:0 84226361132934552157:4:1 74257571539175035711:3:1 68431993094864591954:7:6 46415483232668082146:2:0 95184845359083100666:97:80 80964066743815530349:78:61 19694637938164508468:41:6 54498539894022179550:17:15 42921428031135127282:92:86 93878591041600024966:948:574 89455768171870444347:410:297 80238090961099202004:101:75 69951550038562403570:918:686 20375412332168354106:947:140 12916280230830828376:5295:4636 42654691834587094972:4228:4168 24145229533731208217:7596:233 56764222556660940964:3666:2476 83986752527596432929:9536:7649 68841762178246168861:43154:26763 55550860460360480170:52076:24042 63096189861695499395:84989:21335 14743677177805058083:79937:58659 50713074521575471585:80910:55765 81429595811011970903:105013:90952 97780081753473306828:516257:250933 58792082591657573919:114248:9391 84625098900723147545:960387:77645 94629509201170120253:357780:62333 56007767781426157528:7180530:2449768 39921489688921282831:1763818:1301647 88003699235286335061:3637587:315576 34271266078269300432:2082125:1720182 80358138450912434772:4829541:2964156 83297664339037657579:14445216:13014091 71639942280885019037:85911978:65450279 54355154803458791829:91645117:26620393 61058875174624938613:33324516:23408581 80951663832732667192:98441166:20699650 35420712078601257715:791320042:772413733 90333653522146936851:386334641:133032618 28437845556402969098:101484290:61162758 40101555964953702910:879699651:222087907 37224754584227464110:112736307:110138172 92355300994910786395:6563319313:1233687114 79946357463563405505:4387683151:3386616840 20955465604405997045:9875720814:3883207739 49746532073272906657:1649612332:393880865 31024422290228518099:2328642102:630874147 77307595103723541212:48926583598:46290438484 94899755948100148546:10502621887:329484906 92386089383541393604:70491536069:2866764903 33833883205822753470:15679794397:10515717041 29338955334035602610:11952767196:5464966262 49716598880242496265:889820339768:719012445265 56618687869983456792:217859296529:199051760111 82562070785050396208:620295081368:236675282432 19429860017664195669:419101138329:154832475759 71922142146033601000:501468820987:495305581454 47890097918367709408:8660165299846:7342120918320 39595692410882992006:8927678024292:3016986060994 20335287717114746755:9537963819293:5487684576207 68997379922564248541:7473600352053:2853159200750 40589682321593816733:3790596116331:1851498166719 38614559612047531298:45841646361955:32165640184868 91070951990954114799:84622804886193:58618042980585 78606801241401410121:75612279787306:48337678730603 89710016856323885749:73460071350779:63502253115496 91422875400082023363:28978497485952:4649531384259 20742687115621208644:198087638910321:138094765855450 57123190322349431377:766117341171124:715247289254813 77724393951540593431:708675348207850:425136844644681 51774950903230680667:938764786540972:195395922992923 60478716341174736839:908125184779950:303410384406689 55215551307034610785:6248848549082238:725527343955817 95813447077863423583:5569994422833989:3973010695978794 76271632387094922076:4185112314285837:2145571549828588 14198807036634613378:4522012822615548:4208786444408206 85111439287990803617:9281587377973923:8564619347903630 38886345348947664451:62234457512996682:52043860837734883 71942449232980725333:72738962921396387:3614903719698590 68503626814604796051:96502352003924836:83459243822087327 72976305282016896463:41954432567456953:17547047209255196 61571065023541658600:74840045435292359:52547675731339502 91329659998750384680:502921188161480971:300924941522328929 71210669154357984593:495383902910629677:370771038137940782 36739552772995903236:967210205950843355:952775152814699101 66659196104752950553:868279461534659689:669957028118814189 78859145740195784780:621129707486432561:596802596905282094 60083595775895092720:3105868141854607551:1072101080657549251 80089206371273619646:4801214395252475759:3269776047234007502 78802014416590472165:6835361889449011695:3613033632651343520 42314326514575349113:7678176282876180238:3923445100194447923 34958434414621002750:4351972094936591105:142657655128273910 65218465606066997020:89102437333455540260:65218465606066997020 78907553080388444401:47438803449057113533:31468749631331330868 47535682509667367342:16754379079250058760:14026924351167249822 71764994343518689455:29684216894708223455:12396560554102242545 50774311456612843985:70530680004105358517:50774311456612843985 45438784377830754164:544616993565854846128:45438784377830754164 53459433868125250164:677918942896724042517:53459433868125250164 80935165781703940663:683823399830704400172:80935165781703940663 82723379200691355776:703023443890998949256:82723379200691355776 86600177426320033248:847917581416718994116:86600177426320033248 41396259469988787278:2:0 23571415848350068955:4:3 93533538849591288862:4:2 40396330223215821886:4:2 11024944392550316002:6:4 26600314433550560186:22:0 35708424546382569861:49:12 34550322604292817191:62:51 43482739978772714926:12:10 76420990853760657481:99:25 74361531820323275369:861:611 88803952428411573884:634:130 78112686626589031125:534:399 19235204763402755965:504:229 61340246737695725923:279:172 68960541525563354671:1522:247 60679323955813241069:9417:8237 68926791514189871396:3041:232 50956576219909350829:1690:839 98523124655280691999:9041:3097 20815808065484955349:39640:16029 49002987517154183080:50156:1364 13394985375876258165:16827:1479 73556626535276169123:98302:93257 86985026897899320639:54847:41243 62453538360329376896:271412:254640 74881985826978989693:454970:315383 91134788508910895256:869634:839754 27967573010239422368:947217:150146 89251476997425518482:327123:72349 16501728955876395543:2579066:635485 58524448416181338791:8929191:691193 65237124203450014911:6303117:1941867 53599498186694645646:2408404:1664214 18122454757546918313:6201348:3169181 18266690381135187226:20170696:10400898 55616049695394028457:84634350:80524457 70821445546852894766:49120201:17538250 69865553317861846322:23766700:14522622 53999260870283735325:57894141:9886437 61409213943106195290:883212555:309694515 89976128854873430321:581657539:414428682 69558905138707251452:208491214:129926836 97772239826370984963:691305387:388321281 64340370901511137046:138509984:58369654 44419106467352686844:8338611531:3680896292 49433782654943846464:5798183006:4287666226 58506076444860094288:7178571706:2146668772 45039943239068466977:8231692136:1837774521 53142675968702574005:9402781988:7242855765 22130921965720095486:93787309230:9325825686 18162244336787636157:83699359465:9028613602 27507020601523102521:38693901045:675294366 54200911147092525017:72005663322:59791558889 41213282959775395101:69202586036:1487398089 19666701324688222283:246629281197:35165420951 11922998111615690113:589118564010:106356555043 98588842140065141661:437989114269:5792431686 91596068945331000221:891335121418:196125628107 43906806077468304373:283176183619:128626746049 51882937065385719675:3700111133039:958579659909 57464582569624740539:1463562465955:614725529949 29137774508602902711:3694821923718:2387751145731 49283664171343134625:8089468935521:6517683029342 31963876323797657217:4334985228923:1457861242253 68761440159408665101:99988967353773:27199892510731 53447545663594871648:40909373531536:21875872529152 43991315319253961072:65152110942371:23641966580533 58211033199820741408:90761502426781:54480375625686 62913172029881906915:69343724951539:37411723876080 48522607407921525399:992868830458798:114794569608341 70886761204522449457:937973264493747:369713672013679 34348060330965027895:188617932649854:168941628664933 36063651615962924467:390721177504562:86932291851867 67040955437942104518:384698667697203:288015685932114 41319330904617232308:7405482968236789:4141424824186477 83229323984100699731:1618175446699866:88058539791887 79357348860071463336:7990217036954438:6503466076939558 28647516454234585350:7463079031361248:4219131870115526 30338292191086027289:4211035304060262:1993860635899841 34052574382750566977:25526947047340478:25153968645709803 45467074371592440392:68173984943223028:63200399405903744 69102116004897068879:79353909103142244:64215085163316599 14381243139343541175:17264253168318152:120250134520559 44583867598926726365:21079844241283530:21076872853343945 67832565436626278106:318575505378217902:294558296444082882 13167432921637710768:673329323456992109:374175775954860697 48301287848630194735:483997102466597094:385574704437082429 79593612898700359947:890122764197700138:372686885105047665 84249079487526192607:538240674218639176:283534309418481151 72486970027463419669:6658496456237581426:5902005465087605409 64680044375509682612:9485362218393781486:7767871065146993696 90282978889974358413:2611737665455640696:1483898264482574749 88916967518034868946:8240241076775705678:6514556750277812166 84076165289725548633:4060183953689363434:2872486215938279953 62209187262460192446:46347952978069058147:15861234284391134299 27659878613177934948:35706466523711090873:27659878613177934948 85590131775688763101:11483173633490918564:5207916341252333153 36684848417806197005:21077322037986576161:15607526379819620844 88689382216487586693:12078677371484451403:4138640616096426872 13082991421305606901:766783401289809978036:13082991421305606901 94678112616497918133:780009487513444223031:94678112616497918133 92886105923451007039:379218741910130019034:92886105923451007039 89610600437114088912:375607452375659151573:89610600437114088912 22818551688253562445:769198650272851983519:22818551688253562445 31391202167671413969:1:0 26694360610096864782:8:6 17497350554337322073:9:8 54795808429198382476:3:1 72198928322929476844:9:7 49610778179996044548:43:37 21106823569133962599:50:49 40679361279213833325:53:13 52478052619056075475:14:9 88312449289660672610:14:2 52748851333373351927:157:110 86750551899878059882:925:257 66118495554485200034:984:290 99888026697864665015:583:437 66421918495997278056:615:606 91074282293142433932:4198:4036 64262032785309106266:7306:3418 46605317435529931145:3868:3357 52231159119879210071:8817:3770 22762962282145619762:8986:3608 73400667443103749543:56083:40503 53364774970180968508:34629:31252 90398265568938214552:12332:11672 34173984735342944267:30003:16760 80435067384613723344:92198:74 37101922024424681856:429280:221856 54704991808178071461:157525:107636 57439296695562029124:592144:183556 45708578045953032778:783375:59653 70059031122248490978:788899:582579 88570602518834106902:7048124:5757354 85328173701161906407:8536751:5635937 44940466827811790382:5429210:5339282 87642537243237834442:1065991:529083 63486007418259571848:9240317:7107852 33678701883575224218:74508397:71664224 40286462029934206575:86031694:69870429 49135528864568242860:75405568:7553708 97316099941022789088:21362641:3323109 35448852392403258597:96284605:16911882 34022764617234086982:839326317:184980426 69471833428061093817:434517698:70449535 61544715468268327668:713725417:266241150 20019319593751482074:987311097:475365671 24953448859668327166:662629160:335394766 25592601755976389215:9518065058:881598519 14533476356771190301:4071736377:2631679330 61734665565701418402:7352017619:2284942650 83394915136940794465:6615328466:4545157865 47719040926545098326:8374848779:1251650220 84452285617146912405:14913703057:4046262919 22743263371698628289:19214479730:15406992529 44328869169906075242:96141772365:72257335967 35209595523437702428:22722548978:228544324 12894667635644322635:73184051875:29510155760 94206152061154434596:517907912808:80700818636 85864481854808691907:266527967076:160751756863 25796038417002828735:359482001368:36806633015 45113018198576399784:347119972505:12250090964 79009396439353235948:117746488126:108379283810 40443932568438087209:7580871117145:320211746499 39187109862641199849:6826144733656:1396642321721 41625857977269956193:5836895773990:743685627253 24361782272850795642:4783889813742:400292769096 85444056767551503051:2501518902630:807875934951 35276150104366826642:11978892161085:1713766214627 57971319251611240523:83111823982826:74017174260089 34348060049775603333:91635404352834:86529989776611 30156148841140074033:35573214912803:23095258714873 37505667362600111658:96226517613275:34951579594558 52187391175683365243:434466064932541:196388116405405 40056230957010262132:754787384620365:419242592111947 75993031493256006088:589707642982179:356080357509253 38777080096581708283:702698698639594:57809552992581 42612302064398276266:130343671469988:88300086859330 18188255719410772202:3653841507642437:3086535874363253 35615926186539301937:8358675930596533:7966722198071357 71130899775003988514:3900538544665285:678874487851254 41453065788162699248:9119828643992621:3444601216236803 85513772943820100563:3691590774485198:1764243644974091 23434434844407220307:37853745622608039:2966304012844166 73951791161685093473:69255007327167177:56698343597715614 95367946197512553521:22367721764075689:14348317257891314 41376454770279171707:45774549405920129:42036656733295220 61991944568734565437:74070008264915135:69417659265512577 92367003863940305021:972313887884262136:969498402819664237 87761151135349352727:602874923854121962:344287176501668237 96208525747484264904:649295294110565376:112822219120589256 94114895211282464676:134486003879710594:109178499364759470 22840998200564294478:334142375436220186:119316670901321830 46301085423120490990:2262437187327683301:1052341676566824970 87089482106814564421:9360314860833457292:2846648359313448793 96443483264542169140:3244578792381571825:2350698285476586215 58023922485371044788:3319966166286364569:1584497658502847115 26187610488222615237:8982974178469001243:8221662131284612751 41392124871863921719:70836745443980473815:41392124871863921719 31141071610922233389:21048495821864001370:10092575789058232019 89635680228987388528:86754462617080953142:2881217611906435386 28841574652755629958:26022189608908634466:2819385043846995492 42397959358527675514:12002358973209598033:6390882438898881415 29825398334028872614:184086440055199165997:29825398334028872614 95795979577715296577:295227109224515024569:95795979577715296577 40970415107326370815:745346826344351794986:40970415107326370815 57475653494751580613:471603587110474320447:57475653494751580613 88733979377863620525:343773792174051199716:88733979377863620525 163126205627702602369:5:4 493933167176004497801:6:5 518390769454797042982:2:0 317309442684030164607:7:1 922366976596680708422:4:2 503593186895932487981:51:23 988306818883143474383:83:26 445171707032653798859:87:71 426144487537269053459:30:29 412782494752172215529:66:23 204552212642644684279:250:29 664510627450234121091:510:111 380371734495164905911:975:561 544983008293604869122:448:386 751335504288301328698:399:43 496587830195293556067:2434:423 951379603442582046839:2993:629 740224095259153741571:8143:6990 695758768754299342202:4569:254 730929553586626423640:7824:3752 764766228698602811704:20394:11188 303135433051348669094:85865:24 305010070226916675213:18617:6231 679084620069047007254:69847:43283 156237284692372232884:47148:12880 320244342000691034807:813326:271105 429132867738550068133:664772:85597 904184408351889068361:564468:149973 995062641824724862648:634566:299872 367590807386321750767:619929:482941 669372777821977279015:2799854:1688583 213070496217896934549:2298869:1013186 893219616788363565450:3727065:3309405 474260219291620636117:6963934:2568435 976771234006823256071:2468437:2136225 140560227095272921651:23166635:13068121 750639352751391821176:30885306:9315448 602006462735326601052:17813352:3984852 866199221985598684525:96349434:50613907 868990189175070566545:89254533:74773030 971156979205149091119:847904813:443738080 642875986361265489471:515919746:312988969 693751183874130166187:522417977:504640438 753523006479755328033:627837088:252653505 519094269331445130090:218375788:185426694 612499292923674688790:8418200293:4732160334 953648519172201046083:8886241407:5559636606 546590187349735388892:7275667461:3787095933 604635729935697021097:4875059969:156887916 225064780538327618487:1122540940:633193227 530835888534740469525:19602764667:15012980193 487766341424977081094:96671768035:46178033904 437953521222763872703:45441767806:14389492503 346287497747334437207:49868262644:25568110411 206207266099406402626:25729584956:23087015126 188724568876770166504:643196229084:501211849732 469007977676119933148:217381570653:185969688248 561464875311359436655:708799888153:539631555729 722925547570788210422:612395584299:299772358973 297791277517583156688:367456087471:214854903061 262855952548072659191:3964795408187:340112374057 838905671974982863966:6160528257265:5788003773611 599142412438251986858:1670779751480:1607921785338 471682020356967352336:6770926377928:5272178533392 626029386804519105090:9872055571580:1764284798470 230580471856982115428:70208968064084:38522981314460 283025153544742436559:15999118466360:11915384583999 418477184076339675308:91311222570302:42505987296556 515669801977868993033:35624577213140:21240442408213 917396675695265323342:22224444687031:1854935668960 740157495113075814987:399423600432215:401753758227 425443645357839743405:270365957168902:101012170258637 122742848657786035820:856072282423725:60876154769045 488079194291133791635:771974606430556:565299234052303 312491143116895288605:626819644539267:238446156354027 106419088798911625322:2518646276508218:1246323886398386 191169263998465214671:9928743840507373:1230093336254929 839502062397744114158:6943916172296171:3428915653928771 400000130093963906072:4397030014389788:2309684924891712 357914790304737290516:2599944022133541:1296329789769374 317690697835643203289:24753847030671842:24578891031454903 107119131934157224252:76523689251487433:62490671326305485 237361317432614852547:22280651611388002:5535816498467241 452364606613996065288:94020095097114956:33929101776011972 300255167572903000653:70940571507352338:34668953787906237 775130456292155494977:784431344977604669:112287454282082005 333589813647699237969:570714020318357555:292825781778425849 164822967187629646389:383675520430335646:226168923015654255 392170573531087938751:789131710081811185:761245330509590991 603607547515795307779:619939419047074509:406492782991810522 922502172005768836294:3347933362971570664:1820497188586903694 380755245600005822824:9355246598296396882:6545381668149947544 675305533675832695874:9638184662751702441:632607283213525004 610445689178935499415:5194136542112478408:2731713751775525679 843608134504174619437:2446767281293162046:1920189739326875613 440318409826413797773:54797608032343208210:1937545567668132093 351758472918183562905:86296126975225450657:6573965017281760277 233003536916087567059:90176621112244269544:52650294691599027971 386548956793843020145:31900822744179848206:3739083863684841673 212796888788620946961:12082866021653290726:7388166420515004619 563838379535790596662:725380929056565359215:563838379535790596662 733421411109882396817:507384231609030680958:226037179500851715859 515750886822846729137:598065726296765624959:515750886822846729137 311939103235783092768:947520728571130895721:311939103235783092768 388751795092068874005:852849753827423522247:388751795092068874005 954072481424996912028:8251254479123512763519:954072481424996912028 738959891097011210967:8148806209702817060504:738959891097011210967 799576690137949810493:4072957745286572999518:799576690137949810493 694108662518873864788:7491815902231137498558:694108662518873864788 832087622356925617272:7141833207502438607206:832087622356925617272 755379256260582111072:4:0 620036300694589486686:4:2 295113932740051081405:5:0 788028064383877018683:1:0 623462527675068013781:3:2 376683840277563786724:70:64 946988202424550773755:14:9 610450868095883590243:12:7 641809044038667078221:92:81 557448213534760393833:70:43 957008663731577074200:632:264 679168297526167388939:609:314 370062153845274902714:498:212 767757264718464098035:931:531 282134611674319016525:176:77 554160425880201460136:1415:1141 401435620820061702556:8475:6781 460008694968483573000:4678:1596 679183517267930899597:2936:2005 187546666509416090602:5060:682 732694352779294531509:40534:15405 418753824703001994117:72134:23725 601415716887242478065:41764:23949 256229735068089554052:23914:15054 671346762449434577350:64560:7270 751753558724525921871:887517:57591 900174573361064239905:397480:184345 843455857625570005043:157502:53785 456024000522379253168:129427:86008 536921398845042070895:839199:26969 641088551742570883626:8761598:1117932 108784724822203343930:2694346:1211134 511994126630733253410:6275978:4423752 919037658022257474557:2940864:967613 336166987968696543153:9342101:6710067 239047416344611469378:90296408:51682274 851897028868287772874:31195760:20634474 969405430327399982916:65968019:39944748 334337928936693718459:55696414:1189943 330226060128237320994:28427762:7828998 957920182743572249489:355490542:95108059 189220538988504792400:113363153:77451920 886166611548523518878:547827630:32921378 295216660309451193557:656480520:143495117 805029337046899199786:608906962:153556896 333234838869693903374:1777647437:1397886718 525760972368511626222:6555552953:1589409473 484631334490083631340:4121485546:1033718488 156631179277794965209:5562689700:523441609 666361043297998191547:1750452992:1427424443 625569443605593962073:71956032391:69114337469 490099840600307225004:38995998947:21116616771 927358843410400640444:57820621684:23854238648 484647895440148349634:78778319805:63523918779 747473583268277529177:71131163067:67114005276 143681501541996437541:696861544558:141251509129 473009851495236271414:431845721078:336986223774 220920134462336312766:219449773022:121038393970 375935462594756004750:629030219631:334002085182 769355191525309686813:747987838450:375546715013 176224756114127439196:9546179368253:3439308046729 438866286199763703774:4780469744637:3519350598678 669084428697838982742:1089904557332:142988410314 234894298048008072001:4193931008247:2018113900186 409018504773681116494:4062247118206:2808770531024 800319606940449150093:76489339221150:24289995085293 555455241035519949306:59760247657599:53605747768833 709014386567882701178:52751898147552:20176497110234 379174271294079613714:87154033503977:15742940190020 787266811358744278129:74006915654848:40379047585521 235466990519277576095:760316552010669:755944333440140 901644927171616540566:936599863383079:843889720815004 841744792436048811657:798950450597360:158853342417977 829581879996799921101:379199537795062:225570862472585 964024290515413760633:236761301855950:219851618018283 379665567924412024475:1097481905886858:482438100594239 266754583131086365858:5945837571118221:526340438498914 750669463184500535214:4322436589360281:545583479254506 946875666521487254234:6536590930834515:4714053591914879 697460507422108720219:2679915270947620:1838496906824739 148919565210930884937:72143643870072405:15084263101441017 853750248134601660503:75746039462006270:16637358328991333 943792420054753284819:68468318712356732:25114923628090931 202128177462678898097:61581608147879713:17339521337680031 703802391992065069887:76672621180413840:24402177046432527 326504845665522201749:201404346411592989:28400132329966580 195958491262161923502:690103052124608823:659327510897626593 204486396732597898503:155614722715427267:8651084526469665 391329046441390459897:976828422110583746:597677597156961497 536091226723830295395:688961678739505155:79040664495284805 281099823849711514003:4460759404626336044:71981358252343231 422335242373134684928:4422716428644018165:2177181651952959253 183940617830547348205:2342061438273865044:1259825645185874773 921506215802438152318:5392508937076417469:4779696499447182588 984248440430282987238:2119075906929971227:997219614776337910 358013073842594539058:63585223162521642815:40086958029986324983 546592021478765685578:23612161692049475318:3512302561627753264 659687979096279541869:17390482044063011814:16240143465948104751 805035884467116267526:66020324859824042399:12791986149227758738 218147385685977433806:29215066335215616917:13641921339468115387 833119255555910528619:645098441575353024517:188020813980557504102 899969062421553593782:480953533014935583907:419015529406618009875 944220329609346559292:561513532671122759293:382706796938223799999 107313870193755574022:476167462031052698606:107313870193755574022 491871331239386559847:509550792267253375482:491871331239386559847 767431145020283249695:9938569104358441345640:767431145020283249695 160427519627967153473:3205503580567578817225:160427519627967153473 941437203195357148756:9563166123358688162879:941437203195357148756 761082188526102700012:3463675826536021978786:761082188526102700012 200845743012828184112:5432320649213310448974:200845743012828184112 875986115250869108662:2:0 447305270713877182765:7:4 634639635223286674812:2:0 106486507143439874267:1:0 833651073966479310689:5:4 635019881538468341094:56:46 945158405637969077766:37:35 557626507402423602041:32:25 272862356013051426341:80:21 740016079137933119232:66:18 735836252464772307651:318:291 833950172619466387424:780:524 441142818298202394396:827:520 777585972527160997203:884:315 232625960908983854379:452:159 709882974841061861012:1766:1188 971200105708024648507:6060:5287 445855618098129337228:8948:872 247320498245558636431:8733:2941 355705128248549288913:9292:2181 376105878365983003101:93895:25991 717655941497728587260:64891:27353 377314973052861488430:67938:39396 603047242641033058355:88391:12004 942470923734850490750:58952:48734 743382187013233137556:285357:242455 951168108883007058590:429988:177178 923674225843115646786:323218:309776 352674384049318124345:757166:582825 355497074606654690229:784688:176709 344825509609972927859:2726912:1326451 370142094577975066900:9456014:4359566 333268739217514294148:9223873:7188750 781646852647323785595:5356179:5212686 968412323079129240976:7833218:3291408 855965786186982531477:81514473:81165420 769996266203502729394:35607929:18361129 710772954432433177324:33238332:24822004 203873999843499715427:39247903:19407322 189957937603141058470:12291106:1556612 547798169434301560383:163094733:47125923 466126990476545239829:516700509:80642822 132996201417926333239:259666990:48386299 145459411804299018579:809234022:584596311 743808976649598356010:124775375:40148260 994667358702072567305:6270978714:3322631105 853968637955170623072:7278731086:6796386718 333552806486635294793:4117872157:415006665 958330162735813914312:7948441015:3471973517 136166264337497579208:8963278193:3641410268 142091555458956070420:12458453939:3909030233 784473297217494813760:60467453499:48507177736 109041934565748142935:16957088731:10630605665 771590178191002048675:69394336105:66089527500 669325833502989483409:30633903178:10221126273 710064778243306778057:855490409439:498183402302 573054833276933885894:196786277908:47125767298 534251186231675556577:231419449834:51154512563 139772675173120499500:755981437621:473368301870 195921379235679941035:413038243977:358868442598 335278503626928795785:9292797106540:6165215052485 127863301991524950147:7774823265770:4679798963367 852864414063705082104:1251926246221:988368863785 299978585350357846723:7189836919719:3331243693108 940754731722400685084:3368827382415:3173114874374 846699562601303948666:13935708643079:6126873522979 423384347857731190971:67799326460782:63486532580595 537899255752974689910:32405517941727:31032730275183 836201711241279109354:75189320369501:834393919571 860998414979262463718:30012171986584:11291340790430 405748188522117032334:761457710409556:117326412250842 864818118262063466581:792453794980371:612539264908345 129549786693201848280:981330620181121:406200611340586 175750125101606049815:641300940273132:319817873678951 434262465403822444312:604306908648779:269165906069564 513119702128455098012:7070305284614004:6436708162985720 114682967635756969183:5793563258632963:5176494376099561 271168779425736242434:6972589053941790:4791117940029334 971382776793911297866:7623708002444363:397954460341858 582258473342893886294:8265821624151623:5732316029410551 650353761373165223497:50834264615772577:31014143586645936 448006473568073991058:33255724501081431:18608814006034057 143897229623204779849:23018370492310961:9395675768962638 316454988534313578832:56366272567820047:14734338571834974 757733582923342648970:13257077124862209:12082774718231366 934380639111991942933:425925359742364839:326325196985851006 852244661362618442182:185285995617951152:114367515661094134 450412158746344146954:866845362389530391:519415666177874025 463062864030495130083:760510172812277825:672678960630212483 718640160494539294305:794976707561834541:776193566202703782 539343745352694474507:5633855752031672832:4127448909685555467 597183931414613585860:5419721334281153704:1014584643686678420 793691719124327281065:3012978974352571574:1278248869600957103 956406557463551079755:2320111109160191852:520780489552036731 858089013766701630339:8715684627288999392:3951920292379689923 531613021293086751992:32229145106372618194:15946699591124860888 517539664259142170169:18145624547169715057:9462176938390148573 754952966674090204753:89601986598389650084:38137073886973004081 515097369803949515205:79589398435374655492:37560979191701582253 345988260160185488874:92340650545348771021:68966308524139175811 689018056775681681287:855572567522722155668:689018056775681681287 732494680688536574760:266987271623750473225:198520137441035628310 581986796902084106101:175224032909657652081:56314698173111149858 822541225994541415918:847029522421039642542:822541225994541415918 996617507382863355870:492602870563552124875:11411766255759106120 485098337745732606289:4649319029515387012962:485098337745732606289 666486093154886129579:4404033657662981446460:666486093154886129579 729889403893834005257:9192595663454117724837:729889403893834005257 414446826629668420021:2156948956448577422891:414446826629668420021 820760013591364480545:9858012116714363071384:820760013591364480545 706521087089271808506:8:2 625073547569198139278:6:2 333988865256576467050:9:7 103098319496628677762:8:2 913399474937799172997:7:2 836334109032748246824:81:24 329107730627651156461:42:7 951288290044968957445:92:57 907743261049895826277:49:1 484461292385863892576:95:61 271055183262421780232:586:88 233124689426724553823:826:617 520782085955367733159:734:291 873265484772977191917:105:42 617034008826754790041:797:597 189537358802635710856:2567:851 679707164894408352563:3336:2051 837119584103729762259:5764:4263 280433903676719890174:2983:1533 240133995091982480292:5605:5272 104134323512919313778:19460:2838 562389908997170494855:45982:7787 877025871488822874291:47737:45350 893471030396017193098:78708:19690 409451795048231973045:52951:46647 228245529598806668085:229253:195697 228353001180056054565:627595:599820 660272339422535491423:451244:151955 640169786820357512012:961183:652865 177346919974644759162:572496:441930 540826861709913157990:9942201:7226542 153215112020494894677:5320306:3729585 649077125883658131585:7818551:5068209 925331317138410917543:9446640:2792423 247046487791532200828:5293240:4009268 198602950561884939178:99117849:29058754 483035848586531743455:21069993:13946577 275722256933493444549:47048171:13249821 631196518421676322680:58628797:15645342 496351784932241971070:45198185:30108630 252785593125019501974:495391849:163985848 375866981709692818389:356745144:290309469 532384061257022187527:449823308:105591063 906777697207996073153:228964530:136116233 836484356645954933916:768955578:752187360 145924153662527835644:9169570309:4708718704 790623121027826335013:7232763743:2666901103 854997996393095150381:1337985701:147373635 271056167199247720017:9130160614:3928964859 878972677252331889097:5795220237:4466240659 964763394191387763802:35894976138:21068692810 593630441954678992075:21509751611:8662415986 490458651305066100494:79572690697:73011649540 817513417426613883064:41222147344:40427558120 988684907345156440093:21885638526:9272259535 839072733825165366134:259238698439:30139986624 731634285441334095949:759783425136:444855246349 561353242131741987473:919995713996:120273925113 504733010657869695460:550502682084:164614061524 994702512045437516465:757833526705:171718755915 115087261593426131785:7158900188171:1848268625146 265699981023925922145:5588106756060:322198141785 732886798706784592837:1593103939606:221556741081 150223003645581364838:5073614596052:3069436009790 967765218415416723560:1244145350859:296343058331 565910367644675596291:36195463457406:15371359056439 890459965122866682354:69863050902058:49839823042418 807739844594499640199:66481093185007:13846305760773 372659862678076642884:79087413759819:48129223274703 511768666576033470794:32276077494813:20996293407932 176794666264629786137:948549600503933:197524304737865 694161985704366193952:137481517922813:66596271314075 201902464533754130823:333099076474108:122013273626459 683902822366933499940:484151327011146:340857528883260 837376329476154776377:740093202811189:95435043415894 983635588190151823669:5899809163048277:1705099253937398 375539222819026370337:5437521444778250:2241756861312337 556707767430934341718:1577447865522869:1176522065505714 809200292330789836546:4644200207143870:4136638456215486 714820951211874248636:4369208364096643:986012207067264 501401221766544211340:36791702237389824:3903675395689868 532666647656337520094:92093889042051475:87687326153840169 418991283751542995761:85117874318363027:41106356560176867 323729862564372348110:34885392083708898:28309419637483568 172452847237426932304:18112164303815803:6930900796671941 779032005183447996026:288409913299594361:36829361243626965 289111777759609481346:941828777350998010:912171890204090286 547740161419770542878:330881342832216335:131539032452508453 202074665530442468885:669955556133065454:418043134389767231 409466971510541762729:950944322269353109:560912934719925859 728624835995420340487:7073281293534037495:76862761414478502 325755796769841723479:1497209162153027835:861408582634683284 436852563984738603023:7728064269657737133:4080964883905323575 748553238700039740935:3673322031255023604:2868866355269949323 139548701255649216327:3777529787086355292:3557628920540425815 145007757869659821573:32940296423008225931:13246572177626917849 491493560082045565470:83994397935741965639:71521570403335737275 343831621249535688516:72049224982468203778:55634721319662873404 361307513930310490358:94214634990579129464:78663608958573101966 836652148321257936477:93855902060350082392:85804931838457277341 422652383038513386562:759604323861335188264:422652383038513386562 944699306258682518017:494716667057189840216:449982639201492677801 993671203421593976707:433769918337845683125:126131366745902610457 835372476770795585140:563346127487237482455:272026349283558102685 159881100199986298138:768332339622456676619:159881100199986298138 683997127341950843788:6621577029738268189305:683997127341950843788 200600205367407866666:2564711695919253813020:200600205367407866666 153907184837346357540:8670899399616770460947:153907184837346357540 508527841731279651096:4905683003487401724489:508527841731279651096 872175119169888375338:4415196989076377522580:872175119169888375338 976654988185675796914:9:4 456999468375689987123:4:3 637424757346451756124:8:4 245700590845195322960:6:2 201076259827730265914:6:2 265375946288841305480:19:0 845440814459168910097:27:7 385518558831993050039:70:9 868283327082327299584:45:34 211912955854356130415:97:85 585941453346377622447:647:150 782961349991355964186:628:170 495731369536319335292:776:756 535562575751693862449:487:475 919446153113505845368:706:548 236031824181929724246:5284:78 503381376290982975544:8716:2344 789450048621963867937:5177:215 878388552099355689933:8424:2517 774273014645194900543:5508:3991 548483519592478264337:31265:1297 815217682771468348504:90871:69223 723403083944651452668:55925:33018 653950834711166165757:42357:42129 674508004112237429869:99893:30315 763636390070412544912:660367:221047 529676293044095736696:704797:175945 322427123573586674111:152514:83069 291341475512194052874:787940:353194 676331607331509487919:998527:656545 712950811646934675835:2963163:1192729 202174906375843849833:7635761:6710606 427298898785421950207:8686389:5938574 241422319313333646949:1030778:362907 248271184918001802377:2351690:831167 673972192966406666120:83102032:35702936 107484709304204527558:63602089:34077775 224973664627638523784:69543165:5003429 979845994857965649151:76857306:39653461 610587544288567850908:40727974:12050732 131118284921265003206:297512182:112082034 158917867894682643094:807222209:452605281 279152975237032115188:268721253:172368574 619594052656954274324:508428186:73025972 254026064359055525497:352018260:295563877 615656858002840645297:1720444745:693679977 609210323231923711643:4006339181:2412355628 495373354026933449333:6189744743:4014511312 782164950836014742081:3180312279:159828791 974862740914675555018:6917141503:3424939680 353154958268613455869:45853032950:4453406969 913539071760105628786:95416494400:74670151986 299257194159404056152:25696033234:2315527316 933328357325176531381:10469323122:9789610357 457625637179637880746:70214927070:50212029336 516313226506454340303:246670031435:184892952743 131908157521129296977:727328981781:311969452649 150513498783025566729:594182947019:420803274239 124609254720665749523:437894749498:256090825813 796759616197679863986:452454052309:205938750890 447120868755786856234:9770013958176:35319863050 821305315570740680739:4166442763757:2178350628663 695618874135569545632:8363405890037:7572766533451 379669054506973593823:8778701758362:488979425815 241316365096495756757:2791534139324:2276799068093 363726370106085316050:15655887509031:8543384557659 246603923143534413117:55061032857373:38027002235216 553055250512625105093:95637587846846:7847363578835 890273138216343143334:32173601455897:18391935183991 294204661853019501391:94485949247022:76730546466133 965907790132105528400:605142966400457:372310486481452 622475300786870296120:437152768647999:358925925080050 161956697494707838884:315322495012063:126961622016698 671721626239836047489:625607673326480:411312461206689 979551172397741396760:432120681860526:133204935475764 672756458563747919094:7310209996606271:5142786069405235 837994067364382968253:9417203382331641:4224387601893868 500516114405329523303:7322388427943193:1575801700508981 693855814668397746424:2186066479105514:500266786708338 405358643639008584626:2992482346855408:2969898668727762 744466281481817548313:69466969372352214:58237687691223089 533713030639290511371:67448157059199444:63211986904510443 751800620857776649025:31352403718148049:1332100304582054 636494117688026395542:50828655909877336:17688384542394150 456463109148382325982:47183124020894251:13567370251341808 190321591426030075811:572927737636945842:109582530564056267 239911813551226245571:641717918267116801:551030037591678798 688115544263927799178:427864605055965041:109259333936013250 774240621305751662588:295744953946184074:276076828587940930 663806242705106442783:678489490776580760:243520725610459503 758182315735137782269:1522077242346888936:187849046387092141 465848954004586932968:7670003837857850206:5648723733115920608 802539648231297522760:6242766804068369582:3465497310546216264 239201386469568656017:6014429400522050197:4638639849208698334 844364363985717898122:4046501119300193230:2692131171277706282 937167444507309153840:67174864649718102141:63894204060973826007 689623717616101515345:36215880899649921597:1521980522753005002 687454138743613873730:60279784230579082369:24376512207243967671 764520542645825430113:58748220197664068473:793680076192539964 231406879533918024400:40271266749172653951:30050545788054754645 573479818255856780841:571212037183455309250:2267781072401471591 442568560548363201191:354300189581841004130:88268370966522197061 347165596854489678245:528204855477441027756:347165596854489678245 821910668000902908138:856423607944909338566:821910668000902908138 570786439456054436101:194345519355006263763:182095400746041908575 985819600839496253681:7721270913236868705197:985819600839496253681 314820824452568722617:9792512134362334296643:314820824452568722617 575882881928150935089:5773482552432094675285:575882881928150935089 246105680927728690886:1206850483595056743101:246105680927728690886 275484531189986598567:3955034923991551061732:275484531189986598567 1253802869427741106107:6:3 5831808772406100989744:3:2 6528890343928351466060:7:0 8888037842215560416306:5:1 9018682853222952012223:2:1 6128428068942033947008:33:4 1174608758135749078588:70:68 4110705915721545462839:54:35 8463203291431564285381:34:23 9392152913953550656488:81:63 7493639459297417202561:439:435 1626185920367101399294:204:22 7600207936117875995751:818:765 8885304688456900278324:903:414 6456193521131673161403:480:123 5183243086189066240161:1013:741 4173028565728233066352:1234:402 1403514713940403732241:2955:2291 2652979773291137211304:4868:312 3998766933873354132323:9401:8660 1915949733456246876536:41221:27977 3313810692657267314933:88651:7468 2420000943098409725153:28434:9353 7850378318079918025413:32604:23889 4579389559388763091697:54662:12807 4954536150400673805212:561318:267476 8003866034503228184204:582498:149450 7666474945549883312088:959289:544605 1507402212925831581052:708993:306343 3762192675044969718680:353062:90936 5794881913346531399138:3741422:2465326 6225497144336273403914:6995115:5700554 5042607502048879688332:7627150:1255982 4292997600232406097337:8576204:6137709 5610729957040355167523:5053233:1537295 2960472592536585263374:93002372:80280630 1874302388290285929623:41235622:18722247 1753095657198107000044:71438441:56968504 8707782080362360156931:32093125:6238181 1721561390825586000063:71331248:62783903 4414852800768597197645:612249954:34051541 4246084987814258125969:647283528:597987337 8643115670231796117729:389027383:264384009 5371558125567042071238:498370834:180070284 4959009160304247660009:173085191:104825432 2049834729208446307597:8339357200:8037408397 2835943457415457008467:3517281528:37734491 1643900231349782616512:7355416922:1836156862 1974032862015084923245:7871177522:200398287 1475248054087478410538:7669560987:5674873640 9985439719680893526972:79851910233:32772302121 9640634981037703950103:46862077006:17369788239 7872690449665245128744:50917368216:8884665752 3332824758255180087536:52130779538:7780607880 9117868358529881330455:95964282672:70302463447 3362042138493888256689:736479453314:730249809329 8210825110553761250643:992672832014:4994748765 7302525956736480617452:316994512920:142867695412 4632846422003592014072:760658994913:171289709569 7039563105898093322025:144931698045:15172191945 8831271670068403271521:1398792261015:526507024591 3815167776558937006410:8813190666743:4821338180794 2984798041956226818089:8000644053839:4970846163009 3141777659937433383647:2957378156682:1688617227491 4817915685753673203689:6290297158423:1381596420970 5311500330653441156868:63848885558992:35556281439780 3217762490864280774200:81238997412409:25389122131254 6829521008089349495210:58956256192964:50649683305454 9303636690106278666279:94362056558734:4406074386677 7804021764407172742437:69337512593614:60893040239743 2239221187466573595234:377831510117143:97936754785733 3938340066691121256538:580580552809704:335153581848034 2812984063932373392486:130065189121913:96654523838377 2032643701463330477581:703874100927643:296049088588039 3179394116691813813988:788199670442418:1642073745832 5038382251908022481435:6516278019922236:2603182169528471 4090651229070568738760:7737660184423630:5632351881537550 9027209890673162897598:1843939035615494:1664584558700764 3507687630622796566986:1234022291394867:245711840832225 8884168826693765940970:8486471545352833:4251782608480924 1099940060082329462570:94291729029067072:27040958262067690 5728982047262405745827:21705589692608134:8703795414857867 4941919871428880406875:89185873949271732:41410025784465023 5796146153666526310632:27184928941103220:20269204967671212 2859700599307213127238:55393027661044224:35546305805063238 9626504915944459341741:731021188506315464:417905693297311789 8525624138159413927582:127390575796362058:9852987883195932 3997456793713907979232:833845214636184146:2834748041183308 1875689985074396905602:702551032849761597:581278398383203209 2417872437976916935008:808795568125201139:382484850690730537 8487034102263321916202:2126108159750619475:1736436698599591477 7931144180853753681934:7177555505407277173:7122902884119682942 8092425554549478139624:6648441576308302123:1272156182274455933 9072111091085103175704:6456854377220547859:230691090233433809 2292563702392520136397:3522249646254996844:3101432326772187797 5410928296473793706159:94993915367067506914:91269035918013318975 3573833935097300498655:85823938687154540893:55052448923964322042 9728478175260643059483:34298873061002528602:21897098996927465117 6298077621808621241501:85968102523026891548:22406137627658158497 4611586981835661694283:98612534960857133943:75410373636233532905 9008144304064114864682:859237225727971556973:415772046784399294952 8035251096622655731283:792747294215746699286:107778154465188738423 6662181410025128940571:902410665284426538265:345306753034143172716 4873390876604457454353:506603995429912110853:313954917735248456676 4648024304744129127613:210323922484663600916:20898010081529907461 1090603108783239525938:6671971390588594337698:1090603108783239525938 2968650935073739892102:2404962648499586732939:563688286574153159163 2795118729204460950808:3148768058197233710117:2795118729204460950808 3202360269547170383550:9171595396315063971487:3202360269547170383550 4165504982158820071013:4227946645276652792872:4165504982158820071013 3515753010060422856340:27322811919811134480777:3515753010060422856340 4547900491945274074699:74794813483774021332854:4547900491945274074699 6630616052600298139794:19801617787394532546000:6630616052600298139794 3681545040447260302760:86042831722607551804625:3681545040447260302760 8048727826295370155565:67838232318824405114253:8048727826295370155565 1294460991905812667921:7:5 2712314303550177034768:9:7 2645901086070728522846:5:1 9547900891444762090255:9:1 9196630847417183739108:6:0 3255981627327456782236:44:20 9996507800923256789677:42:25 3510105346306508343899:29:14 6417347686652177078625:74:65 3886197839757319356347:77:0 8156903605525596448302:932:62 1908470775679442735546:522:110 4323647936580255184813:783:205 9464815342510504754205:399:99 6440695017874343776590:813:786 3364348039039239161769:8618:7201 2604123038600204868703:2567:489 4000488324416556683873:7748:357 2532919484090911186505:4086:569 9583681966493940384409:2698:937 6750491767329546745192:53862:51106 2388441095279041955104:66214:23840 1915962409958795110338:30100:15238 9060330687088202052523:17978:16581 8196756953325712465221:72813:23733 4813072960716597295948:269604:230908 6798714629122141496937:980840:534217 9760001284043006445100:999958:645742 9160204482453004847978:918550:886378 1540214783301185374260:920152:301548 8873131686609733965705:4074057:427125 5030305961727364831370:5386902:875672 4286373301181584256981:8573361:1464134 4590429252756809389687:9516170:4205477 7833794937276987575942:3862766:3280880 4116026805775807599436:17266789:4757414 1547858638007880427487:88979370:15385337 1143172461497242658058:47518456:32194146 7567212030333913921624:57256776:50569504 6778175995219368738068:71790894:44814140 5435915327225196674482:986700307:115882502 5409473368245004426620:345474327:106628235 1188975977051789620636:659404162:483615836 6367882231600348597963:579670314:350590933 2070624982175672066443:123631738:42203955 5683358306860678996613:5686484108:1292968765 3321996857970239845377:8960912501:6853959792 7050603423197674286430:8382540228:1459878138 5447975627998624497633:9862124450:5084170833 2312967805907565539870:9070631331:488689994 2251675044802690937204:66584059505:18251915689 8627740987919660876627:80959573868:20352302351 4573018925188597637559:47788150899:10534810848 9521620523035229611891:74805340052:9773852671 5212200938182533688776:47718976617:33742502709 7217381151228233656292:249206552676:226735095848 7328375592309965197722:391349673257:345581343137 3737580547472788004995:663744737326:295365162549 3008186038741610697264:971749527523:895735440611 3786880380685778897148:858690349834:252379660886 7764284306461543145091:3776006345166:2150294079861 9507685052098024774514:2086993212919:1572602945893 8175220861513811065802:4625558543105:1005531571507 5694626876423998702530:6896176064524:555929254982 9083476312035994764818:5178408415494:3151441682702 6798835479013085071081:61656281284439:54654373056397 2138724571237037717818:45553518390020:2238895043578 5163136741029514323215:89893788045774:7433656323983 1114667967592577606310:28021320202309:25295271248790 7730962262302606766382:41374243394870:23851658987222 8323856808882563379616:949784133856797:897888956595451 9061370174562126101979:165737307128739:128504165683425 1517932541402221896174:239907309108680:131687527930014 4461304691823707421016:565771269927436:208501399958416 8981539713728001325042:932263023475321:280425800920596 7841793408437079665257:4418205004906344:872918898013849 3082362361750473225583:2411047565212137:2000861190496399 6139118048507242128851:2910072749023199:2386513160309660 8721764088649686552759:6381309620867464:682065525383871 7802262476266109476617:3090631170668923:1173486461390193 3205634866612666871501:24834946338651247:14498058579862482 6365358332981871859002:31537845502218006:11899578207272010 5924648228404493889424:51072861888726578:43030726544661690 4077798073228857134580:61825231366633213:53113211196937952 6777417304874071561488:20938070404644156:15171735613994160 1417852807692768838282:117711961663630453:12229454340031897 1686763032624474530330:140340211121569384:14035154332104034 1910449362910827343176:675944545141662817:230078340488222334 5623814307193008928708:226315711185870923:95199935302363081 5964403143882584358486:220400924501682743:133725942547650163 8455851700646528084867:4985462432408941186:507415280963833411 2390160828509781417749:6687730263759492120:2641124347642730909 1107538995238364746966:7121201595732133394:3752747899884070896 6692600248564579541244:1822271466489895861:1219423613681939652 8433940755583260453849:6878910870640855369:396028177571771455 3472572049592256614055:11777054181515702367:10118120226640118157 8825838854659065040275:61052664838300665774:34255117943769168819 5710120938561939282548:99524704993226886416:37212753948006756836 6257313497301565421351:74942535772032012432:37083028222908389495 7517834667073435602918:92322149940531110262:39740521890415671696 4110685933305585019786:473554965835231170007:322246206623735659730 9118383413418128612838:919035345894538383608:847065300367283160366 5919304276527065761631:579845674719674847380:120847529330317287831 1437757801312232577789:173202289174378616161:52139487917203648501 2098695309057728376279:133839198300302580444:91107334553189669619 5524439146037476176681:4688748644650653976141:835690501386822200540 8880995971098974584664:1032754639590280245656:618958854376732619416 7382207807165084758154:6298132908418711612658:1084074898746373145496 4545211631761137971783:5197056051976404907728:4545211631761137971783 4994765509218097593040:8353310033332529409108:4994765509218097593040 6452880132567963799157:46294060902010153237923:6452880132567963799157 8916109922883594809253:48949313020344217768938:8916109922883594809253 1947120390228596835315:37735394524273906566613:1947120390228596835315 1021939537777825388713:90207430590032855761669:1021939537777825388713 7533113063163624903665:68772564504879680419603:7533113063163624903665 3743258113446067192125:9:3 9178626646798467852749:1:0 3557641420721345977996:5:1 5868267223358827476245:6:5 6264859766812567728200:6:2 6514789971324311234090:19:6 8523925587547732330171:68:63 8059223924382273251393:51:26 4938098074639208307056:25:6 3678053628939458710689:83:65 1808302445029888666954:135:124 5090061404753797716720:427:161 5490381525032570496357:677:340 2234741106247096683230:683:259 1991384799612236918178:673:75 1150705493875201588757:1918:1847 7694100339586499143727:5028:2351 8832159068341855465819:9793:5017 1496873883507215214130:4968:4858 3550161677144897749300:8855:3985 2794622063152938156184:55194:52450 2997007655815778888027:22447:20358 2569597186311521835159:29389:22419 5952064196640540893346:42583:20004 5098544176117121729331:44115:39336 1093865126407847849854:914831:149877 7911111679588187260095:319914:144525 4235677738955417833910:106918:88850 6226935881733043843069:841825:182069 6592832815668455122983:653045:14923 4563963194858201190560:3844147:641367 2829604538574107516221:1092011:99120 2212015760166077230584:7039436:302292 4813190330785986972251:9677558:7869257 8992798280329732028213:6680562:2913551 3305855358596735003970:78892190:63342020 3261939232729007752752:96870934:2304330 6782620338394626377973:24023221:6610195 1162948681576242336945:31065325:19170095 7617036686457840983276:83678499:41043713 5995321467053612022420:294631967:241896403 2215146605502143296109:507497566:311361829 3049028634758762842190:230541054:185127650 9188698938979043404191:900830213:731628051 6065173704664366848554:308742412:302922882 3909613013830953794135:2057832360:1292691935 4190437010008988497789:1180675131:1108875172 4237688046511758046144:5490680049:2210917972 4951085156027788642150:5023958948:2844125694 7833825239106764563444:9121352117:3645386608 4428960869984226827981:60246127193:4772385886 6113131400196529927302:27614841624:25959003510 3509533711775870246969:44843506699:5623265519 9630035314936648862673:89902450608:23617585137 5959045262573136695956:53679547326:50782458640 8911421334929505557109:844382610360:587175889269 1314779507521681064228:139477818480:53594484308 5067842487946066034987:512944005136:171293431003 5170657604623267194048:403596649236:93808642956 9803817814071350445965:100520931495:65401895285 1343235127748675928279:1369701792111:1184529254619 2421218905667429591870:3730473224497:2603506358888 9642598366095027360020:4403650440021:555338097692 5799044296595854201411:1941719852314:1776983664739 5947225678500473107998:9359436120418:1004184510896 9067265184867826210719:37129586891727:35976172436517 4286798410452537464650:21012341019974:12440109512140 9605335064555364865226:23045430162682:3203808892046 9049784388364392785277:55970547490206:35487293289297 7033110234276272828156:12809249944807:2556314834278 9943547009333903069753:730795104255283:231571792801762 6194435906691481955332:738650618852740:280748957551592 4703159424175601711617:293437351028817:141233014195579 5181184637029964042725:147040478083372:36028652649953 1781092709698274027613:459557939178409:89352385510628 9642519907757193163085:6553603817603773:6002802233834995 4748632186978186229071:6290532982705441:3196328589399786 4473079055514264252359:1770183211509584:1328167484933175 7989363252295009960498:3414041254625031:1438366752915910 3903905740268557445721:6388852458740007:3834207934908378 2523264583818461835853:59603282016243389:19242942814205927 1000549918636543106933:29060528151154286:24994920452194239 1115368847256343997257:72631886035301721:33605298250769581 4946135957025708553564:55103090605115469:27441219938940655 2883787193795697376235:26088220898610040:21343884242164675 4092774144529442328473:300486876068891853:142892471135290613 2486338598035444813842:924608344806369117:66758851118258229 4550478397855380179442:434331335273698560:423329528114064882 2189322061937804915597:551981428354498168:163717083865181309 3730155136885947901397:246934622937111364:207657420880748177 3230225420692521772648:4053569644690749453:3583983518685208060 8714457021337507716722:7717597772831389275:1289135810869225247 8667315684681591537733:8615303681737093793:320180854075181975 5829783297881668952221:5552406611165037942:5308762769544151063 3798377229878946561909:9453150576189344268:7663848827019510441 5080586849161076428374:67788249412450043271:64256392639773226320 2545381761479267091777:93697326721284130430:15553940004595570167 4189286473718746442834:84946602975774100880:26902927905815499714 7871685108475002155051:60205953585083841119:44911142414102809581 5248554009688271844638:65416406912232709714:15241456709655067518 7913228423640197948819:374285836641271321246:53225854173500202653 9413759210954654773074:101382196164568483102:86597163814354327690 6707013478675252185243:920156689640434411547:265916651192211304414 7011195158567835638628:829758363533702626672:373128250298214625252 2103504589845530053589:496164395447650965518:118847008054926191517 3589438976461037874389:6628320976770807910636:3589438976461037874389 6868075790686359031082:1703396083439897839415:54491456926767673422 3362471030685625185235:8876457842973107817320:3362471030685625185235 3727731964437723310547:2050596499450470243191:1677135464987253067356 1067033829342038891467:6526100819298955039689:1067033829342038891467 7424610717268317346208:91128878086468100348415:7424610717268317346208 8933037487501233033112:12767496228635614052468:8933037487501233033112 3434822207943474135502:76225838319876880020993:3434822207943474135502 7097391930733997773277:43735710296753421199992:7097391930733997773277 5536729801391742424523:54465826886371388572823:5536729801391742424523 3688785369205640261005:8:5 3930844083950960789191:7:5 8494122564442850528737:3:1 4377933939622968811309:3:1 7058553780041538658885:4:1 3442605546007084872483:61:4 7801112175904306025678:38:24 6067697908971152225345:23:9 7015721568884339166506:31:5 5993114743618275909053:58:7 1017362076940489998657:261:255 4387474969370164939034:724:130 8330110171853388129915:338:67 9028939389278423925735:118:43 2039572703611714972082:190:182 1405878130770730845229:1171:112 2112957731408090095711:7279:6646 5053770957096305549349:5238:1815 7448449380868788040402:2378:1076 1730835057873201586169:9999:3218 9753122336950679031877:71795:61557 7046267377229444863084:79730:62914 6025615926430051745727:57528:591 3495430869464993082780:29183:8087 1987469043638058295303:70158:4465 9012208714538126723266:253588:93386 6548269541719883823053:622971:77363 4514754766852619434990:935798:575512 8010250212211253895752:625757:502805 5512806237458789912391:300252:236571 7985243162564594746409:1203799:443177 2048798500995162197694:9135613:7647199 4708801921072592721608:8898007:248067 3793158966585034634934:8105467:5635468 8013839601089599500342:8795955:7080717 4168208414074086317980:39962047:28470684 5449607765922430336137:57159021:5318247 7676725876669693506598:64461901:58427633 5954795925773691531491:21413676:14846531 8542687087158241782981:33950504:3909485 2542938131360623553194:882788727:48828973 9551207076141258035706:190045504:37683514 2387255350301914636921:770944848:715777321 1879195489158888921691:546177717:208476505 4760102749755593435360:536267340:524928380 2755167698075166749507:2929009970:2739917077 4071539829499570724183:2362229252:1458830527 7120626146373279281297:6021904832:3104200273 3381695243273153157424:7738773376:5362982704 7008991267231693824702:5908481815:3778980132 5416671408463481408224:64283517960:40382689984 7938116524806507028600:50918734432:1011993784 9441919217312385805114:85336328557:49517023372 7229088365063558720587:64531410745:3573454042 1033025044513963422364:57168657637:13649437335 3686713204127693717668:472785411660:222991253428 8771572633893428738110:983260045354:114976738628 6382356865686726814285:973680387676:743799507453 3270760240746689333122:812764976576:515555704962 9260274462865098122532:827503818061:249442107962 3616182194586076571942:4809101183064:3763277054318 9637236275310853077666:2664316206992:2183603205394 7850607486799396678180:3964808492664:3776231592988 7061892039244227500546:2435831558890:641251109516 9968269812708805927684:7649696475871:4480523658087 4055883202409433968312:31851493638787:1479122113212 8275514527284140709207:46304311236916:12376669202739 7103979125851163126366:90473302638276:22232283099446 7639369105314109999377:95764375384931:11350304860810 7430646097890529261111:51513712720633:20036930514505 1797363496101756433285:160726545708865:2888312025455 3387741342108594383750:328357290254142:44449660121528 6844265679264251159481:496855012629905:433805086921201 7631303499415936087016:174808548454755:131254076427731 2526990592211874088884:481049591245845:48578924373819 5441041519842796441277:7414323849810996:2891039747971697 8191343670722440267834:9094967797751375:6398516653130959 6095617718647205583271:1085203122097525:310934866830046 2732135804495648737050:3821375485549940:1365971378084710 4694223912535226950197:6645178523422718:3351804184727817 1491788832537991544283:88739251855042675:82008854724177533 8126767479094941534066:85193745100830614:50940181608433992 8670183743282349111276:62782271178386037:14875818415787613 1404000016666215375005:58007992639070446:32570822793370467 3872940570060346736767:13730792879115031:5668991402862845 5170006100978050482310:400269405247931112:126462795772239718 6189205497360998285044:781138151360540836:247924131433241416 4578178064991532975118:247786975171775032:65911717817483886 3257723162015023776799:874684460796731867:398230007994304091 6410536591032305420567:634979863778960557:414866183698597652 7172353997517197950010:7320392747436171785:5689497777185772495 6618977992987511515868:4882938720668330703:2596026481923413303 8946216214204887361720:5316640722693534250:3626518634362753220 9444057097147086937319:5718083118584295102:3501868364415723917 5500325409452256983206:9791402043177664764:7348863229587050602 9955350137342587761418:41934843746022825171:16792169535178195891 3555667899469583342038:59958030174320225882:18144119184690015000 4654378406847357587585:36446291927104529516:25699332105082339053 7928219846601877299928:70018656588822430372:16111652064942667892 3729036210307310370713:70891582701619828304:42673909823079298905 9626436747282724325193:693825122748709116778:606710151549505807079 4614165527750398224148:996514117053313964951:628109059537142364344 1075166484635242287967:398788991933423538084:277588500768395211799 4219303840666311152812:250627460612274826659:209264470869913926268 2522810171719135027622:180437885025945721926:177117666381840642584 2678360250534601716320:9508901860317761808201:2678360250534601716320 9097427217933570486907:9184295117668936069912:9097427217933570486907 8892986560604005710110:7492817857858430072925:1400168702745575637185 8929900923490342629922:7027583293546294181628:1902317629944048448294 7160392774785090853748:4609845787316568744344:2550546987468522109404 7375877642775848537264:15727405366699825116676:7375877642775848537264 7199187308734127555933:50762386458532534328409:7199187308734127555933 4911813885216746969655:52773213154290915033597:4911813885216746969655 5855129771503246382969:49593646707955974394012:5855129771503246382969 9129604952516403444434:86559322782331820721970:9129604952516403444434 5906632512888918055913:7:3 5430390775488798326284:1:0 4159316868372511096265:3:2 4498176845205780326689:2:1 4989922378806744658414:5:4 2140053108518217738745:31:23 5702613653214955909146:41:6 3300846302766825892217:43:16 6704720680019898883592:33:14 2005376844481138105429:52:49 1527100634308989488748:710:118 1032283423310688421680:824:488 3458857117448025936161:857:85 6477482128691257527007:141:112 5411886158829398032710:967:726 3035709646917034523843:1729:862 4367427184544586951116:7781:3882 7955563947649883652432:5694:2022 1960273287382579723205:5101:2372 4755691170282821896109:2135:24 7848110274109082649350:38136:3710 5402536510916480100150:68986:9304 8436805889843534464875:10455:510 9703677523008863078454:98323:86479 3751448333653978478599:16339:7283 1715094920915499841314:784071:211758 5332837539167938092240:620135:437670 7586689619176397189525:171297:98219 5313535217698175952344:361239:269732 7298179518026286628496:920907:101105 9152289137621138754324:9867659:4803567 2106300547719709030836:8265707:2203402 9076479778371520799261:6901087:522024 7681994947343225791767:6486445:1836067 4234524771169006851337:4013885:98072 8125498498585247688478:82455149:66145453 6413963722840458341035:13983550:1357135 9614534440966447247826:15786463:12957284 4722958127707271169546:88788416:59447754 3308999671641196942033:21953373:11553595 7224068108304903669824:793368649:103629815 9314970315391989877593:116020707:65141040 4260971230118301668882:870096893:789176832 8884071720637024158111:158380985:114578881 8781985841184189652406:860225324:484893006 4709530796514934246891:1161648752:177269643 3543593703174579441441:4208628150:408186291 5129471176534491035285:8369893875:2091739910 4495952431493317710912:2743745826:774207360 5566862692264137172383:3566266785:699149613 6935960201525346444522:94935162509:60005569759 1281052185982007019491:59816177395:18879621606 5935425360528234581468:20611790632:9475170132 8599284704511758561192:45193809236:11429834316 2377167811503963482672:64262454677:27788483680 1803369246789042911115:813524118361:557937002869 7043060798985925473015:617835457902:464627485539 2057110889729159170985:323636541468:188950957625 3950390969389330133217:764755523078:570688006459 4908152541578807074344:711476790657:707888423262 1060426254162349688029:7922875040042:1764108576115 9037474076245743562962:1304402796114:248876155572 9336968860128178759387:4783053700346:3629621649221 3922938593715500039386:9496362707737:263026242533 7428489818790675775987:3921065833078:1947709268353 5640232992765482699815:14611023330883:14482098087488 5069217975281277137414:60487976416823:5262434396028 1957214060997030424469:97300384064798:2567175444415 1515441135956337407854:94248296891953:56391074160181 5763789540693579924144:75042225506466:14226402025800 9362810009282289256608:165909630783576:126533265185592 4686222900518183521553:236259775126468:101714360303429 5603897767824748458855:925011050916724:444216305705675 6067921324979705164018:203940198534945:87923322412888 7938161743717633558482:275847663813440:9800237922322 6006697254272723191459:1961637393274933:740161236526020 4843552879449633483350:3380213642100012:808907178988394 5683066576118036087966:1840992791184680:992420949869206 5986378992316528167339:5796509052231159:5286079537554294 7405415752278541755087:9479042043413891:8946281873550247 7242977494816250218137:35550818879005981:31410501966679102 5650159197073256648384:94895339921583501:90658142174998844 3293576633672413724451:65206641157044200:54395471268226651 7964684257853645548450:15752630883249512:12309604743035642 6002579211935829792838:92830512317147507:65454996754842711 1154936227907787699752:817081881224126313:399529738097219483 9215370736277572947496:985598607442282123:23756692235097446 4397979074170581254032:324724758433532920:231670705244918472 5329068001611254814925:903284036384412359:595470979606309184 8115388880330715941233:732014030723713455:281335727628579103 6235075879926564969911:1061439898410026447:177916666069620233 2624221997973117036432:2898690083112222889:907472756555321887 1906210047498214046980:8040750153986148847:552261003496770241 8246892817008497055184:5170519517240946119:5084706526428941498 7060015498180825882942:2802610567833849446:239477807359128468 2952774602415062215733:14816518394617976163:4287441886084959296 7471042390946204941555:14903025659771151349:4626535400858115706 1159118542350917292055:15363395128680677697:6863907699866464780 6162273684480427432190:43840148164208078189:24652941491296485730 3849760367610230483076:82185839012053209037:69211773055782867374 6747428179976814599743:122249753595184869119:23691732241646798198 4279676956604193388558:676703442237577411053:219456303178728922240 3100870003053952130100:480788680696395803423:216137918875577309562 4978733381507291548860:930789497571747623281:324785893648553432455 2921978718619107083108:343229691682638385378:176141185158000000084 1532430179314045772547:7013502746544277723872:1532430179314045772547 1319113086093767558968:5038295255530551072643:1319113086093767558968 4116803121305283887336:1490449048067972647130:1135905025169338593076 8776466540110336537605:5257504668603549999698:3518961871506786537907 1343828356529382633869:7860060986473512370161:1343828356529382633869 5189769784939363829049:97396872456865932503689:5189769784939363829049 7425454089939974482325:19332910876344114865111:7425454089939974482325 1354469480753973462533:70839691260612404072325:1354469480753973462533 2193842643800596452333:67257359447004782838031:2193842643800596452333 2546430392678769505712:93018044672316560708067:2546430392678769505712 50375893766511741653042:5:2 35537516914512501752556:8:4 34855190240518353584019:2:1 60737967546827860805178:1:0 76141208169508326274825:2:1 82937250492789467010297:59:26 69723184138849065787548:95:53 75282781427587666076830:35:0 27782766719087232630481:86:29 79894142352292661986930:26:12 24713285022109194581374:530:134 62773038087148382162820:889:707 33287361602449094750618:872:338 50420144050640038777275:367:4 93945359042533524213474:342:150 13433198732435034899473:1141:428 45788536482992637022553:3289:2009 91176356590504399059550:7794:6010 92690766713209473844138:1165:223 33990598270763641805745:6246:21 24675381941015545017928:50858:15366 49096557856767224023456:51254:42782 50930699661391690760354:45835:3399 62883259408732644813807:15101:5396 71613374822447026577628:36585:34473 79741383534870587185045:636071:361542 29669839525337214640320:411199:379497 39304932114853697186188:439144:365084 61321538540746370594456:499362:400430 86918895394339265897487:649375:472487 58073338340757351048462:7621869:4603530 94810543402525307642652:5576953:2979879 18317830585492679072755:4955807:1041123 65934103539807692052292:6993670:4329812 23659831240200400890851:4517047:152884 81384460484666530983007:45616276:19626243 12120370499190066794252:26989755:12580217 92563964565354654674633:96483085:68145808 61316629921017656872012:42761497:32803344 57517290029470749928048:33823709:29337440 15514523404588573502233:829160768:572549401 32484485101425748218431:902496737:890137923 84129761952169021080801:578280598:378255063 85350349579271001285005:907549568:722323597 24002460591738367050569:411200821:179979857 50685291181421592997104:6298657572:2879720268 18664817070098560937063:8507500392:5274454631 86224901614308130651876:9215130107:1951747645 87284622787261633281401:9741369201:3495060971 82416606547495200706973:3224204172:918786017 39678838799608624894345:11972302699:10366809583 74953380348367030592328:83407152355:30383892833 47477934863217640571271:28263026568:26299872255 56196552427445702690794:41352439361:15899368842 88893489395182252481207:12803207124:3272879399 99366770942397095931960:318531524270:65921311960 24485707843502964361501:140956171017:98267491522 96665593692643764436485:238754167288:139818052029 23652418678262436688439:241766834162:124265589975 74986454942464435426522:438121448440:180776158002 20321724329275856932098:8933643823984:6850337985298 80657659248476281373406:9860898342589:9651420043423 21441198309535984493880:4815400074513:3853711580007 44171724360669614152289:3313870377306:2801819249495 39919454706845774634042:7533397738409:1786706249029 17017626942463839667892:94288978089137:7603230981197 22905085275795835204425:45825736151058:14166050139855 57520705586415155138605:67474099271293:27568260872989 13598549056581013056280:42130091522795:2251820189920 25147355749455404275636:41178748851629:36125207050933 81657449770048291895393:644776394868682:507685612609511 81863624357205958924559:169069865755158:92514696468983 40221441916191080049091:164383312349162:64498431417033 81579499565511356254287:971233291453502:716673830579225 63748835354446352302652:419859391632375:213277618734152 51985323033492583198573:7680884754229566:4331231779912201 88305501417189462880309:2286734702351878:582798461299183 73864249633109961972313:9278113518462035:314103338196833 91951121700005152582362:7950985412462317:2906158634368197 54862500336931230871942:5996454679199180:1030007977979862 97331782759945922778715:68086935846377839:10054960181615757 82669544739547714626885:83945075804857428:14361545095245345 31171069018013010062116:92941164391072254:89539877633226580 60829408061870181653533:97595012420722989:95935244694900646 43513327469593915528052:16523535647671772:841980356066672 29873478558717179245403:189748043068922682:115902075198959369 67683502679724358971414:911277640972538485:178451771008075009 66367823786667686670893:220481702674239814:185501289411779125 43498020093715571253909:384424628294178242:373402229303171609 34103129066466164772879:802959420817603270:639504921736292709 53795560112841764891997:9864830956759502320:2636905632198741037 43536656459933612017977:6396037064292475713:5228200359022315299 68645230641478802405040:6313700771430497707:2675854486431334536 67042033496995216197158:5884036829977756472:5201893058636711662 24133312732704480052040:6554725355380186624:5368699550013089096 29884244958094956943153:43646843749336895338:29803833548520531961 19201612168703233009467:51542875793948195230:27662373354504383907 34413203674574722312713:69231594311338482100:5101301839496709013 95908127541877200356538:42337377527492277041:13967442107192858673 39152964270182381355815:20486636668515059005:3001596650103597260 71834457444896223361388:187754861804739976867:112100235485552198194 15910683801139826293499:472036482996485620439:333479862255800819012 47185230792812565588561:627968995998857688186:87556092898238974611 45132077184070330229949:146247472437117504239:87855673438138924337 32303881152634109834803:963047451935491760807:523315238762881728172 39772385824337439934021:5387610608817885740982:2059111562612239747147 18279693609416680059232:9180063575536676059541:9099630033880003999691 64522886264043743918142:3219869198310572800384:125502297832287910462 26279498640792912151481:4593255203524691566097:3313222623169454320996 66360293159031900486756:9578513069517747255774:8889214741925416952112 83074672528770979111107:45582751630058356787915:37491920898712622323192 81821534899662034316492:78256082881679496606019:3565452017982537710473 76318510379465147457567:45567280359151769111157:30751230020313378346410 60761470067645549755800:93354532128179967041185:60761470067645549755800 22454759005009707155215:37203744205762719770438:22454759005009707155215 62739331512311474320888:235636608991620588119696:62739331512311474320888 77006264553475003357137:360385954235609914497293:77006264553475003357137 47139164488600125616323:666784299150177251666456:47139164488600125616323 46158894353785164965877:589977760758205236447874:46158894353785164965877 79982698719254854095287:986654244226334300077612:79982698719254854095287 25435055687532239643632:9:8 28929473547095112858024:5:4 92555357203559415231849:8:1 47028705904488783067198:8:6 12258155082857433563143:3:1 45430692213292621049051:30:11 49252536401952053646335:50:35 15675754537537831684068:78:30 57072985186275494303564:89:56 81442561036475598549160:58:4 97071428087394560483327:276:263 65038636830774874151779:845:479 20430324274977072478999:277:273 18562631936909794187831:246:215 95558747003144287349534:680:94 43941592279489677495522:2963:2911 53600736264325727368731:6355:3976 81624695165780610718225:8615:2905 45330552067946360165284:1090:884 58161587841888987479284:2613:2380 92598644093835400415027:76913:60587 83883858419894909006272:61253:40628 35000170210164316263406:32599:23687 34430742067491590086664:12327:9890 41819998857494105710131:97930:20291 42468415462297449859463:753113:2484 49955818259238254210659:689709:551614 30947206188593349074349:838209:149301 57711409320018040119000:402284:161684 76114896932082960433665:782730:367875 43983654272400588687939:2133867:857319 16109777616023003880989:2409036:1368437 10304220888213432423174:8841110:1773994 93914894145844574576829:3853731:1370760 40162907523357105120300:9773373:7758786 79648010106908749247247:85101723:75109092 11392485384636455565807:26917437:15149448 61869574065593696006874:65077408:39125146 61699633671005732419609:57161615:33952069 40634624035268789860923:13147212:11229495 11419220064575843254351:865884039:534650548 98007906833993108263559:125150442:2317391 14360220923230918321413:630570703:471381080 36218202630605241736334:973336895:263690834 12213714001065851893579:895383132:216059251 40610240276646441340624:2570044616:2397176752 72195585739522913588722:9411739241:874763001 10928575621985028205555:4153196525:3340664555 37671928945150687627778:1381649118:470543582 40886310329242844268847:5449755560:1244832127 66199214893094286880630:66160867860:32805447250 73782143203286139475871:35165982568:23057384119 54476574472493279809732:66718978749:27303934627 57993165273389179797832:29461377129:4463576977 96011388493734548864052:57669388988:56832285196 17006749882373444604981:556398108766:204380456137 78537048549135306596934:626474428322:337553178524 93881638821431202876534:734407908916:343931076438 38618608613628524227514:244333221683:26820715314 99414322879064346414343:837687840008:610128242831 87518984930631718375387:7454499094325:2761314169812 90661975462153694427238:1524417685465:1238480359248 42879856278792884141812:6440404977365:3217783686867 69145360611875505024650:2154128984505:388102432715 10863026321424531847763:6484289993037:4404453309239 63039806419624126482715:38111064366133:24409594777827 98059535768619678363347:21003044111850:2352086949497 58990496157111762745105:92046596282710:20725592717475 48611717518482018182445:29855910361741:2452883113444 86720147856876816720282:76252372487915:43499391688662 79138746399534459951966:195441460282367:68788361563626 95886220119709259468367:536646948412560:175794546125967 47056795855822120215928:989991675821340:684977463524488 19457318034033230259960:841107040093608:651046357706472 24525439712643698764161:324408055036141:324383132949394 85433641899053548677470:4175462202387662:2480539478239586 97659902963767405695580:7028890885951926:971989329216760 24953759509997700624736:1330664745301595:479739194225796 66646261795776895489351:1656940656228770:1046368974968521 24092061545863475587726:6982802725073690:2566616955423416 23591891602814355389832:39951963470292964:17461825538390048 80240992832616263635595:58861027129498085:51401951977715300 51453571684815151357129:60087806951782032:22065162486663337 36937447120516491744613:87615658909253858:87174917613273541 98955773538214876803738:21870369541211453:5993572475987288 15879326196475528864105:607122443579398974:38684656348699135 80555568506607378817484:701912156749248590:619837279864386134 24414774401268879207493:880837498127539565:601465667865084388 22972389802302438477030:851472881228896627:502939628036377197 10698631085918177100636:141374647939567532:104603091404116536 43921963235689823963195:1725773429329970281:1029459242080311745 97982991526100005263795:6504398061321811265:739130348240367835 81103905344276960755177:6688036372233619303:4776294572093086999 61313896118100915676549:6082213341203689490:5185638767725617349 15431899864857548548799:8776360999586217455:3057227584978262909 33900117740638562873775:90407878745784168569:87571089715283828969 17371978736130753592712:46912569230106116203:14328120991490597602 41695787712461250638308:60509784187969997833:4546406949922131371 40239473092474471833767:88536342416202401201:43973635518581688513 82668299904639601542582:57532659349002757652:51401079471641554310 34985719286247867445730:656712644039016011116:179949152180018856582 98720705834048105341032:505475879126828488669:152909404316550050577 66511842347720028359479:194309197268322496648:58096881953734505863 47475261598157576412860:165907339270375742643:25762566830114016962 47489315974650851142065:726350068644216796119:276561512776759394330 38657298131240886125053:3353613635112187148020:1767548145006827496833 64311689756207334323040:6268322685824971763796:1628462897957616685080 60466653661162701951862:6848432653755522486394:5679192431118522060710 51284256057316803989771:7202242523894036754453:868558390058546708600 11785083492796249527321:1048887633068079231379:247319529047377982152 62033119705514430617461:63124920951389165577284:62033119705514430617461 23406019169104782294515:58145556359883965916713:23406019169104782294515 90653520144211061099101:76803696952655785039573:13849823191555276059528 58485528956043931800993:46813161149062546327371:11672367806981385473622 77073601703557091441318:89360664954531951946568:77073601703557091441318 68619049663592018389540:953153960675920275126796:68619049663592018389540 81276829806142537250062:945987817937282641982627:81276829806142537250062 17428368323339323531330:272644238438903572082000:17428368323339323531330 73063161209658985247770:258968571237238842316804:73063161209658985247770 14368356028076263336437:197468660415844471526501:14368356028076263336437 77419136617698663485157:2:1 56296008074360872192984:2:0 50773845088690554505741:6:1 82161715891626480177827:7:3 35998785426124691874875:3:2 43155552152769177226913:47:42 98211559417945493770690:96:34 24431848611098230705241:18:11 92612324268396812591183:91:17 83576757501641323681924:69:67 86378850859767468128377:487:271 40728816411665016234429:875:179 42186584778667799018969:158:69 73291721169624440570995:794:351 52557445954689555355158:242:166 80424286392663190573546:1852:1738 86991449824424331115940:9437:8995 75221500647912718527004:9970:9284 12070656624381130865416:4198:3196 46919704635633106778045:3045:2120 16912083008503947125349:81644:29869 52829027003373596723571:30539:29661 71597819547007549160269:25082:1561 69077248180669155060796:87431:4807 94649936881721940962751:36049:10050 64355251757658049807161:654416:219209 36356834685306417569777:787402:175203 42377662242748954937344:906744:536512 41885127052630075033680:490779:13593 43219098515916699376444:767767:66510 77022986399134799747708:2062216:170908 95237814652297288199025:4717026:4480737 41049477877685692285472:9655094:8496534 39496370124075727204892:8750792:2613468 68046452393202639922368:7476371:6401883 67580215037563662349576:27341100:22385176 98568913425870148069036:96150653:41561591 81891634409072051746784:54400606:5957462 76813434521768655155963:39487310:19429503 93375693922776970798999:46264468:6010427 58790070624826827290138:106138440:75010298 59985661717780431125448:263808961:194898152 58330665327177821790637:131595307:8221301 67095356596340347416132:755801282:391039594 20332056648408587709425:439153814:201783721 10664390620680089366209:9376060467:6408302230 22821429502121826382192:2717599580:2477810632 94882293648878507031059:2676547920:455480579 82252955213392176758870:6430273234:2880011382 33626520045188417539887:3020019511:1407290769 78772866755348474794500:89305649077:59365363838 62362034183822148417750:29380352748:12691899654 91859022068662314139722:61060129831:14659995702 83371611387207998057941:83978131430:69034625041 24949608901519588490304:82937455643:29234575624 18975537680635511324611:735805355715:14911411246 19018874214010523565782:503841014464:397659125846 91571185193321371031623:533983830050:532755283123 99926739616903431419385:179845887582:84048604209 68352560120836676998333:391219671591:13240076968 77509244014353324531667:4375821268856:2446102022019 87319691502225565573247:3912780233026:1612809229907 84418055285914406107951:7093250534927:4643849642882 51939798425297094426825:2006892640726:1048720745017 93840547442262298181050:5363830020703:4652716139002 43309134292241176544220:95727496856353:33528240538982 40331969010877924995131:32253335054043:17507913347006 45364148722282134471176:39630508061673:10194382405691 43915870041188088701860:88805210535568:4790009955668 49826258214968017754045:17252079121203:4829834521343 90952596953619280407729:535153852413199:51112531840908 40445976464298789136014:663055575882297:82158022689342 50461397627606831787914:451659099596172:166615022461958 65529826052395346688211:816610579911058:363246476559599 36509885124573923856055:662231397463360:3174778656375 19116910199908779301007:6676509720813625:6504225360329507 27690463353861487395298:7905812324948332:7829987656838690 25267535740480759929530:3369754746406185:2632860870758480 86941964668052925712150:7682445954534066:368645264016526 28224152501069865445335:7292768862405081:6624388529187780 63504439848950690708486:68331940810159341:13993147486831454 68632203879564262859618:47065824748723670:18111954678963228 51175975653250741033105:91237498667329460:41513257640953965 15793554988760860238796:84364866383139970:30177505142154946 83010920280745254102351:60839428532961239:22165231082618537 91911174580276287655738:329008902049774955:234730357305551803 11090885523807220769418:867268062716029753:261537794632288054 90097855247041644675138:725359593464865527:214783177232700941 24246107257206465119828:636436085871685048:438129838751531220 87502059245671075883543:542620775719260097:118194734631161517 17411187261137860260206:7431700031829177343:6145786593926922900 79045691525388639693180:9603698615644008988:7251918638445721940 72701145361931544574285:4432414889355608304:676346720857172077 35313949926506563997439:8124704258582494399:3985218707043339385 70888291188665379336169:7426057471696528263:6572621322017065834 17586564640191039297894:21348184882726670020:17008481706989871434 13449629722666967384006:40654748816930606333:33562613079867294116 37996864307599932675761:11637834041745886896:10973995341357847217 51322167013060032310345:28752016342092382020:28569858767222786665 48587728536186383338713:40468863823320860505:25091948201350732713 25487054647829647436970:433659219932261555557:334819891758477214664 49760108049102869245087:113275476770709917694:32173746761215377421 88655118285319017546895:620682546551470458245:518196675010212476105 81992686963592360974198:439232654371182400773:295413250552434430420 38745442481400487716826:156252731563294243854:151017785266809484888 66459245435267635104429:1624900652451608236371:1463219337203305649589 45733424643424940399064:3480187076868830970812:490992644130137778508 50069416158873744166406:5205817588338157837055:3217057863830323632911 89512133553467475056344:8757512071066303904774:1937012842804436008604 14004756577023436919091:9676659644886865325689:4328096932136571593402 52032889224737453183615:42349567823404225463083:9683321401333227720532 73146867650800887083045:52525906177873404824093:20620961472927482258952 28836628684334855191256:48142945540483572053778:28836628684334855191256 63639792543744696628863:68090284705093665954457:63639792543744696628863 46204386472569014442509:31097056670075441596703:15107329802493572845806 92360271952207795385271:134552299785891067552817:92360271952207795385271 58699360141691656124171:283645007113217201896419:58699360141691656124171 13952412804674333819209:666692448279833915019335:13952412804674333819209 50099189387353338446053:193178141021320485997434:50099189387353338446053 35937858027076116548239:916922781116687502644535:35937858027076116548239 83144004898510832871839:5:4 34445627640229601213858:3:2 48764669494706085813537:3:0 26588002882771755336980:4:0 46598761187557268477775:3:0 66965369743858195526199:59:0 35914279838622172355388:96:60 45892163651937135473021:84:53 93997637921446904469225:85:20 56338126633060565074033:57:16 35591657038443820944015:889:323 58719168956933927116831:602:205 94089379013166581626604:922:546 16514411329090449886674:194:172 29844602594379661627218:687:165 15086707658559216198205:6675:6655 14885659172478087521449:8961:4276 68709417705033778362680:3314:662 59082046681548031188490:9406:8194 42215109530576630900536:7470:6616 71082738476304947865130:32893:15120 47039392201554742187833:19349:12141 69095749512849050753556:46493:9437 64816810841947379570062:67839:13165 72396850553162363584626:40290:38766 84722229710555369541343:327001:278144 65729782900864124408387:281407:255444 94086188237000001592673:446912:392097 94806562421632849302183:357617:244276 14090885422292330178443:889663:722793 25401307739172205703338:6460299:2333098 13496748164157353821629:4661943:917820 98875894518742064223070:2694114:1307908 57607685825189269524719:8364328:511839 14729417619826658233235:1054009:489129 86383639235597693363343:75493821:29826090 37004709281193706686622:31848198:26758396 97424443417060167309984:51915536:30387504 60239514107930116053308:57064935:23566268 73247087867347895040856:64657678:48861056 58187842770060714967740:322057984:38721468 73488195928523045754248:631578621:547001633 70688661647863825723157:378260117:141486801 15581174638696254577414:787560908:58129234 22838263040515827245306:905256710:22567896 50592293612865859766869:1211850429:625769899 16273526124227826589175:1276927743:455768 37151076001102969012158:4237345205:3328927383 77065420094881633872016:1899479085:575693671 44958655328396865391283:7902407231:6032796329 44772248297272018149694:84864518274:29277044782 90810021994629953452070:89534707884:12984687662 58187442993133413887017:46573048528:4471678393 46417051048546049905049:23834322739:23657304012 60072946998901143188432:85070999203:16553848402 66586742378893000637361:632921546488:333416322073 62994597499008908834021:749429438886:749338735085 58056260290117644636320:644523865961:486448436207 41458448336135774445464:434326725926:151559503380 28662449026542080157235:884674321397:793116470590 10131885223062109013139:6927053057675:420806590764 90303853765641876717139:7454059039641:5760455069962 71271549952763764798909:9527597123309:5059385384159 71005971531627654196974:5520692531341:1656422265836 86760556854818806361454:8498983367041:4600522673441 74841458904841071583263:75597859961057:59833963930836 43490943625876430977161:58766252582982:2501347809843 28740957459879037267954:37522810973052:25993272676546 73936390320410578885789:82396905505797:60711680915353 79324848824609784748199:79047113379212:13514048080083 36936946050854801971246:943540059271079:303798373768920 69860936211734307166942:478152044098962:103582426111198 79816028773104832877062:921674443665206:769957165725834 55537106675656718653245:367033418867323:221310485167944 80302115361935089530012:772474774505337:741886661153388 15822105723462701005040:2415174049181455:1045692890799620 36189301249106670540787:6252203918335811:675411167527470 18761915067158183516596:7334728058244266:3422203913836300 95704735870158248411203:7489080527687272:894757537639739 68909311737966683230975:2682561028767297:573193752436021 60198016652880736173920:23900333492770480:7681304800493120 67857683320769049567577:30779972795441127:1396075563777742 46395200515619621818370:24175299756660871:20123115394369205 56473922503155884453586:15445510042989740:9876651122419906 82812977245154749128254:34727349644824766:20913777277813928 19059276532168695352590:460916485838168747:379842760417664140 75583826663364513575048:852760748343779951:230494661921398114 18708450458905206557612:231915056994841058:94726188373249810 96656570450809608598355:749346444441854506:620621588121432933 88716805210204308472248:948008084330385706:312662398153333356 12783753207362430745040:3298622418315682346:1591336389161654290 32253859930233755312299:7705410867774707526:6715448596604315989 51004202700643199733410:8102097845773960935:1496761496115647585 16997443598477354647857:3740881218782894649:2620221546664257450 99398341035501182466365:4857360428465340151:2174587814926956452 64659900401426224232666:61668617548986582922:31189210088285330410 46497725835177805735035:35852103623845603386:33399538673903746779 86536630304510639689627:37176659513455603947:26543616699449304958 18323691273138461495825:69356861525944757996:13479830289045384881 22654489066340295032765:40823406141192945449:38322064119403254019 90921352414787317364961:134195003652190181287:71334942254564633662 88204871765412519194019:302809624511854406493:87271032462886904556 16580486047611270383976:503015594658510798823:483987018538924821640 35017688143755744659839:323432359663512644635:86993300096379039259 89385878381016674177666:789273072014455036653:198021243383255035877 84618219839653330420592:8913118990747953898931:4400148922921745330213 93389651188419568614810:5537357671481894720521:4791928444709253086474 44407908558095123528766:1088900283732966906017:851897208776447288086 13819719214382031697931:8860763359152410583960:4958955855229621113971 60341878323591271587139:4534374385180489351067:1395011316244910023268 44608914103167410326210:57489512873315998051736:44608914103167410326210 52295871543320731037896:90402128080586267249404:52295871543320731037896 66410163925326458040266:78306104861882386003020:66410163925326458040266 74863587171484947375233:53438808535417867696409:21424778636067079678824 67261265738484738270396:94331048859908902105420:67261265738484738270396 43988442783343675650417:622583888513907338873917:43988442783343675650417 51507635498483428066118:804771721887237757792245:51507635498483428066118 29332039265715525330089:926690509686540442638309:29332039265715525330089 23760238014025970910017:335870847439097384655290:23760238014025970910017 72622106500929031370821:666821187842210998303649:72622106500929031370821 60168628202200677645042:6:0 85144613877204915967613:9:8 55543207967087193946969:8:1 17860337509891212431387:8:3 70608070257309690493790:3:2 91118269794877840754887:74:5 52662612040217064981763:89:64 66872211590731092348730:87:43 38608494743840309212240:41:32 30497814330660787426096:79:75 14478079294718176411280:253:61 49905548456601110940621:743:75 98792327754036929194658:957:806 78060394821916786242636:219:186 83837513869324628502604:321:31 61601795997802954742965:3187:1804 66343053861817348816356:8969:1476 53623197049823774692232:5340:1292 66746982628062815694327:3011:1745 62356305223339055567810:9125:2435 42771218649974599030872:84763:3762 54030249048619382220510:32392:9438 79385743740422548651278:41247:17562 24332558501640946501916:37462:4992 73211369038642237211870:21260:15950 97084836124562127968320:884491:293344 18767920193202208807535:313432:70463 87169731427401101803426:195268:145290 27692401667879765755567:999955:306132 60629848363872229094328:310558:172610 73443561314588663365467:6802096:2094763 86238697820194331312417:3416552:2066737 76915273278942285344270:5062484:2017730 30786703084740000819228:6137646:2843304 16318166732346591986216:2919493:1621747 35192929709329362688629:21895006:11883013 44899192867304647438430:36203688:5343710 52886843744181328622533:27701885:15757683 43957210297464044116982:89237386:56651082 53653954985892622143644:98664203:28107204 47257174975602174030185:354023490:6266645 16040531654880668590747:275257791:114944989 34209803320351029433339:610701461:374044289 68348892831121635853617:170489838:137888733 69800741404370632296946:114431087:76044264 12572089604414463678694:5582638324:2321931614 88594656611543975478102:8126408499:812249361 95046330153783171330567:6483157886:597935969 48514528807606436441647:1295214691:1051331934 27154531574703134138207:9270930542:7018349335 72429083365055710035840:91579667330:35845309670 54792679367261084228596:66285537791:65312052939 20825512039898985141548:60780858440:36360688908 57361625763498967785121:84727125054:40831412869 50969375122681536545708:95830158006:58957337276 15578614977024335872541:206194317292:138972040249 87484360759925090818695:697061475036:344527835811 78043698594176955658832:671169914029:332408015544 10455613896424472062228:114291582133:61656861620 55771360643397628557736:943716324416:261953257896 22211345794945458046726:3792081314572:258113302262 26563631525742777306090:4281387131916:2607432064674 77015855469303191661188:7759309669271:2801085471542 10664701311374780871240:8960920822071:2510256015468 84157076799780004187363:8675681855398:5011694637975 52426690777546676412319:58212950601741:4511920998433 21175908878637397452544:90254559214894:72234948583680 60877449038457527893042:74062134197030:22033821716392 25355377793299930375437:42232271032741:20763378464381 98709061355531959038057:83749801954707:6617234267442 38042696812294872066899:881501611145519:638079107967194 23148617701396239540517:958420919736653:863295505659754 26651977614622397002462:954167539698995:53928002241352 80127837791471627268065:951186239039354:328675394086049 81272767223898893917581:511489151862678:217278272087601 78149517160927750365780:7687425498531352:2847088362913852 40874318576915582039396:1468618572569948:1096821859883672 45912340830308045876698:5155509495855069:2570065687447888 75429380033339114105275:6549354569564388:5000846188002115 73351778097979894249799:2151028064001771:293068301732999 22126431218975315876387:95688747301564341:35114192688613934 26108516082182036151438:22281712466334177:8626604829588396 19073915808927791045869:64234820695127213:28151716716417649 85383446931855670411834:83224055773822445:59806925628253864 88588229050466646445749:77053428169368929:56790999527512307 75408174391672470941283:710030812003085448:62033696784021891 47118811864456785653379:880573959723562188:179853608696535687 59187158040829640206716:437886675299059741:205574032230314451 45257725354657261312617:435840278683235614:70816190075154857 77997073937717526682697:473975291069644262:174014587936572239 90165064244599192819012:5714467064544311482:2202900219046256016 18024701694199453013663:1819813747998502086:1266334022288353919 54495463778799349441339:9689143095461515554:3723009923785965643 74069292451133223236230:7014821337402754740:6808770834938691310 16286254629747043973436:9107524075539378231:2001582682635696408 49754997926143459080431:90027608265921159333:59758163354979128615 24000447241416147288730:75814701408473434229:43001596338542072366 31472526369921474842624:83467232714962938536:5379636380447014552 33324879462105172264561:44549716567076507708:1691469931944498977 22874466609184113598699:93384666991462766405:88607863267198595879 79437305479532175548582:192571814379449383687:97717955199029469538 53550886142685997096789:134612187330335446600:109847772542824796589 39046647357312789266231:273869822830998117439:157132515311056589893 11387060643662178138399:716908264623096266561:633436674315734139984 11355542108998090333578:537063754090134994512:77203273105255448826 37811329753370138795638:3868536481089712377617:2994501423562727397085 10879629890863958124169:9468476353701815020964:1411153537162143103205 35867433044739486604399:1735853826595727289331:1150356512824940817779 40562843432722509318560:3721576144519390039171:3347081987528608926850 44689988324762086363898:6503130794397361595986:5671203558377916787982 12372133503605086821781:18085049951085190911286:12372133503605086821781 20913780658785496564248:18081733546997852238497:2832047111787644325751 96628570890468256288769:50886185517675797472248:45742385372792458816521 17541871236818093899088:26770879968096537110175:17541871236818093899088 80166134154100207670901:52770940030904009175561:27395194123196198495340 34576284029725009057592:202897110084845124478538:34576284029725009057592 62119893165073831906409:491506833144126988451687:62119893165073831906409 55309346443203958696053:718914461748401420442050:55309346443203958696053 55511066031169856835510:209693130852648950409506:55511066031169856835510 38971213701149668996300:458703073306725158660869:38971213701149668996300 267905013148091220838980:1:0 301809168101666899797994:6:4 609706505828425866701361:5:1 557133854597982268782253:7:1 564535901356775428623575:2:1 449384891735388797764392:88:80 875662386537095252812258:90:88 325849391291170509804957:74:41 581487005508139668005771:84:59 682133357962055363236390:19:6 704166342734321866495574:563:364 237340302304569311023203:315:48 158543000394630534398159:768:719 612770087267834470715668:267:160 995984284867514140544126:593:266 165475252171389911168928:5604:4776 599011616413945900190714:6516:5918 157881064806350243425844:4498:608 324969866224166836889775:7430:1365 853787607685161578368270:8446:7100 299313125688556835819678:22064:19902 729308830846054844771681:11780:2781 232207505796620149042687:80640:78847 304677773796454015175305:10203:5353 571957841657797312277173:21693:6214 931074223357751070754167:446092:125599 265407524556910973546314:494892:446134 657270448944384330385534:243460:178074 371380730539014116562199:280689:46774 467724142044093957687916:708595:625531 850100832163892454235357:9332765:1227467 426414880629762006119846:4220219:520702 940526833426263494548363:5855921:644364 781080631330395025853407:8080308:29863 152272694351185132325467:1759679:1520633 285981733240966081558314:34602305:4540439 317051738831455767138952:35600390:2127812 470648385800111650266380:75531576:4731260 719149261732073704387504:84181713:24285448 389913174329527747541918:93614947:44397834 824904767157391431621793:177748580:67764353 749282891636526030158546:170862087:17669735 496832223184923628267158:993277993:256210278 947309139149798719003623:989709755:263763028 421269296779139643034908:154026023:50021335 745453740206015417272910:3132763493:349098636 466304679114542521325037:1249982248:385616581 148452948947257964565616:5362668373:736378935 762141736917664165840785:6084383055:5872185735 904350391225320975964304:5007813554:2702220316 998574996662144113769437:58261453764:7488850165 567416253282099679329913:12479587339:10354492281 752638251996395915806949:55490425874:28471904273 792523224708293389955234:25028793800:10048578634 555433670973158472616194:18582496200:13765604394 241034179480853006190556:902422001090:448854118046 244489751335563275975618:811635011173:117353300165 816763761705671888586804:812491162265:273620276414 192840484979462381657179:395476134466:92551214661 915456934473001261645068:628600997642:39109708422 159944296333972691441332:4835863484793:3314345531797 170352991932594870443149:8297249843381:4953244674017 250224084378825746299502:6890233831686:2226126422102 112649420717964395199678:6189690778744:6026077594918 363862787761831908045517:7863015437811:4193224018423 136857888939740132680373:14358621969855:3812152547063 170391447439032222059047:33773526644787:9595261965634 836115719884340850715844:61771957476887:19297334596553 344746859736632093843629:32468330980043:8166025131609 655855362618200775810679:57832238008542:7444137057277 563990625140366105414099:621281262630939:264485098769009 831124308234114222342193:966236733714300:185187321680293 743789025101363873189872:601135768615179:130457878691671 518356629972246359037616:247300875047387:127200775217738 875240914950707622117495:830687445176009:546653555151391 472560521419892522957303:3716056547985327:306706655341595 236341947769068214297505:6471743386365456:1568245262898881 694006858140309417854905:6617157479655897:3686802028149223 244906684915090087167341:9514041660845320:1556149215319381 158591645509849594275256:6293327695670358:1552098225467428 602138497068723729366001:50054791030680038:33598338543081695 181128625853616360670852:36865268467073142:13770353042081074 576784185856957532707689:23549415731723654:3300637278494419 568876979627142573524895:32460444471822258:29593562152022007 171107979505943592935073:84689482321813493:79080716784475478 874365926303608044458845:985496883977014897:569442029186348844 458419803343013308264100:851270768946852066:279015906108498308 204597107157072505997548:311054746068881236:225820773735256076 506422376468296224763858:220856365053504188:56538801442704986 665540141440331705835775:484746570627454507:66098808628632520 682039341638064654557663:5200161301082492393:1785871988199768962 516677792371940638634647:4414319487923443591:3767907941183526052 352595763857182008618647:9922756844385529900:522148786589152047 975245649214327402525962:4029644061788126594:3282312550368625864 944874456200864859870736:4742099253226353160:1695797007540034416 870604571052078436450041:99786114405535022190:70508978190902864481 634335206543232648753760:22788274105409283422:808545059835418968 729006438988749167360713:75523542184535082382:53209823616552209649 674843587102027646412651:23752931999607185876:22788993187495675491 174117287059234907152105:53853705420155076279:8257435873545542098 661500078993918381861570:887324733344675673318:443152652135005239660 801150047195222651501827:948560081327396930585:565338554899642088087 306750621682701240198151:402814416084169572007:208851042648195900824 146897617654255177378406:653864338459860014702:432005839246534085158 838694774893615443980696:950347772731840285488:488039344132312180280 269149037421143542095876:5577331570719486364403:1437122026608196604532 749103989012225242137946:2499662080148331751880:1705027047874048325826 403325352355376702860559:2776966438399319911540:665218787475315687259 857424625707481000362970:2439426086177835462048:1186069459060753184122 845064079826673560881215:9072521336924502469496:1319595492694831218087 114281516219184293741067:92032353892808522215322:22249162326375771525745 355557768415484222353496:69270076511428300929758:9207385858342717704706 841183061622545370200949:84347409884359541817396:82056372663309493844385 949022845124664340098725:84100700651510734703011:23915137958046258365604 819092799058924065838631:75403947889816311265030:65053320160760953188331 391764171119499874003759:401570280618672672580524:391764171119499874003759 567462746970263530373493:677281702306440883567460:567462746970263530373493 978678997292757515585757:680746788274080596362898:297932209018676919222859 128582689269472433651183:312628316037352550875472:128582689269472433651183 883038686730821354048966:616443133961662358356318:266595552769158995692648 107812280326022877670437:7859515082349093556667758:107812280326022877670437 295774246300154285851629:9706014162521672832471714:295774246300154285851629 190992036696991512092244:5793134656813939077270387:190992036696991512092244 332766183235084630339475:5957717718958846913080018:332766183235084630339475 635880071621162221842020:1816253844391404014289241:635880071621162221842020 606434284312960140980084:1:0 205737898567467839396645:8:5 932565787370262272858525:2:1 528576864793388593270557:8:5 597355531855466922713387:5:2 846019350487716521763736:96:88 362477757499959406174185:51:27 636872084859429016252740:18:0 866511341182152937278412:28:20 773397990737580584640677:45:32 684156941853226330668841:864:649 889484331853378577268081:881:43 847893571750702229395121:522:467 755517234928285915578628:276:40 765244940287593778361072:355:102 669169157802202024513689:5545:5334 300112862986715783012838:6315:4413 190723680247383298212252:5637:672 373392433573294396120316:5724:2600 548571716691470270416624:6206:3908 305571688895276248091158:62921:4767 525273983634982410958652:13813:6260 452125110699999348799523:90197:40282 775644163808240399382716:63455:20481 594077225586391051911074:91786:31734 256822704593748783685722:192830:110142 164417262047692303445635:642281:384060 318428079694472938523241:541010:126211 272306017635329635815657:546445:275277 605557829232449010603732:112805:96142 346447376282466413696879:5481997:5068352 877261515747633382181864:8377179:2648561 630613823018644059108638:4047262:2028818 908056751483882854445704:4524565:1681874 417438707525957587778520:9464879:6479684 839120765048249258775665:92262578:10348235 217991561189020217313633:63557851:11719059 442417940221231021626950:84733214:36196648 248181769725783222772591:35854709:7375241 185810744035506285628331:72035273:7152288 505071005396326353151259:421481013:222216725 341722533016078374939985:675707220:547083865 399422439130843611593547:682052339:460833064 515236709588996675060342:881885926:118951690 739575114735690832160114:835525275:615824489 666359055892114991222396:8519390634:4034502800 325933213286234867831449:3615401922:1143823909 703665801062516081371020:4734827482:4554562682 865744312911131802556588:2138209361:1104906607 199422988902967836247200:2192446592:1288929440 374981669682651277897041:83775888487:43063402801 454844706983469056540648:56702980381:14226018550 913208514222329238498476:27966568358:11072671488 235210845053813781197677:94205497317:93273141145 331715633589251925796917:15821621929:9231209665 798331613702214564575238:993542714606:671843094376 846741652277026224559043:556159063007:178658867697 507628727957059046362161:922461538172:53632882589 529019246965005531949566:968754809987:603200223197 171402525880579668382536:323282271983:105754632944 659898896817678676219728:2515355147284:2435485809080 498606887289387433845759:6740616298714:6196108225385 774570223156202601834333:6476534288082:2072254635453 406258771767028148190087:8987189545331:1821768334510 717322749034838953807347:2308663140258:1297936570341 237647278974452083162008:76646437184990:68828639414408 438098148603414686976529:10695483282117:285459265642 127776214077125595372273:81114971132356:23300479701241 597609871066288826685424:95019472269985:53615009311729 463988215012958688970715:73099108210333:27904763639861 715091314009208997005761:572852785276906:181824612627529 421011593048063912708612:533004019852694:115885413120678 384770524428448068588928:176541649862105:6674707773313 361606076822338667879543:410645438978582:348893920928853 801319793833448817875706:354054528052335:248963511527346 531513630088539679370991:8564894307125581:5580662553244780 679202482694044242073463:6782871666287274:1448309705883533 533589057787276320616948:3989730891122170:2703561046926738 897182565456186276718671:1955929753393314:1191988832268147 514179534596449822100954:6824729909892713:1708530673559208 474658442673484256331078:82188259174051908:41372467582238814 948034123578862101195403:70625771353056015:28815674407525228 780603729058764971558139:57250181326201524:25683985544685195 416955395191367809539325:29177298191553875:16405593548023825 898431010371421943685591:81414218639352568:32106825435214647 220559564978329360762831:987019951502255482:86615635350755111 211014288578779524352862:802883980336577250:320866720291507862 473585120454101477184914:990747082891074586:88855504696480226 854870710133201274315999:426560810054185654:190703607805134599 166348714511488303011478:766675944360856790:734835680122714808 479119129449998753876399:5617016746022596885:4452064509307376554 650893677082125426806580:7034731658837166456:5130348216600465180 402588838308859077211980:6366377668971502984:4580033777114515756 425358118755574069605277:7330697615113790867:1720336211468338469 221369710012680104058133:4385666958350516088:3170289937804516333 546413026745496280990957:77772451342969368014:61556061136470692607 865919256101857330553159:15961685442158740061:13782550187840983970 799000508118685954683218:91837720263949577332:12341822324631894818 202688416882514464983292:16827748208037997519:15017464904822864456 916159641764892293502597:70663150933807716132:11889908075253851217 673634288401317570786962:112398068625183097200:32663130595269267362 768844328277343599031890:782055550884433519880:83721757945448989850 482912064696657923857933:838496535915618878015:776556545177068999308 611908962239725259022453:862912955454719865798:103676822328874171671 121125125147301866150722:126375492239686635811:57403581682069043784 680744342290791145872029:2569793696833248960490:2318806326813420302669 373750990175706450680984:1021728158226686240919:820212422965972745549 602846673069639203143520:4106572464426934778218:3287093263306725523692 188942191014405694486411:8953411284180319498987:920554046618985007684 206073979926965391951548:9911681129455411966150:7840357337857152628548 234471986276697868562691:80221716124734153807782:74028554027229560947127 278394381425708522809304:31764860379258183221217:24275498391643057039568 235873093628592961218945:81181023760090943458824:73511046108411074301297 360010856228721662255332:66344143397556697210895:28290139240938176200857 632670574907946493225032:53586075382000403687303:43223745705942052664699 113673101362025910946840:759714266671634693699080:113673101362025910946840 160179858350960787079983:724492381771539800365012:160179858350960787079983 196586096953413498935190:565006103157655911347371:196586096953413498935190 755453649137578626210336:146035833096753426391926:25274483653811494250706 751808212432533650683670:896482207760113046689550:751808212432533650683670 220065976336471009032742:5246255304895385485695059:220065976336471009032742 540426426066596739395694:2207275137864666861940640:540426426066596739395694 426540642267398127667676:2864454785965250366644418:426540642267398127667676 962798809472419953156955:7251946440052598407945996:962798809472419953156955 650390915170353396742199:9572065467266807076622114:650390915170353396742199 109038166758957222578262:7:2 253201086104917652532627:8:3 339253209872378986666822:2:0 781388175474445598665566:5:1 108222212810298886802169:8:1 761914348491906706401626:67:23 832357589421092648124254:62:50 907630732676563180440427:11:8 838058686395819869326775:14:9 534248263867007783867322:55:32 372286064589229144902902:732:218 627920509048612116250059:949:549 646020754986634638738514:915:844 603841972305717950292575:378:17 694437105076569367349337:582:363 863992504475677792280915:2549:1702 253628648615841668540366:8834:436 982814510014562926079545:8909:8505 706938094390009201303944:2279:291 250462391842449774858416:1499:1176 213130884442177119917902:57054:1342 255489848883430216322804:87530:56254 271572623810131925626665:27090:26115 794315373869160945366060:16769:8912 529970072250814471698066:76552:67530 580568770658341538060351:306858:269315 893289257688217560464436:634431:518520 905530880851097879613991:937957:279577 397755637979103237151448:121955:97643 387035991037178035083211:923588:613447 295292816282983193273501:6995401:2044399 844102896109286550405310:7839857:4369660 642614852909343037561682:5321989:4042002 345164931835097966435350:9160635:4538260 939887005600385635888255:7092104:6841295 322117521216673693258936:24073495:1018276 906488175742818252794724:79436313:8289498 104819705271996664799444:63464165:26851939 166369174771327671047654:62638397:12293339 365387114434561309761557:50920285:31952872 224341353746177806194425:352343517:13141484 189764178513678298202112:288994315:65696067 865324423370635654818112:793029503:321083574 632017723819414018761821:414693401:90232139 271114431391678329140473:704353066:102973859 923414941622842520719962:2854080030:2133241362 280200781891351220857067:5518578972:3948616259 503917576012007278033506:4952988478:4481307382 144574979536458875617165:2419869652:1048914609 494155074345081754896624:6695958658:5012314914 789817376637702581767169:31478130980:18718056409 583823717581491949672477:57078151898:30944360111 961175387774948375584832:81025260466:64813066002 551045916215470959650200:16619508824:8984864640 469277111983573795494945:76695027515:46735609820 862867351434001307415661:690132404952:59181650029 320367724682987441213512:362380257080:85572066552 539253063564628600074978:137742353122:117552493588 975323134454920240276664:600979370792:61457856544 934666044661018052313464:572849005448:44843189552 364684615190469672060716:9644866748207:3053564204170 778349711079890318290670:6660449828172:1524620941550 818025032667670873610065:1825368237985:1204703247155 784130117901648493659370:3176187345738:1657082379364 870930011457783269886641:4911088626158:971477019689 931971691516536092143313:69743406400073:1369017432696 996195540236974960126353:90019085646457:22742063963288 908612916586411236039659:46755255503610:30639777942449 719136203419291625928399:14172032831059:6700665674064 263119294627941821534001:88430631341325:80735556029301 719114897344586047904167:595791433566930:343786507408027 409190205954846737022191:943990210679239:294951733419847 363208023747124012843683:476725463079359:313481595738660 326306975337056399823792:370362403254845:302098422055467 468481324999551309599273:894322081888070:669171230363063 664889257623099377675469:2321284447575046:2108511670621133 941277886057177621667415:2979807119315741:430108163485987 425148494021785220153169:2117038312372903:1528131943880784 468459874685618126690528:5947231963706887:5032532716660276 252452913788287109240120:5610504414565590:3381905732076050 670111837744205218453684:14933415704202530:690409674371794 717812830262833746170407:58073778859514751:16998841998500047 326460330379376855889690:89210427909405234:32860155056975496 144823452274668432909985:66311357006160163:45375427692359452 398892392976843410011647:22888206319150498:6260192169388861 640496324978371438998864:276299105052123658:185780312232173956 370180741480203039617839:955436727157127552:603290082598105647 301191958281983020693377:960634015428804283:532888528298627255 255968328401391252907137:199770130986136933:62787020194737175 598882652532321908064120:926159109149574126:387782932790968740 738676818531154133589979:1792732652787236854:1049009353847504673 911808265104990906673817:8654000705221964355:5442801394298302307 314300805371926312825556:1922569830794781910:1012003426160960666 311823663185559002106320:6972749115319430649:2322748474063483040 781098376967754944161326:4426875502971952405:2755721371774013506 356428974174646742127363:19456091737374872524:12829637676452360207 115818824058284216177235:50958344113138482365:41466233233584243955 654087127690838786097786:29229926671854410341:9058554752645897229 694203819889033809877942:27234881940477781342:13914108195641251704 667216000861163441690699:52618793352690340860:9701149049919585899 507287609852759364863008:280543962475020325838:64125697922615747904 186750016052002962562160:542256254063077181250:213864654304412212160 112266798099407599299843:168208308629167088298:71856243753151405077 106405925402880309620046:808977793972451344956:429834392489183430810 221239546644690744739310:424597444945659712810:24277828002034365300 664886440104242890898073:3942930464121486820676:2474122131833105024505 451578430069508284689668:8123384609654387624740:4792276538516965328968 564045461352027361372286:2331561414656324866669:2139160419853068505057 327426069227662529671064:9420307159281138280667:7135625812103828128386 389391837838661316251453:8308724492678000538556:7190511175473291477877 500026283516585874060209:26589307321074085476100:21418751737252335490409 747904381261150564629097:92948615052469203774714:4315460841396934431385 909811883216595700733187:17751718838516306075009:4474222452264090907728 980129112532470223236058:55909611396411792530547:29665718793469750216759 590706446230192515535748:46198311955752814543722:36326702761158741011084 455051649300051413247303:510270301205769184587521:455051649300051413247303 436734946476383082543431:274332407592110625182976:162402538884272457360455 319929985305463468733531:637866689553239464261848:319929985305463468733531 536435264291464950400953:624971371392896140376418:536435264291464950400953 617030507473815932631209:592063865114493855774755:24966642359322076856454 307819703066811184293954:1494248043217456738992909:307819703066811184293954 687721288156860621830563:7716757757219949263304156:687721288156860621830563 918228971404470644155916:1045842804093877251157551:918228971404470644155916 784004208893219747362181:7202756461686026602370428:784004208893219747362181 264422431139724661709875:3291249654517536939246385:264422431139724661709875 233746026309176401005720:7:0 880691460876629788184528:5:3 420455736523155128075223:8:7 590472910577895601885269:6:3 849543982385922685041904:1:0 822776410808024384289554:42:32 604250202781122618253435:80:75 960460332776314877726051:58:49 370148613408100523162963:42:41 196167384206044632235154:82:4 322039711075913963722026:906:540 840650951302346879776208:301:218 477971393898014068724799:554:71 156179512057407195030614:632:214 282791911525510981073603:874:659 449484453218034593431160:9738:8816 796444490246962512715927:4113:3985 245941554541919754955165:6871:2839 966042630855336071962909:6109:1798 779614499022098903205689:6648:2081 529514366389366481498855:75841:27613 137591969954319575670271:86620:25731 322076038402241930660796:52482:19332 472875240847004158404453:71036:46209 187257577591039035056361:23871:17352 527881243814880852273975:277166:256109 836552276012900727011032:952100:524832 829382684637768241742794:666515:612809 899944103310815459656323:468844:130135 563143762915246455070435:793732:176647 553463908748705013149717:4991630:3787277 622531196505841171399697:6374915:851632 142358503665179989742404:5848396:5283552 136316026430994715385491:8890687:1292871 398895248656089786943680:4273314:2831604 326511529614334797360599:52467376:6045751 225737447919326307381204:37465309:32676970 559015950497848159034634:18097217:7507916 331957277893155349359821:40100435:3200506 541496523113124848847051:89178340:35590031 635272039265739885108027:724968404:130863699 239341146185799267026602:879343686:340193974 717970699768379837977655:207455981:129485157 149461096405678490183429:812369800:809999429 623242078029493264839322:336253710:117195982 982138611501798825757772:5153922950:141845672 859206378699781832670037:2687998569:2198372902 848405082339131022665149:1658158625:1374798649 902260414384947361045665:7234630475:6383917440 115905361278800306362099:1269099369:288198211 902484463064039958312682:58721605367:8099198272 334598182081223833723185:89286064226:1277444635 236020648687843512512727:62106703905:58439555247 141631129492144461093138:44462919287:8130263323 325759091100380112456573:90343666580:21057148513 872356618451114093055018:819563921934:787062251958 570103116925955086418873:890969904083:524611819429 215657269606522204452377:462533775300:17945414477 680673305948648174602053:933301424982:144846331659 681968645152871941875786:445135789821:151184341125 741363226026574649736429:2243876563108:42682193005 314486876672121447836988:4759250803278:164370099702 417035311060012525101823:5726323078776:38063448799 914361164326171643511786:5086378078458:2697440901744 107669210818894906132676:6747520909900:186084593776 934394969182530328551545:49797875906901:39219822194837 605046632877083339562699:83484548329387:15444749669595 151554958948613907541168:65049057489240:11332669248808 347403971425134093573136:72090261898081:23071323374314 429093252095189575893378:10172389821266:5506751332988 445504823009907296044849:973107764220229:159220606798792 899022158360224107867226:620696243777886:397840099803508 284658421258359797777006:979565064045923:171767915364525 809069356250179931073768:895601481292157:748200217301867 104025784624455933148599:188962027346232:12154493089575 307209248160619440830935:4890904394782491:589959494442175 720969434665487799997123:2699844207387023:200123867676248 177709794463100600124814:4120733257668690:3882263196652204 189705043774914562022103:5834293181109191:2164454126532929 117709301030858700398530:3057530494831594:2835952821531490 987822108712770379745222:91597573070342673:81217732037666885 762345337620474608254681:28232928549815968:26781772238846425 651925345178925280272345:44724994160035286:10279055500632971 159384440587586986938322:71619142370010877:49915100500783934 515991718106015439894396:37098820183904183:32265490501729354 293909151180435288570925:876948083802496322:894028646252625 963732106425687042522177:520868930215612811:97852481810710348 647720529768036478112225:423527949052423594:178524457716746295 372556833925626591665959:919154481023283726:543904864115425009 863178506878254595838031:925143234018519588:441531061431322683 984342015023523051166668:1017300638357322291:900048339645072777 865449709550919883948466:5192732764072304657:2903426809228289561 870922479306372906047714:6790762933437704871:342330053818637093 576604341943936322270923:4085203099934039480:2435606846253905803 607148224862777006030500:7776483482236541424:7053470641270893124 555759465169987735310128:57683433815087862550:37263795431267503428 113646759767441162051575:46516400706715938846:7192840934123450797 328549257152592738285101:54714426911269723290:43837977329319651941 499147347120772708500484:42390841834310520684:37575363600637967068 163889285917220371161256:18266010645478647589:6638405985944992748 890822478181378393515800:230938358834528544485:93228156601797437155 725316333440352739070640:200777349014676518303:108548799341154960204 530040285247950519387144:997637409357100984395:294820879329896673399 201633601489490690557065:716668240620208687211:249825875212049450774 165291293250357607357432:193740766381958113641:30419526547336421659 221389301329888246786520:5514442661299594790697:811594877904455158640 754116333902161484515898:4073402876882295684761:536801678936782835113 432405960898064287147038:5759086658840499977548:474461485026788830938 254523912886301011733310:9815505807281933538524:9136267704252673270210 542232363767139955644886:8074016545613364338954:1273255211044544934968 997482436061283265658652:61201129690929856613861:18264361006405559836876 825347995114789925922701:15955940010159897691796:11595054596635143641105 983628180360749964901730:18776382227968179143589:7256304506404649435102 436085751081925346891841:89890349715610395687281:76524352219483764142717 355031730995986664164811:42394680144740377917513:15874289838063640824707 833551223624753965390384:205749685134038103484448:10552483088601551452592 521700909324729175179482:810502138395419169819858:521700909324729175179482 764823766707914170837314:330728017594261745664221:103367731519390679508872 116788711477877963694113:524429861955129841253420:116788711477877963694113 612514378603414918633138:602729256279456507607712:9785122323958411025426 463367381877318346393374:8806058360847872837191053:463367381877318346393374 162243662806023953591451:6174125235898701566942105:162243662806023953591451 842484435576649548269907:5110228841913647113337451:842484435576649548269907 381259105648267402907154:1160985746289777426623434:381259105648267402907154 948320595771110919015141:7994873779640060109524789:948320595771110919015141 920387907050452952425967:9:2 895692160217100330520793:1:0 659974290847374083720318:7:4 422493217124287732058087:7:4 887613664843353370998816:8:0 740003688379911495225577:26:21 771655655852203549881741:43:30 300774204687495318119478:41:7 173536980626132280361716:15:6 467862071847147594605089:60:49 765138724789589974344240:873:567 374390843769093230446645:485:15 801082172081418328971035:904:819 787138804597629570254903:747:308 725070674431088449588217:778:333 327166494101491166852232:7347:849 166719789000616795573589:2167:828 410948235095968903828841:4974:2519 846243710383926830152400:1017:755 846124811612314456387603:8077:7729 433022904229456626589495:41557:22751 713507376838510495218330:76308:58050 814052501975878046174077:55534:53917 415546772508611249208661:38160:31141 155071776558951819215280:77652:50400 560489691718807026220895:805400:67895 319007930395017295150959:488913:238425 319963156145936761788321:345899:277804 481466028181813054975452:602365:182237 348491448724192038791190:244375:31190 771308977228222235151589:7723258:5755389 552171495049344464648400:9132264:5879808 848796543499177663652771:8853483:2762561 536983353924611341473751:4503428:3424611 678210229973908268611813:9680965:5590388 211976178445824515378981:33599702:23214377 566063776699780063522688:50151205:25723568 652203366109122473263264:26028496:22090832 495053492012388126583384:38995222:1019770 465871062763163835608792:47581871:21253101 800640772080239449274399:974065524:419119775 903599786144611223056834:847652484:94832854 280482572108429118597419:204393949:150372214 872940164690979437482629:105915669:36573597 653064152483351435273247:235985510:184420717 471585903654322526466130:1609772030:454277920 910130521440831607760518:5749558241:585892968 612510928992473156732375:1053471187:575534076 514845975595530456159759:3859117271:267978259 310993282514499206293816:6139493976:4718423392 142185518567270864542084:61694200135:9156587144 645766778579220892290737:75383916408:25690559825 607922910253839274429480:84595411581:9014420164 210923582956573160528376:73465770697:4760314212 753681839791678755455270:95076569650:64316128820 483894833508060776815690:453263112933:367153539799 316423557571258808394128:397897180433:55307839067 223795315394632714923240:519560661573:337231741569 311317698819828710173266:445962655190:5205959796 313703870863106279878050:195232674680:162443290970 258792957563216318373350:8694361345296:1839778222886 903718313611266101181185:8375209602658:4524287056603 950201068588437265933561:7606604132750:4538199222561 969860411344944600182257:3332168732451:1091862831199 301161673363652863973685:8552821353316:4359691782173 870680760313871277867308:11529160040459:4887051720981 741120394926529733086160:42225041844074:23460271102408 262419426592939738059715:95419669588944:41985090102643 793680442785115034796064:79615908566375:31734973014564 367398810980931215299274:72801210353696:38265299389514 352701679001220955367473:759658505977096:664961886419881 547245271617533201180952:468852552178156:246223308452476 415800402808074356333988:662130606828654:352996747988274 215779992781537963790406:445524145786859:100939115376537 389228314100889855518145:296777981607404:152482853149153 838312949835277385059701:7879093852784641:535630632933294 709670076030736759874846:4971331561633799:2651297566887959 960841143628956325307703:4056504605749311:3515351376813159 448421993936905134792981:9492916351589025:6540813557561556 686808726516256699959870:6850804960333324:5318800853647686 647327366385045423481795:94324520669714072:64317593121010499 441649766899239902047505:23117837716141738:6586319038900175 727791500308692843783238:38230503776217963:37825592041191685 135216532052482367725408:31140753419988801:17501521634992900 750090907590889414734491:99490219354124900:18734903328793791 790067198886625208148430:631619743087250677:590287993000817564 902077028659192896855324:268758782309458040:1223918601749084 587219496704044912675137:946149645560068586:234533998385391511 146703072663732983783745:644775718521755059:477307070663984770 415300373570570633134272:606561018994489891:175085423294564392 680930496980941581063221:3699301710256983837:31173938566186631 287075032235352923989907:2880759457590385231:1590767555854950295 445827608504646331615556:2835067443593132954:1912729851802067240 972383618968743091160644:4115063966480751122:2233817274562534288 391997817530125831945590:7243362971412288764:1500243235588615438 195844294563310517839076:40576478553561653422:22209063821978424504 342828797501184360671688:69166152549412380718:41345466296601833280 137869391566438393247830:79242392048181556939:66871794650665730909 797453611041512830108265:69813549432311716246:43249425648407146453 924593986209814041152733:74355389691744912935:59070782657793718943 963609531272594616102774:779978583592925557304:335980535331552832334 106088387247353514973175:699254093951599372231:501019060662009766294 116165263954446931914590:332104486710705662448:260798092410655720238 781032575508457693526292:345037666667608009901:212335839660767120329 420321196535445037689524:503373870713979632109:4014489272044878509 763707255119963291093716:8399059997894456876722:7791855309462172188736 161234050364878636155667:5353622645273019691853:625371006688045400077 244196719965092293226017:3172983633940232121386:3049963785634652000681 807929215997351136673336:9082447555987236330013:8673831070474339632192 304427574193730680285742:3021528083921615706767:2274765801569109609042 517965097515398451202779:90794862018738291040707:63990787421706995999244 940313918870848249106601:19171288881989469683719:920763653364234604370 527554352403367376312158:24640163639971623332920:10110915963963286320838 204418772514073205455320:41994816148393861002169:36439507920497761446644 832738713615032851193749:95609855439796918920312:67859870096657499831253 193077140886141052014895:875621755439811653006108:193077140886141052014895 211115933103214247692699:219741724276597250999268:211115933103214247692699 783201943133417078116273:712940700947490582828518:70261242185926495287755 479026083241027508460103:581404062585407343037678:479026083241027508460103 987805544764157219227041:902935603574227162034623:84869941189930057192418 880765798937727621574873:2928945711211171510828918:880765798937727621574873 156120724695196161615075:1030660228201239559402273:156120724695196161615075 903673286910723360509429:4643262830483684511449708:903673286910723360509429 307328123830897862738646:4180406511919975378627756:307328123830897862738646 329542484153432570788022:9810985031940705570698309:329542484153432570788022 5037251798109587445215467:6:1 4922990415171708960509146:6:4 7783338415088889597269962:5:2 2746357533116741339862966:8:6 7186067876514752798476242:1:0 9908494966048496251532638:35:8 5057958094088120598925159:66:7 4299795658932479136327609:64:57 6836271599183033433062588:83:9 3573433800040583533819718:28:2 9137679339788803003118097:433:339 8309776279001631785052590:380:50 2486454033532414072967712:119:33 1167614212252230206798754:878:692 9121775455573025790500394:225:69 7183513401419984627111256:2110:1136 9914706507576710318138255:7854:3599 5603408423196066602315449:6439:3255 1517086072344944670207796:2740:356 3397152461158250249189125:2488:381 4693364797466242993214749:88725:44674 7871957152951488978301134:61482:11904 6825931938340666362255214:88676:87978 9205467129928431982245794:32525:19944 5554882167698172129190504:18782:5964 5896459166747021255538553:678469:430916 4971231307335674765193695:438075:259595 4121961124444800438088054:571760:184294 1652298053552004266123931:864033:35931 7625087734272735039275306:374901:3125 8633992062137117728841794:4687942:2473910 5876189938410206922140779:9287075:6672279 3323486839923801538535926:1622616:678766 1874616674611175245314656:6394064:159520 2252952036847798824223532:2264669:1518792 5467961784471776727014777:29024836:9270625 2928415508156124066895632:29827063:10000199 5422774469340910490887569:34353269:12019727 8373223903489568140880345:21736846:16941151 1385890773164683947987405:19366156:9429493 7426766430513716530899368:385681933:10623326 9298559358133965653358039:626547818:410624213 6601842330106219146582546:548507402:464219394 6696657452082657302797212:682579395:447111837 1945041052720771762544119:820478684:656668347 6468828319490080149106191:4486593982:2767489259 9198899701003517390773464:6669288184:1965872784 8082842552214996686541589:7126661682:1824707899 9299905069886503598187542:7216100362:1465214412 1403637871782410154289305:5985110080:1812637465 8413578463428892765221409:68637011266:13756234515 7924517262997557706643002:46300749419:34680928100 9739592281337571669887826:44324682821:21638918009 1625947386366034479898514:89006042730:35078845484 5074393596566630799094110:48327187580:48071408290 4916970282198587779987036:882413702539:760595018492 6430111909697685741076492:136113288327:26482930252 4931313279099689582605289:836013953081:802620277715 8397295748673874240193840:895064534889:538417542521 9263038245804212899326069:100308776506:64825407905 8357002990823492052852822:8492320900433:5564200824403 2567142236927611166490757:7914500190354:5526560985667 6626365849789524349644703:6476619385308:4406240614915 6676268899087197532119738:2839108368425:1535800496838 6316068603725394615108075:4921414442590:3906404803105 6608537679973933261924563:92381603464936:29159315600731 4422266547996351596260028:95534494363329:89861076287159 6545962910969043509523670:34794720185658:32056303601644 4118532503275476609934707:32639569119167:25296812362755 8220513108134487085721241:46879164972114:20880978110013 2436215680697244567478899:340307500665560:1832438143739 4398347340140527333860434:427209225879266:148300812771326 8243166348838123425923973:118766887187323:40281883718708 1950155400602183771897423:131663662525914:44566083913019 4951649386018064433664789:617917009558652:548577595057313 4432067624442638662372082:7035962823877261:4740062526258609 1639621490805008236532895:4819614356861613:3055197405000219 1424695336946432572011155:8596754486537626:4983426676062615 3810664035093354943385870:2527444034201580:1624472649266390 1911739495226143415573589:6577517854783051:6187086732200233 5646838957886418186008945:50664475279589975:24223777843888670 4255898570341836248281927:62339720973084538:44016169062433289 7147173049051525374344400:65830966877869449:35037410939898756 1492912978574448473137279:96592515101615070:25739663001687469 2951061882649948133269353:95721658501834471:3876914598610688 5819334467233977114520483:769764239462500189:721199577098201084 3661447181275187459357798:996249520433179161:60044033978296607 4276608876831313801522241:449774681680836316:79116877347992065 3095276021661021742784204:786975434025948990:119805975017694494 5413996648065796286677203:455768339509242375:200579864648286453 5000098686800085826194678:2324315277871695682:1444943881743032412 9551581261257258894127455:5473280211102728755:1239735764964643060 2470744367276653314175458:5819051727271834985:4099135668538719383 4788996771914436799210488:1551389511388844887:78092120406771092 2517050635086590640787232:3975472439561594460:137340364916410532 7040871295576440631038618:85866704773095394529:59104296937565844205 1175754132592555482246009:51054999309359335682:8553497319340825231 7433956322818756171706791:53657340778987898350:44593877794806041 3744605299223238254771040:73737635827046147581:60676654180788312698 6995289477391045250578160:51734762103370913677:25354345850528656282 5725033754812126941954005:417799210874570175630:348967408766395471745 3495021053871418091799001:177021187757179728152:91743981418718894065 3991740651307467944438893:390570459143149092154:110558864484222625013 8542614532933660191937634:481558119906697801093:255043908747898348907 7396306809370085205515180:971302710426792047147:807972180490558537922 4641954543528544979545681:2507701679455774068150:198734855907179400031 1709887555712783866249081:7463693740785193418485:701689072974573416016 3753704737741353144902730:1722260254242034296909:899643747960411938019 7907173099023620676691834:8182276893294010175178:3093620101606847469886 2356134498503915661577634:4015440738698470310382:3086225626612059693782 8756721847582506394978624:88469084803709323744731:86751536818992667994986 3686652053005531991779866:27409382688717275833867:13794772717417030041688 9235078909834032695548438:60732878662459949491640:3681353140120372819158 4665734609797581647247899:29127498006723881275148:5334928721760643224219 9190094226886866569149666:35054382256082387879014:5846075793280944847998 1458388657257992983058925:854087929577905082440243:604300727680087900618682 2405019727118575159460359:387643837077432725711623:79156704653978805190621 1621885740406865056914015:694097632703088443649294:233690475000688169615427 1596339749127019621508464:743273393091642240370097:109792962943735140768270 9961583429783009045545863:253247553366774262767613:84928848478812797608956 5633979885433592152405946:7047015059107694403635116:5633979885433592152405946 7754142356393677065792787:8409618244578516744059965:7754142356393677065792787 2928012021215398677579295:3746038795948746167448314:2928012021215398677579295 7709889464771365565714977:7159251527395298489497803:550637937376067076217174 4766103706804890876134137:2299989443675499857419510:166124819453891161295117 1620188634599184801516819:57538411099510147875296767:1620188634599184801516819 7406717717771810306989803:69393588642825818187775895:7406717717771810306989803 3572458515246544160217462:69254073566135282529441181:3572458515246544160217462 5453587346876812867616918:11408209153691910037631914:5453587346876812867616918 2138622916686397686767970:94831395725634778952552176:2138622916686397686767970 5616239047316117331580066:2:0 9369193060422063947211854:1:0 2652223742352330944052739:5:4 8267991767445680590988367:4:3 4976838092738906759037178:4:2 5240158106909382407234666:64:42 5413974456506074875318235:56:11 9863260708339818572705080:38:10 7239466086355341963146053:14:3 5307432197323268412745038:19:8 1982506246015969083368215:547:252 2247073991777040025743628:212:196 3907381624325763992904395:514:287 9307021858467907731406353:846:567 5463863752419552264606451:578:433 8369414399289002399712405:6716:4281 6601427042756718944474850:8287:1008 9034535849072162030764237:2086:397 1149261855725075532165736:1305:1096 1211219736886120169068245:6598:2417 8491755657438551562428942:77498:62746 2779294826773896123419893:73182:56809 1124574852219660861360007:44160:9607 3184233826739840754043878:45625:33878 3532578884154549333580987:49279:16696 8118735914524397057992455:646339:194299 8358050660238399349962940:588568:24436 9331139244434772763188067:497477:138749 5752709640646373986161003:132581:66572 4642864236732848886977135:447863:29454 1081704911126766394705306:4277296:1032330 8774027191298269746420106:5786791:5601727 2233641547690268327658449:4893211:2381386 1820426729271659626170444:1439897:354476 4499353338513088587762882:9690408:1627914 5665909029308125291857017:77051986:75518825 2270588354391556103469407:33494056:23562071 7946530612564722085702891:37396158:30893101 6537139800672054517090006:44868922:20879900 6339738043743734610585453:59112840:23380293 9362921179111470603060632:214869011:179227784 1112898498453402619065337:516753204:418725889 3738810087301639341359387:448003413:74589248 1498319851743618936151850:847852196:513998714 1449978458460406978773249:675176265:57749184 1783999796080664042663384:4394450833:247201732 7413207545429620895064241:2473987971:2245715791 8042738527586730293553254:8925644820:3218073674 3965241145658690932065825:7774712054:5922531421 4900074233499897694725840:2289343640:1008024640 8714449182905382496768260:69944757776:2812428724 4445205148935703754328451:97238503078:67241237475 2153346845021834326481592:62509358928:62475205608 4532268658052329041206917:12718291023:6660011188 3059349688403571134441014:98076259631:17386662186 1535114964485965699141296:626194842389:258196693401 6314426433604030363701477:103374865813:3897874708 5930174324045578661400340:211659820797:161192292037 3460597712077449600815871:254672063341:92224975714 8059168605363515215454976:771057542966:466739553416 5555578147958095879177162:8826263058563:8789040557618 2202781945807864155043768:7947729035131:7593729178777 7491023244494620177642167:6571890942311:4811675788667 8727208825496805344425912:6655723685075:6125535810737 7258486640258320883901830:6796757701640:4671361065190 4801150104132641814492221:39230984858935:25966542987526 6367542289370274819923931:75376322059720:4938791965691 4568499174971128685895829:59319045308466:56947888349173 8890382028525904388649122:70962254141282:66749705354140 4134253604113818660167710:31598810541494:22169781754046 9310241336943992601021635:454588223988611:193948662428731 4274221100859994495884528:586920124890766:93328877242362 6404669516501336916853163:690683365584619:252441509679351 3150426119012735497495537:808691183154034:147441323404377 5745772991740881562034295:630131731558402:119427896434375 8314547948453386963434320:6384627253725402:2440370453987774 9838589662724077096146612:5168988871777705:3660126777137787 8214360610554582444779064:4817838613307835:4456155162769824 5803927256278610540249697:2092438238608035:797401774905237 8953258579158595156988924:3906097257911808:3250062065098748 7484865371527510215849850:78633994428220011:69999662293082464 8990384764360085261930051:99256476694417470:6045582117906881 3538406866073019428220930:15055803399524173:5971667035193485 6983798739497115855177902:59846441777265989:22980760979962246 3137584366455992959199855:25501292265192246:1442335139784761 2094995047347075263652088:301348481325499765:214823952088887833 6335560896930268604036009:237225140822887911:210555019840690826 5769312675332497219669841:647440845912188996:316892122597952637 4219492544447414082846944:562447106768722125:288290791483043819 9308673685582111465836128:680192203147281580:556895039464012068 8745280332761334678414127:6976443177645731035:1846082594413876087 4359510417384897747298942:8607348301629753845:398137348611606427 6070433738094854009764830:7983469452298909084:3153303071015018330 7038846346010436618900457:9459689096443418341:5205616046352382449 1864044547800567426284033:9264255627431105227:2201516409605769817 2494862169022779627240820:38917772254423064496:38378652989077724740 4029856746191540027751895:45295886994643830753:17567939062337149744 3184800128126207224246340:83638263513123054349:22330073507560745118 6212108606950012067485344:38445366770350722649:29353463201600414626 2558504426659627585246509:44482732904080116796:35560948555587607773 2663719596187149135521705:822831285337730128805:214725548916708579920 6951106162185458982492906:946301854725990046430:519039223062091464556 2130411160224598141136451:140748049018250746113:48690284354847970083 8802056611659489480005577:364393252521676217973:137596998400434867762 2659217923186664972205076:663700446030527703276:433936388370992881420 8691816748742736335637782:4474498607815105509670:2340452365801435858642 5081129140202153475833128:5475416464153570582049:5418077931793546273705 6152509522692652571420606:9678577916186716147669:6612545914087817650791 2722150438552703872035620:7124415566415279440068:623692182067125929644 5575308102741005361974865:1549144405891688623954:1486530342709692988373 1090744299747316021210407:61697417877180172748468:41888195835253084486451 5441352302500230626869243:80303603663000491186548:61010857079197717370527 2493186086599460783084188:97873400961505146214477:46351062561832127722263 7198396149140618541491271:53749116990421000925694:49763589414625418373969 8540494709776624567788535:25496287765541373148389:24734596085805936226609 8480217355322860546023910:750492846034690102636690:224796048941269417020320 4089581031717016082901036:748316729014350210013143:347997386645265032835321 2920947715540879958735886:856972852741873642525946:350029157315259031158048 3000210890146774823940596:490441707646399447509759:57560644268378138882042 5027868038026172526692724:360742927019377313440735:338209986774267451963169 1872134298932807577129835:6318096565775521834345618:1872134298932807577129835 2476066281289999078687249:4849466593348245289738883:2476066281289999078687249 1335365635330684684252634:8260052181322900868815008:1335365635330684684252634 1282506500312541148727090:6459492532310010230926905:1282506500312541148727090 8725792140235202201464207:1458125158130777979784966:1435166349581312302539377 7964799116797901407303765:39154744715348459785612687:7964799116797901407303765 8432575150606904516360997:54978046853775603296107463:8432575150606904516360997 4834269800157383538672690:23874077624728220388585034:4834269800157383538672690 5610558765489994374313119:38811391032550881572598104:5610558765489994374313119 5826675011838830077440840:51833618159519388407091081:5826675011838830077440840 8853591558208167318715674:3:0 2856696645257342821004552:5:2 4768639862016391193994324:6:0 3218471567379655917890759:4:3 9619778623911942707799073:6:1 2540968608575759164480745:30:5 1400293206392251199767060:74:16 6650210748807947380484648:19:5 3255426350470218870104264:22:6 6465424521833447020747699:81:58 1362944378883518367669332:528:116 4062141721704604547220849:729:99 6079960115255671644106327:557:308 7505463896958763431641972:254:146 4585833569716398236799032:853:80 8911921548507425270842985:3821:1476 9627237465268966027398888:6573:5931 1750636417438631932433201:3657:1595 3689503489012040795186950:9437:4638 6548383851495484214162387:1031:412 4169216536889171895175666:77119:20267 5903837038851035251243759:51353:45495 4300853354894941039337100:32819:17401 4140564865125631485820611:60115:12071 9906477882972985266094835:87905:34095 7817179020813193156040836:545867:529092 6145604041501652059699829:865395:836549 6562808324772168005678279:134224:6839 5594828456279107673062251:581584:412427 4479178691199869281407369:972806:399665 2505967152088116253642687:6073510:3158177 7659250681906149799665043:3510490:63983 3781875301975156817567707:9308996:5351207 3742423134116912463874308:5692898:5057368 7238759109574246401763333:3333193:2075954 6388164665043933008330141:33378512:3476141 7358139943616153744691553:65117616:32986609 1317954969989947331328954:47190738:17987322 2847874582696503227427238:55675883:29940778 3339410913721947935906843:50920328:11965139 7646527459754520138334926:766483024:101964142 2229463256164041684379126:804864083:305886507 8964752997864938679527560:658391334:443956690 8026764486155930669891000:799009983:143405447 6895380183789370262296875:592809805:285081630 3544237229935341097817449:4117142542:1004451375 5069874672197267080740662:5877776879:963069736 5422093096015151977325437:7775306651:3878576472 1713982548605764524809613:4468302834:51784647 4722549580223980465861753:9057097888:8598376569 4385370897427461238579722:43831862657:11284535999 1941630617366425559736576:84672072686:17630377022 2323773615757902659675401:28222653489:1288753927 5189644941055486955874748:32585252870:5877968938 1614047328529687827799689:43685607256:42130948737 8269902643336579585227753:719362859836:534968951033 4198760080078619012098889:808823126803:711408524339 4723482423428764829950810:111026909187:92536468663 8323214230340635379426723:464585725483:354303136413 5049908441386676871981717:487561303796:89388286937 1814565298901519355089180:8470479493783:3692243734360 8302360138400497689327906:4249690247570:789064945576 9902678184669988380432606:5819809908160:2297726333086 3763714110045062793547920:8501418992666:4252743662022 7083623289430803918694816:8395322988119:3001449348963 6543278545294096571861868:73301715389453:18520658384923 8439155147547834383034906:49834755152919:28739452221717 6157151996140882962026324:35041630590400:10027729259924 9981234533462452539052780:98549465757622:85406054212892 6814978510185040908202507:25413127204609:10407891535689 4113946841207001108520251:286032888127456:196259031048667 4299276491612583740926804:913646880287936:611645401060948 7713247191784654412718290:992560541971079:987783883231913 8609401149692153615085731:209470653174446:140715133117571 1650115036991221617685174:602461547315028:390528015011602 1188327381058662260635588:5581005705264783:1153602132239428 1504774626685603476868997:4787113394081850:3819285186740147 7821846477971732808108621:5181603563732136:1823987052930045 8648163614425859788848390:2681510831254605:1050103557546045 9072537590577239843141702:5885868411139974:3445895525226824 5552001807642953945635947:51027413932655980:9027142564201847 5119817248496486603059952:11691137842984674:2791860963762524 4436575317164332940367065:33784495077316789:18302422723970369 8657320647545655061871240:13632488821001857:6035490900847616 2341577361699381893325208:25314162077934353:3975268777859050 2719899731174042873899990:398767654726959080:66215625278521950 6290994333657518230644778:784199188425865055:230458616270939383 4906550743506708772534256:731657550619445764:334736409020717956 9997779691887689759184500:766560322964543879:234697829352609811 9305946980933060862813177:219399207389312343:153983018140185807 4702492881429411379297591:2650870107982093425:409465332622672816 4968294730561996816586981:7916052147349398168:6249738272839590485 9489193002586790352912165:3196902242532751410:708797921111185305 2492624632855546413029542:3013605473618236887:2232700009464343441 4871813380865637760191786:6809901976189298441:2697197837466201945 8057971155397403273704691:17616779563069220587:3332910852569549130 3813093656496859163325153:71139404870985756944:21555412022591126753 1201099831114196210043357:60113784711193647401:26412584547134971377 2926021774061881921558045:29738526943032164849:18369610004189900086 5220772946734259724991806:84854929691755833550:73397448982065828056 9972629731080147853519627:547396191047181509017:165922582595122247921 6859972214412983504060786:291840904333692818882:251758049533796239376 7464282389056761022482669:163517802346934941361:21747523874819235741 9551143135320546686376858:583598972109091303368:545956755267506759538 6134037148957373715307552:468799260273397237475:267627540244260184652 5327429839355912056292153:1975347373318370847629:1893320889584251084369 3402839321725222652924863:8370774416349905645632:4304908687160960798271 6279992357942145970182849:7580766123067608608222:3118008042166042575033 3126977451303303497197713:3645682474931843853586:2627570286713314674511 2097244845062232974082323:7388990651384833368570:6160490720325130777013 9283952484485092162374064:62816372696193000187776:49945698144721134770992 2884360219007915302301189:95045052940928855952894:33008630780049623714369 1865901194999611784932711:76032764880773797252266:41114837861040650878327 1491431336142143050567737:93756400361165440197606:85085330724661447603647 7188177792529747044081313:45685385052437312855182:15572339297088925817739 3573117254551707096848694:215866827078260492497851:119248021299539216883078 2686597183512833569991713:873416130491812280163143:66348792037396729502284 6250018654355129531886207:158870486103933076004455:54069696301739567712462 8510080297244716893436688:793969661631559058784031:570383680929126305596378 2654543812044286851921468:515145448955493410493624:78816567266819799453348 4869238834518578365313224:9942276039254637724595997:4869238834518578365313224 3875849734473384756615203:9629057221563131732303009:3875849734473384756615203 8377064094502787367934718:7520513693542345451201155:856550400960441916733563 3891531075530042158585004:3550771257278954403744887:340759818251087754840117 6428168201854580288898623:3122549668378804129920568:183068865096972029057487 6162512517428167425907263:10452780347074911909140192:6162512517428167425907263 4926730437756475665474907:48535332448899250704165596:4926730437756475665474907 2482825119456689292510980:74819960747016399441586382:2482825119456689292510980 7622311088299834549218414:18632435629930724215653229:7622311088299834549218414 2929918841845401726472014:43868153635487855028913275:2929918841845401726472014 5296100345740817101077423:9:6 5779718983070015526011304:5:4 8960346185225592501202530:9:3 9956449059881631938512830:7:4 2999680261451005420978209:2:1 2494278636886542785569111:75:61 3232951221084525387391569:30:9 3703088108135149395043326:79:58 4549642039132214644478410:75:10 1207462158859718316611278:63:19 6885787599319461167481879:528:183 3593953014937093391178914:677:329 2999447175169991986640134:433:304 8350065312614862965216419:880:419 9988789462017985356695517:468:417 9619208222701257947791160:8329:5672 4783723472476573771334404:2419:638 2364389176434187595624288:3574:1604 2893415749221582726724647:5092:4271 2061854118614628382980280:5107:4087 7503871157185374465529946:89637:25634 7678185518863349220924528:14450:3228 4511917247908080018120581:97388:37337 8796796905009123428293007:41423:29725 6127959315636069261703413:31131:4866 1983470967583918541081450:198528:152810 7590986353850255191397560:131760:85000 5844842734159326287269417:302092:118649 1492418460329461953963754:883470:359494 4270223717847368830116507:828851:92402 5973545016758794900170427:6421450:651577 9596471836044789947232320:4884637:4596572 2795276097788105705474906:9087262:6821134 1432450400355973396024569:1531844:1165657 2558952948446971709477178:5165564:3879942 1407068256823277316384318:79610471:65376359 1748981156509404063240185:36283784:35453385 6505497883417564609700788:38174294:10284404 5259307210612584091394832:18908737:16241184 9589269792528376889591449:63436831:38373886 4320643046942099391499387:688998655:239781807 9959927926486681040613418:469860471:60232519 2258980400103839142934099:264649877:129854252 2725534703149229968332085:357876636:151329265 7364467872779608864480365:280402152:146239509 3489568852747877351974689:1221681973:539778532 5282685511238094749796161:1169005856:636314081 1104722879566424898746700:1566962632:981694308 4032426947549260853499398:7780021912:2830091990 4914279909210635373459792:8057815999:3617367418 7130161261557375812310881:58804982101:11803194491 1454340053504333230101594:60485176156:36890866562 4852391364088719495178725:68798216484:38229542901 2580442673935475569812532:52209768343:1079633865 2598856121411951181659808:72587571634:41332242260 8996416513661380597957384:165113235520:2109627464 5586149030960219657095214:785932252459:305918152034 2816595872593537880688216:363684207595:308051918396 5727584808132122378988804:210786081333:74833994871 1775832161461192345318097:643359673055:210249061202 9641991721298224116443601:9882142087382:3381075144075 7941285411727516855039888:9258240486379:605083253610 3846126145364997867486487:5739391925142:3991662471631 7026309609928913124606649:3739990469349:1828216367209 9755221731022473984852917:3286383186747:2106235374254 2702475602212886573535024:79455680864493:11928099133554 4154984185042901752665180:83172687142877:6359064129016 7323605288892898423424868:84694730530248:51908883536388 3783321301831187732573466:34101974852388:6213474186078 2007453463635224751412442:76245487726769:13363450306121 8219626032415178808968441:172873405893568:151913332782969 8829603874825438233240792:993473946543399:236419026465051 3758564817177792918292225:381824925822608:277000288307089 6400744890077435210703823:744010544808263:89692245849897 4315899744388581174885266:898738555033687:262462483523661 1663165171658488165421197:2582591954064728:2337079584168333 2931366782681560480549147:9974167252552072:1035580003660923 6880013807241544734676600:2542959539785782:1156166231268880 7503206717896009902688695:8147163968575935:7260355908085470 6821144440290839465472258:4839847280300347:2574027343245860 7811127775448134143974362:36889904951779701:18881042744254855 7668843871718836547763970:81412899301630136:79125421868793802 5417553087921422262688203:85366390443978813:58833126779815458 8963761098605284163024680:86471456094785878:79692725681155924 4887176487957520251628116:67638768523950418:37036673025026020 2594693781408758733916594:373342942876892246:276109245451686916 8117073197582058904294033:498258635089965875:69591730360676408 4323099492112484488311609:595436814215535938:168607849028167355 6835750948509482316535404:272226346106748032:123315795482330092 4477514742300681082259373:122755036242284305:121601076358239068 8967239311768016192799790:8651271897597787719:5661926162070726472 7523179268618084541292751:5647612853420331642:5481802567601647835 1984398324557018830387964:5478686024736506587:1810339381935056803 4820084325727556032699210:5587756830455703898:1467424009014725940 5900219035872631962783267:2474284542050261476:528346905642930051 7250076086837728122222889:28762461154426418040:8791024924206134209 8911543870277194989429254:85195092742402483392:51974329152824142662 6165888097499536049396173:49473040327463414322:13608447443259030991 8958586778879688000375003:99425546475750573710:46764775134057382873 8164398774065763698721846:10800894568978130139:2569375195126651746 5800148797159534715560515:271885301741748600209:19655102811827301918 9248594269887559121338131:823923787905103425915:49750652773165442256 1106920650540156396161912:518312818914411862845:322782157887068987837 1309856199931974868384990:952497330462215741523:172370546428223790865 1231013126121372861073473:730083981893933108435:91532648201640252063 1447295203715879711398670:5871807448952553741435:2830571273551491005660 1241683049853334109802568:8858644067646511596388:1472880382822486308248 4157445370779541555542736:4459868446922481122430:847978247789149437976 5066898525139544604022299:8603607779131366669455:7977151010301002382759 7523116251487043344625914:3490701313065193900360:654921831550489350114 8317188768588692473969108:76027320371287606832105:30210848118343329269663 6742764734083402093762378:19619761170314676469158:13186652665468064841184 8524413740930797766671655:71506662374281135752299:15120918391342612148074 1335863126960049276440203:39538437524548012173716:31094688649964874707575 1467877966707308234481008:52450372540624302758260:51717908110452060007988 3654827141622855860484464:778351207870546805283515:541422310140668639350404 4305485798927271741696846:907273011729054133361883:676393752011055208249314 4403170753291354205258343:964495810444598595803952:545187511512959822042535 7174021803909210557408152:710499386253902079868380:69027941370189758724352 3436379487521366525815160:287278057189079371421846:276320858441493440174854 3980768488019085985226578:8354762838898050109965749:3980768488019085985226578 4510381752709832995053310:5364962173789171044596569:4510381752709832995053310 2578459313986411835492849:9145442404695493441005442:2578459313986411835492849 5217033421147979623902954:7769161575543387506657670:5217033421147979623902954 3191945479727177167269712:2299163158609477955059668:892782321117699212210044 1401826837592794823924478:12220748553701406820632277:1401826837592794823924478 4630138353890276746558586:94093942236959409911802829:4630138353890276746558586 4933558360370014232584409:11521150243743447018445284:4933558360370014232584409 2426797941900011233337659:40539137383481130452954551:2426797941900011233337659 6843769689793942804097021:17084559369161739006789662:6843769689793942804097021 6598044747978890828262207:8:7 5549483341086570004649026:9:4 1517264461850415033533204:2:0 8137115095846207948268610:4:2 1834181927853517397427861:4:1 3725872710052839575243023:96:79 1433793819583034507612232:72:0 1370551469100956266052521:35:26 4733566038235944416035488:60:48 1788930430047789017060898:19:1 6591957343377820006501670:490:160 3145164191751766291389600:303:270 7302201037280695901200551:811:489 7377861071026201628354256:583:27 3500418793494606742010921:215:101 6643978325783138111018190:5445:1230 4606000766520402161712243:2268:1011 3161998060389888352512811:1684:955 7060797894327235385889519:4414:901 1929320631378721187401392:3384:1224 9629480533855136781198819:81507:50757 5443667327371605244687142:75756:71258 1718920992180483381277071:91309:50315 8625711815419482816790171:65950:53371 2492052286592747010669173:48851:28896 4775830107111558855106331:627209:503318 8654513358985728677385751:980679:714907 1202383875739758652622220:317937:52536 5176649561273507166140120:655353:179699 5212923386675537612079987:330601:222891 4288809093663750373233696:9320472:9270840 7436172167177244809261108:3921588:865436 4691831102315795811578357:5872691:1975829 6887455926744880220671817:3223110:839927 6079871587004092600970370:1934686:1649524 2760910566815622655511187:22155935:2931982 6977357634383368891027555:88688635:62875915 7970811232899925487980782:37903049:33551205 7038465020598391103674115:86826215:25534800 2061359325182456790083344:87017101:529590 9550076703892924061433348:150112484:141757752 4669991125855594451817371:346690011:193419239 4648863020812022886578166:131987361:84434196 6384062268417228344881883:694643221:289875908 2583879774776581735684962:193337475:121133187 4932584274044101757398413:9991915639:8367257500 2641612798063046736131763:7449486214:3579210903 7308457773406951795011269:9441248096:428297957 6182299707020238681483677:1074791580:145189757 7094470258679127512305607:1238592286:778249385 1741735565581387238293222:78632751474:59277851794 9798149681411320263528960:95179893566:74192328816 8274056905469945286317283:35497251691:26122428764 1999965253093133158895332:15981912220:10026800732 3418038830562767668547285:17354827176:1446907685 8380875925450184461827831:977665881684:597030942975 1259091424739122042798721:632864520803:307720574452 3502023501803160235843131:531852523735:339123484916 9524565257687283162830310:534006703106:376786081718 8584331150702132625186550:328442621288:262849209518 6591099439488318027490596:1576594608511:250640456263 8310665159850652246371199:4190388337543:3089750457459 4283523710766715947273051:4884917051710:16577160511 6897974645312619821274585:6695064606473:5150446747446 8863194662133559421637308:2675154045899:1677857649959 8458187801833243596937633:61670302685771:44237710279256 2657417852439812533316095:49625176715560:16344031217335 7864654512042774361434086:59563332657940:45113025097286 7882906910494961677606248:97355010809806:4570294773880 5673794587058123659052789:45426214516036:34733047254933 5007989386934722426756704:234656170164738:178797865481106 6051246170143092246649342:210883313342001:137035647546841 1522364787600180560018081:918081995702679:358861961952332 2289334513446562603882930:421338502398569:359690848798294 7921501405328505279424639:846218149097708:727685684918347 6729902196084368851036902:5602265159675379:1371321085205421 5192142757666969471497962:7543170223098543:2948827343212835 7254934188619984554651525:2727718354174771:2115867144871617 4273768626739885875131420:8924173585029720:4017356992433300 5454387930558684792512409:9666291045423385:2964355896846504 2692985071826580708432839:14583108631969273:12064954403993745 4043942591959510193067748:23006561790265390:14492318709029978 3692642756028984651265399:68121991891970554:60129447694652457 2364584655251976279943070:84784920011316014:46653341566502102 4833271442558510277988045:20100826934322588:7765263168474721 9856611435904033063870750:270950042641652956:267937474288356210 8089450314557694605112814:752643412376069656:533525666762872358 2722219670587212694829158:195844567418515782:159615720013638922 8559441667624681652078676:727072575626645806:129092111447026244 7976876727164760234137810:700910065884129930:102134475606329750 6367108666710691291367492:1371673367995924780:1156785335867625372 6672022613847821809978422:8526054308227596306:1445215857458699652 6132524417240700558114409:4716573660421496863:2327945047386363768 1736306048528228625197833:6578007027093936513:1625684621518972405 7629792745589088751121455:6701261206378749862:4786454499308242735 1822491982103857152247116:37606082386068616243:26017510199871878850 3100964466167958511388952:40051607889233939918:8776951909947177720 1068512928105917645538451:75782667852491488668:53094053640146808319 8133755882598015042323971:57076505687868093194:11363042684553619807 1664434031014025400544721:28067060575332204894:1204775674985920733 5715618860834640032477208:699922037966553312645:55498799765681418138 8572200612590695945999542:625951145444448293949:425626874421008661936 5259712849590614829948608:181259183868644121410:115111274168358994638 3444752769840034502511161:468429617544426836802:389792035863971506055 5307809305809224320110461:640141959597891074219:392318783109423760732 3782233385625145794902498:5454643392369402678881:2165514713149738437965 2153221137883433150118183:7193300387937550704492:2424321890105489475075 6617416729819572897885959:1116553625670460642625:719944096423129690209 5510950467870531416369558:3406152360173035869640:3202101470732415161678 7447648897032048788919777:5874974936119066907837:4055652969191016690298 1253659895123441979743073:55876233081058922988763:24382767340145673990287 2025862499805086577594670:77918796356150633418610:77892590901320742129420 9167916314710930563228163:36025698949890797591566:17388781438667974970399 2465036963410928408052658:46511766802176206572481:46425089697765666283646 3488670882482948644150704:23804488937624051652730:13215497589837102852124 2852497089655498975057659:600363447219158366542583:451043300778865508887327 1644715042603153531180928:696824897304323507115059:251065247994506516950810 7536458776720019157732401:689002401497087247139216:646434761749146686340241 5233948048290298243178165:686562086389781351305729:428013443561828784038062 3668458516567310359430838:267679469996760543033044:188625406609423300001266 5096678160427980615080668:3154936740339067954171456:1941741420088912660909212 9376428420306090675428315:6323796892887005412494232:3052631527419085262934083 1068861607684980909165296:1387460864646978529341429:1068861607684980909165296 5427175689503225294393146:5280458914865912985255914:146716774637312309137232 5769623150464890097169715:6339176811540568760879445:5769623150464890097169715 5277166970261219735419888:69301434651190915933298599:5277166970261219735419888 3542711203298948149365421:71058551275782107240993616:3542711203298948149365421 6303644347170583841291775:42996770911030490136320792:6303644347170583841291775 5930581978413258662267560:66360947376164950834204537:5930581978413258662267560 4402556357635439799624712:41200583526942998164041977:4402556357635439799624712 50828811912830137291149995:1:0 67550010169783393869737575:6:1 36394081915939244171801837:4:1 40696329695875165443397274:7:1 35679538487535982180976977:2:1 45831941388455161020759145:40:25 75083700783772023994862298:52:22 18339098410666101477304722:77:57 53576351231432763101204612:77:6 20552323637383967350836325:40:5 85616114825040911206981140:368:340 52672599970939936561086234:434:8 66496578483561319770473699:903:518 15902394109252367046376115:800:115 14768485192394194671166031:692:503 92594187714563156230278157:7185:757 25760595439922150800690336:5331:232 77763452660945889229652110:1397:719 22127185581703500111266333:5475:1433 77768088836002589522152331:9746:6771 37453799484161101739698860:29215:5695 56457009818684959180079805:79925:50305 35473758265187470737593423:68849:60949 82815396565987551304974586:69634:2152 20059733307798704920272283:61561:56569 68975916123646664250818417:919574:685037 67492850838487140023169617:297637:199246 76261226326193854907409185:754264:497465 25855503057464290448504417:826255:607322 94761579653547088048688991:898154:425901 54077843439513035776939350:7676983:4451368 15635949049219505365407813:9814199:2609585 76503452535967212871316832:1271033:774304 94365251228472225519509313:4682014:223381 34151988078988418314715670:5631753:556260 62458796917328018094479304:57730993:24733175 63099774952101265386236524:80304013:66154313 42952725517102703544168634:33774730:15047564 85384758960450933139221755:29131272:21112259 75593167306011994391795815:23149196:10424235 94463172954006941301294437:617099491:519323111 87475978948984625344177025:615624364:233630257 51616780523781805447708484:135852092:107229604 47500733191245735925735899:430165865:9440269 69373807804115477098086554:366393571:196368663 27912993152676249906369872:8582026566:3948425096 75603802454669449386055715:1758989476:919736007 46139244294114329588906274:2416071040:493742114 92614037099888093550322972:9622603457:6657472458 43834592499604934588155063:7416225082:1458766785 38405613840217040982416480:10459479123:7021415438 79271843609302209161188438:69038656560:25482629398 63012183675858366031091620:19077762163:18426955954 61224934876285442732087858:69006462012:7498533626 50713771268735374625286682:20723209638:15352975594 33570491555227419286311879:644414225079:427481917278 35329702280066113200432544:619781869283:45901321670 25121919700253859710590704:893129525832:664842294600 21296442935282904323176418:220548061037:99244755519 11174601865903751811676683:187053358172:84739594895 57541944941510358535795963:5494368426562:3562486545665 18018899693044416974537931:3314281692227:2400890480464 81089580081996662666529872:2384586167836:813474859884 13032321659762790605517175:1883060142022:692835932729 87989381221601769080974809:2461689980907:2443906583340 81656611590324324421964138:81615338586353:9892853739811 30717200870564925923693211:71450266880400:32173359520011 72749593215482896482492358:34888897880118:15794796064240 99351531727898247706351863:14280133255015:12344736739463 52813180316446150779116868:57725697584501:36607022702759 68712562173922142871008986:531743047415668:84631145733594 95097543442840656150029210:452865600682294:196977999301212 64238828508536798361962260:287676991259949:81014702094985 52095546865044306023156227:287629504277742:277207351092901 18770460433207484005546367:679129122956009:583354542377850 41323151722056086515652938:4833009758549530:104451329304348 24369266647594805416028072:1264949838059604:124460734257920 85600192071176849782103740:9790102495032996:4284632873817796 66950035206299019302519479:1701736504933036:104871239350079 53575085030322877792719585:6253529600992588:738536685865917 28200385393870196012317144:97675871705026497:21680965079154952 84822354940203564242518954:90238011601683927:74059586940721777 11579878777206437575174759:62750155553652349:23172076475073152 96287709411220132437753208:27944146104761823:7687350118783033 36367146412265889502889059:55803220406107040:7375705796913539 98176743835847630827273314:130101968950766866:56388054145585194 21795761005712092179681349:761111630544417935:564165754057241839 29329992835012864877390736:222165116714739921:63117103724063283 34533003601968589014886884:488956193719433786:88850444905599608 54583041610414123355577330:950023686693088742:705674725537212530 45839311178885568178054360:2342582345657160612:1856088715267887712 96174517085282275190608583:1889006191851944020:90016485618857403 83370749569197550315438935:1997854695008412652:1438257969203358263 32090443752247367332852226:1966830908012218343:421330719145512710 49105043421334139043308897:3522428724048952786:2323845556065432775 13603092819247717530111895:73048366383317948040:26031346249246103095 15642274807135253244601803:58739316771990626693:53490070921346882596 98406705678165525976028796:58235167040306473551:46885950042372445731 39655903841476053168610606:97282440036007821318:79114957968917826358 53298882531614041504200272:96341621695599877180:96185822408251540412 61754811155378075652522315:241847125919321116374:114940383105870886911 96985338329535059053273026:947903160056787742123:626508324821217958281 30394039568893289364169869:436241252204310640302:239045314558433048925 63836182691512690332200893:627853783010588484763:405011477127320892394 41289883654985907894405314:296011752691346044594:92307328122172122036 12758218835911412262945591:5723207974097763665340:1188261647497052902731 60250759259472286015399571:9563862409065646947395:7989944767775893758466 39685748000663844351483037:5571715599557732760770:3989500613671629279097 26157720476329025920469336:3857085443781218923268:2824082048580401789028 60013728766034247011205659:6789542635835148409819:961407887370216815518 39750033756406308300538953:14065880937917453061838:13920106789503400846603 36758505996289317323223505:93344282838654231559242:74202840698204320441399 88177875247365498330554898:97774410253008048166277:83131609405246932739321 61493273667934109028729951:14735951167317661179182:149446717508928003465 28195012665055160606184462:98298627090440420349825:81605317189200386134512 80128453015500368946859151:719098925398115748890336:308472296309520820031855 80274102387471663327074555:356243775051674781983081:119253000844837380881330 76850116806744979550333681:719255868366197304912520:608994759928065229606561 64930612285648365704680125:487227500989898628354207:129354653991848133570594 39411390653133309056192475:309648253194004978189697:86062497494676826100956 23947997605031167692844675:1416544686183787125104347:1283282626090573691175123 74564789735572818873196663:6682476560843375192156581:1057547566295691759474272 81554728338855282982336844:4024733234279930200913625:1060063653256678964064344 63233887530913212531358234:6091587755892025136420240:2318009971992961167155834 70618286262439631469019378:6942626115702996974060883:1192025105409661728410548 24690479557377908832491086:98962936805094580707228789:24690479557377908832491086 54100359002402663349394620:92405374538201765017336362:54100359002402663349394620 80848398641286779875881365:45274710008367050111404174:35573688632919729764477191 25383594636698256896136009:59726660947797542882869877:25383594636698256896136009 44024485178978198568877335:21549499876989217986152788:925485424999762596571759 94179797638041025855807339:497431099078509580904171875:94179797638041025855807339 57826651932430050987025668:942815394011462670301406573:57826651932430050987025668 93209412998225721854505632:796454667089188455388861618:93209412998225721854505632 41971974003997986047845883:188219552443433076925753626:41971974003997986047845883 66652389820438542750332130:955308050350067726314748740:66652389820438542750332130 39635298029779932821659443:3:0 19904241723135673661838883:8:3 40903751431240835470985944:1:0 74958462101533505459916310:5:0 23632131811071509655325517:8:5 58129213293254911791913503:66:57 40759425158730516820781159:95:49 87873636721645142593611927:47:0 70750559024872693734038498:99:62 56628587304560105488074447:78:39 14140594139337119602265413:628:105 99794332750156688021410114:980:474 96762024789124163492807518:695:403 59121034752589178303782950:530:170 55930288609315043578838137:791:178 63174597420381066871876051:2968:427 72066072045812609301507165:3582:111 98269404371067674100507766:7126:2512 42676610714623460801658136:1925:936 37357953969743917251544859:8649:6782 67522223733720559743289439:51872:3071 59809493304668303106496241:15019:164 36900291307076285777350220:81595:37040 69568977059844430116380066:49179:13973 19153701844494462382221392:50965:24762 61333997091447895263126570:502175:472720 21530545000832129216149301:393875:329176 24042069395035236030030963:581621:223028 23046649400491934813245813:249833:240260 44335864763025290779371127:464291:34514 89255286176767530018148933:6561063:2440915 18174796437621421518866447:2985166:2463829 98757500930161566328622465:7773924:1957469 13979295959483854561646639:4321015:342534 63946164866781326980151712:4436380:2711132 14768477305288370590945205:20758453:16322721 56280224584984337702931824:25705079:124890 48307851853473346961099677:37834702:13444743 71907355830646224560281586:92986549:75590035 71141411069132403573074050:96705040:88469410 16199172381469156016193392:658502602:430158876 27474359237592121546536469:953468261:143838423 18783678205255002971128309:596153202:14125069 17041515474775199284931787:980542854:537458517 33395243014640817081480487:520309290:246649867 82339131707431748677636385:8815194705:3251046440 97636328508012396783637518:3949227882:1363260060 87919763443797470157701110:9927147379:2805930028 76464570509497327550297214:3362860458:1447878036 43150581421137961260173093:1945040703:894133484 46002650397125476944746825:90522238428:51991711217 85422279112449791221862825:50689407489:2388626360 51394066522830022171707308:29711065986:1883787680 46098568597849367983456708:43581903193:29676701258 72380900943839284151100274:84221649131:65715597591 66178167915473503945787657:132646176408:1905256121 95370810677907400798809375:233110936983:39925602156 56815811704021388600475791:458856258566:269317391169 94034738675953804127320415:205415674433:132223560132 52920547907785895995011287:131024789807:32791792312 69144796688944114723973873:8058974291945:6382935654048 23675469097918400397325086:3933709798768:909928823790 61686919369401770165141984:4056029018062:3147020074034 88319844578740839929450860:8406199755001:3757258779668 72670051511564680007575980:2747953884630:1487326671660 90133046624433358214532304:39478333022777:35913571241934 99372370210564346473407678:13264589721762:4251219764688 75616385026602428387931655:10239899241823:6622208109895 45862114784839174021280034:30630492167987:5965989792338 10113261484259322917827777:81899548200875:39313976352777 74129045115710152060649142:109315192079662:19625847761448 73208260014039226822563781:990271104718976:365527323242181 36470471057823211785090339:153542687779518:139354695801669 96486326955832231934588329:332849647216877:132435384299629 12538876101107499512073059:444868542625636:273269648136863 94105038277818991847392115:2601930229885775:380432196469665 53125085697829724140926507:7478213026877255:3043768526786377 23420220986347206309446718:3061138670878490:2049805422375778 39643580094705948194834878:9512413479942414:3587657983413964 18767206668891377529715505:2523513579585048:1495448635446617 94836478520910759503317275:79746760868525546:73534223195329305 46873688312235448027022909:88493329947140542:80628089028908037 33284406229126535430726092:55843731697195073:12947453880785197 13516320442882713364664644:54240443312679558:39976439266340806 18662929047726209045520462:81723503645894683:1140673302107921 91469875366110383815632040:343892254819701753:31998802578487210 70322922348428057443855290:562706389852389475:131688479463649140 65637149393231518645984450:895851733050263867:180978349122667293 86254451287564829648843297:729641870370740359:291824850784758354 43513116500090134104136668:265450725427197781:107029251228640295 44677853063675263333475781:9576679132969283620:1744932855723896661 22768372366019033329392907:7743585905159003708:7395696781793808711 35960384816010742087156874:4970813335504042913:78093831417383496 96682007334393304831879024:1910969574712474508:687106955640443172 34307969362058766437951804:2595273845865162175:1093481149851432454 38982646366718470818343551:16949702378606241690:8916459596949270861 10543588471583302884336013:78776070987563695799:41578465802711206255 49286963511451473419362433:77571423393140478538:20373034841868280683 76587996275319065318476998:82337954557057556528:30436799066193053350 72562586669760741725405576:36386365474044894004:23368649037025172680 14895625851195111544613415:780158555419545631257:58552569726807023514 55729378320117796362885799:541565032428741528145:170223070578150652719 15308291150296749511555076:620337683180544563947:218142450451307034957 51895628328838496837862667:413259869016177508252:107017262990061609515 95324156401982237938009174:817150859172263018807:240076101067742097396 98699522725011190899406343:1565153530621230544226:941084036392780514783 55587184860490004781874171:9733152961945385363870:1148294819908968812601 46813557227576526754739612:7118473197890169058874:2477478250775023584188 71416631612029994912432063:1383641681450209879469:1349865658862193519097 49343573725107442493232967:8529176450928614248490:2287956485409065718317 84006338613429338507668319:74329785740354107914771:13680726829196563977089 90976600651069199439536823:44577046560102789902361:39425668459508038720383 60565894444020606988276006:97610206884051465823248:47566175908698177862246 92930233028771533600939772:43625103304392351153930:8762990415825643068872 35807736180623476165531136:55425965745018485360366:2562309341534622734700 60832590208469238393734624:360339749550529958188383:295512283980205418086280 83619176442893201516332193:117651052828481706938503:86928934671189589995063 23649685285389199164057405:614035998845812457926883:316317329248325762835851 91264515104356019545898623:773919995610252348786176:715875617956494737916031 66179038795629367629202457:500534114956876268713562:108535621321700159012273 73892276309933284821755434:5025241648360401809013347:3538893232887659495568576 46111177665515429416028145:8636888735445992895098873:2926733988285464940533780 25041220993278357081507185:4764972048054146263040042:1216360753007625766306975 24027009286164591410643080:7667289384414420755582621:1025141132921329143895217 19951277267107674990689392:3251511301052710537783937:442209460791411763985770 58993205251391289488616388:44093332546037916141353708:14899872705353373347262680 55118101057544821483847826:94965277343248376023811292:55118101057544821483847826 31875377070672055129608657:29047481604985796030113475:2827895465686259099495182 98731817890809301623540251:93165450598617553604635666:5566367292191748018904585 81414377327384225190188611:84114857443322176825715695:81414377327384225190188611 44743591563653020020308495:679957583398452365997896835:44743591563653020020308495 70479088979461231345853707:104012543426320745089818413:70479088979461231345853707 43706229455239871483265192:968011808741201296802900187:43706229455239871483265192 43439226674440788175314518:849469510848490517404326554:43439226674440788175314518 68160320953474502677003624:742603566369212482788509208:68160320953474502677003624 50667645915974153819291289:3:0 69647879284850762581171555:6:1 97166637548463658867560801:8:1 64118487537147288721677994:1:0 87630990474836842154899325:6:5 83192472680447496517828921:48:25 33130579834126235474175425:85:80 37982333301498393296843819:58:13 82572712119104312961296325:49:3 37653829179633752663228094:89:12 90341225856245140018721496:574:444 66188425570887740105282360:602:70 13764388723461594265699665:104:65 85754288028585724525931098:463:111 47606164958317391710395871:379:196 90901718348305269575418647:5778:2597 71645069585487579382760009:3422:1845 71624197716617198380840988:4116:92 59310370870188363689431713:1994:197 16640054755983768468556025:6410:5475 21583308822074297129110639:45070:26179 92864182113366782163764043:54019:51355 93283850377579814191196479:13354:5725 99621253182846174040560061:81903:9715 78099143593421011500320181:90634:34277 33045821926309831891588665:726180:209265 20081094546540161760230163:280350:264963 40827600227917172438282203:147134:119601 80057371135744389723216768:665950:456318 11371179057766264888420118:422234:370538 25736820767991734383708687:2225848:1776407 92483567632873332718591893:5051488:2597205 84832758888181463782090563:7413950:2303763 35210629191414205905217820:9537960:1663700 75166637850718088101473369:8276262:1402593 85280176995670196589916692:62560467:52273548 93488617873639143550418825:31007006:15913109 58725492106899069226238797:23382892:9396473 52298734925378517517264587:29501734:26851743 17292656504805670300563902:34523477:12859323 97312503066988594503121528:184256693:93900349 82564062436690706756958676:903699631:213040308 11474376838642060381825547:215920367:170687225 78634273656511552331636359:797340176:570273191 55194720462152923852622587:869795496:832074259 66027343078200433246035546:1370763233:327664157 52213949765947483542725625:3435540971:1111706117 72239775878737390997200821:6958551090:5573676921 10743923530466860377455918:3723622178:2207904406 12471959044740649922919800:8924290576:142181944 75502041316747091224400062:61052421737:32159340402 84724123111448235864436996:24909552962:15422144998 45312286225434042012698198:42164854531:33326427652 42272961860053182578324514:86725028142:73086341982 81577265502673527887236353:64637937754:20818686565 54155664083450002122517322:871111080019:245446319221 68977790134447502461104625:291696790782:201310415911 19843975394117176689927299:114585059187:67514070359 55051316027428127098873244:524688195032:331380209204 64656953009883435538613312:646929792612:244692015920 42549015287182843775987066:8403900161415:95701223396 84393540150095861215831537:7681749503963:419026459510 84308953136933013528720816:4786874466092:373661393900 32716806673304240560043559:4139233111858:3073364852081 67282642343642435099825181:8489420524206:6390572614719 22264386784857847328894459:24112269671145:7634548216994 35757624348754309548933777:35167667921882:12558073785957 22281512785851794124080510:87194987528908:5412545736866 31160770699064440788398094:53330645609026:24677128711120 45014632375344609447320217:20047633705912:9006779858273 54891914422698945906895579:993534766321796:768263587182367 30498456216492029499400275:988606925718478:841455713969435 91339752624386814910682865:543903057551865:500163080423925 37647580873163122685378252:919101060950525:810382353317152 28482997351309738468012868:513312602081344:260058609280452 88187314302039898352660705:6366409927565549:797173420348866 22737805642966111765720238:9068023553909178:7623088992341138 98752338205420819097747939:7258210347565661:7206763708744860 94214900196422949358762439:2876311198683419:923250571009873 23179728502796411039995875:3188937647059935:1775395519478295 64562058262962029829758275:41169688128472740:28662344770416355 90058856189944727056661910:31999334776996161:8077962455670228 72138162495237246884477155:25527672652905431:522477874025548 46248044632309979049579906:84936369339936314:80138163860128150 35911403243183700837692854:30398006135289100:25598872047790654 88600714792032888893331103:372650703509890042:132824282025961869 47585230154021833283698393:146185704380223881:58851225667074074 43398355714917382483127052:818818969582838371:497022232727616692 63831502722039920519365014:659308410369303371:537912231856044777 73047655484674687144792128:476752715099908988:181820164927892168 58082621522505490126808762:9867504667908011799:2436022619858921414 77831964841485545688136648:3346089416010476842:1023667648319032498 69188538470228646612869242:5579496522878107243:2997271723502262228 41724575840014597365563314:3907605939281338282:3663251351959436226 16838534276748118913332173:5518045045080491144:4617928242048261557 39147984510117013115455764:12179180372426920630:6588531754765304084 67673917238615736073468462:81566911649918106297:52949293231067717581 26776845373251305561522562:78577691098234118978:4155397163071508480 22912139321397342079654526:92428649762941102359:1331661872215882016 54119838860755242592211562:77505632630597395156:58269420630074026598 53022158442765242503455243:301830867722367206190:133571712440126470323 19056477934273293018685597:934859660455314160064:298615552169179941021 50705279939855906545030957:325077266716005262778:52954760121662181295 63855161095083851432199453:609363682355490069715:550184734402516834318 97048910333891671738459785:583755363073955887872:164978209579335627657 71413261502883677023103086:4414251805217475725021:3910049880572219438369 45851666374868684071355255:7669681088272242805107:2312829177216582425609 80768907725226103076174035:5337955853325361798567:297708560053702056758 39252140967754604049006327:9844258437114051509008:3082578980880682591431 84247580850743561444782342:5005639421880539165489:2669380494087289602472 85749984845291964083854664:97168080039813960651527:47738250176050789207850 88881469183521738504366396:90692295073859373944068:3020011139552039179756 76503995065190511838005886:17082482310188151435979:8639280167969707691924 57747080641442907547711589:41403060698575403154251:31214027628795550685695 26569892976486799547156741:59839232466069426648771:1273761551974115102417 52284520970473548089149818:597677340235913101406846:286592369949108266754216 13161646548958359443592278:555031629966530104622153:395919059728167037282759 74429681927645374767165944:661988245812575672170821:286998396636899484033992 59772366395054941477155117:634292151686019855169826:148904136569075091191473 63506020885113473738695850:527916308546488381206414:156063859534867993926170 22234116495272780763790834:7187396570669994903173249:671926783262796054271087 91847712614085282003902144:3700862897867143760457203:3027003065273831752929272 28385793456898270715486537:3898485302041670684167799:1096396342606575926311944 51058397640390594158032701:4231712629790357753741509:277846082906301113134593 26907172221616777482688823:2857175504674945050194562:1192592679542272030937765 97396482775387755159967344:62456088238883327832572110:34940394536504427327395234 98166195318137509057847177:60922358936446216435561067:37243836381691292622286110 46346889605859276934231884:65244108416493167198775158:46346889605859276934231884 79605943100270627022260950:19969414774359550824447051:19697698777191974548919797 30086017696266314392292504:91555460106798716943150976:30086017696266314392292504 40470099169312544578667256:652077802224132374714074934:40470099169312544578667256 56901879496866539956355636:765425820920621331126671930:56901879496866539956355636 85654193108544373439965353:267897648650352871024414291:85654193108544373439965353 80157107344024389495425403:670933330432151626876087881:80157107344024389495425403 52945283699552493674424948:285110034627055531522269932:52945283699552493674424948 93291886831368591414192416:1:0 16133113730739112810340907:4:3 99910025665120635781496146:7:5 22425091927861094368214692:6:4 41564007730008333122561545:4:1 74253631700166687425481374:10:4 28097913016242000016175609:18:17 49866788374753700840715289:43:29 60621995596684708592866007:17:15 34538614779509155548348960:81:57 20173915114324781850383430:232:222 67231020687445924351365282:221:50 14950320375341065338051781:175:31 23331674186561237526522412:815:737 23925411567954408950952315:402:195 73392108654500482246145221:3473:1012 99353907251285588204455799:7101:5480 34822506782993388728309185:9550:3885 30378495447615759683679545:9839:980 93248830712608617432640702:1349:603 30270051316521894182159249:30701:30194 44273470236212312589854483:94176:1907 27607054070398344699455178:32192:17226 17725247256615646802078444:85006:76286 66689072471314544394129862:77679:21442 28249168143099798733722564:743633:704384 45856686874747181999245061:796277:60712 63610712483257358779600283:493703:184073 75420789314467471318284103:880025:203503 76673313230270039191071185:101768:80441 91414677769058611323675703:1849647:734341 79046568748776420465122649:1840681:926403 10129082701533213003039141:2525095:1554436 83148266404923567683535454:2638820:2048934 23386789501532199612525377:6773313:2921480 50882129811232349580691004:84575845:8162644 59128144808428532717322924:95268830:68212784 61349728767196486850884358:60854148:55077578 51330531754964528749153713:98787229:51726351 32848456204697825644742795:31532846:29642297 89364148423540967691922257:130267598:95323445 46816004835983727356892198:570902282:41589952 68185482779828332101318845:178458512:33768269 93018788646639421687659082:746102831:539847875 42907973670843816522067456:609303594:150737560 89341999122281391385278504:9795821941:4722303779 86358522541707752468368080:4160749778:2529609484 78651110010819634611026438:9697811775:6793168613 44625145393152745238561458:3594264340:3253519198 74916909306489804758648995:3625278435:3603949465 12914405652554894300536001:75769537109:25679845847 29279269918378679231435248:17833513524:12177450496 16364124802207619903777006:46038260201:28981914679 91925453891685110919266996:54990530890:22347452036 22021722711299902872501883:15941954724:4887616399 70578338546924575847195566:696125032661:140469578548 24383989587812309719504495:700087814662:287465459089 62109458277885833833442966:606597986789:366528648309 71867523250725722961246434:195692020478:24616255326 61923392029400252197076759:320278956989:169254532647 31105774584061306008334856:5981076779289:3556195186688 31927442788492921813221026:9183507609098:2938878566242 36428047040522639153719535:8669722884388:2587419064171 40214663945098034155285322:2013072625835:1788928997692 62673583053832724243711614:7073886332695:3616201003224 16630458743343552394023576:83461995328524:17510309433252 86332599251169533228923160:44859893415143:11834997090766 72349256285730244785681398:84373868549585:39206655174288 10899464196894534105638751:10758656223268:9172806742087 36752376076517337623512623:15700193358435:6625188243468 11314982331782235977943906:965507335235163:922202477828703 87473908353148354240047393:144315920129000:4524442984393 98788988959841950518042372:162323851502806:585218526796 57531627361773462253800826:809771917730295:591637601912596 49398307213325089924940871:155903648909029:134076082678478 17313854119336537574944554:2040642361303666:779487382921396 44897488821428635853306077:7633045938946715:6920059163192827 49084916129252184821225824:6612495877576230:6165280202531074 33352029249212501584073074:1013026902974532:111898589439826 34082058807560085250902870:3223128291862778:2219765447342924 77899353943757813648826927:39454423819423238:15442841928847277 61209466162822595834222307:52983323219715384:23955068717374059 43800740147714806207737660:50181775455611057:22015806805998657 77721206744452348539868414:77239868375450358:55091171778607642 96976198831556261722128914:62371122024998984:5844998799638794 87990582930458296016405229:717597668801617601:378763978985087762 74357528420677871703745383:117680555016698779:17131646400694273 33728908129672160283553833:740270957965405341:213029118033187431 12805631565465751063194639:165883348205596443:92077515457922181 77660605504500509898410582:169692734743511534:12691427851502732 76082889327799638295176174:6931467850900421748:6761655107601028566 20735182299868378915259313:3586569339310393089:1929170291623706964 52893181911652724707153526:7950447801829818793:5501010205601049511 82650754716577189568444023:2536302378361986403:264843032283324305 36936156172625261722989242:4456196364834830455:1151884235503682552 90777826854201286595806822:96524082091060894103:16418185429640546618 92597701453338662468400550:88958229477686948352:12891260585685423526 53374950186226998309091668:52448266235473920404:27982904724679393796 90186325934592939649286337:65904892883151514351:27461609029714433056 44592151213942999640772221:70509938906027030167:44121176667141467580 85522475132732083979781055:506547131980967840837:96651857359539906997 41662128919819666623734358:369932037323766617087:12944379746440779331 82347496512453117502894419:720929893639791276870:341341598693695539 69179625921485392785771403:282928837065875253247:130112834102863840939 97107296508264402435590642:707559753485276293834:380820438113317224814 47581198505675343559165481:3314327547048417130304:712240248267236521257 87044504447637716594285472:6005668674516556030915:4348347869270038234377 63663477949709265703216422:1580590914979055196015:437076182880518124252 56730709361440780782586098:9193316824369418917040:7944555081466064449298 84881719526944408995005842:6863101016082575603424:5749261051196507461234 18590366260894485463081374:62506848054248379813969:25832388782716658332581 38066909061352308873133316:49977340342722714579223:34153060540323078344613 66893395261881145648606739:23566527256705011940279:11590907352321762094937 31749040725597972815067066:66006676788633529665151:65835867053878575794586 53424675592942833571652843:81194579821489631913968:79836650224145404175867 59416695665279515799301968:299927174919884155870468:31115031142452936949304 42676447214365618743167726:583783555500363738244870:60247662839065851292216 88535930910861055917175112:100041653127249223408732:99109546372742423856024 47305928634716980061850777:765251202563769000200552:625605278327071049617105 62216996707574729891574037:730433054630015834812285:130187064023383932529812 95907224838302251275493592:9089918390190326954367617:5008040936398981731817422 46446585577058370147411406:6520610016363513381752543:802315462513776475143605 17665575206754641970281615:1215653880899406505190162:646420874162950897619347 87058064461599155612429607:1084637915180044477201158:287031247195597436336967 18235169367703550700659470:2950716055154369204218417:530873036777335475348968 10997503650193354870206673:48225180047887269700183739:10997503650193354870206673 15458036064742438240174301:81610950339668765862507116:15458036064742438240174301 53360578245089451632525040:90372053381154994160202046:53360578245089451632525040 85762877092952848329094245:64432160628420864073547089:21330716464531984255547156 14065947193830608321386920:16903696557875025281684435:14065947193830608321386920 99247502269797435427963633:145789371730044046924058535:99247502269797435427963633 28525995779834464982579405:368418452282858111954848852:28525995779834464982579405 54625698417214335800619535:108123304656675983487377431:54625698417214335800619535 45737642243548298360774884:373804737274286901208755935:45737642243548298360774884 59126584651355331161102439:502281363039756114605687321:59126584651355331161102439 32585680461007354449802638:4:2 36334087956802160511794539:4:3 64294777731691538843941832:8:0 96766759096225153107686691:9:6 85556736936068981004149773:8:5 64500955297836600470541078:78:36 54716399852818042709234553:51:24 29319827365510321473884228:79:58 27108759783202591967699328:34:28 41568396313151042099787033:44:33 87179582837098225465534595:867:152 39032808212310048934345765:910:35 60191957642060203065704358:319:178 44857072363336965778071198:559:524 24761790325549464674108631:328:7 10870406346712537092219969:4301:129 11176967998551838755377706:8938:5584 63042726080838463129856797:6832:5277 24095908659998151722817787:8191:848 62156821652998787489244385:6406:3369 15650327839400142535083403:40857:21604 59213371522373138439125431:24399:8809 45633010143398979637361104:12253:11956 17406741922422316227886813:68547:21916 35096114338065052174076886:28243:980 97616092538867144349545506:492420:57646 66194070547064434415582873:283858:178929 39474218063784590440714535:737447:511016 11709584395214327762898661:272105:157526 19982266137329184310132761:893142:253149 49633329999284119175532235:6971442:5659723 75725157722607789687459561:9677911:2504636 24286600343005181181031608:2068627:1570552 58986170041013791274476254:7812074:4011304 91753171209295342398953137:3011529:1566001 19678771530591772955473116:22827808:3289788 98493179221515324494707768:52127768:31129792 85052478309708720177462848:24982521:6178763 46790382597375668963020294:22615861:17547439 20909739872049825650257856:58952571:8764499 62004762435067013629917382:553825394:233977602 94534021865703786343524528:620761910:154987468 57708788727772733081996664:285133049:156229082 30693459657410400220620351:196853835:18568116 43596264888313113136762350:979236600:490084350 86448636133307866743540132:3623021595:2339951007 70370218493044556024274138:7650487843:5385455358 71723976357842794912341157:4978342129:4031598492 11916177305958171419445254:7623516305:2691524494 41401435700697395665896255:3635618113:3094429703 64261507205759457702580285:45570944454:12463998199 24946354088778041870083666:75532522758:42701853034 96902926351079178991735714:35331990101:8274460669 22820477850449068186401297:34555454919:3858176724 78691610586567066653847404:39277515652:17467824868 88744857635538533284969398:862536260615:192270624843 67672834524645406687716609:775726764985:504855419699 47805774859383568565238947:320482986315:69067657877 74884611544354336861532774:259372923720:487961654 46885644796995339174023029:253014939799:125800928341 19050050693732343085045388:7717315507679:694358344589 26606948036812712632864192:4773893931912:72961745248 33122421216523663630087515:1478326549752:499052951547 45589873288929673653523731:7413113310315:851215866861 21667708580380112347840142:5406196190649:5186520522584 61016102311099905332876115:47421415021856:20070698360883 54813166580241381205162540:96461771403369:14425654756816 25603384619493286358629906:45402062852160:20050664992786 22444342875388419938096805:19045007021448:3347808331869 48875692930225395432388714:63653159050838:35509974402706 39492624293857607383688057:190268416946445:153141383490272 37033546952878212110494535:986699039767608:337992601647191 59461488466823930738563181:625773959208875:115453017761181 53820407042759914968803985:304482776836282:257864102134275 37899992714884477227331813:728343087881359:306888041076727 84939832852952018806441126:8889293553401297:3677163381078805 39344614252665241987796588:9725830838008014:9679612165941482 92765880880025125211308317:7166414061277518:1568638075292919 48726984148272770116965031:3253983280850603:262160204270031 39209304347903178607003627:1432639951706152:381615388708155 34472332294799986942438355:14643001892949649:2405720709648592 12434378826434354713470641:79862365571799381:16857832266686279 42926274617121149446015960:70419447722429726:68305236218567736 33207375791778792990885051:74751947677001258:5687158509192261 12771657890122891666832347:12675476921898544:7061966078496283 56435578301260408707692937:401256813482795397:20154906987562821 21923047647552038382807960:277882331815614709:148099166036011276 41136684446218953449398819:589466611757985778:69558418677929867 29165895318465743113484423:880774590959385406:379276886326959933 17992462751886341512213461:764433633082116460:560970695707056821 89944034851349112165817540:4604820383468269761:3115983688660964638 85404047020383378445445066:4225012715471064393:3340944813316880864 26098798689733169310949720:5532431801181276782:5327068192956560844 52943661851573870543317467:7694549178810245733:458860398225390624 89322928165708907674045523:2905040179251916335:1901348062529489573 25967809991586817971512760:21134012944745845595:4472105757826178765 22800439159679306239726092:95066152157835807916:58424600439576576400 25800927846649670725195635:67535382418442953138:48024419817123119805 10824058346512385983116213:83939625618231258271:43623041465229070763 32162351648559528492106553:84845969662731706071:44466416808866890796 81401076588800035550480607:282538694867148857784:265904100113878621287 13801658156637562557229663:739112287513755503124:214411893206047395211 86334968730182262142181456:805104937292880793931:345884517483085784602 50638671414074703989762544:347479541961275588284:130284516051233546940 68140242500518679496740301:325977262038022195106:237484924785987147803 13470893282786809193002583:6062549586847512097788:5970650398484823815435 40159364870349017010569365:6415191473360848076426:266247110108052142605 96395871188379732882904282:7927735482883649177174:2535451997442537645616 80644101086828909313241500:9298121133658876684019:1496494605471832744713 63045253160025245722447228:2948634585542112414860:497086549340180325568 51328111073704067821816721:83294773842502155837003:18530386722739826222873 49734947399163345314461450:53969270622343422437432:29249155985053249586578 21297458625113489514830180:92061384079748577211320:31278902691568179015260 34533651508877094935503842:31238342101160641422344:15283487094586163813722 41332110052249008797445937:85049198661473771462451:83248701434229638157202 65066445562565572621205836:614962385978032440172634:495395034872166403079266 46917182734689731250613181:195133925089407564888752:85040713231915677312701 60508882777567115905531581:856892515484536087386569:526406693649589788471751 58881999646980565810454121:638450958715293169137999:144511445173594249758213 15076066090969009040644564:178974259225613659452337:42228316017461646648256 96482273731188066286332926:3983210283795526321628778:885226920095434567242254 44786667375468928157763120:5654863452083801858499060:5202623210882315148269700 33180596065871091737740491:5857729131739539619088154:3891950407173393642299721 42383108924567597936545463:1400500817778600268514701:368084391209589881104433 85535130384394794292979058:4855605130607100862712701:2989843164074079626863141 25566262524516082227596672:17319810493396647184545735:8246452031119435043050937 28471637591484369427107236:29217971569899144233981270:28471637591484369427107236 55988309347690388569114138:14722065986962185031772311:11822111386803833473797205 64737001368330655384416571:49233797979678395549351984:15503203388652259835064587 60291055964260375521015880:10314808031206444630636898:8717015808228152367831390 48664194451549178286152873:230013914973696229784082816:48664194451549178286152873 34800079951438561645648183:814561678738907072294536627:34800079951438561645648183 72292489759829431961109962:951372953942467687920396536:72292489759829431961109962 24979061214314975372009658:902849288268464225571667046:24979061214314975372009658 37067585821017101264398914:363960720830790420274310235:37067585821017101264398914 407802020448409706272733035:3:1 300531715280088053556231946:1:0 251025238525357265959404718:9:7 580257564586420500499380777:2:1 858761317830091527830360771:8:3 196652273107281201053860125:13:5 234575866038663518909907512:30:2 429084684130740481045123644:84:72 777892455428520687659875984:92:76 473757137152336750520252750:84:74 518865291806337903719299165:805:620 308316563417460600533009320:422:158 249746098033816538832045023:241:137 112584747233547555621867739:307:59 592027954889434502189378246:506:168 240861062555340829182005643:3999:2475 194682029500545855962502651:1426:1425 218789460717852201023185184:5074:1796 897555934544887765511214382:1756:1010 567418301920403690163910950:3221:198 250263455806881518061097803:55690:45953 287715651277331713528066242:98662:61726 930472174905520055599602321:20883:14613 563094592701399082567817878:29946:27856 586408004884579655810015298:13688:2010 356675732127914320901169734:829721:56882 342500373184240646409769743:288049:164079 111029289912922576213147321:863359:53574 238292472590516581444008202:799339:461892 584152220493270584300330453:118404:85925 416317435993187210708015579:9752446:1667367 448710320493901355879322064:8462841:5101516 830613604980686948726553538:7875300:7286938 854435275417625252347107722:7398984:7221290 491248370628971110871024838:3281661:1181805 823759322733692292121775355:47965206:30922119 739916948486897274834355909:68539562:700175 115474130560394254897191375:21112412:15665519 269353067631204203022248490:97753402:37642658 404711852158972339186969929:38465864:7101225 822122853163676608253736495:925323821:124800092 625597399636325201309937476:155441844:126591224 164734365516864001332860555:490499640:72549395 542731320923717940272995049:872054426:343177245 292398752581707535038992459:386036912:338465595 253733345125268557806458804:4456728649:3148084034 720714047329368478422698938:7372887656:1035361762 485822510448796212395272010:4948834469:1044079499 567487863433405820109132315:7257046267:3732247690 627386505232560820575112566:6596080310:3288843266 151081203804942539716815575:80370232342:17154764595 775767380263430487417843703:14983125167:13562194517 882068218833549154936744765:51373706807:20083425033 872540851314233096860982205:87661812069:6877156179 873403941319828320270339840:42250451574:2985518568 186797332849602566825942559:102157442617:59655211040 588094145592512403943826338:397343551473:122196408340 236426448986162440102045425:488198096385:298326712200 999413492156412954869839086:198107948907:93967837272 196368787413046499030793089:296755334587:116820885466 927456898040686703422844429:7794508841884:1838315348721 863135459918219165122833897:3390585584146:256958209397 280527841949820524654611290:7138255280511:220514291982 171702580321677888702545311:2844421011275:395003892311 794123036846025365071135431:1323509768742:52822922481 999941195640790383027182255:76881322575165:14049018501815 277337838591672317693532255:18779075759111:13096624199226 161019330006200140045853891:96122202160093:94539863961532 802581200280335052905228390:16021918889004:8640550941302 351046382391939502894679357:78951209694102:23603119764647 547410239231977869119846517:930137974103815:337105751740367 460105347146247775342385179:821417188693502:345451371523899 739394173364597981162716543:118231038387209:15558000629645 710618991066595944507470697:800865575797587:106397987298903 790948609011436667522142052:719788637606605:298237275279612 974392218096970489915937264:2789299436125467:2612385919935098 408603464634836391898602145:3344989524084615:476416241050105 759598616935458735001600858:5248226146452347:2910128355260660 336339133841778842995143456:1462171406149011:45101489280615 557331665363484299897850828:2766621340065889:608571599333872 268935202970211875666224771:14790732846387744:13920508718784259 196365448515005961567181711:58698177096795450:53066677606256761 707559365284197582642668109:73743918625462626:73037261452030011 219553834893665977926709414:13074582579380348:3748868071943258 727448241498541734916572996:46125651311993783:5191068999722560 250533898388173490772985129:504060248687574579:275457465899410621 574149218890385439837069904:715136358645154469:267091630354914801 556513408946051009664567719:561572382230655398:377517724884470345 229293083588789865552217969:633410001749822164:83867936058806173 226372585582223762392745374:880675821871114100:790971213454062474 814653239128943350022959248:5392075977539867997:2678984727006593484 997756621430043085129350013:8065595687931348575:1734021059576996938 563606659511581060798793645:2025585686058021850:997190040771763645 470110102600210049680956026:4194439606360383342:155125961715318248 186796301778496529197824364:2255146027817932921:1213887627633394871 470827107821532267162485276:31333837087612317677:14998321001838643341 562823388393316766933720429:81185751788633183129:79060049256830969027 770149403222432957646875190:39633840030283629829:1683893212858120842 831807494525290038038252526:69588994506076501752:13611965219350838982 818248492024822321145834759:44138354374185131953:26110623560126285167 826087225116455308098825042:879195833362575018028:95263979996609824410 603106998092234966172606746:119342713937720226951:532562283419387774 294175719707094553275749117:273587780755384813469:184862086277208393398 581975760853276551258805344:652754655068962705866:598542751609515267456 232489844053482966902802678:175086842783164411240:79516486970780123718 406012701062466567223878678:1696208748395392596396:1390211551813780146534 933853950301513743864046660:7872270264030996826627:5890230836745305418785 109621274273730665448017031:6030632497105437382963:2467373845130137898580 221097855550181274574786771:8113084339021243934155:81143174334881194711 641125184605008426156513064:2814103759235135334498:1995657263718574506214 927097859209697187727145685:22884368923529867708272:6305379655187129630421 197218943695429559247405411:89891243670922897460040:87446325095645117537691 724259276311874395212782570:84034626579975044455025:48864445649462099377120 455934985096439562478466799:11310618941611264186404:3935560089503124521559 133734688930690885920256669:96191796603219585640520:28091652215661879933869 346279959305258047181373549:396787286277965964056173:281445670871726524390693 328621288865810678005695220:768931558498556187568277:287513386927185914040941 546921961342478068546885486:742380332544111596447306:530036590011933561668270 886115835370849340693650851:473523027756963009220525:154250437571550442048576 976369095835553264393820032:837520385276354019639860:657846988600831513383132 702707091950797246223061753:6879331395331909347998744:1015289626942492727189865 931321690222427725696159864:5004244277146524747800316:532254673174122605301088 316176137954282433199456583:8806732826477916673296170:7940489027555349634090633 315109323136386621589966184:3371855313541471274494130:1526778977029793062012094 828302404196895688450982268:4103240140614898342591801:3551135933301121590030267 679229994270853207274224291:97169328429193918194265236:96214023695689698108632875 615403656637858106485343116:67325238838855684175956950:9476507088156948901730566 659264368939267609592175822:59886060670195559769404182:517701567116452128729820 476068832707276657519943162:22341587506039207643477531:6895495080453297006915011 583128882196966024807846321:89208780836897632530160609:47876197175580229626882667 717511990185876218506967882:643744278519141474250282843:73767711666734744256685039 751269706263346844397047092:602907070208187582649693471:148362636055159261747353621 118368354192113815338507616:795878149817178488380785277:118368354192113815338507616 191157775888888540620126261:454630716085863745518475620:191157775888888540620126261 525354765942142723377669293:604502729572973609466766333:525354765942142723377669293 126285595487087141351592941:4784299003555446209861515068:126285595487087141351592941 995827892156766906510695711:5082577302745335110944785704:995827892156766906510695711 967500496410808188498842085:6169492535695325577954592048:967500496410808188498842085 669469210936108482811357027:1958340661371824979753457896:669469210936108482811357027 434403573568323109869628578:1452086069005387665918133201:434403573568323109869628578 119109941931001949122376299:5:4 204301445732964878765618678:5:3 684669827921063356132003925:2:1 903884205213628915201360271:4:3 722023881802419729531957504:1:0 562389223749811440660268067:33:26 362809759039387861296026230:75:55 550521676795740099055061267:11:9 745427169238012681888088811:15:6 160106915568220631638315595:75:20 332133848917898363470076668:186:64 284607085803533439730430025:920:265 731887704277407761743923273:231:87 387823640722762409234151155:204:179 492239411820595892623486400:228:164 743288657922815380717133678:7263:1634 668076836794493341125716985:8357:4856 535911195603823443991912915:1492:355 685198187392376422489259150:7381:7029 170637547472173880626287709:7281:2395 130878338312363734383830890:30285:24505 859417940361214192021632977:13172:11125 622719769898556380951863581:79522:73195 291550191678124548887013028:47170:20408 145679869119220656731949908:34043:20893 944813477044187635703405916:328232:22852 947665327564839781170959369:905744:503529 445297084434463025129398538:981002:873344 365736824429996849330261800:570244:452772 959391666933434757962915548:603201:303283 585878440455211252754534211:4607697:4104078 894083785565331744355221435:1967626:1400761 690615450045079083652480935:1540519:92600 733639488858289854342415220:9518490:1641200 612775575158803827232732068:2631494:708816 144727673429753937253456630:70439886:66809482 663568854056917846750315318:23794990:1891458 787284000274113260872515168:76153331:71994246 909781981102861966241628626:52807413:39112262 310659912452274038868171009:96934009:73587530 360178836354834866025732977:445227116:274402709 580365250661468335087475672:733637618:510430890 619218531100864141133330938:858427082:486402244 387953497711024200873346417:791845150:505907667 517091438475017089370908490:384996693:15530660 638081436989848468688909028:8256834090:2185216308 120489434094393297319202389:1893072774:1228155187 147444442142221199752879017:7182004001:4281945468 599186415959180078544568003:4476795305:803748833 392435222459429443505459793:8056628527:4131109176 605591714535682791118225846:83057815943:78185748941 641434699860468720242936131:10431534257:3509875942 201645685342821831800352983:78444389674:58978007463 405890558860168037145346487:39150348432:24127773287 268844514211196086160541545:73381417095:57985588130 275568138351907341146771872:431256343415:380740766577 284160395942179569068696082:420668683335:213219825147 197627664325231896420724699:960134025097:688902086187 806201843899049041505567242:499948868909:42541438242 726352374871778857116236668:229667778373:101337836638 946960914621696618295430135:6437632581080:2590081221335 572873219011525401468205790:4532548292899:2112605686604 705960740662017631961649926:7550212185620:2587346010566 363624232109214379796855434:7940755474658:7092665821764 146039512390635775752480041:2993053608722:1411419896087 884080184037822691886760056:29871793922839:25517893598405 247823374158026199781466546:81095003848296:57204346065410 988586138898786803659010857:59611657161768:43134743922505 846240084241854349816681343:21011969758963:424944707490 399971829309032524487989598:73033869623753:58669529539405 741442028547010379025101286:487458054879133:319694310224898 751151998499971994474413380:947958154716302:909568909425908 915926297405235700374846742:153552217352044:11181572978738 381557209680195490503683042:734431255842888:506803215259058 798688471126220026685746197:158719807507357:137998845301153 947349908814345479515486300:7086543189797408:5214733995929020 385274490750537721463221197:9104662063546225:8970747320270622 661640391918316307342101755:1401032412142774:588508388930215 678201395282656143758311754:8832032727729725:1764655391716454 655042061292802060652658433:5568721595143165:2115602741699173 822731198534258041057661051:50508351729192170:2774083679145011 461295001477773414351217255:93147194342312669:74473825320677376 785474684328198127769721147:42484845771481798:29021732305414487 542322016848681046841709202:61571664005420537:12810102564872647 807409453400234326633960495:33796212018485083:22920400835476436 263479285909624273008336897:290910074842772907:281292373740773130 243639911304802398786801768:259709284210276310:110569882970225918 113424920043172916427140032:496597499976311146:100908548515707052 392891013821877953788998982:955810113835882690:15911138350877082 845046532139073291780099738:696506512343522859:25737856048957344 128077080292911979998330831:3476882913302731286:3205658853390576473 777112008994006859470783752:7097534936514047245:5903294792370410547 600299547718385847969436108:6476945257491453042:4121481676489740688 745944504852140086221920129:4641096906685990901:4332333647836929724 430496220508993409070798110:1647416324733903260:906073615789187010 838128135591361229519912210:90354568479065509856:61925234350750754770 514298610132265037947581190:86780421892545936412:80513514561287729970 479807705424206900634706378:48967774805598670808:48961361077438779282 779250748557800234459680590:59356336060388702254:53395732275612081944 844525522422767412928931169:15371869598927210833:2515326101107431894 749519807318784065003386423:156559041247370339815:129385772200063685968 986138064861107657662013844:751243134596093325739:734398315447390897758 664334286972071015016715327:304135952981446381322:88388249296564487101 794800123240341420832079010:442975136463785148058:401167787730846825612 108941658015602232367159809:368763302130207051632:128247087944345827841 320147698244839959248860592:7172533203982267487464:1678685091449945904952 972040402147158302990132158:9667357890176551977184:6901005686354788235326 504862212832043836374737695:1036188285259707167414:194604956713195614475 402271459295219419566103308:8701582015392002816140:6024305662521378767248 252443132780965485374301398:2681740050706032051109:214847803864275206792 105954097228961444360728984:11040069196358943805677:2553151504660657646815 205845951078941314868777211:20017140422833932982580:9696110939982008907071 823576247066864237627522097:11819322145468432337482:5879970623872351776337 397429359751136922314143979:54094974917923573047447:47674004070354707598317 398706198418589991390528912:14789704063991209131519:5356261514975623039710 294389762661725925250672928:115540607624306751981016:107835042616627955025176 810700265655621751908732649:739840435103632226598020:574989217144463783900749 946428961560073047650507521:239244152735812655524461:218337489933995051264266 162056002333027431333286024:448722320577310106706665:67244604618482812179959 766181894763373191868583857:166717463910999521287045:115148092330391554612082 383784648350631303284279641:7912920461923276703170151:3964466178314021532112393 988321492120680203818417688:3020165727485131957376861:727299233042053756184141 855711276423558325216009618:3121159226146011099377220:513648459551283986651338 243433247856120230943096656:1808219057838618673348974:1131894105745328714334140 194055142568081642351069461:1880192381418965997948498:395327281928144562374167 992251551218944155316381857:17147159340602114060593821:14863468804623653862534060 918461105278729169671913479:22152157562141639455886380:10222645230921951980571899 408765772493707797144861931:11353011605492368854565707:57354695982518380496479 879697092891125563700800718:15611307307262663372520114:5463883684416414839674334 843528215623681930383252640:27774152788491383084781177:10303631968940437839817330 703911033726888729073274136:807818841252653544922317848:703911033726888729073274136 129821354509816955477478111:571102847361531446805229889:129821354509816955477478111 268386526145661531741110188:855354438289402777322962455:268386526145661531741110188 418187114431731013343428455:790160728332538487669189930:418187114431731013343428455 441272556631456707340453550:837707462957174629991930781:441272556631456707340453550 806270986475303829738742861:9099456970290161354993497621:806270986475303829738742861 448431604862358032206446314:7008652093854959809414257029:448431604862358032206446314 945548177118802328523892616:6625601484454566695597333344:945548177118802328523892616 218200052116896641444753523:9772093353021364747814391809:218200052116896641444753523 325084095300789881646459059:8755112224318564293084785868:325084095300789881646459059 547601118551452751890211070:3:0 783838333851427718418002672:1:0 334382223481408556557511939:8:3 940900485809352873387913495:6:1 386560464504366239616843792:2:0 136742544397160090377655317:10:7 205043464664703952798533892:32:4 556582950913579846961112059:45:14 138840794044066799940880716:24:12 853229126643438667097805224:84:80 361005206021477040609640190:818:476 711384142625070045278444641:975:916 746937457102724349673976266:834:496 808177774830032262572356839:264:135 516539245321434228243084972:331:8 315900193410729783737924044:3123:904 512515421969579988436371407:8073:149 343825090066076123435055070:4648:3886 541336406951384121815748820:6068:1200 411916541948777822206803526:4524:4510 182416153420261751620212354:25412:20566 921370565459665236449448693:94606:16187 428796836591861761817656778:70901:17189 585003647059046014636296707:20508:2567 382321335874964113157676339:12807:3522 413805035118439716927079058:351854:183146 573167352914670654212476980:738093:491016 405872036691978736720910544:177288:111360 853164929770005442532382903:799640:97823 454262136490527963590670091:484072:324667 693411569390527194833761585:9151319:5619326 865769539598413780055266094:1998564:1943966 841776630972729409488085580:1900850:741080 591394427120674871086687361:8112779:3512619 172376767183106965665714367:1256102:627365 206131180814539447329107663:35592467:10912216 800238380634866256479324524:65146512:39558748 867493976435952224440500117:74666283:38504127 355043503264293948561908615:84631275:17936090 593246808327852937494774237:67421686:24345527 411861104100949529627865119:959040889:520654346 991234681014175554489383540:611033722:88426534 710149027216916403028246066:610258371:487801975 508586984410921185055296513:937064571:679809807 710449865841854812159898554:350793569:39326107 967260026621348286621625090:1628196409:87144436 253776049694899341905497978:8585629230:2641934398 577850408944309556396840579:2213075462:1414940737 425811550293568874078703553:7816094845:1604609708 472957928104753470640853496:7833690307:3604380941 446619532577758532475878135:86098449815:33452912275 147565824294804876408812599:31900276589:22554554316 274842655667843681299266393:34449680874:15413239353 962928334875322248478952119:27784264765:11259943114 416307922546726178244662478:97618069040:54545439998 866650043509735893076617282:480135472972:199288250886 935205607931888664018423740:182828669644:103013731724 763794550599702205956796277:201056719678:167996668043 437406824459639444272889424:269265359132:182222939604 922500111796120005998157614:126085901112:79147424342 979969968902178982682828999:1214986235306:152454178693 857136316244783328508500186:7813738159811:4890747082700 947996893254923248602397106:1114775786534:4889262560 107583331859473104731715605:3428702333497:1393581232414 168190637629568798147230749:4240435547957:1041094189942 806857951188885162554889533:54477977564694:34908685130597 699385331567246350274788596:97393212591424:10503806939828 344117824522931713475242066:68416459163558:66578183084810 164492231267696773352552971:63837161328829:34235252006516 879816936485400258733820736:46330190539530:17303334042126 643187731232570818415817055:375039465407726:288644828890869 759339210226094572821009112:905200722931928:738657851900360 246312348710237039828775988:519726955464904:338151612168004 257912566091883883911012433:187463826844027:170193863847833 252016564842195892390037277:980260059032031:4854099266739 194022703074564225856082872:2015137991595731:1088554038630597 330834177995982942656090241:8695363242303498:7090101512741577 435843964285062494996622869:1309058265804655:958987066745259 844775374237710764097771617:9905085561108267:4485913644745175 304083479292185385756243858:6760310831011936:1454938576260978 510525553976738451773476742:25633804123512288:21743621305897862 361287146473985392588366713:79683123483301049:48892619804791262 941861745430762413098211429:48646664979931224:3414452513252277 324103650946609404836144746:56372521220134611:41827400092181443 309984714550695715066735042:38463301428283890:6015018315239302 583265688783735723562906212:319758403374233482:146359680586650132 549128811162989454583747678:135469883479831510:104721623716465738 117094418481567555589786306:670801505154371031:8973867729330298 603514405819590641913282437:624265232391927135:82729354043463572 221280683050546064860296271:306707530637385462:54849032528357437 232691108340075554081198117:8264392044856097546:1618033327149190827 684338921598743928773215164:1393824753913998478:796594704663511904 703410068434450997701635020:9783301299381212881:8928477503091184851 296185974732240327154983104:5770497631090114010:1637272827501772794 415480398360901810941516793:3468231856124612954:1282337562139583035 767780753648455915621407288:65155397001160643507:45405696079398523915 206158829968910781276666479:47217284132937012764:46071636918382847071 204719382765807635629070066:80270410784161158076:54943795758745623870 930026038540953193346700479:41548633440562643790:14953861995621451619 985687500127764047027690272:87744964188680520704:57666011983673271072 322263868172172745485799503:701523887763781639638:630706797790995453615 481815298679996976546846608:492631995862762021471:23550393620781285355 799755946995153375891007977:881354648506488963856:637265989186264651881 487343791002372159052657330:434846349962218871220:180594614452385751610 466154032226744088448562960:946877797175635246936:411410395802570488544 465269488689603873368735967:4268272166206731658032:2212940072882253299775 285625324735325817689123230:6487447538125480243119:2471974275299025323017 626370804361304896435300048:2399911116762539027601:1202619632497848521851 879331061721482960771061717:4778062555643329569172:319293662803508492697 434648359860791036262445631:7013590972064942283298:2100139982433081901975 382240408712325072732670449:70118063019888446074845:26847190913153178690354 366891308311148400055146710:47615568040175049076248:13356561599646922655870 946154335171774801519144597:57320787055814800584492:17424028495703071519645 103560794480998155158972169:42639229463051393351823:32745344709372100745925 575411153453456671249912018:35731815209475825336500:21733135267455856252518 166834327601169435837070460:254139060862780111449430:119103675185682726244380 976988261442703313651907571:755952487932118864034186:297647034405741319739259 343053764789123687448723940:934418783294198321112341:122071320152903600494793 961791280180664232211101965:583096509823907036839319:265135481041528463064934 621691763344657699621559548:744654901148826100075449:649575786536732158635082 389103210845283735289871174:6967416976345953774335371:5895277146256277701425769 412301339365769016624102712:7409580875990931152773709:4774391186267803221548717 329962175898954016256321136:9211801907796368615332368:7549109126081114719688256 706612724788583103069130455:2200282023270412721481420:322195318780619473594635 637162916025100595150657670:9202414768115200269972340:2196297025151776522566210 945581212724937123611803423:45651706841745060580644135:32547075890035911998920723 530416098429285108596565197:43220287342626100190184046:11772650317771906314356645 103591626894057331652770256:74121000501505494644538889:29470626392551837008231367 670531889433260765148150382:40746692708232186604633934:18584806101545779474007438 596788268126537188465676418:49194648136973418079393494:6452490482856171512954490 897069684909541612322760474:843178542831445867333910902:53891142078095744988849572 907365032230207293167625844:891323144629813984928968011:16041887600393308238657833 948357805645230063381928816:852406401209414653787859321:95951404435815409594069495 653781437570299355041870640:625884750303313990111575048:27896687266985364930295592 625881446186573902348949771:399907622114458585944260801:225973824072115316404688970 633943712407473053571870172:3454484045037379919058707137:633943712407473053571870172 131596228310752070861518018:9214386493494085875158208396:131596228310752070861518018 366357255233851743982891632:9021413766433898750437810499:366357255233851743982891632 272959384477352245660110979:8767937552857349418327343464:272959384477352245660110979 620113919412733570847429401:7330714138094018097640066759:620113919412733570847429401 219936483359268161709118594:8:2 247565909228194795323739204:7:5 216082279943316571894476272:9:8 118920945863430842386222285:2:1 285499967916604412461538442:1:0 209374174980318740272925886:67:64 285550237539166787273152580:72:68 451355130814942678162113584:27:17 336691670956441067105236488:23:4 509786636560081419398182786:54:10 368738555874426418092576391:301:3 660338478451154613112373342:321:137 844613853048940357341561847:299:257 722142749705414333720160535:660:535 258824015551742020875832446:529:81 436910356670896772170165980:8459:1311 525141402265816173640274150:1072:598 192004765953131014184124020:1995:50 797154280934399581799271144:7402:1668 470456737223636881326078255:3038:2683 349602446730808313422944476:69110:886 572902599887674866153097407:88423:55724 666685118815809226284909863:18955:12128 291846709366998582691846657:42362:20655 452621553204154803208540501:61893:37894 763892631720915304410014983:220044:191863 393237346738991242210092963:369741:1992 742209247735731577638781507:288340:231287 476602117552734372204722260:189672:120412 346655154886955866549158100:380649:341830 641109352108107013026687097:6843704:615473 400592179597947753151214964:8629353:1723509 720236607116857140297986538:3595450:1363888 934293183330477919974900444:1526043:1058802 942216417330468758975476154:5680632:668234 357074943431950590528047842:94332331:79030869 276472360744206026166886529:95408363:94692320 880257455316157899395035786:64718931:44446432 790176487396646669024097755:69197380:38721675 582803308064338896825304907:70359185:64829007 587990512567077547194535711:595283714:39598783 172828228760958434452433961:596835860:314269761 190988398477448434844630956:568796245:106636751 118653134890254439676375230:135791025:90030205 890071341039309218526124079:580936506:207889601 880100687791248159093693907:4200589654:1364273703 615582855664093252810029047:5548729632:2499379127 692047674431156598895512606:6697648899:5920808475 746345358986477988563669139:6483984492:4111380867 246271801641422865884684530:4497220452:2180192386 289198257565756927191443335:68507609956:49281948843 102485363358084267911472495:46688168851:34022177765 148825821732754899451064215:24585960132:23456598403 502396863556633343661935919:76342267994:43835213689 931144538854533942281773034:24735903542:21048888024 216820867579626310096076829:870688917161:773454544669 237912378921247755760166571:300543370991:95975844130 816916295981628991883879560:720536877313:102627166915 808239774888356746883467035:769981169559:703631087766 140526520754240460258503101:580969095587:553148703084 476209635057173621699881228:6299851506654:246290445598 220161040971103301378798491:3181611262422:1981721370835 567017969821011434428187805:3861369131371:1323311116084 880996551408328040036590335:2963343430288:953303495071 738507010505047515946166805:2163375476058:1525696896909 187254567966061428153633972:90548713094588:24861781565896 200239408703287181280883564:50463811129998:43157060224522 101631510724552162609650898:45830128968615:6047433144943 565879407043393375232367451:88230030974570:66827162975951 737879143218349153151988483:43153958488011:35561100953556 472632241543640483370899438:601240514476864:301407503000558 216275637811390113526062519:370135165661408:217037150393495 276914461876280676618215865:957597767470639:8006002622377 558501550988009133753853476:537231173122912:482817252829508 656364471395118598285660796:952927735508298:682539387741410 962437518012711160782520177:9521738764970561:2203755123134647 233525080795691063855017472:4730564985926286:2978132790152762 996331137280676021731211822:4307817415150145:1616095729452422 901591435361989465191032659:7050795428107562:74872578505713 918800223558972585280836412:7466015408886673:6902629005132915 571452708897182941397872216:78926035044067956:67715106192417688 299224726315464937831795958:41105400539256261:26967308187053552 628741846625290575954444011:98161978994598036:54841388232777539 106140786466567678226283769:83658844492166125:24134645609980519 590039423903261797364787692:61111220625375598:24062639844922232 547093463105727957621009377:708889692565604460:421553862333868397 177111502052059483415025401:806184239087757700:570391236856313101 470611333860555970301497788:615483291856798443:84061048951300515 685664328311453194093605783:890340332035548211:140480480236156424 352902585330655292905102061:765713412103931529:658008246104099318 363860853765344032403152540:1257846307080250246:988410589776268402 757939285478607207094306666:5115261241613781485:3920717526762756491 610385736557283474081092079:6975310964968171866:4020821575808120211 791251009104537850465636016:8501597872995942863:693830417687249562 589281256875208800024789118:6083890728779129303:5622549971825824490 332368152018649807095813632:37934934232240670926:11824977737076195000 526239254602290767571953089:98961932432876548634:74392685895568183761 879909780694133350092233281:17731941203529976316:2967604201320238993 930375343907415686242884462:37987222773831061420:33124191191480774142 101693540756812099232773318:45791960921431532811:36117402751249023226 429455916929770289273455394:780896823604776023161:146994676505784017122 201994685616430667268891547:404289037402942243531:158147836037075741548 883018208248665763383458554:169722255519073605749:156125449056986598278 279092983760120394907889053:315870714393381730098:44255703279790389487 864647539039815670546012273:199747125399406227897:159852151937785989403 779638309948084129755200157:4322591398454840735620:2757548573690156570097 154029810710446006269267029:4750475931763039536670:379098961212332278949 439775502795055982149326136:4433213289758455150175:744451017231251966136 212856471053377535436725855:5950028618061468229729:147270846570986400609 141450837828446189221489322:2945506924239917487891:1704312596871617987720 263691209736175407043381477:57500456567936748147980:51616372185416784893177 327260609474699306889520217:44885880694623105975746:42539210896864326331877 682680812917743281656912131:88490915092678058417162:61893892824739026924463 558945308350844935973577106:45546897351682551241978:39330948348349683265068 910226632911825845774800500:75725971247702830139661:458514437827496075280 196072447214927169511996199:520913884355872389538366:208826697119151045570583 227166094397219034184980115:634888166835366203863418:511018836993299405739889 691012427225287428332337554:254395416829802842891468:74475115542907039110466 603143985592469879226545001:589020604526077784486614:575907162292305696738879 119105919511749453346858140:647656067414512600510757:584859174893647453389609 143400746713980153230282632:4322903951530101784750645:744916313486794333511347 110545904971582990213228455:7883010551376899678284098:183757252306394717251083 177845312244379187772434805:4450650150938249541233538:4269956357787455664326823 188097729133741873766195716:9496378803802993879546213:7666531861484990054817669 184232727334329883395839579:2517308481204748461827932:469208206383245682400543 412959214425901344350972023:79753939741690298631261604:14189515717449851194664003 494889478651532755833489119:19604873170758326858318246:4767649382574584375532969 425745694608340188374811080:35755483252478818010371490:32435378831073190260724690 525577987955014620745812200:88254230039871024462572413:84306837755659498432950135 832282150384369456800669948:22136824669214196438840124:13219637623444188563585360 418385377083331983765119427:753171860544632501307981903:418385377083331983765119427 518496354500438015051201555:667474907872823717762948113:518496354500438015051201555 174813745848235044292882187:284886384118173407095237381:174813745848235044292882187 205377407865817390473687380:437511185679047888516484420:205377407865817390473687380 931373270496127529940149189:453162912152843359426151057:25047446190440811087847075 446330478887263458243427941:5767550279527437246383574266:446330478887263458243427941 608031122933011254287863093:1358054433780046761665645861:608031122933011254287863093 766324254500243329794640648:7157418237482413461109097619:766324254500243329794640648 907643014117069066747470242:6840653428312104203490441291:907643014117069066747470242 627608763123551600264639439:3331988507666830008548885347:627608763123551600264639439 664149519183289054113968148:1:0 447678896010712511241969912:6:0 284555432890266958277329794:3:0 301097901444779786028674766:2:0 502534833753430565009579343:7:1 132175465398391015790330714:95:69 142827563794520327225548984:61:6 359202699584028469488053133:53:12 449178119120984877812148876:94:12 103970429035496117851305288:98:12 663336654530172719742115174:285:124 397291049243659898639766273:173:124 260508125888031518183476895:910:105 432943734400022131850204346:461:317 222669027167980911189585709:927:616 110442636209251497233916969:4767:2508 804030182921523707669860825:6874:4433 617622290924699805370460532:3975:3432 150958803975396058619669013:6196:2045 350281536994044668013438024:1895:734 686872544765033843214610542:59535:15477 357981912193555401107001399:61757:19340 234981991493017798337273090:42650:590 483017867636209806221301905:45932:26813 542009903537805874028880774:15529:1105 354290713718474753725610072:570184:279104 471398565069387909472348981:719068:279633 617990432101284616971590587:703316:190743 881933315087828041404474301:488413:198654 637031170391515388315234162:730645:598252 433286575471539665756482236:1517806:561314 492878904552676761863395299:9437682:2983053 170628512101611964501867988:3578627:2937676 529010064637444989670745481:1449684:650085 813711755127138217745402235:5604959:2205826 278330845446842600908523028:62848348:41890280 880985483938404092009556700:45838866:45350734 465591431699902949903229176:55334762:42007654 287999890255415121944354288:81524839:58430455 154660234621558856251913195:88420397:26154238 865794284654182010155155991:510330505:37713666 499051191183533511577884011:111870948:56555387 977588079334660556309187747:909080606:410621947 426740524199148703869556764:885159590:386223944 236389057432901147340544595:847817096:107748131 132517483776473078910738498:1380409828:916435242 458793438177976569742418316:2350553812:1682491652 488589120594458933677622542:6248577105:569639737 836196542229303666554731477:5339959779:3087200467 634145572141055886080312726:2100506418:946609052 131411594046604290058501414:21676327473:13512372145 378398172576934891423878724:65888249075:15132573949 900784669389373732128538600:37982450932:35995768528 820187150231971425925235195:25850051982:12058902503 259090440093612730975069370:47999353009:30948624007 356338273961203288295531119:865364723468:757642860663 921078760744068964870142396:565900894884:46469858924 671520576801640295422850712:544032651651:27555462219 817354420179780318094912768:554184548186:273966861440 174449449461819577484383001:598402158774:501910914359 615555682694505294182695106:6063788197883:257597858877 704570263533669134306306941:9600560382034:6227815881393 319785000233332378383546777:5040050285147:2256917870093 941946936857190906540241235:2706330846878:567552057303 146574257504894847957538882:4435954359929:2109874788223 271343471730772498036411246:35390524416977:18626129340057 912549755478464932595739288:86719122883110:68955121720158 637658075067490434555184927:14935587484122:1198766583913 511458454057778360951806048:86026951111047:61846314280702 928307919063189580265304529:53756520405898:47578256755065 801613695035278698204121741:334042431270542:331395152817737 889592410316504071309834459:440693303826322:280419089787385 264909865284853917772048202:174452893355271:107299340858006 813534513836483229860478448:453733767348549:271614507633583 742784218382017851761575898:644288536802180:176999219595898 571510890525765187466108314:5886980388883377:3840994959884386 632151446644191779855283162:2648803685479009:2213746079874371 163054715415147589801595653:5220467541524526:1327826767981231 295526867175576668144020661:9120437650606690:4082873449461761 138175100867821790014467073:5255828182945998:2227751533952359 282724437197136217892285985:80611922929281968:32218483368909425 825374318687535860631990402:82257482901970473:23342678227822206 211307349333155719907999976:60946091065518424:60250095321357184 411165684301071230003049058:64093245819378705:414348050036008 902747579782997980323833960:69019916043656683:17801894659684862 570975345597016329411595991:542357095235187638:491669448433453099 971760772169034720809057520:265851189017650222:39784046539948830 907959579135185478110505947:497372539144598017:169076392188362570 608570086277968725767453942:922623123955586671:51123920599203628 979133236251705393139863185:273791572656657141:21445959365861924 350108568133255889185824057:9524272384649562116:1166950845182202949 364519438618128718421327297:4101098910741308040:42397901255037017 120170822586011898100513694:7105527578246781890:1418901270495484804 757662204765103643239290937:5688449959975454893:39396321786821139 669723421492512162697229702:6331721023421158085:3246862332285207652 788301537058102990939237487:68703630193338464790:326658466231270517 948407885466993682414342967:69299797127563218500:37193754178138331467 483923986997860251588718821:57569508129373660596:55626601292369178249 674966298847544441726828442:31142190544843950480:21631093926116105802 451076667233882695753935901:20064575773677571539:3380196885303078307 316648922667148817394595050:423252197600036433756:409572238360135851258 836034911689172091658428517:111612243470930941464:53602859746694092597 873545770281786474691551876:719118698324182612856:646204675590820403012 986158772609579032336999536:559187385285773508677:504164541446468624124 938331305676955780819641596:827868032937982011413:13236025891641793593 746000291765506189137401756:8932771107587172227365:6711028686262085695876 473312095926745324355590299:4171795406632981042485:1048067200460180454624 517723265986870149520249939:6061296422646558624632:3693342936991155932291 572648950207039732829971206:1840778098660267540515:1291494817103651159856 565687771657014991349701843:2592353461462746860776:2545770844610619188555 465113589830320957217299364:51927838607782566495906:47867259020291679965228 225972083489847098424039787:30810926013790895074534:4752104704673947407431 987267629298877441760883224:75486398954422848488420:56503772935429229326464 707746773955260723515076127:38585468667314865219049:12107659371465667279369 777544558992532718915546044:61207957240123303090809:19878171246399752999317 651323242183650519387346619:730508768762268433286126:439929216469345329408353 682860962592998174480684396:463585744367703186951033:462746883739083288763820 947234903146017938762791412:805058091430549070762292:486587623692231546336020 344640848496596715244387953:586869587398722890796739:148400693546378346702160 188632572961476962263522228:417109479519248316849210:99088218776723047679308 858863926340484005792090897:3576269480875088909860232:559250930462667425635217 342506977769597322625544820:2972929619448302724243810:620071533042509337506670 181561755365098838902603991:2188417128459007360885296:2111550831460235310009719 631490887196665027352291144:7768125373098569027608092:2272731975680936116035692 995532069534731362447346247:4957837706254640233459120:3964528283803315755522247 963961054635854926742786296:70634465099860104442166225:45713008337673568994625371 898956177708423152597272120:13082679301311824884941063:9333985219219060421279836 223673502235487083001705649:95367289353562436839506030:32938923528362209322693589 238159555421115086251754178:99491593796531387133202595:39176367828052311985348988 753202634761760842950394507:84901574563468498729429994:73990038254012853114954555 503189392510927431596451907:799685488566502673862788601:503189392510927431596451907 383422649373962366666247625:230877247418555903539588873:152545401955406463126658752 382123740517612587697055481:907930077374892584078883174:382123740517612587697055481 443928675742807067354967492:805292450859536688859096078:443928675742807067354967492 512049518223872400344027001:964824012335811172886519946:512049518223872400344027001 308208585193155996139406539:7166385983738603263147332254:308208585193155996139406539 805936174130728446314455781:8554095750137094628771277566:805936174130728446314455781 490719737482104354171372892:7753535384144137097372678539:490719737482104354171372892 187872014829162056781841516:5202714175069567367206377059:187872014829162056781841516 291707290549459290853549609:6908333555023747456102811551:291707290549459290853549609 2488615785285356270364077888:2:0 3831867817064472236834283244:6:4 4870058022183311741663076067:7:3 8575060800956524029411331615:2:1 1094950768658764678939374119:3:2 1037151960035414627802295584:48:0 8485257913158959251267732205:63:23 4790843087702998450833530748:31:13 3695908276785755101881463533:83:64 4802799271702018017662726173:14:7 4940045577425299265638427441:142:123 1944498757542560006367338396:815:341 1258560055097683901741495002:797:54 4539437495192556657007940829:695:419 1536690081053314754034455738:121:102 2000070963430004885192678584:2180:744 1004953083466872507777616056:6868:408 2460775899588877520289286353:6090:3423 6679611905893303781274308135:7795:4490 6476008368764159877482837299:2231:289 7327242217019541819724737504:94062:37788 6948711752157984604996295970:93360:79650 4934364788857575186799356583:49149:11566 7236164284409101888744319157:99739:90274 6275403876499709861786468069:45626:37739 9461155305686731887728738559:213470:122519 6679283966865036425479435700:568210:297510 8280958456959047601996720566:378957:97943 1848395700816380270619458275:302749:240933 9358231793234456993613033638:675273:473402 4274013058387373734068172730:7425039:3997730 6846900143663663974470437327:8872051:7736220 5740929536724688651183321115:8658428:2478691 9593724958838712922607847398:7299673:5241721 9294992685531645254508473164:3777737:3759611 2920893664429527412105674446:18386968:9047246 4835877047428575502902820085:45301949:40576426 9655560562113006790591156944:85203020:258464 8073762440173300787415279399:84979990:51101719 9925371249521951583405040180:31058466:7717402 1705164635461927059870745292:682377873:630447314 6402131745195389124619009877:277421905:58844572 3077096797397532671344966511:637785553:183358227 1566537980448972456313370964:209730154:73266694 4903626207623430389798199576:474599103:388931274 3902160589879190134597565048:9651341128:246277616 7561955091388411482576367550:3637993178:1435427066 8611079390304595046432537518:7834263342:2530346500 1449532553054471390859831406:2273555617:640012590 9810114502779549746527877177:7979505631:5391502373 6673942716337847333418440595:45112110389:19266929375 6116931383425427865220155520:71231028075:53879522920 4093330504475944276515458785:95260460422:74928062827 3457278988634431440800329200:94406860288:55898015728 8515934648490653333999194514:26217851138:6040357622 2706179378381949040370302519:299381273321:201410208015 7261050026430254582068039322:563540911917:340631132807 7655189013820697272237935437:185831681249:21834799877 7618597060249729250112089742:648784270427:411300690856 5865270854462027312970179462:433369682391:233425869308 5576884305867692568715299203:5690258447176:3482587477859 4544254966271011709090776707:3397802668693:1585012789955 6203197776885984325895892338:1653713060398:109744838800 9923843335028571529992244252:8072025937336:5604083393804 1584335836316041833646575002:6996513991757:6643954946056 1494870824319063308991314039:70337488750688:63614366458839 2506365770944418532759656768:24375153585428:20079952825012 6042720957348370074635809715:97608987810726:81242690542229 3317241084838236541335521988:29416612091910:11290591000818 1079980615789121843814214955:62241413292272:53711752420539 6534027480238807269834580637:467115579198009:295350688599563 4362744673987180483258961537:567262767852711:252291133412024 6344663152012361067021881581:923923996572772:404191408932297 7585784839258873461443228890:453329938095783:331673182485388 4332998356105882339522494016:603422567827691:538729291622059 9218990607648086349663265678:8471277318817219:5965765978761115 2248824082302955521419121653:9505654029697390:188181583354783 6580637550007422611112162814:6338916301943828:992042076327550 3834205840378019134729718030:9227851335654391:4484698290120941 8170731644354338506156431280:2576236285013869:1975756247032993 1046470319816593451119984271:67781506027425882:25211934229460783 3723051370689783068684625655:34315478540184908:18817124027150039 3369010447993730530153439015:41187183981235211:17445507090150491 6821864122757787013913665902:66184363591968910:22964904079477232 7043745819178513324973043360:84616210527559113:2240672141177997 2886955259842220479140826297:712933367629392709:19052940289228 1028064170975886824020808258:561390010975734669:1946846275101812 8997731505880039886190501499:749654525156419564:103797129211645611 7537866434494650498207424999:896977852526727015:182656821615589474 2487512475480801960332044089:904058270543036012:794220509905671281 4227595243110158282250419268:9514505404070489141:4971968602716068206 4403531486599090286380643521:4550433340395414180:4152461601333464161 4125096998167692180119580238:4252177595267965424:3772793147121071358 4572043159415766660450560778:5908005027112532033:1443166247502353275 8120633813888821876477545161:8052861588764223102:2328209351517407525 2565892576632104030160591206:97954256264403218935:32820289533189177466 8988407002436326066387840654:18661826190058536690:2021059062820417654 8370005009400425685174928121:76497145250752082854:19895772603052872419 5976309135398054399217658336:64355271725027791956:9040675992872120812 2024897849841033547446464603:91998102252815219714:23660790711899525521 1591012518176566870116608034:467309161752526786050:63344870361161126784 7939675854980025647662577521:335767848887041667159:175646150097479036846 6810322340904615016732143813:989495617370756108604:14876301608532081333 7420136854717703737495323510:631683662345375771805:283244188005659166900 9937259107600818667948558824:710920749326381812446:342467661776996621472 2666376454800572816592444674:5069662333531419580633:2759466723282417260223 3349604881855720002478611105:6123136902299184012499:4070821974380281158145 6270360169173606780740620753:1856081976566969726637:1117622873993546556304 7454594240892862441547094662:1062975497808589771695:223536112802138644412 3048722492875977371810903767:2947933818947919575807:1764592047373626638244 2572914349314354124445588893:42583018376537643072712:5795985573192349257141 4034330099238955436635346764:74495485016874926655846:27108150093783588006634 5348204856165170652047716509:63884936896101062890628:13478971174071095902861 7305060672356004627987676121:27334998106502337379672:1108378106981969371497 7318288727792179198632944459:82750459913344184341921:3553975846223802135061 5835346501591931297950596755:217275928565899112088170:184164026144743710703235 5396435236081061018802272211:334025942509911178471132:246134833445930601134751 5837909259100063399580909665:500922525170077664465629:158150767978297898469299 4563766248023026461582024143:780424874171905028871885:622008739897757768112548 4921837563420400048208793994:557848331575378045217867:499582262414933296771320 6537928583094723901052819882:8638142424131118868977259:7492910451598036106012078 7848476423434696156093966738:5587396766500586151376742:3771363267873199561020970 2870512617915452226397043360:9422802224660646467658927:5980741618615700228729552 9040637008186366570141991311:6454495380706495678357192:4343475197272620441922511 4957686805714100069983663894:4077702250825244383658049:3278570961428143839134359 1632320722102647241425284802:11316632625416440241868954:2725624042679846596155426 6687801723421021851556148991:95488515263971611918758348:3605654943009017243064631 7484296110231829476762961438:69149836621236540450328015:16113755138283108127535818 6985764615476659087299827822:52832949338213006457433195:11815302832542234918646082 6766358243805835512151049847:27276699610113665540069710:1736740497646458213761767 1349786606813648187590955360:714181841430302879953290396:635604765383345307637664964 2213267969601503637711338027:923617400118511907601283796:366033169364479822508770435 2314899328408551687314470338:228099473435207612131801376:33904594056475565996456578 3275888464927588072344103275:957568592055689420409745578:403182688760519811114866541 3811228192708951878889034120:623419817304739925244219902:70709288880512327423714708 9684170445370642102217668381:6754134446656910368846074643:2930035998713731733371593738 2277889756816452378348706810:3927833200941943101259681871:2277889756816452378348706810 7805533443653585173109581402:5406217729396856133039399748:2399315714256729040070181654 6274639659035470486192166939:9379744396188321113872825806:6274639659035470486192166939 3164053490513274629860007083:2853822412984197006388131563:310231077529077623471875520 1770766683582951867127362986:85712360847673625125102301738:1770766683582951867127362986 2214336318566486224189263283:36516132284075828290162205846:2214336318566486224189263283 3233826322774576855470668895:93064931515848380105691092795:3233826322774576855470668895 9840493699744772531672862567:41194769109417352987671795250:9840493699744772531672862567 7509399177828417030014570636:77475159661131298554759703807:7509399177828417030014570636 3306904445584320206045874427:1:0 6648550731102747169760023312:2:0 1923989213512500447141458040:7:5 2045949056620618337906629984:5:4 7735567263587557673427894912:3:0 6551038455982311934206933928:42:34 7340179998474874559491264244:38:20 3361429451499193326672236392:84:16 1992728998412473039758407019:19:3 5006273534123938535455681403:61:13 8443954977091387358710516729:413:318 7029069582494826594279786029:895:189 1199066636692944574230848187:847:477 4976291658498210675999445265:729:647 1131430638735916915926679178:240:218 4350536607247481430066619271:4230:2171 8613642088962905416659321410:5589:2675 5526854081982971218162559453:2838:1973 9788629118696935858790413448:7903:1426 1577022310008414756119164479:9719:2763 4716878811076580692355532808:75536:22440 4272111933490882818969295260:94047:66684 8375814457011553723563569737:59314:20043 2774524706677629102172479573:43525:3598 2061867478888411483483110422:19940:17222 6482784016995889244474752867:365928:142051 2523220303273607702997890912:466380:175052 9189987367485563696038682008:232848:126280 1326603185548712083877156202:469816:86610 5724483435091816740905117133:832168:761957 5448811910822736819088659368:8148178:4052784 7593538281074983174536558847:5881388:3312975 8897625818664806247710764375:4219467:1720771 8505218630284905854118413382:9498642:2039640 1584606887878065592356713435:4184953:2739511 7580745626069012564686050201:53305941:7893984 8147276481664166465531957802:61358540:52918962 4803609033675850575050921562:34126918:14913280 3897867923489686406398718486:29947076:17920878 2543585444041557786749555123:66330632:40588451 8386763323354349523678362493:973292058:164070981 6280349420495198162589161506:783868002:237749272 9726550537755994687064264197:240862588:172453061 5633928810582611343132209506:634474664:179150098 1370065899966788419796145887:928014917:229366964 4644388625277186213525475335:1723885749:82355949 2930237535857905970789471184:4163572589:551096285 1838425332328211815632444062:4149386899:3619323798 5301040430239791637795922514:9174486044:1977803366 1278624281241470290783220348:4197143446:2258152102 5073851447860654552082600399:49603874651:6664409351 8495679469054082695873847249:52391050993:51613949358 3439820538088948523720154767:20573138016:7365820847 7423369464106441977035186011:79481629986:55833606547 1196788765513026539496196883:35960989167:8457862952 1338255726943128358286483316:278608853033:263850027951 7465928086592384168642288402:702118487633:368899480280 6980877535620950910589712401:630051239087:523101601711 2339202134980410276980870662:575528966929:490709034248 4545494685181822641699640133:911053289403:261693432371 9668195721946972188891805137:4501225013161:4427337716612 8259551913507393790969368498:9602242246020:7063301404038 4659701729529566927277577789:9800362210568:7075327539861 3053819631595032842973808127:6728148418206:2224500684779 4366683403852961415903511470:6439104185904:2144638179438 6699362635551732317726995831:28702227373544:10553028301095 5065688358637539429798042484:71885591137323:35498345554390 9791225684797618392513109812:30135485445879:9805869140094 5384083371953697880976649773:75471539816622:32497430233031 7841594419244110694904047760:56642613028358:51081721840638 9802088249109929993501456995:895302357865941:747875897277097 1800583120604430430826052958:666087505461413:388926478722363 5552709909599407767881082882:778336573387625:451622736559882 1367430472509781866321031212:329165911650665:26597390539257 6763317415043958503254499253:328865206064119:95622602959914 4276328373747732269281348519:2332817737838764:1348986154225403 9156679165729882486565210129:9567332653619863:9398774642772271 2779911609337845247055619638:9037744386579035:3469144880787198 5475945914380879357219459566:7738800114103126:5005267674606658 6479389287564830252125509510:6741088225817680:2330211365760390 9373709350579874818760334109:34660877749338892:19536499236764501 5902448227307544389097185498:76004044340340877:32536243541836513 9898051593637413706362389954:80217157088487720:39115984545477434 1801842712186580347932272109:22568373320750168:9195014713968013 6744465945769708867168239777:76628823447431196:51721396150393593 5785387033181518354473237660:955699320034252819:192511201243220176 6582057349299025003478373350:520503609762569497:74166605761741719 2872605987141246656291026340:958315734421813735:5731866601759295 7092597574649781468273551225:296973294515771662:149112038190799129 6113909583769266402175101888:553274744237445202:289963165564528994 9275882039491949320317370316:6008193616806664911:5736956764288685363 2581885452253240535893556018:7456690809563826603:3278176350554286101 8898290676669099599753827520:5127351590999448983:3814807635253601530 1237020605052631927166700676:9906793591725688964:6175507138813662716 8291416045618897442798988837:2975977380075942479:6901301807894675 3016759495740635969835179111:47163936620565576284:24908322322972819283 3258273191137960459878648263:24917882695441668054:10603035428012004773 5364492182425697499120348561:75500357843241730335:62254808568065277996 2676001567834577029059098212:72451309575438279717:59491826767765871605 3479517166044974759968729035:74695683072731013227:56524618026958035964 9049150941298885946687971654:147823106726846039451:109705954101664478476 1194199879158751746465723023:327118551757162312784:285645294306190747231 5138313263054347082620811685:899991409792217857088:407050325801109007077 6789488257534002358105790933:987387817410283522663:298803601876168198377 5006882522755216753822233365:246808801841411355472:206757858436443903861 1063405291189977644667479766:5685686587952704465827:5642958595375719390129 4071549974065628089739061517:8967348007358938856193:6317456368132534335604 3790655723646838553953627209:7909538580698794924321:1449308360387677863638 7419710266793757363018572492:1087508569473864625698:350118644344936850228 9405572978864470693957614558:5786910261185916937444:3566974298549025007366 6079976488220512544021419331:89995522364260108854618:58988335828110021136487 8773908697491160494454150398:12921753919460891276360:11942669376396023157678 5659432617955999787778696502:20977242571187933567261:3321917778378600918573 8150631104853727027357524371:18878265467466900143911:15502336762757824525765 6437336982212152759231863286:22376386804017904457410:8520885065933306324846 2841739830049679886957600561:686670107797530476137237:298923983498776701713855 6720562777211608904056675873:970994043750251148418749:313000416120705850514044 1976430893777715218849362690:605998632288763850190933:269353884056303376730177 4312380806917476755683817012:273351487944243414120553:261084597036897932093437 7573533720208059014392951916:761222726811671835612363:128811158735921885552429 8802984183833135002644232519:7521993646369986315830386:2251617580251013122680899 3410299560771403181626208520:7994791371162980055106146:4518436655973678150990324 2035956865114483341018464217:5879151566622813464094693:1770423062989882441700439 8623366637258086619290501259:4246370337245129028221103:3234852650474692001662169 5655555026902700387677726574:4310871062897349435532892:4003063444275277694105162 8099822358568012754623103717:71352403772601213392756349:37000732264075641241636280 1301511909302522909412934067:52855644862842549610376692:32976432594301718763893459 1652307026435949030270738146:29901778656070320822560648:7709200352081385029902506 6829542492722536227077250737:57232681640587408460670269:18853377492634620257488726 7108108334032456584154347853:93420369056275745654960073:8160285755499914377382305 3301316818022780400415132159:287375538492249751751558252:140185894608033131147991387 9794262563601789579864377819:685300673861282142480134005:200053129543839585142501749 6229002291947508955590454303:220294283427631091639626176:60762355973838389680921375 3694427296613086082140290561:410370599364584648577993402:1091902331824244938349943 3770944255162906895033327841:897562091950870271167571457:180695887359425810363042013 4875154902311268809720742300:7068951755514427110968374903:4875154902311268809720742300 6188152662004252651294944067:7884221331009198323894031215:6188152662004252651294944067 2505972783367567761476558359:5282195412517055198527129802:2505972783367567761476558359 8025623069469905829068500677:9495200930459862668935969561:8025623069469905829068500677 2486718646068690609173850182:9026149971037856044268613125:2486718646068690609173850182 2567432946891046973810408862:90394856514892364274690207935:2567432946891046973810408862 7745565292537861601571349777:98593448354805901999755632514:7745565292537861601571349777 8524971172821171150052321705:31041829202529927954082555981:8524971172821171150052321705 2974337430933378198334428408:82906424745136627033355775114:2974337430933378198334428408 5771257265655099062531051656:16588890690989541005105770027:5771257265655099062531051656 2662624019903959611718769557:8:5 6778732813846831352892897739:6:1 9033767414619975567419976790:5:0 4484190805038659408123962343:3:2 2457868359673936333278786371:2:1 6704327791878929495574873639:93:30 3620497091984587663129589035:67:13 2145752591215876820677431894:66:6 1539914772455136387378686432:76:20 6317628913691167322781574904:31:7 4613891203135454670150502839:763:295 5946612180453466638006648165:554:69 1122901616558730437538122623:535:313 1466825335447207193770398661:208:133 6972839930777435239301303818:943:803 1390922300295501547315904736:2646:2184 9396200534639705243892231214:2173:279 4473695593035293572454071760:5854:2678 4474405732813817427246912085:2761:2433 5318236691127749605905787200:3876:216 6329754905972740438777277530:50490:19930 7297731771805760789621517140:63891:56252 1265235926338218509419582183:53391:50851 2559576370460706231989603144:60710:57134 4140763844586290789330669299:87754:39729 1255452244753822565306595972:281981:67559 3474189474216771007199004435:554492:350495 9382345271263328958379631111:694186:391723 6015586957642527653141313700:471476:318196 6297925491493582622774972856:916562:118214 7800440302181574783519524725:5041558:3808063 9060343405594417126784593837:3635604:2203129 4965753917810931095327651434:4317859:3217019 7852474579212624778530600101:7430921:298199 1212982624606263726774461523:2030167:1395069 7754898375325876714452310376:63994861:25363133 7082805757467973233417165691:87572813:7131105 2348274628476822569729168018:90335421:47835722 7800673013428276317804787090:26746230:13691890 6336534759632427768881736461:13487680:6530701 4793395800103571432162040111:520266123:166018041 5782314191362996567580851168:395220612:260586220 5323771672340465875718878231:292593152:105430039 1569080107906556646391307701:563174820:238177141 3994562472062786056766856577:244484230:117518287 5355776398603471016387318468:6968130354:338453576 5904322652354702331638106014:8705856242:7558814540 8308762859444065432186661226:9414151717:1774309544 8018390451902192690825296493:1129557401:910784862 3157839612381955050091000259:9336235349:6871999655 9436827856166640145594919308:37201793888:5980108524 3752619734708045546808525293:31963930451:24215719441 8229280307100868824699598185:44121381171:8080844697 1976058084270280377813948652:17322850265:13527970382 6531060702142322365227427970:55255531700:30712817670 8280506989740856981628387567:883953161851:143734930070 3617188585487573878127933440:742182785677:573874229289 1654656567182590569925539294:534054037283:335595236383 2853300092740240362109947632:307909505438:208091801442 3292791047643307399674966950:357050161287:62618757323 9436830375504339283981972365:3846684809350:1997678933515 7029555188416874186923488170:4860222348857:974796375840 3561064823100755051551165965:3262008875549:2275926423711 9278363799578235386176296293:4843150109730:2714228833043 3630502106063397212130745085:3102977012806:81325107049 9745836005381833120754521056:93364141577085:72725063837196 1143267713120667696893403232:68378603652354:66080174363878 4382384396798501380960175725:79446161588347:40085668507720 4193104475256865789546162762:97054032184884:4681435973578 2296354556130866520077182067:93519306404273:18826117683820 6869136412910904305542084466:607365830478755:67742035588856 4751347067734902044110724159:669315297178721:523328664943686 3206960411561726723449637622:765088927058094:574279171194486 5599421167969360184350962882:199208976606942:55008560892810 5785893369589329202993905593:573042501412637:240462853990073 9254174821454116818228244932:3627213085052775:1575329867098182 5216053120800610501236017142:4490082000616198:2423334406993924 3521942813451577870432621945:8082962353010216:341547661661873 4128235653199240874878654464:2924829269209418:2614274445932540 4560281299412768444143091206:7398654895453339:242361645871018 1359610564011545828331598436:16416052117880666:15495187027610436 8657781185945711748693695011:97087720381195682:39014002948478679 8263614942330779001493534888:38663753919731842:30730779616634864 3412044520562698375212126864:99808640615266805:84815952887869954 6839083195296612795475335762:39074392879743201:19060812520641558 7353048787532142599002861195:698981053524029960:510607712554480675 9991106799989030549835941706:638050621365710098:43062104968913160 9780739016619984480439405836:591120140090195331:7605768505623783 2434043172475406382240493491:743943923788088020:210526422371941411 4060365272613597533848990654:318332167916718856:75023622178524198 4328519049013342811828020501:3138962794186024169:1130347745942953582 5182978747094215846032752871:4848499972471729435:369552565134500951 6590792180750746863511658460:4675474717616941397:1648508694537466591 6989867305718248563402048288:6081102931063281101:4648275024422621073 3895131523130050223526690037:1727276360966323043:1618818766096419837 8186262408796937118705199163:27174304405216821627:157449787986497177 9619360159948542862798856290:44024580999315826381:41644960630243646016 8369034176349090746963117133:43728904134028555782:29212431551102828607 1249085351348427669080269692:76682966753050424989:33324459936753998186 5841395534647980748610683454:14043780822769995328:4244424614810791742 2207082619424281895855393919:497237280911335422980:473015946467228297719 9495246971115502857405990938:558502237521274160497:193914427632047320245 9060508328674424093130952731:653634713725600766034:408382852186574473911 5785250434356430145993719335:184938331679102239905:110915838243071274180 6735901179878618837471866018:200038555918000543712:85912003677050078050 6451259561995087675360673207:1843288592248216474652:176374875771519225879 2531288971913333484904914979:3628054296724446161229:2745197280847107764137 6898386129996148481108286243:9079442583477438920352:7243921659938203243683 6478581447076779436051260250:6510429265467017812568:1201576426274622342906 3331979992117559285445770647:8550284399792488004100:2563793625050152033447 6053586360171566002042333898:86143879063265446085617:83690637776574713856074 1542031225126446021672855873:35362321115740079049821:21850553484134626361347 6379301937391529498654088169:41949091501407035262040:19694589558832285141289 1175224289507652230500028888:99540942122581836803215:43926808451065201272598 9953709341176056684957471291:83285489968094841909912:10578619137843778158435 8467966711397199773711836497:681157988750488961806733:491753239871489492338574 2524776416405826090820920269:411465597563520614092426:23509756063602749794333 6766971662730744480042252666:614211283800230469247982:205949103605400337234972 1725734902025701089628600447:173580673609491612721800:169425673744967561186647 9820462904475766135717893488:400541397355921732103578:389465500633029734471662 6735539568740488917680026445:3666569685865423868532173:51055805705271186424644 4676688613557493071635965673:7537829696792763659474147:3234201545979602761994533 6294732872792202380391894246:5046518428085989446780212:1724392968973540256969882 5049226113396996736778424652:2784217884003891316937013:1439089697941779171620083 3341733578881801261621305704:3691194968461579976735807:1202132424071382675400369 6317516236978187412897546072:14177948691673480562179756:8329069183488562727554652 8476463968435485622539331017:50739681816790772661317825:2937105031426588099254242 9305593347645823297178832571:45889243354028762967266728:35966190132013177790953515 4385640237621554716748153923:45364504170893822343431112:30647837215747771778767171 4834354870042967445117875667:87340049296426574566304563:30652158739505843971124702 5269088644242892129896180447:725988575960921118174600788:187168612516444302673974931 8700273851084123929883420043:574443108387996450580390517:83627225264177171177562288 5838308197166445544522661856:525678607674235726159020069:55843512749852556773441097 2349116131937107259763961708:525787038625306537331004176:245967977435881110439945004 8083784227806109754593196858:427762823512363486043216223:384053404583567005815304844 8247514192152805383867495461:3958169021357635044698779569:331176149437535294469936323 2695314829301722880382121831:2310543619361143673193111972:384771209940579207189009859 1922796414813963479632168273:2991179452811051517921636533:1922796414813963479632168273 4033297958423186496041280823:5445411453411437479536095099:4033297958423186496041280823 2531006570357884227953414449:6032029882105204829907318471:2531006570357884227953414449 4875310680957824545154084968:95903852945441118151092882525:4875310680957824545154084968 8099610235654351695627233904:82067331525886075817060012399:8099610235654351695627233904 3018911406883958349971187569:74574534244338147714155953629:3018911406883958349971187569 2474956494316476795212638191:98535308613161147975580668288:2474956494316476795212638191 6787500249576907330891329056:66987325297570726129507817908:6787500249576907330891329056 6535238904905140272629435023:3:1 9877196680869307438071851812:6:4 4760961676082813851005035691:7:4 6275961051571162580726760512:1:0 4778395922693418291837597752:7:5 8296016822239826407306527570:50:20 9966171713573466943497270114:74:60 9771401205905166944623810295:68:23 3024287733659874442778402850:33:3 8566115087980577827400097568:22:6 8007977613061015897235869201:595:331 1840951279441510605287394667:354:301 4657558561981025786964239229:836:781 3235306111025252692500709921:632:281 3238976127374890128371168932:830:812 1829880979820020200502524197:7023:5969 8127122912159566138655844648:8266:1350 4014286357668173307876071574:1854:1746 9995148908403024445512502171:2624:91 9745669122331870061098036402:1876:1110 5237800009141154447102446267:61595:56227 6827586667740134692225024964:12724:10236 4406411348161567525142011209:14902:3053 6579928783516078934447737752:28510:4462 5553068186493712247222794744:70184:7624 5057625364053135955529094326:394553:25633 7864826567939255426413446039:407301:306537 6344242744277099133439400037:873455:669592 9574169504734008966683206800:816311:176605 9025828689530366588365320726:439144:275398 6569622573307030634627966592:8509636:6252996 4020998436883991685904437125:1561002:1328963 5991783939829402009168409012:2198896:1009828 2246879208156210248590056170:4241295:1669745 3780343892703822163710415990:9674089:2664638 8865863629580384262631310237:10937509:10514831 9844188150363539087825998528:77409744:76182928 4391229968066319260534964235:43644032:37492491 3885454869428113988100608129:89523032:48647729 6483860122277792753502709317:94419307:68429020 3336543238979661587311826867:290435433:80125508 9946826103826612983194620155:432048289:240674915 1380889348739460320667525512:187109534:74878278 6883976101327327721357622480:343188002:24953292 2921978525694058455645886861:885911556:76031965 7438112065508932256273607716:3591587910:1166653166 9250434178568946952626141314:3450560106:3078640082 1603291204996318879475027289:5684728135:1016665654 5693800082947638102385886468:2318645372:1811822720 8075701400758005440346123028:6719438484:4098172288 3678144555671691239370077664:93460537872:42837782784 3570765254304446968016638894:81714548204:55890096982 7652405214317655905433742046:88015452999:80177967821 4332040980246035231805371328:50889125730:15618144348 4272754805779583653101061434:38449364963:38355909552 7934778960550524253424718204:892968858464:176871467804 9154949917769940200362328411:798124746469:408491297748 9479258539561528740378925334:439906916905:332974063439 7652336520268091719784684504:354225497258:310048544122 8297105891605818554720198864:756781038173:32661755352 3859261839674399976734607409:5037225543532:2538302499269 3206102065600104520312253339:9023681392641:5221688588723 7380257111562132560896962033:7717557777083:2915830947619 3442639861670729127365853926:4935643835686:4829884676624 7690306901755467037930760182:4025300921968:3799280624454 7629566668659960332868543972:71268154001780:9322215376992 7740809712625803514911315887:85172264219821:83733208183759 4980306456161847278478399020:80353233977495:14650635753140 8466352755002234322576730109:51951009007024:41795478162797 1149996886949946521272009951:33385983874763:30643114716487 3336205766653904625560245622:727953021991661:682196361987973 9057897687643175668341019611:621225385569742:602136636255403 2794634465087329453818507742:410579578341458:280260630467014 4249107307001233320293477266:516111380063011:386898046378533 6154687951756281147781405019:595185955908043:545748903537042 2371283449445843324771535728:5784307054445796:854855473530272 3719258097398688765538021996:3144638916653413:1875936896224455 3418423716275332009445085456:9598600789637864:4838020780521280 4128176774483177366974333563:3006378657231234:726953816903937 9896022218232189970907171522:7198566506351679:6868201511931797 5241202347470370934241674780:81925710278354317:43973945974398738 3010112195754484442558153262:25872291525391548:7930933416113238 8599794979252531844782349331:72297110064616447:70436646019623171 3086964143067731220231974326:18622733923377790:14638657612481586 3739300065925878263868145536:44934439722980849:4017127201197243 2708559246250985727431281272:177298502517633778:33407669856296622 5356561010667264157682718493:597362276293215069:263602353854901577 6115076767333095604583976653:778045236125826094:720380041440616001 5000871790014043238582789092:581453613460644796:360885570444072148 2873411873020664826069980222:891079170826083565:89535983863356357 5397428721473861521916536908:8735315096973991071:906607111474443399 3809791810696211285750742559:9994948495915389095:1247244490786458209 7677793401010826894393449228:6312800835863613974:1506849268481754894 7064893461173501398691182182:1769987678568165863:222639119460737648 1822222864941172693885770066:8699480441793564889:276344750798863909 6780789988030958668685209783:58308638307735737088:14105845898155306423 1169064261127893003235417798:43377233172937164519:25406279842693067860 1151587262616337390096400170:93971737860897626577:76165327004674377046 4652097269163897433608935666:80900875464893517743:23719564004176318856 4816006914523989837496254194:62308122625169548254:19975219375802337578 2096823619180965713671809003:668937118620932800802:84636534593589891883 8232400578970077491461534472:954592343470080800174:27253474551084159168 8962679516148690875568965715:181442786930528210915:66907794736258712340 3886020266739433154632901856:565405888270016857456:297212702313776107712 9492186603023922348688952815:674733343538075130501:141063043280593576759 6335959122606600916287383507:1621465800310704750808:434602506567267583107 2750206070407848624700292071:4057108978688281096664:1435697487452861376399 5924241012195254561961873986:3765027544710874885043:290813050617345793830 5504986425141371457694251304:6449195415947910908370:4811651562289596886264 3396237865546721214858135772:2935156306016602441230:790574276712737756302 3980310993054459905238559190:62065940765733475034995:22211747972151244329840 5458448774485217623800326092:92492047005564729390834:30620451815118800257582 8765308603778409884245064099:22597469728319161723147:21265800146881777020563 1412297485794234795575057609:24246425046449838974241:15966113671024842442082 5781964724892802905654551614:98661791866037961014784:87736167380276305164862 4468773311123407596409398327:279405229516431177250840:245475467123778636714207 4588106545405580158405878380:351044006421783964737965:312425479285523245413795 4603143044310843134089654032:907212959011157832353566:851703247239450560013714 7117114450814886561137122686:694780258420644114144565:480263812228899954343391 3157812488718693877540323809:925951690624855221290113:317223687937572941038479 1402248044936995399251700142:3688634388442959156396529:566977328670919821019122 9158831331968733245136615822:4540672045900673342043975:295815387075114233918247 6877528352282044734189576049:1901517664667644128761083:1640476843843564589499921 1852280754265549532982555856:9975543271472356427168883:6805249043163593956312501 9275895665709030421563690937:2644755705940799833023686:737404974645407149624135 4885431592537478752624582056:24803142513955383384583980:24015659802223609246121976 6761122704122458057669939154:40991737148017948923216558:38477811847514434262423642 5891736048183789012062687296:20382988794967309621405963:1052286438236531476363989 7988311122323486631330946817:82582966948778228637432051:60346295240776682137469921 3983551475849308200848853697:93932299676417509301250906:38394889439772810196315645 4791434922665305555257069694:833715093058224470298002222:622859457374183203767058584 1531315016536559043699331441:710067752322327241438158056:111179511891904560823015329 3964911460045030365649679224:944122859580319181418751197:188420021723753639974674436 6104567966731072659530930744:151866157050052391730190411:29921684728976990323314304 5102692625741645958118749860:574207630063201835562423694:509031585236031273619360308 6265410834035918774365268279:3239215706293146196514404374:3026195127742772577850863905 2829404926039389962493063016:7054123055930996764918428155:2829404926039389962493063016 1555707832012010618121514270:5645468273003664178804191406:1555707832012010618121514270 3821251628898176620552617960:2110960130825791009465902735:1710291498072385611086715225 2911608909600402104172703698:6890709538654123837462855397:2911608909600402104172703698 8237483857007695919726572261:76259078679990906194122564729:8237483857007695919726572261 1573237853236188564625176822:88446437319589782643737532875:1573237853236188564625176822 9645442241952698122183965866:92565698494471808780324402877:9645442241952698122183965866 4932507530720845273297277379:95977950611549345876818980350:4932507530720845273297277379 3199713841039096497732517080:79714886294687490630204079038:3199713841039096497732517080 7269170272138616320502167637:6:5 1810831066887148349433001575:8:7 5831697856262431759183381563:8:3 5109070083718362845260435497:8:1 9770277054540303358823149143:3:0 8196480891072678691303682429:48:29 8311016488589267262991934807:42:5 3057070624812288725962016146:51:25 2752551099706494692673560378:12:2 5025334311098503294749886246:81:22 5242936265860062331244215025:748:141 5040030928342466985681772886:185:66 3878840770329239893029217246:926:252 2797686614784947496066879583:327:286 5775682997176172451928189829:408:389 7134336031392585774712119227:5904:1499 6067715481476737593580595483:2403:494 4174825782012794597189222584:5116:4444 8263772954752578160431019277:7927:1436 1136341649275230862841972790:1281:930 1316768871492548235312533927:74574:41777 4547784483501158387660053776:46175:8551 2277950340809877091127949926:93957:23504 2044024242226032186569934045:46364:8297 8281664506110648965990191104:34663:26601 5871822130663176332594973425:558343:540697 9213294141512722619786150766:599946:384582 7198752391389702885741762641:860814:573413 8256850432279015006206578781:420518:369247 9268383371914648474861684132:575592:126724 1723390048227601161383373702:7448707:380887 9807620707309084029982812482:3672569:2497397 7626448639530300985949751930:2728336:1977594 9008572403012921917977830206:3063065:2405081 8342645084822339024738538326:6209626:5381064 2048784590278570752031144246:29782699:27120418 2395838321424052951768665269:72708652:55284045 3248491565083742296266548856:63781494:3750456 2287729081895773913190886466:65975651:35013660 1995797320541725811572088715:60551808:43592715 3050916631404743195004389128:502196596:6336012 9930576166406563985218332299:363033826:145718021 6522119547786037473887472215:208915858:94758781 8318454273312354728165592193:144173697:128328964 7428029641777905940433251237:385966803:73822747 5996921098576016439548261224:5254304275:3543016949 1889234199594180439848095512:9171738128:1012703256 2120181499125649625527792166:4252422979:2593850572 8779391883424429605042115082:4148253259:2851682124 5104521256357172462390840985:6839839792:4950768041 3780408680326244941481223466:66690273119:58307372215 1675652720709183326667698877:25658251237:11526801629 6445838435104863392885713388:28302830637:12460533866 9795005718167650115834214047:29533608608:5485914623 9155742868536417388075523125:81647096028:11983359781 9126439935662522849941211227:666348492758:340092492151 1404058935323174871965831456:493717518241:35729434972 5996057103095859526802176212:933967193444:262134092880 7699737923605985413330753003:426332513409:355564681039 2492041832625219843327726796:900814246887:254895865924 8722756020556746725068807247:4243414273025:1879211468772 3496587182759184865206771843:1553436357105:687004028808 5155106029473494154385387015:6739445722204:3448938465107 4633223713556370726450842612:6862298267280:99371704292 1607183229401949503965594596:9118475800508:5417218020456 2747605464872239236049908408:63231820688202:3302122173714 9658542230840745809327449747:96356022581086:79261919546905 8675413879549037652658206682:84896028362170:68135677948922 5557511187939992243361041733:41053177898428:33543573786917 4909237589671491571078457560:82754625241391:17832015595786 9984526918814592704573812391:306060555277659:48975043219877 3346166881206287253943227785:650407882738153:173937472241318 6667278210535384908123557145:302197401496944:9657280723353 5246406735029577543225934399:573833729616875:551673303110649 6702160628508578738075234679:676242232572473:157024888643533 2303390132667726546659160910:4216119259360971:1507338733955851 3158421888075810099523276852:6822356625328464:591945104392084 1430025840678330767839118084:2323751569396263:1330273317202928 8103405809994809887809884782:1621055123064277:1585454705638564 6387469482380230285789028787:6037230114407559:1120312323574791 7719074676417136090455793374:72266300396645152:57717713097081694 9659254336461015694701481236:85147033441812180:20584983825338976 8551050804124664999117283864:43280353375126794:6334301657032110 1658482133470609970515590906:82372269570654428:26571314287235126 3607619201496540217407317722:70661317022295036:33176547305098654 4714646246336782035332155411:374732562466444795:294022299020933206 1541081002063339688034230386:363319574084660062:341116738371975998 6696968797461407028079415168:654646291770095289:139787138345724488 9131530555706621157772494556:661488647324722185:89603465934753391 9595353871315905970188655049:914172521382591043:220868724948492595 9319081018408046390478601052:9419629636396617227:3432921758904590269 9570268889511612232840966872:3348234356885701733:3277596571075468063 2114939340301418984078431143:5769577736224816157:5422070597161119220 3852310201343462741232659164:5417389474463752104:862519544990243908 5132374739446504211061745490:8094323264068957026:7733565400421043428 9218011408903527530506404772:18111680682792874029:2369077944387314251 3215557502758395012447396283:55453192805253291527:32302887442826105104 1935530975037750307210900210:72909109613164837983:10133771436264714202 9029392971709740113208547984:37583259457937893531:3969415848979959708 3018423547954702120894211871:88250742552510393982:79821531539992328469 6564647617141515616400388399:527145563904935998189:62157258358561128166 2612855245214709539489951772:734429304671262800260:344152812026677358352 7931664723601930967744997155:741314017241711758791:600800822222760491549 9932345193551595778246376056:620069136338317818109:259042378678049150431 4043527971073919056164421772:577428216721480972704:269249240322658756172 5453513409316846665319911950:6281966579410091828536:18466198926947582558 7427338114140332265197692370:3007661917322410800996:1223846323819640498258 4334442473453710946969911198:1720617679838548655199:63818826258685006318 6103370539852228273963660378:4989800755787563579157:939196309918409771845 3184574363296633648553096177:5962410901351162969197:3001597766697401224901 6460966262327077724718360733:51616637415610729247031:8523740251523408996401 3601473266568179986814187633:42391998364209221653865:18653538421351988432693 3364928815730559215641991236:43895167824819116238580:13040615575403024925596 8118882090050989490174140217:21747929251069876965663:10385829336230983726046 5053071544623250089064948526:31974818467085242815734:27032632834996408873038 7604950519698118286513713031:357928204430638621246676:49960160339500885588059 2605526574086674636132845810:173386864874712776491856:42155614365743789725698 5768542533497265249140858956:501058144961340287836481:361168702315855567289684 2753462303880248723174817430:936337061012191338761416:631344504406187216254390 2441861808561689885629763848:842478855028999498933985:358086687649337719075318 3075489073381054674277336887:5193358825466847791666932:1020648704680781610513143 2953296173453538367485908940:4484817936393796718284569:2285971306420126854662538 1837381861505830712039904818:5025848414289405803802772:2947190290197593651893038 6812302385865216572257891307:9204319610726946025945466:1105873927276513058246467 8704988982521995681140213667:1881960595873231608361332:921226608299492469053167 2653456623898604959232882368:56648332891239332514130856:47633310901595663582862992 1686010322519261803770570830:77040831483087717708323678:68152861374419731895773592 8835408711133225589189222955:46962184118094498928896986:6518096931459790556589587 1969981939547217389324434998:73291724522962536987230184:64397101950191427656450214 1821899778659058369803929136:29998277249345282153627424:22003143698341440586283696 5464455731113165472595816704:357933931522151636363680512:95446758280890927140609024 9491684053725822174553736337:529534501585487235110834688:489597526772539177669546641 8899151539436528107532694218:319398715707596166255661084:275386215331431618629844950 6400865310414308137909212785:500753246474072309637580635:391826352725440422258245165 7288461886098673615778186849:679018765561843838242785403:498274230480235233350332819 6938232853626900836122573509:9330994111952256131658773039:6938232853626900836122573509 1997384857085315135195302953:4648296197311263532402879425:1997384857085315135195302953 6931842427563412972763093517:3104249837552818325999319445:723342752457776320764454627 8771587342177653167674360060:1016324148427783117212800100:640994154755388229971959260 9739405164091429509896539642:3113295298326912251860064373:399519269110692754316346523 3338748649480227944760023264:71043039596715387889839164676:3338748649480227944760023264 8219828979274611687173266570:78713302873647777760781457826:8219828979274611687173266570 6905385248388816504752854617:76256627356068603315788500397:6905385248388816504752854617 9304821429002841927540591158:16285414144256733168698841487:9304821429002841927540591158 5407331284089154559137225399:79493945603120219392221236768:5407331284089154559137225399 52013751821388826886820006533:8:5 63811680220781710499716555361:6:5 97938439802644104467939551306:4:2 49278862095286879198592477183:4:3 16353972674151036218362265666:9:5 17851226935983944247029494069:16:5 81116926959655050632906141898:38:0 90412957904446769769446562751:33:7 83354769787677039644585556902:24:14 20961962460287888448519954392:92:72 84953545876267991505708347949:911:757 84242984476538875391936355655:230:75 99330517927992763013296026298:149:129 75120327974161723531200709529:939:626 58735014487592666152681141260:217:143 75287198531528871121605303849:7036:5765 50339710322401993259593945533:1722:639 22623814585557660563648034591:8736:4575 79008604551680488005772038231:2157:612 18640667831775300629151863470:3482:3000 71495168034673656302468603249:72754:64743 57953000568552322766057687776:19504:12192 37233761211946627084786656671:73759:55050 45358589078212281213488351403:72990:10353 72182592457984165547889747105:71350:61205 61598038276295889002043081013:318923:240911 66320837263345164473247102166:513058:268606 26377677657962434231336836716:790428:508700 69425632323632479554617810302:299003:189709 42047380078690242657014795368:583281:65926 44571604547762751936529369005:8748838:6063753 59662053567690769434546366317:4917661:3244632 83264410026283271051264265141:3357254:1601173 66129821780415521033356106160:5014773:1398675 10019885511251644365441630954:2421601:1556892 20806868280287263703055282661:65124968:60715941 23160492674709420836324987147:98295610:44464547 37385491274085139538360913693:97579767:42358518 55498673121816923919410869274:59772999:43635344 82935726527621790898738728929:60873644:44875577 19300125966478384515634403002:839848313:644196867 96361074420562144385263090912:514055603:504356772 45334378204555176285278182590:133138101:90701361 81316362569060236545059869483:971937022:453951069 21334477851824176546162976314:594079424:158262586 78604523864746779496460363570:9718846372:6175669482 74156795947654455483739268966:8017694753:7846312265 83204182480626953708699039559:4736375906:1296989821 17340735403105803712711698688:2816095670:207387768 10368495639039810453988168798:7745580885:3844581883 24787921892133050131172518518:42086206850:13890128118 58266626338925353640064384171:72699248943:744337521 30760291059775320495069845766:45037083930:17757657546 48254949768630848202771844157:38516707108:12452521305 12169677923062219752960847388:54216621415:4840496013 50962477780221636004980518271:591619946236:255720913563 64483379397134875239441970001:827839009076:459999546521 23765240206327616197639740505:853287387188:249759719317 32961720344900763455683833203:238607888522:63378427253 44212472972344289678312197167:539828601844:508813768155 88487285458680674347511684357:6526456502931:517233473990 24925928518027187332931929296:7432099223762:2980864394052 39247495372646981546768229886:7160564590355:504488371806 37981166040506627981169267963:2628363649804:1346066682783 94798427891126338821068164949:9765303135054:5323032542267 83131307218494771397276595952:34189209807748:16250536422140 40227837153314538718090622015:34132703386520:30706631331855 69154270008088149729797921709:59700976297808:35955795714301 23345253299875610722672130181:61506250197953:52929549805192 33963420191790889448449054459:63561427814288:22964193768987 12474883020797686130200289409:371617933479952:35525892830417 27290825131127201808311443272:433389690087067:39176821281070 78613317635988764878719509401:671828981728415:70216702510141 75904198976598508483868140015:611671164879681:108232339590517 77698672791052205292627269886:778661510329874:174794245809068 14668809641621100709497017720:8843925869989226:1896631619944182 59436061646750437077192381530:6100699165306563:4752582767856674 58831409284023909704865106856:2346258071906655:939725409885221 78683064378717693837119542818:8550938432530786:3452974657234370 70477290356632098945597255526:2740650724778473:1507193505000006 55419614560723362897840700545:87157704361350409:46308673936766998 40574918290171537950272822400:67240207339658575:56910023267183975 50179263648647102380237317393:41854802107448195:29721649608700798 83029598783821851382130246958:40610726924844443:36460098236262105 31993754610824823721038763838:64235874693469541:54206265766640006 98010604934604317518856279577:751096918833586416:249337594133465337 86948354536864981376079348854:846062112644935701:185390319305027234 97506466117461979045960752241:344599121576669228:263627373306556217 12860010605856300855151518500:479651926270820491:189587507007222050 39845117735235924408396524036:920083620751023961:852019392784709987 65552469745957708295903157826:4413019135669812415:2140572241002669351 60289388615116708771486547114:7467378578678572708:3887595388297374622 98254061514083020594300840328:1637505920207903774:184102148641036660 93569689095009345713480709577:8806391056536437942:6126375693158725971 91626784876462520012325090829:8877100482535570369:3769708929711941574 41032388283696479126355722536:94102069546523332003:16450382692052658651 48592802617271622123931247763:99426862293752030079:2365597846464137520 48789726321318881462924350814:19852706986139004614:7481938778699507764 36283358440064385587980444294:38631590987972362778:29352082357343468248 54123657938025879717171407183:41702223208816192839:15271447057466271755 41441798575813300243902738198:219714536479131848393:61126694567496488869 22409488182635676060739663482:836008574180550875712:796879381894388767098 56977209010624417723355895645:397707995261858096345:207821228786084945175 23773192159105691746419635846:608925578012579183091:184619627205156272645 52187561234959021226573738308:497440743563600453712:243088317049087763716 53658198820034141207269153647:7331876105745225515003:2845783717435004483204 40760923260714541157360567867:9084344745984539864086:4361821923875058666941 59724667294457970636036895143:8139175845642249219054:5377323569035310072193 65993232013843384548226820425:3525981123288473815045:3191548527584019278095 34861851144356041803842412667:3933212362453830553736:364302825113178294787 23611741585133642383572113640:10474170142311977269026:8368382313641597644308 63970457017892014903121213599:78791336846334453579936:7006363611044931915007 32913129986717929285161214949:57004920935828387377694:27771235885779739897087 74227756675450522951196069808:78901312869264661377665:5271371015260914300753 95673049514464006786762331350:65088746117586067193900:12838669892823389435950 95542191954685546267224231166:838591015657444683884226:678949817215987610478760 58664656924049424926914385261:629929333836141097632224:597922557276786620628589 20286093795835578643695163200:732426473177530711901607:77768237510516156354121 77175068223006708055440875772:762005847445315604443731:640005440034268588687554 87066307289071638998278198943:315943200030315262871556:259940717510432449154243 24490272823598068117097940615:2127826357079004185434618:1119279975808946930922053 30548129502722008361124087301:3187027590668126970994138:470046168011344145274571 55609644668092375060550210593:6885872282978732246823774:6225983039112167448235543 49496647261451612095950396373:7883937540001150693114445:1287385324388044577910663 26354469196188167437661319017:9777074974296470315424057:5252140459179937593485402 50102703921999845552782131977:19929556743776521539007655:19727824889446925255894962 79827800551774589835683893673:39712466709746644709247213:5742465183833970096995543 52572992599018223681513226858:79512789252592230205919727:15038903054759515400287311 82302529606422867663536925989:93899874235524318763954873:46239776103564426312457241 94503940660731847948877753197:76310194093825119672619588:31920372576349794174703253 40887462590816189649590563941:327745521521553820124754042:247017922143515954121062733 23192635105978914647703550095:867546370551097653045196498:636429471650375668528441147 63626366323271694592271389294:780936803666113070773234743:370485226316535859639375111 75587511563351576568024675248:750063424045603285855013703:581169158791247982523304948 69339186118213419796875907656:906562958576946378990741946:440401266365494993579519760 15652512500719710982133403363:1235880481695902078031014702:821946720368886045761226939 29012194618032556188041589188:5444697861680474780581785068:1788705309630182285132663848 57082761397324915403231532035:4126386973443564305096192658:3439730742558579436981027481 19102727596633812631178925645:9729782660768448715089436473:9372944935865363916089489172 54847129716669004444213239644:2983504213600248902636817568:1144053871864524196750523420 54392934482214960095435437486:95540168873992624921465437567:54392934482214960095435437486 28032344585206345010755922972:77901580194433089358879791024:28032344585206345010755922972 66808206918684773004442798884:74728248517025304958052919748:66808206918684773004442798884 26314504139902589895221456451:37081137296294400378180297377:26314504139902589895221456451 43718842113047177468756508184:38837803423698662761272619374:4881038689348514707483888810 70583129865108001777128536834:274053585694709914015556694586:70583129865108001777128536834 24676642264895096367021986580:888294015703034893360735328129:24676642264895096367021986580 53902894509040668536712676432:518996253127065218454356526379:53902894509040668536712676432 68576447878499136252628286820:153029482654076375492874134773:68576447878499136252628286820 35336560658832072957593788352:322382247336295967759664654937:35336560658832072957593788352 26442324421450767722519512785:4:1 70989705743968052568802020057:6:3 26388551040872546112669518048:9:8 71076211534021200159430660976:4:0 65220941112554533604040114933:1:0 91379886197026840627007156044:78:58 23743255160010052821092677519:83:56 98684319178514743745753361643:35:33 99842846646326455181806455313:44:33 63280022875983123603695733297:84:69 63130131402785249673100292578:704:98 10038808610396070121192022154:193:171 39229769581612555745157751094:133:93 44942082986359764336739801596:679:46 61498898574842155867363260323:661:506 64863756652478333739229765794:4464:3234 56241364555782748474078451647:1435:142 57681266667477772985693329507:9120:7267 55028077637731195505814743660:7502:2940 29433414647653661684844145203:6506:3955 92438897797504187878927605696:59059:23092 95143478295480285354385544132:84072:74756 86082986974472116084051920614:99442:11350 65356823971982290944877816987:87342:32389 65697892822349296476924653328:74547:6231 21494414689378941642625233743:551460:514043 33265296505379520918282882466:208894:82508 12716863482164909748889705037:323119:201368 75188849453465799907783243321:947003:435156 41522789321252028848837655425:302547:63647 18804566683526391061821034173:4820513:2327026 18651252303090633645124898573:4430333:237439 76847758527628638509194638687:1400315:885882 27879418365323029572516950832:1733812:52384 99054877934479439073963461646:8913022:1532972 81469744825661622138346212844:86581659:33980317 15586648852377926712797565966:18181922:15911044 63305500933590312383639139222:47026591:16187821 16786155144737613321765004260:31053006:5510928 82246953629136279205778151860:21741534:13363190 70921830289139853301767334657:472857539:316117921 10547857242656103206823194315:363305305:307703800 16316458116366786733786639382:915308617:321468922 37205272473717855988635549459:305050773:51208863 64239191572055817249376157833:838040944:313301081 54543072002883685245423880560:6409785536:5828042992 53512242435369733798352542158:6049523708:461740442 84850670266028332161893118264:1908698072:1575093912 27445820893912762735625612339:6754897940:5100700759 35763181009482777588502343279:6481636271:4712911013 38066083346587567612485491667:43143970480:10719556947 69360361923058440519655364725:53682349326:52256398051 57794039626070021534979672375:43441303319:5434878750 50708762815939575421165134959:25294468608:9492439151 56303920992561551524985644555:65402164035:32620255855 71071753951302063050480773159:772043023769:486959186443 10358038992382987061408647327:722985316855:629917661317 27106914627014122481770842470:977555925997:153123203113 11137812672914941520539029178:458963733565:269397656748 88408518573927870494090595197:225401416943:123953842470 80463465962872249105702820323:7060123936240:61268521363 41160451863124157993650875203:3119772098090:1426997892663 23535053755436312764545993065:2148691905645:733936188755 20209085545987482276273150097:9748990217701:1658628430358 13924879231430427885901219563:4806336367680:1204833834603 46455587544655022681113550248:35860849930079:20329386811442 87044258687935651458651571104:17491883559253:9541099354279 89604356343947373149269878068:30987835826191:28977327158762 97145641284773046343924436339:22264009734104:1025681323155 39867359533335234007213837200:46182353601324:3382563727980 80677404963799430455231775927:829978818396857:743839885501690 12135468117757839432451397157:668860387225777:178020453013299 34213274268189554437792132645:574501482793733:381738486844196 82150771811538675430068438749:936459979692908:291014492533717 32306317185023494482768155969:732177788673987:718897017307037 71490976326260961530148373863:1860052158712443:195155649446394 64905910116396580616095982117:5858065789411218:931093860763109 31925995882192983497004296677:7180261271024974:3365752290035187 59988320890383918734227688810:1061444790832570:68605693971570 20123254697150097677455917772:6937021855661538:1907642968990324 51944485689108546093401471134:65467256072469098:34606007073817824 74748307280820413885166533940:54435750339924946:18048864911907558 93224322468119653663308665910:87033177919599284:39830243784305558 85717882917359977200584058270:10143398307067807:793910019292105 52942419104774375524751075727:77674541671208972:65978743350808867 56466434702433999319251237768:930654595277737870:485421958266024128 95139267611794261577233954468:227893884802058314:215765918945984958 99028223162216804432067498106:468628017033608603:285787154191988398 91450239535130041785040279102:907574569225089812:176611802103538962 57814238145954301194238360308:476269679227117290:416793466711504758 44272082674047261445803443198:7397636739684290793:5700117156946632245 42837505058393454525417285647:2906284999099675718:155012579162042971 79399562930153130955407439569:6347062851513210434:5885402994683906515 36625033078691231132243194022:9686195177429894462:1627115201131950392 39955285993305188346446855155:2960553846006488750:2357475742737251405 16994116878504808540731034009:22913991746422362900:17420411801578584109 37465128797123591695639487850:34209485840669861684:13067623440734721922 27520509865761186552218823853:35436815403467557886:29380609597867987375 94401131689568144790339495156:57387716973844849891:19304966900325236990 83054311127152521981114766852:61828093686600380143:5575255293531723104 60156154763176557671509695155:388017680318203892724:154628673672514333751 93927499040971508911128848645:760268434294210624701:758580387207163231568 54360374518256379379880900289:286617603640532846974:13924425370806225813 91780332535875486869802723285:468254995413491925978:453479116581186683835 20366345142329539916342076004:928544927182170039699:56402641765389573517 35002353526912378664865426701:2353717745177365216550:396347224211950454101 95441010061410059426083289488:5806835655662477869581:4395832964723596713013 92719288168870850752027464678:1396801190823819179295:861506065237784595033 66456684727558775716041658362:9749641483835128281675:8488463714107094722362 39389229136028965512451369192:6573424971831638654044:4607219195022798144744 59079277783995058473651036367:88374857171352029605374:67140946027218251279749 42583567019089948623854252786:24956881348830195918491:14726801217781071836851 42423471142596185780413882630:64789377485159244838375:34659088763852694316380 50675433978830875036172348824:11562873232386516597580:8876320192168651435984 71337505634982833244409916841:84995307688676915477879:8943491722637755815472 40486521442079197428307345725:580135117708671496152668:51847426431054804951341 14287231431802998071397607259:534591738397493357377811:267223129988095475608284 15244638832368591340736290301:626839090767628000081343:538983990646006758109884 99993921456068460709706248159:945510314110227233426671:532677027269411435229883 79730143851053116969495202771:529310873371982506102219:46995031392075317954801 66610445105230234346773417970:8460274307631038817446103:2705481251065737020249051 39372031139645618897378118919:4290504156219695678290889:2365002173691353380921455 86151344563956766560611367507:2177497690126092499152504:825951808042924141699251 82431128347753466773648510360:5043354889293874868985399:2536037134375914951149104 16815670243293265469830735116:4520870970197260860130720:2551105129652331004587436 83668353311775131240796557448:92703574278909570192969406:49729312198698926738153236 70091531110913389890865751768:33878232741915234771100436:31345800632684384230050120 75643922026276844818362343880:73769852171181082286363556:29823550816235474839698980 90715191535933479398081136897:41917006094465957652732490:6790347509147037568028537 21732607298072898220512458476:61843116524612325638675277:25673397933971921337436249 97188671773181787888040313720:467329811440188951470624019:451400805062674933621141787 40406595665991295319539348130:828262520377383668722811747:649994687876879220844384274 73719979317676727250573117058:199694100249350662126907761:32856325666332925744153249 29197866513201373784956876034:649543733161171338173416413:617942254109834905326553862 43119172106113280256357883363:433294212673267462591389805:223045051459801459810292668 60332414483269402770039275701:1926018755975798495327338139:625833048019649414891793392 52363185801436686003126156658:4930332886391993921223842237:3059856937516746790887734288 42411863553993257904829873755:5969237127864730055471001106:627203658940147516532866013 31481975229384532429159008879:4762214941015019247470535877:2908685583294416944335793617 14830113261846766195661442882:6845014133682752102063497062:1140084994481261991534448758 72460096550885471474812338023:53225336854662797824449526064:19234759696222673650362811959 24403581294384905175480376188:49066604852142849363515672915:24403581294384905175480376188 14204087801964329034778109253:13098137348850225883561269146:1105950453114103151216840107 50363839742216397779851092145:98551407088621087308751723573:50363839742216397779851092145 24670201159986244329015837091:70589900084110874838845527772:24670201159986244329015837091 59884098274471267672406021994:595900505065189684676379125674:59884098274471267672406021994 60513005921638879863816414404:484143004332405738825516735812:60513005921638879863816414404 53401833783490203716215961543:634574145358440640314341043781:53401833783490203716215961543 29837940945185938578256967473:953066522879608285481068208994:29837940945185938578256967473 15555743509361449747898495097:581386143481726183417051441937:15555743509361449747898495097 38298294681022445827217499708:2:0 45471835415834045294772105567:3:0 45011657925219041419019468281:1:0 30747234620876168028762965570:2:0 61640220663790850393092622694:2:0 60981388135963577129375169212:16:12 86871379145165739101246363834:36:14 11511472658594348251796355611:17:9 57286879114332103830094506128:86:76 88533328198184599577261649177:97:4 23240936656365838159989549308:789:164 83103904250440396010681056593:428:421 41710245558856340606902022749:670:299 87846958152590170891435239863:492:47 89525714490637860084911797087:914:125 19872573389502807013569494122:1165:172 32143254160098910721249047105:5084:3841 67965657295772033620583277964:8221:3469 45453804962657620303545058880:2151:1412 84913979723248091588010614445:7439:4596 78600709553921425811814350073:15797:13387 30082754036001590168612532994:99396:35578 72754229346105210294579550133:39703:9354 71627280660547792660870768391:44477:17994 25481778381134297185946147241:38598:16365 94085302857385142099554128496:302329:112306 57195610374273885602361028182:290731:91168 63197048017873100769946829204:673704:444308 16701346375585991089410875323:462964:30651 49616605689352518153376745228:161456:122124 40604526807122147717104502806:4698276:2051434 55317313070407313632452691241:9769581:2743775 36092482343721729553440602352:9164683:3115356 65840376146336244048198573979:9082723:199350 49851662260200268652651805839:6189306:1312013 79128133263837430566559793282:38698430:1507232 78949697577379796480895519362:64650342:48700328 89119631160086736518296277672:38818721:15076016 85634320988015783478476045541:97314474:81557379 77677800805949005010599768656:68163542:54020190 78113046015445381008436663918:973864409:415879597 43118156582244078641148594149:850344102:526948091 20635590720560084639367251990:376887135:217872455 43115790098563083728599525877:162858333:11117219 98602370503057545215834626999:938224230:261966049 44350707621370204467926114726:3942111484:3874261922 78222558939284049668609912871:5102044072:2372361535 22901174280183778701466112731:1040522731:728106936 74380632411680798763451553605:2394445582:1004346609 89378811546598021242328599227:1259278597:225840770 42987754598201819070902771840:61968003994:33277984448 59010995417211194563060367643:88865940451:2492633844 50019415643129341511231791290:60319327929:48299572299 16522750886598821248726233726:10065494675:705090951 94915596779998408086110861567:63366935388:60295328399 47742389294023968697898877902:545469249000:86975280902 51905739579595517107502231433:742825009269:222523037529 93180864313088709055214470420:986735539227:5301868180 24180752968534574430492979483:305623483160:175911352163 53163927270769808886446991262:871880175436:532402152102 77147409559442279172288157869:9560997755158:6701665552809 94831554569433731573214205579:1407154456804:336979976043 20990067560281551227753008172:9801018278252:2483032751676 78059915380392116456113654298:5847570707297:95711583704 94045875564505755927159301786:2423790473631:1305757465543 61052692183630019570358335393:72487362630506:13302858198279 27624962885944939962126262543:46256254597497:22858726631575 64866033972197318834949182633:25077070243623:6671192655470 48835922279964095085742144346:56096736886570:7515945569086 74160387574825418932873887470:24786825259753:8656248439359 99394376948361671985451291887:762710069160871:132288252105897 42724614745847435047084512747:575612428736594:23472464086181 80299534460637158964820411106:503521785709870:462647021148256 83399268312091076879264817402:468972122270122:378530503347724 99122310841847723398571259955:263245502315736:173013481815691 64897243195990349317234435287:6390072031520886:3216589246022475 93851721667165820368048120818:2376112165967835:1731624408542988 55912465099220291774878241426:7537668212196203:204063665111260 17620249179916269111666911098:6944713071216995:5816311099743113 10199782886910562357086957106:3842983988252292:100957615570090 97953243280885639238413587018:92899555036957736:90150291645969938 96821685036105980715915014799:60942751054910964:35640522958553523 34288959297458441740698400433:31882886204775203:31603228371204290 35891490727545955058134665852:18704287690189704:518309604707028 83232424919181158096250629535:73317655629785238:4700638107856665 83583411875811409047367809189:396860256581090496:353793470241670821 82757543457864341493710517015:999976130290619285:529043893176672660 24962459725760038636771348286:217802360649863077:207530001763225036 88461586332350652967621839831:913624649129189080:215087365177730431 77288364747708728924169358574:967165779243415870:790814480982556084 54641257286647891294733257067:5564148295595267186:506472186663758505 22415077727790482478741196549:7247121621644779687:25071659758959209 78562774423346755855310260938:9481069355745153796:4867148411126423894 11514604523295407394397676652:9179204516373268998:8947672520727580488 47313885369461247422850646337:2763212952546290412:955372627431161105 62868962510274144193161753566:22068138007781502671:21303228289538047931 11908336806599776018526652748:92624871826989732085:60565654656246765303 96093922365221767366710544842:42131621201975646741:20660968619609831877 17367376115934219718477974648:71471205192388158093:44101908598471431630 73117313272725385839275311015:41770785830723893877:26385031720529064445 26708377478659126227669215408:690309235471529681860:448181974233559932828 45746758587947205124704486444:595506767901223603301:138587356065954062564 48800621540291059727960255690:222540169445332588253:85945727297249079052 27510920767455596569978966572:895117036576287067400:808940932850484777972 11608162669078767650735227522:614284375481636931510:111383500474144182022 18866368126035072473687389928:4529251196526699768596:3258714127449288950324 28634146241519205313328402593:3740585699993839337877:113923365120273346363 17295321577441864162159483602:3895793151136526760050:2424075369522292149302 15960410681009084166474758839:5217725566731650269557:3863993840326631703565 19950873893669807911592729877:6192927706282504635387:4291001461125929292318 18344788138678986028494422154:40906515518131980822194:15815479590436896589690 16160111879951494752639043450:71294783814376562431932:8411882016852442744738 54623822770669896143542062744:49009226310442271230138:1475650737436736993188 44908499172232186558381545656:72896614034459512528159:29820005162648821496593 91211474962333131056160084110:85759771410475305032604:40643065321357938480434 15247463959399936808584031574:474915731753736604097809:294391446223134023873629 45186996864295920035817576063:980052384909578129792005:701605654910783627393533 82330195289592487275847310987:128439917547562207489909:79701687564712608152078 83122226272360678049624644792:458232276811376700426599:265955607378722340865989 33033338367182358660086168478:442011595448621579850256:43792925073511557136574 63951200856558195795543879830:9571161457069511882073920:6271161876786911408020310 63442435804782026739897822164:9069370904666794009661259:2186326637802642317315459 72217009466713731248936408536:9490748117138030079391629:1907043410460374845503475 21011291966380077004183254818:9206332689808163190287778:2440768237848603946545422 45632157034365568219854480897:1437668699205860601711540:552521571552721530201297 87180065503951756931932468813:81652325333527963524913426:57034373077419850849843271 85422660333308904011313746983:47497471353922058116985293:22206838957043516974190169 13997621358326724171328417885:16802477498441540938199176:1157602124920569808504277 61800639731056375398427278033:58585995250079560972736082:51000737472518133163447605 47946799866828013538629506430:22806111756711785837269305:8352954219839708689427320 71038208080740184381159737786:300820227777395715333473584:44634325274795562459971962 13206558933377360926477007818:387272617558096676155999684:39289936402073937173018562 57568607338524117066249903838:403402696119934228405371707:285424489493456632687121444 44704488662610752954440363783:412483105928878427859540453:156313222291882745609994859 94240848730601812372177230428:882388875148928328932761694:707627964815409505304490864 27565056207838295561049460796:7970371304955087503144756135:3653942292973033051615192391 78072352327825183717330540260:4417533418005196871958169032:2974284221736836894041666716 96881569707090224409908441004:4511647873813311088512290769:2136964357010691551150334855 40596349319294436086529863650:2845480209912336241029463948:759626380521728712117368378 51357834490335556523005153087:7407443178692292089673025894:6913175418181803984966997723 51437481586259390295655655156:40056838899098768264583914903:11380642687160622031071740253 74153679964409574277844898622:54738543506456546095605348898:19415136457953028182239549724 89690964577995348762284566892:55890563800829426183573269185:33800400777165922578711297707 49639082383449148383044685830:27716564184764476586306275961:21922518198684671796738409869 90033577904619156487287461313:33160871529617273443577933025:23711834845384609600131595263 39557462379793858928969526970:124424632203991742458353649829:39557462379793858928969526970 50588115389976104043593901424:723954666547943223201063323406:50588115389976104043593901424 59803454587109057885004335504:136672602309967342937190455788:59803454587109057885004335504 54272701557390212169595629435:449763963076147436465765676245:54272701557390212169595629435 38634168836201195367539146889:143321112867608474317393282137:38634168836201195367539146889 35147429227965158053924266423:1:0 31670293563437736950587873693:6:1 21970248380323333391805581884:4:0 12211236489864863005925549866:6:4 64913447155476358621623694081:4:1 89118963063258870795966973419:82:51 46741319480664543407004671523:32:3 94954172300500106987512228093:39:10 69927820974037547187910265143:32:23 91346848689358806480929583356:82:18 40067091178771319361481653903:696:351 44301160818272578921526264315:898:821 18383012900439738047184789084:248:244 96440528983347974234509920572:651:359 47884443055304266692507697910:375:35 17231475782144408650672750471:1202:431 32799612916165824737798506057:5573:501 50835059323228379952438384393:7099:1216 48873809938487277150807040666:7501:6681 49520712089934516311178167121:7871:2613 38814980700757351590848329377:33487:2010 26876068448831135692706443414:67919:30634 13045698550262580571439269005:76423:45546 52056823150689788180328342350:93111:85724 92540059055117211910189818916:46639:6329 81252631965171405459038895425:555387:422690 80522947656911452517885632543:251557:134412 96556463109658574913740487694:757728:495502 49999307303598962804510824031:105209:59802 75464034293281474375953090865:849541:521020 15258985017037141699312826939:4600686:280091 66196858701234243719415641228:1535976:572084 86798864047675899326127418633:2111334:2101903 52231410393220476584239762777:8299808:7310809 37000455962813481800774845017:6449954:6176819 22135968311509316966709626931:77948127:24099780 38841133355123623163525226092:67195463:36499159 91199037426774992326565855930:46002659:1221250 58041238791890351282811192927:80451518:57475867 34018818018878486028588607206:58904321:23272362 57467574578006503227675388421:591351784:270938205 58827438998340595856353399473:222631519:109420905 92799093048480495310896460496:246262753:107956850 52065223126644000062934015457:483723215:439205762 51681810869295530777887374006:146547459:32304165 60793864855792414275857100833:3644937235:3379295533 40109542218158728680698449591:2357207644:300184535 73688927289906804707536531534:3479552549:1208095684 50083665258288279120983634059:5429340763:952394425 74790064425454972828517701399:6909687127:3111585136 60198712432005551983844523077:65637381073:60450920404 33208035229922505048603198211:66842581939:65400300310 55351597878599902925382270317:27377348174:22501031299 30349913998610828585660325943:19210895909:14999929323 33004198560384308252913563409:86042494449:47326248870 15456114617526909017635412715:288008091650:90413846765 95057492909970132840914245263:187052657172:14534011011 32604203231679131854454073070:699284560462:585848094358 19549775621263623032900023011:571794135661:470837269696 54536889195433185342870895236:971675450463:801248011614 55201930795200565921868037497:2530097204167:1555530798565 81930042812192540363296971110:2785357518361:1900397106679 59089431026770447106613361503:6007561228998:220363767939 77404456435831023780830023527:8349365189841:764134840560 77389900428509641334622637778:1707933260812:705504128090 50369535865156541944628336363:44281197365967:16149569357366 21590590545682639129497340501:33479782473929:18987347757486 36052363288119879995928924040:44719070169013:16152422355524 91754011094705966993915842462:46066957514696:21579089516022 10764817566880125545160218669:34808830180812:1611710194241 61565389950724218428970201062:103156393476604:51591662416554 14000993068881892497613962329:311344102461277:150335320803121 96147319028602302591636346216:209025395821852:98951881890416 71607331832935284544492813617:972462262728308:935825014230101 77557742776861084506671916174:403142027317632:2066389823502 34296783846342800223503629497:6049537587055827:2667204013771839 79319557403739009847019015638:7530282843971019:2832002257961743 16526914510207536379174469173:8536310724184059:4777532453106691 37601491885534899366419025550:4503462433043798:4201036751503890 26391187629653288210362615943:1905630189945836:1468034423296155 64389210606747418862396733517:92378572460355360:73675232883273037 94621367563857903143812707665:62613907880800933:42809560444338866 74006660884736157962542288006:51352741451423207:47277217038313979 51640642883623968016020611703:66514350966938487:11054603153139471 45938876957297234540976443748:82830224009717975:17590247485538098 29065358981864639137287344003:909655226997125475:82279038421536203 75536461725883367555242500699:807678803781554158:509610033317701311 16511576551380752697895958644:669682225629887990:390826028944451904 95993098064017107145141209917:361321961009343674:282405403009345345 20175249901482511478567123841:647548536400315768:17127749323727393 72506235658594601839755899858:3767060154164396767:2115916888473642592 88447918331740216683316156841:5568102066912685640:4023585064775420041 98463902594588613264548054750:4844213197373642361:2089117531887526307 81906436730735812160293291947:7915400202492203386:7914842454276128207 95777976378056870723872026406:2531095601228743113:198211091352997756 74230277475779966788538041873:69215253017184958846:8698170483385906947 76928323614353216496201397896:93209523656100803701:39958296678077885335 47892403038358316200444699712:10868453711225743637:2075104738992834093 87850633977926259487890144461:47086442903007347206:34204717922245224349 70762146871731177386467624090:87035743201968607519:9194257054500673356 33667978959228893342106588584:347445661365461967575:305185166997171196934 13299689097475955178611478081:771165227152640966578:77825399724789810031 42678540795277625655169738660:554217237284084611387:509810596076244396100 31785741496627514531409554963:904369412774228803790:879416547027778974513 92544979861858270115672419751:944812119180112297955:708858539035852837856 78483866490533532178060142323:1542078395093609416255:921141198949470776768 38875587418618224047072915054:1704932288261101344734:990583866005068783430 90650531667654526396587403203:5791584866748904432514:2467380465090486266149 87674159488187074490717884929:6648835245749084561048:4945488066078506465065 22759972808105241758840676242:6536818987040699600210:4554018076443133895932 61836912699784918934777456244:65217039910369944470172:6750929538316550000832 11615411078526383610333600937:42097804485285145660935:37451773417930442381347 34526745612476565733499494900:58566213633663935664484:29990381764749409248928 40313791287574019476702742454:86475735718385994653843:13955962526173006289656 63612467087808290948183975298:50473628281874326791907:48627879258149075664128 86789829296626577140490907069:172000470648606402535610:111812046272485047457169 88983777422265329373013937527:124306477003765175918399:104617413062078411278968 58007667798199614662331486448:386418499765733045830791:68287366832754396464692 34391465612637150762830024560:215889836635463153685224:214636607870380773841360 60800059220735509322712709894:484214729967770601636747:120867062361498796209586 34687897538706531475221198658:2039034983481132953235762:1873434708978807727651276 67092093759889710817820000679:3348397120919644332211327:260648022797333301641580 26589067361474008975960518274:5327714428415037726621859:3772363682970720117441864 27213929088416987012072026800:2335288017785697676486614:817817160251987973513858 26748225950137986412724766347:8419178314741984031641770:496444202703144198863057 56299668426166027460775516812:47548181857472425480837880:2621106918675691463466892 61610363790254068600458885574:74731282213949683140716836:31787245959529692508212710 76615391527561988045354142751:35655623675676409588712169:27111872209060248800403739 22838481779101262570560492958:60165178451776539818551507:35879145877953979329471805 74741946243467587662490602738:41278839204004538409905726:27247284219373140561238678 84451882811988044548635855784:694328056008841295460253472:438188034918247797945185672 49007188128518046365732548826:800336853890060078597222137:186640041224381571301998469 97358637945196533431101591408:975474047021342414765648474:786707290083634369302392482 44557341227576619224761278033:143921374216856691568007683:85636594567901530246903986 50035343508854478962866620921:155061428944141384721557585:105563388840953082525078551 63000245392365789227330455487:3100465354750879774302068268:990938297348193741289090127 65360530933790266497012444759:1081797216891901171297160552:452697920276196219182811639 42151566059536635725118641451:8054489631848252600357758582:1879117900295372723329848541 21011600462810570397258444480:3537979566440844118427477725:3321702630606349805121055855 29463309904958827585696811704:7599353938997196394862414851:6665248087967238401109567151 53544176980585879527081369534:83208172740690682436460089412:53544176980585879527081369534 98396716039118936767304714744:81175638121668393804781843516:17221077917450542962522871228 62071795015237417448929560100:84775055682667724872451015369:62071795015237417448929560100 46412279194470488275822598961:61110908087598260909408754444:46412279194470488275822598961 99896446374812802993053109958:24055583028097566937794939356:3674114262422535241873352534 72424547979413983091728163571:428460899250117593894207761501:72424547979413983091728163571 64492611307022700374328596776:302894563031702435759603731639:64492611307022700374328596776 56028007428829457192873604468:647387481055467827536563471292:56028007428829457192873604468 79608644045719860542402789884:606287727234938502192213245098:79608644045719860542402789884 97837636221191446353547279565:226077776304702999557690864068:97837636221191446353547279565 41152144693852210560588680597:6:5 22862718993456167793875608165:9:7 99033135718396080213481709231:3:2 86826595154629313099948929619:6:5 75016566161616242287538579126:9:2 21137569716371301935200054637:58:43 35398043780400385730229383238:71:60 40058757503945409312481368136:77:12 51854233802031484560733011282:41:18 28691156218416378401356583997:99:66 86144576876578982346645685096:566:166 77620154216130777138982583878:854:564 19489114491628564095433950144:421:82 40536533581795691482088058189:917:240 10623791599970341171418841483:336:171 46637670628795527660470955922:5194:5042 40230189142765461317718744982:8113:5385 46709317279782320062709915243:9029:4041 39875505469475968482889099377:1667:725 94048231972323467411911061916:5595:1581 48952819050011876380792213195:33151:26632 58365642724427173681670132096:79575:35096 58909877872518340389107106230:80368:32390 14628105712894022316208320114:36166:412 62960936072344762230306784586:84715:49886 43371255623807465990660100083:280390:135263 29855607657761834839460441942:926733:414824 55036205498937315478974096984:430626:173250 39257911943017904854419267181:634258:393295 12724194864890359176600294802:614706:606472 89611214190961441075177807831:4339067:2934160 90533699368743550785484253903:2496534:1981253 81572888560192305005496013189:6784665:183709 47009314101267058709882251958:7801971:1659842 61895504281101854742900804953:2074346:2064665 16994678990706687529994492368:42192545:30966623 72076997418939964879903146752:61444882:26350058 65651638854251072185619632168:66574639:20578087 12218566112169168776215986227:15153436:925603 19099896001965929385187358958:65957065:913478 67704196489022401108984082114:102044514:17215556 17756897369813128257644926205:176850406:170041677 36628592245316002218931257863:992111870:727182893 45964753336886627087265922741:803554437:684708586 88502111993389530771136586947:924362962:170968939 64373137703067284302012701780:9872716538:2401736746 69616568211434982651980737350:3195630614:1348483310 27677703229040537545384512563:6493759551:2455321415 11552052374477064450512126372:4087848133:1006464292 43743425290628565498309660633:7429515550:2502469183 74460156151150001348450762972:63615370704:11149724012 12598157644121814964339786051:54732357167:40964338000 52420918879457033706773930177:62251237220:56257643477 70619382447207144987191479075:60654478890:12316826695 29928926649782971497398921816:30144603085:14393151331 30068306315129870402694166373:684632076860:33566469953 81604484465221994725494534739:714363509956:543786680531 43117132441042208078475370411:267259606599:24989975491 73231507052277615640116541640:688828439542:30125337302 92974077520286623327744052733:540813546080:422074205693 14877758231462658991115151060:9054315094221:2296713607422 21598493970301116477319303694:1759248206843:125499859728 40678528520589378952464086973:8407369403426:7768849442745 81777246133071755922011260385:8434002183348:2808076237013 68531170150468852268814511414:9204075563017:3664787106994 43033353536225331766767664935:58614655542051:6123576687009 20294481150810463034850068087:80123063414186:6333909759387 50797466820568412892593644131:88404518187967:57564943512200 12053690832418027594512354287:27148913778459:5674959507344 52863871965725922751840106143:43686277365213:38182434501844 32791411660552324665594405950:334183171645137:7228560942329 13514062983833810998184760585:914949553820705:160605591551230 75620393424897694527460100460:558660386739107:307954784036372 66866682824543888408999918366:165145401169649:32054107588779 74146681059251802850890645087:580773620811791:71227676869833 12495049083481353999734111142:6941771970639889:3232942923915426 61681982027771292616672750542:7029215991672883:398507269426901 26754813029324314567065302687:7704984396517851:388644722991518 99246804032070450957374458589:2096890526360862:20975007802673 60200896668438213012950240972:9360661442480701:6688690226283521 17896432758108229703407355527:87006542965559903:6614366316910581 49859397387290311088944214230:21454574464561593:2490260041505686 67947667067292851812423598511:75098395661054086:38172872676663409 94370566509710013196838857530:64556104110304330:37644253163747630 71516297408423358663897812386:87118513322976969:69385773062080225 98485270751040192118684336077:535957696143514523:383035236562907747 15127272912143263322942706592:747618562360668407:734644807351666021 89903429247275655637866477664:340481185565374591:79717383736711879 73790460978191028921446914232:321627337545096315:148542172760633402 49319080608373141826139178078:969979334320931682:640755023860122214 42696838212570156952114134407:4819449667139396916:2187046862191920383 17353093358724554028889851094:3585137977266626703:2109993781468324429 13776470751124489509730566608:3244960764429715466:1935089750415267984 46264185447786924908965102244:6956239870499846124:1014693040677679256 65650968707379265310463386603:8586866174201244334:2639966434985147797 57132820598193275992319474547:14204157221879665069:12020334544532339771 43437715795804777569246844036:87586663950133851207:40588283223598861984 75322258872073302094991535261:15477810815879617913:7578361766409548792 92109313923225197998803505192:53612199707029144070:16035354212116799772 35979276075361642499962533448:24950513375928755125:23241045569103193323 79539957767531334594424548350:401118928094831069734:98300116750138141284 84746342241070339579141465267:159297163193690477570:51103485868327859807 55821085597153185886117515012:789274606050494615913:572001525302204678166 72280987537909069223092750237:690555553082143211559:544580841361793627335 22336151343217087153039143566:293448847571605402806:35252160599479258790 82535557993131404214866263712:6383457269083556665345:2503331380871064886367 80829014105646362902984623390:5137161811843577342299:880458820686062570467 53298560461915920276738722076:5100045185198332411029:2749256301590376999531 89210100685158100976955532657:6939427393671177801566:369867740559456153885 20138088232280374544279179299:7131987545536759158829:1371063960817394008858 88080379340502406840901434412:92880029323548334958039:18412277755640154057776 28753457446915003268805444677:71228589593939523164004:42856812684437006637965 91132153896709553827436255645:23170031483023244606302:17767997358374375292265 45507679252378709924124525766:11760015417159924462556:6392672036030993885346 26008468398557100220223345235:27129608170262909603339:18415538475619151932749 94750855543014369515894888281:502059157798269498248078:243046693756728524615809 45632637239474852356411236533:871861714194942858307111:266980225738095475353904 83185436158803118451756170255:289376812391021742270520:20161630444331703408975 15910409746094547317243531417:149171252958648333564278:102248031033355944768493 26818227780473010350938739503:808487093929303749281446:710874838004987273175683 47280099211741181223584910269:2553102678982768335313557:1743802338277190248461743 55521135332781888581301845415:2510428247518722700323160:504210657817340954838855 54739365459837093751402283145:8957780994451099754682387:7323583740874250292898575 64723060449137780248894812768:2095558478492234340458874:1736840905122643822489278 52771206382849646012180539538:3415885321716476924012287:2609932973510490038729962 40494500082786253067362299267:44435595471795914384126383:13672607980175063423164354 63876412861322080614395521059:42364700311041592898200179:32809492582400116807851306 18909864840185455517096067041:88146377788042144727767283:46539993544436545353868479 37160889607535564953947385635:47399000656192733706457062:73093080461728085049027 90171162904185493729872265715:65135337519653899553029067:23855776984496748480036987 54036056404491908992830872551:760517250822378160338233086:39331596103059608816323445 84702674178472251512446222256:230160031483222113287114564:3782592646513822788062704 71177869193733867935425797469:772456152418376097657228633:111903171243266950960763233 36938589722153178852767816512:392530283863533367056988367:40743038981042349410910014 67780352471057485430473083137:800915757009309826287147674:503428882275460022352678521 14246354512735798602829197446:1344852722895236680352141997:797827283783431799307777476 19125515680048851712379063156:1409558768623621596530044893:801251687941770957488479547 99567325885778108065003972880:7976936707041928805762986053:3844085401274962395848140244 97810415037062545528588006591:1927068281339632455292412541:1457000970080922763967379541 25435517570186958675858626525:1604594966325904489591785947:1366593075298391331981837320 36076438002557760961240721657:50293430733587362368884810297:36076438002557760961240721657 35501882621854311729509863779:72917865438578251698400435306:35501882621854311729509863779 96709312340554997254779019351:77155699991048875021155455148:19553612349506122233623564203 76616116168585749116210157740:69305656397583976012117175519:7310459771001773104092982221 84554923052101711049266493036:40127811120720607049528786375:4299300810660496950208920286 33197978101140697849529151428:936584763039353789732412796767:33197978101140697849529151428 63867655520333175708261147258:648581394263048940758239155241:63867655520333175708261147258 80872454204966397533590244046:715874514085275922633380166729:80872454204966397533590244046 28691255554292398921803034496:118724707815436030143152728608:28691255554292398921803034496 88144882248362315559144338706:631948919174425114916472796808:88144882248362315559144338706 521222286648666789549730589497:3:1 322563827285169925711272293907:4:3 510167023114106469355407987007:4:3 301572874640126131099108280868:5:3 934948033018688875280234703306:9:6 454795080078295423448856959437:93:10 460547335823218816678755115260:72:12 268765955908354041375601382058:59:25 835903792152043720844542739337:40:17 796477171644920473825147639970:57:2 994111365452205020909710812156:367:175 218633668724412275091185004800:249:74 937214040321201652459227698204:377:232 586380814147160247910041960413:250:163 863226719589703741792777341602:641:577 370655224643117194546350077295:3687:3645 996203326600639436133599750080:9355:6885 455876068100866878908931013298:6316:4438 309990975126371690209037481947:8299:157 432637804024192745151016891319:1918:1259 277126624191349997510055546309:71927:16438 613350501103446996434332472597:12951:3971 868434186514503197841385751576:69517:34657 700628348275893369492098604148:78339:45058 779667505911597675820187382049:65553:49822 675901707361982913680796146507:520722:86345 863624864288452787715627942791:630076:109979 206538786621811260386009916476:110252:54604 163427533837575143690054794757:528584:15325 861946313996915125245022558066:440741:160711 744268774683551119867719346585:7059500:5011085 435012618012006953384273472118:3891587:2681125 779598606842575086720249625095:4921517:4113921 823863882934027511877848911977:8894829:3485991 876728837625168703342956917395:7581344:6989491 237890731924851138924639429940:83625154:67656382 133558356923391986755888790544:78349558:20725968 293771333117025503521635218788:86969595:4769473 344010650775383274276837459710:26895885:18367850 692834291126331992876933355704:16195676:893684 187760334365098323452155577588:324131503:269963049 861172461463426075520772993600:420435737:317880955 761286038026340343676823271335:492502626:428657033 666050332579112093576365262570:985470912:891022442 811338200299094365323774021026:347552246:13481950 301323871315530852260780303940:9298686394:9140911922 874729204752739827343146033420:1767017632:1266680652 814345469689557403752443970189:9075617933:7381889959 224162857790817757430157625522:5626875074:752400080 231779019384940441049688766745:1537566459:595780073 800220167905507769235825281985:10613762485:2811833935 741189544700966190738232451731:80514187356:32104536271 488402489798534853320193467087:24829409218:562802085 319998851664155670238947391288:53490419222:44189256444 809320511046601849724292386729:66683057320:3754372729 231947237431312118647171044527:195549543540:104856102047 495039105438134403822578480726:214545926110:111274298226 649478819554665008118301674996:701301654003:578723021139 660128303803103874982747478412:369020337288:203488025436 576737325747551330973684732034:919221585703:670786910707 900649042600897300896554057308:1241667778881:257759983573 290342221970710269731501929499:7116574688563:7060858037158 162911901466789331246738066745:4232226305656:126844527641 529173523661729212690629549378:8848395877673:6880291106833 299936963528963792755665715090:3287910141643:2385436884252 492414633480686141060371428619:75864966577487:2124098030331 111130937115561972425969859338:98598714546299:83845484425213 542277200269422938525605233797:18348248568630:15349456823747 170286989513269766958993676298:16577167475373:2752800813785 834013501179395745063551830555:67943705709900:15707524307455 910554412246996958169431907599:956408301397684:22251820285259 509134049675524682304912951427:204223869151502:154126065727513 139601049538794967553138097298:440647496590428:283949118365362 627354466054526431332065383583:207986743313481:139112919199067 176222191960359487431968001978:380722835994242:40855000007262 785754370940015379698971510438:1136702181014693:700626307797978 238459974011712141936204083750:4975156084850440:1737179022386990 594699126235881360770196160655:8630128468472823:2805982976037362 826655978166828098047321181240:2068490615195479:1616052784820930 980403665239410703866660442075:8295341568284123:2440357536320196 677776451568147302983900698632:99979323487672708:74042758187743488 628155110164346350375445003084:58289704390681089:39119005170990299 528085198225127676215091179293:30056487154385468:7849885263309765 657885608457404520222772670371:89643316261935470:59144440182717421 866399376510018736580647229722:34091491910697159:8017372581258283 623066686362836484116009213107:818330691851430913:681923756157110431 658877310752211878217786391209:391291117885822692:1797661570371297 940807227919041174635212642384:769898235815248075:79001440418243084 751941122281392514313432732638:428530641519864303:162644495577660256 619144851579634882755422495713:914589398256220348:776413826601772129 214009675482418467048691000050:3015022375422686036:2803207965443565310 479498178448616105869374000855:4060894696869515220:69681663695853075 625088097415326341277156323129:4964617402894365091:2919773397922562 865766972165511503622945745601:7670333595635761465:2623618818503106091 909093695688857837448983046361:9416198876785204252:5046866203050055825 551560088952840725608759552538:23070775922417468472:23014075105008491546 999708740140880189282921472284:85941341700223633186:19383472439977090164 966697956738379323879037937826:96233056705592599549:25378994637554280992 494203444844984428786885338392:33305664587153214745:26077754693021293937 983839316301254898766738029972:16311765123569602931:159488567999007762 320618253346816381659617555738:186856637284279879028:18804038615692955946 173899472534800412563681114177:591017860649341560012:152383495037674027129 397429141121726521596372400291:376095800564061467803:167420707725655321826 595509255274452445042241048205:809057092213494971782:203369348852891989907 432819171746296176217367993422:537770905688407161196:82941707652027483114 271923413652575240811642204539:4247887904887676077303:869779761035792041563 874518294664820127911881429182:6219101133406169262229:3852678810073960226389 241644179705352572188154529993:9055877989114548956400:2157142497147596108793 136562678245650226696152598234:3655937550867888193536:741798019253689108186 489486026429547884177732362741:3536926389587079657588:2822956468945332714517 322521775002818142225412232078:68625936853720883992022:47815764981402802486546 146132567461512650193294588310:85484916452278637677558:35092499123900842354978 390608254738973636698149908894:23127677951464573970359:21876640687887649012145 931600048294843172152775092916:32346248928851722417910:2599843323221908347036 729880266636604431886439892487:99061953012949294395643:18979294105570777106856 500244657950938929147702230764:902086507720607824081124:703873045345773931646680 801986468174399077055854358964:854267161098078563647498:457335522921503583236564 169844326982474015876379298800:816539911336174105393901:759264904457258026315196 853876588643421056514429524417:999644733857564735943695:49876966410366044129317 440072898232517367887450371410:999085728644631570330055:611907773276946319395285 811090649808864216909185774888:1154235118961792031664397:397833461261922360687812 855875284144917190329122275785:8761531960457253593231879:5034587650373074266175670 640216976449598597299716821328:3156641470323207290406556:2736645997310695911166188 525122661631246080501660090984:1268295454992611820159417:148037015067706495395138 121396677700519061418928389494:1573886519551600932775885:1236560984529872991603559 351024325359725946825107870588:67992161730072370270771068:48786509092371487387617572 869982829495943499966882002102:87972332099578976571708608:24437363207000649255577590 625855140661162992045958157916:82823291005077858075404217:42353826794696428203894264 117353617772879953930110257578:55398071834995210931944510:20501626360097176251785398 884115121173908145421867332312:90228022870984641453180185:60953084000628463607879682 771777933300875593314995176502:575575947929901660501427354:506163074807368243082522142 510261346341361299609415563732:767142929518309683191847246:111298211685360286837145142 917943483601836525359894272080:913554267752499518822730827:734998778327008461872521772 432185315419547014390877214718:975241127712396029508974269:153495842955573318401613551 886412261528396175135299509825:111834765352982834911880331:9911340654225623736006319 645626700156179004277967686091:7026092387067459254101251663:6252292933040212154753784758 893703823882731156381862752388:1531984020579862979935736210:557139884671039079328541958 663277653343003823897234713790:4603940049272424936173033635:310286247774633088317870350 813117472867048573442238596447:1016368694889173749289230714:22516955709574010854025247 818834688279976899139449387827:4938906024809131824451597753:3915194186470148104935758582 456860645337837768691635846670:17408299833746400991160489875:4244849660431342921463109920 581453337179287630738908348981:76575464917176182499411849984:45425082759054353243025399093 632550900195131155843494376337:51402287271034681493248298509:15723452942714977924514794229 490822489989098901863957275660:64278616997350805416182334095:40872171007643263950680936995 425593877926077155999945635549:40658663184127425396935531534:19007246084802902030590320209 135151720858656221261918302782:858971695386144920272409392956:135151720858656221261918302782 884034612964348067460318523604:254388039227763108515071361634:120870495281058741915104438702 126736140822877700927005145994:558571128832059659108888618101:126736140822877700927005145994 173401062655261473135055812933:952267770667553995811334982359:173401062655261473135055812933 254023621966817196327660146872:845689700864493128101393285038:254023621966817196327660146872 735526589524426007695636891298:5725229214179023680457273255960:735526589524426007695636891298 274969190132336846812528151039:4657792376462952393741335282100:274969190132336846812528151039 300144930501080053310828327378:9798692759269376995100370795470:300144930501080053310828327378 578468937513674148262398037021:4117578397356857279429819222687:578468937513674148262398037021 198150783545073001946651087861:2097623593919160902434120712517:198150783545073001946651087861 397851301706212399970748411323:7:1 516952502986186490634357284627:8:3 580404954471257984504983267610:4:2 408513050063344320534915716441:5:1 258338813066357177267410341714:8:2 764940076846870097062234295159:42:41 918753675653763358983836733909:65:9 825184351992427117581317457138:65:43 263447203353433481119854025354:15:4 975587437290876825490346361346:24:10 728330241322985898756505150649:903:299 327232438016617888013900087637:678:45 900469807633146889325680455211:191:79 770676153930595382675337364377:591:219 244592321952491577169669004341:312:277 687809356456663740164991876273:8241:6795 736085068046768611069320188122:2384:1146 406452525812206248425225267788:6183:1195 462564118974291461719002241263:6442:1983 703995527154366300390422667015:4864:3847 118889871835309810649773936875:62540:42155 986951911550724608298690755034:70879:12570 218404118430423479927940271614:41939:16019 378109261500659618659102313532:71286:42438 189631722995035657906480245302:30779:6148 422169251686608527241072484725:244744:27061 358217900717577033753328651679:180774:88121 521823623739599010116501898303:623315:285058 938154037575204754921389314229:259823:21560 263893216347160129501705270533:967951:644056 987016149020741540045450863050:7725527:2100651 146573625078656118143515504098:1915651:1512335 859392925096747233477745341353:1575544:110001 845704371453758756767798216034:8682204:792014 673331924078082796372932539854:6553625:2928729 757996436139923142511517789097:48028361:2145556 284339317897502198496971596528:57886543:6475492 966823593537529528745458694166:54112024:8012846 270989886568227826400330352567:81717303:10083708 409666071897825582666074896266:35166152:12206610 582194219950883217936530627526:115371656:95891158 591001625748776624997257392402:817707148:242748562 201074377255219958238661914898:187634240:140593618 518380735878967500081817833370:383899132:181186818 594560293274066762260296272638:228238173:211878712 792538088019989384963958345845:5247839661:5178796733 118520455617021889608856440872:6351897337:4807543453 237740290248738548545984537457:5530046366:3444446011 725902984252185325475964222359:2821120065:1100956034 738127893874525805530554690862:8230719248:3792799102 906367204902046030271926564035:89700831725:70232907410 745577137160037497580818598478:49115523854:22733426846 916888570120680356701535984049:27726355327:4980927919 418835215963837704438496466224:25374035188:2744706824 668515508995327252533881832745:64864228121:32591011973 544972108901916445340186686226:291165590724:193616511158 202026708817460168846941296890:566029671253:266552409774 847658182819182129012622142203:561629591184:379802027371 873825789348580654144043335087:509850727727:55477834583 264442928436704005709135179062:219901067427:122171561394 194806564234141340468869400865:2311017080738:1857225351837 394986008589958510634392970436:5566045369964:4672916288220 388433091545109878570796456613:4607694864885:3341731475683 996607214245784002176017562124:2470606628691:572324157973 337462791557804840523388904810:7943241024809:973992798924 754103927686945592197287109697:41331007106201:37864522462919 579831879888242660862535590438:15475034489897:3741251460808 671707554369240066386015272178:82501950426500:29368782595178 582901356312128251746646035303:23849835995601:10741698193638 258469159157724884117421284427:88626633274232:20059176827579 919825354833387845557238981381:358246167156511:249687286989568 507286341452433751291758858126:799290741360640:692844466462606 393412888078974784673593641395:561487154163293:238540376963216 102412674928817445073614057925:914867958054980:618357306805465 243498542637088999241453593275:383330265395666:110277630799015 319305041894291699242650277608:3219973083367637:53858250516205 148448754213352068453430848136:5322254617145480:3073883918421176 326254666932591225261500922775:2978000194788275:2095195386293625 617715122642852449345597976129:6097044008383253:3608780755940819 866299595399991390522475977489:9671001666512860:5380388220219169 255382080362400449088669022886:86453020051446279:4868451036645251 279550783121895389205492161889:91550238194522847:20644364120944230 127013750123714108129581339968:80232004466815746:10095725102110434 737256789517569396767225351614:94059424042897568:77990494132320542 332222566527434754233420161077:25614632662856977:3783317322212308 929074013863070979340063051612:987419598228868187:942274003653100019 597253753215212365103176717680:863545596342405061:50520289534562266 975979465674698777089297622994:906559285740556430:196781080201479954 112537137497573750059688459993:839347390661380121:105353204058121227 298072824673178510524971600818:899528338990895576:382133080777835122 670904334308773412890875374610:7309422730499565164:6565901204698279394 199360704916218568511735500073:7940177542388791723:321008396353488696 282081655177795514583644608420:5244694675092952832:2639054026392028324 368220199906849561820631545410:8283071247464476953:2418773853118428928 485642011511524381978806690087:3530748192738058875:3089043618157960587 586064509700198070114531311271:20209571199993878124:436803763885121535 975524391022636962474579993846:47987258581824405659:24282336183069436007 948028873963127768951465770167:33325622502437093532:15001985299655614863 287377354512444814914000927143:28321736402435458938:15387804056512025549 513748565649168769700552042425:29325635940635293239:16757758235140866307 853204714432834678629440814541:741757691956590623404:247242256860010358509 254123286740094552399286944838:473869949921596159023:21441003707722816939 870450402421271516815386632014:859442356373551686290:666923798795880620194 914384959360416903906843258568:921224371648769876367:650001610377239227456 370951896482293225359651440403:620578635657345784287:510309576069702528297 286662669506573681288279551857:6194493264804524744420:5579322452818359301137 300648649264624267049744232139:1334380770747117440234:1010545859114751091947 778243893114485625431297277198:5224576967206869356225:4067850273287570464923 911171386280473332288302050451:7687234321104286677545:4508366129948454917476 266377634851354128590781456170:1335170211286158160544:989926899132291542346 543176126617489188453995691900:80773055883382045194477:23030448164875837514937 280222370050530447551517885524:44674640577444279005547:16908902545825039244819 607030425275156739683351656738:28942315420751401606133:3276454730422434522939 160016294648897696452121080559:14458687150280109410172:8657920986954648952823 300436958713583324564886902834:24782125604222379062884:3555141270053886933030 179637492836579869750214185621:347877490685802031462950:166318754730941344601671 179046580649484313761546574006:726866189471718710798927:539661673730605290081804 868466671015747311174410745224:984209404557546226918919:292434168520541156619624 559306178044486519274744131409:911256677962341069900068:521784828591437899794777 178839345417227624482950093412:840109533912228099026012:188276128155674688762900 629807215031310655667339123891:3624804496318236134536962:1058600513445527676513353 474887167003276893470631027984:1039653078643383912993117:671659023849997113003426 710785679159955850940665576887:1316769571404905863058931:48363444690590769917742 666733527393246863588791118381:6795944437609931065083818:3806452649356586612985855 775704733694405015518600440600:2757118384757987405602988:504616284290901822178752 736062962724438619067427648684:33119098410101378072306815:24119658345592788480992124 442703884549054856036654864862:77813415275094242277906943:23365049043711717642266135 594682617900297232730367722286:58777902839536330298034362:26574872708179105154081932 428414907991639623154571211720:45202190348317485681606305:33750060634811349988259235 601254753336430576227404341647:31508736534622389365284559:5042782766142359044386809 706053761121132427697632060072:591336830316345239709621437:588922553732556724053685731 926232630305129267414778115726:167853843239612559697415049:15123308947163004441875344 597581668041047847827234718012:125317873779389418382059289:66045860919100981576028060 250704834778474198483368332331:626119772099973796569935536:256925938484679855394117931 577289682141046474660822902127:769712866007416797098612098:5032635483876836863828627 574129307036918145630360055472:2468437902067935550971687405:1451713757157097804928577512 390146570524827605582215300120:6421587975574763232130637686:4851291990341811654377038960 952391780112950564936644145396:3661732369851070236287867324:341363951672303501798641156 823817233247588268263563466195:5326711856683474062438078856:3503607318333262648099322371 553880709427090200528125256193:8988213979971933265731723847:5599656648802271318490101526 840447175703241029824848074896:88235735941053555227772273576:46325552233759032774897612712 601619399972432153756861405052:37368057488339530678341115639:3730480158999662903403554828 323863419693123667492620714043:41449267120067905261885974888:33718549852648330659418889827 517985058497143715199938778836:89831114361602746337591863226:68829486689129983511979462706 555363450621373971989797517231:24457193654145733515023683912:17305190230167834659276471167 401257436821490428211006514615:721768077052710709777367573490:401257436821490428211006514615 521210208343336673966362029616:748583316457995891526591775782:521210208343336673966362029616 228757805515892530803441280601:425012691762945865016992616980:228757805515892530803441280601 185199943982820008344377528301:629783735695100035883014567490:185199943982820008344377528301 162556399546594769196005444809:789167695755492958130851339150:162556399546594769196005444809 582989179730291632324643409660:9987483164724051583806902580833:582989179730291632324643409660 393078529887139541974550512009:9575346256254654245887610868282:393078529887139541974550512009 461291303677014710495226438716:8064075590779969753999868287441:461291303677014710495226438716 948289927045014065400234178046:8227920271366331731697289686368:948289927045014065400234178046 640308533337084371529403666078:7098683323602277999499449693913:640308533337084371529403666078 513786103991420309404564071141:5:1 931802503188162139579880068483:9:1 572822633434767441385795113994:1:0 608603586728435229830274206239:5:4 223252990893459914363831578092:4:0 103457662033150678203073807742:44:14 323670164401104156792978793396:83:5 299848857108809817704161771502:94:68 175903258195968688842041246178:50:28 479603131145717304792152688717:89:26 837168714463734651288757568778:600:378 433101766976723448755465041881:467:131 359568414141448963615649104204:318:28 358419276266869476754599774908:491:352 209585251745402762008162367079:153:150 128668947060230679478373338321:2093:2073 312317353638441763472012073204:9707:3069 509062974879994595354932005755:8873:3593 575637043648043418770923017672:6160:2312 341514012715268499298505717905:5638:667 965529966944555846063093536943:99440:33743 837019230719291606699972729888:83934:34124 441846183662477634531198461706:59504:55978 812507300998376935081922010063:65877:19815 314626976098926086915110455562:66523:19363 893515544989331776561146988087:593863:118562 265087716132356042256135085258:120945:96898 291714676161487730010667520321:909179:51321 791778600510665648726233161567:696844:167571 197244836191104582613189908299:450265:23419 186056548578413734182697253977:2423417:1247953 717525213460553259804446474321:2644267:1711437 339976298574398520178688019219:4473461:2392840 691096931392065104980957508919:1178439:493587 936915116884749672202032419407:7662719:1133847 402238506539043813122109284614:35289811:24825415 516024306292735361488282128510:83378105:26286795 412077223851131601149929809036:42620492:22787360 997009376919280887335222133587:29099886:2123087 309157057419490028891871432391:46289288:13387359 569250021363624769347394989400:263870536:250029680 803160496769372190620453388765:334266548:277105949 132401243539874989731426230718:623635681:308775617 815983735207130638695640785306:621730572:23180982 217291595223288690034566751857:637295088:20755281 985431598170419645555251678994:3728782622:1090259740 908875347749896004550341729663:3519416300:2765240363 635373691104530578184179808444:2614072633:1315870464 772419818080927693522422343341:1350859126:241694597 785855081178810904860216803847:6802068409:5804990938 752971522913098732139997894605:19185347537:16520887504 302670658677120211240047851570:14638076839:11025750363 265534467914111246670407573232:71557011892:32794648160 409666634828607237652675081430:53308483061:38557070183 676620314048484408462675611266:56711855629:40688448700 591723032754036950690163192624:323019299524:212787172048 395540275407405921113378465281:356676238946:62430700183 792209685684007859166771756863:622046967162:411273487613 127096671574591889982144341194:919225946012:755853167398 930538061099964388926667107982:170024723976:138733090318 223731322463147181809345171089:7777949787826:7304061339877 510568029537015293186766986322:1022175786417:529594873284 484653877677758890689949166770:1327262338753:1171947501559 800734561938713556830401276934:4734561729730:3206629160824 564579770665196466204273519466:3359480779470:1656283162786 506132433207339644362202032304:58642372235532:25238023953968 925103182967785712902729481036:21426539965574:12441714106756 964146650226785125879652016576:79130016583719:26918340026127 247670702603195609614844227444:77284994031542:60107580989354 359523660036560429996916684617:71878357145394:71275885345937 579483867549044663979820291468:840990368299117:822496248038511 369299210529050454657515616750:813545179561795:498806736555145 742565138261849269982164523859:180999012366647:168361054373496 585898822657693360100288221791:588119466111940:514916519381991 248975850209745057106251860146:962446142153613:580105988819941 825651946730574550448566703993:6653101993657155:856805570544863 886040925265181972830025169196:6511181540576971:1921876812112715 531910566269309517279702388648:9782743934147294:6338282413481804 118227882441599057992592166555:7581284514089068:4012201892442375 530643267177159484976918750554:8028146122062275:7710526379591404 902662894449379930152720173336:52908441005215277:7986652634492454 894441252234922931513340051104:51966749137794032:1770586528914288 909375454349238136798834977130:53803099433828833:25222639048736865 910117773331941916264406065622:50515849913977318:1997033217386686 956395854510073582917722619517:20026336669185089:2351522946667283 563578985386017697662138765854:687924455838931936:539377932123846622 389831225790555384382571863254:968478672326651060:60452642075445534 337600256094080185243234155120:675954263339653438:358763022127353418 208677462545414734463931908300:420183561233326141:175102930076753508 969413598597957044642429728518:893302176813767125:434650994039515643 431048491682497939994412009411:3684067973083494913:3228742252137756347 307653846096526434304322981266:5684090831398701916:554905120930525754 322093893891334412177675282301:2243590659676995404:1207618754957775381 661807211835422816154121865261:6704208352038075358:5269165494865156411 522850063164093223657095302175:4916389775916105288:2446912919012304063 234869495250633758056328683724:13811425835978675240:10426978307192765964 319949701413440066424194337205:38603816817220260660:37389535829635305445 311108207762374612195363900412:17376577642161027972:16563881084062155872 363997556367271697130395470420:51092013719839813232:23053703138971857748 717058845657081073934343573094:97860786532652524343:3749711496330425921 527623140240797732840039695151:113244413145704118999:26087757070410149972 430914196557190557423820145522:648162067368968047197:492216005046661570226 430527964489574484146266932795:615826893063016728278:196269001193211973463 490418540143855893003467959228:247642287312873145916:12907249095613959512 196463198959509898844762405428:502351305595618703545:282588878496883847458 733621979526760346052794235224:1979019247461594283011:1646193508968895910765 342940215658126896694002904426:4978545682839409663636:1538596260275640507558 261508607612832645823925126589:1887989249560638948558:1410496543291027152315 999577240342236390222477321366:2050235791466749932666:1163138309702669133750 515904379048655919644900833506:3701007822995620656511:2711127723059605882400 491677208589353921964172716069:91514866400680713613114:44651469487332103010197 319637450726269980005751526642:94719269186479221471274:78192037674730105596818 406797187550025655222401679760:67416628567793650370515:59691559048775635640105 997579228635736960752788425755:14351390846545439529128:880724691097802129443 507924216499462869970208374892:44951725687828119122304:13690118720040461607788 533164814023009174811804582706:157504408727350608402696:105137046632021223212418 221419193562788396622430369731:635375329024280567318053:422027761983120598670026 263391836649933545922352387152:860947993894191190140484:294981895846740293836064 484744237905763232781960893321:587902792283418429378044:160681523951788452895957 779866152260266570359879511658:458326318615561504650225:88167320660999279862458 191191996494404799745825692148:2238625266087528941709740:2205644199390479105347448 729849503185136284373819070631:1111514212988032653134207:371567656355476917265049 718244930026229852060077967944:6449433080788064779414547:3814984267017900576941289 256460611282598808254119114736:9944865652310715437549855:2415840810078550583453996 909095335777132787325969347267:2144109110896646576834216:1649193398225334569100131 847922622448402693778856206105:60594476976350293913804675:24106118333031042987388830 324989002226764445678572224661:21224445366760420238880987:294770928890980826551717 202203861206322940072751576069:65179780808911792393884332:16181137078560066922378205 675938456372732808443761780434:15329828183350156474944986:342284274358994012512736 492527667251857469627483312511:20615190901725236919280186:10141418739834388960388785 934843313021334594204213568570:244267655431350939771184535:30995685554547699890353125 303269997821316700471631661572:935316454123096604225153168:227466685433400702682035140 644725843851681898835234483127:694380873226574457878677022:340393497420801923822206711 648211276252781093682215466147:671595858394543755781233613:121272902046369353325029602 304017155989558209334363299795:326860016846270049218868552:37340322527063560815546435 282780218232709650414880302944:9821973367388250672359318623:7764963945838631588819381500 468131787008156090706267620953:3101030556157618789614854599:2977203584513272264039431103 639723463577225740391227366110:2853764045864759428228097473:480317303519628468133532158 707982104505459684584312350760:1395155341745646117048855052:638346240417103240542839396 189955294463711181758864396664:6684509434962072582114659164:2789030284773149459653940072 873572442534950328094128861789:88544731381929342062647384856:76669860097586249530302398085 158836512023441442503961926997:37811395200007111318614138283:7590931223412997229505373865 730471463183272431916681117779:50927724979780098211239915850:17483313466351056959322295879 303532681392069316521240901478:45687322917425692039110482667:29408743887515164286578005476 308633266798316311115801124517:68434567736485718290237849725:34894995852373437954849725617 168535717607898356747762530974:764741459549709639297319103189:168535717607898356747762530974 246532717657610665155453719619:260264375007297923420445158545:246532717657610665155453719619 249954539265936003220122310762:616425567451378668656438139838:249954539265936003220122310762 805667540447825558359186884425:605595356903064775855425443149:200072183544760782503761441276 745972566149381052281783554293:251218667320758747059034754943:243535231507863558163714044407 924242181954124747157747912030:5538028354902302490201881400950:924242181954124747157747912030 135597674003736134013169381469:7526925606962691165968350511114:135597674003736134013169381469 320013518589237151456662894495:9630609327326541696746772664243:320013518589237151456662894495 573720554810773173695686256061:1746843947413696131434732484891:573720554810773173695686256061 323550545090546403345279722962:1964984432581751108891864041503:323550545090546403345279722962 539591897002983108166159383966:6:0 618613254212863118633688756454:1:0 480823271862049841296456376188:4:0 756657956414782288904434613052:5:2 914937845013370285725751211237:7:5 462086882370187687538426428677:93:78 298002211112562862354151372148:62:18 744162729348433244944668726056:40:16 378300212740156384025191333922:92:82 849369837263370348525640998778:46:2 574314124020821804998627496556:899:124 635973353218570733452349410990:841:591 937258540785454655877503536087:164:135 357133653080493272886609828290:779:737 614372121749532623678923213257:403:298 687001216059399576973869139739:9168:3995 910119660093229025390304196226:2504:1290 218259112253393026773063405233:5640:4433 343464411302154872083558930887:3839:2922 522289341140255857520660597654:3729:464 573697094433953328602524453457:11842:1417 294605422304566197236085879072:62923:17955 955704639906946728404426192643:21663:15237 347220376886092247524562166993:30087:14394 769168767987414406318994603950:25365:6415 545486456394390868029037896739:219721:202514 336189803983462586556645121510:708077:117110 623414275894624206781036589887:719574:18649 697896095844665305043549317050:351847:33629 689895465657278951154571404785:610832:119857 708891500978971171046566259309:3314641:301831 322752238436455391459987169813:5811014:2294719 964139671192347201929392622040:1409353:1335625 392898949250251890320109304021:3586374:1933741 632483928599355747646211124034:5670781:2084965 164953161098100816461585223149:76359515:7468644 971132950036111799078065903838:74863361:10599816 430445927712716554625576766215:30722308:28091287 911502420609170505140584741549:49229525:25314149 143257339357319926530631447681:32384779:9725012 471406819026661589344643504099:344086942:74544441 373119161423289073015740260638:720980739:564752452 748961276715625933420117181068:402215820:231588208 904989464381917754208955702198:902843826:607254604 543587647184684029501285825277:187165995:20863067 292058077754274432335828510870:9099259675:2549690695 313802859816378170102662571973:2359574630:1993270863 384366860705778201111272338020:2687080759:854774366 736560182428080638085479934835:1388682584:1362822251 728102411322822220792634251689:7165858142:5555212683 285218925026656402001134508375:97997324539:71130710483 537168076630235563598400673130:26207410158:12524487602 353779036584990895375366267447:51026848782:570246271 761512902926038809152151952377:10185916529:7926863741 537112736383246605285276243202:99414683626:57640274614 799397120203169488956149601688:483482589033:198687092323 978851868231793715938009806244:676977977039:123083226845 866207813754873192908773404330:958539726903:12060984450 810523821924400856894674737693:452948826013:396074460234 334023203727473476124095120950:524383831467:88613323602 156344379596291326063582290656:9922348874556:4922950989908 871703515484439177440756026779:6600764496302:5546194871955 846944217910245750530298203431:2840254594708:2434737731431 391320689757968425262407474082:8790012246982:5487050303402 493009564435653982734464485729:6261205111567:18605894487 297901692143933216523884082317:62586742300403:44827480877693 251826205132968042167751034574:82027416076243:61900453345936 397238512217927792642671365467:33852426134812:20405773672287 154685635671958603629830868669:41638484409022:3064857268281 433541919865418187695927020066:72030662091705:5189740625401 792171339886554596512589873127:420683493766420:64136279767567 365513147672080660662132670954:155213663846748:47854947937114 266282632933339661520626205748:503146574964901:446321467085718 745495611991489153866179437499:786305220482734:137904495366731 552483445960594520149198998479:743717141737285:45115899890479 530971880134803007135332419214:5739357466691368:37264072810454 752203328745258397459329484630:7009910849931637:4027472128350146 647393777595805475919350607689:5251561594154889:1018928241192311 740412126087370804717766235099:3479277376353604:2307062825258871 738049636050663978618977885133:3196508059142848:250685390727117 625811441762068598693743581358:58005183672264187:35772860387854108 376168029082847718750627414964:50003026461005026:36511590691187144 554199769181487036630224372518:19215150223466006:7369616525937760 327979193047722848345225039725:81885339070108356:59381062932385933 556486323176151286694814634201:57268768756786337:47314765298406431 934909040613874911670098463847:269628356324062270:57313592339638057 201395291444066006773827677901:254706711509346091:51866867909443801 519521978739119110839329350679:872482830058845723:34969713896062835 646712967698856358962557297984:905070231954270895:772762811261212739 441020571729021895897713225133:647868895908038949:239920960476434590 640828586440261224179725845294:9074107818609298596:7095950879548513194 386691531729195949672710464249:3594041448311255885:904459847487147644 449546901310047547100669079533:2915928824106315543:593372019891506405 569394967473376386022965575540:4067100786245702457:1259991227693507999 439603620924740245957889678170:3814395515375213810:3568058207691239600 145561067156246102319815970815:46921762994259520376:29003153961011374095 120766059133122192858285253925:33199692211920605396:15659275652526746821 345029063245819170420188647148:34618723513368577294:34439959709465559610 891911281844943642611295223448:15955520153675525590:9301304051736628428 785050056716506397110790767178:45817100939669555925:11019435669136047203 715975183759303019958216466784:239337860986772134648:194898864560206323328 137677177222198509527445688272:991869858743947989016:64651851819811354280 309136074006374638310597716890:932831583287249931182:718221131360564702458 553845693692234324989263013692:381475576407235247437:43093611427724353625 746566514995097820995113087844:717056304539502740752:607302779299390902020 519764782971828516749300828516:8077103438020232558219:2433575409676512798449 963167222985368959269688552112:5189657106529043004683:5163860872069151657750 419573725536633406550488474877:6439248488712003708430:1792600233177628665587 866400562657613162705425610859:1947803900977465831188:1405216236132994026771 853405445410810481769093342561:6481518205873312412204:4445585590522350104073 652715632845311857167012119339:26168267851173701178842:4468129205189132536499 720816064017751570821525177869:63070739128997728354980:12300088264752792091709 299547062007315525782088306007:53132918629981513861816:31710417784935439137335 599454514650304110555272370220:93491690628969952355361:5074324379485455653092 568529308921525320792157094544:78505432938279937502158:29071466458595904052764 296404839736378340704030342772:703095570395980066521412:137028974628080532164520 709580209038101784837763335046:608889431579918813561891:558826106536833583106049 372442636290910256712725836052:885064798112704223119552:288726699417990233398036 315423374508370057422827896288:435365538441531795670384:171176403388396043347520 904020897016172604351054350155:944672519358557045687359:470183172344010759470002 300326691260073894541004299187:6298722658009307253519792:3594926190124693180616627 741146064726822568159211131475:4052791550087241050692962:3968379268622736887784611 793274048664957844608976629233:1103565195368545692403158:486408576881630199370409 273785668356741166883557897561:4731213584676364107711956:4531852274005062590139709 326279453986144044375721959316:6405156203493772283668295:796980171284245659012016 780494308670581471159492955456:10540431209181416130237052:6998924325150963829966012 470931520305312610579118058057:58701053219023186105943901:31671382308611637236084235 507471879945060669358605149606:10887070976045053782408401:3727609648622452984762194 271531210634205569181620144933:65208310640392738571844287:3805127610205768460533865 695289933607309355908566353664:54965611271438764374105991:29916634880425340499673505 721787759014320592752510579358:576920181881752929042720787:60611480247678520066874821 651342023240210010701253123968:190229522351528646364844830:186368230927454194389270878 392641477859194167460012848103:178526710202329524039980896:61242124271544096094857799 705251459625959038523701282032:756992806501810717347304591:491156772773260673360707811 230440429292278136929303269956:195578484216442115450811157:48974885309324928247727010 176129833170471278234589635662:9374579765240422755281018695:7387397396143668639531299152 360670407514093085282116215780:5829496131841896129964522835:5071143471737421354280322845 892285046716540434718313537823:8634022442099768508420156954:2980735180264278351037371561 341459805302864582248625856126:4277361560595478744429871402:3548242015821761438666015368 911064209758811947219993067441:2135232748841754237205343380:1455058752224642170516787561 861010449065078558070290902053:50336259476542716913173822835:5294037963852370546335913858 112765283744466886018467186074:21797597426268771028275500612:3777296613123030877089683014 728332158232752177394639454323:33485124845476062784297229431:25144536477754858924397636272 364430664928563939474651569105:71898677398588970648695969329:4937277935619086231171722460 887940995943437209049644235049:56827619145907662036654568111:35526708754822278499825713384 703867576790276676712078143188:876571231131869929343486715234:703867576790276676712078143188 366996480672479009441314659304:975190210993045834692087169021:366996480672479009441314659304 755140636443960181484281867336:210379518790569423415686953799:124002080072251911237221005939 479225903904308672648735793302:740619697221126586590953106626:479225903904308672648735793302 133105395906790705565697874391:920252509703423163971858194425:133105395906790705565697874391 646268439477034234360857238562:2877602480699594201313785367630:646268439477034234360857238562 771651790943801178164750987090:5673896116835162319902760895865:771651790943801178164750987090 184516835767428486099364919814:1090140078535092955720226367400:184516835767428486099364919814 769092575828083557037863527371:5251884348333417332821947081284:769092575828083557037863527371 391274654348387342226073283735:4211334374787639237775963885465:391274654348387342226073283735 393124884634437708947592512676:8:4 861511485484310551648662921207:4:3 888859767763587972791407967084:1:0 712623378724905849457139342004:5:4 758051222300042033946076469695:5:0 129105437835239086603063260244:12:4 527840455006419720789238861537:72:1 255206270616008471749837839202:29:18 669029672410819249759424725007:30:17 750099064420355864554985616352:93:4 861719603395912271362542706849:504:361 655285898398832123460145016923:435:58 576034491520931168982596156200:312:280 787977419300451779022786359669:214:151 114755727208820020655948580453:985:128 175896410481687888794543522135:4419:23 624766044951759772700671863895:1259:1069 607656888887012503882724250832:7702:1778 850072793774671294431187805937:4721:2800 617555575480080202822176810073:9440:3353 546931449665050845444319927144:44298:43174 453762376798006900949467310590:25716:7894 955633311711134379061999656873:30920:14673 459339587831829433766326819466:70729:23392 978661518018485217074579191965:51984:26205 116286358287067441332865451003:184117:119884 216446053350980727313915510343:278548:209583 147526247020665377427920495270:707098:193612 902111764672629047258827951600:600518:71962 508179794680833393807043784550:653775:120375 407588851049835066598883219356:3115776:560284 928691361293127386483004834725:3686948:3245041 844333458859028432556494530903:8999606:1539065 735016782350561247578927867589:3729014:927165 278119794971579486884774007339:9856261:1291123 931989021912916998357286116785:57661148:5942589 160254587948712205698643251109:96170966:40828765 763230518950418054895973283500:84573908:12706892 648064575749552177036985652272:34706615:34406037 327731971147533848217908349662:53997685:24084112 875766655423553192259252160105:726255325:166724955 819607468080303423921626388077:230832523:109740624 742096810737160329833193060685:114372444:108079249 663180628035142125568752485553:503336307:405018933 259510490917183201876887090007:951398684:79927299 868480584996364631832954146906:9356548852:6183224842 824811789099189411331040578683:2742456773:849145589 213667865722580109867627729741:7497800658:3320356509 769434139402479042163628368814:1338057818:959062098 892877521779904441406629490354:4380193590:260429804 435514970242328292331627237882:72484164321:14675993497 685697338055176069053398425963:84247125206:74210527435 732298960199144075883607898665:14249959344:13959010105 622751643682115972796626502997:44280319289:11269180980 943613505592062877205017208774:15878233033:1507818937 819569301516781504577273319334:996207096923:757419494093 457611895202132729907496495839:183149081406:142002450381 904214707308169789644127663468:962526547913:369288179241 953379518616909549856422425971:883453430680:361178304091 561730394236538471052852063622:946219382873:80588550519 865135992981820556619227946134:5847149937699:3549063456452 532791633781603592624048819747:2377947012307:713200176236 671974998368936888346414165397:9098617198410:8817043446847 974143349520718155553324225667:9460169745267:9097246071698 935997843402602555986719645285:3904696022286:1335149292729 757000111006467541918426877122:36424722126668:18934492188946 202019188119061222051136147672:96785471811657:48051260602421 261644894759150793767524760071:24549841096140:21938288201731 308947004377456030277204936949:53600595409433:38846347978111 490215631437912423786169153524:27348953389415:20517234878994 992891170581055001461303208769:456531224081919:132429160779126 827878046316257612863642856619:915103462149288:778309343565627 188141971439379764338791192250:299845957676496:222816294421114 909128937487700724237784822885:350890534099376:261710050427077 548161740575700960701461554479:351388059878345:2707147301959 632998694230665905138504205683:5161072802940521:2588347830782501 989561692601046469598855142942:2232461133506966:800488232300056 722053711025302072889977536284:2124695213168155:177879206766534 708237626455796647916490236597:2989633217023029:2776331030111636 919565831354339875766768525110:4319491685768972:723242898434602 325278817806092967446414416368:92669652852428483:6354046454480721 459816556856225120612249776522:86480843071405841:46352919177657032 539440404994862027098092700017:77829857460058719:76232415542640276 697167612903549717728747993403:15286421157619982:212197563140615 446284254429799510431939511411:66563026564862489:33170730867036812 163835371931001405435062481399:142858955724040480:42016056245340439 858056310925287122556316700472:785475211157290905:7484294396715957 973368039062172637570360904090:309489191383966491:255885951881772089 838603203086870598652949581642:945022841833171234:709675065436787072 864854054235517666864794850987:894535073959076427:788600125053757507 908181926596215654078730450422:7480691298078708060:6817313236254561462 878585448012845939591562038180:9024464082667300510:3200386596806404870 863285243671620222431180190583:6334804583861219901:1404905943287567524 532289648478311197982547999476:6514152818886410403:4785654949668722159 936581630344293971405448111843:3644906914919264384:2012511025417779555 861268614532541530377947003973:83360254369610672501:47935551361396925840 913251555004453135126628501593:51916019920885909474:34306359106857301815 370772657003637413536988017577:23718525199937869298:23011340506486077351 106380650712081685662103538437:88758404975504716146:58350945108402656485 412202159454357528824112094318:99771876158978364649:77925527245286863526 525693533744031087982194236192:929651991880007373453:651491454290177311547 492896770139865143918926887845:607107080574194970237:92258786098921295690 850560996955519073671742572564:155204374797661396533:64805602001216556136 650537628763037728120700672438:261683116209073537369:207056126010611431773 135007871776845734937116906155:149470779306630991831:18953644674917184194 123420898749517385682938217691:6892915053083751940246:1268147751661917791579 898934363863020709522521442917:4433406846739055003876:2306481316135324004505 879378757066167800152936033840:8585429702570499522346:4928832661749043540398 534894780765796405153824995392:5292171080963015558055:3970481244847974595027 118249439981105247505658196107:1044988953297174048601:35034546582469264552 514638882743390015829141263539:42260502990431699776014:28199588613520992150703 533772849242066009586852457831:81711181158494925045169:32973335530889263991654 852649448271116059664215755215:11558324639655263399106:11339267514983389303157 925238622640185091244112955022:41171420023459496666827:11394443646548466476823 705359047543020111986074662093:76546405838233178398486:69035333240244668252639 192862926094082601067554524864:983139152622229345807900:518524179870300418781864 558112242655536384676132132313:191729197440154429346381:52659093250114577824173 157786667897919109025169585397:750869103799808919062577:536163634862391197779771 355950229834035488164012632789:244679971129724930061003:84393299108358328030515 256559814382822804907183116051:596317269299605239563124:272439360646637544646291 141165203929235726945465524307:7112263234433476557462943:1003252200084232941031643 568829542857828576664808467473:7152431953645315287895206:3782016370297133790629499 459307495911616425082102673594:2821342682323452246985883:1371257405369629541878843 830628974127930153300702331991:2585022873925650318657958:1669209518415958571293557 633425881982689184978215783450:3839274700551585185469318:3145512185903153560353220 672474018829929490938418825081:55321374733528776636985950:42708943887210915854602831 654212123114222963030509355083:64566129630746967693683386:28097695494686358109288131 412266659539667669402745530917:56196056311902344165262158:12390435552072606382339829 473574458752013181427973201748:13798691979164630832062545:3350027083051271586657348 369483620392312398087935720894:64798995024802675343506453:64549755912345954605432341 860845108124330254357390604920:445618049180252372394296292:356655157262923264004465068 893361484768327580404801876688:305997169911274590963503181:155745797317049382336091349 471803761500813962827351327487:171685879755787424163760757:10963931910121225336767251 524198073805891909010758250591:755873622027844368963073528:377653740595761319348295687 123437798661954753824730473275:647551310342858114623388071:403049696811712046286739785 511648855626624903623657438999:4942236375186776598223330491:2598508982386914006654398426 802468626571942617779470129787:6177740160848197163161876231:5540145822525183731588095988 654221655842560446016409557155:8310516044126063420518328319:6001404400727499215979948273 446105608895309780467306840933:6707603947832565944203539520:3403748338360428149873232613 890051387528125829503538395450:7851654645850450642530999638:2814412547024906897535436356 265690770990649433995320560172:96521164892188392001777314173:72648441206272649991765931826 872665844509237280758871946254:76167477244146070718198351508:34823594823630502858690079666 246505747602343448837411047959:71921669896971649624826156475:30740737911428499962932578534 433350079490916815831690868030:39073821517273115171950762495:3538042800912548940232480585 729454826302110619053479741853:84742904878411756679550978218:51511587274816565617071916109 630765754003890749602147027763:641195642117925548927555175170:630765754003890749602147027763 736237624520104902876246198514:208386353866941734323922778446:111078562919279699904477863176 765742040607488295039699674160:983900869487334611012724091021:765742040607488295039699674160 423047434489268687849189102681:566585970938578790979628224121:423047434489268687849189102681 308980252917253495855408503187:672259773721849879124362446861:308980252917253495855408503187 206950206126239749116047352241:6484198474438162257010045734295:206950206126239749116047352241 446943082680765739861120826359:9355295435647246746728568985992:446943082680765739861120826359 672339146657620895716620422300:6552886003247436897021916637927:672339146657620895716620422300 429546203091033258121346585579:2437873763135424337895305255068:429546203091033258121346585579 799087100494522910913254814333:8788325478515322259159918974653:799087100494522910913254814333 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_mod.t0000644403072340010010000001044214536617520023163 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 51401; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_mod'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 1; $y <= 24 ; ++ $y) { push @data, [ $x, $y, $x % $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_mod(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_mod() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_mod(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_mod() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_modinv.dat0000644403072340010010000122116714505066136024213 0ustar OSPJADomain Users#1:0:undef:undef:undef:undef 1:1:0:+:0:- 1:2:1:+:1:- 1:3:1:+:2:- 1:4:1:+:3:- 1:5:1:+:4:- 1:6:1:+:5:- 1:7:1:+:6:- 1:8:1:+:7:- 1:9:1:+:8:- 1:10:1:+:9:- 1:11:1:+:10:- 1:12:1:+:11:- 1:13:1:+:12:- 1:14:1:+:13:- 1:15:1:+:14:- 1:16:1:+:15:- 1:17:1:+:16:- 1:18:1:+:17:- 1:19:1:+:18:- 1:20:1:+:19:- 1:21:1:+:20:- 1:22:1:+:21:- 1:23:1:+:22:- 1:24:1:+:23:- 1:25:1:+:24:- 1:26:1:+:25:- 1:27:1:+:26:- 1:28:1:+:27:- 1:29:1:+:28:- 1:30:1:+:29:- 1:31:1:+:30:- 1:32:1:+:31:- 1:33:1:+:32:- 1:34:1:+:33:- 1:35:1:+:34:- 1:36:1:+:35:- 1:37:1:+:36:- 1:38:1:+:37:- 1:39:1:+:38:- 1:40:1:+:39:- 1:41:1:+:40:- 1:42:1:+:41:- 1:43:1:+:42:- 1:44:1:+:43:- 1:45:1:+:44:- 1:46:1:+:45:- 1:47:1:+:46:- 1:48:1:+:47:- 1:49:1:+:48:- 1:50:1:+:49:- #2:0:undef:undef:undef:undef 2:1:0:+:0:- 2:2:undef:undef:undef:undef 2:3:2:+:1:- 2:4:undef:undef:undef:undef 2:5:3:+:2:- 2:6:undef:undef:undef:undef 2:7:4:+:3:- 2:8:undef:undef:undef:undef 2:9:5:+:4:- 2:10:undef:undef:undef:undef 2:11:6:+:5:- 2:12:undef:undef:undef:undef 2:13:7:+:6:- 2:14:undef:undef:undef:undef 2:15:8:+:7:- 2:16:undef:undef:undef:undef 2:17:9:+:8:- 2:18:undef:undef:undef:undef 2:19:10:+:9:- 2:20:undef:undef:undef:undef 2:21:11:+:10:- 2:22:undef:undef:undef:undef 2:23:12:+:11:- 2:24:undef:undef:undef:undef 2:25:13:+:12:- 2:26:undef:undef:undef:undef 2:27:14:+:13:- 2:28:undef:undef:undef:undef 2:29:15:+:14:- 2:30:undef:undef:undef:undef 2:31:16:+:15:- 2:32:undef:undef:undef:undef 2:33:17:+:16:- 2:34:undef:undef:undef:undef 2:35:18:+:17:- 2:36:undef:undef:undef:undef 2:37:19:+:18:- 2:38:undef:undef:undef:undef 2:39:20:+:19:- 2:40:undef:undef:undef:undef 2:41:21:+:20:- 2:42:undef:undef:undef:undef 2:43:22:+:21:- 2:44:undef:undef:undef:undef 2:45:23:+:22:- 2:46:undef:undef:undef:undef 2:47:24:+:23:- 2:48:undef:undef:undef:undef 2:49:25:+:24:- 2:50:undef:undef:undef:undef #3:0:undef:undef:undef:undef 3:1:0:+:0:- 3:2:1:+:1:- 3:3:undef:undef:undef:undef 3:4:3:+:1:- 3:5:2:+:3:- 3:6:undef:undef:undef:undef 3:7:5:+:2:- 3:8:3:+:5:- 3:9:undef:undef:undef:undef 3:10:7:+:3:- 3:11:4:+:7:- 3:12:undef:undef:undef:undef 3:13:9:+:4:- 3:14:5:+:9:- 3:15:undef:undef:undef:undef 3:16:11:+:5:- 3:17:6:+:11:- 3:18:undef:undef:undef:undef 3:19:13:+:6:- 3:20:7:+:13:- 3:21:undef:undef:undef:undef 3:22:15:+:7:- 3:23:8:+:15:- 3:24:undef:undef:undef:undef 3:25:17:+:8:- 3:26:9:+:17:- 3:27:undef:undef:undef:undef 3:28:19:+:9:- 3:29:10:+:19:- 3:30:undef:undef:undef:undef 3:31:21:+:10:- 3:32:11:+:21:- 3:33:undef:undef:undef:undef 3:34:23:+:11:- 3:35:12:+:23:- 3:36:undef:undef:undef:undef 3:37:25:+:12:- 3:38:13:+:25:- 3:39:undef:undef:undef:undef 3:40:27:+:13:- 3:41:14:+:27:- 3:42:undef:undef:undef:undef 3:43:29:+:14:- 3:44:15:+:29:- 3:45:undef:undef:undef:undef 3:46:31:+:15:- 3:47:16:+:31:- 3:48:undef:undef:undef:undef 3:49:33:+:16:- 3:50:17:+:33:- #4:0:undef:undef:undef:undef 4:1:0:+:0:- 4:2:undef:undef:undef:undef 4:3:1:+:2:- 4:4:undef:undef:undef:undef 4:5:4:+:1:- 4:6:undef:undef:undef:undef 4:7:2:+:5:- 4:8:undef:undef:undef:undef 4:9:7:+:2:- 4:10:undef:undef:undef:undef 4:11:3:+:8:- 4:12:undef:undef:undef:undef 4:13:10:+:3:- 4:14:undef:undef:undef:undef 4:15:4:+:11:- 4:16:undef:undef:undef:undef 4:17:13:+:4:- 4:18:undef:undef:undef:undef 4:19:5:+:14:- 4:20:undef:undef:undef:undef 4:21:16:+:5:- 4:22:undef:undef:undef:undef 4:23:6:+:17:- 4:24:undef:undef:undef:undef 4:25:19:+:6:- 4:26:undef:undef:undef:undef 4:27:7:+:20:- 4:28:undef:undef:undef:undef 4:29:22:+:7:- 4:30:undef:undef:undef:undef 4:31:8:+:23:- 4:32:undef:undef:undef:undef 4:33:25:+:8:- 4:34:undef:undef:undef:undef 4:35:9:+:26:- 4:36:undef:undef:undef:undef 4:37:28:+:9:- 4:38:undef:undef:undef:undef 4:39:10:+:29:- 4:40:undef:undef:undef:undef 4:41:31:+:10:- 4:42:undef:undef:undef:undef 4:43:11:+:32:- 4:44:undef:undef:undef:undef 4:45:34:+:11:- 4:46:undef:undef:undef:undef 4:47:12:+:35:- 4:48:undef:undef:undef:undef 4:49:37:+:12:- 4:50:undef:undef:undef:undef #5:0:undef:undef:undef:undef 5:1:0:+:0:- 5:2:1:+:1:- 5:3:2:+:1:- 5:4:1:+:3:- 5:5:undef:undef:undef:undef 5:6:5:+:1:- 5:7:3:+:4:- 5:8:5:+:3:- 5:9:2:+:7:- 5:10:undef:undef:undef:undef 5:11:9:+:2:- 5:12:5:+:7:- 5:13:8:+:5:- 5:14:3:+:11:- 5:15:undef:undef:undef:undef 5:16:13:+:3:- 5:17:7:+:10:- 5:18:11:+:7:- 5:19:4:+:15:- 5:20:undef:undef:undef:undef 5:21:17:+:4:- 5:22:9:+:13:- 5:23:14:+:9:- 5:24:5:+:19:- 5:25:undef:undef:undef:undef 5:26:21:+:5:- 5:27:11:+:16:- 5:28:17:+:11:- 5:29:6:+:23:- 5:30:undef:undef:undef:undef 5:31:25:+:6:- 5:32:13:+:19:- 5:33:20:+:13:- 5:34:7:+:27:- 5:35:undef:undef:undef:undef 5:36:29:+:7:- 5:37:15:+:22:- 5:38:23:+:15:- 5:39:8:+:31:- 5:40:undef:undef:undef:undef 5:41:33:+:8:- 5:42:17:+:25:- 5:43:26:+:17:- 5:44:9:+:35:- 5:45:undef:undef:undef:undef 5:46:37:+:9:- 5:47:19:+:28:- 5:48:29:+:19:- 5:49:10:+:39:- 5:50:undef:undef:undef:undef #6:0:undef:undef:undef:undef 6:1:0:+:0:- 6:2:undef:undef:undef:undef 6:3:undef:undef:undef:undef 6:4:undef:undef:undef:undef 6:5:1:+:4:- 6:6:undef:undef:undef:undef 6:7:6:+:1:- 6:8:undef:undef:undef:undef 6:9:undef:undef:undef:undef 6:10:undef:undef:undef:undef 6:11:2:+:9:- 6:12:undef:undef:undef:undef 6:13:11:+:2:- 6:14:undef:undef:undef:undef 6:15:undef:undef:undef:undef 6:16:undef:undef:undef:undef 6:17:3:+:14:- 6:18:undef:undef:undef:undef 6:19:16:+:3:- 6:20:undef:undef:undef:undef 6:21:undef:undef:undef:undef 6:22:undef:undef:undef:undef 6:23:4:+:19:- 6:24:undef:undef:undef:undef 6:25:21:+:4:- 6:26:undef:undef:undef:undef 6:27:undef:undef:undef:undef 6:28:undef:undef:undef:undef 6:29:5:+:24:- 6:30:undef:undef:undef:undef 6:31:26:+:5:- 6:32:undef:undef:undef:undef 6:33:undef:undef:undef:undef 6:34:undef:undef:undef:undef 6:35:6:+:29:- 6:36:undef:undef:undef:undef 6:37:31:+:6:- 6:38:undef:undef:undef:undef 6:39:undef:undef:undef:undef 6:40:undef:undef:undef:undef 6:41:7:+:34:- 6:42:undef:undef:undef:undef 6:43:36:+:7:- 6:44:undef:undef:undef:undef 6:45:undef:undef:undef:undef 6:46:undef:undef:undef:undef 6:47:8:+:39:- 6:48:undef:undef:undef:undef 6:49:41:+:8:- 6:50:undef:undef:undef:undef #7:0:undef:undef:undef:undef 7:1:0:+:0:- 7:2:1:+:1:- 7:3:1:+:2:- 7:4:3:+:1:- 7:5:3:+:2:- 7:6:1:+:5:- 7:7:undef:undef:undef:undef 7:8:7:+:1:- 7:9:4:+:5:- 7:10:3:+:7:- 7:11:8:+:3:- 7:12:7:+:5:- 7:13:2:+:11:- 7:14:undef:undef:undef:undef 7:15:13:+:2:- 7:16:7:+:9:- 7:17:5:+:12:- 7:18:13:+:5:- 7:19:11:+:8:- 7:20:3:+:17:- 7:21:undef:undef:undef:undef 7:22:19:+:3:- 7:23:10:+:13:- 7:24:7:+:17:- 7:25:18:+:7:- 7:26:15:+:11:- 7:27:4:+:23:- 7:28:undef:undef:undef:undef 7:29:25:+:4:- 7:30:13:+:17:- 7:31:9:+:22:- 7:32:23:+:9:- 7:33:19:+:14:- 7:34:5:+:29:- 7:35:undef:undef:undef:undef 7:36:31:+:5:- 7:37:16:+:21:- 7:38:11:+:27:- 7:39:28:+:11:- 7:40:23:+:17:- 7:41:6:+:35:- 7:42:undef:undef:undef:undef 7:43:37:+:6:- 7:44:19:+:25:- 7:45:13:+:32:- 7:46:33:+:13:- 7:47:27:+:20:- 7:48:7:+:41:- 7:49:undef:undef:undef:undef 7:50:43:+:7:- #8:0:undef:undef:undef:undef 8:1:0:+:0:- 8:2:undef:undef:undef:undef 8:3:2:+:1:- 8:4:undef:undef:undef:undef 8:5:2:+:3:- 8:6:undef:undef:undef:undef 8:7:1:+:6:- 8:8:undef:undef:undef:undef 8:9:8:+:1:- 8:10:undef:undef:undef:undef 8:11:7:+:4:- 8:12:undef:undef:undef:undef 8:13:5:+:8:- 8:14:undef:undef:undef:undef 8:15:2:+:13:- 8:16:undef:undef:undef:undef 8:17:15:+:2:- 8:18:undef:undef:undef:undef 8:19:12:+:7:- 8:20:undef:undef:undef:undef 8:21:8:+:13:- 8:22:undef:undef:undef:undef 8:23:3:+:20:- 8:24:undef:undef:undef:undef 8:25:22:+:3:- 8:26:undef:undef:undef:undef 8:27:17:+:10:- 8:28:undef:undef:undef:undef 8:29:11:+:18:- 8:30:undef:undef:undef:undef 8:31:4:+:27:- 8:32:undef:undef:undef:undef 8:33:29:+:4:- 8:34:undef:undef:undef:undef 8:35:22:+:13:- 8:36:undef:undef:undef:undef 8:37:14:+:23:- 8:38:undef:undef:undef:undef 8:39:5:+:34:- 8:40:undef:undef:undef:undef 8:41:36:+:5:- 8:42:undef:undef:undef:undef 8:43:27:+:16:- 8:44:undef:undef:undef:undef 8:45:17:+:28:- 8:46:undef:undef:undef:undef 8:47:6:+:41:- 8:48:undef:undef:undef:undef 8:49:43:+:6:- 8:50:undef:undef:undef:undef #9:0:undef:undef:undef:undef 9:1:0:+:0:- 9:2:1:+:1:- 9:3:undef:undef:undef:undef 9:4:1:+:3:- 9:5:4:+:1:- 9:6:undef:undef:undef:undef 9:7:4:+:3:- 9:8:1:+:7:- 9:9:undef:undef:undef:undef 9:10:9:+:1:- 9:11:5:+:6:- 9:12:undef:undef:undef:undef 9:13:3:+:10:- 9:14:11:+:3:- 9:15:undef:undef:undef:undef 9:16:9:+:7:- 9:17:2:+:15:- 9:18:undef:undef:undef:undef 9:19:17:+:2:- 9:20:9:+:11:- 9:21:undef:undef:undef:undef 9:22:5:+:17:- 9:23:18:+:5:- 9:24:undef:undef:undef:undef 9:25:14:+:11:- 9:26:3:+:23:- 9:27:undef:undef:undef:undef 9:28:25:+:3:- 9:29:13:+:16:- 9:30:undef:undef:undef:undef 9:31:7:+:24:- 9:32:25:+:7:- 9:33:undef:undef:undef:undef 9:34:19:+:15:- 9:35:4:+:31:- 9:36:undef:undef:undef:undef 9:37:33:+:4:- 9:38:17:+:21:- 9:39:undef:undef:undef:undef 9:40:9:+:31:- 9:41:32:+:9:- 9:42:undef:undef:undef:undef 9:43:24:+:19:- 9:44:5:+:39:- 9:45:undef:undef:undef:undef 9:46:41:+:5:- 9:47:21:+:26:- 9:48:undef:undef:undef:undef 9:49:11:+:38:- 9:50:39:+:11:- #10:0:undef:undef:undef:undef 10:1:0:+:0:- 10:2:undef:undef:undef:undef 10:3:1:+:2:- 10:4:undef:undef:undef:undef 10:5:undef:undef:undef:undef 10:6:undef:undef:undef:undef 10:7:5:+:2:- 10:8:undef:undef:undef:undef 10:9:1:+:8:- 10:10:undef:undef:undef:undef 10:11:10:+:1:- 10:12:undef:undef:undef:undef 10:13:4:+:9:- 10:14:undef:undef:undef:undef 10:15:undef:undef:undef:undef 10:16:undef:undef:undef:undef 10:17:12:+:5:- 10:18:undef:undef:undef:undef 10:19:2:+:17:- 10:20:undef:undef:undef:undef 10:21:19:+:2:- 10:22:undef:undef:undef:undef 10:23:7:+:16:- 10:24:undef:undef:undef:undef 10:25:undef:undef:undef:undef 10:26:undef:undef:undef:undef 10:27:19:+:8:- 10:28:undef:undef:undef:undef 10:29:3:+:26:- 10:30:undef:undef:undef:undef 10:31:28:+:3:- 10:32:undef:undef:undef:undef 10:33:10:+:23:- 10:34:undef:undef:undef:undef 10:35:undef:undef:undef:undef 10:36:undef:undef:undef:undef 10:37:26:+:11:- 10:38:undef:undef:undef:undef 10:39:4:+:35:- 10:40:undef:undef:undef:undef 10:41:37:+:4:- 10:42:undef:undef:undef:undef 10:43:13:+:30:- 10:44:undef:undef:undef:undef 10:45:undef:undef:undef:undef 10:46:undef:undef:undef:undef 10:47:33:+:14:- 10:48:undef:undef:undef:undef 10:49:5:+:44:- 10:50:undef:undef:undef:undef #11:0:undef:undef:undef:undef 11:1:0:+:0:- 11:2:1:+:1:- 11:3:2:+:1:- 11:4:3:+:1:- 11:5:1:+:4:- 11:6:5:+:1:- 11:7:2:+:5:- 11:8:3:+:5:- 11:9:5:+:4:- 11:10:1:+:9:- 11:11:undef:undef:undef:undef 11:12:11:+:1:- 11:13:6:+:7:- 11:14:9:+:5:- 11:15:11:+:4:- 11:16:3:+:13:- 11:17:14:+:3:- 11:18:5:+:13:- 11:19:7:+:12:- 11:20:11:+:9:- 11:21:2:+:19:- 11:22:undef:undef:undef:undef 11:23:21:+:2:- 11:24:11:+:13:- 11:25:16:+:9:- 11:26:19:+:7:- 11:27:5:+:22:- 11:28:23:+:5:- 11:29:8:+:21:- 11:30:11:+:19:- 11:31:17:+:14:- 11:32:3:+:29:- 11:33:undef:undef:undef:undef 11:34:31:+:3:- 11:35:16:+:19:- 11:36:23:+:13:- 11:37:27:+:10:- 11:38:7:+:31:- 11:39:32:+:7:- 11:40:11:+:29:- 11:41:15:+:26:- 11:42:23:+:19:- 11:43:4:+:39:- 11:44:undef:undef:undef:undef 11:45:41:+:4:- 11:46:21:+:25:- 11:47:30:+:17:- 11:48:35:+:13:- 11:49:9:+:40:- 11:50:41:+:9:- #12:0:undef:undef:undef:undef 12:1:0:+:0:- 12:2:undef:undef:undef:undef 12:3:undef:undef:undef:undef 12:4:undef:undef:undef:undef 12:5:3:+:2:- 12:6:undef:undef:undef:undef 12:7:3:+:4:- 12:8:undef:undef:undef:undef 12:9:undef:undef:undef:undef 12:10:undef:undef:undef:undef 12:11:1:+:10:- 12:12:undef:undef:undef:undef 12:13:12:+:1:- 12:14:undef:undef:undef:undef 12:15:undef:undef:undef:undef 12:16:undef:undef:undef:undef 12:17:10:+:7:- 12:18:undef:undef:undef:undef 12:19:8:+:11:- 12:20:undef:undef:undef:undef 12:21:undef:undef:undef:undef 12:22:undef:undef:undef:undef 12:23:2:+:21:- 12:24:undef:undef:undef:undef 12:25:23:+:2:- 12:26:undef:undef:undef:undef 12:27:undef:undef:undef:undef 12:28:undef:undef:undef:undef 12:29:17:+:12:- 12:30:undef:undef:undef:undef 12:31:13:+:18:- 12:32:undef:undef:undef:undef 12:33:undef:undef:undef:undef 12:34:undef:undef:undef:undef 12:35:3:+:32:- 12:36:undef:undef:undef:undef 12:37:34:+:3:- 12:38:undef:undef:undef:undef 12:39:undef:undef:undef:undef 12:40:undef:undef:undef:undef 12:41:24:+:17:- 12:42:undef:undef:undef:undef 12:43:18:+:25:- 12:44:undef:undef:undef:undef 12:45:undef:undef:undef:undef 12:46:undef:undef:undef:undef 12:47:4:+:43:- 12:48:undef:undef:undef:undef 12:49:45:+:4:- 12:50:undef:undef:undef:undef #13:0:undef:undef:undef:undef 13:1:0:+:0:- 13:2:1:+:1:- 13:3:1:+:2:- 13:4:1:+:3:- 13:5:2:+:3:- 13:6:1:+:5:- 13:7:6:+:1:- 13:8:5:+:3:- 13:9:7:+:2:- 13:10:7:+:3:- 13:11:6:+:5:- 13:12:1:+:11:- 13:13:undef:undef:undef:undef 13:14:13:+:1:- 13:15:7:+:8:- 13:16:5:+:11:- 13:17:4:+:13:- 13:18:7:+:11:- 13:19:3:+:16:- 13:20:17:+:3:- 13:21:13:+:8:- 13:22:17:+:5:- 13:23:16:+:7:- 13:24:13:+:11:- 13:25:2:+:23:- 13:26:undef:undef:undef:undef 13:27:25:+:2:- 13:28:13:+:15:- 13:29:9:+:20:- 13:30:7:+:23:- 13:31:12:+:19:- 13:32:5:+:27:- 13:33:28:+:5:- 13:34:21:+:13:- 13:35:27:+:8:- 13:36:25:+:11:- 13:37:20:+:17:- 13:38:3:+:35:- 13:39:undef:undef:undef:undef 13:40:37:+:3:- 13:41:19:+:22:- 13:42:13:+:29:- 13:43:10:+:33:- 13:44:17:+:27:- 13:45:7:+:38:- 13:46:39:+:7:- 13:47:29:+:18:- 13:48:37:+:11:- 13:49:34:+:15:- 13:50:27:+:23:- #14:0:undef:undef:undef:undef 14:1:0:+:0:- 14:2:undef:undef:undef:undef 14:3:2:+:1:- 14:4:undef:undef:undef:undef 14:5:4:+:1:- 14:6:undef:undef:undef:undef 14:7:undef:undef:undef:undef 14:8:undef:undef:undef:undef 14:9:2:+:7:- 14:10:undef:undef:undef:undef 14:11:4:+:7:- 14:12:undef:undef:undef:undef 14:13:1:+:12:- 14:14:undef:undef:undef:undef 14:15:14:+:1:- 14:16:undef:undef:undef:undef 14:17:11:+:6:- 14:18:undef:undef:undef:undef 14:19:15:+:4:- 14:20:undef:undef:undef:undef 14:21:undef:undef:undef:undef 14:22:undef:undef:undef:undef 14:23:5:+:18:- 14:24:undef:undef:undef:undef 14:25:9:+:16:- 14:26:undef:undef:undef:undef 14:27:2:+:25:- 14:28:undef:undef:undef:undef 14:29:27:+:2:- 14:30:undef:undef:undef:undef 14:31:20:+:11:- 14:32:undef:undef:undef:undef 14:33:26:+:7:- 14:34:undef:undef:undef:undef 14:35:undef:undef:undef:undef 14:36:undef:undef:undef:undef 14:37:8:+:29:- 14:38:undef:undef:undef:undef 14:39:14:+:25:- 14:40:undef:undef:undef:undef 14:41:3:+:38:- 14:42:undef:undef:undef:undef 14:43:40:+:3:- 14:44:undef:undef:undef:undef 14:45:29:+:16:- 14:46:undef:undef:undef:undef 14:47:37:+:10:- 14:48:undef:undef:undef:undef 14:49:undef:undef:undef:undef 14:50:undef:undef:undef:undef #15:0:undef:undef:undef:undef 15:1:0:+:0:- 15:2:1:+:1:- 15:3:undef:undef:undef:undef 15:4:3:+:1:- 15:5:undef:undef:undef:undef 15:6:undef:undef:undef:undef 15:7:1:+:6:- 15:8:7:+:1:- 15:9:undef:undef:undef:undef 15:10:undef:undef:undef:undef 15:11:3:+:8:- 15:12:undef:undef:undef:undef 15:13:7:+:6:- 15:14:1:+:13:- 15:15:undef:undef:undef:undef 15:16:15:+:1:- 15:17:8:+:9:- 15:18:undef:undef:undef:undef 15:19:14:+:5:- 15:20:undef:undef:undef:undef 15:21:undef:undef:undef:undef 15:22:3:+:19:- 15:23:20:+:3:- 15:24:undef:undef:undef:undef 15:25:undef:undef:undef:undef 15:26:7:+:19:- 15:27:undef:undef:undef:undef 15:28:15:+:13:- 15:29:2:+:27:- 15:30:undef:undef:undef:undef 15:31:29:+:2:- 15:32:15:+:17:- 15:33:undef:undef:undef:undef 15:34:25:+:9:- 15:35:undef:undef:undef:undef 15:36:undef:undef:undef:undef 15:37:5:+:32:- 15:38:33:+:5:- 15:39:undef:undef:undef:undef 15:40:undef:undef:undef:undef 15:41:11:+:30:- 15:42:undef:undef:undef:undef 15:43:23:+:20:- 15:44:3:+:41:- 15:45:undef:undef:undef:undef 15:46:43:+:3:- 15:47:22:+:25:- 15:48:undef:undef:undef:undef 15:49:36:+:13:- 15:50:undef:undef:undef:undef #16:0:undef:undef:undef:undef 16:1:0:+:0:- 16:2:undef:undef:undef:undef 16:3:1:+:2:- 16:4:undef:undef:undef:undef 16:5:1:+:4:- 16:6:undef:undef:undef:undef 16:7:4:+:3:- 16:8:undef:undef:undef:undef 16:9:4:+:5:- 16:10:undef:undef:undef:undef 16:11:9:+:2:- 16:12:undef:undef:undef:undef 16:13:9:+:4:- 16:14:undef:undef:undef:undef 16:15:1:+:14:- 16:16:undef:undef:undef:undef 16:17:16:+:1:- 16:18:undef:undef:undef:undef 16:19:6:+:13:- 16:20:undef:undef:undef:undef 16:21:4:+:17:- 16:22:undef:undef:undef:undef 16:23:13:+:10:- 16:24:undef:undef:undef:undef 16:25:11:+:14:- 16:26:undef:undef:undef:undef 16:27:22:+:5:- 16:28:undef:undef:undef:undef 16:29:20:+:9:- 16:30:undef:undef:undef:undef 16:31:2:+:29:- 16:32:undef:undef:undef:undef 16:33:31:+:2:- 16:34:undef:undef:undef:undef 16:35:11:+:24:- 16:36:undef:undef:undef:undef 16:37:7:+:30:- 16:38:undef:undef:undef:undef 16:39:22:+:17:- 16:40:undef:undef:undef:undef 16:41:18:+:23:- 16:42:undef:undef:undef:undef 16:43:35:+:8:- 16:44:undef:undef:undef:undef 16:45:31:+:14:- 16:46:undef:undef:undef:undef 16:47:3:+:44:- 16:48:undef:undef:undef:undef 16:49:46:+:3:- 16:50:undef:undef:undef:undef #17:0:undef:undef:undef:undef 17:1:0:+:0:- 17:2:1:+:1:- 17:3:2:+:1:- 17:4:1:+:3:- 17:5:3:+:2:- 17:6:5:+:1:- 17:7:5:+:2:- 17:8:1:+:7:- 17:9:8:+:1:- 17:10:3:+:7:- 17:11:2:+:9:- 17:12:5:+:7:- 17:13:10:+:3:- 17:14:5:+:9:- 17:15:8:+:7:- 17:16:1:+:15:- 17:17:undef:undef:undef:undef 17:18:17:+:1:- 17:19:9:+:10:- 17:20:13:+:7:- 17:21:5:+:16:- 17:22:13:+:9:- 17:23:19:+:4:- 17:24:17:+:7:- 17:25:3:+:22:- 17:26:23:+:3:- 17:27:8:+:19:- 17:28:5:+:23:- 17:29:12:+:17:- 17:30:23:+:7:- 17:31:11:+:20:- 17:32:17:+:15:- 17:33:2:+:31:- 17:34:undef:undef:undef:undef 17:35:33:+:2:- 17:36:17:+:19:- 17:37:24:+:13:- 17:38:9:+:29:- 17:39:23:+:16:- 17:40:33:+:7:- 17:41:29:+:12:- 17:42:5:+:37:- 17:43:38:+:5:- 17:44:13:+:31:- 17:45:8:+:37:- 17:46:19:+:27:- 17:47:36:+:11:- 17:48:17:+:31:- 17:49:26:+:23:- 17:50:3:+:47:- #18:0:undef:undef:undef:undef 18:1:0:+:0:- 18:2:undef:undef:undef:undef 18:3:undef:undef:undef:undef 18:4:undef:undef:undef:undef 18:5:2:+:3:- 18:6:undef:undef:undef:undef 18:7:2:+:5:- 18:8:undef:undef:undef:undef 18:9:undef:undef:undef:undef 18:10:undef:undef:undef:undef 18:11:8:+:3:- 18:12:undef:undef:undef:undef 18:13:8:+:5:- 18:14:undef:undef:undef:undef 18:15:undef:undef:undef:undef 18:16:undef:undef:undef:undef 18:17:1:+:16:- 18:18:undef:undef:undef:undef 18:19:18:+:1:- 18:20:undef:undef:undef:undef 18:21:undef:undef:undef:undef 18:22:undef:undef:undef:undef 18:23:9:+:14:- 18:24:undef:undef:undef:undef 18:25:7:+:18:- 18:26:undef:undef:undef:undef 18:27:undef:undef:undef:undef 18:28:undef:undef:undef:undef 18:29:21:+:8:- 18:30:undef:undef:undef:undef 18:31:19:+:12:- 18:32:undef:undef:undef:undef 18:33:undef:undef:undef:undef 18:34:undef:undef:undef:undef 18:35:2:+:33:- 18:36:undef:undef:undef:undef 18:37:35:+:2:- 18:38:undef:undef:undef:undef 18:39:undef:undef:undef:undef 18:40:undef:undef:undef:undef 18:41:16:+:25:- 18:42:undef:undef:undef:undef 18:43:12:+:31:- 18:44:undef:undef:undef:undef 18:45:undef:undef:undef:undef 18:46:undef:undef:undef:undef 18:47:34:+:13:- 18:48:undef:undef:undef:undef 18:49:30:+:19:- 18:50:undef:undef:undef:undef #19:0:undef:undef:undef:undef 19:1:0:+:0:- 19:2:1:+:1:- 19:3:1:+:2:- 19:4:3:+:1:- 19:5:4:+:1:- 19:6:1:+:5:- 19:7:3:+:4:- 19:8:3:+:5:- 19:9:1:+:8:- 19:10:9:+:1:- 19:11:7:+:4:- 19:12:7:+:5:- 19:13:11:+:2:- 19:14:3:+:11:- 19:15:4:+:11:- 19:16:11:+:5:- 19:17:9:+:8:- 19:18:1:+:17:- 19:19:undef:undef:undef:undef 19:20:19:+:1:- 19:21:10:+:11:- 19:22:7:+:15:- 19:23:17:+:6:- 19:24:19:+:5:- 19:25:4:+:21:- 19:26:11:+:15:- 19:27:10:+:17:- 19:28:3:+:25:- 19:29:26:+:3:- 19:30:19:+:11:- 19:31:18:+:13:- 19:32:27:+:5:- 19:33:7:+:26:- 19:34:9:+:25:- 19:35:24:+:11:- 19:36:19:+:17:- 19:37:2:+:35:- 19:38:undef:undef:undef:undef 19:39:37:+:2:- 19:40:19:+:21:- 19:41:13:+:28:- 19:42:31:+:11:- 19:43:34:+:9:- 19:44:7:+:37:- 19:45:19:+:26:- 19:46:17:+:29:- 19:47:5:+:42:- 19:48:43:+:5:- 19:49:31:+:18:- 19:50:29:+:21:- #20:0:undef:undef:undef:undef 20:1:0:+:0:- 20:2:undef:undef:undef:undef 20:3:2:+:1:- 20:4:undef:undef:undef:undef 20:5:undef:undef:undef:undef 20:6:undef:undef:undef:undef 20:7:6:+:1:- 20:8:undef:undef:undef:undef 20:9:5:+:4:- 20:10:undef:undef:undef:undef 20:11:5:+:6:- 20:12:undef:undef:undef:undef 20:13:2:+:11:- 20:14:undef:undef:undef:undef 20:15:undef:undef:undef:undef 20:16:undef:undef:undef:undef 20:17:6:+:11:- 20:18:undef:undef:undef:undef 20:19:1:+:18:- 20:20:undef:undef:undef:undef 20:21:20:+:1:- 20:22:undef:undef:undef:undef 20:23:15:+:8:- 20:24:undef:undef:undef:undef 20:25:undef:undef:undef:undef 20:26:undef:undef:undef:undef 20:27:23:+:4:- 20:28:undef:undef:undef:undef 20:29:16:+:13:- 20:30:undef:undef:undef:undef 20:31:14:+:17:- 20:32:undef:undef:undef:undef 20:33:5:+:28:- 20:34:undef:undef:undef:undef 20:35:undef:undef:undef:undef 20:36:undef:undef:undef:undef 20:37:13:+:24:- 20:38:undef:undef:undef:undef 20:39:2:+:37:- 20:40:undef:undef:undef:undef 20:41:39:+:2:- 20:42:undef:undef:undef:undef 20:43:28:+:15:- 20:44:undef:undef:undef:undef 20:45:undef:undef:undef:undef 20:46:undef:undef:undef:undef 20:47:40:+:7:- 20:48:undef:undef:undef:undef 20:49:27:+:22:- 20:50:undef:undef:undef:undef #21:0:undef:undef:undef:undef 21:1:0:+:0:- 21:2:1:+:1:- 21:3:undef:undef:undef:undef 21:4:1:+:3:- 21:5:1:+:4:- 21:6:undef:undef:undef:undef 21:7:undef:undef:undef:undef 21:8:5:+:3:- 21:9:undef:undef:undef:undef 21:10:1:+:9:- 21:11:10:+:1:- 21:12:undef:undef:undef:undef 21:13:5:+:8:- 21:14:undef:undef:undef:undef 21:15:undef:undef:undef:undef 21:16:13:+:3:- 21:17:13:+:4:- 21:18:undef:undef:undef:undef 21:19:10:+:9:- 21:20:1:+:19:- 21:21:undef:undef:undef:undef 21:22:21:+:1:- 21:23:11:+:12:- 21:24:undef:undef:undef:undef 21:25:6:+:19:- 21:26:5:+:21:- 21:27:undef:undef:undef:undef 21:28:undef:undef:undef:undef 21:29:18:+:11:- 21:30:undef:undef:undef:undef 21:31:3:+:28:- 21:32:29:+:3:- 21:33:undef:undef:undef:undef 21:34:13:+:21:- 21:35:undef:undef:undef:undef 21:36:undef:undef:undef:undef 21:37:30:+:7:- 21:38:29:+:9:- 21:39:undef:undef:undef:undef 21:40:21:+:19:- 21:41:2:+:39:- 21:42:undef:undef:undef:undef 21:43:41:+:2:- 21:44:21:+:23:- 21:45:undef:undef:undef:undef 21:46:11:+:35:- 21:47:9:+:38:- 21:48:undef:undef:undef:undef 21:49:undef:undef:undef:undef 21:50:31:+:19:- #22:0:undef:undef:undef:undef 22:1:0:+:0:- 22:2:undef:undef:undef:undef 22:3:1:+:2:- 22:4:undef:undef:undef:undef 22:5:3:+:2:- 22:6:undef:undef:undef:undef 22:7:1:+:6:- 22:8:undef:undef:undef:undef 22:9:7:+:2:- 22:10:undef:undef:undef:undef 22:11:undef:undef:undef:undef 22:12:undef:undef:undef:undef 22:13:3:+:10:- 22:14:undef:undef:undef:undef 22:15:13:+:2:- 22:16:undef:undef:undef:undef 22:17:7:+:10:- 22:18:undef:undef:undef:undef 22:19:13:+:6:- 22:20:undef:undef:undef:undef 22:21:1:+:20:- 22:22:undef:undef:undef:undef 22:23:22:+:1:- 22:24:undef:undef:undef:undef 22:25:8:+:17:- 22:26:undef:undef:undef:undef 22:27:16:+:11:- 22:28:undef:undef:undef:undef 22:29:4:+:25:- 22:30:undef:undef:undef:undef 22:31:24:+:7:- 22:32:undef:undef:undef:undef 22:33:undef:undef:undef:undef 22:34:undef:undef:undef:undef 22:35:8:+:27:- 22:36:undef:undef:undef:undef 22:37:32:+:5:- 22:38:undef:undef:undef:undef 22:39:16:+:23:- 22:40:undef:undef:undef:undef 22:41:28:+:13:- 22:42:undef:undef:undef:undef 22:43:2:+:41:- 22:44:undef:undef:undef:undef 22:45:43:+:2:- 22:46:undef:undef:undef:undef 22:47:15:+:32:- 22:48:undef:undef:undef:undef 22:49:29:+:20:- 22:50:undef:undef:undef:undef #23:0:undef:undef:undef:undef 23:1:0:+:0:- 23:2:1:+:1:- 23:3:2:+:1:- 23:4:3:+:1:- 23:5:2:+:3:- 23:6:5:+:1:- 23:7:4:+:3:- 23:8:7:+:1:- 23:9:2:+:7:- 23:10:7:+:3:- 23:11:1:+:10:- 23:12:11:+:1:- 23:13:4:+:9:- 23:14:11:+:3:- 23:15:2:+:13:- 23:16:7:+:9:- 23:17:3:+:14:- 23:18:11:+:7:- 23:19:5:+:14:- 23:20:7:+:13:- 23:21:11:+:10:- 23:22:1:+:21:- 23:23:undef:undef:undef:undef 23:24:23:+:1:- 23:25:12:+:13:- 23:26:17:+:9:- 23:27:20:+:7:- 23:28:11:+:17:- 23:29:24:+:5:- 23:30:17:+:13:- 23:31:27:+:4:- 23:32:7:+:25:- 23:33:23:+:10:- 23:34:3:+:31:- 23:35:32:+:3:- 23:36:11:+:25:- 23:37:29:+:8:- 23:38:5:+:33:- 23:39:17:+:22:- 23:40:7:+:33:- 23:41:25:+:16:- 23:42:11:+:31:- 23:43:15:+:28:- 23:44:23:+:21:- 23:45:2:+:43:- 23:46:undef:undef:undef:undef 23:47:45:+:2:- 23:48:23:+:25:- 23:49:32:+:17:- 23:50:37:+:13:- #24:0:undef:undef:undef:undef 24:1:0:+:0:- 24:2:undef:undef:undef:undef 24:3:undef:undef:undef:undef 24:4:undef:undef:undef:undef 24:5:4:+:1:- 24:6:undef:undef:undef:undef 24:7:5:+:2:- 24:8:undef:undef:undef:undef 24:9:undef:undef:undef:undef 24:10:undef:undef:undef:undef 24:11:6:+:5:- 24:12:undef:undef:undef:undef 24:13:6:+:7:- 24:14:undef:undef:undef:undef 24:15:undef:undef:undef:undef 24:16:undef:undef:undef:undef 24:17:5:+:12:- 24:18:undef:undef:undef:undef 24:19:4:+:15:- 24:20:undef:undef:undef:undef 24:21:undef:undef:undef:undef 24:22:undef:undef:undef:undef 24:23:1:+:22:- 24:24:undef:undef:undef:undef 24:25:24:+:1:- 24:26:undef:undef:undef:undef 24:27:undef:undef:undef:undef 24:28:undef:undef:undef:undef 24:29:23:+:6:- 24:30:undef:undef:undef:undef 24:31:22:+:9:- 24:32:undef:undef:undef:undef 24:33:undef:undef:undef:undef 24:34:undef:undef:undef:undef 24:35:19:+:16:- 24:36:undef:undef:undef:undef 24:37:17:+:20:- 24:38:undef:undef:undef:undef 24:39:undef:undef:undef:undef 24:40:undef:undef:undef:undef 24:41:12:+:29:- 24:42:undef:undef:undef:undef 24:43:9:+:34:- 24:44:undef:undef:undef:undef 24:45:undef:undef:undef:undef 24:46:undef:undef:undef:undef 24:47:2:+:45:- 24:48:undef:undef:undef:undef 24:49:47:+:2:- 24:50:undef:undef:undef:undef #25:0:undef:undef:undef:undef 25:1:0:+:0:- 25:2:1:+:1:- 25:3:1:+:2:- 25:4:1:+:3:- 25:5:undef:undef:undef:undef 25:6:1:+:5:- 25:7:2:+:5:- 25:8:1:+:7:- 25:9:4:+:5:- 25:10:undef:undef:undef:undef 25:11:4:+:7:- 25:12:1:+:11:- 25:13:12:+:1:- 25:14:9:+:5:- 25:15:undef:undef:undef:undef 25:16:9:+:7:- 25:17:15:+:2:- 25:18:13:+:5:- 25:19:16:+:3:- 25:20:undef:undef:undef:undef 25:21:16:+:5:- 25:22:15:+:7:- 25:23:12:+:11:- 25:24:1:+:23:- 25:25:undef:undef:undef:undef 25:26:25:+:1:- 25:27:13:+:14:- 25:28:9:+:19:- 25:29:7:+:22:- 25:30:undef:undef:undef:undef 25:31:5:+:26:- 25:32:9:+:23:- 25:33:4:+:29:- 25:34:15:+:19:- 25:35:undef:undef:undef:undef 25:36:13:+:23:- 25:37:3:+:34:- 25:38:35:+:3:- 25:39:25:+:14:- 25:40:undef:undef:undef:undef 25:41:23:+:18:- 25:42:37:+:5:- 25:43:31:+:12:- 25:44:37:+:7:- 25:45:undef:undef:undef:undef 25:46:35:+:11:- 25:47:32:+:15:- 25:48:25:+:23:- 25:49:2:+:47:- 25:50:undef:undef:undef:undef #26:0:undef:undef:undef:undef 26:1:0:+:0:- 26:2:undef:undef:undef:undef 26:3:2:+:1:- 26:4:undef:undef:undef:undef 26:5:1:+:4:- 26:6:undef:undef:undef:undef 26:7:3:+:4:- 26:8:undef:undef:undef:undef 26:9:8:+:1:- 26:10:undef:undef:undef:undef 26:11:3:+:8:- 26:12:undef:undef:undef:undef 26:13:undef:undef:undef:undef 26:14:undef:undef:undef:undef 26:15:11:+:4:- 26:16:undef:undef:undef:undef 26:17:2:+:15:- 26:18:undef:undef:undef:undef 26:19:11:+:8:- 26:20:undef:undef:undef:undef 26:21:17:+:4:- 26:22:undef:undef:undef:undef 26:23:8:+:15:- 26:24:undef:undef:undef:undef 26:25:1:+:24:- 26:26:undef:undef:undef:undef 26:27:26:+:1:- 26:28:undef:undef:undef:undef 26:29:19:+:10:- 26:30:undef:undef:undef:undef 26:31:6:+:25:- 26:32:undef:undef:undef:undef 26:33:14:+:19:- 26:34:undef:undef:undef:undef 26:35:31:+:4:- 26:36:undef:undef:undef:undef 26:37:10:+:27:- 26:38:undef:undef:undef:undef 26:39:undef:undef:undef:undef 26:40:undef:undef:undef:undef 26:41:30:+:11:- 26:42:undef:undef:undef:undef 26:43:5:+:38:- 26:44:undef:undef:undef:undef 26:45:26:+:19:- 26:46:undef:undef:undef:undef 26:47:38:+:9:- 26:48:undef:undef:undef:undef 26:49:17:+:32:- 26:50:undef:undef:undef:undef #27:0:undef:undef:undef:undef 27:1:0:+:0:- 27:2:1:+:1:- 27:3:undef:undef:undef:undef 27:4:3:+:1:- 27:5:3:+:2:- 27:6:undef:undef:undef:undef 27:7:6:+:1:- 27:8:3:+:5:- 27:9:undef:undef:undef:undef 27:10:3:+:7:- 27:11:9:+:2:- 27:12:undef:undef:undef:undef 27:13:1:+:12:- 27:14:13:+:1:- 27:15:undef:undef:undef:undef 27:16:3:+:13:- 27:17:12:+:5:- 27:18:undef:undef:undef:undef 27:19:12:+:7:- 27:20:3:+:17:- 27:21:undef:undef:undef:undef 27:22:9:+:13:- 27:23:6:+:17:- 27:24:undef:undef:undef:undef 27:25:13:+:12:- 27:26:1:+:25:- 27:27:undef:undef:undef:undef 27:28:27:+:1:- 27:29:14:+:15:- 27:30:undef:undef:undef:undef 27:31:23:+:8:- 27:32:19:+:13:- 27:33:undef:undef:undef:undef 27:34:29:+:5:- 27:35:13:+:22:- 27:36:undef:undef:undef:undef 27:37:11:+:26:- 27:38:31:+:7:- 27:39:undef:undef:undef:undef 27:40:3:+:37:- 27:41:38:+:3:- 27:42:undef:undef:undef:undef 27:43:8:+:35:- 27:44:31:+:13:- 27:45:undef:undef:undef:undef 27:46:29:+:17:- 27:47:7:+:40:- 27:48:undef:undef:undef:undef 27:49:20:+:29:- 27:50:13:+:37:- #28:0:undef:undef:undef:undef 28:1:0:+:0:- 28:2:undef:undef:undef:undef 28:3:1:+:2:- 28:4:undef:undef:undef:undef 28:5:2:+:3:- 28:6:undef:undef:undef:undef 28:7:undef:undef:undef:undef 28:8:undef:undef:undef:undef 28:9:1:+:8:- 28:10:undef:undef:undef:undef 28:11:2:+:9:- 28:12:undef:undef:undef:undef 28:13:7:+:6:- 28:14:undef:undef:undef:undef 28:15:7:+:8:- 28:16:undef:undef:undef:undef 28:17:14:+:3:- 28:18:undef:undef:undef:undef 28:19:17:+:2:- 28:20:undef:undef:undef:undef 28:21:undef:undef:undef:undef 28:22:undef:undef:undef:undef 28:23:14:+:9:- 28:24:undef:undef:undef:undef 28:25:17:+:8:- 28:26:undef:undef:undef:undef 28:27:1:+:26:- 28:28:undef:undef:undef:undef 28:29:28:+:1:- 28:30:undef:undef:undef:undef 28:31:10:+:21:- 28:32:undef:undef:undef:undef 28:33:13:+:20:- 28:34:undef:undef:undef:undef 28:35:undef:undef:undef:undef 28:36:undef:undef:undef:undef 28:37:4:+:33:- 28:38:undef:undef:undef:undef 28:39:7:+:32:- 28:40:undef:undef:undef:undef 28:41:22:+:19:- 28:42:undef:undef:undef:undef 28:43:20:+:23:- 28:44:undef:undef:undef:undef 28:45:37:+:8:- 28:46:undef:undef:undef:undef 28:47:42:+:5:- 28:48:undef:undef:undef:undef 28:49:undef:undef:undef:undef 28:50:undef:undef:undef:undef #29:0:undef:undef:undef:undef 29:1:0:+:0:- 29:2:1:+:1:- 29:3:2:+:1:- 29:4:1:+:3:- 29:5:4:+:1:- 29:6:5:+:1:- 29:7:1:+:6:- 29:8:5:+:3:- 29:9:5:+:4:- 29:10:9:+:1:- 29:11:8:+:3:- 29:12:5:+:7:- 29:13:9:+:4:- 29:14:1:+:13:- 29:15:14:+:1:- 29:16:5:+:11:- 29:17:10:+:7:- 29:18:5:+:13:- 29:19:2:+:17:- 29:20:9:+:11:- 29:21:8:+:13:- 29:22:19:+:3:- 29:23:4:+:19:- 29:24:5:+:19:- 29:25:19:+:6:- 29:26:9:+:17:- 29:27:14:+:13:- 29:28:1:+:27:- 29:29:undef:undef:undef:undef 29:30:29:+:1:- 29:31:15:+:16:- 29:32:21:+:11:- 29:33:8:+:25:- 29:34:27:+:7:- 29:35:29:+:6:- 29:36:5:+:31:- 29:37:23:+:14:- 29:38:21:+:17:- 29:39:35:+:4:- 29:40:29:+:11:- 29:41:17:+:24:- 29:42:29:+:13:- 29:43:3:+:40:- 29:44:41:+:3:- 29:45:14:+:31:- 29:46:27:+:19:- 29:47:13:+:34:- 29:48:5:+:43:- 29:49:22:+:27:- 29:50:19:+:31:- #30:0:undef:undef:undef:undef 30:1:0:+:0:- 30:2:undef:undef:undef:undef 30:3:undef:undef:undef:undef 30:4:undef:undef:undef:undef 30:5:undef:undef:undef:undef 30:6:undef:undef:undef:undef 30:7:4:+:3:- 30:8:undef:undef:undef:undef 30:9:undef:undef:undef:undef 30:10:undef:undef:undef:undef 30:11:7:+:4:- 30:12:undef:undef:undef:undef 30:13:10:+:3:- 30:14:undef:undef:undef:undef 30:15:undef:undef:undef:undef 30:16:undef:undef:undef:undef 30:17:4:+:13:- 30:18:undef:undef:undef:undef 30:19:7:+:12:- 30:20:undef:undef:undef:undef 30:21:undef:undef:undef:undef 30:22:undef:undef:undef:undef 30:23:10:+:13:- 30:24:undef:undef:undef:undef 30:25:undef:undef:undef:undef 30:26:undef:undef:undef:undef 30:27:undef:undef:undef:undef 30:28:undef:undef:undef:undef 30:29:1:+:28:- 30:30:undef:undef:undef:undef 30:31:30:+:1:- 30:32:undef:undef:undef:undef 30:33:undef:undef:undef:undef 30:34:undef:undef:undef:undef 30:35:undef:undef:undef:undef 30:36:undef:undef:undef:undef 30:37:21:+:16:- 30:38:undef:undef:undef:undef 30:39:undef:undef:undef:undef 30:40:undef:undef:undef:undef 30:41:26:+:15:- 30:42:undef:undef:undef:undef 30:43:33:+:10:- 30:44:undef:undef:undef:undef 30:45:undef:undef:undef:undef 30:46:undef:undef:undef:undef 30:47:11:+:36:- 30:48:undef:undef:undef:undef 30:49:18:+:31:- 30:50:undef:undef:undef:undef #31:0:undef:undef:undef:undef 31:1:0:+:0:- 31:2:1:+:1:- 31:3:1:+:2:- 31:4:3:+:1:- 31:5:1:+:4:- 31:6:1:+:5:- 31:7:5:+:2:- 31:8:7:+:1:- 31:9:7:+:2:- 31:10:1:+:9:- 31:11:5:+:6:- 31:12:7:+:5:- 31:13:8:+:5:- 31:14:5:+:9:- 31:15:1:+:14:- 31:16:15:+:1:- 31:17:11:+:6:- 31:18:7:+:11:- 31:19:8:+:11:- 31:20:11:+:9:- 31:21:19:+:2:- 31:22:5:+:17:- 31:23:3:+:20:- 31:24:7:+:17:- 31:25:21:+:4:- 31:26:21:+:5:- 31:27:7:+:20:- 31:28:19:+:9:- 31:29:15:+:14:- 31:30:1:+:29:- 31:31:undef:undef:undef:undef 31:32:31:+:1:- 31:33:16:+:17:- 31:34:11:+:23:- 31:35:26:+:9:- 31:36:7:+:29:- 31:37:6:+:31:- 31:38:27:+:11:- 31:39:34:+:5:- 31:40:31:+:9:- 31:41:4:+:37:- 31:42:19:+:23:- 31:43:25:+:18:- 31:44:27:+:17:- 31:45:16:+:29:- 31:46:3:+:43:- 31:47:44:+:3:- 31:48:31:+:17:- 31:49:19:+:30:- 31:50:21:+:29:- #32:0:undef:undef:undef:undef 32:1:0:+:0:- 32:2:undef:undef:undef:undef 32:3:2:+:1:- 32:4:undef:undef:undef:undef 32:5:3:+:2:- 32:6:undef:undef:undef:undef 32:7:2:+:5:- 32:8:undef:undef:undef:undef 32:9:2:+:7:- 32:10:undef:undef:undef:undef 32:11:10:+:1:- 32:12:undef:undef:undef:undef 32:13:11:+:2:- 32:14:undef:undef:undef:undef 32:15:8:+:7:- 32:16:undef:undef:undef:undef 32:17:8:+:9:- 32:18:undef:undef:undef:undef 32:19:3:+:16:- 32:20:undef:undef:undef:undef 32:21:2:+:19:- 32:22:undef:undef:undef:undef 32:23:18:+:5:- 32:24:undef:undef:undef:undef 32:25:18:+:7:- 32:26:undef:undef:undef:undef 32:27:11:+:16:- 32:28:undef:undef:undef:undef 32:29:10:+:19:- 32:30:undef:undef:undef:undef 32:31:1:+:30:- 32:32:undef:undef:undef:undef 32:33:32:+:1:- 32:34:undef:undef:undef:undef 32:35:23:+:12:- 32:36:undef:undef:undef:undef 32:37:22:+:15:- 32:38:undef:undef:undef:undef 32:39:11:+:28:- 32:40:undef:undef:undef:undef 32:41:9:+:32:- 32:42:undef:undef:undef:undef 32:43:39:+:4:- 32:44:undef:undef:undef:undef 32:45:38:+:7:- 32:46:undef:undef:undef:undef 32:47:25:+:22:- 32:48:undef:undef:undef:undef 32:49:23:+:26:- 32:50:undef:undef:undef:undef #33:0:undef:undef:undef:undef 33:1:0:+:0:- 33:2:1:+:1:- 33:3:undef:undef:undef:undef 33:4:1:+:3:- 33:5:2:+:3:- 33:6:undef:undef:undef:undef 33:7:3:+:4:- 33:8:1:+:7:- 33:9:undef:undef:undef:undef 33:10:7:+:3:- 33:11:undef:undef:undef:undef 33:12:undef:undef:undef:undef 33:13:2:+:11:- 33:14:3:+:11:- 33:15:undef:undef:undef:undef 33:16:1:+:15:- 33:17:16:+:1:- 33:18:undef:undef:undef:undef 33:19:15:+:4:- 33:20:17:+:3:- 33:21:undef:undef:undef:undef 33:22:undef:undef:undef:undef 33:23:7:+:16:- 33:24:undef:undef:undef:undef 33:25:22:+:3:- 33:26:15:+:11:- 33:27:undef:undef:undef:undef 33:28:17:+:11:- 33:29:22:+:7:- 33:30:undef:undef:undef:undef 33:31:16:+:15:- 33:32:1:+:31:- 33:33:undef:undef:undef:undef 33:34:33:+:1:- 33:35:17:+:18:- 33:36:undef:undef:undef:undef 33:37:9:+:28:- 33:38:15:+:23:- 33:39:undef:undef:undef:undef 33:40:17:+:23:- 33:41:5:+:36:- 33:42:undef:undef:undef:undef 33:43:30:+:13:- 33:44:undef:undef:undef:undef 33:45:undef:undef:undef:undef 33:46:7:+:39:- 33:47:10:+:37:- 33:48:undef:undef:undef:undef 33:49:3:+:46:- 33:50:47:+:3:- #34:0:undef:undef:undef:undef 34:1:0:+:0:- 34:2:undef:undef:undef:undef 34:3:1:+:2:- 34:4:undef:undef:undef:undef 34:5:4:+:1:- 34:6:undef:undef:undef:undef 34:7:6:+:1:- 34:8:undef:undef:undef:undef 34:9:4:+:5:- 34:10:undef:undef:undef:undef 34:11:1:+:10:- 34:12:undef:undef:undef:undef 34:13:5:+:8:- 34:14:undef:undef:undef:undef 34:15:4:+:11:- 34:16:undef:undef:undef:undef 34:17:undef:undef:undef:undef 34:18:undef:undef:undef:undef 34:19:14:+:5:- 34:20:undef:undef:undef:undef 34:21:13:+:8:- 34:22:undef:undef:undef:undef 34:23:21:+:2:- 34:24:undef:undef:undef:undef 34:25:14:+:11:- 34:26:undef:undef:undef:undef 34:27:4:+:23:- 34:28:undef:undef:undef:undef 34:29:6:+:23:- 34:30:undef:undef:undef:undef 34:31:21:+:10:- 34:32:undef:undef:undef:undef 34:33:1:+:32:- 34:34:undef:undef:undef:undef 34:35:34:+:1:- 34:36:undef:undef:undef:undef 34:37:12:+:25:- 34:38:undef:undef:undef:undef 34:39:31:+:8:- 34:40:undef:undef:undef:undef 34:41:35:+:6:- 34:42:undef:undef:undef:undef 34:43:19:+:24:- 34:44:undef:undef:undef:undef 34:45:4:+:41:- 34:46:undef:undef:undef:undef 34:47:18:+:29:- 34:48:undef:undef:undef:undef 34:49:13:+:36:- 34:50:undef:undef:undef:undef #35:0:undef:undef:undef:undef 35:1:0:+:0:- 35:2:1:+:1:- 35:3:2:+:1:- 35:4:3:+:1:- 35:5:undef:undef:undef:undef 35:6:5:+:1:- 35:7:undef:undef:undef:undef 35:8:3:+:5:- 35:9:8:+:1:- 35:10:undef:undef:undef:undef 35:11:6:+:5:- 35:12:11:+:1:- 35:13:3:+:10:- 35:14:undef:undef:undef:undef 35:15:undef:undef:undef:undef 35:16:11:+:5:- 35:17:1:+:16:- 35:18:17:+:1:- 35:19:6:+:13:- 35:20:undef:undef:undef:undef 35:21:undef:undef:undef:undef 35:22:17:+:5:- 35:23:2:+:21:- 35:24:11:+:13:- 35:25:undef:undef:undef:undef 35:26:3:+:23:- 35:27:17:+:10:- 35:28:undef:undef:undef:undef 35:29:5:+:24:- 35:30:undef:undef:undef:undef 35:31:8:+:23:- 35:32:11:+:21:- 35:33:17:+:16:- 35:34:1:+:33:- 35:35:undef:undef:undef:undef 35:36:35:+:1:- 35:37:18:+:19:- 35:38:25:+:13:- 35:39:29:+:10:- 35:40:undef:undef:undef:undef 35:41:34:+:7:- 35:42:undef:undef:undef:undef 35:43:16:+:27:- 35:44:39:+:5:- 35:45:undef:undef:undef:undef 35:46:25:+:21:- 35:47:43:+:4:- 35:48:11:+:37:- 35:49:undef:undef:undef:undef 35:50:undef:undef:undef:undef #36:0:undef:undef:undef:undef 36:1:0:+:0:- 36:2:undef:undef:undef:undef 36:3:undef:undef:undef:undef 36:4:undef:undef:undef:undef 36:5:1:+:4:- 36:6:undef:undef:undef:undef 36:7:1:+:6:- 36:8:undef:undef:undef:undef 36:9:undef:undef:undef:undef 36:10:undef:undef:undef:undef 36:11:4:+:7:- 36:12:undef:undef:undef:undef 36:13:4:+:9:- 36:14:undef:undef:undef:undef 36:15:undef:undef:undef:undef 36:16:undef:undef:undef:undef 36:17:9:+:8:- 36:18:undef:undef:undef:undef 36:19:9:+:10:- 36:20:undef:undef:undef:undef 36:21:undef:undef:undef:undef 36:22:undef:undef:undef:undef 36:23:16:+:7:- 36:24:undef:undef:undef:undef 36:25:16:+:9:- 36:26:undef:undef:undef:undef 36:27:undef:undef:undef:undef 36:28:undef:undef:undef:undef 36:29:25:+:4:- 36:30:undef:undef:undef:undef 36:31:25:+:6:- 36:32:undef:undef:undef:undef 36:33:undef:undef:undef:undef 36:34:undef:undef:undef:undef 36:35:1:+:34:- 36:36:undef:undef:undef:undef 36:37:36:+:1:- 36:38:undef:undef:undef:undef 36:39:undef:undef:undef:undef 36:40:undef:undef:undef:undef 36:41:8:+:33:- 36:42:undef:undef:undef:undef 36:43:6:+:37:- 36:44:undef:undef:undef:undef 36:45:undef:undef:undef:undef 36:46:undef:undef:undef:undef 36:47:17:+:30:- 36:48:undef:undef:undef:undef 36:49:15:+:34:- 36:50:undef:undef:undef:undef #37:0:undef:undef:undef:undef 37:1:0:+:0:- 37:2:1:+:1:- 37:3:1:+:2:- 37:4:1:+:3:- 37:5:3:+:2:- 37:6:1:+:5:- 37:7:4:+:3:- 37:8:5:+:3:- 37:9:1:+:8:- 37:10:3:+:7:- 37:11:3:+:8:- 37:12:1:+:11:- 37:13:6:+:7:- 37:14:11:+:3:- 37:15:13:+:2:- 37:16:13:+:3:- 37:17:6:+:11:- 37:18:1:+:17:- 37:19:18:+:1:- 37:20:13:+:7:- 37:21:4:+:17:- 37:22:3:+:19:- 37:23:5:+:18:- 37:24:13:+:11:- 37:25:23:+:2:- 37:26:19:+:7:- 37:27:19:+:8:- 37:28:25:+:3:- 37:29:11:+:18:- 37:30:13:+:17:- 37:31:26:+:5:- 37:32:13:+:19:- 37:33:25:+:8:- 37:34:23:+:11:- 37:35:18:+:17:- 37:36:1:+:35:- 37:37:undef:undef:undef:undef 37:38:37:+:1:- 37:39:19:+:20:- 37:40:13:+:27:- 37:41:10:+:31:- 37:42:25:+:17:- 37:43:7:+:36:- 37:44:25:+:19:- 37:45:28:+:17:- 37:46:5:+:41:- 37:47:14:+:33:- 37:48:13:+:35:- 37:49:4:+:45:- 37:50:23:+:27:- #38:0:undef:undef:undef:undef 38:1:0:+:0:- 38:2:undef:undef:undef:undef 38:3:2:+:1:- 38:4:undef:undef:undef:undef 38:5:2:+:3:- 38:6:undef:undef:undef:undef 38:7:5:+:2:- 38:8:undef:undef:undef:undef 38:9:5:+:4:- 38:10:undef:undef:undef:undef 38:11:9:+:2:- 38:12:undef:undef:undef:undef 38:13:12:+:1:- 38:14:undef:undef:undef:undef 38:15:2:+:13:- 38:16:undef:undef:undef:undef 38:17:13:+:4:- 38:18:undef:undef:undef:undef 38:19:undef:undef:undef:undef 38:20:undef:undef:undef:undef 38:21:5:+:16:- 38:22:undef:undef:undef:undef 38:23:20:+:3:- 38:24:undef:undef:undef:undef 38:25:2:+:23:- 38:26:undef:undef:undef:undef 38:27:5:+:22:- 38:28:undef:undef:undef:undef 38:29:13:+:16:- 38:30:undef:undef:undef:undef 38:31:9:+:22:- 38:32:undef:undef:undef:undef 38:33:20:+:13:- 38:34:undef:undef:undef:undef 38:35:12:+:23:- 38:36:undef:undef:undef:undef 38:37:1:+:36:- 38:38:undef:undef:undef:undef 38:39:38:+:1:- 38:40:undef:undef:undef:undef 38:41:27:+:14:- 38:42:undef:undef:undef:undef 38:43:17:+:26:- 38:44:undef:undef:undef:undef 38:45:32:+:13:- 38:46:undef:undef:undef:undef 38:47:26:+:21:- 38:48:undef:undef:undef:undef 38:49:40:+:9:- 38:50:undef:undef:undef:undef #39:0:undef:undef:undef:undef 39:1:0:+:0:- 39:2:1:+:1:- 39:3:undef:undef:undef:undef 39:4:3:+:1:- 39:5:4:+:1:- 39:6:undef:undef:undef:undef 39:7:2:+:5:- 39:8:7:+:1:- 39:9:undef:undef:undef:undef 39:10:9:+:1:- 39:11:2:+:9:- 39:12:undef:undef:undef:undef 39:13:undef:undef:undef:undef 39:14:9:+:5:- 39:15:undef:undef:undef:undef 39:16:7:+:9:- 39:17:7:+:10:- 39:18:undef:undef:undef:undef 39:19:1:+:18:- 39:20:19:+:1:- 39:21:undef:undef:undef:undef 39:22:13:+:9:- 39:23:13:+:10:- 39:24:undef:undef:undef:undef 39:25:9:+:16:- 39:26:undef:undef:undef:undef 39:27:undef:undef:undef:undef 39:28:23:+:5:- 39:29:3:+:26:- 39:30:undef:undef:undef:undef 39:31:4:+:27:- 39:32:23:+:9:- 39:33:undef:undef:undef:undef 39:34:7:+:27:- 39:35:9:+:26:- 39:36:undef:undef:undef:undef 39:37:19:+:18:- 39:38:1:+:37:- 39:39:undef:undef:undef:undef 39:40:39:+:1:- 39:41:20:+:21:- 39:42:undef:undef:undef:undef 39:43:32:+:11:- 39:44:35:+:9:- 39:45:undef:undef:undef:undef 39:46:13:+:33:- 39:47:41:+:6:- 39:48:undef:undef:undef:undef 39:49:44:+:5:- 39:50:9:+:41:- #40:0:undef:undef:undef:undef 40:1:0:+:0:- 40:2:undef:undef:undef:undef 40:3:1:+:2:- 40:4:undef:undef:undef:undef 40:5:undef:undef:undef:undef 40:6:undef:undef:undef:undef 40:7:3:+:4:- 40:8:undef:undef:undef:undef 40:9:7:+:2:- 40:10:undef:undef:undef:undef 40:11:8:+:3:- 40:12:undef:undef:undef:undef 40:13:1:+:12:- 40:14:undef:undef:undef:undef 40:15:undef:undef:undef:undef 40:16:undef:undef:undef:undef 40:17:3:+:14:- 40:18:undef:undef:undef:undef 40:19:10:+:9:- 40:20:undef:undef:undef:undef 40:21:10:+:11:- 40:22:undef:undef:undef:undef 40:23:19:+:4:- 40:24:undef:undef:undef:undef 40:25:undef:undef:undef:undef 40:26:undef:undef:undef:undef 40:27:25:+:2:- 40:28:undef:undef:undef:undef 40:29:8:+:21:- 40:30:undef:undef:undef:undef 40:31:7:+:24:- 40:32:undef:undef:undef:undef 40:33:19:+:14:- 40:34:undef:undef:undef:undef 40:35:undef:undef:undef:undef 40:36:undef:undef:undef:undef 40:37:25:+:12:- 40:38:undef:undef:undef:undef 40:39:1:+:38:- 40:40:undef:undef:undef:undef 40:41:40:+:1:- 40:42:undef:undef:undef:undef 40:43:14:+:29:- 40:44:undef:undef:undef:undef 40:45:undef:undef:undef:undef 40:46:undef:undef:undef:undef 40:47:20:+:27:- 40:48:undef:undef:undef:undef 40:49:38:+:11:- 40:50:undef:undef:undef:undef #41:0:undef:undef:undef:undef 41:1:0:+:0:- 41:2:1:+:1:- 41:3:2:+:1:- 41:4:1:+:3:- 41:5:1:+:4:- 41:6:5:+:1:- 41:7:6:+:1:- 41:8:1:+:7:- 41:9:2:+:7:- 41:10:1:+:9:- 41:11:7:+:4:- 41:12:5:+:7:- 41:13:7:+:6:- 41:14:13:+:1:- 41:15:11:+:4:- 41:16:9:+:7:- 41:17:5:+:12:- 41:18:11:+:7:- 41:19:13:+:6:- 41:20:1:+:19:- 41:21:20:+:1:- 41:22:7:+:15:- 41:23:9:+:14:- 41:24:17:+:7:- 41:25:11:+:14:- 41:26:7:+:19:- 41:27:2:+:25:- 41:28:13:+:15:- 41:29:17:+:12:- 41:30:11:+:19:- 41:31:28:+:3:- 41:32:25:+:7:- 41:33:29:+:4:- 41:34:5:+:29:- 41:35:6:+:29:- 41:36:29:+:7:- 41:37:28:+:9:- 41:38:13:+:25:- 41:39:20:+:19:- 41:40:1:+:39:- 41:41:undef:undef:undef:undef 41:42:41:+:1:- 41:43:21:+:22:- 41:44:29:+:15:- 41:45:11:+:34:- 41:46:9:+:37:- 41:47:39:+:8:- 41:48:41:+:7:- 41:49:6:+:43:- 41:50:11:+:39:- #42:0:undef:undef:undef:undef 42:1:0:+:0:- 42:2:undef:undef:undef:undef 42:3:undef:undef:undef:undef 42:4:undef:undef:undef:undef 42:5:3:+:2:- 42:6:undef:undef:undef:undef 42:7:undef:undef:undef:undef 42:8:undef:undef:undef:undef 42:9:undef:undef:undef:undef 42:10:undef:undef:undef:undef 42:11:5:+:6:- 42:12:undef:undef:undef:undef 42:13:9:+:4:- 42:14:undef:undef:undef:undef 42:15:undef:undef:undef:undef 42:16:undef:undef:undef:undef 42:17:15:+:2:- 42:18:undef:undef:undef:undef 42:19:5:+:14:- 42:20:undef:undef:undef:undef 42:21:undef:undef:undef:undef 42:22:undef:undef:undef:undef 42:23:17:+:6:- 42:24:undef:undef:undef:undef 42:25:3:+:22:- 42:26:undef:undef:undef:undef 42:27:undef:undef:undef:undef 42:28:undef:undef:undef:undef 42:29:9:+:20:- 42:30:undef:undef:undef:undef 42:31:17:+:14:- 42:32:undef:undef:undef:undef 42:33:undef:undef:undef:undef 42:34:undef:undef:undef:undef 42:35:undef:undef:undef:undef 42:36:undef:undef:undef:undef 42:37:15:+:22:- 42:38:undef:undef:undef:undef 42:39:undef:undef:undef:undef 42:40:undef:undef:undef:undef 42:41:1:+:40:- 42:42:undef:undef:undef:undef 42:43:42:+:1:- 42:44:undef:undef:undef:undef 42:45:undef:undef:undef:undef 42:46:undef:undef:undef:undef 42:47:28:+:19:- 42:48:undef:undef:undef:undef 42:49:undef:undef:undef:undef 42:50:undef:undef:undef:undef #43:0:undef:undef:undef:undef 43:1:0:+:0:- 43:2:1:+:1:- 43:3:1:+:2:- 43:4:3:+:1:- 43:5:2:+:3:- 43:6:1:+:5:- 43:7:1:+:6:- 43:8:3:+:5:- 43:9:4:+:5:- 43:10:7:+:3:- 43:11:10:+:1:- 43:12:7:+:5:- 43:13:10:+:3:- 43:14:1:+:13:- 43:15:7:+:8:- 43:16:3:+:13:- 43:17:2:+:15:- 43:18:13:+:5:- 43:19:4:+:15:- 43:20:7:+:13:- 43:21:1:+:20:- 43:22:21:+:1:- 43:23:15:+:8:- 43:24:19:+:5:- 43:25:7:+:18:- 43:26:23:+:3:- 43:27:22:+:5:- 43:28:15:+:13:- 43:29:27:+:2:- 43:30:7:+:23:- 43:31:13:+:18:- 43:32:3:+:29:- 43:33:10:+:23:- 43:34:19:+:15:- 43:35:22:+:13:- 43:36:31:+:5:- 43:37:31:+:6:- 43:38:23:+:15:- 43:39:10:+:29:- 43:40:27:+:13:- 43:41:21:+:20:- 43:42:1:+:41:- 43:43:undef:undef:undef:undef 43:44:43:+:1:- 43:45:22:+:23:- 43:46:15:+:31:- 43:47:35:+:12:- 43:48:19:+:29:- 43:49:8:+:41:- 43:50:7:+:43:- #44:0:undef:undef:undef:undef 44:1:0:+:0:- 44:2:undef:undef:undef:undef 44:3:2:+:1:- 44:4:undef:undef:undef:undef 44:5:4:+:1:- 44:6:undef:undef:undef:undef 44:7:4:+:3:- 44:8:undef:undef:undef:undef 44:9:8:+:1:- 44:10:undef:undef:undef:undef 44:11:undef:undef:undef:undef 44:12:undef:undef:undef:undef 44:13:8:+:5:- 44:14:undef:undef:undef:undef 44:15:14:+:1:- 44:16:undef:undef:undef:undef 44:17:12:+:5:- 44:18:undef:undef:undef:undef 44:19:16:+:3:- 44:20:undef:undef:undef:undef 44:21:11:+:10:- 44:22:undef:undef:undef:undef 44:23:11:+:12:- 44:24:undef:undef:undef:undef 44:25:4:+:21:- 44:26:undef:undef:undef:undef 44:27:8:+:19:- 44:28:undef:undef:undef:undef 44:29:2:+:27:- 44:30:undef:undef:undef:undef 44:31:12:+:19:- 44:32:undef:undef:undef:undef 44:33:undef:undef:undef:undef 44:34:undef:undef:undef:undef 44:35:4:+:31:- 44:36:undef:undef:undef:undef 44:37:16:+:21:- 44:38:undef:undef:undef:undef 44:39:8:+:31:- 44:40:undef:undef:undef:undef 44:41:14:+:27:- 44:42:undef:undef:undef:undef 44:43:1:+:42:- 44:44:undef:undef:undef:undef 44:45:44:+:1:- 44:46:undef:undef:undef:undef 44:47:31:+:16:- 44:48:undef:undef:undef:undef 44:49:39:+:10:- 44:50:undef:undef:undef:undef #45:0:undef:undef:undef:undef 45:1:0:+:0:- 45:2:1:+:1:- 45:3:undef:undef:undef:undef 45:4:1:+:3:- 45:5:undef:undef:undef:undef 45:6:undef:undef:undef:undef 45:7:5:+:2:- 45:8:5:+:3:- 45:9:undef:undef:undef:undef 45:10:undef:undef:undef:undef 45:11:1:+:10:- 45:12:undef:undef:undef:undef 45:13:11:+:2:- 45:14:5:+:9:- 45:15:undef:undef:undef:undef 45:16:5:+:11:- 45:17:14:+:3:- 45:18:undef:undef:undef:undef 45:19:11:+:8:- 45:20:undef:undef:undef:undef 45:21:undef:undef:undef:undef 45:22:1:+:21:- 45:23:22:+:1:- 45:24:undef:undef:undef:undef 45:25:undef:undef:undef:undef 45:26:11:+:15:- 45:27:undef:undef:undef:undef 45:28:5:+:23:- 45:29:20:+:9:- 45:30:undef:undef:undef:undef 45:31:20:+:11:- 45:32:5:+:27:- 45:33:undef:undef:undef:undef 45:34:31:+:3:- 45:35:undef:undef:undef:undef 45:36:undef:undef:undef:undef 45:37:14:+:23:- 45:38:11:+:27:- 45:39:undef:undef:undef:undef 45:40:undef:undef:undef:undef 45:41:31:+:10:- 45:42:undef:undef:undef:undef 45:43:22:+:21:- 45:44:1:+:43:- 45:45:undef:undef:undef:undef 45:46:45:+:1:- 45:47:23:+:24:- 45:48:undef:undef:undef:undef 45:49:12:+:37:- 45:50:undef:undef:undef:undef #46:0:undef:undef:undef:undef 46:1:0:+:0:- 46:2:undef:undef:undef:undef 46:3:1:+:2:- 46:4:undef:undef:undef:undef 46:5:1:+:4:- 46:6:undef:undef:undef:undef 46:7:2:+:5:- 46:8:undef:undef:undef:undef 46:9:1:+:8:- 46:10:undef:undef:undef:undef 46:11:6:+:5:- 46:12:undef:undef:undef:undef 46:13:2:+:11:- 46:14:undef:undef:undef:undef 46:15:1:+:14:- 46:16:undef:undef:undef:undef 46:17:10:+:7:- 46:18:undef:undef:undef:undef 46:19:12:+:7:- 46:20:undef:undef:undef:undef 46:21:16:+:5:- 46:22:undef:undef:undef:undef 46:23:undef:undef:undef:undef 46:24:undef:undef:undef:undef 46:25:6:+:19:- 46:26:undef:undef:undef:undef 46:27:10:+:17:- 46:28:undef:undef:undef:undef 46:29:12:+:17:- 46:30:undef:undef:undef:undef 46:31:29:+:2:- 46:32:undef:undef:undef:undef 46:33:28:+:5:- 46:34:undef:undef:undef:undef 46:35:16:+:19:- 46:36:undef:undef:undef:undef 46:37:33:+:4:- 46:38:undef:undef:undef:undef 46:39:28:+:11:- 46:40:undef:undef:undef:undef 46:41:33:+:8:- 46:42:undef:undef:undef:undef 46:43:29:+:14:- 46:44:undef:undef:undef:undef 46:45:1:+:44:- 46:46:undef:undef:undef:undef 46:47:46:+:1:- 46:48:undef:undef:undef:undef 46:49:16:+:33:- 46:50:undef:undef:undef:undef #47:0:undef:undef:undef:undef 47:1:0:+:0:- 47:2:1:+:1:- 47:3:2:+:1:- 47:4:3:+:1:- 47:5:3:+:2:- 47:6:5:+:1:- 47:7:3:+:4:- 47:8:7:+:1:- 47:9:5:+:4:- 47:10:3:+:7:- 47:11:4:+:7:- 47:12:11:+:1:- 47:13:5:+:8:- 47:14:3:+:11:- 47:15:8:+:7:- 47:16:15:+:1:- 47:17:4:+:13:- 47:18:5:+:13:- 47:19:17:+:2:- 47:20:3:+:17:- 47:21:17:+:4:- 47:22:15:+:7:- 47:23:1:+:22:- 47:24:23:+:1:- 47:25:8:+:17:- 47:26:5:+:21:- 47:27:23:+:4:- 47:28:3:+:25:- 47:29:21:+:8:- 47:30:23:+:7:- 47:31:2:+:29:- 47:32:15:+:17:- 47:33:26:+:7:- 47:34:21:+:13:- 47:35:3:+:32:- 47:36:23:+:13:- 47:37:26:+:11:- 47:38:17:+:21:- 47:39:5:+:34:- 47:40:23:+:17:- 47:41:7:+:34:- 47:42:17:+:25:- 47:43:11:+:32:- 47:44:15:+:29:- 47:45:23:+:22:- 47:46:1:+:45:- 47:47:undef:undef:undef:undef 47:48:47:+:1:- 47:49:24:+:25:- 47:50:33:+:17:- #48:0:undef:undef:undef:undef 48:1:0:+:0:- 48:2:undef:undef:undef:undef 48:3:undef:undef:undef:undef 48:4:undef:undef:undef:undef 48:5:2:+:3:- 48:6:undef:undef:undef:undef 48:7:6:+:1:- 48:8:undef:undef:undef:undef 48:9:undef:undef:undef:undef 48:10:undef:undef:undef:undef 48:11:3:+:8:- 48:12:undef:undef:undef:undef 48:13:3:+:10:- 48:14:undef:undef:undef:undef 48:15:undef:undef:undef:undef 48:16:undef:undef:undef:undef 48:17:11:+:6:- 48:18:undef:undef:undef:undef 48:19:2:+:17:- 48:20:undef:undef:undef:undef 48:21:undef:undef:undef:undef 48:22:undef:undef:undef:undef 48:23:12:+:11:- 48:24:undef:undef:undef:undef 48:25:12:+:13:- 48:26:undef:undef:undef:undef 48:27:undef:undef:undef:undef 48:28:undef:undef:undef:undef 48:29:26:+:3:- 48:30:undef:undef:undef:undef 48:31:11:+:20:- 48:32:undef:undef:undef:undef 48:33:undef:undef:undef:undef 48:34:undef:undef:undef:undef 48:35:27:+:8:- 48:36:undef:undef:undef:undef 48:37:27:+:10:- 48:38:undef:undef:undef:undef 48:39:undef:undef:undef:undef 48:40:undef:undef:undef:undef 48:41:6:+:35:- 48:42:undef:undef:undef:undef 48:43:26:+:17:- 48:44:undef:undef:undef:undef 48:45:undef:undef:undef:undef 48:46:undef:undef:undef:undef 48:47:1:+:46:- 48:48:undef:undef:undef:undef 48:49:48:+:1:- 48:50:undef:undef:undef:undef #49:0:undef:undef:undef:undef 49:1:0:+:0:- 49:2:1:+:1:- 49:3:1:+:2:- 49:4:1:+:3:- 49:5:4:+:1:- 49:6:1:+:5:- 49:7:undef:undef:undef:undef 49:8:1:+:7:- 49:9:7:+:2:- 49:10:9:+:1:- 49:11:9:+:2:- 49:12:1:+:11:- 49:13:4:+:9:- 49:14:undef:undef:undef:undef 49:15:4:+:11:- 49:16:1:+:15:- 49:17:8:+:9:- 49:18:7:+:11:- 49:19:7:+:12:- 49:20:9:+:11:- 49:21:undef:undef:undef:undef 49:22:9:+:13:- 49:23:8:+:15:- 49:24:1:+:23:- 49:25:24:+:1:- 49:26:17:+:9:- 49:27:16:+:11:- 49:28:undef:undef:undef:undef 49:29:16:+:13:- 49:30:19:+:11:- 49:31:19:+:12:- 49:32:17:+:15:- 49:33:31:+:2:- 49:34:25:+:9:- 49:35:undef:undef:undef:undef 49:36:25:+:11:- 49:37:34:+:3:- 49:38:7:+:31:- 49:39:4:+:35:- 49:40:9:+:31:- 49:41:36:+:5:- 49:42:undef:undef:undef:undef 49:43:36:+:7:- 49:44:9:+:35:- 49:45:34:+:11:- 49:46:31:+:15:- 49:47:24:+:23:- 49:48:1:+:47:- 49:49:undef:undef:undef:undef 49:50:49:+:1:- #50:0:undef:undef:undef:undef 50:1:0:+:0:- 50:2:undef:undef:undef:undef 50:3:2:+:1:- 50:4:undef:undef:undef:undef 50:5:undef:undef:undef:undef 50:6:undef:undef:undef:undef 50:7:1:+:6:- 50:8:undef:undef:undef:undef 50:9:2:+:7:- 50:10:undef:undef:undef:undef 50:11:2:+:9:- 50:12:undef:undef:undef:undef 50:13:6:+:7:- 50:14:undef:undef:undef:undef 50:15:undef:undef:undef:undef 50:16:undef:undef:undef:undef 50:17:16:+:1:- 50:18:undef:undef:undef:undef 50:19:8:+:11:- 50:20:undef:undef:undef:undef 50:21:8:+:13:- 50:22:undef:undef:undef:undef 50:23:6:+:17:- 50:24:undef:undef:undef:undef 50:25:undef:undef:undef:undef 50:26:undef:undef:undef:undef 50:27:20:+:7:- 50:28:undef:undef:undef:undef 50:29:18:+:11:- 50:30:undef:undef:undef:undef 50:31:18:+:13:- 50:32:undef:undef:undef:undef 50:33:2:+:31:- 50:34:undef:undef:undef:undef 50:35:undef:undef:undef:undef 50:36:undef:undef:undef:undef 50:37:20:+:17:- 50:38:undef:undef:undef:undef 50:39:32:+:7:- 50:40:undef:undef:undef:undef 50:41:32:+:9:- 50:42:undef:undef:undef:undef 50:43:37:+:6:- 50:44:undef:undef:undef:undef 50:45:undef:undef:undef:undef 50:46:undef:undef:undef:undef 50:47:16:+:31:- 50:48:undef:undef:undef:undef 50:49:1:+:48:- 50:50:undef:undef:undef:undef 741:620:41:+:579:- 461:109:48:+:61:- 278:869:422:+:447:- 561:3498:undef:undef:undef:undef 499:7109:5086:+:2023:- 741:9439:2968:+:6471:- 486:56136:undef:undef:undef:undef 200:10526:undef:undef:undef:undef 672:99812:undef:undef:undef:undef 780:424148:undef:undef:undef:undef 310:384332:undef:undef:undef:undef 225:215820:undef:undef:undef:undef 852:2247541:2054970:+:192571:- 113:8887520:7235857:+:1651663:- 844:7780525:175154:+:7605371:- 687:87465920:509263:+:86956657:- 493:71478351:60459376:+:11018975:- 173:99310988:37313377:+:61997611:- 816:792935352:undef:undef:undef:undef 979:616918181:undef:undef:undef:undef 958:737059268:undef:undef:undef:undef 895:5476284944:3218464671:+:2257820273:- 754:5245579447:3095865854:+:2149713593:- 498:5270898300:undef:undef:undef:undef 413:85194219513:35686682750:+:49507536763:- 184:92943057805:9597380969:+:83345676836:- 282:22116244877:21253554474:+:862690403:- 103:813169626911:623693208990:+:189476417921:- 332:204877945268:undef:undef:undef:undef 305:812044920168:567100222937:+:244944697231:- 874:2233888446784:undef:undef:undef:undef 851:9628562470715:1595331737216:+:8033230733499:- 170:9512424802829:7330162642180:+:2182262160649:- 416:35895309054277:20967692548532:+:14927616505745:- 693:87114971000787:undef:undef:undef:undef 263:15549801355396:10405950716919:+:5143850638477:- 598:670464274337475:595345367346487:+:75118906990988:- 416:417977295301500:undef:undef:undef:undef 281:907403927404997:826674040625193:+:80729886779804:- 696:8403134065908435:undef:undef:undef:undef 277:5812153971708647:1279932824094684:+:4532221147613963:- 658:1133283530973375:undef:undef:undef:undef 632:57996916095727080:undef:undef:undef:undef 819:51981115048676576:undef:undef:undef:undef 549:83015466364372240:undef:undef:undef:undef 531:416202594816372687:undef:undef:undef:undef 664:541037245817077417:299037152432029235:+:242000093385048182:- 631:183722828206333148:92298156167048507:+:91424672039284641:- 175:3611383264044105956:undef:undef:undef:undef 743:2992271347936814844:2492888242762972259:+:499383105173842585:- 602:6134448393502267660:undef:undef:undef:undef 959:53075414038512161512:42283228702214068191:+:10792185336298093321:- 815:56860682801097897246:56093238002555471639:+:767444798542425607:- 886:30009839291014751598:undef:undef:undef:undef 609:273888409952105295020:98941625926868907889:+:174946784025236387131:- 340:181380165037918172099:139235950220284243876:+:42144214817633928223:- 827:229247399647470621945:92308807838703406418:+:136938591808767215527:- 952:5562674809482089173316:undef:undef:undef:undef 901:8309818972650860479311:3532364779717291413514:+:4777454192933569065797:- 265:7701488832510420831126:6945871060264115391091:+:755617772246305440035:- 164:75587116320128057813999:44707013921051351268036:+:30880102399076706545963:- 631:40162982059806098053891:6683222054325895872676:+:33479760005480202181215:- 733:10084115533658671195588:4705003427709775646509:+:5379112105948895549079:- 535:151412058327435602200854:141789609760832218135753:+:9622448566603384065101:- 757:423342299553291085429917:166093346059877744217550:+:257248953493413341212367:- 665:686959841032017875475019:434902395600721091090200:+:252057445431296784384819:- 740:6484819730382801901410848:undef:undef:undef:undef 793:2799159372693769837012668:1295449545748566872867149:+:1503709826945202964145519:- 282:3962201441710282457113977:undef:undef:undef:undef 905:460:undef:undef:undef:undef 828:265:257:+:8:- 542:455:68:+:387:- 756:4964:undef:undef:undef:undef 563:1031:738:+:293:- 224:9957:2267:+:7690:- 252:48856:undef:undef:undef:undef 373:74860:68237:+:6623:- 355:28550:undef:undef:undef:undef 982:348479:5323:+:343156:- 774:300613:undef:undef:undef:undef 854:749913:81665:+:668248:- 306:6065146:undef:undef:undef:undef 271:8099488:2480655:+:5618833:- 841:1638213:714892:+:923321:- 648:11588613:undef:undef:undef:undef 874:23241017:undef:undef:undef:undef 933:12110426:4646873:+:7463553:- 197:574608277:297512915:+:277095362:- 450:885355929:undef:undef:undef:undef 619:814593211:327679660:+:486913551:- 650:4156795794:undef:undef:undef:undef 701:2471540985:1815754076:+:655786909:- 813:5143260312:undef:undef:undef:undef 301:97232678386:15182511243:+:82050167143:- 804:76241122652:undef:undef:undef:undef 476:50715793663:33775013847:+:16940779816:- 407:417193419964:129155702495:+:288037717469:- 577:795565949538:42742711327:+:752823238211:- 113:344037305215:225298766247:+:118738538968:- 909:1781264483287:662340368923:+:1118924114364:- 815:7913809756884:4864808206379:+:3049001550505:- 675:7474109839958:1140493797801:+:6333616042157:- 932:13929482409261:941585184317:+:12987897224944:- 924:15097021630041:undef:undef:undef:undef 499:69768376838141:61239577264741:+:8528799573400:- 722:348476274304903:313242523578784:+:35233750726119:- 854:570193568728738:undef:undef:undef:undef 974:631143898362428:undef:undef:undef:undef 754:5981951447667815:2657763574229069:+:3324187873438746:- 175:7994366069894641:5207758468388509:+:2786607601506132:- 955:8179320935952497:7554095356555081:+:625225579397416:- 880:90993972189730180:undef:undef:undef:undef 332:60642153726739477:22466822013219746:+:38175331713519731:- 146:70480374924497094:undef:undef:undef:undef 785:477376881780158621:11554344909328680:+:465822536870829941:- 509:162367878429460773:115475779943938703:+:46892098485522070:- 277:415929677871336479:252260598853373749:+:163669079017962730:- 116:1152802064631144665:109317437163298201:+:1043484627467846464:- 414:3669698500253122270:undef:undef:undef:undef 272:6975835460709376364:undef:undef:undef:undef 584:76202968713931261880:undef:undef:undef:undef 113:65885331225240062100:46644482283355796177:+:19240848941884265923:- 610:93003648713173191624:undef:undef:undef:undef 194:145142945088276683997:117461043189997110245:+:27681901898279573752:- 563:486532793763280035361:366411908624566136755:+:120120885138713898606:- 738:587662254685605130728:undef:undef:undef:undef 708:8269459575943308522945:undef:undef:undef:undef 784:8119601286270879363659:3614465368505786859588:+:4505135917765092504071:- 174:4176304658042170923312:undef:undef:undef:undef 600:50583901482508562794984:undef:undef:undef:undef 484:87546738364851249507102:undef:undef:undef:undef 584:52635317924212427610338:undef:undef:undef:undef 479:702282439563863762476945:313754576339596754008489:+:388527863224267008468456:- 666:482137212775320246977754:undef:undef:undef:undef 642:591902125029057638793071:166875832757413446451006:+:425026292271644192342065:- 250:1013925362727886106592930:undef:undef:undef:undef 182:6031034047937231309336424:undef:undef:undef:undef 449:7224623463853020688795424:1946947525893575731278945:+:5277675937959444957516479:- 329:681:296:+:385:- 160:481:478:+:3:- 924:628:undef:undef:undef:undef 966:4261:3939:+:322:- 602:3792:undef:undef:undef:undef 503:2192:1303:+:889:- 840:18943:16079:+:2864:- 636:46667:11520:+:35147:- 565:92522:35535:+:56987:- 879:538061:42849:+:495212:- 402:504269:497997:+:6272:- 355:506944:379851:+:127093:- 335:2007636:1162631:+:845005:- 790:2462861:2428568:+:34293:- 917:9664847:5775721:+:3889126:- 475:72334904:54213107:+:18121797:- 819:59111784:undef:undef:undef:undef 294:81023337:undef:undef:undef:undef 572:497201929:398978471:+:98223458:- 421:314772904:216826941:+:97945963:- 765:505227632:450412085:+:54815547:- 237:5278294795:3652490913:+:1625803882:- 847:3110199153:2173834591:+:936364562:- 842:9546719867:5748440585:+:3798279282:- 801:14754617256:undef:undef:undef:undef 115:57978141981:7058208589:+:50919933392:- 214:71768884179:43262551678:+:28506332501:- 202:550042438570:undef:undef:undef:undef 461:856614524249:211830923567:+:644783600682:- 895:801644784874:81508017233:+:720136767641:- 963:3683793693096:undef:undef:undef:undef 334:5630552472673:994618550562:+:4635933922111:- 960:8963131336150:undef:undef:undef:undef 317:22868890215137:8079860265285:+:14789029949852:- 845:83064873649555:undef:undef:undef:undef 730:14582563081721:3775485510199:+:10807077571522:- 587:661031387460777:349096644144533:+:311934743316244:- 874:977093718206815:408054012752274:+:569039705454541:- 125:570801727061713:447508554016383:+:123293173045330:- 256:6743588830453320:undef:undef:undef:undef 162:8916030369222247:7870323103696181:+:1045707265526066:- 626:3338443153918406:undef:undef:undef:undef 737:33673341242625817:14712097530699475:+:18961243711926342:- 480:99211735204558346:undef:undef:undef:undef 440:77720969306266697:57760811279884568:+:19960158026382129:- 183:482260407343311656:287248002188092735:+:195012405155218921:- 786:118688797853185388:undef:undef:undef:undef 334:363171309873152983:undef:undef:undef:undef 571:1366803214546890149:428472461302790432:+:938330753244099717:- 117:6884129668418219012:2530064749931482201:+:4354064918486736811:- 385:8434614983431042942:5630379352576046847:+:2804235630854996095:- 542:93375752200055958358:undef:undef:undef:undef 751:68477372401862025252:45681975463825399003:+:22795396938036626249:- 903:89808109291803554851:81652777108051737024:+:8155332183751817827:- 669:737962127669032713396:undef:undef:undef:undef 254:994853266335556274523:646262948603806241324:+:348590317731750033199:- 327:339366039539626505616:undef:undef:undef:undef 145:5078756999763081840786:1716269606816489725507:+:3362487392946592115279:- 575:5593304214000287175400:undef:undef:undef:undef 839:7737339391509936330092:5053709161558337436103:+:2683630229951598893989:- 322:36517404451080131558649:34589466949004472439093:+:1927937502075659119556:- 810:13908484214268344873541:undef:undef:undef:undef 801:21640894049142413495911:21613876703263334328001:+:27017345879079167910:- 915:898597966959467815355730:undef:undef:undef:undef 440:271572327421957489228719:undef:undef:undef:undef 618:786639168038543887861103:31821972817093199347132:+:754817195221450688513971:- 643:1630290425961246373482606:831625598313046361589883:+:798664827648200011892723:- 935:5065034764752521759691908:124594438063431016548571:+:4940440326689090743143337:- 376:9530592457891569296396161:5855231004715299221988067:+:3675361453176270074408094:- 2946:548:undef:undef:undef:undef 9546:582:undef:undef:undef:undef 6294:153:undef:undef:undef:undef 6436:3798:undef:undef:undef:undef 8678:5609:1389:+:4220:- 4332:9737:5599:+:4138:- 6597:54650:29483:+:25167:- 6349:10623:1285:+:9338:- 8892:10489:4302:+:6187:- 3855:989920:undef:undef:undef:undef 9019:913324:1519:+:911805:- 7251:360052:37043:+:323009:- 9964:5492175:4888609:+:603566:- 9417:7462279:undef:undef:undef:undef 1089:1050423:undef:undef:undef:undef 1407:59792572:undef:undef:undef:undef 7163:46140182:33972263:+:12167919:- 8481:30580067:5271555:+:25308512:- 5584:401476541:18046313:+:383430228:- 1165:491274830:undef:undef:undef:undef 6904:560666466:undef:undef:undef:undef 4693:3443998487:847606702:+:2596391785:- 6277:6375048996:3427718713:+:2947330283:- 1715:2942734466:undef:undef:undef:undef 8402:28571614496:undef:undef:undef:undef 7407:66623347625:59157790918:+:7465556707:- 4097:30072612468:undef:undef:undef:undef 2337:355259397238:340513928033:+:14745469205:- 6577:424150081323:416346803257:+:7803278066:- 8560:318232114571:271724126799:+:46507987772:- 3979:1575914452553:1087575040641:+:488339411912:- 4510:3133369785360:undef:undef:undef:undef 8169:9194251869504:undef:undef:undef:undef 1575:99239191800263:32953712578754:+:66285479221509:- 9369:76312182615150:undef:undef:undef:undef 7693:60744018497638:undef:undef:undef:undef 3727:559162992969877:533957899645772:+:25205093324105:- 1260:681065359017028:undef:undef:undef:undef 3976:685441805727949:70854271165540:+:614587534562409:- 2504:9777800420084735:3658865412787299:+:6118935007297436:- 2762:7873030137588740:undef:undef:undef:undef 6635:7120473956972563:5224184961950631:+:1896288995021932:- 6228:92523947758884024:undef:undef:undef:undef 1304:22925758948775355:10355269954623224:+:12570488994152131:- 9088:86212918824513679:68160191654283757:+:18052727170229922:- 2520:185463029536171412:undef:undef:undef:undef 3577:997340379048801521:958584350900134087:+:38756028148667434:- 2514:162930369528348634:undef:undef:undef:undef 6648:9039445301791270496:undef:undef:undef:undef 9344:8136175292609130143:6938910627868381647:+:1197264664740748496:- 4953:9282031734931944828:undef:undef:undef:undef 3404:26167213577484844372:undef:undef:undef:undef 6557:63575943463035229143:31114107453542786384:+:32461836009492442759:- 5223:17950137655576050657:undef:undef:undef:undef 2998:792868168700507108633:593725496575262994957:+:199142672125244113676:- 3279:388960509706685596867:220517715018215469526:+:168442794688470127341:- 5927:732286607095088984945:384119969876603957178:+:348166637218485027767:- 6777:5490119563688280724837:5421260162343511083165:+:68859401344769641672:- 1497:6395281394987040837127:6275663573303916492812:+:119617821683124344315:- 7491:4664361048026575632196:31133100040225441411:+:4633227947986350190785:- 4033:19196592307972606406454:undef:undef:undef:undef 7071:43562844464026628340476:29577883788967874793187:+:13984960675058753547289:- 4100:57686517973164004591283:24664503904135731719151:+:33022014069028272872132:- 1894:487293779128619555993093:313113267792782470772753:+:174180511335837085220340:- 9154:858190558799326056846033:83906549063294387248984:+:774284009736031669597049:- 9225:781770620562905148078069:undef:undef:undef:undef 8061:4216203196128056053943703:undef:undef:undef:undef 5411:4282833094817001580138184:3275247338080346061469563:+:1007585756736655518668621:- 7175:8104779479452384950607078:undef:undef:undef:undef 5951:205:171:+:34:- 6069:424:373:+:51:- 6371:623:190:+:433:- 5082:3488:undef:undef:undef:undef 1678:3946:undef:undef:undef:undef 4793:9662:7755:+:1907:- 5048:92330:undef:undef:undef:undef 8094:69507:undef:undef:undef:undef 4396:99770:undef:undef:undef:undef 1681:501362:133617:+:367745:- 3664:615286:undef:undef:undef:undef 4915:143405:undef:undef:undef:undef 2529:8023778:488597:+:7535181:- 9060:5117142:undef:undef:undef:undef 3287:4585543:4199113:+:386430:- 3059:41109383:undef:undef:undef:undef 6509:68600092:46889201:+:21710891:- 5765:29503680:undef:undef:undef:undef 6410:988541422:undef:undef:undef:undef 5705:492883670:undef:undef:undef:undef 9837:622709937:undef:undef:undef:undef 3655:3592150238:3034900119:+:557250119:- 1952:4255266825:3642700238:+:612566587:- 2461:4785405085:2286727501:+:2498677584:- 5954:78088441558:undef:undef:undef:undef 8762:33007375700:undef:undef:undef:undef 9542:54551528885:6077161518:+:48474367367:- 9293:309538103946:61654474379:+:247883629567:- 2401:520030780193:107428266129:+:412602514064:- 1860:781528831498:undef:undef:undef:undef 7396:3527877963446:undef:undef:undef:undef 7279:8941549468508:211285411263:+:8730264057245:- 9389:6577806996740:1553200352729:+:5024606644011:- 1296:70387974951888:undef:undef:undef:undef 8023:45356649307727:32761034867042:+:12595614440685:- 4902:68896698482573:64525651312422:+:4371047170151:- 7991:275848275979438:248094301021677:+:27753974957761:- 5367:165924172274849:66808670819070:+:99115501455779:- 9289:888834843323870:73296101839389:+:815538741484481:- 4115:6569146182612215:undef:undef:undef:undef 7306:9909468711518116:undef:undef:undef:undef 4152:6781397856986327:6547838152374322:+:233559704612005:- 3568:47113880300487202:undef:undef:undef:undef 5809:87547803467030994:75611521775537011:+:11936281691493983:- 1787:13054054533808260:9832544713209803:+:3221509820598457:- 9514:605665049151906828:undef:undef:undef:undef 4853:713499000242966379:399459465003119648:+:314039535239846731:- 6452:427694734457904864:undef:undef:undef:undef 4239:8304859947096906141:undef:undef:undef:undef 3544:1969023207138603883:1313978522822459984:+:655044684316143899:- 6911:5031564641665892104:4523384621425291223:+:508180020240600881:- 9912:75163604212370372554:undef:undef:undef:undef 7130:11987974730099950013:11118720461451748869:+:869254268648201144:- 4939:23055485714643712760:8827277482565551899:+:14228208232078160861:- 1121:921401851199540927726:169320946785999492517:+:752080904413541435209:- 9040:872620802022659606426:undef:undef:undef:undef 8213:625934818692447812846:529068490364418935441:+:96866328328028877405:- 4433:4991433139403445570483:2540192457138320145953:+:2451240682265125424530:- 9508:6901625217196528232233:3753502734341948621043:+:3148122482854579611190:- 8595:2091945626639426717509:90298060207472636672:+:2001647566431954080837:- 6813:47447476046608773092632:1476422269467350637845:+:45971053777141422454787:- 3152:95873769198955185999171:50278978580543439865682:+:45594790618411746133489:- 2460:65845398973149003429799:13945306042687248287368:+:51900092930461755142431:- 3269:430088193330985030042478:37496217528091383775499:+:392591975802893646266979:- 5070:416813042846919276362941:105970811090666459020085:+:310842231756252817342856:- 5412:756139458478911579084896:undef:undef:undef:undef 2908:5303962871253938770973780:undef:undef:undef:undef 1379:7714259532129843754371131:2791454319458152308507030:+:4922805212671691445864101:- 2517:8085066861806460985962354:undef:undef:undef:undef 1532:417:371:+:46:- 2057:951:362:+:589:- 2802:257:185:+:72:- 8893:1116:829:+:287:- 4051:3111:1486:+:1625:- 1660:5374:undef:undef:undef:undef 7951:83731:73158:+:10573:- 4076:13977:1862:+:12115:- 3504:20428:undef:undef:undef:undef 1463:331516:330383:+:1133:- 7658:131185:43597:+:87588:- 8748:562512:undef:undef:undef:undef 3593:2809956:452033:+:2357923:- 2453:4643104:3638013:+:1005091:- 2136:4937753:349064:+:4588689:- 4575:12331589:4288428:+:8043161:- 2609:58309024:14728113:+:43580911:- 8325:89728602:undef:undef:undef:undef 5146:730730138:undef:undef:undef:undef 3767:641508965:50237628:+:591271337:- 6344:157295950:undef:undef:undef:undef 4106:4244559109:962417080:+:3282142029:- 8341:7745917746:4524410893:+:3221506853:- 3341:2504453707:1836549411:+:667904296:- 4654:23766898879:117455667:+:23649443212:- 4312:83083937372:undef:undef:undef:undef 6336:62487818477:897473403:+:61590345074:- 2767:105927028089:92336823907:+:13590204182:- 1984:976324738344:undef:undef:undef:undef 4735:414765902842:151715848727:+:263050054115:- 9389:3721921612503:2853777152882:+:868144459621:- 6021:1665187728854:1191711330947:+:473476397907:- 1934:8103149503392:undef:undef:undef:undef 1612:25738933245053:20230290584046:+:5508642661007:- 3540:63939152728664:undef:undef:undef:undef 4766:89000380393717:86591431784655:+:2408948609062:- 6562:806718572406385:57166128645073:+:749552443761312:- 5363:647761086861909:576982045858538:+:70779041003371:- 9985:312364388137023:44359809952759:+:268004578184264:- 9865:3083352379674899:2746105829480351:+:337246550194548:- 3486:5262233541080355:undef:undef:undef:undef 9897:2795886360449468:2246992029000209:+:548894331449259:- 1543:71685648832402483:45204236107535720:+:26481412724866763:- 5059:12149284758431196:10636327771316815:+:1512956987114381:- 9027:98514417733518139:9974762136749261:+:88539655596768878:- 1590:599286719846714674:undef:undef:undef:undef 2067:720695304468239807:500337572284433538:+:220357732183806269:- 9965:268446875052372025:undef:undef:undef:undef 7586:4753743199700456611:3858264814204549348:+:895478385495907263:- 9659:8337920883000826883:606849402707276250:+:7731071480293550633:- 4760:7642033057354407992:undef:undef:undef:undef 2094:89134575223756225143:undef:undef:undef:undef 3687:57937973605915838098:50285195426886542423:+:7652778179029295675:- 9497:73534290861324791607:57460037115077527484:+:16074253746247264123:- 5009:265940345835402303529:234350306751340740223:+:31590039084061563306:- 5625:724160736203734346852:622713863291993428573:+:101446872911740918279:- 7897:768215104928952954817:722007408988563863575:+:46207695940389091242:- 4290:2763058195260869468638:undef:undef:undef:undef 8843:5262665301247273597054:2180527610965736792899:+:3082137690281536804155:- 2817:4746510420518800349358:undef:undef:undef:undef 3575:89260603841583214022691:18451352794106292353222:+:70809251047476921669469:- 1990:83046096926822537014298:undef:undef:undef:undef 5184:94679474023243818818404:undef:undef:undef:undef 6657:650530555659617020407876:undef:undef:undef:undef 8387:775792776185367363844787:492836999107623383160251:+:282955777077743980684536:- 1221:574277496439098265859120:28690358134959045223101:+:545587138304139220636019:- 9454:8404675808910978281111357:7889940533539764358458144:+:514735275371213922653213:- 1843:7644754921502272571178185:1385430354737796548439237:+:6259324566764476022738948:- 3570:5516588796955727027671455:undef:undef:undef:undef 98949:410:59:+:351:- 13266:325:11:+:314:- 98861:589:233:+:356:- 48974:7575:4499:+:3076:- 91546:8701:undef:undef:undef:undef 99273:7134:undef:undef:undef:undef 22509:43674:undef:undef:undef:undef 37299:79911:undef:undef:undef:undef 47076:84931:72773:+:12158:- 42659:475702:169109:+:306593:- 77892:898781:259704:+:639077:- 73077:561447:undef:undef:undef:undef 27369:1403052:undef:undef:undef:undef 83396:2539666:undef:undef:undef:undef 85442:8955594:undef:undef:undef:undef 37950:52345351:31447211:+:20898140:- 72300:76337550:undef:undef:undef:undef 44240:64947945:undef:undef:undef:undef 56331:182321412:undef:undef:undef:undef 21225:238197444:undef:undef:undef:undef 91326:886827301:765746233:+:121081068:- 27120:5634335935:undef:undef:undef:undef 54438:1056390251:931361367:+:125028884:- 53176:4885961849:2775504919:+:2110456930:- 81663:84970728505:14283006872:+:70687721633:- 31590:19301069967:undef:undef:undef:undef 77888:82857346995:7290229547:+:75567117448:- 34574:295082156509:257776548072:+:37305608437:- 99202:196413828823:137338412898:+:59075415925:- 45629:890530580343:775986672389:+:114543907954:- 51796:4593971131457:3315276216749:+:1278694914708:- 36264:8469175155749:2952674318722:+:5516500837027:- 41163:2034818270362:939428282923:+:1095389987439:- 87168:21499737076344:undef:undef:undef:undef 67323:83794068985826:81674417462827:+:2119651522999:- 35696:71793903618027:undef:undef:undef:undef 38329:576830177680735:81417497488919:+:495412680191816:- 98430:153932887634885:undef:undef:undef:undef 44287:961212849119997:329252352183493:+:631960496936504:- 80114:2073377669411928:undef:undef:undef:undef 21985:1142628526143325:undef:undef:undef:undef 95702:3519719893062649:2345732111130685:+:1173987781931964:- 36683:36240802656077687:36121261257571965:+:119541398505722:- 57437:63961527822744327:56295543221672336:+:7665984601071991:- 82822:31431824267977187:17745534651980697:+:13686289615996490:- 80688:582438795398887924:undef:undef:undef:undef 42150:505083778882003806:undef:undef:undef:undef 28531:552597772997540668:275049629327330799:+:277548143670209869:- 95246:2285477974569930952:undef:undef:undef:undef 72972:5744301120023747275:389581568861995358:+:5354719551161751917:- 55924:9699425614779400010:undef:undef:undef:undef 38810:71247342879162927174:undef:undef:undef:undef 73531:23761524533664966739:12588298652390403766:+:11173225881274562973:- 87047:64580830908918491764:31801869299468001763:+:32778961609450490001:- 88987:188928485915225434897:177983894627812811515:+:10944591287412623382:- 13937:422277203317703208772:undef:undef:undef:undef 71839:958335971287091697434:636613945374554072091:+:321722025912537625343:- 14192:8193234122196675355090:undef:undef:undef:undef 12907:6092668016938878540380:2807243875163516749023:+:3285424141775361791357:- 40341:1713352207648418574849:undef:undef:undef:undef 74188:29876754952189326524545:19276845706804961621157:+:10599909245384364903388:- 83314:41298418475555864250535:21018998471073232731779:+:20279420004482631518756:- 13233:70540662004411377734367:undef:undef:undef:undef 73726:783349644379794061043009:436406694295245659186983:+:346942950084548401856026:- 44560:574722775454549706194083:458810890737089243681376:+:115911884717460462512707:- 14607:101779793656446637398062:47374602387223980808477:+:54405191269222656589585:- 71137:4450203389539795390387819:undef:undef:undef:undef 80078:6660533485970888552376949:831672548343151859876834:+:5828860937627736692500115:- 13608:9440367365941748799297120:undef:undef:undef:undef 50921:401:334:+:67:- 97877:451:406:+:45:- 19409:830:549:+:281:- 16269:3792:undef:undef:undef:undef 70989:2774:2075:+:699:- 65551:3621:1495:+:2126:- 83741:83707:2462:+:81245:- 31113:54174:undef:undef:undef:undef 66345:51476:4961:+:46515:- 48935:342063:185225:+:156838:- 42414:875110:undef:undef:undef:undef 12980:776423:402747:+:373676:- 60246:4483256:undef:undef:undef:undef 64256:3644966:undef:undef:undef:undef 93314:9976772:undef:undef:undef:undef 51611:45112350:14680241:+:30432109:- 43979:87221209:29022833:+:58198376:- 54687:55376443:20701739:+:34674704:- 70901:189511063:135820583:+:53690480:- 54163:378435914:343997079:+:34438835:- 78792:595879530:undef:undef:undef:undef 10294:7336496613:6104244559:+:1232252054:- 56674:5083165310:undef:undef:undef:undef 34634:9572355226:undef:undef:undef:undef 21086:61069971786:undef:undef:undef:undef 58811:81915555957:31578947555:+:50336608402:- 98975:79653570706:53279969639:+:26373601067:- 73167:689028842678:328773558511:+:360255284167:- 15032:304619675359:57572145935:+:247047529424:- 62170:562667586156:undef:undef:undef:undef 86350:5600213062628:undef:undef:undef:undef 57494:9614681701251:8800442211854:+:814239489397:- 65855:8108371810902:4947393456923:+:3160978353979:- 44721:78314548293886:13305470314549:+:65009077979337:- 14231:37307879463486:13220689771229:+:24087189692257:- 58181:40167230101095:20870307591071:+:19296922510024:- 39497:178283607402271:144917214361848:+:33366393040423:- 89106:613175635644377:116729494169142:+:496446141475235:- 24062:687079804792199:260160589371695:+:426919215420504:- 36662:3412808637818018:undef:undef:undef:undef 38271:4993604904186131:4843813719476934:+:149791184709197:- 61833:3395224137472925:2258485986421472:+:1136738151051453:- 42304:95477492302360853:36984438028526553:+:58493054273834300:- 85694:35600816286320844:undef:undef:undef:undef 56273:35448665629382790:25707259177038407:+:9741406452344383:- 56222:410518276617429503:225382726412262041:+:185135550205167462:- 61680:646852640607786873:undef:undef:undef:undef 56894:101601632777376973:56090373042933057:+:45511259734443916:- 24811:4362474477594006202:2954266098606847455:+:1408208378987158747:- 47260:7683273992890237308:undef:undef:undef:undef 40228:7165125207818969985:573345382419440797:+:6591779825399529188:- 80803:84606033017234785607:45169358295242644658:+:39436674721992140949:- 35633:67853495818823395226:undef:undef:undef:undef 44976:89501753171236978693:23280883367802859608:+:66220869803434119085:- 20341:525528354368398409736:391620805049711572429:+:133907549318686837307:- 17454:448296269669821284323:6498164101436048180:+:441798105568385236143:- 18266:855807357200009516963:484876291452036488068:+:370931065747973028895:- 74379:2064661858057186460708:1503575931425880447851:+:561085926631306012857:- 66166:4921748401007848145616:undef:undef:undef:undef 45793:9514243759286877591576:6189982406054068178233:+:3324261353232809413343:- 18732:94295295764660778831004:undef:undef:undef:undef 82599:83255979511964457472937:67862508415380707130600:+:15393471096583750342337:- 97795:87545737247545873294574:65770978693332408168369:+:21774758554213465126205:- 54745:550261459492542921785157:10976080258760742909661:+:539285379233782178875496:- 42622:681641273645333525479165:337782021976047332167553:+:343859251669286193311612:- 42088:741827036299760514271235:570171136600954021957807:+:171655899698806492313428:- 67498:6550918562528418654558104:undef:undef:undef:undef 56270:8864972916949669226442287:7835741211486150672037676:+:1029231705463518554404611:- 52707:7920325982802298747009841:1379636724687572899165146:+:6540689258114725847844695:- 83286:303:undef:undef:undef:undef 62219:403:326:+:77:- 60122:999:752:+:247:- 79471:5910:1741:+:4169:- 28644:8905:7834:+:1071:- 40773:6832:5085:+:1747:- 57803:67038:21683:+:45355:- 28648:62012:undef:undef:undef:undef 86481:90641:40113:+:50528:- 44257:164383:26:+:164357:- 43288:441496:undef:undef:undef:undef 15300:173438:undef:undef:undef:undef 64389:2402832:undef:undef:undef:undef 49675:1431753:310792:+:1120961:- 27031:2443360:1937351:+:506009:- 15690:68340859:20040554:+:48300305:- 77840:58531451:442896:+:58088555:- 13208:31527760:undef:undef:undef:undef 17562:495099648:undef:undef:undef:undef 93813:548117276:192831085:+:355286191:- 55647:398926417:318807064:+:80119353:- 53915:1711432114:1161513725:+:549918389:- 78834:6272337255:undef:undef:undef:undef 79562:3645096056:undef:undef:undef:undef 95905:23848163250:undef:undef:undef:undef 77158:35981680866:undef:undef:undef:undef 75958:66383765408:undef:undef:undef:undef 22357:539401373296:236948646381:+:302452726915:- 25771:735738107887:438513730051:+:297224377836:- 83354:666169508427:662517140630:+:3652367797:- 69929:5323662781011:1777320300383:+:3546342480628:- 14762:4661504054560:undef:undef:undef:undef 75358:4516377948158:undef:undef:undef:undef 90004:29675392756153:23274695014106:+:6400697742047:- 88499:56864787868687:2552197622735:+:54312590245952:- 11845:42409240189444:38904077999029:+:3505162190415:- 95443:801932046386432:45153471886683:+:756778574499749:- 83076:612586904946862:undef:undef:undef:undef 13643:518127002856406:370622401295585:+:147504601560821:- 75247:2235081278093313:661699544594266:+:1573381733499047:- 43709:2933526052767664:1612301731122597:+:1321224321645067:- 39412:7098306893331081:4543514361059149:+:2554792532271932:- 57928:66909947699599886:undef:undef:undef:undef 91436:24155884090393154:undef:undef:undef:undef 74343:86765416480816093:25222111235313568:+:61543305245502525:- 78742:857311748410562755:211077987178831883:+:646233761231730872:- 32733:746784599719552847:608004447576637747:+:138780152142915100:- 56396:418839627671856927:295503403529248799:+:123336224142608128:- 19339:6708040388345093314:3615730544914900083:+:3092309843430193231:- 52591:7788956835575156606:209271472469960569:+:7579685363105196037:- 39431:6266184931331947233:1341879880301462363:+:4924305051030484870:- 41048:47417513058902087166:undef:undef:undef:undef 21660:51830240670458603260:undef:undef:undef:undef 44649:51877712731989144474:undef:undef:undef:undef 73019:331734891948663182211:76656251548909104116:+:255078640399754078095:- 34440:864789807931877675606:undef:undef:undef:undef 64259:703927794690955719008:168163145649650029451:+:535764649041305689557:- 60359:3488776244569618305291:1284094386079269707423:+:2204681858490348597868:- 52349:3248466374539030291737:1839901965750678105599:+:1408564408788352186138:- 74472:9121556428179600114232:undef:undef:undef:undef 17120:82426360062482705699251:69662792274769992334256:+:12763567787712713364995:- 81472:39443110493482443636332:undef:undef:undef:undef 19672:83904640536249669184777:15520993641287746348282:+:68383646894961922836495:- 68032:119800381755879704745542:undef:undef:undef:undef 14671:954262899852278932582327:402168053287890439653502:+:552094846564388492928825:- 36253:443839688788582885696215:76811579937096765091387:+:367028108851486120604828:- 47442:7740282115972000012107365:6537358545273851618505333:+:1202923570698148393602032:- 57997:8939664203212718558761393:144121006776279667093848:+:8795543196436438891667545:- 17258:7760906177749602734444441:4751969844725927227655256:+:3008936333023675506789185:- 382831:106:31:+:75:- 717117:103:10:+:93:- 419761:407:342:+:65:- 684662:4655:3198:+:1457:- 556811:2962:1843:+:1119:- 626426:7825:7476:+:349:- 112655:18932:16467:+:2465:- 157265:49416:undef:undef:undef:undef 291654:90355:26274:+:64081:- 807757:623431:443710:+:179721:- 442546:568999:43215:+:525784:- 289219:924202:640281:+:283921:- 833993:2659795:1234522:+:1425273:- 999098:6219865:628207:+:5591658:- 505319:2755392:2469143:+:286249:- 764906:12242940:undef:undef:undef:undef 918854:73975799:65188187:+:8787612:- 936006:30713686:undef:undef:undef:undef 389728:795593461:758821597:+:36771864:- 410283:741247715:651515627:+:89732088:- 863639:585548132:571731827:+:13816305:- 125309:6615586655:286091694:+:6329494961:- 480278:4014177658:undef:undef:undef:undef 925749:4780108001:4121162366:+:658945635:- 475705:24893120028:14124512401:+:10768607627:- 473425:87402742205:undef:undef:undef:undef 162850:42138962711:8101496982:+:34037465729:- 369524:695913039381:20096361923:+:675816677458:- 444258:292213659559:20466098567:+:271747560992:- 884807:457111564133:undef:undef:undef:undef 281219:1590542162352:961144031675:+:629398130677:- 804856:2407803162606:undef:undef:undef:undef 822000:3350634512904:undef:undef:undef:undef 598343:67175827791178:58266885156747:+:8908942634431:- 937636:75374900754845:66856561699511:+:8518339055334:- 280101:27516849888005:2272956383086:+:25243893504919:- 765769:444946424695660:378358060297849:+:66588364397811:- 487005:487216452554724:undef:undef:undef:undef 855715:384585362270430:undef:undef:undef:undef 698372:7908658805163105:3462498457802783:+:4446160347360322:- 632229:2511136767015791:609202751199510:+:1901934015816281:- 208970:8888361715251666:undef:undef:undef:undef 401349:36108675628456296:undef:undef:undef:undef 925300:55356712541430465:undef:undef:undef:undef 303003:41761421281752209:40610443802572423:+:1150977479179786:- 635914:981321060783996848:undef:undef:undef:undef 190581:427930897683537197:221145120715371477:+:206785776968165720:- 549281:748948330472277438:663033772526420579:+:85914557945856859:- 354269:5893703143293242918:3442303672061807981:+:2451399471231434937:- 710612:6918684676947796782:undef:undef:undef:undef 853751:7927181203332586141:3677177121636871590:+:4250004081695714551:- 592571:66770693307736120675:undef:undef:undef:undef 745402:59943273086564553698:undef:undef:undef:undef 773173:96349752291182430150:86164883892055274887:+:10184868399127155263:- 530230:287836166439751422245:undef:undef:undef:undef 454814:922181329183811692864:undef:undef:undef:undef 518268:574756602784127806156:undef:undef:undef:undef 247355:7418956658440683711794:921569656110644408759:+:6497387002330039303035:- 823678:2873948921091979292348:undef:undef:undef:undef 283466:1575257888013435070365:216211322165405086616:+:1359046565848029983749:- 408360:21006006664466201784742:undef:undef:undef:undef 213820:41933472515487093544690:undef:undef:undef:undef 273073:25637866891571493627319:25536938909279434889731:+:100927982292058737588:- 805921:583528496246165735568236:236979959866886837238733:+:346548536379278898329503:- 704630:708614124591982597303827:252969299062968432232499:+:455644825529014165071328:- 477264:311205711857391112764521:11178298632143333346161:+:300027413225247779418360:- 349453:6763935493186266387995961:5787300886587669600619369:+:976634606598596787376592:- 643778:4147884835388304212949000:undef:undef:undef:undef 572752:9821905182359163933880667:5602470606793029472376784:+:4219434575566134461503883:- 632767:177:22:+:155:- 742290:747:undef:undef:undef:undef 746580:605:undef:undef:undef:undef 514793:4052:3173:+:879:- 768150:2466:undef:undef:undef:undef 740768:3437:undef:undef:undef:undef 694815:56911:29751:+:27160:- 715166:51131:23805:+:27326:- 808376:62553:19547:+:43006:- 147052:984361:738659:+:245702:- 498692:851983:88690:+:763293:- 494188:397185:350032:+:47153:- 272826:2788180:undef:undef:undef:undef 773723:7532270:564957:+:6967313:- 395098:7545730:undef:undef:undef:undef 699345:89927315:undef:undef:undef:undef 224792:67285618:undef:undef:undef:undef 697669:81520153:71513539:+:10006614:- 324805:481692647:421692582:+:60000065:- 428617:402652709:152198754:+:250453955:- 514180:510342810:undef:undef:undef:undef 395725:3398841176:2718806685:+:680034491:- 806085:5698228763:410003:+:5697818760:- 758866:4322509093:3687865242:+:634643851:- 538156:77259565152:undef:undef:undef:undef 861626:99725953338:undef:undef:undef:undef 941426:32855708545:11253729141:+:21601979404:- 512447:458023172924:315051535387:+:142971637537:- 307841:665601770687:110657232214:+:554944538473:- 941029:327506810106:36185080963:+:291321729143:- 718771:3597435030808:1809635880947:+:1787799149861:- 298877:6228183425854:2054437603389:+:4173745822465:- 657362:8896035441363:3819304751975:+:5076730689388:- 983132:15337674725688:undef:undef:undef:undef 572519:51599947378070:42955598189789:+:8644349188281:- 783869:46509794992104:4158041615693:+:42351753376411:- 168841:686165777373698:598973171587469:+:87192605786229:- 559479:682137073335004:300596599238539:+:381540474096465:- 942932:437113917060902:undef:undef:undef:undef 338412:3686202417377629:2487433949830201:+:1198768467547428:- 306985:8677250419071127:8352671476900683:+:324578942170444:- 322580:5187869531140500:undef:undef:undef:undef 591139:57010140644545818:1961324206807753:+:55048816437738065:- 122341:67475431753406564:53020783553757393:+:14454648199649171:- 273725:19134232963006239:12319796699728496:+:6814436263277743:- 620624:826910793389445439:345313174179453558:+:481597619209991881:- 944479:710937883202665508:505322096958990307:+:205615786243675201:- 451792:937349094102674468:undef:undef:undef:undef 147549:8477810633609011265:6028278458317959694:+:2449532175291051571:- 616918:8411386103591141220:undef:undef:undef:undef 942364:4699569402055856939:3771772934590336405:+:927796467465520534:- 162166:27766221702807353760:undef:undef:undef:undef 637904:37231375489384578801:17213464532214448682:+:20017910957170130119:- 954541:76734375969851776738:7952619752917398747:+:68781756216934377991:- 624837:272605072424432719366:10291017414697783557:+:262314055009734935809:- 121192:122487450191181185805:75788553926712188758:+:46698896264468997047:- 268360:981854519563685868649:56604081354038545513:+:925250438209647323136:- 916836:6637592345059956856520:undef:undef:undef:undef 441129:2647896397994030451970:undef:undef:undef:undef 823605:2802945094980419491281:undef:undef:undef:undef 139047:19381283931542615172863:11766735182585488990505:+:7614548748957126182358:- 120641:50372794116225478202470:31694847156227514687321:+:18677946959997963515149:- 953271:47209627946576472296148:undef:undef:undef:undef 775455:392255910173754346925186:85612860244627669513693:+:306643049929126677411493:- 140559:135415313275231958248312:78792118585183771265719:+:56623194690048186982593:- 215908:497422538654129493080626:undef:undef:undef:undef 577226:4521763030457479977050766:undef:undef:undef:undef 336483:2232566503385192143558853:1124361370699712245359616:+:1108205132685479898199237:- 981167:6843711597542215307891114:4611346410900401562549859:+:2232365186641813745341255:- 384131:622:453:+:169:- 181105:423:319:+:104:- 570259:281:23:+:258:- 329944:7089:5047:+:2042:- 561533:4250:3947:+:303:- 405819:1903:448:+:1455:- 336386:76290:undef:undef:undef:undef 867738:34849:1659:+:33190:- 714000:98618:undef:undef:undef:undef 619328:981451:311307:+:670144:- 786505:117946:undef:undef:undef:undef 435392:830764:undef:undef:undef:undef 651818:8574777:5674496:+:2900281:- 480257:3059661:2685206:+:374455:- 353610:5297044:undef:undef:undef:undef 910137:56231142:undef:undef:undef:undef 355928:58325778:undef:undef:undef:undef 724522:69346199:44096622:+:25249577:- 499739:330788839:172319791:+:158469048:- 327111:939191164:684228431:+:254962733:- 472957:732312861:30862129:+:701450732:- 315354:7945494854:undef:undef:undef:undef 171166:5793356868:undef:undef:undef:undef 673466:5926567000:undef:undef:undef:undef 542169:34068655996:14872302481:+:19196353515:- 488992:55628620336:undef:undef:undef:undef 529192:71983604434:undef:undef:undef:undef 667352:547530454020:undef:undef:undef:undef 538746:688567179180:undef:undef:undef:undef 691318:310492895010:undef:undef:undef:undef 971750:4971972745075:undef:undef:undef:undef 177937:1728934359308:1206222653517:+:522711705791:- 953866:3223373361009:2536471972639:+:686901388370:- 649883:25735972780719:14691272721566:+:11044700059153:- 487790:51361382665588:undef:undef:undef:undef 805205:60948831728458:5404747153715:+:55544084574743:- 825454:803153870451243:680008099016782:+:123145771434461:- 501634:295744879767085:undef:undef:undef:undef 723977:656459776539322:361057093443225:+:295402683096097:- 482314:7295333069242471:1144969516419692:+:6150363552822779:- 540249:4402023467326955:1658366105693214:+:2743657361633741:- 893695:4825358999012802:3596130116908447:+:1229228882104355:- 101240:16095502213089530:undef:undef:undef:undef 609077:17767089769624938:5993257331516477:+:11773832438108461:- 703613:78880725431326108:62187266924516805:+:16693458506809303:- 605705:347210793890707535:undef:undef:undef:undef 238251:240645097627324140:undef:undef:undef:undef 174861:876902513002318198:153630074664024671:+:723272438338293527:- 517381:7043969400121315143:39713980103934772:+:7004255420017380371:- 771785:4487637387894239639:3695517362608124501:+:792120025286115138:- 447938:7834219846849074810:undef:undef:undef:undef 209346:19255366498759217994:undef:undef:undef:undef 317635:58737738345751323480:undef:undef:undef:undef 760038:46133404113582846836:undef:undef:undef:undef 822994:802960977149957178156:undef:undef:undef:undef 241095:362329256848889171494:87752826216485151549:+:274576430632404019945:- 139743:633877051500154062148:206089535489133621431:+:427787516011020440717:- 887511:7138089737316897145151:4236747582041654894125:+:2901342155275242251026:- 282482:1626761793485259811961:978578285630835749064:+:648183507854424062897:- 674434:7454296133153187786883:3122345988973533496578:+:4331950144179654290305:- 512730:35662057354117934011677:undef:undef:undef:undef 909680:42958046596782067778330:undef:undef:undef:undef 215104:21641846102796689784700:undef:undef:undef:undef 858399:385948280960999152058926:132497673940625236188007:+:253450607020373915870919:- 749618:151346969987709476166566:undef:undef:undef:undef 775387:985944457205300862827049:629593437408311280197449:+:356351019796989582629600:- 634377:9780181173730606721674489:4342718216046817939156301:+:5437462957683788782518188:- 396769:4651478410441148680581255:133752176164778662891384:+:4517726234276370017689871:- 580645:2030126568350526726340113:1174794871183466290528789:+:855331697167060435811324:- 5655726:650:undef:undef:undef:undef 3608982:289:52:+:237:- 3994088:988:undef:undef:undef:undef 7408347:5829:undef:undef:undef:undef 6570293:5046:4895:+:151:- 2890506:9077:4893:+:4184:- 6086931:77051:63685:+:13366:- 9725532:81184:undef:undef:undef:undef 3784159:39899:19579:+:20320:- 2339493:174015:undef:undef:undef:undef 6826489:275682:220681:+:55001:- 2169905:760478:194359:+:566119:- 7222334:6672310:undef:undef:undef:undef 8569540:8430670:undef:undef:undef:undef 6237287:1702120:undef:undef:undef:undef 1349592:35915708:undef:undef:undef:undef 6392461:75985359:69538849:+:6446510:- 1446994:73189513:47624214:+:25565299:- 7813298:350360055:33907847:+:316452208:- 9584516:362140747:99892152:+:262248595:- 5570997:148703918:123670023:+:25033895:- 6112527:8040634747:290170592:+:7750464155:- 3461395:8025326446:639087155:+:7386239291:- 4897564:8970391267:1434894011:+:7535497256:- 9607393:32750238212:28034434321:+:4715803891:- 3832850:78792881419:undef:undef:undef:undef 8851804:22858007922:undef:undef:undef:undef 1926904:516326307131:423786215980:+:92540091151:- 3263965:248639556344:137406136765:+:111233419579:- 7603082:530885166191:87600135089:+:443285031102:- 4656704:1435763396658:undef:undef:undef:undef 7148411:6170426462326:5267412128309:+:903014334017:- 3370569:7383771232117:1931141415391:+:5452629816726:- 7335959:18179577148530:undef:undef:undef:undef 4618936:79311665961500:undef:undef:undef:undef 5696694:83331248251003:48001187101587:+:35330061149416:- 2580167:497964663022384:240219396188711:+:257745266833673:- 5051426:589883351073091:313902297734522:+:275981053338569:- 2013014:429904889194083:317067920484407:+:112836968709676:- 4325378:9363324821601336:undef:undef:undef:undef 9951937:9472111213174491:5831893583579347:+:3640217629595144:- 2421719:3874308727618692:2231865566641979:+:1642443160976713:- 3441677:43388202854410561:24971926384476198:+:18416276469934363:- 5341718:48133956794968491:15711141966571814:+:32422814828396677:- 1084162:52310224670223110:undef:undef:undef:undef 8615182:454607533478095087:416897856881371116:+:37709676596723971:- 6803890:848484711729563233:791753912200782239:+:56730799528780994:- 5493160:854968170156028301:558889627922417266:+:296078542233611035:- 2399932:6737630109030661791:3929904292027376668:+:2807725817003285123:- 3278186:5488017662014808795:3320998121828418196:+:2167019540186390599:- 2489290:8830356345749585901:3752975054234879683:+:5077381291514706218:- 4328469:40513947193980502625:36865597299144041004:+:3648349894836461621:- 9173561:98904160883542453015:19208950310268847476:+:79695210573273605539:- 9826877:90940744520365774570:78006721019280311133:+:12934023501085463437:- 3769503:127891799836486803766:55249179630612139173:+:72642620205874664593:- 6521895:240621606922309617823:86451695485634236377:+:154169911436675381446:- 2622185:738592398848526776969:636218095841266628964:+:102374303007260148005:- 9815218:7848804102470473986906:undef:undef:undef:undef 3703032:8465216333795486974630:undef:undef:undef:undef 8496388:5415092488122079939709:3682290399540579299418:+:1732802088581500640291:- 8007665:19690434466885834488861:6482289419367856225613:+:13208145047517978263248:- 7422032:39714283117701951853164:undef:undef:undef:undef 8439818:62331767931472602549127:31523309711269149029452:+:30808458220203453519675:- 9210966:223916956320044777640909:undef:undef:undef:undef 2026494:739643382110251162682367:undef:undef:undef:undef 6855455:307340164166749910577130:undef:undef:undef:undef 8977941:7108747225126491549407356:4383611100263026771996661:+:2725136124863464777410695:- 7889075:3965408073830288016838065:undef:undef:undef:undef 2525554:1897650533385450917294537:1637642278474554210721833:+:260008254910896706572704:- 5584060:299:14:+:285:- 6799080:658:undef:undef:undef:undef 7990684:358:undef:undef:undef:undef 5335427:1930:183:+:1747:- 9523579:4713:4642:+:71:- 6177948:9370:undef:undef:undef:undef 1119747:22709:7601:+:15108:- 7600932:81364:undef:undef:undef:undef 8958647:92225:56283:+:35942:- 8029198:716576:undef:undef:undef:undef 3641727:184417:179614:+:4803:- 3652069:825338:810557:+:14781:- 5128081:2848667:1763517:+:1085150:- 7750798:8077812:undef:undef:undef:undef 4455239:7339175:5178109:+:2161066:- 3093378:96932285:24946657:+:71985628:- 3825375:94728039:undef:undef:undef:undef 5134480:55790850:undef:undef:undef:undef 5843118:950902156:undef:undef:undef:undef 3543179:948720653:792525692:+:156194961:- 8278923:856949252:505624635:+:351324617:- 4948912:8043341398:undef:undef:undef:undef 4717992:7074562270:undef:undef:undef:undef 4439344:5053238197:undef:undef:undef:undef 6478431:33174024118:32766110109:+:407914009:- 8260320:41943574978:undef:undef:undef:undef 4469287:74392333598:30916793407:+:43475540191:- 6277695:934317508471:undef:undef:undef:undef 4749423:896523624157:undef:undef:undef:undef 7669479:775568096961:undef:undef:undef:undef 6421484:6712822863626:undef:undef:undef:undef 3985051:7259653372363:undef:undef:undef:undef 3828425:2858016031505:undef:undef:undef:undef 9566141:48779533187481:42537945834266:+:6241587353215:- 3649295:92721133556283:90728590685468:+:1992542870815:- 3016054:88025249075383:41144908998232:+:46880340077151:- 9766358:617052500212228:undef:undef:undef:undef 5082051:886792609787086:102690844943809:+:784101764843277:- 2498957:347103253520820:52182225902933:+:294921027617887:- 8334307:1284959991449047:945037226306456:+:339922765142591:- 8894360:3906581887521471:3236072401706495:+:670509485814976:- 6870726:4772488827481455:undef:undef:undef:undef 6184958:28454121310901697:19411404559686758:+:9042716751214939:- 3522143:41612053000600739:36317506394217007:+:5294546606383732:- 4304441:70048374385642233:4114415889902438:+:65933958495739795:- 1652881:514683315419730432:117278086647786097:+:397405228771944335:- 9213401:482079779283727026:4241102336677031:+:477838676947049995:- 8691976:894513960165746060:undef:undef:undef:undef 4229372:6011409689055449759:4869306775314314947:+:1142102913741134812:- 4912254:3199406486470045574:undef:undef:undef:undef 8498841:2229300887748970359:undef:undef:undef:undef 8954335:41184289836022375422:815339321994470671:+:40368950514027904751:- 1009461:34001895483077710264:15301006226029382829:+:18700889257048327435:- 8668636:47774777508019969258:undef:undef:undef:undef 3109154:702540636028380576948:undef:undef:undef:undef 7565133:791565463176335885267:132203547745301788704:+:659361915431034096563:- 5564293:200450660661470063226:115111052230699148713:+:85339608430770914513:- 5062883:9745337553843068528744:2388361600719070882011:+:7356975953123997646733:- 5544874:9122407409577669572139:8597591364840157589749:+:524816044737511982390:- 2369312:3743304529754686176140:undef:undef:undef:undef 5655057:58509875238574917147632:23592319989945361249697:+:34917555248629555897935:- 2793401:67557641498214083216043:18386269656782813948450:+:49171371841431269267593:- 8818345:81496249819128302370245:undef:undef:undef:undef 6760979:888850306283185647734787:106482125846531978903816:+:782368180436653668830971:- 1318857:644102268401771887439494:354656547596101115368515:+:289445720805670772070979:- 1469734:736040113380453948588461:266608425089174045948582:+:469431688291279902639879:- 5121285:9601561590963161796090882:undef:undef:undef:undef 6927156:9229182964914688893546290:undef:undef:undef:undef 4640276:7976308977153836912623731:429005357782839459364463:+:7547303619370997453259268:- 7101148:854:undef:undef:undef:undef 6076771:264:139:+:125:- 6612600:848:undef:undef:undef:undef 2678598:9076:undef:undef:undef:undef 2156938:5262:undef:undef:undef:undef 6044361:9080:8321:+:759:- 3755070:59427:undef:undef:undef:undef 7735501:78797:32160:+:46637:- 3448279:39227:24871:+:14356:- 9588069:712170:undef:undef:undef:undef 8113600:452368:undef:undef:undef:undef 6544638:958299:undef:undef:undef:undef 6256630:2225256:undef:undef:undef:undef 5319614:4376179:3700276:+:675903:- 6275684:7465629:4048277:+:3417352:- 5938383:13804321:12046313:+:1758008:- 8892727:55320736:28785159:+:26535577:- 9281954:65094277:18752273:+:46342004:- 1822497:634656245:436628893:+:198027352:- 4517402:190358780:undef:undef:undef:undef 3949561:577176744:28746889:+:548429855:- 1075019:7220797529:undef:undef:undef:undef 9765271:7472577100:5173287231:+:2299289869:- 7565124:6576126932:undef:undef:undef:undef 6195215:87608631649:49129286286:+:38479345363:- 2447144:57536659087:34830154668:+:22706504419:- 3180977:98414048530:37379850253:+:61034198277:- 1104803:627059414840:270402746227:+:356656668613:- 1028368:257664539394:undef:undef:undef:undef 5133914:532298581860:undef:undef:undef:undef 5853706:5308776986855:2036306624481:+:3272470362374:- 6678336:6754726066067:undef:undef:undef:undef 8137003:6288209136044:5914276052907:+:373933083137:- 8436713:31744903237494:7106441987477:+:24638461250017:- 7379836:94035085081621:12551834893859:+:81483250187762:- 3428625:29877201406682:16619274704349:+:13257926702333:- 1437480:790119172411982:undef:undef:undef:undef 1978104:694886646181275:undef:undef:undef:undef 8626883:932583923685966:484268741787419:+:448315181898547:- 1843744:7728826487085202:undef:undef:undef:undef 1689669:7974776447223703:271922352975847:+:7702854094247856:- 5269097:1674442003893203:72130290476655:+:1602311713416548:- 4512971:28048666850403499:12739645886036889:+:15309020964366610:- 6716203:23390901946343390:11884782341961187:+:11506119604382203:- 9534275:45530591224539792:21921635799229163:+:23608955425310629:- 8013020:607750740458714954:undef:undef:undef:undef 5465320:549924104241758990:undef:undef:undef:undef 3828169:244572837794246744:240557944291503305:+:4014893502743439:- 2448215:2989639008883957686:1784429392382961449:+:1205209616500996237:- 4637181:2697623441723276177:2145171492485141412:+:552451949238134765:- 1498569:2252044799094634508:337652908604795485:+:1914391890489839023:- 1380733:27425035229245696125:20551759084815034522:+:6873276144430661603:- 7603533:10700369469374182322:4099510685967669067:+:6600858783406513255:- 3886222:47109075684322880926:undef:undef:undef:undef 6032858:556129359492489860272:undef:undef:undef:undef 5373365:640028922314168705131:45795824408434801950:+:594233097905733903181:- 4150394:633337905137269963366:undef:undef:undef:undef 1284277:2697754260575630665152:2186331303494684794525:+:511422957080945870627:- 9220237:8625984232394676377002:2602723732815164808861:+:6023260499579511568141:- 2645470:3898425419316240609841:1107558831692846248005:+:2790866587623394361836:- 5943212:87514893265709129839109:78741613611104386601400:+:8773279654604743237709:- 6994617:95912407644838149138781:undef:undef:undef:undef 4123100:30621985707378546077387:27976341504075325728784:+:2645644203303220348603:- 1505190:409057326086093205277094:undef:undef:undef:undef 5424393:365190044696996042947277:203545037635732495106077:+:161645007061263547841200:- 7579644:179553099975924754129516:undef:undef:undef:undef 4271192:9144689425720996342066606:undef:undef:undef:undef 5188945:3290122276906155297402712:567929059386448031616777:+:2722193217519707265785935:- 6444628:6249631352793282715425626:undef:undef:undef:undef 56815526:805:556:+:249:- 90755503:770:587:+:183:- 98439727:596:379:+:217:- 22474430:7378:undef:undef:undef:undef 19289674:4871:3857:+:1014:- 24509397:4030:1543:+:2487:- 62030412:23206:undef:undef:undef:undef 39217788:39034:undef:undef:undef:undef 56069302:84818:undef:undef:undef:undef 66324788:522304:undef:undef:undef:undef 18530567:582397:398855:+:183542:- 96798560:876003:530969:+:345034:- 81179764:6155531:123354:+:6032177:- 63326339:5290241:146387:+:5143854:- 29147342:5033996:undef:undef:undef:undef 18752415:10348213:6999909:+:3348304:- 52539894:19551663:undef:undef:undef:undef 27015317:61739495:41344143:+:20395352:- 84708377:919281123:868102370:+:51178753:- 85864590:297826256:undef:undef:undef:undef 35996649:819414809:584307755:+:235107054:- 75229591:2171426792:1109087967:+:1062338825:- 25718182:3110493853:536539944:+:2573953909:- 69461724:2669625813:undef:undef:undef:undef 72299495:90382180578:50819402375:+:39562778203:- 35203700:45524408629:undef:undef:undef:undef 54591713:59746606706:35317455319:+:24429151387:- 43725049:897870100804:688219771993:+:209650328811:- 59904750:347591214047:166475835265:+:181115378782:- 92814462:673437958045:517000080073:+:156437877972:- 67134428:3133662607307:479768789758:+:2653893817549:- 46510172:4008823306740:undef:undef:undef:undef 25893646:8170858852029:4390167435961:+:3780691416068:- 36410306:44715644560484:undef:undef:undef:undef 27419780:76275048350081:67131869367827:+:9143178982254:- 94170424:23254328710960:undef:undef:undef:undef 69450890:670439220834333:531417036196232:+:139022184638101:- 77976966:424569969701461:56050148124895:+:368519821576566:- 62440990:417130014208565:undef:undef:undef:undef 41343049:5637228499975107:3927317711174689:+:1709910788800418:- 95394679:3335484783591393:2850482859880636:+:485001923710757:- 42456309:5000937112814486:2846015824723787:+:2154921288090699:- 36127570:91149105559390967:2657395901697198:+:88491709657693769:- 12708835:36869763976600725:undef:undef:undef:undef 68949250:55721346766041169:40523938526553788:+:15197408239487381:- 23759782:493183027582267096:undef:undef:undef:undef 10985807:697493548323858106:107841850761271717:+:589651697562586389:- 30775812:640402397676048683:572039585948725382:+:68362811727323301:- 87602261:2111576025521252285:293865054674215696:+:1817710970847036589:- 59453561:9177486117054954593:8218160518851317534:+:959325598203637059:- 86666776:8568099406660577220:undef:undef:undef:undef 85488759:73641354847375916419:2582651606311777307:+:71058703241064139112:- 43486359:80562029236780559201:49577781407057245623:+:30984247829723313578:- 68562931:63822926861777136415:56596271446531244161:+:7226655415245892254:- 57516930:109556882616719282073:undef:undef:undef:undef 91054524:571273987348229732390:undef:undef:undef:undef 81528288:913437482584784518797:undef:undef:undef:undef 99911660:4950141751120231252285:undef:undef:undef:undef 13990875:8928299170359766356217:3977166213122118507721:+:4951132957237647848496:- 77450552:9633447200737521109817:7123597353372759571338:+:2509849847364761538479:- 99849234:62351929593531206742747:undef:undef:undef:undef 26192122:35144124563841590669403:9796592434889558819329:+:25347532128952031850074:- 53708361:62566467497821534152201:undef:undef:undef:undef 67777625:232717097222397862001502:31281896235547296178715:+:201435200986850565822787:- 31161293:323231468822941819103669:229611918826305543073306:+:93619549996636276030363:- 91110241:329106458814843970800581:28089579166305214489675:+:301016879648538756310906:- 51474694:3053822587493552051244323:1218446859834630780166504:+:1835375727658921271077819:- 27447303:4971868109554611327522578:3450168475006847962477095:+:1521699634547763365045483:- 76652381:8637884770632064105237081:2085070691702722033835788:+:6552814078929342071401293:- 48521962:694:undef:undef:undef:undef 48596127:856:839:+:17:- 84146878:427:184:+:243:- 62798715:9134:541:+:8593:- 25834783:1043:858:+:185:- 55793751:4869:undef:undef:undef:undef 81639641:29032:841:+:28191:- 59623450:99705:undef:undef:undef:undef 84135497:64036:689:+:63347:- 77151548:419165:141702:+:277463:- 44441096:156109:124268:+:31841:- 58134604:305586:undef:undef:undef:undef 18068112:7937375:2644548:+:5292827:- 49222480:7678482:undef:undef:undef:undef 18825853:7656298:5500627:+:2155671:- 65199433:64629347:38476889:+:26152458:- 15281900:60343996:undef:undef:undef:undef 20666769:18272977:8181257:+:10091720:- 41141537:677379590:447495573:+:229884017:- 18679281:845663650:421949571:+:423714079:- 50105911:621004816:18234343:+:602770473:- 18791786:9798565996:undef:undef:undef:undef 40518921:1877096876:134204697:+:1742892179:- 33212177:1482811828:1044348377:+:438463451:- 36035592:37291748667:undef:undef:undef:undef 84032327:94198644633:28947543821:+:65251100812:- 52509174:65971297521:undef:undef:undef:undef 47385209:322740096521:104496652436:+:218243444085:- 37318176:170793088515:undef:undef:undef:undef 60574438:512852464945:171278522527:+:341573942418:- 36400188:5484916608000:undef:undef:undef:undef 83223321:3664681424027:1458958901295:+:2205722522732:- 44722194:1760869789814:undef:undef:undef:undef 94352998:10900374499523:6185481313898:+:4714893185625:- 68109005:10840226656418:10112021763371:+:728204893047:- 94059901:39993251959655:28615749964046:+:11377501995609:- 27315027:402965754303983:311724543018810:+:91241211285173:- 12864333:778107077930471:375050121352547:+:403056956577924:- 59053655:102905122720754:60686680699083:+:42218442021671:- 51804535:9307919041555425:undef:undef:undef:undef 76195770:5466923835123176:undef:undef:undef:undef 93471761:6345935241859625:2083865459463966:+:4262069782395659:- 33570183:61185607853401404:undef:undef:undef:undef 35499121:75849646070631348:22479829913500069:+:53369816157131279:- 37200756:51814119082729596:undef:undef:undef:undef 93259441:567384336938641594:202917177634233729:+:364467159304407865:- 70802854:193319754475168628:undef:undef:undef:undef 20752886:905606253856984890:undef:undef:undef:undef 11467604:9218626987938898390:undef:undef:undef:undef 88185572:4669885828161683495:2328817213802521173:+:2341068614359162322:- 80790660:6445566315406924693:2833016907261817062:+:3612549408145107631:- 50627714:11088833353032449016:undef:undef:undef:undef 92324997:15664530676890811099:9884176997121608512:+:5780353679769202587:- 54831892:64935749703708330568:undef:undef:undef:undef 68138945:943461738383586835873:609569461046503699945:+:333892277337083135928:- 93166751:697894432631572005262:149812410202525239179:+:548082022429046766083:- 46484870:990801754101308640954:undef:undef:undef:undef 10553539:1171463360891161974574:607894828392506981503:+:563568532498654993071:- 10033196:1088007293491080230421:1024060976396162358788:+:63946317094917871633:- 47228752:7879205525885164834759:2560001167724755786448:+:5319204358160409048311:- 16708238:93659694480091921619067:24815547177835449180566:+:68844147302256472438501:- 37601284:15633449594452509144565:6692113211069073883384:+:8941336383383435261181:- 21481753:90038249629096778504710:88025878736918119975657:+:2012370892178658529053:- 45900111:400941147310599293692930:118358291678862165481571:+:282582855631737128211359:- 68810788:937888432093836684889312:undef:undef:undef:undef 32925170:539819639305432274019558:undef:undef:undef:undef 72237529:6139984266288987531023882:3896023742342755757318091:+:2243960523946231773705791:- 66055160:9322487012180571255660365:undef:undef:undef:undef 82241635:4861039800604203190504430:undef:undef:undef:undef 23739681:563:409:+:154:- 36893166:776:undef:undef:undef:undef 39554904:759:undef:undef:undef:undef 49258679:9607:6468:+:3139:- 99371686:3376:undef:undef:undef:undef 33369757:1684:161:+:1523:- 70264152:42138:undef:undef:undef:undef 33462000:57276:undef:undef:undef:undef 62361299:91188:58235:+:32953:- 85650721:845680:213681:+:631999:- 24277050:699841:644439:+:55402:- 25711842:413055:undef:undef:undef:undef 12447729:9919240:193529:+:9725711:- 96556227:6470183:2254031:+:4216152:- 28835465:4283301:1398572:+:2884729:- 80132637:42185681:29908304:+:12277377:- 35241370:33161806:undef:undef:undef:undef 89140386:64631484:undef:undef:undef:undef 30989165:596273032:309718157:+:286554875:- 12388482:842375810:undef:undef:undef:undef 68707400:161250250:undef:undef:undef:undef 13664862:9339533245:8347657963:+:991875282:- 79612588:5972694959:undef:undef:undef:undef 66729477:7299675050:5159351763:+:2140323287:- 49708234:68920434697:51294094315:+:17626340382:- 45613873:58147238900:35290164137:+:22857074763:- 43782671:74825659679:36217014252:+:38608645427:- 61002269:853269225033:828966503642:+:24302721391:- 26251544:751403385332:undef:undef:undef:undef 27722269:543551590424:71001340461:+:472550249963:- 78851606:2179596451570:undef:undef:undef:undef 25804423:4696530713654:2916148860253:+:1780381853401:- 71387805:7058973347511:undef:undef:undef:undef 64119687:19348771492733:2313296638554:+:17035474854179:- 28098583:71828271534611:18138890128088:+:53689381406523:- 17848938:31866503137897:12681264431078:+:19185238706819:- 63271259:968668422083848:331156433419067:+:637511988664781:- 99865602:671719468975839:undef:undef:undef:undef 89880032:193972817975472:undef:undef:undef:undef 39570681:4002837545604292:1256786106665245:+:2746051438939047:- 66051058:5329069590288729:3491143915437145:+:1837925674851584:- 48195503:3267457073288160:772598110702127:+:2494858962586033:- 27442817:17417928150703441:10140048125476522:+:7277880025226919:- 92153106:43772581597012442:undef:undef:undef:undef 77455337:49755332999608758:47739668468093075:+:2015664531515683:- 56212328:739660843721507256:undef:undef:undef:undef 66664067:186610646714807957:75155845224497067:+:111454801490310890:- 44142123:632473348084377463:330456029987885838:+:302017318096491625:- 41947281:6781341911666311815:undef:undef:undef:undef 77968394:3147167955135818645:2452530167309821539:+:694637787825997106:- 51368235:5383330098873455117:1540477274307520826:+:3842852824565934291:- 70685715:73978236652582036893:undef:undef:undef:undef 14029506:78383232893824454701:53764550254066435351:+:24618682639758019350:- 93017914:70937671158770576199:46305934243943565133:+:24631736914827011066:- 66353995:373480850604532194044:147356150678966755799:+:226124699925565438245:- 92938084:529689654952902920374:undef:undef:undef:undef 13412084:568384516281716860412:undef:undef:undef:undef 10071012:6330063941759886362600:undef:undef:undef:undef 51134181:1467192954784541197545:undef:undef:undef:undef 93121244:1427440391992557419063:916159427193218712485:+:511280964799338706578:- 41309652:67974030334244637655409:18567750682028200174479:+:49406279652216437480930:- 46116880:21275837137442429987308:undef:undef:undef:undef 82356374:12923467939382709352430:undef:undef:undef:undef 55366450:600506763374829419654035:undef:undef:undef:undef 34104424:220304456393449755266475:202200524540913547152799:+:18103931852536208113676:- 88038969:165677913359742976790445:undef:undef:undef:undef 63638993:4416974696703510241845051:1626003509190049054350461:+:2790971187513461187494590:- 88880457:6160127441683330345303948:3698331872350914226543417:+:2461795569332416118760531:- 22224266:3813357357407726021795654:undef:undef:undef:undef 883429905:239:131:+:108:- 843095866:601:235:+:366:- 197243366:182:undef:undef:undef:undef 154911512:5141:2551:+:2590:- 684843161:2221:1874:+:347:- 559491181:6435:3946:+:2489:- 121572434:83486:undef:undef:undef:undef 600400316:13111:12330:+:781:- 282716255:78439:53238:+:25201:- 288197999:101271:48194:+:53077:- 747532114:200228:undef:undef:undef:undef 431794237:930383:401484:+:528899:- 572708906:1842080:undef:undef:undef:undef 668180136:5909173:1403896:+:4505277:- 928079954:2330078:undef:undef:undef:undef 497337562:95933091:70951108:+:24981983:- 867263390:30144015:undef:undef:undef:undef 467930791:81260280:68031631:+:13228649:- 496061871:725410310:8978471:+:716431839:- 742700902:666139481:470001762:+:196137719:- 772610806:708497394:undef:undef:undef:undef 122392073:8252960557:5849450680:+:2403509877:- 748036066:9581456115:4389559126:+:5191896989:- 219508248:4210771028:undef:undef:undef:undef 593716482:21247936917:undef:undef:undef:undef 182449347:72475225103:64456164892:+:8019060211:- 314053899:31780217662:31189936465:+:590281197:- 200687800:521954653261:376627763655:+:145326889606:- 806215853:619611194613:4447405922:+:615163788691:- 625519048:932638846045:543707677862:+:388931168183:- 196373726:9669217505235:7762184472341:+:1907033032894:- 539566454:8865581563953:1085126661689:+:7780454902264:- 417298561:2311840425971:1005455288483:+:1306385137488:- 989243073:49832606587910:19083371313907:+:30749235274003:- 195957819:38364918117450:undef:undef:undef:undef 651199163:37681701261540:27078920707607:+:10602780553933:- 278027839:914043394179692:328502168026287:+:585541226153405:- 133110730:626224446433740:undef:undef:undef:undef 968325625:686344396032962:244300368685131:+:442044027347831:- 621285390:4311519283585095:undef:undef:undef:undef 767336537:9664107805517444:183460288872889:+:9480647516644555:- 588276529:3156955752166072:3154282686556065:+:2673065610007:- 935073468:43435916971067865:undef:undef:undef:undef 837523391:97280820491028275:82436855807677536:+:14843964683350739:- 568799219:51493119182065471:15334878988945222:+:36158240193120249:- 514230474:654095868247719919:2589149033732265:+:651506719213987654:- 188386003:120128586539588092:106977377324885299:+:13151209214702793:- 205028107:525637628572920391:82186297870224597:+:443451330702695794:- 994054000:2954713543860708334:undef:undef:undef:undef 774885303:4313366464358728081:21573498071706015:+:4291792966287022066:- 112043498:1731101813308863889:455029004039469849:+:1276072809269394040:- 208594103:31068771392561577293:28597068752221188318:+:2471702640340388975:- 488372701:66266215069889121202:64842385366783436653:+:1423829703105684549:- 343220148:77369409024585464276:undef:undef:undef:undef 314029158:196307421458445448775:116762791499706896597:+:79544629958738552178:- 441075525:474301702458929835745:undef:undef:undef:undef 109418169:800946160289866122897:undef:undef:undef:undef 236632924:3573718583127829454612:undef:undef:undef:undef 468200740:5411564248590924938866:undef:undef:undef:undef 350222056:6113166483154822185796:undef:undef:undef:undef 132461946:52328655294364796336187:undef:undef:undef:undef 887479370:44059129839001500314381:21422904208429019151527:+:22636225630572481162854:- 678448686:66904770167813977388667:undef:undef:undef:undef 768427425:377674300515566506794817:104210228506052186013696:+:273464072009514320781121:- 922098288:847269837350122098564638:undef:undef:undef:undef 284720405:365794083952128062573197:210438918605672507200620:+:155355165346455555372577:- 827723531:8794759148138489090701004:7161760586670868724155111:+:1632998561467620366545893:- 379286755:6081091408847129199173575:undef:undef:undef:undef 417201678:8698548455087166099684761:1521259314471452587502494:+:7177289140615713512182267:- 397240908:862:undef:undef:undef:undef 818752762:270:undef:undef:undef:undef 616478520:825:undef:undef:undef:undef 512448691:8994:7057:+:1937:- 603784315:3860:undef:undef:undef:undef 892788622:9782:undef:undef:undef:undef 401991616:47678:undef:undef:undef:undef 923404619:90679:58655:+:32024:- 700137231:40836:undef:undef:undef:undef 203888384:359764:undef:undef:undef:undef 751199018:566530:undef:undef:undef:undef 191600433:935701:717710:+:217991:- 567383547:1535201:17819:+:1517382:- 562383132:8474308:undef:undef:undef:undef 862029053:7876601:5631926:+:2244675:- 893044074:32229142:undef:undef:undef:undef 644296137:18925602:undef:undef:undef:undef 475626379:31691232:21285187:+:10406045:- 832425608:392739855:250568597:+:142171258:- 199889416:704265601:504331320:+:199934281:- 978604540:175889777:36296563:+:139593214:- 585503092:9057799712:undef:undef:undef:undef 119547941:3126207405:2618647346:+:507560059:- 447424949:3275147317:2530241497:+:744905820:- 568796741:65694710980:34397263201:+:31297447779:- 551197335:51642549256:1541173463:+:50101375793:- 223879560:78950562873:undef:undef:undef:undef 453508623:931147937349:undef:undef:undef:undef 142990845:919406050212:undef:undef:undef:undef 224065099:387468429387:82364691298:+:305103738089:- 792365981:7219430403941:365505214194:+:6853925189747:- 776748101:2064245743332:141791386961:+:1922454356371:- 688232162:4633958434134:undef:undef:undef:undef 905496526:11817098263685:undef:undef:undef:undef 771720261:57836008919288:42607669787677:+:15228339131611:- 497096496:65107756330432:undef:undef:undef:undef 410626572:410139631372933:19416226973289:+:390723404399644:- 786408518:763792281184323:264967407556100:+:498824873628223:- 421657879:756550457103685:588112140809899:+:168438316293786:- 523604004:2877758465549810:undef:undef:undef:undef 461669517:8226793504589051:6374450896711752:+:1852342607877299:- 300181504:1271686476051532:undef:undef:undef:undef 267974301:78005629279493273:46438072854390167:+:31567556425103106:- 807818917:95314908522294362:88808816494546789:+:6506092027747573:- 243884885:51346056252266544:36834699562686797:+:14511356689579747:- 532188782:405217730483088308:undef:undef:undef:undef 459877643:282147288320933817:57329522679596804:+:224817765641337013:- 933891523:394787651615513793:22070377672822048:+:372717273942691745:- 862611446:1161250948291856543:1047150244829279363:+:114100703462577180:- 484619574:8487857715230530978:undef:undef:undef:undef 788426737:8217278190616588126:7893048959187923123:+:324229231428665003:- 547779268:11630002460638849613:6370733863555851967:+:5259268597082997646:- 251766220:26251400866817952811:7412420530729632086:+:18838980336088320725:- 494752719:48622894393070478957:undef:undef:undef:undef 767049336:791436666159935219053:275809336137758774997:+:515627330022176444056:- 408628141:843545915132174213949:529481510616827615566:+:314064404515346598383:- 469417077:263709255549230772677:141522049232505946297:+:122187206316724826380:- 264889274:2926560323119362796564:undef:undef:undef:undef 221419267:1296410333062937556900:445468159442430327403:+:850942173620507229497:- 833792033:1942668528859952362009:899026270786294210099:+:1043642258073658151910:- 101973304:58568850938011564432796:undef:undef:undef:undef 934999765:59753345065693175459502:55083047173673608414957:+:4670297892019567044545:- 416919865:75043519171027116644197:47078094509079366710526:+:27965424661947749933671:- 791615775:521385005581184676834827:324988247498802464958060:+:196396758082382211876767:- 374008119:627922933681359783670244:330482369196042981914591:+:297440564485316801755653:- 822807197:453606953810968114941347:186748831783759526348418:+:266858122027208588592929:- 746891368:7864903400761016410253577:1356599359297693796570143:+:6508304041463322613683434:- 370047092:1704498463364560756156428:undef:undef:undef:undef 737742518:1901258092485545089338212:undef:undef:undef:undef 506705415:994:993:+:1:- 647593796:796:undef:undef:undef:undef 708815998:578:undef:undef:undef:undef 887052376:7673:5229:+:2444:- 413081226:5919:undef:undef:undef:undef 994599722:3531:2:+:3529:- 844373423:58384:35327:+:23057:- 375626762:21319:10623:+:10696:- 733265627:12164:8663:+:3501:- 499242851:339102:157175:+:181927:- 864779327:705006:544085:+:160921:- 752228722:537523:undef:undef:undef:undef 499232435:8551224:7184171:+:1367053:- 236982396:1458728:undef:undef:undef:undef 922436254:2071793:1884658:+:187135:- 894766270:68651174:undef:undef:undef:undef 366692807:63905637:22375706:+:41529931:- 849438794:13148065:9581384:+:3566681:- 591001640:618251727:15141515:+:603110212:- 397862927:837051460:undef:undef:undef:undef 675795839:532564056:135517367:+:397046689:- 417639477:4398363060:undef:undef:undef:undef 526369373:8135902330:1620141147:+:6515761183:- 183218716:9006603417:7049158309:+:1957445108:- 923980750:94755069959:undef:undef:undef:undef 789387451:88149024058:77991872869:+:10157151189:- 571127906:19710998757:15037240280:+:4673758477:- 698103737:216920098357:49831269842:+:167088828515:- 549591836:854066180146:undef:undef:undef:undef 419115188:325856763873:164933077910:+:160923685963:- 481478216:9086744572620:undef:undef:undef:undef 420189227:5739435696720:5155886189363:+:583549507357:- 517419356:8498426682596:undef:undef:undef:undef 352005764:48729341538714:undef:undef:undef:undef 702795815:37160297152533:20096402711606:+:17063894440927:- 227099978:58256460576380:undef:undef:undef:undef 376171310:258548466583650:undef:undef:undef:undef 690017593:377080886496272:251226246773641:+:125854639722631:- 186948188:495279019989700:undef:undef:undef:undef 283798239:1965974385993344:1568211290271775:+:397763095721569:- 969096348:6261312907103392:undef:undef:undef:undef 244593320:5059802746358925:undef:undef:undef:undef 815483678:80083787497801525:16119100382694517:+:63964687115107008:- 814203759:59760202907132217:undef:undef:undef:undef 514083401:97091120171649058:undef:undef:undef:undef 360819549:407324746421774172:undef:undef:undef:undef 157695487:194647209998605218:8161180096324747:+:186486029902280471:- 602578029:169480079856106820:101728567280015629:+:67751512576091191:- 405802569:2383778357087955189:undef:undef:undef:undef 447687990:4185778187887997142:undef:undef:undef:undef 538054734:5746384560506186737:undef:undef:undef:undef 426428011:27300739414594875836:25196216475851450539:+:2104522938743425297:- 432205094:76077990467750523935:31388757444103673189:+:44689233023646850746:- 573307801:73779071715843531734:41321002245477783309:+:32458069470365748425:- 679318375:580705898398364048906:200463993861723162803:+:380241904536640886103:- 361893779:860225730293714521997:undef:undef:undef:undef 655461048:706633758700058821654:undef:undef:undef:undef 129404401:4096953153424413604662:3124320859969723095787:+:972632293454690508875:- 341535500:7645731931898181634664:undef:undef:undef:undef 383154445:1012521510194606626450:undef:undef:undef:undef 795321088:93567180722814566931139:undef:undef:undef:undef 275485768:89210350122218304999307:60063107723796901221898:+:29147242398421403777409:- 229108471:55226631269097392735299:13501243239809771791200:+:41725388029287620944099:- 709485417:915954855215312179597360:906244704064186120927673:+:9710151151126058669687:- 723607178:687376702919933236090565:275933469823503454396497:+:411443233096429781694068:- 531519039:268884822594147934201480:30542663603937076757759:+:238342158990210857443721:- 972630944:2862969356276619196048571:1021373465545458735386152:+:1841595890731160460662419:- 861332012:6636614088896377972141106:undef:undef:undef:undef 296143212:3225291872114536173673964:undef:undef:undef:undef 5148123445:914:421:+:493:- 2156188712:536:undef:undef:undef:undef 8291499958:895:857:+:38:- 4253844263:4155:1292:+:2863:- 1358421452:7367:1673:+:5694:- 9730117517:9295:3233:+:6062:- 4743334107:21543:undef:undef:undef:undef 1101209189:37171:753:+:36418:- 1511883525:59689:46903:+:12786:- 7831509333:801926:16723:+:785203:- 1901678424:628922:undef:undef:undef:undef 7582083726:553752:undef:undef:undef:undef 2814121196:6720204:undef:undef:undef:undef 9041977165:3574257:1209775:+:2364482:- 4665349605:1741859:undef:undef:undef:undef 9654885508:11320405:5070547:+:6249858:- 8544595875:81826780:undef:undef:undef:undef 4491577979:44839325:37909494:+:6929831:- 5894419727:209676047:undef:undef:undef:undef 3422175244:200901170:undef:undef:undef:undef 9073863612:285704419:undef:undef:undef:undef 3010456331:1575223721:358803466:+:1216420255:- 3675209249:1238920469:348052350:+:890868119:- 3076955755:2044728121:819483755:+:1225244366:- 5532449106:11804864757:undef:undef:undef:undef 2178321516:72446432820:undef:undef:undef:undef 8141624878:24177169161:12669591040:+:11507578121:- 4373829532:361530049790:undef:undef:undef:undef 6510438062:221919090285:118395549053:+:103523541232:- 2923624068:928301613177:undef:undef:undef:undef 6422616650:1821551105905:undef:undef:undef:undef 3920819292:3609657590139:undef:undef:undef:undef 8529302041:8171890540911:6330113830732:+:1841776710179:- 8283075058:99249682083240:undef:undef:undef:undef 7714159938:42279030272060:undef:undef:undef:undef 8830465691:94598224923192:1238025432947:+:93360199490245:- 6503804316:893134882044913:595341231988876:+:297793650056037:- 3020967744:692332434884097:undef:undef:undef:undef 5707972016:416981172056363:319046936750814:+:97934235305549:- 7802276257:5121005781327377:1006470380725860:+:4114535400601517:- 8488092258:5898469708005668:undef:undef:undef:undef 5719273281:6621050033188944:undef:undef:undef:undef 4269820845:97690537236763468:83725800953243273:+:13964736283520195:- 4890136257:67781149490980209:undef:undef:undef:undef 1249614077:13434251636315727:8033650483878155:+:5400601152437572:- 7567169928:209400997888616374:undef:undef:undef:undef 2892092078:809180780834786061:459957472215866399:+:349223308618919662:- 5059477571:225235022670459161:188872579792036573:+:36362442878422588:- 3296846539:3419541167968110901:3375814864108936545:+:43726303859174356:- 3755465778:5985810828658626985:3396977572175897167:+:2588833256482729818:- 8440375029:7500789156286352849:740815062674890403:+:6759974093611462446:- 7200372756:67154895069447055956:undef:undef:undef:undef 1129552307:47029208094293947604:7082422936839559503:+:39946785157454388101:- 2149757725:67859417827284636751:46371390131760805747:+:21488027695523831004:- 9142316269:430441115080170066523:160600796982128766071:+:269840318098041300452:- 3787820619:404407421001507234094:314994134692265924347:+:89413286309241309747:- 1783571232:759228725504543081212:undef:undef:undef:undef 5259924308:8647842759402242582039:2573478635201018217649:+:6074364124201224364390:- 7549596943:9126835586456198292095:5602555267454219862537:+:3524280319001978429558:- 5502628004:1921833832195605113404:undef:undef:undef:undef 2734794642:20341260710298800232522:undef:undef:undef:undef 6649682442:20588599858934853156107:6112141034906005902861:+:14476458824028847253246:- 7945061400:80888029696624048552137:undef:undef:undef:undef 5318739090:371043970435050967481651:undef:undef:undef:undef 7813005156:625486598641910843913099:undef:undef:undef:undef 7596209423:838237546042044839786955:592126700174737059178067:+:246110845867307780608888:- 5542001838:4371473048465980598505528:undef:undef:undef:undef 9215909038:4418497062287071779597132:undef:undef:undef:undef 9088238948:6385259025471575663888098:undef:undef:undef:undef 7141106533:421:64:+:357:- 4608309022:353:267:+:86:- 3215543482:147:79:+:68:- 5960988438:4252:undef:undef:undef:undef 7407872116:9905:4691:+:5214:- 1707352681:5638:1339:+:4299:- 2628785609:94072:46265:+:47807:- 6960760204:83288:undef:undef:undef:undef 1420175176:10837:5726:+:5111:- 4471827497:750478:19619:+:730859:- 1058033319:745141:79035:+:666106:- 4707692720:459142:undef:undef:undef:undef 6872130879:7596812:3927615:+:3669197:- 7337043892:6212023:4023595:+:2188428:- 6562355347:6847846:769323:+:6078523:- 7414460013:35105897:20727442:+:14378455:- 2431585113:94138027:11221501:+:82916526:- 8926085180:67232734:undef:undef:undef:undef 2696422432:384919346:undef:undef:undef:undef 2518225632:701394234:undef:undef:undef:undef 4582392418:484897725:332579557:+:152318168:- 1593126296:8704586019:4313576687:+:4391009332:- 5576970406:5468430807:undef:undef:undef:undef 8122724503:5592354812:407232599:+:5185122213:- 7223414134:97520329077:69882438535:+:27637890542:- 4483962895:50989493417:22740942054:+:28248551363:- 5920178769:92950702035:undef:undef:undef:undef 2000396391:775202780024:474916861247:+:300285918777:- 9068883969:512247505350:undef:undef:undef:undef 8726799433:501767727686:365378905449:+:136388822237:- 4162671941:8271806934045:2346236556626:+:5925570377419:- 9810813468:2254470979839:undef:undef:undef:undef 6945957450:7134739113826:undef:undef:undef:undef 5419725549:77513920051398:undef:undef:undef:undef 3295597344:51067657361328:undef:undef:undef:undef 7797262227:23985104215078:8462208296939:+:15522895918139:- 9200570839:665110102190379:582850578047767:+:82259524142612:- 4054467081:444097977689960:35609249338001:+:408488728351959:- 2328973673:134392175876030:133853800850287:+:538375025743:- 9707764065:9353285118262517:8693519242135388:+:659765876127129:- 5251765881:6585119250077577:undef:undef:undef:undef 4958537228:3685944437151997:2359687219399978:+:1326257217752019:- 4975107553:23849725039900792:21463622386830961:+:2386102653069831:- 8053531898:48866091437980762:undef:undef:undef:undef 1989915545:37444679715007743:27086022928847654:+:10358656786160089:- 2274266940:380230297405974554:undef:undef:undef:undef 7338671999:237032697192956945:114810539536337184:+:122222157656619761:- 2672076311:710161125077350588:321797615692800887:+:388363509384549701:- 8556132773:4273339019207528078:4068075955799074695:+:205263063408453383:- 1323128849:4987603262857552256:261890174330778097:+:4725713088526774159:- 9331227869:7559757703317873620:3503205231111896789:+:4056552472205976831:- 8306683275:56040420057499208079:undef:undef:undef:undef 4923726787:32491667952172724505:undef:undef:undef:undef 6004565244:39053779102790486024:undef:undef:undef:undef 9180567367:292488594180822005393:43500015152127356759:+:248988579028694648634:- 2420974275:787720949136879886353:undef:undef:undef:undef 3831811701:973713277862130004663:798753610573946524675:+:174959667288183479988:- 3116728212:5194005128166435062520:undef:undef:undef:undef 3748674459:8253306548305148592778:6985466021063217658211:+:1267840527241930934567:- 7726337119:1711126095512018755532:1472383168750974544079:+:238742926761044211453:- 9859039295:99630480228978284598204:22064746749929907191903:+:77565733479048377406301:- 1792896124:78644699454890690955397:5831488120861206829374:+:72813211334029484126023:- 9010729274:34056143941643853006739:6606395455177648232830:+:27449748486466204773909:- 8936492080:555179115685053102546996:undef:undef:undef:undef 8938045036:158058717726679139758931:134184101055217884924706:+:23874616671461254834225:- 3500736605:306848482537996666861469:27823706542582270505843:+:279024775995414396355626:- 2570452638:8186554279070548480048270:undef:undef:undef:undef 9208061087:2701158110687268893701976:212687115087574009549807:+:2488470995599694884152169:- 3532767804:9850603484307820118068443:undef:undef:undef:undef 3292630474:213:61:+:152:- 1177035926:343:124:+:219:- 5064628398:613:600:+:13:- 5420258143:2333:715:+:1618:- 2548536092:5414:undef:undef:undef:undef 9049476761:1324:901:+:423:- 7468130895:73550:undef:undef:undef:undef 3069055502:31332:undef:undef:undef:undef 4586171713:73361:33095:+:40266:- 2813493595:433822:182311:+:251511:- 3293589659:537694:159753:+:377941:- 9787848035:981797:213028:+:768769:- 1211767981:8865597:6153958:+:2711639:- 7527077162:7316748:undef:undef:undef:undef 2070631145:7877295:undef:undef:undef:undef 5645876442:89643311:44878003:+:44765308:- 2975863384:95054744:undef:undef:undef:undef 2450125441:59716025:25381411:+:34334614:- 9328387451:347474581:22697295:+:324777286:- 7276736230:578768518:undef:undef:undef:undef 8097844197:917805224:557826189:+:359979035:- 5542614594:6263902233:undef:undef:undef:undef 5588307923:1304223418:957834829:+:346388589:- 2722553554:1785897687:undef:undef:undef:undef 5846164789:30892076600:12826419709:+:18065656891:- 9270685632:43883358098:undef:undef:undef:undef 2907786447:99699869702:58350311387:+:41349558315:- 4116050874:917931378901:551387474688:+:366543904213:- 8014825660:693906835721:293375057978:+:400531777743:- 2663764664:228156532609:81691276315:+:146465256294:- 2216340909:1830341637693:undef:undef:undef:undef 3316192213:9424145394847:6989463246321:+:2434682148526:- 6416738464:3780072063461:2897533443094:+:882538620367:- 6398251523:31846913227394:9077643971549:+:22769269255845:- 6774543830:15485228438096:undef:undef:undef:undef 9139588413:85631225260902:undef:undef:undef:undef 2646660555:520978488306377:481168766170461:+:39809722135916:- 1708166460:687677804741176:undef:undef:undef:undef 8068783734:576077966548200:undef:undef:undef:undef 7391778815:8793490006282730:undef:undef:undef:undef 4425797098:2649756886789703:982517753185920:+:1667239133603783:- 1927668536:4517684294149869:2094599833025534:+:2423084461124335:- 8846194493:89458969050968238:88473476513555807:+:985492537412431:- 1356247734:57708536612380408:undef:undef:undef:undef 9283400862:60164628617545143:undef:undef:undef:undef 7134997642:970590878828337637:11475370761699700:+:959115508066637937:- 2448044081:497521607705096257:169690938174749282:+:327830669530346975:- 6630294043:355118381517905481:296879341228857643:+:58239040289047838:- 9048703865:6775156322220288085:undef:undef:undef:undef 3360043023:1552463462349220474:1359694808020382509:+:192768654328837965:- 6322110489:2929628186953843343:768202880076132022:+:2161425306877711321:- 1952190995:34944557910816697735:undef:undef:undef:undef 1752383842:47799193299118514504:undef:undef:undef:undef 2591178285:20716078546776381544:542167759790812421:+:20173910786985569123:- 8122148705:719406089648357733188:66006084391585545997:+:653400005256772187191:- 9694973346:719872599872040467710:undef:undef:undef:undef 7651220450:199587106552578178892:undef:undef:undef:undef 2042227136:9977487099852483689869:5552448050932507152839:+:4425039048919976537030:- 7678908931:2066109744744204323008:1080949980017941914603:+:985159764726262408405:- 6776427617:5565961119662384144160:3174002324552687900033:+:2391958795109696244127:- 5506956101:91373598288783887124420:52538003723684051988161:+:38835594565099835136259:- 7750135453:82335349859501196087584:19437141841512928708533:+:62898208017988267379051:- 8167436712:29797131824570137765228:undef:undef:undef:undef 9607370311:121631427998360740391950:116991644172432396453041:+:4639783825928343938909:- 8423935365:390669097503232686224283:undef:undef:undef:undef 7679416321:812057216216967914616590:97719265386820648344381:+:714337950830147266272209:- 6616861234:7124598459490387096368946:undef:undef:undef:undef 8037474856:4394869798590543002227680:undef:undef:undef:undef 8489232501:1079711269233988143651568:696154355808976351663373:+:383556913425011791988195:- 19619863951:640:111:+:529:- 85774558372:870:undef:undef:undef:undef 68692077395:768:731:+:37:- 18817191633:1247:undef:undef:undef:undef 41607799272:4043:undef:undef:undef:undef 91664653876:1953:1228:+:725:- 30295176945:65091:undef:undef:undef:undef 68580059047:31143:31099:+:44:- 18531360333:62597:5961:+:56636:- 64931971582:770747:224390:+:546357:- 76273168395:550050:undef:undef:undef:undef 12687319250:219475:undef:undef:undef:undef 59300897639:4792393:3288541:+:1503852:- 18756681129:2651540:260449:+:2391091:- 11621386352:9988923:9327119:+:661804:- 11671142180:50629990:undef:undef:undef:undef 71178649986:68816970:undef:undef:undef:undef 74013301662:71022147:undef:undef:undef:undef 23241107541:263070580:undef:undef:undef:undef 48817631495:693874447:559839348:+:134035099:- 27002573153:991130369:406278786:+:584851583:- 30110051854:5633080520:undef:undef:undef:undef 81689406704:9011232668:undef:undef:undef:undef 79230938200:2105447195:undef:undef:undef:undef 19365367706:75075911763:24226164476:+:50849747287:- 81083049942:58913389052:undef:undef:undef:undef 51257009494:45938599459:23115072005:+:22823527454:- 42158677183:461384086321:266329865164:+:195054221157:- 39442909636:102294989999:3097205854:+:99197784145:- 57275117957:625569596710:26729474233:+:598840122477:- 46504908030:4891760428228:undef:undef:undef:undef 73684339754:1844138927702:undef:undef:undef:undef 74088481666:4699906983901:3721697754973:+:978209228928:- 26129624873:18411432449513:11761232099671:+:6650200349842:- 19345524820:32205951498816:undef:undef:undef:undef 72054302316:43379703428064:undef:undef:undef:undef 15616222576:848488993596498:undef:undef:undef:undef 69547304804:514984536664451:202506076568533:+:312478460095918:- 12293860148:265512282165446:undef:undef:undef:undef 81199025845:5621389577199773:1852579536987082:+:3768810040212691:- 19058227448:4631815971859621:2500260977776959:+:2131554994082662:- 25706178209:2852697247397245:1094513648549039:+:1758183598848206:- 84487466920:92135420088227056:undef:undef:undef:undef 83614464584:41550747062790023:10299015965969792:+:31251731096820231:- 59989677087:48741797004563563:45861780904575978:+:2880016099987585:- 98582067675:315525240004800411:undef:undef:undef:undef 64232583500:425410208124592332:undef:undef:undef:undef 76934972176:727225029234317401:291112039937901025:+:436112989296416376:- 61795142851:5908241486766574299:1531764824706643039:+:4376476662059931260:- 17457170535:3166396673218459506:undef:undef:undef:undef 17204815290:7640687601245950106:undef:undef:undef:undef 13967589922:24620673542453299190:undef:undef:undef:undef 18996604311:10500459771152570191:3463067987556565681:+:7037391783596004510:- 99529301459:57003647317599090016:52933805965895779835:+:4069841351703310181:- 21766161947:523274541742761821127:450482897901685064168:+:72791643841076756959:- 16942826435:591722373918366385353:524166819689054326493:+:67555554229312058860:- 16804448482:991556680669357611557:313610950653156070248:+:677945730016201541309:- 81417123102:8626004426690250806770:undef:undef:undef:undef 57810478745:1158648995310485169745:undef:undef:undef:undef 42914795809:6665983779754125038980:4126687974584465643489:+:2539295805169659395491:- 36093280350:40741055983857332591795:undef:undef:undef:undef 23163546490:56263620282139603069750:undef:undef:undef:undef 52441622976:91907271791271848630774:undef:undef:undef:undef 73971752879:404396346841326960342107:22483415704898398667030:+:381912931136428561675077:- 27383552312:807536823690462158322754:undef:undef:undef:undef 42968002345:415025458708440421452321:172637226598767276175501:+:242388232109673145276820:- 56637065473:5574917704969584786035494:3393062316543458531439975:+:2181855388426126254595519:- 54752779821:1020499444245376121307585:undef:undef:undef:undef 27299076726:6195794248399897805538700:undef:undef:undef:undef 55988303440:634:undef:undef:undef:undef 46289482707:161:20:+:141:- 34475152213:652:401:+:251:- 24163728134:8820:undef:undef:undef:undef 78921381692:8895:5813:+:3082:- 36157304038:1699:1458:+:241:- 12383420501:12298:10209:+:2089:- 54189087986:77426:undef:undef:undef:undef 30993698782:93964:undef:undef:undef:undef 11005868465:704848:445329:+:259519:- 97908567288:287127:undef:undef:undef:undef 96142337868:537820:undef:undef:undef:undef 48033736196:8356003:6621839:+:1734164:- 14258068690:3307074:undef:undef:undef:undef 98242695686:4794491:1781294:+:3013197:- 98332246156:40701738:undef:undef:undef:undef 40762113568:82218554:undef:undef:undef:undef 72222947107:43372717:29069642:+:14303075:- 78858771447:705940446:undef:undef:undef:undef 22845209534:511457632:undef:undef:undef:undef 79202751925:496736846:288940043:+:207796803:- 44015419886:1370027108:undef:undef:undef:undef 14740617678:3671326471:644054363:+:3027272108:- 51283387001:5035534773:82346837:+:4953187936:- 67754140782:44107492775:9159793518:+:34947699257:- 11450645657:38008624524:2221092461:+:35787532063:- 93908675218:35502305764:undef:undef:undef:undef 84530484757:938890630219:731105383278:+:207785246941:- 96222678102:738162054175:465387276063:+:272774778112:- 31749891953:251063841485:101595824997:+:149468016488:- 87542080948:4505635455016:undef:undef:undef:undef 54977683045:2773383989258:2493438831321:+:279945157937:- 40569027555:3615108721226:2518147895043:+:1096960826183:- 96291110886:28425070691517:undef:undef:undef:undef 90612281235:85629366724855:undef:undef:undef:undef 72510178601:17727060776225:12348745682926:+:5378315093299:- 81306457060:235145400944969:180271187967402:+:54874212977567:- 77551956070:152737902472109:115292749343806:+:37445153128303:- 18362092979:592849786460608:477159064023803:+:115690722436805:- 12568366235:9296831581308712:5572180343877843:+:3724651237430869:- 32759208696:6898093370301786:undef:undef:undef:undef 86487216018:1356322070287283:1033263875860896:+:323058194426387:- 43914979501:57851110256120623:26951290016793684:+:30899820239326939:- 69218213150:33753764914433418:undef:undef:undef:undef 21903718070:22400970582554760:undef:undef:undef:undef 76550114186:169590921694397453:5275067267806340:+:164315854426591113:- 70700648633:927920898274164342:809756760862902311:+:118164137411262031:- 50954298786:439015263921052931:312517981376514752:+:126497282544538179:- 14627845587:2683727529903671189:2626648958035451369:+:57078571868219820:- 60001277877:4213480590674859045:undef:undef:undef:undef 52726275559:2418314281060146017:1713693942213228018:+:704620338846917999:- 70956433758:45183728941930903369:6737839567038249981:+:38445889374892653388:- 84333137725:76868163100446856378:43511485431239100287:+:33356677669207756091:- 46154315150:66357754943455880708:undef:undef:undef:undef 27492026281:461493792779773393753:273687143887649719341:+:187806648892123674412:- 23028559122:780782875393389511867:183222780259840839928:+:597560095133548671939:- 20879898887:289240418968940471885:50011166837551006998:+:239229252131389464887:- 33866533095:5430286568999498031613:4587703373107517096426:+:842583195891980935187:- 72490997240:2853832777203682859457:557816804946260305562:+:2296015972257422553895:- 58220508034:6960755318661979297176:undef:undef:undef:undef 16773993745:82309308062191131745025:undef:undef:undef:undef 90780122928:47914764005555535189608:undef:undef:undef:undef 63272632392:14598393722836057045170:undef:undef:undef:undef 67616722802:523323411117586836682950:undef:undef:undef:undef 27385890062:753331857256691046762753:143202707642973498385235:+:610129149613717548377518:- 46682532055:909883549673243508446865:undef:undef:undef:undef 56316904954:4264791344244348532158840:undef:undef:undef:undef 86843264136:6475134836481391542091695:undef:undef:undef:undef 85244758659:1704360995315663471149471:1375716319199516032741418:+:328644676116147438408053:- 24288217979:353:280:+:73:- 66458437156:386:undef:undef:undef:undef 19718646513:263:106:+:157:- 95474310552:3437:1683:+:1754:- 38871356282:4851:undef:undef:undef:undef 75182558334:4501:3035:+:1466:- 74796843655:36032:4343:+:31689:- 36050059224:23891:17103:+:6788:- 19863094194:89750:undef:undef:undef:undef 19905915706:975620:undef:undef:undef:undef 71406378496:659897:96547:+:563350:- 43322859235:411789:410749:+:1040:- 54974583785:3916040:undef:undef:undef:undef 81903616712:2458455:undef:undef:undef:undef 59628024735:5215309:2878549:+:2336760:- 28705160170:49545545:undef:undef:undef:undef 67752993660:52948818:undef:undef:undef:undef 66859909995:35372569:9054285:+:26318284:- 67527342817:655522510:538008753:+:117513757:- 15698643693:766331281:174247520:+:592083761:- 47450816662:410707617:49859089:+:360848528:- 75603025144:4189222864:undef:undef:undef:undef 73542271399:3273988801:501635612:+:2772353189:- 45694664349:8734878798:undef:undef:undef:undef 66595291204:11729868098:undef:undef:undef:undef 69501488320:85284086864:undef:undef:undef:undef 36661815348:89160068445:undef:undef:undef:undef 92705945126:470374778708:undef:undef:undef:undef 69447267027:560775857202:undef:undef:undef:undef 91303815250:359828355259:191892328492:+:167936026767:- 88976813390:5090743771836:undef:undef:undef:undef 94356842579:7970259562466:6140210284291:+:1830049278175:- 14492287394:5950877408494:undef:undef:undef:undef 27377195044:42999393154994:undef:undef:undef:undef 69047709710:28449727256942:undef:undef:undef:undef 10410308560:63997569964861:13451003143715:+:50546566821146:- 15409058311:251828247387937:14973162977052:+:236855084410885:- 10493672545:954153415958701:232340346578521:+:721813069380180:- 45989252217:996320980569464:767378780584985:+:228942199984479:- 96873617454:5297182065317071:3240764072557170:+:2056417992759901:- 57978276673:6703901945872064:5953616472118145:+:750285473753919:- 59366938953:2908760366126304:undef:undef:undef:undef 57388386219:84252041112507045:undef:undef:undef:undef 28368803324:53635056952793524:undef:undef:undef:undef 74853209254:18038062502188903:13709777410524861:+:4328285091664042:- 94418480790:763270562490260143:378221230890785994:+:385049331599474149:- 32960652072:514712124794857785:undef:undef:undef:undef 23965240606:111896153469198055:96865110870983806:+:15031042598214249:- 92890852933:4317209390559678089:3232811696386326621:+:1084397694173351468:- 66083051517:7484014451845132056:undef:undef:undef:undef 95548308792:8571649108925026632:undef:undef:undef:undef 61587506973:75655998703340740251:undef:undef:undef:undef 36492167113:64830970919116544035:34452121223046558792:+:30378849696069985243:- 47414170431:66283011233668339228:19945104413754249579:+:46337906819914089649:- 83952874484:379577007442534770606:undef:undef:undef:undef 13453938845:627742400476848768996:55527279406551179597:+:572215121070297589399:- 57271608113:500351574761368549681:222800521860369745774:+:277551052900998803907:- 75522487555:3299190756552280864693:36819551463387917873:+:3262371205088892946820:- 27300549379:1326735055393879199770:573991737436460673979:+:752743317957418525791:- 54911657319:5008374103159935107694:undef:undef:undef:undef 88672660086:62868971409272686179217:13131443217355368132150:+:49737528191917318047067:- 27721936547:61710975468863072396278:5078284672196140324593:+:56632690796666932071685:- 76420567898:80335752099127143873694:undef:undef:undef:undef 88462594363:373377635745075437414215:293799652323092890492982:+:79577983421982546921233:- 87117815521:446513595128302477101979:136577511334768668327783:+:309936083793533808774196:- 71148729807:125512385439385059891171:undef:undef:undef:undef 51232114548:8590143757101949690560324:undef:undef:undef:undef 81326725359:9593507402105112306658329:undef:undef:undef:undef 22023900520:4971687822738244653894775:undef:undef:undef:undef 801813494781:678:undef:undef:undef:undef 614649489779:680:339:+:341:- 582713490936:534:undef:undef:undef:undef 138606539624:3468:undef:undef:undef:undef 386646887249:9695:undef:undef:undef:undef 992742944667:2311:1570:+:741:- 991566673011:94751:70371:+:24380:- 934470329536:63740:undef:undef:undef:undef 735070146288:48146:undef:undef:undef:undef 499441086171:764408:481699:+:282709:- 736447819242:890416:undef:undef:undef:undef 410744422180:431391:289234:+:142157:- 872858999230:2932636:undef:undef:undef:undef 464130848993:4486986:undef:undef:undef:undef 801198442388:1478327:98963:+:1379364:- 834528120443:22957683:4097378:+:18860305:- 839083962592:88971800:undef:undef:undef:undef 531999704660:91700683:20060210:+:71640473:- 951291519081:903005862:undef:undef:undef:undef 406295209764:191808480:undef:undef:undef:undef 767630672948:285294076:undef:undef:undef:undef 396206089628:2380922308:undef:undef:undef:undef 864084658545:9876586333:7807255949:+:2069330384:- 629351403044:1233285831:904356758:+:328929073:- 917873706628:10214454505:6101416017:+:4113038488:- 450336168952:47050406832:undef:undef:undef:undef 327961264819:46354078350:43277401879:+:3076676471:- 278152160238:754274017268:undef:undef:undef:undef 334541849439:476377132358:5307918097:+:471069214261:- 780640258206:789810965956:undef:undef:undef:undef 212461885210:5797066227880:undef:undef:undef:undef 358408720871:2519755171595:1684455160376:+:835300011219:- 788432904683:4182666982493:4130571200403:+:52095782090:- 549268238393:19442212278951:undef:undef:undef:undef 299139446754:85037920015177:4498991335615:+:80538928679562:- 585454695380:25115210430725:undef:undef:undef:undef 254753561822:408768593967668:undef:undef:undef:undef 966499320594:561141265883477:376004264706584:+:185137001176893:- 680059330643:339509077857030:283334972558237:+:56174105298793:- 239462108548:4528624397365167:715439292109942:+:3813185105255225:- 609935772510:6892067195528656:undef:undef:undef:undef 112362176049:9796890405922436:7452815293824665:+:2344075112097771:- 257709487380:21971416237355067:undef:undef:undef:undef 908934155940:68186412126027786:undef:undef:undef:undef 354247575039:21510025228683664:undef:undef:undef:undef 119319075259:879239967878656841:177736259493621362:+:701503708385035479:- 804254523797:494089498623257412:386906269134652865:+:107183229488604547:- 543221015155:733108339586390616:602413514390930539:+:130694825195460077:- 568086994695:5769435733689987503:973755647218364807:+:4795680086471622696:- 799727942309:8979693967765833002:2415278824207885017:+:6564415143557947985:- 262366830869:9917829171066368767:8908431466306839038:+:1009397704759529729:- 801958327711:75230504966207135247:505610354521913512:+:74724894611685221735:- 782629705679:34606782233158928567:29884919549816155087:+:4721862683342773480:- 652996323722:68540063885331894960:undef:undef:undef:undef 618053685018:736741605628135241112:undef:undef:undef:undef 406188625527:883406927340539746609:314635529675945416790:+:568771397664594329819:- 961813236447:385820578449172054833:undef:undef:undef:undef 519982801173:4684227705145691031760:896467670168264582477:+:3787760034977426449283:- 611688941091:4157999422802404413994:2207749577029259571213:+:1950249845773144842781:- 730284254238:3480969249312179218785:undef:undef:undef:undef 962781074516:38324004299157166567680:undef:undef:undef:undef 466950241209:26172428851429591731402:undef:undef:undef:undef 596945181824:72614887504841250169861:49703032847455033134280:+:22911854657386217035581:- 180618611008:244105423934601423461897:204271227432580695863257:+:39834196502020727598640:- 795860848202:245855528325337206180642:undef:undef:undef:undef 352183699793:582097768277589867216208:530299208567115343858145:+:51798559710474523358063:- 723063138545:1534932171795810802951721:1170330456803857815612608:+:364601714991952987339113:- 325553416597:3379566852740653736562254:364983928274271006821517:+:3014582924466382729740737:- 731090681506:4019669485829341860348651:undef:undef:undef:undef 539838998545:507:7:+:500:- 170374512797:247:161:+:86:- 424990958887:145:98:+:47:- 108807278437:5932:2521:+:3411:- 233178939657:5653:2715:+:2938:- 807027977703:2472:undef:undef:undef:undef 976598436356:98616:undef:undef:undef:undef 988230847568:44612:undef:undef:undef:undef 470364205892:15544:undef:undef:undef:undef 302425071635:563277:319988:+:243289:- 219475754879:216142:161539:+:54603:- 699147054562:562075:172348:+:389727:- 829675206608:8793826:undef:undef:undef:undef 589355140011:9099979:1109186:+:7990793:- 392952480622:8491184:undef:undef:undef:undef 890224064397:88284845:66381333:+:21903512:- 933681679825:22982808:20235145:+:2747663:- 782012973700:51684539:50010492:+:1674047:- 197248910099:873744194:94469581:+:779274613:- 845643881183:710460352:53055455:+:657404897:- 202542417637:738541112:706082709:+:32458403:- 661052617861:4115902967:2324341310:+:1791561657:- 344531027219:9317694786:7166878709:+:2150816077:- 394613663847:5654080162:4999665219:+:654414943:- 484541465210:33438466317:16660420985:+:16778045332:- 125383494408:23161568367:undef:undef:undef:undef 444600126192:99689925705:undef:undef:undef:undef 173574844181:932314550107:579904335202:+:352410214905:- 969975211838:270079957135:27981089787:+:242098867348:- 122749761441:399795628752:undef:undef:undef:undef 242192263334:6476490046110:undef:undef:undef:undef 524444428681:5071522667390:4569120426681:+:502402240709:- 178409154818:4375991059484:undef:undef:undef:undef 614830537503:30539577929795:4585805722412:+:25953772207383:- 735071268099:66368563915236:undef:undef:undef:undef 532875829676:12877186055234:undef:undef:undef:undef 437988491749:737381170127270:645693715044929:+:91687455082341:- 481846189288:359568635873405:270518854521647:+:89049781351758:- 458103515841:515501956010102:160770845332143:+:354731110677959:- 508366057145:9372236974262244:7974731481400649:+:1397505492861595:- 120232323906:4447604417367689:2894149251255209:+:1553455166112480:- 876848598384:1685318971853925:undef:undef:undef:undef 138479501588:32578168424815627:31166212113160317:+:1411956311655310:- 533666642770:89068727957463288:undef:undef:undef:undef 479439297147:15922726166951385:undef:undef:undef:undef 638497067661:972469011671173991:416750023327742201:+:555718988343431790:- 691022108095:930027344334722104:576090462433909527:+:353936881900812577:- 742847282780:283642538218216660:undef:undef:undef:undef 782713557290:5984673682556848052:undef:undef:undef:undef 797082615787:2591352534815129064:1377191795208135163:+:1214160739606993901:- 142147996405:7537086787316841635:undef:undef:undef:undef 991358285792:91466066258249912028:undef:undef:undef:undef 874948329633:14393999125077889850:8683795833169725347:+:5710203291908164503:- 772007967276:49324783064443875324:undef:undef:undef:undef 605080207724:966301645828029386288:undef:undef:undef:undef 112771167321:835668669621252857343:undef:undef:undef:undef 571031238297:231760969553061898185:undef:undef:undef:undef 316861472933:8755918478458246353336:5302141659834143239253:+:3453776818624103114083:- 711694537086:5504077889510662473729:undef:undef:undef:undef 635580457016:3051056699952132842912:undef:undef:undef:undef 939251853436:49421899701983410182541:14799618160338254984383:+:34622281541645155198158:- 888292517231:68887410489854961995824:20504636833150226385823:+:48382773656704735610001:- 964362919556:15768924368455017921710:undef:undef:undef:undef 664102667876:194250347475587692617411:153400360282828944863537:+:40849987192758747753874:- 628159632643:156250197014367830057358:49621189973332877595865:+:106629007041034952461493:- 924459152964:755408685432182186988710:undef:undef:undef:undef 795212888341:4749615418256194201950885:3589927199807610352267411:+:1159688218448583849683474:- 969306949612:3526700003112794244981402:undef:undef:undef:undef 435130827079:2289524153226895212844946:466605775871864438867941:+:1822918377355030773977005:- 592023096465:674:443:+:231:- 858771784505:189:122:+:67:- 483521220209:100:89:+:11:- 512353038734:5427:1358:+:4069:- 460292553468:3641:undef:undef:undef:undef 924385840680:3549:undef:undef:undef:undef 622797518286:11295:undef:undef:undef:undef 728830918974:68279:36546:+:31733:- 179031377630:83507:54019:+:29488:- 714861405363:749881:194966:+:554915:- 126498673205:306460:undef:undef:undef:undef 433396611768:456306:undef:undef:undef:undef 347938737984:6561022:undef:undef:undef:undef 267433286769:2185923:undef:undef:undef:undef 299888302428:9021353:undef:undef:undef:undef 944411807076:60730977:undef:undef:undef:undef 656857562869:52710527:8028730:+:44681797:- 175039832667:53058033:undef:undef:undef:undef 600321209741:876570444:148325921:+:728244523:- 410801666277:284543609:222814218:+:61729391:- 934740036637:787608667:186849586:+:600759081:- 236251494131:1982052282:677355641:+:1304696641:- 404959025398:1835550551:770382556:+:1065167995:- 870672061651:8280586756:7288456715:+:992130041:- 572275112907:54558901682:6459971709:+:48098929973:- 310335763983:31560369965:12580055557:+:18980314408:- 963607527071:66865319675:undef:undef:undef:undef 533277562731:594926647034:214370455925:+:380556191109:- 125436023478:260253445336:undef:undef:undef:undef 733358546590:106351570723:96439581950:+:9911988773:- 840320962822:4147586246170:undef:undef:undef:undef 960532701335:6973956365960:undef:undef:undef:undef 940977431443:1369840828496:undef:undef:undef:undef 184865250154:55595929368115:33676359108719:+:21919570259396:- 557735659133:35419485572251:6061027410573:+:29358458161678:- 379969274283:88031094139616:38462907988099:+:49568186151517:- 156962092805:192152126661625:undef:undef:undef:undef 878028583425:409543286706155:undef:undef:undef:undef 723236876934:466911911788602:undef:undef:undef:undef 838452683171:5034250413598108:3149945721189243:+:1884304692408865:- 539963468802:3504260435362874:undef:undef:undef:undef 822428386557:7975273187941436:75155367835073:+:7900117820106363:- 620025888923:72077595277040803:41727007177332291:+:30350588099708512:- 887089341627:97437220182961738:15191900082606955:+:82245320100354783:- 550152697503:28685896999083677:27775086852710002:+:910810146373675:- 907736859418:495594698307592668:undef:undef:undef:undef 844532449421:226525458486119867:92675357026312623:+:133850101459807244:- 290030108234:888870145425067508:undef:undef:undef:undef 223122478973:4881707225380243751:2311386379376493401:+:2570320846003750350:- 838180527233:4519190109670626723:468414027727324931:+:4050776081943301792:- 503051187421:2986323539257458540:2714589881726022901:+:271733657531435639:- 438195809002:20686076842979970998:undef:undef:undef:undef 928756754537:21351950083797573408:16808974269714514361:+:4542975814083059047:- 778766734206:73769662894814226457:40320347784044131633:+:33449315110770094824:- 404444348596:402652786177066040565:63723374664283980286:+:338929411512782060279:- 405709159924:476722172728050310518:undef:undef:undef:undef 123809934304:467789418272878823578:undef:undef:undef:undef 483364523636:8434115723329816871422:undef:undef:undef:undef 702997471346:6291500282469527412753:4760928087614525369936:+:1530572194855002042817:- 864677216967:4548263631270988546497:undef:undef:undef:undef 332643775867:76365755420873705024515:28669607070400315778498:+:47696148350473389246017:- 113763860947:98151136623085544064307:25867928408202816739980:+:72283208214882727324327:- 765104930615:98441551806993047906760:undef:undef:undef:undef 286058050022:728576305264353758098427:139752879596817105465930:+:588823425667536652632497:- 716047877999:607838965660317020098603:278584770701658770655661:+:329254194958658249442942:- 510369088451:857801163425997715664873:444460478417136686526255:+:413340685008861029138618:- 307360985951:3503288763328136255311097:2510688541034734103910912:+:992600222293402151400185:- 853276639479:8130173718146949584851816:4601270129124500684525999:+:3528903589022448900325817:- 178828950235:7207199066268548234950097:643719687732055328545714:+:6563479378536492906404383:- 1291023501350:388:undef:undef:undef:undef 8914519194391:964:535:+:429:- 3785490447532:442:undef:undef:undef:undef 1032797957148:3713:523:+:3190:- 8646717950722:5093:867:+:4226:- 7822123404306:7646:undef:undef:undef:undef 4626583585009:89356:87537:+:1819:- 9079556803019:46195:38574:+:7621:- 2390480680998:28534:undef:undef:undef:undef 5307875865096:638454:undef:undef:undef:undef 2604054585447:177301:162624:+:14677:- 9572431315314:829208:undef:undef:undef:undef 6524154613882:4271176:undef:undef:undef:undef 9214492721347:7906028:4237191:+:3668837:- 8988524600670:3354387:undef:undef:undef:undef 3128419233235:10999230:undef:undef:undef:undef 8739744811748:38164520:undef:undef:undef:undef 1698185551761:22414225:6134666:+:16279559:- 5166608725100:209812397:189480138:+:20332259:- 9292163213106:262047604:undef:undef:undef:undef 1223198833954:887505231:473355643:+:414149588:- 8070337179394:4970712133:3360508129:+:1610204004:- 8860537314530:3630643209:357969473:+:3272673736:- 3693132479260:6257550507:4061260069:+:2196290438:- 4172184476851:14363746781:1024378027:+:13339368754:- 9244406947072:68288755668:undef:undef:undef:undef 2081206100866:57695940124:undef:undef:undef:undef 8385576125971:787175603543:787169964879:+:5638664:- 2096667056251:328912581229:114625079406:+:214287501823:- 7323424288731:422111613028:undef:undef:undef:undef 1017580745432:9034837121298:undef:undef:undef:undef 7645405808411:4957960004916:4038709268207:+:919250736709:- 6396169306920:5326727362238:undef:undef:undef:undef 4034431934314:12003416056125:2532698405959:+:9470717650166:- 6333772770664:99793158203172:undef:undef:undef:undef 5419535907787:93637078631846:11094563055647:+:82542515576199:- 3403537814936:624399885047144:undef:undef:undef:undef 9442583388055:335098122909596:307031628652663:+:28066494256933:- 1625334867595:375831378054052:111425698331335:+:264405679722717:- 5363358779615:2507135305833967:75469955465205:+:2431665350368762:- 3001290883323:2722405776932955:undef:undef:undef:undef 5995623250285:2273699468043640:undef:undef:undef:undef 5430258233860:14879327902807915:undef:undef:undef:undef 2009480371111:81569778835077261:undef:undef:undef:undef 8060818778656:80340194042593541:undef:undef:undef:undef 1719916888552:100724926236645251:74547915463096332:+:26177010773548919:- 1710393744862:697076608870176893:541373352472864689:+:155703256397312204:- 4976335389286:793446964186858903:407020962169288668:+:386426002017570235:- 9782344892477:3843112971736180016:3233061258089819973:+:610051713646360043:- 6141658962310:5041879609625351659:23875356626025458:+:5018004252999326201:- 8551740568066:9472573456559108878:undef:undef:undef:undef 6333648282514:67511201167143917000:undef:undef:undef:undef 6698692394389:50026755934259056845:24830640442883066374:+:25196115491375990471:- 9555899774433:26907301042095664279:7787227396742833305:+:19120073645352830974:- 1059030629353:838525276893929711862:129056494743262042681:+:709468782150667669181:- 7528923048127:927075578586380555211:209297471402655112759:+:717778107183725442452:- 8063887169054:958171120653854059763:795387894419027240468:+:162783226234826819295:- 3208049129896:7976366831585787172767:3233233486633041748939:+:4743133344952745423828:- 6309040341427:9674362189053499006488:8552983429862063253715:+:1121378759191435752773:- 9749623155818:9719287505851380685775:8115263141371657388732:+:1604024364479723297043:- 4433943870539:89196508447902402325671:35275960523801223402428:+:53920547924101178923243:- 9876556694758:69976866439984982154930:undef:undef:undef:undef 6515639707808:28009617813979201035332:undef:undef:undef:undef 1074197197298:559875578462144208815527:394558243659367487946171:+:165317334802776720869356:- 8640760683747:477993359537634559273174:436327965906789379436615:+:41665393630845179836559:- 2888779880078:803738423244008874013738:undef:undef:undef:undef 1908619457359:8138382794657404423762001:undef:undef:undef:undef 7054234893560:1056608545958678939471428:undef:undef:undef:undef 7106767104199:2917558549771734775363859:203288873615993146732340:+:2714269676155741628631519:- 1030380160791:234:undef:undef:undef:undef 2258390333510:990:undef:undef:undef:undef 7024855777816:932:undef:undef:undef:undef 5493786002265:1409:1124:+:285:- 5928014438306:4399:940:+:3459:- 9896217023290:5514:undef:undef:undef:undef 1910244733179:78949:425:+:78524:- 6828469218904:79823:78501:+:1322:- 6405863332370:47400:undef:undef:undef:undef 9804063740054:374439:130571:+:243868:- 8313560070776:748383:156935:+:591448:- 5061435378822:128685:undef:undef:undef:undef 9883247622927:2333038:1370789:+:962249:- 4979734023742:5031402:undef:undef:undef:undef 5976191364757:6606892:4625289:+:1981603:- 9434394919019:71904598:44074559:+:27830039:- 5744906695193:97046797:76432966:+:20613831:- 1823025036284:23306578:undef:undef:undef:undef 1174132474849:342456025:249863524:+:92592501:- 4435724095908:705167838:undef:undef:undef:undef 5077520244148:563870137:401183334:+:162686803:- 9711203545679:4902171334:2336745527:+:2565425807:- 5878184522319:7498448356:6651061083:+:847387273:- 4744078864603:5023138454:2239998055:+:2783140399:- 5420081302707:26416299072:undef:undef:undef:undef 5971439306304:39672411949:11649453037:+:28022958912:- 5016596778254:16223684920:undef:undef:undef:undef 5712064772630:679792609931:368221620260:+:311570989671:- 8403824194300:220717020448:undef:undef:undef:undef 1977375942491:659702846061:319492565066:+:340210280995:- 3435584516591:1982999650351:1913477914278:+:69521736073:- 5941331658929:2673352465796:2604118111353:+:69234354443:- 8249577104639:1338703943813:756011906196:+:582692037617:- 4581747637252:24729639181141:21747782363449:+:2981856817692:- 2214350672483:42902804752313:32059610779969:+:10843193972344:- 7715587643575:61460743575338:33111498021069:+:28349245554269:- 5009695000489:433000119308412:263235766091857:+:169764353216555:- 2780831705629:185208281993624:69043791644877:+:116164490348747:- 7672825582131:783604471358360:739393030548611:+:44211440809749:- 8156222205180:3109219503077603:2997452198829590:+:111767304248013:- 1611962821695:7753482891122737:4217262153111896:+:3536220738010841:- 1344055558642:5791429807975789:5112620760498172:+:678809047477617:- 4156214896181:87433200209380821:4036022290114826:+:83397177919265995:- 8791183056533:17266888371263604:14832887253985193:+:2434001117278411:- 2839215467930:15333716803930859:341925618428854:+:14991791185502005:- 9031332797533:772530159158786604:402766106248262089:+:369764052910524515:- 2245892394672:284589341468628386:undef:undef:undef:undef 6628793050257:918609146713656399:undef:undef:undef:undef 6888105415513:7118362515738178674:6967784838104010145:+:150577677634168529:- 7206964244227:3639346422097103707:undef:undef:undef:undef 4933299662870:6579052994026192680:undef:undef:undef:undef 4398085936722:66388421222434399522:undef:undef:undef:undef 6175959807798:76779693447599364073:14857859458457959606:+:61921833989141404467:- 6354148141102:66813618696883914548:undef:undef:undef:undef 9044150524871:389568594988388272031:143314042521346984622:+:246254552467041287409:- 4814210746040:433732095415239717640:undef:undef:undef:undef 9332634314099:670452109194680918419:248334238592552688857:+:422117870602128229562:- 5736492543705:3417271280284106866398:undef:undef:undef:undef 8631249657919:4733409781476931748466:undef:undef:undef:undef 6094039989815:3369611319342579140308:undef:undef:undef:undef 2583722297996:81431725479896681304979:80871272679086793096342:+:560452800809888208637:- 5052888472673:98441868147600474128263:65698019907280289160744:+:32743848240320184967519:- 8460071803145:27471057113022476057946:23026358277427942455881:+:4444698835594533602065:- 7132691709237:826698072835415700701165:69199391036873572813993:+:757498681798542127887172:- 2583208598211:141965554366100683592394:undef:undef:undef:undef 2952268207666:929365864320562368929665:515267089928966547880216:+:414098774391595821049449:- 9914834185011:4152022126245706552477635:undef:undef:undef:undef 1095175494003:2854286084007478686356058:undef:undef:undef:undef 4146822388736:4652366122252896909889132:undef:undef:undef:undef 2667542060084:638:undef:undef:undef:undef 2619119100856:489:286:+:203:- 5471150765644:370:undef:undef:undef:undef 5422654770852:7372:undef:undef:undef:undef 6365483515997:1073:1054:+:19:- 1710773704709:4129:3900:+:229:- 6510241656717:32085:undef:undef:undef:undef 6235004204836:27246:undef:undef:undef:undef 1732986290243:93180:69947:+:23233:- 5052128210619:435359:169861:+:265498:- 7399143702223:313670:undef:undef:undef:undef 9220140871626:972167:606304:+:365863:- 6284334576066:5895034:undef:undef:undef:undef 4896160553553:9274979:6807596:+:2467383:- 8779608519310:1592172:undef:undef:undef:undef 3157760648638:66068639:7197898:+:58870741:- 4203379869707:59797957:50656115:+:9141842:- 2971463108306:81421624:undef:undef:undef:undef 5328039225959:852041219:427109386:+:424931833:- 7223208263787:908347961:490453814:+:417894147:- 6927677824560:729677136:undef:undef:undef:undef 3140617177719:7406264281:2914743811:+:4491520470:- 2686879345811:3583132633:3327906441:+:255226192:- 6080468876608:2170360246:undef:undef:undef:undef 9098349290101:71600559760:13452198141:+:58148361619:- 7604498372334:48716148153:undef:undef:undef:undef 8325583873372:37640609809:30787652453:+:6852957356:- 6221232427758:290437631553:undef:undef:undef:undef 8821824668483:702144063403:691600211398:+:10543852005:- 4687867113852:264453784429:127080233520:+:137373550909:- 9644890486005:5477732202644:2493098621109:+:2984633581535:- 8125551631964:5575596507948:undef:undef:undef:undef 5773855716888:1760621459038:undef:undef:undef:undef 2559983729582:69365648684953:60871322159710:+:8494326525243:- 1924351727803:33553112408704:31625736998899:+:1927375409805:- 2644362096267:65724220634548:47791138766439:+:17933081868109:- 8355484245824:824562588638974:undef:undef:undef:undef 7037413211838:812311386088899:undef:undef:undef:undef 1070483870636:435794905825191:181215486509786:+:254579419315405:- 6491531242222:5633823079615786:undef:undef:undef:undef 6668820087505:9628109909302839:7654626150035173:+:1973483759267666:- 2839652215339:8815014773976322:5149003288847161:+:3666011485129161:- 1932220292086:77170485402188702:undef:undef:undef:undef 9997825576413:10618337018321008:10616517158266469:+:1819860054539:- 7106293740130:50737737820648492:undef:undef:undef:undef 3392977621608:655251102893400214:undef:undef:undef:undef 4223389353572:811417685730993197:220842614198112902:+:590575071532880295:- 5652380780383:583349107691936260:509221536673843367:+:74127571018092893:- 5791577032799:8251416945259750553:7794291602965443924:+:457125342294306629:- 1247512998393:2249359443414575445:undef:undef:undef:undef 6971618691212:9207833474645285898:undef:undef:undef:undef 8900153629539:94334836519360477366:85183123065866489989:+:9151713453493987377:- 4311417354546:78262827216046020061:8386019697177381088:+:69876807518868638973:- 3243037981184:45832612841302700965:42601922870979784739:+:3230689970322916226:- 3712620993619:285041594277832457479:158237595076864455834:+:126803999200968001645:- 1270319397242:498708369749383154597:317894219152632299589:+:180814150596750855008:- 6492783513938:964467096458786966285:251995148231274439117:+:712471948227512527168:- 1289041366441:4239769176510963802726:4080966709529097254761:+:158802466981866547965:- 6731947997059:7768652953268121670028:519938904794059922027:+:7248714048474061748001:- 6729581797199:8021542434360932073457:2755387615898763075605:+:5266154818462168997852:- 4299998412201:69471492938697161449273:2763651428718504669975:+:66707841509978656779298:- 4113635691355:68134614028318691720941:13795117835105828764729:+:54339496193212862956212:- 9124584228095:95599165172048776463126:71149298633605346150427:+:24449866538443430312699:- 5850631452640:912906823809690438386863:441622011063435797449167:+:471284812746254640937696:- 6628780837241:391171427042986582844518:207555674057408922921767:+:183615752985577659922751:- 7096926793765:930894536386130236782553:513250363597403962327949:+:417644172788726274454604:- 1055155853749:1924931603880980247666996:1384901126682163985304925:+:540030477198816262362071:- 3752660520486:9280906580842118223224343:undef:undef:undef:undef 9412962478799:3024215647789167411218260:1715638284602927466244319:+:1308577363186239944973941:- 35522923200296:634:undef:undef:undef:undef 57181270785364:924:undef:undef:undef:undef 76194815537582:639:458:+:181:- 57257650734160:1125:undef:undef:undef:undef 98865799357931:6643:3684:+:2959:- 25718494339513:4073:2064:+:2009:- 49753535089119:36834:undef:undef:undef:undef 37945280665304:39827:13107:+:26720:- 53807078108355:40771:9745:+:31026:- 16620349380813:752697:undef:undef:undef:undef 15854681659924:496080:undef:undef:undef:undef 62312826385242:196766:undef:undef:undef:undef 31323145663904:2045813:2010384:+:35429:- 36156678006696:7555621:5504458:+:2051163:- 76415920596621:3553394:2702601:+:850793:- 83602933541468:52389986:undef:undef:undef:undef 47453343443465:34489920:undef:undef:undef:undef 77665007544214:30973837:5162437:+:25811400:- 60564969964988:859177652:undef:undef:undef:undef 45395992446778:327338644:undef:undef:undef:undef 99031887544217:307576697:305015535:+:2561162:- 57295457423213:2486969440:2396147237:+:90822203:- 98649419506113:4506438861:undef:undef:undef:undef 61132782749273:7844700626:7010480255:+:834220371:- 33969051339731:38805798647:26908457725:+:11897340922:- 32618134075507:34593650870:30599815763:+:3993835107:- 72421520865615:90742668228:undef:undef:undef:undef 96783030974133:104550552917:62241397572:+:42309155345:- 77999419290164:135426628833:117198185558:+:18228443275:- 47711493019423:485606779719:54673548769:+:430933230950:- 14938571358248:1780359622360:undef:undef:undef:undef 62467611171369:2764235263583:750922106125:+:2013313157458:- 68728690999516:7456448281341:4108753780990:+:3347694500351:- 94480261537162:13098773973314:undef:undef:undef:undef 62873473876449:85609346453306:19685023095043:+:65924323358263:- 26103183795343:93952702106289:30739840730893:+:63212861375396:- 97983301053655:266833113684459:245564128428442:+:21268985256017:- 89251925892490:721161704476919:565332285977250:+:155829418499669:- 86847836348596:840288898954459:589599776643864:+:250689122310595:- 58241943230420:5504902549178745:undef:undef:undef:undef 50902392027610:8641986133070199:5995234828175812:+:2646751304894387:- 91175131571309:4884072656666332:2138825994995657:+:2745246661670675:- 75706177722760:41408791837793839:941029647325324:+:40467762190468515:- 82706784759336:50049258979149354:undef:undef:undef:undef 95384977735233:31297080808196148:undef:undef:undef:undef 84076015185718:756239335951243682:undef:undef:undef:undef 13285524212026:663940549353818532:undef:undef:undef:undef 33712258527320:840503203547687032:undef:undef:undef:undef 51891629158085:4370330596001964501:2180700326615269670:+:2189630269386694831:- 58932044552732:1761724527436715359:1307433128356703706:+:454291399080011653:- 82491579726244:3648839307908675837:1655976001686484090:+:1992863306222191747:- 11221487332062:93961837036880203288:undef:undef:undef:undef 15464856220914:85283438058602475019:73460515785035729101:+:11822922273566745918:- 80414717590454:54422406546783016738:undef:undef:undef:undef 75390041825046:618735112504432132321:1669799685651933460:+:617065312818780198861:- 81298287836368:922512690650405753225:133292741494556687407:+:789219949155849065818:- 30462189008225:129860946115201329643:107650202575816188306:+:22210743539385141337:- 28053152938183:6968699673997304528683:4807205285550532186073:+:2161494388446772342610:- 62645469470883:3485795550924374448267:undef:undef:undef:undef 36290345952627:2138411031242920520721:undef:undef:undef:undef 74017734891718:40545327342300947909872:undef:undef:undef:undef 49645250489728:18644884920602335124413:7529551137874837234352:+:11115333782727497890061:- 32074696561708:71779094711734976333290:undef:undef:undef:undef 75924008296972:448662231159554055843685:64762263832345101252333:+:383899967327208954591352:- 62913244261984:593448552354897276206101:154500242057264055861278:+:438948310297633220344823:- 96188784659388:818759232259998368516563:65412096483544929731036:+:753347135776453438785527:- 27368960718596:3412858882021757767890963:undef:undef:undef:undef 37415765084909:2386539707005775650785383:2248794086512464352265461:+:137745620493311298519922:- 10183062115420:5081386526381887802183289:4350480488116397730436354:+:730906038265490071746935:- 15478786464823:121:undef:undef:undef:undef 69202720470006:890:undef:undef:undef:undef 10076631913576:613:11:+:602:- 84467299324713:9960:undef:undef:undef:undef 26777117410898:2778:undef:undef:undef:undef 16293134047963:1431:70:+:1361:- 79997372098343:64456:undef:undef:undef:undef 55274002702722:82872:undef:undef:undef:undef 39204575417309:10137:undef:undef:undef:undef 46262550860337:662232:undef:undef:undef:undef 49622887012954:712204:undef:undef:undef:undef 62495623205097:764266:666811:+:97455:- 45600410054637:4704823:2793824:+:1910999:- 78485464217166:1407140:undef:undef:undef:undef 37901952633099:5559379:1876249:+:3683130:- 89628527454331:75726584:17647363:+:58079221:- 49284217709259:43584686:26429033:+:17155653:- 79252304262143:27000409:2147127:+:24853282:- 78679736100653:860466736:233681989:+:626784747:- 69938203931346:763747995:undef:undef:undef:undef 59053772922835:851644177:406222145:+:445422032:- 25262621201509:9296982356:9164624697:+:132357659:- 38892359871000:2005094152:undef:undef:undef:undef 35968793342881:9553127583:2635314922:+:6917812661:- 53503037458531:21245707669:15903255320:+:5342452349:- 75039198250851:92214128066:16875246345:+:75338881721:- 93356499049629:61738594247:undef:undef:undef:undef 73152497007636:810778180972:undef:undef:undef:undef 19888336877773:290420286146:162449503279:+:127970782867:- 51380179088400:359070650016:undef:undef:undef:undef 13882131384395:4335262478819:113048699900:+:4222213778919:- 48141505872497:6045088167525:876096864833:+:5168991302692:- 94483053473371:3051995424067:1883219118933:+:1168776305134:- 75385622497079:73663124732334:34092563581913:+:39570561150421:- 96110129825183:97306846551413:5561886685972:+:91744959865441:- 55861927240666:31084766799463:8999171473735:+:22085595325728:- 23805795533287:570574994774361:279309427250035:+:291265567524326:- 70544666574231:200438009622566:121452680322985:+:78985329299581:- 98002873595613:643891331744488:529287010314549:+:114604321429939:- 82024307286205:3154950660790085:undef:undef:undef:undef 30156458638523:3954237661640143:218476896058202:+:3735760765581941:- 89154615402438:9373998638475323:7833220469452852:+:1540778169022471:- 51677124964654:81828106705748927:71983096814493461:+:9845009891255466:- 70373931226237:95577751560012759:7598618561661202:+:87979132998351557:- 25853195971451:65661000088735369:8755222804092063:+:56905777284643306:- 74401344682269:499939076031484377:undef:undef:undef:undef 45755932107022:708219472599773786:undef:undef:undef:undef 92740092264260:752301923628377165:undef:undef:undef:undef 16712726948182:7739389375423089033:2483047104668307367:+:5256342270754781666:- 43445532135970:9881057663450000596:undef:undef:undef:undef 29185876416348:4558945063955143416:undef:undef:undef:undef 25742934549156:63115445089321475348:undef:undef:undef:undef 74265457520547:22432569711930017104:10561278554179141067:+:11871291157750876037:- 89954227929484:65835987116620817046:undef:undef:undef:undef 36842296827474:160339718277210969776:undef:undef:undef:undef 11158763341091:657674011792350918256:337809588750180521579:+:319864423042170396677:- 82534997560542:351216201673829805012:undef:undef:undef:undef 44588024637775:6543928690426153292118:4788206348026011488803:+:1755722342400141803315:- 43368203998572:6702826515429349604423:4870302567904153372278:+:1832523947525196232145:- 83844596013205:2110617338012926982867:538050524574304865895:+:1572566813438622116972:- 76517645663653:87048326902813598728276:8802008007711028789509:+:78246318895102569938767:- 48253056282531:14379620566404380515792:7001061341764986492843:+:7378559224639394022949:- 35287846873702:71066164085887300909249:32864407347397594925174:+:38201756738489705984075:- 44013785910309:287676955041574608229925:243543647669102542710664:+:44133307372472065519261:- 13311054472398:993326004301248447933156:undef:undef:undef:undef 52012500961213:246616861226633860548023:111661413119811442889609:+:134955448106822417658414:- 84952659316024:2903823002995793605530535:1677137118898306857690389:+:1226685884097486747840146:- 41377984223283:9816325603455103199788018:1640445767889877784027285:+:8175879835565225415760733:- 71305632950429:3746272423411191331790060:1187896005842721883233049:+:2558376417568469448557011:- 12144440849326:694:undef:undef:undef:undef 63224563667168:706:undef:undef:undef:undef 24660746795804:528:undef:undef:undef:undef 72271763373199:5445:5344:+:101:- 32794764412772:8213:7772:+:441:- 62099092734896:9331:undef:undef:undef:undef 52651721479808:74274:undef:undef:undef:undef 14581506804904:17592:undef:undef:undef:undef 51600239269306:31817:541:+:31276:- 86943330130438:934959:170518:+:764441:- 46700657000396:328978:undef:undef:undef:undef 24799002341989:779689:177382:+:602307:- 63825906516702:2095626:undef:undef:undef:undef 27823593285985:7314358:6658063:+:656295:- 57693736785324:8154066:undef:undef:undef:undef 38359515045221:77221858:49871569:+:27350289:- 69200745303265:14113655:undef:undef:undef:undef 40924348891630:42764546:undef:undef:undef:undef 19776709873877:765952147:405977045:+:359975102:- 26756608309567:458794160:310011023:+:148783137:- 13671318203145:418146403:302620867:+:115525536:- 98729740497908:3490559723:2218516640:+:1272043083:- 78935686496777:5693467235:1905288438:+:3788178797:- 29892280324571:5358168457:3546413190:+:1811755267:- 72113122274020:98464011846:undef:undef:undef:undef 13810533889434:47743368423:undef:undef:undef:undef 17001604103084:22525430362:undef:undef:undef:undef 46203005217917:788036447607:64269889838:+:723766557769:- 96096266258815:135042354904:33205856455:+:101836498449:- 45067379118683:982044126422:306909434363:+:675134692059:- 95598050428116:8630619044485:8055656402216:+:574962642269:- 93840260317516:3817032862846:undef:undef:undef:undef 23642234946698:4264111985069:2770400979324:+:1493711005745:- 41590295481973:48109020285470:42442789016117:+:5666231269353:- 75596253364904:77847224731850:undef:undef:undef:undef 73291951484542:73456311925517:45371300315810:+:28085011609707:- 47844443558790:654992051455722:undef:undef:undef:undef 19822382386128:700726841128307:undef:undef:undef:undef 83140469194618:443285708887785:362208934498087:+:81076774389698:- 41986141058217:1309503449525957:87377812597529:+:1222125636928428:- 68086073022664:9438221220738143:3364254420680274:+:6073966800057869:- 68860587219274:2799565853421436:undef:undef:undef:undef 14112751551213:97700637856663653:undef:undef:undef:undef 53215249099174:75869584615332213:71616742920601924:+:4252841694730289:- 18942243091954:79906960076612625:17417111870851519:+:62489848205761106:- 12937685838708:213686491127509264:undef:undef:undef:undef 94182247860110:327530032088390401:76440536440212626:+:251089495648177775:- 17515210008222:226697714661821283:undef:undef:undef:undef 47248923796198:3406249671011508599:431548213597605730:+:2974701457413902869:- 23728195750197:8354575163725872138:undef:undef:undef:undef 28252506367128:3123655340235727687:489811028863659851:+:2633844311372067836:- 77653981760712:43991897778268523136:undef:undef:undef:undef 62307307596337:23442770455100318240:6827114837377337073:+:16615655617722981167:- 76809170128864:81693945209882598091:18774983500429406701:+:62918961709453191390:- 74323251803879:133043135358710188075:112128269782191698219:+:20914865576518489856:- 39496821921800:215308441099663738264:undef:undef:undef:undef 75573123679526:970321956738426006273:262260002784602944181:+:708061953953823062092:- 64093396075742:1365145810073714971279:805497561843790363488:+:559648248229924607791:- 85129728895176:5850060330326795500815:undef:undef:undef:undef 35086336179273:7710824089175799143499:undef:undef:undef:undef 93991134779567:21910482078489229886991:14068711299867429042908:+:7841770778621800844083:- 22130693305836:33594622107208782150353:2821416032919768547346:+:30773206074289013603007:- 94186900049380:96267224445464823607976:undef:undef:undef:undef 59947414409568:160897712459335661945221:16183766426439062840578:+:144713946032896599104643:- 98161517078501:803561610903872263163737:608137181322884490803533:+:195424429580987772360204:- 87444547802757:594531976734977402236119:undef:undef:undef:undef 82252341906866:8613650423884889815427258:undef:undef:undef:undef 38518751231172:4704718701508252893230437:1066402185034851361727231:+:3638316516473401531503206:- 13808805428541:3856291955818964279110506:undef:undef:undef:undef 728558154702269:800:629:+:171:- 464126645687857:852:505:+:347:- 828854899023291:603:undef:undef:undef:undef 451826920243478:8054:undef:undef:undef:undef 400396011204960:3821:1021:+:2800:- 952450704249276:1319:672:+:647:- 439231300155720:69505:undef:undef:undef:undef 915305722830579:85907:78073:+:7834:- 162854590664408:49073:36243:+:12830:- 698863581755521:127475:123031:+:4444:- 642338998656189:956766:undef:undef:undef:undef 168778341895385:795281:274560:+:520721:- 574895215447259:1375717:undef:undef:undef:undef 512674070748493:8571273:2349844:+:6221429:- 878899446069318:9324712:undef:undef:undef:undef 791083719725767:22094285:19813748:+:2280537:- 570756210425841:46381368:undef:undef:undef:undef 898958442946843:75532446:73343251:+:2189195:- 497436694227405:715732297:276875204:+:438857093:- 176320278021766:954529903:265774473:+:688755430:- 651156419179418:398850990:undef:undef:undef:undef 662525530661225:1872470885:undef:undef:undef:undef 150375630839847:8367667643:445582338:+:7922085305:- 485276826894726:3161393037:undef:undef:undef:undef 639746323359247:33476357254:20058950403:+:13417406851:- 898461573421918:14651432363:7946527006:+:6704905357:- 758059448910712:31720372410:undef:undef:undef:undef 148600376943573:355805151168:undef:undef:undef:undef 523765514002023:745726111068:undef:undef:undef:undef 889123837797237:686267994099:undef:undef:undef:undef 778353850567149:8758800120077:4810219581550:+:3948580538527:- 994676759240856:6073282694990:undef:undef:undef:undef 167077198294565:8436015139306:2634527274591:+:5801487864715:- 122942443916326:51867756638506:undef:undef:undef:undef 503648283021282:75341352806966:undef:undef:undef:undef 357042275147092:13854855417377:4119720892229:+:9735134525148:- 387428611281261:978461194785577:70380344239530:+:908080850546047:- 590637516453151:517988597383851:29123128536475:+:488865468847376:- 363957878598332:551009901339132:undef:undef:undef:undef 876925159115759:7728142602922191:4725588992540147:+:3002553610382044:- 372041367672818:8649545762904626:undef:undef:undef:undef 130876807071190:4126047455634965:undef:undef:undef:undef 827754262395037:66423460111476884:2442002818599613:+:63981457292877271:- 215104066403004:71126165636485512:undef:undef:undef:undef 139217178178097:17346395103766437:7031634868342013:+:10314760235424424:- 692121964657925:821180962822219363:688475176928695354:+:132705785893524009:- 743933453191688:209297748571284886:undef:undef:undef:undef 920668259954788:105668935327519891:87129027262339903:+:18539908065179988:- 922608205845945:6381152885416389547:6100863487063038969:+:280289398353350578:- 598127451365057:5210051178482495530:1838263852770669933:+:3371787325711825597:- 973059395746071:2391326952815458926:undef:undef:undef:undef 497437518925867:33763405035422198600:9871450367394101803:+:23891954668028096797:- 837384153487360:88845487132310477084:undef:undef:undef:undef 753204798523917:12255085936084066306:600794244795188349:+:11654291691288877957:- 859752729764405:341385704218391874826:97665052096579287355:+:243720652121812587471:- 708381549066076:871632851879985471526:undef:undef:undef:undef 258845104926756:355238975171811067393:116908861803386810426:+:238330113368424256967:- 244738239777262:1880933364665171731293:1604652583038687012967:+:276280781626484718326:- 242338695153972:5435020953653204364897:undef:undef:undef:undef 162988507230936:7974386155679607949418:undef:undef:undef:undef 399269657134096:68875130562375605561821:undef:undef:undef:undef 128296916274203:46901748031625432160348:45996912318870318468071:+:904835712755113692277:- 981575687027652:34353291424459284018378:undef:undef:undef:undef 554103357629250:445294027509035399641464:undef:undef:undef:undef 160435825129644:823828482782605416128899:245958859306361599986982:+:577869623476243816141917:- 444177994509049:568708736268692931683715:517927728060377863545229:+:50781008208315068138486:- 444937587409290:4908956687382877797141677:4823180930450345201886187:+:85775756932532595255490:- 913793666016334:5450644045501142443741177:5013731754224549302771058:+:436912291276593140970119:- 579802512972038:2085058098904137287038830:undef:undef:undef:undef 715911434981904:187:129:+:58:- 332736424184517:894:undef:undef:undef:undef 981574328739004:969:undef:undef:undef:undef 880697100457990:5976:undef:undef:undef:undef 486624229079888:9768:undef:undef:undef:undef 469187261898117:1586:965:+:621:- 983467908051667:68987:2434:+:66553:- 757970591261065:59118:34855:+:24263:- 948158568176614:88043:18296:+:69747:- 422670273116456:320058:undef:undef:undef:undef 931018826865212:121689:88433:+:33256:- 818294658294244:387049:381512:+:5537:- 903560862243716:4144922:undef:undef:undef:undef 428970194413039:6218606:3397747:+:2820859:- 723257278504514:9247641:undef:undef:undef:undef 205397214361397:38166234:15398477:+:22767757:- 842300760053495:22670897:13779898:+:8890999:- 965681766127293:34236330:undef:undef:undef:undef 592720380098190:202701236:undef:undef:undef:undef 718847304283852:418109440:undef:undef:undef:undef 817672608493880:927123966:undef:undef:undef:undef 719591658582369:2028016095:undef:undef:undef:undef 215874954109024:4157287849:1570213756:+:2587074093:- 819138328010671:3485070453:1045319641:+:2439750812:- 151920083837769:59467974618:undef:undef:undef:undef 603224040433396:50439368172:undef:undef:undef:undef 549692484550264:81386440341:6249633904:+:75136806437:- 134070785664296:365581284525:283802609531:+:81778674994:- 460438814476451:866179741904:597218689659:+:268961052245:- 792458135509027:782035187480:428336130763:+:353699056717:- 385901173964821:3780311463428:1421276769769:+:2359034693659:- 347939279865051:8758092615194:2058526876923:+:6699565738271:- 857918347348662:3974305146414:undef:undef:undef:undef 921847342945342:32554291867765:14903637464063:+:17650654403702:- 565444013144174:30586732591123:8468488097634:+:22118244493489:- 153031033393395:80125937028483:undef:undef:undef:undef 711618124841181:831566900079115:691188416580386:+:140378483498729:- 185743949720747:284469960212964:166602940494707:+:117867019718257:- 624806234522595:667778408413465:undef:undef:undef:undef 396350849418865:5229741379867891:3691173607831774:+:1538567772036117:- 536609586389447:6933344567517833:6115121525232572:+:818223042285261:- 640365357334723:3309146204415845:2706148829787972:+:602997374627873:- 769367720700040:40233546164517412:undef:undef:undef:undef 326761876649725:83887642608393153:49006631462026837:+:34881011146366316:- 148158890027982:92503371428660592:undef:undef:undef:undef 764105966947642:916714062142845646:undef:undef:undef:undef 324411392601170:822844408365620350:undef:undef:undef:undef 427017250104314:269173258905422307:166809313859067443:+:102363945046354864:- 132974813548680:9229205610959882644:undef:undef:undef:undef 934096205871812:9118680270515409406:undef:undef:undef:undef 985630651877363:9143354659111431661:2377475095296831814:+:6765879563814599847:- 989845308705999:92030848977492782807:51457680329979932029:+:40573168647512850778:- 430064650133347:15355343148660519499:13416021071649725094:+:1939322077010794405:- 619557857254736:77545737319476500074:undef:undef:undef:undef 218945363906535:676713962769435763274:346918529941699251683:+:329795432827736511591:- 282130808835865:790620812865593519104:732120673458091814185:+:58500139407501704919:- 149805682361961:969147018920702335581:undef:undef:undef:undef 354317847225915:7314426746402852687593:163083638291320521322:+:7151343108111532166271:- 389725010387360:1941712073448008324395:undef:undef:undef:undef 950524184574372:5730085870463179120596:undef:undef:undef:undef 642356121518562:66986769556535658760400:undef:undef:undef:undef 404056517578608:48761566533789456022980:undef:undef:undef:undef 157708137861456:76771721727489630223374:undef:undef:undef:undef 146627476330735:964616757317813692905317:921602805273860892026693:+:43013952043952800878624:- 255143799489242:895923090101259738008181:739189755690376890893765:+:156733334410882847114416:- 881102836724883:183566843564327650574472:undef:undef:undef:undef 934000689096342:7363029663629414997603260:undef:undef:undef:undef 351320917059615:7728531259260561630240891:undef:undef:undef:undef 451167462642105:9141347212428985458916014:undef:undef:undef:undef 241214003377902:841:162:+:679:- 427079406739933:453:196:+:257:- 841900355547148:294:undef:undef:undef:undef 163146089159841:5330:1201:+:4129:- 963041775217155:9777:undef:undef:undef:undef 661865536781762:2306:undef:undef:undef:undef 608749614195670:85957:66475:+:19482:- 787355359758778:96064:undef:undef:undef:undef 963689771922466:74185:undef:undef:undef:undef 614717016286331:872171:188397:+:683774:- 521063024189600:586592:undef:undef:undef:undef 807924026323012:573662:undef:undef:undef:undef 397360318799844:6712777:1155783:+:5556994:- 499880900313875:8662194:868271:+:7793923:- 216450114480327:1498733:1302693:+:196040:- 852611438938913:70060304:16670929:+:53389375:- 189823641207200:13191458:undef:undef:undef:undef 254481947407399:78125347:52493008:+:25632339:- 534682821367598:112069120:undef:undef:undef:undef 818475334073039:368877254:84827487:+:284049767:- 352007947510866:605982493:296118753:+:309863740:- 661549466684476:4041233872:undef:undef:undef:undef 749556657504038:8099417582:undef:undef:undef:undef 934047687493198:6400700322:undef:undef:undef:undef 869132340045482:33495198313:20165334044:+:13329864269:- 901625380674965:25995346949:5202076067:+:20793270882:- 451272130822722:47055246763:43208138777:+:3847107986:- 206554877479417:240244417406:68703374267:+:171541043139:- 267200655705298:937800002840:undef:undef:undef:undef 425863686876990:774212142077:84123297752:+:690088844325:- 725729932518632:5203835733772:undef:undef:undef:undef 263926451543558:9193184075151:5185979756057:+:4007204319094:- 254447932163603:3036974297897:932235242973:+:2104739054924:- 842211852400734:30719555272008:undef:undef:undef:undef 276164810898707:96110227539335:56753597346538:+:39356630192797:- 162715711213793:88751979337820:58035344000837:+:30716635336983:- 554581292527349:468349414859331:215127040567859:+:253222374291472:- 612791909857160:135020014513187:56585290882146:+:78434723631041:- 289199213896943:924305534896479:157842916806773:+:766462618089706:- 503869881485078:4800010919333887:3140185984823498:+:1659824934510389:- 659680353075218:2097024323473941:20602134879752:+:2076422188594189:- 470784801980157:2476052524555393:undef:undef:undef:undef 894922164807617:60407445781263412:undef:undef:undef:undef 653410693030439:44777476635867404:29701641839615783:+:15075834796251621:- 588636543349631:46135952075961245:12667424830166556:+:33468527245794689:- 154719537347498:199086978372671745:100135796120568362:+:98951182252103383:- 417015921098265:711616325104127328:undef:undef:undef:undef 391231816921489:183270715416106255:172739572636566099:+:10531142779540156:- 956671474096354:8295046921461418170:undef:undef:undef:undef 616583070423927:9586228385320636171:5184584451123408737:+:4401643934197227434:- 313155285471313:8546200735889453539:5244509552992436149:+:3301691182897017390:- 608289805916728:30380994068504548938:undef:undef:undef:undef 987550572927545:54043735960667076091:52700703858091094555:+:1343032102575981536:- 798625597564455:18902638090583917869:undef:undef:undef:undef 355287564736527:597169124005858900121:270356251715215075618:+:326812872290643824503:- 289265282559714:756347326025791628412:undef:undef:undef:undef 856754322007345:272853476611015715005:undef:undef:undef:undef 849739954855848:9097970213053493174975:6453634815733827946962:+:2644335397319665228013:- 103330312951346:5969872342459466427239:undef:undef:undef:undef 237161257529439:3040738115300583471479:1732267520191015033519:+:1308470595109568437960:- 747025873355636:64871520523658055568359:20583893666269089829250:+:44287626857388965739109:- 662026139719676:41436790906600971440603:11712120460003299559599:+:29724670446597671881004:- 108078521265698:40382412037231818681053:25499384608130553402996:+:14883027429101265278057:- 873836509482432:572596344320415113555830:undef:undef:undef:undef 125090228626031:781069136077556352291021:468704975588583405932048:+:312364160488972946358973:- 253266233816303:511817951361180120499987:357320460229348718117195:+:154497491131831402382792:- 424218954387871:6953182487296273053267924:4487279150880027164222503:+:2465903336416245889045421:- 996317219483882:4127334798153728372804394:undef:undef:undef:undef 374405555416380:8090627742427721530205458:undef:undef:undef:undef 2296100806546680:482:undef:undef:undef:undef 8990668541567382:179:14:+:165:- 5369330375253586:678:undef:undef:undef:undef 1387424364200409:2287:11:+:2276:- 9539300859734009:5142:2261:+:2881:- 6502309117825082:9940:undef:undef:undef:undef 5141171473510589:41562:10601:+:30961:- 5934801348466359:76254:undef:undef:undef:undef 8800672002350256:52637:24356:+:28281:- 7114439731398992:790994:undef:undef:undef:undef 7135836022821261:831523:undef:undef:undef:undef 6680671401216078:921102:undef:undef:undef:undef 3248703399031394:8117938:undef:undef:undef:undef 6377739796473143:5893992:4767167:+:1126825:- 4828893941429366:2950897:1756182:+:1194715:- 5818354736846205:81982339:3035299:+:78947040:- 4366419423202610:96942126:undef:undef:undef:undef 5330308258626952:69473030:undef:undef:undef:undef 3082450128488293:963764090:913758847:+:50005243:- 2295392651181664:950310540:undef:undef:undef:undef 1065742832284893:475717780:95199837:+:380517943:- 4976794163983255:5641938370:undef:undef:undef:undef 3955413616942016:2366101734:undef:undef:undef:undef 5919605937875613:6051466481:3333751546:+:2717714935:- 4731608691402900:98641022322:undef:undef:undef:undef 4237495572454343:72726048114:40709739179:+:32016308935:- 1519861672373688:12767354767:6446909511:+:6320445256:- 1349036664930107:487330589634:329287204973:+:158043384661:- 1842501412723930:938497614268:undef:undef:undef:undef 2546060418383441:606459256656:472037543729:+:134421712927:- 8736212324777843:9538131510559:3935089324317:+:5603042186242:- 1649988281047475:2121808819461:1301744592224:+:820064227237:- 3973415545901119:6948601071998:6039678765841:+:908922306157:- 8524391936585790:44206527396290:undef:undef:undef:undef 7563164769588885:97928554162493:16210956057842:+:81717598104651:- 7171634508132405:26259389961855:undef:undef:undef:undef 7453570996643310:295105698618570:undef:undef:undef:undef 3570131435763195:450557402111635:undef:undef:undef:undef 6696042263628457:396558386049185:140198438218823:+:256359947830362:- 5270879993601338:8444838168545319:2266979145398090:+:6177859023147229:- 1211454394312078:3080860357892989:undef:undef:undef:undef 3834772719664095:4215592934273504:2521819004808095:+:1693773929465409:- 1403486848403189:74680649374182208:44822756274939421:+:29857893099242787:- 2968277358196048:35608432869668028:undef:undef:undef:undef 6322017324503710:22026771251580386:undef:undef:undef:undef 2481168182967910:927846725122061651:734573589836815650:+:193273135285246001:- 9957373657060941:779792952792779814:undef:undef:undef:undef 1605162297576641:823241499841774776:276975755139852929:+:546265744701921847:- 7974553150568464:1735510718049430472:undef:undef:undef:undef 8874979501320214:9041249077872672307:8338498465617729306:+:702750612254943001:- 8583197108993201:5975127255501002620:5315703533685977401:+:659423721815025219:- 9856850544334706:17433626303890314648:undef:undef:undef:undef 6959391254749324:33602975982510249138:undef:undef:undef:undef 9785423193903433:36985105942242854090:20775945342498576787:+:16209160599744277303:- 3694690974295843:263485535295909942016:98133919574328704395:+:165351615721581237621:- 8006969377987831:474204533872797068679:141345134014628282437:+:332859399858168786242:- 9736206842405079:299629567956354200420:119971381510323446239:+:179658186446030754181:- 6136393788182856:4718050169797768460290:undef:undef:undef:undef 2095849202085294:5937478645524533313660:undef:undef:undef:undef 9850431017173080:5322798488018258941986:undef:undef:undef:undef 6817146566058406:97727103830740484537545:65106630151047140926946:+:32620473679693343610599:- 5911041853532198:41773629251629380463493:22590767187395589445390:+:19182862064233791018103:- 6249032151315502:43926039570209325153490:undef:undef:undef:undef 7468428261650680:305649431589140241616132:undef:undef:undef:undef 5089583892821482:473652824251288859352559:204541253053982878897775:+:269111571197305980454784:- 8361210624654015:924937241207478801535706:340538030354554535421091:+:584399210852924266114615:- 2238808446683188:5541231369181077700600015:4570022510913942981377462:+:971208858267134719222553:- 6131847748931781:4577283379657311368838244:1240321299518111321938849:+:3336962080139200046899395:- 5571401864223170:8995232292746528277772637:5040571643708551462640031:+:3954660649037976815132606:- 5488728064061426:774:undef:undef:undef:undef 8718720402635804:819:176:+:643:- 9376608867284021:137:54:+:83:- 8015720109507858:1200:undef:undef:undef:undef 9496173251938585:7348:6241:+:1107:- 2002481152019333:8088:5765:+:2323:- 2395082373480034:18209:6466:+:11743:- 6255018896569153:79813:70605:+:9208:- 4871280884607389:44470:23239:+:21231:- 9540373576019272:391839:undef:undef:undef:undef 9006188315065533:265131:undef:undef:undef:undef 8954758129680836:203389:65767:+:137622:- 5701432136512144:4459584:undef:undef:undef:undef 1275302325247675:9289453:4201078:+:5088375:- 4119440556543504:5793912:undef:undef:undef:undef 1345249960261091:38339028:10133891:+:28205137:- 5210565711407721:92833603:51903318:+:40930285:- 9156553227188736:10930657:7490062:+:3440595:- 7605750152773616:166050708:undef:undef:undef:undef 5112120248906878:347690512:undef:undef:undef:undef 8325756032907520:897414928:undef:undef:undef:undef 4297166330140605:8451124687:1879043015:+:6572081672:- 4052795866210958:6719393806:undef:undef:undef:undef 5599942494884300:5254913589:3675016142:+:1579897447:- 4294165001010270:65299208227:41060667946:+:24238540281:- 3521876006123819:51505483973:27929516537:+:23575967436:- 2975686350001438:68975719872:undef:undef:undef:undef 9987578698637948:933580676654:undef:undef:undef:undef 4478813995882420:899559579484:undef:undef:undef:undef 5165858021681371:944871700984:681251258947:+:263620442037:- 6631110211690658:5509199572787:4542974354898:+:966225217889:- 3200516254001157:4170270691953:undef:undef:undef:undef 4725488680646020:7454286358510:undef:undef:undef:undef 7995124056621538:44736024134162:undef:undef:undef:undef 6504162480158739:76831874868831:undef:undef:undef:undef 5542455301035590:24098329599047:16785730155033:+:7312599444014:- 6920823137206661:407442625236757:63252097226088:+:344190528010669:- 8037980967696072:851234068131819:undef:undef:undef:undef 9219091854501731:974598538761173:214133199093150:+:760465339668023:- 5898645543617277:1702267099774624:345956751806965:+:1356310347967659:- 5427394238177464:1617335287837212:undef:undef:undef:undef 7858414408880449:1370997827861660:494231516045669:+:876766311815991:- 4307965389980085:45999514731450247:33865094732954127:+:12134419998496120:- 3506104261251482:43601776461059844:undef:undef:undef:undef 1190203419512405:25126719871266670:undef:undef:undef:undef 4557460955130067:101730316098224713:44158272895555038:+:57572043202669675:- 2489098116741103:541191016580188961:undef:undef:undef:undef 2348212366514288:942563318071885939:313053493374155951:+:629509824697729988:- 2830409913735330:7114495355770228431:undef:undef:undef:undef 1035772148392020:3452915168200802716:undef:undef:undef:undef 3460827696752293:4050339818955672472:2049422512624877061:+:2000917306330795411:- 8963229771220449:22270265754077222943:undef:undef:undef:undef 8313155627789908:64065344162590490500:undef:undef:undef:undef 3363443326421517:73970563228805828520:undef:undef:undef:undef 8923845510217141:385542532463723478331:15517894406759966535:+:370024638056963511796:- 6397366318806880:574475474744016411405:undef:undef:undef:undef 8675397679844558:562564176023446123792:undef:undef:undef:undef 2910301871886134:3955964756594770607877:2631050206050423008834:+:1324914550544347599043:- 1584670627015036:6273088882766402366721:3622531239479413500850:+:2650557643286988865871:- 5363220656008849:2586623903413614439911:782911984926818975497:+:1803711918486795464414:- 6917209535561867:40256744895225904319995:36867327456178728083643:+:3389417439047176236352:- 1269024503328432:25294841853669594580214:undef:undef:undef:undef 7432100573870595:54567896453627810319112:23203612842302240123459:+:31364283611325570195653:- 1608747248547618:275565079805161504581379:34887313788098803213992:+:240677766017062701367387:- 3404549828233218:825396479228178239259671:66024141064239540183677:+:759372338163938699075994:- 3774208778004648:138650287251389136814825:26999089498391943065487:+:111651197752997193749338:- 4238577793752036:9699877545727099583035941:undef:undef:undef:undef 1929923068567981:5918633631450380694017363:5890956102390179715255422:+:27677529060200978761941:- 1680477580056962:7214912248517969194342092:undef:undef:undef:undef 1841496083602801:730:551:+:179:- 8434627776439561:601:302:+:299:- 2792920109380107:107:81:+:26:- 3732100459735904:8358:undef:undef:undef:undef 8168579180718854:5142:undef:undef:undef:undef 8391127774917141:6694:4409:+:2285:- 5582017437205135:52680:undef:undef:undef:undef 8474984865860137:15181:14622:+:559:- 8002292586438596:68277:27491:+:40786:- 9108699884108801:872777:199191:+:673586:- 2594412923170703:834457:248085:+:586372:- 4382993700983297:886259:746683:+:139576:- 4689917420119983:8773750:6780147:+:1993603:- 8843943989430193:6007841:undef:undef:undef:undef 4033114285249838:5188322:undef:undef:undef:undef 8878559192189492:37892910:undef:undef:undef:undef 2171021458249957:55548527:18532842:+:37015685:- 9374733837743972:73016043:10924895:+:62091148:- 6085111030150088:739954615:215570147:+:524384468:- 9836471563372734:624803391:undef:undef:undef:undef 4334547062456505:477326192:273113609:+:204212583:- 5641861306250880:8832758427:undef:undef:undef:undef 9282577429917227:8706626761:7153121728:+:1553505033:- 8782255279233126:4479378289:122614048:+:4356764241:- 4565103207928964:16631468392:undef:undef:undef:undef 9321957127607023:20100023226:12040783975:+:8059239251:- 3625564843880550:41923217660:undef:undef:undef:undef 7900401309225411:161107386415:125105233316:+:36002153099:- 4427656535510813:487927814719:404683134565:+:83244680154:- 7812718803048309:602566056314:308458485965:+:294107570349:- 7571221341805542:6030702615909:undef:undef:undef:undef 2948534915241316:5252720022991:4758572766630:+:494147256361:- 5845669995935470:4629995023092:undef:undef:undef:undef 3579525232544162:39313951359940:undef:undef:undef:undef 6208071235675697:17256859470592:9001694712785:+:8255164757807:- 8493489755607416:38581143900936:undef:undef:undef:undef 8104547175255898:566187098341508:undef:undef:undef:undef 8498106976520476:649272916882489:537412539637276:+:111860377245213:- 6056449049580070:987620164921142:undef:undef:undef:undef 9200405987416644:1630468931967993:undef:undef:undef:undef 1854670925859374:9513627892986071:5360708176851304:+:4152919716134767:- 8660834948899312:5061850505225302:undef:undef:undef:undef 1932762741080270:64945331340406576:undef:undef:undef:undef 7639232039301626:92678803159372555:67941230624187431:+:24737572535185124:- 8308435541995600:81464543657213580:undef:undef:undef:undef 6416383750046724:692978472836400494:undef:undef:undef:undef 4333088713722114:736729240226843093:625765443124600165:+:110963797102242928:- 4069245031083072:989837201369577923:200648032759061798:+:789189168610516125:- 5464948308777659:3773246659761710346:484043589062912105:+:3289203070698798241:- 9052755996308153:5935018747613414191:3253842088745672734:+:2681176658867741457:- 4767195926080263:2387490215566551629:987310242747406583:+:1400179972819145046:- 3637936503902920:38490091045627145932:undef:undef:undef:undef 2765129188212842:73182047176467825082:undef:undef:undef:undef 6657932056404472:42189316897298808093:29263584725413709680:+:12925732171885098413:- 6139779049542261:762726188214699430665:undef:undef:undef:undef 3792903888814328:489339261115434009811:220070108379020419069:+:269269152736413590742:- 3211142574336455:858751535436865059100:undef:undef:undef:undef 3450677913282617:5403793078611106749350:5391783316670651866803:+:12009761940454882547:- 6771447806101866:6085905690697813072939:4774799916319955714716:+:1311105774377857358223:- 6822331428246822:8359862518235964521832:undef:undef:undef:undef 6317960530647740:68474265611971391082695:undef:undef:undef:undef 3318554932316905:80985070024981863847822:66850108520564448472131:+:14134961504417415375691:- 8729037402547222:84561621551432649225705:52418781236523067498273:+:32142840314909581727432:- 8118655713195858:515319522134590484525849:331192994432869448052106:+:184126527701721036473743:- 2421322609601039:326679188338412179275138:116479631956383766942685:+:210199556382028412332453:- 3286634122049957:838886646676329892591495:714196563700843058381753:+:124690082975486834209742:- 6803870184899314:9739554545089514248279854:undef:undef:undef:undef 8987447912806144:8608890406656831323180183:4626658738937045520188853:+:3982231667719785802991330:- 1772711180643221:9902314582961863026124704:7468954682706445423572029:+:2433359900255417602552675:- 18777857878295360:790:undef:undef:undef:undef 75809979679217995:986:889:+:97:- 22866702148073916:490:undef:undef:undef:undef 73483902338991005:3586:2819:+:767:- 38687357866460274:4227:undef:undef:undef:undef 90142743294164177:2535:1883:+:652:- 87704257155547192:10969:8917:+:2052:- 11903610773811161:86735:33566:+:53169:- 28543095733854604:37908:undef:undef:undef:undef 71749918282618630:164346:undef:undef:undef:undef 76418739681053999:637604:282331:+:355273:- 11129705518878901:121644:46081:+:75563:- 20938080520482539:6383818:1513541:+:4870277:- 12247604817875019:4813387:4337813:+:475574:- 63266108551418800:4329325:undef:undef:undef:undef 41749736061008654:64644113:26583203:+:38060910:- 86995843522210495:28427580:undef:undef:undef:undef 13713199587315799:82855577:61085180:+:21770397:- 78214750687323511:989749048:48537759:+:941211289:- 86774105870039829:237940128:undef:undef:undef:undef 34792635512106973:484742319:448157953:+:36584366:- 46681416697256434:7231958622:undef:undef:undef:undef 59828077309201612:3826217637:372734563:+:3453483074:- 51754287857029799:7930068950:7660819649:+:269249301:- 31885903829433215:29175165805:undef:undef:undef:undef 10969315709785573:90850620535:63749809002:+:27100811533:- 66299953094060171:71343248352:47297687459:+:24045560893:- 82840724271832395:898974512616:undef:undef:undef:undef 56497251668256360:563757295049:undef:undef:undef:undef 45662002402811719:453066329892:234727412767:+:218338917125:- 88181393350160099:6874242621875:5723406976774:+:1150835645101:- 44200929083488529:2580710783209:249745227798:+:2330965555411:- 41911412061920578:9843998117854:undef:undef:undef:undef 72089859535700392:31728830349092:undef:undef:undef:undef 67073616480032418:19358252185659:undef:undef:undef:undef 25282244918188492:80954568589902:undef:undef:undef:undef 69144384761784052:698148087605375:635940041908613:+:62208045696762:- 33028935026922694:662899485291916:undef:undef:undef:undef 75948842502745139:524597987228022:173554320236693:+:351043666991329:- 85678624148787208:4349995716057139:2531559180051487:+:1818436536005652:- 71044090148500051:7531275038393232:4686035531424811:+:2845239506968421:- 68329207483625307:5059503112707484:3690126846012331:+:1369376266695153:- 85881840717946907:77579074192953116:24957019494399099:+:52622054698554017:- 56637960107128459:43484382926479372:39973370574620979:+:3511012351858393:- 12255016666047012:51046491176991341:37825247893004932:+:13221243283986409:- 80237919448700297:444882530036463174:436653873114780869:+:8228656921682305:- 20214002634696644:317311849929769996:undef:undef:undef:undef 75139735869521946:547956235353110173:255528464812415228:+:292427770540694945:- 96217068708656452:8294875925040936662:undef:undef:undef:undef 88992764620505470:4745194956805966064:undef:undef:undef:undef 76681052104470570:4667476501948157920:undef:undef:undef:undef 63428953609896758:86816220069575834171:18124155556302065384:+:68692064513273768787:- 53958167650448494:49842513027450179446:undef:undef:undef:undef 80805749044540444:96560693615440661618:undef:undef:undef:undef 99885150542851309:461313333329818830769:20947175510113906213:+:440366157819704924556:- 49540759584744708:208932018246435390606:undef:undef:undef:undef 55304493965245217:651391776487117112825:undef:undef:undef:undef 58260781049175593:9190941834165116577345:1339420552484048939222:+:7851521281681067638123:- 99399663376107221:1302994212129995067117:905852763300789383981:+:397141448829205683136:- 51599644923328960:5569963733400718975396:undef:undef:undef:undef 47319956365139740:84608481430016788558747:4371117020818448105223:+:80237364409198340453524:- 82393401545267769:72126010140224372341807:1640917274925737984283:+:70485092865298634357524:- 36300969153089991:38561723767761932802970:31789799375515886901271:+:6771924392246045901699:- 38573357102206622:964784204136472709553052:undef:undef:undef:undef 11756151567175068:972615649806262488701593:142546357347680838302455:+:830069292458581650399138:- 26126361201409438:210132523018916975469125:170574254286856108724877:+:39558268732060866744248:- 19280435812491806:9160872983744441808454832:undef:undef:undef:undef 30476572854480239:3010773395760369439421178:1120729230046912514768309:+:1890044165713456924652869:- 16489348319896622:1960616646574107167388815:1614843307003134955986738:+:345773339570972211402077:- 56796852737757856:324:undef:undef:undef:undef 14224883309563304:320:undef:undef:undef:undef 49614531212136907:621:37:+:584:- 72027941762888670:3457:781:+:2676:- 31909303812382508:7567:5272:+:2295:- 43605089878314626:2166:undef:undef:undef:undef 25955086048492185:16242:undef:undef:undef:undef 41753708575470861:44361:undef:undef:undef:undef 26632877646544846:71627:9472:+:62155:- 12715461500422472:566189:296100:+:270089:- 33449055928920850:793335:undef:undef:undef:undef 40164270998180646:859691:242295:+:617396:- 29446347330124339:5033393:3531313:+:1502080:- 40061495291417857:8680501:8596333:+:84168:- 44274952327461512:7556750:undef:undef:undef:undef 96948602606349469:91315196:67529537:+:23785659:- 33176426245472427:32431159:30803912:+:1627247:- 43430641679126806:51532151:32282919:+:19249232:- 33301494630792380:171270740:undef:undef:undef:undef 90570682784220861:924188063:679831166:+:244356897:- 79430639328556982:512662150:undef:undef:undef:undef 57470169462146327:1470589749:687908813:+:782680936:- 68483406845364308:9466550523:4027821677:+:5438728846:- 70010934239091688:4341140166:undef:undef:undef:undef 49819436279160535:85904509902:79882082971:+:6022426931:- 93939925474315091:54581759721:39754230431:+:14827529290:- 24918572925189973:52105238375:27182117787:+:24923120588:- 39130177022959274:790758679262:undef:undef:undef:undef 51488393012386966:186208945027:17629775407:+:168579169620:- 72347642047909278:371269622185:279395670457:+:91873951728:- 61743127891697265:9191136040714:7147317599809:+:2043818440905:- 94530977048044534:6094678504209:5593753359589:+:500925144620:- 96854619031136879:6295728848074:1461398441715:+:4834330406359:- 68333595487310252:25375601707162:undef:undef:undef:undef 38442808642087038:77260027424346:undef:undef:undef:undef 41229185348028335:87463519154924:21667283325847:+:65796235829077:- 88413445336742945:679619497367754:604690101318311:+:74929396049443:- 77766978202972850:532019189388375:undef:undef:undef:undef 98496978178709531:776203931382008:15332536063739:+:760871395318269:- 12135128519994193:4455847532999167:1996975354881579:+:2458872178117588:- 70050719911666950:6737065618201523:5420064790711085:+:1317000827490438:- 99816374601370079:8074615437393557:3874990223148846:+:4199625214244711:- 80053567320567819:33266399295159331:2437650441594990:+:30828748853564341:- 29279386548565787:71796696258651927:16338945935201333:+:55457750323450594:- 15326228583724151:98553224075843632:28034415758903719:+:70518808316939913:- 89875622639855292:795874069109127227:211788693953700046:+:584085375155427181:- 32932645784696979:265173237301416015:undef:undef:undef:undef 23468588393511838:388700173410724183:43606211513805393:+:345093961896918790:- 17030761113179844:3522642303698597018:undef:undef:undef:undef 25443256387461272:4263945185892889838:undef:undef:undef:undef 54666575539893269:7153721776751992625:3928884116985042204:+:3224837659766950421:- 74986511551012014:89202256674285665390:undef:undef:undef:undef 66006984685142039:98345273285790752900:undef:undef:undef:undef 60227434648331826:80447948867125964627:64805254089895456604:+:15642694777230508023:- 83197999838331470:206439239170170931186:undef:undef:undef:undef 33095050621963840:479700065997411479690:undef:undef:undef:undef 94992065168886975:623038807404702315030:undef:undef:undef:undef 92232428828688029:8693752964100314956043:3383560292666666143290:+:5310192671433648812753:- 88811946643767688:7182545366144332727506:undef:undef:undef:undef 52846113871395631:5946343277588065327048:1997347915674367576591:+:3948995361913697750457:- 36472330863434829:29832888877450801264149:undef:undef:undef:undef 96006517877528028:22882643548120125836573:14983780620872265870535:+:7898862927247859966038:- 34816311294894820:65235726487604145294478:undef:undef:undef:undef 85238927115324946:497428028366600978783321:210338557119241795225303:+:287089471247359183558018:- 42232182027548668:584846812665652023573192:undef:undef:undef:undef 19774138567763467:978868828272500398176932:404217494869292525731887:+:574651333403207872445045:- 10834206747351019:1297741647746812329275159:134217273110843180903028:+:1163524374635969148372131:- 79991570797862058:4098378704356382612531249:2897909065962736070033105:+:1200469638393646542498144:- 20160765916820901:9688953547468938268099867:4894015327897760918003740:+:4794938219571177350096127:- 99345310811005534:522:undef:undef:undef:undef 24449021684080449:376:313:+:63:- 27217112835537620:998:undef:undef:undef:undef 97266343556972814:2659:295:+:2364:- 78416890282886204:1454:undef:undef:undef:undef 53173514583689642:8157:647:+:7510:- 57630912489621447:37888:15863:+:22025:- 81145454762535477:53895:undef:undef:undef:undef 15553323637705201:17102:2899:+:14203:- 90462265847168301:519864:undef:undef:undef:undef 32784389531362850:354724:undef:undef:undef:undef 61814294669743836:130494:undef:undef:undef:undef 14952225604902141:4552749:undef:undef:undef:undef 66472449232349347:8123031:7843594:+:279437:- 70964495787965198:6859465:6343177:+:516288:- 92239078565249821:22113845:16215346:+:5898499:- 32249467834212541:38978711:5664011:+:33314700:- 58782909107539147:46231972:42798131:+:3433841:- 20948767694083693:317341273:280940801:+:36400472:- 98088779243778558:812664342:undef:undef:undef:undef 17955727324816081:546925088:85189617:+:461735471:- 13916230920273454:5430982456:undef:undef:undef:undef 57085192554647291:6331757284:2850368415:+:3481388869:- 73644026390874905:5198544666:undef:undef:undef:undef 75754675227551541:50984810352:undef:undef:undef:undef 49227526928437872:14437584861:undef:undef:undef:undef 41633344583414913:94364328454:73401686181:+:20962642273:- 23304947805992190:264077616045:undef:undef:undef:undef 84404676686237561:731416658233:135112311368:+:596304346865:- 58424978869604137:284169430556:210441825417:+:73727605139:- 85282171878110428:7079991708223:3326310725558:+:3753680982665:- 33273670046160765:6471656773786:5655031918089:+:816624855697:- 48432794051350399:5520561444669:2635417198198:+:2885144246471:- 70248691197431409:58766651880244:28749872541449:+:30016779338795:- 16182915488102705:25353442103060:undef:undef:undef:undef 11459182784692556:32862757434317:25337085262452:+:7525672171865:- 52475419230856735:290741912888882:197418482050273:+:93323430838609:- 36232260761342188:562683970264838:undef:undef:undef:undef 47746526812211988:227532097988679:undef:undef:undef:undef 12988437213394599:2317426182778187:552294338258473:+:1765131844519714:- 73906096263761408:4459047733371868:undef:undef:undef:undef 61516014387199789:4346955324090562:4308724219827691:+:38231104262871:- 25476538467650465:40268304727221926:28241984461230661:+:12026320265991265:- 32945929373304579:28101680114954157:undef:undef:undef:undef 50702148816902914:31061406078158976:undef:undef:undef:undef 44339949843554039:535985615359619194:27119109581542179:+:508866505778077015:- 26876110452581283:362923925759693879:136882351792173550:+:226041573967520329:- 72762877934098067:501865071020908804:58650312943382271:+:443214758077526533:- 29949957083929573:9550336519238088976:9479389239358049309:+:70947279880039667:- 20546840597400853:8880476186490221101:5034762524290054635:+:3845713662200166466:- 97362418054391373:9437709569383448836:4154069307426224253:+:5283640261957224583:- 20347662375082835:29164011715132253926:15426087777382241245:+:13737923937750012681:- 60082481508459472:46452247849437497581:9699944804131926489:+:36752303045305571092:- 46285048364241342:27750201480751298416:undef:undef:undef:undef 49885308189279803:965742941017439487231:879257486593763460761:+:86485454423676026470:- 45947044455251118:200533374427872344590:undef:undef:undef:undef 77040110939061271:952699824074496863977:701129178619309401078:+:251570645455187462899:- 12628364659709876:7747580791379386393485:undef:undef:undef:undef 42048102653710734:8754132400302543755518:undef:undef:undef:undef 16931849022276291:2019447833554034747657:657894404027592104454:+:1361553429526442643203:- 21371712853616022:65228568521673389873709:undef:undef:undef:undef 52799363362779200:68781782093587525271926:undef:undef:undef:undef 11750725372935264:43166802878916533044335:undef:undef:undef:undef 81914829780139643:973371029532900522325220:600317512899566983461187:+:373053516633333538864033:- 30765282927580498:256467839165483949215717:25007602924652017154434:+:231460236240831932061283:- 77604538819261036:955126528879719986642845:127263043096979276099311:+:827863485782740710543534:- 54342840099349701:4207206876558598048853326:1878047670533526928050519:+:2329159206025071120802807:- 39810143463392715:2015449810352967156851317:528654547790948124880307:+:1486795262562019031971010:- 68616251362946099:3368537671378563823558444:1958114403431963337122839:+:1410423267946600486435605:- 739944222209625484:205:39:+:166:- 312146567644044979:871:534:+:337:- 234995735919927648:852:undef:undef:undef:undef 881263226289251457:6810:undef:undef:undef:undef 671005619467629815:4721:1281:+:3440:- 163036409710514668:3303:2920:+:383:- 285780624801101379:27576:undef:undef:undef:undef 896090930958559824:42740:undef:undef:undef:undef 796712777144708071:51620:16891:+:34729:- 908228407756368610:354237:77929:+:276308:- 372770406414583885:114473:8911:+:105562:- 666604792063950635:780404:708391:+:72013:- 828469453953096645:7368623:6984403:+:384220:- 750429865401289746:4106755:3408661:+:698094:- 242743961663778672:6691039:5467072:+:1223967:- 833148929164023225:59659076:43404625:+:16254451:- 202481921150250925:16681346:6835463:+:9845883:- 906071778290951527:46253994:29208679:+:17045315:- 901537238852563081:608953684:586427557:+:22526127:- 664522182923427217:120340172:79717233:+:40622939:- 311780644074700991:557325991:159256188:+:398069803:- 562157116867638256:8808712614:undef:undef:undef:undef 827027313006382025:7617649399:855597065:+:6762052334:- 724765870787062032:4129441951:1691471417:+:2437970534:- 105336833433113634:36131529918:undef:undef:undef:undef 834962892482436839:14998237399:8997276447:+:6000960952:- 996997075327497658:74951986703:49403107751:+:25548878952:- 829857708777346295:277636091705:undef:undef:undef:undef 797219364501072188:707978536108:undef:undef:undef:undef 877139979032848018:119112975165:28481990677:+:90630984488:- 841028034609677137:2247069051237:1676672153338:+:570396897899:- 733175820093125946:4116968796869:3995611623895:+:121357172974:- 506257543138215883:2419221598350:421374220447:+:1997847377903:- 678435520652452835:21710927384035:undef:undef:undef:undef 751013114453216196:36101413264893:undef:undef:undef:undef 113935549303883901:86443507710429:undef:undef:undef:undef 205886532494178305:146795182999040:undef:undef:undef:undef 546381004536017022:863110789314293:457137213828287:+:405973575486006:- 344688333778363286:475024385790495:71687016663251:+:403337369127244:- 187225701806494142:9330595506627888:undef:undef:undef:undef 985627526044453786:3476940225646923:undef:undef:undef:undef 125063969759197129:1016025397327886:282306028375647:+:733719368952239:- 614276562355001110:86173070944037787:10915320915553978:+:75257750028483809:- 435319051869297529:63518065647358657:24665703564912947:+:38852362082445710:- 773110844108090999:16325920136436508:12311461352358555:+:4014458784077953:- 806251846239181595:937484240885930727:undef:undef:undef:undef 508800826806954868:915873656971571794:undef:undef:undef:undef 704457075023099246:304998104112998959:209859717777732123:+:95138386335266836:- 623450091203253565:8334627439350300264:1033517460058994245:+:7301109979291306019:- 198202865519155748:8301375918345092606:undef:undef:undef:undef 950569878122459278:6034426742841068379:802248276552555118:+:5232178466288513261:- 439288797376507004:11850021366498989698:undef:undef:undef:undef 611857385566830500:50683866719365423530:undef:undef:undef:undef 453818827428727132:27375762610446687060:undef:undef:undef:undef 806668777608681027:190692192811013315445:undef:undef:undef:undef 764528714166777851:498893044164425465619:243872188860218207678:+:255020855304207257941:- 347976294384733771:222068335639062180905:11023291776468980576:+:211045043862593200329:- 838880478747206996:7042454656162207372364:undef:undef:undef:undef 519647266407412226:4042951395655889924327:1011531208527057271429:+:3031420187128832652898:- 429463306387728577:2904919838953885426448:1265294687955296659681:+:1639625150998588766767:- 454739260236677400:43435723260864921208620:undef:undef:undef:undef 235055100449954428:70371026613122378003611:26636398490735166000447:+:43734628122387212003164:- 357907530028599162:24884942866930377270334:undef:undef:undef:undef 601819786309569269:481586911497552481526182:114490489137964602805827:+:367096422359587878720355:- 187307474587651239:647953927486869640668748:268953788893571607167967:+:379000138593298033500781:- 967433485832737001:855829779915639694093261:619444618765346526822032:+:236385161150293167271229:- 602385516947039571:8687594336791008251491315:905831341305032267415096:+:7781762995485975984076219:- 797797541031493478:3214522432583205161683305:1506836251244780383860047:+:1707686181338424777823258:- 116746909123726496:3835311690391940719271108:undef:undef:undef:undef 681967180982108189:821:611:+:210:- 107708843072655783:164:95:+:69:- 766842904621101824:436:undef:undef:undef:undef 203539646202080784:1049:158:+:891:- 140781008874299874:5198:undef:undef:undef:undef 277082549150592603:6761:4674:+:2087:- 974530190267616268:23621:undef:undef:undef:undef 257651217367991702:31708:undef:undef:undef:undef 773577518971720767:91090:43333:+:47757:- 492531976782122034:162901:8440:+:154461:- 670962596278515952:620130:undef:undef:undef:undef 840568880311046680:604775:undef:undef:undef:undef 649351362475117207:9694565:3205168:+:6489397:- 357938805759032260:8042113:4693011:+:3349102:- 913722984348387908:8971139:1045654:+:7925485:- 933649370374162764:46218886:undef:undef:undef:undef 349410753181637707:98529556:1380271:+:97149285:- 706053457495316397:51382718:28180947:+:23201771:- 405201683720718793:977977364:489251489:+:488725875:- 664598253138890656:967862390:undef:undef:undef:undef 285292835017340308:347819476:undef:undef:undef:undef 872960570171611437:6979466832:undef:undef:undef:undef 542659342768117580:3110573897:322682024:+:2787891873:- 924391825063557497:2217960093:1570985099:+:646974994:- 992370052861293406:57201833091:undef:undef:undef:undef 108901810098555137:70441428908:28156960021:+:42284468887:- 702803944438852101:26812164169:19755973306:+:7056190863:- 273678061334705784:432982040733:undef:undef:undef:undef 807261622685427355:641090349479:569863472112:+:71226877367:- 113016841865081910:314323641274:undef:undef:undef:undef 174152365943648881:3588495242914:3345820006915:+:242675235999:- 435583662090633735:6380155943484:undef:undef:undef:undef 486859494777425717:7928718633119:822566729725:+:7106151903394:- 176963388197987622:55068405765753:undef:undef:undef:undef 325811567662029162:40058509885462:undef:undef:undef:undef 955218985760083130:62518232745635:undef:undef:undef:undef 443394278944930332:560762322993187:253844818353906:+:306917504639281:- 396430035471051157:289019885467962:149311996773481:+:139707888694481:- 167903502160975244:968908013604743:710639578903369:+:258268434701374:- 774406386680166576:9013385182875468:undef:undef:undef:undef 237662527672279155:1067553702374636:102195736886563:+:965357965488073:- 598317780188527430:6048355888957008:undef:undef:undef:undef 104201624575868217:73162203170505428:33472178232043165:+:39690024938462263:- 249800345918568560:24994938428560314:undef:undef:undef:undef 696656966910637972:25434496018832672:undef:undef:undef:undef 955673121757712411:145050266275280522:85614369228848305:+:59435897046432217:- 438970498459641004:624631386113542505:547290084930384659:+:77341301183157846:- 909709124056023317:614703065809376721:398478752261875130:+:216224313547501591:- 100155560151327465:7725277750251013137:undef:undef:undef:undef 206948033775177015:5757364081707158095:undef:undef:undef:undef 924103301676368290:4965215709746283461:4206883590964444248:+:758332118781839213:- 413249971255617621:53186082903358573681:37536987354766582631:+:15649095548591991050:- 349742873878469555:47010285173518596928:35377126292235048059:+:11633158881283548869:- 572830987853789903:17723955576530834788:2970324334779977787:+:14753631241750857001:- 373768487580965325:673733890110850740007:537313447996159520532:+:136420442114691219475:- 416360599486706613:213562464926973212977:145572025736250100053:+:67990439190723112924:- 255307733534768887:384491114741614726983:130140816678638446828:+:254350298062976280155:- 243721910486372067:2806740610389779702552:2570038985185034779307:+:236701625204744923245:- 182047561156981598:5901886460385054914320:undef:undef:undef:undef 879512730478938210:6776533573818022764915:undef:undef:undef:undef 334553986324389684:12517524758678396786266:undef:undef:undef:undef 222461442037222140:81066691159855854800883:undef:undef:undef:undef 581029766120709406:38912538998426697192431:7658465458579874902537:+:31254073539846822289894:- 818243846439592136:885970918883970733985059:2159774719225611754611:+:883811144164745122230448:- 282348932273257360:873329456614643181381202:undef:undef:undef:undef 983316489831539150:924557337165720132867116:undef:undef:undef:undef 809733838473777658:9547866968610146713102477:2103383893146127986438468:+:7444483075464018726664009:- 396887650469626882:7845327974301986160954536:undef:undef:undef:undef 452170280517345885:3958421076582645546044178:undef:undef:undef:undef 781570723018926424:573:274:+:299:- 401460158878978629:281:181:+:100:- 814035689715571067:945:68:+:877:- 615182183410788580:8509:3126:+:5383:- 450845433131669747:4703:4623:+:80:- 520181838750492251:3924:3887:+:37:- 603769251917303493:94838:66131:+:28707:- 524068448833342303:73325:66567:+:6758:- 713183549787548521:71889:65626:+:6263:- 538945463990590912:282376:undef:undef:undef:undef 217847128784696569:264652:47833:+:216819:- 304998980781206559:621589:84973:+:536616:- 295808426943965107:5849600:4018043:+:1831557:- 302407358774745669:3870624:undef:undef:undef:undef 637390987317561085:2868477:1447483:+:1420994:- 277457178799143027:28997888:3910587:+:25087301:- 965362079672929927:50215844:29758271:+:20457573:- 408923169530392581:62881687:49533335:+:13348352:- 297018840451809570:951778007:194894641:+:756883366:- 687051036050103995:609840170:undef:undef:undef:undef 975142143309314227:785715963:333198112:+:452517851:- 595844632862035773:5572417854:undef:undef:undef:undef 138891110547373115:5257258377:3150032390:+:2107225987:- 129272977679931354:5770902820:undef:undef:undef:undef 348788865116431918:36403464432:undef:undef:undef:undef 156759481853855521:71405067820:28926835741:+:42478232079:- 391580558298948898:14260350331:8358043865:+:5902306466:- 530357894657488407:432523414763:324599665371:+:107923749392:- 249041103039299643:661116835748:496697677755:+:164419157993:- 169454863252672806:955769873770:undef:undef:undef:undef 677740582607616370:4148582049178:undef:undef:undef:undef 194650133663085218:1087812926910:undef:undef:undef:undef 426959158065157441:1557729832601:531111368478:+:1026618464123:- 190672481619374176:16096133890936:undef:undef:undef:undef 278274975276226306:20769753482723:undef:undef:undef:undef 208631368712440107:40338347057249:13869691113085:+:26468655944164:- 759149066424119080:758448226173320:undef:undef:undef:undef 576796718957654618:713615321673676:undef:undef:undef:undef 359107963616755855:110804624649059:65768022066249:+:45036602582810:- 817707147713057474:6705651369913227:4763638317195305:+:1942013052717922:- 217164771621955380:2119786950821631:undef:undef:undef:undef 876211027396924498:7853424764924686:undef:undef:undef:undef 126024995196609433:71949677735730773:27391852143934070:+:44557825591796703:- 568489518079846089:40014513832833130:31300447427736299:+:8714066405096831:- 378749987539961063:49011317327263342:31588616004329097:+:17422701322934245:- 988405027394582532:878496535058181987:undef:undef:undef:undef 487986828231244840:449692011945969628:undef:undef:undef:undef 741797012196571282:354477086056442934:undef:undef:undef:undef 377939215180915447:4624077780967689522:903350705581036663:+:3720727075386652859:- 819081125992993587:4336987717545056996:2191187164402886183:+:2145800553142170813:- 799453706990126977:4894371558723396340:413347913747964413:+:4481023644975431927:- 382073959201430754:10460268036197608613:3452921976051216067:+:7007346060146392546:- 986493188904723921:87991746103938340989:undef:undef:undef:undef 360535197098755374:13703441983875248176:undef:undef:undef:undef 554283788405629254:228029444267508694299:undef:undef:undef:undef 408600700542481702:514782742742567080966:undef:undef:undef:undef 557909193473357941:788947974209609807720:555556151725042736741:+:233391822484567070979:- 966604974334974413:5247166898169513860747:989441682954964698031:+:4257725215214549162716:- 496097348904246929:4459949637246120562889:3679432768956948299354:+:780516868289172263535:- 854760067450811302:1503265939223096493078:undef:undef:undef:undef 138102303449697062:96976926875209370458041:53510673241205013589481:+:43466253634004356868560:- 497287993109626163:25527001065555344710667:1448754456114687695008:+:24078246609440657015659:- 754654415391807184:11213201593707236420256:undef:undef:undef:undef 127839986224423631:391440363732623081688995:4998112259978992816456:+:386442251472644088872539:- 914422954312915524:518484039461842977734501:62755222915605946629997:+:455728816546237031104504:- 772042681914295890:293468854128160349285647:undef:undef:undef:undef 336906895227122849:6150064384880127516000952:3313036846330875581646049:+:2837027538549251934354903:- 537510234731606550:6512033009943876747349376:undef:undef:undef:undef 788488983290930009:9365796751401681143367208:4064642308214254655177825:+:5301154443187426488189383:- 5448173866963093566:198:undef:undef:undef:undef 5626552865051956686:469:32:+:437:- 8844549949362314628:608:undef:undef:undef:undef 3623799778646548779:7815:undef:undef:undef:undef 8628457260539462895:4010:undef:undef:undef:undef 2664743947353612834:8409:undef:undef:undef:undef 4809163749754529116:77040:undef:undef:undef:undef 4744875047838478076:40985:24331:+:16654:- 9344645368969109121:27004:23901:+:3103:- 5418453597269350704:494622:undef:undef:undef:undef 4010929013500180628:252290:undef:undef:undef:undef 9992195769786221117:652192:undef:undef:undef:undef 1955843684678499850:8254980:undef:undef:undef:undef 4736927720398569783:6801993:undef:undef:undef:undef 9155006367212001183:3018592:687807:+:2330785:- 9061226290832319071:27696258:2533391:+:25162867:- 9147638239352792546:82423164:undef:undef:undef:undef 4738795568626172051:91457180:42998451:+:48458729:- 9287223749894998697:245435479:150775619:+:94659860:- 7255752505198100882:765852934:undef:undef:undef:undef 9904436455324333688:900933712:undef:undef:undef:undef 1249544648362921831:9705356674:7277503733:+:2427852941:- 7196170494797459408:8373178478:undef:undef:undef:undef 9743990719967973392:4150941207:undef:undef:undef:undef 8074792978161064512:90393665248:undef:undef:undef:undef 8541174566187552818:87918344383:65440641746:+:22477702637:- 3185909761563379232:31066224510:undef:undef:undef:undef 1006727285366483587:239599373796:122556894835:+:117042478961:- 9373734684234844634:196249443160:undef:undef:undef:undef 3712396208939996372:867924429910:undef:undef:undef:undef 3405670761495453193:7702020584968:4264334595097:+:3437685989871:- 4901432356373401795:8472270718856:7524037348139:+:948233370717:- 8877006335445963248:3590372267056:undef:undef:undef:undef 9730381735068725265:95449423461666:undef:undef:undef:undef 6164417305227538002:28407893087177:22815825827166:+:5592067260011:- 7413523847819625113:92210926245534:21097866040955:+:71113060204579:- 3269116376004401800:127456922737043:95024721542228:+:32432201194815:- 1101728946185933565:459179937515481:undef:undef:undef:undef 4554970054606176284:308186106580785:228230383621229:+:79955722959556:- 9310384178045855211:6941935164343581:undef:undef:undef:undef 4041250076577508689:8932613984478794:6915067118291143:+:2017546866187651:- 7266015999377986715:1369712936560330:undef:undef:undef:undef 9008744802515783871:56914691917734237:undef:undef:undef:undef 7926719021619035830:82183578741373077:64482557139893398:+:17701021601479679:- 5898101775487729681:55480822048150809:21570130812543448:+:33910691235607361:- 9196558534885709345:988185475736060653:621168793129643451:+:367016682606417202:- 9188753782593948808:387155367537118647:193351359362986828:+:193804008174131819:- 4217008802705181449:291051868262979217:172438056620684766:+:118613811642294451:- 6820766057705886577:5388719502563758847:216616594899447119:+:5172102907664311728:- 6305086134997371300:7035502515840337479:undef:undef:undef:undef 5716337401051138538:3817375918432559946:undef:undef:undef:undef 2763937994289694220:70731898559598880586:undef:undef:undef:undef 7461855625767535825:63704830200758262008:7119019657265108433:+:56585810543493153575:- 9613386648453534877:77155869512940628721:71404197921773050383:+:5751671591167578338:- 8951383421844972996:521099367803755574860:undef:undef:undef:undef 9567233495930763385:257004462353212219037:211429861860381768670:+:45574600492830450367:- 2168523422606789919:891913243586160114659:861630333218234939544:+:30282910367925175115:- 3643763662144608026:6727303485053239520154:undef:undef:undef:undef 6002861169078744685:9166581210783568350951:2618802327003930536296:+:6547778883779637814655:- 5393437481956112107:1979102385661736166438:1950613801588957870483:+:28488584072778295955:- 5399509697337357717:70814675311828912627499:26755069261624775973382:+:44059606050204136654117:- 6927847530195110149:38283403948446528887618:27764883748909001141163:+:10518520199537527746455:- 6667280153176934172:80895026716156273177393:331915533654595403876:+:80563111182501677773517:- 4233621628053581113:126808305418686159640763:110850054981717865349431:+:15958250436968294291332:- 6401286551523446042:997259473905914752330176:undef:undef:undef:undef 8972007663863237687:851660195089842549606652:231529237590737392064471:+:620130957499105157542181:- 5389046411588702144:7205541982448809562947385:4067066950894471209763624:+:3138475031554338353183761:- 8124252037458168726:2286778277199655241503982:undef:undef:undef:undef 8516215065787083501:6417936479562093736275105:undef:undef:undef:undef 3065523349613036690:620:undef:undef:undef:undef 8306382339859482579:899:871:+:28:- 4860617544234617750:568:undef:undef:undef:undef 5090257266754386675:9453:undef:undef:undef:undef 3367423518511333491:6119:2572:+:3547:- 6996209650374220107:2292:undef:undef:undef:undef 5855899806188408280:98471:962:+:97509:- 6401993991565462070:99190:undef:undef:undef:undef 9706585245534245701:55772:48889:+:6883:- 1565570476055387203:629969:28308:+:601661:- 4769942733196684720:153871:108882:+:44989:- 1042763237745969617:158402:102641:+:55761:- 7975881035620518669:2182936:1394333:+:788603:- 2680926520844559603:8581761:undef:undef:undef:undef 6970188437727975076:6866619:5089609:+:1777010:- 5549806680971370420:90137113:39141756:+:50995357:- 8716166226473048974:46346204:undef:undef:undef:undef 9350592971859709706:45138319:37954372:+:7183947:- 1639402770835011157:449867518:197126555:+:252740963:- 7521785855492311392:870452270:undef:undef:undef:undef 8812149904791132347:578855601:212216261:+:366639340:- 6958378802516079809:5763165515:1046735134:+:4716430381:- 9890902379368941639:7822877001:undef:undef:undef:undef 5249510675034473457:9370189955:817337543:+:8552852412:- 8772801806075805990:72019801735:undef:undef:undef:undef 9313467579288609372:62688828112:undef:undef:undef:undef 4279668364907224623:37467857144:1782463703:+:35685393441:- 7553809826693826247:405533147246:17728364577:+:387804782669:- 8570293656475393812:831231225217:123432702182:+:707798523035:- 3619084243249684081:694148734761:144886104112:+:549262630649:- 2369509599983841938:8709689883065:1765634884707:+:6944054998358:- 3080733753805442465:4719681895089:2617546970141:+:2102134924948:- 4801665454365901469:5443128482436:2365943229101:+:3077185253335:- 6112756636749875159:30005476471584:11093841373031:+:18911635098553:- 8806746401804528823:74302552452888:undef:undef:undef:undef 5687414053979184578:63632413679677:52496199046942:+:11136214632735:- 1840344372984393536:837341716040386:undef:undef:undef:undef 9482222461939037668:672744888046075:undef:undef:undef:undef 9695683815909489915:292599927233375:undef:undef:undef:undef 1415138377029554275:4009577933417269:3401269432701818:+:608308500715451:- 5888404401316808209:4036658896152703:3317494155637996:+:719164740514707:- 6942833732907272122:9743400054533101:8164550826554946:+:1578849227978155:- 9717708795931525358:72053956013729420:undef:undef:undef:undef 6582348512202792422:33755335119606601:4492775817545638:+:29262559302060963:- 5155666533126432283:69555632783017899:17863502986964359:+:51692129796053540:- 6985210945345982579:913324878308717984:841607061696321307:+:71717816612396677:- 8375221505998524132:724480770491387959:90481261615420356:+:633999508875967603:- 9072823084550399269:758031584000131338:216658116489462793:+:541373467510668545:- 4932466339189191043:3295201322235013921:2739050028819134549:+:556151293415879372:- 2356452818252697176:9488228729534580564:undef:undef:undef:undef 2304254304633448451:5452748589427307273:3250545675915538597:+:2202202913511768676:- 7514451896924355224:17556331117486108458:undef:undef:undef:undef 4548941382646167160:35602314977054818218:undef:undef:undef:undef 7051212729091818245:74928412779502426150:undef:undef:undef:undef 3313933993707905913:801719369573166726028:566351258493548552685:+:235368111079618173343:- 9272117437976823355:690843850884584415096:545082808905604106731:+:145761041978980308365:- 9562917074684303997:911171765733045164670:undef:undef:undef:undef 4989924714734957482:2198969013359987883735:250182823716485124868:+:1948786189643502758867:- 7265269837080583723:9172917856075230649859:3702708422187558431958:+:5470209433887672217901:- 2433561876722672864:1817705008267167849334:undef:undef:undef:undef 2346030710822656329:40656876790623791255601:undef:undef:undef:undef 7046502790432066299:65675373902114747816834:39688692327013345799943:+:25986681575101402016891:- 6969037389688816872:48556302414998898518720:undef:undef:undef:undef 2936326423379124322:602392853346664031849482:undef:undef:undef:undef 7768365159183464099:259430460287091923448420:12831573804754944220559:+:246598886482336979227861:- 2186324313808946191:705039031976974274631006:692017541944871573720911:+:13021490032102700910095:- 3080338669254049541:9906211956245336448271844:4828217586339530665403657:+:5077994369905805782868187:- 8163349292473669206:2506221618997046734322168:undef:undef:undef:undef 7710938455222536338:1654999180969921064463025:913424550512163886905752:+:741574630457757177557273:- 1449125440551018814:418:undef:undef:undef:undef 1180425457879471042:771:217:+:554:- 8762218623935859817:543:244:+:299:- 1706629204118241372:8325:undef:undef:undef:undef 7200145922001829912:7506:undef:undef:undef:undef 1492112777320608725:4449:4235:+:214:- 7740757251349921623:13714:8853:+:4861:- 9425031130176876563:32230:3417:+:28813:- 5527905398868180751:61243:48648:+:12595:- 1929655749378553473:479644:78557:+:401087:- 1609285305393394824:181287:undef:undef:undef:undef 5018529168328673017:561616:52409:+:509207:- 4993644871368927553:6119402:4137735:+:1981667:- 3316286154395967166:6729121:2025318:+:4703803:- 2105576075449062143:1457644:1210955:+:246689:- 8515618481677365669:67330780:61147429:+:6183351:- 8265229186665773676:17457776:undef:undef:undef:undef 1677880394698816077:45121759:33660791:+:11460968:- 6696915734591804044:353128979:161887755:+:191241224:- 7429533860845705174:713619309:322157422:+:391461887:- 6009477148440735886:473127457:282877950:+:190249507:- 9921392484388140720:1359685882:undef:undef:undef:undef 1448907897028625534:3714128596:undef:undef:undef:undef 1899003317012142802:6654305303:3205121979:+:3449183324:- 6380555198798231772:43614361908:undef:undef:undef:undef 1291921350621370005:72595509192:undef:undef:undef:undef 5265643183925379118:33205880447:13480150536:+:19725729911:- 5987271878627401697:446527174222:114288074743:+:332239099479:- 6955654866092365663:145410633354:85561229893:+:59849403461:- 2748302997171522319:937365185383:503595108468:+:433770076915:- 8967012175797788268:4871790758800:undef:undef:undef:undef 8371339168022183376:5976200702539:4904264529568:+:1071936172971:- 9619355007613567631:6539355882985:2696000329191:+:3843355553794:- 9262877733901374048:80620440478460:undef:undef:undef:undef 2785801868543753045:84437649958065:undef:undef:undef:undef 9820166988823584534:60295729627587:undef:undef:undef:undef 1434236144978788988:501754630079604:undef:undef:undef:undef 5810003431892748125:353765087523659:17984014907156:+:335781072616503:- 7374028998587274907:990459681584086:359290898482947:+:631168783101139:- 6312070709154296785:4496171410831509:1639082991085543:+:2857088419745966:- 3715279024145237137:9358531756069836:7563334171619449:+:1795197584450387:- 2266754630561007976:8844066375829252:undef:undef:undef:undef 3376019828524691356:98141644440557575:21428141138750221:+:76713503301807354:- 5975796260964159737:10412389744143263:5109185392477894:+:5303204351665369:- 2737407364224756266:86641646422153357:1598589906881323:+:85043056515272034:- 3015449228104975064:959593442068943298:undef:undef:undef:undef 1383647670662464924:324194857059321114:undef:undef:undef:undef 1662503303353151331:303892103931214966:294272434834624717:+:9619669096590249:- 6712189048842419756:9934192423700934208:undef:undef:undef:undef 1957842687473622213:9589335233754972015:undef:undef:undef:undef 3375308887587659207:7314731278830612523:5630280529808663672:+:1684450749021948851:- 1586861085871588412:19434873977171446864:undef:undef:undef:undef 4521729656744422917:82332965956825118638:2857004060038618913:+:79475961896786499725:- 4477759746972627213:70281394355653629787:24014606677319182186:+:46266787678334447601:- 9161598336328369277:847370223383575150056:515585225302969568213:+:331784998080605581843:- 7089578514359716534:394614120413547335681:82738690718590095537:+:311875429694957240144:- 6472978798464192476:131697362135188478826:undef:undef:undef:undef 4130596427326321640:3297666698115364240806:undef:undef:undef:undef 7136290921555859713:5708147921150992988005:1897963106503388945692:+:3810184814647604042313:- 4154957570807193159:4943308095378955227884:1258863207598302862427:+:3684444887780652365457:- 4432460974930394926:29422123339937705613566:undef:undef:undef:undef 3691088856394500051:90213967387896800631767:61023391617308782686391:+:29190575770588017945376:- 4224462774862066164:88114549923841889276368:undef:undef:undef:undef 6406375846626212729:826621026757959485831094:390792714921488253944171:+:435828311836471231886923:- 5707437463253243893:398525466049959600054214:88702073824539740267341:+:309823392225419859786873:- 5012307955498599460:975452538310655614854802:undef:undef:undef:undef 6781824302030669833:5566512192195578180155312:4358897486917519275351001:+:1207614705278058904804311:- 5055894495817134993:5522962606175021879338109:undef:undef:undef:undef 9308443400001553821:3724695440957550662113836:undef:undef:undef:undef 65945991213204890847:204:undef:undef:undef:undef 19866565006617268624:214:undef:undef:undef:undef 44596122854757256800:274:undef:undef:undef:undef 30166592425882860047:9432:3143:+:6289:- 48991470123312661313:7037:3386:+:3651:- 49090169881417935666:9347:8279:+:1068:- 78133959647979267180:67337:30562:+:36775:- 95250113272756947329:43177:35195:+:7982:- 21039588865012358106:29900:undef:undef:undef:undef 96464985230576016288:836282:undef:undef:undef:undef 73290865868497500193:128415:92242:+:36173:- 77210429299142699641:126095:116871:+:9224:- 65582662087471040943:2721939:undef:undef:undef:undef 77640672487126560621:3646365:undef:undef:undef:undef 53682198675385872456:1020090:undef:undef:undef:undef 81285668159830907013:22076699:19865011:+:2211688:- 74746330071661391467:77414662:72475597:+:4939065:- 46135031822273704678:27657599:26298839:+:1358760:- 65983939524749700259:551151359:53000039:+:498151320:- 43265363823293623123:972194110:834855117:+:137338993:- 49606443837224188635:413018824:312772499:+:100246325:- 84505366567384883344:8773028304:undef:undef:undef:undef 94411643650191658216:1802819526:undef:undef:undef:undef 21939722735812456158:5330629561:3020182248:+:2310447313:- 77159705760144316536:80381467881:undef:undef:undef:undef 89688722969251515869:60026317116:52164843617:+:7861473499:- 47796217965838355638:39148820458:undef:undef:undef:undef 18701145256503491765:428827374364:203522591341:+:225304783023:- 13695494018186666793:863178927428:827822621653:+:35356305775:- 71311307240519389474:999521386406:undef:undef:undef:undef 20196369352893294126:7535800913611:2620662801295:+:4915138112316:- 22327794192630190124:4987061654329:1095095756232:+:3891965898097:- 97505949331755737713:3655260923838:2795894972149:+:859365951689:- 81168726060639764185:59146227614183:29339559296420:+:29806668317763:- 21438529551744336416:39604778815542:undef:undef:undef:undef 20506856196020922701:66397844992012:8009924340077:+:58387920651935:- 70650729854558925775:446329783474015:undef:undef:undef:undef 96903831905734248315:762842259674870:undef:undef:undef:undef 44379700912124803378:417251673799802:undef:undef:undef:undef 49361226414687520109:2023977413086132:undef:undef:undef:undef 33379824487931091092:8225753677269070:undef:undef:undef:undef 18056101304636256097:9700430732642833:1770086510414302:+:7930344222228531:- 52751413516809606599:10138449139304722:3174045258731741:+:6964403880572981:- 51710303527953483179:98990907325787861:84941248010662599:+:14049659315125262:- 26902820019667140284:24710392154790510:undef:undef:undef:undef 33644083994414338915:204399273991317551:175838937808422988:+:28560336182894563:- 40672698099579916087:993732842307398621:118489092428769842:+:875243749878628779:- 79717107052801255992:133191092168715947:68123992401842017:+:65067099766873930:- 62554026621020364041:1500172073409749306:335514973458885799:+:1164657099950863507:- 20202632832726888532:4061077904654993151:1294318068108275488:+:2766759836546717663:- 13901826652799979397:5149291532563775598:1499424369338580931:+:3649867163225194667:- 28350448504789639876:21301209119966633798:undef:undef:undef:undef 57480661924784609343:33911397809037139321:undef:undef:undef:undef 11888103051844324713:64183670610140171114:39168446924499486709:+:25015223685640684405:- 47012445569229975752:798581077517867064901:undef:undef:undef:undef 65189061446460154986:292729448997892561727:129633294455255154591:+:163096154542637407136:- 75341507163211208588:840827640856266609486:undef:undef:undef:undef 61991393935622218271:8427993161410846046919:5094852781148136436823:+:3333140380262709610096:- 78245834682792553272:4096183516412255838475:2370750317121257152483:+:1725433199290998685992:- 16506278899127456285:3011957008479515396402:1546124667667761460571:+:1465832340811753935831:- 78351316753060139110:55728919792312918092203:48107330999462651299175:+:7621588792850266793028:- 88500675569676929526:13059961957729276551431:12679142581317193587153:+:380819376412082964278:- 86257467828761493761:66156491428686006660393:23868112201866059588624:+:42288379226819947071769:- 54133831431937114201:317093783084916181469766:188520508698733037716057:+:128573274386183143753709:- 74349127312018094958:673977959974935696853380:undef:undef:undef:undef 62731774589890391908:879508403938361856714471:undef:undef:undef:undef 49492354380681370078:6796280817290774038958873:696137463659245842927018:+:6100143353631528196031855:- 88511415076089135776:1473407891016654772160205:876801576841124996595356:+:596606314175529775564849:- 38616070928009757689:1700720679351975508746184:789724350841378793310985:+:910996328510596715435199:- 31588674115720665522:710:undef:undef:undef:undef 27538038041454067801:165:136:+:29:- 24240007512225159518:157:15:+:142:- 29170439392366862745:1575:undef:undef:undef:undef 75778239191410335325:1571:1279:+:292:- 25708902861742200324:8047:4156:+:3891:- 21731253119972777800:60375:undef:undef:undef:undef 34949430091056991736:42598:undef:undef:undef:undef 98376557863110171421:42134:19847:+:22287:- 24814450973163941320:916456:undef:undef:undef:undef 14778853216608621879:374386:278083:+:96303:- 98594183691549491114:119378:undef:undef:undef:undef 95077421268681236866:9291865:1127496:+:8164369:- 36965582977497604857:6456041:6306616:+:149425:- 47293432736157877219:3115870:1346699:+:1769171:- 91862174977150184929:24089944:13346041:+:10743903:- 19398534456299426760:61885150:undef:undef:undef:undef 92289313430297360564:58231246:undef:undef:undef:undef 46310441999104400020:191266486:undef:undef:undef:undef 39877042933901922814:606307455:undef:undef:undef:undef 97753488968893252706:333877984:undef:undef:undef:undef 83139703716215099431:9590068332:6008542219:+:3581526113:- 63780557421068123036:8061512977:3317763271:+:4743749706:- 50060597971211550087:7642450509:undef:undef:undef:undef 45166290048158830105:88309931022:37757978485:+:50551952537:- 13133582014405751453:17181115594:7802845433:+:9378270161:- 26316135309996093363:79484544404:63099834595:+:16384709809:- 14123787692392568201:869456811552:488504903609:+:380951907943:- 68235447576890798937:772093620127:414556602434:+:357537017693:- 68945702183551101666:491041441088:undef:undef:undef:undef 87113191772051761440:8724507843726:undef:undef:undef:undef 71660345672099809426:7601282071772:undef:undef:undef:undef 33794029746006109262:7207718100663:6683032880225:+:524685220438:- 50812863669362851904:54626320732533:5270191857800:+:49356128874733:- 17269056079114501387:99507020903726:32252063000243:+:67254957903483:- 36105829025038056918:61325443211096:undef:undef:undef:undef 87503584793550020752:808978605382759:107904997492669:+:701073607890090:- 18005279671900622042:835934610515518:undef:undef:undef:undef 84540458353176014085:172265776726936:13003975140909:+:159261801586027:- 29908775267456274463:9154602903715007:2984385636413608:+:6170217267301399:- 40033326276534794210:9072363631383844:undef:undef:undef:undef 72145153883025189496:1273132873363654:undef:undef:undef:undef 59786846033000007735:73293973887942099:undef:undef:undef:undef 80212857983382052219:43906734328798378:8014149190586465:+:35892585138211913:- 83103542125540553773:82937437843016227:75979313349769473:+:6958124493246754:- 46307865779017573030:615840531903755490:undef:undef:undef:undef 91439934055342327935:935321499539922298:552354121831852385:+:382967377708069913:- 81897580657324592477:873679720044479978:810161066852210273:+:63518653192269705:- 35783429166206739722:8817460755801437601:8561730235625088044:+:255730520176349557:- 37774747291999788193:2719007411145293505:317005635182467012:+:2402001775962826493:- 36889916154925832052:7697594947450658323:7665728366872146114:+:31866580578512209:- 74150851609144084776:32280035327789426432:undef:undef:undef:undef 23255383858328353037:45398576381144711433:2538484923275749964:+:42860091457868961469:- 83091194375321980091:29170133994733611672:20270898659107993979:+:8899235335625617693:- 78603066077259805724:144253799380198774946:undef:undef:undef:undef 22795654032814824747:923828670580177932656:465458158791993953091:+:458370511788183979565:- 35967663277143186267:444623028883266070585:183034422912171150833:+:261588605971094919752:- 29633709462946584558:1215959123152496923130:undef:undef:undef:undef 54519513617443438062:8883240371247671639754:undef:undef:undef:undef 44864838295842013874:6934008075047176809482:undef:undef:undef:undef 96380934085721426669:33033406990345707279550:23089822432827598436929:+:9943584557518108842621:- 34438706394518033877:55539350337602159117062:5482482178339893933651:+:50056868159262265183411:- 88632402955359853039:93147944788718228257117:70467753699090970406057:+:22680191089627257851060:- 58889845808828043516:506211071344721308205211:undef:undef:undef:undef 72389378381131767278:924606984469978292837632:undef:undef:undef:undef 58909151720975083642:347184061533561775782630:undef:undef:undef:undef 40385436710002299924:6823252581001428084242241:undef:undef:undef:undef 81815397407819983904:5779312326029839882850083:2748831057887968964589574:+:3030481268141870918260509:- 85889138654042523621:7360070437556045379745779:undef:undef:undef:undef 87790611342649174424:188:undef:undef:undef:undef 23534106003531578853:458:355:+:103:- 79868451341737109298:455:undef:undef:undef:undef 56708851661719914845:4008:undef:undef:undef:undef 92163217766292217257:3340:1633:+:1707:- 49726951837761690952:1994:undef:undef:undef:undef 11437454083374469986:16065:undef:undef:undef:undef 33554502168069243829:81033:3688:+:77345:- 88821853932908263052:59975:11138:+:48837:- 80555830734527655261:926526:undef:undef:undef:undef 91606409763376132974:257632:undef:undef:undef:undef 88660586233055346834:971054:undef:undef:undef:undef 12221208436868245934:5130606:undef:undef:undef:undef 26482535875953791070:8580086:undef:undef:undef:undef 48196625155219968662:8953413:2036435:+:6916978:- 41731711296621812847:46701208:35537383:+:11163825:- 94523039370408491776:31838227:1105751:+:30732476:- 77743673842056461602:15771270:undef:undef:undef:undef 16466906528690752489:734434720:705582809:+:28851911:- 68465450456942785923:316968708:undef:undef:undef:undef 65392130925573284591:926060302:258250569:+:667809733:- 85879814100995419744:7195807062:undef:undef:undef:undef 40730550095500965700:6581982304:undef:undef:undef:undef 13613425094810954136:7040255550:undef:undef:undef:undef 84558037063027249911:95727168307:14051562878:+:81675605429:- 24582907976090389833:17391432744:undef:undef:undef:undef 17983991072762776981:49776896976:1389560269:+:48387336707:- 79909265464113501017:842936459789:477340797479:+:365595662310:- 85060691455987313035:184749153601:undef:undef:undef:undef 71310833888561341837:313803320021:145654272504:+:168149047517:- 39706576208339090356:8497212273539:4189678911533:+:4307533362006:- 48435768266342554324:8918208417974:undef:undef:undef:undef 52544894345511982837:2882527360004:2506010554261:+:376516805743:- 15586883229686058364:25606213251829:18484476014188:+:7121737237641:- 10651167848689667227:15483233236016:8785345224771:+:6697888011245:- 89196524014965301510:15629235365953:4400138969768:+:11229096396185:- 12704381502722002866:158817739933491:undef:undef:undef:undef 61767182596646198539:871200529495247:undef:undef:undef:undef 49342061106770162722:501489922729467:491825582889973:+:9664339839494:- 74205595140138789767:2608727101717786:598743334599451:+:2009983767118335:- 20391493069524616184:9053534660142694:undef:undef:undef:undef 60999161958516409519:6021728310972274:2190881185853917:+:3830847125118357:- 76276141168010495855:62366470421142679:undef:undef:undef:undef 91457074188709709760:58473181589704646:undef:undef:undef:undef 41041540565288490193:54094779733351756:47546705059553477:+:6548074673798279:- 78118877476556488666:154832038781162811:102137334163824898:+:52694704617337913:- 44332318372906253527:578874559212403005:485066814500176333:+:93807744712226672:- 16818998993557434547:564662139472425361:188032874588039478:+:376629264884385883:- 50389581687467027683:5381581176332710699:5366663807030343873:+:14917369302366826:- 31720612552940720105:2576250042346811812:105338714928503861:+:2470911327418307951:- 10507407984047313574:6451596453688652146:undef:undef:undef:undef 82899913481838374642:15509608123512847831:6194724560719373552:+:9314883562793474279:- 88012984245237832199:69692115042440083889:30727235749983398219:+:38964879292456685670:- 61142339689521878862:61936718113107612596:undef:undef:undef:undef 24123604907850369381:798294788364375137063:177368967937016813072:+:620925820427358323991:- 42971940021131267364:827838469721395961351:747159044213086724166:+:80679425508309237185:- 26577447064831626393:888672988413581760646:33493868639718137397:+:855179119773863623249:- 36492357751976942083:4209777394815747978019:2625233922838779668894:+:1584543471976968309125:- 23685505310309526675:7390045029377930500091:1372714656312073244306:+:6017330373065857255785:- 95030497992770995618:5990939932188379455423:4580150725622865453994:+:1410789206565514001429:- 81530050420941357365:89841197082616526161313:18630634103931508011248:+:71210562978685018150065:- 93448375776546688118:32606636837174817011141:19426977077049506834826:+:13179659760125310176315:- 39940476544127344116:31450697486458938110409:undef:undef:undef:undef 25002960888279105365:430965158107824804848291:167875417109799884479328:+:263089740998024920368963:- 81254428092262572594:416596986441224768298834:undef:undef:undef:undef 60522508616508323045:222707578815472695623399:129209177477290705634376:+:93498401338181989989023:- 79211386782320561419:6239951755913447507748181:1968606591109268698716747:+:4271345164804178809031434:- 16585453138970304465:6829983832539893975466119:4315087231050262073489169:+:2514896601489631901976950:- 78362615121605322406:9879452272202434354667378:undef:undef:undef:undef 222469273614121370217:751:653:+:98:- 203634259890618385015:171:94:+:77:- 130866933947358320020:963:388:+:575:- 219313555731993193999:7893:6277:+:1616:- 625385082668408967648:4699:1809:+:2890:- 409887159711255864014:7828:undef:undef:undef:undef 860763130251743758247:56651:25518:+:31133:- 423529667755119235600:34702:undef:undef:undef:undef 547245488569503903717:30439:25897:+:4542:- 666663468221531572697:302883:293165:+:9718:- 942327832300373347805:167309:93189:+:74120:- 510926018221359857509:141157:140949:+:208:- 425025031462462377635:8783206:undef:undef:undef:undef 152968810020455707904:7130868:undef:undef:undef:undef 110272593913604615453:5383912:4181349:+:1202563:- 599636362817393649434:69060688:undef:undef:undef:undef 900236734177671489859:99757274:6414493:+:93342781:- 745687287582016348136:81728322:undef:undef:undef:undef 196132010240399107249:859646990:406352899:+:453294091:- 985571012670637714692:631441957:377458877:+:253983080:- 774405996384028041205:674395070:undef:undef:undef:undef 571564888467356993871:6392456657:1314167970:+:5078288687:- 782561657150052663359:2403784742:14423781:+:2389360961:- 205594183931768043041:4107599642:1850961197:+:2256638445:- 908551033023370529948:97820429454:undef:undef:undef:undef 666477636927229378021:29038358625:4653694006:+:24384664619:- 814747954018195190408:72605082098:undef:undef:undef:undef 924022178560272772741:148043328791:47468964426:+:100574364365:- 985376807931579715383:910512997799:647069982721:+:263443015078:- 840011014058371981307:112993972565:77748946818:+:35245025747:- 511791505538248062554:5630847376129:2887957363651:+:2742890012478:- 813547382132353986829:6180385717462:685474808685:+:5494910908777:- 664727386068519163279:1723355339674:1272576299323:+:450779040351:- 198230064705953949120:18138770238456:undef:undef:undef:undef 970971533215001803608:71320320120120:undef:undef:undef:undef 372979404736410940773:63288681918830:38842670586957:+:24446011331873:- 141361696359391040778:370944208398327:undef:undef:undef:undef 216458624417870919251:666441141732925:293805924050801:+:372635217682124:- 526130860016988910262:491234051258510:undef:undef:undef:undef 215210838958019289699:9769448239969307:1573698167037500:+:8195750072931807:- 438094602187949311474:7289964881683573:1387623964950234:+:5902340916733339:- 263932597475260367880:7663911191863600:undef:undef:undef:undef 326006499397541597466:32422506223659498:undef:undef:undef:undef 715774866656243342395:17520801656458809:3796451785129939:+:13724349871328870:- 129833955791040492408:12159854736877069:4792204795088353:+:7367649941788716:- 195484130008172790738:596797942779792628:undef:undef:undef:undef 923272428840406522860:459912669156287377:undef:undef:undef:undef 502220893025293895270:891889900797980406:undef:undef:undef:undef 265959331276855024136:5925951228390605973:5583964349149869677:+:341986879240736296:- 323547371196221379385:3195045479742245202:1462624001781123397:+:1732421477961121805:- 405874848728728351726:1593917318053558261:167217762731197497:+:1426699555322360764:- 286903803879848390926:79840612734995026445:11396598275279182936:+:68444014459715843509:- 408837954033388993493:55661255038618604811:18486467603553598133:+:37174787435065006678:- 439046389517191274835:61353005519691272463:undef:undef:undef:undef 287002150826635652446:568631611262167491083:258391403036836348689:+:310240208225331142394:- 694654600666740389922:989621481379620028648:undef:undef:undef:undef 635178478562571012680:170675841782350896168:undef:undef:undef:undef 912558166831638956058:2211336056718762891436:undef:undef:undef:undef 900043918152616577260:4798529103099259303551:758771188883683666498:+:4039757914215575637053:- 113829831167694075883:5204630965541897885143:undef:undef:undef:undef 148788686053754525278:25732414550861361433949:18335005157611944235776:+:7397409393249417198173:- 762574956170933342733:48608980217093415137381:37009681437506950304791:+:11599298779586464832590:- 890689100314339904536:67048428073618522154219:64142352182094985652942:+:2906075891523536501277:- 928487171439374260178:887005181253909781817443:638550320306924159343871:+:248454860946985622473572:- 734630026451254820840:428445787696974804720142:undef:undef:undef:undef 816426024260962583892:649610741413494399438795:undef:undef:undef:undef 173947869583086596243:4456555004847206714613624:3830883416722679131090163:+:625671588124527583523461:- 228547162640874074084:7370228099394320654347879:6336669903258825231999399:+:1033558196135495422348480:- 917354889755992125162:3728655370119549475667266:undef:undef:undef:undef 864282471803349087486:854:undef:undef:undef:undef 483094066243361231311:277:100:+:177:- 434847472789877804609:555:254:+:301:- 578439464591811164390:1282:undef:undef:undef:undef 554967806147021936604:7098:undef:undef:undef:undef 865812929167476811648:2549:278:+:2271:- 482213761104336078352:98782:undef:undef:undef:undef 142858277354770352091:93556:86907:+:6649:- 463587017449333463622:70267:4483:+:65784:- 107689072720974842699:519842:285421:+:234421:- 845670961208214778452:979141:880428:+:98713:- 522576555284244809351:745935:144656:+:601279:- 387424439216006491614:7796906:undef:undef:undef:undef 372576414558585433790:1515956:undef:undef:undef:undef 971819654249713886165:4300376:2975741:+:1324635:- 743194650173160351419:80802592:27873363:+:52929229:- 850073890809711137361:94749305:58790796:+:35958509:- 682755474406485007421:94904510:75758691:+:19145819:- 444882942356056887917:842466962:720890469:+:121576493:- 333327753516826636614:861944556:undef:undef:undef:undef 520384425224477655307:138240499:75137917:+:63102582:- 787296883677099455549:7388582467:2248954177:+:5139628290:- 127826412736867950796:5922195878:undef:undef:undef:undef 887317823706046475638:8766644457:461149990:+:8305494467:- 530274912592266434537:95245420324:20971470361:+:74273949963:- 208929399679301267651:39367653420:2728663931:+:36638989489:- 374408131607850444852:19891063744:undef:undef:undef:undef 218903475380797195929:520661585956:136098939977:+:384562645979:- 824875176169814561239:298265922655:27160319659:+:271105602996:- 557360651447408528168:452953609593:271028623937:+:181924985656:- 968732963725397958973:1694313430148:907177707033:+:787135723115:- 704854677395044855806:8859752439997:6122895248601:+:2736857191396:- 912988335156065638463:2970676443389:2924445915787:+:46230527602:- 178929761314785787205:95304782728960:undef:undef:undef:undef 684263934134108222359:74675525587295:58894842336199:+:15780683251096:- 572806267296935748328:34440239444090:undef:undef:undef:undef 354532605347075444984:738211673187192:undef:undef:undef:undef 316881165575535670422:940813427149173:undef:undef:undef:undef 581469655070483145017:873004208528979:198472725832886:+:674531482696093:- 168211535098214994482:7941090336121803:7699922063598152:+:241168272523651:- 744831709272018951145:6609693267390188:5504241459051065:+:1105451808339123:- 387804381536381851751:5212780591410542:2496391364101219:+:2716389227309323:- 719125792603167632036:31519078401126722:undef:undef:undef:undef 952235639878375409557:13095810636721129:11230472275767474:+:1865338360953655:- 673833984925568838072:83791118488390902:undef:undef:undef:undef 934248307467496556957:892961774735345943:139251591001665620:+:753710183733680323:- 199200624819079763043:680117829986528062:24215979789505393:+:655901850197022669:- 570885094635743887859:951049501557169076:32439246166420979:+:918610255390748097:- 934092731964824984329:8998355057754525233:8398913182060315874:+:599441875694209359:- 474529933667997096936:9199403804858679746:undef:undef:undef:undef 271216540185860263251:5319075856055213102:1492189709757765353:+:3826886146297447749:- 557545405188674147030:10584899779916419092:undef:undef:undef:undef 810380252431166322413:41537831863935596037:32700061654662334799:+:8837770209273261238:- 704028938366407125297:37582074119019486321:undef:undef:undef:undef 605353823566371564615:653419650926468676710:undef:undef:undef:undef 529671606734149621121:252794376542150731807:113674614332322336367:+:139119762209828395440:- 771966864669214785259:828635520350272196565:371192199409764223714:+:457443320940507972851:- 833159968112829191390:8036830723554606690872:undef:undef:undef:undef 305484802079956355571:3556406777045134624284:undef:undef:undef:undef 426709424821294632874:8172335118588729648573:504302074553747651791:+:7668033044034981996782:- 363534486403992559766:98596001856328465852536:undef:undef:undef:undef 595412749467829261308:92726428055250457287643:64980251172884704480653:+:27746176882365752806990:- 628373134655347175754:40452954900035573828928:undef:undef:undef:undef 404498830382790889356:288917922391344374800634:undef:undef:undef:undef 163199713008892684058:383129996874859371297778:undef:undef:undef:undef 296870268425103667661:171431006013867368563219:27597956278877507901229:+:143833049734989860661990:- 262334092254534542567:2436317799249906261905168:1581507882081057857356215:+:854809917168848404548953:- 223843803529649713447:9469028158815732242471019:8091238404266646525020707:+:1377789754549085717450312:- 826688228783243144161:9832764636492408278853761:6595836856424819321090377:+:3236927780067588957763384:- 839235939125266130991:929:281:+:648:- 523974141875285108869:463:441:+:22:- 472658157902996626781:330:undef:undef:undef:undef 967969937069874016335:6803:3900:+:2903:- 378751207167767239626:2174:undef:undef:undef:undef 714764454372656757269:7907:634:+:7273:- 261779102500173851997:95593:6873:+:88720:- 778457729874074437676:59312:undef:undef:undef:undef 780243418096937554532:15419:8570:+:6849:- 617311850530168828207:855488:622031:+:233457:- 436191596284235151048:678870:undef:undef:undef:undef 101479008125634803930:149693:75924:+:73769:- 328657677524683600017:2416028:2156545:+:259483:- 254453987712116790854:9626488:undef:undef:undef:undef 742761089109272965522:1505121:143596:+:1361525:- 778051446159165750393:12302376:undef:undef:undef:undef 641992834004740604311:80017626:74702923:+:5314703:- 629665106590431072909:85763321:56746577:+:29016744:- 663008084318467030160:575920312:undef:undef:undef:undef 304733746913720050282:498453749:3614020:+:494839729:- 699672428123124089582:249674064:undef:undef:undef:undef 838035423626190008867:1747181820:1659583943:+:87597877:- 712448899005842831011:7768732395:5734681561:+:2034050834:- 274286531021346345358:4652186853:474303538:+:4177883315:- 380541437366807442998:64450010130:undef:undef:undef:undef 947490796549861256400:44959341145:undef:undef:undef:undef 812266523403261470532:42268119004:undef:undef:undef:undef 376976105498629839115:802061815381:542321464851:+:259740350530:- 444470829262735060386:649427279067:undef:undef:undef:undef 872318051808524143827:861335970044:106746111343:+:754589858701:- 352138991239759812765:9809521853776:9516558483109:+:292963370667:- 666340642191029548992:6408072751043:1174016493169:+:5234056257874:- 327118262063651566875:3101776656344:547433561067:+:2554343095277:- 941299096972080404562:79234428109872:undef:undef:undef:undef 673118480874795407365:31435862908850:undef:undef:undef:undef 525335482136900098790:23576225880980:undef:undef:undef:undef 904170783971713586897:871200333326529:554263814855588:+:316936518470941:- 502063977885606752781:341788036709129:230633709677039:+:111154327032090:- 969395205194360889449:349923067452781:113014477980339:+:236908589472442:- 177543606622200487953:6294627299166699:undef:undef:undef:undef 595715096515837512563:9506607556217870:5313087695823347:+:4193519860394523:- 264864492099650858087:9069744683063336:6049986938395367:+:3019757744667969:- 153972113229710269812:61809964733729308:undef:undef:undef:undef 876937857924627817761:53312132267747526:undef:undef:undef:undef 429439103372129420988:31312320477872090:undef:undef:undef:undef 564371379321778406709:167170860365795723:42499406418721917:+:124671453947073806:- 452893687594722447878:655193298640920221:undef:undef:undef:undef 887247887959222465184:398242535840301959:352180872188486501:+:46061663651815458:- 314022811651945537154:2312814397291594590:undef:undef:undef:undef 156163742339527257523:2921116891223151554:1603591896829753321:+:1317524994393398233:- 290859518526072027409:2372179029485459905:520972281441725419:+:1851206748043734486:- 652372848654248729872:25388608524517493773:11753175005930331171:+:13635433518587162602:- 743433096978462896864:90718735349484900946:undef:undef:undef:undef 755864689787364640209:69286108626235960796:10839070930602053229:+:58447037695633907567:- 624952422221039892644:213048291459562022462:undef:undef:undef:undef 848639585727996439433:909644378828487243258:364771783311627285179:+:544872595516859958079:- 658298202456916737457:107143436381224433348:89249108318278665641:+:17894328062945767707:- 171312241382061258089:9682322644912295622509:136307076623448469379:+:9546015568288847153130:- 209331895956729452737:9894212683454380426945:3936778819111613268758:+:5957433864342767158187:- 964468791709638582035:7663822327008331068066:6407738910810002277893:+:1256083416198328790173:- 519070974498218343914:59005148874057505268376:undef:undef:undef:undef 744400406698297176208:96610848845054035782672:undef:undef:undef:undef 796756082956100130115:64997134522693781592465:undef:undef:undef:undef 575523597543795682321:857541250499537109686933:69848570961008160906359:+:787692679538528948780574:- 701148158120604566210:199055962554917694384725:undef:undef:undef:undef 656184178113079519971:625463465629301951178747:undef:undef:undef:undef 173042295743171271672:1959628452171208119618211:635402454158230428614445:+:1324225998012977691003766:- 492423370848411359061:9323231027933281949392062:undef:undef:undef:undef 996379792997849980955:2035229017542911689468619:1957987668026256978163703:+:77241349516654711304916:- 1839850204584165132145:142:105:+:37:- 6934496594486882514370:844:undef:undef:undef:undef 5692187749797167864750:455:undef:undef:undef:undef 2439575037659688433574:4185:3629:+:556:- 6047484087653889031313:6772:6765:+:7:- 6243859452971106645160:8238:undef:undef:undef:undef 6023121424848063073801:56900:51701:+:5199:- 6971825260004492400682:32721:undef:undef:undef:undef 6888926907943664599670:36470:undef:undef:undef:undef 1745055266386378223395:496053:367264:+:128789:- 4114306336189268952246:522556:undef:undef:undef:undef 7377674484138559602586:863719:undef:undef:undef:undef 2365960864270336898146:5794525:4563756:+:1230769:- 7256177064299722592694:8208532:undef:undef:undef:undef 9163024430187329416057:7534317:undef:undef:undef:undef 6316457727921483460785:41731857:undef:undef:undef:undef 5683986432809029021922:40905834:undef:undef:undef:undef 2778978385244133663022:38071751:3001285:+:35070466:- 3238052242588630599868:758144778:undef:undef:undef:undef 9314124521255823715890:894490575:undef:undef:undef:undef 5534400580796363580709:498257232:463995229:+:34262003:- 7603660466434916850235:2800725124:1633407283:+:1167317841:- 9597172479248228320144:9789982112:undef:undef:undef:undef 3477096603833768348024:7019662580:undef:undef:undef:undef 5248208475367671664104:64851110623:32321382173:+:32529728450:- 5750120784031910049527:57716101172:8789306215:+:48926794957:- 4375721449892938563155:69879051741:43946999936:+:25932051805:- 5980259112557379772472:517887444420:undef:undef:undef:undef 4232530025454664222776:145233849543:undef:undef:undef:undef 1543179602908149553106:809563411171:367870571395:+:441692839776:- 8266358264532765351255:7300442880970:undef:undef:undef:undef 1775722667588063596665:9312238368885:undef:undef:undef:undef 9590724812502212461888:8965525014790:undef:undef:undef:undef 5229211330494937364381:10625410975518:1575761292251:+:9049649683267:- 2431975366336788160139:21156702607124:8621261028043:+:12535441579081:- 9852236962511759235543:39993404718693:undef:undef:undef:undef 7150474159723516578288:244084324068302:undef:undef:undef:undef 9320481827418168997405:385840063054852:185550613097257:+:200289449957595:- 6984792045907820536602:753576448955570:undef:undef:undef:undef 2699392565376452052409:9890243867976939:5162567670851074:+:4727676197125865:- 7682145606332975581697:3845937244304682:3844381199028251:+:1556045276431:- 9335267552861727896855:2371953145618717:1983544593911048:+:388408551707669:- 7258393773822832844455:16460557759675278:15308057335246975:+:1152500424428303:- 8342066539617509476723:83197599892717094:4421890425489971:+:78775709467227123:- 6957220954774008543359:98070056578244222:81972969789857221:+:16097086788387001:- 2306705894433864582719:151620398549773044:17290715609128223:+:134329682940644821:- 6288284318883180440044:934729989281010135:784171973458543309:+:150558015822466826:- 9572088847439282028035:950700976816506549:848348037146528981:+:102352939669977568:- 4849771553093551527886:2427239388537311293:1172999191066544373:+:1254240197470766920:- 8348750284793466712833:8480512216413168101:579181618029798723:+:7901330598383369378:- 6887809555658216357795:4835683327338132062:3358554271170263195:+:1477129056167868867:- 5458870256593658332064:91958564052486527484:undef:undef:undef:undef 3532006205604657078281:43406946313495475179:10387071739263531111:+:33019874574231944068:- 1042167215746232554641:64875304849081830618:undef:undef:undef:undef 3859369749253894536047:548737564541670811849:371755153618532834951:+:176982410923137976898:- 2899485998209405322484:295410054329514266269:56863124488379288040:+:238546929841134978229:- 9272247721625756784959:634249966763061343068:359383982017080814799:+:274865984745980528269:- 1617773355509011607636:5384785757685627478751:4568549050237931109777:+:816236707447696368974:- 6513864342977071834081:9948659543586545483751:7935119641263792097147:+:2013539902322753386604:- 4296022100245925255030:3766238437621586504580:undef:undef:undef:undef 9795654957441755830749:71707597527997962541614:undef:undef:undef:undef 3379410904600974576844:60939201545394304173074:undef:undef:undef:undef 4591890088982211743550:87323802548511328733146:undef:undef:undef:undef 2426611503980499776682:149381630065812724333057:79426065378497101719467:+:69955564687315622613590:- 3443845316095039693295:606649762182609389419893:339576397037487755983490:+:267073365145121633436403:- 5495248395484902216980:528915195078449567501040:undef:undef:undef:undef 8471502510358951657290:8333239668531474842694667:5031469633845788741848737:+:3301770034685686100845930:- 5558113585238071056468:9761568318069654811375806:undef:undef:undef:undef 4891365839792787235204:7701450039486196814583243:1328346739110727609880281:+:6373103300375469204702962:- 5092729372120582936854:258:undef:undef:undef:undef 3828828920718451791694:655:414:+:241:- 4170083076902276183594:270:undef:undef:undef:undef 6261956069770028968282:9661:2880:+:6781:- 4870009061739792812747:4449:1646:+:2803:- 8477354147441096345918:8983:7452:+:1531:- 9148415847187615394287:51570:16063:+:35507:- 9789579618591570165680:47681:6886:+:40795:- 8013933040719989152209:45577:6404:+:39173:- 7420903221006723393430:327107:179708:+:147399:- 8507634999641223445756:556498:undef:undef:undef:undef 1795704365788211211684:552687:undef:undef:undef:undef 4903068472977289910501:3920850:1703651:+:2217199:- 8419562673383589276724:3691014:undef:undef:undef:undef 1076953781209780850369:6136198:5849481:+:286717:- 9865807717925889834881:94343069:46123396:+:48219673:- 8113339496805836715934:89650004:undef:undef:undef:undef 1732297142788054879035:91553491:29200636:+:62352855:- 7606662944165165543646:499354289:203014688:+:296339601:- 3328911390812249765346:101655701:80743225:+:20912476:- 4396306620476765013629:700201801:667601778:+:32600023:- 5320923774284522092207:7060318785:2151260773:+:4909058012:- 1453745318240153550502:2447183667:102390130:+:2344793537:- 4768869271115535010327:9873596409:348332080:+:9525264329:- 3020396247151335827355:52703901248:42988977427:+:9714923821:- 4667689000730773521087:34070119707:undef:undef:undef:undef 2206811938760176420328:69966185273:54647508757:+:15318676516:- 8444698846282531878047:550604444262:130030132499:+:420574311763:- 3487459000638845029301:254791933841:197925583871:+:56866349970:- 4517125068586980645227:921827614468:918161384003:+:3666230465:- 4421752257227474753166:9750964956909:undef:undef:undef:undef 9051476746644240654700:8397122186598:undef:undef:undef:undef 9736326304721217773340:1331810185523:253006595880:+:1078803589643:- 1124928610727608933131:73723030301326:56811420796097:+:16911609505229:- 6591862305825300587752:61601479084751:58750921006762:+:2850558077989:- 5432387990288423051426:49333295635243:27364594462982:+:21968701172261:- 9830865303836212171105:234884106040418:53596541139477:+:181287564900941:- 7787606534616060689721:320355840021647:219531586825890:+:100824253195757:- 9648783398976927659324:297960953889690:undef:undef:undef:undef 9227902213572054824818:9720446483433158:undef:undef:undef:undef 3462926876094537530480:2574937802020480:undef:undef:undef:undef 9457427306463260972168:9418502842830975:7130638537118882:+:2287864305712093:- 1660533730534356942658:76444769176196220:undef:undef:undef:undef 3620302516016020700097:86612568107498304:undef:undef:undef:undef 2931417437711703212621:22758504088523325:8912029597098281:+:13846474491425044:- 3046915016997963694897:259340307336030107:123220057238174932:+:136120250097855175:- 4448448443707697480329:249908228336071142:1907096413910979:+:248001131922160163:- 7812893010168527738415:271153566221059698:undef:undef:undef:undef 1544990484276641899519:3006429639091094575:2470263009561938279:+:536166629529156296:- 1192389794119904167289:8357749089458300900:5292066782423513609:+:3065682307034787291:- 6388434119838448553491:6727713394198264322:2030082226651365897:+:4697631167546898425:- 3716846380578841154646:56493333331807523303:38433721668493223767:+:18059611663314299536:- 4086936601392542350175:12993092317524002002:10781075565330930691:+:2212016752193071311:- 7756826809499740894890:13630419473839181412:undef:undef:undef:undef 7799352049212187293381:754665542213801703886:627062957195215946277:+:127602585018585757609:- 4006015832469367619167:578547324740373465982:468007861874886642005:+:110539462865486823977:- 4221206949096676295898:590610716833518748924:undef:undef:undef:undef 5753938527912127276024:5133482441256109715188:undef:undef:undef:undef 5506207331967874360652:4512388179691757249605:2664015360427888638153:+:1848372819263868611452:- 7166785920987004498828:2740128254235414853280:undef:undef:undef:undef 7531777126692273252450:75549677566006276884881:54185845350578886750719:+:21363832215427390134162:- 4225247981950998099020:30749002023250648659603:6022926981284457099830:+:24726075041966191559773:- 4319562633454669319677:97995545015472199252676:74736050044966539661589:+:23259494970505659591087:- 2537070910191961600896:772462965982135185534304:undef:undef:undef:undef 2698749785802992529208:190020076654053782681067:120404333979494185175410:+:69615742674559597505657:- 8491055145358622945626:647441786171857002296709:32830929819484338894886:+:614610856352372663401823:- 5460001551504418775235:3646253845151233422312019:1608440579291760161891194:+:2037813265859473260420825:- 9407913112559656150356:5620951308692779298843831:2597395277630197001933864:+:3023556031062582296909967:- 3357802138194603213386:7461188232862554481380180:undef:undef:undef:undef 3575011542974564009241:266:29:+:237:- 3002047794987575695002:830:undef:undef:undef:undef 4918856892985336505429:403:114:+:289:- 7750622764021180827828:7918:undef:undef:undef:undef 2725633235355203119157:2074:1643:+:431:- 3123412075700516057895:8607:undef:undef:undef:undef 9686481719098763453527:82203:1807:+:80396:- 7980343316280326035226:41116:undef:undef:undef:undef 4080694656944024838090:72713:21685:+:51028:- 4543716215679952372443:903548:205423:+:698125:- 3683541662014826785795:399080:undef:undef:undef:undef 4357103684637018974727:590817:undef:undef:undef:undef 7246469542416755573756:8038531:7487485:+:551046:- 8614206368349551708945:4782512:3498801:+:1283711:- 2456069606182945176019:7203718:2951783:+:4251935:- 3250688164866423912143:62914602:27817901:+:35096701:- 1254962429834545453295:53865093:32901731:+:20963362:- 6971504891168330605617:62044880:39814513:+:22230367:- 3795588657286113707043:736494918:undef:undef:undef:undef 4643113205071476682302:870749653:53354525:+:817395128:- 4364354391278282795898:236685594:undef:undef:undef:undef 3346189067585829738085:6328379808:2325914221:+:4002465587:- 8703280249357838619967:5913141415:5123205223:+:789936192:- 6580494188519761221661:5844645846:4367761165:+:1476884681:- 8291252866155104652120:42171890144:undef:undef:undef:undef 7010722100907584939383:12987894143:undef:undef:undef:undef 6916473269361729195347:78242066121:39945057125:+:38297008996:- 9982489393403309412559:954234520874:563660750889:+:390573769985:- 7174185876323170063366:877697436224:undef:undef:undef:undef 6311036972687349556678:680661792942:undef:undef:undef:undef 1058274454130136873418:5442236752118:undef:undef:undef:undef 4581810117928278052484:3844711748532:undef:undef:undef:undef 6841409898573512612653:7124428927710:135498912577:+:6988930015133:- 2118344330640610678823:69268332628997:48997836580594:+:20270496048403:- 4308930338606419865761:15806567405363:10217267422814:+:5589299982549:- 6120290225995005358116:91905943552020:undef:undef:undef:undef 6121702826878713662143:398908118950444:71248521474927:+:327659597475517:- 9637687609145294608506:274502458397158:undef:undef:undef:undef 8876007271682114799533:624572847558681:624234760077812:+:338087480869:- 4127547034011543930796:8698843313545464:undef:undef:undef:undef 5249452300394296618070:3767815078124467:2311523892722541:+:1456291185401926:- 2154832440468520679385:5750488679173761:undef:undef:undef:undef 2139341531554656892665:76257659651164788:undef:undef:undef:undef 1412978914201696258549:36540442026846730:32594403769272869:+:3946038257573861:- 1419602346418396189427:18555372006665476:10574818964975195:+:7980553041690281:- 9527289940162145851527:842649885783789032:345795597885112239:+:496854287898676793:- 4622110026844068407312:835436330997561120:undef:undef:undef:undef 5778925857947895116202:564896863387490001:undef:undef:undef:undef 3152841552483974753325:7686805599689267192:1271517839910611757:+:6415287759778655435:- 4569981307889660427099:5225541739657557593:2108880192529718034:+:3116661547127839559:- 6387668328365321786530:1764659485689974621:1341694360853154064:+:422965124836820557:- 1687413314020679257168:89876650301408267308:undef:undef:undef:undef 1232470857547167281956:66788832090488432750:undef:undef:undef:undef 3892164248576509370467:35381650754347142230:32418836648955654903:+:2962814105391487327:- 8624058046969657518849:746248599384453112654:undef:undef:undef:undef 7134421961181730172892:643186897854385150471:346778774574543064508:+:296408123279842085963:- 4439333632535749546384:308198309378221372904:undef:undef:undef:undef 7999695553452878566308:4660402892993960651728:undef:undef:undef:undef 6560820596761192994173:8591323771687685641418:1811967085204785316871:+:6779356686482900324547:- 9198403049364373498442:3740226977806557519011:510227065462374181353:+:3229999912344183337658:- 9572658747105082416395:11991183502499154269091:8054315899216581816245:+:3936867603282572452846:- 1267378080879707738179:30663322734694680665159:undef:undef:undef:undef 5785772173486615785829:78115269268447223522794:49317058575529130804595:+:28798210692918092718199:- 2602821491625501235190:244424982416549482870039:243280043091832552773019:+:1144939324716930097020:- 7595898988159172526221:265353152656109197643545:67359826980341363649771:+:197993325675767833993774:- 4940085938042913688801:848262978758248483228144:589151869344474235044353:+:259111109413774248183791:- 7068231036981475667918:9135929693390387404977861:434637668689909974396674:+:8701292024700477430581187:- 7783103855135276210352:7324361342309366816874017:7119970704057816381511710:+:204390638251550435362307:- 1571095741282499839450:9066288738399053654512098:undef:undef:undef:undef 31827748528677574059460:323:129:+:194:- 68130555795364141468392:599:287:+:312:- 65103013164930796195464:660:undef:undef:undef:undef 97065601613447899809171:9659:7144:+:2515:- 28035457170305099398900:8951:4588:+:4363:- 33221467406768362730414:3062:undef:undef:undef:undef 82778393390177910966120:74559:undef:undef:undef:undef 15762166792325613515903:78653:23001:+:55652:- 85827435022753855564498:47519:8098:+:39421:- 67034508104527773915296:756614:undef:undef:undef:undef 65299738271866793265346:742988:undef:undef:undef:undef 34385482385342915969876:248558:undef:undef:undef:undef 66275300382962440863726:9745572:undef:undef:undef:undef 99712475568816557798282:7232398:undef:undef:undef:undef 39349312681549317176956:9715311:9175795:+:539516:- 57480642105541657834678:44306742:undef:undef:undef:undef 32625484737511546557912:87546575:15954523:+:71592052:- 35208401567020466162610:75307571:30773360:+:44534211:- 22824265018757483694082:663657217:175068291:+:488588926:- 63578939823476281522509:185437488:undef:undef:undef:undef 60490684179748142274988:357271665:304691197:+:52580468:- 80427131525630523437139:8171930468:530972591:+:7640957877:- 84299225076408046769183:3077412139:1135698375:+:1941713764:- 17878952481618810721674:4559165565:undef:undef:undef:undef 89004545574326412531116:42810851955:29502025616:+:13308826339:- 43489813979730336691430:27074074877:6935876468:+:20138198409:- 56050995158598842214705:28091178636:undef:undef:undef:undef 32062714258314191532809:561322493931:116518045781:+:444804448150:- 97100902847288182142313:869373818910:undef:undef:undef:undef 69983764206964929567473:278120062436:246440511197:+:31679551239:- 69580337339742274441532:7662535843930:undef:undef:undef:undef 59839511252980668636066:6594701177494:undef:undef:undef:undef 30459468542352240629860:6407453372858:undef:undef:undef:undef 61250089224658097776631:60258461958713:59149423247614:+:1109038711099:- 12776319084086731390933:68968749906796:58928449266525:+:10040300640271:- 18171434192722220675493:36026778187496:23012460187973:+:13014317999523:- 17322211173226296588714:302257913922052:undef:undef:undef:undef 62527742538401589376333:895074585832651:undef:undef:undef:undef 33424383937819028614690:256080252530417:45035940631086:+:211044311899331:- 16775481034366281796186:5459701512725206:undef:undef:undef:undef 88241767176746591034347:5866935010508119:4814759053581641:+:1052175956926478:- 79086963307459852713001:4245740559885541:2780679683461726:+:1465060876423815:- 74441925600479450179952:81137046166939366:undef:undef:undef:undef 96753060085533547276050:58929624701153932:undef:undef:undef:undef 15081778507283420474218:75563265057607567:52537376008624379:+:23025889048983188:- 79455637996551165199269:414288791040675242:373509065303900125:+:40779725736775117:- 55410240370111916976086:109430081632318887:23477573261090666:+:85952508371228221:- 12603985700297490194334:973836837150783641:276294864346525217:+:697541972804258424:- 41200653521598718148369:2502409121272787556:108723306934489085:+:2393685814338298471:- 46110484348535280031138:9037061699398364373:1222210310644505359:+:7814851388753859014:- 33887344068701194007225:3015554987029259978:1252620467914731507:+:1762934519114528471:- 60973312139906780967285:95265204474688082094:undef:undef:undef:undef 70303735436072392247862:59119679913582544020:undef:undef:undef:undef 35231423872204072728891:93107884939908589434:undef:undef:undef:undef 55098583830819809515511:524860059899952433934:150956120188195290189:+:373903939711757143745:- 79129846760456441736554:741099439573701793909:undef:undef:undef:undef 71370244672885904629021:792581575637158421497:442334646097599490453:+:350246929539558931044:- 62382913438237357910974:8036820378180898616664:undef:undef:undef:undef 26565340352873893298208:5788861009672744197952:undef:undef:undef:undef 87741510877750881136885:2328374905170813666090:undef:undef:undef:undef 64030832752071357402135:90785844432151635631626:undef:undef:undef:undef 23345931807586772721137:18954499656271057168665:7779145136895581592518:+:11175354519375475576147:- 29916081472610117283189:11123269663551540120469:326843131778596466643:+:10796426531772943653826:- 53460053968960153995009:309217493858113798393815:undef:undef:undef:undef 84589026915315410189097:113757022264077646042350:undef:undef:undef:undef 32660194479607446882679:233436018899921166720479:188685500727965412258075:+:44750518171955754462404:- 76069909534299757593737:3086405985400965233313607:1736359014973542706258518:+:1350046970427422527055089:- 34472832926901111132525:6465147265402039673191130:undef:undef:undef:undef 52431210273771446692039:1564764648262925981859887:768564436078172956384577:+:796200212184753025475310:- 18586701600829575529448:460:undef:undef:undef:undef 63229924979706873620692:312:undef:undef:undef:undef 31996954602482607100491:663:undef:undef:undef:undef 21362058576767321716724:8329:7952:+:377:- 37157384617179862363735:2363:1693:+:670:- 80082682147456943718004:9557:6455:+:3102:- 25468052732395570807573:25159:13042:+:12117:- 58735220169865632294941:83336:53781:+:29555:- 95608888017552921494871:34884:undef:undef:undef:undef 40865571926388465583702:493174:undef:undef:undef:undef 65233699349092548925462:815312:undef:undef:undef:undef 89884425685254515283822:321352:undef:undef:undef:undef 45660949768202546527506:7212508:undef:undef:undef:undef 91214396723204404174472:6125147:2799606:+:3325541:- 65085047163118010380539:3666760:2954019:+:712741:- 11593388659505242865577:49840323:undef:undef:undef:undef 24417960854897463154147:48365376:15684811:+:32680565:- 51450080189135324185470:96171864:undef:undef:undef:undef 86775541391838644485635:544405109:334872834:+:209532275:- 19385177748120957985119:945000847:252084283:+:692916564:- 62168125262245427899584:983933265:undef:undef:undef:undef 53491067439481711592366:2828511019:502439625:+:2326071394:- 78388944898480228875500:5860209170:undef:undef:undef:undef 78611678405406648394963:4349777464:2273791363:+:2075986101:- 21505338285442557819631:72096904362:55955903641:+:16141000721:- 99691844204606349482462:69938263567:17620493466:+:52317770101:- 11914783833511848421815:67065264027:undef:undef:undef:undef 73175187931117189650439:100493423395:20662249924:+:79831173471:- 88856866939027959235810:938012583849:245013639781:+:692998944068:- 58954174155822620365071:100947212702:undef:undef:undef:undef 61524225824306974456835:4123849744980:undef:undef:undef:undef 84242417288750291540032:4629337836093:745156804558:+:3884181031535:- 33353419720411607192383:7437722982763:3599651499995:+:3838071482768:- 58561983660017740648278:33057365036189:undef:undef:undef:undef 89945463298399799006041:53678204485224:37693999559065:+:15984204926159:- 89062490909819429128407:38669427295764:undef:undef:undef:undef 12827963036081961760555:639346925698116:160982233838947:+:478364691859169:- 15993569381119190962082:432914612826770:undef:undef:undef:undef 88280067025401417570721:742356056185723:432361488972683:+:309994567213040:- 92839619468720349621981:8124016328463847:4127339068096834:+:3996677260367013:- 36413443402796077638920:5467730994033932:undef:undef:undef:undef 75161842869113372533537:1836917409340579:1813784944790043:+:23132464550536:- 30068849792299829842701:38899823588943365:35696047940414971:+:3203775648528394:- 69107186882279310245288:57716810186408499:46714250475636455:+:11002559710772044:- 61445415328143823314111:69114246541841591:60648522310053432:+:8465724231788159:- 76877388622089734923055:273792677029720872:192391781751976247:+:81400895277744625:- 97061544508572729126834:820263099257987460:undef:undef:undef:undef 85229278420154167201180:479985529541060959:324719401564084366:+:155266127976976593:- 71728109405552987965978:6279939313759678420:undef:undef:undef:undef 42866023983607689846818:5455960434159745302:undef:undef:undef:undef 87269646661294853780466:3777125223388918113:undef:undef:undef:undef 91060217711166228531495:78944026683900079467:undef:undef:undef:undef 49418251336856010001937:64867861139204403277:34154341399403373168:+:30713519739801030109:- 31391108403739303030302:83421022167521449600:undef:undef:undef:undef 93867316695741297791620:621276551885397637919:204091579801566774455:+:417184972083830863464:- 26990915155479675938042:964559948370367634432:undef:undef:undef:undef 48490104784413415094805:727112958937659456268:111723665135302863709:+:615389293802356592559:- 93942015462568640755536:5678901058154739567216:undef:undef:undef:undef 45473802761706396552439:1348525642778066996455:1258568326226430478879:+:89957316551636517576:- 33435314644248146833548:4632474782320500718842:undef:undef:undef:undef 51020306728556862044254:32088874890601663804885:13946409393587184367094:+:18142465497014479437791:- 66353044627958121040340:34389638700152322239657:21510743947489600764987:+:12878894752662721474670:- 39148519604475820040747:21454789281464276741806:17735064239337672929299:+:3719725042126603812507:- 40609083152011441312446:687024763203945469837762:undef:undef:undef:undef 98749349353910550055922:639294304483696901854867:487559902590827129020277:+:151734401892869772834590:- 78829503302916560219849:838353213310689124405054:245629094715793215131339:+:592724118594895909273715:- 12194383708849070263291:6787894226588938163693699:2157777058863685470135464:+:4630117167725252693558235:- 43480371835169636731790:3678488408260467192472700:undef:undef:undef:undef 95334501737544164378205:5443853764717660491532873:4284022501485004383708208:+:1159831263232656107824665:- 19572334068170620221956:289:167:+:122:- 55592113192041441857518:956:undef:undef:undef:undef 67510069015780155945021:930:undef:undef:undef:undef 43913290110343105557261:4710:undef:undef:undef:undef 39833063624006444918074:1097:1061:+:36:- 62382189144113206964024:5015:4049:+:966:- 93720297262645286954550:22205:undef:undef:undef:undef 64325281564324663533166:24882:undef:undef:undef:undef 24516692387459780701696:65413:34428:+:30985:- 85465971442118171138825:636391:363774:+:272617:- 96301239389292360814497:864511:165590:+:698921:- 35293320442037798131200:435842:undef:undef:undef:undef 59339197072027282931374:3674820:undef:undef:undef:undef 86593758584242059975917:6440990:5438353:+:1002637:- 49969888366788653507563:5723729:undef:undef:undef:undef 78337676305285831454419:34176566:24527583:+:9648983:- 12815781626186844573260:48426430:undef:undef:undef:undef 48120930663737526680658:67053522:undef:undef:undef:undef 16800852908706125887652:880676760:undef:undef:undef:undef 28410984064057250050661:973100901:188887220:+:784213681:- 29566935373665536204465:284123521:38078432:+:246045089:- 28103689516585978867696:1808705773:1057623115:+:751082658:- 76941074612252446961551:9958132506:4921648741:+:5036483765:- 18222157607437546023455:8788012092:8191393307:+:596618785:- 50052175730458899895168:39530909850:undef:undef:undef:undef 64610332334449079933744:80850417388:undef:undef:undef:undef 78664266675487346272320:77720207932:undef:undef:undef:undef 61177563312132952894145:742727632276:158166194801:+:584561437475:- 16804560093146747675158:311897504368:undef:undef:undef:undef 55662497696345991662659:130152354070:72565715189:+:57586638881:- 21885463595330223614713:6404750884027:4841028517827:+:1563722366200:- 43354018455135492400870:8948375676946:undef:undef:undef:undef 62595974808706697358516:4844468396795:2088941532551:+:2755526864244:- 10556643094525018913664:99960042542636:undef:undef:undef:undef 27667861726326031846795:20309520896711:1177687835426:+:19131833061285:- 71726486267704076938918:67736883635279:3989524525991:+:63747359109288:- 65130537628778271127452:168490690542227:4192506174550:+:164298184367677:- 55518357035320369610646:431909232560604:undef:undef:undef:undef 70915454260448943180269:864197881396380:743148462239429:+:121049419156951:- 14782779233262435814008:4339986828598729:2467394286356535:+:1872592542242194:- 91727676723328405473009:1223874760331318:191580826209369:+:1032293934121949:- 66153625239884964926525:5841108444700162:3942145353860341:+:1898963090839821:- 48324180831824630962073:42347932028372647:3840809782593912:+:38507122245778735:- 48713498804586142612904:91097188958350630:undef:undef:undef:undef 95818298401702543419654:92139430970158792:undef:undef:undef:undef 68451432397442735310658:777183803845062581:483449611234469835:+:293734192610592746:- 66361342661382655022885:888800464709346329:undef:undef:undef:undef 22768485351905464248412:711005869723783719:203827711517667280:+:507178158206116439:- 99806372206985713374300:5052967339775896691:4424382065419286032:+:628585274356610659:- 10468867024611350563111:4606230531973305864:1596558236506810735:+:3009672295466495129:- 71384655193963866935626:4243994795246118358:undef:undef:undef:undef 94372511278029924560987:35838181597052249518:34250975068387496183:+:1587206528664753335:- 46230710252167124864676:61975866776340683548:undef:undef:undef:undef 15901289350410354243171:83928518227550380384:undef:undef:undef:undef 71387297706391011847731:353371600932869565103:250745627286414167826:+:102625973646455397277:- 86191745316589548906444:425926724179751012630:undef:undef:undef:undef 47362062453366722592870:871230917343112644135:undef:undef:undef:undef 81322237214500514970980:9706388089694071148936:undef:undef:undef:undef 15983452370574578294633:1671398538485916646199:484503398225959992825:+:1186895140259956653374:- 72060774562606935712611:1734846790535446095654:undef:undef:undef:undef 80828350502651299464085:54670584089428058387697:16941546868193973380038:+:37729037221234085007659:- 53589089805800380719939:92923369905362019814937:11784099439554493793541:+:81139270465807526021396:- 97627343358295622087781:84148028432651306932462:69281290733648343016473:+:14866737699002963915989:- 40744363981826236507495:347036573768244689888991:56303003858013388470532:+:290733569910231301418459:- 49100131751740530290551:606507647222932859824643:290249496162059629117412:+:316258151060873230707231:- 45595477716178922598527:931823431457210728444196:369745434213549154935595:+:562077997243661573508601:- 37577684802555632494675:1543246522681766656502903:944618705187086642282002:+:598627817494680014220901:- 39776284731012307189658:7463349581745165925534624:undef:undef:undef:undef 19020265631909290125583:7903039893520121749491308:6750903244034718201262607:+:1152136649485403548228701:- 820097982427154321532606:690:undef:undef:undef:undef 739823242558269779279482:515:393:+:122:- 255662956653376742016745:574:529:+:45:- 502970892308546824114302:1339:350:+:989:- 389302651464611038824842:7519:undef:undef:undef:undef 931132813579743540884936:8702:undef:undef:undef:undef 257194178638699996652876:36390:undef:undef:undef:undef 290212803356672334835941:42449:undef:undef:undef:undef 686978764254942520290318:90109:48431:+:41678:- 632142436897866419497450:794274:undef:undef:undef:undef 155015693713782159194002:814878:undef:undef:undef:undef 808283578764644977119837:726046:126447:+:599599:- 494636210381528377305081:4352579:1015050:+:3337529:- 641012595860961598876830:1451215:undef:undef:undef:undef 986901886972146838011813:8640729:undef:undef:undef:undef 780528497148609360158530:12099702:undef:undef:undef:undef 943633274622801043237132:87304710:undef:undef:undef:undef 178229208511395463331569:39069646:undef:undef:undef:undef 859005433056921169904592:183789660:undef:undef:undef:undef 782721530851908594178769:395671436:158989397:+:236682039:- 162559665393294563859166:537533377:191896182:+:345637195:- 669402900347611185300363:6050161198:2541199043:+:3508962155:- 163461137016253993481244:8470125123:undef:undef:undef:undef 951876797881774425799846:4227282573:2168539510:+:2058743063:- 733087925382323875261589:76902527844:54158858909:+:22743668935:- 373945312922482597869297:79297733522:16617706107:+:62680027415:- 943537646931585332544224:30645097570:undef:undef:undef:undef 729816643977177240032673:691894668088:179718504929:+:512176163159:- 737508322354006012277788:902422486884:undef:undef:undef:undef 411839604354128128190872:684611667817:28219452190:+:656392215627:- 774736145439723276036358:5344405545250:undef:undef:undef:undef 928475480637145488901363:5431979861507:4996051283158:+:435928578349:- 457513888017287326710618:8159869706508:undef:undef:undef:undef 152597111480264996908418:60408276357653:28991596912536:+:31416679445117:- 487669286812443686260118:93237213918994:undef:undef:undef:undef 647825349481322648701912:17671666781480:undef:undef:undef:undef 230318980306829353932155:939011591104562:867903811859965:+:71107779244597:- 634175150417627985364005:610579659015150:undef:undef:undef:undef 628901884903566401419103:504503472698354:407894069557901:+:96609403140453:- 158525826203876893206682:6893760730635719:4667553423914370:+:2226207306721349:- 810249684820806807849569:1438907458826514:947085940241501:+:491821518585013:- 475177611823133016131322:8319567191376515:3085995240091748:+:5233571951284767:- 861236406834460631636295:94270346569311166:33919285628608373:+:60351060940702793:- 731487911065190217596939:23775982180587263:22912109195162332:+:863872985424931:- 958139810611566583073870:33989301896271528:undef:undef:undef:undef 259383033845094387824421:767030348440353734:281288721052560915:+:485741627387792819:- 299971314342690914135600:366810493054114974:undef:undef:undef:undef 310670570650509857699918:614216295424975146:undef:undef:undef:undef 881151124366874677721862:6121134327078652543:4423590291124397790:+:1697544035954254753:- 974240647234201900832216:2397882747091804378:undef:undef:undef:undef 263382548136660766085523:4768311041423937899:undef:undef:undef:undef 894231930819119464433089:19190912766773833789:13748742539904728616:+:5442170226869105173:- 970276548818540222340729:87796125232550799933:undef:undef:undef:undef 750777926807799638664697:44430717993959223276:41542203772533554113:+:2888514221425669163:- 145037632240579178412750:447142343559481975683:undef:undef:undef:undef 726503721540109881290073:553860405500161218224:277249524860453165321:+:276610880639708052903:- 537818243886036501318447:785218629345111118864:451751622708893623199:+:333467006636217495665:- 108174662773249932222988:1517757617648107292193:473173525436100219241:+:1044584092212007072952:- 512226177132536988088725:7362166180698803265738:undef:undef:undef:undef 783777470063501339497325:6217817744880057080618:3861307790477481971421:+:2356509954402575109197:- 729976838311165279743095:69850272431944834943320:undef:undef:undef:undef 625096602518762576367061:46190905020843330846109:10979604194206685530770:+:35211300826636645315339:- 683396443560009229302344:48058984022861929216441:22187921079575037221310:+:25871062943286891995131:- 396277720501534599332679:916273281835814623095204:undef:undef:undef:undef 369514467276877326468657:531213785332089045791147:249796556865280147358180:+:281417228466808898432967:- 470034048772490729525082:194937140903245354354004:undef:undef:undef:undef 927623749343114861034679:7367649270875306870127558:5829739876375899620149153:+:1537909394499407249978405:- 298765618640349494148457:2200420207143751332374124:1323570253581711764700781:+:876849953562039567673343:- 599198399491320750543826:5200333087156216207731082:undef:undef:undef:undef 847223780401083877051197:166:139:+:27:- 407438111032638444701338:922:undef:undef:undef:undef 128243241585057752884789:622:223:+:399:- 470224724971084134055086:3206:undef:undef:undef:undef 263106154966624972009395:4606:2637:+:1969:- 306176201989939817603025:7780:undef:undef:undef:undef 318938098195095211136576:29514:undef:undef:undef:undef 137379744821636365146681:16818:undef:undef:undef:undef 260436758087876389998472:93103:15931:+:77172:- 837489783234868803403883:135339:50042:+:85297:- 275974820836139492296806:195884:undef:undef:undef:undef 754958177909432939234165:275390:undef:undef:undef:undef 385604109882579567774293:7557528:5494877:+:2062651:- 546352384662051732397503:4352437:589563:+:3762874:- 734121918330216324727195:8165224:2461107:+:5704117:- 700614020790900074791294:44628222:undef:undef:undef:undef 708365427972893386410294:64551038:undef:undef:undef:undef 544937695479233032815523:98850949:80404628:+:18446321:- 385025364503459755988429:549859691:60811016:+:489048675:- 528846176519396280977100:688821985:undef:undef:undef:undef 850826172165523602592293:771748927:519487190:+:252261737:- 227934632726641988128357:3386218011:2019744931:+:1366473080:- 475527872870558045444767:9665512855:186535673:+:9478977182:- 382212773543933875209992:2305855638:undef:undef:undef:undef 613357942506429609360416:93095827870:undef:undef:undef:undef 931701096890372860230259:69688993607:47518947805:+:22170045802:- 864696353974067323293307:20517943755:3846940333:+:16671003422:- 196231056201443534648768:701750661214:undef:undef:undef:undef 359624131532739560214259:464775678901:41202189068:+:423573489833:- 789602151436083080859506:663325864257:203109220175:+:460216644082:- 855285483917505149819281:2333005926359:1788591313015:+:544414613344:- 635108159678215348912640:2790279792126:undef:undef:undef:undef 100486921962645605089879:5402237411260:5305003846999:+:97233564261:- 346265900384224100633437:87032195867399:31135053447991:+:55897142419408:- 343984486661892942720025:55027047139392:51172393661929:+:3854653477463:- 142589971492936571773862:69658485423583:undef:undef:undef:undef 664838994936002404532830:651776087852085:undef:undef:undef:undef 255481849874108698131100:705396004837901:536390293208221:+:169005711629680:- 833137238796809541326632:619722749916314:undef:undef:undef:undef 410743094983762039548008:3246897320779598:undef:undef:undef:undef 170570930716075798843642:1579979469606229:272368369046200:+:1307611100560029:- 736160467339746382316756:8184677621075861:1422356152398362:+:6762321468677499:- 592023090947554103184576:27669966231775803:undef:undef:undef:undef 821240872810962217909257:73087984210599046:58113588138918105:+:14974396071680941:- 409896918267349516016030:50244890758751280:undef:undef:undef:undef 969050834772904636420851:236014698941248497:undef:undef:undef:undef 737075905086625366124238:959447252210515455:undef:undef:undef:undef 379286967145392217720924:965964379562850602:undef:undef:undef:undef 224732376964583201872193:1379050590524311214:43032750584536505:+:1336017839939774709:- 271606582283315198887108:6124774640106070681:4394322499097633735:+:1730452141008436946:- 910404069682458590755703:3539057073984257707:3278269367056635052:+:260787706927622655:- 147804160454550991250539:18053376887104528064:14564446948727781251:+:3488929938376746813:- 631742272868624352618518:50802383542292451313:39016081357541364456:+:11786302184751086857:- 447353796451513618583853:20234640903112196500:14763662569229765017:+:5470978333882431483:- 196665228284440403989646:201838432697041024339:31562547896145885223:+:170275884800895139116:- 770512056045392282934056:977236173897559409645:683947713530830595796:+:293288460366728813849:- 974676012677575831761369:245562834952318098971:undef:undef:undef:undef 511796266261247784187472:7730317045507913978216:undef:undef:undef:undef 354454469750200416534075:5595854094948121339802:2613057421853047755937:+:2982796673095073583865:- 890594365083920413293519:9821368076067612939444:undef:undef:undef:undef 145019290237641298384331:10879514788109352095001:189017061236553701291:+:10690497726872798393710:- 734199494018070027002667:17811168765541058358530:17187725167151970918553:+:623443598389087439977:- 130147086581042982015613:66488767968268089619970:29108225899411571610767:+:37380542068856518009203:- 550811529855935663241769:919500853629313843071187:831066978213189465381967:+:88433875416124377689220:- 144532255770003433481190:576779754705724833151101:undef:undef:undef:undef 959718179540650807099792:201517595114281546041688:undef:undef:undef:undef 307460428420924405327070:1132936530861531418052670:undef:undef:undef:undef 578222716636430984297583:3416303657199483318184501:1241961727645381390705435:+:2174341929554101927479066:- 845366848751844019577477:7701553792187984709646852:6001346891031091437194013:+:1700206901156893272452839:- 609401619590114745798467:341:84:+:257:- 158676386684561065636379:667:499:+:168:- 739559676569406957189960:358:undef:undef:undef:undef 831198460883639147740203:1919:736:+:1183:- 386008372405096069854525:8342:1601:+:6741:- 854920204441434068238361:2637:1324:+:1313:- 352747988943091644353092:69019:20552:+:48467:- 992918670308023426472518:30583:7671:+:22912:- 997173824019160124268644:16809:3347:+:13462:- 887429470491606971721699:216755:11944:+:204811:- 619178332960478750267488:183665:122987:+:60678:- 428649352623008502090812:977163:215054:+:762109:- 673982187872938103741206:9336632:undef:undef:undef:undef 100033818279722771914839:8888646:undef:undef:undef:undef 370047487183860740733557:6369436:4262313:+:2107123:- 678123335030884303196067:95791084:undef:undef:undef:undef 415514234477237315719585:38712903:21235717:+:17477186:- 466321327754690473790549:93889154:47860813:+:46028341:- 112915968172603142234272:698961997:148404404:+:550557593:- 242507847403715539726947:609536867:421742610:+:187794257:- 740624899306385542190690:349648917:83547251:+:266101666:- 822421111126799465635363:7425754494:779723689:+:6646030805:- 992462931170332059153357:9699319238:6301141815:+:3398177423:- 125897810797877273242445:7956188805:undef:undef:undef:undef 967063570027466833822241:33920337664:1582024161:+:32338313503:- 636385357417751788167557:34089263104:1757359949:+:32331903155:- 665475133886206812589750:75520177834:undef:undef:undef:undef 895077810131096800730144:889863882577:124742398607:+:765121483970:- 303264420232966670807409:991725671434:702004536151:+:289721135283:- 475075046155244572216662:556518988302:undef:undef:undef:undef 394133247007115236955375:1967780311398:180467355251:+:1787312956147:- 628225545257722449580673:5184391541174:644539353347:+:4539852187827:- 684861216294210069891354:7273210915592:undef:undef:undef:undef 576514408645259039489632:33209123521845:5657780990638:+:27551342531207:- 488133672773697753133262:81019844846651:49511799005053:+:31508045841598:- 938775049978899083023174:63832991091014:undef:undef:undef:undef 553642316401107355029714:821390545102460:undef:undef:undef:undef 895474865627496173343768:247606062782553:undef:undef:undef:undef 109306137382231472614875:268677332547913:87451590059078:+:181225742488835:- 144048458866107032987772:3619940548136499:undef:undef:undef:undef 154063936621984218265901:5728198325719460:364919530740041:+:5363278794979419:- 654404072605172742702726:9812091043664116:undef:undef:undef:undef 145380533532786059416169:45236241482866540:21409191840518189:+:23827049642348351:- 836078401044031746236462:33414289604016478:undef:undef:undef:undef 635944355407754083456819:27100866379886370:22405471121921809:+:4695395257964561:- 894091066852154813342207:641337728215411403:613738054950172923:+:27599673265238480:- 481089093178284178924681:556094214187072904:191065487785479073:+:365028726401593831:- 469317574512921501466100:928969427668446578:undef:undef:undef:undef 783719070289521145299092:1745377744795410338:undef:undef:undef:undef 347687109610734334778482:9449672370594210635:7773052424851581238:+:1676619945742629397:- 777063762229045363729442:1187879651204371064:undef:undef:undef:undef 390014319475461149042166:76855974323230023107:17279572690354178626:+:59576401632875844481:- 141759729595065453849969:64073071728921106196:38187918566749869457:+:25885153162171236739:- 168914319068785242251728:53899984050855461982:undef:undef:undef:undef 293796898072546351765460:412596296820157746574:undef:undef:undef:undef 493039104190669720707527:540114106394556905040:178122968686811915303:+:361991137707744989737:- 399375832539596041502351:568323270277385985962:449319203996833841841:+:119004066280552144121:- 907956090014432360247383:9952433870966270033859:6870286224492154609556:+:3082147646474115424303:- 530529064155784837261748:4915053629775376373827:1448480742033418370471:+:3466572887741958003356:- 488840775159579154386872:6907061502257128169513:4757436614130063074620:+:2149624888127065094893:- 148050873328826216346818:58579573770601188514166:undef:undef:undef:undef 987640026958174561293015:98914944661953458005836:undef:undef:undef:undef 414880490365578965042424:49268435694975108019703:31173904512242695646882:+:18094531182732412372821:- 462606034572395439053367:815046973010413195606422:undef:undef:undef:undef 265638486403213058517673:393831816654373868782106:108522812066684922262199:+:285309004587688946519907:- 759491522794956576600550:101924952303207833168285:undef:undef:undef:undef 217118915218362949208097:4976009853745062094137873:undef:undef:undef:undef 397870340202660993254240:4743301426966512091321828:undef:undef:undef:undef 808703651429004918537717:3079820635185050190105088:1901586945982039092886621:+:1178233689203011097218467:- 9317736453305381928079158:919:356:+:563:- 5739588937057488577399940:176:undef:undef:undef:undef 9380519955894076196579667:173:109:+:64:- 8170118894054335233137800:6324:undef:undef:undef:undef 7834625191844925746503021:3206:undef:undef:undef:undef 1311741365649120492356910:9008:undef:undef:undef:undef 8087218843366809132892466:78412:undef:undef:undef:undef 5047686355101370666121945:36618:23897:+:12721:- 3214866273602577370178601:48466:27611:+:20855:- 5173793381815540802456592:569615:334733:+:234882:- 7665969893761618129770298:754159:103387:+:650772:- 4734207027938738856268237:802087:420877:+:381210:- 7091192102026300077894805:2195560:undef:undef:undef:undef 1315307056771362262092664:6230917:undef:undef:undef:undef 4846151777618298101900464:9540392:undef:undef:undef:undef 2224906245599026265004897:82371985:71961938:+:10410047:- 9398285294755498570929232:18013348:undef:undef:undef:undef 1032541918047187848173228:85695541:67862324:+:17833217:- 2719505786839802571199560:441502939:200047793:+:241455146:- 6450435047666499437288863:953672170:865339487:+:88332683:- 9008371076943797808589103:940292680:370615687:+:569676993:- 4023332769927442020698555:9464836993:3062562552:+:6402274441:- 4786110109041388517454022:9230168853:3551339395:+:5678829458:- 1593946037312439376314600:4892432622:undef:undef:undef:undef 3619197808694129211572231:30668079149:22592397200:+:8075681949:- 7967164303514491286210699:25267887350:13541902799:+:11725984551:- 4219014156022437055628215:94975551369:35915058565:+:59060492804:- 3250215373045582094486962:422040376168:undef:undef:undef:undef 2524365962731804144987890:801616571313:undef:undef:undef:undef 9628977459968111122721783:397681520655:347645050772:+:50036469883:- 7730023417886887234965909:1101305373052:50934227837:+:1050371145215:- 4488444724105399142350554:9590314431792:undef:undef:undef:undef 3456649593507893273063799:5439455514377:5132762506020:+:306693008357:- 6116664815898831791680451:77707358266018:72840239132567:+:4867119133451:- 1649025486620957797865176:40682652695578:undef:undef:undef:undef 3665726501468923190845877:48978801703534:10171689654553:+:38807112048981:- 8437772258543153152748665:714351613126053:178332001339537:+:536019611786516:- 2965460170547740614019150:420107245399249:57756803886519:+:362350441512730:- 1151351831030328105545584:930338679172561:824532009250269:+:105806669922292:- 7770194080666378229911728:2103290573563058:undef:undef:undef:undef 6920242025540177756851195:2492080406595031:1607874629226350:+:884205777368681:- 3570343495385695757049287:8238501910987862:6238116357060739:+:2000385553927123:- 4700573357045150591129124:76749368334228616:undef:undef:undef:undef 5106976737294222503291001:34599738772442239:24066658705399616:+:10533080067042623:- 1141859342339472415876811:15093503687052486:10001878681996601:+:5091625005055885:- 9199964243436686133273982:289927616133301140:undef:undef:undef:undef 5499487122697409016816343:231532659550290934:194647214244324027:+:36885445305966907:- 6671764327345318757427523:383280119887579837:64540781866328034:+:318739338021251803:- 1160188966425519922649272:5086927426831121626:undef:undef:undef:undef 6615891324437526289441729:5740741848777113750:2337289283104579619:+:3403452565672534131:- 2226513737834012247583466:4027475693119198238:undef:undef:undef:undef 9587108098367604941239171:33720655685669415971:15897980193220182743:+:17822675492449233228:- 7925082218346569257913610:16265365411330268492:undef:undef:undef:undef 5725831354815276072553392:28740707117525676027:undef:undef:undef:undef 3110129577646927912317399:620797030510993480598:447908236728056588245:+:172888793782936892353:- 5364602437914966316036180:765514598129553250823:undef:undef:undef:undef 6708623181753027761526065:949030543953759360570:undef:undef:undef:undef 1440480948951891392737103:2831090035165529229601:2691659821261391929800:+:139430213904137299801:- 1981467235582861345941789:5374894143132820205644:5313430200623387999525:+:61463942509432206119:- 7913653686656536686854178:7215612861955802734665:undef:undef:undef:undef 1784118503161975677450334:77518343078520526988940:undef:undef:undef:undef 7442145953264330757180957:77435376881535196004053:11920377786102263932444:+:65514999095432932071609:- 6130028411861449467930940:68458330961277517836862:undef:undef:undef:undef 5095110078878125964186650:426626569285439732348202:undef:undef:undef:undef 7389866522441823648508547:831656833499105992532448:349665759190364595860267:+:481991074308741396672181:- 1726440660013588750134729:960750123062601488327858:undef:undef:undef:undef 3153734587364641998900979:8467972074803429498615434:6562806519482536353978921:+:1905165555320893144636513:- 9754478909976587344788394:7616828586627157450636718:undef:undef:undef:undef 4524422103736733506307551:1985796003852724692831481:917076766779247421280030:+:1068719237073477271551451:- 6471234331070895029215007:444:371:+:73:- 8162744910009756393434558:594:undef:undef:undef:undef 2984896306349942103433598:493:164:+:329:- 1980217166391360154739419:3425:2629:+:796:- 2508646044783168042376965:4157:2970:+:1187:- 1431458164264555100023190:9052:undef:undef:undef:undef 6719706795742063732503172:16818:undef:undef:undef:undef 8596258856676274559258713:49817:43385:+:6432:- 8678473632173225064135444:31430:undef:undef:undef:undef 5260030108109241472100951:268761:20414:+:248347:- 8011131369007802062281143:229711:117077:+:112634:- 3670208861508983100162101:540361:48157:+:492204:- 8717584600724585150988815:2990191:2796867:+:193324:- 2716387285225161380442794:4236203:2220697:+:2015506:- 1519649347369671620114497:8096730:3424513:+:4672217:- 4067227754291382211412539:14271502:undef:undef:undef:undef 3802543398908877736771978:95711698:undef:undef:undef:undef 6981424390525239137459076:76238906:undef:undef:undef:undef 2490040883080788093870716:461167885:108110191:+:353057694:- 7335088584879412842894310:510215709:66039187:+:444176522:- 1015447258250187583008991:754582165:322999791:+:431582374:- 1616533581066783501211997:9469627355:7221034338:+:2248593017:- 3163537073351404881232275:8103273044:5655087871:+:2448185173:- 7260220016661664831795186:7207104211:2555548138:+:4651556073:- 3916542850359391090049508:64558034559:undef:undef:undef:undef 2599545042154170925415943:99538361190:undef:undef:undef:undef 7411140646491865602930584:29848073409:27571361105:+:2276712304:- 5637875495664695856540322:307232798631:70527401311:+:236705397320:- 6476143878746052649173709:968367340434:760702264783:+:207665075651:- 2786735093809363470602520:433986768965:undef:undef:undef:undef 2049426689499601214769090:9662929928587:3718437027034:+:5944492901553:- 7088668040244573311025001:4936615383409:3440335895516:+:1496279487893:- 7501080195731773015057344:3296854200397:2780681465301:+:516172735096:- 2646210077143808398618794:91949632808323:52050886845818:+:39898745962505:- 6670038400096791047702316:12877158837159:undef:undef:undef:undef 3688342936416950137953304:94780313967501:66195866621626:+:28584447345875:- 2101678965089806481118436:528784694402149:524036712699846:+:4747981702303:- 4006542217171850981748385:162214568499679:40211756431585:+:122002812068094:- 8852162033221727637873769:384609249025877:124202136917641:+:260407112108236:- 3564072442333575601678913:2296635808822245:143731162707707:+:2152904646114538:- 3089128196016451311736699:4092462621490379:3789359759016406:+:303102862473973:- 9385371999690302471963669:9267789673919593:7739789783963722:+:1527999889955871:- 4230115811148827220911398:42036024525772508:undef:undef:undef:undef 3582508514080071180906488:42376958311964080:undef:undef:undef:undef 5086919200739908200333366:32427158226747102:undef:undef:undef:undef 8458875544184932090630316:198564860004088489:146612540434329412:+:51952319569759077:- 6593967901465180658499730:963757894010413445:undef:undef:undef:undef 4768405200763469263412236:287164110685459682:undef:undef:undef:undef 8843354549562023373238584:5321670442494936772:undef:undef:undef:undef 3482527184203025284509002:7089254303435144489:4642121523626173875:+:2447132779808970614:- 8183894181866978653110786:7699414630826032366:undef:undef:undef:undef 6648762682672335441428527:77832912267799081479:22877580838673527714:+:54955331429125553765:- 9288309183605316607212790:18207079007393251929:8823880467106598386:+:9383198540286653543:- 9952755731668891447177991:74781889282712854604:7053007174291860363:+:67728882108420994241:- 8435050849560261333912511:588804065295944744886:254536017646284456061:+:334268047649660288825:- 4682427537197600297886716:325907846458788606438:undef:undef:undef:undef 3623142110303962424318910:553272998305307069094:undef:undef:undef:undef 5307727110155784093261493:7192051445801504992939:891344782606092845654:+:6300706663195412147285:- 1039147841469479475590567:4297225734210346362646:1249283897630411684161:+:3047941836579934678485:- 5679474914611408283006122:3457132840190982966199:1503315668162734485553:+:1953817172028248480646:- 8456656318378623098421062:20396825817464359137528:undef:undef:undef:undef 5658294224334920994455317:12904545162613371427011:1248998882685267877567:+:11655546279928103549444:- 3808491221777706807345049:90220236594626894253995:31351651030923707787299:+:58868585563703186466696:- 2606421541588691862064831:357634449571210816302232:77250403867421361031223:+:280384045703789455271009:- 5341387724806038796445531:245777637246256827128370:200249248397865707533811:+:45528388848391119594559:- 9819041733148374840331513:869050111448037176812486:206492080309048217379859:+:662558031138988959432627:- 4536896725457399131526600:1100273252658502666204811:undef:undef:undef:undef 4529685478839375589943314:1371745558150361629227655:1129081371176014891638829:+:242664186974346737588826:- 6277399887254419655061605:2746274189505701524300581:2218590552541321056488789:+:527683636964380467811792:- 9114849943935438597295458:255:undef:undef:undef:undef 2392550500952560939506089:842:143:+:699:- 7550551161740227058350422:706:undef:undef:undef:undef 8952930739943535727261233:6892:161:+:6731:- 4884118571210619630752696:2872:undef:undef:undef:undef 7630427402446440638453497:7901:2046:+:5855:- 7328761789703239043887699:92765:4414:+:88351:- 3291334465854095590507219:87409:60742:+:26667:- 4161018991669490866480300:39421:15656:+:23765:- 6924998632846504865805472:626164:undef:undef:undef:undef 7324045267647673505203849:335646:18523:+:317123:- 1328119757668335709268919:252062:89919:+:162143:- 8456938356401308167653881:6858628:1843505:+:5015123:- 3511941568882462234380235:4557543:1980145:+:2577398:- 2219790616453362838998211:5347927:2057515:+:3290412:- 6010730254593049878855359:40463154:24985781:+:15477373:- 1041484368970393377943348:13712205:13606162:+:106043:- 6466641270199985156947357:34567957:2733445:+:31834512:- 4331513546632376831131999:398053587:338199199:+:59854388:- 8099092496202297903103271:490901688:241606559:+:249295129:- 1108557909998163913819886:975369269:145446241:+:829923028:- 9152695665203419906875304:2709899488:undef:undef:undef:undef 2945301932620832753468542:8197449449:undef:undef:undef:undef 8194403897696393806373671:1428131916:52556263:+:1375575653:- 4392335627454828267631890:60477881046:undef:undef:undef:undef 3761844482815778862698427:62373859921:36125426841:+:26248433080:- 4041951110505829516754901:43584168986:25336461029:+:18247707957:- 7404517239669051427971493:692060527797:425693743327:+:266366784470:- 9471224588912134751642364:567584326187:231701042939:+:335883283248:- 5613970811194291119427806:481460080223:393297452241:+:88162627982:- 9145969185420620229965603:5032508433154:4890250861167:+:142257571987:- 1607684120767321232755179:5989941159009:undef:undef:undef:undef 9816125870946106319992491:5084036885360:130740886851:+:4953295998509:- 3914836415614592914995718:45019999023667:42600250110639:+:2419748913028:- 5736045116501829498149914:72068667311843:4280294215948:+:67788373095895:- 8302367624936167378978059:45828923401792:8075027828387:+:37753895573405:- 7090361086101095567395051:641023903291315:475949685444601:+:165074217846714:- 3915709617053890253781158:657992273250892:undef:undef:undef:undef 9324301051319002976064588:995685901722482:undef:undef:undef:undef 1478705477798155051284289:1179475145902641:1007302295174116:+:172172850728525:- 6180995943012226291946376:1754316715397958:undef:undef:undef:undef 6560603815413685472335497:2443613158246161:undef:undef:undef:undef 7698705757793769711701612:72711202020016389:3251702982055631:+:69459499037960758:- 2178824648174913625649065:75542183877590442:65624069459985157:+:9918114417605285:- 4045446414444027577088529:16270530308567893:14634459909661635:+:1636070398906258:- 7707184705208325610465797:302979673030861794:undef:undef:undef:undef 8647005446316867027981694:789159007922878140:undef:undef:undef:undef 6482706285559587636153780:825509340769610344:undef:undef:undef:undef 9093161669990617254411002:5053075625405783120:undef:undef:undef:undef 2314314959490348198197448:6637404590507564016:undef:undef:undef:undef 4866713974569788800136849:3122574852104245283:1489195220323606794:+:1633379631780638489:- 2999459069753195744252239:87396880394360362662:64189850988690461617:+:23207029405669901045:- 5251750512714252770115663:54688199142721100866:35485172691485513123:+:19203026451235587743:- 2304786397984607120410467:94474508285302549272:undef:undef:undef:undef 9996642661832606868371436:855219411655640533847:332208911741705850371:+:523010499913934683476:- 3306645619353697934006100:177124673540188426602:undef:undef:undef:undef 4273078771505913169450266:740014918990865987017:623538230614438842133:+:116476688376427144884:- 1302837288326744178471685:1072901090995328315405:undef:undef:undef:undef 5667359248811268333339207:9000504074723389312420:1795019218538481413823:+:7205484856184907898597:- 4876812155640947833014323:4912637141287119828780:1263504820461301816967:+:3649132320825818011813:- 3307536909590040567032921:47455737591053000806796:30858735241169364481513:+:16597002349883636325283:- 8447319723342936563578969:15068165777941084653887:undef:undef:undef:undef 8121614101707514230436484:17643950446354870523376:undef:undef:undef:undef 3893939987778225832770180:958659204342321003696714:undef:undef:undef:undef 7628349602295113034298274:777391374791185294549706:undef:undef:undef:undef 4494762906498012086071364:678854691792117721059220:undef:undef:undef:undef 6586163039712296939663435:2722668263032887829140667:269093987195562415070289:+:2453574275837325414070378:- 2741545528274165461648463:4996833048198676901975232:278042837635206017391407:+:4718790210563470884583825:- 3486318671215238622957708:7755318133423599013903404:undef:undef:undef:undef Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_modinv.t0000644403072340010010000000676014537274605023714 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 14523; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_modinv'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0, $out1, $out2, $out3) = @{ $data[$i] }; my ($x, $m, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$m = $LIB->_new("$in1"); | . qq|\@got = $LIB->_modinv(\$x, \$m);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_modinv() in list context: $test", sub { if ($out0 eq "undef") { plan tests => 1; # The output should ideally be nothing, but some backend libraries # return two undefs. subtest 'output when no inverse exists' => sub { plan tests => 1 + @got; ok(@got == 0 || @got == 2, "'$test' gives zero or two output args"); for my $got (@got) { is($got, undef, "'$test' output arg is undef"); } } } else { plan tests => 7; cmp_ok(scalar @got, "==", 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($m), "'$test' first output arg is not the second input arg"); } is(ref($got[1]), "", "'$test' second output arg is a scalar"); like($got[1], qr/^[+-]\z/, "'$test' second output arg is valid"); my $got = $got[1] . $LIB->_str($got[0]); # prepend sign to value my $alt0 = $out1 . $out0; my $alt1 = $out3 . $out2; ok($got eq $alt0 || $got eq $alt1, "'$test' output args have the right value"); } }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_mul.dat0000644403072340010010000007137714505066136023521 0ustar OSPJADomain Users37:35:1295 30:590:17700 34:1037:35258 48:98897:4747056 83:828399:68757117 17:6150734:104562478 30:71775210:2153256300 70:550910104:38563707280 75:6044687079:453351530925 86:95833913267:8241716540962 68:946393902563:64354785374284 85:5592090106878:475327659084630 15:79336198786253:1190042981793795 39:994178929580831:38772978253652409 39:1317507036758568:51382774433584152 20:31698055782798918:633961115655978360 38:215949268356886127:8206072197561672826 28:4823970127923114802:135071163581847214456 43:50693696519413137750:2179828950334764923250 23:609743690719070434751:14024104886538619999273 51:4711818582087548081480:240302747686464952155480 46:56462851053735358484582:2597291148471826490290772 34:587970146931945954347789:19990984995686162447824826 666:59:39294 177:197:34869 442:7401:3271242 120:54693:6563160 170:302941:51499970 114:5596785:638033490 908:23147867:21018263236 186:259728669:48309532434 513:5531826885:2837827192005 669:33946156771:22709978879799 378:650536343217:245902737736026 421:1796733377354:756424751866034 387:56828437856727:21992605450553349 836:462338057305251:386514615907189836 618:9305951694357628:5751078147113014104 762:58668765356586059:44705599201718576958 412:501073761224490564:206442389624490112368 607:4142056922420948817:2514228551909515931919 473:95324319954471539074:45088403338465037982002 700:393554009008959521319:275487806306271664923300 788:9849531625834100406992:7761430921157271120709696 567:31023922833513744590415:17590564246602293182765305 182:334051087604083449080600:60797297943943187732669200 1580:27:42660 1139:189:215271 7595:1241:9425395 6894:90594:624555036 6682:102819:687036558 9783:8212178:80339737374 6066:30931555:187630812630 8122:263972950:2143988299900 8112:4592856108:37257248748096 5104:72521200673:370148208234992 5406:448078619369:2422313016308814 6220:9527334318776:59260019462786720 7885:13276466446109:104684937927569465 8561:507330640969791:4343257617342380751 8367:8707238885454274:72853467754595910558 7588:56214338654283540:426554401708703501520 8224:533493520377688707:4387450711586111926368 3280:5738714730609105884:18822984316397867299520 8136:28641385984018317914:233026316365973034548304 3525:522483517779899214559:1841754400174144731320475 9664:9821606068215214679763:94916001043231834665229632 8192:34396493156442758439686:281776071937579077137907712 4982:176419315126898102663981:878921027962206347471953342 67349:29:1953121 10041:380:3815580 34030:5228:177908840 67895:48202:3272674790 67114:294370:19756348180 87353:8879588:775658650564 24171:89379715:2160397091265 17853:695269383:12412644294699 95299:5270555335:502278652870165 96194:32835149821:3158544401881274 90625:897461293677:81332429739478125 87310:4637524265804:404902243647347240 42063:95316842784871:4009312358060028873 30394:847401068525464:25755908076762952816 18747:1110335947540405:20815468008539972535 21270:41269698604301065:877806489313483652550 45694:379486296068249969:17340246812542614083486 74625:3606068232312597637:269102841836327598661125 82868:53337998327038293435:4420013245365009300371580 83914:939043037564133163887:78798857454156670314413718 63091:1296169404131653354168:81776623876070141767813288 80986:80601566831208748115979:6527598491392271674920675294 37912:305377572294344669353220:11577474520823195104519276640 562421:33:18559893 323972:532:172353104 794227:6743:5355472661 869538:25499:22172349462 285738:775805:221676969090 420390:6683288:2809587442320 745515:37293627:27802958332905 240250:904377471:217276687407750 227264:2711309759:616183101069376 447530:32113728589:14371856955435170 820752:806751046018:662142534521365536 277611:6360409547605:1765719654920171655 875680:62419830606004:54659797265065582720 420107:427463526008773:179580419520967598711 525192:5533186820418438:2905985452589200290096 303653:71651362784163579:21757151263499623254087 164310:789140110960256180:129663611631879692935800 821428:7803877132287171713:6410323185020386885866164 225653:35826511522782872690:8084359804650523571116570 127829:757322841518158661079:96807821508424703487067491 906334:7587498710451303896640:6876808056238172065857317760 602125:16793513814586628134013:10111794505607973465192577625 452842:744693903799351994798722:337228676784306156028642867924 3526193:32:112838176 4149103:907:3763236421 1962005:4411:8654404055 1047985:17172:17995998420 8295017:663511:5503835024687 5159762:6398222:33013302743164 7752939:17192288:133290760134432 4285314:180687304:774301833453456 8563266:5440594031:46589253885465246 5174144:92582802927:479036754267919488 1959661:520900335975:1020788073297104475 4420277:8916082548661:39411554619947599097 5184788:71365940853141:370017273744075219108 7688837:908206837263855:6983054334007307086635 4024039:1392605827336931:5603900160831076484309 6456048:87103704359036382:562345696319748115938336 8655138:103717133197760307:897686100790996748007366 2386066:5069445767275631120:12096032184140296043973920 6770203:53630855760107445901:363091780559646710561287903 4119217:790043351300448711890:3254360003413780441645390130 9258078:9258200858020203674039:85713145683217971190139637042 9201310:98703798090834975777626:908204244411180770972427890060 2199975:463258768660158059858942:1019157709583131227738175926450 89588717:51:4569024567 52366667:693:36290100231 18017051:1306:23530268606 92582350:41276:3821429078600 10332812:774567:8003455192404 45929706:1646860:75639795623160 49058744:83774991:4109895837071304 87256471:300703431:26238320206652001 65473355:1365472814:89402086293870970 32197469:59681024975:1921577951520788275 35573217:714432782897:25414672417908869649 26626945:7181986863386:191234369202101535770 60771962:98716934354984:5999221783377582158608 42363513:523263165264468:22167265904102438556084 44388647:9843093265207448:436921592337370791042856 20246107:89239474011387061:1806751939458261655421527 66775677:339017822013829430:22638144580038963550774110 10121577:5895513131568208794:59671890115678756060548138 17303449:69730638589510207550:1206580548571021811320839950 42932604:517748775473295222035:22228303148879896342720729140 39149853:7119069910073707280454:278710540476108859194803873262 20411407:63730419167480868673647:1300827523908053175211359091329 50234407:594753879600337575136829:29877108452672355086816548675403 125104825:50:6255241250 218564677:594:129827418138 869795043:8461:7359335858823 514221425:29820:15334082893500 266998159:298174:79611909061666 523656597:6041441:3163640435036277 112013706:64645545:7241187071839770 868913178:491400597:426984454410367266 960774136:1168358849:1122528963685929464 224784822:48774299381:10963722204532795182 872588768:852796536015:744140678715996479520 516567803:3780297152485:1952779794746332440455 994333618:37299849633475:37088494436909170662550 493195860:138530245364714:68322543498661134884040 378504097:2541342496976303:961908546985740797413391 824541625:32765672825479672:27016661115739350155347000 122373485:627218400573324693:76754901534283740718965105 454456604:9033509792214529942:4105338182370560916897636968 384751056:35475216074894764369:13649126846643935679843923664 783427420:511257953333195291404:400533499334305587500783897680 118455721:9615459419586521385145:1139006178293362912559269664545 298878720:41611719716693881288404:12436857525924229871310138362880 617929151:886335850639708012850465:547692759686657579268584927405215 9251262173:52:481065632996 9875039256:646:6379275359376 5623531040:6820:38352481692800 4923266804:51628:254178418556912 6265866323:749686:4697432260224578 9677309096:4344162:42039798437097552 6595477106:32896920:216970882717913520 9609384599:596293468:5730013267883499332 3097602286:4326094470:13400520119723958420 7807305453:98192791870:766621119411945067110 4550326355:413251244335:1880428028334094948925 1345981509:7765861621771:10452706144356517832439 6236974282:89996541986580:561306117839232649135560 5230432732:992180289729725:5189532263447597073358700 2208789315:4349944977512158:9608111987166769872991770 5860708339:15021872429372837:88038813014219574345987743 2478224799:784321140809878288:1943724101535011317493264112 3236791182:4420834353305256792:14309317651861127738591208144 2437210971:15059158371049444981:36702345995948196091154086551 1652987152:877125035218549723179:1449876413913810204488043596208 8600390023:7550203215952303854815:64934692410098708516815366510745 1223994186:81453599743240365364968:99698732514497300007236600076048 1301704806:809231816153178510406192:1053380944254700899171661138558752 79257520367:25:1981438009175 16007819826:494:7907862994044 15837483771:9048:143297553160008 94313771245:71731:6765221125175095 83323299508:195282:16271540574521256 12410890174:4959307:61549414516149418 66639958547:46912211:3126227796388117417 31914837542:875180058:27931229371068137436 72517737862:1899354808:137736914073473340496 11239580590:85367927434:959499700195714906060 69308677938:202072708207:14005392253178412437166 38247547496:9243268997781:353532370010933116106376 29543670647:28773426586135:850072638446406016679345 68156199101:405818366551570:27659037389531403704138570 62748289180:3597313088293879:225725241935263192315929220 57878678608:70192579140676320:4062653728749809545036162560 14556031032:759048902651894303:11048739381806520568052010696 76293792162:4859896015159904787:370779896509541777015086879494 60407548723:66236939373584073900:4001211142472177043251082629700 71950795000:452014598583874655961:32522809719715655676745438995000 39798158919:7293233196053192726637:290257253769851247712034250425403 53472312786:21151399735464395159090:1131014262516469794913164711124740 83223347166:461038358773611713231360:38369155389059149609937508958325760 939028203250:84:78878369073000 924207879655:144:133085934670320 220975361999:5093:1125427518660907 795533737257:67281:53524305376388217 516582581526:884328:456828441155724528 666674521304:8177496:5451728231265374784 358839234301:30414747:10914004524938636847 184937520048:606045787:112080604883318437776 111299915151:6984067305:777326098455373238055 864520830038:42160119245:36448301284188457881310 448556928130:929355719209:416868946548435873449170 918054119158:6174918519186:5668909382003724953165388 364537055474:32142827133549:11717251557873744219497226 946863682588:114584457355103:108495861258600468994046564 481136656885:4722099515097960:2271975174172512057683454600 156556669283:58860141827187141:9214947757989412571687289903 754729968414:437120669104000390:329908068785968760025743681460 610790352870:6544171170183528699:3997116618278078316723982016130 342130985260:13025113022017992372:4456294751345871803679524436720 382461522498:369639463505619719809:141372871987703226417162309762882 808474581882:5922346010683666663026:4788066214748008110356607538894932 760625715711:81692112105149975349312:62137121237922946889064447231440832 871779792835:661430713435658094243453:576621930333644264501448362395059255 8355380952468:54:451190571433272 8442281552511:363:3064548203561493 4152335008886:6507:27019243902821202 3630410017373:76895:279160378285896835 8323700837716:377495:3142155447733601420 2351393564244:2789941:6560249312020469604 3376312068258:51659034:174417019928750342772 9486034984324:967012726:9173116549122518507224 7884835808131:3318704018:26167436277714626770358 9348123818569:72766166494:680227134188518902827086 2619474123721:696605444188:1824739935493639272383548 7671590854608:9086167561106:69705359965216665601676448 6851029896700:11783938217592:80732113029588501882746400 6593901537106:442727821793524:2919303664643909149356501544 4909787870590:2244919055732161:11022076350290120289569044990 5247019218254:52272615881479637:274275420118532910048559693798 9122392658587:412406418450046166:3762133284022859452109626327442 6288422901096:5454895392182133050:34302689107281171792298462822800 7947014957083:91670880024736796049:728509854685544531231714658965067 3701650786508:953826371810043000002:3530732139402717710530703145573016 2327910172132:6758768541035609885670:15733806037762553114491650540148440 6324656198721:21213357351633195682030:134167192069690587143425410808683630 5641285367661:683432845083207064409820:3855439708746823020486143926678831020 46704699716059:54:2522053784667186 72099596680786:585:42178264058259810 15702584839202:9845:154591947741943690 45116595333891:78361:3535381526959032651 48398517182133:370711:17941862703105706563 51073359250048:9820653:501573738739061641344 59423193387897:40994791:2436041393489419444527 10388335056171:942642987:9792491187305844222777 71255925036340:3169519692:225847057574355445607280 55022388759166:93400352148:5139110486130261162788568 15721561240079:686912000596:10799329083915196547087084 93194004304260:1004571245991:93620017022821085269221660 13798190467713:36702291730162:506425211894342978769259506 18126320634950:593058280333904:10749964544544405851292344800 73961800031757:9141443753237453:676117634878502680566961794921 61678903329322:87578746834105646:5401761059683967296287677552012 40823355989072:263021433491139267:10737417612164802917128882090224 12717277713289:2030900844217852188:25827530044071506891159645326332 97710563612932:72600554253279954539:7093841074699231874191484552498348 16400225472205:233501733083271188196:3829481070716277093017815522092180 42052686518159:7830245909976028754033:329282876612318595187590065798985247 22472697656084:85606567372243785898566:1923810505931619958482538479976775544 74790062410220:706753055273544081851579:52858105112522027175725921465052737380 680310118098285:34:23130544015341690 646237404414798:640:413591938825470720 204246740019043:9292:1897860708256947556 720248506221910:53367:38437502031544670970 516661829871677:252265:130335696512578598405 820978679323665:8284602:6801481608682193706330 553187155817794:10771688:5958759448076661816272 654348100473721:749606918:490503862895260338801878 474430286513812:4409894298:2092187415295765837043976 272412006143826:87022749475:23706041764636330815991350 388694822837815:921133410119:358039787656197091816849985 192883080533466:7658266101405:1477149957184013311452119730 315922373547953:28886919791657:9126024265069619402658828121 564759427747525:733359311988615:414171585372008857617894427875 415299110953753:7857346296366587:3263148931336807417036091451011 812763684087981:95420910692692865:77554650913623271981568470955565 691328810325909:660036226676335831:456302059360153251805449044345379 791634832795881:2415833650810030155:1912458068221660987508696569791555 269822153587581:93345210771142913791:25186605797356443559899936451229571 324384831955793:612359383049875295475:198640095567186874097122398012936675 106415133029477:9731426408419251508775:1035571035818500225307716568799160675 506290912476827:59484558769294238736973:30116491537587421430774052263610624671 540223966149199:863790066191620418010435:466640095478316312269898599831948891565 9088965132641589:39:354469640173021971 5740936425975945:666:3823463659699979370 3226400593972762:4032:13008847194898176384 2183261448485279:39094:85352423067083497226 6381542294495635:489924:3126470727088479481740 1079570524512812:7020221:7578823667165857571452 3286696451617369:11808619:38811346165801444303411 7932081249687082:685741618:5439358230267881604378676 9710952960601327:4557931357:44261857005476773909110739 5744678590235349:32793251562:188386690152423316541865138 2771551514570198:492760638408:1365711493700270080210964784 9832400216070539:5755346605091:56588871203457591493832514049 5394822339875972:51472315935263:277683999892710817774601200636 7255598896032401:203759431009843:1478396702691207045257477923043 7296990810730405:8849444469711719:64574314975555415380202178116195 8681171703165433:71238118648078299:618430339794439080289480734238467 9128985093817741:106438594657677199:971676344036843790510958117387459 7876043891916385:5587847376650258051:44010131199827260484403763165065635 9551495363326069:56627759900833951689:540879786128357386433554543900280541 9889964289874475:454142115425965084765:4491449304090846638073828774584873375 1498110278450911:4987297752719764547121:7471522025044609138758607161344877231 3276204747832019:71351198420743754892613:233761135029545145808611984035907975647 4451483956642311:586392167348884166279577:2610315325254271060098002363693813382447 61225630105700475:89:5449081079407342275 92449598010140686:675:62403478656844963050 51925589699912483:8649:449104425314543065467 46812854519577852:44690:2092066468479934205880 54675729736263529:537267:29375465288213097435243 17181798889118330:1060053:18213617457806553071490 22611009778923903:92866161:2099797674502121582746383 20623237681337858:750151323:15470549031199046588686134 66955995934732455:5802671747:388523665902718872632448885 16843014279588045:96529159692:1625842015088990731779082140 71222320079125429:339655829365:24191076195774840010856422585 22599680856116075:5518220678121:124710026219155029216788895075 75974620198377444:48534436097439:3687385349045348377171283765916 64321360717578024:645298330590754:41506466692378801661252007990096 95407433160529580:8757238651317062:835505661296338797177540409693960 65232496364036720:99269516166129322:6475598352366715393952405476703840 61946805232317518:873859820968666808:54132824129893858552513468603542544 65598076036540220:1748585857829213782:114703868058299672625851626021312040 69073760738995200:87041786896224268986:6012303562364402777847040264162867200 51324938271684868:638300727464124854622:32760745435867754273127899299497259896 17562322196386376:3939971949799581644354:69195056827104901066228195438802921104 23040131551525836:95737796197618797853072:2205811418846307075286626327662539968192 46378706413232842:318614576997808701575060:14776931925557739570023762196551920120520 814944538961908334:73:59490951344219308382 840679104814749955:990:832272313766602455450 220245358786499676:6541:1440624891822494380716 335452820284823422:47645:15982649622470411941190 808742162092842594:311749:252124560290281585836906 370856306142518407:3313293:1228755603147863240284251 223460034534475956:95080101:21246602653001461878551556 824357248572903553:205814270:169664485334240686541101310 251195744957663346:8673512169:2178749350691313421336257474 948139431822502550:29199174183:27684888419555905096411666650 953255544853842682:382541110664:364659434875005449120608560848 595406833051616255:4325068530693:2575175356591126265441725214715 349566616886976869:66079845213587:23099307935728699023144033519103 936637731795730361:863439844066203:808730337088227490525976421089283 819311149925789517:6716344148201295:5502775647360150294707008316824515 793382194805818401:87996743088181813:69815049167065417077364192548941013 781817536381579383:612796345809251721:479094929384223558054528363390868143 375362022229274091:8900594294506760733:3340945073428396867641905986413068703 957857029305126559:41260886852203830257:39522030506746915378891622745938495663 799193648774940307:305534811159361148677:244181480558212186119664358175627023839 133800707495840199:4233775576932097716057:566482167572123689988862993316148375343 916885725440019515:49612158550351287157231:45488679983084106873269610882025513362965 659138256897050561:940591537271038759706339:619979866328949653562077089052099595206179 6902884262463401941:99:683385541983876792159 1825640648015347414:112:204471752577718910368 4645696170084884107:7654:35558158485829702954978 4060362744774434180:31676:128616050303474977085680 2602749159762610065:585052:1522743601417434543748380 5488386965088270018:7740084:42480576134288277354001512 5158267964917209191:20217416:104286849286204623773470456 8569571601119327760:997813438:8550833701500041080454438880 2575784294181950093:5681102572:14633294778594281309317939196 7308960801484951128:47744667069:348963900087270392420096003832 4192642079498345845:586216424205:2457795647814935641468319178225 5973269352736337097:9089502569082:54294047127515711309755881834954 7905911439759206234:68042085779951:537934704352791823457990551414534 1657995096873894705:358220547186643:593927910834937730111337964425315 5960126487381291589:8178716109551367:48746182517309171805148467800552163 8339851329491811993:87701669515770925:731418885109753668194787968555703525 5449484823888221999:208247283029147393:1134840408483294002801984511676098607 5407441968945301539:6739897741724916501:36445605915002973906758302051041795039 9887549502581396567:94777527207646717033:937117491997862076538848964997806625711 6085617791220494283:661032216571758169727:4022789417739010370473119348740347170741 2577645300383583953:9273232143289536665573:23903103253516263767801578154618930350069 1242757142530712999:86437124679228589284921:107420354074929094047870563281721689388079 5655877195894588955:279596599838515658552781:1581364033076325425930171653465164167133855 32714434482279297697:55:1799293896525361373335 78364940540143429906:164:12851850248583522504584 81325425800538057463:3839:312208309648265602600457 14432787564265870816:58128:838949075535646538792448 19085455675937033278:799987:15268116429825839440967386 48066641194793105683:1493411:71783250693357166751154713 16807691655165344838:56507912:949767560973217651555358256 36588468675516694381:752303313:27525626202187931169634784253 89230249703390930254:4310052800:384587087578799248435857411200 47696865096684450147:41453237456:1977189474759658910246385106032 30007891214257508759:709221383783:21282238131385438500956223055297 67446184094630651136:3523350837563:237636569220245193531157657421568 25772586702887043588:39288882477535:1012576130111810306020952975795580 84894088893047446963:267186167444199:22682526250000489695382543714517637 52593074967670607225:5393881373173595:283680807426040960359539498986223875 64012437790810606049:98183390800395779:6284958195701181161110220180051467171 86782349422717503543:812305335728761673:70493765483151248478030493993380107439 77217146061096534443:5669197664330580957:437759264095841792384437213977550401951 65183098916253474399:58169742977786319281:3791684110454086581046259857026173587119 27963265013665681799:827795346699758981115:23147860656844623627740531500910040225885 36082799374337835693:6067724723436677349807:218940493854475158593131461854907451261251 93702634428568083107:84527926838263704564117:7920489427530572678338999869394189666071519 52750222693489151703:175771824184794057007849:9272002868988708778646380598607025422716847 890963173988402401867:39:34747563785547693672813 384298651564810885375:144:55339005825332767494000 776155997027242137474:3727:2892733400920531446365598 183264388834014248121:31560:5783824111601489670698760 873447145723150887946:932499:814488589939692479858757054 595358021547534083151:8616117:5129674370542074721916744667 451833680581216487235:36596634:16535591837103687058104966990 879462582861135078775:691586538:608224482981470543880359530950 153346366209058026219:7292881595:1118336891786169201699572539305 561082234919789413732:84112956396:47194285560378475514742119629872 628199390935398842055:462308279748:290421779762085583268718207202140 163443033149978925040:7969223274771:1302514023877980160596903132165840 763960376318207411693:51346210884471:39226470589814502586886461157519403 510208279950857299137:113307903067107:57810630328707130660119360484186659 375794085192061295829:8821355591142423:3315013254527241941771163075874853667 690397243896706351657:45228415144218675:31225573161384627744313560555056594475 597665234631398017445:725690056193076217:433719717704307309172998745549580605565 915274778985286277519:6551049784225626209:5996010643378717386094772015472333895471 886245380034734690435:26908910693440506485:23847897783828917860071006477846084970975 163519512573947937463:185933063340830680107:30403683888873620696371852824524194148541 593898529423331633757:2199377652866137057503:1306207153683737567399877927261225644928771 628568870426632724529:71988141613127164757203:45249504857875816107926837442716584667532387 405662921361997003673:592481671140676638853421:240347845568364876917837553037468136245615333 5684969133176755006511:30:170549073995302650195330 2356168706628634061298:192:452384391672697739769216 2121387484506083281239:3741:7936110579537257555115099 6785073873392418443200:56510:383424524585405566225232000 3378699035008710851581:265163:895905972220014795537772703 9851411820641361590046:8700332:85710553508304298765448095272 9116666551480334616947:41361382:377077927802400785579368540754 6550701820160477893516:490025783:3210012788623663365424368523028 8711432336853628189834:1885387469:16424425364945217476298176790146 2881454618166257667480:22394390451:64528419786052291839019645233480 4401981997185714329013:724134410079:3187626636710455483846046069322027 8050078339452232263945:5636760655086:45376364854184383814519643058674270 9154971945858497446042:54473947180750:498707458219943838589250681146091500 4181335841068359593503:144974770849649:606188205404309802373281579570230447 6241348362329077898771:6916273100307077:43166869788022229350133316614020902367 6371819657538450004295:51708474236504793:329477072601481735186849903636638085935 3961469680549977674683:541087865425595501:2143503173397003119181866725790526401183 9621464873411934732655:4593206316117758785:44193373226860851097223885687596752624175 5385443833078201308771:85124465934129083221:458433030109030900102959525476936576231391 8667590931665294902935:452255222215789905419:3919963262875853403376972955839086435504765 6194621898196828213053:9719831772745873049791:60210682746240881902368716302788753825121923 2307137738094401565457:60775043075586614723251:140216395413998724522730792554708019216340707 1820919371522965733413:410271957100606058325991:747072154277132742389658164990903938355037283 60203005133010142104185:79:4756037405507801226230615 24268844594844398413002:600:14561306756906639047801200 98989414162747829666831:7624:754695293576789453379919544 93072076710570674895478:62083:5778193738422359209535960674 82208616582331608682717:266640:21920105525512900139159660880 47681612988934544418664:1666187:79446483701193881761300514168 64961100393722033800839:84937244:5517616834650064453118109547716 48727783775848083051184:750392278:36564952669450084422711152357152 96609185490067774017453:9356598826:903933391537184369032134043310178 53793311441435749375736:12482530775:671476665556881351767811658275400 98816289827301470166677:282477984419:27913426378179852890558378939005663 55278564576690760887360:9281283670223:513056038719007541564331117089081280 35708954420902179205022:46854910565672:1673139865785029390635754873283204784 13251028979423208602469:709059981423911:9395774361997526628321977474970236259 31225406764692501204379:6720277971896653:209843413244275751084460987717419043487 35836495999051289246031:68828675411148321:2466578550991616656379217905316001563951 93539700947283919989827:857996405570399285:80256727190899676405023773226129528073695 70754397925285294758519:9777993433228978057:691836038285509641361404760770204964817583 70259031091946230970527:56800116838436221895:3990721174977869167623460438545696977088665 58722676558570987809113:739539630745193599725:43427746538495024383254327855612007629293925 77140195440846140713967:1480020305764066574785:114169055643060959546291140917441900099522095 26094553090163386542307:35075442392783216200149:915277993679449123248181362675575172368203743 18220448952455340130583:876606228732918460825385:15972159042032530452108457436829442175861249455 403465867172246152328637:79:31873803506607446033962323 948296976790372815834078:630:597427095377934873975469140 866763631599988517909811:9751:8451812171731488038138567061 488507157189170641306188:58205:28433559084195677177226672540 587056271656377297348857:693829:407316665907072603842260103453 136806881520563038647626:3569592:488344749820749658252256588592 460222903238080690354908:98081778:45139480625912911417476827666424 664977582916897262676267:849271850:564746742052361734533009226183950 270282162669248254861476:6656140161:1799035957744718268862633895337636 405395341521743600434481:62412978050:25301930551968836931645233116142050 878846103724802957457260:887843871649:780278127314667697778499154843221740 284213049936187279021947:5169787155810:1469320975073687135210374259698562070 492616370832257120272687:13187240918407:6496250762516297673685553972157649609 370673675784115570554876:909004850722070:336944169322740947668335805179159313320 229650101674094467614912:7642488986762618:1755098372853182431508993224062780959616 827456040532595888792004:25409784898971678:21025480003288051722316582410385228862712 343969557718545057269512:440369486454872322:151473697488625250954363175572637903246864 635345482877615290350732:4491658345189766182:2853754840245862419140094791573219852545224 137505429192722190108240:12541762225568128394:1724560397659816147472335067588357077366560 590614060935402432985390:618152896748830221976:365089792627809141227768948278780058064930640 881148098425404326931218:2212257061392494626076:1949326102874169597442596997508278865481240568 147236945849167605303264:71030747513813763514778:10458350325317293608074381667119633545235635392 241687167921054996755172:130391714433519082368574:31514004181808176972566532338958068566144764728 # # Big and small numbers: # 0:31415926535897932384626433832795028841:0 1:31415926535897932384626433832795028841:31415926535897932384626433832795028841 2:31415926535897932384626433832795028841:62831853071795864769252867665590057682 31415926535897932384626433832795028841:0:0 31415926535897932384626433832795028841:1:31415926535897932384626433832795028841 31415926535897932384626433832795028841:2:62831853071795864769252867665590057682 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_mul.t0000644403072340010010000001166214536617520023206 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 7541; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_mul'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 0; $y <= 24 ; ++ $y) { push @data, [ $x, $y, $x * $y ]; } } # 9 * 11, 99 * 101, 999 * 1001, 9999 * 1001, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $y = "1" . ("0" x ($p - 1)) . "1"; my $z = "9" x (2 * $p); push @data, [ $x, $y, $z ]; } # 9 * 9, 99 * 99, 999 * 999, 9999 * 9999, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $z = "9" x ($p - 1) . "8" . "0" x ($p - 1) . "1"; push @data, [ $x, $x, $z ]; } # Powers of 10. for (my $p = 0; $p <= 24 ; ++ $p) { for (my $q = 0; $q <= 24 ; ++ $q) { my $x = "1" . ("0" x $p); my $y = "1" . ("0" x $q); my $z = "1" . ("0" x ($p + $q)); push @data, [ $x, $y, $z ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_mul(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_mul() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_mul(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_mul() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_nok.dat0000644403072340010010000352013514546553333023512 0ustar OSPJADomain Users# binomial(0, k) for 0 <= k <= 0 0:0:1 # binomial(1, k) for 0 <= k <= 1 1:0:1 1:1:1 # binomial(2, k) for 0 <= k <= 2 2:0:1 2:1:2 2:2:1 # binomial(3, k) for 0 <= k <= 3 3:0:1 3:1:3 3:2:3 3:3:1 # binomial(4, k) for 0 <= k <= 4 4:0:1 4:1:4 4:2:6 4:3:4 4:4:1 # binomial(5, k) for 0 <= k <= 5 5:0:1 5:1:5 5:2:10 5:3:10 5:4:5 5:5:1 # binomial(6, k) for 0 <= k <= 6 6:0:1 6:1:6 6:2:15 6:3:20 6:4:15 6:5:6 6:6:1 # binomial(7, k) for 0 <= k <= 7 7:0:1 7:1:7 7:2:21 7:3:35 7:4:35 7:5:21 7:6:7 7:7:1 # binomial(8, k) for 0 <= k <= 8 8:0:1 8:1:8 8:2:28 8:3:56 8:4:70 8:5:56 8:6:28 8:7:8 8:8:1 # binomial(9, k) for 0 <= k <= 9 9:0:1 9:1:9 9:2:36 9:3:84 9:4:126 9:5:126 9:6:84 9:7:36 9:8:9 9:9:1 # binomial(10, k) for 0 <= k <= 10 10:0:1 10:1:10 10:2:45 10:3:120 10:4:210 10:5:252 10:6:210 10:7:120 10:8:45 10:9:10 10:10:1 # binomial(11, k) for 0 <= k <= 11 11:0:1 11:1:11 11:2:55 11:3:165 11:4:330 11:5:462 11:6:462 11:7:330 11:8:165 11:9:55 11:10:11 11:11:1 # binomial(12, k) for 0 <= k <= 12 12:0:1 12:1:12 12:2:66 12:3:220 12:4:495 12:5:792 12:6:924 12:7:792 12:8:495 12:9:220 12:10:66 12:11:12 12:12:1 # binomial(13, k) for 0 <= k <= 13 13:0:1 13:1:13 13:2:78 13:3:286 13:4:715 13:5:1287 13:6:1716 13:7:1716 13:8:1287 13:9:715 13:10:286 13:11:78 13:12:13 13:13:1 # binomial(14, k) for 0 <= k <= 14 14:0:1 14:1:14 14:2:91 14:3:364 14:4:1001 14:5:2002 14:6:3003 14:7:3432 14:8:3003 14:9:2002 14:10:1001 14:11:364 14:12:91 14:13:14 14:14:1 # binomial(15, k) for 0 <= k <= 15 15:0:1 15:1:15 15:2:105 15:3:455 15:4:1365 15:5:3003 15:6:5005 15:7:6435 15:8:6435 15:9:5005 15:10:3003 15:11:1365 15:12:455 15:13:105 15:14:15 15:15:1 # binomial(16, k) for 0 <= k <= 16 16:0:1 16:1:16 16:2:120 16:3:560 16:4:1820 16:5:4368 16:6:8008 16:7:11440 16:8:12870 16:9:11440 16:10:8008 16:11:4368 16:12:1820 16:13:560 16:14:120 16:15:16 16:16:1 # binomial(17, k) for 0 <= k <= 17 17:0:1 17:1:17 17:2:136 17:3:680 17:4:2380 17:5:6188 17:6:12376 17:7:19448 17:8:24310 17:9:24310 17:10:19448 17:11:12376 17:12:6188 17:13:2380 17:14:680 17:15:136 17:16:17 17:17:1 # binomial(18, k) for 0 <= k <= 18 18:0:1 18:1:18 18:2:153 18:3:816 18:4:3060 18:5:8568 18:6:18564 18:7:31824 18:8:43758 18:9:48620 18:10:43758 18:11:31824 18:12:18564 18:13:8568 18:14:3060 18:15:816 18:16:153 18:17:18 18:18:1 # binomial(19, k) for 0 <= k <= 19 19:0:1 19:1:19 19:2:171 19:3:969 19:4:3876 19:5:11628 19:6:27132 19:7:50388 19:8:75582 19:9:92378 19:10:92378 19:11:75582 19:12:50388 19:13:27132 19:14:11628 19:15:3876 19:16:969 19:17:171 19:18:19 19:19:1 # binomial(20, k) for 0 <= k <= 20 20:0:1 20:1:20 20:2:190 20:3:1140 20:4:4845 20:5:15504 20:6:38760 20:7:77520 20:8:125970 20:9:167960 20:10:184756 20:11:167960 20:12:125970 20:13:77520 20:14:38760 20:15:15504 20:16:4845 20:17:1140 20:18:190 20:19:20 20:20:1 # binomial(21, k) for 0 <= k <= 21 21:0:1 21:1:21 21:2:210 21:3:1330 21:4:5985 21:5:20349 21:6:54264 21:7:116280 21:8:203490 21:9:293930 21:10:352716 21:11:352716 21:12:293930 21:13:203490 21:14:116280 21:15:54264 21:16:20349 21:17:5985 21:18:1330 21:19:210 21:20:21 21:21:1 # binomial(22, k) for 0 <= k <= 22 22:0:1 22:1:22 22:2:231 22:3:1540 22:4:7315 22:5:26334 22:6:74613 22:7:170544 22:8:319770 22:9:497420 22:10:646646 22:11:705432 22:12:646646 22:13:497420 22:14:319770 22:15:170544 22:16:74613 22:17:26334 22:18:7315 22:19:1540 22:20:231 22:21:22 22:22:1 # binomial(23, k) for 0 <= k <= 23 23:0:1 23:1:23 23:2:253 23:3:1771 23:4:8855 23:5:33649 23:6:100947 23:7:245157 23:8:490314 23:9:817190 23:10:1144066 23:11:1352078 23:12:1352078 23:13:1144066 23:14:817190 23:15:490314 23:16:245157 23:17:100947 23:18:33649 23:19:8855 23:20:1771 23:21:253 23:22:23 23:23:1 # binomial(24, k) for 0 <= k <= 24 24:0:1 24:1:24 24:2:276 24:3:2024 24:4:10626 24:5:42504 24:6:134596 24:7:346104 24:8:735471 24:9:1307504 24:10:1961256 24:11:2496144 24:12:2704156 24:13:2496144 24:14:1961256 24:15:1307504 24:16:735471 24:17:346104 24:18:134596 24:19:42504 24:20:10626 24:21:2024 24:22:276 24:23:24 24:24:1 # binomial(25, k) for 0 <= k <= 25 25:0:1 25:1:25 25:2:300 25:3:2300 25:4:12650 25:5:53130 25:6:177100 25:7:480700 25:8:1081575 25:9:2042975 25:10:3268760 25:11:4457400 25:12:5200300 25:13:5200300 25:14:4457400 25:15:3268760 25:16:2042975 25:17:1081575 25:18:480700 25:19:177100 25:20:53130 25:21:12650 25:22:2300 25:23:300 25:24:25 25:25:1 # binomial(26, k) for 0 <= k <= 26 26:0:1 26:1:26 26:2:325 26:3:2600 26:4:14950 26:5:65780 26:6:230230 26:7:657800 26:8:1562275 26:9:3124550 26:10:5311735 26:11:7726160 26:12:9657700 26:13:10400600 26:14:9657700 26:15:7726160 26:16:5311735 26:17:3124550 26:18:1562275 26:19:657800 26:20:230230 26:21:65780 26:22:14950 26:23:2600 26:24:325 26:25:26 26:26:1 # binomial(27, k) for 0 <= k <= 27 27:0:1 27:1:27 27:2:351 27:3:2925 27:4:17550 27:5:80730 27:6:296010 27:7:888030 27:8:2220075 27:9:4686825 27:10:8436285 27:11:13037895 27:12:17383860 27:13:20058300 27:14:20058300 27:15:17383860 27:16:13037895 27:17:8436285 27:18:4686825 27:19:2220075 27:20:888030 27:21:296010 27:22:80730 27:23:17550 27:24:2925 27:25:351 27:26:27 27:27:1 # binomial(28, k) for 0 <= k <= 28 28:0:1 28:1:28 28:2:378 28:3:3276 28:4:20475 28:5:98280 28:6:376740 28:7:1184040 28:8:3108105 28:9:6906900 28:10:13123110 28:11:21474180 28:12:30421755 28:13:37442160 28:14:40116600 28:15:37442160 28:16:30421755 28:17:21474180 28:18:13123110 28:19:6906900 28:20:3108105 28:21:1184040 28:22:376740 28:23:98280 28:24:20475 28:25:3276 28:26:378 28:27:28 28:28:1 # binomial(29, k) for 0 <= k <= 29 29:0:1 29:1:29 29:2:406 29:3:3654 29:4:23751 29:5:118755 29:6:475020 29:7:1560780 29:8:4292145 29:9:10015005 29:10:20030010 29:11:34597290 29:12:51895935 29:13:67863915 29:14:77558760 29:15:77558760 29:16:67863915 29:17:51895935 29:18:34597290 29:19:20030010 29:20:10015005 29:21:4292145 29:22:1560780 29:23:475020 29:24:118755 29:25:23751 29:26:3654 29:27:406 29:28:29 29:29:1 # binomial(30, k) for 0 <= k <= 30 30:0:1 30:1:30 30:2:435 30:3:4060 30:4:27405 30:5:142506 30:6:593775 30:7:2035800 30:8:5852925 30:9:14307150 30:10:30045015 30:11:54627300 30:12:86493225 30:13:119759850 30:14:145422675 30:15:155117520 30:16:145422675 30:17:119759850 30:18:86493225 30:19:54627300 30:20:30045015 30:21:14307150 30:22:5852925 30:23:2035800 30:24:593775 30:25:142506 30:26:27405 30:27:4060 30:28:435 30:29:30 30:30:1 # binomial(31, k) for 0 <= k <= 31 31:0:1 31:1:31 31:2:465 31:3:4495 31:4:31465 31:5:169911 31:6:736281 31:7:2629575 31:8:7888725 31:9:20160075 31:10:44352165 31:11:84672315 31:12:141120525 31:13:206253075 31:14:265182525 31:15:300540195 31:16:300540195 31:17:265182525 31:18:206253075 31:19:141120525 31:20:84672315 31:21:44352165 31:22:20160075 31:23:7888725 31:24:2629575 31:25:736281 31:26:169911 31:27:31465 31:28:4495 31:29:465 31:30:31 31:31:1 # binomial(32, k) for 0 <= k <= 32 32:0:1 32:1:32 32:2:496 32:3:4960 32:4:35960 32:5:201376 32:6:906192 32:7:3365856 32:8:10518300 32:9:28048800 32:10:64512240 32:11:129024480 32:12:225792840 32:13:347373600 32:14:471435600 32:15:565722720 32:16:601080390 32:17:565722720 32:18:471435600 32:19:347373600 32:20:225792840 32:21:129024480 32:22:64512240 32:23:28048800 32:24:10518300 32:25:3365856 32:26:906192 32:27:201376 32:28:35960 32:29:4960 32:30:496 32:31:32 32:32:1 # binomial(33, k) for 0 <= k <= 33 33:0:1 33:1:33 33:2:528 33:3:5456 33:4:40920 33:5:237336 33:6:1107568 33:7:4272048 33:8:13884156 33:9:38567100 33:10:92561040 33:11:193536720 33:12:354817320 33:13:573166440 33:14:818809200 33:15:1037158320 33:16:1166803110 33:17:1166803110 33:18:1037158320 33:19:818809200 33:20:573166440 33:21:354817320 33:22:193536720 33:23:92561040 33:24:38567100 33:25:13884156 33:26:4272048 33:27:1107568 33:28:237336 33:29:40920 33:30:5456 33:31:528 33:32:33 33:33:1 # binomial(34, k) for 0 <= k <= 34 34:0:1 34:1:34 34:2:561 34:3:5984 34:4:46376 34:5:278256 34:6:1344904 34:7:5379616 34:8:18156204 34:9:52451256 34:10:131128140 34:11:286097760 34:12:548354040 34:13:927983760 34:14:1391975640 34:15:1855967520 34:16:2203961430 34:17:2333606220 34:18:2203961430 34:19:1855967520 34:20:1391975640 34:21:927983760 34:22:548354040 34:23:286097760 34:24:131128140 34:25:52451256 34:26:18156204 34:27:5379616 34:28:1344904 34:29:278256 34:30:46376 34:31:5984 34:32:561 34:33:34 34:34:1 # binomial(35, k) for 0 <= k <= 35 35:0:1 35:1:35 35:2:595 35:3:6545 35:4:52360 35:5:324632 35:6:1623160 35:7:6724520 35:8:23535820 35:9:70607460 35:10:183579396 35:11:417225900 35:12:834451800 35:13:1476337800 35:14:2319959400 35:15:3247943160 35:16:4059928950 35:17:4537567650 35:18:4537567650 35:19:4059928950 35:20:3247943160 35:21:2319959400 35:22:1476337800 35:23:834451800 35:24:417225900 35:25:183579396 35:26:70607460 35:27:23535820 35:28:6724520 35:29:1623160 35:30:324632 35:31:52360 35:32:6545 35:33:595 35:34:35 35:35:1 # binomial(36, k) for 0 <= k <= 36 36:0:1 36:1:36 36:2:630 36:3:7140 36:4:58905 36:5:376992 36:6:1947792 36:7:8347680 36:8:30260340 36:9:94143280 36:10:254186856 36:11:600805296 36:12:1251677700 36:13:2310789600 36:14:3796297200 36:15:5567902560 36:16:7307872110 36:17:8597496600 36:18:9075135300 36:19:8597496600 36:20:7307872110 36:21:5567902560 36:22:3796297200 36:23:2310789600 36:24:1251677700 36:25:600805296 36:26:254186856 36:27:94143280 36:28:30260340 36:29:8347680 36:30:1947792 36:31:376992 36:32:58905 36:33:7140 36:34:630 36:35:36 36:36:1 # binomial(37, k) for 0 <= k <= 37 37:0:1 37:1:37 37:2:666 37:3:7770 37:4:66045 37:5:435897 37:6:2324784 37:7:10295472 37:8:38608020 37:9:124403620 37:10:348330136 37:11:854992152 37:12:1852482996 37:13:3562467300 37:14:6107086800 37:15:9364199760 37:16:12875774670 37:17:15905368710 37:18:17672631900 37:19:17672631900 37:20:15905368710 37:21:12875774670 37:22:9364199760 37:23:6107086800 37:24:3562467300 37:25:1852482996 37:26:854992152 37:27:348330136 37:28:124403620 37:29:38608020 37:30:10295472 37:31:2324784 37:32:435897 37:33:66045 37:34:7770 37:35:666 37:36:37 37:37:1 # binomial(38, k) for 0 <= k <= 38 38:0:1 38:1:38 38:2:703 38:3:8436 38:4:73815 38:5:501942 38:6:2760681 38:7:12620256 38:8:48903492 38:9:163011640 38:10:472733756 38:11:1203322288 38:12:2707475148 38:13:5414950296 38:14:9669554100 38:15:15471286560 38:16:22239974430 38:17:28781143380 38:18:33578000610 38:19:35345263800 38:20:33578000610 38:21:28781143380 38:22:22239974430 38:23:15471286560 38:24:9669554100 38:25:5414950296 38:26:2707475148 38:27:1203322288 38:28:472733756 38:29:163011640 38:30:48903492 38:31:12620256 38:32:2760681 38:33:501942 38:34:73815 38:35:8436 38:36:703 38:37:38 38:38:1 # binomial(39, k) for 0 <= k <= 39 39:0:1 39:1:39 39:2:741 39:3:9139 39:4:82251 39:5:575757 39:6:3262623 39:7:15380937 39:8:61523748 39:9:211915132 39:10:635745396 39:11:1676056044 39:12:3910797436 39:13:8122425444 39:14:15084504396 39:15:25140840660 39:16:37711260990 39:17:51021117810 39:18:62359143990 39:19:68923264410 39:20:68923264410 39:21:62359143990 39:22:51021117810 39:23:37711260990 39:24:25140840660 39:25:15084504396 39:26:8122425444 39:27:3910797436 39:28:1676056044 39:29:635745396 39:30:211915132 39:31:61523748 39:32:15380937 39:33:3262623 39:34:575757 39:35:82251 39:36:9139 39:37:741 39:38:39 39:39:1 # binomial(40, k) for 0 <= k <= 40 40:0:1 40:1:40 40:2:780 40:3:9880 40:4:91390 40:5:658008 40:6:3838380 40:7:18643560 40:8:76904685 40:9:273438880 40:10:847660528 40:11:2311801440 40:12:5586853480 40:13:12033222880 40:14:23206929840 40:15:40225345056 40:16:62852101650 40:17:88732378800 40:18:113380261800 40:19:131282408400 40:20:137846528820 40:21:131282408400 40:22:113380261800 40:23:88732378800 40:24:62852101650 40:25:40225345056 40:26:23206929840 40:27:12033222880 40:28:5586853480 40:29:2311801440 40:30:847660528 40:31:273438880 40:32:76904685 40:33:18643560 40:34:3838380 40:35:658008 40:36:91390 40:37:9880 40:38:780 40:39:40 40:40:1 # binomial(41, k) for 0 <= k <= 41 41:0:1 41:1:41 41:2:820 41:3:10660 41:4:101270 41:5:749398 41:6:4496388 41:7:22481940 41:8:95548245 41:9:350343565 41:10:1121099408 41:11:3159461968 41:12:7898654920 41:13:17620076360 41:14:35240152720 41:15:63432274896 41:16:103077446706 41:17:151584480450 41:18:202112640600 41:19:244662670200 41:20:269128937220 41:21:269128937220 41:22:244662670200 41:23:202112640600 41:24:151584480450 41:25:103077446706 41:26:63432274896 41:27:35240152720 41:28:17620076360 41:29:7898654920 41:30:3159461968 41:31:1121099408 41:32:350343565 41:33:95548245 41:34:22481940 41:35:4496388 41:36:749398 41:37:101270 41:38:10660 41:39:820 41:40:41 41:41:1 # binomial(42, k) for 0 <= k <= 42 42:0:1 42:1:42 42:2:861 42:3:11480 42:4:111930 42:5:850668 42:6:5245786 42:7:26978328 42:8:118030185 42:9:445891810 42:10:1471442973 42:11:4280561376 42:12:11058116888 42:13:25518731280 42:14:52860229080 42:15:98672427616 42:16:166509721602 42:17:254661927156 42:18:353697121050 42:19:446775310800 42:20:513791607420 42:21:538257874440 42:22:513791607420 42:23:446775310800 42:24:353697121050 42:25:254661927156 42:26:166509721602 42:27:98672427616 42:28:52860229080 42:29:25518731280 42:30:11058116888 42:31:4280561376 42:32:1471442973 42:33:445891810 42:34:118030185 42:35:26978328 42:36:5245786 42:37:850668 42:38:111930 42:39:11480 42:40:861 42:41:42 42:42:1 # binomial(43, k) for 0 <= k <= 43 43:0:1 43:1:43 43:2:903 43:3:12341 43:4:123410 43:5:962598 43:6:6096454 43:7:32224114 43:8:145008513 43:9:563921995 43:10:1917334783 43:11:5752004349 43:12:15338678264 43:13:36576848168 43:14:78378960360 43:15:151532656696 43:16:265182149218 43:17:421171648758 43:18:608359048206 43:19:800472431850 43:20:960566918220 43:21:1052049481860 43:22:1052049481860 43:23:960566918220 43:24:800472431850 43:25:608359048206 43:26:421171648758 43:27:265182149218 43:28:151532656696 43:29:78378960360 43:30:36576848168 43:31:15338678264 43:32:5752004349 43:33:1917334783 43:34:563921995 43:35:145008513 43:36:32224114 43:37:6096454 43:38:962598 43:39:123410 43:40:12341 43:41:903 43:42:43 43:43:1 # binomial(44, k) for 0 <= k <= 44 44:0:1 44:1:44 44:2:946 44:3:13244 44:4:135751 44:5:1086008 44:6:7059052 44:7:38320568 44:8:177232627 44:9:708930508 44:10:2481256778 44:11:7669339132 44:12:21090682613 44:13:51915526432 44:14:114955808528 44:15:229911617056 44:16:416714805914 44:17:686353797976 44:18:1029530696964 44:19:1408831480056 44:20:1761039350070 44:21:2012616400080 44:22:2104098963720 44:23:2012616400080 44:24:1761039350070 44:25:1408831480056 44:26:1029530696964 44:27:686353797976 44:28:416714805914 44:29:229911617056 44:30:114955808528 44:31:51915526432 44:32:21090682613 44:33:7669339132 44:34:2481256778 44:35:708930508 44:36:177232627 44:37:38320568 44:38:7059052 44:39:1086008 44:40:135751 44:41:13244 44:42:946 44:43:44 44:44:1 # binomial(45, k) for 0 <= k <= 45 45:0:1 45:1:45 45:2:990 45:3:14190 45:4:148995 45:5:1221759 45:6:8145060 45:7:45379620 45:8:215553195 45:9:886163135 45:10:3190187286 45:11:10150595910 45:12:28760021745 45:13:73006209045 45:14:166871334960 45:15:344867425584 45:16:646626422970 45:17:1103068603890 45:18:1715884494940 45:19:2438362177020 45:20:3169870830126 45:21:3773655750150 45:22:4116715363800 45:23:4116715363800 45:24:3773655750150 45:25:3169870830126 45:26:2438362177020 45:27:1715884494940 45:28:1103068603890 45:29:646626422970 45:30:344867425584 45:31:166871334960 45:32:73006209045 45:33:28760021745 45:34:10150595910 45:35:3190187286 45:36:886163135 45:37:215553195 45:38:45379620 45:39:8145060 45:40:1221759 45:41:148995 45:42:14190 45:43:990 45:44:45 45:45:1 # binomial(46, k) for 0 <= k <= 46 46:0:1 46:1:46 46:2:1035 46:3:15180 46:4:163185 46:5:1370754 46:6:9366819 46:7:53524680 46:8:260932815 46:9:1101716330 46:10:4076350421 46:11:13340783196 46:12:38910617655 46:13:101766230790 46:14:239877544005 46:15:511738760544 46:16:991493848554 46:17:1749695026860 46:18:2818953098830 46:19:4154246671960 46:20:5608233007146 46:21:6943526580276 46:22:7890371113950 46:23:8233430727600 46:24:7890371113950 46:25:6943526580276 46:26:5608233007146 46:27:4154246671960 46:28:2818953098830 46:29:1749695026860 46:30:991493848554 46:31:511738760544 46:32:239877544005 46:33:101766230790 46:34:38910617655 46:35:13340783196 46:36:4076350421 46:37:1101716330 46:38:260932815 46:39:53524680 46:40:9366819 46:41:1370754 46:42:163185 46:43:15180 46:44:1035 46:45:46 46:46:1 # binomial(47, k) for 0 <= k <= 47 47:0:1 47:1:47 47:2:1081 47:3:16215 47:4:178365 47:5:1533939 47:6:10737573 47:7:62891499 47:8:314457495 47:9:1362649145 47:10:5178066751 47:11:17417133617 47:12:52251400851 47:13:140676848445 47:14:341643774795 47:15:751616304549 47:16:1503232609098 47:17:2741188875414 47:18:4568648125690 47:19:6973199770790 47:20:9762479679106 47:21:12551759587422 47:22:14833897694226 47:23:16123801841550 47:24:16123801841550 47:25:14833897694226 47:26:12551759587422 47:27:9762479679106 47:28:6973199770790 47:29:4568648125690 47:30:2741188875414 47:31:1503232609098 47:32:751616304549 47:33:341643774795 47:34:140676848445 47:35:52251400851 47:36:17417133617 47:37:5178066751 47:38:1362649145 47:39:314457495 47:40:62891499 47:41:10737573 47:42:1533939 47:43:178365 47:44:16215 47:45:1081 47:46:47 47:47:1 # binomial(48, k) for 0 <= k <= 48 48:0:1 48:1:48 48:2:1128 48:3:17296 48:4:194580 48:5:1712304 48:6:12271512 48:7:73629072 48:8:377348994 48:9:1677106640 48:10:6540715896 48:11:22595200368 48:12:69668534468 48:13:192928249296 48:14:482320623240 48:15:1093260079344 48:16:2254848913647 48:17:4244421484512 48:18:7309837001104 48:19:11541847896480 48:20:16735679449896 48:21:22314239266528 48:22:27385657281648 48:23:30957699535776 48:24:32247603683100 48:25:30957699535776 48:26:27385657281648 48:27:22314239266528 48:28:16735679449896 48:29:11541847896480 48:30:7309837001104 48:31:4244421484512 48:32:2254848913647 48:33:1093260079344 48:34:482320623240 48:35:192928249296 48:36:69668534468 48:37:22595200368 48:38:6540715896 48:39:1677106640 48:40:377348994 48:41:73629072 48:42:12271512 48:43:1712304 48:44:194580 48:45:17296 48:46:1128 48:47:48 48:48:1 # binomial(49, k) for 0 <= k <= 49 49:0:1 49:1:49 49:2:1176 49:3:18424 49:4:211876 49:5:1906884 49:6:13983816 49:7:85900584 49:8:450978066 49:9:2054455634 49:10:8217822536 49:11:29135916264 49:12:92263734836 49:13:262596783764 49:14:675248872536 49:15:1575580702584 49:16:3348108992991 49:17:6499270398159 49:18:11554258485616 49:19:18851684897584 49:20:28277527346376 49:21:39049918716424 49:22:49699896548176 49:23:58343356817424 49:24:63205303218876 49:25:63205303218876 49:26:58343356817424 49:27:49699896548176 49:28:39049918716424 49:29:28277527346376 49:30:18851684897584 49:31:11554258485616 49:32:6499270398159 49:33:3348108992991 49:34:1575580702584 49:35:675248872536 49:36:262596783764 49:37:92263734836 49:38:29135916264 49:39:8217822536 49:40:2054455634 49:41:450978066 49:42:85900584 49:43:13983816 49:44:1906884 49:45:211876 49:46:18424 49:47:1176 49:48:49 49:49:1 # binomial(50, k) for 0 <= k <= 50 50:0:1 50:1:50 50:2:1225 50:3:19600 50:4:230300 50:5:2118760 50:6:15890700 50:7:99884400 50:8:536878650 50:9:2505433700 50:10:10272278170 50:11:37353738800 50:12:121399651100 50:13:354860518600 50:14:937845656300 50:15:2250829575120 50:16:4923689695575 50:17:9847379391150 50:18:18053528883775 50:19:30405943383200 50:20:47129212243960 50:21:67327446062800 50:22:88749815264600 50:23:108043253365600 50:24:121548660036300 50:25:126410606437752 50:26:121548660036300 50:27:108043253365600 50:28:88749815264600 50:29:67327446062800 50:30:47129212243960 50:31:30405943383200 50:32:18053528883775 50:33:9847379391150 50:34:4923689695575 50:35:2250829575120 50:36:937845656300 50:37:354860518600 50:38:121399651100 50:39:37353738800 50:40:10272278170 50:41:2505433700 50:42:536878650 50:43:99884400 50:44:15890700 50:45:2118760 50:46:230300 50:47:19600 50:48:1225 50:49:50 50:50:1 # binomial(51, k) for 0 <= k <= 51 51:0:1 51:1:51 51:2:1275 51:3:20825 51:4:249900 51:5:2349060 51:6:18009460 51:7:115775100 51:8:636763050 51:9:3042312350 51:10:12777711870 51:11:47626016970 51:12:158753389900 51:13:476260169700 51:14:1292706174900 51:15:3188675231420 51:16:7174519270695 51:17:14771069086725 51:18:27900908274925 51:19:48459472266975 51:20:77535155627160 51:21:114456658306760 51:22:156077261327400 51:23:196793068630200 51:24:229591913401900 51:25:247959266474052 51:26:247959266474052 51:27:229591913401900 51:28:196793068630200 51:29:156077261327400 51:30:114456658306760 51:31:77535155627160 51:32:48459472266975 51:33:27900908274925 51:34:14771069086725 51:35:7174519270695 51:36:3188675231420 51:37:1292706174900 51:38:476260169700 51:39:158753389900 51:40:47626016970 51:41:12777711870 51:42:3042312350 51:43:636763050 51:44:115775100 51:45:18009460 51:46:2349060 51:47:249900 51:48:20825 51:49:1275 51:50:51 51:51:1 # binomial(52, k) for 0 <= k <= 52 52:0:1 52:1:52 52:2:1326 52:3:22100 52:4:270725 52:5:2598960 52:6:20358520 52:7:133784560 52:8:752538150 52:9:3679075400 52:10:15820024220 52:11:60403728840 52:12:206379406870 52:13:635013559600 52:14:1768966344600 52:15:4481381406320 52:16:10363194502115 52:17:21945588357420 52:18:42671977361650 52:19:76360380541900 52:20:125994627894135 52:21:191991813933920 52:22:270533919634160 52:23:352870329957600 52:24:426384982032100 52:25:477551179875952 52:26:495918532948104 52:27:477551179875952 52:28:426384982032100 52:29:352870329957600 52:30:270533919634160 52:31:191991813933920 52:32:125994627894135 52:33:76360380541900 52:34:42671977361650 52:35:21945588357420 52:36:10363194502115 52:37:4481381406320 52:38:1768966344600 52:39:635013559600 52:40:206379406870 52:41:60403728840 52:42:15820024220 52:43:3679075400 52:44:752538150 52:45:133784560 52:46:20358520 52:47:2598960 52:48:270725 52:49:22100 52:50:1326 52:51:52 52:52:1 # binomial(53, k) for 0 <= k <= 53 53:0:1 53:1:53 53:2:1378 53:3:23426 53:4:292825 53:5:2869685 53:6:22957480 53:7:154143080 53:8:886322710 53:9:4431613550 53:10:19499099620 53:11:76223753060 53:12:266783135710 53:13:841392966470 53:14:2403979904200 53:15:6250347750920 53:16:14844575908435 53:17:32308782859535 53:18:64617565719070 53:19:119032357903550 53:20:202355008436035 53:21:317986441828055 53:22:462525733568080 53:23:623404249591760 53:24:779255311989700 53:25:903936161908052 53:26:973469712824056 53:27:973469712824056 53:28:903936161908052 53:29:779255311989700 53:30:623404249591760 53:31:462525733568080 53:32:317986441828055 53:33:202355008436035 53:34:119032357903550 53:35:64617565719070 53:36:32308782859535 53:37:14844575908435 53:38:6250347750920 53:39:2403979904200 53:40:841392966470 53:41:266783135710 53:42:76223753060 53:43:19499099620 53:44:4431613550 53:45:886322710 53:46:154143080 53:47:22957480 53:48:2869685 53:49:292825 53:50:23426 53:51:1378 53:52:53 53:53:1 # binomial(54, k) for 0 <= k <= 54 54:0:1 54:1:54 54:2:1431 54:3:24804 54:4:316251 54:5:3162510 54:6:25827165 54:7:177100560 54:8:1040465790 54:9:5317936260 54:10:23930713170 54:11:95722852680 54:12:343006888770 54:13:1108176102180 54:14:3245372870670 54:15:8654327655120 54:16:21094923659355 54:17:47153358767970 54:18:96926348578605 54:19:183649923622620 54:20:321387366339585 54:21:520341450264090 54:22:780512175396135 54:23:1085929983159840 54:24:1402659561581460 54:25:1683191473897752 54:26:1877405874732108 54:27:1946939425648112 54:28:1877405874732108 54:29:1683191473897752 54:30:1402659561581460 54:31:1085929983159840 54:32:780512175396135 54:33:520341450264090 54:34:321387366339585 54:35:183649923622620 54:36:96926348578605 54:37:47153358767970 54:38:21094923659355 54:39:8654327655120 54:40:3245372870670 54:41:1108176102180 54:42:343006888770 54:43:95722852680 54:44:23930713170 54:45:5317936260 54:46:1040465790 54:47:177100560 54:48:25827165 54:49:3162510 54:50:316251 54:51:24804 54:52:1431 54:53:54 54:54:1 # binomial(55, k) for 0 <= k <= 55 55:0:1 55:1:55 55:2:1485 55:3:26235 55:4:341055 55:5:3478761 55:6:28989675 55:7:202927725 55:8:1217566350 55:9:6358402050 55:10:29248649430 55:11:119653565850 55:12:438729741450 55:13:1451182990950 55:14:4353548972850 55:15:11899700525790 55:16:29749251314475 55:17:68248282427325 55:18:144079707346575 55:19:280576272201225 55:20:505037289962205 55:21:841728816603675 55:22:1300853625660225 55:23:1866442158555975 55:24:2488589544741300 55:25:3085851035479212 55:26:3560597348629860 55:27:3824345300380220 55:28:3824345300380220 55:29:3560597348629860 55:30:3085851035479212 55:31:2488589544741300 55:32:1866442158555975 55:33:1300853625660225 55:34:841728816603675 55:35:505037289962205 55:36:280576272201225 55:37:144079707346575 55:38:68248282427325 55:39:29749251314475 55:40:11899700525790 55:41:4353548972850 55:42:1451182990950 55:43:438729741450 55:44:119653565850 55:45:29248649430 55:46:6358402050 55:47:1217566350 55:48:202927725 55:49:28989675 55:50:3478761 55:51:341055 55:52:26235 55:53:1485 55:54:55 55:55:1 # binomial(56, k) for 0 <= k <= 56 56:0:1 56:1:56 56:2:1540 56:3:27720 56:4:367290 56:5:3819816 56:6:32468436 56:7:231917400 56:8:1420494075 56:9:7575968400 56:10:35607051480 56:11:148902215280 56:12:558383307300 56:13:1889912732400 56:14:5804731963800 56:15:16253249498640 56:16:41648951840265 56:17:97997533741800 56:18:212327989773900 56:19:424655979547800 56:20:785613562163430 56:21:1346766106565880 56:22:2142582442263900 56:23:3167295784216200 56:24:4355031703297275 56:25:5574440580220512 56:26:6646448384109072 56:27:7384942649010080 56:28:7648690600760440 56:29:7384942649010080 56:30:6646448384109072 56:31:5574440580220512 56:32:4355031703297275 56:33:3167295784216200 56:34:2142582442263900 56:35:1346766106565880 56:36:785613562163430 56:37:424655979547800 56:38:212327989773900 56:39:97997533741800 56:40:41648951840265 56:41:16253249498640 56:42:5804731963800 56:43:1889912732400 56:44:558383307300 56:45:148902215280 56:46:35607051480 56:47:7575968400 56:48:1420494075 56:49:231917400 56:50:32468436 56:51:3819816 56:52:367290 56:53:27720 56:54:1540 56:55:56 56:56:1 # binomial(57, k) for 0 <= k <= 57 57:0:1 57:1:57 57:2:1596 57:3:29260 57:4:395010 57:5:4187106 57:6:36288252 57:7:264385836 57:8:1652411475 57:9:8996462475 57:10:43183019880 57:11:184509266760 57:12:707285522580 57:13:2448296039700 57:14:7694644696200 57:15:22057981462440 57:16:57902201338905 57:17:139646485582065 57:18:310325523515700 57:19:636983969321700 57:20:1210269541711230 57:21:2132379668729310 57:22:3489348548829780 57:23:5309878226480100 57:24:7522327487513475 57:25:9929472283517787 57:26:12220888964329584 57:27:14031391033119152 57:28:15033633249770520 57:29:15033633249770520 57:30:14031391033119152 57:31:12220888964329584 57:32:9929472283517787 57:33:7522327487513475 57:34:5309878226480100 57:35:3489348548829780 57:36:2132379668729310 57:37:1210269541711230 57:38:636983969321700 57:39:310325523515700 57:40:139646485582065 57:41:57902201338905 57:42:22057981462440 57:43:7694644696200 57:44:2448296039700 57:45:707285522580 57:46:184509266760 57:47:43183019880 57:48:8996462475 57:49:1652411475 57:50:264385836 57:51:36288252 57:52:4187106 57:53:395010 57:54:29260 57:55:1596 57:56:57 57:57:1 # binomial(58, k) for 0 <= k <= 58 58:0:1 58:1:58 58:2:1653 58:3:30856 58:4:424270 58:5:4582116 58:6:40475358 58:7:300674088 58:8:1916797311 58:9:10648873950 58:10:52179482355 58:11:227692286640 58:12:891794789340 58:13:3155581562280 58:14:10142940735900 58:15:29752626158640 58:16:79960182801345 58:17:197548686920970 58:18:449972009097765 58:19:947309492837400 58:20:1847253511032930 58:21:3342649210440540 58:22:5621728217559090 58:23:8799226775309880 58:24:12832205713993575 58:25:17451799771031262 58:26:22150361247847371 58:27:26252279997448736 58:28:29065024282889672 58:29:30067266499541040 58:30:29065024282889672 58:31:26252279997448736 58:32:22150361247847371 58:33:17451799771031262 58:34:12832205713993575 58:35:8799226775309880 58:36:5621728217559090 58:37:3342649210440540 58:38:1847253511032930 58:39:947309492837400 58:40:449972009097765 58:41:197548686920970 58:42:79960182801345 58:43:29752626158640 58:44:10142940735900 58:45:3155581562280 58:46:891794789340 58:47:227692286640 58:48:52179482355 58:49:10648873950 58:50:1916797311 58:51:300674088 58:52:40475358 58:53:4582116 58:54:424270 58:55:30856 58:56:1653 58:57:58 58:58:1 # binomial(59, k) for 0 <= k <= 59 59:0:1 59:1:59 59:2:1711 59:3:32509 59:4:455126 59:5:5006386 59:6:45057474 59:7:341149446 59:8:2217471399 59:9:12565671261 59:10:62828356305 59:11:279871768995 59:12:1119487075980 59:13:4047376351620 59:14:13298522298180 59:15:39895566894540 59:16:109712808959985 59:17:277508869722315 59:18:647520696018735 59:19:1397281501935165 59:20:2794563003870330 59:21:5189902721473470 59:22:8964377427999630 59:23:14420954992868970 59:24:21631432489303455 59:25:30284005485024837 59:26:39602161018878633 59:27:48402641245296107 59:28:55317304280338408 59:29:59132290782430712 59:30:59132290782430712 59:31:55317304280338408 59:32:48402641245296107 59:33:39602161018878633 59:34:30284005485024837 59:35:21631432489303455 59:36:14420954992868970 59:37:8964377427999630 59:38:5189902721473470 59:39:2794563003870330 59:40:1397281501935165 59:41:647520696018735 59:42:277508869722315 59:43:109712808959985 59:44:39895566894540 59:45:13298522298180 59:46:4047376351620 59:47:1119487075980 59:48:279871768995 59:49:62828356305 59:50:12565671261 59:51:2217471399 59:52:341149446 59:53:45057474 59:54:5006386 59:55:455126 59:56:32509 59:57:1711 59:58:59 59:59:1 # binomial(60, k) for 0 <= k <= 60 60:0:1 60:1:60 60:2:1770 60:3:34220 60:4:487635 60:5:5461512 60:6:50063860 60:7:386206920 60:8:2558620845 60:9:14783142660 60:10:75394027566 60:11:342700125300 60:12:1399358844975 60:13:5166863427600 60:14:17345898649800 60:15:53194089192720 60:16:149608375854525 60:17:387221678682300 60:18:925029565741050 60:19:2044802197953900 60:20:4191844505805495 60:21:7984465725343800 60:22:14154280149473100 60:23:23385332420868600 60:24:36052387482172425 60:25:51915437974328292 60:26:69886166503903470 60:27:88004802264174740 60:28:103719945525634515 60:29:114449595062769120 60:30:118264581564861424 60:31:114449595062769120 60:32:103719945525634515 60:33:88004802264174740 60:34:69886166503903470 60:35:51915437974328292 60:36:36052387482172425 60:37:23385332420868600 60:38:14154280149473100 60:39:7984465725343800 60:40:4191844505805495 60:41:2044802197953900 60:42:925029565741050 60:43:387221678682300 60:44:149608375854525 60:45:53194089192720 60:46:17345898649800 60:47:5166863427600 60:48:1399358844975 60:49:342700125300 60:50:75394027566 60:51:14783142660 60:52:2558620845 60:53:386206920 60:54:50063860 60:55:5461512 60:56:487635 60:57:34220 60:58:1770 60:59:60 60:60:1 # binomial(61, k) for 0 <= k <= 61 61:0:1 61:1:61 61:2:1830 61:3:35990 61:4:521855 61:5:5949147 61:6:55525372 61:7:436270780 61:8:2944827765 61:9:17341763505 61:10:90177170226 61:11:418094152866 61:12:1742058970275 61:13:6566222272575 61:14:22512762077400 61:15:70539987842520 61:16:202802465047245 61:17:536830054536825 61:18:1312251244423350 61:19:2969831763694950 61:20:6236646703759395 61:21:12176310231149295 61:22:22138745874816900 61:23:37539612570341700 61:24:59437719903041025 61:25:87967825456500717 61:26:121801604478231762 61:27:157890968768078210 61:28:191724747789809255 61:29:218169540588403635 61:30:232714176627630544 61:31:232714176627630544 61:32:218169540588403635 61:33:191724747789809255 61:34:157890968768078210 61:35:121801604478231762 61:36:87967825456500717 61:37:59437719903041025 61:38:37539612570341700 61:39:22138745874816900 61:40:12176310231149295 61:41:6236646703759395 61:42:2969831763694950 61:43:1312251244423350 61:44:536830054536825 61:45:202802465047245 61:46:70539987842520 61:47:22512762077400 61:48:6566222272575 61:49:1742058970275 61:50:418094152866 61:51:90177170226 61:52:17341763505 61:53:2944827765 61:54:436270780 61:55:55525372 61:56:5949147 61:57:521855 61:58:35990 61:59:1830 61:60:61 61:61:1 # binomial(62, k) for 0 <= k <= 62 62:0:1 62:1:62 62:2:1891 62:3:37820 62:4:557845 62:5:6471002 62:6:61474519 62:7:491796152 62:8:3381098545 62:9:20286591270 62:10:107518933731 62:11:508271323092 62:12:2160153123141 62:13:8308281242850 62:14:29078984349975 62:15:93052749919920 62:16:273342452889765 62:17:739632519584070 62:18:1849081298960175 62:19:4282083008118300 62:20:9206478467454345 62:21:18412956934908690 62:22:34315056105966195 62:23:59678358445158600 62:24:96977332473382725 62:25:147405545359541742 62:26:209769429934732479 62:27:279692573246309972 62:28:349615716557887465 62:29:409894288378212890 62:30:450883717216034179 62:31:465428353255261088 62:32:450883717216034179 62:33:409894288378212890 62:34:349615716557887465 62:35:279692573246309972 62:36:209769429934732479 62:37:147405545359541742 62:38:96977332473382725 62:39:59678358445158600 62:40:34315056105966195 62:41:18412956934908690 62:42:9206478467454345 62:43:4282083008118300 62:44:1849081298960175 62:45:739632519584070 62:46:273342452889765 62:47:93052749919920 62:48:29078984349975 62:49:8308281242850 62:50:2160153123141 62:51:508271323092 62:52:107518933731 62:53:20286591270 62:54:3381098545 62:55:491796152 62:56:61474519 62:57:6471002 62:58:557845 62:59:37820 62:60:1891 62:61:62 62:62:1 # binomial(63, k) for 0 <= k <= 63 63:0:1 63:1:63 63:2:1953 63:3:39711 63:4:595665 63:5:7028847 63:6:67945521 63:7:553270671 63:8:3872894697 63:9:23667689815 63:10:127805525001 63:11:615790256823 63:12:2668424446233 63:13:10468434365991 63:14:37387265592825 63:15:122131734269895 63:16:366395202809685 63:17:1012974972473835 63:18:2588713818544245 63:19:6131164307078475 63:20:13488561475572645 63:21:27619435402363035 63:22:52728013040874885 63:23:93993414551124795 63:24:156655690918541325 63:25:244382877832924467 63:26:357174975294274221 63:27:489462003181042451 63:28:629308289804197437 63:29:759510004936100355 63:30:860778005594247069 63:31:916312070471295267 63:32:916312070471295267 63:33:860778005594247069 63:34:759510004936100355 63:35:629308289804197437 63:36:489462003181042451 63:37:357174975294274221 63:38:244382877832924467 63:39:156655690918541325 63:40:93993414551124795 63:41:52728013040874885 63:42:27619435402363035 63:43:13488561475572645 63:44:6131164307078475 63:45:2588713818544245 63:46:1012974972473835 63:47:366395202809685 63:48:122131734269895 63:49:37387265592825 63:50:10468434365991 63:51:2668424446233 63:52:615790256823 63:53:127805525001 63:54:23667689815 63:55:3872894697 63:56:553270671 63:57:67945521 63:58:7028847 63:59:595665 63:60:39711 63:61:1953 63:62:63 63:63:1 # binomial(64, k) for 0 <= k <= 64 64:0:1 64:1:64 64:2:2016 64:3:41664 64:4:635376 64:5:7624512 64:6:74974368 64:7:621216192 64:8:4426165368 64:9:27540584512 64:10:151473214816 64:11:743595781824 64:12:3284214703056 64:13:13136858812224 64:14:47855699958816 64:15:159518999862720 64:16:488526937079580 64:17:1379370175283520 64:18:3601688791018080 64:19:8719878125622720 64:20:19619725782651120 64:21:41107996877935680 64:22:80347448443237920 64:23:146721427591999680 64:24:250649105469666120 64:25:401038568751465792 64:26:601557853127198688 64:27:846636978475316672 64:28:1118770292985239888 64:29:1388818294740297792 64:30:1620288010530347424 64:31:1777090076065542336 64:32:1832624140942590534 64:33:1777090076065542336 64:34:1620288010530347424 64:35:1388818294740297792 64:36:1118770292985239888 64:37:846636978475316672 64:38:601557853127198688 64:39:401038568751465792 64:40:250649105469666120 64:41:146721427591999680 64:42:80347448443237920 64:43:41107996877935680 64:44:19619725782651120 64:45:8719878125622720 64:46:3601688791018080 64:47:1379370175283520 64:48:488526937079580 64:49:159518999862720 64:50:47855699958816 64:51:13136858812224 64:52:3284214703056 64:53:743595781824 64:54:151473214816 64:55:27540584512 64:56:4426165368 64:57:621216192 64:58:74974368 64:59:7624512 64:60:635376 64:61:41664 64:62:2016 64:63:64 64:64:1 # binomial(65, k) for 0 <= k <= 65 65:0:1 65:1:65 65:2:2080 65:3:43680 65:4:677040 65:5:8259888 65:6:82598880 65:7:696190560 65:8:5047381560 65:9:31966749880 65:10:179013799328 65:11:895068996640 65:12:4027810484880 65:13:16421073515280 65:14:60992558771040 65:15:207374699821536 65:16:648045936942300 65:17:1867897112363100 65:18:4981058966301600 65:19:12321566916640800 65:20:28339603908273840 65:21:60727722660586800 65:22:121455445321173600 65:23:227068876035237600 65:24:397370533061665800 65:25:651687674221131912 65:26:1002596421878664480 65:27:1448194831602515360 65:28:1965407271460556560 65:29:2507588587725537680 65:30:3009106305270645216 65:31:3397378086595889760 65:32:3609714217008132870 65:33:3609714217008132870 65:34:3397378086595889760 65:35:3009106305270645216 65:36:2507588587725537680 65:37:1965407271460556560 65:38:1448194831602515360 65:39:1002596421878664480 65:40:651687674221131912 65:41:397370533061665800 65:42:227068876035237600 65:43:121455445321173600 65:44:60727722660586800 65:45:28339603908273840 65:46:12321566916640800 65:47:4981058966301600 65:48:1867897112363100 65:49:648045936942300 65:50:207374699821536 65:51:60992558771040 65:52:16421073515280 65:53:4027810484880 65:54:895068996640 65:55:179013799328 65:56:31966749880 65:57:5047381560 65:58:696190560 65:59:82598880 65:60:8259888 65:61:677040 65:62:43680 65:63:2080 65:64:65 65:65:1 # binomial(66, k) for 0 <= k <= 66 66:0:1 66:1:66 66:2:2145 66:3:45760 66:4:720720 66:5:8936928 66:6:90858768 66:7:778789440 66:8:5743572120 66:9:37014131440 66:10:210980549208 66:11:1074082795968 66:12:4922879481520 66:13:20448884000160 66:14:77413632286320 66:15:268367258592576 66:16:855420636763836 66:17:2515943049305400 66:18:6848956078664700 66:19:17302625882942400 66:20:40661170824914640 66:21:89067326568860640 66:22:182183167981760400 66:23:348524321356411200 66:24:624439409096903400 66:25:1049058207282797712 66:26:1654284096099796392 66:27:2450791253481179840 66:28:3413602103063071920 66:29:4472995859186094240 66:30:5516694892996182896 66:31:6406484391866534976 66:32:7007092303604022630 66:33:7219428434016265740 66:34:7007092303604022630 66:35:6406484391866534976 66:36:5516694892996182896 66:37:4472995859186094240 66:38:3413602103063071920 66:39:2450791253481179840 66:40:1654284096099796392 66:41:1049058207282797712 66:42:624439409096903400 66:43:348524321356411200 66:44:182183167981760400 66:45:89067326568860640 66:46:40661170824914640 66:47:17302625882942400 66:48:6848956078664700 66:49:2515943049305400 66:50:855420636763836 66:51:268367258592576 66:52:77413632286320 66:53:20448884000160 66:54:4922879481520 66:55:1074082795968 66:56:210980549208 66:57:37014131440 66:58:5743572120 66:59:778789440 66:60:90858768 66:61:8936928 66:62:720720 66:63:45760 66:64:2145 66:65:66 66:66:1 # binomial(67, k) for 0 <= k <= 67 67:0:1 67:1:67 67:2:2211 67:3:47905 67:4:766480 67:5:9657648 67:6:99795696 67:7:869648208 67:8:6522361560 67:9:42757703560 67:10:247994680648 67:11:1285063345176 67:12:5996962277488 67:13:25371763481680 67:14:97862516286480 67:15:345780890878896 67:16:1123787895356412 67:17:3371363686069236 67:18:9364899127970100 67:19:24151581961607100 67:20:57963796707857040 67:21:129728497393775280 67:22:271250494550621040 67:23:530707489338171600 67:24:972963730453314600 67:25:1673497616379701112 67:26:2703342303382594104 67:27:4105075349580976232 67:28:5864393356544251760 67:29:7886597962249166160 67:30:9989690752182277136 67:31:11923179284862717872 67:32:13413576695470557606 67:33:14226520737620288370 67:34:14226520737620288370 67:35:13413576695470557606 67:36:11923179284862717872 67:37:9989690752182277136 67:38:7886597962249166160 67:39:5864393356544251760 67:40:4105075349580976232 67:41:2703342303382594104 67:42:1673497616379701112 67:43:972963730453314600 67:44:530707489338171600 67:45:271250494550621040 67:46:129728497393775280 67:47:57963796707857040 67:48:24151581961607100 67:49:9364899127970100 67:50:3371363686069236 67:51:1123787895356412 67:52:345780890878896 67:53:97862516286480 67:54:25371763481680 67:55:5996962277488 67:56:1285063345176 67:57:247994680648 67:58:42757703560 67:59:6522361560 67:60:869648208 67:61:99795696 67:62:9657648 67:63:766480 67:64:47905 67:65:2211 67:66:67 67:67:1 # binomial(68, k) for 0 <= k <= 68 68:0:1 68:1:68 68:2:2278 68:3:50116 68:4:814385 68:5:10424128 68:6:109453344 68:7:969443904 68:8:7392009768 68:9:49280065120 68:10:290752384208 68:11:1533058025824 68:12:7282025622664 68:13:31368725759168 68:14:123234279768160 68:15:443643407165376 68:16:1469568786235308 68:17:4495151581425648 68:18:12736262814039336 68:19:33516481089577200 68:20:82115378669464140 68:21:187692294101632320 68:22:400978991944396320 68:23:801957983888792640 68:24:1503671219791486200 68:25:2646461346833015712 68:26:4376839919762295216 68:27:6808417652963570336 68:28:9969468706125227992 68:29:13750991318793417920 68:30:17876288714431443296 68:31:21912870037044995008 68:32:25336755980333275478 68:33:27640097433090845976 68:34:28453041475240576740 68:35:27640097433090845976 68:36:25336755980333275478 68:37:21912870037044995008 68:38:17876288714431443296 68:39:13750991318793417920 68:40:9969468706125227992 68:41:6808417652963570336 68:42:4376839919762295216 68:43:2646461346833015712 68:44:1503671219791486200 68:45:801957983888792640 68:46:400978991944396320 68:47:187692294101632320 68:48:82115378669464140 68:49:33516481089577200 68:50:12736262814039336 68:51:4495151581425648 68:52:1469568786235308 68:53:443643407165376 68:54:123234279768160 68:55:31368725759168 68:56:7282025622664 68:57:1533058025824 68:58:290752384208 68:59:49280065120 68:60:7392009768 68:61:969443904 68:62:109453344 68:63:10424128 68:64:814385 68:65:50116 68:66:2278 68:67:68 68:68:1 # binomial(69, k) for 0 <= k <= 69 69:0:1 69:1:69 69:2:2346 69:3:52394 69:4:864501 69:5:11238513 69:6:119877472 69:7:1078897248 69:8:8361453672 69:9:56672074888 69:10:340032449328 69:11:1823810410032 69:12:8815083648488 69:13:38650751381832 69:14:154603005527328 69:15:566877686933536 69:16:1913212193400684 69:17:5964720367660956 69:18:17231414395464984 69:19:46252743903616536 69:20:115631859759041340 69:21:269807672771096460 69:22:588671286046028640 69:23:1202936975833188960 69:24:2305629203680278840 69:25:4150132566624501912 69:26:7023301266595310928 69:27:11185257572725865552 69:28:16777886359088798328 69:29:23720460024918645912 69:30:31627280033224861216 69:31:39789158751476438304 69:32:47249626017378270486 69:33:52976853413424121454 69:34:56093138908331422716 69:35:56093138908331422716 69:36:52976853413424121454 69:37:47249626017378270486 69:38:39789158751476438304 69:39:31627280033224861216 69:40:23720460024918645912 69:41:16777886359088798328 69:42:11185257572725865552 69:43:7023301266595310928 69:44:4150132566624501912 69:45:2305629203680278840 69:46:1202936975833188960 69:47:588671286046028640 69:48:269807672771096460 69:49:115631859759041340 69:50:46252743903616536 69:51:17231414395464984 69:52:5964720367660956 69:53:1913212193400684 69:54:566877686933536 69:55:154603005527328 69:56:38650751381832 69:57:8815083648488 69:58:1823810410032 69:59:340032449328 69:60:56672074888 69:61:8361453672 69:62:1078897248 69:63:119877472 69:64:11238513 69:65:864501 69:66:52394 69:67:2346 69:68:69 69:69:1 # binomial(70, k) for 0 <= k <= 70 70:0:1 70:1:70 70:2:2415 70:3:54740 70:4:916895 70:5:12103014 70:6:131115985 70:7:1198774720 70:8:9440350920 70:9:65033528560 70:10:396704524216 70:11:2163842859360 70:12:10638894058520 70:13:47465835030320 70:14:193253756909160 70:15:721480692460864 70:16:2480089880334220 70:17:7877932561061640 70:18:23196134763125940 70:19:63484158299081520 70:20:161884603662657876 70:21:385439532530137800 70:22:858478958817125100 70:23:1791608261879217600 70:24:3508566179513467800 70:25:6455761770304780752 70:26:11173433833219812840 70:27:18208558839321176480 70:28:27963143931814663880 70:29:40498346384007444240 70:30:55347740058143507128 70:31:71416438784701299520 70:32:87038784768854708790 70:33:100226479430802391940 70:34:109069992321755544170 70:35:112186277816662845432 70:36:109069992321755544170 70:37:100226479430802391940 70:38:87038784768854708790 70:39:71416438784701299520 70:40:55347740058143507128 70:41:40498346384007444240 70:42:27963143931814663880 70:43:18208558839321176480 70:44:11173433833219812840 70:45:6455761770304780752 70:46:3508566179513467800 70:47:1791608261879217600 70:48:858478958817125100 70:49:385439532530137800 70:50:161884603662657876 70:51:63484158299081520 70:52:23196134763125940 70:53:7877932561061640 70:54:2480089880334220 70:55:721480692460864 70:56:193253756909160 70:57:47465835030320 70:58:10638894058520 70:59:2163842859360 70:60:396704524216 70:61:65033528560 70:62:9440350920 70:63:1198774720 70:64:131115985 70:65:12103014 70:66:916895 70:67:54740 70:68:2415 70:69:70 70:70:1 # binomial(71, k) for 0 <= k <= 71 71:0:1 71:1:71 71:2:2485 71:3:57155 71:4:971635 71:5:13019909 71:6:143218999 71:7:1329890705 71:8:10639125640 71:9:74473879480 71:10:461738052776 71:11:2560547383576 71:12:12802736917880 71:13:58104729088840 71:14:240719591939480 71:15:914734449370024 71:16:3201570572795084 71:17:10358022441395860 71:18:31074067324187580 71:19:86680293062207460 71:20:225368761961739396 71:21:547324136192795676 71:22:1243918491347262900 71:23:2650087220696342700 71:24:5300174441392685400 71:25:9964327949818248552 71:26:17629195603524593592 71:27:29381992672540989320 71:28:46171702771135840360 71:29:68461490315822108120 71:30:95846086442150951368 71:31:126764178842844806648 71:32:158455223553556008310 71:33:187265264199657100730 71:34:209296471752557936110 71:35:221256270138418389602 71:36:221256270138418389602 71:37:209296471752557936110 71:38:187265264199657100730 71:39:158455223553556008310 71:40:126764178842844806648 71:41:95846086442150951368 71:42:68461490315822108120 71:43:46171702771135840360 71:44:29381992672540989320 71:45:17629195603524593592 71:46:9964327949818248552 71:47:5300174441392685400 71:48:2650087220696342700 71:49:1243918491347262900 71:50:547324136192795676 71:51:225368761961739396 71:52:86680293062207460 71:53:31074067324187580 71:54:10358022441395860 71:55:3201570572795084 71:56:914734449370024 71:57:240719591939480 71:58:58104729088840 71:59:12802736917880 71:60:2560547383576 71:61:461738052776 71:62:74473879480 71:63:10639125640 71:64:1329890705 71:65:143218999 71:66:13019909 71:67:971635 71:68:57155 71:69:2485 71:70:71 71:71:1 # binomial(72, k) for 0 <= k <= 72 72:0:1 72:1:72 72:2:2556 72:3:59640 72:4:1028790 72:5:13991544 72:6:156238908 72:7:1473109704 72:8:11969016345 72:9:85113005120 72:10:536211932256 72:11:3022285436352 72:12:15363284301456 72:13:70907466006720 72:14:298824321028320 72:15:1155454041309504 72:16:4116305022165108 72:17:13559593014190944 72:18:41432089765583440 72:19:117754360386395040 72:20:312049055023946856 72:21:772692898154535072 72:22:1791242627540058576 72:23:3894005712043605600 72:24:7950261662089028100 72:25:15264502391210933952 72:26:27593523553342842144 72:27:47011188276065582912 72:28:75553695443676829680 72:29:114633193086957948480 72:30:164307576757973059488 72:31:222610265284995758016 72:32:285219402396400814958 72:33:345720487753213109040 72:34:396561735952215036840 72:35:430552741890976325712 72:36:442512540276836779204 72:37:430552741890976325712 72:38:396561735952215036840 72:39:345720487753213109040 72:40:285219402396400814958 72:41:222610265284995758016 72:42:164307576757973059488 72:43:114633193086957948480 72:44:75553695443676829680 72:45:47011188276065582912 72:46:27593523553342842144 72:47:15264502391210933952 72:48:7950261662089028100 72:49:3894005712043605600 72:50:1791242627540058576 72:51:772692898154535072 72:52:312049055023946856 72:53:117754360386395040 72:54:41432089765583440 72:55:13559593014190944 72:56:4116305022165108 72:57:1155454041309504 72:58:298824321028320 72:59:70907466006720 72:60:15363284301456 72:61:3022285436352 72:62:536211932256 72:63:85113005120 72:64:11969016345 72:65:1473109704 72:66:156238908 72:67:13991544 72:68:1028790 72:69:59640 72:70:2556 72:71:72 72:72:1 # binomial(73, k) for 0 <= k <= 73 73:0:1 73:1:73 73:2:2628 73:3:62196 73:4:1088430 73:5:15020334 73:6:170230452 73:7:1629348612 73:8:13442126049 73:9:97082021465 73:10:621324937376 73:11:3558497368608 73:12:18385569737808 73:13:86270750308176 73:14:369731787035040 73:15:1454278362337824 73:16:5271759063474612 73:17:17675898036356052 73:18:54991682779774384 73:19:159186450151978480 73:20:429803415410341896 73:21:1084741953178481928 73:22:2563935525694593648 73:23:5685248339583664176 73:24:11844267374132633700 73:25:23214764053299962052 73:26:42858025944553776096 73:27:74604711829408425056 73:28:122564883719742412592 73:29:190186888530634778160 73:30:278940769844931007968 73:31:386917842042968817504 73:32:507829667681396572974 73:33:630939890149613923998 73:34:742282223705428145880 73:35:827114477843191362552 73:36:873065282167813104916 73:37:873065282167813104916 73:38:827114477843191362552 73:39:742282223705428145880 73:40:630939890149613923998 73:41:507829667681396572974 73:42:386917842042968817504 73:43:278940769844931007968 73:44:190186888530634778160 73:45:122564883719742412592 73:46:74604711829408425056 73:47:42858025944553776096 73:48:23214764053299962052 73:49:11844267374132633700 73:50:5685248339583664176 73:51:2563935525694593648 73:52:1084741953178481928 73:53:429803415410341896 73:54:159186450151978480 73:55:54991682779774384 73:56:17675898036356052 73:57:5271759063474612 73:58:1454278362337824 73:59:369731787035040 73:60:86270750308176 73:61:18385569737808 73:62:3558497368608 73:63:621324937376 73:64:97082021465 73:65:13442126049 73:66:1629348612 73:67:170230452 73:68:15020334 73:69:1088430 73:70:62196 73:71:2628 73:72:73 73:73:1 # binomial(74, k) for 0 <= k <= 74 74:0:1 74:1:74 74:2:2701 74:3:64824 74:4:1150626 74:5:16108764 74:6:185250786 74:7:1799579064 74:8:15071474661 74:9:110524147514 74:10:718406958841 74:11:4179822305984 74:12:21944067106416 74:13:104656320045984 74:14:456002537343216 74:15:1824010149372864 74:16:6726037425812436 74:17:22947657099830664 74:18:72667580816130436 74:19:214178132931752864 74:20:588989865562320376 74:21:1514545368588823824 74:22:3648677478873075576 74:23:8249183865278257824 74:24:17529515713716297876 74:25:35059031427432595752 74:26:66072789997853738148 74:27:117462737773962201152 74:28:197169595549150837648 74:29:312751772250377190752 74:30:469127658375565786128 74:31:665858611887899825472 74:32:894747509724365390478 74:33:1138769557831010496972 74:34:1373222113855042069878 74:35:1569396701548619508432 74:36:1700179760011004467468 74:37:1746130564335626209832 74:38:1700179760011004467468 74:39:1569396701548619508432 74:40:1373222113855042069878 74:41:1138769557831010496972 74:42:894747509724365390478 74:43:665858611887899825472 74:44:469127658375565786128 74:45:312751772250377190752 74:46:197169595549150837648 74:47:117462737773962201152 74:48:66072789997853738148 74:49:35059031427432595752 74:50:17529515713716297876 74:51:8249183865278257824 74:52:3648677478873075576 74:53:1514545368588823824 74:54:588989865562320376 74:55:214178132931752864 74:56:72667580816130436 74:57:22947657099830664 74:58:6726037425812436 74:59:1824010149372864 74:60:456002537343216 74:61:104656320045984 74:62:21944067106416 74:63:4179822305984 74:64:718406958841 74:65:110524147514 74:66:15071474661 74:67:1799579064 74:68:185250786 74:69:16108764 74:70:1150626 74:71:64824 74:72:2701 74:73:74 74:74:1 # binomial(75, k) for 0 <= k <= 75 75:0:1 75:1:75 75:2:2775 75:3:67525 75:4:1215450 75:5:17259390 75:6:201359550 75:7:1984829850 75:8:16871053725 75:9:125595622175 75:10:828931106355 75:11:4898229264825 75:12:26123889412400 75:13:126600387152400 75:14:560658857389200 75:15:2280012686716080 75:16:8550047575185300 75:17:29673694525643100 75:18:95615237915961100 75:19:286845713747883300 75:20:803167998494073240 75:21:2103535234151144200 75:22:5163222847461899400 75:23:11897861344151333400 75:24:25778699578994555700 75:25:52588547141148893628 75:26:101131821425286333900 75:27:183535527771815939300 75:28:314632333323113038800 75:29:509921367799528028400 75:30:781879430625942976880 75:31:1134986270263465611600 75:32:1560606121612265215950 75:33:2033517067555375887450 75:34:2511991671686052566850 75:35:2942618815403661578310 75:36:3269576461559623975900 75:37:3446310324346630677300 75:38:3446310324346630677300 75:39:3269576461559623975900 75:40:2942618815403661578310 75:41:2511991671686052566850 75:42:2033517067555375887450 75:43:1560606121612265215950 75:44:1134986270263465611600 75:45:781879430625942976880 75:46:509921367799528028400 75:47:314632333323113038800 75:48:183535527771815939300 75:49:101131821425286333900 75:50:52588547141148893628 75:51:25778699578994555700 75:52:11897861344151333400 75:53:5163222847461899400 75:54:2103535234151144200 75:55:803167998494073240 75:56:286845713747883300 75:57:95615237915961100 75:58:29673694525643100 75:59:8550047575185300 75:60:2280012686716080 75:61:560658857389200 75:62:126600387152400 75:63:26123889412400 75:64:4898229264825 75:65:828931106355 75:66:125595622175 75:67:16871053725 75:68:1984829850 75:69:201359550 75:70:17259390 75:71:1215450 75:72:67525 75:73:2775 75:74:75 75:75:1 # binomial(76, k) for 0 <= k <= 76 76:0:1 76:1:76 76:2:2850 76:3:70300 76:4:1282975 76:5:18474840 76:6:218618940 76:7:2186189400 76:8:18855883575 76:9:142466675900 76:10:954526728530 76:11:5727160371180 76:12:31022118677225 76:13:152724276564800 76:14:687259244541600 76:15:2840671544105280 76:16:10830060261901380 76:17:38223742100828400 76:18:125288932441604200 76:19:382460951663844400 76:20:1090013712241956540 76:21:2906703232645217440 76:22:7266758081613043600 76:23:17061084191613232800 76:24:37676560923145889100 76:25:78367246720143449328 76:26:153720368566435227528 76:27:284667349197102273200 76:28:498167861094928978100 76:29:824553701122641067200 76:30:1291800798425471005280 76:31:1916865700889408588480 76:32:2695592391875730827550 76:33:3594123189167641103400 76:34:4545508739241428454300 76:35:5454610487089714145160 76:36:6212195276963285554210 76:37:6715886785906254653200 76:38:6892620648693261354600 76:39:6715886785906254653200 76:40:6212195276963285554210 76:41:5454610487089714145160 76:42:4545508739241428454300 76:43:3594123189167641103400 76:44:2695592391875730827550 76:45:1916865700889408588480 76:46:1291800798425471005280 76:47:824553701122641067200 76:48:498167861094928978100 76:49:284667349197102273200 76:50:153720368566435227528 76:51:78367246720143449328 76:52:37676560923145889100 76:53:17061084191613232800 76:54:7266758081613043600 76:55:2906703232645217440 76:56:1090013712241956540 76:57:382460951663844400 76:58:125288932441604200 76:59:38223742100828400 76:60:10830060261901380 76:61:2840671544105280 76:62:687259244541600 76:63:152724276564800 76:64:31022118677225 76:65:5727160371180 76:66:954526728530 76:67:142466675900 76:68:18855883575 76:69:2186189400 76:70:218618940 76:71:18474840 76:72:1282975 76:73:70300 76:74:2850 76:75:76 76:76:1 # binomial(77, k) for 0 <= k <= 77 77:0:1 77:1:77 77:2:2926 77:3:73150 77:4:1353275 77:5:19757815 77:6:237093780 77:7:2404808340 77:8:21042072975 77:9:161322559475 77:10:1096993404430 77:11:6681687099710 77:12:36749279048405 77:13:183746395242025 77:14:839983521106400 77:15:3527930788646880 77:16:13670731806006660 77:17:49053802362729780 77:18:163512674542432600 77:19:507749884105448600 77:20:1472474663905800940 77:21:3996716944887173980 77:22:10173461314258261040 77:23:24327842273226276400 77:24:54737645114759121900 77:25:116043807643289338428 77:26:232087615286578676856 77:27:438387717763537500728 77:28:782835210292031251300 77:29:1322721562217570045300 77:30:2116354499548112072480 77:31:3208666499314879593760 77:32:4612458092765139416030 77:33:6289715581043371930950 77:34:8139631928409069557700 77:35:10000119226331142599460 77:36:11666805764052999699370 77:37:12928082062869540207410 77:38:13608507434599516007800 77:39:13608507434599516007800 77:40:12928082062869540207410 77:41:11666805764052999699370 77:42:10000119226331142599460 77:43:8139631928409069557700 77:44:6289715581043371930950 77:45:4612458092765139416030 77:46:3208666499314879593760 77:47:2116354499548112072480 77:48:1322721562217570045300 77:49:782835210292031251300 77:50:438387717763537500728 77:51:232087615286578676856 77:52:116043807643289338428 77:53:54737645114759121900 77:54:24327842273226276400 77:55:10173461314258261040 77:56:3996716944887173980 77:57:1472474663905800940 77:58:507749884105448600 77:59:163512674542432600 77:60:49053802362729780 77:61:13670731806006660 77:62:3527930788646880 77:63:839983521106400 77:64:183746395242025 77:65:36749279048405 77:66:6681687099710 77:67:1096993404430 77:68:161322559475 77:69:21042072975 77:70:2404808340 77:71:237093780 77:72:19757815 77:73:1353275 77:74:73150 77:75:2926 77:76:77 77:77:1 # binomial(78, k) for 0 <= k <= 78 78:0:1 78:1:78 78:2:3003 78:3:76076 78:4:1426425 78:5:21111090 78:6:256851595 78:7:2641902120 78:8:23446881315 78:9:182364632450 78:10:1258315963905 78:11:7778680504140 78:12:43430966148115 78:13:220495674290430 78:14:1023729916348425 78:15:4367914309753280 78:16:17198662594653540 78:17:62724534168736440 78:18:212566476905162380 78:19:671262558647881200 78:20:1980224548011249540 78:21:5469191608792974920 78:22:14170178259145435020 78:23:34501303587484537440 78:24:79065487387985398300 78:25:170781452758048460328 78:26:348131422929868015284 78:27:670475333050116177584 78:28:1221222928055568752028 78:29:2105556772509601296600 78:30:3439076061765682117780 78:31:5325020998862991666240 78:32:7821124592080019009790 78:33:10902173673808511346980 78:34:14429347509452441488650 78:35:18139751154740212157160 78:36:21666924990384142298830 78:37:24594887826922539906780 78:38:26536589497469056215210 78:39:27217014869199032015600 78:40:26536589497469056215210 78:41:24594887826922539906780 78:42:21666924990384142298830 78:43:18139751154740212157160 78:44:14429347509452441488650 78:45:10902173673808511346980 78:46:7821124592080019009790 78:47:5325020998862991666240 78:48:3439076061765682117780 78:49:2105556772509601296600 78:50:1221222928055568752028 78:51:670475333050116177584 78:52:348131422929868015284 78:53:170781452758048460328 78:54:79065487387985398300 78:55:34501303587484537440 78:56:14170178259145435020 78:57:5469191608792974920 78:58:1980224548011249540 78:59:671262558647881200 78:60:212566476905162380 78:61:62724534168736440 78:62:17198662594653540 78:63:4367914309753280 78:64:1023729916348425 78:65:220495674290430 78:66:43430966148115 78:67:7778680504140 78:68:1258315963905 78:69:182364632450 78:70:23446881315 78:71:2641902120 78:72:256851595 78:73:21111090 78:74:1426425 78:75:76076 78:76:3003 78:77:78 78:78:1 # binomial(79, k) for 0 <= k <= 79 79:0:1 79:1:79 79:2:3081 79:3:79079 79:4:1502501 79:5:22537515 79:6:277962685 79:7:2898753715 79:8:26088783435 79:9:205811513765 79:10:1440680596355 79:11:9036996468045 79:12:51209646652255 79:13:263926640438545 79:14:1244225590638855 79:15:5391644226101705 79:16:21566576904406820 79:17:79923196763389980 79:18:275291011073898820 79:19:883829035553043580 79:20:2651487106659130740 79:21:7449416156804224460 79:22:19639369867938409940 79:23:48671481846629972460 79:24:113566790975469935740 79:25:249846940146033858628 79:26:518912875687916475612 79:27:1018606755979984192868 79:28:1891698261105684929612 79:29:3326779700565170048628 79:30:5544632834275283414380 79:31:8764097060628673784020 79:32:13146145590943010676030 79:33:18723298265888530356770 79:34:25331521183260952835630 79:35:32569098664192653645810 79:36:39806676145124354455990 79:37:46261812817306682205610 79:38:51131477324391596121990 79:39:53753604366668088230810 79:40:53753604366668088230810 79:41:51131477324391596121990 79:42:46261812817306682205610 79:43:39806676145124354455990 79:44:32569098664192653645810 79:45:25331521183260952835630 79:46:18723298265888530356770 79:47:13146145590943010676030 79:48:8764097060628673784020 79:49:5544632834275283414380 79:50:3326779700565170048628 79:51:1891698261105684929612 79:52:1018606755979984192868 79:53:518912875687916475612 79:54:249846940146033858628 79:55:113566790975469935740 79:56:48671481846629972460 79:57:19639369867938409940 79:58:7449416156804224460 79:59:2651487106659130740 79:60:883829035553043580 79:61:275291011073898820 79:62:79923196763389980 79:63:21566576904406820 79:64:5391644226101705 79:65:1244225590638855 79:66:263926640438545 79:67:51209646652255 79:68:9036996468045 79:69:1440680596355 79:70:205811513765 79:71:26088783435 79:72:2898753715 79:73:277962685 79:74:22537515 79:75:1502501 79:76:79079 79:77:3081 79:78:79 79:79:1 # binomial(80, k) for 0 <= k <= 80 80:0:1 80:1:80 80:2:3160 80:3:82160 80:4:1581580 80:5:24040016 80:6:300500200 80:7:3176716400 80:8:28987537150 80:9:231900297200 80:10:1646492110120 80:11:10477677064400 80:12:60246643120300 80:13:315136287090800 80:14:1508152231077400 80:15:6635869816740560 80:16:26958221130508525 80:17:101489773667796800 80:18:355214207837288800 80:19:1159120046626942400 80:20:3535316142212174320 80:21:10100903263463355200 80:22:27088786024742634400 80:23:68310851714568382400 80:24:162238272822099908200 80:25:363413731121503794368 80:26:768759815833950334240 80:27:1537519631667900668480 80:28:2910305017085669122480 80:29:5218477961670854978240 80:30:8871412534840453463008 80:31:14308729894903957198400 80:32:21910242651571684460050 80:33:31869443856831541032800 80:34:44054819449149483192400 80:35:57900619847453606481440 80:36:72375774809317008101800 80:37:86068488962431036661600 80:38:97393290141698278327600 80:39:104885081691059684352800 80:40:107507208733336176461620 80:41:104885081691059684352800 80:42:97393290141698278327600 80:43:86068488962431036661600 80:44:72375774809317008101800 80:45:57900619847453606481440 80:46:44054819449149483192400 80:47:31869443856831541032800 80:48:21910242651571684460050 80:49:14308729894903957198400 80:50:8871412534840453463008 80:51:5218477961670854978240 80:52:2910305017085669122480 80:53:1537519631667900668480 80:54:768759815833950334240 80:55:363413731121503794368 80:56:162238272822099908200 80:57:68310851714568382400 80:58:27088786024742634400 80:59:10100903263463355200 80:60:3535316142212174320 80:61:1159120046626942400 80:62:355214207837288800 80:63:101489773667796800 80:64:26958221130508525 80:65:6635869816740560 80:66:1508152231077400 80:67:315136287090800 80:68:60246643120300 80:69:10477677064400 80:70:1646492110120 80:71:231900297200 80:72:28987537150 80:73:3176716400 80:74:300500200 80:75:24040016 80:76:1581580 80:77:82160 80:78:3160 80:79:80 80:80:1 # binomial(81, k) for 0 <= k <= 81 81:0:1 81:1:81 81:2:3240 81:3:85320 81:4:1663740 81:5:25621596 81:6:324540216 81:7:3477216600 81:8:32164253550 81:9:260887834350 81:10:1878392407320 81:11:12124169174520 81:12:70724320184700 81:13:375382930211100 81:14:1823288518168200 81:15:8144022047817960 81:16:33594090947249085 81:17:128447994798305325 81:18:456703981505085600 81:19:1514334254464231200 81:20:4694436188839116720 81:21:13636219405675529520 81:22:37189689288205989600 81:23:95399637739311016800 81:24:230549124536668290600 81:25:525652003943603702568 81:26:1132173546955454128608 81:27:2306279447501851002720 81:28:4447824648753569790960 81:29:8128782978756524100720 81:30:14089890496511308441248 81:31:23180142429744410661408 81:32:36218972546475641658450 81:33:53779686508403225492850 81:34:75924263305981024225200 81:35:101955439296603089673840 81:36:130276394656770614583240 81:37:158444263771748044763400 81:38:183461779104129314989200 81:39:202278371832757962680400 81:40:212392290424395860814420 81:41:212392290424395860814420 81:42:202278371832757962680400 81:43:183461779104129314989200 81:44:158444263771748044763400 81:45:130276394656770614583240 81:46:101955439296603089673840 81:47:75924263305981024225200 81:48:53779686508403225492850 81:49:36218972546475641658450 81:50:23180142429744410661408 81:51:14089890496511308441248 81:52:8128782978756524100720 81:53:4447824648753569790960 81:54:2306279447501851002720 81:55:1132173546955454128608 81:56:525652003943603702568 81:57:230549124536668290600 81:58:95399637739311016800 81:59:37189689288205989600 81:60:13636219405675529520 81:61:4694436188839116720 81:62:1514334254464231200 81:63:456703981505085600 81:64:128447994798305325 81:65:33594090947249085 81:66:8144022047817960 81:67:1823288518168200 81:68:375382930211100 81:69:70724320184700 81:70:12124169174520 81:71:1878392407320 81:72:260887834350 81:73:32164253550 81:74:3477216600 81:75:324540216 81:76:25621596 81:77:1663740 81:78:85320 81:79:3240 81:80:81 81:81:1 # binomial(82, k) for 0 <= k <= 82 82:0:1 82:1:82 82:2:3321 82:3:88560 82:4:1749060 82:5:27285336 82:6:350161812 82:7:3801756816 82:8:35641470150 82:9:293052087900 82:10:2139280241670 82:11:14002561581840 82:12:82848489359220 82:13:446107250395800 82:14:2198671448379300 82:15:9967310565986160 82:16:41738112995067045 82:17:162042085745554410 82:18:585151976303390925 82:19:1971038235969316800 82:20:6208770443303347920 82:21:18330655594514646240 82:22:50825908693881519120 82:23:132589327027517006400 82:24:325948762275979307400 82:25:756201128480271993168 82:26:1657825550899057831176 82:27:3438452994457305131328 82:28:6754104096255420793680 82:29:12576607627510093891680 82:30:22218673475267832541968 82:31:37270032926255719102656 82:32:59399114976220052319858 82:33:89998659054878867151300 82:34:129703949814384249718050 82:35:177879702602584113899040 82:36:232231833953373704257080 82:37:288720658428518659346640 82:38:341906042875877359752600 82:39:385740150936887277669600 82:40:414670662257153823494820 82:41:424784580848791721628840 82:42:414670662257153823494820 82:43:385740150936887277669600 82:44:341906042875877359752600 82:45:288720658428518659346640 82:46:232231833953373704257080 82:47:177879702602584113899040 82:48:129703949814384249718050 82:49:89998659054878867151300 82:50:59399114976220052319858 82:51:37270032926255719102656 82:52:22218673475267832541968 82:53:12576607627510093891680 82:54:6754104096255420793680 82:55:3438452994457305131328 82:56:1657825550899057831176 82:57:756201128480271993168 82:58:325948762275979307400 82:59:132589327027517006400 82:60:50825908693881519120 82:61:18330655594514646240 82:62:6208770443303347920 82:63:1971038235969316800 82:64:585151976303390925 82:65:162042085745554410 82:66:41738112995067045 82:67:9967310565986160 82:68:2198671448379300 82:69:446107250395800 82:70:82848489359220 82:71:14002561581840 82:72:2139280241670 82:73:293052087900 82:74:35641470150 82:75:3801756816 82:76:350161812 82:77:27285336 82:78:1749060 82:79:88560 82:80:3321 82:81:82 82:82:1 # binomial(83, k) for 0 <= k <= 83 83:0:1 83:1:83 83:2:3403 83:3:91881 83:4:1837620 83:5:29034396 83:6:377447148 83:7:4151918628 83:8:39443226966 83:9:328693558050 83:10:2432332329570 83:11:16141841823510 83:12:96851050941060 83:13:528955739755020 83:14:2644778698775100 83:15:12165982014365460 83:16:51705423561053205 83:17:203780198740621455 83:18:747194062048945335 83:19:2556190212272707725 83:20:8179808679272664720 83:21:24539426037817994160 83:22:69156564288396165360 83:23:183415235721398525520 83:24:458538089303496313800 83:25:1082149890756251300568 83:26:2414026679379329824344 83:27:5096278545356362962504 83:28:10192557090712725925008 83:29:19330711723765514685360 83:30:34795281102777926433648 83:31:59488706401523551644624 83:32:96669147902475771422514 83:33:149397774031098919471158 83:34:219702608869263116869350 83:35:307583652416968363617090 83:36:410111536555957818156120 83:37:520952492381892363603720 83:38:630626701304396019099240 83:39:727646193812764637422200 83:40:800410813194041101164420 83:41:839455243105945545123660 83:42:839455243105945545123660 83:43:800410813194041101164420 83:44:727646193812764637422200 83:45:630626701304396019099240 83:46:520952492381892363603720 83:47:410111536555957818156120 83:48:307583652416968363617090 83:49:219702608869263116869350 83:50:149397774031098919471158 83:51:96669147902475771422514 83:52:59488706401523551644624 83:53:34795281102777926433648 83:54:19330711723765514685360 83:55:10192557090712725925008 83:56:5096278545356362962504 83:57:2414026679379329824344 83:58:1082149890756251300568 83:59:458538089303496313800 83:60:183415235721398525520 83:61:69156564288396165360 83:62:24539426037817994160 83:63:8179808679272664720 83:64:2556190212272707725 83:65:747194062048945335 83:66:203780198740621455 83:67:51705423561053205 83:68:12165982014365460 83:69:2644778698775100 83:70:528955739755020 83:71:96851050941060 83:72:16141841823510 83:73:2432332329570 83:74:328693558050 83:75:39443226966 83:76:4151918628 83:77:377447148 83:78:29034396 83:79:1837620 83:80:91881 83:81:3403 83:82:83 83:83:1 # binomial(84, k) for 0 <= k <= 84 84:0:1 84:1:84 84:2:3486 84:3:95284 84:4:1929501 84:5:30872016 84:6:406481544 84:7:4529365776 84:8:43595145594 84:9:368136785016 84:10:2761025887620 84:11:18574174153080 84:12:112992892764570 84:13:625806790696080 84:14:3173734438530120 84:15:14810760713140560 84:16:63871405575418665 84:17:255485622301674660 84:18:950974260789566790 84:19:3303384274321653060 84:20:10735998891545372445 84:21:32719234717090658880 84:22:93695990326214159520 84:23:252571800009794690880 84:24:641953325024894839320 84:25:1540687980059747614368 84:26:3496176570135581124912 84:27:7510305224735692786848 84:28:15288835636069088887512 84:29:29523268814478240610368 84:30:54125992826543441119008 84:31:94283987504301478078272 84:32:156157854303999323067138 84:33:246066921933574690893672 84:34:369100382900362036340508 84:35:527286261286231480486440 84:36:717695188972926181773210 84:37:931064028937850181759840 84:38:1151579193686288382702960 84:39:1358272895117160656521440 84:40:1528057007006805738586620 84:41:1639866056299986646288080 84:42:1678910486211891090247320 84:43:1639866056299986646288080 84:44:1528057007006805738586620 84:45:1358272895117160656521440 84:46:1151579193686288382702960 84:47:931064028937850181759840 84:48:717695188972926181773210 84:49:527286261286231480486440 84:50:369100382900362036340508 84:51:246066921933574690893672 84:52:156157854303999323067138 84:53:94283987504301478078272 84:54:54125992826543441119008 84:55:29523268814478240610368 84:56:15288835636069088887512 84:57:7510305224735692786848 84:58:3496176570135581124912 84:59:1540687980059747614368 84:60:641953325024894839320 84:61:252571800009794690880 84:62:93695990326214159520 84:63:32719234717090658880 84:64:10735998891545372445 84:65:3303384274321653060 84:66:950974260789566790 84:67:255485622301674660 84:68:63871405575418665 84:69:14810760713140560 84:70:3173734438530120 84:71:625806790696080 84:72:112992892764570 84:73:18574174153080 84:74:2761025887620 84:75:368136785016 84:76:43595145594 84:77:4529365776 84:78:406481544 84:79:30872016 84:80:1929501 84:81:95284 84:82:3486 84:83:84 84:84:1 # binomial(85, k) for 0 <= k <= 85 85:0:1 85:1:85 85:2:3570 85:3:98770 85:4:2024785 85:5:32801517 85:6:437353560 85:7:4935847320 85:8:48124511370 85:9:411731930610 85:10:3129162672636 85:11:21335200040700 85:12:131567066917650 85:13:738799683460650 85:14:3799541229226200 85:15:17984495151670680 85:16:78682166288559225 85:17:319357027877093325 85:18:1206459883091241450 85:19:4254358535111219850 85:20:14039383165867025505 85:21:43455233608636031325 85:22:126415225043304818400 85:23:346267790336008850400 85:24:894525125034689530200 85:25:2182641305084642453688 85:26:5036864550195328739280 85:27:11006481794871273911760 85:28:22799140860804781674360 85:29:44812104450547329497880 85:30:83649261641021681729376 85:31:148409980330844919197280 85:32:250441841808300801145410 85:33:402224776237574013960810 85:34:615167304833936727234180 85:35:896386644186593516826948 85:36:1244981450259157662259650 85:37:1648759217910776363533050 85:38:2082643222624138564462800 85:39:2509852088803449039224400 85:40:2886329902123966395108060 85:41:3167923063306792384874700 85:42:3318776542511877736535400 85:43:3318776542511877736535400 85:44:3167923063306792384874700 85:45:2886329902123966395108060 85:46:2509852088803449039224400 85:47:2082643222624138564462800 85:48:1648759217910776363533050 85:49:1244981450259157662259650 85:50:896386644186593516826948 85:51:615167304833936727234180 85:52:402224776237574013960810 85:53:250441841808300801145410 85:54:148409980330844919197280 85:55:83649261641021681729376 85:56:44812104450547329497880 85:57:22799140860804781674360 85:58:11006481794871273911760 85:59:5036864550195328739280 85:60:2182641305084642453688 85:61:894525125034689530200 85:62:346267790336008850400 85:63:126415225043304818400 85:64:43455233608636031325 85:65:14039383165867025505 85:66:4254358535111219850 85:67:1206459883091241450 85:68:319357027877093325 85:69:78682166288559225 85:70:17984495151670680 85:71:3799541229226200 85:72:738799683460650 85:73:131567066917650 85:74:21335200040700 85:75:3129162672636 85:76:411731930610 85:77:48124511370 85:78:4935847320 85:79:437353560 85:80:32801517 85:81:2024785 85:82:98770 85:83:3570 85:84:85 85:85:1 # binomial(86, k) for 0 <= k <= 86 86:0:1 86:1:86 86:2:3655 86:3:102340 86:4:2123555 86:5:34826302 86:6:470155077 86:7:5373200880 86:8:53060358690 86:9:459856441980 86:10:3540894603246 86:11:24464362713336 86:12:152902266958350 86:13:870366750378300 86:14:4538340912686850 86:15:21784036380896880 86:16:96666661440229905 86:17:398039194165652550 86:18:1525816910968334775 86:19:5460818418202461300 86:20:18293741700978245355 86:21:57494616774503056830 86:22:169870458651940849725 86:23:472683015379313668800 86:24:1240792915370698380600 86:25:3077166430119331983888 86:26:7219505855279971192968 86:27:16043346345066602651040 86:28:33805622655676055586120 86:29:67611245311352111172240 86:30:128461366091569011227256 86:31:232059241971866600926656 86:32:398851822139145720342690 86:33:652666618045874815106220 86:34:1017392081071510741194990 86:35:1511553949020530244061128 86:36:2141368094445751179086598 86:37:2893740668169934025792700 86:38:3731402440534914927995850 86:39:4592495311427587603687200 86:40:5396181990927415434332460 86:41:6054252965430758779982760 86:42:6486699605818670121410100 86:43:6637553085023755473070800 86:44:6486699605818670121410100 86:45:6054252965430758779982760 86:46:5396181990927415434332460 86:47:4592495311427587603687200 86:48:3731402440534914927995850 86:49:2893740668169934025792700 86:50:2141368094445751179086598 86:51:1511553949020530244061128 86:52:1017392081071510741194990 86:53:652666618045874815106220 86:54:398851822139145720342690 86:55:232059241971866600926656 86:56:128461366091569011227256 86:57:67611245311352111172240 86:58:33805622655676055586120 86:59:16043346345066602651040 86:60:7219505855279971192968 86:61:3077166430119331983888 86:62:1240792915370698380600 86:63:472683015379313668800 86:64:169870458651940849725 86:65:57494616774503056830 86:66:18293741700978245355 86:67:5460818418202461300 86:68:1525816910968334775 86:69:398039194165652550 86:70:96666661440229905 86:71:21784036380896880 86:72:4538340912686850 86:73:870366750378300 86:74:152902266958350 86:75:24464362713336 86:76:3540894603246 86:77:459856441980 86:78:53060358690 86:79:5373200880 86:80:470155077 86:81:34826302 86:82:2123555 86:83:102340 86:84:3655 86:85:86 86:86:1 # binomial(87, k) for 0 <= k <= 87 87:0:1 87:1:87 87:2:3741 87:3:105995 87:4:2225895 87:5:36949857 87:6:504981379 87:7:5843355957 87:8:58433559570 87:9:512916800670 87:10:4000751045226 87:11:28005257316582 87:12:177366629671686 87:13:1023269017336650 87:14:5408707663065150 87:15:26322377293583730 87:16:118450697821126785 87:17:494705855605882455 87:18:1923856105133987325 87:19:6986635329170796075 87:20:23754560119180706655 87:21:75788358475481302185 87:22:227365075426443906555 87:23:642553474031254518525 87:24:1713475930750012049400 87:25:4317959345490030364488 87:26:10296672285399303176856 87:27:23262852200346573844008 87:28:49848969000742658237160 87:29:101416867967028166758360 87:30:196072611402921122399496 87:31:360520608063435612153912 87:32:630911064111012321269346 87:33:1051518440185020535448910 87:34:1670058699117385556301210 87:35:2528946030092040985256118 87:36:3652922043466281423147726 87:37:5035108762615685204879298 87:38:6625143108704848953788550 87:39:8323897751962502531683050 87:40:9988677302355003038019660 87:41:11450434956358174214315220 87:42:12540952571249428901392860 87:43:13124252690842425594480900 87:44:13124252690842425594480900 87:45:12540952571249428901392860 87:46:11450434956358174214315220 87:47:9988677302355003038019660 87:48:8323897751962502531683050 87:49:6625143108704848953788550 87:50:5035108762615685204879298 87:51:3652922043466281423147726 87:52:2528946030092040985256118 87:53:1670058699117385556301210 87:54:1051518440185020535448910 87:55:630911064111012321269346 87:56:360520608063435612153912 87:57:196072611402921122399496 87:58:101416867967028166758360 87:59:49848969000742658237160 87:60:23262852200346573844008 87:61:10296672285399303176856 87:62:4317959345490030364488 87:63:1713475930750012049400 87:64:642553474031254518525 87:65:227365075426443906555 87:66:75788358475481302185 87:67:23754560119180706655 87:68:6986635329170796075 87:69:1923856105133987325 87:70:494705855605882455 87:71:118450697821126785 87:72:26322377293583730 87:73:5408707663065150 87:74:1023269017336650 87:75:177366629671686 87:76:28005257316582 87:77:4000751045226 87:78:512916800670 87:79:58433559570 87:80:5843355957 87:81:504981379 87:82:36949857 87:83:2225895 87:84:105995 87:85:3741 87:86:87 87:87:1 # binomial(88, k) for 0 <= k <= 88 88:0:1 88:1:88 88:2:3828 88:3:109736 88:4:2331890 88:5:39175752 88:6:541931236 88:7:6348337336 88:8:64276915527 88:9:571350360240 88:10:4513667845896 88:11:32006008361808 88:12:205371886988268 88:13:1200635647008336 88:14:6431976680401800 88:15:31731084956648880 88:16:144773075114710515 88:17:613156553427009240 88:18:2418561960739869780 88:19:8910491434304783400 88:20:30741195448351502730 88:21:99542918594662008840 88:22:303153433901925208740 88:23:869918549457698425080 88:24:2356029404781266567925 88:25:6031435276240042413888 88:26:14614631630889333541344 88:27:33559524485745877020864 88:28:73111821201089232081168 88:29:151265836967770824995520 88:30:297489479369949289157856 88:31:556593219466356734553408 88:32:991431672174447933423258 88:33:1682429504296032856718256 88:34:2721577139302406091750120 88:35:4199004729209426541557328 88:36:6181868073558322408403844 88:37:8688030806081966628027024 88:38:11660251871320534158667848 88:39:14949040860667351485471600 88:40:18312575054317505569702710 88:41:21439112258713177252334880 88:42:23991387527607603115708080 88:43:25665205262091854495873760 88:44:26248505381684851188961800 88:45:25665205262091854495873760 88:46:23991387527607603115708080 88:47:21439112258713177252334880 88:48:18312575054317505569702710 88:49:14949040860667351485471600 88:50:11660251871320534158667848 88:51:8688030806081966628027024 88:52:6181868073558322408403844 88:53:4199004729209426541557328 88:54:2721577139302406091750120 88:55:1682429504296032856718256 88:56:991431672174447933423258 88:57:556593219466356734553408 88:58:297489479369949289157856 88:59:151265836967770824995520 88:60:73111821201089232081168 88:61:33559524485745877020864 88:62:14614631630889333541344 88:63:6031435276240042413888 88:64:2356029404781266567925 88:65:869918549457698425080 88:66:303153433901925208740 88:67:99542918594662008840 88:68:30741195448351502730 88:69:8910491434304783400 88:70:2418561960739869780 88:71:613156553427009240 88:72:144773075114710515 88:73:31731084956648880 88:74:6431976680401800 88:75:1200635647008336 88:76:205371886988268 88:77:32006008361808 88:78:4513667845896 88:79:571350360240 88:80:64276915527 88:81:6348337336 88:82:541931236 88:83:39175752 88:84:2331890 88:85:109736 88:86:3828 88:87:88 88:88:1 # binomial(89, k) for 0 <= k <= 89 89:0:1 89:1:89 89:2:3916 89:3:113564 89:4:2441626 89:5:41507642 89:6:581106988 89:7:6890268572 89:8:70625252863 89:9:635627275767 89:10:5085018206136 89:11:36519676207704 89:12:237377895350076 89:13:1406007533996604 89:14:7632612327410136 89:15:38163061637050680 89:16:176504160071359395 89:17:757929628541719755 89:18:3031718514166879020 89:19:11329053395044653180 89:20:39651686882656286130 89:21:130284114043013511570 89:22:402696352496587217580 89:23:1173071983359623633820 89:24:3225947954238964993005 89:25:8387464681021308981813 89:26:20646066907129375955232 89:27:48174156116635210562208 89:28:106671345686835109102032 89:29:224377658168860057076688 89:30:448755316337720114153376 89:31:854082698836306023711264 89:32:1548024891640804667976666 89:33:2673861176470480790141514 89:34:4404006643598438948468376 89:35:6920581868511832633307448 89:36:10380872802767748949961172 89:37:14869898879640289036430868 89:38:20348282677402500786694872 89:39:26609292731987885644139448 89:40:33261615914984857055174310 89:41:39751687313030682822037590 89:42:45430499786320780368042960 89:43:49656592789699457611581840 89:44:51913710643776705684835560 89:45:51913710643776705684835560 89:46:49656592789699457611581840 89:47:45430499786320780368042960 89:48:39751687313030682822037590 89:49:33261615914984857055174310 89:50:26609292731987885644139448 89:51:20348282677402500786694872 89:52:14869898879640289036430868 89:53:10380872802767748949961172 89:54:6920581868511832633307448 89:55:4404006643598438948468376 89:56:2673861176470480790141514 89:57:1548024891640804667976666 89:58:854082698836306023711264 89:59:448755316337720114153376 89:60:224377658168860057076688 89:61:106671345686835109102032 89:62:48174156116635210562208 89:63:20646066907129375955232 89:64:8387464681021308981813 89:65:3225947954238964993005 89:66:1173071983359623633820 89:67:402696352496587217580 89:68:130284114043013511570 89:69:39651686882656286130 89:70:11329053395044653180 89:71:3031718514166879020 89:72:757929628541719755 89:73:176504160071359395 89:74:38163061637050680 89:75:7632612327410136 89:76:1406007533996604 89:77:237377895350076 89:78:36519676207704 89:79:5085018206136 89:80:635627275767 89:81:70625252863 89:82:6890268572 89:83:581106988 89:84:41507642 89:85:2441626 89:86:113564 89:87:3916 89:88:89 89:89:1 # binomial(90, k) for 0 <= k <= 90 90:0:1 90:1:90 90:2:4005 90:3:117480 90:4:2555190 90:5:43949268 90:6:622614630 90:7:7471375560 90:8:77515521435 90:9:706252528630 90:10:5720645481903 90:11:41604694413840 90:12:273897571557780 90:13:1643385429346680 90:14:9038619861406740 90:15:45795673964460816 90:16:214667221708410075 90:17:934433788613079150 90:18:3789648142708598775 90:19:14360771909211532200 90:20:50980740277700939310 90:21:169935800925669797700 90:22:532980466539600729150 90:23:1575768335856210851400 90:24:4399019937598588626825 90:25:11613412635260273974818 90:26:29033531588150684937045 90:27:68820223023764586517440 90:28:154845501803470319664240 90:29:331049003855695166178720 90:30:673132974506580171230064 90:31:1302838015174026137864640 90:32:2402107590477110691687930 90:33:4221886068111285458118180 90:34:7077867820068919738609890 90:35:11324588512110271581775824 90:36:17301454671279581583268620 90:37:25250771682408037986392040 90:38:35218181557042789823125740 90:39:46957575409390386430834320 90:40:59870908646972742699313758 90:41:73013303228015539877211900 90:42:85182187099351463190080550 90:43:95087092576020237979624800 90:44:101570303433476163296417400 90:45:103827421287553411369671120 90:46:101570303433476163296417400 90:47:95087092576020237979624800 90:48:85182187099351463190080550 90:49:73013303228015539877211900 90:50:59870908646972742699313758 90:51:46957575409390386430834320 90:52:35218181557042789823125740 90:53:25250771682408037986392040 90:54:17301454671279581583268620 90:55:11324588512110271581775824 90:56:7077867820068919738609890 90:57:4221886068111285458118180 90:58:2402107590477110691687930 90:59:1302838015174026137864640 90:60:673132974506580171230064 90:61:331049003855695166178720 90:62:154845501803470319664240 90:63:68820223023764586517440 90:64:29033531588150684937045 90:65:11613412635260273974818 90:66:4399019937598588626825 90:67:1575768335856210851400 90:68:532980466539600729150 90:69:169935800925669797700 90:70:50980740277700939310 90:71:14360771909211532200 90:72:3789648142708598775 90:73:934433788613079150 90:74:214667221708410075 90:75:45795673964460816 90:76:9038619861406740 90:77:1643385429346680 90:78:273897571557780 90:79:41604694413840 90:80:5720645481903 90:81:706252528630 90:82:77515521435 90:83:7471375560 90:84:622614630 90:85:43949268 90:86:2555190 90:87:117480 90:88:4005 90:89:90 90:90:1 # binomial(91, k) for 0 <= k <= 91 91:0:1 91:1:91 91:2:4095 91:3:121485 91:4:2672670 91:5:46504458 91:6:666563898 91:7:8093990190 91:8:84986896995 91:9:783768050065 91:10:6426898010533 91:11:47325339895743 91:12:315502265971620 91:13:1917283000904460 91:14:10682005290753420 91:15:54834293825867556 91:16:260462895672870891 91:17:1149101010321489225 91:18:4724081931321677925 91:19:18150420051920130975 91:20:65341512186912471510 91:21:220916541203370737010 91:22:702916267465270526850 91:23:2108748802395811580550 91:24:5974788273454799478225 91:25:16012432572858862601643 91:26:40646944223410958911863 91:27:97853754611915271454485 91:28:223665724827234906181680 91:29:485894505659165485842960 91:30:1004181978362275337408784 91:31:1975970989680606309094704 91:32:3704945605651136829552570 91:33:6623993658588396149806110 91:34:11299753888180205196728070 91:35:18402456332179191320385714 91:36:28626043183389853165044444 91:37:42552226353687619569660660 91:38:60468953239450827809517780 91:39:82175756966433176253960060 91:40:106828484056363129130148078 91:41:132884211874988282576525658 91:42:158195490327367003067292450 91:43:180269279675371701169705350 91:44:196657396009496401276042200 91:45:205397724721029574666088520 91:46:205397724721029574666088520 91:47:196657396009496401276042200 91:48:180269279675371701169705350 91:49:158195490327367003067292450 91:50:132884211874988282576525658 91:51:106828484056363129130148078 91:52:82175756966433176253960060 91:53:60468953239450827809517780 91:54:42552226353687619569660660 91:55:28626043183389853165044444 91:56:18402456332179191320385714 91:57:11299753888180205196728070 91:58:6623993658588396149806110 91:59:3704945605651136829552570 91:60:1975970989680606309094704 91:61:1004181978362275337408784 91:62:485894505659165485842960 91:63:223665724827234906181680 91:64:97853754611915271454485 91:65:40646944223410958911863 91:66:16012432572858862601643 91:67:5974788273454799478225 91:68:2108748802395811580550 91:69:702916267465270526850 91:70:220916541203370737010 91:71:65341512186912471510 91:72:18150420051920130975 91:73:4724081931321677925 91:74:1149101010321489225 91:75:260462895672870891 91:76:54834293825867556 91:77:10682005290753420 91:78:1917283000904460 91:79:315502265971620 91:80:47325339895743 91:81:6426898010533 91:82:783768050065 91:83:84986896995 91:84:8093990190 91:85:666563898 91:86:46504458 91:87:2672670 91:88:121485 91:89:4095 91:90:91 91:91:1 # binomial(92, k) for 0 <= k <= 92 92:0:1 92:1:92 92:2:4186 92:3:125580 92:4:2794155 92:5:49177128 92:6:713068356 92:7:8760554088 92:8:93080887185 92:9:868754947060 92:10:7210666060598 92:11:53752237906276 92:12:362827605867363 92:13:2232785266876080 92:14:12599288291657880 92:15:65516299116620976 92:16:315297189498738447 92:17:1409563905994360116 92:18:5873182941643167150 92:19:22874501983241808900 92:20:83491932238832602485 92:21:286258053390283208520 92:22:923832808668641263860 92:23:2811665069861082107400 92:24:8083537075850611058775 92:25:21987220846313662079868 92:26:56659376796269821513506 92:27:138500698835326230366348 92:28:321519479439150177636165 92:29:709560230486400392024640 92:30:1490076484021440823251744 92:31:2980152968042881646503488 92:32:5680916595331743138647274 92:33:10328939264239532979358680 92:34:17923747546768601346534180 92:35:29702210220359396517113784 92:36:47028499515569044485430158 92:37:71178269537077472734705104 92:38:103021179593138447379178440 92:39:142644710205884004063477840 92:40:189004241022796305384108138 92:41:239712695931351411706673736 92:42:291079702202355285643818108 92:43:338464770002738704236997800 92:44:376926675684868102445747550 92:45:402055120730525975942130720 92:46:410795449442059149332177040 92:47:402055120730525975942130720 92:48:376926675684868102445747550 92:49:338464770002738704236997800 92:50:291079702202355285643818108 92:51:239712695931351411706673736 92:52:189004241022796305384108138 92:53:142644710205884004063477840 92:54:103021179593138447379178440 92:55:71178269537077472734705104 92:56:47028499515569044485430158 92:57:29702210220359396517113784 92:58:17923747546768601346534180 92:59:10328939264239532979358680 92:60:5680916595331743138647274 92:61:2980152968042881646503488 92:62:1490076484021440823251744 92:63:709560230486400392024640 92:64:321519479439150177636165 92:65:138500698835326230366348 92:66:56659376796269821513506 92:67:21987220846313662079868 92:68:8083537075850611058775 92:69:2811665069861082107400 92:70:923832808668641263860 92:71:286258053390283208520 92:72:83491932238832602485 92:73:22874501983241808900 92:74:5873182941643167150 92:75:1409563905994360116 92:76:315297189498738447 92:77:65516299116620976 92:78:12599288291657880 92:79:2232785266876080 92:80:362827605867363 92:81:53752237906276 92:82:7210666060598 92:83:868754947060 92:84:93080887185 92:85:8760554088 92:86:713068356 92:87:49177128 92:88:2794155 92:89:125580 92:90:4186 92:91:92 92:92:1 # binomial(93, k) for 0 <= k <= 93 93:0:1 93:1:93 93:2:4278 93:3:129766 93:4:2919735 93:5:51971283 93:6:762245484 93:7:9473622444 93:8:101841441273 93:9:961835834245 93:10:8079421007658 93:11:60962903966874 93:12:416579843773639 93:13:2595612872743443 93:14:14832073558533960 93:15:78115587408278856 93:16:380813488615359423 93:17:1724861095493098563 93:18:7282746847637527266 93:19:28747684924884976050 93:20:106366434222074411385 93:21:369749985629115811005 93:22:1210090862058924472380 93:23:3735497878529723371260 93:24:10895202145711693166175 93:25:30070757922164273138643 93:26:78646597642583483593374 93:27:195160075631596051879854 93:28:460020178274476408002513 93:29:1031079709925550569660805 93:30:2199636714507841215276384 93:31:4470229452064322469755232 93:32:8661069563374624785150762 93:33:16009855859571276118005954 93:34:28252686811008134325892860 93:35:47625957767127997863647964 93:36:76730709735928441002543942 93:37:118206769052646517220135262 93:38:174199449130215920113883544 93:39:245665889799022451442656280 93:40:331648951228680309447585978 93:41:428716936954147717090781874 93:42:530792398133706697350491844 93:43:629544472205093989880815908 93:44:715391445687606806682745350 93:45:778981796415394078387878270 93:46:812850570172585125274307760 93:47:812850570172585125274307760 93:48:778981796415394078387878270 93:49:715391445687606806682745350 93:50:629544472205093989880815908 93:51:530792398133706697350491844 93:52:428716936954147717090781874 93:53:331648951228680309447585978 93:54:245665889799022451442656280 93:55:174199449130215920113883544 93:56:118206769052646517220135262 93:57:76730709735928441002543942 93:58:47625957767127997863647964 93:59:28252686811008134325892860 93:60:16009855859571276118005954 93:61:8661069563374624785150762 93:62:4470229452064322469755232 93:63:2199636714507841215276384 93:64:1031079709925550569660805 93:65:460020178274476408002513 93:66:195160075631596051879854 93:67:78646597642583483593374 93:68:30070757922164273138643 93:69:10895202145711693166175 93:70:3735497878529723371260 93:71:1210090862058924472380 93:72:369749985629115811005 93:73:106366434222074411385 93:74:28747684924884976050 93:75:7282746847637527266 93:76:1724861095493098563 93:77:380813488615359423 93:78:78115587408278856 93:79:14832073558533960 93:80:2595612872743443 93:81:416579843773639 93:82:60962903966874 93:83:8079421007658 93:84:961835834245 93:85:101841441273 93:86:9473622444 93:87:762245484 93:88:51971283 93:89:2919735 93:90:129766 93:91:4278 93:92:93 93:93:1 # binomial(94, k) for 0 <= k <= 94 94:0:1 94:1:94 94:2:4371 94:3:134044 94:4:3049501 94:5:54891018 94:6:814216767 94:7:10235867928 94:8:111315063717 94:9:1063677275518 94:10:9041256841903 94:11:69042324974532 94:12:477542747740513 94:13:3012192716517082 94:14:17427686431277403 94:15:92947660966812816 94:16:458929076023638279 94:17:2105674584108457986 94:18:9007607943130625829 94:19:36030431772522503316 94:20:135114119146959387435 94:21:476116419851190222390 94:22:1579840847688040283385 94:23:4945588740588647843640 94:24:14630700024241416537435 94:25:40965960067875966304818 94:26:108717355564747756732017 94:27:273806673274179535473228 94:28:655180253906072459882367 94:29:1491099888200026977663318 94:30:3230716424433391784937189 94:31:6669866166572163685031616 94:32:13131299015438947254905994 94:33:24670925422945900903156716 94:34:44262542670579410443898814 94:35:75878644578136132189540824 94:36:124356667503056438866191906 94:37:194937478788574958222679204 94:38:292406218182862437334018806 94:39:419865338929238371556539824 94:40:577314841027702760890242258 94:41:760365888182828026538367852 94:42:959509335087854414441273718 94:43:1160336870338800687231307752 94:44:1344935917892700796563561258 94:45:1494373242103000885070623620 94:46:1591832366587979203662186030 94:47:1625701140345170250548615520 94:48:1591832366587979203662186030 94:49:1494373242103000885070623620 94:50:1344935917892700796563561258 94:51:1160336870338800687231307752 94:52:959509335087854414441273718 94:53:760365888182828026538367852 94:54:577314841027702760890242258 94:55:419865338929238371556539824 94:56:292406218182862437334018806 94:57:194937478788574958222679204 94:58:124356667503056438866191906 94:59:75878644578136132189540824 94:60:44262542670579410443898814 94:61:24670925422945900903156716 94:62:13131299015438947254905994 94:63:6669866166572163685031616 94:64:3230716424433391784937189 94:65:1491099888200026977663318 94:66:655180253906072459882367 94:67:273806673274179535473228 94:68:108717355564747756732017 94:69:40965960067875966304818 94:70:14630700024241416537435 94:71:4945588740588647843640 94:72:1579840847688040283385 94:73:476116419851190222390 94:74:135114119146959387435 94:75:36030431772522503316 94:76:9007607943130625829 94:77:2105674584108457986 94:78:458929076023638279 94:79:92947660966812816 94:80:17427686431277403 94:81:3012192716517082 94:82:477542747740513 94:83:69042324974532 94:84:9041256841903 94:85:1063677275518 94:86:111315063717 94:87:10235867928 94:88:814216767 94:89:54891018 94:90:3049501 94:91:134044 94:92:4371 94:93:94 94:94:1 # binomial(95, k) for 0 <= k <= 95 95:0:1 95:1:95 95:2:4465 95:3:138415 95:4:3183545 95:5:57940519 95:6:869107785 95:7:11050084695 95:8:121550931645 95:9:1174992339235 95:10:10104934117421 95:11:78083581816435 95:12:546585072715045 95:13:3489735464257595 95:14:20439879147794485 95:15:110375347398090219 95:16:551876736990451095 95:17:2564603660132096265 95:18:11113282527239083815 95:19:45038039715653129145 95:20:171144550919481890751 95:21:611230538998149609825 95:22:2055957267539230505775 95:23:6525429588276688127025 95:24:19576288764830064381075 95:25:55596660092117382842253 95:26:149683315632623723036835 95:27:382524028838927292205245 95:28:928986927180251995355595 95:29:2146280142106099437545685 95:30:4721816312633418762600507 95:31:9900582591005555469968805 95:32:19801165182011110939937610 95:33:37802224438384848158062710 95:34:68933468093525311347055530 95:35:120141187248715542633439638 95:36:200235312081192571055732730 95:37:319294146291631397088871110 95:38:487343696971437395556698010 95:39:712271557112100808890558630 95:40:997180179956941132446782082 95:41:1337680729210530787428610110 95:42:1719875223270682440979641570 95:43:2119846205426655101672581470 95:44:2505272788231501483794869010 95:45:2839309159995701681634184878 95:46:3086205608690980088732809650 95:47:3217533506933149454210801550 95:48:3217533506933149454210801550 95:49:3086205608690980088732809650 95:50:2839309159995701681634184878 95:51:2505272788231501483794869010 95:52:2119846205426655101672581470 95:53:1719875223270682440979641570 95:54:1337680729210530787428610110 95:55:997180179956941132446782082 95:56:712271557112100808890558630 95:57:487343696971437395556698010 95:58:319294146291631397088871110 95:59:200235312081192571055732730 95:60:120141187248715542633439638 95:61:68933468093525311347055530 95:62:37802224438384848158062710 95:63:19801165182011110939937610 95:64:9900582591005555469968805 95:65:4721816312633418762600507 95:66:2146280142106099437545685 95:67:928986927180251995355595 95:68:382524028838927292205245 95:69:149683315632623723036835 95:70:55596660092117382842253 95:71:19576288764830064381075 95:72:6525429588276688127025 95:73:2055957267539230505775 95:74:611230538998149609825 95:75:171144550919481890751 95:76:45038039715653129145 95:77:11113282527239083815 95:78:2564603660132096265 95:79:551876736990451095 95:80:110375347398090219 95:81:20439879147794485 95:82:3489735464257595 95:83:546585072715045 95:84:78083581816435 95:85:10104934117421 95:86:1174992339235 95:87:121550931645 95:88:11050084695 95:89:869107785 95:90:57940519 95:91:3183545 95:92:138415 95:93:4465 95:94:95 95:95:1 # binomial(96, k) for 0 <= k <= 96 96:0:1 96:1:96 96:2:4560 96:3:142880 96:4:3321960 96:5:61124064 96:6:927048304 96:7:11919192480 96:8:132601016340 96:9:1296543270880 96:10:11279926456656 96:11:88188515933856 96:12:624668654531480 96:13:4036320536972640 96:14:23929614612052080 96:15:130815226545884704 96:16:662252084388541314 96:17:3116480397122547360 96:18:13677886187371180080 96:19:56151322242892212960 96:20:216182590635135019896 96:21:782375089917631500576 96:22:2667187806537380115600 96:23:8581386855815918632800 96:24:26101718353106752508100 96:25:75172948856947447223328 96:26:205279975724741105879088 96:27:532207344471551015242080 96:28:1311510956019179287560840 96:29:3075267069286351432901280 96:30:6868096454739518200146192 96:31:14622398903638974232569312 96:32:29701747773016666409906415 96:33:57603389620395959098000320 96:34:106735692531910159505118240 96:35:189074655342240853980495168 96:36:320376499329908113689172368 96:37:519529458372823968144603840 96:38:806637843263068792645569120 96:39:1199615254083538204447256640 96:40:1709451737069041941337340712 96:41:2334860909167471919875392192 96:42:3057555952481213228408251680 96:43:3839721428697337542652223040 96:44:4625118993658156585467450480 96:45:5344581948227203165429053888 96:46:5925514768686681770366994528 96:47:6303739115624129542943611200 96:48:6435067013866298908421603100 96:49:6303739115624129542943611200 96:50:5925514768686681770366994528 96:51:5344581948227203165429053888 96:52:4625118993658156585467450480 96:53:3839721428697337542652223040 96:54:3057555952481213228408251680 96:55:2334860909167471919875392192 96:56:1709451737069041941337340712 96:57:1199615254083538204447256640 96:58:806637843263068792645569120 96:59:519529458372823968144603840 96:60:320376499329908113689172368 96:61:189074655342240853980495168 96:62:106735692531910159505118240 96:63:57603389620395959098000320 96:64:29701747773016666409906415 96:65:14622398903638974232569312 96:66:6868096454739518200146192 96:67:3075267069286351432901280 96:68:1311510956019179287560840 96:69:532207344471551015242080 96:70:205279975724741105879088 96:71:75172948856947447223328 96:72:26101718353106752508100 96:73:8581386855815918632800 96:74:2667187806537380115600 96:75:782375089917631500576 96:76:216182590635135019896 96:77:56151322242892212960 96:78:13677886187371180080 96:79:3116480397122547360 96:80:662252084388541314 96:81:130815226545884704 96:82:23929614612052080 96:83:4036320536972640 96:84:624668654531480 96:85:88188515933856 96:86:11279926456656 96:87:1296543270880 96:88:132601016340 96:89:11919192480 96:90:927048304 96:91:61124064 96:92:3321960 96:93:142880 96:94:4560 96:95:96 96:96:1 # binomial(97, k) for 0 <= k <= 97 97:0:1 97:1:97 97:2:4656 97:3:147440 97:4:3464840 97:5:64446024 97:6:988172368 97:7:12846240784 97:8:144520208820 97:9:1429144287220 97:10:12576469727536 97:11:99468442390512 97:12:712857170465336 97:13:4660989191504120 97:14:27965935149024720 97:15:154744841157936784 97:16:793067310934426018 97:17:3778732481511088674 97:18:16794366584493727440 97:19:69829208430263393040 97:20:272333912878027232856 97:21:998557680552766520472 97:22:3449562896455011616176 97:23:11248574662353298748400 97:24:34683105208922671140900 97:25:101274667210054199731428 97:26:280452924581688553102416 97:27:737487320196292121121168 97:28:1843718300490730302802920 97:29:4386778025305530720462120 97:30:9943363524025869633047472 97:31:21490495358378492432715504 97:32:44324146676655640642475727 97:33:87305137393412625507906735 97:34:164339082152306118603118560 97:35:295810347874151013485613408 97:36:509451154672148967669667536 97:37:839905957702732081833776208 97:38:1326167301635892760790172960 97:39:2006253097346606997092825760 97:40:2909066991152580145784597352 97:41:4044312646236513861212732904 97:42:5392416861648685148283643872 97:43:6897277381178550771060474720 97:44:8464840422355494128119673520 97:45:9969700941885359750896504368 97:46:11270096716913884935796048416 97:47:12229253884310811313310605728 97:48:12738806129490428451365214300 97:49:12738806129490428451365214300 97:50:12229253884310811313310605728 97:51:11270096716913884935796048416 97:52:9969700941885359750896504368 97:53:8464840422355494128119673520 97:54:6897277381178550771060474720 97:55:5392416861648685148283643872 97:56:4044312646236513861212732904 97:57:2909066991152580145784597352 97:58:2006253097346606997092825760 97:59:1326167301635892760790172960 97:60:839905957702732081833776208 97:61:509451154672148967669667536 97:62:295810347874151013485613408 97:63:164339082152306118603118560 97:64:87305137393412625507906735 97:65:44324146676655640642475727 97:66:21490495358378492432715504 97:67:9943363524025869633047472 97:68:4386778025305530720462120 97:69:1843718300490730302802920 97:70:737487320196292121121168 97:71:280452924581688553102416 97:72:101274667210054199731428 97:73:34683105208922671140900 97:74:11248574662353298748400 97:75:3449562896455011616176 97:76:998557680552766520472 97:77:272333912878027232856 97:78:69829208430263393040 97:79:16794366584493727440 97:80:3778732481511088674 97:81:793067310934426018 97:82:154744841157936784 97:83:27965935149024720 97:84:4660989191504120 97:85:712857170465336 97:86:99468442390512 97:87:12576469727536 97:88:1429144287220 97:89:144520208820 97:90:12846240784 97:91:988172368 97:92:64446024 97:93:3464840 97:94:147440 97:95:4656 97:96:97 97:97:1 # binomial(98, k) for 0 <= k <= 98 98:0:1 98:1:98 98:2:4753 98:3:152096 98:4:3612280 98:5:67910864 98:6:1052618392 98:7:13834413152 98:8:157366449604 98:9:1573664496040 98:10:14005614014756 98:11:112044912118048 98:12:812325612855848 98:13:5373846361969456 98:14:32626924340528840 98:15:182710776306961504 98:16:947812152092362802 98:17:4571799792445514692 98:18:20573099066004816114 98:19:86623575014757120480 98:20:342163121308290625896 98:21:1270891593430793753328 98:22:4448120577007778136648 98:23:14698137558808310364576 98:24:45931679871275969889300 98:25:135957772418976870872328 98:26:381727591791742752833844 98:27:1017940244777980674223584 98:28:2581205620687022423924088 98:29:6230496325796261023265040 98:30:14330141549331400353509592 98:31:31433858882404362065762976 98:32:65814642035034133075191231 98:33:131629284070068266150382462 98:34:251644219545718744111025295 98:35:460149430026457132088731968 98:36:805261502546299981155280944 98:37:1349357112374881049503443744 98:38:2166073259338624842623949168 98:39:3332420398982499757882998720 98:40:4915320088499187142877423112 98:41:6953379637389094006997330256 98:42:9436729507885199009496376776 98:43:12289694242827235919344118592 98:44:15362117803534044899180148240 98:45:18434541364240853879016177888 98:46:21239797658799244686692552784 98:47:23499350601224696249106654144 98:48:24968060013801239764675820028 98:49:25477612258980856902730428600 98:50:24968060013801239764675820028 98:51:23499350601224696249106654144 98:52:21239797658799244686692552784 98:53:18434541364240853879016177888 98:54:15362117803534044899180148240 98:55:12289694242827235919344118592 98:56:9436729507885199009496376776 98:57:6953379637389094006997330256 98:58:4915320088499187142877423112 98:59:3332420398982499757882998720 98:60:2166073259338624842623949168 98:61:1349357112374881049503443744 98:62:805261502546299981155280944 98:63:460149430026457132088731968 98:64:251644219545718744111025295 98:65:131629284070068266150382462 98:66:65814642035034133075191231 98:67:31433858882404362065762976 98:68:14330141549331400353509592 98:69:6230496325796261023265040 98:70:2581205620687022423924088 98:71:1017940244777980674223584 98:72:381727591791742752833844 98:73:135957772418976870872328 98:74:45931679871275969889300 98:75:14698137558808310364576 98:76:4448120577007778136648 98:77:1270891593430793753328 98:78:342163121308290625896 98:79:86623575014757120480 98:80:20573099066004816114 98:81:4571799792445514692 98:82:947812152092362802 98:83:182710776306961504 98:84:32626924340528840 98:85:5373846361969456 98:86:812325612855848 98:87:112044912118048 98:88:14005614014756 98:89:1573664496040 98:90:157366449604 98:91:13834413152 98:92:1052618392 98:93:67910864 98:94:3612280 98:95:152096 98:96:4753 98:97:98 98:98:1 # binomial(99, k) for 0 <= k <= 99 99:0:1 99:1:99 99:2:4851 99:3:156849 99:4:3764376 99:5:71523144 99:6:1120529256 99:7:14887031544 99:8:171200862756 99:9:1731030945644 99:10:15579278510796 99:11:126050526132804 99:12:924370524973896 99:13:6186171974825304 99:14:38000770702498296 99:15:215337700647490344 99:16:1130522928399324306 99:17:5519611944537877494 99:18:25144898858450330806 99:19:107196674080761936594 99:20:428786696323047746376 99:21:1613054714739084379224 99:22:5719012170438571889976 99:23:19146258135816088501224 99:24:60629817430084280253876 99:25:181889452290252840761628 99:26:517685364210719623706172 99:27:1399667836569723427057428 99:28:3599145865465003098147672 99:29:8811701946483283447189128 99:30:20560637875127661376774632 99:31:45764000431735762419272568 99:32:97248500917438495140954207 99:33:197443926105102399225573693 99:34:383273503615787010261407757 99:35:711793649572175876199757263 99:36:1265410932572757113244012912 99:37:2154618614921181030658724688 99:38:3515430371713505892127392912 99:39:5498493658321124600506947888 99:40:8247740487481686900760421832 99:41:11868699725888281149874753368 99:42:16390109145274293016493707032 99:43:21726423750712434928840495368 99:44:27651812046361280818524266832 99:45:33796659167774898778196326128 99:46:39674339023040098565708730672 99:47:44739148260023940935799206928 99:48:48467410615025936013782474172 99:49:50445672272782096667406248628 99:50:50445672272782096667406248628 99:51:48467410615025936013782474172 99:52:44739148260023940935799206928 99:53:39674339023040098565708730672 99:54:33796659167774898778196326128 99:55:27651812046361280818524266832 99:56:21726423750712434928840495368 99:57:16390109145274293016493707032 99:58:11868699725888281149874753368 99:59:8247740487481686900760421832 99:60:5498493658321124600506947888 99:61:3515430371713505892127392912 99:62:2154618614921181030658724688 99:63:1265410932572757113244012912 99:64:711793649572175876199757263 99:65:383273503615787010261407757 99:66:197443926105102399225573693 99:67:97248500917438495140954207 99:68:45764000431735762419272568 99:69:20560637875127661376774632 99:70:8811701946483283447189128 99:71:3599145865465003098147672 99:72:1399667836569723427057428 99:73:517685364210719623706172 99:74:181889452290252840761628 99:75:60629817430084280253876 99:76:19146258135816088501224 99:77:5719012170438571889976 99:78:1613054714739084379224 99:79:428786696323047746376 99:80:107196674080761936594 99:81:25144898858450330806 99:82:5519611944537877494 99:83:1130522928399324306 99:84:215337700647490344 99:85:38000770702498296 99:86:6186171974825304 99:87:924370524973896 99:88:126050526132804 99:89:15579278510796 99:90:1731030945644 99:91:171200862756 99:92:14887031544 99:93:1120529256 99:94:71523144 99:95:3764376 99:96:156849 99:97:4851 99:98:99 99:99:1 # binomial(100, k) for 0 <= k <= 100 100:0:1 100:1:100 100:2:4950 100:3:161700 100:4:3921225 100:5:75287520 100:6:1192052400 100:7:16007560800 100:8:186087894300 100:9:1902231808400 100:10:17310309456440 100:11:141629804643600 100:12:1050421051106700 100:13:7110542499799200 100:14:44186942677323600 100:15:253338471349988640 100:16:1345860629046814650 100:17:6650134872937201800 100:18:30664510802988208300 100:19:132341572939212267400 100:20:535983370403809682970 100:21:2041841411062132125600 100:22:7332066885177656269200 100:23:24865270306254660391200 100:24:79776075565900368755100 100:25:242519269720337121015504 100:26:699574816500972464467800 100:27:1917353200780443050763600 100:28:4998813702034726525205100 100:29:12410847811948286545336800 100:30:29372339821610944823963760 100:31:66324638306863423796047200 100:32:143012501349174257560226775 100:33:294692427022540894366527900 100:34:580717429720889409486981450 100:35:1095067153187962886461165020 100:36:1977204582144932989443770175 100:37:3420029547493938143902737600 100:38:5670048986634686922786117600 100:39:9013924030034630492634340800 100:40:13746234145802811501267369720 100:41:20116440213369968050635175200 100:42:28258808871162574166368460400 100:43:38116532895986727945334202400 100:44:49378235797073715747364762200 100:45:61448471214136179596720592960 100:46:73470998190814997343905056800 100:47:84413487283064039501507937600 100:48:93206558875049876949581681100 100:49:98913082887808032681188722800 100:50:100891344545564193334812497256 100:51:98913082887808032681188722800 100:52:93206558875049876949581681100 100:53:84413487283064039501507937600 100:54:73470998190814997343905056800 100:55:61448471214136179596720592960 100:56:49378235797073715747364762200 100:57:38116532895986727945334202400 100:58:28258808871162574166368460400 100:59:20116440213369968050635175200 100:60:13746234145802811501267369720 100:61:9013924030034630492634340800 100:62:5670048986634686922786117600 100:63:3420029547493938143902737600 100:64:1977204582144932989443770175 100:65:1095067153187962886461165020 100:66:580717429720889409486981450 100:67:294692427022540894366527900 100:68:143012501349174257560226775 100:69:66324638306863423796047200 100:70:29372339821610944823963760 100:71:12410847811948286545336800 100:72:4998813702034726525205100 100:73:1917353200780443050763600 100:74:699574816500972464467800 100:75:242519269720337121015504 100:76:79776075565900368755100 100:77:24865270306254660391200 100:78:7332066885177656269200 100:79:2041841411062132125600 100:80:535983370403809682970 100:81:132341572939212267400 100:82:30664510802988208300 100:83:6650134872937201800 100:84:1345860629046814650 100:85:253338471349988640 100:86:44186942677323600 100:87:7110542499799200 100:88:1050421051106700 100:89:141629804643600 100:90:17310309456440 100:91:1902231808400 100:92:186087894300 100:93:16007560800 100:94:1192052400 100:95:75287520 100:96:3921225 100:97:161700 100:98:4950 100:99:100 100:100:1 # binomial(101, k) for 0 <= k <= 101 101:0:1 101:1:101 101:2:5050 101:3:166650 101:4:4082925 101:5:79208745 101:6:1267339920 101:7:17199613200 101:8:202095455100 101:9:2088319702700 101:10:19212541264840 101:11:158940114100040 101:12:1192050855750300 101:13:8160963550905900 101:14:51297485177122800 101:15:297525414027312240 101:16:1599199100396803290 101:17:7995995501984016450 101:18:37314645675925410100 101:19:163006083742200475700 101:20:668324943343021950370 101:21:2577824781465941808570 101:22:9373908296239788394800 101:23:32197337191432316660400 101:24:104641345872155029146300 101:25:322295345286237489770604 101:26:942094086221309585483304 101:27:2616928017281415515231400 101:28:6916166902815169575968700 101:29:17409661513983013070541900 101:30:41783187633559231369300560 101:31:95696978128474368620010960 101:32:209337139656037681356273975 101:33:437704928371715151926754675 101:34:875409856743430303853509350 101:35:1675784582908852295948146470 101:36:3072271735332895875904935195 101:37:5397234129638871133346507775 101:38:9090078534128625066688855200 101:39:14683973016669317415420458400 101:40:22760158175837441993901710520 101:41:33862674359172779551902544920 101:42:48375249084532542217003635600 101:43:66375341767149302111702662800 101:44:87494768693060443692698964600 101:45:110826707011209895344085355160 101:46:134919469404951176940625649760 101:47:157884485473879036845412994400 101:48:177620046158113916451089618700 101:49:192119641762857909630770403900 101:50:199804427433372226016001220056 101:51:199804427433372226016001220056 101:52:192119641762857909630770403900 101:53:177620046158113916451089618700 101:54:157884485473879036845412994400 101:55:134919469404951176940625649760 101:56:110826707011209895344085355160 101:57:87494768693060443692698964600 101:58:66375341767149302111702662800 101:59:48375249084532542217003635600 101:60:33862674359172779551902544920 101:61:22760158175837441993901710520 101:62:14683973016669317415420458400 101:63:9090078534128625066688855200 101:64:5397234129638871133346507775 101:65:3072271735332895875904935195 101:66:1675784582908852295948146470 101:67:875409856743430303853509350 101:68:437704928371715151926754675 101:69:209337139656037681356273975 101:70:95696978128474368620010960 101:71:41783187633559231369300560 101:72:17409661513983013070541900 101:73:6916166902815169575968700 101:74:2616928017281415515231400 101:75:942094086221309585483304 101:76:322295345286237489770604 101:77:104641345872155029146300 101:78:32197337191432316660400 101:79:9373908296239788394800 101:80:2577824781465941808570 101:81:668324943343021950370 101:82:163006083742200475700 101:83:37314645675925410100 101:84:7995995501984016450 101:85:1599199100396803290 101:86:297525414027312240 101:87:51297485177122800 101:88:8160963550905900 101:89:1192050855750300 101:90:158940114100040 101:91:19212541264840 101:92:2088319702700 101:93:202095455100 101:94:17199613200 101:95:1267339920 101:96:79208745 101:97:4082925 101:98:166650 101:99:5050 101:100:101 101:101:1 # binomial(102, k) for 0 <= k <= 102 102:0:1 102:1:102 102:2:5151 102:3:171700 102:4:4249575 102:5:83291670 102:6:1346548665 102:7:18466953120 102:8:219295068300 102:9:2290415157800 102:10:21300860967540 102:11:178152655364880 102:12:1350990969850340 102:13:9353014406656200 102:14:59458448728028700 102:15:348822899204435040 102:16:1896724514424115530 102:17:9595194602380819740 102:18:45310641177909426550 102:19:200320729418125885800 102:20:831331027085222426070 102:21:3246149724808963758940 102:22:11951733077705730203370 102:23:41571245487672105055200 102:24:136838683063587345806700 102:25:426936691158392518916904 102:26:1264389431507547075253908 102:27:3559022103502725100714704 102:28:9533094920096585091200100 102:29:24325828416798182646510600 102:30:59192849147542244439842460 102:31:137480165762033599989311520 102:32:305034117784512049976284935 102:33:647042068027752833283028650 102:34:1313114785115145455780264025 102:35:2551194439652282599801655820 102:36:4748056318241748171853081665 102:37:8469505864971767009251442970 102:38:14487312663767496200035362975 102:39:23774051550797942482109313600 102:40:37444131192506759409322168920 102:41:56622832535010221545804255440 102:42:82237923443705321768906180520 102:43:114750590851681844328706298400 102:44:153870110460209745804401627400 102:45:198321475704270339036784319760 102:46:245746176416161072284711004920 102:47:292803954878830213786038644160 102:48:335504531631992953296502613100 102:49:369739687920971826081860022600 102:50:391924069196230135646771623956 102:51:399608854866744452032002440112 102:52:391924069196230135646771623956 102:53:369739687920971826081860022600 102:54:335504531631992953296502613100 102:55:292803954878830213786038644160 102:56:245746176416161072284711004920 102:57:198321475704270339036784319760 102:58:153870110460209745804401627400 102:59:114750590851681844328706298400 102:60:82237923443705321768906180520 102:61:56622832535010221545804255440 102:62:37444131192506759409322168920 102:63:23774051550797942482109313600 102:64:14487312663767496200035362975 102:65:8469505864971767009251442970 102:66:4748056318241748171853081665 102:67:2551194439652282599801655820 102:68:1313114785115145455780264025 102:69:647042068027752833283028650 102:70:305034117784512049976284935 102:71:137480165762033599989311520 102:72:59192849147542244439842460 102:73:24325828416798182646510600 102:74:9533094920096585091200100 102:75:3559022103502725100714704 102:76:1264389431507547075253908 102:77:426936691158392518916904 102:78:136838683063587345806700 102:79:41571245487672105055200 102:80:11951733077705730203370 102:81:3246149724808963758940 102:82:831331027085222426070 102:83:200320729418125885800 102:84:45310641177909426550 102:85:9595194602380819740 102:86:1896724514424115530 102:87:348822899204435040 102:88:59458448728028700 102:89:9353014406656200 102:90:1350990969850340 102:91:178152655364880 102:92:21300860967540 102:93:2290415157800 102:94:219295068300 102:95:18466953120 102:96:1346548665 102:97:83291670 102:98:4249575 102:99:171700 102:100:5151 102:101:102 102:102:1 # binomial(103, k) for 0 <= k <= 103 103:0:1 103:1:103 103:2:5253 103:3:176851 103:4:4421275 103:5:87541245 103:6:1429840335 103:7:19813501785 103:8:237762021420 103:9:2509710226100 103:10:23591276125340 103:11:199453516332420 103:12:1529143625215220 103:13:10704005376506540 103:14:68811463134684900 103:15:408281347932463740 103:16:2245547413628550570 103:17:11491919116804935270 103:18:54905835780290246290 103:19:245631370596035312350 103:20:1031651756503348311870 103:21:4077480751894186185010 103:22:15197882802514693962310 103:23:53522978565377835258570 103:24:178409928551259450861900 103:25:563775374221979864723604 103:26:1691326122665939594170812 103:27:4823411535010272175968612 103:28:13092117023599310191914804 103:29:33858923336894767737710700 103:30:83518677564340427086353060 103:31:196673014909575844429153980 103:32:442514283546545649965596455 103:33:952076185812264883259313585 103:34:1960156853142898289063292675 103:35:3864309224767428055581919845 103:36:7299250757894030771654737485 103:37:13217562183213515181104524635 103:38:22956818528739263209286805945 103:39:38261364214565438682144676575 103:40:61218182743304701891431482520 103:41:94066963727516980955126424360 103:42:138860755978715543314710435960 103:43:196988514295387166097612478920 103:44:268620701311891590133107925800 103:45:352191586164480084841185947160 103:46:444067652120431411321495324680 103:47:538550131294991286070749649080 103:48:628308486510823167082541257260 103:49:705244219552964779378362635700 103:50:761663757117201961728631646556 103:51:791532924062974587678774064068 103:52:791532924062974587678774064068 103:53:761663757117201961728631646556 103:54:705244219552964779378362635700 103:55:628308486510823167082541257260 103:56:538550131294991286070749649080 103:57:444067652120431411321495324680 103:58:352191586164480084841185947160 103:59:268620701311891590133107925800 103:60:196988514295387166097612478920 103:61:138860755978715543314710435960 103:62:94066963727516980955126424360 103:63:61218182743304701891431482520 103:64:38261364214565438682144676575 103:65:22956818528739263209286805945 103:66:13217562183213515181104524635 103:67:7299250757894030771654737485 103:68:3864309224767428055581919845 103:69:1960156853142898289063292675 103:70:952076185812264883259313585 103:71:442514283546545649965596455 103:72:196673014909575844429153980 103:73:83518677564340427086353060 103:74:33858923336894767737710700 103:75:13092117023599310191914804 103:76:4823411535010272175968612 103:77:1691326122665939594170812 103:78:563775374221979864723604 103:79:178409928551259450861900 103:80:53522978565377835258570 103:81:15197882802514693962310 103:82:4077480751894186185010 103:83:1031651756503348311870 103:84:245631370596035312350 103:85:54905835780290246290 103:86:11491919116804935270 103:87:2245547413628550570 103:88:408281347932463740 103:89:68811463134684900 103:90:10704005376506540 103:91:1529143625215220 103:92:199453516332420 103:93:23591276125340 103:94:2509710226100 103:95:237762021420 103:96:19813501785 103:97:1429840335 103:98:87541245 103:99:4421275 103:100:176851 103:101:5253 103:102:103 103:103:1 # binomial(104, k) for 0 <= k <= 104 104:0:1 104:1:104 104:2:5356 104:3:182104 104:4:4598126 104:5:91962520 104:6:1517381580 104:7:21243342120 104:8:257575523205 104:9:2747472247520 104:10:26100986351440 104:11:223044792457760 104:12:1728597141547640 104:13:12233149001721760 104:14:79515468511191440 104:15:477092811067148640 104:16:2653828761561014310 104:17:13737466530433485840 104:18:66397754897095181560 104:19:300537206376325558640 104:20:1277283127099383624220 104:21:5109132508397534496880 104:22:19275363554408880147320 104:23:68720861367892529220880 104:24:231932907116637286120470 104:25:742185302773239315585504 104:26:2255101496887919458894416 104:27:6514737657676211770139424 104:28:17915528558609582367883416 104:29:46951040360494077929625504 104:30:117377600901235194824063760 104:31:280191692473916271515507040 104:32:639187298456121494394750435 104:33:1394590469358810533224910040 104:34:2912233038955163172322606260 104:35:5824466077910326344645212520 104:36:11163559982661458827236657330 104:37:20516812941107545952759262120 104:38:36174380711952778390391330580 104:39:61218182743304701891431482520 104:40:99479546957870140573576159095 104:41:155285146470821682846557906880 104:42:232927719706232524269836860320 104:43:335849270274102709412322914880 104:44:465609215607278756230720404720 104:45:620812287476371674974293872960 104:46:796259238284911496162681271840 104:47:982617783415422697392244973760 104:48:1166858617805814453153290906340 104:49:1333552706063787946460903892960 104:50:1466907976670166741106994282256 104:51:1553196681180176549407405710624 104:52:1583065848125949175357548128136 104:53:1553196681180176549407405710624 104:54:1466907976670166741106994282256 104:55:1333552706063787946460903892960 104:56:1166858617805814453153290906340 104:57:982617783415422697392244973760 104:58:796259238284911496162681271840 104:59:620812287476371674974293872960 104:60:465609215607278756230720404720 104:61:335849270274102709412322914880 104:62:232927719706232524269836860320 104:63:155285146470821682846557906880 104:64:99479546957870140573576159095 104:65:61218182743304701891431482520 104:66:36174380711952778390391330580 104:67:20516812941107545952759262120 104:68:11163559982661458827236657330 104:69:5824466077910326344645212520 104:70:2912233038955163172322606260 104:71:1394590469358810533224910040 104:72:639187298456121494394750435 104:73:280191692473916271515507040 104:74:117377600901235194824063760 104:75:46951040360494077929625504 104:76:17915528558609582367883416 104:77:6514737657676211770139424 104:78:2255101496887919458894416 104:79:742185302773239315585504 104:80:231932907116637286120470 104:81:68720861367892529220880 104:82:19275363554408880147320 104:83:5109132508397534496880 104:84:1277283127099383624220 104:85:300537206376325558640 104:86:66397754897095181560 104:87:13737466530433485840 104:88:2653828761561014310 104:89:477092811067148640 104:90:79515468511191440 104:91:12233149001721760 104:92:1728597141547640 104:93:223044792457760 104:94:26100986351440 104:95:2747472247520 104:96:257575523205 104:97:21243342120 104:98:1517381580 104:99:91962520 104:100:4598126 104:101:182104 104:102:5356 104:103:104 104:104:1 # binomial(105, k) for 0 <= k <= 105 105:0:1 105:1:105 105:2:5460 105:3:187460 105:4:4780230 105:5:96560646 105:6:1609344100 105:7:22760723700 105:8:278818865325 105:9:3005047770725 105:10:28848458598960 105:11:249145778809200 105:12:1951641934005400 105:13:13961746143269400 105:14:91748617512913200 105:15:556608279578340080 105:16:3130921572628162950 105:17:16391295291994500150 105:18:80135221427528667400 105:19:366934961273420740200 105:20:1577820333475709182860 105:21:6386415635496918121100 105:22:24384496062806414644200 105:23:87996224922301409368200 105:24:300653768484529815341350 105:25:974118209889876601705974 105:26:2997286799661158774479920 105:27:8769839154564131229033840 105:28:24430266216285794138022840 105:29:64866568919103660297508920 105:30:164328641261729272753689264 105:31:397569293375151466339570800 105:32:919378990930037765910257475 105:33:2033777767814932027619660475 105:34:4306823508313973705547516300 105:35:8736699116865489516967818780 105:36:16988026060571785171881869850 105:37:31680372923769004779995919450 105:38:56691193653060324343150592700 105:39:97392563455257480281822813100 105:40:160697729701174842465007641615 105:41:254764693428691823420134065975 105:42:388212866177054207116394767200 105:43:568776989980335233682159775200 105:44:801458485881381465643043319600 105:45:1086421503083650431205014277680 105:46:1417071525761283171136975144800 105:47:1778877021700334193554926245600 105:48:2149476401221237150545535880100 105:49:2500411323869602399614194799300 105:50:2800460682733954687567898175216 105:51:3020104657850343290514399992880 105:52:3136262529306125724764953838760 105:53:3136262529306125724764953838760 105:54:3020104657850343290514399992880 105:55:2800460682733954687567898175216 105:56:2500411323869602399614194799300 105:57:2149476401221237150545535880100 105:58:1778877021700334193554926245600 105:59:1417071525761283171136975144800 105:60:1086421503083650431205014277680 105:61:801458485881381465643043319600 105:62:568776989980335233682159775200 105:63:388212866177054207116394767200 105:64:254764693428691823420134065975 105:65:160697729701174842465007641615 105:66:97392563455257480281822813100 105:67:56691193653060324343150592700 105:68:31680372923769004779995919450 105:69:16988026060571785171881869850 105:70:8736699116865489516967818780 105:71:4306823508313973705547516300 105:72:2033777767814932027619660475 105:73:919378990930037765910257475 105:74:397569293375151466339570800 105:75:164328641261729272753689264 105:76:64866568919103660297508920 105:77:24430266216285794138022840 105:78:8769839154564131229033840 105:79:2997286799661158774479920 105:80:974118209889876601705974 105:81:300653768484529815341350 105:82:87996224922301409368200 105:83:24384496062806414644200 105:84:6386415635496918121100 105:85:1577820333475709182860 105:86:366934961273420740200 105:87:80135221427528667400 105:88:16391295291994500150 105:89:3130921572628162950 105:90:556608279578340080 105:91:91748617512913200 105:92:13961746143269400 105:93:1951641934005400 105:94:249145778809200 105:95:28848458598960 105:96:3005047770725 105:97:278818865325 105:98:22760723700 105:99:1609344100 105:100:96560646 105:101:4780230 105:102:187460 105:103:5460 105:104:105 105:105:1 # binomial(106, k) for 0 <= k <= 106 106:0:1 106:1:106 106:2:5565 106:3:192920 106:4:4967690 106:5:101340876 106:6:1705904746 106:7:24370067800 106:8:301579589025 106:9:3283866636050 106:10:31853506369685 106:11:277994237408160 106:12:2200787712814600 106:13:15913388077274800 106:14:105710363656182600 106:15:648356897091253280 106:16:3687529852206503030 106:17:19522216864622663100 106:18:96526516719523167550 106:19:447070182700949407600 106:20:1944755294749129923060 106:21:7964235968972627303960 106:22:30770911698303332765300 106:23:112380720985107824012400 106:24:388649993406831224709550 106:25:1274771978374406417047324 106:26:3971405009551035376185894 106:27:11767125954225290003513760 106:28:33200105370849925367056680 106:29:89296835135389454435531760 106:30:229195210180832933051198184 106:31:561897934636880739093260064 106:32:1316948284305189232249828275 106:33:2953156758744969793529917950 106:34:6340601276128905733167176775 106:35:13043522625179463222515335080 106:36:25724725177437274688849688630 106:37:48668398984340789951877789300 106:38:88371566576829329123146512150 106:39:154083757108317804624973405800 106:40:258090293156432322746830454715 106:41:415462423129866665885141707590 106:42:642977559605746030536528833175 106:43:956989856157389440798554542400 106:44:1370235475861716699325203094800 106:45:1887879988965031896848057597280 106:46:2503493028844933602341989422480 106:47:3195948547461617364691901390400 106:48:3928353422921571344100462125700 106:49:4649887725090839550159730679400 106:50:5300872006603557087182092974516 106:51:5820565340584297978082298168096 106:52:6156367187156469015279353831640 106:53:6272525058612251449529907677520 106:54:6156367187156469015279353831640 106:55:5820565340584297978082298168096 106:56:5300872006603557087182092974516 106:57:4649887725090839550159730679400 106:58:3928353422921571344100462125700 106:59:3195948547461617364691901390400 106:60:2503493028844933602341989422480 106:61:1887879988965031896848057597280 106:62:1370235475861716699325203094800 106:63:956989856157389440798554542400 106:64:642977559605746030536528833175 106:65:415462423129866665885141707590 106:66:258090293156432322746830454715 106:67:154083757108317804624973405800 106:68:88371566576829329123146512150 106:69:48668398984340789951877789300 106:70:25724725177437274688849688630 106:71:13043522625179463222515335080 106:72:6340601276128905733167176775 106:73:2953156758744969793529917950 106:74:1316948284305189232249828275 106:75:561897934636880739093260064 106:76:229195210180832933051198184 106:77:89296835135389454435531760 106:78:33200105370849925367056680 106:79:11767125954225290003513760 106:80:3971405009551035376185894 106:81:1274771978374406417047324 106:82:388649993406831224709550 106:83:112380720985107824012400 106:84:30770911698303332765300 106:85:7964235968972627303960 106:86:1944755294749129923060 106:87:447070182700949407600 106:88:96526516719523167550 106:89:19522216864622663100 106:90:3687529852206503030 106:91:648356897091253280 106:92:105710363656182600 106:93:15913388077274800 106:94:2200787712814600 106:95:277994237408160 106:96:31853506369685 106:97:3283866636050 106:98:301579589025 106:99:24370067800 106:100:1705904746 106:101:101340876 106:102:4967690 106:103:192920 106:104:5565 106:105:106 106:106:1 # binomial(107, k) for 0 <= k <= 107 107:0:1 107:1:107 107:2:5671 107:3:198485 107:4:5160610 107:5:106308566 107:6:1807245622 107:7:26075972546 107:8:325949656825 107:9:3585446225075 107:10:35137373005735 107:11:309847743777845 107:12:2478781950222760 107:13:18114175790089400 107:14:121623751733457400 107:15:754067260747435880 107:16:4335886749297756310 107:17:23209746716829166130 107:18:116048733584145830650 107:19:543596699420472575150 107:20:2391825477450079330660 107:21:9908991263721757227020 107:22:38735147667275960069260 107:23:143151632683411156777700 107:24:501030714391939048721950 107:25:1663421971781237641756874 107:26:5246176987925441793233218 107:27:15738530963776325379699654 107:28:44967231325075215370570440 107:29:122496940506239379802588440 107:30:318492045316222387486729944 107:31:791093144817713672144458248 107:32:1878846218942069971343088339 107:33:4270105043050159025779746225 107:34:9293758034873875526697094725 107:35:19384123901308368955682511855 107:36:38768247802616737911365023710 107:37:74393124161778064640727477930 107:38:137039965561170119075024301450 107:39:242455323685147133748119917950 107:40:412174050264750127371803860515 107:41:673552716286298988631972162305 107:42:1058439982735612696421670540765 107:43:1599967415763135471335083375575 107:44:2327225332019106140123757637200 107:45:3258115464826748596173260692080 107:46:4391373017809965499190047019760 107:47:5699441576306550967033890812880 107:48:7124301970383188708792363516100 107:49:8578241148012410894260192805100 107:50:9950759731694396637341823653916 107:51:11121437347187855065264391142612 107:52:11976932527740766993361651999736 107:53:12428892245768720464809261509160 107:54:12428892245768720464809261509160 107:55:11976932527740766993361651999736 107:56:11121437347187855065264391142612 107:57:9950759731694396637341823653916 107:58:8578241148012410894260192805100 107:59:7124301970383188708792363516100 107:60:5699441576306550967033890812880 107:61:4391373017809965499190047019760 107:62:3258115464826748596173260692080 107:63:2327225332019106140123757637200 107:64:1599967415763135471335083375575 107:65:1058439982735612696421670540765 107:66:673552716286298988631972162305 107:67:412174050264750127371803860515 107:68:242455323685147133748119917950 107:69:137039965561170119075024301450 107:70:74393124161778064640727477930 107:71:38768247802616737911365023710 107:72:19384123901308368955682511855 107:73:9293758034873875526697094725 107:74:4270105043050159025779746225 107:75:1878846218942069971343088339 107:76:791093144817713672144458248 107:77:318492045316222387486729944 107:78:122496940506239379802588440 107:79:44967231325075215370570440 107:80:15738530963776325379699654 107:81:5246176987925441793233218 107:82:1663421971781237641756874 107:83:501030714391939048721950 107:84:143151632683411156777700 107:85:38735147667275960069260 107:86:9908991263721757227020 107:87:2391825477450079330660 107:88:543596699420472575150 107:89:116048733584145830650 107:90:23209746716829166130 107:91:4335886749297756310 107:92:754067260747435880 107:93:121623751733457400 107:94:18114175790089400 107:95:2478781950222760 107:96:309847743777845 107:97:35137373005735 107:98:3585446225075 107:99:325949656825 107:100:26075972546 107:101:1807245622 107:102:106308566 107:103:5160610 107:104:198485 107:105:5671 107:106:107 107:107:1 # binomial(108, k) for 0 <= k <= 108 108:0:1 108:1:108 108:2:5778 108:3:204156 108:4:5359095 108:5:111469176 108:6:1913554188 108:7:27883218168 108:8:352025629371 108:9:3911395881900 108:10:38722819230810 108:11:344985116783580 108:12:2788629694000605 108:13:20592957740312160 108:14:139737927523546800 108:15:875691012480893280 108:16:5089954010045192190 108:17:27545633466126922440 108:18:139258480300974996780 108:19:659645433004618405800 108:20:2935422176870551905810 108:21:12300816741171836557680 108:22:48644138930997717296280 108:23:181886780350687116846960 108:24:644182347075350205499650 108:25:2164452686173176690478824 108:26:6909598959706679434990092 108:27:20984707951701767172932872 108:28:60705762288851540750270094 108:29:167464171831314595173158880 108:30:440988985822461767289318384 108:31:1109585190133936059631188192 108:32:2669939363759783643487546587 108:33:6148951261992228997122834564 108:34:13563863077924034552476840950 108:35:28677881936182244482379606580 108:36:58152371703925106867047535565 108:37:113161371964394802552092501640 108:38:211433089722948183715751779380 108:39:379495289246317252823144219400 108:40:654629373949897261119923778465 108:41:1085726766551049116003776022820 108:42:1731992699021911685053642703070 108:43:2658407398498748167756753916340 108:44:3927192747782241611458841012775 108:45:5585340796845854736297018329280 108:46:7649488482636714095363307711840 108:47:10090814594116516466223937832640 108:48:12823743546689739675826254328980 108:49:15702543118395599603052556321200 108:50:18529000879706807531602016459016 108:51:21072197078882251702606214796528 108:52:23098369874928622058626043142348 108:53:24405824773509487458170913508896 108:54:24857784491537440929618523018320 108:55:24405824773509487458170913508896 108:56:23098369874928622058626043142348 108:57:21072197078882251702606214796528 108:58:18529000879706807531602016459016 108:59:15702543118395599603052556321200 108:60:12823743546689739675826254328980 108:61:10090814594116516466223937832640 108:62:7649488482636714095363307711840 108:63:5585340796845854736297018329280 108:64:3927192747782241611458841012775 108:65:2658407398498748167756753916340 108:66:1731992699021911685053642703070 108:67:1085726766551049116003776022820 108:68:654629373949897261119923778465 108:69:379495289246317252823144219400 108:70:211433089722948183715751779380 108:71:113161371964394802552092501640 108:72:58152371703925106867047535565 108:73:28677881936182244482379606580 108:74:13563863077924034552476840950 108:75:6148951261992228997122834564 108:76:2669939363759783643487546587 108:77:1109585190133936059631188192 108:78:440988985822461767289318384 108:79:167464171831314595173158880 108:80:60705762288851540750270094 108:81:20984707951701767172932872 108:82:6909598959706679434990092 108:83:2164452686173176690478824 108:84:644182347075350205499650 108:85:181886780350687116846960 108:86:48644138930997717296280 108:87:12300816741171836557680 108:88:2935422176870551905810 108:89:659645433004618405800 108:90:139258480300974996780 108:91:27545633466126922440 108:92:5089954010045192190 108:93:875691012480893280 108:94:139737927523546800 108:95:20592957740312160 108:96:2788629694000605 108:97:344985116783580 108:98:38722819230810 108:99:3911395881900 108:100:352025629371 108:101:27883218168 108:102:1913554188 108:103:111469176 108:104:5359095 108:105:204156 108:106:5778 108:107:108 108:108:1 # binomial(109, k) for 0 <= k <= 109 109:0:1 109:1:109 109:2:5886 109:3:209934 109:4:5563251 109:5:116828271 109:6:2025023364 109:7:29796772356 109:8:379908847539 109:9:4263421511271 109:10:42634215112710 109:11:383707936014390 109:12:3133614810784185 109:13:23381587434312765 109:14:160330885263858960 109:15:1015428940004440080 109:16:5965645022526085470 109:17:32635587476172114630 109:18:166804113767101919220 109:19:798903913305593402580 109:20:3595067609875170311610 109:21:15236238918042388463490 109:22:60944955672169553853960 109:23:230530919281684834143240 109:24:826069127426037322346610 109:25:2808635033248526895978474 109:26:9074051645879856125468916 109:27:27894306911408446607922964 109:28:81690470240553307923202966 109:29:228169934120166135923428974 109:30:608453157653776362462477264 109:31:1550574175956397826920506576 109:32:3779524553893719703118734779 109:33:8818890625752012640610381151 109:34:19712814339916263549599675514 109:35:42241745014106279034856447530 109:36:86830253640107351349427142145 109:37:171313743668319909419140037205 109:38:324594461687342986267844281020 109:39:590928378969265436538895998780 109:40:1034124663196214513943067997865 109:41:1740356140500946377123699801285 109:42:2817719465572960801057418725890 109:43:4390400097520659852810396619410 109:44:6585600146280989779215594929115 109:45:9512533544628096347755859342055 109:46:13234829279482568831660326041120 109:47:17740303076753230561587245544480 109:48:22914558140806256142050192161620 109:49:28526286665085339278878810650180 109:50:34231543998102407134654572780216 109:51:39601197958589059234208231255544 109:52:44170566953810873761232257938876 109:53:47504194648438109516796956651244 109:54:49263609265046928387789436527216 109:55:49263609265046928387789436527216 109:56:47504194648438109516796956651244 109:57:44170566953810873761232257938876 109:58:39601197958589059234208231255544 109:59:34231543998102407134654572780216 109:60:28526286665085339278878810650180 109:61:22914558140806256142050192161620 109:62:17740303076753230561587245544480 109:63:13234829279482568831660326041120 109:64:9512533544628096347755859342055 109:65:6585600146280989779215594929115 109:66:4390400097520659852810396619410 109:67:2817719465572960801057418725890 109:68:1740356140500946377123699801285 109:69:1034124663196214513943067997865 109:70:590928378969265436538895998780 109:71:324594461687342986267844281020 109:72:171313743668319909419140037205 109:73:86830253640107351349427142145 109:74:42241745014106279034856447530 109:75:19712814339916263549599675514 109:76:8818890625752012640610381151 109:77:3779524553893719703118734779 109:78:1550574175956397826920506576 109:79:608453157653776362462477264 109:80:228169934120166135923428974 109:81:81690470240553307923202966 109:82:27894306911408446607922964 109:83:9074051645879856125468916 109:84:2808635033248526895978474 109:85:826069127426037322346610 109:86:230530919281684834143240 109:87:60944955672169553853960 109:88:15236238918042388463490 109:89:3595067609875170311610 109:90:798903913305593402580 109:91:166804113767101919220 109:92:32635587476172114630 109:93:5965645022526085470 109:94:1015428940004440080 109:95:160330885263858960 109:96:23381587434312765 109:97:3133614810784185 109:98:383707936014390 109:99:42634215112710 109:100:4263421511271 109:101:379908847539 109:102:29796772356 109:103:2025023364 109:104:116828271 109:105:5563251 109:106:209934 109:107:5886 109:108:109 109:109:1 # binomial(110, k) for 0 <= k <= 110 110:0:1 110:1:110 110:2:5995 110:3:215820 110:4:5773185 110:5:122391522 110:6:2141851635 110:7:31821795720 110:8:409705619895 110:9:4643330358810 110:10:46897636623981 110:11:426342151127100 110:12:3517322746798575 110:13:26515202245096950 110:14:183712472698171725 110:15:1175759825268299040 110:16:6981073962530525550 110:17:38601232498698200100 110:18:199439701243274033850 110:19:965708027072695321800 110:20:4393971523180763714190 110:21:18831306527917558775100 110:22:76181194590211942317450 110:23:291475874953854387997200 110:24:1056600046707722156489850 110:25:3634704160674564218325084 110:26:11882686679128383021447390 110:27:36968358557288302733391880 110:28:109584777151961754531125930 110:29:309860404360719443846631940 110:30:836623091773942498385906238 110:31:2159027333610174189382983840 110:32:5330098729850117530039241355 110:33:12598415179645732343729115930 110:34:28531704965668276190210056665 110:35:61954559354022542584456123044 110:36:129071998654213630384283589675 110:37:258143997308427260768567179350 110:38:495908205355662895686984318225 110:39:915522840656608422806740279800 110:40:1625053042165479950481963996645 110:41:2774480803697160891066767799150 110:42:4558075606073907178181118527175 110:43:7208119563093620653867815345300 110:44:10976000243801649632025991548525 110:45:16098133690909086126971454271170 110:46:22747362824110665179416185383175 110:47:30975132356235799393247571585600 110:48:40654861217559486703637437706100 110:49:51440844805891595420929002811800 110:50:62757830663187746413533383430396 110:51:73832741956691466368862804035760 110:52:83771764912399932995440489194420 110:53:91674761602248983278029214590120 110:54:96767803913485037904586393178460 110:55:98527218530093856775578873054432 110:56:96767803913485037904586393178460 110:57:91674761602248983278029214590120 110:58:83771764912399932995440489194420 110:59:73832741956691466368862804035760 110:60:62757830663187746413533383430396 110:61:51440844805891595420929002811800 110:62:40654861217559486703637437706100 110:63:30975132356235799393247571585600 110:64:22747362824110665179416185383175 110:65:16098133690909086126971454271170 110:66:10976000243801649632025991548525 110:67:7208119563093620653867815345300 110:68:4558075606073907178181118527175 110:69:2774480803697160891066767799150 110:70:1625053042165479950481963996645 110:71:915522840656608422806740279800 110:72:495908205355662895686984318225 110:73:258143997308427260768567179350 110:74:129071998654213630384283589675 110:75:61954559354022542584456123044 110:76:28531704965668276190210056665 110:77:12598415179645732343729115930 110:78:5330098729850117530039241355 110:79:2159027333610174189382983840 110:80:836623091773942498385906238 110:81:309860404360719443846631940 110:82:109584777151961754531125930 110:83:36968358557288302733391880 110:84:11882686679128383021447390 110:85:3634704160674564218325084 110:86:1056600046707722156489850 110:87:291475874953854387997200 110:88:76181194590211942317450 110:89:18831306527917558775100 110:90:4393971523180763714190 110:91:965708027072695321800 110:92:199439701243274033850 110:93:38601232498698200100 110:94:6981073962530525550 110:95:1175759825268299040 110:96:183712472698171725 110:97:26515202245096950 110:98:3517322746798575 110:99:426342151127100 110:100:46897636623981 110:101:4643330358810 110:102:409705619895 110:103:31821795720 110:104:2141851635 110:105:122391522 110:106:5773185 110:107:215820 110:108:5995 110:109:110 110:110:1 # binomial(111, k) for 0 <= k <= 111 111:0:1 111:1:111 111:2:6105 111:3:221815 111:4:5989005 111:5:128164707 111:6:2264243157 111:7:33963647355 111:8:441527415615 111:9:5053035978705 111:10:51540966982791 111:11:473239787751081 111:12:3943664897925675 111:13:30032524991895525 111:14:210227674943268675 111:15:1359472297966470765 111:16:8156833787798824590 111:17:45582306461228725650 111:18:238040933741972233950 111:19:1165147728315969355650 111:20:5359679550253459035990 111:21:23225278051098322489290 111:22:95012501118129501092550 111:23:367657069544066330314650 111:24:1348075921661576544487050 111:25:4691304207382286374814934 111:26:15517390839802947239772474 111:27:48851045236416685754839270 111:28:146553135709250057264517810 111:29:419445181512681198377757870 111:30:1146483496134661942232538178 111:31:2995650425384116687768890078 111:32:7489126063460291719422225195 111:33:17928513909495849873768357285 111:34:41130120145314008533939172595 111:35:90486264319690818774666179709 111:36:191026558008236172968739712719 111:37:387215995962640891152850769025 111:38:754052202664090156455551497575 111:39:1411431046012271318493724598025 111:40:2540575882822088373288704276445 111:41:4399533845862640841548731795795 111:42:7332556409771068069247886326325 111:43:11766195169167527832048933872475 111:44:18184119806895270285893806893825 111:45:27074133934710735758997445819695 111:46:38845496515019751306387639654345 111:47:53722495180346464572663756968775 111:48:71629993573795286096885009291700 111:49:92095706023451082124566440517900 111:50:114198675469079341834462386242196 111:51:136590572619879212782396187466156 111:52:157604506869091399364303293230180 111:53:175446526514648916273469703784540 111:54:188442565515734021182615607768580 111:55:195295022443578894680165266232892 111:56:195295022443578894680165266232892 111:57:188442565515734021182615607768580 111:58:175446526514648916273469703784540 111:59:157604506869091399364303293230180 111:60:136590572619879212782396187466156 111:61:114198675469079341834462386242196 111:62:92095706023451082124566440517900 111:63:71629993573795286096885009291700 111:64:53722495180346464572663756968775 111:65:38845496515019751306387639654345 111:66:27074133934710735758997445819695 111:67:18184119806895270285893806893825 111:68:11766195169167527832048933872475 111:69:7332556409771068069247886326325 111:70:4399533845862640841548731795795 111:71:2540575882822088373288704276445 111:72:1411431046012271318493724598025 111:73:754052202664090156455551497575 111:74:387215995962640891152850769025 111:75:191026558008236172968739712719 111:76:90486264319690818774666179709 111:77:41130120145314008533939172595 111:78:17928513909495849873768357285 111:79:7489126063460291719422225195 111:80:2995650425384116687768890078 111:81:1146483496134661942232538178 111:82:419445181512681198377757870 111:83:146553135709250057264517810 111:84:48851045236416685754839270 111:85:15517390839802947239772474 111:86:4691304207382286374814934 111:87:1348075921661576544487050 111:88:367657069544066330314650 111:89:95012501118129501092550 111:90:23225278051098322489290 111:91:5359679550253459035990 111:92:1165147728315969355650 111:93:238040933741972233950 111:94:45582306461228725650 111:95:8156833787798824590 111:96:1359472297966470765 111:97:210227674943268675 111:98:30032524991895525 111:99:3943664897925675 111:100:473239787751081 111:101:51540966982791 111:102:5053035978705 111:103:441527415615 111:104:33963647355 111:105:2264243157 111:106:128164707 111:107:5989005 111:108:221815 111:109:6105 111:110:111 111:111:1 # binomial(112, k) for 0 <= k <= 112 112:0:1 112:1:112 112:2:6216 112:3:227920 112:4:6210820 112:5:134153712 112:6:2392407864 112:7:36227890512 112:8:475491062970 112:9:5494563394320 112:10:56594002961496 112:11:524780754733872 112:12:4416904685676756 112:13:33976189889821200 112:14:240260199935164200 112:15:1569699972909739440 112:16:9516306085765295355 112:17:53739140249027550240 112:18:283623240203200959600 112:19:1403188662057941589600 112:20:6524827278569428391640 112:21:28584957601351781525280 112:22:118237779169227823581840 112:23:462669570662195831407200 112:24:1715732991205642874801700 112:25:6039380129043862919301984 112:26:20208695047185233614587408 112:27:64368436076219632994611744 112:28:195404180945666743019357080 112:29:565998317221931255642275680 112:30:1565928677647343140610296048 112:31:4142133921518778630001428256 112:32:10484776488844408407191115273 112:33:25417639972956141593190582480 112:34:59058634054809858407707529880 112:35:131616384465004827308605352304 112:36:281512822327926991743405892428 112:37:578242553970877064121590481744 112:38:1141268198626731047608402266600 112:39:2165483248676361474949276095600 112:40:3952006928834359691782428874470 112:41:6940109728684729214837436072240 112:42:11732090255633708910796618122120 112:43:19098751578938595901296820198800 112:44:29950314976062798117942740766300 112:45:45258253741606006044891252713520 112:46:65919630449730487065385085474040 112:47:92567991695366215879051396623120 112:48:125352488754141750669548766260475 112:49:163725699597246368221451449809600 112:50:206294381492530423959028826760096 112:51:250789248088958554616858573708352 112:52:294195079488970612146699480696336 112:53:333051033383740315637772997014720 112:54:363889092030382937456085311553120 112:55:383737587959312915862780874001472 112:56:390590044887157789360330532465784 112:57:383737587959312915862780874001472 112:58:363889092030382937456085311553120 112:59:333051033383740315637772997014720 112:60:294195079488970612146699480696336 112:61:250789248088958554616858573708352 112:62:206294381492530423959028826760096 112:63:163725699597246368221451449809600 112:64:125352488754141750669548766260475 112:65:92567991695366215879051396623120 112:66:65919630449730487065385085474040 112:67:45258253741606006044891252713520 112:68:29950314976062798117942740766300 112:69:19098751578938595901296820198800 112:70:11732090255633708910796618122120 112:71:6940109728684729214837436072240 112:72:3952006928834359691782428874470 112:73:2165483248676361474949276095600 112:74:1141268198626731047608402266600 112:75:578242553970877064121590481744 112:76:281512822327926991743405892428 112:77:131616384465004827308605352304 112:78:59058634054809858407707529880 112:79:25417639972956141593190582480 112:80:10484776488844408407191115273 112:81:4142133921518778630001428256 112:82:1565928677647343140610296048 112:83:565998317221931255642275680 112:84:195404180945666743019357080 112:85:64368436076219632994611744 112:86:20208695047185233614587408 112:87:6039380129043862919301984 112:88:1715732991205642874801700 112:89:462669570662195831407200 112:90:118237779169227823581840 112:91:28584957601351781525280 112:92:6524827278569428391640 112:93:1403188662057941589600 112:94:283623240203200959600 112:95:53739140249027550240 112:96:9516306085765295355 112:97:1569699972909739440 112:98:240260199935164200 112:99:33976189889821200 112:100:4416904685676756 112:101:524780754733872 112:102:56594002961496 112:103:5494563394320 112:104:475491062970 112:105:36227890512 112:106:2392407864 112:107:134153712 112:108:6210820 112:109:227920 112:110:6216 112:111:112 112:112:1 # binomial(113, k) for 0 <= k <= 113 113:0:1 113:1:113 113:2:6328 113:3:234136 113:4:6438740 113:5:140364532 113:6:2526561576 113:7:38620298376 113:8:511718953482 113:9:5970054457290 113:10:62088566355816 113:11:581374757695368 113:12:4941685440410628 113:13:38393094575497956 113:14:274236389824985400 113:15:1809960172844903640 113:16:11086006058675034795 113:17:63255446334792845595 113:18:337362380452228509840 113:19:1686811902261142549200 113:20:7928015940627369981240 113:21:35109784879921209916920 113:22:146822736770579605107120 113:23:580907349831423654989040 113:24:2178402561867838706208900 113:25:7755113120249505794103684 113:26:26248075176229096533889392 113:27:84577131123404866609199152 113:28:259772617021886376013968824 113:29:761402498167597998661632760 113:30:2131926994869274396252571728 113:31:5708062599166121770611724304 113:32:14626910410363187037192543529 113:33:35902416461800550000381697753 113:34:84476274027766000000898112360 113:35:190675018519814685716312882184 113:36:413129206792931819052011244732 113:37:859755376298804055864996374172 113:38:1719510752597608111729992748344 113:39:3306751447303092522557678362200 113:40:6117490177510721166731704970070 113:41:10892116657519088906619864946710 113:42:18672199984318438125634054194360 113:43:30830841834572304812093438320920 113:44:49049066555001394019239560965100 113:45:75208568717668804162833993479820 113:46:111177884191336493110276338187560 113:47:158487622145096702944436482097160 113:48:217920480449507966548600162883595 113:49:289078188351388118891000216070075 113:50:370020081089776792180480276569696 113:51:457083629581488978575887400468448 113:52:544984327577929166763558054404688 113:53:627246112872710927784472477711056 113:54:696940125414123253093858308567840 113:55:747626679989695853318866185554592 113:56:774327632846470705223111406467256 113:57:774327632846470705223111406467256 113:58:747626679989695853318866185554592 113:59:696940125414123253093858308567840 113:60:627246112872710927784472477711056 113:61:544984327577929166763558054404688 113:62:457083629581488978575887400468448 113:63:370020081089776792180480276569696 113:64:289078188351388118891000216070075 113:65:217920480449507966548600162883595 113:66:158487622145096702944436482097160 113:67:111177884191336493110276338187560 113:68:75208568717668804162833993479820 113:69:49049066555001394019239560965100 113:70:30830841834572304812093438320920 113:71:18672199984318438125634054194360 113:72:10892116657519088906619864946710 113:73:6117490177510721166731704970070 113:74:3306751447303092522557678362200 113:75:1719510752597608111729992748344 113:76:859755376298804055864996374172 113:77:413129206792931819052011244732 113:78:190675018519814685716312882184 113:79:84476274027766000000898112360 113:80:35902416461800550000381697753 113:81:14626910410363187037192543529 113:82:5708062599166121770611724304 113:83:2131926994869274396252571728 113:84:761402498167597998661632760 113:85:259772617021886376013968824 113:86:84577131123404866609199152 113:87:26248075176229096533889392 113:88:7755113120249505794103684 113:89:2178402561867838706208900 113:90:580907349831423654989040 113:91:146822736770579605107120 113:92:35109784879921209916920 113:93:7928015940627369981240 113:94:1686811902261142549200 113:95:337362380452228509840 113:96:63255446334792845595 113:97:11086006058675034795 113:98:1809960172844903640 113:99:274236389824985400 113:100:38393094575497956 113:101:4941685440410628 113:102:581374757695368 113:103:62088566355816 113:104:5970054457290 113:105:511718953482 113:106:38620298376 113:107:2526561576 113:108:140364532 113:109:6438740 113:110:234136 113:111:6328 113:112:113 113:113:1 # binomial(114, k) for 0 <= k <= 114 114:0:1 114:1:114 114:2:6441 114:3:240464 114:4:6672876 114:5:146803272 114:6:2666926108 114:7:41146859952 114:8:550339251858 114:9:6481773410772 114:10:68058620813106 114:11:643463324051184 114:12:5523060198105996 114:13:43334780015908584 114:14:312629484400483356 114:15:2084196562669889040 114:16:12895966231519938435 114:17:74341452393467880390 114:18:400617826787021355435 114:19:2024174282713371059040 114:20:9614827842888512530440 114:21:43037800820548579898160 114:22:181932521650500815024040 114:23:727730086602003260096160 114:24:2759309911699262361197940 114:25:9933515682117344500312584 114:26:34003188296478602327993076 114:27:110825206299633963143088544 114:28:344349748145291242623167976 114:29:1021175115189484374675601584 114:30:2893329493036872394914204488 114:31:7839989594035396166864296032 114:32:20334973009529308807804267833 114:33:50529326872163737037574241282 114:34:120378690489566550001279810113 114:35:275151292547580685717210994544 114:36:603804225312746504768324126916 114:37:1272884583091735874917007618904 114:38:2579266128896412167594989122516 114:39:5026262199900700634287671110544 114:40:9424241624813813689289383332270 114:41:17009606835029810073351569916780 114:42:29564316641837527032253919141070 114:43:49503041818890742937727492515280 114:44:79879908389573698831332999286020 114:45:124257635272670198182073554444920 114:46:186386452909005297273110331667380 114:47:269665506336433196054712820284720 114:48:376408102594604669493036644980755 114:49:506998668800896085439600378953670 114:50:659098269441164911071480492639771 114:51:827103710671265770756367677038144 114:52:1002067957159418145339445454873136 114:53:1172230440450640094548030532115744 114:54:1324186238286834180878330786278896 114:55:1444566805403819106412724494122432 114:56:1521954312836166558541977592021848 114:57:1548655265692941410446222812934512 114:58:1521954312836166558541977592021848 114:59:1444566805403819106412724494122432 114:60:1324186238286834180878330786278896 114:61:1172230440450640094548030532115744 114:62:1002067957159418145339445454873136 114:63:827103710671265770756367677038144 114:64:659098269441164911071480492639771 114:65:506998668800896085439600378953670 114:66:376408102594604669493036644980755 114:67:269665506336433196054712820284720 114:68:186386452909005297273110331667380 114:69:124257635272670198182073554444920 114:70:79879908389573698831332999286020 114:71:49503041818890742937727492515280 114:72:29564316641837527032253919141070 114:73:17009606835029810073351569916780 114:74:9424241624813813689289383332270 114:75:5026262199900700634287671110544 114:76:2579266128896412167594989122516 114:77:1272884583091735874917007618904 114:78:603804225312746504768324126916 114:79:275151292547580685717210994544 114:80:120378690489566550001279810113 114:81:50529326872163737037574241282 114:82:20334973009529308807804267833 114:83:7839989594035396166864296032 114:84:2893329493036872394914204488 114:85:1021175115189484374675601584 114:86:344349748145291242623167976 114:87:110825206299633963143088544 114:88:34003188296478602327993076 114:89:9933515682117344500312584 114:90:2759309911699262361197940 114:91:727730086602003260096160 114:92:181932521650500815024040 114:93:43037800820548579898160 114:94:9614827842888512530440 114:95:2024174282713371059040 114:96:400617826787021355435 114:97:74341452393467880390 114:98:12895966231519938435 114:99:2084196562669889040 114:100:312629484400483356 114:101:43334780015908584 114:102:5523060198105996 114:103:643463324051184 114:104:68058620813106 114:105:6481773410772 114:106:550339251858 114:107:41146859952 114:108:2666926108 114:109:146803272 114:110:6672876 114:111:240464 114:112:6441 114:113:114 114:114:1 # binomial(115, k) for 0 <= k <= 115 115:0:1 115:1:115 115:2:6555 115:3:246905 115:4:6913340 115:5:153476148 115:6:2813729380 115:7:43813786060 115:8:591486111810 115:9:7032112662630 115:10:74540394223878 115:11:711521944864290 115:12:6166523522157180 115:13:48857840214014580 115:14:355964264416391940 115:15:2396826047070372396 115:16:14980162794189827475 115:17:87237418624987818825 115:18:474959279180489235825 115:19:2424792109500392414475 115:20:11639002125601883589480 115:21:52652628663437092428600 115:22:224970322471049394922200 115:23:909662608252504075120200 115:24:3487039998301265621294100 115:25:12692825593816606861510524 115:26:43936703978595946828305660 115:27:144828394596112565471081620 115:28:455174954444925205766256520 115:29:1365524863334775617298769560 115:30:3914504608226356769589806072 115:31:10733319087072268561778500520 115:32:28174962603564704974668563865 115:33:70864299881693045845378509115 115:34:170908017361730287038854051395 115:35:395529983037147235718490804657 115:36:878955517860327190485535121460 115:37:1876688808404482379685331745820 115:38:3852150711988148042511996741420 115:39:7605528328797112801882660233060 115:40:14450503824714514323577054442814 115:41:26433848459843623762640953249050 115:42:46573923476867337105605489057850 115:43:79067358460728269969981411656350 115:44:129382950208464441769060491801300 115:45:204137543662243897013406553730940 115:46:310644088181675495455183886112300 115:47:456051959245438493327823151952100 115:48:646073608931037865547749465265475 115:49:883406771395500754932637023934425 115:50:1166096938242060996511080871593441 115:51:1486201980112430681827848169677915 115:52:1829171667830683916095813131911280 115:53:2174298397610058239887475986988880 115:54:2496416678737474275426361318394640 115:55:2768753043690653287291055280401328 115:56:2966521118239985664954702086144280 115:57:3070609578529107968988200404956360 115:58:3070609578529107968988200404956360 115:59:2966521118239985664954702086144280 115:60:2768753043690653287291055280401328 115:61:2496416678737474275426361318394640 115:62:2174298397610058239887475986988880 115:63:1829171667830683916095813131911280 115:64:1486201980112430681827848169677915 115:65:1166096938242060996511080871593441 115:66:883406771395500754932637023934425 115:67:646073608931037865547749465265475 115:68:456051959245438493327823151952100 115:69:310644088181675495455183886112300 115:70:204137543662243897013406553730940 115:71:129382950208464441769060491801300 115:72:79067358460728269969981411656350 115:73:46573923476867337105605489057850 115:74:26433848459843623762640953249050 115:75:14450503824714514323577054442814 115:76:7605528328797112801882660233060 115:77:3852150711988148042511996741420 115:78:1876688808404482379685331745820 115:79:878955517860327190485535121460 115:80:395529983037147235718490804657 115:81:170908017361730287038854051395 115:82:70864299881693045845378509115 115:83:28174962603564704974668563865 115:84:10733319087072268561778500520 115:85:3914504608226356769589806072 115:86:1365524863334775617298769560 115:87:455174954444925205766256520 115:88:144828394596112565471081620 115:89:43936703978595946828305660 115:90:12692825593816606861510524 115:91:3487039998301265621294100 115:92:909662608252504075120200 115:93:224970322471049394922200 115:94:52652628663437092428600 115:95:11639002125601883589480 115:96:2424792109500392414475 115:97:474959279180489235825 115:98:87237418624987818825 115:99:14980162794189827475 115:100:2396826047070372396 115:101:355964264416391940 115:102:48857840214014580 115:103:6166523522157180 115:104:711521944864290 115:105:74540394223878 115:106:7032112662630 115:107:591486111810 115:108:43813786060 115:109:2813729380 115:110:153476148 115:111:6913340 115:112:246905 115:113:6555 115:114:115 115:115:1 # binomial(116, k) for 0 <= k <= 116 116:0:1 116:1:116 116:2:6670 116:3:253460 116:4:7160245 116:5:160389488 116:6:2967205528 116:7:46627515440 116:8:635299897870 116:9:7623598774440 116:10:81572506886508 116:11:786062339088168 116:12:6878045467021470 116:13:55024363736171760 116:14:404822104630406520 116:15:2752790311486764336 116:16:17376988841260199871 116:17:102217581419177646300 116:18:562196697805477054650 116:19:2899751388680881650300 116:20:14063794235102276003955 116:21:64291630789038976018080 116:22:277622951134486487350800 116:23:1134632930723553470042400 116:24:4396702606553769696414300 116:25:16179865592117872482804624 116:26:56629529572412553689816184 116:27:188765098574708512299387280 116:28:600003349041037771237338140 116:29:1820699817779700823065026080 116:30:5280029471561132386888575632 116:31:14647823695298625331368306592 116:32:38908281690636973536447064385 116:33:99039262485257750820047072980 116:34:241772317243423332884232560510 116:35:566438000398877522757344856052 116:36:1274485500897474426204025926117 116:37:2755644326264809570170866867280 116:38:5728839520392630422197328487240 116:39:11457679040785260844394656974480 116:40:22056032153511627125459714675874 116:41:40884352284558138086218007691864 116:42:73007771936710960868246442306900 116:43:125641281937595607075586900714200 116:44:208450308669192711739041903457650 116:45:333520493870708338782467045532240 116:46:514781631843919392468590439843240 116:47:766696047427113988783007038064400 116:48:1102125568176476358875572617217575 116:49:1529480380326538620480386489199900 116:50:2049503709637561751443717895527866 116:51:2652298918354491678338929041271356 116:52:3315373647943114597923661301589195 116:53:4003470065440742155983289118900160 116:54:4670715076347532515313837305383520 116:55:5265169722428127562717416598795968 116:56:5735274161930638952245757366545608 116:57:6037130696769093633942902491100640 116:58:6141219157058215937976400809912720 116:59:6037130696769093633942902491100640 116:60:5735274161930638952245757366545608 116:61:5265169722428127562717416598795968 116:62:4670715076347532515313837305383520 116:63:4003470065440742155983289118900160 116:64:3315373647943114597923661301589195 116:65:2652298918354491678338929041271356 116:66:2049503709637561751443717895527866 116:67:1529480380326538620480386489199900 116:68:1102125568176476358875572617217575 116:69:766696047427113988783007038064400 116:70:514781631843919392468590439843240 116:71:333520493870708338782467045532240 116:72:208450308669192711739041903457650 116:73:125641281937595607075586900714200 116:74:73007771936710960868246442306900 116:75:40884352284558138086218007691864 116:76:22056032153511627125459714675874 116:77:11457679040785260844394656974480 116:78:5728839520392630422197328487240 116:79:2755644326264809570170866867280 116:80:1274485500897474426204025926117 116:81:566438000398877522757344856052 116:82:241772317243423332884232560510 116:83:99039262485257750820047072980 116:84:38908281690636973536447064385 116:85:14647823695298625331368306592 116:86:5280029471561132386888575632 116:87:1820699817779700823065026080 116:88:600003349041037771237338140 116:89:188765098574708512299387280 116:90:56629529572412553689816184 116:91:16179865592117872482804624 116:92:4396702606553769696414300 116:93:1134632930723553470042400 116:94:277622951134486487350800 116:95:64291630789038976018080 116:96:14063794235102276003955 116:97:2899751388680881650300 116:98:562196697805477054650 116:99:102217581419177646300 116:100:17376988841260199871 116:101:2752790311486764336 116:102:404822104630406520 116:103:55024363736171760 116:104:6878045467021470 116:105:786062339088168 116:106:81572506886508 116:107:7623598774440 116:108:635299897870 116:109:46627515440 116:110:2967205528 116:111:160389488 116:112:7160245 116:113:253460 116:114:6670 116:115:116 116:116:1 # binomial(117, k) for 0 <= k <= 117 117:0:1 117:1:117 117:2:6786 117:3:260130 117:4:7413705 117:5:167549733 117:6:3127595016 117:7:49594720968 117:8:681927413310 117:9:8258898672310 117:10:89196105660948 117:11:867634845974676 117:12:7664107806109638 117:13:61902409203193230 117:14:459846468366578280 117:15:3157612416117170856 117:16:20129779152746964207 117:17:119594570260437846171 117:18:664414279224654700950 117:19:3461948086486358704950 117:20:16963545623783157654255 117:21:78355425024141252022035 117:22:341914581923525463368880 117:23:1412255881858039957393200 117:24:5531335537277323166456700 117:25:20576568198671642179218924 117:26:72809395164530426172620808 117:27:245394628147121065989203464 117:28:788768447615746283536725420 117:29:2420703166820738594302364220 117:30:7100729289340833209953601712 117:31:19927853166859757718256882224 117:32:53556105385935598867815370977 117:33:137947544175894724356494137365 117:34:340811579728681083704279633490 117:35:808210317642300855641577416562 117:36:1840923501296351948961370782169 117:37:4030129827162283996374892793397 117:38:8484483846657439992368195354520 117:39:17186518561177891266591985461720 117:40:33513711194296887969854371650354 117:41:62940384438069765211677722367738 117:42:113892124221269098954464449998764 117:43:198649053874306567943833343021100 117:44:334091590606788318814628804171850 117:45:541970802539901050521508948989890 117:46:848302125714627731251057485375480 117:47:1281477679271033381251597477907640 117:48:1868821615603590347658579655281975 117:49:2631605948503014979355959106417475 117:50:3578984089964100371924104384727766 117:51:4701802627992053429782646936799222 117:52:5967672566297606276262590342860551 117:53:7318843713383856753906950420489355 117:54:8674185141788274671297126424283680 117:55:9935884798775660078031253904179488 117:56:11000443884358766514963173965341576 117:57:11772404858699732586188659857646248 117:58:12178349853827309571919303301013360 117:59:12178349853827309571919303301013360 117:60:11772404858699732586188659857646248 117:61:11000443884358766514963173965341576 117:62:9935884798775660078031253904179488 117:63:8674185141788274671297126424283680 117:64:7318843713383856753906950420489355 117:65:5967672566297606276262590342860551 117:66:4701802627992053429782646936799222 117:67:3578984089964100371924104384727766 117:68:2631605948503014979355959106417475 117:69:1868821615603590347658579655281975 117:70:1281477679271033381251597477907640 117:71:848302125714627731251057485375480 117:72:541970802539901050521508948989890 117:73:334091590606788318814628804171850 117:74:198649053874306567943833343021100 117:75:113892124221269098954464449998764 117:76:62940384438069765211677722367738 117:77:33513711194296887969854371650354 117:78:17186518561177891266591985461720 117:79:8484483846657439992368195354520 117:80:4030129827162283996374892793397 117:81:1840923501296351948961370782169 117:82:808210317642300855641577416562 117:83:340811579728681083704279633490 117:84:137947544175894724356494137365 117:85:53556105385935598867815370977 117:86:19927853166859757718256882224 117:87:7100729289340833209953601712 117:88:2420703166820738594302364220 117:89:788768447615746283536725420 117:90:245394628147121065989203464 117:91:72809395164530426172620808 117:92:20576568198671642179218924 117:93:5531335537277323166456700 117:94:1412255881858039957393200 117:95:341914581923525463368880 117:96:78355425024141252022035 117:97:16963545623783157654255 117:98:3461948086486358704950 117:99:664414279224654700950 117:100:119594570260437846171 117:101:20129779152746964207 117:102:3157612416117170856 117:103:459846468366578280 117:104:61902409203193230 117:105:7664107806109638 117:106:867634845974676 117:107:89196105660948 117:108:8258898672310 117:109:681927413310 117:110:49594720968 117:111:3127595016 117:112:167549733 117:113:7413705 117:114:260130 117:115:6786 117:116:117 117:117:1 # binomial(118, k) for 0 <= k <= 118 118:0:1 118:1:118 118:2:6903 118:3:266916 118:4:7673835 118:5:174963438 118:6:3295144749 118:7:52722315984 118:8:731522134278 118:9:8940826085620 118:10:97455004333258 118:11:956830951635624 118:12:8531742652084314 118:13:69566517009302868 118:14:521748877569771510 118:15:3617458884483749136 118:16:23287391568864135063 118:17:139724349413184810378 118:18:784008849485092547121 118:19:4126362365711013405900 118:20:20425493710269516359205 118:21:95318970647924409676290 118:22:420270006947666715390915 118:23:1754170463781565420762080 118:24:6943591419135363123849900 118:25:26107903735948965345675624 118:26:93385963363202068351839732 118:27:318204023311651492161824272 118:28:1034163075762867349525928884 118:29:3209471614436484877839089640 118:30:9521432456161571804255965932 118:31:27028582456200590928210483936 118:32:73483958552795356586072253201 118:33:191503649561830323224309508342 118:34:478759123904575808060773770855 118:35:1149021897370981939345857050052 118:36:2649133818938652804602948198731 118:37:5871053328458635945336263575566 118:38:12514613673819723988743088147917 118:39:25671002407835331258960180816240 118:40:50700229755474779236446357112074 118:41:96454095632366653181532094018092 118:42:176832508659338864166142172366502 118:43:312541178095575666898297793019864 118:44:532740644481094886758462147192950 118:45:876062393146689369336137753161740 118:46:1390272928254528781772566434365370 118:47:2129779804985661112502654963283120 118:48:3150299294874623728910177133189615 118:49:4500427564106605327014538761699450 118:50:6210590038467115351280063491145241 118:51:8280786717956153801706751321526988 118:52:10669475194289659706045237279659773 118:53:13286516279681463030169540763349906 118:54:15993028855172131425204076844773035 118:55:18610069940563934749328380328463168 118:56:20936328683134426592994427869521064 118:57:22772848743058499101151833822987824 118:58:23950754712527042158107963158659608 118:59:24356699707654619143838606602026720 118:60:23950754712527042158107963158659608 118:61:22772848743058499101151833822987824 118:62:20936328683134426592994427869521064 118:63:18610069940563934749328380328463168 118:64:15993028855172131425204076844773035 118:65:13286516279681463030169540763349906 118:66:10669475194289659706045237279659773 118:67:8280786717956153801706751321526988 118:68:6210590038467115351280063491145241 118:69:4500427564106605327014538761699450 118:70:3150299294874623728910177133189615 118:71:2129779804985661112502654963283120 118:72:1390272928254528781772566434365370 118:73:876062393146689369336137753161740 118:74:532740644481094886758462147192950 118:75:312541178095575666898297793019864 118:76:176832508659338864166142172366502 118:77:96454095632366653181532094018092 118:78:50700229755474779236446357112074 118:79:25671002407835331258960180816240 118:80:12514613673819723988743088147917 118:81:5871053328458635945336263575566 118:82:2649133818938652804602948198731 118:83:1149021897370981939345857050052 118:84:478759123904575808060773770855 118:85:191503649561830323224309508342 118:86:73483958552795356586072253201 118:87:27028582456200590928210483936 118:88:9521432456161571804255965932 118:89:3209471614436484877839089640 118:90:1034163075762867349525928884 118:91:318204023311651492161824272 118:92:93385963363202068351839732 118:93:26107903735948965345675624 118:94:6943591419135363123849900 118:95:1754170463781565420762080 118:96:420270006947666715390915 118:97:95318970647924409676290 118:98:20425493710269516359205 118:99:4126362365711013405900 118:100:784008849485092547121 118:101:139724349413184810378 118:102:23287391568864135063 118:103:3617458884483749136 118:104:521748877569771510 118:105:69566517009302868 118:106:8531742652084314 118:107:956830951635624 118:108:97455004333258 118:109:8940826085620 118:110:731522134278 118:111:52722315984 118:112:3295144749 118:113:174963438 118:114:7673835 118:115:266916 118:116:6903 118:117:118 118:118:1 # binomial(119, k) for 0 <= k <= 119 119:0:1 119:1:119 119:2:7021 119:3:273819 119:4:7940751 119:5:182637273 119:6:3470108187 119:7:56017460733 119:8:784244450262 119:9:9672348219898 119:10:106395830418878 119:11:1054285955968882 119:12:9488573603719938 119:13:78098259661387182 119:14:591315394579074378 119:15:4139207762053520646 119:16:26904850453347884199 119:17:163011740982048945441 119:18:923733198898277357499 119:19:4910371215196105953021 119:20:24551856075980529765105 119:21:115744464358193926035495 119:22:515588977595591125067205 119:23:2174440470729232136152995 119:24:8697761882916928544611980 119:25:33051495155084328469525524 119:26:119493867099151033697515356 119:27:411589986674853560513664004 119:28:1352367099074518841687753156 119:29:4243634690199352227365018524 119:30:12730904070598056682095055572 119:31:36550014912362162732466449868 119:32:100512541008995947514282737137 119:33:264987608114625679810381761543 119:34:670262773466406131285083279197 119:35:1627781021275557747406630820907 119:36:3798155716309634743948805248783 119:37:8520187147397288749939211774297 119:38:18385667002278359934079351723483 119:39:38185616081655055247703268964157 119:40:76371232163310110495406537928314 119:41:147154325387841432417978451130166 119:42:273286604291705517347674266384594 119:43:489373686754914531064439965386366 119:44:845281822576670553656759940212814 119:45:1408803037627784256094599900354690 119:46:2266335321401218151108704187527110 119:47:3520052733240189894275221397648490 119:48:5280079099860284841412832096472735 119:49:7650726858981229055924715894889065 119:50:10711017602573720678294602252844691 119:51:14491376756423269152986814812672229 119:52:18950261912245813507751988601186761 119:53:23955991473971122736214778043009679 119:54:29279545134853594455373617608122941 119:55:34603098795736066174532457173236203 119:56:39546398623698361342322808197984232 119:57:43709177426192925694146261692508888 119:58:46723603455585541259259796981647432 119:59:48307454420181661301946569760686328 119:60:48307454420181661301946569760686328 119:61:46723603455585541259259796981647432 119:62:43709177426192925694146261692508888 119:63:39546398623698361342322808197984232 119:64:34603098795736066174532457173236203 119:65:29279545134853594455373617608122941 119:66:23955991473971122736214778043009679 119:67:18950261912245813507751988601186761 119:68:14491376756423269152986814812672229 119:69:10711017602573720678294602252844691 119:70:7650726858981229055924715894889065 119:71:5280079099860284841412832096472735 119:72:3520052733240189894275221397648490 119:73:2266335321401218151108704187527110 119:74:1408803037627784256094599900354690 119:75:845281822576670553656759940212814 119:76:489373686754914531064439965386366 119:77:273286604291705517347674266384594 119:78:147154325387841432417978451130166 119:79:76371232163310110495406537928314 119:80:38185616081655055247703268964157 119:81:18385667002278359934079351723483 119:82:8520187147397288749939211774297 119:83:3798155716309634743948805248783 119:84:1627781021275557747406630820907 119:85:670262773466406131285083279197 119:86:264987608114625679810381761543 119:87:100512541008995947514282737137 119:88:36550014912362162732466449868 119:89:12730904070598056682095055572 119:90:4243634690199352227365018524 119:91:1352367099074518841687753156 119:92:411589986674853560513664004 119:93:119493867099151033697515356 119:94:33051495155084328469525524 119:95:8697761882916928544611980 119:96:2174440470729232136152995 119:97:515588977595591125067205 119:98:115744464358193926035495 119:99:24551856075980529765105 119:100:4910371215196105953021 119:101:923733198898277357499 119:102:163011740982048945441 119:103:26904850453347884199 119:104:4139207762053520646 119:105:591315394579074378 119:106:78098259661387182 119:107:9488573603719938 119:108:1054285955968882 119:109:106395830418878 119:110:9672348219898 119:111:784244450262 119:112:56017460733 119:113:3470108187 119:114:182637273 119:115:7940751 119:116:273819 119:117:7021 119:118:119 119:119:1 # binomial(120, k) for 0 <= k <= 120 120:0:1 120:1:120 120:2:7140 120:3:280840 120:4:8214570 120:5:190578024 120:6:3652745460 120:7:59487568920 120:8:840261910995 120:9:10456592670160 120:10:116068178638776 120:11:1160681786387760 120:12:10542859559688820 120:13:87586833265107120 120:14:669413654240461560 120:15:4730523156632595024 120:16:31044058215401404845 120:17:189916591435396829640 120:18:1086744939880326302940 120:19:5834104414094383310520 120:20:29462227291176635718126 120:21:140296320434174455800600 120:22:631333441953785051102700 120:23:2690029448324823261220200 120:24:10872202353646160680764975 120:25:41749257038001257014137504 120:26:152545362254235362167040880 120:27:531083853774004594211179360 120:28:1763957085749372402201417160 120:29:5596001789273871069052771680 120:30:16974538760797408909460074096 120:31:49280918982960219414561505440 120:32:137062555921358110246749187005 120:33:365500149123621627324664498680 120:34:935250381581031811095465040740 120:35:2298043794741963878691714100104 120:36:5425936737585192491355436069690 120:37:12318342863706923493888017023080 120:38:26905854149675648684018563497780 120:39:56571283083933415181782620687640 120:40:114556848244965165743109806892471 120:41:223525557551151542913384989058480 120:42:420440929679546949765652717514760 120:43:762660291046620048412114231770960 120:44:1334655509331585084721199905599180 120:45:2254084860204454809751359840567504 120:46:3675138359029002407203304087881800 120:47:5786388054641408045383925585175600 120:48:8800131833100474735688053494121225 120:49:12930805958841513897337547991361800 120:50:18361744461554949734219318147733756 120:51:25202394358996989831281417065516920 120:52:33441638668669082660738803413858990 120:53:42906253386216936243966766644196440 120:54:53235536608824717191588395651132620 120:55:63882643930589660629906074781359144 120:56:74149497419434427516855265371220435 120:57:83255576049891287036469069890493120 120:58:90432780881778466953406058674156320 120:59:95031057875767202561206366742333760 120:60:96614908840363322603893139521372656 120:61:95031057875767202561206366742333760 120:62:90432780881778466953406058674156320 120:63:83255576049891287036469069890493120 120:64:74149497419434427516855265371220435 120:65:63882643930589660629906074781359144 120:66:53235536608824717191588395651132620 120:67:42906253386216936243966766644196440 120:68:33441638668669082660738803413858990 120:69:25202394358996989831281417065516920 120:70:18361744461554949734219318147733756 120:71:12930805958841513897337547991361800 120:72:8800131833100474735688053494121225 120:73:5786388054641408045383925585175600 120:74:3675138359029002407203304087881800 120:75:2254084860204454809751359840567504 120:76:1334655509331585084721199905599180 120:77:762660291046620048412114231770960 120:78:420440929679546949765652717514760 120:79:223525557551151542913384989058480 120:80:114556848244965165743109806892471 120:81:56571283083933415181782620687640 120:82:26905854149675648684018563497780 120:83:12318342863706923493888017023080 120:84:5425936737585192491355436069690 120:85:2298043794741963878691714100104 120:86:935250381581031811095465040740 120:87:365500149123621627324664498680 120:88:137062555921358110246749187005 120:89:49280918982960219414561505440 120:90:16974538760797408909460074096 120:91:5596001789273871069052771680 120:92:1763957085749372402201417160 120:93:531083853774004594211179360 120:94:152545362254235362167040880 120:95:41749257038001257014137504 120:96:10872202353646160680764975 120:97:2690029448324823261220200 120:98:631333441953785051102700 120:99:140296320434174455800600 120:100:29462227291176635718126 120:101:5834104414094383310520 120:102:1086744939880326302940 120:103:189916591435396829640 120:104:31044058215401404845 120:105:4730523156632595024 120:106:669413654240461560 120:107:87586833265107120 120:108:10542859559688820 120:109:1160681786387760 120:110:116068178638776 120:111:10456592670160 120:112:840261910995 120:113:59487568920 120:114:3652745460 120:115:190578024 120:116:8214570 120:117:280840 120:118:7140 120:119:120 120:120:1 # binomial(121, k) for 0 <= k <= 121 121:0:1 121:1:121 121:2:7260 121:3:287980 121:4:8495410 121:5:198792594 121:6:3843323484 121:7:63140314380 121:8:899749479915 121:9:11296854581155 121:10:126524771308936 121:11:1276749965026536 121:12:11703541346076580 121:13:98129692824795940 121:14:757000487505568680 121:15:5399936810873056584 121:16:35774581372033999869 121:17:220960649650798234485 121:18:1276661531315723132580 121:19:6920849353974709613460 121:20:35296331705271019028646 121:21:169758547725351091518726 121:22:771629762387959506903300 121:23:3321362890278608312322900 121:24:13562231801970983941985175 121:25:52621459391647417694902479 121:26:194294619292236619181178384 121:27:683629216028239956378220240 121:28:2295040939523376996412596520 121:29:7359958875023243471254188840 121:30:22570540550071279978512845776 121:31:66255457743757628324021579536 121:32:186343474904318329661310692445 121:33:502562705044979737571413685685 121:34:1300750530704653438420129539420 121:35:3233294176322995689787179140844 121:36:7723980532327156370047150169794 121:37:17744279601292115985243453092770 121:38:39224197013382572177906580520860 121:39:83477137233609063865801184185420 121:40:171128131328898580924892427580111 121:41:338082405796116708656494795950951 121:42:643966487230698492679037706573240 121:43:1183101220726166998177766949285720 121:44:2097315800378205133133314137370140 121:45:3588740369536039894472559746166684 121:46:5929223219233457216954663928449304 121:47:9461526413670410452587229673057400 121:48:14586519887741882781071979079296825 121:49:21730937791941988633025601485483025 121:50:31292550420396463631556866139095556 121:51:43564138820551939565500735213250676 121:52:58644033027666072492020220479375910 121:53:76347892054886018904705570058055430 121:54:96141789995041653435555162295329060 121:55:117118180539414377821494470432491764 121:56:138032141350024088146761340152579579 121:57:157405073469325714553324335261713555 121:58:173688356931669753989875128564649440 121:59:185463838757545669514612425416490080 121:60:191645966716130525165099506263706416 121:61:191645966716130525165099506263706416 121:62:185463838757545669514612425416490080 121:63:173688356931669753989875128564649440 121:64:157405073469325714553324335261713555 121:65:138032141350024088146761340152579579 121:66:117118180539414377821494470432491764 121:67:96141789995041653435555162295329060 121:68:76347892054886018904705570058055430 121:69:58644033027666072492020220479375910 121:70:43564138820551939565500735213250676 121:71:31292550420396463631556866139095556 121:72:21730937791941988633025601485483025 121:73:14586519887741882781071979079296825 121:74:9461526413670410452587229673057400 121:75:5929223219233457216954663928449304 121:76:3588740369536039894472559746166684 121:77:2097315800378205133133314137370140 121:78:1183101220726166998177766949285720 121:79:643966487230698492679037706573240 121:80:338082405796116708656494795950951 121:81:171128131328898580924892427580111 121:82:83477137233609063865801184185420 121:83:39224197013382572177906580520860 121:84:17744279601292115985243453092770 121:85:7723980532327156370047150169794 121:86:3233294176322995689787179140844 121:87:1300750530704653438420129539420 121:88:502562705044979737571413685685 121:89:186343474904318329661310692445 121:90:66255457743757628324021579536 121:91:22570540550071279978512845776 121:92:7359958875023243471254188840 121:93:2295040939523376996412596520 121:94:683629216028239956378220240 121:95:194294619292236619181178384 121:96:52621459391647417694902479 121:97:13562231801970983941985175 121:98:3321362890278608312322900 121:99:771629762387959506903300 121:100:169758547725351091518726 121:101:35296331705271019028646 121:102:6920849353974709613460 121:103:1276661531315723132580 121:104:220960649650798234485 121:105:35774581372033999869 121:106:5399936810873056584 121:107:757000487505568680 121:108:98129692824795940 121:109:11703541346076580 121:110:1276749965026536 121:111:126524771308936 121:112:11296854581155 121:113:899749479915 121:114:63140314380 121:115:3843323484 121:116:198792594 121:117:8495410 121:118:287980 121:119:7260 121:120:121 121:121:1 # binomial(122, k) for 0 <= k <= 122 122:0:1 122:1:122 122:2:7381 122:3:295240 122:4:8783390 122:5:207288004 122:6:4042116078 122:7:66983637864 122:8:962889794295 122:9:12196604061070 122:10:137821625890091 122:11:1403274736335472 122:12:12980291311103116 122:13:109833234170872520 122:14:855130180330364620 122:15:6156937298378625264 122:16:41174518182907056453 122:17:256735231022832234354 122:18:1497622180966521367065 122:19:8197510885290432746040 122:20:42217181059245728642106 122:21:205054879430622110547372 122:22:941388310113310598422026 122:23:4092992652666567819226200 122:24:16883594692249592254308075 122:25:66183691193618401636887654 122:26:246916078683884036876080863 122:27:877923835320476575559398624 122:28:2978670155551616952790816760 122:29:9654999814546620467666785360 122:30:29930499425094523449767034616 122:31:88825998293828908302534425312 122:32:252598932648075957985332271981 122:33:688906179949298067232724378130 122:34:1803313235749633175991543225105 122:35:4534044707027649128207308680264 122:36:10957274708650152059834329310638 122:37:25468260133619272355290603262564 122:38:56968476614674688163150033613630 122:39:122701334246991636043707764706280 122:40:254605268562507644790693611765531 122:41:509210537125015289581387223531062 122:42:982048893026815201335532502524191 122:43:1827067707956865490856804655858960 122:44:3280417021104372131311081086655860 122:45:5686056169914245027605873883536824 122:46:9517963588769497111427223674615988 122:47:15390749632903867669541893601506704 122:48:24048046301412293233659208752354225 122:49:36317457679683871414097580564779850 122:50:53023488212338452264582467624578581 122:51:74856689240948403197057601352346232 122:52:102208171848218012057520955692626586 122:53:134991925082552091396725790537431340 122:54:172489682049927672340260732353384490 122:55:213259970534456031257049632727820824 122:56:255150321889438465968255810585071343 122:57:295437214819349802700085675414293134 122:58:331093430400995468543199463826362995 122:59:359152195689215423504487553981139520 122:60:377109805473676194679711931680196496 122:61:383291933432261050330199012527412832 122:62:377109805473676194679711931680196496 122:63:359152195689215423504487553981139520 122:64:331093430400995468543199463826362995 122:65:295437214819349802700085675414293134 122:66:255150321889438465968255810585071343 122:67:213259970534456031257049632727820824 122:68:172489682049927672340260732353384490 122:69:134991925082552091396725790537431340 122:70:102208171848218012057520955692626586 122:71:74856689240948403197057601352346232 122:72:53023488212338452264582467624578581 122:73:36317457679683871414097580564779850 122:74:24048046301412293233659208752354225 122:75:15390749632903867669541893601506704 122:76:9517963588769497111427223674615988 122:77:5686056169914245027605873883536824 122:78:3280417021104372131311081086655860 122:79:1827067707956865490856804655858960 122:80:982048893026815201335532502524191 122:81:509210537125015289581387223531062 122:82:254605268562507644790693611765531 122:83:122701334246991636043707764706280 122:84:56968476614674688163150033613630 122:85:25468260133619272355290603262564 122:86:10957274708650152059834329310638 122:87:4534044707027649128207308680264 122:88:1803313235749633175991543225105 122:89:688906179949298067232724378130 122:90:252598932648075957985332271981 122:91:88825998293828908302534425312 122:92:29930499425094523449767034616 122:93:9654999814546620467666785360 122:94:2978670155551616952790816760 122:95:877923835320476575559398624 122:96:246916078683884036876080863 122:97:66183691193618401636887654 122:98:16883594692249592254308075 122:99:4092992652666567819226200 122:100:941388310113310598422026 122:101:205054879430622110547372 122:102:42217181059245728642106 122:103:8197510885290432746040 122:104:1497622180966521367065 122:105:256735231022832234354 122:106:41174518182907056453 122:107:6156937298378625264 122:108:855130180330364620 122:109:109833234170872520 122:110:12980291311103116 122:111:1403274736335472 122:112:137821625890091 122:113:12196604061070 122:114:962889794295 122:115:66983637864 122:116:4042116078 122:117:207288004 122:118:8783390 122:119:295240 122:120:7381 122:121:122 122:122:1 # binomial(123, k) for 0 <= k <= 123 123:0:1 123:1:123 123:2:7503 123:3:302621 123:4:9078630 123:5:216071394 123:6:4249404082 123:7:71025753942 123:8:1029873432159 123:9:13159493855365 123:10:150018229951161 123:11:1541096362225563 123:12:14383566047438588 123:13:122813525481975636 123:14:964963414501237140 123:15:7012067478708989884 123:16:47331455481285681717 123:17:297909749205739290807 123:18:1754357411989353601419 123:19:9695133066256954113105 123:20:50414691944536161388146 123:21:247272060489867839189478 123:22:1146443189543932708969398 123:23:5034380962779878417648226 123:24:20976587344916160073534275 123:25:83067285885867993891195729 123:26:313099769877502438512968517 123:27:1124839914004360612435479487 123:28:3856593990872093528350215384 123:29:12633669970098237420457602120 123:30:39585499239641143917433819976 123:31:118756497718923431752301459928 123:32:341424930941904866287866697293 123:33:941505112597374025218056650111 123:34:2492219415698931243224267603235 123:35:6337357942777282304198851905369 123:36:15491319415677801188041637990902 123:37:36425534842269424415124932573202 123:38:82436736748293960518440636876194 123:39:179669810861666324206857798319910 123:40:377306602809499280834401376471811 123:41:763815805687522934372080835296593 123:42:1491259430151830490916919726055253 123:43:2809116600983680692192337158383151 123:44:5107484729061237622167885742514820 123:45:8966473191018617158916954970192684 123:46:15204019758683742139033097558152812 123:47:24908713221673364780969117276122692 123:48:39438795934316160903201102353860929 123:49:60365503981096164647756789317134075 123:50:89340945892022323678680048189358431 123:51:127880177453286855461640068976924813 123:52:177064861089166415254578557044972818 123:53:237200096930770103454246746230057926 123:54:307481607132479763736986522890815830 123:55:385749652584383703597310365081205314 123:56:468410292423894497225305443312892167 123:57:550587536708788268668341485999364477 123:58:626530645220345271243285139240656129 123:59:690245626090210892047687017807502515 123:60:736262001162891618184199485661336016 123:61:760401738905937245009910944207609328 123:62:760401738905937245009910944207609328 123:63:736262001162891618184199485661336016 123:64:690245626090210892047687017807502515 123:65:626530645220345271243285139240656129 123:66:550587536708788268668341485999364477 123:67:468410292423894497225305443312892167 123:68:385749652584383703597310365081205314 123:69:307481607132479763736986522890815830 123:70:237200096930770103454246746230057926 123:71:177064861089166415254578557044972818 123:72:127880177453286855461640068976924813 123:73:89340945892022323678680048189358431 123:74:60365503981096164647756789317134075 123:75:39438795934316160903201102353860929 123:76:24908713221673364780969117276122692 123:77:15204019758683742139033097558152812 123:78:8966473191018617158916954970192684 123:79:5107484729061237622167885742514820 123:80:2809116600983680692192337158383151 123:81:1491259430151830490916919726055253 123:82:763815805687522934372080835296593 123:83:377306602809499280834401376471811 123:84:179669810861666324206857798319910 123:85:82436736748293960518440636876194 123:86:36425534842269424415124932573202 123:87:15491319415677801188041637990902 123:88:6337357942777282304198851905369 123:89:2492219415698931243224267603235 123:90:941505112597374025218056650111 123:91:341424930941904866287866697293 123:92:118756497718923431752301459928 123:93:39585499239641143917433819976 123:94:12633669970098237420457602120 123:95:3856593990872093528350215384 123:96:1124839914004360612435479487 123:97:313099769877502438512968517 123:98:83067285885867993891195729 123:99:20976587344916160073534275 123:100:5034380962779878417648226 123:101:1146443189543932708969398 123:102:247272060489867839189478 123:103:50414691944536161388146 123:104:9695133066256954113105 123:105:1754357411989353601419 123:106:297909749205739290807 123:107:47331455481285681717 123:108:7012067478708989884 123:109:964963414501237140 123:110:122813525481975636 123:111:14383566047438588 123:112:1541096362225563 123:113:150018229951161 123:114:13159493855365 123:115:1029873432159 123:116:71025753942 123:117:4249404082 123:118:216071394 123:119:9078630 123:120:302621 123:121:7503 123:122:123 123:123:1 # binomial(124, k) for 0 <= k <= 124 124:0:1 124:1:124 124:2:7626 124:3:310124 124:4:9381251 124:5:225150024 124:6:4465475476 124:7:75275158024 124:8:1100899186101 124:9:14189367287524 124:10:163177723806526 124:11:1691114592176724 124:12:15924662409664151 124:13:137197091529414224 124:14:1087776939983212776 124:15:7977030893210227024 124:16:54343522959994671601 124:17:345241204687024972524 124:18:2052267161195092892226 124:19:11449490478246307714524 124:20:60109825010793115501251 124:21:297686752434404000577624 124:22:1393715250033800548158876 124:23:6180824152323811126617624 124:24:26010968307696038491182501 124:25:104043873230784153964730004 124:26:396167055763370432404164246 124:27:1437939683881863050948448004 124:28:4981433904876454140785694871 124:29:16490263960970330948807817504 124:30:52219169209739381337891422096 124:31:158341996958564575669735279904 124:32:460181428660828298040168157221 124:33:1282930043539278891505923347404 124:34:3433724528296305268442324253346 124:35:8829577358476213547423119508604 124:36:21828677358455083492240489896271 124:37:51916854257947225603166570564104 124:38:118862271590563384933565569449396 124:39:262106547609960284725298435196104 124:40:556976413671165605041259174791721 124:41:1141122408497022215206482211768404 124:42:2255075235839353425289000561351846 124:43:4300376031135511183109256884438404 124:44:7916601330044918314360222900897971 124:45:14073957920079854781084840712707504 124:46:24170492949702359297950052528345496 124:47:40112732980357106920002214834275504 124:48:64347509155989525684170219629983621 124:49:99804299915412325550957891670995004 124:50:149706449873118488326436837506492506 124:51:217221123345309179140320117166283244 124:52:304945038542453270716218626021897631 124:53:414264958019936518708825303275030744 124:54:544681704063249867191233269120873756 124:55:693231259716863467334296887972021144 124:56:854159945008278200822615808394097481 124:57:1018997829132682765893646929312256644 124:58:1177118181929133539911626625240020606 124:59:1316776271310556163290972157048158644 124:60:1426507627253102510231886503468838531 124:61:1496663740068828863194110429868945344 124:62:1520803477811874490019821888415218656 124:63:1496663740068828863194110429868945344 124:64:1426507627253102510231886503468838531 124:65:1316776271310556163290972157048158644 124:66:1177118181929133539911626625240020606 124:67:1018997829132682765893646929312256644 124:68:854159945008278200822615808394097481 124:69:693231259716863467334296887972021144 124:70:544681704063249867191233269120873756 124:71:414264958019936518708825303275030744 124:72:304945038542453270716218626021897631 124:73:217221123345309179140320117166283244 124:74:149706449873118488326436837506492506 124:75:99804299915412325550957891670995004 124:76:64347509155989525684170219629983621 124:77:40112732980357106920002214834275504 124:78:24170492949702359297950052528345496 124:79:14073957920079854781084840712707504 124:80:7916601330044918314360222900897971 124:81:4300376031135511183109256884438404 124:82:2255075235839353425289000561351846 124:83:1141122408497022215206482211768404 124:84:556976413671165605041259174791721 124:85:262106547609960284725298435196104 124:86:118862271590563384933565569449396 124:87:51916854257947225603166570564104 124:88:21828677358455083492240489896271 124:89:8829577358476213547423119508604 124:90:3433724528296305268442324253346 124:91:1282930043539278891505923347404 124:92:460181428660828298040168157221 124:93:158341996958564575669735279904 124:94:52219169209739381337891422096 124:95:16490263960970330948807817504 124:96:4981433904876454140785694871 124:97:1437939683881863050948448004 124:98:396167055763370432404164246 124:99:104043873230784153964730004 124:100:26010968307696038491182501 124:101:6180824152323811126617624 124:102:1393715250033800548158876 124:103:297686752434404000577624 124:104:60109825010793115501251 124:105:11449490478246307714524 124:106:2052267161195092892226 124:107:345241204687024972524 124:108:54343522959994671601 124:109:7977030893210227024 124:110:1087776939983212776 124:111:137197091529414224 124:112:15924662409664151 124:113:1691114592176724 124:114:163177723806526 124:115:14189367287524 124:116:1100899186101 124:117:75275158024 124:118:4465475476 124:119:225150024 124:120:9381251 124:121:310124 124:122:7626 124:123:124 124:124:1 # binomial(125, k) for 0 <= k <= 125 125:0:1 125:1:125 125:2:7750 125:3:317750 125:4:9691375 125:5:234531275 125:6:4690625500 125:7:79740633500 125:8:1176174344125 125:9:15290266473625 125:10:177367091094050 125:11:1854292315983250 125:12:17615777001840875 125:13:153121753939078375 125:14:1224974031512627000 125:15:9064807833193439800 125:16:62320553853204898625 125:17:399584727647019644125 125:18:2397508365882117864750 125:19:13501757639441400606750 125:20:71559315489039423215775 125:21:357796577445197116078875 125:22:1691402002468204548736500 125:23:7574539402357611674776500 125:24:32191792460019849617800125 125:25:130054841538480192455912505 125:26:500210928994154586368894250 125:27:1834106739645233483352612250 125:28:6419373588758317191734142875 125:29:21471697865846785089593512375 125:30:68709433170709712286699239600 125:31:210561166168303957007626702000 125:32:618523425619392873709903437125 125:33:1743111472200107189546091504625 125:34:4716654571835584159948247600750 125:35:12263301886772518815865443761950 125:36:30658254716931297039663609404875 125:37:73745531616402309095407060460375 125:38:170779125848510610536732140013500 125:39:380968819200523669658864004645500 125:40:819082961281125889766557609987825 125:41:1698098822168187820247741386560125 125:42:3396197644336375640495482773120250 125:43:6555451266974864608398257445790250 125:44:12216977361180429497469479785336375 125:45:21990559250124773095445063613605475 125:46:38244450869782214079034893241053000 125:47:64283225930059466217952267362621000 125:48:104460242136346632604172434464259125 125:49:164151809071401851235128111300978625 125:50:249510749788530813877394729177487510 125:51:366927573218427667466756954672775750 125:52:522166161887762449856538743188180875 125:53:719209996562389789425043929296928375 125:54:958946662083186385900058572395904500 125:55:1237912963780113334525530157092894900 125:56:1547391204725141668156912696366118625 125:57:1873157774140960966716262737706354125 125:58:2196116011061816305805273554552277250 125:59:2493894453239689703202598782288179250 125:60:2743283898563658673522858660516997175 125:61:2923171367321931373425996933337783875 125:62:3017467217880703353213932318284164000 125:63:3017467217880703353213932318284164000 125:64:2923171367321931373425996933337783875 125:65:2743283898563658673522858660516997175 125:66:2493894453239689703202598782288179250 125:67:2196116011061816305805273554552277250 125:68:1873157774140960966716262737706354125 125:69:1547391204725141668156912696366118625 125:70:1237912963780113334525530157092894900 125:71:958946662083186385900058572395904500 125:72:719209996562389789425043929296928375 125:73:522166161887762449856538743188180875 125:74:366927573218427667466756954672775750 125:75:249510749788530813877394729177487510 125:76:164151809071401851235128111300978625 125:77:104460242136346632604172434464259125 125:78:64283225930059466217952267362621000 125:79:38244450869782214079034893241053000 125:80:21990559250124773095445063613605475 125:81:12216977361180429497469479785336375 125:82:6555451266974864608398257445790250 125:83:3396197644336375640495482773120250 125:84:1698098822168187820247741386560125 125:85:819082961281125889766557609987825 125:86:380968819200523669658864004645500 125:87:170779125848510610536732140013500 125:88:73745531616402309095407060460375 125:89:30658254716931297039663609404875 125:90:12263301886772518815865443761950 125:91:4716654571835584159948247600750 125:92:1743111472200107189546091504625 125:93:618523425619392873709903437125 125:94:210561166168303957007626702000 125:95:68709433170709712286699239600 125:96:21471697865846785089593512375 125:97:6419373588758317191734142875 125:98:1834106739645233483352612250 125:99:500210928994154586368894250 125:100:130054841538480192455912505 125:101:32191792460019849617800125 125:102:7574539402357611674776500 125:103:1691402002468204548736500 125:104:357796577445197116078875 125:105:71559315489039423215775 125:106:13501757639441400606750 125:107:2397508365882117864750 125:108:399584727647019644125 125:109:62320553853204898625 125:110:9064807833193439800 125:111:1224974031512627000 125:112:153121753939078375 125:113:17615777001840875 125:114:1854292315983250 125:115:177367091094050 125:116:15290266473625 125:117:1176174344125 125:118:79740633500 125:119:4690625500 125:120:234531275 125:121:9691375 125:122:317750 125:123:7750 125:124:125 125:125:1 # binomial(126, k) for 0 <= k <= 126 126:0:1 126:1:126 126:2:7875 126:3:325500 126:4:10009125 126:5:244222650 126:6:4925156775 126:7:84431259000 126:8:1255914977625 126:9:16466440817750 126:10:192657357567675 126:11:2031659407077300 126:12:19470069317824125 126:13:170737530940919250 126:14:1378095785451705375 126:15:10289781864706066800 126:16:71385361686398338425 126:17:461905281500224542750 126:18:2797093093529137508875 126:19:15899266005323518471500 126:20:85061073128480823822525 126:21:429355892934236539294650 126:22:2049198579913401664815375 126:23:9265941404825816223513000 126:24:39766331862377461292576625 126:25:162246633998500042073712630 126:26:630265770532634778824806755 126:27:2334317668639388069721506500 126:28:8253480328403550675086755125 126:29:27891071454605102281327655250 126:30:90181131036556497376292751975 126:31:279270599339013669294325941600 126:32:829084591787696830717530139125 126:33:2361634897819500063255994941750 126:34:6459766044035691349494339105375 126:35:16979956458608102975813691362700 126:36:42921556603703815855529053166825 126:37:104403786333333606135070669865250 126:38:244524657464912919632139200473875 126:39:551747945049034280195596144659000 126:40:1200051780481649559425421614633325 126:41:2517181783449313710014298996547950 126:42:5094296466504563460743224159680375 126:43:9951648911311240248893740218910500 126:44:18772428628155294105867737231126625 126:45:34207536611305202592914543398941850 126:46:60235010119906987174479956854658475 126:47:102527676799841680296987160603674000 126:48:168743468066406098822124701826880125 126:49:268612051207748483839300545765237750 126:50:413662558859932665112522840478466135 126:51:616438323006958481344151683850263260 126:52:889093735106190117323295697860956625 126:53:1241376158450152239281582672485109250 126:54:1678156658645576175325102501692832875 126:55:2196859625863299720425588729488799400 126:56:2785304168505255002682442853459013525 126:57:3420548978866102634873175434072472750 126:58:4069273785202777272521536292258631375 126:59:4690010464301506009007872336840456500 126:60:5237178351803348376725457442805176425 126:61:5666455265885590046948855593854781050 126:62:5940638585202634726639929251621947875 126:63:6034934435761406706427864636568328000 126:64:5940638585202634726639929251621947875 126:65:5666455265885590046948855593854781050 126:66:5237178351803348376725457442805176425 126:67:4690010464301506009007872336840456500 126:68:4069273785202777272521536292258631375 126:69:3420548978866102634873175434072472750 126:70:2785304168505255002682442853459013525 126:71:2196859625863299720425588729488799400 126:72:1678156658645576175325102501692832875 126:73:1241376158450152239281582672485109250 126:74:889093735106190117323295697860956625 126:75:616438323006958481344151683850263260 126:76:413662558859932665112522840478466135 126:77:268612051207748483839300545765237750 126:78:168743468066406098822124701826880125 126:79:102527676799841680296987160603674000 126:80:60235010119906987174479956854658475 126:81:34207536611305202592914543398941850 126:82:18772428628155294105867737231126625 126:83:9951648911311240248893740218910500 126:84:5094296466504563460743224159680375 126:85:2517181783449313710014298996547950 126:86:1200051780481649559425421614633325 126:87:551747945049034280195596144659000 126:88:244524657464912919632139200473875 126:89:104403786333333606135070669865250 126:90:42921556603703815855529053166825 126:91:16979956458608102975813691362700 126:92:6459766044035691349494339105375 126:93:2361634897819500063255994941750 126:94:829084591787696830717530139125 126:95:279270599339013669294325941600 126:96:90181131036556497376292751975 126:97:27891071454605102281327655250 126:98:8253480328403550675086755125 126:99:2334317668639388069721506500 126:100:630265770532634778824806755 126:101:162246633998500042073712630 126:102:39766331862377461292576625 126:103:9265941404825816223513000 126:104:2049198579913401664815375 126:105:429355892934236539294650 126:106:85061073128480823822525 126:107:15899266005323518471500 126:108:2797093093529137508875 126:109:461905281500224542750 126:110:71385361686398338425 126:111:10289781864706066800 126:112:1378095785451705375 126:113:170737530940919250 126:114:19470069317824125 126:115:2031659407077300 126:116:192657357567675 126:117:16466440817750 126:118:1255914977625 126:119:84431259000 126:120:4925156775 126:121:244222650 126:122:10009125 126:123:325500 126:124:7875 126:125:126 126:126:1 # binomial(127, k) for 0 <= k <= 127 127:0:1 127:1:127 127:2:8001 127:3:333375 127:4:10334625 127:5:254231775 127:6:5169379425 127:7:89356415775 127:8:1340346236625 127:9:17722355795375 127:10:209123798385425 127:11:2224316764644975 127:12:21501728724901425 127:13:190207600258743375 127:14:1548833316392624625 127:15:11667877650157772175 127:16:81675143551104405225 127:17:533290643186622881175 127:18:3258998375029362051625 127:19:18696359098852655980375 127:20:100960339133804342294025 127:21:514416966062717363117175 127:22:2478554472847638204110025 127:23:11315139984739217888328375 127:24:49032273267203277516089625 127:25:202012965860877503366289255 127:26:792512404531134820898519385 127:27:2964583439172022848546313255 127:28:10587797997042938744808261625 127:29:36144551783008652956414410375 127:30:118072202491161599657620407225 127:31:369451730375570166670618693575 127:32:1108355191126710500011856080725 127:33:3190719489607196893973525080875 127:34:8821400941855191412750334047125 127:35:23439722502643794325308030468075 127:36:59901513062311918831342744529525 127:37:147325342937037421990599723032075 127:38:348928443798246525767209870339125 127:39:796272602513947199827735345132875 127:40:1751799725530683839621017759292325 127:41:3717233563930963269439720611181275 127:42:7611478249953877170757523156228325 127:43:15045945377815803709636964378590875 127:44:28724077539466534354761477450037125 127:45:52979965239460496698782280630068475 127:46:94442546731212189767394500253600325 127:47:162762686919748667471467117458332475 127:48:271271144866247779119111862430554125 127:49:437355519274154582661425247592117875 127:50:682274610067681148951823386243703885 127:51:1030100881866891146456674524328729395 127:52:1505532058113148598667447381711219885 127:53:2130469893556342356604878370346065875 127:54:2919532817095728414606685174177942125 127:55:3875016284508875895750691231181632275 127:56:4982163794368554723108031582947812925 127:57:6205853147371357637555618287531486275 127:58:7489822764068879907394711726331104125 127:59:8759284249504283281529408629099087875 127:60:9927188816104854385733329779645632925 127:61:10903633617688938423674313036659957475 127:62:11607093851088224773588784845476728925 127:63:11975573020964041433067793888190275875 127:64:11975573020964041433067793888190275875 127:65:11607093851088224773588784845476728925 127:66:10903633617688938423674313036659957475 127:67:9927188816104854385733329779645632925 127:68:8759284249504283281529408629099087875 127:69:7489822764068879907394711726331104125 127:70:6205853147371357637555618287531486275 127:71:4982163794368554723108031582947812925 127:72:3875016284508875895750691231181632275 127:73:2919532817095728414606685174177942125 127:74:2130469893556342356604878370346065875 127:75:1505532058113148598667447381711219885 127:76:1030100881866891146456674524328729395 127:77:682274610067681148951823386243703885 127:78:437355519274154582661425247592117875 127:79:271271144866247779119111862430554125 127:80:162762686919748667471467117458332475 127:81:94442546731212189767394500253600325 127:82:52979965239460496698782280630068475 127:83:28724077539466534354761477450037125 127:84:15045945377815803709636964378590875 127:85:7611478249953877170757523156228325 127:86:3717233563930963269439720611181275 127:87:1751799725530683839621017759292325 127:88:796272602513947199827735345132875 127:89:348928443798246525767209870339125 127:90:147325342937037421990599723032075 127:91:59901513062311918831342744529525 127:92:23439722502643794325308030468075 127:93:8821400941855191412750334047125 127:94:3190719489607196893973525080875 127:95:1108355191126710500011856080725 127:96:369451730375570166670618693575 127:97:118072202491161599657620407225 127:98:36144551783008652956414410375 127:99:10587797997042938744808261625 127:100:2964583439172022848546313255 127:101:792512404531134820898519385 127:102:202012965860877503366289255 127:103:49032273267203277516089625 127:104:11315139984739217888328375 127:105:2478554472847638204110025 127:106:514416966062717363117175 127:107:100960339133804342294025 127:108:18696359098852655980375 127:109:3258998375029362051625 127:110:533290643186622881175 127:111:81675143551104405225 127:112:11667877650157772175 127:113:1548833316392624625 127:114:190207600258743375 127:115:21501728724901425 127:116:2224316764644975 127:117:209123798385425 127:118:17722355795375 127:119:1340346236625 127:120:89356415775 127:121:5169379425 127:122:254231775 127:123:10334625 127:124:333375 127:125:8001 127:126:127 127:127:1 # binomial(128, k) for 0 <= k <= 128 128:0:1 128:1:128 128:2:8128 128:3:341376 128:4:10668000 128:5:264566400 128:6:5423611200 128:7:94525795200 128:8:1429702652400 128:9:19062702032000 128:10:226846154180800 128:11:2433440563030400 128:12:23726045489546400 128:13:211709328983644800 128:14:1739040916651368000 128:15:13216710966550396800 128:16:93343021201262177400 128:17:614965786737727286400 128:18:3792289018215984932800 128:19:21955357473882018032000 128:20:119656698232656998274400 128:21:615377305196521705411200 128:22:2992971438910355567227200 128:23:13793694457586856092438400 128:24:60347413251942495404418000 128:25:251045239128080780882378880 128:26:994525370392012324264808640 128:27:3757095843703157669444832640 128:28:13552381436214961593354574880 128:29:46732349780051591701222672000 128:30:154216754274170252614034817600 128:31:487523932866731766328239100800 128:32:1477806921502280666682474774300 128:33:4299074680733907393985381161600 128:34:12012120431462388306723859128000 128:35:32261123444498985738058364515200 128:36:83341235564955713156650774997600 128:37:207226855999349340821942467561600 128:38:496253786735283947757809593371200 128:39:1145201046312193725594945215472000 128:40:2548072328044631039448753104425200 128:41:5469033289461647109060738370473600 128:42:11328711813884840440197243767409600 128:43:22657423627769680880394487534819200 128:44:43770022917282338064398441828628000 128:45:81704042778927031053543758080105600 128:46:147422511970672686466176780883668800 128:47:257205233650960857238861617711932800 128:48:434033831785996446590578979888886600 128:49:708626664140402361780537110022672000 128:50:1119630129341835731613248633835821760 128:51:1712375491934572295408497910572433280 128:52:2535632939980039745124121906039949280 128:53:3636001951669490955272325752057285760 128:54:5050002710652070771211563544524008000 128:55:6794549101604604310357376405359574400 128:56:8857180078877430618858722814129445200 128:57:11188016941739912360663649870479299200 128:58:13695675911440237544950330013862590400 128:59:16249107013573163188924120355430192000 128:60:18686473065609137667262738408744720800 128:61:20830822433793792809407642816305590400 128:62:22510727468777163197263097882136686400 128:63:23582666872052266206656578733667004800 128:64:23951146041928082866135587776380551750 128:65:23582666872052266206656578733667004800 128:66:22510727468777163197263097882136686400 128:67:20830822433793792809407642816305590400 128:68:18686473065609137667262738408744720800 128:69:16249107013573163188924120355430192000 128:70:13695675911440237544950330013862590400 128:71:11188016941739912360663649870479299200 128:72:8857180078877430618858722814129445200 128:73:6794549101604604310357376405359574400 128:74:5050002710652070771211563544524008000 128:75:3636001951669490955272325752057285760 128:76:2535632939980039745124121906039949280 128:77:1712375491934572295408497910572433280 128:78:1119630129341835731613248633835821760 128:79:708626664140402361780537110022672000 128:80:434033831785996446590578979888886600 128:81:257205233650960857238861617711932800 128:82:147422511970672686466176780883668800 128:83:81704042778927031053543758080105600 128:84:43770022917282338064398441828628000 128:85:22657423627769680880394487534819200 128:86:11328711813884840440197243767409600 128:87:5469033289461647109060738370473600 128:88:2548072328044631039448753104425200 128:89:1145201046312193725594945215472000 128:90:496253786735283947757809593371200 128:91:207226855999349340821942467561600 128:92:83341235564955713156650774997600 128:93:32261123444498985738058364515200 128:94:12012120431462388306723859128000 128:95:4299074680733907393985381161600 128:96:1477806921502280666682474774300 128:97:487523932866731766328239100800 128:98:154216754274170252614034817600 128:99:46732349780051591701222672000 128:100:13552381436214961593354574880 128:101:3757095843703157669444832640 128:102:994525370392012324264808640 128:103:251045239128080780882378880 128:104:60347413251942495404418000 128:105:13793694457586856092438400 128:106:2992971438910355567227200 128:107:615377305196521705411200 128:108:119656698232656998274400 128:109:21955357473882018032000 128:110:3792289018215984932800 128:111:614965786737727286400 128:112:93343021201262177400 128:113:13216710966550396800 128:114:1739040916651368000 128:115:211709328983644800 128:116:23726045489546400 128:117:2433440563030400 128:118:226846154180800 128:119:19062702032000 128:120:1429702652400 128:121:94525795200 128:122:5423611200 128:123:264566400 128:124:10668000 128:125:341376 128:126:8128 128:127:128 128:128:1 # binomial(129, k) for 0 <= k <= 129 129:0:1 129:1:129 129:2:8256 129:3:349504 129:4:11009376 129:5:275234400 129:6:5688177600 129:7:99949406400 129:8:1524228447600 129:9:20492404684400 129:10:245908856212800 129:11:2660286717211200 129:12:26159486052576800 129:13:235435374473191200 129:14:1950750245635012800 129:15:14955751883201764800 129:16:106559732167812574200 129:17:708308807938989463800 129:18:4407254804953712219200 129:19:25747646492098002964800 129:20:141612055706539016306400 129:21:735034003429178703685600 129:22:3608348744106877272638400 129:23:16786665896497211659665600 129:24:74141107709529351496856400 129:25:311392652380023276286796880 129:26:1245570609520093105147187520 129:27:4751621214095169993709641280 129:28:17309477279918119262799407520 129:29:60284731216266553294577246880 129:30:200949104054221844315257489600 129:31:641740687140902018942273918400 129:32:1965330854369012433010713875100 129:33:5776881602236188060667855935900 129:34:16311195112196295700709240289600 129:35:44273243875961374044782223643200 129:36:115602359009454698894709139512800 129:37:290568091564305053978593242559200 129:38:703480642734633288579752060932800 129:39:1641454833047477673352754808843200 129:40:3693273374356824765043698319897200 129:41:8017105617506278148509491474898800 129:42:16797745103346487549257982137883200 129:43:33986135441654521320591731302228800 129:44:66427446545052018944792929363447200 129:45:125474065696209369117942199908733600 129:46:229126554749599717519720538963774400 129:47:404627745621633543705038398595601600 129:48:691239065436957303829440597600819400 129:49:1142660495926398808371116089911558600 129:50:1828256793482238093393785743858493760 129:51:2832005621276408027021746544408255040 129:52:4248008431914612040532619816612382560 129:53:6171634891649530700396447658097235040 129:54:8686004662321561726483889296581293760 129:55:11844551812256675081568939949883582400 129:56:15651729180482034929216099219489019600 129:57:20045197020617342979522372684608744400 129:58:24883692853180149905613979884341889600 129:59:29944782925013400733874450369292782400 129:60:34935580079182300856186858764174912800 129:61:39517295499402930476670381225050311200 129:62:43341549902570956006670740698442276800 129:63:46093394340829429403919676615803691200 129:64:47533812913980349072792166510047556550 129:65:47533812913980349072792166510047556550 129:66:46093394340829429403919676615803691200 129:67:43341549902570956006670740698442276800 129:68:39517295499402930476670381225050311200 129:69:34935580079182300856186858764174912800 129:70:29944782925013400733874450369292782400 129:71:24883692853180149905613979884341889600 129:72:20045197020617342979522372684608744400 129:73:15651729180482034929216099219489019600 129:74:11844551812256675081568939949883582400 129:75:8686004662321561726483889296581293760 129:76:6171634891649530700396447658097235040 129:77:4248008431914612040532619816612382560 129:78:2832005621276408027021746544408255040 129:79:1828256793482238093393785743858493760 129:80:1142660495926398808371116089911558600 129:81:691239065436957303829440597600819400 129:82:404627745621633543705038398595601600 129:83:229126554749599717519720538963774400 129:84:125474065696209369117942199908733600 129:85:66427446545052018944792929363447200 129:86:33986135441654521320591731302228800 129:87:16797745103346487549257982137883200 129:88:8017105617506278148509491474898800 129:89:3693273374356824765043698319897200 129:90:1641454833047477673352754808843200 129:91:703480642734633288579752060932800 129:92:290568091564305053978593242559200 129:93:115602359009454698894709139512800 129:94:44273243875961374044782223643200 129:95:16311195112196295700709240289600 129:96:5776881602236188060667855935900 129:97:1965330854369012433010713875100 129:98:641740687140902018942273918400 129:99:200949104054221844315257489600 129:100:60284731216266553294577246880 129:101:17309477279918119262799407520 129:102:4751621214095169993709641280 129:103:1245570609520093105147187520 129:104:311392652380023276286796880 129:105:74141107709529351496856400 129:106:16786665896497211659665600 129:107:3608348744106877272638400 129:108:735034003429178703685600 129:109:141612055706539016306400 129:110:25747646492098002964800 129:111:4407254804953712219200 129:112:708308807938989463800 129:113:106559732167812574200 129:114:14955751883201764800 129:115:1950750245635012800 129:116:235435374473191200 129:117:26159486052576800 129:118:2660286717211200 129:119:245908856212800 129:120:20492404684400 129:121:1524228447600 129:122:99949406400 129:123:5688177600 129:124:275234400 129:125:11009376 129:126:349504 129:127:8256 129:128:129 129:129:1 # binomial(130, k) for 0 <= k <= 130 130:0:1 130:1:130 130:2:8385 130:3:357760 130:4:11358880 130:5:286243776 130:6:5963412000 130:7:105637584000 130:8:1624177854000 130:9:22016633132000 130:10:266401260897200 130:11:2906195573424000 130:12:28819772769788000 130:13:261594860525768000 130:14:2186185620108204000 130:15:16906502128836777600 130:16:121515484051014339000 130:17:814868540106802038000 130:18:5115563612892701683000 130:19:30154901297051715184000 130:20:167359702198637019271200 130:21:876646059135717719992000 130:22:4343382747536055976324000 130:23:20395014640604088932304000 130:24:90927773606026563156522000 130:25:385533760089552627783653280 130:26:1556963261900116381433984400 130:27:5997191823615263098856828800 130:28:22061098494013289256509048800 130:29:77594208496184672557376654400 130:30:261233835270488397609834736480 130:31:842689791195123863257531408000 130:32:2607071541509914451952987793500 130:33:7742212456605200493678569811000 130:34:22088076714432483761377096225500 130:35:60584438988157669745491463932800 130:36:159875602885416072939491363156000 130:37:406170450573759752873302382072000 130:38:994048734298938342558345303492000 130:39:2344935475782110961932506869776000 130:40:5334728207404302438396453128740400 130:41:11710378991863102913553189794796000 130:42:24814850720852765697767473612782000 130:43:50783880545001008869849713440112000 130:44:100413581986706540265384660665676000 130:45:191901512241261388062735129272180800 130:46:354600620445809086637662738872508000 130:47:633754300371233261224758937559376000 130:48:1095866811058590847534478996196421000 130:49:1833899561363356112200556687512378000 130:50:2970917289408636901764901833770052360 130:51:4660262414758646120415532288266748800 130:52:7080014053191020067554366361020637600 130:53:10419643323564142740929067474709617600 130:54:14857639553971092426880336954678528800 130:55:20530556474578236808052829246464876160 130:56:27496280992738710010785039169372602000 130:57:35696926201099377908738471904097764000 130:58:44928889873797492885136352568950634000 130:59:54828475778193550639488430253634672000 130:60:64880363004195701590061309133467695200 130:61:74452875578585231332857239989225224000 130:62:82858845401973886483341121923492588000 130:63:89434944243400385410590417314245968000 130:64:93627207254809778476711843125851247750 130:65:95067625827960698145584333020095113100 130:66:93627207254809778476711843125851247750 130:67:89434944243400385410590417314245968000 130:68:82858845401973886483341121923492588000 130:69:74452875578585231332857239989225224000 130:70:64880363004195701590061309133467695200 130:71:54828475778193550639488430253634672000 130:72:44928889873797492885136352568950634000 130:73:35696926201099377908738471904097764000 130:74:27496280992738710010785039169372602000 130:75:20530556474578236808052829246464876160 130:76:14857639553971092426880336954678528800 130:77:10419643323564142740929067474709617600 130:78:7080014053191020067554366361020637600 130:79:4660262414758646120415532288266748800 130:80:2970917289408636901764901833770052360 130:81:1833899561363356112200556687512378000 130:82:1095866811058590847534478996196421000 130:83:633754300371233261224758937559376000 130:84:354600620445809086637662738872508000 130:85:191901512241261388062735129272180800 130:86:100413581986706540265384660665676000 130:87:50783880545001008869849713440112000 130:88:24814850720852765697767473612782000 130:89:11710378991863102913553189794796000 130:90:5334728207404302438396453128740400 130:91:2344935475782110961932506869776000 130:92:994048734298938342558345303492000 130:93:406170450573759752873302382072000 130:94:159875602885416072939491363156000 130:95:60584438988157669745491463932800 130:96:22088076714432483761377096225500 130:97:7742212456605200493678569811000 130:98:2607071541509914451952987793500 130:99:842689791195123863257531408000 130:100:261233835270488397609834736480 130:101:77594208496184672557376654400 130:102:22061098494013289256509048800 130:103:5997191823615263098856828800 130:104:1556963261900116381433984400 130:105:385533760089552627783653280 130:106:90927773606026563156522000 130:107:20395014640604088932304000 130:108:4343382747536055976324000 130:109:876646059135717719992000 130:110:167359702198637019271200 130:111:30154901297051715184000 130:112:5115563612892701683000 130:113:814868540106802038000 130:114:121515484051014339000 130:115:16906502128836777600 130:116:2186185620108204000 130:117:261594860525768000 130:118:28819772769788000 130:119:2906195573424000 130:120:266401260897200 130:121:22016633132000 130:122:1624177854000 130:123:105637584000 130:124:5963412000 130:125:286243776 130:126:11358880 130:127:357760 130:128:8385 130:129:130 130:130:1 # binomial(131, k) for 0 <= k <= 131 131:0:1 131:1:131 131:2:8515 131:3:366145 131:4:11716640 131:5:297602656 131:6:6249655776 131:7:111600996000 131:8:1729815438000 131:9:23640810986000 131:10:288417894029200 131:11:3172596834321200 131:12:31725968343212000 131:13:290414633295556000 131:14:2447780480633972000 131:15:19092687748944981600 131:16:138421986179851116600 131:17:936384024157816377000 131:18:5930432152999503721000 131:19:35270464909944416867000 131:20:197514603495688734455200 131:21:1044005761334354739263200 131:22:5220028806671773696316000 131:23:24738397388140144908628000 131:24:111322788246630652088826000 131:25:476461533695579190940175280 131:26:1942497021989669009217637680 131:27:7554155085515379480290813200 131:28:28058290317628552355365877600 131:29:99655306990197961813885703200 131:30:338828043766673070167211390880 131:31:1103923626465612260867366144480 131:32:3449761332705038315210519201500 131:33:10349283998115114945631557604500 131:34:29830289171037684255055666036500 131:35:82672515702590153506868560158300 131:36:220460041873573742684982827088800 131:37:566046053459175825812793745228000 131:38:1400219184872698095431647685564000 131:39:3338984210081049304490852173268000 131:40:7679663683186413400328959998516400 131:41:17045107199267405351949642923536400 131:42:36525229712715868611320663407578000 131:43:75598731265853774567617187052894000 131:44:151197462531707549135234374105788000 131:45:292315094227967928328119789937856800 131:46:546502132687070474700397868144688800 131:47:988354920817042347862421676431884000 131:48:1729621111429824108759237933755797000 131:49:2929766372421946959735035683708799000 131:50:4804816850771993013965458521282430360 131:51:7631179704167283022180434122036801160 131:52:11740276467949666187969898649287386400 131:53:17499657376755162808483433835730255200 131:54:25277282877535235167809404429388146400 131:55:35388196028549329234933166201143404960 131:56:48026837467316946818837868415837478160 131:57:63193207193838087919523511073470366000 131:58:80625816074896870793874824473048398000 131:59:99757365651991043524624782822585306000 131:60:119708838782389252229549739387102367200 131:61:139333238582780932922918549122692919200 131:62:157311720980559117816198361912717812000 131:63:172293789645374271893931539237738556000 131:64:183062151498210163887302260440097215750 131:65:188694833082770476622296176145946360850 131:66:188694833082770476622296176145946360850 131:67:183062151498210163887302260440097215750 131:68:172293789645374271893931539237738556000 131:69:157311720980559117816198361912717812000 131:70:139333238582780932922918549122692919200 131:71:119708838782389252229549739387102367200 131:72:99757365651991043524624782822585306000 131:73:80625816074896870793874824473048398000 131:74:63193207193838087919523511073470366000 131:75:48026837467316946818837868415837478160 131:76:35388196028549329234933166201143404960 131:77:25277282877535235167809404429388146400 131:78:17499657376755162808483433835730255200 131:79:11740276467949666187969898649287386400 131:80:7631179704167283022180434122036801160 131:81:4804816850771993013965458521282430360 131:82:2929766372421946959735035683708799000 131:83:1729621111429824108759237933755797000 131:84:988354920817042347862421676431884000 131:85:546502132687070474700397868144688800 131:86:292315094227967928328119789937856800 131:87:151197462531707549135234374105788000 131:88:75598731265853774567617187052894000 131:89:36525229712715868611320663407578000 131:90:17045107199267405351949642923536400 131:91:7679663683186413400328959998516400 131:92:3338984210081049304490852173268000 131:93:1400219184872698095431647685564000 131:94:566046053459175825812793745228000 131:95:220460041873573742684982827088800 131:96:82672515702590153506868560158300 131:97:29830289171037684255055666036500 131:98:10349283998115114945631557604500 131:99:3449761332705038315210519201500 131:100:1103923626465612260867366144480 131:101:338828043766673070167211390880 131:102:99655306990197961813885703200 131:103:28058290317628552355365877600 131:104:7554155085515379480290813200 131:105:1942497021989669009217637680 131:106:476461533695579190940175280 131:107:111322788246630652088826000 131:108:24738397388140144908628000 131:109:5220028806671773696316000 131:110:1044005761334354739263200 131:111:197514603495688734455200 131:112:35270464909944416867000 131:113:5930432152999503721000 131:114:936384024157816377000 131:115:138421986179851116600 131:116:19092687748944981600 131:117:2447780480633972000 131:118:290414633295556000 131:119:31725968343212000 131:120:3172596834321200 131:121:288417894029200 131:122:23640810986000 131:123:1729815438000 131:124:111600996000 131:125:6249655776 131:126:297602656 131:127:11716640 131:128:366145 131:129:8515 131:130:131 131:131:1 # binomial(132, k) for 0 <= k <= 132 132:0:1 132:1:132 132:2:8646 132:3:374660 132:4:12082785 132:5:309319296 132:6:6547258432 132:7:117850651776 132:8:1841416434000 132:9:25370626424000 132:10:312058705015200 132:11:3461014728350400 132:12:34898565177533200 132:13:322140601638768000 132:14:2738195113929528000 132:15:21540468229578953600 132:16:157514673928796098200 132:17:1074806010337667493600 132:18:6866816177157320098000 132:19:41200897062943920588000 132:20:232785068405633151322200 132:21:1241520364830043473718400 132:22:6264034568006128435579200 132:23:29958426194811918604944000 132:24:136061185634770796997454000 132:25:587784321942209843029001280 132:26:2418958555685248200157812960 132:27:9496652107505048489508450880 132:28:35612445403143931835656690800 132:29:127713597307826514169251580800 132:30:438483350756871031981097094080 132:31:1442751670232285331034577535360 132:32:4553684959170650576077885345980 132:33:13799045330820153260842076806000 132:34:40179573169152799200687223641000 132:35:112502804873627837761924226194800 132:36:303132557576163896191851387247100 132:37:786506095332749568497776572316800 132:38:1966265238331873921244441430792000 132:39:4739203394953747399922499858832000 132:40:11018647893267462704819812171784400 132:41:24724770882453818752278602922052800 132:42:53570336911983273963270306331114400 132:43:112123960978569643178937850460472000 132:44:226796193797561323702851561158682000 132:45:443512556759675477463354164043644800 132:46:838817226915038403028517658082545600 132:47:1534857053504112822562819544576572800 132:48:2717976032246866456621659610187681000 132:49:4659387483851771068494273617464596000 132:50:7734583223193939973700494204991229360 132:51:12435996554939276036145892643319231520 132:52:19371456172116949210150332771324187560 132:53:29239933844704828996453332485017641600 132:54:42776940254290397976292838265118401600 132:55:60665478906084564402742570630531551360 132:56:83415033495866276053771034616980883120 132:57:111220044661155034738361379489307844160 132:58:143819023268734958713398335546518764000 132:59:180383181726887914318499607295633704000 132:60:219466204434380295754174522209687673200 132:61:259042077365170185152468288509795286400 132:62:296644959563340050739116911035410731200 132:63:329605510625933389710129901150456368000 132:64:355355941143584435781233799677835771750 132:65:371756984580980640509598436586043576600 132:66:377389666165540953244592352291892721700 132:67:371756984580980640509598436586043576600 132:68:355355941143584435781233799677835771750 132:69:329605510625933389710129901150456368000 132:70:296644959563340050739116911035410731200 132:71:259042077365170185152468288509795286400 132:72:219466204434380295754174522209687673200 132:73:180383181726887914318499607295633704000 132:74:143819023268734958713398335546518764000 132:75:111220044661155034738361379489307844160 132:76:83415033495866276053771034616980883120 132:77:60665478906084564402742570630531551360 132:78:42776940254290397976292838265118401600 132:79:29239933844704828996453332485017641600 132:80:19371456172116949210150332771324187560 132:81:12435996554939276036145892643319231520 132:82:7734583223193939973700494204991229360 132:83:4659387483851771068494273617464596000 132:84:2717976032246866456621659610187681000 132:85:1534857053504112822562819544576572800 132:86:838817226915038403028517658082545600 132:87:443512556759675477463354164043644800 132:88:226796193797561323702851561158682000 132:89:112123960978569643178937850460472000 132:90:53570336911983273963270306331114400 132:91:24724770882453818752278602922052800 132:92:11018647893267462704819812171784400 132:93:4739203394953747399922499858832000 132:94:1966265238331873921244441430792000 132:95:786506095332749568497776572316800 132:96:303132557576163896191851387247100 132:97:112502804873627837761924226194800 132:98:40179573169152799200687223641000 132:99:13799045330820153260842076806000 132:100:4553684959170650576077885345980 132:101:1442751670232285331034577535360 132:102:438483350756871031981097094080 132:103:127713597307826514169251580800 132:104:35612445403143931835656690800 132:105:9496652107505048489508450880 132:106:2418958555685248200157812960 132:107:587784321942209843029001280 132:108:136061185634770796997454000 132:109:29958426194811918604944000 132:110:6264034568006128435579200 132:111:1241520364830043473718400 132:112:232785068405633151322200 132:113:41200897062943920588000 132:114:6866816177157320098000 132:115:1074806010337667493600 132:116:157514673928796098200 132:117:21540468229578953600 132:118:2738195113929528000 132:119:322140601638768000 132:120:34898565177533200 132:121:3461014728350400 132:122:312058705015200 132:123:25370626424000 132:124:1841416434000 132:125:117850651776 132:126:6547258432 132:127:309319296 132:128:12082785 132:129:374660 132:130:8646 132:131:132 132:132:1 # binomial(133, k) for 0 <= k <= 133 133:0:1 133:1:133 133:2:8778 133:3:383306 133:4:12457445 133:5:321402081 133:6:6856577728 133:7:124397910208 133:8:1959267085776 133:9:27212042858000 133:10:337429331439200 133:11:3773073433365600 133:12:38359579905883600 133:13:357039166816301200 133:14:3060335715568296000 133:15:24278663343508481600 133:16:179055142158375051800 133:17:1232320684266463591800 133:18:7941622187494987591600 133:19:48067713240101240686000 133:20:273985965468577071910200 133:21:1474305433235676625040600 133:22:7505554932836171909297600 133:23:36222460762818047040523200 133:24:166019611829582715602398000 133:25:723845507576980640026455280 133:26:3006742877627458043186814240 133:27:11915610663190296689666263840 133:28:45109097510648980325165141680 133:29:163326042710970446004908271600 133:30:566196948064697546150348674880 133:31:1881235020989156363015674629440 133:32:5996436629402935907112462881340 133:33:18352730289990803836919962151980 133:34:53978618499972952461529300447000 133:35:152682378042780636962611449835800 133:36:415635362449791733953775613441900 133:37:1089638652908913464689627959563900 133:38:2752771333664623489742218003108800 133:39:6705468633285621321166941289624000 133:40:15757851288221210104742312030616400 133:41:35743418775721281457098415093837200 133:42:78295107794437092715548909253167200 133:43:165694297890552917142208156791586400 133:44:338920154776130966881789411619154000 133:45:670308750557236801166205725202326800 133:46:1282329783674713880491871822126190400 133:47:2373674280419151225591337202659118400 133:48:4252833085750979279184479154764253800 133:49:7377363516098637525115933227652277000 133:50:12393970707045711042194767822455825360 133:51:20170579778133216009846386848310460880 133:52:31807452727056225246296225414643419080 133:53:48611390016821778206603665256341829160 133:54:72016874098995226972746170750136043200 133:55:103442419160374962379035408895649952960 133:56:144080512401950840456513605247512434480 133:57:194635078157021310792132414106288727280 133:58:255039067929889993451759715035826608160 133:59:324202204995622873031897942842152468000 133:60:399849386161268210072674129505321377200 133:61:478508281799550480906642810719482959600 133:62:555687036928510235891585199545206017600 133:63:626250470189273440449246812185867099200 133:64:684961451769517825491363700828292139750 133:65:727112925724565076290832236263879348350 133:66:749146650746521593754190788877936298300 133:67:749146650746521593754190788877936298300 133:68:727112925724565076290832236263879348350 133:69:684961451769517825491363700828292139750 133:70:626250470189273440449246812185867099200 133:71:555687036928510235891585199545206017600 133:72:478508281799550480906642810719482959600 133:73:399849386161268210072674129505321377200 133:74:324202204995622873031897942842152468000 133:75:255039067929889993451759715035826608160 133:76:194635078157021310792132414106288727280 133:77:144080512401950840456513605247512434480 133:78:103442419160374962379035408895649952960 133:79:72016874098995226972746170750136043200 133:80:48611390016821778206603665256341829160 133:81:31807452727056225246296225414643419080 133:82:20170579778133216009846386848310460880 133:83:12393970707045711042194767822455825360 133:84:7377363516098637525115933227652277000 133:85:4252833085750979279184479154764253800 133:86:2373674280419151225591337202659118400 133:87:1282329783674713880491871822126190400 133:88:670308750557236801166205725202326800 133:89:338920154776130966881789411619154000 133:90:165694297890552917142208156791586400 133:91:78295107794437092715548909253167200 133:92:35743418775721281457098415093837200 133:93:15757851288221210104742312030616400 133:94:6705468633285621321166941289624000 133:95:2752771333664623489742218003108800 133:96:1089638652908913464689627959563900 133:97:415635362449791733953775613441900 133:98:152682378042780636962611449835800 133:99:53978618499972952461529300447000 133:100:18352730289990803836919962151980 133:101:5996436629402935907112462881340 133:102:1881235020989156363015674629440 133:103:566196948064697546150348674880 133:104:163326042710970446004908271600 133:105:45109097510648980325165141680 133:106:11915610663190296689666263840 133:107:3006742877627458043186814240 133:108:723845507576980640026455280 133:109:166019611829582715602398000 133:110:36222460762818047040523200 133:111:7505554932836171909297600 133:112:1474305433235676625040600 133:113:273985965468577071910200 133:114:48067713240101240686000 133:115:7941622187494987591600 133:116:1232320684266463591800 133:117:179055142158375051800 133:118:24278663343508481600 133:119:3060335715568296000 133:120:357039166816301200 133:121:38359579905883600 133:122:3773073433365600 133:123:337429331439200 133:124:27212042858000 133:125:1959267085776 133:126:124397910208 133:127:6856577728 133:128:321402081 133:129:12457445 133:130:383306 133:131:8778 133:132:133 133:133:1 # binomial(134, k) for 0 <= k <= 134 134:0:1 134:1:134 134:2:8911 134:3:392084 134:4:12840751 134:5:333859526 134:6:7177979809 134:7:131254487936 134:8:2083664995984 134:9:29171309943776 134:10:364641374297200 134:11:4110502764804800 134:12:42132653339249200 134:13:395398746722184800 134:14:3417374882384597200 134:15:27338999059076777600 134:16:203333805501883533400 134:17:1411375826424838643600 134:18:9173942871761451183400 134:19:56009335427596228277600 134:20:322053678708678312596200 134:21:1748291398704253696950800 134:22:8979860366071848534338200 134:23:43728015695654218949820800 134:24:202242072592400762642921200 134:25:889865119406563355628853280 134:26:3730588385204438683213269520 134:27:14922353540817754732853078080 134:28:57024708173839277014831405520 134:29:208435140221619426330073413280 134:30:729522990775667992155256946480 134:31:2447431969053853909166023304320 134:32:7877671650392092270128137510780 134:33:24349166919393739744032425033320 134:34:72331348789963756298449262598980 134:35:206660996542753589424140750282800 134:36:568317740492572370916387063277700 134:37:1505274015358705198643403573005800 134:38:3842409986573536954431845962672700 134:39:9458239966950244810909159292732800 134:40:22463319921506831425909253320240400 134:41:51501270063942491561840727124453600 134:42:114038526570158374172647324347004400 134:43:243989405684990009857757066044753600 134:44:504614452666683884023997568410740400 134:45:1009228905333367768047995136821480800 134:46:1952638534231950681658077547328517200 134:47:3656004064093865106083209024785308800 134:48:6626507366170130504775816357423372200 134:49:11630196601849616804300412382416530800 134:50:19771334223144348567310701050108102360 134:51:32564550485178927052041154670766286240 134:52:51978032505189441256142612262953879960 134:53:80418842743878003452899890670985248240 134:54:120628264115817005179349836006477872360 134:55:175459293259370189351781579645785996160 134:56:247522931562325802835549014143162387440 134:57:338715590558972151248646019353801161760 134:58:449674146086911304243892129142115335440 134:59:579241272925512866483657657877979076160 134:60:724051591156891083104572072347473845200 134:61:878357667960818690979316940224804336800 134:62:1034195318728060716798228010264688977200 134:63:1181937507117783676340832011731073116800 134:64:1311211921958791265940610513014159238950 134:65:1412074377494082901782195937092171488100 134:66:1476259576471086670045023025141815646650 134:67:1498293301493043187508381577755872596600 134:68:1476259576471086670045023025141815646650 134:69:1412074377494082901782195937092171488100 134:70:1311211921958791265940610513014159238950 134:71:1181937507117783676340832011731073116800 134:72:1034195318728060716798228010264688977200 134:73:878357667960818690979316940224804336800 134:74:724051591156891083104572072347473845200 134:75:579241272925512866483657657877979076160 134:76:449674146086911304243892129142115335440 134:77:338715590558972151248646019353801161760 134:78:247522931562325802835549014143162387440 134:79:175459293259370189351781579645785996160 134:80:120628264115817005179349836006477872360 134:81:80418842743878003452899890670985248240 134:82:51978032505189441256142612262953879960 134:83:32564550485178927052041154670766286240 134:84:19771334223144348567310701050108102360 134:85:11630196601849616804300412382416530800 134:86:6626507366170130504775816357423372200 134:87:3656004064093865106083209024785308800 134:88:1952638534231950681658077547328517200 134:89:1009228905333367768047995136821480800 134:90:504614452666683884023997568410740400 134:91:243989405684990009857757066044753600 134:92:114038526570158374172647324347004400 134:93:51501270063942491561840727124453600 134:94:22463319921506831425909253320240400 134:95:9458239966950244810909159292732800 134:96:3842409986573536954431845962672700 134:97:1505274015358705198643403573005800 134:98:568317740492572370916387063277700 134:99:206660996542753589424140750282800 134:100:72331348789963756298449262598980 134:101:24349166919393739744032425033320 134:102:7877671650392092270128137510780 134:103:2447431969053853909166023304320 134:104:729522990775667992155256946480 134:105:208435140221619426330073413280 134:106:57024708173839277014831405520 134:107:14922353540817754732853078080 134:108:3730588385204438683213269520 134:109:889865119406563355628853280 134:110:202242072592400762642921200 134:111:43728015695654218949820800 134:112:8979860366071848534338200 134:113:1748291398704253696950800 134:114:322053678708678312596200 134:115:56009335427596228277600 134:116:9173942871761451183400 134:117:1411375826424838643600 134:118:203333805501883533400 134:119:27338999059076777600 134:120:3417374882384597200 134:121:395398746722184800 134:122:42132653339249200 134:123:4110502764804800 134:124:364641374297200 134:125:29171309943776 134:126:2083664995984 134:127:131254487936 134:128:7177979809 134:129:333859526 134:130:12840751 134:131:392084 134:132:8911 134:133:134 134:134:1 # binomial(135, k) for 0 <= k <= 135 135:0:1 135:1:135 135:2:9045 135:3:400995 135:4:13232835 135:5:346700277 135:6:7511839335 135:7:138432467745 135:8:2214919483920 135:9:31254974939760 135:10:393812684240976 135:11:4475144139102000 135:12:46243156104054000 135:13:437531400061434000 135:14:3812773629106782000 135:15:30756373941461374800 135:16:230672804560960311000 135:17:1614709631926722177000 135:18:10585318698186289827000 135:19:65183278299357679461000 135:20:378063014136274540873800 135:21:2070345077412932009547000 135:22:10728151764776102231289000 135:23:52707876061726067484159000 135:24:245970088288054981592742000 135:25:1092107191998964118271774480 135:26:4620453504611002038842122800 135:27:18652941926022193416066347600 135:28:71947061714657031747684483600 135:29:265459848395458703344904818800 135:30:937958130997287418485330359760 135:31:3176954959829521901321280250800 135:32:10325103619445946179294160815100 135:33:32226838569785832014160562544100 135:34:96680515709357496042481687632300 135:35:278992345332717345722590012881780 135:36:774978737035325960340527813560500 135:37:2073591755851277569559790636283500 135:38:5347684001932242153075249535678500 135:39:13300649953523781765341005255405500 135:40:31921559888457076236818412612973200 135:41:73964589985449322987749980444694000 135:42:165539796634100865734488051471458000 135:43:358027932255148384030404390391758000 135:44:748603858351673893881754634455494000 135:45:1513843358000051652071992705232221200 135:46:2961867439565318449706072684149998000 135:47:5608642598325815787741286572113826000 135:48:10282511430263995610859025382208681000 135:49:18256703968019747309076228739839903000 135:50:31401530824993965371611113432524633160 135:51:52335884708323275619351855720874388600 135:52:84542582990368368308183766933720166200 135:53:132396875249067444709042502933939128200 135:54:201047106859695008632249726677463120600 135:55:296087557375187194531131415652263868520 135:56:422982224821695992187330593788948383600 135:57:586238522121297954084195033496963549200 135:58:788389736645883455492538148495916497200 135:59:1028915419012424170727549787020094411600 135:60:1303292864082403949588229730225452921360 135:61:1602409259117709774083889012572278182000 135:62:1912552986688879407777544950489493314000 135:63:2216132825845844393139060021995762094000 135:64:2493149429076574942281442524745232355750 135:65:2723286299452874167722806450106330727050 135:66:2888333953965169571827218962233987134750 135:67:2974552877964129857553404602897688243250 135:68:2974552877964129857553404602897688243250 135:69:2888333953965169571827218962233987134750 135:70:2723286299452874167722806450106330727050 135:71:2493149429076574942281442524745232355750 135:72:2216132825845844393139060021995762094000 135:73:1912552986688879407777544950489493314000 135:74:1602409259117709774083889012572278182000 135:75:1303292864082403949588229730225452921360 135:76:1028915419012424170727549787020094411600 135:77:788389736645883455492538148495916497200 135:78:586238522121297954084195033496963549200 135:79:422982224821695992187330593788948383600 135:80:296087557375187194531131415652263868520 135:81:201047106859695008632249726677463120600 135:82:132396875249067444709042502933939128200 135:83:84542582990368368308183766933720166200 135:84:52335884708323275619351855720874388600 135:85:31401530824993965371611113432524633160 135:86:18256703968019747309076228739839903000 135:87:10282511430263995610859025382208681000 135:88:5608642598325815787741286572113826000 135:89:2961867439565318449706072684149998000 135:90:1513843358000051652071992705232221200 135:91:748603858351673893881754634455494000 135:92:358027932255148384030404390391758000 135:93:165539796634100865734488051471458000 135:94:73964589985449322987749980444694000 135:95:31921559888457076236818412612973200 135:96:13300649953523781765341005255405500 135:97:5347684001932242153075249535678500 135:98:2073591755851277569559790636283500 135:99:774978737035325960340527813560500 135:100:278992345332717345722590012881780 135:101:96680515709357496042481687632300 135:102:32226838569785832014160562544100 135:103:10325103619445946179294160815100 135:104:3176954959829521901321280250800 135:105:937958130997287418485330359760 135:106:265459848395458703344904818800 135:107:71947061714657031747684483600 135:108:18652941926022193416066347600 135:109:4620453504611002038842122800 135:110:1092107191998964118271774480 135:111:245970088288054981592742000 135:112:52707876061726067484159000 135:113:10728151764776102231289000 135:114:2070345077412932009547000 135:115:378063014136274540873800 135:116:65183278299357679461000 135:117:10585318698186289827000 135:118:1614709631926722177000 135:119:230672804560960311000 135:120:30756373941461374800 135:121:3812773629106782000 135:122:437531400061434000 135:123:46243156104054000 135:124:4475144139102000 135:125:393812684240976 135:126:31254974939760 135:127:2214919483920 135:128:138432467745 135:129:7511839335 135:130:346700277 135:131:13232835 135:132:400995 135:133:9045 135:134:135 135:135:1 # binomial(136, k) for 0 <= k <= 136 136:0:1 136:1:136 136:2:9180 136:3:410040 136:4:13633830 136:5:359933112 136:6:7858539612 136:7:145944307080 136:8:2353351951665 136:9:33469894423680 136:10:425067659180736 136:11:4868956823342976 136:12:50718300243156000 136:13:483774556165488000 136:14:4250305029168216000 136:15:34569147570568156800 136:16:261429178502421685800 136:17:1845382436487682488000 136:18:12200028330113012004000 136:19:75768596997543969288000 136:20:443246292435632220334800 136:21:2448408091549206550420800 136:22:12798496842189034240836000 136:23:63436027826502169715448000 136:24:298677964349781049076901000 136:25:1338077280287019099864516480 136:26:5712560696609966157113897280 136:27:23273395430633195454908470400 136:28:90600003640679225163750831200 136:29:337406910110115735092589302400 136:30:1203417979392746121830235178560 136:31:4114913090826809319806610610560 136:32:13502058579275468080615441065900 136:33:42551942189231778193454723359200 136:34:128907354279143328056642250176400 136:35:375672861042074841765071700514080 136:36:1053971082368043306063117826442280 136:37:2848570492886603529900318449844000 136:38:7421275757783519722635040171962000 136:39:18648333955456023918416254791084000 136:40:45222209841980858002159417868378700 136:41:105886149873906399224568393057667200 136:42:239504386619550188722238031916152000 136:43:523567728889249249764892441863216000 136:44:1106631790606822277912159024847252000 136:45:2262447216351725545953747339687715200 136:46:4475710797565370101778065389382219200 136:47:8570510037891134237447359256263824000 136:48:15891154028589811398600311954322507000 136:49:28539215398283742919935254122048584000 136:50:49658234793013712680687342172364536160 136:51:83737415533317240990962969153399021760 136:52:136878467698691643927535622654594554800 136:53:216939458239435813017226269867659294400 136:54:333443982108762453341292229611402248800 136:55:497134664234882203163381142329726989120 136:56:719069782196883186718462009441212252120 136:57:1009220746942993946271525627285911932800 136:58:1374628258767181409576733181992880046400 136:59:1817305155658307626220087935516010908800 136:60:2332208283094828120315779517245547332960 136:61:2905702123200113723672118742797731103360 136:62:3514962245806589181861433963061771496000 136:63:4128685812534723800916604972485255408000 136:64:4709282254922419335420502546740994449750 136:65:5216435728529449110004248974851563082800 136:66:5611620253418043739550025412340317861800 136:67:5862886831929299429380623565131675378000 136:68:5949105755928259715106809205795376486500 136:69:5862886831929299429380623565131675378000 136:70:5611620253418043739550025412340317861800 136:71:5216435728529449110004248974851563082800 136:72:4709282254922419335420502546740994449750 136:73:4128685812534723800916604972485255408000 136:74:3514962245806589181861433963061771496000 136:75:2905702123200113723672118742797731103360 136:76:2332208283094828120315779517245547332960 136:77:1817305155658307626220087935516010908800 136:78:1374628258767181409576733181992880046400 136:79:1009220746942993946271525627285911932800 136:80:719069782196883186718462009441212252120 136:81:497134664234882203163381142329726989120 136:82:333443982108762453341292229611402248800 136:83:216939458239435813017226269867659294400 136:84:136878467698691643927535622654594554800 136:85:83737415533317240990962969153399021760 136:86:49658234793013712680687342172364536160 136:87:28539215398283742919935254122048584000 136:88:15891154028589811398600311954322507000 136:89:8570510037891134237447359256263824000 136:90:4475710797565370101778065389382219200 136:91:2262447216351725545953747339687715200 136:92:1106631790606822277912159024847252000 136:93:523567728889249249764892441863216000 136:94:239504386619550188722238031916152000 136:95:105886149873906399224568393057667200 136:96:45222209841980858002159417868378700 136:97:18648333955456023918416254791084000 136:98:7421275757783519722635040171962000 136:99:2848570492886603529900318449844000 136:100:1053971082368043306063117826442280 136:101:375672861042074841765071700514080 136:102:128907354279143328056642250176400 136:103:42551942189231778193454723359200 136:104:13502058579275468080615441065900 136:105:4114913090826809319806610610560 136:106:1203417979392746121830235178560 136:107:337406910110115735092589302400 136:108:90600003640679225163750831200 136:109:23273395430633195454908470400 136:110:5712560696609966157113897280 136:111:1338077280287019099864516480 136:112:298677964349781049076901000 136:113:63436027826502169715448000 136:114:12798496842189034240836000 136:115:2448408091549206550420800 136:116:443246292435632220334800 136:117:75768596997543969288000 136:118:12200028330113012004000 136:119:1845382436487682488000 136:120:261429178502421685800 136:121:34569147570568156800 136:122:4250305029168216000 136:123:483774556165488000 136:124:50718300243156000 136:125:4868956823342976 136:126:425067659180736 136:127:33469894423680 136:128:2353351951665 136:129:145944307080 136:130:7858539612 136:131:359933112 136:132:13633830 136:133:410040 136:134:9180 136:135:136 136:136:1 # binomial(137, k) for 0 <= k <= 137 137:0:1 137:1:137 137:2:9316 137:3:419220 137:4:14043870 137:5:373566942 137:6:8218472724 137:7:153802846692 137:8:2499296258745 137:9:35823246375345 137:10:458537553604416 137:11:5294024482523712 137:12:55587257066498976 137:13:534492856408644000 137:14:4734079585333704000 137:15:38819452599736372800 137:16:295998326072989842600 137:17:2106811614990104173800 137:18:14045410766600694492000 137:19:87968625327656981292000 137:20:519014889433176189622800 137:21:2891654383984838770755600 137:22:15246904933738240791256800 137:23:76234524668691203956284000 137:24:362113992176283218792349000 137:25:1636755244636800148941417480 137:26:7050637976896985256978413760 137:27:28985956127243161612022367680 137:28:113873399071312420618659301600 137:29:428006913750794960256340133600 137:30:1540824889502861856922824480960 137:31:5318331070219555441636845789120 137:32:17616971670102277400422051676460 137:33:56054000768507246274070164425100 137:34:171459296468375106250096973535600 137:35:504580215321218169821713950690480 137:36:1429643943410118147828189526956360 137:37:3902541575254646835963436276286280 137:38:10269846250670123252535358621806000 137:39:26069609713239543641051294963046000 137:40:63870543797436881920575672659462700 137:41:151108359715887257226727810926045900 137:42:345390536493456587946806424973819200 137:43:763072115508799438487130473779368000 137:44:1630199519496071527677051466710468000 137:45:3369079006958547823865906364534967200 137:46:6738158013917095647731812729069934400 137:47:13046220835456504339225424645646043200 137:48:24461664066480945636047671210586331000 137:49:44430369426873554318535566076371091000 137:50:78197450191297455600622596294413120160 137:51:133395650326330953671650311325763557920 137:52:220615883232008884918498591807993576560 137:53:353817925938127456944761892522253849200 137:54:550383440348198266358518499479061543200 137:55:830578646343644656504673371941129237920 137:56:1216204446431765389881843151770939241240 137:57:1728290529139877132989987636727124184920 137:58:2383849005710175355848258809278791979200 137:59:3191933414425489035796821117508890955200 137:60:4149513438753135746535867452761558241760 137:61:5237910406294941843987898260043278436320 137:62:6420664369006702905533552705859502599360 137:63:7643648058341312982778038935547026904000 137:64:8837968067457143136337107519226249857750 137:65:9925717983451868445424751521592557532550 137:66:10828055981947492849554274387191880944600 137:67:11474507085347343168930648977471993239800 137:68:11811992587857559144487432770927051864500 137:69:11811992587857559144487432770927051864500 137:70:11474507085347343168930648977471993239800 137:71:10828055981947492849554274387191880944600 137:72:9925717983451868445424751521592557532550 137:73:8837968067457143136337107519226249857750 137:74:7643648058341312982778038935547026904000 137:75:6420664369006702905533552705859502599360 137:76:5237910406294941843987898260043278436320 137:77:4149513438753135746535867452761558241760 137:78:3191933414425489035796821117508890955200 137:79:2383849005710175355848258809278791979200 137:80:1728290529139877132989987636727124184920 137:81:1216204446431765389881843151770939241240 137:82:830578646343644656504673371941129237920 137:83:550383440348198266358518499479061543200 137:84:353817925938127456944761892522253849200 137:85:220615883232008884918498591807993576560 137:86:133395650326330953671650311325763557920 137:87:78197450191297455600622596294413120160 137:88:44430369426873554318535566076371091000 137:89:24461664066480945636047671210586331000 137:90:13046220835456504339225424645646043200 137:91:6738158013917095647731812729069934400 137:92:3369079006958547823865906364534967200 137:93:1630199519496071527677051466710468000 137:94:763072115508799438487130473779368000 137:95:345390536493456587946806424973819200 137:96:151108359715887257226727810926045900 137:97:63870543797436881920575672659462700 137:98:26069609713239543641051294963046000 137:99:10269846250670123252535358621806000 137:100:3902541575254646835963436276286280 137:101:1429643943410118147828189526956360 137:102:504580215321218169821713950690480 137:103:171459296468375106250096973535600 137:104:56054000768507246274070164425100 137:105:17616971670102277400422051676460 137:106:5318331070219555441636845789120 137:107:1540824889502861856922824480960 137:108:428006913750794960256340133600 137:109:113873399071312420618659301600 137:110:28985956127243161612022367680 137:111:7050637976896985256978413760 137:112:1636755244636800148941417480 137:113:362113992176283218792349000 137:114:76234524668691203956284000 137:115:15246904933738240791256800 137:116:2891654383984838770755600 137:117:519014889433176189622800 137:118:87968625327656981292000 137:119:14045410766600694492000 137:120:2106811614990104173800 137:121:295998326072989842600 137:122:38819452599736372800 137:123:4734079585333704000 137:124:534492856408644000 137:125:55587257066498976 137:126:5294024482523712 137:127:458537553604416 137:128:35823246375345 137:129:2499296258745 137:130:153802846692 137:131:8218472724 137:132:373566942 137:133:14043870 137:134:419220 137:135:9316 137:136:137 137:137:1 # binomial(138, k) for 0 <= k <= 138 138:0:1 138:1:138 138:2:9453 138:3:428536 138:4:14463090 138:5:387610812 138:6:8592039666 138:7:162021319416 138:8:2653099105437 138:9:38322542634090 138:10:494360799979761 138:11:5752562036128128 138:12:60881281549022688 138:13:590080113475142976 138:14:5268572441742348000 138:15:43553532185070076800 138:16:334817778672726215400 138:17:2402809941063094016400 138:18:16152222381590798665800 138:19:102014036094257675784000 138:20:606983514760833170914800 138:21:3410669273418014960378400 138:22:18138559317723079562012400 138:23:91481429602429444747540800 138:24:438348516844974422748633000 138:25:1998869236813083367733766480 138:26:8687393221533785405919831240 138:27:36036594104140146869000781440 138:28:142859355198555582230681669280 138:29:541880312822107380874999435200 138:30:1968831803253656817179164614560 138:31:6859155959722417298559670270080 138:32:22935302740321832842058897465580 138:33:73670972438609523674492216101560 138:34:227513297236882352524167137960700 138:35:676039511789593276071810924226080 138:36:1934224158731336317649903477646840 138:37:5332185518664764983791625803242640 138:38:14172387825924770088498794898092280 138:39:36339455963909666893586653584852000 138:40:89940153510676425561626967622508700 138:41:214978903513324139147303483585508600 138:42:496498896209343845173534235899865100 138:43:1108462652002256026433936898753187200 138:44:2393271635004870966164181940489836000 138:45:4999278526454619351542957831245435200 138:46:10107237020875643471597719093604901600 138:47:19784378849373599986957237374715977600 138:48:37507884901937449975273095856232374200 138:49:68892033493354499954583237286957422000 138:50:122627819618171009919158162370784211160 138:51:211593100517628409272272907620176678080 138:52:354011533558339838590148903133757134480 138:53:574433809170136341863260484330247425760 138:54:904201366286325723303280392001315392400 138:55:1380962086691842922863191871420190781120 138:56:2046783092775410046386516523712068479160 138:57:2944494975571642522871830788498063426160 138:58:4112139534850052488838246446005916164120 138:59:5575782420135664391645079926787682934400 138:60:7341446853178624782332688570270449196960 138:61:9387423845048077590523765712804836678080 138:62:11658574775301644749521450965902781035680 138:63:14064312427348015888311591641406529503360 138:64:16481616125798456119115146454773276761750 138:65:18763686050909011581761859040818807390300 138:66:20753773965399361294979025908784438477150 138:67:22302563067294836018484923364663874184400 138:68:23286499673204902313418081748399045104300 138:69:23623985175715118288974865541854103729000 138:70:23286499673204902313418081748399045104300 138:71:22302563067294836018484923364663874184400 138:72:20753773965399361294979025908784438477150 138:73:18763686050909011581761859040818807390300 138:74:16481616125798456119115146454773276761750 138:75:14064312427348015888311591641406529503360 138:76:11658574775301644749521450965902781035680 138:77:9387423845048077590523765712804836678080 138:78:7341446853178624782332688570270449196960 138:79:5575782420135664391645079926787682934400 138:80:4112139534850052488838246446005916164120 138:81:2944494975571642522871830788498063426160 138:82:2046783092775410046386516523712068479160 138:83:1380962086691842922863191871420190781120 138:84:904201366286325723303280392001315392400 138:85:574433809170136341863260484330247425760 138:86:354011533558339838590148903133757134480 138:87:211593100517628409272272907620176678080 138:88:122627819618171009919158162370784211160 138:89:68892033493354499954583237286957422000 138:90:37507884901937449975273095856232374200 138:91:19784378849373599986957237374715977600 138:92:10107237020875643471597719093604901600 138:93:4999278526454619351542957831245435200 138:94:2393271635004870966164181940489836000 138:95:1108462652002256026433936898753187200 138:96:496498896209343845173534235899865100 138:97:214978903513324139147303483585508600 138:98:89940153510676425561626967622508700 138:99:36339455963909666893586653584852000 138:100:14172387825924770088498794898092280 138:101:5332185518664764983791625803242640 138:102:1934224158731336317649903477646840 138:103:676039511789593276071810924226080 138:104:227513297236882352524167137960700 138:105:73670972438609523674492216101560 138:106:22935302740321832842058897465580 138:107:6859155959722417298559670270080 138:108:1968831803253656817179164614560 138:109:541880312822107380874999435200 138:110:142859355198555582230681669280 138:111:36036594104140146869000781440 138:112:8687393221533785405919831240 138:113:1998869236813083367733766480 138:114:438348516844974422748633000 138:115:91481429602429444747540800 138:116:18138559317723079562012400 138:117:3410669273418014960378400 138:118:606983514760833170914800 138:119:102014036094257675784000 138:120:16152222381590798665800 138:121:2402809941063094016400 138:122:334817778672726215400 138:123:43553532185070076800 138:124:5268572441742348000 138:125:590080113475142976 138:126:60881281549022688 138:127:5752562036128128 138:128:494360799979761 138:129:38322542634090 138:130:2653099105437 138:131:162021319416 138:132:8592039666 138:133:387610812 138:134:14463090 138:135:428536 138:136:9453 138:137:138 138:138:1 # binomial(139, k) for 0 <= k <= 139 139:0:1 139:1:139 139:2:9591 139:3:437989 139:4:14891626 139:5:402073902 139:6:8979650478 139:7:170613359082 139:8:2815120424853 139:9:40975641739527 139:10:532683342613851 139:11:6246922836107889 139:12:66633843585150816 139:13:650961395024165664 139:14:5858652555217490976 139:15:48822104626812424800 139:16:378371310857796292200 139:17:2737627719735820231800 139:18:18555032322653892682200 139:19:118166258475848474449800 139:20:708997550855090846698800 139:21:4017652788178848131293200 139:22:21549228591141094522390800 139:23:109619988920152524309553200 139:24:529829946447403867496173800 139:25:2437217753658057790482399480 139:26:10686262458346868773653597720 139:27:44723987325673932274920612680 139:28:178895949302695729099682450720 139:29:684739668020662963105681104480 139:30:2510712116075764198054164049760 139:31:8827987762976074115738834884640 139:32:29794458700044250140618567735660 139:33:96606275178931356516551113567140 139:34:301184269675491876198659354062260 139:35:903552809026475628595978062186780 139:36:2610263670520929593721714401872920 139:37:7266409677396101301441529280889480 139:38:19504573344589535072290420701334920 139:39:50511843789834436982085448482944280 139:40:126279609474586092455213621207360700 139:41:304919057024000564708930451208017300 139:42:711477799722667984320837719485373700 139:43:1604961548211599871607471134653052300 139:44:3501734287007126992598118839243023200 139:45:7392550161459490317707139771735271200 139:46:15106515547330262823140676924850336800 139:47:29891615870249243458554956468320879200 139:48:57292263751311049962230333230948351800 139:49:106399918395291949929856333143189796200 139:50:191519853111525509873741399657741633160 139:51:334220920135799419191431069990960889240 139:52:565604634075968247862421810753933812560 139:53:928445342728476180453409387464004560240 139:54:1478635175456462065166540876331562818160 139:55:2285163452978168646166472263421506173520 139:56:3427745179467252969249708395132259260280 139:57:4991278068347052569258347312210131905320 139:58:7056634510421695011710077234503979590280 139:59:9687921954985716880483326372793599098520 139:60:12917229273314289173977768497058132131360 139:61:16728870698226702372856454283075285875040 139:62:21045998620349722340045216678707617713760 139:63:25722887202649660637833042607309310539040 139:64:30545928553146472007426738096179806265110 139:65:35245302176707467700877005495592084152050 139:66:39517460016308372876740884949603245867450 139:67:43056337032694197313463949273448312661550 139:68:45589062740499738331903005113062919288700 139:69:46910484848920020602392947290253148833300 139:70:46910484848920020602392947290253148833300 139:71:45589062740499738331903005113062919288700 139:72:43056337032694197313463949273448312661550 139:73:39517460016308372876740884949603245867450 139:74:35245302176707467700877005495592084152050 139:75:30545928553146472007426738096179806265110 139:76:25722887202649660637833042607309310539040 139:77:21045998620349722340045216678707617713760 139:78:16728870698226702372856454283075285875040 139:79:12917229273314289173977768497058132131360 139:80:9687921954985716880483326372793599098520 139:81:7056634510421695011710077234503979590280 139:82:4991278068347052569258347312210131905320 139:83:3427745179467252969249708395132259260280 139:84:2285163452978168646166472263421506173520 139:85:1478635175456462065166540876331562818160 139:86:928445342728476180453409387464004560240 139:87:565604634075968247862421810753933812560 139:88:334220920135799419191431069990960889240 139:89:191519853111525509873741399657741633160 139:90:106399918395291949929856333143189796200 139:91:57292263751311049962230333230948351800 139:92:29891615870249243458554956468320879200 139:93:15106515547330262823140676924850336800 139:94:7392550161459490317707139771735271200 139:95:3501734287007126992598118839243023200 139:96:1604961548211599871607471134653052300 139:97:711477799722667984320837719485373700 139:98:304919057024000564708930451208017300 139:99:126279609474586092455213621207360700 139:100:50511843789834436982085448482944280 139:101:19504573344589535072290420701334920 139:102:7266409677396101301441529280889480 139:103:2610263670520929593721714401872920 139:104:903552809026475628595978062186780 139:105:301184269675491876198659354062260 139:106:96606275178931356516551113567140 139:107:29794458700044250140618567735660 139:108:8827987762976074115738834884640 139:109:2510712116075764198054164049760 139:110:684739668020662963105681104480 139:111:178895949302695729099682450720 139:112:44723987325673932274920612680 139:113:10686262458346868773653597720 139:114:2437217753658057790482399480 139:115:529829946447403867496173800 139:116:109619988920152524309553200 139:117:21549228591141094522390800 139:118:4017652788178848131293200 139:119:708997550855090846698800 139:120:118166258475848474449800 139:121:18555032322653892682200 139:122:2737627719735820231800 139:123:378371310857796292200 139:124:48822104626812424800 139:125:5858652555217490976 139:126:650961395024165664 139:127:66633843585150816 139:128:6246922836107889 139:129:532683342613851 139:130:40975641739527 139:131:2815120424853 139:132:170613359082 139:133:8979650478 139:134:402073902 139:135:14891626 139:136:437989 139:137:9591 139:138:139 139:139:1 # binomial(140, k) for 0 <= k <= 140 140:0:1 140:1:140 140:2:9730 140:3:447580 140:4:15329615 140:5:416965528 140:6:9381724380 140:7:179593009560 140:8:2985733783935 140:9:43790762164380 140:10:573658984353378 140:11:6779606178721740 140:12:72880766421258705 140:13:717595238609316480 140:14:6509613950241656640 140:15:54680757182029915776 140:16:427193415484608717000 140:17:3115999030593616524000 140:18:21292660042389712914000 140:19:136721290798502367132000 140:20:827163809330939321148600 140:21:4726650339033938977992000 140:22:25566881379319942653684000 140:23:131169217511293618831944000 140:24:639449935367556391805727000 140:25:2967047700105461657978573280 140:26:13123480212004926564135997200 140:27:55410249784020801048574210400 140:28:223619936628369661374603063400 140:29:863635617323358692205363555200 140:30:3195451784096427161159845154240 140:31:11338699879051838313792998934400 140:32:38622446463020324256357402620300 140:33:126400733878975606657169681302800 140:34:397790544854423232715210467629400 140:35:1204737078701967504794637416249040 140:36:3513816479547405222317692464059700 140:37:9876673347917030895163243682762400 140:38:26770983021985636373731949982224400 140:39:70016417134423972054375869184279200 140:40:176791453264420529437299069690304980 140:41:431198666498586657164144072415378000 140:42:1016396856746668549029768170693391000 140:43:2316439347934267855928308854138426000 140:44:5106695835218726864205589973896075500 140:45:10894284448466617310305258610978294400 140:46:22499065708789753140847816696585608000 140:47:44998131417579506281695633393171216000 140:48:87183879621560293420785289699269231000 140:49:163692182146602999892086666374138148000 140:50:297919771506817459803597732800931429360 140:51:525740773247324929065172469648702522400 140:52:899825554211767667053852880744894701800 140:53:1494049976804444428315831198217938372800 140:54:2407080518184938245619950263795567378400 140:55:3763798628434630711333013139753068991680 140:56:5712908632445421615416180658553765433800 140:57:8419023247814305538508055707342391165600 140:58:12047912578768747580968424546714111495600 140:59:16744556465407411892193403607297578688800 140:60:22605151228300006054461094869851731229880 140:61:29646099971540991546834222780133418006400 140:62:37774869318576424712901670961782903588800 140:63:46768885822999382977878259286016928252800 140:64:56268815755796132645259780703489116804150 140:65:65791230729853939708303743591771890417160 140:66:74762762193015840577617890445195330019500 140:67:82573797049002570190204834223051558529000 140:68:88645399773193935645366954386511231950250 140:69:92499547589419758934295952403316068122000 140:70:93820969697840041204785894580506297666600 140:71:92499547589419758934295952403316068122000 140:72:88645399773193935645366954386511231950250 140:73:82573797049002570190204834223051558529000 140:74:74762762193015840577617890445195330019500 140:75:65791230729853939708303743591771890417160 140:76:56268815755796132645259780703489116804150 140:77:46768885822999382977878259286016928252800 140:78:37774869318576424712901670961782903588800 140:79:29646099971540991546834222780133418006400 140:80:22605151228300006054461094869851731229880 140:81:16744556465407411892193403607297578688800 140:82:12047912578768747580968424546714111495600 140:83:8419023247814305538508055707342391165600 140:84:5712908632445421615416180658553765433800 140:85:3763798628434630711333013139753068991680 140:86:2407080518184938245619950263795567378400 140:87:1494049976804444428315831198217938372800 140:88:899825554211767667053852880744894701800 140:89:525740773247324929065172469648702522400 140:90:297919771506817459803597732800931429360 140:91:163692182146602999892086666374138148000 140:92:87183879621560293420785289699269231000 140:93:44998131417579506281695633393171216000 140:94:22499065708789753140847816696585608000 140:95:10894284448466617310305258610978294400 140:96:5106695835218726864205589973896075500 140:97:2316439347934267855928308854138426000 140:98:1016396856746668549029768170693391000 140:99:431198666498586657164144072415378000 140:100:176791453264420529437299069690304980 140:101:70016417134423972054375869184279200 140:102:26770983021985636373731949982224400 140:103:9876673347917030895163243682762400 140:104:3513816479547405222317692464059700 140:105:1204737078701967504794637416249040 140:106:397790544854423232715210467629400 140:107:126400733878975606657169681302800 140:108:38622446463020324256357402620300 140:109:11338699879051838313792998934400 140:110:3195451784096427161159845154240 140:111:863635617323358692205363555200 140:112:223619936628369661374603063400 140:113:55410249784020801048574210400 140:114:13123480212004926564135997200 140:115:2967047700105461657978573280 140:116:639449935367556391805727000 140:117:131169217511293618831944000 140:118:25566881379319942653684000 140:119:4726650339033938977992000 140:120:827163809330939321148600 140:121:136721290798502367132000 140:122:21292660042389712914000 140:123:3115999030593616524000 140:124:427193415484608717000 140:125:54680757182029915776 140:126:6509613950241656640 140:127:717595238609316480 140:128:72880766421258705 140:129:6779606178721740 140:130:573658984353378 140:131:43790762164380 140:132:2985733783935 140:133:179593009560 140:134:9381724380 140:135:416965528 140:136:15329615 140:137:447580 140:138:9730 140:139:140 140:140:1 # binomial(141, k) for 0 <= k <= 141 141:0:1 141:1:141 141:2:9870 141:3:457310 141:4:15777195 141:5:432295143 141:6:9798689908 141:7:188974733940 141:8:3165326793495 141:9:46776495948315 141:10:617449746517758 141:11:7353265163075118 141:12:79660372599980445 141:13:790476005030575185 141:14:7227209188850973120 141:15:61190371132271572416 141:16:481874172666638632776 141:17:3543192446078225241000 141:18:24408659072983329438000 141:19:158013950840892080046000 141:20:963885100129441688280600 141:21:5553814148364878299140600 141:22:30293531718353881631676000 141:23:156736098890613561485628000 141:24:770619152878850010637671000 141:25:3606497635473018049784300280 141:26:16090527912110388222114570480 141:27:68533729996025727612710207600 141:28:279030186412390462423177273800 141:29:1087255553951728353579966618600 141:30:4059087401419785853365208709440 141:31:14534151663148265474952844088640 141:32:49961146342072162570150401554700 141:33:165023180341995930913527083923100 141:34:524191278733398839372380148932200 141:35:1602527623556390737509847883878440 141:36:4718553558249372727112329880308740 141:37:13390489827464436117480936146822100 141:38:36647656369902667268895193664986800 141:39:96787400156409608428107819166503600 141:40:246807870398844501491674938874584180 141:41:607990119763007186601443142105682980 141:42:1447595523245255206193912243108769000 141:43:3332836204680936404958077024831817000 141:44:7423135183152994720133898828034501500 141:45:16000980283685344174510848584874369900 141:46:33393350157256370451153075307563902400 141:47:67497197126369259422543450089756824000 141:48:132182011039139799702480923092440447000 141:49:250876061768163293312871956073407379000 141:50:461611953653420459695684399175069577360 141:51:823660544754142388868770202449633951760 141:52:1425566327459092596119025350393597224200 141:53:2393875531016212095369684078962833074600 141:54:3901130494989382673935781462013505751200 141:55:6170879146619568956952963403548636370080 141:56:9476707260880052326749193798306834425480 141:57:14131931880259727153924236365896156599400 141:58:20466935826583053119476480254056502661200 141:59:28792469044176159473161828154011690184400 141:60:39349707693707417946654498477149309918680 141:61:52251251199840997601295317649985149236280 141:62:67420969290117416259735893741916321595200 141:63:84543755141575807690779930247799831841600 141:64:103037701578795515623138039989506045056950 141:65:122060046485650072353563524295261007221310 141:66:140553992922869780285921634036967220436660 141:67:157336559242018410767822724668246888548500 141:68:171219196822196505835571788609562790479250 141:69:181144947362613694579662906789827300072250 141:70:186320517287259800139081846983822365788600 141:71:186320517287259800139081846983822365788600 141:72:181144947362613694579662906789827300072250 141:73:171219196822196505835571788609562790479250 141:74:157336559242018410767822724668246888548500 141:75:140553992922869780285921634036967220436660 141:76:122060046485650072353563524295261007221310 141:77:103037701578795515623138039989506045056950 141:78:84543755141575807690779930247799831841600 141:79:67420969290117416259735893741916321595200 141:80:52251251199840997601295317649985149236280 141:81:39349707693707417946654498477149309918680 141:82:28792469044176159473161828154011690184400 141:83:20466935826583053119476480254056502661200 141:84:14131931880259727153924236365896156599400 141:85:9476707260880052326749193798306834425480 141:86:6170879146619568956952963403548636370080 141:87:3901130494989382673935781462013505751200 141:88:2393875531016212095369684078962833074600 141:89:1425566327459092596119025350393597224200 141:90:823660544754142388868770202449633951760 141:91:461611953653420459695684399175069577360 141:92:250876061768163293312871956073407379000 141:93:132182011039139799702480923092440447000 141:94:67497197126369259422543450089756824000 141:95:33393350157256370451153075307563902400 141:96:16000980283685344174510848584874369900 141:97:7423135183152994720133898828034501500 141:98:3332836204680936404958077024831817000 141:99:1447595523245255206193912243108769000 141:100:607990119763007186601443142105682980 141:101:246807870398844501491674938874584180 141:102:96787400156409608428107819166503600 141:103:36647656369902667268895193664986800 141:104:13390489827464436117480936146822100 141:105:4718553558249372727112329880308740 141:106:1602527623556390737509847883878440 141:107:524191278733398839372380148932200 141:108:165023180341995930913527083923100 141:109:49961146342072162570150401554700 141:110:14534151663148265474952844088640 141:111:4059087401419785853365208709440 141:112:1087255553951728353579966618600 141:113:279030186412390462423177273800 141:114:68533729996025727612710207600 141:115:16090527912110388222114570480 141:116:3606497635473018049784300280 141:117:770619152878850010637671000 141:118:156736098890613561485628000 141:119:30293531718353881631676000 141:120:5553814148364878299140600 141:121:963885100129441688280600 141:122:158013950840892080046000 141:123:24408659072983329438000 141:124:3543192446078225241000 141:125:481874172666638632776 141:126:61190371132271572416 141:127:7227209188850973120 141:128:790476005030575185 141:129:79660372599980445 141:130:7353265163075118 141:131:617449746517758 141:132:46776495948315 141:133:3165326793495 141:134:188974733940 141:135:9798689908 141:136:432295143 141:137:15777195 141:138:457310 141:139:9870 141:140:141 141:141:1 # binomial(142, k) for 0 <= k <= 142 142:0:1 142:1:142 142:2:10011 142:3:467180 142:4:16234505 142:5:448072338 142:6:10230985051 142:7:198773423848 142:8:3354301527435 142:9:49941822741810 142:10:664226242466073 142:11:7970714909592876 142:12:87013637763055563 142:13:870136377630555630 142:14:8017685193881548305 142:15:68417580321122545536 142:16:543064543798910205192 142:17:4025066618744863873776 142:18:27951851519061554679000 142:19:182422609913875409484000 142:20:1121899050970333768326600 142:21:6517699248494319987421200 142:22:35847345866718759930816600 142:23:187029630608967443117304000 142:24:927355251769463572123299000 142:25:4377116788351868060421971280 142:26:19697025547583406271898870760 142:27:84624257908136115834824778080 142:28:347563916408416190035887481400 142:29:1366285740364118816003143892400 142:30:5146342955371514206945175328040 142:31:18593239064568051328318052798080 142:32:64495298005220428045103245643340 142:33:214984326684068093483677485477800 142:34:689214459075394770285907232855300 142:35:2126718902289789576882228032810640 142:36:6321081181805763464622177764187180 142:37:18109043385713808844593266027130840 142:38:50038146197367103386376129811808900 142:39:133435056526312275697003012831490400 142:40:343595270555254109919782758041087780 142:41:854797990161851688093118080980267160 142:42:2055585643008262392795355385214451980 142:43:4780431727926191611151989267940586000 142:44:10755971387833931125091975852866318500 142:45:23424115466838338894644747412908871400 142:46:49394330440941714625663923892438272300 142:47:100890547283625629873696525397320726400 142:48:199679208165509059125024373182197271000 142:49:383058072807303093015352879165847826000 142:50:712488015421583753008556355248476956360 142:51:1285272498407562848564454601624703529120 142:52:2249226872213234984987795552843231175960 142:53:3819441858475304691488709429356430298800 142:54:6295006026005594769305465540976338825800 142:55:10072009641608951630888744865562142121280 142:56:15647586407499621283702157201855470795560 142:57:23608639141139779480673430164202991024880 142:58:34598867706842780273400716619952659260600 142:59:49259404870759212592638308408068192845600 142:60:68142176737883577419816326631161000103080 142:61:91600958893548415547949816127134459154960 142:62:119672220489958413861031211391901470831480 142:63:151964724431693223950515823989716153436800 142:64:187581456720371323313917970237305876898550 142:65:225097748064445587976701564284767052278260 142:66:262614039408519852639485158332228227657970 142:67:297890552164888191053744358705214108985160 142:68:328555756064214916603394513277809679027750 142:69:352364144184810200415234695399390090551500 142:70:367465464649873494718744753773649665860850 142:71:372641034574519600278163693967644731577200 142:72:367465464649873494718744753773649665860850 142:73:352364144184810200415234695399390090551500 142:74:328555756064214916603394513277809679027750 142:75:297890552164888191053744358705214108985160 142:76:262614039408519852639485158332228227657970 142:77:225097748064445587976701564284767052278260 142:78:187581456720371323313917970237305876898550 142:79:151964724431693223950515823989716153436800 142:80:119672220489958413861031211391901470831480 142:81:91600958893548415547949816127134459154960 142:82:68142176737883577419816326631161000103080 142:83:49259404870759212592638308408068192845600 142:84:34598867706842780273400716619952659260600 142:85:23608639141139779480673430164202991024880 142:86:15647586407499621283702157201855470795560 142:87:10072009641608951630888744865562142121280 142:88:6295006026005594769305465540976338825800 142:89:3819441858475304691488709429356430298800 142:90:2249226872213234984987795552843231175960 142:91:1285272498407562848564454601624703529120 142:92:712488015421583753008556355248476956360 142:93:383058072807303093015352879165847826000 142:94:199679208165509059125024373182197271000 142:95:100890547283625629873696525397320726400 142:96:49394330440941714625663923892438272300 142:97:23424115466838338894644747412908871400 142:98:10755971387833931125091975852866318500 142:99:4780431727926191611151989267940586000 142:100:2055585643008262392795355385214451980 142:101:854797990161851688093118080980267160 142:102:343595270555254109919782758041087780 142:103:133435056526312275697003012831490400 142:104:50038146197367103386376129811808900 142:105:18109043385713808844593266027130840 142:106:6321081181805763464622177764187180 142:107:2126718902289789576882228032810640 142:108:689214459075394770285907232855300 142:109:214984326684068093483677485477800 142:110:64495298005220428045103245643340 142:111:18593239064568051328318052798080 142:112:5146342955371514206945175328040 142:113:1366285740364118816003143892400 142:114:347563916408416190035887481400 142:115:84624257908136115834824778080 142:116:19697025547583406271898870760 142:117:4377116788351868060421971280 142:118:927355251769463572123299000 142:119:187029630608967443117304000 142:120:35847345866718759930816600 142:121:6517699248494319987421200 142:122:1121899050970333768326600 142:123:182422609913875409484000 142:124:27951851519061554679000 142:125:4025066618744863873776 142:126:543064543798910205192 142:127:68417580321122545536 142:128:8017685193881548305 142:129:870136377630555630 142:130:87013637763055563 142:131:7970714909592876 142:132:664226242466073 142:133:49941822741810 142:134:3354301527435 142:135:198773423848 142:136:10230985051 142:137:448072338 142:138:16234505 142:139:467180 142:140:10011 142:141:142 142:142:1 # binomial(143, k) for 0 <= k <= 143 143:0:1 143:1:143 143:2:10153 143:3:477191 143:4:16701685 143:5:464306843 143:6:10679057389 143:7:209004408899 143:8:3553074951283 143:9:53296124269245 143:10:714168065207883 143:11:8634941152058949 143:12:94984352672648439 143:13:957150015393611193 143:14:8887821571512103935 143:15:76435265515004093841 143:16:611482124120032750728 143:17:4568131162543774078968 143:18:31976918137806418552776 143:19:210374461432936964163000 143:20:1304321660884209177810600 143:21:7639598299464653755747800 143:22:42365045115213079918237800 143:23:222876976475686203048120600 143:24:1114384882378431015240603000 143:25:5304472040121331632545270280 143:26:24074142335935274332320842040 143:27:104321283455719522106723648840 143:28:432188174316552305870712259480 143:29:1713849656772535006039031373800 143:30:6512628695735633022948319220440 143:31:23739582019939565535263228126120 143:32:83088537069788479373421298441420 143:33:279479624689288521528780731121140 143:34:904198785759462863769584718333100 143:35:2815933361365184347168135265665940 143:36:8447800084095553041504405796997820 143:37:24430124567519572309215443791318020 143:38:68147189583080912230969395838939740 143:39:183473202723679379083379142643299300 143:40:477030327081566385616785770872578180 143:41:1198393260717105798012900839021354940 143:42:2910383633170114080888473466194719140 143:43:6836017370934454003947344653155037980 143:44:15536403115760122736243965120806904500 143:45:34180086854672270019736723265775189900 143:46:72818445907780053520308671305347143700 143:47:150284877724567344499360449289758998700 143:48:300569755449134688998720898579517997400 143:49:582737280972812152140377252348045097000 143:50:1095546088228886846023909234414324782360 143:51:1997760513829146601573010956873180485480 143:52:3534499370620797833552250154467934705080 143:53:6068668730688539676476504982199661474760 143:54:10114447884480899460794174970332769124600 143:55:16367015667614546400194210406538480947080 143:56:25719596049108572914590902067417612916840 143:57:39256225548639400764375587366058461820440 143:58:58207506847982559754074146784155650285480 143:59:83858272577601992866039025028020852106200 143:60:117401581608642790012454635039229192948680 143:61:159743135631431992967766142758295459258040 143:62:211273179383506829408981027519035929986440 143:63:271636944921651637811547035381617624268280 143:64:339546181152064547264433794227022030335350 143:65:412679204784816911290619534522072929176810 143:66:487711787472965440616186722616995279936230 143:67:560504591573408043693229517037442336643130 143:68:626446308229103107657138871983023788012910 143:69:680919900249025117018629208677199769579250 143:70:719829608834683695133979449173039756412350 143:71:740106499224393094996908447741294397438050 143:72:740106499224393094996908447741294397438050 143:73:719829608834683695133979449173039756412350 143:74:680919900249025117018629208677199769579250 143:75:626446308229103107657138871983023788012910 143:76:560504591573408043693229517037442336643130 143:77:487711787472965440616186722616995279936230 143:78:412679204784816911290619534522072929176810 143:79:339546181152064547264433794227022030335350 143:80:271636944921651637811547035381617624268280 143:81:211273179383506829408981027519035929986440 143:82:159743135631431992967766142758295459258040 143:83:117401581608642790012454635039229192948680 143:84:83858272577601992866039025028020852106200 143:85:58207506847982559754074146784155650285480 143:86:39256225548639400764375587366058461820440 143:87:25719596049108572914590902067417612916840 143:88:16367015667614546400194210406538480947080 143:89:10114447884480899460794174970332769124600 143:90:6068668730688539676476504982199661474760 143:91:3534499370620797833552250154467934705080 143:92:1997760513829146601573010956873180485480 143:93:1095546088228886846023909234414324782360 143:94:582737280972812152140377252348045097000 143:95:300569755449134688998720898579517997400 143:96:150284877724567344499360449289758998700 143:97:72818445907780053520308671305347143700 143:98:34180086854672270019736723265775189900 143:99:15536403115760122736243965120806904500 143:100:6836017370934454003947344653155037980 143:101:2910383633170114080888473466194719140 143:102:1198393260717105798012900839021354940 143:103:477030327081566385616785770872578180 143:104:183473202723679379083379142643299300 143:105:68147189583080912230969395838939740 143:106:24430124567519572309215443791318020 143:107:8447800084095553041504405796997820 143:108:2815933361365184347168135265665940 143:109:904198785759462863769584718333100 143:110:279479624689288521528780731121140 143:111:83088537069788479373421298441420 143:112:23739582019939565535263228126120 143:113:6512628695735633022948319220440 143:114:1713849656772535006039031373800 143:115:432188174316552305870712259480 143:116:104321283455719522106723648840 143:117:24074142335935274332320842040 143:118:5304472040121331632545270280 143:119:1114384882378431015240603000 143:120:222876976475686203048120600 143:121:42365045115213079918237800 143:122:7639598299464653755747800 143:123:1304321660884209177810600 143:124:210374461432936964163000 143:125:31976918137806418552776 143:126:4568131162543774078968 143:127:611482124120032750728 143:128:76435265515004093841 143:129:8887821571512103935 143:130:957150015393611193 143:131:94984352672648439 143:132:8634941152058949 143:133:714168065207883 143:134:53296124269245 143:135:3553074951283 143:136:209004408899 143:137:10679057389 143:138:464306843 143:139:16701685 143:140:477191 143:141:10153 143:142:143 143:143:1 # binomial(144, k) for 0 <= k <= 144 144:0:1 144:1:144 144:2:10296 144:3:487344 144:4:17178876 144:5:481008528 144:6:11143364232 144:7:219683466288 144:8:3762079360182 144:9:56849199220528 144:10:767464189477128 144:11:9349109217266832 144:12:103619293824707388 144:13:1052134368066259632 144:14:9844971586905715128 144:15:85323087086516197776 144:16:687917389635036844569 144:17:5179613286663806829696 144:18:36545049300350192631744 144:19:242351379570743382715776 144:20:1514696122317146141973600 144:21:8943919960348862933558400 144:22:50004643414677733673985600 144:23:265242021590899282966358400 144:24:1337261858854117218288723600 144:25:6418856922499762647785873280 144:26:29378614376056605964866112320 144:27:128395425791654796439044490880 144:28:536509457772271827977435908320 144:29:2146037831089087311909743633280 144:30:8226478352508168028987350594240 144:31:30252210715675198558211547346560 144:32:106828119089728044908684526567540 144:33:362568161759077000902202029562560 144:34:1183678410448751385298365449454240 144:35:3720132147124647210937719983999040 144:36:11263733445460737388672541062663760 144:37:32877924651615125350719849588315840 144:38:92577314150600484540184839630257760 144:39:251620392306760291314348538482239040 144:40:660503529805245764700164913515877480 144:41:1675423587798672183629686609893933120 144:42:4108776893887219878901374305216074080 144:43:9746401004104568084835818119349757120 144:44:22372420486694576740191309773961942480 144:45:49716489970432392755980688386582094400 144:46:106998532762452323540045394571122333600 144:47:223103323632347398019669120595106142400 144:48:450854633173702033498081347869276996100 144:49:883307036421946841139098150927563094400 144:50:1678283369201698998164286486762369879360 144:51:3093306602058033447596920191287505267840 144:52:5532259884449944435125261111341115190560 144:53:9603168101309337510028755136667596179840 144:54:16183116615169439137270679952532430599360 144:55:26481463552095445860988385376871250071680 144:56:42086611716723119314785112473956093863920 144:57:64975821597747973678966489433476074737280 144:58:97463732396621960518449734150214112105920 144:59:142065779425584552620113171812176502391680 144:60:201259854186244782878493660067250045054880 144:61:277144717240074782980220777797524652206720 144:62:371016315014938822376747170277331389244480 144:63:482910124305158467220528062900653554254720 144:64:611183126073716185075980829608639654603630 144:65:752225385936881458555053328749094959512160 144:66:900390992257782351906806257139068209113040 144:67:1048216379046373484309416239654437616579360 144:68:1186950899802511151350368389020466124656040 144:69:1307366208478128224675768080660223557592160 144:70:1400749509083708812152608657850239525991600 144:71:1459936108059076790130887896914334153850400 144:72:1480212998448786189993816895482588794876100 144:73:1459936108059076790130887896914334153850400 144:74:1400749509083708812152608657850239525991600 144:75:1307366208478128224675768080660223557592160 144:76:1186950899802511151350368389020466124656040 144:77:1048216379046373484309416239654437616579360 144:78:900390992257782351906806257139068209113040 144:79:752225385936881458555053328749094959512160 144:80:611183126073716185075980829608639654603630 144:81:482910124305158467220528062900653554254720 144:82:371016315014938822376747170277331389244480 144:83:277144717240074782980220777797524652206720 144:84:201259854186244782878493660067250045054880 144:85:142065779425584552620113171812176502391680 144:86:97463732396621960518449734150214112105920 144:87:64975821597747973678966489433476074737280 144:88:42086611716723119314785112473956093863920 144:89:26481463552095445860988385376871250071680 144:90:16183116615169439137270679952532430599360 144:91:9603168101309337510028755136667596179840 144:92:5532259884449944435125261111341115190560 144:93:3093306602058033447596920191287505267840 144:94:1678283369201698998164286486762369879360 144:95:883307036421946841139098150927563094400 144:96:450854633173702033498081347869276996100 144:97:223103323632347398019669120595106142400 144:98:106998532762452323540045394571122333600 144:99:49716489970432392755980688386582094400 144:100:22372420486694576740191309773961942480 144:101:9746401004104568084835818119349757120 144:102:4108776893887219878901374305216074080 144:103:1675423587798672183629686609893933120 144:104:660503529805245764700164913515877480 144:105:251620392306760291314348538482239040 144:106:92577314150600484540184839630257760 144:107:32877924651615125350719849588315840 144:108:11263733445460737388672541062663760 144:109:3720132147124647210937719983999040 144:110:1183678410448751385298365449454240 144:111:362568161759077000902202029562560 144:112:106828119089728044908684526567540 144:113:30252210715675198558211547346560 144:114:8226478352508168028987350594240 144:115:2146037831089087311909743633280 144:116:536509457772271827977435908320 144:117:128395425791654796439044490880 144:118:29378614376056605964866112320 144:119:6418856922499762647785873280 144:120:1337261858854117218288723600 144:121:265242021590899282966358400 144:122:50004643414677733673985600 144:123:8943919960348862933558400 144:124:1514696122317146141973600 144:125:242351379570743382715776 144:126:36545049300350192631744 144:127:5179613286663806829696 144:128:687917389635036844569 144:129:85323087086516197776 144:130:9844971586905715128 144:131:1052134368066259632 144:132:103619293824707388 144:133:9349109217266832 144:134:767464189477128 144:135:56849199220528 144:136:3762079360182 144:137:219683466288 144:138:11143364232 144:139:481008528 144:140:17178876 144:141:487344 144:142:10296 144:143:144 144:144:1 # binomial(145, k) for 0 <= k <= 145 145:0:1 145:1:145 145:2:10440 145:3:497640 145:4:17666220 145:5:498187404 145:6:11624372760 145:7:230826830520 145:8:3981762826470 145:9:60611278580710 145:10:824313388697656 145:11:10116573406743960 145:12:112968403041974220 145:13:1155753661890967020 145:14:10897105954971974760 145:15:95168058673421912904 145:16:773240476721553042345 145:17:5867530676298843674265 145:18:41724662587013999461440 145:19:278896428871093575347520 145:20:1757047501887889524689376 145:21:10458616082666009075532000 145:22:58948563375026596607544000 145:23:315246665005577016640344000 145:24:1602503880445016501255082000 145:25:7756118781353879866074596880 145:26:35797471298556368612651985600 145:27:157774040167711402403910603200 145:28:664904883563926624416480399200 145:29:2682547288861359139887179541600 145:30:10372516183597255340897094227520 145:31:38478689068183366587198897940800 145:32:137080329805403243466896073914100 145:33:469396280848805045810886556130100 145:34:1546246572207828386200567479016800 145:35:4903810557573398596236085433453280 145:36:14983865592585384599610261046662800 145:37:44141658097075862739392390650979600 145:38:125455238802215609890904689218573600 145:39:344197706457360775854533378112496800 145:40:912123922112006056014513451998116520 145:41:2335927117603917948329851523409810600 145:42:5784200481685892062531060915110007200 145:43:13855177897991787963737192424565831200 145:44:32118821490799144825027127893311699600 145:45:72088910457126969496171998160544036880 145:46:156715022732884716296026082957704428000 145:47:330101856394799721559714515166228476000 145:48:673957956806049431517750468464383138500 145:49:1334161669595648874637179498796840090500 145:50:2561590405623645839303384637689932973760 145:51:4771589971259732445761206678049875147200 145:52:8625566486507977882722181302628620458400 145:53:15135427985759281945154016248008711370400 145:54:25786284716478776647299435089200026779200 145:55:42664580167264884998259065329403680671040 145:56:68568075268818565175773497850827343935600 145:57:107062433314471092993751601907432168601200 145:58:162439553994369934197416223583690186843200 145:59:239529511822206513138562905962390614497600 145:60:343325633611829335498606831879426547446560 145:61:478404571426319565858714437864774697261600 145:62:648161032255013605356967948074856041451200 145:63:853926439320097289597275233177984943499200 145:64:1094093250378874652296508892509293208858350 145:65:1363408512010597643631034158357734614115790 145:66:1652616378194663810461859585888163168625200 145:67:1948607371304155836216222496793505825692400 145:68:2235167278848884635659784628674903741235400 145:69:2494317108280639376026136469680689682248200 145:70:2708115717561837036828376738510463083583760 145:71:2860685617142785602283496554764573679842000 145:72:2940149106507862980124704792396922948726500 145:73:2940149106507862980124704792396922948726500 145:74:2860685617142785602283496554764573679842000 145:75:2708115717561837036828376738510463083583760 145:76:2494317108280639376026136469680689682248200 145:77:2235167278848884635659784628674903741235400 145:78:1948607371304155836216222496793505825692400 145:79:1652616378194663810461859585888163168625200 145:80:1363408512010597643631034158357734614115790 145:81:1094093250378874652296508892509293208858350 145:82:853926439320097289597275233177984943499200 145:83:648161032255013605356967948074856041451200 145:84:478404571426319565858714437864774697261600 145:85:343325633611829335498606831879426547446560 145:86:239529511822206513138562905962390614497600 145:87:162439553994369934197416223583690186843200 145:88:107062433314471092993751601907432168601200 145:89:68568075268818565175773497850827343935600 145:90:42664580167264884998259065329403680671040 145:91:25786284716478776647299435089200026779200 145:92:15135427985759281945154016248008711370400 145:93:8625566486507977882722181302628620458400 145:94:4771589971259732445761206678049875147200 145:95:2561590405623645839303384637689932973760 145:96:1334161669595648874637179498796840090500 145:97:673957956806049431517750468464383138500 145:98:330101856394799721559714515166228476000 145:99:156715022732884716296026082957704428000 145:100:72088910457126969496171998160544036880 145:101:32118821490799144825027127893311699600 145:102:13855177897991787963737192424565831200 145:103:5784200481685892062531060915110007200 145:104:2335927117603917948329851523409810600 145:105:912123922112006056014513451998116520 145:106:344197706457360775854533378112496800 145:107:125455238802215609890904689218573600 145:108:44141658097075862739392390650979600 145:109:14983865592585384599610261046662800 145:110:4903810557573398596236085433453280 145:111:1546246572207828386200567479016800 145:112:469396280848805045810886556130100 145:113:137080329805403243466896073914100 145:114:38478689068183366587198897940800 145:115:10372516183597255340897094227520 145:116:2682547288861359139887179541600 145:117:664904883563926624416480399200 145:118:157774040167711402403910603200 145:119:35797471298556368612651985600 145:120:7756118781353879866074596880 145:121:1602503880445016501255082000 145:122:315246665005577016640344000 145:123:58948563375026596607544000 145:124:10458616082666009075532000 145:125:1757047501887889524689376 145:126:278896428871093575347520 145:127:41724662587013999461440 145:128:5867530676298843674265 145:129:773240476721553042345 145:130:95168058673421912904 145:131:10897105954971974760 145:132:1155753661890967020 145:133:112968403041974220 145:134:10116573406743960 145:135:824313388697656 145:136:60611278580710 145:137:3981762826470 145:138:230826830520 145:139:11624372760 145:140:498187404 145:141:17666220 145:142:497640 145:143:10440 145:144:145 145:145:1 # binomial(146, k) for 0 <= k <= 146 146:0:1 146:1:146 146:2:10585 146:3:508080 146:4:18163860 146:5:515853624 146:6:12122560164 146:7:242451203280 146:8:4212589656990 146:9:64593041407180 146:10:884924667278366 146:11:10940886795441616 146:12:123084976448718180 146:13:1268722064932941240 146:14:12052859616862941780 146:15:106065164628393887664 146:16:868408535394974955249 146:17:6640771153020396716610 146:18:47592193263312843135705 146:19:320621091458107574808960 146:20:2035943930758983100036896 146:21:12215663584553898600221376 146:22:69407179457692605683076000 146:23:374195228380603613247888000 146:24:1917750545450593517895426000 146:25:9358622661798896367329678880 146:26:43553590079910248478726582480 146:27:193571511466267771016562588800 146:28:822678923731638026820391002400 146:29:3347452172425285764303659940800 146:30:13055063472458614480784273769120 146:31:48851205251780621928095992168320 146:32:175559018873586610054094971854900 146:33:606476610654208289277782630044200 146:34:2015642853056633432011454035146900 146:35:6450057129781226982436652912470080 146:36:19887676150158783195846346480116080 146:37:59125523689661247339002651697642400 146:38:169596896899291472630297079869553200 146:39:469652945259576385745438067331070400 146:40:1256321628569366831869046830110613320 146:41:3248051039715924004344364975407927120 146:42:8120127599289810010860912438519817800 146:43:19639378379677680026268253339675838400 146:44:45973999388790932788764320317877530800 146:45:104207731947926114321199126053855736480 146:46:228803933190011685792198081118248464880 146:47:486816879127684437855740598123932904000 146:48:1004059813200849153077464983630611614500 146:49:2008119626401698306154929967261223229000 146:50:3895752075219294713940564136486773064260 146:51:7333180376883378285064591315739808120960 146:52:13397156457767710328483387980678495605600 146:53:23760994472267259827876197550637331828800 146:54:40921712702238058592453451337208738149600 146:55:68450864883743661645558500418603707450240 146:56:111232655436083450174032563180231024606640 146:57:175630508583289658169525099758259512536800 146:58:269501987308841027191167825491122355444400 146:59:401969065816576447335979129546080801340800 146:60:582855145434035848637169737841817161944160 146:61:821730205038148901357321269744201244708160 146:62:1126565603681333171215682385939630738712800 146:63:1502087471575110894954243181252840984950400 146:64:1948019689698971941893784125687278152357550 146:65:2457501762389472295927543050867027822974140 146:66:3016024890205261454092893744245897782740990 146:67:3601223749498819646678082082681668994317600 146:68:4183774650153040471876007125468409566927800 146:69:4729484387129524011685921098355593423483600 146:70:5202432825842476412854513208191152765831960 146:71:5568801334704622639111873293275036763425760 146:72:5800834723650648582408201347161496628568500 146:73:5880298213015725960249409584793845897453000 146:74:5800834723650648582408201347161496628568500 146:75:5568801334704622639111873293275036763425760 146:76:5202432825842476412854513208191152765831960 146:77:4729484387129524011685921098355593423483600 146:78:4183774650153040471876007125468409566927800 146:79:3601223749498819646678082082681668994317600 146:80:3016024890205261454092893744245897782740990 146:81:2457501762389472295927543050867027822974140 146:82:1948019689698971941893784125687278152357550 146:83:1502087471575110894954243181252840984950400 146:84:1126565603681333171215682385939630738712800 146:85:821730205038148901357321269744201244708160 146:86:582855145434035848637169737841817161944160 146:87:401969065816576447335979129546080801340800 146:88:269501987308841027191167825491122355444400 146:89:175630508583289658169525099758259512536800 146:90:111232655436083450174032563180231024606640 146:91:68450864883743661645558500418603707450240 146:92:40921712702238058592453451337208738149600 146:93:23760994472267259827876197550637331828800 146:94:13397156457767710328483387980678495605600 146:95:7333180376883378285064591315739808120960 146:96:3895752075219294713940564136486773064260 146:97:2008119626401698306154929967261223229000 146:98:1004059813200849153077464983630611614500 146:99:486816879127684437855740598123932904000 146:100:228803933190011685792198081118248464880 146:101:104207731947926114321199126053855736480 146:102:45973999388790932788764320317877530800 146:103:19639378379677680026268253339675838400 146:104:8120127599289810010860912438519817800 146:105:3248051039715924004344364975407927120 146:106:1256321628569366831869046830110613320 146:107:469652945259576385745438067331070400 146:108:169596896899291472630297079869553200 146:109:59125523689661247339002651697642400 146:110:19887676150158783195846346480116080 146:111:6450057129781226982436652912470080 146:112:2015642853056633432011454035146900 146:113:606476610654208289277782630044200 146:114:175559018873586610054094971854900 146:115:48851205251780621928095992168320 146:116:13055063472458614480784273769120 146:117:3347452172425285764303659940800 146:118:822678923731638026820391002400 146:119:193571511466267771016562588800 146:120:43553590079910248478726582480 146:121:9358622661798896367329678880 146:122:1917750545450593517895426000 146:123:374195228380603613247888000 146:124:69407179457692605683076000 146:125:12215663584553898600221376 146:126:2035943930758983100036896 146:127:320621091458107574808960 146:128:47592193263312843135705 146:129:6640771153020396716610 146:130:868408535394974955249 146:131:106065164628393887664 146:132:12052859616862941780 146:133:1268722064932941240 146:134:123084976448718180 146:135:10940886795441616 146:136:884924667278366 146:137:64593041407180 146:138:4212589656990 146:139:242451203280 146:140:12122560164 146:141:515853624 146:142:18163860 146:143:508080 146:144:10585 146:145:146 146:146:1 # binomial(147, k) for 0 <= k <= 147 147:0:1 147:1:147 147:2:10731 147:3:518665 147:4:18671940 147:5:534017484 147:6:12638413788 147:7:254573763444 147:8:4455040860270 147:9:68805631064170 147:10:949517708685546 147:11:11825811462719982 147:12:134025863244159796 147:13:1391807041381659420 147:14:13321581681795883020 147:15:118118024245256829444 147:16:974473700023368842913 147:17:7509179688415371671859 147:18:54232964416333239852315 147:19:368213284721420417944665 147:20:2356565022217090674845856 147:21:14251607515312881700258272 147:22:81622843042246504283297376 147:23:443602407838296218930964000 147:24:2291945773831197131143314000 147:25:11276373207249489885225104880 147:26:52912212741709144846056261360 147:27:237125101546178019495289171280 147:28:1016250435197905797836953591200 147:29:4170131096156923791124050943200 147:30:16402515644883900245087933709920 147:31:61906268724239236408880265937440 147:32:224410224125367231982190964023220 147:33:782035629527794899331877601899100 147:34:2622119463710841721289236665191100 147:35:8465699982837860414448106947616980 147:36:26337733279940010178282999392586160 147:37:79013199839820030534848998177758480 147:38:228722420588952719969299731567195600 147:39:639249842158867858375735147200623600 147:40:1725974573828943217614484897441683720 147:41:4504372668285290836213411805518540440 147:42:11368178639005734015205277413927744920 147:43:27759505978967490037129165778195656200 147:44:65613377768468612815032573657553369200 147:45:150181731336717047109963446371733267280 147:46:333011665137937800113397207172104201360 147:47:715620812317696123647938679242181368880 147:48:1490876692328533590933205581754544518500 147:49:3012179439602547459232394950891834843500 147:50:5903871701620993020095494103747996293260 147:51:11228932452102672999005155452226581185220 147:52:20730336834651088613547979296418303726560 147:53:37158150930034970156359585531315827434400 147:54:64682707174505318420329648887846069978400 147:55:109372577585981720238011951755812445599840 147:56:179683520319827111819591063598834732056880 147:57:286863164019373108343557662938490537143440 147:58:445132495892130685360692925249381867981200 147:59:671471053125417474527146955037203156785200 147:60:984824211250612295973148867387897963284960 147:61:1404585350472184749994491007586018406652320 147:62:1948295808719482072573003655683831983420960 147:63:2628653075256444066169925567192471723663200 147:64:3450107161274082836848027306940119137307950 147:65:4405521452088444237821327176554305975331690 147:66:5473526652594733750020436795112925605715130 147:67:6617248639704081100770975826927566777058590 147:68:7784998399651860118554089208150078561245400 147:69:8913259037282564483561928223824002990411400 147:70:9931917212972000424540434306546746189315560 147:71:10771234160547099051966386501466189529257720 147:72:11369636058355271221520074640436533391994260 147:73:11681132936666374542657610931955342526021500 147:74:11681132936666374542657610931955342526021500 147:75:11369636058355271221520074640436533391994260 147:76:10771234160547099051966386501466189529257720 147:77:9931917212972000424540434306546746189315560 147:78:8913259037282564483561928223824002990411400 147:79:7784998399651860118554089208150078561245400 147:80:6617248639704081100770975826927566777058590 147:81:5473526652594733750020436795112925605715130 147:82:4405521452088444237821327176554305975331690 147:83:3450107161274082836848027306940119137307950 147:84:2628653075256444066169925567192471723663200 147:85:1948295808719482072573003655683831983420960 147:86:1404585350472184749994491007586018406652320 147:87:984824211250612295973148867387897963284960 147:88:671471053125417474527146955037203156785200 147:89:445132495892130685360692925249381867981200 147:90:286863164019373108343557662938490537143440 147:91:179683520319827111819591063598834732056880 147:92:109372577585981720238011951755812445599840 147:93:64682707174505318420329648887846069978400 147:94:37158150930034970156359585531315827434400 147:95:20730336834651088613547979296418303726560 147:96:11228932452102672999005155452226581185220 147:97:5903871701620993020095494103747996293260 147:98:3012179439602547459232394950891834843500 147:99:1490876692328533590933205581754544518500 147:100:715620812317696123647938679242181368880 147:101:333011665137937800113397207172104201360 147:102:150181731336717047109963446371733267280 147:103:65613377768468612815032573657553369200 147:104:27759505978967490037129165778195656200 147:105:11368178639005734015205277413927744920 147:106:4504372668285290836213411805518540440 147:107:1725974573828943217614484897441683720 147:108:639249842158867858375735147200623600 147:109:228722420588952719969299731567195600 147:110:79013199839820030534848998177758480 147:111:26337733279940010178282999392586160 147:112:8465699982837860414448106947616980 147:113:2622119463710841721289236665191100 147:114:782035629527794899331877601899100 147:115:224410224125367231982190964023220 147:116:61906268724239236408880265937440 147:117:16402515644883900245087933709920 147:118:4170131096156923791124050943200 147:119:1016250435197905797836953591200 147:120:237125101546178019495289171280 147:121:52912212741709144846056261360 147:122:11276373207249489885225104880 147:123:2291945773831197131143314000 147:124:443602407838296218930964000 147:125:81622843042246504283297376 147:126:14251607515312881700258272 147:127:2356565022217090674845856 147:128:368213284721420417944665 147:129:54232964416333239852315 147:130:7509179688415371671859 147:131:974473700023368842913 147:132:118118024245256829444 147:133:13321581681795883020 147:134:1391807041381659420 147:135:134025863244159796 147:136:11825811462719982 147:137:949517708685546 147:138:68805631064170 147:139:4455040860270 147:140:254573763444 147:141:12638413788 147:142:534017484 147:143:18671940 147:144:518665 147:145:10731 147:146:147 147:147:1 # binomial(148, k) for 0 <= k <= 148 148:0:1 148:1:148 148:2:10878 148:3:529396 148:4:19190605 148:5:552689424 148:6:13172431272 148:7:267212177232 148:8:4709614623714 148:9:73260671924440 148:10:1018323339749716 148:11:12775329171405528 148:12:145851674706879778 148:13:1525832904625819216 148:14:14713388723177542440 148:15:131439605927052712464 148:16:1092591724268625672357 148:17:8483653388438740514772 148:18:61742144104748611524174 148:19:422446249137753657796980 148:20:2724778306938511092790521 148:21:16608172537529972375104128 148:22:95874450557559385983555648 148:23:525225250880542723214261376 148:24:2735548181669493350074278000 148:25:13568318981080687016368418880 148:26:64188585948958634731281366240 148:27:290037314287887164341345432640 148:28:1253375536744083817332242762480 148:29:5186381531354829588961004534400 148:30:20572646741040824036211984653120 148:31:78308784369123136653968199647360 148:32:286316492849606468391071229960660 148:33:1006445853653162131314068565922320 148:34:3404155093238636620621114267090200 148:35:11087819446548702135737343612808080 148:36:34803433262777870592731106340203140 148:37:105350933119760040713131997570344640 148:38:307735620428772750504148729744954080 148:39:867972262747820578345034878767819200 148:40:2365224415987811075990220044642307320 148:41:6230347242114234053827896702960224160 148:42:15872551307291024851418689219446285360 148:43:39127684617973224052334443192123401120 148:44:93372883747436102852161739435749025400 148:45:215795109105185659924996020029286636480 148:46:483193396474654847223360653543837468640 148:47:1048632477455633923761335886414285570240 148:48:2206497504646229714581144260996725887380 148:49:4503056131931081050165600532646379362000 148:50:8916051141223540479327889054639831136760 148:51:17132804153723666019100649555974577478480 148:52:31959269286753761612553134748644884911780 148:53:57888487764686058769907564827734131160960 148:54:101840858104540288576689234419161897412800 148:55:174055284760487038658341600643658515578240 148:56:289056097905808832057603015354647177656720 148:57:466546684339200220163148726537325269200320 148:58:731995659911503793704250588187872405124640 148:59:1116603549017548159887839880286585024766400 148:60:1656295264376029770500295822425101120070160 148:61:2389409561722797045967639874973916369937280 148:62:3352881159191666822567494663269850390073280 148:63:4576948883975926138742929222876303707084160 148:64:6078760236530526903017952874132590860971150 148:65:7855628613362527074669354483494425112639640 148:66:9879048104683177987841763971667231581046820 148:67:12090775292298814850791412622040492382773720 148:68:14402247039355941219325065035077645338303990 148:69:16698257436934424602116017431974081551656800 148:70:18845176250254564908102362530370749179726960 148:71:20703151373519099476506820808012935718573280 148:72:22140870218902370273486461141902722921251980 148:73:23050768995021645764177685572391875918015760 148:74:23362265873332749085315221863910685052043000 148:75:23050768995021645764177685572391875918015760 148:76:22140870218902370273486461141902722921251980 148:77:20703151373519099476506820808012935718573280 148:78:18845176250254564908102362530370749179726960 148:79:16698257436934424602116017431974081551656800 148:80:14402247039355941219325065035077645338303990 148:81:12090775292298814850791412622040492382773720 148:82:9879048104683177987841763971667231581046820 148:83:7855628613362527074669354483494425112639640 148:84:6078760236530526903017952874132590860971150 148:85:4576948883975926138742929222876303707084160 148:86:3352881159191666822567494663269850390073280 148:87:2389409561722797045967639874973916369937280 148:88:1656295264376029770500295822425101120070160 148:89:1116603549017548159887839880286585024766400 148:90:731995659911503793704250588187872405124640 148:91:466546684339200220163148726537325269200320 148:92:289056097905808832057603015354647177656720 148:93:174055284760487038658341600643658515578240 148:94:101840858104540288576689234419161897412800 148:95:57888487764686058769907564827734131160960 148:96:31959269286753761612553134748644884911780 148:97:17132804153723666019100649555974577478480 148:98:8916051141223540479327889054639831136760 148:99:4503056131931081050165600532646379362000 148:100:2206497504646229714581144260996725887380 148:101:1048632477455633923761335886414285570240 148:102:483193396474654847223360653543837468640 148:103:215795109105185659924996020029286636480 148:104:93372883747436102852161739435749025400 148:105:39127684617973224052334443192123401120 148:106:15872551307291024851418689219446285360 148:107:6230347242114234053827896702960224160 148:108:2365224415987811075990220044642307320 148:109:867972262747820578345034878767819200 148:110:307735620428772750504148729744954080 148:111:105350933119760040713131997570344640 148:112:34803433262777870592731106340203140 148:113:11087819446548702135737343612808080 148:114:3404155093238636620621114267090200 148:115:1006445853653162131314068565922320 148:116:286316492849606468391071229960660 148:117:78308784369123136653968199647360 148:118:20572646741040824036211984653120 148:119:5186381531354829588961004534400 148:120:1253375536744083817332242762480 148:121:290037314287887164341345432640 148:122:64188585948958634731281366240 148:123:13568318981080687016368418880 148:124:2735548181669493350074278000 148:125:525225250880542723214261376 148:126:95874450557559385983555648 148:127:16608172537529972375104128 148:128:2724778306938511092790521 148:129:422446249137753657796980 148:130:61742144104748611524174 148:131:8483653388438740514772 148:132:1092591724268625672357 148:133:131439605927052712464 148:134:14713388723177542440 148:135:1525832904625819216 148:136:145851674706879778 148:137:12775329171405528 148:138:1018323339749716 148:139:73260671924440 148:140:4709614623714 148:141:267212177232 148:142:13172431272 148:143:552689424 148:144:19190605 148:145:529396 148:146:10878 148:147:148 148:148:1 # binomial(149, k) for 0 <= k <= 149 149:0:1 149:1:149 149:2:11026 149:3:540274 149:4:19720001 149:5:571880029 149:6:13725120696 149:7:280384608504 149:8:4976826800946 149:9:77970286548154 149:10:1091584011674156 149:11:13793652511155244 149:12:158627003878285306 149:13:1671684579332698994 149:14:16239221627803361656 149:15:146152994650230254904 149:16:1224031330195678384821 149:17:9576245112707366187129 149:18:70225797493187352038946 149:19:484188393242502269321154 149:20:3147224556076264750587501 149:21:19332950844468483467894649 149:22:112482623095089358358659776 149:23:621099701438102109197817024 149:24:3260773432550036073288539376 149:25:16303867162750180366442696880 149:26:77756904930039321747649785120 149:27:354225900236845799072626798880 149:28:1543412851031970981673588195120 149:29:6439757068098913406293247296880 149:30:25759028272395653625172989187520 149:31:98881431110163960690180184300480 149:32:364625277218729605045039429608020 149:33:1292762346502768599705139795882980 149:34:4410600946891798751935182833012520 149:35:14491974539787338756358457879898280 149:36:45891252709326572728468449953011220 149:37:140154366382537911305863103910547780 149:38:413086553548532791217280727315298720 149:39:1175707883176593328849183608512773280 149:40:3233196678735631654335254923410126520 149:41:8595571658102045129818116747602531480 149:42:22102898549405258905246585922406509520 149:43:55000235925264248903753132411569686480 149:44:132500568365409326904496182627872426520 149:45:309167992852621762777157759465035661880 149:46:698988505579840507148356673573124105120 149:47:1531825873930288770984696539958123038880 149:48:3255129982101863638342480147411011457620 149:49:6709553636577310764746744793643105249380 149:50:13419107273154621529493489587286210498760 149:51:26048855294947206498428538610614408615240 149:52:49092073440477427631653784304619462390260 149:53:89847757051439820382460699576379016072740 149:54:159729345869226347346596799246896028573760 149:55:275896142865027327235030835062820412991040 149:56:463111382666295870715944615998305693234960 149:57:755602782245009052220751741891972446857040 149:58:1198542344250704013867399314725197674324960 149:59:1848599208929051953592090468474457429891040 149:60:2772898813393577930388135702711686144836560 149:61:4045704826098826816467935697399017490007440 149:62:5742290720914463868535134538243766760010560 149:63:7929830043167592961310423886146154097157440 149:64:10655709120506453041760882097008894568055310 149:65:13934388849893053977687307357627015973610790 149:66:17734676718045705062511118455161656693686460 149:67:21969823396981992838633176593707723963820540 149:68:26493022331654756070116477657118137721077710 149:69:31100504476290365821441082467051726889960790 149:70:35543433687188989510218379962344830731383760 149:71:39548327623773664384609183338383684898300240 149:72:42844021592421469749993281949915658639825260 149:73:45191639213924016037664146714294598839267740 149:74:46413034868354394849492907436302560970058760 149:75:46413034868354394849492907436302560970058760 149:76:45191639213924016037664146714294598839267740 149:77:42844021592421469749993281949915658639825260 149:78:39548327623773664384609183338383684898300240 149:79:35543433687188989510218379962344830731383760 149:80:31100504476290365821441082467051726889960790 149:81:26493022331654756070116477657118137721077710 149:82:21969823396981992838633176593707723963820540 149:83:17734676718045705062511118455161656693686460 149:84:13934388849893053977687307357627015973610790 149:85:10655709120506453041760882097008894568055310 149:86:7929830043167592961310423886146154097157440 149:87:5742290720914463868535134538243766760010560 149:88:4045704826098826816467935697399017490007440 149:89:2772898813393577930388135702711686144836560 149:90:1848599208929051953592090468474457429891040 149:91:1198542344250704013867399314725197674324960 149:92:755602782245009052220751741891972446857040 149:93:463111382666295870715944615998305693234960 149:94:275896142865027327235030835062820412991040 149:95:159729345869226347346596799246896028573760 149:96:89847757051439820382460699576379016072740 149:97:49092073440477427631653784304619462390260 149:98:26048855294947206498428538610614408615240 149:99:13419107273154621529493489587286210498760 149:100:6709553636577310764746744793643105249380 149:101:3255129982101863638342480147411011457620 149:102:1531825873930288770984696539958123038880 149:103:698988505579840507148356673573124105120 149:104:309167992852621762777157759465035661880 149:105:132500568365409326904496182627872426520 149:106:55000235925264248903753132411569686480 149:107:22102898549405258905246585922406509520 149:108:8595571658102045129818116747602531480 149:109:3233196678735631654335254923410126520 149:110:1175707883176593328849183608512773280 149:111:413086553548532791217280727315298720 149:112:140154366382537911305863103910547780 149:113:45891252709326572728468449953011220 149:114:14491974539787338756358457879898280 149:115:4410600946891798751935182833012520 149:116:1292762346502768599705139795882980 149:117:364625277218729605045039429608020 149:118:98881431110163960690180184300480 149:119:25759028272395653625172989187520 149:120:6439757068098913406293247296880 149:121:1543412851031970981673588195120 149:122:354225900236845799072626798880 149:123:77756904930039321747649785120 149:124:16303867162750180366442696880 149:125:3260773432550036073288539376 149:126:621099701438102109197817024 149:127:112482623095089358358659776 149:128:19332950844468483467894649 149:129:3147224556076264750587501 149:130:484188393242502269321154 149:131:70225797493187352038946 149:132:9576245112707366187129 149:133:1224031330195678384821 149:134:146152994650230254904 149:135:16239221627803361656 149:136:1671684579332698994 149:137:158627003878285306 149:138:13793652511155244 149:139:1091584011674156 149:140:77970286548154 149:141:4976826800946 149:142:280384608504 149:143:13725120696 149:144:571880029 149:145:19720001 149:146:540274 149:147:11026 149:148:149 149:149:1 # binomial(150, k) for 0 <= k <= 150 150:0:1 150:1:150 150:2:11175 150:3:551300 150:4:20260275 150:5:591600030 150:6:14297000725 150:7:294109729200 150:8:5257211409450 150:9:82947113349100 150:10:1169554298222310 150:11:14885236522829400 150:12:172420656389440550 150:13:1830311583210984300 150:14:17910906207136060650 150:15:162392216278033616560 150:16:1370184324845908639725 150:17:10800276442903044571950 150:18:79802042605894718226075 150:19:554414190735689621360100 150:20:3631412949318767019908655 150:21:22480175400544748218482150 150:22:131815573939557841826554425 150:23:733582324533191467556476800 150:24:3881873133988138182486356400 150:25:19564640595300216439731236256 150:26:94060772092789502114092482000 150:27:431982805166885120820276584000 150:28:1897638751268816780746214994000 150:29:7983169919130884387966835492000 150:30:32198785340494567031466236484400 150:31:124640459382559614315353173488000 150:32:463506708328893565735219613908500 150:33:1657387623721498204750179225491000 150:34:5703363293394567351640322628895500 150:35:18902575486679137508293640712910800 150:36:60383227249113911484826907832909500 150:37:186045619091864484034331553863559000 150:38:553240919931070702523143831225846500 150:39:1588794436725126120066464335828072000 150:40:4408904561912224983184438531922899800 150:41:11828768336837676784153371671012658000 150:42:30698470207507304035064702670009041000 150:43:77103134474669507808999718333976196000 150:44:187500804290673575808249315039442113000 150:45:441668561218031089681653942092908088400 150:46:1008156498432462269925514433038159767000 150:47:2230814379510129278133053213531247144000 150:48:4786955856032152409327176687369134496500 150:49:9964683618679174403089224941054116707000 150:50:20128660909731932294240234380929315748140 150:51:39467962568101828027922028197900619114000 150:52:75140928735424634130082322915233871005500 150:53:138939830491917248014114483880998478463000 150:54:249577102920666167729057498823275044646500 150:55:435625488734253674581627634309716441564800 150:56:739007525531323197950975451061126106226000 150:57:1218714164911304922936696357890278140092000 150:58:1954145126495713066088151056617170121182000 150:59:3047141553179755967459489783199655104216000 150:60:4621498022322629883980226171186143574727600 150:61:6818603639492404746856071400110703634844000 150:62:9787995547013290685003070235642784250018000 150:63:13672120764082056829845558424389920857168000 150:64:18585539163674046003071305983155048665212750 150:65:24590097970399507019448189454635910541666100 150:66:31669065567938759040198425812788672667297250 150:67:39704500115027697901144295048869380657507000 150:68:48462845728636748908749654250825861684898250 150:69:57593526807945121891557560124169864611038500 150:70:66643938163479355331659462429396557621344550 150:71:75091761310962653894827563300728515629684000 150:72:82392349216195134134602465288299343538125500 150:73:88035660806345485787657428664210257479093000 150:74:91604674082278410887157054150597159809326500 150:75:92826069736708789698985814872605121940117520 150:76:91604674082278410887157054150597159809326500 150:77:88035660806345485787657428664210257479093000 150:78:82392349216195134134602465288299343538125500 150:79:75091761310962653894827563300728515629684000 150:80:66643938163479355331659462429396557621344550 150:81:57593526807945121891557560124169864611038500 150:82:48462845728636748908749654250825861684898250 150:83:39704500115027697901144295048869380657507000 150:84:31669065567938759040198425812788672667297250 150:85:24590097970399507019448189454635910541666100 150:86:18585539163674046003071305983155048665212750 150:87:13672120764082056829845558424389920857168000 150:88:9787995547013290685003070235642784250018000 150:89:6818603639492404746856071400110703634844000 150:90:4621498022322629883980226171186143574727600 150:91:3047141553179755967459489783199655104216000 150:92:1954145126495713066088151056617170121182000 150:93:1218714164911304922936696357890278140092000 150:94:739007525531323197950975451061126106226000 150:95:435625488734253674581627634309716441564800 150:96:249577102920666167729057498823275044646500 150:97:138939830491917248014114483880998478463000 150:98:75140928735424634130082322915233871005500 150:99:39467962568101828027922028197900619114000 150:100:20128660909731932294240234380929315748140 150:101:9964683618679174403089224941054116707000 150:102:4786955856032152409327176687369134496500 150:103:2230814379510129278133053213531247144000 150:104:1008156498432462269925514433038159767000 150:105:441668561218031089681653942092908088400 150:106:187500804290673575808249315039442113000 150:107:77103134474669507808999718333976196000 150:108:30698470207507304035064702670009041000 150:109:11828768336837676784153371671012658000 150:110:4408904561912224983184438531922899800 150:111:1588794436725126120066464335828072000 150:112:553240919931070702523143831225846500 150:113:186045619091864484034331553863559000 150:114:60383227249113911484826907832909500 150:115:18902575486679137508293640712910800 150:116:5703363293394567351640322628895500 150:117:1657387623721498204750179225491000 150:118:463506708328893565735219613908500 150:119:124640459382559614315353173488000 150:120:32198785340494567031466236484400 150:121:7983169919130884387966835492000 150:122:1897638751268816780746214994000 150:123:431982805166885120820276584000 150:124:94060772092789502114092482000 150:125:19564640595300216439731236256 150:126:3881873133988138182486356400 150:127:733582324533191467556476800 150:128:131815573939557841826554425 150:129:22480175400544748218482150 150:130:3631412949318767019908655 150:131:554414190735689621360100 150:132:79802042605894718226075 150:133:10800276442903044571950 150:134:1370184324845908639725 150:135:162392216278033616560 150:136:17910906207136060650 150:137:1830311583210984300 150:138:172420656389440550 150:139:14885236522829400 150:140:1169554298222310 150:141:82947113349100 150:142:5257211409450 150:143:294109729200 150:144:14297000725 150:145:591600030 150:146:20260275 150:147:551300 150:148:11175 150:149:150 150:150:1 # binomial(151, k) for 0 <= k <= 151 151:0:1 151:1:151 151:2:11325 151:3:562475 151:4:20811575 151:5:611860305 151:6:14888600755 151:7:308406729925 151:8:5551321138650 151:9:88204324758550 151:10:1252501411571410 151:11:16054790821051710 151:12:187305892912269950 151:13:2002732239600424850 151:14:19741217790347044950 151:15:180303122485169677210 151:16:1532576541123942256285 151:17:12170460767748953211675 151:18:90602319048797762798025 151:19:634216233341584339586175 151:20:4185827140054456641268755 151:21:26111588349863515238390805 151:22:154295749340102590045036575 151:23:865397898472749309383031225 151:24:4615455458521329650042833200 151:25:23446513729288354622217592656 151:26:113625412688089718553823718256 151:27:526043577259674622934369066000 151:28:2329621556435701901566491578000 151:29:9880808670399701168713050486000 151:30:40181955259625451419433071976400 151:31:156839244723054181346819409972400 151:32:588147167711453180050572787396500 151:33:2120894332050391770485398839399500 151:34:7360750917116065556390501854386500 151:35:24605938780073704859933963341806300 151:36:79285802735793048993120548545820300 151:37:246428846340978395519158461696468500 151:38:739286539022935186557475385089405500 151:39:2142035356656196822589608167053918500 151:40:5997698998637351103250902867750971800 151:41:16237672898749901767337810202935557800 151:42:42527238544344980819218074341021699000 151:43:107801604682176811844064421003985237000 151:44:264603938765343083617249033373418309000 151:45:629169365508704665489903257132350201400 151:46:1449825059650493359607168375131067855400 151:47:3238970877942591548058567646569406911000 151:48:7017770235542281687460229900900381640500 151:49:14751639474711326812416401628423251203500 151:50:30093344528411106697329459321983432455140 151:51:59596623477833760322162262578829934862140 151:52:114608891303526462158004351113134490119500 151:53:214080759227341882144196806796232349468500 151:54:388516933412583415743171982704273523109500 151:55:685202591654919842310685133132991486211300 151:56:1174633014265576872532603085370842547790800 151:57:1957721690442628120887671808951404246318000 151:58:3172859291407017989024847414507448261274000 151:59:5001286679675469033547640839816825225398000 151:60:7668639575502385851439715954385798678943600 151:61:11440101661815034630836297571296847209571600 151:62:16606599186505695431859141635753487884862000 151:63:23460116311095347514848628660032705107186000 151:64:32257659927756102832916864407544969522380750 151:65:43175637134073553022519495437790959206878850 151:66:56259163538338266059646615267424583208963350 151:67:71373565682966456941342720861658053324804250 151:68:88167345843664446809893949299695242342405250 151:69:106056372536581870800307214374995726295936750 151:70:124237464971424477223217022553566422232383050 151:71:141735699474442009226487025730125073251028550 151:72:157484110527157788029430028589027859167809500 151:73:170428010022540619922259893952509601017218500 151:74:179640334888623896674814482814807417288419500 151:75:184430743818987200586142869023202281749444020 151:76:184430743818987200586142869023202281749444020 151:77:179640334888623896674814482814807417288419500 151:78:170428010022540619922259893952509601017218500 151:79:157484110527157788029430028589027859167809500 151:80:141735699474442009226487025730125073251028550 151:81:124237464971424477223217022553566422232383050 151:82:106056372536581870800307214374995726295936750 151:83:88167345843664446809893949299695242342405250 151:84:71373565682966456941342720861658053324804250 151:85:56259163538338266059646615267424583208963350 151:86:43175637134073553022519495437790959206878850 151:87:32257659927756102832916864407544969522380750 151:88:23460116311095347514848628660032705107186000 151:89:16606599186505695431859141635753487884862000 151:90:11440101661815034630836297571296847209571600 151:91:7668639575502385851439715954385798678943600 151:92:5001286679675469033547640839816825225398000 151:93:3172859291407017989024847414507448261274000 151:94:1957721690442628120887671808951404246318000 151:95:1174633014265576872532603085370842547790800 151:96:685202591654919842310685133132991486211300 151:97:388516933412583415743171982704273523109500 151:98:214080759227341882144196806796232349468500 151:99:114608891303526462158004351113134490119500 151:100:59596623477833760322162262578829934862140 151:101:30093344528411106697329459321983432455140 151:102:14751639474711326812416401628423251203500 151:103:7017770235542281687460229900900381640500 151:104:3238970877942591548058567646569406911000 151:105:1449825059650493359607168375131067855400 151:106:629169365508704665489903257132350201400 151:107:264603938765343083617249033373418309000 151:108:107801604682176811844064421003985237000 151:109:42527238544344980819218074341021699000 151:110:16237672898749901767337810202935557800 151:111:5997698998637351103250902867750971800 151:112:2142035356656196822589608167053918500 151:113:739286539022935186557475385089405500 151:114:246428846340978395519158461696468500 151:115:79285802735793048993120548545820300 151:116:24605938780073704859933963341806300 151:117:7360750917116065556390501854386500 151:118:2120894332050391770485398839399500 151:119:588147167711453180050572787396500 151:120:156839244723054181346819409972400 151:121:40181955259625451419433071976400 151:122:9880808670399701168713050486000 151:123:2329621556435701901566491578000 151:124:526043577259674622934369066000 151:125:113625412688089718553823718256 151:126:23446513729288354622217592656 151:127:4615455458521329650042833200 151:128:865397898472749309383031225 151:129:154295749340102590045036575 151:130:26111588349863515238390805 151:131:4185827140054456641268755 151:132:634216233341584339586175 151:133:90602319048797762798025 151:134:12170460767748953211675 151:135:1532576541123942256285 151:136:180303122485169677210 151:137:19741217790347044950 151:138:2002732239600424850 151:139:187305892912269950 151:140:16054790821051710 151:141:1252501411571410 151:142:88204324758550 151:143:5551321138650 151:144:308406729925 151:145:14888600755 151:146:611860305 151:147:20811575 151:148:562475 151:149:11325 151:150:151 151:151:1 # binomial(152, k) for 0 <= k <= 152 152:0:1 152:1:152 152:2:11476 152:3:573800 152:4:21374050 152:5:632671880 152:6:15500461060 152:7:323295330680 152:8:5859727868575 152:9:93755645897200 152:10:1340705736329960 152:11:17307292232623120 152:12:203360683733321660 152:13:2190038132512694800 152:14:21743950029947469800 152:15:200044340275516722160 152:16:1712879663609111933495 152:17:13703037308872895467960 152:18:102772779816546716009700 152:19:724818552390382102384200 152:20:4820043373396040980854930 152:21:30297415489917971879659560 152:22:180407337689966105283427380 152:23:1019693647812851899428067800 152:24:5480853356994078959425864425 152:25:28061969187809684272260425856 152:26:137071926417378073176041310912 152:27:639668989947764341488192784256 152:28:2855665133695376524500860644000 152:29:12210430226835403070279542064000 152:30:50062763930025152588146122462400 152:31:197021199982679632766252481948800 152:32:744986412434507361397392197368900 152:33:2709041499761844950535971626796000 152:34:9481645249166457326875900693786000 152:35:31966689697189770416324465196192800 152:36:103891741515866753853054511887626600 152:37:325714649076771444512279010242288800 152:38:985715385363913582076633846785874000 152:39:2881321895679132009147083552143324000 152:40:8139734355293547925840511034804890300 152:41:22235371897387252870588713070686529600 152:42:58764911443094882586555884543957256800 152:43:150328843226521792663282495345006936000 152:44:372405543447519895461313454377403546000 152:45:893773304274047749107152290505768510400 152:46:2078994425159198025097071632263418056800 152:47:4688795937593084907665736021700474766400 152:48:10256741113484873235518797547469788551500 152:49:21769409710253608499876631529323632844000 152:50:44844984003122433509745860950406683658640 152:51:89689968006244867019491721900813367317280 152:52:174205514781360222480166613691964424981640 152:53:328689650530868344302201157909366839588000 152:54:602597692639925297887368789500505872578000 152:55:1073719525067503258053857115837265009320800 152:56:1859835605920496714843288218503834034002100 152:57:3132354704708204993420274894322246794108800 152:58:5130580981849646109912519223458852507592000 152:59:8174145971082487022572488254324273486672000 152:60:12669926255177854884987356794202623904341600 152:61:19108741237317420482276013525682645888515200 152:62:28046700848320730062695439207050335094433600 152:63:40066715497601042946707770295786192992048000 152:64:55717776238851450347765493067577674629566750 152:65:75433297061829655855436359845335928729259600 152:66:99434800672411819082166110705215542415842200 152:67:127632729221304723000989336129082636533767600 152:68:159540911526630903751236670161353295667209500 152:69:194223718380246317610201163674690968638342000 152:70:230293837508006348023524236928562148528319800 152:71:265973164445866486449704048283691495483411600 152:72:299219810001599797255917054319152932418838050 152:73:327912120549698407951689922541537460185028000 152:74:350068344911164516597074376767317018305638000 152:75:364071078707611097260957351838009699037863520 152:76:368861487637974401172285738046404563498888040 152:77:364071078707611097260957351838009699037863520 152:78:350068344911164516597074376767317018305638000 152:79:327912120549698407951689922541537460185028000 152:80:299219810001599797255917054319152932418838050 152:81:265973164445866486449704048283691495483411600 152:82:230293837508006348023524236928562148528319800 152:83:194223718380246317610201163674690968638342000 152:84:159540911526630903751236670161353295667209500 152:85:127632729221304723000989336129082636533767600 152:86:99434800672411819082166110705215542415842200 152:87:75433297061829655855436359845335928729259600 152:88:55717776238851450347765493067577674629566750 152:89:40066715497601042946707770295786192992048000 152:90:28046700848320730062695439207050335094433600 152:91:19108741237317420482276013525682645888515200 152:92:12669926255177854884987356794202623904341600 152:93:8174145971082487022572488254324273486672000 152:94:5130580981849646109912519223458852507592000 152:95:3132354704708204993420274894322246794108800 152:96:1859835605920496714843288218503834034002100 152:97:1073719525067503258053857115837265009320800 152:98:602597692639925297887368789500505872578000 152:99:328689650530868344302201157909366839588000 152:100:174205514781360222480166613691964424981640 152:101:89689968006244867019491721900813367317280 152:102:44844984003122433509745860950406683658640 152:103:21769409710253608499876631529323632844000 152:104:10256741113484873235518797547469788551500 152:105:4688795937593084907665736021700474766400 152:106:2078994425159198025097071632263418056800 152:107:893773304274047749107152290505768510400 152:108:372405543447519895461313454377403546000 152:109:150328843226521792663282495345006936000 152:110:58764911443094882586555884543957256800 152:111:22235371897387252870588713070686529600 152:112:8139734355293547925840511034804890300 152:113:2881321895679132009147083552143324000 152:114:985715385363913582076633846785874000 152:115:325714649076771444512279010242288800 152:116:103891741515866753853054511887626600 152:117:31966689697189770416324465196192800 152:118:9481645249166457326875900693786000 152:119:2709041499761844950535971626796000 152:120:744986412434507361397392197368900 152:121:197021199982679632766252481948800 152:122:50062763930025152588146122462400 152:123:12210430226835403070279542064000 152:124:2855665133695376524500860644000 152:125:639668989947764341488192784256 152:126:137071926417378073176041310912 152:127:28061969187809684272260425856 152:128:5480853356994078959425864425 152:129:1019693647812851899428067800 152:130:180407337689966105283427380 152:131:30297415489917971879659560 152:132:4820043373396040980854930 152:133:724818552390382102384200 152:134:102772779816546716009700 152:135:13703037308872895467960 152:136:1712879663609111933495 152:137:200044340275516722160 152:138:21743950029947469800 152:139:2190038132512694800 152:140:203360683733321660 152:141:17307292232623120 152:142:1340705736329960 152:143:93755645897200 152:144:5859727868575 152:145:323295330680 152:146:15500461060 152:147:632671880 152:148:21374050 152:149:573800 152:150:11476 152:151:152 152:152:1 # binomial(153, k) for 0 <= k <= 153 153:0:1 153:1:153 153:2:11628 153:3:585276 153:4:21947850 153:5:654045930 153:6:16133132940 153:7:338795791740 153:8:6183023199255 153:9:99615373765775 153:10:1434461382227160 153:11:18647997968953080 153:12:220667975965944780 153:13:2393398816246016460 153:14:23933988162460164600 153:15:221788290305464191960 153:16:1912924003884628655655 153:17:15415916972482007401455 153:18:116475817125419611477660 153:19:827591332206928818393900 153:20:5544861925786423083239130 153:21:35117458863314012860514490 153:22:210704753179884077163086940 153:23:1200100985502818004711495180 153:24:6500547004806930858853932225 153:25:33542822544803763231686290281 153:26:165133895605187757448301736768 153:27:776740916365142414664234095168 153:28:3495334123643140865989053428256 153:29:15066095360530779594780402708000 153:30:62273194156860555658425664526400 153:31:247083963912704785354398604411200 153:32:942007612417186994163644679317700 153:33:3454027912196352311933363824164900 153:34:12190686748928302277411872320582000 153:35:41448334946356227743200365889978800 153:36:135858431213056524269378977083819400 153:37:429606390592638198365333522129915400 153:38:1311430034440685026588912857028162800 153:39:3867037281043045591223717398929198000 153:40:11021056250972679934987594586948214300 153:41:30375106252680800796429224105491419900 153:42:81000283340482135457144597614643786400 153:43:209093754669616675249838379888964192800 153:44:522734386674041688124595949722410482000 153:45:1266178847721567644568465744883172056400 153:46:2972767729433245774204223922769186567200 153:47:6767790362752282932762807653963892823200 153:48:14945537051077958143184533569170263317900 153:49:32026150823738481735395429076793421395500 153:50:66614393713376042009622492479730316502640 153:51:134534952009367300529237582851220050975920 153:52:263895482787605089499658335592777792298920 153:53:502895165312228566782367771601331264569640 153:54:931287343170793642189569947409872712166000 153:55:1676317217707428555941225905337770881898800 153:56:2933555130987999972897145334341099043322900 153:57:4992190310628701708263563112826080828110900 153:58:8262935686557851103332794117781099301700800 153:59:13304726952932133132485007477783125994264000 153:60:20844072226260341907559845048526897391013600 153:61:31778667492495275367263370319885269792856800 153:62:47155442085638150544971452732732980982948800 153:63:68113416345921773009403209502836528086481600 153:64:95784491736452493294473263363363867621614750 153:65:131151073300681106203201852912913603358826350 153:66:174868097734241474937602470550551471145101800 153:67:227067529893716542083155446834298178949609800 153:68:287173640747935626752226006290435932200977100 153:69:353764629906877221361437833836044264305551500 153:70:424517555888252665633725400603253117166661800 153:71:496267001953872834473228285212253644011731400 153:72:565192974447466283705621102602844427902249650 153:73:627131930551298205207606976860690392603866050 153:74:677980465460862924548764299308854478490666000 153:75:714139423618775613858031728605326717343501520 153:76:732932566345585498433243089884414262536751560 153:77:732932566345585498433243089884414262536751560 153:78:714139423618775613858031728605326717343501520 153:79:677980465460862924548764299308854478490666000 153:80:627131930551298205207606976860690392603866050 153:81:565192974447466283705621102602844427902249650 153:82:496267001953872834473228285212253644011731400 153:83:424517555888252665633725400603253117166661800 153:84:353764629906877221361437833836044264305551500 153:85:287173640747935626752226006290435932200977100 153:86:227067529893716542083155446834298178949609800 153:87:174868097734241474937602470550551471145101800 153:88:131151073300681106203201852912913603358826350 153:89:95784491736452493294473263363363867621614750 153:90:68113416345921773009403209502836528086481600 153:91:47155442085638150544971452732732980982948800 153:92:31778667492495275367263370319885269792856800 153:93:20844072226260341907559845048526897391013600 153:94:13304726952932133132485007477783125994264000 153:95:8262935686557851103332794117781099301700800 153:96:4992190310628701708263563112826080828110900 153:97:2933555130987999972897145334341099043322900 153:98:1676317217707428555941225905337770881898800 153:99:931287343170793642189569947409872712166000 153:100:502895165312228566782367771601331264569640 153:101:263895482787605089499658335592777792298920 153:102:134534952009367300529237582851220050975920 153:103:66614393713376042009622492479730316502640 153:104:32026150823738481735395429076793421395500 153:105:14945537051077958143184533569170263317900 153:106:6767790362752282932762807653963892823200 153:107:2972767729433245774204223922769186567200 153:108:1266178847721567644568465744883172056400 153:109:522734386674041688124595949722410482000 153:110:209093754669616675249838379888964192800 153:111:81000283340482135457144597614643786400 153:112:30375106252680800796429224105491419900 153:113:11021056250972679934987594586948214300 153:114:3867037281043045591223717398929198000 153:115:1311430034440685026588912857028162800 153:116:429606390592638198365333522129915400 153:117:135858431213056524269378977083819400 153:118:41448334946356227743200365889978800 153:119:12190686748928302277411872320582000 153:120:3454027912196352311933363824164900 153:121:942007612417186994163644679317700 153:122:247083963912704785354398604411200 153:123:62273194156860555658425664526400 153:124:15066095360530779594780402708000 153:125:3495334123643140865989053428256 153:126:776740916365142414664234095168 153:127:165133895605187757448301736768 153:128:33542822544803763231686290281 153:129:6500547004806930858853932225 153:130:1200100985502818004711495180 153:131:210704753179884077163086940 153:132:35117458863314012860514490 153:133:5544861925786423083239130 153:134:827591332206928818393900 153:135:116475817125419611477660 153:136:15415916972482007401455 153:137:1912924003884628655655 153:138:221788290305464191960 153:139:23933988162460164600 153:140:2393398816246016460 153:141:220667975965944780 153:142:18647997968953080 153:143:1434461382227160 153:144:99615373765775 153:145:6183023199255 153:146:338795791740 153:147:16133132940 153:148:654045930 153:149:21947850 153:150:585276 153:151:11628 153:152:153 153:153:1 # binomial(154, k) for 0 <= k <= 154 154:0:1 154:1:154 154:2:11781 154:3:596904 154:4:22533126 154:5:675993780 154:6:16787178870 154:7:354928924680 154:8:6521818990995 154:9:105798396965030 154:10:1534076755992935 154:11:20082459351180240 154:12:239315973934897860 154:13:2614066792211961240 154:14:26327386978706181060 154:15:245722278467924356560 154:16:2134712294190092847615 154:17:17328840976366636057110 154:18:131891734097901618879115 154:19:944067149332348429871560 154:20:6372453257993351901633030 154:21:40662320789100435943753620 154:22:245822212043198090023601430 154:23:1410805738682702081874582120 154:24:7700647990309748863565427405 154:25:40043369549610694090540222506 154:26:198676718149991520679988027049 154:27:941874811970330172112535831936 154:28:4272075040008283280653287523424 154:29:18561429484173920460769456136256 154:30:77339289517391335253206067234400 154:31:309357158069565341012824268937600 154:32:1189091576329891779518043283728900 154:33:4396035524613539306097008503482600 154:34:15644714661124654589345236144746900 154:35:53639021695284530020612238210560800 154:36:177306766159412752012579342973798200 154:37:565464821805694722634712499213734800 154:38:1741036425033323224954246379158078200 154:39:5178467315483730617812630255957360800 154:40:14888093532015725526211311985877412300 154:41:41396162503653480731416818692439634200 154:42:111375389593162936253573821720135206300 154:43:290094038010098810706982977503607979200 154:44:731828141343658363374434329611374674800 154:45:1788913234395609332693061694605582538400 154:46:4238946577154813418772689667652358623600 154:47:9740558092185528706967031576733079390400 154:48:21713327413830241075947341223134156141100 154:49:46971687874816439878579962645963684713400 154:50:98640544537114523745017921556523737898140 154:51:201149345722743342538860075330950367478560 154:52:398430434796972390028895918443997843274840 154:53:766790648099833656282026107194109056868560 154:54:1434182508483022208971937719011203976735640 154:55:2607604560878222198130795852747643594064800 154:56:4609872348695428528838371239678869925221700 154:57:7925745441616701681160708447167179871433800 154:58:13255125997186552811596357230607180129811700 154:59:21567662639489984235817801595564225295964800 154:60:34148799179192475040044852526310023385277600 154:61:52622739718755617274823215368412167183870400 154:62:78934109578133425912234823052618250775805600 154:63:115268858431559923554374662235569509069430400 154:64:163897908082374266303876472866200395708096350 154:65:226935565037133599497675116276277470980441100 154:66:306019171034922581140804323463465074503928150 154:67:401935627627958017020757917384849650094711600 154:68:514241170641652168835381453124734111150586900 154:69:640938270654812848113663840126480196506528600 154:70:778282185795129886995163234439297381472213300 154:71:920784557842125500106953685815506761178393200 154:72:1061459976401339118178849387815098071913981050 154:73:1192324904998764488913228079463534820506115700 154:74:1305112396012161129756371276169544871094532050 154:75:1392119889079638538406796027914181195834167520 154:76:1447071989964361112291274818489740979880253080 154:77:1465865132691170996866486179768828525073503120 154:78:1447071989964361112291274818489740979880253080 154:79:1392119889079638538406796027914181195834167520 154:80:1305112396012161129756371276169544871094532050 154:81:1192324904998764488913228079463534820506115700 154:82:1061459976401339118178849387815098071913981050 154:83:920784557842125500106953685815506761178393200 154:84:778282185795129886995163234439297381472213300 154:85:640938270654812848113663840126480196506528600 154:86:514241170641652168835381453124734111150586900 154:87:401935627627958017020757917384849650094711600 154:88:306019171034922581140804323463465074503928150 154:89:226935565037133599497675116276277470980441100 154:90:163897908082374266303876472866200395708096350 154:91:115268858431559923554374662235569509069430400 154:92:78934109578133425912234823052618250775805600 154:93:52622739718755617274823215368412167183870400 154:94:34148799179192475040044852526310023385277600 154:95:21567662639489984235817801595564225295964800 154:96:13255125997186552811596357230607180129811700 154:97:7925745441616701681160708447167179871433800 154:98:4609872348695428528838371239678869925221700 154:99:2607604560878222198130795852747643594064800 154:100:1434182508483022208971937719011203976735640 154:101:766790648099833656282026107194109056868560 154:102:398430434796972390028895918443997843274840 154:103:201149345722743342538860075330950367478560 154:104:98640544537114523745017921556523737898140 154:105:46971687874816439878579962645963684713400 154:106:21713327413830241075947341223134156141100 154:107:9740558092185528706967031576733079390400 154:108:4238946577154813418772689667652358623600 154:109:1788913234395609332693061694605582538400 154:110:731828141343658363374434329611374674800 154:111:290094038010098810706982977503607979200 154:112:111375389593162936253573821720135206300 154:113:41396162503653480731416818692439634200 154:114:14888093532015725526211311985877412300 154:115:5178467315483730617812630255957360800 154:116:1741036425033323224954246379158078200 154:117:565464821805694722634712499213734800 154:118:177306766159412752012579342973798200 154:119:53639021695284530020612238210560800 154:120:15644714661124654589345236144746900 154:121:4396035524613539306097008503482600 154:122:1189091576329891779518043283728900 154:123:309357158069565341012824268937600 154:124:77339289517391335253206067234400 154:125:18561429484173920460769456136256 154:126:4272075040008283280653287523424 154:127:941874811970330172112535831936 154:128:198676718149991520679988027049 154:129:40043369549610694090540222506 154:130:7700647990309748863565427405 154:131:1410805738682702081874582120 154:132:245822212043198090023601430 154:133:40662320789100435943753620 154:134:6372453257993351901633030 154:135:944067149332348429871560 154:136:131891734097901618879115 154:137:17328840976366636057110 154:138:2134712294190092847615 154:139:245722278467924356560 154:140:26327386978706181060 154:141:2614066792211961240 154:142:239315973934897860 154:143:20082459351180240 154:144:1534076755992935 154:145:105798396965030 154:146:6521818990995 154:147:354928924680 154:148:16787178870 154:149:675993780 154:150:22533126 154:151:596904 154:152:11781 154:153:154 154:154:1 # binomial(155, k) for 0 <= k <= 155 155:0:1 155:1:155 155:2:11935 155:3:608685 155:4:23130030 155:5:698526906 155:6:17463172650 155:7:371716103550 155:8:6876747915675 155:9:112320215956025 155:10:1639875152957965 155:11:21616536107173175 155:12:259398433286078100 155:13:2853382766146859100 155:14:28941453770918142300 155:15:272049665446630537620 155:16:2380434572658017204175 155:17:19463553270556728904725 155:18:149220575074268254936225 155:19:1075958883430250048750675 155:20:7316520407325700331504590 155:21:47034774047093787845386650 155:22:286484532832298525967355050 155:23:1656627950725900171898183550 155:24:9111453728992450945440009525 155:25:47744017539920442954105649911 155:26:238720087699602214770528249555 155:27:1140551530120321692792523858985 155:28:5213949851978613452765823355360 155:29:22833504524182203741422743659680 155:30:95900719001565255713975523370656 155:31:386696447586956676266030336172000 155:32:1498448734399457120530867552666500 155:33:5585127100943431085615051787211500 155:34:20040750185738193895442244648229500 155:35:69283736356409184609957474355307700 155:36:230945787854697282033191581184359000 155:37:742771587965107474647291842187533000 155:38:2306501246839017947588958878371813000 155:39:6919503740517053842766876635115439000 155:40:20066560847499456144023942241834773100 155:41:56284256035669206257628130678317046500 155:42:152771552096816416984990640412574840500 155:43:401469427603261746960556799223743185500 155:44:1021922179353757174081417307114982654000 155:45:2520741375739267696067496024216957213200 155:46:6027859811550422751465751362257941162000 155:47:13979504669340342125739721244385438014000 155:48:31453885506015769782914372799867235531500 155:49:68685015288646680954527303869097840854500 155:50:145612232411930963623597884202487422611540 155:51:299789890259857866283877996887474105376700 155:52:599579780519715732567755993774948210753400 155:53:1165221082896806046310922025638106900143400 155:54:2200973156582855865253963826205313033604200 155:55:4041787069361244407102733571758847570800440 155:56:7217476909573650726969167092426513519286500 155:57:12535617790312130209999079686846049796655500 155:58:21180871438803254492757065677774360001245500 155:59:34822788636676537047414158826171405425776500 155:60:55716461818682459275862654121874248681242400 155:61:86771538897948092314868067894722190569148000 155:62:131556849296889043187058038421030417959676000 155:63:194202968009693349466609485288187759845236000 155:64:279166766513934189858251135101769904777526750 155:65:390833473119507865801551589142477866688537450 155:66:532954736072056180638479439739742545484369250 155:67:707954798662880598161562240848314724598639750 155:68:916176798269610185856139370509583761245298500 155:69:1155179441296465016949045293251214307657115500 155:70:1419220456449942735108827074565777577978741900 155:71:1699066743637255387102116920254804142650606500 155:72:1982244534243464618285803073630604833092374250 155:73:2253784881400103607092077467278632892420096750 155:74:2497437301010925618669599355633079691600647750 155:75:2697232285091799668163167304083726066928699570 155:76:2839191879043999650698070846403922175714420600 155:77:2912937122655532109157760998258569504953756200 155:78:2912937122655532109157760998258569504953756200 155:79:2839191879043999650698070846403922175714420600 155:80:2697232285091799668163167304083726066928699570 155:81:2497437301010925618669599355633079691600647750 155:82:2253784881400103607092077467278632892420096750 155:83:1982244534243464618285803073630604833092374250 155:84:1699066743637255387102116920254804142650606500 155:85:1419220456449942735108827074565777577978741900 155:86:1155179441296465016949045293251214307657115500 155:87:916176798269610185856139370509583761245298500 155:88:707954798662880598161562240848314724598639750 155:89:532954736072056180638479439739742545484369250 155:90:390833473119507865801551589142477866688537450 155:91:279166766513934189858251135101769904777526750 155:92:194202968009693349466609485288187759845236000 155:93:131556849296889043187058038421030417959676000 155:94:86771538897948092314868067894722190569148000 155:95:55716461818682459275862654121874248681242400 155:96:34822788636676537047414158826171405425776500 155:97:21180871438803254492757065677774360001245500 155:98:12535617790312130209999079686846049796655500 155:99:7217476909573650726969167092426513519286500 155:100:4041787069361244407102733571758847570800440 155:101:2200973156582855865253963826205313033604200 155:102:1165221082896806046310922025638106900143400 155:103:599579780519715732567755993774948210753400 155:104:299789890259857866283877996887474105376700 155:105:145612232411930963623597884202487422611540 155:106:68685015288646680954527303869097840854500 155:107:31453885506015769782914372799867235531500 155:108:13979504669340342125739721244385438014000 155:109:6027859811550422751465751362257941162000 155:110:2520741375739267696067496024216957213200 155:111:1021922179353757174081417307114982654000 155:112:401469427603261746960556799223743185500 155:113:152771552096816416984990640412574840500 155:114:56284256035669206257628130678317046500 155:115:20066560847499456144023942241834773100 155:116:6919503740517053842766876635115439000 155:117:2306501246839017947588958878371813000 155:118:742771587965107474647291842187533000 155:119:230945787854697282033191581184359000 155:120:69283736356409184609957474355307700 155:121:20040750185738193895442244648229500 155:122:5585127100943431085615051787211500 155:123:1498448734399457120530867552666500 155:124:386696447586956676266030336172000 155:125:95900719001565255713975523370656 155:126:22833504524182203741422743659680 155:127:5213949851978613452765823355360 155:128:1140551530120321692792523858985 155:129:238720087699602214770528249555 155:130:47744017539920442954105649911 155:131:9111453728992450945440009525 155:132:1656627950725900171898183550 155:133:286484532832298525967355050 155:134:47034774047093787845386650 155:135:7316520407325700331504590 155:136:1075958883430250048750675 155:137:149220575074268254936225 155:138:19463553270556728904725 155:139:2380434572658017204175 155:140:272049665446630537620 155:141:28941453770918142300 155:142:2853382766146859100 155:143:259398433286078100 155:144:21616536107173175 155:145:1639875152957965 155:146:112320215956025 155:147:6876747915675 155:148:371716103550 155:149:17463172650 155:150:698526906 155:151:23130030 155:152:608685 155:153:11935 155:154:155 155:155:1 # binomial(156, k) for 0 <= k <= 156 156:0:1 156:1:156 156:2:12090 156:3:620620 156:4:23738715 156:5:721656936 156:6:18161699556 156:7:389179276200 156:8:7248464019225 156:9:119196963871700 156:10:1752195368913990 156:11:23256411260131140 156:12:281014969393251275 156:13:3112781199432937200 156:14:31794836537065001400 156:15:300991119217548679920 156:16:2652484238104647741795 156:17:21843987843214746108900 156:18:168684128344824983840950 156:19:1225179458504518303686900 156:20:8392479290755950380255265 156:21:54351294454419488176891240 156:22:333519306879392313812741700 156:23:1943112483558198697865538600 156:24:10768081679718351117338193075 156:25:56855471268912893899545659436 156:26:286464105239522657724633899466 156:27:1379271617819923907563052108540 156:28:6354501382098935145558347214345 156:29:28047454376160817194188567015040 156:30:118734223525747459455398267030336 156:31:482597166588521931980005859542656 156:32:1885145181986413796796897888838500 156:33:7083575835342888206145919339878000 156:34:25625877286681624981057296435441000 156:35:89324486542147378505399719003537200 156:36:300229524211106466643149055539666700 156:37:973717375819804756680483423371892000 156:38:3049272834804125422236250720559346000 156:39:9226004987356071790355835513487252000 156:40:26986064588016509986790818876950212100 156:41:76350816883168662401652072920151819600 156:42:209055808132485623242618771090891887000 156:43:554240979700078163945547439636318026000 156:44:1423391606957018921041974106338725839500 156:45:3542663555093024870148913331331939867200 156:46:8548601187289690447533247386474898375200 156:47:20007364480890764877205472606643379176000 156:48:45433390175356111908654094044252673545500 156:49:100138900794662450737441676668965076386000 156:50:214297247700577644578125188071585263466040 156:51:445402122671788829907475881089961527988240 156:52:899369670779573598851633990662422316130100 156:53:1764800863416521778878678019413055110896800 156:54:3366194239479661911564885851843419933747600 156:55:6242760225944100272356697397964160604404640 156:56:11259263978934895134071900664185361090086940 156:57:19753094699885780936968246779272563315942000 156:58:33716489229115384702756145364620409797901000 156:59:56003660075479791540171224503945765427022000 156:60:90539250455358996323276812948045654107018900 156:61:142488000716630551590730722016596439250390400 156:62:218328388194837135501926106315752608528824000 156:63:325759817306582392653667523709218177804912000 156:64:473369734523627539324860620389957664622762750 156:65:670000239633442055659802724244247771466064200 156:66:923788209191564046440031028882220412172906700 156:67:1240909534734936778800041680588057270083009000 156:68:1624131596932490784017701611357898485843938250 156:69:2071356239566075202805184663760798068902414000 156:70:2574399897746407752057872367816991885635857400 156:71:3118287200087198122210943994820581720629348400 156:72:3681311277880720005387919993885408975742980750 156:73:4236029415643568225377880540909237725512471000 156:74:4751222182411029225761676822911712584020744500 156:75:5194669586102725286832766659716805758529347320 156:76:5536424164135799318861238150487648242643120170 156:77:5752129001699531759855831844662491680668176800 156:78:5825874245311064218315521996517139009907512400 156:79:5752129001699531759855831844662491680668176800 156:80:5536424164135799318861238150487648242643120170 156:81:5194669586102725286832766659716805758529347320 156:82:4751222182411029225761676822911712584020744500 156:83:4236029415643568225377880540909237725512471000 156:84:3681311277880720005387919993885408975742980750 156:85:3118287200087198122210943994820581720629348400 156:86:2574399897746407752057872367816991885635857400 156:87:2071356239566075202805184663760798068902414000 156:88:1624131596932490784017701611357898485843938250 156:89:1240909534734936778800041680588057270083009000 156:90:923788209191564046440031028882220412172906700 156:91:670000239633442055659802724244247771466064200 156:92:473369734523627539324860620389957664622762750 156:93:325759817306582392653667523709218177804912000 156:94:218328388194837135501926106315752608528824000 156:95:142488000716630551590730722016596439250390400 156:96:90539250455358996323276812948045654107018900 156:97:56003660075479791540171224503945765427022000 156:98:33716489229115384702756145364620409797901000 156:99:19753094699885780936968246779272563315942000 156:100:11259263978934895134071900664185361090086940 156:101:6242760225944100272356697397964160604404640 156:102:3366194239479661911564885851843419933747600 156:103:1764800863416521778878678019413055110896800 156:104:899369670779573598851633990662422316130100 156:105:445402122671788829907475881089961527988240 156:106:214297247700577644578125188071585263466040 156:107:100138900794662450737441676668965076386000 156:108:45433390175356111908654094044252673545500 156:109:20007364480890764877205472606643379176000 156:110:8548601187289690447533247386474898375200 156:111:3542663555093024870148913331331939867200 156:112:1423391606957018921041974106338725839500 156:113:554240979700078163945547439636318026000 156:114:209055808132485623242618771090891887000 156:115:76350816883168662401652072920151819600 156:116:26986064588016509986790818876950212100 156:117:9226004987356071790355835513487252000 156:118:3049272834804125422236250720559346000 156:119:973717375819804756680483423371892000 156:120:300229524211106466643149055539666700 156:121:89324486542147378505399719003537200 156:122:25625877286681624981057296435441000 156:123:7083575835342888206145919339878000 156:124:1885145181986413796796897888838500 156:125:482597166588521931980005859542656 156:126:118734223525747459455398267030336 156:127:28047454376160817194188567015040 156:128:6354501382098935145558347214345 156:129:1379271617819923907563052108540 156:130:286464105239522657724633899466 156:131:56855471268912893899545659436 156:132:10768081679718351117338193075 156:133:1943112483558198697865538600 156:134:333519306879392313812741700 156:135:54351294454419488176891240 156:136:8392479290755950380255265 156:137:1225179458504518303686900 156:138:168684128344824983840950 156:139:21843987843214746108900 156:140:2652484238104647741795 156:141:300991119217548679920 156:142:31794836537065001400 156:143:3112781199432937200 156:144:281014969393251275 156:145:23256411260131140 156:146:1752195368913990 156:147:119196963871700 156:148:7248464019225 156:149:389179276200 156:150:18161699556 156:151:721656936 156:152:23738715 156:153:620620 156:154:12090 156:155:156 156:156:1 # binomial(157, k) for 0 <= k <= 157 157:0:1 157:1:157 157:2:12246 157:3:632710 157:4:24359335 157:5:745395651 157:6:18883356492 157:7:407340975756 157:8:7637643295425 157:9:126445427890925 157:10:1871392332785690 157:11:25008606629045130 157:12:304271380653382415 157:13:3393796168826188475 157:14:34907617736497938600 157:15:332785955754613681320 157:16:2953475357322196421715 157:17:24496472081319393850695 157:18:190528116188039729949850 157:19:1393863586849343287527850 157:20:9617658749260468683942165 157:21:62743773745175438557146505 157:22:387870601333811801989632940 157:23:2276631790437591011678280300 157:24:12711194163276549815203731675 157:25:67623552948631245016883852511 157:26:343319576508435551624179558902 157:27:1665735723059446565287686008006 157:28:7733772999918859053121399322885 157:29:34401955758259752339746914229385 157:30:146781677901908276649586834045376 157:31:601331390114269391435404126572992 157:32:2367742348574935728776903748381156 157:33:8968721017329302002942817228716500 157:34:32709453122024513187203215775319000 157:35:114950363828829003486457015438978200 157:36:389554010753253845148548774543203900 157:37:1273946900030911223323632478911558700 157:38:4022990210623930178916734143931238000 157:39:12275277822160197212592086234046598000 157:40:36212069575372581777146654390437464100 157:41:103336881471185172388442891797102031700 157:42:285406625015654285644270844011043706600 157:43:763296787832563787188166210727209913000 157:44:1977632586657097084987521545975043865500 157:45:4966055162050043791190887437670665706700 157:46:12091264742382715317682160717806838242400 157:47:28555965668180455324738719993118277551200 157:48:65440754656246876785859566650896052721500 157:49:145572290970018562646095770713217749931500 157:50:314436148495240095315566864740550339852040 157:51:659699370372366474485601069161546791454280 157:52:1344771793451362428759109871752383844118340 157:53:2664170534196095377730312010075477427026900 157:54:5130995102896183690443563871256475044644400 157:55:9608954465423762183921583249807580538152240 157:56:17502024204878995406428598062149521694491580 157:57:31012358678820676071040147443457924406028940 157:58:53469583929001165639724392143892973113843000 157:59:89720149304595176242927369868566175224923000 157:60:146542910530838787863448037451991419534040900 157:61:233027251171989547914007534964642093357409300 157:62:360816388911467687092656828332349047779214400 157:63:544088205501419528155593630024970786333736000 157:64:799129551830209931978528144099175842427674750 157:65:1143369974157069594984663344634205436088826950 157:66:1593788448825006102099833753126468183638970900 157:67:2164697743926500825240072709470277682255915700 157:68:2865041131667427562817743291945955755926947250 157:69:3695487836498565986822886275118696554746352250 157:70:4645756137312482954863057031577789954538271400 157:71:5692687097833605874268816362637573606265205800 157:72:6799598477967918127598863988705990696372329150 157:73:7917340693524288230765800534794646701255451750 157:74:8987251598054597451139557363820950309533215500 157:75:9945891768513754512594443482628518342550091820 157:76:10731093750238524605694004810204454001172467490 157:77:11288553165835331078717069995150139923311296970 157:78:11578003247010595978171353841179630690575689200 157:79:11578003247010595978171353841179630690575689200 157:80:11288553165835331078717069995150139923311296970 157:81:10731093750238524605694004810204454001172467490 157:82:9945891768513754512594443482628518342550091820 157:83:8987251598054597451139557363820950309533215500 157:84:7917340693524288230765800534794646701255451750 157:85:6799598477967918127598863988705990696372329150 157:86:5692687097833605874268816362637573606265205800 157:87:4645756137312482954863057031577789954538271400 157:88:3695487836498565986822886275118696554746352250 157:89:2865041131667427562817743291945955755926947250 157:90:2164697743926500825240072709470277682255915700 157:91:1593788448825006102099833753126468183638970900 157:92:1143369974157069594984663344634205436088826950 157:93:799129551830209931978528144099175842427674750 157:94:544088205501419528155593630024970786333736000 157:95:360816388911467687092656828332349047779214400 157:96:233027251171989547914007534964642093357409300 157:97:146542910530838787863448037451991419534040900 157:98:89720149304595176242927369868566175224923000 157:99:53469583929001165639724392143892973113843000 157:100:31012358678820676071040147443457924406028940 157:101:17502024204878995406428598062149521694491580 157:102:9608954465423762183921583249807580538152240 157:103:5130995102896183690443563871256475044644400 157:104:2664170534196095377730312010075477427026900 157:105:1344771793451362428759109871752383844118340 157:106:659699370372366474485601069161546791454280 157:107:314436148495240095315566864740550339852040 157:108:145572290970018562646095770713217749931500 157:109:65440754656246876785859566650896052721500 157:110:28555965668180455324738719993118277551200 157:111:12091264742382715317682160717806838242400 157:112:4966055162050043791190887437670665706700 157:113:1977632586657097084987521545975043865500 157:114:763296787832563787188166210727209913000 157:115:285406625015654285644270844011043706600 157:116:103336881471185172388442891797102031700 157:117:36212069575372581777146654390437464100 157:118:12275277822160197212592086234046598000 157:119:4022990210623930178916734143931238000 157:120:1273946900030911223323632478911558700 157:121:389554010753253845148548774543203900 157:122:114950363828829003486457015438978200 157:123:32709453122024513187203215775319000 157:124:8968721017329302002942817228716500 157:125:2367742348574935728776903748381156 157:126:601331390114269391435404126572992 157:127:146781677901908276649586834045376 157:128:34401955758259752339746914229385 157:129:7733772999918859053121399322885 157:130:1665735723059446565287686008006 157:131:343319576508435551624179558902 157:132:67623552948631245016883852511 157:133:12711194163276549815203731675 157:134:2276631790437591011678280300 157:135:387870601333811801989632940 157:136:62743773745175438557146505 157:137:9617658749260468683942165 157:138:1393863586849343287527850 157:139:190528116188039729949850 157:140:24496472081319393850695 157:141:2953475357322196421715 157:142:332785955754613681320 157:143:34907617736497938600 157:144:3393796168826188475 157:145:304271380653382415 157:146:25008606629045130 157:147:1871392332785690 157:148:126445427890925 157:149:7637643295425 157:150:407340975756 157:151:18883356492 157:152:745395651 157:153:24359335 157:154:632710 157:155:12246 157:156:157 157:157:1 # binomial(158, k) for 0 <= k <= 158 158:0:1 158:1:158 158:2:12403 158:3:644956 158:4:24992045 158:5:769754986 158:6:19628752143 158:7:426224332248 158:8:8044984271181 158:9:134083071186350 158:10:1997837760676615 158:11:26879998961830820 158:12:329279987282427545 158:13:3698067549479570890 158:14:38301413905324127075 158:15:367693573491111619920 158:16:3286261313076810103035 158:17:27449947438641590272410 158:18:215024588269359123800545 158:19:1584391703037383017477700 158:20:11011522336109811971470015 158:21:72361432494435907241088670 158:22:450614375078987240546779445 158:23:2664502391771402813667913240 158:24:14987825953714140826882011975 158:25:80334747111907794832087584186 158:26:410943129457066796641063411413 158:27:2009055299567882116911865566908 158:28:9399508722978305618409085330891 158:29:42135728758178611392868313552270 158:30:181183633660168028989333748274761 158:31:748113068016177668084990960618368 158:32:2969073738689205120212307874954148 158:33:11336463365904237731719720977097656 158:34:41678174139353815190146033004035500 158:35:147659816950853516673660231214297200 158:36:504504374582082848635005789982182100 158:37:1663500910784165068472181253454762600 158:38:5296937110654841402240366622842796700 158:39:16298268032784127391508820377977836000 158:40:48487347397532778989738740624484062100 158:41:139548951046557754165589546187539495800 158:42:388743506486839458032713735808145738300 158:43:1048703412848218072832437054738253619600 158:44:2740929374489660872175687756702253778500 158:45:6943687748707140876178408983645709572200 158:46:17057319904432759108873048155477503949100 158:47:40647230410563170642420880710925115793600 158:48:93996720324427332110598286644014330272700 158:49:211013045626265439431955337364113802653000 158:50:460008439465258657961662635453768089783540 158:51:974135518867606569801167933902097131306320 158:52:2004471163823728903244710940913930635572620 158:53:4008942327647457806489421881827861271145240 158:54:7795165637092279068173875881331952471671300 158:55:14739949568319945874365147121064055582796640 158:56:27110978670302757590350181311957102232643820 158:57:48514382883699671477468745505607446100520520 158:58:84481942607821841710764539587350897519871940 158:59:143189733233596341882651762012459148338766000 158:60:236263059835433964106375407320557594758963900 158:61:379570161702828335777455572416633512891450200 158:62:593843640083457235006664363296991141136623700 158:63:904904594412887215248250458357319834112950400 158:64:1343217757331629460134121774124146628761410750 158:65:1942499525987279526963191488733381278516501700 158:66:2737158422982075697084497097760673619727797850 158:67:3758486192751506927339906462596745865894886600 158:68:5029738875593928388057816001416233438182862950 158:69:6560528968165993549640629567064652310673299500 158:70:8341243973811048941685943306696486509284623650 158:71:10338443235146088829131873394215363560803477200 158:72:12492285575801524001867680351343564302637534950 158:73:14716939171492206358364664523500637397627780900 158:74:16904592291578885681905357898615597010788667250 158:75:18933143366568351963734000846449468652083307320 158:76:20676985518752279118288448292832972343722559310 158:77:22019646916073855684411074805354593924483764460 158:78:22866556412845927056888423836329770613886986170 158:79:23156006494021191956342707682359261381151378400 158:80:22866556412845927056888423836329770613886986170 158:81:22019646916073855684411074805354593924483764460 158:82:20676985518752279118288448292832972343722559310 158:83:18933143366568351963734000846449468652083307320 158:84:16904592291578885681905357898615597010788667250 158:85:14716939171492206358364664523500637397627780900 158:86:12492285575801524001867680351343564302637534950 158:87:10338443235146088829131873394215363560803477200 158:88:8341243973811048941685943306696486509284623650 158:89:6560528968165993549640629567064652310673299500 158:90:5029738875593928388057816001416233438182862950 158:91:3758486192751506927339906462596745865894886600 158:92:2737158422982075697084497097760673619727797850 158:93:1942499525987279526963191488733381278516501700 158:94:1343217757331629460134121774124146628761410750 158:95:904904594412887215248250458357319834112950400 158:96:593843640083457235006664363296991141136623700 158:97:379570161702828335777455572416633512891450200 158:98:236263059835433964106375407320557594758963900 158:99:143189733233596341882651762012459148338766000 158:100:84481942607821841710764539587350897519871940 158:101:48514382883699671477468745505607446100520520 158:102:27110978670302757590350181311957102232643820 158:103:14739949568319945874365147121064055582796640 158:104:7795165637092279068173875881331952471671300 158:105:4008942327647457806489421881827861271145240 158:106:2004471163823728903244710940913930635572620 158:107:974135518867606569801167933902097131306320 158:108:460008439465258657961662635453768089783540 158:109:211013045626265439431955337364113802653000 158:110:93996720324427332110598286644014330272700 158:111:40647230410563170642420880710925115793600 158:112:17057319904432759108873048155477503949100 158:113:6943687748707140876178408983645709572200 158:114:2740929374489660872175687756702253778500 158:115:1048703412848218072832437054738253619600 158:116:388743506486839458032713735808145738300 158:117:139548951046557754165589546187539495800 158:118:48487347397532778989738740624484062100 158:119:16298268032784127391508820377977836000 158:120:5296937110654841402240366622842796700 158:121:1663500910784165068472181253454762600 158:122:504504374582082848635005789982182100 158:123:147659816950853516673660231214297200 158:124:41678174139353815190146033004035500 158:125:11336463365904237731719720977097656 158:126:2969073738689205120212307874954148 158:127:748113068016177668084990960618368 158:128:181183633660168028989333748274761 158:129:42135728758178611392868313552270 158:130:9399508722978305618409085330891 158:131:2009055299567882116911865566908 158:132:410943129457066796641063411413 158:133:80334747111907794832087584186 158:134:14987825953714140826882011975 158:135:2664502391771402813667913240 158:136:450614375078987240546779445 158:137:72361432494435907241088670 158:138:11011522336109811971470015 158:139:1584391703037383017477700 158:140:215024588269359123800545 158:141:27449947438641590272410 158:142:3286261313076810103035 158:143:367693573491111619920 158:144:38301413905324127075 158:145:3698067549479570890 158:146:329279987282427545 158:147:26879998961830820 158:148:1997837760676615 158:149:134083071186350 158:150:8044984271181 158:151:426224332248 158:152:19628752143 158:153:769754986 158:154:24992045 158:155:644956 158:156:12403 158:157:158 158:158:1 # binomial(159, k) for 0 <= k <= 159 159:0:1 159:1:159 159:2:12561 159:3:657359 159:4:25637001 159:5:794747031 159:6:20398507129 159:7:445853084391 159:8:8471208603429 159:9:142128055457531 159:10:2131920831862965 159:11:28877836722507435 159:12:356159986244258365 159:13:4027347536761998435 159:14:41999481454803697965 159:15:405994987396435746995 159:16:3653954886567921722955 159:17:30736208751718400375445 159:18:242474535708000714072955 159:19:1799416291306742141278245 159:20:12595914039147194988947715 159:21:83372954830545719212558685 159:22:522975807573423147787868115 159:23:3115116766850390054214692685 159:24:17652328345485543640549925215 159:25:95322573065621935658969596161 159:26:491277876568974591473150995599 159:27:2419998429024948913552928978321 159:28:11408564022546187735320950897799 159:29:51535237481156917011277398883161 159:30:223319362418346640382202061827031 159:31:929296701676345697074324708893129 159:32:3717186806705382788297298835572516 159:33:14305537104593442851932028852051804 159:34:53014637505258052921865753981133156 159:35:189337991090207331863806264218332700 159:36:652164191532936365308666021196479300 159:37:2168005285366247917107187043436944700 159:38:6960438021439006470712547876297559300 159:39:21595205143438968793749187000820632700 159:40:64785615430316906381247561002461898100 159:41:188036298444090533155328286812023557900 159:42:528292457533397212198303281995685234100 159:43:1437446919335057530865150790546399357900 159:44:3789632787337878945008124811440507398100 159:45:9684617123196801748354096740347963350700 159:46:24001007653139899985051457139123213521300 159:47:57704550314995929751293928866402619742700 159:48:134643950734990502753019167354939446066300 159:49:305009765950692771542553624008128132925700 159:50:671021485091524097393617972817881892436540 159:51:1434143958332865227762830569355865221089860 159:52:2978606682691335473045878874816027766878940 159:53:6013413491471186709734132822741791906717860 159:54:11804107964739736874663297763159813742816540 159:55:22535115205412224942539023002396008054467940 159:56:41850928238622703464715328433021157815440460 159:57:75625361554002429067818926817564548333164340 159:58:132996325491521513188233285092958343620392460 159:59:227671675841418183593416301599810045858637940 159:60:379452793069030305989027169333016743097729900 159:61:615833221538262299883830979737191107650414100 159:62:973413801786285570784119935713624654028073900 159:63:1498748234496344450254914821654310975249574100 159:64:2248122351744516675382372232481466462874361150 159:65:3285717283318908987097313262857527907277912450 159:66:4679657948969355224047688586494054898244299550 159:67:6495644615733582624424403560357419485622684450 159:68:8788225068345435315397722464012979304077749550 159:69:11590267843759921937698445568480885748856162450 159:70:14901772941977042491326572873761138819957923150 159:71:18679687208957137770817816700911850070088100850 159:72:22830728810947612830999553745558927863441012150 159:73:27209224747293730360232344874844201700265315850 159:74:31621531463071092040270022422116234408416448150 159:75:35837735658147237645639358745065065662871974570 159:76:39610128885320631082022449139282440995805866630 159:77:42696632434826134802699523098187566268206323770 159:78:44886203328919782741299498641684364538370750630 159:79:46022562906867119013231131518689031995038364570 159:80:46022562906867119013231131518689031995038364570 159:81:44886203328919782741299498641684364538370750630 159:82:42696632434826134802699523098187566268206323770 159:83:39610128885320631082022449139282440995805866630 159:84:35837735658147237645639358745065065662871974570 159:85:31621531463071092040270022422116234408416448150 159:86:27209224747293730360232344874844201700265315850 159:87:22830728810947612830999553745558927863441012150 159:88:18679687208957137770817816700911850070088100850 159:89:14901772941977042491326572873761138819957923150 159:90:11590267843759921937698445568480885748856162450 159:91:8788225068345435315397722464012979304077749550 159:92:6495644615733582624424403560357419485622684450 159:93:4679657948969355224047688586494054898244299550 159:94:3285717283318908987097313262857527907277912450 159:95:2248122351744516675382372232481466462874361150 159:96:1498748234496344450254914821654310975249574100 159:97:973413801786285570784119935713624654028073900 159:98:615833221538262299883830979737191107650414100 159:99:379452793069030305989027169333016743097729900 159:100:227671675841418183593416301599810045858637940 159:101:132996325491521513188233285092958343620392460 159:102:75625361554002429067818926817564548333164340 159:103:41850928238622703464715328433021157815440460 159:104:22535115205412224942539023002396008054467940 159:105:11804107964739736874663297763159813742816540 159:106:6013413491471186709734132822741791906717860 159:107:2978606682691335473045878874816027766878940 159:108:1434143958332865227762830569355865221089860 159:109:671021485091524097393617972817881892436540 159:110:305009765950692771542553624008128132925700 159:111:134643950734990502753019167354939446066300 159:112:57704550314995929751293928866402619742700 159:113:24001007653139899985051457139123213521300 159:114:9684617123196801748354096740347963350700 159:115:3789632787337878945008124811440507398100 159:116:1437446919335057530865150790546399357900 159:117:528292457533397212198303281995685234100 159:118:188036298444090533155328286812023557900 159:119:64785615430316906381247561002461898100 159:120:21595205143438968793749187000820632700 159:121:6960438021439006470712547876297559300 159:122:2168005285366247917107187043436944700 159:123:652164191532936365308666021196479300 159:124:189337991090207331863806264218332700 159:125:53014637505258052921865753981133156 159:126:14305537104593442851932028852051804 159:127:3717186806705382788297298835572516 159:128:929296701676345697074324708893129 159:129:223319362418346640382202061827031 159:130:51535237481156917011277398883161 159:131:11408564022546187735320950897799 159:132:2419998429024948913552928978321 159:133:491277876568974591473150995599 159:134:95322573065621935658969596161 159:135:17652328345485543640549925215 159:136:3115116766850390054214692685 159:137:522975807573423147787868115 159:138:83372954830545719212558685 159:139:12595914039147194988947715 159:140:1799416291306742141278245 159:141:242474535708000714072955 159:142:30736208751718400375445 159:143:3653954886567921722955 159:144:405994987396435746995 159:145:41999481454803697965 159:146:4027347536761998435 159:147:356159986244258365 159:148:28877836722507435 159:149:2131920831862965 159:150:142128055457531 159:151:8471208603429 159:152:445853084391 159:153:20398507129 159:154:794747031 159:155:25637001 159:156:657359 159:157:12561 159:158:159 159:159:1 # binomial(160, k) for 0 <= k <= 160 160:0:1 160:1:160 160:2:12720 160:3:669920 160:4:26294360 160:5:820384032 160:6:21193254160 160:7:466251591520 160:8:8917061687820 160:9:150599264060960 160:10:2274048887320496 160:11:31009757554370400 160:12:385037822966765800 160:13:4383507523006256800 160:14:46026828991565696400 160:15:447994468851239444960 160:16:4059949873964357469950 160:17:34390163638286322098400 160:18:273210744459719114448400 160:19:2041890827014742855351200 160:20:14395330330453937130225960 160:21:95968868869692914201506400 160:22:606348762403968867000426800 160:23:3638092574423813202002560800 160:24:20767445112335933694764617900 160:25:112974901411107479299519521376 160:26:586600449634596527132120591760 160:27:2911276305593923505026079973920 160:28:13828562451571136648873879876120 160:29:62943801503703104746598349780960 160:30:274854599899503557393479460710192 160:31:1152616064094692337456526770720160 160:32:4646483508381728485371623544465645 160:33:18022723911298825640229327687624320 160:34:67320174609851495773797782833184960 160:35:242352628595465384785672018199465856 160:36:841502182623143697172472285414812000 160:37:2820169476899184282415853064633424000 160:38:9128443306805254387819734919734504000 160:39:28555643164877975264461734877118192000 160:40:86380820573755875174996748003282530800 160:41:252821913874407439536575847814485456000 160:42:716328755977487745353631568807708792000 160:43:1965739376868454743063454072542084592000 160:44:5227079706672936475873275601986906756000 160:45:13474249910534680693362221551788470748800 160:46:33685624776336701733405553879471176872000 160:47:81705557968135829736345386005525833264000 160:48:192348501049986432504313096221342065809000 160:49:439653716685683274295572791363067578992000 160:50:976031251042216868936171596826010025362240 160:51:2105165443424389325156448542173747113526400 160:52:4412750641024200700808709444171892987968800 160:53:8992020174162522182780011697557819673596800 160:54:17817521456210923584397430585901605649534400 160:55:34339223170151961817202320765555821797284480 160:56:64386043444034928407254351435417165869908400 160:57:117476289792625132532534255250585706148604800 160:58:208621687045523942256052211910522891953556800 160:59:360668001332939696781649586692768389479030400 160:60:607124468910448489582443470932826788956367840 160:61:995286014607292605872858149070207850748144000 160:62:1589247023324547870667950915450815761678488000 160:63:2472162036282630021039034757367935629277648000 160:64:3746870586240861125637287054135777438123935250 160:65:5533839635063425662479685495338994370152273600 160:66:7965375232288264211145001849351582805522212000 160:67:11175302564702937848472092146851474383866984000 160:68:15283869684079017939822126024370398789700434000 160:69:20378492912105357253096168032493865052933912000 160:70:26492040785736964429025018442242024568814085600 160:71:33581460150934180262144389574672988890046024000 160:72:41510416019904750601817370446470777933529113000 160:73:50039953558241343191231898620403129563706328000 160:74:58830756210364822400502367296960436108681764000 160:75:67459267121218329685909381167181300071288422720 160:76:75447864543467868727661807884347506658677841200 160:77:82306761320146765884721972237470007264012190400 160:78:87582835763745917543999021739871930806577074400 160:79:90908766235786901754530630160373396533409115200 160:80:92045125813734238026462263037378063990076729140 160:81:90908766235786901754530630160373396533409115200 160:82:87582835763745917543999021739871930806577074400 160:83:82306761320146765884721972237470007264012190400 160:84:75447864543467868727661807884347506658677841200 160:85:67459267121218329685909381167181300071288422720 160:86:58830756210364822400502367296960436108681764000 160:87:50039953558241343191231898620403129563706328000 160:88:41510416019904750601817370446470777933529113000 160:89:33581460150934180262144389574672988890046024000 160:90:26492040785736964429025018442242024568814085600 160:91:20378492912105357253096168032493865052933912000 160:92:15283869684079017939822126024370398789700434000 160:93:11175302564702937848472092146851474383866984000 160:94:7965375232288264211145001849351582805522212000 160:95:5533839635063425662479685495338994370152273600 160:96:3746870586240861125637287054135777438123935250 160:97:2472162036282630021039034757367935629277648000 160:98:1589247023324547870667950915450815761678488000 160:99:995286014607292605872858149070207850748144000 160:100:607124468910448489582443470932826788956367840 160:101:360668001332939696781649586692768389479030400 160:102:208621687045523942256052211910522891953556800 160:103:117476289792625132532534255250585706148604800 160:104:64386043444034928407254351435417165869908400 160:105:34339223170151961817202320765555821797284480 160:106:17817521456210923584397430585901605649534400 160:107:8992020174162522182780011697557819673596800 160:108:4412750641024200700808709444171892987968800 160:109:2105165443424389325156448542173747113526400 160:110:976031251042216868936171596826010025362240 160:111:439653716685683274295572791363067578992000 160:112:192348501049986432504313096221342065809000 160:113:81705557968135829736345386005525833264000 160:114:33685624776336701733405553879471176872000 160:115:13474249910534680693362221551788470748800 160:116:5227079706672936475873275601986906756000 160:117:1965739376868454743063454072542084592000 160:118:716328755977487745353631568807708792000 160:119:252821913874407439536575847814485456000 160:120:86380820573755875174996748003282530800 160:121:28555643164877975264461734877118192000 160:122:9128443306805254387819734919734504000 160:123:2820169476899184282415853064633424000 160:124:841502182623143697172472285414812000 160:125:242352628595465384785672018199465856 160:126:67320174609851495773797782833184960 160:127:18022723911298825640229327687624320 160:128:4646483508381728485371623544465645 160:129:1152616064094692337456526770720160 160:130:274854599899503557393479460710192 160:131:62943801503703104746598349780960 160:132:13828562451571136648873879876120 160:133:2911276305593923505026079973920 160:134:586600449634596527132120591760 160:135:112974901411107479299519521376 160:136:20767445112335933694764617900 160:137:3638092574423813202002560800 160:138:606348762403968867000426800 160:139:95968868869692914201506400 160:140:14395330330453937130225960 160:141:2041890827014742855351200 160:142:273210744459719114448400 160:143:34390163638286322098400 160:144:4059949873964357469950 160:145:447994468851239444960 160:146:46026828991565696400 160:147:4383507523006256800 160:148:385037822966765800 160:149:31009757554370400 160:150:2274048887320496 160:151:150599264060960 160:152:8917061687820 160:153:466251591520 160:154:21193254160 160:155:820384032 160:156:26294360 160:157:669920 160:158:12720 160:159:160 160:160:1 # binomial(161, k) for 0 <= k <= 161 161:0:1 161:1:161 161:2:12880 161:3:682640 161:4:26964280 161:5:846678392 161:6:22013638192 161:7:487444845680 161:8:9383313279340 161:9:159516325748780 161:10:2424648151381456 161:11:33283806441690896 161:12:416047580521136200 161:13:4768545345973022600 161:14:50410336514571953200 161:15:494021297842805141360 161:16:4507944342815596914910 161:17:38450113512250679568350 161:18:307600908098005436546800 161:19:2315101571474461969799600 161:20:16437221157468679985577160 161:21:110364199200146851331732360 161:22:702317631273661781201933200 161:23:4244441336827782069002987600 161:24:24405537686759746896767178700 161:25:133742346523443412994284139276 161:26:699575351045704006431640113136 161:27:3497876755228520032158200565680 161:28:16739838757165060153899959850040 161:29:76772363955274241395472229657080 161:30:337798401403206662140077810491152 161:31:1427470663994195894850006231430352 161:32:5799099572476420822828150315185805 161:33:22669207419680554125600951232089965 161:34:85342898521150321414027110520809280 161:35:309672803205316880559469801032650816 161:36:1083854811218609081958144303614277856 161:37:3661671659522327979588325350048236000 161:38:11948612783704438670235587984367928000 161:39:37684086471683229652281469796852696000 161:40:114936463738633850439458482880400722800 161:41:339202734448163314711572595817767986800 161:42:969150669851895184890207416622194248000 161:43:2682068132845942488417085641349793384000 161:44:7192819083541391218936729674528991348000 161:45:18701329617207617169235497153775377504800 161:46:47159874686871382426767775431259647620800 161:47:115391182744472531469750939884997010136000 161:48:274054059018122262240658482226867899073000 161:49:632002217735669706799885887584409644801000 161:50:1415684967727900143231744388189077604354240 161:51:3081196694466606194092620138999757138888640 161:52:6517916084448590025965157986345640101495200 161:53:13404770815186722883588721141729712661565600 161:54:26809541630373445767177442283459425323131200 161:55:52156744626362885401599751351457427446818880 161:56:98725266614186890224456672200972987667192880 161:57:181862333236660060939788606686002872018513200 161:58:326097976838149074788586467161108598102161600 161:59:569289688378463639037701798603291281432587200 161:60:967792470243388186364093057625595178435398240 161:61:1602410483517741095455301620003034639704511840 161:62:2584533037931840476540809064521023612426632000 161:63:4061409059607177891706985672818751390956136000 161:64:6219032622523491146676321811503713067401583250 161:65:9280710221304286788116972549474771808276208850 161:66:13499214867351689873624687344690577175674485600 161:67:19140677796991202059617093996203057189389196000 161:68:26459172248781955788294218171221873173567418000 161:69:35662362596184375192918294056864263842634346000 161:70:46870533697842321682121186474735889621747997600 161:71:60073500936671144691169408016915013458860109600 161:72:75091876170838930863961760021143766823575137000 161:73:91550369578146093793049269066873907497235441000 161:74:108870709768606165591734265917363565672388092000 161:75:126290023331583152086411748464141736179970186720 161:76:142907131664686198413571189051528806729966263920 161:77:157754625863614634612383780121817513922690031600 161:78:169889597083892683428720993977341938070589264800 161:79:178491601999532819298529651900245327339986189600 161:80:182953892049521139780992893197751460523485844340 161:81:182953892049521139780992893197751460523485844340 161:82:178491601999532819298529651900245327339986189600 161:83:169889597083892683428720993977341938070589264800 161:84:157754625863614634612383780121817513922690031600 161:85:142907131664686198413571189051528806729966263920 161:86:126290023331583152086411748464141736179970186720 161:87:108870709768606165591734265917363565672388092000 161:88:91550369578146093793049269066873907497235441000 161:89:75091876170838930863961760021143766823575137000 161:90:60073500936671144691169408016915013458860109600 161:91:46870533697842321682121186474735889621747997600 161:92:35662362596184375192918294056864263842634346000 161:93:26459172248781955788294218171221873173567418000 161:94:19140677796991202059617093996203057189389196000 161:95:13499214867351689873624687344690577175674485600 161:96:9280710221304286788116972549474771808276208850 161:97:6219032622523491146676321811503713067401583250 161:98:4061409059607177891706985672818751390956136000 161:99:2584533037931840476540809064521023612426632000 161:100:1602410483517741095455301620003034639704511840 161:101:967792470243388186364093057625595178435398240 161:102:569289688378463639037701798603291281432587200 161:103:326097976838149074788586467161108598102161600 161:104:181862333236660060939788606686002872018513200 161:105:98725266614186890224456672200972987667192880 161:106:52156744626362885401599751351457427446818880 161:107:26809541630373445767177442283459425323131200 161:108:13404770815186722883588721141729712661565600 161:109:6517916084448590025965157986345640101495200 161:110:3081196694466606194092620138999757138888640 161:111:1415684967727900143231744388189077604354240 161:112:632002217735669706799885887584409644801000 161:113:274054059018122262240658482226867899073000 161:114:115391182744472531469750939884997010136000 161:115:47159874686871382426767775431259647620800 161:116:18701329617207617169235497153775377504800 161:117:7192819083541391218936729674528991348000 161:118:2682068132845942488417085641349793384000 161:119:969150669851895184890207416622194248000 161:120:339202734448163314711572595817767986800 161:121:114936463738633850439458482880400722800 161:122:37684086471683229652281469796852696000 161:123:11948612783704438670235587984367928000 161:124:3661671659522327979588325350048236000 161:125:1083854811218609081958144303614277856 161:126:309672803205316880559469801032650816 161:127:85342898521150321414027110520809280 161:128:22669207419680554125600951232089965 161:129:5799099572476420822828150315185805 161:130:1427470663994195894850006231430352 161:131:337798401403206662140077810491152 161:132:76772363955274241395472229657080 161:133:16739838757165060153899959850040 161:134:3497876755228520032158200565680 161:135:699575351045704006431640113136 161:136:133742346523443412994284139276 161:137:24405537686759746896767178700 161:138:4244441336827782069002987600 161:139:702317631273661781201933200 161:140:110364199200146851331732360 161:141:16437221157468679985577160 161:142:2315101571474461969799600 161:143:307600908098005436546800 161:144:38450113512250679568350 161:145:4507944342815596914910 161:146:494021297842805141360 161:147:50410336514571953200 161:148:4768545345973022600 161:149:416047580521136200 161:150:33283806441690896 161:151:2424648151381456 161:152:159516325748780 161:153:9383313279340 161:154:487444845680 161:155:22013638192 161:156:846678392 161:157:26964280 161:158:682640 161:159:12880 161:160:161 161:161:1 # binomial(162, k) for 0 <= k <= 162 162:0:1 162:1:162 162:2:13041 162:3:695520 162:4:27646920 162:5:873642672 162:6:22860316584 162:7:509458483872 162:8:9870758125020 162:9:168899639028120 162:10:2584164477130236 162:11:35708454593072352 162:12:449331386962827096 162:13:5184592926494158800 162:14:55178881860544975800 162:15:544431634357377094560 162:16:5001965640658402056270 162:17:42958057855066276483260 162:18:346051021610256116115150 162:19:2622702479572467406346400 162:20:18752322728943141955376760 162:21:126801420357615531317309520 162:22:812681830473808632533665560 162:23:4946758968101443850204920800 162:24:28649979023587528965770166300 162:25:158147884210203159891051317976 162:26:833317697569147419425924252412 162:27:4197452106274224038589840678816 162:28:20237715512393580186058160415720 162:29:93512202712439301549372189507120 162:30:414570765358480903535550040148232 162:31:1765269065397402556990084041921504 162:32:7226570236470616717678156546616157 162:33:28468306992156974948429101547275770 162:34:108012105940830875539628061752899245 162:35:395015701726467201973496911553460096 162:36:1393527614423925962517614104646928672 162:37:4745526470740937061546469653662513856 162:38:15610284443226766649823913334416164000 162:39:49632699255387668322517057781220624000 162:40:152620550210317080091739952677253418800 162:41:454139198186797165151031078698168709600 162:42:1308353404300058499601780012439962234800 162:43:3651218802697837673307293057971987632000 162:44:9874887216387333707353815315878784732000 162:45:25894148700749008388172226828304368852800 162:46:65861204304078999596003272585035025125600 162:47:162551057431343913896518715316256657756800 162:48:389445241762594793710409422111864909209000 162:49:906056276753791969040544369811277543874000 162:50:2047687185463569850031630275773487249155240 162:51:4496881662194506337324364527188834743242880 162:52:9599112778915196220057778125345397240383840 162:53:19922686899635312909553879128075352763060800 162:54:40214312445560168650766163425189137984696800 162:55:78966286256736331168777193634916852769950080 162:56:150882011240549775626056423552430415114011760 162:57:280587599850846951164245278886975859685706080 162:58:507960310074809135728375073847111470120674800 162:59:895387665216612713826288265764399879534748800 162:60:1537082158621851825401794856228886459867985440 162:61:2570202953761129281819394677628629818139910080 162:62:4186943521449581571996110684524058252131143840 162:63:6645942097539018368247794737339775003382768000 162:64:10280441682130669038383307484322464458357719250 162:65:15499742843827777934793294360978484875677792100 162:66:22779925088655976661741659894165348983950694450 162:67:32639892664342891933241781340893634365063681600 162:68:45599850045773157847911312167424930362956614000 162:69:62121534844966330981212512228086137016201764000 162:70:82532896294026696875039480531600153464382343600 162:71:106944034634513466373290594491650903080608107200 162:72:135165377107510075555131168038058780282435246600 162:73:166642245748985024657011029088017674320810578000 162:74:200421079346752259384783534984237473169623533000 162:75:235160733100189317678146014381505301852358278720 162:76:269197154996269350499982937515670542909936450640 162:77:300661757528300833025954969173346320652656295520 162:78:327644222947507318041104774099159451993279296400 162:79:348381199083425502727250645877587265410575454400 162:80:361445494049053959079522545097996787863472033940 162:81:365907784099042279561985786395502921046971688680 162:82:361445494049053959079522545097996787863472033940 162:83:348381199083425502727250645877587265410575454400 162:84:327644222947507318041104774099159451993279296400 162:85:300661757528300833025954969173346320652656295520 162:86:269197154996269350499982937515670542909936450640 162:87:235160733100189317678146014381505301852358278720 162:88:200421079346752259384783534984237473169623533000 162:89:166642245748985024657011029088017674320810578000 162:90:135165377107510075555131168038058780282435246600 162:91:106944034634513466373290594491650903080608107200 162:92:82532896294026696875039480531600153464382343600 162:93:62121534844966330981212512228086137016201764000 162:94:45599850045773157847911312167424930362956614000 162:95:32639892664342891933241781340893634365063681600 162:96:22779925088655976661741659894165348983950694450 162:97:15499742843827777934793294360978484875677792100 162:98:10280441682130669038383307484322464458357719250 162:99:6645942097539018368247794737339775003382768000 162:100:4186943521449581571996110684524058252131143840 162:101:2570202953761129281819394677628629818139910080 162:102:1537082158621851825401794856228886459867985440 162:103:895387665216612713826288265764399879534748800 162:104:507960310074809135728375073847111470120674800 162:105:280587599850846951164245278886975859685706080 162:106:150882011240549775626056423552430415114011760 162:107:78966286256736331168777193634916852769950080 162:108:40214312445560168650766163425189137984696800 162:109:19922686899635312909553879128075352763060800 162:110:9599112778915196220057778125345397240383840 162:111:4496881662194506337324364527188834743242880 162:112:2047687185463569850031630275773487249155240 162:113:906056276753791969040544369811277543874000 162:114:389445241762594793710409422111864909209000 162:115:162551057431343913896518715316256657756800 162:116:65861204304078999596003272585035025125600 162:117:25894148700749008388172226828304368852800 162:118:9874887216387333707353815315878784732000 162:119:3651218802697837673307293057971987632000 162:120:1308353404300058499601780012439962234800 162:121:454139198186797165151031078698168709600 162:122:152620550210317080091739952677253418800 162:123:49632699255387668322517057781220624000 162:124:15610284443226766649823913334416164000 162:125:4745526470740937061546469653662513856 162:126:1393527614423925962517614104646928672 162:127:395015701726467201973496911553460096 162:128:108012105940830875539628061752899245 162:129:28468306992156974948429101547275770 162:130:7226570236470616717678156546616157 162:131:1765269065397402556990084041921504 162:132:414570765358480903535550040148232 162:133:93512202712439301549372189507120 162:134:20237715512393580186058160415720 162:135:4197452106274224038589840678816 162:136:833317697569147419425924252412 162:137:158147884210203159891051317976 162:138:28649979023587528965770166300 162:139:4946758968101443850204920800 162:140:812681830473808632533665560 162:141:126801420357615531317309520 162:142:18752322728943141955376760 162:143:2622702479572467406346400 162:144:346051021610256116115150 162:145:42958057855066276483260 162:146:5001965640658402056270 162:147:544431634357377094560 162:148:55178881860544975800 162:149:5184592926494158800 162:150:449331386962827096 162:151:35708454593072352 162:152:2584164477130236 162:153:168899639028120 162:154:9870758125020 162:155:509458483872 162:156:22860316584 162:157:873642672 162:158:27646920 162:159:695520 162:160:13041 162:161:162 162:162:1 # binomial(163, k) for 0 <= k <= 163 163:0:1 163:1:163 163:2:13203 163:3:708561 163:4:28342440 163:5:901289592 163:6:23733959256 163:7:532318800456 163:8:10380216608892 163:9:178770397153140 163:10:2753064116158356 163:11:38292619070202588 163:12:485039841555899448 163:13:5633924313456985896 163:14:60363474787039134600 163:15:599610516217922070360 163:16:5546397275015779150830 163:17:47960023495724678539530 163:18:389009079465322392598410 163:19:2968753501182723522461550 163:20:21375025208515609361723160 163:21:145553743086558673272686280 163:22:939483250831424163850975080 163:23:5759440798575252482738586360 163:24:33596737991688972815975087100 163:25:186797863233790688856821484276 163:26:991465581779350579316975570388 163:27:5030769803843371458015764931228 163:28:24435167618667804224648001094536 163:29:113749918224832881735430349922840 163:30:508082968070920205084922229655352 163:31:2179839830755883460525634082069736 163:32:8991839301868019274668240588537661 163:33:35694877228627591666107258093891927 163:34:136480412932987850488057163300175015 163:35:503027807667298077513124973306359341 163:36:1788543316150393164491111016200388768 163:37:6139054085164863024064083758309442528 163:38:20355810913967703711370382988078677856 163:39:65242983698614434972340971115636788000 163:40:202253249465704748414257010458474042800 163:41:606759748397114245242771031375422128400 163:42:1762492602486855664752811091138130944400 163:43:4959572206997896172909073070411949866800 163:44:13526106019085171380661108373850772364000 163:45:35769035917136342095526042144183153584800 163:46:91755353004828007984175499413339393978400 163:47:228412261735422913492521987901291682882400 163:48:551996299193938707606928137428121566965800 163:49:1295501518516386762750953791923142453083000 163:50:2953743462217361819072174645584764793029240 163:51:6544568847658076187355994802962321992398120 163:52:14095994441109702557382142652534231983626720 163:53:29521799678550509129611657253420750003444640 163:54:60136999345195481560320042553264490747757600 163:55:119180598702296499819543357060105990754646880 163:56:229848297497286106794833617187347267883961840 163:57:431469611091396726790301702439406274799717840 163:58:788547909925656086892620352734087329806380880 163:59:1403347975291421849554663339611511349655423600 163:60:2432469823838464539228083121993286339402734240 163:61:4107285112382981107221189533857516278007895520 163:62:6757146475210710853815505362152688070271053920 163:63:10832885618988599940243905421863833255513911840 163:64:16926383779669687406631102221662239461740487250 163:65:25780184525958446973176601845300949334035511350 163:66:38279667932483754596534954255143833859628486550 163:67:55419817752998868594983441235058983349014376050 163:68:78239742710116049781153093508318564728020295600 163:69:107721384890739488829123824395511067379158378000 163:70:144654431138993027856251992759686290480584107600 163:71:189476930928540163248330075023251056544990450800 163:72:242109411742023541928421762529709683363043353800 163:73:301807622856495100212142197126076454603245824600 163:74:367063325095737284041794564072255147490434111000 163:75:435581812446941577062929549365742775021981811720 163:76:504357888096458668178128951897175844762294729360 163:77:569858912524570183525937906689016863562592746160 163:78:628305980475808151067059743272505772645935591920 163:79:676025422030932820768355419976746717403854750800 163:80:709826693132479461806773190975584053274047488340 163:81:727353278148096238641508331493499708910443722620 163:82:727353278148096238641508331493499708910443722620 163:83:709826693132479461806773190975584053274047488340 163:84:676025422030932820768355419976746717403854750800 163:85:628305980475808151067059743272505772645935591920 163:86:569858912524570183525937906689016863562592746160 163:87:504357888096458668178128951897175844762294729360 163:88:435581812446941577062929549365742775021981811720 163:89:367063325095737284041794564072255147490434111000 163:90:301807622856495100212142197126076454603245824600 163:91:242109411742023541928421762529709683363043353800 163:92:189476930928540163248330075023251056544990450800 163:93:144654431138993027856251992759686290480584107600 163:94:107721384890739488829123824395511067379158378000 163:95:78239742710116049781153093508318564728020295600 163:96:55419817752998868594983441235058983349014376050 163:97:38279667932483754596534954255143833859628486550 163:98:25780184525958446973176601845300949334035511350 163:99:16926383779669687406631102221662239461740487250 163:100:10832885618988599940243905421863833255513911840 163:101:6757146475210710853815505362152688070271053920 163:102:4107285112382981107221189533857516278007895520 163:103:2432469823838464539228083121993286339402734240 163:104:1403347975291421849554663339611511349655423600 163:105:788547909925656086892620352734087329806380880 163:106:431469611091396726790301702439406274799717840 163:107:229848297497286106794833617187347267883961840 163:108:119180598702296499819543357060105990754646880 163:109:60136999345195481560320042553264490747757600 163:110:29521799678550509129611657253420750003444640 163:111:14095994441109702557382142652534231983626720 163:112:6544568847658076187355994802962321992398120 163:113:2953743462217361819072174645584764793029240 163:114:1295501518516386762750953791923142453083000 163:115:551996299193938707606928137428121566965800 163:116:228412261735422913492521987901291682882400 163:117:91755353004828007984175499413339393978400 163:118:35769035917136342095526042144183153584800 163:119:13526106019085171380661108373850772364000 163:120:4959572206997896172909073070411949866800 163:121:1762492602486855664752811091138130944400 163:122:606759748397114245242771031375422128400 163:123:202253249465704748414257010458474042800 163:124:65242983698614434972340971115636788000 163:125:20355810913967703711370382988078677856 163:126:6139054085164863024064083758309442528 163:127:1788543316150393164491111016200388768 163:128:503027807667298077513124973306359341 163:129:136480412932987850488057163300175015 163:130:35694877228627591666107258093891927 163:131:8991839301868019274668240588537661 163:132:2179839830755883460525634082069736 163:133:508082968070920205084922229655352 163:134:113749918224832881735430349922840 163:135:24435167618667804224648001094536 163:136:5030769803843371458015764931228 163:137:991465581779350579316975570388 163:138:186797863233790688856821484276 163:139:33596737991688972815975087100 163:140:5759440798575252482738586360 163:141:939483250831424163850975080 163:142:145553743086558673272686280 163:143:21375025208515609361723160 163:144:2968753501182723522461550 163:145:389009079465322392598410 163:146:47960023495724678539530 163:147:5546397275015779150830 163:148:599610516217922070360 163:149:60363474787039134600 163:150:5633924313456985896 163:151:485039841555899448 163:152:38292619070202588 163:153:2753064116158356 163:154:178770397153140 163:155:10380216608892 163:156:532318800456 163:157:23733959256 163:158:901289592 163:159:28342440 163:160:708561 163:161:13203 163:162:163 163:163:1 # binomial(164, k) for 0 <= k <= 164 164:0:1 164:1:164 164:2:13366 164:3:721764 164:4:29051001 164:5:929632032 164:6:24635248848 164:7:556052759712 164:8:10912535409348 164:9:189150613762032 164:10:2931834513311496 164:11:41045683186360944 164:12:523332460626102036 164:13:6118964155012885344 164:14:65997399100496120496 164:15:659973991004961204960 164:16:6146007791233701221190 164:17:53506420770740457690360 164:18:436969102961047071137940 164:19:3357762580648045915059960 164:20:24343778709698332884184710 164:21:166928768295074282634409440 164:22:1085036993917982837123661360 164:23:6698924049406676646589561440 164:24:39356178790264225298713673460 164:25:220394601225479661672796571376 164:26:1178263445013141268173797054664 164:27:6022235385622722037332740501616 164:28:29465937422511175682663766025764 164:29:138185085843500685960078351017376 164:30:621832886295753086820352579578192 164:31:2687922798826803665610556311725088 164:32:11171679132623902735193874670607397 164:33:44686716530495610940775498682429588 164:34:172175290161615442154164421394066942 164:35:639508220600285928001182136606534356 164:36:2291571123817691242004235989506748109 164:37:7927597401315256188555194774509831296 164:38:26494864999132566735434466746388120384 164:39:85598794612582138683711354103715465856 164:40:267496233164319183386597981574110830800 164:41:809012997862818993657028041833896171200 164:42:2369252350883969909995582122513553072800 164:43:6722064809484751837661884161550080811200 164:44:18485678226083067553570181444262722230800 164:45:49295141936221513476187150518033925948800 164:46:127524388921964350079701541557522547563200 164:47:320167614740250921476697487314631076860800 164:48:780408560929361621099450125329413249848200 164:49:1847497817710325470357881929351264020048800 164:50:4249244980733748581823128437507907246112240 164:51:9498312309875438006428169448547086785427360 164:52:20640563288767778744738137455496553976024840 164:53:43617794119660211686993799905954981987071360 164:54:89658799023745990689931699806685240751202240 164:55:179317598047491981379863399613370481502404480 164:56:349028896199582606614376974247453258638608720 164:57:661317908588682833585135319626753542683679680 164:58:1220017521017052813682922055173493604606098720 164:59:2191895885217077936447283692345598679461804480 164:60:3835817799129886388782746461604797689058157840 164:61:6539754936221445646449272655850802617410629760 164:62:10864431587593691961036694896010204348278949440 164:63:17590032094199310794059410784016521325784965760 164:64:27759269398658287346875007643526072717254399090 164:65:42706568305628134379807704066963188795775998600 164:66:64059852458442201569711556100444783193663997900 164:67:93699485685482623191518395490202817208642862600 164:68:133659560463114918376136534743377548077034671650 164:69:185961127600855538610276917903829632107178673600 164:70:252375816029732516685375817155197357859742485600 164:71:334131362067533191104582067782937347025574558400 164:72:431586342670563705176751837552960739908033804600 164:73:543917034598518642140563959655786137966289178400 164:74:668870947952232384253936761198331602093679935600 164:75:802645137542678861104724113437997922512415922720 164:76:939939700543400245241058501262918619784276541080 164:77:1074216800621028851704066858586192708324887475520 164:78:1198164893000378334592997649961522636208528338080 164:79:1304331402506740971835415163249252490049790342720 164:80:1385852115163412282575128610952330770677902239140 164:81:1437179971280575700448281522469083762184491210960 164:82:1454706556296192477283016662986999417820887445240 164:83:1437179971280575700448281522469083762184491210960 164:84:1385852115163412282575128610952330770677902239140 164:85:1304331402506740971835415163249252490049790342720 164:86:1198164893000378334592997649961522636208528338080 164:87:1074216800621028851704066858586192708324887475520 164:88:939939700543400245241058501262918619784276541080 164:89:802645137542678861104724113437997922512415922720 164:90:668870947952232384253936761198331602093679935600 164:91:543917034598518642140563959655786137966289178400 164:92:431586342670563705176751837552960739908033804600 164:93:334131362067533191104582067782937347025574558400 164:94:252375816029732516685375817155197357859742485600 164:95:185961127600855538610276917903829632107178673600 164:96:133659560463114918376136534743377548077034671650 164:97:93699485685482623191518395490202817208642862600 164:98:64059852458442201569711556100444783193663997900 164:99:42706568305628134379807704066963188795775998600 164:100:27759269398658287346875007643526072717254399090 164:101:17590032094199310794059410784016521325784965760 164:102:10864431587593691961036694896010204348278949440 164:103:6539754936221445646449272655850802617410629760 164:104:3835817799129886388782746461604797689058157840 164:105:2191895885217077936447283692345598679461804480 164:106:1220017521017052813682922055173493604606098720 164:107:661317908588682833585135319626753542683679680 164:108:349028896199582606614376974247453258638608720 164:109:179317598047491981379863399613370481502404480 164:110:89658799023745990689931699806685240751202240 164:111:43617794119660211686993799905954981987071360 164:112:20640563288767778744738137455496553976024840 164:113:9498312309875438006428169448547086785427360 164:114:4249244980733748581823128437507907246112240 164:115:1847497817710325470357881929351264020048800 164:116:780408560929361621099450125329413249848200 164:117:320167614740250921476697487314631076860800 164:118:127524388921964350079701541557522547563200 164:119:49295141936221513476187150518033925948800 164:120:18485678226083067553570181444262722230800 164:121:6722064809484751837661884161550080811200 164:122:2369252350883969909995582122513553072800 164:123:809012997862818993657028041833896171200 164:124:267496233164319183386597981574110830800 164:125:85598794612582138683711354103715465856 164:126:26494864999132566735434466746388120384 164:127:7927597401315256188555194774509831296 164:128:2291571123817691242004235989506748109 164:129:639508220600285928001182136606534356 164:130:172175290161615442154164421394066942 164:131:44686716530495610940775498682429588 164:132:11171679132623902735193874670607397 164:133:2687922798826803665610556311725088 164:134:621832886295753086820352579578192 164:135:138185085843500685960078351017376 164:136:29465937422511175682663766025764 164:137:6022235385622722037332740501616 164:138:1178263445013141268173797054664 164:139:220394601225479661672796571376 164:140:39356178790264225298713673460 164:141:6698924049406676646589561440 164:142:1085036993917982837123661360 164:143:166928768295074282634409440 164:144:24343778709698332884184710 164:145:3357762580648045915059960 164:146:436969102961047071137940 164:147:53506420770740457690360 164:148:6146007791233701221190 164:149:659973991004961204960 164:150:65997399100496120496 164:151:6118964155012885344 164:152:523332460626102036 164:153:41045683186360944 164:154:2931834513311496 164:155:189150613762032 164:156:10912535409348 164:157:556052759712 164:158:24635248848 164:159:929632032 164:160:29051001 164:161:721764 164:162:13366 164:163:164 164:164:1 # binomial(165, k) for 0 <= k <= 165 165:0:1 165:1:165 165:2:13530 165:3:735130 165:4:29772765 165:5:958683033 165:6:25564880880 165:7:580688008560 165:8:11468588169060 165:9:200063149171380 165:10:3120985127073528 165:11:43977517699672440 165:12:564378143812462980 165:13:6642296615638987380 165:14:72116363255509005840 165:15:725971390105457325456 165:16:6805981782238662426150 165:17:59652428561974158911550 165:18:490475523731787528828300 165:19:3794731683609092986197900 165:20:27701541290346378799244670 165:21:191272547004772615518594150 165:22:1251965762213057119758070800 165:23:7783961043324659483713222800 165:24:46055102839670901945303234900 165:25:259750780015743886971510244836 165:26:1398658046238620929846593626040 165:27:7200498830635863305506537556280 165:28:35488172808133897719996506527380 165:29:167651023266011861642742117043140 165:30:760017972139253772780430930595568 165:31:3309755685122556752430908891303280 165:32:13859601931450706400804430982332485 165:33:55858395663119513675969373353036985 165:34:216862006692111053094939920076496530 165:35:811683510761901370155346558000601298 165:36:2931079344417977170005418126113282465 165:37:10219168525132947430559430764016579405 165:38:34422462400447822923989661520897951680 165:39:112093659611714705419145820850103586240 165:40:353095027776901322070309335677826296656 165:41:1076509231027138177043626023408007002000 165:42:3178265348746788903652610164347449244000 165:43:9091317160368721747657466284063633884000 165:44:25207743035567819391232065605812803042000 165:45:67780820162304581029757331962296648179600 165:46:176819530858185863555888692075556473512000 165:47:447692003662215271556399028872153624424000 165:48:1100576175669612542576147612644044326709000 165:49:2627906378639687091457332054680677269897000 165:50:6096742798444074052181010366859171266161040 165:51:13747557290609186588251297886054994031539600 165:52:30138875598643216751166306904043640761452200 165:53:64258357408427990431731937361451535963096200 165:54:133276593143406202376925499712640222738273600 165:55:268976397071237972069795099420055722253606720 165:56:528346494247074587994240373860823740141013200 165:57:1010346804788265440199512293874206801322288400 165:58:1881335429605735647268057374800247147289778400 165:59:3411913406234130750130205747519092284067903200 165:60:6027713684346964325230030153950396368519962320 165:61:10375572735351332035232019117455600306468787600 165:62:17404186523815137607485967551861006965689579200 165:63:28454463681793002755096105680026725674063915200 165:64:45349301492857598140934418427542594043039364850 165:65:70465837704286421726682711710489261513030397690 165:66:106766420764070335949519260167407971989439996500 165:67:157759338143924824761229951590647600402306860500 165:68:227359046148597541567654930233580365285677534250 165:69:319620688063970456986413452647207180184213345250 165:70:438336943630588055295652735059026989966921159200 165:71:586507178097265707789957884938134704885317044000 165:72:765717704738096896281333905335898086933608363000 165:73:975503377269082347317315797208746877874322983000 165:74:1212787982550751026394500720854117740059969114000 165:75:1471516085494911245358660874636329524606095858320 165:76:1742584838086079106345782614700916542296692463800 165:77:2014156501164429096945125359849111328109164016600 165:78:2272381693621407186297064508547715344533415813600 165:79:2502496295507119306428412813210775126258318680800 165:80:2690183517670153254410543774201583260727692581860 165:81:2823032086443987983023410133421414532862393450100 165:82:2891886527576768177731298185456083180005378656200 165:83:2891886527576768177731298185456083180005378656200 165:84:2823032086443987983023410133421414532862393450100 165:85:2690183517670153254410543774201583260727692581860 165:86:2502496295507119306428412813210775126258318680800 165:87:2272381693621407186297064508547715344533415813600 165:88:2014156501164429096945125359849111328109164016600 165:89:1742584838086079106345782614700916542296692463800 165:90:1471516085494911245358660874636329524606095858320 165:91:1212787982550751026394500720854117740059969114000 165:92:975503377269082347317315797208746877874322983000 165:93:765717704738096896281333905335898086933608363000 165:94:586507178097265707789957884938134704885317044000 165:95:438336943630588055295652735059026989966921159200 165:96:319620688063970456986413452647207180184213345250 165:97:227359046148597541567654930233580365285677534250 165:98:157759338143924824761229951590647600402306860500 165:99:106766420764070335949519260167407971989439996500 165:100:70465837704286421726682711710489261513030397690 165:101:45349301492857598140934418427542594043039364850 165:102:28454463681793002755096105680026725674063915200 165:103:17404186523815137607485967551861006965689579200 165:104:10375572735351332035232019117455600306468787600 165:105:6027713684346964325230030153950396368519962320 165:106:3411913406234130750130205747519092284067903200 165:107:1881335429605735647268057374800247147289778400 165:108:1010346804788265440199512293874206801322288400 165:109:528346494247074587994240373860823740141013200 165:110:268976397071237972069795099420055722253606720 165:111:133276593143406202376925499712640222738273600 165:112:64258357408427990431731937361451535963096200 165:113:30138875598643216751166306904043640761452200 165:114:13747557290609186588251297886054994031539600 165:115:6096742798444074052181010366859171266161040 165:116:2627906378639687091457332054680677269897000 165:117:1100576175669612542576147612644044326709000 165:118:447692003662215271556399028872153624424000 165:119:176819530858185863555888692075556473512000 165:120:67780820162304581029757331962296648179600 165:121:25207743035567819391232065605812803042000 165:122:9091317160368721747657466284063633884000 165:123:3178265348746788903652610164347449244000 165:124:1076509231027138177043626023408007002000 165:125:353095027776901322070309335677826296656 165:126:112093659611714705419145820850103586240 165:127:34422462400447822923989661520897951680 165:128:10219168525132947430559430764016579405 165:129:2931079344417977170005418126113282465 165:130:811683510761901370155346558000601298 165:131:216862006692111053094939920076496530 165:132:55858395663119513675969373353036985 165:133:13859601931450706400804430982332485 165:134:3309755685122556752430908891303280 165:135:760017972139253772780430930595568 165:136:167651023266011861642742117043140 165:137:35488172808133897719996506527380 165:138:7200498830635863305506537556280 165:139:1398658046238620929846593626040 165:140:259750780015743886971510244836 165:141:46055102839670901945303234900 165:142:7783961043324659483713222800 165:143:1251965762213057119758070800 165:144:191272547004772615518594150 165:145:27701541290346378799244670 165:146:3794731683609092986197900 165:147:490475523731787528828300 165:148:59652428561974158911550 165:149:6805981782238662426150 165:150:725971390105457325456 165:151:72116363255509005840 165:152:6642296615638987380 165:153:564378143812462980 165:154:43977517699672440 165:155:3120985127073528 165:156:200063149171380 165:157:11468588169060 165:158:580688008560 165:159:25564880880 165:160:958683033 165:161:29772765 165:162:735130 165:163:13530 165:164:165 165:165:1 # binomial(166, k) for 0 <= k <= 166 166:0:1 166:1:166 166:2:13695 166:3:748660 166:4:30507895 166:5:988455798 166:6:26523563913 166:7:606252889440 166:8:12049276177620 166:9:211531737340440 166:10:3321048276244908 166:11:47098502826745968 166:12:608355661512135420 166:13:7206674759451450360 166:14:78758659871147993220 166:15:798087753360966331296 166:16:7531953172344119751606 166:17:66458410344212821337700 166:18:550127952293761687739850 166:19:4285207207340880515026200 166:20:31496272973955471785442570 166:21:218974088295118994317838820 166:22:1443238309217829735276664950 166:23:9035926805537716603471293600 166:24:53839063882995561429016457700 166:25:305805882855414788916813479736 166:26:1658408826254364816818103870876 166:27:8599156876874484235353131182320 166:28:42688671638769761025503044083660 166:29:203139196074145759362738623570520 166:30:927668995405265634423173047638708 166:31:4069773657261810525211339821898848 166:32:17169357616573263153235339873635765 166:33:69717997594570220076773804335369470 166:34:272720402355230566770909293429533515 166:35:1028545517454012423250286478077097828 166:36:3742762855179878540160764684113883763 166:37:13150247869550924600564848890129861870 166:38:44641630925580770354549092284914531085 166:39:146516122012162528343135482371001537920 166:40:465188687388616027489455156527929882896 166:41:1429604258804039499113935359085833298656 166:42:4254774579773927080696236187755456246000 166:43:12269582509115510651310076448411083128000 166:44:34299060195936541138889531889876436926000 166:45:92988563197872400420989397568109451221600 166:46:244600351020490444585646024037853121691600 166:47:624511534520401135112287720947710097936000 166:48:1548268179331827814132546641516197951133000 166:49:3728482554309299634033479667324721596606000 166:50:8724649177083761143638342421539848536058040 166:51:19844300089053260640432308252914165297700640 166:52:43886432889252403339417604790098634792991800 166:53:94397233007071207182898244265495176724548400 166:54:197534950551834192808657437074091758701369800 166:55:402252990214644174446720599132695944991880320 166:56:797322891318312560064035473280879462394619920 166:57:1538693299035340028193752667735030541463301600 166:58:2891682234394001087467569668674453948612066800 166:59:5293248835839866397398263122319339431357681600 166:60:9439627090581095075360235901469488652587865520 166:61:16403286419698296360462049271405996674988749920 166:62:27779759259166469642717986669316607272158366800 166:63:45858650205608140362582073231887732639753494400 166:64:73803765174650600896030524107569319717103280050 166:65:115815139197144019867617130138031855556069762540 166:66:177232258468356757676201971877897233502470394190 166:67:264525758907995160710749211758055572391746857000 166:68:385118384292522366328884881824227965687984394750 166:69:546979734212567998554068382880787545469890879500 166:70:757957631694558512282066187706234170151134504450 166:71:1024844121727853763085610619997161694852238203200 166:72:1352224882835362604071291790274032791818925407000 166:73:1741221082007179243598649702544644964807931346000 166:74:2188291359819833373711816518062864617934292097000 166:75:2684304068045662271753161595490447264666064972320 166:76:3214100923580990351704443489337246066902788322120 166:77:3756741339250508203290907974550027870405856480400 166:78:4286538194785836283242189868396826672642579830200 166:79:4774877989128526492725477321758490470791734494400 166:80:5192679813177272560838956587412358386986011262660 166:81:5513215604114141237433953907622997793590086031960 166:82:5714918614020756160754708318877497712867772106300 166:83:5783773055153536355462596370912166360010757312400 166:84:5714918614020756160754708318877497712867772106300 166:85:5513215604114141237433953907622997793590086031960 166:86:5192679813177272560838956587412358386986011262660 166:87:4774877989128526492725477321758490470791734494400 166:88:4286538194785836283242189868396826672642579830200 166:89:3756741339250508203290907974550027870405856480400 166:90:3214100923580990351704443489337246066902788322120 166:91:2684304068045662271753161595490447264666064972320 166:92:2188291359819833373711816518062864617934292097000 166:93:1741221082007179243598649702544644964807931346000 166:94:1352224882835362604071291790274032791818925407000 166:95:1024844121727853763085610619997161694852238203200 166:96:757957631694558512282066187706234170151134504450 166:97:546979734212567998554068382880787545469890879500 166:98:385118384292522366328884881824227965687984394750 166:99:264525758907995160710749211758055572391746857000 166:100:177232258468356757676201971877897233502470394190 166:101:115815139197144019867617130138031855556069762540 166:102:73803765174650600896030524107569319717103280050 166:103:45858650205608140362582073231887732639753494400 166:104:27779759259166469642717986669316607272158366800 166:105:16403286419698296360462049271405996674988749920 166:106:9439627090581095075360235901469488652587865520 166:107:5293248835839866397398263122319339431357681600 166:108:2891682234394001087467569668674453948612066800 166:109:1538693299035340028193752667735030541463301600 166:110:797322891318312560064035473280879462394619920 166:111:402252990214644174446720599132695944991880320 166:112:197534950551834192808657437074091758701369800 166:113:94397233007071207182898244265495176724548400 166:114:43886432889252403339417604790098634792991800 166:115:19844300089053260640432308252914165297700640 166:116:8724649177083761143638342421539848536058040 166:117:3728482554309299634033479667324721596606000 166:118:1548268179331827814132546641516197951133000 166:119:624511534520401135112287720947710097936000 166:120:244600351020490444585646024037853121691600 166:121:92988563197872400420989397568109451221600 166:122:34299060195936541138889531889876436926000 166:123:12269582509115510651310076448411083128000 166:124:4254774579773927080696236187755456246000 166:125:1429604258804039499113935359085833298656 166:126:465188687388616027489455156527929882896 166:127:146516122012162528343135482371001537920 166:128:44641630925580770354549092284914531085 166:129:13150247869550924600564848890129861870 166:130:3742762855179878540160764684113883763 166:131:1028545517454012423250286478077097828 166:132:272720402355230566770909293429533515 166:133:69717997594570220076773804335369470 166:134:17169357616573263153235339873635765 166:135:4069773657261810525211339821898848 166:136:927668995405265634423173047638708 166:137:203139196074145759362738623570520 166:138:42688671638769761025503044083660 166:139:8599156876874484235353131182320 166:140:1658408826254364816818103870876 166:141:305805882855414788916813479736 166:142:53839063882995561429016457700 166:143:9035926805537716603471293600 166:144:1443238309217829735276664950 166:145:218974088295118994317838820 166:146:31496272973955471785442570 166:147:4285207207340880515026200 166:148:550127952293761687739850 166:149:66458410344212821337700 166:150:7531953172344119751606 166:151:798087753360966331296 166:152:78758659871147993220 166:153:7206674759451450360 166:154:608355661512135420 166:155:47098502826745968 166:156:3321048276244908 166:157:211531737340440 166:158:12049276177620 166:159:606252889440 166:160:26523563913 166:161:988455798 166:162:30507895 166:163:748660 166:164:13695 166:165:166 166:166:1 # binomial(167, k) for 0 <= k <= 167 167:0:1 167:1:167 167:2:13861 167:3:762355 167:4:31256555 167:5:1018963693 167:6:27512019711 167:7:632776453353 167:8:12655529067060 167:9:223581013518060 167:10:3532580013585348 167:11:50419551102990876 167:12:655454164338881388 167:13:7815030420963585780 167:14:85965334630599443580 167:15:876846413232114324516 167:16:8330040925705086082902 167:17:73990363516556941089306 167:18:616586362637974509077550 167:19:4835335159634642202766050 167:20:35781480181296352300468770 167:21:250470361269074466103281390 167:22:1662212397512948729594503770 167:23:10479165114755546338747958550 167:24:62874990688533278032487751300 167:25:359644946738410350345829937436 167:26:1964214709109779605734917350612 167:27:10257565703128849052171235053196 167:28:51287828515644245260856175265980 167:29:245827867712915520388241667654180 167:30:1130808191479411393785911671209228 167:31:4997442652667076159634512869537556 167:32:21239131273835073678446679695534613 167:33:86887355211143483230009144209005235 167:34:342438399949800786847683097764902985 167:35:1301265919809242990021195771506631343 167:36:4771308372633890963411051162190981591 167:37:16893010724730803140725613574243745633 167:38:57791878795131694955113941175044392955 167:39:191157752937743298697684574655916069005 167:40:611704809400778555832590638898931420816 167:41:1894792946192655526603390515613763181552 167:42:5684378838577966579810171546841289544656 167:43:16524357088889437732006312636166539374000 167:44:46568642705052051790199608338287520054000 167:45:127287623393808941559878929457985888147600 167:46:337588914218362845006635421605962572913200 167:47:869111885540891579697933744985563219627600 167:48:2172779713852228949244834362463908049069000 167:49:5276750733641127448166026308840919547739000 167:50:12453131731393060777671822088864570132664040 167:51:28568949266137021784070650674454013833758680 167:52:63730732978305663979849913043012800090692440 167:53:138283665896323610522315849055593811517540200 167:54:291932183558905399991555681339586935425918200 167:55:599787940766478367255378036206787703693250120 167:56:1199575881532956734510756072413575407386500240 167:57:2336016190353652588257788141015910003857921520 167:58:4430375533429341115661322336409484490075368400 167:59:8184931070233867484865832790993793379969748400 167:60:14732875926420961472758499023788828083945547120 167:61:25842913510279391435822285172875485327576615440 167:62:44183045678864766003180035940722603947147116720 167:63:73638409464774610005300059901204339911911861200 167:64:119662415380258741258612597339457052356856774450 167:65:189618904371794620763647654245601175273173042590 167:66:293047397665500777543819102015929089058540156730 167:67:441758017376351918386951183635952805894217251190 167:68:649644143200517527039634093582283538079731251750 167:69:932098118505090364882953264705015511157875274250 167:70:1304937365907126510836134570587021715621025383950 167:71:1782801753422412275367676807703395865003372707650 167:72:2377069004563216367156902410271194486671163610200 167:73:3093445964842541847669941492818677756626856753000 167:74:3929512441827012617310466220607509582742223443000 167:75:4872595427865495645464978113553311882600357069320 167:76:5898404991626652623457605084827693331568853294440 167:77:6970842262831498554995351463887273937308644802520 167:78:8043279534036344486533097842946854543048436310600 167:79:9061416183914362775967667190155317143434314324600 167:80:9967557802305799053564433909170848857777745757060 167:81:10705895417291413798272910495035356180576097294620 167:82:11228134218134897398188662226500495506457858138260 167:83:11498691669174292516217304689789664072878529418700 167:84:11498691669174292516217304689789664072878529418700 167:85:11228134218134897398188662226500495506457858138260 167:86:10705895417291413798272910495035356180576097294620 167:87:9967557802305799053564433909170848857777745757060 167:88:9061416183914362775967667190155317143434314324600 167:89:8043279534036344486533097842946854543048436310600 167:90:6970842262831498554995351463887273937308644802520 167:91:5898404991626652623457605084827693331568853294440 167:92:4872595427865495645464978113553311882600357069320 167:93:3929512441827012617310466220607509582742223443000 167:94:3093445964842541847669941492818677756626856753000 167:95:2377069004563216367156902410271194486671163610200 167:96:1782801753422412275367676807703395865003372707650 167:97:1304937365907126510836134570587021715621025383950 167:98:932098118505090364882953264705015511157875274250 167:99:649644143200517527039634093582283538079731251750 167:100:441758017376351918386951183635952805894217251190 167:101:293047397665500777543819102015929089058540156730 167:102:189618904371794620763647654245601175273173042590 167:103:119662415380258741258612597339457052356856774450 167:104:73638409464774610005300059901204339911911861200 167:105:44183045678864766003180035940722603947147116720 167:106:25842913510279391435822285172875485327576615440 167:107:14732875926420961472758499023788828083945547120 167:108:8184931070233867484865832790993793379969748400 167:109:4430375533429341115661322336409484490075368400 167:110:2336016190353652588257788141015910003857921520 167:111:1199575881532956734510756072413575407386500240 167:112:599787940766478367255378036206787703693250120 167:113:291932183558905399991555681339586935425918200 167:114:138283665896323610522315849055593811517540200 167:115:63730732978305663979849913043012800090692440 167:116:28568949266137021784070650674454013833758680 167:117:12453131731393060777671822088864570132664040 167:118:5276750733641127448166026308840919547739000 167:119:2172779713852228949244834362463908049069000 167:120:869111885540891579697933744985563219627600 167:121:337588914218362845006635421605962572913200 167:122:127287623393808941559878929457985888147600 167:123:46568642705052051790199608338287520054000 167:124:16524357088889437732006312636166539374000 167:125:5684378838577966579810171546841289544656 167:126:1894792946192655526603390515613763181552 167:127:611704809400778555832590638898931420816 167:128:191157752937743298697684574655916069005 167:129:57791878795131694955113941175044392955 167:130:16893010724730803140725613574243745633 167:131:4771308372633890963411051162190981591 167:132:1301265919809242990021195771506631343 167:133:342438399949800786847683097764902985 167:134:86887355211143483230009144209005235 167:135:21239131273835073678446679695534613 167:136:4997442652667076159634512869537556 167:137:1130808191479411393785911671209228 167:138:245827867712915520388241667654180 167:139:51287828515644245260856175265980 167:140:10257565703128849052171235053196 167:141:1964214709109779605734917350612 167:142:359644946738410350345829937436 167:143:62874990688533278032487751300 167:144:10479165114755546338747958550 167:145:1662212397512948729594503770 167:146:250470361269074466103281390 167:147:35781480181296352300468770 167:148:4835335159634642202766050 167:149:616586362637974509077550 167:150:73990363516556941089306 167:151:8330040925705086082902 167:152:876846413232114324516 167:153:85965334630599443580 167:154:7815030420963585780 167:155:655454164338881388 167:156:50419551102990876 167:157:3532580013585348 167:158:223581013518060 167:159:12655529067060 167:160:632776453353 167:161:27512019711 167:162:1018963693 167:163:31256555 167:164:762355 167:165:13861 167:166:167 167:167:1 # binomial(168, k) for 0 <= k <= 168 168:0:1 168:1:168 168:2:14028 168:3:776216 168:4:32018910 168:5:1050220248 168:6:28530983404 168:7:660288473064 168:8:13288305520413 168:9:236236542585120 168:10:3756161027103408 168:11:53952131116576224 168:12:705873715441872264 168:13:8470484585302467168 168:14:93780365051563029360 168:15:962811747862713768096 168:16:9206887338937200407418 168:17:82320404442262027172208 168:18:690576726154531450166856 168:19:5451921522272616711843600 168:20:40616815340930994503234820 168:21:286251841450370818403750160 168:22:1912682758782023195697785160 168:23:12141377512268495068342462320 168:24:73354155803288824371235709850 168:25:422519937426943628378317688736 168:26:2323859655848189956080747288048 168:27:12221780412238628657906152403808 168:28:61545394218773094313027410319176 168:29:297115696228559765649097842920160 168:30:1376636059192326914174153338863408 168:31:6128250844146487553420424540746784 168:32:26236573926502149838081192565072169 168:33:108126486484978556908455823904539848 168:34:429325755160944270077692241973908220 168:35:1643704319759043776868878869271534328 168:36:6072574292443133953432246933697612934 168:37:21664319097364694104136664736434727224 168:38:74684889519862498095839554749288138588 168:39:248949631732874993652798515830960461960 168:40:802862562338521854530275213554847489821 168:41:2506497755593434082435981154512694602368 168:42:7579171784770622106413562062455052726208 168:43:22208735927467404311816484183007828918656 168:44:63092999793941489522205920974454059428000 168:45:173856266098860993350078537796273408201600 168:46:464876537612171786566514351063948461060800 168:47:1206700799759254424704569166591525792540800 168:48:3041891599393120528942768107449471268696600 168:49:7449530447493356397410860671304827596808000 168:50:17729882465034188225837848397705489680403040 168:51:41022080997530082561742472763318583966422720 168:52:92299682244442685763920563717466813924451120 168:53:202014398874629274502165762098606611608232640 168:54:430215849455229010513871530395180746943458400 168:55:891720124325383767246933717546374639119168320 168:56:1799363822299435101766134108620363111079750360 168:57:3535592071886609322768544213429485411244421760 168:58:6766391723782993703919110477425394493933289920 168:59:12615306603663208600527155127403277870045116800 168:60:22917806996654828957624331814782621463915295520 168:61:40575789436700352908580784196664313411522162560 168:62:70025959189144157439002321113598089274723732160 168:63:117821455143639376008480095841926943859058977920 168:64:193300824845033351263912657240661392268768635650 168:65:309281319752053362022260251585058227630029817040 168:66:482666302037295398307466756261530264331713199320 168:67:734805415041852695930770285651881894952757407920 168:68:1091402160576869445426585277218236343973948502940 168:69:1581742261705607891922587358287299049237606526000 168:70:2237035484412216875719087835292037226778900658200 168:71:3087739119329538786203811378290417580624398091600 168:72:4159870757985628642524579217974590351674536317850 168:73:5470514969405758214826843903089872243298020363200 168:74:7022958406669554464980407713426187339369080196000 168:75:8802107869692508262775444334160821465342580512320 168:76:10771000419492148268922583198381005214169210363760 168:77:12869247254458151178452956548714967268877498096960 168:78:15014121796867843041528449306834128480357081113120 168:79:17104695717950707262500765033102171686482750635200 168:80:19028973986220161829532101099326166001212060081660 168:81:20673453219597212851837344404206205038353843051680 168:82:21934029635426311196461572721535851687033955432880 168:83:22726825887309189914405966916290159579336387556960 168:84:22997383338348585032434609379579328145757058837400 168:85:22726825887309189914405966916290159579336387556960 168:86:21934029635426311196461572721535851687033955432880 168:87:20673453219597212851837344404206205038353843051680 168:88:19028973986220161829532101099326166001212060081660 168:89:17104695717950707262500765033102171686482750635200 168:90:15014121796867843041528449306834128480357081113120 168:91:12869247254458151178452956548714967268877498096960 168:92:10771000419492148268922583198381005214169210363760 168:93:8802107869692508262775444334160821465342580512320 168:94:7022958406669554464980407713426187339369080196000 168:95:5470514969405758214826843903089872243298020363200 168:96:4159870757985628642524579217974590351674536317850 168:97:3087739119329538786203811378290417580624398091600 168:98:2237035484412216875719087835292037226778900658200 168:99:1581742261705607891922587358287299049237606526000 168:100:1091402160576869445426585277218236343973948502940 168:101:734805415041852695930770285651881894952757407920 168:102:482666302037295398307466756261530264331713199320 168:103:309281319752053362022260251585058227630029817040 168:104:193300824845033351263912657240661392268768635650 168:105:117821455143639376008480095841926943859058977920 168:106:70025959189144157439002321113598089274723732160 168:107:40575789436700352908580784196664313411522162560 168:108:22917806996654828957624331814782621463915295520 168:109:12615306603663208600527155127403277870045116800 168:110:6766391723782993703919110477425394493933289920 168:111:3535592071886609322768544213429485411244421760 168:112:1799363822299435101766134108620363111079750360 168:113:891720124325383767246933717546374639119168320 168:114:430215849455229010513871530395180746943458400 168:115:202014398874629274502165762098606611608232640 168:116:92299682244442685763920563717466813924451120 168:117:41022080997530082561742472763318583966422720 168:118:17729882465034188225837848397705489680403040 168:119:7449530447493356397410860671304827596808000 168:120:3041891599393120528942768107449471268696600 168:121:1206700799759254424704569166591525792540800 168:122:464876537612171786566514351063948461060800 168:123:173856266098860993350078537796273408201600 168:124:63092999793941489522205920974454059428000 168:125:22208735927467404311816484183007828918656 168:126:7579171784770622106413562062455052726208 168:127:2506497755593434082435981154512694602368 168:128:802862562338521854530275213554847489821 168:129:248949631732874993652798515830960461960 168:130:74684889519862498095839554749288138588 168:131:21664319097364694104136664736434727224 168:132:6072574292443133953432246933697612934 168:133:1643704319759043776868878869271534328 168:134:429325755160944270077692241973908220 168:135:108126486484978556908455823904539848 168:136:26236573926502149838081192565072169 168:137:6128250844146487553420424540746784 168:138:1376636059192326914174153338863408 168:139:297115696228559765649097842920160 168:140:61545394218773094313027410319176 168:141:12221780412238628657906152403808 168:142:2323859655848189956080747288048 168:143:422519937426943628378317688736 168:144:73354155803288824371235709850 168:145:12141377512268495068342462320 168:146:1912682758782023195697785160 168:147:286251841450370818403750160 168:148:40616815340930994503234820 168:149:5451921522272616711843600 168:150:690576726154531450166856 168:151:82320404442262027172208 168:152:9206887338937200407418 168:153:962811747862713768096 168:154:93780365051563029360 168:155:8470484585302467168 168:156:705873715441872264 168:157:53952131116576224 168:158:3756161027103408 168:159:236236542585120 168:160:13288305520413 168:161:660288473064 168:162:28530983404 168:163:1050220248 168:164:32018910 168:165:776216 168:166:14028 168:167:168 168:168:1 # binomial(169, k) for 0 <= k <= 169 169:0:1 169:1:169 169:2:14196 169:3:790244 169:4:32795126 169:5:1082239158 169:6:29581203652 169:7:688819456468 169:8:13948593993477 169:9:249524848105533 169:10:3992397569688528 169:11:57708292143679632 169:12:759825846558448488 169:13:9176358300744339432 169:14:102250849636865496528 169:15:1056592112914276797456 169:16:10169699086799914175514 169:17:91527291781199227579626 169:18:772897130596793477339064 169:19:6142498248427148162010456 169:20:46068736863203611215078420 169:21:326868656791301812906984980 169:22:2198934600232394014101535320 169:23:14054060271050518264040247480 169:24:85495533315557319439578172170 169:25:495874093230232452749553398586 169:26:2746379593275133584459064976784 169:27:14545640068086818613986899691856 169:28:73767174631011722970933562722984 169:29:358661090447332859962125253239336 169:30:1673751755420886679823251181783568 169:31:7504886903338814467594577879610192 169:32:32364824770648637391501617105818953 169:33:134363060411480706746537016469612017 169:34:537452241645922826986148065878448068 169:35:2073030074919988046946571111245442548 169:36:7716278612202177730301125802969147262 169:37:27736893389807828057568911670132340158 169:38:96349208617227192199976219485722865812 169:39:323634521252737491748638070580248600548 169:40:1051812194071396848183073729385807951781 169:41:3309360317931955936966256368067542092189 169:42:10085669540364056188849543216967747328576 169:43:29787907712238026418230046245462881644864 169:44:85301735721408893834022405157461888346656 169:45:236949265892802482872284458770727467629600 169:46:638732803711032779916592888860221869262400 169:47:1671577337371426211271083517655474253601600 169:48:4248592399152374953647337274040997061237400 169:49:10491422046886476926353628778754298865504600 169:50:25179412912527544623248709069010317277211040 169:51:58751963462564270787580321161024073646825760 169:52:133321763241972768325663036480785397890873840 169:53:294314081119071960266086325816073425532683760 169:54:632230248329858285016037292493787358551691040 169:55:1321935973780612777760805247941555386062626720 169:56:2691083946624818869013067826166737750198918680 169:57:5334955894186044424534678322049848522324172120 169:58:10301983795669603026687654690854879905177711680 169:59:19381698327446202304446265604828672363978406720 169:60:35533113600318037558151486942185899333960412320 169:61:63493596433355181866205116011446934875437458080 169:62:110601748625844510347583105310262402686245894720 169:63:187847414332783533447482416955525033133782710080 169:64:311122279988672727272392753082588336127827613570 169:65:502582144597086713286172908825719619898798452690 169:66:791947621789348760329727007846588491961743016360 169:67:1217471717079148094238237041913412159284470607240 169:68:1826207575618722141357355562870118238926705910860 169:69:2673144422282477337349172635505535393211555028940 169:70:3818777746117824767641675193579336276016507184200 169:71:5324774603741755661922899213582454807403298749800 169:72:7247609877315167428728390596265007932298934409450 169:73:9630385727391386857351423121064462594972556681050 169:74:12493473376075312679807251616516059582667100559200 169:75:15825066276362062727755852047587008804711660708320 169:76:19573108289184656531698027532541826679511790876080 169:77:23640247673950299447375539747095972483046708460720 169:78:27883369051325994219981405855549095749234579210080 169:79:32118817514818550304029214339936300166839831748320 169:80:36133669704170869092032866132428337687694810716860 169:81:39702427205817374681369445503532371039565903133340 169:82:42607482855023524048298917125742056725387798484560 169:83:44660855522735501110867539637826011266370342989840 169:84:45724209225657774946840576295869487725093446394360 169:85:45724209225657774946840576295869487725093446394360 169:86:44660855522735501110867539637826011266370342989840 169:87:42607482855023524048298917125742056725387798484560 169:88:39702427205817374681369445503532371039565903133340 169:89:36133669704170869092032866132428337687694810716860 169:90:32118817514818550304029214339936300166839831748320 169:91:27883369051325994219981405855549095749234579210080 169:92:23640247673950299447375539747095972483046708460720 169:93:19573108289184656531698027532541826679511790876080 169:94:15825066276362062727755852047587008804711660708320 169:95:12493473376075312679807251616516059582667100559200 169:96:9630385727391386857351423121064462594972556681050 169:97:7247609877315167428728390596265007932298934409450 169:98:5324774603741755661922899213582454807403298749800 169:99:3818777746117824767641675193579336276016507184200 169:100:2673144422282477337349172635505535393211555028940 169:101:1826207575618722141357355562870118238926705910860 169:102:1217471717079148094238237041913412159284470607240 169:103:791947621789348760329727007846588491961743016360 169:104:502582144597086713286172908825719619898798452690 169:105:311122279988672727272392753082588336127827613570 169:106:187847414332783533447482416955525033133782710080 169:107:110601748625844510347583105310262402686245894720 169:108:63493596433355181866205116011446934875437458080 169:109:35533113600318037558151486942185899333960412320 169:110:19381698327446202304446265604828672363978406720 169:111:10301983795669603026687654690854879905177711680 169:112:5334955894186044424534678322049848522324172120 169:113:2691083946624818869013067826166737750198918680 169:114:1321935973780612777760805247941555386062626720 169:115:632230248329858285016037292493787358551691040 169:116:294314081119071960266086325816073425532683760 169:117:133321763241972768325663036480785397890873840 169:118:58751963462564270787580321161024073646825760 169:119:25179412912527544623248709069010317277211040 169:120:10491422046886476926353628778754298865504600 169:121:4248592399152374953647337274040997061237400 169:122:1671577337371426211271083517655474253601600 169:123:638732803711032779916592888860221869262400 169:124:236949265892802482872284458770727467629600 169:125:85301735721408893834022405157461888346656 169:126:29787907712238026418230046245462881644864 169:127:10085669540364056188849543216967747328576 169:128:3309360317931955936966256368067542092189 169:129:1051812194071396848183073729385807951781 169:130:323634521252737491748638070580248600548 169:131:96349208617227192199976219485722865812 169:132:27736893389807828057568911670132340158 169:133:7716278612202177730301125802969147262 169:134:2073030074919988046946571111245442548 169:135:537452241645922826986148065878448068 169:136:134363060411480706746537016469612017 169:137:32364824770648637391501617105818953 169:138:7504886903338814467594577879610192 169:139:1673751755420886679823251181783568 169:140:358661090447332859962125253239336 169:141:73767174631011722970933562722984 169:142:14545640068086818613986899691856 169:143:2746379593275133584459064976784 169:144:495874093230232452749553398586 169:145:85495533315557319439578172170 169:146:14054060271050518264040247480 169:147:2198934600232394014101535320 169:148:326868656791301812906984980 169:149:46068736863203611215078420 169:150:6142498248427148162010456 169:151:772897130596793477339064 169:152:91527291781199227579626 169:153:10169699086799914175514 169:154:1056592112914276797456 169:155:102250849636865496528 169:156:9176358300744339432 169:157:759825846558448488 169:158:57708292143679632 169:159:3992397569688528 169:160:249524848105533 169:161:13948593993477 169:162:688819456468 169:163:29581203652 169:164:1082239158 169:165:32795126 169:166:790244 169:167:14196 169:168:169 169:169:1 # binomial(170, k) for 0 <= k <= 170 170:0:1 170:1:170 170:2:14365 170:3:804440 170:4:33585370 170:5:1115034284 170:6:30663442810 170:7:718400660120 170:8:14637413449945 170:9:263473442099010 170:10:4241922417794061 170:11:61700689713368160 170:12:817534138702128120 170:13:9936184147302787920 170:14:111427207937609835960 170:15:1158842962551142293984 170:16:11226291199714190972970 170:17:101696990867999141755140 170:18:864424422377992704918690 170:19:6915395379023941639349520 170:20:52211235111630759377088876 170:21:372937393654505424122063400 170:22:2525803257023695827008520300 170:23:16252994871282912278141782800 170:24:99549593586607837703618419650 170:25:581369626545789772189131570756 170:26:3242253686505366037208618375370 170:27:17292019661361952198445964668640 170:28:88312814699098541584920462414840 170:29:432428265078344582933058815962320 170:30:2032412845868219539785376435022904 170:31:9178638658759701147417829061393760 170:32:39869711673987451859096194985429145 170:33:166727885182129344138038633575430970 170:34:671815302057403533732685082348060085 170:35:2610482316565910873932719177123890616 170:36:9789308687122165777247696914214589810 170:37:35453172002010005787870037473101487420 170:38:124086102007035020257545131155855205970 170:39:419983729869964683948614290065971466360 170:40:1375446715324134339931711799966056552329 170:41:4361172512003352785149330097453350043970 170:42:13395029858296012125815799585035289420765 170:43:39873577252602082607079589462430628973440 170:44:115089643433646920252252451402924769991520 170:45:322251001614211376706306863928189355976256 170:46:875682069603835262788877347630949336892000 170:47:2310310141082458991187676406515696122864000 170:48:5920169736523801164918420791696471314839000 170:49:14740014446038851880000966052795295926742000 170:50:35670834959414021549602337847764616142715640 170:51:83931376375091815410829030230034390924036800 170:52:192073726704537039113243357641809471537699600 170:53:427635844361044728591749362296858823423557600 170:54:926544329448930245282123618309860784084374800 170:55:1954166222110471062776842540435342744614317760 170:56:4013019920405431646773873074108293136261545400 170:57:8026039840810863293547746148216586272523090800 170:58:15636939689855647451222333012904728427501883800 170:59:29683682123115805331133920295683552269156118400 170:60:54914811927764239862597752547014571697938819040 170:61:99026710033673219424356602953632834209397870400 170:62:174095345059199692213788221321709337561683352800 170:63:298449162958628043795065522265787435820028604800 170:64:498969694321456260719875170038113369261610323650 170:65:813704424585759440558565661908307956026626066260 170:66:1294529766386435473615899916672308111860541469050 170:67:2009419338868496854567964049760000651246213623600 170:68:3043679292697870235595592604783530398211176518100 170:69:4499351997901199478706528198375653632138260939800 170:70:6491922168400302104990847829084871669228062213140 170:71:9143552349859580429564574407161791083419805934000 170:72:12572384481056923090651289809847462739702233159250 170:73:16877995604706554286079813717329470527271491090500 170:74:22123859103466699537158674737580522177639657240250 170:75:28318539652437375407563103664103068387378761267520 170:76:35398174565546719259453879580128835484223451584400 170:77:43213355963134955979073567279637799162558499336800 170:78:51523616725276293667356945602645068232281287670800 170:79:60002186566144544524010620195485395916074410958400 170:80:68252487218989419396062080472364637854534642465180 170:81:75836096909988243773402311635960708727260713850200 170:82:82309910060840898729668362629274427764953701617900 170:83:87268338377759025159166456763568067991758141474400 170:84:90385064748393276057708115933695498991463789384200 170:85:91448418451315549893681152591738975450186892788720 170:86:90385064748393276057708115933695498991463789384200 170:87:87268338377759025159166456763568067991758141474400 170:88:82309910060840898729668362629274427764953701617900 170:89:75836096909988243773402311635960708727260713850200 170:90:68252487218989419396062080472364637854534642465180 170:91:60002186566144544524010620195485395916074410958400 170:92:51523616725276293667356945602645068232281287670800 170:93:43213355963134955979073567279637799162558499336800 170:94:35398174565546719259453879580128835484223451584400 170:95:28318539652437375407563103664103068387378761267520 170:96:22123859103466699537158674737580522177639657240250 170:97:16877995604706554286079813717329470527271491090500 170:98:12572384481056923090651289809847462739702233159250 170:99:9143552349859580429564574407161791083419805934000 170:100:6491922168400302104990847829084871669228062213140 170:101:4499351997901199478706528198375653632138260939800 170:102:3043679292697870235595592604783530398211176518100 170:103:2009419338868496854567964049760000651246213623600 170:104:1294529766386435473615899916672308111860541469050 170:105:813704424585759440558565661908307956026626066260 170:106:498969694321456260719875170038113369261610323650 170:107:298449162958628043795065522265787435820028604800 170:108:174095345059199692213788221321709337561683352800 170:109:99026710033673219424356602953632834209397870400 170:110:54914811927764239862597752547014571697938819040 170:111:29683682123115805331133920295683552269156118400 170:112:15636939689855647451222333012904728427501883800 170:113:8026039840810863293547746148216586272523090800 170:114:4013019920405431646773873074108293136261545400 170:115:1954166222110471062776842540435342744614317760 170:116:926544329448930245282123618309860784084374800 170:117:427635844361044728591749362296858823423557600 170:118:192073726704537039113243357641809471537699600 170:119:83931376375091815410829030230034390924036800 170:120:35670834959414021549602337847764616142715640 170:121:14740014446038851880000966052795295926742000 170:122:5920169736523801164918420791696471314839000 170:123:2310310141082458991187676406515696122864000 170:124:875682069603835262788877347630949336892000 170:125:322251001614211376706306863928189355976256 170:126:115089643433646920252252451402924769991520 170:127:39873577252602082607079589462430628973440 170:128:13395029858296012125815799585035289420765 170:129:4361172512003352785149330097453350043970 170:130:1375446715324134339931711799966056552329 170:131:419983729869964683948614290065971466360 170:132:124086102007035020257545131155855205970 170:133:35453172002010005787870037473101487420 170:134:9789308687122165777247696914214589810 170:135:2610482316565910873932719177123890616 170:136:671815302057403533732685082348060085 170:137:166727885182129344138038633575430970 170:138:39869711673987451859096194985429145 170:139:9178638658759701147417829061393760 170:140:2032412845868219539785376435022904 170:141:432428265078344582933058815962320 170:142:88312814699098541584920462414840 170:143:17292019661361952198445964668640 170:144:3242253686505366037208618375370 170:145:581369626545789772189131570756 170:146:99549593586607837703618419650 170:147:16252994871282912278141782800 170:148:2525803257023695827008520300 170:149:372937393654505424122063400 170:150:52211235111630759377088876 170:151:6915395379023941639349520 170:152:864424422377992704918690 170:153:101696990867999141755140 170:154:11226291199714190972970 170:155:1158842962551142293984 170:156:111427207937609835960 170:157:9936184147302787920 170:158:817534138702128120 170:159:61700689713368160 170:160:4241922417794061 170:161:263473442099010 170:162:14637413449945 170:163:718400660120 170:164:30663442810 170:165:1115034284 170:166:33585370 170:167:804440 170:168:14365 170:169:170 170:170:1 # binomial(171, k) for 0 <= k <= 171 171:0:1 171:1:171 171:2:14535 171:3:818805 171:4:34389810 171:5:1148619654 171:6:31778477094 171:7:749064102930 171:8:15355814110065 171:9:278110855548955 171:10:4505395859893071 171:11:65942612131162221 171:12:879234828415496280 171:13:10753718286004916040 171:14:121363392084912623880 171:15:1270270170488752129944 171:16:12385134162265333266954 171:17:112923282067713332728110 171:18:966121413245991846673830 171:19:7779819801401934344268210 171:20:59126630490654701016438396 171:21:425148628766136183499152276 171:22:2898740650678201251130583700 171:23:18778798128306608105150303100 171:24:115802588457890749981760202450 171:25:680919220132397609892749990406 171:26:3823623313051155809397749946126 171:27:20534273347867318235654583044010 171:28:105604834360460493783366427083480 171:29:520741079777443124517979278377160 171:30:2464841110946564122718435250985224 171:31:11211051504627920687203205496416664 171:32:49048350332747153006514024046822905 171:33:206597596856116795997134828560860115 171:34:838543187239532877870723715923491055 171:35:3282297618623314407665404259471950701 171:36:12399791003688076651180416091338480426 171:37:45242480689132171565117734387316077230 171:38:159539274009045026045415168628956693390 171:39:544069831876999704206159421221826672330 171:40:1795430445194099023880326090032028018689 171:41:5736619227327487125081041897419406596299 171:42:17756202370299364910965129682488639464735 171:43:53268607110898094732895389047465918394205 171:44:154963220686249002859332040865355398964960 171:45:437340645047858296958559315331114125967776 171:46:1197933071218046639495184211559138692868256 171:47:3185992210686294253976553754146645459756000 171:48:8230479877606260156106097198212167437703000 171:49:20660184182562653044919386844491767241581000 171:50:50410849405452873429603303900559912069457640 171:51:119602211334505836960431368077799007066752440 171:52:276005103079628854524072387871843862461736400 171:53:619709571065581767704992719938668294961257200 171:54:1354180173809974973873872980606719607507932400 171:55:2880710551559401308058966158745203528698692560 171:56:5967186142515902709550715614543635880875863160 171:57:12039059761216294940321619222324879408784636200 171:58:23662979530666510744770079161121314700024974600 171:59:45320621812971452782356253308588280696658002200 171:60:84598494050880045193731672842698123967094937440 171:61:153941521961437459286954355500647405907336689440 171:62:273122055092872911638144824275342171771081223200 171:63:472544508017827736008853743587496773381711957600 171:64:797418857280084304514940692303900805081638928450 171:65:1312674118907215701278440831946421325288236389910 171:66:2108234190972194914174465578580616067887167535310 171:67:3303949105254932328183863966432308763106755092650 171:68:5053098631566367090163556654543531049457390141700 171:69:7543031290599069714302120803159184030349437457900 171:70:10991274166301501583697376027460525301366323152940 171:71:15635474518259882534555422236246662752647868147140 171:72:21715936830916503520215864217009253823122039093250 171:73:29450380085763477376731103527176933266973724249750 171:74:39001854708173253823238488454909992704911148330750 171:75:50442398755904074944721778401683590565018418507770 171:76:63716714217984094667016983244231903871602212851920 171:77:78611530528681675238527446859766634646781950921200 171:78:94736972688411249646430512882282867394839787007600 171:79:111525803291420838191367565798130464148355698629200 171:80:128254673785133963920072700667850033770609053423580 171:81:144088584128977663169464392108325346581795356315380 171:82:158146006970829142503070674265235136492214415468100 171:83:169578248438599923888834819392842495756711843092300 171:84:177653403126152301216874572697263566983221930858600 171:85:181833483199708825951389268525434474441650682172920 171:86:181833483199708825951389268525434474441650682172920 171:87:177653403126152301216874572697263566983221930858600 171:88:169578248438599923888834819392842495756711843092300 171:89:158146006970829142503070674265235136492214415468100 171:90:144088584128977663169464392108325346581795356315380 171:91:128254673785133963920072700667850033770609053423580 171:92:111525803291420838191367565798130464148355698629200 171:93:94736972688411249646430512882282867394839787007600 171:94:78611530528681675238527446859766634646781950921200 171:95:63716714217984094667016983244231903871602212851920 171:96:50442398755904074944721778401683590565018418507770 171:97:39001854708173253823238488454909992704911148330750 171:98:29450380085763477376731103527176933266973724249750 171:99:21715936830916503520215864217009253823122039093250 171:100:15635474518259882534555422236246662752647868147140 171:101:10991274166301501583697376027460525301366323152940 171:102:7543031290599069714302120803159184030349437457900 171:103:5053098631566367090163556654543531049457390141700 171:104:3303949105254932328183863966432308763106755092650 171:105:2108234190972194914174465578580616067887167535310 171:106:1312674118907215701278440831946421325288236389910 171:107:797418857280084304514940692303900805081638928450 171:108:472544508017827736008853743587496773381711957600 171:109:273122055092872911638144824275342171771081223200 171:110:153941521961437459286954355500647405907336689440 171:111:84598494050880045193731672842698123967094937440 171:112:45320621812971452782356253308588280696658002200 171:113:23662979530666510744770079161121314700024974600 171:114:12039059761216294940321619222324879408784636200 171:115:5967186142515902709550715614543635880875863160 171:116:2880710551559401308058966158745203528698692560 171:117:1354180173809974973873872980606719607507932400 171:118:619709571065581767704992719938668294961257200 171:119:276005103079628854524072387871843862461736400 171:120:119602211334505836960431368077799007066752440 171:121:50410849405452873429603303900559912069457640 171:122:20660184182562653044919386844491767241581000 171:123:8230479877606260156106097198212167437703000 171:124:3185992210686294253976553754146645459756000 171:125:1197933071218046639495184211559138692868256 171:126:437340645047858296958559315331114125967776 171:127:154963220686249002859332040865355398964960 171:128:53268607110898094732895389047465918394205 171:129:17756202370299364910965129682488639464735 171:130:5736619227327487125081041897419406596299 171:131:1795430445194099023880326090032028018689 171:132:544069831876999704206159421221826672330 171:133:159539274009045026045415168628956693390 171:134:45242480689132171565117734387316077230 171:135:12399791003688076651180416091338480426 171:136:3282297618623314407665404259471950701 171:137:838543187239532877870723715923491055 171:138:206597596856116795997134828560860115 171:139:49048350332747153006514024046822905 171:140:11211051504627920687203205496416664 171:141:2464841110946564122718435250985224 171:142:520741079777443124517979278377160 171:143:105604834360460493783366427083480 171:144:20534273347867318235654583044010 171:145:3823623313051155809397749946126 171:146:680919220132397609892749990406 171:147:115802588457890749981760202450 171:148:18778798128306608105150303100 171:149:2898740650678201251130583700 171:150:425148628766136183499152276 171:151:59126630490654701016438396 171:152:7779819801401934344268210 171:153:966121413245991846673830 171:154:112923282067713332728110 171:155:12385134162265333266954 171:156:1270270170488752129944 171:157:121363392084912623880 171:158:10753718286004916040 171:159:879234828415496280 171:160:65942612131162221 171:161:4505395859893071 171:162:278110855548955 171:163:15355814110065 171:164:749064102930 171:165:31778477094 171:166:1148619654 171:167:34389810 171:168:818805 171:169:14535 171:170:171 171:171:1 # binomial(172, k) for 0 <= k <= 172 172:0:1 172:1:172 172:2:14706 172:3:833340 172:4:35208615 172:5:1183009464 172:6:32927096748 172:7:780842580024 172:8:16104878212995 172:9:293466669659020 172:10:4783506715442026 172:11:70448007991055292 172:12:945177440546658501 172:13:11632953114420412320 172:14:132117110370917539920 172:15:1391633562573664753824 172:16:13655404332754085396898 172:17:125308416229978665995064 172:18:1079044695313705179401940 172:19:8745941214647926190942040 172:20:66906450292056635360706606 172:21:484275259256790884515590672 172:22:3323889279444337434629735976 172:23:21677538778984809356280886800 172:24:134581386586197358086910505550 172:25:796721808590288359874510192856 172:26:4504542533183553419290499936532 172:27:24357896660918474045052332990136 172:28:126139107708327812019021010127490 172:29:626345914137903618301345705460640 172:30:2985582190724007247236414529362384 172:31:13675892615574484809921640747401888 172:32:60259401837375073693717229543239569 172:33:255645947188863949003648852607683020 172:34:1045140784095649673867858544484351170 172:35:4120840805862847285536127975395441756 172:36:15682088622311391058845820350810431127 172:37:57642271692820248216298150478654557656 172:38:204781754698177197610532903016272770620 172:39:703609105886044730251574589850783365720 172:40:2339500277071098728086485511253854691019 172:41:7532049672521586148961367987451434614988 172:42:23492821597626852036046171579908046061034 172:43:71024809481197459643860518729954557858940 172:44:208231827797147097592227429912821317359165 172:45:592303865734107299817891356196469524932736 172:46:1635273716265904936453743526890252818836032 172:47:4383925281904340893471737965705784152624256 172:48:11416472088292554410082650952358812897459000 172:49:28890664060168913201025484042703934679284000 172:50:71071033588015526474522690745051679311038640 172:51:170013060739958710390034671978358919136210080 172:52:395607314414134691484503755949642869528488840 172:53:895714674145210622229065107810512157422993600 172:54:1973889744875556741578865700545387902469189600 172:55:4234890725369376281932839139351923136206624960 172:56:8847896694075304017609681773288839409574555720 172:57:18006245903732197649872334836868515289660499360 172:58:35702039291882805685091698383446194108809610800 172:59:68983601343637963527126332469709595396682976800 172:60:129919115863851497976087926151286404663752939640 172:61:238540016012317504480686028343345529874431626880 172:62:427063577054310370925099179775989577678417912640 172:63:745666563110700647646998567862838945152793180800 172:64:1269963365297912040523794435891397578463350886050 172:65:2110092976187300005793381524250322130369875318360 172:66:3420908309879410615452906410527037393175403925220 172:67:5412183296227127242358329545012924830993922627960 172:68:8357047736821299418347420620975839812564145234350 172:69:12596129922165436804465677457702715079806827599600 172:70:18534305456900571297999496830619709331715760610840 172:71:26626748684561384118252798263707188054014191300080 172:72:37351411349176386054771286453255916575769907240390 172:73:51166316916679980896946967744186187090095763343000 172:74:68452234793936731199969591982086925971884872580500 172:75:89444253464077328767960266856593583269929566838520 172:76:114159112973888169611738761645915494436620631359690 172:77:142328244746665769905544430103998538518384163773120 172:78:173348503217092924884957959742049502041621737928800 172:79:206262775979832087837798078680413331543195485636800 172:80:239780477076554802111440266465980497918964752052780 172:81:272343257914111627089537092776175380352404409738960 172:82:302234591099806805672535066373560483074009771783480 172:83:327724255409429066391905493658077632248926258560400 172:84:347231651564752225105709392090106062739933773950900 172:85:359486886325861127168263841222698041424872613031520 172:86:363666966399417651902778537050868948883301364345840 172:87:359486886325861127168263841222698041424872613031520 172:88:347231651564752225105709392090106062739933773950900 172:89:327724255409429066391905493658077632248926258560400 172:90:302234591099806805672535066373560483074009771783480 172:91:272343257914111627089537092776175380352404409738960 172:92:239780477076554802111440266465980497918964752052780 172:93:206262775979832087837798078680413331543195485636800 172:94:173348503217092924884957959742049502041621737928800 172:95:142328244746665769905544430103998538518384163773120 172:96:114159112973888169611738761645915494436620631359690 172:97:89444253464077328767960266856593583269929566838520 172:98:68452234793936731199969591982086925971884872580500 172:99:51166316916679980896946967744186187090095763343000 172:100:37351411349176386054771286453255916575769907240390 172:101:26626748684561384118252798263707188054014191300080 172:102:18534305456900571297999496830619709331715760610840 172:103:12596129922165436804465677457702715079806827599600 172:104:8357047736821299418347420620975839812564145234350 172:105:5412183296227127242358329545012924830993922627960 172:106:3420908309879410615452906410527037393175403925220 172:107:2110092976187300005793381524250322130369875318360 172:108:1269963365297912040523794435891397578463350886050 172:109:745666563110700647646998567862838945152793180800 172:110:427063577054310370925099179775989577678417912640 172:111:238540016012317504480686028343345529874431626880 172:112:129919115863851497976087926151286404663752939640 172:113:68983601343637963527126332469709595396682976800 172:114:35702039291882805685091698383446194108809610800 172:115:18006245903732197649872334836868515289660499360 172:116:8847896694075304017609681773288839409574555720 172:117:4234890725369376281932839139351923136206624960 172:118:1973889744875556741578865700545387902469189600 172:119:895714674145210622229065107810512157422993600 172:120:395607314414134691484503755949642869528488840 172:121:170013060739958710390034671978358919136210080 172:122:71071033588015526474522690745051679311038640 172:123:28890664060168913201025484042703934679284000 172:124:11416472088292554410082650952358812897459000 172:125:4383925281904340893471737965705784152624256 172:126:1635273716265904936453743526890252818836032 172:127:592303865734107299817891356196469524932736 172:128:208231827797147097592227429912821317359165 172:129:71024809481197459643860518729954557858940 172:130:23492821597626852036046171579908046061034 172:131:7532049672521586148961367987451434614988 172:132:2339500277071098728086485511253854691019 172:133:703609105886044730251574589850783365720 172:134:204781754698177197610532903016272770620 172:135:57642271692820248216298150478654557656 172:136:15682088622311391058845820350810431127 172:137:4120840805862847285536127975395441756 172:138:1045140784095649673867858544484351170 172:139:255645947188863949003648852607683020 172:140:60259401837375073693717229543239569 172:141:13675892615574484809921640747401888 172:142:2985582190724007247236414529362384 172:143:626345914137903618301345705460640 172:144:126139107708327812019021010127490 172:145:24357896660918474045052332990136 172:146:4504542533183553419290499936532 172:147:796721808590288359874510192856 172:148:134581386586197358086910505550 172:149:21677538778984809356280886800 172:150:3323889279444337434629735976 172:151:484275259256790884515590672 172:152:66906450292056635360706606 172:153:8745941214647926190942040 172:154:1079044695313705179401940 172:155:125308416229978665995064 172:156:13655404332754085396898 172:157:1391633562573664753824 172:158:132117110370917539920 172:159:11632953114420412320 172:160:945177440546658501 172:161:70448007991055292 172:162:4783506715442026 172:163:293466669659020 172:164:16104878212995 172:165:780842580024 172:166:32927096748 172:167:1183009464 172:168:35208615 172:169:833340 172:170:14706 172:171:172 172:172:1 # binomial(173, k) for 0 <= k <= 173 173:0:1 173:1:173 173:2:14878 173:3:848046 173:4:36041955 173:5:1218218079 173:6:34110106212 173:7:813769676772 173:8:16885720793019 173:9:309571547872015 173:10:5076973385101046 173:11:75231514706497318 173:12:1015625448537713793 173:13:12578130554967070821 173:14:143750063485337952240 173:15:1523750672944582293744 173:16:15047037895327750150722 173:17:138963820562732751391962 173:18:1204353111543683845397004 173:19:9824985909961631370343980 173:20:75652391506704561551648646 173:21:551181709548847519876297278 173:22:3808164538701128319145326648 173:23:25001428058429146790910622776 173:24:156258925365182167443191392350 173:25:931303195176485717961420698406 173:26:5301264341773841779165010129388 173:27:28862439194102027464342832926668 173:28:150497004369246286064073343117626 173:29:752485021846231430320366715588130 173:30:3611928104861910865537760234823024 173:31:16661474806298492057158055276764272 173:32:73935294452949558503638870290641457 173:33:315905349026239022697366082150922589 173:34:1300786731284513622871507397092034190 173:35:5165981589958496959403986519879792926 173:36:19802929428174238344381948326205872883 173:37:73324360315131639275143970829464988783 173:38:262424026390997445826831053494927328276 173:39:908390860584221927862107492867056136340 173:40:3043109382957143458338060101104638056739 173:41:9871549949592684877047853498705289306007 173:42:31024871270148438185007539567359480676022 173:43:94517631078824311679906690309862603919974 173:44:279256637278344557236087948642775875218105 173:45:800535693531254397410118786109290842291901 173:46:2227577582000012236271634883086722343768768 173:47:6019198998170245829925481492596036971460288 173:48:15800397370196895303554388918064597050083256 173:49:40307136148461467611108134995062747576743000 173:50:99961697648184439675548174787755613990322640 173:51:241084094327974236864557362723410598447248720 173:52:565620375154093401874538427928001788664698920 173:53:1291321988559345313713568863760155026951482440 173:54:2869604419020767363807930808355900059892183200 173:55:6208780470244933023511704839897311038675814560 173:56:13082787419444680299542520912640762545781180680 173:57:26854142597807501667482016610157354699235055080 173:58:53708285195615003334964033220314709398470110160 173:59:104685640635520769212218030853155789505492587600 173:60:198902717207489461503214258620996000060435916440 173:61:368459131876169002456773954494631934538184566520 173:62:665603593066627875405785208119335107552849539520 173:63:1172730140165011018572097747638828522831211093440 173:64:2015629928408612688170793003754236523616144066850 173:65:3380056341485212046317175960141719708833226204410 173:66:5531001286066710621246287934777359523545279243580 173:67:8833091606106537857811235955539962224169326553180 173:68:13769231033048426660705750165988764643558067862310 173:69:20953177658986736222813098078678554892370972833950 173:70:31130435379066008102465174288322424411522588210440 173:71:45161054141461955416252295094326897385729951910920 173:72:63978160033737770173024084716963104629784098540470 173:73:88517728265856366951718254197442103665865670583390 173:74:119618551710616712096916559726273113061980635923500 173:75:157896488258014059967929858838680509241814439419020 173:76:203603366437965498379699028502509077706550198198210 173:77:256487357720553939517283191749914032955004795132810 173:78:315676747963758694790502389846048040560005901701920 173:79:379611279196925012722756038422462833584817223565600 173:80:446043253056386889949238345146393829462160237689580 173:81:512123734990666429200977359242155878271369161791740 173:82:574577849013918432762072159149735863426414181522440 173:83:629958846509235872064440560031638115322936030343880 173:84:674955906974181291497614885748183694988860032511300 173:85:706718537890613352273973233312804104164806386982420 173:86:723153852725278779071042378273566990308173977377360 173:87:723153852725278779071042378273566990308173977377360 173:88:706718537890613352273973233312804104164806386982420 173:89:674955906974181291497614885748183694988860032511300 173:90:629958846509235872064440560031638115322936030343880 173:91:574577849013918432762072159149735863426414181522440 173:92:512123734990666429200977359242155878271369161791740 173:93:446043253056386889949238345146393829462160237689580 173:94:379611279196925012722756038422462833584817223565600 173:95:315676747963758694790502389846048040560005901701920 173:96:256487357720553939517283191749914032955004795132810 173:97:203603366437965498379699028502509077706550198198210 173:98:157896488258014059967929858838680509241814439419020 173:99:119618551710616712096916559726273113061980635923500 173:100:88517728265856366951718254197442103665865670583390 173:101:63978160033737770173024084716963104629784098540470 173:102:45161054141461955416252295094326897385729951910920 173:103:31130435379066008102465174288322424411522588210440 173:104:20953177658986736222813098078678554892370972833950 173:105:13769231033048426660705750165988764643558067862310 173:106:8833091606106537857811235955539962224169326553180 173:107:5531001286066710621246287934777359523545279243580 173:108:3380056341485212046317175960141719708833226204410 173:109:2015629928408612688170793003754236523616144066850 173:110:1172730140165011018572097747638828522831211093440 173:111:665603593066627875405785208119335107552849539520 173:112:368459131876169002456773954494631934538184566520 173:113:198902717207489461503214258620996000060435916440 173:114:104685640635520769212218030853155789505492587600 173:115:53708285195615003334964033220314709398470110160 173:116:26854142597807501667482016610157354699235055080 173:117:13082787419444680299542520912640762545781180680 173:118:6208780470244933023511704839897311038675814560 173:119:2869604419020767363807930808355900059892183200 173:120:1291321988559345313713568863760155026951482440 173:121:565620375154093401874538427928001788664698920 173:122:241084094327974236864557362723410598447248720 173:123:99961697648184439675548174787755613990322640 173:124:40307136148461467611108134995062747576743000 173:125:15800397370196895303554388918064597050083256 173:126:6019198998170245829925481492596036971460288 173:127:2227577582000012236271634883086722343768768 173:128:800535693531254397410118786109290842291901 173:129:279256637278344557236087948642775875218105 173:130:94517631078824311679906690309862603919974 173:131:31024871270148438185007539567359480676022 173:132:9871549949592684877047853498705289306007 173:133:3043109382957143458338060101104638056739 173:134:908390860584221927862107492867056136340 173:135:262424026390997445826831053494927328276 173:136:73324360315131639275143970829464988783 173:137:19802929428174238344381948326205872883 173:138:5165981589958496959403986519879792926 173:139:1300786731284513622871507397092034190 173:140:315905349026239022697366082150922589 173:141:73935294452949558503638870290641457 173:142:16661474806298492057158055276764272 173:143:3611928104861910865537760234823024 173:144:752485021846231430320366715588130 173:145:150497004369246286064073343117626 173:146:28862439194102027464342832926668 173:147:5301264341773841779165010129388 173:148:931303195176485717961420698406 173:149:156258925365182167443191392350 173:150:25001428058429146790910622776 173:151:3808164538701128319145326648 173:152:551181709548847519876297278 173:153:75652391506704561551648646 173:154:9824985909961631370343980 173:155:1204353111543683845397004 173:156:138963820562732751391962 173:157:15047037895327750150722 173:158:1523750672944582293744 173:159:143750063485337952240 173:160:12578130554967070821 173:161:1015625448537713793 173:162:75231514706497318 173:163:5076973385101046 173:164:309571547872015 173:165:16885720793019 173:166:813769676772 173:167:34110106212 173:168:1218218079 173:169:36041955 173:170:848046 173:171:14878 173:172:173 173:173:1 # binomial(174, k) for 0 <= k <= 174 174:0:1 174:1:174 174:2:15051 174:3:862924 174:4:36890001 174:5:1254260034 174:6:35328324291 174:7:847879782984 174:8:17699490469791 174:9:326457268665034 174:10:5386544932973061 174:11:80308488091598364 174:12:1090856963244211111 174:13:13593756003504784614 174:14:156328194040305023061 174:15:1667500736429920245984 174:16:16570788568272332444466 174:17:154010858458060501542684 174:18:1343316932106416596788966 174:19:11029339021505315215740984 174:20:85477377416666192921992626 174:21:626834101055552081427945924 174:22:4359346248249975839021623926 174:23:28809592597130275110055949424 174:24:181260353423611314234102015126 174:25:1087562120541667885404612090756 174:26:6232567536950327497126430827794 174:27:34163703535875869243507843056056 174:28:179359443563348313528416176044294 174:29:902982026215477716384440058705756 174:30:4364413126708142295858126950411154 174:31:20273402911160402922695815511587296 174:32:90596769259248050560796925567405729 174:33:389840643479188581201004952441564046 174:34:1616692080310752645568873479242956779 174:35:6466768321243010582275493916971827116 174:36:24968911018132735303785934846085665809 174:37:93127289743305877619525919155670861666 174:38:335748386706129085101975024324392317059 174:39:1170814886975219373688938546361983464616 174:40:3951500243541365386200167593971694193079 174:41:12914659332549828335385913599809927362746 174:42:40896421219741123062055393066064769982029 174:43:125542502348972749864914229877222084595996 174:44:373774268357168868915994638952638479138079 174:45:1079792330809598954646206734752066717510006 174:46:3028113275531266633681753669196013186060669 174:47:8246776580170258066197116375682759315229056 174:48:21819596368367141133479870410660634021543544 174:49:56107533518658362914662523913127344626826256 174:50:140268833796645907286656309782818361567065640 174:51:341045791976158676540105537511166212437571360 174:52:806704469482067638739095790651412387111947640 174:53:1856942363713438715588107291688156815616181360 174:54:4160926407580112677521499672116055086843665640 174:55:9078384889265700387319635648253211098567997760 174:56:19291567889689613323054225752538073584456995240 174:57:39936930017252181967024537522798117245016235760 174:58:80562427793422505002446049830472064097705165240 174:59:158393925831135772547182064073470498903962697760 174:60:303588357843010230715432289474151789565928504040 174:61:567361849083658463959988213115627934598620482960 174:62:1034062724942796877862559162613967042091034106040 174:63:1838333733231638893977882955758163630384060632960 174:64:3188360068573623706742890751393065046447355160290 174:65:5395686269893824734487968963895956232449370271260 174:66:8911057627551922667563463894919079232378505447990 174:67:14364092892173248479057523890317321747714605796760 174:68:22602322639154964518516986121528726867727394415490 174:69:34722408692035162883518848244667319535929040696260 174:70:52083613038052744325278272367000979303893561044390 174:71:76291489520527963518717469382649321797252540121360 174:72:109139214175199725589276379811290002015514050451390 174:73:152495888299594137124742338914405208295649769123860 174:74:208136279976473079048634813923715216727846306506890 174:75:277515039968630772064846418564953622303795075342520 174:76:361499854695979558347628887341189586948364637617230 174:77:460090724158519437896982220252423110661554993331020 174:78:572164105684312634307785581595962073515010696834730 174:79:695288027160683707513258428268510874144823125267520 174:80:825654532253311902671994383568856663046977461255180 174:81:958166988047053319150215704388549707733529399481320 174:82:1086701584004584861963049518391891741697783343314180 174:83:1204536695523154304826512719181373978749350211866320 174:84:1304914753483417163562055445779821810311796062855180 174:85:1381674444864794643771588119060987799153666419493720 174:86:1429872390615892131345015611586371094472980364359780 174:87:1446307705450557558142084756547133980616347954754720 174:88:1429872390615892131345015611586371094472980364359780 174:89:1381674444864794643771588119060987799153666419493720 174:90:1304914753483417163562055445779821810311796062855180 174:91:1204536695523154304826512719181373978749350211866320 174:92:1086701584004584861963049518391891741697783343314180 174:93:958166988047053319150215704388549707733529399481320 174:94:825654532253311902671994383568856663046977461255180 174:95:695288027160683707513258428268510874144823125267520 174:96:572164105684312634307785581595962073515010696834730 174:97:460090724158519437896982220252423110661554993331020 174:98:361499854695979558347628887341189586948364637617230 174:99:277515039968630772064846418564953622303795075342520 174:100:208136279976473079048634813923715216727846306506890 174:101:152495888299594137124742338914405208295649769123860 174:102:109139214175199725589276379811290002015514050451390 174:103:76291489520527963518717469382649321797252540121360 174:104:52083613038052744325278272367000979303893561044390 174:105:34722408692035162883518848244667319535929040696260 174:106:22602322639154964518516986121528726867727394415490 174:107:14364092892173248479057523890317321747714605796760 174:108:8911057627551922667563463894919079232378505447990 174:109:5395686269893824734487968963895956232449370271260 174:110:3188360068573623706742890751393065046447355160290 174:111:1838333733231638893977882955758163630384060632960 174:112:1034062724942796877862559162613967042091034106040 174:113:567361849083658463959988213115627934598620482960 174:114:303588357843010230715432289474151789565928504040 174:115:158393925831135772547182064073470498903962697760 174:116:80562427793422505002446049830472064097705165240 174:117:39936930017252181967024537522798117245016235760 174:118:19291567889689613323054225752538073584456995240 174:119:9078384889265700387319635648253211098567997760 174:120:4160926407580112677521499672116055086843665640 174:121:1856942363713438715588107291688156815616181360 174:122:806704469482067638739095790651412387111947640 174:123:341045791976158676540105537511166212437571360 174:124:140268833796645907286656309782818361567065640 174:125:56107533518658362914662523913127344626826256 174:126:21819596368367141133479870410660634021543544 174:127:8246776580170258066197116375682759315229056 174:128:3028113275531266633681753669196013186060669 174:129:1079792330809598954646206734752066717510006 174:130:373774268357168868915994638952638479138079 174:131:125542502348972749864914229877222084595996 174:132:40896421219741123062055393066064769982029 174:133:12914659332549828335385913599809927362746 174:134:3951500243541365386200167593971694193079 174:135:1170814886975219373688938546361983464616 174:136:335748386706129085101975024324392317059 174:137:93127289743305877619525919155670861666 174:138:24968911018132735303785934846085665809 174:139:6466768321243010582275493916971827116 174:140:1616692080310752645568873479242956779 174:141:389840643479188581201004952441564046 174:142:90596769259248050560796925567405729 174:143:20273402911160402922695815511587296 174:144:4364413126708142295858126950411154 174:145:902982026215477716384440058705756 174:146:179359443563348313528416176044294 174:147:34163703535875869243507843056056 174:148:6232567536950327497126430827794 174:149:1087562120541667885404612090756 174:150:181260353423611314234102015126 174:151:28809592597130275110055949424 174:152:4359346248249975839021623926 174:153:626834101055552081427945924 174:154:85477377416666192921992626 174:155:11029339021505315215740984 174:156:1343316932106416596788966 174:157:154010858458060501542684 174:158:16570788568272332444466 174:159:1667500736429920245984 174:160:156328194040305023061 174:161:13593756003504784614 174:162:1090856963244211111 174:163:80308488091598364 174:164:5386544932973061 174:165:326457268665034 174:166:17699490469791 174:167:847879782984 174:168:35328324291 174:169:1254260034 174:170:36890001 174:171:862924 174:172:15051 174:173:174 174:174:1 # binomial(175, k) for 0 <= k <= 175 175:0:1 175:1:175 175:2:15225 175:3:877975 175:4:37752925 175:5:1291150035 175:6:36582584325 175:7:883208107275 175:8:18547370252775 175:9:344156759134825 175:10:5713002201638095 175:11:85695033024571425 175:12:1171165451335809475 175:13:14684612966748995725 175:14:169921950043809807675 175:15:1823828930470225269045 175:16:18238289304702252690450 175:17:170581647026332833987150 175:18:1497327790564477098331650 175:19:12372655953611731812529950 175:20:96506716438171508137733610 175:21:712311478472218274349938550 175:22:4986180349305527920449569850 175:23:33168938845380250949077573350 175:24:210069946020741589344157964550 175:25:1268822473965279199638714105882 175:26:7320129657491995382531042918550 175:27:40396271072826196740634273883850 175:28:213523147099224182771924019100350 175:29:1082341469778826029912856234750050 175:30:5267395152923620012242567009116910 175:31:24637816037868545218553942461998450 175:32:110870172170408453483492741078993025 175:33:480437412738436631761801878008969775 175:34:2006532723789941226769878431684520825 175:35:8083460401553763227844367396214783895 175:36:31435679339375745886061428763057492925 175:37:118096200761438612923311854001756527475 175:38:428875676449434962721500943480063178725 175:39:1506563273681348458790913570686375781675 175:40:5122315130516584759889106140333677657695 175:41:16866159576091193721586081193781621555825 175:42:53811080552290951397441306665874697344775 175:43:166438923568713872926969622943286854578025 175:44:499316770706141618780908868829860563734075 175:45:1453566599166767823562201373704705196648085 175:46:4107905606340865588327960403948079903570675 175:47:11274889855701524699878870044878772501289725 175:48:30066372948537399199676986786343393336772600 175:49:77927129887025504048142394323787978648369800 175:50:196376367315304270201318833695945706193891896 175:51:481314625772804583826761847293984574004637000 175:52:1147750261458226315279201328162578599549519000 175:53:2663646833195506354327203082339569202728129000 175:54:6017868771293551393109606963804211902459847000 175:55:13239311296845813064841135320369266185411663400 175:56:28369952778955313710373861400791284683024993000 175:57:59228497906941795290078763275336190829473231000 175:58:120499357810674686969470587353270181342721401000 175:59:238956353624558277549628113903942563001667863000 175:60:461982283674146003262614353547622288469891201800 175:61:870950206926668694675420502589779724164548987000 175:62:1601424574026455341822547375729594976689654589000 175:63:2872396458174435771840442118372130672475094739000 175:64:5026693801805262600720773707151228676831415793250 175:65:8584046338467448441230859715289021278896725431550 175:66:14306743897445747402051432858815035464827875719250 175:67:23275150519725171146620987785236400980093111244750 175:68:36966415531328212997574510011846048615442000212250 175:69:57324731331190127402035834366196046403656435111750 175:70:86806021730087907208797120611668298839822601740650 175:71:128375102558580707843995741749650301101146101165750 175:72:185430703695727689107993849193939323812766590572750 175:73:261635102474793862714018718725695210311163819575250 175:74:360632168276067216173377152838120425023496075630750 175:75:485651319945103851113481232488668839031641381849410 175:76:639014894664610330412475305906143209252159712959750 175:77:821590578854498996244611107593612697609919630948250 175:78:1032254829842832072204767801848385184176565690165750 175:79:1267452132844996341821044009864472947659833822102250 175:80:1520942559413995610185252811837367537191800586522700 175:81:1783821520300365221822210087957406370780506860736500 175:82:2044868572051638181113265222780441449431312742795500 175:83:2291238279527739166789562237573265720447133555180500 175:84:2509451449006571468388568164961195789061146274721500 175:85:2686589198348211807333643564840809609465462482348900 175:86:2811546835480686775116603730647358893626646783853500 175:87:2876180096066449689487100368133505075089328319114500 175:88:2876180096066449689487100368133505075089328319114500 175:89:2811546835480686775116603730647358893626646783853500 175:90:2686589198348211807333643564840809609465462482348900 175:91:2509451449006571468388568164961195789061146274721500 175:92:2291238279527739166789562237573265720447133555180500 175:93:2044868572051638181113265222780441449431312742795500 175:94:1783821520300365221822210087957406370780506860736500 175:95:1520942559413995610185252811837367537191800586522700 175:96:1267452132844996341821044009864472947659833822102250 175:97:1032254829842832072204767801848385184176565690165750 175:98:821590578854498996244611107593612697609919630948250 175:99:639014894664610330412475305906143209252159712959750 175:100:485651319945103851113481232488668839031641381849410 175:101:360632168276067216173377152838120425023496075630750 175:102:261635102474793862714018718725695210311163819575250 175:103:185430703695727689107993849193939323812766590572750 175:104:128375102558580707843995741749650301101146101165750 175:105:86806021730087907208797120611668298839822601740650 175:106:57324731331190127402035834366196046403656435111750 175:107:36966415531328212997574510011846048615442000212250 175:108:23275150519725171146620987785236400980093111244750 175:109:14306743897445747402051432858815035464827875719250 175:110:8584046338467448441230859715289021278896725431550 175:111:5026693801805262600720773707151228676831415793250 175:112:2872396458174435771840442118372130672475094739000 175:113:1601424574026455341822547375729594976689654589000 175:114:870950206926668694675420502589779724164548987000 175:115:461982283674146003262614353547622288469891201800 175:116:238956353624558277549628113903942563001667863000 175:117:120499357810674686969470587353270181342721401000 175:118:59228497906941795290078763275336190829473231000 175:119:28369952778955313710373861400791284683024993000 175:120:13239311296845813064841135320369266185411663400 175:121:6017868771293551393109606963804211902459847000 175:122:2663646833195506354327203082339569202728129000 175:123:1147750261458226315279201328162578599549519000 175:124:481314625772804583826761847293984574004637000 175:125:196376367315304270201318833695945706193891896 175:126:77927129887025504048142394323787978648369800 175:127:30066372948537399199676986786343393336772600 175:128:11274889855701524699878870044878772501289725 175:129:4107905606340865588327960403948079903570675 175:130:1453566599166767823562201373704705196648085 175:131:499316770706141618780908868829860563734075 175:132:166438923568713872926969622943286854578025 175:133:53811080552290951397441306665874697344775 175:134:16866159576091193721586081193781621555825 175:135:5122315130516584759889106140333677657695 175:136:1506563273681348458790913570686375781675 175:137:428875676449434962721500943480063178725 175:138:118096200761438612923311854001756527475 175:139:31435679339375745886061428763057492925 175:140:8083460401553763227844367396214783895 175:141:2006532723789941226769878431684520825 175:142:480437412738436631761801878008969775 175:143:110870172170408453483492741078993025 175:144:24637816037868545218553942461998450 175:145:5267395152923620012242567009116910 175:146:1082341469778826029912856234750050 175:147:213523147099224182771924019100350 175:148:40396271072826196740634273883850 175:149:7320129657491995382531042918550 175:150:1268822473965279199638714105882 175:151:210069946020741589344157964550 175:152:33168938845380250949077573350 175:153:4986180349305527920449569850 175:154:712311478472218274349938550 175:155:96506716438171508137733610 175:156:12372655953611731812529950 175:157:1497327790564477098331650 175:158:170581647026332833987150 175:159:18238289304702252690450 175:160:1823828930470225269045 175:161:169921950043809807675 175:162:14684612966748995725 175:163:1171165451335809475 175:164:85695033024571425 175:165:5713002201638095 175:166:344156759134825 175:167:18547370252775 175:168:883208107275 175:169:36582584325 175:170:1291150035 175:171:37752925 175:172:877975 175:173:15225 175:174:175 175:175:1 # binomial(176, k) for 0 <= k <= 176 176:0:1 176:1:176 176:2:15400 176:3:893200 176:4:38630900 176:5:1328902960 176:6:37873734360 176:7:919790691600 176:8:19430578360050 176:9:362704129387600 176:10:6057158960772920 176:11:91408035226209520 176:12:1256860484360380900 176:13:15855778418084805200 176:14:184606563010558803400 176:15:1993750880514035076720 176:16:20062118235172477959495 176:17:188819936331035086677600 176:18:1667909437590809932318800 176:19:13869983744176208910861600 176:20:108879372391783239950263560 176:21:808818194910389782487672160 176:22:5698491827777746194799508400 176:23:38155119194685778869527143200 176:24:243238884866121840293235537900 176:25:1478892419986020788982872070432 176:26:8588952131457274582169757024432 176:27:47716400730318192123165316802400 176:28:253919418172050379512558292984200 176:29:1295864616878050212684780253850400 176:30:6349736622702446042155423243866960 176:31:29905211190792165230796509471115360 176:32:135507988208276998702046683540991475 176:33:591307584908845085245294619087962800 176:34:2486970136528377858531680309693490600 176:35:10089993125343704454614245827899304720 176:36:39519139740929509113905796159272276820 176:37:149531880100814358809373282764814020400 176:38:546971877210873575644812797481819706200 176:39:1935438950130783421512414514166438960400 176:40:6628878404197933218680019711020053439370 176:41:21988474706607778481475187334115299213520 176:42:70677240128382145119027387859656318900600 176:43:220250004121004824324410929609161551922800 176:44:665755694274855491707878491773147418312100 176:45:1952883369872909442343110242534565760382160 176:46:5561472205507633411890161777652785100218760 176:47:15382795462042390288206830448826852404860400 176:48:41341262804238923899555856831222165838062325 176:49:107993502835562903247819381110131371985142400 176:50:274303497202329774249461228019733684842261696 176:51:677690993088108854028080680989930280198528896 176:52:1629064887231030899105963175456563173554156000 176:53:3811397094653732669606404410502147802277648000 176:54:8681515604489057747436810046143781105187976000 176:55:19257180068139364457950742284173478087871510400 176:56:41609264075801126775214996721160550868436656400 176:57:87598450685897109000452624676127475512498224000 176:58:179727855717616482259549350628606372172194632000 176:59:359455711435232964519098701257212744344389264000 176:60:700938637298704280812242467451564851471559064800 176:61:1332932490600814697938034856137402012634440188800 176:62:2472374780953124036497967878319374700854203576000 176:63:4473821032200891113662989494101725649164749328000 176:64:7899090259979698372561215825523359349306510532250 176:65:13610740140272711041951633422440249955728141224800 176:66:22890790235913195843282292574104056743724601150800 176:67:37581894417170918548672420644051436444920986964000 176:68:60241566051053384144195497797082449595535111457000 176:69:94291146862518340399610344378042095019098435324000 176:70:144130753061278034610832954977864345243479036852400 176:71:215181124288668615052792862361318599940968702906400 176:72:313805806254308396951989590943589624913912691738500 176:73:447065806170521551822012567919634534123930410148000 176:74:622267270750861078887395871563815635334659895206000 176:75:846283488221171067286858385326789264055137457480160 176:76:1124666214609714181525956538394812048283801094809160 176:77:1460605473519109326657086413499755906862079343908000 176:78:1853845408697331068449378909441997881786485321114000 176:79:2299706962687828414025811811712858131836399512268000 176:80:2788394692258991952006296821701840484851634408624950 176:81:3304764079714360832007462899794773907972307447259200 176:82:3828690092352003402935475310737847820211819603532000 176:83:4336106851579377347902827460353707169878446297976000 176:84:4800689728534310635178130402534461509508279829902000 176:85:5196040647354783275722211729802005398526608757070400 176:86:5498136033828898582450247295488168503092109266202400 176:87:5687726931547136464603704098780863968715975102968000 176:88:5752360192132899378974200736267010150178656638229000 176:89:5687726931547136464603704098780863968715975102968000 176:90:5498136033828898582450247295488168503092109266202400 176:91:5196040647354783275722211729802005398526608757070400 176:92:4800689728534310635178130402534461509508279829902000 176:93:4336106851579377347902827460353707169878446297976000 176:94:3828690092352003402935475310737847820211819603532000 176:95:3304764079714360832007462899794773907972307447259200 176:96:2788394692258991952006296821701840484851634408624950 176:97:2299706962687828414025811811712858131836399512268000 176:98:1853845408697331068449378909441997881786485321114000 176:99:1460605473519109326657086413499755906862079343908000 176:100:1124666214609714181525956538394812048283801094809160 176:101:846283488221171067286858385326789264055137457480160 176:102:622267270750861078887395871563815635334659895206000 176:103:447065806170521551822012567919634534123930410148000 176:104:313805806254308396951989590943589624913912691738500 176:105:215181124288668615052792862361318599940968702906400 176:106:144130753061278034610832954977864345243479036852400 176:107:94291146862518340399610344378042095019098435324000 176:108:60241566051053384144195497797082449595535111457000 176:109:37581894417170918548672420644051436444920986964000 176:110:22890790235913195843282292574104056743724601150800 176:111:13610740140272711041951633422440249955728141224800 176:112:7899090259979698372561215825523359349306510532250 176:113:4473821032200891113662989494101725649164749328000 176:114:2472374780953124036497967878319374700854203576000 176:115:1332932490600814697938034856137402012634440188800 176:116:700938637298704280812242467451564851471559064800 176:117:359455711435232964519098701257212744344389264000 176:118:179727855717616482259549350628606372172194632000 176:119:87598450685897109000452624676127475512498224000 176:120:41609264075801126775214996721160550868436656400 176:121:19257180068139364457950742284173478087871510400 176:122:8681515604489057747436810046143781105187976000 176:123:3811397094653732669606404410502147802277648000 176:124:1629064887231030899105963175456563173554156000 176:125:677690993088108854028080680989930280198528896 176:126:274303497202329774249461228019733684842261696 176:127:107993502835562903247819381110131371985142400 176:128:41341262804238923899555856831222165838062325 176:129:15382795462042390288206830448826852404860400 176:130:5561472205507633411890161777652785100218760 176:131:1952883369872909442343110242534565760382160 176:132:665755694274855491707878491773147418312100 176:133:220250004121004824324410929609161551922800 176:134:70677240128382145119027387859656318900600 176:135:21988474706607778481475187334115299213520 176:136:6628878404197933218680019711020053439370 176:137:1935438950130783421512414514166438960400 176:138:546971877210873575644812797481819706200 176:139:149531880100814358809373282764814020400 176:140:39519139740929509113905796159272276820 176:141:10089993125343704454614245827899304720 176:142:2486970136528377858531680309693490600 176:143:591307584908845085245294619087962800 176:144:135507988208276998702046683540991475 176:145:29905211190792165230796509471115360 176:146:6349736622702446042155423243866960 176:147:1295864616878050212684780253850400 176:148:253919418172050379512558292984200 176:149:47716400730318192123165316802400 176:150:8588952131457274582169757024432 176:151:1478892419986020788982872070432 176:152:243238884866121840293235537900 176:153:38155119194685778869527143200 176:154:5698491827777746194799508400 176:155:808818194910389782487672160 176:156:108879372391783239950263560 176:157:13869983744176208910861600 176:158:1667909437590809932318800 176:159:188819936331035086677600 176:160:20062118235172477959495 176:161:1993750880514035076720 176:162:184606563010558803400 176:163:15855778418084805200 176:164:1256860484360380900 176:165:91408035226209520 176:166:6057158960772920 176:167:362704129387600 176:168:19430578360050 176:169:919790691600 176:170:37873734360 176:171:1328902960 176:172:38630900 176:173:893200 176:174:15400 176:175:176 176:176:1 # binomial(177, k) for 0 <= k <= 177 177:0:1 177:1:177 177:2:15576 177:3:908600 177:4:39524100 177:5:1367533860 177:6:39202637320 177:7:957664425960 177:8:20350369051650 177:9:382134707747650 177:10:6419863090160520 177:11:97465194186982440 177:12:1348268519586590420 177:13:17112638902445186100 177:14:200462341428643608600 177:15:2178357443524593880120 177:16:22055869115686513036215 177:17:208882054566207564637095 177:18:1856729373921845018996400 177:19:15537893181767018843180400 177:20:122749356135959448861125160 177:21:917697567302173022437935720 177:22:6507310022688135977287180560 177:23:43853611022463525064326651600 177:24:281394004060807619162762681100 177:25:1722131304852142629276107608332 177:26:10067844551443295371152629094864 177:27:56305352861775466705335073826832 177:28:301635818902368571635723609786600 177:29:1549784035050100592197338546834600 177:30:7645601239580496254840203497717360 177:31:36254947813494611272951932714982320 177:32:165413199399069163932843193012106835 177:33:726815573117122083947341302628954275 177:34:3078277721437222943776974928781453400 177:35:12576963261872082313145926137592795320 177:36:49609132866273213568520041987171581540 177:37:189051019841743867923279078924086297220 177:38:696503757311687934454186080246633726600 177:39:2482410827341656997157227311648258666600 177:40:8564317354328716640192434225186492399770 177:41:28617353110805711700155207045135352652890 177:42:92665714834989923600502575193771618114120 177:43:290927244249386969443438317468817870823400 177:44:886005698395860316032289421382308970234900 177:45:2618639064147764934050988734307713178694260 177:46:7514355575380542854233272020187350860600920 177:47:20944267667550023700096992226479637505079160 177:48:56724058266281314187762687280049018242922725 177:49:149334765639801827147375237941353537823204725 177:50:382297000037892677497280609129865056827404096 177:51:951994490290438628277541909009663965040790592 177:52:2306755880319139753134043856446493453752684896 177:53:5440461981884763568712367585958710975831804000 177:54:12492912699142790417043214456645928907465624000 177:55:27938695672628422205387552330317259193059486400 177:56:60866444143940491233165739005334028956308166800 177:57:129207714761698235775667621397288026380934880400 177:58:267326306403513591260001975304733847684692856000 177:59:539183567152849446778648051885819116516583896000 177:60:1060394348733937245331341168708777595815948328800 177:61:2033871127899518978750277323588966864105999253600 177:62:3805307271553938734436002734456776713488643764800 177:63:6946195813154015150160957372421100350018952904000 177:64:12372911292180589486224205319625084998471259860250 177:65:21509830400252409414512849247963609305034651757050 177:66:36501530376185906885233925996544306699452742375600 177:67:60472684653084114391954713218155493188645588114800 177:68:97823460468224302692867918441133886040456098421000 177:69:154532712913571724543805842175124544614633546781000 177:70:238421899923796375010443299355906440262577472176400 177:71:359311877349946649663625817339182945184447739758800 177:72:528986930542977012004782453304908224854881394644900 177:73:760871612424829948774002158863224159037843101886500 177:74:1069333076921382630709408439483450169458590305354000 177:75:1468550758972032146174254256890604899389797352686160 177:76:1970949702830885248812814923721601312338938552289320 177:77:2585271688128823508183042951894567955145880438717160 177:78:3314450882216440395106465322941753788648564665022000 177:79:4153552371385159482475190721154856013622884833382000 177:80:5088101654946820366032108633414698616688033920892950 177:81:6093158771973352784013759721496614392823941855884150 177:82:7133454172066364234942938210532621728184127050791200 177:83:8164796943931380750838302771091554990090265901508000 177:84:9136796580113687983080957862888168679386726127878000 177:85:9996730375889093910900342132336466908034888586972400 177:86:10694176681183681858172459025290173901618718023272800 177:87:11185862965376035047053951394269032471808084369170400 177:88:11440087123680035843577904835047874118894631741197000 177:89:11440087123680035843577904835047874118894631741197000 177:90:11185862965376035047053951394269032471808084369170400 177:91:10694176681183681858172459025290173901618718023272800 177:92:9996730375889093910900342132336466908034888586972400 177:93:9136796580113687983080957862888168679386726127878000 177:94:8164796943931380750838302771091554990090265901508000 177:95:7133454172066364234942938210532621728184127050791200 177:96:6093158771973352784013759721496614392823941855884150 177:97:5088101654946820366032108633414698616688033920892950 177:98:4153552371385159482475190721154856013622884833382000 177:99:3314450882216440395106465322941753788648564665022000 177:100:2585271688128823508183042951894567955145880438717160 177:101:1970949702830885248812814923721601312338938552289320 177:102:1468550758972032146174254256890604899389797352686160 177:103:1069333076921382630709408439483450169458590305354000 177:104:760871612424829948774002158863224159037843101886500 177:105:528986930542977012004782453304908224854881394644900 177:106:359311877349946649663625817339182945184447739758800 177:107:238421899923796375010443299355906440262577472176400 177:108:154532712913571724543805842175124544614633546781000 177:109:97823460468224302692867918441133886040456098421000 177:110:60472684653084114391954713218155493188645588114800 177:111:36501530376185906885233925996544306699452742375600 177:112:21509830400252409414512849247963609305034651757050 177:113:12372911292180589486224205319625084998471259860250 177:114:6946195813154015150160957372421100350018952904000 177:115:3805307271553938734436002734456776713488643764800 177:116:2033871127899518978750277323588966864105999253600 177:117:1060394348733937245331341168708777595815948328800 177:118:539183567152849446778648051885819116516583896000 177:119:267326306403513591260001975304733847684692856000 177:120:129207714761698235775667621397288026380934880400 177:121:60866444143940491233165739005334028956308166800 177:122:27938695672628422205387552330317259193059486400 177:123:12492912699142790417043214456645928907465624000 177:124:5440461981884763568712367585958710975831804000 177:125:2306755880319139753134043856446493453752684896 177:126:951994490290438628277541909009663965040790592 177:127:382297000037892677497280609129865056827404096 177:128:149334765639801827147375237941353537823204725 177:129:56724058266281314187762687280049018242922725 177:130:20944267667550023700096992226479637505079160 177:131:7514355575380542854233272020187350860600920 177:132:2618639064147764934050988734307713178694260 177:133:886005698395860316032289421382308970234900 177:134:290927244249386969443438317468817870823400 177:135:92665714834989923600502575193771618114120 177:136:28617353110805711700155207045135352652890 177:137:8564317354328716640192434225186492399770 177:138:2482410827341656997157227311648258666600 177:139:696503757311687934454186080246633726600 177:140:189051019841743867923279078924086297220 177:141:49609132866273213568520041987171581540 177:142:12576963261872082313145926137592795320 177:143:3078277721437222943776974928781453400 177:144:726815573117122083947341302628954275 177:145:165413199399069163932843193012106835 177:146:36254947813494611272951932714982320 177:147:7645601239580496254840203497717360 177:148:1549784035050100592197338546834600 177:149:301635818902368571635723609786600 177:150:56305352861775466705335073826832 177:151:10067844551443295371152629094864 177:152:1722131304852142629276107608332 177:153:281394004060807619162762681100 177:154:43853611022463525064326651600 177:155:6507310022688135977287180560 177:156:917697567302173022437935720 177:157:122749356135959448861125160 177:158:15537893181767018843180400 177:159:1856729373921845018996400 177:160:208882054566207564637095 177:161:22055869115686513036215 177:162:2178357443524593880120 177:163:200462341428643608600 177:164:17112638902445186100 177:165:1348268519586590420 177:166:97465194186982440 177:167:6419863090160520 177:168:382134707747650 177:169:20350369051650 177:170:957664425960 177:171:39202637320 177:172:1367533860 177:173:39524100 177:174:908600 177:175:15576 177:176:177 177:177:1 # binomial(178, k) for 0 <= k <= 178 178:0:1 178:1:178 178:2:15753 178:3:924176 178:4:40432700 178:5:1407057960 178:6:40570171180 178:7:996867063280 178:8:21308033477610 178:9:402485076799300 178:10:6801997797908170 178:11:103885057277142960 178:12:1445733713773572860 178:13:18460907422031776520 178:14:217574980331088794700 178:15:2378819784953237488720 178:16:24234226559211106916335 178:17:230937923681894077673310 178:18:2065611428488052583633495 178:19:17394622555688863862176800 178:20:138287249317726467704305560 178:21:1040446923438132471299060880 178:22:7425007589990308999725116280 178:23:50360921045151661041613832160 178:24:325247615083271144227089332700 178:25:2003525308912950248438870289432 178:26:11789975856295438000428736703196 178:27:66373197413218762076487702921696 178:28:357941171764144038341058683613432 178:29:1851419853952469163833062156621200 178:30:9195385274630596847037542044551960 178:31:43900549053075107527792136212699680 178:32:201668147212563775205795125727089155 178:33:892228772516191247880184495641061110 178:34:3805093294554345027724316231410407675 178:35:15655240983309305256922901066374248720 178:36:62186096128145295881665968124764376860 178:37:238660152708017081491799120911257878760 178:38:885554777153431802377465159170720023820 178:39:3178914584653344931611413391894892393200 178:40:11046728181670373637349661536834751066370 178:41:37181670465134428340347641270321845052660 178:42:121283067945795635300657782238906970767010 178:43:383592959084376893043940892662589488937520 178:44:1176932942645247285475727738851126841058300 178:45:3504644762543625250083278155690022148929160 178:46:10132994639528307788284260754495064039295180 178:47:28458623242930566554330264246666988365680080 178:48:77668325933831337887859679506528655748001885 178:49:206058823906083141335137925221402556066127450 178:50:531631765677694504644655847071218594650608821 178:51:1334291490328331305774822518139529021868194688 178:52:3258750370609578381411585765456157418793475488 178:53:7747217862203903321846411442405204429584488896 178:54:17933374681027553985755582042604639883297428000 178:55:40431608371771212622430766786963188100525110400 178:56:88805139816568913438553291335651288149367653200 178:57:190074158905638727008833360402622055337243047200 178:58:396534021165211827035669596702021874065627736400 178:59:806509873556363038038650027190552964201276752000 178:60:1599577915886786692109989220594596712332532224800 178:61:3094265476633456224081618492297744459921947582400 178:62:5839178399453457713186280058045743577594643018400 178:63:10751503084707953884596960106877877063507596668800 178:64:19319107105334604636385162692046185348490212764250 178:65:33882741692432998900737054567588694303505911617300 178:66:58011360776438316299746775244507916004487394132650 178:67:96974215029270021277188639214699799888098330490400 178:68:158296145121308417084822631659289379229101686535800 178:69:252356173381796027236673760616258430655089645202000 178:70:392954612837368099554249141531030984877211018957400 178:71:597733777273743024674069116695089385447025211935200 178:72:888298807892923661668408270644091170039329134403700 178:73:1289858542967806960778784612168132383892724496531400 178:74:1830204689346212579483410598346674328496433407240500 178:75:2537883835893414776883662696374055068848387658040160 178:76:3439500461802917394987069180612206211728735904975480 178:77:4556221390959708756995857875616169267484818991006480 178:78:5899722570345263903289508274836321743794445103739160 178:79:7468003253601599877581656044096609802271449498404000 178:80:9241654026331979848507299354569554630310918754274950 178:81:11181260426920173150045868354911313009511975776777100 178:82:13226612944039717018956697932029236121008068906675350 178:83:15298251115997744985781240981624176718274392952299200 178:84:17301593524045068733919260633979723669476992029386000 178:85:19133526956002781893981299995224635587421614714850400 178:86:20690907057072775769072801157626640809653606610245200 178:87:21880039646559716905226410419559206373426802392443200 178:88:22625950089056070890631856229316906590702716110367400 178:89:22880174247360071687155809670095748237789263482394000 178:90:22625950089056070890631856229316906590702716110367400 178:91:21880039646559716905226410419559206373426802392443200 178:92:20690907057072775769072801157626640809653606610245200 178:93:19133526956002781893981299995224635587421614714850400 178:94:17301593524045068733919260633979723669476992029386000 178:95:15298251115997744985781240981624176718274392952299200 178:96:13226612944039717018956697932029236121008068906675350 178:97:11181260426920173150045868354911313009511975776777100 178:98:9241654026331979848507299354569554630310918754274950 178:99:7468003253601599877581656044096609802271449498404000 178:100:5899722570345263903289508274836321743794445103739160 178:101:4556221390959708756995857875616169267484818991006480 178:102:3439500461802917394987069180612206211728735904975480 178:103:2537883835893414776883662696374055068848387658040160 178:104:1830204689346212579483410598346674328496433407240500 178:105:1289858542967806960778784612168132383892724496531400 178:106:888298807892923661668408270644091170039329134403700 178:107:597733777273743024674069116695089385447025211935200 178:108:392954612837368099554249141531030984877211018957400 178:109:252356173381796027236673760616258430655089645202000 178:110:158296145121308417084822631659289379229101686535800 178:111:96974215029270021277188639214699799888098330490400 178:112:58011360776438316299746775244507916004487394132650 178:113:33882741692432998900737054567588694303505911617300 178:114:19319107105334604636385162692046185348490212764250 178:115:10751503084707953884596960106877877063507596668800 178:116:5839178399453457713186280058045743577594643018400 178:117:3094265476633456224081618492297744459921947582400 178:118:1599577915886786692109989220594596712332532224800 178:119:806509873556363038038650027190552964201276752000 178:120:396534021165211827035669596702021874065627736400 178:121:190074158905638727008833360402622055337243047200 178:122:88805139816568913438553291335651288149367653200 178:123:40431608371771212622430766786963188100525110400 178:124:17933374681027553985755582042604639883297428000 178:125:7747217862203903321846411442405204429584488896 178:126:3258750370609578381411585765456157418793475488 178:127:1334291490328331305774822518139529021868194688 178:128:531631765677694504644655847071218594650608821 178:129:206058823906083141335137925221402556066127450 178:130:77668325933831337887859679506528655748001885 178:131:28458623242930566554330264246666988365680080 178:132:10132994639528307788284260754495064039295180 178:133:3504644762543625250083278155690022148929160 178:134:1176932942645247285475727738851126841058300 178:135:383592959084376893043940892662589488937520 178:136:121283067945795635300657782238906970767010 178:137:37181670465134428340347641270321845052660 178:138:11046728181670373637349661536834751066370 178:139:3178914584653344931611413391894892393200 178:140:885554777153431802377465159170720023820 178:141:238660152708017081491799120911257878760 178:142:62186096128145295881665968124764376860 178:143:15655240983309305256922901066374248720 178:144:3805093294554345027724316231410407675 178:145:892228772516191247880184495641061110 178:146:201668147212563775205795125727089155 178:147:43900549053075107527792136212699680 178:148:9195385274630596847037542044551960 178:149:1851419853952469163833062156621200 178:150:357941171764144038341058683613432 178:151:66373197413218762076487702921696 178:152:11789975856295438000428736703196 178:153:2003525308912950248438870289432 178:154:325247615083271144227089332700 178:155:50360921045151661041613832160 178:156:7425007589990308999725116280 178:157:1040446923438132471299060880 178:158:138287249317726467704305560 178:159:17394622555688863862176800 178:160:2065611428488052583633495 178:161:230937923681894077673310 178:162:24234226559211106916335 178:163:2378819784953237488720 178:164:217574980331088794700 178:165:18460907422031776520 178:166:1445733713773572860 178:167:103885057277142960 178:168:6801997797908170 178:169:402485076799300 178:170:21308033477610 178:171:996867063280 178:172:40570171180 178:173:1407057960 178:174:40432700 178:175:924176 178:176:15753 178:177:178 178:178:1 # binomial(179, k) for 0 <= k <= 179 179:0:1 179:1:179 179:2:15931 179:3:939929 179:4:41356876 179:5:1447490660 179:6:41977229140 179:7:1037437234460 179:8:22304900540890 179:9:423793110276910 179:10:7204482874707470 179:11:110687055075051130 179:12:1549618771050715820 179:13:19906641135805349380 179:14:236035887753120571220 179:15:2596394765284326283420 179:16:26613046344164344405055 179:17:255172150241105184589645 179:18:2296549352169946661306805 179:19:19460233984176916445810295 179:20:155681871873415331566482360 179:21:1178734172755858939003366440 179:22:8465454513428441471024177160 179:23:57785928635141970041338948440 179:24:375608536128422805268703164860 179:25:2328772923996221392665959622132 179:26:13793501165208388248867606992628 179:27:78163173269514200076916439624892 179:28:424314369177362800417546386535128 179:29:2209361025716613202174120840234632 179:30:11046805128583066010870604201173160 179:31:53095934327705704374829678257251640 179:32:245568696265638882733587261939788835 179:33:1093896919728755023085979621368150265 179:34:4697322067070536275604500727051468785 179:35:19460334277863650284647217297784656395 179:36:77841337111454601138588869191138625580 179:37:300846248836162377373465089036022255620 179:38:1124214929861448883869264280081977902580 179:39:4064469361806776733988878551065612417020 179:40:14225642766323718568961074928729643459570 179:41:48228398646804801977697302807156596119030 179:42:158464738410930063641005423509228815819670 179:43:504876027030172528344598674901496459704530 179:44:1560525901729624178519668631513716329995820 179:45:4681577705188872535559005894541148989987460 179:46:13637639402071933038367538910185086188224340 179:47:38591617882458874342614525001162052404975260 179:48:106126949176761904442189943753195644113681965 179:49:283727149839914479222997604727931211814129335 179:50:737690589583777645979793772292621150716736271 179:51:1865923256006025810419478365210747616518803509 179:52:4593041860937909687186408283595686440661670176 179:53:11005968232813481703257997207861361848377964384 179:54:25680592543231457307601993485009844312881916896 179:55:58364983052798766608186348829567827983822538400 179:56:129236748188340126060984058122614476249892763600 179:57:278879298722207640447386651738273343486610700400 179:58:586608180070850554044502957104643929402870783600 179:59:1203043894721574865074319623892574838266904488400 179:60:2406087789443149730148639247785149676533808976800 179:61:4693843392520242916191607712892341172254479807200 179:62:8933443876086913937267898550343488037516590600800 179:63:16590681484161411597783240164923620641102239687200 179:64:30070610190042558520982122798924062411997809433050 179:65:53201848797767603537122217259634879651996124381550 179:66:91894102468871315200483829812096610307993305749950 179:67:154985575805708337576935414459207715892585724623050 179:68:255270360150578438362011270873989179117200017026200 179:69:410652318503104444321496392275547809884191331737800 179:70:645310786219164126790922902147289415532300664159400 179:71:990688390111111124228318258226120370324236230892600 179:72:1486032585166666686342477387339180555486354346338900 179:73:2178157350860730622447192882812223553932053630935100 179:74:3120063232314019540262195210514806712389157903771900 179:75:4368088525239627356367073294720729397344821065280660 179:76:5977384297696332171870731876986261280577123563015640 179:77:7995721852762626151982927056228375479213554895981960 179:78:10455943961304972660285366150452491011279264094745640 179:79:13367725823946863780871164318932931546065894602143160 179:80:16709657279933579726088955398666164432582368252678950 179:81:20422914453252152998553167709480867639822894531052050 179:82:24407873370959890169002566286940549130520044683452450 179:83:28524864060037462004737938913653412839282461858974550 179:84:32599844640042813719700501615603900387751384981685200 179:85:36435120480047850627900560629204359256898606744236400 179:86:39824434013075557663054101152851276397075221325095600 179:87:42570946703632492674299211577185847183080409002688400 179:88:44505989735615787795858266648876112964129518502810600 179:89:45506124336416142577787665899412654828491979592761400 179:90:45506124336416142577787665899412654828491979592761400 179:91:44505989735615787795858266648876112964129518502810600 179:92:42570946703632492674299211577185847183080409002688400 179:93:39824434013075557663054101152851276397075221325095600 179:94:36435120480047850627900560629204359256898606744236400 179:95:32599844640042813719700501615603900387751384981685200 179:96:28524864060037462004737938913653412839282461858974550 179:97:24407873370959890169002566286940549130520044683452450 179:98:20422914453252152998553167709480867639822894531052050 179:99:16709657279933579726088955398666164432582368252678950 179:100:13367725823946863780871164318932931546065894602143160 179:101:10455943961304972660285366150452491011279264094745640 179:102:7995721852762626151982927056228375479213554895981960 179:103:5977384297696332171870731876986261280577123563015640 179:104:4368088525239627356367073294720729397344821065280660 179:105:3120063232314019540262195210514806712389157903771900 179:106:2178157350860730622447192882812223553932053630935100 179:107:1486032585166666686342477387339180555486354346338900 179:108:990688390111111124228318258226120370324236230892600 179:109:645310786219164126790922902147289415532300664159400 179:110:410652318503104444321496392275547809884191331737800 179:111:255270360150578438362011270873989179117200017026200 179:112:154985575805708337576935414459207715892585724623050 179:113:91894102468871315200483829812096610307993305749950 179:114:53201848797767603537122217259634879651996124381550 179:115:30070610190042558520982122798924062411997809433050 179:116:16590681484161411597783240164923620641102239687200 179:117:8933443876086913937267898550343488037516590600800 179:118:4693843392520242916191607712892341172254479807200 179:119:2406087789443149730148639247785149676533808976800 179:120:1203043894721574865074319623892574838266904488400 179:121:586608180070850554044502957104643929402870783600 179:122:278879298722207640447386651738273343486610700400 179:123:129236748188340126060984058122614476249892763600 179:124:58364983052798766608186348829567827983822538400 179:125:25680592543231457307601993485009844312881916896 179:126:11005968232813481703257997207861361848377964384 179:127:4593041860937909687186408283595686440661670176 179:128:1865923256006025810419478365210747616518803509 179:129:737690589583777645979793772292621150716736271 179:130:283727149839914479222997604727931211814129335 179:131:106126949176761904442189943753195644113681965 179:132:38591617882458874342614525001162052404975260 179:133:13637639402071933038367538910185086188224340 179:134:4681577705188872535559005894541148989987460 179:135:1560525901729624178519668631513716329995820 179:136:504876027030172528344598674901496459704530 179:137:158464738410930063641005423509228815819670 179:138:48228398646804801977697302807156596119030 179:139:14225642766323718568961074928729643459570 179:140:4064469361806776733988878551065612417020 179:141:1124214929861448883869264280081977902580 179:142:300846248836162377373465089036022255620 179:143:77841337111454601138588869191138625580 179:144:19460334277863650284647217297784656395 179:145:4697322067070536275604500727051468785 179:146:1093896919728755023085979621368150265 179:147:245568696265638882733587261939788835 179:148:53095934327705704374829678257251640 179:149:11046805128583066010870604201173160 179:150:2209361025716613202174120840234632 179:151:424314369177362800417546386535128 179:152:78163173269514200076916439624892 179:153:13793501165208388248867606992628 179:154:2328772923996221392665959622132 179:155:375608536128422805268703164860 179:156:57785928635141970041338948440 179:157:8465454513428441471024177160 179:158:1178734172755858939003366440 179:159:155681871873415331566482360 179:160:19460233984176916445810295 179:161:2296549352169946661306805 179:162:255172150241105184589645 179:163:26613046344164344405055 179:164:2596394765284326283420 179:165:236035887753120571220 179:166:19906641135805349380 179:167:1549618771050715820 179:168:110687055075051130 179:169:7204482874707470 179:170:423793110276910 179:171:22304900540890 179:172:1037437234460 179:173:41977229140 179:174:1447490660 179:175:41356876 179:176:939929 179:177:15931 179:178:179 179:179:1 # binomial(180, k) for 0 <= k <= 180 180:0:1 180:1:180 180:2:16110 180:3:955860 180:4:42296805 180:5:1488847536 180:6:43424719800 180:7:1079414463600 180:8:23342337775350 180:9:446098010817800 180:10:7628275984984380 180:11:117891537949758600 180:12:1660305826125766950 180:13:21456259906856065200 180:14:255942528888925920600 180:15:2832430653037446854640 180:16:29209441109448670688475 180:17:281785196585269528994700 180:18:2551721502411051845896450 180:19:21756783336346863107117100 180:20:175142105857592248012292655 180:21:1334416044629274270569848800 180:22:9644188686184300410027543600 180:23:66251383148570411512363125600 180:24:433394464763564775310042113300 180:25:2704381460124644197934662786992 180:26:16122274089204609641533566614760 180:27:91956674434722588325784046617520 180:28:502477542446877000494462826160020 180:29:2633675394893976002591667226769760 180:30:13256166154299679213044725041407792 180:31:64142739456288770385700282458424800 180:32:298664630593344587108416940197040475 180:33:1339465615994393905819566883307939100 180:34:5791218986799291298690480348419619050 180:35:24157656344934186560251718024836125180 180:36:97301671389318251423236086488923281975 180:37:378687585947616978512053958227160881200 180:38:1425061178697611261242729369118000158200 180:39:5188684291668225617858142831147590319600 180:40:18290112128130495302949953479795255876590 180:41:62454041413128520546658377735886239578600 180:42:206693137057734865618702726316385411938700 180:43:663340765441102591985604098410725275524200 180:44:2065401928759796706864267306415212789700350 180:45:6242103606918496714078674526054865319983280 180:46:18319217107260805573926544804726235178211800 180:47:52229257284530807380982063911347138593199600 180:48:144718567059220778784804468754357696518657225 180:49:389854099016676383665187548481126855927811300 180:50:1021417739423692125202791377020552362530865606 180:51:2603613845589803456399272137503368767235539780 180:52:6458965116943935497605886648806434057180473685 180:53:15599010093751391390444405491457048289039634560 180:54:36686560776044939010859990692871206161259881280 180:55:84045575596030223915788342314577672296704455296 180:56:187601731241138892669170406952182304233715302000 180:57:408116046910547766508370709860887819736503464000 180:58:865487478793058194491889608842917272889481484000 180:59:1789652074792425419118822580997218767669775272000 180:60:3609131684164724595222958871677724514800713465200 180:61:7099931181963392646340246960677490848788288784000 180:62:13627287268607156853459506263235829209771070408000 180:63:25524125360248325535051138715267108678618830288000 180:64:46661291674203970118765362963847683053100049120250 180:65:83272458987810162058104340058558942063993933814600 180:66:145095951266638918737606047071731489959989430131500 180:67:246879678274579652777419244271304326200579030373000 180:68:410255935956286775938946685333196895009785741649250 180:69:665922678653682882683507663149536989001391348764000 180:70:1055963104722268571112419294422837225416491995897200 180:71:1635999176330275251019241160373409785856536895052000 180:72:2476720975277777810570795645565300925810590577231500 180:73:3664189936027397308789670270151404109418407977274000 180:74:5298220583174750162709388093327030266321211534707000 180:75:7488151757553646896629268505235536109733978969052560 180:76:10345472822935959528237805171706990677921944628296300 180:77:13973106150458958323853658933214636759790678458997600 180:78:18451665814067598812268293206680866490492818990727600 180:79:23823669785251836441156530469385422557345158696888800 180:80:30077383103880443506960119717599095978648262854822110 180:81:37132571733185732724642123108147032072405262783731000 180:82:44830787824212043167555733996421416770342939214504500 180:83:52932737430997352173740505200593961969802506542427000 180:84:61124708700080275724438440529257313227033846840659750 180:85:69034965120090664347601062244808259644649991725921600 180:86:76259554493123408290954661782055635653973828069332000 180:87:82395380716708050337353312730037123580155630327784000 180:88:87076936439248280470157478226061960147209927505499000 180:89:90012114072031930373645932548288767792621498095572000 180:90:91012248672832285155575331798825309656983959185522800 180:91:90012114072031930373645932548288767792621498095572000 180:92:87076936439248280470157478226061960147209927505499000 180:93:82395380716708050337353312730037123580155630327784000 180:94:76259554493123408290954661782055635653973828069332000 180:95:69034965120090664347601062244808259644649991725921600 180:96:61124708700080275724438440529257313227033846840659750 180:97:52932737430997352173740505200593961969802506542427000 180:98:44830787824212043167555733996421416770342939214504500 180:99:37132571733185732724642123108147032072405262783731000 180:100:30077383103880443506960119717599095978648262854822110 180:101:23823669785251836441156530469385422557345158696888800 180:102:18451665814067598812268293206680866490492818990727600 180:103:13973106150458958323853658933214636759790678458997600 180:104:10345472822935959528237805171706990677921944628296300 180:105:7488151757553646896629268505235536109733978969052560 180:106:5298220583174750162709388093327030266321211534707000 180:107:3664189936027397308789670270151404109418407977274000 180:108:2476720975277777810570795645565300925810590577231500 180:109:1635999176330275251019241160373409785856536895052000 180:110:1055963104722268571112419294422837225416491995897200 180:111:665922678653682882683507663149536989001391348764000 180:112:410255935956286775938946685333196895009785741649250 180:113:246879678274579652777419244271304326200579030373000 180:114:145095951266638918737606047071731489959989430131500 180:115:83272458987810162058104340058558942063993933814600 180:116:46661291674203970118765362963847683053100049120250 180:117:25524125360248325535051138715267108678618830288000 180:118:13627287268607156853459506263235829209771070408000 180:119:7099931181963392646340246960677490848788288784000 180:120:3609131684164724595222958871677724514800713465200 180:121:1789652074792425419118822580997218767669775272000 180:122:865487478793058194491889608842917272889481484000 180:123:408116046910547766508370709860887819736503464000 180:124:187601731241138892669170406952182304233715302000 180:125:84045575596030223915788342314577672296704455296 180:126:36686560776044939010859990692871206161259881280 180:127:15599010093751391390444405491457048289039634560 180:128:6458965116943935497605886648806434057180473685 180:129:2603613845589803456399272137503368767235539780 180:130:1021417739423692125202791377020552362530865606 180:131:389854099016676383665187548481126855927811300 180:132:144718567059220778784804468754357696518657225 180:133:52229257284530807380982063911347138593199600 180:134:18319217107260805573926544804726235178211800 180:135:6242103606918496714078674526054865319983280 180:136:2065401928759796706864267306415212789700350 180:137:663340765441102591985604098410725275524200 180:138:206693137057734865618702726316385411938700 180:139:62454041413128520546658377735886239578600 180:140:18290112128130495302949953479795255876590 180:141:5188684291668225617858142831147590319600 180:142:1425061178697611261242729369118000158200 180:143:378687585947616978512053958227160881200 180:144:97301671389318251423236086488923281975 180:145:24157656344934186560251718024836125180 180:146:5791218986799291298690480348419619050 180:147:1339465615994393905819566883307939100 180:148:298664630593344587108416940197040475 180:149:64142739456288770385700282458424800 180:150:13256166154299679213044725041407792 180:151:2633675394893976002591667226769760 180:152:502477542446877000494462826160020 180:153:91956674434722588325784046617520 180:154:16122274089204609641533566614760 180:155:2704381460124644197934662786992 180:156:433394464763564775310042113300 180:157:66251383148570411512363125600 180:158:9644188686184300410027543600 180:159:1334416044629274270569848800 180:160:175142105857592248012292655 180:161:21756783336346863107117100 180:162:2551721502411051845896450 180:163:281785196585269528994700 180:164:29209441109448670688475 180:165:2832430653037446854640 180:166:255942528888925920600 180:167:21456259906856065200 180:168:1660305826125766950 180:169:117891537949758600 180:170:7628275984984380 180:171:446098010817800 180:172:23342337775350 180:173:1079414463600 180:174:43424719800 180:175:1488847536 180:176:42296805 180:177:955860 180:178:16110 180:179:180 180:180:1 # binomial(181, k) for 0 <= k <= 181 181:0:1 181:1:181 181:2:16290 181:3:971970 181:4:43252665 181:5:1531144341 181:6:44913567336 181:7:1122839183400 181:8:24421752238950 181:9:469440348593150 181:10:8074373995802180 181:11:125519813934742980 181:12:1778197364075525550 181:13:23116565732981832150 181:14:277398788795781985800 181:15:3088373181926372775240 181:16:32041871762486117543115 181:17:310994637694718199683175 181:18:2833506698996321374891150 181:19:24308504838757914953013550 181:20:196898889193939111119409755 181:21:1509558150486866518582141455 181:22:10978604730813574680597392400 181:23:75895571834754711922390669200 181:24:499645847912135186822405238900 181:25:3137775924888208973244704900292 181:26:18826655549329253839468229401752 181:27:108078948523927197967317613232280 181:28:594434216881599588820246872777540 181:29:3136152937340853003086130052929780 181:30:15889841549193655215636392268177552 181:31:77398905610588449598745007499832592 181:32:362807370049633357494117222655465275 181:33:1638130246587738492927983823504979575 181:34:7130684602793685204510047231727558150 181:35:29948875331733477858942198373255744230 181:36:121459327734252437983487804513759407155 181:37:475989257336935229935290044716084163175 181:38:1803748764645228239754783327345161039400 181:39:6613745470365836879100872200265590477800 181:40:23478796419798720920808096310942846196190 181:41:80744153541259015849608331215681495455190 181:42:269147178470863386165361104052271651517300 181:43:870033902498837457604306824727110687462900 181:44:2728742694200899298849871404825938065224550 181:45:8307505535678293420942941832470078109683630 181:46:24561320714179302288005219330781100498195080 181:47:70548474391791612954908608716073373771411400 181:48:196947824343751586165786532665704835111856825 181:49:534572666075897162449992017235484552446468525 181:50:1411271838440368508867978925501679218458676906 181:51:3625031585013495581602063514523921129766405386 181:52:9062578962533738954005158786309802824416013465 181:53:22057975210695326888050292140263482346220108245 181:54:52285570869796330401304396184328254450299515840 181:55:120732136372075162926648333007448878457964336576 181:56:271647306837169116584958749266759976530419757296 181:57:595717778151686659177541116813070123970218766000 181:58:1273603525703605961000260318703805092625984948000 181:59:2655139553585483613610712189840136040559256756000 181:60:5398783758957150014341781452674943282470488737200 181:61:10709062866128117241563205832355215363589002249200 181:62:20727218450570549499799753223913320058559359192000 181:63:39151412628855482388510644978502937888389900696000 181:64:72185417034452295653816501679114791731718879408250 181:65:129933750662014132176869703022406625117093982934850 181:66:228368410254449080795710387130290432023983363946100 181:67:391975629541218571515025291343035816160568460504500 181:68:657135614230866428716365929604501221210364772022250 181:69:1076178614609969658622454348482733884011177090413250 181:70:1721885783375951453795926957572374214417883344661200 181:71:2691962281052543822131660454796247011273028890949200 181:72:4112720151608053061590036805938710711667127472283500 181:73:6140910911305175119360465915716705035228998554505500 181:74:8962410519202147471499058363478434375739619511981000 181:75:12786372340728397059338656598562566376055190503759560 181:76:17833624580489606424867073676942526787655923597348860 181:77:24318578973394917852091464104921627437712623087293900 181:78:32424771964526557136121952139895503250283497449725200 181:79:42275335599319435253424823676066289047837977687616400 181:80:53901052889132279948116650186984518535993421551710910 181:81:67209954837066176231602242825746128051053525638553110 181:82:81963359557397775892197857104568448842748201998235500 181:83:97763525255209395341296239197015378740145445756931500 181:84:114057446131077627898178945729851275196836353383086750 181:85:130159673820170940072039502774065572871683838566581350 181:86:145294519613214072638555724026863895298623819795253600 181:87:158654935209831458628307974512092759234129458397116000 181:88:169472317155956330807510790956099083727365557833283000 181:89:177089050511280210843803410774350727939831425601071000 181:90:181024362744864215529221264347114077449605457281094800 181:91:181024362744864215529221264347114077449605457281094800 181:92:177089050511280210843803410774350727939831425601071000 181:93:169472317155956330807510790956099083727365557833283000 181:94:158654935209831458628307974512092759234129458397116000 181:95:145294519613214072638555724026863895298623819795253600 181:96:130159673820170940072039502774065572871683838566581350 181:97:114057446131077627898178945729851275196836353383086750 181:98:97763525255209395341296239197015378740145445756931500 181:99:81963359557397775892197857104568448842748201998235500 181:100:67209954837066176231602242825746128051053525638553110 181:101:53901052889132279948116650186984518535993421551710910 181:102:42275335599319435253424823676066289047837977687616400 181:103:32424771964526557136121952139895503250283497449725200 181:104:24318578973394917852091464104921627437712623087293900 181:105:17833624580489606424867073676942526787655923597348860 181:106:12786372340728397059338656598562566376055190503759560 181:107:8962410519202147471499058363478434375739619511981000 181:108:6140910911305175119360465915716705035228998554505500 181:109:4112720151608053061590036805938710711667127472283500 181:110:2691962281052543822131660454796247011273028890949200 181:111:1721885783375951453795926957572374214417883344661200 181:112:1076178614609969658622454348482733884011177090413250 181:113:657135614230866428716365929604501221210364772022250 181:114:391975629541218571515025291343035816160568460504500 181:115:228368410254449080795710387130290432023983363946100 181:116:129933750662014132176869703022406625117093982934850 181:117:72185417034452295653816501679114791731718879408250 181:118:39151412628855482388510644978502937888389900696000 181:119:20727218450570549499799753223913320058559359192000 181:120:10709062866128117241563205832355215363589002249200 181:121:5398783758957150014341781452674943282470488737200 181:122:2655139553585483613610712189840136040559256756000 181:123:1273603525703605961000260318703805092625984948000 181:124:595717778151686659177541116813070123970218766000 181:125:271647306837169116584958749266759976530419757296 181:126:120732136372075162926648333007448878457964336576 181:127:52285570869796330401304396184328254450299515840 181:128:22057975210695326888050292140263482346220108245 181:129:9062578962533738954005158786309802824416013465 181:130:3625031585013495581602063514523921129766405386 181:131:1411271838440368508867978925501679218458676906 181:132:534572666075897162449992017235484552446468525 181:133:196947824343751586165786532665704835111856825 181:134:70548474391791612954908608716073373771411400 181:135:24561320714179302288005219330781100498195080 181:136:8307505535678293420942941832470078109683630 181:137:2728742694200899298849871404825938065224550 181:138:870033902498837457604306824727110687462900 181:139:269147178470863386165361104052271651517300 181:140:80744153541259015849608331215681495455190 181:141:23478796419798720920808096310942846196190 181:142:6613745470365836879100872200265590477800 181:143:1803748764645228239754783327345161039400 181:144:475989257336935229935290044716084163175 181:145:121459327734252437983487804513759407155 181:146:29948875331733477858942198373255744230 181:147:7130684602793685204510047231727558150 181:148:1638130246587738492927983823504979575 181:149:362807370049633357494117222655465275 181:150:77398905610588449598745007499832592 181:151:15889841549193655215636392268177552 181:152:3136152937340853003086130052929780 181:153:594434216881599588820246872777540 181:154:108078948523927197967317613232280 181:155:18826655549329253839468229401752 181:156:3137775924888208973244704900292 181:157:499645847912135186822405238900 181:158:75895571834754711922390669200 181:159:10978604730813574680597392400 181:160:1509558150486866518582141455 181:161:196898889193939111119409755 181:162:24308504838757914953013550 181:163:2833506698996321374891150 181:164:310994637694718199683175 181:165:32041871762486117543115 181:166:3088373181926372775240 181:167:277398788795781985800 181:168:23116565732981832150 181:169:1778197364075525550 181:170:125519813934742980 181:171:8074373995802180 181:172:469440348593150 181:173:24421752238950 181:174:1122839183400 181:175:44913567336 181:176:1531144341 181:177:43252665 181:178:971970 181:179:16290 181:180:181 181:181:1 # binomial(182, k) for 0 <= k <= 182 182:0:1 182:1:182 182:2:16471 182:3:988260 182:4:44224635 182:5:1574397006 182:6:46444711677 182:7:1167752750736 182:8:25544591422350 182:9:493862100832100 182:10:8543814344395330 182:11:133594187930545160 182:12:1903717178010268530 182:13:24894763097057357700 182:14:300515354528763817950 182:15:3365771970722154761040 182:16:35130244944412490318355 182:17:343036509457204317226290 182:18:3144501336691039574574325 182:19:27142011537754236327904700 182:20:221207394032697026072423305 182:21:1706457039680805629701551210 182:22:12488162881300441199179533855 182:23:86874176565568286602988061600 182:24:575541419746889898744795908100 182:25:3637421772800344160067110139192 182:26:21964431474217462812712934302044 182:27:126905604073256451806785842634032 182:28:702513165405526786787564486009820 182:29:3730587154222452591906376925707320 182:30:19025994486534508218722522321107332 182:31:93288747159782104814381399768010144 182:32:440206275660221807092862230155297867 182:33:2000937616637371850422101046160444850 182:34:8768814849381423697438031055232537725 182:35:37079559934527163063452245604983302380 182:36:151408203065985915842430002887015151385 182:37:597448585071187667918777849229843570330 182:38:2279738021982163469690073372061245202575 182:39:8417494235011065118855655527610751517200 182:40:30092541890164557799908968511208436673990 182:41:104222949961057736770416427526624341651380 182:42:349891332012122402014969435267953146972490 182:43:1139181080969700843769667928779382338980200 182:44:3598776596699736756454178229553048752687450 182:45:11036248229879192719792813237296016174908180 182:46:32868826249857595708948161163251178607878710 182:47:95109795105970915242913828046854474269606480 182:48:267496298735543199120695141381778208883268225 182:49:731520490419648748615778549901189387558325350 182:50:1945844504516265671317970942737163770905145431 182:51:5036303423453864090470042440025600348225082292 182:52:12687610547547234535607222300833723954182418851 182:53:31120554173229065842055450926573285170636121710 182:54:74343546080491657289354688324591736796519624085 182:55:173017707241871493327952729191777132908263852416 182:56:392379443209244279511607082274208854988384093872 182:57:867365084988855775762499866079830100500638523296 182:58:1869321303855292620177801435516875216596203714000 182:59:3928743079289089574610972508543941133185241704000 182:60:8053923312542633627952493642515079323029745493200 182:61:16107846625085267255904987285030158646059490986400 182:62:31436281316698666741362959056268535422148361441200 182:63:59878631079426031888310398202416257946949259888000 182:64:111336829663307778042327146657617729620108780104250 182:65:202119167696466427830686204701521416848812862343100 182:66:358302160916463212972580090152697057141077346880950 182:67:620344039795667652310735678473326248184551824450600 182:68:1049111243772085000231391220947537037370933232526750 182:69:1733314228840836087338820278087235105221541862435500 182:70:2798064397985921112418381306055108098429060435074450 182:71:4413848064428495275927587412368621225690912235610400 182:72:6804682432660596883721697260734957722940156363232700 182:73:10253631062913228180950502721655415746896126026789000 182:74:15103321430507322590859524279195139410968618066486500 182:75:21748782859930544530837714962041000751794810015740560 182:76:30619996921218003484205730275505093163711114101108420 182:77:42152203553884524276958537781864154225368546684642760 182:78:56743350937921474988213416244817130687996120537019100 182:79:74700107563845992389546775815961792298121475137341600 182:80:96176388488451715201541473863050807583831399239327310 182:81:121111007726198456179718893012730646587046947190264020 182:82:149173314394463952123800099930314576893801727636788610 182:83:179726884812607171233494096301583827582893647755167000 182:84:211820971386287023239475184926866653936981799140018250 182:85:244217119951248567970218448503916848068520191949668100 182:86:275454193433385012710595226800929468170307658361834950 182:87:303949454823045531266863698538956654532753278192369600 182:88:328127252365787789435818765468191842961495016230399000 182:89:346561367667236541651314201730449811667196983434354000 182:90:358113413256144426373024675121464805389436882882165800 182:91:362048725489728431058442528694228154899210914562189600 182:92:358113413256144426373024675121464805389436882882165800 182:93:346561367667236541651314201730449811667196983434354000 182:94:328127252365787789435818765468191842961495016230399000 182:95:303949454823045531266863698538956654532753278192369600 182:96:275454193433385012710595226800929468170307658361834950 182:97:244217119951248567970218448503916848068520191949668100 182:98:211820971386287023239475184926866653936981799140018250 182:99:179726884812607171233494096301583827582893647755167000 182:100:149173314394463952123800099930314576893801727636788610 182:101:121111007726198456179718893012730646587046947190264020 182:102:96176388488451715201541473863050807583831399239327310 182:103:74700107563845992389546775815961792298121475137341600 182:104:56743350937921474988213416244817130687996120537019100 182:105:42152203553884524276958537781864154225368546684642760 182:106:30619996921218003484205730275505093163711114101108420 182:107:21748782859930544530837714962041000751794810015740560 182:108:15103321430507322590859524279195139410968618066486500 182:109:10253631062913228180950502721655415746896126026789000 182:110:6804682432660596883721697260734957722940156363232700 182:111:4413848064428495275927587412368621225690912235610400 182:112:2798064397985921112418381306055108098429060435074450 182:113:1733314228840836087338820278087235105221541862435500 182:114:1049111243772085000231391220947537037370933232526750 182:115:620344039795667652310735678473326248184551824450600 182:116:358302160916463212972580090152697057141077346880950 182:117:202119167696466427830686204701521416848812862343100 182:118:111336829663307778042327146657617729620108780104250 182:119:59878631079426031888310398202416257946949259888000 182:120:31436281316698666741362959056268535422148361441200 182:121:16107846625085267255904987285030158646059490986400 182:122:8053923312542633627952493642515079323029745493200 182:123:3928743079289089574610972508543941133185241704000 182:124:1869321303855292620177801435516875216596203714000 182:125:867365084988855775762499866079830100500638523296 182:126:392379443209244279511607082274208854988384093872 182:127:173017707241871493327952729191777132908263852416 182:128:74343546080491657289354688324591736796519624085 182:129:31120554173229065842055450926573285170636121710 182:130:12687610547547234535607222300833723954182418851 182:131:5036303423453864090470042440025600348225082292 182:132:1945844504516265671317970942737163770905145431 182:133:731520490419648748615778549901189387558325350 182:134:267496298735543199120695141381778208883268225 182:135:95109795105970915242913828046854474269606480 182:136:32868826249857595708948161163251178607878710 182:137:11036248229879192719792813237296016174908180 182:138:3598776596699736756454178229553048752687450 182:139:1139181080969700843769667928779382338980200 182:140:349891332012122402014969435267953146972490 182:141:104222949961057736770416427526624341651380 182:142:30092541890164557799908968511208436673990 182:143:8417494235011065118855655527610751517200 182:144:2279738021982163469690073372061245202575 182:145:597448585071187667918777849229843570330 182:146:151408203065985915842430002887015151385 182:147:37079559934527163063452245604983302380 182:148:8768814849381423697438031055232537725 182:149:2000937616637371850422101046160444850 182:150:440206275660221807092862230155297867 182:151:93288747159782104814381399768010144 182:152:19025994486534508218722522321107332 182:153:3730587154222452591906376925707320 182:154:702513165405526786787564486009820 182:155:126905604073256451806785842634032 182:156:21964431474217462812712934302044 182:157:3637421772800344160067110139192 182:158:575541419746889898744795908100 182:159:86874176565568286602988061600 182:160:12488162881300441199179533855 182:161:1706457039680805629701551210 182:162:221207394032697026072423305 182:163:27142011537754236327904700 182:164:3144501336691039574574325 182:165:343036509457204317226290 182:166:35130244944412490318355 182:167:3365771970722154761040 182:168:300515354528763817950 182:169:24894763097057357700 182:170:1903717178010268530 182:171:133594187930545160 182:172:8543814344395330 182:173:493862100832100 182:174:25544591422350 182:175:1167752750736 182:176:46444711677 182:177:1574397006 182:178:44224635 182:179:988260 182:180:16471 182:181:182 182:182:1 # binomial(183, k) for 0 <= k <= 183 183:0:1 183:1:183 183:2:16653 183:3:1004731 183:4:45212895 183:5:1618621641 183:6:48019108683 183:7:1214197462413 183:8:26712344173086 183:9:519406692254450 183:10:9037676445227430 183:11:142138002274940490 183:12:2037311365940813690 183:13:26798480275067626230 183:14:325410117625821175650 183:15:3666287325250918578990 183:16:38496016915134645079395 183:17:378166754401616807544645 183:18:3487537846148243891800615 183:19:30286512874445275902479025 183:20:248349405570451262400328005 183:21:1927664433713502655773974515 183:22:14194619920981246828881085065 183:23:99362339446868727802167595455 183:24:662415596312458185347783969700 183:25:4212963192547234058811906047292 183:26:25601853247017806972780044441236 183:27:148870035547473914619498776936076 183:28:829418769478783238594350328643852 183:29:4433100319627979378693941411717140 183:30:22756581640756960810628899246814652 183:31:112314741646316613033103922089117476 183:32:533495022820003911907243629923308011 183:33:2441143892297593657514963276315742717 183:34:10769752466018795547860132101392982575 183:35:45848374783908586760890276660215840105 183:36:188487763000513078905882248491998453765 183:37:748856788137173583761207852116858721715 183:38:2877186607053351137608851221291088772905 183:39:10697232256993228588545728899671996719775 183:40:38510036125175622918764624038819188191190 183:41:134315491851222294570325396037832778325370 183:42:454114281973180138785385862794577488623870 183:43:1489072412981823245784637364047335485952690 183:44:4737957677669437600223846158332431091667650 183:45:14635024826578929476246991466849064927595630 183:46:43905074479736788428740974400547194782786890 183:47:127978621355828510951861989210105652877485190 183:48:362606093841514114363608969428632683152874705 183:49:999016789155191947736473691282967596441593575 183:50:2677364994935914419933749492638353158463470781 183:51:6982147927970129761788013382762764119130227723 183:52:17723913971001098626077264740859324302407501143 183:53:43808164720776300377662673227407009124818540561 183:54:105464100253720723131410139251165021967155745795 183:55:247361253322363150617307417516368869704783476501 183:56:565397150451115772839559811465985987896647946288 183:57:1259744528198100055274106948354038955489022617168 183:58:2736686388844148395940301301596705317096842237296 183:59:5798064383144382194788773944060816349781445418000 183:60:11982666391831723202563466151059020456214987197200 183:61:24161769937627900883857480927545237969089236479600 183:62:47544127941783933997267946341298694068207852427600 183:63:91314912396124698629673357258684793369097621329200 183:64:171215460742733809930637544860033987567058039992250 183:65:313455997359774205873013351359139146468921642447350 183:66:560421328612929640803266294854218473989890209224050 183:67:978646200712130865283315768626023305325629171331550 183:68:1669455283567752652542126899420863285555485056977350 183:69:2782425472612921087570211499034772142592475094962250 183:70:4531378626826757199757201584142343203650602297509950 183:71:7211912462414416388345968718423729324119972670684850 183:72:11218530497089092159649284673103578948631068598843100 183:73:17058313495573825064672199982390373469836282390021700 183:74:25356952493420550771810027000850555157864744093275500 183:75:36852104290437867121697239241236140162763428082227060 183:76:52368779781148548015043445237546093915505924116848980 183:77:72772200475102527761164268057369247389079660785751180 183:78:98895554491805999265171954026681284913364667221661860 183:79:131443458501767467377760192060778922986117595674360700 183:80:170876496052297707591088249679012599881952874376668910 183:81:217287396214650171381260366875781454170878346429591330 183:82:270284322120662408303518992943045223480848674827052630 183:83:328900199207071123357294196231898404476695375391955610 183:84:391547856198894194472969281228450481519875446895185250 183:85:456038091337535591209693633430783502005501991089686350 183:86:519671313384633580680813675304846316238827850311503050 183:87:579403648256430543977458925339886122703060936554204550 183:88:632076707188833320702682464007148497494248294422768600 183:89:674688620033024331087132967198641654628691999664753000 183:90:704674780923380968024338876851914617056633866316519800 183:91:720162138745872857431467203815692960288647797444355400 183:92:720162138745872857431467203815692960288647797444355400 183:93:704674780923380968024338876851914617056633866316519800 183:94:674688620033024331087132967198641654628691999664753000 183:95:632076707188833320702682464007148497494248294422768600 183:96:579403648256430543977458925339886122703060936554204550 183:97:519671313384633580680813675304846316238827850311503050 183:98:456038091337535591209693633430783502005501991089686350 183:99:391547856198894194472969281228450481519875446895185250 183:100:328900199207071123357294196231898404476695375391955610 183:101:270284322120662408303518992943045223480848674827052630 183:102:217287396214650171381260366875781454170878346429591330 183:103:170876496052297707591088249679012599881952874376668910 183:104:131443458501767467377760192060778922986117595674360700 183:105:98895554491805999265171954026681284913364667221661860 183:106:72772200475102527761164268057369247389079660785751180 183:107:52368779781148548015043445237546093915505924116848980 183:108:36852104290437867121697239241236140162763428082227060 183:109:25356952493420550771810027000850555157864744093275500 183:110:17058313495573825064672199982390373469836282390021700 183:111:11218530497089092159649284673103578948631068598843100 183:112:7211912462414416388345968718423729324119972670684850 183:113:4531378626826757199757201584142343203650602297509950 183:114:2782425472612921087570211499034772142592475094962250 183:115:1669455283567752652542126899420863285555485056977350 183:116:978646200712130865283315768626023305325629171331550 183:117:560421328612929640803266294854218473989890209224050 183:118:313455997359774205873013351359139146468921642447350 183:119:171215460742733809930637544860033987567058039992250 183:120:91314912396124698629673357258684793369097621329200 183:121:47544127941783933997267946341298694068207852427600 183:122:24161769937627900883857480927545237969089236479600 183:123:11982666391831723202563466151059020456214987197200 183:124:5798064383144382194788773944060816349781445418000 183:125:2736686388844148395940301301596705317096842237296 183:126:1259744528198100055274106948354038955489022617168 183:127:565397150451115772839559811465985987896647946288 183:128:247361253322363150617307417516368869704783476501 183:129:105464100253720723131410139251165021967155745795 183:130:43808164720776300377662673227407009124818540561 183:131:17723913971001098626077264740859324302407501143 183:132:6982147927970129761788013382762764119130227723 183:133:2677364994935914419933749492638353158463470781 183:134:999016789155191947736473691282967596441593575 183:135:362606093841514114363608969428632683152874705 183:136:127978621355828510951861989210105652877485190 183:137:43905074479736788428740974400547194782786890 183:138:14635024826578929476246991466849064927595630 183:139:4737957677669437600223846158332431091667650 183:140:1489072412981823245784637364047335485952690 183:141:454114281973180138785385862794577488623870 183:142:134315491851222294570325396037832778325370 183:143:38510036125175622918764624038819188191190 183:144:10697232256993228588545728899671996719775 183:145:2877186607053351137608851221291088772905 183:146:748856788137173583761207852116858721715 183:147:188487763000513078905882248491998453765 183:148:45848374783908586760890276660215840105 183:149:10769752466018795547860132101392982575 183:150:2441143892297593657514963276315742717 183:151:533495022820003911907243629923308011 183:152:112314741646316613033103922089117476 183:153:22756581640756960810628899246814652 183:154:4433100319627979378693941411717140 183:155:829418769478783238594350328643852 183:156:148870035547473914619498776936076 183:157:25601853247017806972780044441236 183:158:4212963192547234058811906047292 183:159:662415596312458185347783969700 183:160:99362339446868727802167595455 183:161:14194619920981246828881085065 183:162:1927664433713502655773974515 183:163:248349405570451262400328005 183:164:30286512874445275902479025 183:165:3487537846148243891800615 183:166:378166754401616807544645 183:167:38496016915134645079395 183:168:3666287325250918578990 183:169:325410117625821175650 183:170:26798480275067626230 183:171:2037311365940813690 183:172:142138002274940490 183:173:9037676445227430 183:174:519406692254450 183:175:26712344173086 183:176:1214197462413 183:177:48019108683 183:178:1618621641 183:179:45212895 183:180:1004731 183:181:16653 183:182:183 183:183:1 # binomial(184, k) for 0 <= k <= 184 184:0:1 184:1:184 184:2:16836 184:3:1021384 184:4:46217626 184:5:1663834536 184:6:49637730324 184:7:1262216571096 184:8:27926541635499 184:9:546119036427536 184:10:9557083137481880 184:11:151175678720167920 184:12:2179449368215754180 184:13:28835791641008439920 184:14:352208597900888801880 184:15:3991697442876739754640 184:16:42162304240385563658385 184:17:416662771316751452624040 184:18:3865704600549860699345260 184:19:33774050720593519794279640 184:20:278635918444896538302807030 184:21:2176013839283953918174302520 184:22:16122284354694749484655059580 184:23:113556959367849974631048680520 184:24:761777935759326913149951565155 184:25:4875378788859692244159690016992 184:26:29814816439565041031591950488528 184:27:174471888794491721592278821377312 184:28:978288805026257153213849105579928 184:29:5262519089106762617288291740360992 184:30:27189681960384940189322840658531792 184:31:135071323287073573843732821335932128 184:32:645809764466320524940347552012425487 184:33:2974638915117597569422206906239050728 184:34:13210896358316389205375095377708725292 184:35:56618127249927382308750408761608822680 184:36:234336137784421665666772525152214293870 184:37:937344551137686662667090100608857175480 184:38:3626043395190524721370059073407947494620 184:39:13574418864046579726154580120963085492680 184:40:49207268382168851507310352938491184910965 184:41:172825527976397917489090020076651966516560 184:42:588429773824402433355711258832410266949240 184:43:1943186694955003384570023226841912974576560 184:44:6227030090651260846008483522379766577620340 184:45:19372982504248367076470837625181496019263280 184:46:58540099306315717904987965867396259710382520 184:47:171883695835565299380602963610652847660272080 184:48:490584715197342625315470958638738336030359895 184:49:1361622882996706062100082660711600279594468280 184:50:3676381784091106367670223183921320754905064356 184:51:9659512922906044181721762875401117277593698504 184:52:24706061898971228387865278123622088421537728866 184:53:61532078691777399003739937968266333427226041704 184:54:149272264974497023509072812478572031091974286356 184:55:352825353576083873748717556767533891671939222296 184:56:812758403773478923456867228982354857601431422789 184:57:1825141678649215828113666759820024943385670563456 184:58:3996430917042248451214408249950744272585864854464 184:59:8534750771988530590729075245657521666878287655296 184:60:17780730774976105397352240095119836805996432615200 184:61:36144436329459624086420947078604258425304223676800 184:62:71705897879411834881125427268843932037297088907200 184:63:138859040337908632626941303599983487437305473756800 184:64:262530373138858508560310902118718780936155661321450 184:65:484671458102508015803650896219173134035979682439600 184:66:873877325972703846676279646213357620458811851671400 184:67:1539067529325060506086582063480241779315519380555600 184:68:2648101484279883517825442668046886590881114228308900 184:69:4451880756180673740112338398455635428147960151939600 184:70:7313804099439678287327413083177115346243077392472200 184:71:11743291089241173588103170302566072527770574968194800 184:72:18430442959503508547995253391527308272751041269527950 184:73:28276843992662917224321484655493952418467350988864800 184:74:42415265988994375836482226983240928627701026483297200 184:75:62209056783858417893507266242086695320628172175502560 184:76:89220884071586415136740684478782234078269352199076040 184:77:125140980256251075776207713294915341304585584902600160 184:78:171667754966908527026336222084050532302444328007413040 184:79:230339012993573466642932146087460207899482262896022560 184:80:302319954554065174968848441739791522868070470051029610 184:81:388163892266947878972348616554794054052831220806260240 184:82:487571718335312579684779359818826677651727021256643960 184:83:599184521327733531660813189174943627957544050219008240 184:84:720448055405965317830263477460348885996570822287140860 184:85:847585947536429785682662914659233983525377437984871600 184:86:975709404722169171890507308735629818244329841401189400 184:87:1099074961641064124658272600644732438941888786865707600 184:88:1211480355445263864680141389347034620197309230976973150 184:89:1306765327221857651789815431205790152122940294087521600 184:90:1379363400956405299111471844050556271685325865981272800 184:91:1424836919669253825455806080667607577345281663760875200 184:92:1440324277491745714862934407631385920577295594888710800 184:93:1424836919669253825455806080667607577345281663760875200 184:94:1379363400956405299111471844050556271685325865981272800 184:95:1306765327221857651789815431205790152122940294087521600 184:96:1211480355445263864680141389347034620197309230976973150 184:97:1099074961641064124658272600644732438941888786865707600 184:98:975709404722169171890507308735629818244329841401189400 184:99:847585947536429785682662914659233983525377437984871600 184:100:720448055405965317830263477460348885996570822287140860 184:101:599184521327733531660813189174943627957544050219008240 184:102:487571718335312579684779359818826677651727021256643960 184:103:388163892266947878972348616554794054052831220806260240 184:104:302319954554065174968848441739791522868070470051029610 184:105:230339012993573466642932146087460207899482262896022560 184:106:171667754966908527026336222084050532302444328007413040 184:107:125140980256251075776207713294915341304585584902600160 184:108:89220884071586415136740684478782234078269352199076040 184:109:62209056783858417893507266242086695320628172175502560 184:110:42415265988994375836482226983240928627701026483297200 184:111:28276843992662917224321484655493952418467350988864800 184:112:18430442959503508547995253391527308272751041269527950 184:113:11743291089241173588103170302566072527770574968194800 184:114:7313804099439678287327413083177115346243077392472200 184:115:4451880756180673740112338398455635428147960151939600 184:116:2648101484279883517825442668046886590881114228308900 184:117:1539067529325060506086582063480241779315519380555600 184:118:873877325972703846676279646213357620458811851671400 184:119:484671458102508015803650896219173134035979682439600 184:120:262530373138858508560310902118718780936155661321450 184:121:138859040337908632626941303599983487437305473756800 184:122:71705897879411834881125427268843932037297088907200 184:123:36144436329459624086420947078604258425304223676800 184:124:17780730774976105397352240095119836805996432615200 184:125:8534750771988530590729075245657521666878287655296 184:126:3996430917042248451214408249950744272585864854464 184:127:1825141678649215828113666759820024943385670563456 184:128:812758403773478923456867228982354857601431422789 184:129:352825353576083873748717556767533891671939222296 184:130:149272264974497023509072812478572031091974286356 184:131:61532078691777399003739937968266333427226041704 184:132:24706061898971228387865278123622088421537728866 184:133:9659512922906044181721762875401117277593698504 184:134:3676381784091106367670223183921320754905064356 184:135:1361622882996706062100082660711600279594468280 184:136:490584715197342625315470958638738336030359895 184:137:171883695835565299380602963610652847660272080 184:138:58540099306315717904987965867396259710382520 184:139:19372982504248367076470837625181496019263280 184:140:6227030090651260846008483522379766577620340 184:141:1943186694955003384570023226841912974576560 184:142:588429773824402433355711258832410266949240 184:143:172825527976397917489090020076651966516560 184:144:49207268382168851507310352938491184910965 184:145:13574418864046579726154580120963085492680 184:146:3626043395190524721370059073407947494620 184:147:937344551137686662667090100608857175480 184:148:234336137784421665666772525152214293870 184:149:56618127249927382308750408761608822680 184:150:13210896358316389205375095377708725292 184:151:2974638915117597569422206906239050728 184:152:645809764466320524940347552012425487 184:153:135071323287073573843732821335932128 184:154:27189681960384940189322840658531792 184:155:5262519089106762617288291740360992 184:156:978288805026257153213849105579928 184:157:174471888794491721592278821377312 184:158:29814816439565041031591950488528 184:159:4875378788859692244159690016992 184:160:761777935759326913149951565155 184:161:113556959367849974631048680520 184:162:16122284354694749484655059580 184:163:2176013839283953918174302520 184:164:278635918444896538302807030 184:165:33774050720593519794279640 184:166:3865704600549860699345260 184:167:416662771316751452624040 184:168:42162304240385563658385 184:169:3991697442876739754640 184:170:352208597900888801880 184:171:28835791641008439920 184:172:2179449368215754180 184:173:151175678720167920 184:174:9557083137481880 184:175:546119036427536 184:176:27926541635499 184:177:1262216571096 184:178:49637730324 184:179:1663834536 184:180:46217626 184:181:1021384 184:182:16836 184:183:184 184:184:1 # binomial(185, k) for 0 <= k <= 185 185:0:1 185:1:185 185:2:17020 185:3:1038220 185:4:47239010 185:5:1710052162 185:6:51301564860 185:7:1311854301420 185:8:29188758206595 185:9:574045578063035 185:10:10103202173909416 185:11:160732761857649800 185:12:2330625046935922100 185:13:31015241009224194100 185:14:381044389541897241800 185:15:4343906040777628556520 185:16:46154001683262303413025 185:17:458825075557137016282425 185:18:4282367371866612151969300 185:19:37639755321143380493624900 185:20:312409969165490058097086670 185:21:2454649757728850456477109550 185:22:18298298193978703402829362100 185:23:129679243722544724115703740100 185:24:875334895127176887781000245675 185:25:5637156724619019157309641582147 185:26:34690195228424733275751640505520 185:27:204286705234056762623870771865840 185:28:1152760693820748874806127926957240 185:29:6240807894133019770502140845940920 185:30:32452201049491702806611132398892784 185:31:162261005247458514033055661994463920 185:32:780881087753394098784080373348357615 185:33:3620448679583918094362554458251476215 185:34:16185535273433986774797302283947776020 185:35:69829023608243771514125504139317547972 185:36:290954265034349047975522933913823116550 185:37:1171680688922108328333862625761071469350 185:38:4563387946328211384037149174016804670100 185:39:17200462259237104447524639194371032987300 185:40:62781687246215431233464933059454270403645 185:41:222032796358566768996400373015143151427525 185:42:761255301800800350844801278909062233465800 185:43:2531616468779405817925734485674323241525800 185:44:8170216785606264230578506749221679552196900 185:45:25600012594899627922479321147561262596883620 185:46:77913081810564084981458803492577755729645800 185:47:230423795141881017285590929478049107370654600 185:48:662468411032907924696073922249391183690631975 185:49:1852207598194048687415553619350338615624828175 185:50:5038004667087812429770305844632921034499532636 185:51:13335894706997150549391986059322438032498762860 185:52:34365574821877272569587040999023205699131427370 185:53:86238140590748627391605216091888421848763770570 185:54:210804343666274422512812750446838364519200328060 185:55:502097618550580897257790369246105922763913508652 185:56:1165583757349562797205584785749888749273370645085 185:57:2637900082422694751570533988802379800987101986245 185:58:5821572595691464279328075009770769215971535417920 185:59:12531181689030779041943483495608265939464152509760 185:60:26315481546964635988081315340777358472874720270496 185:61:53925167104435729483773187173724095231300656292000 185:62:107850334208871458967546374347448190462601312584000 185:63:210564938217320467508066730868827419474602562664000 185:64:401389413476767141187252205718702268373461135078250 185:65:747201831241366524363961798337891914972135343761050 185:66:1358548784075211862479930542432530754494791534111000 185:67:2412944855297764352762861709693599399774331232227000 185:68:4187169013604944023912024731527128370196633608864500 185:69:7099982240460557257937781066502522019029074380248500 185:70:11765684855620352027439751481632750774391037544411800 185:71:19057095188680851875430583385743187874013652360667000 185:72:30173734048744682136098423694093380800521616237722750 185:73:46707286952166425772316738047021260691218392258392750 185:74:70692109981657293060803711638734881046168377472162000 185:75:104624322772852793729989493225327623948329198658799760 185:76:151429940855444833030247950720868929398897524374578600 185:77:214361864327837490912948397773697575382854937101676200 185:78:296808735223159602802543935378965873607029912910013200 185:79:402006767960481993669268368171510740201926590903435600 185:80:532658967547638641611780587827251730767552732947052170 185:81:690483846821013053941197058294585576920901690857289850 185:82:875735610602260458657127976373620731704558242062904200 185:83:1086756239663046111345592548993770305609271071475652200 185:84:1319632576733698849491076666635292513954114872506149100 185:85:1568034002942395103512926392119582869521948260272012460 185:86:1823295352258598957573170223394863801769707279386061000 185:87:2074784366363233296548779909380362257186218628266897000 185:88:2310555317086327989338413989991767059139198017842680750 185:89:2518245682667121516469956820552824772320249525064494750 185:90:2686128728178262950901287275256346423808266160068794400 185:91:2804200320625659124567277924718163849030607529742148000 185:92:2865161197160999540318740488298993497922577258649586000 185:93:2865161197160999540318740488298993497922577258649586000 185:94:2804200320625659124567277924718163849030607529742148000 185:95:2686128728178262950901287275256346423808266160068794400 185:96:2518245682667121516469956820552824772320249525064494750 185:97:2310555317086327989338413989991767059139198017842680750 185:98:2074784366363233296548779909380362257186218628266897000 185:99:1823295352258598957573170223394863801769707279386061000 185:100:1568034002942395103512926392119582869521948260272012460 185:101:1319632576733698849491076666635292513954114872506149100 185:102:1086756239663046111345592548993770305609271071475652200 185:103:875735610602260458657127976373620731704558242062904200 185:104:690483846821013053941197058294585576920901690857289850 185:105:532658967547638641611780587827251730767552732947052170 185:106:402006767960481993669268368171510740201926590903435600 185:107:296808735223159602802543935378965873607029912910013200 185:108:214361864327837490912948397773697575382854937101676200 185:109:151429940855444833030247950720868929398897524374578600 185:110:104624322772852793729989493225327623948329198658799760 185:111:70692109981657293060803711638734881046168377472162000 185:112:46707286952166425772316738047021260691218392258392750 185:113:30173734048744682136098423694093380800521616237722750 185:114:19057095188680851875430583385743187874013652360667000 185:115:11765684855620352027439751481632750774391037544411800 185:116:7099982240460557257937781066502522019029074380248500 185:117:4187169013604944023912024731527128370196633608864500 185:118:2412944855297764352762861709693599399774331232227000 185:119:1358548784075211862479930542432530754494791534111000 185:120:747201831241366524363961798337891914972135343761050 185:121:401389413476767141187252205718702268373461135078250 185:122:210564938217320467508066730868827419474602562664000 185:123:107850334208871458967546374347448190462601312584000 185:124:53925167104435729483773187173724095231300656292000 185:125:26315481546964635988081315340777358472874720270496 185:126:12531181689030779041943483495608265939464152509760 185:127:5821572595691464279328075009770769215971535417920 185:128:2637900082422694751570533988802379800987101986245 185:129:1165583757349562797205584785749888749273370645085 185:130:502097618550580897257790369246105922763913508652 185:131:210804343666274422512812750446838364519200328060 185:132:86238140590748627391605216091888421848763770570 185:133:34365574821877272569587040999023205699131427370 185:134:13335894706997150549391986059322438032498762860 185:135:5038004667087812429770305844632921034499532636 185:136:1852207598194048687415553619350338615624828175 185:137:662468411032907924696073922249391183690631975 185:138:230423795141881017285590929478049107370654600 185:139:77913081810564084981458803492577755729645800 185:140:25600012594899627922479321147561262596883620 185:141:8170216785606264230578506749221679552196900 185:142:2531616468779405817925734485674323241525800 185:143:761255301800800350844801278909062233465800 185:144:222032796358566768996400373015143151427525 185:145:62781687246215431233464933059454270403645 185:146:17200462259237104447524639194371032987300 185:147:4563387946328211384037149174016804670100 185:148:1171680688922108328333862625761071469350 185:149:290954265034349047975522933913823116550 185:150:69829023608243771514125504139317547972 185:151:16185535273433986774797302283947776020 185:152:3620448679583918094362554458251476215 185:153:780881087753394098784080373348357615 185:154:162261005247458514033055661994463920 185:155:32452201049491702806611132398892784 185:156:6240807894133019770502140845940920 185:157:1152760693820748874806127926957240 185:158:204286705234056762623870771865840 185:159:34690195228424733275751640505520 185:160:5637156724619019157309641582147 185:161:875334895127176887781000245675 185:162:129679243722544724115703740100 185:163:18298298193978703402829362100 185:164:2454649757728850456477109550 185:165:312409969165490058097086670 185:166:37639755321143380493624900 185:167:4282367371866612151969300 185:168:458825075557137016282425 185:169:46154001683262303413025 185:170:4343906040777628556520 185:171:381044389541897241800 185:172:31015241009224194100 185:173:2330625046935922100 185:174:160732761857649800 185:175:10103202173909416 185:176:574045578063035 185:177:29188758206595 185:178:1311854301420 185:179:51301564860 185:180:1710052162 185:181:47239010 185:182:1038220 185:183:17020 185:184:185 185:185:1 # binomial(186, k) for 0 <= k <= 186 186:0:1 186:1:186 186:2:17205 186:3:1055240 186:4:48277230 186:5:1757291172 186:6:53011617022 186:7:1363155866280 186:8:30500612508015 186:9:603234336269630 186:10:10677247751972451 186:11:170835964031559216 186:12:2491357808793571900 186:13:33345866056160116200 186:14:412059630551121435900 186:15:4724950430319525798320 186:16:50497907724039931969545 186:17:504979077240399319695450 186:18:4741192447423749168251725 186:19:41922122693009992645594200 186:20:350049724486633438590711570 186:21:2767059726894340514574196220 186:22:20752947951707553859306471650 186:23:147977541916523427518533102200 186:24:1005014138849721611896703985775 186:25:6512491619746196045090641827822 186:26:40327351953043752433061282087667 186:27:238976900462481495899622412371360 186:28:1357047399054805637429998698823080 186:29:7393568587953768645308268772898160 186:30:38693008943624722577113273244833704 186:31:194713206296950216839666794393356704 186:32:943142093000852612817136035342821535 186:33:4401329767337312193146634831599833830 186:34:19805983953017904869159856742199252235 186:35:86014558881677758288922806423265323992 186:36:360783288642592819489648438053140664522 186:37:1462634953956457376309385559674894585900 186:38:5735068635250319712371011799777876139450 186:39:21763850205565315831561788368387837657400 186:40:79982149505452535680989572253825303390945 186:41:284814483604782200229865306074597421831170 186:42:983288098159367119841201651924205384893325 186:43:3292871770580206168770535764583385474991600 186:44:10701833254385670048504241234896002793722700 186:45:33770229380505892153057827896782942149080520 186:46:103513094405463712903938124640139018326529420 186:47:308336876952445102267049732970626863100300400 186:48:892892206174788941981664851727440291061286575 186:49:2514676009226956612111627541599729799315460150 186:50:6890212265281861117185859463983259650124360811 186:51:18373899374084962979162291903955359066998295496 186:52:47701469528874423118979027058345643731630190230 186:53:120603715412625899961192257090911627547895197940 186:54:297042484257023049904417966538726786367964098630 186:55:712901962216855319770603119692944287283113836712 186:56:1667681375900143694463375154995994672037284153737 186:57:3803483839772257548776118774552268550260472631330 186:58:8459472678114159030898608998573149016958637404165 186:59:18352754284722243321271558505379035155435687927680 186:60:38846663235995415030024798836385624412338872780256 186:61:80240648651400365471854502514501453704175376562496 186:62:161775501313307188451319561521172285693901968876000 186:63:318415272426191926475613105216275609937203875248000 186:64:611954351694087608695318936587529687848063697742250 186:65:1148591244718133665551214004056594183345596478839300 186:66:2105750615316578386843892340770422669466926877872050 186:67:3771493639372976215242792252126130154269122766338000 186:68:6600113868902708376674886441220727769970964841091500 186:69:11287151254065501281849805798029650389225707989113000 186:70:18865667096080909285377532548135272793420111924660300 186:71:30822780044301203902870334867375938648404689905078800 186:72:49230829237425534011529007079836568674535268598389750 186:73:76881021000911107908415161741114641491740008496115500 186:74:117399396933823718833120449685756141737386769730554750 186:75:175316432754510086790793204864062504994497576130961760 186:76:256054263628297626760237443946196553347226723033378360 186:77:365791805183282323943196348494566504781752461476254800 186:78:511170599550997093715492333152663448989884850011689400 186:79:698815503183641596471812303550476613808956503813448800 186:80:934665735508120635281048955998762470969479323850487770 186:81:1223142814368651695552977646121837307688454423804342020 186:82:1566219457423273512598325034668206308625459932920194050 186:83:1962491850265306570002720525367391037313829313538556400 186:84:2406388816396744960836669215629062819563385943981801300 186:85:2887666579676093953004003058754875383476063132778161560 186:86:3391329355200994061086096615514446671291655539658073460 186:87:3898079718621832254121950132775226058955925907652958000 186:88:4385339683449561285887193899372129316325416646109577750 186:89:4828800999753449505808370810544591831459447542907175500 186:90:5204374410845384467371244095809171196128515685133289150 186:91:5490329048803922075468565199974510272838873689810942400 186:92:5669361517786658664886018413017157346953184788391734000 186:93:5730322394321999080637480976597986995845154517299172000 186:94:5669361517786658664886018413017157346953184788391734000 186:95:5490329048803922075468565199974510272838873689810942400 186:96:5204374410845384467371244095809171196128515685133289150 186:97:4828800999753449505808370810544591831459447542907175500 186:98:4385339683449561285887193899372129316325416646109577750 186:99:3898079718621832254121950132775226058955925907652958000 186:100:3391329355200994061086096615514446671291655539658073460 186:101:2887666579676093953004003058754875383476063132778161560 186:102:2406388816396744960836669215629062819563385943981801300 186:103:1962491850265306570002720525367391037313829313538556400 186:104:1566219457423273512598325034668206308625459932920194050 186:105:1223142814368651695552977646121837307688454423804342020 186:106:934665735508120635281048955998762470969479323850487770 186:107:698815503183641596471812303550476613808956503813448800 186:108:511170599550997093715492333152663448989884850011689400 186:109:365791805183282323943196348494566504781752461476254800 186:110:256054263628297626760237443946196553347226723033378360 186:111:175316432754510086790793204864062504994497576130961760 186:112:117399396933823718833120449685756141737386769730554750 186:113:76881021000911107908415161741114641491740008496115500 186:114:49230829237425534011529007079836568674535268598389750 186:115:30822780044301203902870334867375938648404689905078800 186:116:18865667096080909285377532548135272793420111924660300 186:117:11287151254065501281849805798029650389225707989113000 186:118:6600113868902708376674886441220727769970964841091500 186:119:3771493639372976215242792252126130154269122766338000 186:120:2105750615316578386843892340770422669466926877872050 186:121:1148591244718133665551214004056594183345596478839300 186:122:611954351694087608695318936587529687848063697742250 186:123:318415272426191926475613105216275609937203875248000 186:124:161775501313307188451319561521172285693901968876000 186:125:80240648651400365471854502514501453704175376562496 186:126:38846663235995415030024798836385624412338872780256 186:127:18352754284722243321271558505379035155435687927680 186:128:8459472678114159030898608998573149016958637404165 186:129:3803483839772257548776118774552268550260472631330 186:130:1667681375900143694463375154995994672037284153737 186:131:712901962216855319770603119692944287283113836712 186:132:297042484257023049904417966538726786367964098630 186:133:120603715412625899961192257090911627547895197940 186:134:47701469528874423118979027058345643731630190230 186:135:18373899374084962979162291903955359066998295496 186:136:6890212265281861117185859463983259650124360811 186:137:2514676009226956612111627541599729799315460150 186:138:892892206174788941981664851727440291061286575 186:139:308336876952445102267049732970626863100300400 186:140:103513094405463712903938124640139018326529420 186:141:33770229380505892153057827896782942149080520 186:142:10701833254385670048504241234896002793722700 186:143:3292871770580206168770535764583385474991600 186:144:983288098159367119841201651924205384893325 186:145:284814483604782200229865306074597421831170 186:146:79982149505452535680989572253825303390945 186:147:21763850205565315831561788368387837657400 186:148:5735068635250319712371011799777876139450 186:149:1462634953956457376309385559674894585900 186:150:360783288642592819489648438053140664522 186:151:86014558881677758288922806423265323992 186:152:19805983953017904869159856742199252235 186:153:4401329767337312193146634831599833830 186:154:943142093000852612817136035342821535 186:155:194713206296950216839666794393356704 186:156:38693008943624722577113273244833704 186:157:7393568587953768645308268772898160 186:158:1357047399054805637429998698823080 186:159:238976900462481495899622412371360 186:160:40327351953043752433061282087667 186:161:6512491619746196045090641827822 186:162:1005014138849721611896703985775 186:163:147977541916523427518533102200 186:164:20752947951707553859306471650 186:165:2767059726894340514574196220 186:166:350049724486633438590711570 186:167:41922122693009992645594200 186:168:4741192447423749168251725 186:169:504979077240399319695450 186:170:50497907724039931969545 186:171:4724950430319525798320 186:172:412059630551121435900 186:173:33345866056160116200 186:174:2491357808793571900 186:175:170835964031559216 186:176:10677247751972451 186:177:603234336269630 186:178:30500612508015 186:179:1363155866280 186:180:53011617022 186:181:1757291172 186:182:48277230 186:183:1055240 186:184:17205 186:185:186 186:186:1 # binomial(187, k) for 0 <= k <= 187 187:0:1 187:1:187 187:2:17391 187:3:1072445 187:4:49332470 187:5:1805568402 187:6:54768908194 187:7:1416167483302 187:8:31863768374295 187:9:633734948777645 187:10:11280482088242081 187:11:181513211783531667 187:12:2662193772825131116 187:13:35837223864953688100 187:14:445405496607281552100 187:15:5137010060870647234220 187:16:55222858154359457767865 187:17:555476984964439251664995 187:18:5246171524664148487947175 187:19:46663315140433741813845925 187:20:391971847179643431236305770 187:21:3117109451380973953164907790 187:22:23520007678601894373880667870 187:23:168730489868230981377839573850 187:24:1152991680766245039415237087975 187:25:7517505758595917656987345813597 187:26:46839843572789948478151923915489 187:27:279304252415525248332683694459027 187:28:1596024299517287133329621111194440 187:29:8750615987008574282738267471721240 187:30:46086577531578491222421542017731864 187:31:233406215240574939416780067638190408 187:32:1137855299297802829656802829736178239 187:33:5344471860338164805963770866942655365 187:34:24207313720355217062306491573799086065 187:35:105820542834695663158082663165464576227 187:36:446797847524270577778571244476405988514 187:37:1823418242599050195799033997728035250422 187:38:7197703589206777088680397359452770725350 187:39:27498918840815635543932800168165713796850 187:40:101745999711017851512551360622213141048345 187:41:364796633110234735910854878328422725222115 187:42:1268102581764149320071066957998802806724495 187:43:4276159868739573288611737416507590859884925 187:44:13994705024965876217274776999479388268714300 187:45:44472062634891562201562069131678944942803220 187:46:137283323785969605056995952536921960475609940 187:47:411849971357908815170987857610765881426829820 187:48:1201229083127234044248714584698067154161586975 187:49:3407568215401745554093292393327170090376746725 187:50:9404888274508817729297487005582989449439820961 187:51:25264111639366824096348151367938618717122656307 187:52:66075368902959386098141318962301002798628485726 187:53:168305184941500323080171284149257271279525388170 187:54:417646199669648949865610223629638413915859296570 187:55:1009944446473878369675021086231671073651077935342 187:56:2380583338116999014233978274688938959320397990449 187:57:5471165215672401243239493929548263222297756785067 187:58:12262956517886416579674727773125417567219110035495 187:59:26812226962836402352170167503952184172394325331845 187:60:57199417520717658351296357341764659567774560707936 187:61:119087311887395780501879301350887078116514249342752 187:62:242016149964707553923174064035673739398077345438496 187:63:480190773739499114926932666737447895631105844124000 187:64:930369624120279535170932041803805297785267572990250 187:65:1760545596412221274246532940644123871193660176581550 187:66:3254341860034712052395106344827016852812523356711350 187:67:5877244254689554602086684592896552823736049644210050 187:68:10371607508275684591917678693346857924240087607429500 187:69:17887265122968209658524692239250378159196672830204500 187:70:30152818350146410567227338346164923182645819913773300 187:71:49688447140382113188247867415511211441824801829739100 187:72:80053609281726737914399341947212507322939958503468550 187:73:126111850238336641919944168820951210166275277094505250 187:74:194280417934734826741535611426870783229126778226670250 187:75:292715829688333805623913654549818646731884345861516510 187:76:431370696382807713551030648810259058341724299164340120 187:77:621846068811579950703433792440763058128979184509633160 187:78:876962404734279417658688681647229953771637311487944200 187:79:1209986102734638690187304636703140062798841353825138200 187:80:1633481238691762231752861259549239084778435827663936570 187:81:2157808549876772330834026602120599778657933747654829790 187:82:2789362271791925208151302680790043616313914356724536070 187:83:3528711307688580082601045560035597345939289246458750450 187:84:4368880666662051530839389740996453856877215257520357700 187:85:5294055396072838913840672274383938203039449076759962860 187:86:6278995934877088014090099674269322054767718672436235020 187:87:7289409073822826315208046748289672730247581447311031460 187:88:8283419402071393540009144032147355375281342553762535750 187:89:9214140683203010791695564709916721147784864189016753250 187:90:10033175410598833973179614906353763027587963228040464650 187:91:10694703459649306542839809295783681468967389374944231550 187:92:11159690566590580740354583612991667619792058478202676400 187:93:11399683912108657745523499389615144342798339305690906000 187:94:11399683912108657745523499389615144342798339305690906000 187:95:11159690566590580740354583612991667619792058478202676400 187:96:10694703459649306542839809295783681468967389374944231550 187:97:10033175410598833973179614906353763027587963228040464650 187:98:9214140683203010791695564709916721147784864189016753250 187:99:8283419402071393540009144032147355375281342553762535750 187:100:7289409073822826315208046748289672730247581447311031460 187:101:6278995934877088014090099674269322054767718672436235020 187:102:5294055396072838913840672274383938203039449076759962860 187:103:4368880666662051530839389740996453856877215257520357700 187:104:3528711307688580082601045560035597345939289246458750450 187:105:2789362271791925208151302680790043616313914356724536070 187:106:2157808549876772330834026602120599778657933747654829790 187:107:1633481238691762231752861259549239084778435827663936570 187:108:1209986102734638690187304636703140062798841353825138200 187:109:876962404734279417658688681647229953771637311487944200 187:110:621846068811579950703433792440763058128979184509633160 187:111:431370696382807713551030648810259058341724299164340120 187:112:292715829688333805623913654549818646731884345861516510 187:113:194280417934734826741535611426870783229126778226670250 187:114:126111850238336641919944168820951210166275277094505250 187:115:80053609281726737914399341947212507322939958503468550 187:116:49688447140382113188247867415511211441824801829739100 187:117:30152818350146410567227338346164923182645819913773300 187:118:17887265122968209658524692239250378159196672830204500 187:119:10371607508275684591917678693346857924240087607429500 187:120:5877244254689554602086684592896552823736049644210050 187:121:3254341860034712052395106344827016852812523356711350 187:122:1760545596412221274246532940644123871193660176581550 187:123:930369624120279535170932041803805297785267572990250 187:124:480190773739499114926932666737447895631105844124000 187:125:242016149964707553923174064035673739398077345438496 187:126:119087311887395780501879301350887078116514249342752 187:127:57199417520717658351296357341764659567774560707936 187:128:26812226962836402352170167503952184172394325331845 187:129:12262956517886416579674727773125417567219110035495 187:130:5471165215672401243239493929548263222297756785067 187:131:2380583338116999014233978274688938959320397990449 187:132:1009944446473878369675021086231671073651077935342 187:133:417646199669648949865610223629638413915859296570 187:134:168305184941500323080171284149257271279525388170 187:135:66075368902959386098141318962301002798628485726 187:136:25264111639366824096348151367938618717122656307 187:137:9404888274508817729297487005582989449439820961 187:138:3407568215401745554093292393327170090376746725 187:139:1201229083127234044248714584698067154161586975 187:140:411849971357908815170987857610765881426829820 187:141:137283323785969605056995952536921960475609940 187:142:44472062634891562201562069131678944942803220 187:143:13994705024965876217274776999479388268714300 187:144:4276159868739573288611737416507590859884925 187:145:1268102581764149320071066957998802806724495 187:146:364796633110234735910854878328422725222115 187:147:101745999711017851512551360622213141048345 187:148:27498918840815635543932800168165713796850 187:149:7197703589206777088680397359452770725350 187:150:1823418242599050195799033997728035250422 187:151:446797847524270577778571244476405988514 187:152:105820542834695663158082663165464576227 187:153:24207313720355217062306491573799086065 187:154:5344471860338164805963770866942655365 187:155:1137855299297802829656802829736178239 187:156:233406215240574939416780067638190408 187:157:46086577531578491222421542017731864 187:158:8750615987008574282738267471721240 187:159:1596024299517287133329621111194440 187:160:279304252415525248332683694459027 187:161:46839843572789948478151923915489 187:162:7517505758595917656987345813597 187:163:1152991680766245039415237087975 187:164:168730489868230981377839573850 187:165:23520007678601894373880667870 187:166:3117109451380973953164907790 187:167:391971847179643431236305770 187:168:46663315140433741813845925 187:169:5246171524664148487947175 187:170:555476984964439251664995 187:171:55222858154359457767865 187:172:5137010060870647234220 187:173:445405496607281552100 187:174:35837223864953688100 187:175:2662193772825131116 187:176:181513211783531667 187:177:11280482088242081 187:178:633734948777645 187:179:31863768374295 187:180:1416167483302 187:181:54768908194 187:182:1805568402 187:183:49332470 187:184:1072445 187:185:17391 187:186:187 187:187:1 # binomial(188, k) for 0 <= k <= 188 188:0:1 188:1:188 188:2:17578 188:3:1089836 188:4:50404915 188:5:1854900872 188:6:56574476596 188:7:1470936391496 188:8:33279935857597 188:9:665598717151940 188:10:11914217037019726 188:11:192793693871773748 188:12:2843706984608662783 188:13:38499417637778819216 188:14:481242720472235240200 188:15:5582415557477928786320 188:16:60359868215230105002085 188:17:610699843118798709432860 188:18:5801648509628587739612170 188:19:51909486665097890301793100 188:20:438635162320077173050151695 188:21:3509081298560617384401213560 188:22:26637117129982868327045575660 188:23:192250497546832875751720241720 188:24:1321722170634476020793076661825 188:25:8670497439362162696402582901572 188:26:54357349331385866135139269729086 188:27:326144095988315196810835618374516 188:28:1875328551932812381662304805653467 188:29:10346640286525861416067888582915680 188:30:54837193518587065505159809489453104 188:31:279492792772153430639201609655922272 188:32:1371261514538377769073582897374368647 188:33:6482327159635967635620573696678833604 188:34:29551785580693381868270262440741741430 188:35:130027856555050880220389154739263662292 188:36:552618390358966240936653907641870564741 188:37:2270216090123320773577605242204441238936 188:38:9021121831805827284479431357180805975772 188:39:34696622430022412632613197527618484522200 188:40:129244918551833487056484160790378854845195 188:41:466542632821252587423406238950635866270460 188:42:1632899214874384055981921836327225531946610 188:43:5544262450503722608682804374506393666609420 188:44:18270864893705449505886514415986979128599225 188:45:58466767659857438418836846131158333211517520 188:46:181755386420861167258558021668600905418413160 188:47:549133295143878420227983810147687841902439760 188:48:1613079054485142859419702442308833035588416795 188:49:4608797298528979598342006978025237244538333700 188:50:12812456489910563283390779398910159539816567686 188:51:34668999913875641825645638373521608166562477268 188:52:91339480542326210194489470330239621515751142033 188:53:234380553844459709178312603111558274078153873896 188:54:585951384611149272945781507778895685195384684740 188:55:1427590646143527319540631309861309487566937231912 188:56:3390527784590877383908999360920610032971475925791 188:57:7851748553789400257473472204237202181618154775516 188:58:17734121733558817822914221702673680789516866820562 188:59:39075183480722818931844895277077601739613435367340 188:60:84011644483554060703466524845716843740168886039781 188:61:176286729408113438853175658692651737684288810050688 188:62:361103461852103334425053365386560817514591594781248 188:63:722206923704206668850106730773121635029183189562496 188:64:1410560397859778650097864708541253193416373417114250 188:65:2690915220532500809417464982447929168978927749571800 188:66:5014887456446933326641639285471140724006183533292900 188:67:9131586114724266654481790937723569676548573000921400 188:68:16248851762965239194004363286243410747976137251639550 188:69:28258872631243894250442370932597236083436760437634000 188:70:48040083473114620225752030585415301341842492743977800 188:71:79841265490528523755475205761676134624470621743512400 188:72:129742056422108851102647209362723718764764760333207650 188:73:206165459520063379834343510768163717489215235597973800 188:74:320392268173071468661479780247821993395402055321175500 188:75:486996247623068632365449265976689429961011124088186760 188:76:724086526071141519174944303360077705073608645025856630 188:77:1053216765194387664254464441251022116470703483673973280 188:78:1498808473545859368362122474087993011900616495997577360 188:79:2086948507468918107845993318350370016570478665313082400 188:80:2843467341426400921940165896252379147577277181489074770 188:81:3791289788568534562586887861669838863436369575318766360 188:82:4947170821668697538985329282910643394971848104379365860 188:83:6318073579480505290752348240825640962253203603183286520 188:84:7897591974350631613440435301032051202816504503979108150 188:85:9662936062734890444680062015380392059916664334280320560 188:86:11573051330949926927930771948653260257807167749196197880 188:87:13568405008699914329298146422558994785015300119747266480 188:88:15572828475894219855217190780437028105528924001073567210 188:89:17497560085274404331704708742064076523066206742779289000 188:90:19247316093801844764875179616270484175372827417057217900 188:91:20727878870248140516019424202137444496555352602984696200 188:92:21854394026239887283194392908775349088759447853146907950 188:93:22559374478699238485878083002606811962590397783893582400 188:94:22799367824217315491046998779230288685596678611381812000 188:95:22559374478699238485878083002606811962590397783893582400 188:96:21854394026239887283194392908775349088759447853146907950 188:97:20727878870248140516019424202137444496555352602984696200 188:98:19247316093801844764875179616270484175372827417057217900 188:99:17497560085274404331704708742064076523066206742779289000 188:100:15572828475894219855217190780437028105528924001073567210 188:101:13568405008699914329298146422558994785015300119747266480 188:102:11573051330949926927930771948653260257807167749196197880 188:103:9662936062734890444680062015380392059916664334280320560 188:104:7897591974350631613440435301032051202816504503979108150 188:105:6318073579480505290752348240825640962253203603183286520 188:106:4947170821668697538985329282910643394971848104379365860 188:107:3791289788568534562586887861669838863436369575318766360 188:108:2843467341426400921940165896252379147577277181489074770 188:109:2086948507468918107845993318350370016570478665313082400 188:110:1498808473545859368362122474087993011900616495997577360 188:111:1053216765194387664254464441251022116470703483673973280 188:112:724086526071141519174944303360077705073608645025856630 188:113:486996247623068632365449265976689429961011124088186760 188:114:320392268173071468661479780247821993395402055321175500 188:115:206165459520063379834343510768163717489215235597973800 188:116:129742056422108851102647209362723718764764760333207650 188:117:79841265490528523755475205761676134624470621743512400 188:118:48040083473114620225752030585415301341842492743977800 188:119:28258872631243894250442370932597236083436760437634000 188:120:16248851762965239194004363286243410747976137251639550 188:121:9131586114724266654481790937723569676548573000921400 188:122:5014887456446933326641639285471140724006183533292900 188:123:2690915220532500809417464982447929168978927749571800 188:124:1410560397859778650097864708541253193416373417114250 188:125:722206923704206668850106730773121635029183189562496 188:126:361103461852103334425053365386560817514591594781248 188:127:176286729408113438853175658692651737684288810050688 188:128:84011644483554060703466524845716843740168886039781 188:129:39075183480722818931844895277077601739613435367340 188:130:17734121733558817822914221702673680789516866820562 188:131:7851748553789400257473472204237202181618154775516 188:132:3390527784590877383908999360920610032971475925791 188:133:1427590646143527319540631309861309487566937231912 188:134:585951384611149272945781507778895685195384684740 188:135:234380553844459709178312603111558274078153873896 188:136:91339480542326210194489470330239621515751142033 188:137:34668999913875641825645638373521608166562477268 188:138:12812456489910563283390779398910159539816567686 188:139:4608797298528979598342006978025237244538333700 188:140:1613079054485142859419702442308833035588416795 188:141:549133295143878420227983810147687841902439760 188:142:181755386420861167258558021668600905418413160 188:143:58466767659857438418836846131158333211517520 188:144:18270864893705449505886514415986979128599225 188:145:5544262450503722608682804374506393666609420 188:146:1632899214874384055981921836327225531946610 188:147:466542632821252587423406238950635866270460 188:148:129244918551833487056484160790378854845195 188:149:34696622430022412632613197527618484522200 188:150:9021121831805827284479431357180805975772 188:151:2270216090123320773577605242204441238936 188:152:552618390358966240936653907641870564741 188:153:130027856555050880220389154739263662292 188:154:29551785580693381868270262440741741430 188:155:6482327159635967635620573696678833604 188:156:1371261514538377769073582897374368647 188:157:279492792772153430639201609655922272 188:158:54837193518587065505159809489453104 188:159:10346640286525861416067888582915680 188:160:1875328551932812381662304805653467 188:161:326144095988315196810835618374516 188:162:54357349331385866135139269729086 188:163:8670497439362162696402582901572 188:164:1321722170634476020793076661825 188:165:192250497546832875751720241720 188:166:26637117129982868327045575660 188:167:3509081298560617384401213560 188:168:438635162320077173050151695 188:169:51909486665097890301793100 188:170:5801648509628587739612170 188:171:610699843118798709432860 188:172:60359868215230105002085 188:173:5582415557477928786320 188:174:481242720472235240200 188:175:38499417637778819216 188:176:2843706984608662783 188:177:192793693871773748 188:178:11914217037019726 188:179:665598717151940 188:180:33279935857597 188:181:1470936391496 188:182:56574476596 188:183:1854900872 188:184:50404915 188:185:1089836 188:186:17578 188:187:188 188:188:1 # binomial(189, k) for 0 <= k <= 189 189:0:1 189:1:189 189:2:17766 189:3:1107414 189:4:51494751 189:5:1905305787 189:6:58429377468 189:7:1527510868092 189:8:34750872249093 189:9:698878653009537 189:10:12579815754171666 189:11:204707910908793474 189:12:3036500678480436531 189:13:41343124622387481999 189:14:519742138110014059416 189:15:6063658277950164026520 189:16:65942283772708033788405 189:17:671059711334028814434945 189:18:6412348352747386449045030 189:19:57711135174726478041405270 189:20:490544648985175063351944795 189:21:3947716460880694557451365255 189:22:30146198428543485711446789220 189:23:218887614676815744078765817380 189:24:1513972668181308896544796903545 189:25:9992219609996638717195659563397 189:26:63027846770748028831541852630658 189:27:380501445319701062945974888103602 189:28:2201472647921127578473140424027983 189:29:12221968838458673797730193388569147 189:30:65183833805112926921227698072368784 189:31:334329986290740496144361419145375376 189:32:1650754307310531199712784507030290919 189:33:7853588674174345404694156594053202251 189:34:36034112740329349503890836137420575034 189:35:159579642135744262088659417180005403722 189:36:682646246914017121157043062381134227033 189:37:2822834480482287014514259149846311803677 189:38:11291337921929148058057036599385247214708 189:39:43717744261828239917092628884799290497972 189:40:163941540981855899689097358317997339367395 189:41:595787551373086074479890399741014721115655 189:42:2099441847695636643405328075277861398217070 189:43:7177161665378106664664726210833619198556030 189:44:23815127344209172114569318790493372795208645 189:45:76737632553562887924723360547145312340116745 189:46:240222154080718605677394867799759238629930680 189:47:730888681564739587486541831816288747320852920 189:48:2162212349629021279647686252456520877490856555 189:49:6221876353014122457761709420334070280126750495 189:50:17421253788439542881732786376935396784354901386 189:51:47481456403786205109036417772431767706379044954 189:52:126008480456201852020135108703761229682313619301 189:53:325720034386785919372802073441797895593905015929 189:54:820331938455608982124094110890453959273538558636 189:55:2013542030754676592486412817640205172762321916652 189:56:4818118430734404703449630670781919520538413157703 189:57:11242276338380277641382471565157812214589630701307 189:58:25585870287348218080387693906910882971135021596078 189:59:56809305214281636754759116979751282529130302187902 189:60:123086827964276879635311420122794445479782321407121 189:61:260298373891667499556642183538368581424457696090469 189:62:537390191260216773278229024079212555198880404831936 189:63:1083310385556310003275160096159682452543774784343744 189:64:2132767321563985318947971439314374828445556606676746 189:65:4101475618392279459515329690989182362395301166686050 189:66:7705802676979434136059104267919069892985111282864700 189:67:14146473571171199981123430223194710400554756534214300 189:68:25380437877689505848486154223966980424524710252560950 189:69:44507724394209133444446734218840646831412897689273550 189:70:76298956104358514476194401518012537425279253181611800 189:71:127881348963643143981227236347091435966313114487490200 189:72:209583321912637374858122415124399853389235382076720050 189:73:335907515942172230936990720130887436253979995931181450 189:74:526557727693134848495823291015985710884617290919149300 189:75:807388515796140101026929046224511423356413179409362260 189:76:1211082773694210151540393569336767135034619769114043390 189:77:1777303291265529183429408744611099821544312128699829910 189:78:2552025238740247032616586915339015128371319979671550640 189:79:3585756981014777476208115792438363028471095161310659760 189:80:4930415848895319029786159214602749164147755846802157170 189:81:6634757129994935484527053757922218011013646756807841130 189:82:8738460610237232101572217144580482258408217679698132220 189:83:11265244401149202829737677523736284357225051707562652380 189:84:14215665553831136904192783541857692165069708107162394670 189:85:17560528037085522058120497316412443262733168838259428710 189:86:21235987393684817372610833964033652317723832083476518440 189:87:25141456339649841257228918371212255042822467868943464360 189:88:29141233484594134184515337202996022890544224120820833690 189:89:33070388561168624186921899522501104628595130743852856210 189:90:36744876179076249096579888358334560698439034159836506900 189:91:39975194964049985280894603818407928671928180020041914100 189:92:42582272896488027799213817110912793585314800456131604150 189:93:44413768504939125769072475911382161051349845637040490350 189:94:45358742302916553976925081781837100648187076395275394400 189:95:45358742302916553976925081781837100648187076395275394400 189:96:44413768504939125769072475911382161051349845637040490350 189:97:42582272896488027799213817110912793585314800456131604150 189:98:39975194964049985280894603818407928671928180020041914100 189:99:36744876179076249096579888358334560698439034159836506900 189:100:33070388561168624186921899522501104628595130743852856210 189:101:29141233484594134184515337202996022890544224120820833690 189:102:25141456339649841257228918371212255042822467868943464360 189:103:21235987393684817372610833964033652317723832083476518440 189:104:17560528037085522058120497316412443262733168838259428710 189:105:14215665553831136904192783541857692165069708107162394670 189:106:11265244401149202829737677523736284357225051707562652380 189:107:8738460610237232101572217144580482258408217679698132220 189:108:6634757129994935484527053757922218011013646756807841130 189:109:4930415848895319029786159214602749164147755846802157170 189:110:3585756981014777476208115792438363028471095161310659760 189:111:2552025238740247032616586915339015128371319979671550640 189:112:1777303291265529183429408744611099821544312128699829910 189:113:1211082773694210151540393569336767135034619769114043390 189:114:807388515796140101026929046224511423356413179409362260 189:115:526557727693134848495823291015985710884617290919149300 189:116:335907515942172230936990720130887436253979995931181450 189:117:209583321912637374858122415124399853389235382076720050 189:118:127881348963643143981227236347091435966313114487490200 189:119:76298956104358514476194401518012537425279253181611800 189:120:44507724394209133444446734218840646831412897689273550 189:121:25380437877689505848486154223966980424524710252560950 189:122:14146473571171199981123430223194710400554756534214300 189:123:7705802676979434136059104267919069892985111282864700 189:124:4101475618392279459515329690989182362395301166686050 189:125:2132767321563985318947971439314374828445556606676746 189:126:1083310385556310003275160096159682452543774784343744 189:127:537390191260216773278229024079212555198880404831936 189:128:260298373891667499556642183538368581424457696090469 189:129:123086827964276879635311420122794445479782321407121 189:130:56809305214281636754759116979751282529130302187902 189:131:25585870287348218080387693906910882971135021596078 189:132:11242276338380277641382471565157812214589630701307 189:133:4818118430734404703449630670781919520538413157703 189:134:2013542030754676592486412817640205172762321916652 189:135:820331938455608982124094110890453959273538558636 189:136:325720034386785919372802073441797895593905015929 189:137:126008480456201852020135108703761229682313619301 189:138:47481456403786205109036417772431767706379044954 189:139:17421253788439542881732786376935396784354901386 189:140:6221876353014122457761709420334070280126750495 189:141:2162212349629021279647686252456520877490856555 189:142:730888681564739587486541831816288747320852920 189:143:240222154080718605677394867799759238629930680 189:144:76737632553562887924723360547145312340116745 189:145:23815127344209172114569318790493372795208645 189:146:7177161665378106664664726210833619198556030 189:147:2099441847695636643405328075277861398217070 189:148:595787551373086074479890399741014721115655 189:149:163941540981855899689097358317997339367395 189:150:43717744261828239917092628884799290497972 189:151:11291337921929148058057036599385247214708 189:152:2822834480482287014514259149846311803677 189:153:682646246914017121157043062381134227033 189:154:159579642135744262088659417180005403722 189:155:36034112740329349503890836137420575034 189:156:7853588674174345404694156594053202251 189:157:1650754307310531199712784507030290919 189:158:334329986290740496144361419145375376 189:159:65183833805112926921227698072368784 189:160:12221968838458673797730193388569147 189:161:2201472647921127578473140424027983 189:162:380501445319701062945974888103602 189:163:63027846770748028831541852630658 189:164:9992219609996638717195659563397 189:165:1513972668181308896544796903545 189:166:218887614676815744078765817380 189:167:30146198428543485711446789220 189:168:3947716460880694557451365255 189:169:490544648985175063351944795 189:170:57711135174726478041405270 189:171:6412348352747386449045030 189:172:671059711334028814434945 189:173:65942283772708033788405 189:174:6063658277950164026520 189:175:519742138110014059416 189:176:41343124622387481999 189:177:3036500678480436531 189:178:204707910908793474 189:179:12579815754171666 189:180:698878653009537 189:181:34750872249093 189:182:1527510868092 189:183:58429377468 189:184:1905305787 189:185:51494751 189:186:1107414 189:187:17766 189:188:189 189:189:1 # binomial(190, k) for 0 <= k <= 190 190:0:1 190:1:190 190:2:17955 190:3:1125180 190:4:52602165 190:5:1956800538 190:6:60334683255 190:7:1585940245560 190:8:36278383117185 190:9:733629525258630 190:10:13278694407181203 190:11:217287726662965140 190:12:3241208589389230005 190:13:44379625300867918530 190:14:561085262732401541415 190:15:6583400416060178085936 190:16:72005942050658197814925 190:17:737001995106736848223350 190:18:7083408064081415263479975 190:19:64123483527473864490450300 190:20:548255784159901541393350065 190:21:4438261109865869620803310050 190:22:34093914889424180268898154475 190:23:249033813105359229790212606600 190:24:1732860282858124640623562720925 190:25:11506192278177947613740456466942 190:26:73020066380744667548737512194055 190:27:443529292090449091777516740734260 190:28:2581974093240828641419115312131585 190:29:14423441486379801376203333812597130 190:30:77405802643571600718957891460937931 190:31:399513820095853423065589117217744160 190:32:1985084293601271695857145926175666295 190:33:9504342981484876604406941101083493170 190:34:43887701414503694908584992731473777285 190:35:195613754876073611592550253317425978756 190:36:842225889049761383245702479561139630755 190:37:3505480727396304135671302212227446030710 190:38:14114172402411435072571295749231559018385 190:39:55009082183757387975149665484184537712680 190:40:207659285243684139606189987202796629865367 190:41:759729092354941974168987758059012060483050 190:42:2695229399068722717885218475018876119332725 190:43:9276603513073743308070054286111480596773100 190:44:30992289009587278779234045001326991993764675 190:45:100552759897772060039292679337638685135325390 190:46:316959786634281493602118228346904550970047425 190:47:971110835645458193163936699616047985950783600 190:48:2893101031193760867134228084272809624811709475 190:49:8384088702643143737409395672790591157617607050 190:50:23643130141453665339494495797269467064481651881 190:51:64902710192225747990769204149367164490733946340 190:52:173489936859988057129171526476192997388692664255 190:53:451728514842987771392937182145559125276218635230 190:54:1146051972842394901496896184332251854867443574565 190:55:2833873969210285574610506928530659132035860475288 190:56:6831660461489081295936043488422124693300735074355 190:57:16060394769114682344832102235939731735128043859010 190:58:36828146625728495721770165472068695185724652297385 190:59:82395175501629854835146810886662165500265323783980 190:60:179896133178558516390070537102545728008912623595023 190:61:383385201855944379191953603661163026904240017497590 190:62:797688565151884272834871207617581136623338100922405 190:63:1620700576816526776553389120238895007742655189175680 190:64:3216077707120295322223131535474057280989331391020490 190:65:6234242939956264778463301130303557190840857773362796 190:66:11807278295371713595574433958908252255380412449550750 190:67:21852276248150634117182534491113780293539867817079000 190:68:39526911448860705829609584447161690825079466786775250 190:69:69888162271898639292932888442807627255937607941834500 190:70:120806680498567647920641135736853184256692150870885350 190:71:204180305068001658457421637865103973391592367669102000 190:72:337464670876280518839349651471491289355548496564210250 190:73:545490837854809605795113135255287289643215378007901500 190:74:862465243635307079432814011146873147138597286850330750 190:75:1333946243489274949522752337240497134241030470328511560 190:76:2018471289490350252567322615561278558391032948523405650 190:77:2988386064959739334969802313947866956578931897813873300 190:78:4329328530005776216045995659950114949915632108371380550 190:79:6137782219755024508824702707777378156842415140982210400 190:80:8516172829910096505994275007041112192618851008112816930 190:81:11565172978890254514313212972524967175161402603609998300 190:82:15373217740232167586099270902502700269421864436505973350 190:83:20003705011386434931309894668316766615633269387260784600 190:84:25480909954980339733930461065593976522294759814725047050 190:85:31776193590916658962313280858270135427802876945421823380 190:86:38796515430770339430731331280446095580457000921735947150 190:87:46377443733334658629839752335245907360546299952419982800 190:88:54282689824243975441744255574208277933366691989764298050 190:89:62211622045762758371437236725497127519139354864673689900 190:90:69815264740244873283501787880835665327034164903689363110 190:91:76720071143126234377474492176742489370367214179878421000 190:92:82557467860538013080108420929320722257242980476173518250 190:93:86996041401427153568286293022294954636664646093172094500 190:94:89772510807855679745997557693219261699536922032315884750 190:95:90717484605833107953850163563674201296374152790550788800 190:96:89772510807855679745997557693219261699536922032315884750 190:97:86996041401427153568286293022294954636664646093172094500 190:98:82557467860538013080108420929320722257242980476173518250 190:99:76720071143126234377474492176742489370367214179878421000 190:100:69815264740244873283501787880835665327034164903689363110 190:101:62211622045762758371437236725497127519139354864673689900 190:102:54282689824243975441744255574208277933366691989764298050 190:103:46377443733334658629839752335245907360546299952419982800 190:104:38796515430770339430731331280446095580457000921735947150 190:105:31776193590916658962313280858270135427802876945421823380 190:106:25480909954980339733930461065593976522294759814725047050 190:107:20003705011386434931309894668316766615633269387260784600 190:108:15373217740232167586099270902502700269421864436505973350 190:109:11565172978890254514313212972524967175161402603609998300 190:110:8516172829910096505994275007041112192618851008112816930 190:111:6137782219755024508824702707777378156842415140982210400 190:112:4329328530005776216045995659950114949915632108371380550 190:113:2988386064959739334969802313947866956578931897813873300 190:114:2018471289490350252567322615561278558391032948523405650 190:115:1333946243489274949522752337240497134241030470328511560 190:116:862465243635307079432814011146873147138597286850330750 190:117:545490837854809605795113135255287289643215378007901500 190:118:337464670876280518839349651471491289355548496564210250 190:119:204180305068001658457421637865103973391592367669102000 190:120:120806680498567647920641135736853184256692150870885350 190:121:69888162271898639292932888442807627255937607941834500 190:122:39526911448860705829609584447161690825079466786775250 190:123:21852276248150634117182534491113780293539867817079000 190:124:11807278295371713595574433958908252255380412449550750 190:125:6234242939956264778463301130303557190840857773362796 190:126:3216077707120295322223131535474057280989331391020490 190:127:1620700576816526776553389120238895007742655189175680 190:128:797688565151884272834871207617581136623338100922405 190:129:383385201855944379191953603661163026904240017497590 190:130:179896133178558516390070537102545728008912623595023 190:131:82395175501629854835146810886662165500265323783980 190:132:36828146625728495721770165472068695185724652297385 190:133:16060394769114682344832102235939731735128043859010 190:134:6831660461489081295936043488422124693300735074355 190:135:2833873969210285574610506928530659132035860475288 190:136:1146051972842394901496896184332251854867443574565 190:137:451728514842987771392937182145559125276218635230 190:138:173489936859988057129171526476192997388692664255 190:139:64902710192225747990769204149367164490733946340 190:140:23643130141453665339494495797269467064481651881 190:141:8384088702643143737409395672790591157617607050 190:142:2893101031193760867134228084272809624811709475 190:143:971110835645458193163936699616047985950783600 190:144:316959786634281493602118228346904550970047425 190:145:100552759897772060039292679337638685135325390 190:146:30992289009587278779234045001326991993764675 190:147:9276603513073743308070054286111480596773100 190:148:2695229399068722717885218475018876119332725 190:149:759729092354941974168987758059012060483050 190:150:207659285243684139606189987202796629865367 190:151:55009082183757387975149665484184537712680 190:152:14114172402411435072571295749231559018385 190:153:3505480727396304135671302212227446030710 190:154:842225889049761383245702479561139630755 190:155:195613754876073611592550253317425978756 190:156:43887701414503694908584992731473777285 190:157:9504342981484876604406941101083493170 190:158:1985084293601271695857145926175666295 190:159:399513820095853423065589117217744160 190:160:77405802643571600718957891460937931 190:161:14423441486379801376203333812597130 190:162:2581974093240828641419115312131585 190:163:443529292090449091777516740734260 190:164:73020066380744667548737512194055 190:165:11506192278177947613740456466942 190:166:1732860282858124640623562720925 190:167:249033813105359229790212606600 190:168:34093914889424180268898154475 190:169:4438261109865869620803310050 190:170:548255784159901541393350065 190:171:64123483527473864490450300 190:172:7083408064081415263479975 190:173:737001995106736848223350 190:174:72005942050658197814925 190:175:6583400416060178085936 190:176:561085262732401541415 190:177:44379625300867918530 190:178:3241208589389230005 190:179:217287726662965140 190:180:13278694407181203 190:181:733629525258630 190:182:36278383117185 190:183:1585940245560 190:184:60334683255 190:185:1956800538 190:186:52602165 190:187:1125180 190:188:17955 190:189:190 190:190:1 # binomial(191, k) for 0 <= k <= 191 191:0:1 191:1:191 191:2:18145 191:3:1143135 191:4:53727345 191:5:2009402703 191:6:62291483793 191:7:1646274928815 191:8:37864323362745 191:9:769907908375815 191:10:14012323932439833 191:11:230566421070146343 191:12:3458496316052195145 191:13:47620833890257148535 191:14:605464888033269459945 191:15:7144485678792579627351 191:16:78589342466718375900861 191:17:809007937157395046038275 191:18:7820410059188152111703325 191:19:71206891591555279753930275 191:20:612379267687375405883800365 191:21:4986516894025771162196660115 191:22:38532175999290049889701464525 191:23:283127727994783410059110761075 191:24:1981894095963483870413775327525 191:25:13239052561036072254364019187867 191:26:84526258658922615162477968660997 191:27:516549358471193759326254252928315 191:28:3025503385331277733196632052865845 191:29:17005415579620630017622449124728715 191:30:91829244129951402095161225273535061 191:31:476919622739425023784547008678682091 191:32:2384598113697125118922735043393410455 191:33:11489427275086148300264087027259159465 191:34:53392044395988571512991933832557270455 191:35:239501456290577306501135246048899756041 191:36:1037839643925834994838252732878565609511 191:37:4347706616446065518917004691788585661465 191:38:17619653129807739208242597961459005049095 191:39:69123254586168823047720961233416096731065 191:40:262668367427441527581339652686981167578047 191:41:967388377598626113775177745261808690348417 191:42:3454958491423664692054206233077888179815775 191:43:11971832912142466025955272761130356716105825 191:44:40268892522661022087304099287438472590537775 191:45:131545048907359338818526724338965677129090065 191:46:417512546532053553641410907684543236105372815 191:47:1288070622279739686766054927962952536920831025 191:48:3864211866839219060298164783888857610762493075 191:49:11277189733836904604543623757063400782429316525 191:50:32027218844096809076903891470060058222099258931 191:51:88545840333679413330263699946636631555215598221 191:52:238392647052213805119940730625560161879426610595 191:53:625218451702975828522108708621752122664911299485 191:54:1597780487685382672889833366477810980143662209795 191:55:3979925942052680476107403112862910986903304049853 191:56:9665534430699366870546550416952783825336595549643 191:57:22892055230603763640768145724361856428428778933365 191:58:52888541394843178066602267708008426920852696156395 191:59:119223322127358350556916976358730860685989976081365 191:60:262291308680188371225217347989207893509177947379003 191:61:563281335034502895582024140763708754913152641092613 191:62:1181073767007828652026824811278744163527578118419995 191:63:2418389141968411049388260327856476144365993290098085 191:64:4836778283936822098776520655712952288731986580196170 191:65:9450320647076560100686432665777614471830189164383286 191:66:18041521235327978374037735089211809446221270222913546 191:67:33659554543522347712756968450022032548920280266629750 191:68:61379187697011339946792118938275471118619334603854250 191:69:109415073720759345122542472889969318081017074728609750 191:70:190694842770466287213574024179660811512629758812719850 191:71:324986985566569306378062773601957157648284518539987350 191:72:541644975944282177296771289336595262747140864233312250 191:73:882955508731090124634462786726778578998763874572111750 191:74:1407956081490116685227927146402160436781812664858232250 191:75:2196411487124582028955566348387370281379627757178842310 191:76:3352417532979625202090074952801775692632063418851917210 191:77:5006857354450089587537124929509145514969964846337278950 191:78:7317714594965515551015797973897981906494564006185253850 191:79:10467110749760800724870698367727493106758047249353590950 191:80:14653955049665121014818977714818490349461266149095027330 191:81:20081345808800351020307487979566079367780253611722815230 191:82:26938390719122422100412483875027667444583267040115971650 191:83:35376922751618602517409165570819466885055133823766757950 191:84:45484614966366774665240355733910743137928029201985831650 191:85:57257103545896998696243741923864111950097636760146870430 191:86:70572709021686998393044612138716231008259877867157770530 191:87:85173959164104998060571083615692002941003300874155929950 191:88:100660133557578634071584007909454185293912991942184280850 191:89:116494311870006733813181492299705405452506046854437987950 191:90:132026886786007631654939024606332792846173519768363053010 191:91:146535335883371107660976280057578154697401379083567784110 191:92:159277539003664247457582913106063211627610194656051939250 191:93:169553509261965166648394713951615676893907626569345612750 191:94:176768552209282833314283850715514216336201568125487979250 191:95:180489995413688787699847721256893462995911074822866673550 191:96:180489995413688787699847721256893462995911074822866673550 191:97:176768552209282833314283850715514216336201568125487979250 191:98:169553509261965166648394713951615676893907626569345612750 191:99:159277539003664247457582913106063211627610194656051939250 191:100:146535335883371107660976280057578154697401379083567784110 191:101:132026886786007631654939024606332792846173519768363053010 191:102:116494311870006733813181492299705405452506046854437987950 191:103:100660133557578634071584007909454185293912991942184280850 191:104:85173959164104998060571083615692002941003300874155929950 191:105:70572709021686998393044612138716231008259877867157770530 191:106:57257103545896998696243741923864111950097636760146870430 191:107:45484614966366774665240355733910743137928029201985831650 191:108:35376922751618602517409165570819466885055133823766757950 191:109:26938390719122422100412483875027667444583267040115971650 191:110:20081345808800351020307487979566079367780253611722815230 191:111:14653955049665121014818977714818490349461266149095027330 191:112:10467110749760800724870698367727493106758047249353590950 191:113:7317714594965515551015797973897981906494564006185253850 191:114:5006857354450089587537124929509145514969964846337278950 191:115:3352417532979625202090074952801775692632063418851917210 191:116:2196411487124582028955566348387370281379627757178842310 191:117:1407956081490116685227927146402160436781812664858232250 191:118:882955508731090124634462786726778578998763874572111750 191:119:541644975944282177296771289336595262747140864233312250 191:120:324986985566569306378062773601957157648284518539987350 191:121:190694842770466287213574024179660811512629758812719850 191:122:109415073720759345122542472889969318081017074728609750 191:123:61379187697011339946792118938275471118619334603854250 191:124:33659554543522347712756968450022032548920280266629750 191:125:18041521235327978374037735089211809446221270222913546 191:126:9450320647076560100686432665777614471830189164383286 191:127:4836778283936822098776520655712952288731986580196170 191:128:2418389141968411049388260327856476144365993290098085 191:129:1181073767007828652026824811278744163527578118419995 191:130:563281335034502895582024140763708754913152641092613 191:131:262291308680188371225217347989207893509177947379003 191:132:119223322127358350556916976358730860685989976081365 191:133:52888541394843178066602267708008426920852696156395 191:134:22892055230603763640768145724361856428428778933365 191:135:9665534430699366870546550416952783825336595549643 191:136:3979925942052680476107403112862910986903304049853 191:137:1597780487685382672889833366477810980143662209795 191:138:625218451702975828522108708621752122664911299485 191:139:238392647052213805119940730625560161879426610595 191:140:88545840333679413330263699946636631555215598221 191:141:32027218844096809076903891470060058222099258931 191:142:11277189733836904604543623757063400782429316525 191:143:3864211866839219060298164783888857610762493075 191:144:1288070622279739686766054927962952536920831025 191:145:417512546532053553641410907684543236105372815 191:146:131545048907359338818526724338965677129090065 191:147:40268892522661022087304099287438472590537775 191:148:11971832912142466025955272761130356716105825 191:149:3454958491423664692054206233077888179815775 191:150:967388377598626113775177745261808690348417 191:151:262668367427441527581339652686981167578047 191:152:69123254586168823047720961233416096731065 191:153:17619653129807739208242597961459005049095 191:154:4347706616446065518917004691788585661465 191:155:1037839643925834994838252732878565609511 191:156:239501456290577306501135246048899756041 191:157:53392044395988571512991933832557270455 191:158:11489427275086148300264087027259159465 191:159:2384598113697125118922735043393410455 191:160:476919622739425023784547008678682091 191:161:91829244129951402095161225273535061 191:162:17005415579620630017622449124728715 191:163:3025503385331277733196632052865845 191:164:516549358471193759326254252928315 191:165:84526258658922615162477968660997 191:166:13239052561036072254364019187867 191:167:1981894095963483870413775327525 191:168:283127727994783410059110761075 191:169:38532175999290049889701464525 191:170:4986516894025771162196660115 191:171:612379267687375405883800365 191:172:71206891591555279753930275 191:173:7820410059188152111703325 191:174:809007937157395046038275 191:175:78589342466718375900861 191:176:7144485678792579627351 191:177:605464888033269459945 191:178:47620833890257148535 191:179:3458496316052195145 191:180:230566421070146343 191:181:14012323932439833 191:182:769907908375815 191:183:37864323362745 191:184:1646274928815 191:185:62291483793 191:186:2009402703 191:187:53727345 191:188:1143135 191:189:18145 191:190:191 191:191:1 # binomial(192, k) for 0 <= k <= 192 192:0:1 192:1:192 192:2:18336 192:3:1161280 192:4:54870480 192:5:2063130048 192:6:64300886496 192:7:1708566412608 192:8:39510598291560 192:9:807772231738560 192:10:14782231840815648 192:11:244578745002586176 192:12:3689062737122341488 192:13:51079330206309343680 192:14:653085721923526608480 192:15:7749950566825849087296 192:16:85733828145510955528212 192:17:887597279624113421939136 192:18:8629417996345547157741600 192:19:79027301650743431865633600 192:20:683586159278930685637730640 192:21:5598896161713146568080460480 192:22:43518692893315821051898124640 192:23:321659903994073459948812225600 192:24:2265021823958267280472886088600 192:25:15220946656999556124777794515392 192:26:97765311219958687416841987848864 192:27:601075617130116374488732221589312 192:28:3542052743802471492522886305794160 192:29:20030918964951907750819081177594560 192:30:108834659709572032112783674398263776 192:31:568748866869376425879708233952217152 192:32:2861517736436550142707282052072092546 192:33:13874025388783273419186822070652569920 192:34:64881471671074719813256020859816429920 192:35:292893500686565878014127179881457026496 192:36:1277341100216412301339387978927465365552 192:37:5385546260371900513755257424667151270976 192:38:21967359746253804727159602653247590710560 192:39:86742907715976562255963559194875101780160 192:40:331791622013610350629060613920397264309112 192:41:1230056745026067641356517397948789857926464 192:42:4422346869022290805829383978339696870164192 192:43:15426791403566130718009478994208244895921600 192:44:52240725434803488113259372048568829306643600 192:45:171813941430020360905830823626404149719627840 192:46:549057595439412892459937632023508913234462880 192:47:1705583168811793240407465835647495773026203840 192:48:5152282489118958747064219711851810147683324100 192:49:15141401600676123664841788540952258393191809600 192:50:43304408577933713681447515227123459004528575456 192:51:120573059177776222407167591416696689777314857152 192:52:326938487385893218450204430572196793434642208816 192:53:863611098755189633642049439247312284544337910080 192:54:2222998939388358501411942075099563102808573509280 192:55:5577706429738063148997236479340721967046966259648 192:56:13645460372752047346653953529815694812239899599496 192:57:32557589661303130511314696141314640253765374483008 192:58:75780596625446941707370413432370283349281475089760 192:59:172111863522201528623519244066739287606842672237760 192:60:381514630807546721782134324347938754195167923460368 192:61:825572643714691266807241488752916648422330588471616 192:62:1744355102042331547608848952042452918440730759512608 192:63:3599462908976239701415085139135220307893571408518080 192:64:7255167425905233148164780983569428433097979870294255 192:65:14287098931013382199462953321490566760562175744579456 192:66:27491841882404538474724167754989423918051459387296832 192:67:51701075778850326086794703539233841995141550489543296 192:68:95038742240533687659549087388297503667539614870484000 192:69:170794261417770685069334591828244789199636409332464000 192:70:300109916491225632336116497069630129593646833541329600 192:71:515681828337035593591636797781617969160914277352707200 192:72:866631961510851483674834062938552420395425382773299600 192:73:1424600484675372301931234076063373841745904738805424000 192:74:2290911590221206809862389933128939015780576539430344000 192:75:3604367568614698714183493494789530718161440422037074560 192:76:5548829020104207231045641301189145974011691176030759520 192:77:8359274887429714789627199882310921207602028265189196160 192:78:12324571949415605138552922903407127421464528852522532800 192:79:17784825344726316275886496341625475013252611255538844800 192:80:25121065799425921739689676082545983456219313398448618280 192:81:34735300858465472035126465694384569717241519760817842560 192:82:47019736527922773120719971854593746812363520651838786880 192:83:62315313470741024617821649445847134329638400863882729600 192:84:80861537717985377182649521304730210022983163025752589600 192:85:102741718512263773361484097657774855088025665962132702080 192:86:127829812567583997089288354062580342958357514627304640960 192:87:155746668185791996453615695754408233949263178741313700480 192:88:185834092721683632132155091525146188234916292816340210800 192:89:217154445427585367884765500209159590746419038796622268800 192:90:248521198656014365468120516906038198298679566622801040960 192:91:278562222669378739315915304663910947543574898851930837120 192:92:305812874887035355118559193163641366325011573739619723360 192:93:328831048265629414105977627057678888521517821225397552000 192:94:346322061471247999962678564667129893230109194694833592000 192:95:357258547622971621014131571972407679332112642948354652800 192:96:360979990827377575399695442513786925991822149645733347100 192:97:357258547622971621014131571972407679332112642948354652800 192:98:346322061471247999962678564667129893230109194694833592000 192:99:328831048265629414105977627057678888521517821225397552000 192:100:305812874887035355118559193163641366325011573739619723360 192:101:278562222669378739315915304663910947543574898851930837120 192:102:248521198656014365468120516906038198298679566622801040960 192:103:217154445427585367884765500209159590746419038796622268800 192:104:185834092721683632132155091525146188234916292816340210800 192:105:155746668185791996453615695754408233949263178741313700480 192:106:127829812567583997089288354062580342958357514627304640960 192:107:102741718512263773361484097657774855088025665962132702080 192:108:80861537717985377182649521304730210022983163025752589600 192:109:62315313470741024617821649445847134329638400863882729600 192:110:47019736527922773120719971854593746812363520651838786880 192:111:34735300858465472035126465694384569717241519760817842560 192:112:25121065799425921739689676082545983456219313398448618280 192:113:17784825344726316275886496341625475013252611255538844800 192:114:12324571949415605138552922903407127421464528852522532800 192:115:8359274887429714789627199882310921207602028265189196160 192:116:5548829020104207231045641301189145974011691176030759520 192:117:3604367568614698714183493494789530718161440422037074560 192:118:2290911590221206809862389933128939015780576539430344000 192:119:1424600484675372301931234076063373841745904738805424000 192:120:866631961510851483674834062938552420395425382773299600 192:121:515681828337035593591636797781617969160914277352707200 192:122:300109916491225632336116497069630129593646833541329600 192:123:170794261417770685069334591828244789199636409332464000 192:124:95038742240533687659549087388297503667539614870484000 192:125:51701075778850326086794703539233841995141550489543296 192:126:27491841882404538474724167754989423918051459387296832 192:127:14287098931013382199462953321490566760562175744579456 192:128:7255167425905233148164780983569428433097979870294255 192:129:3599462908976239701415085139135220307893571408518080 192:130:1744355102042331547608848952042452918440730759512608 192:131:825572643714691266807241488752916648422330588471616 192:132:381514630807546721782134324347938754195167923460368 192:133:172111863522201528623519244066739287606842672237760 192:134:75780596625446941707370413432370283349281475089760 192:135:32557589661303130511314696141314640253765374483008 192:136:13645460372752047346653953529815694812239899599496 192:137:5577706429738063148997236479340721967046966259648 192:138:2222998939388358501411942075099563102808573509280 192:139:863611098755189633642049439247312284544337910080 192:140:326938487385893218450204430572196793434642208816 192:141:120573059177776222407167591416696689777314857152 192:142:43304408577933713681447515227123459004528575456 192:143:15141401600676123664841788540952258393191809600 192:144:5152282489118958747064219711851810147683324100 192:145:1705583168811793240407465835647495773026203840 192:146:549057595439412892459937632023508913234462880 192:147:171813941430020360905830823626404149719627840 192:148:52240725434803488113259372048568829306643600 192:149:15426791403566130718009478994208244895921600 192:150:4422346869022290805829383978339696870164192 192:151:1230056745026067641356517397948789857926464 192:152:331791622013610350629060613920397264309112 192:153:86742907715976562255963559194875101780160 192:154:21967359746253804727159602653247590710560 192:155:5385546260371900513755257424667151270976 192:156:1277341100216412301339387978927465365552 192:157:292893500686565878014127179881457026496 192:158:64881471671074719813256020859816429920 192:159:13874025388783273419186822070652569920 192:160:2861517736436550142707282052072092546 192:161:568748866869376425879708233952217152 192:162:108834659709572032112783674398263776 192:163:20030918964951907750819081177594560 192:164:3542052743802471492522886305794160 192:165:601075617130116374488732221589312 192:166:97765311219958687416841987848864 192:167:15220946656999556124777794515392 192:168:2265021823958267280472886088600 192:169:321659903994073459948812225600 192:170:43518692893315821051898124640 192:171:5598896161713146568080460480 192:172:683586159278930685637730640 192:173:79027301650743431865633600 192:174:8629417996345547157741600 192:175:887597279624113421939136 192:176:85733828145510955528212 192:177:7749950566825849087296 192:178:653085721923526608480 192:179:51079330206309343680 192:180:3689062737122341488 192:181:244578745002586176 192:182:14782231840815648 192:183:807772231738560 192:184:39510598291560 192:185:1708566412608 192:186:64300886496 192:187:2063130048 192:188:54870480 192:189:1161280 192:190:18336 192:191:192 192:192:1 # binomial(193, k) for 0 <= k <= 193 193:0:1 193:1:193 193:2:18528 193:3:1179616 193:4:56031760 193:5:2118000528 193:6:66364016544 193:7:1772867299104 193:8:41219164704168 193:9:847282830030120 193:10:15590004072554208 193:11:259360976843401824 193:12:3933641482124927664 193:13:54768392943431685168 193:14:704165052129835952160 193:15:8403036288749375695776 193:16:93483778712336804615508 193:17:973331107769624377467348 193:18:9517015275969660579680736 193:19:87656719647088979023375200 193:20:762613460929674117503364240 193:21:6282482320992077253718191120 193:22:49117589055028967619978585120 193:23:365178596887389281000710350240 193:24:2586681727952340740421698314200 193:25:17485968480957823405250680603992 193:26:112986257876958243541619782364256 193:27:698840928350075061905574209438176 193:28:4143128360932587867011618527383472 193:29:23572971708754379243341967483388720 193:30:128865578674523939863602755575858336 193:31:677583526578948457992491908350480928 193:32:3430266603305926568586990286024309698 193:33:16735543125219823561894104122724662466 193:34:78755497059857993232442842930468999840 193:35:357774972357640597827383200741273456416 193:36:1570234600902978179353515158808922392048 193:37:6662887360588312815094645403594616636528 193:38:27352906006625705240914860077914741981536 193:39:108710267462230366983123161848122692490720 193:40:418534529729586912885024173115272366089272 193:41:1561848367039677991985578011869187122235576 193:42:5652403614048358447185901376288486728090656 193:43:19849138272588421523838862972547941766085792 193:44:67667516838369618831268851042777074202565200 193:45:224054666864823849019090195674972979026271440 193:46:720871536869433253365768455649913062954090720 193:47:2254640764251206132867403467671004686260666720 193:48:6857865657930751987471685547499305920709527940 193:49:20293684089795082411906008252804068540875133700 193:50:58445810178609837346289303768075717397720385056 193:51:163877467755709936088615106643820148781843432608 193:52:447511546563669440857372021988893483211957065968 193:53:1190549586141082852092253869819509077978980118896 193:54:3086610038143548135053991514346875387352911419360 193:55:7800705369126421650409178554440285069855539768928 193:56:19223166802490110495651190009156416779286865859144 193:57:46203050034055177857968649671130335066005274082504 193:58:108338186286750072218685109573684923603046849572768 193:59:247892460147648470330889657499109570956124147327520 193:60:553626494329748250405653568414678041802010595698128 193:61:1207087274522237988589375813100855402617498511931984 193:62:2569927745757022814416090440795369566863061347984224 193:63:5343818011018571249023934091177673226334302168030688 193:64:10854630334881472849579866122704648740991551278812335 193:65:21542266356918615347627734305059995193660155614873711 193:66:41778940813417920674187121076479990678613635131876288 193:67:79192917661254864561518871294223265913193009876840128 193:68:146739818019384013746343790927531345662681165360027296 193:69:265833003658304372728883679216542292867176024202948000 193:70:470904177908996317405451088897874918793283242873793600 193:71:815791744828261225927753294851248098754561110894036800 193:72:1382313789847887077266470860720170389556339660126006800 193:73:2291232446186223785606068139001926262141330121578723600 193:74:3715512074896579111793624009192312857526481278235768000 193:75:5895279158835905524045883427918469733942016961467418560 193:76:9153196588718905945229134795978676692173131598067834080 193:77:13908103907533922020672841183500067181613719441219955680 193:78:20683846836845319928180122785718048629066557117711728960 193:79:30109397294141921414439419245032602434717140108061377600 193:80:42905891144152238015576172424171458469471924653987463080 193:81:59856366657891393774816141776930553173460833159266460840 193:82:81755037386388245155846437548978316529605040412656629440 193:83:109335049998663797738541621300440881142001921515721516480 193:84:143176851188726401800471170750577344352621563889635319200 193:85:183603256230249150544133618962505065111008828987885291680 193:86:230571531079847770450772451720355198046383180589437343040 193:87:283576480753375993542904049816988576907620693368618341440 193:88:341580760907475628585770787279554422184179471557653911280 193:89:402988538149269000016920591734305778981335331612962479600 193:90:465675644083599733352886017115197789045098605419423309760 193:91:527083421325393104784035821569949145842254465474731878080 193:92:584375097556414094434474497827552313868586472591550560480 193:93:634643923152664769224536820221320254846529394965017275360 193:94:675153109736877414068656191724808781751627015920231144000 193:95:703580609094219620976810136639537572562221837643188244800 193:96:718238538450349196413827014486194605323934792594087999900 193:97:718238538450349196413827014486194605323934792594087999900 193:98:703580609094219620976810136639537572562221837643188244800 193:99:675153109736877414068656191724808781751627015920231144000 193:100:634643923152664769224536820221320254846529394965017275360 193:101:584375097556414094434474497827552313868586472591550560480 193:102:527083421325393104784035821569949145842254465474731878080 193:103:465675644083599733352886017115197789045098605419423309760 193:104:402988538149269000016920591734305778981335331612962479600 193:105:341580760907475628585770787279554422184179471557653911280 193:106:283576480753375993542904049816988576907620693368618341440 193:107:230571531079847770450772451720355198046383180589437343040 193:108:183603256230249150544133618962505065111008828987885291680 193:109:143176851188726401800471170750577344352621563889635319200 193:110:109335049998663797738541621300440881142001921515721516480 193:111:81755037386388245155846437548978316529605040412656629440 193:112:59856366657891393774816141776930553173460833159266460840 193:113:42905891144152238015576172424171458469471924653987463080 193:114:30109397294141921414439419245032602434717140108061377600 193:115:20683846836845319928180122785718048629066557117711728960 193:116:13908103907533922020672841183500067181613719441219955680 193:117:9153196588718905945229134795978676692173131598067834080 193:118:5895279158835905524045883427918469733942016961467418560 193:119:3715512074896579111793624009192312857526481278235768000 193:120:2291232446186223785606068139001926262141330121578723600 193:121:1382313789847887077266470860720170389556339660126006800 193:122:815791744828261225927753294851248098754561110894036800 193:123:470904177908996317405451088897874918793283242873793600 193:124:265833003658304372728883679216542292867176024202948000 193:125:146739818019384013746343790927531345662681165360027296 193:126:79192917661254864561518871294223265913193009876840128 193:127:41778940813417920674187121076479990678613635131876288 193:128:21542266356918615347627734305059995193660155614873711 193:129:10854630334881472849579866122704648740991551278812335 193:130:5343818011018571249023934091177673226334302168030688 193:131:2569927745757022814416090440795369566863061347984224 193:132:1207087274522237988589375813100855402617498511931984 193:133:553626494329748250405653568414678041802010595698128 193:134:247892460147648470330889657499109570956124147327520 193:135:108338186286750072218685109573684923603046849572768 193:136:46203050034055177857968649671130335066005274082504 193:137:19223166802490110495651190009156416779286865859144 193:138:7800705369126421650409178554440285069855539768928 193:139:3086610038143548135053991514346875387352911419360 193:140:1190549586141082852092253869819509077978980118896 193:141:447511546563669440857372021988893483211957065968 193:142:163877467755709936088615106643820148781843432608 193:143:58445810178609837346289303768075717397720385056 193:144:20293684089795082411906008252804068540875133700 193:145:6857865657930751987471685547499305920709527940 193:146:2254640764251206132867403467671004686260666720 193:147:720871536869433253365768455649913062954090720 193:148:224054666864823849019090195674972979026271440 193:149:67667516838369618831268851042777074202565200 193:150:19849138272588421523838862972547941766085792 193:151:5652403614048358447185901376288486728090656 193:152:1561848367039677991985578011869187122235576 193:153:418534529729586912885024173115272366089272 193:154:108710267462230366983123161848122692490720 193:155:27352906006625705240914860077914741981536 193:156:6662887360588312815094645403594616636528 193:157:1570234600902978179353515158808922392048 193:158:357774972357640597827383200741273456416 193:159:78755497059857993232442842930468999840 193:160:16735543125219823561894104122724662466 193:161:3430266603305926568586990286024309698 193:162:677583526578948457992491908350480928 193:163:128865578674523939863602755575858336 193:164:23572971708754379243341967483388720 193:165:4143128360932587867011618527383472 193:166:698840928350075061905574209438176 193:167:112986257876958243541619782364256 193:168:17485968480957823405250680603992 193:169:2586681727952340740421698314200 193:170:365178596887389281000710350240 193:171:49117589055028967619978585120 193:172:6282482320992077253718191120 193:173:762613460929674117503364240 193:174:87656719647088979023375200 193:175:9517015275969660579680736 193:176:973331107769624377467348 193:177:93483778712336804615508 193:178:8403036288749375695776 193:179:704165052129835952160 193:180:54768392943431685168 193:181:3933641482124927664 193:182:259360976843401824 193:183:15590004072554208 193:184:847282830030120 193:185:41219164704168 193:186:1772867299104 193:187:66364016544 193:188:2118000528 193:189:56031760 193:190:1179616 193:191:18528 193:192:193 193:193:1 # binomial(194, k) for 0 <= k <= 194 194:0:1 194:1:194 194:2:18721 194:3:1198144 194:4:57211376 194:5:2174032288 194:6:68482017072 194:7:1839231315648 194:8:42992032003272 194:9:888501994734288 194:10:16437286902584328 194:11:274950980915956032 194:12:4193002458968329488 194:13:58702034425556612832 194:14:758933445073267637328 194:15:9107201340879211647936 194:16:101886815001086180311284 194:17:1066814886481961182082856 194:18:10490346383739284957148084 194:19:97173734923058639603055936 194:20:850270180576763096526739440 194:21:7045095781921751371221555360 194:22:55400071376021044873696776240 194:23:414296185942418248620688935360 194:24:2951860324839730021422408664440 194:25:20072650208910164145672378918192 194:26:130472226357916066946870462968248 194:27:811827186227033305447193991802432 194:28:4841969289282662928917192736821648 194:29:27716100069686967110353586010772192 194:30:152438550383278319106944723059247056 194:31:806449105253472397856094663926339264 194:32:4107850129884875026579482194374790626 194:33:20165809728525750130481094408748972164 194:34:95491040185077816794336947053193662306 194:35:436530469417498591059826043671742456256 194:36:1928009573260618777180898359550195848464 194:37:8233121961491290994448160562403539028576 194:38:34015793367214018056009505481509358618064 194:39:136063173468856072224038021926037434472256 194:40:527244797191817279868147334963395058579992 194:41:1980382896769264904870602184984459488324848 194:42:7214251981088036439171479388157673850326232 194:43:25501541886636779971024764348836428494176448 194:44:87516655110958040355107714015325015968650992 194:45:291722183703193467850359046717750053228836640 194:46:944926203734257102384858651324886041980362160 194:47:2975512301120639386233171923320917749214757440 194:48:9112506422181958120339089015170310606970194660 194:49:27151549747725834399377693800303374461584661640 194:50:78739494268404919758195312020879785938595518756 194:51:222323277934319773434904410411895866179563817664 194:52:611389014319379376945987128632713631993800498576 194:53:1638061132704752292949625891808402561190937184864 194:54:4277159624284630987146245384166384465331891538256 194:55:10887315407269969785463170068787160457208451188288 194:56:27023872171616532146060368563596701849142405628072 194:57:65426216836545288353619839680286751845292139941648 194:58:154541236320805250076653759244815258669052123655272 194:59:356230646434398542549574767072794494559170996900288 194:60:801518954477396720736543225913787612758134743025648 194:61:1760713768851986238995029381515533444419509107630112 194:62:3777015020279260803005466253896224969480559859916208 194:63:7913745756775594063440024531973042793197363516014912 194:64:16198448345900044098603800213882321967325853446843023 194:65:32396896691800088197207600427764643934651706893686046 194:66:63321207170336536021814855381539985872273790746749999 194:67:120971858474672785235705992370703256591806645008716416 194:68:225932735680638878307862662221754611575874175236867424 194:69:412572821677688386475227470144073638529857189562975296 194:70:736737181567300690134334768114417211660459267076741600 194:71:1286695922737257543333204383749123017547844353767830400 194:72:2198105534676148303194224155571418488310900771020043600 194:73:3673546236034110862872538999722096651697669781704730400 194:74:6006744521082802897399692148194239119667811399814491600 194:75:9610791233732484635839507437110782591468498239703186560 194:76:15048475747554811469275018223897146426115148559535252640 194:77:23061300496252827965901975979478743873786851039287789760 194:78:34591950744379241948852963969218115810680276558931684640 194:79:50793244130987241342619542030750651063783697225773106560 194:80:73015288438294159430015591669204060904189064762048840680 194:81:102762257802043631790392314201102011642932757813253923920 194:82:141611404044279638930662579325908869703065873571923090280 194:83:191090087385052042894388058849419197671606961928378145920 194:84:252511901187390199539012792051018225494623485405356835680 194:85:326780107418975552344604789713082409463630392877520610880 194:86:414174787310096920994906070682860263157392009577322634720 194:87:514148011833223763993676501537343774954003873958055684480 194:88:625157241660851622128674837096542999091800164926272252720 194:89:744569299056744628602691379013860201165514803170616390880 194:90:868664182232868733369806608849503568026433937032385789360 194:91:992759065408992838136921838685146934887353070894155187840 194:92:1111458518881807199218510319397501459710840938066282438560 194:93:1219019020709078863659011318048872568715115867556567835840 194:94:1309797032889542183293193011946129036598156410885248419360 194:95:1378733718831097035045466328364346354313848853563419388800 194:96:1421819147544568817390637151125732177886156630237276244700 194:97:1436477076900698392827654028972389210647869585188175999800 194:98:1421819147544568817390637151125732177886156630237276244700 194:99:1378733718831097035045466328364346354313848853563419388800 194:100:1309797032889542183293193011946129036598156410885248419360 194:101:1219019020709078863659011318048872568715115867556567835840 194:102:1111458518881807199218510319397501459710840938066282438560 194:103:992759065408992838136921838685146934887353070894155187840 194:104:868664182232868733369806608849503568026433937032385789360 194:105:744569299056744628602691379013860201165514803170616390880 194:106:625157241660851622128674837096542999091800164926272252720 194:107:514148011833223763993676501537343774954003873958055684480 194:108:414174787310096920994906070682860263157392009577322634720 194:109:326780107418975552344604789713082409463630392877520610880 194:110:252511901187390199539012792051018225494623485405356835680 194:111:191090087385052042894388058849419197671606961928378145920 194:112:141611404044279638930662579325908869703065873571923090280 194:113:102762257802043631790392314201102011642932757813253923920 194:114:73015288438294159430015591669204060904189064762048840680 194:115:50793244130987241342619542030750651063783697225773106560 194:116:34591950744379241948852963969218115810680276558931684640 194:117:23061300496252827965901975979478743873786851039287789760 194:118:15048475747554811469275018223897146426115148559535252640 194:119:9610791233732484635839507437110782591468498239703186560 194:120:6006744521082802897399692148194239119667811399814491600 194:121:3673546236034110862872538999722096651697669781704730400 194:122:2198105534676148303194224155571418488310900771020043600 194:123:1286695922737257543333204383749123017547844353767830400 194:124:736737181567300690134334768114417211660459267076741600 194:125:412572821677688386475227470144073638529857189562975296 194:126:225932735680638878307862662221754611575874175236867424 194:127:120971858474672785235705992370703256591806645008716416 194:128:63321207170336536021814855381539985872273790746749999 194:129:32396896691800088197207600427764643934651706893686046 194:130:16198448345900044098603800213882321967325853446843023 194:131:7913745756775594063440024531973042793197363516014912 194:132:3777015020279260803005466253896224969480559859916208 194:133:1760713768851986238995029381515533444419509107630112 194:134:801518954477396720736543225913787612758134743025648 194:135:356230646434398542549574767072794494559170996900288 194:136:154541236320805250076653759244815258669052123655272 194:137:65426216836545288353619839680286751845292139941648 194:138:27023872171616532146060368563596701849142405628072 194:139:10887315407269969785463170068787160457208451188288 194:140:4277159624284630987146245384166384465331891538256 194:141:1638061132704752292949625891808402561190937184864 194:142:611389014319379376945987128632713631993800498576 194:143:222323277934319773434904410411895866179563817664 194:144:78739494268404919758195312020879785938595518756 194:145:27151549747725834399377693800303374461584661640 194:146:9112506422181958120339089015170310606970194660 194:147:2975512301120639386233171923320917749214757440 194:148:944926203734257102384858651324886041980362160 194:149:291722183703193467850359046717750053228836640 194:150:87516655110958040355107714015325015968650992 194:151:25501541886636779971024764348836428494176448 194:152:7214251981088036439171479388157673850326232 194:153:1980382896769264904870602184984459488324848 194:154:527244797191817279868147334963395058579992 194:155:136063173468856072224038021926037434472256 194:156:34015793367214018056009505481509358618064 194:157:8233121961491290994448160562403539028576 194:158:1928009573260618777180898359550195848464 194:159:436530469417498591059826043671742456256 194:160:95491040185077816794336947053193662306 194:161:20165809728525750130481094408748972164 194:162:4107850129884875026579482194374790626 194:163:806449105253472397856094663926339264 194:164:152438550383278319106944723059247056 194:165:27716100069686967110353586010772192 194:166:4841969289282662928917192736821648 194:167:811827186227033305447193991802432 194:168:130472226357916066946870462968248 194:169:20072650208910164145672378918192 194:170:2951860324839730021422408664440 194:171:414296185942418248620688935360 194:172:55400071376021044873696776240 194:173:7045095781921751371221555360 194:174:850270180576763096526739440 194:175:97173734923058639603055936 194:176:10490346383739284957148084 194:177:1066814886481961182082856 194:178:101886815001086180311284 194:179:9107201340879211647936 194:180:758933445073267637328 194:181:58702034425556612832 194:182:4193002458968329488 194:183:274950980915956032 194:184:16437286902584328 194:185:888501994734288 194:186:42992032003272 194:187:1839231315648 194:188:68482017072 194:189:2174032288 194:190:57211376 194:191:1198144 194:192:18721 194:193:194 194:194:1 # binomial(195, k) for 0 <= k <= 195 195:0:1 195:1:195 195:2:18915 195:3:1216865 195:4:58409520 195:5:2231243664 195:6:70656049360 195:7:1907713332720 195:8:44831263318920 195:9:931494026737560 195:10:17325788897318616 195:11:291388267818540360 195:12:4467953439884285520 195:13:62895036884524942320 195:14:817635479498824250160 195:15:9866134785952479285264 195:16:110994016341965391959220 195:17:1168701701483047362394140 195:18:11557161270221246139230940 195:19:107664081306797924560204020 195:20:947443915499821736129795376 195:21:7895365962498514467748294800 195:22:62445167157942796244918331600 195:23:469696257318439293494385711600 195:24:3366156510782148270043097599800 195:25:23024510533749894167094787582632 195:26:150544876566826231092542841886440 195:27:942299412584949372394064454770680 195:28:5653796475509696234364386728624080 195:29:32558069358969630039270778747593840 195:30:180154650452965286217298309070019248 195:31:958887655636750716963039386985586320 195:32:4914299235138347424435576858301129890 195:33:24273659858410625157060576603123762790 195:34:115656849913603566924818041461942634470 195:35:532021509602576407854162990724936118562 195:36:2364540042678117368240724403221938304720 195:37:10161131534751909771629058921953734877040 195:38:42248915328705309050457666043912897646640 195:39:170078966836070090280047527407546793090320 195:40:663307970660673352092185356889432493052248 195:41:2507627693961082184738749519947854546904840 195:42:9194634877857301344042081573142133338651080 195:43:32715793867724816410196243736994102344502680 195:44:113018196997594820326132478364161444462827440 195:45:379238838814151508205466760733075069197487632 195:46:1236648387437450570235217698042636095209198800 195:47:3920438504854896488618030574645803791195119600 195:48:12088018723302597506572260938491228356184952100 195:49:36264056169907792519716782815473685068554856300 195:50:105891044016130754157573005821183160400180180396 195:51:301062772202724693193099722432775652118159336420 195:52:833712292253699150380891539044609498173364316240 195:53:2249450147024131669895613020441116193184737683440 195:54:5915220756989383280095871275974787026522828723120 195:55:15164475031554600772609415452953544922540342726544 195:56:37911187578886501931523538632383862306350856816360 195:57:92450089008161820499680208243883453694434545569720 195:58:219967453157350538430273598925102010514344263596920 195:59:510771882755203792626228526317609753228223120555560 195:60:1157749600911795263286117992986582107317305739925936 195:61:2562232723329382959731572607429321057177643850655760 195:62:5537728789131247042000495635411758413900068967546320 195:63:11690760777054854866445490785869267762677923375931120 195:64:24112194102675638162043824745855364760523216962857935 195:65:48595345037700132295811400641646965901977560340529069 195:66:95718103862136624219022455809304629806925497640436045 195:67:184293065645009321257520847752243242464080435755466415 195:68:346904594155311663543568654592457868167680820245583840 195:69:638505557358327264783090132365828250105731364799842720 195:70:1149310003244989076609562238258490850190316456639716896 195:71:2023433104304558233467539151863540229208303620844572000 195:72:3484801457413405846527428539320541505858745124787874000 195:73:5871651770710259166066763155293515140008570552724774000 195:74:9680290757116913760272231147916335771365481181519222000 195:75:15617535754815287533239199585305021711136309639517678160 195:76:24659266981287296105114525661007929017583646799238439200 195:77:38109776243807639435176994203375890299901999598823042400 195:78:57653251240632069914754939948696859684467127598219474400 195:79:85385194875366483291472505999968766874463973784704791200 195:80:123808532569281400772635133699954711967972761987821947240 195:81:175777546240337791220407905870306072547121822575302764600 195:82:244373661846323270721054893527010881345998631385177014200 195:83:332701491429331681825050638175328067374672835500301236200 195:84:443601988572442242433400850900437423166230447333734981600 195:85:579292008606365751883617581764100634958253878282877446560 195:86:740954894729072473339510860395942672621022402454843245600 195:87:928322799143320684988582572220204038111395883535378319200 195:88:1139305253494075386122351338633886774045804038884327937200 195:89:1369726540717596250731366216110403200257314968096888643600 195:90:1613233481289613361972497987863363769191948740203002180240 195:91:1861423247641861571506728447534650502913787007926540977200 195:92:2104217584290800037355432158082648394598194008960437626400 195:93:2330477539590886062877521637446374028425956805622850274400 195:94:2528816053598621046952204329995001605313272278441816255200 195:95:2688530751720639218338659340310475390912005264448667808160 195:96:2800552866375665852436103479490078532200005483800695633500 195:97:2858296224445267210218291180098121388534026215425452244500 195:98:2858296224445267210218291180098121388534026215425452244500 195:99:2800552866375665852436103479490078532200005483800695633500 195:100:2688530751720639218338659340310475390912005264448667808160 195:101:2528816053598621046952204329995001605313272278441816255200 195:102:2330477539590886062877521637446374028425956805622850274400 195:103:2104217584290800037355432158082648394598194008960437626400 195:104:1861423247641861571506728447534650502913787007926540977200 195:105:1613233481289613361972497987863363769191948740203002180240 195:106:1369726540717596250731366216110403200257314968096888643600 195:107:1139305253494075386122351338633886774045804038884327937200 195:108:928322799143320684988582572220204038111395883535378319200 195:109:740954894729072473339510860395942672621022402454843245600 195:110:579292008606365751883617581764100634958253878282877446560 195:111:443601988572442242433400850900437423166230447333734981600 195:112:332701491429331681825050638175328067374672835500301236200 195:113:244373661846323270721054893527010881345998631385177014200 195:114:175777546240337791220407905870306072547121822575302764600 195:115:123808532569281400772635133699954711967972761987821947240 195:116:85385194875366483291472505999968766874463973784704791200 195:117:57653251240632069914754939948696859684467127598219474400 195:118:38109776243807639435176994203375890299901999598823042400 195:119:24659266981287296105114525661007929017583646799238439200 195:120:15617535754815287533239199585305021711136309639517678160 195:121:9680290757116913760272231147916335771365481181519222000 195:122:5871651770710259166066763155293515140008570552724774000 195:123:3484801457413405846527428539320541505858745124787874000 195:124:2023433104304558233467539151863540229208303620844572000 195:125:1149310003244989076609562238258490850190316456639716896 195:126:638505557358327264783090132365828250105731364799842720 195:127:346904594155311663543568654592457868167680820245583840 195:128:184293065645009321257520847752243242464080435755466415 195:129:95718103862136624219022455809304629806925497640436045 195:130:48595345037700132295811400641646965901977560340529069 195:131:24112194102675638162043824745855364760523216962857935 195:132:11690760777054854866445490785869267762677923375931120 195:133:5537728789131247042000495635411758413900068967546320 195:134:2562232723329382959731572607429321057177643850655760 195:135:1157749600911795263286117992986582107317305739925936 195:136:510771882755203792626228526317609753228223120555560 195:137:219967453157350538430273598925102010514344263596920 195:138:92450089008161820499680208243883453694434545569720 195:139:37911187578886501931523538632383862306350856816360 195:140:15164475031554600772609415452953544922540342726544 195:141:5915220756989383280095871275974787026522828723120 195:142:2249450147024131669895613020441116193184737683440 195:143:833712292253699150380891539044609498173364316240 195:144:301062772202724693193099722432775652118159336420 195:145:105891044016130754157573005821183160400180180396 195:146:36264056169907792519716782815473685068554856300 195:147:12088018723302597506572260938491228356184952100 195:148:3920438504854896488618030574645803791195119600 195:149:1236648387437450570235217698042636095209198800 195:150:379238838814151508205466760733075069197487632 195:151:113018196997594820326132478364161444462827440 195:152:32715793867724816410196243736994102344502680 195:153:9194634877857301344042081573142133338651080 195:154:2507627693961082184738749519947854546904840 195:155:663307970660673352092185356889432493052248 195:156:170078966836070090280047527407546793090320 195:157:42248915328705309050457666043912897646640 195:158:10161131534751909771629058921953734877040 195:159:2364540042678117368240724403221938304720 195:160:532021509602576407854162990724936118562 195:161:115656849913603566924818041461942634470 195:162:24273659858410625157060576603123762790 195:163:4914299235138347424435576858301129890 195:164:958887655636750716963039386985586320 195:165:180154650452965286217298309070019248 195:166:32558069358969630039270778747593840 195:167:5653796475509696234364386728624080 195:168:942299412584949372394064454770680 195:169:150544876566826231092542841886440 195:170:23024510533749894167094787582632 195:171:3366156510782148270043097599800 195:172:469696257318439293494385711600 195:173:62445167157942796244918331600 195:174:7895365962498514467748294800 195:175:947443915499821736129795376 195:176:107664081306797924560204020 195:177:11557161270221246139230940 195:178:1168701701483047362394140 195:179:110994016341965391959220 195:180:9866134785952479285264 195:181:817635479498824250160 195:182:62895036884524942320 195:183:4467953439884285520 195:184:291388267818540360 195:185:17325788897318616 195:186:931494026737560 195:187:44831263318920 195:188:1907713332720 195:189:70656049360 195:190:2231243664 195:191:58409520 195:192:1216865 195:193:18915 195:194:195 195:195:1 # binomial(196, k) for 0 <= k <= 196 196:0:1 196:1:196 196:2:19110 196:3:1235780 196:4:59626385 196:5:2289653184 196:6:72887293024 196:7:1978369382080 196:8:46738976651640 196:9:976325290056480 196:10:18257282924056176 196:11:308714056715858976 196:12:4759341707702825880 196:13:67362990324409227840 196:14:880530516383349192480 196:15:10683770265451303535424 196:16:120860151127917871244484 196:17:1279695717825012754353360 196:18:12725862971704293501625080 196:19:119221242577019170699434960 196:20:1055107996806619660689999396 196:21:8842809877998336203878090176 196:22:70340533120441310712666626400 196:23:532141424476382089739304043200 196:24:3835852768100587563537483311400 196:25:26390667044532042437137885182432 196:26:173569387100576125259637629469072 196:27:1092844289151775603486607296657120 196:28:6596095888094645606758451183394760 196:29:38211865834479326273635165476217920 196:30:212712719811934916256569087817613088 196:31:1139042306089716003180337696055605568 196:32:5873186890775098141398616245286716210 196:33:29187959093548972581496153461424892680 196:34:139930509772014192081878618065066397260 196:35:647678359516179974778981032186878753032 196:36:2896561552280693776094887393946874423282 196:37:12525671577430027139869783325175673181760 196:38:52410046863457218822086724965866632523680 196:39:212327882164775399330505193451459690736960 196:40:833386937496743442372232884296979286142568 196:41:3170935664621755536830934876837287039957088 196:42:11702262571818383528780831093089987885555920 196:43:41910428745582117754238325310136235683153760 196:44:145733990865319636736328722101155546807330120 196:45:492257035811746328531599239097236513660315072 196:46:1615887226251602078440684458775711164406686432 196:47:5157086892292347058853248272688439886404318400 196:48:16008457228157493995190291513137032147380071700 196:49:48352074893210390026289043753964913424739808400 196:50:142155100186038546677289788636656845468735036696 196:51:406953816218855447350672728253958812518339516816 196:52:1134775064456423843573991261477385150291523652660 196:53:3083162439277830820276504559485725691358101999680 196:54:8164670904013514949991484296415903219707566406560 196:55:21079695788543984052705286728928331949063171449664 196:56:53075662610441102704132954085337407228891199542904 196:57:130361276587048322431203746876267316000785402386080 196:58:312417542165512358929953807168985464208778809166640 196:59:730739335912554331056502125242711763742567384152480 196:60:1668521483666999055912346519304191860545528860481496 196:61:3719982324241178223017690600415903164494949590581696 196:62:8099961512460630001732068242841079471077712818202080 196:63:17228489566186101908445986421281026176577992343477440 196:64:35802954879730493028489315531724632523201140338789055 196:65:72707539140375770457855225387502330662500777303387004 196:66:144313448899836756514833856450951595708903057980965114 196:67:280011169507145945476543303561547872271005933395902460 196:68:531197659800320984801089502344701110631761256001050255 196:69:985410151513638928326658786958286118273412185045426560 196:70:1787815560603316341392652370624319100296047821439559616 196:71:3172743107549547310077101390122031079398620077484288896 196:72:5508234561717964079994967691184081735067048745632446000 196:73:9356453228123665012594191694614056645867315677512648000 196:74:15551942527827172926338994303209850911374051734243996000 196:75:25297826511932201293511430733221357482501790821036900160 196:76:40276802736102583638353725246312950728719956438756117360 196:77:62769043225094935540291519864383819317485646398061481600 196:78:95763027484439709349931934152072749984369127197042516800 196:79:143038446115998553206227445948665626558931101382924265600 196:80:209193727444647884064107639699923478842436735772526738440 196:81:299586078809619191993043039570260784515094584563124711840 196:82:420151208086661061941462799397316953893120453960479778800 196:83:577075153275654952546105531702338948720671466885478250400 196:84:776303480001773924258451489075765490540903282834036217800 196:85:1022893997178807994317018432664538058124484325616612428160 196:86:1320246903335438225223128442160043307579276280737720692160 196:87:1669277693872393158328093432616146710732418285990221564800 196:88:2067628052637396071110933910854090812157199922419706256400 196:89:2509031794211671636853717554744289974303119006981216580800 196:90:2982960022007209612703864203973766969449263708299890823840 196:91:3474656728931474933479226435398014272105735748129543157440 196:92:3965640831932661608862160605617298897511981016886978603600 196:93:4434695123881686100232953795529022423024150814583287900800 196:94:4859293593189507109829725967441375633739229084064666529600 196:95:5217346805319260265290863670305476996225277542890484063360 196:96:5489083618096305070774762819800553923112010748249363441660 196:97:5658849090820933062654394659588199920734031699226147878000 196:98:5716592448890534420436582360196242777068052430850904489000 196:99:5658849090820933062654394659588199920734031699226147878000 196:100:5489083618096305070774762819800553923112010748249363441660 196:101:5217346805319260265290863670305476996225277542890484063360 196:102:4859293593189507109829725967441375633739229084064666529600 196:103:4434695123881686100232953795529022423024150814583287900800 196:104:3965640831932661608862160605617298897511981016886978603600 196:105:3474656728931474933479226435398014272105735748129543157440 196:106:2982960022007209612703864203973766969449263708299890823840 196:107:2509031794211671636853717554744289974303119006981216580800 196:108:2067628052637396071110933910854090812157199922419706256400 196:109:1669277693872393158328093432616146710732418285990221564800 196:110:1320246903335438225223128442160043307579276280737720692160 196:111:1022893997178807994317018432664538058124484325616612428160 196:112:776303480001773924258451489075765490540903282834036217800 196:113:577075153275654952546105531702338948720671466885478250400 196:114:420151208086661061941462799397316953893120453960479778800 196:115:299586078809619191993043039570260784515094584563124711840 196:116:209193727444647884064107639699923478842436735772526738440 196:117:143038446115998553206227445948665626558931101382924265600 196:118:95763027484439709349931934152072749984369127197042516800 196:119:62769043225094935540291519864383819317485646398061481600 196:120:40276802736102583638353725246312950728719956438756117360 196:121:25297826511932201293511430733221357482501790821036900160 196:122:15551942527827172926338994303209850911374051734243996000 196:123:9356453228123665012594191694614056645867315677512648000 196:124:5508234561717964079994967691184081735067048745632446000 196:125:3172743107549547310077101390122031079398620077484288896 196:126:1787815560603316341392652370624319100296047821439559616 196:127:985410151513638928326658786958286118273412185045426560 196:128:531197659800320984801089502344701110631761256001050255 196:129:280011169507145945476543303561547872271005933395902460 196:130:144313448899836756514833856450951595708903057980965114 196:131:72707539140375770457855225387502330662500777303387004 196:132:35802954879730493028489315531724632523201140338789055 196:133:17228489566186101908445986421281026176577992343477440 196:134:8099961512460630001732068242841079471077712818202080 196:135:3719982324241178223017690600415903164494949590581696 196:136:1668521483666999055912346519304191860545528860481496 196:137:730739335912554331056502125242711763742567384152480 196:138:312417542165512358929953807168985464208778809166640 196:139:130361276587048322431203746876267316000785402386080 196:140:53075662610441102704132954085337407228891199542904 196:141:21079695788543984052705286728928331949063171449664 196:142:8164670904013514949991484296415903219707566406560 196:143:3083162439277830820276504559485725691358101999680 196:144:1134775064456423843573991261477385150291523652660 196:145:406953816218855447350672728253958812518339516816 196:146:142155100186038546677289788636656845468735036696 196:147:48352074893210390026289043753964913424739808400 196:148:16008457228157493995190291513137032147380071700 196:149:5157086892292347058853248272688439886404318400 196:150:1615887226251602078440684458775711164406686432 196:151:492257035811746328531599239097236513660315072 196:152:145733990865319636736328722101155546807330120 196:153:41910428745582117754238325310136235683153760 196:154:11702262571818383528780831093089987885555920 196:155:3170935664621755536830934876837287039957088 196:156:833386937496743442372232884296979286142568 196:157:212327882164775399330505193451459690736960 196:158:52410046863457218822086724965866632523680 196:159:12525671577430027139869783325175673181760 196:160:2896561552280693776094887393946874423282 196:161:647678359516179974778981032186878753032 196:162:139930509772014192081878618065066397260 196:163:29187959093548972581496153461424892680 196:164:5873186890775098141398616245286716210 196:165:1139042306089716003180337696055605568 196:166:212712719811934916256569087817613088 196:167:38211865834479326273635165476217920 196:168:6596095888094645606758451183394760 196:169:1092844289151775603486607296657120 196:170:173569387100576125259637629469072 196:171:26390667044532042437137885182432 196:172:3835852768100587563537483311400 196:173:532141424476382089739304043200 196:174:70340533120441310712666626400 196:175:8842809877998336203878090176 196:176:1055107996806619660689999396 196:177:119221242577019170699434960 196:178:12725862971704293501625080 196:179:1279695717825012754353360 196:180:120860151127917871244484 196:181:10683770265451303535424 196:182:880530516383349192480 196:183:67362990324409227840 196:184:4759341707702825880 196:185:308714056715858976 196:186:18257282924056176 196:187:976325290056480 196:188:46738976651640 196:189:1978369382080 196:190:72887293024 196:191:2289653184 196:192:59626385 196:193:1235780 196:194:19110 196:195:196 196:196:1 # binomial(197, k) for 0 <= k <= 197 197:0:1 197:1:197 197:2:19306 197:3:1254890 197:4:60862165 197:5:2349279569 197:6:75176946208 197:7:2051256675104 197:8:48717346033720 197:9:1023064266708120 197:10:19233608214112656 197:11:326971339639915152 197:12:5068055764418684856 197:13:72122332032112053720 197:14:947893506707758420320 197:15:11564300781834652727904 197:16:131543921393369174779908 197:17:1400555868952930625597844 197:18:14005558689529306255978440 197:19:131947105548723464201060040 197:20:1174329239383638831389434356 197:21:9897917874804955864568089572 197:22:79183342998439646916544716576 197:23:602481957596823400451970669600 197:24:4367994192576969653276787354600 197:25:30226519812632630000675368493832 197:26:199960054145108167696775514651504 197:27:1266413676252351728746244926126192 197:28:7688940177246421210245058480051880 197:29:44807961722573971880393616659612680 197:30:250924585646414242530204253293831008 197:31:1351755025901650919436906783873218656 197:32:7012229196864814144578953941342321778 197:33:35061145984324070722894769706711608890 197:34:169118468865563164663374771526491289940 197:35:787608869288194166860859650251945150292 197:36:3544239911796873750873868426133753176314 197:37:15422233129710720915964670719122547605042 197:38:64935718440887245961956508291042305705440 197:39:264737929028232618152591918417326323260640 197:40:1045714819661518841702738077748438976879528 197:41:4004322602118498979203167761134266326099656 197:42:14873198236440139065611765969927274925513008 197:43:53612691317400501283019156403226223568709680 197:44:187644419610901754490567047411291782490483880 197:45:637991026677065965267927961198392060467645192 197:46:2108144262063348406972283697872947678067001504 197:47:6772974118543949137293932731464151050811004832 197:48:21165544120449841054043539785825472033784390100 197:49:64360532121367884021479335267101945572119880100 197:50:190507175079248936703578832390621758893474845096 197:51:549108916404893994027962516890615657987074553512 197:52:1541728880675279290924663989731343962809863169476 197:53:4217937503734254663850495820963110841649625652340 197:54:11247833343291345770267988855901628911065668406240 197:55:29244366692557499002696771025344235168770737856224 197:56:74155358398985086756838240814265739177954370992568 197:57:183436939197489425135336700961604723229676601928984 197:58:442778818752560681361157554045252780209564211552720 197:59:1043156878078066689986455932411697227951346193319120 197:60:2399260819579553386968848644546903624288096244633976 197:61:5388503807908177278930037119720095025040478451063192 197:62:11819943836701808224749758843256982635572662408783776 197:63:25328451078646731910178054664122105647655705161679520 197:64:53031444445916594936935301953005658699779132682266495 197:65:108510494020106263486344540919226963185701917642176059 197:66:217020988040212526972689081838453926371403835284352118 197:67:424324618406982701991377160012499467979908991376867574 197:68:811208829307466930277632805906248982902767189396952715 197:69:1516607811313959913127748289302987228905173441046476815 197:70:2773225712116955269719311157582605218569460006484986176 197:71:4960558668152863651469753760746350179694667898923848512 197:72:8680977669267511390072069081306112814465668823116734896 197:73:14864687789841629092589159385798138380934364423145094000 197:74:24908395755950837938933185997823907557241367411756644000 197:75:40849769039759374219850425036431208393875842555280896160 197:76:65574629248034784931865155979534308211221747259793017520 197:77:103045845961197519178645245110696770046205602836817598960 197:78:158532070709534644890223454016456569301854773595103998400 197:79:238801473600438262556159380100738376543300228579966782400 197:80:352232173560646437270335085648589105401367837155451004040 197:81:508779806254267076057150679270184263357531320335651450280 197:82:719737286896280253934505838967577738408215038523604490640 197:83:997226361362316014487568331099655902613791920845958029200 197:84:1353378633277428876804557020778104439261574749719514468200 197:85:1799197477180581918575469921740303548665387608450648645960 197:86:2343140900514246219540146874824581365703760606354333120320 197:87:2989524597207831383551221874776190018311694566727942256960 197:88:3736905746509789229439027343470237522889618208409927821200 197:89:4576659846849067707964651465598380786460318929400922837200 197:90:5491991816218881249557581758718056943752382715281107404640 197:91:6457616750938684546183090639371781241554999456429433981280 197:92:7440297560864136542341387041015313169617716765016521761040 197:93:8400335955814347709095114401146321320536131831470266504400 197:94:9293988717071193210062679762970398056763379898647954430400 197:95:10076640398508767375120589637746852629964506626955150592960 197:96:10706430423415565336065626490106030919337288291139847505020 197:97:11147932708917238133429157479388753843846042447475511319660 197:98:11375441539711467483090977019784442697802084130077052367000 197:99:11375441539711467483090977019784442697802084130077052367000 197:100:11147932708917238133429157479388753843846042447475511319660 197:101:10706430423415565336065626490106030919337288291139847505020 197:102:10076640398508767375120589637746852629964506626955150592960 197:103:9293988717071193210062679762970398056763379898647954430400 197:104:8400335955814347709095114401146321320536131831470266504400 197:105:7440297560864136542341387041015313169617716765016521761040 197:106:6457616750938684546183090639371781241554999456429433981280 197:107:5491991816218881249557581758718056943752382715281107404640 197:108:4576659846849067707964651465598380786460318929400922837200 197:109:3736905746509789229439027343470237522889618208409927821200 197:110:2989524597207831383551221874776190018311694566727942256960 197:111:2343140900514246219540146874824581365703760606354333120320 197:112:1799197477180581918575469921740303548665387608450648645960 197:113:1353378633277428876804557020778104439261574749719514468200 197:114:997226361362316014487568331099655902613791920845958029200 197:115:719737286896280253934505838967577738408215038523604490640 197:116:508779806254267076057150679270184263357531320335651450280 197:117:352232173560646437270335085648589105401367837155451004040 197:118:238801473600438262556159380100738376543300228579966782400 197:119:158532070709534644890223454016456569301854773595103998400 197:120:103045845961197519178645245110696770046205602836817598960 197:121:65574629248034784931865155979534308211221747259793017520 197:122:40849769039759374219850425036431208393875842555280896160 197:123:24908395755950837938933185997823907557241367411756644000 197:124:14864687789841629092589159385798138380934364423145094000 197:125:8680977669267511390072069081306112814465668823116734896 197:126:4960558668152863651469753760746350179694667898923848512 197:127:2773225712116955269719311157582605218569460006484986176 197:128:1516607811313959913127748289302987228905173441046476815 197:129:811208829307466930277632805906248982902767189396952715 197:130:424324618406982701991377160012499467979908991376867574 197:131:217020988040212526972689081838453926371403835284352118 197:132:108510494020106263486344540919226963185701917642176059 197:133:53031444445916594936935301953005658699779132682266495 197:134:25328451078646731910178054664122105647655705161679520 197:135:11819943836701808224749758843256982635572662408783776 197:136:5388503807908177278930037119720095025040478451063192 197:137:2399260819579553386968848644546903624288096244633976 197:138:1043156878078066689986455932411697227951346193319120 197:139:442778818752560681361157554045252780209564211552720 197:140:183436939197489425135336700961604723229676601928984 197:141:74155358398985086756838240814265739177954370992568 197:142:29244366692557499002696771025344235168770737856224 197:143:11247833343291345770267988855901628911065668406240 197:144:4217937503734254663850495820963110841649625652340 197:145:1541728880675279290924663989731343962809863169476 197:146:549108916404893994027962516890615657987074553512 197:147:190507175079248936703578832390621758893474845096 197:148:64360532121367884021479335267101945572119880100 197:149:21165544120449841054043539785825472033784390100 197:150:6772974118543949137293932731464151050811004832 197:151:2108144262063348406972283697872947678067001504 197:152:637991026677065965267927961198392060467645192 197:153:187644419610901754490567047411291782490483880 197:154:53612691317400501283019156403226223568709680 197:155:14873198236440139065611765969927274925513008 197:156:4004322602118498979203167761134266326099656 197:157:1045714819661518841702738077748438976879528 197:158:264737929028232618152591918417326323260640 197:159:64935718440887245961956508291042305705440 197:160:15422233129710720915964670719122547605042 197:161:3544239911796873750873868426133753176314 197:162:787608869288194166860859650251945150292 197:163:169118468865563164663374771526491289940 197:164:35061145984324070722894769706711608890 197:165:7012229196864814144578953941342321778 197:166:1351755025901650919436906783873218656 197:167:250924585646414242530204253293831008 197:168:44807961722573971880393616659612680 197:169:7688940177246421210245058480051880 197:170:1266413676252351728746244926126192 197:171:199960054145108167696775514651504 197:172:30226519812632630000675368493832 197:173:4367994192576969653276787354600 197:174:602481957596823400451970669600 197:175:79183342998439646916544716576 197:176:9897917874804955864568089572 197:177:1174329239383638831389434356 197:178:131947105548723464201060040 197:179:14005558689529306255978440 197:180:1400555868952930625597844 197:181:131543921393369174779908 197:182:11564300781834652727904 197:183:947893506707758420320 197:184:72122332032112053720 197:185:5068055764418684856 197:186:326971339639915152 197:187:19233608214112656 197:188:1023064266708120 197:189:48717346033720 197:190:2051256675104 197:191:75176946208 197:192:2349279569 197:193:60862165 197:194:1254890 197:195:19306 197:196:197 197:197:1 # binomial(198, k) for 0 <= k <= 198 198:0:1 198:1:198 198:2:19503 198:3:1274196 198:4:62117055 198:5:2410141734 198:6:77526225777 198:7:2126433621312 198:8:50768602708824 198:9:1071781612741840 198:10:20256672480820776 198:11:346204947854027808 198:12:5395027104058600008 198:13:77190387796530738576 198:14:1020015838739870474040 198:15:12512194288542411148224 198:16:143108222175203827507812 198:17:1532099790346299800377752 198:18:15406114558482236881576284 198:19:145952664238252770457038480 198:20:1306276344932362295590494396 198:21:11072247114188594695957523928 198:22:89081260873244602781112806148 198:23:681665300595263047368515386176 198:24:4970476150173793053728758024200 198:25:34594514005209599653952155848432 198:26:230186573957740797697450883145336 198:27:1466373730397459896443020440777696 198:28:8955353853498772938991303406178072 198:29:52496901899820393090638675139664560 198:30:295732547368988214410597869953443688 198:31:1602679611548065161967111037167049664 198:32:8363984222766465064015860725215540434 198:33:42073375181188884867473723648053930668 198:34:204179614849887235386269541233202898830 198:35:956727338153757331524234421778436440232 198:36:4331848781085067917734728076385698326606 198:37:18966473041507594666838539145256300781356 198:38:80357951570597966877921179010164853310482 198:39:329673647469119864114548426708368628966080 198:40:1310452748689751459855329996165765300140168 198:41:5050037421780017820905905838882705302979184 198:42:18877520838558638044814933731061541251612664 198:43:68485889553840640348630922373153498494222688 198:44:241257110928302255773586203814518006059193560 198:45:825635446287967719758495008609683842958129072 198:46:2746135288740414372240211659071339738534646696 198:47:8881118380607297544266216429337098728878006336 198:48:27938518238993790191337472517289623084595394932 198:49:85526076241817725075522875052927417605904270200 198:50:254867707200616820725058167657723704465594725196 198:51:739616091484142930731541349281237416880549398608 198:52:2090837797080173284952626506621959620796937722988 198:53:5759666384409533954775159810694454804459488821816 198:54:15465770847025600434118484676864739752715294058580 198:55:40492200035848844772964759881245864079836406262464 198:56:103399725091542585759535011839609974346725108848792 198:57:257592297596474511892174941775870462407630972921552 198:58:626215757950050106496494255006857503439240813481704 198:59:1485935696830627371347613486456950008160910404871840 198:60:3442417697657620076955304576958600852239442437953096 198:61:7787764627487730665898885764266998649328574695697168 198:62:17208447644609985503679795962977077660613140859846968 198:63:37148394915348540134927813507379088283228367570463296 198:64:78359895524563326847113356617127764347434837843946015 198:65:161541938466022858423279842872232621885481050324442554 198:66:325531482060318790459033622757680889557105752926528177 198:67:641345606447195228964066241850953394351312826661219692 198:68:1235533447714449632269009965918748450882676180773820289 198:69:2327816640621426843405381095209236211807940630443429530 198:70:4289833523430915182847059446885592447474633447531462991 198:71:7733784380269818921189064918328955398264127905408834688 198:72:13641536337420375041541822842052462994160336722040583408 198:73:23545665459109140482661228467104251195400033246261828896 198:74:39773083545792467031522345383622045938175731834901738000 198:75:65758164795710212158783611034255115951117209967037540160 198:76:106424398287794159151715581015965516605097589815073913680 198:77:168620475209232304110510401090231078257427350096610616480 198:78:261577916670732164068868699127153339348060376431921597360 198:79:397333544309972907446382834117194945845155002175070780800 198:80:591033647161084699826494465749327481944668065735417786440 198:81:861011979814913513327485764918773368758899157491102454320 198:82:1228517093150547329991656518237762001765746358859255940920 198:83:1716963648258596268422074170067233641022006959369562519840 198:84:2350604994639744891292125351877760341875366670565472497400 198:85:3152576110458010795380026942518407987926962358170163114160 198:86:4142338377694828138115616796564884914369148214804981766280 198:87:5332665497722077603091368749600771384015455173082275377280 198:88:6726430343717620612990249218246427541201312775137870078160 198:89:8313565593358856937403678809068618309349937137810850658400 198:90:10068651663067948957522233224316437730212701644682030241840 198:91:11949608567157565795740672398089838185307382171710541385920 198:92:13897914311802821088524477680387094411172716221445955742320 198:93:15840633516678484251436501442161634490153848596486788265440 198:94:17694324672885540919157794164116719377299511730118220934800 198:95:19370629115579960585183269400717250686727886525603105023360 198:96:20783070821924332711186216127852883549301794918094998097980 198:97:21854363132332803469494783969494784763183330738615358824680 198:98:22523374248628705616520134499173196541648126577552563686660 198:99:22750883079422934966181954039568885395604168260154104734000 198:100:22523374248628705616520134499173196541648126577552563686660 198:101:21854363132332803469494783969494784763183330738615358824680 198:102:20783070821924332711186216127852883549301794918094998097980 198:103:19370629115579960585183269400717250686727886525603105023360 198:104:17694324672885540919157794164116719377299511730118220934800 198:105:15840633516678484251436501442161634490153848596486788265440 198:106:13897914311802821088524477680387094411172716221445955742320 198:107:11949608567157565795740672398089838185307382171710541385920 198:108:10068651663067948957522233224316437730212701644682030241840 198:109:8313565593358856937403678809068618309349937137810850658400 198:110:6726430343717620612990249218246427541201312775137870078160 198:111:5332665497722077603091368749600771384015455173082275377280 198:112:4142338377694828138115616796564884914369148214804981766280 198:113:3152576110458010795380026942518407987926962358170163114160 198:114:2350604994639744891292125351877760341875366670565472497400 198:115:1716963648258596268422074170067233641022006959369562519840 198:116:1228517093150547329991656518237762001765746358859255940920 198:117:861011979814913513327485764918773368758899157491102454320 198:118:591033647161084699826494465749327481944668065735417786440 198:119:397333544309972907446382834117194945845155002175070780800 198:120:261577916670732164068868699127153339348060376431921597360 198:121:168620475209232304110510401090231078257427350096610616480 198:122:106424398287794159151715581015965516605097589815073913680 198:123:65758164795710212158783611034255115951117209967037540160 198:124:39773083545792467031522345383622045938175731834901738000 198:125:23545665459109140482661228467104251195400033246261828896 198:126:13641536337420375041541822842052462994160336722040583408 198:127:7733784380269818921189064918328955398264127905408834688 198:128:4289833523430915182847059446885592447474633447531462991 198:129:2327816640621426843405381095209236211807940630443429530 198:130:1235533447714449632269009965918748450882676180773820289 198:131:641345606447195228964066241850953394351312826661219692 198:132:325531482060318790459033622757680889557105752926528177 198:133:161541938466022858423279842872232621885481050324442554 198:134:78359895524563326847113356617127764347434837843946015 198:135:37148394915348540134927813507379088283228367570463296 198:136:17208447644609985503679795962977077660613140859846968 198:137:7787764627487730665898885764266998649328574695697168 198:138:3442417697657620076955304576958600852239442437953096 198:139:1485935696830627371347613486456950008160910404871840 198:140:626215757950050106496494255006857503439240813481704 198:141:257592297596474511892174941775870462407630972921552 198:142:103399725091542585759535011839609974346725108848792 198:143:40492200035848844772964759881245864079836406262464 198:144:15465770847025600434118484676864739752715294058580 198:145:5759666384409533954775159810694454804459488821816 198:146:2090837797080173284952626506621959620796937722988 198:147:739616091484142930731541349281237416880549398608 198:148:254867707200616820725058167657723704465594725196 198:149:85526076241817725075522875052927417605904270200 198:150:27938518238993790191337472517289623084595394932 198:151:8881118380607297544266216429337098728878006336 198:152:2746135288740414372240211659071339738534646696 198:153:825635446287967719758495008609683842958129072 198:154:241257110928302255773586203814518006059193560 198:155:68485889553840640348630922373153498494222688 198:156:18877520838558638044814933731061541251612664 198:157:5050037421780017820905905838882705302979184 198:158:1310452748689751459855329996165765300140168 198:159:329673647469119864114548426708368628966080 198:160:80357951570597966877921179010164853310482 198:161:18966473041507594666838539145256300781356 198:162:4331848781085067917734728076385698326606 198:163:956727338153757331524234421778436440232 198:164:204179614849887235386269541233202898830 198:165:42073375181188884867473723648053930668 198:166:8363984222766465064015860725215540434 198:167:1602679611548065161967111037167049664 198:168:295732547368988214410597869953443688 198:169:52496901899820393090638675139664560 198:170:8955353853498772938991303406178072 198:171:1466373730397459896443020440777696 198:172:230186573957740797697450883145336 198:173:34594514005209599653952155848432 198:174:4970476150173793053728758024200 198:175:681665300595263047368515386176 198:176:89081260873244602781112806148 198:177:11072247114188594695957523928 198:178:1306276344932362295590494396 198:179:145952664238252770457038480 198:180:15406114558482236881576284 198:181:1532099790346299800377752 198:182:143108222175203827507812 198:183:12512194288542411148224 198:184:1020015838739870474040 198:185:77190387796530738576 198:186:5395027104058600008 198:187:346204947854027808 198:188:20256672480820776 198:189:1071781612741840 198:190:50768602708824 198:191:2126433621312 198:192:77526225777 198:193:2410141734 198:194:62117055 198:195:1274196 198:196:19503 198:197:198 198:198:1 # binomial(199, k) for 0 <= k <= 199 199:0:1 199:1:199 199:2:19701 199:3:1293699 199:4:63391251 199:5:2472258789 199:6:79936367511 199:7:2203959847089 199:8:52895036330136 199:9:1122550215450664 199:10:21328454093562616 199:11:366461620334848584 199:12:5741232051912627816 199:13:82585414900589338584 199:14:1097206226536401212616 199:15:13532210127282281622264 199:16:155620416463746238656036 199:17:1675208012521503627885564 199:18:16938214348828536681954036 199:19:161358778796735007338614764 199:20:1452229009170615066047532876 199:21:12378523459120956991548018324 199:22:100153507987433197477070330076 199:23:770746561468507650149628192324 199:24:5652141450769056101097273410376 199:25:39564990155383392707680913872632 199:26:264781087962950397351403038993768 199:27:1696560304355200694140471323923032 199:28:10421727583896232835434323846955768 199:29:61452255753319166029629978545842632 199:30:348229449268808607501236545093108248 199:31:1898412158917053376377708907120493352 199:32:9966663834314530225982971762382590098 199:33:50437359403955349931489584373269471102 199:34:246252990031076120253743264881256829498 199:35:1160906953003644566910503963011639339062 199:36:5288576119238825249258962498164134766838 199:37:23298321822592662584573267221641999107962 199:38:99324424612105561544759718155421154091838 199:39:410031599039717830992469605718533482276562 199:40:1640126396158871323969878422874133929106248 199:41:6360490170469769280761235835048470603119352 199:42:23927558260338655865720839569944246554591848 199:43:87363410392399278393445856104215039745835352 199:44:309743000482142896122217126187671504553416248 199:45:1066892557216269975532081212424201849017322632 199:46:3571770735028382091998706667681023581492775768 199:47:11627253669347711916506428088408438467412653032 199:48:36819636619601087735603688946626721813473401268 199:49:113464594480811515266860347570217040690499665132 199:50:340393783442434545800581042710651122071498995396 199:51:994483798684759751456599516938961121346144123804 199:52:2830453888564316215684167855903197037677487121596 199:53:7850504181489707239727786317316414425256426544804 199:54:21225437231435134388893644487559194557174782880396 199:55:55957970882874445207083244558110603832551700321044 199:56:143891925127391430532499771720855838426561515111256 199:57:360992022688017097651709953615480436754356081770344 199:58:883808055546524618388669196782727965846871786403256 199:59:2112151454780677477844107741463807511600151218353544 199:60:4928353394488247448302918063415550860400352842824936 199:61:11230182325145350742854190341225599501568017133650264 199:62:24996212272097716169578681727244076309941715555544136 199:63:54356842559958525638607609470356165943841508430310264 199:64:115508290439911866982041170124506852630663205414409311 199:65:239901833990586185270393199489360386232915888168388569 199:66:487073420526341648882313465629913511442586803250970731 199:67:966877088507514019423099864608634283908418579587747869 199:68:1876879054161644861233076207769701845233989007435039981 199:69:3563350088335876475674391061127984662690616811217249819 199:70:6617650164052342026252440542094828659282574077974892521 199:71:12023617903700734104036124365214547845738761352940297679 199:72:21375320717690193962730887760381418392424464627449418096 199:73:37187201796529515524203051309156714189560369968302412304 199:74:63318749004901607514183573850726297133575765081163566896 199:75:105531248341502679190305956417877161889292941801939278160 199:76:172182563083504371310499192050220632556214799782111453840 199:77:275044873497026463262225982106196594862524939911684530160 199:78:430198391879964468179379100217384417605487726528532213840 199:79:658911460980705071515251533244348285193215378606992378160 199:80:988367191471057607272877299866522427789823067910488567240 199:81:1452045626975998213153980230668100850703567223226520240760 199:82:2089529072965460843319142283156535370524645516350358395240 199:83:2945480741409143598413730688304995642787753318228818460760 199:84:4067568642898341159714199521944993982897373629935035017240 199:85:5503181105097755686672152294396168329802329028735635611560 199:86:7294914488152838933495643739083292902296110572975144880440 199:87:9475003875416905741206985546165656298384603387887257143560 199:88:12059095841439698216081617967847198925216767948220145455440 199:89:15039995937076477550393928027315045850551249912948720736560 199:90:18382217256426805894925912033385056039562638782492880900240 199:91:22018260230225514753262905622406275915520083816392571627760 199:92:25847522878960386884265150078476932596480098393156497128240 199:93:29738547828481305339960979122548728901326564817932744007760 199:94:33534958189564025170594295606278353867453360326605009200240 199:95:37064953788465501504341063564833970064027398255721325958160 199:96:40153699937504293296369485528570134236029681443698103121340 199:97:42637433954257136180681000097347668312485125656710356922660 199:98:44377737380961509086014918468667981304831457316167922511340 199:99:45274257328051640582702088538742081937252294837706668420660 199:100:45274257328051640582702088538742081937252294837706668420660 199:101:44377737380961509086014918468667981304831457316167922511340 199:102:42637433954257136180681000097347668312485125656710356922660 199:103:40153699937504293296369485528570134236029681443698103121340 199:104:37064953788465501504341063564833970064027398255721325958160 199:105:33534958189564025170594295606278353867453360326605009200240 199:106:29738547828481305339960979122548728901326564817932744007760 199:107:25847522878960386884265150078476932596480098393156497128240 199:108:22018260230225514753262905622406275915520083816392571627760 199:109:18382217256426805894925912033385056039562638782492880900240 199:110:15039995937076477550393928027315045850551249912948720736560 199:111:12059095841439698216081617967847198925216767948220145455440 199:112:9475003875416905741206985546165656298384603387887257143560 199:113:7294914488152838933495643739083292902296110572975144880440 199:114:5503181105097755686672152294396168329802329028735635611560 199:115:4067568642898341159714199521944993982897373629935035017240 199:116:2945480741409143598413730688304995642787753318228818460760 199:117:2089529072965460843319142283156535370524645516350358395240 199:118:1452045626975998213153980230668100850703567223226520240760 199:119:988367191471057607272877299866522427789823067910488567240 199:120:658911460980705071515251533244348285193215378606992378160 199:121:430198391879964468179379100217384417605487726528532213840 199:122:275044873497026463262225982106196594862524939911684530160 199:123:172182563083504371310499192050220632556214799782111453840 199:124:105531248341502679190305956417877161889292941801939278160 199:125:63318749004901607514183573850726297133575765081163566896 199:126:37187201796529515524203051309156714189560369968302412304 199:127:21375320717690193962730887760381418392424464627449418096 199:128:12023617903700734104036124365214547845738761352940297679 199:129:6617650164052342026252440542094828659282574077974892521 199:130:3563350088335876475674391061127984662690616811217249819 199:131:1876879054161644861233076207769701845233989007435039981 199:132:966877088507514019423099864608634283908418579587747869 199:133:487073420526341648882313465629913511442586803250970731 199:134:239901833990586185270393199489360386232915888168388569 199:135:115508290439911866982041170124506852630663205414409311 199:136:54356842559958525638607609470356165943841508430310264 199:137:24996212272097716169578681727244076309941715555544136 199:138:11230182325145350742854190341225599501568017133650264 199:139:4928353394488247448302918063415550860400352842824936 199:140:2112151454780677477844107741463807511600151218353544 199:141:883808055546524618388669196782727965846871786403256 199:142:360992022688017097651709953615480436754356081770344 199:143:143891925127391430532499771720855838426561515111256 199:144:55957970882874445207083244558110603832551700321044 199:145:21225437231435134388893644487559194557174782880396 199:146:7850504181489707239727786317316414425256426544804 199:147:2830453888564316215684167855903197037677487121596 199:148:994483798684759751456599516938961121346144123804 199:149:340393783442434545800581042710651122071498995396 199:150:113464594480811515266860347570217040690499665132 199:151:36819636619601087735603688946626721813473401268 199:152:11627253669347711916506428088408438467412653032 199:153:3571770735028382091998706667681023581492775768 199:154:1066892557216269975532081212424201849017322632 199:155:309743000482142896122217126187671504553416248 199:156:87363410392399278393445856104215039745835352 199:157:23927558260338655865720839569944246554591848 199:158:6360490170469769280761235835048470603119352 199:159:1640126396158871323969878422874133929106248 199:160:410031599039717830992469605718533482276562 199:161:99324424612105561544759718155421154091838 199:162:23298321822592662584573267221641999107962 199:163:5288576119238825249258962498164134766838 199:164:1160906953003644566910503963011639339062 199:165:246252990031076120253743264881256829498 199:166:50437359403955349931489584373269471102 199:167:9966663834314530225982971762382590098 199:168:1898412158917053376377708907120493352 199:169:348229449268808607501236545093108248 199:170:61452255753319166029629978545842632 199:171:10421727583896232835434323846955768 199:172:1696560304355200694140471323923032 199:173:264781087962950397351403038993768 199:174:39564990155383392707680913872632 199:175:5652141450769056101097273410376 199:176:770746561468507650149628192324 199:177:100153507987433197477070330076 199:178:12378523459120956991548018324 199:179:1452229009170615066047532876 199:180:161358778796735007338614764 199:181:16938214348828536681954036 199:182:1675208012521503627885564 199:183:155620416463746238656036 199:184:13532210127282281622264 199:185:1097206226536401212616 199:186:82585414900589338584 199:187:5741232051912627816 199:188:366461620334848584 199:189:21328454093562616 199:190:1122550215450664 199:191:52895036330136 199:192:2203959847089 199:193:79936367511 199:194:2472258789 199:195:63391251 199:196:1293699 199:197:19701 199:198:199 199:199:1 # binomial(200, k) for 0 <= k <= 200 200:0:1 200:1:200 200:2:19900 200:3:1313400 200:4:64684950 200:5:2535650040 200:6:82408626300 200:7:2283896214600 200:8:55098996177225 200:9:1175445251780800 200:10:22451004309013280 200:11:387790074428411200 200:12:6107693672247476400 200:13:88326646952501966400 200:14:1179791641436990551200 200:15:14629416353818682834880 200:16:169152626591028520278300 200:17:1830828428985249866541600 200:18:18613422361350040309839600 200:19:178296993145563544020568800 200:20:1613587787967350073386147640 200:21:13830752468291572057595551200 200:22:112532031446554154468618348400 200:23:870900069455940847626698522400 200:24:6422888012237563751246901602700 200:25:45217131606152448808778187283008 200:26:304346078118333790059083952866400 200:27:1961341392318151091491874362916800 200:28:12118287888251433529574795170878800 200:29:71873983337215398865064302392798400 200:30:409681705022127773530866523638950880 200:31:2246641608185861983878945452213601600 200:32:11865075993231583602360680669503083450 200:33:60404023238269880157472556135652061200 200:34:296690349435031470185232849254526300600 200:35:1407159943034720687164247227892896168560 200:36:6449483072242469816169466461175774105900 200:37:28586897941831487833832229719806133874800 200:38:122622746434698224129332985377063153199800 200:39:509356023651823392537229323873954636368400 200:40:2050157995198589154962348028592667411382810 200:41:8000616566628640604731114257922604532225600 200:42:30288048430808425146482075404992717157711200 200:43:111290968652737934259166695674159286300427200 200:44:397106410874542174515662982291886544299251600 200:45:1376635557698412871654298338611873353570738880 200:46:4638663292244652067530787880105225430510098400 200:47:15199024404376094008505134756089462048905428800 200:48:48446890288948799652110117035035160280886054300 200:49:150284231100412603002464036516843762503973066400 200:50:453858377923246061067441390280868162761998660528 200:51:1334877582127194297257180559649612243417643119200 200:52:3824937687249075967140767372842158159023631245400 200:53:10680958070054023455411954173219611462933913666400 200:54:29075941412924841628621430804875608982431209425200 200:55:77183408114309579595976889045669798389726483201440 200:56:199849896010265875739583016278966442259113215432300 200:57:504883947815408528184209725336336275180917596881600 200:58:1244800078234541716040379150398208402601227868173600 200:59:2995959510327202096232776938246535477447023004756800 200:60:7040504849268924926147025804879358372000504061178480 200:61:16158535719633598191157108404641150361968369976475200 200:62:36226394597243066912432872068469675811509732689194400 200:63:79353054832056241808186291197600242253783223985854400 200:64:169865132999870392620648779594863018574504713844719575 200:65:355410124430498052252434369613867238863579093582797880 200:66:726975254516927834152706665119273897675502691419359300 200:67:1453950509033855668305413330238547795351005382838718600 200:68:2843756142669158880656176072378336129142407587022787850 200:69:5440229142497521336907467268897686507924605818652289800 200:70:10181000252388218501926831603222813321973190889192142340 200:71:18641268067753076130288564907309376505021335430915190200 200:72:33398938621390928066767012125595966238163225980389715775 200:73:58562522514219709486933939069538132581984834595751830400 200:74:100505950801431123038386625159883011323136135049465979200 200:75:168849997346404286704489530268603459022868706883102845056 200:76:277713811425007050500805148468097794445507741584050732000 200:77:447227436580530834572725174156417227418739739693795984000 200:78:705243265376990931441605082323581012468012666440216744000 200:79:1089109852860669539694630633461732702798703105135524592000 200:80:1647278652451762678788128833110870712983038446517480945400 200:81:2440412818447055820426857530534623278493390291137008808000 200:82:3541574699941459056473122513824636221228212739576878636000 200:83:5035009814374604441732872971461531013312398834579176856000 200:84:7013049384307484758127930210249989625685126948163853478000 200:85:9570749747996096846386351816341162312699702658670670628800 200:86:12798095593250594620167796033479461232098439601710780492000 200:87:16769918363569744674702629285248949200680713960862402024000 200:88:21534099716856603957288603514012855223601371336107402599000 200:89:27099091778516175766475545995162244775768017861168866192000 200:90:33422213193503283445319840060700101890113888695441601636800 200:91:40400477486652320648188817655791331955082722598885452528000 200:92:47865783109185901637528055700883208512000182209549068756000 200:93:55586070707441692224226129201025661497806663211089241136000 200:94:63273506018045330510555274728827082768779925144537753208000 200:95:70599911978029526674935359171112323931480758582326335158400 200:96:77218653725969794800710549093404104300057079699419429079500 200:97:82791133891761429477050485625917802548514807100408460044000 200:98:87015171335218645266695918566015649617316582972878279434000 200:99:89651994709013149668717007007410063242083752153874590932000 200:100:90548514656103281165404177077484163874504589675413336841320 200:101:89651994709013149668717007007410063242083752153874590932000 200:102:87015171335218645266695918566015649617316582972878279434000 200:103:82791133891761429477050485625917802548514807100408460044000 200:104:77218653725969794800710549093404104300057079699419429079500 200:105:70599911978029526674935359171112323931480758582326335158400 200:106:63273506018045330510555274728827082768779925144537753208000 200:107:55586070707441692224226129201025661497806663211089241136000 200:108:47865783109185901637528055700883208512000182209549068756000 200:109:40400477486652320648188817655791331955082722598885452528000 200:110:33422213193503283445319840060700101890113888695441601636800 200:111:27099091778516175766475545995162244775768017861168866192000 200:112:21534099716856603957288603514012855223601371336107402599000 200:113:16769918363569744674702629285248949200680713960862402024000 200:114:12798095593250594620167796033479461232098439601710780492000 200:115:9570749747996096846386351816341162312699702658670670628800 200:116:7013049384307484758127930210249989625685126948163853478000 200:117:5035009814374604441732872971461531013312398834579176856000 200:118:3541574699941459056473122513824636221228212739576878636000 200:119:2440412818447055820426857530534623278493390291137008808000 200:120:1647278652451762678788128833110870712983038446517480945400 200:121:1089109852860669539694630633461732702798703105135524592000 200:122:705243265376990931441605082323581012468012666440216744000 200:123:447227436580530834572725174156417227418739739693795984000 200:124:277713811425007050500805148468097794445507741584050732000 200:125:168849997346404286704489530268603459022868706883102845056 200:126:100505950801431123038386625159883011323136135049465979200 200:127:58562522514219709486933939069538132581984834595751830400 200:128:33398938621390928066767012125595966238163225980389715775 200:129:18641268067753076130288564907309376505021335430915190200 200:130:10181000252388218501926831603222813321973190889192142340 200:131:5440229142497521336907467268897686507924605818652289800 200:132:2843756142669158880656176072378336129142407587022787850 200:133:1453950509033855668305413330238547795351005382838718600 200:134:726975254516927834152706665119273897675502691419359300 200:135:355410124430498052252434369613867238863579093582797880 200:136:169865132999870392620648779594863018574504713844719575 200:137:79353054832056241808186291197600242253783223985854400 200:138:36226394597243066912432872068469675811509732689194400 200:139:16158535719633598191157108404641150361968369976475200 200:140:7040504849268924926147025804879358372000504061178480 200:141:2995959510327202096232776938246535477447023004756800 200:142:1244800078234541716040379150398208402601227868173600 200:143:504883947815408528184209725336336275180917596881600 200:144:199849896010265875739583016278966442259113215432300 200:145:77183408114309579595976889045669798389726483201440 200:146:29075941412924841628621430804875608982431209425200 200:147:10680958070054023455411954173219611462933913666400 200:148:3824937687249075967140767372842158159023631245400 200:149:1334877582127194297257180559649612243417643119200 200:150:453858377923246061067441390280868162761998660528 200:151:150284231100412603002464036516843762503973066400 200:152:48446890288948799652110117035035160280886054300 200:153:15199024404376094008505134756089462048905428800 200:154:4638663292244652067530787880105225430510098400 200:155:1376635557698412871654298338611873353570738880 200:156:397106410874542174515662982291886544299251600 200:157:111290968652737934259166695674159286300427200 200:158:30288048430808425146482075404992717157711200 200:159:8000616566628640604731114257922604532225600 200:160:2050157995198589154962348028592667411382810 200:161:509356023651823392537229323873954636368400 200:162:122622746434698224129332985377063153199800 200:163:28586897941831487833832229719806133874800 200:164:6449483072242469816169466461175774105900 200:165:1407159943034720687164247227892896168560 200:166:296690349435031470185232849254526300600 200:167:60404023238269880157472556135652061200 200:168:11865075993231583602360680669503083450 200:169:2246641608185861983878945452213601600 200:170:409681705022127773530866523638950880 200:171:71873983337215398865064302392798400 200:172:12118287888251433529574795170878800 200:173:1961341392318151091491874362916800 200:174:304346078118333790059083952866400 200:175:45217131606152448808778187283008 200:176:6422888012237563751246901602700 200:177:870900069455940847626698522400 200:178:112532031446554154468618348400 200:179:13830752468291572057595551200 200:180:1613587787967350073386147640 200:181:178296993145563544020568800 200:182:18613422361350040309839600 200:183:1830828428985249866541600 200:184:169152626591028520278300 200:185:14629416353818682834880 200:186:1179791641436990551200 200:187:88326646952501966400 200:188:6107693672247476400 200:189:387790074428411200 200:190:22451004309013280 200:191:1175445251780800 200:192:55098996177225 200:193:2283896214600 200:194:82408626300 200:195:2535650040 200:196:64684950 200:197:1313400 200:198:19900 200:199:200 200:200:1 # binomial(2^31-2, k) for 0 <= k <= 5 2147483646:0:1 2147483646:1:2147483646 2147483646:2:2305843003844984835 2147483646:3:1650586712129644681530179580 2147483646:4:886151991412890412247001214725652485 2147483646:5:380599381176981325647814314435493645862830074 # binomial(2^31-2, 2^31-2-k) for 0 <= k <= 5 2147483646:2147483646:1 2147483646:2147483645:2147483646 2147483646:2147483644:2305843003844984835 2147483646:2147483643:1650586712129644681530179580 2147483646:2147483642:886151991412890412247001214725652485 2147483646:2147483641:380599381176981325647814314435493645862830074 # binomial(2^31-1, k) for 0 <= k <= 5 2147483647:0:1 2147483647:1:2147483647 2147483647:2:2305843005992468481 2147483647:3:1650586714435487685375164415 2147483647:4:886151993063477124376645896255832065 2147483647:5:380599382063133317060704726682494860588482559 # binomial(2^31-1, 2^31-1-k) for 0 <= k <= 5 2147483647:2147483647:1 2147483647:2147483646:2147483647 2147483647:2147483645:2305843005992468481 2147483647:2147483644:1650586714435487685375164415 2147483647:2147483643:886151993063477124376645896255832065 2147483647:2147483642:380599382063133317060704726682494860588482559 # binomial(2^31, k) for 0 <= k <= 5 2147483648:0:1 2147483648:1:2147483648 2147483648:2:2305843008139952128 2147483648:3:1650586716741330691367632896 2147483648:4:886151994714063838812133581630996480 2147483648:5:380599382949285310124181851059140756844314624 # binomial(2^31, 2^31-k) for 0 <= k <= 5 2147483648:2147483648:1 2147483648:2147483647:2147483648 2147483648:2147483646:2305843008139952128 2147483648:2147483645:1650586716741330691367632896 2147483648:2147483644:886151994714063838812133581630996480 2147483648:2147483643:380599382949285310124181851059140756844314624 # binomial(2^31+1, k) for 0 <= k <= 5 2147483649:0:1 2147483649:1:2147483649 2147483649:2:2305843010287435776 2147483649:3:1650586719047173699507585024 2147483649:4:886151996364650555553464272998629376 2147483649:5:380599383835437304838245689871274338475311104 # binomial(2^31+1, 2^31+1-k) for 0 <= k <= 5 2147483649:2147483649:1 2147483649:2147483648:2147483649 2147483649:2147483647:2305843010287435776 2147483649:2147483646:1650586719047173699507585024 2147483649:2147483645:886151996364650555553464272998629376 2147483649:2147483644:380599383835437304838245689871274338475311104 # binomial(2^31+2, k) for 0 <= k <= 5 2147483650:0:1 2147483650:1:2147483650 2147483650:2:2305843012434919425 2147483650:3:1650586721353016709795020800 2147483650:4:886151998015237274600637972506214400 2147483650:5:380599384721589301202896245424738611473940480 # binomial(2^31+2, 2^31+2-k) for 0 <= k <= 5 2147483650:2147483650:1 2147483650:2147483649:2147483650 2147483650:2147483648:2305843012434919425 2147483650:2147483647:1650586721353016709795020800 2147483650:2147483646:886151998015237274600637972506214400 2147483650:2147483645:380599384721589301202896245424738611473940480 # binomial(2^31+3, k) for 0 <= k <= 5 2147483651:0:1 2147483651:1:2147483651 2147483651:2:2305843014582403075 2147483651:3:1650586723658859722229940225 2147483651:4:886151999665823995953654682301235200 2147483651:5:380599385607741299218133520025376583980154880 # binomial(2^31+3, 2^31+3-k) for 0 <= k <= 5 2147483651:2147483651:1 2147483651:2147483650:2147483651 2147483651:2147483649:2305843014582403075 2147483651:2147483648:1650586723658859722229940225 2147483651:2147483647:886151999665823995953654682301235200 2147483651:2147483646:380599385607741299218133520025376583980154880 # binomial(2^31+4, k) for 0 <= k <= 5 2147483652:0:1 2147483652:1:2147483652 2147483652:2:2305843016729886726 2147483652:3:1650586725964702736812343300 2147483652:4:886152001316410719612514404531175425 2147483652:5:380599386493893298883957515979031266281390080 # binomial(2^31+4, 2^31+4-k) for 0 <= k <= 5 2147483652:2147483652:1 2147483652:2147483651:2147483652 2147483652:2147483650:2305843016729886726 2147483652:2147483649:1650586725964702736812343300 2147483652:2147483648:886152001316410719612514404531175425 2147483652:2147483647:380599386493893298883957515979031266281390080 # binomial(2^31+5, k) for 0 <= k <= 5 2147483653:0:1 2147483653:1:2147483653 2147483653:2:2305843018877370378 2147483653:3:1650586728270545753542230026 2147483653:4:886152002966997445577217141343518725 2147483653:5:380599387380045300200368235591545670812565505 # binomial(2^31+5, 2^31+5-k) for 0 <= k <= 5 2147483653:2147483653:1 2147483653:2147483652:2147483653 2147483653:2147483651:2305843018877370378 2147483653:2147483650:1650586728270545753542230026 2147483653:2147483649:886152002966997445577217141343518725 2147483653:2147483648:380599387380045300200368235591545670812565505 # binomial(2^32-2, k) for 0 <= k <= 5 4294967294:0:1 4294967294:1:4294967294 4294967294:2:9223372026117357571 4294967294:3:13204693724707273506971189244 4294967294:4:14178431908822674565558029570587754501 4294967294:5:12179180254377129933877339520505430331269054458 # binomial(2^32-2, 2^32-2-k) for 0 <= k <= 5 4294967294:4294967294:1 4294967294:4294967293:4294967294 4294967294:4294967292:9223372026117357571 4294967294:4294967291:13204693724707273506971189244 4294967294:4294967290:14178431908822674565558029570587754501 4294967294:4294967289:12179180254377129933877339520505430331269054458 # binomial(2^32-1, k) for 0 <= k <= 5 4294967295:0:1 4294967295:1:4294967295 4294967295:2:9223372030412324865 4294967295:3:13204693733930645533088546815 4294967295:4:14178431922027368290265303077558943745 4294967295:5:12179180268555561842700014086063459901856808959 # binomial(2^32-1, 2^32-1-k) for 0 <= k <= 5 4294967295:4294967295:1 4294967295:4294967294:4294967295 4294967295:4294967293:9223372030412324865 4294967295:4294967292:13204693733930645533088546815 4294967295:4294967291:14178431922027368290265303077558943745 4294967295:4294967290:12179180268555561842700014086063459901856808959 # binomial(2^32, k) for 0 <= k <= 5 4294967296:0:1 4294967296:1:4294967296 4294967296:2:9223372034707292160 4294967296:3:13204693743154017563500871680 4294967296:4:14178431935232062024195948610647490560 4294967296:5:12179180282733993764727382376328762979415752704 # binomial(2^32, 2^32-k) for 0 <= k <= 5 4294967296:4294967296:1 4294967296:4294967295:4294967296 4294967296:4294967294:9223372034707292160 4294967296:4294967293:13204693743154017563500871680 4294967296:4294967292:14178431935232062024195948610647490560 4294967296:4294967291:12179180282733993764727382376328762979415752704 # binomial(2^32+1, k) for 0 <= k <= 5 4294967297:0:1 4294967297:1:4294967297 4294967297:2:9223372039002259456 4294967297:3:13204693752377389598208163840 4294967297:4:14178431948436755767349966174148362240 4294967297:5:12179180296912425699959444400524711590063243264 # binomial(2^32+1, 2^32+1-k) for 0 <= k <= 5 4294967297:4294967297:1 4294967297:4294967296:4294967297 4294967297:4294967295:9223372039002259456 4294967297:4294967294:13204693752377389598208163840 4294967297:4294967293:14178431948436755767349966174148362240 4294967297:4294967292:12179180296912425699959444400524711590063243264 # binomial(2^32+2, k) for 0 <= k <= 5 4294967298:0:1 4294967298:1:4294967298 4294967298:2:9223372043297226753 4294967298:3:13204693761600761637210423296 4294967298:4:14178431961641449519727355772356526080 4294967298:5:12179180311090857648396200167874677764211605504 # binomial(2^32+2, 2^32+2-k) for 0 <= k <= 5 4294967298:4294967298:1 4294967298:4294967297:4294967298 4294967298:4294967296:9223372043297226753 4294967298:4294967295:13204693761600761637210423296 4294967298:4294967294:14178431961641449519727355772356526080 4294967298:4294967293:12179180311090857648396200167874677764211605504 # binomial(2^32+3, k) for 0 <= k <= 5 4294967299:0:1 4294967299:1:4294967299 4294967299:2:9223372047592194051 4294967299:3:13204693770824133680507650049 4294967299:4:14178431974846143281328117409566949376 4294967299:5:12179180325269289610037649687602033536568131584 # binomial(2^32+3, 2^32+3-k) for 0 <= k <= 5 4294967299:4294967299:1 4294967299:4294967298:4294967299 4294967299:4294967297:9223372047592194051 4294967299:4294967296:13204693770824133680507650049 4294967299:4294967295:14178431974846143281328117409566949376 4294967299:4294967294:12179180325269289610037649687602033536568131584 # binomial(2^32+4, k) for 0 <= k <= 5 4294967300:0:1 4294967300:1:4294967300 4294967300:2:9223372051887161350 4294967300:3:13204693780047505728099844100 4294967300:4:14178431988050837052152251090074599425 4294967300:5:12179180339447721584883792968930150946135080960 # binomial(2^32+4, 2^32+4-k) for 0 <= k <= 5 4294967300:4294967300:1 4294967300:4294967299:4294967300 4294967300:4294967298:9223372051887161350 4294967300:4294967297:13204693780047505728099844100 4294967300:4294967296:14178431988050837052152251090074599425 4294967300:4294967295:12179180339447721584883792968930150946135080960 # binomial(2^32+5, k) for 0 <= k <= 5 4294967301:0:1 4294967301:1:4294967301 4294967301:2:9223372056182128650 4294967301:3:13204693789270877779987005450 4294967301:4:14178432001255530832199756818174443525 4294967301:5:12179180353626153572934630021082402036209680385 # binomial(2^32+5, 2^32+5-k) for 0 <= k <= 5 4294967301:4294967301:1 4294967301:4294967300:4294967301 4294967301:4294967299:9223372056182128650 4294967301:4294967298:13204693789270877779987005450 4294967301:4294967297:14178432001255530832199756818174443525 4294967301:4294967296:12179180353626153572934630021082402036209680385 # binomial(2^33-2, k) for 0 <= k <= 5 8589934590:0:1 8589934590:1:8589934590 8589934590:2:36893488125944266755 8589934590:3:105637549908338652386357673980 8589934590:4:226854910910894217460635967668417986565 8589934590:5:389733769047487800550504398446104288539835367418 # binomial(2^33-2, 2^33-2-k) for 0 <= k <= 5 8589934590:8589934590:1 8589934590:8589934589:8589934590 8589934590:8589934588:36893488125944266755 8589934590:8589934587:105637549908338652386357673980 8589934590:8589934586:226854910910894217460635967668417986565 8589934590:8589934585:389733769047487800550504398446104288539835367418 # binomial(2^33-1, k) for 0 <= k <= 5 8589934591:0:1 8589934591:1:8589934591 8589934591:2:36893488134534201345 8589934591:3:105637549945232140512301940735 8589934591:4:226854911016531767368974620054775660545 8589934591:5:389733769274342711461398615906740256208253353983 # binomial(2^33-1, 2^33-1-k) for 0 <= k <= 5 8589934591:8589934591:1 8589934591:8589934590:8589934591 8589934591:8589934589:36893488134534201345 8589934591:8589934588:105637549945232140512301940735 8589934591:8589934587:226854911016531767368974620054775660545 8589934591:8589934586:389733769274342711461398615906740256208253353983 # binomial(2^33, k) for 0 <= k <= 5 8589934592:0:1 8589934592:1:8589934592 8589934592:2:36893488143124135936 8589934592:3:105637549982125628646836142080 8589934592:4:226854911122169317314206760567077601280 8589934592:5:389733769501197622477930383275714876263029014528 # binomial(2^33, 2^33-k) for 0 <= k <= 5 8589934592:8589934592:1 8589934592:8589934591:8589934592 8589934592:8589934590:36893488143124135936 8589934592:8589934589:105637549982125628646836142080 8589934592:8589934588:226854911122169317314206760567077601280 8589934592:8589934587:389733769501197622477930383275714876263029014528 # binomial(2^33+1, k) for 0 <= k <= 5 8589934593:0:1 8589934593:1:8589934593 8589934593:2:36893488151714070528 8589934593:3:105637550019019116789960278016 8589934593:4:226854911227806867296332389213913743360 8589934593:5:389733769728052533600099700589921636830106615808 # binomial(2^33+1, 2^33+1-k) for 0 <= k <= 5 8589934593:8589934593:1 8589934593:8589934592:8589934593 8589934593:8589934591:36893488151714070528 8589934593:8589934590:105637550019019116789960278016 8589934593:8589934589:226854911227806867296332389213913743360 8589934593:8589934588:389733769728052533600099700589921636830106615808 # binomial(2^33+2, k) for 0 <= k <= 5 8589934594:0:1 8589934594:1:8589934594 8589934594:2:36893488160304005121 8589934594:3:105637550055912604941674348544 8589934594:4:226854911333444417315351506003874021376 8589934594:5:389733769954907444827906567886254026044020359168 # binomial(2^33+2, 2^33+2-k) for 0 <= k <= 5 8589934594:8589934594:1 8589934594:8589934593:8589934594 8589934594:8589934592:36893488160304005121 8589934594:8589934591:105637550055912604941674348544 8589934594:8589934590:226854911333444417315351506003874021376 8589934594:8589934589:389733769954907444827906567886254026044020359168 # binomial(2^33+3, k) for 0 <= k <= 5 8589934595:0:1 8589934595:1:8589934595 8589934595:2:36893488168893939715 8589934595:3:105637550092806093101978353665 8589934595:4:226854911439081967371264110945548369920 8589934595:5:389733770181762356161350985201605532047894380544 # binomial(2^33+3, 2^33+3-k) for 0 <= k <= 5 8589934595:8589934595:1 8589934595:8589934594:8589934595 8589934595:8589934593:36893488168893939715 8589934595:8589934592:105637550092806093101978353665 8589934595:8589934591:226854911439081967371264110945548369920 8589934595:8589934590:389733770181762356161350985201605532047894380544 # binomial(2^33+4, k) for 0 <= k <= 5 8589934596:0:1 8589934596:1:8589934596 8589934596:2:36893488177483874310 8589934596:3:105637550129699581270872293380 8589934596:4:226854911544719517464070204047526723585 8589934596:5:389733770408617267600432952572869642993442750464 # binomial(2^33+4, 2^33+4-k) for 0 <= k <= 5 8589934596:8589934596:1 8589934596:8589934595:8589934596 8589934596:8589934594:36893488177483874310 8589934596:8589934593:105637550129699581270872293380 8589934596:8589934592:226854911544719517464070204047526723585 8589934596:8589934591:389733770408617267600432952572869642993442750464 # binomial(2^33+5, k) for 0 <= k <= 5 8589934597:0:1 8589934597:1:8589934597 8589934597:2:36893488186073808906 8589934597:3:105637550166593069448356167690 8589934597:4:226854911650357067593769785318399016965 8589934597:5:389733770635472179145152470036939847040969474049 # binomial(2^33+5, 2^33+5-k) for 0 <= k <= 5 8589934597:8589934597:1 8589934597:8589934596:8589934597 8589934597:8589934595:36893488186073808906 8589934597:8589934594:105637550166593069448356167690 8589934597:8589934593:226854911650357067593769785318399016965 8589934597:8589934592:389733770635472179145152470036939847040969474049 # binomial(2^34-2, k) for 0 <= k <= 5 17179869182:0:1 17179869182:1:17179869182 17179869182:2:147573952546726739971 17179869182:3:845100399709431076636552331260 17179869182:4:3629678577532158877283273095158568058885 17179869182:5:12471480624038323919927597564494268883490740109306 # binomial(2^34-2, 2^34-2-k) for 0 <= k <= 5 17179869182:17179869182:1 17179869182:17179869181:17179869182 17179869182:17179869180:147573952546726739971 17179869182:17179869179:845100399709431076636552331260 17179869182:17179869178:3629678577532158877283273095158568058885 17179869182:17179869177:12471480624038323919927597564494268883490740109306 # binomial(2^34-1, k) for 0 <= k <= 5 17179869183:0:1 17179869183:1:17179869183 17179869183:2:147573952563906609153 17179869183:3:845100399857005029183279071231 17179869183:4:3629678578377259276992704171795120390145 17179869183:5:12471480627668002497459756441777541978649308168191 # binomial(2^34-1, 2^34-1-k) for 0 <= k <= 5 17179869183:17179869183:1 17179869183:17179869182:17179869183 17179869183:17179869181:147573952563906609153 17179869183:17179869180:845100399857005029183279071231 17179869183:17179869179:3629678578377259276992704171795120390145 17179869183:17179869178:12471480627668002497459756441777541978649308168191 # binomial(2^34, k) for 0 <= k <= 5 17179869184:0:1 17179869184:1:17179869184 17179869184:2:147573952581086478336 17179869184:3:845100400004578981747185680384 17179869184:4:3629678579222359676849709200978399461376 17179869184:5:12471480631297681075837015718770246150444428558336 # binomial(2^34, 2^34-k) for 0 <= k <= 5 17179869184:17179869184:1 17179869184:17179869183:17179869184 17179869184:17179869182:147573952581086478336 17179869184:17179869181:845100400004578981747185680384 17179869184:17179869180:3629678579222359676849709200978399461376 17179869184:17179869179:12471480631297681075837015718770246150444428558336 # binomial(2^34+1, k) for 0 <= k <= 5 17179869185:0:1 17179869185:1:17179869185 17179869185:2:147573952598266347520 17179869185:3:845100400152152934328272158720 17179869185:4:3629678580067460076854288182725585141760 17179869185:5:12471480634927359655059375395619955351422828019712 # binomial(2^34+1, 2^34+1-k) for 0 <= k <= 5 17179869185:17179869185:1 17179869185:17179869184:17179869185 17179869185:17179869183:147573952598266347520 17179869185:17179869182:845100400152152934328272158720 17179869185:17179869181:3629678580067460076854288182725585141760 17179869185:17179869180:12471480634927359655059375395619955351422828019712 # binomial(2^34+2, k) for 0 <= k <= 5 17179869186:0:1 17179869186:1:17179869186 17179869186:2:147573952615446216705 17179869186:3:845100400299726886926538506240 17179869186:4:3629678580912560477006441117053857300480 17179869186:5:12471480638557038235126835472474243534148413161472 # binomial(2^34+2, 2^34+2-k) for 0 <= k <= 5 17179869186:17179869186:1 17179869186:17179869185:17179869186 17179869186:17179869184:147573952615446216705 17179869186:17179869183:845100400299726886926538506240 17179869186:17179869182:3629678580912560477006441117053857300480 17179869186:17179869181:12471480638557038235126835472474243534148413161472 # binomial(2^34+3, k) for 0 <= k <= 5 17179869187:0:1 17179869187:1:17179869187 17179869187:2:147573952632626085891 17179869187:3:845100400447300839541984722945 17179869187:4:3629678581757660877306168003980395806720 17179869187:5:12471480642186716816039395949480684651202270461952 # binomial(2^34+3, 2^34+3-k) for 0 <= k <= 5 17179869187:17179869187:1 17179869187:17179869186:17179869187 17179869187:17179869185:147573952632626085891 17179869187:17179869184:845100400447300839541984722945 17179869187:17179869183:3629678581757660877306168003980395806720 17179869187:17179869182:12471480642186716816039395949480684651202270461952 # binomial(2^34+4, k) for 0 <= k <= 5 17179869188:0:1 17179869188:1:17179869188 17179869188:2:147573952649805955078 17179869188:3:845100400594874792174610808836 17179869188:4:3629678582602761277753468843522380529665 17179869188:5:12471480645816395397797056826786852655182666268672 # binomial(2^34+4, 2^34+4-k) for 0 <= k <= 5 17179869188:17179869188:1 17179869188:17179869187:17179869188 17179869188:17179869186:147573952649805955078 17179869188:17179869185:845100400594874792174610808836 17179869188:17179869184:3629678582602761277753468843522380529665 17179869188:17179869183:12471480645816395397797056826786852655182666268672 # binomial(2^34+5, k) for 0 <= k <= 5 17179869189:0:1 17179869189:1:17179869189 17179869189:2:147573952666985824266 17179869189:3:845100400742448744824416763914 17179869189:4:3629678583447861678348343635696991338501 17179869189:5:12471480649446073980399818104540321498705046798337 # binomial(2^34+5, 2^34+5-k) for 0 <= k <= 5 17179869189:17179869189:1 17179869189:17179869188:17179869189 17179869189:17179869187:147573952666985824266 17179869189:17179869186:845100400742448744824416763914 17179869189:17179869185:3629678583447861678348343635696991338501 17179869189:17179869184:12471480649446073980399818104540321498705046798337 # binomial(2^35-2, k) for 0 <= k <= 5 34359738366:0:1 34359738366:1:34359738366 34359738366:2:590295810272806305795 34359738366:3:6760803199446336043721859006460 34359738366:4:58074857264177353230314901051485181706245 34359738366:5:399087380201525794431855105399789906989321388294138 # binomial(2^35-2, 2^35-2-k) for 0 <= k <= 5 34359738366:34359738366:1 34359738366:34359738365:34359738366 34359738366:34359738364:590295810272806305795 34359738366:34359738363:6760803199446336043721859006460 34359738366:34359738362:58074857264177353230314901051485181706245 34359738366:34359738361:399087380201525794431855105399789906989321388294138 # binomial(2^35-1, k) for 0 <= k <= 5 34359738367:0:1 34359738367:1:34359738367 34359738367:2:590295810307166044161 34359738367:3:6760803200036631853994665312255 34359738367:4:58074857270938156429761237095207040712705 34359738367:5:399087380259600651696032458630104808040806570000383 # binomial(2^35-1, 2^35-1-k) for 0 <= k <= 5 34359738367:34359738367:1 34359738367:34359738366:34359738367 34359738367:34359738365:590295810307166044161 34359738367:34359738364:6760803200036631853994665312255 34359738367:34359738363:58074857270938156429761237095207040712705 34359738367:34359738362:399087380259600651696032458630104808040806570000383 # binomial(2^35, k) for 0 <= k <= 5 34359738368:0:1 34359738368:1:34359738368 34359738368:2:590295810341525782528 34359738368:3:6760803200626927664301831356416 34359738368:4:58074857277698959629797868949201706024960 34359738368:5:399087380317675508966970615059866045136013610713088 # binomial(2^35, 2^35-k) for 0 <= k <= 5 34359738368:34359738368:1 34359738368:34359738367:34359738368 34359738368:34359738366:590295810341525782528 34359738368:34359738365:6760803200626927664301831356416 34359738368:34359738364:58074857277698959629797868949201706024960 34359738368:34359738363:399087380317675508966970615059866045136013610713088 # binomial(2^35+1, k) for 0 <= k <= 5 34359738369:0:1 34359738369:1:34359738369 34359738369:2:590295810375885520896 34359738369:3:6760803201217223474643357138944 34359738369:4:58074857284459762830424796613503537381376 34359738369:5:399087380375750366244669574689663914085215316738048 # binomial(2^35+1, 2^35+1-k) for 0 <= k <= 5 34359738369:34359738369:1 34359738369:34359738368:34359738369 34359738369:34359738367:590295810375885520896 34359738369:34359738366:6760803201217223474643357138944 34359738369:34359738365:58074857284459762830424796613503537381376 34359738369:34359738364:399087380375750366244669574689663914085215316738048 # binomial(2^35+2, k) for 0 <= k <= 5 34359738370:0:1 34359738370:1:34359738370 34359738370:2:590295810410245259265 34359738370:3:6760803201807519285019242659840 34359738370:4:58074857291220566031642020088146894520320 34359738370:5:399087380433825223529129337520088710698718854119424 # binomial(2^35+2, 2^35+2-k) for 0 <= k <= 5 34359738370:34359738370:1 34359738370:34359738369:34359738370 34359738370:34359738368:590295810410245259265 34359738370:34359738367:6760803201807519285019242659840 34359738370:34359738366:58074857291220566031642020088146894520320 34359738370:34359738365:399087380433825223529129337520088710698718854119424 # binomial(2^35+3, k) for 0 <= k <= 5 34359738371:0:1 34359738371:1:34359738371 34359738371:2:590295810444604997635 34359738371:3:6760803202397815095429487919105 34359738371:4:58074857297981369233449539373166137180160 34359738371:5:399087380491900080820349903551730730786865748639744 # binomial(2^35+3, 2^35+3-k) for 0 <= k <= 5 34359738371:34359738371:1 34359738371:34359738370:34359738371 34359738371:34359738369:590295810444604997635 34359738371:34359738368:6760803202397815095429487919105 34359738371:34359738367:58074857297981369233449539373166137180160 34359738371:34359738366:399087380491900080820349903551730730786865748639744 # binomial(2^35+4, k) for 0 <= k <= 5 34359738372:0:1 34359738372:1:34359738372 34359738372:2:590295810478964736006 34359738372:3:6760803202988110905874092916740 34359738372:4:58074857304742172435847354468595625099265 34359738372:5:399087380549974938118331272785180270160031885819904 # binomial(2^35+4, 2^35+4-k) for 0 <= k <= 5 34359738372:34359738372:1 34359738372:34359738371:34359738372 34359738372:34359738370:590295810478964736006 34359738372:34359738369:6760803202988110905874092916740 34359738372:34359738368:58074857304742172435847354468595625099265 34359738372:34359738367:399087380549974938118331272785180270160031885819904 # binomial(2^35+5, k) for 0 <= k <= 5 34359738373:0:1 34359738373:1:34359738373 34359738373:2:590295810513324474378 34359738373:3:6760803203578406716353057652746 34359738373:4:58074857311502975638835465374469718016005 34359738373:5:399087380608049795423073445221027624628627510919169 # binomial(2^35+5, 2^35+5-k) for 0 <= k <= 5 34359738373:34359738373:1 34359738373:34359738372:34359738373 34359738373:34359738371:590295810513324474378 34359738373:34359738370:6760803203578406716353057652746 34359738373:34359738369:58074857311502975638835465374469718016005 34359738373:34359738368:399087380608049795423073445221027624628627510919169 # binomial(2^36-2, k) for 0 <= k <= 5 68719476734:0:1 68719476734:1:68719476734 68719476734:2:2361183241263023915011 68719476734:3:54086425602654238073185986674684 68719476734:4:929197716416140141277209671581555801194501 68719476734:5:12770796170165616286983624501115933235476403534692346 # binomial(2^36-2, 2^36-2-k) for 0 <= k <= 5 68719476734:68719476734:1 68719476734:68719476733:68719476734 68719476734:68719476732:2361183241263023915011 68719476734:68719476731:54086425602654238073185986674684 68719476734:68719476730:929197716416140141277209671581555801194501 68719476734:68719476729:12770796170165616286983624501115933235476403534692346 # binomial(2^36-1, k) for 0 <= k <= 5 68719476735:0:1 68719476735:1:68719476735 68719476735:2:2361183241331743391745 68719476735:3:54086425605015421314449010589695 68719476735:4:929197716470226566879863909654741787869185 68719476735:5:12770796171094814003399764642393142907057959335886847 # binomial(2^36-1, 2^36-1-k) for 0 <= k <= 5 68719476735:68719476735:1 68719476735:68719476734:68719476735 68719476735:68719476733:2361183241331743391745 68719476735:68719476732:54086425605015421314449010589695 68719476735:68719476731:929197716470226566879863909654741787869185 68719476735:68719476730:12770796171094814003399764642393142907057959335886847 # binomial(2^36, k) for 0 <= k <= 5 68719476736:0:1 68719476736:1:68719476736 68719476736:2:2361183241400462868480 68719476736:3:54086425607376604555780753981440 68719476736:4:929197716524312992484879330969190798458880 68719476736:5:12770796172024011719869991209273006816712701123756032 # binomial(2^36, 2^36-k) for 0 <= k <= 5 68719476736:68719476736:1 68719476736:68719476735:68719476736 68719476736:68719476734:2361183241400462868480 68719476736:68719476733:54086425607376604555780753981440 68719476736:68719476732:929197716524312992484879330969190798458880 68719476736:68719476731:12770796172024011719869991209273006816712701123756032 # binomial(2^36+1, k) for 0 <= k <= 5 68719476737:0:1 68719476737:1:68719476737 68719476737:2:2361183241469182345216 68719476737:3:54086425609737787797181216849920 68719476737:4:929197716578399418092255935524971552440320 68719476737:5:12770796172953209436394304201757886147681891922214912 # binomial(2^36+1, 2^36+1-k) for 0 <= k <= 5 68719476737:68719476737:1 68719476737:68719476736:68719476737 68719476737:68719476735:2361183241469182345216 68719476737:68719476734:54086425609737787797181216849920 68719476737:68719476733:929197716578399418092255935524971552440320 68719476737:68719476732:12770796172953209436394304201757886147681891922214912 # binomial(2^36+2, k) for 0 <= k <= 5 68719476738:0:1 68719476738:1:68719476738 68719476738:2:2361183241537901821953 68719476738:3:54086425612098971038650399195136 68719476738:4:929197716632485843701993723322152769290240 68719476738:5:12770796173882407152972703619850142083206863474655232 # binomial(2^36+2, 2^36+2-k) for 0 <= k <= 5 68719476738:68719476738:1 68719476738:68719476737:68719476738 68719476738:68719476736:2361183241537901821953 68719476738:68719476735:54086425612098971038650399195136 68719476738:68719476734:929197716632485843701993723322152769290240 68719476738:68719476733:12770796173882407152972703619850142083206863474655232 # binomial(2^36+3, k) for 0 <= k <= 5 68719476739:0:1 68719476739:1:68719476739 68719476739:2:2361183241606621298691 68719476739:3:54086425614460154280188301017089 68719476739:4:929197716686572269314092694360803168485376 68719476739:5:12770796174811604869605189463552135806529016243945472 # binomial(2^36+3, 2^36+3-k) for 0 <= k <= 5 68719476739:68719476739:1 68719476739:68719476738:68719476739 68719476739:68719476737:2361183241606621298691 68719476739:68719476736:54086425614460154280188301017089 68719476739:68719476735:929197716686572269314092694360803168485376 68719476739:68719476734:12770796174811604869605189463552135806529016243945472 # binomial(2^36+4, k) for 0 <= k <= 5 68719476740:0:1 68719476740:1:68719476740 68719476740:2:2361183241675340775430 68719476740:3:54086425616821337521794922315780 68719476740:4:929197716740658694928552848640991469502465 68719476740:5:12770796175740802586291761732866228500889819412430848 # binomial(2^36+4, 2^36+4-k) for 0 <= k <= 5 68719476740:68719476740:1 68719476740:68719476739:68719476740 68719476740:68719476738:2361183241675340775430 68719476740:68719476737:54086425616821337521794922315780 68719476740:68719476736:929197716740658694928552848640991469502465 68719476740:68719476735:12770796175740802586291761732866228500889819412430848 # binomial(2^36+5, k) for 0 <= k <= 5 68719476741:0:1 68719476741:1:68719476741 68719476741:2:2361183241744060252170 68719476741:3:54086425619182520763470263091210 68719476741:4:929197716794745120545374186162786391818245 68719476741:5:12770796176670000303032420427794781349530810881933313 # binomial(2^36+5, 2^36+5-k) for 0 <= k <= 5 68719476741:68719476741:1 68719476741:68719476740:68719476741 68719476741:68719476739:2361183241744060252170 68719476741:68719476738:54086425619182520763470263091210 68719476741:68719476737:929197716794745120545374186162786391818245 68719476741:68719476736:12770796176670000303032420427794781349530810881933313 # binomial(2^37-2, k) for 0 <= k <= 5 137438953470:0:1 137438953470:1:137438953470 137438953470:2:9444732965395693043715 137438953470:3:432691404849568103480919058284540 137438953470:4:14867163464172662177340368793490588476375045 137438953470:5:408665477504768375036164237250366310662693130023731194 # binomial(2^37-2, 2^37-2-k) for 0 <= k <= 5 137438953470:137438953470:1 137438953470:137438953469:137438953470 137438953470:137438953468:9444732965395693043715 137438953470:137438953467:432691404849568103480919058284540 137438953470:137438953466:14867163464172662177340368793490588476375045 137438953470:137438953465:408665477504768375036164237250366310662693130023731194 # binomial(2^37-1, k) for 0 <= k <= 5 137438953471:0:1 137438953471:1:137438953471 137438953471:2:9444732965533131997185 137438953471:3:432691404859012836446314751328255 137438953471:4:14867163464605353582189936896971507534659585 137438953471:5:408665477519635538500336899427706679456183718500106239 # binomial(2^37-1, 2^37-1-k) for 0 <= k <= 5 137438953471:137438953471:1 137438953471:137438953470:137438953471 137438953471:137438953469:9444732965533131997185 137438953471:137438953468:432691404859012836446314751328255 137438953471:137438953467:14867163464605353582189936896971507534659585 137438953471:137438953466:408665477519635538500336899427706679456183718500106239 # binomial(2^37, k) for 0 <= k <= 5 137438953472:0:1 137438953472:1:137438953472 137438953472:2:9444732965670570950656 137438953472:3:432691404868457569411847883325440 137438953472:4:14867163465038044987048949733417822285987840 137438953472:5:408665477534502701964942253009896616353155226034765824 # binomial(2^37, 2^37-k) for 0 <= k <= 5 137438953472:137438953472:1 137438953472:137438953471:137438953472 137438953472:137438953470:9444732965670570950656 137438953472:137438953469:432691404868457569411847883325440 137438953472:137438953468:14867163465038044987048949733417822285987840 137438953472:137438953467:408665477534502701964942253009896616353155226034765824 # binomial(2^37+1, k) for 0 <= k <= 5 137438953473:0:1 137438953473:1:137438953473 137438953473:2:9444732965808009904128 137438953473:3:432691404877902302377518454276096 137438953473:4:14867163465470736391917407302829670169313280 137438953473:5:408665477549369865429980297996945566086573048320753664 # binomial(2^37+1, 2^37+1-k) for 0 <= k <= 5 137438953473:137438953473:1 137438953473:137438953472:137438953473 137438953473:137438953471:9444732965808009904128 137438953473:137438953470:432691404877902302377518454276096 137438953473:137438953469:14867163465470736391917407302829670169313280 137438953473:137438953468:408665477549369865429980297996945566086573048320753664 # binomial(2^37+2, k) for 0 <= k <= 5 137438953474:0:1 137438953474:1:137438953474 137438953474:2:9444732965945448857601 137438953474:3:432691404887347035343326464180224 137438953474:4:14867163465903427796795309605207188623589376 137438953474:5:408665477564237028895451034388862973389402718490066944 # binomial(2^37+2, 2^37+2-k) for 0 <= k <= 5 137438953474:137438953474:1 137438953474:137438953473:137438953474 137438953474:137438953472:9444732965945448857601 137438953474:137438953471:432691404887347035343326464180224 137438953474:137438953470:14867163465903427796795309605207188623589376 137438953474:137438953469:408665477564237028895451034388862973389402718490066944 # binomial(2^37+3, k) for 0 <= k <= 5 137438953475:0:1 137438953475:1:137438953475 137438953475:2:9444732966082887811075 137438953475:3:432691404896791768309271913037825 137438953475:4:14867163466336119201682656640550515087769600 137438953475:5:408665477579104192361354462185658282994609907113656320 # binomial(2^37+3, 2^37+3-k) for 0 <= k <= 5 137438953475:137438953475:1 137438953475:137438953474:137438953475 137438953475:137438953473:9444732966082887811075 137438953475:137438953472:432691404896791768309271913037825 137438953475:137438953471:14867163466336119201682656640550515087769600 137438953475:137438953470:408665477579104192361354462185658282994609907113656320 # binomial(2^37+4, k) for 0 <= k <= 5 137438953476:0:1 137438953476:1:137438953476 137438953476:2:9444732966220326764550 137438953476:3:432691404906236501275354800848900 137438953476:4:14867163466768810606579448408859787000807425 137438953476:5:408665477593971355827690581387340939635160422201425920 # binomial(2^37+4, 2^37+4-k) for 0 <= k <= 5 137438953476:137438953476:1 137438953476:137438953475:137438953476 137438953476:137438953474:9444732966220326764550 137438953476:137438953473:432691404906236501275354800848900 137438953476:137438953472:14867163466768810606579448408859787000807425 137438953476:137438953471:408665477593971355827690581387340939635160422201425920 # binomial(2^37+5, k) for 0 <= k <= 5 137438953477:0:1 137438953477:1:137438953477 137438953477:2:9444732966357765718026 137438953477:3:432691404915681234241575127613450 137438953477:4:14867163467201502011485684910135141801656325 137438953477:5:408665477608838519294459391993920388044020209202233345 # binomial(2^37+5, 2^37+5-k) for 0 <= k <= 5 137438953477:137438953477:1 137438953477:137438953476:137438953477 137438953477:137438953475:9444732966357765718026 137438953477:137438953474:432691404915681234241575127613450 137438953477:137438953473:14867163467201502011485684910135141801656325 137438953477:137438953472:408665477608838519294459391993920388044020209202233345 # binomial(2^38-2, k) for 0 <= k <= 5 274877906942:0:1 274877906942:1:274877906942 274877906942:2:37778931862269966942211 274877906942:3:3461531238909881623432650538614780 274877906942:4:237874615438877954173356589121865430702489605 274877906942:5:13077295281104086462880748244745845800319645121620475898 # binomial(2^38-2, 2^38-2-k) for 0 <= k <= 5 274877906942:274877906942:1 274877906942:274877906941:274877906942 274877906942:274877906940:37778931862269966942211 274877906942:274877906939:3461531238909881623432650538614780 274877906942:274877906938:237874615438877954173356589121865430702489605 274877906942:274877906937:13077295281104086462880748244745845800319645121620475898 # binomial(2^38-1, k) for 0 <= k <= 5 274877906943:0:1 274877906943:1:274877906943 274877906943:2:37778931862544844849153 274877906943:3:3461531238947660555294920505556991 274877906943:4:237874615442339485412266470745298081241104385 274877906943:5:13077295281341961078319626198919202389441510552322965503 # binomial(2^38-1, 2^38-1-k) for 0 <= k <= 5 274877906943:274877906943:1 274877906943:274877906942:274877906943 274877906943:274877906941:37778931862544844849153 274877906943:274877906940:3461531238947660555294920505556991 274877906943:274877906939:237874615442339485412266470745298081241104385 274877906943:274877906938:13077295281341961078319626198919202389441510552322965503 # binomial(2^38, k) for 0 <= k <= 5 274877906944:0:1 274877906944:1:274877906944 274877906944:2:37778931862819722756096 274877906944:3:3461531238985439487157465350406144 274877906944:4:237874615445801016651214131300593001746661376 274877906944:5:13077295281579835693761965684331468860186808633564069888 # binomial(2^38, 2^38-k) for 0 <= k <= 5 274877906944:274877906944:1 274877906944:274877906943:274877906944 274877906944:274877906942:37778931862819722756096 274877906944:274877906941:3461531238985439487157465350406144 274877906944:274877906940:237874615445801016651214131300593001746661376 274877906944:274877906939:13077295281579835693761965684331468860186808633564069888 # binomial(2^38+1, k) for 0 <= k <= 5 274877906945:0:1 274877906945:1:274877906945 274877906945:2:37778931863094600663040 274877906945:3:3461531239023218419020285073162240 274877906945:4:237874615449262547890199570787750467097067520 274877906945:5:13077295281817710309207766700982682991487401635310731264 # binomial(2^38+1, 2^38+1-k) for 0 <= k <= 5 274877906945:274877906945:1 274877906945:274877906944:274877906945 274877906945:274877906943:37778931863094600663040 274877906945:274877906942:3461531239023218419020285073162240 274877906945:274877906941:237874615449262547890199570787750467097067520 274877906945:274877906940:13077295281817710309207766700982682991487401635310731264 # binomial(2^38+2, k) for 0 <= k <= 5 274877906946:0:1 274877906946:1:274877906946 274877906946:2:37778931863369478569985 274877906946:3:3461531239060997350883379673825280 274877906946:4:237874615452724079129222789206770752170229760 274877906946:5:13077295282055584924657029248872882562275152102407798784 # binomial(2^38+2, 2^38+2-k) for 0 <= k <= 5 274877906946:274877906946:1 274877906946:274877906945:274877906946 274877906946:274877906944:37778931863369478569985 274877906946:274877906943:3461531239060997350883379673825280 274877906946:274877906942:237874615452724079129222789206770752170229760 274877906946:274877906941:13077295282055584924657029248872882562275152102407798784 # binomial(2^38+3, k) for 0 <= k <= 5 274877906947:0:1 274877906947:1:274877906947 274877906947:2:37778931863644356476931 274877906947:3:3461531239098776282746749152395265 274877906947:4:237874615456185610368283786557654131844055040 274877906947:5:13077295282293459540109753328002105351481922854578028544 # binomial(2^38+3, 2^38+3-k) for 0 <= k <= 5 274877906947:274877906947:1 274877906947:274877906946:274877906947 274877906947:274877906945:37778931863644356476931 274877906947:274877906944:3461531239098776282746749152395265 274877906947:274877906943:237874615456185610368283786557654131844055040 274877906947:274877906942:13077295282293459540109753328002105351481922854578028544 # binomial(2^38+4, k) for 0 <= k <= 5 274877906948:0:1 274877906948:1:274877906948 274877906948:2:37778931863919234383878 274877906948:3:3461531239136555214610393508872196 274877906948:4:237874615459647141607382562840400880996450305 274877906948:5:13077295282531334155565938938370389138039576986422083584 # binomial(2^38+4, 2^38+4-k) for 0 <= k <= 5 274877906948:274877906948:1 274877906948:274877906947:274877906948 274877906948:274877906946:37778931863919234383878 274877906948:274877906945:3461531239136555214610393508872196 274877906948:274877906944:237874615459647141607382562840400880996450305 274877906948:274877906943:13077295282531334155565938938370389138039576986422083584 # binomial(2^38+5, k) for 0 <= k <= 5 274877906949:0:1 274877906949:1:274877906949 274877906949:2:37778931864194112290826 274877906949:3:3461531239174334146474312743256074 274877906949:4:237874615463108672846519118055011274505322501 274877906949:5:13077295282769208771025586079977771700879977867418533889 # binomial(2^38+5, 2^38+5-k) for 0 <= k <= 5 274877906949:274877906949:1 274877906949:274877906948:274877906949 274877906949:274877906947:37778931864194112290826 274877906949:274877906946:3461531239174334146474312743256074 274877906949:274877906945:237874615463108672846519118055011274505322501 274877906949:274877906944:13077295282769208771025586079977771700879977867418533889 # binomial(2^39-2, k) for 0 <= k <= 5 549755813886:0:1 549755813886:1:549755813886 549755813886:2:151115727450454257303555 549755813886:3:27692249911732400169809543423852540 549755813886:4:3805993847118970141463673237520170890769203205 549755813886:5:418473449010554742200403671086040689489309645797083578362 # binomial(2^39-2, 2^39-2-k) for 0 <= k <= 5 549755813886:549755813886:1 549755813886:549755813885:549755813886 549755813886:549755813884:151115727450454257303555 549755813886:549755813883:27692249911732400169809543423852540 549755813886:549755813882:3805993847118970141463673237520170890769203205 549755813886:549755813881:418473449010554742200403671086040689489309645797083578362 # binomial(2^39-1, k) for 0 <= k <= 5 549755813887:0:1 549755813887:1:549755813887 549755813887:2:151115727451004013117441 549755813887:3:27692249911883515897259997681156095 549755813887:4:3805993847146662391375405637689980434193055745 549755813887:5:418473449014360736047522641227504362726829816687852781567 # binomial(2^39-1, 2^39-1-k) for 0 <= k <= 5 549755813887:549755813887:1 549755813887:549755813886:549755813887 549755813887:549755813885:151115727451004013117441 549755813887:549755813884:27692249911883515897259997681156095 549755813887:549755813883:3805993847146662391375405637689980434193055745 549755813887:549755813882:418473449014360736047522641227504362726829816687852781567 # binomial(2^39, k) for 0 <= k <= 5 549755813888:0:1 549755813888:1:549755813888 549755813888:2:151115727451553768931328 549755813888:3:27692249912034631624711001694273536 549755813888:4:3805993847174354641287289153587240431874211840 549755813888:5:418473449018166729894669303618879768364519797122045837312 # binomial(2^39, 2^39-k) for 0 <= k <= 5 549755813888:549755813888:1 549755813888:549755813887:549755813888 549755813888:549755813886:151115727451553768931328 549755813888:549755813885:27692249912034631624711001694273536 549755813888:549755813884:3805993847174354641287289153587240431874211840 549755813888:549755813883:418473449018166729894669303618879768364519797122045837312 # binomial(2^39+1, k) for 0 <= k <= 5 549755813889:0:1 549755813889:1:549755813889 549755813889:2:151115727452103524745216 549755813889:3:27692249912185747352162555463204864 549755813889:4:3805993847202046891199323785211951433568485376 549755813889:5:418473449021972723741843658260167057518107037553920049152 # binomial(2^39+1, 2^39+1-k) for 0 <= k <= 5 549755813889:549755813889:1 549755813889:549755813888:549755813889 549755813889:549755813887:151115727452103524745216 549755813889:549755813886:27692249912185747352162555463204864 549755813889:549755813885:3805993847202046891199323785211951433568485376 549755813889:549755813884:418473449021972723741843658260167057518107037553920049152 # binomial(2^39+2, k) for 0 <= k <= 5 549755813890:0:1 549755813890:1:549755813890 549755813890:2:151115727452653280559105 549755813890:3:27692249912336863079614658987950080 549755813890:4:3805993847229739141111509532564113989031690240 549755813890:5:418473449025778717589045705151366381303318988987488534528 # binomial(2^39+2, 2^39+2-k) for 0 <= k <= 5 549755813890:549755813890:1 549755813890:549755813889:549755813890 549755813890:549755813888:151115727452653280559105 549755813890:549755813887:27692249912336863079614658987950080 549755813890:549755813886:3805993847229739141111509532564113989031690240 549755813890:549755813885:418473449025778717589045705151366381303318988987488534528 # binomial(2^39+3, k) for 0 <= k <= 5 549755813891:0:1 549755813891:1:549755813891 549755813891:2:151115727453203036372995 549755813891:3:27692249912487978807067312268509185 549755813891:4:3805993847257431391023846395643728648019640320 549755813891:5:418473449029584711436275444292477890835883102976520224768 # binomial(2^39+3, 2^39+3-k) for 0 <= k <= 5 549755813891:549755813891:1 549755813891:549755813890:549755813891 549755813891:549755813889:151115727453203036372995 549755813891:549755813888:27692249912487978807067312268509185 549755813891:549755813887:3805993847257431391023846395643728648019640320 549755813891:549755813886:418473449029584711436275444292477890835883102976520224768 # binomial(2^39+4, k) for 0 <= k <= 5 549755813892:0:1 549755813892:1:549755813892 549755813892:2:151115727453752792186886 549755813892:3:27692249912639094534520515304882180 549755813892:4:3805993847285123640936334374450795960288149505 549755813892:5:418473449033390705283532875683501737231526831624539865088 # binomial(2^39+4, 2^39+4-k) for 0 <= k <= 5 549755813892:549755813892:1 549755813892:549755813891:549755813892 549755813892:549755813890:151115727453752792186886 549755813892:549755813889:27692249912639094534520515304882180 549755813892:549755813888:3805993847285123640936334374450795960288149505 549755813892:549755813887:418473449033390705283532875683501737231526831624539865088 # binomial(2^39+5, k) for 0 <= k <= 5 549755813893:0:1 549755813893:1:549755813893 549755813893:2:151115727454302548000778 549755813893:3:27692249912790210261974268097069066 549755813893:4:3805993847312815890848973468985316475593031685 549755813893:5:418473449037196699130817999324438071605977627584828014593 # binomial(2^39+5, 2^39+5-k) for 0 <= k <= 5 549755813893:549755813893:1 549755813893:549755813892:549755813893 549755813893:549755813891:151115727454302548000778 549755813893:549755813890:27692249912790210261974268097069066 549755813893:549755813889:3805993847312815890848973468985316475593031685 549755813893:549755813888:418473449037196699130817999324438071605977627584828014593 # binomial(2^40-2, k) for 0 <= k <= 5 1099511627774:0:1 1099511627774:1:1099511627774 1099511627774:2:604462909804565808283651 1099511627774:3:221537999295672590087883997501718524 1099511627774:4:60895901554678905260949243509534257923275882501 1099511627774:5:13391150368581335356629583869303623888760017067891553730554 # binomial(2^40-2, 2^40-2-k) for 0 <= k <= 5 1099511627774:1099511627774:1 1099511627774:1099511627773:1099511627774 1099511627774:1099511627772:604462909804565808283651 1099511627774:1099511627771:221537999295672590087883997501718524 1099511627774:1099511627770:60895901554678905260949243509534257923275882501 1099511627774:1099511627769:13391150368581335356629583869303623888760017067891553730554 # binomial(2^40-1, k) for 0 <= k <= 5 1099511627775:0:1 1099511627775:1:1099511627775 1099511627775:2:604462909805665319911425 1099511627775:3:221537999296277052997688563310002175 1099511627775:4:60895901554900443260244916099622141920777601025 1099511627775:5:13391150368642231258184262774564573132269551325814829613055 # binomial(2^40-1, 2^40-1-k) for 0 <= k <= 5 1099511627775:1099511627775:1 1099511627775:1099511627774:1099511627775 1099511627775:1099511627773:604462909805665319911425 1099511627775:1099511627772:221537999296277052997688563310002175 1099511627775:1099511627771:60895901554900443260244916099622141920777601025 1099511627775:1099511627770:13391150368642231258184262774564573132269551325814829613055 # binomial(2^40, k) for 0 <= k <= 5 1099511627776:0:1 1099511627776:1:1099511627776 1099511627776:2:604462909806764831539200 1099511627776:3:221537999296881515907494228629913600 1099511627776:4:60895901555121981259541193152619830484087603200 1099511627776:5:13391150368703127159739163217824818048369173467735607214080 # binomial(2^40, 2^40-k) for 0 <= k <= 5 1099511627776:1099511627776:1 1099511627776:1099511627775:1099511627776 1099511627776:1099511627774:604462909806764831539200 1099511627776:1099511627773:221537999296881515907494228629913600 1099511627776:1099511627772:60895901555121981259541193152619830484087603200 1099511627776:1099511627771:13391150368703127159739163217824818048369173467735607214080 # binomial(2^40+1, k) for 0 <= k <= 5 1099511627777:0:1 1099511627777:1:1099511627777 1099511627777:2:604462909807864343166976 1099511627777:3:221537999297485978817300993461452800 1099511627777:4:60895901555343519258838074668527324712717516800 1099511627777:5:13391150368764023061294285199084359241521793298219694817280 # binomial(2^40+1, 2^40+1-k) for 0 <= k <= 5 1099511627777:1099511627777:1 1099511627777:1099511627776:1099511627777 1099511627777:1099511627775:604462909807864343166976 1099511627777:1099511627774:221537999297485978817300993461452800 1099511627777:1099511627773:60895901555343519258838074668527324712717516800 1099511627777:1099511627772:13391150368764023061294285199084359241521793298219694817280 # binomial(2^40+2, k) for 0 <= k <= 5 1099511627778:0:1 1099511627778:1:1099511627778 1099511627778:2:604462909808963854794753 1099511627778:3:221537999298090441727108857804619776 1099511627778:4:60895901555565057258135560647344625706178969600 1099511627778:5:13391150368824918962849628718343197316190320622932412334080 # binomial(2^40+2, 2^40+2-k) for 0 <= k <= 5 1099511627778:1099511627778:1 1099511627778:1099511627777:1099511627778 1099511627778:1099511627776:604462909808963854794753 1099511627778:1099511627775:221537999298090441727108857804619776 1099511627778:1099511627774:60895901555565057258135560647344625706178969600 1099511627778:1099511627773:13391150368824918962849628718343197316190320622932412334080 # binomial(2^40+3, k) for 0 <= k <= 5 1099511627779:0:1 1099511627779:1:1099511627779 1099511627779:2:604462909810063366422531 1099511627779:3:221537999298694904636917821659414529 1099511627779:4:60895901555786595257433651089071734563983589376 1099511627779:5:13391150368885814864405193775601332876837665248638591303680 # binomial(2^40+3, 2^40+3-k) for 0 <= k <= 5 1099511627779:1099511627779:1 1099511627779:1099511627778:1099511627779 1099511627779:1099511627777:604462909810063366422531 1099511627779:1099511627776:221537999298694904636917821659414529 1099511627779:1099511627775:60895901555786595257433651089071734563983589376 1099511627779:1099511627774:13391150368885814864405193775601332876837665248638591303680 # binomial(2^40+4, k) for 0 <= k <= 5 1099511627780:0:1 1099511627780:1:1099511627780 1099511627780:2:604462909811162878050310 1099511627780:3:221537999299299367546727885025837060 1099511627780:4:60895901556008133256732345993708652385643003905 1099511627780:5:13391150368946710765960980370858766527926736983202574893056 # binomial(2^40+4, 2^40+4-k) for 0 <= k <= 5 1099511627780:1099511627780:1 1099511627780:1099511627779:1099511627780 1099511627780:1099511627778:604462909811162878050310 1099511627780:1099511627777:221537999299299367546727885025837060 1099511627780:1099511627776:60895901556008133256732345993708652385643003905 1099511627780:1099511627775:13391150368946710765960980370858766527926736983202574893056 # binomial(2^40+5, k) for 0 <= k <= 5 1099511627781:0:1 1099511627781:1:1099511627781 1099511627781:2:604462909812262389678090 1099511627781:3:221537999299903830456539047903887370 1099511627781:4:60895901556229671256031645361255380270668840965 1099511627781:5:13391150369007606667516988504115498873920445635588217896961 # binomial(2^40+5, 2^40+5-k) for 0 <= k <= 5 1099511627781:1099511627781:1 1099511627781:1099511627780:1099511627781 1099511627781:1099511627779:604462909812262389678090 1099511627781:1099511627778:221537999299903830456539047903887370 1099511627781:1099511627777:60895901556229671256031645361255380270668840965 1099511627781:1099511627776:13391150369007606667516988504115498873920445635588217896961 # binomial(2^41-2, k) for 0 <= k <= 5 2199023255550:0:1 2199023255550:1:2199023255550 2199023255550:2:2417851639223760791273475 2199023255550:3:1772303994372634275620731167759663100 2199023255550:4:974334424881065548155474586692836339157481553925 2199023255550:5:428516811798500069111654552198389955210131537098919290863610 # binomial(2^41-2, 2^41-2-k) for 0 <= k <= 5 2199023255550:2199023255550:1 2199023255550:2199023255549:2199023255550 2199023255550:2199023255548:2417851639223760791273475 2199023255550:2199023255547:1772303994372634275620731167759663100 2199023255550:2199023255546:974334424881065548155474586692836339157481553925 2199023255550:2199023255545:428516811798500069111654552198389955210131537098919290863610 # binomial(2^41-1, k) for 0 <= k <= 5 2199023255551:0:1 2199023255551:1:2199023255551 2199023255551:2:2417851639225959814529025 2199023255551:3:1772303994375052127259954928550936575 2199023255551:4:974334424882837852149847220968457070325241217025 2199023255551:5:428516811799474403536535617746545429796824373438076772417535 # binomial(2^41-1, 2^41-1-k) for 0 <= k <= 5 2199023255551:2199023255551:1 2199023255551:2199023255550:2199023255551 2199023255551:2199023255549:2417851639225959814529025 2199023255551:2199023255548:1772303994375052127259954928550936575 2199023255551:2199023255547:974334424882837852149847220968457070325241217025 2199023255551:2199023255546:428516811799474403536535617746545429796824373438076772417535 # binomial(2^41, k) for 0 <= k <= 5 2199023255552:0:1 2199023255552:1:2199023255552 2199023255552:2:2417851639228158837784576 2199023255552:3:1772303994377469978899180888365465600 2199023255552:4:974334424884610156144222273095717025253792153600 2199023255552:5:428516811800448737961418455598695277017792830508402013634560 # binomial(2^41, 2^41-k) for 0 <= k <= 5 2199023255552:2199023255552:1 2199023255552:2199023255551:2199023255552 2199023255552:2199023255550:2417851639228158837784576 2199023255552:2199023255549:1772303994377469978899180888365465600 2199023255552:2199023255548:974334424884610156144222273095717025253792153600 2199023255552:2199023255547:428516811800448737961418455598695277017792830508402013634560 # binomial(2^41+1, k) for 0 <= k <= 5 2199023255553:0:1 2199023255553:1:2199023255553 2199023255553:2:2417851639230357861040128 2199023255553:3:1772303994379887830538409047203250176 2199023255553:4:974334424886382460138599743074616206142157619200 2199023255553:5:428516811801423072386303065754839499290888547533655805788160 # binomial(2^41+1, 2^41+1-k) for 0 <= k <= 5 2199023255553:2199023255553:1 2199023255553:2199023255552:2199023255553 2199023255553:2199023255551:2417851639230357861040128 2199023255553:2199023255550:1772303994379887830538409047203250176 2199023255553:2199023255549:974334424886382460138599743074616206142157619200 2199023255553:2199023255548:428516811801423072386303065754839499290888547533655805788160 # binomial(2^41+2, k) for 0 <= k <= 5 2199023255554:0:1 2199023255554:1:2199023255554 2199023255554:2:2417851639232556884295681 2199023255554:3:1772303994382305682177639405064290304 2199023255554:4:974334424888154764132979630905154615189360869376 2199023255554:5:428516811802397406811189448214978099033963163739797963407360 # binomial(2^41+2, 2^41+2-k) for 0 <= k <= 5 2199023255554:2199023255554:1 2199023255554:2199023255553:2199023255554 2199023255554:2199023255552:2417851639232556884295681 2199023255554:2199023255551:1772303994382305682177639405064290304 2199023255554:2199023255550:974334424888154764132979630905154615189360869376 2199023255554:2199023255549:428516811802397406811189448214978099033963163739797963407360 # binomial(2^41+3, k) for 0 <= k <= 5 2199023255555:0:1 2199023255555:1:2199023255555 2199023255555:2:2417851639234755907551235 2199023255555:3:1772303994384723533816871961948585985 2199023255555:4:974334424889927068127361936587332254594425159680 2199023255555:5:428516811803371741236077602979111078664868318354987324276736 # binomial(2^41+3, 2^41+3-k) for 0 <= k <= 5 2199023255555:2199023255555:1 2199023255555:2199023255554:2199023255555 2199023255555:2199023255553:2417851639234755907551235 2199023255555:2199023255552:1772303994384723533816871961948585985 2199023255555:2199023255551:974334424889927068127361936587332254594425159680 2199023255555:2199023255550:428516811803371741236077602979111078664868318354987324276736 # binomial(2^41+4, k) for 0 <= k <= 5 2199023255556:0:1 2199023255556:1:2199023255556 2199023255556:2:2417851639236954930806790 2199023255556:3:1772303994387141385456106717856137220 2199023255556:4:974334424891699372121746660121149126556373745665 2199023255556:5:428516811804346075660967530047238440601455650609581749436416 # binomial(2^41+4, 2^41+4-k) for 0 <= k <= 5 2199023255556:2199023255556:1 2199023255556:2199023255555:2199023255556 2199023255556:2199023255554:2417851639236954930806790 2199023255556:2199023255553:1772303994387141385456106717856137220 2199023255556:2199023255552:974334424891699372121746660121149126556373745665 2199023255556:2199023255551:428516811804346075660967530047238440601455650609581749436416 # binomial(2^41+5, k) for 0 <= k <= 5 2199023255557:0:1 2199023255557:1:2199023255557 2199023255557:2:2417851639239153954062346 2199023255557:3:1772303994389559237095343672786944010 2199023255557:4:974334424893471676116133801506605233274229882885 2199023255557:5:428516811805320410085859229419360187261576799736138123182081 # binomial(2^41+5, 2^41+5-k) for 0 <= k <= 5 2199023255557:2199023255557:1 2199023255557:2199023255556:2199023255557 2199023255557:2199023255555:2417851639239153954062346 2199023255557:2199023255554:1772303994389559237095343672786944010 2199023255557:2199023255553:974334424893471676116133801506605233274229882885 2199023255557:2199023255552:428516811805320410085859229419360187261576799736138123182081 # binomial(2^42-2, k) for 0 <= k <= 5 4398046511102:0:1 4398046511102:1:4398046511102 4398046511102:2:9671406556906038281371651 4398046511102:3:14178431955010088424636543267665608700 4398046511102:4:15589350798146673282330058578874071810306285240325 4398046511102:5:13712537977614359614765401212982215114882134135998435741925370 # binomial(2^42-2, 2^42-2-k) for 0 <= k <= 5 4398046511102:4398046511102:1 4398046511102:4398046511101:4398046511102 4398046511102:4398046511100:9671406556906038281371651 4398046511102:4398046511099:14178431955010088424636543267665608700 4398046511102:4398046511098:15589350798146673282330058578874071810306285240325 4398046511102:4398046511097:13712537977614359614765401212982215114882134135998435741925370 # binomial(2^42-1, k) for 0 <= k <= 5 4398046511103:0:1 4398046511103:1:4398046511103 4398046511103:2:9671406556910436327882753 4398046511103:3:14178431955019759831193449305946980351 4398046511103:4:15589350798160851714285068667298708353573950849025 4398046511103:5:13712537977629948965563547886264545173461008207808742027165695 # binomial(2^42-1, 2^42-1-k) for 0 <= k <= 5 4398046511103:4398046511103:1 4398046511103:4398046511102:4398046511103 4398046511103:4398046511101:9671406556910436327882753 4398046511103:4398046511100:14178431955019759831193449305946980351 4398046511103:4398046511099:15589350798160851714285068667298708353573950849025 4398046511103:4398046511098:13712537977629948965563547886264545173461008207808742027165695 # binomial(2^42, k) for 0 <= k <= 5 4398046511104:0:1 4398046511104:1:4398046511104 4398046511104:2:9671406556914834374393856 4398046511104:3:14178431955029431237750359742274863104 4398046511104:4:15589350798175030146240088427129901802879897829376 4398046511104:5:13712537977645538316361708737978830242128306916162315978014720 # binomial(2^42, 2^42-k) for 0 <= k <= 5 4398046511104:4398046511104:1 4398046511104:4398046511103:4398046511104 4398046511104:4398046511102:9671406556914834374393856 4398046511104:4398046511101:14178431955029431237750359742274863104 4398046511104:4398046511100:15589350798175030146240088427129901802879897829376 4398046511104:4398046511099:13712537977645538316361708737978830242128306916162315978014720 # binomial(2^42+1, k) for 0 <= k <= 5 4398046511105:0:1 4398046511105:1:4398046511105 4398046511105:2:9671406556919232420904960 4398046511105:3:14178431955039102644307274576649256960 4398046511105:4:15589350798189208578195117858367652162622172692480 4398046511105:5:13712537977661127667159883768125070330555436817965195875844096 # binomial(2^42+1, 2^42+1-k) for 0 <= k <= 5 4398046511105:4398046511105:1 4398046511105:4398046511104:4398046511105 4398046511105:4398046511103:9671406556919232420904960 4398046511105:4398046511102:14178431955039102644307274576649256960 4398046511105:4398046511101:15589350798189208578195117858367652162622172692480 4398046511105:4398046511100:13712537977661127667159883768125070330555436817965195875844096 # binomial(2^42+2, k) for 0 <= k <= 5 4398046511106:0:1 4398046511106:1:4398046511106 4398046511106:2:9671406556923630467416065 4398046511106:3:14178431955048774050864193809070161920 4398046511106:4:15589350798203387010150156961011959437198821949440 4398046511106:5:13712537977676717017958072976703265448413804470127818048536576 # binomial(2^42+2, 2^42+2-k) for 0 <= k <= 5 4398046511106:4398046511106:1 4398046511106:4398046511105:4398046511106 4398046511106:4398046511104:9671406556923630467416065 4398046511106:4398046511103:14178431955048774050864193809070161920 4398046511106:4398046511102:15589350798203387010150156961011959437198821949440 4398046511106:4398046511101:13712537977676717017958072976703265448413804470127818048536576 # binomial(2^42+3, k) for 0 <= k <= 5 4398046511107:0:1 4398046511107:1:4398046511107 4398046511107:2:9671406556928028513927171 4398046511107:3:14178431955058445457421117439537577985 4398046511107:4:15589350798217565442105205735062823631007892111360 4398046511107:5:13712537977692306368756276363713415605374816429565016870486016 # binomial(2^42+3, 2^42+3-k) for 0 <= k <= 5 4398046511107:4398046511107:1 4398046511107:4398046511106:4398046511107 4398046511107:4398046511105:9671406556928028513927171 4398046511107:4398046511104:14178431955058445457421117439537577985 4398046511107:4398046511103:15589350798217565442105205735062823631007892111360 4398046511107:4398046511102:13712537977692306368756276363713415605374816429565016870486016 # binomial(2^42+4, k) for 0 <= k <= 5 4398046511108:0:1 4398046511108:1:4398046511108 4398046511108:2:9671406556932426560438278 4398046511108:3:14178431955068116863978045468051505156 4398046511108:4:15589350798231743874060264180520244748447429689345 4398046511108:5:13712537977707895719554493929155520811109879253196024762597376 # binomial(2^42+4, 2^42+4-k) for 0 <= k <= 5 4398046511108:4398046511108:1 4398046511108:4398046511107:4398046511108 4398046511108:4398046511106:9671406556932426560438278 4398046511108:4398046511105:14178431955068116863978045468051505156 4398046511108:4398046511104:15589350798231743874060264180520244748447429689345 4398046511108:4398046511103:13712537977707895719554493929155520811109879253196024762597376 # binomial(2^42+5, k) for 0 <= k <= 5 4398046511109:0:1 4398046511109:1:4398046511109 4398046511109:2:9671406556936824606949386 4398046511109:3:14178431955077788270534977894611943434 4398046511109:4:15589350798245922306015332297384222793915481194501 4398046511109:5:13712537977723485070352725673029581075290399497944472192286721 # binomial(2^42+5, 2^42+5-k) for 0 <= k <= 5 4398046511109:4398046511109:1 4398046511109:4398046511108:4398046511109 4398046511109:4398046511107:9671406556936824606949386 4398046511109:4398046511106:14178431955077788270534977894611943434 4398046511109:4398046511105:15589350798245922306015332297384222793915481194501 4398046511109:4398046511104:13712537977723485070352725673029581075290399497944472192286721 # binomial(2^43-2, k) for 0 <= k <= 5 8796093022206:0:1 8796093022206:1:8796093022206 8796093022206:2:38685626227646143358042115 8796093022206:3:113427455640196764275775236192887373820 8796093022206:4:249429612770743768612021345466160211959290905231365 8796093022206:5:438801215284657226123574764685914297866664808477889946978353146 # binomial(2^43-2, 2^43-2-k) for 0 <= k <= 5 8796093022206:8796093022206:1 8796093022206:8796093022205:8796093022206 8796093022206:8796093022204:38685626227646143358042115 8796093022206:8796093022203:113427455640196764275775236192887373820 8796093022206:8796093022202:249429612770743768612021345466160211959290905231365 8796093022206:8796093022201:438801215284657226123574764685914297866664808477889946978353146 # binomial(2^43-1, k) for 0 <= k <= 5 8796093022207:0:1 8796093022207:1:8796093022207 8796093022207:2:38685626227654939451064321 8796093022207:3:113427455640235449902002882336245415935 8796093022207:4:249429612770857196067661542230435987195483792605185 8796093022207:5:438801215284906655736345508454526319212130968689849237883584511 # binomial(2^43-1, 2^43-1-k) for 0 <= k <= 5 8796093022207:8796093022207:1 8796093022207:8796093022206:8796093022207 8796093022207:8796093022205:38685626227654939451064321 8796093022207:8796093022204:113427455640235449902002882336245415935 8796093022207:8796093022203:249429612770857196067661542230435987195483792605185 8796093022207:8796093022202:438801215284906655736345508454526319212130968689849237883584511 # binomial(2^43, k) for 0 <= k <= 5 8796093022208:0:1 8796093022208:1:8796093022208 8796093022208:2:38685626227663735544086528 8796093022208:3:113427455640274135528230537275696480256 8796093022208:4:249429612770970623523301777680337990077820038021120 8796093022208:5:438801215285156085349116365650593980754361404677044721676189696 # binomial(2^43, 2^43-k) for 0 <= k <= 5 8796093022208:8796093022208:1 8796093022208:8796093022207:8796093022208 8796093022208:8796093022206:38685626227663735544086528 8796093022208:8796093022205:113427455640274135528230537275696480256 8796093022208:8796093022204:249429612770970623523301777680337990077820038021120 8796093022208:8796093022203:438801215285156085349116365650593980754361404677044721676189696 # binomial(2^43+1, k) for 0 <= k <= 5 8796093022209:0:1 8796093022209:1:8796093022209 8796093022209:2:38685626227672531637108736 8796093022209:3:113427455640312821154458201011240566784 8796093022209:4:249429612771084050978942051815866220615095734501376 8796093022209:5:438801215285405514961887336274117282532041742667122541714210816 # binomial(2^43+1, 2^43+1-k) for 0 <= k <= 5 8796093022209:8796093022209:1 8796093022209:8796093022208:8796093022209 8796093022209:8796093022207:38685626227672531637108736 8796093022209:8796093022206:113427455640312821154458201011240566784 8796093022209:8796093022205:249429612771084050978942051815866220615095734501376 8796093022209:8796093022204:438801215285405514961887336274117282532041742667122541714210816 # binomial(2^43+2, k) for 0 <= k <= 5 8796093022210:0:1 8796093022210:1:8796093022210 8796093022210:2:38685626227681327730130945 8796093022210:3:113427455640351506780685873542877675520 8796093022210:4:249429612771197478434582364637020678816106975068160 8796093022210:5:438801215285654944574658420325096224583857608887737637448712192 # binomial(2^43+2, 2^43+2-k) for 0 <= k <= 5 8796093022210:8796093022210:1 8796093022210:8796093022209:8796093022210 8796093022210:8796093022208:38685626227681327730130945 8796093022210:8796093022207:113427455640351506780685873542877675520 8796093022210:8796093022206:249429612771197478434582364637020678816106975068160 8796093022210:8796093022205:438801215285654944574658420325096224583857608887737637448712192 # binomial(2^43+3, k) for 0 <= k <= 5 8796093022211:0:1 8796093022211:1:8796093022211 8796093022211:2:38685626227690123823153155 8796093022211:3:113427455640390192406913554870607806465 8796093022211:4:249429612771310905890222716143801364689649852743680 8796093022211:5:438801215285904374187429617803530806948494629566553744423780352 # binomial(2^43+3, 2^43+3-k) for 0 <= k <= 5 8796093022211:8796093022211:1 8796093022211:8796093022210:8796093022211 8796093022211:8796093022209:38685626227690123823153155 8796093022211:8796093022208:113427455640390192406913554870607806465 8796093022211:8796093022207:249429612771310905890222716143801364689649852743680 8796093022211:8796093022206:438801215285904374187429617803530806948494629566553744423780352 # binomial(2^43+4, k) for 0 <= k <= 5 8796093022212:0:1 8796093022212:1:8796093022212 8796093022212:2:38685626227698919916175366 8796093022212:3:113427455640428878033141244994430959620 8796093022212:4:249429612771424333345863106336208278244520460550145 8796093022212:5:438801215286153803800200928709421029664638430931243394276524032 # binomial(2^43+4, 2^43+4-k) for 0 <= k <= 5 8796093022212:8796093022212:1 8796093022212:8796093022211:8796093022212 8796093022212:8796093022210:38685626227698919916175366 8796093022212:8796093022209:113427455640428878033141244994430959620 8796093022212:8796093022208:249429612771424333345863106336208278244520460550145 8796093022212:8796093022207:438801215286153803800200928709421029664638430931243394276524032 # binomial(2^43+5, k) for 0 <= k <= 5 8796093022213:0:1 8796093022213:1:8796093022213 8796093022213:2:38685626227707716009197578 8796093022213:3:113427455640467563659368943914347134986 8796093022213:4:249429612771537760801503535214241419489514891509765 8796093022213:5:438801215286403233412972353042766892770974639209487914737074177 # binomial(2^43+5, 2^43+5-k) for 0 <= k <= 5 8796093022213:8796093022213:1 8796093022213:8796093022212:8796093022213 8796093022213:8796093022211:38685626227707716009197578 8796093022213:8796093022210:113427455640467563659368943914347134986 8796093022213:8796093022209:249429612771537760801503535214241419489514891509765 8796093022213:8796093022208:438801215286403233412972353042766892770974639209487914737074177 # binomial(2^44-2, k) for 0 <= k <= 5 17592186044414:0:1 17592186044414:1:17592186044414 17592186044414:2:154742504910628553897279491 17592186044414:3:907419645122038341720933678447767584764 17592186044414:4:3990873804335076266550267539771426057370715077738501 17592186044414:5:14041638889124994731171724381383741225552264361682725111110565882 # binomial(2^44-2, 2^44-2-k) for 0 <= k <= 5 17592186044414:17592186044414:1 17592186044414:17592186044413:17592186044414 17592186044414:17592186044412:154742504910628553897279491 17592186044414:17592186044411:907419645122038341720933678447767584764 17592186044414:17592186044410:3990873804335076266550267539771426057370715077738501 17592186044414:17592186044409:14041638889124994731171724381383741225552264361682725111110565882 # binomial(2^44-1, k) for 0 <= k <= 5 17592186044415:0:1 17592186044415:1:17592186044415 17592186044415:2:154742504910646146083323905 17592186044415:3:907419645122193084225844307001664864255 17592186044415:4:3990873804335983686195389578113146991049162845323265 17592186044415:5:14041638889128985604976059457650291493092035787740095826188304383 # binomial(2^44-1, 2^44-1-k) for 0 <= k <= 5 17592186044415:17592186044415:1 17592186044415:17592186044414:17592186044415 17592186044415:17592186044413:154742504910646146083323905 17592186044415:17592186044412:907419645122193084225844307001664864255 17592186044415:17592186044411:3990873804335983686195389578113146991049162845323265 17592186044415:17592186044410:14041638889128985604976059457650291493092035787740095826188304383 # binomial(2^44, k) for 0 <= k <= 5 17592186044416:0:1 17592186044416:1:17592186044416 17592186044416:2:154742504910663738269368320 17592186044416:3:907419645122347826730754953147748188160 17592186044416:4:3990873804336891105840511771197372835356164510187520 17592186044416:5:14041638889132976478780395441336486882670148934731144989033627648 # binomial(2^44, 2^44-k) for 0 <= k <= 5 17592186044416:17592186044416:1 17592186044416:17592186044415:17592186044416 17592186044416:17592186044414:154742504910663738269368320 17592186044416:17592186044413:907419645122347826730754953147748188160 17592186044416:17592186044412:3990873804336891105840511771197372835356164510187520 17592186044416:17592186044411:14041638889132976478780395441336486882670148934731144989033627648 # binomial(2^44+1, k) for 0 <= k <= 5 17592186044417:0:1 17592186044417:1:17592186044417 17592186044417:2:154742504910681330455412736 17592186044417:3:907419645122502569235665616886017556480 17592186044417:4:3990873804337798525485634119024103590309312258375680 17592186044417:5:14041638889136967352584732332442327394441346307566501153543815168 # binomial(2^44+1, 2^44+1-k) for 0 <= k <= 5 17592186044417:17592186044417:1 17592186044417:17592186044416:17592186044417 17592186044417:17592186044415:154742504910681330455412736 17592186044417:17592186044414:907419645122502569235665616886017556480 17592186044417:17592186044413:3990873804337798525485634119024103590309312258375680 17592186044417:17592186044412:14041638889136967352584732332442327394441346307566501153543815168 # binomial(2^44+2, k) for 0 <= k <= 5 17592186044418:0:1 17592186044418:1:17592186044418 17592186044418:2:154742504910698922641457153 17592186044418:3:907419645122657311740576298216472969216 17592186044418:4:3990873804338705945130756621593339255926198275932160 17592186044418:5:14041638889140958226389070130967813028560370411156810465802190848 # binomial(2^44+2, 2^44+2-k) for 0 <= k <= 5 17592186044418:17592186044418:1 17592186044418:17592186044417:17592186044418 17592186044418:17592186044416:154742504910698922641457153 17592186044418:17592186044415:907419645122657311740576298216472969216 17592186044418:17592186044414:3990873804338705945130756621593339255926198275932160 17592186044418:17592186044413:14041638889140958226389070130967813028560370411156810465802190848 # binomial(2^44+3, k) for 0 <= k <= 5 17592186044419:0:1 17592186044419:1:17592186044419 17592186044419:2:154742504910716514827501571 17592186044419:3:907419645122812054245486997139114426369 17592186044419:4:3990873804339613364775879278905079832224414748901376 17592186044419:5:14041638889144949100193408836912943785181963750412736664078123008 # binomial(2^44+3, 2^44+3-k) for 0 <= k <= 5 17592186044419:17592186044419:1 17592186044419:17592186044418:17592186044419 17592186044419:17592186044417:154742504910716514827501571 17592186044419:17592186044416:907419645122812054245486997139114426369 17592186044419:17592186044415:3990873804339613364775879278905079832224414748901376 17592186044419:17592186044414:14041638889144949100193408836912943785181963750412736664078123008 # binomial(2^44+4, k) for 0 <= k <= 5 17592186044420:0:1 17592186044420:1:17592186044420 17592186044420:2:154742504910734107013545990 17592186044420:3:907419645122966796750397713653941927940 17592186044420:4:3990873804340520784421002090959325319221553863327745 17592186044420:5:14041638889148939973997748450277719664460868830244961078827024384 # binomial(2^44+4, 2^44+4-k) for 0 <= k <= 5 17592186044420:17592186044420:1 17592186044420:17592186044419:17592186044420 17592186044420:17592186044418:154742504910734107013545990 17592186044420:17592186044417:907419645122966796750397713653941927940 17592186044420:17592186044416:3990873804340520784421002090959325319221553863327745 17592186044420:17592186044415:14041638889148939973997748450277719664460868830244961078827024384 # binomial(2^44+5, k) for 0 <= k <= 5 17592186044421:0:1 17592186044421:1:17592186044421 17592186044421:2:154742504910751699199590410 17592186044421:3:907419645123121539255308447760955473930 17592186044421:4:3990873804341428204066125057756075716935207805255685 17592186044421:5:14041638889152930847802088971062140666551828155564182632690352129 # binomial(2^44+5, 2^44+5-k) for 0 <= k <= 5 17592186044421:17592186044421:1 17592186044421:17592186044420:17592186044421 17592186044421:17592186044419:154742504910751699199590410 17592186044421:17592186044418:907419645123121539255308447760955473930 17592186044421:17592186044417:3990873804341428204066125057756075716935207805255685 17592186044421:17592186044416:14041638889152930847802088971062140666551828155564182632690352129 # binomial(2^45-2, k) for 0 <= k <= 5 35184372088830:0:1 35184372088830:1:35184372088830 35184372088830:2:618970019642602176519340035 35184372088830:3:7259357160978163643826397040597652209660 35184372088830:4:63853980869386628014867699721563566899116771586867205 35184372088830:5:449332444452255247320972659567285450978603271266462481659065270266 # binomial(2^45-2, 2^45-2-k) for 0 <= k <= 5 35184372088830:35184372088830:1 35184372088830:35184372088829:35184372088830 35184372088830:35184372088828:618970019642602176519340035 35184372088830:35184372088827:7259357160978163643826397040597652209660 35184372088830:35184372088826:63853980869386628014867699721563566899116771586867205 35184372088830:35184372088825:449332444452255247320972659567285450978603271266462481659065270266 # binomial(2^45-1, k) for 0 <= k <= 5 35184372088831:0:1 35184372088831:1:35184372088831 35184372088831:2:618970019642637360891428865 35184372088831:3:7259357160978782613846039642774171549695 35184372088831:4:63853980869393887372028677885207393296157369239076865 35184372088831:5:449332444452319101301842046195300318678324834833361598430652137471 # binomial(2^45-1, 2^45-1-k) for 0 <= k <= 5 35184372088831:35184372088831:1 35184372088831:35184372088830:35184372088831 35184372088831:35184372088829:618970019642637360891428865 35184372088831:35184372088828:7259357160978782613846039642774171549695 35184372088831:35184372088827:63853980869393887372028677885207393296157369239076865 35184372088831:35184372088826:449332444452319101301842046195300318678324834833361598430652137471 # binomial(2^45, k) for 0 <= k <= 5 35184372088832:0:1 35184372088832:1:35184372088832 35184372088832:2:618970019642672545263517696 35184372088832:3:7259357160979401583865682280135062978560 35184372088832:4:63853980869401146729189656667821239335800143410626560 35184372088832:5:449332444452382955282711440082672347356210042226657755799891214336 # binomial(2^45, 2^45-k) for 0 <= k <= 5 35184372088832:35184372088832:1 35184372088832:35184372088831:35184372088832 35184372088832:35184372088830:618970019642672545263517696 35184372088832:35184372088829:7259357160979401583865682280135062978560 35184372088832:35184372088828:63853980869401146729189656667821239335800143410626560 35184372088832:35184372088827:449332444452382955282711440082672347356210042226657755799891214336 # binomial(2^45+1, k) for 0 <= k <= 5 35184372088833:0:1 35184372088833:1:35184372088833 35184372088833:2:618970019642707729635606528 35184372088833:3:7259357160980020553885324952680326496256 35184372088833:4:63853980869408406086350636069405105018080278473605120 35184372088833:5:449332444452446809263580841229401537012877863465993555943301840896 # binomial(2^45+1, 2^45+1-k) for 0 <= k <= 5 35184372088833:35184372088833:1 35184372088833:35184372088832:35184372088833 35184372088833:35184372088831:618970019642707729635606528 35184372088833:35184372088830:7259357160980020553885324952680326496256 35184372088833:35184372088829:63853980869408406086350636069405105018080278473605120 35184372088833:35184372088828:449332444452446809263580841229401537012877863465993555943301840896 # binomial(2^45+2, k) for 0 <= k <= 5 35184372088834:0:1 35184372088834:1:35184372088834 35184372088834:2:618970019642742914007695361 35184372088834:3:7259357160980639523904967660409962102784 35184372088834:4:63853980869415665443511616089958990343032958800101376 35184372088834:5:449332444452510663244450249635487887648947268571011636221775446016 # binomial(2^45+2, 2^45+2-k) for 0 <= k <= 5 35184372088834:35184372088834:1 35184372088834:35184372088833:35184372088834 35184372088834:35184372088832:618970019642742914007695361 35184372088834:35184372088831:7259357160980639523904967660409962102784 35184372088834:35184372088830:63853980869415665443511616089958990343032958800101376 35184372088834:35184372088829:449332444452510663244450249635487887648947268571011636221775446016 # binomial(2^45+3, k) for 0 <= k <= 5 35184372088835:0:1 35184372088835:1:35184372088835 35184372088835:2:618970019642778098379784195 35184372088835:3:7259357160981258493924610403323969798145 35184372088835:4:63853980869422924800672596729482895310693368762204160 35184372088835:5:449332444452574517225319665300931399265037227561354669180575547392 # binomial(2^45+3, 2^45+3-k) for 0 <= k <= 5 35184372088835:35184372088835:1 35184372088835:35184372088834:35184372088835 35184372088835:35184372088833:618970019642778098379784195 35184372088835:35184372088832:7259357160981258493924610403323969798145 35184372088835:35184372088831:63853980869422924800672596729482895310693368762204160 35184372088835:35184372088830:449332444452574517225319665300931399265037227561354669180575547392 # binomial(2^45+4, k) for 0 <= k <= 5 35184372088836:0:1 35184372088836:1:35184372088836 35184372088836:2:618970019642813282751873030 35184372088836:3:7259357160981877463944253181422349582340 35184372088836:4:63853980869430184157833577987976819921096692732002305 35184372088836:5:449332444452638371206189088225732071861766710456665362549337751552 # binomial(2^45+4, 2^45+4-k) for 0 <= k <= 5 35184372088836:35184372088836:1 35184372088836:35184372088835:35184372088836 35184372088836:35184372088834:618970019642813282751873030 35184372088836:35184372088833:7259357160981877463944253181422349582340 35184372088836:35184372088832:63853980869430184157833577987976819921096692732002305 35184372088836:35184372088831:449332444452638371206189088225732071861766710456665362549337751552 # binomial(2^45+5, k) for 0 <= k <= 5 35184372088837:0:1 35184372088837:1:35184372088837 35184372088837:2:618970019642848467123961866 35184372088837:3:7259357160982496433963895994705101455370 35184372088837:4:63853980869437443514994559865440764174278115081584645 35184372088837:5:449332444452702225187058518409889905439754687276586459242069753857 # binomial(2^45+5, 2^45+5-k) for 0 <= k <= 5 35184372088837:35184372088837:1 35184372088837:35184372088836:35184372088837 35184372088837:35184372088835:618970019642848467123961866 35184372088837:35184372088834:7259357160982496433963895994705101455370 35184372088837:35184372088833:63853980869437443514994559865440764174278115081584645 35184372088837:35184372088832:449332444452702225187058518409889905439754687276586459242069753857 # binomial(2^46-2, k) for 0 <= k <= 5 70368744177662:0:1 70368744177662:1:70368744177662 70368744177662:2:2475880078570584627937804291 70368744177662:3:58074857287832736790846887691636938113020 70368744177662:4:1021663693910389310238390592173654464856868558775255045 70368744177662:5:14378638222476254569046766126201658081271417034329286042241548156922 # binomial(2^46-2, 2^46-2-k) for 0 <= k <= 5 70368744177662:70368744177662:1 70368744177662:70368744177661:70368744177662 70368744177662:70368744177660:2475880078570584627937804291 70368744177662:70368744177659:58074857287832736790846887691636938113020 70368744177662:70368744177658:1021663693910389310238390592173654464856868558775255045 70368744177662:70368744177657:14378638222476254569046766126201658081271417034329286042241548156922 # binomial(2^46-1, k) for 0 <= k <= 5 70368744177663:0:1 70368744177663:1:70368744177663 70368744177663:2:2475880078570654996681981953 70368744177663:3:58074857287835212670925458276264875917311 70368744177663:4:1021663693910447385095678424910445311744560195713368065 70368744177663:5:14378638222477276232740676515511896471863590688794142910800323411967 # binomial(2^46-1, 2^46-1-k) for 0 <= k <= 5 70368744177663:70368744177663:1 70368744177663:70368744177662:70368744177663 70368744177663:70368744177661:2475880078570654996681981953 70368744177663:70368744177660:58074857287835212670925458276264875917311 70368744177663:70368744177659:1021663693910447385095678424910445311744560195713368065 70368744177663:70368744177658:14378638222477276232740676515511896471863590688794142910800323411967 # binomial(2^46, k) for 0 <= k <= 5 70368744177664:0:1 70368744177664:1:70368744177664 70368744177664:2:2475880078570725365426159616 70368744177664:3:58074857287837688551004028931261557899264 70368744177664:4:1021663693910505459952966260123116237202836460589285376 70368744177664:5:14378638222478297896434586962896992150288501134105887470996036780032 # binomial(2^46, 2^46-k) for 0 <= k <= 5 70368744177664:70368744177664:1 70368744177664:70368744177663:70368744177664 70368744177664:70368744177662:2475880078570725365426159616 70368744177664:70368744177661:58074857287837688551004028931261557899264 70368744177664:70368744177660:1021663693910505459952966260123116237202836460589285376 70368744177664:70368744177659:14378638222478297896434586962896992150288501134105887470996036780032 # binomial(2^46+1, k) for 0 <= k <= 5 70368744177665:0:1 70368744177665:1:70368744177665 70368744177665:2:2475880078570795734170337280 70368744177665:3:58074857287840164431082599656626984058880 70368744177665:4:1021663693910563534810254097811667241231767722147184640 70368744177665:5:14378638222479319560128497468356945116548624250343090307456626065408 # binomial(2^46+1, 2^46+1-k) for 0 <= k <= 5 70368744177665:70368744177665:1 70368744177665:70368744177664:70368744177665 70368744177665:70368744177663:2475880078570795734170337280 70368744177665:70368744177662:58074857287840164431082599656626984058880 70368744177665:70368744177661:1021663693910563534810254097811667241231767722147184640 70368744177665:70368744177660:14378638222479319560128497468356945116548624250343090307456626065408 # binomial(2^46+2, k) for 0 <= k <= 5 70368744177666:0:1 70368744177666:1:70368744177666 70368744177666:2:2475880078570866102914514945 70368744177666:3:58074857287842640311161170452361154396160 70368744177666:4:1021663693910621609667541937976098323831424349131243520 70368744177666:5:14378638222480341223822408031891755370646435917584322075178773250048 # binomial(2^46+2, 2^46+2-k) for 0 <= k <= 5 70368744177666:70368744177666:1 70368744177666:70368744177665:70368744177666 70368744177666:70368744177664:2475880078570866102914514945 70368744177666:70368744177663:58074857287842640311161170452361154396160 70368744177666:70368744177662:1021663693910621609667541937976098323831424349131243520 70368744177666:70368744177661:14378638222480341223822408031891755370646435917584322075178773250048 # binomial(2^46+3, k) for 0 <= k <= 5 70368744177667:0:1 70368744177667:1:70368744177667 70368744177667:2:2475880078570936471658692611 70368744177667:3:58074857287845116191239741318464068911105 70368744177667:4:1021663693910679684524829780616409485001876710285639680 70368744177667:5:14378638222481362887516318653501422912584412015908153499527904493568 # binomial(2^46+3, 2^46+3-k) for 0 <= k <= 5 70368744177667:70368744177667:1 70368744177667:70368744177666:70368744177667 70368744177667:70368744177665:2475880078570936471658692611 70368744177667:70368744177664:58074857287845116191239741318464068911105 70368744177667:70368744177663:1021663693910679684524829780616409485001876710285639680 70368744177667:70368744177662:14378638222481362887516318653501422912584412015908153499527904493568 # binomial(2^46+4, k) for 0 <= k <= 5 70368744177668:0:1 70368744177668:1:70368744177668 70368744177668:2:2475880078571006840402870278 70368744177668:3:58074857287847592071318312254935727603716 70368744177668:4:1021663693910737759382117625732600724743195174354550785 70368744177668:5:14378638222482384551210229333185947742365028425393155376238190133248 # binomial(2^46+4, 2^46+4-k) for 0 <= k <= 5 70368744177668:70368744177668:1 70368744177668:70368744177667:70368744177668 70368744177668:70368744177666:2475880078571006840402870278 70368744177668:70368744177665:58074857287847592071318312254935727603716 70368744177668:70368744177664:1021663693910737759382117625732600724743195174354550785 70368744177668:70368744177663:14378638222482384551210229333185947742365028425393155376238190133248 # binomial(2^46+5, k) for 0 <= k <= 5 70368744177669:0:1 70368744177669:1:70368744177669 70368744177669:2:2475880078571077209147047946 70368744177669:3:58074857287850067951396883261776130473994 70368744177669:4:1021663693910795834239405473324672043055450110082154501 70368744177669:5:14378638222483406214904140070945329859990761026117898571412544684033 # binomial(2^46+5, 2^46+5-k) for 0 <= k <= 5 70368744177669:70368744177669:1 70368744177669:70368744177668:70368744177669 70368744177669:70368744177667:2475880078571077209147047946 70368744177669:70368744177666:58074857287850067951396883261776130473994 70368744177669:70368744177665:1021663693910795834239405473324672043055450110082154501 70368744177669:70368744177664:14378638222483406214904140070945329859990761026117898571412544684033 # binomial(2^47-2, k) for 0 <= k <= 5 140737488355326:0:1 140737488355326:1:140737488355326 140737488355326:2:9903520314282690355472105475 140737488355326:3:464598858302691604887717948830105735266300 140737488355326:4:16346619102567855059818308823595056171982933306606878725 140737488355326:5:460116423119305532685906783161152892536243312316941148729462432464890 # binomial(2^47-2, 2^47-2-k) for 0 <= k <= 5 140737488355326:140737488355326:1 140737488355326:140737488355325:140737488355326 140737488355326:140737488355324:9903520314282690355472105475 140737488355326:140737488355323:464598858302691604887717948830105735266300 140737488355326:140737488355322:16346619102567855059818308823595056171982933306606878725 140737488355326:140737488355321:460116423119305532685906783161152892536243312316941148729462432464890 # binomial(2^47-1, k) for 0 <= k <= 5 140737488355327:0:1 140737488355327:1:140737488355327 140737488355327:2:9903520314282831092960460801 140737488355327:3:464598858302701508408032231520461207371775 140737488355327:4:16346619102568319658676611515199943889931763412342145025 140737488355327:5:460116423119321879305009351016212710845066907373113131662769039343615 # binomial(2^47-1, 2^47-1-k) for 0 <= k <= 5 140737488355327:140737488355327:1 140737488355327:140737488355326:140737488355327 140737488355327:140737488355325:9903520314282831092960460801 140737488355327:140737488355324:464598858302701508408032231520461207371775 140737488355327:140737488355323:16346619102568319658676611515199943889931763412342145025 140737488355327:140737488355322:460116423119321879305009351016212710845066907373113131662769039343615 # binomial(2^47, k) for 0 <= k <= 5 140737488355328:0:1 140737488355328:1:140737488355328 140737488355328:2:9903520314282971830448816128 140737488355328:3:464598858302711411928346514351554167832576 140737488355328:4:16346619102568784257534914216708351922163283873549516800 140737488355328:5:460116423119338225924111919335871387456582107317003063426181381488640 # binomial(2^47, 2^47-k) for 0 <= k <= 5 140737488355328:140737488355328:1 140737488355328:140737488355327:140737488355328 140737488355328:140737488355326:9903520314282971830448816128 140737488355328:140737488355325:464598858302711411928346514351554167832576 140737488355328:140737488355324:16346619102568784257534914216708351922163283873549516800 140737488355328:140737488355323:460116423119338225924111919335871387456582107317003063426181381488640 # binomial(2^47+1, k) for 0 <= k <= 5 140737488355329:0:1 140737488355329:1:140737488355329 140737488355329:2:9903520314283112567937171456 140737488355329:3:464598858302721315448660797323384616648704 140737488355329:4:16346619102569248856393216928120280268677635427717349376 140737488355329:5:460116423119354572543214488120128922370798815668925226710054931005440 # binomial(2^47+1, 2^47+1-k) for 0 <= k <= 5 140737488355329:140737488355329:1 140737488355329:140737488355328:140737488355329 140737488355329:140737488355327:9903520314283112567937171456 140737488355329:140737488355326:464598858302721315448660797323384616648704 140737488355329:140737488355325:16346619102569248856393216928120280268677635427717349376 140737488355329:140737488355324:460116423119354572543214488120128922370798815668925226710054931005440 # binomial(2^47+2, k) for 0 <= k <= 5 140737488355330:0:1 140737488355330:1:140737488355330 140737488355330:2:9903520314283253305425526785 140737488355330:3:464598858302731218968975080435952553820160 140737488355330:4:16346619102569713455251519649435728929474958812333998080 140737488355330:5:460116423119370919162317057368985315587726935949193904345482648354816 # binomial(2^47+2, 2^47+2-k) for 0 <= k <= 5 140737488355330:140737488355330:1 140737488355330:140737488355329:140737488355330 140737488355330:140737488355328:9903520314283253305425526785 140737488355330:140737488355327:464598858302731218968975080435952553820160 140737488355330:140737488355326:16346619102569713455251519649435728929474958812333998080 140737488355330:140737488355325:460116423119370919162317057368985315587726935949193904345482648354816 # binomial(2^47+3, k) for 0 <= k <= 5 140737488355331:0:1 140737488355331:1:140737488355331 140737488355331:2:9903520314283394042913882115 140737488355331:3:464598858302741122489289363689257979346945 140737488355331:4:16346619102570178054109822380654697904555394764887818240 140737488355331:5:460116423119387265781419627082440567107376371678123379304294982352896 # binomial(2^47+3, 2^47+3-k) for 0 <= k <= 5 140737488355331:140737488355331:1 140737488355331:140737488355330:140737488355331 140737488355331:140737488355329:9903520314283394042913882115 140737488355331:140737488355328:464598858302741122489289363689257979346945 140737488355331:140737488355327:16346619102570178054109822380654697904555394764887818240 140737488355331:140737488355326:460116423119387265781419627082440567107376371678123379304294982352896 # binomial(2^47+4, k) for 0 <= k <= 5 140737488355332:0:1 140737488355332:1:140737488355332 140737488355332:2:9903520314283534780402237446 140737488355332:3:464598858302751026009603647083300893229060 140737488355332:4:16346619102570642652968125121777187193919084022867165185 140737488355332:5:460116423119403612400522197260494676929757026376027934699059870171136 # binomial(2^47+4, 2^47+4-k) for 0 <= k <= 5 140737488355332:140737488355332:1 140737488355332:140737488355331:140737488355332 140737488355332:140737488355330:9903520314283534780402237446 140737488355332:140737488355329:464598858302751026009603647083300893229060 140737488355332:140737488355328:16346619102570642652968125121777187193919084022867165185 140737488355332:140737488355327:460116423119403612400522197260494676929757026376027934699059870171136 # binomial(2^47+5, k) for 0 <= k <= 5 140737488355333:0:1 140737488355333:1:140737488355333 140737488355333:2:9903520314283675517890592778 140737488355333:3:464598858302760929529917930618081295466506 140737488355333:4:16346619102571107251826427872803196797566167323760394245 140737488355333:5:460116423119419959019624767903147645054878803563221853783082737336321 # binomial(2^47+5, 2^47+5-k) for 0 <= k <= 5 140737488355333:140737488355333:1 140737488355333:140737488355332:140737488355333 140737488355333:140737488355331:9903520314283675517890592778 140737488355333:140737488355330:464598858302760929529917930618081295466506 140737488355333:140737488355329:16346619102571107251826427872803196797566167323760394245 140737488355333:140737488355328:460116423119419959019624767903147645054878803563221853783082737336321 # binomial(2^48-2, k) for 0 <= k <= 5 281474976710654:0:1 281474976710654:1:281474976710654 281474976710654:2:39614081257131465109330198531 281474976710654:3:3716790866421651681345514983488061500817404 281474976710654:4:261545905641098689725125416671203518939969291224923242501 281474976710654:5:14723725539818823229571581421535477548426836484592291418760571451867130 # binomial(2^48-2, 2^48-2-k) for 0 <= k <= 5 281474976710654:281474976710654:1 281474976710654:281474976710653:281474976710654 281474976710654:281474976710652:39614081257131465109330198531 281474976710654:281474976710651:3716790866421651681345514983488061500817404 281474976710654:281474976710650:261545905641098689725125416671203518939969291224923242501 281474976710654:281474976710649:14723725539818823229571581421535477548426836484592291418760571451867130 # binomial(2^48-1, k) for 0 <= k <= 5 281474976710655:0:1 281474976710655:1:281474976710655 281474976710655:2:39614081257131746584306909185 281474976710655:3:3716790866421691295426772114953170831015935 281474976710655:4:261545905641102406515991838322884864454952779286424059905 281474976710655:5:14723725539819084775477222520225202673843507688111231388051796375109631 # binomial(2^48-1, 2^48-1-k) for 0 <= k <= 5 281474976710655:281474976710655:1 281474976710655:281474976710654:281474976710655 281474976710655:281474976710653:39614081257131746584306909185 281474976710655:281474976710652:3716790866421691295426772114953170831015935 281474976710655:281474976710651:261545905641102406515991838322884864454952779286424059905 281474976710655:281474976710650:14723725539819084775477222520225202673843507688111231388051796375109631 # binomial(2^48, k) for 0 <= k <= 5 281474976710656:0:1 281474976710656:1:281474976710656 281474976710656:2:39614081257132028059283619840 281474976710656:3:3716790866421730909508029246699755137925120 281474976710656:4:261545905641106123306858260014180291227067732457255075840 281474976710656:5:14723725539819346321382863622631718665681830572975686340831082799169536 # binomial(2^48, 2^48-k) for 0 <= k <= 5 281474976710656:281474976710656:1 281474976710656:281474976710655:281474976710656 281474976710656:281474976710654:39614081257132028059283619840 281474976710656:281474976710653:3716790866421730909508029246699755137925120 281474976710656:281474976710652:261545905641106123306858260014180291227067732457255075840 281474976710656:281474976710651:14723725539819346321382863622631718665681830572975686340831082799169536 # binomial(2^48+1, k) for 0 <= k <= 5 281474976710657:0:1 281474976710657:1:281474976710657 281474976710657:2:39614081257132309534260330496 281474976710657:3:3716790866421770523589286378727814421544960 281474976710657:4:261545905641109840097724681745089799256314432212393000960 281474976710657:5:14723725539819607867288504728755025523941844753266913408563540054245376 # binomial(2^48+1, 2^48+1-k) for 0 <= k <= 5 281474976710657:281474976710657:1 281474976710657:281474976710656:281474976710657 281474976710657:281474976710655:39614081257132309534260330496 281474976710657:281474976710654:3716790866421770523589286378727814421544960 281474976710657:281474976710653:261545905641109840097724681745089799256314432212393000960 281474976710657:281474976710652:14723725539819607867288504728755025523941844753266913408563540054245376 # binomial(2^48+2, k) for 0 <= k <= 5 281474976710658:0:1 281474976710658:1:281474976710658 281474976710658:2:39614081257132591009237041153 281474976710658:3:3716790866421810137670543511037348681875456 281474976710658:4:261545905641113556888591103515613388542693160026814545920 281474976710658:5:14723725539819869413194145838595123248623589843066169722995752447246336 # binomial(2^48+2, 2^48+2-k) for 0 <= k <= 5 281474976710658:281474976710658:1 281474976710658:281474976710657:281474976710658 281474976710658:281474976710656:39614081257132591009237041153 281474976710658:281474976710655:3716790866421810137670543511037348681875456 281474976710658:281474976710654:261545905641113556888591103515613388542693160026814545920 281474976710658:281474976710653:14723725539819869413194145838595123248623589843066169722995752447246336 # binomial(2^48+3, k) for 0 <= k <= 5 281474976710659:0:1 281474976710659:1:281474976710659 281474976710659:2:39614081257132872484213751811 281474976710659:3:3716790866421849751751800643628357918916609 281474976710659:4:261545905641117273679457525325751059086204197375496421376 281474976710659:5:14723725539820130959099786952152011839727105456454712416155779261792256 # binomial(2^48+3, 2^48+3-k) for 0 <= k <= 5 281474976710659:281474976710659:1 281474976710659:281474976710658:281474976710659 281474976710659:281474976710657:39614081257132872484213751811 281474976710659:281474976710656:3716790866421849751751800643628357918916609 281474976710659:281474976710655:261545905641117273679457525325751059086204197375496421376 281474976710659:281474976710654:14723725539820130959099786952152011839727105456454712416155779261792256 # binomial(2^48+4, k) for 0 <= k <= 5 281474976710660:0:1 281474976710660:1:281474976710660 281474976710660:2:39614081257133153959190462470 281474976710660:3:3716790866421889365833057776500842132668420 281474976710660:4:261545905641120990470323947175502810886847825733415337985 281474976710660:5:14723725539820392505005428069425691297252431207513798620353154758213632 # binomial(2^48+4, 2^48+4-k) for 0 <= k <= 5 281474976710660:281474976710660:1 281474976710660:281474976710659:281474976710660 281474976710660:281474976710658:39614081257133153959190462470 281474976710660:281474976710657:3716790866421889365833057776500842132668420 281474976710660:281474976710656:261545905641120990470323947175502810886847825733415337985 281474976710660:281474976710655:14723725539820392505005428069425691297252431207513798620353154758213632 # binomial(2^48+5, k) for 0 <= k <= 5 281474976710661:0:1 281474976710661:1:281474976710661 281474976710661:2:39614081257133435434167173130 281474976710661:3:3716790866421928979914314909654801323130890 281474976710661:4:261545905641124707261190369064868643944624326575548006405 281474976710661:5:14723725539820654050911069190416161621199606710324685468178888173551617 # binomial(2^48+5, 2^48+5-k) for 0 <= k <= 5 281474976710661:281474976710661:1 281474976710661:281474976710660:281474976710661 281474976710661:281474976710659:39614081257133435434167173130 281474976710661:281474976710658:3716790866421928979914314909654801323130890 281474976710661:281474976710657:261545905641124707261190369064868643944624326575548006405 281474976710661:281474976710656:14723725539820654050911069190416161621199606710324685468178888173551617 # binomial(2^49-2, k) for 0 <= k <= 5 562949953421310:0:1 562949953421310:1:562949953421310 562949953421310:2:158456325028527267812204347395 562949953421310:3:29734326931373688819739205446611703875764220 562949953421310:4:4184734490257683105746266473501317033801755653217064058885 562949953421310:5:471159217274219082284251635946515742500348726107782595596313674559520762 # binomial(2^49-2, 2^49-2-k) for 0 <= k <= 5 562949953421310:562949953421310:1 562949953421310:562949953421309:562949953421310 562949953421310:562949953421308:158456325028527267812204347395 562949953421310:562949953421307:29734326931373688819739205446611703875764220 562949953421310:562949953421306:4184734490257683105746266473501317033801755653217064058885 562949953421310:562949953421305:471159217274219082284251635946515742500348726107782595596313674559520762 # binomial(2^49-1, k) for 0 <= k <= 5 562949953421311:0:1 562949953421311:1:562949953421311 562949953421311:2:158456325028527830762157768705 562949953421311:3:29734326931373847276064233973879516080111615 562949953421311:4:4184734490257712840073197847190136773007202264920939823105 562949953421311:5:471159217274223267018741893629621488766822227424816397351966891623579647 # binomial(2^49-1, 2^49-1-k) for 0 <= k <= 5 562949953421311:562949953421311:1 562949953421311:562949953421310:562949953421311 562949953421311:562949953421309:158456325028527830762157768705 562949953421311:562949953421308:29734326931373847276064233973879516080111615 562949953421311:562949953421307:4184734490257712840073197847190136773007202264920939823105 562949953421311:562949953421306:471159217274223267018741893629621488766822227424816397351966891623579647 # binomial(2^49, k) for 0 <= k <= 5 562949953421312:0:1 562949953421312:1:562949953421312 562949953421312:2:158456325028528393712111190016 562949953421312:3:29734326931374005732389262501710278237880320 562949953421312:4:4184734490257742574400129221037412837241176144437019934720 562949953421312:5:471159217274227451753232151342461561964669417561589404554231812563402752 # binomial(2^49, 2^49-k) for 0 <= k <= 5 562949953421312:562949953421312:1 562949953421312:562949953421311:562949953421312 562949953421312:562949953421310:158456325028528393712111190016 562949953421312:562949953421309:29734326931374005732389262501710278237880320 562949953421312:562949953421308:4184734490257742574400129221037412837241176144437019934720 562949953421312:562949953421307:471159217274227451753232151342461561964669417561589404554231812563402752 # binomial(2^49+1, k) for 0 <= k <= 5 562949953421313:0:1 562949953421313:1:562949953421313 562949953421313:2:158456325028528956662064611328 562949953421313:3:29734326931374164188714291030103990349070336 562949953421313:4:4184734490257772308727060595043145226503677854715257815040 562949953421313:5:471159217274231636487722409085035962093890454974426645730376249583337472 # binomial(2^49+1, 2^49+1-k) for 0 <= k <= 5 562949953421313:562949953421313:1 562949953421313:562949953421312:562949953421313 562949953421313:562949953421311:158456325028528956662064611328 562949953421313:562949953421310:29734326931374164188714291030103990349070336 562949953421313:562949953421309:4184734490257772308727060595043145226503677854715257815040 562949953421313:562949953421308:471159217274231636487722409085035962093890454974426645730376249583337472 # binomial(2^49+2, k) for 0 <= k <= 5 562949953421314:0:1 562949953421314:1:562949953421314 562949953421314:2:158456325028529519612018032641 562949953421314:3:29734326931374322645039319559060652413681664 562949953421314:4:4184734490257802043053991969207333940794707958705606885376 562949953421314:5:471159217274235821222212666857344689154485498119653149408230964841152512 # binomial(2^49+2, 2^49+2-k) for 0 <= k <= 5 562949953421314:562949953421314:1 562949953421314:562949953421313:562949953421314 562949953421314:562949953421312:158456325028529519612018032641 562949953421314:562949953421311:29734326931374322645039319559060652413681664 562949953421314:562949953421310:4184734490257802043053991969207333940794707958705606885376 562949953421314:562949953421309:471159217274235821222212666857344689154485498119653149408230964841152512 # binomial(2^49+3, k) for 0 <= k <= 5 562949953421315:0:1 562949953421315:1:562949953421315 562949953421315:2:158456325028530082561971453955 562949953421315:3:29734326931374481101364348088580264431714305 562949953421315:4:4184734490257831777380923343529978980114267019358020567040 562949953421315:5:471159217274240005956702924659387743146454705453593944116189670448037888 # binomial(2^49+3, 2^49+3-k) for 0 <= k <= 5 562949953421315:562949953421315:1 562949953421315:562949953421314:562949953421315 562949953421315:562949953421313:158456325028530082561971453955 562949953421315:562949953421312:29734326931374481101364348088580264431714305 562949953421315:562949953421311:4184734490257831777380923343529978980114267019358020567040 562949953421315:562949953421310:471159217274240005956702924659387743146454705453593944116189670448037888 # binomial(2^49+4, k) for 0 <= k <= 5 562949953421316:0:1 562949953421316:1:562949953421316 562949953421316:2:158456325028530645511924875270 562949953421316:3:29734326931374639557689376618662826403168260 562949953421316:4:4184734490257861511707854718011080344462355599622452281345 562949953421316:5:471159217274244190691193182491165124069798235432574058383209028468604928 # binomial(2^49+4, 2^49+4-k) for 0 <= k <= 5 562949953421316:562949953421316:1 562949953421316:562949953421315:562949953421316 562949953421316:562949953421314:158456325028530645511924875270 562949953421316:562949953421313:29734326931374639557689376618662826403168260 562949953421316:562949953421312:4184734490257861511707854718011080344462355599622452281345 562949953421316:562949953421311:471159217274244190691193182491165124069798235432574058383209028468604928 # binomial(2^49+5, k) for 0 <= k <= 5 562949953421317:0:1 562949953421317:1:562949953421317 562949953421317:2:158456325028531208461878296586 562949953421317:3:29734326931374798014014405149308338328043530 562949953421317:4:4184734490257891246034786092650638033838974262448855449605 562949953421317:5:471159217274248375425683440352676831924516246512918520738808650920886273 # binomial(2^49+5, 2^49+5-k) for 0 <= k <= 5 562949953421317:562949953421317:1 562949953421317:562949953421316:562949953421317 562949953421317:562949953421315:158456325028531208461878296586 562949953421317:562949953421314:29734326931374798014014405149308338328043530 562949953421317:562949953421313:4184734490257891246034786092650638033838974262448855449605 562949953421317:562949953421312:471159217274248375425683440352676831924516246512918520738808650920886273 # binomial(2^50-2, k) for 0 <= k <= 5 1125899906842622:0:1 1125899906842622:1:1125899906842622 1125899906842622:2:633825300114111885998584496131 1125899906842622:3:237874615450991412033813985902359177271967740 1125899906842622:4:66955751844123762253094342041367957463951450623690156277765 1125899906842622:5:15077094952775278456103428843137175944457664445627246349578695098509557754 # binomial(2^50-2, 2^50-2-k) for 0 <= k <= 5 1125899906842622:1125899906842622:1 1125899906842622:1125899906842621:1125899906842622 1125899906842622:1125899906842620:633825300114111885998584496131 1125899906842622:1125899906842619:237874615450991412033813985902359177271967740 1125899906842622:1125899906842618:66955751844123762253094342041367957463951450623690156277765 1125899906842622:1125899906842617:15077094952775278456103428843137175944457664445627246349578695098509557754 # binomial(2^50-1, k) for 0 <= k <= 5 1125899906842623:0:1 1125899906842623:1:1125899906842623 1125899906842623:2:633825300114113011898491338753 1125899906842623:3:237874615450992045859114100014245175856463871 1125899906842623:4:66955751844124000127709793032779991277937352982867428245505 1125899906842623:5:15077094952775345411855272966899429038799705813584710301029318788665835519 # binomial(2^50-1, 2^50-1-k) for 0 <= k <= 5 1125899906842623:1125899906842623:1 1125899906842623:1125899906842622:1125899906842623 1125899906842623:1125899906842621:633825300114113011898491338753 1125899906842623:1125899906842620:237874615450992045859114100014245175856463871 1125899906842623:1125899906842619:66955751844124000127709793032779991277937352982867428245505 1125899906842623:1125899906842618:15077094952775345411855272966899429038799705813584710301029318788665835519 # binomial(2^50, k) for 0 <= k <= 5 1125899906842624:0:1 1125899906842624:1:1125899906842624 1125899906842624:2:633825300114114137798398181376 1125899906842624:3:237874615450992679684414214127257074347802624 1125899906842624:4:66955751844124238002325244024825850392037367228043284709376 1125899906842624:5:15077094952775412367607117090899556748592738593575988238382301656094081024 # binomial(2^50, 2^50-k) for 0 <= k <= 5 1125899906842624:1125899906842624:1 1125899906842624:1125899906842623:1125899906842624 1125899906842624:1125899906842622:633825300114114137798398181376 1125899906842624:1125899906842621:237874615450992679684414214127257074347802624 1125899906842624:1125899906842620:66955751844124238002325244024825850392037367228043284709376 1125899906842624:1125899906842619:15077094952775412367607117090899556748592738593575988238382301656094081024 # binomial(2^50+1, k) for 0 <= k <= 5 1125899906842625:0:1 1125899906842625:1:1125899906842625 1125899906842625:2:633825300114115263698305024000 1125899906842625:3:237874615450993313509714328241394872745984000 1125899906842625:4:66955751844124475876940695017505534806251494485117632512000 1125899906842625:5:15077094952775479323358961215137559073836763419426380275749529699378790400 # binomial(2^50+1, 2^50+1-k) for 0 <= k <= 5 1125899906842625:1125899906842625:1 1125899906842625:1125899906842624:1125899906842625 1125899906842625:1125899906842623:633825300114115263698305024000 1125899906842625:1125899906842622:237874615450993313509714328241394872745984000 1125899906842625:1125899906842621:66955751844124475876940695017505534806251494485117632512000 1125899906842625:1125899906842620:15077094952775479323358961215137559073836763419426380275749529699378790400 # binomial(2^50+2, k) for 0 <= k <= 5 1125899906842626:0:1 1125899906842626:1:1125899906842626 1125899906842626:2:633825300114116389598211866625 1125899906842626:3:237874615450993947335014442356658571051008000 1125899906842626:4:66955751844124713751556146010819044520579735879990378496000 1125899906842626:5:15077094952775546279110805339613436014531780924961186527244014817011302400 # binomial(2^50+2, 2^50+2-k) for 0 <= k <= 5 1125899906842626:1125899906842626:1 1125899906842626:1125899906842625:1125899906842626 1125899906842626:1125899906842624:633825300114116389598211866625 1125899906842626:1125899906842623:237874615450993947335014442356658571051008000 1125899906842626:1125899906842622:66955751844124713751556146010819044520579735879990378496000 1125899906842626:1125899906842621:15077094952775546279110805339613436014531780924961186527244014817011302400 # binomial(2^50+3, k) for 0 <= k <= 5 1125899906842627:0:1 1125899906842627:1:1125899906842627 1125899906842627:2:633825300114117515498118709251 1125899906842627:3:237874615450994581160314556473048169262874625 1125899906842627:4:66955751844124951626171597004766379535022092538561429504000 1125899906842627:5:15077094952775613234862649464327187570677791744005707106979894807389798400 # binomial(2^50+3, 2^50+3-k) for 0 <= k <= 5 1125899906842627:1125899906842627:1 1125899906842627:1125899906842626:1125899906842627 1125899906842627:1125899906842625:633825300114117515498118709251 1125899906842627:1125899906842624:237874615450994581160314556473048169262874625 1125899906842627:1125899906842623:66955751844124951626171597004766379535022092538561429504000 1125899906842627:1125899906842622:15077094952775613234862649464327187570677791744005707106979894807389798400 # binomial(2^50+4, k) for 0 <= k <= 5 1125899906842628:0:1 1125899906842628:1:1125899906842628 1125899906842628:2:633825300114118641398025551878 1125899906842628:3:237874615450995214985614670590563667381583876 1125899906842628:4:66955751844125189500787047999347539849578565586730692378625 1125899906842628:5:15077094952775680190614493589278813742274796510385242129072433368819302400 # binomial(2^50+4, 2^50+4-k) for 0 <= k <= 5 1125899906842628:1125899906842628:1 1125899906842628:1125899906842627:1125899906842628 1125899906842628:1125899906842626:633825300114118641398025551878 1125899906842628:1125899906842625:237874615450995214985614670590563667381583876 1125899906842628:1125899906842624:66955751844125189500787047999347539849578565586730692378625 1125899906842628:1125899906842623:15077094952775680190614493589278813742274796510385242129072433368819302400 # binomial(2^50+5, k) for 0 <= k <= 5 1125899906842629:0:1 1125899906842629:1:1125899906842629 1125899906842629:2:633825300114119767297932394506 1125899906842629:3:237874615450995848810914784709205065407135754 1125899906842629:4:66955751844125427375402498994562525464249156150398073962501 1125899906842629:5:15077094952775747146366337714468314529322795857925091707638020099511681025 # binomial(2^50+5, 2^50+5-k) for 0 <= k <= 5 1125899906842629:1125899906842629:1 1125899906842629:1125899906842628:1125899906842629 1125899906842629:1125899906842627:633825300114119767297932394506 1125899906842629:1125899906842626:237874615450995848810914784709205065407135754 1125899906842629:1125899906842625:66955751844125427375402498994562525464249156150398073962501 1125899906842629:1125899906842624:15077094952775747146366337714468314529322795857925091707638020099511681025 # binomial(2^51-2, k) for 0 <= k <= 5 2251799813685246:0:1 2251799813685246:1:2251799813685246 2251799813685246:2:2535301200456453173493872197635 2251799813685246:3:1902996923607938902174113256566009000817065980 2251799813685246:4:1071292029505986856538742100429663995116311931679887620833285 2251799813685246:5:482467038488813195763427746910213063647673587269586308228319124050149375994 # binomial(2^51-2, 2^51-2-k) for 0 <= k <= 5 2251799813685246:2251799813685246:1 2251799813685246:2251799813685245:2251799813685246 2251799813685246:2251799813685244:2535301200456453173493872197635 2251799813685246:2251799813685243:1902996923607938902174113256566009000817065980 2251799813685246:2251799813685242:1071292029505986856538742100429663995116311931679887620833285 2251799813685246:2251799813685241:482467038488813195763427746910213063647673587269586308228319124050149375994 # binomial(2^51-1, k) for 0 <= k <= 5 2251799813685247:0:1 2251799813685247:1:2251799813685247 2251799813685247:2:2535301200456455425293685882881 2251799813685247:3:1902996923607941437475313713019182494689263615 2251799813685247:4:1071292029505988759535665708368566169229568497688888437899265 2251799813685247:5:482467038488814267055457252897069602389774016933581424540250803937770209279 # binomial(2^51-1, 2^51-1-k) for 0 <= k <= 5 2251799813685247:2251799813685247:1 2251799813685247:2251799813685246:2251799813685247 2251799813685247:2251799813685245:2535301200456455425293685882881 2251799813685247:2251799813685244:1902996923607941437475313713019182494689263615 2251799813685247:2251799813685243:1071292029505988759535665708368566169229568497688888437899265 2251799813685247:2251799813685242:482467038488814267055457252897069602389774016933581424540250803937770209279 # binomial(2^51, k) for 0 <= k <= 5 2251799813685248:0:1 2251799813685248:1:2251799813685248 2251799813685248:2:2535301200456457677093499568128 2251799813685248:3:1902996923607943972776514169474607788375146496 2251799813685248:4:1071292029505990662532589316310003644543281516871383127162880 2251799813685248:5:482467038488815338347486758885829138055482385499750654108748492826208108544 # binomial(2^51, 2^51-k) for 0 <= k <= 5 2251799813685248:2251799813685248:1 2251799813685248:2251799813685247:2251799813685248 2251799813685248:2251799813685246:2535301200456457677093499568128 2251799813685248:2251799813685245:1902996923607943972776514169474607788375146496 2251799813685248:2251799813685244:1071292029505990662532589316310003644543281516871383127162880 2251799813685248:2251799813685243:482467038488815338347486758885829138055482385499750654108748492826208108544 # binomial(2^51+1, k) for 0 <= k <= 5 2251799813685249:0:1 2251799813685249:1:2251799813685249 2251799813685249:2:2535301200456459928893313253376 2251799813685249:3:1902996923607946508077714625932284881874714624 2251799813685249:4:1071292029505992565529512924253976421057450991479171502309376 2251799813685249:5:482467038488816409639516264876491670644798695503395197390265364209335271424 # binomial(2^51+1, 2^51+1-k) for 0 <= k <= 5 2251799813685249:2251799813685249:1 2251799813685249:2251799813685248:2251799813685249 2251799813685249:2251799813685247:2535301200456459928893313253376 2251799813685249:2251799813685246:1902996923607946508077714625932284881874714624 2251799813685249:2251799813685245:1071292029505992565529512924253976421057450991479171502309376 2251799813685249:2251799813685244:482467038488816409639516264876491670644798695503395197390265364209335271424 # binomial(2^51+2, k) for 0 <= k <= 5 2251799813685250:0:1 2251799813685250:1:2251799813685250 2251799813685250:2:2535301200456462180693126938625 2251799813685250:3:1902996923607949043378915082392213775187968000 2251799813685250:4:1071292029505994468526436532200484498772076923764053377024000 2251799813685250:5:482467038488817480931545770869057200157722949479816254841256843380837580800 # binomial(2^51+2, 2^51+2-k) for 0 <= k <= 5 2251799813685250:2251799813685250:1 2251799813685250:2251799813685249:2251799813685250 2251799813685250:2251799813685248:2535301200456462180693126938625 2251799813685250:2251799813685247:1902996923607949043378915082392213775187968000 2251799813685250:2251799813685246:1071292029505994468526436532200484498772076923764053377024000 2251799813685250:2251799813685245:482467038488817480931545770869057200157722949479816254841256843380837580800 # binomial(2^51+3, k) for 0 <= k <= 5 2251799813685251:0:1 2251799813685251:1:2251799813685251 2251799813685251:2:2535301200456464432492940623875 2251799813685251:3:1902996923607951578680115538854394468314906625 2251799813685251:4:1071292029505996371523360140149527877687159315977828564992000 2251799813685251:5:482467038488818552223575276863525726594255149964315026918180607434214604800 # binomial(2^51+3, 2^51+3-k) for 0 <= k <= 5 2251799813685251:2251799813685251:1 2251799813685251:2251799813685250:2251799813685251 2251799813685251:2251799813685249:2535301200456464432492940623875 2251799813685251:2251799813685248:1902996923607951578680115538854394468314906625 2251799813685251:2251799813685247:1071292029505996371523360140149527877687159315977828564992000 2251799813685251:2251799813685246:482467038488818552223575276863525726594255149964315026918180607434214604800 # binomial(2^51+4, k) for 0 <= k <= 5 2251799813685252:0:1 2251799813685252:1:2251799813685252 2251799813685252:2:2535301200456466684292754309126 2251799813685252:3:1902996923607954113981315995318826961255530500 2251799813685252:4:1071292029505998274520283748101106557802698170372296879898625 2251799813685252:5:482467038488819623515604782859897249954395299492192714077496585262779596800 # binomial(2^51+4, 2^51+4-k) for 0 <= k <= 5 2251799813685252:2251799813685252:1 2251799813685252:2251799813685251:2251799813685252 2251799813685252:2251799813685250:2535301200456466684292754309126 2251799813685252:2251799813685249:1902996923607954113981315995318826961255530500 2251799813685252:2251799813685248:1071292029505998274520283748101106557802698170372296879898625 2251799813685252:2251799813685247:482467038488819623515604782859897249954395299492192714077496585262779596800 # binomial(2^51+5, k) for 0 <= k <= 5 2251799813685253:0:1 2251799813685253:1:2251799813685253 2251799813685253:2:2535301200456468936092567994378 2251799813685253:3:1902996923607956649282516451785511254009839626 2251799813685253:4:1071292029506000177517207356055220539118693489199258135429125 2251799813685253:5:482467038488820694807634288858171770238143400598750516775666957559659495425 # binomial(2^51+5, 2^51+5-k) for 0 <= k <= 5 2251799813685253:2251799813685253:1 2251799813685253:2251799813685252:2251799813685253 2251799813685253:2251799813685251:2535301200456468936092567994378 2251799813685253:2251799813685250:1902996923607956649282516451785511254009839626 2251799813685253:2251799813685249:1071292029506000177517207356055220539118693489199258135429125 2251799813685253:2251799813685248:482467038488820694807634288858171770238143400598750516775666957559659495425 # binomial(2^52-2, k) for 0 <= k <= 5 4503599627370494:0:1 4503599627370494:1:4503599627370494 4503599627370494:2:10141204801825823952974557216771 4503599627370494:3:15223975388863541641007311529975161132257640444 4503599627370494:4:17140672472095842988533734629196843712638108648637444963434501 4503599627370494:5:15438945231642090827119576284357950399317083984616872813758066865406795055098 # binomial(2^52-2, 2^52-2-k) for 0 <= k <= 5 4503599627370494:4503599627370494:1 4503599627370494:4503599627370493:4503599627370494 4503599627370494:4503599627370492:10141204801825823952974557216771 4503599627370494:4503599627370491:15223975388863541641007311529975161132257640444 4503599627370494:4503599627370490:17140672472095842988533734629196843712638108648637444963434501 4503599627370494:4503599627370489:15438945231642090827119576284357950399317083984616872813758066865406795055098 # binomial(2^52-1, k) for 0 <= k <= 5 4503599627370495:0:1 4503599627370495:1:4503599627370495 4503599627370495:2:10141204801825828456574184587265 4503599627370495:3:15223975388863551782212113355799114106814857215 4503599627370495:4:17140672472095858212509123492738484719949638623798577221074945 4503599627370495:5:15438945231642107967792048380200938933051713181460585451866715502851758489599 # binomial(2^52-1, 2^52-1-k) for 0 <= k <= 5 4503599627370495:4503599627370495:1 4503599627370495:4503599627370494:4503599627370495 4503599627370495:4503599627370493:10141204801825828456574184587265 4503599627370495:4503599627370492:15223975388863551782212113355799114106814857215 4503599627370495:4503599627370491:17140672472095858212509123492738484719949638623798577221074945 4503599627370495:4503599627370490:15438945231642107967792048380200938933051713181460585451866715502851758489599 # binomial(2^52, k) for 0 <= k <= 5 4503599627370496:0:1 4503599627370496:1:4503599627370496 4503599627370496:2:10141204801825832960173811957760 4503599627370496:3:15223975388863561923416915181627570680999444480 4503599627370496:4:17140672472095873436484512356290266932062994422912684035932160 4503599627370496:5:15438945231642125108464520476059151442175205919945305401505339301428979564544 # binomial(2^52, 2^52-k) for 0 <= k <= 5 4503599627370496:4503599627370496:1 4503599627370496:4503599627370495:4503599627370496 4503599627370496:4503599627370494:10141204801825832960173811957760 4503599627370496:4503599627370493:15223975388863561923416915181627570680999444480 4503599627370496:4503599627370492:17140672472095873436484512356290266932062994422912684035932160 4503599627370496:4503599627370491:15438945231642125108464520476059151442175205919945305401505339301428979564544 # binomial(2^52+1, k) for 0 <= k <= 5 4503599627370497:0:1 4503599627370497:1:4503599627370497 4503599627370497:2:10141204801825837463773439328256 4503599627370497:3:15223975388863572064621717007460530854811402240 4503599627370497:4:17140672472095888660459901219852190348978176050483365035376640 4503599627370497:5:15438945231642142249136992571932587926687562210212237464499762214113015496704 # binomial(2^52+1, 2^52+1-k) for 0 <= k <= 5 4503599627370497:4503599627370497:1 4503599627370497:4503599627370496:4503599627370497 4503599627370497:4503599627370495:10141204801825837463773439328256 4503599627370497:4503599627370494:15223975388863572064621717007460530854811402240 4503599627370497:4503599627370493:17140672472095888660459901219852190348978176050483365035376640 4503599627370497:4503599627370492:15438945231642142249136992571932587926687562210212237464499762214113015496704 # binomial(2^52+2, k) for 0 <= k <= 5 4503599627370498:0:1 4503599627370498:1:4503599627370498 4503599627370498:2:10141204801825841967373066698753 4503599627370498:3:15223975388863582205826518833297994628250730496 4503599627370498:4:17140672472095903884435290083424254970695183511014219846778880 4503599627370498:5:15438945231642159389809464667821248386588782062402586442675812697478050873344 # binomial(2^52+2, 2^52+2-k) for 0 <= k <= 5 4503599627370498:4503599627370498:1 4503599627370498:4503599627370497:4503599627370498 4503599627370498:4503599627370496:10141204801825841967373066698753 4503599627370498:4503599627370495:15223975388863582205826518833297994628250730496 4503599627370498:4503599627370494:17140672472095903884435290083424254970695183511014219846778880 4503599627370498:4503599627370493:15438945231642159389809464667821248386588782062402586442675812697478050873344 # binomial(2^52+3, k) for 0 <= k <= 5 4503599627370499:0:1 4503599627370499:1:4503599627370499 4503599627370499:2:10141204801825846470972694069251 4503599627370499:3:15223975388863592347031320659139962001317429249 4503599627370499:4:17140672472095919108410678947006460797214016809008848097509376 4503599627370499:5:15438945231642176530481936763725132821878865486657557137859323711697897652224 # binomial(2^52+3, 2^52+3-k) for 0 <= k <= 5 4503599627370499:4503599627370499:1 4503599627370499:4503599627370498:4503599627370499 4503599627370499:4503599627370497:10141204801825846470972694069251 4503599627370499:4503599627370496:15223975388863592347031320659139962001317429249 4503599627370499:4503599627370495:17140672472095919108410678947006460797214016809008848097509376 4503599627370499:4503599627370494:15438945231642176530481936763725132821878865486657557137859323711697897652224 # binomial(2^52+4, k) for 0 <= k <= 5 4503599627370500:0:1 4503599627370500:1:4503599627370500 4503599627370500:2:10141204801825850974572321439750 4503599627370500:3:15223975388863602488236122484986432974011498500 4503599627370500:4:17140672472095934332386067810598807828534675948970849414938625 4503599627370500:5:15438945231642193671154408859644241232557812493118354351876132720545995161600 # binomial(2^52+4, 2^52+4-k) for 0 <= k <= 5 4503599627370500:4503599627370500:1 4503599627370500:4503599627370499:4503599627370500 4503599627370500:4503599627370498:10141204801825850974572321439750 4503599627370500:4503599627370497:15223975388863602488236122484986432974011498500 4503599627370500:4503599627370496:17140672472095934332386067810598807828534675948970849414938625 4503599627370500:4503599627370495:15438945231642193671154408859644241232557812493118354351876132720545995161600 # binomial(2^52+5, k) for 0 <= k <= 5 4503599627370501:0:1 4503599627370501:1:4503599627370501 4503599627370501:2:10141204801825855478171948810250 4503599627370501:3:15223975388863612629440924310837407546332938250 4503599627370501:4:17140672472095949556361456674201296064657160935403823426437125 4503599627370501:5:15438945231642210811826880955578573618625623091926182886552081691395410100225 # binomial(2^52+5, 2^52+5-k) for 0 <= k <= 5 4503599627370501:4503599627370501:1 4503599627370501:4503599627370500:4503599627370501 4503599627370501:4503599627370499:10141204801825855478171948810250 4503599627370501:4503599627370498:15223975388863612629440924310837407546332938250 4503599627370501:4503599627370497:17140672472095949556361456674201296064657160935403823426437125 4503599627370501:4503599627370496:15438945231642210811826880955578573618625623091926182886552081691395410100225 # binomial(2^53-2, k) for 0 <= k <= 5 9007199254740990:0:1 9007199254740990:1:9007199254740990 9007199254740990:2:40564819207303318329896365719555 9007199254740990:3:121791803110908454822516114149706739151257206780 9007199254740990:4:274250759553533914087850642246447283269356313398603091500072965 9007199254740990:5:494046247412548003470864655233984190001939770748943045528305652330368235208698 # binomial(2^53-2, 2^53-2-k) for 0 <= k <= 5 9007199254740990:9007199254740990:1 9007199254740990:9007199254740989:9007199254740990 9007199254740990:9007199254740988:40564819207303318329896365719555 9007199254740990:9007199254740987:121791803110908454822516114149706739151257206780 9007199254740990:9007199254740986:274250759553533914087850642246447283269356313398603091500072965 9007199254740990:9007199254740985:494046247412548003470864655233984190001939770748943045528305652330368235208698 # binomial(2^53-1, k) for 0 <= k <= 5 9007199254740991:0:1 9007199254740991:1:9007199254740991 9007199254740991:2:40564819207303327337095620460545 9007199254740991:3:121791803110908495387335321453025069047622926335 9007199254740991:4:274250759553534035879653753154902105785470463105342242757279745 9007199254740991:5:494046247412548277721624208767898277852582017196226314884619050933459735281663 # binomial(2^53-1, 2^53-1-k) for 0 <= k <= 5 9007199254740991:9007199254740991:1 9007199254740991:9007199254740990:9007199254740991 9007199254740991:9007199254740989:40564819207303327337095620460545 9007199254740991:9007199254740988:121791803110908495387335321453025069047622926335 9007199254740991:9007199254740987:274250759553534035879653753154902105785470463105342242757279745 9007199254740991:9007199254740986:494046247412548277721624208767898277852582017196226314884619050933459735281663 # binomial(2^53, k) for 0 <= k <= 5 9007199254740992:0:1 9007199254740992:1:9007199254740992 9007199254740992:2:40564819207303336344294875201536 9007199254740992:3:121791803110908535952154528756352406143243386880 9007199254740992:4:274250759553534157671456864063397493120791916130411290380206080 9007199254740992:5:494046247412548551972383762301934157506335172098332100355082156275702492561408 # binomial(2^53, 2^53-k) for 0 <= k <= 5 9007199254740992:9007199254740992:1 9007199254740992:9007199254740991:9007199254740992 9007199254740992:9007199254740990:40564819207303336344294875201536 9007199254740992:9007199254740989:121791803110908535952154528756352406143243386880 9007199254740992:9007199254740988:274250759553534157671456864063397493120791916130411290380206080 9007199254740992:9007199254740987:494046247412548551972383762301934157506335172098332100355082156275702492561408 # binomial(2^53+1, k) for 0 <= k <= 5 9007199254740993:0:1 9007199254740993:1:9007199254740993 9007199254740993:2:40564819207303345351494129942528 9007199254740993:3:121791803110908576516973736059688750438118588416 9007199254740993:4:274250759553534279463259974971933445275320672482817433623592960 9007199254740993:5:494046247412548826223143315836091828963199235495825221146998286686992872767488 # binomial(2^53+1, 2^53+1-k) for 0 <= k <= 5 9007199254740993:9007199254740993:1 9007199254740993:9007199254740992:9007199254740993 9007199254740993:9007199254740991:40564819207303345351494129942528 9007199254740993:9007199254740990:121791803110908576516973736059688750438118588416 9007199254740993:9007199254740989:274250759553534279463259974971933445275320672482817433623592960 9007199254740993:9007199254740988:494046247412548826223143315836091828963199235495825221146998286686992872767488 # binomial(2^53+2, k) for 0 <= k <= 5 9007199254740994:0:1 9007199254740994:1:9007199254740994 9007199254740994:2:40564819207303354358693384683521 9007199254740994:3:121791803110908617081792943363034101932248530944 9007199254740994:4:274250759553534401255063085880509962249056732171567871742181376 9007199254740994:5:494046247412549100473902869370371292223174207429270496467670769504426496360448 # binomial(2^53+2, 2^53+2-k) for 0 <= k <= 5 9007199254740994:9007199254740994:1 9007199254740994:9007199254740993:9007199254740994 9007199254740994:9007199254740992:40564819207303354358693384683521 9007199254740994:9007199254740991:121791803110908617081792943363034101932248530944 9007199254740994:9007199254740990:274250759553534401255063085880509962249056732171567871742181376 9007199254740994:9007199254740989:494046247412549100473902869370371292223174207429270496467670769504426496360448 # binomial(2^53+3, k) for 0 <= k <= 5 9007199254740995:0:1 9007199254740995:1:9007199254740995 9007199254740995:2:40564819207303363365892639424515 9007199254740995:3:121791803110908657646612150666388460625633214465 9007199254740995:4:274250759553534523046866196789127044042000095205669803990712320 9007199254740995:5:494046247412549374724662422904772547286260087939232745524402941072298238541824 # binomial(2^53+3, 2^53+3-k) for 0 <= k <= 5 9007199254740995:9007199254740995:1 9007199254740995:9007199254740994:9007199254740995 9007199254740995:9007199254740993:40564819207303363365892639424515 9007199254740995:9007199254740992:121791803110908657646612150666388460625633214465 9007199254740995:9007199254740991:274250759553534523046866196789127044042000095205669803990712320 9007199254740995:9007199254740990:494046247412549374724662422904772547286260087939232745524402941072298238541824 # binomial(2^53+4, k) for 0 <= k <= 5 9007199254740996:0:1 9007199254740996:1:9007199254740996 9007199254740996:2:40564819207303372373091894165510 9007199254740996:3:121791803110908698211431357969751826518272638980 9007199254740996:4:274250759553534644838669307697784690654150761594130429623926785 9007199254740996:5:494046247412549648975421976439295594152456877066276787524498146742102229254144 # binomial(2^53+4, 2^53+4-k) for 0 <= k <= 5 9007199254740996:9007199254740996:1 9007199254740996:9007199254740995:9007199254740996 9007199254740996:9007199254740994:40564819207303372373091894165510 9007199254740996:9007199254740993:121791803110908698211431357969751826518272638980 9007199254740996:9007199254740992:274250759553534644838669307697784690654150761594130429623926785 9007199254740996:9007199254740991:494046247412549648975421976439295594152456877066276787524498146742102229254144 # binomial(2^53+5, k) for 0 <= k <= 5 9007199254740997:0:1 9007199254740997:1:9007199254740997 9007199254740997:2:40564819207303381380291148906506 9007199254740997:3:121791803110908738776250565273124199610166804490 9007199254740997:4:274250759553534766630472418606482902085508731345956947896565765 9007199254740997:5:494046247412549923226181529973940432821764574850967441675259740872531853180929 # binomial(2^53+5, 2^53+5-k) for 0 <= k <= 5 9007199254740997:9007199254740997:1 9007199254740997:9007199254740996:9007199254740997 9007199254740997:9007199254740995:40564819207303381380291148906506 9007199254740997:9007199254740994:121791803110908738776250565273124199610166804490 9007199254740997:9007199254740993:274250759553534766630472418606482902085508731345956947896565765 9007199254740997:9007199254740992:494046247412549923226181529973940432821764574850967441675259740872531853180929 # binomial(2^54-2, k) for 0 <= k <= 5 18014398509481982:0:1 18014398509481982:1:18014398509481982 18014398509481982:2:162259276829213318355581736583171 18014398509481982:3:974334424887268125357959400837509900763465252860 18014398509481982:4:4388012152856546035576097381380418905410592149313641551212052485 18014398509481982:5:15809479917201553663116280393662623791021390958118951223291347151236765499523066 # binomial(2^54-2, 2^54-2-k) for 0 <= k <= 5 18014398509481982:18014398509481982:1 18014398509481982:18014398509481981:18014398509481982 18014398509481982:18014398509481980:162259276829213318355581736583171 18014398509481982:18014398509481979:974334424887268125357959400837509900763465252860 18014398509481982:18014398509481978:4388012152856546035576097381380418905410592149313641551212052485 18014398509481982:18014398509481977:15809479917201553663116280393662623791021390958118951223291347151236765499523066 # binomial(2^54-1, k) for 0 <= k <= 5 18014398509481983:0:1 18014398509481983:1:18014398509481983 18014398509481983:2:162259276829213336369980246065153 18014398509481983:3:974334424887268287617236230050828256345201836031 18014398509481983:4:4388012152856547009910522268648544263369992986823542314677305345 18014398509481983:5:15809479917201558051128433250208659367118772338537856633883496464878316711575551 # binomial(2^54-1, 2^54-1-k) for 0 <= k <= 5 18014398509481983:18014398509481983:1 18014398509481983:18014398509481982:18014398509481983 18014398509481983:18014398509481981:162259276829213336369980246065153 18014398509481983:18014398509481980:974334424887268287617236230050828256345201836031 18014398509481983:18014398509481979:4388012152856547009910522268648544263369992986823542314677305345 18014398509481983:18014398509481978:15809479917201558051128433250208659367118772338537856633883496464878316711575551 # binomial(2^54, k) for 0 <= k <= 5 18014398509481984:0:1 18014398509481984:1:18014398509481984 18014398509481984:2:162259276829213354384378755547136 18014398509481984:3:974334424887268449876513059264164626325447901184 18014398509481984:4:4388012152856547984244947155916831880606223037651798659879141376 18014398509481984:5:15809479917201562439140586106755669277641040987082120003876483288420631388880896 # binomial(2^54, 2^54-k) for 0 <= k <= 5 18014398509481984:18014398509481984:1 18014398509481984:18014398509481983:18014398509481984 18014398509481984:18014398509481982:162259276829213354384378755547136 18014398509481984:18014398509481981:974334424887268449876513059264164626325447901184 18014398509481984:18014398509481980:4388012152856547984244947155916831880606223037651798659879141376 18014398509481984:18014398509481979:15809479917201562439140586106755669277641040987082120003876483288420631388880896 # binomial(2^54+1, k) for 0 <= k <= 5 18014398509481985:0:1 18014398509481985:1:18014398509481985 18014398509481985:2:162259276829213372398777265029120 18014398509481985:3:974334424887268612135789888477519010704203448320 18014398509481985:4:4388012152856548958579372043185281757119282301816424985327042560 18014398509481985:5:15809479917201566827152738963303653522588196903914000610099520940219291268022272 # binomial(2^54+1, 2^54+1-k) for 0 <= k <= 5 18014398509481985:18014398509481985:1 18014398509481985:18014398509481984:18014398509481985 18014398509481985:18014398509481983:162259276829213372398777265029120 18014398509481985:18014398509481982:974334424887268612135789888477519010704203448320 18014398509481985:18014398509481981:4388012152856548958579372043185281757119282301816424985327042560 18014398509481985:18014398509481980:15809479917201566827152738963303653522588196903914000610099520940219291268022272 # binomial(2^54+2, k) for 0 <= k <= 5 18014398509481986:0:1 18014398509481986:1:18014398509481986 18014398509481986:2:162259276829213390413175774511105 18014398509481986:3:974334424887268774395066717690891409481468477440 18014398509481986:4:4388012152856549932913796930453893892909170779335435689530490880 18014398509481986:5:15809479917201571215164891819852612101960240089195757729381822756644276595064832 # binomial(2^54+2, 2^54+2-k) for 0 <= k <= 5 18014398509481986:18014398509481986:1 18014398509481986:18014398509481985:18014398509481986 18014398509481986:18014398509481984:162259276829213390413175774511105 18014398509481986:18014398509481983:974334424887268774395066717690891409481468477440 18014398509481986:18014398509481982:4388012152856549932913796930453893892909170779335435689530490880 18014398509481986:18014398509481981:15809479917201571215164891819852612101960240089195757729381822756644276595064832 # binomial(2^54+3, k) for 0 <= k <= 5 18014398509481987:0:1 18014398509481987:1:18014398509481987 18014398509481987:2:162259276829213408427574283993091 18014398509481987:3:974334424887268936654343546904281822657242988545 18014398509481987:4:4388012152856550907248221817722668287975888470226845170998968320 18014398509481987:5:15809479917201575603177044676402545015757170543089650638552602092079966125555712 # binomial(2^54+3, 2^54+3-k) for 0 <= k <= 5 18014398509481987:18014398509481987:1 18014398509481987:18014398509481986:18014398509481987 18014398509481987:18014398509481985:162259276829213408427574283993091 18014398509481987:18014398509481984:974334424887268936654343546904281822657242988545 18014398509481987:18014398509481983:4388012152856550907248221817722668287975888470226845170998968320 18014398509481987:18014398509481982:15809479917201575603177044676402545015757170543089650638552602092079966125555712 # binomial(2^54+4, k) for 0 <= k <= 5 18014398509481988:0:1 18014398509481988:1:18014398509481988 18014398509481988:2:162259276829213426441972793475078 18014398509481988:3:974334424887269098913620376117690250231526981636 18014398509481988:4:4388012152856551881582646704991604942319435374508667828241956865 18014398509481988:5:15809479917201579991189197532953452263978988265757938614441072318925137124524032 # binomial(2^54+4, 2^54+4-k) for 0 <= k <= 5 18014398509481988:18014398509481988:1 18014398509481988:18014398509481987:18014398509481988 18014398509481988:18014398509481986:162259276829213426441972793475078 18014398509481988:18014398509481985:974334424887269098913620376117690250231526981636 18014398509481988:18014398509481984:4388012152856551881582646704991604942319435374508667828241956865 18014398509481988:18014398509481983:15809479917201579991189197532953452263978988265757938614441072318925137124524032 # binomial(2^54+5, k) for 0 <= k <= 5 18014398509481989:0:1 18014398509481989:1:18014398509481989 18014398509481989:2:162259276829213444456371302957066 18014398509481989:3:974334424887269261172897205331116692204320456714 18014398509481989:4:4388012152856552855917071592260703855939811492198918059768938501 18014398509481989:5:15809479917201584379201350389505333846625693257362880933876446827592965366480897 # binomial(2^54+5, 2^54+5-k) for 0 <= k <= 5 18014398509481989:18014398509481989:1 18014398509481989:18014398509481988:18014398509481989 18014398509481989:18014398509481987:162259276829213444456371302957066 18014398509481989:18014398509481986:974334424887269261172897205331116692204320456714 18014398509481989:18014398509481985:4388012152856552855917071592260703855939811492198918059768938501 18014398509481989:18014398509481984:15809479917201584379201350389505333846625693257362880933876446827592965366480897 # binomial(2^55-2, k) for 0 <= k <= 5 36028797018963966:0:1 36028797018963966:1:36028797018963966 36028797018963966:2:649037107316853363494319493742595 36028797018963966:3:7794675399098146949974997157259971530682598948860 36028797018963966:4:70208194445704763850581454945596321880031477612452123157504983045 36028797018963966:5:505903357350449998052498755416187262891062635196353543541427770198998275655204858 # binomial(2^55-2, 2^55-2-k) for 0 <= k <= 5 36028797018963966:36028797018963966:1 36028797018963966:36028797018963965:36028797018963966 36028797018963966:36028797018963964:649037107316853363494319493742595 36028797018963966:36028797018963963:7794675399098146949974997157259971530682598948860 36028797018963966:36028797018963962:70208194445704763850581454945596321880031477612452123157504983045 36028797018963966:36028797018963961:505903357350449998052498755416187262891062635196353543541427770198998275655204858 # binomial(2^55-1, k) for 0 <= k <= 5 36028797018963967:0:1 36028797018963967:1:36028797018963967 36028797018963967:2:649037107316853399523116512706561 36028797018963967:3:7794675399098147599012104474113335025002092691455 36028797018963967:4:70208194445704771645256854043743271855028634872423653840103931905 36028797018963967:5:505903357350450068260693201120951113472517580792675423572905382651121433160187903 # binomial(2^55-1, 2^55-1-k) for 0 <= k <= 5 36028797018963967:36028797018963967:1 36028797018963967:36028797018963966:36028797018963967 36028797018963967:36028797018963965:649037107316853399523116512706561 36028797018963967:36028797018963964:7794675399098147599012104474113335025002092691455 36028797018963967:36028797018963963:70208194445704771645256854043743271855028634872423653840103931905 36028797018963967:36028797018963962:505903357350450068260693201120951113472517580792675423572905382651121433160187903 # binomial(2^55, k) for 0 <= k <= 5 36028797018963968:0:1 36028797018963968:1:36028797018963968 36028797018963968:2:649037107316853435551913531670528 36028797018963968:3:7794675399098148248049211790966734548118605398016 36028797018963968:4:70208194445704779439932253141890870867133108985758678842196623360 36028797018963968:5:505903357350450138468887646825722758729371624535947278601540255074775273264119808 # binomial(2^55, 2^55-k) for 0 <= k <= 5 36028797018963968:36028797018963968:1 36028797018963968:36028797018963967:36028797018963968 36028797018963968:36028797018963966:649037107316853435551913531670528 36028797018963968:36028797018963965:7794675399098148248049211790966734548118605398016 36028797018963968:36028797018963964:70208194445704779439932253141890870867133108985758678842196623360 36028797018963968:36028797018963963:505903357350450138468887646825722758729371624535947278601540255074775273264119808 # binomial(2^55+1, k) for 0 <= k <= 5 36028797018963969:0:1 36028797018963969:1:36028797018963969 36028797018963969:2:649037107316853471580710550634496 36028797018963969:3:7794675399098148897086319107820170100032137068544 36028797018963969:4:70208194445704787234607652240039118916344899952493226960802021376 36028797018963969:5:505903357350450208677082092530502198661624766426818145734649240833454115460743168 # binomial(2^55+1, 2^55+1-k) for 0 <= k <= 5 36028797018963969:36028797018963969:1 36028797018963969:36028797018963968:36028797018963969 36028797018963969:36028797018963967:649037107316853471580710550634496 36028797018963969:36028797018963966:7794675399098148897086319107820170100032137068544 36028797018963969:36028797018963965:70208194445704787234607652240039118916344899952493226960802021376 36028797018963969:36028797018963964:505903357350450208677082092530502198661624766426818145734649240833454115460743168 # binomial(2^55+2, k) for 0 <= k <= 5 36028797018963970:0:1 36028797018963970:1:36028797018963970 36028797018963970:2:649037107316853507609507569598465 36028797018963970:3:7794675399098149546123426424673641680742687703040 36028797018963970:4:70208194445704795029283051338188016002664007772663326992939089920 36028797018963970:5:505903357350450278885276538235289433269277006465937062079549193326681076262764544 # binomial(2^55+2, 2^55+2-k) for 0 <= k <= 5 36028797018963970:36028797018963970:1 36028797018963970:36028797018963969:36028797018963970 36028797018963970:36028797018963968:649037107316853507609507569598465 36028797018963970:36028797018963967:7794675399098149546123426424673641680742687703040 36028797018963970:36028797018963966:70208194445704795029283051338188016002664007772663326992939089920 36028797018963970:36028797018963965:505903357350450278885276538235289433269277006465937062079549193326681076262764544 # binomial(2^55+3, k) for 0 <= k <= 5 36028797018963971:0:1 36028797018963971:1:36028797018963971 36028797018963971:2:649037107316853543638304588562435 36028797018963971:3:7794675399098150195160533741527149290250257301505 36028797018963971:4:70208194445704802823958450436337562126090432446305007735626792960 36028797018963971:5:505903357350450349093470983940084462552328344653953064743556965990008069201854464 # binomial(2^55+3, 2^55+3-k) for 0 <= k <= 5 36028797018963971:36028797018963971:1 36028797018963971:36028797018963970:36028797018963971 36028797018963971:36028797018963969:649037107316853543638304588562435 36028797018963971:36028797018963968:7794675399098150195160533741527149290250257301505 36028797018963971:36028797018963967:70208194445704802823958450436337562126090432446305007735626792960 36028797018963971:36028797018963966:505903357350450349093470983940084462552328344653953064743556965990008069201854464 # binomial(2^55+4, k) for 0 <= k <= 5 36028797018963972:0:1 36028797018963972:1:36028797018963972 36028797018963972:2:649037107316853579667101607526406 36028797018963972:3:7794675399098150844197641058380692928554845863940 36028797018963972:4:70208194445704810618633849534487757286624173973454297985884094465 36028797018963972:5:505903357350450419301665429644887286510778780991515190833989412295015804828647424 # binomial(2^55+4, 2^55+4-k) for 0 <= k <= 5 36028797018963972:36028797018963972:1 36028797018963972:36028797018963971:36028797018963972 36028797018963972:36028797018963970:649037107316853579667101607526406 36028797018963972:36028797018963969:7794675399098150844197641058380692928554845863940 36028797018963972:36028797018963968:70208194445704810618633849534487757286624173973454297985884094465 36028797018963972:36028797018963967:505903357350450419301665429644887286510778780991515190833989412295015804828647424 # binomial(2^55+5, k) for 0 <= k <= 5 36028797018963973:0:1 36028797018963973:1:36028797018963973 36028797018963973:2:649037107316853615695898626490378 36028797018963973:3:7794675399098151493234748375234272595656453390346 36028797018963973:4:70208194445704818413309248632638601484265232354147226540729958405 36028797018963973:5:505903357350450489509859875349697905144628315479272477458163385749313790712741889 # binomial(2^55+5, 2^55+5-k) for 0 <= k <= 5 36028797018963973:36028797018963973:1 36028797018963973:36028797018963972:36028797018963973 36028797018963973:36028797018963971:649037107316853615695898626490378 36028797018963973:36028797018963970:7794675399098151493234748375234272595656453390346 36028797018963973:36028797018963969:70208194445704818413309248632638601484265232354147226540729958405 36028797018963973:36028797018963968:505903357350450489509859875349697905144628315479272477458163385749313790712741889 # binomial(2^56-2, k) for 0 <= k <= 5 72057594037927934:0:1 72057594037927934:1:72057594037927934 72057594037927934:2:2596148429267413634121263069790211 72057594037927934:3:62357403192785183388245265060320278292482792357884 72057594037927934:4:1123331111131276439860214453877664186862819164172198284583287914501 72057594037927934:5:16188907435214404431004404698423175047392286574035906987876132842402958757007982586 # binomial(2^56-2, 2^56-2-k) for 0 <= k <= 5 72057594037927934:72057594037927934:1 72057594037927934:72057594037927933:72057594037927934 72057594037927934:72057594037927932:2596148429267413634121263069790211 72057594037927934:72057594037927931:62357403192785183388245265060320278292482792357884 72057594037927934:72057594037927930:1123331111131276439860214453877664186862819164172198284583287914501 72057594037927934:72057594037927929:16188907435214404431004404698423175047392286574035906987876132842402958757007982586 # binomial(2^56-1, k) for 0 <= k <= 5 72057594037927935:0:1 72057594037927935:1:72057594037927935 72057594037927935:2:2596148429267413706178857107718145 72057594037927935:3:62357403192785185984393694327733912413745862148095 72057594037927935:4:1123331111131276502217617646662847575108084224492476577066080272385 72057594037927935:5:16188907435214405554335515829699614907606740451700093850695297014601243340295897087 # binomial(2^56-1, 2^56-1-k) for 0 <= k <= 5 72057594037927935:72057594037927935:1 72057594037927935:72057594037927934:72057594037927935 72057594037927935:72057594037927933:2596148429267413706178857107718145 72057594037927935:72057594037927932:62357403192785185984393694327733912413745862148095 72057594037927935:72057594037927931:1123331111131276502217617646662847575108084224492476577066080272385 72057594037927935:72057594037927930:16188907435214405554335515829699614907606740451700093850695297014601243340295897087 # binomial(2^56, k) for 0 <= k <= 5 72057594037927936:0:1 72057594037927936:1:72057594037927936 72057594037927936:2:2596148429267413778236451145646080 72057594037927936:3:62357403192785188580542123595147618592602969866240 72057594037927936:4:1123331111131276564575020839448033559501778552226388990811942420480 72057594037927936:5:16188907435214406677666626960976117125224387114547668958779521507077820406376169472 # binomial(2^56, 2^56-k) for 0 <= k <= 5 72057594037927936:72057594037927936:1 72057594037927936:72057594037927935:72057594037927936 72057594037927936:72057594037927934:2596148429267413778236451145646080 72057594037927936:72057594037927933:62357403192785188580542123595147618592602969866240 72057594037927936:72057594037927932:1123331111131276564575020839448033559501778552226388990811942420480 72057594037927936:72057594037927931:16188907435214406677666626960976117125224387114547668958779521507077820406376169472 # binomial(2^56+1, k) for 0 <= k <= 5 72057594037927937:0:1 72057594037927937:1:72057594037927937 72057594037927937:2:2596148429267413850294045183574016 72057594037927937:3:62357403192785191176690552862561396829054115512320 72057594037927937:4:1123331111131276626932424032233222140043902147374007583414912286720 72057594037927937:5:16188907435214407800997738092252681700245226562581228460558073733466811218318589952 # binomial(2^56+1, 2^56+1-k) for 0 <= k <= 5 72057594037927937:72057594037927937:1 72057594037927937:72057594037927936:72057594037927937 72057594037927937:72057594037927935:2596148429267413850294045183574016 72057594037927937:72057594037927934:62357403192785191176690552862561396829054115512320 72057594037927937:72057594037927933:1123331111131276626932424032233222140043902147374007583414912286720 72057594037927937:72057594037927932:16188907435214407800997738092252681700245226562581228460558073733466811218318589952 # binomial(2^56+2, k) for 0 <= k <= 5 72057594037927938:0:1 72057594037927938:1:72057594037927938 72057594037927938:2:2596148429267413922351639221501953 72057594037927938:3:62357403192785193772838982129975247123099299086336 72057594037927938:4:1123331111131276689289827225018413316734455009935404412469027799040 72057594037927938:5:16188907435214408924328849223529308632669258795803368504460221107474394633230876672 # binomial(2^56+2, 2^56+2-k) for 0 <= k <= 5 72057594037927938:72057594037927938:1 72057594037927938:72057594037927937:72057594037927938 72057594037927938:72057594037927936:2596148429267413922351639221501953 72057594037927938:72057594037927935:62357403192785193772838982129975247123099299086336 72057594037927938:72057594037927934:1123331111131276689289827225018413316734455009935404412469027799040 72057594037927938:72057594037927933:16188907435214408924328849223529308632669258795803368504460221107474394633230876672 # binomial(2^56+3, k) for 0 <= k <= 5 72057594037927939:0:1 72057594037927939:1:72057594037927939 72057594037927939:2:2596148429267413994409233259429891 72057594037927939:3:62357403192785196368987411397389169474738520588289 72057594037927939:4:1123331111131276751647230417803607089573437139910651535568326885376 72057594037927939:5:16188907435214410047659960354805997922496483814216685238915231042878807102258675712 # binomial(2^56+3, 2^56+3-k) for 0 <= k <= 5 72057594037927939:72057594037927939:1 72057594037927939:72057594037927938:72057594037927939 72057594037927939:72057594037927937:2596148429267413994409233259429891 72057594037927939:72057594037927936:62357403192785196368987411397389169474738520588289 72057594037927939:72057594037927935:1123331111131276751647230417803607089573437139910651535568326885376 72057594037927939:72057594037927934:16188907435214410047659960354805997922496483814216685238915231042878807102258675712 # binomial(2^56+4, k) for 0 <= k <= 5 72057594037927940:0:1 72057594037927940:1:72057594037927940 72057594037927940:2:2596148429267414066466827297357830 72057594037927940:3:62357403192785198965135840664803163883971780018180 72057594037927940:4:1123331111131276814004633610588803458560848537299821010306847473665 72057594037927940:5:16188907435214411170991071486082749569726901617823774812352370953530342670585561088 # binomial(2^56+4, 2^56+4-k) for 0 <= k <= 5 72057594037927940:72057594037927940:1 72057594037927940:72057594037927939:72057594037927940 72057594037927940:72057594037927938:2596148429267414066466827297357830 72057594037927940:72057594037927937:62357403192785198965135840664803163883971780018180 72057594037927940:72057594037927936:1123331111131276814004633610588803458560848537299821010306847473665 72057594037927940:72057594037927935:16188907435214411170991071486082749569726901617823774812352370953530342670585561088 # binomial(2^56+5, k) for 0 <= k <= 5 72057594037927941:0:1 72057594037927941:1:72057594037927941 72057594037927941:2:2596148429267414138524421335285770 72057594037927941:3:62357403192785201561284269932217230350799077376010 72057594037927941:4:1123331111131276876362036803374002423696689202102984894278627491845 72057594037927941:5:16188907435214412294322182617359563574360512206627233373200908253351352977433034753 # binomial(2^56+5, 2^56+5-k) for 0 <= k <= 5 72057594037927941:72057594037927941:1 72057594037927941:72057594037927940:72057594037927941 72057594037927941:72057594037927939:2596148429267414138524421335285770 72057594037927941:72057594037927938:62357403192785201561284269932217230350799077376010 72057594037927941:72057594037927937:1123331111131276876362036803374002423696689202102984894278627491845 72057594037927941:72057594037927936:16188907435214412294322182617359563574360512206627233373200908253351352977433034753 # binomial(2^57-2, k) for 0 <= k <= 5 144115188075855870:0:1 144115188075855870:1:144115188075855870 144115188075855870:2:10384593717069654896773022468800515 144115188075855870:3:498859225542281498259743271691526124025395328057340 144115188075855870:4:17973297778100424783770720660027795610602108792100280376864737853445 144115188075855870:5:518045037926861013685332062751236122151599544376641313043110654629964735479210311674 # binomial(2^57-2, 2^57-2-k) for 0 <= k <= 5 144115188075855870:144115188075855870:1 144115188075855870:144115188075855869:144115188075855870 144115188075855870:144115188075855868:10384593717069654896773022468800515 144115188075855870:144115188075855867:498859225542281498259743271691526124025395328057340 144115188075855870:144115188075855866:17973297778100424783770720660027795610602108792100280376864737853445 144115188075855870:144115188075855865:518045037926861013685332062751236122151599544376641313043110654629964735479210311674 # binomial(2^57-1, k) for 0 <= k <= 5 144115188075855871:0:1 144115188075855871:1:144115188075855871 144115188075855871:2:10384593717069655040888210544656385 144115188075855871:3:498859225542281508644336988761181020798417796857855 144115188075855871:4:17973297778100425282629946202309293870345380483626404402260065910785 144115188075855871:5:518045037926861031658629840851660905922320204404436923645219446730245112343948165119 # binomial(2^57-1, 2^57-1-k) for 0 <= k <= 5 144115188075855871:144115188075855871:1 144115188075855871:144115188075855870:144115188075855871 144115188075855871:144115188075855869:10384593717069655040888210544656385 144115188075855871:144115188075855868:498859225542281508644336988761181020798417796857855 144115188075855871:144115188075855867:17973297778100425282629946202309293870345380483626404402260065910785 144115188075855871:144115188075855866:518045037926861031658629840851660905922320204404436923645219446730245112343948165119 # binomial(2^57, k) for 0 <= k <= 5 144115188075855872:0:1 144115188075855872:1:144115188075855872 144115188075855872:2:10384593717069655185003398620512256 144115188075855872:3:498859225542281519028930705830836061686628341514240 144115188075855872:4:17973297778100425781489171744590802514682369244807425200677862768640 144115188075855872:5:518045037926861049631927618952086188552266406713730793990599930356649514604014075904 # binomial(2^57, 2^57-k) for 0 <= k <= 5 144115188075855872:144115188075855872:1 144115188075855872:144115188075855871:144115188075855872 144115188075855872:144115188075855870:10384593717069655185003398620512256 144115188075855872:144115188075855869:498859225542281519028930705830836061686628341514240 144115188075855872:144115188075855868:17973297778100425781489171744590802514682369244807425200677862768640 144115188075855872:144115188075855867:518045037926861049631927618952086188552266406713730793990599930356649514604014075904 # binomial(2^57+1, k) for 0 <= k <= 5 144115188075855873:0:1 144115188075855873:1:144115188075855873 144115188075855873:2:10384593717069655329118586696368128 144115188075855873:3:498859225542281529413524422900491246690026962026496 144115188075855873:4:17973297778100426280348397286872321543613075075643486887306204282880 144115188075855873:5:518045037926861067605225397052511970041438151304533308672969175164074715281876844544 # binomial(2^57+1, 2^57+1-k) for 0 <= k <= 5 144115188075855873:144115188075855873:1 144115188075855873:144115188075855872:144115188075855873 144115188075855873:144115188075855871:10384593717069655329118586696368128 144115188075855873:144115188075855870:498859225542281529413524422900491246690026962026496 144115188075855873:144115188075855869:17973297778100426280348397286872321543613075075643486887306204282880 144115188075855873:144115188075855868:518045037926861067605225397052511970041438151304533308672969175164074715281876844544 # binomial(2^57+2, k) for 0 <= k <= 5 144115188075855874:0:1 144115188075855874:1:144115188075855874 144115188075855874:2:10384593717069655473233774772224001 144115188075855874:3:498859225542281539798118139970146575808613658394624 144115188075855874:4:17973297778100426779207622829153850957137497976134733577333166309376 144115188075855874:5:518045037926861085578523175152938250389835438176854852286044250807561602588081127424 # binomial(2^57+2, 2^57+2-k) for 0 <= k <= 5 144115188075855874:144115188075855874:1 144115188075855874:144115188075855873:144115188075855874 144115188075855874:144115188075855872:10384593717069655473233774772224001 144115188075855874:144115188075855871:498859225542281539798118139970146575808613658394624 144115188075855874:144115188075855870:17973297778100426779207622829153850957137497976134733577333166309376 144115188075855874:144115188075855869:518045037926861085578523175152938250389835438176854852286044250807561602588081127424 # binomial(2^57+3, k) for 0 <= k <= 5 144115188075855875:0:1 144115188075855875:1:144115188075855875 144115188075855875:2:10384593717069655617348962848079875 144115188075855875:3:498859225542281550182711857039802049042388430618625 144115188075855875:4:17973297778100427278066848371435390755255637946281309385946824704000 144115188075855875:5:518045037926861103551820953253365029597458267330705809423542226942295179921247436800 # binomial(2^57+3, 2^57+3-k) for 0 <= k <= 5 144115188075855875:144115188075855875:1 144115188075855875:144115188075855874:144115188075855875 144115188075855875:144115188075855873:10384593717069655617348962848079875 144115188075855875:144115188075855872:498859225542281550182711857039802049042388430618625 144115188075855875:144115188075855871:17973297778100427278066848371435390755255637946281309385946824704000 144115188075855875:144115188075855870:518045037926861103551820953253365029597458267330705809423542226942295179921247436800 # binomial(2^57+4, k) for 0 <= k <= 5 144115188075855876:0:1 144115188075855876:1:144115188075855876 144115188075855876:2:10384593717069655761464150923935750 144115188075855876:3:498859225542281560567305574109457666391351278698500 144115188075855876:4:17973297778100427776926073913716940937967494986083358428335255322625 144115188075855876:5:518045037926861121525118731353792307664306638766096564679180173223604565868072140800 # binomial(2^57+4, 2^57+4-k) for 0 <= k <= 5 144115188075855876:144115188075855876:1 144115188075855876:144115188075855875:144115188075855876 144115188075855876:144115188075855874:10384593717069655761464150923935750 144115188075855876:144115188075855873:498859225542281560567305574109457666391351278698500 144115188075855876:144115188075855872:17973297778100427776926073913716940937967494986083358428335255322625 144115188075855876:144115188075855871:518045037926861121525118731353792307664306638766096564679180173223604565868072140800 # binomial(2^57+5, k) for 0 <= k <= 5 144115188075855877:0:1 144115188075855877:1:144115188075855877 144115188075855877:2:10384593717069655905579338999791626 144115188075855877:3:498859225542281570951899291179113427855502202634250 144115188075855877:4:17973297778100428275785299455998501505273069095541024819686534021125 144115188075855877:5:518045037926861139498416509454220084590380552483037502646675159306962994203327463425 # binomial(2^57+5, 2^57+5-k) for 0 <= k <= 5 144115188075855877:144115188075855877:1 144115188075855877:144115188075855876:144115188075855877 144115188075855877:144115188075855875:10384593717069655905579338999791626 144115188075855877:144115188075855874:498859225542281570951899291179113427855502202634250 144115188075855877:144115188075855873:17973297778100428275785299455998501505273069095541024819686534021125 144115188075855877:144115188075855872:518045037926861139498416509454220084590380552483037502646675159306962994203327463425 # binomial(2^58-2, k) for 0 <= k <= 5 288230376151711742:0:1 288230376151711742:1:288230376151711742 288230376151711742:2:41538374868278620307668030254481411 288230376151711742:3:3990873804338252110693070778368068329940184553488380 288230376151711742:4:287572764449606810508389845744326816042163669941849760905385161523205 288230376151711742:5:16577441213659553588221683806466761026827878268528437273721130338498909257835231576058 # binomial(2^58-2, 2^58-2-k) for 0 <= k <= 5 288230376151711742:288230376151711742:1 288230376151711742:288230376151711741:288230376151711742 288230376151711742:288230376151711740:41538374868278620307668030254481411 288230376151711742:288230376151711739:3990873804338252110693070778368068329940184553488380 288230376151711742:288230376151711738:287572764449606810508389845744326816042163669941849760905385161523205 288230376151711742:288230376151711737:16577441213659553588221683806466761026827878268528437273721130338498909257835231576058 # binomial(2^58-1, k) for 0 <= k <= 5 288230376151711743:0:1 288230376151711743:1:288230376151711743 288230376151711743:2:41538374868278620595898406406193153 288230376151711743:3:3990873804338252152231445646646688637608214807969791 288230376151711743:4:287572764449606814499263650082578926735234448309918090845569715011585 288230376151711743:5:16577441213659553875794448256073571535217724012855253315884800280348670163220393099263 # binomial(2^58-1, 2^58-1-k) for 0 <= k <= 5 288230376151711743:288230376151711743:1 288230376151711743:288230376151711742:288230376151711743 288230376151711743:288230376151711741:41538374868278620595898406406193153 288230376151711743:288230376151711740:3990873804338252152231445646646688637608214807969791 288230376151711743:288230376151711739:287572764449606814499263650082578926735234448309918090845569715011585 288230376151711743:288230376151711738:16577441213659553875794448256073571535217724012855253315884800280348670163220393099263 # binomial(2^58, k) for 0 <= k <= 5 288230376151711744:0:1 288230376151711744:1:288230376151711744 288230376151711744:2:41538374868278620884128782557904896 288230376151711744:3:3990873804338252193769820514925309233506621214162944 288230376151711744:4:287572764449606818490137454420831078966680094956606728453784522981376 288230376151711744:5:16577441213659554163367212705680386034481374095434180051119248590266761008790108110848 # binomial(2^58, 2^58-k) for 0 <= k <= 5 288230376151711744:288230376151711744:1 288230376151711744:288230376151711743:288230376151711744 288230376151711744:288230376151711742:41538374868278620884128782557904896 288230376151711744:288230376151711741:3990873804338252193769820514925309233506621214162944 288230376151711744:288230376151711740:287572764449606818490137454420831078966680094956606728453784522981376 288230376151711744:288230376151711739:16577441213659554163367212705680386034481374095434180051119248590266761008790108110848 # binomial(2^58+1, k) for 0 <= k <= 5 288230376151711745:0:1 288230376151711745:1:288230376151711745 288230376151711745:2:41538374868278621172359158709616640 288230376151711745:3:3990873804338252235308195383203930117635403772067840 288230376151711745:4:287572764449606822481011258759083272736500609881915961960405737144320 288230376151711745:5:16577441213659554450939977155287204524618828516265259017799343546873489462574631092224 # binomial(2^58+1, 2^58+1-k) for 0 <= k <= 5 288230376151711745:288230376151711745:1 288230376151711745:288230376151711744:288230376151711745 288230376151711745:288230376151711743:41538374868278621172359158709616640 288230376151711745:288230376151711742:3990873804338252235308195383203930117635403772067840 288230376151711745:288230376151711741:287572764449606822481011258759083272736500609881915961960405737144320 288230376151711745:288230376151711740:16577441213659554450939977155287204524618828516265259017799343546873489462574631092224 # binomial(2^58+2, k) for 0 <= k <= 5 288230376151711746:0:1 288230376151711746:1:288230376151711746 288230376151711746:2:41538374868278621460589534861328385 288230376151711746:3:3990873804338252276846570251482551289994562481684480 288230376151711746:4:287572764449606826471885063097335508044695993085846079595809509212160 288230376151711746:5:16577441213659554738512741604894027005630087275348531754299953428789451422980368236544 # binomial(2^58+2, 2^58+2-k) for 0 <= k <= 5 288230376151711746:288230376151711746:1 288230376151711746:288230376151711745:288230376151711746 288230376151711746:288230376151711744:41538374868278621460589534861328385 288230376151711746:288230376151711743:3990873804338252276846570251482551289994562481684480 288230376151711746:288230376151711742:287572764449606826471885063097335508044695993085846079595809509212160 288230376151711746:288230376151711741:16577441213659554738512741604894027005630087275348531754299953428789451422980368236544 # binomial(2^58+3, k) for 0 <= k <= 5 288230376151711747:0:1 288230376151711747:1:288230376151711747 288230376151711747:2:41538374868278621748819911013040131 288230376151711747:3:3990873804338252318384945119761172750584097343012865 288230376151711747:4:287572764449606830462758867435587784891266244568397369590371990896640 288230376151711747:5:16577441213659555026085506054500853477515150372684039798995946514635531018789877448704 # binomial(2^58+3, 2^58+3-k) for 0 <= k <= 5 288230376151711747:288230376151711747:1 288230376151711747:288230376151711746:288230376151711747 288230376151711747:288230376151711745:41538374868278621748819911013040131 288230376151711747:288230376151711744:3990873804338252318384945119761172750584097343012865 288230376151711747:288230376151711743:287572764449606830462758867435587784891266244568397369590371990896640 288230376151711747:288230376151711742:16577441213659555026085506054500853477515150372684039798995946514635531018789877448704 # binomial(2^58+4, k) for 0 <= k <= 5 288230376151711748:0:1 288230376151711748:1:288230376151711748 288230376151711748:2:41538374868278622037050287164751878 288230376151711748:3:3990873804338252359923319988039794499404008356052996 288230376151711748:4:287572764449606834453632671773840103276211364329570120174469333909505 288230376151711748:5:16577441213659555313658270504107683940274017808271824690262191083032900609161868345344 # binomial(2^58+4, 2^58+4-k) for 0 <= k <= 5 288230376151711748:288230376151711748:1 288230376151711748:288230376151711747:288230376151711748 288230376151711748:288230376151711746:41538374868278622037050287164751878 288230376151711748:288230376151711745:3990873804338252359923319988039794499404008356052996 288230376151711748:288230376151711744:287572764449606834453632671773840103276211364329570120174469333909505 288230376151711748:288230376151711743:16577441213659555313658270504107683940274017808271824690262191083032900609161868345344 # binomial(2^58+5, k) for 0 <= k <= 5 288230376151711749:0:1 288230376151711749:1:288230376151711749 288230376151711749:2:41538374868278622325280663316463626 288230376151711749:3:3990873804338252401461694856318416536454295520804874 288230376151711749:4:287572764449606838444506476112092463199531352369364619578477689962501 288230376151711749:5:16577441213659555601231034953714518393906689582111927966473555412603020783631202254849 # binomial(2^58+5, 2^58+5-k) for 0 <= k <= 5 288230376151711749:288230376151711749:1 288230376151711749:288230376151711748:288230376151711749 288230376151711749:288230376151711747:41538374868278622325280663316463626 288230376151711749:288230376151711746:3990873804338252401461694856318416536454295520804874 288230376151711749:288230376151711745:287572764449606838444506476112092463199531352369364619578477689962501 288230376151711749:288230376151711744:16577441213659555601231034953714518393906689582111927966473555412603020783631202254849 # binomial(2^59-2, k) for 0 <= k <= 5 576460752303423486:0:1 576460752303423486:1:576460752303423486 576460752303423486:2:166153499473114482671824001776484355 576460752303423486:3:31926990434706017384005064646287991484459344088530940 576460752303423486:4:4601164231193709079878704053380288696079473800997573700726099542016005 576460752303423486:5:530478118837105733227750806581772377048646797083406675024489834768668177930572307365882 # binomial(2^59-2, 2^59-2-k) for 0 <= k <= 5 576460752303423486:576460752303423486:1 576460752303423486:576460752303423485:576460752303423486 576460752303423486:576460752303423484:166153499473114482671824001776484355 576460752303423486:576460752303423483:31926990434706017384005064646287991484459344088530940 576460752303423486:576460752303423482:4601164231193709079878704053380288696079473800997573700726099542016005 576460752303423486:576460752303423481:530478118837105733227750806581772377048646797083406675024489834768668177930572307365882 # binomial(2^59-1, k) for 0 <= k <= 5 576460752303423487:0:1 576460752303423487:1:576460752303423487 576460752303423487:2:166153499473114483248284754079907841 576460752303423487:3:31926990434706017550158564119402474156283345865015295 576460752303423487:4:4601164231193709111805694488086306080084538447285565185185443630546945 576460752303423487:5:530478118837105737828915037775481456927350850463695371103963635766241878656671849381887 # binomial(2^59-1, 2^59-1-k) for 0 <= k <= 5 576460752303423487:576460752303423487:1 576460752303423487:576460752303423486:576460752303423487 576460752303423487:576460752303423485:166153499473114483248284754079907841 576460752303423487:576460752303423484:31926990434706017550158564119402474156283345865015295 576460752303423487:576460752303423483:4601164231193709111805694488086306080084538447285565185185443630546945 576460752303423487:576460752303423482:530478118837105737828915037775481456927350850463695371103963635766241878656671849381887 # binomial(2^59, k) for 0 <= k <= 5 576460752303423488:0:1 576460752303423488:1:576460752303423488 576460752303423488:2:166153499473114483824745506383331328 576460752303423488:3:31926990434706017716312063592516957404568099944923136 576460752303423488:4:4601164231193709143732684922792323630243102566688039341468789495562240 576460752303423488:5:530478118837105742430079268969190568733045338550001451188502083051807063842115479928832 # binomial(2^59, 2^59-k) for 0 <= k <= 5 576460752303423488:576460752303423488:1 576460752303423488:576460752303423487:576460752303423488 576460752303423488:576460752303423486:166153499473114483824745506383331328 576460752303423488:576460752303423485:31926990434706017716312063592516957404568099944923136 576460752303423488:576460752303423484:4601164231193709143732684922792323630243102566688039341468789495562240 576460752303423488:576460752303423483:530478118837105742430079268969190568733045338550001451188502083051807063842115479928832 # binomial(2^59+1, k) for 0 <= k <= 5 576460752303423489:0:1 576460752303423489:1:576460752303423489 576460752303423489:2:166153499473114484401206258686754816 576460752303423489:3:31926990434706017882465563065631441229313606328254464 576460752303423489:4:4601164231193709175659675357498341346555166159204996746036889440485376 576460752303423489:5:530478118837105747031243500162899712465730261342325081431604649739846405310904975491072 # binomial(2^59+1, 2^59+1-k) for 0 <= k <= 5 576460752303423489:576460752303423489:1 576460752303423489:576460752303423488:576460752303423489 576460752303423489:576460752303423487:166153499473114484401206258686754816 576460752303423489:576460752303423486:31926990434706017882465563065631441229313606328254464 576460752303423489:576460752303423485:4601164231193709175659675357498341346555166159204996746036889440485376 576460752303423489:576460752303423484:530478118837105747031243500162899712465730261342325081431604649739846405310904975491072 # binomial(2^59+2, k) for 0 <= k <= 5 576460752303423490:0:1 576460752303423490:1:576460752303423490 576460752303423490:2:166153499473114484977667010990178305 576460752303423490:3:31926990434706018048619062538745925630519865015009280 576460752303423490:4:4601164231193709207586665792204359229020729224836437975350495768739840 576460752303423490:5:530478118837105751632407731356608888125405618840666427986770808944843151347794415976448 # binomial(2^59+2, 2^59+2-k) for 0 <= k <= 5 576460752303423490:576460752303423490:1 576460752303423490:576460752303423489:576460752303423490 576460752303423490:576460752303423488:166153499473114484977667010990178305 576460752303423490:576460752303423487:31926990434706018048619062538745925630519865015009280 576460752303423490:576460752303423486:4601164231193709207586665792204359229020729224836437975350495768739840 576460752303423490:576460752303423485:530478118837105751632407731356608888125405618840666427986770808944843151347794415976448 # binomial(2^59+3, k) for 0 <= k <= 5 576460752303423491:0:1 576460752303423491:1:576460752303423491 576460752303423491:2:166153499473114485554127763293601795 576460752303423491:3:31926990434706018214772562011860410608186876005187585 576460752303423491:4:4601164231193709239513656226910377277639791763582363605870360783749120 576460752303423491:5:530478118837105756233571962550318095712071411045025657007500033781281126698290184716288 # binomial(2^59+3, 2^59+3-k) for 0 <= k <= 5 576460752303423491:576460752303423491:1 576460752303423491:576460752303423490:576460752303423491 576460752303423491:576460752303423489:166153499473114485554127763293601795 576460752303423491:576460752303423488:31926990434706018214772562011860410608186876005187585 576460752303423491:576460752303423487:4601164231193709239513656226910377277639791763582363605870360783749120 576460752303423491:576460752303423486:530478118837105756233571962550318095712071411045025657007500033781281126698290184716288 # binomial(2^59+4, k) for 0 <= k <= 5 576460752303423492:0:1 576460752303423492:1:576460752303423492 576460752303423492:2:166153499473114486130588515597025286 576460752303423492:3:31926990434706018380926061484974896162314639298789380 576460752303423492:4:4601164231193709271440646661616395492412353775442774214057236788936705 576460752303423492:5:530478118837105760834736193744027335225727637955402934647291797363644732568650968465408 # binomial(2^59+4, 2^59+4-k) for 0 <= k <= 5 576460752303423492:576460752303423492:1 576460752303423492:576460752303423491:576460752303423492 576460752303423492:576460752303423490:166153499473114486130588515597025286 576460752303423492:576460752303423489:31926990434706018380926061484974896162314639298789380 576460752303423492:576460752303423488:4601164231193709271440646661616395492412353775442774214057236788936705 576460752303423492:576460752303423487:530478118837105760834736193744027335225727637955402934647291797363644732568650968465408 # binomial(2^59+5, k) for 0 <= k <= 5 576460752303423493:0:1 576460752303423493:1:576460752303423493 576460752303423493:2:166153499473114486707049267900448778 576460752303423493:3:31926990434706018547079560958089382292903154895814666 576460752303423493:4:4601164231193709303367637096322413873338415260417670376371876087726085 576460752303423493:5:530478118837105765435900424937736606666374299571798427059645572806418946625887757402113 # binomial(2^59+5, 2^59+5-k) for 0 <= k <= 5 576460752303423493:576460752303423493:1 576460752303423493:576460752303423492:576460752303423493 576460752303423493:576460752303423491:166153499473114486707049267900448778 576460752303423493:576460752303423490:31926990434706018547079560958089382292903154895814666 576460752303423493:576460752303423489:4601164231193709303367637096322413873338415260417670376371876087726085 576460752303423493:576460752303423488:530478118837105765435900424937736606666374299571798427059645572806418946625887757402113 # binomial(2^60-2, k) for 0 <= k <= 5 1152921504606846974:0:1 1152921504606846974:1:1152921504606846974 1152921504606846974:2:664613997892457933569599768623054851 1152921504606846974:3:255415923477648141065882510847677726243405783239753724 1152921504606846974:4:73618627699099346172014997025853108049408884062513216086652002548842501 1152921504606846974:5:16975299802787383757762536607014098391019393441836151738983451374072670980647770547814394 # binomial(2^60-2, 2^60-2-k) for 0 <= k <= 5 1152921504606846974:1152921504606846974:1 1152921504606846974:1152921504606846973:1152921504606846974 1152921504606846974:1152921504606846972:664613997892457933569599768623054851 1152921504606846974:1152921504606846971:255415923477648141065882510847677726243405783239753724 1152921504606846974:1152921504606846970:73618627699099346172014997025853108049408884062513216086652002548842501 1152921504606846974:1152921504606846969:16975299802787383757762536607014098391019393441836151738983451374072670980647770547814394 # binomial(2^60-1, k) for 0 <= k <= 5 1152921504606846975:0:1 1152921504606846975:1:1152921504606846975 1152921504606846975:2:664613997892457934722521273229901825 1152921504606846975:3:255415923477648141730496508740135659813005551862808575 1152921504606846975:4:73618627699099346427430920503501249115291394910190942330057785788596225 1152921504606846975:5:16975299802787383831381164306113444563034390467689259788392335436585887067299773096656895 # binomial(2^60-1, 2^60-1-k) for 0 <= k <= 5 1152921504606846975:1152921504606846975:1 1152921504606846975:1152921504606846974:1152921504606846975 1152921504606846975:1152921504606846973:664613997892457934722521273229901825 1152921504606846975:1152921504606846972:255415923477648141730496508740135659813005551862808575 1152921504606846975:1152921504606846971:73618627699099346427430920503501249115291394910190942330057785788596225 1152921504606846975:1152921504606846970:16975299802787383831381164306113444563034390467689259788392335436585887067299773096656895 # binomial(2^60, k) for 0 <= k <= 5 1152921504606846976:0:1 1152921504606846976:1:1152921504606846976 1152921504606846976:2:664613997892457935875442777836748800 1152921504606846976:3:255415923477648142395110506632593594535526825092710400 1152921504606846976:4:73618627699099346682846843981149390845787903650326602143063337651404800 1152921504606846976:5:16975299802787383904999792005212790990465310971190508903683730346776829397357558885253120 # binomial(2^60, 2^60-k) for 0 <= k <= 5 1152921504606846976:1152921504606846976:1 1152921504606846976:1152921504606846975:1152921504606846976 1152921504606846976:1152921504606846974:664613997892457935875442777836748800 1152921504606846976:1152921504606846973:255415923477648142395110506632593594535526825092710400 1152921504606846976:1152921504606846972:73618627699099346682846843981149390845787903650326602143063337651404800 1152921504606846976:1152921504606846971:16975299802787383904999792005212790990465310971190508903683730346776829397357558885253120 # binomial(2^60+1, k) for 0 <= k <= 5 1152921504606846977:0:1 1152921504606846977:1:1152921504606846977 1152921504606846977:2:664613997892457937028364282443595776 1152921504606846977:3:255415923477648143059724504525051530410969602929459200 1152921504606846977:4:73618627699099346938262767458797533240898410282920196678590162744115200 1152921504606846977:5:16975299802787383978618419704312137673312154952339899749471633997103431540420896536657920 # binomial(2^60+1, 2^60+1-k) for 0 <= k <= 5 1152921504606846977:1152921504606846977:1 1152921504606846977:1152921504606846976:1152921504606846977 1152921504606846977:1152921504606846975:664613997892457937028364282443595776 1152921504606846977:1152921504606846974:255415923477648143059724504525051530410969602929459200 1152921504606846977:1152921504606846973:73618627699099346938262767458797533240898410282920196678590162744115200 1152921504606846977:1152921504606846972:16975299802787383978618419704312137673312154952339899749471633997103431540420896536657920 # binomial(2^60+2, k) for 0 <= k <= 5 1152921504606846978:0:1 1152921504606846978:1:1152921504606846978 1152921504606846978:2:664613997892457938181285787050442753 1152921504606846978:3:255415923477648143724338502417509467439333885373054976 1152921504606846978:4:73618627699099347193678690936445676300622914807971727089559765673574400 1152921504606846978:5:16975299802787384052237047403411484611574922411137432990370044280023628219011059280773120 # binomial(2^60+2, 2^60+2-k) for 0 <= k <= 5 1152921504606846978:1152921504606846978:1 1152921504606846978:1152921504606846977:1152921504606846978 1152921504606846978:1152921504606846976:664613997892457938181285787050442753 1152921504606846978:1152921504606846975:255415923477648143724338502417509467439333885373054976 1152921504606846978:1152921504606846974:73618627699099347193678690936445676300622914807971727089559765673574400 1152921504606846978:1152921504606846973:16975299802787384052237047403411484611574922411137432990370044280023628219011059280773120 # binomial(2^60+3, k) for 0 <= k <= 5 1152921504606846979:0:1 1152921504606846979:1:1152921504606846979 1152921504606846979:2:664613997892457939334207291657289731 1152921504606846979:3:255415923477648144388952500309967405620619672423497729 1152921504606846979:4:73618627699099347449094614414093820024961417225481194528893651046629376 1152921504606846979:5:16975299802787384125855675102510831805253613347583109290992959087995355308570824954347520 # binomial(2^60+3, 2^60+3-k) for 0 <= k <= 5 1152921504606846979:1152921504606846979:1 1152921504606846979:1152921504606846978:1152921504606846979 1152921504606846979:1152921504606846977:664613997892457939334207291657289731 1152921504606846979:1152921504606846976:255415923477648144388952500309967405620619672423497729 1152921504606846979:1152921504606846975:73618627699099347449094614414093820024961417225481194528893651046629376 1152921504606846979:1152921504606846974:16975299802787384125855675102510831805253613347583109290992959087995355308570824954347520 # binomial(2^60+4, k) for 0 <= k <= 5 1152921504606846980:0:1 1152921504606846980:1:1152921504606846980 1152921504606846980:2:664613997892457940487128796264136710 1152921504606846980:3:255415923477648145053566498202425344954826964080787460 1152921504606846980:4:73618627699099347704510537891741964413913917535448600149513323470127105 1152921504606846980:5:16975299802787384199474302801610179254348227761676929315954376313476549837464476000976896 # binomial(2^60+4, 2^60+4-k) for 0 <= k <= 5 1152921504606846980:1152921504606846980:1 1152921504606846980:1152921504606846979:1152921504606846980 1152921504606846980:1152921504606846978:664613997892457940487128796264136710 1152921504606846980:1152921504606846977:255415923477648145053566498202425344954826964080787460 1152921504606846980:1152921504606846976:73618627699099347704510537891741964413913917535448600149513323470127105 1152921504606846980:1152921504606846975:16975299802787384199474302801610179254348227761676929315954376313476549837464476000976896 # binomial(2^60+5, k) for 0 <= k <= 5 1152921504606846981:0:1 1152921504606846981:1:1152921504606846981 1152921504606846981:2:664613997892457941640050300870983690 1152921504606846981:3:255415923477648145718180496094883285441955760344924170 1152921504606846981:4:73618627699099347959926461369390109467480415737873945104340287550914565 1152921504606846981:5:16975299802787384273092930500709526958858765653418893729868293848925149986977799471104001 # binomial(2^60+5, 2^60+5-k) for 0 <= k <= 5 1152921504606846981:1152921504606846981:1 1152921504606846981:1152921504606846980:1152921504606846981 1152921504606846981:1152921504606846979:664613997892457941640050300870983690 1152921504606846981:1152921504606846978:255415923477648145718180496094883285441955760344924170 1152921504606846981:1152921504606846977:73618627699099347959926461369390109467480415737873945104340287550914565 1152921504606846981:1152921504606846976:16975299802787384273092930500709526958858765653418893729868293848925149986977799471104001 # binomial(2^61-2, k) for 0 <= k <= 5 2305843009213693950:0:1 2305843009213693950:1:2305843009213693950 2305843009213693950:2:2658455991569831740043006597526454275 2305843009213693950:3:2043327387821185136502428061490917017394129507822075900 2305843009213693950:4:1177898043185589545903885809787797687275234421337140929759512468201144325 2305843009213693950:5:543209593689196284959993344166809313227385491943985135300858423537672499593475195504951290 # binomial(2^61-2, 2^61-2-k) for 0 <= k <= 5 2305843009213693950:2305843009213693950:1 2305843009213693950:2305843009213693949:2305843009213693950 2305843009213693950:2305843009213693948:2658455991569831740043006597526454275 2305843009213693950:2305843009213693947:2043327387821185136502428061490917017394129507822075900 2305843009213693950:2305843009213693946:1177898043185589545903885809787797687275234421337140929759512468201144325 2305843009213693950:2305843009213693945:543209593689196284959993344166809313227385491943985135300858423537672499593475195504951290 # binomial(2^61-1, k) for 0 <= k <= 5 2305843009213693951:0:1 2305843009213693951:1:2305843009213693951 2305843009213693951:2:2658455991569831742348849606740148225 2305843009213693951:3:2043327387821185139160884053060748757437136105348530175 2305843009213693951:4:1177898043185589547947213197608982823777662482828057947153641976023220225 2305843009213693951:5:543209593689196286137891387352398859131271301731782822576092844874813429352987663706095615 # binomial(2^61-1, 2^61-1-k) for 0 <= k <= 5 2305843009213693951:2305843009213693951:1 2305843009213693951:2305843009213693950:2305843009213693951 2305843009213693951:2305843009213693949:2658455991569831742348849606740148225 2305843009213693951:2305843009213693948:2043327387821185139160884053060748757437136105348530175 2305843009213693951:2305843009213693947:1177898043185589547947213197608982823777662482828057947153641976023220225 2305843009213693951:2305843009213693946:543209593689196286137891387352398859131271301731782822576092844874813429352987663706095615 # binomial(2^61, k) for 0 <= k <= 5 2305843009213693952:0:1 2305843009213693952:1:2305843009213693952 2305843009213693952:2:2658455991569831744654692615953842176 2305843009213693952:3:2043327387821185141819340044630580499785985712088678400 2305843009213693952:4:1177898043185589549990540585430167962938546535888806704590778081371750400 2305843009213693952:5:543209593689196287315789430537988407078484499340765646353755327702871376506629639729315840 # binomial(2^61, 2^61-k) for 0 <= k <= 5 2305843009213693952:2305843009213693952:1 2305843009213693952:2305843009213693951:2305843009213693952 2305843009213693952:2305843009213693950:2658455991569831744654692615953842176 2305843009213693952:2305843009213693949:2043327387821185141819340044630580499785985712088678400 2305843009213693952:2305843009213693948:1177898043185589549990540585430167962938546535888806704590778081371750400 2305843009213693952:2305843009213693947:543209593689196287315789430537988407078484499340765646353755327702871376506629639729315840 # binomial(2^61+1, k) for 0 <= k <= 5 2305843009213693953:0:1 2305843009213693953:1:2305843009213693953 2305843009213693953:2:2658455991569831746960535625167536128 2305843009213693953:3:2043327387821185144477796036200412244440678328042520576 2305843009213693953:4:1177898043185589552033867973251353104757886580519387204376763793460428800 2305843009213693953:5:543209593689196288493687473723577957069025084770933609292301863591678081097407721101066240 # binomial(2^61+1, 2^61+1-k) for 0 <= k <= 5 2305843009213693953:2305843009213693953:1 2305843009213693953:2305843009213693952:2305843009213693953 2305843009213693953:2305843009213693951:2658455991569831746960535625167536128 2305843009213693953:2305843009213693950:2043327387821185144477796036200412244440678328042520576 2305843009213693953:2305843009213693949:1177898043185589552033867973251353104757886580519387204376763793460428800 2305843009213693953:2305843009213693948:543209593689196288493687473723577957069025084770933609292301863591678081097407721101066240 # binomial(2^61+2, k) for 0 <= k <= 5 2305843009213693954:0:1 2305843009213693954:1:2305843009213693954 2305843009213693954:2:2658455991569831749266378634381230081 2305843009213693954:3:2043327387821185147136252027770243991401213953210056704 2305843009213693954:4:1177898043185589554077195361072538249235682616719799448817442121502949376 2305843009213693954:5:543209593689196289671585516909167509102893058022286714050188444111065285474171514561495040 # binomial(2^61+2, 2^61+2-k) for 0 <= k <= 5 2305843009213693954:2305843009213693954:1 2305843009213693954:2305843009213693953:2305843009213693954 2305843009213693954:2305843009213693952:2658455991569831749266378634381230081 2305843009213693954:2305843009213693951:2043327387821185147136252027770243991401213953210056704 2305843009213693954:2305843009213693950:1177898043185589554077195361072538249235682616719799448817442121502949376 2305843009213693954:2305843009213693949:543209593689196289671585516909167509102893058022286714050188444111065285474171514561495040 # binomial(2^61+3, k) for 0 <= k <= 5 2305843009213693955:0:1 2305843009213693955:1:2305843009213693955 2305843009213693955:2:2658455991569831751572221643594924035 2305843009213693955:3:2043327387821185149794708019340075740667592587591286785 2305843009213693955:4:1177898043185589556120522748893723396371934644490043440218656074713006080 2305843009213693955:5:543209593689196290849483560094757063180088419094824963285871060830864734291613636064444416 # binomial(2^61+3, 2^61+3-k) for 0 <= k <= 5 2305843009213693955:2305843009213693955:1 2305843009213693955:2305843009213693954:2305843009213693955 2305843009213693955:2305843009213693953:2658455991569831751572221643594924035 2305843009213693955:2305843009213693952:2043327387821185149794708019340075740667592587591286785 2305843009213693955:2305843009213693951:1177898043185589556120522748893723396371934644490043440218656074713006080 2305843009213693955:2305843009213693950:543209593689196290849483560094757063180088419094824963285871060830864734291613636064444416 # binomial(2^61+4, k) for 0 <= k <= 5 2305843009213693956:0:1 2305843009213693956:1:2305843009213693956 2305843009213693956:2:2658455991569831753878064652808617990 2305843009213693956:3:2043327387821185152453164010909907492239814231186210820 2305843009213693956:4:1177898043185589558163850136714908546166642663830119180886248662304292865 2305843009213693956:5:543209593689196292027381603280346619300611167988548359657805705320908174510269710777450496 # binomial(2^61+4, 2^61+4-k) for 0 <= k <= 5 2305843009213693956:2305843009213693956:1 2305843009213693956:2305843009213693955:2305843009213693956 2305843009213693956:2305843009213693954:2658455991569831753878064652808617990 2305843009213693956:2305843009213693953:2043327387821185152453164010909907492239814231186210820 2305843009213693956:2305843009213693952:1177898043185589558163850136714908546166642663830119180886248662304292865 2305843009213693956:2305843009213693951:543209593689196292027381603280346619300611167988548359657805705320908174510269710777450496 # binomial(2^61+5, k) for 0 <= k <= 5 2305843009213693957:0:1 2305843009213693957:1:2305843009213693957 2305843009213693957:2:2658455991569831756183907662022311946 2305843009213693957:3:2043327387821185155111620002479739246117878883994828810 2305843009213693957:4:1177898043185589560207177524536093698619806674740026673126062893490503685 2305843009213693957:5:543209593689196293205279646465936177464461304703456905824448369151027355396518373081743361 # binomial(2^61+5, 2^61+5-k) for 0 <= k <= 5 2305843009213693957:2305843009213693957:1 2305843009213693957:2305843009213693956:2305843009213693957 2305843009213693957:2305843009213693955:2658455991569831756183907662022311946 2305843009213693957:2305843009213693954:2043327387821185155111620002479739246117878883994828810 2305843009213693957:2305843009213693953:1177898043185589560207177524536093698619806674740026673126062893490503685 2305843009213693957:2305843009213693952:543209593689196293205279646465936177464461304703456905824448369151027355396518373081743361 # binomial(2^62-2, k) for 0 <= k <= 5 4611686018427387902:0:1 4611686018427387902:1:4611686018427387902 4611686018427387902:2:10633823966279326971701241436174286851 4611686018427387902:3:16346619102569481123920896390765317028892487269748834300 4611686018427387902:4:18846368690969432791675339815597946853031664353547743986052754487294033925 4611686018427387902:5:17382706998054281194105261777215629038771468305831611518285474804856376592834965103429287930 # binomial(2^62-2, 2^62-2-k) for 0 <= k <= 5 4611686018427387902:4611686018427387902:1 4611686018427387902:4611686018427387901:4611686018427387902 4611686018427387902:4611686018427387900:10633823966279326971701241436174286851 4611686018427387902:4611686018427387899:16346619102569481123920896390765317028892487269748834300 4611686018427387902:4611686018427387898:18846368690969432791675339815597946853031664353547743986052754487294033925 4611686018427387902:4611686018427387897:17382706998054281194105261777215629038771468305831611518285474804856376592834965103429287930 # binomial(2^62-1, k) for 0 <= k <= 5 4611686018427387903:0:1 4611686018427387903:1:4611686018427387903 4611686018427387903:2:10633823966279326976312927454601674753 4611686018427387903:3:16346619102569481134554720357044644000593728705923121151 4611686018427387903:4:18846368690969432808021958918167427976952560744313061014945241757042868225 4611686018427387903:5:17382706998054281212951630468185061830446808121429558371317139158404120578887719590723321855 # binomial(2^62-1, 2^62-1-k) for 0 <= k <= 5 4611686018427387903:4611686018427387903:1 4611686018427387903:4611686018427387902:4611686018427387903 4611686018427387903:4611686018427387901:10633823966279326976312927454601674753 4611686018427387903:4611686018427387900:16346619102569481134554720357044644000593728705923121151 4611686018427387903:4611686018427387899:18846368690969432808021958918167427976952560744313061014945241757042868225 4611686018427387903:4611686018427387898:17382706998054281212951630468185061830446808121429558371317139158404120578887719590723321855 # binomial(2^62, k) for 0 <= k <= 5 4611686018427387904:0:1 4611686018427387904:1:4611686018427387904 4611686018427387904:2:10633823966279326980924613473029062656 4611686018427387904:3:16346619102569481145188544323323970976906656160524795904 4611686018427387904:4:18846368690969432824368578020736909111507281101357705015538970462965989376 4611686018427387904:5:17382706998054281231797999159154494638468767039596986348269699902717181593832961347766190080 # binomial(2^62, 2^62-k) for 0 <= k <= 5 4611686018427387904:4611686018427387904:1 4611686018427387904:4611686018427387903:4611686018427387904 4611686018427387904:4611686018427387902:10633823966279326980924613473029062656 4611686018427387904:4611686018427387901:16346619102569481145188544323323970976906656160524795904 4611686018427387904:4611686018427387900:18846368690969432824368578020736909111507281101357705015538970462965989376 4611686018427387904:4611686018427387899:17382706998054281231797999159154494638468767039596986348269699902717181593832961347766190080 # binomial(2^62+1, k) for 0 <= k <= 5 4611686018427387905:0:1 4611686018427387905:1:4611686018427387905 4611686018427387905:2:10633823966279326985536299491456450560 4611686018427387905:3:16346619102569481155822368289603297957831269633553858560 4611686018427387905:4:18846368690969432840715197123306390256695825424681675992445626623490785280 4611686018427387905:5:17382706998054281250644367850123927462837345060333895459776981004074886609371931810732179456 # binomial(2^62+1, 2^62+1-k) for 0 <= k <= 5 4611686018427387905:4611686018427387905:1 4611686018427387905:4611686018427387904:4611686018427387905 4611686018427387905:4611686018427387903:10633823966279326985536299491456450560 4611686018427387905:4611686018427387902:16346619102569481155822368289603297957831269633553858560 4611686018427387905:4611686018427387901:18846368690969432840715197123306390256695825424681675992445626623490785280 4611686018427387905:4611686018427387900:17382706998054281250644367850123927462837345060333895459776981004074886609371931810732179456 # binomial(2^62+2, k) for 0 <= k <= 5 4611686018427387906:0:1 4611686018427387906:1:4611686018427387906 4611686018427387906:2:10633823966279326990147985509883838465 4611686018427387906:3:16346619102569481166456192255882624943367569125010309120 4611686018427387906:4:18846368690969432857061816225875871412518193714284973950276896257044643840 4611686018427387906:5:17382706998054281269490736541093360303552542183640285716472806428756562601817558434222964736 # binomial(2^62+2, 2^62+2-k) for 0 <= k <= 5 4611686018427387906:4611686018427387906:1 4611686018427387906:4611686018427387905:4611686018427387906 4611686018427387906:4611686018427387904:10633823966279326990147985509883838465 4611686018427387906:4611686018427387903:16346619102569481166456192255882624943367569125010309120 4611686018427387906:4611686018427387902:18846368690969432857061816225875871412518193714284973950276896257044643840 4611686018427387906:4611686018427387901:17382706998054281269490736541093360303552542183640285716472806428756562601817558434222964736 # binomial(2^62+3, k) for 0 <= k <= 5 4611686018427387907:0:1 4611686018427387907:1:4611686018427387907 4611686018427387907:2:10633823966279326994759671528311226371 4611686018427387907:3:16346619102569481177090016222161951933515554634894147585 4611686018427387907:4:18846368690969432873408435328445352578974385970167598893644465382054952960 4611686018427387907:5:17382706998054281288337105232062793160614358409516157128991000143041536552094454691267608576 # binomial(2^62+3, 2^62+3-k) for 0 <= k <= 5 4611686018427387907:4611686018427387907:1 4611686018427387907:4611686018427387906:4611686018427387907 4611686018427387907:4611686018427387905:10633823966279326994759671528311226371 4611686018427387907:4611686018427387904:16346619102569481177090016222161951933515554634894147585 4611686018427387907:4611686018427387903:18846368690969432873408435328445352578974385970167598893644465382054952960 4611686018427387907:4611686018427387902:17382706998054281288337105232062793160614358409516157128991000143041536552094454691267608576 # binomial(2^62+4, k) for 0 <= k <= 5 4611686018427387908:0:1 4611686018427387908:1:4611686018427387908 4611686018427387908:2:10633823966279326999371357546738614278 4611686018427387908:3:16346619102569481187723840188441278928275226163205373956 4611686018427387908:4:18846368690969432889755054431014833756064402192329550827160020016949100545 4611686018427387908:5:17382706998054281307183473923032226034022793737961509707965386113209135445738920073322561536 # binomial(2^62+4, 2^62+4-k) for 0 <= k <= 5 4611686018427387908:4611686018427387908:1 4611686018427387908:4611686018427387907:4611686018427387908 4611686018427387908:4611686018427387906:10633823966279326999371357546738614278 4611686018427387908:4611686018427387905:16346619102569481187723840188441278928275226163205373956 4611686018427387908:4611686018427387904:18846368690969432889755054431014833756064402192329550827160020016949100545 4611686018427387908:4611686018427387903:17382706998054281307183473923032226034022793737961509707965386113209135445738920073322561536 # binomial(2^62+5, k) for 0 <= k <= 5 4611686018427387909:0:1 4611686018427387909:1:4611686018427387909 4611686018427387909:2:10633823966279327003983043565166002186 4611686018427387909:3:16346619102569481198357664154720605927646583709943988234 4611686018427387909:4:18846368690969432906101673533584314943788242380770829755435246180154474501 4611686018427387909:5:17382706998054281326029842614001658923777848168976343464029788305538686272898940090271662081 # binomial(2^62+5, 2^62+5-k) for 0 <= k <= 5 4611686018427387909:4611686018427387909:1 4611686018427387909:4611686018427387908:4611686018427387909 4611686018427387909:4611686018427387907:10633823966279327003983043565166002186 4611686018427387909:4611686018427387906:16346619102569481198357664154720605927646583709943988234 4611686018427387909:4611686018427387905:18846368690969432906101673533584314943788242380770829755435246180154474501 4611686018427387909:4611686018427387904:17382706998054281326029842614001658923777848168976343464029788305538686272898940090271662081 # binomial(2^63-2, k) for 0 <= k <= 5 9223372036854775806:0:1 9223372036854775806:1:9223372036854775806 9223372036854775806:2:42535295865117307909863395836834086915 9223372036854775806:3:130772952820555849118973058721474459910001539465791668220 9223372036854775806:4:301541899055510925124510771921512621256531440159824031222561540038365020165 9223372036854775806:5:556246623937736999417535973092943828529080259882520449951958719029217675006217135364056809466 # binomial(2^63-2, 2^63-2-k) for 0 <= k <= 5 9223372036854775806:9223372036854775806:1 9223372036854775806:9223372036854775805:9223372036854775806 9223372036854775806:9223372036854775804:42535295865117307909863395836834086915 9223372036854775806:9223372036854775803:130772952820555849118973058721474459910001539465791668220 9223372036854775806:9223372036854775802:301541899055510925124510771921512621256531440159824031222561540038365020165 9223372036854775806:9223372036854775801:556246623937736999417535973092943828529080259882520449951958719029217675006217135364056809466 # binomial(2^63-1, k) for 0 <= k <= 5 9223372036854775807:0:1 9223372036854775807:1:9223372036854775807 9223372036854775807:2:42535295865117307919086767873688862721 9223372036854775807:3:130772952820555849161508354586591767819864935302625755135 9223372036854775807:4:301541899055510925255283724742068470375504498881298491132563079504156688385 9223372036854775807:5:556246623937736999719077872148454753653591031804033071208490159189041706228778675402421829631 # binomial(2^63-1, 2^63-1-k) for 0 <= k <= 5 9223372036854775807:9223372036854775807:1 9223372036854775807:9223372036854775806:9223372036854775807 9223372036854775807:9223372036854775805:42535295865117307919086767873688862721 9223372036854775807:9223372036854775804:130772952820555849161508354586591767819864935302625755135 9223372036854775807:9223372036854775803:301541899055510925255283724742068470375504498881298491132563079504156688385 9223372036854775807:9223372036854775802:556246623937736999719077872148454753653591031804033071208490159189041706228778675402421829631 # binomial(2^63, k) for 0 <= k <= 5 9223372036854775808:0:1 9223372036854775808:1:9223372036854775808 9223372036854775808:2:42535295865117307928310139910543638528 9223372036854775808:3:130772952820555849204043650451709075738951703176314617856 9223372036854775808:4:301541899055510925386056677562624319537012853467890258952428014806782443520 9223372036854775808:5:556246623937737000020619771203965678908874756546101541583994658070340197361341754906578518016 # binomial(2^63, 2^63-k) for 0 <= k <= 5 9223372036854775808:9223372036854775808:1 9223372036854775808:9223372036854775807:9223372036854775808 9223372036854775808:9223372036854775806:42535295865117307928310139910543638528 9223372036854775808:9223372036854775805:130772952820555849204043650451709075738951703176314617856 9223372036854775808:9223372036854775804:301541899055510925386056677562624319537012853467890258952428014806782443520 9223372036854775808:9223372036854775803:556246623937737000020619771203965678908874756546101541583994658070340197361341754906578518016 # binomial(2^63+1, k) for 0 <= k <= 5 9223372036854775809:0:1 9223372036854775809:1:9223372036854775809 9223372036854775809:2:42535295865117307937533511947398414336 9223372036854775809:3:130772952820555849246578946316826383667261843086858256384 9223372036854775809:4:301541899055510925516829630383180168741056503919599334691379717983097061376 9223372036854775809:5:556246623937737000322161670259476604294931434108725861121007511538230456313769769713360961536 # binomial(2^63+1, 2^63+1-k) for 0 <= k <= 5 9223372036854775809:9223372036854775809:1 9223372036854775809:9223372036854775808:9223372036854775809 9223372036854775809:9223372036854775807:42535295865117307937533511947398414336 9223372036854775809:9223372036854775806:130772952820555849246578946316826383667261843086858256384 9223372036854775809:9223372036854775805:301541899055510925516829630383180168741056503919599334691379717983097061376 9223372036854775809:9223372036854775804:556246623937737000322161670259476604294931434108725861121007511538230456313769769713360961536 # binomial(2^63+2, k) for 0 <= k <= 5 9223372036854775810:0:1 9223372036854775810:1:9223372036854775810 9223372036854775810:2:42535295865117307946756883984253190145 9223372036854775810:3:130772952820555849289114242181943691604795355034256670720 9223372036854775810:4:301541899055510925647602583203736017987635450236425718358641561069955317760 9223372036854775810:5:556246623937737000623703569314987529811761064491906029862064015457829791005149487696458022912 # binomial(2^63+2, 2^63+2-k) for 0 <= k <= 5 9223372036854775810:9223372036854775810:1 9223372036854775810:9223372036854775809:9223372036854775810 9223372036854775810:9223372036854775808:42535295865117307946756883984253190145 9223372036854775810:9223372036854775807:130772952820555849289114242181943691604795355034256670720 9223372036854775810:9223372036854775806:301541899055510925647602583203736017987635450236425718358641561069955317760 9223372036854775810:9223372036854775805:556246623937737000623703569314987529811761064491906029862064015457829791005149487696458022912 # binomial(2^63+3, k) for 0 <= k <= 5 9223372036854775811:0:1 9223372036854775811:1:9223372036854775811 9223372036854775811:2:42535295865117307955980256021107965955 9223372036854775811:3:130772952820555849331649538047060999551552239018509860865 9223372036854775811:4:301541899055510925778375536024291867276749692418369409963436916104211988480 9223372036854775811:5:556246623937737000925245468370498455459363647695642047849699465694255509363791048766413340672 # binomial(2^63+3, 2^63+3-k) for 0 <= k <= 5 9223372036854775811:9223372036854775811:1 9223372036854775811:9223372036854775810:9223372036854775811 9223372036854775811:9223372036854775809:42535295865117307955980256021107965955 9223372036854775811:9223372036854775808:130772952820555849331649538047060999551552239018509860865 9223372036854775811:9223372036854775807:301541899055510925778375536024291867276749692418369409963436916104211988480 9223372036854775811:9223372036854775806:556246623937737000925245468370498455459363647695642047849699465694255509363791048766413340672 # binomial(2^63+4, k) for 0 <= k <= 5 9223372036854775812:0:1 9223372036854775812:1:9223372036854775812 9223372036854775812:2:42535295865117307965203628057962741766 9223372036854775812:3:130772952820555849374184833912178307507532495039617826820 9223372036854775812:4:301541899055510925909148488844847716608399230465430409514989155122721849345 9223372036854775812:5:556246623937737001226787367426009381237739183719933915126449158112624919327227964870625329152 # binomial(2^63+4, 2^63+4-k) for 0 <= k <= 5 9223372036854775812:9223372036854775812:1 9223372036854775812:9223372036854775811:9223372036854775812 9223372036854775812:9223372036854775810:42535295865117307965203628057962741766 9223372036854775812:9223372036854775809:130772952820555849374184833912178307507532495039617826820 9223372036854775812:9223372036854775808:301541899055510925909148488844847716608399230465430409514989155122721849345 9223372036854775812:9223372036854775807:556246623937737001226787367426009381237739183719933915126449158112624919327227964870625329152 # binomial(2^63+5, k) for 0 <= k <= 5 9223372036854775813:0:1 9223372036854775813:1:9223372036854775813 9223372036854775813:2:42535295865117307974427000094817517578 9223372036854775813:3:130772952820555849416720129777295615472736123097580568586 9223372036854775813:4:301541899055510926039921441665403565982584064377608717022521650162339676165 9223372036854775813:5:556246623937737001528329266481520307146887672564781631734848388578055328842217119993347178497 # binomial(2^63+5, 2^63+5-k) for 0 <= k <= 5 9223372036854775813:9223372036854775813:1 9223372036854775813:9223372036854775812:9223372036854775813 9223372036854775813:9223372036854775811:42535295865117307974427000094817517578 9223372036854775813:9223372036854775810:130772952820555849416720129777295615472736123097580568586 9223372036854775813:9223372036854775809:301541899055510926039921441665403565982584064377608717022521650162339676165 9223372036854775813:9223372036854775808:556246623937737001528329266481520307146887672564781631734848388578055328842217119993347178497 # binomial(2^64-2, k) for 0 <= k <= 5 18446744073709551614:0:1 18446744073709551614:1:18446744073709551614 18446744073709551614:2:170141183460469231685570443531610226691 18446744073709551614:3:1046183622564446793462208020153203374235266553915761491964 18446744073709551614:4:4824670384888174805653815029719765715988707533004994379878475263571704938501 18446744073709551614:5:17799891966007584000659832678526901725868629926398584425656879185770436922482125768826267107322 # binomial(2^64-2, 2^64-2-k) for 0 <= k <= 5 18446744073709551614:18446744073709551614:1 18446744073709551614:18446744073709551613:18446744073709551614 18446744073709551614:18446744073709551612:170141183460469231685570443531610226691 18446744073709551614:18446744073709551611:1046183622564446793462208020153203374235266553915761491964 18446744073709551614:18446744073709551610:4824670384888174805653815029719765715988707533004994379878475263571704938501 18446744073709551614:18446744073709551609:17799891966007584000659832678526901725868629926398584425656879185770436922482125768826267107322 # binomial(2^64-1, k) for 0 <= k <= 5 18446744073709551615:0:1 18446744073709551615:1:18446744073709551615 18446744073709551615:2:170141183460469231704017187605319778305 18446744073709551615:3:1046183622564446793632349203613672605920836997447371718655 18446744073709551615:4:4824670384888174806699998652284212509450915553158197754113741817487466430465 18446744073709551615:5:17799891966007584005484503063415076531522444956118350141645586718775431302360601032397972045823 # binomial(2^64-1, 2^64-1-k) for 0 <= k <= 5 18446744073709551615:18446744073709551615:1 18446744073709551615:18446744073709551614:18446744073709551615 18446744073709551615:18446744073709551613:170141183460469231704017187605319778305 18446744073709551615:18446744073709551612:1046183622564446793632349203613672605920836997447371718655 18446744073709551615:18446744073709551611:4824670384888174806699998652284212509450915553158197754113741817487466430465 18446744073709551615:18446744073709551610:17799891966007584005484503063415076531522444956118350141645586718775431302360601032397972045823 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_nok.t0000644403072340010010000001022214546553333023171 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 93973; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_nok'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_nok(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_nok() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_nok(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_nok() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_pow.t0000644403072340010010000001051614536617520023213 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1357; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_pow'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 0; $y <= 24 ; ++ $y) { my $z = $x ** $y; next if $z > 2147483647; push @data, [ $x, $y, $z ]; } } # Powers of 10. for (my $p = 0; $p <= 10 ; ++ $p) { for (my $q = 0; $q <= 6 ; ++ $q) { my $x = "1" . ("0" x $p); my $y = "1" . ("0" x $q); my $zn = $p * $y; next if $zn >= 1e4; my $z = "1" . ("0" x $zn); push @data, [ $x, $y, $z ]; } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_pow(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_pow() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_pow(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_add() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_root.dat0000644403072340010010001101715314505066136023701 0ustar OSPJADomain Users# Each line contain x:y:z, for all small values of x and y. # # Number of test cases: 15010. 0:1:0 0:2:0 0:3:0 0:4:0 0:5:0 0:6:0 0:7:0 0:8:0 0:9:0 0:10:0 1:1:1 1:2:1 1:3:1 1:4:1 1:5:1 1:6:1 1:7:1 1:8:1 1:9:1 1:10:1 2:1:2 2:2:1 2:3:1 2:4:1 2:5:1 2:6:1 2:7:1 2:8:1 2:9:1 2:10:1 3:1:3 3:2:1 3:3:1 3:4:1 3:5:1 3:6:1 3:7:1 3:8:1 3:9:1 3:10:1 4:1:4 4:2:2 4:3:1 4:4:1 4:5:1 4:6:1 4:7:1 4:8:1 4:9:1 4:10:1 5:1:5 5:2:2 5:3:1 5:4:1 5:5:1 5:6:1 5:7:1 5:8:1 5:9:1 5:10:1 6:1:6 6:2:2 6:3:1 6:4:1 6:5:1 6:6:1 6:7:1 6:8:1 6:9:1 6:10:1 7:1:7 7:2:2 7:3:1 7:4:1 7:5:1 7:6:1 7:7:1 7:8:1 7:9:1 7:10:1 8:1:8 8:2:2 8:3:2 8:4:1 8:5:1 8:6:1 8:7:1 8:8:1 8:9:1 8:10:1 9:1:9 9:2:3 9:3:2 9:4:1 9:5:1 9:6:1 9:7:1 9:8:1 9:9:1 9:10:1 10:1:10 10:2:3 10:3:2 10:4:1 10:5:1 10:6:1 10:7:1 10:8:1 10:9:1 10:10:1 11:1:11 11:2:3 11:3:2 11:4:1 11:5:1 11:6:1 11:7:1 11:8:1 11:9:1 11:10:1 12:1:12 12:2:3 12:3:2 12:4:1 12:5:1 12:6:1 12:7:1 12:8:1 12:9:1 12:10:1 13:1:13 13:2:3 13:3:2 13:4:1 13:5:1 13:6:1 13:7:1 13:8:1 13:9:1 13:10:1 14:1:14 14:2:3 14:3:2 14:4:1 14:5:1 14:6:1 14:7:1 14:8:1 14:9:1 14:10:1 15:1:15 15:2:3 15:3:2 15:4:1 15:5:1 15:6:1 15:7:1 15:8:1 15:9:1 15:10:1 16:1:16 16:2:4 16:3:2 16:4:2 16:5:1 16:6:1 16:7:1 16:8:1 16:9:1 16:10:1 17:1:17 17:2:4 17:3:2 17:4:2 17:5:1 17:6:1 17:7:1 17:8:1 17:9:1 17:10:1 18:1:18 18:2:4 18:3:2 18:4:2 18:5:1 18:6:1 18:7:1 18:8:1 18:9:1 18:10:1 19:1:19 19:2:4 19:3:2 19:4:2 19:5:1 19:6:1 19:7:1 19:8:1 19:9:1 19:10:1 20:1:20 20:2:4 20:3:2 20:4:2 20:5:1 20:6:1 20:7:1 20:8:1 20:9:1 20:10:1 21:1:21 21:2:4 21:3:2 21:4:2 21:5:1 21:6:1 21:7:1 21:8:1 21:9:1 21:10:1 22:1:22 22:2:4 22:3:2 22:4:2 22:5:1 22:6:1 22:7:1 22:8:1 22:9:1 22:10:1 23:1:23 23:2:4 23:3:2 23:4:2 23:5:1 23:6:1 23:7:1 23:8:1 23:9:1 23:10:1 24:1:24 24:2:4 24:3:2 24:4:2 24:5:1 24:6:1 24:7:1 24:8:1 24:9:1 24:10:1 25:1:25 25:2:5 25:3:2 25:4:2 25:5:1 25:6:1 25:7:1 25:8:1 25:9:1 25:10:1 26:1:26 26:2:5 26:3:2 26:4:2 26:5:1 26:6:1 26:7:1 26:8:1 26:9:1 26:10:1 27:1:27 27:2:5 27:3:3 27:4:2 27:5:1 27:6:1 27:7:1 27:8:1 27:9:1 27:10:1 28:1:28 28:2:5 28:3:3 28:4:2 28:5:1 28:6:1 28:7:1 28:8:1 28:9:1 28:10:1 29:1:29 29:2:5 29:3:3 29:4:2 29:5:1 29:6:1 29:7:1 29:8:1 29:9:1 29:10:1 30:1:30 30:2:5 30:3:3 30:4:2 30:5:1 30:6:1 30:7:1 30:8:1 30:9:1 30:10:1 31:1:31 31:2:5 31:3:3 31:4:2 31:5:1 31:6:1 31:7:1 31:8:1 31:9:1 31:10:1 32:1:32 32:2:5 32:3:3 32:4:2 32:5:2 32:6:1 32:7:1 32:8:1 32:9:1 32:10:1 33:1:33 33:2:5 33:3:3 33:4:2 33:5:2 33:6:1 33:7:1 33:8:1 33:9:1 33:10:1 34:1:34 34:2:5 34:3:3 34:4:2 34:5:2 34:6:1 34:7:1 34:8:1 34:9:1 34:10:1 35:1:35 35:2:5 35:3:3 35:4:2 35:5:2 35:6:1 35:7:1 35:8:1 35:9:1 35:10:1 36:1:36 36:2:6 36:3:3 36:4:2 36:5:2 36:6:1 36:7:1 36:8:1 36:9:1 36:10:1 37:1:37 37:2:6 37:3:3 37:4:2 37:5:2 37:6:1 37:7:1 37:8:1 37:9:1 37:10:1 38:1:38 38:2:6 38:3:3 38:4:2 38:5:2 38:6:1 38:7:1 38:8:1 38:9:1 38:10:1 39:1:39 39:2:6 39:3:3 39:4:2 39:5:2 39:6:1 39:7:1 39:8:1 39:9:1 39:10:1 40:1:40 40:2:6 40:3:3 40:4:2 40:5:2 40:6:1 40:7:1 40:8:1 40:9:1 40:10:1 41:1:41 41:2:6 41:3:3 41:4:2 41:5:2 41:6:1 41:7:1 41:8:1 41:9:1 41:10:1 42:1:42 42:2:6 42:3:3 42:4:2 42:5:2 42:6:1 42:7:1 42:8:1 42:9:1 42:10:1 43:1:43 43:2:6 43:3:3 43:4:2 43:5:2 43:6:1 43:7:1 43:8:1 43:9:1 43:10:1 44:1:44 44:2:6 44:3:3 44:4:2 44:5:2 44:6:1 44:7:1 44:8:1 44:9:1 44:10:1 45:1:45 45:2:6 45:3:3 45:4:2 45:5:2 45:6:1 45:7:1 45:8:1 45:9:1 45:10:1 46:1:46 46:2:6 46:3:3 46:4:2 46:5:2 46:6:1 46:7:1 46:8:1 46:9:1 46:10:1 47:1:47 47:2:6 47:3:3 47:4:2 47:5:2 47:6:1 47:7:1 47:8:1 47:9:1 47:10:1 48:1:48 48:2:6 48:3:3 48:4:2 48:5:2 48:6:1 48:7:1 48:8:1 48:9:1 48:10:1 49:1:49 49:2:7 49:3:3 49:4:2 49:5:2 49:6:1 49:7:1 49:8:1 49:9:1 49:10:1 50:1:50 50:2:7 50:3:3 50:4:2 50:5:2 50:6:1 50:7:1 50:8:1 50:9:1 50:10:1 51:1:51 51:2:7 51:3:3 51:4:2 51:5:2 51:6:1 51:7:1 51:8:1 51:9:1 51:10:1 52:1:52 52:2:7 52:3:3 52:4:2 52:5:2 52:6:1 52:7:1 52:8:1 52:9:1 52:10:1 53:1:53 53:2:7 53:3:3 53:4:2 53:5:2 53:6:1 53:7:1 53:8:1 53:9:1 53:10:1 54:1:54 54:2:7 54:3:3 54:4:2 54:5:2 54:6:1 54:7:1 54:8:1 54:9:1 54:10:1 55:1:55 55:2:7 55:3:3 55:4:2 55:5:2 55:6:1 55:7:1 55:8:1 55:9:1 55:10:1 56:1:56 56:2:7 56:3:3 56:4:2 56:5:2 56:6:1 56:7:1 56:8:1 56:9:1 56:10:1 57:1:57 57:2:7 57:3:3 57:4:2 57:5:2 57:6:1 57:7:1 57:8:1 57:9:1 57:10:1 58:1:58 58:2:7 58:3:3 58:4:2 58:5:2 58:6:1 58:7:1 58:8:1 58:9:1 58:10:1 59:1:59 59:2:7 59:3:3 59:4:2 59:5:2 59:6:1 59:7:1 59:8:1 59:9:1 59:10:1 60:1:60 60:2:7 60:3:3 60:4:2 60:5:2 60:6:1 60:7:1 60:8:1 60:9:1 60:10:1 61:1:61 61:2:7 61:3:3 61:4:2 61:5:2 61:6:1 61:7:1 61:8:1 61:9:1 61:10:1 62:1:62 62:2:7 62:3:3 62:4:2 62:5:2 62:6:1 62:7:1 62:8:1 62:9:1 62:10:1 63:1:63 63:2:7 63:3:3 63:4:2 63:5:2 63:6:1 63:7:1 63:8:1 63:9:1 63:10:1 64:1:64 64:2:8 64:3:4 64:4:2 64:5:2 64:6:2 64:7:1 64:8:1 64:9:1 64:10:1 65:1:65 65:2:8 65:3:4 65:4:2 65:5:2 65:6:2 65:7:1 65:8:1 65:9:1 65:10:1 66:1:66 66:2:8 66:3:4 66:4:2 66:5:2 66:6:2 66:7:1 66:8:1 66:9:1 66:10:1 67:1:67 67:2:8 67:3:4 67:4:2 67:5:2 67:6:2 67:7:1 67:8:1 67:9:1 67:10:1 68:1:68 68:2:8 68:3:4 68:4:2 68:5:2 68:6:2 68:7:1 68:8:1 68:9:1 68:10:1 69:1:69 69:2:8 69:3:4 69:4:2 69:5:2 69:6:2 69:7:1 69:8:1 69:9:1 69:10:1 70:1:70 70:2:8 70:3:4 70:4:2 70:5:2 70:6:2 70:7:1 70:8:1 70:9:1 70:10:1 71:1:71 71:2:8 71:3:4 71:4:2 71:5:2 71:6:2 71:7:1 71:8:1 71:9:1 71:10:1 72:1:72 72:2:8 72:3:4 72:4:2 72:5:2 72:6:2 72:7:1 72:8:1 72:9:1 72:10:1 73:1:73 73:2:8 73:3:4 73:4:2 73:5:2 73:6:2 73:7:1 73:8:1 73:9:1 73:10:1 74:1:74 74:2:8 74:3:4 74:4:2 74:5:2 74:6:2 74:7:1 74:8:1 74:9:1 74:10:1 75:1:75 75:2:8 75:3:4 75:4:2 75:5:2 75:6:2 75:7:1 75:8:1 75:9:1 75:10:1 76:1:76 76:2:8 76:3:4 76:4:2 76:5:2 76:6:2 76:7:1 76:8:1 76:9:1 76:10:1 77:1:77 77:2:8 77:3:4 77:4:2 77:5:2 77:6:2 77:7:1 77:8:1 77:9:1 77:10:1 78:1:78 78:2:8 78:3:4 78:4:2 78:5:2 78:6:2 78:7:1 78:8:1 78:9:1 78:10:1 79:1:79 79:2:8 79:3:4 79:4:2 79:5:2 79:6:2 79:7:1 79:8:1 79:9:1 79:10:1 80:1:80 80:2:8 80:3:4 80:4:2 80:5:2 80:6:2 80:7:1 80:8:1 80:9:1 80:10:1 81:1:81 81:2:9 81:3:4 81:4:3 81:5:2 81:6:2 81:7:1 81:8:1 81:9:1 81:10:1 82:1:82 82:2:9 82:3:4 82:4:3 82:5:2 82:6:2 82:7:1 82:8:1 82:9:1 82:10:1 83:1:83 83:2:9 83:3:4 83:4:3 83:5:2 83:6:2 83:7:1 83:8:1 83:9:1 83:10:1 84:1:84 84:2:9 84:3:4 84:4:3 84:5:2 84:6:2 84:7:1 84:8:1 84:9:1 84:10:1 85:1:85 85:2:9 85:3:4 85:4:3 85:5:2 85:6:2 85:7:1 85:8:1 85:9:1 85:10:1 86:1:86 86:2:9 86:3:4 86:4:3 86:5:2 86:6:2 86:7:1 86:8:1 86:9:1 86:10:1 87:1:87 87:2:9 87:3:4 87:4:3 87:5:2 87:6:2 87:7:1 87:8:1 87:9:1 87:10:1 88:1:88 88:2:9 88:3:4 88:4:3 88:5:2 88:6:2 88:7:1 88:8:1 88:9:1 88:10:1 89:1:89 89:2:9 89:3:4 89:4:3 89:5:2 89:6:2 89:7:1 89:8:1 89:9:1 89:10:1 90:1:90 90:2:9 90:3:4 90:4:3 90:5:2 90:6:2 90:7:1 90:8:1 90:9:1 90:10:1 91:1:91 91:2:9 91:3:4 91:4:3 91:5:2 91:6:2 91:7:1 91:8:1 91:9:1 91:10:1 92:1:92 92:2:9 92:3:4 92:4:3 92:5:2 92:6:2 92:7:1 92:8:1 92:9:1 92:10:1 93:1:93 93:2:9 93:3:4 93:4:3 93:5:2 93:6:2 93:7:1 93:8:1 93:9:1 93:10:1 94:1:94 94:2:9 94:3:4 94:4:3 94:5:2 94:6:2 94:7:1 94:8:1 94:9:1 94:10:1 95:1:95 95:2:9 95:3:4 95:4:3 95:5:2 95:6:2 95:7:1 95:8:1 95:9:1 95:10:1 96:1:96 96:2:9 96:3:4 96:4:3 96:5:2 96:6:2 96:7:1 96:8:1 96:9:1 96:10:1 97:1:97 97:2:9 97:3:4 97:4:3 97:5:2 97:6:2 97:7:1 97:8:1 97:9:1 97:10:1 98:1:98 98:2:9 98:3:4 98:4:3 98:5:2 98:6:2 98:7:1 98:8:1 98:9:1 98:10:1 99:1:99 99:2:9 99:3:4 99:4:3 99:5:2 99:6:2 99:7:1 99:8:1 99:9:1 99:10:1 100:1:100 100:2:10 100:3:4 100:4:3 100:5:2 100:6:2 100:7:1 100:8:1 100:9:1 100:10:1 101:1:101 101:2:10 101:3:4 101:4:3 101:5:2 101:6:2 101:7:1 101:8:1 101:9:1 101:10:1 102:1:102 102:2:10 102:3:4 102:4:3 102:5:2 102:6:2 102:7:1 102:8:1 102:9:1 102:10:1 103:1:103 103:2:10 103:3:4 103:4:3 103:5:2 103:6:2 103:7:1 103:8:1 103:9:1 103:10:1 104:1:104 104:2:10 104:3:4 104:4:3 104:5:2 104:6:2 104:7:1 104:8:1 104:9:1 104:10:1 105:1:105 105:2:10 105:3:4 105:4:3 105:5:2 105:6:2 105:7:1 105:8:1 105:9:1 105:10:1 106:1:106 106:2:10 106:3:4 106:4:3 106:5:2 106:6:2 106:7:1 106:8:1 106:9:1 106:10:1 107:1:107 107:2:10 107:3:4 107:4:3 107:5:2 107:6:2 107:7:1 107:8:1 107:9:1 107:10:1 108:1:108 108:2:10 108:3:4 108:4:3 108:5:2 108:6:2 108:7:1 108:8:1 108:9:1 108:10:1 109:1:109 109:2:10 109:3:4 109:4:3 109:5:2 109:6:2 109:7:1 109:8:1 109:9:1 109:10:1 110:1:110 110:2:10 110:3:4 110:4:3 110:5:2 110:6:2 110:7:1 110:8:1 110:9:1 110:10:1 111:1:111 111:2:10 111:3:4 111:4:3 111:5:2 111:6:2 111:7:1 111:8:1 111:9:1 111:10:1 112:1:112 112:2:10 112:3:4 112:4:3 112:5:2 112:6:2 112:7:1 112:8:1 112:9:1 112:10:1 113:1:113 113:2:10 113:3:4 113:4:3 113:5:2 113:6:2 113:7:1 113:8:1 113:9:1 113:10:1 114:1:114 114:2:10 114:3:4 114:4:3 114:5:2 114:6:2 114:7:1 114:8:1 114:9:1 114:10:1 115:1:115 115:2:10 115:3:4 115:4:3 115:5:2 115:6:2 115:7:1 115:8:1 115:9:1 115:10:1 116:1:116 116:2:10 116:3:4 116:4:3 116:5:2 116:6:2 116:7:1 116:8:1 116:9:1 116:10:1 117:1:117 117:2:10 117:3:4 117:4:3 117:5:2 117:6:2 117:7:1 117:8:1 117:9:1 117:10:1 118:1:118 118:2:10 118:3:4 118:4:3 118:5:2 118:6:2 118:7:1 118:8:1 118:9:1 118:10:1 119:1:119 119:2:10 119:3:4 119:4:3 119:5:2 119:6:2 119:7:1 119:8:1 119:9:1 119:10:1 120:1:120 120:2:10 120:3:4 120:4:3 120:5:2 120:6:2 120:7:1 120:8:1 120:9:1 120:10:1 121:1:121 121:2:11 121:3:4 121:4:3 121:5:2 121:6:2 121:7:1 121:8:1 121:9:1 121:10:1 122:1:122 122:2:11 122:3:4 122:4:3 122:5:2 122:6:2 122:7:1 122:8:1 122:9:1 122:10:1 123:1:123 123:2:11 123:3:4 123:4:3 123:5:2 123:6:2 123:7:1 123:8:1 123:9:1 123:10:1 124:1:124 124:2:11 124:3:4 124:4:3 124:5:2 124:6:2 124:7:1 124:8:1 124:9:1 124:10:1 125:1:125 125:2:11 125:3:5 125:4:3 125:5:2 125:6:2 125:7:1 125:8:1 125:9:1 125:10:1 126:1:126 126:2:11 126:3:5 126:4:3 126:5:2 126:6:2 126:7:1 126:8:1 126:9:1 126:10:1 127:1:127 127:2:11 127:3:5 127:4:3 127:5:2 127:6:2 127:7:1 127:8:1 127:9:1 127:10:1 128:1:128 128:2:11 128:3:5 128:4:3 128:5:2 128:6:2 128:7:2 128:8:1 128:9:1 128:10:1 129:1:129 129:2:11 129:3:5 129:4:3 129:5:2 129:6:2 129:7:2 129:8:1 129:9:1 129:10:1 130:1:130 130:2:11 130:3:5 130:4:3 130:5:2 130:6:2 130:7:2 130:8:1 130:9:1 130:10:1 131:1:131 131:2:11 131:3:5 131:4:3 131:5:2 131:6:2 131:7:2 131:8:1 131:9:1 131:10:1 132:1:132 132:2:11 132:3:5 132:4:3 132:5:2 132:6:2 132:7:2 132:8:1 132:9:1 132:10:1 133:1:133 133:2:11 133:3:5 133:4:3 133:5:2 133:6:2 133:7:2 133:8:1 133:9:1 133:10:1 134:1:134 134:2:11 134:3:5 134:4:3 134:5:2 134:6:2 134:7:2 134:8:1 134:9:1 134:10:1 135:1:135 135:2:11 135:3:5 135:4:3 135:5:2 135:6:2 135:7:2 135:8:1 135:9:1 135:10:1 136:1:136 136:2:11 136:3:5 136:4:3 136:5:2 136:6:2 136:7:2 136:8:1 136:9:1 136:10:1 137:1:137 137:2:11 137:3:5 137:4:3 137:5:2 137:6:2 137:7:2 137:8:1 137:9:1 137:10:1 138:1:138 138:2:11 138:3:5 138:4:3 138:5:2 138:6:2 138:7:2 138:8:1 138:9:1 138:10:1 139:1:139 139:2:11 139:3:5 139:4:3 139:5:2 139:6:2 139:7:2 139:8:1 139:9:1 139:10:1 140:1:140 140:2:11 140:3:5 140:4:3 140:5:2 140:6:2 140:7:2 140:8:1 140:9:1 140:10:1 141:1:141 141:2:11 141:3:5 141:4:3 141:5:2 141:6:2 141:7:2 141:8:1 141:9:1 141:10:1 142:1:142 142:2:11 142:3:5 142:4:3 142:5:2 142:6:2 142:7:2 142:8:1 142:9:1 142:10:1 143:1:143 143:2:11 143:3:5 143:4:3 143:5:2 143:6:2 143:7:2 143:8:1 143:9:1 143:10:1 144:1:144 144:2:12 144:3:5 144:4:3 144:5:2 144:6:2 144:7:2 144:8:1 144:9:1 144:10:1 145:1:145 145:2:12 145:3:5 145:4:3 145:5:2 145:6:2 145:7:2 145:8:1 145:9:1 145:10:1 146:1:146 146:2:12 146:3:5 146:4:3 146:5:2 146:6:2 146:7:2 146:8:1 146:9:1 146:10:1 147:1:147 147:2:12 147:3:5 147:4:3 147:5:2 147:6:2 147:7:2 147:8:1 147:9:1 147:10:1 148:1:148 148:2:12 148:3:5 148:4:3 148:5:2 148:6:2 148:7:2 148:8:1 148:9:1 148:10:1 149:1:149 149:2:12 149:3:5 149:4:3 149:5:2 149:6:2 149:7:2 149:8:1 149:9:1 149:10:1 150:1:150 150:2:12 150:3:5 150:4:3 150:5:2 150:6:2 150:7:2 150:8:1 150:9:1 150:10:1 151:1:151 151:2:12 151:3:5 151:4:3 151:5:2 151:6:2 151:7:2 151:8:1 151:9:1 151:10:1 152:1:152 152:2:12 152:3:5 152:4:3 152:5:2 152:6:2 152:7:2 152:8:1 152:9:1 152:10:1 153:1:153 153:2:12 153:3:5 153:4:3 153:5:2 153:6:2 153:7:2 153:8:1 153:9:1 153:10:1 154:1:154 154:2:12 154:3:5 154:4:3 154:5:2 154:6:2 154:7:2 154:8:1 154:9:1 154:10:1 155:1:155 155:2:12 155:3:5 155:4:3 155:5:2 155:6:2 155:7:2 155:8:1 155:9:1 155:10:1 156:1:156 156:2:12 156:3:5 156:4:3 156:5:2 156:6:2 156:7:2 156:8:1 156:9:1 156:10:1 157:1:157 157:2:12 157:3:5 157:4:3 157:5:2 157:6:2 157:7:2 157:8:1 157:9:1 157:10:1 158:1:158 158:2:12 158:3:5 158:4:3 158:5:2 158:6:2 158:7:2 158:8:1 158:9:1 158:10:1 159:1:159 159:2:12 159:3:5 159:4:3 159:5:2 159:6:2 159:7:2 159:8:1 159:9:1 159:10:1 160:1:160 160:2:12 160:3:5 160:4:3 160:5:2 160:6:2 160:7:2 160:8:1 160:9:1 160:10:1 161:1:161 161:2:12 161:3:5 161:4:3 161:5:2 161:6:2 161:7:2 161:8:1 161:9:1 161:10:1 162:1:162 162:2:12 162:3:5 162:4:3 162:5:2 162:6:2 162:7:2 162:8:1 162:9:1 162:10:1 163:1:163 163:2:12 163:3:5 163:4:3 163:5:2 163:6:2 163:7:2 163:8:1 163:9:1 163:10:1 164:1:164 164:2:12 164:3:5 164:4:3 164:5:2 164:6:2 164:7:2 164:8:1 164:9:1 164:10:1 165:1:165 165:2:12 165:3:5 165:4:3 165:5:2 165:6:2 165:7:2 165:8:1 165:9:1 165:10:1 166:1:166 166:2:12 166:3:5 166:4:3 166:5:2 166:6:2 166:7:2 166:8:1 166:9:1 166:10:1 167:1:167 167:2:12 167:3:5 167:4:3 167:5:2 167:6:2 167:7:2 167:8:1 167:9:1 167:10:1 168:1:168 168:2:12 168:3:5 168:4:3 168:5:2 168:6:2 168:7:2 168:8:1 168:9:1 168:10:1 169:1:169 169:2:13 169:3:5 169:4:3 169:5:2 169:6:2 169:7:2 169:8:1 169:9:1 169:10:1 170:1:170 170:2:13 170:3:5 170:4:3 170:5:2 170:6:2 170:7:2 170:8:1 170:9:1 170:10:1 171:1:171 171:2:13 171:3:5 171:4:3 171:5:2 171:6:2 171:7:2 171:8:1 171:9:1 171:10:1 172:1:172 172:2:13 172:3:5 172:4:3 172:5:2 172:6:2 172:7:2 172:8:1 172:9:1 172:10:1 173:1:173 173:2:13 173:3:5 173:4:3 173:5:2 173:6:2 173:7:2 173:8:1 173:9:1 173:10:1 174:1:174 174:2:13 174:3:5 174:4:3 174:5:2 174:6:2 174:7:2 174:8:1 174:9:1 174:10:1 175:1:175 175:2:13 175:3:5 175:4:3 175:5:2 175:6:2 175:7:2 175:8:1 175:9:1 175:10:1 176:1:176 176:2:13 176:3:5 176:4:3 176:5:2 176:6:2 176:7:2 176:8:1 176:9:1 176:10:1 177:1:177 177:2:13 177:3:5 177:4:3 177:5:2 177:6:2 177:7:2 177:8:1 177:9:1 177:10:1 178:1:178 178:2:13 178:3:5 178:4:3 178:5:2 178:6:2 178:7:2 178:8:1 178:9:1 178:10:1 179:1:179 179:2:13 179:3:5 179:4:3 179:5:2 179:6:2 179:7:2 179:8:1 179:9:1 179:10:1 180:1:180 180:2:13 180:3:5 180:4:3 180:5:2 180:6:2 180:7:2 180:8:1 180:9:1 180:10:1 181:1:181 181:2:13 181:3:5 181:4:3 181:5:2 181:6:2 181:7:2 181:8:1 181:9:1 181:10:1 182:1:182 182:2:13 182:3:5 182:4:3 182:5:2 182:6:2 182:7:2 182:8:1 182:9:1 182:10:1 183:1:183 183:2:13 183:3:5 183:4:3 183:5:2 183:6:2 183:7:2 183:8:1 183:9:1 183:10:1 184:1:184 184:2:13 184:3:5 184:4:3 184:5:2 184:6:2 184:7:2 184:8:1 184:9:1 184:10:1 185:1:185 185:2:13 185:3:5 185:4:3 185:5:2 185:6:2 185:7:2 185:8:1 185:9:1 185:10:1 186:1:186 186:2:13 186:3:5 186:4:3 186:5:2 186:6:2 186:7:2 186:8:1 186:9:1 186:10:1 187:1:187 187:2:13 187:3:5 187:4:3 187:5:2 187:6:2 187:7:2 187:8:1 187:9:1 187:10:1 188:1:188 188:2:13 188:3:5 188:4:3 188:5:2 188:6:2 188:7:2 188:8:1 188:9:1 188:10:1 189:1:189 189:2:13 189:3:5 189:4:3 189:5:2 189:6:2 189:7:2 189:8:1 189:9:1 189:10:1 190:1:190 190:2:13 190:3:5 190:4:3 190:5:2 190:6:2 190:7:2 190:8:1 190:9:1 190:10:1 191:1:191 191:2:13 191:3:5 191:4:3 191:5:2 191:6:2 191:7:2 191:8:1 191:9:1 191:10:1 192:1:192 192:2:13 192:3:5 192:4:3 192:5:2 192:6:2 192:7:2 192:8:1 192:9:1 192:10:1 193:1:193 193:2:13 193:3:5 193:4:3 193:5:2 193:6:2 193:7:2 193:8:1 193:9:1 193:10:1 194:1:194 194:2:13 194:3:5 194:4:3 194:5:2 194:6:2 194:7:2 194:8:1 194:9:1 194:10:1 195:1:195 195:2:13 195:3:5 195:4:3 195:5:2 195:6:2 195:7:2 195:8:1 195:9:1 195:10:1 196:1:196 196:2:14 196:3:5 196:4:3 196:5:2 196:6:2 196:7:2 196:8:1 196:9:1 196:10:1 197:1:197 197:2:14 197:3:5 197:4:3 197:5:2 197:6:2 197:7:2 197:8:1 197:9:1 197:10:1 198:1:198 198:2:14 198:3:5 198:4:3 198:5:2 198:6:2 198:7:2 198:8:1 198:9:1 198:10:1 199:1:199 199:2:14 199:3:5 199:4:3 199:5:2 199:6:2 199:7:2 199:8:1 199:9:1 199:10:1 200:1:200 200:2:14 200:3:5 200:4:3 200:5:2 200:6:2 200:7:2 200:8:1 200:9:1 200:10:1 201:1:201 201:2:14 201:3:5 201:4:3 201:5:2 201:6:2 201:7:2 201:8:1 201:9:1 201:10:1 202:1:202 202:2:14 202:3:5 202:4:3 202:5:2 202:6:2 202:7:2 202:8:1 202:9:1 202:10:1 203:1:203 203:2:14 203:3:5 203:4:3 203:5:2 203:6:2 203:7:2 203:8:1 203:9:1 203:10:1 204:1:204 204:2:14 204:3:5 204:4:3 204:5:2 204:6:2 204:7:2 204:8:1 204:9:1 204:10:1 205:1:205 205:2:14 205:3:5 205:4:3 205:5:2 205:6:2 205:7:2 205:8:1 205:9:1 205:10:1 206:1:206 206:2:14 206:3:5 206:4:3 206:5:2 206:6:2 206:7:2 206:8:1 206:9:1 206:10:1 207:1:207 207:2:14 207:3:5 207:4:3 207:5:2 207:6:2 207:7:2 207:8:1 207:9:1 207:10:1 208:1:208 208:2:14 208:3:5 208:4:3 208:5:2 208:6:2 208:7:2 208:8:1 208:9:1 208:10:1 209:1:209 209:2:14 209:3:5 209:4:3 209:5:2 209:6:2 209:7:2 209:8:1 209:9:1 209:10:1 210:1:210 210:2:14 210:3:5 210:4:3 210:5:2 210:6:2 210:7:2 210:8:1 210:9:1 210:10:1 211:1:211 211:2:14 211:3:5 211:4:3 211:5:2 211:6:2 211:7:2 211:8:1 211:9:1 211:10:1 212:1:212 212:2:14 212:3:5 212:4:3 212:5:2 212:6:2 212:7:2 212:8:1 212:9:1 212:10:1 213:1:213 213:2:14 213:3:5 213:4:3 213:5:2 213:6:2 213:7:2 213:8:1 213:9:1 213:10:1 214:1:214 214:2:14 214:3:5 214:4:3 214:5:2 214:6:2 214:7:2 214:8:1 214:9:1 214:10:1 215:1:215 215:2:14 215:3:5 215:4:3 215:5:2 215:6:2 215:7:2 215:8:1 215:9:1 215:10:1 216:1:216 216:2:14 216:3:6 216:4:3 216:5:2 216:6:2 216:7:2 216:8:1 216:9:1 216:10:1 217:1:217 217:2:14 217:3:6 217:4:3 217:5:2 217:6:2 217:7:2 217:8:1 217:9:1 217:10:1 218:1:218 218:2:14 218:3:6 218:4:3 218:5:2 218:6:2 218:7:2 218:8:1 218:9:1 218:10:1 219:1:219 219:2:14 219:3:6 219:4:3 219:5:2 219:6:2 219:7:2 219:8:1 219:9:1 219:10:1 220:1:220 220:2:14 220:3:6 220:4:3 220:5:2 220:6:2 220:7:2 220:8:1 220:9:1 220:10:1 221:1:221 221:2:14 221:3:6 221:4:3 221:5:2 221:6:2 221:7:2 221:8:1 221:9:1 221:10:1 222:1:222 222:2:14 222:3:6 222:4:3 222:5:2 222:6:2 222:7:2 222:8:1 222:9:1 222:10:1 223:1:223 223:2:14 223:3:6 223:4:3 223:5:2 223:6:2 223:7:2 223:8:1 223:9:1 223:10:1 224:1:224 224:2:14 224:3:6 224:4:3 224:5:2 224:6:2 224:7:2 224:8:1 224:9:1 224:10:1 225:1:225 225:2:15 225:3:6 225:4:3 225:5:2 225:6:2 225:7:2 225:8:1 225:9:1 225:10:1 226:1:226 226:2:15 226:3:6 226:4:3 226:5:2 226:6:2 226:7:2 226:8:1 226:9:1 226:10:1 227:1:227 227:2:15 227:3:6 227:4:3 227:5:2 227:6:2 227:7:2 227:8:1 227:9:1 227:10:1 228:1:228 228:2:15 228:3:6 228:4:3 228:5:2 228:6:2 228:7:2 228:8:1 228:9:1 228:10:1 229:1:229 229:2:15 229:3:6 229:4:3 229:5:2 229:6:2 229:7:2 229:8:1 229:9:1 229:10:1 230:1:230 230:2:15 230:3:6 230:4:3 230:5:2 230:6:2 230:7:2 230:8:1 230:9:1 230:10:1 231:1:231 231:2:15 231:3:6 231:4:3 231:5:2 231:6:2 231:7:2 231:8:1 231:9:1 231:10:1 232:1:232 232:2:15 232:3:6 232:4:3 232:5:2 232:6:2 232:7:2 232:8:1 232:9:1 232:10:1 233:1:233 233:2:15 233:3:6 233:4:3 233:5:2 233:6:2 233:7:2 233:8:1 233:9:1 233:10:1 234:1:234 234:2:15 234:3:6 234:4:3 234:5:2 234:6:2 234:7:2 234:8:1 234:9:1 234:10:1 235:1:235 235:2:15 235:3:6 235:4:3 235:5:2 235:6:2 235:7:2 235:8:1 235:9:1 235:10:1 236:1:236 236:2:15 236:3:6 236:4:3 236:5:2 236:6:2 236:7:2 236:8:1 236:9:1 236:10:1 237:1:237 237:2:15 237:3:6 237:4:3 237:5:2 237:6:2 237:7:2 237:8:1 237:9:1 237:10:1 238:1:238 238:2:15 238:3:6 238:4:3 238:5:2 238:6:2 238:7:2 238:8:1 238:9:1 238:10:1 239:1:239 239:2:15 239:3:6 239:4:3 239:5:2 239:6:2 239:7:2 239:8:1 239:9:1 239:10:1 240:1:240 240:2:15 240:3:6 240:4:3 240:5:2 240:6:2 240:7:2 240:8:1 240:9:1 240:10:1 241:1:241 241:2:15 241:3:6 241:4:3 241:5:2 241:6:2 241:7:2 241:8:1 241:9:1 241:10:1 242:1:242 242:2:15 242:3:6 242:4:3 242:5:2 242:6:2 242:7:2 242:8:1 242:9:1 242:10:1 243:1:243 243:2:15 243:3:6 243:4:3 243:5:3 243:6:2 243:7:2 243:8:1 243:9:1 243:10:1 244:1:244 244:2:15 244:3:6 244:4:3 244:5:3 244:6:2 244:7:2 244:8:1 244:9:1 244:10:1 245:1:245 245:2:15 245:3:6 245:4:3 245:5:3 245:6:2 245:7:2 245:8:1 245:9:1 245:10:1 246:1:246 246:2:15 246:3:6 246:4:3 246:5:3 246:6:2 246:7:2 246:8:1 246:9:1 246:10:1 247:1:247 247:2:15 247:3:6 247:4:3 247:5:3 247:6:2 247:7:2 247:8:1 247:9:1 247:10:1 248:1:248 248:2:15 248:3:6 248:4:3 248:5:3 248:6:2 248:7:2 248:8:1 248:9:1 248:10:1 249:1:249 249:2:15 249:3:6 249:4:3 249:5:3 249:6:2 249:7:2 249:8:1 249:9:1 249:10:1 250:1:250 250:2:15 250:3:6 250:4:3 250:5:3 250:6:2 250:7:2 250:8:1 250:9:1 250:10:1 251:1:251 251:2:15 251:3:6 251:4:3 251:5:3 251:6:2 251:7:2 251:8:1 251:9:1 251:10:1 252:1:252 252:2:15 252:3:6 252:4:3 252:5:3 252:6:2 252:7:2 252:8:1 252:9:1 252:10:1 253:1:253 253:2:15 253:3:6 253:4:3 253:5:3 253:6:2 253:7:2 253:8:1 253:9:1 253:10:1 254:1:254 254:2:15 254:3:6 254:4:3 254:5:3 254:6:2 254:7:2 254:8:1 254:9:1 254:10:1 255:1:255 255:2:15 255:3:6 255:4:3 255:5:3 255:6:2 255:7:2 255:8:1 255:9:1 255:10:1 256:1:256 256:2:16 256:3:6 256:4:4 256:5:3 256:6:2 256:7:2 256:8:2 256:9:1 256:10:1 257:1:257 257:2:16 257:3:6 257:4:4 257:5:3 257:6:2 257:7:2 257:8:2 257:9:1 257:10:1 258:1:258 258:2:16 258:3:6 258:4:4 258:5:3 258:6:2 258:7:2 258:8:2 258:9:1 258:10:1 259:1:259 259:2:16 259:3:6 259:4:4 259:5:3 259:6:2 259:7:2 259:8:2 259:9:1 259:10:1 260:1:260 260:2:16 260:3:6 260:4:4 260:5:3 260:6:2 260:7:2 260:8:2 260:9:1 260:10:1 261:1:261 261:2:16 261:3:6 261:4:4 261:5:3 261:6:2 261:7:2 261:8:2 261:9:1 261:10:1 262:1:262 262:2:16 262:3:6 262:4:4 262:5:3 262:6:2 262:7:2 262:8:2 262:9:1 262:10:1 263:1:263 263:2:16 263:3:6 263:4:4 263:5:3 263:6:2 263:7:2 263:8:2 263:9:1 263:10:1 264:1:264 264:2:16 264:3:6 264:4:4 264:5:3 264:6:2 264:7:2 264:8:2 264:9:1 264:10:1 265:1:265 265:2:16 265:3:6 265:4:4 265:5:3 265:6:2 265:7:2 265:8:2 265:9:1 265:10:1 266:1:266 266:2:16 266:3:6 266:4:4 266:5:3 266:6:2 266:7:2 266:8:2 266:9:1 266:10:1 267:1:267 267:2:16 267:3:6 267:4:4 267:5:3 267:6:2 267:7:2 267:8:2 267:9:1 267:10:1 268:1:268 268:2:16 268:3:6 268:4:4 268:5:3 268:6:2 268:7:2 268:8:2 268:9:1 268:10:1 269:1:269 269:2:16 269:3:6 269:4:4 269:5:3 269:6:2 269:7:2 269:8:2 269:9:1 269:10:1 270:1:270 270:2:16 270:3:6 270:4:4 270:5:3 270:6:2 270:7:2 270:8:2 270:9:1 270:10:1 271:1:271 271:2:16 271:3:6 271:4:4 271:5:3 271:6:2 271:7:2 271:8:2 271:9:1 271:10:1 272:1:272 272:2:16 272:3:6 272:4:4 272:5:3 272:6:2 272:7:2 272:8:2 272:9:1 272:10:1 273:1:273 273:2:16 273:3:6 273:4:4 273:5:3 273:6:2 273:7:2 273:8:2 273:9:1 273:10:1 274:1:274 274:2:16 274:3:6 274:4:4 274:5:3 274:6:2 274:7:2 274:8:2 274:9:1 274:10:1 275:1:275 275:2:16 275:3:6 275:4:4 275:5:3 275:6:2 275:7:2 275:8:2 275:9:1 275:10:1 276:1:276 276:2:16 276:3:6 276:4:4 276:5:3 276:6:2 276:7:2 276:8:2 276:9:1 276:10:1 277:1:277 277:2:16 277:3:6 277:4:4 277:5:3 277:6:2 277:7:2 277:8:2 277:9:1 277:10:1 278:1:278 278:2:16 278:3:6 278:4:4 278:5:3 278:6:2 278:7:2 278:8:2 278:9:1 278:10:1 279:1:279 279:2:16 279:3:6 279:4:4 279:5:3 279:6:2 279:7:2 279:8:2 279:9:1 279:10:1 280:1:280 280:2:16 280:3:6 280:4:4 280:5:3 280:6:2 280:7:2 280:8:2 280:9:1 280:10:1 281:1:281 281:2:16 281:3:6 281:4:4 281:5:3 281:6:2 281:7:2 281:8:2 281:9:1 281:10:1 282:1:282 282:2:16 282:3:6 282:4:4 282:5:3 282:6:2 282:7:2 282:8:2 282:9:1 282:10:1 283:1:283 283:2:16 283:3:6 283:4:4 283:5:3 283:6:2 283:7:2 283:8:2 283:9:1 283:10:1 284:1:284 284:2:16 284:3:6 284:4:4 284:5:3 284:6:2 284:7:2 284:8:2 284:9:1 284:10:1 285:1:285 285:2:16 285:3:6 285:4:4 285:5:3 285:6:2 285:7:2 285:8:2 285:9:1 285:10:1 286:1:286 286:2:16 286:3:6 286:4:4 286:5:3 286:6:2 286:7:2 286:8:2 286:9:1 286:10:1 287:1:287 287:2:16 287:3:6 287:4:4 287:5:3 287:6:2 287:7:2 287:8:2 287:9:1 287:10:1 288:1:288 288:2:16 288:3:6 288:4:4 288:5:3 288:6:2 288:7:2 288:8:2 288:9:1 288:10:1 289:1:289 289:2:17 289:3:6 289:4:4 289:5:3 289:6:2 289:7:2 289:8:2 289:9:1 289:10:1 290:1:290 290:2:17 290:3:6 290:4:4 290:5:3 290:6:2 290:7:2 290:8:2 290:9:1 290:10:1 291:1:291 291:2:17 291:3:6 291:4:4 291:5:3 291:6:2 291:7:2 291:8:2 291:9:1 291:10:1 292:1:292 292:2:17 292:3:6 292:4:4 292:5:3 292:6:2 292:7:2 292:8:2 292:9:1 292:10:1 293:1:293 293:2:17 293:3:6 293:4:4 293:5:3 293:6:2 293:7:2 293:8:2 293:9:1 293:10:1 294:1:294 294:2:17 294:3:6 294:4:4 294:5:3 294:6:2 294:7:2 294:8:2 294:9:1 294:10:1 295:1:295 295:2:17 295:3:6 295:4:4 295:5:3 295:6:2 295:7:2 295:8:2 295:9:1 295:10:1 296:1:296 296:2:17 296:3:6 296:4:4 296:5:3 296:6:2 296:7:2 296:8:2 296:9:1 296:10:1 297:1:297 297:2:17 297:3:6 297:4:4 297:5:3 297:6:2 297:7:2 297:8:2 297:9:1 297:10:1 298:1:298 298:2:17 298:3:6 298:4:4 298:5:3 298:6:2 298:7:2 298:8:2 298:9:1 298:10:1 299:1:299 299:2:17 299:3:6 299:4:4 299:5:3 299:6:2 299:7:2 299:8:2 299:9:1 299:10:1 300:1:300 300:2:17 300:3:6 300:4:4 300:5:3 300:6:2 300:7:2 300:8:2 300:9:1 300:10:1 301:1:301 301:2:17 301:3:6 301:4:4 301:5:3 301:6:2 301:7:2 301:8:2 301:9:1 301:10:1 302:1:302 302:2:17 302:3:6 302:4:4 302:5:3 302:6:2 302:7:2 302:8:2 302:9:1 302:10:1 303:1:303 303:2:17 303:3:6 303:4:4 303:5:3 303:6:2 303:7:2 303:8:2 303:9:1 303:10:1 304:1:304 304:2:17 304:3:6 304:4:4 304:5:3 304:6:2 304:7:2 304:8:2 304:9:1 304:10:1 305:1:305 305:2:17 305:3:6 305:4:4 305:5:3 305:6:2 305:7:2 305:8:2 305:9:1 305:10:1 306:1:306 306:2:17 306:3:6 306:4:4 306:5:3 306:6:2 306:7:2 306:8:2 306:9:1 306:10:1 307:1:307 307:2:17 307:3:6 307:4:4 307:5:3 307:6:2 307:7:2 307:8:2 307:9:1 307:10:1 308:1:308 308:2:17 308:3:6 308:4:4 308:5:3 308:6:2 308:7:2 308:8:2 308:9:1 308:10:1 309:1:309 309:2:17 309:3:6 309:4:4 309:5:3 309:6:2 309:7:2 309:8:2 309:9:1 309:10:1 310:1:310 310:2:17 310:3:6 310:4:4 310:5:3 310:6:2 310:7:2 310:8:2 310:9:1 310:10:1 311:1:311 311:2:17 311:3:6 311:4:4 311:5:3 311:6:2 311:7:2 311:8:2 311:9:1 311:10:1 312:1:312 312:2:17 312:3:6 312:4:4 312:5:3 312:6:2 312:7:2 312:8:2 312:9:1 312:10:1 313:1:313 313:2:17 313:3:6 313:4:4 313:5:3 313:6:2 313:7:2 313:8:2 313:9:1 313:10:1 314:1:314 314:2:17 314:3:6 314:4:4 314:5:3 314:6:2 314:7:2 314:8:2 314:9:1 314:10:1 315:1:315 315:2:17 315:3:6 315:4:4 315:5:3 315:6:2 315:7:2 315:8:2 315:9:1 315:10:1 316:1:316 316:2:17 316:3:6 316:4:4 316:5:3 316:6:2 316:7:2 316:8:2 316:9:1 316:10:1 317:1:317 317:2:17 317:3:6 317:4:4 317:5:3 317:6:2 317:7:2 317:8:2 317:9:1 317:10:1 318:1:318 318:2:17 318:3:6 318:4:4 318:5:3 318:6:2 318:7:2 318:8:2 318:9:1 318:10:1 319:1:319 319:2:17 319:3:6 319:4:4 319:5:3 319:6:2 319:7:2 319:8:2 319:9:1 319:10:1 320:1:320 320:2:17 320:3:6 320:4:4 320:5:3 320:6:2 320:7:2 320:8:2 320:9:1 320:10:1 321:1:321 321:2:17 321:3:6 321:4:4 321:5:3 321:6:2 321:7:2 321:8:2 321:9:1 321:10:1 322:1:322 322:2:17 322:3:6 322:4:4 322:5:3 322:6:2 322:7:2 322:8:2 322:9:1 322:10:1 323:1:323 323:2:17 323:3:6 323:4:4 323:5:3 323:6:2 323:7:2 323:8:2 323:9:1 323:10:1 324:1:324 324:2:18 324:3:6 324:4:4 324:5:3 324:6:2 324:7:2 324:8:2 324:9:1 324:10:1 325:1:325 325:2:18 325:3:6 325:4:4 325:5:3 325:6:2 325:7:2 325:8:2 325:9:1 325:10:1 326:1:326 326:2:18 326:3:6 326:4:4 326:5:3 326:6:2 326:7:2 326:8:2 326:9:1 326:10:1 327:1:327 327:2:18 327:3:6 327:4:4 327:5:3 327:6:2 327:7:2 327:8:2 327:9:1 327:10:1 328:1:328 328:2:18 328:3:6 328:4:4 328:5:3 328:6:2 328:7:2 328:8:2 328:9:1 328:10:1 329:1:329 329:2:18 329:3:6 329:4:4 329:5:3 329:6:2 329:7:2 329:8:2 329:9:1 329:10:1 330:1:330 330:2:18 330:3:6 330:4:4 330:5:3 330:6:2 330:7:2 330:8:2 330:9:1 330:10:1 331:1:331 331:2:18 331:3:6 331:4:4 331:5:3 331:6:2 331:7:2 331:8:2 331:9:1 331:10:1 332:1:332 332:2:18 332:3:6 332:4:4 332:5:3 332:6:2 332:7:2 332:8:2 332:9:1 332:10:1 333:1:333 333:2:18 333:3:6 333:4:4 333:5:3 333:6:2 333:7:2 333:8:2 333:9:1 333:10:1 334:1:334 334:2:18 334:3:6 334:4:4 334:5:3 334:6:2 334:7:2 334:8:2 334:9:1 334:10:1 335:1:335 335:2:18 335:3:6 335:4:4 335:5:3 335:6:2 335:7:2 335:8:2 335:9:1 335:10:1 336:1:336 336:2:18 336:3:6 336:4:4 336:5:3 336:6:2 336:7:2 336:8:2 336:9:1 336:10:1 337:1:337 337:2:18 337:3:6 337:4:4 337:5:3 337:6:2 337:7:2 337:8:2 337:9:1 337:10:1 338:1:338 338:2:18 338:3:6 338:4:4 338:5:3 338:6:2 338:7:2 338:8:2 338:9:1 338:10:1 339:1:339 339:2:18 339:3:6 339:4:4 339:5:3 339:6:2 339:7:2 339:8:2 339:9:1 339:10:1 340:1:340 340:2:18 340:3:6 340:4:4 340:5:3 340:6:2 340:7:2 340:8:2 340:9:1 340:10:1 341:1:341 341:2:18 341:3:6 341:4:4 341:5:3 341:6:2 341:7:2 341:8:2 341:9:1 341:10:1 342:1:342 342:2:18 342:3:6 342:4:4 342:5:3 342:6:2 342:7:2 342:8:2 342:9:1 342:10:1 343:1:343 343:2:18 343:3:7 343:4:4 343:5:3 343:6:2 343:7:2 343:8:2 343:9:1 343:10:1 344:1:344 344:2:18 344:3:7 344:4:4 344:5:3 344:6:2 344:7:2 344:8:2 344:9:1 344:10:1 345:1:345 345:2:18 345:3:7 345:4:4 345:5:3 345:6:2 345:7:2 345:8:2 345:9:1 345:10:1 346:1:346 346:2:18 346:3:7 346:4:4 346:5:3 346:6:2 346:7:2 346:8:2 346:9:1 346:10:1 347:1:347 347:2:18 347:3:7 347:4:4 347:5:3 347:6:2 347:7:2 347:8:2 347:9:1 347:10:1 348:1:348 348:2:18 348:3:7 348:4:4 348:5:3 348:6:2 348:7:2 348:8:2 348:9:1 348:10:1 349:1:349 349:2:18 349:3:7 349:4:4 349:5:3 349:6:2 349:7:2 349:8:2 349:9:1 349:10:1 350:1:350 350:2:18 350:3:7 350:4:4 350:5:3 350:6:2 350:7:2 350:8:2 350:9:1 350:10:1 351:1:351 351:2:18 351:3:7 351:4:4 351:5:3 351:6:2 351:7:2 351:8:2 351:9:1 351:10:1 352:1:352 352:2:18 352:3:7 352:4:4 352:5:3 352:6:2 352:7:2 352:8:2 352:9:1 352:10:1 353:1:353 353:2:18 353:3:7 353:4:4 353:5:3 353:6:2 353:7:2 353:8:2 353:9:1 353:10:1 354:1:354 354:2:18 354:3:7 354:4:4 354:5:3 354:6:2 354:7:2 354:8:2 354:9:1 354:10:1 355:1:355 355:2:18 355:3:7 355:4:4 355:5:3 355:6:2 355:7:2 355:8:2 355:9:1 355:10:1 356:1:356 356:2:18 356:3:7 356:4:4 356:5:3 356:6:2 356:7:2 356:8:2 356:9:1 356:10:1 357:1:357 357:2:18 357:3:7 357:4:4 357:5:3 357:6:2 357:7:2 357:8:2 357:9:1 357:10:1 358:1:358 358:2:18 358:3:7 358:4:4 358:5:3 358:6:2 358:7:2 358:8:2 358:9:1 358:10:1 359:1:359 359:2:18 359:3:7 359:4:4 359:5:3 359:6:2 359:7:2 359:8:2 359:9:1 359:10:1 360:1:360 360:2:18 360:3:7 360:4:4 360:5:3 360:6:2 360:7:2 360:8:2 360:9:1 360:10:1 361:1:361 361:2:19 361:3:7 361:4:4 361:5:3 361:6:2 361:7:2 361:8:2 361:9:1 361:10:1 362:1:362 362:2:19 362:3:7 362:4:4 362:5:3 362:6:2 362:7:2 362:8:2 362:9:1 362:10:1 363:1:363 363:2:19 363:3:7 363:4:4 363:5:3 363:6:2 363:7:2 363:8:2 363:9:1 363:10:1 364:1:364 364:2:19 364:3:7 364:4:4 364:5:3 364:6:2 364:7:2 364:8:2 364:9:1 364:10:1 365:1:365 365:2:19 365:3:7 365:4:4 365:5:3 365:6:2 365:7:2 365:8:2 365:9:1 365:10:1 366:1:366 366:2:19 366:3:7 366:4:4 366:5:3 366:6:2 366:7:2 366:8:2 366:9:1 366:10:1 367:1:367 367:2:19 367:3:7 367:4:4 367:5:3 367:6:2 367:7:2 367:8:2 367:9:1 367:10:1 368:1:368 368:2:19 368:3:7 368:4:4 368:5:3 368:6:2 368:7:2 368:8:2 368:9:1 368:10:1 369:1:369 369:2:19 369:3:7 369:4:4 369:5:3 369:6:2 369:7:2 369:8:2 369:9:1 369:10:1 370:1:370 370:2:19 370:3:7 370:4:4 370:5:3 370:6:2 370:7:2 370:8:2 370:9:1 370:10:1 371:1:371 371:2:19 371:3:7 371:4:4 371:5:3 371:6:2 371:7:2 371:8:2 371:9:1 371:10:1 372:1:372 372:2:19 372:3:7 372:4:4 372:5:3 372:6:2 372:7:2 372:8:2 372:9:1 372:10:1 373:1:373 373:2:19 373:3:7 373:4:4 373:5:3 373:6:2 373:7:2 373:8:2 373:9:1 373:10:1 374:1:374 374:2:19 374:3:7 374:4:4 374:5:3 374:6:2 374:7:2 374:8:2 374:9:1 374:10:1 375:1:375 375:2:19 375:3:7 375:4:4 375:5:3 375:6:2 375:7:2 375:8:2 375:9:1 375:10:1 376:1:376 376:2:19 376:3:7 376:4:4 376:5:3 376:6:2 376:7:2 376:8:2 376:9:1 376:10:1 377:1:377 377:2:19 377:3:7 377:4:4 377:5:3 377:6:2 377:7:2 377:8:2 377:9:1 377:10:1 378:1:378 378:2:19 378:3:7 378:4:4 378:5:3 378:6:2 378:7:2 378:8:2 378:9:1 378:10:1 379:1:379 379:2:19 379:3:7 379:4:4 379:5:3 379:6:2 379:7:2 379:8:2 379:9:1 379:10:1 380:1:380 380:2:19 380:3:7 380:4:4 380:5:3 380:6:2 380:7:2 380:8:2 380:9:1 380:10:1 381:1:381 381:2:19 381:3:7 381:4:4 381:5:3 381:6:2 381:7:2 381:8:2 381:9:1 381:10:1 382:1:382 382:2:19 382:3:7 382:4:4 382:5:3 382:6:2 382:7:2 382:8:2 382:9:1 382:10:1 383:1:383 383:2:19 383:3:7 383:4:4 383:5:3 383:6:2 383:7:2 383:8:2 383:9:1 383:10:1 384:1:384 384:2:19 384:3:7 384:4:4 384:5:3 384:6:2 384:7:2 384:8:2 384:9:1 384:10:1 385:1:385 385:2:19 385:3:7 385:4:4 385:5:3 385:6:2 385:7:2 385:8:2 385:9:1 385:10:1 386:1:386 386:2:19 386:3:7 386:4:4 386:5:3 386:6:2 386:7:2 386:8:2 386:9:1 386:10:1 387:1:387 387:2:19 387:3:7 387:4:4 387:5:3 387:6:2 387:7:2 387:8:2 387:9:1 387:10:1 388:1:388 388:2:19 388:3:7 388:4:4 388:5:3 388:6:2 388:7:2 388:8:2 388:9:1 388:10:1 389:1:389 389:2:19 389:3:7 389:4:4 389:5:3 389:6:2 389:7:2 389:8:2 389:9:1 389:10:1 390:1:390 390:2:19 390:3:7 390:4:4 390:5:3 390:6:2 390:7:2 390:8:2 390:9:1 390:10:1 391:1:391 391:2:19 391:3:7 391:4:4 391:5:3 391:6:2 391:7:2 391:8:2 391:9:1 391:10:1 392:1:392 392:2:19 392:3:7 392:4:4 392:5:3 392:6:2 392:7:2 392:8:2 392:9:1 392:10:1 393:1:393 393:2:19 393:3:7 393:4:4 393:5:3 393:6:2 393:7:2 393:8:2 393:9:1 393:10:1 394:1:394 394:2:19 394:3:7 394:4:4 394:5:3 394:6:2 394:7:2 394:8:2 394:9:1 394:10:1 395:1:395 395:2:19 395:3:7 395:4:4 395:5:3 395:6:2 395:7:2 395:8:2 395:9:1 395:10:1 396:1:396 396:2:19 396:3:7 396:4:4 396:5:3 396:6:2 396:7:2 396:8:2 396:9:1 396:10:1 397:1:397 397:2:19 397:3:7 397:4:4 397:5:3 397:6:2 397:7:2 397:8:2 397:9:1 397:10:1 398:1:398 398:2:19 398:3:7 398:4:4 398:5:3 398:6:2 398:7:2 398:8:2 398:9:1 398:10:1 399:1:399 399:2:19 399:3:7 399:4:4 399:5:3 399:6:2 399:7:2 399:8:2 399:9:1 399:10:1 400:1:400 400:2:20 400:3:7 400:4:4 400:5:3 400:6:2 400:7:2 400:8:2 400:9:1 400:10:1 401:1:401 401:2:20 401:3:7 401:4:4 401:5:3 401:6:2 401:7:2 401:8:2 401:9:1 401:10:1 402:1:402 402:2:20 402:3:7 402:4:4 402:5:3 402:6:2 402:7:2 402:8:2 402:9:1 402:10:1 403:1:403 403:2:20 403:3:7 403:4:4 403:5:3 403:6:2 403:7:2 403:8:2 403:9:1 403:10:1 404:1:404 404:2:20 404:3:7 404:4:4 404:5:3 404:6:2 404:7:2 404:8:2 404:9:1 404:10:1 405:1:405 405:2:20 405:3:7 405:4:4 405:5:3 405:6:2 405:7:2 405:8:2 405:9:1 405:10:1 406:1:406 406:2:20 406:3:7 406:4:4 406:5:3 406:6:2 406:7:2 406:8:2 406:9:1 406:10:1 407:1:407 407:2:20 407:3:7 407:4:4 407:5:3 407:6:2 407:7:2 407:8:2 407:9:1 407:10:1 408:1:408 408:2:20 408:3:7 408:4:4 408:5:3 408:6:2 408:7:2 408:8:2 408:9:1 408:10:1 409:1:409 409:2:20 409:3:7 409:4:4 409:5:3 409:6:2 409:7:2 409:8:2 409:9:1 409:10:1 410:1:410 410:2:20 410:3:7 410:4:4 410:5:3 410:6:2 410:7:2 410:8:2 410:9:1 410:10:1 411:1:411 411:2:20 411:3:7 411:4:4 411:5:3 411:6:2 411:7:2 411:8:2 411:9:1 411:10:1 412:1:412 412:2:20 412:3:7 412:4:4 412:5:3 412:6:2 412:7:2 412:8:2 412:9:1 412:10:1 413:1:413 413:2:20 413:3:7 413:4:4 413:5:3 413:6:2 413:7:2 413:8:2 413:9:1 413:10:1 414:1:414 414:2:20 414:3:7 414:4:4 414:5:3 414:6:2 414:7:2 414:8:2 414:9:1 414:10:1 415:1:415 415:2:20 415:3:7 415:4:4 415:5:3 415:6:2 415:7:2 415:8:2 415:9:1 415:10:1 416:1:416 416:2:20 416:3:7 416:4:4 416:5:3 416:6:2 416:7:2 416:8:2 416:9:1 416:10:1 417:1:417 417:2:20 417:3:7 417:4:4 417:5:3 417:6:2 417:7:2 417:8:2 417:9:1 417:10:1 418:1:418 418:2:20 418:3:7 418:4:4 418:5:3 418:6:2 418:7:2 418:8:2 418:9:1 418:10:1 419:1:419 419:2:20 419:3:7 419:4:4 419:5:3 419:6:2 419:7:2 419:8:2 419:9:1 419:10:1 420:1:420 420:2:20 420:3:7 420:4:4 420:5:3 420:6:2 420:7:2 420:8:2 420:9:1 420:10:1 421:1:421 421:2:20 421:3:7 421:4:4 421:5:3 421:6:2 421:7:2 421:8:2 421:9:1 421:10:1 422:1:422 422:2:20 422:3:7 422:4:4 422:5:3 422:6:2 422:7:2 422:8:2 422:9:1 422:10:1 423:1:423 423:2:20 423:3:7 423:4:4 423:5:3 423:6:2 423:7:2 423:8:2 423:9:1 423:10:1 424:1:424 424:2:20 424:3:7 424:4:4 424:5:3 424:6:2 424:7:2 424:8:2 424:9:1 424:10:1 425:1:425 425:2:20 425:3:7 425:4:4 425:5:3 425:6:2 425:7:2 425:8:2 425:9:1 425:10:1 426:1:426 426:2:20 426:3:7 426:4:4 426:5:3 426:6:2 426:7:2 426:8:2 426:9:1 426:10:1 427:1:427 427:2:20 427:3:7 427:4:4 427:5:3 427:6:2 427:7:2 427:8:2 427:9:1 427:10:1 428:1:428 428:2:20 428:3:7 428:4:4 428:5:3 428:6:2 428:7:2 428:8:2 428:9:1 428:10:1 429:1:429 429:2:20 429:3:7 429:4:4 429:5:3 429:6:2 429:7:2 429:8:2 429:9:1 429:10:1 430:1:430 430:2:20 430:3:7 430:4:4 430:5:3 430:6:2 430:7:2 430:8:2 430:9:1 430:10:1 431:1:431 431:2:20 431:3:7 431:4:4 431:5:3 431:6:2 431:7:2 431:8:2 431:9:1 431:10:1 432:1:432 432:2:20 432:3:7 432:4:4 432:5:3 432:6:2 432:7:2 432:8:2 432:9:1 432:10:1 433:1:433 433:2:20 433:3:7 433:4:4 433:5:3 433:6:2 433:7:2 433:8:2 433:9:1 433:10:1 434:1:434 434:2:20 434:3:7 434:4:4 434:5:3 434:6:2 434:7:2 434:8:2 434:9:1 434:10:1 435:1:435 435:2:20 435:3:7 435:4:4 435:5:3 435:6:2 435:7:2 435:8:2 435:9:1 435:10:1 436:1:436 436:2:20 436:3:7 436:4:4 436:5:3 436:6:2 436:7:2 436:8:2 436:9:1 436:10:1 437:1:437 437:2:20 437:3:7 437:4:4 437:5:3 437:6:2 437:7:2 437:8:2 437:9:1 437:10:1 438:1:438 438:2:20 438:3:7 438:4:4 438:5:3 438:6:2 438:7:2 438:8:2 438:9:1 438:10:1 439:1:439 439:2:20 439:3:7 439:4:4 439:5:3 439:6:2 439:7:2 439:8:2 439:9:1 439:10:1 440:1:440 440:2:20 440:3:7 440:4:4 440:5:3 440:6:2 440:7:2 440:8:2 440:9:1 440:10:1 441:1:441 441:2:21 441:3:7 441:4:4 441:5:3 441:6:2 441:7:2 441:8:2 441:9:1 441:10:1 442:1:442 442:2:21 442:3:7 442:4:4 442:5:3 442:6:2 442:7:2 442:8:2 442:9:1 442:10:1 443:1:443 443:2:21 443:3:7 443:4:4 443:5:3 443:6:2 443:7:2 443:8:2 443:9:1 443:10:1 444:1:444 444:2:21 444:3:7 444:4:4 444:5:3 444:6:2 444:7:2 444:8:2 444:9:1 444:10:1 445:1:445 445:2:21 445:3:7 445:4:4 445:5:3 445:6:2 445:7:2 445:8:2 445:9:1 445:10:1 446:1:446 446:2:21 446:3:7 446:4:4 446:5:3 446:6:2 446:7:2 446:8:2 446:9:1 446:10:1 447:1:447 447:2:21 447:3:7 447:4:4 447:5:3 447:6:2 447:7:2 447:8:2 447:9:1 447:10:1 448:1:448 448:2:21 448:3:7 448:4:4 448:5:3 448:6:2 448:7:2 448:8:2 448:9:1 448:10:1 449:1:449 449:2:21 449:3:7 449:4:4 449:5:3 449:6:2 449:7:2 449:8:2 449:9:1 449:10:1 450:1:450 450:2:21 450:3:7 450:4:4 450:5:3 450:6:2 450:7:2 450:8:2 450:9:1 450:10:1 451:1:451 451:2:21 451:3:7 451:4:4 451:5:3 451:6:2 451:7:2 451:8:2 451:9:1 451:10:1 452:1:452 452:2:21 452:3:7 452:4:4 452:5:3 452:6:2 452:7:2 452:8:2 452:9:1 452:10:1 453:1:453 453:2:21 453:3:7 453:4:4 453:5:3 453:6:2 453:7:2 453:8:2 453:9:1 453:10:1 454:1:454 454:2:21 454:3:7 454:4:4 454:5:3 454:6:2 454:7:2 454:8:2 454:9:1 454:10:1 455:1:455 455:2:21 455:3:7 455:4:4 455:5:3 455:6:2 455:7:2 455:8:2 455:9:1 455:10:1 456:1:456 456:2:21 456:3:7 456:4:4 456:5:3 456:6:2 456:7:2 456:8:2 456:9:1 456:10:1 457:1:457 457:2:21 457:3:7 457:4:4 457:5:3 457:6:2 457:7:2 457:8:2 457:9:1 457:10:1 458:1:458 458:2:21 458:3:7 458:4:4 458:5:3 458:6:2 458:7:2 458:8:2 458:9:1 458:10:1 459:1:459 459:2:21 459:3:7 459:4:4 459:5:3 459:6:2 459:7:2 459:8:2 459:9:1 459:10:1 460:1:460 460:2:21 460:3:7 460:4:4 460:5:3 460:6:2 460:7:2 460:8:2 460:9:1 460:10:1 461:1:461 461:2:21 461:3:7 461:4:4 461:5:3 461:6:2 461:7:2 461:8:2 461:9:1 461:10:1 462:1:462 462:2:21 462:3:7 462:4:4 462:5:3 462:6:2 462:7:2 462:8:2 462:9:1 462:10:1 463:1:463 463:2:21 463:3:7 463:4:4 463:5:3 463:6:2 463:7:2 463:8:2 463:9:1 463:10:1 464:1:464 464:2:21 464:3:7 464:4:4 464:5:3 464:6:2 464:7:2 464:8:2 464:9:1 464:10:1 465:1:465 465:2:21 465:3:7 465:4:4 465:5:3 465:6:2 465:7:2 465:8:2 465:9:1 465:10:1 466:1:466 466:2:21 466:3:7 466:4:4 466:5:3 466:6:2 466:7:2 466:8:2 466:9:1 466:10:1 467:1:467 467:2:21 467:3:7 467:4:4 467:5:3 467:6:2 467:7:2 467:8:2 467:9:1 467:10:1 468:1:468 468:2:21 468:3:7 468:4:4 468:5:3 468:6:2 468:7:2 468:8:2 468:9:1 468:10:1 469:1:469 469:2:21 469:3:7 469:4:4 469:5:3 469:6:2 469:7:2 469:8:2 469:9:1 469:10:1 470:1:470 470:2:21 470:3:7 470:4:4 470:5:3 470:6:2 470:7:2 470:8:2 470:9:1 470:10:1 471:1:471 471:2:21 471:3:7 471:4:4 471:5:3 471:6:2 471:7:2 471:8:2 471:9:1 471:10:1 472:1:472 472:2:21 472:3:7 472:4:4 472:5:3 472:6:2 472:7:2 472:8:2 472:9:1 472:10:1 473:1:473 473:2:21 473:3:7 473:4:4 473:5:3 473:6:2 473:7:2 473:8:2 473:9:1 473:10:1 474:1:474 474:2:21 474:3:7 474:4:4 474:5:3 474:6:2 474:7:2 474:8:2 474:9:1 474:10:1 475:1:475 475:2:21 475:3:7 475:4:4 475:5:3 475:6:2 475:7:2 475:8:2 475:9:1 475:10:1 476:1:476 476:2:21 476:3:7 476:4:4 476:5:3 476:6:2 476:7:2 476:8:2 476:9:1 476:10:1 477:1:477 477:2:21 477:3:7 477:4:4 477:5:3 477:6:2 477:7:2 477:8:2 477:9:1 477:10:1 478:1:478 478:2:21 478:3:7 478:4:4 478:5:3 478:6:2 478:7:2 478:8:2 478:9:1 478:10:1 479:1:479 479:2:21 479:3:7 479:4:4 479:5:3 479:6:2 479:7:2 479:8:2 479:9:1 479:10:1 480:1:480 480:2:21 480:3:7 480:4:4 480:5:3 480:6:2 480:7:2 480:8:2 480:9:1 480:10:1 481:1:481 481:2:21 481:3:7 481:4:4 481:5:3 481:6:2 481:7:2 481:8:2 481:9:1 481:10:1 482:1:482 482:2:21 482:3:7 482:4:4 482:5:3 482:6:2 482:7:2 482:8:2 482:9:1 482:10:1 483:1:483 483:2:21 483:3:7 483:4:4 483:5:3 483:6:2 483:7:2 483:8:2 483:9:1 483:10:1 484:1:484 484:2:22 484:3:7 484:4:4 484:5:3 484:6:2 484:7:2 484:8:2 484:9:1 484:10:1 485:1:485 485:2:22 485:3:7 485:4:4 485:5:3 485:6:2 485:7:2 485:8:2 485:9:1 485:10:1 486:1:486 486:2:22 486:3:7 486:4:4 486:5:3 486:6:2 486:7:2 486:8:2 486:9:1 486:10:1 487:1:487 487:2:22 487:3:7 487:4:4 487:5:3 487:6:2 487:7:2 487:8:2 487:9:1 487:10:1 488:1:488 488:2:22 488:3:7 488:4:4 488:5:3 488:6:2 488:7:2 488:8:2 488:9:1 488:10:1 489:1:489 489:2:22 489:3:7 489:4:4 489:5:3 489:6:2 489:7:2 489:8:2 489:9:1 489:10:1 490:1:490 490:2:22 490:3:7 490:4:4 490:5:3 490:6:2 490:7:2 490:8:2 490:9:1 490:10:1 491:1:491 491:2:22 491:3:7 491:4:4 491:5:3 491:6:2 491:7:2 491:8:2 491:9:1 491:10:1 492:1:492 492:2:22 492:3:7 492:4:4 492:5:3 492:6:2 492:7:2 492:8:2 492:9:1 492:10:1 493:1:493 493:2:22 493:3:7 493:4:4 493:5:3 493:6:2 493:7:2 493:8:2 493:9:1 493:10:1 494:1:494 494:2:22 494:3:7 494:4:4 494:5:3 494:6:2 494:7:2 494:8:2 494:9:1 494:10:1 495:1:495 495:2:22 495:3:7 495:4:4 495:5:3 495:6:2 495:7:2 495:8:2 495:9:1 495:10:1 496:1:496 496:2:22 496:3:7 496:4:4 496:5:3 496:6:2 496:7:2 496:8:2 496:9:1 496:10:1 497:1:497 497:2:22 497:3:7 497:4:4 497:5:3 497:6:2 497:7:2 497:8:2 497:9:1 497:10:1 498:1:498 498:2:22 498:3:7 498:4:4 498:5:3 498:6:2 498:7:2 498:8:2 498:9:1 498:10:1 499:1:499 499:2:22 499:3:7 499:4:4 499:5:3 499:6:2 499:7:2 499:8:2 499:9:1 499:10:1 500:1:500 500:2:22 500:3:7 500:4:4 500:5:3 500:6:2 500:7:2 500:8:2 500:9:1 500:10:1 501:1:501 501:2:22 501:3:7 501:4:4 501:5:3 501:6:2 501:7:2 501:8:2 501:9:1 501:10:1 502:1:502 502:2:22 502:3:7 502:4:4 502:5:3 502:6:2 502:7:2 502:8:2 502:9:1 502:10:1 503:1:503 503:2:22 503:3:7 503:4:4 503:5:3 503:6:2 503:7:2 503:8:2 503:9:1 503:10:1 504:1:504 504:2:22 504:3:7 504:4:4 504:5:3 504:6:2 504:7:2 504:8:2 504:9:1 504:10:1 505:1:505 505:2:22 505:3:7 505:4:4 505:5:3 505:6:2 505:7:2 505:8:2 505:9:1 505:10:1 506:1:506 506:2:22 506:3:7 506:4:4 506:5:3 506:6:2 506:7:2 506:8:2 506:9:1 506:10:1 507:1:507 507:2:22 507:3:7 507:4:4 507:5:3 507:6:2 507:7:2 507:8:2 507:9:1 507:10:1 508:1:508 508:2:22 508:3:7 508:4:4 508:5:3 508:6:2 508:7:2 508:8:2 508:9:1 508:10:1 509:1:509 509:2:22 509:3:7 509:4:4 509:5:3 509:6:2 509:7:2 509:8:2 509:9:1 509:10:1 510:1:510 510:2:22 510:3:7 510:4:4 510:5:3 510:6:2 510:7:2 510:8:2 510:9:1 510:10:1 511:1:511 511:2:22 511:3:7 511:4:4 511:5:3 511:6:2 511:7:2 511:8:2 511:9:1 511:10:1 512:1:512 512:2:22 512:3:8 512:4:4 512:5:3 512:6:2 512:7:2 512:8:2 512:9:2 512:10:1 513:1:513 513:2:22 513:3:8 513:4:4 513:5:3 513:6:2 513:7:2 513:8:2 513:9:2 513:10:1 514:1:514 514:2:22 514:3:8 514:4:4 514:5:3 514:6:2 514:7:2 514:8:2 514:9:2 514:10:1 515:1:515 515:2:22 515:3:8 515:4:4 515:5:3 515:6:2 515:7:2 515:8:2 515:9:2 515:10:1 516:1:516 516:2:22 516:3:8 516:4:4 516:5:3 516:6:2 516:7:2 516:8:2 516:9:2 516:10:1 517:1:517 517:2:22 517:3:8 517:4:4 517:5:3 517:6:2 517:7:2 517:8:2 517:9:2 517:10:1 518:1:518 518:2:22 518:3:8 518:4:4 518:5:3 518:6:2 518:7:2 518:8:2 518:9:2 518:10:1 519:1:519 519:2:22 519:3:8 519:4:4 519:5:3 519:6:2 519:7:2 519:8:2 519:9:2 519:10:1 520:1:520 520:2:22 520:3:8 520:4:4 520:5:3 520:6:2 520:7:2 520:8:2 520:9:2 520:10:1 521:1:521 521:2:22 521:3:8 521:4:4 521:5:3 521:6:2 521:7:2 521:8:2 521:9:2 521:10:1 522:1:522 522:2:22 522:3:8 522:4:4 522:5:3 522:6:2 522:7:2 522:8:2 522:9:2 522:10:1 523:1:523 523:2:22 523:3:8 523:4:4 523:5:3 523:6:2 523:7:2 523:8:2 523:9:2 523:10:1 524:1:524 524:2:22 524:3:8 524:4:4 524:5:3 524:6:2 524:7:2 524:8:2 524:9:2 524:10:1 525:1:525 525:2:22 525:3:8 525:4:4 525:5:3 525:6:2 525:7:2 525:8:2 525:9:2 525:10:1 526:1:526 526:2:22 526:3:8 526:4:4 526:5:3 526:6:2 526:7:2 526:8:2 526:9:2 526:10:1 527:1:527 527:2:22 527:3:8 527:4:4 527:5:3 527:6:2 527:7:2 527:8:2 527:9:2 527:10:1 528:1:528 528:2:22 528:3:8 528:4:4 528:5:3 528:6:2 528:7:2 528:8:2 528:9:2 528:10:1 529:1:529 529:2:23 529:3:8 529:4:4 529:5:3 529:6:2 529:7:2 529:8:2 529:9:2 529:10:1 530:1:530 530:2:23 530:3:8 530:4:4 530:5:3 530:6:2 530:7:2 530:8:2 530:9:2 530:10:1 531:1:531 531:2:23 531:3:8 531:4:4 531:5:3 531:6:2 531:7:2 531:8:2 531:9:2 531:10:1 532:1:532 532:2:23 532:3:8 532:4:4 532:5:3 532:6:2 532:7:2 532:8:2 532:9:2 532:10:1 533:1:533 533:2:23 533:3:8 533:4:4 533:5:3 533:6:2 533:7:2 533:8:2 533:9:2 533:10:1 534:1:534 534:2:23 534:3:8 534:4:4 534:5:3 534:6:2 534:7:2 534:8:2 534:9:2 534:10:1 535:1:535 535:2:23 535:3:8 535:4:4 535:5:3 535:6:2 535:7:2 535:8:2 535:9:2 535:10:1 536:1:536 536:2:23 536:3:8 536:4:4 536:5:3 536:6:2 536:7:2 536:8:2 536:9:2 536:10:1 537:1:537 537:2:23 537:3:8 537:4:4 537:5:3 537:6:2 537:7:2 537:8:2 537:9:2 537:10:1 538:1:538 538:2:23 538:3:8 538:4:4 538:5:3 538:6:2 538:7:2 538:8:2 538:9:2 538:10:1 539:1:539 539:2:23 539:3:8 539:4:4 539:5:3 539:6:2 539:7:2 539:8:2 539:9:2 539:10:1 540:1:540 540:2:23 540:3:8 540:4:4 540:5:3 540:6:2 540:7:2 540:8:2 540:9:2 540:10:1 541:1:541 541:2:23 541:3:8 541:4:4 541:5:3 541:6:2 541:7:2 541:8:2 541:9:2 541:10:1 542:1:542 542:2:23 542:3:8 542:4:4 542:5:3 542:6:2 542:7:2 542:8:2 542:9:2 542:10:1 543:1:543 543:2:23 543:3:8 543:4:4 543:5:3 543:6:2 543:7:2 543:8:2 543:9:2 543:10:1 544:1:544 544:2:23 544:3:8 544:4:4 544:5:3 544:6:2 544:7:2 544:8:2 544:9:2 544:10:1 545:1:545 545:2:23 545:3:8 545:4:4 545:5:3 545:6:2 545:7:2 545:8:2 545:9:2 545:10:1 546:1:546 546:2:23 546:3:8 546:4:4 546:5:3 546:6:2 546:7:2 546:8:2 546:9:2 546:10:1 547:1:547 547:2:23 547:3:8 547:4:4 547:5:3 547:6:2 547:7:2 547:8:2 547:9:2 547:10:1 548:1:548 548:2:23 548:3:8 548:4:4 548:5:3 548:6:2 548:7:2 548:8:2 548:9:2 548:10:1 549:1:549 549:2:23 549:3:8 549:4:4 549:5:3 549:6:2 549:7:2 549:8:2 549:9:2 549:10:1 550:1:550 550:2:23 550:3:8 550:4:4 550:5:3 550:6:2 550:7:2 550:8:2 550:9:2 550:10:1 551:1:551 551:2:23 551:3:8 551:4:4 551:5:3 551:6:2 551:7:2 551:8:2 551:9:2 551:10:1 552:1:552 552:2:23 552:3:8 552:4:4 552:5:3 552:6:2 552:7:2 552:8:2 552:9:2 552:10:1 553:1:553 553:2:23 553:3:8 553:4:4 553:5:3 553:6:2 553:7:2 553:8:2 553:9:2 553:10:1 554:1:554 554:2:23 554:3:8 554:4:4 554:5:3 554:6:2 554:7:2 554:8:2 554:9:2 554:10:1 555:1:555 555:2:23 555:3:8 555:4:4 555:5:3 555:6:2 555:7:2 555:8:2 555:9:2 555:10:1 556:1:556 556:2:23 556:3:8 556:4:4 556:5:3 556:6:2 556:7:2 556:8:2 556:9:2 556:10:1 557:1:557 557:2:23 557:3:8 557:4:4 557:5:3 557:6:2 557:7:2 557:8:2 557:9:2 557:10:1 558:1:558 558:2:23 558:3:8 558:4:4 558:5:3 558:6:2 558:7:2 558:8:2 558:9:2 558:10:1 559:1:559 559:2:23 559:3:8 559:4:4 559:5:3 559:6:2 559:7:2 559:8:2 559:9:2 559:10:1 560:1:560 560:2:23 560:3:8 560:4:4 560:5:3 560:6:2 560:7:2 560:8:2 560:9:2 560:10:1 561:1:561 561:2:23 561:3:8 561:4:4 561:5:3 561:6:2 561:7:2 561:8:2 561:9:2 561:10:1 562:1:562 562:2:23 562:3:8 562:4:4 562:5:3 562:6:2 562:7:2 562:8:2 562:9:2 562:10:1 563:1:563 563:2:23 563:3:8 563:4:4 563:5:3 563:6:2 563:7:2 563:8:2 563:9:2 563:10:1 564:1:564 564:2:23 564:3:8 564:4:4 564:5:3 564:6:2 564:7:2 564:8:2 564:9:2 564:10:1 565:1:565 565:2:23 565:3:8 565:4:4 565:5:3 565:6:2 565:7:2 565:8:2 565:9:2 565:10:1 566:1:566 566:2:23 566:3:8 566:4:4 566:5:3 566:6:2 566:7:2 566:8:2 566:9:2 566:10:1 567:1:567 567:2:23 567:3:8 567:4:4 567:5:3 567:6:2 567:7:2 567:8:2 567:9:2 567:10:1 568:1:568 568:2:23 568:3:8 568:4:4 568:5:3 568:6:2 568:7:2 568:8:2 568:9:2 568:10:1 569:1:569 569:2:23 569:3:8 569:4:4 569:5:3 569:6:2 569:7:2 569:8:2 569:9:2 569:10:1 570:1:570 570:2:23 570:3:8 570:4:4 570:5:3 570:6:2 570:7:2 570:8:2 570:9:2 570:10:1 571:1:571 571:2:23 571:3:8 571:4:4 571:5:3 571:6:2 571:7:2 571:8:2 571:9:2 571:10:1 572:1:572 572:2:23 572:3:8 572:4:4 572:5:3 572:6:2 572:7:2 572:8:2 572:9:2 572:10:1 573:1:573 573:2:23 573:3:8 573:4:4 573:5:3 573:6:2 573:7:2 573:8:2 573:9:2 573:10:1 574:1:574 574:2:23 574:3:8 574:4:4 574:5:3 574:6:2 574:7:2 574:8:2 574:9:2 574:10:1 575:1:575 575:2:23 575:3:8 575:4:4 575:5:3 575:6:2 575:7:2 575:8:2 575:9:2 575:10:1 576:1:576 576:2:24 576:3:8 576:4:4 576:5:3 576:6:2 576:7:2 576:8:2 576:9:2 576:10:1 577:1:577 577:2:24 577:3:8 577:4:4 577:5:3 577:6:2 577:7:2 577:8:2 577:9:2 577:10:1 578:1:578 578:2:24 578:3:8 578:4:4 578:5:3 578:6:2 578:7:2 578:8:2 578:9:2 578:10:1 579:1:579 579:2:24 579:3:8 579:4:4 579:5:3 579:6:2 579:7:2 579:8:2 579:9:2 579:10:1 580:1:580 580:2:24 580:3:8 580:4:4 580:5:3 580:6:2 580:7:2 580:8:2 580:9:2 580:10:1 581:1:581 581:2:24 581:3:8 581:4:4 581:5:3 581:6:2 581:7:2 581:8:2 581:9:2 581:10:1 582:1:582 582:2:24 582:3:8 582:4:4 582:5:3 582:6:2 582:7:2 582:8:2 582:9:2 582:10:1 583:1:583 583:2:24 583:3:8 583:4:4 583:5:3 583:6:2 583:7:2 583:8:2 583:9:2 583:10:1 584:1:584 584:2:24 584:3:8 584:4:4 584:5:3 584:6:2 584:7:2 584:8:2 584:9:2 584:10:1 585:1:585 585:2:24 585:3:8 585:4:4 585:5:3 585:6:2 585:7:2 585:8:2 585:9:2 585:10:1 586:1:586 586:2:24 586:3:8 586:4:4 586:5:3 586:6:2 586:7:2 586:8:2 586:9:2 586:10:1 587:1:587 587:2:24 587:3:8 587:4:4 587:5:3 587:6:2 587:7:2 587:8:2 587:9:2 587:10:1 588:1:588 588:2:24 588:3:8 588:4:4 588:5:3 588:6:2 588:7:2 588:8:2 588:9:2 588:10:1 589:1:589 589:2:24 589:3:8 589:4:4 589:5:3 589:6:2 589:7:2 589:8:2 589:9:2 589:10:1 590:1:590 590:2:24 590:3:8 590:4:4 590:5:3 590:6:2 590:7:2 590:8:2 590:9:2 590:10:1 591:1:591 591:2:24 591:3:8 591:4:4 591:5:3 591:6:2 591:7:2 591:8:2 591:9:2 591:10:1 592:1:592 592:2:24 592:3:8 592:4:4 592:5:3 592:6:2 592:7:2 592:8:2 592:9:2 592:10:1 593:1:593 593:2:24 593:3:8 593:4:4 593:5:3 593:6:2 593:7:2 593:8:2 593:9:2 593:10:1 594:1:594 594:2:24 594:3:8 594:4:4 594:5:3 594:6:2 594:7:2 594:8:2 594:9:2 594:10:1 595:1:595 595:2:24 595:3:8 595:4:4 595:5:3 595:6:2 595:7:2 595:8:2 595:9:2 595:10:1 596:1:596 596:2:24 596:3:8 596:4:4 596:5:3 596:6:2 596:7:2 596:8:2 596:9:2 596:10:1 597:1:597 597:2:24 597:3:8 597:4:4 597:5:3 597:6:2 597:7:2 597:8:2 597:9:2 597:10:1 598:1:598 598:2:24 598:3:8 598:4:4 598:5:3 598:6:2 598:7:2 598:8:2 598:9:2 598:10:1 599:1:599 599:2:24 599:3:8 599:4:4 599:5:3 599:6:2 599:7:2 599:8:2 599:9:2 599:10:1 600:1:600 600:2:24 600:3:8 600:4:4 600:5:3 600:6:2 600:7:2 600:8:2 600:9:2 600:10:1 601:1:601 601:2:24 601:3:8 601:4:4 601:5:3 601:6:2 601:7:2 601:8:2 601:9:2 601:10:1 602:1:602 602:2:24 602:3:8 602:4:4 602:5:3 602:6:2 602:7:2 602:8:2 602:9:2 602:10:1 603:1:603 603:2:24 603:3:8 603:4:4 603:5:3 603:6:2 603:7:2 603:8:2 603:9:2 603:10:1 604:1:604 604:2:24 604:3:8 604:4:4 604:5:3 604:6:2 604:7:2 604:8:2 604:9:2 604:10:1 605:1:605 605:2:24 605:3:8 605:4:4 605:5:3 605:6:2 605:7:2 605:8:2 605:9:2 605:10:1 606:1:606 606:2:24 606:3:8 606:4:4 606:5:3 606:6:2 606:7:2 606:8:2 606:9:2 606:10:1 607:1:607 607:2:24 607:3:8 607:4:4 607:5:3 607:6:2 607:7:2 607:8:2 607:9:2 607:10:1 608:1:608 608:2:24 608:3:8 608:4:4 608:5:3 608:6:2 608:7:2 608:8:2 608:9:2 608:10:1 609:1:609 609:2:24 609:3:8 609:4:4 609:5:3 609:6:2 609:7:2 609:8:2 609:9:2 609:10:1 610:1:610 610:2:24 610:3:8 610:4:4 610:5:3 610:6:2 610:7:2 610:8:2 610:9:2 610:10:1 611:1:611 611:2:24 611:3:8 611:4:4 611:5:3 611:6:2 611:7:2 611:8:2 611:9:2 611:10:1 612:1:612 612:2:24 612:3:8 612:4:4 612:5:3 612:6:2 612:7:2 612:8:2 612:9:2 612:10:1 613:1:613 613:2:24 613:3:8 613:4:4 613:5:3 613:6:2 613:7:2 613:8:2 613:9:2 613:10:1 614:1:614 614:2:24 614:3:8 614:4:4 614:5:3 614:6:2 614:7:2 614:8:2 614:9:2 614:10:1 615:1:615 615:2:24 615:3:8 615:4:4 615:5:3 615:6:2 615:7:2 615:8:2 615:9:2 615:10:1 616:1:616 616:2:24 616:3:8 616:4:4 616:5:3 616:6:2 616:7:2 616:8:2 616:9:2 616:10:1 617:1:617 617:2:24 617:3:8 617:4:4 617:5:3 617:6:2 617:7:2 617:8:2 617:9:2 617:10:1 618:1:618 618:2:24 618:3:8 618:4:4 618:5:3 618:6:2 618:7:2 618:8:2 618:9:2 618:10:1 619:1:619 619:2:24 619:3:8 619:4:4 619:5:3 619:6:2 619:7:2 619:8:2 619:9:2 619:10:1 620:1:620 620:2:24 620:3:8 620:4:4 620:5:3 620:6:2 620:7:2 620:8:2 620:9:2 620:10:1 621:1:621 621:2:24 621:3:8 621:4:4 621:5:3 621:6:2 621:7:2 621:8:2 621:9:2 621:10:1 622:1:622 622:2:24 622:3:8 622:4:4 622:5:3 622:6:2 622:7:2 622:8:2 622:9:2 622:10:1 623:1:623 623:2:24 623:3:8 623:4:4 623:5:3 623:6:2 623:7:2 623:8:2 623:9:2 623:10:1 624:1:624 624:2:24 624:3:8 624:4:4 624:5:3 624:6:2 624:7:2 624:8:2 624:9:2 624:10:1 625:1:625 625:2:25 625:3:8 625:4:5 625:5:3 625:6:2 625:7:2 625:8:2 625:9:2 625:10:1 626:1:626 626:2:25 626:3:8 626:4:5 626:5:3 626:6:2 626:7:2 626:8:2 626:9:2 626:10:1 627:1:627 627:2:25 627:3:8 627:4:5 627:5:3 627:6:2 627:7:2 627:8:2 627:9:2 627:10:1 628:1:628 628:2:25 628:3:8 628:4:5 628:5:3 628:6:2 628:7:2 628:8:2 628:9:2 628:10:1 629:1:629 629:2:25 629:3:8 629:4:5 629:5:3 629:6:2 629:7:2 629:8:2 629:9:2 629:10:1 630:1:630 630:2:25 630:3:8 630:4:5 630:5:3 630:6:2 630:7:2 630:8:2 630:9:2 630:10:1 631:1:631 631:2:25 631:3:8 631:4:5 631:5:3 631:6:2 631:7:2 631:8:2 631:9:2 631:10:1 632:1:632 632:2:25 632:3:8 632:4:5 632:5:3 632:6:2 632:7:2 632:8:2 632:9:2 632:10:1 633:1:633 633:2:25 633:3:8 633:4:5 633:5:3 633:6:2 633:7:2 633:8:2 633:9:2 633:10:1 634:1:634 634:2:25 634:3:8 634:4:5 634:5:3 634:6:2 634:7:2 634:8:2 634:9:2 634:10:1 635:1:635 635:2:25 635:3:8 635:4:5 635:5:3 635:6:2 635:7:2 635:8:2 635:9:2 635:10:1 636:1:636 636:2:25 636:3:8 636:4:5 636:5:3 636:6:2 636:7:2 636:8:2 636:9:2 636:10:1 637:1:637 637:2:25 637:3:8 637:4:5 637:5:3 637:6:2 637:7:2 637:8:2 637:9:2 637:10:1 638:1:638 638:2:25 638:3:8 638:4:5 638:5:3 638:6:2 638:7:2 638:8:2 638:9:2 638:10:1 639:1:639 639:2:25 639:3:8 639:4:5 639:5:3 639:6:2 639:7:2 639:8:2 639:9:2 639:10:1 640:1:640 640:2:25 640:3:8 640:4:5 640:5:3 640:6:2 640:7:2 640:8:2 640:9:2 640:10:1 641:1:641 641:2:25 641:3:8 641:4:5 641:5:3 641:6:2 641:7:2 641:8:2 641:9:2 641:10:1 642:1:642 642:2:25 642:3:8 642:4:5 642:5:3 642:6:2 642:7:2 642:8:2 642:9:2 642:10:1 643:1:643 643:2:25 643:3:8 643:4:5 643:5:3 643:6:2 643:7:2 643:8:2 643:9:2 643:10:1 644:1:644 644:2:25 644:3:8 644:4:5 644:5:3 644:6:2 644:7:2 644:8:2 644:9:2 644:10:1 645:1:645 645:2:25 645:3:8 645:4:5 645:5:3 645:6:2 645:7:2 645:8:2 645:9:2 645:10:1 646:1:646 646:2:25 646:3:8 646:4:5 646:5:3 646:6:2 646:7:2 646:8:2 646:9:2 646:10:1 647:1:647 647:2:25 647:3:8 647:4:5 647:5:3 647:6:2 647:7:2 647:8:2 647:9:2 647:10:1 648:1:648 648:2:25 648:3:8 648:4:5 648:5:3 648:6:2 648:7:2 648:8:2 648:9:2 648:10:1 649:1:649 649:2:25 649:3:8 649:4:5 649:5:3 649:6:2 649:7:2 649:8:2 649:9:2 649:10:1 650:1:650 650:2:25 650:3:8 650:4:5 650:5:3 650:6:2 650:7:2 650:8:2 650:9:2 650:10:1 651:1:651 651:2:25 651:3:8 651:4:5 651:5:3 651:6:2 651:7:2 651:8:2 651:9:2 651:10:1 652:1:652 652:2:25 652:3:8 652:4:5 652:5:3 652:6:2 652:7:2 652:8:2 652:9:2 652:10:1 653:1:653 653:2:25 653:3:8 653:4:5 653:5:3 653:6:2 653:7:2 653:8:2 653:9:2 653:10:1 654:1:654 654:2:25 654:3:8 654:4:5 654:5:3 654:6:2 654:7:2 654:8:2 654:9:2 654:10:1 655:1:655 655:2:25 655:3:8 655:4:5 655:5:3 655:6:2 655:7:2 655:8:2 655:9:2 655:10:1 656:1:656 656:2:25 656:3:8 656:4:5 656:5:3 656:6:2 656:7:2 656:8:2 656:9:2 656:10:1 657:1:657 657:2:25 657:3:8 657:4:5 657:5:3 657:6:2 657:7:2 657:8:2 657:9:2 657:10:1 658:1:658 658:2:25 658:3:8 658:4:5 658:5:3 658:6:2 658:7:2 658:8:2 658:9:2 658:10:1 659:1:659 659:2:25 659:3:8 659:4:5 659:5:3 659:6:2 659:7:2 659:8:2 659:9:2 659:10:1 660:1:660 660:2:25 660:3:8 660:4:5 660:5:3 660:6:2 660:7:2 660:8:2 660:9:2 660:10:1 661:1:661 661:2:25 661:3:8 661:4:5 661:5:3 661:6:2 661:7:2 661:8:2 661:9:2 661:10:1 662:1:662 662:2:25 662:3:8 662:4:5 662:5:3 662:6:2 662:7:2 662:8:2 662:9:2 662:10:1 663:1:663 663:2:25 663:3:8 663:4:5 663:5:3 663:6:2 663:7:2 663:8:2 663:9:2 663:10:1 664:1:664 664:2:25 664:3:8 664:4:5 664:5:3 664:6:2 664:7:2 664:8:2 664:9:2 664:10:1 665:1:665 665:2:25 665:3:8 665:4:5 665:5:3 665:6:2 665:7:2 665:8:2 665:9:2 665:10:1 666:1:666 666:2:25 666:3:8 666:4:5 666:5:3 666:6:2 666:7:2 666:8:2 666:9:2 666:10:1 667:1:667 667:2:25 667:3:8 667:4:5 667:5:3 667:6:2 667:7:2 667:8:2 667:9:2 667:10:1 668:1:668 668:2:25 668:3:8 668:4:5 668:5:3 668:6:2 668:7:2 668:8:2 668:9:2 668:10:1 669:1:669 669:2:25 669:3:8 669:4:5 669:5:3 669:6:2 669:7:2 669:8:2 669:9:2 669:10:1 670:1:670 670:2:25 670:3:8 670:4:5 670:5:3 670:6:2 670:7:2 670:8:2 670:9:2 670:10:1 671:1:671 671:2:25 671:3:8 671:4:5 671:5:3 671:6:2 671:7:2 671:8:2 671:9:2 671:10:1 672:1:672 672:2:25 672:3:8 672:4:5 672:5:3 672:6:2 672:7:2 672:8:2 672:9:2 672:10:1 673:1:673 673:2:25 673:3:8 673:4:5 673:5:3 673:6:2 673:7:2 673:8:2 673:9:2 673:10:1 674:1:674 674:2:25 674:3:8 674:4:5 674:5:3 674:6:2 674:7:2 674:8:2 674:9:2 674:10:1 675:1:675 675:2:25 675:3:8 675:4:5 675:5:3 675:6:2 675:7:2 675:8:2 675:9:2 675:10:1 676:1:676 676:2:26 676:3:8 676:4:5 676:5:3 676:6:2 676:7:2 676:8:2 676:9:2 676:10:1 677:1:677 677:2:26 677:3:8 677:4:5 677:5:3 677:6:2 677:7:2 677:8:2 677:9:2 677:10:1 678:1:678 678:2:26 678:3:8 678:4:5 678:5:3 678:6:2 678:7:2 678:8:2 678:9:2 678:10:1 679:1:679 679:2:26 679:3:8 679:4:5 679:5:3 679:6:2 679:7:2 679:8:2 679:9:2 679:10:1 680:1:680 680:2:26 680:3:8 680:4:5 680:5:3 680:6:2 680:7:2 680:8:2 680:9:2 680:10:1 681:1:681 681:2:26 681:3:8 681:4:5 681:5:3 681:6:2 681:7:2 681:8:2 681:9:2 681:10:1 682:1:682 682:2:26 682:3:8 682:4:5 682:5:3 682:6:2 682:7:2 682:8:2 682:9:2 682:10:1 683:1:683 683:2:26 683:3:8 683:4:5 683:5:3 683:6:2 683:7:2 683:8:2 683:9:2 683:10:1 684:1:684 684:2:26 684:3:8 684:4:5 684:5:3 684:6:2 684:7:2 684:8:2 684:9:2 684:10:1 685:1:685 685:2:26 685:3:8 685:4:5 685:5:3 685:6:2 685:7:2 685:8:2 685:9:2 685:10:1 686:1:686 686:2:26 686:3:8 686:4:5 686:5:3 686:6:2 686:7:2 686:8:2 686:9:2 686:10:1 687:1:687 687:2:26 687:3:8 687:4:5 687:5:3 687:6:2 687:7:2 687:8:2 687:9:2 687:10:1 688:1:688 688:2:26 688:3:8 688:4:5 688:5:3 688:6:2 688:7:2 688:8:2 688:9:2 688:10:1 689:1:689 689:2:26 689:3:8 689:4:5 689:5:3 689:6:2 689:7:2 689:8:2 689:9:2 689:10:1 690:1:690 690:2:26 690:3:8 690:4:5 690:5:3 690:6:2 690:7:2 690:8:2 690:9:2 690:10:1 691:1:691 691:2:26 691:3:8 691:4:5 691:5:3 691:6:2 691:7:2 691:8:2 691:9:2 691:10:1 692:1:692 692:2:26 692:3:8 692:4:5 692:5:3 692:6:2 692:7:2 692:8:2 692:9:2 692:10:1 693:1:693 693:2:26 693:3:8 693:4:5 693:5:3 693:6:2 693:7:2 693:8:2 693:9:2 693:10:1 694:1:694 694:2:26 694:3:8 694:4:5 694:5:3 694:6:2 694:7:2 694:8:2 694:9:2 694:10:1 695:1:695 695:2:26 695:3:8 695:4:5 695:5:3 695:6:2 695:7:2 695:8:2 695:9:2 695:10:1 696:1:696 696:2:26 696:3:8 696:4:5 696:5:3 696:6:2 696:7:2 696:8:2 696:9:2 696:10:1 697:1:697 697:2:26 697:3:8 697:4:5 697:5:3 697:6:2 697:7:2 697:8:2 697:9:2 697:10:1 698:1:698 698:2:26 698:3:8 698:4:5 698:5:3 698:6:2 698:7:2 698:8:2 698:9:2 698:10:1 699:1:699 699:2:26 699:3:8 699:4:5 699:5:3 699:6:2 699:7:2 699:8:2 699:9:2 699:10:1 700:1:700 700:2:26 700:3:8 700:4:5 700:5:3 700:6:2 700:7:2 700:8:2 700:9:2 700:10:1 701:1:701 701:2:26 701:3:8 701:4:5 701:5:3 701:6:2 701:7:2 701:8:2 701:9:2 701:10:1 702:1:702 702:2:26 702:3:8 702:4:5 702:5:3 702:6:2 702:7:2 702:8:2 702:9:2 702:10:1 703:1:703 703:2:26 703:3:8 703:4:5 703:5:3 703:6:2 703:7:2 703:8:2 703:9:2 703:10:1 704:1:704 704:2:26 704:3:8 704:4:5 704:5:3 704:6:2 704:7:2 704:8:2 704:9:2 704:10:1 705:1:705 705:2:26 705:3:8 705:4:5 705:5:3 705:6:2 705:7:2 705:8:2 705:9:2 705:10:1 706:1:706 706:2:26 706:3:8 706:4:5 706:5:3 706:6:2 706:7:2 706:8:2 706:9:2 706:10:1 707:1:707 707:2:26 707:3:8 707:4:5 707:5:3 707:6:2 707:7:2 707:8:2 707:9:2 707:10:1 708:1:708 708:2:26 708:3:8 708:4:5 708:5:3 708:6:2 708:7:2 708:8:2 708:9:2 708:10:1 709:1:709 709:2:26 709:3:8 709:4:5 709:5:3 709:6:2 709:7:2 709:8:2 709:9:2 709:10:1 710:1:710 710:2:26 710:3:8 710:4:5 710:5:3 710:6:2 710:7:2 710:8:2 710:9:2 710:10:1 711:1:711 711:2:26 711:3:8 711:4:5 711:5:3 711:6:2 711:7:2 711:8:2 711:9:2 711:10:1 712:1:712 712:2:26 712:3:8 712:4:5 712:5:3 712:6:2 712:7:2 712:8:2 712:9:2 712:10:1 713:1:713 713:2:26 713:3:8 713:4:5 713:5:3 713:6:2 713:7:2 713:8:2 713:9:2 713:10:1 714:1:714 714:2:26 714:3:8 714:4:5 714:5:3 714:6:2 714:7:2 714:8:2 714:9:2 714:10:1 715:1:715 715:2:26 715:3:8 715:4:5 715:5:3 715:6:2 715:7:2 715:8:2 715:9:2 715:10:1 716:1:716 716:2:26 716:3:8 716:4:5 716:5:3 716:6:2 716:7:2 716:8:2 716:9:2 716:10:1 717:1:717 717:2:26 717:3:8 717:4:5 717:5:3 717:6:2 717:7:2 717:8:2 717:9:2 717:10:1 718:1:718 718:2:26 718:3:8 718:4:5 718:5:3 718:6:2 718:7:2 718:8:2 718:9:2 718:10:1 719:1:719 719:2:26 719:3:8 719:4:5 719:5:3 719:6:2 719:7:2 719:8:2 719:9:2 719:10:1 720:1:720 720:2:26 720:3:8 720:4:5 720:5:3 720:6:2 720:7:2 720:8:2 720:9:2 720:10:1 721:1:721 721:2:26 721:3:8 721:4:5 721:5:3 721:6:2 721:7:2 721:8:2 721:9:2 721:10:1 722:1:722 722:2:26 722:3:8 722:4:5 722:5:3 722:6:2 722:7:2 722:8:2 722:9:2 722:10:1 723:1:723 723:2:26 723:3:8 723:4:5 723:5:3 723:6:2 723:7:2 723:8:2 723:9:2 723:10:1 724:1:724 724:2:26 724:3:8 724:4:5 724:5:3 724:6:2 724:7:2 724:8:2 724:9:2 724:10:1 725:1:725 725:2:26 725:3:8 725:4:5 725:5:3 725:6:2 725:7:2 725:8:2 725:9:2 725:10:1 726:1:726 726:2:26 726:3:8 726:4:5 726:5:3 726:6:2 726:7:2 726:8:2 726:9:2 726:10:1 727:1:727 727:2:26 727:3:8 727:4:5 727:5:3 727:6:2 727:7:2 727:8:2 727:9:2 727:10:1 728:1:728 728:2:26 728:3:8 728:4:5 728:5:3 728:6:2 728:7:2 728:8:2 728:9:2 728:10:1 729:1:729 729:2:27 729:3:9 729:4:5 729:5:3 729:6:3 729:7:2 729:8:2 729:9:2 729:10:1 730:1:730 730:2:27 730:3:9 730:4:5 730:5:3 730:6:3 730:7:2 730:8:2 730:9:2 730:10:1 731:1:731 731:2:27 731:3:9 731:4:5 731:5:3 731:6:3 731:7:2 731:8:2 731:9:2 731:10:1 732:1:732 732:2:27 732:3:9 732:4:5 732:5:3 732:6:3 732:7:2 732:8:2 732:9:2 732:10:1 733:1:733 733:2:27 733:3:9 733:4:5 733:5:3 733:6:3 733:7:2 733:8:2 733:9:2 733:10:1 734:1:734 734:2:27 734:3:9 734:4:5 734:5:3 734:6:3 734:7:2 734:8:2 734:9:2 734:10:1 735:1:735 735:2:27 735:3:9 735:4:5 735:5:3 735:6:3 735:7:2 735:8:2 735:9:2 735:10:1 736:1:736 736:2:27 736:3:9 736:4:5 736:5:3 736:6:3 736:7:2 736:8:2 736:9:2 736:10:1 737:1:737 737:2:27 737:3:9 737:4:5 737:5:3 737:6:3 737:7:2 737:8:2 737:9:2 737:10:1 738:1:738 738:2:27 738:3:9 738:4:5 738:5:3 738:6:3 738:7:2 738:8:2 738:9:2 738:10:1 739:1:739 739:2:27 739:3:9 739:4:5 739:5:3 739:6:3 739:7:2 739:8:2 739:9:2 739:10:1 740:1:740 740:2:27 740:3:9 740:4:5 740:5:3 740:6:3 740:7:2 740:8:2 740:9:2 740:10:1 741:1:741 741:2:27 741:3:9 741:4:5 741:5:3 741:6:3 741:7:2 741:8:2 741:9:2 741:10:1 742:1:742 742:2:27 742:3:9 742:4:5 742:5:3 742:6:3 742:7:2 742:8:2 742:9:2 742:10:1 743:1:743 743:2:27 743:3:9 743:4:5 743:5:3 743:6:3 743:7:2 743:8:2 743:9:2 743:10:1 744:1:744 744:2:27 744:3:9 744:4:5 744:5:3 744:6:3 744:7:2 744:8:2 744:9:2 744:10:1 745:1:745 745:2:27 745:3:9 745:4:5 745:5:3 745:6:3 745:7:2 745:8:2 745:9:2 745:10:1 746:1:746 746:2:27 746:3:9 746:4:5 746:5:3 746:6:3 746:7:2 746:8:2 746:9:2 746:10:1 747:1:747 747:2:27 747:3:9 747:4:5 747:5:3 747:6:3 747:7:2 747:8:2 747:9:2 747:10:1 748:1:748 748:2:27 748:3:9 748:4:5 748:5:3 748:6:3 748:7:2 748:8:2 748:9:2 748:10:1 749:1:749 749:2:27 749:3:9 749:4:5 749:5:3 749:6:3 749:7:2 749:8:2 749:9:2 749:10:1 750:1:750 750:2:27 750:3:9 750:4:5 750:5:3 750:6:3 750:7:2 750:8:2 750:9:2 750:10:1 751:1:751 751:2:27 751:3:9 751:4:5 751:5:3 751:6:3 751:7:2 751:8:2 751:9:2 751:10:1 752:1:752 752:2:27 752:3:9 752:4:5 752:5:3 752:6:3 752:7:2 752:8:2 752:9:2 752:10:1 753:1:753 753:2:27 753:3:9 753:4:5 753:5:3 753:6:3 753:7:2 753:8:2 753:9:2 753:10:1 754:1:754 754:2:27 754:3:9 754:4:5 754:5:3 754:6:3 754:7:2 754:8:2 754:9:2 754:10:1 755:1:755 755:2:27 755:3:9 755:4:5 755:5:3 755:6:3 755:7:2 755:8:2 755:9:2 755:10:1 756:1:756 756:2:27 756:3:9 756:4:5 756:5:3 756:6:3 756:7:2 756:8:2 756:9:2 756:10:1 757:1:757 757:2:27 757:3:9 757:4:5 757:5:3 757:6:3 757:7:2 757:8:2 757:9:2 757:10:1 758:1:758 758:2:27 758:3:9 758:4:5 758:5:3 758:6:3 758:7:2 758:8:2 758:9:2 758:10:1 759:1:759 759:2:27 759:3:9 759:4:5 759:5:3 759:6:3 759:7:2 759:8:2 759:9:2 759:10:1 760:1:760 760:2:27 760:3:9 760:4:5 760:5:3 760:6:3 760:7:2 760:8:2 760:9:2 760:10:1 761:1:761 761:2:27 761:3:9 761:4:5 761:5:3 761:6:3 761:7:2 761:8:2 761:9:2 761:10:1 762:1:762 762:2:27 762:3:9 762:4:5 762:5:3 762:6:3 762:7:2 762:8:2 762:9:2 762:10:1 763:1:763 763:2:27 763:3:9 763:4:5 763:5:3 763:6:3 763:7:2 763:8:2 763:9:2 763:10:1 764:1:764 764:2:27 764:3:9 764:4:5 764:5:3 764:6:3 764:7:2 764:8:2 764:9:2 764:10:1 765:1:765 765:2:27 765:3:9 765:4:5 765:5:3 765:6:3 765:7:2 765:8:2 765:9:2 765:10:1 766:1:766 766:2:27 766:3:9 766:4:5 766:5:3 766:6:3 766:7:2 766:8:2 766:9:2 766:10:1 767:1:767 767:2:27 767:3:9 767:4:5 767:5:3 767:6:3 767:7:2 767:8:2 767:9:2 767:10:1 768:1:768 768:2:27 768:3:9 768:4:5 768:5:3 768:6:3 768:7:2 768:8:2 768:9:2 768:10:1 769:1:769 769:2:27 769:3:9 769:4:5 769:5:3 769:6:3 769:7:2 769:8:2 769:9:2 769:10:1 770:1:770 770:2:27 770:3:9 770:4:5 770:5:3 770:6:3 770:7:2 770:8:2 770:9:2 770:10:1 771:1:771 771:2:27 771:3:9 771:4:5 771:5:3 771:6:3 771:7:2 771:8:2 771:9:2 771:10:1 772:1:772 772:2:27 772:3:9 772:4:5 772:5:3 772:6:3 772:7:2 772:8:2 772:9:2 772:10:1 773:1:773 773:2:27 773:3:9 773:4:5 773:5:3 773:6:3 773:7:2 773:8:2 773:9:2 773:10:1 774:1:774 774:2:27 774:3:9 774:4:5 774:5:3 774:6:3 774:7:2 774:8:2 774:9:2 774:10:1 775:1:775 775:2:27 775:3:9 775:4:5 775:5:3 775:6:3 775:7:2 775:8:2 775:9:2 775:10:1 776:1:776 776:2:27 776:3:9 776:4:5 776:5:3 776:6:3 776:7:2 776:8:2 776:9:2 776:10:1 777:1:777 777:2:27 777:3:9 777:4:5 777:5:3 777:6:3 777:7:2 777:8:2 777:9:2 777:10:1 778:1:778 778:2:27 778:3:9 778:4:5 778:5:3 778:6:3 778:7:2 778:8:2 778:9:2 778:10:1 779:1:779 779:2:27 779:3:9 779:4:5 779:5:3 779:6:3 779:7:2 779:8:2 779:9:2 779:10:1 780:1:780 780:2:27 780:3:9 780:4:5 780:5:3 780:6:3 780:7:2 780:8:2 780:9:2 780:10:1 781:1:781 781:2:27 781:3:9 781:4:5 781:5:3 781:6:3 781:7:2 781:8:2 781:9:2 781:10:1 782:1:782 782:2:27 782:3:9 782:4:5 782:5:3 782:6:3 782:7:2 782:8:2 782:9:2 782:10:1 783:1:783 783:2:27 783:3:9 783:4:5 783:5:3 783:6:3 783:7:2 783:8:2 783:9:2 783:10:1 784:1:784 784:2:28 784:3:9 784:4:5 784:5:3 784:6:3 784:7:2 784:8:2 784:9:2 784:10:1 785:1:785 785:2:28 785:3:9 785:4:5 785:5:3 785:6:3 785:7:2 785:8:2 785:9:2 785:10:1 786:1:786 786:2:28 786:3:9 786:4:5 786:5:3 786:6:3 786:7:2 786:8:2 786:9:2 786:10:1 787:1:787 787:2:28 787:3:9 787:4:5 787:5:3 787:6:3 787:7:2 787:8:2 787:9:2 787:10:1 788:1:788 788:2:28 788:3:9 788:4:5 788:5:3 788:6:3 788:7:2 788:8:2 788:9:2 788:10:1 789:1:789 789:2:28 789:3:9 789:4:5 789:5:3 789:6:3 789:7:2 789:8:2 789:9:2 789:10:1 790:1:790 790:2:28 790:3:9 790:4:5 790:5:3 790:6:3 790:7:2 790:8:2 790:9:2 790:10:1 791:1:791 791:2:28 791:3:9 791:4:5 791:5:3 791:6:3 791:7:2 791:8:2 791:9:2 791:10:1 792:1:792 792:2:28 792:3:9 792:4:5 792:5:3 792:6:3 792:7:2 792:8:2 792:9:2 792:10:1 793:1:793 793:2:28 793:3:9 793:4:5 793:5:3 793:6:3 793:7:2 793:8:2 793:9:2 793:10:1 794:1:794 794:2:28 794:3:9 794:4:5 794:5:3 794:6:3 794:7:2 794:8:2 794:9:2 794:10:1 795:1:795 795:2:28 795:3:9 795:4:5 795:5:3 795:6:3 795:7:2 795:8:2 795:9:2 795:10:1 796:1:796 796:2:28 796:3:9 796:4:5 796:5:3 796:6:3 796:7:2 796:8:2 796:9:2 796:10:1 797:1:797 797:2:28 797:3:9 797:4:5 797:5:3 797:6:3 797:7:2 797:8:2 797:9:2 797:10:1 798:1:798 798:2:28 798:3:9 798:4:5 798:5:3 798:6:3 798:7:2 798:8:2 798:9:2 798:10:1 799:1:799 799:2:28 799:3:9 799:4:5 799:5:3 799:6:3 799:7:2 799:8:2 799:9:2 799:10:1 800:1:800 800:2:28 800:3:9 800:4:5 800:5:3 800:6:3 800:7:2 800:8:2 800:9:2 800:10:1 801:1:801 801:2:28 801:3:9 801:4:5 801:5:3 801:6:3 801:7:2 801:8:2 801:9:2 801:10:1 802:1:802 802:2:28 802:3:9 802:4:5 802:5:3 802:6:3 802:7:2 802:8:2 802:9:2 802:10:1 803:1:803 803:2:28 803:3:9 803:4:5 803:5:3 803:6:3 803:7:2 803:8:2 803:9:2 803:10:1 804:1:804 804:2:28 804:3:9 804:4:5 804:5:3 804:6:3 804:7:2 804:8:2 804:9:2 804:10:1 805:1:805 805:2:28 805:3:9 805:4:5 805:5:3 805:6:3 805:7:2 805:8:2 805:9:2 805:10:1 806:1:806 806:2:28 806:3:9 806:4:5 806:5:3 806:6:3 806:7:2 806:8:2 806:9:2 806:10:1 807:1:807 807:2:28 807:3:9 807:4:5 807:5:3 807:6:3 807:7:2 807:8:2 807:9:2 807:10:1 808:1:808 808:2:28 808:3:9 808:4:5 808:5:3 808:6:3 808:7:2 808:8:2 808:9:2 808:10:1 809:1:809 809:2:28 809:3:9 809:4:5 809:5:3 809:6:3 809:7:2 809:8:2 809:9:2 809:10:1 810:1:810 810:2:28 810:3:9 810:4:5 810:5:3 810:6:3 810:7:2 810:8:2 810:9:2 810:10:1 811:1:811 811:2:28 811:3:9 811:4:5 811:5:3 811:6:3 811:7:2 811:8:2 811:9:2 811:10:1 812:1:812 812:2:28 812:3:9 812:4:5 812:5:3 812:6:3 812:7:2 812:8:2 812:9:2 812:10:1 813:1:813 813:2:28 813:3:9 813:4:5 813:5:3 813:6:3 813:7:2 813:8:2 813:9:2 813:10:1 814:1:814 814:2:28 814:3:9 814:4:5 814:5:3 814:6:3 814:7:2 814:8:2 814:9:2 814:10:1 815:1:815 815:2:28 815:3:9 815:4:5 815:5:3 815:6:3 815:7:2 815:8:2 815:9:2 815:10:1 816:1:816 816:2:28 816:3:9 816:4:5 816:5:3 816:6:3 816:7:2 816:8:2 816:9:2 816:10:1 817:1:817 817:2:28 817:3:9 817:4:5 817:5:3 817:6:3 817:7:2 817:8:2 817:9:2 817:10:1 818:1:818 818:2:28 818:3:9 818:4:5 818:5:3 818:6:3 818:7:2 818:8:2 818:9:2 818:10:1 819:1:819 819:2:28 819:3:9 819:4:5 819:5:3 819:6:3 819:7:2 819:8:2 819:9:2 819:10:1 820:1:820 820:2:28 820:3:9 820:4:5 820:5:3 820:6:3 820:7:2 820:8:2 820:9:2 820:10:1 821:1:821 821:2:28 821:3:9 821:4:5 821:5:3 821:6:3 821:7:2 821:8:2 821:9:2 821:10:1 822:1:822 822:2:28 822:3:9 822:4:5 822:5:3 822:6:3 822:7:2 822:8:2 822:9:2 822:10:1 823:1:823 823:2:28 823:3:9 823:4:5 823:5:3 823:6:3 823:7:2 823:8:2 823:9:2 823:10:1 824:1:824 824:2:28 824:3:9 824:4:5 824:5:3 824:6:3 824:7:2 824:8:2 824:9:2 824:10:1 825:1:825 825:2:28 825:3:9 825:4:5 825:5:3 825:6:3 825:7:2 825:8:2 825:9:2 825:10:1 826:1:826 826:2:28 826:3:9 826:4:5 826:5:3 826:6:3 826:7:2 826:8:2 826:9:2 826:10:1 827:1:827 827:2:28 827:3:9 827:4:5 827:5:3 827:6:3 827:7:2 827:8:2 827:9:2 827:10:1 828:1:828 828:2:28 828:3:9 828:4:5 828:5:3 828:6:3 828:7:2 828:8:2 828:9:2 828:10:1 829:1:829 829:2:28 829:3:9 829:4:5 829:5:3 829:6:3 829:7:2 829:8:2 829:9:2 829:10:1 830:1:830 830:2:28 830:3:9 830:4:5 830:5:3 830:6:3 830:7:2 830:8:2 830:9:2 830:10:1 831:1:831 831:2:28 831:3:9 831:4:5 831:5:3 831:6:3 831:7:2 831:8:2 831:9:2 831:10:1 832:1:832 832:2:28 832:3:9 832:4:5 832:5:3 832:6:3 832:7:2 832:8:2 832:9:2 832:10:1 833:1:833 833:2:28 833:3:9 833:4:5 833:5:3 833:6:3 833:7:2 833:8:2 833:9:2 833:10:1 834:1:834 834:2:28 834:3:9 834:4:5 834:5:3 834:6:3 834:7:2 834:8:2 834:9:2 834:10:1 835:1:835 835:2:28 835:3:9 835:4:5 835:5:3 835:6:3 835:7:2 835:8:2 835:9:2 835:10:1 836:1:836 836:2:28 836:3:9 836:4:5 836:5:3 836:6:3 836:7:2 836:8:2 836:9:2 836:10:1 837:1:837 837:2:28 837:3:9 837:4:5 837:5:3 837:6:3 837:7:2 837:8:2 837:9:2 837:10:1 838:1:838 838:2:28 838:3:9 838:4:5 838:5:3 838:6:3 838:7:2 838:8:2 838:9:2 838:10:1 839:1:839 839:2:28 839:3:9 839:4:5 839:5:3 839:6:3 839:7:2 839:8:2 839:9:2 839:10:1 840:1:840 840:2:28 840:3:9 840:4:5 840:5:3 840:6:3 840:7:2 840:8:2 840:9:2 840:10:1 841:1:841 841:2:29 841:3:9 841:4:5 841:5:3 841:6:3 841:7:2 841:8:2 841:9:2 841:10:1 842:1:842 842:2:29 842:3:9 842:4:5 842:5:3 842:6:3 842:7:2 842:8:2 842:9:2 842:10:1 843:1:843 843:2:29 843:3:9 843:4:5 843:5:3 843:6:3 843:7:2 843:8:2 843:9:2 843:10:1 844:1:844 844:2:29 844:3:9 844:4:5 844:5:3 844:6:3 844:7:2 844:8:2 844:9:2 844:10:1 845:1:845 845:2:29 845:3:9 845:4:5 845:5:3 845:6:3 845:7:2 845:8:2 845:9:2 845:10:1 846:1:846 846:2:29 846:3:9 846:4:5 846:5:3 846:6:3 846:7:2 846:8:2 846:9:2 846:10:1 847:1:847 847:2:29 847:3:9 847:4:5 847:5:3 847:6:3 847:7:2 847:8:2 847:9:2 847:10:1 848:1:848 848:2:29 848:3:9 848:4:5 848:5:3 848:6:3 848:7:2 848:8:2 848:9:2 848:10:1 849:1:849 849:2:29 849:3:9 849:4:5 849:5:3 849:6:3 849:7:2 849:8:2 849:9:2 849:10:1 850:1:850 850:2:29 850:3:9 850:4:5 850:5:3 850:6:3 850:7:2 850:8:2 850:9:2 850:10:1 851:1:851 851:2:29 851:3:9 851:4:5 851:5:3 851:6:3 851:7:2 851:8:2 851:9:2 851:10:1 852:1:852 852:2:29 852:3:9 852:4:5 852:5:3 852:6:3 852:7:2 852:8:2 852:9:2 852:10:1 853:1:853 853:2:29 853:3:9 853:4:5 853:5:3 853:6:3 853:7:2 853:8:2 853:9:2 853:10:1 854:1:854 854:2:29 854:3:9 854:4:5 854:5:3 854:6:3 854:7:2 854:8:2 854:9:2 854:10:1 855:1:855 855:2:29 855:3:9 855:4:5 855:5:3 855:6:3 855:7:2 855:8:2 855:9:2 855:10:1 856:1:856 856:2:29 856:3:9 856:4:5 856:5:3 856:6:3 856:7:2 856:8:2 856:9:2 856:10:1 857:1:857 857:2:29 857:3:9 857:4:5 857:5:3 857:6:3 857:7:2 857:8:2 857:9:2 857:10:1 858:1:858 858:2:29 858:3:9 858:4:5 858:5:3 858:6:3 858:7:2 858:8:2 858:9:2 858:10:1 859:1:859 859:2:29 859:3:9 859:4:5 859:5:3 859:6:3 859:7:2 859:8:2 859:9:2 859:10:1 860:1:860 860:2:29 860:3:9 860:4:5 860:5:3 860:6:3 860:7:2 860:8:2 860:9:2 860:10:1 861:1:861 861:2:29 861:3:9 861:4:5 861:5:3 861:6:3 861:7:2 861:8:2 861:9:2 861:10:1 862:1:862 862:2:29 862:3:9 862:4:5 862:5:3 862:6:3 862:7:2 862:8:2 862:9:2 862:10:1 863:1:863 863:2:29 863:3:9 863:4:5 863:5:3 863:6:3 863:7:2 863:8:2 863:9:2 863:10:1 864:1:864 864:2:29 864:3:9 864:4:5 864:5:3 864:6:3 864:7:2 864:8:2 864:9:2 864:10:1 865:1:865 865:2:29 865:3:9 865:4:5 865:5:3 865:6:3 865:7:2 865:8:2 865:9:2 865:10:1 866:1:866 866:2:29 866:3:9 866:4:5 866:5:3 866:6:3 866:7:2 866:8:2 866:9:2 866:10:1 867:1:867 867:2:29 867:3:9 867:4:5 867:5:3 867:6:3 867:7:2 867:8:2 867:9:2 867:10:1 868:1:868 868:2:29 868:3:9 868:4:5 868:5:3 868:6:3 868:7:2 868:8:2 868:9:2 868:10:1 869:1:869 869:2:29 869:3:9 869:4:5 869:5:3 869:6:3 869:7:2 869:8:2 869:9:2 869:10:1 870:1:870 870:2:29 870:3:9 870:4:5 870:5:3 870:6:3 870:7:2 870:8:2 870:9:2 870:10:1 871:1:871 871:2:29 871:3:9 871:4:5 871:5:3 871:6:3 871:7:2 871:8:2 871:9:2 871:10:1 872:1:872 872:2:29 872:3:9 872:4:5 872:5:3 872:6:3 872:7:2 872:8:2 872:9:2 872:10:1 873:1:873 873:2:29 873:3:9 873:4:5 873:5:3 873:6:3 873:7:2 873:8:2 873:9:2 873:10:1 874:1:874 874:2:29 874:3:9 874:4:5 874:5:3 874:6:3 874:7:2 874:8:2 874:9:2 874:10:1 875:1:875 875:2:29 875:3:9 875:4:5 875:5:3 875:6:3 875:7:2 875:8:2 875:9:2 875:10:1 876:1:876 876:2:29 876:3:9 876:4:5 876:5:3 876:6:3 876:7:2 876:8:2 876:9:2 876:10:1 877:1:877 877:2:29 877:3:9 877:4:5 877:5:3 877:6:3 877:7:2 877:8:2 877:9:2 877:10:1 878:1:878 878:2:29 878:3:9 878:4:5 878:5:3 878:6:3 878:7:2 878:8:2 878:9:2 878:10:1 879:1:879 879:2:29 879:3:9 879:4:5 879:5:3 879:6:3 879:7:2 879:8:2 879:9:2 879:10:1 880:1:880 880:2:29 880:3:9 880:4:5 880:5:3 880:6:3 880:7:2 880:8:2 880:9:2 880:10:1 881:1:881 881:2:29 881:3:9 881:4:5 881:5:3 881:6:3 881:7:2 881:8:2 881:9:2 881:10:1 882:1:882 882:2:29 882:3:9 882:4:5 882:5:3 882:6:3 882:7:2 882:8:2 882:9:2 882:10:1 883:1:883 883:2:29 883:3:9 883:4:5 883:5:3 883:6:3 883:7:2 883:8:2 883:9:2 883:10:1 884:1:884 884:2:29 884:3:9 884:4:5 884:5:3 884:6:3 884:7:2 884:8:2 884:9:2 884:10:1 885:1:885 885:2:29 885:3:9 885:4:5 885:5:3 885:6:3 885:7:2 885:8:2 885:9:2 885:10:1 886:1:886 886:2:29 886:3:9 886:4:5 886:5:3 886:6:3 886:7:2 886:8:2 886:9:2 886:10:1 887:1:887 887:2:29 887:3:9 887:4:5 887:5:3 887:6:3 887:7:2 887:8:2 887:9:2 887:10:1 888:1:888 888:2:29 888:3:9 888:4:5 888:5:3 888:6:3 888:7:2 888:8:2 888:9:2 888:10:1 889:1:889 889:2:29 889:3:9 889:4:5 889:5:3 889:6:3 889:7:2 889:8:2 889:9:2 889:10:1 890:1:890 890:2:29 890:3:9 890:4:5 890:5:3 890:6:3 890:7:2 890:8:2 890:9:2 890:10:1 891:1:891 891:2:29 891:3:9 891:4:5 891:5:3 891:6:3 891:7:2 891:8:2 891:9:2 891:10:1 892:1:892 892:2:29 892:3:9 892:4:5 892:5:3 892:6:3 892:7:2 892:8:2 892:9:2 892:10:1 893:1:893 893:2:29 893:3:9 893:4:5 893:5:3 893:6:3 893:7:2 893:8:2 893:9:2 893:10:1 894:1:894 894:2:29 894:3:9 894:4:5 894:5:3 894:6:3 894:7:2 894:8:2 894:9:2 894:10:1 895:1:895 895:2:29 895:3:9 895:4:5 895:5:3 895:6:3 895:7:2 895:8:2 895:9:2 895:10:1 896:1:896 896:2:29 896:3:9 896:4:5 896:5:3 896:6:3 896:7:2 896:8:2 896:9:2 896:10:1 897:1:897 897:2:29 897:3:9 897:4:5 897:5:3 897:6:3 897:7:2 897:8:2 897:9:2 897:10:1 898:1:898 898:2:29 898:3:9 898:4:5 898:5:3 898:6:3 898:7:2 898:8:2 898:9:2 898:10:1 899:1:899 899:2:29 899:3:9 899:4:5 899:5:3 899:6:3 899:7:2 899:8:2 899:9:2 899:10:1 900:1:900 900:2:30 900:3:9 900:4:5 900:5:3 900:6:3 900:7:2 900:8:2 900:9:2 900:10:1 901:1:901 901:2:30 901:3:9 901:4:5 901:5:3 901:6:3 901:7:2 901:8:2 901:9:2 901:10:1 902:1:902 902:2:30 902:3:9 902:4:5 902:5:3 902:6:3 902:7:2 902:8:2 902:9:2 902:10:1 903:1:903 903:2:30 903:3:9 903:4:5 903:5:3 903:6:3 903:7:2 903:8:2 903:9:2 903:10:1 904:1:904 904:2:30 904:3:9 904:4:5 904:5:3 904:6:3 904:7:2 904:8:2 904:9:2 904:10:1 905:1:905 905:2:30 905:3:9 905:4:5 905:5:3 905:6:3 905:7:2 905:8:2 905:9:2 905:10:1 906:1:906 906:2:30 906:3:9 906:4:5 906:5:3 906:6:3 906:7:2 906:8:2 906:9:2 906:10:1 907:1:907 907:2:30 907:3:9 907:4:5 907:5:3 907:6:3 907:7:2 907:8:2 907:9:2 907:10:1 908:1:908 908:2:30 908:3:9 908:4:5 908:5:3 908:6:3 908:7:2 908:8:2 908:9:2 908:10:1 909:1:909 909:2:30 909:3:9 909:4:5 909:5:3 909:6:3 909:7:2 909:8:2 909:9:2 909:10:1 910:1:910 910:2:30 910:3:9 910:4:5 910:5:3 910:6:3 910:7:2 910:8:2 910:9:2 910:10:1 911:1:911 911:2:30 911:3:9 911:4:5 911:5:3 911:6:3 911:7:2 911:8:2 911:9:2 911:10:1 912:1:912 912:2:30 912:3:9 912:4:5 912:5:3 912:6:3 912:7:2 912:8:2 912:9:2 912:10:1 913:1:913 913:2:30 913:3:9 913:4:5 913:5:3 913:6:3 913:7:2 913:8:2 913:9:2 913:10:1 914:1:914 914:2:30 914:3:9 914:4:5 914:5:3 914:6:3 914:7:2 914:8:2 914:9:2 914:10:1 915:1:915 915:2:30 915:3:9 915:4:5 915:5:3 915:6:3 915:7:2 915:8:2 915:9:2 915:10:1 916:1:916 916:2:30 916:3:9 916:4:5 916:5:3 916:6:3 916:7:2 916:8:2 916:9:2 916:10:1 917:1:917 917:2:30 917:3:9 917:4:5 917:5:3 917:6:3 917:7:2 917:8:2 917:9:2 917:10:1 918:1:918 918:2:30 918:3:9 918:4:5 918:5:3 918:6:3 918:7:2 918:8:2 918:9:2 918:10:1 919:1:919 919:2:30 919:3:9 919:4:5 919:5:3 919:6:3 919:7:2 919:8:2 919:9:2 919:10:1 920:1:920 920:2:30 920:3:9 920:4:5 920:5:3 920:6:3 920:7:2 920:8:2 920:9:2 920:10:1 921:1:921 921:2:30 921:3:9 921:4:5 921:5:3 921:6:3 921:7:2 921:8:2 921:9:2 921:10:1 922:1:922 922:2:30 922:3:9 922:4:5 922:5:3 922:6:3 922:7:2 922:8:2 922:9:2 922:10:1 923:1:923 923:2:30 923:3:9 923:4:5 923:5:3 923:6:3 923:7:2 923:8:2 923:9:2 923:10:1 924:1:924 924:2:30 924:3:9 924:4:5 924:5:3 924:6:3 924:7:2 924:8:2 924:9:2 924:10:1 925:1:925 925:2:30 925:3:9 925:4:5 925:5:3 925:6:3 925:7:2 925:8:2 925:9:2 925:10:1 926:1:926 926:2:30 926:3:9 926:4:5 926:5:3 926:6:3 926:7:2 926:8:2 926:9:2 926:10:1 927:1:927 927:2:30 927:3:9 927:4:5 927:5:3 927:6:3 927:7:2 927:8:2 927:9:2 927:10:1 928:1:928 928:2:30 928:3:9 928:4:5 928:5:3 928:6:3 928:7:2 928:8:2 928:9:2 928:10:1 929:1:929 929:2:30 929:3:9 929:4:5 929:5:3 929:6:3 929:7:2 929:8:2 929:9:2 929:10:1 930:1:930 930:2:30 930:3:9 930:4:5 930:5:3 930:6:3 930:7:2 930:8:2 930:9:2 930:10:1 931:1:931 931:2:30 931:3:9 931:4:5 931:5:3 931:6:3 931:7:2 931:8:2 931:9:2 931:10:1 932:1:932 932:2:30 932:3:9 932:4:5 932:5:3 932:6:3 932:7:2 932:8:2 932:9:2 932:10:1 933:1:933 933:2:30 933:3:9 933:4:5 933:5:3 933:6:3 933:7:2 933:8:2 933:9:2 933:10:1 934:1:934 934:2:30 934:3:9 934:4:5 934:5:3 934:6:3 934:7:2 934:8:2 934:9:2 934:10:1 935:1:935 935:2:30 935:3:9 935:4:5 935:5:3 935:6:3 935:7:2 935:8:2 935:9:2 935:10:1 936:1:936 936:2:30 936:3:9 936:4:5 936:5:3 936:6:3 936:7:2 936:8:2 936:9:2 936:10:1 937:1:937 937:2:30 937:3:9 937:4:5 937:5:3 937:6:3 937:7:2 937:8:2 937:9:2 937:10:1 938:1:938 938:2:30 938:3:9 938:4:5 938:5:3 938:6:3 938:7:2 938:8:2 938:9:2 938:10:1 939:1:939 939:2:30 939:3:9 939:4:5 939:5:3 939:6:3 939:7:2 939:8:2 939:9:2 939:10:1 940:1:940 940:2:30 940:3:9 940:4:5 940:5:3 940:6:3 940:7:2 940:8:2 940:9:2 940:10:1 941:1:941 941:2:30 941:3:9 941:4:5 941:5:3 941:6:3 941:7:2 941:8:2 941:9:2 941:10:1 942:1:942 942:2:30 942:3:9 942:4:5 942:5:3 942:6:3 942:7:2 942:8:2 942:9:2 942:10:1 943:1:943 943:2:30 943:3:9 943:4:5 943:5:3 943:6:3 943:7:2 943:8:2 943:9:2 943:10:1 944:1:944 944:2:30 944:3:9 944:4:5 944:5:3 944:6:3 944:7:2 944:8:2 944:9:2 944:10:1 945:1:945 945:2:30 945:3:9 945:4:5 945:5:3 945:6:3 945:7:2 945:8:2 945:9:2 945:10:1 946:1:946 946:2:30 946:3:9 946:4:5 946:5:3 946:6:3 946:7:2 946:8:2 946:9:2 946:10:1 947:1:947 947:2:30 947:3:9 947:4:5 947:5:3 947:6:3 947:7:2 947:8:2 947:9:2 947:10:1 948:1:948 948:2:30 948:3:9 948:4:5 948:5:3 948:6:3 948:7:2 948:8:2 948:9:2 948:10:1 949:1:949 949:2:30 949:3:9 949:4:5 949:5:3 949:6:3 949:7:2 949:8:2 949:9:2 949:10:1 950:1:950 950:2:30 950:3:9 950:4:5 950:5:3 950:6:3 950:7:2 950:8:2 950:9:2 950:10:1 951:1:951 951:2:30 951:3:9 951:4:5 951:5:3 951:6:3 951:7:2 951:8:2 951:9:2 951:10:1 952:1:952 952:2:30 952:3:9 952:4:5 952:5:3 952:6:3 952:7:2 952:8:2 952:9:2 952:10:1 953:1:953 953:2:30 953:3:9 953:4:5 953:5:3 953:6:3 953:7:2 953:8:2 953:9:2 953:10:1 954:1:954 954:2:30 954:3:9 954:4:5 954:5:3 954:6:3 954:7:2 954:8:2 954:9:2 954:10:1 955:1:955 955:2:30 955:3:9 955:4:5 955:5:3 955:6:3 955:7:2 955:8:2 955:9:2 955:10:1 956:1:956 956:2:30 956:3:9 956:4:5 956:5:3 956:6:3 956:7:2 956:8:2 956:9:2 956:10:1 957:1:957 957:2:30 957:3:9 957:4:5 957:5:3 957:6:3 957:7:2 957:8:2 957:9:2 957:10:1 958:1:958 958:2:30 958:3:9 958:4:5 958:5:3 958:6:3 958:7:2 958:8:2 958:9:2 958:10:1 959:1:959 959:2:30 959:3:9 959:4:5 959:5:3 959:6:3 959:7:2 959:8:2 959:9:2 959:10:1 960:1:960 960:2:30 960:3:9 960:4:5 960:5:3 960:6:3 960:7:2 960:8:2 960:9:2 960:10:1 961:1:961 961:2:31 961:3:9 961:4:5 961:5:3 961:6:3 961:7:2 961:8:2 961:9:2 961:10:1 962:1:962 962:2:31 962:3:9 962:4:5 962:5:3 962:6:3 962:7:2 962:8:2 962:9:2 962:10:1 963:1:963 963:2:31 963:3:9 963:4:5 963:5:3 963:6:3 963:7:2 963:8:2 963:9:2 963:10:1 964:1:964 964:2:31 964:3:9 964:4:5 964:5:3 964:6:3 964:7:2 964:8:2 964:9:2 964:10:1 965:1:965 965:2:31 965:3:9 965:4:5 965:5:3 965:6:3 965:7:2 965:8:2 965:9:2 965:10:1 966:1:966 966:2:31 966:3:9 966:4:5 966:5:3 966:6:3 966:7:2 966:8:2 966:9:2 966:10:1 967:1:967 967:2:31 967:3:9 967:4:5 967:5:3 967:6:3 967:7:2 967:8:2 967:9:2 967:10:1 968:1:968 968:2:31 968:3:9 968:4:5 968:5:3 968:6:3 968:7:2 968:8:2 968:9:2 968:10:1 969:1:969 969:2:31 969:3:9 969:4:5 969:5:3 969:6:3 969:7:2 969:8:2 969:9:2 969:10:1 970:1:970 970:2:31 970:3:9 970:4:5 970:5:3 970:6:3 970:7:2 970:8:2 970:9:2 970:10:1 971:1:971 971:2:31 971:3:9 971:4:5 971:5:3 971:6:3 971:7:2 971:8:2 971:9:2 971:10:1 972:1:972 972:2:31 972:3:9 972:4:5 972:5:3 972:6:3 972:7:2 972:8:2 972:9:2 972:10:1 973:1:973 973:2:31 973:3:9 973:4:5 973:5:3 973:6:3 973:7:2 973:8:2 973:9:2 973:10:1 974:1:974 974:2:31 974:3:9 974:4:5 974:5:3 974:6:3 974:7:2 974:8:2 974:9:2 974:10:1 975:1:975 975:2:31 975:3:9 975:4:5 975:5:3 975:6:3 975:7:2 975:8:2 975:9:2 975:10:1 976:1:976 976:2:31 976:3:9 976:4:5 976:5:3 976:6:3 976:7:2 976:8:2 976:9:2 976:10:1 977:1:977 977:2:31 977:3:9 977:4:5 977:5:3 977:6:3 977:7:2 977:8:2 977:9:2 977:10:1 978:1:978 978:2:31 978:3:9 978:4:5 978:5:3 978:6:3 978:7:2 978:8:2 978:9:2 978:10:1 979:1:979 979:2:31 979:3:9 979:4:5 979:5:3 979:6:3 979:7:2 979:8:2 979:9:2 979:10:1 980:1:980 980:2:31 980:3:9 980:4:5 980:5:3 980:6:3 980:7:2 980:8:2 980:9:2 980:10:1 981:1:981 981:2:31 981:3:9 981:4:5 981:5:3 981:6:3 981:7:2 981:8:2 981:9:2 981:10:1 982:1:982 982:2:31 982:3:9 982:4:5 982:5:3 982:6:3 982:7:2 982:8:2 982:9:2 982:10:1 983:1:983 983:2:31 983:3:9 983:4:5 983:5:3 983:6:3 983:7:2 983:8:2 983:9:2 983:10:1 984:1:984 984:2:31 984:3:9 984:4:5 984:5:3 984:6:3 984:7:2 984:8:2 984:9:2 984:10:1 985:1:985 985:2:31 985:3:9 985:4:5 985:5:3 985:6:3 985:7:2 985:8:2 985:9:2 985:10:1 986:1:986 986:2:31 986:3:9 986:4:5 986:5:3 986:6:3 986:7:2 986:8:2 986:9:2 986:10:1 987:1:987 987:2:31 987:3:9 987:4:5 987:5:3 987:6:3 987:7:2 987:8:2 987:9:2 987:10:1 988:1:988 988:2:31 988:3:9 988:4:5 988:5:3 988:6:3 988:7:2 988:8:2 988:9:2 988:10:1 989:1:989 989:2:31 989:3:9 989:4:5 989:5:3 989:6:3 989:7:2 989:8:2 989:9:2 989:10:1 990:1:990 990:2:31 990:3:9 990:4:5 990:5:3 990:6:3 990:7:2 990:8:2 990:9:2 990:10:1 991:1:991 991:2:31 991:3:9 991:4:5 991:5:3 991:6:3 991:7:2 991:8:2 991:9:2 991:10:1 992:1:992 992:2:31 992:3:9 992:4:5 992:5:3 992:6:3 992:7:2 992:8:2 992:9:2 992:10:1 993:1:993 993:2:31 993:3:9 993:4:5 993:5:3 993:6:3 993:7:2 993:8:2 993:9:2 993:10:1 994:1:994 994:2:31 994:3:9 994:4:5 994:5:3 994:6:3 994:7:2 994:8:2 994:9:2 994:10:1 995:1:995 995:2:31 995:3:9 995:4:5 995:5:3 995:6:3 995:7:2 995:8:2 995:9:2 995:10:1 996:1:996 996:2:31 996:3:9 996:4:5 996:5:3 996:6:3 996:7:2 996:8:2 996:9:2 996:10:1 997:1:997 997:2:31 997:3:9 997:4:5 997:5:3 997:6:3 997:7:2 997:8:2 997:9:2 997:10:1 998:1:998 998:2:31 998:3:9 998:4:5 998:5:3 998:6:3 998:7:2 998:8:2 998:9:2 998:10:1 999:1:999 999:2:31 999:3:9 999:4:5 999:5:3 999:6:3 999:7:2 999:8:2 999:9:2 999:10:1 1000:1:1000 1000:2:31 1000:3:10 1000:4:5 1000:5:3 1000:6:3 1000:7:2 1000:8:2 1000:9:2 1000:10:1 1001:1:1001 1001:2:31 1001:3:10 1001:4:5 1001:5:3 1001:6:3 1001:7:2 1001:8:2 1001:9:2 1001:10:1 1002:1:1002 1002:2:31 1002:3:10 1002:4:5 1002:5:3 1002:6:3 1002:7:2 1002:8:2 1002:9:2 1002:10:1 1003:1:1003 1003:2:31 1003:3:10 1003:4:5 1003:5:3 1003:6:3 1003:7:2 1003:8:2 1003:9:2 1003:10:1 1004:1:1004 1004:2:31 1004:3:10 1004:4:5 1004:5:3 1004:6:3 1004:7:2 1004:8:2 1004:9:2 1004:10:1 1005:1:1005 1005:2:31 1005:3:10 1005:4:5 1005:5:3 1005:6:3 1005:7:2 1005:8:2 1005:9:2 1005:10:1 1006:1:1006 1006:2:31 1006:3:10 1006:4:5 1006:5:3 1006:6:3 1006:7:2 1006:8:2 1006:9:2 1006:10:1 1007:1:1007 1007:2:31 1007:3:10 1007:4:5 1007:5:3 1007:6:3 1007:7:2 1007:8:2 1007:9:2 1007:10:1 1008:1:1008 1008:2:31 1008:3:10 1008:4:5 1008:5:3 1008:6:3 1008:7:2 1008:8:2 1008:9:2 1008:10:1 1009:1:1009 1009:2:31 1009:3:10 1009:4:5 1009:5:3 1009:6:3 1009:7:2 1009:8:2 1009:9:2 1009:10:1 1010:1:1010 1010:2:31 1010:3:10 1010:4:5 1010:5:3 1010:6:3 1010:7:2 1010:8:2 1010:9:2 1010:10:1 1011:1:1011 1011:2:31 1011:3:10 1011:4:5 1011:5:3 1011:6:3 1011:7:2 1011:8:2 1011:9:2 1011:10:1 1012:1:1012 1012:2:31 1012:3:10 1012:4:5 1012:5:3 1012:6:3 1012:7:2 1012:8:2 1012:9:2 1012:10:1 1013:1:1013 1013:2:31 1013:3:10 1013:4:5 1013:5:3 1013:6:3 1013:7:2 1013:8:2 1013:9:2 1013:10:1 1014:1:1014 1014:2:31 1014:3:10 1014:4:5 1014:5:3 1014:6:3 1014:7:2 1014:8:2 1014:9:2 1014:10:1 1015:1:1015 1015:2:31 1015:3:10 1015:4:5 1015:5:3 1015:6:3 1015:7:2 1015:8:2 1015:9:2 1015:10:1 1016:1:1016 1016:2:31 1016:3:10 1016:4:5 1016:5:3 1016:6:3 1016:7:2 1016:8:2 1016:9:2 1016:10:1 1017:1:1017 1017:2:31 1017:3:10 1017:4:5 1017:5:3 1017:6:3 1017:7:2 1017:8:2 1017:9:2 1017:10:1 1018:1:1018 1018:2:31 1018:3:10 1018:4:5 1018:5:3 1018:6:3 1018:7:2 1018:8:2 1018:9:2 1018:10:1 1019:1:1019 1019:2:31 1019:3:10 1019:4:5 1019:5:3 1019:6:3 1019:7:2 1019:8:2 1019:9:2 1019:10:1 1020:1:1020 1020:2:31 1020:3:10 1020:4:5 1020:5:3 1020:6:3 1020:7:2 1020:8:2 1020:9:2 1020:10:1 1021:1:1021 1021:2:31 1021:3:10 1021:4:5 1021:5:3 1021:6:3 1021:7:2 1021:8:2 1021:9:2 1021:10:1 1022:1:1022 1022:2:31 1022:3:10 1022:4:5 1022:5:3 1022:6:3 1022:7:2 1022:8:2 1022:9:2 1022:10:1 1023:1:1023 1023:2:31 1023:3:10 1023:4:5 1023:5:3 1023:6:3 1023:7:2 1023:8:2 1023:9:2 1023:10:1 1024:1:1024 1024:2:32 1024:3:10 1024:4:5 1024:5:4 1024:6:3 1024:7:2 1024:8:2 1024:9:2 1024:10:2 1025:1:1025 1025:2:32 1025:3:10 1025:4:5 1025:5:4 1025:6:3 1025:7:2 1025:8:2 1025:9:2 1025:10:2 1026:1:1026 1026:2:32 1026:3:10 1026:4:5 1026:5:4 1026:6:3 1026:7:2 1026:8:2 1026:9:2 1026:10:2 1027:1:1027 1027:2:32 1027:3:10 1027:4:5 1027:5:4 1027:6:3 1027:7:2 1027:8:2 1027:9:2 1027:10:2 1028:1:1028 1028:2:32 1028:3:10 1028:4:5 1028:5:4 1028:6:3 1028:7:2 1028:8:2 1028:9:2 1028:10:2 1029:1:1029 1029:2:32 1029:3:10 1029:4:5 1029:5:4 1029:6:3 1029:7:2 1029:8:2 1029:9:2 1029:10:2 1030:1:1030 1030:2:32 1030:3:10 1030:4:5 1030:5:4 1030:6:3 1030:7:2 1030:8:2 1030:9:2 1030:10:2 1031:1:1031 1031:2:32 1031:3:10 1031:4:5 1031:5:4 1031:6:3 1031:7:2 1031:8:2 1031:9:2 1031:10:2 1032:1:1032 1032:2:32 1032:3:10 1032:4:5 1032:5:4 1032:6:3 1032:7:2 1032:8:2 1032:9:2 1032:10:2 1033:1:1033 1033:2:32 1033:3:10 1033:4:5 1033:5:4 1033:6:3 1033:7:2 1033:8:2 1033:9:2 1033:10:2 1034:1:1034 1034:2:32 1034:3:10 1034:4:5 1034:5:4 1034:6:3 1034:7:2 1034:8:2 1034:9:2 1034:10:2 1035:1:1035 1035:2:32 1035:3:10 1035:4:5 1035:5:4 1035:6:3 1035:7:2 1035:8:2 1035:9:2 1035:10:2 1036:1:1036 1036:2:32 1036:3:10 1036:4:5 1036:5:4 1036:6:3 1036:7:2 1036:8:2 1036:9:2 1036:10:2 1037:1:1037 1037:2:32 1037:3:10 1037:4:5 1037:5:4 1037:6:3 1037:7:2 1037:8:2 1037:9:2 1037:10:2 1038:1:1038 1038:2:32 1038:3:10 1038:4:5 1038:5:4 1038:6:3 1038:7:2 1038:8:2 1038:9:2 1038:10:2 1039:1:1039 1039:2:32 1039:3:10 1039:4:5 1039:5:4 1039:6:3 1039:7:2 1039:8:2 1039:9:2 1039:10:2 1040:1:1040 1040:2:32 1040:3:10 1040:4:5 1040:5:4 1040:6:3 1040:7:2 1040:8:2 1040:9:2 1040:10:2 1041:1:1041 1041:2:32 1041:3:10 1041:4:5 1041:5:4 1041:6:3 1041:7:2 1041:8:2 1041:9:2 1041:10:2 1042:1:1042 1042:2:32 1042:3:10 1042:4:5 1042:5:4 1042:6:3 1042:7:2 1042:8:2 1042:9:2 1042:10:2 1043:1:1043 1043:2:32 1043:3:10 1043:4:5 1043:5:4 1043:6:3 1043:7:2 1043:8:2 1043:9:2 1043:10:2 1044:1:1044 1044:2:32 1044:3:10 1044:4:5 1044:5:4 1044:6:3 1044:7:2 1044:8:2 1044:9:2 1044:10:2 1045:1:1045 1045:2:32 1045:3:10 1045:4:5 1045:5:4 1045:6:3 1045:7:2 1045:8:2 1045:9:2 1045:10:2 1046:1:1046 1046:2:32 1046:3:10 1046:4:5 1046:5:4 1046:6:3 1046:7:2 1046:8:2 1046:9:2 1046:10:2 1047:1:1047 1047:2:32 1047:3:10 1047:4:5 1047:5:4 1047:6:3 1047:7:2 1047:8:2 1047:9:2 1047:10:2 1048:1:1048 1048:2:32 1048:3:10 1048:4:5 1048:5:4 1048:6:3 1048:7:2 1048:8:2 1048:9:2 1048:10:2 1049:1:1049 1049:2:32 1049:3:10 1049:4:5 1049:5:4 1049:6:3 1049:7:2 1049:8:2 1049:9:2 1049:10:2 1050:1:1050 1050:2:32 1050:3:10 1050:4:5 1050:5:4 1050:6:3 1050:7:2 1050:8:2 1050:9:2 1050:10:2 1051:1:1051 1051:2:32 1051:3:10 1051:4:5 1051:5:4 1051:6:3 1051:7:2 1051:8:2 1051:9:2 1051:10:2 1052:1:1052 1052:2:32 1052:3:10 1052:4:5 1052:5:4 1052:6:3 1052:7:2 1052:8:2 1052:9:2 1052:10:2 1053:1:1053 1053:2:32 1053:3:10 1053:4:5 1053:5:4 1053:6:3 1053:7:2 1053:8:2 1053:9:2 1053:10:2 1054:1:1054 1054:2:32 1054:3:10 1054:4:5 1054:5:4 1054:6:3 1054:7:2 1054:8:2 1054:9:2 1054:10:2 1055:1:1055 1055:2:32 1055:3:10 1055:4:5 1055:5:4 1055:6:3 1055:7:2 1055:8:2 1055:9:2 1055:10:2 1056:1:1056 1056:2:32 1056:3:10 1056:4:5 1056:5:4 1056:6:3 1056:7:2 1056:8:2 1056:9:2 1056:10:2 1057:1:1057 1057:2:32 1057:3:10 1057:4:5 1057:5:4 1057:6:3 1057:7:2 1057:8:2 1057:9:2 1057:10:2 1058:1:1058 1058:2:32 1058:3:10 1058:4:5 1058:5:4 1058:6:3 1058:7:2 1058:8:2 1058:9:2 1058:10:2 1059:1:1059 1059:2:32 1059:3:10 1059:4:5 1059:5:4 1059:6:3 1059:7:2 1059:8:2 1059:9:2 1059:10:2 1060:1:1060 1060:2:32 1060:3:10 1060:4:5 1060:5:4 1060:6:3 1060:7:2 1060:8:2 1060:9:2 1060:10:2 1061:1:1061 1061:2:32 1061:3:10 1061:4:5 1061:5:4 1061:6:3 1061:7:2 1061:8:2 1061:9:2 1061:10:2 1062:1:1062 1062:2:32 1062:3:10 1062:4:5 1062:5:4 1062:6:3 1062:7:2 1062:8:2 1062:9:2 1062:10:2 1063:1:1063 1063:2:32 1063:3:10 1063:4:5 1063:5:4 1063:6:3 1063:7:2 1063:8:2 1063:9:2 1063:10:2 1064:1:1064 1064:2:32 1064:3:10 1064:4:5 1064:5:4 1064:6:3 1064:7:2 1064:8:2 1064:9:2 1064:10:2 1065:1:1065 1065:2:32 1065:3:10 1065:4:5 1065:5:4 1065:6:3 1065:7:2 1065:8:2 1065:9:2 1065:10:2 1066:1:1066 1066:2:32 1066:3:10 1066:4:5 1066:5:4 1066:6:3 1066:7:2 1066:8:2 1066:9:2 1066:10:2 1067:1:1067 1067:2:32 1067:3:10 1067:4:5 1067:5:4 1067:6:3 1067:7:2 1067:8:2 1067:9:2 1067:10:2 1068:1:1068 1068:2:32 1068:3:10 1068:4:5 1068:5:4 1068:6:3 1068:7:2 1068:8:2 1068:9:2 1068:10:2 1069:1:1069 1069:2:32 1069:3:10 1069:4:5 1069:5:4 1069:6:3 1069:7:2 1069:8:2 1069:9:2 1069:10:2 1070:1:1070 1070:2:32 1070:3:10 1070:4:5 1070:5:4 1070:6:3 1070:7:2 1070:8:2 1070:9:2 1070:10:2 1071:1:1071 1071:2:32 1071:3:10 1071:4:5 1071:5:4 1071:6:3 1071:7:2 1071:8:2 1071:9:2 1071:10:2 1072:1:1072 1072:2:32 1072:3:10 1072:4:5 1072:5:4 1072:6:3 1072:7:2 1072:8:2 1072:9:2 1072:10:2 1073:1:1073 1073:2:32 1073:3:10 1073:4:5 1073:5:4 1073:6:3 1073:7:2 1073:8:2 1073:9:2 1073:10:2 1074:1:1074 1074:2:32 1074:3:10 1074:4:5 1074:5:4 1074:6:3 1074:7:2 1074:8:2 1074:9:2 1074:10:2 1075:1:1075 1075:2:32 1075:3:10 1075:4:5 1075:5:4 1075:6:3 1075:7:2 1075:8:2 1075:9:2 1075:10:2 1076:1:1076 1076:2:32 1076:3:10 1076:4:5 1076:5:4 1076:6:3 1076:7:2 1076:8:2 1076:9:2 1076:10:2 1077:1:1077 1077:2:32 1077:3:10 1077:4:5 1077:5:4 1077:6:3 1077:7:2 1077:8:2 1077:9:2 1077:10:2 1078:1:1078 1078:2:32 1078:3:10 1078:4:5 1078:5:4 1078:6:3 1078:7:2 1078:8:2 1078:9:2 1078:10:2 1079:1:1079 1079:2:32 1079:3:10 1079:4:5 1079:5:4 1079:6:3 1079:7:2 1079:8:2 1079:9:2 1079:10:2 1080:1:1080 1080:2:32 1080:3:10 1080:4:5 1080:5:4 1080:6:3 1080:7:2 1080:8:2 1080:9:2 1080:10:2 1081:1:1081 1081:2:32 1081:3:10 1081:4:5 1081:5:4 1081:6:3 1081:7:2 1081:8:2 1081:9:2 1081:10:2 1082:1:1082 1082:2:32 1082:3:10 1082:4:5 1082:5:4 1082:6:3 1082:7:2 1082:8:2 1082:9:2 1082:10:2 1083:1:1083 1083:2:32 1083:3:10 1083:4:5 1083:5:4 1083:6:3 1083:7:2 1083:8:2 1083:9:2 1083:10:2 1084:1:1084 1084:2:32 1084:3:10 1084:4:5 1084:5:4 1084:6:3 1084:7:2 1084:8:2 1084:9:2 1084:10:2 1085:1:1085 1085:2:32 1085:3:10 1085:4:5 1085:5:4 1085:6:3 1085:7:2 1085:8:2 1085:9:2 1085:10:2 1086:1:1086 1086:2:32 1086:3:10 1086:4:5 1086:5:4 1086:6:3 1086:7:2 1086:8:2 1086:9:2 1086:10:2 1087:1:1087 1087:2:32 1087:3:10 1087:4:5 1087:5:4 1087:6:3 1087:7:2 1087:8:2 1087:9:2 1087:10:2 1088:1:1088 1088:2:32 1088:3:10 1088:4:5 1088:5:4 1088:6:3 1088:7:2 1088:8:2 1088:9:2 1088:10:2 1089:1:1089 1089:2:33 1089:3:10 1089:4:5 1089:5:4 1089:6:3 1089:7:2 1089:8:2 1089:9:2 1089:10:2 1090:1:1090 1090:2:33 1090:3:10 1090:4:5 1090:5:4 1090:6:3 1090:7:2 1090:8:2 1090:9:2 1090:10:2 1091:1:1091 1091:2:33 1091:3:10 1091:4:5 1091:5:4 1091:6:3 1091:7:2 1091:8:2 1091:9:2 1091:10:2 1092:1:1092 1092:2:33 1092:3:10 1092:4:5 1092:5:4 1092:6:3 1092:7:2 1092:8:2 1092:9:2 1092:10:2 1093:1:1093 1093:2:33 1093:3:10 1093:4:5 1093:5:4 1093:6:3 1093:7:2 1093:8:2 1093:9:2 1093:10:2 1094:1:1094 1094:2:33 1094:3:10 1094:4:5 1094:5:4 1094:6:3 1094:7:2 1094:8:2 1094:9:2 1094:10:2 1095:1:1095 1095:2:33 1095:3:10 1095:4:5 1095:5:4 1095:6:3 1095:7:2 1095:8:2 1095:9:2 1095:10:2 1096:1:1096 1096:2:33 1096:3:10 1096:4:5 1096:5:4 1096:6:3 1096:7:2 1096:8:2 1096:9:2 1096:10:2 1097:1:1097 1097:2:33 1097:3:10 1097:4:5 1097:5:4 1097:6:3 1097:7:2 1097:8:2 1097:9:2 1097:10:2 1098:1:1098 1098:2:33 1098:3:10 1098:4:5 1098:5:4 1098:6:3 1098:7:2 1098:8:2 1098:9:2 1098:10:2 1099:1:1099 1099:2:33 1099:3:10 1099:4:5 1099:5:4 1099:6:3 1099:7:2 1099:8:2 1099:9:2 1099:10:2 1100:1:1100 1100:2:33 1100:3:10 1100:4:5 1100:5:4 1100:6:3 1100:7:2 1100:8:2 1100:9:2 1100:10:2 1101:1:1101 1101:2:33 1101:3:10 1101:4:5 1101:5:4 1101:6:3 1101:7:2 1101:8:2 1101:9:2 1101:10:2 1102:1:1102 1102:2:33 1102:3:10 1102:4:5 1102:5:4 1102:6:3 1102:7:2 1102:8:2 1102:9:2 1102:10:2 1103:1:1103 1103:2:33 1103:3:10 1103:4:5 1103:5:4 1103:6:3 1103:7:2 1103:8:2 1103:9:2 1103:10:2 1104:1:1104 1104:2:33 1104:3:10 1104:4:5 1104:5:4 1104:6:3 1104:7:2 1104:8:2 1104:9:2 1104:10:2 1105:1:1105 1105:2:33 1105:3:10 1105:4:5 1105:5:4 1105:6:3 1105:7:2 1105:8:2 1105:9:2 1105:10:2 1106:1:1106 1106:2:33 1106:3:10 1106:4:5 1106:5:4 1106:6:3 1106:7:2 1106:8:2 1106:9:2 1106:10:2 1107:1:1107 1107:2:33 1107:3:10 1107:4:5 1107:5:4 1107:6:3 1107:7:2 1107:8:2 1107:9:2 1107:10:2 1108:1:1108 1108:2:33 1108:3:10 1108:4:5 1108:5:4 1108:6:3 1108:7:2 1108:8:2 1108:9:2 1108:10:2 1109:1:1109 1109:2:33 1109:3:10 1109:4:5 1109:5:4 1109:6:3 1109:7:2 1109:8:2 1109:9:2 1109:10:2 1110:1:1110 1110:2:33 1110:3:10 1110:4:5 1110:5:4 1110:6:3 1110:7:2 1110:8:2 1110:9:2 1110:10:2 1111:1:1111 1111:2:33 1111:3:10 1111:4:5 1111:5:4 1111:6:3 1111:7:2 1111:8:2 1111:9:2 1111:10:2 1112:1:1112 1112:2:33 1112:3:10 1112:4:5 1112:5:4 1112:6:3 1112:7:2 1112:8:2 1112:9:2 1112:10:2 1113:1:1113 1113:2:33 1113:3:10 1113:4:5 1113:5:4 1113:6:3 1113:7:2 1113:8:2 1113:9:2 1113:10:2 1114:1:1114 1114:2:33 1114:3:10 1114:4:5 1114:5:4 1114:6:3 1114:7:2 1114:8:2 1114:9:2 1114:10:2 1115:1:1115 1115:2:33 1115:3:10 1115:4:5 1115:5:4 1115:6:3 1115:7:2 1115:8:2 1115:9:2 1115:10:2 1116:1:1116 1116:2:33 1116:3:10 1116:4:5 1116:5:4 1116:6:3 1116:7:2 1116:8:2 1116:9:2 1116:10:2 1117:1:1117 1117:2:33 1117:3:10 1117:4:5 1117:5:4 1117:6:3 1117:7:2 1117:8:2 1117:9:2 1117:10:2 1118:1:1118 1118:2:33 1118:3:10 1118:4:5 1118:5:4 1118:6:3 1118:7:2 1118:8:2 1118:9:2 1118:10:2 1119:1:1119 1119:2:33 1119:3:10 1119:4:5 1119:5:4 1119:6:3 1119:7:2 1119:8:2 1119:9:2 1119:10:2 1120:1:1120 1120:2:33 1120:3:10 1120:4:5 1120:5:4 1120:6:3 1120:7:2 1120:8:2 1120:9:2 1120:10:2 1121:1:1121 1121:2:33 1121:3:10 1121:4:5 1121:5:4 1121:6:3 1121:7:2 1121:8:2 1121:9:2 1121:10:2 1122:1:1122 1122:2:33 1122:3:10 1122:4:5 1122:5:4 1122:6:3 1122:7:2 1122:8:2 1122:9:2 1122:10:2 1123:1:1123 1123:2:33 1123:3:10 1123:4:5 1123:5:4 1123:6:3 1123:7:2 1123:8:2 1123:9:2 1123:10:2 1124:1:1124 1124:2:33 1124:3:10 1124:4:5 1124:5:4 1124:6:3 1124:7:2 1124:8:2 1124:9:2 1124:10:2 1125:1:1125 1125:2:33 1125:3:10 1125:4:5 1125:5:4 1125:6:3 1125:7:2 1125:8:2 1125:9:2 1125:10:2 1126:1:1126 1126:2:33 1126:3:10 1126:4:5 1126:5:4 1126:6:3 1126:7:2 1126:8:2 1126:9:2 1126:10:2 1127:1:1127 1127:2:33 1127:3:10 1127:4:5 1127:5:4 1127:6:3 1127:7:2 1127:8:2 1127:9:2 1127:10:2 1128:1:1128 1128:2:33 1128:3:10 1128:4:5 1128:5:4 1128:6:3 1128:7:2 1128:8:2 1128:9:2 1128:10:2 1129:1:1129 1129:2:33 1129:3:10 1129:4:5 1129:5:4 1129:6:3 1129:7:2 1129:8:2 1129:9:2 1129:10:2 1130:1:1130 1130:2:33 1130:3:10 1130:4:5 1130:5:4 1130:6:3 1130:7:2 1130:8:2 1130:9:2 1130:10:2 1131:1:1131 1131:2:33 1131:3:10 1131:4:5 1131:5:4 1131:6:3 1131:7:2 1131:8:2 1131:9:2 1131:10:2 1132:1:1132 1132:2:33 1132:3:10 1132:4:5 1132:5:4 1132:6:3 1132:7:2 1132:8:2 1132:9:2 1132:10:2 1133:1:1133 1133:2:33 1133:3:10 1133:4:5 1133:5:4 1133:6:3 1133:7:2 1133:8:2 1133:9:2 1133:10:2 1134:1:1134 1134:2:33 1134:3:10 1134:4:5 1134:5:4 1134:6:3 1134:7:2 1134:8:2 1134:9:2 1134:10:2 1135:1:1135 1135:2:33 1135:3:10 1135:4:5 1135:5:4 1135:6:3 1135:7:2 1135:8:2 1135:9:2 1135:10:2 1136:1:1136 1136:2:33 1136:3:10 1136:4:5 1136:5:4 1136:6:3 1136:7:2 1136:8:2 1136:9:2 1136:10:2 1137:1:1137 1137:2:33 1137:3:10 1137:4:5 1137:5:4 1137:6:3 1137:7:2 1137:8:2 1137:9:2 1137:10:2 1138:1:1138 1138:2:33 1138:3:10 1138:4:5 1138:5:4 1138:6:3 1138:7:2 1138:8:2 1138:9:2 1138:10:2 1139:1:1139 1139:2:33 1139:3:10 1139:4:5 1139:5:4 1139:6:3 1139:7:2 1139:8:2 1139:9:2 1139:10:2 1140:1:1140 1140:2:33 1140:3:10 1140:4:5 1140:5:4 1140:6:3 1140:7:2 1140:8:2 1140:9:2 1140:10:2 1141:1:1141 1141:2:33 1141:3:10 1141:4:5 1141:5:4 1141:6:3 1141:7:2 1141:8:2 1141:9:2 1141:10:2 1142:1:1142 1142:2:33 1142:3:10 1142:4:5 1142:5:4 1142:6:3 1142:7:2 1142:8:2 1142:9:2 1142:10:2 1143:1:1143 1143:2:33 1143:3:10 1143:4:5 1143:5:4 1143:6:3 1143:7:2 1143:8:2 1143:9:2 1143:10:2 1144:1:1144 1144:2:33 1144:3:10 1144:4:5 1144:5:4 1144:6:3 1144:7:2 1144:8:2 1144:9:2 1144:10:2 1145:1:1145 1145:2:33 1145:3:10 1145:4:5 1145:5:4 1145:6:3 1145:7:2 1145:8:2 1145:9:2 1145:10:2 1146:1:1146 1146:2:33 1146:3:10 1146:4:5 1146:5:4 1146:6:3 1146:7:2 1146:8:2 1146:9:2 1146:10:2 1147:1:1147 1147:2:33 1147:3:10 1147:4:5 1147:5:4 1147:6:3 1147:7:2 1147:8:2 1147:9:2 1147:10:2 1148:1:1148 1148:2:33 1148:3:10 1148:4:5 1148:5:4 1148:6:3 1148:7:2 1148:8:2 1148:9:2 1148:10:2 1149:1:1149 1149:2:33 1149:3:10 1149:4:5 1149:5:4 1149:6:3 1149:7:2 1149:8:2 1149:9:2 1149:10:2 1150:1:1150 1150:2:33 1150:3:10 1150:4:5 1150:5:4 1150:6:3 1150:7:2 1150:8:2 1150:9:2 1150:10:2 1151:1:1151 1151:2:33 1151:3:10 1151:4:5 1151:5:4 1151:6:3 1151:7:2 1151:8:2 1151:9:2 1151:10:2 1152:1:1152 1152:2:33 1152:3:10 1152:4:5 1152:5:4 1152:6:3 1152:7:2 1152:8:2 1152:9:2 1152:10:2 1153:1:1153 1153:2:33 1153:3:10 1153:4:5 1153:5:4 1153:6:3 1153:7:2 1153:8:2 1153:9:2 1153:10:2 1154:1:1154 1154:2:33 1154:3:10 1154:4:5 1154:5:4 1154:6:3 1154:7:2 1154:8:2 1154:9:2 1154:10:2 1155:1:1155 1155:2:33 1155:3:10 1155:4:5 1155:5:4 1155:6:3 1155:7:2 1155:8:2 1155:9:2 1155:10:2 1156:1:1156 1156:2:34 1156:3:10 1156:4:5 1156:5:4 1156:6:3 1156:7:2 1156:8:2 1156:9:2 1156:10:2 1157:1:1157 1157:2:34 1157:3:10 1157:4:5 1157:5:4 1157:6:3 1157:7:2 1157:8:2 1157:9:2 1157:10:2 1158:1:1158 1158:2:34 1158:3:10 1158:4:5 1158:5:4 1158:6:3 1158:7:2 1158:8:2 1158:9:2 1158:10:2 1159:1:1159 1159:2:34 1159:3:10 1159:4:5 1159:5:4 1159:6:3 1159:7:2 1159:8:2 1159:9:2 1159:10:2 1160:1:1160 1160:2:34 1160:3:10 1160:4:5 1160:5:4 1160:6:3 1160:7:2 1160:8:2 1160:9:2 1160:10:2 1161:1:1161 1161:2:34 1161:3:10 1161:4:5 1161:5:4 1161:6:3 1161:7:2 1161:8:2 1161:9:2 1161:10:2 1162:1:1162 1162:2:34 1162:3:10 1162:4:5 1162:5:4 1162:6:3 1162:7:2 1162:8:2 1162:9:2 1162:10:2 1163:1:1163 1163:2:34 1163:3:10 1163:4:5 1163:5:4 1163:6:3 1163:7:2 1163:8:2 1163:9:2 1163:10:2 1164:1:1164 1164:2:34 1164:3:10 1164:4:5 1164:5:4 1164:6:3 1164:7:2 1164:8:2 1164:9:2 1164:10:2 1165:1:1165 1165:2:34 1165:3:10 1165:4:5 1165:5:4 1165:6:3 1165:7:2 1165:8:2 1165:9:2 1165:10:2 1166:1:1166 1166:2:34 1166:3:10 1166:4:5 1166:5:4 1166:6:3 1166:7:2 1166:8:2 1166:9:2 1166:10:2 1167:1:1167 1167:2:34 1167:3:10 1167:4:5 1167:5:4 1167:6:3 1167:7:2 1167:8:2 1167:9:2 1167:10:2 1168:1:1168 1168:2:34 1168:3:10 1168:4:5 1168:5:4 1168:6:3 1168:7:2 1168:8:2 1168:9:2 1168:10:2 1169:1:1169 1169:2:34 1169:3:10 1169:4:5 1169:5:4 1169:6:3 1169:7:2 1169:8:2 1169:9:2 1169:10:2 1170:1:1170 1170:2:34 1170:3:10 1170:4:5 1170:5:4 1170:6:3 1170:7:2 1170:8:2 1170:9:2 1170:10:2 1171:1:1171 1171:2:34 1171:3:10 1171:4:5 1171:5:4 1171:6:3 1171:7:2 1171:8:2 1171:9:2 1171:10:2 1172:1:1172 1172:2:34 1172:3:10 1172:4:5 1172:5:4 1172:6:3 1172:7:2 1172:8:2 1172:9:2 1172:10:2 1173:1:1173 1173:2:34 1173:3:10 1173:4:5 1173:5:4 1173:6:3 1173:7:2 1173:8:2 1173:9:2 1173:10:2 1174:1:1174 1174:2:34 1174:3:10 1174:4:5 1174:5:4 1174:6:3 1174:7:2 1174:8:2 1174:9:2 1174:10:2 1175:1:1175 1175:2:34 1175:3:10 1175:4:5 1175:5:4 1175:6:3 1175:7:2 1175:8:2 1175:9:2 1175:10:2 1176:1:1176 1176:2:34 1176:3:10 1176:4:5 1176:5:4 1176:6:3 1176:7:2 1176:8:2 1176:9:2 1176:10:2 1177:1:1177 1177:2:34 1177:3:10 1177:4:5 1177:5:4 1177:6:3 1177:7:2 1177:8:2 1177:9:2 1177:10:2 1178:1:1178 1178:2:34 1178:3:10 1178:4:5 1178:5:4 1178:6:3 1178:7:2 1178:8:2 1178:9:2 1178:10:2 1179:1:1179 1179:2:34 1179:3:10 1179:4:5 1179:5:4 1179:6:3 1179:7:2 1179:8:2 1179:9:2 1179:10:2 1180:1:1180 1180:2:34 1180:3:10 1180:4:5 1180:5:4 1180:6:3 1180:7:2 1180:8:2 1180:9:2 1180:10:2 1181:1:1181 1181:2:34 1181:3:10 1181:4:5 1181:5:4 1181:6:3 1181:7:2 1181:8:2 1181:9:2 1181:10:2 1182:1:1182 1182:2:34 1182:3:10 1182:4:5 1182:5:4 1182:6:3 1182:7:2 1182:8:2 1182:9:2 1182:10:2 1183:1:1183 1183:2:34 1183:3:10 1183:4:5 1183:5:4 1183:6:3 1183:7:2 1183:8:2 1183:9:2 1183:10:2 1184:1:1184 1184:2:34 1184:3:10 1184:4:5 1184:5:4 1184:6:3 1184:7:2 1184:8:2 1184:9:2 1184:10:2 1185:1:1185 1185:2:34 1185:3:10 1185:4:5 1185:5:4 1185:6:3 1185:7:2 1185:8:2 1185:9:2 1185:10:2 1186:1:1186 1186:2:34 1186:3:10 1186:4:5 1186:5:4 1186:6:3 1186:7:2 1186:8:2 1186:9:2 1186:10:2 1187:1:1187 1187:2:34 1187:3:10 1187:4:5 1187:5:4 1187:6:3 1187:7:2 1187:8:2 1187:9:2 1187:10:2 1188:1:1188 1188:2:34 1188:3:10 1188:4:5 1188:5:4 1188:6:3 1188:7:2 1188:8:2 1188:9:2 1188:10:2 1189:1:1189 1189:2:34 1189:3:10 1189:4:5 1189:5:4 1189:6:3 1189:7:2 1189:8:2 1189:9:2 1189:10:2 1190:1:1190 1190:2:34 1190:3:10 1190:4:5 1190:5:4 1190:6:3 1190:7:2 1190:8:2 1190:9:2 1190:10:2 1191:1:1191 1191:2:34 1191:3:10 1191:4:5 1191:5:4 1191:6:3 1191:7:2 1191:8:2 1191:9:2 1191:10:2 1192:1:1192 1192:2:34 1192:3:10 1192:4:5 1192:5:4 1192:6:3 1192:7:2 1192:8:2 1192:9:2 1192:10:2 1193:1:1193 1193:2:34 1193:3:10 1193:4:5 1193:5:4 1193:6:3 1193:7:2 1193:8:2 1193:9:2 1193:10:2 1194:1:1194 1194:2:34 1194:3:10 1194:4:5 1194:5:4 1194:6:3 1194:7:2 1194:8:2 1194:9:2 1194:10:2 1195:1:1195 1195:2:34 1195:3:10 1195:4:5 1195:5:4 1195:6:3 1195:7:2 1195:8:2 1195:9:2 1195:10:2 1196:1:1196 1196:2:34 1196:3:10 1196:4:5 1196:5:4 1196:6:3 1196:7:2 1196:8:2 1196:9:2 1196:10:2 1197:1:1197 1197:2:34 1197:3:10 1197:4:5 1197:5:4 1197:6:3 1197:7:2 1197:8:2 1197:9:2 1197:10:2 1198:1:1198 1198:2:34 1198:3:10 1198:4:5 1198:5:4 1198:6:3 1198:7:2 1198:8:2 1198:9:2 1198:10:2 1199:1:1199 1199:2:34 1199:3:10 1199:4:5 1199:5:4 1199:6:3 1199:7:2 1199:8:2 1199:9:2 1199:10:2 1200:1:1200 1200:2:34 1200:3:10 1200:4:5 1200:5:4 1200:6:3 1200:7:2 1200:8:2 1200:9:2 1200:10:2 1201:1:1201 1201:2:34 1201:3:10 1201:4:5 1201:5:4 1201:6:3 1201:7:2 1201:8:2 1201:9:2 1201:10:2 1202:1:1202 1202:2:34 1202:3:10 1202:4:5 1202:5:4 1202:6:3 1202:7:2 1202:8:2 1202:9:2 1202:10:2 1203:1:1203 1203:2:34 1203:3:10 1203:4:5 1203:5:4 1203:6:3 1203:7:2 1203:8:2 1203:9:2 1203:10:2 1204:1:1204 1204:2:34 1204:3:10 1204:4:5 1204:5:4 1204:6:3 1204:7:2 1204:8:2 1204:9:2 1204:10:2 1205:1:1205 1205:2:34 1205:3:10 1205:4:5 1205:5:4 1205:6:3 1205:7:2 1205:8:2 1205:9:2 1205:10:2 1206:1:1206 1206:2:34 1206:3:10 1206:4:5 1206:5:4 1206:6:3 1206:7:2 1206:8:2 1206:9:2 1206:10:2 1207:1:1207 1207:2:34 1207:3:10 1207:4:5 1207:5:4 1207:6:3 1207:7:2 1207:8:2 1207:9:2 1207:10:2 1208:1:1208 1208:2:34 1208:3:10 1208:4:5 1208:5:4 1208:6:3 1208:7:2 1208:8:2 1208:9:2 1208:10:2 1209:1:1209 1209:2:34 1209:3:10 1209:4:5 1209:5:4 1209:6:3 1209:7:2 1209:8:2 1209:9:2 1209:10:2 1210:1:1210 1210:2:34 1210:3:10 1210:4:5 1210:5:4 1210:6:3 1210:7:2 1210:8:2 1210:9:2 1210:10:2 1211:1:1211 1211:2:34 1211:3:10 1211:4:5 1211:5:4 1211:6:3 1211:7:2 1211:8:2 1211:9:2 1211:10:2 1212:1:1212 1212:2:34 1212:3:10 1212:4:5 1212:5:4 1212:6:3 1212:7:2 1212:8:2 1212:9:2 1212:10:2 1213:1:1213 1213:2:34 1213:3:10 1213:4:5 1213:5:4 1213:6:3 1213:7:2 1213:8:2 1213:9:2 1213:10:2 1214:1:1214 1214:2:34 1214:3:10 1214:4:5 1214:5:4 1214:6:3 1214:7:2 1214:8:2 1214:9:2 1214:10:2 1215:1:1215 1215:2:34 1215:3:10 1215:4:5 1215:5:4 1215:6:3 1215:7:2 1215:8:2 1215:9:2 1215:10:2 1216:1:1216 1216:2:34 1216:3:10 1216:4:5 1216:5:4 1216:6:3 1216:7:2 1216:8:2 1216:9:2 1216:10:2 1217:1:1217 1217:2:34 1217:3:10 1217:4:5 1217:5:4 1217:6:3 1217:7:2 1217:8:2 1217:9:2 1217:10:2 1218:1:1218 1218:2:34 1218:3:10 1218:4:5 1218:5:4 1218:6:3 1218:7:2 1218:8:2 1218:9:2 1218:10:2 1219:1:1219 1219:2:34 1219:3:10 1219:4:5 1219:5:4 1219:6:3 1219:7:2 1219:8:2 1219:9:2 1219:10:2 1220:1:1220 1220:2:34 1220:3:10 1220:4:5 1220:5:4 1220:6:3 1220:7:2 1220:8:2 1220:9:2 1220:10:2 1221:1:1221 1221:2:34 1221:3:10 1221:4:5 1221:5:4 1221:6:3 1221:7:2 1221:8:2 1221:9:2 1221:10:2 1222:1:1222 1222:2:34 1222:3:10 1222:4:5 1222:5:4 1222:6:3 1222:7:2 1222:8:2 1222:9:2 1222:10:2 1223:1:1223 1223:2:34 1223:3:10 1223:4:5 1223:5:4 1223:6:3 1223:7:2 1223:8:2 1223:9:2 1223:10:2 1224:1:1224 1224:2:34 1224:3:10 1224:4:5 1224:5:4 1224:6:3 1224:7:2 1224:8:2 1224:9:2 1224:10:2 1225:1:1225 1225:2:35 1225:3:10 1225:4:5 1225:5:4 1225:6:3 1225:7:2 1225:8:2 1225:9:2 1225:10:2 1226:1:1226 1226:2:35 1226:3:10 1226:4:5 1226:5:4 1226:6:3 1226:7:2 1226:8:2 1226:9:2 1226:10:2 1227:1:1227 1227:2:35 1227:3:10 1227:4:5 1227:5:4 1227:6:3 1227:7:2 1227:8:2 1227:9:2 1227:10:2 1228:1:1228 1228:2:35 1228:3:10 1228:4:5 1228:5:4 1228:6:3 1228:7:2 1228:8:2 1228:9:2 1228:10:2 1229:1:1229 1229:2:35 1229:3:10 1229:4:5 1229:5:4 1229:6:3 1229:7:2 1229:8:2 1229:9:2 1229:10:2 1230:1:1230 1230:2:35 1230:3:10 1230:4:5 1230:5:4 1230:6:3 1230:7:2 1230:8:2 1230:9:2 1230:10:2 1231:1:1231 1231:2:35 1231:3:10 1231:4:5 1231:5:4 1231:6:3 1231:7:2 1231:8:2 1231:9:2 1231:10:2 1232:1:1232 1232:2:35 1232:3:10 1232:4:5 1232:5:4 1232:6:3 1232:7:2 1232:8:2 1232:9:2 1232:10:2 1233:1:1233 1233:2:35 1233:3:10 1233:4:5 1233:5:4 1233:6:3 1233:7:2 1233:8:2 1233:9:2 1233:10:2 1234:1:1234 1234:2:35 1234:3:10 1234:4:5 1234:5:4 1234:6:3 1234:7:2 1234:8:2 1234:9:2 1234:10:2 1235:1:1235 1235:2:35 1235:3:10 1235:4:5 1235:5:4 1235:6:3 1235:7:2 1235:8:2 1235:9:2 1235:10:2 1236:1:1236 1236:2:35 1236:3:10 1236:4:5 1236:5:4 1236:6:3 1236:7:2 1236:8:2 1236:9:2 1236:10:2 1237:1:1237 1237:2:35 1237:3:10 1237:4:5 1237:5:4 1237:6:3 1237:7:2 1237:8:2 1237:9:2 1237:10:2 1238:1:1238 1238:2:35 1238:3:10 1238:4:5 1238:5:4 1238:6:3 1238:7:2 1238:8:2 1238:9:2 1238:10:2 1239:1:1239 1239:2:35 1239:3:10 1239:4:5 1239:5:4 1239:6:3 1239:7:2 1239:8:2 1239:9:2 1239:10:2 1240:1:1240 1240:2:35 1240:3:10 1240:4:5 1240:5:4 1240:6:3 1240:7:2 1240:8:2 1240:9:2 1240:10:2 1241:1:1241 1241:2:35 1241:3:10 1241:4:5 1241:5:4 1241:6:3 1241:7:2 1241:8:2 1241:9:2 1241:10:2 1242:1:1242 1242:2:35 1242:3:10 1242:4:5 1242:5:4 1242:6:3 1242:7:2 1242:8:2 1242:9:2 1242:10:2 1243:1:1243 1243:2:35 1243:3:10 1243:4:5 1243:5:4 1243:6:3 1243:7:2 1243:8:2 1243:9:2 1243:10:2 1244:1:1244 1244:2:35 1244:3:10 1244:4:5 1244:5:4 1244:6:3 1244:7:2 1244:8:2 1244:9:2 1244:10:2 1245:1:1245 1245:2:35 1245:3:10 1245:4:5 1245:5:4 1245:6:3 1245:7:2 1245:8:2 1245:9:2 1245:10:2 1246:1:1246 1246:2:35 1246:3:10 1246:4:5 1246:5:4 1246:6:3 1246:7:2 1246:8:2 1246:9:2 1246:10:2 1247:1:1247 1247:2:35 1247:3:10 1247:4:5 1247:5:4 1247:6:3 1247:7:2 1247:8:2 1247:9:2 1247:10:2 1248:1:1248 1248:2:35 1248:3:10 1248:4:5 1248:5:4 1248:6:3 1248:7:2 1248:8:2 1248:9:2 1248:10:2 1249:1:1249 1249:2:35 1249:3:10 1249:4:5 1249:5:4 1249:6:3 1249:7:2 1249:8:2 1249:9:2 1249:10:2 1250:1:1250 1250:2:35 1250:3:10 1250:4:5 1250:5:4 1250:6:3 1250:7:2 1250:8:2 1250:9:2 1250:10:2 1251:1:1251 1251:2:35 1251:3:10 1251:4:5 1251:5:4 1251:6:3 1251:7:2 1251:8:2 1251:9:2 1251:10:2 1252:1:1252 1252:2:35 1252:3:10 1252:4:5 1252:5:4 1252:6:3 1252:7:2 1252:8:2 1252:9:2 1252:10:2 1253:1:1253 1253:2:35 1253:3:10 1253:4:5 1253:5:4 1253:6:3 1253:7:2 1253:8:2 1253:9:2 1253:10:2 1254:1:1254 1254:2:35 1254:3:10 1254:4:5 1254:5:4 1254:6:3 1254:7:2 1254:8:2 1254:9:2 1254:10:2 1255:1:1255 1255:2:35 1255:3:10 1255:4:5 1255:5:4 1255:6:3 1255:7:2 1255:8:2 1255:9:2 1255:10:2 1256:1:1256 1256:2:35 1256:3:10 1256:4:5 1256:5:4 1256:6:3 1256:7:2 1256:8:2 1256:9:2 1256:10:2 1257:1:1257 1257:2:35 1257:3:10 1257:4:5 1257:5:4 1257:6:3 1257:7:2 1257:8:2 1257:9:2 1257:10:2 1258:1:1258 1258:2:35 1258:3:10 1258:4:5 1258:5:4 1258:6:3 1258:7:2 1258:8:2 1258:9:2 1258:10:2 1259:1:1259 1259:2:35 1259:3:10 1259:4:5 1259:5:4 1259:6:3 1259:7:2 1259:8:2 1259:9:2 1259:10:2 1260:1:1260 1260:2:35 1260:3:10 1260:4:5 1260:5:4 1260:6:3 1260:7:2 1260:8:2 1260:9:2 1260:10:2 1261:1:1261 1261:2:35 1261:3:10 1261:4:5 1261:5:4 1261:6:3 1261:7:2 1261:8:2 1261:9:2 1261:10:2 1262:1:1262 1262:2:35 1262:3:10 1262:4:5 1262:5:4 1262:6:3 1262:7:2 1262:8:2 1262:9:2 1262:10:2 1263:1:1263 1263:2:35 1263:3:10 1263:4:5 1263:5:4 1263:6:3 1263:7:2 1263:8:2 1263:9:2 1263:10:2 1264:1:1264 1264:2:35 1264:3:10 1264:4:5 1264:5:4 1264:6:3 1264:7:2 1264:8:2 1264:9:2 1264:10:2 1265:1:1265 1265:2:35 1265:3:10 1265:4:5 1265:5:4 1265:6:3 1265:7:2 1265:8:2 1265:9:2 1265:10:2 1266:1:1266 1266:2:35 1266:3:10 1266:4:5 1266:5:4 1266:6:3 1266:7:2 1266:8:2 1266:9:2 1266:10:2 1267:1:1267 1267:2:35 1267:3:10 1267:4:5 1267:5:4 1267:6:3 1267:7:2 1267:8:2 1267:9:2 1267:10:2 1268:1:1268 1268:2:35 1268:3:10 1268:4:5 1268:5:4 1268:6:3 1268:7:2 1268:8:2 1268:9:2 1268:10:2 1269:1:1269 1269:2:35 1269:3:10 1269:4:5 1269:5:4 1269:6:3 1269:7:2 1269:8:2 1269:9:2 1269:10:2 1270:1:1270 1270:2:35 1270:3:10 1270:4:5 1270:5:4 1270:6:3 1270:7:2 1270:8:2 1270:9:2 1270:10:2 1271:1:1271 1271:2:35 1271:3:10 1271:4:5 1271:5:4 1271:6:3 1271:7:2 1271:8:2 1271:9:2 1271:10:2 1272:1:1272 1272:2:35 1272:3:10 1272:4:5 1272:5:4 1272:6:3 1272:7:2 1272:8:2 1272:9:2 1272:10:2 1273:1:1273 1273:2:35 1273:3:10 1273:4:5 1273:5:4 1273:6:3 1273:7:2 1273:8:2 1273:9:2 1273:10:2 1274:1:1274 1274:2:35 1274:3:10 1274:4:5 1274:5:4 1274:6:3 1274:7:2 1274:8:2 1274:9:2 1274:10:2 1275:1:1275 1275:2:35 1275:3:10 1275:4:5 1275:5:4 1275:6:3 1275:7:2 1275:8:2 1275:9:2 1275:10:2 1276:1:1276 1276:2:35 1276:3:10 1276:4:5 1276:5:4 1276:6:3 1276:7:2 1276:8:2 1276:9:2 1276:10:2 1277:1:1277 1277:2:35 1277:3:10 1277:4:5 1277:5:4 1277:6:3 1277:7:2 1277:8:2 1277:9:2 1277:10:2 1278:1:1278 1278:2:35 1278:3:10 1278:4:5 1278:5:4 1278:6:3 1278:7:2 1278:8:2 1278:9:2 1278:10:2 1279:1:1279 1279:2:35 1279:3:10 1279:4:5 1279:5:4 1279:6:3 1279:7:2 1279:8:2 1279:9:2 1279:10:2 1280:1:1280 1280:2:35 1280:3:10 1280:4:5 1280:5:4 1280:6:3 1280:7:2 1280:8:2 1280:9:2 1280:10:2 1281:1:1281 1281:2:35 1281:3:10 1281:4:5 1281:5:4 1281:6:3 1281:7:2 1281:8:2 1281:9:2 1281:10:2 1282:1:1282 1282:2:35 1282:3:10 1282:4:5 1282:5:4 1282:6:3 1282:7:2 1282:8:2 1282:9:2 1282:10:2 1283:1:1283 1283:2:35 1283:3:10 1283:4:5 1283:5:4 1283:6:3 1283:7:2 1283:8:2 1283:9:2 1283:10:2 1284:1:1284 1284:2:35 1284:3:10 1284:4:5 1284:5:4 1284:6:3 1284:7:2 1284:8:2 1284:9:2 1284:10:2 1285:1:1285 1285:2:35 1285:3:10 1285:4:5 1285:5:4 1285:6:3 1285:7:2 1285:8:2 1285:9:2 1285:10:2 1286:1:1286 1286:2:35 1286:3:10 1286:4:5 1286:5:4 1286:6:3 1286:7:2 1286:8:2 1286:9:2 1286:10:2 1287:1:1287 1287:2:35 1287:3:10 1287:4:5 1287:5:4 1287:6:3 1287:7:2 1287:8:2 1287:9:2 1287:10:2 1288:1:1288 1288:2:35 1288:3:10 1288:4:5 1288:5:4 1288:6:3 1288:7:2 1288:8:2 1288:9:2 1288:10:2 1289:1:1289 1289:2:35 1289:3:10 1289:4:5 1289:5:4 1289:6:3 1289:7:2 1289:8:2 1289:9:2 1289:10:2 1290:1:1290 1290:2:35 1290:3:10 1290:4:5 1290:5:4 1290:6:3 1290:7:2 1290:8:2 1290:9:2 1290:10:2 1291:1:1291 1291:2:35 1291:3:10 1291:4:5 1291:5:4 1291:6:3 1291:7:2 1291:8:2 1291:9:2 1291:10:2 1292:1:1292 1292:2:35 1292:3:10 1292:4:5 1292:5:4 1292:6:3 1292:7:2 1292:8:2 1292:9:2 1292:10:2 1293:1:1293 1293:2:35 1293:3:10 1293:4:5 1293:5:4 1293:6:3 1293:7:2 1293:8:2 1293:9:2 1293:10:2 1294:1:1294 1294:2:35 1294:3:10 1294:4:5 1294:5:4 1294:6:3 1294:7:2 1294:8:2 1294:9:2 1294:10:2 1295:1:1295 1295:2:35 1295:3:10 1295:4:5 1295:5:4 1295:6:3 1295:7:2 1295:8:2 1295:9:2 1295:10:2 1296:1:1296 1296:2:36 1296:3:10 1296:4:6 1296:5:4 1296:6:3 1296:7:2 1296:8:2 1296:9:2 1296:10:2 1297:1:1297 1297:2:36 1297:3:10 1297:4:6 1297:5:4 1297:6:3 1297:7:2 1297:8:2 1297:9:2 1297:10:2 1298:1:1298 1298:2:36 1298:3:10 1298:4:6 1298:5:4 1298:6:3 1298:7:2 1298:8:2 1298:9:2 1298:10:2 1299:1:1299 1299:2:36 1299:3:10 1299:4:6 1299:5:4 1299:6:3 1299:7:2 1299:8:2 1299:9:2 1299:10:2 1300:1:1300 1300:2:36 1300:3:10 1300:4:6 1300:5:4 1300:6:3 1300:7:2 1300:8:2 1300:9:2 1300:10:2 1301:1:1301 1301:2:36 1301:3:10 1301:4:6 1301:5:4 1301:6:3 1301:7:2 1301:8:2 1301:9:2 1301:10:2 1302:1:1302 1302:2:36 1302:3:10 1302:4:6 1302:5:4 1302:6:3 1302:7:2 1302:8:2 1302:9:2 1302:10:2 1303:1:1303 1303:2:36 1303:3:10 1303:4:6 1303:5:4 1303:6:3 1303:7:2 1303:8:2 1303:9:2 1303:10:2 1304:1:1304 1304:2:36 1304:3:10 1304:4:6 1304:5:4 1304:6:3 1304:7:2 1304:8:2 1304:9:2 1304:10:2 1305:1:1305 1305:2:36 1305:3:10 1305:4:6 1305:5:4 1305:6:3 1305:7:2 1305:8:2 1305:9:2 1305:10:2 1306:1:1306 1306:2:36 1306:3:10 1306:4:6 1306:5:4 1306:6:3 1306:7:2 1306:8:2 1306:9:2 1306:10:2 1307:1:1307 1307:2:36 1307:3:10 1307:4:6 1307:5:4 1307:6:3 1307:7:2 1307:8:2 1307:9:2 1307:10:2 1308:1:1308 1308:2:36 1308:3:10 1308:4:6 1308:5:4 1308:6:3 1308:7:2 1308:8:2 1308:9:2 1308:10:2 1309:1:1309 1309:2:36 1309:3:10 1309:4:6 1309:5:4 1309:6:3 1309:7:2 1309:8:2 1309:9:2 1309:10:2 1310:1:1310 1310:2:36 1310:3:10 1310:4:6 1310:5:4 1310:6:3 1310:7:2 1310:8:2 1310:9:2 1310:10:2 1311:1:1311 1311:2:36 1311:3:10 1311:4:6 1311:5:4 1311:6:3 1311:7:2 1311:8:2 1311:9:2 1311:10:2 1312:1:1312 1312:2:36 1312:3:10 1312:4:6 1312:5:4 1312:6:3 1312:7:2 1312:8:2 1312:9:2 1312:10:2 1313:1:1313 1313:2:36 1313:3:10 1313:4:6 1313:5:4 1313:6:3 1313:7:2 1313:8:2 1313:9:2 1313:10:2 1314:1:1314 1314:2:36 1314:3:10 1314:4:6 1314:5:4 1314:6:3 1314:7:2 1314:8:2 1314:9:2 1314:10:2 1315:1:1315 1315:2:36 1315:3:10 1315:4:6 1315:5:4 1315:6:3 1315:7:2 1315:8:2 1315:9:2 1315:10:2 1316:1:1316 1316:2:36 1316:3:10 1316:4:6 1316:5:4 1316:6:3 1316:7:2 1316:8:2 1316:9:2 1316:10:2 1317:1:1317 1317:2:36 1317:3:10 1317:4:6 1317:5:4 1317:6:3 1317:7:2 1317:8:2 1317:9:2 1317:10:2 1318:1:1318 1318:2:36 1318:3:10 1318:4:6 1318:5:4 1318:6:3 1318:7:2 1318:8:2 1318:9:2 1318:10:2 1319:1:1319 1319:2:36 1319:3:10 1319:4:6 1319:5:4 1319:6:3 1319:7:2 1319:8:2 1319:9:2 1319:10:2 1320:1:1320 1320:2:36 1320:3:10 1320:4:6 1320:5:4 1320:6:3 1320:7:2 1320:8:2 1320:9:2 1320:10:2 1321:1:1321 1321:2:36 1321:3:10 1321:4:6 1321:5:4 1321:6:3 1321:7:2 1321:8:2 1321:9:2 1321:10:2 1322:1:1322 1322:2:36 1322:3:10 1322:4:6 1322:5:4 1322:6:3 1322:7:2 1322:8:2 1322:9:2 1322:10:2 1323:1:1323 1323:2:36 1323:3:10 1323:4:6 1323:5:4 1323:6:3 1323:7:2 1323:8:2 1323:9:2 1323:10:2 1324:1:1324 1324:2:36 1324:3:10 1324:4:6 1324:5:4 1324:6:3 1324:7:2 1324:8:2 1324:9:2 1324:10:2 1325:1:1325 1325:2:36 1325:3:10 1325:4:6 1325:5:4 1325:6:3 1325:7:2 1325:8:2 1325:9:2 1325:10:2 1326:1:1326 1326:2:36 1326:3:10 1326:4:6 1326:5:4 1326:6:3 1326:7:2 1326:8:2 1326:9:2 1326:10:2 1327:1:1327 1327:2:36 1327:3:10 1327:4:6 1327:5:4 1327:6:3 1327:7:2 1327:8:2 1327:9:2 1327:10:2 1328:1:1328 1328:2:36 1328:3:10 1328:4:6 1328:5:4 1328:6:3 1328:7:2 1328:8:2 1328:9:2 1328:10:2 1329:1:1329 1329:2:36 1329:3:10 1329:4:6 1329:5:4 1329:6:3 1329:7:2 1329:8:2 1329:9:2 1329:10:2 1330:1:1330 1330:2:36 1330:3:10 1330:4:6 1330:5:4 1330:6:3 1330:7:2 1330:8:2 1330:9:2 1330:10:2 1331:1:1331 1331:2:36 1331:3:11 1331:4:6 1331:5:4 1331:6:3 1331:7:2 1331:8:2 1331:9:2 1331:10:2 1332:1:1332 1332:2:36 1332:3:11 1332:4:6 1332:5:4 1332:6:3 1332:7:2 1332:8:2 1332:9:2 1332:10:2 1333:1:1333 1333:2:36 1333:3:11 1333:4:6 1333:5:4 1333:6:3 1333:7:2 1333:8:2 1333:9:2 1333:10:2 1334:1:1334 1334:2:36 1334:3:11 1334:4:6 1334:5:4 1334:6:3 1334:7:2 1334:8:2 1334:9:2 1334:10:2 1335:1:1335 1335:2:36 1335:3:11 1335:4:6 1335:5:4 1335:6:3 1335:7:2 1335:8:2 1335:9:2 1335:10:2 1336:1:1336 1336:2:36 1336:3:11 1336:4:6 1336:5:4 1336:6:3 1336:7:2 1336:8:2 1336:9:2 1336:10:2 1337:1:1337 1337:2:36 1337:3:11 1337:4:6 1337:5:4 1337:6:3 1337:7:2 1337:8:2 1337:9:2 1337:10:2 1338:1:1338 1338:2:36 1338:3:11 1338:4:6 1338:5:4 1338:6:3 1338:7:2 1338:8:2 1338:9:2 1338:10:2 1339:1:1339 1339:2:36 1339:3:11 1339:4:6 1339:5:4 1339:6:3 1339:7:2 1339:8:2 1339:9:2 1339:10:2 1340:1:1340 1340:2:36 1340:3:11 1340:4:6 1340:5:4 1340:6:3 1340:7:2 1340:8:2 1340:9:2 1340:10:2 1341:1:1341 1341:2:36 1341:3:11 1341:4:6 1341:5:4 1341:6:3 1341:7:2 1341:8:2 1341:9:2 1341:10:2 1342:1:1342 1342:2:36 1342:3:11 1342:4:6 1342:5:4 1342:6:3 1342:7:2 1342:8:2 1342:9:2 1342:10:2 1343:1:1343 1343:2:36 1343:3:11 1343:4:6 1343:5:4 1343:6:3 1343:7:2 1343:8:2 1343:9:2 1343:10:2 1344:1:1344 1344:2:36 1344:3:11 1344:4:6 1344:5:4 1344:6:3 1344:7:2 1344:8:2 1344:9:2 1344:10:2 1345:1:1345 1345:2:36 1345:3:11 1345:4:6 1345:5:4 1345:6:3 1345:7:2 1345:8:2 1345:9:2 1345:10:2 1346:1:1346 1346:2:36 1346:3:11 1346:4:6 1346:5:4 1346:6:3 1346:7:2 1346:8:2 1346:9:2 1346:10:2 1347:1:1347 1347:2:36 1347:3:11 1347:4:6 1347:5:4 1347:6:3 1347:7:2 1347:8:2 1347:9:2 1347:10:2 1348:1:1348 1348:2:36 1348:3:11 1348:4:6 1348:5:4 1348:6:3 1348:7:2 1348:8:2 1348:9:2 1348:10:2 1349:1:1349 1349:2:36 1349:3:11 1349:4:6 1349:5:4 1349:6:3 1349:7:2 1349:8:2 1349:9:2 1349:10:2 1350:1:1350 1350:2:36 1350:3:11 1350:4:6 1350:5:4 1350:6:3 1350:7:2 1350:8:2 1350:9:2 1350:10:2 1351:1:1351 1351:2:36 1351:3:11 1351:4:6 1351:5:4 1351:6:3 1351:7:2 1351:8:2 1351:9:2 1351:10:2 1352:1:1352 1352:2:36 1352:3:11 1352:4:6 1352:5:4 1352:6:3 1352:7:2 1352:8:2 1352:9:2 1352:10:2 1353:1:1353 1353:2:36 1353:3:11 1353:4:6 1353:5:4 1353:6:3 1353:7:2 1353:8:2 1353:9:2 1353:10:2 1354:1:1354 1354:2:36 1354:3:11 1354:4:6 1354:5:4 1354:6:3 1354:7:2 1354:8:2 1354:9:2 1354:10:2 1355:1:1355 1355:2:36 1355:3:11 1355:4:6 1355:5:4 1355:6:3 1355:7:2 1355:8:2 1355:9:2 1355:10:2 1356:1:1356 1356:2:36 1356:3:11 1356:4:6 1356:5:4 1356:6:3 1356:7:2 1356:8:2 1356:9:2 1356:10:2 1357:1:1357 1357:2:36 1357:3:11 1357:4:6 1357:5:4 1357:6:3 1357:7:2 1357:8:2 1357:9:2 1357:10:2 1358:1:1358 1358:2:36 1358:3:11 1358:4:6 1358:5:4 1358:6:3 1358:7:2 1358:8:2 1358:9:2 1358:10:2 1359:1:1359 1359:2:36 1359:3:11 1359:4:6 1359:5:4 1359:6:3 1359:7:2 1359:8:2 1359:9:2 1359:10:2 1360:1:1360 1360:2:36 1360:3:11 1360:4:6 1360:5:4 1360:6:3 1360:7:2 1360:8:2 1360:9:2 1360:10:2 1361:1:1361 1361:2:36 1361:3:11 1361:4:6 1361:5:4 1361:6:3 1361:7:2 1361:8:2 1361:9:2 1361:10:2 1362:1:1362 1362:2:36 1362:3:11 1362:4:6 1362:5:4 1362:6:3 1362:7:2 1362:8:2 1362:9:2 1362:10:2 1363:1:1363 1363:2:36 1363:3:11 1363:4:6 1363:5:4 1363:6:3 1363:7:2 1363:8:2 1363:9:2 1363:10:2 1364:1:1364 1364:2:36 1364:3:11 1364:4:6 1364:5:4 1364:6:3 1364:7:2 1364:8:2 1364:9:2 1364:10:2 1365:1:1365 1365:2:36 1365:3:11 1365:4:6 1365:5:4 1365:6:3 1365:7:2 1365:8:2 1365:9:2 1365:10:2 1366:1:1366 1366:2:36 1366:3:11 1366:4:6 1366:5:4 1366:6:3 1366:7:2 1366:8:2 1366:9:2 1366:10:2 1367:1:1367 1367:2:36 1367:3:11 1367:4:6 1367:5:4 1367:6:3 1367:7:2 1367:8:2 1367:9:2 1367:10:2 1368:1:1368 1368:2:36 1368:3:11 1368:4:6 1368:5:4 1368:6:3 1368:7:2 1368:8:2 1368:9:2 1368:10:2 1369:1:1369 1369:2:37 1369:3:11 1369:4:6 1369:5:4 1369:6:3 1369:7:2 1369:8:2 1369:9:2 1369:10:2 1370:1:1370 1370:2:37 1370:3:11 1370:4:6 1370:5:4 1370:6:3 1370:7:2 1370:8:2 1370:9:2 1370:10:2 1371:1:1371 1371:2:37 1371:3:11 1371:4:6 1371:5:4 1371:6:3 1371:7:2 1371:8:2 1371:9:2 1371:10:2 1372:1:1372 1372:2:37 1372:3:11 1372:4:6 1372:5:4 1372:6:3 1372:7:2 1372:8:2 1372:9:2 1372:10:2 1373:1:1373 1373:2:37 1373:3:11 1373:4:6 1373:5:4 1373:6:3 1373:7:2 1373:8:2 1373:9:2 1373:10:2 1374:1:1374 1374:2:37 1374:3:11 1374:4:6 1374:5:4 1374:6:3 1374:7:2 1374:8:2 1374:9:2 1374:10:2 1375:1:1375 1375:2:37 1375:3:11 1375:4:6 1375:5:4 1375:6:3 1375:7:2 1375:8:2 1375:9:2 1375:10:2 1376:1:1376 1376:2:37 1376:3:11 1376:4:6 1376:5:4 1376:6:3 1376:7:2 1376:8:2 1376:9:2 1376:10:2 1377:1:1377 1377:2:37 1377:3:11 1377:4:6 1377:5:4 1377:6:3 1377:7:2 1377:8:2 1377:9:2 1377:10:2 1378:1:1378 1378:2:37 1378:3:11 1378:4:6 1378:5:4 1378:6:3 1378:7:2 1378:8:2 1378:9:2 1378:10:2 1379:1:1379 1379:2:37 1379:3:11 1379:4:6 1379:5:4 1379:6:3 1379:7:2 1379:8:2 1379:9:2 1379:10:2 1380:1:1380 1380:2:37 1380:3:11 1380:4:6 1380:5:4 1380:6:3 1380:7:2 1380:8:2 1380:9:2 1380:10:2 1381:1:1381 1381:2:37 1381:3:11 1381:4:6 1381:5:4 1381:6:3 1381:7:2 1381:8:2 1381:9:2 1381:10:2 1382:1:1382 1382:2:37 1382:3:11 1382:4:6 1382:5:4 1382:6:3 1382:7:2 1382:8:2 1382:9:2 1382:10:2 1383:1:1383 1383:2:37 1383:3:11 1383:4:6 1383:5:4 1383:6:3 1383:7:2 1383:8:2 1383:9:2 1383:10:2 1384:1:1384 1384:2:37 1384:3:11 1384:4:6 1384:5:4 1384:6:3 1384:7:2 1384:8:2 1384:9:2 1384:10:2 1385:1:1385 1385:2:37 1385:3:11 1385:4:6 1385:5:4 1385:6:3 1385:7:2 1385:8:2 1385:9:2 1385:10:2 1386:1:1386 1386:2:37 1386:3:11 1386:4:6 1386:5:4 1386:6:3 1386:7:2 1386:8:2 1386:9:2 1386:10:2 1387:1:1387 1387:2:37 1387:3:11 1387:4:6 1387:5:4 1387:6:3 1387:7:2 1387:8:2 1387:9:2 1387:10:2 1388:1:1388 1388:2:37 1388:3:11 1388:4:6 1388:5:4 1388:6:3 1388:7:2 1388:8:2 1388:9:2 1388:10:2 1389:1:1389 1389:2:37 1389:3:11 1389:4:6 1389:5:4 1389:6:3 1389:7:2 1389:8:2 1389:9:2 1389:10:2 1390:1:1390 1390:2:37 1390:3:11 1390:4:6 1390:5:4 1390:6:3 1390:7:2 1390:8:2 1390:9:2 1390:10:2 1391:1:1391 1391:2:37 1391:3:11 1391:4:6 1391:5:4 1391:6:3 1391:7:2 1391:8:2 1391:9:2 1391:10:2 1392:1:1392 1392:2:37 1392:3:11 1392:4:6 1392:5:4 1392:6:3 1392:7:2 1392:8:2 1392:9:2 1392:10:2 1393:1:1393 1393:2:37 1393:3:11 1393:4:6 1393:5:4 1393:6:3 1393:7:2 1393:8:2 1393:9:2 1393:10:2 1394:1:1394 1394:2:37 1394:3:11 1394:4:6 1394:5:4 1394:6:3 1394:7:2 1394:8:2 1394:9:2 1394:10:2 1395:1:1395 1395:2:37 1395:3:11 1395:4:6 1395:5:4 1395:6:3 1395:7:2 1395:8:2 1395:9:2 1395:10:2 1396:1:1396 1396:2:37 1396:3:11 1396:4:6 1396:5:4 1396:6:3 1396:7:2 1396:8:2 1396:9:2 1396:10:2 1397:1:1397 1397:2:37 1397:3:11 1397:4:6 1397:5:4 1397:6:3 1397:7:2 1397:8:2 1397:9:2 1397:10:2 1398:1:1398 1398:2:37 1398:3:11 1398:4:6 1398:5:4 1398:6:3 1398:7:2 1398:8:2 1398:9:2 1398:10:2 1399:1:1399 1399:2:37 1399:3:11 1399:4:6 1399:5:4 1399:6:3 1399:7:2 1399:8:2 1399:9:2 1399:10:2 1400:1:1400 1400:2:37 1400:3:11 1400:4:6 1400:5:4 1400:6:3 1400:7:2 1400:8:2 1400:9:2 1400:10:2 1401:1:1401 1401:2:37 1401:3:11 1401:4:6 1401:5:4 1401:6:3 1401:7:2 1401:8:2 1401:9:2 1401:10:2 1402:1:1402 1402:2:37 1402:3:11 1402:4:6 1402:5:4 1402:6:3 1402:7:2 1402:8:2 1402:9:2 1402:10:2 1403:1:1403 1403:2:37 1403:3:11 1403:4:6 1403:5:4 1403:6:3 1403:7:2 1403:8:2 1403:9:2 1403:10:2 1404:1:1404 1404:2:37 1404:3:11 1404:4:6 1404:5:4 1404:6:3 1404:7:2 1404:8:2 1404:9:2 1404:10:2 1405:1:1405 1405:2:37 1405:3:11 1405:4:6 1405:5:4 1405:6:3 1405:7:2 1405:8:2 1405:9:2 1405:10:2 1406:1:1406 1406:2:37 1406:3:11 1406:4:6 1406:5:4 1406:6:3 1406:7:2 1406:8:2 1406:9:2 1406:10:2 1407:1:1407 1407:2:37 1407:3:11 1407:4:6 1407:5:4 1407:6:3 1407:7:2 1407:8:2 1407:9:2 1407:10:2 1408:1:1408 1408:2:37 1408:3:11 1408:4:6 1408:5:4 1408:6:3 1408:7:2 1408:8:2 1408:9:2 1408:10:2 1409:1:1409 1409:2:37 1409:3:11 1409:4:6 1409:5:4 1409:6:3 1409:7:2 1409:8:2 1409:9:2 1409:10:2 1410:1:1410 1410:2:37 1410:3:11 1410:4:6 1410:5:4 1410:6:3 1410:7:2 1410:8:2 1410:9:2 1410:10:2 1411:1:1411 1411:2:37 1411:3:11 1411:4:6 1411:5:4 1411:6:3 1411:7:2 1411:8:2 1411:9:2 1411:10:2 1412:1:1412 1412:2:37 1412:3:11 1412:4:6 1412:5:4 1412:6:3 1412:7:2 1412:8:2 1412:9:2 1412:10:2 1413:1:1413 1413:2:37 1413:3:11 1413:4:6 1413:5:4 1413:6:3 1413:7:2 1413:8:2 1413:9:2 1413:10:2 1414:1:1414 1414:2:37 1414:3:11 1414:4:6 1414:5:4 1414:6:3 1414:7:2 1414:8:2 1414:9:2 1414:10:2 1415:1:1415 1415:2:37 1415:3:11 1415:4:6 1415:5:4 1415:6:3 1415:7:2 1415:8:2 1415:9:2 1415:10:2 1416:1:1416 1416:2:37 1416:3:11 1416:4:6 1416:5:4 1416:6:3 1416:7:2 1416:8:2 1416:9:2 1416:10:2 1417:1:1417 1417:2:37 1417:3:11 1417:4:6 1417:5:4 1417:6:3 1417:7:2 1417:8:2 1417:9:2 1417:10:2 1418:1:1418 1418:2:37 1418:3:11 1418:4:6 1418:5:4 1418:6:3 1418:7:2 1418:8:2 1418:9:2 1418:10:2 1419:1:1419 1419:2:37 1419:3:11 1419:4:6 1419:5:4 1419:6:3 1419:7:2 1419:8:2 1419:9:2 1419:10:2 1420:1:1420 1420:2:37 1420:3:11 1420:4:6 1420:5:4 1420:6:3 1420:7:2 1420:8:2 1420:9:2 1420:10:2 1421:1:1421 1421:2:37 1421:3:11 1421:4:6 1421:5:4 1421:6:3 1421:7:2 1421:8:2 1421:9:2 1421:10:2 1422:1:1422 1422:2:37 1422:3:11 1422:4:6 1422:5:4 1422:6:3 1422:7:2 1422:8:2 1422:9:2 1422:10:2 1423:1:1423 1423:2:37 1423:3:11 1423:4:6 1423:5:4 1423:6:3 1423:7:2 1423:8:2 1423:9:2 1423:10:2 1424:1:1424 1424:2:37 1424:3:11 1424:4:6 1424:5:4 1424:6:3 1424:7:2 1424:8:2 1424:9:2 1424:10:2 1425:1:1425 1425:2:37 1425:3:11 1425:4:6 1425:5:4 1425:6:3 1425:7:2 1425:8:2 1425:9:2 1425:10:2 1426:1:1426 1426:2:37 1426:3:11 1426:4:6 1426:5:4 1426:6:3 1426:7:2 1426:8:2 1426:9:2 1426:10:2 1427:1:1427 1427:2:37 1427:3:11 1427:4:6 1427:5:4 1427:6:3 1427:7:2 1427:8:2 1427:9:2 1427:10:2 1428:1:1428 1428:2:37 1428:3:11 1428:4:6 1428:5:4 1428:6:3 1428:7:2 1428:8:2 1428:9:2 1428:10:2 1429:1:1429 1429:2:37 1429:3:11 1429:4:6 1429:5:4 1429:6:3 1429:7:2 1429:8:2 1429:9:2 1429:10:2 1430:1:1430 1430:2:37 1430:3:11 1430:4:6 1430:5:4 1430:6:3 1430:7:2 1430:8:2 1430:9:2 1430:10:2 1431:1:1431 1431:2:37 1431:3:11 1431:4:6 1431:5:4 1431:6:3 1431:7:2 1431:8:2 1431:9:2 1431:10:2 1432:1:1432 1432:2:37 1432:3:11 1432:4:6 1432:5:4 1432:6:3 1432:7:2 1432:8:2 1432:9:2 1432:10:2 1433:1:1433 1433:2:37 1433:3:11 1433:4:6 1433:5:4 1433:6:3 1433:7:2 1433:8:2 1433:9:2 1433:10:2 1434:1:1434 1434:2:37 1434:3:11 1434:4:6 1434:5:4 1434:6:3 1434:7:2 1434:8:2 1434:9:2 1434:10:2 1435:1:1435 1435:2:37 1435:3:11 1435:4:6 1435:5:4 1435:6:3 1435:7:2 1435:8:2 1435:9:2 1435:10:2 1436:1:1436 1436:2:37 1436:3:11 1436:4:6 1436:5:4 1436:6:3 1436:7:2 1436:8:2 1436:9:2 1436:10:2 1437:1:1437 1437:2:37 1437:3:11 1437:4:6 1437:5:4 1437:6:3 1437:7:2 1437:8:2 1437:9:2 1437:10:2 1438:1:1438 1438:2:37 1438:3:11 1438:4:6 1438:5:4 1438:6:3 1438:7:2 1438:8:2 1438:9:2 1438:10:2 1439:1:1439 1439:2:37 1439:3:11 1439:4:6 1439:5:4 1439:6:3 1439:7:2 1439:8:2 1439:9:2 1439:10:2 1440:1:1440 1440:2:37 1440:3:11 1440:4:6 1440:5:4 1440:6:3 1440:7:2 1440:8:2 1440:9:2 1440:10:2 1441:1:1441 1441:2:37 1441:3:11 1441:4:6 1441:5:4 1441:6:3 1441:7:2 1441:8:2 1441:9:2 1441:10:2 1442:1:1442 1442:2:37 1442:3:11 1442:4:6 1442:5:4 1442:6:3 1442:7:2 1442:8:2 1442:9:2 1442:10:2 1443:1:1443 1443:2:37 1443:3:11 1443:4:6 1443:5:4 1443:6:3 1443:7:2 1443:8:2 1443:9:2 1443:10:2 1444:1:1444 1444:2:38 1444:3:11 1444:4:6 1444:5:4 1444:6:3 1444:7:2 1444:8:2 1444:9:2 1444:10:2 1445:1:1445 1445:2:38 1445:3:11 1445:4:6 1445:5:4 1445:6:3 1445:7:2 1445:8:2 1445:9:2 1445:10:2 1446:1:1446 1446:2:38 1446:3:11 1446:4:6 1446:5:4 1446:6:3 1446:7:2 1446:8:2 1446:9:2 1446:10:2 1447:1:1447 1447:2:38 1447:3:11 1447:4:6 1447:5:4 1447:6:3 1447:7:2 1447:8:2 1447:9:2 1447:10:2 1448:1:1448 1448:2:38 1448:3:11 1448:4:6 1448:5:4 1448:6:3 1448:7:2 1448:8:2 1448:9:2 1448:10:2 1449:1:1449 1449:2:38 1449:3:11 1449:4:6 1449:5:4 1449:6:3 1449:7:2 1449:8:2 1449:9:2 1449:10:2 1450:1:1450 1450:2:38 1450:3:11 1450:4:6 1450:5:4 1450:6:3 1450:7:2 1450:8:2 1450:9:2 1450:10:2 1451:1:1451 1451:2:38 1451:3:11 1451:4:6 1451:5:4 1451:6:3 1451:7:2 1451:8:2 1451:9:2 1451:10:2 1452:1:1452 1452:2:38 1452:3:11 1452:4:6 1452:5:4 1452:6:3 1452:7:2 1452:8:2 1452:9:2 1452:10:2 1453:1:1453 1453:2:38 1453:3:11 1453:4:6 1453:5:4 1453:6:3 1453:7:2 1453:8:2 1453:9:2 1453:10:2 1454:1:1454 1454:2:38 1454:3:11 1454:4:6 1454:5:4 1454:6:3 1454:7:2 1454:8:2 1454:9:2 1454:10:2 1455:1:1455 1455:2:38 1455:3:11 1455:4:6 1455:5:4 1455:6:3 1455:7:2 1455:8:2 1455:9:2 1455:10:2 1456:1:1456 1456:2:38 1456:3:11 1456:4:6 1456:5:4 1456:6:3 1456:7:2 1456:8:2 1456:9:2 1456:10:2 1457:1:1457 1457:2:38 1457:3:11 1457:4:6 1457:5:4 1457:6:3 1457:7:2 1457:8:2 1457:9:2 1457:10:2 1458:1:1458 1458:2:38 1458:3:11 1458:4:6 1458:5:4 1458:6:3 1458:7:2 1458:8:2 1458:9:2 1458:10:2 1459:1:1459 1459:2:38 1459:3:11 1459:4:6 1459:5:4 1459:6:3 1459:7:2 1459:8:2 1459:9:2 1459:10:2 1460:1:1460 1460:2:38 1460:3:11 1460:4:6 1460:5:4 1460:6:3 1460:7:2 1460:8:2 1460:9:2 1460:10:2 1461:1:1461 1461:2:38 1461:3:11 1461:4:6 1461:5:4 1461:6:3 1461:7:2 1461:8:2 1461:9:2 1461:10:2 1462:1:1462 1462:2:38 1462:3:11 1462:4:6 1462:5:4 1462:6:3 1462:7:2 1462:8:2 1462:9:2 1462:10:2 1463:1:1463 1463:2:38 1463:3:11 1463:4:6 1463:5:4 1463:6:3 1463:7:2 1463:8:2 1463:9:2 1463:10:2 1464:1:1464 1464:2:38 1464:3:11 1464:4:6 1464:5:4 1464:6:3 1464:7:2 1464:8:2 1464:9:2 1464:10:2 1465:1:1465 1465:2:38 1465:3:11 1465:4:6 1465:5:4 1465:6:3 1465:7:2 1465:8:2 1465:9:2 1465:10:2 1466:1:1466 1466:2:38 1466:3:11 1466:4:6 1466:5:4 1466:6:3 1466:7:2 1466:8:2 1466:9:2 1466:10:2 1467:1:1467 1467:2:38 1467:3:11 1467:4:6 1467:5:4 1467:6:3 1467:7:2 1467:8:2 1467:9:2 1467:10:2 1468:1:1468 1468:2:38 1468:3:11 1468:4:6 1468:5:4 1468:6:3 1468:7:2 1468:8:2 1468:9:2 1468:10:2 1469:1:1469 1469:2:38 1469:3:11 1469:4:6 1469:5:4 1469:6:3 1469:7:2 1469:8:2 1469:9:2 1469:10:2 1470:1:1470 1470:2:38 1470:3:11 1470:4:6 1470:5:4 1470:6:3 1470:7:2 1470:8:2 1470:9:2 1470:10:2 1471:1:1471 1471:2:38 1471:3:11 1471:4:6 1471:5:4 1471:6:3 1471:7:2 1471:8:2 1471:9:2 1471:10:2 1472:1:1472 1472:2:38 1472:3:11 1472:4:6 1472:5:4 1472:6:3 1472:7:2 1472:8:2 1472:9:2 1472:10:2 1473:1:1473 1473:2:38 1473:3:11 1473:4:6 1473:5:4 1473:6:3 1473:7:2 1473:8:2 1473:9:2 1473:10:2 1474:1:1474 1474:2:38 1474:3:11 1474:4:6 1474:5:4 1474:6:3 1474:7:2 1474:8:2 1474:9:2 1474:10:2 1475:1:1475 1475:2:38 1475:3:11 1475:4:6 1475:5:4 1475:6:3 1475:7:2 1475:8:2 1475:9:2 1475:10:2 1476:1:1476 1476:2:38 1476:3:11 1476:4:6 1476:5:4 1476:6:3 1476:7:2 1476:8:2 1476:9:2 1476:10:2 1477:1:1477 1477:2:38 1477:3:11 1477:4:6 1477:5:4 1477:6:3 1477:7:2 1477:8:2 1477:9:2 1477:10:2 1478:1:1478 1478:2:38 1478:3:11 1478:4:6 1478:5:4 1478:6:3 1478:7:2 1478:8:2 1478:9:2 1478:10:2 1479:1:1479 1479:2:38 1479:3:11 1479:4:6 1479:5:4 1479:6:3 1479:7:2 1479:8:2 1479:9:2 1479:10:2 1480:1:1480 1480:2:38 1480:3:11 1480:4:6 1480:5:4 1480:6:3 1480:7:2 1480:8:2 1480:9:2 1480:10:2 1481:1:1481 1481:2:38 1481:3:11 1481:4:6 1481:5:4 1481:6:3 1481:7:2 1481:8:2 1481:9:2 1481:10:2 1482:1:1482 1482:2:38 1482:3:11 1482:4:6 1482:5:4 1482:6:3 1482:7:2 1482:8:2 1482:9:2 1482:10:2 1483:1:1483 1483:2:38 1483:3:11 1483:4:6 1483:5:4 1483:6:3 1483:7:2 1483:8:2 1483:9:2 1483:10:2 1484:1:1484 1484:2:38 1484:3:11 1484:4:6 1484:5:4 1484:6:3 1484:7:2 1484:8:2 1484:9:2 1484:10:2 1485:1:1485 1485:2:38 1485:3:11 1485:4:6 1485:5:4 1485:6:3 1485:7:2 1485:8:2 1485:9:2 1485:10:2 1486:1:1486 1486:2:38 1486:3:11 1486:4:6 1486:5:4 1486:6:3 1486:7:2 1486:8:2 1486:9:2 1486:10:2 1487:1:1487 1487:2:38 1487:3:11 1487:4:6 1487:5:4 1487:6:3 1487:7:2 1487:8:2 1487:9:2 1487:10:2 1488:1:1488 1488:2:38 1488:3:11 1488:4:6 1488:5:4 1488:6:3 1488:7:2 1488:8:2 1488:9:2 1488:10:2 1489:1:1489 1489:2:38 1489:3:11 1489:4:6 1489:5:4 1489:6:3 1489:7:2 1489:8:2 1489:9:2 1489:10:2 1490:1:1490 1490:2:38 1490:3:11 1490:4:6 1490:5:4 1490:6:3 1490:7:2 1490:8:2 1490:9:2 1490:10:2 1491:1:1491 1491:2:38 1491:3:11 1491:4:6 1491:5:4 1491:6:3 1491:7:2 1491:8:2 1491:9:2 1491:10:2 1492:1:1492 1492:2:38 1492:3:11 1492:4:6 1492:5:4 1492:6:3 1492:7:2 1492:8:2 1492:9:2 1492:10:2 1493:1:1493 1493:2:38 1493:3:11 1493:4:6 1493:5:4 1493:6:3 1493:7:2 1493:8:2 1493:9:2 1493:10:2 1494:1:1494 1494:2:38 1494:3:11 1494:4:6 1494:5:4 1494:6:3 1494:7:2 1494:8:2 1494:9:2 1494:10:2 1495:1:1495 1495:2:38 1495:3:11 1495:4:6 1495:5:4 1495:6:3 1495:7:2 1495:8:2 1495:9:2 1495:10:2 1496:1:1496 1496:2:38 1496:3:11 1496:4:6 1496:5:4 1496:6:3 1496:7:2 1496:8:2 1496:9:2 1496:10:2 1497:1:1497 1497:2:38 1497:3:11 1497:4:6 1497:5:4 1497:6:3 1497:7:2 1497:8:2 1497:9:2 1497:10:2 1498:1:1498 1498:2:38 1498:3:11 1498:4:6 1498:5:4 1498:6:3 1498:7:2 1498:8:2 1498:9:2 1498:10:2 1499:1:1499 1499:2:38 1499:3:11 1499:4:6 1499:5:4 1499:6:3 1499:7:2 1499:8:2 1499:9:2 1499:10:2 1500:1:1500 1500:2:38 1500:3:11 1500:4:6 1500:5:4 1500:6:3 1500:7:2 1500:8:2 1500:9:2 1500:10:2 # Each line contain x:y:z, where x is close to a power of 10. # # Number of test cases: 1185. 9999:1:9999 10000:1:10000 10001:1:10001 99999:1:99999 100000:1:100000 100001:1:100001 999999:1:999999 1000000:1:1000000 1000001:1:1000001 9999999:1:9999999 10000000:1:10000000 10000001:1:10000001 99999999:1:99999999 100000000:1:100000000 100000001:1:100000001 999999999:1:999999999 1000000000:1:1000000000 1000000001:1:1000000001 9999999999:1:9999999999 10000000000:1:10000000000 10000000001:1:10000000001 99999999999:1:99999999999 100000000000:1:100000000000 100000000001:1:100000000001 999999999999:1:999999999999 1000000000000:1:1000000000000 1000000000001:1:1000000000001 9999999999999:1:9999999999999 10000000000000:1:10000000000000 10000000000001:1:10000000000001 99999999999999:1:99999999999999 100000000000000:1:100000000000000 100000000000001:1:100000000000001 999999999999999:1:999999999999999 1000000000000000:1:1000000000000000 1000000000000001:1:1000000000000001 9999999999999999:1:9999999999999999 10000000000000000:1:10000000000000000 10000000000000001:1:10000000000000001 99999999999999999:1:99999999999999999 100000000000000000:1:100000000000000000 100000000000000001:1:100000000000000001 999999999999999999:1:999999999999999999 1000000000000000000:1:1000000000000000000 1000000000000000001:1:1000000000000000001 9999999999999999999:1:9999999999999999999 10000000000000000000:1:10000000000000000000 10000000000000000001:1:10000000000000000001 99999999999999999999:1:99999999999999999999 100000000000000000000:1:100000000000000000000 100000000000000000001:1:100000000000000000001 999999999999999999999:1:999999999999999999999 1000000000000000000000:1:1000000000000000000000 1000000000000000000001:1:1000000000000000000001 9999999999999999999999:1:9999999999999999999999 10000000000000000000000:1:10000000000000000000000 10000000000000000000001:1:10000000000000000000001 99999999999999999999999:1:99999999999999999999999 100000000000000000000000:1:100000000000000000000000 100000000000000000000001:1:100000000000000000000001 999999999999999999999999:1:999999999999999999999999 1000000000000000000000000:1:1000000000000000000000000 1000000000000000000000001:1:1000000000000000000000001 9999999999999999999999999:1:9999999999999999999999999 10000000000000000000000000:1:10000000000000000000000000 10000000000000000000000001:1:10000000000000000000000001 99999999999999999999999999:1:99999999999999999999999999 100000000000000000000000000:1:100000000000000000000000000 100000000000000000000000001:1:100000000000000000000000001 999999999999999999999999999:1:999999999999999999999999999 1000000000000000000000000000:1:1000000000000000000000000000 1000000000000000000000000001:1:1000000000000000000000000001 9999999999999999999999999999:1:9999999999999999999999999999 10000000000000000000000000000:1:10000000000000000000000000000 10000000000000000000000000001:1:10000000000000000000000000001 99999999999999999999999999999:1:99999999999999999999999999999 100000000000000000000000000000:1:100000000000000000000000000000 100000000000000000000000000001:1:100000000000000000000000000001 999999999999999999999999999999:1:999999999999999999999999999999 1000000000000000000000000000000:1:1000000000000000000000000000000 1000000000000000000000000000001:1:1000000000000000000000000000001 9999999999999999999999999999999:1:9999999999999999999999999999999 10000000000000000000000000000000:1:10000000000000000000000000000000 10000000000000000000000000000001:1:10000000000000000000000000000001 99999999999999999999999999999999:1:99999999999999999999999999999999 100000000000000000000000000000000:1:100000000000000000000000000000000 100000000000000000000000000000001:1:100000000000000000000000000000001 999999999999999999999999999999999:1:999999999999999999999999999999999 1000000000000000000000000000000000:1:1000000000000000000000000000000000 1000000000000000000000000000000001:1:1000000000000000000000000000000001 9999999999999999999999999999999999:1:9999999999999999999999999999999999 10000000000000000000000000000000000:1:10000000000000000000000000000000000 10000000000000000000000000000000001:1:10000000000000000000000000000000001 99999999999999999999999999999999999:1:99999999999999999999999999999999999 100000000000000000000000000000000000:1:100000000000000000000000000000000000 100000000000000000000000000000000001:1:100000000000000000000000000000000001 999999999999999999999999999999999999:1:999999999999999999999999999999999999 1000000000000000000000000000000000000:1:1000000000000000000000000000000000000 1000000000000000000000000000000000001:1:1000000000000000000000000000000000001 9999999999999999999999999999999999999:1:9999999999999999999999999999999999999 10000000000000000000000000000000000000:1:10000000000000000000000000000000000000 10000000000000000000000000000000000001:1:10000000000000000000000000000000000001 99999999999999999999999999999999999999:1:99999999999999999999999999999999999999 100000000000000000000000000000000000000:1:100000000000000000000000000000000000000 100000000000000000000000000000000000001:1:100000000000000000000000000000000000001 999999999999999999999999999999999999999:1:999999999999999999999999999999999999999 1000000000000000000000000000000000000000:1:1000000000000000000000000000000000000000 1000000000000000000000000000000000000001:1:1000000000000000000000000000000000000001 9999999999999999999999999999999999999999:1:9999999999999999999999999999999999999999 10000000000000000000000000000000000000000:1:10000000000000000000000000000000000000000 10000000000000000000000000000000000000001:1:10000000000000000000000000000000000000001 99999999999999999999999999999999999999999:1:99999999999999999999999999999999999999999 100000000000000000000000000000000000000000:1:100000000000000000000000000000000000000000 100000000000000000000000000000000000000001:1:100000000000000000000000000000000000000001 999999999999999999999999999999999999999999:1:999999999999999999999999999999999999999999 1000000000000000000000000000000000000000000:1:1000000000000000000000000000000000000000000 1000000000000000000000000000000000000000001:1:1000000000000000000000000000000000000000001 9999999999999999999999999999999999999999999:1:9999999999999999999999999999999999999999999 10000000000000000000000000000000000000000000:1:10000000000000000000000000000000000000000000 10000000000000000000000000000000000000000001:1:10000000000000000000000000000000000000000001 99999999999999999999999999999999999999999999:1:99999999999999999999999999999999999999999999 100000000000000000000000000000000000000000000:1:100000000000000000000000000000000000000000000 100000000000000000000000000000000000000000001:1:100000000000000000000000000000000000000000001 999999999999999999999999999999999999999999999:1:999999999999999999999999999999999999999999999 1000000000000000000000000000000000000000000000:1:1000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000001:1:1000000000000000000000000000000000000000000001 9999999999999999999999999999999999999999999999:1:9999999999999999999999999999999999999999999999 10000000000000000000000000000000000000000000000:1:10000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000001:1:10000000000000000000000000000000000000000000001 99999999999999999999999999999999999999999999999:1:99999999999999999999999999999999999999999999999 100000000000000000000000000000000000000000000000:1:100000000000000000000000000000000000000000000000 100000000000000000000000000000000000000000000001:1:100000000000000000000000000000000000000000000001 999999999999999999999999999999999999999999999999:1:999999999999999999999999999999999999999999999999 1000000000000000000000000000000000000000000000000:1:1000000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000000001:1:1000000000000000000000000000000000000000000000001 9999999999999999999999999999999999999999999999999:1:9999999999999999999999999999999999999999999999999 10000000000000000000000000000000000000000000000000:1:10000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000001:1:10000000000000000000000000000000000000000000000001 99999999999999999999999999999999999999999999999999:1:99999999999999999999999999999999999999999999999999 100000000000000000000000000000000000000000000000000:1:100000000000000000000000000000000000000000000000000 100000000000000000000000000000000000000000000000001:1:100000000000000000000000000000000000000000000000001 999999999999999999999999999999999999999999999999999:1:999999999999999999999999999999999999999999999999999 1000000000000000000000000000000000000000000000000000:1:1000000000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000000000001:1:1000000000000000000000000000000000000000000000000001 9999999999999999999999999999999999999999999999999999:1:9999999999999999999999999999999999999999999999999999 10000000000000000000000000000000000000000000000000000:1:10000000000000000000000000000000000000000000000000000 10000000000000000000000000000000000000000000000000001:1:10000000000000000000000000000000000000000000000000001 9999:2:99 10000:2:100 10001:2:100 999999:2:999 1000000:2:1000 1000001:2:1000 99999999:2:9999 100000000:2:10000 100000001:2:10000 9999999999:2:99999 10000000000:2:100000 10000000001:2:100000 999999999999:2:999999 1000000000000:2:1000000 1000000000001:2:1000000 99999999999999:2:9999999 100000000000000:2:10000000 100000000000001:2:10000000 9999999999999999:2:99999999 10000000000000000:2:100000000 10000000000000001:2:100000000 999999999999999999:2:999999999 1000000000000000000:2:1000000000 1000000000000000001:2:1000000000 99999999999999999999:2:9999999999 100000000000000000000:2:10000000000 100000000000000000001:2:10000000000 9999999999999999999999:2:99999999999 10000000000000000000000:2:100000000000 10000000000000000000001:2:100000000000 999999999999999999999999:2:999999999999 1000000000000000000000000:2:1000000000000 1000000000000000000000001:2:1000000000000 99999999999999999999999999:2:9999999999999 100000000000000000000000000:2:10000000000000 100000000000000000000000001:2:10000000000000 9999999999999999999999999999:2:99999999999999 10000000000000000000000000000:2:100000000000000 10000000000000000000000000001:2:100000000000000 999999999999999999999999999999:2:999999999999999 1000000000000000000000000000000:2:1000000000000000 1000000000000000000000000000001:2:1000000000000000 99999999999999999999999999999999:2:9999999999999999 100000000000000000000000000000000:2:10000000000000000 100000000000000000000000000000001:2:10000000000000000 9999999999999999999999999999999999:2:99999999999999999 10000000000000000000000000000000000:2:100000000000000000 10000000000000000000000000000000001:2:100000000000000000 999999999999999999999999999999999999:2:999999999999999999 1000000000000000000000000000000000000:2:1000000000000000000 1000000000000000000000000000000000001:2:1000000000000000000 99999999999999999999999999999999999999:2:9999999999999999999 100000000000000000000000000000000000000:2:10000000000000000000 100000000000000000000000000000000000001:2:10000000000000000000 9999999999999999999999999999999999999999:2:99999999999999999999 10000000000000000000000000000000000000000:2:100000000000000000000 10000000000000000000000000000000000000001:2:100000000000000000000 999999999999999999999999999999999999999999:2:999999999999999999999 1000000000000000000000000000000000000000000:2:1000000000000000000000 1000000000000000000000000000000000000000001:2:1000000000000000000000 99999999999999999999999999999999999999999999:2:9999999999999999999999 100000000000000000000000000000000000000000000:2:10000000000000000000000 100000000000000000000000000000000000000000001:2:10000000000000000000000 9999999999999999999999999999999999999999999999:2:99999999999999999999999 10000000000000000000000000000000000000000000000:2:100000000000000000000000 10000000000000000000000000000000000000000000001:2:100000000000000000000000 999999999999999999999999999999999999999999999999:2:999999999999999999999999 1000000000000000000000000000000000000000000000000:2:1000000000000000000000000 1000000000000000000000000000000000000000000000001:2:1000000000000000000000000 99999999999999999999999999999999999999999999999999:2:9999999999999999999999999 100000000000000000000000000000000000000000000000000:2:10000000000000000000000000 100000000000000000000000000000000000000000000000001:2:10000000000000000000000000 9999999999999999999999999999999999999999999999999999:2:99999999999999999999999999 10000000000000000000000000000000000000000000000000000:2:100000000000000000000000000 10000000000000000000000000000000000000000000000000001:2:100000000000000000000000000 999999999999999999999999999999999999999999999999999999:2:999999999999999999999999999 1000000000000000000000000000000000000000000000000000000:2:1000000000000000000000000000 1000000000000000000000000000000000000000000000000000001:2:1000000000000000000000000000 99999999999999999999999999999999999999999999999999999999:2:9999999999999999999999999999 100000000000000000000000000000000000000000000000000000000:2:10000000000000000000000000000 100000000000000000000000000000000000000000000000000000001:2:10000000000000000000000000000 9999999999999999999999999999999999999999999999999999999999:2:99999999999999999999999999999 10000000000000000000000000000000000000000000000000000000000:2:100000000000000000000000000000 10000000000000000000000000000000000000000000000000000000001:2:100000000000000000000000000000 999999999999999999999999999999999999999999999999999999999999:2:999999999999999999999999999999 1000000000000000000000000000000000000000000000000000000000000:2:1000000000000000000000000000000 1000000000000000000000000000000000000000000000000000000000001:2:1000000000000000000000000000000 99999999999999999999999999999999999999999999999999999999999999:2:9999999999999999999999999999999 100000000000000000000000000000000000000000000000000000000000000:2:10000000000000000000000000000000 100000000000000000000000000000000000000000000000000000000000001:2:10000000000000000000000000000000 9999999999999999999999999999999999999999999999999999999999999999:2:99999999999999999999999999999999 10000000000000000000000000000000000000000000000000000000000000000:2:100000000000000000000000000000000 10000000000000000000000000000000000000000000000000000000000000001:2:100000000000000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999:2:999999999999999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000:2:1000000000000000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000001:2:1000000000000000000000000000000000 99999999999999999999999999999999999999999999999999999999999999999999:2:9999999999999999999999999999999999 100000000000000000000000000000000000000000000000000000000000000000000:2:10000000000000000000000000000000000 100000000000000000000000000000000000000000000000000000000000000000001:2:10000000000000000000000000000000000 9999999999999999999999999999999999999999999999999999999999999999999999:2:99999999999999999999999999999999999 10000000000000000000000000000000000000000000000000000000000000000000000:2:100000000000000000000000000000000000 10000000000000000000000000000000000000000000000000000000000000000000001:2:100000000000000000000000000000000000 999999:3:99 1000000:3:100 1000001:3:100 999999999:3:999 1000000000:3:1000 1000000001:3:1000 999999999999:3:9999 1000000000000:3:10000 1000000000001:3:10000 999999999999999:3:99999 1000000000000000:3:100000 1000000000000001:3:100000 999999999999999999:3:999999 1000000000000000000:3:1000000 1000000000000000001:3:1000000 999999999999999999999:3:9999999 1000000000000000000000:3:10000000 1000000000000000000001:3:10000000 999999999999999999999999:3:99999999 1000000000000000000000000:3:100000000 1000000000000000000000001:3:100000000 999999999999999999999999999:3:999999999 1000000000000000000000000000:3:1000000000 1000000000000000000000000001:3:1000000000 999999999999999999999999999999:3:9999999999 1000000000000000000000000000000:3:10000000000 1000000000000000000000000000001:3:10000000000 999999999999999999999999999999999:3:99999999999 1000000000000000000000000000000000:3:100000000000 1000000000000000000000000000000001:3:100000000000 999999999999999999999999999999999999:3:999999999999 1000000000000000000000000000000000000:3:1000000000000 1000000000000000000000000000000000001:3:1000000000000 999999999999999999999999999999999999999:3:9999999999999 1000000000000000000000000000000000000000:3:10000000000000 1000000000000000000000000000000000000001:3:10000000000000 999999999999999999999999999999999999999999:3:99999999999999 1000000000000000000000000000000000000000000:3:100000000000000 1000000000000000000000000000000000000000001:3:100000000000000 999999999999999999999999999999999999999999999:3:999999999999999 1000000000000000000000000000000000000000000000:3:1000000000000000 1000000000000000000000000000000000000000000001:3:1000000000000000 999999999999999999999999999999999999999999999999:3:9999999999999999 1000000000000000000000000000000000000000000000000:3:10000000000000000 1000000000000000000000000000000000000000000000001:3:10000000000000000 999999999999999999999999999999999999999999999999999:3:99999999999999999 1000000000000000000000000000000000000000000000000000:3:100000000000000000 1000000000000000000000000000000000000000000000000001:3:100000000000000000 999999999999999999999999999999999999999999999999999999:3:999999999999999999 1000000000000000000000000000000000000000000000000000000:3:1000000000000000000 1000000000000000000000000000000000000000000000000000001:3:1000000000000000000 999999999999999999999999999999999999999999999999999999999:3:9999999999999999999 1000000000000000000000000000000000000000000000000000000000:3:10000000000000000000 1000000000000000000000000000000000000000000000000000000001:3:10000000000000000000 999999999999999999999999999999999999999999999999999999999999:3:99999999999999999999 1000000000000000000000000000000000000000000000000000000000000:3:100000000000000000000 1000000000000000000000000000000000000000000000000000000000001:3:100000000000000000000 999999999999999999999999999999999999999999999999999999999999999:3:999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000:3:1000000000000000000000 1000000000000000000000000000000000000000000000000000000000000001:3:1000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999:3:9999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000:3:10000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000001:3:10000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999999:3:99999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000:3:100000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000001:3:100000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999999999:3:999999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000:3:1000000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000001:3:1000000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999:3:9999999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000:3:10000000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000001:3:10000000000000000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999:3:99999999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000:3:100000000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000001:3:100000000000000000000000000 9999:4:9 10000:4:10 10001:4:10 99999999:4:99 100000000:4:100 100000001:4:100 999999999999:4:999 1000000000000:4:1000 1000000000001:4:1000 9999999999999999:4:9999 10000000000000000:4:10000 10000000000000001:4:10000 99999999999999999999:4:99999 100000000000000000000:4:100000 100000000000000000001:4:100000 999999999999999999999999:4:999999 1000000000000000000000000:4:1000000 1000000000000000000000001:4:1000000 9999999999999999999999999999:4:9999999 10000000000000000000000000000:4:10000000 10000000000000000000000000001:4:10000000 99999999999999999999999999999999:4:99999999 100000000000000000000000000000000:4:100000000 100000000000000000000000000000001:4:100000000 999999999999999999999999999999999999:4:999999999 1000000000000000000000000000000000000:4:1000000000 1000000000000000000000000000000000001:4:1000000000 9999999999999999999999999999999999999999:4:9999999999 10000000000000000000000000000000000000000:4:10000000000 10000000000000000000000000000000000000001:4:10000000000 99999999999999999999999999999999999999999999:4:99999999999 100000000000000000000000000000000000000000000:4:100000000000 100000000000000000000000000000000000000000001:4:100000000000 999999999999999999999999999999999999999999999999:4:999999999999 1000000000000000000000000000000000000000000000000:4:1000000000000 1000000000000000000000000000000000000000000000001:4:1000000000000 9999999999999999999999999999999999999999999999999999:4:9999999999999 10000000000000000000000000000000000000000000000000000:4:10000000000000 10000000000000000000000000000000000000000000000000001:4:10000000000000 99999999999999999999999999999999999999999999999999999999:4:99999999999999 100000000000000000000000000000000000000000000000000000000:4:100000000000000 100000000000000000000000000000000000000000000000000000001:4:100000000000000 999999999999999999999999999999999999999999999999999999999999:4:999999999999999 1000000000000000000000000000000000000000000000000000000000000:4:1000000000000000 1000000000000000000000000000000000000000000000000000000000001:4:1000000000000000 9999999999999999999999999999999999999999999999999999999999999999:4:9999999999999999 10000000000000000000000000000000000000000000000000000000000000000:4:10000000000000000 10000000000000000000000000000000000000000000000000000000000000001:4:10000000000000000 99999999999999999999999999999999999999999999999999999999999999999999:4:99999999999999999 100000000000000000000000000000000000000000000000000000000000000000000:4:100000000000000000 100000000000000000000000000000000000000000000000000000000000000000001:4:100000000000000000 999999999999999999999999999999999999999999999999999999999999999999999999:4:999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000:4:1000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000001:4:1000000000000000000 9999999999999999999999999999999999999999999999999999999999999999999999999999:4:9999999999999999999 10000000000000000000000000000000000000000000000000000000000000000000000000000:4:10000000000000000000 10000000000000000000000000000000000000000000000000000000000000000000000000001:4:10000000000000000000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:4:99999999999999999999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:4:100000000000000000000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:4:100000000000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:4:999999999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:4:1000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:4:1000000000000000000000 99999:5:9 100000:5:10 100001:5:10 9999999999:5:99 10000000000:5:100 10000000001:5:100 999999999999999:5:999 1000000000000000:5:1000 1000000000000001:5:1000 99999999999999999999:5:9999 100000000000000000000:5:10000 100000000000000000001:5:10000 9999999999999999999999999:5:99999 10000000000000000000000000:5:100000 10000000000000000000000001:5:100000 999999999999999999999999999999:5:999999 1000000000000000000000000000000:5:1000000 1000000000000000000000000000001:5:1000000 99999999999999999999999999999999999:5:9999999 100000000000000000000000000000000000:5:10000000 100000000000000000000000000000000001:5:10000000 9999999999999999999999999999999999999999:5:99999999 10000000000000000000000000000000000000000:5:100000000 10000000000000000000000000000000000000001:5:100000000 999999999999999999999999999999999999999999999:5:999999999 1000000000000000000000000000000000000000000000:5:1000000000 1000000000000000000000000000000000000000000001:5:1000000000 99999999999999999999999999999999999999999999999999:5:9999999999 100000000000000000000000000000000000000000000000000:5:10000000000 100000000000000000000000000000000000000000000000001:5:10000000000 9999999999999999999999999999999999999999999999999999999:5:99999999999 10000000000000000000000000000000000000000000000000000000:5:100000000000 10000000000000000000000000000000000000000000000000000001:5:100000000000 999999999999999999999999999999999999999999999999999999999999:5:999999999999 1000000000000000000000000000000000000000000000000000000000000:5:1000000000000 1000000000000000000000000000000000000000000000000000000000001:5:1000000000000 99999999999999999999999999999999999999999999999999999999999999999:5:9999999999999 100000000000000000000000000000000000000000000000000000000000000000:5:10000000000000 100000000000000000000000000000000000000000000000000000000000000001:5:10000000000000 9999999999999999999999999999999999999999999999999999999999999999999999:5:99999999999999 10000000000000000000000000000000000000000000000000000000000000000000000:5:100000000000000 10000000000000000000000000000000000000000000000000000000000000000000001:5:100000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999:5:999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000:5:1000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000001:5:1000000000000000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:5:9999999999999999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:5:10000000000000000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:5:10000000000000000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999:5:99999999999999999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000:5:100000000000000000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000001:5:100000000000000000 999999:6:9 1000000:6:10 1000001:6:10 999999999999:6:99 1000000000000:6:100 1000000000001:6:100 999999999999999999:6:999 1000000000000000000:6:1000 1000000000000000001:6:1000 999999999999999999999999:6:9999 1000000000000000000000000:6:10000 1000000000000000000000001:6:10000 999999999999999999999999999999:6:99999 1000000000000000000000000000000:6:100000 1000000000000000000000000000001:6:100000 999999999999999999999999999999999999:6:999999 1000000000000000000000000000000000000:6:1000000 1000000000000000000000000000000000001:6:1000000 999999999999999999999999999999999999999999:6:9999999 1000000000000000000000000000000000000000000:6:10000000 1000000000000000000000000000000000000000001:6:10000000 999999999999999999999999999999999999999999999999:6:99999999 1000000000000000000000000000000000000000000000000:6:100000000 1000000000000000000000000000000000000000000000001:6:100000000 999999999999999999999999999999999999999999999999999999:6:999999999 1000000000000000000000000000000000000000000000000000000:6:1000000000 1000000000000000000000000000000000000000000000000000001:6:1000000000 999999999999999999999999999999999999999999999999999999999999:6:9999999999 1000000000000000000000000000000000000000000000000000000000000:6:10000000000 1000000000000000000000000000000000000000000000000000000000001:6:10000000000 999999999999999999999999999999999999999999999999999999999999999999:6:99999999999 1000000000000000000000000000000000000000000000000000000000000000000:6:100000000000 1000000000000000000000000000000000000000000000000000000000000000001:6:100000000000 999999999999999999999999999999999999999999999999999999999999999999999999:6:999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000:6:1000000000000 1000000000000000000000000000000000000000000000000000000000000000000000001:6:1000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999:6:9999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000:6:10000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000001:6:10000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:6:99999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:6:100000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:6:100000000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:6:999999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:6:1000000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:6:1000000000000000 9999999:7:9 10000000:7:10 10000001:7:10 99999999999999:7:99 100000000000000:7:100 100000000000001:7:100 999999999999999999999:7:999 1000000000000000000000:7:1000 1000000000000000000001:7:1000 9999999999999999999999999999:7:9999 10000000000000000000000000000:7:10000 10000000000000000000000000001:7:10000 99999999999999999999999999999999999:7:99999 100000000000000000000000000000000000:7:100000 100000000000000000000000000000000001:7:100000 999999999999999999999999999999999999999999:7:999999 1000000000000000000000000000000000000000000:7:1000000 1000000000000000000000000000000000000000001:7:1000000 9999999999999999999999999999999999999999999999999:7:9999999 10000000000000000000000000000000000000000000000000:7:10000000 10000000000000000000000000000000000000000000000001:7:10000000 99999999999999999999999999999999999999999999999999999999:7:99999999 100000000000000000000000000000000000000000000000000000000:7:100000000 100000000000000000000000000000000000000000000000000000001:7:100000000 999999999999999999999999999999999999999999999999999999999999999:7:999999999 1000000000000000000000000000000000000000000000000000000000000000:7:1000000000 1000000000000000000000000000000000000000000000000000000000000001:7:1000000000 9999999999999999999999999999999999999999999999999999999999999999999999:7:9999999999 10000000000000000000000000000000000000000000000000000000000000000000000:7:10000000000 10000000000000000000000000000000000000000000000000000000000000000000001:7:10000000000 99999999999999999999999999999999999999999999999999999999999999999999999999999:7:99999999999 100000000000000000000000000000000000000000000000000000000000000000000000000000:7:100000000000 100000000000000000000000000000000000000000000000000000000000000000000000000001:7:100000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:7:999999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:7:1000000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:7:1000000000000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:7:9999999999999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:7:10000000000000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:7:10000000000000 99999999:8:9 100000000:8:10 100000001:8:10 9999999999999999:8:99 10000000000000000:8:100 10000000000000001:8:100 999999999999999999999999:8:999 1000000000000000000000000:8:1000 1000000000000000000000001:8:1000 99999999999999999999999999999999:8:9999 100000000000000000000000000000000:8:10000 100000000000000000000000000000001:8:10000 9999999999999999999999999999999999999999:8:99999 10000000000000000000000000000000000000000:8:100000 10000000000000000000000000000000000000001:8:100000 999999999999999999999999999999999999999999999999:8:999999 1000000000000000000000000000000000000000000000000:8:1000000 1000000000000000000000000000000000000000000000001:8:1000000 99999999999999999999999999999999999999999999999999999999:8:9999999 100000000000000000000000000000000000000000000000000000000:8:10000000 100000000000000000000000000000000000000000000000000000001:8:10000000 9999999999999999999999999999999999999999999999999999999999999999:8:99999999 10000000000000000000000000000000000000000000000000000000000000000:8:100000000 10000000000000000000000000000000000000000000000000000000000000001:8:100000000 999999999999999999999999999999999999999999999999999999999999999999999999:8:999999999 1000000000000000000000000000000000000000000000000000000000000000000000000:8:1000000000 1000000000000000000000000000000000000000000000000000000000000000000000001:8:1000000000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:8:9999999999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:8:10000000000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:8:10000000000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:8:99999999999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:8:100000000000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:8:100000000000 999999999:9:9 1000000000:9:10 1000000001:9:10 999999999999999999:9:99 1000000000000000000:9:100 1000000000000000001:9:100 999999999999999999999999999:9:999 1000000000000000000000000000:9:1000 1000000000000000000000000001:9:1000 999999999999999999999999999999999999:9:9999 1000000000000000000000000000000000000:9:10000 1000000000000000000000000000000000001:9:10000 999999999999999999999999999999999999999999999:9:99999 1000000000000000000000000000000000000000000000:9:100000 1000000000000000000000000000000000000000000001:9:100000 999999999999999999999999999999999999999999999999999999:9:999999 1000000000000000000000000000000000000000000000000000000:9:1000000 1000000000000000000000000000000000000000000000000000001:9:1000000 999999999999999999999999999999999999999999999999999999999999999:9:9999999 1000000000000000000000000000000000000000000000000000000000000000:9:10000000 1000000000000000000000000000000000000000000000000000000000000001:9:10000000 999999999999999999999999999999999999999999999999999999999999999999999999:9:99999999 1000000000000000000000000000000000000000000000000000000000000000000000000:9:100000000 1000000000000000000000000000000000000000000000000000000000000000000000001:9:100000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999:9:999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000:9:1000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000001:9:1000000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:9:9999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:9:10000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:9:10000000000 9999999999:10:9 10000000000:10:10 10000000001:10:10 99999999999999999999:10:99 100000000000000000000:10:100 100000000000000000001:10:100 999999999999999999999999999999:10:999 1000000000000000000000000000000:10:1000 1000000000000000000000000000001:10:1000 9999999999999999999999999999999999999999:10:9999 10000000000000000000000000000000000000000:10:10000 10000000000000000000000000000000000000001:10:10000 99999999999999999999999999999999999999999999999999:10:99999 100000000000000000000000000000000000000000000000000:10:100000 100000000000000000000000000000000000000000000000001:10:100000 999999999999999999999999999999999999999999999999999999999999:10:999999 1000000000000000000000000000000000000000000000000000000000000:10:1000000 1000000000000000000000000000000000000000000000000000000000001:10:1000000 9999999999999999999999999999999999999999999999999999999999999999999999:10:9999999 10000000000000000000000000000000000000000000000000000000000000000000000:10:10000000 10000000000000000000000000000000000000000000000000000000000000000000001:10:10000000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:10:99999999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:10:100000000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:10:100000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:10:999999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:10:1000000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:10:1000000000 99999999999:11:9 100000000000:11:10 100000000001:11:10 9999999999999999999999:11:99 10000000000000000000000:11:100 10000000000000000000001:11:100 999999999999999999999999999999999:11:999 1000000000000000000000000000000000:11:1000 1000000000000000000000000000000001:11:1000 99999999999999999999999999999999999999999999:11:9999 100000000000000000000000000000000000000000000:11:10000 100000000000000000000000000000000000000000001:11:10000 9999999999999999999999999999999999999999999999999999999:11:99999 10000000000000000000000000000000000000000000000000000000:11:100000 10000000000000000000000000000000000000000000000000000001:11:100000 999999999999999999999999999999999999999999999999999999999999999999:11:999999 1000000000000000000000000000000000000000000000000000000000000000000:11:1000000 1000000000000000000000000000000000000000000000000000000000000000001:11:1000000 99999999999999999999999999999999999999999999999999999999999999999999999999999:11:9999999 100000000000000000000000000000000000000000000000000000000000000000000000000000:11:10000000 100000000000000000000000000000000000000000000000000000000000000000000000000001:11:10000000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:11:99999999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:11:100000000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:11:100000000 999999999999:12:9 1000000000000:12:10 1000000000001:12:10 999999999999999999999999:12:99 1000000000000000000000000:12:100 1000000000000000000000001:12:100 999999999999999999999999999999999999:12:999 1000000000000000000000000000000000000:12:1000 1000000000000000000000000000000000001:12:1000 999999999999999999999999999999999999999999999999:12:9999 1000000000000000000000000000000000000000000000000:12:10000 1000000000000000000000000000000000000000000000001:12:10000 999999999999999999999999999999999999999999999999999999999999:12:99999 1000000000000000000000000000000000000000000000000000000000000:12:100000 1000000000000000000000000000000000000000000000000000000000001:12:100000 999999999999999999999999999999999999999999999999999999999999999999999999:12:999999 1000000000000000000000000000000000000000000000000000000000000000000000000:12:1000000 1000000000000000000000000000000000000000000000000000000000000000000000001:12:1000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:12:9999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:12:10000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:12:10000000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:12:99999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:12:100000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:12:100000000 9999999999999:13:9 10000000000000:13:10 10000000000001:13:10 99999999999999999999999999:13:99 100000000000000000000000000:13:100 100000000000000000000000001:13:100 999999999999999999999999999999999999999:13:999 1000000000000000000000000000000000000000:13:1000 1000000000000000000000000000000000000001:13:1000 9999999999999999999999999999999999999999999999999999:13:9999 10000000000000000000000000000000000000000000000000000:13:10000 10000000000000000000000000000000000000000000000000001:13:10000 99999999999999999999999999999999999999999999999999999999999999999:13:99999 100000000000000000000000000000000000000000000000000000000000000000:13:100000 100000000000000000000000000000000000000000000000000000000000000001:13:100000 999999999999999999999999999999999999999999999999999999999999999999999999999999:13:999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000:13:1000000 1000000000000000000000000000000000000000000000000000000000000000000000000000001:13:1000000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:13:9999999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:13:10000000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:13:10000000 99999999999999:14:9 100000000000000:14:10 100000000000001:14:10 9999999999999999999999999999:14:99 10000000000000000000000000000:14:100 10000000000000000000000000001:14:100 999999999999999999999999999999999999999999:14:999 1000000000000000000000000000000000000000000:14:1000 1000000000000000000000000000000000000000001:14:1000 99999999999999999999999999999999999999999999999999999999:14:9999 100000000000000000000000000000000000000000000000000000000:14:10000 100000000000000000000000000000000000000000000000000000001:14:10000 9999999999999999999999999999999999999999999999999999999999999999999999:14:99999 10000000000000000000000000000000000000000000000000000000000000000000000:14:100000 10000000000000000000000000000000000000000000000000000000000000000000001:14:100000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:14:999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:14:1000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:14:1000000 999999999999999:15:9 1000000000000000:15:10 1000000000000001:15:10 999999999999999999999999999999:15:99 1000000000000000000000000000000:15:100 1000000000000000000000000000001:15:100 999999999999999999999999999999999999999999999:15:999 1000000000000000000000000000000000000000000000:15:1000 1000000000000000000000000000000000000000000001:15:1000 999999999999999999999999999999999999999999999999999999999999:15:9999 1000000000000000000000000000000000000000000000000000000000000:15:10000 1000000000000000000000000000000000000000000000000000000000001:15:10000 999999999999999999999999999999999999999999999999999999999999999999999999999:15:99999 1000000000000000000000000000000000000000000000000000000000000000000000000000:15:100000 1000000000000000000000000000000000000000000000000000000000000000000000000001:15:100000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:15:999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:15:1000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:15:1000000 9999999999999999:16:9 10000000000000000:16:10 10000000000000001:16:10 99999999999999999999999999999999:16:99 100000000000000000000000000000000:16:100 100000000000000000000000000000001:16:100 999999999999999999999999999999999999999999999999:16:999 1000000000000000000000000000000000000000000000000:16:1000 1000000000000000000000000000000000000000000000001:16:1000 9999999999999999999999999999999999999999999999999999999999999999:16:9999 10000000000000000000000000000000000000000000000000000000000000000:16:10000 10000000000000000000000000000000000000000000000000000000000000001:16:10000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:16:99999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:16:100000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:16:100000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:16:999999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:16:1000000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:16:1000000 99999999999999999:17:9 100000000000000000:17:10 100000000000000001:17:10 9999999999999999999999999999999999:17:99 10000000000000000000000000000000000:17:100 10000000000000000000000000000000001:17:100 999999999999999999999999999999999999999999999999999:17:999 1000000000000000000000000000000000000000000000000000:17:1000 1000000000000000000000000000000000000000000000000001:17:1000 99999999999999999999999999999999999999999999999999999999999999999999:17:9999 100000000000000000000000000000000000000000000000000000000000000000000:17:10000 100000000000000000000000000000000000000000000000000000000000000000001:17:10000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999:17:99999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000:17:100000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000001:17:100000 999999999999999999:18:9 1000000000000000000:18:10 1000000000000000001:18:10 999999999999999999999999999999999999:18:99 1000000000000000000000000000000000000:18:100 1000000000000000000000000000000000001:18:100 999999999999999999999999999999999999999999999999999999:18:999 1000000000000000000000000000000000000000000000000000000:18:1000 1000000000000000000000000000000000000000000000000000001:18:1000 999999999999999999999999999999999999999999999999999999999999999999999999:18:9999 1000000000000000000000000000000000000000000000000000000000000000000000000:18:10000 1000000000000000000000000000000000000000000000000000000000000000000000001:18:10000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:18:99999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:18:100000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:18:100000 9999999999999999999:19:9 10000000000000000000:19:10 10000000000000000001:19:10 99999999999999999999999999999999999999:19:99 100000000000000000000000000000000000000:19:100 100000000000000000000000000000000000001:19:100 999999999999999999999999999999999999999999999999999999999:19:999 1000000000000000000000000000000000000000000000000000000000:19:1000 1000000000000000000000000000000000000000000000000000000001:19:1000 9999999999999999999999999999999999999999999999999999999999999999999999999999:19:9999 10000000000000000000000000000000000000000000000000000000000000000000000000000:19:10000 10000000000000000000000000000000000000000000000000000000000000000000000000001:19:10000 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:19:99999 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:19:100000 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:19:100000 99999999999999999999:20:9 100000000000000000000:20:10 100000000000000000001:20:10 9999999999999999999999999999999999999999:20:99 10000000000000000000000000000000000000000:20:100 10000000000000000000000000000000000000001:20:100 999999999999999999999999999999999999999999999999999999999999:20:999 1000000000000000000000000000000000000000000000000000000000000:20:1000 1000000000000000000000000000000000000000000000000000000000001:20:1000 99999999999999999999999999999999999999999999999999999999999999999999999999999999:20:9999 100000000000000000000000000000000000000000000000000000000000000000000000000000000:20:10000 100000000000000000000000000000000000000000000000000000000000000000000000000000001:20:10000 999999999999999999999:21:9 1000000000000000000000:21:10 1000000000000000000001:21:10 999999999999999999999999999999999999999999:21:99 1000000000000000000000000000000000000000000:21:100 1000000000000000000000000000000000000000001:21:100 999999999999999999999999999999999999999999999999999999999999999:21:999 1000000000000000000000000000000000000000000000000000000000000000:21:1000 1000000000000000000000000000000000000000000000000000000000000001:21:1000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:21:9999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:21:10000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:21:10000 9999999999999999999999:22:9 10000000000000000000000:22:10 10000000000000000000001:22:10 99999999999999999999999999999999999999999999:22:99 100000000000000000000000000000000000000000000:22:100 100000000000000000000000000000000000000000001:22:100 999999999999999999999999999999999999999999999999999999999999999999:22:999 1000000000000000000000000000000000000000000000000000000000000000000:22:1000 1000000000000000000000000000000000000000000000000000000000000000001:22:1000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:22:9999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:22:10000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:22:10000 99999999999999999999999:23:9 100000000000000000000000:23:10 100000000000000000000001:23:10 9999999999999999999999999999999999999999999999:23:99 10000000000000000000000000000000000000000000000:23:100 10000000000000000000000000000000000000000000001:23:100 999999999999999999999999999999999999999999999999999999999999999999999:23:999 1000000000000000000000000000000000000000000000000000000000000000000000:23:1000 1000000000000000000000000000000000000000000000000000000000000000000001:23:1000 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:23:9999 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:23:10000 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:23:10000 999999999999999999999999:24:9 1000000000000000000000000:24:10 1000000000000000000000001:24:10 999999999999999999999999999999999999999999999999:24:99 1000000000000000000000000000000000000000000000000:24:100 1000000000000000000000000000000000000000000000001:24:100 999999999999999999999999999999999999999999999999999999999999999999999999:24:999 1000000000000000000000000000000000000000000000000000000000000000000000000:24:1000 1000000000000000000000000000000000000000000000000000000000000000000000001:24:1000 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:24:9999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:24:10000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:24:10000 9999999999999999999999999:25:9 10000000000000000000000000:25:10 10000000000000000000000001:25:10 99999999999999999999999999999999999999999999999999:25:99 100000000000000000000000000000000000000000000000000:25:100 100000000000000000000000000000000000000000000000001:25:100 999999999999999999999999999999999999999999999999999999999999999999999999999:25:999 1000000000000000000000000000000000000000000000000000000000000000000000000000:25:1000 1000000000000000000000000000000000000000000000000000000000000000000000000001:25:1000 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:25:9999 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:25:10000 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:25:10000 99999999999999999999999999:26:9 100000000000000000000000000:26:10 100000000000000000000000001:26:10 9999999999999999999999999999999999999999999999999999:26:99 10000000000000000000000000000000000000000000000000000:26:100 10000000000000000000000000000000000000000000000000001:26:100 999999999999999999999999999999999999999999999999999999999999999999999999999999:26:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000:26:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000001:26:1000 999999999999999999999999999:27:9 1000000000000000000000000000:27:10 1000000000000000000000000001:27:10 999999999999999999999999999999999999999999999999999999:27:99 1000000000000000000000000000000000000000000000000000000:27:100 1000000000000000000000000000000000000000000000000000001:27:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999:27:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000:27:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000001:27:1000 9999999999999999999999999999:28:9 10000000000000000000000000000:28:10 10000000000000000000000000001:28:10 99999999999999999999999999999999999999999999999999999999:28:99 100000000000000000000000000000000000000000000000000000000:28:100 100000000000000000000000000000000000000000000000000000001:28:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:28:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:28:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:28:1000 99999999999999999999999999999:29:9 100000000000000000000000000000:29:10 100000000000000000000000000001:29:10 9999999999999999999999999999999999999999999999999999999999:29:99 10000000000000000000000000000000000000000000000000000000000:29:100 10000000000000000000000000000000000000000000000000000000001:29:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:29:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:29:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:29:1000 999999999999999999999999999999:30:9 1000000000000000000000000000000:30:10 1000000000000000000000000000001:30:10 999999999999999999999999999999999999999999999999999999999999:30:99 1000000000000000000000000000000000000000000000000000000000000:30:100 1000000000000000000000000000000000000000000000000000000000001:30:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:30:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:30:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:30:1000 9999999999999999999999999999999:31:9 10000000000000000000000000000000:31:10 10000000000000000000000000000001:31:10 99999999999999999999999999999999999999999999999999999999999999:31:99 100000000000000000000000000000000000000000000000000000000000000:31:100 100000000000000000000000000000000000000000000000000000000000001:31:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:31:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:31:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:31:1000 99999999999999999999999999999999:32:9 100000000000000000000000000000000:32:10 100000000000000000000000000000001:32:10 9999999999999999999999999999999999999999999999999999999999999999:32:99 10000000000000000000000000000000000000000000000000000000000000000:32:100 10000000000000000000000000000000000000000000000000000000000000001:32:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:32:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:32:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:32:1000 999999999999999999999999999999999:33:9 1000000000000000000000000000000000:33:10 1000000000000000000000000000000001:33:10 999999999999999999999999999999999999999999999999999999999999999999:33:99 1000000000000000000000000000000000000000000000000000000000000000000:33:100 1000000000000000000000000000000000000000000000000000000000000000001:33:100 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:33:999 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:33:1000 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:33:1000 9999999999999999999999999999999999:34:9 10000000000000000000000000000000000:34:10 10000000000000000000000000000000001:34:10 99999999999999999999999999999999999999999999999999999999999999999999:34:99 100000000000000000000000000000000000000000000000000000000000000000000:34:100 100000000000000000000000000000000000000000000000000000000000000000001:34:100 99999999999999999999999999999999999:35:9 100000000000000000000000000000000000:35:10 100000000000000000000000000000000001:35:10 9999999999999999999999999999999999999999999999999999999999999999999999:35:99 10000000000000000000000000000000000000000000000000000000000000000000000:35:100 10000000000000000000000000000000000000000000000000000000000000000000001:35:100 999999999999999999999999999999999999:36:9 1000000000000000000000000000000000000:36:10 1000000000000000000000000000000000001:36:10 999999999999999999999999999999999999999999999999999999999999999999999999:36:99 1000000000000000000000000000000000000000000000000000000000000000000000000:36:100 1000000000000000000000000000000000000000000000000000000000000000000000001:36:100 9999999999999999999999999999999999999:37:9 10000000000000000000000000000000000000:37:10 10000000000000000000000000000000000001:37:10 99999999999999999999999999999999999999999999999999999999999999999999999999:37:99 100000000000000000000000000000000000000000000000000000000000000000000000000:37:100 100000000000000000000000000000000000000000000000000000000000000000000000001:37:100 99999999999999999999999999999999999999:38:9 100000000000000000000000000000000000000:38:10 100000000000000000000000000000000000001:38:10 9999999999999999999999999999999999999999999999999999999999999999999999999999:38:99 10000000000000000000000000000000000000000000000000000000000000000000000000000:38:100 10000000000000000000000000000000000000000000000000000000000000000000000000001:38:100 999999999999999999999999999999999999999:39:9 1000000000000000000000000000000000000000:39:10 1000000000000000000000000000000000000001:39:10 999999999999999999999999999999999999999999999999999999999999999999999999999999:39:99 1000000000000000000000000000000000000000000000000000000000000000000000000000000:39:100 1000000000000000000000000000000000000000000000000000000000000000000000000000001:39:100 9999999999999999999999999999999999999999:40:9 10000000000000000000000000000000000000000:40:10 10000000000000000000000000000000000000001:40:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999:40:99 100000000000000000000000000000000000000000000000000000000000000000000000000000000:40:100 100000000000000000000000000000000000000000000000000000000000000000000000000000001:40:100 99999999999999999999999999999999999999999:41:9 100000000000000000000000000000000000000000:41:10 100000000000000000000000000000000000000001:41:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999:41:99 10000000000000000000000000000000000000000000000000000000000000000000000000000000000:41:100 10000000000000000000000000000000000000000000000000000000000000000000000000000000001:41:100 999999999999999999999999999999999999999999:42:9 1000000000000000000000000000000000000000000:42:10 1000000000000000000000000000000000000000001:42:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:42:99 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:42:100 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:42:100 9999999999999999999999999999999999999999999:43:9 10000000000000000000000000000000000000000000:43:10 10000000000000000000000000000000000000000001:43:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999:43:99 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000:43:100 100000000000000000000000000000000000000000000000000000000000000000000000000000000000001:43:100 99999999999999999999999999999999999999999999:44:9 100000000000000000000000000000000000000000000:44:10 100000000000000000000000000000000000000000001:44:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:44:99 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:44:100 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:44:100 999999999999999999999999999999999999999999999:45:9 1000000000000000000000000000000000000000000000:45:10 1000000000000000000000000000000000000000000001:45:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:45:99 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:45:100 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:45:100 9999999999999999999999999999999999999999999999:46:9 10000000000000000000000000000000000000000000000:46:10 10000000000000000000000000000000000000000000001:46:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:46:99 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:46:100 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:46:100 99999999999999999999999999999999999999999999999:47:9 100000000000000000000000000000000000000000000000:47:10 100000000000000000000000000000000000000000000001:47:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:47:99 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:47:100 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:47:100 999999999999999999999999999999999999999999999999:48:9 1000000000000000000000000000000000000000000000000:48:10 1000000000000000000000000000000000000000000000001:48:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:48:99 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:48:100 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:48:100 9999999999999999999999999999999999999999999999999:49:9 10000000000000000000000000000000000000000000000000:49:10 10000000000000000000000000000000000000000000000001:49:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:49:99 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:49:100 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:49:100 99999999999999999999999999999999999999999999999999:50:9 100000000000000000000000000000000000000000000000000:50:10 100000000000000000000000000000000000000000000000001:50:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:50:99 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:50:100 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:50:100 999999999999999999999999999999999999999999999999999:51:9 1000000000000000000000000000000000000000000000000000:51:10 1000000000000000000000000000000000000000000000000001:51:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:51:99 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:51:100 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:51:100 9999999999999999999999999999999999999999999999999999:52:9 10000000000000000000000000000000000000000000000000000:52:10 10000000000000000000000000000000000000000000000000001:52:10 99999999999999999999999999999999999999999999999999999:53:9 100000000000000000000000000000000000000000000000000000:53:10 100000000000000000000000000000000000000000000000000001:53:10 999999999999999999999999999999999999999999999999999999:54:9 1000000000000000000000000000000000000000000000000000000:54:10 1000000000000000000000000000000000000000000000000000001:54:10 9999999999999999999999999999999999999999999999999999999:55:9 10000000000000000000000000000000000000000000000000000000:55:10 10000000000000000000000000000000000000000000000000000001:55:10 99999999999999999999999999999999999999999999999999999999:56:9 100000000000000000000000000000000000000000000000000000000:56:10 100000000000000000000000000000000000000000000000000000001:56:10 999999999999999999999999999999999999999999999999999999999:57:9 1000000000000000000000000000000000000000000000000000000000:57:10 1000000000000000000000000000000000000000000000000000000001:57:10 9999999999999999999999999999999999999999999999999999999999:58:9 10000000000000000000000000000000000000000000000000000000000:58:10 10000000000000000000000000000000000000000000000000000000001:58:10 99999999999999999999999999999999999999999999999999999999999:59:9 100000000000000000000000000000000000000000000000000000000000:59:10 100000000000000000000000000000000000000000000000000000000001:59:10 999999999999999999999999999999999999999999999999999999999999:60:9 1000000000000000000000000000000000000000000000000000000000000:60:10 1000000000000000000000000000000000000000000000000000000000001:60:10 9999999999999999999999999999999999999999999999999999999999999:61:9 10000000000000000000000000000000000000000000000000000000000000:61:10 10000000000000000000000000000000000000000000000000000000000001:61:10 99999999999999999999999999999999999999999999999999999999999999:62:9 100000000000000000000000000000000000000000000000000000000000000:62:10 100000000000000000000000000000000000000000000000000000000000001:62:10 999999999999999999999999999999999999999999999999999999999999999:63:9 1000000000000000000000000000000000000000000000000000000000000000:63:10 1000000000000000000000000000000000000000000000000000000000000001:63:10 9999999999999999999999999999999999999999999999999999999999999999:64:9 10000000000000000000000000000000000000000000000000000000000000000:64:10 10000000000000000000000000000000000000000000000000000000000000001:64:10 99999999999999999999999999999999999999999999999999999999999999999:65:9 100000000000000000000000000000000000000000000000000000000000000000:65:10 100000000000000000000000000000000000000000000000000000000000000001:65:10 999999999999999999999999999999999999999999999999999999999999999999:66:9 1000000000000000000000000000000000000000000000000000000000000000000:66:10 1000000000000000000000000000000000000000000000000000000000000000001:66:10 9999999999999999999999999999999999999999999999999999999999999999999:67:9 10000000000000000000000000000000000000000000000000000000000000000000:67:10 10000000000000000000000000000000000000000000000000000000000000000001:67:10 99999999999999999999999999999999999999999999999999999999999999999999:68:9 100000000000000000000000000000000000000000000000000000000000000000000:68:10 100000000000000000000000000000000000000000000000000000000000000000001:68:10 999999999999999999999999999999999999999999999999999999999999999999999:69:9 1000000000000000000000000000000000000000000000000000000000000000000000:69:10 1000000000000000000000000000000000000000000000000000000000000000000001:69:10 9999999999999999999999999999999999999999999999999999999999999999999999:70:9 10000000000000000000000000000000000000000000000000000000000000000000000:70:10 10000000000000000000000000000000000000000000000000000000000000000000001:70:10 99999999999999999999999999999999999999999999999999999999999999999999999:71:9 100000000000000000000000000000000000000000000000000000000000000000000000:71:10 100000000000000000000000000000000000000000000000000000000000000000000001:71:10 999999999999999999999999999999999999999999999999999999999999999999999999:72:9 1000000000000000000000000000000000000000000000000000000000000000000000000:72:10 1000000000000000000000000000000000000000000000000000000000000000000000001:72:10 9999999999999999999999999999999999999999999999999999999999999999999999999:73:9 10000000000000000000000000000000000000000000000000000000000000000000000000:73:10 10000000000000000000000000000000000000000000000000000000000000000000000001:73:10 99999999999999999999999999999999999999999999999999999999999999999999999999:74:9 100000000000000000000000000000000000000000000000000000000000000000000000000:74:10 100000000000000000000000000000000000000000000000000000000000000000000000001:74:10 999999999999999999999999999999999999999999999999999999999999999999999999999:75:9 1000000000000000000000000000000000000000000000000000000000000000000000000000:75:10 1000000000000000000000000000000000000000000000000000000000000000000000000001:75:10 9999999999999999999999999999999999999999999999999999999999999999999999999999:76:9 10000000000000000000000000000000000000000000000000000000000000000000000000000:76:10 10000000000000000000000000000000000000000000000000000000000000000000000000001:76:10 99999999999999999999999999999999999999999999999999999999999999999999999999999:77:9 100000000000000000000000000000000000000000000000000000000000000000000000000000:77:10 100000000000000000000000000000000000000000000000000000000000000000000000000001:77:10 999999999999999999999999999999999999999999999999999999999999999999999999999999:78:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000:78:10 1000000000000000000000000000000000000000000000000000000000000000000000000000001:78:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999:79:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000:79:10 10000000000000000000000000000000000000000000000000000000000000000000000000000001:79:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999:80:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000:80:10 100000000000000000000000000000000000000000000000000000000000000000000000000000001:80:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999:81:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000:81:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000001:81:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999:82:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000:82:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000001:82:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999:83:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000:83:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000001:83:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999:84:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000:84:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000001:84:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999:85:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000:85:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000001:85:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999:86:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000:86:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000001:86:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:87:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:87:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:87:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:88:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:88:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:88:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:89:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:89:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:89:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:90:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:90:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:90:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:91:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:91:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:91:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:92:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:92:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:92:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:93:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:93:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:93:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:94:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:94:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:94:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:95:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:95:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:95:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:96:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:96:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:96:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:97:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:97:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:97:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:98:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:98:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:98:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:99:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:99:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:99:10 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:100:9 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:100:10 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:100:10 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:101:9 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:101:10 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:101:10 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:102:9 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:102:10 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:102:10 # Each line contain x:y:z, where x is close to, or exactly equal to, z^y, and # y is a power of 2. # # Number of test cases: 14967. 1520:2:38 1521:2:39 1522:2:39 1599:2:39 1600:2:40 1601:2:40 1680:2:40 1681:2:41 1682:2:41 1763:2:41 1764:2:42 1765:2:42 1848:2:42 1849:2:43 1850:2:43 1935:2:43 1936:2:44 1937:2:44 2024:2:44 2025:2:45 2026:2:45 2115:2:45 2116:2:46 2117:2:46 2208:2:46 2209:2:47 2210:2:47 2303:2:47 2304:2:48 2305:2:48 2400:2:48 2401:2:49 2402:2:49 2499:2:49 2500:2:50 2501:2:50 2600:2:50 2601:2:51 2602:2:51 2703:2:51 2704:2:52 2705:2:52 2808:2:52 2809:2:53 2810:2:53 2915:2:53 2916:2:54 2917:2:54 3024:2:54 3025:2:55 3026:2:55 3135:2:55 3136:2:56 3137:2:56 3248:2:56 3249:2:57 3250:2:57 3363:2:57 3364:2:58 3365:2:58 3480:2:58 3481:2:59 3482:2:59 3599:2:59 3600:2:60 3601:2:60 3720:2:60 3721:2:61 3722:2:61 3843:2:61 3844:2:62 3845:2:62 3968:2:62 3969:2:63 3970:2:63 4095:2:63 4096:2:64 4097:2:64 4224:2:64 4225:2:65 4226:2:65 4355:2:65 4356:2:66 4357:2:66 4488:2:66 4489:2:67 4490:2:67 4623:2:67 4624:2:68 4625:2:68 4760:2:68 4761:2:69 4762:2:69 4899:2:69 4900:2:70 4901:2:70 5040:2:70 5041:2:71 5042:2:71 5183:2:71 5184:2:72 5185:2:72 5328:2:72 5329:2:73 5330:2:73 5475:2:73 5476:2:74 5477:2:74 5624:2:74 5625:2:75 5626:2:75 5775:2:75 5776:2:76 5777:2:76 5928:2:76 5929:2:77 5930:2:77 6083:2:77 6084:2:78 6085:2:78 6240:2:78 6241:2:79 6242:2:79 6399:2:79 6400:2:80 6401:2:80 6560:2:80 6561:2:81 6562:2:81 6723:2:81 6724:2:82 6725:2:82 6888:2:82 6889:2:83 6890:2:83 7055:2:83 7056:2:84 7057:2:84 7224:2:84 7225:2:85 7226:2:85 7395:2:85 7396:2:86 7397:2:86 7568:2:86 7569:2:87 7570:2:87 7743:2:87 7744:2:88 7745:2:88 7920:2:88 7921:2:89 7922:2:89 8099:2:89 8100:2:90 8101:2:90 8280:2:90 8281:2:91 8282:2:91 8463:2:91 8464:2:92 8465:2:92 8648:2:92 8649:2:93 8650:2:93 8835:2:93 8836:2:94 8837:2:94 9024:2:94 9025:2:95 9026:2:95 9215:2:95 9216:2:96 9217:2:96 9408:2:96 9409:2:97 9410:2:97 9603:2:97 9604:2:98 9605:2:98 9800:2:98 9801:2:99 9802:2:99 10200:2:100 10201:2:101 10202:2:101 10403:2:101 10404:2:102 10405:2:102 10608:2:102 10609:2:103 10610:2:103 10815:2:103 10816:2:104 10817:2:104 11024:2:104 11025:2:105 11026:2:105 11235:2:105 11236:2:106 11237:2:106 11448:2:106 11449:2:107 11450:2:107 11663:2:107 11664:2:108 11665:2:108 11880:2:108 11881:2:109 11882:2:109 12099:2:109 12100:2:110 12101:2:110 12320:2:110 12321:2:111 12322:2:111 12543:2:111 12544:2:112 12545:2:112 12768:2:112 12769:2:113 12770:2:113 12995:2:113 12996:2:114 12997:2:114 13224:2:114 13225:2:115 13226:2:115 13455:2:115 13456:2:116 13457:2:116 13688:2:116 13689:2:117 13690:2:117 13923:2:117 13924:2:118 13925:2:118 14160:2:118 14161:2:119 14162:2:119 14399:2:119 14400:2:120 14401:2:120 14640:2:120 14641:2:121 14642:2:121 14883:2:121 14884:2:122 14885:2:122 15128:2:122 15129:2:123 15130:2:123 15375:2:123 15376:2:124 15377:2:124 15624:2:124 15625:2:125 15626:2:125 15875:2:125 15876:2:126 15877:2:126 16128:2:126 16129:2:127 16130:2:127 16383:2:127 16384:2:128 16385:2:128 16640:2:128 16641:2:129 16642:2:129 16899:2:129 16900:2:130 16901:2:130 17160:2:130 17161:2:131 17162:2:131 17423:2:131 17424:2:132 17425:2:132 17688:2:132 17689:2:133 17690:2:133 17955:2:133 17956:2:134 17957:2:134 18224:2:134 18225:2:135 18226:2:135 18495:2:135 18496:2:136 18497:2:136 18768:2:136 18769:2:137 18770:2:137 19043:2:137 19044:2:138 19045:2:138 19320:2:138 19321:2:139 19322:2:139 19599:2:139 19600:2:140 19601:2:140 19880:2:140 19881:2:141 19882:2:141 20163:2:141 20164:2:142 20165:2:142 20448:2:142 20449:2:143 20450:2:143 20735:2:143 20736:2:144 20737:2:144 21024:2:144 21025:2:145 21026:2:145 21315:2:145 21316:2:146 21317:2:146 21608:2:146 21609:2:147 21610:2:147 21903:2:147 21904:2:148 21905:2:148 22200:2:148 22201:2:149 22202:2:149 22499:2:149 22500:2:150 22501:2:150 22800:2:150 22801:2:151 22802:2:151 23103:2:151 23104:2:152 23105:2:152 23408:2:152 23409:2:153 23410:2:153 23715:2:153 23716:2:154 23717:2:154 24024:2:154 24025:2:155 24026:2:155 24335:2:155 24336:2:156 24337:2:156 24648:2:156 24649:2:157 24650:2:157 24963:2:157 24964:2:158 24965:2:158 25280:2:158 25281:2:159 25282:2:159 25599:2:159 25600:2:160 25601:2:160 25920:2:160 25921:2:161 25922:2:161 26243:2:161 26244:2:162 26245:2:162 26568:2:162 26569:2:163 26570:2:163 26895:2:163 26896:2:164 26897:2:164 27224:2:164 27225:2:165 27226:2:165 27555:2:165 27556:2:166 27557:2:166 27888:2:166 27889:2:167 27890:2:167 28223:2:167 28224:2:168 28225:2:168 28560:2:168 28561:2:169 28562:2:169 28899:2:169 28900:2:170 28901:2:170 29240:2:170 29241:2:171 29242:2:171 29583:2:171 29584:2:172 29585:2:172 29928:2:172 29929:2:173 29930:2:173 30275:2:173 30276:2:174 30277:2:174 30624:2:174 30625:2:175 30626:2:175 30975:2:175 30976:2:176 30977:2:176 31328:2:176 31329:2:177 31330:2:177 31683:2:177 31684:2:178 31685:2:178 32040:2:178 32041:2:179 32042:2:179 32399:2:179 32400:2:180 32401:2:180 32760:2:180 32761:2:181 32762:2:181 33123:2:181 33124:2:182 33125:2:182 33488:2:182 33489:2:183 33490:2:183 33855:2:183 33856:2:184 33857:2:184 34224:2:184 34225:2:185 34226:2:185 34595:2:185 34596:2:186 34597:2:186 34968:2:186 34969:2:187 34970:2:187 35343:2:187 35344:2:188 35345:2:188 35720:2:188 35721:2:189 35722:2:189 36099:2:189 36100:2:190 36101:2:190 36480:2:190 36481:2:191 36482:2:191 36863:2:191 36864:2:192 36865:2:192 37248:2:192 37249:2:193 37250:2:193 37635:2:193 37636:2:194 37637:2:194 38024:2:194 38025:2:195 38026:2:195 38415:2:195 38416:2:196 38417:2:196 38808:2:196 38809:2:197 38810:2:197 39203:2:197 39204:2:198 39205:2:198 39600:2:198 39601:2:199 39602:2:199 39999:2:199 40000:2:200 40001:2:200 40400:2:200 40401:2:201 40402:2:201 40803:2:201 40804:2:202 40805:2:202 41208:2:202 41209:2:203 41210:2:203 41615:2:203 41616:2:204 41617:2:204 42024:2:204 42025:2:205 42026:2:205 42435:2:205 42436:2:206 42437:2:206 42848:2:206 42849:2:207 42850:2:207 43263:2:207 43264:2:208 43265:2:208 43680:2:208 43681:2:209 43682:2:209 44099:2:209 44100:2:210 44101:2:210 44520:2:210 44521:2:211 44522:2:211 44943:2:211 44944:2:212 44945:2:212 45368:2:212 45369:2:213 45370:2:213 45795:2:213 45796:2:214 45797:2:214 46224:2:214 46225:2:215 46226:2:215 46655:2:215 46656:2:216 46657:2:216 47088:2:216 47089:2:217 47090:2:217 47523:2:217 47524:2:218 47525:2:218 47960:2:218 47961:2:219 47962:2:219 48399:2:219 48400:2:220 48401:2:220 48840:2:220 48841:2:221 48842:2:221 49283:2:221 49284:2:222 49285:2:222 49728:2:222 49729:2:223 49730:2:223 50175:2:223 50176:2:224 50177:2:224 50624:2:224 50625:2:225 50626:2:225 51075:2:225 51076:2:226 51077:2:226 51528:2:226 51529:2:227 51530:2:227 51983:2:227 51984:2:228 51985:2:228 52440:2:228 52441:2:229 52442:2:229 52899:2:229 52900:2:230 52901:2:230 53360:2:230 53361:2:231 53362:2:231 53823:2:231 53824:2:232 53825:2:232 54288:2:232 54289:2:233 54290:2:233 54755:2:233 54756:2:234 54757:2:234 55224:2:234 55225:2:235 55226:2:235 55695:2:235 55696:2:236 55697:2:236 56168:2:236 56169:2:237 56170:2:237 56643:2:237 56644:2:238 56645:2:238 57120:2:238 57121:2:239 57122:2:239 57599:2:239 57600:2:240 57601:2:240 58080:2:240 58081:2:241 58082:2:241 58563:2:241 58564:2:242 58565:2:242 59048:2:242 59049:2:243 59050:2:243 59535:2:243 59536:2:244 59537:2:244 60024:2:244 60025:2:245 60026:2:245 60515:2:245 60516:2:246 60517:2:246 61008:2:246 61009:2:247 61010:2:247 61503:2:247 61504:2:248 61505:2:248 62000:2:248 62001:2:249 62002:2:249 62499:2:249 62500:2:250 62501:2:250 63000:2:250 63001:2:251 63002:2:251 63503:2:251 63504:2:252 63505:2:252 64008:2:252 64009:2:253 64010:2:253 64515:2:253 64516:2:254 64517:2:254 65024:2:254 65025:2:255 65026:2:255 65535:2:255 65536:2:256 65537:2:256 66048:2:256 66049:2:257 66050:2:257 66563:2:257 66564:2:258 66565:2:258 67080:2:258 67081:2:259 67082:2:259 67599:2:259 67600:2:260 67601:2:260 68120:2:260 68121:2:261 68122:2:261 68643:2:261 68644:2:262 68645:2:262 69168:2:262 69169:2:263 69170:2:263 69695:2:263 69696:2:264 69697:2:264 70224:2:264 70225:2:265 70226:2:265 70755:2:265 70756:2:266 70757:2:266 71288:2:266 71289:2:267 71290:2:267 71823:2:267 71824:2:268 71825:2:268 72360:2:268 72361:2:269 72362:2:269 72899:2:269 72900:2:270 72901:2:270 73440:2:270 73441:2:271 73442:2:271 73983:2:271 73984:2:272 73985:2:272 74528:2:272 74529:2:273 74530:2:273 75075:2:273 75076:2:274 75077:2:274 75624:2:274 75625:2:275 75626:2:275 76175:2:275 76176:2:276 76177:2:276 76728:2:276 76729:2:277 76730:2:277 77283:2:277 77284:2:278 77285:2:278 77840:2:278 77841:2:279 77842:2:279 78399:2:279 78400:2:280 78401:2:280 78960:2:280 78961:2:281 78962:2:281 79523:2:281 79524:2:282 79525:2:282 80088:2:282 80089:2:283 80090:2:283 80655:2:283 80656:2:284 80657:2:284 81224:2:284 81225:2:285 81226:2:285 81795:2:285 81796:2:286 81797:2:286 82368:2:286 82369:2:287 82370:2:287 82943:2:287 82944:2:288 82945:2:288 83520:2:288 83521:2:289 83522:2:289 84099:2:289 84100:2:290 84101:2:290 84680:2:290 84681:2:291 84682:2:291 85263:2:291 85264:2:292 85265:2:292 85848:2:292 85849:2:293 85850:2:293 86435:2:293 86436:2:294 86437:2:294 87024:2:294 87025:2:295 87026:2:295 87615:2:295 87616:2:296 87617:2:296 88208:2:296 88209:2:297 88210:2:297 88803:2:297 88804:2:298 88805:2:298 89400:2:298 89401:2:299 89402:2:299 89999:2:299 90000:2:300 90001:2:300 90600:2:300 90601:2:301 90602:2:301 91203:2:301 91204:2:302 91205:2:302 91808:2:302 91809:2:303 91810:2:303 92415:2:303 92416:2:304 92417:2:304 93024:2:304 93025:2:305 93026:2:305 93635:2:305 93636:2:306 93637:2:306 94248:2:306 94249:2:307 94250:2:307 94863:2:307 94864:2:308 94865:2:308 95480:2:308 95481:2:309 95482:2:309 96099:2:309 96100:2:310 96101:2:310 96720:2:310 96721:2:311 96722:2:311 97343:2:311 97344:2:312 97345:2:312 97968:2:312 97969:2:313 97970:2:313 98595:2:313 98596:2:314 98597:2:314 99224:2:314 99225:2:315 99226:2:315 99855:2:315 99856:2:316 99857:2:316 100488:2:316 100489:2:317 100490:2:317 101123:2:317 101124:2:318 101125:2:318 101760:2:318 101761:2:319 101762:2:319 102399:2:319 102400:2:320 102401:2:320 103040:2:320 103041:2:321 103042:2:321 103683:2:321 103684:2:322 103685:2:322 104328:2:322 104329:2:323 104330:2:323 104975:2:323 104976:2:324 104977:2:324 105624:2:324 105625:2:325 105626:2:325 106275:2:325 106276:2:326 106277:2:326 106928:2:326 106929:2:327 106930:2:327 107583:2:327 107584:2:328 107585:2:328 108240:2:328 108241:2:329 108242:2:329 108899:2:329 108900:2:330 108901:2:330 109560:2:330 109561:2:331 109562:2:331 110223:2:331 110224:2:332 110225:2:332 110888:2:332 110889:2:333 110890:2:333 111555:2:333 111556:2:334 111557:2:334 112224:2:334 112225:2:335 112226:2:335 112895:2:335 112896:2:336 112897:2:336 113568:2:336 113569:2:337 113570:2:337 114243:2:337 114244:2:338 114245:2:338 114920:2:338 114921:2:339 114922:2:339 115599:2:339 115600:2:340 115601:2:340 116280:2:340 116281:2:341 116282:2:341 116963:2:341 116964:2:342 116965:2:342 117648:2:342 117649:2:343 117650:2:343 118335:2:343 118336:2:344 118337:2:344 119024:2:344 119025:2:345 119026:2:345 119715:2:345 119716:2:346 119717:2:346 120408:2:346 120409:2:347 120410:2:347 121103:2:347 121104:2:348 121105:2:348 121800:2:348 121801:2:349 121802:2:349 122499:2:349 122500:2:350 122501:2:350 123200:2:350 123201:2:351 123202:2:351 123903:2:351 123904:2:352 123905:2:352 124608:2:352 124609:2:353 124610:2:353 125315:2:353 125316:2:354 125317:2:354 126024:2:354 126025:2:355 126026:2:355 126735:2:355 126736:2:356 126737:2:356 127448:2:356 127449:2:357 127450:2:357 128163:2:357 128164:2:358 128165:2:358 128880:2:358 128881:2:359 128882:2:359 129599:2:359 129600:2:360 129601:2:360 130320:2:360 130321:2:361 130322:2:361 131043:2:361 131044:2:362 131045:2:362 131768:2:362 131769:2:363 131770:2:363 132495:2:363 132496:2:364 132497:2:364 133224:2:364 133225:2:365 133226:2:365 133955:2:365 133956:2:366 133957:2:366 134688:2:366 134689:2:367 134690:2:367 135423:2:367 135424:2:368 135425:2:368 136160:2:368 136161:2:369 136162:2:369 136899:2:369 136900:2:370 136901:2:370 137640:2:370 137641:2:371 137642:2:371 138383:2:371 138384:2:372 138385:2:372 139128:2:372 139129:2:373 139130:2:373 139875:2:373 139876:2:374 139877:2:374 140624:2:374 140625:2:375 140626:2:375 141375:2:375 141376:2:376 141377:2:376 142128:2:376 142129:2:377 142130:2:377 142883:2:377 142884:2:378 142885:2:378 143640:2:378 143641:2:379 143642:2:379 144399:2:379 144400:2:380 144401:2:380 145160:2:380 145161:2:381 145162:2:381 145923:2:381 145924:2:382 145925:2:382 146688:2:382 146689:2:383 146690:2:383 147455:2:383 147456:2:384 147457:2:384 148224:2:384 148225:2:385 148226:2:385 148995:2:385 148996:2:386 148997:2:386 149768:2:386 149769:2:387 149770:2:387 150543:2:387 150544:2:388 150545:2:388 151320:2:388 151321:2:389 151322:2:389 152099:2:389 152100:2:390 152101:2:390 152880:2:390 152881:2:391 152882:2:391 153663:2:391 153664:2:392 153665:2:392 154448:2:392 154449:2:393 154450:2:393 155235:2:393 155236:2:394 155237:2:394 156024:2:394 156025:2:395 156026:2:395 156815:2:395 156816:2:396 156817:2:396 157608:2:396 157609:2:397 157610:2:397 158403:2:397 158404:2:398 158405:2:398 159200:2:398 159201:2:399 159202:2:399 159999:2:399 160000:2:400 160001:2:400 160800:2:400 160801:2:401 160802:2:401 161603:2:401 161604:2:402 161605:2:402 162408:2:402 162409:2:403 162410:2:403 163215:2:403 163216:2:404 163217:2:404 164024:2:404 164025:2:405 164026:2:405 164835:2:405 164836:2:406 164837:2:406 165648:2:406 165649:2:407 165650:2:407 166463:2:407 166464:2:408 166465:2:408 167280:2:408 167281:2:409 167282:2:409 168099:2:409 168100:2:410 168101:2:410 168920:2:410 168921:2:411 168922:2:411 169743:2:411 169744:2:412 169745:2:412 170568:2:412 170569:2:413 170570:2:413 171395:2:413 171396:2:414 171397:2:414 172224:2:414 172225:2:415 172226:2:415 173055:2:415 173056:2:416 173057:2:416 173888:2:416 173889:2:417 173890:2:417 174723:2:417 174724:2:418 174725:2:418 175560:2:418 175561:2:419 175562:2:419 176399:2:419 176400:2:420 176401:2:420 177240:2:420 177241:2:421 177242:2:421 178083:2:421 178084:2:422 178085:2:422 178928:2:422 178929:2:423 178930:2:423 179775:2:423 179776:2:424 179777:2:424 180624:2:424 180625:2:425 180626:2:425 181475:2:425 181476:2:426 181477:2:426 182328:2:426 182329:2:427 182330:2:427 183183:2:427 183184:2:428 183185:2:428 184040:2:428 184041:2:429 184042:2:429 184899:2:429 184900:2:430 184901:2:430 185760:2:430 185761:2:431 185762:2:431 186623:2:431 186624:2:432 186625:2:432 187488:2:432 187489:2:433 187490:2:433 188355:2:433 188356:2:434 188357:2:434 189224:2:434 189225:2:435 189226:2:435 190095:2:435 190096:2:436 190097:2:436 190968:2:436 190969:2:437 190970:2:437 191843:2:437 191844:2:438 191845:2:438 192720:2:438 192721:2:439 192722:2:439 193599:2:439 193600:2:440 193601:2:440 194480:2:440 194481:2:441 194482:2:441 195363:2:441 195364:2:442 195365:2:442 196248:2:442 196249:2:443 196250:2:443 197135:2:443 197136:2:444 197137:2:444 198024:2:444 198025:2:445 198026:2:445 198915:2:445 198916:2:446 198917:2:446 199808:2:446 199809:2:447 199810:2:447 200703:2:447 200704:2:448 200705:2:448 201600:2:448 201601:2:449 201602:2:449 202499:2:449 202500:2:450 202501:2:450 203400:2:450 203401:2:451 203402:2:451 204303:2:451 204304:2:452 204305:2:452 205208:2:452 205209:2:453 205210:2:453 206115:2:453 206116:2:454 206117:2:454 207024:2:454 207025:2:455 207026:2:455 207935:2:455 207936:2:456 207937:2:456 208848:2:456 208849:2:457 208850:2:457 209763:2:457 209764:2:458 209765:2:458 210680:2:458 210681:2:459 210682:2:459 211599:2:459 211600:2:460 211601:2:460 212520:2:460 212521:2:461 212522:2:461 213443:2:461 213444:2:462 213445:2:462 214368:2:462 214369:2:463 214370:2:463 215295:2:463 215296:2:464 215297:2:464 216224:2:464 216225:2:465 216226:2:465 217155:2:465 217156:2:466 217157:2:466 218088:2:466 218089:2:467 218090:2:467 219023:2:467 219024:2:468 219025:2:468 219960:2:468 219961:2:469 219962:2:469 220899:2:469 220900:2:470 220901:2:470 221840:2:470 221841:2:471 221842:2:471 222783:2:471 222784:2:472 222785:2:472 223728:2:472 223729:2:473 223730:2:473 224675:2:473 224676:2:474 224677:2:474 225624:2:474 225625:2:475 225626:2:475 226575:2:475 226576:2:476 226577:2:476 227528:2:476 227529:2:477 227530:2:477 228483:2:477 228484:2:478 228485:2:478 229440:2:478 229441:2:479 229442:2:479 230399:2:479 230400:2:480 230401:2:480 231360:2:480 231361:2:481 231362:2:481 232323:2:481 232324:2:482 232325:2:482 233288:2:482 233289:2:483 233290:2:483 234255:2:483 234256:2:484 234257:2:484 235224:2:484 235225:2:485 235226:2:485 236195:2:485 236196:2:486 236197:2:486 237168:2:486 237169:2:487 237170:2:487 238143:2:487 238144:2:488 238145:2:488 239120:2:488 239121:2:489 239122:2:489 240099:2:489 240100:2:490 240101:2:490 241080:2:490 241081:2:491 241082:2:491 242063:2:491 242064:2:492 242065:2:492 243048:2:492 243049:2:493 243050:2:493 244035:2:493 244036:2:494 244037:2:494 245024:2:494 245025:2:495 245026:2:495 246015:2:495 246016:2:496 246017:2:496 247008:2:496 247009:2:497 247010:2:497 248003:2:497 248004:2:498 248005:2:498 249000:2:498 249001:2:499 249002:2:499 249999:2:499 250000:2:500 250001:2:500 251000:2:500 251001:2:501 251002:2:501 252003:2:501 252004:2:502 252005:2:502 253008:2:502 253009:2:503 253010:2:503 254015:2:503 254016:2:504 254017:2:504 255024:2:504 255025:2:505 255026:2:505 256035:2:505 256036:2:506 256037:2:506 257048:2:506 257049:2:507 257050:2:507 258063:2:507 258064:2:508 258065:2:508 259080:2:508 259081:2:509 259082:2:509 260099:2:509 260100:2:510 260101:2:510 261120:2:510 261121:2:511 261122:2:511 262143:2:511 262144:2:512 262145:2:512 263168:2:512 263169:2:513 263170:2:513 264195:2:513 264196:2:514 264197:2:514 265224:2:514 265225:2:515 265226:2:515 266255:2:515 266256:2:516 266257:2:516 267288:2:516 267289:2:517 267290:2:517 268323:2:517 268324:2:518 268325:2:518 269360:2:518 269361:2:519 269362:2:519 270399:2:519 270400:2:520 270401:2:520 271440:2:520 271441:2:521 271442:2:521 272483:2:521 272484:2:522 272485:2:522 273528:2:522 273529:2:523 273530:2:523 274575:2:523 274576:2:524 274577:2:524 275624:2:524 275625:2:525 275626:2:525 276675:2:525 276676:2:526 276677:2:526 277728:2:526 277729:2:527 277730:2:527 278783:2:527 278784:2:528 278785:2:528 279840:2:528 279841:2:529 279842:2:529 280899:2:529 280900:2:530 280901:2:530 281960:2:530 281961:2:531 281962:2:531 283023:2:531 283024:2:532 283025:2:532 284088:2:532 284089:2:533 284090:2:533 285155:2:533 285156:2:534 285157:2:534 286224:2:534 286225:2:535 286226:2:535 287295:2:535 287296:2:536 287297:2:536 288368:2:536 288369:2:537 288370:2:537 289443:2:537 289444:2:538 289445:2:538 290520:2:538 290521:2:539 290522:2:539 291599:2:539 291600:2:540 291601:2:540 292680:2:540 292681:2:541 292682:2:541 293763:2:541 293764:2:542 293765:2:542 294848:2:542 294849:2:543 294850:2:543 295935:2:543 295936:2:544 295937:2:544 297024:2:544 297025:2:545 297026:2:545 298115:2:545 298116:2:546 298117:2:546 299208:2:546 299209:2:547 299210:2:547 300303:2:547 300304:2:548 300305:2:548 301400:2:548 301401:2:549 301402:2:549 302499:2:549 302500:2:550 302501:2:550 303600:2:550 303601:2:551 303602:2:551 304703:2:551 304704:2:552 304705:2:552 305808:2:552 305809:2:553 305810:2:553 306915:2:553 306916:2:554 306917:2:554 308024:2:554 308025:2:555 308026:2:555 309135:2:555 309136:2:556 309137:2:556 310248:2:556 310249:2:557 310250:2:557 311363:2:557 311364:2:558 311365:2:558 312480:2:558 312481:2:559 312482:2:559 313599:2:559 313600:2:560 313601:2:560 314720:2:560 314721:2:561 314722:2:561 315843:2:561 315844:2:562 315845:2:562 316968:2:562 316969:2:563 316970:2:563 318095:2:563 318096:2:564 318097:2:564 319224:2:564 319225:2:565 319226:2:565 320355:2:565 320356:2:566 320357:2:566 321488:2:566 321489:2:567 321490:2:567 322623:2:567 322624:2:568 322625:2:568 323760:2:568 323761:2:569 323762:2:569 324899:2:569 324900:2:570 324901:2:570 326040:2:570 326041:2:571 326042:2:571 327183:2:571 327184:2:572 327185:2:572 328328:2:572 328329:2:573 328330:2:573 329475:2:573 329476:2:574 329477:2:574 330624:2:574 330625:2:575 330626:2:575 331775:2:575 331776:2:576 331777:2:576 332928:2:576 332929:2:577 332930:2:577 334083:2:577 334084:2:578 334085:2:578 335240:2:578 335241:2:579 335242:2:579 336399:2:579 336400:2:580 336401:2:580 337560:2:580 337561:2:581 337562:2:581 338723:2:581 338724:2:582 338725:2:582 339888:2:582 339889:2:583 339890:2:583 341055:2:583 341056:2:584 341057:2:584 342224:2:584 342225:2:585 342226:2:585 343395:2:585 343396:2:586 343397:2:586 344568:2:586 344569:2:587 344570:2:587 345743:2:587 345744:2:588 345745:2:588 346920:2:588 346921:2:589 346922:2:589 348099:2:589 348100:2:590 348101:2:590 349280:2:590 349281:2:591 349282:2:591 350463:2:591 350464:2:592 350465:2:592 351648:2:592 351649:2:593 351650:2:593 352835:2:593 352836:2:594 352837:2:594 354024:2:594 354025:2:595 354026:2:595 355215:2:595 355216:2:596 355217:2:596 356408:2:596 356409:2:597 356410:2:597 357603:2:597 357604:2:598 357605:2:598 358800:2:598 358801:2:599 358802:2:599 359999:2:599 360000:2:600 360001:2:600 361200:2:600 361201:2:601 361202:2:601 362403:2:601 362404:2:602 362405:2:602 363608:2:602 363609:2:603 363610:2:603 364815:2:603 364816:2:604 364817:2:604 366024:2:604 366025:2:605 366026:2:605 367235:2:605 367236:2:606 367237:2:606 368448:2:606 368449:2:607 368450:2:607 369663:2:607 369664:2:608 369665:2:608 370880:2:608 370881:2:609 370882:2:609 372099:2:609 372100:2:610 372101:2:610 373320:2:610 373321:2:611 373322:2:611 374543:2:611 374544:2:612 374545:2:612 375768:2:612 375769:2:613 375770:2:613 376995:2:613 376996:2:614 376997:2:614 378224:2:614 378225:2:615 378226:2:615 379455:2:615 379456:2:616 379457:2:616 380688:2:616 380689:2:617 380690:2:617 381923:2:617 381924:2:618 381925:2:618 383160:2:618 383161:2:619 383162:2:619 384399:2:619 384400:2:620 384401:2:620 385640:2:620 385641:2:621 385642:2:621 386883:2:621 386884:2:622 386885:2:622 388128:2:622 388129:2:623 388130:2:623 389375:2:623 389376:2:624 389377:2:624 390624:2:624 390625:2:625 390626:2:625 391875:2:625 391876:2:626 391877:2:626 393128:2:626 393129:2:627 393130:2:627 394383:2:627 394384:2:628 394385:2:628 395640:2:628 395641:2:629 395642:2:629 396899:2:629 396900:2:630 396901:2:630 398160:2:630 398161:2:631 398162:2:631 399423:2:631 399424:2:632 399425:2:632 400688:2:632 400689:2:633 400690:2:633 401955:2:633 401956:2:634 401957:2:634 403224:2:634 403225:2:635 403226:2:635 404495:2:635 404496:2:636 404497:2:636 405768:2:636 405769:2:637 405770:2:637 407043:2:637 407044:2:638 407045:2:638 408320:2:638 408321:2:639 408322:2:639 409599:2:639 409600:2:640 409601:2:640 410880:2:640 410881:2:641 410882:2:641 412163:2:641 412164:2:642 412165:2:642 413448:2:642 413449:2:643 413450:2:643 414735:2:643 414736:2:644 414737:2:644 416024:2:644 416025:2:645 416026:2:645 417315:2:645 417316:2:646 417317:2:646 418608:2:646 418609:2:647 418610:2:647 419903:2:647 419904:2:648 419905:2:648 421200:2:648 421201:2:649 421202:2:649 422499:2:649 422500:2:650 422501:2:650 423800:2:650 423801:2:651 423802:2:651 425103:2:651 425104:2:652 425105:2:652 426408:2:652 426409:2:653 426410:2:653 427715:2:653 427716:2:654 427717:2:654 429024:2:654 429025:2:655 429026:2:655 430335:2:655 430336:2:656 430337:2:656 431648:2:656 431649:2:657 431650:2:657 432963:2:657 432964:2:658 432965:2:658 434280:2:658 434281:2:659 434282:2:659 435599:2:659 435600:2:660 435601:2:660 436920:2:660 436921:2:661 436922:2:661 438243:2:661 438244:2:662 438245:2:662 439568:2:662 439569:2:663 439570:2:663 440895:2:663 440896:2:664 440897:2:664 442224:2:664 442225:2:665 442226:2:665 443555:2:665 443556:2:666 443557:2:666 444888:2:666 444889:2:667 444890:2:667 446223:2:667 446224:2:668 446225:2:668 447560:2:668 447561:2:669 447562:2:669 448899:2:669 448900:2:670 448901:2:670 450240:2:670 450241:2:671 450242:2:671 451583:2:671 451584:2:672 451585:2:672 452928:2:672 452929:2:673 452930:2:673 454275:2:673 454276:2:674 454277:2:674 455624:2:674 455625:2:675 455626:2:675 456975:2:675 456976:2:676 456977:2:676 458328:2:676 458329:2:677 458330:2:677 459683:2:677 459684:2:678 459685:2:678 461040:2:678 461041:2:679 461042:2:679 462399:2:679 462400:2:680 462401:2:680 463760:2:680 463761:2:681 463762:2:681 465123:2:681 465124:2:682 465125:2:682 466488:2:682 466489:2:683 466490:2:683 467855:2:683 467856:2:684 467857:2:684 469224:2:684 469225:2:685 469226:2:685 470595:2:685 470596:2:686 470597:2:686 471968:2:686 471969:2:687 471970:2:687 473343:2:687 473344:2:688 473345:2:688 474720:2:688 474721:2:689 474722:2:689 476099:2:689 476100:2:690 476101:2:690 477480:2:690 477481:2:691 477482:2:691 478863:2:691 478864:2:692 478865:2:692 480248:2:692 480249:2:693 480250:2:693 481635:2:693 481636:2:694 481637:2:694 483024:2:694 483025:2:695 483026:2:695 484415:2:695 484416:2:696 484417:2:696 485808:2:696 485809:2:697 485810:2:697 487203:2:697 487204:2:698 487205:2:698 488600:2:698 488601:2:699 488602:2:699 489999:2:699 490000:2:700 490001:2:700 491400:2:700 491401:2:701 491402:2:701 492803:2:701 492804:2:702 492805:2:702 494208:2:702 494209:2:703 494210:2:703 495615:2:703 495616:2:704 495617:2:704 497024:2:704 497025:2:705 497026:2:705 498435:2:705 498436:2:706 498437:2:706 499848:2:706 499849:2:707 499850:2:707 501263:2:707 501264:2:708 501265:2:708 502680:2:708 502681:2:709 502682:2:709 504099:2:709 504100:2:710 504101:2:710 505520:2:710 505521:2:711 505522:2:711 506943:2:711 506944:2:712 506945:2:712 508368:2:712 508369:2:713 508370:2:713 509795:2:713 509796:2:714 509797:2:714 511224:2:714 511225:2:715 511226:2:715 512655:2:715 512656:2:716 512657:2:716 514088:2:716 514089:2:717 514090:2:717 515523:2:717 515524:2:718 515525:2:718 516960:2:718 516961:2:719 516962:2:719 518399:2:719 518400:2:720 518401:2:720 519840:2:720 519841:2:721 519842:2:721 521283:2:721 521284:2:722 521285:2:722 522728:2:722 522729:2:723 522730:2:723 524175:2:723 524176:2:724 524177:2:724 525624:2:724 525625:2:725 525626:2:725 527075:2:725 527076:2:726 527077:2:726 528528:2:726 528529:2:727 528530:2:727 529983:2:727 529984:2:728 529985:2:728 531440:2:728 531441:2:729 531442:2:729 532899:2:729 532900:2:730 532901:2:730 534360:2:730 534361:2:731 534362:2:731 535823:2:731 535824:2:732 535825:2:732 537288:2:732 537289:2:733 537290:2:733 538755:2:733 538756:2:734 538757:2:734 540224:2:734 540225:2:735 540226:2:735 541695:2:735 541696:2:736 541697:2:736 543168:2:736 543169:2:737 543170:2:737 544643:2:737 544644:2:738 544645:2:738 546120:2:738 546121:2:739 546122:2:739 547599:2:739 547600:2:740 547601:2:740 549080:2:740 549081:2:741 549082:2:741 550563:2:741 550564:2:742 550565:2:742 552048:2:742 552049:2:743 552050:2:743 553535:2:743 553536:2:744 553537:2:744 555024:2:744 555025:2:745 555026:2:745 556515:2:745 556516:2:746 556517:2:746 558008:2:746 558009:2:747 558010:2:747 559503:2:747 559504:2:748 559505:2:748 561000:2:748 561001:2:749 561002:2:749 562499:2:749 562500:2:750 562501:2:750 564000:2:750 564001:2:751 564002:2:751 565503:2:751 565504:2:752 565505:2:752 567008:2:752 567009:2:753 567010:2:753 568515:2:753 568516:2:754 568517:2:754 570024:2:754 570025:2:755 570026:2:755 571535:2:755 571536:2:756 571537:2:756 573048:2:756 573049:2:757 573050:2:757 574563:2:757 574564:2:758 574565:2:758 576080:2:758 576081:2:759 576082:2:759 577599:2:759 577600:2:760 577601:2:760 579120:2:760 579121:2:761 579122:2:761 580643:2:761 580644:2:762 580645:2:762 582168:2:762 582169:2:763 582170:2:763 583695:2:763 583696:2:764 583697:2:764 585224:2:764 585225:2:765 585226:2:765 586755:2:765 586756:2:766 586757:2:766 588288:2:766 588289:2:767 588290:2:767 589823:2:767 589824:2:768 589825:2:768 591360:2:768 591361:2:769 591362:2:769 592899:2:769 592900:2:770 592901:2:770 594440:2:770 594441:2:771 594442:2:771 595983:2:771 595984:2:772 595985:2:772 597528:2:772 597529:2:773 597530:2:773 599075:2:773 599076:2:774 599077:2:774 600624:2:774 600625:2:775 600626:2:775 602175:2:775 602176:2:776 602177:2:776 603728:2:776 603729:2:777 603730:2:777 605283:2:777 605284:2:778 605285:2:778 606840:2:778 606841:2:779 606842:2:779 608399:2:779 608400:2:780 608401:2:780 609960:2:780 609961:2:781 609962:2:781 611523:2:781 611524:2:782 611525:2:782 613088:2:782 613089:2:783 613090:2:783 614655:2:783 614656:2:784 614657:2:784 616224:2:784 616225:2:785 616226:2:785 617795:2:785 617796:2:786 617797:2:786 619368:2:786 619369:2:787 619370:2:787 620943:2:787 620944:2:788 620945:2:788 622520:2:788 622521:2:789 622522:2:789 624099:2:789 624100:2:790 624101:2:790 625680:2:790 625681:2:791 625682:2:791 627263:2:791 627264:2:792 627265:2:792 628848:2:792 628849:2:793 628850:2:793 630435:2:793 630436:2:794 630437:2:794 632024:2:794 632025:2:795 632026:2:795 633615:2:795 633616:2:796 633617:2:796 635208:2:796 635209:2:797 635210:2:797 636803:2:797 636804:2:798 636805:2:798 638400:2:798 638401:2:799 638402:2:799 639999:2:799 640000:2:800 640001:2:800 641600:2:800 641601:2:801 641602:2:801 643203:2:801 643204:2:802 643205:2:802 644808:2:802 644809:2:803 644810:2:803 646415:2:803 646416:2:804 646417:2:804 648024:2:804 648025:2:805 648026:2:805 649635:2:805 649636:2:806 649637:2:806 651248:2:806 651249:2:807 651250:2:807 652863:2:807 652864:2:808 652865:2:808 654480:2:808 654481:2:809 654482:2:809 656099:2:809 656100:2:810 656101:2:810 657720:2:810 657721:2:811 657722:2:811 659343:2:811 659344:2:812 659345:2:812 660968:2:812 660969:2:813 660970:2:813 662595:2:813 662596:2:814 662597:2:814 664224:2:814 664225:2:815 664226:2:815 665855:2:815 665856:2:816 665857:2:816 667488:2:816 667489:2:817 667490:2:817 669123:2:817 669124:2:818 669125:2:818 670760:2:818 670761:2:819 670762:2:819 672399:2:819 672400:2:820 672401:2:820 674040:2:820 674041:2:821 674042:2:821 675683:2:821 675684:2:822 675685:2:822 677328:2:822 677329:2:823 677330:2:823 678975:2:823 678976:2:824 678977:2:824 680624:2:824 680625:2:825 680626:2:825 682275:2:825 682276:2:826 682277:2:826 683928:2:826 683929:2:827 683930:2:827 685583:2:827 685584:2:828 685585:2:828 687240:2:828 687241:2:829 687242:2:829 688899:2:829 688900:2:830 688901:2:830 690560:2:830 690561:2:831 690562:2:831 692223:2:831 692224:2:832 692225:2:832 693888:2:832 693889:2:833 693890:2:833 695555:2:833 695556:2:834 695557:2:834 697224:2:834 697225:2:835 697226:2:835 698895:2:835 698896:2:836 698897:2:836 700568:2:836 700569:2:837 700570:2:837 702243:2:837 702244:2:838 702245:2:838 703920:2:838 703921:2:839 703922:2:839 705599:2:839 705600:2:840 705601:2:840 707280:2:840 707281:2:841 707282:2:841 708963:2:841 708964:2:842 708965:2:842 710648:2:842 710649:2:843 710650:2:843 712335:2:843 712336:2:844 712337:2:844 714024:2:844 714025:2:845 714026:2:845 715715:2:845 715716:2:846 715717:2:846 717408:2:846 717409:2:847 717410:2:847 719103:2:847 719104:2:848 719105:2:848 720800:2:848 720801:2:849 720802:2:849 722499:2:849 722500:2:850 722501:2:850 724200:2:850 724201:2:851 724202:2:851 725903:2:851 725904:2:852 725905:2:852 727608:2:852 727609:2:853 727610:2:853 729315:2:853 729316:2:854 729317:2:854 731024:2:854 731025:2:855 731026:2:855 732735:2:855 732736:2:856 732737:2:856 734448:2:856 734449:2:857 734450:2:857 736163:2:857 736164:2:858 736165:2:858 737880:2:858 737881:2:859 737882:2:859 739599:2:859 739600:2:860 739601:2:860 741320:2:860 741321:2:861 741322:2:861 743043:2:861 743044:2:862 743045:2:862 744768:2:862 744769:2:863 744770:2:863 746495:2:863 746496:2:864 746497:2:864 748224:2:864 748225:2:865 748226:2:865 749955:2:865 749956:2:866 749957:2:866 751688:2:866 751689:2:867 751690:2:867 753423:2:867 753424:2:868 753425:2:868 755160:2:868 755161:2:869 755162:2:869 756899:2:869 756900:2:870 756901:2:870 758640:2:870 758641:2:871 758642:2:871 760383:2:871 760384:2:872 760385:2:872 762128:2:872 762129:2:873 762130:2:873 763875:2:873 763876:2:874 763877:2:874 765624:2:874 765625:2:875 765626:2:875 767375:2:875 767376:2:876 767377:2:876 769128:2:876 769129:2:877 769130:2:877 770883:2:877 770884:2:878 770885:2:878 772640:2:878 772641:2:879 772642:2:879 774399:2:879 774400:2:880 774401:2:880 776160:2:880 776161:2:881 776162:2:881 777923:2:881 777924:2:882 777925:2:882 779688:2:882 779689:2:883 779690:2:883 781455:2:883 781456:2:884 781457:2:884 783224:2:884 783225:2:885 783226:2:885 784995:2:885 784996:2:886 784997:2:886 786768:2:886 786769:2:887 786770:2:887 788543:2:887 788544:2:888 788545:2:888 790320:2:888 790321:2:889 790322:2:889 792099:2:889 792100:2:890 792101:2:890 793880:2:890 793881:2:891 793882:2:891 795663:2:891 795664:2:892 795665:2:892 797448:2:892 797449:2:893 797450:2:893 799235:2:893 799236:2:894 799237:2:894 801024:2:894 801025:2:895 801026:2:895 802815:2:895 802816:2:896 802817:2:896 804608:2:896 804609:2:897 804610:2:897 806403:2:897 806404:2:898 806405:2:898 808200:2:898 808201:2:899 808202:2:899 809999:2:899 810000:2:900 810001:2:900 811800:2:900 811801:2:901 811802:2:901 813603:2:901 813604:2:902 813605:2:902 815408:2:902 815409:2:903 815410:2:903 817215:2:903 817216:2:904 817217:2:904 819024:2:904 819025:2:905 819026:2:905 820835:2:905 820836:2:906 820837:2:906 822648:2:906 822649:2:907 822650:2:907 824463:2:907 824464:2:908 824465:2:908 826280:2:908 826281:2:909 826282:2:909 828099:2:909 828100:2:910 828101:2:910 829920:2:910 829921:2:911 829922:2:911 831743:2:911 831744:2:912 831745:2:912 833568:2:912 833569:2:913 833570:2:913 835395:2:913 835396:2:914 835397:2:914 837224:2:914 837225:2:915 837226:2:915 839055:2:915 839056:2:916 839057:2:916 840888:2:916 840889:2:917 840890:2:917 842723:2:917 842724:2:918 842725:2:918 844560:2:918 844561:2:919 844562:2:919 846399:2:919 846400:2:920 846401:2:920 848240:2:920 848241:2:921 848242:2:921 850083:2:921 850084:2:922 850085:2:922 851928:2:922 851929:2:923 851930:2:923 853775:2:923 853776:2:924 853777:2:924 855624:2:924 855625:2:925 855626:2:925 857475:2:925 857476:2:926 857477:2:926 859328:2:926 859329:2:927 859330:2:927 861183:2:927 861184:2:928 861185:2:928 863040:2:928 863041:2:929 863042:2:929 864899:2:929 864900:2:930 864901:2:930 866760:2:930 866761:2:931 866762:2:931 868623:2:931 868624:2:932 868625:2:932 870488:2:932 870489:2:933 870490:2:933 872355:2:933 872356:2:934 872357:2:934 874224:2:934 874225:2:935 874226:2:935 876095:2:935 876096:2:936 876097:2:936 877968:2:936 877969:2:937 877970:2:937 879843:2:937 879844:2:938 879845:2:938 881720:2:938 881721:2:939 881722:2:939 883599:2:939 883600:2:940 883601:2:940 885480:2:940 885481:2:941 885482:2:941 887363:2:941 887364:2:942 887365:2:942 889248:2:942 889249:2:943 889250:2:943 891135:2:943 891136:2:944 891137:2:944 893024:2:944 893025:2:945 893026:2:945 894915:2:945 894916:2:946 894917:2:946 896808:2:946 896809:2:947 896810:2:947 898703:2:947 898704:2:948 898705:2:948 900600:2:948 900601:2:949 900602:2:949 902499:2:949 902500:2:950 902501:2:950 904400:2:950 904401:2:951 904402:2:951 906303:2:951 906304:2:952 906305:2:952 908208:2:952 908209:2:953 908210:2:953 910115:2:953 910116:2:954 910117:2:954 912024:2:954 912025:2:955 912026:2:955 913935:2:955 913936:2:956 913937:2:956 915848:2:956 915849:2:957 915850:2:957 917763:2:957 917764:2:958 917765:2:958 919680:2:958 919681:2:959 919682:2:959 921599:2:959 921600:2:960 921601:2:960 923520:2:960 923521:2:961 923522:2:961 925443:2:961 925444:2:962 925445:2:962 927368:2:962 927369:2:963 927370:2:963 929295:2:963 929296:2:964 929297:2:964 931224:2:964 931225:2:965 931226:2:965 933155:2:965 933156:2:966 933157:2:966 935088:2:966 935089:2:967 935090:2:967 937023:2:967 937024:2:968 937025:2:968 938960:2:968 938961:2:969 938962:2:969 940899:2:969 940900:2:970 940901:2:970 942840:2:970 942841:2:971 942842:2:971 944783:2:971 944784:2:972 944785:2:972 946728:2:972 946729:2:973 946730:2:973 948675:2:973 948676:2:974 948677:2:974 950624:2:974 950625:2:975 950626:2:975 952575:2:975 952576:2:976 952577:2:976 954528:2:976 954529:2:977 954530:2:977 956483:2:977 956484:2:978 956485:2:978 958440:2:978 958441:2:979 958442:2:979 960399:2:979 960400:2:980 960401:2:980 962360:2:980 962361:2:981 962362:2:981 964323:2:981 964324:2:982 964325:2:982 966288:2:982 966289:2:983 966290:2:983 968255:2:983 968256:2:984 968257:2:984 970224:2:984 970225:2:985 970226:2:985 972195:2:985 972196:2:986 972197:2:986 974168:2:986 974169:2:987 974170:2:987 976143:2:987 976144:2:988 976145:2:988 978120:2:988 978121:2:989 978122:2:989 980099:2:989 980100:2:990 980101:2:990 982080:2:990 982081:2:991 982082:2:991 984063:2:991 984064:2:992 984065:2:992 986048:2:992 986049:2:993 986050:2:993 988035:2:993 988036:2:994 988037:2:994 990024:2:994 990025:2:995 990026:2:995 992015:2:995 992016:2:996 992017:2:996 994008:2:996 994009:2:997 994010:2:997 996003:2:997 996004:2:998 996005:2:998 998000:2:998 998001:2:999 998002:2:999 2400:4:6 2401:4:7 2402:4:7 4095:4:7 4096:4:8 4097:4:8 6560:4:8 6561:4:9 6562:4:9 14640:4:10 14641:4:11 14642:4:11 20735:4:11 20736:4:12 20737:4:12 28560:4:12 28561:4:13 28562:4:13 38415:4:13 38416:4:14 38417:4:14 50624:4:14 50625:4:15 50626:4:15 65535:4:15 65536:4:16 65537:4:16 83520:4:16 83521:4:17 83522:4:17 104975:4:17 104976:4:18 104977:4:18 130320:4:18 130321:4:19 130322:4:19 159999:4:19 160000:4:20 160001:4:20 194480:4:20 194481:4:21 194482:4:21 234255:4:21 234256:4:22 234257:4:22 279840:4:22 279841:4:23 279842:4:23 331775:4:23 331776:4:24 331777:4:24 390624:4:24 390625:4:25 390626:4:25 456975:4:25 456976:4:26 456977:4:26 531440:4:26 531441:4:27 531442:4:27 614655:4:27 614656:4:28 614657:4:28 707280:4:28 707281:4:29 707282:4:29 809999:4:29 810000:4:30 810001:4:30 923520:4:30 923521:4:31 923522:4:31 1048575:4:31 1048576:4:32 1048577:4:32 1185920:4:32 1185921:4:33 1185922:4:33 1336335:4:33 1336336:4:34 1336337:4:34 1500624:4:34 1500625:4:35 1500626:4:35 1679615:4:35 1679616:4:36 1679617:4:36 1874160:4:36 1874161:4:37 1874162:4:37 2085135:4:37 2085136:4:38 2085137:4:38 2313440:4:38 2313441:4:39 2313442:4:39 2559999:4:39 2560000:4:40 2560001:4:40 2825760:4:40 2825761:4:41 2825762:4:41 3111695:4:41 3111696:4:42 3111697:4:42 3418800:4:42 3418801:4:43 3418802:4:43 3748095:4:43 3748096:4:44 3748097:4:44 4100624:4:44 4100625:4:45 4100626:4:45 4477455:4:45 4477456:4:46 4477457:4:46 4879680:4:46 4879681:4:47 4879682:4:47 5308415:4:47 5308416:4:48 5308417:4:48 5764800:4:48 5764801:4:49 5764802:4:49 6249999:4:49 6250000:4:50 6250001:4:50 6765200:4:50 6765201:4:51 6765202:4:51 7311615:4:51 7311616:4:52 7311617:4:52 7890480:4:52 7890481:4:53 7890482:4:53 8503055:4:53 8503056:4:54 8503057:4:54 9150624:4:54 9150625:4:55 9150626:4:55 9834495:4:55 9834496:4:56 9834497:4:56 10556000:4:56 10556001:4:57 10556002:4:57 11316495:4:57 11316496:4:58 11316497:4:58 12117360:4:58 12117361:4:59 12117362:4:59 12959999:4:59 12960000:4:60 12960001:4:60 13845840:4:60 13845841:4:61 13845842:4:61 14776335:4:61 14776336:4:62 14776337:4:62 15752960:4:62 15752961:4:63 15752962:4:63 16777215:4:63 16777216:4:64 16777217:4:64 17850624:4:64 17850625:4:65 17850626:4:65 18974735:4:65 18974736:4:66 18974737:4:66 20151120:4:66 20151121:4:67 20151122:4:67 21381375:4:67 21381376:4:68 21381377:4:68 22667120:4:68 22667121:4:69 22667122:4:69 24009999:4:69 24010000:4:70 24010001:4:70 25411680:4:70 25411681:4:71 25411682:4:71 26873855:4:71 26873856:4:72 26873857:4:72 28398240:4:72 28398241:4:73 28398242:4:73 29986575:4:73 29986576:4:74 29986577:4:74 31640624:4:74 31640625:4:75 31640626:4:75 33362175:4:75 33362176:4:76 33362177:4:76 35153040:4:76 35153041:4:77 35153042:4:77 37015055:4:77 37015056:4:78 37015057:4:78 38950080:4:78 38950081:4:79 38950082:4:79 40959999:4:79 40960000:4:80 40960001:4:80 43046720:4:80 43046721:4:81 43046722:4:81 45212175:4:81 45212176:4:82 45212177:4:82 47458320:4:82 47458321:4:83 47458322:4:83 49787135:4:83 49787136:4:84 49787137:4:84 52200624:4:84 52200625:4:85 52200626:4:85 54700815:4:85 54700816:4:86 54700817:4:86 57289760:4:86 57289761:4:87 57289762:4:87 59969535:4:87 59969536:4:88 59969537:4:88 62742240:4:88 62742241:4:89 62742242:4:89 65609999:4:89 65610000:4:90 65610001:4:90 68574960:4:90 68574961:4:91 68574962:4:91 71639295:4:91 71639296:4:92 71639297:4:92 74805200:4:92 74805201:4:93 74805202:4:93 78074895:4:93 78074896:4:94 78074897:4:94 81450624:4:94 81450625:4:95 81450626:4:95 84934655:4:95 84934656:4:96 84934657:4:96 88529280:4:96 88529281:4:97 88529282:4:97 92236815:4:97 92236816:4:98 92236817:4:98 96059600:4:98 96059601:4:99 96059602:4:99 104060400:4:100 104060401:4:101 104060402:4:101 108243215:4:101 108243216:4:102 108243217:4:102 112550880:4:102 112550881:4:103 112550882:4:103 116985855:4:103 116985856:4:104 116985857:4:104 121550624:4:104 121550625:4:105 121550626:4:105 126247695:4:105 126247696:4:106 126247697:4:106 131079600:4:106 131079601:4:107 131079602:4:107 136048895:4:107 136048896:4:108 136048897:4:108 141158160:4:108 141158161:4:109 141158162:4:109 146409999:4:109 146410000:4:110 146410001:4:110 151807040:4:110 151807041:4:111 151807042:4:111 157351935:4:111 157351936:4:112 157351937:4:112 163047360:4:112 163047361:4:113 163047362:4:113 168896015:4:113 168896016:4:114 168896017:4:114 174900624:4:114 174900625:4:115 174900626:4:115 181063935:4:115 181063936:4:116 181063937:4:116 187388720:4:116 187388721:4:117 187388722:4:117 193877775:4:117 193877776:4:118 193877777:4:118 200533920:4:118 200533921:4:119 200533922:4:119 207359999:4:119 207360000:4:120 207360001:4:120 214358880:4:120 214358881:4:121 214358882:4:121 221533455:4:121 221533456:4:122 221533457:4:122 228886640:4:122 228886641:4:123 228886642:4:123 236421375:4:123 236421376:4:124 236421377:4:124 244140624:4:124 244140625:4:125 244140626:4:125 252047375:4:125 252047376:4:126 252047377:4:126 260144640:4:126 260144641:4:127 260144642:4:127 268435455:4:127 268435456:4:128 268435457:4:128 276922880:4:128 276922881:4:129 276922882:4:129 285609999:4:129 285610000:4:130 285610001:4:130 294499920:4:130 294499921:4:131 294499922:4:131 303595775:4:131 303595776:4:132 303595777:4:132 312900720:4:132 312900721:4:133 312900722:4:133 322417935:4:133 322417936:4:134 322417937:4:134 332150624:4:134 332150625:4:135 332150626:4:135 342102015:4:135 342102016:4:136 342102017:4:136 352275360:4:136 352275361:4:137 352275362:4:137 362673935:4:137 362673936:4:138 362673937:4:138 373301040:4:138 373301041:4:139 373301042:4:139 384159999:4:139 384160000:4:140 384160001:4:140 395254160:4:140 395254161:4:141 395254162:4:141 406586895:4:141 406586896:4:142 406586897:4:142 418161600:4:142 418161601:4:143 418161602:4:143 429981695:4:143 429981696:4:144 429981697:4:144 442050624:4:144 442050625:4:145 442050626:4:145 454371855:4:145 454371856:4:146 454371857:4:146 466948880:4:146 466948881:4:147 466948882:4:147 479785215:4:147 479785216:4:148 479785217:4:148 492884400:4:148 492884401:4:149 492884402:4:149 506249999:4:149 506250000:4:150 506250001:4:150 519885600:4:150 519885601:4:151 519885602:4:151 533794815:4:151 533794816:4:152 533794817:4:152 547981280:4:152 547981281:4:153 547981282:4:153 562448655:4:153 562448656:4:154 562448657:4:154 577200624:4:154 577200625:4:155 577200626:4:155 592240895:4:155 592240896:4:156 592240897:4:156 607573200:4:156 607573201:4:157 607573202:4:157 623201295:4:157 623201296:4:158 623201297:4:158 639128960:4:158 639128961:4:159 639128962:4:159 655359999:4:159 655360000:4:160 655360001:4:160 671898240:4:160 671898241:4:161 671898242:4:161 688747535:4:161 688747536:4:162 688747537:4:162 705911760:4:162 705911761:4:163 705911762:4:163 723394815:4:163 723394816:4:164 723394817:4:164 741200624:4:164 741200625:4:165 741200626:4:165 759333135:4:165 759333136:4:166 759333137:4:166 777796320:4:166 777796321:4:167 777796322:4:167 796594175:4:167 796594176:4:168 796594177:4:168 815730720:4:168 815730721:4:169 815730722:4:169 835209999:4:169 835210000:4:170 835210001:4:170 855036080:4:170 855036081:4:171 855036082:4:171 875213055:4:171 875213056:4:172 875213057:4:172 895745040:4:172 895745041:4:173 895745042:4:173 916636175:4:173 916636176:4:174 916636177:4:174 937890624:4:174 937890625:4:175 937890626:4:175 959512575:4:175 959512576:4:176 959512577:4:176 981506240:4:176 981506241:4:177 981506242:4:177 1003875855:4:177 1003875856:4:178 1003875857:4:178 1026625680:4:178 1026625681:4:179 1026625682:4:179 1049759999:4:179 1049760000:4:180 1049760001:4:180 1073283120:4:180 1073283121:4:181 1073283122:4:181 1097199375:4:181 1097199376:4:182 1097199377:4:182 1121513120:4:182 1121513121:4:183 1121513122:4:183 1146228735:4:183 1146228736:4:184 1146228737:4:184 1171350624:4:184 1171350625:4:185 1171350626:4:185 1196883215:4:185 1196883216:4:186 1196883217:4:186 1222830960:4:186 1222830961:4:187 1222830962:4:187 1249198335:4:187 1249198336:4:188 1249198337:4:188 1275989840:4:188 1275989841:4:189 1275989842:4:189 1303209999:4:189 1303210000:4:190 1303210001:4:190 1330863360:4:190 1330863361:4:191 1330863362:4:191 1358954495:4:191 1358954496:4:192 1358954497:4:192 1387488000:4:192 1387488001:4:193 1387488002:4:193 1416468495:4:193 1416468496:4:194 1416468497:4:194 1445900624:4:194 1445900625:4:195 1445900626:4:195 1475789055:4:195 1475789056:4:196 1475789057:4:196 1506138480:4:196 1506138481:4:197 1506138482:4:197 1536953615:4:197 1536953616:4:198 1536953617:4:198 1568239200:4:198 1568239201:4:199 1568239202:4:199 1599999999:4:199 1600000000:4:200 1600000001:4:200 1632240800:4:200 1632240801:4:201 1632240802:4:201 1664966415:4:201 1664966416:4:202 1664966417:4:202 1698181680:4:202 1698181681:4:203 1698181682:4:203 1731891455:4:203 1731891456:4:204 1731891457:4:204 1766100624:4:204 1766100625:4:205 1766100626:4:205 1800814095:4:205 1800814096:4:206 1800814097:4:206 1836036800:4:206 1836036801:4:207 1836036802:4:207 1871773695:4:207 1871773696:4:208 1871773697:4:208 1908029760:4:208 1908029761:4:209 1908029762:4:209 1944809999:4:209 1944810000:4:210 1944810001:4:210 1982119440:4:210 1982119441:4:211 1982119442:4:211 2019963135:4:211 2019963136:4:212 2019963137:4:212 2058346160:4:212 2058346161:4:213 2058346162:4:213 2097273615:4:213 2097273616:4:214 2097273617:4:214 2136750624:4:214 2136750625:4:215 2136750626:4:215 2176782335:4:215 2176782336:4:216 2176782337:4:216 2217373920:4:216 2217373921:4:217 2217373922:4:217 2258530575:4:217 2258530576:4:218 2258530577:4:218 2300257520:4:218 2300257521:4:219 2300257522:4:219 2342559999:4:219 2342560000:4:220 2342560001:4:220 2385443280:4:220 2385443281:4:221 2385443282:4:221 2428912655:4:221 2428912656:4:222 2428912657:4:222 2472973440:4:222 2472973441:4:223 2472973442:4:223 2517630975:4:223 2517630976:4:224 2517630977:4:224 2562890624:4:224 2562890625:4:225 2562890626:4:225 2608757775:4:225 2608757776:4:226 2608757777:4:226 2655237840:4:226 2655237841:4:227 2655237842:4:227 2702336255:4:227 2702336256:4:228 2702336257:4:228 2750058480:4:228 2750058481:4:229 2750058482:4:229 2798409999:4:229 2798410000:4:230 2798410001:4:230 2847396320:4:230 2847396321:4:231 2847396322:4:231 2897022975:4:231 2897022976:4:232 2897022977:4:232 2947295520:4:232 2947295521:4:233 2947295522:4:233 2998219535:4:233 2998219536:4:234 2998219537:4:234 3049800624:4:234 3049800625:4:235 3049800626:4:235 3102044415:4:235 3102044416:4:236 3102044417:4:236 3154956560:4:236 3154956561:4:237 3154956562:4:237 3208542735:4:237 3208542736:4:238 3208542737:4:238 3262808640:4:238 3262808641:4:239 3262808642:4:239 3317759999:4:239 3317760000:4:240 3317760001:4:240 3373402560:4:240 3373402561:4:241 3373402562:4:241 3429742095:4:241 3429742096:4:242 3429742097:4:242 3486784400:4:242 3486784401:4:243 3486784402:4:243 3544535295:4:243 3544535296:4:244 3544535297:4:244 3603000624:4:244 3603000625:4:245 3603000626:4:245 3662186255:4:245 3662186256:4:246 3662186257:4:246 3722098080:4:246 3722098081:4:247 3722098082:4:247 3782742015:4:247 3782742016:4:248 3782742017:4:248 3844124000:4:248 3844124001:4:249 3844124002:4:249 3906249999:4:249 3906250000:4:250 3906250001:4:250 3969126000:4:250 3969126001:4:251 3969126002:4:251 4032758015:4:251 4032758016:4:252 4032758017:4:252 4097152080:4:252 4097152081:4:253 4097152082:4:253 4162314255:4:253 4162314256:4:254 4162314257:4:254 4228250624:4:254 4228250625:4:255 4228250626:4:255 4294967295:4:255 4294967296:4:256 4294967297:4:256 4362470400:4:256 4362470401:4:257 4362470402:4:257 4430766095:4:257 4430766096:4:258 4430766097:4:258 4499860560:4:258 4499860561:4:259 4499860562:4:259 4569759999:4:259 4569760000:4:260 4569760001:4:260 4640470640:4:260 4640470641:4:261 4640470642:4:261 4711998735:4:261 4711998736:4:262 4711998737:4:262 4784350560:4:262 4784350561:4:263 4784350562:4:263 4857532415:4:263 4857532416:4:264 4857532417:4:264 4931550624:4:264 4931550625:4:265 4931550626:4:265 5006411535:4:265 5006411536:4:266 5006411537:4:266 5082121520:4:266 5082121521:4:267 5082121522:4:267 5158686975:4:267 5158686976:4:268 5158686977:4:268 5236114320:4:268 5236114321:4:269 5236114322:4:269 5314409999:4:269 5314410000:4:270 5314410001:4:270 5393580480:4:270 5393580481:4:271 5393580482:4:271 5473632255:4:271 5473632256:4:272 5473632257:4:272 5554571840:4:272 5554571841:4:273 5554571842:4:273 5636405775:4:273 5636405776:4:274 5636405777:4:274 5719140624:4:274 5719140625:4:275 5719140626:4:275 5802782975:4:275 5802782976:4:276 5802782977:4:276 5887339440:4:276 5887339441:4:277 5887339442:4:277 5972816655:4:277 5972816656:4:278 5972816657:4:278 6059221280:4:278 6059221281:4:279 6059221282:4:279 6146559999:4:279 6146560000:4:280 6146560001:4:280 6234839520:4:280 6234839521:4:281 6234839522:4:281 6324066575:4:281 6324066576:4:282 6324066577:4:282 6414247920:4:282 6414247921:4:283 6414247922:4:283 6505390335:4:283 6505390336:4:284 6505390337:4:284 6597500624:4:284 6597500625:4:285 6597500626:4:285 6690585615:4:285 6690585616:4:286 6690585617:4:286 6784652160:4:286 6784652161:4:287 6784652162:4:287 6879707135:4:287 6879707136:4:288 6879707137:4:288 6975757440:4:288 6975757441:4:289 6975757442:4:289 7072809999:4:289 7072810000:4:290 7072810001:4:290 7170871760:4:290 7170871761:4:291 7170871762:4:291 7269949695:4:291 7269949696:4:292 7269949697:4:292 7370050800:4:292 7370050801:4:293 7370050802:4:293 7471182095:4:293 7471182096:4:294 7471182097:4:294 7573350624:4:294 7573350625:4:295 7573350626:4:295 7676563455:4:295 7676563456:4:296 7676563457:4:296 7780827680:4:296 7780827681:4:297 7780827682:4:297 7886150415:4:297 7886150416:4:298 7886150417:4:298 7992538800:4:298 7992538801:4:299 7992538802:4:299 8099999999:4:299 8100000000:4:300 8100000001:4:300 8208541200:4:300 8208541201:4:301 8208541202:4:301 8318169615:4:301 8318169616:4:302 8318169617:4:302 8428892480:4:302 8428892481:4:303 8428892482:4:303 8540717055:4:303 8540717056:4:304 8540717057:4:304 8653650624:4:304 8653650625:4:305 8653650626:4:305 8767700495:4:305 8767700496:4:306 8767700497:4:306 8882874000:4:306 8882874001:4:307 8882874002:4:307 8999178495:4:307 8999178496:4:308 8999178497:4:308 9116621360:4:308 9116621361:4:309 9116621362:4:309 9235209999:4:309 9235210000:4:310 9235210001:4:310 9354951840:4:310 9354951841:4:311 9354951842:4:311 9475854335:4:311 9475854336:4:312 9475854337:4:312 9597924960:4:312 9597924961:4:313 9597924962:4:313 9721171215:4:313 9721171216:4:314 9721171217:4:314 9845600624:4:314 9845600625:4:315 9845600626:4:315 9971220735:4:315 9971220736:4:316 9971220737:4:316 10098039120:4:316 10098039121:4:317 10098039122:4:317 10226063375:4:317 10226063376:4:318 10226063377:4:318 10355301120:4:318 10355301121:4:319 10355301122:4:319 10485759999:4:319 10485760000:4:320 10485760001:4:320 10617447680:4:320 10617447681:4:321 10617447682:4:321 10750371855:4:321 10750371856:4:322 10750371857:4:322 10884540240:4:322 10884540241:4:323 10884540242:4:323 11019960575:4:323 11019960576:4:324 11019960577:4:324 11156640624:4:324 11156640625:4:325 11156640626:4:325 11294588175:4:325 11294588176:4:326 11294588177:4:326 11433811040:4:326 11433811041:4:327 11433811042:4:327 11574317055:4:327 11574317056:4:328 11574317057:4:328 11716114080:4:328 11716114081:4:329 11716114082:4:329 11859209999:4:329 11859210000:4:330 11859210001:4:330 12003612720:4:330 12003612721:4:331 12003612722:4:331 12149330175:4:331 12149330176:4:332 12149330177:4:332 12296370320:4:332 12296370321:4:333 12296370322:4:333 12444741135:4:333 12444741136:4:334 12444741137:4:334 12594450624:4:334 12594450625:4:335 12594450626:4:335 12745506815:4:335 12745506816:4:336 12745506817:4:336 12897917760:4:336 12897917761:4:337 12897917762:4:337 13051691535:4:337 13051691536:4:338 13051691537:4:338 13206836240:4:338 13206836241:4:339 13206836242:4:339 13363359999:4:339 13363360000:4:340 13363360001:4:340 13521270960:4:340 13521270961:4:341 13521270962:4:341 13680577295:4:341 13680577296:4:342 13680577297:4:342 13841287200:4:342 13841287201:4:343 13841287202:4:343 14003408895:4:343 14003408896:4:344 14003408897:4:344 14166950624:4:344 14166950625:4:345 14166950626:4:345 14331920655:4:345 14331920656:4:346 14331920657:4:346 14498327280:4:346 14498327281:4:347 14498327282:4:347 14666178815:4:347 14666178816:4:348 14666178817:4:348 14835483600:4:348 14835483601:4:349 14835483602:4:349 15006249999:4:349 15006250000:4:350 15006250001:4:350 15178486400:4:350 15178486401:4:351 15178486402:4:351 15352201215:4:351 15352201216:4:352 15352201217:4:352 15527402880:4:352 15527402881:4:353 15527402882:4:353 15704099855:4:353 15704099856:4:354 15704099857:4:354 15882300624:4:354 15882300625:4:355 15882300626:4:355 16062013695:4:355 16062013696:4:356 16062013697:4:356 16243247600:4:356 16243247601:4:357 16243247602:4:357 16426010895:4:357 16426010896:4:358 16426010897:4:358 16610312160:4:358 16610312161:4:359 16610312162:4:359 16796159999:4:359 16796160000:4:360 16796160001:4:360 16983563040:4:360 16983563041:4:361 16983563042:4:361 17172529935:4:361 17172529936:4:362 17172529937:4:362 17363069360:4:362 17363069361:4:363 17363069362:4:363 17555190015:4:363 17555190016:4:364 17555190017:4:364 17748900624:4:364 17748900625:4:365 17748900626:4:365 17944209935:4:365 17944209936:4:366 17944209937:4:366 18141126720:4:366 18141126721:4:367 18141126722:4:367 18339659775:4:367 18339659776:4:368 18339659777:4:368 18539817920:4:368 18539817921:4:369 18539817922:4:369 18741609999:4:369 18741610000:4:370 18741610001:4:370 18945044880:4:370 18945044881:4:371 18945044882:4:371 19150131455:4:371 19150131456:4:372 19150131457:4:372 19356878640:4:372 19356878641:4:373 19356878642:4:373 19565295375:4:373 19565295376:4:374 19565295377:4:374 19775390624:4:374 19775390625:4:375 19775390626:4:375 19987173375:4:375 19987173376:4:376 19987173377:4:376 20200652640:4:376 20200652641:4:377 20200652642:4:377 20415837455:4:377 20415837456:4:378 20415837457:4:378 20632736880:4:378 20632736881:4:379 20632736882:4:379 20851359999:4:379 20851360000:4:380 20851360001:4:380 21071715920:4:380 21071715921:4:381 21071715922:4:381 21293813775:4:381 21293813776:4:382 21293813777:4:382 21517662720:4:382 21517662721:4:383 21517662722:4:383 21743271935:4:383 21743271936:4:384 21743271937:4:384 21970650624:4:384 21970650625:4:385 21970650626:4:385 22199808015:4:385 22199808016:4:386 22199808017:4:386 22430753360:4:386 22430753361:4:387 22430753362:4:387 22663495935:4:387 22663495936:4:388 22663495937:4:388 22898045040:4:388 22898045041:4:389 22898045042:4:389 23134409999:4:389 23134410000:4:390 23134410001:4:390 23372600160:4:390 23372600161:4:391 23372600162:4:391 23612624895:4:391 23612624896:4:392 23612624897:4:392 23854493600:4:392 23854493601:4:393 23854493602:4:393 24098215695:4:393 24098215696:4:394 24098215697:4:394 24343800624:4:394 24343800625:4:395 24343800626:4:395 24591257855:4:395 24591257856:4:396 24591257857:4:396 24840596880:4:396 24840596881:4:397 24840596882:4:397 25091827215:4:397 25091827216:4:398 25091827217:4:398 25344958400:4:398 25344958401:4:399 25344958402:4:399 25599999999:4:399 25600000000:4:400 25600000001:4:400 25856961600:4:400 25856961601:4:401 25856961602:4:401 26115852815:4:401 26115852816:4:402 26115852817:4:402 26376683280:4:402 26376683281:4:403 26376683282:4:403 26639462655:4:403 26639462656:4:404 26639462657:4:404 26904200624:4:404 26904200625:4:405 26904200626:4:405 27170906895:4:405 27170906896:4:406 27170906897:4:406 27439591200:4:406 27439591201:4:407 27439591202:4:407 27710263295:4:407 27710263296:4:408 27710263297:4:408 27982932960:4:408 27982932961:4:409 27982932962:4:409 28257609999:4:409 28257610000:4:410 28257610001:4:410 28534304240:4:410 28534304241:4:411 28534304242:4:411 28813025535:4:411 28813025536:4:412 28813025537:4:412 29093783760:4:412 29093783761:4:413 29093783762:4:413 29376588815:4:413 29376588816:4:414 29376588817:4:414 29661450624:4:414 29661450625:4:415 29661450626:4:415 29948379135:4:415 29948379136:4:416 29948379137:4:416 30237384320:4:416 30237384321:4:417 30237384322:4:417 30528476175:4:417 30528476176:4:418 30528476177:4:418 30821664720:4:418 30821664721:4:419 30821664722:4:419 31116959999:4:419 31116960000:4:420 31116960001:4:420 31414372080:4:420 31414372081:4:421 31414372082:4:421 31713911055:4:421 31713911056:4:422 31713911057:4:422 32015587040:4:422 32015587041:4:423 32015587042:4:423 32319410175:4:423 32319410176:4:424 32319410177:4:424 32625390624:4:424 32625390625:4:425 32625390626:4:425 32933538575:4:425 32933538576:4:426 32933538577:4:426 33243864240:4:426 33243864241:4:427 33243864242:4:427 33556377855:4:427 33556377856:4:428 33556377857:4:428 33871089680:4:428 33871089681:4:429 33871089682:4:429 34188009999:4:429 34188010000:4:430 34188010001:4:430 34507149120:4:430 34507149121:4:431 34507149122:4:431 34828517375:4:431 34828517376:4:432 34828517377:4:432 35152125120:4:432 35152125121:4:433 35152125122:4:433 35477982735:4:433 35477982736:4:434 35477982737:4:434 35806100624:4:434 35806100625:4:435 35806100626:4:435 36136489215:4:435 36136489216:4:436 36136489217:4:436 36469158960:4:436 36469158961:4:437 36469158962:4:437 36804120335:4:437 36804120336:4:438 36804120337:4:438 37141383840:4:438 37141383841:4:439 37141383842:4:439 37480959999:4:439 37480960000:4:440 37480960001:4:440 37822859360:4:440 37822859361:4:441 37822859362:4:441 38167092495:4:441 38167092496:4:442 38167092497:4:442 38513670000:4:442 38513670001:4:443 38513670002:4:443 38862602495:4:443 38862602496:4:444 38862602497:4:444 39213900624:4:444 39213900625:4:445 39213900626:4:445 39567575055:4:445 39567575056:4:446 39567575057:4:446 39923636480:4:446 39923636481:4:447 39923636482:4:447 40282095615:4:447 40282095616:4:448 40282095617:4:448 40642963200:4:448 40642963201:4:449 40642963202:4:449 41006249999:4:449 41006250000:4:450 41006250001:4:450 41371966800:4:450 41371966801:4:451 41371966802:4:451 41740124415:4:451 41740124416:4:452 41740124417:4:452 42110733680:4:452 42110733681:4:453 42110733682:4:453 42483805455:4:453 42483805456:4:454 42483805457:4:454 42859350624:4:454 42859350625:4:455 42859350626:4:455 43237380095:4:455 43237380096:4:456 43237380097:4:456 43617904800:4:456 43617904801:4:457 43617904802:4:457 44000935695:4:457 44000935696:4:458 44000935697:4:458 44386483760:4:458 44386483761:4:459 44386483762:4:459 44774559999:4:459 44774560000:4:460 44774560001:4:460 45165175440:4:460 45165175441:4:461 45165175442:4:461 45558341135:4:461 45558341136:4:462 45558341137:4:462 45954068160:4:462 45954068161:4:463 45954068162:4:463 46352367615:4:463 46352367616:4:464 46352367617:4:464 46753250624:4:464 46753250625:4:465 46753250626:4:465 47156728335:4:465 47156728336:4:466 47156728337:4:466 47562811920:4:466 47562811921:4:467 47562811922:4:467 47971512575:4:467 47971512576:4:468 47971512577:4:468 48382841520:4:468 48382841521:4:469 48382841522:4:469 48796809999:4:469 48796810000:4:470 48796810001:4:470 49213429280:4:470 49213429281:4:471 49213429282:4:471 49632710655:4:471 49632710656:4:472 49632710657:4:472 50054665440:4:472 50054665441:4:473 50054665442:4:473 50479304975:4:473 50479304976:4:474 50479304977:4:474 50906640624:4:474 50906640625:4:475 50906640626:4:475 51336683775:4:475 51336683776:4:476 51336683777:4:476 51769445840:4:476 51769445841:4:477 51769445842:4:477 52204938255:4:477 52204938256:4:478 52204938257:4:478 52643172480:4:478 52643172481:4:479 52643172482:4:479 53084159999:4:479 53084160000:4:480 53084160001:4:480 53527912320:4:480 53527912321:4:481 53527912322:4:481 53974440975:4:481 53974440976:4:482 53974440977:4:482 54423757520:4:482 54423757521:4:483 54423757522:4:483 54875873535:4:483 54875873536:4:484 54875873537:4:484 55330800624:4:484 55330800625:4:485 55330800626:4:485 55788550415:4:485 55788550416:4:486 55788550417:4:486 56249134560:4:486 56249134561:4:487 56249134562:4:487 56712564735:4:487 56712564736:4:488 56712564737:4:488 57178852640:4:488 57178852641:4:489 57178852642:4:489 57648009999:4:489 57648010000:4:490 57648010001:4:490 58120048560:4:490 58120048561:4:491 58120048562:4:491 58594980095:4:491 58594980096:4:492 58594980097:4:492 59072816400:4:492 59072816401:4:493 59072816402:4:493 59553569295:4:493 59553569296:4:494 59553569297:4:494 60037250624:4:494 60037250625:4:495 60037250626:4:495 60523872255:4:495 60523872256:4:496 60523872257:4:496 61013446080:4:496 61013446081:4:497 61013446082:4:497 61505984015:4:497 61505984016:4:498 61505984017:4:498 62001498000:4:498 62001498001:4:499 62001498002:4:499 62499999999:4:499 62500000000:4:500 62500000001:4:500 63001502000:4:500 63001502001:4:501 63001502002:4:501 63506016015:4:501 63506016016:4:502 63506016017:4:502 64013554080:4:502 64013554081:4:503 64013554082:4:503 64524128255:4:503 64524128256:4:504 64524128257:4:504 65037750624:4:504 65037750625:4:505 65037750626:4:505 65554433295:4:505 65554433296:4:506 65554433297:4:506 66074188400:4:506 66074188401:4:507 66074188402:4:507 66597028095:4:507 66597028096:4:508 66597028097:4:508 67122964560:4:508 67122964561:4:509 67122964562:4:509 67652009999:4:509 67652010000:4:510 67652010001:4:510 68184176640:4:510 68184176641:4:511 68184176642:4:511 68719476735:4:511 68719476736:4:512 68719476737:4:512 69257922560:4:512 69257922561:4:513 69257922562:4:513 69799526415:4:513 69799526416:4:514 69799526417:4:514 70344300624:4:514 70344300625:4:515 70344300626:4:515 70892257535:4:515 70892257536:4:516 70892257537:4:516 71443409520:4:516 71443409521:4:517 71443409522:4:517 71997768975:4:517 71997768976:4:518 71997768977:4:518 72555348320:4:518 72555348321:4:519 72555348322:4:519 73116159999:4:519 73116160000:4:520 73116160001:4:520 73680216480:4:520 73680216481:4:521 73680216482:4:521 74247530255:4:521 74247530256:4:522 74247530257:4:522 74818113840:4:522 74818113841:4:523 74818113842:4:523 75391979775:4:523 75391979776:4:524 75391979777:4:524 75969140624:4:524 75969140625:4:525 75969140626:4:525 76549608975:4:525 76549608976:4:526 76549608977:4:526 77133397440:4:526 77133397441:4:527 77133397442:4:527 77720518655:4:527 77720518656:4:528 77720518657:4:528 78310985280:4:528 78310985281:4:529 78310985282:4:529 78904809999:4:529 78904810000:4:530 78904810001:4:530 79502005520:4:530 79502005521:4:531 79502005522:4:531 80102584575:4:531 80102584576:4:532 80102584577:4:532 80706559920:4:532 80706559921:4:533 80706559922:4:533 81313944335:4:533 81313944336:4:534 81313944337:4:534 81924750624:4:534 81924750625:4:535 81924750626:4:535 82538991615:4:535 82538991616:4:536 82538991617:4:536 83156680160:4:536 83156680161:4:537 83156680162:4:537 83777829135:4:537 83777829136:4:538 83777829137:4:538 84402451440:4:538 84402451441:4:539 84402451442:4:539 85030559999:4:539 85030560000:4:540 85030560001:4:540 85662167760:4:540 85662167761:4:541 85662167762:4:541 86297287695:4:541 86297287696:4:542 86297287697:4:542 86935932800:4:542 86935932801:4:543 86935932802:4:543 87578116095:4:543 87578116096:4:544 87578116097:4:544 88223850624:4:544 88223850625:4:545 88223850626:4:545 88873149455:4:545 88873149456:4:546 88873149457:4:546 89526025680:4:546 89526025681:4:547 89526025682:4:547 90182492415:4:547 90182492416:4:548 90182492417:4:548 90842562800:4:548 90842562801:4:549 90842562802:4:549 91506249999:4:549 91506250000:4:550 91506250001:4:550 92173567200:4:550 92173567201:4:551 92173567202:4:551 92844527615:4:551 92844527616:4:552 92844527617:4:552 93519144480:4:552 93519144481:4:553 93519144482:4:553 94197431055:4:553 94197431056:4:554 94197431057:4:554 94879400624:4:554 94879400625:4:555 94879400626:4:555 95565066495:4:555 95565066496:4:556 95565066497:4:556 96254442000:4:556 96254442001:4:557 96254442002:4:557 96947540495:4:557 96947540496:4:558 96947540497:4:558 97644375360:4:558 97644375361:4:559 97644375362:4:559 98344959999:4:559 98344960000:4:560 98344960001:4:560 99049307840:4:560 99049307841:4:561 99049307842:4:561 99757432335:4:561 99757432336:4:562 99757432337:4:562 100469346960:4:562 100469346961:4:563 100469346962:4:563 101185065215:4:563 101185065216:4:564 101185065217:4:564 101904600624:4:564 101904600625:4:565 101904600626:4:565 102627966735:4:565 102627966736:4:566 102627966737:4:566 103355177120:4:566 103355177121:4:567 103355177122:4:567 104086245375:4:567 104086245376:4:568 104086245377:4:568 104821185120:4:568 104821185121:4:569 104821185122:4:569 105560009999:4:569 105560010000:4:570 105560010001:4:570 106302733680:4:570 106302733681:4:571 106302733682:4:571 107049369855:4:571 107049369856:4:572 107049369857:4:572 107799932240:4:572 107799932241:4:573 107799932242:4:573 108554434575:4:573 108554434576:4:574 108554434577:4:574 109312890624:4:574 109312890625:4:575 109312890626:4:575 110075314175:4:575 110075314176:4:576 110075314177:4:576 110841719040:4:576 110841719041:4:577 110841719042:4:577 111612119055:4:577 111612119056:4:578 111612119057:4:578 112386528080:4:578 112386528081:4:579 112386528082:4:579 113164959999:4:579 113164960000:4:580 113164960001:4:580 113947428720:4:580 113947428721:4:581 113947428722:4:581 114733948175:4:581 114733948176:4:582 114733948177:4:582 115524532320:4:582 115524532321:4:583 115524532322:4:583 116319195135:4:583 116319195136:4:584 116319195137:4:584 117117950624:4:584 117117950625:4:585 117117950626:4:585 117920812815:4:585 117920812816:4:586 117920812817:4:586 118727795760:4:586 118727795761:4:587 118727795762:4:587 119538913535:4:587 119538913536:4:588 119538913537:4:588 120354180240:4:588 120354180241:4:589 120354180242:4:589 121173609999:4:589 121173610000:4:590 121173610001:4:590 121997216960:4:590 121997216961:4:591 121997216962:4:591 122825015295:4:591 122825015296:4:592 122825015297:4:592 123657019200:4:592 123657019201:4:593 123657019202:4:593 124493242895:4:593 124493242896:4:594 124493242897:4:594 125333700624:4:594 125333700625:4:595 125333700626:4:595 126178406655:4:595 126178406656:4:596 126178406657:4:596 127027375280:4:596 127027375281:4:597 127027375282:4:597 127880620815:4:597 127880620816:4:598 127880620817:4:598 128738157600:4:598 128738157601:4:599 128738157602:4:599 129599999999:4:599 129600000000:4:600 129600000001:4:600 130466162400:4:600 130466162401:4:601 130466162402:4:601 131336659215:4:601 131336659216:4:602 131336659217:4:602 132211504880:4:602 132211504881:4:603 132211504882:4:603 133090713855:4:603 133090713856:4:604 133090713857:4:604 133974300624:4:604 133974300625:4:605 133974300626:4:605 134862279695:4:605 134862279696:4:606 134862279697:4:606 135754665600:4:606 135754665601:4:607 135754665602:4:607 136651472895:4:607 136651472896:4:608 136651472897:4:608 137552716160:4:608 137552716161:4:609 137552716162:4:609 138458409999:4:609 138458410000:4:610 138458410001:4:610 139368569040:4:610 139368569041:4:611 139368569042:4:611 140283207935:4:611 140283207936:4:612 140283207937:4:612 141202341360:4:612 141202341361:4:613 141202341362:4:613 142125984015:4:613 142125984016:4:614 142125984017:4:614 143054150624:4:614 143054150625:4:615 143054150626:4:615 143986855935:4:615 143986855936:4:616 143986855937:4:616 144924114720:4:616 144924114721:4:617 144924114722:4:617 145865941775:4:617 145865941776:4:618 145865941777:4:618 146812351920:4:618 146812351921:4:619 146812351922:4:619 147763359999:4:619 147763360000:4:620 147763360001:4:620 148718980880:4:620 148718980881:4:621 148718980882:4:621 149679229455:4:621 149679229456:4:622 149679229457:4:622 150644120640:4:622 150644120641:4:623 150644120642:4:623 151613669375:4:623 151613669376:4:624 151613669377:4:624 152587890624:4:624 152587890625:4:625 152587890626:4:625 153566799375:4:625 153566799376:4:626 153566799377:4:626 154550410640:4:626 154550410641:4:627 154550410642:4:627 155538739455:4:627 155538739456:4:628 155538739457:4:628 156531800880:4:628 156531800881:4:629 156531800882:4:629 157529609999:4:629 157529610000:4:630 157529610001:4:630 158532181920:4:630 158532181921:4:631 158532181922:4:631 159539531775:4:631 159539531776:4:632 159539531777:4:632 160551674720:4:632 160551674721:4:633 160551674722:4:633 161568625935:4:633 161568625936:4:634 161568625937:4:634 162590400624:4:634 162590400625:4:635 162590400626:4:635 163617014015:4:635 163617014016:4:636 163617014017:4:636 164648481360:4:636 164648481361:4:637 164648481362:4:637 165684817935:4:637 165684817936:4:638 165684817937:4:638 166726039040:4:638 166726039041:4:639 166726039042:4:639 167772159999:4:639 167772160000:4:640 167772160001:4:640 168823196160:4:640 168823196161:4:641 168823196162:4:641 169879162895:4:641 169879162896:4:642 169879162897:4:642 170940075600:4:642 170940075601:4:643 170940075602:4:643 172005949695:4:643 172005949696:4:644 172005949697:4:644 173076800624:4:644 173076800625:4:645 173076800626:4:645 174152643855:4:645 174152643856:4:646 174152643857:4:646 175233494880:4:646 175233494881:4:647 175233494882:4:647 176319369215:4:647 176319369216:4:648 176319369217:4:648 177410282400:4:648 177410282401:4:649 177410282402:4:649 178506249999:4:649 178506250000:4:650 178506250001:4:650 179607287600:4:650 179607287601:4:651 179607287602:4:651 180713410815:4:651 180713410816:4:652 180713410817:4:652 181824635280:4:652 181824635281:4:653 181824635282:4:653 182940976655:4:653 182940976656:4:654 182940976657:4:654 184062450624:4:654 184062450625:4:655 184062450626:4:655 185189072895:4:655 185189072896:4:656 185189072897:4:656 186320859200:4:656 186320859201:4:657 186320859202:4:657 187457825295:4:657 187457825296:4:658 187457825297:4:658 188599986960:4:658 188599986961:4:659 188599986962:4:659 189747359999:4:659 189747360000:4:660 189747360001:4:660 190899960240:4:660 190899960241:4:661 190899960242:4:661 192057803535:4:661 192057803536:4:662 192057803537:4:662 193220905760:4:662 193220905761:4:663 193220905762:4:663 194389282815:4:663 194389282816:4:664 194389282817:4:664 195562950624:4:664 195562950625:4:665 195562950626:4:665 196741925135:4:665 196741925136:4:666 196741925137:4:666 197926222320:4:666 197926222321:4:667 197926222322:4:667 199115858175:4:667 199115858176:4:668 199115858177:4:668 200310848720:4:668 200310848721:4:669 200310848722:4:669 201511209999:4:669 201511210000:4:670 201511210001:4:670 202716958080:4:670 202716958081:4:671 202716958082:4:671 203928109055:4:671 203928109056:4:672 203928109057:4:672 205144679040:4:672 205144679041:4:673 205144679042:4:673 206366684175:4:673 206366684176:4:674 206366684177:4:674 207594140624:4:674 207594140625:4:675 207594140626:4:675 208827064575:4:675 208827064576:4:676 208827064577:4:676 210065472240:4:676 210065472241:4:677 210065472242:4:677 211309379855:4:677 211309379856:4:678 211309379857:4:678 212558803680:4:678 212558803681:4:679 212558803682:4:679 213813759999:4:679 213813760000:4:680 213813760001:4:680 215074265120:4:680 215074265121:4:681 215074265122:4:681 216340335375:4:681 216340335376:4:682 216340335377:4:682 217611987120:4:682 217611987121:4:683 217611987122:4:683 218889236735:4:683 218889236736:4:684 218889236737:4:684 220172100624:4:684 220172100625:4:685 220172100626:4:685 221460595215:4:685 221460595216:4:686 221460595217:4:686 222754736960:4:686 222754736961:4:687 222754736962:4:687 224054542335:4:687 224054542336:4:688 224054542337:4:688 225360027840:4:688 225360027841:4:689 225360027842:4:689 226671209999:4:689 226671210000:4:690 226671210001:4:690 227988105360:4:690 227988105361:4:691 227988105362:4:691 229310730495:4:691 229310730496:4:692 229310730497:4:692 230639102000:4:692 230639102001:4:693 230639102002:4:693 231973236495:4:693 231973236496:4:694 231973236497:4:694 233313150624:4:694 233313150625:4:695 233313150626:4:695 234658861055:4:695 234658861056:4:696 234658861057:4:696 236010384480:4:696 236010384481:4:697 236010384482:4:697 237367737615:4:697 237367737616:4:698 237367737617:4:698 238730937200:4:698 238730937201:4:699 238730937202:4:699 240099999999:4:699 240100000000:4:700 240100000001:4:700 241474942800:4:700 241474942801:4:701 241474942802:4:701 242855782415:4:701 242855782416:4:702 242855782417:4:702 244242535680:4:702 244242535681:4:703 244242535682:4:703 245635219455:4:703 245635219456:4:704 245635219457:4:704 247033850624:4:704 247033850625:4:705 247033850626:4:705 248438446095:4:705 248438446096:4:706 248438446097:4:706 249849022800:4:706 249849022801:4:707 249849022802:4:707 251265597695:4:707 251265597696:4:708 251265597697:4:708 252688187760:4:708 252688187761:4:709 252688187762:4:709 254116809999:4:709 254116810000:4:710 254116810001:4:710 255551481440:4:710 255551481441:4:711 255551481442:4:711 256992219135:4:711 256992219136:4:712 256992219137:4:712 258439040160:4:712 258439040161:4:713 258439040162:4:713 259891961615:4:713 259891961616:4:714 259891961617:4:714 261351000624:4:714 261351000625:4:715 261351000626:4:715 262816174335:4:715 262816174336:4:716 262816174337:4:716 264287499920:4:716 264287499921:4:717 264287499922:4:717 265764994575:4:717 265764994576:4:718 265764994577:4:718 267248675520:4:718 267248675521:4:719 267248675522:4:719 268738559999:4:719 268738560000:4:720 268738560001:4:720 270234665280:4:720 270234665281:4:721 270234665282:4:721 271737008655:4:721 271737008656:4:722 271737008657:4:722 273245607440:4:722 273245607441:4:723 273245607442:4:723 274760478975:4:723 274760478976:4:724 274760478977:4:724 276281640624:4:724 276281640625:4:725 276281640626:4:725 277809109775:4:725 277809109776:4:726 277809109777:4:726 279342903840:4:726 279342903841:4:727 279342903842:4:727 280883040255:4:727 280883040256:4:728 280883040257:4:728 282429536480:4:728 282429536481:4:729 282429536482:4:729 283982409999:4:729 283982410000:4:730 283982410001:4:730 285541678320:4:730 285541678321:4:731 285541678322:4:731 287107358975:4:731 287107358976:4:732 287107358977:4:732 288679469520:4:732 288679469521:4:733 288679469522:4:733 290258027535:4:733 290258027536:4:734 290258027537:4:734 291843050624:4:734 291843050625:4:735 291843050626:4:735 293434556415:4:735 293434556416:4:736 293434556417:4:736 295032562560:4:736 295032562561:4:737 295032562562:4:737 296637086735:4:737 296637086736:4:738 296637086737:4:738 298248146640:4:738 298248146641:4:739 298248146642:4:739 299865759999:4:739 299865760000:4:740 299865760001:4:740 301489944560:4:740 301489944561:4:741 301489944562:4:741 303120718095:4:741 303120718096:4:742 303120718097:4:742 304758098400:4:742 304758098401:4:743 304758098402:4:743 306402103295:4:743 306402103296:4:744 306402103297:4:744 308052750624:4:744 308052750625:4:745 308052750626:4:745 309710058255:4:745 309710058256:4:746 309710058257:4:746 311374044080:4:746 311374044081:4:747 311374044082:4:747 313044726015:4:747 313044726016:4:748 313044726017:4:748 314722122000:4:748 314722122001:4:749 314722122002:4:749 316406249999:4:749 316406250000:4:750 316406250001:4:750 318097128000:4:750 318097128001:4:751 318097128002:4:751 319794774015:4:751 319794774016:4:752 319794774017:4:752 321499206080:4:752 321499206081:4:753 321499206082:4:753 323210442255:4:753 323210442256:4:754 323210442257:4:754 324928500624:4:754 324928500625:4:755 324928500626:4:755 326653399295:4:755 326653399296:4:756 326653399297:4:756 328385156400:4:756 328385156401:4:757 328385156402:4:757 330123790095:4:757 330123790096:4:758 330123790097:4:758 331869318560:4:758 331869318561:4:759 331869318562:4:759 333621759999:4:759 333621760000:4:760 333621760001:4:760 335381132640:4:760 335381132641:4:761 335381132642:4:761 337147454735:4:761 337147454736:4:762 337147454737:4:762 338920744560:4:762 338920744561:4:763 338920744562:4:763 340701020415:4:763 340701020416:4:764 340701020417:4:764 342488300624:4:764 342488300625:4:765 342488300626:4:765 344282603535:4:765 344282603536:4:766 344282603537:4:766 346083947520:4:766 346083947521:4:767 346083947522:4:767 347892350975:4:767 347892350976:4:768 347892350977:4:768 349707832320:4:768 349707832321:4:769 349707832322:4:769 351530409999:4:769 351530410000:4:770 351530410001:4:770 353360102480:4:770 353360102481:4:771 353360102482:4:771 355196928255:4:771 355196928256:4:772 355196928257:4:772 357040905840:4:772 357040905841:4:773 357040905842:4:773 358892053775:4:773 358892053776:4:774 358892053777:4:774 360750390624:4:774 360750390625:4:775 360750390626:4:775 362615934975:4:775 362615934976:4:776 362615934977:4:776 364488705440:4:776 364488705441:4:777 364488705442:4:777 366368720655:4:777 366368720656:4:778 366368720657:4:778 368255999280:4:778 368255999281:4:779 368255999282:4:779 370150559999:4:779 370150560000:4:780 370150560001:4:780 372052421520:4:780 372052421521:4:781 372052421522:4:781 373961602575:4:781 373961602576:4:782 373961602577:4:782 375878121920:4:782 375878121921:4:783 375878121922:4:783 377801998335:4:783 377801998336:4:784 377801998337:4:784 379733250624:4:784 379733250625:4:785 379733250626:4:785 381671897615:4:785 381671897616:4:786 381671897617:4:786 383617958160:4:786 383617958161:4:787 383617958162:4:787 385571451135:4:787 385571451136:4:788 385571451137:4:788 387532395440:4:788 387532395441:4:789 387532395442:4:789 389500809999:4:789 389500810000:4:790 389500810001:4:790 391476713760:4:790 391476713761:4:791 391476713762:4:791 393460125695:4:791 393460125696:4:792 393460125697:4:792 395451064800:4:792 395451064801:4:793 395451064802:4:793 397449550095:4:793 397449550096:4:794 397449550097:4:794 399455600624:4:794 399455600625:4:795 399455600626:4:795 401469235455:4:795 401469235456:4:796 401469235457:4:796 403490473680:4:796 403490473681:4:797 403490473682:4:797 405519334415:4:797 405519334416:4:798 405519334417:4:798 407555836800:4:798 407555836801:4:799 407555836802:4:799 409599999999:4:799 409600000000:4:800 409600000001:4:800 411651843200:4:800 411651843201:4:801 411651843202:4:801 413711385615:4:801 413711385616:4:802 413711385617:4:802 415778646480:4:802 415778646481:4:803 415778646482:4:803 417853645055:4:803 417853645056:4:804 417853645057:4:804 419936400624:4:804 419936400625:4:805 419936400626:4:805 422026932495:4:805 422026932496:4:806 422026932497:4:806 424125260000:4:806 424125260001:4:807 424125260002:4:807 426231402495:4:807 426231402496:4:808 426231402497:4:808 428345379360:4:808 428345379361:4:809 428345379362:4:809 430467209999:4:809 430467210000:4:810 430467210001:4:810 432596913840:4:810 432596913841:4:811 432596913842:4:811 434734510335:4:811 434734510336:4:812 434734510337:4:812 436880018960:4:812 436880018961:4:813 436880018962:4:813 439033459215:4:813 439033459216:4:814 439033459217:4:814 441194850624:4:814 441194850625:4:815 441194850626:4:815 443364212735:4:815 443364212736:4:816 443364212737:4:816 445541565120:4:816 445541565121:4:817 445541565122:4:817 447726927375:4:817 447726927376:4:818 447726927377:4:818 449920319120:4:818 449920319121:4:819 449920319122:4:819 452121759999:4:819 452121760000:4:820 452121760001:4:820 454331269680:4:820 454331269681:4:821 454331269682:4:821 456548867855:4:821 456548867856:4:822 456548867857:4:822 458774574240:4:822 458774574241:4:823 458774574242:4:823 461008408575:4:823 461008408576:4:824 461008408577:4:824 463250390624:4:824 463250390625:4:825 463250390626:4:825 465500540175:4:825 465500540176:4:826 465500540177:4:826 467758877040:4:826 467758877041:4:827 467758877042:4:827 470025421055:4:827 470025421056:4:828 470025421057:4:828 472300192080:4:828 472300192081:4:829 472300192082:4:829 474583209999:4:829 474583210000:4:830 474583210001:4:830 476874494720:4:830 476874494721:4:831 476874494722:4:831 479174066175:4:831 479174066176:4:832 479174066177:4:832 481481944320:4:832 481481944321:4:833 481481944322:4:833 483798149135:4:833 483798149136:4:834 483798149137:4:834 486122700624:4:834 486122700625:4:835 486122700626:4:835 488455618815:4:835 488455618816:4:836 488455618817:4:836 490796923760:4:836 490796923761:4:837 490796923762:4:837 493146635535:4:837 493146635536:4:838 493146635537:4:838 495504774240:4:838 495504774241:4:839 495504774242:4:839 497871359999:4:839 497871360000:4:840 497871360001:4:840 500246412960:4:840 500246412961:4:841 500246412962:4:841 502629953295:4:841 502629953296:4:842 502629953297:4:842 505022001200:4:842 505022001201:4:843 505022001202:4:843 507422576895:4:843 507422576896:4:844 507422576897:4:844 509831700624:4:844 509831700625:4:845 509831700626:4:845 512249392655:4:845 512249392656:4:846 512249392657:4:846 514675673280:4:846 514675673281:4:847 514675673282:4:847 517110562815:4:847 517110562816:4:848 517110562817:4:848 519554081600:4:848 519554081601:4:849 519554081602:4:849 522006249999:4:849 522006250000:4:850 522006250001:4:850 524467088400:4:850 524467088401:4:851 524467088402:4:851 526936617215:4:851 526936617216:4:852 526936617217:4:852 529414856880:4:852 529414856881:4:853 529414856882:4:853 531901827855:4:853 531901827856:4:854 531901827857:4:854 534397550624:4:854 534397550625:4:855 534397550626:4:855 536902045695:4:855 536902045696:4:856 536902045697:4:856 539415333600:4:856 539415333601:4:857 539415333602:4:857 541937434895:4:857 541937434896:4:858 541937434897:4:858 544468370160:4:858 544468370161:4:859 544468370162:4:859 547008159999:4:859 547008160000:4:860 547008160001:4:860 549556825040:4:860 549556825041:4:861 549556825042:4:861 552114385935:4:861 552114385936:4:862 552114385937:4:862 554680863360:4:862 554680863361:4:863 554680863362:4:863 557256278015:4:863 557256278016:4:864 557256278017:4:864 559840650624:4:864 559840650625:4:865 559840650626:4:865 562434001935:4:865 562434001936:4:866 562434001937:4:866 565036352720:4:866 565036352721:4:867 565036352722:4:867 567647723775:4:867 567647723776:4:868 567647723777:4:868 570268135920:4:868 570268135921:4:869 570268135922:4:869 572897609999:4:869 572897610000:4:870 572897610001:4:870 575536166880:4:870 575536166881:4:871 575536166882:4:871 578183827455:4:871 578183827456:4:872 578183827457:4:872 580840612640:4:872 580840612641:4:873 580840612642:4:873 583506543375:4:873 583506543376:4:874 583506543377:4:874 586181640624:4:874 586181640625:4:875 586181640626:4:875 588865925375:4:875 588865925376:4:876 588865925377:4:876 591559418640:4:876 591559418641:4:877 591559418642:4:877 594262141455:4:877 594262141456:4:878 594262141457:4:878 596974114880:4:878 596974114881:4:879 596974114882:4:879 599695359999:4:879 599695360000:4:880 599695360001:4:880 602425897920:4:880 602425897921:4:881 602425897922:4:881 605165749775:4:881 605165749776:4:882 605165749777:4:882 607914936720:4:882 607914936721:4:883 607914936722:4:883 610673479935:4:883 610673479936:4:884 610673479937:4:884 613441400624:4:884 613441400625:4:885 613441400626:4:885 616218720015:4:885 616218720016:4:886 616218720017:4:886 619005459360:4:886 619005459361:4:887 619005459362:4:887 621801639935:4:887 621801639936:4:888 621801639937:4:888 624607283040:4:888 624607283041:4:889 624607283042:4:889 627422409999:4:889 627422410000:4:890 627422410001:4:890 630247042160:4:890 630247042161:4:891 630247042162:4:891 633081200895:4:891 633081200896:4:892 633081200897:4:892 635924907600:4:892 635924907601:4:893 635924907602:4:893 638778183695:4:893 638778183696:4:894 638778183697:4:894 641641050624:4:894 641641050625:4:895 641641050626:4:895 644513529855:4:895 644513529856:4:896 644513529857:4:896 647395642880:4:896 647395642881:4:897 647395642882:4:897 650287411215:4:897 650287411216:4:898 650287411217:4:898 653188856400:4:898 653188856401:4:899 653188856402:4:899 656099999999:4:899 656100000000:4:900 656100000001:4:900 659020863600:4:900 659020863601:4:901 659020863602:4:901 661951468815:4:901 661951468816:4:902 661951468817:4:902 664891837280:4:902 664891837281:4:903 664891837282:4:903 667841990655:4:903 667841990656:4:904 667841990657:4:904 670801950624:4:904 670801950625:4:905 670801950626:4:905 673771738895:4:905 673771738896:4:906 673771738897:4:906 676751377200:4:906 676751377201:4:907 676751377202:4:907 679740887295:4:907 679740887296:4:908 679740887297:4:908 682740290960:4:908 682740290961:4:909 682740290962:4:909 685749609999:4:909 685749610000:4:910 685749610001:4:910 688768866240:4:910 688768866241:4:911 688768866242:4:911 691798081535:4:911 691798081536:4:912 691798081537:4:912 694837277760:4:912 694837277761:4:913 694837277762:4:913 697886476815:4:913 697886476816:4:914 697886476817:4:914 700945700624:4:914 700945700625:4:915 700945700626:4:915 704014971135:4:915 704014971136:4:916 704014971137:4:916 707094310320:4:916 707094310321:4:917 707094310322:4:917 710183740175:4:917 710183740176:4:918 710183740177:4:918 713283282720:4:918 713283282721:4:919 713283282722:4:919 716392959999:4:919 716392960000:4:920 716392960001:4:920 719512794080:4:920 719512794081:4:921 719512794082:4:921 722642807055:4:921 722642807056:4:922 722642807057:4:922 725783021040:4:922 725783021041:4:923 725783021042:4:923 728933458175:4:923 728933458176:4:924 728933458177:4:924 732094140624:4:924 732094140625:4:925 732094140626:4:925 735265090575:4:925 735265090576:4:926 735265090577:4:926 738446330240:4:926 738446330241:4:927 738446330242:4:927 741637881855:4:927 741637881856:4:928 741637881857:4:928 744839767680:4:928 744839767681:4:929 744839767682:4:929 748052009999:4:929 748052010000:4:930 748052010001:4:930 751274631120:4:930 751274631121:4:931 751274631122:4:931 754507653375:4:931 754507653376:4:932 754507653377:4:932 757751099120:4:932 757751099121:4:933 757751099122:4:933 761004990735:4:933 761004990736:4:934 761004990737:4:934 764269350624:4:934 764269350625:4:935 764269350626:4:935 767544201215:4:935 767544201216:4:936 767544201217:4:936 770829564960:4:936 770829564961:4:937 770829564962:4:937 774125464335:4:937 774125464336:4:938 774125464337:4:938 777431921840:4:938 777431921841:4:939 777431921842:4:939 780748959999:4:939 780748960000:4:940 780748960001:4:940 784076601360:4:940 784076601361:4:941 784076601362:4:941 787414868495:4:941 787414868496:4:942 787414868497:4:942 790763784000:4:942 790763784001:4:943 790763784002:4:943 794123370495:4:943 794123370496:4:944 794123370497:4:944 797493650624:4:944 797493650625:4:945 797493650626:4:945 800874647055:4:945 800874647056:4:946 800874647057:4:946 804266382480:4:946 804266382481:4:947 804266382482:4:947 807668879615:4:947 807668879616:4:948 807668879617:4:948 811082161200:4:948 811082161201:4:949 811082161202:4:949 814506249999:4:949 814506250000:4:950 814506250001:4:950 817941168800:4:950 817941168801:4:951 817941168802:4:951 821386940415:4:951 821386940416:4:952 821386940417:4:952 824843587680:4:952 824843587681:4:953 824843587682:4:953 828311133455:4:953 828311133456:4:954 828311133457:4:954 831789600624:4:954 831789600625:4:955 831789600626:4:955 835279012095:4:955 835279012096:4:956 835279012097:4:956 838779390800:4:956 838779390801:4:957 838779390802:4:957 842290759695:4:957 842290759696:4:958 842290759697:4:958 845813141760:4:958 845813141761:4:959 845813141762:4:959 849346559999:4:959 849346560000:4:960 849346560001:4:960 852891037440:4:960 852891037441:4:961 852891037442:4:961 856446597135:4:961 856446597136:4:962 856446597137:4:962 860013262160:4:962 860013262161:4:963 860013262162:4:963 863591055615:4:963 863591055616:4:964 863591055617:4:964 867180000624:4:964 867180000625:4:965 867180000626:4:965 870780120335:4:965 870780120336:4:966 870780120337:4:966 874391437920:4:966 874391437921:4:967 874391437922:4:967 878013976575:4:967 878013976576:4:968 878013976577:4:968 881647759520:4:968 881647759521:4:969 881647759522:4:969 885292809999:4:969 885292810000:4:970 885292810001:4:970 888949151280:4:970 888949151281:4:971 888949151282:4:971 892616806655:4:971 892616806656:4:972 892616806657:4:972 896295799440:4:972 896295799441:4:973 896295799442:4:973 899986152975:4:973 899986152976:4:974 899986152977:4:974 903687890624:4:974 903687890625:4:975 903687890626:4:975 907401035775:4:975 907401035776:4:976 907401035777:4:976 911125611840:4:976 911125611841:4:977 911125611842:4:977 914861642255:4:977 914861642256:4:978 914861642257:4:978 918609150480:4:978 918609150481:4:979 918609150482:4:979 922368159999:4:979 922368160000:4:980 922368160001:4:980 926138694320:4:980 926138694321:4:981 926138694322:4:981 929920776975:4:981 929920776976:4:982 929920776977:4:982 933714431520:4:982 933714431521:4:983 933714431522:4:983 937519681535:4:983 937519681536:4:984 937519681537:4:984 941336550624:4:984 941336550625:4:985 941336550626:4:985 945165062415:4:985 945165062416:4:986 945165062417:4:986 949005240560:4:986 949005240561:4:987 949005240562:4:987 952857108735:4:987 952857108736:4:988 952857108737:4:988 956720690640:4:988 956720690641:4:989 956720690642:4:989 960596009999:4:989 960596010000:4:990 960596010001:4:990 964483090560:4:990 964483090561:4:991 964483090562:4:991 968381956095:4:991 968381956096:4:992 968381956097:4:992 972292630400:4:992 972292630401:4:993 972292630402:4:993 976215137295:4:993 976215137296:4:994 976215137297:4:994 980149500624:4:994 980149500625:4:995 980149500626:4:995 984095744255:4:995 984095744256:4:996 984095744257:4:996 988053892080:4:996 988053892081:4:997 988053892082:4:997 992023968015:4:997 992023968016:4:998 992023968017:4:998 996005996000:4:998 996005996001:4:999 996005996002:4:999 6560:8:2 6561:8:3 6562:8:3 65535:8:3 65536:8:4 65537:8:4 390624:8:4 390625:8:5 390626:8:5 1679615:8:5 1679616:8:6 1679617:8:6 5764800:8:6 5764801:8:7 5764802:8:7 16777215:8:7 16777216:8:8 16777217:8:8 43046720:8:8 43046721:8:9 43046722:8:9 214358880:8:10 214358881:8:11 214358882:8:11 429981695:8:11 429981696:8:12 429981697:8:12 815730720:8:12 815730721:8:13 815730722:8:13 1475789055:8:13 1475789056:8:14 1475789057:8:14 2562890624:8:14 2562890625:8:15 2562890626:8:15 4294967295:8:15 4294967296:8:16 4294967297:8:16 6975757440:8:16 6975757441:8:17 6975757442:8:17 11019960575:8:17 11019960576:8:18 11019960577:8:18 16983563040:8:18 16983563041:8:19 16983563042:8:19 25599999999:8:19 25600000000:8:20 25600000001:8:20 37822859360:8:20 37822859361:8:21 37822859362:8:21 54875873535:8:21 54875873536:8:22 54875873537:8:22 78310985280:8:22 78310985281:8:23 78310985282:8:23 110075314175:8:23 110075314176:8:24 110075314177:8:24 152587890624:8:24 152587890625:8:25 152587890626:8:25 208827064575:8:25 208827064576:8:26 208827064577:8:26 282429536480:8:26 282429536481:8:27 282429536482:8:27 377801998335:8:27 377801998336:8:28 377801998337:8:28 500246412960:8:28 500246412961:8:29 500246412962:8:29 656099999999:8:29 656100000000:8:30 656100000001:8:30 852891037440:8:30 852891037441:8:31 852891037442:8:31 1099511627775:8:31 1099511627776:8:32 1099511627777:8:32 1406408618240:8:32 1406408618241:8:33 1406408618242:8:33 1785793904895:8:33 1785793904896:8:34 1785793904897:8:34 2251875390624:8:34 2251875390625:8:35 2251875390626:8:35 2821109907455:8:35 2821109907456:8:36 2821109907457:8:36 3512479453920:8:36 3512479453921:8:37 3512479453922:8:37 4347792138495:8:37 4347792138496:8:38 4347792138497:8:38 5352009260480:8:38 5352009260481:8:39 5352009260482:8:39 6553599999999:8:39 6553600000000:8:40 6553600000001:8:40 7984925229120:8:40 7984925229121:8:41 7984925229122:8:41 9682651996415:8:41 9682651996416:8:42 9682651996417:8:42 11688200277600:8:42 11688200277601:8:43 11688200277602:8:43 14048223625215:8:43 14048223625216:8:44 14048223625217:8:44 16815125390624:8:44 16815125390625:8:45 16815125390626:8:45 20047612231935:8:45 20047612231936:8:46 20047612231937:8:46 23811286661760:8:46 23811286661761:8:47 23811286661762:8:47 28179280429055:8:47 28179280429056:8:48 28179280429057:8:48 33232930569600:8:48 33232930569601:8:49 33232930569602:8:49 39062499999999:8:49 39062500000000:8:50 39062500000001:8:50 45767944570400:8:50 45767944570401:8:51 45767944570402:8:51 53459728531455:8:51 53459728531456:8:52 53459728531457:8:52 62259690411360:8:52 62259690411361:8:53 62259690411362:8:53 72301961339135:8:53 72301961339136:8:54 72301961339137:8:54 83733937890624:8:54 83733937890625:8:55 83733937890626:8:55 96717311574015:8:55 96717311574016:8:56 96717311574017:8:56 111429157112000:8:56 111429157112001:8:57 111429157112002:8:57 128063081718015:8:57 128063081718016:8:58 128063081718017:8:58 146830437604320:8:58 146830437604321:8:59 146830437604322:8:59 167961599999999:8:59 167961600000000:8:60 167961600000001:8:60 191707312997280:8:60 191707312997281:8:61 191707312997282:8:61 218340105584895:8:61 218340105584896:8:62 218340105584897:8:62 248155780267520:8:62 248155780267521:8:63 248155780267522:8:63 281474976710655:8:63 281474976710656:8:64 281474976710657:8:64 318644812890624:8:64 318644812890625:8:65 318644812890626:8:65 360040606269695:8:65 360040606269696:8:66 360040606269697:8:66 406067677556640:8:66 406067677556641:8:67 406067677556642:8:67 457163239653375:8:67 457163239653376:8:68 457163239653377:8:68 513798374428640:8:68 513798374428641:8:69 513798374428642:8:69 576480099999999:8:69 576480100000000:8:70 576480100000001:8:70 645753531245760:8:70 645753531245761:8:71 645753531245762:8:71 722204136308735:8:71 722204136308736:8:72 722204136308737:8:72 806460091894080:8:72 806460091894081:8:73 806460091894082:8:73 899194740203775:8:73 899194740203776:8:74 899194740203777:8:74 1001129150390624:8:74 1001129150390625:8:75 1001129150390626:8:75 1113034787454975:8:75 1113034787454976:8:76 1113034787454977:8:76 1235736291547680:8:76 1235736291547681:8:77 1235736291547682:8:77 1370114370683135:8:77 1370114370683136:8:78 1370114370683137:8:78 1517108809906560:8:78 1517108809906561:8:79 1517108809906562:8:79 1677721599999999:8:79 1677721600000000:8:80 1677721600000001:8:80 1853020188851840:8:80 1853020188851841:8:81 1853020188851842:8:81 2044140858654975:8:81 2044140858654976:8:82 2044140858654977:8:82 2252292232139040:8:82 2252292232139041:8:83 2252292232139042:8:83 2478758911082495:8:83 2478758911082496:8:84 2478758911082497:8:84 2724905250390624:8:84 2724905250390625:8:85 2724905250390626:8:85 2992179271065855:8:85 2992179271065856:8:86 2992179271065857:8:86 3282116715437120:8:86 3282116715437121:8:87 3282116715437122:8:87 3596345248055295:8:87 3596345248055296:8:88 3596345248055297:8:88 3936588805702080:8:88 3936588805702081:8:89 3936588805702082:8:89 4304672099999999:8:89 4304672100000000:8:90 4304672100000001:8:90 4702525276151520:8:90 4702525276151521:8:91 4702525276151522:8:91 5132188731375615:8:91 5132188731375616:8:92 5132188731375617:8:92 5595818096650400:8:92 5595818096650401:8:93 5595818096650402:8:93 6095689385410815:8:93 6095689385410816:8:94 6095689385410817:8:94 6634204312890624:8:94 6634204312890625:8:95 6634204312890626:8:95 7213895789838335:8:95 7213895789838336:8:96 7213895789838337:8:96 7837433594376960:8:96 7837433594376961:8:97 7837433594376962:8:97 8507630225817855:8:97 8507630225817856:8:98 8507630225817857:8:98 9227446944279200:8:98 9227446944279201:8:99 9227446944279202:8:99 10828567056280800:8:100 10828567056280801:8:101 10828567056280802:8:101 11716593810022655:8:101 11716593810022656:8:102 11716593810022657:8:102 12667700813876160:8:102 12667700813876161:8:103 12667700813876162:8:103 13685690504052735:8:103 13685690504052736:8:104 13685690504052737:8:104 14774554437890624:8:104 14774554437890625:8:105 14774554437890626:8:105 15938480745308415:8:105 15938480745308416:8:106 15938480745308417:8:106 17181861798319200:8:106 17181861798319201:8:107 17181861798319202:8:107 18509302102818815:8:107 18509302102818816:8:108 18509302102818817:8:108 19925626416901920:8:108 19925626416901921:8:109 19925626416901922:8:109 21435888099999999:8:109 21435888100000000:8:110 21435888100000001:8:110 23045377697175680:8:110 23045377697175681:8:111 23045377697175682:8:111 24759631762948095:8:111 24759631762948096:8:112 24759631762948097:8:112 26584441929064320:8:112 26584441929064321:8:113 26584441929064322:8:113 28525864220672255:8:113 28525864220672256:8:114 28525864220672257:8:114 30590228625390624:8:114 30590228625390625:8:115 30590228625390626:8:115 32784148919812095:8:115 32784148919812096:8:116 32784148919812097:8:116 35114532758015840:8:116 35114532758015841:8:117 35114532758015842:8:117 37588592026706175:8:117 37588592026706176:8:118 37588592026706177:8:118 40213853471634240:8:118 40213853471634241:8:119 40213853471634242:8:119 42998169599999999:8:119 42998169600000000:8:120 42998169600000001:8:120 45949729863572160:8:120 45949729863572161:8:121 45949729863572162:8:121 49077072127303935:8:121 49077072127303936:8:122 49077072127303937:8:122 52389094428262880:8:122 52389094428262881:8:123 52389094428262882:8:123 55895067029733375:8:123 55895067029733376:8:124 55895067029733377:8:124 59604644775390624:8:124 59604644775390625:8:125 59604644775390626:8:125 63527879748485375:8:125 63527879748485376:8:126 63527879748485377:8:126 67675234241018880:8:126 67675234241018881:8:127 67675234241018882:8:127 72057594037927935:8:127 72057594037927936:8:128 72057594037927937:8:128 76686282021340160:8:128 76686282021340161:8:129 76686282021340162:8:129 81573072099999999:8:129 81573072100000000:8:130 81573072100000001:8:130 86730203469006240:8:130 86730203469006241:8:131 86730203469006242:8:131 92170395205042175:8:131 92170395205042176:8:132 92170395205042177:8:132 97906861202319840:8:132 97906861202319841:8:133 97906861202319842:8:133 103953325454500095:8:133 103953325454500096:8:134 103953325454500097:8:134 110324037687890624:8:134 110324037687890625:8:135 110324037687890626:8:135 117033789351264255:8:135 117033789351264256:8:136 117033789351264257:8:136 124097929967680320:8:136 124097929967680321:8:137 124097929967680322:8:137 131532383853732095:8:137 131532383853732096:8:138 131532383853732097:8:138 139353667211683680:8:138 139353667211683681:8:139 139353667211683682:8:139 147578905599999999:8:139 147578905600000000:8:140 147578905600000001:8:140 156225851787813920:8:140 156225851787813921:8:141 156225851787813922:8:141 165312903998914815:8:141 165312903998914816:8:142 165312903998914817:8:142 174859124550883200:8:142 174859124550883201:8:143 174859124550883202:8:143 184884258895036415:8:143 184884258895036416:8:144 184884258895036417:8:144 195408755062890624:8:144 195408755062890625:8:145 195408755062890626:8:145 206453783524884735:8:145 206453783524884736:8:146 206453783524884737:8:146 218041257467152160:8:146 218041257467152161:8:147 218041257467152162:8:147 230193853492166655:8:147 230193853492166656:8:148 230193853492166657:8:148 242935032749128800:8:148 242935032749128801:8:149 242935032749128802:8:149 256289062499999999:8:149 256289062500000000:8:150 256289062500000001:8:150 270281038127131200:8:150 270281038127131201:8:151 270281038127131202:8:151 284936905588473855:8:151 284936905588473856:8:152 284936905588473857:8:152 300283484326400960:8:152 300283484326400961:8:153 300283484326400962:8:153 316348490636206335:8:153 316348490636206336:8:154 316348490636206337:8:154 333160561500390624:8:154 333160561500390625:8:155 333160561500390626:8:155 350749278894882815:8:155 350749278894882816:8:156 350749278894882817:8:156 369145194573386400:8:156 369145194573386401:8:157 369145194573386402:8:157 388379855336079615:8:157 388379855336079616:8:158 388379855336079617:8:158 408485828788939520:8:158 408485828788939521:8:159 408485828788939522:8:159 429496729599999999:8:159 429496729600000000:8:160 429496729600000001:8:160 451447246258894080:8:160 451447246258894081:8:161 451447246258894082:8:161 474373168346071295:8:161 474373168346071296:8:162 474373168346071297:8:162 498311414318121120:8:162 498311414318121121:8:163 498311414318121122:8:163 523300059815673855:8:163 523300059815673856:8:164 523300059815673857:8:164 549378366500390624:8:164 549378366500390625:8:165 549378366500390626:8:165 576586811427594495:8:165 576586811427594496:8:166 576586811427594497:8:166 604967116961135040:8:166 604967116961135041:8:167 604967116961135042:8:167 634562281237118975:8:167 634562281237118976:8:168 634562281237118977:8:168 665416609183179840:8:168 665416609183179841:8:169 665416609183179842:8:169 697575744099999999:8:169 697575744100000000:8:170 697575744100000001:8:170 731086699811838560:8:170 731086699811838561:8:171 731086699811838562:8:171 765997893392859135:8:171 765997893392859136:8:172 765997893392859137:8:172 802359178476091680:8:172 802359178476091681:8:173 802359178476091682:8:173 840221879151902975:8:173 840221879151902976:8:174 840221879151902977:8:174 879638824462890624:8:174 879638824462890625:8:175 879638824462890626:8:175 920664383502155775:8:175 920664383502155776:8:176 920664383502155777:8:176 963354501121950080:8:176 963354501121950081:8:177 963354501121950082:8:177 1007766734259732735:8:177 1007766734259732736:8:178 1007766734259732737:8:178 1053960288888713760:8:178 1053960288888713761:8:179 1053960288888713762:8:179 1101996057599999999:8:179 1101996057600000000:8:180 1101996057600000001:8:180 1151936657823500640:8:180 1151936657823500641:8:181 1151936657823500642:8:181 1203846470694789375:8:181 1203846470694789376:8:182 1203846470694789377:8:182 1257791680575160640:8:182 1257791680575160641:8:183 1257791680575160642:8:183 1313840315232157695:8:183 1313840315232157696:8:184 1313840315232157697:8:184 1372062286687890624:8:184 1372062286687890625:8:185 1372062286687890626:8:185 1432529432742502655:8:185 1432529432742502656:8:186 1432529432742502657:8:186 1495315559180183520:8:186 1495315559180183521:8:187 1495315559180183522:8:187 1560496482665168895:8:187 1560496482665168896:8:188 1560496482665168897:8:188 1628150074335205280:8:188 1628150074335205281:8:189 1628150074335205282:8:189 1698356304099999999:8:189 1698356304100000000:8:190 1698356304100000001:8:190 1771197285652216320:8:190 1771197285652216321:8:191 1771197285652216322:8:191 1846757322198614015:8:191 1846757322198614016:8:192 1846757322198614017:8:192 1925122952918976000:8:192 1925122952918976001:8:193 1925122952918976002:8:193 2006383000160502015:8:193 2006383000160502016:8:194 2006383000160502017:8:194 2090628617375390624:8:194 2090628617375390625:8:195 2090628617375390626:8:195 2177953337809371135:8:195 2177953337809371136:8:196 2177953337809371137:8:196 2268453123948987360:8:196 2268453123948987361:8:197 2268453123948987362:8:197 2362226417735475455:8:197 2362226417735475456:8:198 2362226417735475457:8:198 2459374191553118400:8:198 2459374191553118401:8:199 2459374191553118402:8:199 2559999999999999999:8:199 2560000000000000000:8:200 2560000000000000001:8:200 2664210032449121600:8:200 2664210032449121601:8:201 2664210032449121602:8:201 2772113166407885055:8:201 2772113166407885056:8:202 2772113166407885057:8:202 2883821021683985760:8:202 2883821021683985761:8:203 2883821021683985762:8:203 2999448015365799935:8:203 2999448015365799936:8:204 2999448015365799937:8:204 3119111417625390624:8:204 3119111417625390625:8:205 3119111417625390626:8:205 3242931408352297215:8:205 3242931408352297216:8:206 3242931408352297217:8:206 3371031134626313600:8:206 3371031134626313601:8:207 3371031134626313602:8:207 3503536769037500415:8:207 3503536769037500416:8:208 3503536769037500417:8:208 3640577568861717120:8:208 3640577568861717121:8:209 3640577568861717122:8:209 3782285936099999999:8:209 3782285936100000000:8:210 3782285936100000001:8:210 3928797478390152480:8:210 3928797478390152481:8:211 3928797478390152482:8:211 4080251070798954495:8:211 4080251070798954496:8:212 4080251070798954497:8:212 4236788918503437920:8:212 4236788918503437921:8:213 4236788918503437922:8:213 4398556620369715455:8:213 4398556620369715456:8:214 4398556620369715457:8:214 4565703233437890624:8:214 4565703233437890625:8:215 4565703233437890626:8:215 4738381338321616895:8:215 4738381338321616896:8:216 4738381338321616897:8:216 4916747105530914240:8:216 4916747105530914241:8:217 4916747105530914242:8:217 5100960362726891775:8:217 5100960362726891776:8:218 5100960362726891777:8:218 5291184662917065440:8:218 5291184662917065441:8:219 5291184662917065442:8:219 5487587353599999999:8:219 5487587353600000000:8:220 5487587353600000001:8:220 5690339646868044960:8:220 5690339646868044961:8:221 5690339646868044962:8:221 5899616690476974335:8:221 5899616690476974336:8:222 5899616690476974337:8:222 6115597639891380480:8:222 6115597639891380481:8:223 6115597639891380482:8:223 6338465731314712575:8:223 6338465731314712576:8:224 6338465731314712577:8:224 6568408355712890624:8:224 6568408355712890625:8:225 6568408355712890626:8:225 6805617133840466175:8:225 6805617133840466176:8:226 6805617133840466177:8:226 7050287992278341280:8:226 7050287992278341281:8:227 7050287992278341282:8:227 7302621240492097535:8:227 7302621240492097536:8:228 7302621240492097537:8:228 7562821648920027360:8:228 7562821648920027361:8:229 7562821648920027362:8:229 7831098528099999999:8:229 7831098528100000000:8:230 7831098528100000001:8:230 8107665808844335040:8:230 8107665808844335041:8:231 8107665808844335042:8:231 8392742123471896575:8:231 8392742123471896576:8:232 8392742123471896577:8:232 8686550888106661440:8:232 8686550888106661441:8:233 8686550888106661442:8:233 8989320386052055295:8:233 8989320386052055296:8:234 8989320386052055297:8:234 9301283852250390624:8:234 9301283852250390625:8:235 9301283852250390626:8:235 9622679558836781055:8:235 9622679558836781056:8:236 9622679558836781057:8:236 9953750901796946720:8:236 9953750901796946721:8:237 9953750901796946722:8:237 10294746488738365695:8:237 10294746488738365696:8:238 10294746488738365697:8:238 10645920227784266880:8:238 10645920227784266881:8:239 10645920227784266882:8:239 11007531417599999999:8:239 11007531417600000000:8:240 11007531417600000001:8:240 11379844838561358720:8:240 11379844838561358721:8:241 11379844838561358722:8:241 11763130845074473215:8:241 11763130845074473216:8:242 11763130845074473217:8:242 12157665459056928800:8:242 12157665459056928801:8:243 12157665459056928802:8:243 12563730464589807615:8:243 12563730464589807616:8:244 12563730464589807617:8:244 12981613503750390624:8:244 12981613503750390625:8:245 12981613503750390626:8:245 13411608173635297535:8:245 13411608173635297536:8:246 13411608173635297537:8:246 13854014124583882560:8:246 13854014124583882561:8:247 13854014124583882562:8:247 14309137159611744255:8:247 14309137159611744256:8:248 14309137159611744257:8:248 14777289335064248000:8:248 14777289335064248001:8:249 14777289335064248002:8:249 15258789062499999999:8:249 15258789062500000000:8:250 15258789062500000001:8:250 15753961211814252000:8:250 15753961211814252001:8:251 15753961211814252002:8:251 16263137215612256255:8:251 16263137215612256256:8:252 16263137215612256257:8:252 16786655174842630560:8:252 16786655174842630561:8:253 16786655174842630562:8:253 17324859965700833535:8:253 17324859965700833536:8:254 17324859965700833537:8:254 17878103347812890624:8:254 17878103347812890625:8:255 17878103347812890626:8:255 18446744073709551615:8:255 18446744073709551616:8:256 18446744073709551617:8:256 19031147999601100800:8:256 19031147999601100801:8:257 19031147999601100802:8:257 19631688197463081215:8:257 19631688197463081216:8:258 19631688197463081217:8:258 20248745068443234720:8:258 20248745068443234721:8:259 20248745068443234722:8:259 20882706457599999999:8:259 20882706457600000000:8:260 20882706457600000001:8:260 21533967769982950880:8:260 21533967769982950881:8:261 21533967769982950882:8:261 22202932088065597695:8:261 22202932088065597696:8:262 22202932088065597697:8:262 22890010290541014720:8:262 22890010290541014721:8:263 22890010290541014722:8:263 23595621172490797055:8:263 23595621172490797056:8:264 23595621172490797057:8:264 24320191566937890624:8:264 24320191566937890625:8:265 24320191566937890626:8:265 25064156467793879295:8:265 25064156467793879296:8:266 25064156467793879297:8:266 25827959154211353440:8:266 25827959154211353441:8:267 25827959154211353442:8:267 26612051316352024575:8:267 26612051316352024576:8:268 26612051316352024577:8:268 27416893182581291040:8:268 27416893182581291041:8:269 27416893182581291042:8:269 28242953648099999999:8:269 28242953648100000000:8:270 28242953648100000001:8:270 29090710405024191360:8:270 29090710405024191361:8:271 29090710405024191362:8:271 29960650073923649535:8:271 29960650073923649536:8:272 29960650073923649537:8:272 30853268336830129280:8:272 30853268336830129281:8:273 30853268336830129282:8:273 31769070071726162175:8:273 31769070071726162176:8:274 31769070071726162177:8:274 32708569488525390624:8:274 32708569488525390625:8:275 32708569488525390626:8:275 33672290266555416575:8:275 33672290266555416576:8:276 33672290266555416577:8:276 34660765693554192480:8:276 34660765693554192481:8:277 34660765693554192482:8:277 35674538806191022335:8:277 35674538806191022336:8:278 35674538806191022337:8:278 36714162532123280960:8:278 36714162532123280961:8:279 36714162532123280962:8:279 37780199833599999999:8:279 37780199833600000000:8:280 37780199833600000001:8:280 38873223852623509440:8:280 38873223852623509441:8:281 38873223852623509442:8:281 39993818057680363775:8:281 39993818057680363776:8:282 39993818057680363777:8:282 41142576392052822240:8:282 41142576392052822241:8:283 41142576392052822242:8:283 42320103423722192895:8:283 42320103423722192896:8:284 42320103423722192897:8:284 43527014496875390624:8:284 43527014496875390625:8:285 43527014496875390626:8:285 44763935885026099455:8:285 44763935885026099456:8:286 44763935885026099457:8:286 46031504945761969920:8:286 46031504945761969921:8:287 46031504945761969922:8:287 47330370277129322495:8:287 47330370277129322496:8:288 47330370277129322497:8:288 48661191875666868480:8:288 48661191875666868481:8:289 48661191875666868482:8:289 50024641296099999999:8:289 50024641296100000000:8:290 50024641296100000001:8:290 51421401812707241120:8:290 51421401812707241121:8:291 51421401812707241122:8:291 52852168582370492415:8:291 52852168582370492416:8:292 52852168582370492417:8:292 54317648809320741600:8:292 54317648809320741601:8:293 54317648809320741602:8:293 55818561911590953215:8:293 55818561911590953216:8:294 55818561911590953217:8:294 57355639689187890624:8:294 57355639689187890625:8:295 57355639689187890626:8:295 58929626493994663935:8:295 58929626493994663936:8:296 58929626493994663937:8:296 60541279401415837760:8:296 60541279401415837761:8:297 60541279401415837762:8:297 62191368383776973055:8:297 62191368383776973056:8:298 62191368383776973057:8:298 63880676485490517600:8:298 63880676485490517601:8:299 63880676485490517602:8:299 65609999999999999999:8:299 65610000000000000000:8:300 65610000000000000001:8:300 67380148648514522400:8:300 67380148648514522401:8:301 67380148648514522402:8:301 69191945760545587455:8:301 69191945760545587456:8:302 69191945760545587457:8:302 71046228456258335360:8:302 71046228456258335361:8:303 71046228456258335362:8:303 72943847830649307135:8:303 72943847830649307136:8:304 72943847830649307137:8:304 74885669139562890624:8:304 74885669139562890625:8:305 74885669139562890626:8:305 76872571987558646015:8:305 76872571987558646016:8:306 76872571987558646017:8:306 78905450517641748000:8:306 78905450517641748001:8:307 78905450517641748002:8:307 80985213602868822015:8:307 80985213602868822016:8:308 80985213602868822017:8:308 83112785039841492320:8:308 83112785039841492321:8:309 83112785039841492322:8:309 85289103744099999999:8:309 85289103744100000000:8:310 85289103744100000001:8:310 87515123947429289280:8:310 87515123947429289281:8:311 87515123947429289282:8:311 89791815397090000895:8:311 89791815397090000896:8:312 89791815397090000897:8:312 92120163556986851520:8:312 92120163556986851521:8:313 92120163556986851522:8:313 94501169810786918655:8:313 94501169810786918656:8:314 94501169810786918657:8:314 96935851667000390624:8:314 96935851667000390625:8:315 96935851667000390626:8:315 99425242966036381695:8:315 99425242966036381696:8:316 99425242966036381697:8:316 101970394089246452640:8:316 101970394089246452641:8:317 101970394089246452642:8:317 104572372169968517375:8:317 104572372169968517376:8:318 104572372169968517377:8:318 107232261306583856640:8:318 107232261306583856641:8:319 107232261306583856642:8:319 109951162777599999999:8:319 109951162777600000000:8:320 109951162777600000001:8:320 112730195258772277760:8:320 112730195258772277761:8:321 112730195258772277762:8:321 115570495042276884735:8:321 115570495042276884736:8:322 115570495042276884737:8:322 118473216257948338080:8:322 118473216257948338081:8:323 118473216257948338082:8:323 121439531096594251775:8:323 121439531096594251776:8:324 121439531096594251777:8:324 124470630035400390624:8:324 124470630035400390625:8:325 124470630035400390626:8:325 127567722065439006975:8:325 127567722065439006976:8:326 127567722065439006977:8:326 130732034921293503680:8:326 130732034921293503681:8:327 130732034921293503682:8:327 133964815312812507135:8:327 133964815312812507136:8:328 133964815312812507137:8:328 137267329159006474560:8:328 137267329159006474561:8:329 137267329159006474562:8:329 140640861824099999999:8:329 140640861824100000000:8:330 140640861824100000001:8:330 144086718355753023840:8:330 144086718355753023841:8:331 144086718355753023842:8:331 147606223725464190975:8:331 147606223725464190976:8:332 147606223725464190977:8:332 151200723071169643040:8:332 151200723071169643041:8:333 151200723071169643042:8:333 154871581942050570495:8:333 154871581942050570496:8:334 154871581942050570497:8:334 158620186545562890624:8:334 158620186545562890625:8:335 158620186545562890626:8:335 162447943996702457855:8:335 162447943996702457856:8:336 162447943996702457857:8:336 166356282569519253120:8:336 166356282569519253121:8:337 166356282569519253122:8:337 170346651950894039295:8:337 170346651950894039296:8:338 170346651950894039297:8:338 174420523496591010080:8:338 174420523496591010081:8:339 174420523496591010082:8:339 178579390489599999999:8:339 178579390489600000000:8:340 178579390489600000001:8:340 182824768400781863520:8:340 182824768400781863521:8:341 182824768400781863522:8:341 187158195151830671615:8:341 187158195151830671616:8:342 187158195151830671617:8:342 191581231380566414400:8:342 191581231380566414401:8:343 191581231380566414402:8:343 196095460708571938815:8:343 196095460708571938816:8:344 196095460708571938817:8:344 200702490011187890624:8:344 200702490011187890625:8:345 200702490011187890626:8:345 205403949689879470335:8:345 205403949689879470336:8:346 205403949689879470337:8:346 210201493946988852960:8:346 210201493946988852961:8:347 210201493946988852962:8:347 215096801062887161855:8:347 215096801062887161856:8:348 215096801062887161857:8:348 220091573675539927200:8:348 220091573675539927201:8:349 220091573675539927202:8:349 225187539062499999999:8:349 225187539062500000000:8:350 225187539062500000001:8:350 230386449425341932800:8:350 230386449425341932801:8:351 230386449425341932802:8:351 235690082176551878655:8:351 235690082176551878656:8:352 235690082176551878657:8:352 241100240228887100160:8:352 241100240228887100161:8:353 241100240228887100162:8:353 246618752287219220735:8:353 246618752287219220736:8:354 246618752287219220737:8:354 252247473142875390624:8:354 252247473142875390625:8:355 252247473142875390626:8:355 257988283970491580415:8:355 257988283970491580416:8:356 257988283970491580417:8:356 263843092627392255200:8:356 263843092627392255201:8:357 263843092627392255202:8:357 269813833955510722815:8:357 269813833955510722816:8:358 269813833955510722817:8:358 275902470085864489920:8:358 275902470085864489921:8:359 275902470085864489922:8:359 282110990745599999999:8:359 282110990745600000000:8:360 282110990745600000001:8:360 288441413567621167680:8:360 288441413567621167681:8:361 288441413567621167682:8:361 294895784402816164095:8:361 294895784402816164096:8:362 294895784402816164097:8:362 301476177634896948320:8:362 301476177634896948321:8:363 301476177634896948322:8:363 308184696497866080255:8:363 308184696497866080256:8:364 308184696497866080257:8:364 315023473396125390624:8:364 315023473396125390625:8:365 315023473396125390626:8:365 321994670227241124095:8:365 321994670227241124096:8:366 321994670227241124097:8:366 329100478707380211840:8:366 329100478707380211841:8:367 329100478707380211842:8:367 336343120699432370175:8:367 336343120699432370176:8:368 336343120699432370177:8:368 343724848543832762240:8:368 343724848543832762241:8:369 343724848543832762242:8:369 351247945392099999999:8:369 351247945392100000000:8:370 351247945392100000001:8:370 358914725543104304160:8:370 358914725543104304161:8:371 358914725543104304162:8:371 366727534782080679935:8:371 366727534782080679936:8:372 366727534782080679937:8:372 374688750722402006880:8:372 374688750722402006881:8:373 374688750722402006882:8:373 382800783150126981375:8:373 382800783150126981376:8:374 382800783150126981377:8:374 391066074371337890624:8:374 391066074371337890625:8:375 391066074371337890626:8:375 399487099562283237375:8:375 399487099562283237376:8:376 399487099562283237377:8:376 408066367122340274880:8:376 408066367122340274881:8:377 408066367122340274882:8:377 416806419029812551935:8:377 416806419029812551936:8:378 416806419029812551937:8:378 425709831200577608160:8:378 425709831200577608161:8:379 425709831200577608162:8:379 434779213849599999999:8:379 434779213849600000000:8:380 434779213849600000001:8:380 444017211855324878240:8:380 444017211855324878241:8:381 444017211855324878242:8:381 453426505126967378175:8:381 453426505126967378176:8:382 453426505126967378177:8:382 463009808974713123840:8:382 463009808974713123841:8:383 463009808974713123842:8:383 472769874482845188095:8:383 472769874482845188096:8:384 472769874482845188097:8:384 482709488885812890624:8:384 482709488885812890625:8:385 482709488885812890626:8:385 492831475947257856255:8:385 492831475947257856256:8:386 492831475947257856257:8:386 503138696342012796320:8:386 503138696342012796321:8:387 503138696342012796322:8:387 513634048041088516095:8:387 513634048041088516096:8:388 513634048041088516097:8:388 524320466699664691680:8:388 524320466699664691681:8:389 524320466699664691682:8:389 535200926048099999999:8:389 535200926048100000000:8:390 535200926048100000001:8:390 546278438285977225920:8:390 546278438285977225921:8:391 546278438285977225922:8:391 557556054479199010815:8:391 557556054479199010816:8:392 557556054479199010817:8:392 569036864960149947200:8:392 569036864960149947201:8:393 569036864960149947202:8:393 580723999730940764415:8:393 580723999730940764416:8:394 580723999730940764417:8:394 592620628869750390624:8:394 592620628869750390625:8:395 592620628869750390626:8:395 604729962940281716735:8:395 604729962940281716736:8:396 604729962940281716737:8:396 617055253404346928160:8:396 617055253404346928161:8:397 617055253404346928162:8:397 629599793037598310655:8:397 629599793037598310656:8:398 629599793037598310657:8:398 642366916348420476800:8:398 642366916348420476801:8:399 642366916348420476802:8:399 655359999999999999999:8:399 655360000000000000000:8:400 655360000000000000001:8:400 668582463235588483200:8:400 668582463235588483201:8:401 668582463235588483202:8:401 682037768306975129855:8:401 682037768306975129856:8:402 682037768306975129857:8:402 695729420906184924960:8:402 695729420906184924961:8:403 695729420906184924962:8:403 709660970600418574335:8:403 709660970600418574336:8:404 709660970600418574337:8:404 723836011270250390624:8:404 723836011270250390625:8:405 723836011270250390626:8:405 738258181551100354815:8:405 738258181551100354816:8:406 738258181551100354817:8:406 752931165277996622400:8:406 752931165277996622401:8:407 752931165277996622402:8:407 767858691933644783615:8:407 767858691933644783616:8:408 767858691933644783617:8:408 783044537099820227520:8:408 783044537099820227521:8:409 783044537099820227522:8:409 798492522912099999999:8:409 798492522912100000000:8:410 798492522912100000001:8:410 814206518517950586080:8:410 814206518517950586081:8:411 814206518517950586082:8:411 830190440538188087295:8:411 830190440538188087296:8:412 830190440538188087297:8:412 846448253531827305120:8:412 846448253531827305121:8:413 846448253531827305122:8:413 862983970464336281855:8:413 862983970464336281856:8:414 862983970464336281857:8:414 879801653179312890624:8:414 879801653179312890625:8:415 879801653179312890626:8:415 896905412873600106495:8:415 896905412873600106496:8:416 896905412873600106497:8:416 914299410575856631040:8:416 914299410575856631041:8:417 914299410575856631042:8:417 931987857628599582975:8:417 931987857628599582976:8:418 931987857628599582977:8:418 949975016173736007840:8:418 949975016173736007841:8:419 949975016173736007842:8:419 968265199641599999999:8:419 968265199641600000000:8:420 968265199641600000001:8:420 986862773243512270560:8:420 986862773243512270561:8:421 986862773243512270562:8:421 1005772154467879035135:8:421 1005772154467879035136:8:422 1005772154467879035137:8:422 1024997813579847135680:8:422 1024997813579847135681:8:423 1024997813579847135682:8:423 1044544274124532350975:8:423 1044544274124532350976:8:424 1044544274124532350977:8:424 1064416113433837890624:8:424 1064416113433837890625:8:425 1064416113433837890626:8:425 1084617963136880107775:8:425 1084617963136880107776:8:426 1084617963136880107777:8:426 1105154509674038506080:8:426 1105154509674038506081:8:427 1105154509674038506082:8:427 1126030494814647156735:8:427 1126030494814647156736:8:428 1126030494814647156737:8:428 1147250716178344681760:8:428 1147250716178344681761:8:429 1147250716178344681762:8:429 1168820027760099999999:8:429 1168820027760100000000:8:430 1168820027760100000001:8:430 1190743340458931072640:8:430 1190743340458931072641:8:431 1190743340458931072642:8:431 1213025622610333925375:8:431 1213025622610333925376:8:432 1213025622610333925377:8:432 1235671900522439264640:8:432 1235671900522439264641:8:433 1235671900522439264642:8:433 1258687259015914045695:8:433 1258687259015914045696:8:434 1258687259015914045697:8:434 1282076841967625390624:8:434 1282076841967625390625:8:435 1282076841967625390626:8:435 1305845852858084294655:8:435 1305845852858084294656:8:436 1305845852858084294657:8:436 1329999555322686599520:8:436 1329999555322686599521:8:437 1329999555322686599522:8:437 1354543273706768752895:8:437 1354543273706768752896:8:438 1354543273706768752897:8:438 1379482393624495913280:8:438 1379482393624495913281:8:439 1379482393624495913282:8:439 1404822362521599999999:8:439 1404822362521600000000:8:440 1404822362521600000001:8:440 1430568690241985328320:8:440 1430568690241985328321:8:441 1430568690241985328322:8:441 1456726949598219510015:8:441 1456726949598219510016:8:442 1456726949598219510017:8:442 1483302776945927340000:8:442 1483302776945927340001:8:443 1483302776945927340002:8:443 1510301872762105430015:8:443 1510301872762105430016:8:444 1510301872762105430017:8:444 1537730002227375390624:8:444 1537730002227375390625:8:445 1537730002227375390626:8:445 1565592995812193403135:8:445 1565592995812193403136:8:446 1565592995812193403137:8:446 1593896749867034063360:8:446 1593896749867034063361:8:447 1593896749867034063362:8:447 1622647227216566419455:8:447 1622647227216566419456:8:448 1622647227216566419457:8:448 1651850457757840166400:8:448 1651850457757840166401:8:449 1651850457757840166402:8:449 1681512539062499999999:8:449 1681512539062500000000:8:450 1681512539062500000001:8:450 1711639636983046173600:8:450 1711639636983046173601:8:451 1711639636983046173602:8:451 1742237986263159341055:8:451 1742237986263159341056:8:452 1742237986263159341057:8:452 1773313891152107809760:8:452 1773313891152107809761:8:453 1773313891152107809762:8:453 1804873726023255367935:8:453 1804873726023255367936:8:454 1804873726023255367937:8:454 1836923935996687890624:8:454 1836923935996687890625:8:455 1836923935996687890626:8:455 1869471037565976969215:8:455 1869471037565976969216:8:456 1869471037565976969217:8:456 1902521619229098849600:8:456 1902521619229098849601:8:457 1902521619229098849602:8:457 1936082342123527004415:8:457 1936082342123527004416:8:458 1936082342123527004417:8:458 1970159940665516705120:8:458 1970159940665516705121:8:459 1970159940665516705122:8:459 2004761223193599999999:8:459 2004761223193600000000:8:460 2004761223193600000001:8:460 2039893072616309544480:8:460 2039893072616309544481:8:461 2039893072616309544482:8:461 2075562447064149770495:8:461 2075562447064149770496:8:462 2075562447064149770497:8:462 2111776380545833921920:8:462 2111776380545833921921:8:463 2111776380545833921922:8:463 2148541983608805523455:8:463 2148541983608805523456:8:464 2148541983608805523457:8:464 2185866444004062890624:8:464 2185866444004062890625:8:465 2185866444004062890626:8:465 2223757027355305328895:8:465 2223757027355305328896:8:466 2223757027355305328897:8:466 2262221077832419710240:8:466 2262221077832419710241:8:467 2262221077832419710242:8:467 2301266018829326155775:8:467 2301266018829326155776:8:468 2301266018829326155777:8:468 2340899353646201593440:8:468 2340899353646201593441:8:469 2340899353646201593442:8:469 2381128666176099999999:8:469 2381128666176100000000:8:470 2381128666176100000001:8:470 2421961621595988176960:8:470 2421961621595988176961:8:471 2421961621595988176962:8:471 2463405967062215950335:8:471 2463405967062215950336:8:472 2463405967062215950337:8:472 2505469532410439724480:8:472 2505469532410439724481:8:473 2505469532410439724482:8:473 2548160230860018360575:8:473 2548160230860018360576:8:474 2548160230860018360577:8:474 2591486059722900390624:8:474 2591486059722900390625:8:475 2591486059722900390626:8:475 2635455101117021618175:8:475 2635455101117021618176:8:476 2635455101117021618177:8:476 2680075522684232197280:8:476 2680075522684232197281:8:477 2680075522684232197282:8:477 2725355578312772321535:8:477 2725355578312772321536:8:478 2725355578312772321537:8:478 2771303608864315695360:8:478 2771303608864315695361:8:479 2771303608864315695362:8:479 2817928042905599999999:8:479 2817928042905600000000:8:480 2817928042905600000001:8:480 2865237397444663607040:8:480 2865237397444663607041:8:481 2865237397444663607042:8:481 2913240278671707832575:8:481 2913240278671707832576:8:482 2913240278671707832577:8:482 2961945382704604065440:8:482 2961945382704604065441:8:483 2961945382704604065442:8:483 3011361496339065143295:8:483 3011361496339065143296:8:484 3011361496339065143297:8:484 3061497497803500390624:8:484 3061497497803500390625:8:485 3061497497803500390626:8:485 3112362357518573773055:8:485 3112362357518573773056:8:486 3112362357518573773057:8:486 3163965138861484662720:8:486 3163965138861484662721:8:487 3163965138861484662722:8:487 3216314998934990749695:8:487 3216314998934990749696:8:488 3216314998934990749697:8:488 3269421189341192674880:8:488 3269421189341192674881:8:489 3269421189341192674882:8:489 3323293056960099999999:8:489 3323293056960100000000:8:490 3323293056960100000001:8:490 3377940044732998170720:8:490 3377940044732998170721:8:491 3377940044732998170722:8:491 3433371692450636169215:8:491 3433371692450636169216:8:492 3433371692450636169217:8:492 3489597637546254592800:8:492 3489597637546254592801:8:493 3489597637546254592802:8:493 3546627615893473935615:8:493 3546627615893473935616:8:494 3546627615893473935617:8:494 3604471462609062890624:8:494 3604471462609062890625:8:495 3604471462609062890626:8:495 3663139112860606529535:8:495 3663139112860606529536:8:496 3663139112860606529537:8:496 3722640602679094258560:8:496 3722640602679094258561:8:497 3722640602679094258562:8:497 3782986069776447488255:8:497 3782986069776447488256:8:498 3782986069776447488257:8:498 3844185754368006996000:8:498 3844185754368006996001:8:499 3844185754368006996002:8:499 3906249999999999999999:8:499 3906250000000000000000:8:500 3906250000000000000001:8:500 3969189254382007004000:8:500 3969189254382007004001:8:501 3969189254382007004002:8:501 4033014070224448512255:8:501 4033014070224448512256:8:502 4033014070224448512257:8:502 4097735106081111754560:8:502 4097735106081111754561:8:503 4097735106081111754562:8:503 4163363127196737601535:8:503 4163363127196737601536:8:504 4163363127196737601537:8:504 4229909006359687890624:8:504 4229909006359687890625:8:505 4229909006359687890626:8:505 4297383724759713423615:8:505 4297383724759713423616:8:506 4297383724759713423617:8:506 4365798372850842936800:8:506 4365798372850842936801:8:507 4365798372850842936802:8:507 4435164151219413385215:8:507 4435164151219413385216:8:508 4435164151219413385217:8:508 4505492371457261922720:8:508 4505492371457261922721:8:509 4505492371457261922722:8:509 4576794457040099999999:8:509 4576794457040100000000:8:510 4576794457040100000001:8:510 4649081944211090042880:8:510 4649081944211090042881:8:511 4649081944211090042882:8:511 4722366482869645213695:8:511 4722366482869645213696:8:512 4722366482869645213697:8:512 4796659837465472798720:8:512 4796659837465472798721:8:513 4796659837465472798722:8:513 4871973887897881805055:8:513 4871973887897881805056:8:514 4871973887897881805057:8:514 4948320630420375390624:8:514 4948320630420375390625:8:515 4948320630420375390626:8:515 5025712178550548791295:8:515 5025712178550548791296:8:516 5025712178550548791297:8:516 5104160763985313449440:8:516 5104160763985313449441:8:517 5104160763985313449442:8:517 5183678737521468088575:8:517 5183678737521468088576:8:518 5183678737521468088577:8:518 5264278569981637519040:8:518 5264278569981637519041:8:519 5264278569981637519042:8:519 5345972853145599999999:8:519 5345972853145600000000:8:520 5345972853145600000001:8:520 5428774300687024023360:8:520 5428774300687024023361:8:521 5428774300687024023362:8:521 5512695749115635425535:8:521 5512695749115635425536:8:522 5512695749115635425537:8:522 5597750158724835773280:8:522 5597750158724835773281:8:523 5597750158724835773282:8:523 5683950614544793010175:8:523 5683950614544793010176:8:524 5683950614544793010177:8:524 5771310327301025390624:8:524 5771310327301025390625:8:525 5771310327301025390626:8:525 5859842634378499768575:8:525 5859842634378499768576:8:526 5859842634378499768577:8:526 5949561000791265348480:8:526 5949561000791265348481:8:527 5949561000791265348482:8:527 6040479020157644046335:8:527 6040479020157644046336:8:528 6040479020157644046337:8:528 6132610415680998648960:8:528 6132610415680998648961:8:529 6132610415680998648962:8:529 6225969041136099999999:8:529 6225969041136100000000:8:530 6225969041136100000001:8:530 6320568881861114481440:8:530 6320568881861114481441:8:531 6320568881861114481442:8:531 6416424055755233099775:8:531 6416424055755233099776:8:532 6416424055755233099777:8:532 6513548814281963526240:8:532 6513548814281963526241:8:533 6513548814281963526242:8:533 6611957543478106480895:8:533 6611957543478106480896:8:534 6611957543478106480897:8:534 6711664764968437890624:8:534 6711664764968437890625:8:535 6711664764968437890626:8:535 6812685136986118291455:8:535 6812685136986118291456:8:536 6812685136986118291457:8:536 6915033455398850985920:8:536 6915033455398850985921:8:537 6915033455398850985922:8:537 7018724654740810506495:8:537 7018724654740810506496:8:538 7018724654740810506497:8:538 7123773809250362976480:8:538 7123773809250362976481:8:539 7123773809250362976482:8:539 7230196133913599999999:8:539 7230196133913600000000:8:540 7230196133913600000001:8:540 7338006985513707753120:8:540 7338006985513707753121:8:541 7338006985513707753122:8:541 7447221863686192988415:8:541 7447221863686192988416:8:542 7447221863686192988417:8:542 7557856411979987705600:8:542 7557856411979987705601:8:543 7557856411979987705602:8:543 7669926418924454281215:8:543 7669926418924454281216:8:544 7669926418924454281217:8:544 7783447819102312890624:8:544 7783447819102312890625:8:545 7783447819102312890626:8:545 7898436694228513095935:8:545 7898436694228513095936:8:546 7898436694228513095937:8:546 8014909274235071513760:8:546 8014909274235071513761:8:547 8014909274235071513762:8:547 8132881938361897517055:8:547 8132881938361897517056:8:548 8132881938361897517057:8:548 8252371216253628965600:8:548 8252371216253628965601:8:549 8252371216253628965602:8:549 8373393789062499999999:8:549 8373393789062500000000:8:550 8373393789062500000001:8:550 8495966490557262974400:8:550 8495966490557262974401:8:551 8495966490557262974402:8:551 8620106308238186643455:8:551 8620106308238186643456:8:552 8620106308238186643457:8:552 8745830384458152759360:8:552 8745830384458152759361:8:553 8745830384458152759362:8:553 8873156017549873275135:8:553 8873156017549873275136:8:554 8873156017549873275137:8:554 9002100662959250390624:8:554 9002100662959250390625:8:555 9002100662959250390626:8:555 9132681934384901718015:8:555 9132681934384901718016:8:556 9132681934384901718017:8:556 9264917604923872884000:8:556 9264917604923872884001:8:557 9264917604923872884002:8:557 9398825608223559926015:8:557 9398825608223559926016:8:558 9398825608223559926017:8:558 9534424039639863880320:8:558 9534424039639863880321:8:559 9534424039639863880322:8:559 9671731157401599999999:8:559 9671731157401600000000:8:560 9671731157401600000001:8:560 9810765383781184081280:8:560 9810765383781184081281:8:561 9810765383781184081282:8:561 9951545306271618416895:8:561 9951545306271618416896:8:562 9951545306271618416897:8:562 10094089678769799935520:8:562 10094089678769799935521:8:563 10094089678769799935522:8:563 10238417422766173126655:8:563 10238417422766173126656:8:564 10238417422766173126657:8:564 10384547628540750390624:8:564 10384547628540750390625:8:565 10384547628540750390626:8:565 10532499556365522493695:8:565 10532499556365522493696:8:566 10532499556365522493697:8:566 10682292637713281848640:8:566 10682292637713281848641:8:567 10682292637713281848642:8:567 10833946476472881381375:8:567 10833946476472881381376:8:568 10833946476472881381377:8:568 10987480850170951784640:8:568 10987480850170951784641:8:569 10987480850170951784642:8:569 11142915711200099999999:8:569 11142915711200100000000:8:570 11142915711200100000001:8:570 11300271188053611809760:8:570 11300271188053611809761:8:571 11300271188053611809762:8:571 11459567586566681460735:8:571 11459567586566681460736:8:572 11459567586566681460737:8:572 11620825391164191282080:8:572 11620825391164191282081:8:573 11620825391164191282082:8:573 11784065266115064299775:8:573 11784065266115064299776:8:574 11784065266115064299777:8:574 11949308056793212890624:8:574 11949308056793212890625:8:575 11949308056793212890626:8:575 12116574790945106558975:8:575 12116574790945106558976:8:576 12116574790945106558977:8:576 12285886679963981959680:8:576 12285886679963981959681:8:577 12285886679963981959682:8:577 12457265120170718331135:8:577 12457265120170718331136:8:578 12457265120170718331137:8:578 12630731694101401542560:8:578 12630731694101401542561:8:579 12630731694101401542562:8:579 12806308171801599999999:8:579 12806308171801600000000:8:580 12806308171801600000001:8:580 12984016512127375695840:8:580 12984016512127375695841:8:581 12984016512127375695842:8:581 13163878864053053726975:8:581 13163878864053053726976:8:582 13163878864053053726977:8:582 13345917567985773647040:8:582 13345917567985773647041:8:583 13345917567985773647042:8:583 13530155157086846058495:8:583 13530155157086846058496:8:584 13530155157086846058497:8:584 13716614358599937890624:8:584 13716614358599937890625:8:585 13716614358599937890626:8:585 13905318095186109849855:8:585 13905318095186109849856:8:586 13905318095186109849857:8:586 14096289486265729569120:8:586 14096289486265729569121:8:587 14096289486265729569122:8:587 14289551849367284023295:8:587 14289551849367284023296:8:588 14289551849367284023297:8:588 14485128701483114818080:8:588 14485128701483114818081:8:589 14485128701483114818082:8:589 14683043760432099999999:8:589 14683043760432100000000:8:590 14683043760432100000001:8:590 14883320946229306075520:8:590 14883320946229306075521:8:591 14883320946229306075522:8:591 15085984382462633967615:8:591 15085984382462633967616:8:592 15085984382462633967617:8:592 15291058397676482678400:8:592 15291058397676482678401:8:593 15291058397676482678402:8:593 15498567526762454466815:8:593 15498567526762454466816:8:594 15498567526762454466817:8:594 15708536512357125390624:8:594 15708536512357125390625:8:595 15708536512357125390626:8:595 15920990306246905102335:8:595 15920990306246905102336:8:596 15920990306246905102337:8:596 16135954070780009828960:8:596 16135954070780009828961:8:597 16135954070780009828962:8:597 16353453180285572505855:8:597 16353453180285572505856:8:598 16353453180285572505857:8:598 16573513222499914075200:8:598 16573513222499914075201:8:599 16573513222499914075202:8:599 16796159999999999999999:8:599 16796160000000000000000:8:600 16796160000000000000001:8:600 17021419531644106084800:8:600 17021419531644106084801:8:601 17021419531644106084802:8:601 17249318054019717734655:8:601 17249318054019717734656:8:602 17249318054019717734657:8:602 17479882022898686824160:8:602 17479882022898686824161:8:603 17479882022898686824162:8:603 17713138114699670388735:8:603 17713138114699670388736:8:604 17713138114699670388737:8:604 17949113227957875390624:8:604 17949113227957875390625:8:605 17949113227957875390626:8:605 18187834484802133852415:8:605 18187834484802133852416:8:606 18187834484802133852417:8:606 18429329232439332691200:8:606 18429329232439332691201:8:607 18429329232439332691202:8:607 18673625044646222626815:8:607 18673625044646222626816:8:608 18673625044646222626817:8:608 18920749723268630577920:8:608 18920749723268630577921:8:609 18920749723268630577922:8:609 19170731299728099999999:8:609 19170731299728100000000:8:610 19170731299728100000001:8:610 19423598036535983659680:8:610 19423598036535983659681:8:611 19423598036535983659682:8:611 19679378428815013380095:8:611 19679378428815013380096:8:612 19679378428815013380097:8:612 19938101205828371332320:8:612 19938101205828371332321:8:613 19938101205828371332322:8:613 20199795332516287488255:8:613 20199795332516287488256:8:614 20199795332516287488257:8:614 20464490011040187890624:8:614 20464490011040187890625:8:615 20464490011040187890626:8:615 20732214682334418436095:8:615 20732214682334418436096:8:616 20732214682334418436097:8:616 21002999027665568907840:8:616 21002999027665568907841:8:617 21002999027665568907842:8:617 21276872970199422034175:8:617 21276872970199422034176:8:618 21276872970199422034177:8:618 21553866676575552390240:8:618 21553866676575552390241:8:619 21553866676575552390242:8:619 21834010558489599999999:8:619 21834010558489600000000:8:620 21834010558489600000001:8:620 22117335274283243536160:8:620 22117335274283243536161:8:621 22117335274283243536162:8:621 22403871730541898055935:8:621 22403871730541898055936:8:622 22403871730541898055937:8:622 22693651083700162250880:8:622 22693651083700162250881:8:623 22693651083700162250882:8:623 22986704741655040229375:8:623 22986704741655040229376:8:624 22986704741655040229377:8:624 23283064365386962890624:8:624 23283064365386962890625:8:625 23283064365386962890626:8:625 23582761870588633989375:8:625 23582761870588633989376:8:626 23582761870588633989377:8:626 23885829429301726030880:8:626 23885829429301726030881:8:627 23885829429301726030882:8:627 24192299471561451175935:8:627 24192299471561451175936:8:628 24192299471561451175937:8:628 24502204687049032376160:8:628 24502204687049032376161:8:629 24502204687049032376162:8:629 24815578026752099999999:8:629 24815578026752100000000:8:630 24815578026752100000001:8:630 25132452704633039250240:8:630 25132452704633039250241:8:631 25132452704633039250242:8:631 25452862199305313714175:8:631 25452862199305313714176:8:632 25452862199305313714177:8:632 25776840255717790427840:8:632 25776840255717790427841:8:633 25776840255717790427842:8:633 26104420886847091876095:8:633 26104420886847091876096:8:634 26104420886847091876097:8:634 26435638375398000390624:8:634 26435638375398000390625:8:635 26435638375398000390626:8:635 26770527275511940448255:8:635 26770527275511940448256:8:636 26770527275511940448257:8:636 27109122414483564412320:8:636 27109122414483564412321:8:637 27109122414483564412322:8:637 27451458894485467300095:8:637 27451458894485467300096:8:638 27451458894485467300097:8:638 27797572094301056199680:8:638 27797572094301056199681:8:639 27797572094301056199682:8:639 28147497671065599999999:8:639 28147497671065600000000:8:640 28147497671065600000001:8:640 28501271562015485137920:8:640 28501271562015485137921:8:641 28501271562015485137922:8:641 28858929986245703106815:8:641 28858929986245703106816:8:642 28858929986245703106817:8:642 29220509446475595511200:8:642 29220509446475595511201:8:643 29220509446475595511202:8:643 29586046730822882492415:8:643 29586046730822882492416:8:644 29586046730822882492417:8:644 29955578914586000390624:8:644 29955578914586000390625:8:645 29955578914586000390626:8:645 30329143362034774548735:8:645 30329143362034774548736:8:646 30329143362034774548737:8:646 30706777728209453204160:8:646 30706777728209453204161:8:647 30706777728209453204162:8:647 31088519960728128454655:8:647 31088519960728128454656:8:648 31088519960728128454657:8:648 31474408301602570324800:8:648 31474408301602570324801:8:649 31474408301602570324802:8:649 31864481289062499999999:8:649 31864481289062500000000:8:650 31864481289062500000001:8:650 32258777759388328335200:8:650 32258777759388328335201:8:651 32258777759388328335202:8:651 32657336848752385785855:8:651 32657336848752385785856:8:652 32657336848752385785857:8:652 33060197995068669948960:8:652 33060197995068669948961:8:653 33060197995068669948962:8:653 33467400939851136942335:8:653 33467400939851136942336:8:654 33467400939851136942337:8:654 33878985730080562890624:8:654 33878985730080562890625:8:655 33878985730080562890626:8:655 34294992720080001826815:8:655 34294992720080001826816:8:656 34294992720080001826817:8:656 34715462573398866358400:8:656 34715462573398866358401:8:657 34715462573398866358402:8:657 35140436264705657487615:8:657 35140436264705657487616:8:658 35140436264705657487617:8:658 35569955081689370015520:8:658 35569955081689370015521:8:659 35569955081689370015522:8:659 36004060626969599999999:8:659 36004060626969600000000:8:660 36004060626969600000001:8:660 36442794820015380778080:8:660 36442794820015380778081:8:661 36442794820015380778082:8:661 36886199899072774103295:8:661 36886199899072774103296:8:662 36886199899072774103297:8:662 37334318423101242989120:8:662 37334318423101242989121:8:663 37334318423101242989122:8:663 37787193273718832889855:8:663 37787193273718832889856:8:664 37787193273718832889857:8:664 38244867657156187890624:8:664 38244867657156187890625:8:665 38244867657156187890626:8:665 38707385106219428618495:8:665 38707385106219428618496:8:666 38707385106219428618497:8:666 39174789482261918627040:8:666 39174789482261918627041:8:667 39174789482261918627042:8:667 39647124977164946046975:8:667 39647124977164946046976:8:668 39647124977164946046977:8:668 40124436115327347335840:8:668 40124436115327347335841:8:669 40124436115327347335842:8:669 40606767755664099999999:8:669 40606767755664100000000:8:670 40606767755664100000001:8:670 41094165093613911202560:8:670 41094165093613911202561:8:671 41094165093613911202562:8:671 41586673663155829211135:8:671 41586673663155829211136:8:672 41586673663155829211137:8:672 42084339338834904679680:8:672 42084339338834904679681:8:673 42084339338834904679682:8:673 42587208337796928798975:8:673 42587208337796928798976:8:674 42587208337796928798977:8:674 43095327221832275390624:8:674 43095327221832275390625:8:675 43095327221832275390626:8:675 43608742899428874059775:8:675 43608742899428874059776:8:676 43608742899428874059777:8:676 44127502627834341562080:8:676 44127502627834341562081:8:677 44127502627834341562082:8:677 44651654015127298580735:8:677 44651654015127298580736:8:678 44651654015127298580737:8:678 45181245022297899149760:8:678 45181245022297899149761:8:679 45181245022297899149762:8:679 45716323965337599999999:8:679 45716323965337600000000:8:680 45716323965337600000001:8:680 46256939517338197144640:8:680 46256939517338197144641:8:681 46256939517338197144642:8:681 46803140710600157061375:8:681 46803140710600157061376:8:682 46803140710600157061377:8:682 47354976938750269868640:8:682 47354976938750269868641:8:683 47354976938750269868642:8:683 47912497958868651933695:8:683 47912497958868651933696:8:684 47912497958868651933697:8:684 48475753893625125390624:8:684 48475753893625125390625:8:685 48475753893625125390626:8:685 49044795233425002086655:8:685 49044795233425002086656:8:686 49044795233425002086657:8:686 49619672838564299515520:8:686 49619672838564299515521:8:687 49619672838564299515522:8:687 50200437941394416336895:8:687 50200437941394416336896:8:688 50200437941394416336897:8:688 50787142148496295121280:8:688 50787142148496295121281:8:689 50787142148496295121282:8:689 51379837442864099999999:8:689 51379837442864100000000:8:690 51379837442864100000001:8:690 51978576186098436940320:8:690 51978576186098436940321:8:691 51978576186098436940322:8:691 52583411120609144406015:8:691 52583411120609144406016:8:692 52583411120609144406017:8:692 53194395371827682204000:8:692 53194395371827682204001:8:693 53194395371827682204002:8:693 53811582450429146358015:8:693 53811582450429146358016:8:694 53811582450429146358017:8:694 54435026254563937890624:8:694 54435026254563937890625:8:695 54435026254563937890626:8:695 55064781072099113435135:8:695 55064781072099113435136:8:696 55064781072099113435137:8:696 55700901582869445639360:8:696 55700901582869445639361:8:697 55700901582869445639362:8:697 56343442860938221363455:8:697 56343442860938221363456:8:698 56343442860938221363457:8:698 56992460376867805714400:8:698 56992460376867805714401:8:699 56992460376867805714402:8:699 57648009999999999999999:8:699 57648010000000000000000:8:700 57648010000000000000001:8:700 58310148000746221725600:8:700 58310148000746221725601:8:701 58310148000746221725602:8:701 58978931052887534797055:8:701 58978931052887534797056:8:702 58978931052887534797057:8:702 59654416235884558133760:8:702 59654416235884558133761:8:703 59654416235884558133762:8:703 60336661037197280935935:8:703 60336661037197280935936:8:704 60336661037197280935937:8:704 61025723354614812890624:8:704 61025723354614812890625:8:705 61025723354614812890626:8:705 61721661498595097641215:8:705 61721661498595097641216:8:706 61721661498595097641217:8:706 62424534194614617885600:8:706 62424534194614617885601:8:707 62424534194614617885602:8:707 63134400585528120508415:8:707 63134400585528120508416:8:708 63134400585528120508417:8:708 63851320233938390193120:8:708 63851320233938390193121:8:709 63851320233938390193122:8:709 64575353124576099999999:8:709 64575353124576100000000:8:710 64575353124576100000001:8:710 65306559666689767436480:8:710 65306559666689767436481:8:711 65306559666689767436482:8:711 66045000696445844586495:8:711 66045000696445844586496:8:712 66045000696445844586497:8:712 66790737479338970905920:8:712 66790737479338970905921:8:713 66790737479338970905922:8:713 67543831712612417331455:8:713 67543831712612417331456:8:714 67543831712612417331457:8:714 68304345527688750390624:8:714 68304345527688750390625:8:715 68304345527688750390626:8:715 69072341492610745040895:8:715 69072341492610745040896:8:716 69072341492610745040897:8:716 69847882614492575006240:8:716 69847882614492575006241:8:717 69847882614492575006242:8:717 70631032341981309419775:8:717 70631032341981309419776:8:718 70631032341981309419777:8:718 71421854567728744621440:8:718 71421854567728744621441:8:719 71421854567728744621442:8:719 72220413630873599999999:8:719 72220413630873600000000:8:720 72220413630873600000001:8:720 73026774319534106808960:8:720 73026774319534106808961:8:721 73026774319534106808962:8:721 73841001873311018926335:8:721 73841001873311018926336:8:722 73841001873311018926337:8:722 74663161985801074568480:8:722 74663161985801074568481:8:723 74663161985801074568482:8:723 75493320807120938008575:8:723 75493320807120938008576:8:724 75493320807120938008577:8:724 76331544946441650390624:8:724 76331544946441650390625:8:725 76331544946441650390626:8:725 77177901474533618770175:8:725 77177901474533618770176:8:726 77177901474533618770177:8:726 78032457926322172553280:8:726 78032457926322172553281:8:727 78032457926322172553282:8:727 78895282303453716545535:8:727 78895282303453716545536:8:728 78895282303453716545537:8:728 79766443076872509863360:8:728 79766443076872509863361:8:729 79766443076872509863362:8:729 80646009189408099999999:8:729 80646009189408100000000:8:730 80646009189408100000001:8:730 81534050058373441379040:8:730 81534050058373441379041:8:731 81534050058373441379042:8:731 82430635578173727768575:8:731 82430635578173727768576:8:732 82430635578173727768577:8:732 83335836122925967969440:8:732 83335836122925967969441:8:733 83335836122925967969442:8:733 84249722549089334231295:8:733 84249722549089334231296:8:734 84249722549089334231297:8:734 85172366198106312890624:8:734 85172366198106312890625:8:735 85172366198106312890626:8:735 86103838899054686765055:8:735 86103838899054686765056:8:736 86103838899054686765057:8:736 87044212971310378878720:8:736 87044212971310378878721:8:737 87044212971310378878722:8:737 87993561227221187133695:8:737 87993561227221187133696:8:738 87993561227221187133697:8:738 88951956974791439582880:8:738 88951956974791439582881:8:739 88951956974791439582882:8:739 89919474020377599999999:8:739 89919474020377600000000:8:740 89919474020377600000001:8:740 90896186671394853482720:8:740 90896186671394853482721:8:741 90896186671394853482722:8:741 91882169739034701865215:8:741 91882169739034701865216:8:742 91882169739034701865217:8:742 92877498540993598756800:8:742 92877498540993598756801:8:743 92877498540993598756802:8:743 93882248904212654063615:8:743 93882248904212654063616:8:744 93882248904212654063617:8:744 94896497167628437890624:8:744 94896497167628437890625:8:745 94896497167628437890626:8:745 95920320184934913761535:8:745 95920320184934913761536:8:746 95920320184934913761537:8:746 96953795327356531134560:8:746 96953795327356531134561:8:747 96953795327356531134562:8:747 97997000486432507232255:8:747 97997000486432507232256:8:748 97997000486432507232257:8:748 99050014076812328244000:8:748 99050014076812328244001:8:749 99050014076812328244002:8:749 100112915039062499999999:8:749 100112915039062500000000:8:750 100112915039062500000001:8:750 101185782842484578256000:8:750 101185782842484578256001:8:751 101185782842484578256002:8:751 102268697487944508768255:8:751 102268697487944508768256:8:752 102268697487944508768257:8:752 103361739510713307378560:8:752 103361739510713307378561:8:753 103361739510713307378562:8:753 104464989983319110369535:8:753 104464989983319110369536:8:754 104464989983319110369537:8:754 105578530518410625390624:8:754 105578530518410625390625:8:755 105578530518410625390626:8:755 106702443271632013295615:8:755 106702443271632013295616:8:756 106702443271632013295617:8:756 107836810944509231272800:8:756 107836810944509231272801:8:757 107836810944509231272802:8:757 108981716787347867689215:8:757 108981716787347867689216:8:758 108981716787347867689217:8:758 110137244602142499110720:8:758 110137244602142499110721:8:759 110137244602142499110722:8:759 111303478745497599999999:8:759 111303478745497600000000:8:760 111303478745497600000001:8:760 112480504131560035634880:8:760 112480504131560035634881:8:761 112480504131560035634882:8:761 113668406234963168829695:8:761 113668406234963168829696:8:762 113668406234963168829697:8:762 114867271093782611082720:8:762 114867271093782611082721:8:763 114867271093782611082722:8:763 116077185312503648813055:8:763 116077185312503648813056:8:764 116077185312503648813057:8:764 117298236065000375390624:8:764 117298236065000375390625:8:765 117298236065000375390626:8:765 118530511097526559703295:8:765 118530511097526559703296:8:766 118530511097526559703297:8:766 119774098731718282045440:8:766 119774098731718282045441:8:767 119774098731718282045442:8:767 121029087867608368152575:8:767 121029087867608368152576:8:768 121029087867608368152577:8:768 122295567986652652247040:8:768 122295567986652652247041:8:769 122295567986652652247042:8:769 123573629154768099999999:8:769 123573629154768100000000:8:770 123573629154768100000001:8:770 124863362025382822355360:8:770 124863362025382822355361:8:771 124863362025382822355362:8:771 126164857842498011201535:8:771 126164857842498011201536:8:772 126164857842498011201537:8:772 127478208443761827917280:8:772 127478208443761827917281:8:773 127478208443761827917282:8:773 128803506263555275858175:8:773 128803506263555275858176:8:774 128803506263555275858177:8:774 130140844336090087890624:8:774 130140844336090087890625:8:775 130140844336090087890626:8:775 131490316298518660120575:8:775 131490316298518660120576:8:776 131490316298518660120577:8:776 132852016394056063004480:8:776 132852016394056063004481:8:777 132852016394056063004482:8:777 134226039475114161070335:8:777 134226039475114161070336:8:778 134226039475114161070337:8:778 135612481006447872516960:8:778 135612481006447872516961:8:779 135612481006447872516962:8:779 137011437068313599999999:8:779 137011437068313600000000:8:780 137011437068313600000001:8:780 138423004359639863953440:8:780 138423004359639863953441:8:781 138423004359639863953442:8:781 139847280201210169835775:8:781 139847280201210169835776:8:782 139847280201210169835777:8:782 141284362538858140730240:8:782 141284362538858140730241:8:783 141284362538858140730242:8:783 142734349946674946768895:8:783 142734349946674946768896:8:784 142734349946674946768897:8:784 144197341630229062890624:8:784 144197341630229062890625:8:785 144197341630229062890626:8:785 145673437429798386483455:8:785 145673437429798386483456:8:786 145673437429798386483457:8:786 147162737823614746501920:8:786 147162737823614746501921:8:787 147162737823614746501922:8:787 148665343931120835690495:8:787 148665343931120835690496:8:788 148665343931120835690497:8:788 150181357516239597584480:8:788 150181357516239597584481:8:789 150181357516239597584482:8:789 151710880990656099999999:8:789 151710880990656100000000:8:790 151710880990656100000001:8:790 153254017417111926765120:8:790 153254017417111926765121:8:791 153254017417111926765122:8:791 154810870512712119484415:8:791 154810870512712119484416:8:792 154810870512712119484417:8:792 156381544652244701169600:8:792 156381544652244701169601:8:793 156381544652244701169602:8:793 157966144871512813609215:8:793 157966144871512813609216:8:794 157966144871512813609217:8:794 159564776870679500390624:8:794 159564776870679500390625:8:795 159564776870679500390626:8:795 161177547017625167527935:8:795 161177547017625167527936:8:796 161177547017625167527937:8:796 162804562351317753689760:8:796 162804562351317753689761:8:797 162804562351317753689762:8:797 164445930585195642061055:8:797 164445930585195642061056:8:798 164445930585195642061057:8:798 166101760110563345913600:8:798 166101760110563345913601:8:799 166101760110563345913602:8:799 167772159999999999999999:8:799 167772160000000000000000:8:800 167772160000000000000001:8:800 169457240010780689926400:8:800 169457240010780689926401:8:801 169457240010780689926402:8:801 171157110588310651699455:8:801 171157110588310651699456:8:802 171157110588310651699457:8:802 172871882869572373683360:8:802 172871882869572373683361:8:803 172871882869572373683362:8:803 174601668686585633243135:8:803 174601668686585633243136:8:804 174601668686585633243137:8:804 176346580569880500390624:8:804 176346580569880500390625:8:805 176346580569880500390626:8:805 178106731751983340790015:8:805 178106731751983340790016:8:806 178106731751983340790017:8:806 179882236170915850520000:8:806 179882236170915850520001:8:807 179882236170915850520002:8:807 181673208473707155030015:8:807 181673208473707155030016:8:808 181673208473707155030017:8:808 183479764019919004768320:8:808 183479764019919004768321:8:809 183479764019919004768322:8:809 185302018885184099999999:8:809 185302018885184100000000:8:810 185302018885184100000001:8:810 187140089864757577373280:8:810 187140089864757577373281:8:811 187140089864757577373282:8:811 188994094477081690832895:8:811 188994094477081690832896:8:812 188994094477081690832897:8:812 190864150967363719519520:8:812 190864150967363719519521:8:813 190864150967363719519522:8:813 192750378311167135334655:8:813 192750378311167135334656:8:814 192750378311167135334657:8:814 194652896218016062890624:8:814 194652896218016062890625:8:815 194652896218016062890626:8:815 196571825135013064605695:8:815 196571825135013064605696:8:816 196571825135013064605697:8:816 198507286250470283744640:8:816 198507286250470283744641:8:817 198507286250470283744642:8:817 200459401497553978245375:8:817 200459401497553978245376:8:818 200459401497553978245377:8:818 202428293557942478212640:8:818 202428293557942478212641:8:819 202428293557942478212642:8:819 204414085865497599999999:8:819 204414085865497600000000:8:820 204414085865497600000001:8:820 206416902609949549841760:8:820 206416902609949549841761:8:821 206416902609949549841762:8:821 208436868740595350036735:8:821 208436868740595350036736:8:822 208436868740595350036737:8:822 210474109970010820726080:8:822 210474109970010820726081:8:823 210474109970010820726082:8:823 212528752777776150347775:8:823 212528752777776150347776:8:824 212528752777776150347777:8:824 214600924414215087890624:8:824 214600924414215087890625:8:825 214600924414215087890626:8:825 216690752904147790110975:8:825 216690752904147790110976:8:826 216690752904147790110977:8:826 218798367050657356915680:8:826 218798367050657356915681:8:827 218798367050657356915682:8:827 220923896438870088155135:8:827 220923896438870088155136:8:828 220923896438870088155137:8:828 223067471439749495110560:8:828 223067471439749495110561:8:829 223067471439749495110562:8:829 225229223213904099999999:8:829 225229223213904100000000:8:830 225229223213904100000001:8:830 227409283715409056867840:8:830 227409283715409056867841:8:831 227409283715409056867842:8:831 229607785695641627262975:8:831 229607785695641627262976:8:832 229607785695641627262977:8:832 231824862707130544151040:8:832 231824862707130544151041:8:833 231824862707130544151042:8:833 234060649107419297546495:8:833 234060649107419297546496:8:834 234060649107419297546497:8:834 236315280062943375390624:8:834 236315280062943375390625:8:835 236315280062943375390626:8:835 238588891552921493241855:8:835 238588891552921493241856:8:836 238588891552921493241857:8:836 240881620373260846385120:8:836 240881620373260846385121:8:837 240881620373260846385122:8:837 243193604140476418007295:8:837 243193604140476418007296:8:838 243193604140476418007297:8:838 245524981295624377126080:8:838 245524981295624377126081:8:839 245524981295624377126082:8:839 247875891108249599999999:8:839 247875891108249600000000:8:840 247875891108249600000001:8:840 250246473680347348787520:8:840 250246473680347348787521:8:841 250246473680347348787522:8:841 252636869950339141263615:8:841 252636869950339141263616:8:842 252636869950339141263617:8:842 255047221697062845442400:8:842 255047221697062845442401:8:843 255047221697062845442402:8:843 257477671543777032994815:8:843 257477671543777032994816:8:844 257477671543777032994817:8:844 259928362962179625390624:8:844 259928362962179625390625:8:845 259928362962179625390626:8:845 262399440276440866734335:8:845 262399440276440866734336:8:846 262399440276440866734337:8:846 264891048667250657304960:8:846 264891048667250657304961:8:847 264891048667250657304962:8:847 267403334175880281849855:8:847 267403334175880281849856:8:848 267403334175880281849857:8:848 269936443708258566723200:8:848 269936443708258566723201:8:849 269936443708258566723202:8:849 272490525039062499999999:8:849 272490525039062500000000:8:850 272490525039062500000001:8:850 275065726815822348736800:8:850 275065726815822348736801:8:851 275065726815822348736802:8:851 277662198563041307590655:8:851 277662198563041307590656:8:852 277662198563041307590657:8:852 280280090686329713048160:8:852 280280090686329713048161:8:853 280280090686329713048162:8:853 282919554476553857556735:8:853 282919554476553857556736:8:854 282919554476553857556737:8:854 285580742113999437890624:8:854 285580742113999437890625:8:855 285580742113999437890626:8:855 288263806672549672124415:8:855 288263806672549672124416:8:856 288263806672549672124417:8:856 290968902123878119627200:8:856 290968902123878119627201:8:857 290968902123878119627202:8:857 293696183341656238530815:8:857 293696183341656238530816:8:858 293696183341656238530817:8:858 296445806105775715165920:8:858 296445806105775715165921:8:859 296445806105775715165922:8:859 299217927106585599999999:8:859 299217927106585600000000:8:860 299217927106585600000001:8:860 302012703949144284651680:8:860 302012703949144284651681:8:861 302012703949144284651682:8:861 304830295157486354596095:8:861 304830295157486354596096:8:862 304830295157486354596097:8:862 307670860178904352216320:8:862 307670860178904352216321:8:863 307670860178904352216322:8:863 310534559388245484896255:8:863 310534559388245484896256:8:864 310534559388245484896257:8:864 313421554092223312890624:8:864 313421554092223312890625:8:865 313421554092223312890626:8:865 316332006533744451748095:8:865 316332006533744451748096:8:866 316332006533744451748097:8:866 319266079896250324103840:8:866 319266079896250324103841:8:867 319266079896250324103842:8:867 322223938308073995698175:8:867 322223938308073995698176:8:868 322223938308073995698177:8:868 325205746846812130518240:8:868 325205746846812130518241:8:869 325205746846812130518242:8:869 328211671543712099999999:8:869 328211671543712100000000:8:870 328211671543712100000001:8:870 331241879388074281268160:8:870 331241879388074281268161:8:871 331241879388074281268162:8:871 334296538331669579431935:8:871 334296538331669579431936:8:872 334296538331669579431937:8:872 337375817293172208994880:8:872 337375817293172208994881:8:873 337375817293172208994882:8:873 340479886162607769477375:8:873 340479886162607769477376:8:874 340479886162607769477377:8:874 343608915805816650390624:8:874 343608915805816650390625:8:875 343608915805816650390626:8:875 346763078068932800741375:8:875 346763078068932800741376:8:876 346763078068932800741377:8:876 349942545782877898286880:8:876 349942545782877898286881:8:877 349942545782877898286882:8:877 353147492767870953799935:8:877 353147492767870953799936:8:878 353147492767870953799937:8:878 356378093837953385644160:8:878 356378093837953385644161:8:879 356378093837953385644162:8:879 359634524805529599999999:8:879 359634524805529600000000:8:880 359634524805529600000001:8:880 362916962485923112122240:8:880 362916962485923112122241:8:881 362916962485923112122242:8:881 366225584701948244050175:8:881 366225584701948244050176:8:882 366225584701948244050177:8:882 369560570288497434231840:8:882 369560570288497434231841:8:883 369560570288497434231842:8:883 372922099097144194564095:8:883 372922099097144194564096:8:884 372922099097144194564097:8:884 376310352000761750390624:8:884 376310352000761750390625:8:885 376310352000761750390626:8:885 379725510898157399040255:8:885 379725510898157399040256:8:886 379725510898157399040257:8:886 383167758718722622528320:8:886 383167758718722622528321:8:887 383167758718722622528322:8:887 386637279427098990084095:8:887 386637279427098990084096:8:888 386637279427098990084097:8:888 390134258027859886207680:8:888 390134258027859886207681:8:889 390134258027859886207682:8:889 393658880570208099999999:8:889 393658880570208100000000:8:890 393658880570208100000001:8:890 397211334152689311549920:8:890 397211334152689311549921:8:891 397211334152689311549922:8:891 400791806927921511202815:8:891 400791806927921511202816:8:892 400791806927921511202817:8:892 404400488107340387575200:8:892 404400488107340387575201:8:893 404400488107340387575202:8:893 408037567965960720220415:8:893 408037567965960720220416:8:894 408037567965960720220417:8:894 411703237847153812890624:8:894 411703237847153812890625:8:895 411703237847153812890626:8:895 415397690167441003380735:8:895 415397690167441003380736:8:896 415397690167441003380737:8:896 419121118421303285980160:8:896 419121118421303285980161:8:897 419121118421303285980162:8:897 422873717186007082598655:8:897 422873717186007082598656:8:898 422873717186007082598657:8:898 426655682126446198672800:8:898 426655682126446198672801:8:899 426655682126446198672802:8:899 430467209999999999999999:8:899 430467210000000000000000:8:900 430467210000000000000001:8:900 434308498661407846687200:8:900 434308498661407846687201:8:901 434308498661407846687202:8:901 438179747067659820441855:8:901 438179747067659820441856:8:902 438179747067659820441857:8:902 442081155282903781472960:8:902 442081155282903781472961:8:903 442081155282903781472962:8:903 446012924483368791310335:8:903 446012924483368791310336:8:904 446012924483368791310337:8:904 449975256962304937890624:8:904 449975256962304937890625:8:905 449975256962304937890626:8:905 453968356134939599298815:8:905 453968356134939599298816:8:906 453968356134939599298817:8:906 457992426543450182594400:8:906 457992426543450182594401:8:907 457992426543450182594402:8:907 462047673861953374191615:8:907 462047673861953374191616:8:908 462047673861953374191617:8:908 466134304901510938303520:8:908 466134304901510938303521:8:909 466134304901510938303522:8:909 470252527615152099999999:8:909 470252527615152100000000:8:910 470252527615152100000001:8:910 474402551102912549470080:8:910 474402551102912549470081:8:911 474402551102912549470082:8:911 478584585616890104119295:8:911 478584585616890104119296:8:912 478584585616890104119297:8:912 482798842566317065173120:8:912 482798842566317065173121:8:913 482798842566317065173122:8:913 487045534522649305497855:8:913 487045534522649305497856:8:914 487045534522649305497857:8:914 491324875224672125390624:8:914 491324875224672125390625:8:915 491324875224672125390626:8:915 495637079583622913130495:8:915 495637079583622913130496:8:916 495637079583622913130497:8:916 499982363688330647123040:8:916 499982363688330647123041:8:917 499982363688330647123042:8:917 504360944810372276510975:8:917 504360944810372276510976:8:918 504360944810372276510977:8:918 508773041409246017163840:8:918 508773041409246017163841:8:919 508773041409246017163842:8:919 513218873137561599999999:8:919 513218873137561600000000:8:920 513218873137561600000001:8:920 517698660846247508634560:8:920 517698660846247508634561:8:921 517698660846247508634562:8:921 522212626589775243387135:8:921 522212626589775243387136:8:922 522212626589775243387137:8:922 526760993631400648723680:8:922 526760993631400648723681:8:923 526760993631400648723682:8:923 531343986448422341246975:8:923 531343986448422341246976:8:924 531343986448422341246977:8:924 535961830737457275390624:8:924 535961830737457275390625:8:925 535961830737457275390626:8:925 540614753419733484011775:8:925 540614753419733484011776:8:926 540614753419733484011777:8:926 545302982646400031118080:8:926 545302982646400031118081:8:927 545302982646400031118082:8:927 550026747803854214004735:8:927 550026747803854214004736:8:928 550026747803854214004737:8:928 554786279519086052117760:8:928 554786279519086052117761:8:929 554786279519086052117762:8:929 559581809665040099999999:8:929 559581809665040100000000:8:930 559581809665040100000001:8:930 564413571365994621716640:8:930 564413571365994621716641:8:931 564413571365994621716642:8:931 569281799002958164197375:8:931 569281799002958164197376:8:932 569281799002958164197377:8:932 574186728219083566972640:8:932 574186728219083566972641:8:933 574186728219083566972642:8:933 579128595925099445821695:8:933 579128595925099445821696:8:934 579128595925099445821697:8:934 584107640304759187890624:8:934 584107640304759187890625:8:935 584107640304759187890626:8:935 589124100820307495878655:8:935 589124100820307495878656:8:936 589124100820307495878657:8:936 594178218217964518931520:8:936 594178218217964518931521:8:937 594178218217964518931522:8:937 599270234533427607920895:8:937 599270234533427607920896:8:938 599270234533427607920897:8:938 604400393097390732829280:8:938 604400393097390732829281:8:939 604400393097390732829282:8:939 609568938541081599999999:8:939 609568938541081600000000:8:940 609568938541081600000001:8:940 614776116801816507052320:8:940 614776116801816507052321:8:941 614776116801816507052322:8:941 620022175128572973302015:8:941 620022175128572973302016:8:942 620022175128572973302017:8:942 625307362087580183568000:8:942 625307362087580183568001:8:943 625307362087580183568002:8:943 630631927567927283286015:8:943 630631927567927283286016:8:944 630631927567927283286017:8:944 635996122787189562890624:8:944 635996122787189562890625:8:945 635996122787189562890626:8:945 641400200297072569467135:8:945 641400200297072569467136:8:946 641400200297072569467137:8:946 646844413989074183715360:8:946 646844413989074183715361:8:947 646844413989074183715362:8:947 652329019100164700307455:8:947 652329019100164700307456:8:948 652329019100164700307457:8:948 657854272218484949762400:8:948 657854272218484949762401:8:949 657854272218484949762402:8:949 663420431289062499999999:8:949 663420431289062500000000:8:950 663420431289062500000001:8:950 669027755619545975777600:8:950 669027755619545975777601:8:951 669027755619545975777602:8:951 674676505885957534253055:8:951 674676505885957534253056:8:952 674676505885957534253057:8:952 680366944138463534957760:8:952 680366944138463534957761:8:953 680366944138463534957762:8:953 686099333807163442503935:8:953 686099333807163442503936:8:954 686099333807163442503937:8:954 691873939707897000390624:8:954 691873939707897000390625:8:955 691873939707897000390626:8:955 697691028048069714313215:8:955 697691028048069714313216:8:956 697691028048069714313217:8:956 703550866432496683421600:8:956 703550866432496683421601:8:957 703550866432496683421602:8:957 709453723869264818012415:8:957 709453723869264818012416:8:958 709453723869264818012417:8:958 715399870775613482181120:8:958 715399870775613482181121:8:959 715399870775613482181122:8:959 721389578983833599999999:8:959 721389578983833600000000:8:960 721389578983833600000001:8:960 727423121747185263828480:8:960 727423121747185263828481:8:961 727423121747185263828482:8:961 733500773745833883402495:8:961 733500773745833883402496:8:962 733500773745833883402497:8:962 739622811092804914389920:8:962 739622811092804914389921:8:963 739622811092804914389922:8:963 745789511339957205139455:8:963 745789511339957205139456:8:964 745789511339957205139457:8:964 752001153483975000390624:8:964 752001153483975000390625:8:965 752001153483975000390626:8:965 758258017972378640752895:8:965 758258017972378640752896:8:966 758258017972378640752897:8:966 764560386709553996802240:8:966 764560386709553996802241:8:967 764560386709553996802242:8:967 770908543062800676683775:8:967 770908543062800676683776:8:968 770908543062800676683777:8:968 777302771868399046149440:8:968 777302771868399046149441:8:969 777302771868399046149442:8:969 783743359437696099999999:8:969 783743359437696100000000:8:970 783743359437696100000001:8:970 790230593563210223940960:8:970 790230593563210223940961:8:971 790230593563210223940962:8:971 796764763524754885902335:8:971 796764763524754885902336:8:972 796764763524754885902337:8:972 803346160095581295912480:8:972 803346160095581295912481:8:973 803346160095581295912482:8:973 809975075548540073656575:8:973 809975075548540073656576:8:974 809975075548540073656577:8:974 816651803662261962890624:8:974 816651803662261962890625:8:975 816651803662261962890626:8:975 823376639727357631922175:8:975 823376639727357631922176:8:976 823376639727357631922177:8:976 830149880552636599409280:8:976 830149880552636599409281:8:977 830149880552636599409282:8:977 836971824471345324769535:8:977 836971824471345324769536:8:978 836971824471345324769537:8:978 843842771347424502531360:8:978 843842771347424502531361:8:979 843842771347424502531362:8:979 850763022581785599999999:8:979 850763022581785600000000:8:980 850763022581785600000001:8:980 857732881118606677651040:8:980 857732881118606677651041:8:981 857732881118606677651042:8:981 864752651451647531704575:8:981 864752651451647531704576:8:982 864752651451647531704577:8:982 871822639630584198373440:8:982 871822639630584198373441:8:983 871822639630584198373442:8:983 878943153267362859319295:8:983 878943153267362859319296:8:984 878943153267362859319297:8:984 886114501542573187890624:8:984 886114501542573187890625:8:985 886114501542573187890626:8:985 893336995211841175757055:8:985 893336995211841175757056:8:986 893336995211841175757057:8:986 900610946612241479594720:8:986 900610946612241479594721:8:987 900610946612241479594722:8:987 907936669668729327517695:8:987 907936669668729327517696:8:988 907936669668729327517697:8:988 915314479900592024990880:8:988 915314479900592024990881:8:989 915314479900592024990882:8:989 922744694427920099999999:8:989 922744694427920100000000:8:990 922744694427920100000001:8:990 930227631978098127294720:8:990 930227631978098127294721:8:991 930227631978098127294722:8:991 937763612892315271561215:8:991 937763612892315271561216:8:992 937763612892315271561217:8:992 945352959132095589420800:8:992 945352959132095589420801:8:993 945352959132095589420802:8:993 952995994285848130191615:8:993 952995994285848130191616:8:994 952995994285848130191617:8:994 960693043575436875390624:8:994 960693043575436875390625:8:995 960693043575436875390626:8:995 968444433862770556993535:8:995 968444433862770556993536:8:996 968444433862770556993537:8:996 976250493656412394510560:8:996 976250493656412394510561:8:997 976250493656412394510562:8:997 984111553118209790976255:8:997 984111553118209790976256:8:998 984111553118209790976257:8:998 992027944069944027992000:8:998 992027944069944027992001:8:999 992027944069944027992002:8:999 0:16:0 1:16:1 2:16:1 65535:16:1 65536:16:2 65537:16:2 43046720:16:2 43046721:16:3 43046722:16:3 4294967295:16:3 4294967296:16:4 4294967297:16:4 152587890624:16:4 152587890625:16:5 152587890626:16:5 2821109907455:16:5 2821109907456:16:6 2821109907457:16:6 33232930569600:16:6 33232930569601:16:7 33232930569602:16:7 281474976710655:16:7 281474976710656:16:8 281474976710657:16:8 1853020188851840:16:8 1853020188851841:16:9 1853020188851842:16:9 45949729863572160:16:10 45949729863572161:16:11 45949729863572162:16:11 184884258895036415:16:11 184884258895036416:16:12 184884258895036417:16:12 665416609183179840:16:12 665416609183179841:16:13 665416609183179842:16:13 2177953337809371135:16:13 2177953337809371136:16:14 2177953337809371137:16:14 6568408355712890624:16:14 6568408355712890625:16:15 6568408355712890626:16:15 18446744073709551615:16:15 18446744073709551616:16:16 18446744073709551617:16:16 48661191875666868480:16:16 48661191875666868481:16:17 48661191875666868482:16:17 121439531096594251775:16:17 121439531096594251776:16:18 121439531096594251777:16:18 288441413567621167680:16:18 288441413567621167681:16:19 288441413567621167682:16:19 655359999999999999999:16:19 655360000000000000000:16:20 655360000000000000001:16:20 1430568690241985328320:16:20 1430568690241985328321:16:21 1430568690241985328322:16:21 3011361496339065143295:16:21 3011361496339065143296:16:22 3011361496339065143297:16:22 6132610415680998648960:16:22 6132610415680998648961:16:23 6132610415680998648962:16:23 12116574790945106558975:16:23 12116574790945106558976:16:24 12116574790945106558977:16:24 23283064365386962890624:16:24 23283064365386962890625:16:25 23283064365386962890626:16:25 43608742899428874059775:16:25 43608742899428874059776:16:26 43608742899428874059777:16:26 79766443076872509863360:16:26 79766443076872509863361:16:27 79766443076872509863362:16:27 142734349946674946768895:16:27 142734349946674946768896:16:28 142734349946674946768897:16:28 250246473680347348787520:16:28 250246473680347348787521:16:29 250246473680347348787522:16:29 430467209999999999999999:16:29 430467210000000000000000:16:30 430467210000000000000001:16:30 727423121747185263828480:16:30 727423121747185263828481:16:31 727423121747185263828482:16:31 1208925819614629174706175:16:31 1208925819614629174706176:16:32 1208925819614629174706177:16:32 1977985201462558877934080:16:32 1977985201462558877934081:16:33 1977985201462558877934082:16:33 3189059870763703892770815:16:33 3189059870763703892770816:16:34 3189059870763703892770817:16:34 5070942774902496337890624:16:34 5070942774902496337890625:16:35 5070942774902496337890626:16:35 7958661109946400884391935:16:35 7958661109946400884391936:16:36 7958661109946400884391937:16:36 12337511914217166362274240:16:36 12337511914217166362274241:16:37 12337511914217166362274242:16:37 18903296479567620845142015:16:37 18903296479567620845142016:16:38 18903296479567620845142017:16:38 28644003124274380508351360:16:38 28644003124274380508351361:16:39 28644003124274380508351362:16:39 42949672959999999999999999:16:39 42949672960000000000000000:16:40 42949672960000000000000001:16:40 63759030914653054346432640:16:40 63759030914653054346432641:16:41 63759030914653054346432642:16:41 93753749683698750476845055:16:41 93753749683698750476845056:16:42 93753749683698750476845057:16:42 136614025729312093462315200:16:42 136614025729312093462315201:16:43 136614025729312093462315202:16:43 197352587024076973231046655:16:43 197352587024076973231046656:16:44 197352587024076973231046657:16:44 282748441902441558837890624:16:44 282748441902441558837890625:16:45 282748441902441558837890626:16:45 401906756202069927458308095:16:45 401906756202069927458308096:16:46 401906756202069927458308097:16:46 566977372488557307219621120:16:46 566977372488557307219621121:16:47 566977372488557307219621122:16:47 794071845499378503449051135:16:47 794071845499378503449051136:16:48 794071845499378503449051137:16:48 1104427674243920646305299200:16:48 1104427674243920646305299201:16:49 1104427674243920646305299202:16:49 1525878906249999999999999999:16:49 1525878906250000000000000000:16:50 1525878906250000000000000001:16:50 2094704750199298376445300800:16:50 2094704750199298376445300801:16:51 2094704750199298376445300802:16:51 2857942574656970690381479935:16:51 2857942574656970690381479936:16:52 2857942574656970690381479937:16:52 3876269050118516845397872320:16:52 3876269050118516845397872321:16:53 3876269050118516845397872322:16:53 5227573613485916806405226495:16:53 5227573613485916806405226496:16:54 5227573613485916806405226497:16:54 7011372354671045074462890624:16:54 7011372354671045074462890625:16:55 7011372354671045074462890626:16:55 9354238358105289311446368255:16:55 9354238358105289311446368256:16:56 9354238358105289311446368257:16:56 12416457054691003038858224000:16:56 12416457054691003038858224001:16:57 12416457054691003038858224002:16:57 16400152899115243850138976255:16:57 16400152899115243850138976256:16:58 16400152899115243850138976257:16:58 21559177407076402401757871040:16:58 21559177407076402401757871041:16:59 21559177407076402401757871042:16:59 28211099074559999999999999999:16:59 28211099074560000000000000000:16:60 28211099074560000000000000001:16:60 36751693856637464631913392960:16:60 36751693856637464631913392961:16:61 36751693856637464631913392962:16:61 47672401706823533450263330815:16:61 47672401706823533450263330816:16:62 47672401706823533450263330817:16:62 61581291280182164914327485440:16:62 61581291280182164914327485441:16:63 61581291280182164914327485442:16:63 79228162514264337593543950335:16:63 79228162514264337593543950336:16:64 79228162514264337593543950337:16:64 101534516782101416168212890624:16:64 101534516782101416168212890625:16:65 101534516782101416168212890626:16:65 129629238163050258624287932415:16:65 129629238163050258624287932416:16:66 129629238163050258624287932417:16:66 164890958756244164895763202880:16:66 164890958756244164895763202881:16:67 164890958756244164895763202882:16:67 208998227690370098316628197375:16:67 208998227690370098316628197376:16:68 208998227690370098316628197377:16:68 263988769565513973843201106880:16:68 263988769565513973843201106881:16:69 263988769565513973843201106882:16:69 332329305696009999999999999999:16:69 332329305696010000000000000000:16:70 332329305696010000000000000001:16:70 416997623116370028124580469120:16:70 416997623116370028124580469121:16:71 416997623116370028124580469122:16:71 521578814501447328359509917695:16:71 521578814501447328359509917696:16:72 521578814501447328359509917697:16:72 650377879817809571042122834560:16:72 650377879817809571042122834561:16:73 650377879817809571042122834562:16:73 808551180810136214718004658175:16:73 808551180810136214718004658176:16:74 808551180810136214718004658177:16:74 1002259575761854648590087890624:16:74 1002259575761854648590087890625:16:75 1002259575761854648590087890626:16:75 1238846438084943599707227160575:16:75 1238846438084943599707227160576:16:76 1238846438084943599707227160577:16:76 1527044182248015256482296477760:16:76 1527044182248015256482296477761:16:77 1527044182248015256482296477762:16:77 1877213388752445800995314794495:16:77 1877213388752445800995314794496:16:78 1877213388752445800995314794497:16:78 2301619141096101839813550846720:16:78 2301619141096101839813550846721:16:79 2301619141096101839813550846722:16:79 2814749767106559999999999999999:16:79 2814749767106560000000000000000:16:80 2814749767106560000000000000001:16:80 3433683820292512484657849089280:16:80 3433683820292512484657849089281:16:81 3433683820292512484657849089282:16:81 4178511850022702569647809560575:16:81 4178511850022702569647809560576:16:82 4178511850022702569647809560577:16:82 5072820298953863752478356399680:16:82 5072820298953863752478356399681:16:83 5072820298953863752478356399682:16:83 6144245739270881311250517590015:16:83 6144245739270881311250517590016:16:84 6144245739270881311250517590017:16:84 7425108623606394726715087890624:16:84 7425108623606394726715087890625:16:85 7425108623606394726715087890626:16:85 8953136790196197357146289012735:16:85 8953136790196197357146289012736:16:86 8953136790196197357146289012737:16:86 10772290133751755506346104768640:16:86 10772290133751755506346104768641:16:87 10772290133751755506346104768642:16:87 12933699143209908517669873647615:16:87 12933699143209908517669873647616:16:88 12933699143209908517669873647617:16:88 15496731425178936435099327730560:16:88 15496731425178936435099327730561:16:89 15496731425178936435099327730562:16:89 18530201888518409999999999999999:16:89 18530201888518410000000000000000:16:90 18530201888518410000000000000001:16:90 22113743972843938840712550613440:16:90 22113743972843938840712550613441:16:91 22113743972843938840712550613442:16:91 26339361174458854765907679379455:16:91 26339361174458854765907679379456:16:92 26339361174458854765907679379457:16:92 31313180170800116587336013460800:16:92 31313180170800116587336013460801:16:93 31313180170800116587336013460802:16:93 37157429083410091685945089785855:16:93 37157429083410091685945089785856:16:94 37157429083410091685945089785857:16:94 44012666865176569775543212890624:16:94 44012666865176569775543212890625:16:95 44012666865176569775543212890626:16:95 52040292466647269602037015248895:16:95 52040292466647269602037015248896:16:96 52040292466647269602037015248897:16:96 61425365346268570446197767595520:16:96 61425365346268570446197767595521:16:97 61425365346268570446197767595522:16:97 72379772059249583476264088436735:16:97 72379772059249583476264088436736:16:98 72379772059249583476264088436737:16:98 85145777109487563964501441198400:16:98 85145777109487563964501441198401:16:99 85145777109487563964501441198402:16:99 117257864492369852051862561201600:16:100 117257864492369852051862561201601:16:101 117257864492369852051862561201602:16:101 137278570509061218398719233294335:16:101 137278570509061218398719233294336:16:102 137278570509061218398719233294337:16:102 160470643909878751793805444097920:16:102 160470643909878751793805444097921:16:103 160470643909878751793805444097922:16:103 187298124572719231164840669085695:16:103 187298124572719231164840669085696:16:104 187298124572719231164840669085697:16:104 218287458838193562060699462890624:16:104 218287458838193562060699462890625:16:105 218287458838193562060699462890626:16:105 254035168468567119979994960429055:16:105 254035168468567119979994960429056:16:106 254035168468567119979994960429057:16:106 295216374856540727739668685278400:16:106 295216374856540727739668685278401:16:107 295216374856540727739668685278402:16:107 342594264333413043824572923641855:16:107 342594264333413043824572923641856:16:108 342594264333413043824572923641857:16:108 397030588105939686862303733490240:16:108 397030588105939686862303733490241:16:109 397030588105939686862303733490242:16:109 459497298635721609999999999999999:16:109 459497298635721610000000000000000:16:110 459497298635721610000000000000001:16:110 531089433205482293807404177813760:16:110 531089433205482293807404177813761:16:111 531089433205482293807404177813762:16:111 613039365036788240314949190025215:16:111 613039365036788240314949190025216:16:112 613039365036788240314949190025217:16:112 706732552679793116819634555191040:16:112 706732552679793116819634555191041:16:113 706732552679793116819634555191042:16:113 813724929536229575154612568129535:16:113 813724929536229575154612568129536:16:114 813724929536229575154612568129537:16:114 935762087353668006738433837890624:16:114 935762087353668006738433837890625:16:115 935762087353668006738433837890626:16:115 1074800420396416620962707947913215:16:115 1074800420396416620962707947913216:16:116 1074800420396416620962707947913217:16:116 1233030410813767585190839206937280:16:116 1233030410813767585190839206937281:16:117 1233030410813767585190839206937282:16:117 1412902250550159107801603836542975:16:117 1412902250550159107801603836542976:16:118 1412902250550159107801603836542977:16:118 1617154011038069297120003283646080:16:118 1617154011038069297120003283646081:16:119 1617154011038069297120003283646082:16:119 1848842588950364159999999999999999:16:119 1848842588950364160000000000000000:16:120 1848842588950364160000000000000001:16:120 2111377674535255285545615254209920:16:120 2111377674535255285545615254209921:16:121 2111377674535255285545615254209922:16:121 2408559008588592882117076121092095:16:121 2408559008588592882117076121092096:16:122 2408559008588592882117076121092097:16:122 2744617215013444842248723242420160:16:122 2744617215013444842248723242420161:16:123 2744617215013444842248723242420162:16:123 3124258518258387088196457648357375:16:123 3124258518258387088196457648357376:16:124 3124258518258387088196457648357377:16:124 3552713678800500929355621337890624:16:124 3552713678800500929355621337890625:16:125 3552713678800500929355621337890626:16:125 4035791505338018359825366085861375:16:125 4035791505338018359825366085861376:16:126 4035791505338018359825366085861377:16:126 4579937329576774398276408998492160:16:126 4579937329576774398276408998492161:16:127 4579937329576774398276408998492162:16:127 5192296858534827628530496329220095:16:127 5192296858534827628530496329220096:16:128 5192296858534827628530496329220097:16:128 5880785850256519209198206471505920:16:128 5880785850256519209198206471505921:16:129 5880785850256519209198206471505922:16:129 6654166091831798409999999999999999:16:129 6654166091831798410000000000000000:16:130 6654166091831798410000000000000001:16:130 7522128193775222200360700096950080:16:130 7522128193775222200360700096950081:16:131 7522128193775222200360700096950082:16:131 8495381752253661749201333938814975:16:131 8495381752253661749201333938814976:16:132 8495381752253661749201333938814977:16:132 9585753470490322141591520062265280:16:132 9585753470490322141591520062265281:16:133 9585753470490322141591520062265282:16:133 10806293873049217590608737264009215:16:133 10806293873049217590608737264009216:16:134 10806293873049217590608737264009217:16:134 12171393291759111002099761962890624:16:134 12171393291759111002099761962890625:16:135 12171393291759111002099761962890626:16:135 13696907849916094763278545543233535:16:135 13696907849916094763278545543233536:16:136 13696907849916094763278545543233537:16:136 15400296222263289476715621650663040:16:136 15400296222263289476715621650663041:16:137 15400296222263289476715621650663042:16:137 17300768002245523789788027740553215:16:137 17300768002245523789788027740553216:16:138 17300768002245523789788027740553217:16:138 19419444565344683427626434801709760:16:138 19419444565344683427626434801709761:16:139 19419444565344683427626434801709762:16:139 21779533378093711359999999999999999:16:139 21779533378093711360000000000000000:16:140 21779533378093711360000000000000001:16:140 24406516766828002096394316121394240:16:140 24406516766828002096394316121394241:16:141 24406516766828002096394316121394242:16:141 27328356228554426163172505624313855:16:141 27328356228554426163172505624313856:16:142 27328356228554426163172505624313857:16:142 30575713438701284209824149144006400:16:142 30575713438701284209824149144006401:16:143 30575713438701284209824149144006402:16:143 34182189187166852111368841966125055:16:143 34182189187166852111368841966125056:16:144 34182189187166852111368841966125057:16:144 38184581555228782468798980712890624:16:144 38184581555228782468798980712890625:16:145 38184581555228782468798980712890626:16:145 42623164731739968047816562085789695:16:145 42623164731739968047816562085789696:16:146 42623164731739968047816562085789697:16:146 47541989957856938007643895526969920:16:146 47541989957856938007643895526969921:16:147 47541989957856938007643895526969922:16:147 52989210185573086967759153278222335:16:147 52989210185573086967759153278222336:16:148 52989210185573086967759153278222337:16:148 59017430136820283047307224487697600:16:148 59017430136820283047307224487697601:16:149 59017430136820283047307224487697602:16:149 65684083557128906249999999999999999:16:149 65684083557128906250000000000000000:16:150 65684083557128906250000000000000001:16:150 73051839571079749953095618267702400:16:150 73051839571079749953095618267702401:16:151 73051839571079749953095618267702402:16:151 81189040166334863750412839195508735:16:151 81189040166334863750412839195508736:16:152 81189040166334863750412839195508737:16:152 90170170959203891606593835341723520:16:152 90170170959203891606593835341723521:16:153 90170170959203891606593835341723522:16:153 100076367527805927848823781966544895:16:153 100076367527805927848823781966544896:16:154 100076367527805927848823781966544897:16:154 110995959739255563938672027587890624:16:154 110995959739255563938672027587890625:16:155 110995959739255563938672027587890626:16:155 123025056645280288014028950372089855:16:155 123025056645280288014028950372089856:16:156 123025056645280288014028950372089857:16:156 136268174676623304796985552851732800:16:156 136268174676623304796985552851732801:16:157 136268174676623304796985552851732802:16:157 150838912030874130174020868290707455:16:157 150838912030874130174020868290707456:16:158 150838912030874130174020868290707457:16:158 166860672321386811577642343795709440:16:158 166860672321386811577642343795709441:16:159 166860672321386811577642343795709442:16:159 184467440737095516159999999999999999:16:159 184467440737095516160000000000000000:16:160 184467440737095516160000000000000001:16:160 203804616154738555813327997176834560:16:160 203804616154738555813327997176834561:16:161 203804616154738555813327997176834562:16:161 225029902846690098194536797915119615:16:161 225029902846690098194536797915119616:16:162 225029902846690098194536797915119617:16:162 248314265639726167358751235626296640:16:162 248314265639726167358751235626296641:16:163 248314265639726167358751235626296642:16:163 273842952603087835604438847361908735:16:163 273842952603087835604438847361908736:16:164 273842952603087835604438847361908737:16:164 301816589578637524098828277587890624:16:164 301816589578637524098828277587890625:16:165 301816589578637524098828277587890626:16:165 332452351112240414882421565009494015:16:165 332452351112240414882421565009494016:16:166 332452351112240414882421565009494017:16:166 365985212604267644604404079038071680:16:166 365985212604267644604404079038071681:16:167 365985212604267644604404079038071682:16:167 402669288768856477614113920779288575:16:167 402669288768856477614113920779288576:16:168 402669288768856477614113920779288577:16:168 442779263776840698304313192148785280:16:168 442779263776840698304313192148785281:16:169 442779263776840698304313192148785282:16:169 486611918756668684809999999999999999:16:169 486611918756668684810000000000000000:16:170 486611918756668684810000000000000001:16:170 534487762641765349023882127126550720:16:170 534487762641765349023882127126550721:16:171 534487762641765349023882127126550722:16:171 586752772682297989997939196738666495:16:171 586752772682297989997939196738666496:16:172 586752772682297989997939196738666497:16:172 643780251284828743866259724717405760:16:172 643780251284828743866259724717405761:16:173 643780251284828743866259724717405762:16:173 705972806205555048863898322117656575:16:173 705972806205555048863898322117656576:16:174 705972806205555048863898322117656577:16:174 773764461502456106245517730712890624:16:174 773764461502456106245517730712890625:16:175 773764461502456106245517730712890626:16:175 847622907049404564614012839370162175:16:175 847622907049404564614012839370162176:16:176 847622907049404564614012839370162177:16:176 928051894831921319872200984255906560:16:176 928051894831921319872200984255906561:16:177 928051894831921319872200984255906562:16:177 1015593790680526778210669542150045695:16:177 1015593790680526778210669542150045696:16:178 1015593790680526778210669542150045697:16:178 1110832290554380967776058484990765120:16:178 1110832290554380967776058484990765121:16:179 1110832290554380967776058484990765122:16:179 1214395310965942517759999999999999999:16:179 1214395310965942517760000000000000000:16:180 1214395310965942517760000000000000001:16:180 1326958063637576800539947579727410880:16:180 1326958063637576800539947579727410881:16:181 1326958063637576800539947579727410882:16:181 1449246325004300375864937717002469375:16:181 1449246325004300375864937717002469376:16:182 1449246325004300375864937717002469377:16:182 1582039911724086938157343522955530880:16:182 1582039911724086938157343522955530881:16:183 1582039911724086938157343522955530882:16:183 1726176373929335505938525675812028415:16:183 1726176373929335505938525675812028416:16:184 1726176373929335505938525675812028417:16:184 1882554918551203363384131011962890624:16:184 1882554918551203363384131011962890625:16:185 1882554918551203363384131011962890626:16:185 2052140575673556440667652978167054335:16:185 2052140575673556440667652978167054336:16:186 2052140575673556440667652978167054337:16:186 2235968621526344925885872579239957440:16:186 2235968621526344925885872579239957441:16:187 2235968621526344925885872579239957442:16:187 2435149272410363768730097404205858815:16:187 2435149272410363768730097404205858816:16:188 2435149272410363768730097404205858817:16:188 2650872664557734482243044168410288960:16:188 2650872664557734482243044168410288961:16:189 2650872664557734482243044168410288962:16:189 2884414135676211676809999999999999999:16:189 2884414135676211676810000000000000000:16:190 2884414135676211676810000000000000001:16:190 3137139824701778779401163099378775040:16:190 3137139824701778779401163099378775041:16:191 3137139824701778779401163099378775042:16:191 3410512607094195460639097831351648255:16:191 3410512607094195460639097831351648256:16:192 3410512607094195460639097831351648257:16:192 3706098383855477888569066794413952000:16:192 3706098383855477888569066794413952001:16:193 3706098383855477888569066794413952002:16:193 4025572743333057032762016897140064255:16:193 4025572743333057032762016897140064256:16:194 4025572743333057032762016897140064257:16:194 4370728015788937455497949371337890624:16:194 4370728015788937455497949371337890625:16:195 4370728015788937455497949371337890626:16:195 4743480741674980702700443299789930495:16:195 4743480741674980702700443299789930496:16:196 4743480741674980702700443299789930497:16:196 5145879575553919815396533817337744320:16:196 5145879575553919815396533817337744321:16:197 5145879575553919815396533817337744322:16:197 5580113648647376991977566450378407935:16:197 5580113648647376991977566450378407936:16:198 5580113648647376991977566450378407937:16:198 6048521414077554721279117147524796800:16:198 6048521414077554721279117147524796801:16:199 6048521414077554721279117147524796802:16:199 6553599999999999999999999999999999999:16:199 6553600000000000000000000000000000000:16:200 6553600000000000000000000000000000001:16:200 7098015097002549574145912676484803200:16:200 7098015097002549574145912676484803201:16:201 7098015097002549574145912676484803202:16:201 7684611407371950624070864810908123135:16:201 7684611407371950624070864810908123136:16:202 7684611407371950624070864810908123137:16:202 8316423685106467472740800483250749120:16:202 8316423685106467472740800483250749121:16:203 8316423685106467472740800483250749122:16:203 8996688396881836008978463673177604095:16:203 8996688396881836008978463673177604096:16:204 8996688396881836008978463673177604097:16:204 9728856035561073966435644683837890624:16:204 9728856035561073966435644683837890625:16:205 9728856035561073966435644683837890626:16:205 10516604119277813877558833584401350655:16:205 10516604119277813877558833584401350656:16:206 10516604119277813877558833584401350657:16:206 11363850910619971253629575794797587200:16:206 11363850910619971253629575794797587201:16:207 11363850910619971253629575794797587202:16:207 12274769891997727533618998089200173055:16:207 12274769891997727533618998089200173056:16:208 12274769891997727533618998089200173057:16:208 13253805034899090666090839852624528640:16:208 13253805034899090666090839852624528641:16:209 13253805034899090666090839852624528642:16:209 14305686902419853283209999999999999999:16:209 14305686902419853283210000000000000000:16:210 14305686902419853283210000000000000001:16:210 15435449626204820650928704794430455360:16:210 15435449626204820650928704794430455361:16:211 15435449626204820650928704794430455362:16:211 16648448800756014775008949726678614015:16:211 16648448800756014775008949726678614016:16:212 16648448800756014775008949726678614017:16:212 17950380339953531133440968696300802240:16:212 17950380339953531133440968696300802241:16:213 17950380339953531133440968696300802242:16:213 19347300342598253133146926958405287935:16:213 19347300342598253133146926958405287936:16:214 19347300342598253133146926958405287937:16:214 20845646015825209573717529449462890624:16:214 20845646015825209573717529449462890625:16:215 20845646015825209573717529449462890626:16:215 22452257707354557240087211123792674815:16:215 22452257707354557240087211123792674816:16:216 22452257707354557240087211123792674817:16:216 24174402099746623140161914541296606080:16:216 24174402099746623140161914541296606081:16:217 24174402099746623140161914541296606082:16:217 26019796622110863318207937478016434175:16:217 26019796622110863318207937478016434176:16:218 26019796622110863318207937478016434177:16:218 27996635137088779435779940907076524480:16:218 27996635137088779435779940907076524481:16:219 27996635137088779435779940907076524482:16:219 30113614963390651432959999999999999999:16:219 30113614963390651432960000000000000000:16:220 30113614963390651432960000000000000001:16:220 32379965296718346628931149666317491520:16:220 32379965296718346628931149666317491521:16:221 32379965296718346628931149666317491522:16:221 34805477094554487606962040197202640895:16:221 34805477094554487606962040197202640896:16:222 34805477094554487606962040197202640897:16:222 37400534493045023051903127879907791360:16:222 37400534493045023051903127879907791361:16:223 37400534493045023051903127879907791362:16:223 40176147827050954117280510117492555775:16:223 40176147827050954117280510117492555776:16:224 40176147827050954117280510117492555777:16:224 43143988327398919500410556793212890624:16:224 43143988327398919500410556793212890625:16:225 43143988327398919500410556793212890626:16:225 46316424572422921703891570209000062975:16:225 46316424572422921703891570209000062976:16:226 46316424572422921703891570209000062977:16:226 49706560774064164446301869372708720960:16:226 49706560774064164446301869372708720961:16:227 49706560774064164446301869372708720962:16:227 53328276982086341437332689264937271295:16:227 53328276982086341437332689264937271296:16:228 53328276982086341437332689264937271297:16:228 57196271293373441589892672200988624320:16:228 57196271293373441589892672200988624321:16:229 57196271293373441589892672200988624322:16:229 61326104156809986489609999999999999999:16:229 61326104156809986489610000000000000000:16:230 61326104156809986489610000000000000001:16:230 65734244867903465549536857917460471680:16:230 65734244867903465549536857917460471681:16:231 65734244867903465549536857917460471682:16:231 70438120351099559671412028074440523775:16:231 70438120351099559671412028074440523776:16:232 70438120351099559671412028074440523777:16:232 75456166331666628614079195878996196480:16:232 75456166331666628614079195878996196481:16:233 75456166331666628614079195878996196482:16:233 80807881003091072463066838265841647615:16:233 80807881003091072463066838265841647616:16:234 80807881003091072463066838265841647617:16:234 86513881300133866458072070465087890624:16:234 86513881300133866458072070465087890625:16:235 86513881300133866458072070465087890626:16:235 92595961892055227288885909031680475135:16:235 92595961892055227288885909031680475136:16:236 92595961892055227288885909031680475137:16:236 99077157015023530086040615318112651840:16:236 99077157015023530086040615318112651841:16:237 99077157015023530086040615318112651842:16:237 105981805267390909456056535197029564415:16:237 105981805267390909456056535197029564416:16:238 105981805267390909456056535197029564417:16:238 113335617496346216833223278514633468160:16:238 113335617496346216833223278514633468161:16:239 113335617496346216833223278514633468162:16:239 121165747909451065589759999999999999999:16:239 121165747909451065589760000000000000000:16:240 121165747909451065589760000000000000001:16:240 129500868549731596531191388009642755840:16:240 129500868549731596531191388009642755841:16:241 129500868549731596531191388009642755842:16:241 138371247278342490393517441299901382655:16:241 138371247278342490393517441299901382656:16:242 138371247278342490393517441299901382657:16:242 147808829414345923316083210206383297600:16:242 147808829414345923316083210206383297601:16:243 147808829414345923316083210206383297602:16:243 157847323186862023122424700671891603455:16:243 157847323186862023122424700671891603456:16:244 157847323186862023122424700671891603457:16:244 168522289160754493149612304840087890624:16:244 168522289160754493149612304840087890625:16:245 168522289160754493149612304840087890626:16:245 179871233803121121181612326415247671295:16:245 179871233803121121181612326415247671296:16:246 179871233803121121181612326415247671297:16:246 191933707364169721870043501973039918720:16:246 191933707364169721870043501973039918721:16:247 191933707364169721870043501973039918722:16:247 204751406252581656212043048442748993535:16:247 204751406252581656212043048442748993536:16:248 204751406252581656212043048442748993537:16:248 218368280092203564824948866475632496000:16:248 218368280092203564824948866475632496001:16:249 218368280092203564824948866475632496002:16:249 232830643653869628906249999999999999999:16:249 232830643653869628906250000000000000000:16:250 232830643653869628906250000000000000001:16:250 248187293863347975401129272743132504000:16:250 248187293863347975401129272743132504001:16:251 248187293863347975401129272743132504002:16:251 264489632093832371229515191803011137535:16:251 264489632093832371229515191803011137536:16:252 264489632093832371229515191803011137537:16:252 281791791959070867609872371490331174720:16:252 281791791959070867609872371490331174721:16:253 281791791959070867609872371490331174722:16:253 300150772831143486965442740125182263295:16:253 300150772831143486965442740125182263296:16:254 300150772831143486965442740125182263297:16:254 319626579315078487616775634918212890624:16:254 319626579315078487616775634918212890625:16:255 319626579315078487616775634918212890626:16:255 340282366920938463463374607431768211455:16:255 340282366920938463463374607431768211456:16:256 340282366920938463463374607431768211457:16:256 362184594182720980613658216570962841600:16:256 362184594182720980613658216570962841601:16:257 362184594182720980613658216570962841602:16:257 385403181482411242894013659316612038655:16:257 385403181482411242894013659316612038656:16:258 385403181482411242894013659316612038657:16:258 410011676846804218365826669073899947840:16:258 410011676846804218365826669073899947841:16:259 410011676846804218365826669073899947842:16:259 436087428994288740597759999999999999999:16:259 436087428994288740597760000000000000000:16:260 436087428994288740597760000000000000001:16:260 463711767918664502541894501412458676160:16:260 463711767918664502541894501412458676161:16:261 463711767918664502541894501412458676162:16:261 492970193307252962122838841553720508415:16:261 492970193307252962122838841553720508416:16:262 492970193307252962122838841553720508417:16:262 523952571101073549161755655108338707840:16:262 523952571101073549161755655108338707841:16:263 523952571101073549161755655108338707842:16:263 556753338515695976395658621014178267135:16:263 556753338515695976395658621014178267136:16:264 556753338515695976395658621014178267137:16:264 591471717852556891692790576324462890624:16:264 591471717852556891692790576324462890625:16:265 591471717852556891692790576324462890626:16:265 628211939442053751871341858800617455615:16:265 628211939442053751871341858800617455616:16:266 628211939442053751871341858800617455617:16:266 667083474071610051798455368105022540480:16:266 667083474071610051798455368105022540481:16:267 667083474071610051798455368105022540482:16:267 708201275264153524018134205334107979775:16:267 708201275264153524018134205334107979776:16:268 708201275264153524018134205334107979777:16:268 751686031785072473881839064198346863680:16:268 751686031785072473881839064198346863681:16:269 751686031785072473881839064198346863682:16:269 797664430768725098633609999999999999999:16:269 797664430768725098633610000000000000000:16:270 797664430768725098633610000000000000001:16:270 846269431868982751779308207631947032320:16:270 846269431868982751779308207631947032321:16:271 846269431868982751779308207631947032322:16:271 897640552852101186406222760721353015295:16:271 897640552852101186406222760721353015296:16:272 897640552852101186406222760721353015297:16:272 951924167064444611817216607455173576960:16:272 951924167064444611817216607455173576961:16:273 951924167064444611817216607455173576962:16:273 1009273813222246939146034980497853054975:16:273 1009273813222246939146034980497853054976:16:274 1009273813222246939146034980497853054977:16:274 1069850517985694133676588535308837890624:16:274 1069850517985694133676588535308837890625:16:275 1069850517985694133676588535308837890626:16:275 1133823131795162647087548186004895563775:16:275 1133823131795162647087548186004895563776:16:276 1133823131795162647087548186004895563777:16:276 1201368678463463241714833837971996935360:16:276 1201368678463463241714833837971996935361:16:277 1201368678463463241714833837971996935362:16:277 1272672719034429173112926031164850896895:16:277 1272672719034429173112926031164850896896:16:278 1272672719034429173112926031164850896897:16:278 1347929730435164965502525504699345083520:16:278 1347929730435164965502525504699345083521:16:279 1347929730435164965502525504699345083522:16:279 1427343499466749467688959999999999999999:16:279 1427343499466749467688960000000000000000:16:280 1427343499466749467688960000000000000001:16:280 1511127532696177362052045537487016132480:16:280 1511127532696177362052045537487016132481:16:281 1511127532696177362052045537487016132482:16:281 1599505482830839945389297901331692978175:16:281 1599505482830839945389297901331692978176:16:282 1599505482830839945389297901331692978177:16:282 1692711592175902223835081059133144262080:16:282 1692711592175902223835081059133144262081:16:283 1692711592175902223835081059133144262082:16:283 1790991153794542873029673328595032866815:16:283 1790991153794542873029673328595032866816:16:284 1790991153794542873029673328595032866817:16:284 1894600991011200414864841308746337890624:16:284 1894600991011200414864841308746337890625:16:285 1894600991011200414864841308746337890626:16:285 2003809955918727361975035438301603495935:16:285 2003809955918727361975035438301603495936:16:286 2003809955918727361975035438301603495937:16:286 2118899447571708697398486116850508746240:16:286 2118899447571708697398486116850508746241:16:287 2118899447571708697398486116850508746242:16:287 2240163950570166819970668427091971670015:16:287 2240163950570166819970668427091971670016:16:288 2240163950570166819970668427091971670017:16:288 2367911594760467245844106297320951247360:16:288 2367911594760467245844106297320951247361:16:289 2367911594760467245844106297320951247362:16:289 2502464736803473487875209999999999999999:16:289 2502464736803473487875210000000000000000:16:290 2502464736803473487875210000000000000001:16:290 2644160564383891543066320812507233336640:16:290 2644160564383891543066320812507233336641:16:291 2644160564383891543066320812507233336642:16:291 2793351723859310545981706212854313517055:16:291 2793351723859310545981706212854313517056:16:292 2793351723859310545981706212854313517057:16:292 2950406972172702977764211681592612043200:16:292 2950406972172702977764211681592612043201:16:293 2950406972172702977764211681592612043202:16:293 3115711853878112289268950337255500742655:16:293 3115711853878112289268950337255500742656:16:294 3115711853878112289268950337255500742657:16:294 3289669404155945190697917334136962890624:16:294 3289669404155945190697917334136962890625:16:295 3289669404155945190697917334136962890626:16:295 3472700878721717827519063869241579012095:16:295 3472700878721717827519063869241579012096:16:296 3472700878721717827519063869241579012097:16:296 3665246511560297618949547443365473493120:16:296 3665246511560297618949547443365473493121:16:297 3665246511560297618949547443365473493122:16:297 3867766301446654069788326264025749979135:16:297 3867766301446654069788326264025749979136:16:298 3867766301446654069788326264025749979137:16:298 4080740828243901147584599232486890795200:16:298 4080740828243901147584599232486890795201:16:299 4080740828243901147584599232486890795202:16:299 4304672099999999999999999999999999999999:16:299 4304672100000000000000000000000000000000:16:300 4304672100000000000000000000000000000001:16:300 4540084431895913419628476460997130804800:16:300 4540084431895913419628476460997130804801:16:301 4540084431895913419628476460997130804802:16:301 4787525358130282492926074438792144551935:16:301 4787525358130282492926074438792144551936:16:302 4787525358130282492926074438792144551937:16:302 5047566577858851650087805202390743000320:16:302 5047566577858851650087805202390743000321:16:303 5047566577858851650087805202390743000322:16:303 5320804936340921630747055829516860522495:16:303 5320804936340921630747055829516860522496:16:304 5320804936340921630747055829516860522497:16:304 5607863442480081883531706689605712890624:16:304 5607863442480081883531706689605712890625:16:305 5607863442480081883531706689605712890626:16:305 5909392323982386240329733592955192672255:16:305 5909392323982386240329733592955192672256:16:306 5909392323982386240329733592955192672257:16:306 6226070121392010397563990173530787496000:16:306 6226070121392010397563990173530787496001:16:307 6226070121392010397563990173530787496002:16:307 6558604822302289287500515374959486304255:16:307 6558604822302289287500515374959486304256:16:308 6558604822302289287500515374959486304257:16:308 6907735037078899772296192480364301967040:16:308 6907735037078899772296192480364301967041:16:309 6907735037078899772296192480364301967042:16:309 7274231217471852638284809999999999999999:16:309 7274231217471852638284810000000000000000:16:310 7274231217471852638284810000000000000001:16:310 7658896919533911468080851313500781496960:16:310 7658896919533911468080851313500781496961:16:311 7658896919533911468080851313500781496962:16:311 8062570112305088955287401291585280802815:16:311 8062570112305088955287401291585280802816:16:312 8062570112305088955287401291585280802817:16:312 8486124533766008412176988613276500013440:16:312 8486124533766008412176988613276500013441:16:313 8486124533766008412176988613276500013442:16:313 8930471095607184903175245191691160846335:16:313 8930471095607184903175245191691160846336:16:314 8930471095607184903175245191691160846337:16:314 9396559338406702410023114843902587890624:16:314 9396559338406702410023114843902587890625:16:315 9396559338406702410023114843902587890626:16:315 9885378938855366995084631624299803836415:16:315 9885378938855366995084631624299803836416:16:316 9885378938855366995084631624299803836417:16:316 10397961270716227885775150417002255874880:16:316 10397961270716227885775150417002255874881:16:317 10397961270716227885775150417002255874882:16:317 10935381021254406083552368642995613925375:16:317 10935381021254406083552368642995613925376:16:318 10935381021254406083552368642995613925377:16:318 11498757864923481361422251754869239802880:16:318 11498757864923481361422251754869239802881:16:319 11498757864923481361422251754869239802882:16:319 12089258196146291747061759999999999999999:16:319 12089258196146291747061760000000000000000:16:320 12089258196146291747061760000000000000001:16:320 12708096923080923732146478527616135173120:16:320 12708096923080923732146478527616135173121:16:321 12708096923080923732146478527616135173122:16:321 13356539324316945993782263622981029789695:16:321 13356539324316945993782263622981029789696:16:322 13356539324316945993782263622981029789697:16:322 14035902970502594415160022110749874762560:16:322 14035902970502594415160022110749874762561:16:323 14035902970502594415160022110749874762562:16:323 14747559712960682275277163588165279154175:16:323 14747559712960682275277163588165279154176:16:324 14747559712960682275277163588165279154177:16:324 15492937741409517847932875156402587890624:16:324 15492937741409517847932875156402587890625:16:325 15492937741409517847932875156402587890626:16:325 16273523712965094104023120978004976664575:16:325 16273523712965094104023120978004976664576:16:326 16273523712965094104023120978004976664577:16:326 17090864954662304143188954232812760549760:16:326 17090864954662304143188954232812760549761:16:327 17090864954662304143188954232812760549762:16:327 17946571741795964394172504300710050922495:16:327 17946571741795964394172504300710050922496:16:328 17946571741795964394172504300710050922497:16:328 18842319654447029138672894090317940142720:16:328 18842319654447029138672894090317940142721:16:329 18842319654447029138672894090317940142722:16:329 19779852014625588779340809999999999999999:16:329 19779852014625588779340810000000000000000:16:330 19779852014625588779340810000000000000001:16:330 20760982406530095374211101648015114393280:16:330 20760982406530095374211101648015114393281:16:331 20760982406530095374211101648015114393282:16:331 21787597282491787829734379684462199832575:16:331 21787597282491787829734379684462199832576:16:332 21787597282491787829734379684462199832577:16:332 22861658657244531971967355376583359727680:16:332 22861658657244531971967355376583359727681:16:333 22861658657244531971967355376583359727682:16:333 23985206893233284356794225723839065686015:16:333 23985206893233284356794225723839065686016:16:334 23985206893233284356794225723839065686017:16:334 25160363579749170668909180127105712890624:16:334 25160363579749170668909180127105712890625:16:335 25160363579749170668909180127105712890626:16:335 26389334508755778116918569912191456116735:16:335 26389334508755778116918569912191456116736:16:336 26389334508755778116918569912191456116737:16:336 27674412750349735277605091919501668240640:16:336 27674412750349735277605091919501668240641:16:337 27674412750349735277605091919501668240642:16:337 29017981830879032004071469360662792175615:16:337 29017981830879032004071469360662792175616:16:338 29017981830879032004071469360662792175617:16:338 30422519016824856637455216019267843626560:16:338 30422519016824856637455216019267843626561:16:339 30422519016824856637455216019267843626562:16:339 31890598707637038927708159999999999999999:16:339 31890598707637038927708160000000000000000:16:340 31890598707637038927708160000000000000001:16:340 33424895940799526594295078383365470517440:16:340 33424895940799526594295078383365470517441:16:341 33424895940799526594295078383365470517442:16:341 35028190012490733913629139083365628051455:16:341 35028190012490733913629139083365628051456:16:342 35028190012490733913629139083365628051457:16:342 36703368217294125441230211032033660188800:16:342 36703368217294125441230211032033660188801:16:343 36703368217294125441230211032033660188802:16:343 38453429710507081072504943197465247481855:16:343 38453429710507081072504943197465247481856:16:344 38453429710507081072504943197465247481857:16:344 40281489496690975012695481396636962890624:16:344 40281489496690975012695481396636962890625:16:345 40281489496690975012695481396636962890626:16:345 42190782548202536558019197319079903952895:16:345 42190782548202536558019197319079903952896:16:346 42190782548202536558019197319079903952897:16:346 44184668057545991390307229178390478467520:16:346 44184668057545991390307229178390478467521:16:347 44184668057545991390307229178390478467522:16:347 46266633827487255682344440438302741364735:16:347 46266633827487255682344440438302741364736:16:348 46266633827487255682344440438302741364737:16:348 48440300802975619860301347588732379694400:16:348 48440300802975619860301347588732379694401:16:349 48440300802975619860301347588732379694402:16:349 50709427749024963378906249999999999999999:16:349 50709427749024963378906250000000000000000:16:350 50709427749024963378906250000000000000001:16:350 53077916078815636198553787096890399705600:16:350 53077916078815636198553787096890399705601:16:351 53077916078815636198553787096890399705602:16:351 55549814836389777546543945440962948366335:16:351 55549814836389777546543945440962948366336:16:352 55549814836389777546543945440962948366337:16:352 58129325838427069615831581900111646225920:16:352 58129325838427069615831581900111646225921:16:353 58129325838427069615831581900111646225922:16:353 60820808979704795619144563704195092381695:16:353 60820808979704795619144563704195092381696:16:354 60820808979704795619144563704195092381697:16:354 63628787706965641498501658496246337890624:16:354 63628787706965641498501658496246337890625:16:355 63628787706965641498501658496246337890626:16:355 66557954666039002936814439114345394733055:16:355 66557954666039002936814439114345394733056:16:356 66557954666039002936814439114345394733057:16:356 69613177527186689411790884870196711550400:16:356 69613177527186689411790884870196711550401:16:357 69613177527186689411790884870196711550402:16:357 72799504993771911104171768872354782969855:16:357 72799504993771911104171768872354782969856:16:358 72799504993771911104171768872354782969857:16:358 76122172999481349716360720369393510586240:16:358 76122172999481349716360720369393510586241:16:359 76122172999481349716360720369393510586242:16:359 79586611099464008843919359999999999999999:16:359 79586611099464008843919360000000000000000:16:360 79586611099464008843919360000000000000001:16:360 83198449060887472631428936505541918917760:16:360 83198449060887472631428936505541918917761:16:361 83198449060887472631428936505541918917762:16:361 86963523658552233200186004585015599497215:16:361 86963523658552233200186004585015599497216:16:362 86963523658552233200186004585015599497217:16:362 90887885681347938940657432621318544719040:16:362 90887885681347938940657432621318544719041:16:363 90887885681347938940657432621318544719042:16:363 94977807155481829432684558221473833025535:16:363 94977807155481829432684558221473833025536:16:364 94977807155481829432684558221473833025537:16:364 99239788790559321753253606347808837890624:16:364 99239788790559321753253606347808837890625:16:365 99239788790559321753253606347808837890626:16:365 103680567654749761579079665120413671817215:16:365 103680567654749761579079665120413671817216:16:366 103680567654749761579079665120413671817217:16:366 108307125085426816189615484100218036609280:16:366 108307125085426816189615484100218036609281:16:367 108307125085426816189615484100218036609282:16:367 113126694841832931717187218690017094270975:16:367 113126694841832931717187218690017094270976:16:368 113126694841832931717187218690017094270977:16:368 118146771506480771373169802022676035342080:16:368 118146771506480771373169802022676035342081:16:369 118146771506480771373169802022676035342082:16:369 123375119142171663622742409999999999999999:16:369 123375119142171663622742410000000000000000:16:370 123375119142171663622742410000000000000001:16:370 128819780211681889243485626648204001913920:16:370 128819780211681889243485626648204001913921:16:371 128819780211681889243485626648204001913922:16:371 134489084767342194895595305577156072964095:16:371 134489084767342194895595305577156072964096:16:372 134489084767342194895595305577156072964097:16:372 140391659917914310433331237045696371348160:16:372 140391659917914310433331237045696371348161:16:373 140391659917914310433331237045696371348162:16:373 146536439580350541062856545353069850853375:16:373 146536439580350541062856545353069850853376:16:374 146536439580350541062856545353069850853377:16:374 152932674524208778166212141513824462890624:16:374 152932674524208778166212141513824462890625:16:375 152932674524208778166212141513824462890626:16:375 159589942716685599947495663482035163365375:16:375 159589942716685599947495663482035163365376:16:376 159589942716685599947495663482035163365377:16:376 166518159976424592031909197511958639564160:16:376 166518159976424592031909197511958639564161:16:377 166518159976424592031909197511958639564162:16:377 173727590944455687028280142620936697348095:16:377 173727590944455687028280142620936697348096:16:378 173727590944455687028280142620936697348097:16:378 181228860380824280385438438477587653801920:16:378 181228860380824280385438438477587653801921:16:379 181228860380824280385438438477587653801922:16:379 189032964795676208451420159999999999999999:16:379 189032964795676208451420160000000000000000:16:380 189032964795676208451420160000000000000001:16:380 197151284423776455602547459039981475254080:16:380 197151284423776455602547459039981475254081:16:381 197151284423776455602547459039981475254082:16:381 205595595551655774086834624880887401086975:16:381 205595595551655774086834624880887401086976:16:382 205595595551655774086834624880887401086977:16:382 214378083206800337599468938843880602593280:16:382 214378083206800337599468938843880602593281:16:383 214378083206800337599468938843880602593282:16:383 223511354218525193708443915475461620105215:16:383 223511354218525193708443915475461620105216:16:384 223511354218525193708443915475461620105217:16:384 233008450660402718579451977197418212890624:16:384 233008450660402718579451977197418212890625:16:385 233008450660402718579451977197418212890626:16:385 242882863684352598905262361438712758337535:16:385 242882863684352598905262361438712758337536:16:386 242882863684352598905262361438712758337537:16:386 253148547756740160829495827679309831135040:16:386 253148547756740160829495827679309831135041:16:387 253148547756740160829495827679309831135042:16:387 263819935307075225699091539370971251081215:16:387 263819935307075225699091539370971251081216:16:388 263819935307075225699091539370971251081217:16:388 274911951800154190861387167477068790605760:16:388 274911951800154190861387167477068790605761:16:389 274911951800154190861387167477068790605762:16:389 286440031242743805083513609999999999999999:16:389 286440031242743805083513610000000000000000:16:390 286440031242743805083513610000000000000001:16:390 298420132136166228641176956541470674298240:16:390 298420132136166228641176956541470674298241:16:391 298420132136166228641176956541470674298242:16:391 310868753886411535332176252095032884985855:16:391 310868753886411535332176252095032884985856:16:392 310868753886411535332176252095032884985857:16:392 323802953683675926771933156438083087734400:16:392 323802953683675926771933156438083087734401:16:393 323802953683675926771933156438083087734402:16:393 337240363863501689021827240253046411821055:16:393 337240363863501689021827240253046411821056:16:394 337240363863501689021827240253046411821057:16:394 351199209761978430147331366992340087890624:16:394 351199209761978430147331366992340087890625:16:395 351199209761978430147331366992340087890626:16:395 365698328077754498546241794891999342493695:16:395 365698328077754498546241794891999342493696:16:396 365698328077754498546241794891999342493697:16:396 380757185753902801275813797779236894841920:16:396 380757185753902801275813797779236894841921:16:397 380757185753902801275813797779236894841922:16:397 396395899392986626213748221380185083150335:16:397 396395899392986626213748221380185083150336:16:398 396395899392986626213748221380185083150337:16:398 412635255218978630429212660086236179193600:16:398 412635255218978630429212660086236179193601:16:399 412635255218978630429212660086236179193602:16:399 429496729599999999999999999999999999999999:16:399 429496729600000000000000000000000000000000:16:400 429496729600000000000000000000000000000001:16:400 447002510146167025761419341542947859206400:16:400 447002510146167025761419341542947859206401:16:401 447002510146167025761419341542947859206402:16:401 465175517397159088891226533166108062580735:16:401 465175517397159088891226533166108062580736:16:402 465175517397159088891226533166108062580737:16:402 484039427114455425332891223466573200851520:16:402 484039427114455425332891223466573200851521:16:403 484039427114455425332891223466573200851522:16:403 503618693193528156099108196247674757840895:16:403 503618693193528156099108196247674757840896:16:404 503618693193528156099108196247674757840897:16:404 523938571211626050515418867382965087890624:16:404 523938571211626050515418867382965087890625:16:405 523938571211626050515418867382965087890626:16:405 545025142627137452293541100470321094393855:16:405 545025142627137452293541100470321094393856:16:406 545025142627137452293541100470321094393857:16:406 566905339646881866618182176396364175004800:16:406 566905339646881866618182176396364175004801:16:407 566905339646881866618182176396364175004802:16:407 589606970778048004684412595285367462035455:16:407 589606970778048004684412595285367462035456:16:408 589606970778048004684412595285367462035457:16:408 613158747081871736694796283376344205805440:16:408 613158747081871736694796283376344205805441:16:409 613158747081871736694796283376344205805442:16:409 637590309146530543464326409999999999999999:16:409 637590309146530543464326410000000000000000:16:410 637590309146530543464326410000000000000001:16:410 662932254797121810646413361537651390938560:16:410 662932254797121810646413361537651390938561:16:411 662932254797121810646413361537651390938562:16:411 689216167560990810279695717787326916591615:16:411 689216167560990810279695717787326916591616:16:412 689216167560990810279695717787326916591617:16:412 716474645907080595917577089698265232824640:16:412 716474645907080595917577089698265232824641:16:413 716474645907080595917577089698265232824642:16:413 744741333278390436077867879287854674804735:16:413 744741333278390436077867879287854674804736:16:414 744741333278390436077867879287854674804737:16:414 774050948937051964184319518994293212890624:16:414 774050948937051964184319518994293212890625:16:415 774050948937051964184319518994293212890626:16:415 804439319641963071643254658773822541398015:16:415 804439319641963071643254658773822541398016:16:416 804439319641963071643254658773822541398017:16:416 835943412179358856342358831133890404743680:16:416 835943412179358856342358831133890404743681:16:417 835943412179358856342358831133890404743682:16:417 868601366767146805892929280581601109016575:16:417 868601366767146805892929280581601109016576:16:418 868601366767146805892929280581601109016577:16:418 902452531354289989687244401332528013481280:16:418 902452531354289989687244401332528013481281:16:419 902452531354289989687244401332528013481282:16:419 937537496836987504768450559999999999999999:16:419 937537496836987504768450560000000000000000:16:420 937537496836987504768450560000000000000001:16:420 973898133213875918230007677219773667254720:16:420 973898133213875918230007677219773667254721:16:421 973898133213875918230007677219773667254722:16:421 1011577626702959126179263597407794322538495:16:421 1011577626702959126179263597407794322538496:16:422 1011577626702959126179263597407794322538497:16:422 1050620517843467061230901232063460023333760:16:422 1050620517843467061230901232063460023333761:16:423 1050620517843467061230901232063460023333762:16:423 1091072740606346184294986529287609648152575:16:423 1091072740606346184294986529287609648152576:16:424 1091072740606346184294986529287609648152577:16:424 1132981662537596851610578596591949462890624:16:424 1132981662537596851610578596591949462890625:16:425 1132981662537596851610578596591949462890626:16:425 1176396125959194616361187324480769375666175:16:425 1176396125959194616361187324480769375666176:16:426 1176396125959194616361187324480769375666177:16:426 1221366490252864469924410046137906273978560:16:426 1221366490252864469924410046137906273978561:16:427 1221366490252864469924410046137906273978562:16:427 1267944675252519117333917005146048950173695:16:427 1267944675252519117333917005146048950173696:16:428 1267944675252519117333917005146048950173697:16:428 1316184205771724783722005607264432366061120:16:428 1316184205771724783722005607264432366061121:16:429 1316184205771724783722005607264432366061122:16:429 1366140257293120934623152009999999999999999:16:429 1366140257293120934623152010000000000000000:16:430 1366140257293120934623152010000000000000001:16:430 1417869702847293836743271651315418818714880:16:430 1417869702847293836743271651315418818714881:16:431 1417869702847293836743271651315418818714882:16:431 1471431161109188263286355468208876736741375:16:431 1471431161109188263286355468208876736741376:16:432 1471431161109188263286355468208876736741377:16:432 1526885045740737037820037361038628832858880:16:432 1526885045740737037820037361038628832858881:16:433 1526885045740737037820037361038628832858882:16:433 1584293616008994694113651231378414376124415:16:433 1584293616008994694113651231378414376124416:16:434 1584293616008994694113651231378414376124417:16:434 1643721028709679490104080927832183837890624:16:434 1643721028709679490104080927832183837890625:16:435 1643721028709679490104080927832183837890626:16:435 1705233391426657538422075390559285030158335:16:435 1705233391426657538422075390559285030158336:16:436 1705233391426657538422075390559285030158337:16:436 1768898817158544092638913067820426237429440:16:436 1768898817158544092638913067820426237429441:16:437 1768898817158544092638913067820426237429442:16:437 1834787480344250249103274207286167108386815:16:437 1834787480344250249103274207286167108386816:16:438 1834787480344250249103274207286167108386817:16:438 1902971674319968683133183868570670272184960:16:438 1902971674319968683133183868570670272184961:16:439 1902971674319968683133183868570670272184962:16:439 1973525870240769732310466559999999999999999:16:439 1973525870240769732310466560000000000000000:16:440 1973525870240769732310466560000000000000001:16:440 2046526777500669368329342638102622164679040:16:440 2046526777500669368329342638102622164679041:16:441 2046526777500669368329342638102622164679042:16:441 2122053405685733564673631824531783124320255:16:441 2122053405685733564673631824531783124320256:16:442 2122053405685733564673631824531783124320257:16:442 2200187128095499475530336818113367454680000:16:442 2200187128095499475530336818113367454680001:16:443 2200187128095499475530336818113367454680002:16:443 2281011746868722899809864266363872273760255:16:443 2281011746868722899809864266363872273760256:16:444 2281011746868722899809864266363872273760257:16:444 2364613559750203923812763630761871337890624:16:444 2364613559750203923812763630761871337890625:16:445 2364613559750203923812763630761871337890626:16:445 2451081428536198630729523388737637014634495:16:445 2451081428536198630729523388737637014634496:16:446 2451081428536198630729523388737637014634497:16:446 2540506849236694551478463893806286562616320:16:446 2540506849236694551478463893806286562616321:16:447 2540506849236694551478463893806286562616322:16:447 2632984023993611329030095511059992135335935:16:447 2632984023993611329030095511059992135335936:16:448 2632984023993611329030095511059992135335937:16:448 2728609934794786099979217508324695369292800:16:448 2728609934794786099979217508324695369292801:16:449 2728609934794786099979217508324695369292802:16:449 2827484419024415588378906249999999999999999:16:449 2827484419024415588378906250000000000000000:16:450 2827484419024415588378906250000000000000001:16:450 2929710246891454086473596677903567429307200:16:450 2929710246891454086473596677903567429307201:16:451 2929710246891454086473596677903567429307202:16:451 3035393200778308596786237945217028127195135:16:451 3035393200778308596786237945217028127195136:16:452 3035393200778308596786237945217028127195137:16:452 3144642156553029664980670165892288566877120:16:452 3144642156553029664980670165892288566877121:16:453 3144642156553029664980670165892288566877122:16:453 3257569166889069081152839311209838736900095:16:453 3257569166889069081152839311209838736900096:16:454 3257569166889069081152839311209838736900097:16:454 3374289546637563910020835970068511962890624:16:454 3374289546637563910020835970068511962890625:16:455 3374289546637563910020835970068511962890626:16:455 3494921960298010472437035123666929011654655:16:455 3494921960298010472437035123666929011654656:16:456 3494921960298010472437035123666929011654657:16:456 3619588511634112189560350330926501617859200:16:456 3619588511634112189560350330926501617859201:16:457 3619588511634112189560350330926501617859202:16:457 3748414835482521868035206165363990483501055:16:457 3748414835482521868035206165363990483501056:16:458 3748414835482521868035206165363990483501057:16:458 3881530191803152304103286590275112067624640:16:458 3881530191803152304103286590275112067624641:16:459 3881530191803152304103286590275112067624642:16:459 4019067562020699274583080959999999999999999:16:459 4019067562020699274583080960000000000000000:16:460 4019067562020699274583080960000000000000001:16:460 4161163747708008324368372925882377717559360:16:460 4161163747708008324368372925882377717559361:16:461 4161163747708008324368372925882377717559362:16:461 4307959471662921518254447520478689472086015:16:461 4307959471662921518254447520478689472086016:16:462 4307959471662921518254447520478689472086017:16:462 4459599481431262767728998722279660324330240:16:462 4459599481431262767728998722279660324330241:16:463 4459599481431262767728998722279660324330242:16:463 4616232655329660742625658671886534166183935:16:463 4616232655329660742625658671886534166183936:16:464 4616232655329660742625658671886534166183937:16:464 4778012111022967008565675882080230712890624:16:464 4778012111022967008565675882080230712890625:16:465 4778012111022967008565675882080230712890626:16:465 4945095316712104172852294181125894732578815:16:465 4945095316712104172852294181125894732578816:16:466 4945095316712104172852294181125894732578817:16:466 5117644204989274756527768473111710400278080:16:466 5117644204989274756527768473111710400278081:16:467 5117644204989274756527768473111710400278082:16:467 5295825289418576524939548312590198218162175:16:467 5295825289418576524939548312590198218162176:16:468 5295825289418576524939548312590198218162177:16:468 5479809783901204393404788386711687454220480:16:468 5479809783901204393404788386711687454220481:16:469 5479809783901204393404788386711687454220482:16:469 5669773724885573072196211209999999999999999:16:469 5669773724885573072196211210000000000000000:16:470 5669773724885573072196211210000000000000001:16:470 5865898096483868623693798734639296251195520:16:470 5865898096483868623693798734639296251195521:16:471 5865898096483868623693798734639296251195522:16:471 6068368958557731375604426934300211618512895:16:471 6068368958557731375604426934300211618512896:16:472 6068368958557731375604426934300211618512897:16:472 6277377577836987472987700793216039190719360:16:472 6277377577836987472987700793216039190719361:16:473 6277377577836987472987700793216039190719362:16:473 6493120562136582067718757765487830751051775:16:473 6493120562136582067718757765487830751051776:16:474 6493120562136582067718757765487830751051777:16:474 6715799997738124050223268568515777587890624:16:474 6715799997738124050223268568515777587890625:16:475 6715799997738124050223268568515777587890626:16:475 6945623590003730642112121090672529533566975:16:475 6945623590003730642112121090672529533566976:16:476 6945623590003730642112121090672529533566977:16:476 7182804807291160411062339811159985303792960:16:476 7182804807291160411062339811159985303792961:16:477 7182804807291160411062339811159985303792962:16:477 7427563028240545666382120780735018969399295:16:477 7427563028240545666382120780735018969399296:16:478 7427563028240545666382120780735018969399297:16:478 7680123692504380074756977946223368956920320:16:478 7680123692504380074756977946223368956920321:16:479 7680123692504380074756977946223368956920322:16:479 7940718454993785034490511359999999999999999:16:479 7940718454993785034490511360000000000000000:16:480 7940718454993785034490511360000000000000001:16:480 8209585343715469201155297147980712864775680:16:480 8209585343715469201155297147980712864775681:16:481 8209585343715469201155297147980712864775682:16:481 8486968921275209910268158804599947646795775:16:481 8486968921275209910268158804599947646795776:16:482 8486968921275209910268158804599947646795777:16:482 8773120450125123440039258375959985010524480:16:482 8773120450125123440039258375959985010524481:16:483 8773120450125123440039258375959985010524482:16:483 9068298061633453450429559033030337013743615:16:483 9068298061633453450429559033030337013743616:16:484 9068298061633453450429559033030337013743617:16:484 9372766929057093879119532408984527587890624:16:484 9372766929057093879119532408984527587890625:16:485 9372766929057093879119532408984527587890626:16:485 9686799444498574430442829264085535791579135:16:485 9686799444498574430442829264085535791579136:16:486 9686799444498574430442829264085535791579137:16:486 10010675399930773924284020265099515127123840:16:486 10010675399930773924284020265099515127123841:16:487 10010675399930773924284020265099515127123842:16:487 10344682172374189547351225183233088124092415:16:487 10344682172374189547351225183233088124092416:16:488 10344682172374189547351225183233088124092417:16:488 10689114913313178842691471348410451768364160:16:488 10689114913313178842691471348410451768364161:16:489 10689114913313178842691471348410451768364162:16:489 11044276742439206463052992009999999999999999:16:489 11044276742439206463052992010000000000000000:16:490 11044276742439206463052992010000000000000001:16:490 11410478945810769682651714821728332261659840:16:490 11410478945810769682651714821728332261659841:16:491 11410478945810769682651714821728332261659842:16:491 11788041178521345797758145423949671386054655:16:491 11788041178521345797758145423949671386054656:16:492 11788041178521345797758145423949671386054657:16:492 12177291671968401241775927702630186321025600:16:492 12177291671968401241775927702630186321025601:16:493 12177291671968401241775927702630186321025602:16:493 12578567445818226892475170945305144113299455:16:493 12578567445818226892475170945305144113299456:16:494 12578567445818226892475170945305144113299457:16:494 12992214524763117060013037292236480712890624:16:494 12992214524763117060013037292236480712890625:16:495 12992214524763117060013037292236480712890626:16:495 13418588160169191421512453222743998040375295:16:495 13418588160169191421512453222743998040375296:16:496 13418588160169191421512453222743998040375297:16:496 13858053056714970123469698399454514321790720:16:496 13858053056714970123469698399454514321790721:16:497 13858053056714970123469698399454514321790722:16:497 14310983604122652824367848913347051257921535:16:497 14310983604122652824367848913347051257921536:16:498 14310983604122652824367848913347051257921537:16:498 14777764114085923018934187488613680029992000:16:498 14777764114085923018934187488613680029992001:16:499 14777764114085923018934187488613680029992002:16:499 15258789062499999999999999999999999999999999:16:499 15258789062500000000000000000000000000000000:16:500 15258789062500000000000000000000000000000001:16:500 15754463337101592706612937761613820030008000:16:500 15754463337101592706612937761613820030008001:16:501 15754463337101592706612937761613820030008002:16:501 16265202490628372915888408018493931782209535:16:501 16265202490628372915888408018493931782209536:16:502 16265202490628372915888408018493931782209537:16:502 16791432999609580204354309753659963904302720:16:502 16791432999609580204354309753659963904302721:16:503 16791432999609580204354309753659963904302722:16:503 17333592528901398280897507610002137909559295:16:503 17333592528901398280897507610002137909559296:16:504 17333592528901398280897507610002137909559297:16:504 17892130202082802131937036316162261962890624:16:504 17892130202082802131937036316162261962890625:16:505 17892130202082802131937036316162261962890626:16:505 18467506877829668379680595737990343866515455:16:505 18467506877829668379680595737990343866515456:16:506 18467506877829668379680595737990343866515457:16:506 19060195432387067801350943079048150480113600:16:506 19060195432387067801350943079048150480113601:16:507 19060195432387067801350943079048150480113602:16:507 19670681048261819561767255416843944807366655:16:507 19670681048261819561767255416843944807366656:16:508 19670681048261819561767255416843944807366657:16:508 20299461509259581849945602588952505776043840:16:508 20299461509259581849945602588952505776043841:16:509 20299461509259581849945602588952505776043842:16:509 20947047501992983764453008009999999999999999:16:509 20947047501992983764453008010000000000000000:16:510 20947047501992983764453008010000000000000001:16:510 21613962923989568949877044687531502418780160:16:510 21613962923989568949877044687531502418780161:16:511 21613962923989568949877044687531502418780162:16:511 22300745198530623141535718272648361505980415:16:511 22300745198530623141535718272648361505980416:16:512 22300745198530623141535718272648361505980417:16:512 23007945596354295926898676263303160579235840:16:512 23007945596354295926898676263303160579235841:16:513 23007945596354295926898676263303160579235842:16:513 23736129564358802185496704881194620787163135:16:513 23736129564358802185496704881194620787163136:16:514 23736129564358802185496704881194620787163137:16:514 24485877061443901335724707656543121337890624:16:514 24485877061443901335724707656543121337890625:16:515 24485877061443901335724707656543121337890626:16:515 25257782901631303214302079176973486565359615:16:515 25257782901631303214302079176973486565359616:16:516 25257782901631303214302079176973486565359617:16:516 26052457104607138665756715560615322063212480:16:516 26052457104607138665756715560615322063212481:16:517 26052457104607138665756715560615322063212482:16:517 26870525253832161254822816584427106981707775:16:517 26870525253832161254822816584427106981707776:16:518 26870525253832161254822816584427106981707777:16:518 27712628862367914469991343683446969637559680:16:518 27712628862367914469991343683446969637559681:16:519 27712628862367914469991343683446969637559682:16:519 28579425746569706903814799359999999999999999:16:519 28579425746569706903814799360000000000000000:16:520 28579425746569706903814799360000000000000001:16:520 29471590407799886723481594853275135873736320:16:520 29471590407799886723481594853275135873736321:16:521 29471590407799886723481594853275135873736322:16:521 30389814422317596838585598044566891800887295:16:521 30389814422317596838585598044566891800887296:16:522 30389814422317596838585598044566891800887297:16:522 31334806839503924093340926755023865233504960:16:522 31334806839503924093340926755023865233504961:16:523 31334806839503924093340926755023865233504962:16:523 32307294588584130125682366320064627239550975:16:523 32307294588584130125682366320064627239550976:16:524 32307294588584130125682366320064627239550977:16:524 33308022894011468820297159254550933837890624:16:524 33308022894011468820297159254550933837890625:16:525 33308022894011468820297159254550933837890626:16:525 34337755699679956117864818613180085557067775:16:525 34337755699679956117864818613180085557067776:16:526 34337755699679956117864818613180085557067777:16:526 35397276102136362916574034533706758369007360:16:526 35397276102136362916574034533706758369007361:16:527 35397276102136362916574034533706758369007362:16:527 36487386792964651509065883386785186915024895:16:527 36487386792964651509065883386785186915024896:16:528 36487386792964651509065883386785186915024897:16:528 37608910510519071039902074217516707306379520:16:528 37608910510519071039902074217516707306379521:16:529 37608910510519071039902074217516707306379522:16:529 38762690501185168453978723209999999999999999:16:529 38762690501185168453978723210000000000000000:16:530 38762690501185168453978723210000000000000001:16:530 39949590990351058950490391425189402333436480:16:530 39949590990351058950490391425189402333436481:16:531 39949590990351058950490391425189402333436482:16:531 41170497663274434682640260058357265571250175:16:531 41170497663274434682640260058357265571250176:16:532 41170497663274434682640260058357265571250177:16:532 42426318156033972979956150286478259095590080:16:532 42426318156033972979956150286478259095590081:16:533 42426318156033972979956150286478259095590082:16:533 43717982556757036354663571004130757212962815:16:533 43717982556757036354663571004130757212962816:16:534 43717982556757036354663571004130757212962817:16:534 45046443917318836630198468822998199462890624:16:534 45046443917318836630198468822998199462890625:16:535 45046443917318836630198468822998199462890626:16:535 46412678775711565350052443280776100562599935:16:535 46412678775711565350052443280776100562599936:16:536 46412678775711565350052443280776100562599937:16:536 47817687689285372847565980083080153740218240:16:536 47817687689285372847565980083080153740218241:16:537 47817687689285372847565980083080153740218242:16:537 49262495779066509648320204911302860058198015:16:537 49262495779066509648320204911302860058198016:16:538 49262495779066509648320204911302860058198017:16:538 50748153285361426910259943192250425759143360:16:538 50748153285361426910259943192250425759143361:16:539 50748153285361426910259943192250425759143362:16:539 52275736134859168064052264959999999999999999:16:539 52275736134859168064052264960000000000000000:16:540 52275736134859168064052264960000000000000001:16:540 53846346519447972386565002755986626285240640:16:540 53846346519447972386565002755986626285240641:16:541 53846346519447972386565002755986626285240642:16:541 55461113486965653620608742695367280710189055:16:541 55461113486965653620608742695367280710189056:16:542 55461113486965653620608742695367280710189057:16:542 57121193544107013648915772819151112246771200:16:542 57121193544107013648915772819151112246771201:16:543 57121193544107013648915772819151112246771202:16:543 58827771271715303352318214846634591210438655:16:543 58827771271715303352318214846634591210438656:16:544 58827771271715303352318214846634591210438657:16:544 60582059952688550851791951521338043212890624:16:544 60582059952688550851791951521338043212890625:16:545 60582059952688550851791951521338043212890626:16:545 62385302212735442080053107586182255539716095:16:545 62385302212735442080053107586182255539716096:16:546 62385302212735442080053107586182255539716097:16:546 64238770674219360787447773655609888012365120:16:546 64238770674219360787447773655609888012365121:16:547 64238770674219360787447773655609888012365122:16:547 66143768623333175403874548481907297810907135:16:547 66143768623333175403874548481907297810907136:16:548 66143768623333175403874548481907297810907137:16:548 68101630690851399406603420733823833241291200:16:548 68101630690851399406603420733823833241291201:16:549 68101630690851399406603420733823833241291202:16:549 70113723546710450744628906249999999999999999:16:549 70113723546710450744628906250000000000000000:16:550 70113723546710450744628906250000000000000001:16:550 72181446608671895213567789667618249581308800:16:550 72181446608671895213567789667618249581308801:16:551 72181446608671895213567789667618249581308802:16:551 74306232765327779239529557918016835667623935:16:551 74306232765327779239529557918016835667623936:16:552 74306232765327779239529557918016835667623937:16:552 76489549113711440102875652400158098373128320:16:552 76489549113711440102875652400158098373128321:16:553 76489549113711440102875652400158098373128322:16:553 78732897711781527009023350405332791155818495:16:553 78732897711781527009023350405332791155818496:16:554 78732897711781527009023350405332791155818497:16:554 81037816346051375397858303499414215087890624:16:554 81037816346051375397858303499414215087890625:16:555 81037816346051375397858303499414215087890626:16:555 83405879314640350289128720378419668378976255:16:555 83405879314640350289128720378419668378976256:16:556 83405879314640350289128720378419668378976257:16:556 85838698226028313110531770813000325201768000:16:556 85838698226028313110531770813000325201768001:16:557 85838698226028313110531770813000325201768002:16:557 88337922813798971179173511475976279393632255:16:557 88337922813798971179173511475976279393632256:16:558 88337922813798971179173511475976279393632257:16:558 90905241767662540645850148658377447011063040:16:558 90905241767662540645850148658377447011063041:16:559 90905241767662540645850148658377447011063042:16:559 93542383581052893114463682559999999999999999:16:559 93542383581052893114463682560000000000000000:16:560 93542383581052893114463682560000000000000001:16:560 96251117415599164174374834760092840014600960:16:560 96251117415599164174374834760092840014600961:16:561 96251117415599164174374834760092840014600962:16:561 99033253982776679599442856344749089258274815:16:561 99033253982776679599442856344749089258274816:16:562 99033253982776679599442856344749089258274817:16:562 101890646443047002851127775245204135757541440:16:562 101890646443047002851127775245204135757541441:16:563 101890646443047002851127775245204135757541442:16:563 104825191322801926661033027261673831017742335:16:563 104825191322801926661033027261673831017742336:16:564 104825191322801926661033027261673831017742337:16:564 107838829449431322756902245359961090087890624:16:564 107838829449431322756902245359961090087890625:16:565 107838829449431322756902245359961090087890626:16:565 110933546904839928141255872291349742359740415:16:565 110933546904839928141255872291349742359740416:16:566 110933546904839928141255872291349742359740417:16:566 114111375997743384649195776508234722433546880:16:566 114111375997743384649195776508234722433546881:16:567 114111375997743384649195776508234722433546882:16:567 117374396255079161726872671262804073959653375:16:567 117374396255079161726872671262804073959653376:16:568 117374396255079161726872671262804073959653377:16:568 120724735432873381420061847762371942843498880:16:568 120724735432873381420061847762371942843498881:16:569 120724735432873381420061847762371942843498882:16:569 124164570546910030388582240009999999999999999:16:569 124164570546910030388582240010000000000000000:16:570 124164570546910030388582240010000000000000001:16:570 127696128923554587322360405158281849654877120:16:570 127696128923554587322360405158281849654877121:16:571 127696128923554587322360405158281849654877122:16:571 131321689271089716394395922484533886709661695:16:571 131321689271089716394395922484533886709661696:16:572 131321689271089716394395922484533886709661697:16:572 135043582771926379320602415014453402511690560:16:572 135043582771926379320602415014453402511690561:16:573 135043582771926379320602415014453402511690562:16:573 138864194196059501192707186153914941193650175:16:573 138864194196059501192707186153914941193650176:16:574 138864194196059501192707186153914941193650177:16:574 142785963036143189504765905439853668212890624:16:574 142785963036143189504765905439853668212890625:16:575 142785963036143189504765905439853668212890626:16:575 146811384664566452713597726037899455366168575:16:575 146811384664566452713597726037899455366168576:16:576 146811384664566452713597726037899455366168577:16:576 150943011512916395276411487197388421109621760:16:576 150943011512916395276411487197388421109621761:16:577 150943011512916395276411487197388421109621762:16:577 155183454274221981423639350301225860947050495:16:577 155183454274221981423639350301225860947050496:16:578 155183454274221981423639350301225860947050497:16:578 159535383128377660990901707529501750294438720:16:578 159535383128377660990901707529501750294438721:16:579 159535383128377660990901707529501750294438722:16:579 164001528991152438501389762559999999999999999:16:579 164001528991152438501389762560000000000000000:16:580 164001528991152438501389762560000000000000001:16:580 168584684787196342420070292021074978944697280:16:580 168584684787196342420070292021074978944697281:16:581 168584684787196342420070292021074978944697282:16:581 173287706747462716166394400768474043950104575:16:581 173287706747462716166394400768474043950104576:16:582 173287706747462716166394400768474043950104577:16:582 178113515731471307156232028621694514048055680:16:582 178113515731471307156232028621694514048055681:16:583 178113515731471307156232028621694514048055682:16:583 183065098574843775941457098365620290653782015:16:583 183065098574843775941457098365620290653782016:16:584 183065098574843775941457098365620290653782017:16:584 188145509462549985533270142660107574462890624:16:584 188145509462549985533270142660107574462890625:16:585 188145509462549985533270142660107574462890626:16:585 193357871328310262350755376764853422863220735:16:585 193357871328310262350755376764853422863220736:16:586 193357871328310262350755376764853422863220737:16:586 198705377280605746058709937327517232316712640:16:586 198705377280605746058709937327517232316712641:16:587 198705377280605746058709937327517232316712642:16:587 204191292055755966989529929302376496670703615:16:587 204191292055755966989529929302376496670703616:16:588 204191292055755966989529929302376496670703617:16:588 209818953498529908035760373613011437724522560:16:588 209818953498529908035760373613011437724522561:16:589 209818953498529908035760373613011437724522562:16:589 215591774070764024017578710409999999999999999:16:589 215591774070764024017578710410000000000000000:16:590 215591774070764024017578710410000000000000001:16:590 221513242388468006749746095602002842555421440:16:590 221513242388468006749746095602002842555421441:16:591 221513242388468006749746095602002842555421442:16:591 227586924787906499544289369734616122136723455:16:591 227586924787906499544289369734616122136723456:16:592 227586924787906499544289369734616122136723457:16:592 233816466921152481889434951980570590791916800:16:592 233816466921152481889434951980570590791916801:16:593 233816466921152481889434951980570590791916802:16:593 240205595381615664755477541248399670845177855:16:593 240205595381615664755477541248399670845177856:16:594 240205595381615664755477541248399670845177857:16:594 246758119360056960620117688544629058837890624:16:594 246758119360056960620117688544629058837890625:16:595 246758119360056960620117688544629058837890626:16:595 253477932331607921117647750039191550632656895:16:595 253477932331607921117647750039191550632656896:16:596 253477932331607921117647750039191550632656897:16:596 260369013774321970449134918975815768474339520:16:596 260369013774321970449134918975815768474339521:16:597 260369013774321970449134918975815768474339522:16:597 267435430919792305608104295300260875154292735:16:597 267435430919792305608104295300260875154292736:16:598 267435430919792305608104295300260875154292737:16:598 274681340536379486354665265697828071083190400:16:598 274681340536379486354665265697828071083190401:16:599 274681340536379486354665265697828071083190402:16:599 282110990745599999999999999999999999999999999:16:599 282110990745600000000000000000000000000000000:16:600 282110990745600000000000000000000000000000001:16:600 289728722872235459745150239945139673003209600:16:600 289728722872235459745150239945139673003209601:16:601 289728722872235459745150239945139673003209602:16:601 297538973328730581868771833347907964423438335:16:601 297538973328730581868771833347907964423438336:16:602 297538973328730581868771833347907964423438337:16:602 305546275534456687806927916275004584133353920:16:602 305546275534456687806927916275004584133353921:16:603 305546275534456687806927916275004584133353922:16:603 313755261870426193456403214420681985355677695:16:603 313755261870426193456403214420681985355677696:16:604 313755261870426193456403214420681985355677697:16:604 322170665670052381217287483857714996337890624:16:604 322170665670052381217287483857714996337890625:16:605 322170665670052381217287483857714996337890626:16:605 330797323246557701740154401743879733269037055:16:605 330797323246557701740154401743879733269037056:16:606 330797323246557701740154401743879733269037057:16:606 339640175957642923441240650188821913222822400:16:606 339640175957642923441240650188821913222822401:16:607 339640175957642923441240650188821913222822402:16:607 348704272308038639992639050843216971202297855:16:607 348704272308038639992639050843216971202297856:16:608 348704272308038639992639050843216971202297857:16:608 357994770090569960594648343719160170452682240:16:608 357994770090569960594648343719160170452682241:16:609 357994770090569960594648343719160170452682242:16:609 367516938566374646319133929609999999999999999:16:609 367516938566374646319133929610000000000000000:16:610 367516938566374646319133929610000000000000001:16:610 377276160684924519615303206456477038025021760:16:610 377276160684924519615303206456477038025021761:16:611 377276160684924519615303206456477038025021762:16:611 387277935344509664646249420747911506968969215:16:611 387277935344509664646249420747911506968969216:16:612 387277935344509664646249420747911506968969217:16:612 397527879693854754943959770157821268619247040:16:612 397527879693854754943959770157821268619247041:16:613 397527879693854754943959770157821268619247042:16:613 408031731475546793414753660012513689337921535:16:613 408031731475546793414753660012513689337921536:16:614 408031731475546793414753660012513689337921537:16:614 418795351411963629493518561160302886962890624:16:614 418795351411963629493518561160302886962890625:16:615 418795351411963629493518561160302886962890626:16:615 429824725634402830745633775613344894435721215:16:615 429824725634402830745633775613344894435721216:16:616 429824725634402830745633775613344894435721217:16:616 441125968156120832977014933312498661551281280:16:616 441125968156120832977014933312498661551281281:16:617 441125968156120832977014933312498661551281282:16:617 452705323390002775477203270393154893711998975:16:617 452705323390002775477203270393154893711998976:16:618 452705323390002775477203270393154893711998977:16:618 464569168711594047944946535571744128352038080:16:618 464569168711594047944946535571744128352038081:16:619 464569168711594047944946535571744128352038082:16:619 476724017068235334502633308159999999999999999:16:619 476724017068235334502633308160000000000000000:16:620 476724017068235334502633308160000000000000001:16:620 489176519635053839583012586587004987714617920:16:620 489176519635053839583012586587004987714617921:16:621 489176519635053839583012586587004987714617922:16:621 501933468518574421972146671681587216184836095:16:621 501933468518574421972146671681587216184836096:16:622 501933468518574421972146671681587216184836097:16:622 515001799508725548535452873885804748385276160:16:622 515001799508725548535452873885804748385276161:16:623 515001799508725548535452873885804748385276162:16:623 528388594880026309773715131045332962693349375:16:623 528388594880026309773715131045332962693349376:16:624 528388594880026309773715131045332962693349377:16:624 542101086242752217003726400434970855712890624:16:624 542101086242752217003726400434970855712890625:16:625 542101086242752217003726400434970855712890626:16:625 556146657444889127300431125759688704880869375:16:625 556146657444889127300431125759688704880869376:16:626 556146657444889127300431125759688704880869377:16:626 570532847525696419056916543791609202165636160:16:626 570532847525696419056916543791609202165636161:16:627 570532847525696419056916543791609202165636162:16:627 585267353721712469814492868882671917225476095:16:627 585267353721712469814492868882671917225476096:16:628 585267353721712469814492868882671917225476097:16:628 600358034526047570602976006707125993801097920:16:628 600358034526047570602976006707125993801097921:16:629 600358034526047570602976006707125993801097922:16:629 615812912801821649143274854409999999999999999:16:629 615812912801821649143274854410000000000000000:16:630 615812912801821649143274854410000000000000001:16:630 631640178950616569649315844895673687418558080:16:630 631640178950616569649315844895673687418558081:16:631 631640178950616569649315844895673687418558082:16:631 647848194136825331389866418130111944223358975:16:631 647848194136825331389866418130111944223358976:16:632 647848194136825331389866418130111944223358977:16:632 664445493568793203415566346177210165827921280:16:632 664445493568793203415566346177210165827921281:16:633 664445493568793203415566346177210165827921282:16:633 681440789837658710722160257728659841016201215:16:633 681440789837658710722160257728659841016201216:16:634 681440789837658710722160257728659841016201217:16:634 698842976314815429424500884779687652587890624:16:634 698842976314815429424500884779687652587890625:16:635 698842976314815429424500884779687652587890626:16:635 716661130608928757091688031387360554213441535:16:635 716661130608928757091688031387360554213441536:16:636 716661130608928757091688031387360554213441537:16:636 734904518083455201093561752266651354096607040:16:636 734904518083455201093561752266651354096607041:16:637 734904518083455201093561752266651354096607042:16:637 753582595435625274502168691007110499721609215:16:637 753582595435625274502168691007110499721609216:16:638 753582595435625274502168691007110499721609217:16:638 772705014337864807666047149439394366144501760:16:638 772705014337864807666047149439394366144501761:16:639 772705014337864807666047149439394366144501762:16:639 792281625142643375935439503359999999999999999:16:639 792281625142643375935439503360000000000000000:16:640 792281625142643375935439503360000000000000001:16:640 812322480651752612086123129994700432392202240:16:640 812322480651752612086123129994700432392202241:16:641 812322480651752612086123129994700432392202242:16:641 832837839951031417709951616785851034705657855:16:641 832837839951031417709951616785851034705657856:16:642 832837839951031417709951616785851034705657857:16:642 853838172311569513171274229699566540516462400:16:642 853838172311569513171274229699566540516462401:16:643 853838172311569513171274229699566540516462402:16:643 875334161158435372648514428795684768297517055:16:643 875334161158435372648514428795684768297517056:16:644 875334161158435372648514428795684768297517057:16:644 897336708107989381286347423020312652587890624:16:644 897336708107989381286347423020312652587890625:16:645 897336708107989381286347423020312652587890626:16:645 919856937074858027591927209050103792439197695:16:645 919856937074858027591927209050103792439197696:16:646 919856937074858027591927209050103792439197697:16:646 942906198449660107953222334097149309547713920:16:646 942906198449660107953222334097149309547713921:16:647 942906198449660107953222334097149309547713922:16:647 966496073348591273592564192913999734648078335:16:647 966496073348591273592564192913999734648078336:16:648 966496073348591273592564192913999734648078337:16:648 990638377935988795467068812142532782635689600:16:648 990638377935988795467068812142532782635689601:16:649 990638377935988795467068812142532782635689602:16:649 1015345167821014161682128906249999999999999999:16:649 1015345167821014161682128906250000000000000000:16:650 1015345167821014161682128906250000000000000001:16:650 1040628742529607057006693830085037980215710400:16:650 1040628742529607057006693830085037980215710401:16:651 1040628742529607057006693830085037980215710402:16:651 1066501650052880407201259256414534150689652735:16:651 1066501650052880407201259256414534150689652736:16:652 1066501650052880407201259256414534150689652737:16:652 1092976691473142504242919124628280306344979520:16:652 1092976691473142504242919124628280306344979521:16:653 1092976691473142504242919124628280306344979522:16:653 1120066925668748764328031304601617075389136895:16:653 1120066925668748764328031304601617075389136896:16:654 1120066925668748764328031304601617075389136897:16:654 1147785674099002410943710341941845855712890624:16:654 1147785674099002410943710341941845855712890625:16:655 1147785674099002410943710341941845855712890626:16:655 1176146525670340322536489241851333897256697855:16:655 1176146525670340322536489241851333897256697856:16:656 1176146525670340322536489241851333897256697857:16:656 1205163341685057440602556533623410074983276800:16:656 1205163341685057440602556533623410074983276801:16:657 1205163341685057440602556533623410074983276802:16:657 1234850260873840501632066787103076525193363455:16:657 1234850260873840501632066787103076525193363456:16:658 1234850260873840501632066787103076525193363457:16:658 1265221704513399437534015716642701423780901440:16:658 1265221704513399437534015716642701423780901441:16:659 1265221704513399437534015716642701423780901442:16:659 1296292381630502586242879324159999999999999999:16:659 1296292381630502586242879324160000000000000000:16:660 1296292381630502586242879324160000000000000001:16:660 1328077294293739869479555909249174376970042560:16:660 1328077294293739869479555909249174376970042561:16:661 1328077294293739869479555909249174376970042562:16:661 1360591742994356330444298757604318536878063615:16:661 1360591742994356330444298757604318536878063616:16:662 1360591742994356330444298757604318536878063617:16:662 1393851332117516882916889727895212154924352640:16:662 1393851332117516882916889727895212154924352641:16:663 1393851332117516882916889727895212154924352642:16:663 1427871975505381807209472307000914728227700735:16:663 1427871975505381807209472307000914728227700736:16:664 1427871975505381807209472307000914728227700737:16:664 1462669902113391440062182626688427886962890624:16:664 1462669902113391440062182626688427886962890625:16:665 1462669902113391440062182626688427886962890626:16:665 1498261661761177647314852601959767063113302015:16:665 1498261661761177647314852601959767063113302016:16:666 1498261661761177647314852601959767063113302017:16:666 1534664130979539042475559896532715042456415680:16:666 1534664130979539042475559896532715042456415681:16:667 1534664130979539042475559896532715042456415682:16:667 1571894518954936523606866377037517008798744575:16:667 1571894518954936523606866377037517008798744576:16:668 1571894518954936523606866377037517008798744577:16:668 1609970373572985547753842464873712200443177280:16:668 1609970373572985547753842464873712200443177281:16:669 1609970373572985547753842464873712200443177282:16:669 1648909587562441648957632028809999999999999999:16:669 1648909587562441648957632028810000000000000000:16:670 1648909587562441648957632028810000000000000001:16:670 1688730404741196035270344683770975893172958720:16:670 1688730404741196035270344683770975893172958721:16:671 1688730404741196035270344683770975893172958722:16:671 1729451426365818674670375397765379268066410495:16:671 1729451426365818674670375397765379268066410496:16:672 1729451426365818674670375397765379268066410497:16:672 1771091617586207101953855861006509233214261760:16:672 1771091617586207101953855861006509233214261761:16:673 1771091617586207101953855861006509233214261762:16:673 1813670314006920251153127304036461329818648575:16:673 1813670314006920251153127304036461329818648576:16:674 1813670314006920251153127304036461329818648577:16:674 1857207228356797943435632623732089996337890624:16:674 1857207228356797943435632623732089996337890625:16:675 1857207228356797943435632623732089996337890626:16:675 1901722457268488241418827816020396748021170175:16:675 1901722457268488241418827816020396748021170176:16:676 1901722457268488241418827816020396748021170177:16:676 1947236488169526720074785348015789763177050560:16:676 1947236488169526720074785348015789763177050561:16:677 1947236488169526720074785348015789763177050562:16:677 1993770206286633804592265037038737399910301695:16:677 1993770206286633804592265037038737399910301696:16:678 1993770206286633804592265037038737399910301697:16:678 2041344901764918689438483171382912326706357120:16:678 2041344901764918689438483171382912326706357121:16:679 2041344901764918689438483171382912326706357122:16:679 2089982276903700983166281973759999999999999999:16:679 2089982276903700983166281973760000000000000000:16:680 2089982276903700983166281973760000000000000001:16:680 2139704453510684123018076052665437325475018880:16:680 2139704453510684123018076052665437325475018881:16:681 2139704453510684123018076052665437325475018882:16:681 2190533980376237774883722256932239475831013375:16:681 2190533980376237774883722256932239475831013376:16:682 2190533980376237774883722256932239475831013377:16:682 2242493840869569880498104593678306583395186880:16:682 2242493840869569880498104593678306583395186881:16:683 2242493840869569880498104593678306583395186882:16:683 2295607460658592737763599258967449799980220415:16:683 2295607460658592737763599258967449799980220416:16:684 2295607460658592737763599258967449799980220417:16:684 2349898715555311504625796760660254058837890624:16:684 2349898715555311504625796760660254058837890625:16:685 2349898715555311504625796760660254058837890626:16:685 2405391939488587804916463110195357954133262335:16:685 2405391939488587804916463110195357954133262336:16:686 2405391939488587804916463110195357954133262337:16:686 2462111932606155688929906280180413235319901440:16:686 2462111932606155688929906280180413235319901441:16:687 2462111932606155688929906280180413235319901442:16:687 2520083969507792065167683957389082458970914815:16:687 2520083969507792065167683957389082458970914816:16:688 2520083969507792065167683957389082458970914817:16:688 2579333807611568875647960402550583322499080960:16:688 2579333807611568875647960402550583322499080961:16:689 2579333807611568875647960402550583322499080962:16:689 2639887695655139738432011068809999999999999999:16:689 2639887695655139738432011068810000000000000000:16:690 2639887695655139738432011068810000000000000001:16:690 2701772382334039530599993357422631760115583040:16:690 2701772382334039530599993357422631760115583041:16:691 2701772382334039530599993357422631760115583042:16:691 2765015125079001435866346115503220585456992255:16:691 2765015125079001435866346115503220585456992256:16:692 2765015125079001435866346115503220585456992257:16:692 2829643698974322336444024801989561952980408000:16:692 2829643698974322336444024801989561952980408001:16:693 2829643698974322336444024801989561952980408002:16:693 2895686405819334091755174571434998396847456255:16:693 2895686405819334091755174571434998396847456256:16:694 2895686405819334091755174571434998396847456257:16:694 2963172083335065220279912536881982574462890624:16:694 2963172083335065220279912536881982574462890625:16:695 2963172083335065220279912536881982574462890626:16:695 3032130114518204788398125248564608458079338495:16:695 3032130114518204788398125248564608458079338496:16:696 3032130114518204788398125248564608458079338497:16:696 3102590437144507914702648188458007858072488320:16:696 3102590437144507914702648188458007858072488321:16:697 3102590437144507914702648188458007858072488322:16:697 3174583553423810223164709115575165235652263935:16:697 3174583553423810223164709115575165235652263936:16:698 3174583553423810223164709115575165235652263937:16:698 3248140539808846826960883816907499029978788800:16:698 3248140539808846826960883816907499029978788801:16:699 3248140539808846826960883816907499029978788802:16:699 3323293056960099999999999999999999999999999999:16:699 3323293056960100000000000000000000000000000000:16:700 3323293056960100000000000000000000000000000001:16:700 3400073359868928598521776244759758934138811200:16:700 3400073359868928598521776244759758934138811201:16:701 3400073359868928598521776244759758934138811202:16:701 3478514308141261533908420991181809235106267135:16:701 3478514308141261533908420991181809235106267136:16:702 3478514308141261533908420991181809235106267137:16:702 3558649376444167173416649443111672743168005120:16:702 3558649376444167173416649443111672743168005121:16:703 3558649376444167173416649443111672743168005122:16:703 3640512665117640461290304008418947784136196095:16:703 3640512665117640461290304008418947784136196096:16:704 3640512665117640461290304008418947784136196097:16:704 3724138910953979812071886615202978668212890624:16:704 3724138910953979812071886615202978668212890625:16:705 3724138910953979812071886615202978668212890626:16:705 3809563498147156434343138551405716847061958655:16:705 3809563498147156434343138551405716847061958656:16:706 3809563498147156434343138551405716847061958657:16:706 3896822469414609700068264964626488643923131200:16:706 3896822469414609700068264964626488643923131201:16:707 3896822469414609700068264964626488643923131202:16:707 3985952537293933485696258126918129574326829055:16:707 3985952537293933485696258126918129574326829056:16:708 3985952537293933485696258126918129574326829057:16:708 4076991095616950079738831945588931667675720640:16:708 4076991095616950079738831945588931667675720641:16:709 4076991095616950079738831945588931667675720642:16:709 4169976231163700281245804691209999999999999999:16:709 4169976231163700281245804691210000000000000000:16:710 4169976231163700281245804691210000000000000001:16:710 4264946735498910708048896362267121570369663360:16:710 4264946735498910708048896362267121570369663361:16:711 4264946735498910708048896362267121570369663362:16:711 4361942116993532096467071081797739789225558015:16:711 4361942116993532096467071081797739789225558016:16:712 4361942116993532096467071081797739789225558017:16:712 4461002613033975509021891536701378903432858240:16:712 4461002613033975509021891536701378903432858241:16:713 4461002613033975509021891536701378903432858242:16:713 4562169202421706877291127430853211688167079935:16:713 4562169202421706877291127430853211688167079936:16:714 4562169202421706877291127430853211688167079937:16:714 4665483617965894197055686820069336090087890624:16:714 4665483617965894197055686820069336090087890625:16:715 4665483617965894197055686820069336090087890626:16:715 4770988359271835966123001044818643056712482815:16:715 4770988359271835966123001044818643056712482816:16:716 4770988359271835966123001044818643056712482817:16:716 4878726705727934115425266000924721321188950080:16:716 4878726705727934115425266000924721321188950081:16:717 4878726705727934115425266000924721321188950082:16:717 4988742729694009735011416170128573109779890175:16:717 4988742729694009735011416170128573109779890176:16:718 4988742729694009735011416170128573109779890177:16:718 5101081309893795342227616212665373186396916480:16:718 5101081309893795342227616212665373186396916481:16:719 5101081309893795342227616212665373186396916482:16:719 5215788145014473283595099176959999999999999999:16:719 5215788145014473283595099176960000000000000000:16:720 5215788145014473283595099176960000000000000001:16:720 5332909767516166108561757657828496502149899520:16:720 5332909767516166108561757657828496502149899521:16:721 5332909767516166108561757657828496502149899522:16:721 5452493557654321406373326782827195198194384895:16:721 5452493557654321406373326782827195198194384896:16:722 5452493557654321406373326782827195198194384897:16:722 5574587757717970660762763477253837020358647360:16:722 5574587757717970660762763477253837020358647361:16:723 5574587757717970660762763477253837020358647362:16:723 5699241486486879155007389996483582328649547775:16:723 5699241486486879155007389996483582328649547776:16:724 5699241486486879155007389996483582328649547777:16:724 5826504753910641856201016344130039215087890624:16:724 5826504753910641856201016344130039215087890625:16:725 5826504753910641856201016344130039215087890626:16:725 5956428476012818526414925504270732146707070975:16:725 5956428476012818526414925504270732146707070976:16:726 5956428476012818526414925504270732146707070977:16:726 6089064490023240053893727046664499598783864960:16:726 6089064490023240053893727046664499598783864961:16:727 6089064490023240053893727046664499598783864962:16:727 6224465569741657173700415207602509121161527295:16:727 6224465569741657173700415207602509121161527296:16:728 6224465569741657173700415207602509121161527297:16:728 6362685441135942358474828762538534230890216320:16:728 6362685441135942358474828762538534230890216321:16:729 6362685441135942358474828762538534230890216322:16:729 6503778798178095710421228345609999999999999999:16:729 6503778798178095710421228345610000000000000000:16:730 6503778798178095710421228345610000000000000001:16:730 6647801318921346179549054350532336043834079680:16:730 6647801318921346179549054350532336043834079681:16:731 6647801318921346179549054350532336043834079682:16:731 6794809681821680374846564933331430396213067775:16:731 6794809681821680374846564933331430396213067776:16:732 6794809681821680374846564933331430396213067777:16:732 6944861582307172628795969976576034688709852480:16:732 6944861582307172628795969976576034688709852481:16:733 6944861582307172628795969976576034688709852482:16:733 7098015749598531825802640365991889247225839615:16:733 7098015749598531825802640365991889247225839616:16:734 7098015749598531825802640365991889247225839617:16:734 7254331963784322816107772144618213043212890624:16:734 7254331963784322816107772144618213043212890625:16:735 7254331963784322816107772144618213043212890626:16:735 7413871073154363013017581564068960290142683135:16:735 7413871073154363013017581564068960290142683136:16:736 7413871073154363013017581564068960290142683137:16:736 7576695011794838017283278143228538105226595840:16:736 7576695011794838017283278143228538105226595841:16:737 7576695011794838017283278143228538105226595842:16:737 7742866817448723832712056145358096652178620415:16:737 7742866817448723832712056145358096652178620416:16:738 7742866817448723832712056145358096652178620417:16:738 7912450649645147436124528814537538851268260160:16:738 7912450649645147436124528814537538851268260161:16:739 7912450649645147436124528814537538851268260162:16:739 8085511808101362147180046581759999999999999999:16:739 8085511808101362147180046581760000000000000000:16:740 8085511808101362147180046581760000000000000001:16:740 8262116751401059413987360887296398903045563840:16:740 8262116751401059413987360887296398903045563841:16:741 8262116751401059413987360887296398903045563842:16:741 8442333115952784293461074028016697469430726655:16:741 8442333115952784293461074028016697469430726656:16:742 8442333115952784293461074028016697469430726657:16:742 8626229735232268065769248623630596492743753600:16:742 8626229735232268065769248623630596492743753601:16:743 8626229735232268065769248623630596492743753602:16:743 8813876659312538084677733946304500397774995455:16:743 8813876659312538084677733946304500397774995456:16:744 8813876659312538084677733946304500397774995457:16:744 9005345174685712134904056470901123199462890624:16:744 9005345174685712134904056470901123199462890625:16:745 9005345174685712134904056470901123199462890626:16:745 9200707824380432248558795951026757392673079295:16:745 9200707824380432248558795951026757392673079296:16:746 9200707824380432248558795951026757392673079297:16:746 9400038428378941130224987694442805353888662720:16:746 9400038428378941130224987694442805353888662721:16:747 9400038428378941130224987694442805353888662722:16:747 9603412104337853059095366556258785745526849535:16:747 9603412104337853059095366556258785745526849536:16:748 9603412104337853059095366556258785745526849537:16:748 9810905288616720381781922702292153748192488000:16:748 9810905288616720381781922702292153748192488001:16:749 9810905288616720381781922702292153748192488002:16:749 10022595757618546485900878906249999999999999999:16:749 10022595757618546485900878906250000000000000000:16:750 10022595757618546485900878906250000000000000001:16:750 10238562649446446457327579354755872970692512000:16:750 10238562649446446457327579354755872970692512001:16:751 10238562649446446457327579354755872970692512002:16:751 10458886485880707478159075801958656466313281535:16:751 10458886485880707478159075801958656466313281536:16:752 10458886485880707478159075801958656466313281537:16:752 10683649194680552423007274888706529565762430720:16:752 10683649194680552423007274888706529565762430721:16:753 10683649194680552423007274888706529565762430722:16:753 10912934132214962063403201168143721402476855295:16:753 10912934132214962063403201168143721402476855296:16:754 10912934132214962063403201168143721402476855297:16:754 11146826106426963798995303080398925933837890624:16:754 11146826106426963798995303080398925933837890625:16:755 11146826106426963798995303080398925933837890626:16:755 11385411400135847905085367426805707397404819455:16:755 11385411400135847905085367426805707397404819456:16:756 11385411400135847905085367426805707397404819457:16:756 11628777794681825924119887169157486526482385600:16:756 11628777794681825924119887169157486526482385601:16:757 11628777794681825924119887169157486526482385602:16:757 11877014593917700039340093504067184479562694655:16:757 11877014593917700039340093504067184479562694656:16:758 11877014593917700039340093504067184479562694657:16:758 12130212648552167057230112821152640275817139840:16:758 12130212648552167057230112821152640275817139841:16:759 12130212648552167057230112821152640275817139842:16:759 12388464380849435997072271605759999999999999999:16:759 12388464380849435997072271605760000000000000000:16:760 12388464380849435997072271605760000000000000001:16:760 12651863809689894246246792696299158564743884160:16:760 12651863809689894246246792696299158564743884161:16:761 12651863809689894246246792696299158564743884162:16:761 12920506575996613794368550275644225962251452415:16:761 12920506575996613794368550275644225962251452416:16:762 12920506575996613794368550275644225962251452417:16:762 13194489968532546213448211190274903735904763840:16:762 13194489968532546213448211190274903735904763841:16:763 13194489968532546213448211190274903735904763842:16:763 13473912950073312810554793976193836717636059135:16:763 13473912950073312810554793976193836717636059136:16:764 13473912950073312810554793976193836717636059137:16:764 13758876183960554749541295675922168121337890624:16:764 13758876183960554749541295675922168121337890625:16:765 13758876183960554749541295675922168121337890626:16:765 14049482061040866924918796376072559171553263615:16:765 14049482061040866924918796376072559171553263616:16:766 14049482061040866924918796376072559171553263617:16:766 14345834726995398979616225853967544906788884480:16:766 14345834726995398979616225853967544906788884481:16:767 14345834726995398979616225853967544906788884482:16:767 14648040110065267094876580444599852735215435775:16:767 14648040110065267094876580444599852735215435776:16:768 14648040110065267094876580444599852735215435777:16:768 14956205949177981050694862520614419666493255680:16:768 14956205949177981050694862520614419666493255681:16:769 14956205949177981050694862520614419666493255682:16:769 15270441822480152564822964777609999999999999999:16:769 15270441822480152564822964777610000000000000000:16:770 15270441822480152564822964777610000000000000001:16:770 15590859176281813073322554038087814143765440320:16:770 15590859176281813073322554038087814143765440321:16:771 15590859176281813073322554038087814143765440322:16:771 15917571354417731921855274119247479330408759295:16:771 15917571354417731921855274119247479330408759296:16:772 15917571354417731921855274119247479330408759297:16:772 16250693628031189400323268141382514706178432960:16:772 16250693628031189400323268141382514706178432961:16:773 16250693628031189400323268141382514706178432962:16:773 16590343225785723180121838562791249093266046975:16:773 16590343225785723180121838562791249093266046976:16:774 16590343225785723180121838562791249093266046977:16:774 16936639364510431509196781553328037261962890624:16:774 16936639364510431509196781553328037261962890625:16:775 16936639364510431509196781553328037261962890626:16:775 17289703280284481991415663124215971910858571775:16:775 17289703280284481991415663124215971910858571776:16:776 17289703280284481991415663124215971910858571777:16:776 17649658259966540929616816557983499436626079360:16:776 17649658259966540929616816557983499436626079361:16:777 17649658259966540929616816557983499436626079362:16:777 18016629673174905052291869407777180261139152895:16:777 18016629673174905052291869407777180261139152896:16:778 18016629673174905052291869407777180261139152897:16:778 18390745004724184978435166640476980981232675520:16:778 18390745004724184978435166640476980981232675521:16:779 18390745004724184978435166640476980981232675522:16:779 18772133887524458009953147944959999999999999999:16:779 18772133887524458009953147944960000000000000000:16:780 18772133887524458009953147944960000000000000001:16:780 19160928135948876782514070457977551146215740480:16:780 19160928135948876782514070457977551146215740481:16:781 19160928135948876782514070457977551146215740482:16:781 19557261779675789960228173023901822110809522175:16:781 19557261779675789960228173023901822110809522176:16:782 19557261779675789960228173023901822110809522177:16:782 19961271098011501533524723413736214556731918080:16:782 19961271098011501533524723413736214556731918081:16:783 19961271098011501533524723413736214556731918082:16:783 20373094654699866379529502857300075150433058815:16:783 20373094654699866379529502857300075150433058816:16:784 20373094654699866379529502857300075150433058817:16:784 20792873333224991576688469368245361480712890624:16:784 20792873333224991576688469368245361480712890625:16:785 20792873333224991576688469368245361480712890626:16:785 21220750372613385536925411340326213237761703935:16:785 21220750372613385536925411340326213237761703936:16:786 21220750372613385536925411340326213237761703937:16:786 21656871403741970335908990890977590106056690240:16:786 21656871403741970335908990890977590106056690241:16:787 21656871403741970335908990890977590106056690242:16:787 22101384486158446691734470017223649645104726015:16:787 22101384486158446691734470017223649645104726016:16:788 22101384486158446691734470017223649645104726017:16:788 22554440145420575871245879555620881129932039360:16:788 22554440145420575871245879555620881129932039361:16:789 22554440145420575871245879555620881129932039362:16:789 23016191410961018398135508467209999999999999999:16:789 23016191410961018398135508467210000000000000000:16:790 23016191410961018398135508467210000000000000001:16:790 23486793854484445804711576931825664451502144640:16:790 23486793854484445804711576931825664451502144641:16:791 23486793854484445804711576931825664451502144642:16:791 23966405628903718816726502270042068909666861055:16:791 23966405628903718816726502270042068909666861056:16:792 23966405628903718816726502270042068909666861057:16:792 24455187507822003294864770691710108097366499200:16:792 24455187507822003294864770691710108097366499201:16:793 24455187507822003294864770691710108097366499202:16:793 24953302925567773984411733051260069140360134655:16:793 24953302925567773984411733051260069140360134656:16:794 24953302925567773984411733051260069140360134657:16:794 25460918017789735653326773650468359527587890624:16:794 25460918017789735653326773650468359527587890625:16:795 25460918017789735653326773650468359527587890626:16:795 25978201662618771535544203436371809609340420095:16:795 25978201662618771535544203436371809609340420096:16:796 25978201662618771535544203436371809609340420097:16:796 26505325522404110147995011036983578729836237120:16:796 26505325522404110147995011036983578729836237121:16:797 26505325522404110147995011036983578729836237122:16:797 27042464086030983523808880891411574239631835135:16:797 27042464086030983523808880891411574239631835136:16:798 27042464086030983523808880891411574239631835137:16:798 27589794711827132707700121535130590945356787200:16:798 27589794711827132707700121535130590945356787201:16:799 27589794711827132707700121535130590945356787202:16:799 28147497671065599999999999999999999999999999999:16:799 28147497671065600000000000000000000000000000000:16:800 28147497671065600000000000000000000000000000001:16:800 28715756192071331920563656461769203998796812800:16:800 28715756192071331920563656461769203998796812801:16:801 28715756192071331920563656461769203998796812802:16:801 29294756504939202200300377967358630900950695935:16:801 29294756504939202200300377967358630900950695936:16:802 29294756504939202200300377967358630900950695937:16:802 29884687886871150303855889384118822238288256320:16:802 29884687886871150303855889384118822238288256321:16:803 29884687886871150303855889384118822238288256322:16:803 30485742708140218049575422077574057989291114495:16:803 30485742708140218049575422077574057989291114496:16:804 30485742708140218049575422077574057989291114497:16:804 31098116478689354829914550350469140777587890624:16:804 31098116478689354829914550350469140777587890625:16:805 31098116478689354829914550350469140777587890626:16:805 31722007895372950754616359221105341291005280255:16:805 31722007895372950754616359221105341291005280256:16:806 31722007895372950754616359221105341291005280257:16:806 32357618889849146747971313163447326102101040000:16:806 32357618889849146747971313163447326102101040001:16:807 32357618889849146747971313163447326102101040002:16:807 33005154677131061238111154749287612929860960255:16:807 33005154677131061238111154749287612929860960256:16:808 33005154677131061238111154749287612929860960257:16:808 33664823804805164588409590263448394734885159040:16:808 33664823804805164588409590263448394734885159041:16:809 33664823804805164588409590263448394734885159042:16:809 34336838202925124846578490892809999999999999999:16:809 34336838202925124846578490892810000000000000000:16:810 34336838202925124846578490892810000000000000001:16:810 35021413234589541733926052748524075339612704960:16:810 35021413234589541733926052748524075339612704961:16:811 35021413234589541733926052748524075339612704962:16:811 35718767747212080073509509560422963242195746815:16:811 35718767747212080073509509560422963242195746816:16:812 35718767747212080073509509560422963242195746817:16:812 36429124124492609069656133986942494587100069440:16:812 36429124124492609069656133986942494587100069441:16:813 36429124124492609069656133986942494587100069442:16:813 37152708339098050010689187112312122573114638335:16:813 37152708339098050010689187112312122573114638336:16:814 37152708339098050010689187112312122573114638337:16:814 37889750006061732079887578678328955230712890624:16:814 37889750006061732079887578678328955230712890625:16:815 37889750006061732079887578678328955230712890626:16:815 38640482436910154034997663844621841991955644415:16:815 38640482436910154034997663844621841991955644416:16:816 38640482436910154034997663844621841991955644417:16:816 39405142694526148562332566947772973561296218880:16:816 39405142694526148562332566947772973561296218881:16:817 39405142694526148562332566947772973561296218882:16:817 40183971648757546136030169227352093871665381375:16:817 40183971648757546136030169227352093871665381376:16:818 40183971648757546136030169227352093871665381377:16:818 40977214032780536224849026297689376974012194880:16:818 40977214032780536224849026297689376974012194881:16:819 40977214032780536224849026297689376974012194882:16:819 41785118500227025696478095605759999999999999999:16:819 41785118500227025696478095605760000000000000000:16:820 41785118500227025696478095605760000000000000001:16:820 42607937683085397281300245041010886340139581120:16:820 42607937683085397281300245041010886340139581121:16:821 42607937683085397281300245041010886340139581122:16:821 43445928250384174982523346061731521556549533695:16:821 43445928250384174982523346061731521556549533696:16:822 43445928250384174982523346061731521556549533697:16:822 44299350967668208366282255399343252920033618560:16:822 44299350967668208366282255399343252920033618561:16:823 44299350967668208366282255399343252920033618562:16:823 45168470757277093742490138560910256805748146175:16:823 45168470757277093742490138560910256805748146176:16:824 45168470757277093742490138560910256805748146177:16:824 46053556759435657363712810911238193511962890624:16:824 46053556759435657363712810911238193511962890625:16:825 46053556759435657363712810911238193511962890626:16:825 46954882394166433934054332150465510298395672575:16:825 46954882394166433934054332150465510298395672576:16:826 46954882394166433934054332150465510298395672577:16:826 47872725424034182941940486795536693637343693760:16:826 47872725424034182941940486795536693637343693761:16:827 47872725424034182941940486795536693637343693762:16:827 48807368017732595618799149337008843968003178495:16:827 48807368017732595618799149337008843968003178496:16:828 48807368017732595618799149337008843968003178497:16:828 49759096814523456689059033772455312845613734720:16:828 49759096814523456689059033772455312845613734721:16:829 49759096814523456689059033772455312845613734722:16:829 50728202989538637524783563996809999999999999999:16:829 50728202989538637524783563996810000000000000000:16:830 50728202989538637524783563996810000000000000001:16:830 51714982319955410859854013784539757889340001280:16:830 51714982319955410859854013784539757889340001281:16:831 51714982319955410859854013784539757889340001282:16:831 52719735252055691863212337317401234073060376575:16:831 52719735252055691863212337317401234073060376576:16:832 52719735252055691863212337317401234073060376577:16:832 53742766969179926127633580434031345015421383680:16:832 53742766969179926127633580434031345015421383681:16:833 53742766969179926127633580434031345015421383682:16:833 54784387460586462009252828357190641565281878015:16:833 54784387460586462009252828357190641565281878016:16:834 54784387460586462009252828357190641565281878017:16:834 55844911591227362763123181005565136871337890624:16:834 55844911591227362763123181005565136871337890625:16:835 55844911591227362763123181005565136871337890626:16:835 56924659172451733070999013332195810280510324735:16:835 56924659172451733070999013332195810280510324736:16:836 56924659172451733070999013332195810280510324737:16:836 58023955033647754858961840196176896693050184640:16:836 58023955033647754858961840196176896693050184641:16:837 58023955033647754858961840196176896693050184642:16:837 59143129094834748764143249085728555891509231615:16:837 59143129094834748764143249085728555891509231616:16:838 59143129094834748764143249085728555891509231617:16:838 60282516440216700241429516610105363168970418560:16:838 60282516440216700241429516610105363168970418561:16:839 60282516440216700241429516610105363168970418562:16:839 61442457392708813112505175900159999999999999999:16:839 61442457392708813112505175900160000000000000000:16:840 61442457392708813112505175900160000000000000001:16:840 62623297589448778360828428329074752308805325440:16:840 62623297589448778360828428329074752308805325441:16:841 62623297589448778360828428329074752308805325442:16:841 63825388058304572177121783134275087057205395455:16:841 63825388058304572177121783134275087057205395456:16:842 63825388058304572177121783134275087057205395457:16:842 65049085295390724670770391731498624577408644800:16:842 65049085295390724670770391731498624577408644801:16:843 65049085295390724670770391731498624577408644802:16:843 66294751343605129293284219119717208721882873855:16:843 66294751343605129293284219119717208721882873856:16:844 66294751343605129293284219119717208721882873857:16:844 67562753872198592880907164329343457183837890624:16:844 67562753872198592880907164329343457183837890625:16:845 67562753872198592880907164329343457183837890626:16:845 68853466257389457324828343144510916089201360895:16:845 68853466257389457324828343144510916089201360896:16:846 68853466257389457324828343144510916089201360897:16:846 70167267664035756229623389452158504311755211520:16:846 70167267664035756229623389452158504311755211521:16:847 70167267664035756229623389452158504311755211522:16:847 71504543128377503533956237183392785901327220735:16:847 71504543128377503533956237183392785901327220736:16:848 71504543128377503533956237183392785901327220737:16:848 72865683641861845952708284364888962902551686400:16:848 72865683641861845952708284364888962902551686401:16:849 72865683641861845952708284364888962902551686402:16:849 74251086236063947267150878906249999999999999999:16:849 74251086236063947267150878906250000000000000000:16:850 74251086236063947267150878906250000000000000001:16:850 75661154068716609950192804663482548200371713600:16:850 75661154068716609950192804663482548200371713601:16:851 75661154068716609950192804663482548200371713602:16:851 77096296510861778377846772497171701803658510335:16:851 77096296510861778377846772497171701803658510336:16:852 77096296510861778377846772497171701803658510337:16:852 78556929235137207956673953841751019617905481920:16:852 78556929235137207956673953841751019617905481921:16:853 78556929235137207956673953841751019617905481922:16:853 80043474305211725900966136783693825571458973695:16:853 80043474305211725900966136783693825571458973696:16:854 80043474305211725900966136783693825571458973697:16:854 81556360266382652133771076526878466949462890624:16:854 81556360266382652133771076526878466949462890625:16:855 81556360266382652133771076526878466949462890626:16:855 83096022237349092873595584849251463998583341055:16:855 83096022237349092873595584849251463998583341056:16:856 83096022237349092873595584849251463998583341057:16:856 84662902003174964914848437128975121623219094400:16:856 84662902003174964914848437128975121623219094401:16:857 84662902003174964914848437128975121623219094402:16:857 86257448109455755426005359477681839542181625855:16:857 86257448109455755426005359477681839542181625856:16:858 86257448109455755426005359477681839542181625857:16:858 87880115957703170286364251073514049844559778240:16:858 87880115957703170286364251073514049844559778241:16:859 87880115957703170286364251073514049844559778242:16:859 89531367901961973571462890127359999999999999999:16:859 89531367901961973571462890127360000000000000000:16:860 89531367901961973571462890127360000000000000001:16:860 91211673346673471790186057694437248707496125760:16:860 91211673346673471790186057694437248707496125761:16:861 91211673346673471790186057694437248707496125762:16:861 92921508845800248884807050940607287703298441215:16:861 92921508845800248884807050940607287703298441216:16:862 92921508845800248884807050940607287703298441217:16:862 94661358203226911840283543454061440704778775040:16:862 94661358203226911840283543454061440704778775041:16:863 94661358203226911840283543454061440704778775042:16:863 96431712574451762022734591964536945819082817535:16:863 96431712574451762022734591964536945819082817536:16:864 96431712574451762022734591964536945819082817537:16:864 98233070569584464090920978503022119293212890624:16:864 98233070569584464090920978503022119293212890625:16:865 98233070569584464090920978503022119293212890626:16:865 100065938357664942510573968493027579190239625215:16:865 100065938357664942510573968493027579190239625216:16:866 100065938357664942510573968493027579190239625217:16:866 101930829772318895361489653275118035799750953280:16:866 101930829772318895361489653275118035799750953281:16:867 101930829772318895361489653275118035799750953282:16:867 103828266418765476273432247099615764553689726975:16:867 103828266418765476273432247099615764553689726976:16:868 103828266418765476273432247099615764553689726977:16:868 105758777782192857971158646418414430395233734080:16:868 105758777782192857971158646418414430395233734081:16:869 105758777782192857971158646418414430395233734082:16:869 107722901337517555063461047686409999999999999999:16:869 107722901337517555063461047686410000000000000000:16:870 107722901337517555063461047686410000000000000001:16:870 109721182660543549388281952810837735606392321920:16:870 109721182660543549388281952810837735606392321921:16:871 109721182660543549388281952810837735606392321922:16:871 111754175540537428438029132795693303736456708095:16:871 111754175540537428438029132795693303736456708096:16:872 111754175540537428438029132795693303736456708097:16:872 113822442094235916148635396512492183924284204160:16:872 113822442094235916148635396512492183924284204161:16:873 113822442094235916148635396512492183924284204162:16:873 115926552881302345655183806812679453896175845375:16:873 115926552881302345655183806812679453896175845376:16:874 115926552881302345655183806812679453896175845377:16:874 118067087021248795508654438890516757965087890624:16:874 118067087021248795508654438890516757965087890625:16:875 118067087021248795508654438890516757965087890626:16:875 120244632311840784325232178448706247615238373375:16:875 120244632311840784325232178448706247615238373376:16:876 120244632311840784325232178448706247615238373377:16:876 122459785349001593914422358130373992594576708160:16:876 122459785349001593914422358130373992594576708161:16:877 122459785349001593914422358130373992594576708162:16:877 124713151648233467617816338010647446957913604095:16:877 124713151648233467617816338010647446957913604096:16:878 124713151648233467617816338010647446957913604097:16:878 127005345767573108899685224042458006284913393920:16:878 127005345767573108899685224042458006284913393921:16:879 127005345767573108899685224042458006284913393922:16:879 129336991432099085176698736476159999999999999999:16:879 129336991432099085176698736476160000000000000000:16:880 129336991432099085176698736476160000000000000001:16:880 131708721660008923470099423598247998282926862080:16:880 131708721660008923470099423598247998282926862081:16:881 131708721660008923470099423598247998282926862082:16:881 134121178890283867722831799130693446184405630975:16:881 134121178890283867722831799130693446184405630976:16:882 134121178890283867722831799130693446184405630977:16:882 136575015111959452559744113777095423245738249280:16:882 136575015111959452559744113777095423245738249281:16:883 136575015111959452559744113777095423245738249282:16:883 139070891995020234894451135252514938835452297215:16:883 139070891995020234894451135252514938835452297216:16:884 139070891995020234894451135252514938835452297217:16:884 141609481022937213115265042763657617340087890624:16:884 141609481022937213115265042763657617340087890625:16:885 141609481022937213115265042763657617340087890626:16:885 144191463626866653628356153711877649509908545535:16:885 144191463626866653628356153711877649509908545536:16:886 144191463626866653628356153711877649509908545537:16:886 146817531321529236312676306282623393034447079040:16:886 146817531321529236312676306282623393034447079041:16:887 146817531321529236312676306282623393034447079042:16:887 149488385842788623961939264560422733333152137215:16:887 149488385842788623961939264560422733333152137216:16:888 149488385842788623961939264560422733333152137217:16:888 152204739286948756067972294930900934011863397760:16:888 152204739286948756067972294930900934011863397761:16:889 152204739286948756067972294930900934011863397762:16:889 154967314251789364350993277305609999999999999999:16:889 154967314251789364350993277305610000000000000000:16:890 154967314251789364350993277305610000000000000001:16:890 157776843979359406279885481870816838491275106240:16:890 157776843979359406279885481870816838491275106241:16:891 157776843979359406279885481870816838491275106242:16:891 160634072500548313463490044804309779391086329855:16:891 160634072500548313463490044804309779391086329856:16:892 160634072500548313463490044804309779391086329857:16:892 163539754781455154246562801000970365216430190400:16:892 163539754781455154246562801000970365216430190401:16:893 163539754781455154246562801000970365216430190402:16:893 166494656871576014125692609744488796167623213055:16:893 166494656871576014125692609744488796167623213056:16:894 166494656871576014125692609744488796167623213057:16:894 169499556053830103725594861601374072418212890624:16:894 169499556053830103725594861601374072418212890625:16:895 169499556053830103725594861601374072418212890626:16:895 172555240996445312059316339412827644581375901695:16:895 172555240996445312059316339412827644581375901696:16:896 172555240996445312059316339412827644581375901697:16:896 175662511906724132651654067057677324218485585920:16:896 175662511906724132651654067057677324218485585921:16:897 175662511906724132651654067057677324218485585922:16:897 178822180686711101848237998625567235721973006335:16:897 178822180686711101848237998625567235721973006336:16:898 178822180686711101848237998625567235721973006337:16:898 182035071090783102278091452169365461373857185600:16:898 182035071090783102278091452169365461373857185601:16:899 182035071090783102278091452169365461373857185602:16:899 185302018885184099999999999999999999999999999999:16:899 185302018885184100000000000000000000000000000000:16:900 185302018885184100000000000000000000000000000001:16:900 188623872009526101357725423927595982830337214400:16:900 188623872009526101357725423927595982830337214401:16:901 188623872009526101357725423927595982830337214402:16:901 192001490740278335011133631883088195047076724735:16:901 192001490740278335011133631883088195047076724736:16:902 192001490740278335011133631883088195047076724737:16:902 195435747856266886014902949871610871554774107520:16:902 195435747856266886014902949871610871554774107521:16:903 195435747856266886014902949871610871554774107522:16:903 198927528806207232198982889977743155343860432895:16:903 198927528806207232198982889977743155343860432896:16:904 198927528806207232198982889977743155343860432897:16:904 202477731878292358480826962238679638824462890624:16:904 202477731878292358480826962238679638824462890625:16:905 202477731878292358480826962238679638824462890626:16:905 206087268371859352124173199991917023518859001855:16:905 206087268371859352124173199991917023518859001856:16:906 206087268371859352124173199991917023518859001857:16:906 209757062771157611368443476975539787615276548800:16:906 209757062771157611368443476975539787615276548801:16:907 209757062771157611368443476975539787615276548802:16:907 213488052921242031302432477099447991461484691455:16:907 213488052921242031302432477099447991461484691456:16:908 213488052921242031302432477099447991461484691457:16:908 217281190206014764361719376049662846917520997440:16:908 217281190206014764361719376049662846917520997441:16:909 217281190206014764361719376049662846917520997442:16:909 221137439728439388407125506134409999999999999999:16:909 221137439728439388407125506134410000000000000000:16:910 221137439728439388407125506134410000000000000001:16:910 225057780492951553007631241991693869113914146560:16:910 225057780492951553007631241991693869113914146561:16:911 225057780492951553007631241991693869113914146562:16:911 229043205590090414321633533864635859707799535615:16:911 229043205590090414321633533864635859707799535616:16:912 229043205590090414321633533864635859707799535617:16:912 233094722383375410861557714958060978249700880640:16:912 233094722383375410861557714958060978249700880641:16:913 233094722383375410861557714958060978249700880642:16:913 237213352698453176455027119287599210028020596735:16:913 237213352698453176455027119287599210028020596736:16:914 237213352698453176455027119287599210028020596737:16:914 241400133014539632897543872521290722808837890624:16:914 241400133014539632897543872521290722808837890625:16:915 241400133014539632897543872521290722808837890626:16:915 245656114658182553143555271253294480326725206015:16:915 245656114658182553143555271253294480326725206016:16:916 245656114658182553143555271253294480326725206017:16:916 249982363999370136421593461620590391290193087680:16:916 249982363999370136421593461620590391290193087681:16:917 249982363999370136421593461620590391290193087682:16:917 254379962650011389401712989980269744463848472575:16:917 254379962650011389401712989980269744463848472576:16:918 254379962650011389401712989980269744463848472577:16:918 258850007664814362506653464185428842369437873280:16:918 258850007664814362506653464185428842369437873281:16:919 258850007664814362506653464185428842369437873282:16:919 263393611744588547659076793794559999999999999999:16:919 263393611744588547659076793794560000000000000000:16:920 263393611744588547659076793794560000000000000001:16:920 268011903441998003213036164646721394250643662720:16:920 268011903441998003213036164646721394250643662721:16:921 268011903441998003213036164646721394250643662722:16:921 272706027369792033545805688070627506097970282495:16:921 272706027369792033545805688070627506097970282496:16:922 272706027369792033545805688070627506097970282497:16:922 277477144411540514803727551559151209214290189760:16:922 277477144411540514803727551559151209214290189761:16:923 277477144411540514803727551559151209214290189762:16:923 282326431934901224620323472702091393242629144575:16:923 282326431934901224620323472702091393242629144576:16:924 282326431934901224620323472702091393242629144577:16:924 287255084007446802274189912714064121246337890624:16:924 287255084007446802274189912714064121246337890625:16:925 287255084007446802274189912714064121246337890626:16:925 292264311615079236745887660263319819015306674175:16:925 292264311615079236745887660263319819015306674176:16:926 292264311615079236745887660263319819015306674177:16:926 297355342883060053484997727064540085134965122560:16:926 297355342883060053484997727064540085134965122561:16:927 297355342883060053484997727064540085134965122562:16:927 302529423299684646428715166720755903115030429695:16:927 302529423299684646428715166720755903115030429696:16:928 302529423299684646428715166720755903115030429697:16:928 307787815942629479939875719505840889153011653120:16:928 307787815942629479939875719505840889153011653121:16:929 307787815942629479939875719505840889153011653122:16:929 313131801708001165873360134608009999999999999999:16:929 313131801708001165873360134608010000000000000000:16:930 313131801708001165873360134608010000000000000001:16:930 318562679542116703953719056995529143889696322880:16:930 318562679542116703953719056995529143889696322881:16:931 318562679542116703953719056995529143889696322882:16:931 324081766676044459072047951454266637194285285375:16:931 324081766676044459072047951454266637194285285376:16:932 324081766676044459072047951454266637194285285377:16:932 329690398862935737005176811934751674381642514880:16:932 329690398862935737005176811934751674381642514881:16:933 329690398862935737005176811934751674381642514882:16:933 335389930618177110443803834653849052792624316415:16:933 335389930618177110443803834653849052792624316416:16:934 335389930618177110443803834653849052792624316417:16:934 341181735462393940107097256353753271636962890624:16:934 341181735462393940107097256353753271636962890625:16:935 341181735462393940107097256353753271636962890626:16:935 347067206167335831138438238213911230425476366335:16:935 347067206167335831138438238213911230425476366336:16:936 347067206167335831138438238213911230425476366337:16:936 353047755004675062939425355132205376411487373440:16:936 353047755004675062939425355132205376411487373441:16:937 353047755004675062939425355132205376411487373442:16:937 359124813997749331126176211711537148999793442815:16:937 359124813997749331126176211711537148999793442816:16:938 359124813997749331126176211711537148999793442817:16:938 365299835176280443402635831455890391935090976960:16:938 365299835176280443402635831455890391935090976961:16:939 365299835176280443402635831455890391935090976962:16:939 371574290834100916859450897858559999999999999999:16:939 371574290834100916859450897858560000000000000000:16:940 371574290834100916859450897858560000000000000001:16:940 377949673789920732543534737312056731928231487040:16:940 377949673789920732543534737312056731928231487041:16:941 377949673789920732543534737312056731928231487042:16:941 384427497651166814122396793873320919118349664255:16:941 384427497651166814122396793873320919118349664256:16:942 384427497651166814122396793873320919118349664257:16:942 391009297080928111108435194400528752370991136000:16:942 391009297080928111108435194400528752370991136001:16:943 391009297080928111108435194400528752370991136002:16:943 397696628068039483431611723566298668630861152255:16:943 397696628068039483431611723566298668630861152256:16:944 397696628068039483431611723566298668630861152257:16:944 404491068200337903174292628236433252105712890624:16:944 404491068200337903174292628236433252105712890625:16:945 404491068200337903174292628236433252105712890626:16:945 411394216941124811029721959184206344402984042495:16:945 411394216941124811029721959184206344402984042496:16:946 411394216941124811029721959184206344402984042497:16:946 418407695908868789535901431148393682761867360320:16:946 418407695908868789535901431148393682761867360321:16:947 418407695908868789535901431148393682761867360322:16:947 425533149160183042390016508919010476100929191935:16:947 425533149160183042390016508919010476100929191936:16:948 425533149160183042390016508919010476100929191937:16:948 432772243476112499185537438926822888786353284800:16:948 432772243476112499185537438926822888786353284801:16:949 432772243476112499185537438926822888786353284802:16:949 440126668651765697755432128906249999999999999999:16:949 440126668651765697755432128906250000000000000000:16:950 440126668651765697755432128906250000000000000001:16:950 447598137789326931971382768733729765016613315200:16:950 447598137789326931971382768733729765016613315201:16:951 447598137789326931971382768733729765016613315202:16:951 455188387594484491361459967798314895511845339135:16:951 455188387594484491361459967798314895511845339136:16:952 455188387594484491361459967798314895511845339137:16:952 462899178676311160288470191817767102492054133120:16:952 462899178676311160288470191817767102492054133121:16:953 462899178676311160288470191817767102492054133122:16:953 470732295850633488699381501864180796869375492095:16:953 470732295850633488699381501864180796869375492096:16:954 470732295850633488699381501864180796869375492097:16:954 478689548446926693634210678005794531402587890624:16:954 478689548446926693634210678005794531402587890625:16:955 478689548446926693634210678005794531402587890626:16:955 486772770618772400792018667486250203178552262655:16:955 486772770618772400792018667486250203178552262656:16:956 486772770618772400792018667486250203178552262657:16:956 494983821657916788513843834483616557276713403200:16:956 494983821657916788513843834483616557276713403201:16:957 494983821657916788513843834483616557276713403202:16:957 503324586311967052579273306683694707960730157055:16:957 503324586311967052579273306683694707960730157056:16:958 503324586311967052579273306683694707960730157057:16:958 511796975105764469246818833449664102979448816640:16:958 511796975105764469246818833449664102979448816641:16:959 511796975105764469246818833449664102979448816642:16:959 520402924666472696020370152488959999999999999999:16:959 520402924666472696020370152488960000000000000000:16:960 520402924666472696020370152488960000000000000001:16:960 529144398052420314716929933900838757437386767360:16:960 529144398052420314716929933900838757437386767361:16:961 529144398052420314716929933900838757437386767362:16:961 538023385085736989566913553890063998305939030015:16:961 538023385085736989566913553890063998305939030016:16:962 538023385085736989566913553890063998305939030017:16:962 547041902688822984319988192310782565895626386240:16:962 547041902688822984319988192310782565895626386241:16:963 547041902688822984319988192310782565895626386242:16:963 556201995224692156679334055418262168980407975935:16:963 556201995224692156679334055418262168980407975936:16:964 556201995224692156679334055418262168980407975937:16:964 565505734841228925868082701784355468902587890624:16:964 565505734841228925868082701784355468902587890625:16:965 565505734841228925868082701784355468902587890626:16:965 574955221819400089766412836926913577649732386815:16:965 574955221819400089766412836926913577649732386816:16:966 574955221819400089766412836926913577649732386817:16:966 584552584925462751869395163628086631253662622080:16:966 584552584925462751869395163628086631253662622081:16:967 584552584925462751869395163628086631253662622082:16:967 594299981767210005327351580788676166532701618175:16:967 594299981767210005327351580788676166532701618176:16:968 594299981767210005327351580788676166532701618177:16:968 604199599154296411565551642155280959688904612480:16:968 604199599154296411565551642155280959688904612481:16:969 604199599154296411565551642155280959688904612482:16:969 614253653462685704461977675955209999999999999999:16:969 614253653462685704461977675955210000000000000000:16:970 614253653462685704461977675955210000000000000001:16:970 624464391003263547814262572391373439174013603520:16:970 624464391003263547814262572391373439174013603521:16:971 624464391003263547814262572391373439174013603522:16:971 634834088394658573873501258651109673636930256895:16:971 634834088394658573873501258651109673636930256896:16:972 634834088394658573873501258651109673636930256897:16:972 645365052940315334087366398974229257118411575360:16:972 645365052940315334087366398974229257118411575361:16:973 645365052940315334087366398974229257118411575362:16:973 656059623009863199901877552093561823371188043775:16:973 656059623009863199901877552093561823371188043776:16:974 656059623009863199901877552093561823371188043777:16:974 666920168424825661544486903585493564605712890624:16:974 666920168424825661544486903585493564605712890625:16:975 666920168424825661544486903585493564605712890626:16:975 677949090848714886175209893608363663300520574975:16:975 677949090848714886175209893608363663300520574976:16:976 677949090848714886175209893608363663300520574977:16:976 689148824181556813671852597079214120918148936960:16:976 689148824181556813671852597079214120918148936961:16:977 689148824181556813671852597079214120918148936962:16:977 700521834958892488634628266289427367091513655295:16:977 700521834958892488634628266289427367091513655296:16:978 700521834958892488634628266289427367091513655297:16:978 712070622755301750979424146241825665896788512320:16:978 712070622755301750979424146241825665896788512321:16:979 712070622755301750979424146241825665896788512322:16:979 723797720592495834762640884367359999999999999999:16:979 723797720592495834762640884367360000000000000000:16:980 723797720592495834762640884367360000000000000001:16:980 735705695352025855668998963141659948625368383680:16:980 735705695352025855668998963141659948625368383681:16:981 735705695352025855668998963141659948625368383682:16:981 747797148192654601922262782556787983100139339775:16:981 747797148192654601922262782556787983100139339776:16:982 747797148192654601922262782556787983100139339777:16:982 760074714972439481272902111499873191110094180480:16:982 760074714972439481272902111499873191110094180481:16:983 760074714972439481272902111499873191110094180482:16:983 772541066675574918201877818503965663956477935615:16:983 772541066675574918201877818503965663956477935616:16:984 772541066675574918201877818503965663956477935617:16:984 785198909844042940581746493124045459136962890624:16:984 785198909844042940581746493124045459136962890625:16:985 785198909844042940581746493124045459136962890626:16:985 798050987014121143781027197919571890734733787135:16:985 798050987014121143781027197919571890734733787136:16:986 798050987014121143781027197919571890734733787137:16:986 811100077157797672611322382168465170618411067840:16:986 811100077157797672611322382168465170618411067841:16:987 811100077157797672611322382168465170618411067842:16:987 824348996129143317625252803071517924609193148415:16:987 824348996129143317625252803071517924609193148416:16:988 824348996129143317625252803071517924609193148417:16:988 837800597115691282103232440009173627648133156160:16:988 837800597115691282103232440009173627648133156161:16:989 837800597115691282103232440009173627648133156162:16:989 851457771094875639645014411984009999999999999999:16:989 851457771094875639645014411984010000000000000000:16:990 851457771094875639645014411984010000000000000001:16:990 865323447295579969634485455889342245261994467840:16:990 865323447295579969634485455889342245261994467841:16:991 865323447295579969634485455889342245261994467842:16:991 879400593664848129000240134405750655574035398655:16:991 879400593664848129000240134405750655574035398656:16:992 879400593664848129000240134405750655574035398657:16:992 893692217339809593677055887744746833070651481600:16:992 893692217339809593677055887744746833070651481601:16:993 893692217339809593677055887744746833070651481602:16:993 908201365124872282011710154306651050592876691455:16:993 908201365124872282011710154306651050592876691456:16:994 908201365124872282011710154306651050592876691457:16:994 922931123974236255077990287403075683746337890624:16:994 922931123974236255077990287403075683746337890625:16:995 922931123974236255077990287403075683746337890626:16:995 937884621479782175497771346385112351239145783295:16:995 937884621479782175497771346385112351239145783296:16:996 937884621479782175497771346385112351239145783297:16:996 953065026364388896935368571580234372846740534720:16:996 953065026364388896935368571580234372846740534721:16:997 953065026364388896935368571580234372846740534722:16:997 968475548980735050968870911253786134445555777535:16:997 968475548980735050968870911253786134445555777536:16:998 968475548980735050968870911253786134445555777537:16:998 984119441815639996572858568003633819440119984000:16:998 984119441815639996572858568003633819440119984001:16:999 984119441815639996572858568003633819440119984002:16:999 0:32:0 1:32:1 2:32:1 4294967295:32:1 4294967296:32:2 4294967297:32:2 1853020188851840:32:2 1853020188851841:32:3 1853020188851842:32:3 18446744073709551615:32:3 18446744073709551616:32:4 18446744073709551617:32:4 23283064365386962890624:32:4 23283064365386962890625:32:5 23283064365386962890626:32:5 7958661109946400884391935:32:5 7958661109946400884391936:32:6 7958661109946400884391937:32:6 1104427674243920646305299200:32:6 1104427674243920646305299201:32:7 1104427674243920646305299202:32:7 79228162514264337593543950335:32:7 79228162514264337593543950336:32:8 79228162514264337593543950337:32:8 3433683820292512484657849089280:32:8 3433683820292512484657849089281:32:9 3433683820292512484657849089282:32:9 2111377674535255285545615254209920:32:10 2111377674535255285545615254209921:32:11 2111377674535255285545615254209922:32:11 34182189187166852111368841966125055:32:11 34182189187166852111368841966125056:32:12 34182189187166852111368841966125057:32:12 442779263776840698304313192148785280:32:12 442779263776840698304313192148785281:32:13 442779263776840698304313192148785282:32:13 4743480741674980702700443299789930495:32:13 4743480741674980702700443299789930496:32:14 4743480741674980702700443299789930497:32:14 43143988327398919500410556793212890624:32:14 43143988327398919500410556793212890625:32:15 43143988327398919500410556793212890626:32:15 340282366920938463463374607431768211455:32:15 340282366920938463463374607431768211456:32:16 340282366920938463463374607431768211457:32:16 2367911594760467245844106297320951247360:32:16 2367911594760467245844106297320951247361:32:17 2367911594760467245844106297320951247362:32:17 14747559712960682275277163588165279154175:32:17 14747559712960682275277163588165279154176:32:18 14747559712960682275277163588165279154177:32:18 83198449060887472631428936505541918917760:32:18 83198449060887472631428936505541918917761:32:19 83198449060887472631428936505541918917762:32:19 429496729599999999999999999999999999999999:32:19 429496729600000000000000000000000000000000:32:20 429496729600000000000000000000000000000001:32:20 2046526777500669368329342638102622164679040:32:20 2046526777500669368329342638102622164679041:32:21 2046526777500669368329342638102622164679042:32:21 9068298061633453450429559033030337013743615:32:21 9068298061633453450429559033030337013743616:32:22 9068298061633453450429559033030337013743617:32:22 37608910510519071039902074217516707306379520:32:22 37608910510519071039902074217516707306379521:32:23 37608910510519071039902074217516707306379522:32:23 146811384664566452713597726037899455366168575:32:23 146811384664566452713597726037899455366168576:32:24 146811384664566452713597726037899455366168577:32:24 542101086242752217003726400434970855712890624:32:24 542101086242752217003726400434970855712890625:32:25 542101086242752217003726400434970855712890626:32:25 1901722457268488241418827816020396748021170175:32:25 1901722457268488241418827816020396748021170176:32:26 1901722457268488241418827816020396748021170177:32:26 6362685441135942358474828762538534230890216320:32:26 6362685441135942358474828762538534230890216321:32:27 6362685441135942358474828762538534230890216322:32:27 20373094654699866379529502857300075150433058815:32:27 20373094654699866379529502857300075150433058816:32:28 20373094654699866379529502857300075150433058817:32:28 62623297589448778360828428329074752308805325440:32:28 62623297589448778360828428329074752308805325441:32:29 62623297589448778360828428329074752308805325442:32:29 185302018885184099999999999999999999999999999999:32:29 185302018885184100000000000000000000000000000000:32:30 185302018885184100000000000000000000000000000001:32:30 529144398052420314716929933900838757437386767360:32:30 529144398052420314716929933900838757437386767361:32:31 529144398052420314716929933900838757437386767362:32:31 1461501637330902918203684832716283019655932542975:32:31 1461501637330902918203684832716283019655932542976:32:32 1461501637330902918203684832716283019655932542977:32:32 3912425457204879631503516058626198046646581314560:32:32 3912425457204879631503516058626198046646581314561:32:33 3912425457204879631503516058626198046646581314562:32:33 10170102859315411774579628461341138023025901305855:32:33 10170102859315411774579628461341138023025901305856:32:34 10170102859315411774579628461341138023025901305857:32:34 25714460626335829643190354132093489170074462890624:32:34 25714460626335829643190354132093489170074462890625:32:35 25714460626335829643190354132093489170074462890626:32:35 63340286662973277706162286946811886609896461828095:32:35 63340286662973277706162286946811886609896461828096:32:36 63340286662973277706162286946811886609896461828097:32:36 152214200233450528559804138174517974884637692126080:32:36 152214200233450528559804138174517974884637692126081:32:37 152214200233450528559804138174517974884637692126082:32:37 357334617794433607688082344039363064508867208544255:32:37 357334617794433607688082344039363064508867208544256:32:38 357334617794433607688082344039363064508867208544257:32:38 820478914983440471652837469810666679283466230552320:32:38 820478914983440471652837469810666679283466230552321:32:39 820478914983440471652837469810666679283466230552322:32:39 1844674407370955161599999999999999999999999999999999:32:39 1844674407370955161600000000000000000000000000000000:32:40 1844674407370955161600000000000000000000000000000001:32:40 4065214023175683899921868126254722311886802750234880:32:40 4065214023175683899921868126254722311886802750234881:32:41 4065214023175683899921868126254722311886802750234882:32:41 8789765579753643555083504787829125689141207431643135:32:41 8789765579753643555083504787829125689141207431643136:32:42 8789765579753643555083504787829125689141207431643137:32:42 18663392025969146670022260524972832947786731075670400:32:42 18663392025969146670022260524972832947786731075670401:32:43 18663392025969146670022260524972832947786731075670402:32:43 38948043605095874909133313198566681249887133248782335:32:43 38948043605095874909133313198566681249887133248782336:32:44 38948043605095874909133313198566681249887133248782337:32:44 79946681398258369524447459012293256819248199462890624:32:44 79946681398258369524447459012293256819248199462890625:32:45 79946681398258369524447459012293256819248199462890626:32:45 161529040680870074100680119806799048214504294859145215:32:45 161529040680870074100680119806799048214504294859145216:32:46 161529040680870074100680119806799048214504294859145217:32:46 321463340914028260476243062478235279920395730789296640:32:46 321463340914028260476243062478235279920395730789296641:32:47 321463340914028260476243062478235279920395730789296642:32:47 630550095814788844423632687832745817333905738742890495:32:47 630550095814788844423632687832745817333905738742890496:32:48 630550095814788844423632687832745817333905738742890497:32:48 1219760487635835700138573862562971820755615294131238400:32:48 1219760487635835700138573862562971820755615294131238401:32:49 1219760487635835700138573862562971820755615294131238402:32:49 2328306436538696289062499999999999999999999999999999999:32:49 2328306436538696289062500000000000000000000000000000000:32:50 2328306436538696289062500000000000000000000000000000001:32:50 4387787990507505011654239248920742329139891155371241600:32:50 4387787990507505011654239248920742329139891155371241601:32:51 4387787990507505011654239248920742329139891155371241602:32:51 8167835760036914488254418108462708901695678621570564095:32:51 8167835760036914488254418108462708901695678621570564096:32:52 8167835760036914488254418108462708901695678621570564097:32:52 15025461748906708859452861070130993269553796873817927040:32:52 15025461748906708859452861070130993269553796873817927041:32:53 15025461748906708859452861070130993269553796873817927042:32:53 27327525884414205519790497974303154461449992065060438015:32:53 27327525884414205519790497974303154461449992065060438016:32:54 27327525884414205519790497974303154461449992065060438017:32:54 49159342295845395083204266946062468923628330230712890624:32:54 49159342295845395083204266946062468923628330230712890625:32:55 49159342295845395083204266946062468923628330230712890626:32:55 87501775260248338795649138639242377629452267851964481535:32:55 87501775260248338795649138639242377629452267851964481536:32:56 87501775260248338795649138639242377629452267851964481537:32:56 154168405790985978028810748205968406336687578511892448000:32:56 154168405790985978028810748205968406336687578511892448001:32:57 154168405790985978028810748205968406336687578511892448002:32:57 268965015114358137726910587140455987105619365599731777535:32:57 268965015114358137726910587140455987105619365599731777536:32:58 268965015114358137726910587140455987105619365599731777537:32:58 464798130469793589516643498190087912509935907396786423680:32:58 464798130469793589516643498190087912509935907396786423681:32:59 464798130469793589516643498190087912509935907396786423682:32:59 795866110994640088439193599999999999999999999999999999999:32:59 795866110994640088439193600000000000000000000000000000000:32:60 795866110994640088439193600000000000000000000000000000001:32:60 1350687001332003958728623852374735172807518011483204347520:32:60 1350687001332003958728623852374735172807518011483204347521:32:61 1350687001332003958728623852374735172807518011483204347522:32:61 2272657884496751345355241563627544170162852933518655225855:32:61 2272657884496751345355241563627544170162852933518655225856:32:62 2272657884496751345355241563627544170162852933518655225857:32:62 3792255435734639939700427436560372449070499280862066964480:32:62 3792255435734639939700427436560372449070499280862066964481:32:63 3792255435734639939700427436560372449070499280862066964482:32:63 6277101735386680763835789423207666416102355444464034512895:32:63 6277101735386680763835789423207666416102355444464034512896:32:64 6277101735386680763835789423207666416102355444464034512897:32:64 10309258098174834118790766041464760922826826572418212890624:32:64 10309258098174834118790766041464760922826826572418212890625:32:65 10309258098174834118790766041464760922826826572418212890626:32:65 16803739386732805588924132780810339299166149216244183597055:32:65 16803739386732805588924132780810339299166149216244183597056:32:66 16803739386732805588924132780810339299166149216244183597057:32:66 27189028279553414235049966267283185807800188603627566700160:32:66 27189028279553414235049966267283185807800188603627566700161:32:67 27189028279553414235049966267283185807800188603627566700162:32:67 43680259177715782520592828389290988108318341069575213285375:32:67 43680259177715782520592828389290988108318341069575213285376:32:68 43680259177715782520592828389290988108318341069575213285377:32:68 69690070456714036934135773061833984669532003071343585548160:32:68 69690070456714036934135773061833984669532003071343585548161:32:69 69690070456714036934135773061833984669532003071343585548162:32:69 110442767424392064630529920099999999999999999999999999999999:32:69 110442767424392064630529920100000000000000000000000000000000:32:70 110442767424392064630529920100000000000000000000000000000001:32:70 173887017684702179246328390437079448141248104062408434512640:32:70 173887017684702179246328390437079448141248104062408434512641:32:71 173887017684702179246328390437079448141248104062408434512642:32:71 272044459736735201869892920105124744453565613497784693948415:32:71 272044459736735201869892920105124744453565613497784693948416:32:72 272044459736735201869892920105124744453565613497784693948417:32:72 422991386556309150149363832086603107763045099853453376062720:32:72 422991386556309150149363832086603107763045099853453376062721:32:73 422991386556309150149363832086603107763045099853453376062722:32:73 653755011989465585398272753625019842693668260490434603646975:32:73 653755011989465585398272753625019842693668260490434603646976:32:74 653755011989465585398272753625019842693668260490434603646977:32:74 1004524257206332858195774182519244277500547468662261962890624:32:74 1004524257206332858195774182519244277500547468662261962890625:32:75 1004524257206332858195774182519244277500547468662261962890626:32:75 1534740497155751995863607836604084898735922962704391288651775:32:75 1534740497155751995863607836604084898735922962704391288651776:32:76 1534740497155751995863607836604084898735922962704391288651777:32:76 2331863934537509632978568812176034178036195336092666767573120:32:76 2331863934537509632978568812176034178036195336092666767573121:32:77 2331863934537509632978568812176034178036195336092666767573122:32:77 3523930106911441207311751998440200699479408173742614711894015:32:77 3523930106911441207311751998440200699479408173742614711894016:32:78 3523930106911441207311751998440200699479408173742614711894017:32:78 5297450670659957549009604563595170759963655420038456036451840:32:78 5297450670659957549009604563595170759963655420038456036451841:32:79 5297450670659957549009604563595170759963655420038456036451842:32:79 7922816251426433759354395033599999999999999999999999999999999:32:79 7922816251426433759354395033600000000000000000000000000000000:32:80 7922816251426433759354395033600000000000000000000000000000001:32:80 11790184577738583171520872861412518665678211592275841109096960:32:80 11790184577738583171520872861412518665678211592275841109096961:32:81 11790184577738583171520872861412518665678211592275841109096962:32:81 17459961280780148412598160557488831295115329866261670213451775:32:81 17459961280780148412598160557488831295115329866261670213451776:32:82 17459961280780148412598160557488831295115329866261670213451777:32:82 25733505785478367615107164358252046214490685371339768616901760:32:82 25733505785478367615107164358252046214490685371339768616901761:32:83 25733505785478367615107164358252046214490685371339768616901762:32:83 37751755704548378805924827612785513671134948244859424662880255:32:83 37751755704548378805924827612785513671134948244859424662880256:32:84 37751755704548378805924827612785513671134948244859424662880257:32:84 55132238072354049557915569686353002846264280378818511962890624:32:84 55132238072354049557915569686353002846264280378818511962890625:32:85 55132238072354049557915569686353002846264280378818511962890626:32:85 80158658383964667652772912546750108799215285552751273570205695:32:85 80158658383964667652772912546750108799215285552751273570205696:32:86 80158658383964667652772912546750108799215285552751273570205697:32:86 116042234725725414536446262905753072605583244285568040136986880:32:86 116042234725725414536446262905753072605583244285568040136986881:32:87 116042234725725414536446262905753072605583244285568040136986882:32:87 167280573527068721679234551891969050043521640994714364942483455:32:87 167280573527068721679234551891969050043521640994714364942483456:32:88 167280573527068721679234551891969050043521640994714364942483457:32:88 240148684864128390378794468324923219083866317778128398613374720:32:88 240148684864128390378794468324923219083866317778128398613374721:32:89 240148684864128390378794468324923219083866317778128398613374722:32:89 343368382029251248465784908928099999999999999999999999999999999:32:89 343368382029251248465784908928100000000000000000000000000000000:32:90 343368382029251248465784908928100000000000000000000000000000001:32:90 489017672496491631687799901392314875732109100273595145409860480:32:90 489017672496491631687799901392314875732109100273595145409860481:32:91 489017672496491631687799901392314875732109100273595145409860482:32:91 693761947078590541087517725927563750525223139271569629234855935:32:91 693761947078590541087517725927563750525223139271569629234855936:32:92 693761947078590541087517725927563750525223139271569629234855937:32:92 980515252408989618613156446208544119488337213858213465163561600:32:92 980515252408989618613156446208544119488337213858213465163561601:32:93 980515252408989618613156446208544119488337213858213465163561602:32:93 1380674536088650126365233338290905239051505147118049339937652735:32:93 1380674536088650126365233338290905239051505147118049339937652736:32:94 1380674536088650126365233338290905239051505147118049339937652737:32:94 1937114844585011541643853683619338993862294591963291168212890624:32:94 1937114844585011541643853683619338993862294591963291168212890625:32:95 1937114844585011541643853683619338993862294591963291168212890626:32:95 2708192040014184559945134363758220403329915059847434832829218815:32:95 2708192040014184559945134363758220403329915059847434832829218816:32:96 2708192040014184559945134363758220403329915059847434832829218817:32:96 3773075507922571775273744352333525624409237957166570157859261440:32:96 3773075507922571775273744352333525624409237957166570157859261441:32:97 3773075507922571775273744352333525624409237957166570157859261442:32:97 5238831403348926689724437407788362710714941696651089664274333695:32:97 5238831403348926689724437407788362710714941696651089664274333696:32:98 5238831403348926689724437407788362710714941696651089664274333697:32:98 7249803359578536423176877919796123149018480047318581831044956800:32:98 7249803359578536423176877919796123149018480047318581831044956801:32:99 7249803359578536423176877919796123149018480047318581831044956802:32:99 13749406785310970541622913505711040449564178320493809360964963200:32:100 13749406785310970541622913505711040449564178320493809360964963201:32:101 13749406785310970541622913505711040449564178320493809360964963202:32:101 18845405921011292467611056433874191599698700321319137415209680895:32:101 18845405921011292467611056433874191599698700321319137415209680896:32:102 18845405921011292467611056433874191599698700321319137415209680897:32:102 25750827556851106532658069028441289322166445432839581773436522240:32:102 25750827556851106532658069028441289322166445432839581773436522241:32:103 25750827556851106532658069028441289322166445432839581773436522242:32:103 35080587468457851479801301903357515568351018624171932948591804415:32:103 35080587468457851479801301903357515568351018624171932948591804416:32:104 35080587468457851479801301903357515568351018624171932948591804417:32:104 47649414686036048650959102392723368589743995107710361480712890624:32:104 47649414686036048650959102392723368589743995107710361480712890625:32:105 47649414686036048650959102392723368589743995107710361480712890626:32:105 64533866818853278306343498749844178528729670085675035299609051135:32:105 64533866818853278306343498749844178528729670085675035299609051136:32:106 64533866818853278306343498749844178528729670085675035299609051137:32:106 87152707983437572386914428735274683878049343856532228222877116800:32:106 87152707983437572386914428735274683878049343856532228222877116801:32:107 87152707983437572386914428735274683878049343856532228222877116802:32:107 117370829954152488825322869571186296801564208658894085542155124735:32:107 117370829954152488825322869571186296801564208658894085542155124736:32:108 117370829954152488825322869571186296801564208658894085542155124737:32:108 157633287891748336346175869936934323252151359999860577979642238080:32:108 157633287891748336346175869936934323252151359999860577979642238081:32:109 157633287891748336346175869936934323252151359999860577979642238082:32:109 211137767453525528554561525420992099999999999999999999999999999999:32:109 211137767453525528554561525420992100000000000000000000000000000000:32:110 211137767453525528554561525420992100000000000000000000000000000001:32:110 282055986062520438861650365062235391496830180819061390621600965120:32:110 282055986062520438861650365062235391496830180819061390621600965121:32:111 282055986062520438861650365062235391496830180819061390621600965122:32:111 375817263084708503965641077546115954135779496817219617550715846655:32:111 375817263084708503965641077546115954135779496817219617550715846656:32:112 375817263084708503965641077546115954135779496817219617550715846657:32:112 499470901017296553026067587470451820114248277410727635080006663680:32:112 499470901017296553026067587470451820114248277410727635080006663681:32:113 499470901017296553026067587470451820114248277410727635080006663682:32:113 662148260948741787228316709317924977225312314678010411233675575295:32:113 662148260948741787228316709317924977225312314678010411233675575296:32:114 662148260948741787228316709317924977225312314678010411233675575297:32:114 875650684128493793306454881502238738033443712629377841949462890624:32:114 875650684128493793306454881502238738033443712629377841949462890625:32:115 875650684128493793306454881502238738033443712629377841949462890626:32:115 1155195943684313901568544750884416623146032873075115410889067462655:32:115 1155195943684313901568544750884416623146032873075115410889067462656:32:116 1155195943684313901568544750884416623146032873075115410889067462657:32:116 1520363993991568459087358473855230617572172414577220360556267672960:32:116 1520363993991568459087358473855230617572172414577220360556267672961:32:117 1520363993991568459087358473855230617572172414577220360556267672962:32:117 1996292769609704582844432272417462775595083997325282185206694936575:32:117 1996292769609704582844432272417462775595083997325282185206694936576:32:118 1996292769609704582844432272417462775595083997325282185206694936577:32:118 2615187095416515954068577388346072277468378589035955771585266658560:32:118 2615187095416515954068577388346072277468378589035955771585266658561:32:119 2615187095416515954068577388346072277468378589035955771585266658562:32:119 3418218918716685211136884196612505599999999999999999999999999999999:32:119 3418218918716685211136884196612505600000000000000000000000000000000:32:120 3418218918716685211136884196612505600000000000000000000000000000001:32:120 4457915684525902395869512133369841539490161434991526715513934826240:32:120 4457915684525902395869512133369841539490161434991526715513934826241:32:121 4457915684525902395869512133369841539490161434991526715513934826242:32:121 5801156497853265440881973185035019503869198362251315125887713673215:32:121 5801156497853265440881973185035019503869198362251315125887713673216:32:122 5801156497853265440881973185035019503869198362251315125887713673217:32:122 7532923656948158115977791009617077340797226775839122176340459265920:32:122 7532923656948158115977791009617077340797226775839122176340459265921:32:123 7532923656948158115977791009617077340797226775839122176340459265922:32:123 9760991288910092446544764017960205335644912343520286400951013605375:32:123 9760991288910092446544764017960205335644912343520286400951013605376:32:124 9760991288910092446544764017960205335644912343520286400951013605377:32:124 12621774483536188886587657044524579674771302961744368076324462890624:32:124 12621774483536188886587657044524579674771302961744368076324462890625:32:125 12621774483536188886587657044524579674771302961744368076324462890626:32:125 16287613074558508275348747877247914398337220009694096299407888613375:32:125 16287613074558508275348747877247914398337220009694096299407888613376:32:126 16287613074558508275348747877247914398337220009694096299407888613377:32:126 20975825942850835435487946371038619427046538071435595461971578449920:32:126 20975825942850835435487946371038619427046538071435595461971578449921:32:127 20975825942850835435487946371038619427046538071435595461971578449922:32:127 26959946667150639794667015087019630673637144422540572481103610249215:32:127 26959946667150639794667015087019630673637144422540572481103610249216:32:128 26959946667150639794667015087019630673637144422540572481103610249217:32:128 34583642216577291571477807030708570031653745592819805473285538058240:32:128 34583642216577291571477807030708570031653745592819805473285538058241:32:129 34583642216577291571477807030708570031653745592819805473285538058242:32:129 44277926377684069830431319214878528099999999999999999999999999999999:32:129 44277926377684069830431319214878528100000000000000000000000000000000:32:130 44277926377684069830431319214878528100000000000000000000000000000001:32:130 56582412563588086787946403396904160652993080725936197832718205906560:32:130 56582412563588086787946403396904160652993080725936197832718205906561:32:131 56582412563588086787946403396904160652993080725936197832718205906562:32:131 72171511116524496294755170118741943668582170954024800499575161880575:32:131 72171511116524496294755170118741943668582170954024800499575161880576:32:132 72171511116524496294755170118741943668582170954024800499575161880577:32:132 91886669597017255240597905321402961460648767763835563911205218008960:32:132 91886669597017255240597905321402961460648767763835563911205218008961:32:133 91886669597017255240597905321402961460648767763835563911205218008962:32:133 116775987270701059624680462043884477815193151755212305941250132934655:32:133 116775987270701059624680462043884477815193151755212305941250132934656:32:134 116775987270701059624680462043884477815193151755212305941250132934657:32:134 148142814662678687797738908849156792994826480769552290439605712890624:32:134 148142814662678687797738908849156792994826480769552290439605712890625:32:135 148142814662678687797738908849156792994826480769552290439605712890626:32:135 187605284649093137908994644464145150552752180450799201672914635063295:32:135 187605284649093137908994644464145150552752180450799201672914635063296:32:136 187605284649093137908994644464145150552752180450799201672914635063297:32:136 237169123733456945151181211498724054090008972581810727489314923367680:32:136 237169123733456945151181211498724054090008972581810727489314923367681:32:137 237169123733456945151181211498724054090008972581810727489314923367682:32:137 299316573467522572256249251324254749937005320816792254708729727942655:32:137 299316573467522572256249251324254749937005320816792254708729727942656:32:138 299316573467522572256249251324254749937005320816792254708729727942657:32:138 377114827226495160655650286986059249635681122322455041583088882677120:32:138 377114827226495160655650286986059249635681122322455041583088882677121:32:139 377114827226495160655650286986059249635681122322455041583088882677122:32:139 474348074167498070270044329978993049599999999999999999999999999999999:32:139 474348074167498070270044329978993049600000000000000000000000000000000:32:140 474348074167498070270044329978993049600000000000000000000000000000001:32:140 595678060689456392852547636599458650890846741184249669804873747966080:32:140 595678060689456392852547636599458650890846741184249669804873747966081:32:141 595678060689456392852547636599458650890846741184249669804873747966082:32:141 746839054154769499362910365003575375520388595570048969226350793588735:32:141 746839054154769499362910365003575375520388595570048969226350793588736:32:142 746839054154769499362910365003575375520388595570048969226350793588737:32:142 934874252285578309920846696741574105670217609844010101493341528972800:32:142 934874252285578309920846696741574105670217609844010101493341528972801:32:143 934874252285578309920846696741574105670217609844010101493341528972802:32:143 1168422057627266461843148138873451659428421700563161428957815831003135:32:143 1168422057627266461843148138873451659428421700563161428957815831003136:32:144 1168422057627266461843148138873451659428421700563161428957815831003137:32:144 1458062268547918143701470185282517976798241153382696211338043212890624:32:144 1458062268547918143701470185282517976798241153382696211338043212890625:32:145 1458062268547918143701470185282517976798241153382696211338043212890626:32:145 1816734171749041862357071174017195787574242421243636642850175939772415:32:145 1816734171749041862357071174017195787574242421243636642850175939772416:32:146 1816734171749041862357071174017195787574242421243636642850175939772417:32:146 2260240809152969938156089683500067102794777033151026766261887638746240:32:146 2260240809152969938156089683500067102794777033151026766261887638746241:32:147 2260240809152969938156089683500067102794777033151026766261887638746242:32:147 2807856396090842585803076611707325671720369725079625543490484249296895:32:147 2807856396090842585803076611707325671720369725079625543490484249296896:32:148 2807856396090842585803076611707325671720369725079625543490484249296897:32:148 3483057059954462973369071472539222743311465063211581547388198021155200:32:148 3483057059954462973369071472539222743311465063211581547388198021155201:32:149 3483057059954462973369071472539222743311465063211581547388198021155202:32:149 4314398832739891950041055679321289062499999999999999999999999999999999:32:149 4314398832739891950041055679321289062500000000000000000000000000000000:32:150 4314398832739891950041055679321289062500000000000000000000000000000001:32:150 5336571264718773225599678121085524210560739500648592714022211501164800:32:150 5336571264718773225599678121085524210560739500648592714022211501164801:32:151 5336571264718773225599678121085524210560739500648592714022211501164802:32:151 6591660243130735840520922934783856340078260865190788300346673852317695:32:151 6591660243130735840520922934783856340078260865190788300346673852317696:32:152 6591660243130735840520922934783856340078260865190788300346673852317697:32:152 8130659730812056861728384180664651563882253053422409342961034804637440:32:152 8130659730812056861728384180664651563882253053422409342961034804637441:32:153 8130659730812056861728384180664651563882253053422409342961034804637442:32:153 10015279337560488758927916117181633389643700472785732192152587983650815:32:153 10015279337560488758927916117181633389643700472785732192152587983650816:32:154 10015279337560488758927916117181633389643700472785732192152587983650817:32:154 12320103078438442077416226591468759752749157309555448591709136962890624:32:154 12320103078438442077416226591468759752749157309555448591709136962890625:32:155 12320103078438442077416226591468759752749157309555448591709136962890626:32:155 15135164562574423553630730909763305015940382331659616109113260938100735:32:155 15135164562574423553630730909763305015940382331659616109113260938100736:32:156 15135164562574423553630730909763305015940382331659616109113260938100737:32:156 18569015429698720918880420577366655713148859329971185848431068299305600:32:156 18569015429698720918880420577366655713148859329971185848431068299305601:32:157 18569015429698720918880420577366655713148859329971185848431068299305602:32:157 22752377382657784409744568790533610597579366177678311738894440973991935:32:157 22752377382657784409744568790533610597579366177678311738894440973991936:32:158 22752377382657784409744568790533610597579366177678311738894440973991937:32:158 27842483967545222806855045978857198959816766796965883326074040496532480:32:158 27842483967545222806855045978857198959816766796965883326074040496532481:32:159 27842483967545222806855045978857198959816766796965883326074040496532482:32:159 34028236692093846346337460743176821145599999999999999999999999999999999:32:159 34028236692093846346337460743176821145600000000000000000000000000000000:32:160 34028236692093846346337460743176821145600000000000000000000000000000001:32:160 41536321565980319919803780948542127310144501878079717628279095964062720:32:160 41536321565980319919803780948542127310144501878079717628279095964062721:32:161 41536321565980319919803780948542127310144501878079717628279095964062722:32:161 50638457175190784359058107521140708034077476448592823774463815587987455:32:161 50638457175190784359058107521140708034077476448592823774463815587987456:32:162 50638457175190784359058107521140708034077476448592823774463815587987457:32:162 61659974520196491507160177988288325039919368167204706262450752527882880:32:162 61659974520196491507160177988288325039919368167204706262450752527882881:32:163 61659974520196491507160177988288325039919368167204706262450752527882882:32:163 74989962690377010798135413984171658297781666323845927345112717193117695:32:163 74989962690377010798135413984171658297781666323845927345112717193117696:32:164 74989962690377010798135413984171658297781666323845927345112717193117697:32:164 91093253744879728916648683571866667984206725716614164412021636962890624:32:164 91093253744879728916648683571866667984206725716614164412021636962890625:32:165 91093253744879728916648683571866667984206725716614164412021636962890626:32:165 110524565760056380622350786453989366216318094966529921913800216339808255:32:165 110524565760056380622350786453989366216318094966529921913800216339808256:32:166 110524565760056380622350786453989366216318094966529921913800216339808257:32:166 133945175844990988395706352316581234577917756719838727583023050894165760:32:166 133945175844990988395706352316581234577917756719838727583023050894165761:32:167 133945175844990988395706352316581234577917756719838727583023050894165762:32:167 162142556117616725421266665631351532680085501914323829044446524684107775:32:167 162142556117616725421266665631351532680085501914323829044446524684107776:32:168 162142556117616725421266665631351532680085501914323829044446524684107777:32:168 196053476430761073330659760423566015424403280004115787589590963842248960:32:168 196053476430761073330659760423566015424403280004115787589590963842248961:32:169 196053476430761073330659760423566015424403280004115787589590963842248962:32:169 236791159476046724584410629732095124736099999999999999999999999999999999:32:169 236791159476046724584410629732095124736100000000000000000000000000000000:32:170 236791159476046724584410629732095124736100000000000000000000000000000001:32:170 285677168413800094669710048567084415594589541253621987797742218985619840:32:170 285677168413800094669710048567084415594589541253621987797742218985619841:32:171 285677168413800094669710048567084415594589541253621987797742218985619842:32:171 344278816250364458388168743102959788377071481912368002806382624312918015:32:171 344278816250364458388168743102959788377071481912368002806382624312918016:32:172 344278816250364458388168743102959788377071481912368002806382624312918017:32:172 414453011944357241517598205351956156526827358920652455554410953915989120:32:172 414453011944357241517598205351956156526827358920652455554410953915989121:32:173 414453011944357241517598205351956156526827358920652455554410953915989122:32:173 498397603101746185310079699241627377092493541212093617171174013876043775:32:173 498397603101746185310079699241627377092493541212093617171174013876043776:32:174 498397603101746185310079699241627377092493541212093617171174013876043777:32:174 598711441884185877702905659845412922326346460977219976484775543212890624:32:174 598711441884185877702905659845412922326346460977219976484775543212890625:32:175 598711441884185877702905659845412922326346460977219976484775543212890626:32:175 718464592554883530356838602689221994981112824740551106289375364541054975:32:175 718464592554883530356838602689221994981112824740551106289375364541054976:32:176 718464592554883530356838602689221994981112824740551106289375364541054977:32:176 861280319501119549824845005232621477517431664472720082698000215962846720:32:176 861280319501119549824845005232621477517431664472720082698000215962846721:32:177 861280319501119549824845005232621477517431664472720082698000215962846722:32:177 1031430747668841640222043293361253127676248916093004856133296174888124415:32:177 1031430747668841640222043293361253127676248916093004856133296174888124416:32:178 1031430747668841640222043293361253127676248916093004856133296174888124417:32:178 1233948377738292660241528765544763692742851659825865626588288652990144640:32:178 1233948377738292660241528765544763692742851659825865626588288652990144641:32:179 1233948377738292660241528765544763692742851659825865626588288652990144642:32:179 1474755971296068227527716358816527915417599999999999999999999999999999999:32:179 1474755971296068227527716358816527915417600000000000000000000000000000000:32:180 1474755971296068227527716358816527915417600000000000000000000000000000001:32:180 1760817702652787321922956565620002521706005398439810329797540787797196160:32:180 1760817702652787321922956565620002521706005398439810329797540787797196161:32:181 1760817702652787321922956565620002521706005398439810329797540787797196162:32:181 2100314910538470232836777858672017257003712642779075801879715281817829375:32:181 2100314910538470232836777858672017257003712642779075801879715281817829376:32:182 2100314910538470232836777858672017257003712642779075801879715281817829377:32:182 2502850282287956791921714396116065687396746297791522429305645028544636160:32:182 2502850282287956791921714396116065687396746297791522429305645028544636161:32:183 2502850282287956791921714396116065687396746297791522429305645028544636162:32:183 2979684873911829115745832906679177573460936206273844820150551748391469055:32:183 2979684873911829115745832906679177573460936206273844820150551748391469056:32:184 2979684873911829115745832906679177573460936206273844820150551748391469057:32:184 3544013021361327929417699067260091539580321221753978170454502105712890624:32:184 3544013021361327929417699067260091539580321221753978170454502105712890625:32:185 3544013021361327929417699067260091539580321221753978170454502105712890626:32:185 4211280942325795628347019811797280188975524586940784813864332367176400895:32:185 4211280942325795628347019811797280188975524586940784813864332367176400896:32:186 4211280942325795628347019811797280188975524586940784813864332367176400897:32:186 4999555676450423117483802409775566433246911861221928525275400251491268480:32:186 4999555676450423117483802409775566433246911861221928525275400251491268481:32:187 4999555676450423117483802409775566433246911861221928525275400251491268482:32:187 5929951978920724049524944539368342535961276666447690566346605180124921855:32:187 5929951978920724049524944539368342535961276666447690566346605180124921856:32:188 5929951978920724049524944539368342535961276666447690566346605180124921857:32:188 7027125883699423081807626133049811236913661230065555306499995927518459520:32:188 7027125883699423081807626133049811236913661230065555306499995927518459521:32:189 7027125883699423081807626133049811236913661230065555306499995927518459522:32:189 8319844906088747263142893650554191891776099999999999999999999999999999999:32:189 8319844906088747263142893650554191891776100000000000000000000000000000000:32:190 8319844906088747263142893650554191891776100000000000000000000000000000001:32:190 9841646279729907289487492717178636024201382213880494817686294649684551680:32:190 9841646279729907289487492717178636024201382213880494817686294649684551681:32:191 9841646279729907289487492717178636024201382213880494817686294649684551682:32:191 11631596243148446061072503646667324283461914680502615356492721967947841535:32:191 11631596243148446061072503646667324283461914680502615356492721967947841536:32:192 11631596243148446061072503646667324283461914680502615356492721967947841537:32:192 13735165230816185128767987679023670550247621493602278888329265847131904000:32:192 13735165230816185128767987679023670550247621493602278888329265847131904001:32:193 13735165230816185128767987679023670550247621493602278888329265847131904002:32:193 16205235911866034675013393440737193841215656346312267652495085259808833535:32:193 16205235911866034675013393440737193841215656346312267652495085259808833536:32:194 16205235911866034675013393440737193841215656346312267652495085259808833537:32:194 19103263388002302303277828493403892016119003075927519239485263824462890624:32:194 19103263388002302303277828493403892016119003075927519239485263824462890625:32:195 19103263388002302303277828493403892016119003075927519239485263824462890626:32:195 22500609546641425009067997918450033531906583365663182830821882796510806015:32:195 22500609546641425009067997918450033531906583365663182830821882796510806016:32:196 22500609546641425009067997918450033531906583365663182830821882796510806017:32:196 26480076606102989953780414954759088858651460471903684808666477740367751040:32:196 26480076606102989953780414954759088858651460471903684808666477740367751041:32:197 26480076606102989953780414954759088858651460471903684808666477740367751042:32:197 31137668331820742281089507088908859912622906302861841457437886966027780095:32:197 31137668331820742281089507088908859912622906302861841457437886966027780096:32:198 31137668331820742281089507088908859912622906302861841457437886966027780097:32:198 36584611296554742180833097810429342639777502523008874222975105176339833600:32:198 36584611296554742180833097810429342639777502523008874222975105176339833601:32:199 36584611296554742180833097810429342639777502523008874222975105176339833602:32:199 42949672959999999999999999999999999999999999999999999999999999999999999999:32:199 42949672960000000000000000000000000000000000000000000000000000000000000000:32:200 42949672960000000000000000000000000000000000000000000000000000000000000001:32:200 50381818317276113240557224617393945529897613634431731589017585895699846400:32:200 50381818317276113240557224617393945529897613634431731589017585895699846401:32:201 50381818317276113240557224617393945529897613634431731589017585895699846402:32:201 59053252482311111666289820271265627957011283339633117775803175950138474495:32:201 59053252482311111666289820271265627957011283339633117775803175950138474496:32:202 59053252482311111666289820271265627957011283339633117775803175950138474497:32:202 69162902910199836448978705332283764661719618328022727652960126007682272640:32:202 69162902910199836448978705332283764661719618328022727652960126007682272641:32:203 69162902910199836448978705332283764661719618328022727652960126007682272642:32:203 80940402110588260395080626631500039499143841333770386777255552430915977215:32:203 80940402110588260395080626631500039499143841333770386777255552430915977216:32:204 80940402110588260395080626631500039499143841333770386777255552430915977217:32:204 94650639760673136914192422438755685274647612828642153181135654449462890624:32:204 94650639760673136914192422438755685274647612828642153181135654449462890625:32:205 94650639760673136914192422438755685274647612828642153181135654449462890626:32:205 110598962201611083299178362427665831494778891002614568131227544557071630335:32:205 110598962201611083299178362427665831494778891002614568131227544557071630336:32:206 110598962201611083299178362427665831494778891002614568131227544557071630337:32:206 129137107518798349889848955752576096957891033538156479333343770531199014400:32:206 129137107518798349889848955752576096957891033538156479333343770531199014401:32:207 129137107518798349889848955752576096957891033538156479333343770531199014402:32:207 150669975901493903660171796253143081961878477639105367095306649220348379135:32:207 150669975901493903660171796253143081961878477639105367095306649220348379136:32:208 150669975901493903660171796253143081961878477639105367095306649220348379137:32:208 175663347903116485949322736705857261711125268074370375895026438287429306880:32:208 175663347903116485949322736705857261711125268074370375895026438287429306881:32:209 175663347903116485949322736705857261711125268074370375895026438287429306882:32:209 204652677750066936832934263810262216467904099999999999999999999999999999999:32:209 204652677750066936832934263810262216467904100000000000000000000000000000000:32:210 204652677750066936832934263810262216467904100000000000000000000000000000001:32:210 238253105163106537555591057442758816510083507060870123650912693085813640320:32:210 238253105163106537555591057442758816510083507060870123650912693085813640321:32:211 238253105163106537555591057442758816510083507060870123650912693085813640322:32:211 277170847471394386548131596472797631876879329442843794695466436214711648255:32:211 277170847471394386548131596472797631876879329442843794695466436214711648256:32:212 277170847471394386548131596472797631876879329442843794695466436214711648257:32:212 322216154348990247942595521428825983603944006528456567266025777460190622080:32:212 322216154348990247942595521428825983603944006528456567266025777460190622081:32:213 322216154348990247942595521428825983603944006528456567266025777460190622082:32:213 374318030546702483059430129768527408832960384138064436187265415687067140095:32:213 374318030546702483059430129768527408832960384138064436187265415687067140096:32:214 374318030546702483059430129768527408832960384138064436187265415687067140097:32:214 434540957817089433549490303848237566365551461364850425161421298980712890624:32:214 434540957817089433549490303848237566365551461364850425161421298980712890625:32:215 434540957817089433549490303848237566365551461364850425161421298980712890626:32:215 504103876157462118901767181449118688686067677834070116931382690099920633855:32:215 504103876157462118901767181449118688686067677834070116931382690099920633856:32:216 504103876157462118901767181449118688686067677834070116931382690099920633857:32:216 584401716880233941814941762287383830338700407763761919036013822809286178560:32:216 584401716880233941814941762287383830338700407763761919036013822809286178561:32:217 584401716880233941814941762287383830338700407763761919036013822809286178562:32:217 677029816256011892869233496043482500867882452841323746982221166338140798975:32:217 677029816256011892869233496043482500867882452841323746982221166338140798976:32:218 677029816256011892869233496043482500867882452841323746982221166338140798977:32:218 783811578999274059711407338985901959116946168302905048265243544530192319360:32:218 783811578999274059711407338985901959116946168302905048265243544530192319361:32:219 783811578999274059711407338985901959116946168302905048265243544530192319362:32:219 906829806163345345042955903303033701374361599999999999999999999999999999999:32:219 906829806163345345042955903303033701374361600000000000000000000000000000000:32:220 906829806163345345042955903303033701374361600000000000000000000000000000001:32:220 1048462152616684445447094453416781457966300540556141058179574764837906893440:32:220 1048462152616684445447094453416781457966300540556141058179574764837906893441:32:221 1048462152616684445447094453416781457966300540556141058179574764837906893442:32:221 1211421235779557096242355786528762011132642114283635166136057256356731682815:32:221 1211421235779557096242355786528762011132642114283635166136057256356731682816:32:222 1211421235779557096242355786528762011132642114283635166136057256356731682817:32:222 1398799980365450539460368154209365296660064690644954066836692991793106232320:32:222 1398799980365450539460368154209365296660064690644954066836692991793106232321:32:223 1398799980365450539460368154209365296660064690644954066836692991793106232322:32:223 1614122854221051102225514735734767954837008882297294347029952182776470962175:32:223 1614122854221051102225514735734767954837008882297294347029952182776470962176:32:224 1614122854221051102225514735734767954837008882297294347029952182776470962177:32:224 1861403728794734215467410604755702820123364205073812627233564853668212890624:32:224 1861403728794734215467410604755702820123364205073812627233564853668212890625:32:225 1861403728794734215467410604755702820123364205073812627233564853668212890626:32:225 2145211185172941825580490123671209933734371335103410752232050963971965976575:32:225 2145211185172941825580490123671209933734371335103410752232050963971965976576:32:226 2145211185172941825580490123671209933734371335103410752232050963971965976577:32:226 2470742183985734266975271976124879816373727937945841861899342898384560763520:32:226 2470742183985734266975271976124879816373727937945841861899342898384560763521:32:227 2470742183985734266975271976124879816373727937945841861899342898384560763522:32:227 2843905125878119908494210751650826243764261214928115486596147609770305519615:32:227 2843905125878119908494210751650826243764261214928115486596147609770305519616:32:228 2843905125878119908494210751650826243764261214928115486596147609770305519617:32:228 3271413449865174824824320510541991125713731336239134447034178530448072711040:32:228 3271413449865174824824320510541991125713731336239134447034178530448072711041:32:229 3271413449865174824824320510541991125713731336239134447034178530448072711042:32:229 3760891051051907103990207421751670730637952099999999999999999999999999999999:32:229 3760891051051907103990207421751670730637952100000000000000000000000000000000:32:230 3760891051051907103990207421751670730637952100000000000000000000000000000001:32:230 4320990948353493099014125323575468577211901282743687230362210331123002965760:32:230 4320990948353493099014125323575468577211901282743687230362210331123002965761:32:231 4320990948353493099014125323575468577211901282743687230362210331123002965762:32:231 4961528798595985955435062807361036472450967821998539641194147036045221298175:32:231 4961528798595985955435062807361036472450967821998539641194147036045221298176:32:232 4961528798595985955435062807361036472450967821998539641194147036045221298177:32:232 5693633037472140480731372019013642651447491526752051394862939018064756783360:32:232 5693633037472140480731372019013642651447491526752051394862939018064756783361:32:233 5693633037472140480731372019013642651447491526752051394862939018064756783362:32:233 6529913632209727031525318652236686541010363440282515115174498023189518483455:32:233 6529913632209727031525318652236686541010363440282515115174498023189518483456:32:234 6529913632209727031525318652236686541010363440282515115174498023189518483457:32:234 7484651657613652303727414982352295888597046276305258297361433506011962890624:32:234 7484651657613652303727414982352295888597046276305258297361433506011962890625:32:235 7484651657613652303727414982352295888597046276305258297361433506011962890626:32:235 8574012158714943867538159265719965480478272706885038459434169752842714218495:32:235 8574012158714943867538159265719965480478272706885038459434169752842714218496:32:236 8574012158714943867538159265719965480478272706885038459434169752842714218497:32:236 9816283042179626298283445560744671838577429494945078968556703691313280689280:32:236 9816283042179626298283445560744671838577429494945078968556703691313280689281:32:237 9816283042179626298283445560744671838577429494945078968556703691313280689282:32:237 11232143047735167520986778024191471961778923714056054207061166373958693421055:32:237 11232143047735167520986778024191471961778923714056054207061166373958693421056:32:238 11232143047735167520986778024191471961778923714056054207061166373958693421057:32:238 12844962193278098707177859703090754727719457630012112436081710067419000721920:32:238 12844962193278098707177859703090754727719457630012112436081710067419000721921:32:239 12844962193278098707177859703090754727719457630012112436081710067419000721922:32:239 14681138466456645271359772603789945536616857599999999999999999999999999999999:32:239 14681138466456645271359772603789945536616857600000000000000000000000000000000:32:240 14681138466456645271359772603789945536616857600000000000000000000000000000001:32:240 16770474955134862137834975867479653808799781788233346190744777356209139617280:32:240 16770474955134862137834975867479653808799781788233346190744777356209139617281:32:241 16770474955134862137834975867479653808799781788233346190744777356209139617282:32:241 19146602073364204055147600096298659684812535877049037280242645910980537614335:32:241 19146602073364204055147600096298659684812535877049037280242645910980537614336:32:242 19146602073364204055147600096298659684812535877049037280242645910980537614337:32:242 21847450052839212624230656502990235142567050104912751880812823948662932355200:32:242 21847450052839212624230656502990235142567050104912751880812823948662932355201:32:243 21847450052839212624230656502990235142567050104912751880812823948662932355202:32:243 24915777437257669275395096225674365383840352427606159398677853194674751143935:32:243 24915777437257669275395096225674365383840352427606159398677853194674751143936:32:244 24915777437257669275395096225674365383840352427606159398677853194674751143937:32:244 28399761943980951331056977216223530023256672875286042713560163974761962890624:32:244 28399761943980951331056977216223530023256672875286042713560163974761962890625:32:245 28399761943980951331056977216223530023256672875286042713560163974761962890626:32:245 32353660749857062275561587448628168661826735569724552704730617508750862319615:32:245 32353660749857062275561587448628168661826735569724552704730617508750862319616:32:246 32353660749857062275561587448628168661826735569724552704730617508750862319617:32:246 36838548022554738523972429496799571817945946264489610622355247866570286275840:32:246 36838548022554738523972429496799571817945946264489610622355247866570286275841:32:247 36838548022554738523972429496799571817945946264489610622355247866570286275842:32:247 41923138362409734542246389657176638546039601584206347604638146733140969783295:32:247 41923138362409734542246389657176638546039601584206347604638146733140969783296:32:248 41923138362409734542246389657176638546039601584206347604638146733140969783297:32:248 47684705750427067729886667486895608021857999430446827771775240984141280992000:32:248 47684705750427067729886667486895608021857999430446827771775240984141280992001:32:249 47684705750427067729886667486895608021857999430446827771775240984141280992002:32:249 54210108624275221700372640043497085571289062499999999999999999999999999999999:32:249 54210108624275221700372640043497085571289062500000000000000000000000000000000:32:250 54210108624275221700372640043497085571289062500000000000000000000000000000001:32:250 61596932835211843609043453319582396849556697009319881161162353046796281008000:32:250 61596932835211843609043453319582396849556697009319881161162353046796281008001:32:251 61596932835211843609043453319582396849556697009319881161162353046796281008002:32:251 69954765485130802681168235127329214825065876721192946570231505758860708151295:32:251 69954765485130802681168235127329214825065876721192946570231505758860708151296:32:252 69954765485130802681168235127329214825065876721192946570231505758860708151297:32:252 79406614015504276879236578785308859356629343842836419659047727885275829427840:32:252 79406614015504276879236578785308859356629343842836419659047727885275829427841:32:253 79406614015504276879236578785308859356629343842836419659047727885275829427842:32:253 90090486431132703201698647465812751992155138886834794279453941123909068783615:32:253 90090486431132703201698647465812751992155138886834794279453941123909068783616:32:254 90090486431132703201698647465812751992155138886834794279453941123909068783617:32:254 102161150204658159326162171757797299165741800222807601117528975009918212890624:32:254 102161150204658159326162171757797299165741800222807601117528975009918212890625:32:255 102161150204658159326162171757797299165741800222807601117528975009918212890626:32:255 115792089237316195423570985008687907853269984665640564039457584007913129639935:32:255 115792089237316195423570985008687907853269984665640564039457584007913129639936:32:256 115792089237316195423570985008687907853269984665640564039457584007913129639937:32:256 131177680263302284391066300803453359759062536674893711844319054121088616243200:32:256 131177680263302284391066300803453359759062536674893711844319054121088616243201:32:257 131177680263302284391066300803453359759062536674893711844319054121088616243202:32:257 148535612296764416355753627586692175992878522117065196928843187629908438286335:32:257 148535612296764416355753627586692175992878522117065196928843187629908438286336:32:258 148535612296764416355753627586692175992878522117065196928843187629908438286337:32:258 168109575150728210349162531667132827932368393921182291197354745548902520561280:32:258 168109575150728210349162531667132827932368393921182291197354745548902520561281:32:259 168109575150728210349162531667132827932368393921182291197354745548902520561282:32:259 190172245726848824141882781602039674802117017599999999999999999999999999999999:32:259 190172245726848824141882781602039674802117017600000000000000000000000000000000:32:260 190172245726848824141882781602039674802117017600000000000000000000000000000001:32:260 215028603706253369351700249785656905921075116297105851816893540862484669697920:32:260 215028603706253369351700249785656905921075116297105851816893540862484669697921:32:261 215028603706253369351700249785656905921075116297105851816893540862484669697922:32:261 243019611489390353169439489590526677650935286232183908674110773152473526829055:32:261 243019611489390353169439489590526677650935286232183908674110773152473526829056:32:262 243019611489390353169439489590526677650935286232183908674110773152473526829057:32:262 274526296763425532897009403075760536315624055772655817727086457326657554881280:32:262 274526296763425532897009403075760536315624055772655817727086457326657554881281:32:263 274526296763425532897009403075760536315624055772655817727086457326657554881282:32:263 309974279948373156768846631986913084720034686936217637718599782170979777642495:32:263 309974279948373156768846631986913084720034686936217637718599782170979777642496:32:264 309974279948373156768846631986913084720034686936217637718599782170979777642497:32:264 349838793019454666866289010972971871252027267446227535628713667392730712890624:32:264 349838793019454666866289010972971871252027267446227535628713667392730712890625:32:265 349838793019454666866289010972971871252027267446227535628713667392730712890626:32:265 394650240857546610406052614841530088311034848488372798520344259293037729939455:32:265 394650240857546610406052614841530088311034848488372798520344259293037729939456:32:266 394650240857546610406052614841530088311034848488372798520344259293037729939457:32:266 445000361379448440259195109097471927204722071803714995489133238025083283711360:32:266 445000361379448440259195109097471927204722071803714995489133238025083283711361:32:267 445000361379448440259195109097471927204722071803714995489133238025083283711362:32:267 501549046285773350080548618928653149018292118711801851554415818310000025010175:32:267 501549046285773350080548618928653149018292118711801851554415818310000025010176:32:268 501549046285773350080548618928653149018292118711801851554415818310000025010177:32:268 565031890380788985495520327542969981057381884931889227496918747500089196869760:32:268 565031890380788985495520327542969981057381884931889227496918747500089196869761:32:269 565031890380788985495520327542969981057381884931889227496918747500089196869762:32:269 636268544113594235847482876253853423089021632099999999999999999999999999999999:32:269 636268544113594235847482876253853423089021632100000000000000000000000000000000:32:270 636268544113594235847482876253853423089021632100000000000000000000000000000001:32:270 716171951315850839549309811782574126825960896449694856895456168553319018647040:32:270 716171951315850839549309811782574126825960896449694856895456168553319018647041:32:271 716171951315850839549309811782574126825960896449694856895456168553319018647042:32:271 805758562124625863377149822212650866221066937828873108248076846596631209967615:32:271 805758562124625863377149822212650866221066937828873108248076846596631209967616:32:272 805758562124625863377149822212650866221066937828873108248076846596631209967617:32:272 906159619841336655847637658612935928586240338684003675869426567817471389995520:32:272 906159619841336655847637658612935928586240338684003675869426567817471389995521:32:273 906159619841336655847637658612935928586240338684003675869426567817471389995522:32:273 1018633630056175000448389079156678958045123577585437759028575785308936078360575:32:273 1018633630056175000448389079156678958045123577585437759028575785308936078360576:32:274 1018633630056175000448389079156678958045123577585437759028575785308936078360577:32:274 1144580130834258047007123635757306332784433156035674983286298811435699462890624:32:274 1144580130834258047007123635757306332784433156035674983286298811435699462890625:32:275 1144580130834258047007123635757306332784433156035674983286298811435699462890626:32:275 1285554894193790765982387466062158842552095913086110741600096187216684883378175:32:275 1285554894193790765982387466062158842552095913086110741600096187216684883378176:32:276 1285554894193790765982387466062158842552095913086110741600096187216684883378177:32:276 1443286701593048128215886938248990814666320595234728297659467262665176012200320:32:276 1443286701593048128215886938248990814666320595234728297659467262665176012200321:32:277 1443286701593048128215886938248990814666320595234728297659467262665176012200322:32:277 1619695849774487099718283900218138885103550335059519970029686817759415622434815:32:277 1619695849774487099718283900218138885103550335059519970029686817759415622434816:32:278 1619695849774487099718283900218138885103550335059519970029686817759415622434817:32:278 1816914558191016489099925582935818111795305519120007581151708785012994465757440:32:278 1816914558191016489099925582935818111795305519120007581151708785012994465757441:32:279 1816914558191016489099925582935818111795305519120007581151708785012994465757442:32:279 2037309465469986637952950285730007515043305881599999999999999999999999999999999:32:279 2037309465469986637952950285730007515043305881600000000000000000000000000000000:32:280 2037309465469986637952950285730007515043305881600000000000000000000000000000001:32:280 2283506420072436582388618976662481234626271872480442591766458287890750943215360:32:280 2283506420072436582388618976662481234626271872480442591766458287890750943215361:32:281 2283506420072436582388618976662481234626271872480442591766458287890750943215362:32:281 2558417789605918419319820249476767556880468019134528642110731448923264412286975:32:281 2558417789605918419319820249476767556880468019134528642110731448923264412286976:32:282 2558417789605918419319820249476767556880468019134528642110731448923264412286977:32:282 2865272534286677930719382402458748486736378918586418995900477442083094014450560:32:282 2865272534286677930719382402458748486736378918586418995900477442083094014450561:32:283 2865272534286677930719382402458748486736378918586418995900477442083094014450562:32:283 3207649312970307922181992853069779160930987999184730799945687079887267593977855:32:283 3207649312970307922181992853069779160930987999184730799945687079887267593977856:32:284 3207649312970307922181992853069779160930987999184730799945687079887267593977857:32:284 3589512915140622715205204398510242028550421318781851977133192121982574462890624:32:284 3589512915140622715205204398510242028550421318781851977133192121982574462890625:32:285 3589512915140622715205204398510242028550421318781851977133192121982574462890626:32:285 4015254339439012093556988911134690547414032795483311047407542628696816768516095:32:285 4015254339439012093556988911134690547414032795483311047407542628696816768516096:32:286 4015254339439012093556988911134690547414032795483311047407542628696816768516097:32:286 4489734868919692294852335977944514494590615840977688826504576507344437731630080:32:286 4489734868919692294852335977944514494590615840977688826504576507344437731630081:32:287 4489734868919692294852335977944514494590615840977688826504576507344437731630082:32:287 5018334525434136811493953138144741159882001256815483119742446357749531993440255:32:287 5018334525434136811493953138144741159882001256815483119742446357749531993440256:32:288 5018334525434136811493953138144741159882001256815483119742446357749531993440257:32:288 5607005320601059253161325667991103602003892399764752527847859167616581809464320:32:288 5607005320601059253161325667991103602003892399764752527847859167616581809464321:32:289 5607005320601059253161325667991103602003892399764752527847859167616581809464322:32:289 6262329758944877836082842832907475230880532544099999999999999999999999999999999:32:289 6262329758944877836082842832907475230880532544100000000000000000000000000000000:32:290 6262329758944877836082842832907475230880532544100000000000000000000000000000001:32:290 6991585090242939854205518974845969554081766309747923451902286602783962033162880:32:290 6991585090242939854205518974845969554081766309747923451902286602783962033162881:32:291 6991585090242939854205518974845969554081766309747923451902286602783962033162882:32:291 7802813853187781918158554166748180849260334371217275029148737889168592402907135:32:291 7802813853187781918158554166748180849260334371217275029148737889168592402907136:32:292 7802813853187781918158554166748180849260334371217275029148737889168592402907137:32:292 8704901301445296923391208553437999066425251091160338471536150695508863890326400:32:292 8704901301445296923391208553437999066425251091160338471536150695508863890326401:32:293 8704901301445296923391208553437999066425251091160338471536150695508863890326402:32:293 9707660356396583345651547733875779020309037556995567789915443579641767537934335:32:293 9707660356396583345651547733875779020309037556995567789915443579641767537934336:32:294 9707660356396583345651547733875779020309037556995567789915443579641767537934337:32:294 10821924788639731461104087023765032936584574808291774794482626020908355712890624:32:294 10821924788639731461104087023765032936584574808291774794482626020908355712890625:32:295 10821924788639731461104087023765032936584574808291774794482626020908355712890626:32:295 12059651393074591151108287943465454483660220026245502705217855537933279314313215:32:295 12059651393074591151108287943465454483660220026245502705217855537933279314313216:32:296 12059651393074591151108287943465454483660220026245502705217855537933279314313217:32:296 13434031990504930907266805925449075903342425252139578462444218153380065634320640:32:296 13434031990504930907266805925449075903342425252139578462444218153380065634320641:32:297 13434031990504930907266805925449075903342425252139578462444218153380065634320642:32:297 14959616162606329719863080912442523759782145188340315474469384717233504435306495:32:297 14959616162606329719863080912442523759782145188340315474469384717233504435306496:32:298 14959616162606329719863080912442523759782145188340315474469384717233504435306497:32:298 16652445707296720325948543113846522941527715250306793785215810417715462124630400:32:298 16652445707296720325948543113846522941527715250306793785215810417715462124630401:32:299 16652445707296720325948543113846522941527715250306793785215810417715462124630402:32:299 18530201888518409999999999999999999999999999999999999999999999999999999999999999:32:299 18530201888518410000000000000000000000000000000000000000000000000000000000000000:32:300 18530201888518410000000000000000000000000000000000000000000000000000000000000001:32:300 20612366648743638897761092425116495156355942185528449126948836810803089964649600:32:300 20612366648743638897761092425116495156355942185528449126948836810803089964649601:32:301 20612366648743638897761092425116495156355942185528449126948836810803089964649602:32:301 22920399054740489641191047518189054503374593976861076495149279015097886201348095:32:301 22920399054740489641191047518189054503374593976861076495149279015097886201348096:32:302 22920399054740489641191047518189054503374593976861076495149279015097886201348097:32:302 25477928357917718696906635466607015511145416637104162099599223031983857006103040:32:302 25477928357917718696906635466607015511145416637104162099599223031983857006103041:32:303 25477928357917718696906635466607015511145416637104162099599223031983857006103042:32:303 28310965170589919087452435608633003809398384496551100550448389658082838122070015:32:303 28310965170589919087452435608633003809398384496551100550448389658082838122070016:32:304 28310965170589919087452435608633003809398384496551100550448389658082838122070017:32:304 31448132389504554651878398199908788614150090410448712006234563887119293212890624:32:304 31448132389504554651878398199908788614150090410448712006234563887119293212890625:32:305 31448132389504554651878398199908788614150090410448712006234563887119293212890626:32:305 34920917638741947743615804090878434010109531659245389001542492288235558232129535:32:305 34920917638741947743615804090878434010109531659245389001542492288235558232129536:32:306 34920917638741947743615804090878434010109531659245389001542492288235558232129537:32:306 38763949156490323087942652961713559837882356884141263637467416962257011590992000:32:306 38763949156490323087942652961713559837882356884141263637467416962257011590992001:32:307 38763949156490323087942652961713559837882356884141263637467416962257011590992002:32:307 43015297215126843641371027744726419100381318623034457780709753231542837403713535:32:307 43015297215126843641371027744726419100381318623034457780709753231542837403713536:32:308 43015297215126843641371027744726419100381318623034457780709753231542837403713537:32:308 47716803342487428812009686650685237465979715620735730235610220026549941850295680:32:308 47716803342487428812009686650685237465979715620735730235610220026549941850295681:32:309 47716803342487428812009686650685237465979715620735730235610220026549941850295682:32:309 52914439805242031471692993390083875743738676736099999999999999999999999999999999:32:309 52914439805242031471692993390083875743738676736100000000000000000000000000000000:32:310 52914439805242031471692993390083875743738676736100000000000000000000000000000001:32:310 58658702024046038357091459391484726933302019397592171749857586827284500052235520:32:310 58658702024046038357091459391484726933302019397592171749857586827284500052235521:32:311 58658702024046038357091459391484726933302019397592171749857586827284500052235522:32:311 65005036815835294728896091318009722144336700800214276592556223289056941473529855:32:311 65005036815835294728896091318009722144336700800214276592556223289056941473529856:32:312 65005036815835294728896091318009722144336700800214276592556223289056941473529857:32:312 72014309602585353647705806905900623830100352449763376608207260152098873180660480:32:312 72014309602585353647705806905900623830100352449763376608207260152098873180660481:32:313 72014309602585353647705806905900623830100352449763376608207260152098873180660482:32:313 79753313989475393479622475314515224088865908001930715841349451255859895804624895:32:313 79753313989475393479622475314515224088865908001930715841349451255859895804624896:32:314 79753313989475393479622475314515224088865908001930715841349451255859895804624897:32:314 88295327400198204901545016014957159037480579709216648817085660994052886962890624:32:314 88295327400198204901545016014957159037480579709216648817085660994052886962890625:32:315 88295327400198204901545016014957159037480579709216648817085660994052886962890626:32:315 97720716764765261599671586668964131905402394497536874127044515179497751687725055:32:315 97720716764765261599671586668964131905402394497536874127044515179497751687725056:32:316 97720716764765261599671586668964131905402394497536874127044515179497751687725057:32:316 108117598587314632534080978313189554092338853417708457687079419039725478726764160:32:316 108117598587314632534080978313189554092338853417708457687079419039725478726764161:32:317 108117598587314632534080978313189554092338853417708457687079419039725478726764162:32:317 119582558080011057356475747091767976986578231545427140913239708007186607296741375:32:317 119582558080011057356475747091767976986578231545427140913239708007186607296741376:32:318 119582558080011057356475747091767976986578231545427140913239708007186607296741377:32:318 132221432436139619630675905006675238521880281657257987781663810841460599735900160:32:318 132221432436139619630675905006675238521880281657257987781663810841460599735900161:32:319 132221432436139619630675905006675238521880281657257987781663810841460599735900162:32:319 146150163733090291820368483271628301965593254297599999999999999999999999999999999:32:319 146150163733090291820368483271628301965593254297600000000000000000000000000000000:32:320 146150163733090291820368483271628301965593254297600000000000000000000000000000001:32:320 161495727406418841191983228574592870839628686215669425689706930697090844640880640:32:320 161495727406418841191983228574592870839628686215669425689706930697090844640880641:32:321 161495727406418841191983228574592870839628686215669425689706930697090844640880642:32:321 178397142722024980235174581911136295675339084600562966494373401926094977987772415:32:321 178397142722024980235174581911136295675339084600562966494373401926094977987772416:32:322 178397142722024980235174581911136295675339084600562966494373401926094977987772417:32:322 197006572197363553789152535885229716877220373523494064577673832606945916127278720:32:322 197006572197363553789152535885229716877220373523494064577673832606945916127278721:32:323 197006572197363553789152535885229716877220373523494064577673832606945916127278722:32:323 217490517487340961382742893166950969620647214876916403331613367885781133978238975:32:323 217490517487340961382742893166950969620647214876916403331613367885781133978238976:32:324 217490517487340961382742893166950969620647214876916403331613367885781133978238977:32:324 240031119859191452124872385558317436902477093330077195787453092634677886962890624:32:324 240031119859191452124872385558317436902477093330077195787453092634677886962890625:32:325 240031119859191452124872385558317436902477093330077195787453092634677886962890626:32:325 264827574036437222517194714293237427065071580755127673134512374917846302013259775:32:325 264827574036437222517194714293237427065071580755127673134512374917846302013259776:32:326 264827574036437222517194714293237427065071580755127673134512374917846302013259777:32:326 292097664898504123455872838173064387039302355364833194835266554788351802957157120:32:326 292097664898504123455872838173064387039302355364833194835266554788351802957157121:32:327 292097664898504123455872838173064387039302355364833194835266554788351802957157122:32:327 322079437283429435288230460841438334039059286209302802890051225778137420598870015:32:327 322079437283429435288230460841438334039059286209302802890051225778137420598870016:32:328 322079437283429435288230460841438334039059286209302802890051225778137420598870017:32:328 355033009960360811567253762640938978894747958989725139395118520772133449849283840:32:328 355033009960360811567253762640938978894747958989725139395118520772133449849283841:32:329 355033009960360811567253762640938978894747958989725139395118520772133449849283842:32:329 391242545720487963150351605862619804664658131456099999999999999999999999999999999:32:329 391242545720487963150351605862619804664658131456100000000000000000000000000000000:32:330 391242545720487963150351605862619804664658131456100000000000000000000000000000001:32:330 431018390484252150311278335994398797372126151977884846814848506899060252737944960:32:330 431018390484252150311278335994398797372126151977884846814848506899060252737944961:32:331 431018390484252150311278335994398797372126151977884846814848506899060252737944962:32:331 474699395344043537889124754459764136630853479414268229225205660257201282430795775:32:331 474699395344043537889124754459764136630853479414268229225205660257201282430795776:32:332 474699395344043537889124754459764136630853479414268229225205660257201282430795777:32:332 522655436560363856596741338618239165476689521193462450092270531297992050477637760:32:332 522655436560363856596741338618239165476689521193462450092270531297992050477637761:32:333 522655436560363856596741338618239165476689521193462450092270531297992050477637762:32:333 575290149711205460574274290019170241039461128889391569363337128404585500697952255:32:333 575290149711205460574274290019170241039461128889391569363337128404585500697952256:32:334 575290149711205460574274290019170241039461128889391569363337128404585500697952257:32:334 633043895465168502066516463348716166983362953263045444622659124433994293212890624:32:334 633043895465168502066516463348716166983362953263045444622659124433994293212890625:32:335 633043895465168502066516463348716166983362953263045444622659124433994293212890626:32:335 696396975815008565146952151781622025140442461205766239699392753939099628859293695:32:335 696396975815008565146952151781622025140442461205766239699392753939099628859293696:32:336 696396975815008565146952151781622025140442461205766239699392753939099628859293697:32:336 765873121076719999351480605328359393119651608664751578943227303983825836284090880:32:336 765873121076719999351480605328359393119651608664751578943227303983825836284090881:32:337 765873121076719999351480605328359393119651608664751578943227303983825836284090882:32:337 842043269537225618345041465122411143944843647932808053094575859719577790584979455:32:337 842043269537225618345041465122411143944843647932808053094575859719577790584979456:32:338 842043269537225618345041465122411143944843647932808053094575859719577790584979457:32:338 925529663329070041733590642861481515931463673384244042450580982369607348424686720:32:338 925529663329070041733590642861481515931463673384244042450580982369607348424686721:32:339 925529663329070041733590642861481515931463673384244042450580982369607348424686722:32:339 1017010285931541177457962846134113802302590130585599999999999999999999999999999999:32:339 1017010285931541177457962846134113802302590130585600000000000000000000000000000000:32:340 1017010285931541177457962846134113802302590130585600000000000000000000000000000001:32:340 1117223668653276670031790428011253644934924273231443620239682895854924592285188480:32:340 1117223668653276670031790428011253644934924273231443620239682895854924592285188481:32:341 1117223668653276670031790428011253644934924273231443620239682895854924592285188482:32:341 1226974095551155601688108580398199227050034474227949279137813893181707511383719935:32:341 1226974095551155601688108580398199227050034474227949279137813893181707511383719936:32:342 1226974095551155601688108580398199227050034474227949279137813893181707511383719937:32:342 1347137238494276547832006567721872890819326613454654477690085519113574118965817600:32:342 1347137238494276547832006567721872890819326613454654477690085519113574118965817601:32:343 1347137238494276547832006567721872890819326613454654477690085519113574118965817602:32:343 1478666256500908696857937624956637851882602931067876109970249591486637349049204735:32:343 1478666256500908696857937624956637851882602931067876109970249591486637349049204736:32:344 1478666256500908696857937624956637851882602931067876109970249591486637349049204737:32:344 1622598396072025339448260447518759981485363167509054428622149862349033355712890624:32:344 1622598396072025339448260447518759981485363167509054428622149862349033355712890625:32:345 1622598396072025339448260447518759981485363167509054428622149862349033355712890626:32:345 1780062132029711724058857700454943861908580453202256155588288595613336406186786815:32:345 1780062132029711724058857700454943861908580453202256155588288595613336406186786816:32:346 1780062132029711724058857700454943861908580453202256155588288595613336406186786817:32:346 1952284891355525051934707803587505878306053221723942209729738826489073548651885440:32:346 1952284891355525051934707803587505878306053221723942209729738826489073548651885441:32:347 1952284891355525051934707803587505878306053221723942209729738826489073548651885442:32:347 2140601405726788026399547927396305586430519326597170285440536423522658215784349695:32:347 2140601405726788026399547927396305586430519326597170285440536423522658215784349696:32:348 2140601405726788026399547927396305586430519326597170285440536423522658215784349697:32:348 2346462741882760482207756825240122137532874204498275512261072216926346902150748800:32:348 2346462741882760482207756825240122137532874204498275512261072216926346902150748801:32:349 2346462741882760482207756825240122137532874204498275512261072216926346902150748802:32:349 2571446062633582964319035413209348917007446289062499999999999999999999999999999999:32:349 2571446062633582964319035413209348917007446289062500000000000000000000000000000000:32:350 2571446062633582964319035413209348917007446289062500000000000000000000000000000001:32:350 2817265175269795441478698975404047053484256535731591734841276877085126347470771200:32:350 2817265175269795441478698975404047053484256535731591734841276877085126347470771201:32:351 2817265175269795441478698975404047053484256535731591734841276877085126347470771202:32:351 3085781928357189847971645008500546120127755719946846686529487102971909171258064895:32:351 3085781928357189847971645008500546120127755719946846686529487102971909171258064896:32:352 3085781928357189847971645008500546120127755719946846686529487102971909171258064897:32:352 3379018522430024939952549403661912639039824368171629864942200893739562402972298240:32:352 3379018522430024939952549403661912639039824368171629864942200893739562402972298241:32:353 3379018522430024939952549403661912639039824368171629864942200893739562402972298242:32:353 3699170804945739501883951825743058118284568268825177839350326372161363817755836415:32:353 3699170804945739501883951825743058118284568268825177839350326372161363817755836416:32:354 3699170804945739501883951825743058118284568268825177839350326372161363817755836417:32:354 4048622625058101938253463954596767391572895088754790707319998182356357574462890624:32:354 4048622625058101938253463954596767391572895088754790707319998182356357574462890625:32:355 4048622625058101938253463954596767391572895088754790707319998182356357574462890626:32:355 4429961329326503082956674123282716096947201570574903951461692087826390825499099135:32:355 4429961329326503082956674123282716096947201570574903951461692087826390825499099136:32:356 4429961329326503082956674123282716096947201570574903951461692087826390825499099137:32:356 4845994485431609922059855003875318891722149612021522588285593482099801165163260800:32:356 4845994485431609922059855003875318891722149612021522588285593482099801165163260801:32:357 4845994485431609922059855003875318891722149612021522588285593482099801165163260802:32:357 5299767927338221422614205509058011684378740416731409921087247821200563843404660735:32:357 5299767927338221422614205509058011684378740416731409921087247821200563843404660736:32:358 5299767927338221422614205509058011684378740416731409921087247821200563843404660737:32:358 5794585222162967426764892370843912541058406704224273588444015370267341735498510080:32:358 5794585222162967426764892370843912541058406704224273588444015370267341735498510081:32:359 5794585222162967426764892370843912541058406704224273588444015370267341735498510082:32:359 6334028666297327770616228694681188660989646182809599999999999999999999999999999999:32:359 6334028666297327770616228694681188660989646182809600000000000000000000000000000000:32:360 6334028666297327770616228694681188660989646182809600000000000000000000000000000001:32:360 6921981926137087576636956665404142898527372227760574567236831247644037253481253120:32:360 6921981926137087576636956665404142898527372227760574567236831247644037253481253121:32:361 6921981926137087576636956665404142898527372227760574567236831247644037253481253122:32:361 7562654447111573990902522280966388794164823313098434790923411984815033391991750655:32:361 7562654447111573990902522280966388794164823313098434790923411984815033391991750656:32:362 7562654447111573990902522280966388794164823313098434790923411984815033391991750657:32:362 8260607763625771703086003019645145928238167553259187219733271137210950909627959680:32:362 8260607763625771703086003019645145928238167553259187219733271137210950909627959681:32:363 8260607763625771703086003019645145928238167553259187219733271137210950909627959682:32:363 9020783852063895399903466209013224109178572751317861122178352461199000599628087295:32:363 9020783852063895399903466209013224109178572751317861122178352461199000599628087296:32:364 9020783852063895399903466209013224109178572751317861122178352461199000599628087297:32:364 9848535679194823609417393619348367391225069292202903331786417402327060699462890624:32:364 9848535679194823609417393619348367391225069292202903331786417402327060699462890625:32:365 9848535679194823609417393619348367391225069292202903331786417402327060699462890626:32:365 10749660109211142475964840323570891547556784725823665859918217385784198787713990655:32:365 10749660109211142475964840323570891547556784725823665859918217385784198787713990656:32:366 10749660109211142475964840323570891547556784725823665859918217385784198787713990657:32:366 11730433344270290726099156801050005014506482211414662803032726275827186755455336960:32:366 11730433344270290726099156801050005014506482211414662803032726275827186755455336961:32:367 11730433344270290726099156801050005014506482211414662803032726275827186755455336962:32:367 12797649085837189639668950982467687642191358539488473522725621555696980200915992575:32:367 12797649085837189639668950982467687642191358539488473522725621555696980200915992576:32:368 12797649085837189639668950982467687642191358539488473522725621555696980200915992577:32:368 13958659617404576679181268058137983933477838009106094486914940654759306574689410560:32:368 13958659617404576679181268058137983933477838009106094486914940654759306574689410561:32:369 13958659617404576679181268058137983933477838009106094486914940654759306574689410562:32:369 15221420023345052855980413817451797488463769212608099999999999999999999999999999999:32:369 15221420023345052855980413817451797488463769212608100000000000000000000000000000000:32:370 15221420023345052855980413817451797488463769212608100000000000000000000000000000001:32:370 16594535773786028849469591949658869689108137864025416137138933696314499431093594240:32:370 16594535773786028849469591949658869689108137864025416137138933696314499431093594241:32:371 16594535773786028849469591949658869689108137864025416137138933696314499431093594242:32:371 18087313921557354400930220630733393393398577845354579464120754897896905711305097215:32:371 18087313921557354400930220630733393393398577845354579464120754897896905711305097216:32:372 18087313921557354400930220630733393393398577845354579464120754897896905711305097217:32:372 19709818174507307565719443829033131863966386128853447415328085964703029568678081920:32:372 19709818174507307565719443829033131863966386128853447415328085964703029568678081921:32:373 19709818174507307565719443829033131863966386128853447415328085964703029568678081922:32:373 21472928124885724654955297159712048530670853536942673614107353473465173355450597375:32:373 21472928124885724654955297159712048530670853536942673614107353473465173355450597376:32:374 21472928124885724654955297159712048530670853536942673614107353473465173355450597377:32:374 23388402937127576633258121612464177364030561145913367226967238821089267730712890624:32:374 23388402937127576633258121612464177364030561145913367226967238821089267730712890625:32:375 23388402937127576633258121612464177364030561145913367226967238821089267730712890626:32:375 25468949816314991169350321132800815689679387204800731477186387449260728566075621375:32:375 25468949816314991169350321132800815689679387204800731477186387449260728566075621376:32:376 25468949816314991169350321132800815689679387204800731477186387449260728566075621377:32:376 27728297601934132888364161574397780613078760599677111928135263601820516792035633920:32:376 27728297601934132888364161574397780613078760599677111928135263601820516792035633921:32:377 27728297601934132888364161574397780613078760599677111928135263601820516792035633922:32:377 30181275855364121630431286804843884001517482958754691977496738732824970078994825215:32:377 30181275855364121630431286804843884001517482958754691977496738732824970078994825216:32:378 30181275855364121630431286804843884001517482958754691977496738732824970078994825217:32:378 32843899834932300534173870142033723880859635928172777690844350342819546205903290240:32:378 32843899834932300534173870142033723880859635928172777690844350342819546205903290241:32:379 32843899834932300534173870142033723880859635928172777690844350342819546205903290242:32:379 35733461779443360768808234403936306450886720854425599999999999999999999999999999999:32:379 35733461779443360768808234403936306450886720854425600000000000000000000000000000000:32:380 35733461779443360768808234403936306450886720854425600000000000000000000000000000001:32:380 38868628949944800881608934764397388050618136873235494570144290223850691363507154560:32:380 38868628949944800881608934764397388050618136873235494570144290223850691363507154561:32:381 38868628949944800881608934764397388050618136873235494570144290223850691363507154562:32:381 42269548910240019521460785821320419113832401126612802494260117907814926186316824575:32:381 42269548910240019521460785821320419113832401126612802494260117907814926186316824576:32:382 42269548910240019521460785821320419113832401126612802494260117907814926186316824577:32:382 45957962559421808919420325486045046236921625567361431454316885444355059222306344960:32:382 45957962559421808919420325486045046236921625567361431454316885444355059222306344961:32:383 45957962559421808919420325486045046236921625567361431454316885444355059222306344962:32:383 49957325464599039905526421847276897189295557214301021798603622114356739630910406655:32:383 49957325464599039905526421847276897189295557214301021798603622114356739630910406656:32:384 49957325464599039905526421847276897189295557214301021798603622114356739630910406657:32:384 54292938079161328100100364819542369293891716191840049987033032812178134918212890624:32:384 54292938079161328100100364819542369293891716191840049987033032812178134918212890625:32:385 54292938079161328100100364819542369293891716191840049987033032812178134918212890626:32:385 58992085471511806515540055853137610223191859016808461056445432893121263082506551295:32:385 58992085471511806515540055853137610223191859016808461056445432893121263082506551296:32:386 58992085471511806515540055853137610223191859016808461056445432893121263082506551297:32:386 64084187231346553913722038051410542832112008613645085687764212624531918794378071680:32:386 64084187231346553913722038051410542832112008613645085687764212624531918794378071681:32:387 64084187231346553913722038051410542832112008613645085687764212624531918794378071682:32:387 69600958265429357262384513189947161678833860890586039771065083991610603249028038655:32:387 69600958265429357262384513189947161678833860890586039771065083991610603249028038656:32:388 69600958265429357262384513189947161678833860890586039771065083991610603249028038657:32:388 75576581242570301061307362708010661253284952436454361812799994308217434965326389120:32:388 75576581242570301061307362708010661253284952436454361812799994308217434965326389121:32:389 75576581242570301061307362708010661253284952436454361812799994308217434965326389122:32:389 82047891498344047165283746981066667928346623055232099999999999999999999999999999999:32:389 82047891498344047165283746981066667928346623055232100000000000000000000000000000000:32:390 82047891498344047165283746981066667928346623055232100000000000000000000000000000001:32:390 89054575264166911868625657835289163913072037359023021722713692193783786657815694080:32:390 89054575264166911868625657835289163913072037359023021722713692193783786657815694081:32:391 89054575264166911868625657835289163913072037359023021722713692193783786657815694082:32:391 96639382142890307052783554499938969029642148082620979609648687412158934749320052735:32:391 96639382142890307052783554499938969029642148082620979609648687412158934749320052736:32:392 96639382142890307052783554499938969029642148082620979609648687412158934749320052737:32:392 104848352814272777434940199993986238607213678324279748662650899158018883891118828800:32:392 104848352814272777434940199993986238607213678324279748662650899158018883891118828801:32:393 104848352814272777434940199993986238607213678324279748662650899158018883891118828802:32:393 113731063018787015859303433795999606206665989389463053115114539266391469734164955135:32:393 113731063018787015859303433795999606206665989389463053115114539266391469734164955136:32:394 113731063018787015859303433795999606206665989389463053115114539266391469734164955137:32:394 123340884937438125466220187106988643295216733125002496793210529722273349761962890624:32:394 123340884937438125466220187106988643295216733125002496793210529722273349761962890625:32:395 123340884937438125466220187106988643295216733125002496793210529722273349761962890626:32:395 133735267158864964231723872195623717649360800151263880266032700470433978539799740415:32:395 133735267158864964231723872195623717649360800151263880266032700470433978539799740416:32:396 133735267158864964231723872195623717649360800151263880266032700470433978539799740417:32:396 144976034503232042323155974224682173532803520277909171306332029850953046775578970240:32:396 144976034503232042323155974224682173532803520277909171306332029850953046775578970241:32:397 144976034503232042323155974224682173532803520277909171306332029850953046775578970242:32:397 157129709055574775140389873130163234356622682052880602305455488554539898298376912895:32:397 157129709055574775140389873130163234356622682052880602305455488554539898298376912896:32:398 157129709055574775140389873130163234356622682052880602305455488554539898298376912897:32:398 170267853849631631061369491472478476336457354337311423220540958979230862018639347200:32:398 170267853849631631061369491472478476336457354337311423220540958979230862018639347201:32:399 170267853849631631061369491472478476336457354337311423220540958979230862018639347202:32:399 184467440737095516159999999999999999999999999999999999999999999999999999999999999999:32:399 184467440737095516160000000000000000000000000000000000000000000000000000000000000000:32:400 184467440737095516160000000000000000000000000000000000000000000000000000000000000001:32:400 199811244076974154810543013084429357170118320429353273857439642620295843133519372800:32:400 199811244076974154810543013084429357170118320429353273857439642620295843133519372801:32:401 199811244076974154810543013084429357170118320429353273857439642620295843133519372802:32:401 216388261985714658170185860548233108799315640788327986719480644190901707324518301695:32:401 216388261985714658170185860548233108799315640788327986719480644190901707324518301696:32:402 216388261985714658170185860548233108799315640788327986719480644190901707324518301697:32:402 234294167001290206003447948508311129619542058492148372021515485953199756399488013440:32:402 234294167001290206003447948508311129619542058492148372021515485953199756399488013441:32:403 234294167001290206003447948508311129619542058492148372021515485953199756399488013442:32:403 253631788133957043104118843722803720604266755846713901485590900838778474631650082815:32:403 253631788133957043104118843722803720604266755846713901485590900838778474631650082816:32:404 253631788133957043104118843722803720604266755846713901485590900838778474631650082817:32:404 274511626403280142031630334942893094049725020124480154111444973386824131011962890624:32:404 274511626403280142031630334942893094049725020124480154111444973386824131011962890625:32:405 274511626403280142031630334942893094049725020124480154111444973386824131011962890626:32:405 297052406095731522372912312002579582213846263840459815614178578795034405752050548735:32:405 297052406095731522372912312002579582213846263840459815614178578795034405752050548736:32:406 297052406095731522372912312002579582213846263840459815614178578795034405752050548737:32:406 321381664120146489194722849906900897969695704564535972220261944481188513808373049600:32:406 321381664120146489194722849906900897969695704564535972220261944481188513808373049601:32:407 321381664120146489194722849906900897969695704564535972220261944481188513808373049602:32:407 347636379990065953718403330665479313071531018528356831581583434325197421466601127935:32:407 347636379990065953718403330665479313071531018528356831581583434325197421466601127936:32:408 347636379990065953718403330665479313071531018528356831581583434325197421466601127937:32:408 375963649123010751979693402340014337600229017004100665617201817194934131287545204480:32:408 375963649123010751979693402340014337600229017004100665617201817194934131287545204481:32:409 375963649123010751979693402340014337600229017004100665617201817194934131287545204482:32:409 406521402317568389992186812625472231188680275023488099999999999999999999999999999999:32:409 406521402317568389992186812625472231188680275023488100000000000000000000000000000000:32:410 406521402317568389992186812625472231188680275023488100000000000000000000000000000001:32:410 439479174450396033924179194567960762854275192255321092845729339205211353380476750720:32:410 439479174450396033924179194567960762854275192255321092845729339205211353380476750721:32:411 439479174450396033924179194567960762854275192255321092845729339205211353380476750722:32:411 475018925627459761281102850297659911886722131607378220616786140207005457822521491455:32:411 475018925627459761281102850297659911886722131607378220616786140207005457822521491456:32:412 475018925627459761281102850297659911886722131607378220616786140207005457822521491457:32:412 513335918227676521715664196693582250413443326710806058740647007871748103043456778880:32:412 513335918227676521715664196693582250413443326710806058740647007871748103043456778881:32:413 513335918227676521715664196693582250413443326710806058740647007871748103043456778882:32:413 554639653493274617995666467337065404185467078178021246867211376756828314519728029695:32:413 554639653493274617995666467337065404185467078178021246867211376756828314519728029696:32:414 554639653493274617995666467337065404185467078178021246867211376756828314519728029697:32:414 599154871550350627282335524406564566644157408069348163364961766637861728668212890624:32:414 599154871550350627282335524406564566644157408069348163364961766637861728668212890625:32:415 599154871550350627282335524406564566644157408069348163364961766637861728668212890626:32:415 647122618986024433763812562648824874234915580186224842372416573492740186115728736255:32:415 647122618986024433763812562648824874234915580186224842372416573492740186115728736256:32:416 647122618986024433763812562648824874234915580186224842372416573492740186115728736257:32:416 698801388366069452718668162201231260255540462062914880696125604076248715627309429760:32:416 698801388366069452718668162201231260255540462062914880696125604076248715627309429761:32:417 698801388366069452718668162201231260255540462062914880696125604076248715627309429762:32:417 754468334349755483630784667500875710693396025738653660260365281499871120965842763775:32:417 754468334349755483630784667500875710693396025738653660260365281499871120965842763776:32:418 754468334349755483630784667500875710693396025738653660260365281499871120965842763777:32:418 814420571347765756927956613588827101038299056784276626383718650865168998480937400960:32:418 814420571347765756927956613588827101038299056784276626383718650865168998480937400961:32:419 814420571347765756927956613588827101038299056784276626383718650865168998480937400962:32:419 878976557975364355508350478782912568914120743164313599999999999999999999999999999999:32:419 878976557975364355508350478782912568914120743164313600000000000000000000000000000000:32:420 878976557975364355508350478782912568914120743164313600000000000000000000000000000001:32:420 948477573877472403961473191238737340721629127924481577808115153804822825528696787840:32:420 948477573877472403961473191238737340721629127924481577808115153804822825528696787841:32:421 948477573877472403961473191238737340721629127924481577808115153804822825528696787842:32:421 1023289294845991324565059373666706508926473517055422262384146137354854906729401942015:32:421 1023289294845991324565059373666706508926473517055422262384146137354854906729401942016:32:422 1023289294845991324565059373666706508926473517055422262384146137354854906729401942017:32:422 1103803472513674889597196900994391581280502652461935444637897498748625490584402405120:32:422 1103803472513674889597196900994391581280502652461935444637897498748625490584402405121:32:423 1103803472513674889597196900994391581280502652461935444637897498748625490584402405122:32:423 1190439725294243185742207536754934782537443818495423999453566623007856563329775435775:32:423 1190439725294243185742207536754934782537443818495423999453566623007856563329775435776:32:424 1190439725294243185742207536754934782537443818495423999453566623007856563329775435777:32:424 1283647447646456993136451805158355339576124222455977275103577994741499423980712890624:32:424 1283647447646456993136451805158355339576124222455977275103577994741499423980712890625:32:425 1283647447646456993136451805158355339576124222455977275103577994741499423980712890626:32:425 1383907845171801285536379049892874791253971724654931449764004846084492663763790462975:32:425 1383907845171801285536379049892874791253971724654931449764004846084492663763790462976:32:426 1383907845171801285536379049892874791253971724654931449764004846084492663763790462977:32:426 1491736103512600480218514966894538156360735042525180695461656494450261930783887630720:32:426 1491736103512600480218514966894538156360735042525180695461656494450261930783887630721:32:427 1491736103512600480218514966894538156360735042525180695461656494450261930783887630722:32:427 1607683699501216165382246431752861271017186376736583902164983892047798736868570300415:32:427 1607683699501216165382246431752861271017186376736583902164983892047798736868570300416:32:428 1607683699501216165382246431752861271017186376736583902164983892047798736868570300417:32:428 1732340863522945967479448924216534607703997729142282087930222209631576697288307776640:32:428 1732340863522945967479448924216534607703997729142282087930222209631576697288307776641:32:429 1732340863522945967479448924216534607703997729142282087930222209631576697288307776642:32:429 1866339202596914667002226052497283294778673107567040099999999999999999999999999999999:32:429 1866339202596914667002226052497283294778673107567040100000000000000000000000000000000:32:430 1866339202596914667002226052497283294778673107567040100000000000000000000000000000001:32:430 2010354494252273324337145299294415450811564754231113758931879629476552964572370844160:32:430 2010354494252273324337145299294415450811564754231113758931879629476552964572370844161:32:431 2010354494252273324337145299294415450811564754231113758931879629476552964572370844162:32:431 2165109661883133947041953480930062655929065887139995266791184530039662094607110373375:32:431 2165109661883133947041953480930062655929065887139995266791184530039662094607110373376:32:432 2165109661883133947041953480930062655929065887139995266791184530039662094607110373377:32:432 2331377942906692636198720255020699524158627590557799995464899908034121364451660572160:32:432 2331377942906692636198720255020699524158627590557799995464899908034121364451660572161:32:433 2331377942906692636198720255020699524158627590557799995464899908034121364451660572162:32:433 2509986261726855928924341753168919704703930854487221936189879215169822982024311341055:32:433 2509986261726855928924341753168919704703930854487221936189879215169822982024311341056:32:434 2509986261726855928924341753168919704703930854487221936189879215169822982024311341057:32:434 2701818820222406986552436438057410358581301855984331111819177889265120029449462890624:32:434 2701818820222406986552436438057410358581301855984331111819177889265120029449462890625:32:435 2701818820222406986552436438057410358581301855984331111819177889265120029449462890626:32:435 2907820919236460243260413470094502735175846751725747770636818602861290809045230288895:32:435 2907820919236460243260413470094502735175846751725747770636818602861290809045230288896:32:436 2907820919236460243260413470094502735175846751725747770636818602861290809045230288897:32:436 3129003025344896404847759696977481728466656313706756851704871901873723496471453572480:32:436 3129003025344896404847759696977481728466656313706756851704871901873723496471453572481:32:437 3129003025344896404847759696977481728466656313706756851704871901873723496471453572482:32:437 3366445098028002494201645719078834719469612832253489004092522557232295696245882617855:32:437 3366445098028002494201645719078834719469612832253489004092522557232295696245882617856:32:438 3366445098028002494201645719078834719469612832253489004092522557232295696245882617857:32:438 3621301193264144957241440900833432613388244605273424579882802394373953472392994571520:32:438 3621301193264144957241440900833432613388244605273424579882802394373953472392994571521:32:439 3621301193264144957241440900833432613388244605273424579882802394373953472392994571522:32:439 3894804360509587490913331319856668124988713324878233599999999999999999999999999999999:32:439 3894804360509587490913331319856668124988713324878233600000000000000000000000000000000:32:440 3894804360509587490913331319856668124988713324878233600000000000000000000000000000001:32:440 4188271851027274266670020743752976432915773724299403513508038881183728210190544679680:32:440 4188271851027274266670020743752976432915773724299403513508038881183728210190544679681:32:441 4188271851027274266670020743752976432915773724299403513508038881183728210190544679682:32:441 4503110656582420517147166775648071819544459491795747496844106910165700848422051905535:32:441 4503110656582420517147166775648071819544459491795747496844106910165700848422051905536:32:442 4503110656582420517147166775648071819544459491795747496844106910165700848422051905537:32:442 4840823398637121817594316231261586037729374423908919771371304056934258080637309360000:32:442 4840823398637121817594316231261586037729374423908919771371304056934258080637309360001:32:443 4840823398637121817594316231261586037729374423908919771371304056934258080637309360002:32:443 5203014589353102793725642593137390201181885798920507506549892602435650687141765185535:32:443 5203014589353102793725642593137390201181885798920507506549892602435650687141765185536:32:444 5203014589353102793725642593137390201181885798920507506549892602435650687141765185537:32:444 5591397286954531222088133644427247789778428100471580368778079771436750888824462890624:32:444 5591397286954531222088133644427247789778428100471580368778079771436750888824462890625:32:445 5591397286954531222088133644427247789778428100471580368778079771436750888824462890626:32:445 6007800169315052195287838710449108686072315875564434864485794572543787666072473174015:32:445 6007800169315052195287838710449108686072315875564434864485794572543787666072473174016:32:446 6007800169315052195287838710449108686072315875564434864485794572543787666072473174017:32:446 6454175051018557059360065507127750577424170774872938433629826443050948524736655575040:32:446 6454175051018557059360065507127750577424170774872938433629826443050948524736655575041:32:447 6454175051018557059360065507127750577424170774872938433629826443050948524736655575042:32:447 6932604870605590038803338606746910896173758159928392569779319357468757260839572996095:32:447 6932604870605590038803338606746910896173758159928392569779319357468757260839572996096:32:448 6932604870605590038803338606746910896173758159928392569779319357468757260839572996097:32:448 7445312176260806852248505118243157693338906971027072236008097717960004418562870425600:32:448 7445312176260806852248505118243157693338906971027072236008097717960004418562870425601:32:449 7445312176260806852248505118243157693338906971027072236008097717960004418562870425602:32:449 7994668139825836952444745901229325681924819946289062499999999999999999999999999999999:32:449 7994668139825836952444745901229325681924819946289062500000000000000000000000000000000:32:450 7994668139825836952444745901229325681924819946289062500000000000000000000000000000001:32:450 8583202130740784858755222779741761378676990913549028355093651710846977676606830454400:32:450 8583202130740784858755222779741761378676990913549028355093651710846977676606830454401:32:451 8583202130740784858755222779741761378676990913549028355093651710846977676606830454402:32:451 9213611883331185244978741296818842122139452035389005958891417893264868130218622058495:32:451 9213611883331185244978741296818842122139452035389005958891417893264868130218622058496:32:452 9213611883331185244978741296818842122139452035389005958891417893264868130218622058497:32:452 9888774292770489132339386467941440247075427123959152289844866458169556435366313248640:32:452 9888774292770489132339386467941440247075427123959152289844866458169556435366313248641:32:453 9888774292770489132339386467941440247075427123959152289844866458169556435366313248642:32:453 10611756877066343607205325978161651623255646807078908216045426192451539710647484809215:32:453 10611756877066343607205325978161651623255646807078908216045426192451539710647484809216:32:454 10611756877066343607205325978161651623255646807078908216045426192451539710647484809217:32:454 11385829944547536589386870651326954265407032805345839481099054240621626377105712890624:32:454 11385829944547536589386870651326954265407032805345839481099054240621626377105712890625:32:455 11385829944547536589386870651326954265407032805345839481099054240621626377105712890626:32:455 12214479508573288288949147783671876728346025851717483005841580343552032278679006478335:32:455 12214479508573288288949147783671876728346025851717483005841580343552032278679006478336:32:456 12214479508573288288949147783671876728346025851717483005841580343552032278679006478337:32:456 13101420993553647513437494666862248154067501881874340755286257595668376921394260358400:32:456 13101420993553647513437494666862248154067501881874340755286257595668376921394260358401:32:457 13101420993553647513437494666862248154067501881874340755286257595668376921394260358402:32:457 14050613778865461481942985538199875119662700747277462085358840982499812520151153115135:32:457 14050613778865461481942985538199875119662700747277462085358840982499812520151153115136:32:458 14050613778865461481942985538199875119662700747277462085358840982499812520151153115137:32:458 15066276629879416314341293788543007114701144015745389327387011787481085042676070378880:32:458 15066276629879416314341293788543007114701144015745389327387011787481085042676070378881:32:459 15066276629879416314341293788543007114701144015745389327387011787481085042676070378882:32:459 16152904068087007410068011980679904821450429485914521599999999999999999999999999999999:32:459 16152904068087007410068011980679904821450429485914521600000000000000000000000000000000:32:460 16152904068087007410068011980679904821450429485914521600000000000000000000000000000001:32:460 17315283735239357153373055972491047460794852177782774851564849781847117453630558728320:32:460 17315283735239357153373055972491047460794852177782774851564849781847117453630558728321:32:461 17315283735239357153373055972491047460794852177782774851564849781847117453630558728322:32:461 18558514809490277907627358106802055327000766871364585804858511606446628691254502752255:32:461 18558514809490277907627358106802055327000766871364585804858511606446628691254502752256:32:462 18558514809490277907627358106802055327000766871364585804858511606446628691254502752257:32:462 19888027534781987791463720075885348940229889728076773633013606286908499586225227118080:32:462 19888027534781987791463720075885348940229889728076773633013606286908499586225227118081:32:463 19888027534781987791463720075885348940229889728076773633013606286908499586225227118082:32:463 21309603928131930395468908209321599713840111759032077118688435906429558652748584452095:32:463 21309603928131930395468908209321599713840111759032077118688435906429558652748584452096:32:464 21309603928131930395468908209321599713840111759032077118688435906429558652748584452097:32:464 22829399733082149611161007690442356269069416771135606457562223100103437900543212890624:32:464 22829399733082149611161007690442356269069416771135606457562223100103437900543212890625:32:465 22829399733082149611161007690442356269069416771135606457562223100103437900543212890626:32:465 24453967691367985875858960982873085365797703168637169841847505485030483594729651961855:32:465 24453967691367985875858960982873085365797703168637169841847505485030483594729651961856:32:466 24453967691367985875858960982873085365797703168637169841847505485030483594729651961857:32:466 26190282208860306064794355526851224740221981730951236010604914383010915079562129042560:32:466 26190282208860306064794355526851224740221981730951236010604914383010915079562129042561:32:467 26190282208860306064794355526851224740221981730951236010604914383010915079562129042562:32:467 28045765496045349813488404607335365945042873773087451420300142342815631496431037054975:32:467 28045765496045349813488404607335365945042873773087451420300142342815631496431037054976:32:468 28045765496045349813488404607335365945042873773087451420300142342815631496431037054977:32:468 30028315267739364392736449519787076817995277599920864363913279816762161239139359871360:32:468 30028315267739364392736449519787076817995277599920864363913279816762161239139359871361:32:469 30028315267739364392736449519787076817995277599920864363913279816762161239139359871362:32:469 32146334091402826047624306247823527992039573078929664099999999999999999999999999999999:32:469 32146334091402826047624306247823527992039573078929664100000000000000000000000000000000:32:470 32146334091402826047624306247823527992039573078929664100000000000000000000000000000001:32:470 34408760478333073293113317814051045259554962756953198315944662609333474685621770461440:32:470 34408760478333073293113317814051045259554962756953198315944662609333474685621770461441:32:471 34408760478333073293113317814051045259554962756953198315944662609333474685621770461442:32:471 36825101817187045297552150078306625632903107714640634214971981753371860600314518306815:32:471 36825101817187045297552150078306625632903107714640634214971981753371860600314518306816:32:472 36825101817187045297552150078306625632903107714640634214971981753371860600314518306817:32:472 39405469254730563720026320342177293430138014123442434658722639132233222436032660248320:32:472 39405469254730563720026320342177293430138014123442434658722639132233222436032660248321:32:473 39405469254730563720026320342177293430138014123442434658722639132233222436032660248322:32:473 42160614634440883508628939621594746952942250844534911486088454675753019850930232754175:32:473 42160614634440883508628939621594746952942250844534911486088454675753019850930232754176:32:474 42160614634440883508628939621594746952942250844534911486088454675753019850930232754177:32:474 45101969609619386998094936917054909138528038560489452635238194488920271396636962890624:32:474 45101969609619386998094936917054909138528038560489452635238194488920271396636962890625:32:475 45101969609619386998094936917054909138528038560489452635238194488920271396636962890626:32:475 48241687054016311371719605262313868917941439333949608330130921847767494298325877784575:32:475 48241687054016311371719605262313868917941439333949608330130921847767494298325877784576:32:476 48241687054016311371719605262313868917941439333949608330130921847767494298325877784577:32:476 51592684899645004049458115129504820063348764874795153395561998841170468021333153147520:32:476 51592684899645004049458115129504820063348764874795153395561998841170468021333153147521:32:477 51592684899645004049458115129504820063348764874795153395561998841170468021333153147522:32:477 55168692538485864980388787880051061675512455183759690996845835123318563229651085295615:32:477 55168692538485864980388787880051061675512455183759690996845835123318563229651085295616:32:478 55168692538485864980388787880051061675512455183759690996845835123318563229651085295617:32:478 58984299932167113588081994194035050361840206657800362300636815843397004218756742743040:32:478 58984299932167113588081994194035050361840206657800362300636815843397004218756742743041:32:479 58984299932167113588081994194035050361840206657800362300636815843397004218756742743042:32:479 63055009581478884442363268783274581733390573874289049599999999999999999999999999999999:32:479 63055009581478884442363268783274581733390573874289049600000000000000000000000000000000:32:480 63055009581478884442363268783274581733390573874289049600000000000000000000000000000001:32:480 67397291515747838583856788443546123816498739438601064488415279831700737166722449013760:32:480 67397291515747838583856788443546123816498739438601064488415279831700737166722449013761:32:481 67397291515747838583856788443546123816498739438601064488415279831700737166722449013762:32:481 72028641470691300151469865595774343054196899792398619505894996627719597192519851442175:32:481 72028641470691300151469865595774343054196899792398619505894996627719597192519851442176:32:482 72028641470691300151469865595774343054196899792398619505894996627719597192519851442177:32:482 76967642432403648521181188797183923641150973447286434062865949263988437896334700319360:32:482 76967642432403648521181188797183923641150973447286434062865949263988437896334700319361:32:483 76967642432403648521181188797183923641150973447286434062865949263988437896334700319362:32:483 82234029734625049113929522866489193994903509482752292106926951132169536346070980755455:32:483 82234029734625049113929522866489193994903509482752292106926951132169536346070980755456:32:484 82234029734625049113929522866489193994903509482752292106926951132169536346070980755457:32:484 87848759906426346285123013712780681075743351997029272789584040665067732334136962890624:32:484 87848759906426346285123013712780681075743351997029272789584040665067732334136962890625:32:485 87848759906426346285123013712780681075743351997029272789584040665067732334136962890626:32:485 93834083477937890167461006840952786144675377687793638261453568756912877393048550506495:32:485 93834083477937890167461006840952786144675377687793638261453568756912877393048550506496:32:486 93834083477937890167461006840952786144675377687793638261453568756912877393048550506497:32:486 100213621962779160453587800811425423829219044851903149493608515277802204234700950593280:32:486 100213621962779160453587800811425423829219044851903149493608515277802204234700950593281:32:487 100213621962779160453587800811425423829219044851903149493608515277802204234700950593282:32:487 107012449247436381463005955768044434869148800561682662185484405110617177520143708717055:32:487 107012449247436381463005955768044434869148800561682662185484405110617177520143708717056:32:488 107012449247436381463005955768044434869148800561682662185484405110617177520143708717057:32:488 114257177630014206844797055883922327041398010196364834731851094977271322876705909233920:32:488 114257177630014206844797055883922327041398010196364834731851094977271322876705909233921:32:489 114257177630014206844797055883922327041398010196364834731851094977271322876705909233922:32:489 121976048763583570013857386256297182075561529413123840099999999999999999999999999999999:32:489 121976048763583570013857386256297182075561529413123840100000000000000000000000000000000:32:490 121976048763583570013857386256297182075561529413123840100000000000000000000000000000001:32:490 130199029772790853811940794961258289925227158450308462060083928763781461096296392145280:32:490 130199029772790853811940794961258289925227158450308462060083928763781461096296392145281:32:491 130199029772790853811940794961258289925227158450308462060083928763781461096296392145282:32:491 138957914826514919148172358125702064466917912890406881595046346689969947474549419278335:32:491 138957914826514919148172358125702064466917912890406881595046346689969947474549419278336:32:492 138957914826514919148172358125702064466917912890406881595046346689969947474549419278337:32:492 148286432464190980993265924288146624142315133064532333654549274533405585841008497411200:32:492 148286432464190980993265924288146624142315133064532333654549274533405585841008497411201:32:493 148286432464190980993265924288146624142315133064532333654549274533405585841008497411202:32:493 158220358988998072330292896694419897624881105101756243754789996080893151240094729895935:32:493 158220358988998072330292896694419897624881105101756243754789996080893151240094729895936:32:494 158220358988998072330292896694419897624881105101756243754789996080893151240094729895937:32:494 168797638257465707677809473122379815881570802240599455103393569611944258213043212890624:32:494 168797638257465707677809473122379815881570802240599455103393569611944258213043212890625:32:495 168797638257465707677809473122379815881570802240599455103393569611944258213043212890626:32:495 180058508212232805610989773951646314250453079125036053077528778132889704576980527087615:32:495 180058508212232805610989773951646314250453079125036053077528778132889704576980527087616:32:496 180058508212232805610989773951646314250453079125036053077528778132889704576980527087617:32:496 192045634522727126945507084733372157634257748154548831246999294202224237078456121699840:32:496 192045634522727126945507084733372157634257748154548831246999294202224237078456121699841:32:497 192045634522727126945507084733372157634257748154548831246999294202224237078456121699842:32:497 204804251717467393933040198642643145019915360709755751946719211889405656504190732599295:32:497 204804251717467393933040198642643145019915360709755751946719211889405656504190732599296:32:498 204804251717467393933040198642643145019915360709755751946719211889405656504190732599297:32:498 218382312211565705207551739559148813455060234482113049039242623327777959246880123984000:32:498 218382312211565705207551739559148813455060234482113049039242623327777959246880123984001:32:499 218382312211565705207551739559148813455060234482113049039242623327777959246880123984002:32:499 232830643653869628906249999999999999999999999999999999999999999999999999999999999999999:32:499 232830643653869628906250000000000000000000000000000000000000000000000000000000000000000:32:500 232830643653869628906250000000000000000000000000000000000000000000000000000000000000001:32:500 248203115040078252712290571908452489678554137649621862117558300919290545248120124016000:32:500 248203115040078252712290571908452489678554137649621862117558300919290545248120124016001:32:501 248203115040078252712290571908452489678554137649621862117558300919290545248120124016002:32:501 264556812061143425532708241850509030846139445752809896789798811682395984503790209335295:32:501 264556812061143425532708241850509030846139445752809896789798811682395984503790209335296:32:502 264556812061143425532708241850509030846139445752809896789798811682395984503790209335297:32:502 281952222180377584319235828596487599895671171458154120595150545784458317082057208003840:32:502 281952222180377584319235828596487599895671171458154120595150545784458317082057208003841:32:503 281952222180377584319235828596487599895671171458154120595150545784458317082057208003842:32:503 300453429957986371797846684945917373499016301563091415625019684383142403729216940015615:32:503 300453429957986371797846684945917373499016301563091415625019684383142403729216940015616:32:504 300453429957986371797846684945917373499016301563091415625019684383142403729216940015617:32:504 320128323168283573855248128662608574367225596692734615899737998866476118564605712890624:32:504 320128323168283573855248128662608574367225596692734615899737998866476118564605712890625:32:505 320128323168283573855248128662608574367225596692734615899737998866476118564605712890626:32:505 341048810282686106144450047329828956195786632598921386313341461770366927331851486887935:32:505 341048810282686106144450047329828956195786632598921386313341461770366927331851486887936:32:506 341048810282686106144450047329828956195786632598921386313341461770366927331851486887937:32:506 363291049920788842502516878891173798511109563846182391935017911278170128285369865187200:32:506 363291049920788842502516878891173798511109563846182391935017911278170128285369865187201:32:507 363291049920788842502516878891173798511109563846182391935017911278170128285369865187202:32:507 386935692902446716487370182513099047866065170077293286385142561865498934103445220622335:32:507 386935692902446716487370182513099047866065170077293286385142561865498934103445220622336:32:508 386935692902446716487370182513099047866065170077293286385142561865498934103445220622337:32:508 412068137565911300623878929733325460598617370453323099902415294155517895787453154033280:32:508 412068137565911300623878929733325460598617370453323099902415294155517895787453154033281:32:509 412068137565911300623878929733325460598617370453323099902415294155517895787453154033282:32:509 438778799050750501165423924892074232913989115537124160099999999999999999999999999999999:32:509 438778799050750501165423924892074232913989115537124160100000000000000000000000000000000:32:510 438778799050750501165423924892074232913989115537124160100000000000000000000000000000001:32:510 467163393279595717114768225276800784329100809373754920279961651273278375640467247185920:32:510 467163393279595717114768225276800784329100809373754920279961651273278375640467247185921:32:511 467163393279595717114768225276800784329100809373754920279961651273278375640467247185922:32:511 497323236409786642155382248146820840100456150797347717440463976893159497012533375533055:32:511 497323236409786642155382248146820840100456150797347717440463976893159497012533375533056:32:512 497323236409786642155382248146820840100456150797347717440463976893159497012533375533057:32:512 529365560564799038038063798544808371878390199181131120920932600307886976629279498977280:32:512 529365560564799038038063798544808371878390199181131120920932600307886976629279498977281:32:513 529365560564799038038063798544808371878390199181131120920932600307886976629279498977282:32:513 563403846696027980421721036518530704026496034637469076647398180839729630682442677354495:32:513 563403846696027980421721036518530704026496034637469076647398180839729630682442677354496:32:514 563403846696027980421721036518530704026496034637469076647398180839729630682442677354497:32:514 599558175468144624788734806432418742267564996910271741762676328443922102451324462890624:32:514 599558175468144624788734806432418742267564996910271741762676328443922102451324462890625:32:515 599558175468144624788734806432418742267564996910271741762676328443922102451324462890626:32:515 637955597105938614864489331918206300708489581393607704309181129982848493914247403667455:32:515 637955597105938614864489331918206300708489581393607704309181129982848493914247403667456:32:516 637955597105938614864489331918206300708489581393607704309181129982848493914247403667457:32:516 678730521187394974907981869045176824570061920251515151811022727159284784463581754175360:32:516 678730521187394974907981869045176824570061920251515151811022727159284784463581754175361:32:517 678730521187394974907981869045176824570061920251515151811022727159284784463581754175362:32:517 722025127416831934034261814498899854057517551715523142346987313842937894502669458866175:32:517 722025127416831934034261814498899854057517551715523142346987313842937894502669458866176:32:518 722025127416831934034261814498899854057517551715523142346987313842937894502669458866177:32:518 767989798463347169363794448761336776180314744002660034524423738446590478596124836821760:32:518 767989798463347169363794448761336776180314744002660034524423738446590478596124836821761:32:519 767989798463347169363794448761336776180314744002660034524423738446590478596124836821762:32:519 816783576003691448825441810846270890169567862157056409599999999999999999999999999999999:32:519 816783576003691448825441810846270890169567862157056409600000000000000000000000000000000:32:520 816783576003691448825441810846270890169567862157056409600000000000000000000000000000001:32:520 868574641165122293422533483808090255283289604567691768791942005894528274771828634615040:32:520 868574641165122293422533483808090255283289604567691768791942005894528274771828634615041:32:521 868574641165122293422533483808090255283289604567691768791942005894528274771828634615042:32:521 923540820622902612055361294824427420807566381655466253003779938318011289653932894191615:32:521 923540820622902612055361294824427420807566381655466253003779938318011289653932894191616:32:522 923540820622902612055361294824427420807566381655466253003779938318011289653932894191617:32:522 981870119669021900173966231575689254914817067781044101984083642809633356313096811611520:32:522 981870119669021900173966231575689254914817067781044101984083642809633356313096811611521:32:523 981870119669021900173966231575689254914817067781044101984083642809633356313096811611522:32:523 1043761283633557417840632554442244511926301158179628950412756492571148619236574102552575:32:523 1043761283633557417840632554442244511926301158179628950412756492571148619236574102552576:32:524 1043761283633557417840632554442244511926301158179628950412756492571148619236574102552577:32:524 1109424389107992142694050036201331964455172305640540120208470398210920393466949462890624:32:524 1109424389107992142694050036201331964455172305640540120208470398210920393466949462890625:32:525 1109424389107992142694050036201331964455172305640540120208470398210920393466949462890626:32:525 1179081466490903312724027522414873313803025653374436748201973387582493787206427057586175:32:525 1179081466490903312724027522414873313803025653374436748201973387582493787206427057586176:32:526 1179081466490903312724027522414873313803025653374436748201973387582493787206427057586177:32:526 1252967155450874066020108779472418480084436937340872075052942823682556771057708472184320:32:526 1252967155450874066020108779472418480084436937340872075052942823682556771057708472184321:32:527 1252967155450874066020108779472418480084436937340872075052942823682556771057708472184322:32:527 1331329394979411276726477316023539198867026296376653191939762115337082025251872299810815:32:527 1331329394979411276726477316023539198867026296376653191939762115337082025251872299810816:32:528 1331329394979411276726477316023539198867026296376653191939762115337082025251872299810817:32:528 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189440:32:528 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189441:32:529 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189442:32:529 1502546174890670885945286107013099326955379687381792704099999999999999999999999999999999:32:529 1502546174890670885945286107013099326955379687381792704100000000000000000000000000000000:32:530 1502546174890670885945286107013099326955379687381792704100000000000000000000000000000001:32:530 1595969820296338503071062837109359028104550508208319195008530255373062033928610861663360:32:530 1595969820296338503071062837109359028104550508208319195008530255373062033928610861663361:32:531 1595969820296338503071062837109359028104550508208319195008530255373062033928610861663362:32:531 1695009877841685686489649261199655951895886550173876205900875784324941130584043580030975:32:531 1695009877841685686489649261199655951895886550173876205900875784324941130584043580030976:32:532 1695009877841685686489649261199655951895886550173876205900875784324941130584043580030977:32:532 1799992472277017937248655240129521431322132149258375810567132444336340974235421585586560:32:532 1799992472277017937248655240129521431322132149258375810567132444336340974235421585586561:32:533 1799992472277017937248655240129521431322132149258375810567132444336340974235421585586562:32:533 1911261998832912497431452756856794003622373995166319636930614780704316331216584998649855:32:533 1911261998832912497431452756856794003622373995166319636930614780704316331216584998649856:32:534 1911261998832912497431452756856794003622373995166319636930614780704316331216584998649857:32:534 2029182109596151215650942845625679098955573138234490254495225772284902632236480712890624:32:534 2029182109596151215650942845625679098955573138234490254495225772284902632236480712890625:32:535 2029182109596151215650942845625679098955573138234490254495225772284902632236480712890626:32:535 2154136751137386808664315284036531832360979155641738601658462704026528097177887987204095:32:535 2154136751137386808664315284036531832360979155641738601658462704026528097177887987204096:32:536 2154136751137386808664315284036531832360979155641738601658462704026528097177887987204097:32:536 2286531255950033900120742716529970045512350267136401071401093639580658979264790309134080:32:536 2286531255950033900120742716529970045512350267136401071401093639580658979264790309134081:32:537 2286531255950033900120742716529970045512350267136401071401093639580658979264790309134082:32:537 2426793490382545679380278161300264103351194695165299419593969961282164857638529066336255:32:537 2426793490382545679380278161300264103351194695165299419593969961282164857638529066336256:32:538 2426793490382545679380278161300264103351194695165299419593969961282164857638529066336257:32:538 2575375061874539787711521702042893710092608333756002290232933229948739152655492550376320:32:538 2575375061874539787711521702042893710092608333756002290232933229948739152655492550376321:32:539 2575375061874539787711521702042893710092608333756002290232933229948739152655492550376322:32:539 2732752588441420551979049797430315446144999206506043801599999999999999999999999999999999:32:539 2732752588441420551979049797430315446144999206506043801600000000000000000000000000000000:32:540 2732752588441420551979049797430315446144999206506043801600000000000000000000000000000001:32:540 2899429033492466770077045796293216505631353618811808974230485039432659656696755278090880:32:540 2899429033492466770077045796293216505631353618811808974230485039432659656696755278090881:32:541 2899429033492466770077045796293216505631353618811808974230485039432659656696755278090882:32:541 3075935109214083522278429020978071337413258334026281919545384334937968817343855262171135:32:541 3075935109214083522278429020978071337413258334026281919545384334937968817343855262171136:32:542 3075935109214083522278429020978071337413258334026281919545384334937968817343855262171137:32:542 3262830751903332774639146501835184653146444772238517588618147503686695478347049642982400:32:542 3262830751903332774639146501835184653146444772238517588618147503686695478347049642982401:32:543 3262830751903332774639146501835184653146444772238517588618147503686695478347049642982402:32:543 3460706672797252359440622600095549827885553604201875244459357911027339950583819939086335:32:543 3460706672797252359440622600095549827885553604201875244459357911027339950583819939086336:32:544 3460706672797252359440622600095549827885553604201875244459357911027339950583819939086337:32:544 3670185988111149900270995449669061304352976381775470869141682937764562666416168212890624:32:544 3670185988111149900270995449669061304352976381775470869141682937764562666416168212890625:32:545 3670185988111149900270995449669061304352976381775470869141682937764562666416168212890626:32:545 3891925932174333645791610902600572535821293770243759466202971475049565717446424281481215:32:545 3891925932174333645791610902600572535821293770243759466202971475049565717446424281481216:32:546 3891925932174333645791610902600572535821293770243759466202971475049565717446424281481217:32:546 4126619657734945348915499298384234206598474773795929907942067248237001187985792217344640:32:546 4126619657734945348915499298384234206598474773795929907942067248237001187985792217344641:32:547 4126619657734945348915499298384234206598474773795929907942067248237001187985792217344642:32:547 4374998127697034269778616430861491384775161858007973820871261727359397713113167215722495:32:547 4374998127697034269778616430861491384775161858007973820871261727359397713113167215722496:32:548 4374998127697034269778616430861491384775161858007973820871261727359397713113167215722497:32:548 4637832102753113252017107493160683622782173566539682639815191317957197032208309680022400:32:548 4637832102753113252017107493160683622782173566539682639815191317957197032208309680022401:32:549 4637832102753113252017107493160683622782173566539682639815191317957197032208309680022402:32:549 4915934229584539508320426694606246892362833023071289062499999999999999999999999999999999:32:549 4915934229584539508320426694606246892362833023071289062500000000000000000000000000000000:32:550 4915934229584539508320426694606246892362833023071289062500000000000000000000000000000001:32:550 5210161234520551442633079777341536803047968659400889333670509885632707041738820120057600:32:550 5210161234520551442633079777341536803047968659400889333670509885632707041738820120057601:32:551 5210161234520551442633079777341536803047968659400889333670509885632707041738820120057602:32:551 5521416227775071626161143478737282131918465122960104067006719834549954839646839920132095:32:551 5521416227775071626161143478737282131918465122960104067006719834549954839646839920132096:32:552 5521416227775071626161143478737282131918465122960104067006719834549954839646839920132097:32:552 5850651123618874552149236120607598107822705028932770077942414298678826621811659932279040:32:552 5850651123618874552149236120607598107822705028932770077942414298678826621811659932279041:32:553 5850651123618874552149236120607598107822705028932770077942414298678826621811659932279042:32:553 6198869182093852811641249227412987053996244109184411481893165237929572770484075695702015:32:553 6198869182093852811641249227412987053996244109184411481893165237929572770484075695702016:32:554 6198869182093852811641249227412987053996244109184411481893165237929572770484075695702017:32:554 6567127678136351491828690400864821660724239908602586729023628056072629988193511962890624:32:554 6567127678136351491828690400864821660724239908602586729023628056072629988193511962890625:32:555 6567127678136351491828690400864821660724239908602586729023628056072629988193511962890626:32:555 6956540704248351068463920164680233777505650262570480484736405031399002094429018611777535:32:555 6956540704248351068463920164680233777505650262570480484736405031399002094429018611777536:32:556 6956540704248351068463920164680233777505650262570480484736405031399002094429018611777537:32:556 7368282113139156268177552916037287169540181314477038338048203337964065815910976227536000:32:556 7368282113139156268177552916037287169540181314477038338048203337964065815910976227536001:32:557 7368282113139156268177552916037287169540181314477038338048203337964065815910976227536002:32:557 7803588607056704741680920854743074457165309050948735260318655246146706165457200963649535:32:557 7803588607056704741680920854743074457165309050948735260318655246146706165457200963649536:32:558 7803588607056704741680920854743074457165309050948735260318655246146706165457200963649537:32:558 8263762980837178117472383138192788553068491841100133925743588067165258379395044876167680:32:558 8263762980837178117472383138192788553068491841100133925743588067165258379395044876167681:32:559 8263762980837178117472383138192788553068491841100133925743588067165258379395044876167682:32:559 8750177526024833879564913863924237762945226785196448153599999999999999999999999999999999:32:559 8750177526024833879564913863924237762945226785196448153600000000000000000000000000000000:32:560 8750177526024833879564913863924237762945226785196448153600000000000000000000000000000001:32:560 9264277603751456724822586507137692878487310353564370552403533742692719826651668062123520:32:560 9264277603751456724822586507137692878487310353564370552403533742692719826651668062123521:32:561 9264277603751456724822586507137692878487310353564370552403533742692719826651668062123522:32:561 9807585394417153072393128067370344132933540474708183331242417216238928121991128579833855:32:561 9807585394417153072393128067370344132933540474708183331242417216238928121991128579833856:32:562 9807585394417153072393128067370344132933540474708183331242417216238928121991128579833857:32:562 10381703832582006854021148431920538595468697835131966687973204489850363107986104832356480:32:562 10381703832582006854021148431920538595468697835131966687973204489850363107986104832356481:32:563 10381703832582006854021148431920538595468697835131966687973204489850363107986104832356482:32:563 10988320735862028339022642536101277768595429923356702742240879983764115064333222486736895:32:563 10988320735862028339022642536101277768595429923356702742240879983764115064333222486736896:32:564 10988320735862028339022642536101277768595429923356702742240879983764115064333222486736897:32:564 11629213137023536326039293489196612967975630364630549100227809131168760359287261962890624:32:564 11629213137023536326039293489196612967975630364630549100227809131168760359287261962890625:32:565 11629213137023536326039293489196612967975630364630549100227809131168760359287261962890626:32:565 12306251828888320400924701171878234739622237228792516137145708684532622906558510903853055:32:565 12306251828888320400924701171878234739622237228792516137145708684532622906558510903853056:32:566 12306251828888320400924701171878234739622237228792516137145708684532622906558510903853057:32:566 13021406132098365034439107014327764284393549326168156642255292773453753265967062024828160:32:566 13021406132098365034439107014327764284393549326168156642255292773453753265967062024828161:32:567 13021406132098365034439107014327764284393549326168156642255292773453753265967062024828162:32:567 13776748896244341144821372264040434702140914369466893448330644584365553682935498068197375:32:567 13776748896244341144821372264040434702140914369466893448330644584365553682935498068197376:32:568 13776748896244341144821372264040434702140914369466893448330644584365553682935498068197377:32:568 14574461745337273708361144851483737258895508664989441381221445025557538677084166248252160:32:568 14574461745337273708361144851483737258895508664989441381221445025557538677084166248252161:32:569 14574461745337273708361144851483737258895508664989441381221445025557538677084166248252162:32:569 15416840579098597802881074820596840633668757851189244800099999999999999999999999999999999:32:569 15416840579098597802881074820596840633668757851189244800100000000000000000000000000000000:32:570 15416840579098597802881074820596840633668757851189244800100000000000000000000000000000001:32:570 16306301342061074448359698882623069473347446723998867384651795831757134588217501609248640:32:570 16306301342061074448359698882623069473347446723998867384651795831757134588217501609248641:32:571 16306301342061074448359698882623069473347446723998867384651795831757134588217501609248642:32:571 17245386073012639928375759685558146152223608228072277462410901173978699120081034769596415:32:571 17245386073012639928375759685558146152223608228072277462410901173978699120081034769596416:32:572 17245386073012639928375759685558146152223608228072277462410901173978699120081034769596417:32:572 18236769247878131203360088133819302238843384309316420343056258022774573017304274216494720:32:572 18236769247878131203360088133819302238843384309316420343056258022774573017304274216494721:32:573 18236769247878131203360088133819302238843384309316420343056258022774573017304274216494722:32:573 19283264429720925256773972174475867056864663945498710175501774093374263864859622664830975:32:573 19283264429720925256773972174475867056864663945498710175501774093374263864859622664830976:32:574 19283264429720925256773972174475867056864663945498710175501774093374263864859622664830977:32:574 20387831240158849239965315943170309486646291628232641190976437428616918623447418212890624:32:574 20387831240158849239965315943170309486646291628232641190976437428616918623447418212890625:32:575 20387831240158849239965315943170309486646291628232641190976437428616918623447418212890626:32:575 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867775:32:575 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867776:32:576 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867777:32:576 22783792724588411451658682848471511413794094348174951961290860719286587634075692484741120:32:576 22783792724588411451658682848471511413794094348174951961290860719286587634075692484741121:32:577 22783792724588411451658682848471511413794094348174951961290860719286587634075692484741122:32:577 24081904480479544555286078356027143989554517921692570200639884388527001138957761973846015:32:577 24081904480479544555286078356027143989554517921692570200639884388527001138957761973846016:32:578 24081904480479544555286078356027143989554517921692570200639884388527001138957761973846017:32:578 25451538469918247646136150693640977051957113571821219763611986056467630161217660424115840:32:578 25451538469918247646136150693640977051957113571821219763611986056467630161217660424115841:32:579 25451538469918247646136150693640977051957113571821219763611986056467630161217660424115842:32:579 26896501511435813772691058714045598710561936559973177753599999999999999999999999999999999:32:579 26896501511435813772691058714045598710561936559973177753600000000000000000000000000000000:32:580 26896501511435813772691058714045598710561936559973177753600000000000000000000000000000001:32:580 28420795944798349885364772395857852031579960090745056919922036100071537719922588728792960:32:580 28420795944798349885364772395857852031579960090745056919922036100071537719922588728792961:32:581 28420795944798349885364772395857852031579960090745056919922036100071537719922588728792962:32:581 30028629309794635368707712059670885872192889610281937229831749946576059485740241336139775:32:581 30028629309794635368707712059670885872192889610281937229831749946576059485740241336139776:32:582 30028629309794635368707712059670885872192889610281937229831749946576059485740241336139777:32:582 31724424486225076813532554739627971673385188775429703418598659796550238490777416476373760:32:582 31724424486225076813532554739627971673385188775429703418598659796550238490777416476373761:32:583 31724424486225076813532554739627971673385188775429703418598659796550238490777416476373762:32:583 33512830316217268685271138688827967415066641914402919960431275953655177000840204445024255:32:583 33512830316217268685271138688827967415066641914402919960431275953655177000840204445024256:32:584 33512830316217268685271138688827967415066641914402919960431275953655177000840204445024257:32:584 35398732730922486146151983967405525445290198889030617674725774511718191206455230712890624:32:584 35398732730922486146151983967405525445290198889030617674725774511718191206455230712890625:32:585 35398732730922486146151983967405525445290198889030617674725774511718191206455230712890626:32:585 37387266404615387818974658150931674353974985065121968427538394118938224487067223060381695:32:585 37387266404615387818974658150931674353974985065121968427538394118938224487067223060381696:32:586 37387266404615387818974658150931674353974985065121968427538394118938224487067223060381697:32:586 39483826960227870196664029181786575769227232806315233049595035864826753139766320969194880:32:586 39483826960227870196664029181786575769227232806315233049595035864826753139766320969194881:32:587 39483826960227870196664029181786575769227232806315233049595035864826753139766320969194882:32:587 41694083751399029875711661328779382218750236120531699674637828779894562971062412515475455:32:587 41694083751399029875711661328779382218750236120531699674637828779894562971062412515475456:32:588 41694083751399029875711661328779382218750236120531699674637828779894562971062412515475457:32:588 44023993247218255935031125506885469616727295972247354066882194837636708039993255397998720:32:588 44023993247218255935031125506885469616727295972247354066882194837636708039993255397998721:32:589 44023993247218255935031125506885469616727295972247354066882194837636708039993255397998722:32:589 46479813046979358951664349819008791250993590739678642368099999999999999999999999999999999:32:589 46479813046979358951664349819008791250993590739678642368100000000000000000000000000000000:32:590 46479813046979358951664349819008791250993590739678642368100000000000000000000000000000001:32:590 49068116553452179327735672895403960787043971722564053481894807382853326287963621122516480:32:590 49068116553452179327735672895403960787043971722564053481894807382853326287963621122516481:32:591 49068116553452179327735672895403960787043971722564053481894807382853326287963621122516482:32:591 51795808334416209882581090871735223913097211388888695785990218090675922085008567420583935:32:591 51795808334416209882581090871735223913097211388888695785990218090675922085008567420583936:32:592 51795808334416209882581090871735223913097211388888695785990218090675922085008567420583937:32:592 54670140203490392773555261309019219606127716363590276681084387713032252202097399706073600:32:592 54670140203490392773555261309019219606127716363590276681084387713032252202097399706073601:32:593 54670140203490392773555261309019219606127716363590276681084387713032252202097399706073602:32:593 57698728052636460773450540196182795118277373547264043523423881193056893757740648272756735:32:593 57698728052636460773450540196182795118277373547264043523423881193056893757740648272756736:32:594 57698728052636460773450540196182795118277373547264043523423881193056893757740648272756737:32:594 60889569470112117800595643658798008166914307257066382364958214074396528303623199462890624:32:594 60889569470112117800595643658798008166914307257066382364958214074396528303623199462890625:32:595 60889569470112117800595643658798008166914307257066382364958214074396528303623199462890626:32:595 64251062179107204269404774116742479027967273668645415481168730313760109145112348056354815:32:595 64251062179107204269404774116742479027967273668645415481168730313760109145112348056354816:32:596 64251062179107204269404774116742479027967273668645415481168730313760109145112348056354817:32:596 67792023333813063979687365035367215731010865666967085965028085740154348179732237182509440:32:596 67792023333813063979687365035367215731010865666967085965028085740154348179732237182509441:32:597 67792023333813063979687365035367215731010865666967085965028085740154348179732237182509442:32:597 71521709711255002368007452852816820797175257277668133274117954046224008858814248382365695:32:597 71521709711255002368007452852816820797175257277668133274117954046224008858814248382365696:32:598 71521709711255002368007452852816820797175257277668133274117954046224008858814248382365697:32:598 75449838838862472408525294248765441269388336504091922054308910023928765118013584818540800:32:598 75449838838862472408525294248765441269388336504091922054308910023928765118013584818540801:32:599 75449838838862472408525294248765441269388336504091922054308910023928765118013584818540802:32:599 79586611099464008843919359999999999999999999999999999999999999999999999999999999999999999:32:599 79586611099464008843919360000000000000000000000000000000000000000000000000000000000000000:32:600 79586611099464008843919360000000000000000000000000000000000000000000000000000000000000001:32:600 83942732857176614830884346671430939821702594284147941949619683389103249479211247538579200:32:600 83942732857176614830884346671430939821702594284147941949619683389103249479211247538579201:32:601 83942732857176614830884346671430939821702594284147941949619683389103249479211247538579202:32:601 88529440649515048553917379587108675686691178222111453477845006367640210893915832394448895:32:601 88529440649515048553917379587108675686691178222111453477845006367640210893915832394448896:32:602 88529440649515048553917379587108675686691178222111453477845006367640210893915832394448897:32:602 93358526492978125502133439164231063791178111591759563638214866420276207156530996246074240:32:602 93358526492978125502133439164231063791178111591759563638214866420276207156530996246074241:32:603 93358526492978125502133439164231063791178111591759563638214866420276207156530996246074242:32:603 98442364351379716775942323578603954237155402767896904282020456007824511473519743431868415:32:603 98442364351379716775942323578603954237155402767896904282020456007824511473519743431868416:32:604 98442364351379716775942323578603954237155402767896904282020456007824511473519743431868417:32:604 103793937818284667932184229916190764389237422379467792704560207814001478254795074462890624:32:604 103793937818284667932184229916190764389237422379467792704560207814001478254795074462890625:32:605 103793937818284667932184229916190764389237422379467792704560207814001478254795074462890626:32:605 109426869067087584462141735694470831704534287956656676363261357629380627841153033501147135:32:605 109426869067087584462141735694470831704534287956656676363261357629380627841153033501147136:32:606 109426869067087584462141735694470831704534287956656676363261357629380627841153033501147137:32:606 115355449124538646127269122111576416482849577728486646292053463016728373081796048387404800:32:606 115355449124538646127269122111576416482849577728486646292053463016728373081796048387404801:32:607 115355449124538646127269122111576416482849577728486646292053463016728373081796048387404802:32:607 121594669525878763507894374894624606627609478847920401656983431717330411793152774542196735:32:607 121594669525878763507894374894624606627609478847920401656983431717330411793152774542196736:32:608 121594669525878763507894374894624606627609478847920401656983431717330411793152774542196737:32:608 128160255412200044432183311843359533391765377930684821859922179797884300992003151316782080:32:608 128160255412200044432183311843359533391765377930684821859922179797884300992003151316782081:32:609 128160255412200044432183311843359533391765377930684821859922179797884300992003151316782082:32:609 135068700133200395872862385237473517280751801148320434752099999999999999999999999999999999:32:609 135068700133200395872862385237473517280751801148320434752100000000000000000000000000000000:32:610 135068700133200395872862385237473517280751801148320434752100000000000000000000000000000001:32:610 142337301421156985769734139505427594889826883096323005367646799770228694694273924523541120:32:610 142337301421156985769734139505427594889826883096323005367646799770228694694273924523541121:32:611 142337301421156985769734139505427594889826883096323005367646799770228694694273924523541122:32:611 149984199204706208142170871359065885985114571854335561800423097932303928151299933555654655:32:611 149984199204706208142170871359065885985114571854335561800423097932303928151299933555654656:32:612 149984199204706208142170871359065885985114571854335561800423097932303928151299933555654657:32:612 158028415133891859615308603542674833459160352275469985475338689619669670815202873787255680:32:612 158028415133891859615308603542674833459160352275469985475338689619669670815202873787255681:32:613 158028415133891859615308603542674833459160352275469985475338689619669670815202873787255682:32:613 166489893890932723803187426394037279623443784712787188367036556118489531130003572492599295:32:613 166489893890932723803187426394037279623443784712787188367036556118489531130003572492599296:32:614 166489893890932723803187426394037279623443784712787188367036556118489531130003572492599297:32:614 175389546364270106795658148117761065736348432857522791631996148869418539106845855712890624:32:614 175389546364270106795658148117761065736348432857522791631996148869418539106845855712890625:32:615 175389546364270106795658148117761065736348432857522791631996148869418539106845855712890626:32:615 184749294766689669931394116765508606503327504615288748449241129797706802271995186072518655:32:615 184749294766689669931394116765508606503327504615288748449241129797706802271995186072518656:32:616 184749294766689669931394116765508606503327504615288748449241129797706802271995186072518657:32:616 194592119781674931168277782905299830635928467438981111365376511112080591597640532781000960:32:616 194592119781674931168277782905299830635928467438981111365376511112080591597640532781000961:32:617 194592119781674931168277782905299830635928467438981111365376511112080591597640532781000962:32:617 204942109825646994038709736199900870906376791190440300820624269617396251957721677825048575:32:617 204942109825646994038709736199900870906376791190440300820624269617396251957721677825048576:32:618 204942109825646994038709736199900870906376791190440300820624269617396251957721677825048577:32:618 215824512517381534121437932740770016819960766163043144826406251963030465412207546474162560:32:618 215824512517381534121437932740770016819960766163043144826406251963030465412207546474162561:32:619 215824512517381534121437932740770016819960766163043144826406251963030465412207546474162562:32:619 227265788449675134535524156362754417016285293351865522585599999999999999999999999999999999:32:619 227265788449675134535524156362754417016285293351865522585600000000000000000000000000000000:32:620 227265788449675134535524156362754417016285293351865522585600000000000000000000000000000001:32:620 239293667362264214652898396448761064986447646059095880407867541850146148363822827014362240:32:620 239293667362264214652898396448761064986447646059095880407867541850146148363822827014362241:32:621 239293667362264214652898396448761064986447646059095880407867541850146148363822827014362242:32:621 251937206819086740342069387767338963062022546603415998811253428080667328212061854384521215:32:621 251937206819086740342069387767338963062022546603415998811253428080667328212061854384521216:32:622 251937206819086740342069387767338963062022546603415998811253428080667328212061854384521217:32:622 265226853497225546644841774394516549640490736292798262936648970873623515558462576234897920:32:622 265226853497225546644841774394516549640490736292798262936648970873623515558462576234897921:32:623 265226853497225546644841774394516549640490736292798262936648970873623515558462576234897922:32:623 279194507199288565783129898393081292419973121549457347757327296067773118310596781199589375:32:623 279194507199288565783129898393081292419973121549457347757327296067773118310596781199589376:32:624 279194507199288565783129898393081292419973121549457347757327296067773118310596781199589377:32:624 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890624:32:624 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890625:32:625 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890626:32:625 309299104587122850965490746090134128776279274169807185470781587543028646069388265574629375:32:625 309299104587122850965490746090134128776279274169807185470781587543028646069388265574629376:32:626 309299104587122850965490746090134128776279274169807185470781587543028646069388265574629377:32:626 325507730105779558520852026550919153155368701611986851404372294313137868490542381830817920:32:626 325507730105779558520852026550919153155368701611986851404372294313137868490542381830817921:32:627 325507730105779558520852026550919153155368701611986851404372294313137868490542381830817922:32:627 342537875332416103191710173902410201555790472597637129396465017651464380838831533867401215:32:627 342537875332416103191710173902410201555790472597637129396465017651464380838831533867401216:32:628 342537875332416103191710173902410201555790472597637129396465017651464380838831533867401217:32:628 360429769619978926832083786409014977414201395896371928810164676748157427396478985030522240:32:628 360429769619978926832083786409014977414201395896371928810164676748157427396478985030522241:32:629 360429769619978926832083786409014977414201395896371928810164676748157427396478985030522242:32:629 379225543573463993970042743656037244907049928086206696448099999999999999999999999999999999:32:629 379225543573463993970042743656037244907049928086206696448100000000000000000000000000000000:32:630 379225543573463993970042743656037244907049928086206696448100000000000000000000000000000001:32:630 398969315664766923429758378188080001467682807359755705166665975589027616441020161170402560:32:630 398969315664766923429758378188080001467682807359755705166665975589027616441020161170402561:32:631 398969315664766923429758378188080001467682807359755705166665975589027616441020161170402562:32:631 419707282646345723687474109083630524730733450087011226929724741832118413204307920159768575:32:631 419707282646345723687474109083630524730733450087011226929724741832118413204307920159768576:32:632 419707282646345723687474109083630524730733450087011226929724741832118413204307920159768577:32:632 441487813923877210240536237771591983371269557164398928709436151914377811311496377532680960:32:632 441487813923877210240536237771591983371269557164398928709436151914377811311496377532680961:32:633 441487813923877210240536237771591983371269557164398928709436151914377811311496377532680962:32:633 464361550054572147196135407270834380275418339579195653028605906530300655949395791399878655:32:633 464361550054572147196135407270834380275418339579195653028605906530300655949395791399878656:32:634 464361550054572147196135407270834380275418339579195653028605906530300655949395791399878657:32:634 488381505544549679278581085871872944455746050724657146771708001613640226423740386962890624:32:634 488381505544549679278581085871872944455746050724657146771708001613640226423740386962890625:32:635 488381505544549679278581085871872944455746050724657146771708001613640226423740386962890626:32:635 513603176125668042664443547576310571977434135433125108573148119299455811308699177290039295:32:635 513603176125668042664443547576310571977434135433125108573148119299455811308699177290039296:32:636 513603176125668042664443547576310571977434135433125108573148119299455811308699177290039297:32:636 540084650699475532675478915495084472404233635996337743845345290664545776586499948370775680:32:636 540084650699475532675478915495084472404233635996337743845345290664545776586499948370775681:32:637 540084650699475532675478915495084472404233635996337743845345290664545776586499948370775682:32:637 567886728143493274803632610378872811144475190145191738557013656030803516738237428616134655:32:637 567886728143493274803632610378872811144475190145191738557013656030803516738237428616134656:32:638 567886728143493274803632610378872811144475190145191738557013656030803516738237428616134657:32:638 597073039182879857989553168123669664326517795218001082090332702878587253341837810932101120:32:638 597073039182879857989553168123669664326517795218001082090332702878587253341837810932101121:32:639 597073039182879857989553168123669664326517795218001082090332702878587253341837810932101122:32:639 627710173538668076383578942320766641610235544446403451289599999999999999999999999999999999:32:639 627710173538668076383578942320766641610235544446403451289600000000000000000000000000000000:32:640 627710173538668076383578942320766641610235544446403451289600000000000000000000000000000001:32:640 659867812572216996817336496446399378058552413599733867307974758592698279261958821845422080:32:640 659867812572216996817336496446399378058552413599733867307974758592698279261958821845422081:32:641 659867812572216996817336496446399378058552413599733867307974758592698279261958821845422082:32:641 693618867654299823397785624108369076770957268079746186084393511168543660073599217734516735:32:641 693618867654299823397785624108369076770957268079746186084393511168543660073599217734516736:32:642 693618867654299823397785624108369076770957268079746186084393511168543660073599217734516737:32:642 729039624496361471251256983932556833997103413191939742736463489687698888082058491646684800:32:642 729039624496361471251256983932556833997103413191939742736463489687698888082058491646684801:32:643 729039624496361471251256983932556833997103413191939742736463489687698888082058491646684802:32:643 766209893690941709005121218158803568124167602069995164282077529284841339447322414610907135:32:643 766209893690941709005121218158803568124167602069995164282077529284841339447322414610907136:32:644 766209893690941709005121218158803568124167602069995164282077529284841339447322414610907137:32:644 805213167718082935816557310305269668615743182432367593824992376804375089704990386962890624:32:644 805213167718082935816557310305269668615743182432367593824992376804375089704990386962890625:32:645 805213167718082935816557310305269668615743182432367593824992376804375089704990386962890626:32:645 846136784684739320946747021182528043435000751668311295011221162801811132207421080171708415:32:645 846136784684739320946747021182528043435000751668311295011221162801811132207421080171708416:32:646 846136784684739320946747021182528043435000751668311295011221162801811132207421080171708417:32:646 889072099074789809767079078468961199606380697757584381841057778625420767209651717257194240:32:646 889072099074789809767079078468961199606380697757584381841057778625420767209651717257194241:32:647 889072099074789809767079078468961199606380697757584381841057778625420767209651717257194242:32:647 934114659798245523140079664928476282556169314249840617635224857985846633850330777592528895:32:647 934114659798245523140079664928476282556169314249840617635224857985846633850330777592528896:32:648 934114659798245523140079664928476282556169314249840617635224857985846633850330777592528897:32:648 981364395839646972339439035256287511455921187431423800201768725605520763042101232819539200:32:648 981364395839646972339439035256287511455921187431423800201768725605520763042101232819539201:32:649 981364395839646972339439035256287511455921187431423800201768725605520763042101232819539202:32:649 1030925809817483411879076604146476092282682657241821289062499999999999999999999999999999999:32:649 1030925809817483411879076604146476092282682657241821289062500000000000000000000000000000000:32:650 1030925809817483411879076604146476092282682657241821289062500000000000000000000000000000001:32:650 1082908179778751215254879806792401101051026062689631664849245829586219213578590937099580800:32:650 1082908179778751215254879806792401101051026062689631664849245829586219213578590937099580801:32:651 1082908179778751215254879806792401101051026062689631664849245829586219213578590937099580802:32:651 1137425769565516583068426095553518503207667703242296340417308459179440553901489696272285695:32:651 1137425769565516583068426095553518503207667703242296340417308459179440553901489696272285696:32:652 1137425769565516583068426095553518503207667703242296340417308459179440553901489696272285697:32:652 1194598048103576938541622239354929570350038970476761398471605445419460522154237721909389440:32:652 1194598048103576938541622239354929570350038970476761398471605445419460522154237721909389441:32:653 1194598048103576938541622239354929570350038970476761398471605445419460522154237721909389442:32:653 1254549917977042369564120339088011930436089882947728720312665960258563195443625923828514815:32:653 1254549917977042369564120339088011930436089882947728720312665960258563195443625923828514816:32:654 1254549917977042369564120339088011930436089882947728720312665960258563195443625923828514817:32:654 1317411953666901373955104579145651325885976681623985009098383735552453435957431793212890624:32:654 1317411953666901373955104579145651325885976681623985009098383735552453435957431793212890625:32:655 1317411953666901373955104579145651325885976681623985009098383735552453435957431793212890626:32:655 1383320649846412507286698163024986286298483220874059349373904298481812373265943453274996735:32:655 1383320649846412507286698163024986286298483220874059349373904298481812373265943453274996736:32:656 1383320649846412507286698163024986286298483220874059349373904298481812373265943453274996737:32:656 1452418680141494509256275867330860716681541613530667294435925605970436669514619815384793600:32:656 1452418680141494509256275867330860716681541613530667294435925605970436669514619815384793601:32:657 1452418680141494509256275867330860716681541613530667294435925605970436669514619815384793602:32:657 1524855166780191942041373415075779505084576710023618673731075268760209835250330226116263935:32:657 1524855166780191942041373415075779505084576710023618673731075268760209835250330226116263936:32:658 1524855166780191942041373415075779505084576710023618673731075268760209835250330226116263937:32:658 1600785961571791838642436828407163414950798155553995328725997574412091376316708146555876480:32:658 1600785961571791838642436828407163414950798155553995328725997574412091376316708146555876481:32:659 1600785961571791838642436828407163414950798155553995328725997574412091376316708146555876482:32:659 1680373938673280558892413278081033929916614921624418359705599999999999999999999999999999999:32:659 1680373938673280558892413278081033929916614921624418359705600000000000000000000000000000000:32:660 1680373938673280558892413278081033929916614921624418359705600000000000000000000000000000001:32:660 1763789299618580938082926711476572697753050696749896076341971740356494774602216442151438720:32:660 1763789299618580938082926711476572697753050696749896076341971740356494774602216442151438721:32:661 1763789299618580938082926711476572697753050696749896076341971740356494774602216442151438722:32:661 1851209891104420588604616673049242473895012564731341132323744104325894158642968065742995455:32:661 1851209891104420588604616673049242473895012564731341132323744104325894158642968065742995456:32:662 1851209891104420588604616673049242473895012564731341132323744104325894158642968065742995457:32:662 1942821536045776351586199802818220005888632859261313546950318323640741168464825232923674880:32:662 1942821536045776351586199802818220005888632859261313546950318323640741168464825232923674881:32:663 1942821536045776351586199802818220005888632859261313546950318323640741168464825232923674882:32:663 2038818378433641663633927694468717114703191318652091280294089729678766456529527241174941695:32:663 2038818378433641663633927694468717114703191318652091280294089729678766456529527241174941696:32:664 2038818378433641663633927694468717114703191318652091280294089729678766456529527241174941697:32:664 2139403242548398097059640691648306359086389834150568673182400362774753011763095855712890624:32:664 2139403242548398097059640691648306359086389834150568673182400362774753011763095855712890625:32:665 2139403242548398097059640691648306359086389834150568673182400362774753011763095855712890626:32:665 2244788007103365493943437909536599044828713743871820112150334114309420287269435362829664255:32:665 2244788007103365493943437909536599044828713743871820112150334114309420287269435362829664256:32:666 2244788007103365493943437909536599044828713743871820112150334114309420287269435362829664257:32:666 2355193994915183765803073085484475029491283311884145182501237772037599113555062477862693760:32:666 2355193994915183765803073085484475029491283311884145182501237772037599113555062477862693761:32:667 2355193994915183765803073085484475029491283311884145182501237772037599113555062477862693762:32:667 2470852378720571297903125454565955398320922594043177591753648507920247381933490113689419775:32:667 2470852378720571297903125454565955398320922594043177591753648507920247381933490113689419776:32:668 2470852378720571297903125454565955398320922594043177591753648507920247381933490113689419777:32:668 2592004603782738641410038568646710542227568788823280792324781730198979562541462502394552960:32:668 2592004603782738641410038568646710542227568788823280792324781730198979562541462502394552961:32:669 2592004603782738641410038568646710542227568788823280792324781730198979562541462502394552962:32:669 2718902827955341423504996626728318580780018860362756670016099999999999999999999999999999999:32:669 2718902827955341423504996626728318580780018860362756670016100000000000000000000000000000000:32:670 2718902827955341423504996626728318580780018860362756670016100000000000000000000000000000001:32:670 2851810379897363776719946416788102767566301453823296670923117077055502343780140425169955840:32:670 2851810379897363776719946416788102767566301453823296670923117077055502343780140425169955841:32:671 2851810379897363776719946416788102767566301453823296670923117077055502343780140425169955842:32:671 2991002236158764733266044925978894731811490177848514726129788749227808081636404209978966015:32:671 2991002236158764733266044925978894731811490177848514726129788749227808081636404209978966016:32:672 2991002236158764733266044925978894731811490177848514726129788749227808081636404209978966017:32:672 3136765517884127657536315638891029730772564382542514733046050991153100090496586728226821120:32:672 3136765517884127657536315638891029730772564382542514733046050991153100090496586728226821121:32:673 3136765517884127657536315638891029730772564382542514733046050991153100090496586728226821122:32:673 3289400007909960704163750409063586934783311074128898259525523511304782479800020498986827775:32:673 3289400007909960704163750409063586934783311074128898259525523511304782479800020498986827776:32:674 3289400007909960704163750409063586934783311074128898259525523511304782479800020498986827777:32:674 3449218689060739423095688895535580650782829168475053516207395887249731458723545074462890624:32:674 3449218689060739423095688895535580650782829168475053516207395887249731458723545074462890625:32:675 3449218689060739423095688895535580650782829168475053516207395887249731458723545074462890626:32:675 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870975:32:675 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870976:32:676 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870977:32:676 3791729940858791374069907545667563083502406854999946647629295780257147797825760987150414720:32:676 3791729940858791374069907545667563083502406854999946647629295780257147797825760987150414721:32:677 3791729940858791374069907545667563083502406854999946647629295780257147797825760987150414722:32:677 3975119635476246315339126955741678969034139454597353804008081015477016145845306585740476415:32:677 3975119635476246315339126955741678969034139454597353804008081015477016145845306585740476416:32:678 3975119635476246315339126955741678969034139454597353804008081015477016145845306585740476417:32:678 4167089007961625534314800951605921059701963185955129259527273500492697354876487274387408640:32:678 4167089007961625534314800951605921059701963185955129259527273500492697354876487274387408641:32:679 4167089007961625534314800951605921059701963185955129259527273500492697354876487274387408642:32:679 4368025917771578252059282838929098810831834106957521328537599999999999999999999999999999999:32:679 4368025917771578252059282838929098810831834106957521328537600000000000000000000000000000000:32:680 4368025917771578252059282838929098810831834106957521328537600000000000000000000000000000001:32:680 4578335148373455393457152532264538964228444569492869001142714292123221836219909587306492160:32:680 4578335148373455393457152532264538964228444569492869001142714292123221836219909587306492161:32:681 4578335148373455393457152532264538964228444569492869001142714292123221836219909587306492162:32:681 4798439119182963661026323168634176724956295801765618587797281719107475084411018431090917375:32:681 4798439119182963661026323168634176724956295801765618587797281719107475084411018431090917376:32:682 4798439119182963661026323168634176724956295801765618587797281719107475084411018431090917377:32:682 5028778626337955801689223143068098813543001547478382276140148620116140480951247916914508160:32:682 5028778626337955801689223143068098813543001547478382276140148620116140480951247916914508161:32:683 5028778626337955801689223143068098813543001547478382276140148620116140480951247916914508162:32:683 5269813613431392404257628744907252337472376622481597003043685748149871146830624831943213055:32:683 5269813613431392404257628744907252337472376622481597003043685748149871146830624831943213056:32:684 5269813613431392404257628744907252337472376622481597003043685748149871146830624831943213057:32:684 5522023973368502807598123594623153425986156160519708122343638058930658735334873199462890624:32:684 5522023973368502807598123594623153425986156160519708122343638058930658735334873199462890625:32:685 5522023973368502807598123594623153425986156160519708122343638058930658735334873199462890626:32:685 5785910382556670056118247910422653289937986449530174560658878928035983750630199938196176895:32:685 5785910382556670056118247910422653289937986449530174560658878928035983750630199938196176896:32:686 5785910382556670056118247910422653289937986449530174560658878928035983750630199938196176897:32:686 6061995168681618933095429847369950385684990337378442741193830069412493092806280201953876480:32:686 6061995168681618933095429847369950385684990337378442741193830069412493092806280201953876481:32:687 6061995168681618933095429847369950385684990337378442741193830069412493092806280201953876482:32:687 6350823213370150247286820057196672991951471620290270248501921528392467435178471035928313855:32:687 6350823213370150247286820057196672991951471620290270248501921528392467435178471035928313856:32:688 6350823213370150247286820057196672991951471620290270248501921528392467435178471035928313857:32:688 6652962891087993801909543083453407636869193927817261303970520033254339635157746689632683520:32:688 6652962891087993801909543083453407636869193927817261303970520033254339635157746689632683521:32:689 6652962891087993801909543083453407636869193927817261303970520033254339635157746689632683522:32:689 6969007045671403693413577306183398466953200307134358554816099999999999999999999999999999999:32:689 6969007045671403693413577306183398466953200307134358554816100000000000000000000000000000000:32:690 6969007045671403693413577306183398466953200307134358554816100000000000000000000000000000001:32:690 7299574005942951480654194292939306281065810653978193479614973818222113002101323759366807680:32:690 7299574005942951480654194292939306281065810653978193479614973818222113002101323759366807681:32:691 7299574005942951480654194292939306281065810653978193479614973818222113002101323759366807682:32:691 7645308641915645955140570202571748208413293188288548661666387158769048926018421442043969535:32:691 7645308641915645955140570202571748208413293188288548661666387158769048926018421442043969536:32:692 7645308641915645955140570202571748208413293188288548661666387158769048926018421442043969537:32:692 8006883463145085323228245036704667144893140559067911668012647569872064817413155752424816000:32:692 8006883463145085323228245036704667144893140559067911668012647569872064817413155752424816001:32:693 8006883463145085323228245036704667144893140559067911668012647569872064817413155752424816002:32:693 8384999760846893206968271543724329221532254466139768530983201258391989392798512857833537535:32:693 8384999760846893206968271543724329221532254466139768530983201258391989392798512857833537536:32:694 8384999760846893206968271543724329221532254466139768530983201258391989392798512857833537537:32:694 8780388795456270702547633251782023572262402677965700663232451367124938406050205230712890624:32:694 8780388795456270702547633251782023572262402677965700663232451367124938406050205230712890625:32:695 8780388795456270702547633251782023572262402677965700663232451367124938406050205230712890626:32:695 9193813031368181684510442977351714924941181884030789342110088891726622151779492932947542015:32:695 9193813031368181684510442977351714924941181884030789342110088891726622151779492932947542016:32:696 9193813031368181684510442977351714924941181884030789342110088891726622151779492932947542017:32:696 9626067420660548717475378473582085757526716696132219377452706168859773301267707392681399040:32:696 9626067420660548717475378473582085757526716696132219377452706168859773301267707392681399041:32:697 9626067420660548717475378473582085757526716696132219377452706168859773301267707392681399042:32:697 10077980737668945737283505441927111927749308833202109413558952185592877585488378162206212095:32:697 10077980737668945737283505441927111927749308833202109413558952185592877585488378162206212096:32:698 10077980737668945737283505441927111927749308833202109413558952185592877585488378162206212097:32:698 10550416966349706858640562975417292352598649590882175934734579705738331846965175974963017600:32:698 10550416966349706858640562975417292352598649590882175934734579705738331846965175974963017601:32:699 10550416966349706858640562975417292352598649590882175934734579705738331846965175974963017602:32:699 11044276742439206463052992009999999999999999999999999999999999999999999999999999999999999999:32:699 11044276742439206463052992010000000000000000000000000000000000000000000000000000000000000000:32:700 11044276742439206463052992010000000000000000000000000000000000000000000000000000000000000001:32:700 11560498852490384839169233291662457620385069949415807289121270600169560544217308017523062400:32:700 11560498852490384839169233291662457620385069949415807289121270600169560544217308017523062401:32:701 11560498852490384839169233291662457620385069949415807289121270600169560544217308017523062402:32:701 12100061791943479397760893979989090480760044671841441935167187937961629470414894624193642495:32:701 12100061791943479397760893979989090480760044671841441935167187937961629470414894624193642496:32:702 12100061791943479397760893979989090480760044671841441935167187937961629470414894624193642497:32:702 12663985384466459845234971135421139351313528143736351810779119445738262440428459526682224640:32:702 12663985384466459845234971135421139351313528143736351810779119445738262440428459526682224641:32:703 12663985384466459845234971135421139351313528143736351810779119445738262440428459526682224642:32:703 13253332464881945403501427246831487584088398159048641376970110846918134297235851904565641215:32:703 13253332464881945403501427246831487584088398159048641376970110846918134297235851904565641216:32:704 13253332464881945403501427246831487584088398159048641376970110846918134297235851904565641217:32:704 13869210628081494775892878803411932915701687829202266172619390952542447485029697418212890624:32:704 13869210628081494775892878803411932915701687829202266172619390952542447485029697418212890625:32:705 13869210628081494775892878803411932915701687829202266172619390952542447485029697418212890626:32:705 14512774046415199565560563480552217425485098502881013584943649768873391662117194139053326335:32:705 14512774046415199565560563480552217425485098502881013584943649768873391662117194139053326336:32:706 14512774046415199565560563480552217425485098502881013584943649768873391662117194139053326337:32:706 15185225358134576751354632699394678913439254188599718784454630161371727404703071700259702400:32:706 15185225358134576751354632699394678913439254188599718784454630161371727404703071700259702401:32:707 15185225358134576751354632699394678913439254188599718784454630161371727404703071700259702402:32:707 15887817629559946215126903478805925517059520336083475161393593655359382432019021519845851135:32:707 15887817629559946215126903478805925517059520336083475161393593655359382432019021519845851136:32:708 15887817629559946215126903478805925517059520336083475161393593655359382432019021519845851137:32:708 16621856393739898987690142936624948975298327633748385066042494408124658946517475478673450880:32:708 16621856393739898987690142936624948975298327633748385066042494408124658946517475478673450881:32:709 16621856393739898987690142936624948975298327633748385066042494408124658946517475478673450882:32:709 17388701768470217924632839043707944814124810406240843451264099999999999999999999999999999999:32:709 17388701768470217924632839043707944814124810406240843451264100000000000000000000000000000000:32:710 17388701768470217924632839043707944814124810406240843451264100000000000000000000000000000001:32:710 18189770656642815415948269415814925780229356058925511398393300176391940378860244540465816320:32:710 18189770656642815415948269415814925780229356058925511398393300176391940378860244540465816321:32:711 18189770656642815415948269415814925780229356058925511398393300176391940378860244540465816322:32:711 19026539032002016447342090344428737798440996184339048389869138914036308321233073666581856255:32:711 19026539032002016447342090344428737798440996184339048389869138914036308321233073666581856256:32:712 19026539032002016447342090344428737798440996184339048389869138914036308321233073666581856257:32:712 19900544313495957438050480774068170011039032864190301697645853583712175037641545502801614080:32:712 19900544313495957438050480774068170011039032864190301697645853583712175037641545502801614081:32:713 19900544313495957438050480774068170011039032864190301697645853583712175037641545502801614082:32:713 20813387831525113059876186196146447901517597702451527964811896713569407412478899641013764095:32:713 20813387831525113059876186196146447901517597702451527964811896713569407412478899641013764096:32:714 20813387831525113059876186196146447901517597702451527964811896713569407412478899641013764097:32:714 21766737389508129794170304591338478626455590358097341412057670042216801084578037261962890624:32:714 21766737389508129794170304591338478626455590358097341412057670042216801084578037261962890625:32:715 21766737389508129794170304591338478626455590358097341412057670042216801084578037261962890626:32:715 22762329924307365340934607486427191951192564167534816827039670154703677164183083155095289855:32:715 22762329924307365340934607486427191951192564167534816827039670154703677164183083155095289856:32:716 22762329924307365340934607486427191951192564167534816827039670154703677164183083155095289857:32:716 23801974269182940242341483417279949693961129786838349535592416242154529378046456135109906560:32:716 23801974269182940242341483417279949693961129786838349535592416242154529378046456135109906561:32:717 23801974269182940242341483417279949693961129786838349535592416242154529378046456135109906562:32:717 24887554023074839480268487813734508284530114020510400111723609542219563530821983054621310975:32:717 24887554023074839480268487813734508284530114020510400111723609542219563530821983054621310976:32:718 24887554023074839480268487813734508284530114020510400111723609542219563530821983054621310977:32:718 26021030530147798910415973085893190050617960490580959078712456596947165707235299624889423360:32:718 26021030530147798910415973085893190050617960490580959078712456596947165707235299624889423361:32:719 26021030530147798910415973085893190050617960490580959078712456596947165707235299624889423362:32:719 27204445973673520186989292010512474445356561349778469394841599999999999999999999999999999999:32:719 27204445973673520186989292010512474445356561349778469394841600000000000000000000000000000000:32:720 27204445973673520186989292010512474445356561349778469394841600000000000000000000000000000001:32:720 28439926588469328852753186923869054206557704515360655908138521025479383055622420950396029440:32:720 28439926588469328852753186923869054206557704515360655908138521025479383055622420950396029441:32:721 28439926588469328852753186923869054206557704515360655908138521025479383055622420950396029442:32:721 29729685996261878754343622542880008372085710279050331084451543295302017053107644303792930815:32:721 29729685996261878754343622542880008372085710279050331084451543295302017053107644303792930816:32:722 29729685996261878754343622542880008372085710279050331084451543295302017053107644303792930817:32:722 31076028668499071960262084993288094864886823483732946264513453049091024748822836369552264320:32:722 31076028668499071960262084993288094864886823483732946264513453049091024748822836369552264321:32:723 31076028668499071960262084993288094864886823483732946264513453049091024748822836369552264322:32:723 32481353521293171954010534720661963146158791763376145855804652115515017027752517369306546175:32:723 32481353521293171954010534720661963146158791763376145855804652115515017027752517369306546176:32:724 32481353521293171954010534720661963146158791763376145855804652115515017027752517369306546177:32:724 33948157647343309216701197095273946803022202881581527444954105021679424680769443511962890624:32:724 33948157647343309216701197095273946803022202881581527444954105021679424680769443511962890625:32:725 33948157647343309216701197095273946803022202881581527444954105021679424680769443511962890626:32:725 35479040189856387847516605244733147286930492540216547320295565377421762809913538357101592575:32:725 35479040189856387847516605244733147286930492540216547320295565377421762809913538357101592576:32:726 35479040189856387847516605244733147286930492540216547320295565377421762809913538357101592577:32:726 37076706363661980473820499287299738238810939559688749937897103230898787919556015633083531520:32:726 37076706363661980473820499287299738238810939559688749937897103230898787919556015633083531521:32:727 37076706363661980473820499287299738238810939559688749937897103230898787919556015633083531522:32:727 38743971628899332844950228924752897980440703390866954420425884100010816523287024699353071615:32:727 38743971628899332844950228924752897980440703390866954420425884100010816523287024699353071616:32:728 38743971628899332844950228924752897980440703390866954420425884100010816523287024699353071617:32:728 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775040:32:728 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775041:32:729 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775042:32:729 42299138655630915014936383208660310776304509985345337606272099999999999999999999999999999999:32:729 42299138655630915014936383208660310776304509985345337606272100000000000000000000000000000000:32:730 42299138655630915014936383208660310776304509985345337606272100000000000000000000000000000001:32:730 44193262375852389818329815096814633404792250893037136105482943715764243903556173480257061760:32:730 44193262375852389818329815096814633404792250893037136105482943715764243903556173480257061761:32:731 44193262375852389818329815096814633404792250893037136105482943715764243903556173480257061762:32:731 46169438612177645293065455235599037134319219100324971531180460906561749106794436469169586175:32:731 46169438612177645293065455235599037134319219100324971531180460906561749106794436469169586176:32:732 46169438612177645293065455235599037134319219100324971531180460906561749106794436469169586177:32:732 48231102397406085501628512637378113186702253518279357727189093599127277561341612400781855360:32:732 48231102397406085501628512637378113186702253518279357727189093599127277561341612400781855361:32:733 48231102397406085501628512637378113186702253518279357727189093599127277561341612400781855362:32:733 50381827581548807653007972113685749997941346678031734633893248972397642462365021836155027455:32:733 50381827581548807653007972113685749997941346678031734633893248972397642462365021836155027456:32:734 50381827581548807653007972113685749997941346678031734633893248972397642462365021836155027457:32:734 52625332240782909518016727722717148782563792382158030901613823108986043371260166168212890624:32:734 52625332240782909518016727722717148782563792382158030901613823108986043371260166168212890625:32:735 52625332240782909518016727722717148782563792382158030901613823108986043371260166168212890626:32:735 54965484289355026282928168736325787799955234700913318349068457362991172448893697357298794495:32:735 54965484289355026282928168736325787799955234700913318349068457362991172448893697357298794496:32:736 54965484289355026282928168736325787799955234700913318349068457362991172448893697357298794497:32:736 57406307301756780601838458036768828953714156383201596199000661587640569119257388285158497280:32:736 57406307301756780601838458036768828953714156383201596199000661587640569119257388285158497281:32:737 57406307301756780601838458036768828953714156383201596199000661587640569119257388285158497282:32:737 59951986552748529237807830365512067649660753789896426015585570045972048489928799717012013055:32:737 59951986552748529237807830365512067649660753789896426015585570045972048489928799717012013056:32:738 59951986552748529237807830365512067649660753789896426015585570045972048489928799717012013057:32:738 62606875283069915700744643341151552823990052024952920507643860076008358826497993535979745920:32:738 62606875283069915700744643341151552823990052024952920507643860076008358826497993535979745921:32:739 62606875283069915700744643341151552823990052024952920507643860076008358826497993535979745922:32:739 65375501198946558539827275362501984269366826049043460364697599999999999999999999999999999999:32:739 65375501198946558539827275362501984269366826049043460364697600000000000000000000000000000000:32:740 65375501198946558539827275362501984269366826049043460364697600000000000000000000000000000001:32:740 68262573213781995406063284831975486283392943177833328811372612806656387487979808909606673280:32:740 68262573213781995406063284831975486283392943177833328811372612806656387487979808909606673281:32:741 68262573213781995406063284831975486283392943177833328811372612806656387487979808909606673282:32:741 71272988440713048010184404370249723671045139533448457221802371233983170787157592780188942335:32:741 71272988440713048010184404370249723671045139533448457221802371233983170787157592780188942336:32:742 71272988440713048010184404370249723671045139533448457221802371233983170787157592780188942337:32:742 74411839445005365615913204705916338247206685386207374946303279965501805733959104803000467200:32:742 74411839445005365615913204705916338247206685386207374946303279965501805733959104803000467201:32:743 74411839445005365615913204705916338247206685386207374946303279965501805733959104803000467202:32:743 77684421765574346540276969587064417119749354138708064322231847681299029209651010020820647935:32:743 77684421765574346540276969587064417119749354138708064322231847681299029209651010020820647936:32:744 77684421765574346540276969587064417119749354138708064322231847681299029209651010020820647937:32:744 81096241715235239206093164918460481411578717250646593686849764109477424062788486480712890624:32:744 81096241715235239206093164918460481411578717250646593686849764109477424062788486480712890625:32:745 81096241715235239206093164918460481411578717250646593686849764109477424062788486480712890626:32:745 84653024469615306907778381957006316656191149266733598625689858328676122349593347802703855615:32:745 84653024469615306907778381957006316656191149266733598625689858328676122349593347802703855616:32:746 84653024469615306907778381957006316656191149266733598625689858328676122349593347802703855617:32:746 88360722455000833556272869607355175831742259846858013814489834358115574577530412457695123840:32:746 88360722455000833556272869607355175831742259846858013814489834358115574577530412457695123841:32:747 88360722455000833556272869607355175831742259846858013814489834358115574577530412457695123842:32:747 92225524045742791130293885642924937216396168881574710999393207401644923356630899073583415295:32:747 92225524045742791130293885642924937216396168881574710999393207401644923356630899073583415296:32:748 92225524045742791130293885642924937216396168881574710999393207401644923356630899073583415297:32:748 96253862582207533454063632634755922353453138319926461199086846242271917089911407126528976000:32:748 96253862582207533454063632634755922353453138319926461199086846242271917089911407126528976001:32:749 96253862582207533454063632634755922353453138319926461199086846242271917089911407126528976002:32:749 100452425720633285819577418251924427750054746866226196289062499999999999999999999999999999999:32:749 100452425720633285819577418251924427750054746866226196289062500000000000000000000000000000000:32:750 100452425720633285819577418251924427750054746866226196289062500000000000000000000000000000001:32:750 104828165126639837246744367117634349155983569483923449012015232889673177814392598811529024000:32:750 104828165126639837246744367117634349155983569483923449012015232889673177814392598811529024001:32:751 104828165126639837246744367117634349155983569483923449012015232889673177814392598811529024002:32:751 109388306524538094306888426832477176269296652769939995891393304190959688568427768872798519295:32:751 109388306524538094306888426832477176269296652769939995891393304190959688568427768872798519296:32:752 109388306524538094306888426832477176269296652769939995891393304190959688568427768872798519297:32:752 114140360114998416327535990442192981410862546923592190278510778629502517412882833334324579840:32:752 114140360114998416327535990442192981410862546923592190278510778629502517412882833334324579841:32:753 114140360114998416327535990442192981410862546923592190278510778629502517412882833334324579842:32:753 119092131374062327101642092900498338628156106647826543891072459434158285683611880957323247615:32:753 119092131374062327101642092900498338628156106647826543891072459434158285683611880957323247616:32:754 119092131374062327101642092900498338628156106647826543891072459434158285683611880957323247617:32:754 124251732246921705678097859981598430559056333746961148316557786920219683088362216949462890624:32:754 124251732246921705678097859981598430559056333746961148316557786920219683088362216949462890625:32:755 124251732246921705678097859981598430559056333746961148316557786920219683088362216949462890626:32:755 129627592750343328574468575202000816172135203680088718929902060804139728181461310855956135935:32:755 129627592750343328574468575202000816172135203680088718929902060804139728181461310855956135936:32:756 129627592750343328574468575202000816172135203680088718929902060804139728181461310855956135937:32:756 135228472998085110768022632403770140151812585256309690240908276130163994279220520120052131200:32:756 135228472998085110768022632403770140151812585256309690240908276130163994279220520120052131201:32:757 135228472998085110768022632403770140151812585256309690240908276130163994279220520120052131202:32:757 141063475664134029168320102637785718997386336677968685219654883348776339383915513723890958335:32:757 141063475664134029168320102637785718997386336677968685219654883348776339383915513723890958336:32:758 141063475664134029168320102637785718997386336677968685219654883348776339383915513723890958337:32:758 147142058899094979547148197238315600712143149837179881698281135185729535447755110069749505280:32:758 147142058899094979547148197238315600712143149837179881698281135185729535447755110069749505281:32:759 147142058899094979547148197238315600712143149837179881698281135185729535447755110069749505282:32:759 153474049715575199586360783660408489873592296270439128865177599999999999999999999999999999999:32:759 153474049715575199586360783660408489873592296270439128865177600000000000000000000000000000000:32:760 153474049715575199586360783660408489873592296270439128865177600000000000000000000000000000001:32:760 160069657858940884573730215264270135203195199353151915504267638502069396843327573252986673920:32:760 160069657858940884573730215264270135203195199353151915504267638502069396843327573252986673921:32:761 160069657858940884573730215264270135203195199353151915504267638502069396843327573252986673922:32:761 166939490180371740791742342674484246825226090454998146885155304512571238593252876701512237055:32:761 166939490180371740791742342674484246825226090454998146885155304512571238593252876701512237056:32:762 166939490180371740791742342674484246825226090454998146885155304512571238593252876701512237057:32:762 174094565529705992365961223944713140724333393905046208361653980185701557724186289877981073280:32:762 174094565529705992365961223944713140724333393905046208361653980185701557724186289877981073281:32:763 174094565529705992365961223944713140724333393905046208361653980185701557724186289877981073282:32:763 181546330186153323355075645249031699630923464063955541967754434131169050790884764248489066495:32:763 181546330186153323355075645249031699630923464063955541967754434131169050790884764248489066496:32:764 181546330186153323355075645249031699630923464063955541967754434131169050790884764248489066497:32:764 189306673845556957221785191927679152318328922926970043754229201111882948316633701324462890624:32:764 189306673845556957221785191927679152318328922926970043754229201111882948316633701324462890625:32:765 189306673845556957221785191927679152318328922926970043754229201111882948316633701324462890626:32:765 197387946183509125978071397240238777970386249526974793108036741004083407171948945300789395455:32:765 197387946183509125978071397240238777970386249526974793108036741004083407171948945300789395456:32:766 197387946183509125978071397240238777970386249526974793108036741004083407171948945300789395457:32:766 205802974014267153572997657146434244814677953178471215954812404605098485744650346296362639360:32:766 205802974014267153572997657146434244814677953178471215954812404605098485744650346296362639361:32:767 205802974014267153572997657146434244814677953178471215954812404605098485744650346296362639362:32:767 214565079066080882147234911497954180084378739513519752124385655448304568791947307293580722175:32:767 214565079066080882147234911497954180084378739513519752124385655448304568791947307293580722176:32:768 214565079066080882147234911497954180084378739513519752124385655448304568791947307293580722177:32:768 223688096394226833099455224083507484324910089206421356262017328037581635777788546258838773760:32:768 223688096394226833099455224083507484324910089206421356262017328037581635777788546258838773761:32:769 223688096394226833099455224083507484324910089206421356262017328037581635777788546258838773762:32:769 233186393453750963297856881217603417803619533609266676757312099999999999999999999999999999999:32:769 233186393453750963297856881217603417803619533609266676757312100000000000000000000000000000000:32:770 233186393453750963297856881217603417803619533609266676757312100000000000000000000000000000001:32:770 243074889854650814856334823473250004492684209843588031105456054790618389817198418691012583040:32:770 243074889854650814856334823473250004492684209843588031105456054790618389817198418691012583041:32:771 243074889854650814856334823473250004492684209843588031105456054790618389817198418691012583042:32:771 253369077822979948662124255667239414896204295210635054533522744284518488301577787522066415615:32:771 253369077822979948662124255667239414896204295210635054533522744284518488301577787522066415616:32:772 253369077822979948662124255667239414896204295210635054533522744284518488301577787522066415617:32:772 264085043392133501162189922229292994771462479400282413767076870775633963901267087253571227520:32:772 264085043392133501162189922229292994771462479400282413767076870775633963901267087253571227521:32:773 264085043392133501162189922229292994771462479400282413767076870775633963901267087253571227522:32:773 275239488349374235101736959065275848133528295604475942380064960581554918529981566529438744575:32:773 275239488349374235101736959065275848133528295604475942380064960581554918529981566529438744576:32:774 275239488349374235101736959065275848133528295604475942380064960581554918529981566529438744577:32:774 286849752963484313278836817281990306283094857576197213300250865586349391378462314605712890624:32:774 286849752963484313278836817281990306283094857576197213300250865586349391378462314605712890625:32:775 286849752963484313278836817281990306283094857576197213300250865586349391378462314605712890626:32:775 298933839520279976840241575127703695378615887942480475090879862831460679321406769814543794175:32:775 298933839520279976840241575127703695378615887942480475090879862831460679321406769814543794176:32:776 298933839520279976840241575127703695378615887942480475090879862831460679321406769814543794177:32:776 311510436693605145284080169504427386374071027867823891463006879815565375647261456158270168320:32:776 311510436693605145284080169504427386374071027867823891463006879815565375647261456158270168321:32:777 311510436693605145284080169504427386374071027867823891463006879815565375647261456158270168322:32:777 324598944780326486039189213834915787302193243283487002182527249742780027233083735240465186815:32:777 324598944780326486039189213834915787302193243283487002182527249742780027233083735240465186816:32:778 324598944780326486039189213834915787302193243283487002182527249742780027233083735240465186817:32:778 338219501828787562564781221145510147087325372966552523260234410861825324837576670100072621440:32:778 338219501828787562564781221145510147087325372966552523260234410861825324837576670100072621441:32:779 338219501828787562564781221145510147087325372966552523260234410861825324837576670100072621442:32:779 352393010691144120731175199844020069947940817374261471189401599999999999999999999999999999999:32:779 352393010691144120731175199844020069947940817374261471189401600000000000000000000000000000000:32:780 352393010691144120731175199844020069947940817374261471189401600000000000000000000000000000001:32:780 367141167030997297903344624491663044479891639479991121659624429586789847658926826407142111360:32:780 367141167030997297903344624491663044479891639479991121659624429586789847658926826407142111361:32:781 367141167030997297903344624491663044479891639479991121659624429586789847658926826407142111362:32:781 382486488318767447161061448869053113709827787349094088810152888343711858190359548873435774975:32:781 382486488318767447161061448869053113709827787349094088810152888343711858190359548873435774976:32:782 382486488318767447161061448869053113709827787349094088810152888343711858190359548873435774977:32:782 398452343848309296061459611379386611991032689559699497531283156582541435532599278149294722560:32:782 398452343848309296061459611379386611991032689559699497531283156582541435532599278149294722561:32:783 398452343848309296061459611379386611991032689559699497531283156582541435532599278149294722562:32:783 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321855:32:783 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321856:32:784 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321857:32:784 432343581451538971599201219560733430859373401151299147131644848252311372198164463043212890624:32:784 432343581451538971599201219560733430859373401151299147131644848252311372198164463043212890625:32:785 432343581451538971599201219560733430859373401151299147131644848252311372198164463043212890626:32:785 450320246376771141106154926689870291492035338086645603261185348548685042462776594550117892095:32:785 450320246376771141106154926689870291492035338086645603261185348548685042462776594550117892096:32:786 450320246376771141106154926689870291492035338086645603261185348548685042462776594550117892097:32:786 469020078998216700708793977654169024541037190411131525322287014390701739853419924875424638080:32:786 469020078998216700708793977654169024541037190411131525322287014390701739853419924875424638081:32:787 469020078998216700708793977654169024541037190411131525322287014390701739853419924875424638082:32:787 488471196205005266705141585494319444286509041623226820129727869443259194441612296178427232255:32:787 488471196205005266705141585494319444286509041623226820129727869443259194441612296178427232256:32:788 488471196205005266705141585494319444286509041623226820129727869443259194441612296178427232257:32:788 508702770273359327654069718093734954172017446180806679917374384276156014653328934508453288320:32:788 508702770273359327654069718093734954172017446180806679917374384276156014653328934508453288321:32:789 508702770273359327654069718093734954172017446180806679917374384276156014653328934508453288322:32:789 529745067065995754900960456359517075996365542003845603645184099999999999999999999999999999999:32:789 529745067065995754900960456359517075996365542003845603645184100000000000000000000000000000000:32:790 529745067065995754900960456359517075996365542003845603645184100000000000000000000000000000001:32:790 551629485563048330813626586387805033012212319780106450079220183361596090901919863422485018880:32:790 551629485563048330813626586387805033012212319780106450079220183361596090901919863422485018881:32:791 551629485563048330813626586387805033012212319780106450079220183361596090901919863422485018882:32:791 574388598769147857855463796782687581625942631954070218808670228187077752755605719476009435135:32:791 574388598769147857855463796782687581625942631954070218808670228187077752755605719476009435136:32:792 574388598769147857855463796782687581625942631954070218808670228187077752755605719476009435137:32:792 598056196042733364464255244365426107167702064768744812772533635286544905291482582658333638400:32:792 598056196042733364464255244365426107167702064768744812772533635286544905291482582658333638401:32:793 598056196042733364464255244365426107167702064768744812772533635286544905291482582658333638402:32:793 622667326895149228077242772802028891317587902787292722019157665927139090332669928650452238335:32:793 622667326895149228077242772802028891317587902787292722019157665927139090332669928650452238336:32:794 622667326895149228077242772802028891317587902787292722019157665927139090332669928650452238337:32:794 648258346308610001738533516853516897182370694283532987490157608327746414579451084136962890624:32:794 648258346308610001738533516853516897182370694283532987490157608327746414579451084136962890625:32:795 648258346308610001738533516853516897182370694283532987490157608327746414579451084136962890626:32:795 674866961623688705710528313783640242703278020428928329494713525725451175518694890769760649215:32:795 674866961623688705710528313783640242703278020428928329494713525725451175518694890769760649216:32:796 674866961623688705710528313783640242703278020428928329494713525725451175518694890769760649217:32:796 702532281048606714522866031346177620128483677125289731140679597508002000242930890940538368640:32:796 702532281048606714522866031346177620128483677125289731140679597508002000242930890940538368641:32:797 702532281048606714522866031346177620128483677125289731140679597508002000242930890940538368642:32:797 731294863844275557055719734846445939928994229377436315299438414244274095603944538647084138495:32:797 731294863844275557055719734846445939928994229377436315299438414244274095603944538647084138496:32:798 731294863844275557055719734846445939928994229377436315299438414244274095603944538647084138497:32:798 761196772240764416730083992724153692207671647790443500070029810164674126450612286996797414400:32:798 761196772240764416730083992724153692207671647790443500070029810164674126450612286996797414401:32:799 761196772240764416730083992724153692207671647790443500070029810164674126450612286996797414402:32:799 792281625142643375935439503359999999999999999999999999999999999999999999999999999999999999999:32:799 792281625142643375935439503360000000000000000000000000000000000000000000000000000000000000000:32:800 792281625142643375935439503360000000000000000000000000000000000000000000000000000000000000001:32:800 824594653682483040943231228587310961802315991923467114407041210154747321711008467435837465600:32:800 824594653682483040943231228587310961802315991923467114407041210154747321711008467435837465601:32:801 824594653682483040943231228587310961802315991923467114407041210154747321711008467435837465602:32:801 858182758683677701548523317198924175867961294694520989648235031348098392103211867562726916095:32:801 858182758683677701548523317198924175867961294694520989648235031348098392103211867562726916096:32:802 858182758683677701548523317198924175867961294694520989648235031348098392103211867562726916097:32:802 893094570095703258861813535986571743860672655504126457043443823084341423694440824502596455040:32:802 893094570095703258861813535986571743860672655504126457043443823084341423694440824502596455041:32:803 893094570095703258861813535986571743860672655504126457043443823084341423694440824502596455042:32:803 929380508466924476028767473296277832877470504367152361481691692904935213709369764737781334015:32:803 929380508466924476028767473296277832877470504367152361481691692904935213709369764737781334016:32:804 929380508466924476028767473296277832877470504367152361481691692904935213709369764737781334017:32:804 967092848522130398075184341253296642334770920641713720473439804372906708158552646636962890624:32:804 967092848522130398075184341253296642334770920641713720473439804372906708158552646636962890625:32:805 967092848522130398075184341253296642334770920641713720473439804372906708158552646636962890626:32:805 1006285784914103824589911802081488285908750063720296330612050420526540340290967728873103425535:32:805 1006285784914103824589911802081488285908750063720296330612050420526540340290967728873103425536:32:806 1006285784914103824589911802081488285908750063720296330612050420526540340290967728873103425537:32:806 1047015500220722328025100020694985343711837310838184985773780598353542576389597021285802080000:32:806 1047015500220722328025100020694985343711837310838184985773780598353542576389597021285802080001:32:807 1047015500220722328025100020694985343711837310838184985773780598353542576389597021285802080002:32:807 1089340235261346367201052756686776869422447074421652995949178734337732517131702752210411585535:32:807 1089340235261346367201052756686776869422447074421652995949178734337732517131702752210411585536:32:808 1089340235261346367201052756686776869422447074421652995949178734337732517131702752210411585537:32:808 1133320361808576478420706363620077085288704583175427305945102393187072767628257286715864039680:32:808 1133320361808576478420706363620077085288704583175427305945102393187072767628257286715864039681:32:809 1133320361808576478420706363620077085288704583175427305945102393187072767628257286715864039682:32:809 1179018457773858317152087286141251866567821159227584110909696099999999999999999999999999999999:32:809 1179018457773858317152087286141251866567821159227584110909696100000000000000000000000000000000:32:810 1179018457773858317152087286141251866567821159227584110909696100000000000000000000000000000001:32:810 1226499384947883508121373900465126788906937026740330377332140687157284737697661520927234011520:32:810 1226499384947883508121373900465126788906937026740330377332140687157284737697661520927234011521:32:811 1226499384947883508121373900465126788906937026740330377332140687157284737697661520927234011522:32:811 1275830369379277933787950696326827573245812981566562269665087149828431859899851391759974137855:32:811 1275830369379277933787950696326827573245812981566562269665087149828431859899851391759974137856:32:812 1275830369379277933787950696326827573245812981566562269665087149828431859899851391759974137857:32:812 1327081084477689401262465597712113742993657630389415452259655802391113174033943245627022052480:32:812 1327081084477689401262465597712113742993657630389415452259655802391113174033943245627022052481:32:813 1327081084477689401262465597712113742993657630389415452259655802391113174033943245627022052482:32:813 1380323736930085785820552016134056001492875850176359922101589560100072354017806659004080848895:32:813 1380323736930085785820552016134056001492875850176359922101589560100072354017806659004080848896:32:814 1380323736930085785820552016134056001492875850176359922101589560100072354017806659004080848897:32:814 1435633155521855026184585364262767253441721391100546025262464595210805558599531650543212890624:32:814 1435633155521855026184585364262767253441721391100546025262464595210805558599531650543212890625:32:815 1435633155521855026184585364262767253441721391100546025262464595210805558599531650543212890626:32:815 1493086882957162076103591898545707565806771033228862640261080806322086753942580200761831981055:32:815 1493086882957162076103591898545707565806771033228862640261080806322086753942580200761831981056:32:816 1493086882957162076103591898545707565806771033228862640261080806322086753942580200761831981057:32:816 1552765270775967495990192340430248764485923280275155091392932288122258812061651756107460892160:32:816 1552765270775967495990192340430248764485923280275155091392932288122258812061651756107460892161:32:817 1552765270775967495990192340430248764485923280275155091392932288122258812061651756107460892162:32:817 1614751577468150260809150419157331452164086750142840256717713459884012550754177025367527653375:32:817 1614751577468150260809150419157331452164086750142840256717713459884012550754177025367527653376:32:818 1614751577468150260809150419157331452164086750142840256717713459884012550754177025367527653377:32:818 1679132069888306096915344891772729864371331600944247720397176257405613781730324288903122604160:32:818 1679132069888306096915344891772729864371331600944247720397176257405613781730324288903122604161:32:819 1679132069888306096915344891772729864371331600944247720397176257405613781730324288903122604162:32:819 1745996128078014841259816055748883129511532986626167021345177599999999999999999999999999999999:32:819 1745996128078014841259816055748883129511532986626167021345177600000000000000000000000000000000:32:820 1745996128078014841259816055748883129511532986626167021345177600000000000000000000000000000001:32:820 1815436353605688612568884216535696722191888701304930116882707879473196576577101057169339616640:32:820 1815436353605688612568884216535696722191888701304930116882707879473196576577101057169339616641:32:821 1815436353605688612568884216535696722191888701304930116882707879473196576577101057169339616642:32:821 1887548681537529739952456184313012325870323564520716575751387085154073395537046689235039420415:32:821 1887548681537529739952456184313012325870323564520716575751387085154073395537046689235039420416:32:822 1887548681537529739952456184313012325870323564520716575751387085154073395537046689235039420417:32:822 1962432496156646228963493144260444605610493041269588202002347993419809327416460026447643710720:32:822 1962432496156646228963493144260444605610493041269588202002347993419809327416460026447643710721:32:823 1962432496156646228963493144260444605610493041269588202002347993419809327416460026447643710722:32:823 2040190750550995954258303804840833186883713211893097369851769420815159111441237178060663422975:32:823 2040190750550995954258303804840833186883713211893097369851769420815159111441237178060663422976:32:824 2040190750550995954258303804840833186883713211893097369851769420815159111441237178060663422977:32:824 2120930090194561726335638285890842508156940474096084116306659694828340434469282627105712890624:32:824 2120930090194561726335638285890842508156940474096084116306659694828340434469282627105712890625:32:825 2120930090194561726335638285890842508156940474096084116306659694828340434469282627105712890626:32:825 2204760980650000942835811535717047098611821566972355272089733844689412664921684932083398475775:32:825 2204760980650000942835811535717047098611821566972355272089733844689412664921684932083398475776:32:826 2204760980650000942835811535717047098611821566972355272089733844689412664921684932083398475777:32:826 2291797839524968840963404084696771233125895703413049427672161227979853976268328722915350325120:32:826 2291797839524968840963404084696771233125895703413049427672161227979853976268328722915350325121:32:827 2291797839524968840963404084696771233125895703413049427672161227979853976268328722915350325122:32:827 2382159172818386640238280546936548119589602619259276521287815317889712155549033834358836822015:32:827 2382159172818386640238280546936548119589602619259276521287815317889712155549033834358836822016:32:828 2382159172818386640238280546936548119589602619259276521287815317889712155549033834358836822017:32:828 2475967715797118414733922718995119762714244082372243130941598572156556871853164252797760947840:32:828 2475967715797118414733922718995119762714244082372243130941598572156556871853164252797760947841:32:829 2475967715797118414733922718995119762714244082372243130941598572156556871853164252797760947842:32:829 2573350578547836761510716435825204621449068537133976861690176099999999999999999999999999999999:32:829 2573350578547836761510716435825204621449068537133976861690176100000000000000000000000000000000:32:830 2573350578547836761510716435825204621449068537133976861690176100000000000000000000000000000001:32:830 2674439396353300729211374629488438695568217131206301336423212174850208087676495312489081640960:32:830 2674439396353300729211374629488438695568217131206301336423212174850208087676495312489081640961:32:831 2674439396353300729211374629488438695568217131206301336423212174850208087676495312489081640962:32:831 2779370485046843624072493144850653967670275438220701287692284235639699592792008193426929483775:32:831 2779370485046843624072493144850653967670275438220701287692284235639699592792008193426929483776:32:832 2779370485046843624072493144850653967670275438220701287692284235639699592792008193426929483777:32:832 2888285001503576902859124502781934120287540170991883262988356483414968761888780964636613109760:32:832 2888285001503576902859124502781934120287540170991883262988356483414968761888780964636613109761:32:833 2888285001503576902859124502781934120287540170991883262988356483414968761888780964636613109762:32:833 3001329109431663175491298045330711633730410887364948107021601183415732523981298125295904096255:32:833 3001329109431663175491298045330711633730410887364948107021601183415732523981298125295904096256:32:834 3001329109431663175491298045330711633730410887364948107021601183415732523981298125295904096257:32:834 3118654150632000258092450730423006102859921677034318623669050887556880735792219638824462890624:32:834 3118654150632000258092450730423006102859921677034318623669050887556880735792219638824462890625:32:835 3118654150632000258092450730423006102859921677034318623669050887556880735792219638824462890626:32:835 3240416821899793227790883485734495228788893413723891713888963729055780292763154603496173469695:32:835 3240416821899793227790883485734495228788893413723891713888963729055780292763154603496173469696:32:836 3240416821899793227790883485734495228788893413723891713888963729055780292763154603496173469697:32:836 3366779357746776628707037731569108977946372286727018891299871047261883350515067102924192298880:32:836 3366779357746776628707037731569108977946372286727018891299871047261883350515067102924192298881:32:837 3366779357746776628707037731569108977946372286727018891299871047261883350515067102924192298882:32:837 3497909719128288568674259083470921589957982092356115037335282352331142953988699816550733971455:32:837 3497909719128288568674259083470921589957982092356115037335282352331142953988699816550733971456:32:838 3497909719128288568674259083470921589957982092356115037335282352331142953988699816550733971457:32:838 3633981788364996745333100567294494861518290664540900515090400310540579085392687634679533310720:32:838 3633981788364996745333100567294494861518290664540900515090400310540579085392687634679533310721:32:839 3633981788364996745333100567294494861518290664540900515090400310540579085392687634679533310722:32:839 3775175570454837880592482761278551367113494824485942466288025599999999999999999999999999999999:32:839 3775175570454837880592482761278551367113494824485942466288025600000000000000000000000000000000:32:840 3775175570454837880592482761278551367113494824485942466288025600000000000000000000000000000001:32:840 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844480:32:840 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844481:32:841 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844482:32:841 4073680160793167886157028200351130606733406144276648734440333948993724002720066613277345447935:32:841 4073680160793167886157028200351130606733406144276648734440333948993724002720066613277345447936:32:842 4073680160793167886157028200351130606733406144276648734440333948993724002720066613277345447937:32:842 4231383497767017801896760675973982167632791092268099815843902486534409030673250738927384329600:32:842 4231383497767017801896760675973982167632791092268099815843902486534409030673250738927384329601:32:843 4231383497767017801896760675973982167632791092268099815843902486534409030673250738927384329602:32:843 4394994055710434095706651434196748059869535824363136836410238648823825771227911662597608308735:32:843 4394994055710434095706651434196748059869535824363136836410238648823825771227911662597608308736:32:844 4394994055710434095706651434196748059869535824363136836410238648823825771227911662597608308737:32:844 4564725710795285956250963742462126897284837439752085776757238522224336885847151279449462890624:32:844 4564725710795285956250963742462126897284837439752085776757238522224336885847151279449462890625:32:845 4564725710795285956250963742462126897284837439752085776757238522224336885847151279449462890626:32:845 4740799815657468563596371303043461721017484694765266619582988319325547407011964257698437922815:32:845 4740799815657468563596371303043461721017484694765266619582988319325547407011964257698437922816:32:846 4740799815657468563596371303043461721017484694765266619582988319325547407011964257698437922817:32:846 4923445451436437850765280905716997069747055799339886807494291189171285546269161078503451133440:32:846 4923445451436437850765280905716997069747055799339886807494291189171285546269161078503451133441:32:847 4923445451436437850765280905716997069747055799339886807494291189171285546269161078503451133442:32:847 5112899687997998459833634857207162857611193095875206003306590516375905090560338359682068381695:32:847 5112899687997998459833634857207162857611193095875206003306590516375905090560338359682068381696:32:848 5112899687997998459833634857207162857611193095875206003306590516375905090560338359682068381697:32:848 5309407852595893005956378969829931208229823139848246576417847682905432587020358149289048332800:32:848 5309407852595893005956378969829931208229823139848246576417847682905432587020358149289048332801:32:849 5309407852595893005956378969829931208229823139848246576417847682905432587020358149289048332802:32:849 5513223807235404955791556968635300284626428037881851196289062499999999999999999999999999999999:32:849 5513223807235404955791556968635300284626428037881851196289062500000000000000000000000000000000:32:850 5513223807235404955791556968635300284626428037881851196289062500000000000000000000000000000001:32:850 5724610235010072020320912729718279279615673880290606703721594562096828622384294307401168387200:32:850 5724610235010072020320912729718279279615673880290606703721594562096828622384294307401168387201:32:851 5724610235010072020320912729718279279615673880290606703721594562096828622384294307401168387202:32:851 5943838935690718022789505837549449531858635387501647461858267731918409643617404307478618832895:32:851 5943838935690718022789505837549449531858635387501647461858267731918409643617404307478618832896:32:852 5943838935690718022789505837549449531858635387501647461858267731918409643617404307478618832897:32:852 6171191130854354956710848301851557114820379587879326103615022261249706913182839586023257850240:32:852 6171191130854354956710848301851557114820379587879326103615022261249706913182839586023257850241:32:853 6171191130854354956710848301851557114820379587879326103615022261249706913182839586023257850242:32:853 6406957778849089786452416716498564062593491386166820343498350265649880491350613017685619900415:32:853 6406957778849089786452416716498564062593491386166820343498350265649880491350613017685619900416:32:854 6406957778849089786452416716498564062593491386166820343498350265649880491350613017685619900417:32:854 6651439899899999021312921507448992123701366159450774728267970936969384574331343173980712890624:32:854 6651439899899999021312921507448992123701366159450774728267970936969384574331343173980712890625:32:855 6651439899899999021312921507448992123701366159450774728267970936969384574331343173980712890626:32:855 6904948911670014942543275763391235113443808142020363066558669412712090043640618890563615195135:32:855 6904948911670014942543275763391235113443808142020363066558669412712090043640618890563615195136:32:856 6904948911670014942543275763391235113443808142020363066558669412712090043640618890563615195137:32:856 7167806975599207486888583557217682708478539881028253656079917968344760082160834668002549548800:32:856 7167806975599207486888583557217682708478539881028253656079917968344760082160834668002549548801:32:857 7167806975599207486888583557217682708478539881028253656079917968344760082160834668002549548802:32:857 7440347354355452275899312681612398562540859895124367698466900720380478123768973783855567732735:32:857 7440347354355452275899312681612398562540859895124367698466900720380478123768973783855567732736:32:858 7440347354355452275899312681612398562540859895124367698466900720380478123768973783855567732737:32:858 7722914780739355398455909009011378446476392316627561830637818105968544537357234640487097054080:32:858 7722914780739355398455909009011378446476392316627561830637818105968544537357234640487097054081:32:859 7722914780739355398455909009011378446476392316627561830637818105968544537357234640487097054082:32:859 8015865838396466765277291254675010879921528555275127357020569599999999999999999999999999999999:32:859 8015865838396466765277291254675010879921528555275127357020569600000000000000000000000000000000:32:860 8015865838396466765277291254675010879921528555275127357020569600000000000000000000000000000001:32:860 8319569354700263813584846650229216834123261120270819841689285170158258342812259422824727829120:32:860 8319569354700263813584846650229216834123261120270819841689285170158258342812259422824727829121:32:861 8319569354700263813584846650229216834123261120270819841689285170158258342812259422824727829122:32:861 8634406806180133901681239938469646236672767278008911220268050900410392581650179400855407558655:32:861 8634406806180133901681239938469646236672767278008911220268050900410392581650179400855407558656:32:862 8634406806180133901681239938469646236672767278008911220268050900410392581650179400855407558657:32:862 8960772736879634955196216352965312691784459266912399612256300882202231975818159828292484551680:32:862 8960772736879634955196216352965312691784459266912399612256300882202231975818159828292484551681:32:863 8960772736879634955196216352965312691784459266912399612256300882202231975818159828292484551682:32:863 9299075190041678076532586140547978770446238481095506644462932417621478279228397022712269111295:32:863 9299075190041678076532586140547978770446238481095506644462932417621478279228397022712269111296:32:864 9299075190041678076532586140547978770446238481095506644462932417621478279228397022712269111297:32:864 9649736153528961388338315425253383734422441546820394125636922053899362706579267978668212890624:32:864 9649736153528961388338315425253383734422441546820394125636922053899362706579267978668212890625:32:865 9649736153528961388338315425253383734422441546820394125636922053899362706579267978668212890626:32:865 10013192019400000051997529252366684259304067417689029378230693420919958912414779130324143046655:32:865 10013192019400000051997529252366684259304067417689029378230693420919958912414779130324143046656:32:866 10013192019400000051997529252366684259304067417689029378230693420919958912414779130324143046657:32:866 10389894058073452109598266198902297197259939554778450590634121788248850137692632943868244664960:32:866 10389894058073452109598266198902297197259939554778450590634121788248850137692632943868244664961:32:867 10389894058073452109598266198902297197259939554778450590634121788248850137692632943868244664962:32:867 10780308907526142699633748288187814495353360382667953065829330075344536793903613086757422104575:32:867 10780308907526142699633748288187814495353360382667953065829330075344536793903613086757422104576:32:868 10780308907526142699633748288187814495353360382667953065829330075344536793903613086757422104577:32:868 11184919077983249686154546497463043303197010646097484715254830484223923932756082215610620914560:32:868 11184919077983249686154546497463043303197010646097484715254830484223923932756082215610620914561:32:869 11184919077983249686154546497463043303197010646097484715254830484223923932756082215610620914562:32:869 11604223472572541453644626290575307260558324428556804013698688099999999999999999999999999999999:32:869 11604223472572541453644626290575307260558324428556804013698688100000000000000000000000000000000:32:870 11604223472572541453644626290575307260558324428556804013698688100000000000000000000000000000001:32:870 12038737924428362439033126261816356917279146593530986190573337607898318607340625954741697130240:32:870 12038737924428362439033126261816356917279146593530986190573337607898318607340625954741697130241:32:871 12038737924428362439033126261816356917279146593530986190573337607898318607340625954741697130242:32:871 12488995750745254035607680265493763276962810607769918236030044992773656049194645075596951945215:32:871 12488995750745254035607680265493763276962810607769918236030044992773656049194645075596951945216:32:872 12488995750745254035607680265493763276962810607769918236030044992773656049194645075596951945217:32:872 12955548324295688209170239489752929263198636325579729242515564939512514372078436987533129713920:32:872 12955548324295688209170239489752929263198636325579729242515564939512514372078436987533129713921:32:873 12955548324295688209170239489752929263198636325579729242515564939512514372078436987533129713922:32:873 13438965662941389179329103757385154072201841093842437212296346662416963539091664491388260581375:32:873 13438965662941389179329103757385154072201841093842437212296346662416963539091664491388260581376:32:874 13438965662941389179329103757385154072201841093842437212296346662416963539091664491388260581377:32:874 13939837037683135776382537089414264129622524161292705137393799219580614590086042881011962890624:32:874 13939837037683135776382537089414264129622524161292705137393799219580614590086042881011962890625:32:875 13939837037683135776382537089414264129622524161292705137393799219580614590086042881011962890626:32:875 14458771599809784804802497992821998365911321580310669254472994541454998290377615818346385637375:32:875 14458771599809784804802497992821998365911321580310669254472994541454998290377615818346385637376:32:876 14458771599809784804802497992821998365911321580310669254472994541454998290377615818346385637377:32:876 14996399027723545432637053306484571366249210946076510865182321867969669615858559311570964001920:32:876 14996399027723545432637053306484571366249210946076510865182321867969669615858559311570964001921:32:877 14996399027723545432637053306484571366249210946076510865182321867969669615858559311570964001922:32:877 15553370194035278080755307044996372217922322330497787708519175796666624558153550544188227977215:32:877 15553370194035278080755307044996372217922322330497787708519175796666624558153550544188227977216:32:878 15553370194035278080755307044996372217922322330497787708519175796666624558153550544188227977217:32:878 16130357853540800606222662047757379561780321827631887847414664494519991866332005087582919754240:32:878 16130357853540800606222662047757379561780321827631887847414664494519991866332005087582919754241:32:879 16130357853540800606222662047757379561780321827631887847414664494519991866332005087582919754242:32:879 16728057352706872167923455189196905004352164099471436494248345599999999999999999999999999999999:32:879 16728057352706872167923455189196905004352164099471436494248345600000000000000000000000000000000:32:880 16728057352706872167923455189196905004352164099471436494248345600000000000000000000000000000001:32:880 17347187361313703753279132710084481154303346417109638827019182206486220246808336963001195650560:32:880 17347187361313703753279132710084481154303346417109638827019182206486220246808336963001195650561:32:881 17347187361313703753279132710084481154303346417109638827019182206486220246808336963001195650562:32:881 17988490626919526979370121918060630082031986068402058602824521227780542430121003327656690712575:32:881 17988490626919526979370121918060630082031986068402058602824521227780542430121003327656690712576:32:882 17988490626919526979370121918060630082031986068402058602824521227780542430121003327656690712577:32:882 18652734752831952838012600488014620963168080547960406285848279601405532110983568885690897016960:32:882 18652734752831952838012600488014620963168080547960406285848279601405532110983568885690897016961:32:883 18652734752831952838012600488014620963168080547960406285848279601405532110983568885690897016962:32:883 19340713000290583249666488520466237670402667135259515810819302389489295084892166139491601350655:32:883 19340713000290583249666488520466237670402667135259515810819302389489295084892166139491601350656:32:884 19340713000290583249666488520466237670402667135259515810819302389489295084892166139491601350657:32:884 20053245115585614690204267511903808394387170310894029277795930764704167866148054599761962890624:32:884 20053245115585614690204267511903808394387170310894029277795930764704167866148054599761962890625:32:885 20053245115585614690204267511903808394387170310894029277795930764704167866148054599761962890626:32:885 20791178182858009178135665608750484853137885249227650900727547997404760478360974538638985527295:32:885 20791178182858009178135665608750484853137885249227650900727547997404760478360974538638985527296:32:886 20791178182858009178135665608750484853137885249227650900727547997404760478360974538638985527297:32:886 21555387503348218342866408385041953382794507976654830681238754496363354808199813480456901479680:32:886 21555387503348218342866408385041953382794507976654830681238754496363354808199813480456901479681:32:887 21555387503348218342866408385041953382794507976654830681238754496363354808199813480456901479682:32:887 22346777501882446295177868934109724948867060053970411844354294519773449645753809187588492230655:32:887 22346777501882446295177868934109724948867060053970411844354294519773449645753809187588492230656:32:888 22346777501882446295177868934109724948867060053970411844354294519773449645753809187588492230657:32:888 23166282661408042129740367427334266342658273545790342026538776297058919580397557754435699813120:32:888 23166282661408042129740367427334266342658273545790342026538776297058919580397557754435699813121:32:889 23166282661408042129740367427334266342658273545790342026538776297058919580397557754435699813122:32:889 24014868486412839037879446832492321908386631777812839861337472099999999999999999999999999999999:32:889 24014868486412839037879446832492321908386631777812839861337472100000000000000000000000000000000:32:890 24014868486412839037879446832492321908386631777812839861337472100000000000000000000000000000001:32:890 24893532496087120529534258131112223841178316935674743953926966719116287293154601928105837150080:32:890 24893532496087120529534258131112223841178316935674743953926966719116287293154601928105837150081:32:891 24893532496087120529534258131112223841178316935674743953926966719116287293154601928105837150082:32:891 25803305248111411899294272567901735279030127376530853283688679545649867553749441048236036980735:32:891 25803305248111411899294272567901735279030127376530853283688679545649867553749441048236036980736:32:892 25803305248111411899294272567901735279030127376530853283688679545649867553749441048236036980737:32:892 26745251393978483985702029741018553892132816829432911179638493049121004012258960047013112540800:32:892 26745251393978483985702029741018553892132816829432911179638493049121004012258960047013112540801:32:893 26745251393978483985702029741018553892132816829432911179638493049121004012258960047013112540802:32:893 27720470766783834059061412041531343624081929397998249127861571143059830375523382707217168859135:32:893 27720470766783834059061412041531343624081929397998249127861571143059830375523382707217168859136:32:894 27720470766783834059061412041531343624081929397998249127861571143059830375523382707217168859137:32:894 28730099502445493364742229821737010328631188250749037288787976209776118420995771884918212890624:32:894 28730099502445493364742229821737010328631188250749037288787976209776118420995771884918212890625:32:895 28730099502445493364742229821737010328631188250749037288787976209776118420995771884918212890626:32:895 29775311195341320931443710291592187248092342830305583789051574577468045777068507520837055676415:32:895 29775311195341320931443710291592187248092342830305583789051574577468045777068507520837055676416:32:896 29775311195341320931443710291592187248092342830305583789051574577468045777068507520837055676417:32:896 30857318089379997673921936178322322258898135869367872564094422165599485318726662063242673418240:32:896 30857318089379997673921936178322322258898135869367872564094422165599485318726662063242673418241:32:897 30857318089379997673921936178322322258898135869367872564094422165599485318726662063242673418242:32:897 31977372305550752996980033547742975268661402484947694784284373289810450813743023797841896144895:32:897 31977372305550752996980033547742975268661402484947694784284373289810450813743023797841896144896:32:898 31977372305550752996980033547742975268661402484947694784284373289810450813743023797841896144897:32:898 33136767107026457945826850139521504984849808329502777542593407279210675618721049347500561731200:32:898 33136767107026457945826850139521504984849808329502777542593407279210675618721049347500561731201:32:899 33136767107026457945826850139521504984849808329502777542593407279210675618721049347500561731202:32:899 34336838202925124846578490892809999999999999999999999999999999999999999999999999999999999999999:32:899 34336838202925124846578490892810000000000000000000000000000000000000000000000000000000000000000:32:900 34336838202925124846578490892810000000000000000000000000000000000000000000000000000000000000001:32:900 35578965091866084246407999755206862031379119855471938203485702873458085502340163183212241788800:32:900 35578965091866084246407999755206862031379119855471938203485702873458085502340163183212241788801:32:901 35578965091866084246407999755206862031379119855471938203485702873458085502340163183212241788802:32:901 36864572446489187221725661108185076446853547721382240077703909115302217581468401051869114269695:32:901 36864572446489187221725661108185076446853547721382240077703909115302217581468401051869114269696:32:902 36864572446489187221725661108185076446853547721382240077703909115302217581468401051869114269697:32:902 38195131540138326732565802366982450509035437734030459827829909086284886295027231957722068765440:32:902 38195131540138326732565802366982450509035437734030459827829909086284886295027231957722068765441:32:903 38195131540138326732565802366982450509035437734030459827829909086284886295027231957722068765442:32:903 39572161716944408164101442085081555751176184043356415231387760266641827285041651071424518946815:32:903 39572161716944408164101442085081555751176184043356415231387760266641827285041651071424518946816:32:904 39572161716944408164101442085081555751176184043356415231387760266641827285041651071424518946817:32:904 40997231906577649571070367601234524550521871970030719642470143451290115737356245517730712890624:32:904 40997231906577649571070367601234524550521871970030719642470143451290115737356245517730712890625:32:905 40997231906577649571070367601234524550521871970030719642470143451290115737356245517730712890626:32:905 42471962184974780057321080852513438304327119142635897124767214351325596912724653183004611444735:32:905 42471962184974780057321080852513438304327119142635897124767214351325596912724653183004611444736:32:906 42471962184974780057321080852513438304327119142635897124767214351325596912724653183004611444737:32:906 43998025382383354393849068058391047550300922219507983881634510725507020657410522278469334537600:32:906 43998025382383354393849068058391047550300922219507983881634510725507020657410522278469334537601:32:907 43998025382383354393849068058391047550300922219507983881634510725507020657410522278469334537602:32:907 45577148740103038215245545033223503923228316083730732079300807946961165122076250240239519399935:32:907 45577148740103038215245545033223503923228316083730732079300807946961165122076250240239519399936:32:908 45577148740103038215245545033223503923228316083730732079300807946961165122076250240239519399937:32:908 47211115617342366358610036083271244867091582732254705082949273534465358469202334917127528548480:32:908 47211115617342366358610036083271244867091582732254705082949273534465358469202334917127528548481:32:909 47211115617342366358610036083271244867091582732254705082949273534465358469202334917127528548482:32:909 48901767249649163168779990139231487573210910027359514540986048099999999999999999999999999999999:32:909 48901767249649163168779990139231487573210910027359514540986048100000000000000000000000000000000:32:910 48901767249649163168779990139231487573210910027359514540986048100000000000000000000000000000001:32:910 50651004560413564577900854375222275427083017486127805882147319115557706888798701804720988126720:32:910 50651004560413564577900854375222275427083017486127805882147319115557706888798701804720988126721:32:911 50651004560413564577900854375222275427083017486127805882147319115557706888798701804720988126722:32:911 52460790026984424820216387937941593343189657204697134941525364532512423111262690906225252499455:32:911 52460790026984424820216387937941593343189657204697134941525364532512423111262690906225252499456:32:912 52460790026984424820216387937941593343189657204697134941525364532512423111262690906225252499457:32:912 54333149602982853779797857763477115932025363599053918094921737482467453239105983588890928570880:32:912 54333149602982853779797857763477115932025363599053918094921737482467453239105983588890928570881:32:913 54333149602982853779797857763477115932025363599053918094921737482467453239105983588890928570882:32:913 56270174698440742891725760134347770758756289959068748725514415491627270138789510961441533853695:32:913 56270174698440742891725760134347770758756289959068748725514415491627270138789510961441533853696:32:914 56270174698440742891725760134347770758756289959068748725514415491627270138789510961441533853697:32:914 58274024219437427630687933324744591661653162394452896651477670030310660623945295810699462890624:32:914 58274024219437427630687933324744591661653162394452896651477670030310660623945295810699462890625:32:915 58274024219437427630687933324744591661653162394452896651477670030310660623945295810699462890626:32:915 60346926668954133048892817423169422350235386260591460694496182444301203100180543606197642592255:32:915 60346926668954133048892817423169422350235386260591460694496182444301203100180543606197642592256:32:916 60346926668954133048892817423169422350235386260591460694496182444301203100180543606197642592257:32:916 62491182310713586427345265093844317270335619938704326649927741381133472465110174679832553957760:32:916 62491182310713586427345265093844317270335619938704326649927741381133472465110174679832553957761:32:917 62491182310713586427345265093844317270335619938704326649927741381133472465110174679832553957762:32:917 64709165397821189493664712604120155047136734361412556223914652762397762476888486599088224075775:32:917 64709165397821189493664712604120155047136734361412556223914652762397762476888486599088224075776:32:918 64709165397821189493664712604120155047136734361412556223914652762397762476888486599088224075777:32:918 67003326468074454219073710097073053642410964013272368640244911487693228971361483418388213704960:32:918 67003326468074454219073710097073053642410964013272368640244911487693228971361483418388213704961:32:919 67003326468074454219073710097073053642410964013272368640244911487693228971361483418388213704962:32:919 69376194707859054108751772592756375052522313927156962923485593599999999999999999999999999999999:32:919 69376194707859054108751772592756375052522313927156962923485593600000000000000000000000000000000:32:920 69376194707859054108751772592756375052522313927156962923485593600000000000000000000000000000001:32:920 71830380386602861122014108633889374894501055001196083334601214981479758455204151810198405123840:32:920 71830380386602861122014108633889374894501055001196083334601214981479758455204151810198405123841:32:921 71830380386602861122014108633889374894501055001196083334601214981479758455204151810198405123842:32:921 74368577363813761705800931489426524496897732268731395779602284236186103935214046204346043990015:32:921 74368577363813761705800931489426524496897732268731395779602284236186103935214046204346043990016:32:922 74368577363813761705800931489426524496897732268731395779602284236186103935214046204346043990017:32:922 76993565670782909545421678446409145209062608907009752200429205913670529031325427525805389237120:32:922 76993565670782909545421678446409145209062608907009752200429205913670529031325427525805389237121:32:923 76993565670782909545421678446409145209062608907009752200429205913670529031325427525805389237122:32:923 79708214169092414043210812023595302775050879479431134924453145256924692998393370533681510219775:32:923 79708214169092414043210812023595302775050879479431134924453145256924692998393370533681510219776:32:924 79708214169092414043210812023595302775050879479431134924453145256924692998393370533681510219777:32:924 82515483288125319625663083681373194315943895414331419636833064856773489736951887607574462890624:32:924 82515483288125319625663083681373194315943895414331419636833064856773489736951887607574462890625:32:925 82515483288125319625663083681373194315943895414331419636833064856773489736951887607574462890626:32:925 85418427843836140054207945696426211943835635103776075730988544925291998667266882562330225278975:32:925 85418427843836140054207945696426211943835635103776075730988544925291998667266882562330225278976:32:926 85418427843836140054207945696426211943835635103776075730988544925291998667266882562330225278977:32:926 88420199941102213200934640061924992544240739611979886473590879387951383676460299677905751198720:32:926 88420199941102213200934640061924992544240739611979886473590879387951383676460299677905751198721:32:927 88420199941102213200934640061924992544240739611979886473590879387951383676460299677905751198722:32:927 91524051962039775421887307343862193117346238578027803839716742631507070541268990732046398652415:32:927 91524051962039775421887307343862193117346238578027803839716742631507070541268990732046398652416:32:928 91524051962039775421887307343862193117346238578027803839716742631507070541268990732046398652417:32:928 94733339642733961859111694608231855508573552482323392995201170042066360305585095128821229040640:32:928 94733339642733961859111694608231855508573552482323392995201170042066360305585095128821229040641:32:929 94733339642733961859111694608231855508573552482323392995201170042066360305585095128821229040642:32:929 98051525240898961861315644620854411948833721385821346516356160099999999999999999999999999999999:32:929 98051525240898961861315644620854411948833721385821346516356160100000000000000000000000000000000:32:930 98051525240898961861315644620854411948833721385821346516356160100000000000000000000000000000001:32:930 101482180797053340378183790325343181643107012355071616513959329389228726159505988913972604140160:32:930 101482180797053340378183790325343181643107012355071616513959329389228726159505988913972604140161:32:931 101482180797053340378183790325343181643107012355071616513959329389228726159505988913972604140162:32:931 105028991491866120838204153329979917764717332061212217360732528277386544602428373137633759461375:32:931 105028991491866120838204153329979917764717332061212217360732528277386544602428373137633759461376:32:932 105028991491866120838204153329979917764717332061212217360732528277386544602428373137633759461377:32:932 108695759102401657907978228574946540160577712720496818348913707691491484436820330752694306444160:32:932 108695759102401657907978228574946540160577712720496818348913707691491484436820330752694306444161:32:933 108695759102401657907978228574946540160577712720496818348913707691491484436820330752694306444162:32:933 112486405560065655980842213953222860116799507314745029636325616451911898277752582237931287085055:32:933 112486405560065655980842213953222860116799507314745029636325616451911898277752582237931287085056:32:934 112486405560065655980842213953222860116799507314745029636325616451911898277752582237931287085057:32:934 116404976613130958692259211320792474626724418746818055521589709713386103534139692783355712890624:32:934 116404976613130958692259211320792474626724418746818055521589709713386103534139692783355712890625:32:935 116404976613130958692259211320792474626724418746818055521589709713386103534139692783355712890626:32:935 120455645596799994781812397463721118438151276173266728798177861866537957834758844870486074064895:32:935 120455645596799994781812397463721118438151276173266728798177861866537957834758844870486074064896:32:936 120455645596799994781812397463721118438151276173266728798177861866537957834758844870486074064897:32:936 124642717313841065950517501452493261123761301336567622230126221981761055129361496133372992180480:32:936 124642717313841065950517501452493261123761301336567622230126221981761055129361496133372992180481:32:937 124642717313841065950517501452493261123761301336567622230126221981761055129361496133372992180482:32:937 128970632028918053918629950634640399816729461574101484631059379393090355132382385833870262009855:32:937 128970632028918053918629950634640399816729461574101484631059379393090355132382385833870262009856:32:938 128970632028918053918629950634640399816729461574101484631059379393090355132382385833870262009857:32:938 133443969579817658808494210318079034539499128459383307009213904043319043271039698695877432795520:32:938 133443969579817658808494210318079034539499128459383307009213904043319043271039698695877432795521:32:939 133443969579817658808494210318079034539499128459383307009213904043319043271039698695877432795522:32:939 138067453608865012636523333829090523905150514711804933993765273599999999999999999999999999999999:32:939 138067453608865012636523333829090523905150514711804933993765273600000000000000000000000000000000:32:940 138067453608865012636523333829090523905150514711804933993765273600000000000000000000000000000001:32:940 142845955917907494745473588164580021004812642876338667136511480333625815210180339476346150935680:32:940 142845955917907494745473588164580021004812642876338667136511480333625815210180339476346150935681:32:941 142845955917907494745473588164580021004812642876338667136511480333625815210180339476346150935682:32:941 147784500950337866389092722033403448664404396555611983369584601252841298132789385557507924033535:32:941 147784500950337866389092722033403448664404396555611983369584601252841298132789385557507924033536:32:942 147784500950337866389092722033403448664404396555611983369584601252841298132789385557507924033537:32:942 152888270403721496670643631432797399694999984607787432354886097306960375936720024495312478272000:32:942 152888270403721496670643631432797399694999984607787432354886097306960375936720024495312478272001:32:943 152888270403721496670643631432797399694999984607787432354886097306960375936720024495312478272002:32:943 158162607976688530267857073440810796153434149171146824346003295187040879005021783441768013889535:32:943 158162607976688530267857073440810796153434149171146824346003295187040879005021783441768013889536:32:944 158162607976688530267857073440810796153434149171146824346003295187040879005021783441768013889537:32:944 163613024253850408871835706128035933638775284170768114423844868492299214028753340244293212890624:32:944 163613024253850408871835706128035933638775284170768114423844868492299214028753340244293212890625:32:945 163613024253850408871835706128035933638775284170768114423844868492299214028753340244293212890626:32:945 169245201732601264469157146128871004716238431426571363797830656207751509807453727754417933910015:32:945 169245201732601264469157146128871004716238431426571363797830656207751509807453727754417933910016:32:946 169245201732601264469157146128871004716238431426571363797830656207751509807453727754417933910017:32:946 175064999995768416400355751700455898303513547656241801406058028878062768869749658566488445223040:32:946 175064999995768416400355751700455898303513547656241801406058028878062768869749658566488445223041:32:947 175064999995768416400355751700455898303513547656241801406058028878062768869749658566488445223042:32:947 181078461034182589914907029473908053528282618353905825163004671795537504432984144856853927428095:32:947 181078461034182589914907029473908053528282618353905825163004671795537504432984144856853927428096:32:948 181078461034182589914907029473908053528282618353905825163004671795537504432984144856853927428097:32:948 187291814723347597612404533090371697333062506371957169722284158226004749109450139093322617609600:32:948 187291814723347597612404533090371697333062506371957169722284158226004749109450139093322617609601:32:949 187291814723347597612404533090371697333062506371957169722284158226004749109450139093322617609602:32:949 193711484458501154164385368361933899386229459196329116821289062499999999999999999999999999999999:32:949 193711484458501154164385368361933899386229459196329116821289062500000000000000000000000000000000:32:950 193711484458501154164385368361933899386229459196329116821289062500000000000000000000000000000001:32:950 200344092952473298091670334733594505051107614467358590026696140544542305452877317771967777670400:32:950 200344092952473298091670334733594505051107614467358590026696140544542305452877317771967777670401:32:951 200344092952473298091670334733594505051107614467358590026696140544542305452877317771967777670402:32:951 207196468200866642792088603883667568289789389582481590289921480734493278623176112635246853226495:32:951 207196468200866642792088603883667568289789389582481590289921480734493278623176112635246853226496:32:952 207196468200866642792088603883667568289789389582481590289921480734493278623176112635246853226497:32:952 214275649619203444796914974870630255268635426466286338351257758165758361403082040605458789200640:32:952 214275649619203444796914974870630255268635426466286338351257758165758361403082040605458789200641:32:953 214275649619203444796914974870630255268635426466286338351257758165758361403082040605458789200642:32:953 221588894356808334402210171003026006846447593379238718533242136563217058512639723089162158473215:32:953 221588894356808334402210171003026006846447593379238718533242136563217058512639723089162158473216:32:954 221588894356808334402210171003026006846447593379238718533242136563217058512639723089162158473217:32:954 229143683792322578129533043065542262611011560398165481576842596979917764686979353427886962890624:32:954 229143683792322578129533043065542262611011560398165481576842596979917764686979353427886962890625:32:955 229143683792322578129533043065542262611011560398165481576842596979917764686979353427886962890626:32:955 236947730215876011449041525309900480706404959054913543154518501008461356061059548835577212174335:32:955 236947730215876011449041525309900480706404959054913543154518501008461356061059548835577212174336:32:956 236947730215876011449041525309900480706404959054913543154518501008461356061059548835577212174337:32:956 245008983703076373190117165788354085337550683487742169090880679288160041008211105425079197046400:32:956 245008983703076373190117165788354085337550683487742169090880679288160041008211105425079197046401:32:957 245008983703076373190117165788354085337550683487742169090880679288160041008211105425079197046402:32:957 253335639186112771267529380429842419581816653973134019378186444020964790663934239860846426587135:32:957 253335639186112771267529380429842419581816653973134019378186444020964790663934239860846426587136:32:958 253335639186112771267529380429842419581816653973134019378186444020964790663934239860846426587137:32:958 261936143727410495857190937620195092120866643753805393440384022579437550044995827183455238522880:32:958 261936143727410495857190937620195092120866643753805393440384022579437550044995827183455238522881:32:959 261936143727410495857190937620195092120866643753805393440384022579437550044995827183455238522882:32:959 270819204001418455994513436375822040332991505984743483282921881599999999999999999999999999999999:32:959 270819204001418455994513436375822040332991505984743483282921881600000000000000000000000000000000:32:960 270819204001418455994513436375822040332991505984743483282921881600000000000000000000000000000001:32:960 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904320:32:960 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904321:32:961 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904322:32:961 289469162899115235700351859912621344059428791114016971968530597743843050190164618023130948960255:32:961 289469162899115235700351859912621344059428791114016971968530597743843050190164618023130948960256:32:962 289469162899115235700351859912621344059428791114016971968530597743843050190164618023130948960257:32:962 299254843297407675441922138405959238958918231670452907432034825634171889541464000061112914110080:32:962 299254843297407675441922138405959238958918231670452907432034825634171889541464000061112914110081:32:963 299254843297407675441922138405959238958918231670452907432034825634171889541464000061112914110082:32:963 309360659491928476662282919063366359213660440152941260173366689726085957000166177774924355076095:32:963 309360659491928476662282919063366359213660440152941260173366689726085957000166177774924355076096:32:964 309360659491928476662282919063366359213660440152941260173366689726085957000166177774924355076097:32:964 319796736138318319077789496607698280137209722157620798990346161814683675789274275302886962890624:32:964 319796736138318319077789496607698280137209722157620798990346161814683675789274275302886962890625:32:965 319796736138318319077789496607698280137209722157620798990346161814683675789274275302886962890626:32:965 330573507097395561069551969174306528935704670754659614244469660120825611286884576141616250617855:32:965 330573507097395561069551969174306528935704670754659614244469660120825611286884576141616250617856:32:966 330573507097395561069551969174306528935704670754659614244469660120825611286884576141616250617857:32:966 341701724543040342858492851929475391980903630195909920430201845363811152897307724063008228770560:32:966 341701724543040342858492851929475391980903630195909920430201845363811152897307724063008228770561:32:967 341701724543040342858492851929475391980903630195909920430201845363811152897307724063008228770562:32:967 353192468328506144766721078760455262545510163904046970668290190173658332133858200439328893566975:32:967 353192468328506144766721078760455262545510163904046970668290190173658332133858200439328893566976:32:968 353192468328506144766721078760455262545510163904046970668290190173658332133858200439328893566977:32:968 365057155618212461013897911430030601712023636718343474163232013363913706849735663655596780975360:32:968 365057155618212461013897911430030601712023636718343474163232013363913706849735663655596780975361:32:969 365057155618212461013897911430030601712023636718343474163232013363913706849735663655596780975362:32:969 377307550792257177527374435233352562440923795716657015785926144099999999999999999999999999999999:32:969 377307550792257177527374435233352562440923795716657015785926144100000000000000000000000000000000:32:970 377307550792257177527374435233352562440923795716657015785926144100000000000000000000000000000001:32:970 389955775631076819796676367509280834708455731920922181111269211596890757939873291648363783597440:32:970 389955775631076819796676367509280834708455731920922181111269211596890757939873291648363783597441:32:971 389955775631076819796676367509280834708455731920922181111269211596890757939873291648363783597442:32:971 403014319787877175788484987737124489971462671705521774729797375233428182324401262165604555554815:32:971 403014319787877175788484987737124489971462671705521774729797375233428182324401262165604555554816:32:972 403014319787877175788484987737124489971462671705521774729797375233428182324401262165604555554817:32:972 416496051556656013843574104753947907631582283249973690604515374215084330538314374733473782280320:32:972 416496051556656013843574104753947907631582283249973690604515374215084330538314374733473782280321:32:973 416496051556656013843574104753947907631582283249973690604515374215084330538314374733473782280322:32:973 430414228943843823418496130349634458489434886859281190434447534145276821944753291138253692338175:32:973 430414228943843823418496130349634458489434886859281190434447534145276821944753291138253692338176:32:974 430414228943843823418496130349634458489434886859281190434447534145276821944753291138253692338177:32:974 444782511051797827316397533132785279679088924916636181051965426291872063302434980869293212890624:32:974 444782511051797827316397533132785279679088924916636181051965426291872063302434980869293212890625:32:975 444782511051797827316397533132785279679088924916636181051965426291872063302434980869293212890626:32:975 459614969782599070224191213876973409637796137770053464816871405868116039824843610159905637400575:32:975 459614969782599070224191213876973409637796137770053464816871405868116039824843610159905637400576:32:976 459614969782599070224191213876973409637796137770053464816871405868116039824843610159905637400577:32:976 474926101870822305295251554947648294664208641206122912158089782998909396417599649082614351915520:32:976 474926101870822305295251554947648294664208641206122912158089782998909396417599649082614351915521:32:977 474926101870822305295251554947648294664208641206122912158089782998909396417599649082614351915522:32:977 490730841254173806413782702778530766847020891912861503257745382469170195074108520369635108847615:32:977 490730841254173806413782702778530766847020891912861503257745382469170195074108520369635108847616:32:978 490730841254173806413782702778530766847020891912861503257745382469170195074108520369635108847617:32:978 507044571791123259805696057065055572918066123076786741458062201831636988249002672760912368807040:32:978 507044571791123259805696057065055572918066123076786741458062201831636988249002672760912368807041:32:979 507044571791123259805696057065055572918066123076786741458062201831636988249002672760912368807042:32:979 523883140334892668972443740778836271071494169665108966427433369599999999999999999999999999999999:32:979 523883140334892668972443740778836271071494169665108966427433369600000000000000000000000000000000:32:980 523883140334892668972443740778836271071494169665108966427433369600000000000000000000000000000001:32:980 541262870173407878729783347324319521349854154446932372978621133905692255423274632483786427109760:32:980 541262870173407878729783347324319521349854154446932372978621133905692255423274632483786427109761:32:981 541262870173407878729783347324319521349854154446932372978621133905692255423274632483786427109762:32:981 559200574845067027770202648646845942237736930915084885660117261055635084699689310986773175730175:32:981 559200574845067027770202648646845942237736930915084885660117261055635084699689310986773175730176:32:982 559200574845067027770202648646845942237736930915084885660117261055635084699689310986773175730177:32:982 577713572340435118167257401434835389954501551003237731746503418436748530409255498317783001391360:32:982 577713572340435118167257401434835389954501551003237731746503418436748530409255498317783001391361:32:983 577713572340435118167257401434835389954501551003237731746503418436748530409255498317783001391362:32:983 596819699700235091397484456321090223925096109780874388584068374637698775626027548136245041299455:32:983 596819699700235091397484456321090223925096109780874388584068374637698775626027548136245041299456:32:984 596819699700235091397484456321090223925096109780874388584068374637698775626027548136245041299457:32:984 616537328020273473900286828977034633482141896893821768664440087516972586535848677158355712890624:32:984 616537328020273473900286828977034633482141896893821768664440087516972586535848677158355712890625:32:985 616537328020273473900286828977034633482141896893821768664440087516972586535848677158355712890626:32:985 636885377874212954464234741048801831144047546238054630580849295741502650690852152039208959082495:32:985 636885377874212954464234741048801831144047546238054630580849295741502650690852152039208959082496:32:986 636885377874212954464234741048801831144047546238054630580849295741502650690852152039208959082497:32:986 657883335165385337835828855978881135589893995900437764004035180110937786253863444768245904401280:32:986 657883335165385337835828855978881135589893995900437764004035180110937786253863444768245904401281:32:987 657883335165385337835828855978881135589893995900437764004035180110937786253863444768245904401282:32:987 679551267419126344465650501403639965990532422300381819090627276515404255046588708844998603309055:32:987 679551267419126344465650501403639965990532422300381819090627276515404255046588708844998603309056:32:988 679551267419126344465650501403639965990532422300381819090627276515404255046588708844998603309057:32:988 701909840527408859440951580493594412108479042491014027651565226559028718741984120009219212257920:32:988 701909840527408859440951580493594412108479042491014027651565226559028718741984120009219212257921:32:989 701909840527408859440951580493594412108479042491014027651565226559028718741984120009219212257922:32:989 724980335957853642317687791979612314901848004731858183104495680099999999999999999999999999999999:32:989 724980335957853642317687791979612314901848004731858183104495680100000000000000000000000000000000:32:990 724980335957853642317687791979612314901848004731858183104495680100000000000000000000000000000001:32:990 748784668439506365463904087972187508633674032319177443281714491336805026793231587269288783201280:32:990 748784668439506365463904087972187508633674032319177443281714491336805026793231587269288783201281:32:991 748784668439506365463904087972187508633674032319177443281714491336805026793231587269288783201282:32:991 773345404138087327237526377312753605064634728024530142788906254579601223133232878270152846606335:32:991 773345404138087327237526377312753605064634728024530142788906254579601223133232878270152846606336:32:992 773345404138087327237526377312753605064634728024530142788906254579601223133232878270152846606337:32:992 798685779333745467377705076657977675465275774050046064114195187241223293517196671118416441523200:32:992 798685779333745467377705076657977675465275774050046064114195187241223293517196671118416441523201:32:993 798685779333745467377705076657977675465275774050046064114195187241223293517196671118416441523202:32:993 824829719614681578962993303066134296836093757558391583840884866733635508710519628871813023399935:32:993 824829719614681578962993303066134296836093757558391583840884866733635508710519628871813023399936:32:994 824829719614681578962993303066134296836093757558391583840884866733635508710519628871813023399937:32:994 851801859600347051882024337780413744965975697222372382482865480155214518331922590732574462890624:32:994 851801859600347051882024337780413744965975697222372382482865480155214518331922590732574462890625:32:995 851801859600347051882024337780413744965975697222372382482865480155214518331922590732574462890626:32:995 879627563208274288888756467023495898859121742936444302759047349559891663562908883460257392623615:32:995 879627563208274288888756467023495898859121742936444302759047349559891663562908883460257392623616:32:996 879627563208274288888756467023495898859121742936444302759047349559891663562908883460257392623617:32:996 908332944478953303196416004195172526463896445264047890469015435404365616920536793563605006547840:32:996 908332944478953303196416004195172526463896445264047890469015435404365616920536793563605006547841:32:997 908332944478953303196416004195172526463896445264047890469015435404365616920536793563605006547842:32:997 937944888973536136821611613634453611386688472810767042598391287802053023314970922543709522231295:32:997 937944888973536136821611613634453611386688472810767042598391287802053023314970922543709522231296:32:998 937944888973536136821611613634453611386688472810767042598391287802053023314970922543709522231297:32:998 968491075759526836634315583440965937270477795138368452063880004201714935049990659955040495968000:32:998 968491075759526836634315583440965937270477795138368452063880004201714935049990659955040495968001:32:999 968491075759526836634315583440965937270477795138368452063880004201714935049990659955040495968002:32:999 0:64:0 1:64:1 2:64:1 18446744073709551615:64:1 18446744073709551616:64:2 18446744073709551617:64:2 3433683820292512484657849089280:64:2 3433683820292512484657849089281:64:3 3433683820292512484657849089282:64:3 340282366920938463463374607431768211455:64:3 340282366920938463463374607431768211456:64:4 340282366920938463463374607431768211457:64:4 542101086242752217003726400434970855712890624:64:4 542101086242752217003726400434970855712890625:64:5 542101086242752217003726400434970855712890626:64:5 63340286662973277706162286946811886609896461828095:64:5 63340286662973277706162286946811886609896461828096:64:6 63340286662973277706162286946811886609896461828097:64:6 1219760487635835700138573862562971820755615294131238400:64:6 1219760487635835700138573862562971820755615294131238401:64:7 1219760487635835700138573862562971820755615294131238402:64:7 6277101735386680763835789423207666416102355444464034512895:64:7 6277101735386680763835789423207666416102355444464034512896:64:8 6277101735386680763835789423207666416102355444464034512897:64:8 11790184577738583171520872861412518665678211592275841109096960:64:8 11790184577738583171520872861412518665678211592275841109096961:64:9 11790184577738583171520872861412518665678211592275841109096962:64:9 4457915684525902395869512133369841539490161434991526715513934826240:64:10 4457915684525902395869512133369841539490161434991526715513934826241:64:11 4457915684525902395869512133369841539490161434991526715513934826242:64:11 1168422057627266461843148138873451659428421700563161428957815831003135:64:11 1168422057627266461843148138873451659428421700563161428957815831003136:64:12 1168422057627266461843148138873451659428421700563161428957815831003137:64:12 196053476430761073330659760423566015424403280004115787589590963842248960:64:12 196053476430761073330659760423566015424403280004115787589590963842248961:64:13 196053476430761073330659760423566015424403280004115787589590963842248962:64:13 22500609546641425009067997918450033531906583365663182830821882796510806015:64:13 22500609546641425009067997918450033531906583365663182830821882796510806016:64:14 22500609546641425009067997918450033531906583365663182830821882796510806017:64:14 1861403728794734215467410604755702820123364205073812627233564853668212890624:64:14 1861403728794734215467410604755702820123364205073812627233564853668212890625:64:15 1861403728794734215467410604755702820123364205073812627233564853668212890626:64:15 115792089237316195423570985008687907853269984665640564039457584007913129639935:64:15 115792089237316195423570985008687907853269984665640564039457584007913129639936:64:16 115792089237316195423570985008687907853269984665640564039457584007913129639937:64:16 5607005320601059253161325667991103602003892399764752527847859167616581809464320:64:16 5607005320601059253161325667991103602003892399764752527847859167616581809464321:64:17 5607005320601059253161325667991103602003892399764752527847859167616581809464322:64:17 217490517487340961382742893166950969620647214876916403331613367885781133978238975:64:17 217490517487340961382742893166950969620647214876916403331613367885781133978238976:64:18 217490517487340961382742893166950969620647214876916403331613367885781133978238977:64:18 6921981926137087576636956665404142898527372227760574567236831247644037253481253120:64:18 6921981926137087576636956665404142898527372227760574567236831247644037253481253121:64:19 6921981926137087576636956665404142898527372227760574567236831247644037253481253122:64:19 184467440737095516159999999999999999999999999999999999999999999999999999999999999999:64:19 184467440737095516160000000000000000000000000000000000000000000000000000000000000000:64:20 184467440737095516160000000000000000000000000000000000000000000000000000000000000001:64:20 4188271851027274266670020743752976432915773724299403513508038881183728210190544679680:64:20 4188271851027274266670020743752976432915773724299403513508038881183728210190544679681:64:21 4188271851027274266670020743752976432915773724299403513508038881183728210190544679682:64:21 82234029734625049113929522866489193994903509482752292106926951132169536346070980755455:64:21 82234029734625049113929522866489193994903509482752292106926951132169536346070980755456:64:22 82234029734625049113929522866489193994903509482752292106926951132169536346070980755457:64:22 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189440:64:22 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189441:64:23 1414430149788231852676288931564393259755477871188002418354492595462286094183104888189442:64:23 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867775:64:23 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867776:64:24 21553582667127297807356245630088233396078302617053397105733859049568556071131586049867777:64:24 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890624:64:24 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890625:64:25 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890626:64:25 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870975:64:25 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870976:64:26 3616548304479297085365330736464680499909051895704748593486634912486670341490423472351870977:64:26 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775040:64:26 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775041:64:27 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775042:64:27 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321855:64:27 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321856:64:28 415062985809360267707103512343871505978269880598046213386923958484549497502527584738115321857:64:28 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844480:64:28 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844481:64:29 3921677400976661174604525977662760320736047149132988644620907076910449362913460284721921844482:64:29 34336838202925124846578490892809999999999999999999999999999999999999999999999999999999999999999:64:29 34336838202925124846578490892810000000000000000000000000000000000000000000000000000000000000000:64:30 34336838202925124846578490892810000000000000000000000000000000000000000000000000000000000000001:64:30 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904320:64:30 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904321:64:31 279993793990258235750468749959300213014699042596341116563305503247751586492770004816505534904322:64:31 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936575:64:31 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576:64:32 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936577:64:32 15307072958184811420872246488959899899488864500972168001373202692974419469010486491951430830622720:64:32 15307072958184811420872246488959899899488864500972168001373202692974419469010486491951430830622721:64:33 15307072958184811420872246488959899899488864500972168001373202692974419469010486491951430830622722:64:33 103430992169055514261928570463230027923419620082715477977932461721944427504778339203021046059892735:64:33 103430992169055514261928570463230027923419620082715477977932461721944427504778339203021046059892736:64:34 103430992169055514261928570463230027923419620082715477977932461721944427504778339203021046059892737:64:34 661233485303375668149836762254674220999159684294975425898101273336493477472686208784580230712890624:64:34 661233485303375668149836762254674220999159684294975425898101273336493477472686208784580230712890625:64:35 661233485303375668149836762254674220999159684294975425898101273336493477472686208784580230712890626:64:35 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985215:64:35 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985216:64:36 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985217:64:36 23169162752708970943114627382699355445603465075569066753527132965271355336698663689946873706000418560:64:36 23169162752708970943114627382699355445603465075569066753527132965271355336698663689946873706000418561:64:37 23169162752708970943114627382699355445603465075569066753527132965271355336698663689946873706000418562:64:37 127688029074293947501423076767837993610314324957452205945691592550050233685931627452391326610710593535:64:37 127688029074293947501423076767837993610314324957452205945691592550050233685931627452391326610710593536:64:38 127688029074293947501423076767837993610314324957452205945691592550050233685931627452391326610710593537:64:38 673185649932403737297890905782282584289266743784352980962012428668359723972447905487459603544718487040:64:38 673185649932403737297890905782282584289266743784352980962012428668359723972447905487459603544718487041:64:39 673185649932403737297890905782282584289266743784352980962012428668359723972447905487459603544718487042:64:39 3402823669209384634633746074317682114559999999999999999999999999999999999999999999999999999999999999999:64:39 3402823669209384634633746074317682114560000000000000000000000000000000000000000000000000000000000000000:64:40 3402823669209384634633746074317682114560000000000000000000000000000000000000000000000000000000000000001:64:40 16525965054224229836186278655106620199924768865813137314166732326916347228274400480084130733500669084160:64:40 16525965054224229836186278655106620199924768865813137314166732326916347228274400480084130733500669084161:64:41 16525965054224229836186278655106620199924768865813137314166732326916347228274400480084130733500669084162:64:41 77259978947021905600184340317603197947481177389714460678206771900175196402510074614992658926100855914495:64:41 77259978947021905600184340317603197947481177389714460678206771900175196402510074614992658926100855914496:64:42 77259978947021905600184340317603197947481177389714460678206771900175196402510074614992658926100855914497:64:42 0:128:0 1:128:1 2:128:1 340282366920938463463374607431768211455:128:1 340282366920938463463374607431768211456:128:2 340282366920938463463374607431768211457:128:2 11790184577738583171520872861412518665678211592275841109096960:128:2 11790184577738583171520872861412518665678211592275841109096961:128:3 11790184577738583171520872861412518665678211592275841109096962:128:3 115792089237316195423570985008687907853269984665640564039457584007913129639935:128:3 115792089237316195423570985008687907853269984665640564039457584007913129639936:128:4 115792089237316195423570985008687907853269984665640564039457584007913129639937:128:4 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890624:128:4 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890625:128:5 293873587705571876992184134305561419454666389193021880377187926569604314863681793212890626:128:5 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985215:128:5 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985216:128:6 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985217:128:6 0:256:0 1:256:1 2:256:1 115792089237316195423570985008687907853269984665640564039457584007913129639935:256:1 115792089237316195423570985008687907853269984665640564039457584007913129639936:256:2 115792089237316195423570985008687907853269984665640564039457584007913129639937:256:2 # Each line contains x:y:z, where x is close to, or exactly equal to, z^y. # # Number of test cases: 12867. 1727:3:11 1728:3:12 1729:3:12 2196:3:12 2197:3:13 2198:3:13 2743:3:13 2744:3:14 2745:3:14 3374:3:14 3375:3:15 3376:3:15 4095:3:15 4096:3:16 4097:3:16 4912:3:16 4913:3:17 4914:3:17 5831:3:17 5832:3:18 5833:3:18 6858:3:18 6859:3:19 6860:3:19 7999:3:19 8000:3:20 8001:3:20 9260:3:20 9261:3:21 9262:3:21 10647:3:21 10648:3:22 10649:3:22 12166:3:22 12167:3:23 12168:3:23 13823:3:23 13824:3:24 13825:3:24 15624:3:24 15625:3:25 15626:3:25 17575:3:25 17576:3:26 17577:3:26 19682:3:26 19683:3:27 19684:3:27 21951:3:27 21952:3:28 21953:3:28 24388:3:28 24389:3:29 24390:3:29 26999:3:29 27000:3:30 27001:3:30 29790:3:30 29791:3:31 29792:3:31 32767:3:31 32768:3:32 32769:3:32 35936:3:32 35937:3:33 35938:3:33 39303:3:33 39304:3:34 39305:3:34 42874:3:34 42875:3:35 42876:3:35 46655:3:35 46656:3:36 46657:3:36 50652:3:36 50653:3:37 50654:3:37 54871:3:37 54872:3:38 54873:3:38 59318:3:38 59319:3:39 59320:3:39 63999:3:39 64000:3:40 64001:3:40 68920:3:40 68921:3:41 68922:3:41 74087:3:41 74088:3:42 74089:3:42 79506:3:42 79507:3:43 79508:3:43 85183:3:43 85184:3:44 85185:3:44 91124:3:44 91125:3:45 91126:3:45 97335:3:45 97336:3:46 97337:3:46 103822:3:46 103823:3:47 103824:3:47 110591:3:47 110592:3:48 110593:3:48 117648:3:48 117649:3:49 117650:3:49 124999:3:49 125000:3:50 125001:3:50 132650:3:50 132651:3:51 132652:3:51 140607:3:51 140608:3:52 140609:3:52 148876:3:52 148877:3:53 148878:3:53 157463:3:53 157464:3:54 157465:3:54 166374:3:54 166375:3:55 166376:3:55 175615:3:55 175616:3:56 175617:3:56 185192:3:56 185193:3:57 185194:3:57 195111:3:57 195112:3:58 195113:3:58 205378:3:58 205379:3:59 205380:3:59 215999:3:59 216000:3:60 216001:3:60 226980:3:60 226981:3:61 226982:3:61 238327:3:61 238328:3:62 238329:3:62 250046:3:62 250047:3:63 250048:3:63 262143:3:63 262144:3:64 262145:3:64 274624:3:64 274625:3:65 274626:3:65 287495:3:65 287496:3:66 287497:3:66 300762:3:66 300763:3:67 300764:3:67 314431:3:67 314432:3:68 314433:3:68 328508:3:68 328509:3:69 328510:3:69 342999:3:69 343000:3:70 343001:3:70 357910:3:70 357911:3:71 357912:3:71 373247:3:71 373248:3:72 373249:3:72 389016:3:72 389017:3:73 389018:3:73 405223:3:73 405224:3:74 405225:3:74 421874:3:74 421875:3:75 421876:3:75 438975:3:75 438976:3:76 438977:3:76 456532:3:76 456533:3:77 456534:3:77 474551:3:77 474552:3:78 474553:3:78 493038:3:78 493039:3:79 493040:3:79 511999:3:79 512000:3:80 512001:3:80 531440:3:80 531441:3:81 531442:3:81 551367:3:81 551368:3:82 551369:3:82 571786:3:82 571787:3:83 571788:3:83 592703:3:83 592704:3:84 592705:3:84 614124:3:84 614125:3:85 614126:3:85 636055:3:85 636056:3:86 636057:3:86 658502:3:86 658503:3:87 658504:3:87 681471:3:87 681472:3:88 681473:3:88 704968:3:88 704969:3:89 704970:3:89 728999:3:89 729000:3:90 729001:3:90 753570:3:90 753571:3:91 753572:3:91 778687:3:91 778688:3:92 778689:3:92 804356:3:92 804357:3:93 804358:3:93 830583:3:93 830584:3:94 830585:3:94 857374:3:94 857375:3:95 857376:3:95 884735:3:95 884736:3:96 884737:3:96 912672:3:96 912673:3:97 912674:3:97 941191:3:97 941192:3:98 941193:3:98 970298:3:98 970299:3:99 970300:3:99 3124:5:4 3125:5:5 3126:5:5 7775:5:5 7776:5:6 7777:5:6 16806:5:6 16807:5:7 16808:5:7 32767:5:7 32768:5:8 32769:5:8 59048:5:8 59049:5:9 59050:5:9 161050:5:10 161051:5:11 161052:5:11 248831:5:11 248832:5:12 248833:5:12 371292:5:12 371293:5:13 371294:5:13 537823:5:13 537824:5:14 537825:5:14 759374:5:14 759375:5:15 759376:5:15 1048575:5:15 1048576:5:16 1048577:5:16 1419856:5:16 1419857:5:17 1419858:5:17 1889567:5:17 1889568:5:18 1889569:5:18 2476098:5:18 2476099:5:19 2476100:5:19 3199999:5:19 3200000:5:20 3200001:5:20 4084100:5:20 4084101:5:21 4084102:5:21 5153631:5:21 5153632:5:22 5153633:5:22 6436342:5:22 6436343:5:23 6436344:5:23 7962623:5:23 7962624:5:24 7962625:5:24 9765624:5:24 9765625:5:25 9765626:5:25 11881375:5:25 11881376:5:26 11881377:5:26 14348906:5:26 14348907:5:27 14348908:5:27 17210367:5:27 17210368:5:28 17210369:5:28 20511148:5:28 20511149:5:29 20511150:5:29 24299999:5:29 24300000:5:30 24300001:5:30 28629150:5:30 28629151:5:31 28629152:5:31 33554431:5:31 33554432:5:32 33554433:5:32 39135392:5:32 39135393:5:33 39135394:5:33 45435423:5:33 45435424:5:34 45435425:5:34 52521874:5:34 52521875:5:35 52521876:5:35 60466175:5:35 60466176:5:36 60466177:5:36 69343956:5:36 69343957:5:37 69343958:5:37 79235167:5:37 79235168:5:38 79235169:5:38 90224198:5:38 90224199:5:39 90224200:5:39 102399999:5:39 102400000:5:40 102400001:5:40 115856200:5:40 115856201:5:41 115856202:5:41 130691231:5:41 130691232:5:42 130691233:5:42 147008442:5:42 147008443:5:43 147008444:5:43 164916223:5:43 164916224:5:44 164916225:5:44 184528124:5:44 184528125:5:45 184528126:5:45 205962975:5:45 205962976:5:46 205962977:5:46 229345006:5:46 229345007:5:47 229345008:5:47 254803967:5:47 254803968:5:48 254803969:5:48 282475248:5:48 282475249:5:49 282475250:5:49 312499999:5:49 312500000:5:50 312500001:5:50 345025250:5:50 345025251:5:51 345025252:5:51 380204031:5:51 380204032:5:52 380204033:5:52 418195492:5:52 418195493:5:53 418195494:5:53 459165023:5:53 459165024:5:54 459165025:5:54 503284374:5:54 503284375:5:55 503284376:5:55 550731775:5:55 550731776:5:56 550731777:5:56 601692056:5:56 601692057:5:57 601692058:5:57 656356767:5:57 656356768:5:58 656356769:5:58 714924298:5:58 714924299:5:59 714924300:5:59 777599999:5:59 777600000:5:60 777600001:5:60 844596300:5:60 844596301:5:61 844596302:5:61 916132831:5:61 916132832:5:62 916132833:5:62 992436542:5:62 992436543:5:63 992436544:5:63 1073741823:5:63 1073741824:5:64 1073741825:5:64 1160290624:5:64 1160290625:5:65 1160290626:5:65 1252332575:5:65 1252332576:5:66 1252332577:5:66 1350125106:5:66 1350125107:5:67 1350125108:5:67 1453933567:5:67 1453933568:5:68 1453933569:5:68 1564031348:5:68 1564031349:5:69 1564031350:5:69 1680699999:5:69 1680700000:5:70 1680700001:5:70 1804229350:5:70 1804229351:5:71 1804229352:5:71 1934917631:5:71 1934917632:5:72 1934917633:5:72 2073071592:5:72 2073071593:5:73 2073071594:5:73 2219006623:5:73 2219006624:5:74 2219006625:5:74 2373046874:5:74 2373046875:5:75 2373046876:5:75 2535525375:5:75 2535525376:5:76 2535525377:5:76 2706784156:5:76 2706784157:5:77 2706784158:5:77 2887174367:5:77 2887174368:5:78 2887174369:5:78 3077056398:5:78 3077056399:5:79 3077056400:5:79 3276799999:5:79 3276800000:5:80 3276800001:5:80 3486784400:5:80 3486784401:5:81 3486784402:5:81 3707398431:5:81 3707398432:5:82 3707398433:5:82 3939040642:5:82 3939040643:5:83 3939040644:5:83 4182119423:5:83 4182119424:5:84 4182119425:5:84 4437053124:5:84 4437053125:5:85 4437053126:5:85 4704270175:5:85 4704270176:5:86 4704270177:5:86 4984209206:5:86 4984209207:5:87 4984209208:5:87 5277319167:5:87 5277319168:5:88 5277319169:5:88 5584059448:5:88 5584059449:5:89 5584059450:5:89 5904899999:5:89 5904900000:5:90 5904900001:5:90 6240321450:5:90 6240321451:5:91 6240321452:5:91 6590815231:5:91 6590815232:5:92 6590815233:5:92 6956883692:5:92 6956883693:5:93 6956883694:5:93 7339040223:5:93 7339040224:5:94 7339040225:5:94 7737809374:5:94 7737809375:5:95 7737809376:5:95 8153726975:5:95 8153726976:5:96 8153726977:5:96 8587340256:5:96 8587340257:5:97 8587340258:5:97 9039207967:5:97 9039207968:5:98 9039207969:5:98 9509900498:5:98 9509900499:5:99 9509900500:5:99 4095:6:3 4096:6:4 4097:6:4 15624:6:4 15625:6:5 15626:6:5 46655:6:5 46656:6:6 46657:6:6 117648:6:6 117649:6:7 117650:6:7 262143:6:7 262144:6:8 262145:6:8 531440:6:8 531441:6:9 531442:6:9 1771560:6:10 1771561:6:11 1771562:6:11 2985983:6:11 2985984:6:12 2985985:6:12 4826808:6:12 4826809:6:13 4826810:6:13 7529535:6:13 7529536:6:14 7529537:6:14 11390624:6:14 11390625:6:15 11390626:6:15 16777215:6:15 16777216:6:16 16777217:6:16 24137568:6:16 24137569:6:17 24137570:6:17 34012223:6:17 34012224:6:18 34012225:6:18 47045880:6:18 47045881:6:19 47045882:6:19 63999999:6:19 64000000:6:20 64000001:6:20 85766120:6:20 85766121:6:21 85766122:6:21 113379903:6:21 113379904:6:22 113379905:6:22 148035888:6:22 148035889:6:23 148035890:6:23 191102975:6:23 191102976:6:24 191102977:6:24 244140624:6:24 244140625:6:25 244140626:6:25 308915775:6:25 308915776:6:26 308915777:6:26 387420488:6:26 387420489:6:27 387420490:6:27 481890303:6:27 481890304:6:28 481890305:6:28 594823320:6:28 594823321:6:29 594823322:6:29 728999999:6:29 729000000:6:30 729000001:6:30 887503680:6:30 887503681:6:31 887503682:6:31 1073741823:6:31 1073741824:6:32 1073741825:6:32 1291467968:6:32 1291467969:6:33 1291467970:6:33 1544804415:6:33 1544804416:6:34 1544804417:6:34 1838265624:6:34 1838265625:6:35 1838265626:6:35 2176782335:6:35 2176782336:6:36 2176782337:6:36 2565726408:6:36 2565726409:6:37 2565726410:6:37 3010936383:6:37 3010936384:6:38 3010936385:6:38 3518743760:6:38 3518743761:6:39 3518743762:6:39 4095999999:6:39 4096000000:6:40 4096000001:6:40 4750104240:6:40 4750104241:6:41 4750104242:6:41 5489031743:6:41 5489031744:6:42 5489031745:6:42 6321363048:6:42 6321363049:6:43 6321363050:6:43 7256313855:6:43 7256313856:6:44 7256313857:6:44 8303765624:6:44 8303765625:6:45 8303765626:6:45 9474296895:6:45 9474296896:6:46 9474296897:6:46 10779215328:6:46 10779215329:6:47 10779215330:6:47 12230590463:6:47 12230590464:6:48 12230590465:6:48 13841287200:6:48 13841287201:6:49 13841287202:6:49 15624999999:6:49 15625000000:6:50 15625000001:6:50 17596287800:6:50 17596287801:6:51 17596287802:6:51 19770609663:6:51 19770609664:6:52 19770609665:6:52 22164361128:6:52 22164361129:6:53 22164361130:6:53 24794911295:6:53 24794911296:6:54 24794911297:6:54 27680640624:6:54 27680640625:6:55 27680640626:6:55 30840979455:6:55 30840979456:6:56 30840979457:6:56 34296447248:6:56 34296447249:6:57 34296447250:6:57 38068692543:6:57 38068692544:6:58 38068692545:6:58 42180533640:6:58 42180533641:6:59 42180533642:6:59 46655999999:6:59 46656000000:6:60 46656000001:6:60 51520374360:6:60 51520374361:6:61 51520374362:6:61 56800235583:6:61 56800235584:6:62 56800235585:6:62 62523502208:6:62 62523502209:6:63 62523502210:6:63 68719476735:6:63 68719476736:6:64 68719476737:6:64 75418890624:6:64 75418890625:6:65 75418890626:6:65 82653950015:6:65 82653950016:6:66 82653950017:6:66 90458382168:6:66 90458382169:6:67 90458382170:6:67 98867482623:6:67 98867482624:6:68 98867482625:6:68 107918163080:6:68 107918163081:6:69 107918163082:6:69 117648999999:6:69 117649000000:6:70 117649000001:6:70 128100283920:6:70 128100283921:6:71 128100283922:6:71 139314069503:6:71 139314069504:6:72 139314069505:6:72 151334226288:6:72 151334226289:6:73 151334226290:6:73 164206490175:6:73 164206490176:6:74 164206490177:6:74 177978515624:6:74 177978515625:6:75 177978515626:6:75 192699928575:6:75 192699928576:6:76 192699928577:6:76 208422380088:6:76 208422380089:6:77 208422380090:6:77 225199600703:6:77 225199600704:6:78 225199600705:6:78 243087455520:6:78 243087455521:6:79 243087455522:6:79 262143999999:6:79 262144000000:6:80 262144000001:6:80 282429536480:6:80 282429536481:6:81 282429536482:6:81 304006671423:6:81 304006671424:6:82 304006671425:6:82 326940373368:6:82 326940373369:6:83 326940373370:6:83 351298031615:6:83 351298031616:6:84 351298031617:6:84 377149515624:6:84 377149515625:6:85 377149515626:6:85 404567235135:6:85 404567235136:6:86 404567235137:6:86 433626201008:6:86 433626201009:6:87 433626201010:6:87 464404086783:6:87 464404086784:6:88 464404086785:6:88 496981290960:6:88 496981290961:6:89 496981290962:6:89 531440999999:6:89 531441000000:6:90 531441000001:6:90 567869252040:6:90 567869252041:6:91 567869252042:6:91 606355001343:6:91 606355001344:6:92 606355001345:6:92 646990183448:6:92 646990183449:6:93 646990183450:6:93 689869781055:6:93 689869781056:6:94 689869781057:6:94 735091890624:6:94 735091890625:6:95 735091890626:6:95 782757789695:6:95 782757789696:6:96 782757789697:6:96 832972004928:6:96 832972004929:6:97 832972004930:6:97 885842380863:6:97 885842380864:6:98 885842380865:6:98 941480149400:6:98 941480149401:6:99 941480149402:6:99 2186:7:2 2187:7:3 2188:7:3 16383:7:3 16384:7:4 16385:7:4 78124:7:4 78125:7:5 78126:7:5 279935:7:5 279936:7:6 279937:7:6 823542:7:6 823543:7:7 823544:7:7 2097151:7:7 2097152:7:8 2097153:7:8 4782968:7:8 4782969:7:9 4782970:7:9 19487170:7:10 19487171:7:11 19487172:7:11 35831807:7:11 35831808:7:12 35831809:7:12 62748516:7:12 62748517:7:13 62748518:7:13 105413503:7:13 105413504:7:14 105413505:7:14 170859374:7:14 170859375:7:15 170859376:7:15 268435455:7:15 268435456:7:16 268435457:7:16 410338672:7:16 410338673:7:17 410338674:7:17 612220031:7:17 612220032:7:18 612220033:7:18 893871738:7:18 893871739:7:19 893871740:7:19 1279999999:7:19 1280000000:7:20 1280000001:7:20 1801088540:7:20 1801088541:7:21 1801088542:7:21 2494357887:7:21 2494357888:7:22 2494357889:7:22 3404825446:7:22 3404825447:7:23 3404825448:7:23 4586471423:7:23 4586471424:7:24 4586471425:7:24 6103515624:7:24 6103515625:7:25 6103515626:7:25 8031810175:7:25 8031810176:7:26 8031810177:7:26 10460353202:7:26 10460353203:7:27 10460353204:7:27 13492928511:7:27 13492928512:7:28 13492928513:7:28 17249876308:7:28 17249876309:7:29 17249876310:7:29 21869999999:7:29 21870000000:7:30 21870000001:7:30 27512614110:7:30 27512614111:7:31 27512614112:7:31 34359738367:7:31 34359738368:7:32 34359738369:7:32 42618442976:7:32 42618442977:7:33 42618442978:7:33 52523350143:7:33 52523350144:7:34 52523350145:7:34 64339296874:7:34 64339296875:7:35 64339296876:7:35 78364164095:7:35 78364164096:7:36 78364164097:7:36 94931877132:7:36 94931877133:7:37 94931877134:7:37 114415582591:7:37 114415582592:7:38 114415582593:7:38 137231006678:7:38 137231006679:7:39 137231006680:7:39 163839999999:7:39 163840000000:7:40 163840000001:7:40 194754273880:7:40 194754273881:7:41 194754273882:7:41 230539333247:7:41 230539333248:7:42 230539333249:7:42 271818611106:7:42 271818611107:7:43 271818611108:7:43 319277809663:7:43 319277809664:7:44 319277809665:7:44 373669453124:7:44 373669453125:7:45 373669453126:7:45 435817657215:7:45 435817657216:7:46 435817657217:7:46 506623120462:7:46 506623120463:7:47 506623120464:7:47 587068342271:7:47 587068342272:7:48 587068342273:7:48 678223072848:7:48 678223072849:7:49 678223072850:7:49 781249999999:7:49 781250000000:7:50 781250000001:7:50 897410677850:7:50 897410677851:7:51 897410677852:7:51 1028071702527:7:51 1028071702528:7:52 1028071702529:7:52 1174711139836:7:52 1174711139837:7:53 1174711139838:7:53 1338925209983:7:53 1338925209984:7:54 1338925209985:7:54 1522435234374:7:54 1522435234375:7:55 1522435234376:7:55 1727094849535:7:55 1727094849536:7:56 1727094849537:7:56 1954897493192:7:56 1954897493193:7:57 1954897493194:7:57 2207984167551:7:57 2207984167552:7:58 2207984167553:7:58 2488651484818:7:58 2488651484819:7:59 2488651484820:7:59 2799359999999:7:59 2799360000000:7:60 2799360000001:7:60 3142742836020:7:60 3142742836021:7:61 3142742836022:7:61 3521614606207:7:61 3521614606208:7:62 3521614606209:7:62 3938980639166:7:62 3938980639167:7:63 3938980639168:7:63 4398046511103:7:63 4398046511104:7:64 4398046511105:7:64 4902227890624:7:64 4902227890625:7:65 4902227890626:7:65 5455160701055:7:65 5455160701056:7:66 5455160701057:7:66 6060711605322:7:66 6060711605323:7:67 6060711605324:7:67 6722988818431:7:67 6722988818432:7:68 6722988818433:7:68 7446353252588:7:68 7446353252589:7:69 7446353252590:7:69 8235429999999:7:69 8235430000000:7:70 8235430000001:7:70 9095120158390:7:70 9095120158391:7:71 9095120158392:7:71 10030613004287:7:71 10030613004288:7:72 10030613004289:7:72 11047398519096:7:72 11047398519097:7:73 11047398519098:7:73 12151280273023:7:73 12151280273024:7:74 12151280273025:7:74 13348388671874:7:74 13348388671875:7:75 13348388671876:7:75 14645194571775:7:75 14645194571776:7:76 14645194571777:7:76 16048523266852:7:76 16048523266853:7:77 16048523266854:7:77 17565568854911:7:77 17565568854912:7:78 17565568854913:7:78 19203908986158:7:78 19203908986159:7:79 19203908986160:7:79 20971519999999:7:79 20971520000000:7:80 20971520000001:7:80 22876792454960:7:80 22876792454961:7:81 22876792454962:7:81 24928547056767:7:81 24928547056768:7:82 24928547056769:7:82 27136050989626:7:82 27136050989627:7:83 27136050989628:7:83 29509034655743:7:83 29509034655744:7:84 29509034655745:7:84 32057708828124:7:84 32057708828125:7:85 32057708828126:7:85 34792782221695:7:85 34792782221696:7:86 34792782221697:7:86 37725479487782:7:86 37725479487783:7:87 37725479487784:7:87 40867559636991:7:87 40867559636992:7:88 40867559636993:7:88 44231334895528:7:88 44231334895529:7:89 44231334895530:7:89 47829689999999:7:89 47829690000000:7:90 47829690000001:7:90 51676101935730:7:90 51676101935731:7:91 51676101935732:7:91 55784660123647:7:91 55784660123648:7:92 55784660123649:7:92 60170087060756:7:92 60170087060757:7:93 60170087060758:7:93 64847759419263:7:93 64847759419264:7:94 64847759419265:7:94 69833729609374:7:94 69833729609375:7:95 69833729609376:7:95 75144747810815:7:95 75144747810816:7:96 75144747810817:7:96 80798284478112:7:96 80798284478113:7:97 80798284478114:7:97 86812553324671:7:97 86812553324672:7:98 86812553324673:7:98 93206534790698:7:98 93206534790699:7:99 93206534790700:7:99 19682:9:2 19683:9:3 19684:9:3 262143:9:3 262144:9:4 262145:9:4 1953124:9:4 1953125:9:5 1953126:9:5 10077695:9:5 10077696:9:6 10077697:9:6 40353606:9:6 40353607:9:7 40353608:9:7 134217727:9:7 134217728:9:8 134217729:9:8 387420488:9:8 387420489:9:9 387420490:9:9 2357947690:9:10 2357947691:9:11 2357947692:9:11 5159780351:9:11 5159780352:9:12 5159780353:9:12 10604499372:9:12 10604499373:9:13 10604499374:9:13 20661046783:9:13 20661046784:9:14 20661046785:9:14 38443359374:9:14 38443359375:9:15 38443359376:9:15 68719476735:9:15 68719476736:9:16 68719476737:9:16 118587876496:9:16 118587876497:9:17 118587876498:9:17 198359290367:9:17 198359290368:9:18 198359290369:9:18 322687697778:9:18 322687697779:9:19 322687697780:9:19 511999999999:9:19 512000000000:9:20 512000000001:9:20 794280046580:9:20 794280046581:9:21 794280046582:9:21 1207269217791:9:21 1207269217792:9:22 1207269217793:9:22 1801152661462:9:22 1801152661463:9:23 1801152661464:9:23 2641807540223:9:23 2641807540224:9:24 2641807540225:9:24 3814697265624:9:24 3814697265625:9:25 3814697265626:9:25 5429503678975:9:25 5429503678976:9:26 5429503678977:9:26 7625597484986:9:26 7625597484987:9:27 7625597484988:9:27 10578455953407:9:27 10578455953408:9:28 10578455953409:9:28 14507145975868:9:28 14507145975869:9:29 14507145975870:9:29 19682999999999:9:29 19683000000000:9:30 19683000000001:9:30 26439622160670:9:30 26439622160671:9:31 26439622160672:9:31 35184372088831:9:31 35184372088832:9:32 35184372088833:9:32 46411484401952:9:32 46411484401953:9:33 46411484401954:9:33 60716992766463:9:33 60716992766464:9:34 60716992766465:9:34 78815638671874:9:34 78815638671875:9:35 78815638671876:9:35 101559956668415:9:35 101559956668416:9:36 101559956668417:9:36 129961739795076:9:36 129961739795077:9:37 129961739795078:9:37 165216101262847:9:37 165216101262848:9:38 165216101262849:9:38 208728361158758:9:38 208728361158759:9:39 208728361158760:9:39 262143999999999:9:39 262144000000000:9:40 262144000000001:9:40 327381934393960:9:40 327381934393961:9:41 327381934393962:9:41 406671383849471:9:41 406671383849472:9:42 406671383849473:9:42 502592611936842:9:42 502592611936843:9:43 502592611936844:9:43 618121839509503:9:43 618121839509504:9:44 618121839509505:9:44 756680642578124:9:44 756680642578125:9:45 756680642578126:9:45 922190162669055:9:45 922190162669056:9:46 922190162669057:9:46 1119130473102766:9:46 1119130473102767:9:47 1119130473102768:9:47 1352605460594687:9:47 1352605460594688:9:48 1352605460594689:9:48 1628413597910448:9:48 1628413597910449:9:49 1628413597910450:9:49 1953124999999999:9:49 1953125000000000:9:50 1953125000000001:9:50 2334165173090450:9:50 2334165173090451:9:51 2334165173090452:9:51 2779905883635711:9:51 2779905883635712:9:52 2779905883635713:9:52 3299763591802132:9:52 3299763591802133:9:53 3299763591802134:9:53 3904305912313343:9:53 3904305912313344:9:54 3904305912313345:9:54 4605366583984374:9:54 4605366583984375:9:55 4605366583984376:9:55 5416169448144895:9:55 5416169448144896:9:56 5416169448144897:9:56 6351461955384056:9:56 6351461955384057:9:57 6351461955384058:9:57 7427658739644927:9:57 7427658739644928:9:58 7427658739644929:9:58 8662995818654938:9:58 8662995818654939:9:59 8662995818654940:9:59 10077695999999999:9:59 10077696000000000:9:60 10077696000000001:9:60 11694146092834140:9:60 11694146092834141:9:61 11694146092834142:9:61 13537086546263551:9:61 13537086546263552:9:62 13537086546263553:9:62 15633814156853822:9:62 15633814156853823:9:63 15633814156853824:9:63 18014398509481983:9:63 18014398509481984:9:64 18014398509481985:9:64 20711912837890624:9:64 20711912837890625:9:65 20711912837890626:9:65 23762680013799935:9:65 23762680013799936:9:66 23762680013799937:9:66 27206534396294946:9:66 27206534396294947:9:67 27206534396294948:9:67 31087100296429567:9:67 31087100296429568:9:68 31087100296429569:9:68 35452087835576228:9:68 35452087835576229:9:69 35452087835576230:9:69 40353606999999999:9:69 40353607000000000:9:70 40353607000000001:9:70 45848500718449030:9:70 45848500718449031:9:71 45848500718449032:9:71 51998697814228991:9:71 51998697814228992:9:72 51998697814228993:9:72 58871586708267912:9:72 58871586708267913:9:73 58871586708267914:9:73 66540410775079423:9:73 66540410775079424:9:74 66540410775079425:9:74 75084686279296874:9:74 75084686279296875:9:75 75084686279296876:9:75 84590643846578175:9:75 84590643846578176:9:76 84590643846578177:9:76 95151694449171436:9:76 95151694449171437:9:77 95151694449171438:9:77 106868920913284607:9:77 106868920913284608:9:78 106868920913284609:9:78 119851595982618318:9:78 119851595982618319:9:79 119851595982618320:9:79 134217727999999999:9:79 134217728000000000:9:80 134217728000000001:9:80 150094635296999120:9:80 150094635296999121:9:81 150094635296999122:9:81 167619550409708031:9:81 167619550409708032:9:82 167619550409708033:9:82 186940255267540402:9:82 186940255267540403:9:83 186940255267540404:9:83 208215748530929663:9:83 208215748530929664:9:84 208215748530929665:9:84 231616946283203124:9:84 231616946283203125:9:85 231616946283203126:9:85 257327417311663615:9:85 257327417311663616:9:86 257327417311663617:9:86 285544154243029526:9:86 285544154243029527:9:87 285544154243029528:9:87 316478381828866047:9:87 316478381828866048:9:88 316478381828866049:9:88 350356403707485208:9:88 350356403707485209:9:89 350356403707485210:9:89 387420488999999999:9:89 387420489000000000:9:90 387420489000000001:9:90 427929800129788410:9:90 427929800129788411:9:91 427929800129788412:9:91 472161363286556671:9:91 472161363286556672:9:92 472161363286556673:9:92 520411082988487292:9:92 520411082988487293:9:93 520411082988487294:9:93 572994802228616703:9:93 572994802228616704:9:94 572994802228616705:9:94 630249409724609374:9:94 630249409724609375:9:95 630249409724609376:9:95 692533995824480255:9:95 692533995824480256:9:96 692533995824480257:9:96 760231058654565216:9:96 760231058654565217:9:97 760231058654565218:9:97 833747762130149887:9:97 833747762130149888:9:98 833747762130149889:9:98 913517247483640898:9:98 913517247483640899:9:99 913517247483640900:9:99 59048:10:2 59049:10:3 59050:10:3 1048575:10:3 1048576:10:4 1048577:10:4 9765624:10:4 9765625:10:5 9765626:10:5 60466175:10:5 60466176:10:6 60466177:10:6 282475248:10:6 282475249:10:7 282475250:10:7 1073741823:10:7 1073741824:10:8 1073741825:10:8 3486784400:10:8 3486784401:10:9 3486784402:10:9 25937424600:10:10 25937424601:10:11 25937424602:10:11 61917364223:10:11 61917364224:10:12 61917364225:10:12 137858491848:10:12 137858491849:10:13 137858491850:10:13 289254654975:10:13 289254654976:10:14 289254654977:10:14 576650390624:10:14 576650390625:10:15 576650390626:10:15 1099511627775:10:15 1099511627776:10:16 1099511627777:10:16 2015993900448:10:16 2015993900449:10:17 2015993900450:10:17 3570467226623:10:17 3570467226624:10:18 3570467226625:10:18 6131066257800:10:18 6131066257801:10:19 6131066257802:10:19 10239999999999:10:19 10240000000000:10:20 10240000000001:10:20 16679880978200:10:20 16679880978201:10:21 16679880978202:10:21 26559922791423:10:21 26559922791424:10:22 26559922791425:10:22 41426511213648:10:22 41426511213649:10:23 41426511213650:10:23 63403380965375:10:23 63403380965376:10:24 63403380965377:10:24 95367431640624:10:24 95367431640625:10:25 95367431640626:10:25 141167095653375:10:25 141167095653376:10:26 141167095653377:10:26 205891132094648:10:26 205891132094649:10:27 205891132094650:10:27 296196766695423:10:27 296196766695424:10:28 296196766695425:10:28 420707233300200:10:28 420707233300201:10:29 420707233300202:10:29 590489999999999:10:29 590490000000000:10:30 590490000000001:10:30 819628286980800:10:30 819628286980801:10:31 819628286980802:10:31 1125899906842623:10:31 1125899906842624:10:32 1125899906842625:10:32 1531578985264448:10:32 1531578985264449:10:33 1531578985264450:10:33 2064377754059775:10:33 2064377754059776:10:34 2064377754059777:10:34 2758547353515624:10:34 2758547353515625:10:35 2758547353515626:10:35 3656158440062975:10:35 3656158440062976:10:36 3656158440062977:10:36 4808584372417848:10:36 4808584372417849:10:37 4808584372417850:10:37 6278211847988223:10:37 6278211847988224:10:38 6278211847988225:10:38 8140406085191600:10:38 8140406085191601:10:39 8140406085191602:10:39 10485759999999999:10:39 10485760000000000:10:40 10485760000000001:10:40 13422659310152400:10:40 13422659310152401:10:41 13422659310152402:10:41 17080198121677823:10:41 17080198121677824:10:42 17080198121677825:10:42 21611482313284248:10:42 21611482313284249:10:43 21611482313284250:10:43 27197360938418175:10:43 27197360938418176:10:44 27197360938418177:10:44 34050628916015624:10:44 34050628916015625:10:45 34050628916015626:10:45 42420747482776575:10:45 42420747482776576:10:46 42420747482776577:10:46 52599132235830048:10:46 52599132235830049:10:47 52599132235830050:10:47 64925062108545023:10:47 64925062108545024:10:48 64925062108545025:10:48 79792266297612000:10:48 79792266297612001:10:49 79792266297612002:10:49 97656249999999999:10:49 97656250000000000:10:50 97656250000000001:10:50 119042423827613000:10:50 119042423827613001:10:51 119042423827613002:10:51 144555105949057023:10:51 144555105949057024:10:52 144555105949057025:10:52 174887470365513048:10:52 174887470365513049:10:53 174887470365513050:10:53 210832519264920575:10:53 210832519264920576:10:54 210832519264920577:10:54 253295162119140624:10:54 253295162119140625:10:55 253295162119140626:10:55 303305489096114175:10:55 303305489096114176:10:56 303305489096114177:10:56 362033331456891248:10:56 362033331456891249:10:57 362033331456891250:10:57 430804206899405823:10:57 430804206899405824:10:58 430804206899405825:10:58 511116753300641400:10:58 511116753300641401:10:59 511116753300641402:10:59 604661759999999999:10:59 604661760000000000:10:60 604661760000000001:10:60 713342911662882600:10:60 713342911662882601:10:61 713342911662882602:10:61 839299365868340223:10:61 839299365868340224:10:62 839299365868340225:10:62 984930291881790848:10:62 984930291881790849:10:63 984930291881790850:10:63 1152921504606846975:10:63 1152921504606846976:10:64 1152921504606846977:10:64 1346274334462890624:10:64 1346274334462890625:10:65 1346274334462890626:10:65 1568336880910795775:10:65 1568336880910795776:10:66 1568336880910795777:10:66 1822837804551761448:10:66 1822837804551761449:10:67 1822837804551761450:10:67 2113922820157210623:10:67 2113922820157210624:10:68 2113922820157210625:10:68 2446194060654759800:10:68 2446194060654759801:10:69 2446194060654759802:10:69 2824752489999999999:10:69 2824752490000000000:10:70 2824752490000000001:10:70 3255243551009881200:10:70 3255243551009881201:10:71 3255243551009881202:10:71 3743906242624487423:10:71 3743906242624487424:10:72 3743906242624487425:10:72 4297625829703557648:10:72 4297625829703557649:10:73 4297625829703557650:10:73 4923990397355877375:10:73 4923990397355877376:10:74 4923990397355877377:10:74 5631351470947265624:10:74 5631351470947265625:10:75 5631351470947265626:10:75 6428888932339941375:10:75 6428888932339941376:10:76 6428888932339941377:10:76 7326680472586200648:10:76 7326680472586200649:10:77 7326680472586200650:10:77 8335775831236199423:10:77 8335775831236199424:10:78 8335775831236199425:10:78 9468276082626847200:10:78 9468276082626847201:10:79 9468276082626847202:10:79 10737418239999999999:10:79 10737418240000000000:10:80 10737418240000000001:10:80 12157665459056928800:10:80 12157665459056928801:10:81 12157665459056928802:10:81 13744803133596058623:10:81 13744803133596058624:10:82 13744803133596058625:10:82 15516041187205853448:10:82 15516041187205853449:10:83 15516041187205853450:10:83 17490122876598091775:10:83 17490122876598091776:10:84 17490122876598091777:10:84 19687440434072265624:10:84 19687440434072265625:10:85 19687440434072265626:10:85 22130157888803070975:10:85 22130157888803070976:10:86 22130157888803070977:10:86 24842341419143568848:10:86 24842341419143568849:10:87 24842341419143568850:10:87 27850097600940212223:10:87 27850097600940212224:10:88 27850097600940212225:10:88 31181719929966183600:10:88 31181719929966183601:10:89 31181719929966183602:10:89 34867844009999999999:10:89 34867844010000000000:10:90 34867844010000000001:10:90 38941611811810745400:10:90 38941611811810745401:10:91 38941611811810745402:10:91 43438845422363213823:10:91 43438845422363213824:10:92 43438845422363213825:10:92 48398230717929318248:10:92 48398230717929318249:10:93 48398230717929318250:10:93 53861511409489970175:10:93 53861511409489970176:10:94 53861511409489970177:10:94 59873693923837890624:10:94 59873693923837890625:10:95 59873693923837890626:10:95 66483263599150104575:10:95 66483263599150104576:10:96 66483263599150104577:10:96 73742412689492826048:10:96 73742412689492826049:10:97 73742412689492826050:10:97 81707280688754689023:10:97 81707280688754689024:10:98 81707280688754689025:10:98 90438207500880449000:10:98 90438207500880449001:10:99 90438207500880449002:10:99 0:11:0 1:11:1 2:11:1 2047:11:1 2048:11:2 2049:11:2 177146:11:2 177147:11:3 177148:11:3 4194303:11:3 4194304:11:4 4194305:11:4 48828124:11:4 48828125:11:5 48828126:11:5 362797055:11:5 362797056:11:6 362797057:11:6 1977326742:11:6 1977326743:11:7 1977326744:11:7 8589934591:11:7 8589934592:11:8 8589934593:11:8 31381059608:11:8 31381059609:11:9 31381059610:11:9 285311670610:11:10 285311670611:11:11 285311670612:11:11 743008370687:11:11 743008370688:11:12 743008370689:11:12 1792160394036:11:12 1792160394037:11:13 1792160394038:11:13 4049565169663:11:13 4049565169664:11:14 4049565169665:11:14 8649755859374:11:14 8649755859375:11:15 8649755859376:11:15 17592186044415:11:15 17592186044416:11:16 17592186044417:11:16 34271896307632:11:16 34271896307633:11:17 34271896307634:11:17 64268410079231:11:17 64268410079232:11:18 64268410079233:11:18 116490258898218:11:18 116490258898219:11:19 116490258898220:11:19 204799999999999:11:19 204800000000000:11:20 204800000000001:11:20 350277500542220:11:20 350277500542221:11:21 350277500542222:11:21 584318301411327:11:21 584318301411328:11:22 584318301411329:11:22 952809757913926:11:22 952809757913927:11:23 952809757913928:11:23 1521681143169023:11:23 1521681143169024:11:24 1521681143169025:11:24 2384185791015624:11:24 2384185791015625:11:25 2384185791015626:11:25 3670344486987775:11:25 3670344486987776:11:26 3670344486987777:11:26 5559060566555522:11:26 5559060566555523:11:27 5559060566555524:11:27 8293509467471871:11:27 8293509467471872:11:28 8293509467471873:11:28 12200509765705828:11:28 12200509765705829:11:29 12200509765705830:11:29 17714699999999999:11:29 17714700000000000:11:30 17714700000000001:11:30 25408476896404830:11:30 25408476896404831:11:31 25408476896404832:11:31 36028797018963967:11:31 36028797018963968:11:32 36028797018963969:11:32 50542106513726816:11:32 50542106513726817:11:33 50542106513726818:11:33 70188843638032383:11:33 70188843638032384:11:34 70188843638032385:11:34 96549157373046874:11:34 96549157373046875:11:35 96549157373046876:11:35 131621703842267135:11:35 131621703842267136:11:36 131621703842267137:11:36 177917621779460412:11:36 177917621779460413:11:37 177917621779460414:11:37 238572050223552511:11:37 238572050223552512:11:38 238572050223552513:11:38 317475837322472438:11:38 317475837322472439:11:39 317475837322472440:11:39 419430399999999999:11:39 419430400000000000:11:40 419430400000000001:11:40 550329031716248440:11:40 550329031716248441:11:41 550329031716248442:11:41 717368321110468607:11:41 717368321110468608:11:42 717368321110468609:11:42 929293739471222706:11:42 929293739471222707:11:43 929293739471222708:11:43 1196683881290399743:11:43 1196683881290399744:11:44 1196683881290399745:11:44 1532278301220703124:11:44 1532278301220703125:11:45 1532278301220703126:11:45 1951354384207722495:11:45 1951354384207722496:11:46 1951354384207722497:11:46 2472159215084012302:11:46 2472159215084012303:11:47 2472159215084012304:11:47 3116402981210161151:11:47 3116402981210161152:11:48 3116402981210161153:11:48 3909821048582988048:11:48 3909821048582988049:11:49 3909821048582988050:11:49 4882812499999999999:11:49 4882812500000000000:11:50 4882812500000000001:11:50 6071163615208263050:11:50 6071163615208263051:11:51 6071163615208263052:11:51 7516865509350965247:11:51 7516865509350965248:11:52 7516865509350965249:11:52 9269035929372191596:11:52 9269035929372191597:11:53 9269035929372191598:11:53 11384956040305711103:11:53 11384956040305711104:11:54 11384956040305711105:11:54 13931233916552734374:11:54 13931233916552734375:11:55 13931233916552734376:11:55 16985107389382393855:11:55 16985107389382393856:11:56 16985107389382393857:11:56 20635899893042801192:11:56 20635899893042801193:11:57 20635899893042801194:11:57 24986644000165537791:11:57 24986644000165537792:11:58 24986644000165537793:11:58 30155888444737842658:11:58 30155888444737842659:11:59 30155888444737842660:11:59 36279705599999999999:11:59 36279705600000000000:11:60 36279705600000000001:11:60 43513917611435838660:11:60 43513917611435838661:11:61 43513917611435838662:11:61 52036560683837093887:11:61 52036560683837093888:11:62 52036560683837093889:11:62 62050608388552823486:11:62 62050608388552823487:11:63 62050608388552823488:11:63 73786976294838206463:11:63 73786976294838206464:11:64 73786976294838206465:11:64 87507831740087890624:11:64 87507831740087890625:11:65 87507831740087890626:11:65 103510234140112521215:11:65 103510234140112521216:11:66 103510234140112521217:11:66 122130132904968017082:11:66 122130132904968017083:11:67 122130132904968017084:11:67 143746751770690322431:11:67 143746751770690322432:11:68 143746751770690322433:11:68 168787390185178426268:11:68 168787390185178426269:11:69 168787390185178426270:11:69 197732674299999999999:11:69 197732674300000000000:11:70 197732674300000000001:11:70 231122292121701565270:11:70 231122292121701565271:11:71 231122292121701565272:11:71 269561249468963094527:11:71 269561249468963094528:11:72 269561249468963094529:11:72 313726685568359708376:11:72 313726685568359708377:11:73 313726685568359708378:11:73 364375289404334925823:11:73 364375289404334925824:11:74 364375289404334925825:11:74 422351360321044921874:11:74 422351360321044921875:11:75 422351360321044921876:11:75 488595558857835544575:11:75 488595558857835544576:11:76 488595558857835544577:11:76 564154396389137449972:11:76 564154396389137449973:11:77 564154396389137449974:11:77 650190514836423555071:11:77 650190514836423555072:11:78 650190514836423555073:11:78 747993810527520928878:11:78 747993810527520928879:11:79 747993810527520928880:11:79 858993459199999999999:11:79 858993459200000000000:11:80 858993459200000000001:11:80 984770902183611232880:11:80 984770902183611232881:11:81 984770902183611232882:11:81 1127073856954876807167:11:81 1127073856954876807168:11:82 1127073856954876807169:11:82 1287831418538085836266:11:82 1287831418538085836267:11:83 1287831418538085836268:11:83 1469170321634239709183:11:83 1469170321634239709184:11:84 1469170321634239709185:11:84 1673432436896142578124:11:84 1673432436896142578125:11:85 1673432436896142578126:11:85 1903193578437064103935:11:85 1903193578437064103936:11:86 1903193578437064103937:11:86 2161283703465490489862:11:86 2161283703465490489863:11:87 2161283703465490489864:11:87 2450808588882738675711:11:87 2450808588882738675712:11:88 2450808588882738675713:11:88 2775173073766990340488:11:88 2775173073766990340489:11:89 2775173073766990340490:11:89 3138105960899999999999:11:89 3138105960900000000000:11:90 3138105960900000000001:11:90 3543686674874777831490:11:90 3543686674874777831491:11:91 3543686674874777831492:11:91 3996373778857415671807:11:91 3996373778857415671808:11:92 3996373778857415671809:11:92 4501035456767426597156:11:92 4501035456767426597157:11:93 4501035456767426597158:11:93 5062982072492057196543:11:93 5062982072492057196544:11:94 5062982072492057196545:11:94 5688000922764599609374:11:94 5688000922764599609375:11:95 5688000922764599609376:11:95 6382393305518410039295:11:95 6382393305518410039296:11:96 6382393305518410039297:11:96 7153014030880804126752:11:96 7153014030880804126753:11:97 7153014030880804126754:11:97 8007313507497959524351:11:97 8007313507497959524352:11:98 8007313507497959524353:11:98 8953382542587164451098:11:98 8953382542587164451099:11:99 8953382542587164451100:11:99 0:12:0 1:12:1 2:12:1 4095:12:1 4096:12:2 4097:12:2 531440:12:2 531441:12:3 531442:12:3 16777215:12:3 16777216:12:4 16777217:12:4 244140624:12:4 244140625:12:5 244140626:12:5 2176782335:12:5 2176782336:12:6 2176782337:12:6 13841287200:12:6 13841287201:12:7 13841287202:12:7 68719476735:12:7 68719476736:12:8 68719476737:12:8 282429536480:12:8 282429536481:12:9 282429536482:12:9 3138428376720:12:10 3138428376721:12:11 3138428376722:12:11 8916100448255:12:11 8916100448256:12:12 8916100448257:12:12 23298085122480:12:12 23298085122481:12:13 23298085122482:12:13 56693912375295:12:13 56693912375296:12:14 56693912375297:12:14 129746337890624:12:14 129746337890625:12:15 129746337890626:12:15 281474976710655:12:15 281474976710656:12:16 281474976710657:12:16 582622237229760:12:16 582622237229761:12:17 582622237229762:12:17 1156831381426175:12:17 1156831381426176:12:18 1156831381426177:12:18 2213314919066160:12:18 2213314919066161:12:19 2213314919066162:12:19 4095999999999999:12:19 4096000000000000:12:20 4096000000000001:12:20 7355827511386640:12:20 7355827511386641:12:21 7355827511386642:12:21 12855002631049215:12:21 12855002631049216:12:22 12855002631049217:12:22 21914624432020320:12:22 21914624432020321:12:23 21914624432020322:12:23 36520347436056575:12:23 36520347436056576:12:24 36520347436056577:12:24 59604644775390624:12:24 59604644775390625:12:25 59604644775390626:12:25 95428956661682175:12:25 95428956661682176:12:26 95428956661682177:12:26 150094635296999120:12:26 150094635296999121:12:27 150094635296999122:12:27 232218265089212415:12:27 232218265089212416:12:28 232218265089212417:12:28 353814783205469040:12:28 353814783205469041:12:29 353814783205469042:12:29 531440999999999999:12:29 531441000000000000:12:30 531441000000000001:12:30 787662783788549760:12:30 787662783788549761:12:31 787662783788549762:12:31 1152921504606846975:12:31 1152921504606846976:12:32 1152921504606846977:12:32 1667889514952984960:12:32 1667889514952984961:12:33 1667889514952984962:12:33 2386420683693101055:12:33 2386420683693101056:12:34 2386420683693101057:12:34 3379220508056640624:12:34 3379220508056640625:12:35 3379220508056640626:12:35 4738381338321616895:12:35 4738381338321616896:12:36 4738381338321616897:12:36 6582952005840035280:12:36 6582952005840035281:12:37 6582952005840035282:12:37 9065737908494995455:12:37 9065737908494995456:12:38 9065737908494995457:12:38 12381557655576425120:12:38 12381557655576425121:12:39 12381557655576425122:12:39 16777215999999999999:12:39 16777216000000000000:12:40 16777216000000000001:12:40 22563490300366186080:12:40 22563490300366186081:12:41 22563490300366186082:12:41 30129469486639681535:12:41 30129469486639681536:12:42 30129469486639681537:12:42 39959630797262576400:12:42 39959630797262576401:12:43 39959630797262576402:12:43 52654090776777588735:12:43 52654090776777588736:12:44 52654090776777588737:12:44 68952523554931640624:12:44 68952523554931640625:12:45 68952523554931640626:12:45 89762301673555234815:12:45 89762301673555234816:12:46 89762301673555234817:12:46 116191483108948578240:12:46 116191483108948578241:12:47 116191483108948578242:12:47 149587343098087735295:12:47 149587343098087735296:12:48 149587343098087735297:12:48 191581231380566414400:12:48 191581231380566414401:12:49 191581231380566414402:12:49 244140624999999999999:12:49 244140625000000000000:12:50 244140625000000000001:12:50 309629344375621415600:12:50 309629344375621415601:12:51 309629344375621415602:12:51 390877006486250192895:12:51 390877006486250192896:12:52 390877006486250192897:12:52 491258904256726154640:12:52 491258904256726154641:12:53 491258904256726154642:12:53 614787626176508399615:12:53 614787626176508399616:12:54 614787626176508399617:12:54 766217865410400390624:12:54 766217865410400390625:12:55 766217865410400390626:12:55 951166013805414055935:12:55 951166013805414055936:12:56 951166013805414055937:12:56 1176246293903439668000:12:56 1176246293903439668001:12:57 1176246293903439668002:12:57 1449225352009601191935:12:57 1449225352009601191936:12:58 1449225352009601191937:12:58 1779197418239532716880:12:58 1779197418239532716881:12:59 1779197418239532716882:12:59 2176782335999999999999:12:59 2176782336000000000000:12:60 2176782336000000000001:12:60 2654348974297586158320:12:60 2654348974297586158321:12:61 2654348974297586158322:12:61 3226266762397899821055:12:61 3226266762397899821056:12:62 3226266762397899821057:12:62 3909188328478827879680:12:62 3909188328478827879681:12:63 3909188328478827879682:12:63 4722366482869645213695:12:63 4722366482869645213696:12:64 4722366482869645213697:12:64 5688009063105712890624:12:64 5688009063105712890625:12:65 5688009063105712890626:12:65 6831675453247426400255:12:65 6831675453247426400256:12:66 6831675453247426400257:12:66 8182718904632857144560:12:66 8182718904632857144561:12:67 8182718904632857144562:12:67 9774779120406941925375:12:67 9774779120406941925376:12:68 9774779120406941925377:12:68 11646329922777311412560:12:68 11646329922777311412561:12:69 11646329922777311412562:12:69 13841287200999999999999:12:69 13841287201000000000000:12:70 13841287201000000000001:12:70 16409682740640811134240:12:70 16409682740640811134241:12:71 16409682740640811134242:12:71 19408409961765342806015:12:71 19408409961765342806016:12:72 19408409961765342806017:12:72 22902048046490258711520:12:72 22902048046490258711521:12:73 22902048046490258711522:12:73 26963771415920784510975:12:73 26963771415920784510976:12:74 26963771415920784510977:12:74 31676352024078369140624:12:74 31676352024078369140625:12:75 31676352024078369140626:12:75 37133262473195501387775:12:75 37133262473195501387776:12:76 37133262473195501387777:12:76 43439888521963583647920:12:76 43439888521963583647921:12:77 43439888521963583647922:12:77 50714860157241037295615:12:77 50714860157241037295616:12:78 50714860157241037295617:12:78 59091511031674153381440:12:78 59091511031674153381441:12:79 59091511031674153381442:12:79 68719476735999999999999:12:79 68719476736000000000000:12:80 68719476736000000000001:12:80 79766443076872509863360:12:80 79766443076872509863361:12:81 79766443076872509863362:12:81 92420056270299898187775:12:81 92420056270299898187776:12:82 92420056270299898187777:12:82 106890007738661124410160:12:82 106890007738661124410161:12:83 106890007738661124410162:12:83 123410307017276135571455:12:83 123410307017276135571456:12:84 123410307017276135571457:12:84 142241757136172119140624:12:84 142241757136172119140625:12:85 142241757136172119140626:12:85 163674647745587512938495:12:85 163674647745587512938496:12:86 163674647745587512938497:12:86 188031682201497672618080:12:86 188031682201497672618081:12:87 188031682201497672618082:12:87 215671155821681003462655:12:87 215671155821681003462656:12:88 215671155821681003462657:12:88 246990403565262140303520:12:88 246990403565262140303521:12:89 246990403565262140303522:12:89 282429536480999999999999:12:89 282429536481000000000000:12:90 282429536481000000000001:12:90 322475487413604782665680:12:90 322475487413604782665681:12:91 322475487413604782665682:12:91 367666387654882241806335:12:91 367666387654882241806336:12:92 367666387654882241806337:12:92 418596297479370673535600:12:92 418596297479370673535601:12:93 418596297479370673535602:12:93 475920314814253376475135:12:93 475920314814253376475136:12:94 475920314814253376475137:12:94 540360087662636962890624:12:94 540360087662636962890625:12:95 540360087662636962890626:12:95 612709757329767363772415:12:95 612709757329767363772416:12:96 612709757329767363772417:12:96 693842360995438000295040:12:96 693842360995438000295041:12:97 693842360995438000295042:12:97 784716723734800033386495:12:97 784716723734800033386496:12:98 784716723734800033386497:12:98 886384871716129280658800:12:98 886384871716129280658801:12:99 886384871716129280658802:12:99 0:13:0 1:13:1 2:13:1 8191:13:1 8192:13:2 8193:13:2 1594322:13:2 1594323:13:3 1594324:13:3 67108863:13:3 67108864:13:4 67108865:13:4 1220703124:13:4 1220703125:13:5 1220703126:13:5 13060694015:13:5 13060694016:13:6 13060694017:13:6 96889010406:13:6 96889010407:13:7 96889010408:13:7 549755813887:13:7 549755813888:13:8 549755813889:13:8 2541865828328:13:8 2541865828329:13:9 2541865828330:13:9 34522712143930:13:10 34522712143931:13:11 34522712143932:13:11 106993205379071:13:11 106993205379072:13:12 106993205379073:13:12 302875106592252:13:12 302875106592253:13:13 302875106592254:13:13 793714773254143:13:13 793714773254144:13:14 793714773254145:13:14 1946195068359374:13:14 1946195068359375:13:15 1946195068359376:13:15 4503599627370495:13:15 4503599627370496:13:16 4503599627370497:13:16 9904578032905936:13:16 9904578032905937:13:17 9904578032905938:13:17 20822964865671167:13:17 20822964865671168:13:18 20822964865671169:13:18 42052983462257058:13:18 42052983462257059:13:19 42052983462257060:13:19 81919999999999999:13:19 81920000000000000:13:20 81920000000000001:13:20 154472377739119460:13:20 154472377739119461:13:21 154472377739119462:13:21 282810057883082751:13:21 282810057883082752:13:22 282810057883082753:13:22 504036361936467382:13:22 504036361936467383:13:23 504036361936467384:13:23 876488338465357823:13:23 876488338465357824:13:24 876488338465357825:13:24 1490116119384765624:13:24 1490116119384765625:13:25 1490116119384765626:13:25 2481152873203736575:13:25 2481152873203736576:13:26 2481152873203736577:13:26 4052555153018976266:13:26 4052555153018976267:13:27 4052555153018976268:13:27 6502111422497947647:13:27 6502111422497947648:13:28 6502111422497947649:13:28 10260628712958602188:13:28 10260628712958602189:13:29 10260628712958602190:13:29 15943229999999999999:13:29 15943230000000000000:13:30 15943230000000000001:13:30 24417546297445042590:13:30 24417546297445042591:13:31 24417546297445042592:13:31 36893488147419103231:13:31 36893488147419103232:13:32 36893488147419103233:13:32 55040353993448503712:13:32 55040353993448503713:13:33 55040353993448503714:13:33 81138303245565435903:13:33 81138303245565435904:13:34 81138303245565435905:13:34 118272717781982421874:13:34 118272717781982421875:13:35 118272717781982421876:13:35 170581728179578208255:13:35 170581728179578208256:13:36 170581728179578208257:13:36 243569224216081305396:13:36 243569224216081305397:13:37 243569224216081305398:13:37 344498040522809827327:13:37 344498040522809827328:13:38 344498040522809827329:13:38 482880748567480579718:13:38 482880748567480579719:13:39 482880748567480579720:13:39 671088639999999999999:13:39 671088640000000000000:13:40 671088640000000000001:13:40 925103102315013629320:13:40 925103102315013629321:13:41 925103102315013629322:13:41 1265437718438866624511:13:41 1265437718438866624512:13:42 1265437718438866624513:13:42 1718264124282290785242:13:42 1718264124282290785243:13:43 1718264124282290785244:13:43 2316779994178213904383:13:43 2316779994178213904384:13:44 2316779994178213904385:13:44 3102863559971923828124:13:44 3102863559971923828125:13:45 3102863559971923828126:13:45 4129065876983540801535:13:45 4129065876983540801536:13:46 4129065876983540801537:13:46 5460999706120583177326:13:46 5460999706120583177327:13:47 5460999706120583177328:13:47 7180192468708211294207:13:47 7180192468708211294208:13:48 7180192468708211294209:13:48 9387480337647754305648:13:48 9387480337647754305649:13:49 9387480337647754305650:13:49 12207031249999999999999:13:49 12207031250000000000000:13:50 12207031250000000000001:13:50 15791096563156692195650:13:50 15791096563156692195651:13:51 15791096563156692195652:13:51 20325604337285010030591:13:51 20325604337285010030592:13:52 20325604337285010030593:13:52 26036721925606486195972:13:52 26036721925606486195973:13:53 26036721925606486195974:13:53 33198531813531453579263:13:53 33198531813531453579264:13:54 33198531813531453579265:13:54 42141982597572021484374:13:54 42141982597572021484375:13:55 42141982597572021484376:13:55 53265296773103187132415:13:55 53265296773103187132416:13:56 53265296773103187132417:13:56 67046038752496061076056:13:56 67046038752496061076057:13:57 67046038752496061076058:13:57 84055070416556869132287:13:57 84055070416556869132288:13:58 84055070416556869132289:13:58 104972647676132430295978:13:58 104972647676132430295979:13:59 104972647676132430295980:13:59 130606940159999999999999:13:59 130606940160000000000000:13:60 130606940160000000000001:13:60 161915287432152755657580:13:60 161915287432152755657581:13:61 161915287432152755657582:13:61 200028539268669788905471:13:61 200028539268669788905472:13:62 200028539268669788905473:13:62 246278864694166156419902:13:62 246278864694166156419903:13:63 246278864694166156419904:13:63 302231454903657293676543:13:63 302231454903657293676544:13:64 302231454903657293676545:13:64 369720589101871337890624:13:64 369720589101871337890625:13:65 369720589101871337890626:13:65 450890579914330142416895:13:65 450890579914330142416896:13:66 450890579914330142416897:13:66 548242166610401428685586:13:66 548242166610401428685587:13:67 548242166610401428685588:13:67 664684980187672050925567:13:67 664684980187672050925568:13:68 664684980187672050925569:13:68 803596764671634487466708:13:68 803596764671634487466709:13:69 803596764671634487466710:13:69 968890104069999999999999:13:69 968890104070000000000000:13:70 968890104070000000000001:13:70 1165087474585497590531110:13:70 1165087474585497590531111:13:71 1165087474585497590531112:13:71 1397405517247104682033151:13:71 1397405517247104682033152:13:72 1397405517247104682033153:13:72 1671849507393788885941032:13:72 1671849507393788885941033:13:73 1671849507393788885941034:13:73 1995319084778138053812223:13:73 1995319084778138053812224:13:74 1995319084778138053812225:13:74 2375726401805877685546874:13:74 2375726401805877685546875:13:75 2375726401805877685546876:13:75 2822127947962858105470975:13:75 2822127947962858105470976:13:76 2822127947962858105470977:13:76 3344871416191195940889916:13:76 3344871416191195940889917:13:77 3344871416191195940889918:13:77 3955759092264800909058047:13:77 3955759092264800909058048:13:78 3955759092264800909058049:13:78 4668229371502258117133838:13:78 4668229371502258117133839:13:79 4668229371502258117133840:13:79 5497558138879999999999999:13:79 5497558138880000000000000:13:80 5497558138880000000000001:13:80 6461081889226673298932240:13:80 6461081889226673298932241:13:81 6461081889226673298932242:13:81 7578444614164591651397631:13:81 7578444614164591651397632:13:82 7578444614164591651397633:13:82 8871870642308873326043362:13:82 8871870642308873326043363:13:83 8871870642308873326043364:13:83 10366465789451195388002303:13:83 10366465789451195388002304:13:84 10366465789451195388002305:13:84 12090549356574630126953124:13:84 12090549356574630126953125:13:85 12090549356574630126953126:13:85 14076019706120526112710655:13:85 14076019706120526112710656:13:86 14076019706120526112710657:13:86 16358756351530297517773046:13:86 16358756351530297517773047:13:87 16358756351530297517773048:13:87 18979061712307928304713727:13:87 18979061712307928304713728:13:88 18979061712307928304713729:13:88 21982145917308330487013368:13:88 21982145917308330487013369:13:89 21982145917308330487013370:13:89 25418658283289999999999999:13:89 25418658283290000000000000:13:90 25418658283290000000000001:13:90 29345269354638035222576970:13:90 29345269354638035222576971:13:91 29345269354638035222576972:13:91 33825307664249166246182911:13:91 33825307664249166246182912:13:92 33825307664249166246182913:13:92 38929455665581472638810892:13:92 38929455665581472638810893:13:93 38929455665581472638810894:13:93 44736509592539817388662783:13:93 44736509592539817388662784:13:94 44736509592539817388662785:13:94 51334208327950511474609374:13:94 51334208327950511474609375:13:95 51334208327950511474609376:13:95 58820136703657666922151935:13:95 58820136703657666922151936:13:96 58820136703657666922151937:13:96 67302709016557486028618976:13:96 67302709016557486028618977:13:97 67302709016557486028618978:13:97 76902238926010403271876607:13:97 76902238926010403271876608:13:98 76902238926010403271876609:13:98 87752102299896798785221298:13:98 87752102299896798785221299:13:99 87752102299896798785221300:13:99 0:14:0 1:14:1 2:14:1 16383:14:1 16384:14:2 16385:14:2 4782968:14:2 4782969:14:3 4782970:14:3 268435455:14:3 268435456:14:4 268435457:14:4 6103515624:14:4 6103515625:14:5 6103515626:14:5 78364164095:14:5 78364164096:14:6 78364164097:14:6 678223072848:14:6 678223072849:14:7 678223072850:14:7 4398046511103:14:7 4398046511104:14:8 4398046511105:14:8 22876792454960:14:8 22876792454961:14:9 22876792454962:14:9 379749833583240:14:10 379749833583241:14:11 379749833583242:14:11 1283918464548863:14:11 1283918464548864:14:12 1283918464548865:14:12 3937376385699288:14:12 3937376385699289:14:13 3937376385699290:14:13 11112006825558015:14:13 11112006825558016:14:14 11112006825558017:14:14 29192926025390624:14:14 29192926025390625:14:15 29192926025390626:14:15 72057594037927935:14:15 72057594037927936:14:16 72057594037927937:14:16 168377826559400928:14:16 168377826559400929:14:17 168377826559400930:14:17 374813367582081023:14:17 374813367582081024:14:18 374813367582081025:14:18 799006685782884120:14:18 799006685782884121:14:19 799006685782884122:14:19 1638399999999999999:14:19 1638400000000000000:14:20 1638400000000000001:14:20 3243919932521508680:14:20 3243919932521508681:14:21 3243919932521508682:14:21 6221821273427820543:14:21 6221821273427820544:14:22 6221821273427820545:14:22 11592836324538749808:14:22 11592836324538749809:14:23 11592836324538749810:14:23 21035720123168587775:14:23 21035720123168587776:14:24 21035720123168587777:14:24 37252902984619140624:14:24 37252902984619140625:14:25 37252902984619140626:14:25 64509974703297150975:14:25 64509974703297150976:14:26 64509974703297150977:14:26 109418989131512359208:14:26 109418989131512359209:14:27 109418989131512359210:14:27 182059119829942534143:14:27 182059119829942534144:14:28 182059119829942534145:14:28 297558232675799463480:14:28 297558232675799463481:14:29 297558232675799463482:14:29 478296899999999999999:14:29 478296900000000000000:14:30 478296900000000000001:14:30 756943935220796320320:14:30 756943935220796320321:14:31 756943935220796320322:14:31 1180591620717411303423:14:31 1180591620717411303424:14:32 1180591620717411303425:14:32 1816331681783800622528:14:32 1816331681783800622529:14:33 1816331681783800622530:14:33 2758702310349224820735:14:33 2758702310349224820736:14:34 2758702310349224820737:14:34 4139545122369384765624:14:34 4139545122369384765625:14:35 4139545122369384765626:14:35 6140942214464815497215:14:35 6140942214464815497216:14:36 6140942214464815497217:14:36 9012061295995008299688:14:36 9012061295995008299689:14:37 9012061295995008299690:14:37 13090925539866773438463:14:37 13090925539866773438464:14:38 13090925539866773438465:14:38 18832349194131742609040:14:38 18832349194131742609041:14:39 18832349194131742609042:14:39 26843545599999999999999:14:39 26843545600000000000000:14:40 26843545600000000000001:14:40 37929227194915558802160:14:40 37929227194915558802161:14:41 37929227194915558802162:14:41 53148384174432398229503:14:41 53148384174432398229504:14:42 53148384174432398229505:14:42 73885357344138503765448:14:42 73885357344138503765449:14:43 73885357344138503765450:14:43 101938319743841411792895:14:43 101938319743841411792896:14:44 101938319743841411792897:14:44 139628860198736572265624:14:44 139628860198736572265625:14:45 139628860198736572265626:14:45 189937030341242876870655:14:45 189937030341242876870656:14:46 189937030341242876870657:14:46 256666986187667409334368:14:46 256666986187667409334369:14:47 256666986187667409334370:14:47 344649238497994142121983:14:47 344649238497994142121984:14:48 344649238497994142121985:14:48 459986536544739960976800:14:48 459986536544739960976801:14:49 459986536544739960976802:14:49 610351562499999999999999:14:49 610351562500000000000000:14:50 610351562500000000000001:14:50 805345924720991301978200:14:50 805345924720991301978201:14:51 805345924720991301978202:14:51 1056931425538820521590783:14:51 1056931425538820521590784:14:52 1056931425538820521590785:14:52 1379946262057143768386568:14:52 1379946262057143768386569:14:53 1379946262057143768386570:14:53 1792720717930698493280255:14:53 1792720717930698493280256:14:54 1792720717930698493280257:14:54 2317809042866461181640624:14:54 2317809042866461181640625:14:55 2317809042866461181640626:14:55 2982856619293778479415295:14:55 2982856619293778479415296:14:56 2982856619293778479415297:14:56 3821624208892275481335248:14:56 3821624208892275481335249:14:57 3821624208892275481335250:14:57 4875194084160298409672703:14:57 4875194084160298409672704:14:58 4875194084160298409672705:14:58 6193386212891813387462760:14:58 6193386212891813387462761:14:59 6193386212891813387462762:14:59 7836416409599999999999999:14:59 7836416409600000000000000:14:60 7836416409600000000000001:14:60 9876832533361318095112440:14:60 9876832533361318095112441:14:61 9876832533361318095112442:14:61 12401769434657526912139263:14:61 12401769434657526912139264:14:62 12401769434657526912139265:14:62 15515568475732467854453888:14:62 15515568475732467854453889:14:63 15515568475732467854453890:14:63 19342813113834066795298815:14:63 19342813113834066795298816:14:64 19342813113834066795298817:14:64 24031838291621636962890624:14:64 24031838291621636962890625:14:65 24031838291621636962890626:14:65 29758778274345789399515135:14:65 29758778274345789399515136:14:66 29758778274345789399515137:14:66 36732225162896895721934328:14:66 36732225162896895721934329:14:67 36732225162896895721934330:14:67 45198578652761699462938623:14:67 45198578652761699462938624:14:68 45198578652761699462938625:14:68 55448176762342779635202920:14:68 55448176762342779635202921:14:69 55448176762342779635202922:14:69 67822307284899999999999999:14:69 67822307284900000000000000:14:70 67822307284900000000000001:14:70 82721210695570328927708880:14:70 82721210695570328927708881:14:71 82721210695570328927708882:14:71 100613197241791537106386943:14:71 100613197241791537106386944:14:72 100613197241791537106386945:14:72 122045014039746588673695408:14:72 122045014039746588673695409:14:73 122045014039746588673695410:14:73 147653612273582215982104575:14:73 147653612273582215982104576:14:74 147653612273582215982104577:14:74 178179480135440826416015624:14:74 178179480135440826416015625:14:75 178179480135440826416015626:14:75 214481724045177216015794175:14:75 214481724045177216015794176:14:76 214481724045177216015794177:14:76 257555099046722087448523608:14:76 257555099046722087448523609:14:77 257555099046722087448523610:14:77 308549209196654470906527743:14:77 308549209196654470906527744:14:78 308549209196654470906527745:14:78 368790120348678391253573280:14:78 368790120348678391253573281:14:79 368790120348678391253573282:14:79 439804651110399999999999999:14:79 439804651110400000000000000:14:80 439804651110400000000000001:14:80 523347633027360537213511520:14:80 523347633027360537213511521:14:81 523347633027360537213511522:14:81 621432458361496515414605823:14:81 621432458361496515414605824:14:82 621432458361496515414605825:14:82 736365263311636486061599128:14:82 736365263311636486061599129:14:83 736365263311636486061599130:14:83 870783126313900412592193535:14:83 870783126313900412592193536:14:84 870783126313900412592193537:14:84 1027696695308843560791015624:14:84 1027696695308843560791015625:14:85 1027696695308843560791015626:14:85 1210537694726365245693116415:14:85 1210537694726365245693116416:14:86 1210537694726365245693116417:14:86 1423211802583135884046255088:14:86 1423211802583135884046255089:14:87 1423211802583135884046255090:14:87 1670157430683097690814808063:14:87 1670157430683097690814808064:14:88 1670157430683097690814808065:14:88 1956410986640441413344189840:14:88 1956410986640441413344189841:14:89 1956410986640441413344189842:14:89 2287679245496099999999999999:14:89 2287679245496100000000000000:14:90 2287679245496100000000000001:14:90 2670419511272061205254504360:14:90 2670419511272061205254504361:14:91 2670419511272061205254504362:14:91 3111928305110923294648827903:14:91 3111928305110923294648827904:14:92 3111928305110923294648827905:14:92 3620439376899076955409413048:14:92 3620439376899076955409413049:14:93 3620439376899076955409413050:14:93 4205231901698742834534301695:14:93 4205231901698742834534301696:14:94 4205231901698742834534301697:14:94 4876749791155298590087890624:14:94 4876749791155298590087890625:14:95 4876749791155298590087890626:14:95 5646733123551136024526585855:14:95 5646733123551136024526585856:14:96 5646733123551136024526585857:14:96 6528362774606076144776040768:14:96 6528362774606076144776040769:14:97 6528362774606076144776040770:14:97 7536419414749019520643907583:14:97 7536419414749019520643907584:14:98 7536419414749019520643907585:14:98 8687458127689783079736908600:14:98 8687458127689783079736908601:14:99 8687458127689783079736908602:14:99 0:15:0 1:15:1 2:15:1 32767:15:1 32768:15:2 32769:15:2 14348906:15:2 14348907:15:3 14348908:15:3 1073741823:15:3 1073741824:15:4 1073741825:15:4 30517578124:15:4 30517578125:15:5 30517578126:15:5 470184984575:15:5 470184984576:15:6 470184984577:15:6 4747561509942:15:6 4747561509943:15:7 4747561509944:15:7 35184372088831:15:7 35184372088832:15:8 35184372088833:15:8 205891132094648:15:8 205891132094649:15:9 205891132094650:15:9 4177248169415650:15:10 4177248169415651:15:11 4177248169415652:15:11 15407021574586367:15:11 15407021574586368:15:12 15407021574586369:15:12 51185893014090756:15:12 51185893014090757:15:13 51185893014090758:15:13 155568095557812223:15:13 155568095557812224:15:14 155568095557812225:15:14 437893890380859374:15:14 437893890380859375:15:15 437893890380859376:15:15 1152921504606846975:15:15 1152921504606846976:15:16 1152921504606846977:15:16 2862423051509815792:15:16 2862423051509815793:15:17 2862423051509815794:15:17 6746640616477458431:15:17 6746640616477458432:15:18 6746640616477458433:15:18 15181127029874798298:15:18 15181127029874798299:15:19 15181127029874798300:15:19 32767999999999999999:15:19 32768000000000000000:15:20 32768000000000000001:15:20 68122318582951682300:15:20 68122318582951682301:15:21 68122318582951682302:15:21 136880068015412051967:15:21 136880068015412051968:15:22 136880068015412051969:15:22 266635235464391245606:15:22 266635235464391245607:15:23 266635235464391245608:15:23 504857282956046106623:15:23 504857282956046106624:15:24 504857282956046106625:15:24 931322574615478515624:15:24 931322574615478515625:15:25 931322574615478515626:15:25 1677259342285725925375:15:25 1677259342285725925376:15:26 1677259342285725925377:15:26 2954312706550833698642:15:26 2954312706550833698643:15:27 2954312706550833698644:15:27 5097655355238390956031:15:27 5097655355238390956032:15:28 5097655355238390956033:15:28 8629188747598184440948:15:28 8629188747598184440949:15:29 8629188747598184440950:15:29 14348906999999999999999:15:29 14348907000000000000000:15:30 14348907000000000000001:15:30 23465261991844685929950:15:30 23465261991844685929951:15:31 23465261991844685929952:15:31 37778931862957161709567:15:31 37778931862957161709568:15:32 37778931862957161709569:15:32 59938945498865420543456:15:32 59938945498865420543457:15:33 59938945498865420543458:15:33 93795878551873643905023:15:33 93795878551873643905024:15:34 93795878551873643905025:15:34 144884079282928466796874:15:34 144884079282928466796875:15:35 144884079282928466796876:15:35 221073919720733357899775:15:35 221073919720733357899776:15:36 221073919720733357899777:15:36 333446267951815307088492:15:36 333446267951815307088493:15:37 333446267951815307088494:15:37 497455170514937390661631:15:37 497455170514937390661632:15:38 497455170514937390661633:15:38 734461618571137961752598:15:38 734461618571137961752599:15:39 734461618571137961752600:15:39 1073741823999999999999999:15:39 1073741824000000000000000:15:40 1073741824000000000000001:15:40 1555098314991537910888600:15:40 1555098314991537910888601:15:41 1555098314991537910888602:15:41 2232232135326160725639167:15:41 2232232135326160725639168:15:42 2232232135326160725639169:15:42 3177070365797955661914306:15:42 3177070365797955661914307:15:43 3177070365797955661914308:15:43 4485286068729022118887423:15:43 4485286068729022118887424:15:44 4485286068729022118887425:15:44 6283298708943145751953124:15:44 6283298708943145751953125:15:45 6283298708943145751953126:15:45 8737103395697172336050175:15:45 8737103395697172336050176:15:46 8737103395697172336050177:15:46 12063348350820368238715342:15:46 12063348350820368238715343:15:47 12063348350820368238715344:15:47 16543163447903718821855231:15:47 16543163447903718821855232:15:48 16543163447903718821855233:15:48 22539340290692258087863248:15:48 22539340290692258087863249:15:49 22539340290692258087863250:15:49 30517578124999999999999999:15:49 30517578125000000000000000:15:50 30517578125000000000000001:15:50 41072642160770556400888250:15:50 41072642160770556400888251:15:51 41072642160770556400888252:15:51 54960434128018667122720767:15:51 54960434128018667122720768:15:52 54960434128018667122720769:15:52 73137151889028619724488156:15:52 73137151889028619724488157:15:53 73137151889028619724488158:15:53 96806918768257718637133823:15:53 96806918768257718637133824:15:54 96806918768257718637133825:15:54 127479497357655364990234374:15:54 127479497357655364990234375:15:55 127479497357655364990234376:15:55 167039970680451594847256575:15:55 167039970680451594847256576:15:56 167039970680451594847256577:15:56 217832579906859702436109192:15:56 217832579906859702436109193:15:57 217832579906859702436109194:15:57 282761256881297307761016831:15:57 282761256881297307761016832:15:58 282761256881297307761016833:15:58 365409786560616989860302898:15:58 365409786560616989860302899:15:59 365409786560616989860302900:15:59 470184984575999999999999999:15:59 470184984576000000000000000:15:60 470184984576000000000000001:15:60 602486784535040403801858900:15:60 602486784535040403801858901:15:61 602486784535040403801858902:15:61 768909704948766668552634367:15:61 768909704948766668552634368:15:62 768909704948766668552634369:15:62 977480813971145474830595006:15:62 977480813971145474830595007:15:63 977480813971145474830595008:15:63 1237940039285380274899124223:15:63 1237940039285380274899124224:15:64 1237940039285380274899124225:15:64 1562069488955406402587890624:15:64 1562069488955406402587890625:15:65 1562069488955406402587890626:15:65 1964079366106822100367998975:15:65 1964079366106822100367998976:15:66 1964079366106822100367998977:15:66 2461059085914092013369600042:15:66 2461059085914092013369600043:15:67 2461059085914092013369600044:15:67 3073503348387795563479826431:15:67 3073503348387795563479826432:15:68 3073503348387795563479826433:15:68 3825924196601651794829001548:15:68 3825924196601651794829001549:15:69 3825924196601651794829001550:15:69 4747561509942999999999999999:15:69 4747561509943000000000000000:15:70 4747561509943000000000000001:15:70 5873205959385493353867330550:15:70 5873205959385493353867330551:15:71 5873205959385493353867330552:15:71 7244150201408990671659859967:15:71 7244150201408990671659859968:15:72 7244150201408990671659859969:15:72 8909286024901500973179764856:15:72 8909286024901500973179764857:15:73 8909286024901500973179764858:15:73 10926367308245083982675738623:15:73 10926367308245083982675738624:15:74 10926367308245083982675738625:15:74 13363461010158061981201171874:15:74 13363461010158061981201171875:15:75 13363461010158061981201171876:15:75 16300611027433468417200357375:15:75 16300611027433468417200357376:15:76 16300611027433468417200357377:15:76 19831742626597600733536317892:15:76 19831742626597600733536317893:15:77 19831742626597600733536317894:15:77 24066838317339048730709164031:15:77 24066838317339048730709164032:15:78 24066838317339048730709164033:15:78 29134419507545592909032289198:15:78 29134419507545592909032289199:15:79 29134419507545592909032289200:15:79 35184372088831999999999999999:15:79 35184372088832000000000000000:15:80 35184372088832000000000000001:15:80 42391158275216203514294433200:15:80 42391158275216203514294433201:15:81 42391158275216203514294433202:15:81 50957461585642714263997677567:15:81 50957461585642714263997677568:15:82 50957461585642714263997677569:15:82 61118316854865828343112727706:15:82 61118316854865828343112727707:15:83 61118316854865828343112727708:15:83 73145782610367634657744257023:15:83 73145782610367634657744257024:15:84 73145782610367634657744257025:15:84 87354219101251702667236328124:15:84 87354219101251702667236328125:15:85 87354219101251702667236328126:15:85 104106241746467411129608011775:15:85 104106241746467411129608011776:15:86 104106241746467411129608011777:15:86 123819426824732821912024192742:15:86 123819426824732821912024192743:15:87 123819426824732821912024192744:15:87 146973853900112596791703109631:15:87 146973853900112596791703109632:15:88 146973853900112596791703109633:15:88 174120577810999285787632895848:15:88 174120577810999285787632895849:15:89 174120577810999285787632895850:15:89 205891132094648999999999999999:15:89 205891132094649000000000000000:15:90 205891132094649000000000000001:15:90 243008175525757569678159896850:15:90 243008175525757569678159896851:15:91 243008175525757569678159896852:15:91 286297404070204943107692167167:15:91 286297404070204943107692167168:15:92 286297404070204943107692167169:15:92 336700862051614156853075413556:15:92 336700862051614156853075413557:15:93 336700862051614156853075413558:15:93 395291798759681826446224359423:15:93 395291798759681826446224359424:15:94 395291798759681826446224359425:15:94 463291230159753366058349609374:15:94 463291230159753366058349609375:15:95 463291230159753366058349609376:15:95 542086379860909058354552242175:15:95 542086379860909058354552242176:15:96 542086379860909058354552242177:15:96 633251189136789386043275954592:15:96 633251189136789386043275954593:15:97 633251189136789386043275954594:15:97 738569102645403913023102943231:15:97 738569102645403913023102943232:15:98 738569102645403913023102943233:15:98 860058354641288524893953951498:15:98 860058354641288524893953951499:15:99 860058354641288524893953951500:15:99 0:17:0 1:17:1 2:17:1 131071:17:1 131072:17:2 131073:17:2 129140162:17:2 129140163:17:3 129140164:17:3 17179869183:17:3 17179869184:17:4 17179869185:17:4 762939453124:17:4 762939453125:17:5 762939453126:17:5 16926659444735:17:5 16926659444736:17:6 16926659444737:17:6 232630513987206:17:6 232630513987207:17:7 232630513987208:17:7 2251799813685247:17:7 2251799813685248:17:8 2251799813685249:17:8 16677181699666568:17:8 16677181699666569:17:9 16677181699666570:17:9 505447028499293770:17:10 505447028499293771:17:11 505447028499293772:17:11 2218611106740436991:17:11 2218611106740436992:17:12 2218611106740436993:17:12 8650415919381337932:17:12 8650415919381337933:17:13 8650415919381337934:17:13 30491346729331195903:17:13 30491346729331195904:17:14 30491346729331195905:17:14 98526125335693359374:17:14 98526125335693359375:17:15 98526125335693359376:17:15 295147905179352825855:17:15 295147905179352825856:17:16 295147905179352825857:17:16 827240261886336764176:17:16 827240261886336764177:17:17 827240261886336764178:17:17 2185911559738696531967:17:17 2185911559738696531968:17:18 2185911559738696531969:17:18 5480386857784802185938:17:18 5480386857784802185939:17:19 5480386857784802185940:17:19 13107199999999999999999:17:19 13107200000000000000000:17:20 13107200000000000000001:17:20 30041942495081691894740:17:20 30041942495081691894741:17:21 30041942495081691894742:17:21 66249952919459433152511:17:21 66249952919459433152512:17:22 66249952919459433152513:17:22 141050039560662968926102:17:22 141050039560662968926103:17:23 141050039560662968926104:17:23 290797794982682557415423:17:23 290797794982682557415424:17:24 290797794982682557415425:17:24 582076609134674072265624:17:24 582076609134674072265625:17:25 582076609134674072265626:17:25 1133827315385150725554175:17:25 1133827315385150725554176:17:26 1133827315385150725554177:17:26 2153693963075557766310746:17:26 2153693963075557766310747:17:27 2153693963075557766310748:17:27 3996561798506898509529087:17:27 3996561798506898509529088:17:28 3996561798506898509529089:17:28 7257147736730073114838108:17:28 7257147736730073114838109:17:29 7257147736730073114838110:17:29 12914016299999999999999999:17:29 12914016300000000000000000:17:30 12914016300000000000000001:17:30 22550116774162743178682910:17:30 22550116774162743178682911:17:31 22550116774162743178682912:17:31 38685626227668133590597631:17:31 38685626227668133590597632:17:32 38685626227668133590597633:17:32 65273511648264442971824672:17:32 65273511648264442971824673:17:33 65273511648264442971824674:17:33 108428035605965932354207743:17:33 108428035605965932354207744:17:34 108428035605965932354207745:17:34 177482997121587371826171874:17:34 177482997121587371826171875:17:35 177482997121587371826171876:17:35 286511799958070431838109695:17:35 286511799958070431838109696:17:36 286511799958070431838109697:17:36 456487940826035155404146916:17:36 456487940826035155404146917:17:37 456487940826035155404146918:17:37 718325266223569592115396607:17:37 718325266223569592115396608:17:38 718325266223569592115396609:17:38 1117116121846700839825703078:17:38 1117116121846700839825703079:17:39 1117116121846700839825703080:17:39 1717986918399999999999999999:17:39 1717986918400000000000000000:17:40 1717986918400000000000000001:17:40 2614120267500775228203738280:17:40 2614120267500775228203738281:17:41 2614120267500775228203738282:17:41 3937657486715347520027492351:17:41 3937657486715347520027492352:17:42 3937657486715347520027492353:17:42 5874403106360420018879553642:17:42 5874403106360420018879553643:17:43 5874403106360420018879553644:17:43 8683513829059386822166052863:17:43 8683513829059386822166052864:17:44 8683513829059386822166052865:17:44 12723679885609870147705078124:17:44 12723679885609870147705078125:17:45 12723679885609870147705078126:17:45 18487710785295216663082172415:17:45 18487710785295216663082172416:17:46 18487710785295216663082172417:17:46 26647936506962193439322192686:17:46 26647936506962193439322192687:17:47 26647936506962193439322192688:17:47 38115448583970168165554454527:17:47 38115448583970168165554454528:17:48 38115448583970168165554454529:17:48 54116956037952111668959660848:17:48 54116956037952111668959660849:17:49 54116956037952111668959660850:17:49 76293945312499999999999999999:17:49 76293945312500000000000000000:17:50 76293945312500000000000000001:17:50 106829942260164217198710340850:17:50 106829942260164217198710340851:17:51 106829942260164217198710340852:17:51 148613013882162475899836956671:17:51 148613013882162475899836956672:17:52 148613013882162475899836956673:17:52 205442259656281392806087233012:17:52 205442259656281392806087233013:17:53 205442259656281392806087233014:17:53 282288975128239507545882230783:17:53 282288975128239507545882230784:17:54 282288975128239507545882230785:17:54 385625479506907479095458984374:17:54 385625479506907479095458984375:17:55 385625479506907479095458984376:17:55 523837348053896201440996622335:17:55 523837348053896201440996622336:17:56 523837348053896201440996622337:17:56 707738052117387173214918768056:17:56 707738052117387173214918768057:17:57 707738052117387173214918768058:17:57 951208868148684143308060622847:17:57 951208868148684143308060622848:17:58 951208868148684143308060622849:17:58 1271991467017507741703714391418:17:58 1271991467017507741703714391419:17:59 1271991467017507741703714391420:17:59 1692665944473599999999999999999:17:59 1692665944473600000000000000000:17:60 1692665944473600000000000000001:17:60 2241853325254885342546716970620:17:60 2241853325254885342546716970621:17:61 2241853325254885342546716970622:17:61 2955688905823059073916326510591:17:61 2955688905823059073916326510592:17:62 2955688905823059073916326510593:17:62 3879621350651476389602631582782:17:62 3879621350651476389602631582783:17:63 3879621350651476389602631582784:17:63 5070602400912917605986812821503:17:63 5070602400912917605986812821504:17:64 5070602400912917605986812821505:17:64 6599743590836592050933837890624:17:64 6599743590836592050933837890625:17:65 6599743590836592050933837890626:17:65 8555529718761317069203003539455:17:65 8555529718761317069203003539456:17:66 8555529718761317069203003539457:17:66 11047694236668359048016134593026:17:66 11047694236668359048016134593027:17:67 11047694236668359048016134593028:17:67 14211879482945166685530717421567:17:67 14211879482945166685530717421568:17:68 14211879482945166685530717421569:17:68 18215225100020464195180876374788:17:68 18215225100020464195180876374789:17:69 18215225100020464195180876374790:17:69 23263051398720699999999999999999:17:69 23263051398720700000000000000000:17:70 23263051398720700000000000000001:17:70 29606831241262271996845213307590:17:70 29606831241262271996845213307591:17:71 29606831241262271996845213307592:17:71 37553674644104207641884714074111:17:71 37553674644104207641884714074112:17:72 37553674644104207641884714074113:17:72 47477585226700098686074966922952:17:72 47477585226700098686074966922953:17:73 47477585226700098686074966922954:17:73 59832787379950079889132344705023:17:73 59832787379950079889132344705024:17:74 59832787379950079889132344705025:17:74 75169468182139098644256591796874:17:74 75169468182139098644256591796875:17:75 75169468182139098644256591796876:17:75 94152329294455713577749264203775:17:75 94152329294455713577749264203776:17:76 94152329294455713577749264203777:17:76 117582402033097174749136828787596:17:76 117582402033097174749136828787597:17:77 117582402033097174749136828787598:17:77 146422644322690772477634553970687:17:77 146422644322690772477634553970688:17:78 146422644322690772477634553970689:17:78 181827912146592045345270516890958:17:78 181827912146592045345270516890959:17:79 181827912146592045345270516890960:17:79 225179981368524799999999999999999:17:79 225179981368524800000000000000000:17:80 225179981368524800000000000000001:17:80 278128389443693511257285776231760:17:80 278128389443693511257285776231761:17:81 278128389443693511257285776231762:17:81 342637971701861610711120383967231:17:81 342637971701861610711120383967232:17:82 342637971701861610711120383967233:17:82 421044084813170691455703581173522:17:82 421044084813170691455703581173523:17:83 421044084813170691455703581173524:17:83 516116642098754030145043477561343:17:83 516116642098754030145043477561344:17:84 516116642098754030145043477561345:17:84 631134233006543551770782470703124:17:84 631134233006543551770782470703125:17:85 631134233006543551770782470703126:17:85 769969763956872972714580855095295:17:85 769969763956872972714580855095296:17:86 769969763956872972714580855095297:17:86 937189241636402729052111114871766:17:86 937189241636402729052111114871767:17:87 937189241636402729052111114871768:17:87 1138165524602471949554948880990207:17:87 1138165524602471949554948880990208:17:88 1138165524602471949554948880990209:17:88 1379209096840925342723840168019928:17:88 1379209096840925342723840168019929:17:89 1379209096840925342723840168019930:17:89 1667718169966656899999999999999999:17:89 1667718169966656900000000000000000:17:90 1667718169966656900000000000000001:17:90 2012350701528798434504842105823130:17:90 2012350701528798434504842105823131:17:91 2012350701528798434504842105823132:17:91 2423221228050214638463506502909951:17:91 2423221228050214638463506502909952:17:92 2423221228050214638463506502909953:17:92 2912125755884410842622249251854492:17:92 2912125755884410842622249251854493:17:93 2912125755884410842622249251854494:17:93 3492798333840548618478838439870463:17:93 3492798333840548618478838439870464:17:94 3492798333840548618478838439870465:17:94 4181203352191774128676605224609374:17:94 4181203352191774128676605224609375:17:95 4181203352191774128676605224609376:17:95 4995868076798137881795553463894015:17:95 4995868076798137881795553463894016:17:96 4995868076798137881795553463894017:17:96 5958260438588051333281183456765536:17:96 5958260438588051333281183456765537:17:97 5958260438588051333281183456765538:17:97 7093217661806459180673880666800127:17:97 7093217661806459180673880666800128:17:98 7093217661806459180673880666800129:17:98 8429431933839268832485642678641698:17:98 8429431933839268832485642678641699:17:99 8429431933839268832485642678641700:17:99 0:18:0 1:18:1 2:18:1 262143:18:1 262144:18:2 262145:18:2 387420488:18:2 387420489:18:3 387420490:18:3 68719476735:18:3 68719476736:18:4 68719476737:18:4 3814697265624:18:4 3814697265625:18:5 3814697265626:18:5 101559956668415:18:5 101559956668416:18:6 101559956668417:18:6 1628413597910448:18:6 1628413597910449:18:7 1628413597910450:18:7 18014398509481983:18:7 18014398509481984:18:8 18014398509481985:18:8 150094635296999120:18:8 150094635296999121:18:9 150094635296999122:18:9 5559917313492231480:18:10 5559917313492231481:18:11 5559917313492231482:18:11 26623333280885243903:18:11 26623333280885243904:18:12 26623333280885243905:18:12 112455406951957393128:18:12 112455406951957393129:18:13 112455406951957393130:18:13 426878854210636742655:18:13 426878854210636742656:18:14 426878854210636742657:18:14 1477891880035400390624:18:14 1477891880035400390625:18:15 1477891880035400390626:18:15 4722366482869645213695:18:15 4722366482869645213696:18:16 4722366482869645213697:18:16 14063084452067724991008:18:16 14063084452067724991009:18:17 14063084452067724991010:18:17 39346408075296537575423:18:17 39346408075296537575424:18:18 39346408075296537575425:18:18 104127350297911241532840:18:18 104127350297911241532841:18:19 104127350297911241532842:18:19 262143999999999999999999:18:19 262144000000000000000000:18:20 262144000000000000000001:18:20 630880792396715529789560:18:20 630880792396715529789561:18:21 630880792396715529789562:18:21 1457498964228107529355263:18:21 1457498964228107529355264:18:22 1457498964228107529355265:18:22 3244150909895248285300368:18:22 3244150909895248285300369:18:23 3244150909895248285300370:18:23 6979147079584381377970175:18:23 6979147079584381377970176:18:24 6979147079584381377970177:18:24 14551915228366851806640624:18:24 14551915228366851806640625:18:25 14551915228366851806640626:18:25 29479510200013918864408575:18:25 29479510200013918864408576:18:26 29479510200013918864408577:18:26 58149737003040059690390168:18:26 58149737003040059690390169:18:27 58149737003040059690390170:18:27 111903730358193158266814463:18:27 111903730358193158266814464:18:28 111903730358193158266814465:18:28 210457284365172120330305160:18:28 210457284365172120330305161:18:29 210457284365172120330305162:18:29 387420488999999999999999999:18:29 387420489000000000000000000:18:30 387420489000000000000000001:18:30 699053619999045038539170240:18:30 699053619999045038539170241:18:31 699053619999045038539170242:18:31 1237940039285380274899124223:18:31 1237940039285380274899124224:18:32 1237940039285380274899124225:18:32 2154025884392726618070214208:18:32 2154025884392726618070214209:18:33 2154025884392726618070214210:18:33 3686553210602841700043063295:18:33 3686553210602841700043063296:18:34 3686553210602841700043063297:18:34 6211904899255558013916015624:18:34 6211904899255558013916015625:18:35 6211904899255558013916015626:18:35 10314424798490535546171949055:18:35 10314424798490535546171949056:18:36 10314424798490535546171949057:18:36 16890053810563300749953435928:18:36 16890053810563300749953435929:18:37 16890053810563300749953435930:18:37 27296360116495644500385071103:18:37 27296360116495644500385071104:18:38 27296360116495644500385071105:18:38 43567528752021332753202420080:18:38 43567528752021332753202420081:18:39 43567528752021332753202420082:18:39 68719476735999999999999999999:18:39 68719476736000000000000000000:18:40 68719476736000000000000000001:18:40 107178930967531784356353269520:18:40 107178930967531784356353269521:18:41 107178930967531784356353269522:18:41 165381614442044595841154678783:18:41 165381614442044595841154678784:18:42 165381614442044595841154678785:18:42 252599333573498060811820806648:18:42 252599333573498060811820806649:18:43 252599333573498060811820806650:18:43 382074608478613020175306326015:18:43 382074608478613020175306326016:18:44 382074608478613020175306326017:18:44 572565594852444156646728515624:18:44 572565594852444156646728515625:18:45 572565594852444156646728515626:18:45 850434696123579966501779931135:18:45 850434696123579966501779931136:18:46 850434696123579966501779931137:18:46 1252453015827223091648143056288:18:46 1252453015827223091648143056289:18:47 1252453015827223091648143056290:18:47 1829541532030568071946613817343:18:47 1829541532030568071946613817344:18:48 1829541532030568071946613817345:18:48 2651730845859653471779023381600:18:48 2651730845859653471779023381601:18:49 2651730845859653471779023381602:18:49 3814697265624999999999999999999:18:49 3814697265625000000000000000000:18:50 3814697265625000000000000000001:18:50 5448327055268375077134227383400:18:50 5448327055268375077134227383401:18:51 5448327055268375077134227383402:18:51 7727876721872448746791521746943:18:51 7727876721872448746791521746944:18:52 7727876721872448746791521746945:18:52 10888439761782913818722623349688:18:52 10888439761782913818722623349689:18:53 10888439761782913818722623349690:18:53 15243604656924933407477640462335:18:53 15243604656924933407477640462336:18:54 15243604656924933407477640462337:18:54 21209401372879911350250244140624:18:54 21209401372879911350250244140625:18:55 21209401372879911350250244140626:18:55 29334891491018187280695810850815:18:55 29334891491018187280695810850816:18:56 29334891491018187280695810850817:18:56 40341068970691068873250369779248:18:56 40341068970691068873250369779249:18:57 40341068970691068873250369779250:18:57 55170114352623680311867516125183:18:57 55170114352623680311867516125184:18:58 55170114352623680311867516125185:18:58 75047496554032956760519149093720:18:58 75047496554032956760519149093721:18:59 75047496554032956760519149093722:18:59 101559956668415999999999999999999:18:59 101559956668416000000000000000000:18:60 101559956668416000000000000000001:18:60 136753052840548005895349735207880:18:60 136753052840548005895349735207881:18:61 136753052840548005895349735207882:18:61 183252712161029662582812243656703:18:61 183252712161029662582812243656704:18:62 183252712161029662582812243656705:18:62 244416145091043012544965789715328:18:62 244416145091043012544965789715329:18:63 244416145091043012544965789715330:18:63 324518553658426726783156020576255:18:63 324518553658426726783156020576256:18:64 324518553658426726783156020576257:18:64 428983333404378483310699462890624:18:64 428983333404378483310699462890625:18:65 428983333404378483310699462890626:18:65 564664961438246926567398233604095:18:65 564664961438246926567398233604096:18:66 564664961438246926567398233604097:18:66 740195513856780056217081017732808:18:66 740195513856780056217081017732809:18:67 740195513856780056217081017732810:18:67 966407804840271334616088784666623:18:67 966407804840271334616088784666624:18:68 966407804840271334616088784666625:18:68 1256850531901412029467480469860440:18:68 1256850531901412029467480469860441:18:69 1256850531901412029467480469860442:18:69 1628413597910448999999999999999999:18:69 1628413597910449000000000000000000:18:70 1628413597910449000000000000000001:18:70 2102085018129621311776010144838960:18:70 2102085018129621311776010144838961:18:71 2102085018129621311776010144838962:18:71 2703864574375502950215699413336063:18:71 2703864574375502950215699413336064:18:72 2703864574375502950215699413336065:18:72 3465863721549107204083472585375568:18:72 3465863721549107204083472585375569:18:73 3465863721549107204083472585375570:18:73 4427626266116305911795793508171775:18:73 4427626266116305911795793508171776:18:74 4427626266116305911795793508171777:18:74 5637710113660432398319244384765624:18:74 5637710113660432398319244384765625:18:75 5637710113660432398319244384765626:18:75 7155577026378634231908944079486975:18:75 7155577026378634231908944079486976:18:76 7155577026378634231908944079486977:18:76 9053844956548482455683535816644968:18:76 9053844956548482455683535816644969:18:77 9053844956548482455683535816644970:18:77 11420966257169880253255495209713663:18:77 11420966257169880253255495209713664:18:78 11420966257169880253255495209713665:18:78 14364405059580771582276370834385760:18:78 14364405059580771582276370834385761:18:79 14364405059580771582276370834385762:18:79 18014398509481983999999999999999999:18:79 18014398509481984000000000000000000:18:80 18014398509481984000000000000000001:18:80 22528399544939174411840147874772640:18:80 22528399544939174411840147874772641:18:81 22528399544939174411840147874772642:18:81 28096313679552652078311871485313023:18:81 28096313679552652078311871485313024:18:82 28096313679552652078311871485313025:18:82 34946659039493167390823397237402408:18:82 34946659039493167390823397237402409:18:83 34946659039493167390823397237402410:18:83 43353797936295338532183652115152895:18:83 43353797936295338532183652115152896:18:84 43353797936295338532183652115152897:18:84 53646409805556201900516510009765624:18:84 53646409805556201900516510009765625:18:85 53646409805556201900516510009765626:18:85 66217399700291075653453953538195455:18:85 66217399700291075653453953538195456:18:86 66217399700291075653453953538195457:18:86 81535464022367037427533666993843728:18:86 81535464022367037427533666993843729:18:87 81535464022367037427533666993843730:18:87 100158566165017531560835501527138303:18:87 100158566165017531560835501527138304:18:88 100158566165017531560835501527138305:18:88 122749609618842355502421774953773680:18:88 122749609618842355502421774953773681:18:89 122749609618842355502421774953773682:18:89 150094635296999120999999999999999999:18:89 150094635296999121000000000000000000:18:90 150094635296999121000000000000000001:18:90 183123913839120657539940631629904920:18:90 183123913839120657539940631629904921:18:91 183123913839120657539940631629904922:18:91 222936352980619746738642598267715583:18:91 222936352980619746738642598267715584:18:92 222936352980619746738642598267715585:18:92 270827695297250208363869180422467848:18:92 270827695297250208363869180422467849:18:93 270827695297250208363869180422467850:18:93 328323043381011570137010813347823615:18:93 328323043381011570137010813347823616:18:94 328323043381011570137010813347823617:18:94 397214318458218542224277496337890624:18:94 397214318458218542224277496337890625:18:95 397214318458218542224277496337890626:18:95 479603335372621236652373132533825535:18:95 479603335372621236652373132533825536:18:96 479603335372621236652373132533825537:18:96 577951262543040979328274795306257088:18:96 577951262543040979328274795306257089:18:97 577951262543040979328274795306257090:18:97 695135330857032999706040305346412543:18:97 695135330857032999706040305346412544:18:98 695135330857032999706040305346412545:18:98 834513761450087614416078625185528200:18:98 834513761450087614416078625185528201:18:99 834513761450087614416078625185528202:18:99 0:19:0 1:19:1 2:19:1 524287:19:1 524288:19:2 524289:19:2 1162261466:19:2 1162261467:19:3 1162261468:19:3 274877906943:19:3 274877906944:19:4 274877906945:19:4 19073486328124:19:4 19073486328125:19:5 19073486328126:19:5 609359740010495:19:5 609359740010496:19:6 609359740010497:19:6 11398895185373142:19:6 11398895185373143:19:7 11398895185373144:19:7 144115188075855871:19:7 144115188075855872:19:8 144115188075855873:19:8 1350851717672992088:19:8 1350851717672992089:19:9 1350851717672992090:19:9 61159090448414546290:19:10 61159090448414546291:19:11 61159090448414546292:19:11 319479999370622926847:19:11 319479999370622926848:19:12 319479999370622926849:19:12 1461920290375446110676:19:12 1461920290375446110677:19:13 1461920290375446110678:19:13 5976303958948914397183:19:13 5976303958948914397184:19:14 5976303958948914397185:19:14 22168378200531005859374:19:14 22168378200531005859375:19:15 22168378200531005859376:19:15 75557863725914323419135:19:15 75557863725914323419136:19:16 75557863725914323419137:19:16 239072435685151324847152:19:16 239072435685151324847153:19:17 239072435685151324847154:19:17 708235345355337676357631:19:17 708235345355337676357632:19:18 708235345355337676357633:19:18 1978419655660313589123978:19:18 1978419655660313589123979:19:19 1978419655660313589123980:19:19 5242879999999999999999999:19:19 5242880000000000000000000:19:20 5242880000000000000000001:19:20 13248496640331026125580780:19:20 13248496640331026125580781:19:21 13248496640331026125580782:19:21 32064977213018365645815807:19:21 32064977213018365645815808:19:22 32064977213018365645815809:19:22 74615470927590710561908486:19:22 74615470927590710561908487:19:23 74615470927590710561908488:19:23 167499529910025153071284223:19:23 167499529910025153071284224:19:24 167499529910025153071284225:19:24 363797880709171295166015624:19:24 363797880709171295166015625:19:25 363797880709171295166015626:19:25 766467265200361890474622975:19:25 766467265200361890474622976:19:26 766467265200361890474622977:19:26 1570042899082081611640534562:19:26 1570042899082081611640534563:19:27 1570042899082081611640534564:19:27 3133304450029408431470804991:19:27 3133304450029408431470804992:19:28 3133304450029408431470804993:19:28 6103261246589991489578849668:19:28 6103261246589991489578849669:19:29 6103261246589991489578849670:19:29 11622614669999999999999999999:19:29 11622614670000000000000000000:19:30 11622614670000000000000000001:19:30 21670662219970396194714277470:19:30 21670662219970396194714277471:19:31 21670662219970396194714277472:19:31 39614081257132168796771975167:19:31 39614081257132168796771975168:19:32 39614081257132168796771975169:19:32 71082854184959978396317068896:19:32 71082854184959978396317068897:19:33 71082854184959978396317068898:19:33 125342809160496617801464152063:19:33 125342809160496617801464152064:19:34 125342809160496617801464152065:19:34 217416671473944530487060546874:19:34 217416671473944530487060546875:19:35 217416671473944530487060546876:19:35 371319292745659279662190166015:19:35 371319292745659279662190166016:19:36 371319292745659279662190166017:19:36 624931990990842127748277129372:19:36 624931990990842127748277129373:19:37 624931990990842127748277129374:19:37 1037261684426834491014632701951:19:37 1037261684426834491014632701952:19:38 1037261684426834491014632701953:19:38 1699133621328831977374894383158:19:38 1699133621328831977374894383159:19:39 1699133621328831977374894383160:19:39 2748779069439999999999999999999:19:39 2748779069440000000000000000000:19:40 2748779069440000000000000000001:19:40 4394336169668803158610484050360:19:40 4394336169668803158610484050361:19:41 4394336169668803158610484050362:19:41 6946027806565873025328496508927:19:41 6946027806565873025328496508928:19:42 6946027806565873025328496508929:19:42 10861771343660416614908294685906:19:42 10861771343660416614908294685907:19:43 10861771343660416614908294685908:19:43 16811282773058972887713478344703:19:43 16811282773058972887713478344704:19:44 16811282773058972887713478344705:19:44 25765451768359987049102783203124:19:44 25765451768359987049102783203125:19:45 25765451768359987049102783203126:19:45 39119996021684678459081876832255:19:45 39119996021684678459081876832256:19:46 39119996021684678459081876832257:19:46 58865291743879485307462723645582:19:46 58865291743879485307462723645583:19:47 58865291743879485307462723645584:19:47 87817993537467267453437463232511:19:47 87817993537467267453437463232512:19:48 87817993537467267453437463232513:19:48 129934811447123020117172145698448:19:48 129934811447123020117172145698449:19:49 129934811447123020117172145698450:19:49 190734863281249999999999999999999:19:49 190734863281250000000000000000000:19:50 190734863281250000000000000000001:19:50 277864679818687128933845596553450:19:50 277864679818687128933845596553451:19:51 277864679818687128933845596553452:19:51 401849589537367334833159130841087:19:51 401849589537367334833159130841088:19:52 401849589537367334833159130841089:19:52 577087307374494432392299037533516:19:52 577087307374494432392299037533517:19:53 577087307374494432392299037533518:19:53 823154651473946404003792584966143:19:53 823154651473946404003792584966144:19:54 823154651473946404003792584966145:19:54 1166517075508395124263763427734374:19:54 1166517075508395124263763427734375:19:55 1166517075508395124263763427734376:19:55 1642753923497018487718965407645695:19:55 1642753923497018487718965407645696:19:56 1642753923497018487718965407645697:19:56 2299440931329390925775271077417192:19:56 2299440931329390925775271077417193:19:57 2299440931329390925775271077417194:19:57 3199866632452173458088315935260671:19:57 3199866632452173458088315935260672:19:58 3199866632452173458088315935260673:19:58 4427802296687944448870629796529538:19:58 4427802296687944448870629796529539:19:59 4427802296687944448870629796529540:19:59 6093597400104959999999999999999999:19:59 6093597400104960000000000000000000:19:60 6093597400104960000000000000000001:19:60 8341936223273428359616333847680740:19:60 8341936223273428359616333847680741:19:61 8341936223273428359616333847680742:19:61 11361668153983839080134359106715647:19:61 11361668153983839080134359106715648:19:62 11361668153983839080134359106715649:19:62 15398217140735709790332844752065726:19:62 15398217140735709790332844752065727:19:63 15398217140735709790332844752065728:19:63 20769187434139310514121985316880383:19:63 20769187434139310514121985316880384:19:64 20769187434139310514121985316880385:19:64 27883916671284601415195465087890624:19:64 27883916671284601415195465087890625:19:65 27883916671284601415195465087890626:19:65 37267887454924297153448283417870335:19:65 37267887454924297153448283417870336:19:66 37267887454924297153448283417870337:19:66 49593099428404263766544428188098202:19:66 49593099428404263766544428188098203:19:67 49593099428404263766544428188098204:19:67 65715730729138450753894037357330431:19:67 65715730729138450753894037357330432:19:68 65715730729138450753894037357330433:19:68 86722686701197430033256152420370428:19:68 86722686701197430033256152420370429:19:69 86722686701197430033256152420370430:19:69 113988951853731429999999999999999999:19:69 113988951853731430000000000000000000:19:70 113988951853731430000000000000000001:19:70 149248036287203113136096720283566230:19:70 149248036287203113136096720283566231:19:71 149248036287203113136096720283566232:19:71 194678249355036212415530357760196607:19:71 194678249355036212415530357760196608:19:72 194678249355036212415530357760196609:19:72 253008051673084825898093498732416536:19:72 253008051673084825898093498732416537:19:73 253008051673084825898093498732416538:19:73 327644343692606637472888719604711423:19:73 327644343692606637472888719604711424:19:74 327644343692606637472888719604711425:19:74 422828258524532429873943328857421874:19:74 422828258524532429873943328857421875:19:75 422828258524532429873943328857421876:19:75 543823854004776201625079750041010175:19:75 543823854004776201625079750041010176:19:76 543823854004776201625079750041010177:19:76 697146061654233149087632257881662612:19:76 697146061654233149087632257881662613:19:77 697146061654233149087632257881662614:19:77 890835368059250659753928626357665791:19:77 890835368059250659753928626357665792:19:78 890835368059250659753928626357665793:19:78 1134787999706880954999833295916475118:19:78 1134787999706880954999833295916475119:19:79 1134787999706880954999833295916475120:19:79 1441151880758558719999999999999999999:19:79 1441151880758558720000000000000000000:19:80 1441151880758558720000000000000000001:19:80 1824800363140073127359051977856583920:19:80 1824800363140073127359051977856583921:19:81 1824800363140073127359051977856583922:19:81 2303897721723317470421573461795667967:19:81 2303897721723317470421573461795667968:19:82 2303897721723317470421573461795667969:19:82 2900572700277932893438341970704399946:19:82 2900572700277932893438341970704399947:19:83 2900572700277932893438341970704399948:19:83 3641719026648808436703426777672843263:19:83 3641719026648808436703426777672843264:19:84 3641719026648808436703426777672843265:19:84 4559944833472277161543903350830078124:19:84 4559944833472277161543903350830078125:19:85 4559944833472277161543903350830078126:19:85 5694696374225032506197040004284809215:19:85 5694696374225032506197040004284809216:19:86 5694696374225032506197040004284809217:19:86 7093585369945932256195429028464404422:19:86 7093585369945932256195429028464404423:19:87 7093585369945932256195429028464404424:19:87 8813953822521542777353524134388170751:19:87 8813953822521542777353524134388170752:19:88 8813953822521542777353524134388170753:19:88 10924715256076969639715537970885857608:19:88 10924715256076969639715537970885857609:19:89 10924715256076969639715537970885857610:19:89 13508517176729920889999999999999999999:19:89 13508517176729920890000000000000000000:19:90 13508517176729920890000000000000000001:19:90 16664276159359979836134597478321347810:19:90 16664276159359979836134597478321347811:19:91 16664276159359979836134597478321347812:19:91 20510144474217016699955119040629833727:19:91 20510144474217016699955119040629833728:19:92 20510144474217016699955119040629833729:19:92 25186975662644269377839833779289509956:19:92 25186975662644269377839833779289509957:19:93 25186975662644269377839833779289509958:19:93 30862366077815087592879016454695419903:19:93 30862366077815087592879016454695419904:19:94 30862366077815087592879016454695419905:19:94 37735360253530761511306362152099609374:19:94 37735360253530761511306362152099609375:19:95 37735360253530761511306362152099609376:19:95 46041920195771638718627820723247251455:19:95 46041920195771638718627820723247251456:19:96 46041920195771638718627820723247251457:19:96 56061272466674974994842655144706937632:19:96 56061272466674974994842655144706937633:19:97 56061272466674974994842655144706937634:19:97 68123262423989233971191949923948429311:19:97 68123262423989233971191949923948429312:19:98 68123262423989233971191949923948429313:19:98 82616862383558673827191783893367291898:19:98 82616862383558673827191783893367291899:19:99 82616862383558673827191783893367291900:19:99 0:20:0 1:20:1 2:20:1 1048575:20:1 1048576:20:2 1048577:20:2 3486784400:20:2 3486784401:20:3 3486784402:20:3 1099511627775:20:3 1099511627776:20:4 1099511627777:20:4 95367431640624:20:4 95367431640625:20:5 95367431640626:20:5 3656158440062975:20:5 3656158440062976:20:6 3656158440062977:20:6 79792266297612000:20:6 79792266297612001:20:7 79792266297612002:20:7 1152921504606846975:20:7 1152921504606846976:20:8 1152921504606846977:20:8 12157665459056928800:20:8 12157665459056928801:20:9 12157665459056928802:20:9 672749994932560009200:20:10 672749994932560009201:20:11 672749994932560009202:20:11 3833759992447475122175:20:11 3833759992447475122176:20:12 3833759992447475122177:20:12 19004963774880799438800:20:12 19004963774880799438801:20:13 19004963774880799438802:20:13 83668255425284801560575:20:13 83668255425284801560576:20:14 83668255425284801560577:20:14 332525673007965087890624:20:14 332525673007965087890625:20:15 332525673007965087890626:20:15 1208925819614629174706175:20:15 1208925819614629174706176:20:16 1208925819614629174706177:20:16 4064231406647572522401600:20:16 4064231406647572522401601:20:17 4064231406647572522401602:20:17 12748236216396078174437375:20:17 12748236216396078174437376:20:18 12748236216396078174437377:20:18 37589973457545958193355600:20:18 37589973457545958193355601:20:19 37589973457545958193355602:20:19 104857599999999999999999999:20:19 104857600000000000000000000:20:20 104857600000000000000000001:20:20 278218429446951548637196400:20:20 278218429446951548637196401:20:21 278218429446951548637196402:20:21 705429498686404044207947775:20:21 705429498686404044207947776:20:22 705429498686404044207947777:20:22 1716155831334586342923895200:20:22 1716155831334586342923895201:20:23 1716155831334586342923895202:20:23 4019988717840603673710821375:20:23 4019988717840603673710821376:20:24 4019988717840603673710821377:20:24 9094947017729282379150390624:20:24 9094947017729282379150390625:20:25 9094947017729282379150390626:20:25 19928148895209409152340197375:20:25 19928148895209409152340197376:20:26 19928148895209409152340197377:20:26 42391158275216203514294433200:20:26 42391158275216203514294433201:20:27 42391158275216203514294433202:20:27 87732524600823436081182539775:20:27 87732524600823436081182539776:20:28 87732524600823436081182539777:20:28 176994576151109753197786640400:20:28 176994576151109753197786640401:20:29 176994576151109753197786640402:20:29 348678440099999999999999999999:20:29 348678440100000000000000000000:20:30 348678440100000000000000000001:20:30 671790528819082282036142601600:20:30 671790528819082282036142601601:20:31 671790528819082282036142601602:20:31 1267650600228229401496703205375:20:31 1267650600228229401496703205376:20:32 1267650600228229401496703205377:20:32 2345734188103679287078463273600:20:32 2345734188103679287078463273601:20:33 2345734188103679287078463273602:20:33 4261655511456885005249781170175:20:33 4261655511456885005249781170176:20:34 4261655511456885005249781170177:20:34 7609583501588058567047119140624:20:34 7609583501588058567047119140625:20:35 7609583501588058567047119140626:20:35 13367494538843734067838845976575:20:35 13367494538843734067838845976576:20:36 13367494538843734067838845976577:20:36 23122483666661158726686253786800:20:36 23122483666661158726686253786801:20:37 23122483666661158726686253786802:20:37 39415944008219710658556042674175:20:37 39415944008219710658556042674176:20:38 39415944008219710658556042674177:20:38 66266211231824447117620880943200:20:38 66266211231824447117620880943201:20:39 66266211231824447117620880943202:20:39 109951162777599999999999999999999:20:39 109951162777600000000000000000000:20:40 109951162777600000000000000000001:20:40 180167782956420929503029846064800:20:40 180167782956420929503029846064801:20:41 180167782956420929503029846064802:20:41 291733167875766667063796853374975:20:41 291733167875766667063796853374976:20:42 291733167875766667063796853374977:20:42 467056167777397914441056671494000:20:42 467056167777397914441056671494001:20:43 467056167777397914441056671494002:20:43 739696442014594807059393047166975:20:43 739696442014594807059393047166976:20:44 739696442014594807059393047166977:20:44 1159445329576199417209625244140624:20:44 1159445329576199417209625244140625:20:45 1159445329576199417209625244140626:20:45 1799519816997495209117766334283775:20:45 1799519816997495209117766334283776:20:46 1799519816997495209117766334283777:20:46 2766668711962335809450748011342400:20:46 2766668711962335809450748011342401:20:47 2766668711962335809450748011342402:20:47 4215263689798428837764998235160575:20:47 4215263689798428837764998235160576:20:48 4215263689798428837764998235160577:20:48 6366805760909027985741435139224000:20:48 6366805760909027985741435139224001:20:49 6366805760909027985741435139224002:20:49 9536743164062499999999999999999999:20:49 9536743164062500000000000000000000:20:50 9536743164062500000000000000000001:20:50 14171098670753043575626125424226000:20:50 14171098670753043575626125424226001:20:51 14171098670753043575626125424226002:20:51 20896178655943101411324274803736575:20:51 20896178655943101411324274803736576:20:52 20896178655943101411324274803736577:20:52 30585627290848204916791848989276400:20:52 30585627290848204916791848989276401:20:53 30585627290848204916791848989276402:20:53 44450351179593105816204799588171775:20:53 44450351179593105816204799588171776:20:54 44450351179593105816204799588171777:20:54 64158439152961731834506988525390624:20:54 64158439152961731834506988525390625:20:55 64158439152961731834506988525390626:20:55 91994219715833035312262062828158975:20:55 91994219715833035312262062828158976:20:56 91994219715833035312262062828158977:20:56 131068133085775282769190451412780000:20:56 131068133085775282769190451412780001:20:57 131068133085775282769190451412780002:20:57 185592264682226060569122324245118975:20:57 185592264682226060569122324245118976:20:58 185592264682226060569122324245118977:20:58 261240335504588722483367157995242800:20:58 261240335504588722483367157995242801:20:59 261240335504588722483367157995242802:20:59 365615844006297599999999999999999999:20:59 365615844006297600000000000000000000:20:60 365615844006297600000000000000000001:20:60 508858109619679129936596364708525200:20:60 508858109619679129936596364708525201:20:61 508858109619679129936596364708525202:20:61 704423425546998022968330264616370175:20:61 704423425546998022968330264616370176:20:62 704423425546998022968330264616370177:20:62 970087679866349716790969219380140800:20:62 970087679866349716790969219380140801:20:63 970087679866349716790969219380140802:20:63 1329227995784915872903807060280344575:20:63 1329227995784915872903807060280344576:20:64 1329227995784915872903807060280344577:20:64 1812454583633499091987705230712890624:20:64 1812454583633499091987705230712890625:20:65 1812454583633499091987705230712890626:20:65 2459680572025003612127586705579442175:20:65 2459680572025003612127586705579442176:20:66 2459680572025003612127586705579442177:20:66 3322737661703085672358476688602579600:20:66 3322737661703085672358476688602579601:20:67 3322737661703085672358476688602579602:20:67 4468669689581414651264794540298469375:20:67 4468669689581414651264794540298469376:20:68 4468669689581414651264794540298469377:20:68 5983865382382622672294674517005559600:20:68 5983865382382622672294674517005559601:20:69 5983865382382622672294674517005559602:20:69 7979226629761200099999999999999999999:20:69 7979226629761200100000000000000000000:20:70 7979226629761200100000000000000000001:20:70 10596610576391421032662867140133202400:20:70 10596610576391421032662867140133202401:20:71 10596610576391421032662867140133202402:20:71 14016833953562607293918185758734155775:20:71 14016833953562607293918185758734155776:20:72 14016833953562607293918185758734155777:20:72 18469587772135192290560825407466407200:20:72 18469587772135192290560825407466407201:20:73 18469587772135192290560825407466407202:20:73 24245681433252891172993765250748645375:20:73 24245681433252891172993765250748645376:20:74 24245681433252891172993765250748645377:20:74 31712119389339932240545749664306640624:20:74 31712119389339932240545749664306640625:20:75 31712119389339932240545749664306640626:20:75 41330612904362991323506061003116773375:20:75 41330612904362991323506061003116773376:20:76 41330612904362991323506061003116773377:20:76 53680246747375952479747683856888021200:20:76 53680246747375952479747683856888021201:20:77 53680246747375952479747683856888021202:20:77 69485158708621551460806432855897931775:20:77 69485158708621551460806432855897931776:20:78 69485158708621551460806432855897931777:20:78 89648251976843595444986830377401534400:20:78 89648251976843595444986830377401534401:20:79 89648251976843595444986830377401534402:20:79 115292150460684697599999999999999999999:20:79 115292150460684697600000000000000000000:20:80 115292150460684697600000000000000000001:20:80 147808829414345923316083210206383297600:20:80 147808829414345923316083210206383297601:20:81 147808829414345923316083210206383297602:20:81 188919613181312032574569023867244773375:20:81 188919613181312032574569023867244773376:20:82 188919613181312032574569023867244773377:20:82 240747534123068430155382383568465195600:20:82 240747534123068430155382383568465195601:20:83 240747534123068430155382383568465195602:20:83 305904398238499908683087849324518834175:20:83 305904398238499908683087849324518834176:20:84 305904398238499908683087849324518834177:20:84 387595310845143558731231784820556640624:20:84 387595310845143558731231784820556640625:20:85 387595310845143558731231784820556640626:20:85 489743888183352795532945440368493592575:20:85 489743888183352795532945440368493592576:20:86 489743888183352795532945440368493592577:20:86 617141927185296106289002325476403184800:20:86 617141927185296106289002325476403184801:20:87 617141927185296106289002325476403184802:20:87 775627936381895764407110123826159026175:20:87 775627936381895764407110123826159026176:20:88 775627936381895764407110123826159026177:20:88 972299657790850297934682879408841327200:20:88 972299657790850297934682879408841327201:20:89 972299657790850297934682879408841327202:20:89 1215766545905692880099999999999999999999:20:89 1215766545905692880100000000000000000000:20:90 1215766545905692880100000000000000000001:20:90 1516449130501758165088248370527242650800:20:90 1516449130501758165088248370527242650801:20:91 1516449130501758165088248370527242650802:20:91 1886933291627965536395870951737944702975:20:91 1886933291627965536395870951737944702976:20:92 1886933291627965536395870951737944702977:20:92 2342388736625917052139104541473924426000:20:92 2342388736625917052139104541473924426001:20:93 2342388736625917052139104541473924426002:20:93 2901062411314618233730627546741369470975:20:93 2901062411314618233730627546741369470976:20:94 2901062411314618233730627546741369470977:20:94 3584859224085422343574104404449462890624:20:94 3584859224085422343574104404449462890625:20:95 3584859224085422343574104404449462890626:20:95 4420024338794077316988270789431736139775:20:95 4420024338794077316988270789431736139776:20:96 4420024338794077316988270789431736139777:20:96 5437943429267472574499737549036572950400:20:96 5437943429267472574499737549036572950401:20:97 5437943429267472574499737549036572950402:20:97 6676079717550944929176811092546946072575:20:97 6676079717550944929176811092546946072576:20:98 6676079717550944929176811092546946072577:20:98 8179069375972308708891986605443361898000:20:98 8179069375972308708891986605443361898001:20:99 8179069375972308708891986605443361898002:20:99 0:21:0 1:21:1 2:21:1 2097151:21:1 2097152:21:2 2097153:21:2 10460353202:21:2 10460353203:21:3 10460353204:21:3 4398046511103:21:3 4398046511104:21:4 4398046511105:21:4 476837158203124:21:4 476837158203125:21:5 476837158203126:21:5 21936950640377855:21:5 21936950640377856:21:6 21936950640377857:21:6 558545864083284006:21:6 558545864083284007:21:7 558545864083284008:21:7 9223372036854775807:21:7 9223372036854775808:21:8 9223372036854775809:21:8 109418989131512359208:21:8 109418989131512359209:21:9 109418989131512359210:21:9 7400249944258160101210:21:10 7400249944258160101211:21:11 7400249944258160101212:21:11 46005119909369701466111:21:11 46005119909369701466112:21:12 46005119909369701466113:21:12 247064529073450392704412:21:12 247064529073450392704413:21:13 247064529073450392704414:21:13 1171355575953987221848063:21:13 1171355575953987221848064:21:14 1171355575953987221848065:21:14 4987885095119476318359374:21:14 4987885095119476318359375:21:15 4987885095119476318359376:21:15 19342813113834066795298815:21:15 19342813113834066795298816:21:16 19342813113834066795298817:21:16 69091933913008732880827216:21:16 69091933913008732880827217:21:17 69091933913008732880827218:21:17 229468251895129407139872767:21:17 229468251895129407139872768:21:18 229468251895129407139872769:21:18 714209495693373205673756418:21:18 714209495693373205673756419:21:19 714209495693373205673756420:21:19 2097151999999999999999999999:21:19 2097152000000000000000000000:21:20 2097152000000000000000000001:21:20 5842587018385982521381124420:21:20 5842587018385982521381124421:21:21 5842587018385982521381124422:21:21 15519448971100888972574851071:21:21 15519448971100888972574851072:21:22 15519448971100888972574851073:21:22 39471584120695485887249589622:21:22 39471584120695485887249589623:21:23 39471584120695485887249589624:21:23 96479729228174488169059713023:21:23 96479729228174488169059713024:21:24 96479729228174488169059713025:21:24 227373675443232059478759765624:21:24 227373675443232059478759765625:21:25 227373675443232059478759765626:21:25 518131871275444637960845131775:21:25 518131871275444637960845131776:21:26 518131871275444637960845131777:21:26 1144561273430837494885949696426:21:26 1144561273430837494885949696427:21:27 1144561273430837494885949696428:21:27 2456510688823056210273111113727:21:27 2456510688823056210273111113728:21:28 2456510688823056210273111113729:21:28 5132842708382182842735812571628:21:28 5132842708382182842735812571629:21:29 5132842708382182842735812571630:21:29 10460353202999999999999999999999:21:29 10460353203000000000000000000000:21:30 10460353203000000000000000000001:21:30 20825506393391550743120420649630:21:30 20825506393391550743120420649631:21:31 20825506393391550743120420649632:21:31 40564819207303340847894502572031:21:31 40564819207303340847894502572032:21:32 40564819207303340847894502572033:21:32 77409228207421416473589288028832:21:32 77409228207421416473589288028833:21:33 77409228207421416473589288028834:21:33 144896287389534090178492559785983:21:33 144896287389534090178492559785984:21:34 144896287389534090178492559785985:21:34 266335422555582049846649169921874:21:34 266335422555582049846649169921875:21:35 266335422555582049846649169921876:21:35 481229803398374426442198455156735:21:35 481229803398374426442198455156736:21:36 481229803398374426442198455156737:21:36 855531895666462872887391390111636:21:36 855531895666462872887391390111637:21:37 855531895666462872887391390111638:21:37 1497805872312349005025129621618687:21:37 1497805872312349005025129621618688:21:38 1497805872312349005025129621618689:21:38 2584382238041153437587214356784838:21:38 2584382238041153437587214356784839:21:39 2584382238041153437587214356784840:21:39 4398046511103999999999999999999999:21:39 4398046511104000000000000000000000:21:40 4398046511104000000000000000000001:21:40 7386879101213258109624223688656840:21:40 7386879101213258109624223688656841:21:41 7386879101213258109624223688656842:21:41 12252793050782200016679467841748991:21:41 12252793050782200016679467841748992:21:42 12252793050782200016679467841748993:21:42 20083415214428110320965436874242042:21:42 20083415214428110320965436874242043:21:43 20083415214428110320965436874242044:21:43 32546643448642171510613294075346943:21:43 32546643448642171510613294075346944:21:44 32546643448642171510613294075346945:21:44 52175039830928973774433135986328124:21:44 52175039830928973774433135986328125:21:45 52175039830928973774433135986328126:21:45 82777911581884779619417251377053695:21:45 82777911581884779619417251377053696:21:46 82777911581884779619417251377053697:21:46 130033429462229783044185156533092846:21:46 130033429462229783044185156533092847:21:47 130033429462229783044185156533092848:21:47 202332657110324584212719915287707647:21:47 202332657110324584212719915287707648:21:48 202332657110324584212719915287707649:21:48 311973482284542371301330321821976048:21:48 311973482284542371301330321821976049:21:49 311973482284542371301330321821976050:21:49 476837158203124999999999999999999999:21:49 476837158203125000000000000000000000:21:50 476837158203125000000000000000000001:21:50 722726032208405222356932396635526050:21:50 722726032208405222356932396635526051:21:51 722726032208405222356932396635526052:21:51 1086601290109041273388862289794301951:21:51 1086601290109041273388862289794301952:21:52 1086601290109041273388862289794301953:21:52 1621038246414954860589967996431649252:21:52 1621038246414954860589967996431649253:21:53 1621038246414954860589967996431649254:21:53 2400318963698027714075059177761275903:21:53 2400318963698027714075059177761275904:21:54 2400318963698027714075059177761275905:21:54 3528714153412895250897884368896484374:21:54 3528714153412895250897884368896484375:21:55 3528714153412895250897884368896484376:21:55 5151676304086649977486675518376902655:21:55 5151676304086649977486675518376902656:21:56 5151676304086649977486675518376902657:21:56 7470883585889191117843855730528460056:21:56 7470883585889191117843855730528460057:21:57 7470883585889191117843855730528460058:21:57 10764351351569111513009094806216900607:21:57 10764351351569111513009094806216900608:21:58 10764351351569111513009094806216900609:21:58 15413179794770734626518662321719325258:21:58 15413179794770734626518662321719325259:21:59 15413179794770734626518662321719325260:21:59 21936950640377855999999999999999999999:21:59 21936950640377856000000000000000000000:21:60 21936950640377856000000000000000000001:21:60 31040344686800426926132378247220037260:21:60 31040344686800426926132378247220037261:21:61 31040344686800426926132378247220037262:21:61 43674252383913877424036476406214950911:21:61 43674252383913877424036476406214950912:21:62 43674252383913877424036476406214950913:21:62 61115523831580032157831060820948870462:21:62 61115523831580032157831060820948870463:21:63 61115523831580032157831060820948870464:21:63 85070591730234615865843651857942052863:21:63 85070591730234615865843651857942052864:21:64 85070591730234615865843651857942052865:21:64 117809547936177440979200839996337890624:21:64 117809547936177440979200839996337890625:21:65 117809547936177440979200839996337890626:21:65 162338917753650238400420722568243183615:21:65 162338917753650238400420722568243183616:21:66 162338917753650238400420722568243183617:21:66 222623423334106740048017938136372833266:21:66 222623423334106740048017938136372833267:21:67 222623423334106740048017938136372833268:21:67 303869538891536196286006028740295917567:21:67 303869538891536196286006028740295917568:21:68 303869538891536196286006028740295917569:21:68 412886711384400964388332541673383612468:21:68 412886711384400964388332541673383612469:21:69 412886711384400964388332541673383612470:21:69 558545864083284006999999999999999999999:21:69 558545864083284007000000000000000000000:21:70 558545864083284007000000000000000000001:21:70 752359350923790893319063566949457370470:21:70 752359350923790893319063566949457370471:21:71 752359350923790893319063566949457370472:21:71 1009212044656507725162109374628859215871:21:71 1009212044656507725162109374628859215872:21:72 1009212044656507725162109374628859215873:21:72 1348279907365869037210940254745047725672:21:72 1348279907365869037210940254745047725673:21:73 1348279907365869037210940254745047725674:21:73 1794180426060713946801538628555399757823:21:73 1794180426060713946801538628555399757824:21:74 1794180426060713946801538628555399757825:21:74 2378408954200494918040931224822998046874:21:74 2378408954200494918040931224822998046875:21:75 2378408954200494918040931224822998046876:21:75 3141126580731587340586460636236874776575:21:75 3141126580731587340586460636236874776576:21:76 3141126580731587340586460636236874776577:21:76 4133378999547948340940571656980377632476:21:76 4133378999547948340940571656980377632477:21:77 4133378999547948340940571656980377632478:21:77 5419842379272481013942901762760038678527:21:77 5419842379272481013942901762760038678528:21:78 5419842379272481013942901762760038678529:21:78 7082211906170644040153959599814721217678:21:78 7082211906170644040153959599814721217679:21:79 7082211906170644040153959599814721217680:21:79 9223372036854775807999999999999999999999:21:79 9223372036854775808000000000000000000000:21:80 9223372036854775808000000000000000000001:21:80 11972515182562019788602740026717047105680:21:80 11972515182562019788602740026717047105681:21:81 11972515182562019788602740026717047105682:21:81 15491408280867586671114659957114071416831:21:81 15491408280867586671114659957114071416832:21:82 15491408280867586671114659957114071416833:21:82 19982045332214679702896737836182611234882:21:82 19982045332214679702896737836182611234883:21:83 19982045332214679702896737836182611234884:21:83 25695969452033992329379379343259582070783:21:83 25695969452033992329379379343259582070784:21:84 25695969452033992329379379343259582070785:21:84 32945601421837202492154701709747314453124:21:84 32945601421837202492154701709747314453125:21:85 32945601421837202492154701709747314453126:21:85 42117974383768340415833307871690448961535:21:85 42117974383768340415833307871690448961536:21:86 42117974383768340415833307871690448961537:21:86 53691347665120761247143202316447077077686:21:86 53691347665120761247143202316447077077687:21:87 53691347665120761247143202316447077077688:21:87 68255258401606827267825690896701994303487:21:87 68255258401606827267825690896701994303488:21:88 68255258401606827267825690896701994303489:21:88 86534669543385676516186776267386878120888:21:88 86534669543385676516186776267386878120889:21:89 86534669543385676516186776267386878120890:21:89 109418989131512359208999999999999999999999:21:89 109418989131512359209000000000000000000000:21:90 109418989131512359209000000000000000000001:21:90 137996870875659993023030601717979081222890:21:90 137996870875659993023030601717979081222891:21:91 137996870875659993023030601717979081222892:21:91 173597862829772829348420127559890912673791:21:91 173597862829772829348420127559890912673792:21:92 173597862829772829348420127559890912673793:21:92 217842152506210285848936722357074971618092:21:92 217842152506210285848936722357074971618093:21:93 217842152506210285848936722357074971618094:21:93 272699866663574113970678989393688730271743:21:93 272699866663574113970678989393688730271744:21:94 272699866663574113970678989393688730271745:21:94 340561626288115122639539918422698974609374:21:94 340561626288115122639539918422698974609375:21:95 340561626288115122639539918422698974609376:21:95 424322336524231422430873995785446669418495:21:95 424322336524231422430873995785446669418496:21:96 424322336524231422430873995785446669418497:21:96 527480512638944839726474542256547576188896:21:96 527480512638944839726474542256547576188897:21:97 527480512638944839726474542256547576188898:21:97 654255812319992603059327487069600715112447:21:97 654255812319992603059327487069600715112448:21:98 654255812319992603059327487069600715112449:21:98 809727868221258562180306673938892827902098:21:98 809727868221258562180306673938892827902099:21:99 809727868221258562180306673938892827902100:21:99 0:22:0 1:22:1 2:22:1 4194303:22:1 4194304:22:2 4194305:22:2 31381059608:22:2 31381059609:22:3 31381059610:22:3 17592186044415:22:3 17592186044416:22:4 17592186044417:22:4 2384185791015624:22:4 2384185791015625:22:5 2384185791015626:22:5 131621703842267135:22:5 131621703842267136:22:6 131621703842267137:22:6 3909821048582988048:22:6 3909821048582988049:22:7 3909821048582988050:22:7 73786976294838206463:22:7 73786976294838206464:22:8 73786976294838206465:22:8 984770902183611232880:22:8 984770902183611232881:22:9 984770902183611232882:22:9 81402749386839761113320:22:10 81402749386839761113321:22:11 81402749386839761113322:22:11 552061438912436417593343:22:11 552061438912436417593344:22:12 552061438912436417593345:22:12 3211838877954855105157368:22:12 3211838877954855105157369:22:13 3211838877954855105157370:22:13 16398978063355821105872895:22:13 16398978063355821105872896:22:14 16398978063355821105872897:22:14 74818276426792144775390624:22:14 74818276426792144775390625:22:15 74818276426792144775390626:22:15 309485009821345068724781055:22:15 309485009821345068724781056:22:16 309485009821345068724781057:22:16 1174562876521148458974062688:22:16 1174562876521148458974062689:22:17 1174562876521148458974062690:22:17 4130428534112329328517709823:22:17 4130428534112329328517709824:22:18 4130428534112329328517709825:22:18 13569980418174090907801371960:22:18 13569980418174090907801371961:22:19 13569980418174090907801371962:22:19 41943039999999999999999999999:22:19 41943040000000000000000000000:22:20 41943040000000000000000000001:22:20 122694327386105632949003612840:22:20 122694327386105632949003612841:22:21 122694327386105632949003612842:22:21 341427877364219557396646723583:22:21 341427877364219557396646723584:22:22 341427877364219557396646723585:22:22 907846434775996175406740561328:22:22 907846434775996175406740561329:22:23 907846434775996175406740561330:22:23 2315513501476187716057433112575:22:23 2315513501476187716057433112576:22:24 2315513501476187716057433112577:22:24 5684341886080801486968994140624:22:24 5684341886080801486968994140625:22:25 5684341886080801486968994140626:22:25 13471428653161560586981973426175:22:25 13471428653161560586981973426176:22:26 13471428653161560586981973426177:22:26 30903154382632612361920641803528:22:26 30903154382632612361920641803529:22:27 30903154382632612361920641803530:22:27 68782299287045573887647111184383:22:27 68782299287045573887647111184384:22:28 68782299287045573887647111184385:22:28 148852438543083302439338564577240:22:28 148852438543083302439338564577241:22:29 148852438543083302439338564577242:22:29 313810596089999999999999999999999:22:29 313810596090000000000000000000000:22:30 313810596090000000000000000000001:22:30 645590698195138073036733040138560:22:30 645590698195138073036733040138561:22:31 645590698195138073036733040138562:22:31 1298074214633706907132624082305023:22:31 1298074214633706907132624082305024:22:32 1298074214633706907132624082305025:22:32 2554504530844906743628446504951488:22:32 2554504530844906743628446504951489:22:33 2554504530844906743628446504951490:22:33 4926473771244159066068747032723455:22:33 4926473771244159066068747032723456:22:34 4926473771244159066068747032723457:22:34 9321739789445371744632720947265624:22:34 9321739789445371744632720947265625:22:35 9321739789445371744632720947265626:22:35 17324272922341479351919144385642495:22:35 17324272922341479351919144385642496:22:36 17324272922341479351919144385642497:22:36 31654680139659126296833481434130568:22:36 31654680139659126296833481434130569:22:37 31654680139659126296833481434130570:22:37 56916623147869262190954925621510143:22:37 56916623147869262190954925621510144:22:38 56916623147869262190954925621510145:22:38 100790907283604984065901359914608720:22:38 100790907283604984065901359914608721:22:39 100790907283604984065901359914608722:22:39 175921860444159999999999999999999999:22:39 175921860444160000000000000000000000:22:40 175921860444160000000000000000000001:22:40 302862043149743582494593171234930480:22:40 302862043149743582494593171234930481:22:41 302862043149743582494593171234930482:22:41 514617308132852400700537649353457663:22:41 514617308132852400700537649353457664:22:42 514617308132852400700537649353457665:22:42 863586854220408743801513785592407848:22:42 863586854220408743801513785592407849:22:43 863586854220408743801513785592407850:22:43 1432052311740255546466984939315265535:22:43 1432052311740255546466984939315265536:22:44 1432052311740255546466984939315265537:22:44 2347876792391803819849491119384765624:22:44 2347876792391803819849491119384765625:22:45 2347876792391803819849491119384765626:22:45 3807783932766699862493193563344470015:22:45 3807783932766699862493193563344470016:22:46 3807783932766699862493193563344470017:22:46 6111571184724799803076702357055363808:22:46 6111571184724799803076702357055363809:22:47 6111571184724799803076702357055363810:22:47 9711967541295580042210555933809967103:22:47 9711967541295580042210555933809967104:22:48 9711967541295580042210555933809967105:22:48 15286700631942576193765185769276826400:22:48 15286700631942576193765185769276826401:22:49 15286700631942576193765185769276826402:22:49 23841857910156249999999999999999999999:22:49 23841857910156250000000000000000000000:22:50 23841857910156250000000000000000000001:22:50 36859027642628666340203552228411828600:22:50 36859027642628666340203552228411828601:22:51 36859027642628666340203552228411828602:22:51 56503267085670146216220839069303701503:22:51 56503267085670146216220839069303701504:22:52 56503267085670146216220839069303701505:22:52 85915027059992607611268303810877410408:22:52 85915027059992607611268303810877410409:22:53 85915027059992607611268303810877410410:22:53 129617224039693496560053195599108898815:22:53 129617224039693496560053195599108898816:22:54 129617224039693496560053195599108898817:22:54 194079278437709238799383640289306640624:22:54 194079278437709238799383640289306640625:22:55 194079278437709238799383640289306640626:22:55 288493873028852398739253829029106548735:22:55 288493873028852398739253829029106548736:22:56 288493873028852398739253829029106548737:22:56 425840364395683893717099776640122223248:22:56 425840364395683893717099776640122223249:22:57 425840364395683893717099776640122223250:22:57 624332378391008467754527498760580235263:22:57 624332378391008467754527498760580235264:22:58 624332378391008467754527498760580235265:22:58 909377607891473342964601076981440190280:22:58 909377607891473342964601076981440190281:22:59 909377607891473342964601076981440190282:22:59 1316217038422671359999999999999999999999:22:59 1316217038422671360000000000000000000000:22:60 1316217038422671360000000000000000000001:22:60 1893461025894826042494075073080422272920:22:60 1893461025894826042494075073080422272921:22:61 1893461025894826042494075073080422272922:22:61 2707803647802660400290261537185326956543:22:61 2707803647802660400290261537185326956544:22:62 2707803647802660400290261537185326956545:22:62 3850278001389542025943356831719778839168:22:62 3850278001389542025943356831719778839169:22:63 3850278001389542025943356831719778839170:22:63 5444517870735015415413993718908291383295:22:63 5444517870735015415413993718908291383296:22:64 5444517870735015415413993718908291383297:22:64 7657620615851533663648054599761962890624:22:64 7657620615851533663648054599761962890625:22:65 7657620615851533663648054599761962890626:22:65 10714368571740915734427767689504050118655:22:65 10714368571740915734427767689504050118656:22:66 10714368571740915734427767689504050118657:22:66 14915769363385151583217201855136979828888:22:66 14915769363385151583217201855136979828889:22:67 14915769363385151583217201855136979828890:22:67 20663128644624461347448409954340122394623:22:67 20663128644624461347448409954340122394624:22:68 20663128644624461347448409954340122394625:22:68 28489183085523666542794945375463469260360:22:68 28489183085523666542794945375463469260361:22:69 28489183085523666542794945375463469260362:22:69 39098210485829880489999999999999999999999:22:69 39098210485829880490000000000000000000000:22:70 39098210485829880490000000000000000000001:22:70 53417513915589153425653513253411473303440:22:70 53417513915589153425653513253411473303441:22:71 53417513915589153425653513253411473303442:22:71 72663267215268556211671874973277863542783:22:71 72663267215268556211671874973277863542784:22:72 72663267215268556211671874973277863542785:22:72 98424433237708439716398638596388483974128:22:72 98424433237708439716398638596388483974129:22:73 98424433237708439716398638596388483974130:22:73 132769351528492832063313858513099582078975:22:73 132769351528492832063313858513099582078976:22:74 132769351528492832063313858513099582078977:22:74 178380671565037118853069841861724853515624:22:74 178380671565037118853069841861724853515625:22:75 178380671565037118853069841861724853515626:22:75 238725620135600637884571008354002483019775:22:75 238725620135600637884571008354002483019776:22:76 238725620135600637884571008354002483019777:22:76 318270182965192022252424017587489077700728:22:76 318270182965192022252424017587489077700729:22:77 318270182965192022252424017587489077700730:22:77 422747705583253519087546337495283016925183:22:77 422747705583253519087546337495283016925184:22:78 422747705583253519087546337495283016925185:22:78 559494740587480879172162808385362976196640:22:78 559494740587480879172162808385362976196641:22:79 559494740587480879172162808385362976196642:22:79 737869762948382064639999999999999999999999:22:79 737869762948382064640000000000000000000000:22:80 737869762948382064640000000000000000000001:22:80 969773729787523602876821942164080815560160:22:80 969773729787523602876821942164080815560161:22:81 969773729787523602876821942164080815560162:22:81 1270295479031142107031402116483353856180223:22:81 1270295479031142107031402116483353856180224:22:82 1270295479031142107031402116483353856180225:22:82 1658509762573818415340429240403156732495288:22:82 1658509762573818415340429240403156732495289:22:83 1658509762573818415340429240403156732495290:22:83 2158461433970855355667867864833804893945855:22:83 2158461433970855355667867864833804893945856:22:84 2158461433970855355667867864833804893945857:22:84 2800376120856162211833149645328521728515624:22:84 2800376120856162211833149645328521728515625:22:85 2800376120856162211833149645328521728515626:22:85 3622145797004077275761664476965378610692095:22:85 3622145797004077275761664476965378610692096:22:86 3622145797004077275761664476965378610692097:22:86 4671147246865506228501458601530895705758768:22:86 4671147246865506228501458601530895705758769:22:87 4671147246865506228501458601530895705758770:22:87 6006462739341400799568660798909775498706943:22:87 6006462739341400799568660798909775498706944:22:88 6006462739341400799568660798909775498706945:22:88 7701585589361325209940623087797432152759120:22:88 7701585589361325209940623087797432152759121:22:89 7701585589361325209940623087797432152759122:22:89 9847709021836112328809999999999999999999999:22:89 9847709021836112328810000000000000000000000:22:90 9847709021836112328810000000000000000000001:22:90 12557715249685059365095784756336096391283080:22:90 12557715249685059365095784756336096391283081:22:91 12557715249685059365095784756336096391283082:22:91 15971003380339100300054651735509963965988863:22:91 15971003380339100300054651735509963965988864:22:92 15971003380339100300054651735509963965988865:22:92 20259320183077556583951115179207972360482648:22:92 20259320183077556583951115179207972360482649:22:93 20259320183077556583951115179207972360482650:22:93 25633787466375966713243825003006740645543935:22:93 25633787466375966713243825003006740645543936:22:94 25633787466375966713243825003006740645543937:22:94 32353354497370936650756292250156402587890624:22:94 32353354497370936650756292250156402587890625:22:95 32353354497370936650756292250156402587890626:22:95 40734944306326216553363903595402880264175615:22:95 40734944306326216553363903595402880264175616:22:96 40734944306326216553363903595402880264175617:22:96 51165609725977649453468030598885114890323008:22:96 51165609725977649453468030598885114890323009:22:97 51165609725977649453468030598885114890323010:22:97 64117069607359275099814093732820870081019903:22:97 64117069607359275099814093732820870081019904:22:98 64117069607359275099814093732820870081019905:22:98 80163058953904597655850360719950389962307800:22:98 80163058953904597655850360719950389962307801:22:99 80163058953904597655850360719950389962307802:22:99 0:23:0 1:23:1 2:23:1 8388607:23:1 8388608:23:2 8388609:23:2 94143178826:23:2 94143178827:23:3 94143178828:23:3 70368744177663:23:3 70368744177664:23:4 70368744177665:23:4 11920928955078124:23:4 11920928955078125:23:5 11920928955078126:23:5 789730223053602815:23:5 789730223053602816:23:6 789730223053602817:23:6 27368747340080916342:23:6 27368747340080916343:23:7 27368747340080916344:23:7 590295810358705651711:23:7 590295810358705651712:23:8 590295810358705651713:23:8 8862938119652501095928:23:8 8862938119652501095929:23:9 8862938119652501095930:23:9 895430243255237372246530:23:10 895430243255237372246531:23:11 895430243255237372246532:23:11 6624737266949237011120127:23:11 6624737266949237011120128:23:12 6624737266949237011120129:23:12 41753905413413116367045796:23:12 41753905413413116367045797:23:13 41753905413413116367045798:23:13 229585692886981495482220543:23:13 229585692886981495482220544:23:14 229585692886981495482220545:23:14 1122274146401882171630859374:23:14 1122274146401882171630859375:23:15 1122274146401882171630859376:23:15 4951760157141521099596496895:23:15 4951760157141521099596496896:23:16 4951760157141521099596496897:23:16 19967568900859523802559065712:23:16 19967568900859523802559065713:23:17 19967568900859523802559065714:23:17 74347713614021927913318776831:23:17 74347713614021927913318776832:23:18 74347713614021927913318776833:23:18 257829627945307727248226067258:23:18 257829627945307727248226067259:23:19 257829627945307727248226067260:23:19 838860799999999999999999999999:23:19 838860800000000000000000000000:23:20 838860800000000000000000000001:23:20 2576580875108218291929075869660:23:20 2576580875108218291929075869661:23:21 2576580875108218291929075869662:23:21 7511413302012830262726227918847:23:21 7511413302012830262726227918848:23:22 7511413302012830262726227918849:23:22 20880467999847912034355032910566:23:22 20880467999847912034355032910567:23:23 20880467999847912034355032910568:23:23 55572324035428505185378394701823:23:23 55572324035428505185378394701824:23:24 55572324035428505185378394701825:23:24 142108547152020037174224853515624:23:24 142108547152020037174224853515625:23:25 142108547152020037174224853515626:23:25 350257144982200575261531309080575:23:25 350257144982200575261531309080576:23:26 350257144982200575261531309080577:23:26 834385168331080533771857328695282:23:26 834385168331080533771857328695283:23:27 834385168331080533771857328695284:23:27 1925904380037276068854119113162751:23:27 1925904380037276068854119113162752:23:28 1925904380037276068854119113162753:23:28 4316720717749415770740818372739988:23:28 4316720717749415770740818372739989:23:29 4316720717749415770740818372739990:23:29 9414317882699999999999999999999999:23:29 9414317882700000000000000000000000:23:30 9414317882700000000000000000000001:23:30 20013311644049280264138724244295390:23:30 20013311644049280264138724244295391:23:31 20013311644049280264138724244295392:23:31 41538374868278621028243970633760767:23:31 41538374868278621028243970633760768:23:32 41538374868278621028243970633760769:23:32 84298649517881922539738734663399136:23:32 84298649517881922539738734663399137:23:33 84298649517881922539738734663399138:23:33 167500108222301408246337399112597503:23:33 167500108222301408246337399112597504:23:34 167500108222301408246337399112597505:23:34 326260892630588011062145233154296874:23:34 326260892630588011062145233154296875:23:35 326260892630588011062145233154296876:23:35 623673825204293256669089197883129855:23:35 623673825204293256669089197883129856:23:36 623673825204293256669089197883129857:23:36 1171223165167387672982838813062831052:23:36 1171223165167387672982838813062831053:23:37 1171223165167387672982838813062831054:23:37 2162831679619031963256287173617385471:23:37 2162831679619031963256287173617385472:23:38 2162831679619031963256287173617385473:23:38 3930845384060594378570153036669740118:23:38 3930845384060594378570153036669740119:23:39 3930845384060594378570153036669740120:23:39 7036874417766399999999999999999999999:23:39 7036874417766400000000000000000000000:23:40 7036874417766400000000000000000000001:23:40 12417343769139486882278320020632149720:23:40 12417343769139486882278320020632149721:23:41 12417343769139486882278320020632149722:23:41 21613926941579800829422581272845221887:23:41 21613926941579800829422581272845221888:23:42 21613926941579800829422581272845221889:23:42 37134234731477575983465092780473537506:23:42 37134234731477575983465092780473537507:23:43 37134234731477575983465092780473537508:23:43 63010301716571244044547337329871683583:23:43 63010301716571244044547337329871683584:23:44 63010301716571244044547337329871683585:23:44 105654455657631171893227100372314453124:23:44 105654455657631171893227100372314453125:23:45 105654455657631171893227100372314453126:23:45 175158060907268193674686903913845620735:23:45 175158060907268193674686903913845620736:23:46 175158060907268193674686903913845620737:23:46 287243845682065590744605010781602099022:23:46 287243845682065590744605010781602099023:23:47 287243845682065590744605010781602099024:23:47 466174441982187842026106684822878420991:23:47 466174441982187842026106684822878420992:23:48 466174441982187842026106684822878420993:23:48 749048330965186233494494102694564493648:23:48 749048330965186233494494102694564493649:23:49 749048330965186233494494102694564493650:23:49 1192092895507812499999999999999999999999:23:49 1192092895507812500000000000000000000000:23:50 1192092895507812500000000000000000000001:23:50 1879810409774061983350381163649003258650:23:50 1879810409774061983350381163649003258651:23:51 1879810409774061983350381163649003258652:23:51 2938169888454847603243483631603792478207:23:51 2938169888454847603243483631603792478208:23:52 2938169888454847603243483631603792478209:23:52 4553496434179608203397220101976502751676:23:52 4553496434179608203397220101976502751677:23:53 4553496434179608203397220101976502751678:23:53 6999330098143448814242872562351880536063:23:53 6999330098143448814242872562351880536064:23:54 6999330098143448814242872562351880536065:23:54 10674360314074008133966100215911865234374:23:54 10674360314074008133966100215911865234375:23:55 10674360314074008133966100215911865234376:23:55 16155656889615734329398214425629966729215:23:55 16155656889615734329398214425629966729216:23:56 16155656889615734329398214425629966729217:23:56 24272900770553981941874687268486966725192:23:56 24272900770553981941874687268486966725193:23:57 24272900770553981941874687268486966725194:23:57 36211277946678491129762594928113653645311:23:57 36211277946678491129762594928113653645312:23:58 36211277946678491129762594928113653645313:23:58 53653278865596927234911463541904971226578:23:58 53653278865596927234911463541904971226579:23:59 53653278865596927234911463541904971226580:23:59 78973022305360281599999999999999999999999:23:59 78973022305360281600000000000000000000000:23:60 78973022305360281600000000000000000000001:23:60 115501122579584388592138579457905758648180:23:60 115501122579584388592138579457905758648181:23:61 115501122579584388592138579457905758648182:23:61 167883826163764944817996215305490271305727:23:61 167883826163764944817996215305490271305728:23:62 167883826163764944817996215305490271305729:23:62 242567514087541147634431480398346066867646:23:62 242567514087541147634431480398346066867647:23:63 242567514087541147634431480398346066867648:23:63 348449143727040986586495598010130648530943:23:63 348449143727040986586495598010130648530944:23:64 348449143727040986586495598010130648530945:23:64 497745340030349688137123548984527587890624:23:64 497745340030349688137123548984527587890625:23:65 497745340030349688137123548984527587890626:23:65 707148325734900438472232667507267307831295:23:65 707148325734900438472232667507267307831296:23:66 707148325734900438472232667507267307831297:23:66 999356547346805156075552524294177648535562:23:66 999356547346805156075552524294177648535563:23:67 999356547346805156075552524294177648535564:23:67 1405092747834463371626491876895128322834431:23:67 1405092747834463371626491876895128322834432:23:68 1405092747834463371626491876895128322834433:23:68 1965753632901132991452851230906979378964908:23:68 1965753632901132991452851230906979378964909:23:69 1965753632901132991452851230906979378964910:23:69 2736874734008091634299999999999999999999999:23:69 2736874734008091634300000000000000000000000:23:70 2736874734008091634300000000000000000000001:23:70 3792643488006829893221399440992214604544310:23:70 3792643488006829893221399440992214604544311:23:71 3792643488006829893221399440992214604544312:23:71 5231755239499336047240374998076006175080447:23:71 5231755239499336047240374998076006175080448:23:72 5231755239499336047240374998076006175080449:23:72 7184983626352716099297100617536359330111416:23:72 7184983626352716099297100617536359330111417:23:73 7184983626352716099297100617536359330111418:23:73 9824932013108469572685225529969369073844223:23:73 9824932013108469572685225529969369073844224:23:74 9824932013108469572685225529969369073844225:23:74 13378550367377783913980238139629364013671874:23:74 13378550367377783913980238139629364013671875:23:75 13378550367377783913980238139629364013671876:23:75 18143147130305648479227396634904188709502975:23:75 18143147130305648479227396634904188709502976:23:76 18143147130305648479227396634904188709502977:23:76 24506804088319785713436649354236658982956132:23:76 24506804088319785713436649354236658982956133:23:77 24506804088319785713436649354236658982956134:23:77 32974321035493774488828614324632075320164351:23:77 32974321035493774488828614324632075320164352:23:78 32974321035493774488828614324632075320164353:23:78 44200084506410989454600861862443675119534638:23:78 44200084506410989454600861862443675119534639:23:79 44200084506410989454600861862443675119534640:23:79 59029581035870565171199999999999999999999999:23:79 59029581035870565171200000000000000000000000:23:80 59029581035870565171200000000000000000000001:23:80 78551672112789411833022577315290546060373040:23:80 78551672112789411833022577315290546060373041:23:81 78551672112789411833022577315290546060373042:23:81 104164229280553652776574973551635016206778367:23:81 104164229280553652776574973551635016206778368:23:82 104164229280553652776574973551635016206778369:23:82 137656310293626928473255626953462008797108986:23:82 137656310293626928473255626953462008797108987:23:83 137656310293626928473255626953462008797108988:23:83 181310760453551849876100900646039611091451903:23:83 181310760453551849876100900646039611091451904:23:84 181310760453551849876100900646039611091451905:23:84 238031970272773788005817719852924346923828124:23:84 238031970272773788005817719852924346923828125:23:85 238031970272773788005817719852924346923828126:23:85 311504538542350645715503145019022560519520255:23:85 311504538542350645715503145019022560519520256:23:86 311504538542350645715503145019022560519520257:23:86 406389810477299041879626898333187926401012902:23:86 406389810477299041879626898333187926401012903:23:87 406389810477299041879626898333187926401012904:23:87 528568721062043270362042150304060243886211071:23:87 528568721062043270362042150304060243886211072:23:88 528568721062043270362042150304060243886211073:23:88 685441117453157943684715454813971461595561768:23:88 685441117453157943684715454813971461595561769:23:89 685441117453157943684715454813971461595561770:23:89 886293811965250109592899999999999999999999999:23:89 886293811965250109592900000000000000000000000:23:90 886293811965250109592900000000000000000000001:23:90 1142752087721340402223716412826584771606760370:23:90 1142752087721340402223716412826584771606760371:23:91 1142752087721340402223716412826584771606760372:23:91 1469332310991197227605027959666916684870975487:23:91 1469332310991197227605027959666916684870975488:23:92 1469332310991197227605027959666916684870975489:23:92 1884116777026212762307453711666341429524886356:23:92 1884116777026212762307453711666341429524886357:23:93 1884116777026212762307453711666341429524886358:23:93 2409576021839340871044919550282633620681129983:23:93 2409576021839340871044919550282633620681129984:23:94 2409576021839340871044919550282633620681129985:23:94 3073568677250238981821847763764858245849609374:23:94 3073568677250238981821847763764858245849609375:23:95 3073568677250238981821847763764858245849609376:23:95 3910554653407316789122934745158676505360859135:23:95 3910554653407316789122934745158676505360859136:23:96 3910554653407316789122934745158676505360859137:23:96 4963064143419831996986398968091856144361331872:23:96 4963064143419831996986398968091856144361331873:23:97 4963064143419831996986398968091856144361331874:23:97 6283472821521208959781781185816445267939950591:23:97 6283472821521208959781781185816445267939950592:23:98 6283472821521208959781781185816445267939950593:23:98 7936142836436555167929185711275088606268472298:23:98 7936142836436555167929185711275088606268472299:23:99 7936142836436555167929185711275088606268472300:23:99 0:24:0 1:24:1 2:24:1 16777215:24:1 16777216:24:2 16777217:24:2 282429536480:24:2 282429536481:24:3 282429536482:24:3 281474976710655:24:3 281474976710656:24:4 281474976710657:24:4 59604644775390624:24:4 59604644775390625:24:5 59604644775390626:24:5 4738381338321616895:24:5 4738381338321616896:24:6 4738381338321616897:24:6 191581231380566414400:24:6 191581231380566414401:24:7 191581231380566414402:24:7 4722366482869645213695:24:7 4722366482869645213696:24:8 4722366482869645213697:24:8 79766443076872509863360:24:8 79766443076872509863361:24:9 79766443076872509863362:24:9 9849732675807611094711840:24:10 9849732675807611094711841:24:11 9849732675807611094711842:24:11 79496847203390844133441535:24:11 79496847203390844133441536:24:12 79496847203390844133441537:24:12 542800770374370512771595360:24:12 542800770374370512771595361:24:13 542800770374370512771595362:24:13 3214199700417740936751087615:24:13 3214199700417740936751087616:24:14 3214199700417740936751087617:24:14 16834112196028232574462890624:24:14 16834112196028232574462890625:24:15 16834112196028232574462890626:24:15 79228162514264337593543950335:24:15 79228162514264337593543950336:24:16 79228162514264337593543950337:24:16 339448671314611904643504117120:24:16 339448671314611904643504117121:24:17 339448671314611904643504117122:24:17 1338258845052394702439737982975:24:17 1338258845052394702439737982976:24:18 1338258845052394702439737982977:24:18 4898762930960846817716295277920:24:18 4898762930960846817716295277921:24:19 4898762930960846817716295277922:24:19 16777215999999999999999999999999:24:19 16777216000000000000000000000000:24:20 16777216000000000000000000000001:24:20 54108198377272584130510593262880:24:20 54108198377272584130510593262881:24:21 54108198377272584130510593262882:24:21 165251092644282265779977014214655:24:21 165251092644282265779977014214656:24:22 165251092644282265779977014214657:24:22 480250763996501976790165756943040:24:22 480250763996501976790165756943041:24:23 480250763996501976790165756943042:24:23 1333735776850284124449081472843775:24:23 1333735776850284124449081472843776:24:24 1333735776850284124449081472843777:24:24 3552713678800500929355621337890624:24:24 3552713678800500929355621337890625:24:25 3552713678800500929355621337890626:24:25 9106685769537214956799814036094975:24:25 9106685769537214956799814036094976:24:26 9106685769537214956799814036094977:24:26 22528399544939174411840147874772640:24:26 22528399544939174411840147874772641:24:27 22528399544939174411840147874772642:24:27 53925322641043729927915335168557055:24:27 53925322641043729927915335168557056:24:28 53925322641043729927915335168557057:24:28 125184900814733057351483732809459680:24:28 125184900814733057351483732809459681:24:29 125184900814733057351483732809459682:24:29 282429536480999999999999999999999999:24:29 282429536481000000000000000000000000:24:30 282429536481000000000000000000000001:24:30 620412660965527688188300451573157120:24:30 620412660965527688188300451573157121:24:31 620412660965527688188300451573157122:24:31 1329227995784915872903807060280344575:24:31 1329227995784915872903807060280344576:24:32 1329227995784915872903807060280344577:24:32 2781855434090103443811378243892171520:24:32 2781855434090103443811378243892171521:24:33 2781855434090103443811378243892171522:24:33 5695003679558247880375471569828315135:24:33 5695003679558247880375471569828315136:24:34 5695003679558247880375471569828315137:24:34 11419131242070580387175083160400390624:24:34 11419131242070580387175083160400390625:24:35 11419131242070580387175083160400390626:24:35 22452257707354557240087211123792674815:24:35 22452257707354557240087211123792674816:24:36 22452257707354557240087211123792674817:24:36 43335257111193343900365036083324748960:24:36 43335257111193343900365036083324748961:24:37 43335257111193343900365036083324748962:24:37 82187603825523214603738912597460647935:24:37 82187603825523214603738912597460647936:24:38 82187603825523214603738912597460647937:24:38 153302969978363180764235968430119864640:24:38 153302969978363180764235968430119864641:24:39 153302969978363180764235968430119864642:24:39 281474976710655999999999999999999999999:24:39 281474976710656000000000000000000000000:24:40 281474976710656000000000000000000000001:24:40 509111094534718962173411120845918138560:24:40 509111094534718962173411120845918138561:24:41 509111094534718962173411120845918138562:24:41 907784931546351634835748413459499319295:24:41 907784931546351634835748413459499319296:24:42 907784931546351634835748413459499319297:24:42 1596772093453535767288998989560362112800:24:42 1596772093453535767288998989560362112801:24:43 1596772093453535767288998989560362112802:24:43 2772453275529134737960082842514354077695:24:43 2772453275529134737960082842514354077696:24:44 2772453275529134737960082842514354077697:24:44 4754450504593402735195219516754150390624:24:44 4754450504593402735195219516754150390625:24:45 4754450504593402735195219516754150390626:24:45 8057270801734336909035597580036898553855:24:45 8057270801734336909035597580036898553856:24:46 8057270801734336909035597580036898553857:24:46 13500460747057082764996435506735298654080:24:46 13500460747057082764996435506735298654081:24:47 13500460747057082764996435506735298654082:24:47 22376373215145016417253120871498164207615:24:47 22376373215145016417253120871498164207616:24:48 22376373215145016417253120871498164207617:24:48 36703368217294125441230211032033660188800:24:48 36703368217294125441230211032033660188801:24:49 36703368217294125441230211032033660188802:24:49 59604644775390624999999999999999999999999:24:49 59604644775390625000000000000000000000000:24:50 59604644775390625000000000000000000000001:24:50 95870330898477161150869439346099166191200:24:50 95870330898477161150869439346099166191201:24:51 95870330898477161150869439346099166191202:24:51 152784834199652075368661148843397208866815:24:51 152784834199652075368661148843397208866816:24:52 152784834199652075368661148843397208866817:24:52 241335311011519234780052665404754645838880:24:52 241335311011519234780052665404754645838881:24:53 241335311011519234780052665404754645838882:24:53 377963825299746235969115118367001548947455:24:53 377963825299746235969115118367001548947456:24:54 377963825299746235969115118367001548947457:24:54 587089817274070447368135511875152587890624:24:54 587089817274070447368135511875152587890625:24:55 587089817274070447368135511875152587890626:24:55 904716785818481122446300007835278136836095:24:55 904716785818481122446300007835278136836096:24:56 904716785818481122446300007835278136836097:24:56 1383555343921576970686857174303757103336000:24:56 1383555343921576970686857174303757103336001:24:57 1383555343921576970686857174303757103336002:24:57 2100254120907352485526230505830591911428095:24:57 2100254120907352485526230505830591911428096:24:58 2100254120907352485526230505830591911428097:24:58 3165543453070218706859776348972393302368160:24:58 3165543453070218706859776348972393302368161:24:59 3165543453070218706859776348972393302368162:24:59 4738381338321616895999999999999999999999999:24:59 4738381338321616896000000000000000000000000:24:60 4738381338321616896000000000000000000000001:24:60 7045568477354647704120453346932251277539040:24:60 7045568477354647704120453346932251277539041:24:61 7045568477354647704120453346932251277539042:24:61 10408797222153426578715765348940396820955135:24:61 10408797222153426578715765348940396820955136:24:62 10408797222153426578715765348940396820955137:24:62 15281753387515092300969183265095802212661760:24:62 15281753387515092300969183265095802212661761:24:63 15281753387515092300969183265095802212661762:24:63 22300745198530623141535718272648361505980415:24:63 22300745198530623141535718272648361505980416:24:64 22300745198530623141535718272648361505980417:24:64 32353447101972729728913030683994293212890624:24:64 32353447101972729728913030683994293212890625:24:65 32353447101972729728913030683994293212890626:24:65 46671789498503428939167356055479642316865535:24:65 46671789498503428939167356055479642316865536:24:66 46671789498503428939167356055479642316865537:24:66 66956888672235945457062019127709902451882720:24:66 66956888672235945457062019127709902451882721:24:67 66956888672235945457062019127709902451882722:24:67 95546306852743509270601447628868725952741375:24:67 95546306852743509270601447628868725952741376:24:68 95546306852743509270601447628868725952741377:24:68 135637000670178176410246734932581577148578720:24:68 135637000670178176410246734932581577148578721:24:69 135637000670178176410246734932581577148578722:24:69 191581231380566414400999999999999999999999999:24:69 191581231380566414401000000000000000000000000:24:70 191581231380566414401000000000000000000000001:24:70 269277687648484922418719360310447236922646080:24:70 269277687648484922418719360310447236922646081:24:71 269277687648484922418719360310447236922646082:24:71 376686377243952195401306999861472444605792255:24:71 376686377243952195401306999861472444605792256:24:72 376686377243952195401306999861472444605792257:24:72 524503804723748275248688345080154231098133440:24:72 524503804723748275248688345080154231098133441:24:73 524503804723748275248688345080154231098133442:24:73 727044968970026748378706689217733311464472575:24:73 727044968970026748378706689217733311464472576:24:74 727044968970026748378706689217733311464472577:24:74 1003391277553333793548517860472202301025390624:24:74 1003391277553333793548517860472202301025390625:24:75 1003391277553333793548517860472202301025390626:24:75 1378879181903229284421282144252718341922226175:24:75 1378879181903229284421282144252718341922226176:24:76 1378879181903229284421282144252718341922226177:24:76 1887023914800623499934622000276222741687622240:24:76 1887023914800623499934622000276222741687622241:24:77 1887023914800623499934622000276222741687622242:24:77 2571997040768514410128631917321301874972819455:24:77 2571997040768514410128631917321301874972819456:24:78 2571997040768514410128631917321301874972819457:24:78 3491806676006468166913468087133050334443236480:24:78 3491806676006468166913468087133050334443236481:24:79 3491806676006468166913468087133050334443236482:24:79 4722366482869645213695999999999999999999999999:24:79 4722366482869645213696000000000000000000000000:24:80 4722366482869645213696000000000000000000000001:24:80 6362685441135942358474828762538534230890216320:24:80 6362685441135942358474828762538534230890216321:24:81 6362685441135942358474828762538534230890216322:24:81 8541466801005399527679147831234071328955826175:24:81 8541466801005399527679147831234071328955826176:24:82 8541466801005399527679147831234071328955826177:24:82 11425473754371035063280217037137346730160045920:24:82 11425473754371035063280217037137346730160045921:24:83 11425473754371035063280217037137346730160045922:24:83 15230103878098355389592475654267327331681959935:24:83 15230103878098355389592475654267327331681959936:24:84 15230103878098355389592475654267327331681959937:24:84 20232717473185771980494506187498569488525390624:24:84 20232717473185771980494506187498569488525390625:24:85 20232717473185771980494506187498569488525390626:24:85 26789390314642155531533270471635940204678742015:24:85 26789390314642155531533270471635940204678742016:24:86 26789390314642155531533270471635940204678742017:24:86 35355913511525016643527540154987349596888122560:24:86 35355913511525016643527540154987349596888122561:24:87 35355913511525016643527540154987349596888122562:24:87 46514047453459807791859709226757301461986574335:24:87 46514047453459807791859709226757301461986574336:24:88 46514047453459807791859709226757301461986574337:24:88 61004259453331056987939675478443460082004997440:24:88 61004259453331056987939675478443460082004997441:24:89 61004259453331056987939675478443460082004997442:24:89 79766443076872509863360999999999999999999999999:24:89 79766443076872509863361000000000000000000000000:24:90 79766443076872509863361000000000000000000000001:24:90 103990439982641976602358193567219214216215193760:24:90 103990439982641976602358193567219214216215193761:24:91 103990439982641976602358193567219214216215193762:24:91 135178572611190144939662572289356335008129744895:24:91 135178572611190144939662572289356335008129744896:24:92 135178572611190144939662572289356335008129744897:24:92 175222860263437786894593195184969752945814431200:24:92 175222860263437786894593195184969752945814431201:24:93 175222860263437786894593195184969752945814431202:24:93 226500146052898041878222437726567560344026218495:24:93 226500146052898041878222437726567560344026218496:24:94 226500146052898041878222437726567560344026218497:24:94 291989024338772703273075537557661533355712890624:24:94 291989024338772703273075537557661533355712890625:24:95 291989024338772703273075537557661533355712890626:24:95 375413246727102411755801735535232944514642477055:24:95 375413246727102411755801735535232944514642477056:24:96 375413246727102411755801735535232944514642477057:24:96 481417221911723703707680699904910046003049191680:24:96 481417221911723703707680699904910046003049191681:24:97 481417221911723703707680699904910046003049191682:24:97 615780336509078478058614556210011636258115158015:24:97 615780336509078478058614556210011636258115158016:24:98 615780336509078478058614556210011636258115158017:24:98 785678140807218961624989385416233772020578757600:24:98 785678140807218961624989385416233772020578757601:24:99 785678140807218961624989385416233772020578757602:24:99 0:25:0 1:25:1 2:25:1 33554431:25:1 33554432:25:2 33554433:25:2 847288609442:25:2 847288609443:25:3 847288609444:25:3 1125899906842623:25:3 1125899906842624:25:4 1125899906842625:25:4 298023223876953124:25:4 298023223876953125:25:5 298023223876953126:25:5 28430288029929701375:25:5 28430288029929701376:25:6 28430288029929701377:25:6 1341068619663964900806:25:6 1341068619663964900807:25:7 1341068619663964900808:25:7 37778931862957161709567:25:7 37778931862957161709568:25:8 37778931862957161709569:25:8 717897987691852588770248:25:8 717897987691852588770249:25:9 717897987691852588770250:25:9 108347059433883722041830250:25:10 108347059433883722041830251:25:11 108347059433883722041830252:25:11 953962166440690129601298431:25:11 953962166440690129601298432:25:12 953962166440690129601298433:25:12 7056410014866816666030739692:25:12 7056410014866816666030739693:25:13 7056410014866816666030739694:25:13 44998795805848373114515226623:25:13 44998795805848373114515226624:25:14 44998795805848373114515226625:25:14 252511682940423488616943359374:25:14 252511682940423488616943359375:25:15 252511682940423488616943359376:25:15 1267650600228229401496703205375:25:15 1267650600228229401496703205376:25:16 1267650600228229401496703205377:25:16 5770627412348402378939569991056:25:16 5770627412348402378939569991057:25:17 5770627412348402378939569991058:25:17 24088659210943104643915283693567:25:17 24088659210943104643915283693568:25:18 24088659210943104643915283693569:25:18 93076495688256089536609610280498:25:18 93076495688256089536609610280499:25:19 93076495688256089536609610280500:25:19 335544319999999999999999999999999:25:19 335544320000000000000000000000000:25:20 335544320000000000000000000000001:25:20 1136272165922724266740722458520500:25:20 1136272165922724266740722458520501:25:21 1136272165922724266740722458520502:25:21 3635524038174209847159494312722431:25:21 3635524038174209847159494312722432:25:22 3635524038174209847159494312722433:25:22 11045767571919545466173812409689942:25:22 11045767571919545466173812409689943:25:23 11045767571919545466173812409689944:25:23 32009658644406818986777955348250623:25:23 32009658644406818986777955348250624:25:24 32009658644406818986777955348250625:25:24 88817841970012523233890533447265624:25:24 88817841970012523233890533447265625:25:25 88817841970012523233890533447265626:25:25 236773830007967588876795164938469375:25:25 236773830007967588876795164938469376:25:26 236773830007967588876795164938469377:25:26 608266787713357709119683992618861306:25:26 608266787713357709119683992618861307:25:27 608266787713357709119683992618861308:25:27 1509909033949224437981629384719597567:25:27 1509909033949224437981629384719597568:25:28 1509909033949224437981629384719597569:25:28 3630362123627258663193028251474330748:25:28 3630362123627258663193028251474330749:25:29 3630362123627258663193028251474330750:25:29 8472886094429999999999999999999999999:25:29 8472886094430000000000000000000000000:25:30 8472886094430000000000000000000000001:25:30 19232792489931358333837313998767870750:25:30 19232792489931358333837313998767870751:25:31 19232792489931358333837313998767870752:25:31 42535295865117307932921825928971026431:25:31 42535295865117307932921825928971026432:25:32 42535295865117307932921825928971026433:25:32 91801229324973413645775482048441660192:25:32 91801229324973413645775482048441660193:25:33 91801229324973413645775482048441660194:25:33 193630125104980427932766033374162714623:25:33 193630125104980427932766033374162714624:25:34 193630125104980427932766033374162714625:25:34 399669593472470313551127910614013671874:25:34 399669593472470313551127910614013671875:25:35 399669593472470313551127910614013671876:25:35 808281277464764060643139600456536293375:25:35 808281277464764060643139600456536293376:25:36 808281277464764060643139600456536293377:25:36 1603404513114153724313506335083015711556:25:36 1603404513114153724313506335083015711557:25:37 1603404513114153724313506335083015711558:25:37 3123128945369882154942078678703504621567:25:37 3123128945369882154942078678703504621568:25:38 3123128945369882154942078678703504621569:25:38 5978815829156164049805202768774674720998:25:38 5978815829156164049805202768774674720999:25:39 5978815829156164049805202768774674721000:25:39 11258999068426239999999999999999999999999:25:39 11258999068426240000000000000000000000000:25:40 11258999068426240000000000000000000000001:25:40 20873554875923477449109855954682643681000:25:40 20873554875923477449109855954682643681001:25:41 20873554875923477449109855954682643681002:25:41 38126967124946768663101433365298971410431:25:41 38126967124946768663101433365298971410432:25:42 38126967124946768663101433365298971410433:25:42 68661200018502037993426956551095570850442:25:42 68661200018502037993426956551095570850443:25:43 68661200018502037993426956551095570850444:25:43 121987944123281928470243645070631579418623:25:43 121987944123281928470243645070631579418624:25:44 121987944123281928470243645070631579418625:25:44 213950272706703123083784878253936767578124:25:44 213950272706703123083784878253936767578125:25:45 213950272706703123083784878253936767578126:25:45 370634456879779497815637488681697333477375:25:45 370634456879779497815637488681697333477376:25:46 370634456879779497815637488681697333477377:25:46 634521655111682889954832468816559036741806:25:46 634521655111682889954832468816559036741807:25:47 634521655111682889954832468816559036741808:25:47 1074065914326960788028149801831911881965567:25:47 1074065914326960788028149801831911881965568:25:48 1074065914326960788028149801831911881965569:25:48 1798465042647412146620280340569649349251248:25:48 1798465042647412146620280340569649349251249:25:49 1798465042647412146620280340569649349251250:25:49 2980232238769531249999999999999999999999999:25:49 2980232238769531250000000000000000000000000:25:50 2980232238769531250000000000000000000000001:25:50 4889386875822335218694341406651057475751250:25:50 4889386875822335218694341406651057475751251:25:51 4889386875822335218694341406651057475751252:25:51 7944811378381907919170379739856654861074431:25:51 7944811378381907919170379739856654861074432:25:52 7944811378381907919170379739856654861074433:25:52 12790771483610519443342791266451996229460692:25:52 12790771483610519443342791266451996229460693:25:53 12790771483610519443342791266451996229460694:25:53 20410046566186296742332216391818083643162623:25:53 20410046566186296742332216391818083643162624:25:54 20410046566186296742332216391818083643162625:25:54 32289939950073874605247453153133392333984374:25:54 32289939950073874605247453153133392333984375:25:55 32289939950073874605247453153133392333984376:25:55 50664140005834942856992800438775575662821375:25:55 50664140005834942856992800438775575662821376:25:56 50664140005834942856992800438775575662821377:25:56 78862654603529887329150858935314154890152056:25:56 78862654603529887329150858935314154890152057:25:57 78862654603529887329150858935314154890152058:25:57 121814739012626444160521369338174330862829567:25:57 121814739012626444160521369338174330862829568:25:58 121814739012626444160521369338174330862829569:25:58 186767063731142903704726804589371204839721498:25:58 186767063731142903704726804589371204839721499:25:59 186767063731142903704726804589371204839721500:25:59 284302880299297013759999999999999999999999999:25:59 284302880299297013760000000000000000000000000:25:60 284302880299297013760000000000000000000000001:25:60 429779677118633509951347654162867327929881500:25:60 429779677118633509951347654162867327929881501:25:61 429779677118633509951347654162867327929881502:25:61 645345427773512447880377451634304602899218431:25:61 645345427773512447880377451634304602899218432:25:62 645345427773512447880377451634304602899218433:25:62 962750463413450814961058545701035539397690942:25:62 962750463413450814961058545701035539397690943:25:63 962750463413450814961058545701035539397690944:25:63 1427247692705959881058285969449495136382746623:25:63 1427247692705959881058285969449495136382746624:25:64 1427247692705959881058285969449495136382746625:25:64 2102974061628227432379346994459629058837890624:25:64 2102974061628227432379346994459629058837890625:25:65 2102974061628227432379346994459629058837890626:25:65 3080338106901226309985045499661656392913125375:25:65 3080338106901226309985045499661656392913125376:25:66 3080338106901226309985045499661656392913125377:25:66 4486111541039808345623155281556563464276142306:25:66 4486111541039808345623155281556563464276142307:25:67 4486111541039808345623155281556563464276142308:25:67 6497148865986558630400898438763073364786413567:25:67 6497148865986558630400898438763073364786413568:25:68 6497148865986558630400898438763073364786413569:25:68 9358953046242294172307024710348128823251931748:25:68 9358953046242294172307024710348128823251931749:25:69 9358953046242294172307024710348128823251931750:25:69 13410686196639649008069999999999999999999999999:25:69 13410686196639649008070000000000000000000000000:25:70 13410686196639649008070000000000000000000000001:25:70 19118715823042429491729074582041753821507871750:25:70 19118715823042429491729074582041753821507871751:25:71 19118715823042429491729074582041753821507871752:25:71 27121419161564558068894103990026016011617042431:25:71 27121419161564558068894103990026016011617042432:25:72 27121419161564558068894103990026016011617042433:25:72 38288777744833624093154249190851258870163741192:25:72 38288777744833624093154249190851258870163741193:25:73 38288777744833624093154249190851258870163741194:25:73 53801327703781979380024295002112265048370970623:25:73 53801327703781979380024295002112265048370970624:25:74 53801327703781979380024295002112265048370970625:25:74 75254345816500034516138839535415172576904296874:25:74 75254345816500034516138839535415172576904296875:25:75 75254345816500034516138839535415172576904296876:25:75 104794817824645425616017442963206593986089189375:25:75 104794817824645425616017442963206593986089189376:25:76 104794817824645425616017442963206593986089189377:25:76 145300841439648009494965894021269151109946912556:25:76 145300841439648009494965894021269151109946912557:25:77 145300841439648009494965894021269151109946912558:25:77 200615769179944123990033289551061546247879917567:25:77 200615769179944123990033289551061546247879917568:25:78 200615769179944123990033289551061546247879917569:25:78 275852727404510985186163978883510976421015681998:25:78 275852727404510985186163978883510976421015681999:25:79 275852727404510985186163978883510976421015682000:25:79 377789318629571617095679999999999999999999999999:25:79 377789318629571617095680000000000000000000000000:25:80 377789318629571617095680000000000000000000000001:25:80 515377520732011331036461129765621272702107522000:25:80 515377520732011331036461129765621272702107522001:25:81 515377520732011331036461129765621272702107522002:25:81 700400277682442761269690122161193848974377746431:25:81 700400277682442761269690122161193848974377746432:25:82 700400277682442761269690122161193848974377746433:25:82 948314321612795910252258014082399778603283811442:25:82 948314321612795910252258014082399778603283811443:25:83 948314321612795910252258014082399778603283811444:25:83 1279328725760261852725767954958455495861284634623:25:83 1279328725760261852725767954958455495861284634624:25:84 1279328725760261852725767954958455495861284634625:25:84 1719780985220790618342033025937378406524658203124:25:84 1719780985220790618342033025937378406524658203125:25:85 1719780985220790618342033025937378406524658203126:25:85 2303887567059225375711861260560690857602371813375:25:85 2303887567059225375711861260560690857602371813376:25:86 2303887567059225375711861260560690857602371813377:25:86 3075964475502676447986895993483899414929266662806:25:86 3075964475502676447986895993483899414929266662807:25:87 3075964475502676447986895993483899414929266662808:25:87 4093236175904463085683654411954642528654818541567:25:87 4093236175904463085683654411954642528654818541568:25:88 4093236175904463085683654411954642528654818541569:25:88 5429379091346464071926631117581467947298444772248:25:88 5429379091346464071926631117581467947298444772249:25:89 5429379091346464071926631117581467947298444772250:25:89 7178979876918525887702489999999999999999999999999:25:89 7178979876918525887702490000000000000000000000000:25:90 7178979876918525887702490000000000000000000000001:25:90 9463130038420419870814595614616948493675582632250:25:90 9463130038420419870814595614616948493675582632251:25:91 9463130038420419870814595614616948493675582632252:25:91 12436428680229493334448956650620782820747936530431:25:91 12436428680229493334448956650620782820747936530432:25:92 12436428680229493334448956650620782820747936530433:25:92 16295726004499714181197167152202187023960742101692:25:92 16295726004499714181197167152202187023960742101693:25:93 16295726004499714181197167152202187023960742101694:25:93 21291013728972415936552909146297350672338464538623:25:93 21291013728972415936552909146297350672338464538624:25:94 21291013728972415936552909146297350672338464538625:25:94 27738957312183406810942176067977845668792724609374:25:94 27738957312183406810942176067977845668792724609375:25:95 27738957312183406810942176067977845668792724609376:25:95 36039671685801831528556966611382362673405677797375:25:95 36039671685801831528556966611382362673405677797376:25:96 36039671685801831528556966611382362673405677797377:25:96 46697470525437199259645027890776274462295771593056:25:96 46697470525437199259645027890776274462295771593057:25:97 46697470525437199259645027890776274462295771593058:25:97 60346472977889690849744226508581140353295285485567:25:97 60346472977889690849744226508581140353295285485568:25:98 60346472977889690849744226508581140353295285485569:25:98 77782135939914677200873949156207143430037297002498:25:98 77782135939914677200873949156207143430037297002499:25:99 77782135939914677200873949156207143430037297002500:25:99 0:26:0 1:26:1 2:26:1 67108863:26:1 67108864:26:2 67108865:26:2 2541865828328:26:2 2541865828329:26:3 2541865828330:26:3 4503599627370495:26:3 4503599627370496:26:4 4503599627370497:26:4 1490116119384765624:26:4 1490116119384765625:26:5 1490116119384765626:26:5 170581728179578208255:26:5 170581728179578208256:26:6 170581728179578208257:26:6 9387480337647754305648:26:6 9387480337647754305649:26:7 9387480337647754305650:26:7 302231454903657293676543:26:7 302231454903657293676544:26:8 302231454903657293676545:26:8 6461081889226673298932240:26:8 6461081889226673298932241:26:9 6461081889226673298932242:26:9 1191817653772720942460132760:26:10 1191817653772720942460132761:26:11 1191817653772720942460132762:26:11 11447545997288281555215581183:26:11 11447545997288281555215581184:26:12 11447545997288281555215581185:26:12 91733330193268616658399616008:26:12 91733330193268616658399616009:26:13 91733330193268616658399616010:26:13 629983141281877223603213172735:26:13 629983141281877223603213172736:26:14 629983141281877223603213172737:26:14 3787675244106352329254150390624:26:14 3787675244106352329254150390625:26:15 3787675244106352329254150390626:26:15 20282409603651670423947251286015:26:15 20282409603651670423947251286016:26:16 20282409603651670423947251286017:26:16 98100666009922840441972689847968:26:16 98100666009922840441972689847969:26:17 98100666009922840441972689847970:26:17 433595865796975883590475106484223:26:17 433595865796975883590475106484224:26:18 433595865796975883590475106484225:26:18 1768453418076865701195582595329480:26:18 1768453418076865701195582595329481:26:19 1768453418076865701195582595329482:26:19 6710886399999999999999999999999999:26:19 6710886400000000000000000000000000:26:20 6710886400000000000000000000000001:26:20 23861715484377209601555171628930520:26:20 23861715484377209601555171628930521:26:21 23861715484377209601555171628930522:26:21 79981528839832616637508874879893503:26:21 79981528839832616637508874879893504:26:22 79981528839832616637508874879893505:26:22 254052654154149545721997685422868688:26:22 254052654154149545721997685422868689:26:23 254052654154149545721997685422868690:26:23 768231807465763655682670928358014975:26:23 768231807465763655682670928358014976:26:24 768231807465763655682670928358014977:26:24 2220446049250313080847263336181640624:26:24 2220446049250313080847263336181640625:26:25 2220446049250313080847263336181640626:26:25 6156119580207157310796674288400203775:26:25 6156119580207157310796674288400203776:26:26 6156119580207157310796674288400203777:26:26 16423203268260658146231467800709255288:26:26 16423203268260658146231467800709255289:26:27 16423203268260658146231467800709255290:26:27 42277452950578284263485622772148731903:26:27 42277452950578284263485622772148731904:26:28 42277452950578284263485622772148731905:26:28 105280501585190501232597819292755591720:26:28 105280501585190501232597819292755591721:26:29 105280501585190501232597819292755591722:26:29 254186582832899999999999999999999999999:26:29 254186582832900000000000000000000000000:26:30 254186582832900000000000000000000000001:26:30 596216567187872108348956733961803993280:26:30 596216567187872108348956733961803993281:26:31 596216567187872108348956733961803993282:26:31 1361129467683753853853498429727072845823:26:31 1361129467683753853853498429727072845824:26:32 1361129467683753853853498429727072845825:26:32 3029440567724122650310590907598574786368:26:32 3029440567724122650310590907598574786369:26:33 3029440567724122650310590907598574786370:26:33 6583424253569334549714045134721532297215:26:33 6583424253569334549714045134721532297216:26:34 6583424253569334549714045134721532297217:26:34 13988435771536460974289476871490478515624:26:34 13988435771536460974289476871490478515625:26:35 13988435771536460974289476871490478515626:26:35 29098125988731506183153025616435306561535:26:35 29098125988731506183153025616435306561536:26:36 29098125988731506183153025616435306561537:26:36 59325966985223687799599734398071581327608:26:36 59325966985223687799599734398071581327609:26:37 59325966985223687799599734398071581327610:26:37 118678899924055521887798989790733175619583:26:37 118678899924055521887798989790733175619584:26:38 118678899924055521887798989790733175619585:26:38 233173817337090397942402907982212314118960:26:38 233173817337090397942402907982212314118961:26:39 233173817337090397942402907982212314118962:26:39 450359962737049599999999999999999999999999:26:39 450359962737049600000000000000000000000000:26:40 450359962737049600000000000000000000000001:26:40 855815749912862575413504094141988390921040:26:40 855815749912862575413504094141988390921041:26:41 855815749912862575413504094141988390921042:26:41 1601332619247764283850260201342556799238143:26:41 1601332619247764283850260201342556799238144:26:42 1601332619247764283850260201342556799238145:26:42 2952431600795587633717359131697109546569048:26:42 2952431600795587633717359131697109546569049:26:43 2952431600795587633717359131697109546569050:26:43 5367469541424404852690720383107789494419455:26:43 5367469541424404852690720383107789494419456:26:44 5367469541424404852690720383107789494419457:26:44 9627762271801640538770319521427154541015624:26:44 9627762271801640538770319521427154541015625:26:45 9627762271801640538770319521427154541015626:26:45 17049185016469856899519324479358077339959295:26:45 17049185016469856899519324479358077339959296:26:46 17049185016469856899519324479358077339959297:26:46 29822517790249095827877126034378274726864928:26:46 29822517790249095827877126034378274726864929:26:47 29822517790249095827877126034378274726864930:26:47 51555163887694117825351190487931770334347263:26:47 51555163887694117825351190487931770334347264:26:48 51555163887694117825351190487931770334347265:26:48 88124787089723195184393736687912818113311200:26:48 88124787089723195184393736687912818113311201:26:49 88124787089723195184393736687912818113311202:26:49 149011611938476562499999999999999999999999999:26:49 149011611938476562500000000000000000000000000:26:50 149011611938476562500000000000000000000000001:26:50 249358730666939096153411411739203931263313800:26:50 249358730666939096153411411739203931263313801:26:51 249358730666939096153411411739203931263313802:26:51 413130191675859211796859746472546052775870463:26:51 413130191675859211796859746472546052775870464:26:52 413130191675859211796859746472546052775870465:26:52 677910888631357530497167937121955800161416728:26:52 677910888631357530497167937121955800161416729:26:53 677910888631357530497167937121955800161416730:26:53 1102142514574060024085939685158176516730781695:26:53 1102142514574060024085939685158176516730781696:26:54 1102142514574060024085939685158176516730781697:26:54 1775946697254063103288609923422336578369140624:26:54 1775946697254063103288609923422336578369140625:26:55 1775946697254063103288609923422336578369140626:26:55 2837191840326756799991596824571432237117997055:26:55 2837191840326756799991596824571432237117997056:26:56 2837191840326756799991596824571432237117997057:26:56 4495171312401203577761598959312906828738667248:26:56 4495171312401203577761598959312906828738667249:26:57 4495171312401203577761598959312906828738667250:26:57 7065254862732333761310239421614111190044114943:26:57 7065254862732333761310239421614111190044114944:26:58 7065254862732333761310239421614111190044114945:26:58 11019256760137431318578881470772901085543568440:26:58 11019256760137431318578881470772901085543568441:26:59 11019256760137431318578881470772901085543568442:26:59 17058172817957820825599999999999999999999999999:26:59 17058172817957820825600000000000000000000000000:26:60 17058172817957820825600000000000000000000000001:26:60 26216560304236644107032206903934907003722771560:26:60 26216560304236644107032206903934907003722771561:26:61 26216560304236644107032206903934907003722771562:26:61 40011416521957771768583402001326885379751542783:26:61 40011416521957771768583402001326885379751542784:26:62 40011416521957771768583402001326885379751542785:26:62 60653279195047401342546688379165238982054529408:26:62 60653279195047401342546688379165238982054529409:26:63 60653279195047401342546688379165238982054529410:26:63 91343852333181432387730302044767688728495783935:26:63 91343852333181432387730302044767688728495783936:26:64 91343852333181432387730302044767688728495783937:26:64 136693314005834783104657554639875888824462890624:26:64 136693314005834783104657554639875888824462890625:26:65 136693314005834783104657554639875888824462890626:26:65 203302315055480936459013002977669321932266274815:26:65 203302315055480936459013002977669321932266274816:26:66 203302315055480936459013002977669321932266274817:26:66 300569473249667159156751403864289752106501534568:26:66 300569473249667159156751403864289752106501534569:26:67 300569473249667159156751403864289752106501534570:26:67 441806122887085986867261093835888988805476122623:26:67 441806122887085986867261093835888988805476122624:26:68 441806122887085986867261093835888988805476122625:26:68 645767760190718297889184705014020888804383290680:26:68 645767760190718297889184705014020888804383290681:26:69 645767760190718297889184705014020888804383290682:26:69 938748033764775430564899999999999999999999999999:26:69 938748033764775430564900000000000000000000000000:26:70 938748033764775430564900000000000000000000000001:26:70 1357428823436012493912764295324964521327058894320:26:70 1357428823436012493912764295324964521327058894321:26:71 1357428823436012493912764295324964521327058894322:26:71 1952742179632648180960375487281873152836427055103:26:71 1952742179632648180960375487281873152836427055104:26:72 1952742179632648180960375487281873152836427055105:26:72 2795080775372854558800260190932141897521953107088:26:72 2795080775372854558800260190932141897521953107089:26:73 2795080775372854558800260190932141897521953107090:26:73 3981298250079866474121797830156307613579451826175:26:73 3981298250079866474121797830156307613579451826176:26:74 3981298250079866474121797830156307613579451826177:26:74 5644075936237502588710412965156137943267822265624:26:74 5644075936237502588710412965156137943267822265625:26:75 5644075936237502588710412965156137943267822265626:26:75 7964406154673052346817325665203701142942778392575:26:75 7964406154673052346817325665203701142942778392576:26:76 7964406154673052346817325665203701142942778392577:26:76 11188164790852896731112373839637724635465912266888:26:76 11188164790852896731112373839637724635465912266889:26:77 11188164790852896731112373839637724635465912266890:26:77 15648029996035641671222596584982800607334633570303:26:77 15648029996035641671222596584982800607334633570304:26:78 15648029996035641671222596584982800607334633570305:26:78 21792365464956367829706954331797367137260238877920:26:78 21792365464956367829706954331797367137260238877921:26:79 21792365464956367829706954331797367137260238877922:26:79 30223145490365729367654399999999999999999999999999:26:79 30223145490365729367654400000000000000000000000000:26:80 30223145490365729367654400000000000000000000000001:26:80 41745579179292917813953351511015323088870709282080:26:80 41745579179292917813953351511015323088870709282081:26:81 41745579179292917813953351511015323088870709282082:26:81 57432822769960306424114590017217895615898975207423:26:81 57432822769960306424114590017217895615898975207424:26:82 57432822769960306424114590017217895615898975207425:26:82 78710088693862060550937415168839181624072556349768:26:82 78710088693862060550937415168839181624072556349769:26:83 78710088693862060550937415168839181624072556349770:26:83 107463612963861995628964508216510261652347909308415:26:83 107463612963861995628964508216510261652347909308416:26:84 107463612963861995628964508216510261652347909308417:26:84 146181383743767202559072807204677164554595947265624:26:84 146181383743767202559072807204677164554595947265625:26:85 146181383743767202559072807204677164554595947265626:26:85 198134330767093382311220068408219413753803975950335:26:85 198134330767093382311220068408219413753803975950336:26:86 198134330767093382311220068408219413753803975950337:26:86 267608909368732850974859951433099249098846199664208:26:86 267608909368732850974859951433099249098846199664209:26:87 267608909368732850974859951433099249098846199664210:26:87 360204783479592751540161588252008542521624031657983:26:87 360204783479592751540161588252008542521624031657984:26:88 360204783479592751540161588252008542521624031657985:26:88 483214739129835302401470169464750647309561584730160:26:88 483214739129835302401470169464750647309561584730161:26:89 483214739129835302401470169464750647309561584730162:26:89 646108188922667329893224099999999999999999999999999:26:89 646108188922667329893224100000000000000000000000000:26:90 646108188922667329893224100000000000000000000000001:26:90 861144833496258208244128200930142312924478019534840:26:90 861144833496258208244128200930142312924478019534841:26:91 861144833496258208244128200930142312924478019534842:26:91 1144151438581113386769304011857112019508810160799743:26:91 1144151438581113386769304011857112019508810160799744:26:92 1144151438581113386769304011857112019508810160799745:26:92 1515502518418473418851336545154803393228349015457448:26:92 1515502518418473418851336545154803393228349015457449:26:93 1515502518418473418851336545154803393228349015457450:26:93 2001355290523407098035973459751950963199815666630655:26:93 2001355290523407098035973459751950963199815666630656:26:94 2001355290523407098035973459751950963199815666630657:26:94 2635200944657423647039506726457895338535308837890624:26:94 2635200944657423647039506726457895338535308837890625:26:95 2635200944657423647039506726457895338535308837890626:26:95 3459808481836975826741468794692706816646945068548095:26:95 3459808481836975826741468794692706816646945068548096:26:96 3459808481836975826741468794692706816646945068548097:26:96 4529654640967408328185567705405298622842689844526528:26:96 4529654640967408328185567705405298622842689844526529:26:97 4529654640967408328185567705405298622842689844526530:26:97 5913954351833189703274934197840951754622937977585663:26:97 5913954351833189703274934197840951754622937977585664:26:98 5913954351833189703274934197840951754622937977585665:26:98 7700431458051553042886520966464507199573692403247400:26:98 7700431458051553042886520966464507199573692403247401:26:99 7700431458051553042886520966464507199573692403247402:26:99 0:27:0 1:27:1 2:27:1 134217727:27:1 134217728:27:2 134217729:27:2 7625597484986:27:2 7625597484987:27:3 7625597484988:27:3 18014398509481983:27:3 18014398509481984:27:4 18014398509481985:27:4 7450580596923828124:27:4 7450580596923828125:27:5 7450580596923828126:27:5 1023490369077469249535:27:5 1023490369077469249536:27:6 1023490369077469249537:27:6 65712362363534280139542:27:6 65712362363534280139543:27:7 65712362363534280139544:27:7 2417851639229258349412351:27:7 2417851639229258349412352:27:8 2417851639229258349412353:27:8 58149737003040059690390168:27:8 58149737003040059690390169:27:9 58149737003040059690390170:27:9 13109994191499930367061460370:27:10 13109994191499930367061460371:27:11 13109994191499930367061460372:27:11 137370551967459378662586974207:27:11 137370551967459378662586974208:27:12 137370551967459378662586974209:27:12 1192533292512492016559195008116:27:12 1192533292512492016559195008117:27:13 1192533292512492016559195008118:27:13 8819763977946281130444984418303:27:13 8819763977946281130444984418304:27:14 8819763977946281130444984418305:27:14 56815128661595284938812255859374:27:14 56815128661595284938812255859375:27:15 56815128661595284938812255859376:27:15 324518553658426726783156020576255:27:15 324518553658426726783156020576256:27:16 324518553658426726783156020576257:27:16 1667711322168688287513535727415472:27:16 1667711322168688287513535727415473:27:17 1667711322168688287513535727415474:27:17 7804725584345565904628551916716031:27:17 7804725584345565904628551916716032:27:18 7804725584345565904628551916716033:27:18 33600614943460448322716069311260138:27:18 33600614943460448322716069311260139:27:19 33600614943460448322716069311260140:27:19 134217727999999999999999999999999999:27:19 134217728000000000000000000000000000:27:20 134217728000000000000000000000000001:27:20 501096025171921401632658604207540940:27:20 501096025171921401632658604207540941:27:21 501096025171921401632658604207540942:27:21 1759593634476317566025195247357657087:27:21 1759593634476317566025195247357657088:27:22 1759593634476317566025195247357657089:27:22 5843211045545439551605946764725979846:27:22 5843211045545439551605946764725979847:27:23 5843211045545439551605946764725979848:27:23 18437563379178327736384102280592359423:27:23 18437563379178327736384102280592359424:27:24 18437563379178327736384102280592359425:27:24 55511151231257827021181583404541015624:27:24 55511151231257827021181583404541015625:27:25 55511151231257827021181583404541015626:27:25 160059109085386090080713531498405298175:27:25 160059109085386090080713531498405298176:27:26 160059109085386090080713531498405298177:27:26 443426488243037769948249630619149892802:27:26 443426488243037769948249630619149892803:27:27 443426488243037769948249630619149892804:27:27 1183768682616191959377597437620164493311:27:27 1183768682616191959377597437620164493312:27:28 1183768682616191959377597437620164493313:27:28 3053134545970524535745336759489912159908:27:28 3053134545970524535745336759489912159909:27:29 3053134545970524535745336759489912159910:27:29 7625597484986999999999999999999999999999:27:29 7625597484987000000000000000000000000000:27:30 7625597484987000000000000000000000000001:27:30 18482713582824035358817658752815923791710:27:30 18482713582824035358817658752815923791711:27:31 18482713582824035358817658752815923791712:27:31 43556142965880123323311949751266331066367:27:31 43556142965880123323311949751266331066368:27:32 43556142965880123323311949751266331066369:27:32 99971538734896047460249499950752967950176:27:32 99971538734896047460249499950752967950177:27:33 99971538734896047460249499950752967950178:27:33 223836424621357374690277534580532098105343:27:33 223836424621357374690277534580532098105344:27:34 223836424621357374690277534580532098105345:27:34 489595252003776134100131690502166748046874:27:34 489595252003776134100131690502166748046875:27:35 489595252003776134100131690502166748046876:27:35 1047532535594334222593508922191671036215295:27:35 1047532535594334222593508922191671036215296:27:36 1047532535594334222593508922191671036215297:27:36 2195060778453276448585190172728648509121532:27:36 2195060778453276448585190172728648509121533:27:37 2195060778453276448585190172728648509121534:27:37 4509798197114109831736361612047860673544191:27:37 4509798197114109831736361612047860673544192:27:38 4509798197114109831736361612047860673544193:27:38 9093778876146525519753713411306280250639478:27:38 9093778876146525519753713411306280250639479:27:39 9093778876146525519753713411306280250639480:27:39 18014398509481983999999999999999999999999999:27:39 18014398509481984000000000000000000000000000:27:40 18014398509481984000000000000000000000000001:27:40 35088445746427365591953667859821524027762680:27:40 35088445746427365591953667859821524027762681:27:41 35088445746427365591953667859821524027762682:27:41 67255970008406099921710928456387385568002047:27:41 67255970008406099921710928456387385568002048:27:42 67255970008406099921710928456387385568002049:27:42 126954558834210268249846442662975710502469106:27:42 126954558834210268249846442662975710502469107:27:43 126954558834210268249846442662975710502469108:27:43 236168659822673813518391696856742737754456063:27:43 236168659822673813518391696856742737754456064:27:44 236168659822673813518391696856742737754456065:27:44 433249302231073824244664378464221954345703124:27:44 433249302231073824244664378464221954345703125:27:45 433249302231073824244664378464221954345703126:27:45 784262510757613417377888926050471557638127615:27:45 784262510757613417377888926050471557638127616:27:46 784262510757613417377888926050471557638127617:27:46 1401658336141707503910224923615778912162651662:27:46 1401658336141707503910224923615778912162651663:27:47 1401658336141707503910224923615778912162651664:27:47 2474647866609317655616857143420724976048668671:27:47 2474647866609317655616857143420724976048668672:27:48 2474647866609317655616857143420724976048668673:27:48 4318114567396436564035293097707728087552248848:27:48 4318114567396436564035293097707728087552248849:27:49 4318114567396436564035293097707728087552248850:27:49 7450580596923828124999999999999999999999999999:27:49 7450580596923828125000000000000000000000000000:27:50 7450580596923828125000000000000000000000000001:27:50 12717295264013893903823981998699400494429003850:27:50 12717295264013893903823981998699400494429003851:27:51 12717295264013893903823981998699400494429003852:27:51 21482769967144679013436706816572394744345264127:27:51 21482769967144679013436706816572394744345264128:27:52 21482769967144679013436706816572394744345264129:27:52 35929277097461949116349900667463657408555086636:27:52 35929277097461949116349900667463657408555086637:27:53 35929277097461949116349900667463657408555086638:27:53 59515695786999241300640742998541531903462211583:27:53 59515695786999241300640742998541531903462211584:27:54 59515695786999241300640742998541531903462211585:27:54 97677068348973470680873545788228511810302734374:27:54 97677068348973470680873545788228511810302734375:27:55 97677068348973470680873545788228511810302734376:27:55 158882743058298380799529422176000205278607835135:27:55 158882743058298380799529422176000205278607835136:27:56 158882743058298380799529422176000205278607835137:27:56 256224764806868603932411140680835689238104033192:27:56 256224764806868603932411140680835689238104033193:27:57 256224764806868603932411140680835689238104033194:27:57 409784782038475358155993886453618449022558666751:27:57 409784782038475358155993886453618449022558666752:27:58 409784782038475358155993886453618449022558666753:27:58 650136148848108447796154006775601164047070538018:27:58 650136148848108447796154006775601164047070538019:27:59 650136148848108447796154006775601164047070538020:27:59 1023490369077469249535999999999999999999999999999:27:59 1023490369077469249536000000000000000000000000000:27:60 1023490369077469249536000000000000000000000000001:27:60 1599210178558435290528964621140029327227089065220:27:60 1599210178558435290528964621140029327227089065221:27:61 1599210178558435290528964621140029327227089065222:27:61 2480707824361381849652170924082266893544595652607:27:61 2480707824361381849652170924082266893544595652608:27:62 2480707824361381849652170924082266893544595652609:27:62 3821156589287986284580441367887410055869435352766:27:62 3821156589287986284580441367887410055869435352767:27:63 3821156589287986284580441367887410055869435352768:27:63 5846006549323611672814739330865132078623730171903:27:63 5846006549323611672814739330865132078623730171904:27:64 5846006549323611672814739330865132078623730171905:27:64 8885065410379260901802741051591932773590087890624:27:64 8885065410379260901802741051591932773590087890625:27:65 8885065410379260901802741051591932773590087890626:27:65 13417952793661741806294858196526175247529574137855:27:65 13417952793661741806294858196526175247529574137856:27:66 13417952793661741806294858196526175247529574137857:27:66 20138154707727699663502344058907413391135602816122:27:66 20138154707727699663502344058907413391135602816123:27:67 20138154707727699663502344058907413391135602816124:27:67 30042816356321847106973754380840451238772376338431:27:67 30042816356321847106973754380840451238772376338432:27:68 30042816356321847106973754380840451238772376338433:27:68 44557975453159562554353744645967441327502447056988:27:68 44557975453159562554353744645967441327502447056989:27:69 44557975453159562554353744645967441327502447056990:27:69 65712362363534280139542999999999999999999999999999:27:69 65712362363534280139543000000000000000000000000000:27:70 65712362363534280139543000000000000000000000000001:27:70 96377446463956887067806264968072481014221181496790:27:70 96377446463956887067806264968072481014221181496791:27:71 96377446463956887067806264968072481014221181496792:27:71 140597436933550669029147035084294867004222747967487:27:71 140597436933550669029147035084294867004222747967488:27:72 140597436933550669029147035084294867004222747967489:27:72 204040896602218382792418993938046358519102576817496:27:72 204040896602218382792418993938046358519102576817497:27:73 204040896602218382792418993938046358519102576817498:27:73 294616070505910119085013039431566763404879435137023:27:73 294616070505910119085013039431566763404879435137024:27:74 294616070505910119085013039431566763404879435137025:27:74 423305695217812694153280972386710345745086669921874:27:74 423305695217812694153280972386710345745086669921875:27:75 423305695217812694153280972386710345745086669921876:27:75 605294867755151978358116750555481286863651157835775:27:75 605294867755151978358116750555481286863651157835776:27:76 605294867755151978358116750555481286863651157835777:27:76 861488688895673048295652785652104796930875244550452:27:76 861488688895673048295652785652104796930875244550453:27:77 861488688895673048295652785652104796930875244550454:27:77 1220546339690780050355362533628658447372101418483711:27:77 1220546339690780050355362533628658447372101418483712:27:78 1220546339690780050355362533628658447372101418483713:27:78 1721596871731553058546849392211992003843558871355758:27:78 1721596871731553058546849392211992003843558871355759:27:79 1721596871731553058546849392211992003843558871355760:27:79 2417851639229258349412351999999999999999999999999999:27:79 2417851639229258349412352000000000000000000000000000:27:80 2417851639229258349412352000000000000000000000000001:27:80 3381391913522726342930221472392241170198527451848560:27:80 3381391913522726342930221472392241170198527451848561:27:81 3381391913522726342930221472392241170198527451848562:27:81 4709491467136745126777396381411867440503715967008767:27:81 4709491467136745126777396381411867440503715967008768:27:82 4709491467136745126777396381411867440503715967008769:27:82 6532937361590551025727805459013652074798022177030826:27:82 6532937361590551025727805459013652074798022177030827:27:83 6532937361590551025727805459013652074798022177030828:27:83 9026943488964407632833018690186861978797224381906943:27:83 9026943488964407632833018690186861978797224381906944:27:84 9026943488964407632833018690186861978797224381906945:27:84 12425417618220212217521188612397558987140655517578124:27:84 12425417618220212217521188612397558987140655517578125:27:85 12425417618220212217521188612397558987140655517578126:27:85 17039552445970030878764925883106869582827141931728895:27:85 17039552445970030878764925883106869582827141931728896:27:86 17039552445970030878764925883106869582827141931728897:27:86 23281975115079758034812815774679634671599619370786182:27:86 23281975115079758034812815774679634671599619370786183:27:87 23281975115079758034812815774679634671599619370786184:27:87 31698020946204162135534219766176751741902914785902591:27:87 31698020946204162135534219766176751741902914785902592:27:88 31698020946204162135534219766176751741902914785902593:27:88 43006111782555341913730845082362807610550981040984328:27:88 43006111782555341913730845082362807610550981040984329:27:89 43006111782555341913730845082362807610550981040984330:27:89 58149737003040059690390168999999999999999999999999999:27:89 58149737003040059690390169000000000000000000000000000:27:90 58149737003040059690390169000000000000000000000000001:27:90 78364179848159496950215666284642950476127499777670530:27:90 78364179848159496950215666284642950476127499777670531:27:91 78364179848159496950215666284642950476127499777670532:27:91 105261932349462431582775969090854305794810534793576447:27:91 105261932349462431582775969090854305794810534793576448:27:92 105261932349462431582775969090854305794810534793576449:27:92 140941734212918027953174298699396715570236458437542756:27:92 140941734212918027953174298699396715570236458437542757:27:93 140941734212918027953174298699396715570236458437542758:27:93 188127397309200267215381505216683390540782672663281663:27:93 188127397309200267215381505216683390540782672663281664:27:94 188127397309200267215381505216683390540782672663281665:27:94 250344089742455246468753139013500057160854339599609374:27:94 250344089742455246468753139013500057160854339599609375:27:95 250344089742455246468753139013500057160854339599609376:27:95 332141614256349679367181004290499854398106726580617215:27:95 332141614256349679367181004290499854398106726580617216:27:96 332141614256349679367181004290499854398106726580617217:27:96 439376500173838607834000067424313966415740914919073312:27:96 439376500173838607834000067424313966415740914919073313:27:97 439376500173838607834000067424313966415740914919073314:27:97 579567526479652590920943551388413271953047921803395071:27:97 579567526479652590920943551388413271953047921803395072:27:98 579567526479652590920943551388413271953047921803395073:27:98 762342714347103751245765575679986212757795547921492698:27:98 762342714347103751245765575679986212757795547921492699:27:99 762342714347103751245765575679986212757795547921492700:27:99 0:28:0 1:28:1 2:28:1 268435455:28:1 268435456:28:2 268435457:28:2 22876792454960:28:2 22876792454961:28:3 22876792454962:28:3 72057594037927935:28:3 72057594037927936:28:4 72057594037927937:28:4 37252902984619140624:28:4 37252902984619140625:28:5 37252902984619140626:28:5 6140942214464815497215:28:5 6140942214464815497216:28:6 6140942214464815497217:28:6 459986536544739960976800:28:6 459986536544739960976801:28:7 459986536544739960976802:28:7 19342813113834066795298815:28:7 19342813113834066795298816:28:8 19342813113834066795298817:28:8 523347633027360537213511520:28:8 523347633027360537213511521:28:9 523347633027360537213511522:28:9 144209936106499234037676064080:28:10 144209936106499234037676064081:28:11 144209936106499234037676064082:28:11 1648446623609512543951043690495:28:11 1648446623609512543951043690496:28:12 1648446623609512543951043690497:28:12 15502932802662396215269535105520:28:12 15502932802662396215269535105521:28:13 15502932802662396215269535105522:28:13 123476695691247935826229781856255:28:13 123476695691247935826229781856256:28:14 123476695691247935826229781856257:28:14 852226929923929274082183837890624:28:14 852226929923929274082183837890625:28:15 852226929923929274082183837890626:28:15 5192296858534827628530496329220095:28:15 5192296858534827628530496329220096:28:16 5192296858534827628530496329220097:28:16 28351092476867700887730107366063040:28:16 28351092476867700887730107366063041:28:17 28351092476867700887730107366063042:28:17 140485060518220186283313934500888575:28:17 140485060518220186283313934500888576:28:18 140485060518220186283313934500888577:28:18 638411683925748518131605316913942640:28:18 638411683925748518131605316913942641:28:19 638411683925748518131605316913942642:28:19 2684354559999999999999999999999999999:28:19 2684354560000000000000000000000000000:28:20 2684354560000000000000000000000000001:28:20 10523016528610349434285830688358359760:28:20 10523016528610349434285830688358359761:28:21 10523016528610349434285830688358359762:28:21 38711059958478986452554295441868455935:28:21 38711059958478986452554295441868455936:28:22 38711059958478986452554295441868455937:28:22 134393854047545109686936775588697536480:28:22 134393854047545109686936775588697536481:28:23 134393854047545109686936775588697536482:28:23 442501521100279865673218454734216626175:28:23 442501521100279865673218454734216626176:28:24 442501521100279865673218454734216626177:28:24 1387778780781445675529539585113525390624:28:24 1387778780781445675529539585113525390625:28:25 1387778780781445675529539585113525390626:28:25 4161536836220038342098551818958537752575:28:25 4161536836220038342098551818958537752576:28:26 4161536836220038342098551818958537752577:28:26 11972515182562019788602740026717047105680:28:26 11972515182562019788602740026717047105681:28:27 11972515182562019788602740026717047105682:28:27 33145523113253374862572728253364605812735:28:27 33145523113253374862572728253364605812736:28:28 33145523113253374862572728253364605812737:28:28 88540901833145211536614766025207452637360:28:28 88540901833145211536614766025207452637361:28:29 88540901833145211536614766025207452637362:28:29 228767924549609999999999999999999999999999:28:29 228767924549610000000000000000000000000000:28:30 228767924549610000000000000000000000000001:28:30 572964121067545096123347421337293637543040:28:30 572964121067545096123347421337293637543041:28:31 572964121067545096123347421337293637543042:28:31 1393796574908163946345982392040522594123775:28:31 1393796574908163946345982392040522594123776:28:32 1393796574908163946345982392040522594123777:28:32 3299060778251569566188233498374847942355840:28:32 3299060778251569566188233498374847942355841:28:33 3299060778251569566188233498374847942355842:28:33 7610438437126150739469436175738091335581695:28:33 7610438437126150739469436175738091335581696:28:34 7610438437126150739469436175738091335581697:28:34 17135833820132164693504609167575836181640624:28:34 17135833820132164693504609167575836181640625:28:35 17135833820132164693504609167575836181640626:28:35 37711171281396032013366321198900157303750655:28:35 37711171281396032013366321198900157303750656:28:36 37711171281396032013366321198900157303750657:28:36 81217248802771228597652036390959994837496720:28:36 81217248802771228597652036390959994837496721:28:37 81217248802771228597652036390959994837496722:28:37 171372331490336173605981741257818705594679295:28:37 171372331490336173605981741257818705594679296:28:38 171372331490336173605981741257818705594679297:28:38 354657376169714495270394823040944929774939680:28:38 354657376169714495270394823040944929774939681:28:39 354657376169714495270394823040944929774939682:28:39 720575940379279359999999999999999999999999999:28:39 720575940379279360000000000000000000000000000:28:40 720575940379279360000000000000000000000000001:28:40 1438626275603521989270100382252682485138269920:28:40 1438626275603521989270100382252682485138269921:28:41 1438626275603521989270100382252682485138269922:28:41 2824750740353056196711858995168270193856086015:28:41 2824750740353056196711858995168270193856086016:28:42 2824750740353056196711858995168270193856086017:28:42 5459046029871041534743397034507955551606171600:28:42 5459046029871041534743397034507955551606171601:28:43 5459046029871041534743397034507955551606171602:28:43 10391421032197647794809234661696680461196066815:28:43 10391421032197647794809234661696680461196066816:28:44 10391421032197647794809234661696680461196066817:28:44 19496218600398322091009897030889987945556640624:28:44 19496218600398322091009897030889987945556640625:28:45 19496218600398322091009897030889987945556640626:28:45 36076075494850217199382890598321691651353870335:28:45 36076075494850217199382890598321691651353870336:28:46 36076075494850217199382890598321691651353870337:28:46 65877941798660252683780571409941608871644628160:28:46 65877941798660252683780571409941608871644628161:28:47 65877941798660252683780571409941608871644628162:28:47 118783097597247247469609142884194798850336096255:28:47 118783097597247247469609142884194798850336096256:28:48 118783097597247247469609142884194798850336096257:28:48 211587613802425391637729361787678676290060193600:28:48 211587613802425391637729361787678676290060193601:28:49 211587613802425391637729361787678676290060193602:28:49 372529029846191406249999999999999999999999999999:28:49 372529029846191406250000000000000000000000000000:28:50 372529029846191406250000000000000000000000000001:28:50 648582058464708589095023081933669425215879196400:28:50 648582058464708589095023081933669425215879196401:28:51 648582058464708589095023081933669425215879196402:28:51 1117104038291523308698708754461764526705953734655:28:51 1117104038291523308698708754461764526705953734656:28:52 1117104038291523308698708754461764526705953734657:28:52 1904251686165483303166544735375573842653419591760:28:52 1904251686165483303166544735375573842653419591761:28:53 1904251686165483303166544735375573842653419591762:28:53 3213847572497959030234600121921242722786959425535:28:53 3213847572497959030234600121921242722786959425536:28:54 3213847572497959030234600121921242722786959425537:28:54 5372238759193540887448045018352568149566650390624:28:54 5372238759193540887448045018352568149566650390625:28:55 5372238759193540887448045018352568149566650390626:28:55 8897433611264709324773647641856011495602038767615:28:55 8897433611264709324773647641856011495602038767616:28:56 8897433611264709324773647641856011495602038767617:28:56 14604811593991510424147435018807634286571929892000:28:56 14604811593991510424147435018807634286571929892001:28:57 14604811593991510424147435018807634286571929892002:28:57 23767517358231570773047645414309870043308402671615:28:57 23767517358231570773047645414309870043308402671616:28:58 23767517358231570773047645414309870043308402671617:28:58 38358032782038398419973086399760468678777161743120:28:58 38358032782038398419973086399760468678777161743121:28:59 38358032782038398419973086399760468678777161743122:28:59 61409422144648154972159999999999999999999999999999:28:59 61409422144648154972160000000000000000000000000000:28:60 61409422144648154972160000000000000000000000000001:28:60 97551820892064552722266841889541788960852432978480:28:60 97551820892064552722266841889541788960852432978481:28:61 97551820892064552722266841889541788960852432978482:28:61 153803885110405674678434597293100547399764930461695:28:61 153803885110405674678434597293100547399764930461696:28:62 153803885110405674678434597293100547399764930461697:28:62 240732865125143135928567806176906833519774427224320:28:62 240732865125143135928567806176906833519774427224321:28:63 240732865125143135928567806176906833519774427224322:28:63 374144419156711147060143317175368453031918731001855:28:63 374144419156711147060143317175368453031918731001856:28:64 374144419156711147060143317175368453031918731001857:28:64 577529251674651958617178168353475630283355712890624:28:64 577529251674651958617178168353475630283355712890625:28:65 577529251674651958617178168353475630283355712890626:28:65 885584884381674959215460640970727566336951893098495:28:65 885584884381674959215460640970727566336951893098496:28:66 885584884381674959215460640970727566336951893098497:28:66 1349256365417755877454657051946796697206085388680240:28:66 1349256365417755877454657051946796697206085388680241:28:67 1349256365417755877454657051946796697206085388680242:28:67 2042911512229885603274215297897150684236521591013375:28:67 2042911512229885603274215297897150684236521591013376:28:68 2042911512229885603274215297897150684236521591013377:28:68 3074500306268009816250408380571753451597668846932240:28:68 3074500306268009816250408380571753451597668846932241:28:69 3074500306268009816250408380571753451597668846932242:28:69 4599865365447399609768009999999999999999999999999999:28:69 4599865365447399609768010000000000000000000000000000:28:70 4599865365447399609768010000000000000000000000000001:28:70 6842798698940938981814244812733146152009703886272160:28:70 6842798698940938981814244812733146152009703886272161:28:71 6842798698940938981814244812733146152009703886272162:28:71 10123015459215648170098586526069230424304037853659135:28:71 10123015459215648170098586526069230424304037853659136:28:72 10123015459215648170098586526069230424304037853659137:28:72 14894985451961941943846586557477384171894488107677280:28:72 14894985451961941943846586557477384171894488107677281:28:73 14894985451961941943846586557477384171894488107677282:28:73 21801589217437348812290964917935940491961078200139775:28:73 21801589217437348812290964917935940491961078200139776:28:74 21801589217437348812290964917935940491961078200139777:28:74 31747927141335952061496072929003275930881500244140624:28:74 31747927141335952061496072929003275930881500244140625:28:75 31747927141335952061496072929003275930881500244140626:28:75 46002409949391550355216873042216577801637487995518975:28:75 46002409949391550355216873042216577801637487995518976:28:76 46002409949391550355216873042216577801637487995518977:28:76 66334629044966824718765264495212069363677393830384880:28:76 66334629044966824718765264495212069363677393830384881:28:77 66334629044966824718765264495212069363677393830384882:28:77 95202614495880843927718277623035358895023910641729535:28:77 95202614495880843927718277623035358895023910641729536:28:78 95202614495880843927718277623035358895023910641729537:28:78 136006152866792691625201101984747368303641150837104960:28:78 136006152866792691625201101984747368303641150837104961:28:79 136006152866792691625201101984747368303641150837104962:28:79 193428131138340667952988159999999999999999999999999999:28:79 193428131138340667952988160000000000000000000000000000:28:80 193428131138340667952988160000000000000000000000000001:28:80 273892744995340833777347939263771534786080723599733440:28:80 273892744995340833777347939263771534786080723599733441:28:81 273892744995340833777347939263771534786080723599733442:28:81 386178300305213100395746503275773130121304709294718975:28:81 386178300305213100395746503275773130121304709294718976:28:82 386178300305213100395746503275773130121304709294718977:28:82 542233801012015735135407853098133122208235840693558640:28:82 542233801012015735135407853098133122208235840693558641:28:83 542233801012015735135407853098133122208235840693558642:28:83 758263253073010241157973569975696406218966848080183295:28:83 758263253073010241157973569975696406218966848080183296:28:84 758263253073010241157973569975696406218966848080183297:28:84 1056160497548718038489301032053792513906955718994140624:28:84 1056160497548718038489301032053792513906955718994140625:28:85 1056160497548718038489301032053792513906955718994140626:28:85 1465401510353422655573783625947190784123134206128685055:28:85 1465401510353422655573783625947190784123134206128685056:28:86 1465401510353422655573783625947190784123134206128685057:28:86 2025531835011938949028714972397128216429166885258397920:28:86 2025531835011938949028714972397128216429166885258397921:28:87 2025531835011938949028714972397128216429166885258397922:28:87 2789425843265966267927011339423554153287456501159428095:28:87 2789425843265966267927011339423554153287456501159428096:28:88 2789425843265966267927011339423554153287456501159428097:28:88 3827543948647425430322045212330289877339037312647605280:28:88 3827543948647425430322045212330289877339037312647605281:28:89 3827543948647425430322045212330289877339037312647605282:28:89 5233476330273605372135115209999999999999999999999999999:28:89 5233476330273605372135115210000000000000000000000000000:28:90 5233476330273605372135115210000000000000000000000000001:28:90 7131140366182514222469625631902508493327602479768018320:28:90 7131140366182514222469625631902508493327602479768018321:28:91 7131140366182514222469625631902508493327602479768018322:28:91 9684097776150543705615389156358596133122569201009033215:28:91 9684097776150543705615389156358596133122569201009033216:28:92 9684097776150543705615389156358596133122569201009033217:28:92 13107581281801376599645209779043894548031990634691476400:28:92 13107581281801376599645209779043894548031990634691476401:28:93 13107581281801376599645209779043894548031990634691476402:28:93 17683975347064825118245861490368238710833571230348476415:28:93 17683975347064825118245861490368238710833571230348476416:28:94 17683975347064825118245861490368238710833571230348476417:28:94 23782688525533248414531548206282505430281162261962890624:28:94 23782688525533248414531548206282505430281162261962890625:28:95 23782688525533248414531548206282505430281162261962890626:28:95 31885594968609569219249376411887986022218245751739252735:28:95 31885594968609569219249376411887986022218245751739252736:28:96 31885594968609569219249376411887986022218245751739252737:28:96 42619520516862344959898006540158454742326868747150111360:28:96 42619520516862344959898006540158454742326868747150111361:28:97 42619520516862344959898006540158454742326868747150111362:28:97 56797617595005953910252468036064500651398696336732717055:28:97 56797617595005953910252468036064500651398696336732717056:28:98 56797617595005953910252468036064500651398696336732717057:28:98 75471928720363271373330791992318635063021759244227777200:28:98 75471928720363271373330791992318635063021759244227777201:28:99 75471928720363271373330791992318635063021759244227777202:28:99 0:29:0 1:29:1 2:29:1 536870911:29:1 536870912:29:2 536870913:29:2 68630377364882:29:2 68630377364883:29:3 68630377364884:29:3 288230376151711743:29:3 288230376151711744:29:4 288230376151711745:29:4 186264514923095703124:29:4 186264514923095703125:29:5 186264514923095703126:29:5 36845653286788892983295:29:5 36845653286788892983296:29:6 36845653286788892983297:29:6 3219905755813179726837606:29:6 3219905755813179726837607:29:7 3219905755813179726837608:29:7 154742504910672534362390527:29:7 154742504910672534362390528:29:8 154742504910672534362390529:29:8 4710128697246244834921603688:29:8 4710128697246244834921603689:29:9 4710128697246244834921603690:29:9 1586309297171491574414436704890:29:10 1586309297171491574414436704891:29:11 1586309297171491574414436704892:29:11 19781359483314150527412524285951:29:11 19781359483314150527412524285952:29:12 19781359483314150527412524285953:29:12 201538126434611150798503956371772:29:12 201538126434611150798503956371773:29:13 201538126434611150798503956371774:29:13 1728673739677471101567216945987583:29:13 1728673739677471101567216945987584:29:14 1728673739677471101567216945987585:29:14 12783403948858939111232757568359374:29:14 12783403948858939111232757568359375:29:15 12783403948858939111232757568359376:29:15 83076749736557242056487941267521535:29:15 83076749736557242056487941267521536:29:16 83076749736557242056487941267521537:29:16 481968572106750915091411825223071696:29:16 481968572106750915091411825223071697:29:17 481968572106750915091411825223071698:29:17 2528731089327963353099650821015994367:29:17 2528731089327963353099650821015994368:29:18 2528731089327963353099650821015994369:29:18 12129821994589221844500501021364910178:29:18 12129821994589221844500501021364910179:29:19 12129821994589221844500501021364910180:29:19 53687091199999999999999999999999999999:29:19 53687091200000000000000000000000000000:29:20 53687091200000000000000000000000000001:29:20 220983347100817338120002444455525554980:29:20 220983347100817338120002444455525554981:29:21 220983347100817338120002444455525554982:29:21 851643319086537701956194499721106030591:29:21 851643319086537701956194499721106030592:29:22 851643319086537701956194499721106030593:29:22 3091058643093537522799545838540043339062:29:22 3091058643093537522799545838540043339063:29:23 3091058643093537522799545838540043339064:29:23 10620036506406716776157242913621199028223:29:23 10620036506406716776157242913621199028224:29:24 10620036506406716776157242913621199028225:29:24 34694469519536141888238489627838134765624:29:24 34694469519536141888238489627838134765625:29:25 34694469519536141888238489627838134765626:29:25 108199957741720996894562347292921981566975:29:25 108199957741720996894562347292921981566976:29:26 108199957741720996894562347292921981566977:29:26 323257909929174534292273980721360271853386:29:26 323257909929174534292273980721360271853387:29:27 323257909929174534292273980721360271853388:29:27 928074647171094496152036391094208962756607:29:27 928074647171094496152036391094208962756608:29:28 928074647171094496152036391094208962756609:29:28 2567686153161211134561828214731016126483468:29:28 2567686153161211134561828214731016126483469:29:29 2567686153161211134561828214731016126483470:29:29 6863037736488299999999999999999999999999999:29:29 6863037736488300000000000000000000000000000:29:30 6863037736488300000000000000000000000000001:29:30 17761887753093897979823770061456102763834270:29:30 17761887753093897979823770061456102763834271:29:31 17761887753093897979823770061456102763834272:29:31 44601490397061246283071436545296723011960831:29:31 44601490397061246283071436545296723011960832:29:32 44601490397061246283071436545296723011960833:29:32 108869005682301795684211705446369982097742752:29:32 108869005682301795684211705446369982097742753:29:33 108869005682301795684211705446369982097742754:29:33 258754906862289125141960829975095105409777663:29:33 258754906862289125141960829975095105409777664:29:34 258754906862289125141960829975095105409777665:29:34 599754183704625764272661320865154266357421874:29:34 599754183704625764272661320865154266357421875:29:35 599754183704625764272661320865154266357421876:29:35 1357602166130257152481187563160405662935023615:29:35 1357602166130257152481187563160405662935023616:29:36 1357602166130257152481187563160405662935023617:29:36 3005038205702535458113125346465519808987378676:29:36 3005038205702535458113125346465519808987378677:29:37 3005038205702535458113125346465519808987378678:29:37 6512148596632774597027306167797110812597813247:29:37 6512148596632774597027306167797110812597813248:29:38 6512148596632774597027306167797110812597813249:29:38 13831637670618865315545398098596852261222647558:29:38 13831637670618865315545398098596852261222647559:29:39 13831637670618865315545398098596852261222647560:29:39 28823037615171174399999999999999999999999999999:29:39 28823037615171174400000000000000000000000000000:29:40 28823037615171174400000000000000000000000000001:29:40 58983677299744401560074115672359981890669066760:29:40 58983677299744401560074115672359981890669066761:29:41 58983677299744401560074115672359981890669066762:29:41 118639531094828360261898077797067348141955612671:29:41 118639531094828360261898077797067348141955612672:29:42 118639531094828360261898077797067348141955612673:29:42 234738979284454785993966072483842088719065378842:29:42 234738979284454785993966072483842088719065378843:29:43 234738979284454785993966072483842088719065378844:29:43 457222525416696502971606325114653940292626939903:29:43 457222525416696502971606325114653940292626939904:29:44 457222525416696502971606325114653940292626939905:29:44 877329837017924494095445366390049457550048828124:29:44 877329837017924494095445366390049457550048828125:29:45 877329837017924494095445366390049457550048828126:29:45 1659499472763109991171612967522797815962278035455:29:45 1659499472763109991171612967522797815962278035456:29:46 1659499472763109991171612967522797815962278035457:29:46 3096263264537031876137686856267255616967297523566:29:46 3096263264537031876137686856267255616967297523567:29:47 3096263264537031876137686856267255616967297523568:29:47 5701588684667867878541238858441350344816132620287:29:47 5701588684667867878541238858441350344816132620288:29:48 5701588684667867878541238858441350344816132620289:29:48 10367793076318844190248738727596255138212949486448:29:48 10367793076318844190248738727596255138212949486449:29:49 10367793076318844190248738727596255138212949486450:29:49 18626451492309570312499999999999999999999999999999:29:49 18626451492309570312500000000000000000000000000000:29:50 18626451492309570312500000000000000000000000000001:29:50 33077684981700138043846177178617140686009839016450:29:50 33077684981700138043846177178617140686009839016451:29:51 33077684981700138043846177178617140686009839016452:29:51 58089409991159212052332855232011755388709594202111:29:51 58089409991159212052332855232011755388709594202112:29:52 58089409991159212052332855232011755388709594202113:29:52 100925339366770615067826870974905413660631238363332:29:52 100925339366770615067826870974905413660631238363333:29:53 100925339366770615067826870974905413660631238363334:29:53 173547768914889787632668406583747107030495808978943:29:53 173547768914889787632668406583747107030495808978944:29:54 173547768914889787632668406583747107030495808978945:29:54 295473131755644748809642476009391248226165771484374:29:54 295473131755644748809642476009391248226165771484375:29:55 295473131755644748809642476009391248226165771484376:29:55 498256282230823722187324267943936643753714170986495:29:55 498256282230823722187324267943936643753714170986496:29:56 498256282230823722187324267943936643753714170986497:29:56 832474260857516094176403796072035154334600003844056:29:56 832474260857516094176403796072035154334600003844057:29:57 832474260857516094176403796072035154334600003844058:29:57 1378516006777431104836763434029972462511887354953727:29:57 1378516006777431104836763434029972462511887354953728:29:58 1378516006777431104836763434029972462511887354953729:29:58 2263123934140265506778412097585867652047852542844138:29:58 2263123934140265506778412097585867652047852542844139:29:59 2263123934140265506778412097585867652047852542844140:29:59 3684565328678889298329599999999999999999999999999999:29:59 3684565328678889298329600000000000000000000000000000:29:60 3684565328678889298329600000000000000000000000000001:29:60 5950661074415937716058277355262049126611998411687340:29:60 5950661074415937716058277355262049126611998411687341:29:61 5950661074415937716058277355262049126611998411687342:29:61 9535840876845151830062945032172233938785425688625151:29:61 9535840876845151830062945032172233938785425688625152:29:62 9535840876845151830062945032172233938785425688625153:29:62 15166170502884017563499771789145130511745788915132222:29:62 15166170502884017563499771789145130511745788915132223:29:63 15166170502884017563499771789145130511745788915132224:29:63 23945242826029513411849172299223580994042798784118783:29:63 23945242826029513411849172299223580994042798784118784:29:64 23945242826029513411849172299223580994042798784118785:29:64 37539401358852377310116580942975915968418121337890624:29:64 37539401358852377310116580942975915968418121337890625:29:65 37539401358852377310116580942975915968418121337890626:29:65 58448602369190547308220402304068019378238824944500735:29:65 58448602369190547308220402304068019378238824944500736:29:66 58448602369190547308220402304068019378238824944500737:29:66 90400176482989643789462022480435378712807721041576146:29:66 90400176482989643789462022480435378712807721041576147:29:67 90400176482989643789462022480435378712807721041576148:29:67 138917982831632221022646640257006246528083468188909567:29:67 138917982831632221022646640257006246528083468188909568:29:68 138917982831632221022646640257006246528083468188909569:29:68 212140521132492677321278178259450988160239150438324628:29:68 212140521132492677321278178259450988160239150438324629:29:69 212140521132492677321278178259450988160239150438324630:29:69 321990575581317972683760699999999999999999999999999999:29:69 321990575581317972683760700000000000000000000000000000:29:70 321990575581317972683760700000000000000000000000000001:29:70 485838707624806667708811381704053376792688975925323430:29:70 485838707624806667708811381704053376792688975925323431:29:71 485838707624806667708811381704053376792688975925323432:29:71 728857113063526668247098229876984590549890725463457791:29:71 728857113063526668247098229876984590549890725463457792:29:72 728857113063526668247098229876984590549890725463457793:29:72 1087333937993221761900800818695849044548297631860441512:29:72 1087333937993221761900800818695849044548297631860441513:29:73 1087333937993221761900800818695849044548297631860441514:29:73 1613317602090363812109531403927259596405119786810343423:29:73 1613317602090363812109531403927259596405119786810343424:29:74 1613317602090363812109531403927259596405119786810343425:29:74 2381094535600196404612205469675245694816112518310546874:29:74 2381094535600196404612205469675245694816112518310546875:29:75 2381094535600196404612205469675245694816112518310546876:29:75 3496183156153757826996482351208459912924449087659442175:29:75 3496183156153757826996482351208459912924449087659442176:29:76 3496183156153757826996482351208459912924449087659442177:29:76 5107766436462445503344925366131329341003159324939635836:29:76 5107766436462445503344925366131329341003159324939635837:29:77 5107766436462445503344925366131329341003159324939635838:29:77 7425803930678705826362025654596757993811865030054903807:29:77 7425803930678705826362025654596757993811865030054903808:29:78 7425803930678705826362025654596757993811865030054903809:29:78 10744486076476622638390887056795042095987650916131291918:29:78 10744486076476622638390887056795042095987650916131291919:29:79 10744486076476622638390887056795042095987650916131291920:29:79 15474250491067253436239052799999999999999999999999999999:29:79 15474250491067253436239052800000000000000000000000000000:29:80 15474250491067253436239052800000000000000000000000000001:29:80 22185312344622607535965183080365494317672538611578408720:29:80 22185312344622607535965183080365494317672538611578408721:29:81 22185312344622607535965183080365494317672538611578408722:29:81 31666620625027474232451213268613396669946986162166956031:29:81 31666620625027474232451213268613396669946986162166956032:29:82 31666620625027474232451213268613396669946986162166956033:29:82 45005405483997306016238851807145049143283574777565367202:29:82 45005405483997306016238851807145049143283574777565367203:29:83 45005405483997306016238851807145049143283574777565367204:29:83 63694113258132860257269779877958498122393215238735396863:29:83 63694113258132860257269779877958498122393215238735396864:29:84 63694113258132860257269779877958498122393215238735396865:29:84 89773642291641033271590587724572363682091236114501953124:29:84 89773642291641033271590587724572363682091236114501953125:29:85 89773642291641033271590587724572363682091236114501953126:29:85 126024529890394348379345391831458407434589541727066914815:29:85 126024529890394348379345391831458407434589541727066914816:29:86 126024529890394348379345391831458407434589541727066914817:29:86 176221269646038688565498202598550154829337519017480619126:29:86 176221269646038688565498202598550154829337519017480619127:29:87 176221269646038688565498202598550154829337519017480619128:29:87 245469474207405031577576997869272765489296172102029672447:29:87 245469474207405031577576997869272765489296172102029672448:29:88 245469474207405031577576997869272765489296172102029672449:29:88 340651411429620863298662023897395799083174320825636870008:29:88 340651411429620863298662023897395799083174320825636870009:29:89 340651411429620863298662023897395799083174320825636870010:29:89 471012869724624483492160368899999999999999999999999999999:29:89 471012869724624483492160368900000000000000000000000000000:29:90 471012869724624483492160368900000000000000000000000000001:29:90 648933773322608794244735932503128272892811825658889667210:29:90 648933773322608794244735932503128272892811825658889667211:29:91 648933773322608794244735932503128272892811825658889667212:29:91 890936995405850020916615802384990844247276366492831055871:29:91 890936995405850020916615802384990844247276366492831055872:29:92 890936995405850020916615802384990844247276366492831055873:29:92 1219005059207528023767004509451082192966975129026307305292:29:92 1219005059207528023767004509451082192966975129026307305293:29:93 1219005059207528023767004509451082192966975129026307305294:29:93 1662293682624093561115110980094614438818355695652756783103:29:93 1662293682624093561115110980094614438818355695652756783104:29:94 1662293682624093561115110980094614438818355695652756783105:29:94 2259355409925658599380497079596838015876710414886474609374:29:94 2259355409925658599380497079596838015876710414886474609375:29:95 2259355409925658599380497079596838015876710414886474609376:29:95 3061017116986518645047940135541246658132951592166968262655:29:95 3061017116986518645047940135541246658132951592166968262656:29:96 3061017116986518645047940135541246658132951592166968262657:29:96 4134093490135647461110106634395370110005706268473560802016:29:96 4134093490135647461110106634395370110005706268473560802017:29:97 4134093490135647461110106634395370110005706268473560802018:29:97 5566166524310583483204741867534321063837072240999806271487:29:97 5566166524310583483204741867534321063837072240999806271488:29:98 5566166524310583483204741867534321063837072240999806271489:29:98 7471720943315963865959748407239544871239154165178549942898:29:98 7471720943315963865959748407239544871239154165178549942899:29:99 7471720943315963865959748407239544871239154165178549942900:29:99 0:30:0 1:30:1 2:30:1 1073741823:30:1 1073741824:30:2 1073741825:30:2 205891132094648:30:2 205891132094649:30:3 205891132094650:30:3 1152921504606846975:30:3 1152921504606846976:30:4 1152921504606846977:30:4 931322574615478515624:30:4 931322574615478515625:30:5 931322574615478515626:30:5 221073919720733357899775:30:5 221073919720733357899776:30:6 221073919720733357899777:30:6 22539340290692258087863248:30:6 22539340290692258087863249:30:7 22539340290692258087863250:30:7 1237940039285380274899124223:30:7 1237940039285380274899124224:30:8 1237940039285380274899124225:30:8 42391158275216203514294433200:30:8 42391158275216203514294433201:30:9 42391158275216203514294433202:30:9 17449402268886407318558803753800:30:10 17449402268886407318558803753801:30:11 17449402268886407318558803753802:30:11 237376313799769806328950291431423:30:11 237376313799769806328950291431424:30:12 237376313799769806328950291431425:30:12 2619995643649944960380551432833048:30:12 2619995643649944960380551432833049:30:13 2619995643649944960380551432833050:30:13 24201432355484595421941037243826175:30:13 24201432355484595421941037243826176:30:14 24201432355484595421941037243826177:30:14 191751059232884086668491363525390624:30:14 191751059232884086668491363525390625:30:15 191751059232884086668491363525390626:30:15 1329227995784915872903807060280344575:30:15 1329227995784915872903807060280344576:30:16 1329227995784915872903807060280344577:30:16 8193465725814765556554001028792218848:30:16 8193465725814765556554001028792218849:30:17 8193465725814765556554001028792218850:30:17 45517159607903340355793714778287898623:30:17 45517159607903340355793714778287898624:30:18 45517159607903340355793714778287898625:30:18 230466617897195215045509519405933293400:30:18 230466617897195215045509519405933293401:30:19 230466617897195215045509519405933293402:30:19 1073741823999999999999999999999999999999:30:19 1073741824000000000000000000000000000000:30:20 1073741824000000000000000000000000000001:30:20 4640650289117164100520051333566036654600:30:20 4640650289117164100520051333566036654601:30:21 4640650289117164100520051333566036654602:30:21 18736153019903829443036278993864332673023:30:21 18736153019903829443036278993864332673024:30:22 18736153019903829443036278993864332673025:30:22 71094348791151363024389554286420996798448:30:22 71094348791151363024389554286420996798449:30:23 71094348791151363024389554286420996798450:30:23 254880876153761202627773829926908776677375:30:23 254880876153761202627773829926908776677376:30:24 254880876153761202627773829926908776677377:30:24 867361737988403547205962240695953369140624:30:24 867361737988403547205962240695953369140625:30:25 867361737988403547205962240695953369140626:30:25 2813198901284745919258621029615971520741375:30:25 2813198901284745919258621029615971520741376:30:26 2813198901284745919258621029615971520741377:30:26 8727963568087712425891397479476727340041448:30:26 8727963568087712425891397479476727340041449:30:27 8727963568087712425891397479476727340041450:30:27 25986090120790645892257018950637850957185023:30:27 25986090120790645892257018950637850957185024:30:28 25986090120790645892257018950637850957185025:30:28 74462898441675122902293018227199467668020600:30:28 74462898441675122902293018227199467668020601:30:29 74462898441675122902293018227199467668020602:30:29 205891132094648999999999999999999999999999999:30:29 205891132094649000000000000000000000000000000:30:30 205891132094649000000000000000000000000000001:30:30 550618520345910837374536871905139185678862400:30:30 550618520345910837374536871905139185678862401:30:31 550618520345910837374536871905139185678862402:30:31 1427247692705959881058285969449495136382746623:30:31 1427247692705959881058285969449495136382746624:30:32 1427247692705959881058285969449495136382746625:30:32 3592677187515959257578986279730209409225510848:30:32 3592677187515959257578986279730209409225510849:30:33 3592677187515959257578986279730209409225510850:30:33 8797666833317830254826668219153233583932440575:30:33 8797666833317830254826668219153233583932440576:30:34 8797666833317830254826668219153233583932440577:30:34 20991396429661901749543146230280399322509765624:30:34 20991396429661901749543146230280399322509765625:30:35 20991396429661901749543146230280399322509765626:30:35 48873677980689257489322752273774603865660850175:30:35 48873677980689257489322752273774603865660850176:30:36 48873677980689257489322752273774603865660850177:30:36 111186413610993811950185637819224232932533011048:30:36 111186413610993811950185637819224232932533011049:30:37 111186413610993811950185637819224232932533011050:30:37 247461646672045434687037634376290210878716903423:30:37 247461646672045434687037634376290210878716903424:30:38 247461646672045434687037634376290210878716903425:30:38 539433869154135747306270525845277238187683254800:30:38 539433869154135747306270525845277238187683254801:30:39 539433869154135747306270525845277238187683254802:30:39 1152921504606846975999999999999999999999999999999:30:39 1152921504606846976000000000000000000000000000000:30:40 1152921504606846976000000000000000000000000000001:30:40 2418330769289520463963038742566759257517431737200:30:40 2418330769289520463963038742566759257517431737201:30:41 2418330769289520463963038742566759257517431737202:30:41 4982860305982791130999719267476828621962135732223:30:41 4982860305982791130999719267476828621962135732224:30:42 4982860305982791130999719267476828621962135732225:30:42 10093776109231555797740541116805209814919811290248:30:42 10093776109231555797740541116805209814919811290249:30:43 10093776109231555797740541116805209814919811290250:30:43 20117791118334646130750678305044773372875585355775:30:43 20117791118334646130750678305044773372875585355776:30:44 20117791118334646130750678305044773372875585355777:30:44 39479842665806602234295041487552225589752197265624:30:44 39479842665806602234295041487552225589752197265625:30:45 39479842665806602234295041487552225589752197265626:30:45 76336975747103059593894196506048699534264789630975:30:45 76336975747103059593894196506048699534264789630976:30:46 76336975747103059593894196506048699534264789630977:30:46 145524373433240498178471282244561013997462983607648:30:46 145524373433240498178471282244561013997462983607649:30:47 145524373433240498178471282244561013997462983607650:30:47 273676256864057658169979465205184816551174365773823:30:47 273676256864057658169979465205184816551174365773824:30:48 273676256864057658169979465205184816551174365773825:30:48 508021860739623365322188197652216501772434524836000:30:48 508021860739623365322188197652216501772434524836001:30:49 508021860739623365322188197652216501772434524836002:30:49 931322574615478515624999999999999999999999999999999:30:49 931322574615478515625000000000000000000000000000000:30:50 931322574615478515625000000000000000000000000000001:30:50 1686961934066707040236155036109474174986501789839000:30:50 1686961934066707040236155036109474174986501789839001:30:51 1686961934066707040236155036109474174986501789839002:30:51 3020649319540279026721308472064611280212898898509823:30:51 3020649319540279026721308472064611280212898898509824:30:52 3020649319540279026721308472064611280212898898509825:30:52 5349042986438842598594824161669986924013455633256648:30:52 5349042986438842598594824161669986924013455633256649:30:53 5349042986438842598594824161669986924013455633256650:30:53 9371579521404048532164093955522343779646773684862975:30:53 9371579521404048532164093955522343779646773684862976:30:54 9371579521404048532164093955522343779646773684862977:30:54 16251022246560461184530336180516518652439117431640624:30:54 16251022246560461184530336180516518652439117431640625:30:55 16251022246560461184530336180516518652439117431640626:30:55 27902351804926128442490159004860452050207993575243775:30:55 27902351804926128442490159004860452050207993575243776:30:56 27902351804926128442490159004860452050207993575243777:30:56 47451032868878417368055016376106003797072200219111248:30:56 47451032868878417368055016376106003797072200219111249:30:57 47451032868878417368055016376106003797072200219111250:30:57 79953928393091004080532279173738402825689466587316223:30:57 79953928393091004080532279173738402825689466587316224:30:58 79953928393091004080532279173738402825689466587316225:30:58 133524312114275664899926313757566191470823300027804200:30:58 133524312114275664899926313757566191470823300027804201:30:59 133524312114275664899926313757566191470823300027804202:30:59 221073919720733357899775999999999999999999999999999999:30:59 221073919720733357899776000000000000000000000000000000:30:60 221073919720733357899776000000000000000000000000000001:30:60 362990325539372200679554918670984996723331903112927800:30:60 362990325539372200679554918670984996723331903112927801:30:61 362990325539372200679554918670984996723331903112927802:30:61 591222134364399413463902591994678504204696392694759423:30:61 591222134364399413463902591994678504204696392694759424:30:62 591222134364399413463902591994678504204696392694759425:30:62 955468741681693106500485622716143222239984701653330048:30:62 955468741681693106500485622716143222239984701653330049:30:63 955468741681693106500485622716143222239984701653330050:30:63 1532495540865888858358347027150309183618739122183602175:30:63 1532495540865888858358347027150309183618739122183602176:30:64 1532495540865888858358347027150309183618739122183602177:30:64 2440061088325404525157577761293434537947177886962890624:30:64 2440061088325404525157577761293434537947177886962890625:30:65 2440061088325404525157577761293434537947177886962890626:30:65 3857607756366576122342546552068489278963762446337048575:30:65 3857607756366576122342546552068489278963762446337048576:30:66 3857607756366576122342546552068489278963762446337048577:30:66 6056811824360306133893955506189170373758117309785601848:30:66 6056811824360306133893955506189170373758117309785601849:30:67 6056811824360306133893955506189170373758117309785601850:30:67 9446422832550991029539971537476424763909675836845850623:30:67 9446422832550991029539971537476424763909675836845850624:30:68 9446422832550991029539971537476424763909675836845850625:30:68 14637695958141994735168194299902118183056501380244399400:30:68 14637695958141994735168194299902118183056501380244399401:30:69 14637695958141994735168194299902118183056501380244399402:30:69 22539340290692258087863248999999999999999999999999999999:30:69 22539340290692258087863249000000000000000000000000000000:30:70 22539340290692258087863249000000000000000000000000000001:30:70 34494548241361273407325608100987789752280917290697963600:30:70 34494548241361273407325608100987789752280917290697963601:30:71 34494548241361273407325608100987789752280917290697963602:30:71 52477712140573920113791072551142890519592132233368961023:30:71 52477712140573920113791072551142890519592132233368961024:30:72 52477712140573920113791072551142890519592132233368961025:30:72 79375377473505188618758459764796980252025727125812230448:30:72 79375377473505188618758459764796980252025727125812230449:30:73 79375377473505188618758459764796980252025727125812230450:30:73 119385502554686922096105323890617210133978864223965413375:30:73 119385502554686922096105323890617210133978864223965413376:30:74 119385502554686922096105323890617210133978864223965413377:30:74 178582090170014730345915410225643427111208438873291015624:30:74 178582090170014730345915410225643427111208438873291015625:30:75 178582090170014730345915410225643427111208438873291015626:30:75 265709919867685594851732658691842953382258130662117605375:30:75 265709919867685594851732658691842953382258130662117605376:30:76 265709919867685594851732658691842953382258130662117605377:30:76 393298015607608303757559253192112359257243268020351959448:30:76 393298015607608303757559253192112359257243268020351959449:30:77 393298015607608303757559253192112359257243268020351959450:30:77 579212706592939054456238001058547123517325472344282497023:30:77 579212706592939054456238001058547123517325472344282497024:30:78 579212706592939054456238001058547123517325472344282497025:30:78 848814400041653188432880077486808325583024422374372061600:30:78 848814400041653188432880077486808325583024422374372061601:30:79 848814400041653188432880077486808325583024422374372061602:30:79 1237940039285380274899124223999999999999999999999999999999:30:79 1237940039285380274899124224000000000000000000000000000000:30:80 1237940039285380274899124224000000000000000000000000000001:30:80 1797010299914431210413179829509605039731475627537851106400:30:80 1797010299914431210413179829509605039731475627537851106401:30:81 1797010299914431210413179829509605039731475627537851106402:30:81 2596662891252252887060999488026298526935652865297690394623:30:81 2596662891252252887060999488026298526935652865297690394624:30:82 2596662891252252887060999488026298526935652865297690394625:30:82 3735448655171776399347824699993039078892536706537925477848:30:82 3735448655171776399347824699993039078892536706537925477849:30:83 3735448655171776399347824699993039078892536706537925477850:30:83 5350305513683160261610661509748513842281030080053773336575:30:83 5350305513683160261610661509748513842281030080053773336576:30:84 5350305513683160261610661509748513842281030080053773336577:30:84 7630759594789487828085199956588650912977755069732666015624:30:84 7630759594789487828085199956588650912977755069732666015625:30:85 7630759594789487828085199956588650912977755069732666015626:30:85 10838109570573913960623703697505423039374700588527754674175:30:85 10838109570573913960623703697505423039374700588527754674176:30:86 10838109570573913960623703697505423039374700588527754674177:30:86 15331250459205365905198343626073863470152364154520813864048:30:86 15331250459205365905198343626073863470152364154520813864049:30:87 15331250459205365905198343626073863470152364154520813864050:30:87 21601313730251642778826775812496003363058063144978611175423:30:87 21601313730251642778826775812496003363058063144978611175424:30:88 21601313730251642778826775812496003363058063144978611175425:30:88 30317975617236256833580920126868226118402514553481681430800:30:88 30317975617236256833580920126868226118402514553481681430801:30:89 30317975617236256833580920126868226118402514553481681430802:30:89 42391158275216203514294433200999999999999999999999999999999:30:89 42391158275216203514294433201000000000000000000000000000000:30:90 42391158275216203514294433201000000000000000000000000000001:30:90 59052973372357400276270969857784672833245876134958959716200:30:90 59052973372357400276270969857784672833245876134958959716201:30:91 59052973372357400276270969857784672833245876134958959716202:30:91 81966203577338201924328653819419157670749425717340457140223:30:91 81966203577338201924328653819419157670749425717340457140224:30:92 81966203577338201924328653819419157670749425717340457140225:30:92 113367470506300106210331419378950643945928686999446579392248:30:92 113367470506300106210331419378950643945928686999446579392249:30:93 113367470506300106210331419378950643945928686999446579392250:30:93 156255606166664794744820432128893757248925435391359137611775:30:93 156255606166664794744820432128893757248925435391359137611776:30:94 156255606166664794744820432128893757248925435391359137611777:30:94 214638763942937566941147222561699611508287489414215087890624:30:94 214638763942937566941147222561699611508287489414215087890625:30:95 214638763942937566941147222561699611508287489414215087890626:30:95 293857643230705789924602253011959679180763352848028953214975:30:95 293857643230705789924602253011959679180763352848028953214976:30:96 293857643230705789924602253011959679180763352848028953214977:30:96 401007068543157803727680343536350900670553508041935397795648:30:96 401007068543157803727680343536350900670553508041935397795649:30:97 401007068543157803727680343536350900670553508041935397795650:30:97 545484319382437181354064703018363464256033079617981014605823:30:97 545484319382437181354064703018363464256033079617981014605824:30:98 545484319382437181354064703018363464256033079617981014605825:30:98 739700373388280422730015092316714942252676262352676444347000:30:98 739700373388280422730015092316714942252676262352676444347001:30:99 739700373388280422730015092316714942252676262352676444347002:30:99 0:31:0 1:31:1 2:31:1 2147483647:31:1 2147483648:31:2 2147483649:31:2 617673396283946:31:2 617673396283947:31:3 617673396283948:31:3 4611686018427387903:31:3 4611686018427387904:31:4 4611686018427387905:31:4 4656612873077392578124:31:4 4656612873077392578125:31:5 4656612873077392578126:31:5 1326443518324400147398655:31:5 1326443518324400147398656:31:6 1326443518324400147398657:31:6 157775382034845806615042742:31:6 157775382034845806615042743:31:7 157775382034845806615042744:31:7 9903520314283042199192993791:31:7 9903520314283042199192993792:31:8 9903520314283042199192993793:31:8 381520424476945831628649898808:31:8 381520424476945831628649898809:31:9 381520424476945831628649898810:31:9 191943424957750480504146841291810:31:10 191943424957750480504146841291811:31:11 191943424957750480504146841291812:31:11 2848515765597237675947403497177087:31:11 2848515765597237675947403497177088:31:12 2848515765597237675947403497177089:31:12 34059943367449284484947168626829636:31:12 34059943367449284484947168626829637:31:13 34059943367449284484947168626829638:31:13 338820052976784335907174521413566463:31:13 338820052976784335907174521413566464:31:14 338820052976784335907174521413566465:31:14 2876265888493261300027370452880859374:31:14 2876265888493261300027370452880859375:31:15 2876265888493261300027370452880859376:31:15 21267647932558653966460912964485513215:31:15 21267647932558653966460912964485513216:31:16 21267647932558653966460912964485513217:31:16 139288917338851014461418017489467720432:31:16 139288917338851014461418017489467720433:31:17 139288917338851014461418017489467720434:31:17 819308872942260126404286866009182175231:31:17 819308872942260126404286866009182175232:31:18 819308872942260126404286866009182175233:31:18 4378865740046709085864680868712732574618:31:18 4378865740046709085864680868712732574619:31:19 4378865740046709085864680868712732574620:31:19 21474836479999999999999999999999999999999:31:19 21474836480000000000000000000000000000000:31:20 21474836480000000000000000000000000000001:31:20 97453656071460446110921078004886769746620:31:20 97453656071460446110921078004886769746621:31:21 97453656071460446110921078004886769746622:31:21 412195366437884247746798137865015318806527:31:21 412195366437884247746798137865015318806528:31:22 412195366437884247746798137865015318806529:31:22 1635170022196481349560959748587682926364326:31:22 1635170022196481349560959748587682926364327:31:23 1635170022196481349560959748587682926364328:31:23 6117141027690268863066571918245810640257023:31:23 6117141027690268863066571918245810640257024:31:24 6117141027690268863066571918245810640257025:31:24 21684043449710088680149056017398834228515624:31:24 21684043449710088680149056017398834228515625:31:25 21684043449710088680149056017398834228515626:31:25 73143171433403393900724146770015259539275775:31:25 73143171433403393900724146770015259539275776:31:26 73143171433403393900724146770015259539275777:31:26 235655016338368235499067731945871638181119122:31:26 235655016338368235499067731945871638181119123:31:27 235655016338368235499067731945871638181119124:31:27 727610523382138084983196530617859826801180671:31:27 727610523382138084983196530617859826801180672:31:28 727610523382138084983196530617859826801180673:31:28 2159424054808578564166497528588784562372597428:31:28 2159424054808578564166497528588784562372597429:31:29 2159424054808578564166497528588784562372597430:31:29 6176733962839469999999999999999999999999999999:31:29 6176733962839470000000000000000000000000000000:31:30 6176733962839470000000000000000000000000000001:31:30 17069174130723235958610643029059314756044734430:31:30 17069174130723235958610643029059314756044734431:31:31 17069174130723235958610643029059314756044734432:31:31 45671926166590716193865151022383844364247891967:31:31 45671926166590716193865151022383844364247891968:31:32 45671926166590716193865151022383844364247891969:31:32 118558347188026655500106547231096910504441858016:31:32 118558347188026655500106547231096910504441858017:31:33 118558347188026655500106547231096910504441858018:31:33 299120672332806228664106719451209941853702979583:31:33 299120672332806228664106719451209941853702979584:31:34 299120672332806228664106719451209941853702979585:31:34 734698875038166561234010118059813976287841796874:31:34 734698875038166561234010118059813976287841796875:31:35 734698875038166561234010118059813976287841796876:31:35 1759452407304813269615619081855885739163790606335:31:35 1759452407304813269615619081855885739163790606336:31:36 1759452407304813269615619081855885739163790606337:31:36 4113897303606771042156868599311296618503721408812:31:36 4113897303606771042156868599311296618503721408813:31:37 4113897303606771042156868599311296618503721408814:31:37 9403542573537726518107430106299028013391242330111:31:37 9403542573537726518107430106299028013391242330112:31:38 9403542573537726518107430106299028013391242330113:31:38 21037920897011294144944550507965812289319646937238:31:38 21037920897011294144944550507965812289319646937239:31:39 21037920897011294144944550507965812289319646937240:31:39 46116860184273879039999999999999999999999999999999:31:39 46116860184273879040000000000000000000000000000000:31:40 46116860184273879040000000000000000000000000000001:31:40 99151561540870339022484588445237129558214701225240:31:40 99151561540870339022484588445237129558214701225241:31:41 99151561540870339022484588445237129558214701225242:31:41 209280132851277227501988209234026802122409700753407:31:41 209280132851277227501988209234026802122409700753408:31:42 209280132851277227501988209234026802122409700753409:31:42 434032372696956899302843268022624022041551885480706:31:42 434032372696956899302843268022624022041551885480707:31:43 434032372696956899302843268022624022041551885480708:31:43 885182809206724429753029845421970028406525755654143:31:43 885182809206724429753029845421970028406525755654144:31:44 885182809206724429753029845421970028406525755654145:31:44 1776592919961297100543276866939850151538848876953124:31:44 1776592919961297100543276866939850151538848876953125:31:45 1776592919961297100543276866939850151538848876953126:31:45 3511500884366740741319133039278240178576180323024895:31:45 3511500884366740741319133039278240178576180323024896:31:46 3511500884366740741319133039278240178576180323024897:31:46 6839645551362303414388150265494367657880760229559502:31:46 6839645551362303414388150265494367657880760229559503:31:47 6839645551362303414388150265494367657880760229559504:31:47 13136460329474767592159014329848871194456369557143551:31:47 13136460329474767592159014329848871194456369557143552:31:48 13136460329474767592159014329848871194456369557143553:31:48 24893071176241544900787221684958608586849291716964048:31:48 24893071176241544900787221684958608586849291716964049:31:49 24893071176241544900787221684958608586849291716964050:31:49 46566128730773925781249999999999999999999999999999999:31:49 46566128730773925781250000000000000000000000000000000:31:50 46566128730773925781250000000000000000000000000000001:31:50 86035058637402059052043906841583182924311591281789050:31:50 86035058637402059052043906841583182924311591281789051:31:51 86035058637402059052043906841583182924311591281789052:31:51 157073764616094509389508040547359786571070742722510847:31:51 157073764616094509389508040547359786571070742722510848:31:52 157073764616094509389508040547359786571070742722510849:31:52 283499278281258657725525680568509306972713148562602396:31:52 283499278281258657725525680568509306972713148562602397:31:53 283499278281258657725525680568509306972713148562602398:31:53 506065294155818620736861073598206564100925778982600703:31:53 506065294155818620736861073598206564100925778982600704:31:54 506065294155818620736861073598206564100925778982600705:31:54 893806223560825365149168489928408525884151458740234374:31:54 893806223560825365149168489928408525884151458740234375:31:55 893806223560825365149168489928408525884151458740234376:31:55 1562531701075863192779448904272185314811647640213651455:31:55 1562531701075863192779448904272185314811647640213651456:31:56 1562531701075863192779448904272185314811647640213651457:31:56 2704708873526069789979135933438042216433115412489341192:31:56 2704708873526069789979135933438042216433115412489341193:31:57 2704708873526069789979135933438042216433115412489341194:31:57 4637327846799278236670872192076827363889989062064340991:31:57 4637327846799278236670872192076827363889989062064340992:31:58 4637327846799278236670872192076827363889989062064340993:31:58 7877934414742264229095652511696405296778574701640447858:31:58 7877934414742264229095652511696405296778574701640447859:31:59 7877934414742264229095652511696405296778574701640447860:31:59 13264435183244001473986559999999999999999999999999999999:31:59 13264435183244001473986560000000000000000000000000000000:31:60 13264435183244001473986560000000000000000000000000000001:31:60 22142409857901704241452850038930084800123246089888595860:31:60 22142409857901704241452850038930084800123246089888595861:31:61 22142409857901704241452850038930084800123246089888595862:31:61 36655772330592763634761960703670067260691176347075084287:31:61 36655772330592763634761960703670067260691176347075084288:31:62 36655772330592763634761960703670067260691176347075084289:31:62 60194530725946665709530594231117023001119036204159793086:31:62 60194530725946665709530594231117023001119036204159793087:31:63 60194530725946665709530594231117023001119036204159793088:31:63 98079714615416886934934209737619787751599303819750539263:31:63 98079714615416886934934209737619787751599303819750539264:31:64 98079714615416886934934209737619787751599303819750539265:31:64 158603970741151294135242554484073244966566562652587890624:31:64 158603970741151294135242554484073244966566562652587890625:31:65 158603970741151294135242554484073244966566562652587890626:31:65 254602111920194024074608072436520292411608321458245206015:31:65 254602111920194024074608072436520292411608321458245206016:31:66 254602111920194024074608072436520292411608321458245206017:31:66 405806392232140510970895018914674415041793859755635323882:31:66 405806392232140510970895018914674415041793859755635323883:31:67 405806392232140510970895018914674415041793859755635323884:31:67 642356752613467390008718064548396883945857956905517842431:31:67 642356752613467390008718064548396883945857956905517842432:31:68 642356752613467390008718064548396883945857956905517842433:31:68 1010001021111797636726605406693246154630898595236863558668:31:68 1010001021111797636726605406693246154630898595236863558669:31:69 1010001021111797636726605406693246154630898595236863558670:31:69 1577753820348458066150427429999999999999999999999999999999:31:69 1577753820348458066150427430000000000000000000000000000000:31:70 1577753820348458066150427430000000000000000000000000000001:31:70 2449112925136650411920118175170133072411945127639555415670:31:70 2449112925136650411920118175170133072411945127639555415671:31:71 2449112925136650411920118175170133072411945127639555415672:31:71 3778395274121322248192957223682288117410633520802565193727:31:71 3778395274121322248192957223682288117410633520802565193728:31:72 3778395274121322248192957223682288117410633520802565193729:31:72 5794402555565878769169367562830179558397878080184292822776:31:72 5794402555565878769169367562830179558397878080184292822777:31:73 5794402555565878769169367562830179558397878080184292822778:31:73 8834527189046832235111793967905673549914435952573440589823:31:73 8834527189046832235111793967905673549914435952573440589824:31:74 8834527189046832235111793967905673549914435952573440589825:31:74 13393656762751104775943655766923257033340632915496826171874:31:74 13393656762751104775943655766923257033340632915496826171875:31:75 13393656762751104775943655766923257033340632915496826171876:31:75 20193953909944105208731682060580064457051617930320938008575:31:75 20193953909944105208731682060580064457051617930320938008576:31:76 20193953909944105208731682060580064457051617930320938008577:31:76 30283947201785839389332062495792651662807731637567100877572:31:76 30283947201785839389332062495792651662807731637567100877573:31:77 30283947201785839389332062495792651662807731637567100877574:31:77 45178591114249246247586564082566675634351386842854034767871:31:77 45178591114249246247586564082566675634351386842854034767872:31:78 45178591114249246247586564082566675634351386842854034767873:31:78 67056337603290601886197526121457857721058929367575392866478:31:78 67056337603290601886197526121457857721058929367575392866479:31:79 67056337603290601886197526121457857721058929367575392866480:31:79 99035203142830421991929937919999999999999999999999999999999:31:79 99035203142830421991929937920000000000000000000000000000000:31:80 99035203142830421991929937920000000000000000000000000000001:31:80 145557834293068928043467566190278008218249525830565939618480:31:80 145557834293068928043467566190278008218249525830565939618481:31:81 145557834293068928043467566190278008218249525830565939618482:31:81 212926357082684736739001958018156479208723534954410612359167:31:81 212926357082684736739001958018156479208723534954410612359168:31:82 212926357082684736739001958018156479208723534954410612359169:31:82 310042238379257441145869450099422243548080546642647814661466:31:82 310042238379257441145869450099422243548080546642647814661467:31:83 310042238379257441145869450099422243548080546642647814661468:31:83 449425663149385461975295566818875162751606526724516960272383:31:83 449425663149385461975295566818875162751606526724516960272384:31:84 449425663149385461975295566818875162751606526724516960272385:31:84 648614565557106465387241996310035327603109180927276611328124:31:84 648614565557106465387241996310035327603109180927276611328125:31:85 648614565557106465387241996310035327603109180927276611328126:31:85 932077423069356600613638517985466381386224250613386901979135:31:85 932077423069356600613638517985466381386224250613386901979136:31:86 932077423069356600613638517985466381386224250613386901979137:31:86 1333818789950866833752255895468426121903255681443310806172262:31:86 1333818789950866833752255895468426121903255681443310806172263:31:87 1333818789950866833752255895468426121903255681443310806172264:31:87 1900915608262144564536756271499648295949109556758117783437311:31:87 1900915608262144564536756271499648295949109556758117783437312:31:88 1900915608262144564536756271499648295949109556758117783437313:31:88 2698299829934026858188701891291272124537823795259869647341288:31:88 2698299829934026858188701891291272124537823795259869647341289:31:89 2698299829934026858188701891291272124537823795259869647341290:31:89 3815204244769458316286498988089999999999999999999999999999999:31:89 3815204244769458316286498988090000000000000000000000000000000:31:90 3815204244769458316286498988090000000000000000000000000000001:31:90 5373820576884523425140658257058405227825374728281265334174290:31:90 5373820576884523425140658257058405227825374728281265334174291:31:91 5373820576884523425140658257058405227825374728281265334174292:31:91 7540890729115114577038236151386562505708947165995322056900607:31:91 7540890729115114577038236151386562505708947165995322056900608:31:92 7540890729115114577038236151386562505708947165995322056900609:31:92 10543174757085909877560822002242409886971367890948531883479156:31:92 10543174757085909877560822002242409886971367890948531883479157:31:93 10543174757085909877560822002242409886971367890948531883479158:31:93 14688026979666490706013120620116013181398990926787758935506943:31:93 14688026979666490706013120620116013181398990926787758935506944:31:94 14688026979666490706013120620116013181398990926787758935506945:31:94 20390682574579068859408986143361463093287311494350433349609374:31:94 20390682574579068859408986143361463093287311494350433349609375:31:95 20390682574579068859408986143361463093287311494350433349609376:31:95 28210333750147755832761816289148129201353281873410779508637695:31:95 28210333750147755832761816289148129201353281873410779508637696:31:96 28210333750147755832761816289148129201353281873410779508637697:31:96 38897685648686306961584993323026037365043690280067733586177952:31:96 38897685648686306961584993323026037365043690280067733586177953:31:97 38897685648686306961584993323026037365043690280067733586177954:31:97 53457463299478843772698340895799619497091241802562139431370751:31:97 53457463299478843772698340895799619497091241802562139431370752:31:98 53457463299478843772698340895799619497091241802562139431370753:31:98 73230336965439761850271494139354779283014949972914967990353098:31:98 73230336965439761850271494139354779283014949972914967990353099:31:99 73230336965439761850271494139354779283014949972914967990353100:31:99 0:33:0 1:33:1 2:33:1 8589934591:33:1 8589934592:33:2 8589934593:33:2 5559060566555522:33:2 5559060566555523:33:3 5559060566555524:33:3 73786976294838206463:33:3 73786976294838206464:33:4 73786976294838206465:33:4 116415321826934814453124:33:4 116415321826934814453125:33:5 116415321826934814453126:33:5 47751966659678405306351615:33:5 47751966659678405306351616:33:6 47751966659678405306351617:33:6 7730993719707444524137094406:33:6 7730993719707444524137094407:33:7 7730993719707444524137094408:33:7 633825300114114700748351602687:33:7 633825300114114700748351602688:33:8 633825300114114700748351602689:33:8 30903154382632612361920641803528:33:8 30903154382632612361920641803529:33:9 30903154382632612361920641803530:33:9 23225154419887808141001767796309130:33:10 23225154419887808141001767796309131:33:11 23225154419887808141001767796309132:33:11 410186270246002225336426103593500671:33:11 410186270246002225336426103593500672:33:12 410186270246002225336426103593500673:33:12 5756130429098929077956071497934208652:33:12 5756130429098929077956071497934208653:33:13 5756130429098929077956071497934208654:33:13 66408730383449729837806206197059026943:33:13 66408730383449729837806206197059026944:33:14 66408730383449729837806206197059026945:33:14 647159824910983792506158351898193359374:33:14 647159824910983792506158351898193359375:33:15 647159824910983792506158351898193359376:33:15 5444517870735015415413993718908291383295:33:15 5444517870735015415413993718908291383296:33:16 5444517870735015415413993718908291383297:33:16 40254497110927943179349807054456171205136:33:16 40254497110927943179349807054456171205137:33:17 40254497110927943179349807054456171205138:33:17 265456074833292280954988944586975024775167:33:17 265456074833292280954988944586975024775168:33:18 265456074833292280954988944586975024775169:33:18 1580770532156861979997149793605296459437458:33:18 1580770532156861979997149793605296459437459:33:19 1580770532156861979997149793605296459437460:33:19 8589934591999999999999999999999999999999999:33:19 8589934592000000000000000000000000000000000:33:20 8589934592000000000000000000000000000000001:33:20 42977062327514056734916195400155065458259860:33:20 42977062327514056734916195400155065458259861:33:21 42977062327514056734916195400155065458259862:33:21 199502557355935975909450298726667414302359551:33:21 199502557355935975909450298726667414302359552:33:22 199502557355935975909450298726667414302359553:33:22 865004941741938633917747707002884268046728982:33:22 865004941741938633917747707002884268046728983:33:23 865004941741938633917747707002884268046728984:33:23 3523473231949594865126345424909586928788045823:33:23 3523473231949594865126345424909586928788045824:33:24 3523473231949594865126345424909586928788045825:33:24 13552527156068805425093160010874271392822265624:33:24 13552527156068805425093160010874271392822265625:33:25 13552527156068805425093160010874271392822265626:33:25 49444783888980694276889523216530315448550424575:33:25 49444783888980694276889523216530315448550424576:33:26 49444783888980694276889523216530315448550424577:33:26 171792506910670443678820376588540424234035840666:33:26 171792506910670443678820376588540424234035840667:33:27 171792506910670443678820376588540424234035840668:33:27 570446650331596258626826080004402104212125646847:33:27 570446650331596258626826080004402104212125646848:33:28 570446650331596258626826080004402104212125646849:33:28 1816075630094014572464024421543167816955354437788:33:28 1816075630094014572464024421543167816955354437789:33:29 1816075630094014572464024421543167816955354437790:33:29 5559060566555522999999999999999999999999999999999:33:29 5559060566555523000000000000000000000000000000000:33:30 5559060566555523000000000000000000000000000000001:33:30 16403476339625029756224827950926001480558989788190:33:30 16403476339625029756224827950926001480558989788191:33:31 16403476339625029756224827950926001480558989788192:33:31 46768052394588893382517914646921056628989841375231:33:31 46768052394588893382517914646921056628989841375232:33:32 46768052394588893382517914646921056628989841375233:33:32 129110040087761027839616029934664535539337183380512:33:32 129110040087761027839616029934664535539337183380513:33:33 129110040087761027839616029934664535539337183380514:33:33 345783497216724000335707367685598692782880644399103:33:33 345783497216724000335707367685598692782880644399104:33:34 345783497216724000335707367685598692782880644399105:33:34 900006121921754037511662394623272120952606201171874:33:34 900006121921754037511662394623272120952606201171875:33:35 900006121921754037511662394623272120952606201171876:33:35 2280250319867037997421842330085227917956272625811455:33:35 2280250319867037997421842330085227917956272625811456:33:36 2280250319867037997421842330085227917956272625811457:33:36 5631925408637669556712753112457165070731594608664996:33:36 5631925408637669556712753112457165070731594608664997:33:37 5631925408637669556712753112457165070731594608664998:33:37 13578715476188477092147129073495796451336953924681727:33:37 13578715476188477092147129073495796451336953924681728:33:38 13578715476188477092147129073495796451336953924681729:33:38 31998677684354178394460661322616000492055182991540518:33:38 31998677684354178394460661322616000492055182991540519:33:39 31998677684354178394460661322616000492055182991540520:33:39 73786976294838206463999999999999999999999999999999999:33:39 73786976294838206464000000000000000000000000000000000:33:40 73786976294838206464000000000000000000000000000000001:33:40 166673774950203039896796593176443614787358912759630120:33:40 166673774950203039896796593176443614787358912759630121:33:41 166673774950203039896796593176443614787358912759630122:33:41 369170154349653029313507201088823278943930712129011711:33:41 369170154349653029313507201088823278943930712129011712:33:42 369170154349653029313507201088823278943930712129011713:33:42 802525857116673306810957202573831816754829436253827242:33:42 802525857116673306810957202573831816754829436253827243:33:43 802525857116673306810957202573831816754829436253827244:33:43 1713713918624218496001865780736933974995033862946422783:33:43 1713713918624218496001865780736933974995033862946422784:33:44 1713713918624218496001865780736933974995033862946422785:33:44 3597600662921626628600135655553196556866168975830078124:33:44 3597600662921626628600135655553196556866168975830078125:33:45 3597600662921626628600135655553196556866168975830078126:33:45 7430335871320023408631285511112756217867197563520679935:33:45 7430335871320023408631285511112756217867197563520679936:33:46 7430335871320023408631285511112756217867197563520679937:33:46 15108777022959328242383423936477058156258599347096942126:33:46 15108777022959328242383423936477058156258599347096942127:33:47 15108777022959328242383423936477058156258599347096942128:33:47 30266404599109864532334369015971799232027475459658743807:33:47 30266404599109864532334369015971799232027475459658743808:33:48 30266404599109864532334369015971799232027475459658743809:33:48 59768263894155949306790119265585619217025149412430681648:33:48 59768263894155949306790119265585619217025149412430681649:33:49 59768263894155949306790119265585619217025149412430681650:33:49 116415321826934814453124999999999999999999999999999999999:33:49 116415321826934814453125000000000000000000000000000000000:33:50 116415321826934814453125000000000000000000000000000000001:33:50 223777187515882755594366201694957858786134448923933321650:33:50 223777187515882755594366201694957858786134448923933321651:33:51 223777187515882755594366201694957858786134448923933321652:33:51 424727459521919553389229741640060862888175288321669332991:33:51 424727459521919553389229741640060862888175288321669332992:33:52 424727459521919553389229741640060862888175288321669332993:33:52 796349472692055569551001636716942643286351234312350133172:33:52 796349472692055569551001636716942643286351234312350133173:33:53 796349472692055569551001636716942643286351234312350133174:33:53 1475686397758367098068686890612370340918299571513263652863:33:53 1475686397758367098068686890612370340918299571513263652864:33:54 1475686397758367098068686890612370340918299571513263652865:33:54 2703763826271496729576234682033435790799558162689208984374:33:54 2703763826271496729576234682033435790799558162689208984375:33:55 2703763826271496729576234682033435790799558162689208984376:33:55 4900099414573906972556351763797573147249326999710010966015:33:55 4900099414573906972556351763797573147249326999710010966016:33:56 4900099414573906972556351763797573147249326999710010966017:33:56 8787599130086200747642212647740199161191191975177869536056:33:56 8787599130086200747642212647740199161191191975177869536057:33:57 8787599130086200747642212647740199161191191975177869536058:33:57 15599970876632771988160814054146447252125923204784443097087:33:57 15599970876632771988160814054146447252125923204784443097088:33:58 15599970876632771988160814054146447252125923204784443097089:33:58 27423089697717821781481966393215186838086218536410398997178:33:58 27423089697717821781481966393215186838086218536410398997179:33:59 27423089697717821781481966393215186838086218536410398997180:33:59 47751966659678405306351615999999999999999999999999999999999:33:59 47751966659678405306351616000000000000000000000000000000000:33:60 47751966659678405306351616000000000000000000000000000000001:33:60 82391907081252241482446054994858845541258598700475465198780:33:60 82391907081252241482446054994858845541258598700475465198781:33:61 82391907081252241482446054994858845541258598700475465198782:33:61 140904788838798583412024976944907738550096881878156624003071:33:61 140904788838798583412024976944907738550096881878156624003072:33:62 140904788838798583412024976944907738550096881878156624003073:33:62 238912092451282316201126928503303464291441454694310218762302:33:62 238912092451282316201126928503303464291441454694310218762303:33:63 238912092451282316201126928503303464291441454694310218762304:33:63 401734511064747568885490523085290650630550748445698208825343:33:63 401734511064747568885490523085290650630550748445698208825344:33:64 401734511064747568885490523085290650630550748445698208825345:33:64 670101776381364217721399792695209459983743727207183837890624:33:64 670101776381364217721399792695209459983743727207183837890625:33:65 670101776381364217721399792695209459983743727207183837890626:33:65 1109046799524365168868992763533482393744965848272116117405695:33:65 1109046799524365168868992763533482393744965848272116117405696:33:66 1109046799524365168868992763533482393744965848272116117405697:33:66 1821664894730078753748347739907973449122612636443046968910786:33:66 1821664894730078753748347739907973449122612636443046968910787:33:67 1821664894730078753748347739907973449122612636443046968910788:33:67 2970257624084673211400312330471787191365647192731114503405567:33:67 2970257624084673211400312330471787191365647192731114503405568:33:68 2970257624084673211400312330471787191365647192731114503405569:33:68 4808614861513268548455368341266544942197708211922707402823108:33:68 4808614861513268548455368341266544942197708211922707402823109:33:69 4808614861513268548455368341266544942197708211922707402823110:33:69 7730993719707444524137094406999999999999999999999999999999999:33:69 7730993719707444524137094407000000000000000000000000000000000:33:70 7730993719707444524137094407000000000000000000000000000000001:33:70 12345978255613854726489315721032640818028615388430998850397510:33:70 12345978255613854726489315721032640818028615388430998850397511:33:71 12345978255613854726489315721032640818028615388430998850397512:33:71 19587201101044934534632290247568981600656724171840497964285951:33:71 19587201101044934534632290247568981600656724171840497964285952:33:72 19587201101044934534632290247568981600656724171840497964285953:33:72 30878371218610567960903559742322026866702292289302096452578632:33:72 30878371218610567960903559742322026866702292289302096452578633:33:73 30878371218610567960903559742322026866702292289302096452578634:33:73 48377870887220453319472183768251468359331451276292160669876223:33:73 48377870887220453319472183768251468359331451276292160669876224:33:74 48377870887220453319472183768251468359331451276292160669876225:33:74 75339319290474964364683063688943320812541060149669647216796874:33:74 75339319290474964364683063688943320812541060149669647216796875:33:75 75339319290474964364683063688943320812541060149669647216796876:33:75 116640277783837151685634195581910452303930145165533737937534975:33:75 116640277783837151685634195581910452303930145165533737937534976:33:76 116640277783837151685634195581910452303930145165533737937534977:33:76 179553522959388241739349798537554631708787040879135341103130316:33:76 179553522959388241739349798537554631708787040879135341103130317:33:77 179553522959388241739349798537554631708787040879135341103130318:33:77 274866548339092414170316655878335654559393837551923947527733247:33:77 274866548339092414170316655878335654559393837551923947527733248:33:78 274866548339092414170316655878335654559393837551923947527733249:33:78 418498602982136646371758760524018490037128778183038026879695438:33:78 418498602982136646371758760524018490037128778183038026879695439:33:79 418498602982136646371758760524018490037128778183038026879695440:33:79 633825300114114700748351602687999999999999999999999999999999999:33:79 633825300114114700748351602688000000000000000000000000000000000:33:80 633825300114114700748351602688000000000000000000000000000000001:33:80 955004950796825236893190701774414011919935138974343129836853840:33:80 955004950796825236893190701774414011919935138974343129836853841:33:81 955004950796825236893190701774414011919935138974343129836853842:33:81 1431716825023972169833049165714084166199457049033456957503045631:33:81 1431716825023972169833049165714084166199457049033456957503045632:33:82 1431716825023972169833049165714084166199457049033456957503045633:33:82 2135880980194704512053894641734919835802726885821200795202846162:33:82 2135880980194704512053894641734919835802726885821200795202846163:33:83 2135880980194704512053894641734919835802726885821200795202846164:33:83 3171147479182063819697685519473983148375335652568191671681941503:33:83 3171147479182063819697685519473983148375335652568191671681941504:33:84 3171147479182063819697685519473983148375335652568191671681941505:33:84 4686240236150094212422823423340005241932463832199573516845703124:33:84 4686240236150094212422823423340005241932463832199573516845703125:33:85 4686240236150094212422823423340005241932463832199573516845703126:33:85 6893644621020961418138470479020509356732514557536609527037689855:33:85 6893644621020961418138470479020509356732514557536609527037689856:33:86 6893644621020961418138470479020509356732514557536609527037689857:33:86 10095674421138111064670824872800517316685742252844419491917858646:33:86 10095674421138111064670824872800517316685742252844419491917858647:33:87 10095674421138111064670824872800517316685742252844419491917858648:33:87 14720690470382047507772640566493276403829904407534864114938544127:33:87 14720690470382047507772640566493276403829904407534864114938544128:33:88 14720690470382047507772640566493276403829904407534864114938544129:33:88 21373232952907426743712707680918166498464102282253427476590350168:33:88 21373232952907426743712707680918166498464102282253427476590350169:33:89 21373232952907426743712707680918166498464102282253427476590350170:33:89 30903154382632612361920641803528999999999999999999999999999999999:33:89 30903154382632612361920641803529000000000000000000000000000000000:33:90 30903154382632612361920641803529000000000000000000000000000000001:33:90 44500608197180738483589791026700653691621928124897158232297303770:33:90 44500608197180738483589791026700653691621928124897158232297303771:33:91 44500608197180738483589791026700653691621928124897158232297303772:33:91 63826099131230329780051630785335865048320528812984405889606746111:33:91 63826099131230329780051630785335865048320528812984405889606746112:33:92 63826099131230329780051630785335865048320528812984405889606746113:33:92 91187918474036034531023549497394603112415360888813852260211228892:33:92 91187918474036034531023549497394603112415360888813852260211228893:33:93 91187918474036034531023549497394603112415360888813852260211228894:33:93 129783406392333111878331933799345092470841483829096637954139357183:33:93 129783406392333111878331933799345092470841483829096637954139357184:33:94 129783406392333111878331933799345092470841483829096637954139357185:33:94 184025910235576096456166099943837204416917986236512660980224609374:33:94 184025910235576096456166099943837204416917986236512660980224609375:33:95 184025910235576096456166099943837204416917986236512660980224609376:33:95 259986435841361717754732898920789158719671845745353743951605006335:33:95 259986435841361717754732898920789158719671845745353743951605006336:33:96 259986435841361717754732898920789158719671845745353743951605006337:33:96 365988324268489462201553202176351985567696081845157305312348359776:33:96 365988324268489462201553202176351985567696081845157305312348359777:33:97 365988324268489462201553202176351985567696081845157305312348359778:33:97 513405477528194815592994865963259545650064286271806787098884702207:33:97 513405477528194815592994865963259545650064286271806787098884702208:33:98 513405477528194815592994865963259545650064286271806787098884702209:33:98 717730532598275105894510914059816191752829524684539601273450723298:33:98 717730532598275105894510914059816191752829524684539601273450723299:33:99 717730532598275105894510914059816191752829524684539601273450723300:33:99 0:34:0 1:34:1 2:34:1 17179869183:34:1 17179869184:34:2 17179869185:34:2 16677181699666568:34:2 16677181699666569:34:3 16677181699666570:34:3 295147905179352825855:34:3 295147905179352825856:34:4 295147905179352825857:34:4 582076609134674072265624:34:4 582076609134674072265625:34:5 582076609134674072265626:34:5 286511799958070431838109695:34:5 286511799958070431838109696:34:6 286511799958070431838109697:34:6 54116956037952111668959660848:34:6 54116956037952111668959660849:34:7 54116956037952111668959660850:34:7 5070602400912917605986812821503:34:7 5070602400912917605986812821504:34:8 5070602400912917605986812821505:34:8 278128389443693511257285776231760:34:8 278128389443693511257285776231761:34:9 278128389443693511257285776231762:34:9 255476698618765889551019445759400440:34:10 255476698618765889551019445759400441:34:11 255476698618765889551019445759400442:34:11 4922235242952026704037113243122008063:34:11 4922235242952026704037113243122008064:34:12 4922235242952026704037113243122008065:34:12 74829695578286078013428929473144712488:34:12 74829695578286078013428929473144712489:34:13 74829695578286078013428929473144712490:34:13 929722225368296217729286886758826377215:34:13 929722225368296217729286886758826377216:34:14 929722225368296217729286886758826377217:34:14 9707397373664756887592375278472900390624:34:14 9707397373664756887592375278472900390625:34:15 9707397373664756887592375278472900390626:34:15 87112285931760246646623899502532662132735:34:15 87112285931760246646623899502532662132736:34:16 87112285931760246646623899502532662132737:34:16 684326450885775034048946719925754910487328:34:16 684326450885775034048946719925754910487329:34:17 684326450885775034048946719925754910487330:34:17 4778209346999261057189801002565550445953023:34:17 4778209346999261057189801002565550445953024:34:18 4778209346999261057189801002565550445953025:34:18 30034640110980377619945846078500632729311720:34:18 30034640110980377619945846078500632729311721:34:19 30034640110980377619945846078500632729311722:34:19 171798691839999999999999999999999999999999999:34:19 171798691840000000000000000000000000000000000:34:20 171798691840000000000000000000000000000000001:34:20 902518308877795191433240103403256374623457080:34:20 902518308877795191433240103403256374623457081:34:21 902518308877795191433240103403256374623457082:34:21 4389056261830591470007906571986683114651910143:34:21 4389056261830591470007906571986683114651910144:34:22 4389056261830591470007906571986683114651910145:34:22 19895113660064588580108197261066338165074766608:34:22 19895113660064588580108197261066338165074766609:34:23 19895113660064588580108197261066338165074766610:34:23 84563357566790276763032290197830086290913099775:34:23 84563357566790276763032290197830086290913099776:34:24 84563357566790276763032290197830086290913099777:34:24 338813178901720135627329000271856784820556640624:34:24 338813178901720135627329000271856784820556640625:34:25 338813178901720135627329000271856784820556640626:34:25 1285564381113498051199127603629788201662311038975:34:25 1285564381113498051199127603629788201662311038976:34:26 1285564381113498051199127603629788201662311038977:34:26 4638397686588101979328150167890591454318967698008:34:26 4638397686588101979328150167890591454318967698009:34:27 4638397686588101979328150167890591454318967698010:34:27 15972506209284695241551130240123258917939518111743:34:27 15972506209284695241551130240123258917939518111744:34:28 15972506209284695241551130240123258917939518111745:34:28 52666193272726422601456708224751866691705278695880:34:28 52666193272726422601456708224751866691705278695881:34:29 52666193272726422601456708224751866691705278695882:34:29 166771816996665689999999999999999999999999999999999:34:29 166771816996665690000000000000000000000000000000000:34:30 166771816996665690000000000000000000000000000000001:34:30 508507766528375922442969666478706045897328683433920:34:30 508507766528375922442969666478706045897328683433921:34:31 508507766528375922442969666478706045897328683433922:34:31 1496577676626844588240573268701473812127674924007423:34:31 1496577676626844588240573268701473812127674924007424:34:32 1496577676626844588240573268701473812127674924007425:34:32 4260631322896113918707328987843929672798127051556928:34:32 4260631322896113918707328987843929672798127051556929:34:33 4260631322896113918707328987843929672798127051556930:34:33 11756638905368616011414050501310355554617941909569535:34:33 11756638905368616011414050501310355554617941909569536:34:34 11756638905368616011414050501310355554617941909569537:34:34 31500214267261391312908183811814524233341217041015624:34:34 31500214267261391312908183811814524233341217041015625:34:35 31500214267261391312908183811814524233341217041015626:34:35 82089011515213367907186323883068205046425814529212415:34:35 82089011515213367907186323883068205046425814529212416:34:36 82089011515213367907186323883068205046425814529212417:34:36 208381240119593773598371865160915107617069000520604888:34:36 208381240119593773598371865160915107617069000520604889:34:37 208381240119593773598371865160915107617069000520604890:34:37 515991188095162129501590904792840265150804249137905663:34:37 515991188095162129501590904792840265150804249137905664:34:38 515991188095162129501590904792840265150804249137905665:34:38 1247948429689812957383965791582024019190152136670080240:34:38 1247948429689812957383965791582024019190152136670080241:34:39 1247948429689812957383965791582024019190152136670080242:34:39 2951479051793528258559999999999999999999999999999999999:34:39 2951479051793528258560000000000000000000000000000000000:34:40 2951479051793528258560000000000000000000000000000000001:34:40 6833624772958324635768660320234188206281715423144834960:34:40 6833624772958324635768660320234188206281715423144834961:34:41 6833624772958324635768660320234188206281715423144834962:34:41 15505146482685427231167302445730577715645089909418491903:34:41 15505146482685427231167302445730577715645089909418491904:34:42 15505146482685427231167302445730577715645089909418491905:34:42 34508611856016952192871159710674768120457665758914571448:34:42 34508611856016952192871159710674768120457665758914571449:34:43 34508611856016952192871159710674768120457665758914571450:34:43 75403412419465613824082094352425094899781489969642602495:34:43 75403412419465613824082094352425094899781489969642602496:34:44 75403412419465613824082094352425094899781489969642602497:34:44 161892029831473198287006104499893845058977603912353515624:34:44 161892029831473198287006104499893845058977603912353515625:34:45 161892029831473198287006104499893845058977603912353515626:34:45 341795450080721076797039133511186786021891087921951277055:34:45 341795450080721076797039133511186786021891087921951277056:34:46 341795450080721076797039133511186786021891087921951277057:34:46 710112520079088427392020925014421733344154169313556279968:34:46 710112520079088427392020925014421733344154169313556279969:34:47 710112520079088427392020925014421733344154169313556279970:34:47 1452787420757273497552049712766646363137318822063619702783:34:47 1452787420757273497552049712766646363137318822063619702784:34:48 1452787420757273497552049712766646363137318822063619702785:34:48 2928644930813641516032715844013695341634232321209103400800:34:48 2928644930813641516032715844013695341634232321209103400801:34:49 2928644930813641516032715844013695341634232321209103400802:34:49 5820766091346740722656249999999999999999999999999999999999:34:49 5820766091346740722656250000000000000000000000000000000000:34:50 5820766091346740722656250000000000000000000000000000000001:34:50 11412636563310020535312676286442850798092856895120599404200:34:50 11412636563310020535312676286442850798092856895120599404201:34:51 11412636563310020535312676286442850798092856895120599404202:34:51 22085827895139816776239946565283164870185114992726805315583:34:51 22085827895139816776239946565283164870185114992726805315584:34:52 22085827895139816776239946565283164870185114992726805315585:34:52 42206522052678945186203086745997960094176615418554557058168:34:52 42206522052678945186203086745997960094176615418554557058169:34:53 42206522052678945186203086745997960094176615418554557058170:34:53 79687065478951823295709092093067998409588176861716237254655:34:53 79687065478951823295709092093067998409588176861716237254656:34:54 79687065478951823295709092093067998409588176861716237254657:34:54 148707010444932320126692907511838968493975698947906494140624:34:54 148707010444932320126692907511838968493975698947906494140625:34:55 148707010444932320126692907511838968493975698947906494140626:34:55 274405567216138790463155698772664096245962311983760614096895:34:55 274405567216138790463155698772664096245962311983760614096896:34:56 274405567216138790463155698772664096245962311983760614096897:34:56 500893150414913442615606120921191352187897942585138563555248:34:56 500893150414913442615606120921191352187897942585138563555249:34:57 500893150414913442615606120921191352187897942585138563555250:34:57 904798310844700775313327215140493940623303545877497699631103:34:57 904798310844700775313327215140493940623303545877497699631104:34:58 904798310844700775313327215140493940623303545877497699631105:34:58 1617962292165351485107436017199696023447086893648213540833560:34:58 1617962292165351485107436017199696023447086893648213540833561:34:59 1617962292165351485107436017199696023447086893648213540833562:34:59 2865117999580704318381096959999999999999999999999999999999999:34:59 2865117999580704318381096960000000000000000000000000000000000:34:60 2865117999580704318381096960000000000000000000000000000000001:34:60 5025906331956386730429209354686389578016774520729003377125640:34:60 5025906331956386730429209354686389578016774520729003377125641:34:61 5025906331956386730429209354686389578016774520729003377125642:34:61 8736096908005512171545548570584279790106006676445710688190463:34:61 8736096908005512171545548570584279790106006676445710688190464:34:62 8736096908005512171545548570584279790106006676445710688190465:34:62 15051461824430785920670996495708118250360811645741543782025088:34:62 15051461824430785920670996495708118250360811645741543782025089:34:63 15051461824430785920670996495708118250360811645741543782025090:34:63 25711008708143844408671393477458601640355247900524685364822015:34:63 25711008708143844408671393477458601640355247900524685364822016:34:64 25711008708143844408671393477458601640355247900524685364822017:34:64 43556615464788674151890986525188614898943342268466949462890624:34:64 43556615464788674151890986525188614898943342268466949462890625:34:65 43556615464788674151890986525188614898943342268466949462890626:34:65 73197088768608101145353522393209837987167745985959663748775935:34:65 73197088768608101145353522393209837987167745985959663748775936:34:66 73197088768608101145353522393209837987167745985959663748775937:34:66 122051547946915276501139298573834221091215046641684146917022728:34:66 122051547946915276501139298573834221091215046641684146917022729:34:67 122051547946915276501139298573834221091215046641684146917022730:34:67 201977518437757778375221238472081529012864009105715786231578623:34:67 201977518437757778375221238472081529012864009105715786231578624:34:68 201977518437757778375221238472081529012864009105715786231578625:34:68 331794425444415529843420415547391601011641866622666810794794520:34:68 331794425444415529843420415547391601011641866622666810794794521:34:69 331794425444415529843420415547391601011641866622666810794794522:34:69 541169560379521116689596608489999999999999999999999999999999999:34:69 541169560379521116689596608490000000000000000000000000000000000:34:70 541169560379521116689596608490000000000000000000000000000000001:34:70 876564456148583685580741416193317498080031692578600918378223280:34:70 876564456148583685580741416193317498080031692578600918378223281:34:71 876564456148583685580741416193317498080031692578600918378223282:34:71 1410278479275235286493524897824966675247284140372515853428588543:34:71 1410278479275235286493524897824966675247284140372515853428588544:34:72 1410278479275235286493524897824966675247284140372515853428588545:34:72 2254121098958571461145959861189507961269267337119053041038240208:34:72 2254121098958571461145959861189507961269267337119053041038240209:34:73 2254121098958571461145959861189507961269267337119053041038240210:34:73 3579962445654313545640941598850608658590527394445619889570840575:34:73 3579962445654313545640941598850608658590527394445619889570840576:34:74 3579962445654313545640941598850608658590527394445619889570840577:34:74 5650448946785622327351229776670749060940579511225223541259765624:34:74 5650448946785622327351229776670749060940579511225223541259765625:34:75 5650448946785622327351229776670749060940579511225223541259765626:34:75 8864661111571623528108198864225194375098691032580564083252658175:34:75 8864661111571623528108198864225194375098691032580564083252658176:34:76 8864661111571623528108198864225194375098691032580564083252658177:34:76 13825621267872894613929934487391706641576602147693421264941034408:34:76 13825621267872894613929934487391706641576602147693421264941034409:34:77 13825621267872894613929934487391706641576602147693421264941034410:34:77 21439590770449208305284699158510181055632719329050067907163193343:34:77 21439590770449208305284699158510181055632719329050067907163193344:34:78 21439590770449208305284699158510181055632719329050067907163193345:34:78 33061389635588795063368942081397460712933173476460004123495939680:34:78 33061389635588795063368942081397460712933173476460004123495939681:34:79 33061389635588795063368942081397460712933173476460004123495939682:34:79 50706024009129176059868128215039999999999999999999999999999999999:34:79 50706024009129176059868128215040000000000000000000000000000000000:34:80 50706024009129176059868128215040000000000000000000000000000000001:34:80 77355401014542844188348446843727534965514746256921793516785161120:34:80 77355401014542844188348446843727534965514746256921793516785161121:34:81 77355401014542844188348446843727534965514746256921793516785161122:34:81 117400779651965717926310031588554901628355478020743470515249741823:34:81 117400779651965717926310031588554901628355478020743470515249741824:34:82 117400779651965717926310031588554901628355478020743470515249741825:34:82 177278121356160474500473255263998346371626331523159666001836231528:34:82 177278121356160474500473255263998346371626331523159666001836231529:34:83 177278121356160474500473255263998346371626331523159666001836231530:34:83 266376388251293360854605583635814584463528194815728100421283086335:34:83 266376388251293360854605583635814584463528194815728100421283086336:34:84 266376388251293360854605583635814584463528194815728100421283086337:34:84 398330420072758008055939990983900445564259425736963748931884765624:34:84 398330420072758008055939990983900445564259425736963748931884765625:34:85 398330420072758008055939990983900445564259425736963748931884765626:34:85 592853437407802681959908461195763804678996251948148419325241327615:34:85 592853437407802681959908461195763804678996251948148419325241327616:34:86 592853437407802681959908461195763804678996251948148419325241327617:34:86 878323674639015662626361763933645006551659575997464495796853702288:34:86 878323674639015662626361763933645006551659575997464495796853702289:34:87 878323674639015662626361763933645006551659575997464495796853702290:34:87 1295420761393620180683992369851408323537031587863068042114591883263:34:87 1295420761393620180683992369851408323537031587863068042114591883264:34:88 1295420761393620180683992369851408323537031587863068042114591883265:34:88 1902217732808760980190430983601716818363305103120555045416541165040:34:88 1902217732808760980190430983601716818363305103120555045416541165041:34:89 1902217732808760980190430983601716818363305103120555045416541165042:34:89 2781283894436935112572857762317609999999999999999999999999999999999:34:89 2781283894436935112572857762317610000000000000000000000000000000000:34:90 2781283894436935112572857762317610000000000000000000000000000000001:34:90 4049555345943447202006670983429759485937595459365641399139054643160:34:90 4049555345943447202006670983429759485937595459365641399139054643161:34:91 4049555345943447202006670983429759485937595459365641399139054643162:34:91 5872001120073190339764750032250899584445488650794565341843820642303:34:91 5872001120073190339764750032250899584445488650794565341843820642304:34:92 5872001120073190339764750032250899584445488650794565341843820642305:34:92 8480476418085351211385190103257698089454628562659688260199644287048:34:92 8480476418085351211385190103257698089454628562659688260199644287049:34:93 8480476418085351211385190103257698089454628562659688260199644287050:34:93 12199640200879312516563201777138438692259099479935083967689099575295:34:93 12199640200879312516563201777138438692259099479935083967689099575296:34:94 12199640200879312516563201777138438692259099479935083967689099575297:34:94 17482461472379729163335779494664534419607208692468702793121337890624:34:94 17482461472379729163335779494664534419607208692468702793121337890625:34:95 17482461472379729163335779494664534419607208692468702793121337890626:34:95 24958697840770724904454358296395759237088497191553959419354080608255:34:95 24958697840770724904454358296395759237088497191553959419354080608256:34:96 24958697840770724904454358296395759237088497191553959419354080608257:34:96 35500867454043477833550660611106142600066519938980258615297790898368:34:96 35500867454043477833550660611106142600066519938980258615297790898369:34:97 35500867454043477833550660611106142600066519938980258615297790898370:34:97 50313736797763091928113496864399435473706300054637065135690700816383:34:97 50313736797763091928113496864399435473706300054637065135690700816384:34:98 50313736797763091928113496864399435473706300054637065135690700816385:34:98 71055322727229235483556580491921802983530122943769420526071621606600:34:98 71055322727229235483556580491921802983530122943769420526071621606601:34:99 71055322727229235483556580491921802983530122943769420526071621606602:34:99 0:35:0 1:35:1 2:35:1 34359738367:35:1 34359738368:35:2 34359738369:35:2 50031545098999706:35:2 50031545098999707:35:3 50031545098999708:35:3 1180591620717411303423:35:3 1180591620717411303424:35:4 1180591620717411303425:35:4 2910383045673370361328124:35:4 2910383045673370361328125:35:5 2910383045673370361328126:35:5 1719070799748422591028658175:35:5 1719070799748422591028658176:35:6 1719070799748422591028658177:35:6 378818692265664781682717625942:35:6 378818692265664781682717625943:35:7 378818692265664781682717625944:35:7 40564819207303340847894502572031:35:7 40564819207303340847894502572032:35:8 40564819207303340847894502572033:35:8 2503155504993241601315571986085848:35:8 2503155504993241601315571986085849:35:9 2503155504993241601315571986085850:35:9 2810243684806424785061213903353404850:35:10 2810243684806424785061213903353404851:35:11 2810243684806424785061213903353404852:35:11 59066822915424320448445358917464096767:35:11 59066822915424320448445358917464096768:35:12 59066822915424320448445358917464096769:35:12 972786042517719014174576083150881262356:35:12 972786042517719014174576083150881262357:35:13 972786042517719014174576083150881262358:35:13 13016111155156147048210016414623569281023:35:13 13016111155156147048210016414623569281024:35:14 13016111155156147048210016414623569281025:35:14 145610960604971353313885629177093505859374:35:14 145610960604971353313885629177093505859375:35:15 145610960604971353313885629177093505859376:35:15 1393796574908163946345982392040522594123775:35:15 1393796574908163946345982392040522594123776:35:16 1393796574908163946345982392040522594123777:35:16 11633549665058175578832094238737833478284592:35:16 11633549665058175578832094238737833478284593:35:17 11633549665058175578832094238737833478284594:35:17 86007768245986699029416418046179908027154431:35:17 86007768245986699029416418046179908027154432:35:18 86007768245986699029416418046179908027154433:35:18 570658162108627174778971075491512021856922698:35:18 570658162108627174778971075491512021856922699:35:19 570658162108627174778971075491512021856922700:35:19 3435973836799999999999999999999999999999999999:35:19 3435973836800000000000000000000000000000000000:35:20 3435973836800000000000000000000000000000000001:35:20 18952884486433699020098042171468383867092598700:35:20 18952884486433699020098042171468383867092598701:35:21 18952884486433699020098042171468383867092598702:35:21 96559237760273012340173944583707028522342023167:35:21 96559237760273012340173944583707028522342023168:35:22 96559237760273012340173944583707028522342023169:35:22 457587614181485537342488537004525777796719632006:35:22 457587614181485537342488537004525777796719632007:35:23 457587614181485537342488537004525777796719632008:35:23 2029520581602966642312774964747922070981914394623:35:23 2029520581602966642312774964747922070981914394624:35:24 2029520581602966642312774964747922070981914394625:35:24 8470329472543003390683225006796419620513916015624:35:24 8470329472543003390683225006796419620513916015625:35:25 8470329472543003390683225006796419620513916015626:35:25 33424673908950949331177317694374493243220087013375:35:25 33424673908950949331177317694374493243220087013376:35:26 33424673908950949331177317694374493243220087013377:35:26 125236737537878753441860054533045969266612127846242:35:26 125236737537878753441860054533045969266612127846243:35:27 125236737537878753441860054533045969266612127846244:35:27 447230173859971466763431646723451249702306507128831:35:27 447230173859971466763431646723451249702306507128832:35:28 447230173859971466763431646723451249702306507128833:35:28 1527319604909066255442244538517804134059453082180548:35:28 1527319604909066255442244538517804134059453082180549:35:29 1527319604909066255442244538517804134059453082180550:35:29 5003154509899970699999999999999999999999999999999999:35:29 5003154509899970700000000000000000000000000000000000:35:30 5003154509899970700000000000000000000000000000000001:35:30 15763740762379653595732059660839887422817189186451550:35:30 15763740762379653595732059660839887422817189186451551:35:31 15763740762379653595732059660839887422817189186451552:35:31 47890485652059026823698344598447161988085597568237567:35:31 47890485652059026823698344598447161988085597568237568:35:32 47890485652059026823698344598447161988085597568237569:35:32 140600833655571759317341856598849679202338192701378656:35:32 140600833655571759317341856598849679202338192701378657:35:33 140600833655571759317341856598849679202338192701378658:35:33 399725722782532944388077717044552088857010024925364223:35:33 399725722782532944388077717044552088857010024925364224:35:34 399725722782532944388077717044552088857010024925364225:35:34 1102507499354148695951786433413508348166942596435546874:35:34 1102507499354148695951786433413508348166942596435546875:35:35 1102507499354148695951786433413508348166942596435546876:35:35 2955204414547681244658707659790455381671329323051646975:35:35 2955204414547681244658707659790455381671329323051646976:35:36 2955204414547681244658707659790455381671329323051646977:35:36 7710105884424969623139759010953858981831553019262380892:35:36 7710105884424969623139759010953858981831553019262380893:35:37 7710105884424969623139759010953858981831553019262380894:35:37 19607665147616160921060454382127930075730561467240415231:35:37 19607665147616160921060454382127930075730561467240415232:35:38 19607665147616160921060454382127930075730561467240415233:35:38 48669988757902705337974665871698936748415933330133129398:35:38 48669988757902705337974665871698936748415933330133129399:35:39 48669988757902705337974665871698936748415933330133129400:35:39 118059162071741130342399999999999999999999999999999999999:35:39 118059162071741130342400000000000000000000000000000000000:35:40 118059162071741130342400000000000000000000000000000000001:35:40 280178615691291310066515073129601716457550332348938233400:35:40 280178615691291310066515073129601716457550332348938233401:35:41 280178615691291310066515073129601716457550332348938233402:35:41 651216152272787943709026702720684264057093776195576659967:35:41 651216152272787943709026702720684264057093776195576659968:35:42 651216152272787943709026702720684264057093776195576659969:35:42 1483870309808728944293459867559015029179679627633326572306:35:42 1483870309808728944293459867559015029179679627633326572307:35:43 1483870309808728944293459867559015029179679627633326572308:35:43 3317750146456487008259612151506704175590385558664274509823:35:43 3317750146456487008259612151506704175590385558664274509824:35:44 3317750146456487008259612151506704175590385558664274509825:35:44 7285141342416293922915274702495223027653992176055908203124:35:44 7285141342416293922915274702495223027653992176055908203125:35:45 7285141342416293922915274702495223027653992176055908203126:35:45 15722590703713169532663800141514592157006990044409758744575:35:45 15722590703713169532663800141514592157006990044409758744576:35:46 15722590703713169532663800141514592157006990044409758744577:35:46 33375288443717156087424983475677821467175245957737145158542:35:46 33375288443717156087424983475677821467175245957737145158543:35:47 33375288443717156087424983475677821467175245957737145158544:35:47 69733796196349127882498386212799025430591303459053745733631:35:47 69733796196349127882498386212799025430591303459053745733632:35:48 69733796196349127882498386212799025430591303459053745733633:35:48 143503601609868434285603076356671071740077383739246066639248:35:48 143503601609868434285603076356671071740077383739246066639249:35:49 143503601609868434285603076356671071740077383739246066639250:35:49 291038304567337036132812499999999999999999999999999999999999:35:49 291038304567337036132812500000000000000000000000000000000000:35:50 291038304567337036132812500000000000000000000000000000000001:35:50 582044464728811047300946490608585390702735701651150569614250:35:50 582044464728811047300946490608585390702735701651150569614251:35:51 582044464728811047300946490608585390702735701651150569614252:35:51 1148463050547270472364477221394724573249625979621793876410367:35:51 1148463050547270472364477221394724573249625979621793876410368:35:52 1148463050547270472364477221394724573249625979621793876410369:35:52 2236945668791984094868763597537891884991360617183391524082956:35:52 2236945668791984094868763597537891884991360617183391524082957:35:53 2236945668791984094868763597537891884991360617183391524082958:35:53 4303101535863398457968290973025671914117761550532676811751423:35:53 4303101535863398457968290973025671914117761550532676811751424:35:54 4303101535863398457968290973025671914117761550532676811751425:35:54 8178885574471277606968109913151143267168663442134857177734374:35:54 8178885574471277606968109913151143267168663442134857177734375:35:55 8178885574471277606968109913151143267168663442134857177734376:35:55 15366711764103772265936719131269189389773889471090594389426175:35:55 15366711764103772265936719131269189389773889471090594389426176:35:56 15366711764103772265936719131269189389773889471090594389426177:35:56 28550909573650066229089548892507907074710182727352898122649192:35:56 28550909573650066229089548892507907074710182727352898122649193:35:57 28550909573650066229089548892507907074710182727352898122649194:35:57 52478302028992644968172978478148648556151605660894866578604031:35:57 52478302028992644968172978478148648556151605660894866578604032:35:58 52478302028992644968172978478148648556151605660894866578604033:35:58 95459775237755737621338725014782065383378126725244598909180098:35:58 95459775237755737621338725014782065383378126725244598909180099:35:59 95459775237755737621338725014782065383378126725244598909180100:35:59 171907079974842259102865817599999999999999999999999999999999999:35:59 171907079974842259102865817600000000000000000000000000000000000:35:60 171907079974842259102865817600000000000000000000000000000000001:35:60 306580286249339590556181770635869764259023245764469206004664100:35:60 306580286249339590556181770635869764259023245764469206004664101:35:61 306580286249339590556181770635869764259023245764469206004664102:35:61 541638008296341754635824011376225346986572413939634062667808767:35:61 541638008296341754635824011376225346986572413939634062667808768:35:62 541638008296341754635824011376225346986572413939634062667808769:35:62 948242094939139513002272779229611449772731133681717258267580606:35:62 948242094939139513002272779229611449772731133681717258267580607:35:63 948242094939139513002272779229611449772731133681717258267580608:35:63 1645504557321206042154969182557350504982735865633579863348609023:35:63 1645504557321206042154969182557350504982735865633579863348609024:35:64 1645504557321206042154969182557350504982735865633579863348609025:35:64 2831180005211263819872914124137259968431317247450351715087890624:35:64 2831180005211263819872914124137259968431317247450351715087890625:35:65 2831180005211263819872914124137259968431317247450351715087890626:35:65 4831007858728134675593332477951849307153071235073337807419211775:35:65 4831007858728134675593332477951849307153071235073337807419211776:35:66 4831007858728134675593332477951849307153071235073337807419211777:35:66 8177453712443323525576333004446892813111408124992837843440522842:35:66 8177453712443323525576333004446892813111408124992837843440522843:35:67 8177453712443323525576333004446892813111408124992837843440522844:35:67 13734471253767528929515044216101543972874752619188673463747346431:35:67 13734471253767528929515044216101543972874752619188673463747346432:35:68 13734471253767528929515044216101543972874752619188673463747346433:35:68 22893815355664671559196008672770020469803288796964009944840821948:35:68 22893815355664671559196008672770020469803288796964009944840821949:35:69 22893815355664671559196008672770020469803288796964009944840821950:35:69 37881869226566478168271762594299999999999999999999999999999999999:35:69 37881869226566478168271762594300000000000000000000000000000000000:35:70 37881869226566478168271762594300000000000000000000000000000000001:35:70 62236076386549441676232640549725542363682250173080665204853852950:35:70 62236076386549441676232640549725542363682250173080665204853852951:35:71 62236076386549441676232640549725542363682250173080665204853852952:35:71 101540050507816940627533792643397600617804458106821141446858375167:35:71 101540050507816940627533792643397600617804458106821141446858375168:35:72 101540050507816940627533792643397600617804458106821141446858375169:35:72 164550840223975716663655069866834081172656515609690871995791535256:35:72 164550840223975716663655069866834081172656515609690871995791535257:35:73 164550840223975716663655069866834081172656515609690871995791535258:35:73 264917220978419202377429678314945040735699027188975871828242202623:35:73 264917220978419202377429678314945040735699027188975871828242202624:35:74 264917220978419202377429678314945040735699027188975871828242202625:35:74 423783671008921674551342233250306179570543463341891765594482421874:35:74 423783671008921674551342233250306179570543463341891765594482421875:35:75 423783671008921674551342233250306179570543463341891765594482421876:35:75 673714244479443388136223113681114772507500518476122870327202021375:35:75 673714244479443388136223113681114772507500518476122870327202021376:35:76 673714244479443388136223113681114772507500518476122870327202021377:35:76 1064572837626212885272604955529161411401398365372393437400459649492:35:76 1064572837626212885272604955529161411401398365372393437400459649493:35:77 1064572837626212885272604955529161411401398365372393437400459649494:35:77 1672288080095038247812206534363794122339352107665905296758729080831:35:77 1672288080095038247812206534363794122339352107665905296758729080832:35:78 1672288080095038247812206534363794122339352107665905296758729080833:35:78 2611849781211514810006146424430399396321720704640340325756179234798:35:78 2611849781211514810006146424430399396321720704640340325756179234799:35:79 2611849781211514810006146424430399396321720704640340325756179234800:35:79 4056481920730334084789450257203199999999999999999999999999999999999:35:79 4056481920730334084789450257203200000000000000000000000000000000000:35:80 4056481920730334084789450257203200000000000000000000000000000000001:35:80 6265787482177970379256224194341930332206694446810665274859598050800:35:80 6265787482177970379256224194341930332206694446810665274859598050801:35:81 6265787482177970379256224194341930332206694446810665274859598050802:35:81 9626863931461188869957422590261501933525149197700964582250478829567:35:81 9626863931461188869957422590261501933525149197700964582250478829568:35:82 9626863931461188869957422590261501933525149197700964582250478829569:35:82 14714084072561319383539280186911862748844985516422252278152407216906:35:82 14714084072561319383539280186911862748844985516422252278152407216907:35:83 14714084072561319383539280186911862748844985516422252278152407216908:35:83 22375616613108642311786869025408425094936368364521160435387779252223:35:83 22375616613108642311786869025408425094936368364521160435387779252224:35:84 22375616613108642311786869025408425094936368364521160435387779252225:35:84 33858085706184430684754899233631537872962051187641918659210205078124:35:84 33858085706184430684754899233631537872962051187641918659210205078125:35:85 33858085706184430684754899233631537872962051187641918659210205078126:35:85 50985395617071030648552127662835687202393677667540764061970754174975:35:85 50985395617071030648552127662835687202393677667540764061970754174976:35:86 50985395617071030648552127662835687202393677667540764061970754174977:35:86 76414159693594362648493473462227115569994383111779411134326272099142:35:86 76414159693594362648493473462227115569994383111779411134326272099143:35:87 76414159693594362648493473462227115569994383111779411134326272099144:35:87 113997027002638575900191328546923932471258779731949987706084085727231:35:87 113997027002638575900191328546923932471258779731949987706084085727232:35:88 113997027002638575900191328546923932471258779731949987706084085727233:35:88 169297378219979727236948357540552796834334154177729399042072163688648:35:88 169297378219979727236948357540552796834334154177729399042072163688649:35:89 169297378219979727236948357540552796834334154177729399042072163688650:35:89 250315550499324160131557198608584899999999999999999999999999999999999:35:89 250315550499324160131557198608584900000000000000000000000000000000000:35:90 250315550499324160131557198608584900000000000000000000000000000000001:35:90 368509536480853695382607059492108113220321186802273367321653972527650:35:90 368509536480853695382607059492108113220321186802273367321653972527651:35:91 368509536480853695382607059492108113220321186802273367321653972527652:35:91 540224103046733511258357002967082761768984955873100011449631499091967:35:91 540224103046733511258357002967082761768984955873100011449631499091968:35:92 540224103046733511258357002967082761768984955873100011449631499091969:35:92 788684306881937662658822679602965922319280456327351008198566918695556:35:92 788684306881937662658822679602965922319280456327351008198566918695557:35:93 788684306881937662658822679602965922319280456327351008198566918695558:35:93 1146766178882655376556940967051013237072355351113897892962775360077823:35:93 1146766178882655376556940967051013237072355351113897892962775360077824:35:94 1146766178882655376556940967051013237072355351113897892962775360077825:35:94 1660833839876074270516899051993130769862684825784526765346527099609374:35:94 1660833839876074270516899051993130769862684825784526765346527099609375:35:95 1660833839876074270516899051993130769862684825784526765346527099609376:35:95 2396034992713989590827618396453992886760495730389180104257991738392575:35:95 2396034992713989590827618396453992886760495730389180104257991738392576:35:96 2396034992713989590827618396453992886760495730389180104257991738392577:35:96 3443584143042217349854414079277295832206452434081085085683885717141792:35:96 3443584143042217349854414079277295832206452434081085085683885717141793:35:97 3443584143042217349854414079277295832206452434081085085683885717141794:35:97 4930746206180783008955122692711144676423217405354432383297688680005631:35:97 4930746206180783008955122692711144676423217405354432383297688680005632:35:98 4930746206180783008955122692711144676423217405354432383297688680005633:35:98 7034476949995694312872101468700258495369482171433172632081090539053498:35:98 7034476949995694312872101468700258495369482171433172632081090539053499:35:99 7034476949995694312872101468700258495369482171433172632081090539053500:35:99 0:36:0 1:36:1 2:36:1 68719476735:36:1 68719476736:36:2 68719476737:36:2 150094635296999120:36:2 150094635296999121:36:3 150094635296999122:36:3 4722366482869645213695:36:3 4722366482869645213696:36:4 4722366482869645213697:36:4 14551915228366851806640624:36:4 14551915228366851806640625:36:5 14551915228366851806640626:36:5 10314424798490535546171949055:36:5 10314424798490535546171949056:36:6 10314424798490535546171949057:36:6 2651730845859653471779023381600:36:6 2651730845859653471779023381601:36:7 2651730845859653471779023381602:36:7 324518553658426726783156020576255:36:7 324518553658426726783156020576256:36:8 324518553658426726783156020576257:36:8 22528399544939174411840147874772640:36:8 22528399544939174411840147874772641:36:9 22528399544939174411840147874772642:36:9 30912680532870672635673352936887453360:36:10 30912680532870672635673352936887453361:36:11 30912680532870672635673352936887453362:36:11 708801874985091845381344307009569161215:36:11 708801874985091845381344307009569161216:36:12 708801874985091845381344307009569161217:36:12 12646218552730347184269489080961456410640:36:12 12646218552730347184269489080961456410641:36:13 12646218552730347184269489080961456410642:36:13 182225556172186058674940229804729969934335:36:13 182225556172186058674940229804729969934336:36:14 182225556172186058674940229804729969934337:36:14 2184164409074570299708284437656402587890624:36:14 2184164409074570299708284437656402587890625:36:15 2184164409074570299708284437656402587890626:36:15 22300745198530623141535718272648361505980415:36:15 22300745198530623141535718272648361505980416:36:16 22300745198530623141535718272648361505980417:36:16 197770344305988984840145602058543169130838080:36:16 197770344305988984840145602058543169130838081:36:17 197770344305988984840145602058543169130838082:36:17 1548139828427760582529495524831238344488779775:36:17 1548139828427760582529495524831238344488779776:36:18 1548139828427760582529495524831238344488779777:36:18 10842505080063916320800450434338728415281531280:36:18 10842505080063916320800450434338728415281531281:36:19 10842505080063916320800450434338728415281531282:36:19 68719476735999999999999999999999999999999999999:36:19 68719476736000000000000000000000000000000000000:36:20 68719476736000000000000000000000000000000000001:36:20 398010574215107679422058885600836061208944572720:36:20 398010574215107679422058885600836061208944572721:36:21 398010574215107679422058885600836061208944572722:36:21 2124303230726006271483826780841554627491524509695:36:21 2124303230726006271483826780841554627491524509696:36:22 2124303230726006271483826780841554627491524509697:36:22 10524515126174167358877236351104092889324551536160:36:22 10524515126174167358877236351104092889324551536161:36:23 10524515126174167358877236351104092889324551536162:36:23 48708493958471199415506599153950129703565945470975:36:23 48708493958471199415506599153950129703565945470976:36:24 48708493958471199415506599153950129703565945470977:36:24 211758236813575084767080625169910490512847900390624:36:24 211758236813575084767080625169910490512847900390625:36:25 211758236813575084767080625169910490512847900390626:36:25 869041521632724682610610260053736824323722262347775:36:25 869041521632724682610610260053736824323722262347776:36:26 869041521632724682610610260053736824323722262347777:36:26 3381391913522726342930221472392241170198527451848560:36:26 3381391913522726342930221472392241170198527451848561:36:27 3381391913522726342930221472392241170198527451848562:36:27 12522444868079201069376086108256634991664582199607295:36:27 12522444868079201069376086108256634991664582199607296:36:28 12522444868079201069376086108256634991664582199607297:36:28 44292268542362921407825091617016319887724139383235920:36:28 44292268542362921407825091617016319887724139383235921:36:29 44292268542362921407825091617016319887724139383235922:36:29 150094635296999120999999999999999999999999999999999999:36:29 150094635296999121000000000000000000000000000000000000:36:30 150094635296999121000000000000000000000000000000000001:36:30 488675963633769261467693849486036510107332864779998080:36:30 488675963633769261467693849486036510107332864779998081:36:31 488675963633769261467693849486036510107332864779998082:36:31 1532495540865888858358347027150309183618739122183602175:36:31 1532495540865888858358347027150309183618739122183602176:36:32 1532495540865888858358347027150309183618739122183602177:36:32 4639827510633868057472281267762039413677160359145495680:36:32 4639827510633868057472281267762039413677160359145495681:36:33 4639827510633868057472281267762039413677160359145495682:36:33 13590674574606120109194642379514771021138340847462383615:36:33 13590674574606120109194642379514771021138340847462383616:36:34 13590674574606120109194642379514771021138340847462383617:36:34 38587762477395204358312525169472792185842990875244140624:36:34 38587762477395204358312525169472792185842990875244140625:36:35 38587762477395204358312525169472792185842990875244140626:36:35 106387358923716524807713475752456393740167855629859291135:36:35 106387358923716524807713475752456393740167855629859291136:36:36 106387358923716524807713475752456393740167855629859291137:36:36 285273917723723876056171083405292782327767461712708093040:36:36 285273917723723876056171083405292782327767461712708093041:36:37 285273917723723876056171083405292782327767461712708093042:36:37 745091275609414115000297266520861342877761335755135778815:36:37 745091275609414115000297266520861342877761335755135778816:36:38 745091275609414115000297266520861342877761335755135778817:36:38 1898129561558205508181011968996258533188221399875192046560:36:38 1898129561558205508181011968996258533188221399875192046561:36:39 1898129561558205508181011968996258533188221399875192046562:36:39 4722366482869645213695999999999999999999999999999999999999:36:39 4722366482869645213696000000000000000000000000000000000000:36:40 4722366482869645213696000000000000000000000000000000000001:36:40 11487323243342943712727117998313670374759563626306467569440:36:40 11487323243342943712727117998313670374759563626306467569441:36:41 11487323243342943712727117998313670374759563626306467569442:36:41 27351078395457093635779121514268739090397938600214219718655:36:41 27351078395457093635779121514268739090397938600214219718656:36:42 27351078395457093635779121514268739090397938600214219718657:36:42 63806423321775344604618774305037646254726223988233042609200:36:42 63806423321775344604618774305037646254726223988233042609201:36:43 63806423321775344604618774305037646254726223988233042609202:36:43 145981006444085428363422934666294983725976964581228078432255:36:43 145981006444085428363422934666294983725976964581228078432256:36:44 145981006444085428363422934666294983725976964581228078432257:36:44 327831360408733226531187361612285036244429647922515869140624:36:44 327831360408733226531187361612285036244429647922515869140625:36:45 327831360408733226531187361612285036244429647922515869140626:36:45 723239172370805798502534806509671239222321542042848902250495:36:45 723239172370805798502534806509671239222321542042848902250496:36:46 723239172370805798502534806509671239222321542042848902250497:36:46 1568638556854706336108974223356857608957236560013645822451520:36:46 1568638556854706336108974223356857608957236560013645822451521:36:47 1568638556854706336108974223356857608957236560013645822451522:36:47 3347222217424758138359922538214353220668382566034579795214335:36:47 3347222217424758138359922538214353220668382566034579795214336:36:48 3347222217424758138359922538214353220668382566034579795214337:36:48 7031676478883553279994550741476882515263791803223057265323200:36:48 7031676478883553279994550741476882515263791803223057265323201:36:49 7031676478883553279994550741476882515263791803223057265323202:36:49 14551915228366851806640624999999999999999999999999999999999999:36:49 14551915228366851806640625000000000000000000000000000000000000:36:50 14551915228366851806640625000000000000000000000000000000000001:36:50 29684267701169363412348271021037854925839520784208679050326800:36:50 29684267701169363412348271021037854925839520784208679050326801:36:51 29684267701169363412348271021037854925839520784208679050326802:36:51 59720078628458064562952815512525677808980550940333281573339135:36:51 59720078628458064562952815512525677808980550940333281573339136:36:52 59720078628458064562952815512525677808980550940333281573339137:36:52 118558120445975157028044470669508269904542112710719750776396720:36:52 118558120445975157028044470669508269904542112710719750776396721:36:53 118558120445975157028044470669508269904542112710719750776396722:36:53 232367482936623516730287712543386283362359123728764547834576895:36:53 232367482936623516730287712543386283362359123728764547834576896:36:54 232367482936623516730287712543386283362359123728764547834576897:36:54 449838706595920268383246045223312879694276489317417144775390624:36:54 449838706595920268383246045223312879694276489317417144775390625:36:55 449838706595920268383246045223312879694276489317417144775390626:36:55 860535858789811246892456271351074605827337810381073285807865855:36:55 860535858789811246892456271351074605827337810381073285807865856:36:56 860535858789811246892456271351074605827337810381073285807865857:36:56 1627401845698053775058104286872950703258480415459115192991004000:36:56 1627401845698053775058104286872950703258480415459115192991004001:36:57 1627401845698053775058104286872950703258480415459115192991004002:36:57 3043741517681573408154032751732621616256793128331902261559033855:36:57 3043741517681573408154032751732621616256793128331902261559033856:36:58 3043741517681573408154032751732621616256793128331902261559033857:36:58 5632126739027588519658984775872141857619309476789431335641625840:36:58 5632126739027588519658984775872141857619309476789431335641625841:36:59 5632126739027588519658984775872141857619309476789431335641625842:36:59 10314424798490535546171949055999999999999999999999999999999999999:36:59 10314424798490535546171949056000000000000000000000000000000000000:36:60 10314424798490535546171949056000000000000000000000000000000000001:36:60 18701397461209715023927088008788055619800417991632621566284510160:36:60 18701397461209715023927088008788055619800417991632621566284510161:36:61 18701397461209715023927088008788055619800417991632621566284510162:36:61 33581556514373188787421088705325971513167489664257311885404143615:36:61 33581556514373188787421088705325971513167489664257311885404143616:36:62 33581556514373188787421088705325971513167489664257311885404143617:36:62 59739251981165789319143185091465521335682061421948187270857578240:36:62 59739251981165789319143185091465521335682061421948187270857578241:36:63 59739251981165789319143185091465521335682061421948187270857578242:36:63 105312291668557186697918027683670432318895095400549111254310977535:36:63 105312291668557186697918027683670432318895095400549111254310977536:36:64 105312291668557186697918027683670432318895095400549111254310977537:36:64 184026700338732148291739418068921897948035621084272861480712890624:36:64 184026700338732148291739418068921897948035621084272861480712890625:36:65 184026700338732148291739418068921897948035621084272861480712890626:36:65 318846518676056888589159943544822054272102701514840295289667977215:36:65 318846518676056888589159943544822054272102701514840295289667977216:36:66 318846518676056888589159943544822054272102701514840295289667977217:36:66 547889398733702676213614311297941818478464344374520135510515030480:36:66 547889398733702676213614311297941818478464344374520135510515030481:36:67 547889398733702676213614311297941818478464344374520135510515030482:36:67 933944045256191967207023006694904990155483178104829795534819557375:36:67 933944045256191967207023006694904990155483178104829795534819557376:36:68 933944045256191967207023006694904990155483178104829795534819557377:36:68 1579673259540862337584524598421131412416426926990516686194016714480:36:68 1579673259540862337584524598421131412416426926990516686194016714481:36:69 1579673259540862337584524598421131412416426926990516686194016714482:36:69 2651730845859653471779023381600999999999999999999999999999999999999:36:69 2651730845859653471779023381601000000000000000000000000000000000000:36:70 2651730845859653471779023381601000000000000000000000000000000000001:36:70 4418761423445010359012517479030513507821439762288727229544623559520:36:70 4418761423445010359012517479030513507821439762288727229544623559521:36:71 4418761423445010359012517479030513507821439762288727229544623559522:36:71 7310883636562819725182433070324627244481920983691122184173803012095:36:71 7310883636562819725182433070324627244481920983691122184173803012096:36:72 7310883636562819725182433070324627244481920983691122184173803012097:36:72 12012211336350227316446820100278887925603925639507433655692782073760:36:72 12012211336350227316446820100278887925603925639507433655692782073761:36:73 12012211336350227316446820100278887925603925639507433655692782073762:36:73 19603874352403020975929796195305933014441728011984214515289922994175:36:73 19603874352403020975929796195305933014441728011984214515289922994176:36:74 19603874352403020975929796195305933014441728011984214515289922994177:36:74 31783775325669125591350667493772963467790759750641882419586181640624:36:74 31783775325669125591350667493772963467790759750641882419586181640625:36:75 31783775325669125591350667493772963467790759750641882419586181640626:36:75 51202282580437697498352956639764722710570039404185338144867353624575:36:75 51202282580437697498352956639764722710570039404185338144867353624576:36:76 51202282580437697498352956639764722710570039404185338144867353624577:36:76 81972108497218392165990581575745428677907674133674294679835393010960:36:76 81972108497218392165990581575745428677907674133674294679835393010961:36:77 81972108497218392165990581575745428677907674133674294679835393010962:36:77 130438470247412983329352109680375941542469464397940613147180868304895:36:77 130438470247412983329352109680375941542469464397940613147180868304896:36:78 130438470247412983329352109680375941542469464397940613147180868304897:36:78 206336132715709669990485567530001552309415935666586885734738159549120:36:78 206336132715709669990485567530001552309415935666586885734738159549121:36:79 206336132715709669990485567530001552309415935666586885734738159549122:36:79 324518553658426726783156020576255999999999999999999999999999999999999:36:79 324518553658426726783156020576256000000000000000000000000000000000000:36:80 324518553658426726783156020576256000000000000000000000000000000000001:36:80 507528786056415600719754159741696356908742250191663887263627442114880:36:80 507528786056415600719754159741696356908742250191663887263627442114881:36:81 507528786056415600719754159741696356908742250191663887263627442114882:36:81 789402842379817487336508652401443158549062234211479095744539264024575:36:81 789402842379817487336508652401443158549062234211479095744539264024576:36:82 789402842379817487336508652401443158549062234211479095744539264024577:36:82 1221268978022589508833760255513684608154133797863046939086649799003280:36:82 1221268978022589508833760255513684608154133797863046939086649799003281:36:83 1221268978022589508833760255513684608154133797863046939086649799003282:36:83 1879551795501125954190096998134307707974654942619777476572573457186815:36:83 1879551795501125954190096998134307707974654942619777476572573457186816:36:84 1879551795501125954190096998134307707974654942619777476572573457186817:36:84 2877937285025676608204166434858680719201774350949563086032867431640624:36:84 2877937285025676608204166434858680719201774350949563086032867431640625:36:85 2877937285025676608204166434858680719201774350949563086032867431640626:36:85 4384744023068108635775482979003869099405856279408505709329484859047935:36:85 4384744023068108635775482979003869099405856279408505709329484859047936:36:86 4384744023068108635775482979003869099405856279408505709329484859047937:36:86 6648031893342709550418932191213759054589511330724808768686385672625440:36:86 6648031893342709550418932191213759054589511330724808768686385672625441:36:87 6648031893342709550418932191213759054589511330724808768686385672625442:36:87 10031738376232194679216836912129306057470772616411598918135399543996415:36:87 10031738376232194679216836912129306057470772616411598918135399543996416:36:88 10031738376232194679216836912129306057470772616411598918135399543996417:36:88 15067466661578195724088403821109198918255739721817916514744422568289760:36:88 15067466661578195724088403821109198918255739721817916514744422568289761:36:89 15067466661578195724088403821109198918255739721817916514744422568289762:36:89 22528399544939174411840147874772640999999999999999999999999999999999999:36:89 22528399544939174411840147874772641000000000000000000000000000000000000:36:90 22528399544939174411840147874772641000000000000000000000000000000000001:36:90 33534367819757686279817242413781838303049227999006876426270511500016240:36:90 33534367819757686279817242413781838303049227999006876426270511500016241:36:91 33534367819757686279817242413781838303049227999006876426270511500016242:36:91 49700617480299483035768844272971614082746615940325201053366097916461055:36:91 49700617480299483035768844272971614082746615940325201053366097916461056:36:92 49700617480299483035768844272971614082746615940325201053366097916461057:36:92 73347640540020202627270509203075830775693082438443643762466723438686800:36:92 73347640540020202627270509203075830775693082438443643762466723438686801:36:93 73347640540020202627270509203075830775693082438443643762466723438686802:36:93 107796020814969605396352450902795244284801403004706401938500883847315455:36:93 107796020814969605396352450902795244284801403004706401938500883847315456:36:94 107796020814969605396352450902795244284801403004706401938500883847315457:36:94 157779214788227055699105409939347423136955058449530042707920074462890624:36:94 157779214788227055699105409939347423136955058449530042707920074462890625:36:95 157779214788227055699105409939347423136955058449530042707920074462890626:36:95 230019359300543000719451366059583317129007590117361290008767206885687295:36:95 230019359300543000719451366059583317129007590117361290008767206885687296:36:96 230019359300543000719451366059583317129007590117361290008767206885687297:36:96 334027661875095082935878165689897695724025886105865253311336914562753920:36:96 334027661875095082935878165689897695724025886105865253311336914562753921:36:97 334027661875095082935878165689897695724025886105865253311336914562753922:36:97 483213128205716734877602023885692178289475305724734373563173490640551935:36:97 483213128205716734877602023885692178289475305724734373563173490640551936:36:98 483213128205716734877602023885692178289475305724734373563173490640551937:36:98 696413218049573736974338045401325591041578734971884090576027963366296400:36:98 696413218049573736974338045401325591041578734971884090576027963366296401:36:99 696413218049573736974338045401325591041578734971884090576027963366296402:36:99 0:37:0 1:37:1 2:37:1 137438953471:37:1 137438953472:37:2 137438953473:37:2 450283905890997362:37:2 450283905890997363:37:3 450283905890997364:37:3 18889465931478580854783:37:3 18889465931478580854784:37:4 18889465931478580854785:37:4 72759576141834259033203124:37:4 72759576141834259033203125:37:5 72759576141834259033203126:37:5 61886548790943213277031694335:37:5 61886548790943213277031694336:37:6 61886548790943213277031694337:37:6 18562115921017574302453163671206:37:6 18562115921017574302453163671207:37:7 18562115921017574302453163671208:37:7 2596148429267413814265248164610047:37:7 2596148429267413814265248164610048:37:8 2596148429267413814265248164610049:37:8 202755595904452569706561330872953768:37:8 202755595904452569706561330872953769:37:9 202755595904452569706561330872953770:37:9 340039485861577398992406882305761986970:37:10 340039485861577398992406882305761986971:37:11 340039485861577398992406882305761986972:37:11 8505622499821102144576131684114829934591:37:11 8505622499821102144576131684114829934592:37:12 8505622499821102144576131684114829934593:37:12 164400841185494513395503358052498933338332:37:12 164400841185494513395503358052498933338333:37:13 164400841185494513395503358052498933338334:37:13 2551157786410604821449163217266219579080703:37:13 2551157786410604821449163217266219579080704:37:14 2551157786410604821449163217266219579080705:37:14 32762466136118554495624266564846038818359374:37:14 32762466136118554495624266564846038818359375:37:15 32762466136118554495624266564846038818359376:37:15 356811923176489970264571492362373784095686655:37:15 356811923176489970264571492362373784095686656:37:16 356811923176489970264571492362373784095686657:37:16 3362095853201812742282475234995233875224247376:37:16 3362095853201812742282475234995233875224247377:37:17 3362095853201812742282475234995233875224247378:37:17 27866516911699690485530919446962290200798035967:37:17 27866516911699690485530919446962290200798035968:37:18 27866516911699690485530919446962290200798035969:37:18 206007596521214410095208558252435839890349094338:37:18 206007596521214410095208558252435839890349094339:37:19 206007596521214410095208558252435839890349094340:37:19 1374389534719999999999999999999999999999999999999:37:19 1374389534720000000000000000000000000000000000000:37:20 1374389534720000000000000000000000000000000000001:37:20 8358222058517261267863236597617557285387836027140:37:20 8358222058517261267863236597617557285387836027141:37:21 8358222058517261267863236597617557285387836027142:37:21 46734671075972137972644189178514201804813539213311:37:21 46734671075972137972644189178514201804813539213312:37:22 46734671075972137972644189178514201804813539213313:37:22 242063847902005849254176436075394136454464685331702:37:22 242063847902005849254176436075394136454464685331703:37:23 242063847902005849254176436075394136454464685331704:37:23 1169003855003308785972158379694803112885582691303423:37:23 1169003855003308785972158379694803112885582691303424:37:24 1169003855003308785972158379694803112885582691303425:37:24 5293955920339377119177015629247762262821197509765624:37:24 5293955920339377119177015629247762262821197509765625:37:25 5293955920339377119177015629247762262821197509765626:37:25 22595079562450841747875866761397157432416778821042175:37:25 22595079562450841747875866761397157432416778821042176:37:26 22595079562450841747875866761397157432416778821042177:37:26 91297581665113611259115979754590511595360241199911146:37:26 91297581665113611259115979754590511595360241199911147:37:27 91297581665113611259115979754590511595360241199911148:37:27 350628456306217629942530411031185779766608301589004287:37:27 350628456306217629942530411031185779766608301589004288:37:28 350628456306217629942530411031185779766608301589004289:37:28 1284475787728524720826927656893473276744000042113841708:37:28 1284475787728524720826927656893473276744000042113841709:37:29 1284475787728524720826927656893473276744000042113841710:37:29 4502839058909973629999999999999999999999999999999999999:37:29 4502839058909973630000000000000000000000000000000000000:37:30 4502839058909973630000000000000000000000000000000000001:37:30 15148954872646847105498509334067131813327318808179940510:37:30 15148954872646847105498509334067131813327318808179940511:37:31 15148954872646847105498509334067131813327318808179940512:37:31 49039857307708443467467104868809893875799651909875269631:37:31 49039857307708443467467104868809893875799651909875269632:37:32 49039857307708443467467104868809893875799651909875269633:37:32 153114307850917645896585281836147300651346291851801357472:37:32 153114307850917645896585281836147300651346291851801357473:37:33 153114307850917645896585281836147300651346291851801357474:37:33 462082935536608083712617840903502214718703588813721042943:37:33 462082935536608083712617840903502214718703588813721042944:37:34 462082935536608083712617840903502214718703588813721042945:37:34 1350571686708832152540938380931547726504504680633544921874:37:34 1350571686708832152540938380931547726504504680633544921875:37:35 1350571686708832152540938380931547726504504680633544921876:37:35 3829944921253794893077685127088430174646042802674934480895:37:35 3829944921253794893077685127088430174646042802674934480896:37:36 3829944921253794893077685127088430174646042802674934480897:37:36 10555134955777783414078330085995832946127396083370199442516:37:36 10555134955777783414078330085995832946127396083370199442517:37:37 10555134955777783414078330085995832946127396083370199442518:37:37 28313468473157736370011296127792731029354930758695159595007:37:37 28313468473157736370011296127792731029354930758695159595008:37:38 28313468473157736370011296127792731029354930758695159595009:37:38 74027052900770014819059466790854082794340634595132489815878:37:38 74027052900770014819059466790854082794340634595132489815879:37:39 74027052900770014819059466790854082794340634595132489815880:37:39 188894659314785808547839999999999999999999999999999999999999:37:39 188894659314785808547840000000000000000000000000000000000000:37:40 188894659314785808547840000000000000000000000000000000000001:37:40 470980252977060692221811837930860485365142108678565170347080:37:40 470980252977060692221811837930860485365142108678565170347081:37:41 470980252977060692221811837930860485365142108678565170347082:37:41 1148745292609197932702723103599287041796713421208997228183551:37:41 1148745292609197932702723103599287041796713421208997228183552:37:42 1148745292609197932702723103599287041796713421208997228183553:37:42 2743676202836339817998607295116618788953227631494020832195642:37:42 2743676202836339817998607295116618788953227631494020832195643:37:43 2743676202836339817998607295116618788953227631494020832195644:37:43 6423164283539758847990609125316979283942986441574035451019263:37:43 6423164283539758847990609125316979283942986441574035451019264:37:44 6423164283539758847990609125316979283942986441574035451019265:37:44 14752411218392995193903431272552826630999334156513214111328124:37:44 14752411218392995193903431272552826630999334156513214111328125:37:45 14752411218392995193903431272552826630999334156513214111328126:37:45 33269001929057066731116601099444877004226790933971049503522815:37:45 33269001929057066731116601099444877004226790933971049503522816:37:46 33269001929057066731116601099444877004226790933971049503522817:37:46 73726012172171197797121788497772307620990118320641353655221486:37:46 73726012172171197797121788497772307620990118320641353655221487:37:47 73726012172171197797121788497772307620990118320641353655221488:37:47 160666666436388390641276281834288954592082363169659830170288127:37:47 160666666436388390641276281834288954592082363169659830170288128:37:48 160666666436388390641276281834288954592082363169659830170288129:37:48 344552147465294110719732986332367243247925798357929806000836848:37:48 344552147465294110719732986332367243247925798357929806000836849:37:49 344552147465294110719732986332367243247925798357929806000836850:37:49 727595761418342590332031249999999999999999999999999999999999999:37:49 727595761418342590332031250000000000000000000000000000000000000:37:50 727595761418342590332031250000000000000000000000000000000000001:37:50 1513897652759637534029761822072930601217815559994642631566666850:37:50 1513897652759637534029761822072930601217815559994642631566666851:37:51 1513897652759637534029761822072930601217815559994642631566666852:37:51 3105444088679819357273546406651335246066988648897330641813635071:37:51 3105444088679819357273546406651335246066988648897330641813635072:37:52 3105444088679819357273546406651335246066988648897330641813635073:37:52 6283580383636683322486356945483938304940731973668146791149026212:37:52 6283580383636683322486356945483938304940731973668146791149026213:37:53 6283580383636683322486356945483938304940731973668146791149026214:37:53 12547844078577669903435536477342859301567392681353285583067152383:37:53 12547844078577669903435536477342859301567392681353285583067152384:37:54 12547844078577669903435536477342859301567392681353285583067152385:37:54 24741128862775614761078532487282208383185206912457942962646484374:37:54 24741128862775614761078532487282208383185206912457942962646484375:37:55 24741128862775614761078532487282208383185206912457942962646484376:37:55 48190008092229429825977551195660177926330917381340104005240487935:37:55 48190008092229429825977551195660177926330917381340104005240487936:37:56 48190008092229429825977551195660177926330917381340104005240487937:37:56 92761905204789065178311944351758190085733383681169566000487228056:37:56 92761905204789065178311944351758190085733383681169566000487228057:37:57 92761905204789065178311944351758190085733383681169566000487228058:37:57 176537008025531257672933899600492053742894001443250331170423963647:37:57 176537008025531257672933899600492053742894001443250331170423963648:37:58 176537008025531257672933899600492053742894001443250331170423963649:37:58 332295477602627722659880101776456369599539259130576448802855924618:37:58 332295477602627722659880101776456369599539259130576448802855924619:37:59 332295477602627722659880101776456369599539259130576448802855924620:37:59 618865487909432132770316943359999999999999999999999999999999999999:37:59 618865487909432132770316943360000000000000000000000000000000000000:37:60 618865487909432132770316943360000000000000000000000000000000000001:37:60 1140785245133792616459552368536071392807825497489589915543355119820:37:60 1140785245133792616459552368536071392807825497489589915543355119821:37:61 1140785245133792616459552368536071392807825497489589915543355119822:37:61 2082056503891137704820107499730210233816384359183953336895056904191:37:61 2082056503891137704820107499730210233816384359183953336895056904192:37:62 2082056503891137704820107499730210233816384359183953336895056904193:37:62 3763572874813444727106020660762327844147969869582735798064027429182:37:62 3763572874813444727106020660762327844147969869582735798064027429183:37:63 3763572874813444727106020660762327844147969869582735798064027429184:37:63 6739986666787659948666753771754907668409286105635143120275902562303:37:63 6739986666787659948666753771754907668409286105635143120275902562304:37:64 6739986666787659948666753771754907668409286105635143120275902562305:37:64 11961735522017589638963062174479923366622315370477735996246337890624:37:64 11961735522017589638963062174479923366622315370477735996246337890625:37:65 11961735522017589638963062174479923366622315370477735996246337890626:37:65 21043870232619754646884556273958255581958778299979459489118086496255:37:65 21043870232619754646884556273958255581958778299979459489118086496256:37:66 21043870232619754646884556273958255581958778299979459489118086496257:37:66 36708589715158079306312158856962101838057111073092849079204507042226:37:66 36708589715158079306312158856962101838057111073092849079204507042227:37:67 36708589715158079306312158856962101838057111073092849079204507042228:37:67 63508195077421053770077564455253539330572856111128426096367729901567:37:67 63508195077421053770077564455253539330572856111128426096367729901568:37:68 63508195077421053770077564455253539330572856111128426096367729901569:37:68 108997454908319501293332197291058067456733457962345651347387153299188:37:68 108997454908319501293332197291058067456733457962345651347387153299189:37:69 108997454908319501293332197291058067456733457962345651347387153299190:37:69 185621159210175743024531636712069999999999999999999999999999999999999:37:69 185621159210175743024531636712070000000000000000000000000000000000000:37:70 185621159210175743024531636712070000000000000000000000000000000000001:37:70 313732061064595735489888741011166459055322223122499633297668272725990:37:70 313732061064595735489888741011166459055322223122499633297668272725991:37:71 313732061064595735489888741011166459055322223122499633297668272725992:37:71 526383621832523020213135181063373161602698310825760797260513816870911:37:71 526383621832523020213135181063373161602698310825760797260513816870912:37:72 526383621832523020213135181063373161602698310825760797260513816870913:37:72 876891427553566594100617867320358818569086571684042656865573091384552:37:72 876891427553566594100617867320358818569086571684042656865573091384553:37:73 876891427553566594100617867320358818569086571684042656865573091384554:37:73 1450686702077823552218804918452639043068687872886831874131454301569023:37:73 1450686702077823552218804918452639043068687872886831874131454301569024:37:74 1450686702077823552218804918452639043068687872886831874131454301569025:37:74 2383783149425184419351300062032972260084306981298141181468963623046874:37:74 2383783149425184419351300062032972260084306981298141181468963623046875:37:75 2383783149425184419351300062032972260084306981298141181468963623046876:37:75 3891373476113265009874824704622118926003322994718085699009918875467775:37:75 3891373476113265009874824704622118926003322994718085699009918875467776:37:76 3891373476113265009874824704622118926003322994718085699009918875467777:37:76 6311852354285816196781274781332398008198890908292920690347325261843996:37:76 6311852354285816196781274781332398008198890908292920690347325261843997:37:77 6311852354285816196781274781332398008198890908292920690347325261843998:37:77 10174200679298212699689464555069323440312618223039367825480107727781887:37:77 10174200679298212699689464555069323440312618223039367825480107727781888:37:78 10174200679298212699689464555069323440312618223039367825480107727781889:37:78 16300554484541063929248359834870122632443858917660363973044314604380558:37:78 16300554484541063929248359834870122632443858917660363973044314604380559:37:79 16300554484541063929248359834870122632443858917660363973044314604380560:37:79 25961484292674138142652481646100479999999999999999999999999999999999999:37:79 25961484292674138142652481646100480000000000000000000000000000000000000:37:80 25961484292674138142652481646100480000000000000000000000000000000000001:37:80 41109831670569663658300086939077404909608122265524774868353822811305360:37:80 41109831670569663658300086939077404909608122265524774868353822811305361:37:81 41109831670569663658300086939077404909608122265524774868353822811305362:37:81 64731033075145033961593709496918339001023103205341285851052219650015231:37:81 64731033075145033961593709496918339001023103205341285851052219650015232:37:82 64731033075145033961593709496918339001023103205341285851052219650015233:37:82 101365325175874929233202101207635822476793105222632895944191933317272322:37:82 101365325175874929233202101207635822476793105222632895944191933317272323:37:83 101365325175874929233202101207635822476793105222632895944191933317272324:37:83 157882350822094580151968147843281847469871015180061308032096170403692543:37:83 157882350822094580151968147843281847469871015180061308032096170403692544:37:84 157882350822094580151968147843281847469871015180061308032096170403692545:37:84 244624669227182511697354146962987861132150819830712862312793731689453124:37:84 244624669227182511697354146962987861132150819830712862312793731689453125:37:85 244624669227182511697354146962987861132150819830712862312793731689453126:37:85 377087985983857342676691536194332742548903640029131491002335697878122495:37:85 377087985983857342676691536194332742548903640029131491002335697878122496:37:86 377087985983857342676691536194332742548903640029131491002335697878122497:37:86 578378774720815730886447100635597037749287485773058362875715553518413366:37:86 578378774720815730886447100635597037749287485773058362875715553518413367:37:87 578378774720815730886447100635597037749287485773058362875715553518413368:37:87 882792977108433131771081648267378933057427990244220704795915159871684607:37:87 882792977108433131771081648267378933057427990244220704795915159871684608:37:88 882792977108433131771081648267378933057427990244220704795915159871684609:37:88 1341004532880459419443867940078718703724760835241794569812253608577788728:37:88 1341004532880459419443867940078718703724760835241794569812253608577788729:37:89 1341004532880459419443867940078718703724760835241794569812253608577788730:37:89 2027555959044525697065613308729537689999999999999999999999999999999999999:37:89 2027555959044525697065613308729537690000000000000000000000000000000000000:37:90 2027555959044525697065613308729537690000000000000000000000000000000000001:37:90 3051627471597949451463369059654147285577479747909625754790616546501477930:37:90 3051627471597949451463369059654147285577479747909625754790616546501477931:37:91 3051627471597949451463369059654147285577479747909625754790616546501477932:37:91 4572456808187552439290733673113388495612688666509918496909681008314417151:37:91 4572456808187552439290733673113388495612688666509918496909681008314417152:37:92 4572456808187552439290733673113388495612688666509918496909681008314417153:37:92 6821330570221878844336157355886052262139456666775258869909405279797872492:37:92 6821330570221878844336157355886052262139456666775258869909405279797872493:37:93 6821330570221878844336157355886052262139456666775258869909405279797872494:37:93 10132825956607142907257130384862752962771331882442401782219083081647652863:37:93 10132825956607142907257130384862752962771331882442401782219083081647652864:37:94 10132825956607142907257130384862752962771331882442401782219083081647652865:37:94 14989025404881570291415013944238005198010730552705354057252407073974609374:37:94 14989025404881570291415013944238005198010730552705354057252407073974609375:37:95 14989025404881570291415013944238005198010730552705354057252407073974609376:37:95 22081858492852128069067331141719998444384728651266683840841651861025980415:37:95 22081858492852128069067331141719998444384728651266683840841651861025980416:37:96 22081858492852128069067331141719998444384728651266683840841651861025980417:37:96 32400683201884223044780182071920076485230510952268929571199680712587130336:37:96 32400683201884223044780182071920076485230510952268929571199680712587130337:37:97 32400683201884223044780182071920076485230510952268929571199680712587130338:37:97 47354886564160240018004998340797833472368579961023968609191002082774089727:37:97 47354886564160240018004998340797833472368579961023968609191002082774089728:37:98 47354886564160240018004998340797833472368579961023968609191002082774089729:37:98 68944908586907799960459466494731233513116294762216524967026768373263343698:37:98 68944908586907799960459466494731233513116294762216524967026768373263343699:37:99 68944908586907799960459466494731233513116294762216524967026768373263343700:37:99 0:38:0 1:38:1 2:38:1 274877906943:38:1 274877906944:38:2 274877906945:38:2 1350851717672992088:38:2 1350851717672992089:38:3 1350851717672992090:38:3 75557863725914323419135:38:3 75557863725914323419136:38:4 75557863725914323419137:38:4 363797880709171295166015624:38:4 363797880709171295166015625:38:5 363797880709171295166015626:38:5 371319292745659279662190166015:38:5 371319292745659279662190166016:38:6 371319292745659279662190166017:38:6 129934811447123020117172145698448:38:6 129934811447123020117172145698449:38:7 129934811447123020117172145698450:38:7 20769187434139310514121985316880383:38:7 20769187434139310514121985316880384:38:8 20769187434139310514121985316880385:38:8 1824800363140073127359051977856583920:38:8 1824800363140073127359051977856583921:38:9 1824800363140073127359051977856583922:38:9 3740434344477351388916475705363381856680:38:10 3740434344477351388916475705363381856681:38:11 3740434344477351388916475705363381856682:38:11 102067469997853225734913580209377959215103:38:11 102067469997853225734913580209377959215104:38:12 102067469997853225734913580209377959215105:38:12 2137210935411428674141543654682486133398328:38:12 2137210935411428674141543654682486133398329:38:13 2137210935411428674141543654682486133398330:38:13 35716209009748467500288285041727074107129855:38:13 35716209009748467500288285041727074107129856:38:14 35716209009748467500288285041727074107129857:38:14 491436992041778317434363998472690582275390624:38:14 491436992041778317434363998472690582275390625:38:15 491436992041778317434363998472690582275390626:38:15 5708990770823839524233143877797980545530986495:38:15 5708990770823839524233143877797980545530986496:38:16 5708990770823839524233143877797980545530986497:38:16 57155629504430816618802078994918975878812205408:38:16 57155629504430816618802078994918975878812205409:38:17 57155629504430816618802078994918975878812205410:38:17 501597304410594428739556550045321223614364647423:38:17 501597304410594428739556550045321223614364647424:38:18 501597304410594428739556550045321223614364647425:38:18 3914144333903073791808962606796280957916632792440:38:18 3914144333903073791808962606796280957916632792441:38:19 3914144333903073791808962606796280957916632792442:38:19 27487790694399999999999999999999999999999999999999:38:19 27487790694400000000000000000000000000000000000000:38:20 27487790694400000000000000000000000000000000000001:38:20 175522663228862486625127968549968702993144556569960:38:20 175522663228862486625127968549968702993144556569961:38:21 175522663228862486625127968549968702993144556569962:38:21 1028162763671387035398172161927312439705897862692863:38:21 1028162763671387035398172161927312439705897862692864:38:22 1028162763671387035398172161927312439705897862692865:38:22 5567468501746134532846058029734065138452687762629168:38:22 5567468501746134532846058029734065138452687762629169:38:23 5567468501746134532846058029734065138452687762629170:38:23 28056092520079410863331801112675274709253984591282175:38:23 28056092520079410863331801112675274709253984591282176:38:24 28056092520079410863331801112675274709253984591282177:38:24 132348898008484427979425390731194056570529937744140624:38:24 132348898008484427979425390731194056570529937744140625:38:25 132348898008484427979425390731194056570529937744140626:38:25 587472068623721885444772535796326093242836249347096575:38:25 587472068623721885444772535796326093242836249347096576:38:26 587472068623721885444772535796326093242836249347096577:38:26 2465034704958067503996131453373943813074726512397600968:38:26 2465034704958067503996131453373943813074726512397600969:38:27 2465034704958067503996131453373943813074726512397600970:38:27 9817596776574093638390851508873201833465032444492120063:38:27 9817596776574093638390851508873201833465032444492120064:38:28 9817596776574093638390851508873201833465032444492120065:38:28 37249797844127216903980902049910725025576001221301409560:38:28 37249797844127216903980902049910725025576001221301409561:38:29 37249797844127216903980902049910725025576001221301409562:38:29 135085171767299208899999999999999999999999999999999999999:38:29 135085171767299208900000000000000000000000000000000000000:38:30 135085171767299208900000000000000000000000000000000000001:38:30 469617601052052260270453789356081086213146883053578155840:38:30 469617601052052260270453789356081086213146883053578155841:38:31 469617601052052260270453789356081086213146883053578155842:38:31 1569275433846670190958947355801916604025588861116008628223:38:31 1569275433846670190958947355801916604025588861116008628224:38:32 1569275433846670190958947355801916604025588861116008628225:38:32 5052772159080282314587314300592860921494427631109444796608:38:32 5052772159080282314587314300592860921494427631109444796609:38:33 5052772159080282314587314300592860921494427631109444796610:38:33 15710819808244674846229006590719075300435922019666515460095:38:33 15710819808244674846229006590719075300435922019666515460096:38:34 15710819808244674846229006590719075300435922019666515460097:38:34 47270009034809125338932843332604170427657663822174072265624:38:34 47270009034809125338932843332604170427657663822174072265625:38:35 47270009034809125338932843332604170427657663822174072265626:38:35 137878017165136616150796664575183486287257540896297641312255:38:35 137878017165136616150796664575183486287257540896297641312256:38:36 137878017165136616150796664575183486287257540896297641312257:38:36 390539993363777986320898213181845819006713655084697379373128:38:36 390539993363777986320898213181845819006713655084697379373129:38:37 390539993363777986320898213181845819006713655084697379373130:38:37 1075911801979993982060429252856123779115487368830416064610303:38:37 1075911801979993982060429252856123779115487368830416064610304:38:38 1075911801979993982060429252856123779115487368830416064610305:38:38 2887055063130030577943319204843309228979284749210167102819280:38:38 2887055063130030577943319204843309228979284749210167102819281:38:39 2887055063130030577943319204843309228979284749210167102819282:38:39 7555786372591432341913599999999999999999999999999999999999999:38:39 7555786372591432341913600000000000000000000000000000000000000:38:40 7555786372591432341913600000000000000000000000000000000000001:38:40 19310190372059488381094285355165279899970826455821171984230320:38:40 19310190372059488381094285355165279899970826455821171984230321:38:41 19310190372059488381094285355165279899970826455821171984230322:38:41 48247302289586313173514370351170055755461963690777883583709183:38:41 48247302289586313173514370351170055755461963690777883583709184:38:42 48247302289586313173514370351170055755461963690777883583709185:38:42 117978076721962612173940113690014607924988788154242895784412648:38:42 117978076721962612173940113690014607924988788154242895784412649:38:43 117978076721962612173940113690014607924988788154242895784412650:38:43 282619228475749389311586801513947088493491403429257559844847615:38:43 282619228475749389311586801513947088493491403429257559844847616:38:44 282619228475749389311586801513947088493491403429257559844847617:38:44 663858504827684783725654407264877198394970037043094635009765624:38:44 663858504827684783725654407264877198394970037043094635009765625:38:45 663858504827684783725654407264877198394970037043094635009765626:38:45 1530374088736625069631363650574464342194432382962668277162049535:38:45 1530374088736625069631363650574464342194432382962668277162049536:38:46 1530374088736625069631363650574464342194432382962668277162049537:38:46 3465122572092046296464724059395298458186535561070143621795409888:38:46 3465122572092046296464724059395298458186535561070143621795409889:38:47 3465122572092046296464724059395298458186535561070143621795409890:38:47 7711999988946642750781261528045869820419953432143671848173830143:38:47 7711999988946642750781261528045869820419953432143671848173830144:38:48 7711999988946642750781261528045869820419953432143671848173830145:38:48 16883055225799411425266916330285994919148364119538560494041005600:38:48 16883055225799411425266916330285994919148364119538560494041005601:38:49 16883055225799411425266916330285994919148364119538560494041005602:38:49 36379788070917129516601562499999999999999999999999999999999999999:38:49 36379788070917129516601562500000000000000000000000000000000000000:38:50 36379788070917129516601562500000000000000000000000000000000000001:38:50 77208780290741514235517852925719460662108593559726774209900009400:38:50 77208780290741514235517852925719460662108593559726774209900009401:38:51 77208780290741514235517852925719460662108593559726774209900009402:38:51 161483092611350606578224413145869432795483409742661193374309023743:38:51 161483092611350606578224413145869432795483409742661193374309023744:38:52 161483092611350606578224413145869432795483409742661193374309023745:38:52 333029760332744216091776918110648730161858794604411779930898389288:38:52 333029760332744216091776918110648730161858794604411779930898389289:38:53 333029760332744216091776918110648730161858794604411779930898389290:38:53 677583580243194174785518969776514402284639204793077421485626228735:38:53 677583580243194174785518969776514402284639204793077421485626228736:38:54 677583580243194174785518969776514402284639204793077421485626228737:38:54 1360762087452658811859319286800521461075186380185186862945556640624:38:54 1360762087452658811859319286800521461075186380185186862945556640625:38:55 1360762087452658811859319286800521461075186380185186862945556640626:38:55 2698640453164848070254742866956969963874531373355045824293467324415:38:55 2698640453164848070254742866956969963874531373355045824293467324416:38:56 2698640453164848070254742866956969963874531373355045824293467324417:38:56 5287428596672976715163780828050216834886802869826665262027771999248:38:56 5287428596672976715163780828050216834886802869826665262027771999249:38:57 5287428596672976715163780828050216834886802869826665262027771999250:38:57 10239146465480812945030166176828539117087852083708519207884589891583:38:57 10239146465480812945030166176828539117087852083708519207884589891584:38:58 10239146465480812945030166176828539117087852083708519207884589891585:38:58 19605433178555035636932926004810925806372816288704010479368499552520:38:58 19605433178555035636932926004810925806372816288704010479368499552521:38:59 19605433178555035636932926004810925806372816288704010479368499552522:38:59 37131929274565927966219016601599999999999999999999999999999999999999:38:59 37131929274565927966219016601600000000000000000000000000000000000000:38:60 37131929274565927966219016601600000000000000000000000000000000000001:38:60 69587899953161349604032694480700354961277355346864984848144662309080:38:60 69587899953161349604032694480700354961277355346864984848144662309081:38:61 69587899953161349604032694480700354961277355346864984848144662309082:38:61 129087503241250537698846664983273034496615830269405106887493528059903:38:61 129087503241250537698846664983273034496615830269405106887493528059904:38:62 129087503241250537698846664983273034496615830269405106887493528059905:38:62 237105091113247017807679301628026654181322101783712355278033728038528:38:62 237105091113247017807679301628026654181322101783712355278033728038529:38:63 237105091113247017807679301628026654181322101783712355278033728038530:38:63 431359146674410236714672241392314090778194310760649159697657763987455:38:63 431359146674410236714672241392314090778194310760649159697657763987456:38:64 431359146674410236714672241392314090778194310760649159697657763987457:38:64 777512808931143326532599041341195018830450499081052839756011962890624:38:64 777512808931143326532599041341195018830450499081052839756011962890625:38:65 777512808931143326532599041341195018830450499081052839756011962890626:38:65 1388895435352903806694380714081244868409279367798644326281793708752895:38:65 1388895435352903806694380714081244868409279367798644326281793708752896:38:66 1388895435352903806694380714081244868409279367798644326281793708752897:38:66 2459475510915591313522914643416460823149826441897220888306701971829208:38:66 2459475510915591313522914643416460823149826441897220888306701971829209:38:67 2459475510915591313522914643416460823149826441897220888306701971829210:38:67 4318557265264631656365274382957240674478954215556732974553005633306623:38:67 4318557265264631656365274382957240674478954215556732974553005633306624:38:68 4318557265264631656365274382957240674478954215556732974553005633306625:38:68 7520824388674045589239921613083006654514608599401849942969713577644040:38:68 7520824388674045589239921613083006654514608599401849942969713577644041:38:69 7520824388674045589239921613083006654514608599401849942969713577644042:38:69 12993481144712302011717214569844899999999999999999999999999999999999999:38:69 12993481144712302011717214569844900000000000000000000000000000000000000:38:70 12993481144712302011717214569844900000000000000000000000000000000000001:38:70 22274976335586297219782100611792818592927877841697473964134447363545360:38:70 22274976335586297219782100611792818592927877841697473964134447363545361:38:71 22274976335586297219782100611792818592927877841697473964134447363545362:38:71 37899620771941657455345733036562867635394278379454777402756994814705663:38:71 37899620771941657455345733036562867635394278379454777402756994814705664:38:72 37899620771941657455345733036562867635394278379454777402756994814705665:38:72 64013074211410361369345104314386193755543319732935113951186835671072368:38:72 64013074211410361369345104314386193755543319732935113951186835671072369:38:73 64013074211410361369345104314386193755543319732935113951186835671072370:38:73 107350815953758942864191563965495289187082902593625558685727618316107775:38:73 107350815953758942864191563965495289187082902593625558685727618316107776:38:74 107350815953758942864191563965495289187082902593625558685727618316107777:38:74 178783736206888831451347504652472919506323023597360588610172271728515624:38:74 178783736206888831451347504652472919506323023597360588610172271728515625:38:75 178783736206888831451347504652472919506323023597360588610172271728515626:38:75 295744384184608140750486677551281038376252547598574513124753834535550975:38:75 295744384184608140750486677551281038376252547598574513124753834535550976:38:76 295744384184608140750486677551281038376252547598574513124753834535550977:38:76 486012631280007847152158158162594646631314599938554893156744045161987768:38:76 486012631280007847152158158162594646631314599938554893156744045161987769:38:77 486012631280007847152158158162594646631314599938554893156744045161987770:38:77 793587652985260590575778235295407228344384221397070690387448402766987263:38:77 793587652985260590575778235295407228344384221397070690387448402766987264:38:78 793587652985260590575778235295407228344384221397070690387448402766987265:38:78 1287743804278744050410620426954739687963064854495168753870500853746064160:38:78 1287743804278744050410620426954739687963064854495168753870500853746064161:38:79 1287743804278744050410620426954739687963064854495168753870500853746064162:38:79 2076918743413931051412198531688038399999999999999999999999999999999999999:38:79 2076918743413931051412198531688038400000000000000000000000000000000000000:38:80 2076918743413931051412198531688038400000000000000000000000000000000000001:38:80 3329896365316142756322307042065269797678257903507506764336659647715734240:38:80 3329896365316142756322307042065269797678257903507506764336659647715734241:38:81 3329896365316142756322307042065269797678257903507506764336659647715734242:38:81 5307944712161892784850684178747303798083894462837985439786282011301249023:38:81 5307944712161892784850684178747303798083894462837985439786282011301249024:38:82 5307944712161892784850684178747303798083894462837985439786282011301249025:38:82 8413321989597619126355774400233773265573827733478530363367930465333602808:38:82 8413321989597619126355774400233773265573827733478530363367930465333602809:38:83 8413321989597619126355774400233773265573827733478530363367930465333602810:38:83 13262117469055944732765324418835675187469165275125149874696078313910173695:38:83 13262117469055944732765324418835675187469165275125149874696078313910173696:38:84 13262117469055944732765324418835675187469165275125149874696078313910173697:38:84 20793096884310513494275102491853968196232819685610593296587467193603515624:38:84 20793096884310513494275102491853968196232819685610593296587467193603515625:38:85 20793096884310513494275102491853968196232819685610593296587467193603515626:38:85 32429566794611731470195472112712615859205713042505308226200870017518534655:38:85 32429566794611731470195472112712615859205713042505308226200870017518534656:38:86 32429566794611731470195472112712615859205713042505308226200870017518534657:38:86 50318953400710968587120897755296942284188011262256077570187253156101962928:38:86 50318953400710968587120897755296942284188011262256077570187253156101962929:38:87 50318953400710968587120897755296942284188011262256077570187253156101962930:38:87 77685781985542115595855185047529346109053663141491422022040534068708245503:38:87 77685781985542115595855185047529346109053663141491422022040534068708245504:38:88 77685781985542115595855185047529346109053663141491422022040534068708245505:38:88 119349403426360888330504246667005964631503714336519716713290571163423196880:38:88 119349403426360888330504246667005964631503714336519716713290571163423196881:38:89 119349403426360888330504246667005964631503714336519716713290571163423196882:38:89 182480036314007312735905197785658392099999999999999999999999999999999999999:38:89 182480036314007312735905197785658392100000000000000000000000000000000000000:38:90 182480036314007312735905197785658392100000000000000000000000000000000000001:38:90 277698099915413400083166584428527402987550657059775943685946105731634491720:38:90 277698099915413400083166584428527402987550657059775943685946105731634491721:38:91 277698099915413400083166584428527402987550657059775943685946105731634491722:38:91 420666026353254824414747497926431741596367357318912501715690652764926377983:38:91 420666026353254824414747497926431741596367357318912501715690652764926377984:38:92 420666026353254824414747497926431741596367357318912501715690652764926377985:38:92 634383743030634732523262634097402860378969470010099074901574691021202141848:38:92 634383743030634732523262634097402860378969470010099074901574691021202141849:38:93 634383743030634732523262634097402860378969470010099074901574691021202141850:38:93 952485639921071433282170256177098778500505196949585767528593809674879369215:38:93 952485639921071433282170256177098778500505196949585767528593809674879369216:38:94 952485639921071433282170256177098778500505196949585767528593809674879369217:38:94 1423957413463749177684426324702610493811019402507008635438978672027587890624:38:94 1423957413463749177684426324702610493811019402507008635438978672027587890625:38:95 1423957413463749177684426324702610493811019402507008635438978672027587890626:38:95 2119858415313804294630463789605119850660933950521601648720798578658494119935:38:95 2119858415313804294630463789605119850660933950521601648720798578658494119936:38:96 2119858415313804294630463789605119850660933950521601648720798578658494119937:38:96 3142866270582769635343677660976247419067359562370086168406369029120951642688:38:96 3142866270582769635343677660976247419067359562370086168406369029120951642689:38:97 3142866270582769635343677660976247419067359562370086168406369029120951642690:38:97 4640778883287703521764489837398187680292120836180348923700718204111860793343:38:97 4640778883287703521764489837398187680292120836180348923700718204111860793344:38:98 4640778883287703521764489837398187680292120836180348923700718204111860793345:38:98 6825545950103872196085487182978392117798513181459435971735650068953071026200:38:98 6825545950103872196085487182978392117798513181459435971735650068953071026201:38:99 6825545950103872196085487182978392117798513181459435971735650068953071026202:38:99 0:39:0 1:39:1 2:39:1 549755813887:39:1 549755813888:39:2 549755813889:39:2 4052555153018976266:39:2 4052555153018976267:39:3 4052555153018976268:39:3 302231454903657293676543:39:3 302231454903657293676544:39:4 302231454903657293676545:39:4 1818989403545856475830078124:39:4 1818989403545856475830078125:39:5 1818989403545856475830078126:39:5 2227915756473955677973140996095:39:5 2227915756473955677973140996096:39:6 2227915756473955677973140996097:39:6 909543680129861140820205019889142:39:6 909543680129861140820205019889143:39:7 909543680129861140820205019889144:39:7 166153499473114484112975882535043071:39:7 166153499473114484112975882535043072:39:8 166153499473114484112975882535043073:39:8 16423203268260658146231467800709255288:39:8 16423203268260658146231467800709255289:39:9 16423203268260658146231467800709255290:39:9 41144777789250865278081232758997200423490:39:10 41144777789250865278081232758997200423491:39:11 41144777789250865278081232758997200423492:39:11 1224809639974238708818962962512535510581247:39:11 1224809639974238708818962962512535510581248:39:12 1224809639974238708818962962512535510581249:39:12 27783742160348572763840067510872319734178276:39:12 27783742160348572763840067510872319734178277:39:13 27783742160348572763840067510872319734178278:39:13 500026926136478545004035990584179037499817983:39:13 500026926136478545004035990584179037499817984:39:14 500026926136478545004035990584179037499817985:39:14 7371554880626674761515459977090358734130859374:39:14 7371554880626674761515459977090358734130859375:39:15 7371554880626674761515459977090358734130859376:39:15 91343852333181432387730302044767688728495783935:39:15 91343852333181432387730302044767688728495783936:39:16 91343852333181432387730302044767688728495783937:39:16 971645701575323882519635342913622589939807491952:39:16 971645701575323882519635342913622589939807491953:39:17 971645701575323882519635342913622589939807491954:39:17 9028751479390699717312017900815782025058563653631:39:17 9028751479390699717312017900815782025058563653632:39:18 9028751479390699717312017900815782025058563653633:39:18 74368742344158402044370289529129338200416023056378:39:18 74368742344158402044370289529129338200416023056379:39:19 74368742344158402044370289529129338200416023056380:39:19 549755813887999999999999999999999999999999999999999:39:19 549755813888000000000000000000000000000000000000000:39:20 549755813888000000000000000000000000000000000000001:39:20 3685975927806112219127687339549342762856035687969180:39:20 3685975927806112219127687339549342762856035687969181:39:21 3685975927806112219127687339549342762856035687969182:39:21 22619580800770514778759787562400873673529752979243007:39:21 22619580800770514778759787562400873673529752979243008:39:22 22619580800770514778759787562400873673529752979243009:39:22 128051775540161094255459334683883498184411818540470886:39:22 128051775540161094255459334683883498184411818540470887:39:23 128051775540161094255459334683883498184411818540470888:39:23 673346220481905860719963226704206593022095630190772223:39:23 673346220481905860719963226704206593022095630190772224:39:24 673346220481905860719963226704206593022095630190772225:39:24 3308722450212110699485634768279851414263248443603515624:39:24 3308722450212110699485634768279851414263248443603515625:39:25 3308722450212110699485634768279851414263248443603515626:39:25 15274273784216769021564085930704478424313742483024510975:39:25 15274273784216769021564085930704478424313742483024510976:39:26 15274273784216769021564085930704478424313742483024510977:39:26 66555937033867822607895549241096482953017615834735226162:39:26 66555937033867822607895549241096482953017615834735226163:39:27 66555937033867822607895549241096482953017615834735226164:39:27 274892709744074621874943842248449651337020908445779361791:39:27 274892709744074621874943842248449651337020908445779361792:39:28 274892709744074621874943842248449651337020908445779361793:39:28 1080244137479689290215446159447411025741704035417740877268:39:28 1080244137479689290215446159447411025741704035417740877269:39:29 1080244137479689290215446159447411025741704035417740877270:39:29 4052555153018976266999999999999999999999999999999999999999:39:29 4052555153018976267000000000000000000000000000000000000000:39:30 4052555153018976267000000000000000000000000000000000000001:39:30 14558145632613620068384067470038513672607553374660922831070:39:30 14558145632613620068384067470038513672607553374660922831071:39:31 14558145632613620068384067470038513672607553374660922831072:39:31 50216813883093446110686315385661331328818843555712276103167:39:31 50216813883093446110686315385661331328818843555712276103168:39:32 50216813883093446110686315385661331328818843555712276103169:39:32 166741481249649316381381371919564410409316111826611678288096:39:32 166741481249649316381381371919564410409316111826611678288097:39:33 166741481249649316381381371919564410409316111826611678288098:39:33 534167873480318944771786224084448560214821348668661525643263:39:33 534167873480318944771786224084448560214821348668661525643264:39:34 534167873480318944771786224084448560214821348668661525643265:39:34 1654450316218319386862649516641145964968018233776092529296874:39:34 1654450316218319386862649516641145964968018233776092529296875:39:35 1654450316218319386862649516641145964968018233776092529296876:39:35 4963608617944918181428679924706605506341271472266715087241215:39:35 4963608617944918181428679924706605506341271472266715087241216:39:36 4963608617944918181428679924706605506341271472266715087241217:39:36 14449979754459785493873233887728295303248405238133803036805772:39:36 14449979754459785493873233887728295303248405238133803036805773:39:37 14449979754459785493873233887728295303248405238133803036805774:39:37 40884648475239771318296311608532703606388520015555810455191551:39:37 40884648475239771318296311608532703606388520015555810455191552:39:38 40884648475239771318296311608532703606388520015555810455191553:39:38 112595147462071192539789448988889059930192105219196517009951958:39:38 112595147462071192539789448988889059930192105219196517009951959:39:39 112595147462071192539789448988889059930192105219196517009951960:39:39 302231454903657293676543999999999999999999999999999999999999999:39:39 302231454903657293676544000000000000000000000000000000000000000:39:40 302231454903657293676544000000000000000000000000000000000000001:39:40 791717805254439023624865699561776475898803884688668051353443160:39:40 791717805254439023624865699561776475898803884688668051353443161:39:41 791717805254439023624865699561776475898803884688668051353443162:39:41 2026386696162625153287603554749142341729402475012671110515785727:39:41 2026386696162625153287603554749142341729402475012671110515785728:39:42 2026386696162625153287603554749142341729402475012671110515785729:39:42 5073057299044392323479424888670628140774517890632444518729743906:39:42 5073057299044392323479424888670628140774517890632444518729743907:39:43 5073057299044392323479424888670628140774517890632444518729743908:39:43 12435246052932973129709819266613671893713621750887332633173295103:39:43 12435246052932973129709819266613671893713621750887332633173295104:39:44 12435246052932973129709819266613671893713621750887332633173295105:39:44 29873632717245815267654448326919473927773651666939258575439453124:39:44 29873632717245815267654448326919473927773651666939258575439453125:39:45 29873632717245815267654448326919473927773651666939258575439453126:39:45 70397208081884753203042727926425359740943889616282740749454278655:39:45 70397208081884753203042727926425359740943889616282740749454278656:39:46 70397208081884753203042727926425359740943889616282740749454278657:39:46 162860760888326175933842030791579027534767171370296750224384264782:39:46 162860760888326175933842030791579027534767171370296750224384264783:39:47 162860760888326175933842030791579027534767171370296750224384264784:39:47 370175999469438852037500553346201751380157764742896248712343846911:39:47 370175999469438852037500553346201751380157764742896248712343846912:39:48 370175999469438852037500553346201751380157764742896248712343846913:39:48 827269706064171159838078900184013751038269841857389464208009274448:39:48 827269706064171159838078900184013751038269841857389464208009274449:39:49 827269706064171159838078900184013751038269841857389464208009274450:39:49 1818989403545856475830078124999999999999999999999999999999999999999:39:49 1818989403545856475830078125000000000000000000000000000000000000000:39:50 1818989403545856475830078125000000000000000000000000000000000000001:39:50 3937647794827817226011410499211692493767538271546065484704900479450:39:50 3937647794827817226011410499211692493767538271546065484704900479451:39:51 3937647794827817226011410499211692493767538271546065484704900479452:39:51 8397120815790231542067669483585210505365137306618382055464069234687:39:51 8397120815790231542067669483585210505365137306618382055464069234688:39:52 8397120815790231542067669483585210505365137306618382055464069234689:39:52 17650577297635443452864176659864382698578516114033824336337614632316:39:52 17650577297635443452864176659864382698578516114033824336337614632317:39:53 17650577297635443452864176659864382698578516114033824336337614632318:39:53 36589513333132485438418024367931777723370517058826180760223816351743:39:53 36589513333132485438418024367931777723370517058826180760223816351744:39:54 36589513333132485438418024367931777723370517058826180760223816351745:39:54 74841914809896234652262560774028680359135250910185277462005615234374:39:54 74841914809896234652262560774028680359135250910185277462005615234375:39:55 74841914809896234652262560774028680359135250910185277462005615234376:39:55 151123865377231491934265600549590317976973756907882566160434170167295:39:55 151123865377231491934265600549590317976973756907882566160434170167296:39:56 151123865377231491934265600549590317976973756907882566160434170167297:39:56 301383430010359672764335507198862359588547763580119919935583003957192:39:56 301383430010359672764335507198862359588547763580119919935583003957193:39:57 301383430010359672764335507198862359588547763580119919935583003957194:39:57 593870494997887150811749638256055268791095420855094114057306213711871:39:57 593870494997887150811749638256055268791095420855094114057306213711872:39:58 593870494997887150811749638256055268791095420855094114057306213711873:39:58 1156720557534747102579042634283844622575996161033536618282741473598738:39:58 1156720557534747102579042634283844622575996161033536618282741473598739:39:59 1156720557534747102579042634283844622575996161033536618282741473598740:39:59 2227915756473955677973140996095999999999999999999999999999999999999999:39:59 2227915756473955677973140996096000000000000000000000000000000000000000:39:60 2227915756473955677973140996096000000000000000000000000000000000000001:39:60 4244861897142842325845994363322721652637918676158764075736824400853940:39:60 4244861897142842325845994363322721652637918676158764075736824400853941:39:61 4244861897142842325845994363322721652637918676158764075736824400853942:39:61 8003425200957533337328493228962928138790181476703116627024598739714047:39:61 8003425200957533337328493228962928138790181476703116627024598739714048:39:62 8003425200957533337328493228962928138790181476703116627024598739714049:39:62 14937620740134562121883796002565679213423292412373878382516124866427326:39:62 14937620740134562121883796002565679213423292412373878382516124866427327:39:63 14937620740134562121883796002565679213423292412373878382516124866427328:39:63 27606985387162255149739023449108101809804435888681546220650096895197183:39:63 27606985387162255149739023449108101809804435888681546220650096895197184:39:64 27606985387162255149739023449108101809804435888681546220650096895197185:39:64 50538332580524316224618937687177676223979282440268434584140777587890624:39:64 50538332580524316224618937687177676223979282440268434584140777587890625:39:65 50538332580524316224618937687177676223979282440268434584140777587890626:39:65 91667098733291651241829127129362161315012438274710525534598384777691135:39:65 91667098733291651241829127129362161315012438274710525534598384777691136:39:66 91667098733291651241829127129362161315012438274710525534598384777691137:39:66 164784859231344618006035281108902875151038371607113799516549032112557002:39:66 164784859231344618006035281108902875151038371607113799516549032112557003:39:67 164784859231344618006035281108902875151038371607113799516549032112557004:39:67 293661894037994952632838658041092365864568886657857842269604383064850431:39:67 293661894037994952632838658041092365864568886657857842269604383064850432:39:68 293661894037994952632838658041092365864568886657857842269604383064850433:39:68 518936882818509145657554591302727459161507993358727646064910236857438828:39:68 518936882818509145657554591302727459161507993358727646064910236857438829:39:69 518936882818509145657554591302727459161507993358727646064910236857438830:39:69 909543680129861140820205019889142999999999999999999999999999999999999999:39:69 909543680129861140820205019889143000000000000000000000000000000000000000:39:70 909543680129861140820205019889143000000000000000000000000000000000000001:39:70 1581523319826627102604529143437290120097879326760520651453545762811720630:39:70 1581523319826627102604529143437290120097879326760520651453545762811720631:39:71 1581523319826627102604529143437290120097879326760520651453545762811720632:39:71 2728772695579799336784892778632526469748388043320743972998503626658807807:39:71 2728772695579799336784892778632526469748388043320743972998503626658807808:39:72 2728772695579799336784892778632526469748388043320743972998503626658807809:39:72 4672954417432956379962192614950192144154662340504263318436639003988282936:39:72 4672954417432956379962192614950192144154662340504263318436639003988282937:39:73 4672954417432956379962192614950192144154662340504263318436639003988282938:39:73 7943960380578161771950175733446651399844134791928291342743843755391975423:39:73 7943960380578161771950175733446651399844134791928291342743843755391975424:39:74 7943960380578161771950175733446651399844134791928291342743843755391975425:39:74 13408780215516662358851062848935468962974226769802044145762920379638671874:39:74 13408780215516662358851062848935468962974226769802044145762920379638671875:39:75 13408780215516662358851062848935468962974226769802044145762920379638671876:39:75 22476573198030218697036987493897358916595193617491662997481291424701874175:39:75 22476573198030218697036987493897358916595193617491662997481291424701874176:39:76 22476573198030218697036987493897358916595193617491662997481291424701874177:39:76 37422972608560604230716178178519787790611224195268726773069291477473058212:39:76 37422972608560604230716178178519787790611224195268726773069291477473058213:39:77 37422972608560604230716178178519787790611224195268726773069291477473058214:39:77 61899836932850326064910702353041763810861969268971513850220975415825006591:39:77 61899836932850326064910702353041763810861969268971513850220975415825006592:39:78 61899836932850326064910702353041763810861969268971513850220975415825006593:39:78 101731760538020779982439013729424435349082123505118331555769567445939068718:39:78 101731760538020779982439013729424435349082123505118331555769567445939068719:39:79 101731760538020779982439013729424435349082123505118331555769567445939068720:39:79 166153499473114484112975882535043071999999999999999999999999999999999999999:39:79 166153499473114484112975882535043072000000000000000000000000000000000000000:39:80 166153499473114484112975882535043072000000000000000000000000000000000000001:39:80 269721605590607563262106870407286853611938890184108047911269431464974473520:39:80 269721605590607563262106870407286853611938890184108047911269431464974473521:39:81 269721605590607563262106870407286853611938890184108047911269431464974473522:39:81 435251466397275208357756102657278911442879345952714806062475124926702419967:39:81 435251466397275208357756102657278911442879345952714806062475124926702419968:39:82 435251466397275208357756102657278911442879345952714806062475124926702419969:39:82 698305725136602387487529275219403181042627701878718020159538228622689033146:39:82 698305725136602387487529275219403181042627701878718020159538228622689033147:39:83 698305725136602387487529275219403181042627701878718020159538228622689033148:39:83 1114017867400699357552287251182196715747409883110512589474470578368454590463:39:83 1114017867400699357552287251182196715747409883110512589474470578368454590464:39:84 1114017867400699357552287251182196715747409883110512589474470578368454590465:39:84 1767413235166393647013383711807587296679789673276900430209934711456298828124:39:84 1767413235166393647013383711807587296679789673276900430209934711456298828125:39:85 1767413235166393647013383711807587296679789673276900430209934711456298828126:39:85 2788942744336608906436810601693284963891691321655456507453274821506593980415:39:85 2788942744336608906436810601693284963891691321655456507453274821506593980416:39:86 2788942744336608906436810601693284963891691321655456507453274821506593980417:39:86 4377748945861854267079518104710833978724356979816278748606291024580870774822:39:86 4377748945861854267079518104710833978724356979816278748606291024580870774823:39:87 4377748945861854267079518104710833978724356979816278748606291024580870774824:39:87 6836348814727706172435256284182582457596722356451245137939566998046325604351:39:87 6836348814727706172435256284182582457596722356451245137939566998046325604352:39:88 6836348814727706172435256284182582457596722356451245137939566998046325604353:39:88 10622096904946119061414877953363530852203830575950254787482860833544664522408:39:88 10622096904946119061414877953363530852203830575950254787482860833544664522409:39:89 10622096904946119061414877953363530852203830575950254787482860833544664522410:39:89 16423203268260658146231467800709255288999999999999999999999999999999999999999:39:89 16423203268260658146231467800709255289000000000000000000000000000000000000000:39:90 16423203268260658146231467800709255289000000000000000000000000000000000000001:39:90 25270527092302619407568159182995993671867109792439610875421095621578738746610:39:90 25270527092302619407568159182995993671867109792439610875421095621578738746611:39:91 25270527092302619407568159182995993671867109792439610875421095621578738746612:39:91 38701274424499443846156769809231720226865796873339950157843540054373226774527:39:91 38701274424499443846156769809231720226865796873339950157843540054373226774528:39:92 38701274424499443846156769809231720226865796873339950157843540054373226774529:39:92 58997688101849030124663424971058466015244160710939213965846446264971799191956:39:92 58997688101849030124663424971058466015244160710939213965846446264971799191957:39:93 58997688101849030124663424971058466015244160710939213965846446264971799191958:39:93 89533650152580714728524004080647285179047488513261062147687818109438660706303:39:93 89533650152580714728524004080647285179047488513261062147687818109438660706304:39:94 89533650152580714728524004080647285179047488513261062147687818109438660706305:39:94 135275954279056171880020500846747996912046843238165820366702973842620849609374:39:94 135275954279056171880020500846747996912046843238165820366702973842620849609375:39:95 135275954279056171880020500846747996912046843238165820366702973842620849609376:39:95 203506407870125212284524523802091505663449659250073758277196663551215435513855:39:95 203506407870125212284524523802091505663449659250073758277196663551215435513856:39:96 203506407870125212284524523802091505663449659250073758277196663551215435513857:39:96 304858028246528654628336733114695999649533877549898358335417795824732309340832:39:96 304858028246528654628336733114695999649533877549898358335417795824732309340833:39:97 304858028246528654628336733114695999649533877549898358335417795824732309340834:39:97 454796330562194945132920004065022392668627841945674194522670384002962357747711:39:97 454796330562194945132920004065022392668627841945674194522670384002962357747712:39:98 454796330562194945132920004065022392668627841945674194522670384002962357747713:39:98 675729049060283347412463231114860819662052804964484161201829356826354031593898:39:98 675729049060283347412463231114860819662052804964484161201829356826354031593899:39:99 675729049060283347412463231114860819662052804964484161201829356826354031593900:39:99 0:40:0 1:40:1 2:40:1 1099511627775:40:1 1099511627776:40:2 1099511627777:40:2 12157665459056928800:40:2 12157665459056928801:40:3 12157665459056928802:40:3 1208925819614629174706175:40:3 1208925819614629174706176:40:4 1208925819614629174706177:40:4 9094947017729282379150390624:40:4 9094947017729282379150390625:40:5 9094947017729282379150390626:40:5 13367494538843734067838845976575:40:5 13367494538843734067838845976576:40:6 13367494538843734067838845976577:40:6 6366805760909027985741435139224000:40:6 6366805760909027985741435139224001:40:7 6366805760909027985741435139224002:40:7 1329227995784915872903807060280344575:40:7 1329227995784915872903807060280344576:40:8 1329227995784915872903807060280344577:40:8 147808829414345923316083210206383297600:40:8 147808829414345923316083210206383297601:40:9 147808829414345923316083210206383297602:40:9 452592555681759518058893560348969204658400:40:10 452592555681759518058893560348969204658401:40:11 452592555681759518058893560348969204658402:40:11 14697715679690864505827555550150426126974975:40:11 14697715679690864505827555550150426126974976:40:12 14697715679690864505827555550150426126974977:40:12 361188648084531445929920877641340156544317600:40:12 361188648084531445929920877641340156544317601:40:13 361188648084531445929920877641340156544317602:40:13 7000376965910699630056503868178506524997451775:40:13 7000376965910699630056503868178506524997451776:40:14 7000376965910699630056503868178506524997451777:40:14 110573323209400121422731899656355381011962890624:40:14 110573323209400121422731899656355381011962890625:40:15 110573323209400121422731899656355381011962890626:40:15 1461501637330902918203684832716283019655932542975:40:15 1461501637330902918203684832716283019655932542976:40:16 1461501637330902918203684832716283019655932542977:40:16 16517976926780506002833800829531584028976727363200:40:16 16517976926780506002833800829531584028976727363201:40:17 16517976926780506002833800829531584028976727363202:40:17 162517526629032594911616322214684076451054145765375:40:17 162517526629032594911616322214684076451054145765376:40:18 162517526629032594911616322214684076451054145765377:40:18 1413006104539009638843035501053457425807904438071200:40:18 1413006104539009638843035501053457425807904438071201:40:19 1413006104539009638843035501053457425807904438071202:40:19 10995116277759999999999999999999999999999999999999999:40:19 10995116277760000000000000000000000000000000000000000:40:20 10995116277760000000000000000000000000000000000000001:40:20 77405494483928356601681434130536198019976749447352800:40:20 77405494483928356601681434130536198019976749447352801:40:21 77405494483928356601681434130536198019976749447352802:40:21 497630777616951325132715326372819220817654565543346175:40:21 497630777616951325132715326372819220817654565543346176:40:22 497630777616951325132715326372819220817654565543346177:40:22 2945190837423705167875564697729320458241471826430830400:40:22 2945190837423705167875564697729320458241471826430830401:40:23 2945190837423705167875564697729320458241471826430830402:40:23 16160309291565740657279117440900958232530295124578533375:40:23 16160309291565740657279117440900958232530295124578533376:40:24 16160309291565740657279117440900958232530295124578533377:40:24 82718061255302767487140869206996285356581211090087890624:40:24 82718061255302767487140869206996285356581211090087890625:40:25 82718061255302767487140869206996285356581211090087890626:40:25 397131118389635994560666234198316439032157304558637285375:40:25 397131118389635994560666234198316439032157304558637285376:40:26 397131118389635994560666234198316439032157304558637285377:40:26 1797010299914431210413179829509605039731475627537851106400:40:26 1797010299914431210413179829509605039731475627537851106401:40:27 1797010299914431210413179829509605039731475627537851106402:40:27 7696995872834089412498427582956590237436585436481822130175:40:27 7696995872834089412498427582956590237436585436481822130176:40:28 7696995872834089412498427582956590237436585436481822130177:40:28 31327079986910989416247938623974919746509417027114485440800:40:28 31327079986910989416247938623974919746509417027114485440801:40:29 31327079986910989416247938623974919746509417027114485440802:40:29 121576654590569288009999999999999999999999999999999999999999:40:29 121576654590569288010000000000000000000000000000000000000000:40:30 121576654590569288010000000000000000000000000000000000000001:40:30 451302514611022222119906091571193923850834154614488607763200:40:30 451302514611022222119906091571193923850834154614488607763201:40:31 451302514611022222119906091571193923850834154614488607763202:40:31 1606938044258990275541962092341162602522202993782792835301375:40:31 1606938044258990275541962092341162602522202993782792835301376:40:32 1606938044258990275541962092341162602522202993782792835301377:40:32 5502468881238427440585585273345625543507431690278185383507200:40:32 5502468881238427440585585273345625543507431690278185383507201:40:33 5502468881238427440585585273345625543507431690278185383507202:40:33 18161707698330844122240731618871251047303925854734491871870975:40:33 18161707698330844122240731618871251047303925854734491871870976:40:34 18161707698330844122240731618871251047303925854734491871870977:40:34 57905761067641178540192733082440108773880638182163238525390624:40:34 57905761067641178540192733082440108773880638182163238525390625:40:35 57905761067641178540192733082440108773880638182163238525390626:40:35 178689910246017054531432477289437798228285773001601743140683775:40:35 178689910246017054531432477289437798228285773001601743140683776:40:36 178689910246017054531432477289437798228285773001601743140683777:40:36 534649250915012063273309653845946926220190993810950712361813600:40:36 534649250915012063273309653845946926220190993810950712361813601:40:37 534649250915012063273309653845946926220190993810950712361813602:40:37 1553616642059111310095259841124242737042763760591120797297278975:40:37 1553616642059111310095259841124242737042763760591120797297278976:40:38 1553616642059111310095259841124242737042763760591120797297278977:40:38 4391210751020776509051788510566673337277492103548664163388126400:40:38 4391210751020776509051788510566673337277492103548664163388126401:40:39 4391210751020776509051788510566673337277492103548664163388126402:40:39 12089258196146291747061759999999999999999999999999999999999999999:40:39 12089258196146291747061760000000000000000000000000000000000000000:40:40 12089258196146291747061760000000000000000000000000000000000000001:40:40 32460430015431999968619493682032835511850959272235390105491169600:40:40 32460430015431999968619493682032835511850959272235390105491169601:40:41 32460430015431999968619493682032835511850959272235390105491169602:40:41 85108241238830256438079349299463978352634903950532186641663000575:40:41 85108241238830256438079349299463978352634903950532186641663000576:40:42 85108241238830256438079349299463978352634903950532186641663000577:40:42 218141463858908869909615270212837010053304269297195114305378988000:40:42 218141463858908869909615270212837010053304269297195114305378988001:40:43 218141463858908869909615270212837010053304269297195114305378988002:40:43 547150826329050817707232047731001563323399357039042635859624984575:40:43 547150826329050817707232047731001563323399357039042635859624984576:40:44 547150826329050817707232047731001563323399357039042635859624984577:40:44 1344313472276061687044450174711376326749814325012266635894775390624:40:44 1344313472276061687044450174711376326749814325012266635894775390625:40:45 1344313472276061687044450174711376326749814325012266635894775390626:40:45 3238271571766698647339965484615566548083418922349006074474896818175:40:45 3238271571766698647339965484615566548083418922349006074474896818176:40:46 3238271571766698647339965484615566548083418922349006074474896818177:40:46 7654455761751330268890575447204214294134057054403947260546060444800:40:46 7654455761751330268890575447204214294134057054403947260546060444801:40:47 7654455761751330268890575447204214294134057054403947260546060444802:40:47 17768447974533064897800026560617684066247572707659019938192504651775:40:47 17768447974533064897800026560617684066247572707659019938192504651776:40:48 17768447974533064897800026560617684066247572707659019938192504651777:40:48 40536215597144386832065866109016673800875222251012083746192454448000:40:48 40536215597144386832065866109016673800875222251012083746192454448001:40:49 40536215597144386832065866109016673800875222251012083746192454448002:40:49 90949470177292823791503906249999999999999999999999999999999999999999:40:49 90949470177292823791503906250000000000000000000000000000000000000000:40:50 90949470177292823791503906250000000000000000000000000000000000000001:40:50 200820037536218678526581935459796317182144451848849339719949924452000:40:50 200820037536218678526581935459796317182144451848849339719949924452001:40:51 200820037536218678526581935459796317182144451848849339719949924452002:40:51 436650282421092040187518813146430946278987139944155866884131600203775:40:51 436650282421092040187518813146430946278987139944155866884131600203776:40:52 436650282421092040187518813146430946278987139944155866884131600203777:40:52 935480596774678503001801362972812283024661354043792689825893575512800:40:52 935480596774678503001801362972812283024661354043792689825893575512801:40:53 935480596774678503001801362972812283024661354043792689825893575512802:40:53 1975833719989154213674573315868315997062007921176613761052086082994175:40:53 1975833719989154213674573315868315997062007921176613761052086082994176:40:54 1975833719989154213674573315868315997062007921176613761052086082994177:40:54 4116305314544292905874440842571577419752438800060190260410308837890624:40:54 4116305314544292905874440842571577419752438800060190260410308837890625:40:55 4116305314544292905874440842571577419752438800060190260410308837890626:40:55 8462936461124963548318873630777057806710530386841423704984313529368575:40:55 8462936461124963548318873630777057806710530386841423704984313529368576:40:56 8462936461124963548318873630777057806710530386841423704984313529368577:40:56 17178855510590501347567123910335154496547222524066835436328231225560000:40:56 17178855510590501347567123910335154496547222524066835436328231225560001:40:57 17178855510590501347567123910335154496547222524066835436328231225560002:40:57 34444488709877454747081479018851205589883534409595458615323760395288575:40:57 34444488709877454747081479018851205589883534409595458615323760395288576:40:58 34444488709877454747081479018851205589883534409595458615323760395288577:40:58 68246512894550079052163515422746832731983773500978660478681746942325600:40:58 68246512894550079052163515422746832731983773500978660478681746942325601:40:59 68246512894550079052163515422746832731983773500978660478681746942325602:40:59 133674945388437340678388459765759999999999999999999999999999999999999999:40:59 133674945388437340678388459765760000000000000000000000000000000000000000:40:60 133674945388437340678388459765760000000000000000000000000000000000000001:40:60 258936575725713381876605656162686020810913039245684608619946288452090400:40:60 258936575725713381876605656162686020810913039245684608619946288452090401:40:61 258936575725713381876605656162686020810913039245684608619946288452090402:40:61 496212362459367066914366580195701544604991251555593230875525121862270975:40:61 496212362459367066914366580195701544604991251555593230875525121862270976:40:62 496212362459367066914366580195701544604991251555593230875525121862270977:40:62 941070106628477413678679148161637790445667421979554338098515866584921600:40:62 941070106628477413678679148161637790445667421979554338098515866584921601:40:63 941070106628477413678679148161637790445667421979554338098515866584921602:40:63 1766847064778384329583297500742918515827483896875618958121606201292619775:40:63 1766847064778384329583297500742918515827483896875618958121606201292619776:40:64 1766847064778384329583297500742918515827483896875618958121606201292619777:40:64 3284991617734080554600230949666548954558653358617448247969150543212890624:40:64 3284991617734080554600230949666548954558653358617448247969150543212890625:40:65 3284991617734080554600230949666548954558653358617448247969150543212890626:40:65 6050028516397248981960722390537902646790820926130894685283493395327614975:40:65 6050028516397248981960722390537902646790820926130894685283493395327614976:40:66 6050028516397248981960722390537902646790820926130894685283493395327614977:40:66 11040585568500089406404363834296492635119570897676624567608785151541319200:40:66 11040585568500089406404363834296492635119570897676624567608785151541319201:40:67 11040585568500089406404363834296492635119570897676624567608785151541319202:40:67 19969008794583656779033028746794280878790684292734333274333098048409829375:40:67 19969008794583656779033028746794280878790684292734333274333098048409829376:40:68 19969008794583656779033028746794280878790684292734333274333098048409829377:40:68 35806644914477131050371266799888194682144051541752207578478806343163279200:40:68 35806644914477131050371266799888194682144051541752207578478806343163279201:40:69 35806644914477131050371266799888194682144051541752207578478806343163279202:40:69 63668057609090279857414351392240009999999999999999999999999999999999999999:40:69 63668057609090279857414351392240010000000000000000000000000000000000000000:40:70 63668057609090279857414351392240010000000000000000000000000000000000000001:40:70 112288155707690524284921569184047598526949432199996966253201749159632164800:40:70 112288155707690524284921569184047598526949432199996966253201749159632164801:40:71 112288155707690524284921569184047598526949432199996966253201749159632164802:40:71 196471634081745552248512280061541905821883939119093566055892261119434162175:40:71 196471634081745552248512280061541905821883939119093566055892261119434162176:40:72 196471634081745552248512280061541905821883939119093566055892261119434162177:40:72 341125672472605815737240060891364026523290350856811222245874647291144654400:40:72 341125672472605815737240060891364026523290350856811222245874647291144654401:40:73 341125672472605815737240060891364026523290350856811222245874647291144654402:40:73 587853068162783971124313004275052203588465974602693559363044437899006181375:40:73 587853068162783971124313004275052203588465974602693559363044437899006181376:40:74 587853068162783971124313004275052203588465974602693559363044437899006181377:40:74 1005658516163749676913829713670160172223067007735153310932219028472900390624:40:74 1005658516163749676913829713670160172223067007735153310932219028472900390625:40:75 1005658516163749676913829713670160172223067007735153310932219028472900390626:40:75 1708219563050296620974811049536199277661234714929366387808578148277342437375:40:75 1708219563050296620974811049536199277661234714929366387808578148277342437376:40:76 1708219563050296620974811049536199277661234714929366387808578148277342437377:40:76 2881568890859166525765145719746023659877064263035691961526335443765425482400:40:76 2881568890859166525765145719746023659877064263035691961526335443765425482401:40:77 2881568890859166525765145719746023659877064263035691961526335443765425482402:40:77 4828187280762325433063034783537257577247233602979778080317236082434350514175:40:77 4828187280762325433063034783537257577247233602979778080317236082434350514176:40:78 4828187280762325433063034783537257577247233602979778080317236082434350514177:40:78 8036809082503641618612682084624530392577487756904348192905795828229186428800:40:78 8036809082503641618612682084624530392577487756904348192905795828229186428801:40:79 8036809082503641618612682084624530392577487756904348192905795828229186428802:40:79 13292279957849158729038070602803445759999999999999999999999999999999999999999:40:79 13292279957849158729038070602803445760000000000000000000000000000000000000000:40:80 13292279957849158729038070602803445760000000000000000000000000000000000000001:40:80 21847450052839212624230656502990235142567050104912751880812823948662932355200:40:80 21847450052839212624230656502990235142567050104912751880812823948662932355201:40:81 21847450052839212624230656502990235142567050104912751880812823948662932355202:40:81 35690620244576567085336000417896870738316106368122614097122960243989598437375:40:81 35690620244576567085336000417896870738316106368122614097122960243989598437376:40:82 35690620244576567085336000417896870738316106368122614097122960243989598437377:40:82 57959375186337998161464929843210464026538099255933595673241672975683189751200:40:82 57959375186337998161464929843210464026538099255933595673241672975683189751201:40:83 57959375186337998161464929843210464026538099255933595673241672975683189751202:40:83 93577500861658746034392129099304524122782430181283057515855528582950185598975:40:83 93577500861658746034392129099304524122782430181283057515855528582950185598976:40:84 93577500861658746034392129099304524122782430181283057515855528582950185598977:40:84 150230124989143459996137615503644920217782122228536536567844450473785400390624:40:84 150230124989143459996137615503644920217782122228536536567844450473785400390625:40:85 150230124989143459996137615503644920217782122228536536567844450473785400390626:40:85 239849076012948365953565711745622506894685453662369259640981634649567082315775:40:85 239849076012948365953565711745622506894685453662369259640981634649567082315776:40:86 239849076012948365953565711745622506894685453662369259640981634649567082315777:40:86 380864158289981321235918075109842556149019057244016251128747319138535757409600:40:86 380864158289981321235918075109842556149019057244016251128747319138535757409601:40:87 380864158289981321235918075109842556149019057244016251128747319138535757409602:40:87 601598695696038143174302553008067256268511567367709572138681895828076653182975:40:87 601598695696038143174302553008067256268511567367709572138681895828076653182976:40:88 601598695696038143174302553008067256268511567367709572138681895828076653182977:40:88 945366624540204596465924137849354245846140921259572676085974614185475142494400:40:88 945366624540204596465924137849354245846140921259572676085974614185475142494401:40:89 945366624540204596465924137849354245846140921259572676085974614185475142494402:40:89 1478088294143459233160832102063832976009999999999999999999999999999999999999999:40:89 1478088294143459233160832102063832976010000000000000000000000000000000000000000:40:90 1478088294143459233160832102063832976010000000000000000000000000000000000000001:40:90 2299617965399538366088702485652635424139906991112004589663319701563665225941600:40:90 2299617965399538366088702485652635424139906991112004589663319701563665225941601:40:91 2299617965399538366088702485652635424139906991112004589663319701563665225941602:40:91 3560517247053948833846422822449318260871653312347275414521605685002336863256575:40:91 3560517247053948833846422822449318260871653312347275414521605685002336863256576:40:92 3560517247053948833846422822449318260871653312347275414521605685002336863256577:40:92 5486784993471959801593698522308437339417706946117346898823719502642377324852000:40:92 5486784993471959801593698522308437339417706946117346898823719502642377324852001:40:93 5486784993471959801593698522308437339417706946117346898823719502642377324852002:40:93 8416163114342587184481256383580844806830463920246539841882654902287234106392575:40:93 8416163114342587184481256383580844806830463920246539841882654902287234106392576:40:94 8416163114342587184481256383580844806830463920246539841882654902287234106392577:40:94 12851215656510336328601947580441059706644450107625752934836782515048980712890624:40:94 12851215656510336328601947580441059706644450107625752934836782515048980712890625:40:95 12851215656510336328601947580441059706644450107625752934836782515048980712890626:40:95 19536615155532020379314354285000784543691167288007080794610879700916681809330175:40:95 19536615155532020379314354285000784543691167288007080794610879700916681809330176:40:96 19536615155532020379314354285000784543691167288007080794610879700916681809330177:40:96 29571228739913279498948663112125511966004786122340140758535526194999034006060800:40:96 29571228739913279498948663112125511966004786122340140758535526194999034006060801:40:97 29571228739913279498948663112125511966004786122340140758535526194999034006060802:40:97 44570040395095104623026160398372194481525528510676071063221697632290311059275775:40:97 44570040395095104623026160398372194481525528510676071063221697632290311059275776:40:98 44570040395095104623026160398372194481525528510676071063221697632290311059275777:40:98 66897175856968051393833859880371221146543227691483931958981106325809049127796000:40:98 66897175856968051393833859880371221146543227691483931958981106325809049127796001:40:99 66897175856968051393833859880371221146543227691483931958981106325809049127796002:40:99 0:41:0 1:41:1 2:41:1 2199023255551:41:1 2199023255552:41:2 2199023255553:41:2 36472996377170786402:41:2 36472996377170786403:41:3 36472996377170786404:41:3 4835703278458516698824703:41:3 4835703278458516698824704:41:4 4835703278458516698824705:41:4 45474735088646411895751953124:41:4 45474735088646411895751953125:41:5 45474735088646411895751953126:41:5 80204967233062404407033075859455:41:5 80204967233062404407033075859456:41:6 80204967233062404407033075859457:41:6 44567640326363195900190045974568006:41:6 44567640326363195900190045974568007:41:7 44567640326363195900190045974568008:41:7 10633823966279326983230456482242756607:41:7 10633823966279326983230456482242756608:41:8 10633823966279326983230456482242756609:41:8 1330279464729113309844748891857449678408:41:8 1330279464729113309844748891857449678409:41:9 1330279464729113309844748891857449678410:41:9 4978518112499354698647829163838661251242410:41:10 4978518112499354698647829163838661251242411:41:11 4978518112499354698647829163838661251242412:41:11 176372588156290374069930666601805113523699711:41:11 176372588156290374069930666601805113523699712:41:12 176372588156290374069930666601805113523699713:41:12 4695452425098908797088971409337422035076128812:41:12 4695452425098908797088971409337422035076128813:41:13 4695452425098908797088971409337422035076128814:41:13 98005277522749794820791054154499091349964324863:41:13 98005277522749794820791054154499091349964324864:41:14 98005277522749794820791054154499091349964324865:41:14 1658599848141001821340978494845330715179443359374:41:14 1658599848141001821340978494845330715179443359375:41:15 1658599848141001821340978494845330715179443359376:41:15 23384026197294446691258957323460528314494920687615:41:15 23384026197294446691258957323460528314494920687616:41:16 23384026197294446691258957323460528314494920687617:41:16 280805607755268602048174614102036928492604365174416:41:16 280805607755268602048174614102036928492604365174417:41:17 280805607755268602048174614102036928492604365174418:41:17 2925315479322586708409093799864313376118974623776767:41:17 2925315479322586708409093799864313376118974623776768:41:18 2925315479322586708409093799864313376118974623776769:41:18 26847115986241183138017674520015691090350184323352818:41:18 26847115986241183138017674520015691090350184323352819:41:19 26847115986241183138017674520015691090350184323352820:41:19 219902325555199999999999999999999999999999999999999999:41:19 219902325555200000000000000000000000000000000000000000:41:20 219902325555200000000000000000000000000000000000000001:41:20 1625515384162495488635310116741260158419511738394408820:41:20 1625515384162495488635310116741260158419511738394408821:41:21 1625515384162495488635310116741260158419511738394408822:41:21 10947877107572929152919737180202022857988400441953615871:41:21 10947877107572929152919737180202022857988400441953615872:41:22 10947877107572929152919737180202022857988400441953615873:41:22 67739389260745218861137988047774370539553852007909099222:41:22 67739389260745218861137988047774370539553852007909099223:41:23 67739389260745218861137988047774370539553852007909099224:41:23 387847422997577775774698818581622997580727082989884801023:41:23 387847422997577775774698818581622997580727082989884801024:41:24 387847422997577775774698818581622997580727082989884801025:41:24 2067951531382569187178521730174907133914530277252197265624:41:24 2067951531382569187178521730174907133914530277252197265625:41:25 2067951531382569187178521730174907133914530277252197265626:41:25 10325409078130535858577322089156227414836089918524569419775:41:25 10325409078130535858577322089156227414836089918524569419776:41:26 10325409078130535858577322089156227414836089918524569419777:41:26 48519278097689642681155855396759336072749841943521979872826:41:26 48519278097689642681155855396759336072749841943521979872827:41:27 48519278097689642681155855396759336072749841943521979872828:41:27 215515884439354503549955972322784526648224392221491019644927:41:27 215515884439354503549955972322784526648224392221491019644928:41:28 215515884439354503549955972322784526648224392221491019644929:41:28 908485319620418693071190220095272672648773093786320077783228:41:28 908485319620418693071190220095272672648773093786320077783229:41:29 908485319620418693071190220095272672648773093786320077783230:41:29 3647299637717078640299999999999999999999999999999999999999999:41:29 3647299637717078640300000000000000000000000000000000000000000:41:30 3647299637717078640300000000000000000000000000000000000000001:41:30 13990377952941688885717088838707011639375858793049146840659230:41:30 13990377952941688885717088838707011639375858793049146840659231:41:31 13990377952941688885717088838707011639375858793049146840659232:41:31 51422017416287688817342786954917203280710495801049370729644031:41:31 51422017416287688817342786954917203280710495801049370729644032:41:32 51422017416287688817342786954917203280710495801049370729644033:41:32 181581473080868105539324314020405642935745245779180117655737632:41:32 181581473080868105539324314020405642935745245779180117655737633:41:33 181581473080868105539324314020405642935745245779180117655737634:41:33 617498061743248700156184875041622535608333479060972723643613183:41:33 617498061743248700156184875041622535608333479060972723643613184:41:34 617498061743248700156184875041622535608333479060972723643613185:41:34 2026701637367441248906745657885403807085822336375713348388671874:41:34 2026701637367441248906745657885403807085822336375713348388671875:41:35 2026701637367441248906745657885403807085822336375713348388671876:41:35 6432836768856613963131569182419760736218287828057662753064615935:41:35 6432836768856613963131569182419760736218287828057662753064615936:41:36 6432836768856613963131569182419760736218287828057662753064615937:41:36 19782022283855446341112457192300036270147066771005176357387103236:41:36 19782022283855446341112457192300036270147066771005176357387103237:41:37 19782022283855446341112457192300036270147066771005176357387103238:41:37 59037432398246229783619873962721224007625022902462590297296601087:41:37 59037432398246229783619873962721224007625022902462590297296601088:41:38 59037432398246229783619873962721224007625022902462590297296601089:41:38 171257219289810283853019751912100260153822192038397902372136929638:41:38 171257219289810283853019751912100260153822192038397902372136929639:41:39 171257219289810283853019751912100260153822192038397902372136929640:41:39 483570327845851669882470399999999999999999999999999999999999999999:41:39 483570327845851669882470400000000000000000000000000000000000000000:41:40 483570327845851669882470400000000000000000000000000000000000000001:41:40 1330877630632711998713399240963346255985889330161650994325137953640:41:40 1330877630632711998713399240963346255985889330161650994325137953641:41:41 1330877630632711998713399240963346255985889330161650994325137953642:41:41 3574546132030870770399332670577487090810665965922351838949846024191:41:41 3574546132030870770399332670577487090810665965922351838949846024192:41:42 3574546132030870770399332670577487090810665965922351838949846024193:41:42 9380082945933081406113456619151991432292083579779389915131296484042:41:42 9380082945933081406113456619151991432292083579779389915131296484043:41:43 9380082945933081406113456619151991432292083579779389915131296484044:41:43 24074636358478235979118210100164068786229571709717875977823499321343:41:43 24074636358478235979118210100164068786229571709717875977823499321344:41:44 24074636358478235979118210100164068786229571709717875977823499321345:41:44 60494106252422775917000257862011934703741644625551998615264892578124:41:44 60494106252422775917000257862011934703741644625551998615264892578125:41:45 60494106252422775917000257862011934703741644625551998615264892578126:41:45 148960492301268137777638412292316061211837270428054279425845253636095:41:45 148960492301268137777638412292316061211837270428054279425845253636096:41:46 148960492301268137777638412292316061211837270428054279425845253636097:41:46 359759420802312522637857046018598071824300681556985521245664840905646:41:46 359759420802312522637857046018598071824300681556985521245664840905647:41:47 359759420802312522637857046018598071824300681556985521245664840905648:41:47 852885502777587115094401274909648835179883489967632957033240223285247:41:47 852885502777587115094401274909648835179883489967632957033240223285248:41:48 852885502777587115094401274909648835179883489967632957033240223285249:41:48 1986274564260074954771227439341817016242885890299592103563430267952048:41:48 1986274564260074954771227439341817016242885890299592103563430267952049:41:49 1986274564260074954771227439341817016242885890299592103563430267952050:41:49 4547473508864641189575195312499999999999999999999999999999999999999999:41:49 4547473508864641189575195312500000000000000000000000000000000000000000:41:50 4547473508864641189575195312500000000000000000000000000000000000000001:41:50 10241821914347152604855678708449612176289367044291316325717446147052050:41:50 10241821914347152604855678708449612176289367044291316325717446147052051:41:51 10241821914347152604855678708449612176289367044291316325717446147052052:41:51 22705814685896786089750978283614409206507331277096105077974843210596351:41:51 22705814685896786089750978283614409206507331277096105077974843210596352:41:52 22705814685896786089750978283614409206507331277096105077974843210596353:41:52 49580471629057960659095472237559051000307051764321012560772359502178452:41:52 49580471629057960659095472237559051000307051764321012560772359502178453:41:53 49580471629057960659095472237559051000307051764321012560772359502178454:41:53 106695020879414327538426959056889063841348427743537143096812648481685503:41:53 106695020879414327538426959056889063841348427743537143096812648481685504:41:54 106695020879414327538426959056889063841348427743537143096812648481685505:41:54 226396792299936109823094246341436758086384134003310464322566986083984374:41:54 226396792299936109823094246341436758086384134003310464322566986083984375:41:55 226396792299936109823094246341436758086384134003310464322566986083984376:41:55 473924441822997958705856923323515237175789701663119727479121557644640255:41:55 473924441822997958705856923323515237175789701663119727479121557644640256:41:56 473924441822997958705856923323515237175789701663119727479121557644640257:41:56 979194764103658576811326062889103806303191683871809619870709179856920056:41:56 979194764103658576811326062889103806303191683871809619870709179856920057:41:57 979194764103658576811326062889103806303191683871809619870709179856920058:41:57 1997780345172892375330725783093369924213244995756536599688778102926737407:41:57 1997780345172892375330725783093369924213244995756536599688778102926737408:41:58 1997780345172892375330725783093369924213244995756536599688778102926737409:41:58 4026544260778454664077647409942063131187042636557740968242223069597210458:41:58 4026544260778454664077647409942063131187042636557740968242223069597210459:41:59 4026544260778454664077647409942063131187042636557740968242223069597210460:41:59 8020496723306240440703307585945599999999999999999999999999999999999999999:41:59 8020496723306240440703307585945600000000000000000000000000000000000000000:41:60 8020496723306240440703307585945600000000000000000000000000000000000000001:41:60 15795131119268516294472945025923847269465695393986761125816723595577514460:41:60 15795131119268516294472945025923847269465695393986761125816723595577514461:41:61 15795131119268516294472945025923847269465695393986761125816723595577514462:41:61 30765166472480758148690727972133495765509457596446780314282557555460800511:41:61 30765166472480758148690727972133495765509457596446780314282557555460800512:41:62 30765166472480758148690727972133495765509457596446780314282557555460800513:41:62 59287416717594077061756786334183180798077047584711923300206499594850060862:41:62 59287416717594077061756786334183180798077047584711923300206499594850060863:41:63 59287416717594077061756786334183180798077047584711923300206499594850060864:41:63 113078212145816597093331040047546785012958969400039613319782796882727665663:41:63 113078212145816597093331040047546785012958969400039613319782796882727665664:41:64 113078212145816597093331040047546785012958969400039613319782796882727665665:41:64 213524455152715236049015011728325682046312468310134136117994785308837890624:41:64 213524455152715236049015011728325682046312468310134136117994785308837890625:41:65 213524455152715236049015011728325682046312468310134136117994785308837890626:41:65 399301882082218432809407677775501574688194181124639049228710564091622588415:41:65 399301882082218432809407677775501574688194181124639049228710564091622588416:41:66 399301882082218432809407677775501574688194181124639049228710564091622588417:41:66 739719233089505990229092376897865006553011250144333846029788605153268386466:41:66 739719233089505990229092376897865006553011250144333846029788605153268386467:41:67 739719233089505990229092376897865006553011250144333846029788605153268386468:41:67 1357892598031688660974245954782011099757766531905934662654650667291868397567:41:67 1357892598031688660974245954782011099757766531905934662654650667291868397568:41:68 1357892598031688660974245954782011099757766531905934662654650667291868397569:41:68 2470658499098922042475617409192285433067939556380902322915037637678266264868:41:68 2470658499098922042475617409192285433067939556380902322915037637678266264869:41:69 2470658499098922042475617409192285433067939556380902322915037637678266264870:41:69 4456764032636319590019004597456800699999999999999999999999999999999999999999:41:69 4456764032636319590019004597456800700000000000000000000000000000000000000000:41:70 4456764032636319590019004597456800700000000000000000000000000000000000000001:41:70 7972459055246027224229431412067379495413409686199784603977324190333883700870:41:70 7972459055246027224229431412067379495413409686199784603977324190333883700871:41:71 7972459055246027224229431412067379495413409686199784603977324190333883700872:41:71 14145957653885679761892884164431017219175643616574736756024242800599259676671:41:71 14145957653885679761892884164431017219175643616574736756024242800599259676672:41:72 14145957653885679761892884164431017219175643616574736756024242800599259676673:41:72 24902174090500224548818524445069573936200195612547219223948849252253559771272:41:72 24902174090500224548818524445069573936200195612547219223948849252253559771273:41:73 24902174090500224548818524445069573936200195612547219223948849252253559771274:41:73 43501127044046013863199162316353863065546482120599323392865288404526457421823:41:73 43501127044046013863199162316353863065546482120599323392865288404526457421824:41:74 43501127044046013863199162316353863065546482120599323392865288404526457421825:41:74 75424388712281225768537228525262012916730025580136498319916427135467529296874:41:74 75424388712281225768537228525262012916730025580136498319916427135467529296875:41:75 75424388712281225768537228525262012916730025580136498319916427135467529296876:41:75 129824686791822543194085639764751145102253838334631845473451939269078025240575:41:75 129824686791822543194085639764751145102253838334631845473451939269078025240576:41:76 129824686791822543194085639764751145102253838334631845473451939269078025240577:41:76 221880804596155822483916220420443821810533948253748281037527829169937762144876:41:76 221880804596155822483916220420443821810533948253748281037527829169937762144877:41:77 221880804596155822483916220420443821810533948253748281037527829169937762144878:41:77 376598607899461383778916713115906091025284221032422690264744414429879340105727:41:77 376598607899461383778916713115906091025284221032422690264744414429879340105728:41:78 376598607899461383778916713115906091025284221032422690264744414429879340105729:41:78 634907917517787687870401884685337901013621532795443507239557870430105727875278:41:78 634907917517787687870401884685337901013621532795443507239557870430105727875279:41:79 634907917517787687870401884685337901013621532795443507239557870430105727875280:41:79 1063382396627932698323045648224275660799999999999999999999999999999999999999999:41:79 1063382396627932698323045648224275660800000000000000000000000000000000000000000:41:80 1063382396627932698323045648224275660800000000000000000000000000000000000000001:41:80 1769643454279976222562683176742209046547931058497932902345838739841697520771280:41:80 1769643454279976222562683176742209046547931058497932902345838739841697520771281:41:81 1769643454279976222562683176742209046547931058497932902345838739841697520771282:41:81 2926630860055278500997552034267543400541920722186054355964082740007147071864831:41:81 2926630860055278500997552034267543400541920722186054355964082740007147071864832:41:82 2926630860055278500997552034267543400541920722186054355964082740007147071864833:41:82 4810628140466053847401589176986468514202662238242488440879058856981704749349682:41:82 4810628140466053847401589176986468514202662238242488440879058856981704749349683:41:83 4810628140466053847401589176986468514202662238242488440879058856981704749349684:41:83 7860510072379334666888938844341580026313724135227776831331864400967815590313983:41:83 7860510072379334666888938844341580026313724135227776831331864400967815590313984:41:84 7860510072379334666888938844341580026313724135227776831331864400967815590313985:41:84 12769560624077194099671697317809818218511480389425605608266778290271759033203124:41:84 12769560624077194099671697317809818218511480389425605608266778290271759033203125:41:85 12769560624077194099671697317809818218511480389425605608266778290271759033203126:41:85 20627020537113559472006651210123535592942949014963756329124420579862769079156735:41:85 20627020537113559472006651210123535592942949014963756329124420579862769079156736:41:86 20627020537113559472006651210123535592942949014963756329124420579862769079156737:41:86 33135181771228374947524872534556302384964657980229413848201016765052610894635286:41:86 33135181771228374947524872534556302384964657980229413848201016765052610894635287:41:87 33135181771228374947524872534556302384964657980229413848201016765052610894635288:41:87 52940685221251356599338624664709918551629017928358442348204006832870745480101887:41:87 52940685221251356599338624664709918551629017928358442348204006832870745480101888:41:88 52940685221251356599338624664709918551629017928358442348204006832870745480101889:41:88 84137629584078209085467248268592527880306541992101968171651740662507287682001688:41:88 84137629584078209085467248268592527880306541992101968171651740662507287682001689:41:89 84137629584078209085467248268592527880306541992101968171651740662507287682001690:41:89 133027946472911330984474889185744967840899999999999999999999999999999999999999999:41:89 133027946472911330984474889185744967840900000000000000000000000000000000000000000:41:90 133027946472911330984474889185744967840900000000000000000000000000000000000000001:41:90 209265234851357991314071926194389823596731536191192417659362092842293535560685690:41:90 209265234851357991314071926194389823596731536191192417659362092842293535560685691:41:91 209265234851357991314071926194389823596731536191192417659362092842293535560685692:41:91 327567586728963292713870899665337280000192104735949338135987723020214991419604991:41:91 327567586728963292713870899665337280000192104735949338135987723020214991419604992:41:92 327567586728963292713870899665337280000192104735949338135987723020214991419604993:41:92 510271004392892261548213962574684672565846745988913261590605913745741091211236092:41:92 510271004392892261548213962574684672565846745988913261590605913745741091211236093:41:93 510271004392892261548213962574684672565846745988913261590605913745741091211236094:41:93 791119332748203195341238100056599411842063608503174745136969560815000006000902143:41:93 791119332748203195341238100056599411842063608503174745136969560815000006000902144:41:94 791119332748203195341238100056599411842063608503174745136969560815000006000902145:41:94 1220865487368481951217185020141900672131222760224446528809494338929653167724609374:41:94 1220865487368481951217185020141900672131222760224446528809494338929653167724609375:41:95 1220865487368481951217185020141900672131222760224446528809494338929653167724609376:41:95 1875515054931073956414178011360075316194352059648679756282644451288001453695696895:41:95 1875515054931073956414178011360075316194352059648679756282644451288001453695696896:41:96 1875515054931073956414178011360075316194352059648679756282644451288001453695696897:41:96 2868409187771588111398020321876174660702464253866993653577946040914906298587897696:41:96 2868409187771588111398020321876174660702464253866993653577946040914906298587897697:41:97 2868409187771588111398020321876174660702464253866993653577946040914906298587897698:41:97 4367863958719320253056563719040475059189501794046254964195726367964450483809026047:41:97 4367863958719320253056563719040475059189501794046254964195726367964450483809026048:41:98 4367863958719320253056563719040475059189501794046254964195726367964450483809026049:41:98 6622820409839837087989552128156750893507779541456909263939129526255095863651804098:41:98 6622820409839837087989552128156750893507779541456909263939129526255095863651804099:41:99 6622820409839837087989552128156750893507779541456909263939129526255095863651804100:41:99 0:42:0 1:42:1 2:42:1 4398046511103:42:1 4398046511104:42:2 4398046511105:42:2 109418989131512359208:42:2 109418989131512359209:42:3 109418989131512359210:42:3 19342813113834066795298815:42:3 19342813113834066795298816:42:4 19342813113834066795298817:42:4 227373675443232059478759765624:42:4 227373675443232059478759765625:42:5 227373675443232059478759765626:42:5 481229803398374426442198455156735:42:5 481229803398374426442198455156736:42:6 481229803398374426442198455156737:42:6 311973482284542371301330321821976048:42:6 311973482284542371301330321821976049:42:7 311973482284542371301330321821976050:42:7 85070591730234615865843651857942052863:42:7 85070591730234615865843651857942052864:42:8 85070591730234615865843651857942052865:42:8 11972515182562019788602740026717047105680:42:8 11972515182562019788602740026717047105681:42:9 11972515182562019788602740026717047105682:42:9 54763699237492901685126120802225273763666520:42:10 54763699237492901685126120802225273763666521:42:11 54763699237492901685126120802225273763666522:42:11 2116471057875484488839167999221661362284396543:42:11 2116471057875484488839167999221661362284396544:42:12 2116471057875484488839167999221661362284396545:42:12 61040881526285814362156628321386486455989674568:42:12 61040881526285814362156628321386486455989674569:42:13 61040881526285814362156628321386486455989674570:42:13 1372073885318497127491074758162987278899500548095:42:13 1372073885318497127491074758162987278899500548096:42:14 1372073885318497127491074758162987278899500548097:42:14 24878997722115027320114677422679960727691650390624:42:14 24878997722115027320114677422679960727691650390625:42:15 24878997722115027320114677422679960727691650390626:42:15 374144419156711147060143317175368453031918731001855:42:15 374144419156711147060143317175368453031918731001856:42:16 374144419156711147060143317175368453031918731001857:42:16 4773695331839566234818968439734627784374274207965088:42:16 4773695331839566234818968439734627784374274207965089:42:17 4773695331839566234818968439734627784374274207965090:42:17 52655678627806560751363688397557640770141543227981823:42:17 52655678627806560751363688397557640770141543227981824:42:18 52655678627806560751363688397557640770141543227981825:42:18 510095203738582479622335815880298130716653502143703560:42:18 510095203738582479622335815880298130716653502143703561:42:19 510095203738582479622335815880298130716653502143703562:42:19 4398046511103999999999999999999999999999999999999999999:42:19 4398046511104000000000000000000000000000000000000000000:42:20 4398046511104000000000000000000000000000000000000000001:42:20 34135823067412405261341512451566463326809746506282585240:42:20 34135823067412405261341512451566463326809746506282585241:42:21 34135823067412405261341512451566463326809746506282585242:42:21 240853296366604441364234217964444502875744809722979549183:42:21 240853296366604441364234217964444502875744809722979549184:42:22 240853296366604441364234217964444502875744809722979549185:42:22 1558005952997140033806173725098810522409738596181909282128:42:22 1558005952997140033806173725098810522409738596181909282129:42:23 1558005952997140033806173725098810522409738596181909282130:42:23 9308338151941866618592771645958951941937449991757235224575:42:23 9308338151941866618592771645958951941937449991757235224576:42:24 9308338151941866618592771645958951941937449991757235224577:42:24 51698788284564229679463043254372678347863256931304931640624:42:24 51698788284564229679463043254372678347863256931304931640625:42:25 51698788284564229679463043254372678347863256931304931640626:42:25 268460636031393932323010374318061912785738337881638804914175:42:25 268460636031393932323010374318061912785738337881638804914176:42:26 268460636031393932323010374318061912785738337881638804914177:42:26 1310020508637620352391208095712502073964245732475093456566328:42:26 1310020508637620352391208095712502073964245732475093456566329:42:27 1310020508637620352391208095712502073964245732475093456566330:42:27 6034444764301926099398767225037966746150282982201748550057983:42:27 6034444764301926099398767225037966746150282982201748550057984:42:28 6034444764301926099398767225037966746150282982201748550057985:42:28 26346074268992142099064516382762907506814419719803282255713640:42:28 26346074268992142099064516382762907506814419719803282255713641:42:29 26346074268992142099064516382762907506814419719803282255713642:42:29 109418989131512359208999999999999999999999999999999999999999999:42:29 109418989131512359209000000000000000000000000000000000000000000:42:30 109418989131512359209000000000000000000000000000000000000000001:42:30 433701716541192355457229753999917360820651622584523552060436160:42:30 433701716541192355457229753999917360820651622584523552060436161:42:31 433701716541192355457229753999917360820651622584523552060436162:42:31 1645504557321206042154969182557350504982735865633579863348609023:42:31 1645504557321206042154969182557350504982735865633579863348609024:42:32 1645504557321206042154969182557350504982735865633579863348609025:42:32 5992188611668647482797702362673386216879593110712943882639341888:42:32 5992188611668647482797702362673386216879593110712943882639341889:42:33 5992188611668647482797702362673386216879593110712943882639341890:42:33 20994934099270455805310285751415166210683338288073072603882848255:42:33 20994934099270455805310285751415166210683338288073072603882848256:42:34 20994934099270455805310285751415166210683338288073072603882848257:42:34 70934557307860443711736098025989133248003781773149967193603515624:42:34 70934557307860443711736098025989133248003781773149967193603515625:42:35 70934557307860443711736098025989133248003781773149967193603515626:42:35 231582123678838102672736490567111386503858361810075859110326173695:42:35 231582123678838102672736490567111386503858361810075859110326173696:42:36 231582123678838102672736490567111386503858361810075859110326173697:42:36 731934824502651514621160916115101341995441470527191525223322819768:42:36 731934824502651514621160916115101341995441470527191525223322819769:42:37 731934824502651514621160916115101341995441470527191525223322819770:42:37 2243422431133356731777555210583406512289750870293578431297270841343:42:37 2243422431133356731777555210583406512289750870293578431297270841344:42:38 2243422431133356731777555210583406512289750870293578431297270841345:42:38 6679031552302601070267770324571910145999065489497518192513340255920:42:38 6679031552302601070267770324571910145999065489497518192513340255921:42:39 6679031552302601070267770324571910145999065489497518192513340255922:42:39 19342813113834066795298815999999999999999999999999999999999999999999:42:39 19342813113834066795298816000000000000000000000000000000000000000000:42:40 19342813113834066795298816000000000000000000000000000000000000000001:42:40 54565982855941191947249368879497196495421462536627690767330656099280:42:40 54565982855941191947249368879497196495421462536627690767330656099281:42:41 54565982855941191947249368879497196495421462536627690767330656099282:42:41 150130937545296572356771972164254457814047970568738777235893533016063:42:41 150130937545296572356771972164254457814047970568738777235893533016064:42:42 150130937545296572356771972164254457814047970568738777235893533016065:42:42 403343566675122500462878634623535631588559593930513766350645748813848:42:42 403343566675122500462878634623535631588559593930513766350645748813849:42:43 403343566675122500462878634623535631588559593930513766350645748813850:42:43 1059283999773042383081201244407219026594101155227586543024233970139135:42:43 1059283999773042383081201244407219026594101155227586543024233970139136:42:44 1059283999773042383081201244407219026594101155227586543024233970139137:42:44 2722234781359024916265011603790537061668374008149839937686920166015624:42:44 2722234781359024916265011603790537061668374008149839937686920166015625:42:45 2722234781359024916265011603790537061668374008149839937686920166015626:42:45 6852182645858334337771366965446538815744514439690496853588881667260415:42:45 6852182645858334337771366965446538815744514439690496853588881667260416:42:46 6852182645858334337771366965446538815744514439690496853588881667260417:42:46 16908692777708688563979281162874109375742132033178319498546247522565408:42:46 16908692777708688563979281162874109375742132033178319498546247522565409:42:47 16908692777708688563979281162874109375742132033178319498546247522565410:42:47 40938504133324181524531261195663144088634407518446381937595530717691903:42:47 40938504133324181524531261195663144088634407518446381937595530717691904:42:48 40938504133324181524531261195663144088634407518446381937595530717691905:42:48 97327453648743672783790144527749033795901408624680013074608083129650400:42:48 97327453648743672783790144527749033795901408624680013074608083129650401:42:49 97327453648743672783790144527749033795901408624680013074608083129650402:42:49 227373675443232059478759765624999999999999999999999999999999999999999999:42:49 227373675443232059478759765625000000000000000000000000000000000000000000:42:50 227373675443232059478759765625000000000000000000000000000000000000000001:42:50 522332917631704782847639614130930220990757719258857132611589753499654600:42:50 522332917631704782847639614130930220990757719258857132611589753499654601:42:51 522332917631704782847639614130930220990757719258857132611589753499654602:42:51 1180702363666632876667050870747949278738381226408997464054691846951010303:42:51 1180702363666632876667050870747949278738381226408997464054691846951010304:42:52 1180702363666632876667050870747949278738381226408997464054691846951010305:42:52 2627764996340071914932060028590629703016273743509013665720935053615458008:42:52 2627764996340071914932060028590629703016273743509013665720935053615458009:42:53 2627764996340071914932060028590629703016273743509013665720935053615458010:42:53 5761531127488373687075055789072009447432815098151005727227883018011017215:42:53 5761531127488373687075055789072009447432815098151005727227883018011017216:42:54 5761531127488373687075055789072009447432815098151005727227883018011017217:42:54 12451823576496486040270183548779021694751127370182075537741184234619140624:42:54 12451823576496486040270183548779021694751127370182075537741184234619140625:42:55 12451823576496486040270183548779021694751127370182075537741184234619140626:42:55 26539768742087885687527987706116853281844223293134704738830807228099854335:42:55 26539768742087885687527987706116853281844223293134704738830807228099854336:42:56 26539768742087885687527987706116853281844223293134704738830807228099854337:42:56 55814101553908538878245585584678916959281925980693148332630423251844443248:42:56 55814101553908538878245585584678916959281925980693148332630423251844443249:42:57 55814101553908538878245585584678916959281925980693148332630423251844443250:42:57 115871260020027757769182095419415455604368209753879122781949129969750769663:42:57 115871260020027757769182095419415455604368209753879122781949129969750769664:42:58 115871260020027757769182095419415455604368209753879122781949129969750769665:42:58 237566111385928825180581197186581724740035515556906717126291161106235417080:42:58 237566111385928825180581197186581724740035515556906717126291161106235417081:42:59 237566111385928825180581197186581724740035515556906717126291161106235417082:42:59 481229803398374426442198455156735999999999999999999999999999999999999999999:42:59 481229803398374426442198455156736000000000000000000000000000000000000000000:42:60 481229803398374426442198455156736000000000000000000000000000000000000000001:42:60 963502998275379493962849646581354683437407419033192428674820139330228382120:42:60 963502998275379493962849646581354683437407419033192428674820139330228382121:42:61 963502998275379493962849646581354683437407419033192428674820139330228382122:42:61 1907440321293807005218825134272276737461586370979700379485518568438569631743:42:61 1907440321293807005218825134272276737461586370979700379485518568438569631744:42:62 1907440321293807005218825134272276737461586370979700379485518568438569631745:42:62 3735107253208426854890677539053540390278853997836851167913009474475553834368:42:62 3735107253208426854890677539053540390278853997836851167913009474475553834369:42:63 3735107253208426854890677539053540390278853997836851167913009474475553834370:42:63 7237005577332262213973186563042994240829374041602535252466099000494570602495:42:63 7237005577332262213973186563042994240829374041602535252466099000494570602496:42:64 7237005577332262213973186563042994240829374041602535252466099000494570602497:42:64 13879089584926490343185975762341169333010310440158718847669661045074462890624:42:64 13879089584926490343185975762341169333010310440158718847669661045074462890625:42:65 13879089584926490343185975762341169333010310440158718847669661045074462890626:42:65 26353924217426416565420906733183103929420815954226177249094897230047090835455:42:65 26353924217426416565420906733183103929420815954226177249094897230047090835456:42:66 26353924217426416565420906733183103929420815954226177249094897230047090835457:42:66 49561188616996901345349189252156955439051753759670367683995836545268981893288:42:66 49561188616996901345349189252156955439051753759670367683995836545268981893289:42:67 49561188616996901345349189252156955439051753759670367683995836545268981893290:42:67 92336696666154828946248724925176754783528124169603557060516245375847051034623:42:67 92336696666154828946248724925176754783528124169603557060516245375847051034624:42:68 92336696666154828946248724925176754783528124169603557060516245375847051034625:42:68 170475436437825620930817601234267694881687829390282260281137596999800372275960:42:68 170475436437825620930817601234267694881687829390282260281137596999800372275961:42:69 170475436437825620930817601234267694881687829390282260281137596999800372275962:42:69 311973482284542371301330321821976048999999999999999999999999999999999999999999:42:69 311973482284542371301330321821976049000000000000000000000000000000000000000000:42:70 311973482284542371301330321821976049000000000000000000000000000000000000000001:42:70 566044592922467932920289630256783944174352087720184706882390017513705742761840:42:70 566044592922467932920289630256783944174352087720184706882390017513705742761841:42:71 566044592922467932920289630256783944174352087720184706882390017513705742761842:42:71 1018508951079768942856287659839033239780646340393381046433745481643146696720383:42:71 1018508951079768942856287659839033239780646340393381046433745481643146696720384:42:72 1018508951079768942856287659839033239780646340393381046433745481643146696720385:42:72 1817858708606516392063752284490078897342614279715947003348265995414509863302928:42:72 1817858708606516392063752284490078897342614279715947003348265995414509863302929:42:73 1817858708606516392063752284490078897342614279715947003348265995414509863302930:42:73 3219083401259405025876738011410185866850439676924349931072031341934957849214975:42:73 3219083401259405025876738011410185866850439676924349931072031341934957849214976:42:74 3219083401259405025876738011410185866850439676924349931072031341934957849214977:42:74 5656829153421091932640292139394650968754751918510237373993732035160064697265624:42:74 5656829153421091932640292139394650968754751918510237373993732035160064697265625:42:75 5656829153421091932640292139394650968754751918510237373993732035160064697265626:42:75 9866676196178513282750508622121087027771291713432020255982347384449929918283775:42:75 9866676196178513282750508622121087027771291713432020255982347384449929918283776:42:76 9866676196178513282750508622121087027771291713432020255982347384449929918283777:42:76 17084821953903998331261548972374174279411114015538617639889642846085207685155528:42:76 17084821953903998331261548972374174279411114015538617639889642846085207685155529:42:77 17084821953903998331261548972374174279411114015538617639889642846085207685155530:42:77 29374691416157987934755503623040675099972169240528969840650064325530588528246783:42:77 29374691416157987934755503623040675099972169240528969840650064325530588528246784:42:78 29374691416157987934755503623040675099972169240528969840650064325530588528246785:42:78 50157725483905227341761748890141694180076101090840037071925071763978352502147040:42:78 50157725483905227341761748890141694180076101090840037071925071763978352502147041:42:79 50157725483905227341761748890141694180076101090840037071925071763978352502147042:42:79 85070591730234615865843651857942052863999999999999999999999999999999999999999999:42:79 85070591730234615865843651857942052864000000000000000000000000000000000000000000:42:80 85070591730234615865843651857942052864000000000000000000000000000000000000000001:42:80 143341119796678074027577337316118932770382415738332565090012937927177499182473760:42:80 143341119796678074027577337316118932770382415738332565090012937927177499182473761:42:81 143341119796678074027577337316118932770382415738332565090012937927177499182473762:42:81 239983730524532837081799266809938558844437499219256457189054784680586059892916223:42:81 239983730524532837081799266809938558844437499219256457189054784680586059892916224:42:82 239983730524532837081799266809938558844437499219256457189054784680586059892916225:42:82 399282135658682469334331901689876886678820965774126540592961885129481494196023688:42:82 399282135658682469334331901689876886678820965774126540592961885129481494196023689:42:83 399282135658682469334331901689876886678820965774126540592961885129481494196023690:42:83 660282846079864112018670862924692722210352827359133253831876609681296509586374655:42:83 660282846079864112018670862924692722210352827359133253831876609681296509586374656:42:84 660282846079864112018670862924692722210352827359133253831876609681296509586374657:42:84 1085412653046561498472094272013834548573475833101176476702676154673099517822265624:42:84 1085412653046561498472094272013834548573475833101176476702676154673099517822265625:42:85 1085412653046561498472094272013834548573475833101176476702676154673099517822265626:42:85 1773923766191766114592572004070624060993093615286883044304700169868198140807479295:42:85 1773923766191766114592572004070624060993093615286883044304700169868198140807479296:42:86 1773923766191766114592572004070624060993093615286883044304700169868198140807479297:42:86 2882760814096868620434663910506398307491925244279959004793488458559577147833269968:42:86 2882760814096868620434663910506398307491925244279959004793488458559577147833269969:42:87 2882760814096868620434663910506398307491925244279959004793488458559577147833269970:42:87 4658780299470119380741798970494472832543353577695542926641952601292625602248966143:42:87 4658780299470119380741798970494472832543353577695542926641952601292625602248966144:42:88 4658780299470119380741798970494472832543353577695542926641952601292625602248966145:42:88 7488249032982960608606585095904734981347282237297075167277004918963148603698150320:42:88 7488249032982960608606585095904734981347282237297075167277004918963148603698150321:42:89 7488249032982960608606585095904734981347282237297075167277004918963148603698150322:42:89 11972515182562019788602740026717047105680999999999999999999999999999999999999999999:42:89 11972515182562019788602740026717047105681000000000000000000000000000000000000000000:42:90 11972515182562019788602740026717047105681000000000000000000000000000000000000000001:42:90 19043136371473577209580545283689473947302569793398510007001950448648711736022397880:42:90 19043136371473577209580545283689473947302569793398510007001950448648711736022397881:42:91 19043136371473577209580545283689473947302569793398510007001950448648711736022397882:42:91 30136217979064622929676122769211029760017673635707339108510870517859779210603659263:42:91 30136217979064622929676122769211029760017673635707339108510870517859779210603659264:42:92 30136217979064622929676122769211029760017673635707339108510870517859779210603659265:42:92 47455203408538980323983898519445674548623747376968933327926349978353921482644956648:42:92 47455203408538980323983898519445674548623747376968933327926349978353921482644956649:42:93 47455203408538980323983898519445674548623747376968933327926349978353921482644956650:42:93 74365217278331100362076381405320344713153979199298426042875138716610000564084801535:42:93 74365217278331100362076381405320344713153979199298426042875138716610000564084801536:42:94 74365217278331100362076381405320344713153979199298426042875138716610000564084801537:42:94 115982221300005785365632576913480563852466162221322420236901962198317050933837890624:42:94 115982221300005785365632576913480563852466162221322420236901962198317050933837890625:42:95 115982221300005785365632576913480563852466162221322420236901962198317050933837890626:42:95 180049445273383099815761089090567230354657797726273256603133867323648139554786902015:42:95 180049445273383099815761089090567230354657797726273256603133867323648139554786902016:42:96 180049445273383099815761089090567230354657797726273256603133867323648139554786902017:42:96 278235691213844046805607971221988942088139032625098384397060765968745910963026076608:42:96 278235691213844046805607971221988942088139032625098384397060765968745910963026076609:42:97 278235691213844046805607971221988942088139032625098384397060765968745910963026076610:42:97 428050667954493384799543244465966555800571175816532986491181184060516147413284552703:42:97 428050667954493384799543244465966555800571175816532986491181184060516147413284552704:42:98 428050667954493384799543244465966555800571175816532986491181184060516147413284552705:42:98 655659220574143871710965660687518338457270174604234017129973823099254490501528605800:42:98 655659220574143871710965660687518338457270174604234017129973823099254490501528605801:42:99 655659220574143871710965660687518338457270174604234017129973823099254490501528605802:42:99 0:43:0 1:43:1 2:43:1 8796093022207:43:1 8796093022208:43:2 8796093022209:43:2 328256967394537077626:43:2 328256967394537077627:43:3 328256967394537077628:43:3 77371252455336267181195263:43:3 77371252455336267181195264:43:4 77371252455336267181195265:43:4 1136868377216160297393798828124:43:4 1136868377216160297393798828125:43:5 1136868377216160297393798828126:43:5 2887378820390246558653190730940415:43:5 2887378820390246558653190730940416:43:6 2887378820390246558653190730940417:43:6 2183814375991796599109312252753832342:43:6 2183814375991796599109312252753832343:43:7 2183814375991796599109312252753832344:43:7 680564733841876926926749214863536422911:43:7 680564733841876926926749214863536422912:43:8 680564733841876926926749214863536422913:43:8 107752636643058178097424660240453423951128:43:8 107752636643058178097424660240453423951129:43:9 107752636643058178097424660240453423951130:43:9 602400691612421918536387328824478011400331730:43:10 602400691612421918536387328824478011400331731:43:11 602400691612421918536387328824478011400331732:43:11 25397652694505813866070015990659936347412758527:43:11 25397652694505813866070015990659936347412758528:43:12 25397652694505813866070015990659936347412758529:43:12 793531459841715586708036168178024323927865769396:43:12 793531459841715586708036168178024323927865769397:43:13 793531459841715586708036168178024323927865769398:43:13 19209034394458959784875046614281821904593007673343:43:13 19209034394458959784875046614281821904593007673344:43:14 19209034394458959784875046614281821904593007673345:43:14 373184965831725409801720161340199410915374755859374:43:14 373184965831725409801720161340199410915374755859375:43:15 373184965831725409801720161340199410915374755859376:43:15 5986310706507378352962293074805895248510699696029695:43:15 5986310706507378352962293074805895248510699696029696:43:16 5986310706507378352962293074805895248510699696029697:43:16 81152820641272625991922463475488672334362661535406512:43:16 81152820641272625991922463475488672334362661535406513:43:17 81152820641272625991922463475488672334362661535406514:43:17 947802215300518093524546391156037533862547778103672831:43:17 947802215300518093524546391156037533862547778103672832:43:18 947802215300518093524546391156037533862547778103672833:43:18 9691808871033067112824380501725664483616416540730367658:43:18 9691808871033067112824380501725664483616416540730367659:43:19 9691808871033067112824380501725664483616416540730367660:43:19 87960930222079999999999999999999999999999999999999999999:43:19 87960930222080000000000000000000000000000000000000000000:43:20 87960930222080000000000000000000000000000000000000000001:43:20 716852284415660510488171761482895729863004676631934290060:43:20 716852284415660510488171761482895729863004676631934290061:43:21 716852284415660510488171761482895729863004676631934290062:43:21 5298772520065297710013152795217779063266385813905550082047:43:21 5298772520065297710013152795217779063266385813905550082048:43:22 5298772520065297710013152795217779063266385813905550082049:43:22 35834136918934220777541995677272642015423987712183913488966:43:22 35834136918934220777541995677272642015423987712183913488967:43:23 35834136918934220777541995677272642015423987712183913488968:43:23 223400115646604798846226519503014846606498799802173645389823:43:23 223400115646604798846226519503014846606498799802173645389824:43:24 223400115646604798846226519503014846606498799802173645389825:43:24 1292469707114105741986576081359316958696581423282623291015624:43:24 1292469707114105741986576081359316958696581423282623291015625:43:25 1292469707114105741986576081359316958696581423282623291015626:43:25 6979976536816242240398269732269609732429196784922608927768575:43:25 6979976536816242240398269732269609732429196784922608927768576:43:26 6979976536816242240398269732269609732429196784922608927768577:43:26 35370553733215749514562618584237555997034634776827523327290882:43:26 35370553733215749514562618584237555997034634776827523327290883:43:27 35370553733215749514562618584237555997034634776827523327290884:43:27 168964453400453930783165482301063068892207923501648959401623551:43:27 168964453400453930783165482301063068892207923501648959401623552:43:28 168964453400453930783165482301063068892207923501648959401623553:43:28 764036153800772120872870975100124317697618171874295185415695588:43:28 764036153800772120872870975100124317697618171874295185415695589:43:29 764036153800772120872870975100124317697618171874295185415695590:43:29 3282569673945370776269999999999999999999999999999999999999999999:43:29 3282569673945370776270000000000000000000000000000000000000000000:43:30 3282569673945370776270000000000000000000000000000000000000000001:43:30 13444753212776963019174122373997438185440200300120230113873520990:43:30 13444753212776963019174122373997438185440200300120230113873520991:43:31 13444753212776963019174122373997438185440200300120230113873520992:43:31 52656145834278593348959013841835216159447547700274555627155488767:43:31 52656145834278593348959013841835216159447547700274555627155488768:43:32 52656145834278593348959013841835216159447547700274555627155488769:43:32 197742224185065366932324177968221745157026572653527148127098282336:43:32 197742224185065366932324177968221745157026572653527148127098282337:43:33 197742224185065366932324177968221745157026572653527148127098282338:43:33 713827759375195497380549715548115651163233501794484468532016840703:43:33 713827759375195497380549715548115651163233501794484468532016840704:43:34 713827759375195497380549715548115651163233501794484468532016840705:43:34 2482709505775115529910763430909619663680132362060248851776123046874:43:34 2482709505775115529910763430909619663680132362060248851776123046875:43:35 2482709505775115529910763430909619663680132362060248851776123046876:43:35 8336956452438171696218513660416009914138901025162730927971742253055:43:35 8336956452438171696218513660416009914138901025162730927971742253056:43:36 8336956452438171696218513660416009914138901025162730927971742253057:43:36 27081588506598106040982953896258749653831334409506086433262944331452:43:36 27081588506598106040982953896258749653831334409506086433262944331453:43:37 27081588506598106040982953896258749653831334409506086433262944331454:43:37 85250052383067555807547098002169447467010533071155980389296291971071:43:37 85250052383067555807547098002169447467010533071155980389296291971072:43:38 85250052383067555807547098002169447467010533071155980389296291971073:43:38 260482230539801441740443042658304495693963554090403209508020269980918:43:38 260482230539801441740443042658304495693963554090403209508020269980919:43:39 260482230539801441740443042658304495693963554090403209508020269980920:43:39 773712524553362671811952639999999999999999999999999999999999999999999:43:39 773712524553362671811952640000000000000000000000000000000000000000000:43:40 773712524553362671811952640000000000000000000000000000000000000000001:43:40 2237205297093588869837224124059385056312279964001735321460556900070520:43:40 2237205297093588869837224124059385056312279964001735321460556900070521:43:41 2237205297093588869837224124059385056312279964001735321460556900070522:43:41 6305499376902456038984422830898687228190014763887028643907528386674687:43:41 6305499376902456038984422830898687228190014763887028643907528386674688:43:42 6305499376902456038984422830898687228190014763887028643907528386674689:43:42 17343773367030267519903781288812032158308062539012091953077767198995506:43:42 17343773367030267519903781288812032158308062539012091953077767198995507:43:43 17343773367030267519903781288812032158308062539012091953077767198995508:43:43 46608495990013864855572854753917637170140450830013807893066294686121983:43:43 46608495990013864855572854753917637170140450830013807893066294686121984:43:44 46608495990013864855572854753917637170140450830013807893066294686121985:43:44 122500565161156121231925522170574167775076830366742797195911407470703124:43:44 122500565161156121231925522170574167775076830366742797195911407470703125:43:45 122500565161156121231925522170574167775076830366742797195911407470703126:43:45 315200401709483379537482880410540785524247664225762855265088556693979135:43:45 315200401709483379537482880410540785524247664225762855265088556693979136:43:46 315200401709483379537482880410540785524247664225762855265088556693979137:43:46 794708560552308362507026214655083140659880205559381016431673633560574222:43:46 794708560552308362507026214655083140659880205559381016431673633560574223:43:47 794708560552308362507026214655083140659880205559381016431673633560574224:43:47 1965048198399560713177500537391830916254451560885426333004585474449211391:43:47 1965048198399560713177500537391830916254451560885426333004585474449211392:43:48 1965048198399560713177500537391830916254451560885426333004585474449211393:43:48 4769045228788439966405717081859702655999169022609320640655796073352869648:43:48 4769045228788439966405717081859702655999169022609320640655796073352869649:43:49 4769045228788439966405717081859702655999169022609320640655796073352869650:43:49 11368683772161602973937988281249999999999999999999999999999999999999999999:43:49 11368683772161602973937988281250000000000000000000000000000000000000000000:43:50 11368683772161602973937988281250000000000000000000000000000000000000000001:43:50 26638978799216943925229620320677441270528643682201713763191077428482384650:43:50 26638978799216943925229620320677441270528643682201713763191077428482384651:43:51 26638978799216943925229620320677441270528643682201713763191077428482384652:43:51 61396522910664909586686645278893362494395823773267868130843976041452535807:43:51 61396522910664909586686645278893362494395823773267868130843976041452535808:43:52 61396522910664909586686645278893362494395823773267868130843976041452535809:43:52 139271544806023811491399181515303374259862508405977724283209557841619274476:43:52 139271544806023811491399181515303374259862508405977724283209557841619274477:43:53 139271544806023811491399181515303374259862508405977724283209557841619274478:43:53 311122680884372179102053012609888510161372015300154309270305682972594929663:43:53 311122680884372179102053012609888510161372015300154309270305682972594929664:43:54 311122680884372179102053012609888510161372015300154309270305682972594929665:43:54 684850296707306732214860095182846193211312005360014154575765132904052734374:43:54 684850296707306732214860095182846193211312005360014154575765132904052734375:43:55 684850296707306732214860095182846193211312005360014154575765132904052734376:43:55 1486227049556921598501567311542543783783276504415543465374525204773591842815:43:55 1486227049556921598501567311542543783783276504415543465374525204773591842816:43:56 1486227049556921598501567311542543783783276504415543465374525204773591842817:43:56 3181403788572786716059998378326698266679069780899509454959934125355133265192:43:56 3181403788572786716059998378326698266679069780899509454959934125355133265193:43:57 3181403788572786716059998378326698266679069780899509454959934125355133265194:43:57 6720533081161609950612561534326096425053356165724989121353049538245544640511:43:57 6720533081161609950612561534326096425053356165724989121353049538245544640512:43:58 6720533081161609950612561534326096425053356165724989121353049538245544640513:43:58 14016400571769800685654290634008321759662095417857496310451178505267889607778:43:58 14016400571769800685654290634008321759662095417857496310451178505267889607779:43:59 14016400571769800685654290634008321759662095417857496310451178505267889607780:43:59 28873788203902465586531907309404159999999999999999999999999999999999999999999:43:59 28873788203902465586531907309404160000000000000000000000000000000000000000000:43:60 28873788203902465586531907309404160000000000000000000000000000000000000000001:43:60 58773682894798149131733828441462635689681852561024738149164028499143931309380:43:60 58773682894798149131733828441462635689681852561024738149164028499143931309381:43:61 58773682894798149131733828441462635689681852561024738149164028499143931309382:43:61 118261299920216034323567158324881157722618355000741423528102151243191317168127:43:61 118261299920216034323567158324881157722618355000741423528102151243191317168128:43:62 118261299920216034323567158324881157722618355000741423528102151243191317168129:43:62 235311756952130891858112684960373044587567801863721623578519596891959891565246:43:62 235311756952130891858112684960373044587567801863721623578519596891959891565247:43:63 235311756952130891858112684960373044587567801863721623578519596891959891565248:43:63 463168356949264781694283940034751631413079938662562256157830336031652518559743:43:63 463168356949264781694283940034751631413079938662562256157830336031652518559744:43:64 463168356949264781694283940034751631413079938662562256157830336031652518559745:43:64 902140823020221872307088424552176006645670178610316725098527967929840087890624:43:64 902140823020221872307088424552176006645670178610316725098527967929840087890625:43:65 902140823020221872307088424552176006645670178610316725098527967929840087890626:43:65 1739358998350143493317779844390084859341773852978927698440263217183107995140095:43:65 1739358998350143493317779844390084859341773852978927698440263217183107995140096:43:66 1739358998350143493317779844390084859341773852978927698440263217183107995140097:43:66 3320599637338792390138395679894516014416467501897914634827721048533021786850362:43:66 3320599637338792390138395679894516014416467501897914634827721048533021786850363:43:67 3320599637338792390138395679894516014416467501897914634827721048533021786850364:43:67 6278895373298528368344913294912019325279912443533041880115104685557599470354431:43:67 6278895373298528368344913294912019325279912443533041880115104685557599470354432:43:68 6278895373298528368344913294912019325279912443533041880115104685557599470354433:43:68 11762805114209967844226414485164470946836460227929475959398494192986225687041308:43:68 11762805114209967844226414485164470946836460227929475959398494192986225687041309:43:69 11762805114209967844226414485164470946836460227929475959398494192986225687041310:43:69 21838143759917965991093122527538323429999999999999999999999999999999999999999999:43:69 21838143759917965991093122527538323430000000000000000000000000000000000000000000:43:70 21838143759917965991093122527538323430000000000000000000000000000000000000000001:43:70 40189166097495223237340563748231660036378998228133114188649691243473107736090710:43:70 40189166097495223237340563748231660036378998228133114188649691243473107736090711:43:71 40189166097495223237340563748231660036378998228133114188649691243473107736090712:43:71 73332644477743363885652711508410393264206536508323435343229674678306562163867647:43:71 73332644477743363885652711508410393264206536508323435343229674678306562163867648:43:72 73332644477743363885652711508410393264206536508323435343229674678306562163867649:43:72 132703685728275696620653916767775759506010842419264131244423417665259220021113816:43:72 132703685728275696620653916767775759506010842419264131244423417665259220021113817:43:73 132703685728275696620653916767775759506010842419264131244423417665259220021113818:43:73 238212171693195971914878612844353754146932536092401894899330319303186880841908223:43:73 238212171693195971914878612844353754146932536092401894899330319303186880841908224:43:74 238212171693195971914878612844353754146932536092401894899330319303186880841908225:43:74 424262186506581894948021910454598822656606393888267803049529902637004852294921874:43:74 424262186506581894948021910454598822656606393888267803049529902637004852294921875:43:75 424262186506581894948021910454598822656606393888267803049529902637004852294921876:43:75 749867390909567009489038655281202614110618170220833539454658401218194673789566975:43:75 749867390909567009489038655281202614110618170220833539454658401218194673789566976:43:76 749867390909567009489038655281202614110618170220833539454658401218194673789566977:43:76 1315531290450607871507139270872811419514655779196473558271502499148560991756975732:43:76 1315531290450607871507139270872811419514655779196473558271502499148560991756975733:43:77 1315531290450607871507139270872811419514655779196473558271502499148560991756975734:43:77 2291225930460323058910929282597172657797829200761259647570705017391385905203249151:43:77 2291225930460323058910929282597172657797829200761259647570705017391385905203249152:43:78 2291225930460323058910929282597172657797829200761259647570705017391385905203249153:43:78 3962460313228512959999178162321193840226011986176362928682080669354289847669616238:43:78 3962460313228512959999178162321193840226011986176362928682080669354289847669616239:43:79 3962460313228512959999178162321193840226011986176362928682080669354289847669616240:43:79 6805647338418769269267492148635364229119999999999999999999999999999999999999999999:43:79 6805647338418769269267492148635364229120000000000000000000000000000000000000000000:43:80 6805647338418769269267492148635364229120000000000000000000000000000000000000000001:43:80 11610630703530923996233764322605633554400975674804937772291047972101377433780374640:43:80 11610630703530923996233764322605633554400975674804937772291047972101377433780374641:43:81 11610630703530923996233764322605633554400975674804937772291047972101377433780374642:43:81 19678665903011692640707539878414961825243874935979029489502492343808056911219130367:43:81 19678665903011692640707539878414961825243874935979029489502492343808056911219130368:43:82 19678665903011692640707539878414961825243874935979029489502492343808056911219130369:43:82 33140417259670644954749547840259781594342140159252502869215836465746964018269966186:43:82 33140417259670644954749547840259781594342140159252502869215836465746964018269966187:43:83 33140417259670644954749547840259781594342140159252502869215836465746964018269966188:43:83 55463759070708585409568352485674188665669637498167193321877635213228906805255471103:43:83 55463759070708585409568352485674188665669637498167193321877635213228906805255471104:43:84 55463759070708585409568352485674188665669637498167193321877635213228906805255471105:43:84 92260075508957727370128013121175936628745445813600000519727473147213459014892578124:43:84 92260075508957727370128013121175936628745445813600000519727473147213459014892578125:43:85 92260075508957727370128013121175936628745445813600000519727473147213459014892578126:43:85 152557443892491885854961192350073669245406050914671941810204214608665040109443219455:43:85 152557443892491885854961192350073669245406050914671941810204214608665040109443219456:43:86 152557443892491885854961192350073669245406050914671941810204214608665040109443219457:43:86 250800190826427569977815760214056652751797496252356433417033495894683211861494487302:43:86 250800190826427569977815760214056652751797496252356433417033495894683211861494487303:43:87 250800190826427569977815760214056652751797496252356433417033495894683211861494487304:43:87 409972666353370505505278309403513609263815114837207777544491828913751052997909020671:43:87 409972666353370505505278309403513609263815114837207777544491828913751052997909020672:43:88 409972666353370505505278309403513609263815114837207777544491828913751052997909020673:43:88 666454163935483494165986073535521413339908119119439689887653437787720225729135378568:43:88 666454163935483494165986073535521413339908119119439689887653437787720225729135378569:43:89 666454163935483494165986073535521413339908119119439689887653437787720225729135378570:43:89 1077526366430581780974246602404534239511289999999999999999999999999999999999999999999:43:89 1077526366430581780974246602404534239511290000000000000000000000000000000000000000000:43:90 1077526366430581780974246602404534239511290000000000000000000000000000000000000000001:43:90 1732925409804095526071829620815742129204533851199264410637177490827032767978038207170:43:90 1732925409804095526071829620815742129204533851199264410637177490827032767978038207171:43:91 1732925409804095526071829620815742129204533851199264410637177490827032767978038207172:43:91 2772532054073945309530203294767414737921625974485075197983000087643099687375536652287:43:91 2772532054073945309530203294767414737921625974485075197983000087643099687375536652288:43:92 2772532054073945309530203294767414737921625974485075197983000087643099687375536652289:43:92 4413333916994125170130502562308447733022008506058110799497150547986914697885980968356:43:92 4413333916994125170130502562308447733022008506058110799497150547986914697885980968357:43:93 4413333916994125170130502562308447733022008506058110799497150547986914697885980968358:43:93 6990330424163123434035179852100112403036474044734052048030263039361340053023971344383:43:93 6990330424163123434035179852100112403036474044734052048030263039361340053023971344384:43:94 6990330424163123434035179852100112403036474044734052048030263039361340053023971344385:43:94 11018311023500549609735094806780653565984285411025629922505686408840119838714599609374:43:94 11018311023500549609735094806780653565984285411025629922505686408840119838714599609375:43:95 11018311023500549609735094806780653565984285411025629922505686408840119838714599609376:43:95 17284746746244777582313064552694454114047148581722232633900851263070221397259542593535:43:95 17284746746244777582313064552694454114047148581722232633900851263070221397259542593536:43:96 17284746746244777582313064552694454114047148581722232633900851263070221397259542593537:43:96 26988862047742872540143973208532927382549486164634543286514894298968353363413529431072:43:96 26988862047742872540143973208532927382549486164634543286514894298968353363413529431073:43:97 26988862047742872540143973208532927382549486164634543286514894298968353363413529431074:43:97 41948965459540351710355237957664722468455975230020232676135756037930582446501886164991:43:97 41948965459540351710355237957664722468455975230020232676135756037930582446501886164992:43:98 41948965459540351710355237957664722468455975230020232676135756037930582446501886164993:43:98 64910262836840243299385600408064315507269747285819167695867408486826194559651331974298:43:98 64910262836840243299385600408064315507269747285819167695867408486826194559651331974299:43:99 64910262836840243299385600408064315507269747285819167695867408486826194559651331974300:43:99 0:44:0 1:44:1 2:44:1 17592186044415:44:1 17592186044416:44:2 17592186044417:44:2 984770902183611232880:44:2 984770902183611232881:44:3 984770902183611232882:44:3 309485009821345068724781055:44:3 309485009821345068724781056:44:4 309485009821345068724781057:44:4 5684341886080801486968994140624:44:4 5684341886080801486968994140625:44:5 5684341886080801486968994140626:44:5 17324272922341479351919144385642495:44:5 17324272922341479351919144385642496:44:6 17324272922341479351919144385642497:44:6 15286700631942576193765185769276826400:44:6 15286700631942576193765185769276826401:44:7 15286700631942576193765185769276826402:44:7 5444517870735015415413993718908291383295:44:7 5444517870735015415413993718908291383296:44:8 5444517870735015415413993718908291383297:44:8 969773729787523602876821942164080815560160:44:8 969773729787523602876821942164080815560161:44:9 969773729787523602876821942164080815560162:44:9 6626407607736641103900260617069258125403649040:44:10 6626407607736641103900260617069258125403649041:44:11 6626407607736641103900260617069258125403649042:44:11 304771832334069766392840191887919236168953102335:44:11 304771832334069766392840191887919236168953102336:44:12 304771832334069766392840191887919236168953102337:44:12 10315908977942302627204470186314316211062255002160:44:12 10315908977942302627204470186314316211062255002161:44:13 10315908977942302627204470186314316211062255002162:44:13 268926481522425436988250652599945506664302107426815:44:13 268926481522425436988250652599945506664302107426816:44:14 268926481522425436988250652599945506664302107426817:44:14 5597774487475881147025802420102991163730621337890624:44:14 5597774487475881147025802420102991163730621337890625:44:15 5597774487475881147025802420102991163730621337890626:44:15 95780971304118053647396689196894323976171195136475135:44:15 95780971304118053647396689196894323976171195136475136:44:16 95780971304118053647396689196894323976171195136475137:44:16 1379597950901634641862681879083307429684165246101910720:44:16 1379597950901634641862681879083307429684165246101910721:44:17 1379597950901634641862681879083307429684165246101910722:44:17 17060439875409325683441835040808675609525860005866110975:44:17 17060439875409325683441835040808675609525860005866110976:44:18 17060439875409325683441835040808675609525860005866110977:44:18 184144368549628275143663229532787625188711914273876985520:44:18 184144368549628275143663229532787625188711914273876985521:44:19 184144368549628275143663229532787625188711914273876985522:44:19 1759218604441599999999999999999999999999999999999999999999:44:19 1759218604441600000000000000000000000000000000000000000000:44:20 1759218604441600000000000000000000000000000000000000000001:44:20 15053897972728870720251606991140810327123098209270620091280:44:20 15053897972728870720251606991140810327123098209270620091281:44:21 15053897972728870720251606991140810327123098209270620091282:44:21 116572995441436549620289361494791139391860487905922101805055:44:21 116572995441436549620289361494791139391860487905922101805056:44:22 116572995441436549620289361494791139391860487905922101805057:44:22 824185149135487077883465900577270766354751717380230010246240:44:22 824185149135487077883465900577270766354751717380230010246241:44:23 824185149135487077883465900577270766354751717380230010246242:44:23 5361602775518515172309436468072356318555971195252167489355775:44:23 5361602775518515172309436468072356318555971195252167489355776:44:24 5361602775518515172309436468072356318555971195252167489355777:44:24 32311742677852643549664402033982923967414535582065582275390624:44:24 32311742677852643549664402033982923967414535582065582275390625:44:25 32311742677852643549664402033982923967414535582065582275390626:44:25 181479389957222298250355013039009853043159116407987832121982975:44:25 181479389957222298250355013039009853043159116407987832121982976:44:26 181479389957222298250355013039009853043159116407987832121982977:44:26 955004950796825236893190701774414011919935138974343129836853840:44:26 955004950796825236893190701774414011919935138974343129836853841:44:27 955004950796825236893190701774414011919935138974343129836853842:44:27 4731004695212710061928633504429765928981821858046170863245459455:44:27 4731004695212710061928633504429765928981821858046170863245459456:44:28 4731004695212710061928633504429765928981821858046170863245459457:44:28 22157048460222391505313258277903605213230926984354560377055172080:44:28 22157048460222391505313258277903605213230926984354560377055172081:44:29 22157048460222391505313258277903605213230926984354560377055172082:44:29 98477090218361123288099999999999999999999999999999999999999999999:44:29 98477090218361123288100000000000000000000000000000000000000000000:44:30 98477090218361123288100000000000000000000000000000000000000000001:44:30 416787349596085853594397793593920583748646209303727133530079150720:44:30 416787349596085853594397793593920583748646209303727133530079150721:44:31 416787349596085853594397793593920583748646209303727133530079150722:44:31 1684996666696914987166688442938726917102321526408785780068975640575:44:31 1684996666696914987166688442938726917102321526408785780068975640576:44:32 1684996666696914987166688442938726917102321526408785780068975640577:44:32 6525493398107157108766697872951317590181876897566395888194243317120:44:32 6525493398107157108766697872951317590181876897566395888194243317121:44:33 6525493398107157108766697872951317590181876897566395888194243317122:44:33 24270143818756646910938690328635932139549939061012471930088572583935:44:33 24270143818756646910938690328635932139549939061012471930088572583936:44:34 24270143818756646910938690328635932139549939061012471930088572583937:44:34 86894832702129043546876720081836688228804632672108709812164306640624:44:34 86894832702129043546876720081836688228804632672108709812164306640625:44:35 86894832702129043546876720081836688228804632672108709812164306640626:44:35 300130432287774181063866491774976356909000436905858313406982721110015:44:35 300130432287774181063866491774976356909000436905858313406982721110016:44:36 300130432287774181063866491774976356909000436905858313406982721110017:44:36 1002018774744129923516369294161573737191759373151725198030728940263760:44:36 1002018774744129923516369294161573737191759373151725198030728940263761:44:37 1002018774744129923516369294161573737191759373151725198030728940263762:44:37 3239501990556567120686789724082439003746400256703927254793259094900735:44:37 3239501990556567120686789724082439003746400256703927254793259094900736:44:38 3239501990556567120686789724082439003746400256703927254793259094900737:44:38 10158806991052256227877278663673875332064578609525725170812790529255840:44:38 10158806991052256227877278663673875332064578609525725170812790529255841:44:39 10158806991052256227877278663673875332064578609525725170812790529255842:44:39 30948500982134506872478105599999999999999999999999999999999999999999999:44:39 30948500982134506872478105600000000000000000000000000000000000000000000:44:40 30948500982134506872478105600000000000000000000000000000000000000000001:44:40 91725417180837143663326189086434787308803478524071148179882832902891360:44:40 91725417180837143663326189086434787308803478524071148179882832902891361:44:41 91725417180837143663326189086434787308803478524071148179882832902891362:44:41 264830973829903153637345758897744863583980620083255203044116192240336895:44:41 264830973829903153637345758897744863583980620083255203044116192240336896:44:42 264830973829903153637345758897744863583980620083255203044116192240336897:44:42 745782254782301503355862595418917382807246689177519953982343989556806800:44:42 745782254782301503355862595418917382807246689177519953982343989556806801:44:43 745782254782301503355862595418917382807246689177519953982343989556806802:44:43 2050773823560610053645205609172376035486179836520607547294916966189367295:44:43 2050773823560610053645205609172376035486179836520607547294916966189367296:44:44 2050773823560610053645205609172376035486179836520607547294916966189367297:44:44 5512525432252025455436648497675837549878457366503425873816013336181640624:44:44 5512525432252025455436648497675837549878457366503425873816013336181640625:44:45 5512525432252025455436648497675837549878457366503425873816013336181640626:44:45 14499218478636235458724212498884876134115392554385091342194073607923040255:44:45 14499218478636235458724212498884876134115392554385091342194073607923040256:44:46 14499218478636235458724212498884876134115392554385091342194073607923040257:44:46 37351302345958493037830232088788907611014369661290907772288660777346988480:44:46 37351302345958493037830232088788907611014369661290907772288660777346988481:44:47 37351302345958493037830232088788907611014369661290907772288660777346988482:44:47 94322313523178914232520025794807883980213674922500463984220102773562146815:44:47 94322313523178914232520025794807883980213674922500463984220102773562146816:44:48 94322313523178914232520025794807883980213674922500463984220102773562146817:44:48 233683216210633558353880137011125430143959282107856711392134007594290612800:44:48 233683216210633558353880137011125430143959282107856711392134007594290612801:44:49 233683216210633558353880137011125430143959282107856711392134007594290612802:44:49 568434188608080148696899414062499999999999999999999999999999999999999999999:44:49 568434188608080148696899414062500000000000000000000000000000000000000000000:44:50 568434188608080148696899414062500000000000000000000000000000000000000000001:44:50 1358587918760064140186710636354549504796960827792287401922744948852601617200:44:50 1358587918760064140186710636354549504796960827792287401922744948852601617201:44:51 1358587918760064140186710636354549504796960827792287401922744948852601617202:44:51 3192619191354575298507705554502454849708582836209929142803886754155531862015:44:51 3192619191354575298507705554502454849708582836209929142803886754155531862016:44:52 3192619191354575298507705554502454849708582836209929142803886754155531862017:44:52 7381391874719262009044156620311078835772712945516819387010106565605821547280:44:52 7381391874719262009044156620311078835772712945516819387010106565605821547281:44:53 7381391874719262009044156620311078835772712945516819387010106565605821547282:44:53 16800624767756097671510862680933979548714088826208332700596506880520126201855:44:53 16800624767756097671510862680933979548714088826208332700596506880520126201856:44:54 16800624767756097671510862680933979548714088826208332700596506880520126201857:44:54 37666766318901870271817305235056540626622160294800778501667082309722900390624:44:54 37666766318901870271817305235056540626622160294800778501667082309722900390625:44:55 37666766318901870271817305235056540626622160294800778501667082309722900390626:44:55 83228714775187609516087769446382451891863484247270434060973411467321143197695:44:55 83228714775187609516087769446382451891863484247270434060973411467321143197696:44:56 83228714775187609516087769446382451891863484247270434060973411467321143197697:44:56 181340015948648842815419907564621801200706977511272038932716245145242596116000:44:56 181340015948648842815419907564621801200706977511272038932716245145242596116001:44:57 181340015948648842815419907564621801200706977511272038932716245145242596116002:44:57 389790918707373377135528568990913592653094657612049369038476873218241589149695:44:57 389790918707373377135528568990913592653094657612049369038476873218241589149696:44:58 389790918707373377135528568990913592653094657612049369038476873218241589149697:44:58 826967633734418240453603147406490983820063629653592282316619531810805486858960:44:58 826967633734418240453603147406490983820063629653592282316619531810805486858961:44:59 826967633734418240453603147406490983820063629653592282316619531810805486858962:44:59 1732427292234147935191914438564249599999999999999999999999999999999999999999999:44:59 1732427292234147935191914438564249600000000000000000000000000000000000000000000:44:60 1732427292234147935191914438564249600000000000000000000000000000000000000000001:44:60 3585194656582687097035763534929220777070593006222509027099005738447779809872240:44:60 3585194656582687097035763534929220777070593006222509027099005738447779809872241:44:61 3585194656582687097035763534929220777070593006222509027099005738447779809872242:44:61 7332200595053394128061163816142631778802338010045968258742333377077861664423935:44:61 7332200595053394128061163816142631778802338010045968258742333377077861664423936:44:62 7332200595053394128061163816142631778802338010045968258742333377077861664423937:44:62 14824640687984246187061099152503501809016771517414462285446734604193473168610560:44:62 14824640687984246187061099152503501809016771517414462285446734604193473168610561:44:63 14824640687984246187061099152503501809016771517414462285446734604193473168610562:44:63 29642774844752946028434172162224104410437116074403984394101141506025761187823615:44:63 29642774844752946028434172162224104410437116074403984394101141506025761187823616:44:64 29642774844752946028434172162224104410437116074403984394101141506025761187823617:44:64 58639153496314421699960747595891440431968561609670587131404317915439605712890624:44:64 58639153496314421699960747595891440431968561609670587131404317915439605712890625:44:65 58639153496314421699960747595891440431968561609670587131404317915439605712890626:44:65 114797693891109470558973469729745600716557074296609228097057372334085127679246335:44:65 114797693891109470558973469729745600716557074296609228097057372334085127679246336:44:66 114797693891109470558973469729745600716557074296609228097057372334085127679246337:44:66 222480175701699090139272510552932572965903322627160280533457310251712459718974320:44:66 222480175701699090139272510552932572965903322627160280533457310251712459718974321:44:67 222480175701699090139272510552932572965903322627160280533457310251712459718974322:44:67 426964885384299929047454104054017314119034046160246847847827118617916763984101375:44:67 426964885384299929047454104054017314119034046160246847847827118617916763984101376:44:68 426964885384299929047454104054017314119034046160246847847827118617916763984101377:44:68 811633552880487781251622599476348495331715755727133841198496099316049572405850320:44:68 811633552880487781251622599476348495331715755727133841198496099316049572405850321:44:69 811633552880487781251622599476348495331715755727133841198496099316049572405850322:44:69 1528670063194257619376518576927682640099999999999999999999999999999999999999999999:44:69 1528670063194257619376518576927682640100000000000000000000000000000000000000000000:44:70 1528670063194257619376518576927682640100000000000000000000000000000000000000000001:44:70 2853430792922160849851180026124447862582908874197451107394128078286590649262440480:44:70 2853430792922160849851180026124447862582908874197451107394128078286590649262440481:44:71 2853430792922160849851180026124447862582908874197451107394128078286590649262440482:44:71 5279950402397522199766995228605548315022870628599287344712536576838072475798470655:44:71 5279950402397522199766995228605548315022870628599287344712536576838072475798470656:44:72 5279950402397522199766995228605548315022870628599287344712536576838072475798470657:44:72 9687369058164125853307735924047630443938791496606281580842909489563923061541308640:44:72 9687369058164125853307735924047630443938791496606281580842909489563923061541308641:44:73 9687369058164125853307735924047630443938791496606281580842909489563923061541308642:44:73 17627700705296501921701017350482177806873007670837740222550443628435829182301208575:44:73 17627700705296501921701017350482177806873007670837740222550443628435829182301208576:44:74 17627700705296501921701017350482177806873007670837740222550443628435829182301208577:44:74 31819663987993642121101643284094911699245479541620085228714742697775363922119140624:44:74 31819663987993642121101643284094911699245479541620085228714742697775363922119140625:44:75 31819663987993642121101643284094911699245479541620085228714742697775363922119140626:44:75 56989921709127092721166937801371398672406980936783348998554038492582795208007090175:44:75 56989921709127092721166937801371398672406980936783348998554038492582795208007090176:44:76 56989921709127092721166937801371398672406980936783348998554038492582795208007090177:44:76 101295909364696806106049723857206479302628494998128463986905692434439196365287131440:44:76 101295909364696806106049723857206479302628494998128463986905692434439196365287131441:44:77 101295909364696806106049723857206479302628494998128463986905692434439196365287131442:44:77 178715622575905198595052484042579467308230677659378252510514991356528100605853433855:44:77 178715622575905198595052484042579467308230677659378252510514991356528100605853433856:44:78 178715622575905198595052484042579467308230677659378252510514991356528100605853433857:44:78 313034364745052523839935074823374313377854946907932671365884372878988897965899682880:44:78 313034364745052523839935074823374313377854946907932671365884372878988897965899682881:44:79 313034364745052523839935074823374313377854946907932671365884372878988897965899682882:44:79 544451787073501541541399371890829138329599999999999999999999999999999999999999999999:44:79 544451787073501541541399371890829138329600000000000000000000000000000000000000000000:44:80 544451787073501541541399371890829138329600000000000000000000000000000000000000000001:44:80 940461086986004843694934910131056317906479029659199959555574885740211572136210345920:44:80 940461086986004843694934910131056317906479029659199959555574885740211572136210345921:44:81 940461086986004843694934910131056317906479029659199959555574885740211572136210345922:44:81 1613650604046958796538018270030026869669997744750280418139204372192260666719968690175:44:81 1613650604046958796538018270030026869669997744750280418139204372192260666719968690176:44:82 1613650604046958796538018270030026869669997744750280418139204372192260666719968690177:44:82 2750654632552663531244212470741561872330397633217957738144914426656998013516407193520:44:82 2750654632552663531244212470741561872330397633217957738144914426656998013516407193521:44:83 2750654632552663531244212470741561872330397633217957738144914426656998013516407193522:44:83 4658955761939521174403741608796631847916249549846044239037721357911228171641459572735:44:83 4658955761939521174403741608796631847916249549846044239037721357911228171641459572736:44:84 4658955761939521174403741608796631847916249549846044239037721357911228171641459572737:44:84 7842106418261406826460881115299954613443362894156000044176835217513144016265869140624:44:84 7842106418261406826460881115299954613443362894156000044176835217513144016265869140625:44:85 7842106418261406826460881115299954613443362894156000044176835217513144016265869140626:44:85 13119940174754302183526662542106335555104920378661786995677562456345193449412116873215:44:85 13119940174754302183526662542106335555104920378661786995677562456345193449412116873216:44:86 13119940174754302183526662542106335555104920378661786995677562456345193449412116873217:44:86 21819616601899198588069971138622928789406382173955009707281914142837439431950020395360:44:86 21819616601899198588069971138622928789406382173955009707281914142837439431950020395361:44:87 21819616601899198588069971138622928789406382173955009707281914142837439431950020395362:44:87 36077594639096604484464491227509197615215730105674284423915280944410092663815993819135:44:87 36077594639096604484464491227509197615215730105674284423915280944410092663815993819136:44:88 36077594639096604484464491227509197615215730105674284423915280944410092663815993819137:44:88 59314420590258030980772760544661405787251822601630132400001155963107100089893048692640:44:88 59314420590258030980772760544661405787251822601630132400001155963107100089893048692641:44:89 59314420590258030980772760544661405787251822601630132400001155963107100089893048692642:44:89 96977372978752360287682194216408081556016099999999999999999999999999999999999999999999:44:89 96977372978752360287682194216408081556016100000000000000000000000000000000000000000000:44:90 96977372978752360287682194216408081556016100000000000000000000000000000000000000000001:44:90 157696212292172692872536495494232533757612580459133061367983151665259981886001476852560:44:90 157696212292172692872536495494232533757612580459133061367983151665259981886001476852561:44:91 157696212292172692872536495494232533757612580459133061367983151665259981886001476852562:44:91 255072948974802968476778703118602155888789589652626918214436008063165171238549372010495:44:91 255072948974802968476778703118602155888789589652626918214436008063165171238549372010496:44:92 255072948974802968476778703118602155888789589652626918214436008063165171238549372010497:44:92 410440054280453640822136738294685639171046791063404304353235000962783066903396230057200:44:92 410440054280453640822136738294685639171046791063404304353235000962783066903396230057201:44:93 410440054280453640822136738294685639171046791063404304353235000962783066903396230057202:44:93 657091059871333602799306906097410565885428560205000892514844725699965964984253306372095:44:93 657091059871333602799306906097410565885428560205000892514844725699965964984253306372096:44:94 657091059871333602799306906097410565885428560205000892514844725699965964984253306372097:44:94 1046739547232552212924834006644162088768507114047434842638040208839811384677886962890624:44:94 1046739547232552212924834006644162088768507114047434842638040208839811384677886962890625:44:95 1046739547232552212924834006644162088768507114047434842638040208839811384677886962890626:44:95 1659335687639498647902054197058667594948526263845334332854481721254741254136916088979455:44:95 1659335687639498647902054197058667594948526263845334332854481721254741254136916088979456:44:96 1659335687639498647902054197058667594948526263845334332854481721254741254136916088979457:44:96 2617919618631058636393965401227693956107300157969550698791944746999930276251112354814080:44:96 2617919618631058636393965401227693956107300157969550698791944746999930276251112354814081:44:97 2617919618631058636393965401227693956107300157969550698791944746999930276251112354814082:44:97 4110998615034954467614813319851142801908685572541982802261304091717197079757184844169215:44:97 4110998615034954467614813319851142801908685572541982802261304091717197079757184844169216:44:98 4110998615034954467614813319851142801908685572541982802261304091717197079757184844169217:44:98 6426116020847184086639174440398367235219704981296097601890873440195793261405481865455600:44:98 6426116020847184086639174440398367235219704981296097601890873440195793261405481865455601:44:99 6426116020847184086639174440398367235219704981296097601890873440195793261405481865455602:44:99 0:45:0 1:45:1 2:45:1 35184372088831:45:1 35184372088832:45:2 35184372088833:45:2 2954312706550833698642:45:2 2954312706550833698643:45:3 2954312706550833698644:45:3 1237940039285380274899124223:45:3 1237940039285380274899124224:45:4 1237940039285380274899124225:45:4 28421709430404007434844970703124:45:4 28421709430404007434844970703125:45:5 28421709430404007434844970703126:45:5 103945637534048876111514866313854975:45:5 103945637534048876111514866313854976:45:6 103945637534048876111514866313854977:45:6 107006904423598033356356300384937784806:45:6 107006904423598033356356300384937784807:45:7 107006904423598033356356300384937784808:45:7 43556142965880123323311949751266331066367:45:7 43556142965880123323311949751266331066368:45:8 43556142965880123323311949751266331066369:45:8 8727963568087712425891397479476727340041448:45:8 8727963568087712425891397479476727340041449:45:9 8727963568087712425891397479476727340041450:45:9 72890483685103052142902866787761839379440139450:45:10 72890483685103052142902866787761839379440139451:45:11 72890483685103052142902866787761839379440139452:45:11 3657261988008837196714082302655030834027437228031:45:11 3657261988008837196714082302655030834027437228032:45:12 3657261988008837196714082302655030834027437228033:45:12 134106816713249934153658112422086110743809315028092:45:12 134106816713249934153658112422086110743809315028093:45:13 134106816713249934153658112422086110743809315028094:45:13 3764970741313956117835509136399237093300229503975423:45:13 3764970741313956117835509136399237093300229503975424:45:14 3764970741313956117835509136399237093300229503975425:45:14 83966617312138217205387036301544867455959320068359374:45:14 83966617312138217205387036301544867455959320068359375:45:15 83966617312138217205387036301544867455959320068359376:45:15 1532495540865888858358347027150309183618739122183602175:45:15 1532495540865888858358347027150309183618739122183602176:45:16 1532495540865888858358347027150309183618739122183602177:45:16 23453165165327788911665591944416226304630809183732482256:45:16 23453165165327788911665591944416226304630809183732482257:45:17 23453165165327788911665591944416226304630809183732482258:45:17 307087917757367862301953030734556160971465480105589997567:45:17 307087917757367862301953030734556160971465480105589997568:45:18 307087917757367862301953030734556160971465480105589997569:45:18 3498743002442937227729601361122964878585526371203662724898:45:18 3498743002442937227729601361122964878585526371203662724899:45:19 3498743002442937227729601361122964878585526371203662724900:45:19 35184372088831999999999999999999999999999999999999999999999:45:19 35184372088832000000000000000000000000000000000000000000000:45:20 35184372088832000000000000000000000000000000000000000000001:45:20 316131857427306285125283746813957016869585062394683021916900:45:20 316131857427306285125283746813957016869585062394683021916901:45:21 316131857427306285125283746813957016869585062394683021916902:45:21 2564605899711604091646365952885405066620930733930286239711231:45:21 2564605899711604091646365952885405066620930733930286239711232:45:22 2564605899711604091646365952885405066620930733930286239711233:45:22 18956258430116202791319715713277227626159289499745290235663542:45:22 18956258430116202791319715713277227626159289499745290235663543:45:23 18956258430116202791319715713277227626159289499745290235663544:45:23 128678466612444364135426475233736551645343308686052019744538623:45:23 128678466612444364135426475233736551645343308686052019744538624:45:24 128678466612444364135426475233736551645343308686052019744538625:45:24 807793566946316088741610050849573099185363389551639556884765624:45:24 807793566946316088741610050849573099185363389551639556884765625:45:25 807793566946316088741610050849573099185363389551639556884765626:45:25 4718464138887779754509230339014256179122137026607683635171557375:45:25 4718464138887779754509230339014256179122137026607683635171557376:45:26 4718464138887779754509230339014256179122137026607683635171557377:45:26 25785133671514281396116148947909178321838248752307264505595053706:45:26 25785133671514281396116148947909178321838248752307264505595053707:45:27 25785133671514281396116148947909178321838248752307264505595053708:45:27 132468131465955881734001738124033446011491012025292784170872864767:45:27 132468131465955881734001738124033446011491012025292784170872864768:45:28 132468131465955881734001738124033446011491012025292784170872864769:45:28 642554405346449353654084490059204551183696882546282250934599990348:45:28 642554405346449353654084490059204551183696882546282250934599990349:45:29 642554405346449353654084490059204551183696882546282250934599990350:45:29 2954312706550833698642999999999999999999999999999999999999999999999:45:29 2954312706550833698643000000000000000000000000000000000000000000000:45:30 2954312706550833698643000000000000000000000000000000000000000000001:45:30 12920407837478661461426331601411538096208032488415541139432453672350:45:30 12920407837478661461426331601411538096208032488415541139432453672351:45:31 12920407837478661461426331601411538096208032488415541139432453672352:45:31 53919893334301279589334030174039261347274288845081144962207220498431:45:31 53919893334301279589334030174039261347274288845081144962207220498432:45:32 53919893334301279589334030174039261347274288845081144962207220498433:45:32 215341282137536184589301029807393480476001937619691064310410029464992:45:32 215341282137536184589301029807393480476001937619691064310410029464993:45:33 215341282137536184589301029807393480476001937619691064310410029464994:45:33 825184889837725994971915471173621692744697928074424045623011467853823:45:33 825184889837725994971915471173621692744697928074424045623011467853824:45:34 825184889837725994971915471173621692744697928074424045623011467853825:45:34 3041319144574516524140685202864284088008162143523804843425750732421874:45:34 3041319144574516524140685202864284088008162143523804843425750732421875:45:35 3041319144574516524140685202864284088008162143523804843425750732421876:45:35 10804695562359870518299193703899148848724015728610899282651377959960575:45:35 10804695562359870518299193703899148848724015728610899282651377959960576:45:36 10804695562359870518299193703899148848724015728610899282651377959960577:45:36 37074694665532807170105663883978228276095096806613832327136970789759156:45:36 37074694665532807170105663883978228276095096806613832327136970789759157:45:37 37074694665532807170105663883978228276095096806613832327136970789759158:45:37 123101075641149550586098009515132682142363209754749235682143845606227967:45:37 123101075641149550586098009515132682142363209754749235682143845606227968:45:38 123101075641149550586098009515132682142363209754749235682143845606227969:45:38 396193472651037992887213867883281137950518565771503281661698830640977798:45:38 396193472651037992887213867883281137950518565771503281661698830640977799:45:39 396193472651037992887213867883281137950518565771503281661698830640977800:45:39 1237940039285380274899124223999999999999999999999999999999999999999999999:45:39 1237940039285380274899124224000000000000000000000000000000000000000000000:45:40 1237940039285380274899124224000000000000000000000000000000000000000000001:45:40 3760742104414322890196373752543826279660942619486917075375196149018545800:45:40 3760742104414322890196373752543826279660942619486917075375196149018545801:45:41 3760742104414322890196373752543826279660942619486917075375196149018545802:45:41 11122900900855932452768521873705284270527186043496718527852880074094149631:45:41 11122900900855932452768521873705284270527186043496718527852880074094149632:45:42 11122900900855932452768521873705284270527186043496718527852880074094149633:45:42 32068636955638964644302091603013447460711607634633358021240791550942692442:45:42 32068636955638964644302091603013447460711607634633358021240791550942692443:45:43 32068636955638964644302091603013447460711607634633358021240791550942692444:45:43 90234048236666842360389046803584545561391912806906732080976346512332161023:45:43 90234048236666842360389046803584545561391912806906732080976346512332161024:45:44 90234048236666842360389046803584545561391912806906732080976346512332161025:45:44 248063644451341145494649182395412689744530581492654164321720600128173828124:45:44 248063644451341145494649182395412689744530581492654164321720600128173828125:45:45 248063644451341145494649182395412689744530581492654164321720600128173828126:45:45 666964050017266831101313774948704302169308057501714201740927385964459851775:45:45 666964050017266831101313774948704302169308057501714201740927385964459851776:45:46 666964050017266831101313774948704302169308057501714201740927385964459851777:45:46 1755511210260049172778020908173078657717675374080672665297567056535308458606:45:46 1755511210260049172778020908173078657717675374080672665297567056535308458607:45:47 1755511210260049172778020908173078657717675374080672665297567056535308458608:45:47 4527471049112587883160961238150778431050256396280022271242564933130983047167:45:47 4527471049112587883160961238150778431050256396280022271242564933130983047168:45:48 4527471049112587883160961238150778431050256396280022271242564933130983047169:45:48 11450477594321044359340126713545146077054004823284978858214566372120240027248:45:48 11450477594321044359340126713545146077054004823284978858214566372120240027249:45:49 11450477594321044359340126713545146077054004823284978858214566372120240027250:45:49 28421709430404007434844970703124999999999999999999999999999999999999999999999:45:49 28421709430404007434844970703125000000000000000000000000000000000000000000000:45:50 28421709430404007434844970703125000000000000000000000000000000000000000000001:45:50 69287983856763271149522242454082024744645002217406657498059992391482682477250:45:50 69287983856763271149522242454082024744645002217406657498059992391482682477251:45:51 69287983856763271149522242454082024744645002217406657498059992391482682477252:45:51 166016197950437915522400688834127652184846307482916315425802111216087656824831:45:51 166016197950437915522400688834127652184846307482916315425802111216087656824832:45:52 166016197950437915522400688834127652184846307482916315425802111216087656824833:45:52 391213769360120886479340300876487178295953786112391427511535647977108542005892:45:52 391213769360120886479340300876487178295953786112391427511535647977108542005893:45:53 391213769360120886479340300876487178295953786112391427511535647977108542005894:45:53 907233737458829274261586584770434895630560796615249965832211371548086814900223:45:53 907233737458829274261586584770434895630560796615249965832211371548086814900224:45:54 907233737458829274261586584770434895630560796615249965832211371548086814900225:45:54 2071672147539602864949951787928109734464218816214042817591689527034759521484374:45:54 2071672147539602864949951787928109734464218816214042817591689527034759521484375:45:55 2071672147539602864949951787928109734464218816214042817591689527034759521484376:45:55 4660808027410506132900915088997417305944355117847144307414511042169984019070975:45:55 4660808027410506132900915088997417305944355117847144307414511042169984019070976:45:56 4660808027410506132900915088997417305944355117847144307414511042169984019070977:45:56 10336380909072984040478934731183442668440297718142506219164825973278827978612056:45:56 10336380909072984040478934731183442668440297718142506219164825973278827978612057:45:57 10336380909072984040478934731183442668440297718142506219164825973278827978612058:45:57 22607873285027655873860657001472988373879490141498863404231658646658012170682367:45:57 22607873285027655873860657001472988373879490141498863404231658646658012170682368:45:58 22607873285027655873860657001472988373879490141498863404231658646658012170682369:45:58 48791090390330676186762585696982968045383754149561944656680552376837523724678698:45:58 48791090390330676186762585696982968045383754149561944656680552376837523724678699:45:59 48791090390330676186762585696982968045383754149561944656680552376837523724678700:45:59 103945637534048876111514866313854975999999999999999999999999999999999999999999999:45:59 103945637534048876111514866313854976000000000000000000000000000000000000000000000:45:60 103945637534048876111514866313854976000000000000000000000000000000000000000000001:45:60 218696874051543912919181575630682467401306173379573050653039350045314568402206700:45:60 218696874051543912919181575630682467401306173379573050653039350045314568402206701:45:61 218696874051543912919181575630682467401306173379573050653039350045314568402206702:45:61 454596436893310435939792156600843170285744956622850032042024669378827423194284031:45:61 454596436893310435939792156600843170285744956622850032042024669378827423194284032:45:62 454596436893310435939792156600843170285744956622850032042024669378827423194284033:45:62 933952363343007509784849246607720613968056605597111123983144280064188809622465342:45:62 933952363343007509784849246607720613968056605597111123983144280064188809622465343:45:63 933952363343007509784849246607720613968056605597111123983144280064188809622465344:45:63 1897137590064188545819787018382342682267975428761855001222473056385648716020711423:45:63 1897137590064188545819787018382342682267975428761855001222473056385648716020711424:45:64 1897137590064188545819787018382342682267975428761855001222473056385648716020711425:45:64 3811544977260437410497448593732943628077956504628588163541280664503574371337890624:45:64 3811544977260437410497448593732943628077956504628588163541280664503574371337890625:45:65 3811544977260437410497448593732943628077956504628588163541280664503574371337890626:45:65 7576647796813225056892249002163209647292766903576209054405786574049618426830258175:45:65 7576647796813225056892249002163209647292766903576209054405786574049618426830258176:45:66 7576647796813225056892249002163209647292766903576209054405786574049618426830258177:45:66 14906171772013839039331258207046482388715522616019738795741639786864734801171279506:45:66 14906171772013839039331258207046482388715522616019738795741639786864734801171279507:45:67 14906171772013839039331258207046482388715522616019738795741639786864734801171279508:45:67 29033612206132395175226879075673177360094315138896785653652244066018339950918893567:45:67 29033612206132395175226879075673177360094315138896785653652244066018339950918893568:45:68 29033612206132395175226879075673177360094315138896785653652244066018339950918893569:45:68 56002715148753656906361959363868046177888387145172235042696230852807420496003672148:45:68 56002715148753656906361959363868046177888387145172235042696230852807420496003672149:45:69 56002715148753656906361959363868046177888387145172235042696230852807420496003672150:45:69 107006904423598033356356300384937784806999999999999999999999999999999999999999999999:45:69 107006904423598033356356300384937784807000000000000000000000000000000000000000000000:45:70 107006904423598033356356300384937784807000000000000000000000000000000000000000000001:45:70 202593586297473420339433781854835798243386530068019028624983093558347936097633274150:45:70 202593586297473420339433781854835798243386530068019028624983093558347936097633274151:45:71 202593586297473420339433781854835798243386530068019028624983093558347936097633274152:45:71 380156428972621598383223656459599478681646685259148688819302633532341218257489887231:45:71 380156428972621598383223656459599478681646685259148688819302633532341218257489887232:45:72 380156428972621598383223656459599478681646685259148688819302633532341218257489887233:45:72 707177941245981187291464722455477022407531779252258555401532392738166383492515530792:45:72 707177941245981187291464722455477022407531779252258555401532392738166383492515530793:45:73 707177941245981187291464722455477022407531779252258555401532392738166383492515530794:45:73 1304449852191941142205875283935681157708602567641992776468732828504251359490289434623:45:73 1304449852191941142205875283935681157708602567641992776468732828504251359490289434624:45:74 1304449852191941142205875283935681157708602567641992776468732828504251359490289434625:45:74 2386474799099523159082623246307118377443410965621506392153605702333152294158935546874:45:74 2386474799099523159082623246307118377443410965621506392153605702333152294158935546875:45:75 2386474799099523159082623246307118377443410965621506392153605702333152294158935546876:45:75 4331234049893659046808687272904226299102930551195534523890106925436292435808538853375:45:75 4331234049893659046808687272904226299102930551195534523890106925436292435808538853376:45:76 4331234049893659046808687272904226299102930551195534523890106925436292435808538853377:45:76 7799785021081654070165828737004898906302394114855891726991738317451818120127109120956:45:76 7799785021081654070165828737004898906302394114855891726991738317451818120127109120957:45:77 7799785021081654070165828737004898906302394114855891726991738317451818120127109120958:45:77 13939818560920605490414093755321198450041992857431503695820169325809191847256567840767:45:77 13939818560920605490414093755321198450041992857431503695820169325809191847256567840768:45:78 13939818560920605490414093755321198450041992857431503695820169325809191847256567840769:45:78 24729714814859149383354870911046570756850540805726681037904865457440122939306074947598:45:78 24729714814859149383354870911046570756850540805726681037904865457440122939306074947599:45:79 24729714814859149383354870911046570756850540805726681037904865457440122939306074947600:45:79 43556142965880123323311949751266331066367999999999999999999999999999999999999999999999:45:79 43556142965880123323311949751266331066368000000000000000000000000000000000000000000000:45:80 43556142965880123323311949751266331066368000000000000000000000000000000000000000000001:45:80 76177348045866392339289727720615561750424801402395196724001565744957137343033038019600:45:80 76177348045866392339289727720615561750424801402395196724001565744957137343033038019601:45:81 76177348045866392339289727720615561750424801402395196724001565744957137343033038019602:45:81 132319349531850621316117498142462203312939815069522994287414758519765374671037432594431:45:81 132319349531850621316117498142462203312939815069522994287414758519765374671037432594432:45:82 132319349531850621316117498142462203312939815069522994287414758519765374671037432594433:45:82 228304334501871073093269635071549635403423003557090492266027897412530835121861797062242:45:82 228304334501871073093269635071549635403423003557090492266027897412530835121861797062243:45:83 228304334501871073093269635071549635403423003557090492266027897412530835121861797062244:45:83 391352284002919778649914295138917075224964962187067716079168594064543166417882604109823:45:83 391352284002919778649914295138917075224964962187067716079168594064543166417882604109824:45:84 391352284002919778649914295138917075224964962187067716079168594064543166417882604109825:45:84 666579045552219580249174894800496142142685846003260003755030993488617241382598876953124:45:84 666579045552219580249174894800496142142685846003260003755030993488617241382598876953125:45:85 666579045552219580249174894800496142142685846003260003755030993488617241382598876953126:45:85 1128314855028869987783292978621144857739023152564913681628270371245686636649442051096575:45:85 1128314855028869987783292978621144857739023152564913681628270371245686636649442051096576:45:86 1128314855028869987783292978621144857739023152564913681628270371245686636649442051096577:45:86 1898306644365230277162087489060194804678355249134085844533526530426857230579651774396406:45:86 1898306644365230277162087489060194804678355249134085844533526530426857230579651774396407:45:87 1898306644365230277162087489060194804678355249134085844533526530426857230579651774396408:45:87 3174828328240501194632875228020809390138984249299337029304544723108088154415807456083967:45:87 3174828328240501194632875228020809390138984249299337029304544723108088154415807456083968:45:88 3174828328240501194632875228020809390138984249299337029304544723108088154415807456083969:45:88 5278983432532964757288775688474865115065412211545081783600102880716531908000481333645048:45:88 5278983432532964757288775688474865115065412211545081783600102880716531908000481333645049:45:89 5278983432532964757288775688474865115065412211545081783600102880716531908000481333645050:45:89 8727963568087712425891397479476727340041448999999999999999999999999999999999999999999999:45:89 8727963568087712425891397479476727340041449000000000000000000000000000000000000000000000:45:90 8727963568087712425891397479476727340041449000000000000000000000000000000000000000000001:45:90 14350355318587715051400821089975160571942744821781108584486466801538658351626134393583050:45:90 14350355318587715051400821089975160571942744821781108584486466801538658351626134393583051:45:91 14350355318587715051400821089975160571942744821781108584486466801538658351626134393583052:45:91 23466711305681873099863640686911398341768642248041676475728112741811195753946542224965631:45:91 23466711305681873099863640686911398341768642248041676475728112741811195753946542224965632:45:92 23466711305681873099863640686911398341768642248041676475728112741811195753946542224965633:45:92 38170925048082188596458716661405764442907351568896600304850855089538825222015849395319692:45:92 38170925048082188596458716661405764442907351568896600304850855089538825222015849395319693:45:93 38170925048082188596458716661405764442907351568896600304850855089538825222015849395319694:45:93 61766559627905358663134849173156593193230284659270083896395404215796800708519810798977023:45:93 61766559627905358663134849173156593193230284659270083896395404215796800708519810798977024:45:94 61766559627905358663134849173156593193230284659270083896395404215796800708519810798977025:45:94 99440256987092460227859230631195398433008175834506310050613819839782081544399261474609374:45:94 99440256987092460227859230631195398433008175834506310050613819839782081544399261474609375:45:95 99440256987092460227859230631195398433008175834506310050613819839782081544399261474609376:45:95 159296226013391870198597202917632089115058521329152095954030245240455160397143944542027775:45:95 159296226013391870198597202917632089115058521329152095954030245240455160397143944542027776:45:96 159296226013391870198597202917632089115058521329152095954030245240455160397143944542027777:45:96 253938203007212687730214643919086313742408115323046417782818640458993236796357898416965856:45:96 253938203007212687730214643919086313742408115323046417782818640458993236796357898416965857:45:97 253938203007212687730214643919086313742408115323046417782818640458993236796357898416965858:45:97 402877864273425537826251705345411994587051186109114314621607800988285313816204114728583167:45:97 402877864273425537826251705345411994587051186109114314621607800988285313816204114728583168:45:98 402877864273425537826251705345411994587051186109114314621607800988285313816204114728583169:45:98 636185486063871224577278269599438356286750793148313662587196470579383532879142704680104498:45:98 636185486063871224577278269599438356286750793148313662587196470579383532879142704680104499:45:99 636185486063871224577278269599438356286750793148313662587196470579383532879142704680104500:45:99 0:46:0 1:46:1 2:46:1 70368744177663:46:1 70368744177664:46:2 70368744177665:46:2 8862938119652501095928:46:2 8862938119652501095929:46:3 8862938119652501095930:46:3 4951760157141521099596496895:46:3 4951760157141521099596496896:46:4 4951760157141521099596496897:46:4 142108547152020037174224853515624:46:4 142108547152020037174224853515625:46:5 142108547152020037174224853515626:46:5 623673825204293256669089197883129855:46:5 623673825204293256669089197883129856:46:6 623673825204293256669089197883129857:46:6 749048330965186233494494102694564493648:46:6 749048330965186233494494102694564493649:46:7 749048330965186233494494102694564493650:46:7 348449143727040986586495598010130648530943:46:7 348449143727040986586495598010130648530944:46:8 348449143727040986586495598010130648530945:46:8 78551672112789411833022577315290546060373040:46:8 78551672112789411833022577315290546060373041:46:9 78551672112789411833022577315290546060373042:46:9 801795320536133573571931534665380233173841533960:46:10 801795320536133573571931534665380233173841533961:46:11 801795320536133573571931534665380233173841533962:46:11 43887143856106046360568987631860370008329246736383:46:11 43887143856106046360568987631860370008329246736384:46:12 43887143856106046360568987631860370008329246736385:46:12 1743388617272249143997555461487119439669521095365208:46:12 1743388617272249143997555461487119439669521095365209:46:13 1743388617272249143997555461487119439669521095365210:46:13 52709590378395385649697127909589319306203213055655935:46:13 52709590378395385649697127909589319306203213055655936:46:14 52709590378395385649697127909589319306203213055655937:46:14 1259499259682073258080805544523173011839389801025390624:46:14 1259499259682073258080805544523173011839389801025390625:46:15 1259499259682073258080805544523173011839389801025390626:46:15 24519928653854221733733552434404946937899825954937634815:46:15 24519928653854221733733552434404946937899825954937634816:46:16 24519928653854221733733552434404946937899825954937634817:46:16 398703807810572411498315063055075847178723756123452198368:46:16 398703807810572411498315063055075847178723756123452198369:46:17 398703807810572411498315063055075847178723756123452198370:46:17 5527582519632621521435154553222010897486378641900619956223:46:17 5527582519632621521435154553222010897486378641900619956224:46:18 5527582519632621521435154553222010897486378641900619956225:46:18 66476117046415807326862425861336332693125001052869591773080:46:18 66476117046415807326862425861336332693125001052869591773081:46:19 66476117046415807326862425861336332693125001052869591773082:46:19 703687441776639999999999999999999999999999999999999999999999:46:19 703687441776640000000000000000000000000000000000000000000000:46:20 703687441776640000000000000000000000000000000000000000000001:46:20 6638769005973431987630958683093097354261286310288343460254920:46:20 6638769005973431987630958683093097354261286310288343460254921:46:21 6638769005973431987630958683093097354261286310288343460254922:46:21 56421329793655290016220050963478911465660476146466297273647103:46:21 56421329793655290016220050963478911465660476146466297273647104:46:22 56421329793655290016220050963478911465660476146466297273647105:46:22 435993943892672664200353461405376235401663658494141675420261488:46:22 435993943892672664200353461405376235401663658494141675420261489:46:23 435993943892672664200353461405376235401663658494141675420261490:46:23 3088283198698664739250235405609677239488239408465248473868926975:46:23 3088283198698664739250235405609677239488239408465248473868926976:46:24 3088283198698664739250235405609677239488239408465248473868926977:46:24 20194839173657902218540251271239327479634084738790988922119140624:46:24 20194839173657902218540251271239327479634084738790988922119140625:46:25 20194839173657902218540251271239327479634084738790988922119140626:46:25 122680067611082273617239988814370660657175562691799774514460491775:46:25 122680067611082273617239988814370660657175562691799774514460491776:46:26 122680067611082273617239988814370660657175562691799774514460491777:46:26 696198609130885597695136021593547814689632716312296141651066450088:46:26 696198609130885597695136021593547814689632716312296141651066450089:46:27 696198609130885597695136021593547814689632716312296141651066450090:46:27 3709107681046764688552048667472936488321748336708197956784440213503:46:27 3709107681046764688552048667472936488321748336708197956784440213504:46:28 3709107681046764688552048667472936488321748336708197956784440213505:46:28 18634077755047031255968450211716931984327209593842185277103399720120:46:28 18634077755047031255968450211716931984327209593842185277103399720121:46:29 18634077755047031255968450211716931984327209593842185277103399720122:46:29 88629381196525010959289999999999999999999999999999999999999999999999:46:29 88629381196525010959290000000000000000000000000000000000000000000000:46:30 88629381196525010959290000000000000000000000000000000000000000000001:46:30 400532642961838505304216279643757680982449007140881775322406063842880:46:30 400532642961838505304216279643757680982449007140881775322406063842881:46:31 400532642961838505304216279643757680982449007140881775322406063842882:46:31 1725436586697640946858688965569256363112777243042596638790631055949823:46:31 1725436586697640946858688965569256363112777243042596638790631055949824:46:32 1725436586697640946858688965569256363112777243042596638790631055949825:46:32 7106262310538694091446933983643984855708063941449805122243530972344768:46:32 7106262310538694091446933983643984855708063941449805122243530972344769:46:33 7106262310538694091446933983643984855708063941449805122243530972344770:46:33 28056286254482683829045126019903137553319729554530417551182389907030015:46:33 28056286254482683829045126019903137553319729554530417551182389907030016:46:34 28056286254482683829045126019903137553319729554530417551182389907030017:46:34 106446170060108078344923982100249943080285675023333169519901275634765624:46:34 106446170060108078344923982100249943080285675023333169519901275634765625:46:35 106446170060108078344923982100249943080285675023333169519901275634765626:46:35 388969040244955338658770973340369358554064566229992374175449606558580735:46:35 388969040244955338658770973340369358554064566229992374175449606558580736:46:36 388969040244955338658770973340369358554064566229992374175449606558580737:46:36 1371763702624713865293909563707194446215518581844711796104067919221088808:46:36 1371763702624713865293909563707194446215518581844711796104067919221088809:46:37 1371763702624713865293909563707194446215518581844711796104067919221088810:46:37 4677840874363682922271724361575041921409801970680470955921466133036662783:46:37 4677840874363682922271724361575041921409801970680470955921466133036662784:46:38 4677840874363682922271724361575041921409801970680470955921466133036662785:46:38 15451545433390481722601340847447964380070224065088627984806254394998134160:46:38 15451545433390481722601340847447964380070224065088627984806254394998134161:46:39 15451545433390481722601340847447964380070224065088627984806254394998134162:46:39 49517601571415210995964968959999999999999999999999999999999999999999999999:46:39 49517601571415210995964968960000000000000000000000000000000000000000000000:46:40 49517601571415210995964968960000000000000000000000000000000000000000000001:46:40 154190426280987238498051323854296877466098647398963600090383042109760377840:46:40 154190426280987238498051323854296877466098647398963600090383042109760377841:46:41 154190426280987238498051323854296877466098647398963600090383042109760377842:46:41 467161837835949163016277918695621939362141813826862178169820963111954284543:46:41 467161837835949163016277918695621939362141813826862178169820963111954284544:46:42 467161837835949163016277918695621939362141813826862178169820963111954284545:46:42 1378951389092475479704989938929578240810599128289234394913354036690535775048:46:42 1378951389092475479704989938929578240810599128289234394913354036690535775049:46:43 1378951389092475479704989938929578240810599128289234394913354036690535775050:46:43 3970298122413341063857118059357720004701244163503896211562959246542615085055:46:43 3970298122413341063857118059357720004701244163503896211562959246542615085056:46:44 3970298122413341063857118059357720004701244163503896211562959246542615085057:46:44 11162864000310351547259213207793571038503876167169437394477427005767822265624:46:44 11162864000310351547259213207793571038503876167169437394477427005767822265625:46:45 11162864000310351547259213207793571038503876167169437394477427005767822265626:46:45 30680346300794274230660433647640397899788170645078853280082659754365153181695:46:45 30680346300794274230660433647640397899788170645078853280082659754365153181696:46:46 30680346300794274230660433647640397899788170645078853280082659754365153181697:46:46 82509026882222311120566982684134696912730742581791615268985651657159497554528:46:46 82509026882222311120566982684134696912730742581791615268985651657159497554529:46:47 82509026882222311120566982684134696912730742581791615268985651657159497554530:46:47 217318610357404218391726139431237364690412307021441069019643116790287186264063:46:47 217318610357404218391726139431237364690412307021441069019643116790287186264064:46:48 217318610357404218391726139431237364690412307021441069019643116790287186264065:46:48 561073402121731173607666208963712157775646236340963964052513752233891761335200:46:48 561073402121731173607666208963712157775646236340963964052513752233891761335201:46:49 561073402121731173607666208963712157775646236340963964052513752233891761335202:46:49 1421085471520200371742248535156249999999999999999999999999999999999999999999999:46:49 1421085471520200371742248535156250000000000000000000000000000000000000000000000:46:50 1421085471520200371742248535156250000000000000000000000000000000000000000000001:46:50 3533687176694926828625634365158183261976895113087739532401059611965616806339800:46:50 3533687176694926828625634365158183261976895113087739532401059611965616806339801:46:51 3533687176694926828625634365158183261976895113087739532401059611965616806339802:46:51 8632842293422771607164835819374637913612007989111648402141709783236558154891263:46:51 8632842293422771607164835819374637913612007989111648402141709783236558154891264:46:52 8632842293422771607164835819374637913612007989111648402141709783236558154891265:46:52 20734329776086406983405035946453820449685550663956745658111389342786752726312328:46:52 20734329776086406983405035946453820449685550663956745658111389342786752726312329:46:53 20734329776086406983405035946453820449685550663956745658111389342786752726312330:46:53 48990621822776780810125675577603484364050283017223498154939414063596688004612095:46:53 48990621822776780810125675577603484364050283017223498154939414063596688004612096:46:54 48990621822776780810125675577603484364050283017223498154939414063596688004612097:46:54 113941968114678157572247348336046035395532034891772354967542923986911773681640624:46:54 113941968114678157572247348336046035395532034891772354967542923986911773681640625:46:55 113941968114678157572247348336046035395532034891772354967542923986911773681640626:46:55 261005249534988343442451244983855369132883886599440081215212618361519105067974655:46:55 261005249534988343442451244983855369132883886599440081215212618361519105067974656:46:56 261005249534988343442451244983855369132883886599440081215212618361519105067974657:46:56 589173711817160090307299279677456232101096969934122854492395080476893194780887248:46:56 589173711817160090307299279677456232101096969934122854492395080476893194780887249:46:57 589173711817160090307299279677456232101096969934122854492395080476893194780887250:46:57 1311256650531604040683918106085433325685010428206934077445436201506164705899577343:46:57 1311256650531604040683918106085433325685010428206934077445436201506164705899577344:46:58 1311256650531604040683918106085433325685010428206934077445436201506164705899577345:46:58 2878674333029509895018992556121995114677641494824154734744152590233413899756043240:46:58 2878674333029509895018992556121995114677641494824154734744152590233413899756043241:46:59 2878674333029509895018992556121995114677641494824154734744152590233413899756043242:46:59 6236738252042932566690891978831298559999999999999999999999999999999999999999999999:46:59 6236738252042932566690891978831298560000000000000000000000000000000000000000000000:46:60 6236738252042932566690891978831298560000000000000000000000000000000000000000000001:46:60 13340509317144178688070076113471630511479676576153956089835400352764188672534608760:46:60 13340509317144178688070076113471630511479676576153956089835400352764188672534608761:46:61 13340509317144178688070076113471630511479676576153956089835400352764188672534608762:46:61 28184979087385247028267113709252276557716187310616701986605529501487300238045609983:46:61 28184979087385247028267113709252276557716187310616701986605529501487300238045609984:46:62 28184979087385247028267113709252276557716187310616701986605529501487300238045609985:46:62 58838998890609473116445502536286398679987566152618000810938089644043895006215316608:46:62 58838998890609473116445502536286398679987566152618000810938089644043895006215316609:46:63 58838998890609473116445502536286398679987566152618000810938089644043895006215316610:46:63 121416805764108066932466369176469931665150427440758720078238275608681517825325531135:46:63 121416805764108066932466369176469931665150427440758720078238275608681517825325531136:46:64 121416805764108066932466369176469931665150427440758720078238275608681517825325531137:46:64 247750423521928431682334158592641335825067172800858230630183243192732334136962890624:46:64 247750423521928431682334158592641335825067172800858230630183243192732334136962890625:46:65 247750423521928431682334158592641335825067172800858230630183243192732334136962890626:46:65 500058754589672853754888434142771836721322615636029797590781913887274816170797039615:46:65 500058754589672853754888434142771836721322615636029797590781913887274816170797039616:46:66 500058754589672853754888434142771836721322615636029797590781913887274816170797039617:46:66 998713508724927215635194299872114320043940015273322499314689865719937231678475726968:46:66 998713508724927215635194299872114320043940015273322499314689865719937231678475726969:46:67 998713508724927215635194299872114320043940015273322499314689865719937231678475726970:46:67 1974285630017002871915427777145776060486413429444981424448352596489247116662484762623:46:67 1974285630017002871915427777145776060486413429444981424448352596489247116662484762624:46:68 1974285630017002871915427777145776060486413429444981424448352596489247116662484762625:46:68 3864187345264002326538975196106895186274298713016884217946039928843712014224253378280:46:68 3864187345264002326538975196106895186274298713016884217946039928843712014224253378281:46:69 3864187345264002326538975196106895186274298713016884217946039928843712014224253378282:46:69 7490483309651862334944941026945644936489999999999999999999999999999999999999999999999:46:69 7490483309651862334944941026945644936490000000000000000000000000000000000000000000000:46:70 7490483309651862334944941026945644936490000000000000000000000000000000000000000000001:46:70 14384144627120612844099798511693341675280443634829351032373799642642703462931962464720:46:70 14384144627120612844099798511693341675280443634829351032373799642642703462931962464721:46:71 14384144627120612844099798511693341675280443634829351032373799642642703462931962464722:46:71 27371262886028755083592103265091162465078561338658705594989789614328567714539271880703:46:71 27371262886028755083592103265091162465078561338658705594989789614328567714539271880704:46:72 27371262886028755083592103265091162465078561338658705594989789614328567714539271880705:46:72 51623989710956626672276924739249822635749819885414874544311864669886145994953633747888:46:72 51623989710956626672276924739249822635749819885414874544311864669886145994953633747889:46:73 51623989710956626672276924739249822635749819885414874544311864669886145994953633747890:46:73 96529289062203644523234771011240405670436590005507465458686229309314600602281418162175:46:73 96529289062203644523234771011240405670436590005507465458686229309314600602281418162176:46:74 96529289062203644523234771011240405670436590005507465458686229309314600602281418162177:46:74 178985609932464236931196743473033878308255822421612979411520427674986422061920166015624:46:74 178985609932464236931196743473033878308255822421612979411520427674986422061920166015625:46:75 178985609932464236931196743473033878308255822421612979411520427674986422061920166015626:46:75 329173787791918087557460232740721198731822721890860623815648126333158225121448952856575:46:75 329173787791918087557460232740721198731822721890860623815648126333158225121448952856576:46:76 329173787791918087557460232740721198731822721890860623815648126333158225121448952856577:46:76 600583446623287363402768812749377215785284346843903662978363850443789995249787402313688:46:76 600583446623287363402768812749377215785284346843903662978363850443789995249787402313689:46:77 600583446623287363402768812749377215785284346843903662978363850443789995249787402313690:46:77 1087305847751807228252299312915053479103275442879657288273973207413116964086012291579903:46:77 1087305847751807228252299312915053479103275442879657288273973207413116964086012291579904:46:78 1087305847751807228252299312915053479103275442879657288273973207413116964086012291579905:46:78 1953647470373872801285034801972679089791192723652407801994484371137769712205179920860320:46:78 1953647470373872801285034801972679089791192723652407801994484371137769712205179920860321:46:79 1953647470373872801285034801972679089791192723652407801994484371137769712205179920860322:46:79 3484491437270409865864955980101306485309439999999999999999999999999999999999999999999999:46:79 3484491437270409865864955980101306485309440000000000000000000000000000000000000000000000:46:80 3484491437270409865864955980101306485309440000000000000000000000000000000000000000000001:46:80 6170365191715177779482467945369860501784408913594010934644126825341528124785676079587680:46:80 6170365191715177779482467945369860501784408913594010934644126825341528124785676079587681:46:81 6170365191715177779482467945369860501784408913594010934644126825341528124785676079587682:46:81 10850186661611750947921634847681900671661064835700885531568010198620760723025069472743423:46:81 10850186661611750947921634847681900671661064835700885531568010198620760723025069472743424:46:82 10850186661611750947921634847681900671661064835700885531568010198620760723025069472743425:46:82 18949259763655299066741379710938619738484109295238510858080315485240059315114529156166168:46:82 18949259763655299066741379710938619738484109295238510858080315485240059315114529156166169:46:83 18949259763655299066741379710938619738484109295238510858080315485240059315114529156166170:46:83 32873591856245261406592800791669034318897056823713688150650161901421625979102138745225215:46:83 32873591856245261406592800791669034318897056823713688150650161901421625979102138745225216:46:84 32873591856245261406592800791669034318897056823713688150650161901421625979102138745225217:46:84 56659218871938664321179866058042172082128296910277100319177634446532465517520904541015624:46:84 56659218871938664321179866058042172082128296910277100319177634446532465517520904541015625:46:85 56659218871938664321179866058042172082128296910277100319177634446532465517520904541015626:46:85 97035077532482818949363196161418457765555991120582576620031251927129050751852016394305535:46:85 97035077532482818949363196161418457765555991120582576620031251927129050751852016394305536:46:86 97035077532482818949363196161418457765555991120582576620031251927129050751852016394305537:46:86 165152678059775034113101611548236948007016906674665468474416808147136579060429704372487408:46:86 165152678059775034113101611548236948007016906674665468474416808147136579060429704372487409:46:87 165152678059775034113101611548236948007016906674665468474416808147136579060429704372487410:46:87 279384892885164105127693020065831226332230613938341658578799935633511757588591056135389183:46:87 279384892885164105127693020065831226332230613938341658578799935633511757588591056135389184:46:88 279384892885164105127693020065831226332230613938341658578799935633511757588591056135389185:46:88 469829525495433863398701036274262995240821686827512278740409156383771339812042838694409360:46:88 469829525495433863398701036274262995240821686827512278740409156383771339812042838694409361:46:89 469829525495433863398701036274262995240821686827512278740409156383771339812042838694409362:46:89 785516721127894118330225773152905460603730409999999999999999999999999999999999999999999999:46:89 785516721127894118330225773152905460603730410000000000000000000000000000000000000000000000:46:90 785516721127894118330225773152905460603730410000000000000000000000000000000000000000000001:46:90 1305882333991482069677474719187739612046789778782080881188268478940017909997978229816057640:46:90 1305882333991482069677474719187739612046789778782080881188268478940017909997978229816057641:46:91 1305882333991482069677474719187739612046789778782080881188268478940017909997978229816057642:46:91 2158937440122732325187454943195848647442715086819834235766986372246630009363081884696838143:46:91 2158937440122732325187454943195848647442715086819834235766986372246630009363081884696838144:46:92 2158937440122732325187454943195848647442715086819834235766986372246630009363081884696838145:46:92 3549896029471643539470660649510736093190383695907383828351129523327110745647473993764731448:46:92 3549896029471643539470660649510736093190383695907383828351129523327110745647473993764731449:46:93 3549896029471643539470660649510736093190383695907383828351129523327110745647473993764731450:46:93 5806056605023103714334675822276719760163646757971387886261167996284899266600862215103840255:46:93 5806056605023103714334675822276719760163646757971387886261167996284899266600862215103840256:46:94 5806056605023103714334675822276719760163646757971387886261167996284899266600862215103840257:46:94 9446824413773783721646626909963562851135776704278099454808312884779297746717929840087890624:46:94 9446824413773783721646626909963562851135776704278099454808312884779297746717929840087890625:46:95 9446824413773783721646626909963562851135776704278099454808312884779297746717929840087890626:46:95 15292437697285619539065331480092680555045618047598601211586903543083695398125818676034666495:46:95 15292437697285619539065331480092680555045618047598601211586903543083695398125818676034666496:46:96 15292437697285619539065331480092680555045618047598601211586903543083695398125818676034666497:46:96 24632005691699630709830820460151372433013587186335502524933408124522343969246716146445688128:46:96 24632005691699630709830820460151372433013587186335502524933408124522343969246716146445688129:46:97 24632005691699630709830820460151372433013587186335502524933408124522343969246716146445688130:46:97 39482030698795702706972667123850375469531016238693202832917564496851960753988003243401150463:46:97 39482030698795702706972667123850375469531016238693202832917564496851960753988003243401150464:46:98 39482030698795702706972667123850375469531016238693202832917564496851960753988003243401150465:46:98 62982363120323251233150548690344397272388328521683052596132450587358969755035127763330345400:46:98 62982363120323251233150548690344397272388328521683052596132450587358969755035127763330345401:46:99 62982363120323251233150548690344397272388328521683052596132450587358969755035127763330345402:46:99 0:47:0 1:47:1 2:47:1 140737488355327:47:1 140737488355328:47:2 140737488355329:47:2 26588814358957503287786:47:2 26588814358957503287787:47:3 26588814358957503287788:47:3 19807040628566084398385987583:47:3 19807040628566084398385987584:47:4 19807040628566084398385987585:47:4 710542735760100185871124267578124:47:4 710542735760100185871124267578125:47:5 710542735760100185871124267578126:47:5 3742042951225759540014535187298779135:47:5 3742042951225759540014535187298779136:47:6 3742042951225759540014535187298779137:47:6 5243338316756303634461458718861951455542:47:6 5243338316756303634461458718861951455543:47:7 5243338316756303634461458718861951455544:47:7 2787593149816327892691964784081045188247551:47:7 2787593149816327892691964784081045188247552:47:8 2787593149816327892691964784081045188247553:47:8 706965049015104706497203195837614914543357368:47:8 706965049015104706497203195837614914543357369:47:9 706965049015104706497203195837614914543357370:47:9 8819748525897469309291246881319182564912256873570:47:10 8819748525897469309291246881319182564912256873571:47:11 8819748525897469309291246881319182564912256873572:47:11 526645726273272556326827851582324440099950960836607:47:11 526645726273272556326827851582324440099950960836608:47:12 526645726273272556326827851582324440099950960836609:47:12 22664052024539238871968220999332552715703774239747716:47:12 22664052024539238871968220999332552715703774239747717:47:13 22664052024539238871968220999332552715703774239747718:47:13 737934265297535399095759790734250470286844982779183103:47:13 737934265297535399095759790734250470286844982779183104:47:14 737934265297535399095759790734250470286844982779183105:47:14 18892488895231098871212083167847595177590847015380859374:47:14 18892488895231098871212083167847595177590847015380859375:47:15 18892488895231098871212083167847595177590847015380859376:47:15 392318858461667547739736838950479151006397215279002157055:47:15 392318858461667547739736838950479151006397215279002157056:47:16 392318858461667547739736838950479151006397215279002157057:47:16 6777964732779730995471356071936289402038303854098687372272:47:16 6777964732779730995471356071936289402038303854098687372273:47:17 6777964732779730995471356071936289402038303854098687372274:47:17 99496485353387187385832781957996196154754815554211159212031:47:17 99496485353387187385832781957996196154754815554211159212032:47:18 99496485353387187385832781957996196154754815554211159212033:47:18 1263046223881900339210386091365390321169375020004522243688538:47:18 1263046223881900339210386091365390321169375020004522243688539:47:19 1263046223881900339210386091365390321169375020004522243688540:47:19 14073748835532799999999999999999999999999999999999999999999999:47:19 14073748835532800000000000000000000000000000000000000000000000:47:20 14073748835532800000000000000000000000000000000000000000000001:47:20 139414149125442071740250132344955044439487012516055212665353340:47:20 139414149125442071740250132344955044439487012516055212665353341:47:21 139414149125442071740250132344955044439487012516055212665353342:47:21 1241269255460416380356841121196536052244530475222258540020236287:47:21 1241269255460416380356841121196536052244530475222258540020236288:47:22 1241269255460416380356841121196536052244530475222258540020236289:47:22 10027860709531471276608129612323653414238264145365258534666014246:47:22 10027860709531471276608129612323653414238264145365258534666014247:47:23 10027860709531471276608129612323653414238264145365258534666014248:47:23 74118796768767953742005649734632253747717745803165963372854247423:47:23 74118796768767953742005649734632253747717745803165963372854247424:47:24 74118796768767953742005649734632253747717745803165963372854247425:47:24 504870979341447555463506281780983186990852118469774723052978515624:47:24 504870979341447555463506281780983186990852118469774723052978515625:47:25 504870979341447555463506281780983186990852118469774723052978515626:47:25 3189681757888139114048239709173637177086564629986794137375972786175:47:25 3189681757888139114048239709173637177086564629986794137375972786176:47:26 3189681757888139114048239709173637177086564629986794137375972786177:47:26 18797362446533911137768672583025790996620083340431995824578794152402:47:26 18797362446533911137768672583025790996620083340431995824578794152403:47:27 18797362446533911137768672583025790996620083340431995824578794152404:47:27 103855015069309411279457362689242221673008953427829542789964325978111:47:27 103855015069309411279457362689242221673008953427829542789964325978112:47:28 103855015069309411279457362689242221673008953427829542789964325978113:47:28 540388254896363906423085056139791027545489078221423373035998591883508:47:28 540388254896363906423085056139791027545489078221423373035998591883509:47:29 540388254896363906423085056139791027545489078221423373035998591883510:47:29 2658881435895750328778699999999999999999999999999999999999999999999999:47:29 2658881435895750328778700000000000000000000000000000000000000000000000:47:30 2658881435895750328778700000000000000000000000000000000000000000000001:47:30 12416511931816993664430704668956488110455919221367335034994587979129310:47:30 12416511931816993664430704668956488110455919221367335034994587979129311:47:31 12416511931816993664430704668956488110455919221367335034994587979129312:47:31 55213970774324510299478046898216203619608871777363092441300193790394367:47:31 55213970774324510299478046898216203619608871777363092441300193790394368:47:32 55213970774324510299478046898216203619608871777363092441300193790394369:47:32 234506656247776905017748821460251500238366110067843569034036522087377376:47:32 234506656247776905017748821460251500238366110067843569034036522087377377:47:33 234506656247776905017748821460251500238366110067843569034036522087377378:47:33 953913732652411250187534284676706676812870804854034196740201256839020543:47:33 953913732652411250187534284676706676812870804854034196740201256839020544:47:34 953913732652411250187534284676706676812870804854034196740201256839020545:47:34 3725615952103782742072339373508748007809998625816660933196544647216796874:47:34 3725615952103782742072339373508748007809998625816660933196544647216796875:47:35 3725615952103782742072339373508748007809998625816660933196544647216796876:47:35 14002885448818392191715755040253296907946324384279725470316185836108906495:47:35 14002885448818392191715755040253296907946324384279725470316185836108906496:47:36 14002885448818392191715755040253296907946324384279725470316185836108906497:47:36 50755256997114413015874653857166194509974187528254336455850513011180285932:47:36 50755256997114413015874653857166194509974187528254336455850513011180285933:47:37 50755256997114413015874653857166194509974187528254336455850513011180285934:47:37 177757953225819951046325525739851593013572474885857896325015713055393185791:47:37 177757953225819951046325525739851593013572474885857896325015713055393185792:47:38 177757953225819951046325525739851593013572474885857896325015713055393185793:47:38 602610271902228787181452293050470610822738738538456491407443921404927232278:47:38 602610271902228787181452293050470610822738738538456491407443921404927232279:47:39 602610271902228787181452293050470610822738738538456491407443921404927232280:47:39 1980704062856608439838598758399999999999999999999999999999999999999999999999:47:39 1980704062856608439838598758400000000000000000000000000000000000000000000000:47:40 1980704062856608439838598758400000000000000000000000000000000000000000000001:47:40 6321807477520476778420104278026171976110044543357507603705704726500175491480:47:40 6321807477520476778420104278026171976110044543357507603705704726500175491481:47:41 6321807477520476778420104278026171976110044543357507603705704726500175491482:47:41 19620797189109864846683672585216121453209956180728211483132480450702079950847:47:41 19620797189109864846683672585216121453209956180728211483132480450702079950848:47:42 19620797189109864846683672585216121453209956180728211483132480450702079950849:47:42 59294909730976445627314567373971864354855762516437078981274223577693038327106:47:42 59294909730976445627314567373971864354855762516437078981274223577693038327107:47:43 59294909730976445627314567373971864354855762516437078981274223577693038327108:47:43 174693117386187006809713194611739680206854743194171433308770206847875063742463:47:43 174693117386187006809713194611739680206854743194171433308770206847875063742464:47:44 174693117386187006809713194611739680206854743194171433308770206847875063742465:47:44 502328880013965819626664594350710696732674427522624682751484215259552001953124:47:44 502328880013965819626664594350710696732674427522624682751484215259552001953125:47:45 502328880013965819626664594350710696732674427522624682751484215259552001953126:47:45 1411295929836536614610379947791458303390255849673627250883802348700797046358015:47:45 1411295929836536614610379947791458303390255849673627250883802348700797046358016:47:46 1411295929836536614610379947791458303390255849673627250883802348700797046358017:47:46 3877924263464448622666648186154330754898344901344205917642325627886496385062862:47:46 3877924263464448622666648186154330754898344901344205917642325627886496385062863:47:47 3877924263464448622666648186154330754898344901344205917642325627886496385062864:47:47 10431293297155402482802854692699393505139790737029171312942869605933784940675071:47:47 10431293297155402482802854692699393505139790737029171312942869605933784940675072:47:48 10431293297155402482802854692699393505139790737029171312942869605933784940675073:47:48 27492596703964827506775644239221895731006665580707234238573173859460696305424848:47:48 27492596703964827506775644239221895731006665580707234238573173859460696305424849:47:49 27492596703964827506775644239221895731006665580707234238573173859460696305424850:47:49 71054273576010018587112426757812499999999999999999999999999999999999999999999999:47:49 71054273576010018587112426757812500000000000000000000000000000000000000000000000:47:50 71054273576010018587112426757812500000000000000000000000000000000000000000000001:47:50 180218046011441268259907352623067346360821650767474716152454040210246457123329850:47:50 180218046011441268259907352623067346360821650767474716152454040210246457123329851:47:51 180218046011441268259907352623067346360821650767474716152454040210246457123329852:47:51 448907799257984123572571462607481171507824415433805716911368908728301024054345727:47:51 448907799257984123572571462607481171507824415433805716911368908728301024054345728:47:52 448907799257984123572571462607481171507824415433805716911368908728301024054345729:47:52 1098919478132579570120466905162052483833334185189707519879903635167697894494553436:47:52 1098919478132579570120466905162052483833334185189707519879903635167697894494553437:47:53 1098919478132579570120466905162052483833334185189707519879903635167697894494553438:47:53 2645493578429946163746786481190588155658715282930068900366728359434221152249053183:47:53 2645493578429946163746786481190588155658715282930068900366728359434221152249053184:47:54 2645493578429946163746786481190588155658715282930068900366728359434221152249053185:47:54 6266808246307298666473604158482531946754261919047479523214860819280147552490234374:47:54 6266808246307298666473604158482531946754261919047479523214860819280147552490234375:47:55 6266808246307298666473604158482531946754261919047479523214860819280147552490234376:47:55 14616293973959347232777269719095900671441497649568644548051906628245069883806580735:47:55 14616293973959347232777269719095900671441497649568644548051906628245069883806580736:47:56 14616293973959347232777269719095900671441497649568644548051906628245069883806580737:47:56 33582901573578125147516058941615005229762527286245002706066519587182912102510573192:47:56 33582901573578125147516058941615005229762527286245002706066519587182912102510573193:47:57 33582901573578125147516058941615005229762527286245002706066519587182912102510573194:47:57 76052885730833034359667250152955132889730604836002176491835299687357552942175485951:47:57 76052885730833034359667250152955132889730604836002176491835299687357552942175485952:47:58 76052885730833034359667250152955132889730604836002176491835299687357552942175485953:47:58 169841785648741083806120560811197711765980848194625129349905002823771420085606551218:47:58 169841785648741083806120560811197711765980848194625129349905002823771420085606551219:47:59 169841785648741083806120560811197711765980848194625129349905002823771420085606551220:47:59 374204295122575954001453518729877913599999999999999999999999999999999999999999999999:47:59 374204295122575954001453518729877913600000000000000000000000000000000000000000000000:47:60 374204295122575954001453518729877913600000000000000000000000000000000000000000000001:47:60 813771068345794899972274642921769461200260271145391321479959421518615509024611134420:47:60 813771068345794899972274642921769461200260271145391321479959421518615509024611134421:47:61 813771068345794899972274642921769461200260271145391321479959421518615509024611134422:47:61 1747468703417885315752561049973641146578403613258235523169542829092212614758827819007:47:61 1747468703417885315752561049973641146578403613258235523169542829092212614758827819008:47:62 1747468703417885315752561049973641146578403613258235523169542829092212614758827819009:47:62 3706856930108396806336066659786043116839216667614934051089099647574765385391564946366:47:62 3706856930108396806336066659786043116839216667614934051089099647574765385391564946367:47:63 3706856930108396806336066659786043116839216667614934051089099647574765385391564946368:47:63 7770675568902916283677847627294075626569627356208558085007249638955617140820833992703:47:63 7770675568902916283677847627294075626569627356208558085007249638955617140820833992704:47:64 7770675568902916283677847627294075626569627356208558085007249638955617140820833992705:47:64 16103777528925348059351720308521686828629366232055784990961910807527601718902587890624:47:64 16103777528925348059351720308521686828629366232055784990961910807527601718902587890625:47:65 16103777528925348059351720308521686828629366232055784990961910807527601718902587890626:47:65 33003877802918408347822636653422941223607292631977966640991606316560137867272604614655:47:65 33003877802918408347822636653422941223607292631977966640991606316560137867272604614656:47:66 33003877802918408347822636653422941223607292631977966640991606316560137867272604614657:47:66 66913805084570123447558018091431659442943981023312607454084221003235794522457873706922:47:66 66913805084570123447558018091431659442943981023312607454084221003235794522457873706923:47:67 66913805084570123447558018091431659442943981023312607454084221003235794522457873706924:47:67 134251422841156195290249088845912772113076113202258736862487976561268803933048963858431:47:67 134251422841156195290249088845912772113076113202258736862487976561268803933048963858432:47:68 134251422841156195290249088845912772113076113202258736862487976561268803933048963858433:47:68 266628926823216160531189288531375767852926611198165011038276755090216128981473483101388:47:68 266628926823216160531189288531375767852926611198165011038276755090216128981473483101389:47:69 266628926823216160531189288531375767852926611198165011038276755090216128981473483101390:47:69 524333831675630363446145871886195145554299999999999999999999999999999999999999999999999:47:69 524333831675630363446145871886195145554300000000000000000000000000000000000000000000000:47:70 524333831675630363446145871886195145554300000000000000000000000000000000000000000000001:47:70 1021274268525563511931085694330227258944911498072883923298539774627631945868169334995190:47:70 1021274268525563511931085694330227258944911498072883923298539774627631945868169334995191:47:71 1021274268525563511931085694330227258944911498072883923298539774627631945868169334995192:47:71 1970730927794070366018631435086563697485656416383426802839264852231656875446827575410687:47:71 1970730927794070366018631435086563697485656416383426802839264852231656875446827575410688:47:72 1970730927794070366018631435086563697485656416383426802839264852231656875446827575410689:47:72 3768551248899833747076215505965237052409736851635285841734766120901688657631615263595896:47:72 3768551248899833747076215505965237052409736851635285841734766120901688657631615263595897:47:73 3768551248899833747076215505965237052409736851635285841734766120901688657631615263595898:47:73 7143167390603069694719373054831790019612307660407552443942780968889280444568824944001023:47:73 7143167390603069694719373054831790019612307660407552443942780968889280444568824944001024:47:74 7143167390603069694719373054831790019612307660407552443942780968889280444568824944001025:47:74 13423920744934817769839755760477540873119186681620973455864032075623981654644012451171874:47:74 13423920744934817769839755760477540873119186681620973455864032075623981654644012451171875:47:75 13423920744934817769839755760477540873119186681620973455864032075623981654644012451171876:47:75 25017207872185774654366977688294811103618526863705407409989257601320025109230120417099775:47:75 25017207872185774654366977688294811103618526863705407409989257601320025109230120417099776:47:76 25017207872185774654366977688294811103618526863705407409989257601320025109230120417099777:47:76 46244925389993126982013198581702045615466894706980582049334016484171829634233629978154052:47:76 46244925389993126982013198581702045615466894706980582049334016484171829634233629978154053:47:77 46244925389993126982013198581702045615466894706980582049334016484171829634233629978154054:47:77 84809856124640963803679346407374171370055484544613268485369910178223123198708958743232511:47:77 84809856124640963803679346407374171370055484544613268485369910178223123198708958743232512:47:78 84809856124640963803679346407374171370055484544613268485369910178223123198708958743232513:47:78 154338150159535951301517749355841648093504225168540216357564265319883807264209213747965358:47:78 154338150159535951301517749355841648093504225168540216357564265319883807264209213747965359:47:79 154338150159535951301517749355841648093504225168540216357564265319883807264209213747965360:47:79 278759314981632789269196478408104518824755199999999999999999999999999999999999999999999999:47:79 278759314981632789269196478408104518824755200000000000000000000000000000000000000000000000:47:80 278759314981632789269196478408104518824755200000000000000000000000000000000000000000000001:47:80 499799580528929400138079903574958700644537122001114885706174272852663778107639762446602160:47:80 499799580528929400138079903574958700644537122001114885706174272852663778107639762446602161:47:81 499799580528929400138079903574958700644537122001114885706174272852663778107639762446602162:47:81 889715306252163577729574057509915855076207316527472613588576836286902379288055696764960767:47:81 889715306252163577729574057509915855076207316527472613588576836286902379288055696764960768:47:82 889715306252163577729574057509915855076207316527472613588576836286902379288055696764960769:47:82 1572788560383389822539534516007905438294181071504796401220666185274924923154505919961792026:47:82 1572788560383389822539534516007905438294181071504796401220666185274924923154505919961792027:47:83 1572788560383389822539534516007905438294181071504796401220666185274924923154505919961792028:47:83 2761381715924601958153795266500198882787352773191949804654613599719416582244579654598918143:47:83 2761381715924601958153795266500198882787352773191949804654613599719416582244579654598918144:47:84 2761381715924601958153795266500198882787352773191949804654613599719416582244579654598918145:47:84 4816033604114786467300288614933584626980905237373553527130098927955259568989276885986328124:47:84 4816033604114786467300288614933584626980905237373553527130098927955259568989276885986328125:47:85 4816033604114786467300288614933584626980905237373553527130098927955259568989276885986328126:47:85 8345016667793522429645234869881987367837815236370101589322687665733098364659273409910276095:47:85 8345016667793522429645234869881987367837815236370101589322687665733098364659273409910276096:47:86 8345016667793522429645234869881987367837815236370101589322687665733098364659273409910276097:47:86 14368282991200427967839840204696614476610470880695895757274262308800882378257384280406404582:47:86 14368282991200427967839840204696614476610470880695895757274262308800882378257384280406404583:47:87 14368282991200427967839840204696614476610470880695895757274262308800882378257384280406404584:47:87 24585870573894441251236985765793147917236294026574065954934394335749034667796012939914248191:47:87 24585870573894441251236985765793147917236294026574065954934394335749034667796012939914248192:47:88 24585870573894441251236985765793147917236294026574065954934394335749034667796012939914248193:47:88 41814827769093613842484392228409406576433130127648592807896414918155649243271812643802433128:47:88 41814827769093613842484392228409406576433130127648592807896414918155649243271812643802433129:47:89 41814827769093613842484392228409406576433130127648592807896414918155649243271812643802433130:47:89 70696504901510470649720319583761491454335736899999999999999999999999999999999999999999999999:47:89 70696504901510470649720319583761491454335736900000000000000000000000000000000000000000000000:47:90 70696504901510470649720319583761491454335736900000000000000000000000000000000000000000000001:47:90 118835292393224868340650199446084304696257869869169360188132431583541629809816018913261245330:47:90 118835292393224868340650199446084304696257869869169360188132431583541629809816018913261245331:47:91 118835292393224868340650199446084304696257869869169360188132431583541629809816018913261245332:47:91 198622244491291373917245854774018075564729787987424749690562746246689960861403533392109109247:47:91 198622244491291373917245854774018075564729787987424749690562746246689960861403533392109109248:47:92 198622244491291373917245854774018075564729787987424749690562746246689960861403533392109109249:47:92 330140330740862849170771440404498456666705683719386696036655045669421299345215081420120024756:47:92 330140330740862849170771440404498456666705683719386696036655045669421299345215081420120024757:47:93 330140330740862849170771440404498456666705683719386696036655045669421299345215081420120024758:47:93 545769320872171749147459527294011657455382795249310461308549791650780531060481048219760984063:47:93 545769320872171749147459527294011657455382795249310461308549791650780531060481048219760984064:47:94 545769320872171749147459527294011657455382795249310461308549791650780531060481048219760984065:47:94 897448319308509453556429556446538470857898786906419448206789724054033285938203334808349609374:47:94 897448319308509453556429556446538470857898786906419448206789724054033285938203334808349609375:47:95 897448319308509453556429556446538470857898786906419448206789724054033285938203334808349609376:47:95 1468074018939419475750271822088897333284379332569465716312342740136034758220078592899327983615:47:95 1468074018939419475750271822088897333284379332569465716312342740136034758220078592899327983616:47:96 1468074018939419475750271822088897333284379332569465716312342740136034758220078592899327983617:47:96 2389304552094864178853589584634683126002317957074543744918540588078667365016931466205231748512:47:96 2389304552094864178853589584634683126002317957074543744918540588078667365016931466205231748513:47:97 2389304552094864178853589584634683126002317957074543744918540588078667365016931466205231748514:47:97 3869239008481978865283321378137336796014039591391933877625921320691492153890824317853312745471:47:97 3869239008481978865283321378137336796014039591391933877625921320691492153890824317853312745472:47:98 3869239008481978865283321378137336796014039591391933877625921320691492153890824317853312745473:47:98 6235253948912001872081904320344095329966444523646622207017112608148538005748477648569704194698:47:98 6235253948912001872081904320344095329966444523646622207017112608148538005748477648569704194699:47:99 6235253948912001872081904320344095329966444523646622207017112608148538005748477648569704194700:47:99 0:48:0 1:48:1 2:48:1 281474976710655:48:1 281474976710656:48:2 281474976710657:48:2 79766443076872509863360:48:2 79766443076872509863361:48:3 79766443076872509863362:48:3 79228162514264337593543950335:48:3 79228162514264337593543950336:48:4 79228162514264337593543950337:48:4 3552713678800500929355621337890624:48:4 3552713678800500929355621337890625:48:5 3552713678800500929355621337890626:48:5 22452257707354557240087211123792674815:48:5 22452257707354557240087211123792674816:48:6 22452257707354557240087211123792674817:48:6 36703368217294125441230211032033660188800:48:6 36703368217294125441230211032033660188801:48:7 36703368217294125441230211032033660188802:48:7 22300745198530623141535718272648361505980415:48:7 22300745198530623141535718272648361505980416:48:8 22300745198530623141535718272648361505980417:48:8 6362685441135942358474828762538534230890216320:48:8 6362685441135942358474828762538534230890216321:48:9 6362685441135942358474828762538534230890216322:48:9 97017233784872162402203715694511008214034825609280:48:10 97017233784872162402203715694511008214034825609281:48:11 97017233784872162402203715694511008214034825609282:48:11 6319748715279270675921934218987893281199411530039295:48:11 6319748715279270675921934218987893281199411530039296:48:12 6319748715279270675921934218987893281199411530039297:48:12 294632676319010105335586872991323185304149065116720320:48:12 294632676319010105335586872991323185304149065116720321:48:13 294632676319010105335586872991323185304149065116720322:48:13 10331079714165495587340637070279506584015829758908563455:48:13 10331079714165495587340637070279506584015829758908563456:48:14 10331079714165495587340637070279506584015829758908563457:48:14 283387333428466483068181247517713927663862705230712890624:48:14 283387333428466483068181247517713927663862705230712890625:48:15 283387333428466483068181247517713927663862705230712890626:48:15 6277101735386680763835789423207666416102355444464034512895:48:15 6277101735386680763835789423207666416102355444464034512896:48:16 6277101735386680763835789423207666416102355444464034512897:48:16 115225400457255426923013053222916919834651165519677685328640:48:16 115225400457255426923013053222916919834651165519677685328641:48:17 115225400457255426923013053222916919834651165519677685328642:48:17 1790936736360969372944990075243931530785586679975800865816575:48:17 1790936736360969372944990075243931530785586679975800865816576:48:18 1790936736360969372944990075243931530785586679975800865816577:48:18 23997878253756106444997335735942416102218125380085922630082240:48:18 23997878253756106444997335735942416102218125380085922630082241:48:19 23997878253756106444997335735942416102218125380085922630082242:48:19 281474976710655999999999999999999999999999999999999999999999999:48:19 281474976710656000000000000000000000000000000000000000000000000:48:20 281474976710656000000000000000000000000000000000000000000000001:48:20 2927697131634283506545252779244055933229227262837159465972420160:48:20 2927697131634283506545252779244055933229227262837159465972420161:48:21 2927697131634283506545252779244055933229227262837159465972420162:48:21 27307923620129160367850504666323793149379670454889687880445198335:48:21 27307923620129160367850504666323793149379670454889687880445198336:48:22 27307923620129160367850504666323793149379670454889687880445198337:48:22 230640796319223839361986981083444028527480075343400946297318327680:48:22 230640796319223839361986981083444028527480075343400946297318327681:48:23 230640796319223839361986981083444028527480075343400946297318327682:48:23 1778851122450430889808135593631174089945225899275983120948501938175:48:23 1778851122450430889808135593631174089945225899275983120948501938176:48:24 1778851122450430889808135593631174089945225899275983120948501938177:48:24 12621774483536188886587657044524579674771302961744368076324462890624:48:24 12621774483536188886587657044524579674771302961744368076324462890625:48:25 12621774483536188886587657044524579674771302961744368076324462890626:48:25 82931725705091616965254232438514566604250680379656647571775292440575:48:25 82931725705091616965254232438514566604250680379656647571775292440576:48:26 82931725705091616965254232438514566604250680379656647571775292440577:48:26 507528786056415600719754159741696356908742250191663887263627442114880:48:26 507528786056415600719754159741696356908742250191663887263627442114881:48:27 507528786056415600719754159741696356908742250191663887263627442114882:48:27 2907940421940663515824806155298782206844250695979227198119001127387135:48:27 2907940421940663515824806155298782206844250695979227198119001127387136:48:28 2907940421940663515824806155298782206844250695979227198119001127387137:48:28 15671259391994553286269466628053939798819183268421277818043959164621760:48:28 15671259391994553286269466628053939798819183268421277818043959164621761:48:29 15671259391994553286269466628053939798819183268421277818043959164621762:48:29 79766443076872509863360999999999999999999999999999999999999999999999999:48:29 79766443076872509863361000000000000000000000000000000000000000000000000:48:30 79766443076872509863361000000000000000000000000000000000000000000000001:48:30 384911869886326803597351844737651131424133495862387386084832227353008640:48:30 384911869886326803597351844737651131424133495862387386084832227353008641:48:31 384911869886326803597351844737651131424133495862387386084832227353008642:48:31 1766847064778384329583297500742918515827483896875618958121606201292619775:48:31 1766847064778384329583297500742918515827483896875618958121606201292619776:48:32 1766847064778384329583297500742918515827483896875618958121606201292619777:48:32 7738719656176637865585711108188299507866081632238837778123205228883453440:48:32 7738719656176637865585711108188299507866081632238837778123205228883453441:48:33 7738719656176637865585711108188299507866081632238837778123205228883453442:48:33 32433066910181982506376165679008027011637607365037162689166842732526698495:48:33 32433066910181982506376165679008027011637607365037162689166842732526698496:48:34 32433066910181982506376165679008027011637607365037162689166842732526698497:48:34 130396558323632395972531878072806180273349951903583132661879062652587890624:48:34 130396558323632395972531878072806180273349951903583132661879062652587890625:48:35 130396558323632395972531878072806180273349951903583132661879062652587890626:48:35 504103876157462118901767181449118688686067677834070116931382690099920633855:48:35 504103876157462118901767181449118688686067677834070116931382690099920633856:48:36 504103876157462118901767181449118688686067677834070116931382690099920633857:48:36 1877944508893233281587362192715149196869044938545410448866468981413670579520:48:36 1877944508893233281587362192715149196869044938545410448866468981413670579521:48:37 1877944508893233281587362192715149196869044938545410448866468981413670579522:48:37 6754802222581158139760369978114360534515754045662600060350597096104941060095:48:37 6754802222581158139760369978114360534515754045662600060350597096104941060096:48:38 6754802222581158139760369978114360534515754045662600060350597096104941060097:48:38 23501800604186922700076639428968353822086810802999803164890312934792162058880:48:38 23501800604186922700076639428968353822086810802999803164890312934792162058881:48:39 23501800604186922700076639428968353822086810802999803164890312934792162058882:48:39 79228162514264337593543950335999999999999999999999999999999999999999999999999:48:39 79228162514264337593543950336000000000000000000000000000000000000000000000000:48:40 79228162514264337593543950336000000000000000000000000000000000000000000000001:48:40 259194106578339547915224275399073051020511826277657811751933893786507195150720:48:40 259194106578339547915224275399073051020511826277657811751933893786507195150721:48:41 259194106578339547915224275399073051020511826277657811751933893786507195150722:48:41 824073481942614323560714248579077101034818159590584882291564178929487357935615:48:41 824073481942614323560714248579077101034818159590584882291564178929487357935616:48:42 824073481942614323560714248579077101034818159590584882291564178929487357935617:48:42 2549681118431987161974526397080790167258797788206794396194791613840800648065600:48:42 2549681118431987161974526397080790167258797788206794396194791613840800648065601:48:43 2549681118431987161974526397080790167258797788206794396194791613840800648065602:48:43 7686497164992228299627380562916545929101608700543543065585889101306502804668415:48:43 7686497164992228299627380562916545929101608700543543065585889101306502804668416:48:44 7686497164992228299627380562916545929101608700543543065585889101306502804668417:48:44 22604799600628461883199906745781981352970349238518110723816789686679840087890624:48:44 22604799600628461883199906745781981352970349238518110723816789686679840087890625:48:45 22604799600628461883199906745781981352970349238518110723816789686679840087890626:48:45 64919612772480684272077477598407081955951769084986853540654908040236664132468735:48:45 64919612772480684272077477598407081955951769084986853540654908040236664132468736:48:46 64919612772480684272077477598407081955951769084986853540654908040236664132468737:48:46 182262440382829085265332464749253545480222210363177678129189304510665330097954560:48:46 182262440382829085265332464749253545480222210363177678129189304510665330097954561:48:47 182262440382829085265332464749253545480222210363177678129189304510665330097954562:48:47 500702078263459319174537025249570888246709955377400223021257741084821677152403455:48:47 500702078263459319174537025249570888246709955377400223021257741084821677152403456:48:48 500702078263459319174537025249570888246709955377400223021257741084821677152403457:48:48 1347137238494276547832006567721872890819326613454654477690085519113574118965817600:48:48 1347137238494276547832006567721872890819326613454654477690085519113574118965817601:48:49 1347137238494276547832006567721872890819326613454654477690085519113574118965817602:48:49 3552713678800500929355621337890624999999999999999999999999999999999999999999999999:48:49 3552713678800500929355621337890625000000000000000000000000000000000000000000000000:48:50 3552713678800500929355621337890625000000000000000000000000000000000000000000000001:48:50 9191120346583504681255274983776434664401904189141210523775156050722569313289822400:48:50 9191120346583504681255274983776434664401904189141210523775156050722569313289822401:48:51 9191120346583504681255274983776434664401904189141210523775156050722569313289822402:48:51 23343205561415174425773716055589020918406869602557897279391183253871653250825977855:48:51 23343205561415174425773716055589020918406869602557897279391183253871653250825977856:48:52 23343205561415174425773716055589020918406869602557897279391183253871653250825977857:48:52 58242732341026717216384745973588781643166711815054498553634892663887988408211332160:48:52 58242732341026717216384745973588781643166711815054498553634892663887988408211332161:48:53 58242732341026717216384745973588781643166711815054498553634892663887988408211332162:48:53 142856653235217092842326469984291760405570625278223720619803331409447942221448871935:48:53 142856653235217092842326469984291760405570625278223720619803331409447942221448871936:48:54 142856653235217092842326469984291760405570625278223720619803331409447942221448871937:48:54 344674453546901426656048228716539257071484405547611373776817345060408115386962890624:48:54 344674453546901426656048228716539257071484405547611373776817345060408115386962890625:48:55 344674453546901426656048228716539257071484405547611373776817345060408115386962890626:48:55 818512462541723445035527104269370437600723868375844094690906771181723913493168521215:48:55 818512462541723445035527104269370437600723868375844094690906771181723913493168521216:48:56 818512462541723445035527104269370437600723868375844094690906771181723913493168521217:48:56 1914225389693953133408415359672055298096464055315965154245791616469425989843102672000:48:56 1914225389693953133408415359672055298096464055315965154245791616469425989843102672001:48:57 1914225389693953133408415359672055298096464055315965154245791616469425989843102672002:48:57 4411067372388315992860700508871397707604375080488126236526447381866738070646178185215:48:57 4411067372388315992860700508871397707604375080488126236526447381866738070646178185216:48:58 4411067372388315992860700508871397707604375080488126236526447381866738070646178185217:48:58 10020665353275723944561113087860664994192870043482882631644395166602513785050786521920:48:58 10020665353275723944561113087860664994192870043482882631644395166602513785050786521921:48:59 10020665353275723944561113087860664994192870043482882631644395166602513785050786521922:48:59 22452257707354557240087211123792674815999999999999999999999999999999999999999999999999:48:59 22452257707354557240087211123792674816000000000000000000000000000000000000000000000000:48:60 22452257707354557240087211123792674816000000000000000000000000000000000000000000000001:48:60 49640035169093488898308753218227937133215876539868870610277524712635546050501279199680:48:60 49640035169093488898308753218227937133215876539868870610277524712635546050501279199681:48:61 49640035169093488898308753218227937133215876539868870610277524712635546050501279199682:48:61 108343059611908889576658785098365751087861024022010602436511655403717182115047324778495:48:61 108343059611908889576658785098365751087861024022010602436511655403717182115047324778496:48:62 108343059611908889576658785098365751087861024022010602436511655403717182115047324778497:48:62 233531986596828998799172199566520716360870650059740845218613277797210219279668591621120:48:62 233531986596828998799172199566520716360870650059740845218613277797210219279668591621121:48:63 233531986596828998799172199566520716360870650059740845218613277797210219279668591621122:48:63 497323236409786642155382248146820840100456150797347717440463976893159497012533375533055:48:63 497323236409786642155382248146820840100456150797347717440463976893159497012533375533056:48:64 497323236409786642155382248146820840100456150797347717440463976893159497012533375533057:48:64 1046745539380147623857861820053909643860908805083626024412524202489294111728668212890624:48:64 1046745539380147623857861820053909643860908805083626024412524202489294111728668212890625:48:65 1046745539380147623857861820053909643860908805083626024412524202489294111728668212890626:48:65 2178255934992614950956294019125914120758081313710545798305446016892969099239991904567295:48:65 2178255934992614950956294019125914120758081313710545798305446016892969099239991904567296:48:66 2178255934992614950956294019125914120758081313710545798305446016892969099239991904567297:48:66 4483224940666198270986387212125921182677246728561944699423642807216798233004677538363840:48:66 4483224940666198270986387212125921182677246728561944699423642807216798233004677538363841:48:67 4483224940666198270986387212125921182677246728561944699423642807216798233004677538363842:48:67 9129096753198621279736938041522068503689175697753594106649182406166278667447329542373375:48:67 9129096753198621279736938041522068503689175697753594106649182406166278667447329542373376:48:68 9129096753198621279736938041522068503689175697753594106649182406166278667447329542373377:48:68 18397395950801915076652060908664927981851936172673385761641096101224912899721670333995840:48:68 18397395950801915076652060908664927981851936172673385761641096101224912899721670333995841:48:69 18397395950801915076652060908664927981851936172673385761641096101224912899721670333995842:48:69 36703368217294125441230211032033660188800999999999999999999999999999999999999999999999999:48:69 36703368217294125441230211032033660188801000000000000000000000000000000000000000000000000:48:70 36703368217294125441230211032033660188801000000000000000000000000000000000000000000000001:48:70 72510473065315009347107084297446135385088716363174758554196323998561868156640022784658560:48:70 72510473065315009347107084297446135385088716363174758554196323998561868156640022784658561:48:71 72510473065315009347107084297446135385088716363174758554196323998561868156640022784658562:48:71 141892626801173066353341463326232586218967261979606729804427069360679295032171585429569535:48:71 141892626801173066353341463326232586218967261979606729804427069360679295032171585429569536:48:72 141892626801173066353341463326232586218967261979606729804427069360679295032171585429569537:48:72 275104241169687863536563731935462304825910790169375866446637926825823272007107914242500480:48:72 275104241169687863536563731935462304825910790169375866446637926825823272007107914242500481:48:73 275104241169687863536563731935462304825910790169375866446637926825823272007107914242500482:48:73 528594386904627157409233606057552461451310766870158880851765791697806752898093045856075775:48:73 528594386904627157409233606057552461451310766870158880851765791697806752898093045856075776:48:74 528594386904627157409233606057552461451310766870158880851765791697806752898093045856075777:48:74 1006794055870111332737981682035815565483939001121573009189802405671798624098300933837890624:48:74 1006794055870111332737981682035815565483939001121573009189802405671798624098300933837890625:48:75 1006794055870111332737981682035815565483939001121573009189802405671798624098300933837890626:48:75 1901307798286118873731890304310405643875008041641610963159183577700321908301489151699582975:48:75 1901307798286118873731890304310405643875008041641610963159183577700321908301489151699582976:48:76 1901307798286118873731890304310405643875008041641610963159183577700321908301489151699582977:48:76 3560859255029470777615016290791057512390950892437504817798719269281230881835989508317862080:48:76 3560859255029470777615016290791057512390950892437504817798719269281230881835989508317862081:48:77 3560859255029470777615016290791057512390950892437504817798719269281230881835989508317862082:48:77 6615168777721995176686989019775185366864327794479834941858852993901403609499298781972135935:48:77 6615168777721995176686989019775185366864327794479834941858852993901403609499298781972135936:48:78 6615168777721995176686989019775185366864327794479834941858852993901403609499298781972135937:48:78 12192713862603340152819902199111490199386833788314677092247576960270820773872527886089263360:48:78 12192713862603340152819902199111490199386833788314677092247576960270820773872527886089263361:48:79 12192713862603340152819902199111490199386833788314677092247576960270820773872527886089263362:48:79 22300745198530623141535718272648361505980415999999999999999999999999999999999999999999999999:48:79 22300745198530623141535718272648361505980416000000000000000000000000000000000000000000000000:48:80 22300745198530623141535718272648361505980416000000000000000000000000000000000000000000000001:48:80 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775040:48:80 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775041:48:81 40483766022843281411184472189571654752207506882090305742200116101065766026718820758174775042:48:81 72956655112677413373825072715813100116248999955252754314263300575525995101620567134726782975:48:81 72956655112677413373825072715813100116248999955252754314263300575525995101620567134726782976:48:82 72956655112677413373825072715813100116248999955252754314263300575525995101620567134726782977:48:82 130541450511821355270781364828656151378417028934898101301315293377818768621823991356828738240:48:82 130541450511821355270781364828656151378417028934898101301315293377818768621823991356828738241:48:83 130541450511821355270781364828656151378417028934898101301315293377818768621823991356828738242:48:83 231956064137666564484918802386016706154137632948123783590987542376430992908544690986309124095:48:83 231956064137666564484918802386016706154137632948123783590987542376430992908544690986309124096:48:84 231956064137666564484918802386016706154137632948123783590987542376430992908544690986309124097:48:84 409362856349756849720524532269354693293376945176752049806058408876197063364088535308837890624:48:84 409362856349756849720524532269354693293376945176752049806058408876197063364088535308837890625:48:85 409362856349756849720524532269354693293376945176752049806058408876197063364088535308837890626:48:85 717671433430242928949490198809850913634052110327828736681751139253046459360697513252283744255:48:85 717671433430242928949490198809850913634052110327828736681751139253046459360697513252283744256:48:86 717671433430242928949490198809850913634052110327828736681751139253046459360697513252283744257:48:86 1250040620234437233202066097808605459465110966620542930882860820865676766908392432395357198720:48:86 1250040620234437233202066097808605459465110966620542930882860820865676766908392432395357198721:48:87 1250040620234437233202066097808605459465110966620542930882860820865676766908392432395357198722:48:87 2163556610502710830108854747389797016716793874338517804034226701545915050766049138712453840895:48:87 2163556610502710830108854747389797016716793874338517804034226701545915050766049138712453840896:48:88 2163556610502710830108854747389797016716793874338517804034226701545915050766049138712453840897:48:88 3721519671449331631981110908328437185302548581360724759902780927715852782651191325298416548480:48:88 3721519671449331631981110908328437185302548581360724759902780927715852782651191325298416548481:48:89 3721519671449331631981110908328437185302548581360724759902780927715852782651191325298416548482:48:89 6362685441135942358474828762538534230890216320999999999999999999999999999999999999999999999999:48:89 6362685441135942358474828762538534230890216321000000000000000000000000000000000000000000000000:48:90 6362685441135942358474828762538534230890216321000000000000000000000000000000000000000000000001:48:90 10814011607783463018999168149593671727359466158094411777120051274102288312693257721106773325120:48:90 10814011607783463018999168149593671727359466158094411777120051274102288312693257721106773325121:48:91 10814011607783463018999168149593671727359466158094411777120051274102288312693257721106773325122:48:91 18273246493198806400386618639209662951955140494843076971531772654695476399249125072074038050815:48:91 18273246493198806400386618639209662951955140494843076971531772654695476399249125072074038050816:48:92 18273246493198806400386618639209662951955140494843076971531772654695476399249125072074038050817:48:92 30703050758900244972881743957618356470003628585902962731408919247256180839105002572071162302400:48:92 30703050758900244972881743957618356470003628585902962731408919247256180839105002572071162302401:48:93 30703050758900244972881743957618356470003628585902962731408919247256180839105002572071162302402:48:93 51302316161984144419861195565637095800805982753435183363003680415173369919685218532657532502015:48:93 51302316161984144419861195565637095800805982753435183363003680415173369919685218532657532502016:48:94 51302316161984144419861195565637095800805982753435183363003680415173369919685218532657532502017:48:94 85257590334308398087860807862421154731500384756109847579645023785133162164129316806793212890624:48:94 85257590334308398087860807862421154731500384756109847579645023785133162164129316806793212890625:48:95 85257590334308398087860807862421154731500384756109847579645023785133162164129316806793212890626:48:95 140935105818184269672026094920534143995300415926668708765984903053059336789127544918335486427135:48:95 140935105818184269672026094920534143995300415926668708765984903053059336789127544918335486427136:48:96 140935105818184269672026094920534143995300415926668708765984903053059336789127544918335486427137:48:96 231762541553201825348798189709564263222224841836230743257098437043630734406642352221907479605760:48:96 231762541553201825348798189709564263222224841836230743257098437043630734406642352221907479605761:48:97 231762541553201825348798189709564263222224841836230743257098437043630734406642352221907479605762:48:97 379185422831233928797765495057459006009375879956409520007340289427766231081300783149624649056255:48:97 379185422831233928797765495057459006009375879956409520007340289427766231081300783149624649056256:48:98 379185422831233928797765495057459006009375879956409520007340289427766231081300783149624649056257:48:98 617290140942288185336108527714065437666678007841015598494694148206705262569099287208400715275200:48:98 617290140942288185336108527714065437666678007841015598494694148206705262569099287208400715275201:48:99 617290140942288185336108527714065437666678007841015598494694148206705262569099287208400715275202:48:99 0:49:0 1:49:1 2:49:1 562949953421311:49:1 562949953421312:49:2 562949953421313:49:2 239299329230617529590082:49:2 239299329230617529590083:49:3 239299329230617529590084:49:3 316912650057057350374175801343:49:3 316912650057057350374175801344:49:4 316912650057057350374175801345:49:4 17763568394002504646778106689453124:49:4 17763568394002504646778106689453125:49:5 17763568394002504646778106689453126:49:5 134713546244127343440523266742756048895:49:5 134713546244127343440523266742756048896:49:6 134713546244127343440523266742756048897:49:6 256923577521058878088611477224235621321606:49:6 256923577521058878088611477224235621321607:49:7 256923577521058878088611477224235621321608:49:7 178405961588244985132285746181186892047843327:49:7 178405961588244985132285746181186892047843328:49:8 178405961588244985132285746181186892047843329:49:8 57264168970223481226273458862846808078011946888:49:8 57264168970223481226273458862846808078011946889:49:9 57264168970223481226273458862846808078011946890:49:9 1067189571633593786424240872639621090354383081702090:49:10 1067189571633593786424240872639621090354383081702091:49:11 1067189571633593786424240872639621090354383081702092:49:11 75836984583351248111063210627854719374392938360471551:49:11 75836984583351248111063210627854719374392938360471552:49:12 75836984583351248111063210627854719374392938360471553:49:12 3830224792147131369362629348887201408953937846517364172:49:12 3830224792147131369362629348887201408953937846517364173:49:13 3830224792147131369362629348887201408953937846517364174:49:13 144635115998316938222768918983913092176221616624719888383:49:13 144635115998316938222768918983913092176221616624719888384:49:14 144635115998316938222768918983913092176221616624719888385:49:14 4250810001426997246022718712765708914957940578460693359374:49:14 4250810001426997246022718712765708914957940578460693359375:49:15 4250810001426997246022718712765708914957940578460693359376:49:15 100433627766186892221372630771322662657637687111424552206335:49:15 100433627766186892221372630771322662657637687111424552206336:49:16 100433627766186892221372630771322662657637687111424552206337:49:16 1958831807773342257691221904789587637189069813834520650586896:49:16 1958831807773342257691221904789587637189069813834520650586897:49:17 1958831807773342257691221904789587637189069813834520650586898:49:17 32236861254497448713009821354390767554140560239564415584698367:49:17 32236861254497448713009821354390767554140560239564415584698368:49:18 32236861254497448713009821354390767554140560239564415584698369:49:18 455959686821366022454949378982905905942144382221632529971562578:49:18 455959686821366022454949378982905905942144382221632529971562579:49:19 455959686821366022454949378982905905942144382221632529971562580:49:19 5629499534213119999999999999999999999999999999999999999999999999:49:19 5629499534213120000000000000000000000000000000000000000000000000:49:20 5629499534213120000000000000000000000000000000000000000000000001:49:20 61481639764319953637450308364125174597813772519580348785420823380:49:20 61481639764319953637450308364125174597813772519580348785420823381:49:21 61481639764319953637450308364125174597813772519580348785420823382:49:21 600774319642841528092711102659123449286352750007573133369794363391:49:21 600774319642841528092711102659123449286352750007573133369794363392:49:22 600774319642841528092711102659123449286352750007573133369794363393:49:22 5304738315342148305325700564919212656132041732898221764838321536662:49:22 5304738315342148305325700564919212656132041732898221764838321536663:49:23 5304738315342148305325700564919212656132041732898221764838321536664:49:23 42692426938810341355395254247148178158685421582623594902764046516223:49:23 42692426938810341355395254247148178158685421582623594902764046516224:49:24 42692426938810341355395254247148178158685421582623594902764046516225:49:24 315544362088404722164691426113114491869282574043609201908111572265624:49:24 315544362088404722164691426113114491869282574043609201908111572265625:49:25 315544362088404722164691426113114491869282574043609201908111572265626:49:25 2156224868332382041096610043401378731710517689871072836866157603454975:49:25 2156224868332382041096610043401378731710517689871072836866157603454976:49:26 2156224868332382041096610043401378731710517689871072836866157603454977:49:26 13703277223523221219433362313025801636536040755174924956117940937101786:49:26 13703277223523221219433362313025801636536040755174924956117940937101787:49:27 13703277223523221219433362313025801636536040755174924956117940937101788:49:27 81422331814338578443094572348365901791639019487418361547332031566839807:49:27 81422331814338578443094572348365901791639019487418361547332031566839808:49:28 81422331814338578443094572348365901791639019487418361547332031566839809:49:28 454466522367842045301814532213564254165756314784217056723274815774031068:49:28 454466522367842045301814532213564254165756314784217056723274815774031069:49:29 454466522367842045301814532213564254165756314784217056723274815774031070:49:29 2392993292306175295900829999999999999999999999999999999999999999999999999:49:29 2392993292306175295900830000000000000000000000000000000000000000000000000:49:30 2392993292306175295900830000000000000000000000000000000000000000000000001:49:30 11932267966476130911517907186867185074148138371734008968629799047943267870:49:30 11932267966476130911517907186867185074148138371734008968629799047943267871:49:31 11932267966476130911517907186867185074148138371734008968629799047943267872:49:31 56539106072908298546665520023773392506479484700019806659891398441363832831:49:31 56539106072908298546665520023773392506479484700019806659891398441363832832:49:32 56539106072908298546665520023773392506479484700019806659891398441363832833:49:32 255377748653829049564328466570213883759580693863881646678065772553153963552:49:32 255377748653829049564328466570213883759580693863881646678065772553153963553:49:33 255377748653829049564328466570213883759580693863881646678065772553153963554:49:33 1102724274946187405216789633086272918395678650411263531431672652905907748863:49:33 1102724274946187405216789633086272918395678650411263531431672652905907748864:49:34 1102724274946187405216789633086272918395678650411263531431672652905907748865:49:34 4563879541327133859038615732548216309567248316625409643165767192840576171874:49:34 4563879541327133859038615732548216309567248316625409643165767192840576171875:49:35 4563879541327133859038615732548216309567248316625409643165767192840576171876:49:35 18147739541668636280463618532168272792698436402026524209529776843597142818815:49:35 18147739541668636280463618532168272792698436402026524209529776843597142818816:49:36 18147739541668636280463618532168272792698436402026524209529776843597142818817:49:36 69483946829049631418732401130460520284154662726180186608059352312305811442276:49:36 69483946829049631418732401130460520284154662726180186608059352312305811442277:49:37 69483946829049631418732401130460520284154662726180186608059352312305811442278:49:37 256682484458084009310894059168345700311598653735178802293322689651987760283647:49:37 256682484458084009310894059168345700311598653735178802293322689651987760283648:49:38 256682484458084009310894059168345700311598653735178802293322689651987760283649:49:38 916570223563289985302988937729765799061385621316992323430722204456894320296358:49:38 916570223563289985302988937729765799061385621316992323430722204456894320296359:49:39 916570223563289985302988937729765799061385621316992323430722204456894320296360:49:39 3169126500570573503741758013439999999999999999999999999999999999999999999999999:49:39 3169126500570573503741758013440000000000000000000000000000000000000000000000000:49:40 3169126500570573503741758013440000000000000000000000000000000000000000000000001:49:40 10626958369711921464524195291361995091840984877383970281829289645246795001179560:49:40 10626958369711921464524195291361995091840984877383970281829289645246795001179561:49:41 10626958369711921464524195291361995091840984877383970281829289645246795001179562:49:41 34611086241589801589549998440321238243462362702804565056245695515038469033295871:49:41 34611086241589801589549998440321238243462362702804565056245695515038469033295872:49:42 34611086241589801589549998440321238243462362702804565056245695515038469033295873:49:42 109636288092575447964904635074473977192128304892892159036376039395154427866820842:49:42 109636288092575447964904635074473977192128304892892159036376039395154427866820843:49:43 109636288092575447964904635074473977192128304892892159036376039395154427866820844:49:43 338205875259658045183604744768328020880470782823915894885779120457486123405410303:49:43 338205875259658045183604744768328020880470782823915894885779120457486123405410304:49:44 338205875259658045183604744768328020880470782823915894885779120457486123405410305:49:44 1017215982028280784743995803560189160883665715733314982571755535900592803955078124:49:44 1017215982028280784743995803560189160883665715733314982571755535900592803955078125:49:45 1017215982028280784743995803560189160883665715733314982571755535900592803955078126:49:45 2986302187534111476515563969526725769973781377909395262870125769850886550093561855:49:45 2986302187534111476515563969526725769973781377909395262870125769850886550093561856:49:46 2986302187534111476515563969526725769973781377909395262870125769850886550093561857:49:46 8566334697992967007470625843214916637570443887069350872071897312001270514603864366:49:46 8566334697992967007470625843214916637570443887069350872071897312001270514603864367:49:47 8566334697992967007470625843214916637570443887069350872071897312001270514603864368:49:47 24033699756646047320377777211979402635842077858115210705020371572071440503315365887:49:47 24033699756646047320377777211979402635842077858115210705020371572071440503315365888:49:48 24033699756646047320377777211979402635842077858115210705020371572071440503315365889:49:48 66009724686219550843768321818371771650147004059278069406814190436565131829325062448:49:48 66009724686219550843768321818371771650147004059278069406814190436565131829325062449:49:49 66009724686219550843768321818371771650147004059278069406814190436565131829325062450:49:49 177635683940025046467781066894531249999999999999999999999999999999999999999999999999:49:49 177635683940025046467781066894531250000000000000000000000000000000000000000000000000:49:50 177635683940025046467781066894531250000000000000000000000000000000000000000000000001:49:50 468747137675758738744019024172598167884497113646201736712532958586851034977780942450:49:50 468747137675758738744019024172598167884497113646201736712532958586851034977780942451:49:51 468747137675758738744019024172598167884497113646201736712532958586851034977780942452:49:51 1213846689193589070140233234890629087757157219333010658528341529201325969042950848511:49:51 1213846689193589070140233234890629087757157219333010658528341529201325969042950848512:49:52 1213846689193589070140233234890629087757157219333010658528341529201325969042950848513:49:52 3086864814074416012468391536600205427087835726197888423342649311186063385635200604532:49:52 3086864814074416012468391536600205427087835726197888423342649311186063385635200604533:49:53 3086864814074416012468391536600205427087835726197888423342649311186063385635200604534:49:53 7714259274701723013485629379151755061900813765024080913469379896110188879958239084543:49:53 7714259274701723013485629379151755061900813765024080913469379896110188879958239084544:49:54 7714259274701723013485629379151755061900813765024080913469379896110188879958239084545:49:54 18957094945079578466082652579409659138931642305118625557724953978322446346282958984374:49:54 18957094945079578466082652579409659138931642305118625557724953978322446346282958984375:49:55 18957094945079578466082652579409659138931642305118625557724953978322446346282958984376:49:55 45836697902336512921989517839084744505640536629047269302690779186176539155617437188095:49:55 45836697902336512921989517839084744505640536629047269302690779186176539155617437188096:49:56 45836697902336512921989517839084744505640536629047269302690779186176539155617437188097:49:56 109110847212555328604279675501307151991498451153010013792010122138757281421056852304056:49:56 109110847212555328604279675501307151991498451153010013792010122138757281421056852304057:49:57 109110847212555328604279675501307151991498451153010013792010122138757281421056852304058:49:57 255841907598522327585920629514541067041053754668311321718533948148270808097478334742527:49:57 255841907598522327585920629514541067041053754668311321718533948148270808097478334742528:49:58 255841907598522327585920629514541067041053754668311321718533948148270808097478334742529:49:58 591219255843267712729105672183779234657379332565490075267019314829548313317996404793338:49:58 591219255843267712729105672183779234657379332565490075267019314829548313317996404793339:49:59 591219255843267712729105672183779234657379332565490075267019314829548313317996404793340:49:59 1347135462441273434405232667427560488959999999999999999999999999999999999999999999999999:49:59 1347135462441273434405232667427560488960000000000000000000000000000000000000000000000000:49:60 1347135462441273434405232667427560488960000000000000000000000000000000000000000000000001:49:60 3028042145314702822796833946311904165126168468932001107226929007470768309080578031180540:49:60 3028042145314702822796833946311904165126168468932001107226929007470768309080578031180541:49:61 3028042145314702822796833946311904165126168468932001107226929007470768309080578031180542:49:61 6717269695938351153752844676098676567447383489364657351063722635030465291132934136266751:49:61 6717269695938351153752844676098676567447383489364657351063722635030465291132934136266752:49:62 6717269695938351153752844676098676567447383489364657351063722635030465291132934136266753:49:62 14712515155600226924347848572690805130734850953763673248772636501224243814619121272130622:49:62 14712515155600226924347848572690805130734850953763673248772636501224243814619121272130623:49:63 14712515155600226924347848572690805130734850953763673248772636501224243814619121272130624:49:63 31828687130226345097944463881396533766429193651030253916189694521162207808802136034115583:49:63 31828687130226345097944463881396533766429193651030253916189694521162207808802136034115584:49:64 31828687130226345097944463881396533766429193651030253916189694521162207808802136034115585:49:64 68038460059709595550761018303504126850959072330435691586814073161804117262363433837890624:49:64 68038460059709595550761018303504126850959072330435691586814073161804117262363433837890625:49:65 68038460059709595550761018303504126850959072330435691586814073161804117262363433837890626:49:65 143764891709512586763115405262310331970033366704896022688159437114935960549839465701441535:49:65 143764891709512586763115405262310331970033366704896022688159437114935960549839465701441536:49:66 143764891709512586763115405262310331970033366704896022688159437114935960549839465701441537:49:66 300376071024635284156087943212436719239375530813650294861384068083525481611313395070377346:49:66 300376071024635284156087943212436719239375530813650294861384068083525481611313395070377347:49:67 300376071024635284156087943212436719239375530813650294861384068083525481611313395070377348:49:67 620778579217506247022111786823500658250863947447244399252144403619306949386418408881389567:49:67 620778579217506247022111786823500658250863947447244399252144403619306949386418408881389568:49:68 620778579217506247022111786823500658250863947447244399252144403619306949386418408881389569:49:68 1269420320605332140288992202697880030747783595914463617553235630984518990080795253045713028:49:68 1269420320605332140288992202697880030747783595914463617553235630984518990080795253045713029:49:69 1269420320605332140288992202697880030747783595914463617553235630984518990080795253045713030:49:69 2569235775210588780886114772242356213216069999999999999999999999999999999999999999999999999:49:69 2569235775210588780886114772242356213216070000000000000000000000000000000000000000000000000:49:70 2569235775210588780886114772242356213216070000000000000000000000000000000000000000000000001:49:70 5148243587637365663644602985118675612341298861785407857347939003897892639121441617710757830:49:70 5148243587637365663644602985118675612341298861785407857347939003897892639121441617710757831:49:71 5148243587637365663644602985118675612341298861785407857347939003897892639121441617710757832:49:71 10216269129684460777440585359488746207765642862531684545918748993968909242316354150929006591:49:71 10216269129684460777440585359488746207765642862531684545918748993968909242316354150929006592:49:72 10216269129684460777440585359488746207765642862531684545918748993968909242316354150929006593:49:72 20082609605387214038169152431288748252291487682364438250604568658285098856518877739702535112:49:72 20082609605387214038169152431288748252291487682364438250604568658285098856518877739702535113:49:73 20082609605387214038169152431288748252291487682364438250604568658285098856518877739702535114:49:73 39115984630942409648283286848258882147396996748391757183030668585637699714458885393349607423:49:73 39115984630942409648283286848258882147396996748391757183030668585637699714458885393349607424:49:74 39115984630942409648283286848258882147396996748391757183030668585637699714458885393349607425:49:74 75509554190258349955348626152686167411295425084117975689235180425384896807372570037841796874:49:74 75509554190258349955348626152686167411295425084117975689235180425384896807372570037841796875:49:75 75509554190258349955348626152686167411295425084117975689235180425384896807372570037841796876:49:75 144499392669745034403623663127590828934500611164762433200097951905224465030913175529168306175:49:75 144499392669745034403623663127590828934500611164762433200097951905224465030913175529168306176:49:76 144499392669745034403623663127590828934500611164762433200097951905224465030913175529168306177:49:76 274186162637269249876356254390911428454103218717687870970501383734654777901371192140475380236:49:76 274186162637269249876356254390911428454103218717687870970501383734654777901371192140475380237:49:77 274186162637269249876356254390911428454103218717687870970501383734654777901371192140475380238:49:77 515983164662315623781585143542464458615417567969427125464990533524309481540945304993826603007:49:77 515983164662315623781585143542464458615417567969427125464990533524309481540945304993826603008:49:78 515983164662315623781585143542464458615417567969427125464990533524309481540945304993826603009:49:78 963224395145663872072772273729807725751559869276859490287558579861394841135929703001051805518:49:78 963224395145663872072772273729807725751559869276859490287558579861394841135929703001051805519:49:79 963224395145663872072772273729807725751559869276859490287558579861394841135929703001051805520:49:79 1784059615882449851322857461811868920478433279999999999999999999999999999999999999999999999999:49:79 1784059615882449851322857461811868920478433280000000000000000000000000000000000000000000000000:49:80 1784059615882449851322857461811868920478433280000000000000000000000000000000000000000000000001:49:80 3279185047850305794305942247355304034928808057449314765118209404186327048164224481412156778320:49:80 3279185047850305794305942247355304034928808057449314765118209404186327048164224481412156778321:49:81 3279185047850305794305942247355304034928808057449314765118209404186327048164224481412156778322:49:81 5982445719239547896653655962696674209532417996330725853769590647193131598332886505047596204031:49:81 5982445719239547896653655962696674209532417996330725853769590647193131598332886505047596204032:49:82 5982445719239547896653655962696674209532417996330725853769590647193131598332886505047596204033:49:82 10834940392481172487474853280778460564408613401596542408009169350358957795611391282616785274002:49:82 10834940392481172487474853280778460564408613401596542408009169350358957795611391282616785274003:49:83 10834940392481172487474853280778460564408613401596542408009169350358957795611391282616785274004:49:83 19484309387563991416733179400425403316947561167642397821642953559620203404317754042849966424063:49:83 19484309387563991416733179400425403316947561167642397821642953559620203404317754042849966424064:49:84 19484309387563991416733179400425403316947561167642397821642953559620203404317754042849966424065:49:84 34795842789729332226244585242895148929937040340023924233514964754476750385947525501251220703124:49:84 34795842789729332226244585242895148929937040340023924233514964754476750385947525501251220703125:49:85 34795842789729332226244585242895148929937040340023924233514964754476750385947525501251220703126:49:85 61719743275000891889656157097647178572528481488193271354630597975761995505019986139696402006015:49:85 61719743275000891889656157097647178572528481488193271354630597975761995505019986139696402006016:49:86 61719743275000891889656157097647178572528481488193271354630597975761995505019986139696402006017:49:86 108753533960396039288579750509348674973464654095987234986808891415313878721030141618396076288726:49:86 108753533960396039288579750509348674973464654095987234986808891415313878721030141618396076288727:49:87 108753533960396039288579750509348674973464654095987234986808891415313878721030141618396076288728:49:87 190392981724238553049579217770302137471077860941789566755011949736040524467412324206695937998847:49:87 190392981724238553049579217770302137471077860941789566755011949736040524467412324206695937998848:49:88 190392981724238553049579217770302137471077860941789566755011949736040524467412324206695937998849:49:88 331215250758990515246318870841230909491926823741104503631347502566710897655956027951559072814808:49:88 331215250758990515246318870841230909491926823741104503631347502566710897655956027951559072814809:49:89 331215250758990515246318870841230909491926823741104503631347502566710897655956027951559072814810:49:89 572641689702234812262734588628468080780119468889999999999999999999999999999999999999999999999999:49:89 572641689702234812262734588628468080780119468890000000000000000000000000000000000000000000000000:49:90 572641689702234812262734588628468080780119468890000000000000000000000000000000000000000000000001:49:90 984075056308295134728924301613024127189711420386591471717924665943308236455086452620716372586010:49:90 984075056308295134728924301613024127189711420386591471717924665943308236455086452620716372586011:49:91 984075056308295134728924301613024127189711420386591471717924665943308236455086452620716372586012:49:91 1681138677374290188835568914807288991579872925525563081380923084231983828730919506630811500675071:49:91 1681138677374290188835568914807288991579872925525563081380923084231983828730919506630811500675072:49:92 1681138677374290188835568914807288991579872925525563081380923084231983828730919506630811500675073:49:92 2855383720577722782478002188058507151710337458488975534021029489994824818036765239202618094123292:49:92 2855383720577722782478002188058507151710337458488975534021029489994824818036765239202618094123293:49:93 2855383720577722782478002188058507151710337458488975534021029489994824818036765239202618094123294:49:93 4822417719226509575466952383169887005275762378822907236122345959026296772450410542069808055189503:49:93 4822417719226509575466952383169887005275762378822907236122345959026296772450410542069808055189504:49:94 4822417719226509575466952383169887005275762378822907236122345959026296772450410542069808055189505:49:94 8099471081759297818346776746930009699492536551830435520066277259587650405592285096645355224609374:49:94 8099471081759297818346776746930009699492536551830435520066277259587650405592285096645355224609375:49:95 8099471081759297818346776746930009699492536551830435520066277259587650405592285096645355224609376:49:95 13529770158545689888514505112371277823548839928960196041534550693093696331756244312160206697005055:49:95 13529770158545689888514505112371277823548839928960196041534550693093696331756244312160206697005056:49:96 13529770158545689888514505112371277823548839928960196041534550693093696331756244312160206697005057:49:96 22480966530660577058833424401827733532555809658114382095938548393232181237444308165525025521758816:49:96 22480966530660577058833424401827733532555809658114382095938548393232181237444308165525025521758817:49:97 22480966530660577058833424401827733532555809658114382095938548393232181237444308165525025521758818:49:97 37160171437460925022181018515630982588918836235728132960719348363921090645967476748663215607513087:49:97 37160171437460925022181018515630982588918836235728132960719348363921090645967476748663215607513088:49:98 37160171437460925022181018515630982588918836235728132960719348363921090645967476748663215607513089:49:98 61111723953286530348274744243692478329001122776260544250974720672463820994340829433631670812244898:49:98 61111723953286530348274744243692478329001122776260544250974720672463820994340829433631670812244899:49:99 61111723953286530348274744243692478329001122776260544250974720672463820994340829433631670812244900:49:99 0:50:0 1:50:1 2:50:1 1125899906842623:50:1 1125899906842624:50:2 1125899906842625:50:2 717897987691852588770248:50:2 717897987691852588770249:50:3 717897987691852588770250:50:3 1267650600228229401496703205375:50:3 1267650600228229401496703205376:50:4 1267650600228229401496703205377:50:4 88817841970012523233890533447265624:50:4 88817841970012523233890533447265625:50:5 88817841970012523233890533447265626:50:5 808281277464764060643139600456536293375:50:5 808281277464764060643139600456536293376:50:6 808281277464764060643139600456536293377:50:6 1798465042647412146620280340569649349251248:50:6 1798465042647412146620280340569649349251249:50:7 1798465042647412146620280340569649349251250:50:7 1427247692705959881058285969449495136382746623:50:7 1427247692705959881058285969449495136382746624:50:8 1427247692705959881058285969449495136382746625:50:8 515377520732011331036461129765621272702107522000:50:8 515377520732011331036461129765621272702107522001:50:9 515377520732011331036461129765621272702107522002:50:9 11739085287969531650666649599035831993898213898723000:50:10 11739085287969531650666649599035831993898213898723001:50:11 11739085287969531650666649599035831993898213898723002:50:11 910043815000214977332758527534256632492715260325658623:50:11 910043815000214977332758527534256632492715260325658624:50:12 910043815000214977332758527534256632492715260325658625:50:12 49792922297912707801714181535533618316401192004725734248:50:12 49792922297912707801714181535533618316401192004725734249:50:13 49792922297912707801714181535533618316401192004725734250:50:13 2024891623976437135118764865774783290467102632746078437375:50:13 2024891623976437135118764865774783290467102632746078437376:50:14 2024891623976437135118764865774783290467102632746078437377:50:14 63762150021404958690340780691485633724369108676910400390624:50:14 63762150021404958690340780691485633724369108676910400390625:50:15 63762150021404958690340780691485633724369108676910400390626:50:15 1606938044258990275541962092341162602522202993782792835301375:50:15 1606938044258990275541962092341162602522202993782792835301376:50:16 1606938044258990275541962092341162602522202993782792835301377:50:16 33300140732146818380750772381422989832214186835186851059977248:50:16 33300140732146818380750772381422989832214186835186851059977249:50:17 33300140732146818380750772381422989832214186835186851059977250:50:17 580263502580954076834176784379033815974530084312159480524570623:50:17 580263502580954076834176784379033815974530084312159480524570624:50:18 580263502580954076834176784379033815974530084312159480524570625:50:18 8663234049605954426644038200675212212900743262211018069459689000:50:18 8663234049605954426644038200675212212900743262211018069459689001:50:19 8663234049605954426644038200675212212900743262211018069459689002:50:19 112589990684262399999999999999999999999999999999999999999999999999:50:19 112589990684262400000000000000000000000000000000000000000000000000:50:20 112589990684262400000000000000000000000000000000000000000000000001:50:20 1291114435050719026386456475646628666554089222911187324493837291000:50:20 1291114435050719026386456475646628666554089222911187324493837291001:50:21 1291114435050719026386456475646628666554089222911187324493837291002:50:21 13217035032142513618039644258500715884299760500166608934135475994623:50:21 13217035032142513618039644258500715884299760500166608934135475994624:50:22 13217035032142513618039644258500715884299760500166608934135475994625:50:22 122008981252869411022491112993141891091036959856659100591281395343248:50:22 122008981252869411022491112993141891091036959856659100591281395343249:50:23 122008981252869411022491112993141891091036959856659100591281395343250:50:23 1024618246531448192529486101931556275808450117982966277666337116389375:50:23 1024618246531448192529486101931556275808450117982966277666337116389376:50:24 1024618246531448192529486101931556275808450117982966277666337116389377:50:24 7888609052210118054117285652827862296732064351090230047702789306640624:50:24 7888609052210118054117285652827862296732064351090230047702789306640625:50:25 7888609052210118054117285652827862296732064351090230047702789306640626:50:25 56061846576641933068511861128435847024473459936647893758520097689829375:50:25 56061846576641933068511861128435847024473459936647893758520097689829376:50:26 56061846576641933068511861128435847024473459936647893758520097689829377:50:26 369988485035126972924700782451696644186473100389722973815184405301748248:50:26 369988485035126972924700782451696644186473100389722973815184405301748249:50:27 369988485035126972924700782451696644186473100389722973815184405301748250:50:27 2279825290801480196406648025754245250165892545647714123325296883871514623:50:27 2279825290801480196406648025754245250165892545647714123325296883871514624:50:28 2279825290801480196406648025754245250165892545647714123325296883871514625:50:28 13179529148667419313752621434193363370806933128742294644974969657446901000:50:28 13179529148667419313752621434193363370806933128742294644974969657446901001:50:29 13179529148667419313752621434193363370806933128742294644974969657446901002:50:29 71789798769185258877024899999999999999999999999999999999999999999999999999:50:29 71789798769185258877024900000000000000000000000000000000000000000000000000:50:30 71789798769185258877024900000000000000000000000000000000000000000000000001:50:30 369900306960760058257055122792882737298592289523754278027523770486241304000:50:30 369900306960760058257055122792882737298592289523754278027523770486241304001:50:31 369900306960760058257055122792882737298592289523754278027523770486241304002:50:31 1809251394333065553493296640760748560207343510400633813116524750123642650623:50:31 1809251394333065553493296640760748560207343510400633813116524750123642650624:50:32 1809251394333065553493296640760748560207343510400633813116524750123642650625:50:32 8427465705576358635622839396817058164066162897508094340376170494254080797248:50:32 8427465705576358635622839396817058164066162897508094340376170494254080797249:50:33 8427465705576358635622839396817058164066162897508094340376170494254080797250:50:33 37492625348170371777370847524933279225453074113982960068676870198800863461375:50:33 37492625348170371777370847524933279225453074113982960068676870198800863461376:50:34 37492625348170371777370847524933279225453074113982960068676870198800863461377:50:34 159735783946449685066351550639187570834853691081889337510801851749420166015624:50:34 159735783946449685066351550639187570834853691081889337510801851749420166015625:50:35 159735783946449685066351550639187570834853691081889337510801851749420166015626:50:35 653318623500070906096690267158057820537143710472954871543071966369497141477375:50:35 653318623500070906096690267158057820537143710472954871543071966369497141477376:50:36 653318623500070906096690267158057820537143710472954871543071966369497141477377:50:36 2570906032674836362493098841827039250513722520868666904498196035555315023364248:50:36 2570906032674836362493098841827039250513722520868666904498196035555315023364249:50:37 2570906032674836362493098841827039250513722520868666904498196035555315023364250:50:37 9753934409407192353813974248397136611840748841936794487146262206775534890778623:50:37 9753934409407192353813974248397136611840748841936794487146262206775534890778624:50:38 9753934409407192353813974248397136611840748841936794487146262206775534890778625:50:38 35746238718968309426816568571460866163394039231362700613798165973818878491558000:50:38 35746238718968309426816568571460866163394039231362700613798165973818878491558001:50:39 35746238718968309426816568571460866163394039231362700613798165973818878491558002:50:39 126765060022822940149670320537599999999999999999999999999999999999999999999999999:50:39 126765060022822940149670320537600000000000000000000000000000000000000000000000000:50:40 126765060022822940149670320537600000000000000000000000000000000000000000000000001:50:40 435705293158188780045492006945841798765480379972742781555000875455118595048362000:50:40 435705293158188780045492006945841798765480379972742781555000875455118595048362001:50:41 435705293158188780045492006945841798765480379972742781555000875455118595048362002:50:41 1453665622146771666761099934493492006225419233517791732362319211631615699398426623:50:41 1453665622146771666761099934493492006225419233517791732362319211631615699398426624:50:42 1453665622146771666761099934493492006225419233517791732362319211631615699398426625:50:42 4714360387980744262490899308202381019261517110394362838564169693991640398273296248:50:42 4714360387980744262490899308202381019261517110394362838564169693991640398273296249:50:43 4714360387980744262490899308202381019261517110394362838564169693991640398273296250:50:43 14881058511424953988078608769806432918740714444252299374974281300129389429838053375:50:43 14881058511424953988078608769806432918740714444252299374974281300129389429838053376:50:44 14881058511424953988078608769806432918740714444252299374974281300129389429838053377:50:44 45774719191272635313479811160208512239764957207999174215728999115526676177978515624:50:44 45774719191272635313479811160208512239764957207999174215728999115526676177978515625:50:45 45774719191272635313479811160208512239764957207999174215728999115526676177978515626:50:45 137369900626569127919715942598229385418793943383832182092025785413140781304303845375:50:45 137369900626569127919715942598229385418793943383832182092025785413140781304303845376:50:46 137369900626569127919715942598229385418793943383832182092025785413140781304303845377:50:46 402617730805669449351119414631101081965810862692259490987379173664059714186381625248:50:46 402617730805669449351119414631101081965810862692259490987379173664059714186381625249:50:47 402617730805669449351119414631101081965810862692259490987379173664059714186381625250:50:47 1153617588319010271378133306175011326520419737189530113840977835459429144159137562623:50:47 1153617588319010271378133306175011326520419737189530113840977835459429144159137562624:50:48 1153617588319010271378133306175011326520419737189530113840977835459429144159137562625:50:48 3234476509624757991344647769100216810857203198904625400933895331391691459636928060000:50:48 3234476509624757991344647769100216810857203198904625400933895331391691459636928060001:50:49 3234476509624757991344647769100216810857203198904625400933895331391691459636928060002:50:49 8881784197001252323389053344726562499999999999999999999999999999999999999999999999999:50:49 8881784197001252323389053344726562500000000000000000000000000000000000000000000000000:50:50 8881784197001252323389053344726562500000000000000000000000000000000000000000000000001:50:50 23906104021463695675944970232802506562109352795956288572339180887929402783866828065000:50:50 23906104021463695675944970232802506562109352795956288572339180887929402783866828065001:50:51 23906104021463695675944970232802506562109352795956288572339180887929402783866828065002:50:51 63120027838066631647292128214312712563372175405316554243473759518468950390233444122623:50:51 63120027838066631647292128214312712563372175405316554243473759518468950390233444122624:50:52 63120027838066631647292128214312712563372175405316554243473759518468950390233444122625:50:52 163603835145944048660824751439810887635655293488488086437160413492861359438665632040248:50:52 163603835145944048660824751439810887635655293488488086437160413492861359438665632040249:50:53 163603835145944048660824751439810887635655293488488086437160413492861359438665632040250:50:53 416570000833893042728223986474194773342643943311300369327346514389950199517744910565375:50:53 416570000833893042728223986474194773342643943311300369327346514389950199517744910565376:50:54 416570000833893042728223986474194773342643943311300369327346514389950199517744910565377:50:54 1042640221979376815634545891867531252641240326781524405674872468807734549045562744140624:50:54 1042640221979376815634545891867531252641240326781524405674872468807734549045562744140625:50:55 1042640221979376815634545891867531252641240326781524405674872468807734549045562744140626:50:55 2566855082530844723631412998988745692315870051226647080950683634425886192714576482533375:50:55 2566855082530844723631412998988745692315870051226647080950683634425886192714576482533376:50:56 2566855082530844723631412998988745692315870051226647080950683634425886192714576482533377:50:56 6219318291115653730443941503574507663515411715721570786144576961909165041000240581331248:50:56 6219318291115653730443941503574507663515411715721570786144576961909165041000240581331249:50:57 6219318291115653730443941503574507663515411715721570786144576961909165041000240581331250:50:57 14838830640714294999983396511843381888381117770762056659674968992599706869653743415066623:50:57 14838830640714294999983396511843381888381117770762056659674968992599706869653743415066624:50:58 14838830640714294999983396511843381888381117770762056659674968992599706869653743415066625:50:58 34881936094752795051017234658842974844785380621363914440754139574943350485761787882807000:50:58 34881936094752795051017234658842974844785380621363914440754139574943350485761787882807001:50:59 34881936094752795051017234658842974844785380621363914440754139574943350485761787882807002:50:59 80828127746476406064313960045653629337599999999999999999999999999999999999999999999999999:50:59 80828127746476406064313960045653629337600000000000000000000000000000000000000000000000000:50:60 80828127746476406064313960045653629337600000000000000000000000000000000000000000000000001:50:60 184710570864196872190606870725026154072696276604852067540842669455716866853915259902013000:50:60 184710570864196872190606870725026154072696276604852067540842669455716866853915259902013001:50:61 184710570864196872190606870725026154072696276604852067540842669455716866853915259902013002:50:61 416470721148177771532676369918117947181737776340608755765950803371888848050241916448538623:50:61 416470721148177771532676369918117947181737776340608755765950803371888848050241916448538624:50:62 416470721148177771532676369918117947181737776340608755765950803371888848050241916448538625:50:62 926888454802814296233914460079520723236295610087111414672676099577127360321004640144229248:50:62 926888454802814296233914460079520723236295610087111414672676099577127360321004640144229249:50:63 926888454802814296233914460079520723236295610087111414672676099577127360321004640144229250:50:63 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375:50:63 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376:50:64 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377:50:64 4422499903881123710799466189727768245312339701478319953142914755517267622053623199462890624:50:64 4422499903881123710799466189727768245312339701478319953142914755517267622053623199462890625:50:65 4422499903881123710799466189727768245312339701478319953142914755517267622053623199462890626:50:65 9488482852827830726365616747312481910022202202523137497418522849585773396289404736295141375:50:65 9488482852827830726365616747312481910022202202523137497418522849585773396289404736295141376:50:66 9488482852827830726365616747312481910022202202523137497418522849585773396289404736295141377:50:66 20125196758650564038457892195233260189038160564514569755712732561596207267957997469715282248:50:66 20125196758650564038457892195233260189038160564514569755712732561596207267957997469715282249:50:67 20125196758650564038457892195233260189038160564514569755712732561596207267957997469715282250:50:67 42212943386790424797503601503998044761058748426412619149145819446112872558276451803934490623:50:67 42212943386790424797503601503998044761058748426412619149145819446112872558276451803934490624:50:68 42212943386790424797503601503998044761058748426412619149145819446112872558276451803934490625:50:68 87590002121767917679940461986153722121597068118097989611173258537931810315574872460154199000:50:68 87590002121767917679940461986153722121597068118097989611173258537931810315574872460154199001:50:69 87590002121767917679940461986153722121597068118097989611173258537931810315574872460154199002:50:69 179846504264741214662028034056964934925124899999999999999999999999999999999999999999999999999:50:69 179846504264741214662028034056964934925124900000000000000000000000000000000000000000000000000:50:70 179846504264741214662028034056964934925124900000000000000000000000000000000000000000000000001:50:70 365525294722252962118766811943425968476232219186763957871703669276750377377622354857463806000:50:70 365525294722252962118766811943425968476232219186763957871703669276750377377622354857463806001:50:71 365525294722252962118766811943425968476232219186763957871703669276750377377622354857463806002:50:71 735571377337281175975722145883189726959126286102281287306149927565761465446777498866888474623:50:71 735571377337281175975722145883189726959126286102281287306149927565761465446777498866888474624:50:72 735571377337281175975722145883189726959126286102281287306149927565761465446777498866888474625:50:72 1466030501193266624786348127484078622417278600812603992294133512054812216525878074998285063248:50:72 1466030501193266624786348127484078622417278600812603992294133512054812216525878074998285063249:50:73 1466030501193266624786348127484078622417278600812603992294133512054812216525878074998285063250:50:73 2894582862689738313972963226771157278907377759380990031544269475337189778869957519107870949375:50:73 2894582862689738313972963226771157278907377759380990031544269475337189778869957519107870949376:50:74 2894582862689738313972963226771157278907377759380990031544269475337189778869957519107870949377:50:74 5663216564269376246651146961451462555847156881308848176692638531903867260552942752838134765624:50:74 5663216564269376246651146961451462555847156881308848176692638531903867260552942752838134765625:50:75 5663216564269376246651146961451462555847156881308848176692638531903867260552942752838134765626:50:75 10981953842900622614675398397696902999022046448521944923207444344797059342349401340216791269375:50:75 10981953842900622614675398397696902999022046448521944923207444344797059342349401340216791269376:50:76 10981953842900622614675398397696902999022046448521944923207444344797059342349401340216791269377:50:76 21112334523069732240479431588100179990965947841261966064728606547568417898405581794816604278248:50:76 21112334523069732240479431588100179990965947841261966064728606547568417898405581794816604278249:50:77 21112334523069732240479431588100179990965947841261966064728606547568417898405581794816604278250:50:77 40246686843660618654963641196312227772002570301615315786269261614896139560193733789518475034623:50:77 40246686843660618654963641196312227772002570301615315786269261614896139560193733789518475034624:50:78 40246686843660618654963641196312227772002570301615315786269261614896139560193733789518475034625:50:78 76094727216507445893749009624654810334373229672871899732717127809050192449738446537083092636000:50:78 76094727216507445893749009624654810334373229672871899732717127809050192449738446537083092636001:50:79 76094727216507445893749009624654810334373229672871899732717127809050192449738446537083092636002:50:79 142724769270595988105828596944949513638274662399999999999999999999999999999999999999999999999999:50:79 142724769270595988105828596944949513638274662400000000000000000000000000000000000000000000000000:50:80 142724769270595988105828596944949513638274662400000000000000000000000000000000000000000000000001:50:80 265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044000:50:80 265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001:50:81 265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044002:50:81 490560548977642927525599788941127285181658275699119520009106433069836791063296693413902888730623:50:81 490560548977642927525599788941127285181658275699119520009106433069836791063296693413902888730624:50:82 490560548977642927525599788941127285181658275699119520009106433069836791063296693413902888730625:50:82 899300052575937316460412822304612226845914912332513019864761056079793497035745476457193177742248:50:82 899300052575937316460412822304612226845914912332513019864761056079793497035745476457193177742249:50:83 899300052575937316460412822304612226845914912332513019864761056079793497035745476457193177742250:50:83 1636681988555375279005587069635733878623595138081961417018008099008097085962691339599397179621375:50:83 1636681988555375279005587069635733878623595138081961417018008099008097085962691339599397179621376:50:84 1636681988555375279005587069635733878623595138081961417018008099008097085962691339599397179621377:50:84 2957646637126993239230789745646087659044648428902033559848772004130523782805539667606353759765624:50:84 2957646637126993239230789745646087659044648428902033559848772004130523782805539667606353759765625:50:85 2957646637126993239230789745646087659044648428902033559848772004130523782805539667606353759765626:50:85 5307897921650076702510429510397657357237449407984621336498231425915531613431718808013890572517375:50:85 5307897921650076702510429510397657357237449407984621336498231425915531613431718808013890572517376:50:86 5307897921650076702510429510397657357237449407984621336498231425915531613431718808013890572517377:50:86 9461557454554455418106438294313334722691424906350889443852373553132307448729622320800458637119248:50:86 9461557454554455418106438294313334722691424906350889443852373553132307448729622320800458637119249:50:87 9461557454554455418106438294313334722691424906350889443852373553132307448729622320800458637119250:50:87 16754582391732992668362971163786588097454851762877481874441051576771566153132284530189242543898623:50:87 16754582391732992668362971163786588097454851762877481874441051576771566153132284530189242543898624:50:88 16754582391732992668362971163786588097454851762877481874441051576771566153132284530189242543898625:50:88 29478157317550155856922379504869550944781487312958300823189927728437269891380086487688757480518000:50:88 29478157317550155856922379504869550944781487312958300823189927728437269891380086487688757480518001:50:89 29478157317550155856922379504869550944781487312958300823189927728437269891380086487688757480518002:50:89 51537752073201133103646112976562127270210752200099999999999999999999999999999999999999999999999999:50:89 51537752073201133103646112976562127270210752200100000000000000000000000000000000000000000000000000:50:90 51537752073201133103646112976562127270210752200100000000000000000000000000000000000000000000000001:50:90 89550830124054857260332111446785195574263739255179823926331144600841049517412867188485189905327000:50:90 89550830124054857260332111446785195574263739255179823926331144600841049517412867188485189905327001:50:91 89550830124054857260332111446785195574263739255179823926331144600841049517412867188485189905327002:50:91 154664758318434697372872340162270587225348309148351803487044923749342512243244594610034658062106623:50:91 154664758318434697372872340162270587225348309148351803487044923749342512243244594610034658062106624:50:92 154664758318434697372872340162270587225348309148351803487044923749342512243244594610034658062106625:50:92 265550686013728218770454203489441165109061383639474724663955742569518708077419167245843482753466248:50:92 265550686013728218770454203489441165109061383639474724663955742569518708077419167245843482753466249:50:93 265550686013728218770454203489441165109061383639474724663955742569518708077419167245843482753466250:50:93 453307265607291900093893524017969378495921663609353280195500520148471896610338590954561957187813375:50:93 453307265607291900093893524017969378495921663609353280195500520148471896610338590954561957187813376:50:94 453307265607291900093893524017969378495921663609353280195500520148471896610338590954561957187813377:50:94 769449752767133292742943790958350921451790972423891374406296339660826788531267084181308746337890624:50:94 769449752767133292742943790958350921451790972423891374406296339660826788531267084181308746337890625:50:95 769449752767133292742943790958350921451790972423891374406296339660826788531267084181308746337890626:50:95 1298857935220386229297392490787642671060688633180178819987316866536994847848599453967379842912485375:50:95 1298857935220386229297392490787642671060688633180178819987316866536994847848599453967379842912485376:50:96 1298857935220386229297392490787642671060688633180178819987316866536994847848599453967379842912485377:50:96 2180653753474075974706842166977290152657913536837095063306039194143521580032097892055927475610605248:50:96 2180653753474075974706842166977290152657913536837095063306039194143521580032097892055927475610605249:50:97 2180653753474075974706842166977290152657913536837095063306039194143521580032097892055927475610605250:50:97 3641696800871170652173739814531836293714045951101357030150496139664266883304812721368995129536282623:50:97 3641696800871170652173739814531836293714045951101357030150496139664266883304812721368995129536282624:50:98 3641696800871170652173739814531836293714045951101357030150496139664266883304812721368995129536282625:50:98 6050060671375366504479199680125555354571111154849793880846497346573918278439742113929535410412245000:50:98 6050060671375366504479199680125555354571111154849793880846497346573918278439742113929535410412245001:50:99 6050060671375366504479199680125555354571111154849793880846497346573918278439742113929535410412245002:50:99 # Each line contains x:y:z, where x is a random value and y is increasing. # # Number of test cases: 25000. 7770:1:7770 4687:1:4687 4179:1:4179 8375:1:8375 9579:1:9579 1865:2:43 7942:2:89 3972:2:63 9478:2:97 3550:2:59 5772:3:17 3471:3:15 6631:3:18 7533:3:19 5311:3:17 7220:4:9 3681:4:7 2122:4:6 5345:4:8 7793:4:9 3487:5:5 9432:5:6 9308:5:6 1683:5:4 7668:5:5 4328:6:4 1866:6:3 5240:6:4 7910:6:4 7787:6:4 4891:7:3 2193:7:3 2038:7:2 5581:7:3 2704:7:3 2908:8:2 2328:8:2 3506:8:2 4279:8:2 3504:8:2 7954:9:2 9247:9:2 9896:9:2 6774:9:2 2355:9:2 9186:10:2 4665:10:2 1538:10:2 9230:10:2 7167:10:2 1844:11:1 5551:11:2 5808:11:2 7953:11:2 6869:11:2 2333:12:1 4103:12:2 9404:12:2 8863:12:2 4479:12:2 8865:13:2 4905:13:1 2381:13:1 7382:13:1 7065:13:1 7252:14:1 1703:14:1 5585:14:1 1321:14:1 4820:14:1 2664:15:1 6611:15:1 3025:15:1 4680:15:1 6268:15:1 6688:16:1 9201:16:1 1967:16:1 1167:16:1 5297:16:1 5401:17:1 1690:17:1 3554:17:1 5776:17:1 8907:17:1 9545:18:1 5244:18:1 6494:18:1 6346:18:1 7375:18:1 2437:19:1 3028:19:1 7439:19:1 6712:19:1 9040:19:1 1926:20:1 7807:20:1 8862:20:1 2212:20:1 2135:20:1 9233:21:1 8185:21:1 8620:21:1 5144:21:1 6146:21:1 2448:22:1 3997:22:1 5764:22:1 3178:22:1 9355:22:1 3773:23:1 7834:23:1 9261:23:1 2577:23:1 1424:23:1 8792:24:1 8832:24:1 1786:24:1 5129:24:1 2535:24:1 9784:25:1 9119:25:1 5929:25:1 1335:25:1 1440:25:1 4475:26:1 2504:26:1 9172:26:1 2291:26:1 5957:26:1 7275:27:1 6481:27:1 5134:27:1 1440:27:1 9581:27:1 1524:28:1 7024:28:1 2690:28:1 3896:28:1 7308:28:1 5315:29:1 6078:29:1 1768:29:1 4777:29:1 5480:29:1 9116:30:1 6892:30:1 7583:30:1 1961:30:1 4558:30:1 8376:31:1 9190:31:1 1695:31:1 3131:31:1 8339:31:1 5074:32:1 6884:32:1 6297:32:1 6526:32:1 7276:32:1 7716:33:1 7404:33:1 4989:33:1 8370:33:1 7555:33:1 4853:34:1 9453:34:1 8836:34:1 4714:34:1 4108:34:1 7189:35:1 9814:35:1 2251:35:1 8375:35:1 6637:35:1 4261:36:1 6702:36:1 1817:36:1 1934:36:1 2824:36:1 4996:37:1 2436:37:1 1082:37:1 1377:37:1 5433:37:1 4582:38:1 7898:38:1 3669:38:1 3871:38:1 4939:38:1 3213:39:1 9577:39:1 3609:39:1 4336:39:1 7293:39:1 5882:40:1 4425:40:1 8716:40:1 9131:40:1 7473:40:1 5613:41:1 4415:41:1 2305:41:1 3605:41:1 6714:41:1 6974:42:1 4861:42:1 8619:42:1 3377:42:1 7467:42:1 3951:43:1 5385:43:1 1658:43:1 1210:43:1 3050:43:1 5544:44:1 4487:44:1 2391:44:1 8698:44:1 4701:44:1 3681:45:1 7626:45:1 1485:45:1 7697:45:1 9984:45:1 8040:46:1 1586:46:1 5062:46:1 9093:46:1 8628:46:1 6324:47:1 2075:47:1 5801:47:1 5628:47:1 9927:47:1 9863:48:1 5752:48:1 2583:48:1 9416:48:1 9489:48:1 4665:49:1 1616:49:1 6104:49:1 7078:49:1 6610:49:1 3739:50:1 7225:50:1 3475:50:1 5583:50:1 8565:50:1 9373:51:1 1103:51:1 8899:51:1 7196:51:1 8278:51:1 6838:52:1 4490:52:1 2580:52:1 7654:52:1 4125:52:1 3544:53:1 2170:53:1 3564:53:1 1311:53:1 2762:53:1 5047:54:1 3261:54:1 2387:54:1 8035:54:1 5800:54:1 3818:55:1 3431:55:1 4484:55:1 5613:55:1 9781:55:1 9090:56:1 9455:56:1 3587:56:1 7813:56:1 3750:56:1 2170:57:1 4778:57:1 3259:57:1 4762:57:1 3782:57:1 2395:58:1 8931:58:1 1276:58:1 4696:58:1 8343:58:1 5988:59:1 6784:59:1 5925:59:1 2357:59:1 3039:59:1 3166:60:1 3893:60:1 8064:60:1 4097:60:1 3168:60:1 7880:61:1 3167:61:1 9838:61:1 9787:61:1 4105:61:1 2508:62:1 6797:62:1 5724:62:1 7792:62:1 2031:62:1 9413:63:1 9681:63:1 8767:63:1 7245:63:1 8572:63:1 5020:64:1 9989:64:1 8485:64:1 7371:64:1 7392:64:1 4556:65:1 6884:65:1 1065:65:1 2836:65:1 4030:65:1 4195:66:1 7558:66:1 1634:66:1 8295:66:1 9006:66:1 2661:67:1 5364:67:1 8179:67:1 3113:67:1 5936:67:1 4915:68:1 7057:68:1 2463:68:1 3217:68:1 7174:68:1 9597:69:1 7622:69:1 8582:69:1 3305:69:1 5087:69:1 9206:70:1 5752:70:1 5074:70:1 9935:70:1 2164:70:1 9217:71:1 5808:71:1 6634:71:1 9944:71:1 5728:71:1 7729:72:1 5487:72:1 4377:72:1 5855:72:1 6678:72:1 9134:73:1 9792:73:1 8241:73:1 7155:73:1 5652:73:1 4870:74:1 5841:74:1 5583:74:1 5642:74:1 2580:74:1 8753:75:1 4091:75:1 3603:75:1 5206:75:1 8813:75:1 9600:76:1 5201:76:1 3103:76:1 2850:76:1 9025:76:1 2177:77:1 1195:77:1 3896:77:1 6422:77:1 5532:77:1 1160:78:1 2316:78:1 4702:78:1 8469:78:1 9027:78:1 8009:79:1 3920:79:1 4538:79:1 8558:79:1 6185:79:1 7109:80:1 2281:80:1 6204:80:1 1436:80:1 1226:80:1 5090:81:1 8053:81:1 2618:81:1 8252:81:1 5033:81:1 5650:82:1 4207:82:1 1372:82:1 8407:82:1 2997:82:1 4462:83:1 4519:83:1 3456:83:1 1001:83:1 1320:83:1 7774:84:1 4449:84:1 5177:84:1 1366:84:1 8714:84:1 2973:85:1 7147:85:1 9516:85:1 9550:85:1 9495:85:1 9922:86:1 8262:86:1 8757:86:1 2602:86:1 1949:86:1 8330:87:1 4022:87:1 3133:87:1 1771:87:1 3274:87:1 4199:88:1 6914:88:1 9259:88:1 2483:88:1 9167:88:1 9761:89:1 2757:89:1 2876:89:1 5510:89:1 3110:89:1 9219:90:1 7129:90:1 1869:90:1 7544:90:1 9656:90:1 1970:91:1 6523:91:1 4766:91:1 4231:91:1 7801:91:1 6089:92:1 1082:92:1 5259:92:1 3909:92:1 8247:92:1 6090:93:1 3434:93:1 3984:93:1 3823:93:1 9637:93:1 6681:94:1 4251:94:1 9838:94:1 8056:94:1 9072:94:1 9166:95:1 2228:95:1 1785:95:1 5384:95:1 4783:95:1 1146:96:1 8987:96:1 9435:96:1 3417:96:1 2078:96:1 4356:97:1 6307:97:1 7110:97:1 8733:97:1 2937:97:1 4190:98:1 4233:98:1 8707:98:1 8807:98:1 6887:98:1 9709:99:1 9013:99:1 1677:99:1 1241:99:1 8813:99:1 1387:100:1 1997:100:1 9177:100:1 2641:100:1 4073:100:1 49441:1:49441 40361:1:40361 81564:1:81564 31593:1:31593 72682:1:72682 53963:2:232 31901:2:178 75715:2:275 45883:2:214 19613:2:140 92000:3:45 70593:3:41 65828:3:40 12379:3:23 68479:3:40 96053:4:17 75510:4:16 45005:4:14 12755:4:10 71111:4:16 43236:5:8 96926:5:9 47669:5:8 17692:5:7 26258:5:7 23636:6:5 76965:6:6 21700:6:5 71350:6:6 31372:6:5 20144:7:4 44817:7:4 17272:7:4 11838:7:3 30520:7:4 43650:8:3 15905:8:3 61517:8:3 76446:8:4 80898:8:4 26879:9:3 79015:9:3 81694:9:3 97754:9:3 35634:9:3 84033:10:3 28013:10:2 76252:10:3 96798:10:3 27472:10:2 96184:11:2 28126:11:2 39929:11:2 26668:11:2 51138:11:2 72672:12:2 99607:12:2 91137:12:2 47636:12:2 76052:12:2 79467:13:2 56652:13:2 91023:13:2 33819:13:2 65725:13:2 59635:14:2 39516:14:2 71991:14:2 66713:14:2 48821:14:2 38489:15:2 19687:15:1 40362:15:2 75547:15:2 86135:15:2 87225:16:2 37855:16:1 62951:16:1 58461:16:1 97429:16:2 54685:17:1 43853:17:1 79971:17:1 17880:17:1 29395:17:1 51996:18:1 77613:18:1 25943:18:1 68561:18:1 88112:18:1 23836:19:1 74916:19:1 17686:19:1 14354:19:1 27987:19:1 48813:20:1 55852:20:1 27698:20:1 74958:20:1 76378:20:1 82763:21:1 89962:21:1 89884:21:1 95606:21:1 88584:21:1 55552:22:1 19455:22:1 21913:22:1 41565:22:1 36526:22:1 15158:23:1 53314:23:1 59717:23:1 70775:23:1 49097:23:1 17718:24:1 80608:24:1 18580:24:1 87268:24:1 59018:24:1 39029:25:1 84756:25:1 60892:25:1 34114:25:1 77642:25:1 53457:26:1 91327:26:1 37630:26:1 70942:26:1 87348:26:1 34935:27:1 21564:27:1 93807:27:1 98240:27:1 30577:27:1 89330:28:1 85209:28:1 97214:28:1 29355:28:1 57942:28:1 53228:29:1 69072:29:1 64774:29:1 97919:29:1 11812:29:1 70001:30:1 47509:30:1 73795:30:1 32729:30:1 33228:30:1 20635:31:1 11936:31:1 60343:31:1 31971:31:1 87013:31:1 95917:32:1 60361:32:1 24266:32:1 53106:32:1 10550:32:1 97239:33:1 18417:33:1 67324:33:1 54263:33:1 52470:33:1 63602:34:1 80420:34:1 17742:34:1 99405:34:1 37199:34:1 75254:35:1 63785:35:1 20188:35:1 32551:35:1 92691:35:1 51537:36:1 34428:36:1 47352:36:1 92002:36:1 95688:36:1 28265:37:1 40781:37:1 36180:37:1 92220:37:1 25494:37:1 79482:38:1 70616:38:1 36636:38:1 45191:38:1 53972:38:1 75906:39:1 21098:39:1 36712:39:1 63770:39:1 79990:39:1 55878:40:1 80988:40:1 43805:40:1 25710:40:1 21967:40:1 21845:41:1 63116:41:1 22914:41:1 51721:41:1 45453:41:1 38276:42:1 10016:42:1 58236:42:1 31252:42:1 96615:42:1 26623:43:1 89398:43:1 88155:43:1 36777:43:1 34382:43:1 97040:44:1 56301:44:1 75647:44:1 20467:44:1 91913:44:1 40213:45:1 90013:45:1 56537:45:1 22271:45:1 18372:45:1 93685:46:1 68357:46:1 80928:46:1 74038:46:1 64561:46:1 11331:47:1 22787:47:1 96736:47:1 99608:47:1 29521:47:1 93116:48:1 11364:48:1 26163:48:1 49941:48:1 95613:48:1 53549:49:1 63450:49:1 91144:49:1 65368:49:1 57183:49:1 44923:50:1 86838:50:1 91977:50:1 86340:50:1 81875:50:1 54991:51:1 54783:51:1 72531:51:1 39155:51:1 84714:51:1 40700:52:1 24974:52:1 26036:52:1 43252:52:1 74042:52:1 98490:53:1 60877:53:1 45130:53:1 65004:53:1 74713:53:1 20916:54:1 11764:54:1 25448:54:1 91673:54:1 53227:54:1 48963:55:1 55548:55:1 62725:55:1 16823:55:1 10144:55:1 83729:56:1 82041:56:1 81522:56:1 37220:56:1 83630:56:1 14561:57:1 76485:57:1 52219:57:1 41102:57:1 60346:57:1 82669:58:1 31481:58:1 39447:58:1 15331:58:1 29144:58:1 44086:59:1 53965:59:1 64144:59:1 77384:59:1 49993:59:1 21557:60:1 59035:60:1 43022:60:1 76175:60:1 46808:60:1 68831:61:1 46576:61:1 92514:61:1 48022:61:1 38021:61:1 48034:62:1 61241:62:1 60623:62:1 84772:62:1 76406:62:1 48404:63:1 61703:63:1 68733:63:1 31741:63:1 96156:63:1 46590:64:1 97887:64:1 34020:64:1 21617:64:1 37712:64:1 44544:65:1 36926:65:1 69513:65:1 91426:65:1 20286:65:1 43287:66:1 64580:66:1 12294:66:1 39427:66:1 87674:66:1 71467:67:1 11416:67:1 19675:67:1 48110:67:1 83279:67:1 24571:68:1 31861:68:1 24731:68:1 75498:68:1 19034:68:1 24140:69:1 99812:69:1 10458:69:1 93289:69:1 70907:69:1 39707:70:1 28650:70:1 16038:70:1 69238:70:1 25847:70:1 95993:71:1 32934:71:1 77220:71:1 82007:71:1 28080:71:1 19382:72:1 46231:72:1 18742:72:1 51596:72:1 74642:72:1 79627:73:1 91178:73:1 49161:73:1 31320:73:1 44718:73:1 96901:74:1 70083:74:1 52829:74:1 16530:74:1 53884:74:1 86454:75:1 48154:75:1 70338:75:1 76467:75:1 48280:75:1 94119:76:1 28840:76:1 81659:76:1 22796:76:1 29291:76:1 15815:77:1 54433:77:1 59880:77:1 36592:77:1 29462:77:1 64443:78:1 12777:78:1 24124:78:1 90317:78:1 55940:78:1 96913:79:1 90010:79:1 70812:79:1 93415:79:1 41857:79:1 20460:80:1 59359:80:1 68384:80:1 93181:80:1 32775:80:1 92769:81:1 68440:81:1 19747:81:1 48823:81:1 61624:81:1 97887:82:1 97182:82:1 74656:82:1 14852:82:1 41661:82:1 99509:83:1 22839:83:1 51668:83:1 79874:83:1 70824:83:1 27692:84:1 42773:84:1 39781:84:1 98622:84:1 38835:84:1 58054:85:1 36684:85:1 25614:85:1 75974:85:1 23205:85:1 11733:86:1 35154:86:1 58825:86:1 51547:86:1 60264:86:1 38309:87:1 74109:87:1 33247:87:1 65157:87:1 23534:87:1 92160:88:1 39339:88:1 24585:88:1 51914:88:1 90784:88:1 11243:89:1 16864:89:1 81844:89:1 66801:89:1 21840:89:1 58314:90:1 78263:90:1 91048:90:1 60704:90:1 56355:90:1 74329:91:1 60736:91:1 25347:91:1 20912:91:1 14254:91:1 73563:92:1 82255:92:1 51492:92:1 61890:92:1 85304:92:1 15198:93:1 24654:93:1 72060:93:1 31603:93:1 74604:93:1 58160:94:1 95653:94:1 64593:94:1 74038:94:1 30673:94:1 49801:95:1 70243:95:1 51603:95:1 54052:95:1 29896:95:1 62952:96:1 54070:96:1 73852:96:1 81276:96:1 13062:96:1 34718:97:1 28805:97:1 71475:97:1 42516:97:1 29093:97:1 87709:98:1 37513:98:1 23724:98:1 87419:98:1 53635:98:1 96709:99:1 95014:99:1 24883:99:1 52772:99:1 13507:99:1 53276:100:1 29063:100:1 35571:100:1 11713:100:1 38381:100:1 548081:1:548081 456622:1:456622 612570:1:612570 125400:1:125400 252136:1:252136 304823:2:552 300106:2:547 386491:2:621 301807:2:549 695697:2:834 596342:3:84 412275:3:74 204160:3:58 205667:3:59 341734:3:69 203445:4:21 983228:4:31 878098:4:30 954141:4:31 966640:4:31 904592:5:15 684746:5:14 120621:5:10 192598:5:11 246635:5:11 850885:6:9 146492:6:7 687596:6:9 775039:6:9 204185:6:7 729439:7:6 438554:7:6 771207:7:6 928314:7:7 888746:7:7 670053:8:5 580192:8:5 928511:8:5 151226:8:4 393614:8:5 414112:9:4 976845:9:4 224384:9:3 660969:9:4 289521:9:4 370756:10:3 498115:10:3 314497:10:3 322463:10:3 869894:10:3 795116:11:3 321422:11:3 814690:11:3 733696:11:3 934527:11:3 783528:12:3 859404:12:3 919431:12:3 851774:12:3 349579:12:2 224378:13:2 319609:13:2 813056:13:2 382406:13:2 329295:13:2 130091:14:2 312830:14:2 347791:14:2 529108:14:2 494198:14:2 745380:15:2 775928:15:2 208902:15:2 209016:15:2 866637:15:2 245842:16:2 442671:16:2 797071:16:2 361055:16:2 470209:16:2 453317:17:2 350869:17:2 652480:17:2 646287:17:2 425775:17:2 669263:18:2 392774:18:2 176705:18:1 790709:18:2 595109:18:2 840354:19:2 715780:19:2 434895:19:1 471848:19:1 581479:19:2 414233:20:1 166922:20:1 184375:20:1 897383:20:1 514561:20:1 977655:21:1 100104:21:1 249588:21:1 271222:21:1 984873:21:1 767657:22:1 505851:22:1 361336:22:1 689043:22:1 533384:22:1 449481:23:1 122360:23:1 543320:23:1 248768:23:1 284020:23:1 801196:24:1 958037:24:1 433880:24:1 235397:24:1 411906:24:1 416472:25:1 691372:25:1 748530:25:1 881077:25:1 273054:25:1 851856:26:1 538783:26:1 788592:26:1 872603:26:1 282804:26:1 640182:27:1 891679:27:1 724467:27:1 231063:27:1 512224:27:1 923463:28:1 138801:28:1 391408:28:1 813926:28:1 980942:28:1 722840:29:1 859696:29:1 134764:29:1 535153:29:1 366318:29:1 479964:30:1 788525:30:1 297068:30:1 711456:30:1 322137:30:1 619346:31:1 344073:31:1 333782:31:1 835912:31:1 172595:31:1 261107:32:1 648769:32:1 783876:32:1 659059:32:1 823974:32:1 257685:33:1 607430:33:1 957830:33:1 465942:33:1 568917:33:1 569872:34:1 467258:34:1 701677:34:1 647686:34:1 418343:34:1 313516:35:1 838958:35:1 810204:35:1 769188:35:1 414742:35:1 471220:36:1 286274:36:1 918216:36:1 211345:36:1 885849:36:1 821813:37:1 275143:37:1 445678:37:1 968145:37:1 901985:37:1 357098:38:1 916955:38:1 161711:38:1 482909:38:1 596832:38:1 482730:39:1 300947:39:1 984382:39:1 831937:39:1 670133:39:1 472150:40:1 402764:40:1 644239:40:1 566549:40:1 356382:40:1 620351:41:1 918554:41:1 667582:41:1 924837:41:1 848983:41:1 308410:42:1 767774:42:1 125193:42:1 241358:42:1 923291:42:1 129412:43:1 385241:43:1 694479:43:1 561881:43:1 697411:43:1 918717:44:1 918247:44:1 657655:44:1 183604:44:1 723987:44:1 660266:45:1 422618:45:1 367654:45:1 252303:45:1 411102:45:1 182717:46:1 298733:46:1 151575:46:1 767985:46:1 821127:46:1 512408:47:1 779099:47:1 732476:47:1 483459:47:1 583898:47:1 470930:48:1 337387:48:1 944468:48:1 293265:48:1 170845:48:1 426274:49:1 847402:49:1 209365:49:1 667698:49:1 256196:49:1 365752:50:1 518281:50:1 704784:50:1 972801:50:1 582134:50:1 451524:51:1 907171:51:1 376407:51:1 618006:51:1 501654:51:1 976553:52:1 687221:52:1 284531:52:1 325229:52:1 339806:52:1 437059:53:1 733051:53:1 442504:53:1 766194:53:1 208033:53:1 259799:54:1 551513:54:1 219388:54:1 325775:54:1 436945:54:1 363938:55:1 668176:55:1 267265:55:1 165335:55:1 860907:55:1 382597:56:1 270503:56:1 308648:56:1 470044:56:1 165923:56:1 793158:57:1 806374:57:1 286682:57:1 935766:57:1 877619:57:1 898469:58:1 639140:58:1 825393:58:1 801473:58:1 883118:58:1 201821:59:1 218736:59:1 275242:59:1 961771:59:1 968526:59:1 268418:60:1 322458:60:1 242838:60:1 472315:60:1 889673:60:1 662852:61:1 886973:61:1 677165:61:1 872051:61:1 937856:61:1 957374:62:1 842324:62:1 823817:62:1 813074:62:1 418018:62:1 795797:63:1 433947:63:1 534417:63:1 392865:63:1 405900:63:1 349677:64:1 589043:64:1 174314:64:1 726474:64:1 767844:64:1 483437:65:1 623526:65:1 122187:65:1 749457:65:1 429327:65:1 516248:66:1 966747:66:1 861733:66:1 850431:66:1 386181:66:1 329971:67:1 307614:67:1 789446:67:1 655601:67:1 488610:67:1 171218:68:1 984748:68:1 948086:68:1 321381:68:1 290459:68:1 514884:69:1 808242:69:1 112963:69:1 647267:69:1 482817:69:1 601835:70:1 944195:70:1 393492:70:1 687255:70:1 913503:70:1 438568:71:1 392127:71:1 655037:71:1 859602:71:1 116671:71:1 135648:72:1 540623:72:1 906112:72:1 288140:72:1 803223:72:1 397728:73:1 119050:73:1 474019:73:1 483400:73:1 783390:73:1 658473:74:1 601396:74:1 716989:74:1 502133:74:1 671763:74:1 613110:75:1 822529:75:1 884617:75:1 796599:75:1 243790:75:1 123814:76:1 414063:76:1 235738:76:1 994071:76:1 362187:76:1 933377:77:1 699067:77:1 837232:77:1 559096:77:1 482128:77:1 137689:78:1 408312:78:1 962252:78:1 980139:78:1 206650:78:1 255353:79:1 827923:79:1 500940:79:1 133963:79:1 112435:79:1 410925:80:1 245930:80:1 556447:80:1 787287:80:1 373099:80:1 476173:81:1 639695:81:1 984005:81:1 195863:81:1 361556:81:1 642131:82:1 483098:82:1 495716:82:1 492194:82:1 178940:82:1 415259:83:1 643370:83:1 242345:83:1 774874:83:1 183201:83:1 683396:84:1 261954:84:1 579802:84:1 802309:84:1 904216:84:1 200743:85:1 455670:85:1 993859:85:1 112760:85:1 590982:85:1 548691:86:1 161205:86:1 421213:86:1 890207:86:1 889659:86:1 675418:87:1 629558:87:1 700034:87:1 438126:87:1 438171:87:1 769534:88:1 158964:88:1 788696:88:1 874963:88:1 900893:88:1 146729:89:1 573798:89:1 749722:89:1 285270:89:1 166486:89:1 336437:90:1 318771:90:1 136533:90:1 605023:90:1 911389:90:1 822908:91:1 891918:91:1 823196:91:1 879707:91:1 802629:91:1 375336:92:1 418739:92:1 290842:92:1 707753:92:1 700490:92:1 308876:93:1 324411:93:1 308046:93:1 113157:93:1 480043:93:1 494467:94:1 934530:94:1 726512:94:1 686990:94:1 268045:94:1 844395:95:1 951481:95:1 387905:95:1 635050:95:1 287278:95:1 636758:96:1 525399:96:1 192977:96:1 126153:96:1 738250:96:1 604881:97:1 807731:97:1 225878:97:1 178601:97:1 269767:97:1 896051:98:1 146209:98:1 995407:98:1 270599:98:1 934767:98:1 823038:99:1 792925:99:1 730923:99:1 516175:99:1 636314:99:1 711773:100:1 681820:100:1 298657:100:1 489093:100:1 599357:100:1 7698734:1:7698734 7068736:1:7068736 5039798:1:5039798 1792855:1:1792855 2157475:1:2157475 5644321:2:2375 5851086:2:2418 4589681:2:2142 4149261:2:2036 2246447:2:1498 4335702:3:163 9463312:3:211 5720148:3:178 2036392:3:126 5753770:3:179 5541112:4:48 1772644:4:36 9974650:4:56 7814913:4:52 7793773:4:52 9483104:5:24 6455994:5:23 8842325:5:24 5344399:5:22 4280382:5:21 9051139:6:14 8304652:6:14 9939729:6:14 9006781:6:14 9691950:6:14 8906044:7:9 3337148:7:8 3259930:7:8 7955429:7:9 4612381:7:8 1365966:8:5 8338835:8:7 9224355:8:7 9951542:8:7 1386539:8:5 7604365:9:5 8626549:9:5 4726764:9:5 6335654:9:5 4942808:9:5 1774351:10:4 7179987:10:4 7620722:10:4 2259841:10:4 3803454:10:4 7073911:11:4 3118322:11:3 4600048:11:4 8351328:11:4 6367873:11:4 5570795:12:3 2360119:12:3 2652944:12:3 8771554:12:3 1325659:12:3 7506988:13:3 1190408:13:2 4381410:13:3 3022302:13:3 6987941:13:3 1024813:14:2 4130887:14:2 4020468:14:2 8198912:14:3 7238521:14:3 1865496:15:2 9818124:15:2 4361166:15:2 9342360:15:2 9814700:15:2 5760774:16:2 5481671:16:2 9469444:16:2 3790723:16:2 5079844:16:2 9003044:17:2 9240080:17:2 5951494:17:2 4127554:17:2 5482460:17:2 5052424:18:2 1816864:18:2 7593846:18:2 5020889:18:2 5193788:18:2 9340405:19:2 5135224:19:2 8338414:19:2 4204265:19:2 2551647:19:2 5281931:20:2 7102180:20:2 7071442:20:2 1290083:20:2 1462308:20:2 2518362:21:2 7082992:21:2 2033039:21:1 9917645:21:2 8038190:21:2 5446691:22:2 4359647:22:2 6081297:22:2 2850174:22:1 9895286:22:2 7125944:23:1 1979536:23:1 3769729:23:1 1038107:23:1 6043785:23:1 5564474:24:1 4963178:24:1 6290140:24:1 2257065:24:1 5252815:24:1 8674487:25:1 4368903:25:1 6842056:25:1 3030856:25:1 3728909:25:1 4703918:26:1 8268736:26:1 8448329:26:1 2144534:26:1 9333410:26:1 6042072:27:1 5222082:27:1 5884465:27:1 3676125:27:1 4021805:27:1 5212014:28:1 9893250:28:1 2913782:28:1 1870882:28:1 9610733:28:1 9023033:29:1 4232412:29:1 1754176:29:1 7210131:29:1 2033308:29:1 6960152:30:1 4601281:30:1 8933193:30:1 5299597:30:1 9438086:30:1 9145800:31:1 3349812:31:1 6371781:31:1 6556267:31:1 7331532:31:1 7199641:32:1 3555998:32:1 1733013:32:1 1414672:32:1 3706121:32:1 8752785:33:1 9124922:33:1 8515446:33:1 7323204:33:1 8928110:33:1 9960965:34:1 3235827:34:1 1194604:34:1 5646307:34:1 4210217:34:1 8327907:35:1 7874866:35:1 8141879:35:1 2364581:35:1 7714203:35:1 6779053:36:1 6520829:36:1 4988728:36:1 3485367:36:1 3680818:36:1 6056945:37:1 9728463:37:1 2755726:37:1 6557876:37:1 1503766:37:1 6024849:38:1 3744405:38:1 4211312:38:1 6944843:38:1 4494539:38:1 1568297:39:1 2797931:39:1 5018725:39:1 7790240:39:1 5802452:39:1 4936183:40:1 1761448:40:1 8854131:40:1 2836260:40:1 4248764:40:1 9124261:41:1 6224839:41:1 1923878:41:1 6166104:41:1 3447949:41:1 6100763:42:1 6196943:42:1 6120074:42:1 2721501:42:1 2916435:42:1 9321700:43:1 7755175:43:1 9862481:43:1 2641467:43:1 3276678:43:1 9789982:44:1 9051366:44:1 4207790:44:1 3859974:44:1 2082123:44:1 4549250:45:1 1721276:45:1 4165760:45:1 5301281:45:1 3969843:45:1 9941552:46:1 9371877:46:1 1590458:46:1 2262934:46:1 2566555:46:1 8300992:47:1 9288494:47:1 1741592:47:1 1648134:47:1 1607566:47:1 5834489:48:1 8938873:48:1 2815321:48:1 7039027:48:1 8590181:48:1 4884501:49:1 5188028:49:1 3033702:49:1 1605212:49:1 3984386:49:1 2616436:50:1 6894050:50:1 4671223:50:1 2403526:50:1 3324087:50:1 3836599:51:1 3315897:51:1 8048318:51:1 6193759:51:1 2487914:51:1 8990417:52:1 4112444:52:1 3855635:52:1 3247706:52:1 5273051:52:1 7947652:53:1 4339101:53:1 1277167:53:1 6821392:53:1 6069022:53:1 2549331:54:1 3900478:54:1 3129453:54:1 2869588:54:1 9831505:54:1 9714858:55:1 8207226:55:1 5717934:55:1 7635674:55:1 5760753:55:1 4308845:56:1 7895538:56:1 1928516:56:1 9453722:56:1 1017748:56:1 1799802:57:1 2111532:57:1 2683986:57:1 8006563:57:1 9778262:57:1 8507126:58:1 8998619:58:1 6653684:58:1 7710457:58:1 2097354:58:1 4602493:59:1 6238399:59:1 2096559:59:1 2364321:59:1 1464427:59:1 7118145:60:1 2533735:60:1 3830153:60:1 9299312:60:1 9693784:60:1 4880415:61:1 3368454:61:1 6357999:61:1 2386127:61:1 5609793:61:1 5307076:62:1 3398397:62:1 6369680:62:1 1335910:62:1 3064183:62:1 7553903:63:1 3581735:63:1 7044195:63:1 9781783:63:1 3566880:63:1 2620735:64:1 1677674:64:1 7992305:64:1 3180740:64:1 4531723:64:1 4254480:65:1 8158783:65:1 3112247:65:1 4134436:65:1 2702669:65:1 9278833:66:1 7684163:66:1 6358809:66:1 6253742:66:1 9367854:66:1 3211643:67:1 1788133:67:1 7853488:67:1 9067508:67:1 9158906:67:1 3998723:68:1 3469798:68:1 9451039:68:1 6245555:68:1 9221485:68:1 3181229:69:1 3277623:69:1 2297985:69:1 6367739:69:1 4939754:69:1 3221806:70:1 4003059:70:1 2266727:70:1 1572973:70:1 3945135:70:1 7399430:71:1 2669882:71:1 8153846:71:1 6704820:71:1 2800394:71:1 7892679:72:1 6477353:72:1 8951190:72:1 4269877:72:1 3728517:72:1 7392943:73:1 4636710:73:1 4152614:73:1 5840218:73:1 7497224:73:1 5874302:74:1 5967266:74:1 5374648:74:1 9071304:74:1 1352951:74:1 1236303:75:1 4800173:75:1 7368320:75:1 3788521:75:1 2466888:75:1 9332394:76:1 4347776:76:1 8341412:76:1 8655351:76:1 4247518:76:1 7362525:77:1 5710467:77:1 8638660:77:1 9288141:77:1 3805935:77:1 3473842:78:1 1446511:78:1 4303697:78:1 9594470:78:1 8326709:78:1 6805661:79:1 9093192:79:1 9397376:79:1 4044417:79:1 2100119:79:1 6953335:80:1 2409489:80:1 5959876:80:1 6055775:80:1 9361072:80:1 1399823:81:1 3038598:81:1 6124310:81:1 9981562:81:1 5537700:81:1 6715702:82:1 9388459:82:1 2491594:82:1 1830916:82:1 8020341:82:1 9745094:83:1 1598404:83:1 6846903:83:1 5466124:83:1 4446087:83:1 4823414:84:1 7701004:84:1 2337603:84:1 1170272:84:1 8384130:84:1 8847531:85:1 8243028:85:1 7306808:85:1 4318506:85:1 6796734:85:1 3142260:86:1 7578490:86:1 6804673:86:1 7616787:86:1 7487113:86:1 5159039:87:1 2915279:87:1 5243689:87:1 1433173:87:1 2390071:87:1 3960296:88:1 2069178:88:1 1900333:88:1 7811311:88:1 9483616:88:1 5599166:89:1 7114184:89:1 8802110:89:1 5519033:89:1 3198574:89:1 9811511:90:1 5624683:90:1 5890381:90:1 5683035:90:1 1939268:90:1 8330918:91:1 5920756:91:1 2789821:91:1 9989349:91:1 9516709:91:1 4495786:92:1 1701474:92:1 1240902:92:1 3225268:92:1 9702884:92:1 6474964:93:1 3483097:93:1 9709037:93:1 7497955:93:1 7303533:93:1 1929202:94:1 1444636:94:1 5863194:94:1 9521425:94:1 2329334:94:1 1544177:95:1 7490763:95:1 4744712:95:1 6554734:95:1 6357830:95:1 6171524:96:1 3104814:96:1 7271338:96:1 4643061:96:1 5453676:96:1 1865370:97:1 9304955:97:1 2984332:97:1 5419441:97:1 3738154:97:1 3129571:98:1 6321928:98:1 7674596:98:1 8665316:98:1 8774478:98:1 5411685:99:1 3403090:99:1 9910700:99:1 4485436:99:1 2979601:99:1 7693079:100:1 1168509:100:1 6667038:100:1 8636869:100:1 1581670:100:1 85386652:1:85386652 29107752:1:29107752 80080612:1:80080612 60718789:1:60718789 23891426:1:23891426 39967599:2:6321 83349870:2:9129 78368430:2:8852 81284121:2:9015 40312607:2:6349 41674903:3:346 39098202:3:339 31905183:3:317 92540816:3:452 56202360:3:383 82764670:4:95 68775851:4:91 93121812:4:98 43222169:4:81 96675075:4:99 85072915:5:38 29209778:5:31 77429024:5:37 59679604:5:35 51276953:5:34 73503214:6:20 50337019:6:19 37305228:6:18 56304435:6:19 14055067:6:15 15274812:7:10 26109340:7:11 28069293:7:11 57798176:7:12 76422403:7:13 35934694:8:8 14957426:8:7 99701342:8:9 17818249:8:8 47982983:8:9 41063355:9:7 61007629:9:7 70643825:9:7 22961831:9:6 70547621:9:7 95017882:10:6 27004350:10:5 94196442:10:6 29012104:10:5 28897901:10:5 91706678:11:5 53101075:11:5 66239562:11:5 39898178:11:4 14673348:11:4 38372715:12:4 24181924:12:4 20047773:12:4 73122040:12:4 49299723:12:4 69573932:13:4 85580970:13:4 32428329:13:3 38570475:13:3 64110852:13:3 68203485:14:3 37783102:14:3 59689290:14:3 13310951:14:3 41788192:14:3 61197643:15:3 28262542:15:3 72765435:15:3 90078184:15:3 24370553:15:3 64652072:16:3 91295223:16:3 55115715:16:3 56809413:16:3 35427065:16:2 21324400:17:2 51851827:17:2 99792450:17:2 59578574:17:2 76264394:17:2 10683558:18:2 22322029:18:2 18260325:18:2 53898833:18:2 97920146:18:2 10776512:19:2 24716348:19:2 51775780:19:2 94102286:19:2 16429968:19:2 51724344:20:2 95944344:20:2 66483359:20:2 96193599:20:2 75174207:20:2 47953025:21:2 30783662:21:2 72435407:21:2 98512890:21:2 64478951:21:2 49950278:22:2 69596764:22:2 34406529:22:2 62355405:22:2 96847665:22:2 70106690:23:2 30757830:23:2 60776435:23:2 75596692:23:2 66333383:23:2 65587524:24:2 68371973:24:2 81404176:24:2 92703941:24:2 64675932:24:2 13963142:25:1 63131189:25:2 96917861:25:2 24248953:25:1 49564725:25:2 80681369:26:2 97294705:26:2 79091222:26:2 23114605:26:1 43814533:26:1 38018121:27:1 37732093:27:1 94885051:27:1 18738345:27:1 35123025:27:1 88003581:28:1 91031677:28:1 37231433:28:1 21792710:28:1 26024798:28:1 73879210:29:1 33968412:29:1 66061610:29:1 25082230:29:1 65802628:29:1 25804358:30:1 68131900:30:1 90425159:30:1 84875408:30:1 11989701:30:1 93073904:31:1 96709537:31:1 46839448:31:1 52942514:31:1 46601635:31:1 67835171:32:1 90794156:32:1 25800910:32:1 46559653:32:1 46410379:32:1 37881814:33:1 19796339:33:1 55442220:33:1 41715190:33:1 48429288:33:1 46155929:34:1 21477325:34:1 62202236:34:1 36123829:34:1 93217112:34:1 28209806:35:1 98358622:35:1 87178064:35:1 19607736:35:1 84714585:35:1 56242227:36:1 50815076:36:1 84633888:36:1 31193172:36:1 91952404:36:1 27350888:37:1 33507364:37:1 27458607:37:1 53959734:37:1 10845940:37:1 69263377:38:1 28987180:38:1 23577240:38:1 44663080:38:1 26642710:38:1 29052826:39:1 87061453:39:1 47928248:39:1 57940553:39:1 70494718:39:1 75617860:40:1 86165363:40:1 92856852:40:1 23074289:40:1 28667815:40:1 24474326:41:1 46577155:41:1 18527112:41:1 44537166:41:1 18108668:41:1 28830907:42:1 65932262:42:1 80144073:42:1 39316203:42:1 80101836:42:1 91567205:43:1 29298496:43:1 87492955:43:1 23584979:43:1 46281434:43:1 93732641:44:1 19956992:44:1 57257696:44:1 61128751:44:1 20921322:44:1 32632405:45:1 37326070:45:1 53652359:45:1 89612305:45:1 78954996:45:1 69221011:46:1 12904290:46:1 19843738:46:1 42886579:46:1 72942987:46:1 62806539:47:1 95361055:47:1 49268874:47:1 31349103:47:1 44386960:47:1 68901622:48:1 53097618:48:1 13211226:48:1 17189786:48:1 15487112:48:1 54027525:49:1 10802948:49:1 52212313:49:1 54397976:49:1 78237030:49:1 59268504:50:1 41753361:50:1 81021218:50:1 52075259:50:1 80706783:50:1 75353643:51:1 46663102:51:1 51315308:51:1 45056192:51:1 61837426:51:1 98183642:52:1 56888519:52:1 31196482:52:1 43756969:52:1 74751969:52:1 63221789:53:1 58971615:53:1 94608642:53:1 86903871:53:1 50609948:53:1 94372362:54:1 77385358:54:1 54694482:54:1 42727825:54:1 20739582:54:1 17671075:55:1 28087398:55:1 57486668:55:1 74410601:55:1 17231976:55:1 34521264:56:1 48710392:56:1 22633066:56:1 14067798:56:1 51708667:56:1 25849032:57:1 65084076:57:1 12344008:57:1 19890182:57:1 63086855:57:1 52035886:58:1 25069292:58:1 30273778:58:1 14168317:58:1 57747412:58:1 50521785:59:1 24007684:59:1 83656407:59:1 41733777:59:1 60577727:59:1 19973217:60:1 91662188:60:1 89674591:60:1 13653107:60:1 86465307:60:1 85330643:61:1 51262585:61:1 27485492:61:1 39264905:61:1 75374032:61:1 61756463:62:1 48028791:62:1 99785792:62:1 32556796:62:1 23726788:62:1 27509983:63:1 44928965:63:1 79995843:63:1 76972064:63:1 96539958:63:1 24774205:64:1 51955812:64:1 36722055:64:1 11147183:64:1 75622811:64:1 65041242:65:1 97998483:65:1 14839324:65:1 44220360:65:1 26359442:65:1 49457837:66:1 25116845:66:1 31256414:66:1 63044618:66:1 49718183:66:1 16189553:67:1 85865139:67:1 66523983:67:1 40933524:67:1 81469927:67:1 55714470:68:1 68557851:68:1 93869664:68:1 46679499:68:1 33412616:68:1 36852034:69:1 40168413:69:1 53556936:69:1 71879671:69:1 52624469:69:1 79556540:70:1 33991554:70:1 18227523:70:1 53342355:70:1 50642947:70:1 30194213:71:1 80976935:71:1 80223747:71:1 66375995:71:1 69146816:71:1 93921910:72:1 46775443:72:1 97691651:72:1 82780022:72:1 58794542:72:1 95604745:73:1 64912454:73:1 94121035:73:1 44450967:73:1 71434078:73:1 52811020:74:1 26210974:74:1 70866686:74:1 80952679:74:1 43315393:74:1 53102161:75:1 40753432:75:1 34794496:75:1 29677458:75:1 15265788:75:1 69982788:76:1 88152249:76:1 21670222:76:1 48066447:76:1 67922536:76:1 45553309:77:1 42348957:77:1 43433148:77:1 75707110:77:1 96098854:77:1 26358082:78:1 74704374:78:1 78889718:78:1 88755642:78:1 28340798:78:1 46875704:79:1 33888769:79:1 26821459:79:1 56608297:79:1 95067606:79:1 64289991:80:1 38577797:80:1 81465702:80:1 91109432:80:1 11036721:80:1 17564812:81:1 14571733:81:1 58358892:81:1 75113007:81:1 54949118:81:1 61542531:82:1 46098834:82:1 25899061:82:1 95496528:82:1 88419180:82:1 61414715:83:1 44377345:83:1 48524709:83:1 54600052:83:1 95606035:83:1 19271912:84:1 73370319:84:1 46011174:84:1 62934329:84:1 12677779:84:1 65004303:85:1 74832169:85:1 91824591:85:1 66445470:85:1 57876614:85:1 33016733:86:1 31253004:86:1 66435789:86:1 86924454:86:1 89088680:86:1 81275996:87:1 72492232:87:1 20378105:87:1 63560805:87:1 49300035:87:1 70701043:88:1 28742994:88:1 19377192:88:1 60288024:88:1 32366648:88:1 50434610:89:1 76448490:89:1 52883117:89:1 34781080:89:1 33584580:89:1 74392945:90:1 63568579:90:1 73009970:90:1 74613586:90:1 11269020:90:1 59843156:91:1 98139970:91:1 50032291:91:1 90641278:91:1 44202747:91:1 69431069:92:1 81813957:92:1 64580211:92:1 53387719:92:1 68744950:92:1 28003927:93:1 92221103:93:1 37300776:93:1 32391005:93:1 63407276:93:1 25292424:94:1 74451038:94:1 61178191:94:1 81322425:94:1 20223127:94:1 51254234:95:1 93390411:95:1 33686508:95:1 27023349:95:1 61852359:95:1 90240208:96:1 97666665:96:1 44388105:96:1 89264096:96:1 47206642:96:1 76857492:97:1 81410922:97:1 47576732:97:1 59909420:97:1 26805126:97:1 55954129:98:1 77417166:98:1 17188058:98:1 81886297:98:1 24201262:98:1 15295217:99:1 83826320:99:1 29784508:99:1 53430581:99:1 42164297:99:1 27830248:100:1 53165281:100:1 38047366:100:1 51429727:100:1 43585884:100:1 374940282:1:374940282 115184193:1:115184193 315811800:1:315811800 308359182:1:308359182 416254712:1:416254712 300836668:2:17344 984669131:2:31379 915724049:2:30260 937771658:2:30623 628031424:2:25060 294139315:3:665 944245304:3:981 834931714:3:941 722341621:3:897 907701309:3:968 719902274:4:163 891008871:4:172 973695620:4:176 669739895:4:160 542327079:4:152 407727805:5:52 286354099:5:49 357678198:5:51 393172940:5:52 478163016:5:54 243076192:6:24 452256847:6:27 627245886:6:29 483931646:6:28 609000092:6:29 116078831:7:14 979540818:7:19 799483327:7:18 667072991:7:18 385468245:7:16 273997781:8:11 642553675:8:12 703290236:8:12 985573945:8:13 959032909:8:13 720074181:9:9 136638710:9:8 524904934:9:9 842266438:9:9 267194475:9:8 491477825:10:7 922466204:10:7 192680118:10:6 398276933:10:7 121867525:10:6 873560565:11:6 330387732:11:5 627059457:11:6 271219571:11:5 537606350:11:6 258751237:12:5 141284722:12:4 505613033:12:5 709670670:12:5 598873946:12:5 403984416:13:4 654363563:13:4 641297334:13:4 574562097:13:4 338839864:13:4 238696209:14:3 791917542:14:4 804152207:14:4 231696006:14:3 461580467:14:4 361880561:15:3 468858259:15:3 992829558:15:3 933223174:15:3 851342395:15:3 610617877:16:3 663586882:16:3 272378952:16:3 415032695:16:3 195166515:16:3 296607090:17:3 448899911:17:3 940300620:17:3 629026868:17:3 923087353:17:3 352236811:18:2 410666726:18:3 161690485:18:2 243884333:18:2 402950689:18:3 117059348:19:2 991083083:19:2 797759626:19:2 304121302:19:2 302640167:19:2 783223985:20:2 468683959:20:2 275494410:20:2 319461423:20:2 930578341:20:2 293127157:21:2 230609515:21:2 945893443:21:2 121357034:21:2 170049974:21:2 492383559:22:2 562888735:22:2 865553926:22:2 385519999:22:2 142905671:22:2 355290287:23:2 224501587:23:2 476012854:23:2 871468176:23:2 969727855:23:2 820277588:24:2 565047973:24:2 907968394:24:2 804511376:24:2 116896913:24:2 593611068:25:2 798336281:25:2 662161464:25:2 848061805:25:2 933308469:25:2 636311164:26:2 233064370:26:2 794968971:26:2 604963312:26:2 476780615:26:2 128499618:27:1 315579729:27:2 285850600:27:2 905216449:27:2 973858700:27:2 200597852:28:1 613549459:28:2 840185271:28:2 540458685:28:2 670192505:28:2 968777534:29:2 851364689:29:2 105031895:29:1 302630500:29:1 661813267:29:2 931063020:30:1 110631787:30:1 925286936:30:1 326084085:30:1 607185629:30:1 227231656:31:1 115689922:31:1 430840202:31:1 414017053:31:1 320367514:31:1 457253165:32:1 111760620:32:1 641682231:32:1 326090071:32:1 807909584:32:1 181983034:33:1 677014174:33:1 598477136:33:1 922330810:33:1 620095428:33:1 845944397:34:1 848592314:34:1 388363477:34:1 302144557:34:1 969755058:34:1 604436447:35:1 566676909:35:1 173820829:35:1 544316746:35:1 358851610:35:1 854314646:36:1 762498677:36:1 353589530:36:1 353806638:36:1 436033595:36:1 712353246:37:1 201271157:37:1 101299569:37:1 505830085:37:1 126141153:37:1 440315338:38:1 194773845:38:1 591865236:38:1 361912870:38:1 952915309:38:1 342527032:39:1 938741516:39:1 882813866:39:1 511204463:39:1 975530363:39:1 136472319:40:1 461916061:40:1 874032623:40:1 343756851:40:1 463943120:40:1 938130254:41:1 455664628:41:1 110289891:41:1 849819509:41:1 156461215:41:1 296031572:42:1 433663006:42:1 447099795:42:1 394890776:42:1 599171528:42:1 987598683:43:1 355479397:43:1 894327912:43:1 711510357:43:1 830105967:43:1 313080960:44:1 977439583:44:1 174444465:44:1 286993427:44:1 436915887:44:1 566281472:45:1 418755341:45:1 203650490:45:1 966207695:45:1 475344092:45:1 257375959:46:1 581261116:46:1 252502537:46:1 672511937:46:1 646245955:46:1 676807965:47:1 138370799:47:1 262097816:47:1 173099293:47:1 276725203:47:1 311366186:48:1 861011850:48:1 893350797:48:1 515988971:48:1 850655843:48:1 257675291:49:1 797826712:49:1 476467084:49:1 275391737:49:1 138095628:49:1 626932278:50:1 882164776:50:1 610008032:50:1 156761521:50:1 266795139:50:1 655253769:51:1 578412904:51:1 952070595:51:1 604351710:51:1 755560056:51:1 488923007:52:1 759933759:52:1 418589938:52:1 442004533:52:1 112512573:52:1 838674873:53:1 824395722:53:1 745255504:53:1 130823034:53:1 182493858:53:1 375120981:54:1 796649576:54:1 725462182:54:1 654861283:54:1 554457395:54:1 835989624:55:1 510734763:55:1 338916801:55:1 413685675:55:1 607770740:55:1 885762120:56:1 930855870:56:1 936953192:56:1 140270735:56:1 272303186:56:1 988975468:57:1 318337886:57:1 476300693:57:1 265834112:57:1 868682516:57:1 769640519:58:1 948362851:58:1 195640456:58:1 483021182:58:1 444478007:58:1 491888151:59:1 575438266:59:1 147866311:59:1 804221975:59:1 650052007:59:1 761646376:60:1 204373441:60:1 708712978:60:1 652835899:60:1 167889790:60:1 774812299:61:1 494829491:61:1 965798698:61:1 536430809:61:1 636682905:61:1 846724422:62:1 220811679:62:1 760146962:62:1 571558006:62:1 555201843:62:1 114834416:63:1 217629904:63:1 304395103:63:1 786205298:63:1 245215566:63:1 125054599:64:1 488418491:64:1 687889543:64:1 647637264:64:1 878592361:64:1 103651578:65:1 827870257:65:1 514539615:65:1 863385776:65:1 177684876:65:1 138249204:66:1 384394564:66:1 783546440:66:1 423428382:66:1 212026262:66:1 659997869:67:1 556664097:67:1 929852625:67:1 489798923:67:1 950376087:67:1 959996958:68:1 747305172:68:1 478263372:68:1 941149438:68:1 311493416:68:1 222312566:69:1 634207417:69:1 696464311:69:1 647964098:69:1 914989668:69:1 565392549:70:1 636749974:70:1 751279717:70:1 939685347:70:1 850524698:70:1 921314751:71:1 364204571:71:1 674723524:71:1 507092445:71:1 587237700:71:1 274780039:72:1 833600515:72:1 861222177:72:1 147101562:72:1 516396245:72:1 855278051:73:1 980126376:73:1 852847405:73:1 560810189:73:1 737487107:73:1 725929913:74:1 848035178:74:1 455361412:74:1 167956179:74:1 379185683:74:1 424479538:75:1 220443308:75:1 120509446:75:1 637730882:75:1 917051211:75:1 893066170:76:1 780378365:76:1 486526680:76:1 393023810:76:1 427232864:76:1 867055990:77:1 863407717:77:1 503808288:77:1 450328426:77:1 776614653:77:1 241975731:78:1 994045570:78:1 319734468:78:1 583211241:78:1 261928583:78:1 432410737:79:1 828974236:79:1 586361007:79:1 118436938:79:1 688225699:79:1 238010924:80:1 550367507:80:1 144817640:80:1 355436995:80:1 257796131:80:1 336965213:81:1 444134483:81:1 808463979:81:1 389425022:81:1 397963341:81:1 321831521:82:1 631030470:82:1 642178302:82:1 747476541:82:1 288994916:82:1 742465959:83:1 463347636:83:1 107364689:83:1 336034704:83:1 305235020:83:1 194203515:84:1 162276165:84:1 705452345:84:1 595924992:84:1 520042657:84:1 720373746:85:1 273918993:85:1 116166964:85:1 379773776:85:1 633313064:85:1 920483537:86:1 121441938:86:1 175006223:86:1 396716054:86:1 886179772:86:1 578164556:87:1 822807700:87:1 240182839:87:1 778840703:87:1 783091351:87:1 434072470:88:1 449063596:88:1 960062158:88:1 688308153:88:1 953436398:88:1 735465215:89:1 993020262:89:1 449242036:89:1 259002553:89:1 117241141:89:1 242479250:90:1 113076243:90:1 664556731:90:1 335449627:90:1 322009355:90:1 104021759:91:1 299513345:91:1 819724788:91:1 193639483:91:1 414348566:91:1 789878216:92:1 171407507:92:1 298807100:92:1 935029493:92:1 850194136:92:1 426193521:93:1 323038200:93:1 736569783:93:1 674557849:93:1 756466065:93:1 709410728:94:1 170422797:94:1 198602155:94:1 737988409:94:1 956503092:94:1 161103998:95:1 467935946:95:1 118315625:95:1 855467738:95:1 857120257:95:1 989021682:96:1 114610325:96:1 172377039:96:1 376635763:96:1 532063800:96:1 252307397:97:1 268240052:97:1 169237923:97:1 425972318:97:1 393981937:97:1 244298067:98:1 922138387:98:1 996322581:98:1 904330725:98:1 801555834:98:1 940303840:99:1 751046842:99:1 129066497:99:1 212288545:99:1 926279881:99:1 317548745:100:1 844003781:100:1 162566364:100:1 645425210:100:1 917817352:100:1 7564615506:1:7564615506 1367067213:1:1367067213 9561920624:1:9561920624 8437782443:1:8437782443 2583320364:1:2583320364 7993601104:2:89406 9613443969:2:98048 7273775589:2:85286 6504164565:2:80648 4486282155:2:66979 4386887820:3:1637 2122655928:3:1285 4401404285:3:1638 5588285664:3:1774 7627557423:3:1968 4322994006:4:256 8916501314:4:307 6516079445:4:284 1672679180:4:202 4774596999:4:262 7217130925:5:93 7227874712:5:93 2173414079:5:73 7806225891:5:95 4046291675:5:83 8004523130:6:44 4268254829:6:40 3636543031:6:39 7153381147:6:43 9685516896:6:46 6403972505:7:25 7943737451:7:25 4610574860:7:24 8947745287:7:26 1983186262:7:21 8932444140:8:17 4417418473:8:16 1846382142:8:14 3213032306:8:15 1168378981:8:13 3109060868:9:11 5662050994:9:12 8456006240:9:12 8075742144:9:12 2148768077:9:10 6894764240:10:9 8662076514:10:9 9688109341:10:9 7160094300:10:9 4150713552:10:9 8338656290:11:7 4974963118:11:7 6331169851:11:7 7764890473:11:7 7537000288:11:7 1209795634:12:5 7933965102:12:6 1046411708:12:5 7486569837:12:6 7012724375:12:6 7033503515:13:5 9008194645:13:5 2322837711:13:5 3916037972:13:5 7505972953:13:5 8522325523:14:5 3859319768:14:4 8403370684:14:5 8621061380:14:5 2770770375:14:4 6355192948:15:4 9253638167:15:4 5044137116:15:4 1267020466:15:4 7442488575:15:4 4798645426:16:4 8848250695:16:4 2489419054:16:3 6208693439:16:4 9652677814:16:4 8594179180:17:3 9458368454:17:3 7013323409:17:3 4390192417:17:3 8210135233:17:3 7683321657:18:3 3781531343:18:3 6535822568:18:3 7000232555:18:3 4089753680:18:3 4448167747:19:3 5828141468:19:3 1542641374:19:3 5055560212:19:3 1826246047:19:3 1353063316:20:2 2316559530:20:2 1648713075:20:2 4077986675:20:3 1837769954:20:2 3954817628:21:2 2634600573:21:2 4098882160:21:2 5189549977:21:2 5949035833:21:2 1668186025:22:2 8045151302:22:2 6192534232:22:2 6453259359:22:2 5206899178:22:2 5005228635:23:2 1300150959:23:2 8182020693:23:2 7372356761:23:2 4609034245:23:2 8006551551:24:2 6013010616:24:2 7590574434:24:2 7918791812:24:2 9128825989:24:2 5419696345:25:2 7593012630:25:2 8125893167:25:2 1633258149:25:2 1508591555:25:2 1074606428:26:2 3377775701:26:2 7037020923:26:2 2784922444:26:2 6022117220:26:2 7543139723:27:2 5103937119:27:2 3057447869:27:2 7887383826:27:2 5421315583:27:2 1751325410:28:2 5900345274:28:2 4972384572:28:2 7908792274:28:2 3159834644:28:2 7352595085:29:2 8209596209:29:2 4924393148:29:2 2555792168:29:2 3744341009:29:2 7930953468:30:2 9909370750:30:2 6994431202:30:2 2250055519:30:2 6967936549:30:2 3038885199:31:2 4551091733:31:2 5135700127:31:2 8863364616:31:2 3510774539:31:2 7033583257:32:2 3189060070:32:1 7916020128:32:2 2114927267:32:1 2939381515:32:1 2057689903:33:1 2215850244:33:1 8041315310:33:1 3504145397:33:1 8367559683:33:1 7432082323:34:1 2279583480:34:1 5475837166:34:1 6063434506:34:1 8831305528:34:1 9114586856:35:1 2372623687:35:1 3875664985:35:1 7835703097:35:1 9653265785:35:1 1917099097:36:1 6591158639:36:1 5228011721:36:1 4542349009:36:1 4302696224:36:1 6535843932:37:1 9838693676:37:1 9826278797:37:1 3840053218:37:1 1774372764:37:1 6904415365:38:1 5555705147:38:1 2435121100:38:1 8041778566:38:1 6600550517:38:1 7465681003:39:1 4258532681:39:1 8409948617:39:1 7683196650:39:1 9315076582:39:1 2372135965:40:1 1357734892:40:1 1512613194:40:1 2363549747:40:1 3252546618:40:1 3686503014:41:1 5065154095:41:1 7684558322:41:1 4874273733:41:1 4353568426:41:1 6241352169:42:1 4627919829:42:1 5482059525:42:1 3037303708:42:1 3729294207:42:1 3283049716:43:1 5956508608:43:1 2051362997:43:1 4018560169:43:1 3500051166:43:1 2364019554:44:1 2824746392:44:1 6275762354:44:1 9206831176:44:1 9747132148:44:1 6807171511:45:1 9706125360:45:1 2241402216:45:1 5789569134:45:1 8224870556:45:1 3686784916:46:1 6110956217:46:1 8704099931:46:1 6758139883:46:1 4164216434:46:1 2375014452:47:1 1513681367:47:1 4569968968:47:1 5711511443:47:1 5606693305:47:1 7792697651:48:1 1937825685:48:1 6188186405:48:1 3339251232:48:1 6353358600:48:1 7391495967:49:1 5226247517:49:1 6915338961:49:1 1418452482:49:1 4467884687:49:1 8693925297:50:1 3344615027:50:1 9980621188:50:1 1076191121:50:1 1746055661:50:1 8466798517:51:1 6409381455:51:1 7123028976:51:1 4161551360:51:1 8777709992:51:1 2480720083:52:1 4326263308:52:1 8855784305:52:1 2349113567:52:1 8131406834:52:1 5931787075:53:1 8072720699:53:1 4265791855:53:1 8375973270:53:1 7178588362:53:1 4702621562:54:1 6739547661:54:1 2867549874:54:1 1620075576:54:1 5219023613:54:1 6469355568:55:1 8811398629:55:1 6390990886:55:1 2567127989:55:1 6163261994:55:1 4266510646:56:1 8489193019:56:1 3201142755:56:1 1692392171:56:1 4398960693:56:1 9020435402:57:1 3715018354:57:1 9100739513:57:1 3241963903:57:1 4430887545:57:1 6197690688:58:1 5464861916:58:1 5351609456:58:1 1588347670:58:1 9099743334:58:1 9834563381:59:1 9198197648:59:1 5297473401:59:1 7221526782:59:1 8786960883:59:1 6380223360:60:1 1904515452:60:1 9116387303:60:1 9642081512:60:1 9000953411:60:1 5747475109:61:1 7024841392:61:1 5929947222:61:1 5933766588:61:1 6658619898:61:1 5495887377:62:1 1988640780:62:1 1431169660:62:1 5763089643:62:1 7194329760:62:1 3932786065:63:1 7231312456:63:1 3296812936:63:1 8612751145:63:1 4059005937:63:1 9044104933:64:1 2955322001:64:1 7265384854:64:1 3660416181:64:1 1132120574:64:1 6299507285:65:1 1110925775:65:1 5932804711:65:1 8923252373:65:1 1101378648:65:1 2726841013:66:1 8571877029:66:1 9348311320:66:1 2169619223:66:1 4126039424:66:1 7454907557:67:1 9880121924:67:1 8893038475:67:1 5353347093:67:1 6141206756:67:1 2796654964:68:1 5206103064:68:1 3481434746:68:1 5228534661:68:1 4508276399:68:1 1939288676:69:1 5428323694:69:1 5549640632:69:1 1868466661:69:1 1990450069:69:1 8265965942:70:1 2384944977:70:1 3636271369:70:1 5452259197:70:1 6174460718:70:1 6928884580:71:1 2534635841:71:1 3996121988:71:1 4187706698:71:1 1030630288:71:1 8338851621:72:1 2998479133:72:1 3387168899:72:1 2723714777:72:1 9511745893:72:1 8791929903:73:1 5123692633:73:1 7686515410:73:1 6589723216:73:1 2906617543:73:1 2557391246:74:1 8185556002:74:1 1369030596:74:1 9906241720:74:1 2449412195:74:1 8099531772:75:1 2415297444:75:1 6788929649:75:1 3008556277:75:1 8013935552:75:1 8445346263:76:1 3491845557:76:1 2891415831:76:1 2436293263:76:1 7027444540:76:1 3566896060:77:1 1474268950:77:1 1689102868:77:1 3055410139:77:1 1155778143:77:1 2561726044:78:1 5846366236:78:1 7892488787:78:1 2775178851:78:1 1777445074:78:1 3149261925:79:1 3072260778:79:1 2295113350:79:1 3760164901:79:1 9191987382:79:1 9346486803:80:1 4222203372:80:1 6211158825:80:1 2831599014:80:1 5866545274:80:1 8631599111:81:1 5249203148:81:1 4248055499:81:1 8303425972:81:1 8898337454:81:1 3242633526:82:1 1776480826:82:1 1624744877:82:1 5905727604:82:1 1809638935:82:1 3625964246:83:1 8482724740:83:1 7274874007:83:1 2176078260:83:1 4236620301:83:1 2910072808:84:1 5942620990:84:1 6710327875:84:1 2636016093:84:1 2201765293:84:1 8837157605:85:1 2091590396:85:1 3504541901:85:1 8079578514:85:1 8983216797:85:1 5197527288:86:1 8773279089:86:1 5863659167:86:1 8301619217:86:1 2200071921:86:1 2796083909:87:1 1030913607:87:1 8806048589:87:1 2024030098:87:1 2708178209:87:1 5153394893:88:1 8207309706:88:1 2323384129:88:1 9227603898:88:1 6424226675:88:1 7492177679:89:1 3216923123:89:1 2179356428:89:1 4146402867:89:1 2080203450:89:1 1613447533:90:1 7430593856:90:1 4173217339:90:1 6918306266:90:1 8608744932:90:1 1840199803:91:1 3703294864:91:1 4528675513:91:1 4324875145:91:1 2131220710:91:1 3164882322:92:1 1972836804:92:1 3953508126:92:1 4994276398:92:1 3816422002:92:1 8985564292:93:1 1171449743:93:1 4886920988:93:1 8341986396:93:1 8918029367:93:1 7443201514:94:1 8142181637:94:1 2375559983:94:1 2607728618:94:1 4701638713:94:1 2551273846:95:1 3543801140:95:1 2786714019:95:1 4978767793:95:1 5152230678:95:1 3087607276:96:1 6721408795:96:1 6363303092:96:1 5763962250:96:1 9648272386:96:1 2152940794:97:1 6968729239:97:1 7793347031:97:1 2705214894:97:1 9108600772:97:1 2283997195:98:1 5079228906:98:1 9483207107:98:1 4114134108:98:1 8160227154:98:1 5483346858:99:1 3137538615:99:1 4205827221:99:1 9981267754:99:1 9957801968:99:1 3358694898:100:1 3138007376:100:1 1830925315:100:1 6769389638:100:1 3651859519:100:1 26967473418:1:26967473418 73001885760:1:73001885760 22793941976:1:22793941976 81221027563:1:81221027563 31905133656:1:31905133656 62682272016:2:250364 73783598492:2:271631 84470131450:2:290637 76039620832:2:275752 52338077788:2:228775 24617706188:3:2909 53188110606:3:3760 15751847468:3:2506 42158393141:3:3480 82703833534:3:4356 19128667615:4:371 65674906827:4:506 84502346334:4:539 78150367606:4:528 30862994699:4:419 23625919432:5:118 90054573689:5:155 12587469162:5:104 38471466720:5:130 98515735691:5:158 94461387513:6:67 42780334742:6:59 59336985433:6:62 57085355353:6:62 59973876503:6:62 93130298433:7:36 44606056221:7:33 95991721012:7:37 93373197644:7:36 70537183683:7:35 29622173439:8:20 26576726222:8:20 78535555181:8:23 72486360980:8:22 75020797359:8:22 31837722288:9:14 62232936402:9:15 17429128744:9:13 55916370238:9:15 52423979871:9:15 97076468839:10:12 21713417508:10:10 79102417693:10:12 69125943113:10:12 89671700344:10:12 82464288187:11:9 93293637335:11:9 55995887365:11:9 63421236386:11:9 79222274647:11:9 76709165321:12:8 15691478722:12:7 28939575314:12:7 61767533134:12:7 11701921220:12:6 37270746452:13:6 52902053309:13:6 75829386961:13:6 93971275753:13:6 71205668595:13:6 23410742055:14:5 42239470083:14:5 18109228642:14:5 16372762996:14:5 38498665991:14:5 55699195602:15:5 28359540818:15:4 91631040890:15:5 69139754044:15:5 72169279328:15:5 52932326610:16:4 76736725957:16:4 26649084124:16:4 16410335473:16:4 37694146504:16:4 92123424239:17:4 73374776509:17:4 69530795745:17:4 55731768155:17:4 13226023563:17:3 38849265510:18:3 27674215232:18:3 18811384683:18:3 64126168507:18:3 99289999472:18:4 95848567340:19:3 67274022056:19:3 34920088924:19:3 59250950932:19:3 45812301409:19:3 22506459299:20:3 27874538630:20:3 30820523774:20:3 47695446152:20:3 65047378037:20:3 93760595743:21:3 56951909515:21:3 87255627000:21:3 63816543408:21:3 57315869627:21:3 60217336303:22:3 44903846312:22:3 93624793993:22:3 37500407332:22:3 10726164088:22:2 14107877800:23:2 44826173342:23:2 43122619121:23:2 85624764015:23:2 77613865209:23:2 77648689392:24:2 91372919716:24:2 18155292808:24:2 75566315279:24:2 94533700455:24:2 93198815224:25:2 79114455763:25:2 40080525174:25:2 35297488307:25:2 35009988792:25:2 37992405571:26:2 96651266096:26:2 21544819857:26:2 41575811558:26:2 96828146770:26:2 76943459188:27:2 11057205981:27:2 78405001148:27:2 48552920163:27:2 89737608144:27:2 49554366672:28:2 33106140979:28:2 75643118245:28:2 93166341530:28:2 73153620668:28:2 60624274710:29:2 64621140355:29:2 24179534194:29:2 19589763710:29:2 48496336369:29:2 48441202378:30:2 55153223702:30:2 55032667878:30:2 66475572888:30:2 91044990260:30:2 29933544814:31:2 61293430081:31:2 94843376234:31:2 54959884193:31:2 45358938910:31:2 85625241859:32:2 27657943001:32:2 91406652180:32:2 77256232388:32:2 65834027686:32:2 78409916133:33:2 71380769840:33:2 67041868639:33:2 99512080338:33:2 47411070276:33:2 56676332053:34:2 86542373627:34:2 48042216982:34:2 61534823297:34:2 45927398455:34:2 27785679132:35:1 99662463595:35:2 18702657611:35:1 74012907346:35:2 32290168092:35:1 43042008752:36:1 35511493604:36:1 30544229892:36:1 18834428240:36:1 19505066807:36:1 63435126425:37:1 18865721077:37:1 66808311211:37:1 68219137795:37:1 30507942258:37:1 94480023991:38:1 45666371050:38:1 16791721902:38:1 49278144700:38:1 74074853727:38:1 52001019305:39:1 98846424515:39:1 41156298475:39:1 43067053194:39:1 46517517076:39:1 64760906891:40:1 13881312223:40:1 64964074589:40:1 18465813223:40:1 28651933398:40:1 11178962156:41:1 33502108811:41:1 71911691553:41:1 62234400760:41:1 49328342204:41:1 35630953108:42:1 51019880236:42:1 80024971626:42:1 84625200429:42:1 72759158838:42:1 66485590734:43:1 17656505908:43:1 95574402399:43:1 43403059738:43:1 75768539985:43:1 57608588766:44:1 63470449322:44:1 14102295194:44:1 21258751073:44:1 49441716313:44:1 70440873810:45:1 34630752545:45:1 29030290086:45:1 38780781263:45:1 39354591819:45:1 11059645821:46:1 75110975348:46:1 80416268402:46:1 67663759930:46:1 35583296909:46:1 98230954507:47:1 25861188433:47:1 27081018623:47:1 79055910667:47:1 80165834758:47:1 28632006823:48:1 27612662723:48:1 88090367386:48:1 50202544331:48:1 59111241896:48:1 89034478874:49:1 37152231541:49:1 10838514160:49:1 78584738685:49:1 18412473299:49:1 26053396107:50:1 91938955319:50:1 84700823345:50:1 71931922111:50:1 84486997570:50:1 54044116164:51:1 50910205477:51:1 86391064564:51:1 95820504516:51:1 29734455393:51:1 95602322953:52:1 61414925012:52:1 50648388793:52:1 50161772450:52:1 50630093582:52:1 59411717182:53:1 44985431607:53:1 51340797001:53:1 17349362508:53:1 54380337550:53:1 78792319653:54:1 46098567731:54:1 58066976544:54:1 77073350969:54:1 58208136873:54:1 19023748958:55:1 93331672186:55:1 69305285396:55:1 23089871824:55:1 96353859874:55:1 41635057587:56:1 44019250812:56:1 35411521775:56:1 61386378048:56:1 61489253440:56:1 68997512382:57:1 52147433759:57:1 54722094764:57:1 49090573610:57:1 93829393963:57:1 39605708719:58:1 68257591228:58:1 92495180937:58:1 40318721349:58:1 33137674867:58:1 26449178189:59:1 47869782328:59:1 88238591278:59:1 30135677352:59:1 18891977150:59:1 39525426755:60:1 47577351559:60:1 99142926624:60:1 40977011564:60:1 53221062282:60:1 31234850513:61:1 89352706876:61:1 76454029470:61:1 11122801948:61:1 33088255178:61:1 34688252475:62:1 33521001051:62:1 69897918182:62:1 13407785395:62:1 73406910166:62:1 88337583459:63:1 37382892044:63:1 10590518558:63:1 86048309418:63:1 86067868161:63:1 35918903912:64:1 66178539675:64:1 19732987318:64:1 15160063901:64:1 94553240051:64:1 25913072768:65:1 98978981563:65:1 34516683101:65:1 32353187607:65:1 47782601766:65:1 33149231002:66:1 26776932155:66:1 35058668856:66:1 19270488382:66:1 68202947627:66:1 48185646372:67:1 19187064757:67:1 55244216561:67:1 43960316029:67:1 72336259365:67:1 21699665134:68:1 40941450100:68:1 69499680394:68:1 16970928329:68:1 51158617175:68:1 13897788063:69:1 93131079744:69:1 28567035800:69:1 17592729608:69:1 18765556987:69:1 75028426233:70:1 91031922931:70:1 59089150640:70:1 58589181441:70:1 25127524783:70:1 20551230230:71:1 47940151357:71:1 60116552205:71:1 43518372400:71:1 29948993494:71:1 76029209310:72:1 41356109709:72:1 13734080386:72:1 54994234315:72:1 58068633567:72:1 25795957161:73:1 55217072779:73:1 65902748180:73:1 30809050817:73:1 74777630901:73:1 65874937243:74:1 68179702271:74:1 23902351907:74:1 56546985963:74:1 90131785049:74:1 76473447792:75:1 32597352887:75:1 10505847387:75:1 52069833829:75:1 35863521484:75:1 48628893918:76:1 21654099689:76:1 68454893787:76:1 30896221875:76:1 87177619571:76:1 10707148331:77:1 64821394172:77:1 89148907504:77:1 38638369696:77:1 78763583442:77:1 63214177886:78:1 18138084905:78:1 26955167795:78:1 19769112320:78:1 12637308853:78:1 66480478586:79:1 52363255880:79:1 83248213865:79:1 70882438134:79:1 13364333123:79:1 61319539063:80:1 72829955839:80:1 45554138461:80:1 70766945422:80:1 80398848974:80:1 53217123114:81:1 42352238462:81:1 67503488916:81:1 78176787002:81:1 67269914483:81:1 65933200381:82:1 98735078335:82:1 46512762973:82:1 77091314878:82:1 16164450640:82:1 51366313375:83:1 51120519819:83:1 36288531340:83:1 45836333443:83:1 21701155109:83:1 24625195026:84:1 61345082997:84:1 33804171380:84:1 16713960657:84:1 97119185019:84:1 46828143855:85:1 81819704852:85:1 58326973823:85:1 62111053107:85:1 99382087474:85:1 59878237206:86:1 74502728634:86:1 29550513435:86:1 33823541272:86:1 15027465482:86:1 80012637954:87:1 17046484081:87:1 95885538133:87:1 51690979787:87:1 38935045717:87:1 13922767288:88:1 59381477676:88:1 25030539600:88:1 31040155223:88:1 54859143979:88:1 82925673668:89:1 94005931530:89:1 41540409727:89:1 59137766971:89:1 11371257524:89:1 82849970336:90:1 44175630072:90:1 60947437403:90:1 18568506803:90:1 34812782569:90:1 28779815214:91:1 72598683382:91:1 10924822784:91:1 84539443944:91:1 45559124946:91:1 94784765183:92:1 66782304872:92:1 92662532920:92:1 42095037631:92:1 69292915999:92:1 84542805632:93:1 36559407428:93:1 90848433961:93:1 60094151013:93:1 73333413462:93:1 80143894349:94:1 93746816796:94:1 45076821812:94:1 71825742695:94:1 87900788665:94:1 40395416561:95:1 33509079703:95:1 69092821614:95:1 72577075496:95:1 99307829663:95:1 93629626490:96:1 22065184592:96:1 47344511809:96:1 84640074678:96:1 57995359746:96:1 46175240875:97:1 83006426546:97:1 81601334397:97:1 77191550320:97:1 12578329937:97:1 99115911770:98:1 17923423633:98:1 39321747765:98:1 36122874548:98:1 83028244695:98:1 34317552151:99:1 40154640156:99:1 99118213862:99:1 22774781622:99:1 41756375637:99:1 76935126778:100:1 91318989590:100:1 61970286922:100:1 92689713594:100:1 58163958172:100:1 256796216808:1:256796216808 932510029032:1:932510029032 791030055054:1:791030055054 125610160632:1:125610160632 897103313181:1:897103313181 867504978234:2:931399 582654072108:2:763317 884594807304:2:940529 777952576876:2:882016 682351637951:2:826045 714342506936:3:8939 851551756351:3:9478 715559065725:3:8944 746158392026:3:9070 379034137519:3:7237 285302824506:4:730 199826121728:4:668 188861037681:4:659 445415710125:4:816 516721941169:4:847 488588666416:5:217 931568287530:5:247 369180014738:5:205 840937979024:5:242 456256523550:5:214 146221218573:6:72 522837991484:6:89 851071271154:6:97 347073141596:6:83 759340599359:6:95 579193513378:7:47 304530707482:7:43 646082425640:7:48 367514949725:7:44 584595181953:7:47 781288008833:8:30 828375467571:8:30 138495918200:8:24 951745475346:8:31 260772135665:8:26 449442587014:9:19 998258458031:9:21 339406249121:9:19 541555332887:9:20 873085394435:9:21 832093702170:10:15 261169114006:10:13 297696968659:10:14 232697903653:10:13 468466052062:10:14 567528948464:11:11 751717592987:11:12 205605419867:11:10 196660953410:11:10 761168995754:11:12 459903960926:12:9 115151161521:12:8 428112033597:12:9 913198362466:12:9 618891823898:12:9 426196973473:13:7 286698226208:13:7 453696834437:13:7 411012685495:13:7 374516373713:13:7 610300842628:14:6 445398265862:14:6 645594603688:14:6 439334456002:14:6 478646380508:14:6 657638171271:15:6 102955938614:15:5 902823451061:15:6 559365008606:15:6 692265398281:15:6 132245513912:16:4 108584990448:16:4 113961480647:16:4 206227898233:16:5 890570158734:16:5 972998622074:17:5 389313469503:17:4 801275561788:17:5 739428386034:17:4 850337051951:17:5 405606337685:18:4 454633827321:18:4 901127084990:18:4 868771006144:18:4 331993620405:18:4 472364252209:19:4 371541053457:19:4 496450730393:19:4 350897658572:19:4 353759446642:19:4 937937849132:20:3 610608675508:20:3 330432720977:20:3 423432106102:20:3 133720919306:20:3 464781245213:21:3 546935876975:21:3 787466538718:21:3 459359193694:21:3 472144060343:21:3 780076204846:22:3 887946905539:22:3 694642903439:22:3 154705047958:22:3 347102017228:22:3 342854805433:23:3 255248807167:23:3 982655051416:23:3 353416880165:23:3 452452564195:23:3 979773116454:24:3 995580515840:24:3 130981676564:24:2 161508110175:24:2 127331656630:24:2 551965614019:25:2 296172195662:25:2 115087458058:25:2 252457069720:25:2 538974338969:25:2 200465157787:26:2 459473870136:26:2 501838734138:26:2 131712175328:26:2 571331625320:26:2 855928458205:27:2 588188011714:27:2 826055302310:27:2 647994729613:27:2 843428777363:27:2 681898969697:28:2 225706315220:28:2 719367087977:28:2 363716868952:28:2 531740662477:28:2 537591467602:29:2 318127173320:29:2 928816253366:29:2 938434908123:29:2 850438827085:29:2 361804308014:30:2 780768317127:30:2 494745296871:30:2 126415271277:30:2 113932394320:30:2 337868889571:31:2 864083032461:31:2 872593002478:31:2 455000133665:31:2 691959713837:31:2 681207799997:32:2 206798247843:32:2 686331789597:32:2 329778306459:32:2 110377708002:32:2 340419713886:33:2 679553056313:33:2 458801412822:33:2 951045781154:33:2 697454975280:33:2 644604465847:34:2 785907125129:34:2 895331004380:34:2 352562250629:34:2 789486018702:34:2 411832219826:35:2 288820631880:35:2 717580959093:35:2 273254925318:35:2 331077303469:35:2 128130466181:36:2 728922298057:36:2 362350767748:36:2 205040572391:36:2 248951628269:36:2 254450181861:37:2 999111718577:37:2 142782370875:37:2 472135839139:37:2 415278802773:37:2 761851828497:38:2 253623083117:38:1 717468470816:38:2 818110855671:38:2 205972027223:38:1 817992879197:39:2 193458109767:39:1 387087506018:39:1 390752870924:39:1 504279347123:39:1 950279934560:40:1 889899237869:40:1 588934590679:40:1 950357097682:40:1 581586380704:40:1 616092250996:41:1 268349007843:41:1 635498851305:41:1 788761612582:41:1 361723835871:41:1 744346971392:42:1 902598654908:42:1 779080780790:42:1 812413238811:42:1 579786184359:42:1 145214173432:43:1 999512069285:43:1 517447986437:43:1 566164308074:43:1 929540535887:43:1 735511747379:44:1 951149244890:44:1 274227118855:44:1 250015142929:44:1 976868687366:44:1 132434120164:45:1 545744249821:45:1 829580398750:45:1 484230400684:45:1 938033661722:45:1 675043006215:46:1 437245093315:46:1 303566897821:46:1 168365005547:46:1 434769037929:46:1 848403814590:47:1 862171693524:47:1 910461378130:47:1 697545401339:47:1 457919913115:47:1 150576983084:48:1 288037365020:48:1 906192043722:48:1 187977922510:48:1 691369404107:48:1 152478038770:49:1 933916415726:49:1 152490189011:49:1 638010479216:49:1 838752825569:49:1 652510973812:50:1 246961974675:50:1 683805696444:50:1 733535128219:50:1 734520772947:50:1 603243930123:51:1 720200625647:51:1 436447930902:51:1 614240185494:51:1 692559249345:51:1 539670003347:52:1 573315381059:52:1 664003751550:52:1 505680294863:52:1 711411135171:52:1 682728617695:53:1 646609896352:53:1 849571712415:53:1 776890549392:53:1 602882222985:53:1 781693818580:54:1 565149241360:54:1 700922445667:54:1 972265333894:54:1 530165960288:54:1 556042325523:55:1 343240389221:55:1 649491800881:55:1 582263541253:55:1 406016953259:55:1 255987486024:56:1 113360902747:56:1 827312227233:56:1 581124430745:56:1 745390332286:56:1 399969862832:57:1 829459589164:57:1 198562341032:57:1 420254839700:57:1 143954468523:57:1 255237893641:58:1 985111798623:58:1 580829235574:58:1 580788790808:58:1 927421620018:58:1 597033148709:59:1 419496589599:59:1 602467158198:59:1 441696987665:59:1 594170978251:59:1 683703291987:60:1 191221895690:60:1 620843127036:60:1 264090732127:60:1 982240942799:60:1 299951079537:61:1 678938348807:61:1 843147804375:61:1 219571519469:61:1 959196926895:61:1 298866216823:62:1 405138072775:62:1 306372267994:62:1 346977991402:62:1 550749799001:62:1 518954202774:63:1 386556881457:63:1 672490351640:63:1 595336344809:63:1 724847819410:63:1 942304044691:64:1 843537752145:64:1 503466189869:64:1 578358702122:64:1 968793269797:64:1 901676129009:65:1 706962014842:65:1 685942683029:65:1 179147212835:65:1 459746309107:65:1 605486883181:66:1 262799667228:66:1 145063935854:66:1 745632957970:66:1 424509465480:66:1 472383002825:67:1 996560594095:67:1 989881771751:67:1 335963321411:67:1 416353793469:67:1 817136867442:68:1 570371484982:68:1 910730316333:68:1 190671069969:68:1 915211459288:68:1 122806046262:69:1 622661618020:69:1 421711160069:69:1 623028963589:69:1 387780754667:69:1 837710185662:70:1 362539076184:70:1 359965416690:70:1 430390328125:70:1 107549192826:70:1 143863741900:71:1 339917227490:71:1 973352775834:71:1 444762921613:71:1 640152332264:71:1 457625269461:72:1 360351452828:72:1 347474459198:72:1 516160760673:72:1 489549440461:72:1 866966475636:73:1 919053471246:73:1 107123033789:73:1 778932979465:73:1 256518884208:73:1 722095807922:74:1 227322517378:74:1 366722823243:74:1 141489665557:74:1 662924372144:74:1 909832693911:75:1 868706964470:75:1 614379066320:75:1 685164001501:75:1 647478937786:75:1 175380813537:76:1 294100860068:76:1 627521669508:76:1 359572311575:76:1 861915684191:76:1 753075512593:77:1 378967481679:77:1 533835794823:77:1 921908101316:77:1 537031518408:77:1 833798874745:78:1 799290454112:78:1 902689077394:78:1 887588472191:78:1 501022438062:78:1 683298131857:79:1 412296501550:79:1 715578822739:79:1 451967699514:79:1 246229862743:79:1 960953467589:80:1 194985551835:80:1 428170650626:80:1 449793767384:80:1 147428573739:80:1 904315494472:81:1 611697822025:81:1 258034747526:81:1 764061181606:81:1 483929353528:81:1 168591888907:82:1 966041155908:82:1 672681104229:82:1 714463926372:82:1 273079904597:82:1 259404032150:83:1 152000008123:83:1 827003833319:83:1 300214915214:83:1 469653353258:83:1 564099766174:84:1 798772734767:84:1 946726805687:84:1 955395510909:84:1 569033245517:84:1 599863405197:85:1 947491701904:85:1 304489253642:85:1 463972254660:85:1 323809090016:85:1 189952947175:86:1 256123916253:86:1 799546806865:86:1 371422675147:86:1 557483537641:86:1 811791668242:87:1 632273470681:87:1 511156800071:87:1 271913664905:87:1 342099024860:87:1 818035793127:88:1 308866721994:88:1 332175663499:88:1 526485317896:88:1 769187806474:88:1 432619413061:89:1 274274380689:89:1 702885128021:89:1 552572870486:89:1 552547514418:89:1 706186915934:90:1 775337657651:90:1 119895661169:90:1 545739021376:90:1 732799894149:90:1 816740859011:91:1 527445186596:91:1 522690556033:91:1 288038809865:91:1 936497556017:91:1 514872633905:92:1 691822182175:92:1 224352175079:92:1 125386041555:92:1 997761243510:92:1 726611153468:93:1 794772697233:93:1 441814948564:93:1 547945962598:93:1 697956780046:93:1 808311186336:94:1 705683542243:94:1 980612977353:94:1 349478588094:94:1 496734689751:94:1 261476242189:95:1 829671444270:95:1 986415344625:95:1 260462832990:95:1 119144286326:95:1 396974948502:96:1 320928136969:96:1 956317919409:96:1 574125480882:96:1 329590025605:96:1 493682385460:97:1 204396687098:97:1 467066125240:97:1 804574696587:97:1 775966829655:97:1 472930748865:98:1 415997046960:98:1 666276244408:98:1 913919856205:98:1 579507541679:98:1 598221165507:99:1 444626430064:99:1 370588796502:99:1 825229057261:99:1 192565041838:99:1 427118376571:100:1 937521742411:100:1 635732872993:100:1 858466837371:100:1 656359900493:100:1 2217196603664:1:2217196603664 9959592790985:1:9959592790985 1965160509336:1:1965160509336 5765048059555:1:5765048059555 8473432657326:1:8473432657326 8779836202578:2:2963078 8248017255198:2:2871936 4894759933578:2:2212410 5183716395939:2:2276777 4381581327675:2:2093222 8383611708198:3:20314 9136020970536:3:20905 2506421428268:3:13583 5676258796350:3:17838 6391307821854:3:18557 5781141621790:4:1550 5171788666556:4:1508 9618081014080:4:1761 2413003379659:4:1246 6001705787126:4:1565 7488619175533:5:375 9534817953563:5:394 2613580242763:5:304 1877751680083:5:284 6473664391136:5:364 6830394811318:6:137 8388196060716:6:142 3471209642795:6:123 5090458443483:6:131 1315451437794:6:104 2233879472370:7:58 6774275907113:7:68 2876288787400:7:60 2288899092101:7:58 3874651832437:7:62 5783673102663:8:39 6948667166140:8:40 2928188430186:8:36 8529039711847:8:41 2570863103363:8:35 9820295393419:9:27 7330252868742:9:26 2160521284526:9:23 9334365180586:9:27 3000757039621:9:24 7211360036036:10:19 8724031889888:10:19 2230063043391:10:17 2854885563029:10:17 3390656978623:10:17 2554437748164:11:13 8904053223658:11:15 7167291000088:11:14 2742303312300:11:13 5370051375250:11:14 3992372484525:12:11 6621758089057:12:11 6138235802592:12:11 9213161302096:12:12 7707942633307:12:11 5761911563120:13:9 7933579674531:13:9 1960452864012:13:8 6505672587416:13:9 2367797364803:13:8 9900966809354:14:8 3617689951873:14:7 2494976826167:14:7 3966904796207:14:7 5928737472357:14:8 1549852149346:15:6 1593375313503:15:6 7008884697114:15:7 6463384563467:15:7 1249870493889:15:6 5073921444976:16:6 5267614468835:16:6 5138073274845:16:6 1112189713066:16:5 3174399730847:16:6 5213184190311:17:5 8751437100240:17:5 2751198402850:17:5 6593696307490:17:5 7225607227010:17:5 4266886086785:18:5 5147519249304:18:5 9665811601604:18:5 2022206747947:18:4 4951297779180:18:5 9945290344824:19:4 1657005082912:19:4 2326496943478:19:4 4260743255322:19:4 4288051866185:19:4 6745152926923:20:4 1439122455006:20:4 4003905738522:20:4 6383867648922:20:4 1188814516544:20:4 3002257874021:21:3 7453653207303:21:4 4444970515260:21:4 8924552193539:21:4 9511539003373:21:4 2434463138064:22:3 6507398516737:22:3 6913318817834:22:3 4874918270779:22:3 7442718028612:22:3 6852255829423:23:3 5248670232113:23:3 7685148350810:23:3 3293629580525:23:3 1103346683675:23:3 3167263793768:24:3 8037109908146:24:3 9932873188219:24:3 5900605446238:24:3 3116146859327:24:3 5356380959839:25:3 6386346498507:25:3 7795215119888:25:3 1855107532054:25:3 2625242793844:25:3 8579929864890:26:3 3639575715923:26:3 1653360051938:26:2 2948886811874:26:3 7061956496661:26:3 6626018470292:27:2 8543081981987:27:3 1839936389659:27:2 8386458635321:27:3 1156156366759:27:2 7008239178380:28:2 2320363672502:28:2 1787916517320:28:2 4520614604860:28:2 1606157738037:28:2 7630929940365:29:2 2329980626084:29:2 3029383115176:29:2 9827959781225:29:2 2566127475190:29:2 5224948564909:30:2 5822167045454:30:2 5725092979481:30:2 8241243315570:30:2 9649128265929:30:2 2064675554785:31:2 5876735829920:31:2 5407558153078:31:2 2661566292481:31:2 4261504744095:31:2 7129831974852:32:2 9758740229860:32:2 9173569788495:32:2 1112191342290:32:2 8552069112210:32:2 7768914289923:33:2 9352722393971:33:2 2535604514857:33:2 5317052892577:33:2 2798177612357:33:2 4752565169160:34:2 1000594666594:34:2 8704474324175:34:2 6482590771493:34:2 6808726234107:34:2 5942237724961:35:2 7544101408809:35:2 1559776670914:35:2 5520525001931:35:2 2212370792583:35:2 2247967183874:36:2 8623530628523:36:2 3002209579353:36:2 6473277460617:36:2 2584826410145:36:2 9011834286620:37:2 9613571870977:37:2 6425684450159:37:2 2439434015501:37:2 7744663306218:37:2 7447547308081:38:2 4356863649090:38:2 2358452777377:38:2 1233898380561:38:2 5581987249668:38:2 4312721062436:39:2 1610331848997:39:2 1551104612922:39:2 6822519499215:39:2 8898826103290:39:2 1513432495535:40:2 9257893794401:40:2 2718196938406:40:2 8394020921526:40:2 8309356387336:40:2 4185028713661:41:2 4927349131404:41:2 2490137470179:41:2 2215420472560:41:2 2964603009865:41:2 8545761447183:42:2 5989587482223:42:2 7858389973887:42:2 3153429519158:42:1 1897852566050:42:1 7614394151863:43:1 2232041584225:43:1 9605765980893:43:2 6925179159519:43:1 5906987206311:43:1 8092277081312:44:1 4169970025777:44:1 5947752416526:44:1 1584899190944:44:1 7856993591255:44:1 9650769363952:45:1 4670851975916:45:1 7625929109977:45:1 4064698368824:45:1 6350429456783:45:1 4216072523682:46:1 8245078650747:46:1 4668366113680:46:1 8257226944764:46:1 8769889748941:46:1 6822528986844:47:1 3910823381260:47:1 1247687286044:47:1 9547193057088:47:1 8901827670663:47:1 7646016137799:48:1 8456495474202:48:1 9001018257342:48:1 7721521509272:48:1 6001038772795:48:1 2303486430953:49:1 7523177580505:49:1 8818067427833:49:1 1834418443378:49:1 3990394137150:49:1 3248195596396:50:1 3366209249413:50:1 2354207505900:50:1 9827227723013:50:1 8247508926334:50:1 5511514723220:51:1 8227529352393:51:1 1856887997979:51:1 1259878572339:51:1 4656955418431:51:1 7653684692933:52:1 6059584264199:52:1 2521515705165:52:1 1369065261518:52:1 1802482914824:52:1 5249888535249:53:1 1145571775448:53:1 7303453310060:53:1 9092100876849:53:1 4876050508231:53:1 4219455081218:54:1 6574567800326:54:1 9304275293010:54:1 5867300660874:54:1 1170905414878:54:1 3529681396150:55:1 6451362718109:55:1 3644537030292:55:1 5603958309737:55:1 6738539191008:55:1 8866990617505:56:1 5238483183262:56:1 7626647115073:56:1 1068510684134:56:1 2298815661484:56:1 5539482473800:57:1 9620487122127:57:1 9752719197681:57:1 8632161062979:57:1 5809859308565:57:1 1356049262762:58:1 4077736073847:58:1 9312664349102:58:1 3514348012335:58:1 3343966065935:58:1 2998117648583:59:1 5885256955248:59:1 9825014277536:59:1 6468864662599:59:1 5810952577298:59:1 7541097243521:60:1 8403483871842:60:1 6385219392673:60:1 3927514133346:60:1 5361871790363:60:1 4130252253493:61:1 5431278198987:61:1 9569668633471:61:1 4635812695641:61:1 5225277891943:61:1 1194202811132:62:1 9863497330108:62:1 4547002544473:62:1 6670138171285:62:1 2966462770405:62:1 9941653295787:63:1 5263375728514:63:1 7037667557094:63:1 3487070465339:63:1 6788066557942:63:1 5409824662113:64:1 2022842912785:64:1 9682055108095:64:1 3524745397662:64:1 3771411901808:64:1 3281351877539:65:1 3864355526772:65:1 1753115165551:65:1 2321574258150:65:1 4623904529308:65:1 5385390625520:66:1 7421964441998:66:1 4772600360788:66:1 8818254802147:66:1 3724757394153:66:1 2577263839404:67:1 9856583297554:67:1 7624475423710:67:1 4279548950602:67:1 6561856299501:67:1 7672783975800:68:1 4384827349726:68:1 8646727960128:68:1 9870922569012:68:1 9263603948916:68:1 4341056653153:69:1 4109119587232:69:1 8493353088761:69:1 4252536733893:69:1 5015922130799:69:1 5523428512737:70:1 9268260422052:70:1 5963175617178:70:1 5179434966585:70:1 8676680299495:70:1 7030385270139:71:1 5621607800932:71:1 2836426740200:71:1 6389085557039:71:1 6346016748612:71:1 6273244923157:72:1 3813629730138:72:1 4549521169020:72:1 3775488273128:72:1 7524446014054:72:1 9524607795851:73:1 5905474978676:73:1 8645145729171:73:1 9402218279375:73:1 6326142017726:73:1 6880002131036:74:1 7341210822621:74:1 9570371299928:74:1 7945285676896:74:1 2875372316086:74:1 5633728253874:75:1 7849982363609:75:1 9510239020834:75:1 6199917833122:75:1 8931495603597:75:1 2000650547923:76:1 3767161614858:76:1 9778736744447:76:1 8275321138598:76:1 4941850297420:76:1 5563453753324:77:1 8827041000353:77:1 6531018854133:77:1 7889040989299:77:1 2521198235953:77:1 4444524453707:78:1 9893814007645:78:1 1464583796894:78:1 6514818441743:78:1 9583148230517:78:1 6662401327127:79:1 2194177623175:79:1 1557606176570:79:1 1034638753726:79:1 5438332898145:79:1 7612950091886:80:1 1300379267574:80:1 7394837114272:80:1 1781790716443:80:1 1929174088433:80:1 6899226473223:81:1 9366993570099:81:1 8098715233716:81:1 7755118050546:81:1 8111616663501:81:1 9521199931519:82:1 4948599394984:82:1 5505815022838:82:1 8399208124337:82:1 7673825961718:82:1 4093117626000:83:1 7682235609695:83:1 3296683079388:83:1 2317316909818:83:1 3160643639431:83:1 7321994780636:84:1 5509377399959:84:1 2400602102238:84:1 1631774873044:84:1 2598401318224:84:1 6070229480667:85:1 6268735951248:85:1 9020569904388:85:1 4764389810164:85:1 3231487298067:85:1 1196271308733:86:1 8979573611357:86:1 6172017813686:86:1 8430925830887:86:1 6013594428891:86:1 8749272138092:87:1 4128328113120:87:1 1023020561151:87:1 5742181732804:87:1 3020523182918:87:1 7429768958288:88:1 9209715966920:88:1 3145646240925:88:1 5196434037265:88:1 5223804067951:88:1 7712591909249:89:1 8728811042577:89:1 5514595118101:89:1 5219652465915:89:1 5794463490931:89:1 5460330523012:90:1 1177834268771:90:1 4463094720730:90:1 7727175587245:90:1 8251162827913:90:1 1773972918758:91:1 4898435492061:91:1 1025889467072:91:1 2172273968500:91:1 2691255098723:91:1 6830770524444:92:1 1136805646712:92:1 4404957524202:92:1 7695577499705:92:1 6220394910708:92:1 5793629064419:93:1 1892959304377:93:1 1624919932734:93:1 6201808648741:93:1 3976523046472:93:1 9344928496354:94:1 9605627177789:94:1 7253205620602:94:1 5358932218008:94:1 6189824008494:94:1 9080952900777:95:1 6156783370785:95:1 5480306773822:95:1 4817778860755:95:1 4945801304510:95:1 2097416407821:96:1 7659260732235:96:1 2103622237128:96:1 7056460617478:96:1 2345100006207:96:1 5732380638353:97:1 2482405499399:97:1 1351201457591:97:1 8029101948037:97:1 7351091491316:97:1 9948572268737:98:1 2141361385986:98:1 5125472197352:98:1 7228431655890:98:1 4410564600224:98:1 5024356131524:99:1 5606213818151:99:1 1674954658786:99:1 4978138554521:99:1 8679662362596:99:1 6169324597070:100:1 8085880544602:100:1 1665407889438:100:1 4752541692199:100:1 8743497612087:100:1 45183346176009:1:45183346176009 89000804366155:1:89000804366155 90700784495072:1:90700784495072 93426754897053:1:93426754897053 27741474796448:1:27741474796448 21498271549878:2:4636622 45142447015346:2:6718812 47082447940304:2:6861665 74763980005215:2:8646616 28214237367067:2:5311707 89632032594662:3:44752 45965574231597:3:35821 77639872774918:3:42660 91868539986943:3:45122 42379177147087:3:34864 53305878352423:4:2702 70079864793161:4:2893 86374422712256:4:3048 84865373909721:4:3035 63643640733105:4:2824 52673680374842:5:555 61101351080855:5:571 65532022967757:5:579 54848842358330:5:559 86169083032759:5:612 52419514166741:6:193 89002179049180:6:211 93796869751171:6:213 93407587491921:6:213 72111426635106:6:204 52631500949009:7:91 18073128938363:7:78 14430749666783:7:75 17883707560392:7:78 86824919652132:7:98 51626643376953:8:51 12241924957677:8:43 59114733206880:8:52 69410258030587:8:53 71787873610750:8:53 54250297549544:9:33 30724842612844:9:31 89677922101606:9:35 56093245993337:9:33 99687708385967:9:35 34847871484708:10:22 86079951000880:10:24 44760347210185:10:23 39423378543866:10:22 67477406058447:10:24 61436050531081:11:17 94839161517218:11:18 28683964640586:11:16 43111681973189:11:17 17449058818498:11:15 66886355443828:12:14 74841815600931:12:14 16715273161819:12:12 45724767872587:12:13 28284263750870:12:13 86890014332412:13:11 17448897548150:13:10 53171115780952:13:11 66293469531965:13:11 73373801257782:13:11 17030226114956:14:8 86415795880738:14:9 20996148902412:14:8 59173439890460:14:9 57720278687934:14:9 38867606085327:15:8 37255773412966:15:8 34997619528981:15:7 25325850844538:15:7 76909651167399:15:8 28256848470347:16:6 67973901894401:16:7 79633815580600:16:7 84193452575726:16:7 73377245446856:16:7 70802061391228:17:6 37238851999080:17:6 82409372291783:17:6 21398699078018:17:6 34624223564558:17:6 29653164088694:18:5 73529522378113:18:5 40060624867363:18:5 47395507592769:18:5 53027963702900:18:5 10102342154614:19:4 24792702245430:19:5 32922518612022:19:5 43614011091079:19:5 14665443003745:19:4 59937786579179:20:4 44602828415079:20:4 84762888166989:20:4 48115371116243:20:4 78194605396258:20:4 89286034916931:21:4 87036201126539:21:4 39839574391975:21:4 11840643615004:21:4 88555203540741:21:4 20978691025968:22:4 50738223100560:22:4 30095044813291:22:4 67663728552852:22:4 16850627223552:22:3 35410193547838:23:3 89851835972802:23:4 97694651788411:23:4 44709125205688:23:3 22173305475215:23:3 13874126178139:24:3 73011088054536:24:3 88715628554478:24:3 42060241359382:24:3 68652311859910:24:3 41969102456931:25:3 87261806565679:25:3 37134926281215:25:3 39596885541940:25:3 43580325210800:25:3 25214765995561:26:3 77407825630300:26:3 91320902331874:26:3 86368318678976:26:3 58636203336940:26:3 38428404623328:27:3 72464010700905:27:3 87600283605191:27:3 69112626097947:27:3 41049855818391:27:3 32762331039949:28:3 81082424429089:28:3 33790201617103:28:3 19551381780281:28:2 85468317517628:28:3 60204961290341:29:2 38588907335479:29:2 13789618342648:29:2 10748515582088:29:2 26966680819054:29:2 37110329306660:30:2 97014997404769:30:2 88333914518356:30:2 53535687998134:30:2 70599965584231:30:2 67821453321016:31:2 46501635272944:31:2 51654943408025:31:2 88334510206445:31:2 30616841050948:31:2 51773464222806:32:2 60047477529686:32:2 85315662625038:32:2 25171278524113:32:2 67586679890777:32:2 54408911726654:33:2 83326804221331:33:2 75856174800220:33:2 27758563906605:33:2 57174031446105:33:2 47341292276684:34:2 64483322877297:34:2 73877135143044:34:2 53005317698306:34:2 88376398124460:34:2 30980957150219:35:2 47980931258365:35:2 90599581347037:35:2 59869502563791:35:2 64417854754792:35:2 37350688438136:36:2 57997500369696:36:2 43834853128490:36:2 43886279145590:36:2 92445552792554:36:2 38874329288461:37:2 33134221238884:37:2 44206820146627:37:2 91784676734907:37:2 25445306143582:37:2 21888902309804:38:2 85398137723925:38:2 47122959570741:38:2 10709807322025:38:2 84726634412313:38:2 29128809256458:39:2 19135477700355:39:2 30640757350417:39:2 21138973225323:39:2 48178797197255:39:2 32034177226483:40:2 39808308514436:40:2 37112134196129:40:2 30700255336167:40:2 60586796780949:40:2 67940335712156:41:2 40645616485534:41:2 44917754564633:41:2 23607546681464:41:2 58227038558560:41:2 53490700412218:42:2 95248728466484:42:2 77634748597953:42:2 63610992600535:42:2 52525211356890:42:2 96247957432194:43:2 92266458536943:43:2 64815896514859:43:2 35672392853878:43:2 56242566692413:43:2 74455224712496:44:2 12340210169248:44:1 92417418011702:44:2 47621811314232:44:2 78488788310888:44:2 17709891351130:45:1 20139789052105:45:1 16360464250966:45:1 32735713473829:45:1 72387896497954:45:2 87167308736452:46:2 48612609133138:46:1 82866575334117:46:2 63159055935638:46:1 99073332513528:46:2 89562610727112:47:1 60482143368915:47:1 34178119646288:47:1 97211304988998:47:1 53939259366251:47:1 66188475804535:48:1 32516254384544:48:1 15047419280557:48:1 88145838241256:48:1 52024295238221:48:1 99939480503566:49:1 87836399335285:49:1 71997306658847:49:1 11738846813002:49:1 38471626801009:49:1 21338815595548:50:1 99349120968588:50:1 21753443486282:50:1 28073304545930:50:1 19612249725711:50:1 78693103054287:51:1 42389582593591:51:1 71940010577830:51:1 20309626304778:51:1 82669379423742:51:1 40984926211221:52:1 34320358565716:52:1 74414767308668:52:1 50900093807541:52:1 47897758754751:52:1 73324635663026:53:1 64319750661123:53:1 21209741889544:53:1 54911277701525:53:1 45438216480645:53:1 70006960573704:54:1 92964384351286:54:1 16984639178668:54:1 54907427991331:54:1 87028854688173:54:1 25482054323870:55:1 75447313298136:55:1 18135838963347:55:1 56248604413321:55:1 19402919963189:55:1 65329966268255:56:1 53893588194092:56:1 55699325439480:56:1 87519894454325:56:1 76048554236806:56:1 11830767311439:57:1 54447182701467:57:1 64037323129117:57:1 41107224829305:57:1 89978219846425:57:1 70214231251761:58:1 13766601568445:58:1 39877608106292:58:1 27191825390947:58:1 97517269256241:58:1 58076194523202:59:1 21570797186621:59:1 46782610477872:59:1 61524420807284:59:1 12310698411056:59:1 92037603675928:60:1 93180860732843:60:1 46040170466420:60:1 70362730648053:60:1 53946023744215:60:1 78448599882723:61:1 51643745126151:61:1 48855155019716:61:1 35565894092081:61:1 39217315039995:61:1 48301549430976:62:1 73081046235928:62:1 52913765323249:62:1 87900578138670:62:1 42194971483967:62:1 14905378081841:63:1 85511464960095:63:1 63443115989863:63:1 59492061802190:63:1 68241099020068:63:1 76009182890329:64:1 80734822354642:64:1 20648619302413:64:1 31383173998513:64:1 11231975740505:64:1 55094520945754:65:1 62407718844705:65:1 55342676126172:65:1 89771472158738:65:1 41353292601731:65:1 26774280605826:66:1 46181941567813:66:1 39257220432128:66:1 70503691863504:66:1 44144218047486:66:1 75558194253844:67:1 14037937434879:67:1 90222114987052:67:1 44546316093401:67:1 16586010554229:67:1 11821669292966:68:1 33995501387039:68:1 69955375639946:68:1 27886710837104:68:1 96537542929463:68:1 70051154204094:69:1 39520148576611:69:1 68945690077390:69:1 76718594888967:69:1 80460316190179:69:1 54807879902362:70:1 58996508803116:70:1 76301987884191:70:1 24792983465049:70:1 84206370161711:70:1 75542286231664:71:1 24107428079277:71:1 61707055327382:71:1 34184337918561:71:1 39663912276584:71:1 65572963428377:72:1 92636821965982:72:1 67870267745291:72:1 12693131254075:72:1 67450303856221:72:1 51660452079671:73:1 48244557616950:73:1 24016700119057:73:1 54305800619183:73:1 52929502420080:73:1 85368957689437:74:1 32549782994560:74:1 36954956350123:74:1 29865435692108:74:1 52829722547050:74:1 73861366335512:75:1 70092872021395:75:1 89860463545420:75:1 69149540255938:75:1 45237723672482:75:1 73891470526346:76:1 85518535520285:76:1 67712429768037:76:1 71899284342075:76:1 74590596653343:76:1 96743843375076:77:1 45543567685094:77:1 88210623346481:77:1 59725392018586:77:1 30500721096432:77:1 70451150340581:78:1 21253282162092:78:1 64297931980211:78:1 43960812240718:78:1 20268017800355:78:1 67325873509701:79:1 34937565337848:79:1 91395501932786:79:1 93825973351348:79:1 82158977917267:79:1 74456253406459:80:1 11829422694532:80:1 90471570501454:80:1 46773646751789:80:1 72699750302347:80:1 48157653317140:81:1 39960297377732:81:1 58331724265274:81:1 95682029218502:81:1 90947120553745:81:1 37073915384807:82:1 46803645816665:82:1 52760599488531:82:1 46198143979421:82:1 94405464048194:82:1 70322716371743:83:1 85347183969823:83:1 88114482703901:83:1 88056028890349:83:1 44430633606391:83:1 11086123389992:84:1 55336251920218:84:1 16145762241493:84:1 99975718062265:84:1 86256546261759:84:1 18128650702125:85:1 73358669503460:85:1 95800762191976:85:1 20718061512522:85:1 32413369272617:85:1 24538653923523:86:1 22003660161674:86:1 99633537343981:86:1 21612930615000:86:1 52499986290214:86:1 91655736278954:87:1 57920911937149:87:1 35048638699994:87:1 22904700501780:87:1 93062015507111:87:1 76790397005264:88:1 48571712625470:88:1 21452595316958:88:1 80253441084998:88:1 82319868001927:88:1 47278366571124:89:1 88872590883866:89:1 67105126384962:89:1 27074573744486:89:1 68061668117657:89:1 71423811606704:90:1 91504102039058:90:1 82872887903526:90:1 11248539561632:90:1 32558297523008:90:1 53750123473175:91:1 99922944415837:91:1 76164219989932:91:1 57049159929199:91:1 12563046579600:91:1 66654333689680:92:1 21356672727136:92:1 17742257292813:92:1 64930949003620:92:1 81407735924251:92:1 38565257978413:93:1 17399525268499:93:1 29795056649423:93:1 29110702508081:93:1 23958128184948:93:1 59196424505085:94:1 56974618149921:94:1 80915890592140:94:1 14212645355575:94:1 40950765520724:94:1 12182221116603:95:1 87800409297118:95:1 67786540418494:95:1 86507310260424:95:1 73529998494862:95:1 25818134818175:96:1 66604130878080:96:1 24600498770273:96:1 13958164973869:96:1 78667428122955:96:1 54858407438166:97:1 21437676277556:97:1 86681427377142:97:1 91130975093973:97:1 18843654682050:97:1 25902451813144:98:1 46137053745760:98:1 31367070588489:98:1 90705612673619:98:1 96285346919522:98:1 54853135296459:99:1 82649896407625:99:1 11117483931385:99:1 75942588016959:99:1 21025068681689:99:1 80353032464775:100:1 66732558958599:100:1 45704639154673:100:1 20884511428229:100:1 97340885795412:100:1 199284189050576:1:199284189050576 270290498524085:1:270290498524085 273515246779542:1:273515246779542 609643906729543:1:609643906729543 271385458568027:1:271385458568027 768274612498738:2:27717767 478904230228522:2:21883880 717185607400819:2:26780321 481290426553546:2:21938332 943543720310004:2:30717156 890722879652073:3:96216 989349915169547:3:99643 180903160647768:3:56556 215413007832366:3:59945 483093126673210:3:78465 106951468082581:4:3215 787287180762278:4:5297 579598913140425:4:4906 364273222290401:4:4368 921620147947807:4:5509 703614646641823:5:932 825369111472462:5:962 972013110804838:5:994 445787028081451:5:850 581171761393428:5:897 678465103977042:6:296 690920814178514:6:297 486097447054726:6:280 649087305047128:6:294 744133613353182:6:301 299557702731482:7:116 716961318140117:7:132 547510975814675:7:127 589681871969672:7:128 879163173041500:7:136 470388775920233:8:68 913868831758462:8:74 504816385696459:8:68 378459406562773:8:66 753594297823702:8:72 136675665142276:9:37 809534400672725:9:45 605006335004438:9:43 347465867181152:9:41 207588504430340:9:38 746716071786729:10:30 801001145233909:10:30 330402030115623:10:28 693133672303375:10:30 133332216584522:10:25 705182541374846:11:22 615796422646157:11:22 120366291699136:11:19 582103475556320:11:21 365686470281690:11:21 596251790486649:12:17 494525235779909:12:16 820380828675060:12:17 784970287506615:12:17 679497972277515:12:17 337495993904721:13:13 652862910077989:13:13 171651407219902:13:12 280346264697237:13:12 138650002997890:13:12 283614284212536:14:10 351720243617684:14:10 139538516142226:14:10 893190864164826:14:11 659735964519832:14:11 195026311884666:15:8 800832123732327:15:9 333882339567643:15:9 333777769692214:15:9 964450016843941:15:9 156684973695091:16:7 806918738517296:16:8 609516354620352:16:8 818182289843845:16:8 764533257840183:16:8 694224083129018:17:7 842831090891720:17:7 834535498508900:17:7 479796799237946:17:7 373861902058259:17:7 383241660887721:18:6 552122473007990:18:6 303854145390924:18:6 840794037064026:18:6 145393586100706:18:6 552415639664394:19:5 898198553917168:19:6 380750160331975:19:5 235283652122575:19:5 454953109565209:19:5 709866747347886:20:5 953780763680623:20:5 752025121805431:20:5 212008351909540:20:5 128019609380056:20:5 651405317833963:21:5 436005287179821:21:4 232245859949752:21:4 305716051430143:21:4 391279388671335:21:4 274694276078596:22:4 986380662692393:22:4 465672044039388:22:4 909627583071047:22:4 420750731047006:22:4 377834307463558:23:4 285280296227911:23:4 956239868754264:23:4 112558621536289:23:4 531568781966424:23:4 288880908361206:24:4 301484794461464:24:4 850781609135338:24:4 219562821711618:24:3 737635608810817:24:4 559641045473990:25:3 620249107248385:25:3 581360151417847:25:3 536478865711142:25:3 924847217927542:25:3 597814347050933:26:3 780464243120726:26:3 191235342316504:26:3 653354149517583:26:3 524691148074728:26:3 845909579431475:27:3 747003038817307:27:3 830532787737073:27:3 932101722969011:27:3 209552263482256:27:3 790025536685057:28:3 331144007410230:28:3 671182095686452:28:3 472086702371085:28:3 352518325666444:28:3 590097087536213:29:3 367499863007366:29:3 515113290514092:29:3 720422909526187:29:3 585646258350905:29:3 916117194950079:30:3 890514467106022:30:3 586151096768768:30:3 618764094850852:30:3 275891918605769:30:3 981729974663940:31:3 745801173328418:31:3 454807575809799:31:2 594341749539557:31:2 218569140196374:31:2 777336689116879:32:2 543042332680147:32:2 774531342245503:32:2 431002960106558:32:2 209741384568232:32:2 154570537919158:33:2 524928169415170:33:2 869135890024735:33:2 387047755574929:33:2 670713797129997:33:2 675519437074206:34:2 330652282521709:34:2 793180013937404:34:2 419287262711157:34:2 550842220023524:34:2 365432941992563:35:2 671033070396177:35:2 866168737770815:35:2 180739537317133:35:2 381375468585790:35:2 874213867640807:36:2 936737480269187:36:2 982492880323584:36:2 516240117320299:36:2 384690672781464:36:2 299894907497306:37:2 701382520977941:37:2 453404917885644:37:2 888357931559280:37:2 535325622071132:37:2 845797520235430:38:2 707453304230654:38:2 920494121621393:38:2 967656302999076:38:2 656113765333862:38:2 852391003269924:39:2 273664581273509:39:2 120305686664883:39:2 921713896715307:39:2 612692701321229:39:2 127269960279255:40:2 512116202970217:40:2 747662366655602:40:2 790436465745436:40:2 349978094682348:40:2 341800195349522:41:2 519638462911794:41:2 471983774471068:41:2 458096284269490:41:2 899018372506235:41:2 621568588835959:42:2 291055662312996:42:2 930950355781303:42:2 585069690145660:42:2 379853981988497:42:2 742715344507420:43:2 338397792954701:43:2 898069973072054:43:2 201779267837492:43:2 509225859704406:43:2 793292520058401:44:2 121487472723751:44:2 895129071206858:44:2 765888060948146:44:2 876074837815106:44:2 796511446478154:45:2 895644373168482:45:2 701854669449725:45:2 249999954673114:45:2 885161629854713:45:2 217957502303115:46:2 379110525301188:46:2 830931107294285:46:2 899914939700445:46:2 204093261637716:46:2 576093321305414:47:2 616977268169605:47:2 726441664478151:47:2 568561406846337:47:2 228385727181660:47:2 630117715541925:48:2 365569652949897:48:2 788632271633244:48:2 584497671515165:48:2 789522165875470:48:2 793166462257310:49:2 267164661755202:49:1 448393660659870:49:1 477276877609997:49:1 324638379346520:49:1 173442207098956:50:1 712594987840235:50:1 723743825363984:50:1 561385845666182:50:1 215915097451499:50:1 984826978023669:51:1 878601194377760:51:1 666552602326830:51:1 914579106679085:51:1 135007039495252:51:1 135739953651838:52:1 782788939496634:52:1 849278182869567:52:1 479561070800248:52:1 433606359312279:52:1 983563743858797:53:1 163303012605820:53:1 717140726676152:53:1 145994475522222:53:1 475829657781529:53:1 669841319704017:54:1 304381260261390:54:1 357957914859005:54:1 253185384438235:54:1 868441262788354:54:1 141190061988919:55:1 256362998746811:55:1 726768859017292:55:1 832847283655076:55:1 908634710535049:55:1 752847842998854:56:1 523058599725689:56:1 378637342727948:56:1 417227449138295:56:1 554908764648121:56:1 946237072498194:57:1 684715526061681:57:1 818186809714122:57:1 182492367352382:57:1 376108986508973:57:1 340655992072093:58:1 788982267659306:58:1 503590620507964:58:1 748693747119266:58:1 717987796362137:58:1 353806391815087:59:1 454287608958064:59:1 501702252099922:59:1 654227556525321:59:1 363180474159250:59:1 326044214155433:60:1 904911602435301:60:1 907941283743969:60:1 546118305488570:60:1 473146299401015:60:1 850285057182507:61:1 302616783131182:61:1 130899324712091:61:1 735854013632557:61:1 180281401803384:61:1 574093894908692:62:1 768572733743494:62:1 510243184340000:62:1 446893895701569:62:1 134965684526793:62:1 951426929122816:63:1 169858464193035:63:1 387111308026246:63:1 196168157783923:63:1 993094877264979:63:1 352893090020028:64:1 949071119529937:64:1 382563379532156:64:1 602370275016073:64:1 442038653329405:64:1 641266199180796:65:1 482090762875203:65:1 339436672351705:65:1 416898152903482:65:1 321048042391849:65:1 491415625131933:66:1 269573642479132:66:1 370558562114200:66:1 769567300040808:66:1 803796812653160:66:1 513913432599261:67:1 545343437021933:67:1 679187299896796:67:1 582991754460995:67:1 501801409226732:67:1 264399437581722:68:1 604712091004195:68:1 539769318898357:68:1 263405777895064:68:1 604313833029337:68:1 752148187721432:69:1 965902653324667:69:1 485064388474712:69:1 335362816219542:69:1 104951808016635:69:1 907962652779496:70:1 619531291042778:70:1 408301726993124:70:1 600673543084587:70:1 780553893635031:70:1 624137931023156:71:1 521551505070291:71:1 514890910027521:71:1 534089415512644:71:1 113796910593656:71:1 445497266552074:72:1 754796810066366:72:1 119095553149369:72:1 392279497395704:72:1 913299026498324:72:1 575111483465540:73:1 733513470530675:73:1 567558566446926:73:1 730790359750987:73:1 657927992605857:73:1 953353222027705:74:1 183807569642205:74:1 325616478306984:74:1 530143516224123:74:1 700348700624041:74:1 352114997696189:75:1 327857347841546:75:1 551310281036818:75:1 403960515605524:75:1 700203440872031:75:1 941819271905952:76:1 457640618058610:76:1 598415037873352:76:1 568127441127569:76:1 256865926241458:76:1 764984631135188:77:1 491325364423621:77:1 379652776756108:77:1 665398199754103:77:1 484796708823917:77:1 428041359067615:78:1 786595323565060:78:1 989622721749047:78:1 512464390283318:78:1 528589801813898:78:1 892379132203029:79:1 848397399784664:79:1 478395896297498:79:1 800067783995492:79:1 536690430642082:79:1 578295883173456:80:1 666352875083871:80:1 668309720521022:80:1 745865070033088:80:1 770304797232193:80:1 856466423339091:81:1 696918647986089:81:1 825486176468442:81:1 863735601788422:81:1 340248816585123:81:1 775119590766233:82:1 551020432472323:82:1 203082875286848:82:1 230422800385065:82:1 635220768478190:82:1 678792366134181:83:1 960663596627888:83:1 618893887819642:83:1 648689724875647:83:1 143935170957646:83:1 887015575675054:84:1 803086227918318:84:1 736626674027617:84:1 679151547779692:84:1 412118218913832:84:1 981282914579652:85:1 209834411169927:85:1 699725851225450:85:1 690457692405962:85:1 541794314384059:85:1 616152705786266:86:1 593843735904151:86:1 906632199541402:86:1 578996320930256:86:1 890271750801701:86:1 284460726260109:87:1 421383310927115:87:1 461610178559245:87:1 767567056057261:87:1 102073038265340:87:1 955997030633112:88:1 301382289997471:88:1 388852147958523:88:1 510014144413761:88:1 249121159466440:88:1 931944537947043:89:1 866084579283189:89:1 966469793094580:89:1 376046342712075:89:1 193747043690127:89:1 858024709244236:90:1 361223845115267:90:1 944964720764517:90:1 452909439689710:90:1 659842697163387:90:1 397218534996016:91:1 734628230238087:91:1 609905909840715:91:1 657408899654289:91:1 606299228014096:91:1 476889756569633:92:1 706305649963954:92:1 870413014677658:92:1 438256582902150:92:1 660261949753295:92:1 587032074317619:93:1 228002317041988:93:1 280218158456485:93:1 281498576362911:93:1 161254422262479:93:1 964229530920924:94:1 817291692909380:94:1 303970079714712:94:1 363930415252410:94:1 509605484573355:94:1 734517042228868:95:1 299912796693494:95:1 967818724847576:95:1 609218954445569:95:1 649149661678388:95:1 914855430100027:96:1 903772520454824:96:1 109107448190754:96:1 695040337001030:96:1 625002298665552:96:1 862375946444788:97:1 560950640218942:97:1 459316637207248:97:1 593844583767257:97:1 755185696432610:97:1 828244724900569:98:1 189368134242789:98:1 400173052832580:98:1 467644093661032:98:1 636540916526901:98:1 753300672311405:99:1 226019726095049:99:1 146410255088534:99:1 985216418380522:99:1 736803845186160:99:1 670322639004835:100:1 564213869743434:100:1 743511383897307:100:1 841094749044458:100:1 304324784105929:100:1 2261263104304056:1:2261263104304056 4802755800906474:1:4802755800906474 1560500066608326:1:1560500066608326 4865561752149960:1:4865561752149960 7957573891596524:1:7957573891596524 2934362743136146:2:54169758 1371097493469527:2:37028333 3288253457364434:2:57343294 8147609978788381:2:90264112 9732943833590589:2:98655683 5163105869799768:3:172837 6174929898857616:3:183461 8857039095970697:3:206901 8672108740085893:3:205450 5988602581624514:3:181596 1521772940881842:4:6245 9356145325935034:4:9834 5187564853666611:4:8486 4907719013331818:4:8369 1554080882280629:4:6278 6145427512694042:5:1437 7474904796567365:5:1495 2893931571930041:5:1236 2717856789993686:5:1221 3889241685860972:5:1312 7277792243444076:6:440 6217346302043182:6:428 7138091464414235:6:438 7089597556120406:6:438 2405122272377037:6:366 3801325222227178:7:168 8002414034160231:7:187 8507758266877083:7:188 3757666050978491:7:167 1366566350735670:7:145 8306831890607478:8:97 6315542256962835:8:94 3303657198181796:8:87 4477808875574101:8:90 4573430217641260:8:90 3806648774024643:9:53 4569794517031568:9:54 9211309112608503:9:59 1000527046525987:9:46 3123394963819292:9:52 3119088198413105:10:35 6415518582651302:10:38 9439575755148969:10:39 5661103707101958:10:37 8641314205836801:10:39 1397035858371713:11:23 3986672651217406:11:26 5279262421996582:11:26 8027181351531590:11:27 7855189996195062:11:27 7751020307249857:12:21 8833802627243151:12:21 7963887471506641:12:21 7354836826938173:12:20 9048794600530718:12:21 5561274668736446:13:16 5274668696709782:13:16 2089064093522905:13:15 5822126512694171:13:16 6584827545417637:13:16 9667346094913201:14:13 5742476006334850:14:13 1659443195928742:14:12 6488172923489878:14:13 4622071414719976:14:13 9737953807242036:15:11 8689295654148835:15:11 5161630359850379:15:11 9716039883104482:15:11 7142296459377342:15:11 1754533640154676:16:8 1630689077021950:16:8 1798373258529303:16:8 2471440923052735:16:9 7811334546593504:16:9 8002789964500301:17:8 3904210077203856:17:8 6400872603801250:17:8 6470481465764265:17:8 5017912783669956:17:8 2210528901794838:18:7 5589938375913382:18:7 7200915921748043:18:7 3433783028913288:18:7 6259363018950775:18:7 6003221447784709:19:6 5070620693841290:19:6 3483776554221767:19:6 3055825476525184:19:6 9735875356710583:19:6 9283435474574226:20:6 9189275320046775:20:6 4259910667190013:20:6 5332557148698916:20:6 6203132351863514:20:6 6381262450279970:21:5 4712138326104217:21:5 3018847746608945:21:5 5849801347078725:21:5 8125619246330789:21:5 3178224761830954:22:5 9953156622104153:22:5 1898694015730737:22:4 6709010657595449:22:5 4866348102517491:22:5 4604554795868231:23:4 9773639831989159:23:4 5677534582085556:23:4 5150460952641625:23:4 1761476029276745:23:4 4587241668473988:24:4 2826883994356974:24:4 4931823003284868:24:4 4375736229558177:24:4 7314986199398981:24:4 2899647646555097:25:4 2965100956243112:25:4 8550512230121452:25:4 5441610620528465:25:4 1176755781093521:25:4 1031242661784484:26:3 8819953498158274:26:4 4225203098236239:26:3 2529802391888594:26:3 7563940925239235:26:4 6085653461260158:27:3 6468752384958837:27:3 3672672187472764:27:3 5202928859207545:27:3 3922656215235807:27:3 5976925622495812:28:3 7111183217688330:28:3 6293602823952968:28:3 3240616822186813:28:3 6305725445567242:28:3 1165668305842446:29:3 7184503199492062:29:3 7956601232996569:29:3 4111202997736530:29:3 8994176314609302:29:3 2195548618731785:30:3 1638947743758321:30:3 2084980185767868:30:3 5736594808335955:30:3 1164265493956646:30:3 1813099398033172:31:3 9671983729137595:31:3 8747728488338721:31:3 4924493144077783:31:3 4812872433363873:31:3 2101781165548854:32:3 4815129165912400:32:3 9857451203195135:32:3 3671694698184492:32:3 1201166112374154:32:2 1843153859984258:33:2 4070010643625205:33:2 1249632919862124:33:2 7985496890497831:33:3 5500650981526955:33:2 7966793630839886:34:2 9488332301584934:34:2 8425678278960272:34:2 9262627715382610:34:2 6881379998656684:34:2 6032498622920988:35:2 6717223857057560:35:2 1101119473260237:35:2 4161772222695635:35:2 7217807826901754:35:2 8044281141921020:36:2 6122697958431990:36:2 2065512580766802:36:2 8790279944398162:36:2 3478003072713274:36:2 3916119438673138:37:2 9630282375285467:37:2 6445515082126122:37:2 3382120288600906:37:2 2421339013554570:37:2 5992650494697039:38:2 3100660142557032:38:2 5338420204228767:38:2 3954300984694083:38:2 9450539863153187:38:2 7004552763492707:39:2 4325633964551313:39:2 2281976424002720:39:2 7663261697523906:39:2 3023024884663682:39:2 1786840523435356:40:2 1846016303928775:40:2 5358291415157757:40:2 1129532548554672:40:2 5144168043182185:40:2 1835498333993866:41:2 8461216469060213:41:2 9951787041920032:41:2 6142688254821252:41:2 6603691152804166:41:2 1588235550657383:42:2 6561372811018044:42:2 3320860482602030:42:2 5903395977780516:42:2 4819792124874021:42:2 9239301343403639:43:2 2647157985361805:43:2 4577726549907530:43:2 8776513177333798:43:2 1924668972287259:43:2 2999995395081626:44:2 7528083178899175:44:2 6264553877954381:44:2 4294928293437290:44:2 1824683332923902:44:2 7501866874535311:45:2 9416956372814689:45:2 7602894191766939:45:2 7981289101708289:45:2 3635177807600885:45:2 1156108254967553:46:2 9719398153622799:46:2 7665673708414911:46:2 1622676031701344:46:2 9492335640310671:46:2 9029046634944771:47:2 8549284644110193:47:2 8107618045516081:47:2 1865198085009724:47:2 4276253563349009:47:2 4245058573727245:48:2 7879228414398816:48:2 2790635785427302:48:2 1521070530138052:48:2 6220014148184032:48:2 2440108499231718:49:2 7696596776652405:49:2 1985599848362483:49:2 6141305698915620:49:2 9911058965609845:49:2 5055262113331382:50:2 4605686088413895:50:2 5627272047432567:50:2 4514041022819326:50:2 9418432605526666:50:2 9757843404592012:51:2 1181239284606578:51:1 7483768711788860:51:2 2014279051270750:51:1 9209802311396499:51:2 6116705442223671:52:2 1589153638984872:52:1 1353338220208441:52:1 6540854949344818:52:2 8998300182903743:52:2 5732791246500454:53:1 5886303881221642:53:1 6644069832488235:53:1 1300883739609276:53:1 1476215343028890:53:1 1646466758146875:54:1 2382641800926052:54:1 2985654330794718:54:1 4827791471225221:54:1 6630711808503082:54:1 8534779735903622:55:1 9627807737929124:55:1 6235854188421353:55:1 4408996533575679:55:1 7163559899219754:55:1 2910074657731916:56:1 2274101981722479:56:1 9949800342858290:56:1 8383613782799562:56:1 1260208073543447:56:1 1121657433510432:57:1 8873829777862981:57:1 2263719732984238:57:1 9944979127887661:57:1 4530232364055989:57:1 8955508621823228:58:1 9251192420293534:58:1 6468613475154739:58:1 6757767420738053:58:1 2932925891705171:58:1 1769647737205586:59:1 5301151601960250:59:1 6249935236995914:59:1 8368884194334981:59:1 2281153730081492:59:1 6189304537224573:60:1 7063069002971086:60:1 7799715131524953:60:1 3483191074232632:60:1 6971901400325076:60:1 9728981816536562:61:1 8675605341638299:61:1 6136805751861777:61:1 4734542526770576:61:1 7505063982662496:61:1 5556166450768402:62:1 7547376096668511:62:1 6447865578869039:62:1 1800080341176846:62:1 3141190709062876:62:1 6377544935458299:63:1 7784315190523655:63:1 5568539280964708:63:1 6988449217907575:63:1 2445701514631702:63:1 4757303516027068:64:1 1493088129825522:64:1 2181258325892948:64:1 7708835898004140:64:1 4096241749336779:64:1 8866866431573378:65:1 2140429474587723:65:1 9642589653336554:65:1 2113110749103965:65:1 6001317283936931:65:1 4707706966780870:66:1 1187140423716774:66:1 8806252727268351:66:1 8328538354568750:66:1 8509153143052303:66:1 3385386727444389:67:1 1415180299656884:67:1 5533248770040279:67:1 9792064885637019:67:1 3616164161880819:67:1 1485062716445565:68:1 5006208995715460:68:1 2674727645913707:68:1 1494326628072472:68:1 8806746618792734:68:1 9667648241340737:69:1 4967270450168788:69:1 2515153717902194:69:1 4007491549798708:69:1 9797791941601032:69:1 9206445635535231:70:1 4132841408129060:70:1 8307592557264462:70:1 9463992674257734:70:1 6434998503384017:70:1 9257166213456964:71:1 8391594631323331:71:1 7681962195821784:71:1 8477450966290289:71:1 2576493890239255:71:1 3983455344216785:72:1 7404040415520892:72:1 7984380154479139:72:1 6762261217004075:72:1 3945626136520448:72:1 4595361894768013:73:1 6195844868389990:73:1 5144904951457133:73:1 5039354294527267:73:1 5635182437414990:73:1 6229689682412517:74:1 5764540918724568:74:1 4919222393272167:74:1 1086540154320927:74:1 7308595864980012:74:1 3620041107479102:75:1 7423276292789194:75:1 2462639136471345:75:1 6163532934730767:75:1 9348004791101686:75:1 3149546146773572:76:1 4082621316941108:76:1 2300213094180773:76:1 4681554762693745:76:1 1263004396103837:76:1 4136344226348850:77:1 6989794197886856:77:1 5519916865213482:77:1 6684718512288218:77:1 4783563282341429:77:1 9955926702108237:78:1 8659758225673930:78:1 1193529492122711:78:1 4049704424244394:78:1 6591239974960746:78:1 3507799000244416:79:1 6392879374712798:79:1 5187463655190734:79:1 2905546936751689:79:1 3520199830055322:79:1 3997043530719348:80:1 3949612760814865:80:1 1178688344612455:80:1 5702319498907712:80:1 6201690498229039:80:1 4255202486895901:81:1 5324977955697965:81:1 7545658501779907:81:1 4443991397865542:81:1 2026487841574769:81:1 2197786145421851:82:1 2636410087683550:82:1 4951186872122162:82:1 9239951582822421:82:1 2483763695871296:82:1 4162610882285589:83:1 8264549761228756:83:1 8725757154661510:83:1 7321962480902281:83:1 6498988471448025:83:1 7370474378130837:84:1 1062748334968928:84:1 3394598592594345:84:1 7521129742576209:84:1 3524329878953556:84:1 2344351559323320:85:1 8653324814678089:85:1 6674711837413190:85:1 4563450980169337:85:1 5361334042171611:85:1 5199152531264701:86:1 2603587306380382:86:1 5763481624562658:86:1 3990908950225020:86:1 2909601823347407:86:1 2471294474782480:87:1 3642812809360733:87:1 9804101438177430:87:1 1121319484233074:87:1 3900368172439821:87:1 7396800240928340:88:1 4159672841103660:88:1 3720072343320677:88:1 7774904847845613:88:1 1503272165197742:88:1 2842528280909253:89:1 5473010311588181:89:1 2965393607548795:89:1 1831223937643600:89:1 8867040405351658:89:1 4969126014565913:90:1 2755732722543578:90:1 1623470411430300:90:1 1149043942880028:90:1 1750733310040680:90:1 2234534117834190:91:1 4491868471169692:91:1 4953027000888146:91:1 3803900091498454:91:1 2778161496126915:91:1 4575470172919807:92:1 6683539718746812:92:1 9049989134559818:92:1 9383781423563930:92:1 8646565303800809:92:1 2425626491227001:93:1 1676424542582603:93:1 7017210160919270:93:1 8121985375867723:93:1 9665032946999956:93:1 7617668099341776:94:1 1146836710763578:94:1 1261298546321438:94:1 6734178662600934:94:1 6261856334317671:94:1 1795248024732258:95:1 4890609904677016:95:1 1550853399867385:95:1 9615543294858148:95:1 3011234656021612:95:1 5026438430269449:96:1 9720607177529394:96:1 4421454970404332:96:1 5055841267786931:96:1 7200047448632411:96:1 6958898179369932:97:1 2997772766274227:97:1 2439306075110931:97:1 1749713585098037:97:1 8438536830281053:97:1 9120594802174718:98:1 7034665553979561:98:1 5988037510734932:98:1 2362126199847634:98:1 8967600327170741:98:1 2705187743353291:99:1 5442939804490019:99:1 5013788397243713:99:1 2592025292884524:99:1 4414669121105657:99:1 9992314406041742:100:1 8882551197855276:100:1 4314138887156154:100:1 3166023266565979:100:1 4758814453267045:100:1 34150563899745393:1:34150563899745393 64382017583976888:1:64382017583976888 16506798286889911:1:16506798286889911 60654392118341802:1:60654392118341802 60236845787947501:1:60236845787947501 37706987158593696:2:194182870 64067328402213907:2:253115247 27973432380840143:2:167252600 30824066517611783:2:175567840 32617687586123695:2:180603675 91560583087395507:3:450715 44080305229943691:3:353249 78929022709436294:3:428955 72102401110036289:3:416213 38271481303864505:3:336996 31474664377040002:4:13319 83611100951269349:4:17004 39792572592203567:4:14123 62903134177531708:4:15836 75185688668206258:4:16558 27958408553967920:5:1946 36060196489120274:5:2048 97838755889745397:5:2500 13038919958651409:5:1671 97544500388000520:5:2499 15297361107745971:6:498 78385003300109289:6:654 15127409423551682:6:497 91343255352250597:6:671 13739605103674452:6:489 21131812847978495:7:214 12190080314271162:7:198 21743265025791681:7:215 11810535926437807:7:197 88656807701814929:7:263 78807908484007784:8:129 77606543630744087:8:129 81370287719304811:8:129 66507944826767933:8:126 30392107926551811:8:114 76827240642632828:9:75 54174997418633686:9:72 43531137326358580:9:70 67845034384363636:9:74 89887294115008686:9:76 14304886710843758:10:41 75955593587843340:10:48 66616108670777904:10:48 74890340022300367:10:48 92010213174416680:10:49 78619336153419252:11:34 13546371980954965:11:29 92717796773248311:11:34 64164105543701052:11:33 82588465779214489:11:34 98520479130011329:12:26 99559397139671612:12:26 70509178200822093:12:25 21042952393347448:12:22 68279033180605659:12:25 58820138294728657:13:19 84498760056195963:13:20 15617730235005030:13:17 63024177543513907:13:19 25714399651970494:13:18 81715577937446169:14:16 51049023769201119:14:15 63847607932742526:14:15 22783632655155076:14:14 43664641174459031:14:15 32197954634815017:15:12 34429504627536550:15:12 50770310837820352:15:12 12976227795826081:15:11 87902436792900514:15:13 43767537511201193:16:10 99205393513887954:16:11 76697817643450139:16:11 73818364118689083:16:11 69773182123618914:16:11 99849246579991098:17:9 89507127711295397:17:9 26351354715659750:17:9 40138831246851197:17:9 34001031789478641:17:9 35918835914360089:18:8 21517469817777878:18:8 45161625930570556:18:8 17518319375604285:18:7 87462871226273858:18:8 74265409155445917:19:7 77063106942052823:19:7 79803786852411449:19:7 66239322855120092:19:7 89320356248388224:19:7 10944810296664917:20:6 55155103386231477:20:6 43637340692593457:20:6 60639408364487230:20:6 97025398344397942:20:7 76789574242262074:21:6 46086177500607520:21:6 32229519878489052:21:6 67907542353147735:21:6 93679339297093106:21:6 60881814406909749:22:5 24870699476909722:22:5 85785599262942709:22:5 68960578248563595:22:5 85895718842680445:22:5 26625570599077962:23:5 64188770956771141:23:5 53566291727781449:23:5 31820174165102727:23:5 86807784448675268:23:5 28212858943670303:24:4 62338634848168139:24:5 54337000558884355:24:4 61651991962664634:24:5 49579887602117883:24:4 49044852841871832:25:4 67176705776274458:25:4 86401624330185914:25:4 30426702241424605:25:4 51620380928021873:25:4 55594319374839798:26:4 25019652319927951:26:4 13768932907287844:26:4 15166301454507968:26:4 47081090187324977:26:4 84573255478693597:27:4 53690311120576915:27:4 79925544253174387:27:4 15335663878900959:27:3 92908225263428307:27:4 42730069877313340:28:3 31384180405276750:28:3 14804238982702854:28:3 52196875109067066:28:3 31099415984966109:28:3 87426300495938446:29:3 89320361222062841:29:3 70018207983713268:29:3 28049243760327146:29:3 68681419445147579:29:3 95034247110970233:30:3 47485094008993555:30:3 61823331461174714:30:3 22066589977982438:30:3 53295418224458469:30:3 36460538016608555:31:3 46727022712269515:31:3 59454794524995887:31:3 11287552108639664:31:3 76990338889861298:31:3 53028464597372592:32:3 54385833453054026:32:3 71541824891686506:32:3 48907016898466616:32:3 25696893223529678:32:3 16885612773346508:33:3 51396255063768515:33:3 45780530885870993:33:3 92317655805177841:33:3 45324718326701799:33:3 34645996732555196:34:3 91772161874800230:34:3 31051121079847778:34:3 45273529086787960:34:3 31617454893063898:34:3 96142374326247546:35:3 19235300346081248:35:2 14184859238897852:35:2 87275650260178631:35:3 63105620871414915:35:3 26573055582759526:36:2 58646478162157533:36:2 26560898862612810:36:2 11936747110017970:36:2 75969409818460765:36:2 60308915110353762:37:2 74973545454976013:37:2 83187266114770674:37:2 78376761777024954:37:2 77860945027429949:37:2 79536048542539034:38:2 22733031899012443:38:2 83623526054621908:38:2 28583239959546051:38:2 79653270792098804:38:2 99597950480365626:39:2 90249661892025958:39:2 94261699118047813:39:2 47692288730488658:39:2 43000171954760341:39:2 64181978531741970:40:2 55554964507440110:40:2 60490160923597320:40:2 41465945425639696:40:2 45453751173628367:40:2 85126816721222604:41:2 27405340930912128:41:2 21587267161031715:41:2 61481769370352434:41:2 77634494589767127:41:2 88291664726130911:42:2 69404581308105177:42:2 59627129168960182:42:2 10134501273151171:42:2 47605533304649761:42:2 85539405328960876:43:2 84447405802008640:43:2 16954424448600125:43:2 80122607465158940:43:2 46260830359447764:43:2 16639403466528305:44:2 34808352422822202:44:2 72049472046319847:44:2 96862653237126690:44:2 33581046114200292:44:2 41747273975653229:45:2 87090794807291417:45:2 49187446252035735:45:2 73506405471969004:45:2 27283601896061046:45:2 33614331112505753:46:2 11321360668572008:46:2 13724096952686026:46:2 41589637388544252:46:2 70882439380496681:46:2 56971215408985467:47:2 78578579351315617:47:2 48646729884376214:47:2 65417971173949176:47:2 13682337388626565:47:2 29470846651148025:48:2 15876484104951151:48:2 67142656113139890:48:2 77420341134642273:48:2 63376997754293970:48:2 13158470215033826:49:2 69803212589181498:49:2 51871365061264953:49:2 13484314877665214:49:2 86062038410430277:49:2 94457726542168333:50:2 80388914674653748:50:2 43339444702452601:50:2 21388371728372268:50:2 52684075211082335:50:2 29437567381153885:51:2 88747108330351060:51:2 71717305109033774:51:2 37497777003854806:51:2 96486254550997624:51:2 93257496994325731:52:2 36118799213093268:52:2 47760434693439331:52:2 50629364389699466:52:2 78899757273344346:52:2 12627905534082388:53:2 22107421821249338:53:2 45180343331439679:53:2 54985007220574364:53:2 29415649803532687:53:2 64346261930743288:54:2 30863810758837672:54:2 21754819721035163:54:2 17745514203942120:54:1 45950831616878914:54:2 58261998631616275:55:2 93022186615844814:55:2 69853655512093603:55:2 46512411210655284:55:2 96045031906484113:55:2 78665205043781188:56:2 69636187509356831:56:1 81362235093683471:56:2 44383622043279646:56:1 36041004456200300:56:1 84186841303234542:57:1 98566295120806757:57:1 19134780541663700:57:1 70024875831411713:57:1 97864911325257543:57:1 77991189894067138:58:1 54646707804448375:58:1 75443842298893730:58:1 26667185971595211:58:1 62899626631775610:58:1 34586619594152927:59:1 63170922215187351:59:1 72317009139782068:59:1 61451308093590750:59:1 23659875928903477:59:1 98045143986503152:60:1 74697865446550948:60:1 83164274589770340:60:1 36786897621239847:60:1 85340658305416278:60:1 67901883980308271:61:1 97049302122976907:61:1 34988153896033825:61:1 99136526450529876:61:1 38136921892585177:61:1 33801150791423211:62:1 39845097080690585:62:1 36026538792739579:62:1 11167731535293761:62:1 98437481470413063:62:1 45725518515547558:63:1 44721154715039194:63:1 30142996789281392:63:1 80007809849609308:63:1 44638822846413927:63:1 81852056194932455:64:1 91442638198942371:64:1 19619811530678061:64:1 13622275976577831:64:1 71854546575794215:64:1 66842822812612892:65:1 82818349432935256:65:1 65404192208756180:65:1 13314393807184018:65:1 79295256435856539:65:1 65992945118901458:66:1 63648367230600216:66:1 97645758844910988:66:1 89156828981212509:66:1 23027527377086584:66:1 64037900520475877:67:1 63921541930829993:67:1 28903386821092595:67:1 89319941696681701:67:1 99022684236660020:67:1 32497584189719062:68:1 91704888494422868:68:1 43369321613343464:68:1 81448966885613880:68:1 94967847320639529:68:1 97641245062367934:69:1 32393214669822556:69:1 80319769686897714:69:1 45749760240437373:69:1 76121995757864253:69:1 94349411686855847:70:1 33984949435550571:70:1 15951238207165000:70:1 54463492194546129:70:1 10428598430520118:70:1 90251188798335046:71:1 72135817017505411:71:1 38745379177927815:71:1 98388647214120359:71:1 14976133266976081:71:1 68432870002597057:72:1 53291570413442691:72:1 19322246926130435:72:1 58661875070533255:72:1 88277324706731107:72:1 94839251825494159:73:1 13189900301427488:73:1 22620632488785168:73:1 78174744202271014:73:1 20104176987702281:73:1 67803290564975321:74:1 76395809319281581:74:1 81094773612576643:74:1 92717829858214028:74:1 66323107230248772:74:1 93122050860922711:75:1 49987592415017320:75:1 34226085839296519:75:1 88044353270170291:75:1 16908203393326837:75:1 75746361906783844:76:1 84430393911515241:76:1 36723511273353687:76:1 36084900596390396:76:1 14925384347232119:76:1 26404602629981631:77:1 30409673795074290:77:1 81689057901138084:77:1 36114077759372095:77:1 58031628533515385:77:1 73371187940053832:78:1 22673541147331244:78:1 41639989209400250:78:1 41661165219098239:78:1 36707441676773458:78:1 78955929870540340:79:1 55616864179292290:79:1 13514685235959174:79:1 20616444754648959:79:1 38468095476076008:79:1 85842693232194357:80:1 28713278744281633:80:1 99928272754513337:80:1 64508977767280141:80:1 65216170401288499:80:1 54408657904407750:81:1 44338538648889009:81:1 65926250922534270:81:1 74092827263324673:81:1 96109109829912803:81:1 95404130910595259:82:1 67141853025897082:82:1 46135049451192628:82:1 78051042442837350:82:1 56037043752113670:82:1 71313262853309108:83:1 34014259781549630:83:1 75374224190359846:83:1 77973091319988679:83:1 58137207347905578:83:1 43900291953696161:84:1 26441532514486540:84:1 85595370462891556:84:1 52815033279121459:84:1 30243456240890021:84:1 92854038991188087:85:1 86005250669413552:85:1 54709908498520372:85:1 25857786005567758:85:1 81318035991305462:85:1 17775205063830279:86:1 78706160998584118:86:1 27157976547583251:86:1 73218660863355480:86:1 55674174657228562:86:1 63232190840732311:87:1 68868113495478662:87:1 93965606011771128:87:1 68906416512695643:87:1 30458067700165663:87:1 43852586619944863:88:1 98528636779993629:88:1 15555573696884830:88:1 46627655244615693:88:1 98918317416481121:88:1 24906121331079805:89:1 91950953630955251:89:1 22583248913133373:89:1 94441687779916955:89:1 48041782468965364:89:1 38098124229739752:90:1 91472901146188260:90:1 48416921934024818:90:1 34562752616861601:90:1 77471967728072559:90:1 21133682777900643:91:1 35560653301168125:91:1 52273982988865749:91:1 72685417783497542:91:1 63595207739300675:91:1 97416060937640368:92:1 25664560596124793:92:1 53184030734046588:92:1 69199971997320666:92:1 90696285760197542:92:1 12108096662515874:93:1 66861662485507033:93:1 40743268636698414:93:1 95752506888948379:93:1 67620363496273441:93:1 67035446783520275:94:1 70160390457787099:94:1 75472580257510669:94:1 40058929750409882:94:1 38544652346038317:94:1 98629764532258271:95:1 55452285786103920:95:1 26538040726665772:95:1 19541759750526911:95:1 72800646244003987:95:1 49196708578603501:96:1 75217666989878998:96:1 32620018622075717:96:1 43723606650469716:96:1 19041348131865410:96:1 56173846849720899:97:1 24475083676345589:97:1 86593197632001344:97:1 71446234314707679:97:1 95607895542962659:97:1 62925863202551692:98:1 71258286630885707:98:1 55976486177001334:98:1 18085517729147161:98:1 23153380436598321:98:1 19311420185237095:99:1 63964075594188163:99:1 33279585973746871:99:1 67198043732742371:99:1 56119824194616871:99:1 52208100658095373:100:1 57313062937727977:100:1 81793672355876555:100:1 83517580260289139:100:1 62138385046309268:100:1 796757408381088033:1:796757408381088033 810299748633643154:1:810299748633643154 769484233386687655:1:769484233386687655 267526641971013386:1:267526641971013386 918503105264526137:1:918503105264526137 472839060503557913:2:687632940 589574675957781147:2:767837662 864876072738449182:2:929987135 173042606350885874:2:415983901 158967301366581291:2:398707037 707587903490546127:3:891100 643145564458334229:3:863183 300798155858312573:3:670026 677849259613217208:3:878437 772799261350760218:3:917674 126862302920413445:4:18872 990358160031095917:4:31546 782389810803553429:4:29741 130831521570312811:4:19018 203813548165890589:4:21247 211433767285819166:5:2917 467784632514633109:5:3419 712385543079522156:5:3720 679965195243624564:5:3685 228672655433737895:5:2963 920711150817438441:6:986 633828087822224214:6:926 198244833093576295:6:763 375529003644126154:6:849 675621897380512070:6:936 817155916633463038:7:362 695606876603113028:7:353 807976499862969462:7:361 912595566921332952:7:367 939784373545664701:7:369 765883125804159501:8:171 970346227359866551:8:177 997611090270678637:8:177 438249846385857740:8:160 365721387590389430:8:156 722504277754206551:9:96 940187118873641593:9:99 187994138377256221:9:83 418503717788254368:9:90 731577933510685516:9:96 239171733485687301:10:54 104087264991313862:10:50 315015462915309630:10:56 171837946349447951:10:52 758210118693941127:10:61 111344569549049809:11:35 813738451346787854:11:42 126259288977654976:11:35 426092642280328041:11:40 464484171351458585:11:40 483363527493744810:12:29 288864638609293342:12:28 518781940465051445:12:29 856008148721650421:12:31 646322769554877223:12:30 868329916060483111:13:23 842602895812423504:13:23 205782729093345202:13:21 803808023097396727:13:23 492874427271278656:13:22 591453530477376766:14:18 157996976258409997:14:16 402341942963512961:14:18 438124244271511843:14:18 571596382912347890:14:18 926916763861156801:15:15 153694924618834746:15:13 455896574645646509:15:15 145357162876069234:15:13 340667432606272339:15:14 992544605697915743:16:13 461077834222226541:16:12 679829493087780378:16:13 139913419958833233:16:11 121962066319084148:16:11 327304741276133005:17:10 289823158340464843:17:10 836186845271289006:17:11 773674697608214405:17:11 466213628007760013:17:10 893014897907858361:18:9 205076879698878246:18:9 159210981729380225:18:9 619016947746113532:18:9 941966555022496053:18:9 394435070495437219:19:8 573717319344627927:19:8 387108322467167145:19:8 282117369277833922:19:8 205733271412683705:19:8 796115854402416598:20:7 133199431322569855:20:7 705100027385490462:20:7 962686136376978638:20:7 882232083524023820:20:7 272402765233710093:21:6 394728322980411221:21:6 827626839312144429:21:7 245386247546573043:21:6 645665364073129867:21:7 330554135769191044:22:6 585687897255913322:22:6 276158937663010715:22:6 657236265005374821:22:6 800213918908294922:22:6 608684506617183386:23:5 384743164921565043:23:5 717201616592192942:23:5 364629930195346726:23:5 621725581063522340:23:5 913668556593090129:24:5 650459915944562902:24:5 413306235610581587:24:5 179588587407927866:24:5 711190778871809879:24:5 436900628184503599:25:5 971384608359973031:25:5 656862681539207039:25:5 237059501790079263:25:4 786856543414190708:25:5 182536286404688004:26:4 495442751293596110:26:4 625626146787470301:26:4 586202251705705676:26:4 656317191660509172:26:4 533091215344100062:27:4 811528619960061460:27:4 321417001823324196:27:4 646343899741979944:27:4 557541488932742980:27:4 287329926553009024:28:4 682117733351719531:28:4 756851284325792895:28:4 154228433007482599:28:4 659374761831997783:28:4 540923372495744946:29:4 349077664127218449:29:4 636156747786761470:29:4 147361249317122035:29:3 556437631087418772:29:4 100028606994463863:30:3 324560002878545872:30:3 275040853942310829:30:3 289605656328436873:30:3 795718026879456216:30:3 261222162999076692:31:3 566831293476639836:31:3 696062351648374930:31:3 760926465379820332:31:3 795208039687326612:31:3 487775889236333142:32:3 636104504441255693:32:3 925867060472352492:32:3 878290740096590316:32:3 148308736585921245:32:3 341969600309516714:33:3 799193867855415446:33:3 776893255124510571:33:3 516372211735437264:33:3 678831820251328297:33:3 835281352828852806:34:3 774462363967258839:34:3 874450614502926476:34:3 979763641171588575:34:3 248451974907055940:34:3 976324979737294963:35:3 166345110280128784:35:3 751860807185210901:35:3 825988056252845239:35:3 204270889302509300:35:3 303803713408317317:36:3 984120242201479898:36:3 979691810735664836:36:3 367251614587777888:36:3 317231039045631644:36:3 106036721026696746:37:2 803436344840186003:37:3 446252125570864486:37:2 412176064217644387:37:2 119915117684227738:37:2 916278575478495663:38:2 838667227313512186:38:2 883743464364742981:38:2 126064288523095941:38:2 667866961631782630:38:2 709473538846117456:39:2 369052490430248693:39:2 929764100488515771:39:2 979721394670434963:39:2 475517394885300327:39:2 324638086502023494:40:2 195296517140495340:40:2 481948610811364006:40:2 161137999856472777:40:2 869189642039785772:40:2 836127310824981813:41:2 527073425310913000:41:2 118962523319704725:41:2 102071199387978765:41:2 504931136292075932:41:2 572827626307068687:42:2 499658365793386652:42:2 511355959899849698:42:2 679191678978988122:42:2 994741909854907404:42:2 717073807855038952:43:2 469176511255183632:43:2 544741546940113055:43:2 808362418966516054:43:2 792687801981447100:43:2 264541478998129197:44:2 393980342733968603:44:2 710676524950819320:44:2 974694534445651702:44:2 673095944954518590:44:2 524061388436531866:45:2 946097317897768876:45:2 496287216884446053:45:2 789274215410932481:45:2 127429765844242053:45:2 242976825516786687:46:2 872090744645740330:46:2 106732776013080396:46:2 961720859629026525:46:2 994425490330760694:46:2 156307955330273307:47:2 672580586807450070:47:2 345687137794912600:47:2 395840665064652571:47:2 140521694443742135:47:2 798954885209770909:48:2 691614846785057633:48:2 767072219912085368:48:2 143759639493540647:48:2 409372998918693757:48:2 473304420311462648:49:2 538533013819354345:49:2 280277586272705773:49:2 845092664659072010:49:2 598425957066408522:49:2 260117642109387489:50:2 539693106913703867:50:2 506989532622497696:50:2 582733516702753281:50:2 496039398020611274:50:2 106922695139119022:51:2 547956310221508014:51:2 377340074900156290:51:2 323683469958162177:51:2 456902280424139905:51:2 308224758053707667:52:2 625353993166838753:52:2 685096209143530576:52:2 277950369045738556:52:2 520569554432302409:52:2 998632480382994918:53:2 707267601157581759:53:2 879246176693623996:53:2 860326555070507070:53:2 207881296047262525:53:2 464148265096456107:54:2 178133032374950669:54:2 168182210605437657:54:2 105279868792005212:54:2 843674144393270800:54:2 672821436402170817:55:2 525218182085273397:55:2 492620181721171820:55:2 769080029898020423:55:2 103677371715943910:55:2 129976178679768919:56:2 112924692419162898:56:2 923422993780902241:56:2 624164042090242031:56:2 883109098928339919:56:2 538583816167630758:57:2 704478146575419610:57:2 614393569634083912:57:2 968837635709373329:57:2 232379635524371032:57:2 385075569551806857:58:2 643226759806558068:58:2 175370979400366313:58:1 432593747875973292:58:2 910089239309796681:58:2 627971772452501322:59:2 160845607752718860:59:1 508580267966839150:59:1 560592410478173315:59:1 131224506864899636:59:1 602321872338497597:60:1 421833519803438874:60:1 625708724995728896:60:1 226813717992111126:60:1 321958668469423925:60:1 713718764778861774:61:1 926228662064130769:61:1 829375324910543359:61:1 685884426305776640:61:1 981717743394711272:61:1 497978605260236317:62:1 769535375058735524:62:1 634932014245134322:62:1 283786100568616170:62:1 506684103788174522:62:1 484780742204383494:63:1 996265258239241613:63:1 819187359346849637:63:1 573086539614652362:63:1 438897321343859980:63:1 992356042179853313:64:1 453871543066961019:64:1 316690097057253347:64:1 310639956938043218:64:1 809053608258713425:64:1 938960813282669638:65:1 730634903120837198:65:1 107422264543200040:65:1 146429934554974136:65:1 307508345257804107:65:1 561356738345337603:66:1 123772044727959402:66:1 328591588866387876:66:1 927399557243131165:66:1 680306143748468515:66:1 428407987023867549:67:1 154194410237163942:67:1 171010629797231298:67:1 338992184634747051:67:1 970256991112333044:67:1 175624599125970789:68:1 276024533691498970:68:1 402364012936862568:68:1 165749421925090487:68:1 814642711288120391:68:1 282345033479760336:69:1 999888982005313658:69:1 379802749519595199:69:1 721978890699421142:69:1 129803330859887402:69:1 801441708223529924:70:1 596733159352386525:70:1 247953064269464928:70:1 186381531707636051:70:1 518031849502119498:70:1 852169452917136640:71:1 950679883504703132:71:1 960850719497779404:71:1 549764362948924909:71:1 282701487063644136:71:1 946710080533188490:72:1 550817787287327325:72:1 935662402569518314:72:1 708711026010959207:72:1 564517709237597997:72:1 601123400702728353:73:1 634430977591748919:73:1 876689587837664981:73:1 987009095463777111:73:1 829671644101153667:73:1 483990989831408648:74:1 983809740216868394:74:1 602686327214413253:74:1 194269132547576478:74:1 277374523639084876:74:1 454500065604867975:75:1 575677483337883391:75:1 605686733931631268:75:1 695494157600468945:75:1 762915395330218054:75:1 147045381406374247:76:1 646669882472299713:76:1 273244950018003552:76:1 929680036969463266:76:1 694108716166377850:76:1 372138139602078441:77:1 921261205795417665:77:1 403112896854054619:77:1 214905156052996556:77:1 932288194378704138:77:1 862395103641904091:78:1 819630704908358348:78:1 523919135827625369:78:1 123356256316965888:78:1 105846829778951516:78:1 705875044130709148:79:1 385283084688932464:79:1 951757092309590726:79:1 622884547101499873:79:1 245121123991384945:79:1 251789986997392124:80:1 463847099439048969:80:1 476345958650656192:80:1 333013819666531771:80:1 757860055405025052:80:1 535939959875328206:81:1 704337794176653266:81:1 756279752072988677:81:1 567732787089538451:81:1 248113634318981955:81:1 624401777371013349:82:1 447933485894554186:82:1 402113034002239650:82:1 137555363349330236:82:1 914353646619453488:82:1 643089986829824465:83:1 570088225831317099:83:1 687156241207049892:83:1 951458753405163067:83:1 249646822540775078:83:1 542808315065333347:84:1 156272420142881929:84:1 268319079961443704:84:1 511799826853999811:84:1 787725608678645745:84:1 965086264009833434:85:1 250229307415147528:85:1 265457392379128492:85:1 641283594366870821:85:1 511670476561248472:85:1 335231232481266912:86:1 387057311968086701:86:1 360879898537643147:86:1 748801895053358665:86:1 948547771650906553:86:1 574256397021262795:87:1 556559998344412720:87:1 392302640900625099:87:1 634718535253726335:87:1 443040735656706122:87:1 207386354201530336:88:1 736180987740342695:88:1 123467380170472983:88:1 995225523517325846:88:1 428430342449454046:88:1 304339175614686092:89:1 204739248545230750:89:1 748679332074910841:89:1 771891082626496290:89:1 372915521031663080:89:1 119783532516560353:90:1 398190739283983760:90:1 119805510918879855:90:1 570752500046733972:90:1 223834838289495069:90:1 298229016163082319:91:1 112823953964681434:91:1 513059950057461130:91:1 574301889705554238:91:1 528938513051969715:91:1 171587351600477267:92:1 497205393625919108:92:1 887747271668464133:92:1 230974558417460637:92:1 233765967402284816:92:1 677694051750682063:93:1 188742140514671294:93:1 729913563554508046:93:1 426601851618984280:93:1 627559903701013756:93:1 617231916499533020:94:1 599984578755026019:94:1 133448636064784751:94:1 209586089653091717:94:1 357464645240105755:94:1 586264068344764785:95:1 613384343941244413:95:1 943194133939251200:95:1 163912681191838126:95:1 485729559376702867:95:1 982516577567116658:96:1 161106088043298206:96:1 179334660217942088:96:1 805399661347312717:96:1 488397638112826439:96:1 798164105240883255:97:1 126408790151439588:97:1 250484769357623818:97:1 434790092494511209:97:1 269856391108977333:97:1 410670740403899396:98:1 191048286920872590:98:1 985030390363416224:98:1 225413476594509653:98:1 862089495852006894:98:1 400469162982758150:99:1 830273238957768127:99:1 275044745543444138:99:1 906456753305486882:99:1 286020849407714906:99:1 949953478516875313:100:1 340215771105005674:100:1 652859675013109739:100:1 390580305431566958:100:1 927125751180174436:100:1 4474466534648097674:1:4474466534648097674 7230080604330587633:1:7230080604330587633 8693326475774883553:1:8693326475774883553 2078661966114379956:1:2078661966114379956 2097434981017476904:1:2097434981017476904 2547665632163088380:2:1596140855 8663131866599875647:2:2943319871 1596268363820405519:2:1263435144 1392097971591004976:2:1179872014 6193288372047045606:2:2488631827 1771654745430743204:3:1210021 3801869133937307794:3:1560746 3458043034930345574:3:1512203 8643762179316517233:3:2052268 4349850709818091529:3:1632393 8226726395446345193:4:53555 4972119832937671055:4:47221 4753127229464645558:4:46692 9227520383973719403:4:55115 8232258990258643994:4:53564 7995027637485783889:5:6033 9581887892049865813:5:6255 3101639981402962842:5:4992 5327218631296243846:5:5562 4997017153337730674:5:5492 1599493225670899944:6:1081 1116673703450087614:6:1018 2615007764315199083:6:1173 9307555890155295408:6:1450 1831297514792600839:6:1106 4044119713448457852:7:455 9939505136115428292:7:517 1698859115105848992:7:402 4103505144028494824:7:456 1170852038883414342:7:381 1967475637983066199:8:193 4018775936296325407:8:211 2150361370860708206:8:195 8822098638550716002:8:233 3938982392456435129:8:211 4206521521465295118:9:117 5709180428154111425:9:121 6074224693649972077:9:122 2557824452185807982:9:110 5039973467298038807:9:119 2833498382835139801:10:70 6780777912230213612:10:76 9945895450794227924:10:79 6406105973464884076:10:75 3147783839054894613:10:70 5076581459181539156:11:50 4222894887075620908:11:49 7405412494869680952:11:51 6897555268038329718:11:51 1616028754210802079:11:45 7108451614429598486:12:37 1278408417478495055:12:32 3621809935243071588:12:35 7230008185374450540:12:37 8740411162537814572:12:37 5948779029788334843:13:27 7448104459711998179:13:28 2098386638625242854:13:25 2010168618938555078:13:25 1204177213609964350:13:24 2984857887195386653:14:20 5464185134934228885:14:21 7231031545676331381:14:22 5132749948697214750:14:21 1931660418113242149:14:20 9745430430637962277:15:18 7333900385581617914:15:18 1615612761676930254:15:16 4783240291589117136:15:17 8699908769922743209:15:18 5081116483172044243:16:14 2150292617771571575:16:13 2211899581534687105:16:14 6406696302418174904:16:14 9807257826379528851:16:15 7660988205110749402:17:12 9016634904492266940:17:13 6358928169285695242:17:12 3661945406307298974:17:12 5734752950526719321:17:12 5816206350007385556:18:11 6539322549908321844:18:11 4798826208343475253:18:10 6485929841297470597:18:11 8477700349690327080:18:11 4033660355346810561:19:9 2724478619655791768:19:9 2627059460452234753:19:9 4143000517945057129:19:9 3545634105790487379:19:9 3402084949781014895:20:8 4518406030234750014:20:8 4439196680184603477:20:8 8215758987966886057:20:8 5570854778415836856:20:8 7844718053011774147:21:7 6900678990937685828:21:7 5303227223111399904:21:7 6317319947224630131:21:7 3917644608149512019:21:7 6235054221455603620:22:7 6024927232291557844:22:7 1104011272391126927:22:6 8476883528558084129:22:7 4933952209264545840:22:7 9746768186082446266:23:6 7754140646180627687:23:6 7212975034901249516:23:6 2207906156608908230:23:6 8809911628324076572:23:6 2076581948219200675:24:5 4243998659776156633:24:5 4034363818000832115:24:5 9044458209709737837:24:6 4602992477648430975:24:5 9291582581262505038:25:5 4251153522615326911:25:5 4142689850828009417:25:5 5544394850300897943:25:5 9079986416207903825:25:5 6410749062452648307:26:5 7793939567868555472:26:5 5932230338311530745:26:5 4855585797963957157:26:5 3139381758764939192:26:5 1949148288381796985:27:4 2493117981706605729:27:4 4770216936750562124:27:4 1005817470166185274:27:4 3491699250327737183:27:4 3606180863785022990:28:4 5203961165702141029:28:4 4678258446024239601:28:4 3126532560382557331:28:4 9465644343727889692:28:4 2504255094501925217:29:4 7600421718013789892:29:4 6375881554097274016:29:4 7973799016326577762:29:4 3297396877716373365:29:4 9841425652781286261:30:4 4275668882505203431:30:4 1003427608932814351:30:3 6924945117058059590:30:4 9386293734980904276:30:4 7159484457424695203:31:4 5764241067749891536:31:4 7417998769260574599:31:4 6426240724007198821:31:4 4537142672316717215:31:3 3785231803025132202:32:3 8307659335730190253:32:3 4673863225796078874:32:3 2105405165827794032:32:3 6171413388254167114:32:3 1492495391852616748:33:3 7442811763960418738:33:3 9891772356235682241:33:3 7693707264898997065:33:3 3557617273064135476:33:3 4396352433182806481:34:3 6211819504697646748:34:3 4760134112608234738:34:3 9722585969297696426:34:3 4033635372400638074:34:3 5584583789024229872:35:3 4974470901603410141:35:3 6939971429652909861:35:3 2154938139489310335:35:3 1739012803813971883:35:3 6287340332495232504:36:3 7508689263037438717:36:3 3658744566368492206:36:3 3400781163123836376:36:3 5828066168074599215:36:3 4066407741004019199:37:3 1315588365287105896:37:3 9609431401622766714:37:3 1931510975512233136:37:3 2703208790820344249:37:3 4986165980896733968:38:3 3667839428991212901:38:3 6223259909588358967:38:3 1967146440953921961:38:3 3831375158962170599:38:3 2828247563559965426:39:2 7390414294789072616:39:3 6687164314995035706:39:3 6141598049327400464:39:3 8887430672893439960:39:3 7623273424632628539:40:2 2330876397980290576:40:2 9116846375255261473:40:2 3815247523286930347:40:2 7031010711559165015:40:2 6293940779796043237:41:2 1141891693731351584:41:2 1307628575664808632:41:2 5028693715595471992:41:2 4160700313271869537:41:2 8714550102404708246:42:2 2004702436629947651:42:2 5657319689756200377:42:2 2377385779403816451:42:2 8563467132717569557:42:2 2000294762402313409:43:2 5325501198759454412:43:2 2583522496229271524:43:2 9565572475074121373:43:2 1368505965909381389:43:2 2233074864031420823:44:2 1231356202424566530:44:2 3820884788500979155:44:2 6552931946773115715:44:2 2274485521974191251:44:2 9574820026611889584:45:2 4554407484764279689:45:2 8785029634045940481:45:2 6714964905248237910:45:2 6101145026411644307:45:2 7746603239137042801:46:2 9337000527217579535:46:2 3500158074753910057:46:2 6128562763307209133:46:2 7307157210029097843:46:2 8437465018667296230:47:2 5161456028285794481:47:2 6109822971519528457:47:2 6216744517407523750:47:2 1802326701740886308:47:2 4194424022556532641:48:2 8248340758179690822:48:2 1838918306852579034:48:2 6640299940570525060:48:2 2957302415264918762:48:2 1227383593451656491:49:2 1916845866812748230:49:2 2485903462721471373:49:2 8345844330004438548:49:2 9401996607615062362:49:2 6642366253890742585:50:2 7618376997499763010:50:2 6150502344494122276:50:2 1512143479307496958:50:2 5648140604622062274:50:2 9827485728956454114:51:2 1606115322206268697:51:2 6135741267149860993:51:2 5673526019078967755:51:2 7776256219008805333:51:2 2339475363127716345:52:2 5779771682211708676:52:2 1937003132192279756:52:2 1405079978747840214:52:2 5593546642058425946:52:2 5219094400050457141:53:2 9929147609551532107:53:2 8427803145180091033:53:2 4427685539850787625:53:2 7943138355128771187:53:2 6373469319218868799:54:2 3235296433655262518:54:2 6737197959780663128:54:2 3443942307102674411:54:2 2606814733718186800:54:2 4141639476431087788:55:2 6895067145229170570:55:2 8113014655088294792:55:2 6877583020082341805:55:2 4971524248559658448:55:2 4017513466549930205:56:2 9132168024578935223:56:2 4760489366593666588:56:2 3492770662340635522:56:2 9101501113160254758:56:2 1612076456034838826:57:2 7945520988376083465:57:2 6669694951016341477:57:2 6276177864782999536:57:2 7597521194227495121:57:2 8220235974472182502:58:2 2780936753383360826:58:2 9341671584005850257:58:2 8037723912651838218:58:2 9926140892979339080:58:2 4053837828864329102:59:2 8688781425301512597:59:2 1004592664197102341:59:2 6261002857339056531:59:2 9765537860927966873:59:2 3673976565976647378:60:2 5850266226357463851:60:2 7878982301174297653:60:2 7786314868556526522:60:2 6943640402828095676:60:2 4201915854383764473:61:2 7224858319895451486:61:2 9419257075958845424:61:2 3430940246012974058:61:2 6859215527833811665:61:2 4375411595874251515:62:1 1492738600597091113:62:1 8193381483958216684:62:2 7360211401381612353:62:2 3076589370485492935:62:1 3538614131065321167:63:1 7697532487608260659:63:1 6038801693865191748:63:1 2668944890091108094:63:1 2863386987964490728:63:1 7747307839404538244:64:1 7240765734258707294:64:1 2729333105507132098:64:1 8354907094425803920:64:1 3738374896576526044:64:1 3989779828563782156:65:1 2025203364675247146:65:1 9539781092560373060:65:1 7900904893562014796:65:1 1356060279157992484:65:1 7721820021767056506:66:1 6613343143933625876:66:1 3449012686437292939:66:1 9810085966090485042:66:1 3068927510292482461:66:1 5717832361765983490:67:1 1099486680155025828:67:1 2356585516093436930:67:1 8164697067958788736:67:1 2917129043735086370:67:1 8110760687894035217:68:1 4619502814886606391:68:1 3426816914869580418:68:1 4068131832547743335:68:1 2410561260235721683:68:1 7270443776589888381:69:1 4338058067791952404:69:1 6045648453262804447:69:1 3067804669052363174:69:1 9839057350612703055:69:1 3672456434892270545:70:1 4336297935027273711:70:1 7212534548775153939:70:1 1664572091319039435:70:1 2142756339150801071:70:1 5664107375208219408:71:1 5962789948162987663:71:1 2354631892370884001:71:1 5751412308649545739:71:1 5822954873236107819:71:1 8518814121933587957:72:1 7476851544779144438:72:1 6984424006929432922:72:1 4163321410713102037:72:1 1337658754575564276:72:1 2860007324422577208:73:1 1745219027533395927:73:1 8194548393926549607:73:1 7835094755791277487:73:1 3567865109702683123:73:1 7577378365137861776:74:1 9780621633634805877:74:1 1077846198702603477:74:1 9000472633490465390:74:1 7075110832868010656:74:1 5648418194707112106:75:1 4801275289353269206:75:1 7251871643457893927:75:1 1963640291750973915:75:1 6898277751709315907:75:1 7525802638119205563:76:1 2944027889638047974:76:1 4500922331005586466:76:1 7799494815221111717:76:1 9963955243671559958:76:1 7397798218482653726:77:1 6685372373549704965:77:1 8275826482656598198:77:1 4475547119701193345:77:1 1664174720477499364:77:1 7612816049084674644:78:1 4820871403933425445:78:1 6523938126508967603:78:1 9995127024284058366:78:1 5687670382202480604:78:1 9111495132845816654:79:1 9017405619994529036:79:1 2246829817916256132:79:1 7978523813382721158:79:1 8060113232744284938:79:1 1410347305354793832:80:1 6601118925774915300:80:1 2211025013594641100:80:1 7943383593017032753:80:1 3585621844097686849:80:1 1649335689183734755:81:1 2438196215143279430:81:1 5167973827308207880:81:1 8233465007835456536:81:1 2755585590955325645:81:1 4498619985811786001:82:1 5178908536999839725:82:1 3427135874076416482:82:1 2483978426404097439:82:1 5972930881860476414:82:1 2900560728151656907:83:1 6840675301709239810:83:1 6218758197054513864:83:1 4063682594517220035:83:1 5169699366668951022:83:1 6006322717401440268:84:1 2924686440616020151:84:1 4439460082771184347:84:1 2232865313858396753:84:1 5204517263444311806:84:1 3686072477018720168:85:1 2858850198716685514:85:1 7368225712429172735:85:1 2795796019400658511:85:1 6228727402740271536:85:1 1567265581466329512:86:1 6605602611528745502:86:1 8997551313449309721:86:1 3263610498585390085:86:1 4574245438544226592:86:1 9479312723099193261:87:1 5894297020438372666:87:1 9686880550134115346:87:1 2472365040989656104:87:1 2078683697329633040:87:1 9398038829918453393:88:1 1045148315368823450:88:1 4160122880762586035:88:1 2429008377926584232:88:1 9609956869552566366:88:1 6432076661225650897:89:1 1462622978394967780:89:1 9323912471023133480:89:1 2830251124368813852:89:1 9875320189872235035:89:1 6685867060675612460:90:1 6502375421907234338:90:1 8847154942828386774:90:1 3352843630868287134:90:1 8883586693518662620:90:1 6856998266442750595:91:1 5068720410159257066:91:1 4961704470263086076:91:1 5913928434730679079:91:1 2927770735488867473:91:1 4309941309545452428:92:1 4669908458506716191:92:1 1357886520498406785:92:1 4889134518472576926:92:1 3226542837555618442:92:1 1464922106839807829:93:1 3861573483362145023:93:1 1809503271892172504:93:1 3378933256183494740:93:1 2209809377247471658:93:1 4715627118722545627:94:1 6252154340841136104:94:1 4593756659698067856:94:1 5649347420185149275:94:1 6513968338029162589:94:1 5021094002752315647:95:1 6482292700046258807:95:1 8937459853865025442:95:1 8989069346180749185:95:1 7562463694199889543:95:1 5465130621125156203:96:1 4750820231174497225:96:1 8521253938795170827:96:1 5967540543318873396:96:1 3590736350500636137:96:1 5349647497893921504:97:1 7370085881094709638:97:1 8182565981340640339:97:1 1032068453654225797:97:1 7154257807668958286:97:1 5463581047899821521:98:1 7660652190263452253:98:1 6574922681730657792:98:1 4964608052021479602:98:1 1510757098287068811:98:1 5093026151403920842:99:1 1160203850389867908:99:1 1261204466722279593:99:1 5394902139347924451:99:1 3193144262619792704:99:1 4115747723216767177:100:1 7616718202195916818:100:1 8713264177330806068:100:1 8953985291971598643:100:1 8079877199223908846:100:1 97810234461855770802:1:97810234461855770802 57891175150423254532:1:57891175150423254532 11435614321839078085:1:11435614321839078085 31601738078893841626:1:31601738078893841626 79364737236539765617:1:79364737236539765617 97587119948945737500:2:9878619334 37784342111682722362:2:6146896949 72149373500475467390:2:8494078731 89407866140794782536:2:9455573284 67071356846564622625:2:8189710425 61281017731644351829:3:3942532 52308440540509995084:3:3739876 89554201740375348792:3:4473993 29101355008500806734:3:3075891 76352026279495779831:3:4242353 77701491024731753036:4:93887 64329725216705377537:4:89557 63061381065649440296:4:89112 65138656869414509007:4:89837 59527934416702082309:4:87837 83028034748776873504:5:9634 73112985950917729042:5:9392 86547909699607712074:5:9715 63120599328607893676:5:9120 75904876036616647725:5:9463 47604523140534758783:6:1903 28325341181528278362:6:1745 15148139814271668540:6:1572 96449478315725200190:6:2141 24049608405424392534:6:1698 92868479923635013507:7:712 11475598860691320056:7:528 21198399896780755543:7:576 65179003361243971303:7:676 65590499471103828309:7:677 49766048433049882963:8:289 39545833355189918591:8:281 56540315188875197475:8:294 58350497650530093922:8:295 25348042648689752786:8:266 55299119840991869613:9:156 31348898742599609252:9:146 50274137016718645317:9:154 46724180126361823861:9:153 58881658532461039889:9:157 63106372291525605955:10:95 64497446966685227692:10:95 53818272178583361269:10:93 93855181450132726546:10:99 60275578594100108208:10:95 20324588148254439850:11:56 18119602093985466488:11:56 19002056917809102331:11:56 62450371100259247150:11:63 57250490817871360561:11:62 80638604133390809656:12:45 69250947563200183276:12:45 35199685466016192108:12:42 51804839089102839411:12:43 37613850199188614956:12:42 86786186260495355434:13:34 41838749540467672394:13:32 18196869700937228010:13:30 65120799494991536593:13:33 35836321988732345434:13:31 74689272883566801966:14:26 58076621753976937642:14:25 97816338253615255178:14:26 39205541681735133077:14:25 42029579564729471028:14:25 36686195865179257867:15:20 41882094940549790890:15:20 42804063232678106144:15:20 15640495009221190979:15:19 94801538140236008197:15:21 10691923476159456942:16:15 81551717474727344889:16:17 78423028195640571820:16:17 18167138500569506393:16:15 98324468047931415563:16:17 24329475035402657928:17:13 87221255158584637111:17:14 12272544756578678667:17:13 78148268787815341823:17:14 58785128544286677831:17:14 76959718633953199639:18:12 15944962252637844818:18:11 32235789073736190339:18:12 82441628656803527014:18:12 84705679824002393852:18:12 93375706997929302824:19:11 87446157846748509420:19:11 90814751485285152573:19:11 63970253833581274691:19:11 99055459337285289537:19:11 56961343703549255373:20:9 27577829440895483775:20:9 50267403760571671869:20:9 98526261292324957040:20:9 48684064101665207254:20:9 68440547808911218297:21:8 72331786641411350912:21:8 13422390759754488328:21:8 67285696130983599569:21:8 65215826146745281513:21:8 82690006844580003290:22:8 67720905794655478573:22:7 40826379167434243807:22:7 35377532322828709692:22:7 75759033033378980457:22:8 62774122128803760985:23:7 50535911745316559644:23:7 21952143280668764542:23:6 62405962780011425288:23:7 67520919440275967316:23:7 17699314570046110204:24:6 62213468914017109009:24:6 12404003642568583947:24:6 67785358248287741035:24:6 95547644259390391920:24:6 35204712598036732423:25:6 31152102083998024419:25:6 92196821765106968050:25:6 56832824192209978937:25:6 73402612240341586997:25:6 36595630225878360632:26:5 41395482912499811542:26:5 72750562258253766727:26:5 73879305568405300652:26:5 36271044932767338760:26:5 33228515852005415914:27:5 24976666988187612193:27:5 13988943025696164373:27:5 63693279473591756042:27:5 29326647219537670252:27:5 31654322767328907885:28:4 74586367499019951548:28:5 15784173079832790677:28:4 22323433312202300516:28:4 32618004101999183975:28:4 54521472145119481367:29:4 37417481494751562798:29:4 54341806866081201205:29:4 63592916208884678380:29:4 37673086239999066765:29:4 19665475551125141866:30:4 46149688676012198547:30:4 95172580542022874127:30:4 27387323430833960114:30:4 70418459245079802721:30:4 16450927560589374573:31:4 92848080497630431811:31:4 58268270115724621661:31:4 50752739374939733236:31:4 69607961369641436889:31:4 23805054952692648796:32:4 68874827250045136190:32:4 86057257467266528284:32:4 94284857316711268778:32:4 80904224764426831905:32:4 66268217795959803928:33:3 45684337902643200228:33:3 54620777422129918745:33:3 53781472375528694149:33:3 84745303471403109019:33:4 47270161184868156432:34:3 48300794988116791838:34:3 87765451417403775796:34:3 90199433695636509017:34:3 88899612333123566968:34:3 60911997948219703614:35:3 55522709495941042074:35:3 57644570779941044446:35:3 66479478457889153704:35:3 22105735559675176388:35:3 98236319465461118067:36:3 69107727618055667602:36:3 58607628217034385155:36:3 25591564463336120343:36:3 60816749998635672037:36:3 55864616328153698454:37:3 25908875416278703618:37:3 41206662632863483327:37:3 40481591309282345673:37:3 13750465670801170088:37:3 92754904835915129979:38:3 48428213202282345524:38:3 47626493890759511146:38:3 81352232561232210885:38:3 62935960367011470735:38:3 21483816132269262751:39:3 96692514602291712482:39:3 84559477944621886734:39:3 87410124312945258394:39:3 62644520427858568443:39:3 51766174022827903497:40:3 29211851285708067040:40:3 95605651533939639430:40:3 41390023419781032802:40:3 48616332423674975070:40:3 17570630043540751164:41:2 52135814430087721043:41:3 11660336004577947533:41:2 76269105539096065204:41:3 68471350428399548672:41:3 76793490481689458175:42:2 20721621519722251475:42:2 12281951384216431326:42:2 91632055785278336645:42:2 33201651795486490733:42:2 87983156444708606814:43:2 52495665529640202094:43:2 21924962792999811592:43:2 25341238442155549005:43:2 55132977413532842310:43:2 64518327142991140072:44:2 50257008176653542151:44:2 51637074532098180619:44:2 64403613885584412461:44:2 91972140161426449015:44:2 93556303237482355022:45:2 30793217422693348035:45:2 25464389804863787513:45:2 53140968650734516450:45:2 82223580668927170941:45:2 50828963488916983586:46:2 56915897701449906331:46:2 40156026583116979596:46:2 67491644461827190225:46:2 43289409986985181607:46:2 50044674007760258074:47:2 82286875084628035484:47:2 34942673880725705536:47:2 65892447796255968891:47:2 38439922660021973077:47:2 44425769995934798229:48:2 34469734196116772464:48:2 26303924453489087230:48:2 31227207533603568898:48:2 66763417929708219731:48:2 93555195654639554979:49:2 50594437294585248377:49:2 46971642250439877070:49:2 95880791666566772364:49:2 46267895041699277274:49:2 13955157081542282222:50:2 34411861896858251262:50:2 77141862946891245552:50:2 94789359211124755370:50:2 18301167222494992489:50:2 66721401171471474363:51:2 47313749974257524604:51:2 57506393452054431663:51:2 68249220688400109590:51:2 24551193286436007739:51:2 23611045349870231027:52:2 77662766536877104722:52:2 23556637577325447616:52:2 13169180909103550343:52:2 35488451852932221353:52:2 52407044840246275499:53:2 12395213208421199419:53:2 93431491273409227618:53:2 53727981703767140096:53:2 95133188255336684010:53:2 72123029476213363306:54:2 14758283675061954444:54:2 44282873452142462737:54:2 34981804622097625755:54:2 94966184915929576333:54:2 20083399999455507350:55:2 56632994241495496082:55:2 77253280177002991610:55:2 60447157371140956768:55:2 18288550942445285904:55:2 53892421379092337242:56:2 59362193475490803955:56:2 40040952578798115213:56:2 99202449158275540172:56:2 37936531681722572997:56:2 72755965094835657626:57:2 67485937874603962601:57:2 16291501683033476768:57:2 41263711268407766965:57:2 28056746185231109660:57:2 36011352578910228709:58:2 30651519737098873082:58:2 50320644392846331170:58:2 11185200185539176643:58:2 53203426645098967666:58:2 28318970663654439642:59:2 36418143480092567009:59:2 17686829881432448495:59:2 35231267516418417333:59:2 59002511347481603562:59:2 27600526517633754919:60:2 55416776913736364368:60:2 54704746844793152134:60:2 70043787396111147742:60:2 39330508506150591732:60:2 21612106312610442838:61:2 16022237871325310691:61:2 88141695786854365838:61:2 89381202395696021734:61:2 76062133801424481630:61:2 33800338337497650445:62:2 65629079669677625975:62:2 42986631724901583726:62:2 85184927530242428135:62:2 22369205855345869747:62:2 28505244511423672880:63:2 94477843907830209204:63:2 83017528318205287097:63:2 53627851026072637902:63:2 54508584965996748793:63:2 64449175820327995966:64:2 64226672148622168590:64:2 67487169111069836509:64:2 69171694839465803505:64:2 46160432640451040238:64:2 96730236331076238255:65:2 31404010916433540764:65:1 63086847630067798672:65:2 76411793689825418197:65:2 20734492169580921723:65:1 20100197062967824361:66:1 37044778747606822900:66:1 98192619781387520317:66:2 63044281074721269417:66:1 26794268298979681790:66:1 89271938774487730934:67:1 77583412546639667246:67:1 55542071380096039262:67:1 10083156938162331405:67:1 79876248610453011892:67:1 56677438652107898454:68:1 79664059201026874485:68:1 82898740640382653144:68:1 75483631149828613643:68:1 37399053356733107372:68:1 95526555847037657086:69:1 12125605398615949791:69:1 55284776769614100308:69:1 37780375550687552800:69:1 50358159884700168093:69:1 33027448594031482351:70:1 71500996487331434606:70:1 80564510449919802180:70:1 91369210644630442913:70:1 76225578295109425787:70:1 31383644548207688381:71:1 86902159903640457379:71:1 29995528845937817355:71:1 18266179399142308032:71:1 43792762628290886790:71:1 61037334292567049968:72:1 53432339971292606884:72:1 85560936918435064467:72:1 67030023699517739755:72:1 87290136051554600264:72:1 39023034281501364229:73:1 96725556782450373213:73:1 78527323731629376220:73:1 66785694786796094013:73:1 48584103615237199901:73:1 39918484409390520826:74:1 20526668646243259559:74:1 26039323227860192336:74:1 93255653597480685859:74:1 18855450485937677029:74:1 69693724077505354740:75:1 54592465746112175794:75:1 94574392285834320579:75:1 92708545115504696859:75:1 19113619789644321113:75:1 54358179929039298179:76:1 84333557647708526796:76:1 57056842988570067385:76:1 99340755771222703237:76:1 95884126474069368100:76:1 25421136473503365878:77:1 45669499901390969611:77:1 26611624218226409872:77:1 17340007504205687178:77:1 34558541542013134758:77:1 58365603196199875853:78:1 60979250628797714570:78:1 73641347586945251215:78:1 85418735596719362513:78:1 51595222633145487297:78:1 39664777591383278510:79:1 31334643674045395528:79:1 81620513587367642987:79:1 25843058598416118225:79:1 83137949850564938057:79:1 81525666415375915183:80:1 52439616968114888557:80:1 77208365177336485400:80:1 99092212956016605224:80:1 42354560016353504300:80:1 95167088812608899732:81:1 31390223260114741946:81:1 85378342923967601855:81:1 25908572423764052847:81:1 70986812469994915089:81:1 63657138944098895008:82:1 33474474841006895927:82:1 94869218619864803377:82:1 36280835940466886464:82:1 52146590030975907615:82:1 43175305135367884396:83:1 88773347629199293555:83:1 11347879996807276838:83:1 38330970475336719786:83:1 68183530861716182978:83:1 60267502612884526223:84:1 36435161478120031179:84:1 47486149338670818014:84:1 47705821878114051548:84:1 32326581937395713195:84:1 34028686181274848345:85:1 57164774913984619710:85:1 62216207904046526890:85:1 95459575994277094630:85:1 70977355673184060382:85:1 87376358968069271964:86:1 54304859203683017941:86:1 49291373485513503884:86:1 93438912962089418169:86:1 48389263655063093797:86:1 35319308071262350231:87:1 22350250436630949976:87:1 71575400345462513619:87:1 49901282299207544553:87:1 31820277228425413545:87:1 70028877377859237666:88:1 75935469836312735585:88:1 13638316261962582365:88:1 90828512566358606578:88:1 91956573928385021184:88:1 78450433576919632146:89:1 44931061752198225014:89:1 77876767316645927012:89:1 87364711340866249909:89:1 80444199093195563101:89:1 75616926303286747107:90:1 78211853684244528040:90:1 45023376892009728049:90:1 97085900859172559023:90:1 59417626299331228507:90:1 91702741184084040131:91:1 39030146244597466171:91:1 54807583128079569961:91:1 92211159380286682440:91:1 58207019460539409401:91:1 94113887116147608909:92:1 80765009628803420208:92:1 16600267202401512614:92:1 27804318255743664728:92:1 73238617339726795683:92:1 37394841086251265388:93:1 17931266282466160545:93:1 65375474495822010763:93:1 57762396968760938999:93:1 97373355911415105972:93:1 88265022222699232582:94:1 49276179545417767122:94:1 64792375880087349222:94:1 12114019762293979381:94:1 25726601205540152000:94:1 90623064844084248776:95:1 58520021479003848222:95:1 87646942169290465875:95:1 29475937776984740585:95:1 66852091706307683459:95:1 20244301158932770733:96:1 91125548361623060181:96:1 34762140910771640179:96:1 88859876426116829658:96:1 54096921852594631748:96:1 99666524047538199878:97:1 87573592864048983724:97:1 91779921283429808374:97:1 30558253000409141120:97:1 57856743506415513800:97:1 43590460093165474370:98:1 82206555775286404975:98:1 43306008713448647038:98:1 68742417493709813960:98:1 45032305094442342310:98:1 21121553688852847967:99:1 32311875875146886207:99:1 86868959538858403066:99:1 39082565994172931559:99:1 79312431253451117399:99:1 39949136450572185803:100:1 34186195643134600820:100:1 76855310459794213419:100:1 81261841993923419842:100:1 70881083293732157607:100:1 651319039610381839491:1:651319039610381839491 851509078120361530039:1:851509078120361530039 530832210159293467905:1:530832210159293467905 575995355628499701064:1:575995355628499701064 554310123818681657437:1:554310123818681657437 866269947126101429956:2:29432464170 873379849875775610099:2:29553000691 964141014124837050456:2:31050620189 364715392767986309574:2:19097523210 153579499775975919987:2:12392719627 244740135958130834742:3:6255111 391396826698480208193:3:7314855 142832382390311107698:3:5227277 644060095669967756682:3:8635923 681912830651140078248:3:8801897 917907878755792335275:4:174060 443846957407166499792:4:145147 407691310198645463812:4:142096 590419683294499575217:4:155879 443337711361411724628:4:145105 773465668588231748951:5:15055 934273331163105736062:5:15634 191062421116466058458:5:11382 753938673526192195576:5:14978 344167702308124699418:5:12804 694641514635487328065:6:2975 128720902210376045935:6:2247 646336763990681025177:6:2940 123171171849710836270:6:2230 282107230480193389221:6:2560 596251367576497326306:7:928 678731320162590215122:7:946 897408258751529255674:7:984 353316182782171897554:7:861 780424267368580885563:7:965 364604863630231202637:8:371 756064014038573585283:8:407 298881276363981454095:8:362 870852491855607677968:8:414 597114593856469940102:8:395 466349196560929922813:9:197 428169505089631352510:9:196 360768955258862730159:9:192 572400085955568579399:9:202 379979468742723406410:9:193 299397669284086391780:10:111 894287555282219898989:10:124 255643662916111980796:10:109 993330099268954006773:10:125 755998746377187448535:10:122 600974674054689114342:11:77 290992117752938540761:11:72 530320440358152428739:11:76 213465844760577357153:11:70 987109567605308323304:11:81 657619950598528461951:12:54 715601544240874549493:12:54 612970011732211754114:12:53 777169657177669902445:12:55 428957746159454651372:12:52 177307780969590419920:13:36 921748840137678537584:13:40 571170984023662307110:13:39 782651636235803921831:13:40 406787145115817712606:13:38 995052995652825620557:14:31 585263100312073884405:14:30 787788951280309696123:14:31 239004133089945409691:14:28 554149839002448249798:14:30 757519414535864684539:15:24 132874831390782364222:15:21 630674244970474580697:15:24 362829998084414005365:15:23 670242100046652240595:15:24 430439058214112526393:16:19 586863388229860768821:16:19 205686960778878068055:16:18 333435211335041530264:16:19 661875762433254545497:16:20 955903432663273184096:17:17 359673876919692428395:17:16 712618440490641334506:17:16 301809551365930780840:17:16 947909931444910246549:17:17 398052695798155940708:18:13 929283989616882998079:18:14 792572202427004490778:18:14 339836197962305104658:18:13 138720882653522674389:18:13 932385699419701525141:19:12 979579637440408130214:19:12 807540488203552055338:19:12 470693635866958784393:19:12 384028499018574791124:19:12 311869755240564357673:20:10 535677221919205321249:20:10 899678167740356507039:20:11 388624803464930379477:20:10 650436532323310164641:20:10 170947762065793582193:21:9 490391978079607209126:21:9 164573087201168305495:21:9 363458400695750001159:21:9 947265737157600213447:21:9 223150367854625230671:22:8 334940906959548666440:22:8 155093831068184191359:22:8 645317980366556458468:22:8 720099856181031182307:22:8 878715036217279813540:23:8 839387719271161540318:23:8 303822796403947424536:23:7 474460398250659795127:23:7 608442011202874636222:23:8 833258881900141292839:24:7 580150635602216619670:24:7 824109182998790659529:24:7 241097983559579196317:24:7 782638802587649409909:24:7 181577896946354681775:25:6 122956328660752454988:25:6 681307233758453085107:25:6 430133685035621210450:25:6 996684912015596373119:25:6 258535201678797066281:26:6 188057460627814268273:26:6 843606060483767769716:26:6 919442182160924357071:26:6 640180473358371875351:26:6 598246156314236901367:27:5 558163570058936352918:27:5 271142062301889648854:27:5 351434573690738172415:27:5 627516973564395419125:27:5 185847494129109725309:28:5 828682571796322761409:28:5 721576750495350959403:28:5 131212027719003851947:28:5 735569441350603776992:28:5 873935458629444233080:29:5 552501129410729956536:29:5 714974990416808574269:29:5 461819666344733942933:29:5 947663716675930781976:29:5 108864418143923174070:30:4 413273985128730183908:30:4 691219106358762868343:30:4 766551734494499298175:30:4 826557553507586138489:30:4 119589555182087596203:31:4 559718846424269048729:31:4 342709311477814565069:31:4 360030897741961581648:31:4 190108266979754034467:31:4 662493550467325923066:32:4 285124802022053450554:32:4 796508632132053597338:32:4 364785798791100066685:32:4 662104194539213458380:32:4 507306308811839925210:33:4 729867354123490770697:33:4 489755546794773767310:33:4 511646871614596802925:33:4 676870934555341645873:33:4 995006200030523211727:34:4 596525907547490398793:34:4 464529328128724867347:34:4 840886711620255621598:34:4 853698499612596425901:34:4 367723603788273358191:35:3 163253338867243355689:35:3 336552532458308806298:35:3 200092004016080397810:35:3 778960927894543335665:35:3 167179413952275897236:36:3 254283337130817491297:36:3 636185051693878759410:36:3 819266606700404849358:36:3 365389455524305049761:36:3 725594875240666054048:37:3 590770448792195875180:37:3 245442679544032538010:37:3 855393782799681259610:37:3 315813239714964426029:37:3 701974875397270453367:38:3 138327651938525796718:38:3 441257861055384539017:38:3 277883377618012151913:38:3 446577596565917270654:38:3 429980095418733727143:39:3 841928935657346013481:39:3 777550661095377700535:39:3 856812378059532117826:39:3 386316335030976633640:39:3 495791280043625497292:40:3 727236384501512391337:40:3 898574613483587678623:40:3 135427045062135788049:40:3 114558509136546503569:40:3 135618639696216299214:41:3 319871615842140818112:41:3 729206011498138794078:41:3 921806900154211030905:41:3 897508322547448977860:41:3 271241002505288182177:42:3 797057483777336785999:42:3 908912194776932655129:42:3 260664194442829296361:42:3 436252793841477503030:42:3 274832044612324069000:43:2 503108277828986655227:43:3 764868277261493395776:43:3 685000301532990029124:43:3 402604939336423832177:43:3 366332200919368316129:44:2 484756228738939677892:44:2 944428526625865865829:44:2 582758316994139240043:44:2 474631552036728244401:44:2 730122427939325371786:45:2 326649321521371861541:45:2 922079025621587680047:45:2 456678444967998133399:45:2 559890227548272793559:45:2 824852043076489117326:46:2 803440763174959640956:46:2 600845945010780422099:46:2 317397287165363404756:46:2 420371913305410539100:46:2 743354645301944945789:47:2 867172087097618965912:47:2 235523286168877143692:47:2 704665435255482188129:47:2 175994163586029621787:47:2 847831443422669753198:48:2 561067288067622037601:48:2 509130543231693759250:48:2 407909725397258742698:48:2 300657878311644241176:48:2 106320936550156547551:49:2 718879207265693860540:49:2 748168711082517847012:49:2 800384811138967657067:49:2 476198459047231146562:49:2 906916429208457260510:50:2 854388748760987703873:50:2 137705883486555723471:50:2 701182832913934505767:50:2 126150324106975509825:50:2 275104532288760960086:51:2 816916147882765250337:51:2 321034086396053980300:51:2 980142442991700082023:51:2 537745759949075641575:51:2 865335617982929433657:52:2 976062116124083481058:52:2 245836072478370260455:52:2 771691438048643142217:52:2 292018785708096645507:52:2 360046111080738895623:53:2 696722231984051760629:53:2 363515007272779240106:53:2 457130125643906953778:53:2 839343175620217618752:53:2 437997405228580813228:54:2 685773896090289459538:54:2 719229265751044278940:54:2 128646741551781437673:54:2 913371165614401344126:54:2 156221320466974351718:55:2 762445667808364467903:55:2 883582457094567357892:55:2 847268379525354712759:55:2 699642569511485632478:55:2 843348776849021274151:56:2 382665260816875708033:56:2 983947083534268621835:56:2 862272036869111929323:56:2 703963683274392866219:56:2 243534325666759045738:57:2 683239180895649302775:57:2 742789145090563029010:57:2 860023329425121984617:57:2 419802914986163907740:57:2 493124380423723073261:58:2 727507269130104590254:58:2 737220763454988027103:58:2 359551901339109608748:58:2 547866094913609599692:58:2 110108041054559584487:59:2 219146972929898613742:59:2 361012314087238519192:59:2 857957357880243551166:59:2 945881055783259987975:59:2 482065117423103379328:60:2 373722580270682491546:60:2 642792774406345512025:60:2 354563655403985964229:60:2 505056795980362232172:60:2 993631902045306227495:61:2 498373497497818180858:61:2 802490412709344802727:61:2 331796803331964097158:61:2 165856254958097229922:61:2 380491855047165565029:62:2 911089205041417464685:62:2 302488977150869816787:62:2 523287273228049609350:62:2 256113622380649878958:62:2 380306137473372449888:63:2 301793360414148896553:63:2 348137715242668347674:63:2 968295836867104956131:63:2 502499965224488062703:63:2 720910919375033429156:64:2 645707525257486239019:64:2 321796378449951734371:64:2 486672516496195088899:64:2 520263040654814628870:64:2 539033360871309219621:65:2 598140462239264006870:65:2 388391528044124584727:65:2 139421791543938053591:65:2 218093244540162210657:65:2 737288976492796859555:66:2 437049144220882148276:66:2 783934982860155264413:66:2 527382778839594121243:66:2 274143340025992609282:66:2 518885924370578641139:67:2 552929819418210180213:67:2 552587872513318050722:67:2 203685821057662543224:67:2 782859219349726422990:67:2 466482862178220902424:68:2 730805749748077040522:68:2 427716299203368715110:68:2 969489155451173733567:68:2 630768404037383727939:68:2 690462229559355911119:69:2 763541665280828777585:69:2 220113668193721993308:69:1 964973599019936087977:69:2 694718137388241592066:69:2 198608115903379427756:70:1 525125833977775590684:70:1 230861049900212479263:70:1 683364736318292287584:70:1 716479139621742569716:70:1 261253868618875417806:71:1 708863032488424361030:71:1 590038161697758277170:71:1 292138399777830386581:71:1 748602720113487243056:71:1 541130117012886109090:72:1 236851668145232969541:72:1 309432186515065744334:72:1 238301142825256678176:72:1 216320952435991768680:72:1 322192019410461338802:73:1 392072250983582830701:73:1 998237055835764444809:73:1 573841895629167339838:73:1 172849983670013221764:73:1 205172735761742346110:74:1 289384433058367477658:74:1 912990292096841784676:74:1 306756773080891327709:74:1 894899001466575640769:74:1 352015814052117387641:75:1 784536043778571058716:75:1 268896277666672629868:75:1 677414385823395078987:75:1 985803251225456022308:75:1 797722904227315752681:76:1 705144940795781796539:76:1 898665146616588418307:76:1 390799421002078694864:76:1 452501821620195716988:76:1 446433787082709190266:77:1 526946687092571788513:77:1 546315636554189923807:77:1 346385597954642695345:77:1 650882347168329862512:77:1 189071914622810848446:78:1 452392678059709513406:78:1 159201408943070145230:78:1 501652824808071103359:78:1 563134027602458036361:78:1 463009844575931513414:79:1 973917663244397265364:79:1 140387226309682556098:79:1 530015364697505667867:79:1 450159064159054655304:79:1 789321422605397802980:80:1 371503809988440273167:80:1 657926133270193422104:80:1 583353982965257997432:80:1 492701462426875386456:80:1 389810354154980696292:81:1 214497200762390015128:81:1 221022909412714631884:81:1 261332935685460617937:81:1 595499193252330884772:81:1 240285913852350990731:82:1 114977381596210055513:82:1 365602707259166129657:82:1 739544255019039417402:82:1 623882702987694186037:82:1 571871264190082557184:83:1 502553053546641097962:83:1 511845855105518500775:83:1 670440036855758124020:83:1 457720812767617112026:83:1 937930565253337167041:84:1 482565712287021699071:84:1 224509347455258115671:84:1 421770964398829425106:84:1 762507912023733366359:84:1 962453628071342716035:85:1 373644980676192370549:85:1 897719462037502983794:85:1 853651155469569417232:85:1 646830147641772022064:85:1 993639737229591371051:86:1 298664635039836205393:86:1 713386085842023431258:86:1 397140978834585948609:86:1 329039429926198609513:86:1 471789510581950652147:87:1 199586979174076454129:87:1 997671947260088185458:87:1 929801595884526025915:87:1 687128135225143332901:87:1 817940685853911917207:88:1 594009674521090107627:88:1 376125388017576251788:88:1 219837551018517647865:88:1 853204287940778527365:88:1 924012706829585813339:89:1 890937514479333057505:89:1 772149022445624454684:89:1 349872026361140241064:89:1 643025787045423196057:89:1 588227511439673433494:90:1 338804127592962202837:90:1 697700544461072358302:90:1 629063513555030045775:90:1 895756682560687162811:90:1 951277400761787239870:91:1 391889851976371598112:91:1 839952863082133441772:91:1 108077775568757383943:91:1 417675428615147349657:91:1 303434694129883100658:92:1 712745395681027903963:92:1 820828973566034171062:92:1 142955160695931081828:92:1 717714948576054539764:92:1 494138409073923145950:93:1 103806891664408161802:93:1 336651482525704422939:93:1 698151031388806471954:93:1 767743686009211611053:93:1 788160900202639574729:94:1 325679179239319195774:94:1 932812066015035809156:94:1 215005496967362341835:94:1 420321619184755556927:94:1 536503231153098822786:95:1 303309240453545590053:95:1 907152544450644053713:95:1 603420994310748501991:95:1 487506684137482182226:95:1 515978338354721300689:96:1 432259435803008128795:96:1 770203963495466258247:96:1 772303943022465114718:96:1 455059411787025358856:96:1 982306744423298129302:97:1 409672683017901803110:97:1 186880238657925932209:97:1 746954840072129531981:97:1 658986678648967000273:97:1 113333545906442173092:98:1 203280484097524776150:98:1 591991380087021444265:98:1 626733688641559007301:98:1 423213608105730095774:98:1 480305079304732456932:99:1 572126718731371661707:99:1 390265744186577648024:99:1 873771580030126941983:99:1 768667727600749408542:99:1 642217711258278936548:100:1 441879753603904513400:100:1 464780048558406126700:100:1 551259385209482449907:100:1 176771620868460159159:100:1 4465067316946412088324:1:4465067316946412088324 2183604129177371030904:1:2183604129177371030904 1653106438111462918175:1:1653106438111462918175 1978374048589862199967:1:1978374048589862199967 6428294421885014806928:1:6428294421885014806928 8153734026204927451810:2:90298028916 1720732179697263566324:2:41481708977 9376824648930810579658:2:96834005643 9533368883687849243151:2:97638972156 5156098139158114119168:2:71805975650 8855662332829248301306:3:20689040 6965962619439278692198:3:19098256 5347443300106329430452:3:17487003 4243026905062529482189:3:16189195 1483233312982480785290:3:11404331 4219159586260322577935:4:254862 3107871527795144368020:4:236110 4562210351548730168402:4:259892 9836232776802480608416:4:314925 9530745540967171545771:4:312450 8124183507366568862988:5:24096 3008697102770104387927:5:19754 7928373245627211759902:5:23979 9818610428562025302597:5:25027 5567657434196546794342:5:22342 3561746214813861362756:6:3907 7353113417996047816597:6:4409 5032651680625300715994:6:4139 7340443602983260647147:6:4408 3458072535110112113339:6:3888 1847847217568949352042:7:1091 9904603215057978227065:7:1387 5344571761094572620322:7:1270 6611378954323102386938:7:1309 1062592831249760576109:7:1008 5500737693491644840365:8:521 9483683913049625396286:8:558 5137390776815148722409:8:517 5613844762093547955363:8:523 8775629686943282504959:8:553 6023962376200390179647:9:263 2842180222020121330400:9:241 9990783204887409652415:9:278 7153585784580660899570:9:268 3636529444352275513936:9:248 3248248131327632940304:10:141 1516209934842191206977:10:131 5998303620947817429779:10:150 6792815085091747230682:10:152 4868966179669601244344:10:147 5425502682566546523833:11:94 2007079497310753485967:11:86 5609182784556288534415:11:94 6162022924420547596673:11:95 2425987465233663982257:11:87 9416328982879251721599:12:67 4754552053748767854760:12:64 9851041897941257689715:12:68 2898022013055430271352:12:61 7887677758247065490110:12:66 7130205775138443089490:13:47 8888606635087193823149:13:48 9585484511863297119913:13:49 5622850579867657989936:13:47 4151638234519472027937:13:46 6460948632043811199445:14:36 6561931102464761136051:14:36 6353059950529402798133:14:36 3543234851097230085117:14:34 8424749668505216972754:14:36 6938527210303089712308:15:28 2947141079967666899528:15:26 1867812428998632244830:15:26 1767162062402523596231:15:26 1533936395895274883082:15:25 2802455779939830762337:16:21 4484800002323794707011:16:22 2775091952434974670212:16:21 9421237490018860740157:16:23 1827944568150333529640:16:21 7717569068530528883427:17:19 6127912823264785807928:17:19 1521660682773852931206:17:17 8660942645049138875391:17:19 3731541466308721283937:17:18 3140039229518049651190:18:15 6627532882886691351240:18:16 6257885068312316054763:18:16 9951345557119270613504:18:16 8129227001714116403937:18:16 1211525831022516960528:19:12 5669748219139315404099:19:13 8308023303644499699783:19:14 5559747990511670943636:19:13 8683372615525406829015:19:14 5731807115600416382004:20:12 3961473616750149270834:20:12 3484668758678599979743:20:11 6979489127469570615047:20:12 8106911041093240086751:20:12 6606081581434214187696:21:10 7085799612472476202703:21:10 6679284070107189559526:21:10 3717338124458478316413:21:10 3007886926703226837051:21:10 2459914213063479576531:22:9 9261685735590537939503:22:9 7502625226179437776973:22:9 6778647557378744646241:22:9 5193478430678452603483:22:9 6124066403809853261450:23:8 9714782165301817945131:23:9 3675362228782401154689:23:8 1848352520169523729447:23:8 6246516016106933153221:23:8 8596464401890520368856:24:8 8045538845102825010294:24:8 6310660320341120337640:24:8 1723826999354045382290:24:7 2836123927444043135086:24:7 4712993057730380743190:25:7 2005567622726045409426:25:7 8399359025597170079766:25:7 7750272708653117318182:25:7 9128357656690522894161:25:7 8026241652725811759720:26:6 1617245967162509972367:26:6 3166155124513082748160:26:6 9780586541066631891262:26:7 7259367410138602430490:26:6 6267401439097345778817:27:6 5590558681393266385812:27:6 5509766524161271417333:27:6 3701979854642923646221:27:6 1912688817161928088860:27:6 7934290388410149471492:28:6 6751165536350123529041:28:6 3719678714817174812358:28:5 8708837148978749811329:28:6 4373382403568585372229:28:5 7834016506605829869583:29:5 8166996716644615582842:29:5 9748341727697267836707:29:5 3191893694166104414172:29:5 7485856899601057969692:29:5 2038047299092190523768:30:5 7494529759575694280322:30:5 1950005856560604944429:30:5 8374384429377318027258:30:5 6365130422677037746834:30:5 7798596814454776956289:31:5 6431756639387218544380:31:5 8252333773216405580554:31:5 8121810552215582746031:31:5 6122302163637401438547:31:5 9396371340378211460616:32:4 4901881423329414418673:32:4 3754934913771110947637:32:4 7411146785033484111616:32:4 3383933958339263585224:32:4 8760919134244001224290:33:4 5358894908558239906395:33:4 9184351449238012992963:33:4 9373254320598756190796:33:4 1985337786002111746472:33:4 9326887638502054344259:34:4 8661169905092300813026:34:4 2245445160846312989424:34:4 1948216327469762458364:34:4 6566676538424215193646:34:4 4633079077952403046795:35:4 7823946518127622322147:35:4 9079793719772084044081:35:4 4772495615042380996361:35:4 3375912035505067504682:35:4 1033447505094894945961:36:3 2125789288829891611151:36:3 6387786710864665253810:36:4 4186680627420117957776:36:3 8414348015108246199412:36:4 3249394246532626642645:37:3 1208070184450195292890:37:3 9139737747693689710967:37:3 5117911402142920239937:37:3 4162288094458816975507:37:3 2733678984871942515435:38:3 5231654085507951559969:38:3 8388604382008981791313:38:3 6529366712550898078441:38:3 7445411823950517849074:38:3 3383106194813328965744:39:3 2421349896872299078225:39:3 9252682143518267745783:39:3 7086813601659776336036:39:3 5592760198461582906102:39:3 3949683668831268131889:40:3 4889152392724909925907:40:3 3080793290664977783042:40:3 8869034414732280716529:40:3 3882906576870676186501:40:3 8733917258763340475409:41:3 8920385540456255651140:41:3 7067907600419377801892:41:3 6667931744694084125791:41:3 4345955175227885350927:41:3 1043358304008460634704:42:3 6997842316921899279785:42:3 8943480680477702413583:42:3 3021743813843053556533:42:3 7671102426103270820245:42:3 8938406115877028452109:43:3 4014071775837844231344:43:3 6319708147701848261940:43:3 4042404647240842769908:43:3 5106904753723788533630:43:3 1516502243464699610909:44:3 7886543072789652713185:44:3 9275653241667488985487:44:3 1606410701154713880421:44:3 5851249344922646824607:44:3 6004675721986560039291:45:3 7853028954472753827805:45:3 7537020749581278779474:45:3 7883468121465025088669:45:3 9616929533555961325496:45:3 6133495659405764609445:46:2 4385747977154853894706:46:2 6916502514158557034626:46:2 2694850573246352959059:46:2 2143544000874021485656:46:2 6294759349966054204478:47:2 9488166724106620624600:47:2 4400962020111470709264:47:2 1038608900581097210663:47:2 9904509769204829986755:47:2 6153363332846500826352:48:2 9124262836307009401618:48:2 3880315704161174086890:48:2 8574259443775140474766:48:2 7930683771923890227509:48:2 9414387266467310867648:49:2 8639305657835515208732:49:2 1282827913473033566633:49:2 8544985099159639039169:49:2 5842127726844878293760:49:2 6421963444248397706017:50:2 8228195715664494403577:50:2 8075997142485476816718:50:2 2833922116407404845150:50:2 5056874033965684488122:50:2 7527537319950844886668:51:2 2494466640419870533252:51:2 1487189987676093961960:51:2 2868448547640036583720:51:2 4638369596003684782557:51:2 4910178949949893525211:52:2 4870980501104384700689:52:2 8189382204274048090229:52:2 7573772789138030676166:52:2 3122924769619513864049:52:2 6002596141556669755256:53:2 5239586625238173140438:53:2 4842500468023563881971:53:2 9950497654951408072262:53:2 3305188313901627746957:53:2 9040665583968398784709:54:2 7290671753434590520994:54:2 7004828366944868235365:54:2 9194037893618480856850:54:2 7408011913835029892369:54:2 5609096538282091956997:55:2 9082068600725434323661:55:2 5291885561275578180183:55:2 8342275628085289008068:55:2 8751455525994109309265:55:2 5498880092536606818231:56:2 6161378887762878546783:56:2 5123548701384971139441:56:2 3572939646565128119636:56:2 9437842106071952630028:56:2 4075195189989544169347:57:2 1673411201197044666457:57:2 7210421292263035578605:57:2 1807884328105720761500:57:2 1582230640168392842750:57:2 6173988712782637794173:58:2 3834769300283030003183:58:2 7095557447758729018114:58:2 4326359946119411229569:58:2 9860508481930119727516:58:2 5125056482479008624065:59:2 5308351494125867138698:59:2 3171951818442173606000:59:2 9695433933776653124781:59:2 6644898268592806976219:59:2 5874344919438947257283:60:2 9129645362742786697334:60:2 8285861775080517601544:60:2 4404657251399483904109:60:2 3166124783707828005820:60:2 8218396649806524852580:61:2 5314144664986166327951:61:2 5042034019540909458600:61:2 1179258201347629640945:61:2 7644450060424311597517:61:2 8914592201668633346468:62:2 9960271596684698503527:62:2 4256773605584303292807:62:2 3405167920016007734921:62:2 7025481489825724878369:62:2 4107216368857859887598:63:2 1148935199854652242965:63:2 9079418042188800996235:63:2 1875902868355838723633:63:2 1109908902651464649709:63:2 5760943793385555234756:64:2 9851332861126452520249:64:2 9146490935452909247229:64:2 1617735520059014353851:64:2 1053268881119013482775:64:2 1300069685286128282394:65:2 3409710769855729552575:65:2 8557163493567814927870:65:2 1857953718737056427191:65:2 9337643141110908060474:65:2 6050390686176898975417:66:2 8660618820851428919237:66:2 9805924783492433856561:66:2 8057749654777208905562:66:2 2769299095672586228353:66:2 3629434758303269949003:67:2 1700057866326230477821:67:2 5524158482984070357310:67:2 2413386416800667537036:67:2 3408171233952352269044:67:2 8130603517386875863881:68:2 9602559643403410319342:68:2 3757804506135159972766:68:2 2081796506541559659346:68:2 4910102431163145002579:68:2 6406357405817909249969:69:2 7787166255038547126527:69:2 8939072923140671555983:69:2 4952617310136389715557:69:2 8907551723633238095154:69:2 6650442433931342918548:70:2 5461126584581268650710:70:2 7137363851942821590986:70:2 4269249880948187074953:70:2 3011376458900561542788:70:2 7786989904386297407266:71:2 9414573689034379665452:71:2 2659801905507614265524:71:2 4716932509440662933638:71:2 3679980410710792213331:71:2 7586971462915856495826:72:2 8793769204216766449298:72:2 9903308397818942171779:72:2 7471553845593301634798:72:2 7450372642220108963419:72:2 4042376268220011757299:73:1 6226085957085952570549:73:1 4249217518446335630653:73:1 7195612094601583321335:73:1 2651640974133370160168:73:1 9745478641169245485489:74:1 9229163382719274307125:74:1 5491173002136993369508:74:1 8772532691828457259108:74:1 9158836788993140364041:74:1 1378699056868279195854:75:1 5335483883406348279227:75:1 3220264526847546978592:75:1 6493212247069798923074:75:1 5400546106675686899689:75:1 5453528288926378994006:76:1 4882011884680643093078:76:1 4068381652284878930118:76:1 9740635315321421460126:76:1 1766841885235218133774:76:1 3650885667164233521112:77:1 3371197882363564217212:77:1 5395468598279792922093:77:1 4411887343240100882077:77:1 8961263431505014000901:77:1 9274675734720395304668:78:1 7293443673873467427424:78:1 9506312499960838970171:78:1 4424662265899112395143:78:1 8622754196771733351935:78:1 1331683115072174172064:79:1 3788537880884892640190:79:1 5381781894191346667914:79:1 6619367850412888998545:79:1 3934439800264099958707:79:1 3870009609763881720176:80:1 9224331588884076139809:80:1 6977789173668808597898:80:1 3313237313903759212502:80:1 8767586729915325478664:80:1 6722671798596075373925:81:1 7927068256314861023091:81:1 8423758693175890890275:81:1 8653919783531662531191:81:1 1352599438258406762817:81:1 3224181079251508967741:82:1 3862031220293465453732:82:1 1923765217019870141340:82:1 8304419048897408060339:82:1 3935517857095859349039:82:1 5148638408209144822868:83:1 9157864995937470313556:83:1 6305316407364889662573:83:1 8201659747004022035396:83:1 9270374196231651880801:83:1 8961530883566646423310:84:1 5246980718958987320337:84:1 6277577544629835078833:84:1 2429838443604210651517:84:1 2620763254937230871213:84:1 1741189037959961634447:85:1 4787464016685029068279:85:1 9481586052823450779264:85:1 7443522383195041955170:85:1 4915814029901045399555:85:1 9503071879749197156392:86:1 7324120249873586693652:86:1 9218863070201813645347:86:1 8075139144602279554666:86:1 6648978557560465880027:86:1 3216609962967338675040:87:1 5127192524440259161364:87:1 7043054506998098631563:87:1 2456880731088811541985:87:1 3591214882445031527582:87:1 9853541184437124013540:88:1 2371508672036043723396:88:1 5752937613334544340863:88:1 1441458001810697615187:88:1 5120684895091091123697:88:1 5535747752599944894534:89:1 6473247034310342242149:89:1 7117719633192320128661:89:1 7634126600882482888883:89:1 8029981068603914273554:89:1 2942355151375760175888:90:1 6595730995842192364951:90:1 3693362373085601473292:90:1 3669037153485598523200:90:1 8324823568334207256730:90:1 3469127433448024538603:91:1 7539632300233948430107:91:1 8780071562374835832519:91:1 1959641884102884811421:91:1 6538343114399044208558:91:1 2459552402027415116376:92:1 5208277973370873400907:92:1 9785518102729077289373:92:1 9716915407506774941643:92:1 6547200207543775189693:92:1 5114436096353561980945:93:1 6062793596596428954413:93:1 2732171015985868531721:93:1 3868674019344543274033:93:1 4529461489964933535024:93:1 7951997800301659987580:94:1 2047834297484210097671:94:1 2016693299094308782662:94:1 4192042994413054549156:94:1 2814864515638432823058:94:1 4872986281017038257291:95:1 6174719383578275442078:95:1 6883994565421550325662:95:1 3834474507626523043672:95:1 3469001604998659662846:95:1 9514941888589768568280:96:1 8557987143234320527075:96:1 5138725080831072094122:96:1 7011748229470226248395:96:1 8724648663485263428500:96:1 7236882445104525366055:97:1 1042254282830242909123:97:1 4802775536042877223350:97:1 2984652333563746641752:97:1 3969267940453423865389:97:1 8512464556831531134997:98:1 6601992767518772973092:98:1 9169106322988725560514:98:1 4322347468648528346471:98:1 1840786838833015971053:98:1 5696234134322054686158:99:1 8853128299637808728430:99:1 9679945699324575716510:99:1 8642481731635050246496:99:1 1690690618746509224985:99:1 8487930353064743898273:100:1 8912451120873925438301:100:1 4580606062550143277751:100:1 2390507035956362443364:100:1 3090965194878186289323:100:1 97007193647492677699428:1:97007193647492677699428 19742250840722216207270:1:19742250840722216207270 89663552634688603882415:1:89663552634688603882415 71521785643938792814985:1:71521785643938792814985 34840815791626234061208:1:34840815791626234061208 59070203477959448821666:2:243043624639 52175732936309640987424:2:228420079976 71390983522893244390204:2:267190912126 72759783603850717923722:2:269740215028 74135928609870886073548:2:272279137301 49682228320827221354914:3:36762103 75905436312182935763510:3:42340660 86014045219477343941492:3:44142452 29975533631712215536054:3:31063875 17660126287963234332414:3:26041416 21675797463202201380479:4:383701 21002496116010261983970:4:380686 66850821835873294612128:4:508483 76455366952257803171409:4:525838 38640732347915370891487:4:443364 38455443046235321265835:5:32884 71220734181786714196105:5:37198 92270542807750209387611:5:39175 98035017857866432610462:5:39653 97036411362572711809229:5:39571 48971745665802491202069:6:6048 96848520061237032659888:6:6776 83210975417604612010762:6:6607 15270562878837425824889:6:4980 11619028432187464621683:6:4759 43539561648436601275197:7:1714 39410304424756814696899:7:1690 85782841499892210392268:7:1888 95610162594186458878066:7:1918 67555764841689215071114:7:1825 32626026364693235496775:8:651 79031354770984635827979:8:728 68366147774566332399042:8:715 13213926463880701211096:8:582 53607009054628384066176:8:693 31752793865058330548295:9:316 71582838168721123145711:9:346 18169665850111402769045:9:297 72160543742686366538620:9:346 11301047110891656153193:9:282 97695367111807702944850:10:199 90532173541891727193505:10:197 19087658347578915501329:10:169 95511922426972035015489:10:198 81658373154184765874248:10:195 89256597337475068129690:11:122 87924620963933858097720:11:121 94985636605526289027055:11:122 89827711944080120755949:11:122 10224780720121761670542:11:100 30282009062204743676009:12:74 30247122729453593467755:12:74 56818172030392516228420:12:78 37405267601128645218771:12:76 92644371493300263618189:12:82 67719529289871750829325:13:57 58875965100275452553179:13:56 61003342739227273718084:13:56 50019563693192567024307:13:55 54327054623156624129621:13:56 77249285010062719287624:14:43 89206886737385268519143:14:43 91636647384108401877957:14:43 91102343583753764511762:14:43 24221109492721192768677:14:39 52698753150038805115530:15:32 81037731110938163656254:15:33 35534699031750256004942:15:31 74292972395443515268734:15:33 94773167135846225868006:15:34 68081775286742512414381:16:26 33075771027803436854144:16:25 21938760024499806616829:16:24 60029338063541699834773:16:26 37800496980370142504547:16:25 65674142736087806933208:17:21 60038349880602158975698:17:21 94055883886257594226290:17:22 83012662515938292410540:17:22 17913603331476003600477:17:20 94577479710416616585010:18:18 87713464044549645496692:18:18 34290650666301200839948:18:17 83101837384891435936660:18:18 25458687338387173598476:18:17 61324428543859356072920:19:15 64450864780925523754522:19:15 61563550907831013621674:19:15 80737267574905312692495:19:16 96668029099410021101122:19:16 47186604107211464400008:20:13 64050406463681583832954:20:13 57083767186664049602870:20:13 69382121072253931263410:20:13 18998409887323358575883:20:12 38854592914755908446532:21:11 28875090279360518668084:21:11 90220808097750908906250:21:12 34721103396918129810945:21:11 16651326333337644760448:21:11 93684840766282101900465:22:11 46196612914847084429313:22:10 56665292286853389543349:22:10 27953127838991914550804:22:10 60832331095675716813912:22:10 45881074564607969481580:23:9 69833757565048287218631:23:9 81817716182138737770639:23:9 66152349673135729211348:23:9 46976512128117640578745:23:9 68113457456655026330311:24:8 52533602531506391446123:24:8 56121109893152738985708:24:8 85149587098402744088914:24:9 50858223927818861562609:24:8 23341593839600500043073:25:7 20879111268750468955210:25:7 40696015041411000337518:25:8 44999220666375928205466:25:8 15687385686027635631781:25:7 11586186073248237035420:26:7 81854519128589978407448:26:7 89878600869116064088374:26:7 51451640261646932424201:26:7 72910039934605755436818:26:7 37369205644854324275355:27:6 72498351890781880902408:27:7 74925819926738515291080:27:7 48202635023026754345904:27:6 91286680379445201790817:27:7 54280363284720221811859:28:6 95083268870581066504109:28:6 54511738733641641345424:28:6 83256164450951109859509:28:6 30862696823637578800042:28:6 12216671845205320037201:29:5 38931941498821382960979:29:6 91036177741306120970933:29:6 29230191195212515794750:29:5 80611570818638650690412:29:6 99541029672888000019748:30:5 77112320092659510340669:30:5 70446348267895052518598:30:5 69997242659400218716696:30:5 74335540200148457465649:30:5 72284067795887380403801:31:5 33766903510796547164362:31:5 65957236885041106967263:31:5 22932217030115950016344:31:5 71876839868554092252520:31:5 54437009866231857445481:32:5 26561504945850508105835:32:5 17046282695028806940238:32:4 54891466608276917079962:32:5 47214934952753443887949:32:5 87453557832833155723521:33:4 46999614325504347741063:33:4 32664992748912399683918:33:4 83036562729105015864427:33:4 91633709536270243474959:33:4 39440278523500672336833:34:4 13943155202917999604970:34:4 67496105021135223353042:34:4 68228704101062372423153:34:4 48868566007191885541304:34:4 52753282281155960598426:35:4 66338165586974015353356:35:4 94603507537359241630712:35:4 59945892433085281660114:35:4 53106182626458334441816:35:4 16447772503540639907763:36:4 10373012000380359023356:36:4 90704361132875758037831:36:4 40066337301086454029915:36:4 82097865714050646670637:36:4 62736789106795288595233:37:4 24746727018772475884402:37:4 97413347220458882480938:37:4 77365650561392676966527:37:4 52233291800362186317973:37:4 50626947929775387548307:38:3 49558073936252113143049:38:3 20123469291737804794274:38:3 99750008662311415977092:38:4 65973503508689721073471:38:3 31688540993729313487704:39:3 21978843274547265430085:39:3 14952574739691648191846:39:3 71317141452052353144994:39:3 97642801403968982102410:39:3 53713992903686616633565:40:3 13378385697124796190503:40:3 56690135204116563865504:40:3 68066295463990292865558:40:3 61547555534175930566301:40:3 60051674134364268802997:41:3 47634769024091576506952:41:3 54488131978627986620975:41:3 97406231595314607395406:41:3 90837283109155382578400:41:3 25447986785981361493554:42:3 32552372903668942370342:42:3 56708187520551705971098:42:3 43830244532832615847616:42:3 67894950622123814861693:42:3 33066113298503895983510:43:3 94152080895010558209211:43:3 67221196172667959612539:43:3 54793433753029031697407:43:3 81595712715102772019637:43:3 32796165965416884595851:44:3 20472124929614324398970:44:3 28054701124891902798843:44:3 53020042035988630087339:44:3 60267300318693811298598:44:3 64772221124711390352524:45:3 81006150105266494018667:45:3 89856674922948001646949:45:3 39507330628788237454541:45:3 46889380556421863345813:45:3 67993091019947620952863:46:3 77371046851723664129603:46:3 33254109739423829084712:46:3 28602833022591063135576:46:3 33307236008975021669577:46:3 39685776949860488613428:47:3 73346286295311676677120:47:3 97636882047746980056667:47:3 22560978930679158583390:47:2 20061982667908880327715:47:2 79533864747488888650953:48:2 29617300955844040974467:48:2 78591053169952015293417:48:2 38394988871844119098402:48:2 85091242603365456967408:48:3 11602182054624801650110:49:2 13861641319906293667786:49:2 13622120608752680642397:49:2 51711658366668685535206:49:2 88010485269071129377411:49:2 33904918916963247353073:50:2 16533262188641628999636:50:2 35000685332458549596005:50:2 17638215120445615496149:50:2 32660647306615852126332:50:2 16809619496430574659582:51:2 83557151749318440632711:51:2 55070673835135834632928:51:2 80940970551495475390368:51:2 42862978725006897832158:51:2 16443772783303437358186:52:2 39624639715178970645524:52:2 51702169013052030897827:52:2 52227614223653480149675:52:2 68760575347346960808603:52:2 87528043069399765915912:53:2 38042509636100900703256:53:2 18628251149700272891814:53:2 55787115558909789204157:53:2 19723262882930753234126:53:2 39875965591823036559845:54:2 33399440466235751595369:54:2 30019467297121499684526:54:2 11436113471266401198774:54:2 95773662713295738021932:54:2 63708945746626445753889:55:2 57856075813737036829918:55:2 39612238492390361419106:55:2 59617828520135160042699:55:2 11900628184931343804914:55:2 55258796693669079342330:56:2 25481891239855932815429:56:2 65382435351311028828920:56:2 32394970256053137454987:56:2 38114400746878205241256:56:2 59951065707992120204362:57:2 81779070376016220559836:57:2 59783619045154612580558:57:2 61590317774484672338792:57:2 26793383953482087895456:57:2 44492927512488107103688:58:2 88608294072932939955631:58:2 75967741857084867702018:58:2 37330381008669729913699:58:2 13623718241257364670103:58:2 99344776981468352784062:59:2 73691351003456249342692:59:2 30475027475822970266577:59:2 78719291517574738967095:59:2 92906327067539036505732:59:2 18843701977157128594134:60:2 69422766237532754509164:60:2 63185820775601529881006:60:2 76853829449362067836475:60:2 42389964386596849634087:60:2 42105158989393457587390:61:2 34664141574743227982549:61:2 59866645461954728674349:61:2 89403720514607399559770:61:2 89497542492853433550632:61:2 60937133775161547325996:62:2 56145150859628449847533:62:2 29968871757056697645214:62:2 68455448484228437162580:62:2 75539507891798920949780:62:2 58384564452838418269545:63:2 18082030444050395418071:63:2 40992019232305461751457:63:2 24884257297488130672688:63:2 22410655219376141589432:63:2 22060993563337219166299:64:2 18241927135404051809252:64:2 11365810955940480135031:64:2 61258418259164753204852:64:2 56691467384683373939299:64:2 86602694554297250808877:65:2 92173059458860542909378:65:2 22016677624131382919637:65:2 45030406390578656474711:65:2 73288149579717240543159:65:2 61786147596196607532149:66:2 28963177195546068522744:66:2 69614485823847229932249:66:2 35545864434037271081428:66:2 55304954408231915181655:66:2 28845981627464056155503:67:2 72366502876657098691454:67:2 17109165348486073849111:67:2 23987593774656556685545:67:2 28017317763719973308083:67:2 77925646906736430777663:68:2 27157922236137409019329:68:2 81245502853381526752199:68:2 10093136010552574962003:68:2 90268751608239028464125:68:2 88527722003762491483745:69:2 40228720983300640925164:69:2 78809239506333433889276:69:2 61407849501837432118398:69:2 13509638255723363768455:69:2 99778903760396024928052:70:2 86414858082686204326934:70:2 33882203314257678259390:70:2 82200806467504066256680:70:2 87733526286263833129474:70:2 58653504793584642855476:71:2 22478825859374428841553:71:2 91630814691322326018095:71:2 92629711753094521261375:71:2 45449249690519340939342:71:2 27963809577361351747506:72:2 36693408266760803962477:72:2 15967332196140637725059:72:2 91374318762106975621882:72:2 66834221103039711102551:72:2 94168766049706963221965:73:2 85027738422987420010192:73:2 93935366782367456788465:73:2 30374437254040393227172:73:2 94573304153335842255107:73:2 93297466032472275786031:74:2 96190245517594633177271:74:2 64818161221386293628805:74:2 52482454465470959630307:74:2 31848288427341059865798:74:2 39341796377225350806859:75:2 69306003147520118764875:75:2 71390006513747383765963:75:2 79964980206751861044337:75:2 71147363820953887850265:75:2 53362797089535890390519:76:1 13463719609074952076091:76:1 18913274811847773709980:76:1 17834183781233523038161:76:1 39282189287697202827496:76:1 31327676900211928683697:77:1 90976743993983727257088:77:1 45218715785121170063109:77:1 50959706685494246530169:77:1 16355097963069705135672:77:1 73408191538438297704237:78:1 46492174754818702519294:78:1 93841141734294012944284:78:1 61501552494617870384000:78:1 86771687323320807505358:78:1 58731152317702057504515:79:1 17091228058302998570918:79:1 55343849470520788897591:79:1 61662639485725385729872:79:1 63263807820132963097583:79:1 34593346653449815414317:80:1 95094305226573997185981:80:1 13824369852661415385075:80:1 91193365230137680014024:80:1 60273045968543081280023:80:1 77289883110456497560892:81:1 43980813699509894312926:81:1 39864631801398893384106:81:1 23001972753752371563315:81:1 60483638242842673375380:81:1 92591361620680707047202:82:1 26950657224266671523919:82:1 46145426264114188650038:82:1 41902638889092666098321:82:1 33406489773079048389342:82:1 10866181844005253013566:83:1 44272390115483080151725:83:1 61066887943699066346053:83:1 67767163369143194858202:83:1 33894635357826266824330:83:1 60697472390723153921918:84:1 76552129341860229457100:84:1 18652629650693278112480:84:1 21743679082085597302769:84:1 54246894558011420564255:84:1 24983576985947010373037:85:1 63274356148339845511054:85:1 97141971604422644919464:85:1 98156669874532072371295:85:1 55250458159511506734711:85:1 16311691984869571891450:86:1 48457565046286703775010:86:1 19094075893963528572500:86:1 76278649520201648096073:86:1 48237871126169484725461:86:1 40242432199786333058161:87:1 35073649169752236867230:87:1 49198566692032942171337:87:1 14948448623904637122015:87:1 31478926632487299196953:87:1 67896608639800650096617:88:1 61138459220448949133054:88:1 22590486475405682527658:88:1 50775754765570069139785:88:1 11400874223133196666356:88:1 17592144982543435201106:89:1 15546851665706441046857:89:1 14384478323593309363237:89:1 20446266340522639406574:89:1 57250274662243479518308:89:1 10898575081540692514243:90:1 59565813742865498394438:90:1 83527519219995054329023:90:1 20390557849404550512096:90:1 17349330651300876045587:90:1 51928633154696000144964:91:1 64810509193307780802795:91:1 98804366112081708070672:91:1 44388317700673710660232:91:1 10115320254598667541522:91:1 83505275339577241509009:92:1 98171899969698621516381:92:1 27343582789618660239358:92:1 71288396840707269882179:92:1 66343352284014104075088:92:1 22439323932545593600387:93:1 19572692233766493176370:93:1 53277102132394800096607:93:1 74936947061447366108537:93:1 27500272594610797633986:93:1 52433492009041955272078:94:1 36968112429159069782263:94:1 19189473913207705372615:94:1 25946147750378175485042:94:1 69850466696925201513659:94:1 88139284223779526534353:95:1 87208240108013910093358:95:1 54553827354912293336640:95:1 79708223060981499560495:95:1 10615324354774900587223:95:1 21841068622144507219909:96:1 95697516286223299491880:96:1 64452923267111826929246:96:1 93524997903538462631971:96:1 88907423908844000696609:96:1 56909113666295896252649:97:1 32517673137626105945808:97:1 98087218367397865705676:97:1 67942101484784328524452:97:1 91266072801668440533943:97:1 43786251551694421365837:98:1 83011349328698447424207:98:1 92981401061767027262571:98:1 78349167229375616814903:98:1 94627058873624833447457:98:1 54334477864507927206259:99:1 56765517424778861826281:99:1 96319917711661172127317:99:1 53893330517880504063492:99:1 48191221130501818922336:99:1 18164651105397708920982:100:1 95925978867607161538306:100:1 72216144403496923426491:100:1 68993500143520105282356:100:1 75465148791692254653774:100:1 833492463874341088296195:1:833492463874341088296195 112966613861818398195565:1:112966613861818398195565 312368006222210700228563:1:312368006222210700228563 655700153364142242487552:1:655700153364142242487552 294820997213763812181916:1:294820997213763812181916 488598130179135223633790:2:698997947192 887907494908407072768043:2:942288435092 749019852897730443695612:2:865459330585 415738135055277032279021:2:644777585726 716396402886783103759177:2:846402033838 598916522612432708237895:3:84292467 407337625020974906186649:3:74128436 784097480147264926780463:3:92212547 559707222092793426826770:3:82411338 761041440922818404094147:3:91299717 252095712586452534181515:4:708584 683524189163431054548374:4:909260 913984924714499332553806:4:977765 713415888727630863100078:4:919042 337391077619403795345089:4:762137 992991114703549996046530:5:63007 194347653702638138656655:5:45469 321670420296043717756134:5:50290 730195795082439529740646:5:59249 664042930097819308094636:5:58135 243900325271463161305200:6:7904 909618667350422961410510:6:9843 853580163598350373406646:6:9739 754976984741553271159971:6:9542 599486699187584436132275:6:9182 683345427845370944106215:7:2540 298370099820963515183068:7:2257 392791489216014724663102:7:2347 737145066122925426427937:7:2568 511069860057464655145740:7:2437 109350184564402866505095:8:758 277237038034711372647581:8:851 758156084168759337138149:8:965 855238370844020807862374:8:980 521653697448559523276725:8:921 629244608721054399581991:9:440 187105956393938779727050:9:385 404081237901376508698042:9:419 905961849802409809114878:9:459 667641511351839868967664:9:443 789908219309360930078571:10:245 222615602495256499547112:10:216 347064653789500174325129:10:225 982865908541430684845228:10:250 181445582082879155721130:10:211 828692857875696608330200:11:149 330028982413354975704457:11:137 386722259605944662499972:11:139 414125842152341791537333:11:140 236618586690738515071032:11:133 512239569783999281785770:12:94 766038744036257129373486:12:97 547472608504974722384832:12:95 649803942035896526636435:12:96 306546278278914915358842:12:90 818383779942717590128766:13:69 242153147874282884933542:13:62 757294356355949273241710:13:68 673935429260189427639023:13:68 265902003362725255133680:13:63 176697489104408094719209:14:45 748977617474148577599942:14:50 685592488035572212145702:14:50 764500025249387652193579:14:50 847037620936523970591028:14:51 245765631255713076618892:15:36 768379500882713683301252:15:39 896831325348954866723331:15:39 319268204132342419088537:15:36 561797767558855004085500:15:38 457739176747568527775860:16:30 948108743057032466228816:16:31 798233516575523247572416:16:31 354014206993615801306443:16:29 907163410418926386281050:16:31 675377978763706946457001:17:25 536203407958107603439457:17:24 982783727092471802752129:17:25 656872833086185239523793:17:25 476260076650316303630318:17:24 390181112560046616742305:18:20 727681109185260515320509:18:21 493823108585050165957661:18:20 600978474376148262192098:18:20 466809324452933293636194:18:20 622575820553000547466000:19:17 598504667749389742972994:19:17 815988910232516318988045:19:18 496647678325112127880553:19:17 342934541040742588410668:19:17 122786072245033527638222:20:14 773669565367430369466296:20:15 561256888964026599004096:20:15 867059253605341451969657:20:15 326182621798917473130538:20:14 141498504495855822662952:21:12 810668165532196008133209:21:13 312575757592379083291499:21:13 825307043190441740484241:21:13 423318628196302150993358:21:13 305423972991660100574287:22:11 774332763091468874890087:22:12 574312071639341106939821:22:12 851301595296840441576604:22:12 269058891872808287521798:22:11 112117738745450509872958:23:10 577366588891335610715806:23:10 312723478249850442133437:23:10 970168419377194440711419:23:11 114094092025532955374996:23:10 879596296500660591288958:24:9 593560067072156958465642:24:9 978650543800993955586495:24:9 793250661253211164942473:24:9 911612959014712164907076:24:9 681074359867135442324118:25:8 929694561032966453985834:25:9 793731982271150476482204:25:9 129329510873515814581618:25:8 216254908724784639471638:25:8 738528467098159194200804:26:8 635049035560370565435811:26:8 533818697344081057561573:26:8 583553862593498361816481:26:8 399971521255491669568055:26:8 968464757688677821713869:27:7 728349445995491902806266:27:7 147096729457151885929960:27:7 237958000482830086992305:27:7 215692521451398471383421:27:7 111147674873032991340754:28:6 359168276571856121788018:28:6 987034232981977287486039:28:7 566522119653057909851487:28:7 984435879296617738100503:28:7 293377924282435736402382:29:6 540772693505209406030808:29:6 623050761960826146717599:29:6 674785068614611339201673:29:6 205885879870754784759383:29:6 642806000867049417236671:30:6 661474494975671315339305:30:6 855144954240632140041636:30:6 201636864159988107115129:30:5 647702449668401571330693:30:6 229406331529655875736801:31:5 851496366182712330501237:31:5 678005362091301481188602:31:5 122608634596686843775500:31:5 952291489669724223443792:31:5 438160226453498532605411:32:5 240749760526527355375587:32:5 640865788845483913168465:32:5 870489778252703450627734:32:5 408014379358271235295549:32:5 177714818341584907498523:33:5 920526056835187956734191:33:5 575830060964588885914439:33:5 671038565678411469491526:33:5 475227397704852206151113:33:5 590928438341976735774460:34:5 405711435879985862359733:34:4 633516851182208487459073:34:5 805033458746013848426862:34:5 112807666166279078599685:34:4 782050547849121512217065:35:4 922129596290946479340542:35:4 169648087434611012537658:35:4 564615932864871342002370:35:4 776713015620175724990603:35:4 864545516420746703374265:36:4 333812916104342593329273:36:4 203840308021867572691364:36:4 350127839609598695369981:36:4 826585220590701476615461:36:4 379975030106406502948239:37:4 650184848595334799854062:37:4 208539512881735892123405:37:4 495216410198554811528464:37:4 891113663499771476447463:37:4 478721576304149752772788:38:4 977790571139807297979101:38:4 437123387028648988320357:38:4 379655414489227520209425:38:4 970956359164400731390467:38:4 745829268781439361506683:39:4 815728327251116064950333:39:4 889807774099750219141862:39:4 882474827383910452363675:39:4 205587763193206319230443:39:3 819593868363769864779377:40:3 389521595187059764343139:40:3 284995929310629679556364:40:3 284332370528972969061350:40:3 435986067577130732641901:40:3 224635864459473583613012:41:3 717673169098372518128723:41:3 929987497657653369864534:41:3 858770252977675324915792:41:3 478068240515390562127096:41:3 213133977127136758055401:42:3 308847808749110649997453:42:3 224175682440751874069677:42:3 685972456258614208581983:42:3 300608085285745541932334:42:3 916264154828531683007112:43:3 795971238915746915862702:43:3 107947279317728140127797:43:3 883555229772024823575669:43:3 752086223744630058164181:43:3 942425622133676862930632:44:3 435318163012402328440601:44:3 357863416092799340564252:44:3 611382390315207395788944:44:3 187927774235211266846465:44:3 793239665691120226876436:45:3 551733366876419152864785:45:3 235333892045476987137310:45:3 556164107466193460273427:45:3 231221660254118861834366:45:3 532335561286521602478892:46:3 999111912336578719049747:46:3 139007299122676115407915:46:3 730072103978943667033924:46:3 968560930741195151400309:46:3 580990519655607282877168:47:3 342179485019362131609394:47:3 932638424562025599796252:47:3 521347876034913951892061:47:3 975400072844922551900699:47:3 219084596885564244552130:48:3 208878354563645016980828:48:3 779491142715236369903530:48:3 716403207159971467492765:48:3 329240593759865663522820:48:3 901191327785122395925527:49:3 532328519140765345363216:49:3 984659398129186201281905:49:3 192108528123109616722199:49:2 381113016891032577553557:49:3 493153716554298130411737:50:2 459905889662626564580592:50:2 630998117412362998598434:50:2 803876652162488789389571:50:3 164081060302043543841255:50:2 985006651596712571357145:51:2 905642974363497660423938:51:2 867690067532548837375185:51:2 473851857691122520227174:51:2 949888694520631161585408:51:2 910005307311082938736033:52:2 848046133541559810970084:52:2 346492044211812582091485:52:2 823722122541380274513790:52:2 933610674095857000565903:52:2 419685479020019179662853:53:2 722473519149451447887336:53:2 191721847319144453819952:53:2 970342403148668145451509:53:2 514797656695441590401061:53:2 226899739991349463179054:54:2 551005809365220307069709:54:2 789806189815712545597958:54:2 139713594417026908991839:54:2 316821236245994314084485:54:2 979025066427169817428027:55:2 447540070904246742568807:55:2 829012871149170000544650:55:2 677349851861116953312525:55:2 779272530411836370248912:55:2 586643189760654673314647:56:2 968414390733731304551902:56:2 374068777700072975384892:56:2 617650429447233142422434:56:2 604055032976655281471387:56:2 404438071383138244111529:57:2 744603213125065822246508:57:2 606612275460239598152767:57:2 482369440624730197045224:57:2 762897824626483485305847:57:2 940987261590427747158231:58:2 772430315969918933423122:58:2 858013823545125355685828:58:2 980347666701970679604763:58:2 211089380692629783862240:58:2 737979861499905321543220:59:2 455702294423749696048601:59:2 914680326401822294998299:59:2 362735411632477042808825:59:2 819807648123166048715580:59:2 900390312072164395773922:60:2 582716401162679329085356:60:2 843512656597848907584556:60:2 529396438041867876528288:60:2 615694564252357701540343:60:2 141742009667526026532374:61:2 556833324978919943815311:61:2 126077819498580279394670:61:2 423159700615201004861637:61:2 858168113038048949690097:61:2 341444556755079282560289:62:2 913177914182702203326954:62:2 456492882576960193184780:62:2 361547797158228682361365:62:2 468017391070826057458246:62:2 159636330621062112671391:63:2 545453498092670679625607:63:2 674698060738628652259936:63:2 386936523564804923282469:63:2 728204748569684996809782:63:2 257719242242889876623759:64:2 726656286725008432950921:64:2 792741548033265671905417:64:2 953241438609073602751552:64:2 168102636210521925371913:64:2 221652281357488323092363:65:2 521223484725642444363300:65:2 124729878550595448894872:65:2 854641913169901138444449:65:2 243232274886291710612915:65:2 556666957342094074299085:66:2 799223675334859781708598:66:2 954985222951455664689373:66:2 537380935283463093393849:66:2 859572332932206487467127:66:2 540174168994805053859125:67:2 196857816786788232520929:67:2 995517591489654053477960:67:2 115686508582202483456650:67:2 735383645480624746851519:67:2 933015964941335799688511:68:2 197640857004757185854111:68:2 460884087997890405134133:68:2 738105922782052150177955:68:2 638946034708444846551308:68:2 462596126134696617743604:69:2 485593102027748783782575:69:2 579957552414773284551022:69:2 425426456629021499335594:69:2 919341189431427784761420:69:2 308465611872975054725605:70:2 100237529248766394843672:70:2 605746555909670004233299:70:2 731934095800244341308713:70:2 186047568533742302870931:70:2 227767249995528921788089:71:2 503374981508979125711083:71:2 101750476476716100064229:71:2 312869541811992360732935:71:2 921621754213297606559675:71:2 363942271987595350096482:72:2 340226008517163225846851:72:2 783787451769924377308647:72:2 398507024753226155687794:72:2 956897341084259830061803:72:2 483436031033025618882823:73:2 850322209288433077566289:73:2 610695436708785672186490:73:2 810444149229592733100322:73:2 443776816711162840105263:73:2 667445596470861381034271:74:2 866222734872965031050170:74:2 915642620868072391583354:74:2 712584513980211960831617:74:2 761956117621652662185766:74:2 354169943897173448333909:75:2 487199462176899399318692:75:2 223741338488425244979518:75:2 275823098977054722638248:75:2 966963271624390655334709:75:2 678488854021538806540626:76:2 459912909136875931886729:76:2 242505820448156081044142:76:2 650309090203483108557846:76:2 698361013685132413660501:76:2 296458079040213434640844:77:2 193251792680108194242979:77:2 606152767917095731039189:77:2 320281319896344900586557:77:2 144656848816789922041092:77:1 896860044115253644940669:78:2 702693542447698402898037:78:2 117862169039404746819724:78:1 550973471963735333493225:78:2 757719422723882223158887:78:2 777572851013880050865596:79:2 483073696658955712246872:79:1 725689695403369783245235:79:2 883106029127768509148448:79:2 456057219759361785869700:79:1 358605311105857239483476:80:1 139881472380597138076513:80:1 488734919339145560609339:80:1 927992512123592999369766:80:1 333527408068112041232465:80:1 642659183564161583074448:81:1 398654507749099710038288:81:1 392891581688867736067834:81:1 609850532963657859500335:81:1 153432273294392304369624:81:1 334099758819415125509200:82:1 488226500758608236222013:82:1 801755877009716372720846:82:1 223206820728541574993684:82:1 340019513986405032037762:82:1 570911490185662713304715:83:1 123162685018048435753691:83:1 766792796888785432760322:83:1 550241433657996314902444:83:1 575866633072776069657759:83:1 592955457800874457434186:84:1 469717359461568057616026:84:1 429783536836733134814161:84:1 910055077053101127336472:84:1 277032165373695517443497:84:1 434439231288446225036657:85:1 957776348421453418340615:85:1 639514031112794941332650:85:1 195797387982072502193095:85:1 722099527261588876149514:85:1 221065096784740695803243:86:1 903931683498380581141756:86:1 832042250113542416511849:86:1 727429634380231116276518:86:1 504675997942240664011206:86:1 899871814334854767567545:87:1 305305748921118813951069:87:1 754669448986905914576027:87:1 925106221395980085622716:87:1 471153349441988781407719:87:1 615258388609227450031594:88:1 450070955372109257419119:88:1 327831246744019390003200:88:1 111726657903873322878108:88:1 276565149916885197042265:88:1 576981342614717189352287:89:1 600871866058230590198429:89:1 521487650423030170746236:89:1 482920696535548783267637:89:1 752272491760720999526090:89:1 790630583394736633023255:90:1 975545322982079271686690:90:1 475596094432679302816128:90:1 937331592515870033885441:90:1 541213670946292139604349:90:1 427805616530179571537491:91:1 146145799281797715041369:91:1 695380112747705012721720:91:1 871987606255005863057458:91:1 619873532163994555963557:91:1 104788269033411286232265:92:1 154221565959858879389068:92:1 514311525115349558031036:92:1 823060303354738898452691:92:1 555106297446993522551193:92:1 931540307188879787333699:93:1 332426704938035911032063:93:1 681350502598728645676928:93:1 805901641686119509064161:93:1 515785796769910491224109:93:1 726122338198254897852731:94:1 819747245846983275007743:94:1 179909425367283688370737:94:1 279381196508829689809975:94:1 855631159347680331630232:94:1 478859525953232691677514:95:1 261921871650164188850388:95:1 221002705379333307369636:95:1 225702000842049023058871:95:1 848721598804807562914347:95:1 877706597639775403706964:96:1 900591229646948505700809:96:1 880031276184399643256841:96:1 192743013777974126904005:96:1 402366229832835524839542:96:1 828644003068305263697412:97:1 457741099282935351705354:97:1 475310206297550245509470:97:1 571730286814800090752366:97:1 108126304406438788563531:97:1 712776761938178107156483:98:1 606693320261767515537405:98:1 225426557288383251449759:98:1 194376049933534641448352:98:1 587262657127534758487402:98:1 405110244055933782601775:99:1 831530752338768188520207:99:1 396729663137754010940496:99:1 379555071000013444222895:99:1 814111757777333413170469:99:1 621329986064843093248173:100:1 440091494460324700993085:100:1 784662001110948165876744:100:1 123317813519069156339278:100:1 368220155781961024750707:100:1 8240401527177385842788562:1:8240401527177385842788562 7183861800505040833611392:1:7183861800505040833611392 1243211102154468142346554:1:1243211102154468142346554 1243123457856605149881278:1:1243123457856605149881278 6812870084249728593541778:1:6812870084249728593541778 3943272883614464098353463:2:1985767580462 9129626909143087264020343:2:3021527247790 2960643853092808938387495:2:1720652159238 5333247183167603605013637:2:2309382424625 9396123732559035281976060:2:3065309728650 1255853339027102190729134:3:107889614 5020445654552675420779430:3:171230354 3082157210577155957868268:3:145529687 2836209771303426032843407:3:141550948 1381329314023476403737567:3:111369364 8903751330057853947355370:4:1727401 5875924296895620654011310:4:1556929 4064106491772253803370648:4:1419846 2907338044169115045718473:4:1305791 5992373621284441797243625:4:1564587 1039665411449800946027174:5:63588 7591624496907839819362468:5:94638 6050412905962966522227577:5:90439 4221847025240209226430474:5:84158 4021975231473515979661075:5:83346 3864880879721380473618363:6:12527 9905045819565876757218696:6:14654 5538038271270068372290219:6:13301 6071089898446414893652952:6:13506 4488811150536341319934075:6:12843 1903449697039690270001158:7:2941 2956919216371931290439738:7:3132 6188738345957117347765922:7:3480 5011197071678055697808888:7:3377 6854988679471543262779122:7:3531 5177374545557045114490799:8:1228 8994597845642389524194474:8:1315 5803619795980156417448616:8:1245 1933297460840203338358108:8:1085 5732853755954645011838767:8:1243 4165580445065375673868859:9:543 7267736974028579546486407:9:578 9581571034093148481530997:9:596 9090074977076133191996822:9:593 4959233004053789135680518:9:554 4844171408953397942039763:10:294 6271872353547213152355631:10:301 6526659652388113352037053:10:303 5590804993642355749037326:10:298 8171129115871040710269635:10:309 8789233521490787502128178:11:185 3428873540772549712802383:11:170 6812433043117207602378311:11:180 8102501610379896020333166:11:183 1602215047344642842515545:11:158 1410270378871397813370555:12:102 3244314241657553924002277:12:110 3791713838197074407017864:12:111 5494523269560395970892601:12:115 2206878393980221980806087:12:106 3197930064884247854909725:13:76 3760387612357762558269298:13:77 2095442675109986369807518:13:74 4754334993858775459527286:13:79 9432704762927663341326010:13:83 7836494400828543321832506:14:60 5290432821242147924502706:14:58 1632544633345782129964055:14:53 2250661264605220130541336:14:54 1333430408427384474274167:14:52 8169376965486793615367876:15:45 1290052799163038687210384:15:40 8974097743049287234448673:15:46 3503439674776313872991133:15:43 7327236606672577752881640:15:45 3692869531155144477551525:16:34 5838658916921675458179455:16:35 2685991628602794681890909:16:33 4409473712686368806461734:16:34 1743996080800178096893044:16:32 3154493666559978267817801:17:27 2685259382442290937277032:17:27 4008890114735957743978815:17:28 6368759486585334353717689:17:28 9396919932610393958212230:17:29 4454507419314581815080673:18:23 2949571437322086673083137:18:22 9102342187422842035689859:18:24 1614716968520808829551407:18:22 1993590408143106127824974:18:22 5955784452464457174131318:19:20 6807543420231638209939738:19:20 7316345902101750576395491:19:20 7891849512099986529730683:19:20 1109926309758386400278813:19:18 5992193609865482001516246:20:17 1815605159971914518739189:20:16 1010113399253456480179421:20:15 2470390918762319806744968:20:16 4466196362493134117864051:20:17 7864535840214731592877267:21:15 3154645671924731548775222:21:14 7050014334124808404243818:21:15 4483084673354857890832062:21:14 5580217652916692848303612:21:15 4158613867474238942742105:22:13 8496118704099383954255775:22:13 9521405530177813079949065:22:13 4005009721767862190172008:22:13 7518338410170346952697839:22:13 9461017739039921242860136:23:12 1446451298456385779198369:23:11 2609369234232773601203056:23:11 7413415277391815876132486:23:12 2241521961207717220815044:23:11 6873571049858170572732872:24:10 6884293436166232388694810:24:10 2972257412255441886894143:24:10 4528935475643133888070970:24:10 5058189548079187382948662:24:10 9306023248400550016598754:25:9 8397846694846307919240716:25:9 1295145599937301787007811:25:9 3400445833100372094150107:25:9 7127916063800304817047276:25:9 6527373303313224093436332:26:9 3762976002834833298455147:26:8 7420177906287597723967348:26:9 6962074880724831661732184:26:9 5620956321785547016684215:26:8 1125702390657626033701480:27:7 3141652941692337643488431:27:8 4746869502062194064983613:27:8 4601800524196287361122620:27:8 3922633800522517034828916:27:8 7190686021924523990740257:28:7 9923407786054907449133007:28:7 2000048154157472148574115:28:7 7225259698323287293882300:28:7 8090038041416054756255202:28:7 2942971242116655075844866:29:6 1008321671700090185904159:29:6 4351701407936994371789938:29:7 3489383542706897040950738:29:7 9272282349359471676627724:29:7 2006740215247008285409476:30:6 6970980180976315238875055:30:6 5353923505672712491615444:30:6 6553712466426712766198221:30:6 6015415792978869858323564:30:6 6858780868758299718030532:31:6 6442750550132584315858615:31:6 9788800113775223315512885:31:6 5223134853022602432135135:31:6 5127994135219500921300695:31:6 3551103824305862805953069:32:5 2483099827460455572814451:32:5 4916729850905881076201489:32:5 3006901962734376863998478:32:5 3630809167523000431359389:32:5 5054414457907643139153562:33:5 4141810022659637398430804:33:5 7369125005522441479230202:33:5 9161625972459370007944595:33:5 3098362574622326654521754:33:5 7553052958282517962777171:34:5 5475735500719320593885605:34:5 7854250257743926520036757:34:5 6581619404199713682709072:34:5 4812118084215961384176841:34:5 7238205247382560213874356:35:5 7865286372649674524245754:35:5 9109808837596922009307604:35:5 7156979485459597896009645:35:5 6459470715405475231651649:35:5 6711335448638677958832417:36:4 3396244577947008467814710:36:4 2475693529557230032491411:36:4 3551750285059513159039928:36:4 7979176024570116292173910:36:4 6550941449387950855226473:37:4 9033932781738744718920097:37:4 8906200470471532280574709:37:4 3026650371239392633007116:37:4 1385529254657073817671981:37:4 7534166921005840649963179:38:4 8685906391611668155874229:38:4 2695154142493957902986560:38:4 7605291060426965337879969:38:4 1528169154280942927644440:38:4 5686646889153532949728948:39:4 6084610557578111800393015:39:4 8375821890941051656584872:39:4 3872426479921097575112195:39:4 8204430980083261896445821:39:4 8141916673998246468518859:40:4 8122654756260236856569940:40:4 1336178814499047235350088:40:4 9182598336181443738837051:40:4 8307525097601767225283839:40:4 8483108457986044079194913:41:4 3969454342571733768141112:41:3 7674140009107375109030170:41:4 9798066801843840808153796:41:4 2345221602221394302350340:41:3 9460428690954463029381927:42:3 9105708661351870281351358:42:3 2441714411882141168575686:42:3 3159288714893051783864939:42:3 2163126417825278071989467:42:3 9602328075465819877360034:43:3 6067066832878469387930048:43:3 7124070585974563066703322:43:3 8995323893712353572529325:43:3 1126463032443122839480794:43:3 4132069062922380956665417:44:3 7036463952866211088864273:44:3 9871213452776942153561157:44:3 3522874216476055775844935:44:3 6164264955034411422119952:44:3 2453554839414727723690132:45:3 1340598207399246578247076:45:3 9623340475375556990607261:45:3 5344844373363345790597775:45:3 6159240539019246576476881:45:3 3892461724192196537319863:46:3 1912271219328985894179541:46:3 1988617006789597281225377:46:3 2214990205391639019711091:46:3 4990124561836687515870921:46:3 2333511578374508481102546:47:3 2871000107652107786481651:47:3 8898669039244701760611618:47:3 2577639213690798479405140:47:3 9037527203248728728194944:47:3 6852115705877916507203199:48:3 9205347294180999250473473:48:3 4895146454935012481571743:48:3 1099988370837607031091984:48:3 6302878555564533686851686:48:3 1879932285818642959525273:49:3 4174880226066039707228621:49:3 5500078997118412162182279:49:3 2312096483586076863681503:49:3 7003362727612406839094039:49:3 1033187175079460287544671:50:3 9902250427557707813012756:50:3 8774393275940884778296384:50:3 8866214887084554577502224:50:3 8160928931536109569113000:50:3 2654577037176519844809392:51:3 9061790369522373786054998:51:3 6415555498230822761669117:51:3 4048586548944185071395863:51:3 7950607465629679253692234:51:3 9277021371957618405029999:52:3 8811214926402370962131036:52:3 1790682505408960775576398:52:2 9909234558277530936246886:52:3 1702146435672893068360295:52:2 9098718710183306294807934:53:2 8694303944758538321063489:53:2 2931653835877559777455388:53:2 7108064788475485669468244:53:2 5092556889796893645424966:53:2 7881729602536793865693758:54:2 5013332802998706715697578:54:2 7727378874258384783703521:54:2 7169250144049606479014681:54:2 3030005715689809282657099:54:2 9695737066992755342618766:55:2 5279038825747211382447494:55:2 7345324423446401219914274:55:2 9638942199733315037302483:55:2 6682308079974392483616018:55:2 1127065447351898218562958:56:2 7613346339467216007356424:56:2 3025182161645988068876154:56:2 6241707409593342108825591:56:2 4379513268296167498626251:56:2 6490185375054759854882511:57:2 8947933196418121968792176:57:2 2130543624753134162921602:57:2 8923002216004525651346030:57:2 9253335072999638922276514:57:2 7514246043259336865435900:58:2 2570649262666090713922329:58:2 9265039670108192060792050:58:2 3991978645433173744098080:58:2 9134606841255734860110227:58:2 6274378502890589690446514:59:2 6413838622244371601374132:59:2 1794310067136374419932677:59:2 6201345626186468837379217:59:2 4571164827609475419084855:59:2 6538317193110707427632313:60:2 6267767016454654354594916:60:2 7185062594881414332674614:60:2 3334449440783406174145447:60:2 1770427650230883514307349:60:2 5309659005053578109189822:61:2 3773491154657420093164339:61:2 1841462205012430628489700:61:2 6545997555852243848172162:61:2 7563756460677877296616662:61:2 2224764151261717078086226:62:2 2333420062779244070533608:62:2 6487836213992520308953448:62:2 4201838903400714412994558:62:2 4167201039473542755317746:62:2 1472040946440587847916741:63:2 9418090567165552914709384:63:2 8805764804352233242657220:63:2 1721267889019888724867682:63:2 6331763157441155988149554:63:2 7796613285140729858007702:64:2 8793756702580162387909226:64:2 4660001989078978893155806:64:2 8523539946872134259597031:64:2 2676475889735735363688125:64:2 8566395312311324338162246:65:2 6030722663513542517040371:65:2 8235886248053370554207109:65:2 1945965696580403169165426:65:2 9801260410890263203655545:65:2 5634266423499135776567515:66:2 6218982747792128326699015:66:2 9801353717897845396353110:66:2 7309095999900023811613256:66:2 6687814560969336621122942:66:2 7351532669909701561856505:67:2 2039914640304508174233883:67:2 2486879360855938332315019:67:2 7652499735394037009353267:67:2 6975421947429047087923119:67:2 1016304373189230275089478:68:2 9487857233413403760322842:68:2 5189263135736329044247301:68:2 5796156478965036972691159:68:2 2208910101357791096945505:68:2 3907573134822590000519911:69:2 9663308962848803810537773:69:2 6685802859954706726361940:69:2 2332657723515950672384217:69:2 8995238277386780206599619:69:2 4192563515403642460694495:70:2 9851596654297774334745235:70:2 8063700392333974800616676:70:2 8874891111008152329444961:70:2 9337214078261058023357447:70:2 6295798987839083050528588:71:2 9450494995718396938922127:71:2 3170083947324876656546348:71:2 9305654604466413792735649:71:2 5800989750235652625003118:71:2 3698611059265761974319888:72:2 3006502155797896047754850:72:2 3670542772978041948776992:72:2 3818704894839063011751013:72:2 4317509245042271904370640:72:2 3554986989408023100703193:73:2 2128838438237304047600654:73:2 9930052258747202231712499:73:2 1822402519498828921065430:73:2 3074229858531150406221915:73:2 8018515401201055909496867:74:2 2221017974764341949807434:74:2 3597556269842401768797373:74:2 3552764391281475714919717:74:2 5738077429966449104960516:74:2 4973802769431624631135639:75:2 4507746357967262984486570:75:2 2148281634345244839276342:75:2 8768061743180751026785313:75:2 1538646333730213844796454:75:2 1806338473459817694763756:76:2 7098017719313683843706959:76:2 1714766464054294863467060:76:2 8481911569264726461983587:76:2 1499013168457055437078227:76:2 5083970899219161256547899:77:2 1292298297622695978376666:77:2 5115377453956717681042355:77:2 4533615995017711404554984:77:2 8528572911643861346478194:77:2 5828522242709751660013705:78:2 6606666493535976433522759:78:2 7327029905300638383274028:78:2 8782386246241136826742551:78:2 7825409697884885642696531:78:2 1164737067096705347594842:79:2 9030537546625825216718068:79:2 7251885915662323429559704:79:2 9233780627740330186273900:79:2 5135194465499522824510001:79:2 1495818799393352298678477:80:2 9210905407336221298004509:80:2 2606367736318124591622838:80:2 3070798745879034997836222:80:2 3560970684535984384783387:80:2 1839155952689799459447759:81:1 2427767033561671608197120:81:2 7750686951382346856458652:81:2 9643898259370440448959815:81:2 3769554574728416443842016:81:2 3263773975838228346119973:82:1 4567870906589000871981710:82:1 5255018844976908512029454:82:2 3593930481755487770728910:82:1 8933443762615391332680901:82:2 7299409190069587045421512:83:1 5488676886012372802785026:83:1 8132065914672577998418364:83:1 6249697591931571609132361:83:1 1162499156716451080810933:83:1 2165001276119463695647185:84:1 1950324298105140840688327:84:1 1142205778493474104860139:84:1 2796183808733298044627474:84:1 9952429853063823046870750:84:1 3404808976253597185263603:85:1 8840707742200125435434021:85:1 5562825271632723008039064:85:1 7827116138645686345042481:85:1 4469043399130259001906227:85:1 7688060721145366283546890:86:1 1964891154838045164723316:86:1 6115039823298693133573443:86:1 8796736596636797919296624:86:1 5148391083844550450998739:86:1 4960532697869559041494887:87:1 2582976685259059373186288:87:1 7795397762802178919523862:87:1 6870284272937563936077243:87:1 2923266603015321793424514:87:1 6737776795262341508798079:88:1 4699423323837896728850073:88:1 2086872042393109956387698:88:1 6936393546328725694005808:88:1 4279224215895956009703773:88:1 5618324984375803629874616:89:1 8681802859838435932984445:89:1 3710214280364233893042040:89:1 7694383739924715712865181:89:1 5999420649527138659724592:89:1 6065492350446014088482375:90:1 4657623913100939047809685:90:1 9435539764752582658638047:90:1 4713378435783478868950990:90:1 8718456162981144385104719:90:1 8847036239633202250548306:91:1 3596522943206923206584342:91:1 5465835555462980477247627:91:1 2418153389245106791814955:91:1 2799904001057380233013120:91:1 3431518489354989007342005:92:1 7474935237885461428339554:92:1 5855663262459220152499051:92:1 6701451110219612700313026:92:1 6760723395603551174994780:92:1 1970035610566198307969946:93:1 8831008218711814369200124:93:1 2272246869293641139739813:93:1 5198305678301857026079555:93:1 6436026632898054787088113:93:1 2061678510516807307559560:94:1 9458293539510364123776279:94:1 3747361518510889842467640:94:1 3760202494782116029978878:94:1 6085018930909525699185913:94:1 7576199640733920202040932:95:1 1502470822387046314524231:95:1 4718763155743216910768048:95:1 4820461431001108493740213:95:1 9132544589129964352636524:95:1 3567672258109056936597644:96:1 8511170949740028098156486:96:1 9198130874836008160014331:96:1 3313379110535281834701035:96:1 9064269166117302172896638:96:1 3748536432391125710021266:97:1 1819272917350725790656088:97:1 3830277294437332290039993:97:1 5362112152860847815816370:97:1 4928322606190823540825118:97:1 7804487193264259268605448:98:1 9172102233317684336021478:98:1 1606373091195655616404092:98:1 6486240123440213998502983:98:1 7004813796142378637606381:98:1 7068628316182869677668091:99:1 6523544756822416958838819:99:1 2205144128339915826519589:99:1 3551279406256181733562824:99:1 5211012671429233016883311:99:1 1720648886466176410801404:100:1 8206263940379601861097874:100:1 1365969178268366334231734:100:1 5778558114705601428984487:100:1 6650160474337852460582426:100:1 34044489719750035684732691:1:34044489719750035684732691 84183222547866837266284999:1:84183222547866837266284999 22232561936295535051875120:1:22232561936295535051875120 97157740185620954895205881:1:97157740185620954895205881 89660351248562089893655275:1:89660351248562089893655275 80905048035920671167112346:2:8994723344045 48992504477794058868073549:2:6999464585080 33170998314765320442842218:2:5759426908535 94782945201807968448215127:2:9735653301232 12396903490680912003324205:2:3520923670101 54928786897499394001599093:3:380131041 16666281443945974891788594:3:255434509 44202054301227596206752758:3:353574403 12421294165728886425806595:3:231591322 77907805747075891469911811:3:427097462 80019378690611339284177359:4:2990878 75151800761051038255590239:4:2944318 77764497068223021687217108:4:2969582 71207800892167585777728820:4:2904904 85172904633852028907205479:4:3037913 35227016184396117986044230:5:128639 61668531626323068049003354:5:143884 59072930783052056256663268:5:142651 23555959670143053829549707:5:118691 50867870176533818644733974:5:138448 44168156489879229156578899:6:18801 15279144945251921851902355:6:15752 98290209986805545698656770:6:21482 72523343917179236401458663:6:20421 25647817272511609410833362:6:17172 16202027299827354961269339:7:3993 45217866218930762354349796:7:4624 52416602659185360854278426:7:4722 51855189416543339515896956:7:4715 28795705831498394142817863:7:4335 33673588332275645468695027:8:1552 42979347406365682818231919:8:1600 19549963891662687458557298:8:1450 74303801495094318484110950:8:1713 72990830254131591741103720:8:1709 90957019819957897487598966:9:766 42878430247731950791508303:9:704 78571387499860185966913225:9:753 63790767193014132867892064:9:736 95297399597647682896541766:9:770 99778902894392043962393805:10:398 18729208949215811513679162:10:336 14377792394934543979884272:10:327 82644940110167862222402666:10:390 90901153518051372863526074:10:394 64133699453432724712401789:11:221 49205352869842340498477542:11:216 76641164400054679442090117:11:225 46261098165234561749804005:11:215 40176900893548400637072655:11:212 62969662405617679904928731:12:141 51506351806143643500934407:12:138 66592986318865404718683386:12:141 54160459012767770051380650:12:139 72683194964803849700214434:12:142 42516629165040467195271878:13:93 73696376747388533063122005:13:97 88441361104063133501623735:13:99 54687657226107815863127275:13:95 82964521579785530440826621:13:98 99896479016375102043849908:14:71 44026694660123476146671621:14:67 83847117481251786069238625:14:71 49902306499691337766527414:14:68 42251573815018479763685479:14:67 26883076450586661587610976:15:49 26855894461152028520502496:15:49 38449733788328429035439514:15:50 81581766198659108195597433:15:53 15783504779426719384140583:15:47 24990651324441057507701135:16:38 77062818837445031870607369:16:41 31466505483022006052937926:16:39 57041384605747360993174747:16:40 25178391235664072422155733:16:38 78187439532998557483682948:17:33 18104945771565262801809061:17:30 76228314291370807495948897:17:33 39671453882715444112787158:17:32 18496877088662256084136337:17:30 46157518425934830275053809:18:26 11620121769429686333754513:18:24 31721443385415166089413714:18:26 94968332798530805878471658:18:27 48964197371587024079089818:18:26 11003299256893995945357639:19:20 71089253225600954426746458:19:22 12569128817906235834510521:19:20 54235001783482146428237762:19:22 73479608191987174867957044:19:22 19499154034560960097097280:20:18 38651480746076169919004679:20:19 13822455840435493704307927:20:18 19008794478986504301225114:20:18 24210208341498321959674497:20:18 60121264311564396362851322:21:16 99475035534460916223283669:21:17 52162180853350676990161098:21:16 95468387400220007995382658:21:17 41518534511946884928955692:21:16 11684020359387012448583044:22:13 38120656014724581637051632:22:14 37193403219951378964448545:22:14 68841724259117953395931002:22:14 18499603954719177345903010:22:14 88881972544124970180579577:23:13 50662608584360422513128765:23:13 81513158481624258158916234:23:13 66763037822753922975129181:23:13 14179927709079663640456614:23:12 67515985338948082165668783:24:11 53457052951675554115121591:24:11 23002236666660584563110467:24:11 31247888000737372208166755:24:11 57703247935633062643420227:24:11 88141047577845024409436765:25:10 35398226442068807752577091:25:10 42267269727998591757198502:25:10 35642326773182100713351160:25:10 48380764258800610626319203:25:10 83371514760118876538153394:26:9 79766737853040007588392793:26:9 42979067222108935739994400:26:9 13006767594599018340349452:26:9 18513019516505317976948739:26:9 33884813721533447284724852:27:8 61381856331932373200983861:27:9 86362306669193731277368688:27:9 42628560741883510676990755:27:8 20682265716095910323278496:27:8 98378830042587695078521127:28:8 25153035096394680975003065:28:8 96065024332954142124545619:28:8 84717210113423131960406024:28:8 24651992903676014783182918:28:8 48866349506054959750135252:29:7 39919184681415211448054788:29:7 41802048145962523962067324:29:7 14926702766564490521025852:29:7 99965758683622303579932903:29:7 68894759843680590470315363:30:7 86221714589740847104735475:30:7 47280094045234046319567984:30:7 61822638896421384051642082:30:7 36115052587846731548864602:30:7 16702608263342874266656804:31:6 59027419082574543886263299:31:6 82999033489137195990310274:31:6 20965013351577708593032640:31:6 79339088437805821583068481:31:6 33760045217389739724950977:32:6 26368759582346031288499977:32:6 29355150311105816693288867:32:6 70734782280842031841164188:32:6 67650853383168534807351668:32:6 76037676925259208272057071:33:6 41987074810673666986295720:33:5 21003844805907103705488752:33:5 98611459669072170917816243:33:6 98480016757820279306252066:33:6 47539485186623049126822077:34:5 44499450859111792685947397:34:5 44793477519635961547082237:34:5 75874740250405590186931708:34:5 36883391985232516594292735:34:5 48964449784839212395458805:35:5 74102218121492386301200753:35:5 90150334928894758024341273:35:5 72602940168113297113167769:35:5 41404257610662998783154463:35:5 85565943296545815626117483:36:5 75648931670396651584094103:36:5 79864589780312598596266415:36:5 62017060725560969932197209:36:5 57658145144643875494595011:36:5 37321448182378075713794217:37:4 31502392146313528821294908:37:4 13235966316442174439182850:37:4 90386967119192341887785095:37:5 11293484830268918132597724:37:4 14648631096385552697498293:38:4 39689741681255279843439147:38:4 43366529762774605575003329:38:4 54363910128161457462125783:38:4 23672007592059836326951143:38:4 75149926305996389172170378:39:4 92416123934596953708388662:39:4 65727331379665174466429622:39:4 37378466001615955538476544:39:4 40275676791167783617168916:39:4 15673403064886339724775909:40:4 75296600134598863098255405:40:4 76522981599088052060473962:40:4 53502590291760511539253668:40:4 96034864752647011610035177:40:4 22379867407238561654948000:41:4 45022053538679835244148650:41:4 71422730579346404228003056:41:4 15695339120142418147771450:41:4 65585380000177294402347615:41:4 10524080783937225680024202:42:3 95169714278562479528374132:42:4 36748090631145295152962535:42:4 84184479371266213856277991:42:4 79854809781970778453030464:42:4 12160453624467307464194086:43:3 23145398374646216253813582:43:3 56922580769099882228053570:43:3 14602234555231973493570376:43:3 25759398933917509073093882:43:3 56100569119529686989067946:44:3 66701039296920411304285534:44:3 54768212683371861623691509:44:3 33308307337509995493455669:44:3 49129603158156572279910125:44:3 21118864956770811151771190:45:3 27001937413964578261040226:45:3 77702402445757946873891464:45:3 89274489704649884284553954:45:3 70138723120014794169425657:45:3 56367278956511252568930110:46:3 90094683461947893655430583:46:3 50818284685933582998251471:46:3 38245799432765951452952567:46:3 94151750584893915836999195:46:3 25377661937152434059931109:47:3 71170589979187129830996713:47:3 68103283227488065213971449:47:3 69579390524500162055240271:47:3 70682366714806228642064472:47:3 24008657312889824774836427:48:3 90420020436278006044578412:48:3 35212193287938143507362471:48:3 59845316170994818177460189:48:3 56449905181477168923452143:48:3 36970493634321885887555676:49:3 99537579775733774703276246:49:3 57429897510356669990858654:49:3 22077524430692718424274100:49:3 91847563551701861166114435:49:3 40394522537953386747197608:50:3 18584950047684070028814359:50:3 88362198599006192712521016:50:3 63026461388251113868657938:50:3 57993574783114720053474006:50:3 75517845036778245054219738:51:3 60496803258551288006975051:51:3 83534959919010065672799873:51:3 16464785756860139142787327:51:3 86911144216401655499142028:51:3 10821607061622584299666755:52:3 33039142139987440078539582:52:3 75831302532626140244771199:52:3 10054557344924112416669094:52:3 70817170573238537087107086:52:3 32283942504555733032653158:53:3 14742823725076829922434745:53:2 49390256703398507144107180:53:3 24625838817377519894508377:53:3 17091671673980371346501340:53:2 35305645690587191089894680:54:2 89803641322067833476799649:54:3 92436830530351748059904746:54:3 19238887810906848565534233:54:2 66145624990350421009886748:54:3 98067970654868972945978540:55:2 75725260187455761261288456:55:2 74758399840391707277152870:55:2 51050480052720870341790683:55:2 77236321364913995237753012:55:2 22592901562089598948146385:56:2 90628978697291559072341326:56:2 62054854499587736337171377:56:2 66889798727615682657893302:56:2 99776193729451007014846229:56:2 36150539516039676617982518:57:2 68471867738868826180739773:57:2 65228257614859977580632005:57:2 79460358513092224399423427:57:2 35586654812004317890255556:57:2 24446321072888971745459495:58:2 81028022790443828247310129:58:2 78925382904252183565152808:58:2 39639949767461277769935727:58:2 14800751637535024345876791:58:2 89080177499980435326515672:59:2 35338287528365941233081969:59:2 36257156416259555674647215:59:2 21023158848507885571024384:59:2 41071872624043074901350740:59:2 85634779119415835002120969:60:2 60627431140143184404316441:60:2 49039969097140793270083498:60:2 37655268003817458837491688:60:2 81136181597896168365452650:60:2 43165401036355559774721799:61:2 14867092700032296224873668:61:2 38158724474505655192986685:61:2 79167387124679850878347561:61:2 14253848888863348604916023:61:2 66505379745503639148297014:62:2 76978052220483320530888095:62:2 75699511493611067797586244:62:2 58649715250806322466113807:62:2 27722858229710497234290777:62:2 88697481824477830689119136:63:2 51703495422196805166139384:63:2 83719701687927372935437484:63:2 56429514401173557291107182:63:2 30436528750388889531006795:63:2 36308250024108995742208348:64:2 37550948398848656009667754:64:2 30566374342516636264990185:64:2 69245036478452624047257656:64:2 23665063837439334784911500:64:2 89604007044603070310663938:65:2 74263123006476196914502600:65:2 36567567830615631338177641:65:2 77150436717056599327566993:65:2 16258107145546903860181278:65:2 18116512941479636603221209:66:2 80258518209226945757866949:66:2 37066165128615160812042472:66:2 69468296609331954549897353:66:2 62721840530582947836054990:66:2 79514715514166473438268970:67:2 95470920557160354248673932:67:2 26739246896548293188838068:67:2 79557403564046889887986155:67:2 84981682249495823076456392:67:2 85616825065199706011074566:68:2 51323348747307300222663263:68:2 71562709348747909402286296:68:2 78128367233359341161223028:68:2 36955371596403026477962925:68:2 40384613778410614563342852:69:2 29234185305507330681603372:69:2 90982774646186621325176916:69:2 55782257497252559068689880:69:2 48183791628556855600880603:69:2 56138115009477649280540473:70:2 34758393271804409704710250:70:2 69843180369174177773727879:70:2 64940870588147492824665612:70:2 88155293180325260984547071:70:2 18124251501815707627383113:71:2 86905780216238137211876218:71:2 81135493613333144299028898:71:2 64378255314651659933583609:71:2 57007537638015111718324959:71:2 81891934431425782639436236:72:2 24873196660745417322229054:72:2 61824918566482733129708290:72:2 79325348403663189533009862:72:2 31563048746237886101846205:72:2 83545959304883831864312181:73:2 55921285665978245278570472:73:2 42178211047154461300121920:73:2 18571833088601392105956405:73:2 83123523930309607198748558:73:2 51276003223564716279439817:74:2 90338684688999744478584574:74:2 48702069392658233626866680:74:2 57164685780407194603794318:74:2 45973382066907401977069056:74:2 16511836241938181357574747:75:2 44604779115816553238740907:75:2 19788299941211068011284044:75:2 57401775892588836763606933:75:2 48300652458763876987602248:75:2 14759933148139317816438104:76:2 85210708048496950757733947:76:2 34025142409962009736819364:76:2 58988956983429877273949045:76:2 63855704118728082082990361:76:2 22279706188676842571806385:77:2 59327971796723341788242491:77:2 31620283761505252781897291:77:2 86526856707856161351152229:77:2 88163886516013130319360521:77:2 28906367872770636237279864:78:2 58322103943950336952191865:78:2 58556017414964844092432592:78:2 16476964797121442705305101:78:2 98064140674148516174156425:78:2 61535053231967983023658765:79:2 15936974680049711181649497:79:2 91022065446474494856015589:79:2 34680169539274819233908836:79:2 24259725461231730124967878:79:2 55399218408062861545929769:80:2 59234903076666864188412344:80:2 36569972349497197201936214:80:2 52728830447497692754845204:80:2 41398123892136242496880689:80:2 38287780397292599587780804:81:2 84834729890691253209506942:81:2 13964314103103035536526204:81:2 37479283032233996775432048:81:2 53017957470721798096865660:81:2 82787502562397171689949204:82:2 80249421641298131766855977:82:2 92794536987845858283204349:82:2 67068521072331440771658309:82:2 50598292268403987511810271:82:2 27562679574438902298064868:83:2 49970296708665324658561868:83:2 25184934531001414931366484:83:2 85528504242296526884800188:83:2 79159974077190271648363847:83:2 15156787337273494673253437:84:1 48989668796951840536200906:84:2 55202653284346787292426158:84:2 55678621152266527309900494:84:2 14993214401409766643972370:84:1 77108491942776740327477354:85:2 34791071198523376864532351:85:1 88100139366744052493535864:85:2 27405721633898779051190603:85:1 86224311176478949665754394:85:2 14870117006898281282872781:86:1 60983160334739072416761272:86:1 12903706805096026583480706:86:1 92554267583949977705150737:86:2 39591516135037645190202748:86:1 44535568308810324939144053:87:1 76060300891619141404953699:87:1 56175599201557450626941606:87:1 49953263067348938869356978:87:1 86884604364281299680763623:87:1 52274128475453723085987909:88:1 59230554669089158193865093:88:1 90715544695029713747744371:88:1 54553461399308060307471064:88:1 96377455918344742936294711:88:1 89890797424704950712980341:89:1 69937496006845862894050238:89:1 89167997029370249944941511:89:1 64796235783730566742651431:89:1 59261016174949569810050038:89:1 70498809519042173078865512:90:1 33667833152480661653187109:90:1 39610857028909210745140128:90:1 44462923774466922987290838:90:1 82426809364670015128777338:90:1 57413839665226350117954689:91:1 76476538413219280090985608:91:1 59635403908127644944468787:91:1 43716903562556936411461263:91:1 93391188138138997696805760:91:1 37126048281742708895004473:92:1 15537347999080796319206631:92:1 52853047073680558184405108:92:1 18176186264318170607036900:92:1 60178538175588587104189119:92:1 98700818077759030435802637:93:1 82942796875690441314165039:93:1 19718444588198744529455918:93:1 89508293851841072098777603:93:1 35304243566708950953474826:93:1 22136569450890670026290939:94:1 51040581285314404507429883:94:1 34111712915531412789151796:94:1 14823886380508050498337972:94:1 74009126433495365255297026:94:1 74151362674721249595665539:95:1 99840108830749352336875777:95:1 79222203542664001613270206:95:1 12586979836233425845816153:95:1 23791123950460056838723841:95:1 97738305019245720459058132:96:1 97081406086325012166391366:96:1 23675879136116256329097282:96:1 55081153110536561233224877:96:1 83771709585111175108549260:96:1 98860397956211156441819777:97:1 99581523520964930711034685:97:1 91802380351692478193306788:97:1 26811943412811207048472607:97:1 24769287469137884417533424:97:1 12124851755443582021026857:98:1 22251322859183260933588325:98:1 17302841023787268047496082:98:1 83006606106218490176656408:98:1 50237942752231159831450470:98:1 91892485303700421659184171:99:1 67451918968462905194431874:99:1 57717472902722411945988917:99:1 40438281218711335634025624:99:1 64623214788658079727808569:99:1 72397279295487723323267485:100:1 98592489316880274301761039:100:1 47571564542795059886796272:100:1 63672198443633270932156698:100:1 46304106397604408974411530:100:1 307143955218203530940809404:1:307143955218203530940809404 682270811126795773979296099:1:682270811126795773979296099 575528783720800632979124173:1:575528783720800632979124173 539572032655421801008823529:1:539572032655421801008823529 340301661737428700988057647:1:340301661737428700988057647 999555549184200145170091386:2:31615748436249 323246324055655405640688617:2:17979052368121 764561726710953367583187419:2:27650709334679 162788275033485933456062361:2:12758850850820 211035764192996352924408649:2:14527070048464 950248507282693616878802273:3:983133282 291966347948514079925765073:3:663403256 784280471522269497455823058:3:922197202 548785042676686363928063689:3:818717528 888028752740448196586996138:3:961189480 550516451763871803501053760:4:4843871 662416991240507727323166357:4:5073210 332566857990201491454797147:4:4270411 649863790744641845653668331:4:5049002 805425693276093754011115748:4:5327290 434536250561488731245367492:5:212620 645786436145349221035823678:5:230153 224099720288515468715466573:5:186246 456454830045171530012630955:5:214723 224842114746958529596989952:5:186369 591892578495892707811607074:6:28976 630604760088699155625594189:6:29283 325739375056929429660736960:6:26230 745845501221422284097848783:6:30114 160005900413926589347561009:6:23300 709765136832403396463610042:7:6852 506517690108807722973459188:7:6530 935058638888864887490446344:7:7128 554265433766560538677306863:7:6615 993495941184271749214877717:7:7190 910315271555616588628280397:8:2343 938428925281169442974761534:8:2352 190376525713897201951551149:8:1927 830606957811906585153541490:8:2316 928623695373133181738141295:8:2349 426605608267911142412162794:9:909 196549839119110294340782971:9:834 846061397976106384864337855:9:981 747228490061927274876669851:9:968 331186092126915248221127797:9:884 913118492330792553093782112:10:496 139553299753649565507151951:10:411 512013028255069624752236390:10:468 481502436487697274088346601:10:465 521283156361449615543652293:10:469 494164622929890020837441685:11:267 251864932317639550632184293:11:251 462703007249295199372107311:11:265 100928815323076711051808145:11:231 749888614613454254609616007:11:277 657437335570597846482786955:12:171 693795976448554612594230991:12:172 598461603423588662574199001:12:170 591117971505896165704330113:12:170 276957514135543116312465282:12:159 376540531542145060694030748:13:110 471034713890342149491015178:13:112 621687840786472473922495375:13:115 811620067988337824523349461:13:117 943410478071335912112810799:13:118 960648230880983611381057901:14:84 808538572870798503469284310:14:83 268440631386177314986038595:14:77 685956493293785893988223424:14:82 117747358266026300299235995:14:72 362823054759928147151751734:15:58 550395188367209845037453712:15:60 918321599949445914483307575:15:62 378242014786682289264004355:15:59 386127421613279066400092602:15:59 671219768940407883772381427:16:47 302750997558540780313289866:16:45 923302580713121927565536088:16:48 669105538037539570789525252:16:47 240254204602428041056246535:16:44 454722918262216361349888614:17:36 874185886686695106851399942:17:38 910792938670117406187414836:17:38 459790227276700552663919911:17:37 824084404083843000433272581:17:38 663035793776609075568212463:18:30 349713594235371239072973569:18:29 240070880845698303600903423:18:29 452116211856216799110430396:18:30 494911156537792972438251144:18:30 993404002593997429218706474:19:26 706698703643448864502104088:19:25 970864163057688958268190633:19:26 790929772438681585987867066:19:26 409383069730798845291243180:19:25 513198680091333447554377596:20:21 815914255640985004912230559:20:22 617103576473898247373772730:20:21 134870408841082214477393782:20:20 570193912850248656582236786:20:21 366977159947318057609440364:21:18 384378630688824654583503783:21:18 624227586695342114188211568:21:18 990423839549781201400346746:21:19 728948896431865619984566768:21:19 629239311161283224845816429:22:16 510592457501332791511639493:22:16 874537134734945342673881005:22:16 371901897400916096986545641:22:16 683698909511778973536945623:22:16 552923279446274754836770175:23:14 990844056526926878872570390:23:14 422324640431275449349807983:23:14 193712545572980503965999421:23:13 986349167560986753114657249:23:14 944983725101515206806513112:24:13 400580572278219149306143829:24:12 559268786094595138509132470:24:13 658644258336636718623226064:24:13 350432822300550109279930629:24:12 413601873532460291131699211:25:11 824751322221571611149275174:25:11 797108530224555788869352784:25:11 322790362037401086457309528:25:11 931306011850489582529342750:25:11 745806919958085715162113257:26:10 258857993621164342191529193:26:10 716648258935308011411879946:26:10 311361112632481186857523544:26:10 869735456039616808274587278:26:10 893231559349084906221718698:27:9 344674056923883943072894430:27:9 517117478325121904359679155:27:9 980976645129284524116410125:27:9 542553527113627864697464949:27:9 572079085827601799351469159:28:9 605918508512019377926276008:28:9 597664439477819542295530865:28:9 282686222385284084454115962:28:8 849365944365917809036254718:28:9 456773055116026188245089952:29:8 361770019491990442426337186:29:8 320046715365041741570759804:29:8 563170297225882222421644909:29:8 331737453181644388187899810:29:8 485527948836698432951595269:30:7 221645211555142856215578861:30:7 872978603609465642619447384:30:7 249531473475793195418684696:30:7 915831646239205103966110287:30:7 916190731417919115868295347:31:7 131647859971794913903360722:31:6 950189501148967528304786193:31:7 837329725620967978732196368:31:7 516279822138293754767224746:31:7 835872277523137375146694180:32:6 426481539632579579126500842:32:6 447105139756798293494382208:32:6 825506377989045562123452068:32:6 108532694613397860659766765:32:6 963917282194423857304685004:33:6 692585599265881996603795476:33:6 146569860041467075932174269:33:6 950293856327647213407072548:33:6 965963849562411792516563527:33:6 691024991361826851958080576:34:6 211379545696208057694579816:34:5 426296254061912502649946872:34:6 301067654176261010728626968:34:6 569079874043906599486400821:34:6 875135845787342457086812575:35:5 288071447745633630206412434:35:5 113409988484266046298989169:35:5 742496539238217524581246537:35:5 249700292594424065913975418:35:5 329139716378829280522885047:36:5 575104963166888593517713246:36:5 777923113742794523023826192:36:5 338873867653017019010267460:36:5 888056517832473917902434189:36:5 935280965157916076224988475:37:5 934605228662850329896709216:37:5 452372188001743388968334658:37:5 694137494413224677716966142:37:5 826041432801030308224759094:37:5 612884293973309483464594764:38:5 593804213489884351149217533:38:5 116078002038296384827014236:38:4 388453349127836095714423254:38:5 837922166218769694568999537:38:5 977107366165900594477455088:39:4 351535162203069234904703550:39:4 948180091432823472155131315:39:4 912618352915796201573752821:39:4 565978905415279727254196934:39:4 446643423649190309219891705:40:4 674066375111258892551455050:40:4 230743109388302562161203547:40:4 250183439459672677859791752:40:4 552056237282632373246326983:40:4 394648911460644040552029070:41:4 510731199822751267989905217:41:4 918389692117702327418647239:41:4 841126068916024682501420538:41:4 699285376798677898505954046:41:4 475588154476141384316648006:42:4 896507823086626313462649771:42:4 185457168494514517862363563:42:4 433218799869408869040546533:42:4 522880645009932091103196568:42:4 960438482565874319427391503:43:4 348922811856692221377310005:43:4 767479813010048485599958707:43:4 711369058107502238271617414:43:4 920741597732854624567165266:43:4 527029989649360834138155119:44:4 208692062284449260312540330:44:3 256721199674734581723721126:44:3 142251879824255169593101409:44:3 974418681805670627126038091:44:4 367897250037030648550133753:45:3 170196855500320965656753485:45:3 219984237596729898705324611:45:3 750294658042623519462905094:45:3 369593629125503369747229671:45:3 460705628967154786984860503:46:3 559224094718968331964303138:46:3 138290270375227787789957545:46:3 537067938947598447588969119:46:3 481174344601685880016116090:46:3 697612339134038406611872855:47:3 549044033946859270074882029:47:3 717499335040828877538847513:47:3 755908724112915041542931074:47:3 103545246481323615971986466:47:3 435037266628884100316677948:48:3 264942957254714254373227285:48:3 476679056691590361052954794:48:3 832659523940215338708946474:48:3 326142027239981367524942260:48:3 245271138206753645581583101:49:3 881480350211521998038481491:49:3 862965719886691689767522738:49:3 416017674494908965289096094:49:3 615664103680377790985230896:49:3 437581348728285038479018187:50:3 519230721433527334187474239:50:3 474030100330633279947244009:50:3 958909218517830510218232750:50:3 406105462480398212774437370:50:3 606266308933710034447595601:51:3 942700774279020846048371774:51:3 150471977457142609845584341:51:3 812413631197447314784622647:51:3 732913708508209834924659032:51:3 595944166960330864548970391:52:3 334308723400952152102002602:52:3 889118834090601750577777306:52:3 977237349714957441345694217:52:3 855858055265973180462462495:52:3 431861025410124700208239766:53:3 296709902454094574235966987:53:3 810536309545443485874378039:53:3 843685616659789922400583618:53:3 510914361954557113010181125:53:3 120034335061857536231631356:54:3 479972838365807180397230806:54:3 322507435706661430511123890:54:3 899258278494898425933667688:54:3 737647300713169260242170781:54:3 223706136187683384947539309:55:3 106321313917255558422265249:55:2 823291061528603725754599631:55:3 803765080950048242914435566:55:3 824250412730637198234879137:55:3 469305768621979846829462935:56:2 854211005645536623732818297:56:3 413162492438118913272459555:56:2 240299344382011614987437818:56:2 579532428767207190774036771:56:3 899313150830092434989236656:57:2 861029849455564385690142420:57:2 226188402564386005876567397:57:2 440848383852942685896464606:57:2 747071021815770008230105930:57:2 284814450433511439413993546:58:2 456867277438787989357560977:58:2 918668716627221781072314267:58:2 596080723963141046251920433:58:2 872717135984182741727361526:58:2 531142915931559768223196686:59:2 872894185419038132606006207:59:2 316391115474450534858271945:59:2 200711099762819442043596350:59:2 971025289902120521223954666:59:2 104766487868057663058703987:60:2 828899632581084079621956848:60:2 619686572329203172777273682:60:2 699880691539759534058587126:60:2 698258317829277669528165425:60:2 796775539784501368253625082:61:2 262235680880009522166605742:61:2 759434322616248205490632553:61:2 692605795399029474964023686:61:2 290014057512867633885065297:61:2 275414156503143676190880803:62:2 925757386267477672515058758:62:2 686354295548232455532528671:62:2 211266819232171179394023460:62:2 273204275060770730284832475:62:2 929722226210263441243611364:63:2 782550306652865951029159509:63:2 598406193613777726077352368:63:2 697401161582787285133541701:63:2 407019440204086809787797437:63:2 881410302258077339701381432:64:2 465460026071960052472055845:64:2 707621158490417627820441930:64:2 856858344687836815138655393:64:2 514360979594712220212801075:64:2 592970705615134222456836304:65:2 638839547507833608357094506:65:2 827588142329945598650348392:65:2 719301035980922507514004119:65:2 742547945713296737134989853:65:2 816361615255543380896510922:66:2 367797033800684154024441565:66:2 583367075146233831935558859:66:2 459439908342307936880125803:66:2 625438756375943838992074276:66:2 189209474716463944803363304:67:2 735216177457789308152650184:67:2 345869422968068166537638442:67:2 795791401523571740015312838:67:2 330373093334422753463960179:67:2 425394467622590081959866954:68:2 823131681591029159768123452:68:2 624279664243110968520534538:68:2 898527685675972168685328767:68:2 683406983190826846460517983:68:2 870166089235200771607521882:69:2 366271028974964925717512186:69:2 896391320340324302150339191:69:2 992924397610061103853351291:69:2 793804182078197857226607039:69:2 978160568385990330961754849:70:2 457452979077382164899905172:70:2 887070132303346258899438411:70:2 812058115542105179078236834:70:2 247212814150254814489945111:70:2 143994509716959597496504486:71:2 257339127668920920483109438:71:2 234788829205381731081488196:71:2 277281232167786916934469300:71:2 838155913560947756041474800:71:2 257742150934103858525135118:72:2 557791756062172493681217940:72:2 842787455565685202405418106:72:2 401330102018158325180701264:72:2 533494687089801756352399260:72:2 714080190224709409006751937:73:2 840630505221460550149076883:73:2 222257476415861924047740287:73:2 638681309971912809687618897:73:2 281001669252001189097351888:73:2 605566407432026484045652623:74:2 444091362033884982454810697:74:2 504321910856786160008349329:74:2 300155722874082103237022151:74:2 443272055065094748472990572:74:2 542000254877521612981399149:75:2 912437537222479404114311480:75:2 267130301983990505854100164:75:2 150566335188625268403277134:75:2 990713437563200081195184025:75:2 437502664181427760882793548:76:2 849884958459174771713914790:76:2 657795790490378894301117503:76:2 110318758199436063151032401:76:2 766815921619569497310153245:76:2 428420114530534009145885792:77:2 457706721099030366838861737:77:2 595341021263541681517066087:77:2 222170592418005135479595599:77:2 761066819487507972700030285:77:2 702912069192754132626240723:78:2 526256985646671954740591163:78:2 869896197349898318931911140:78:2 364091027413373349025109267:78:2 167945647638584562105667062:78:2 858342176291638737927952242:79:2 491375317055432000915085247:79:2 419055852679732625267898100:79:2 404517064568035260269518314:79:2 364744024262759432157377809:79:2 947277935744870384724768491:80:2 182392266653911487029664179:80:2 607503299340698582289395286:80:2 691985271876920007125536562:80:2 813908442216741972553529098:80:2 804431738990129704179557584:81:2 663182122365693137300733147:81:2 150982560614047856334364256:81:2 870180265318753707129018788:81:2 961722855498767822993352681:81:2 731736388352179303573135257:82:2 226619017883366516895157161:82:2 425732853616109671558641757:82:2 284402336215859469149191543:82:2 523540305337117474833047882:82:2 426696130808644871332586213:83:2 464866343457055010645016548:83:2 439665627064682257635508383:83:2 737464639817797901340503308:83:2 398168716600194817053335015:83:2 719016784847680116918844851:84:2 850628714128945922764674914:84:2 641044605468065693608425778:84:2 595732242289511000999831178:84:2 700325177413485721515711505:84:2 660661166885056199536462392:85:2 569507375771343435374019182:85:2 721340582609535113963654077:85:2 942422347784608320750202730:85:2 576241614356345236255473406:85:2 948177679012244335195528607:86:2 875696700561614840022417777:86:2 384070343488339172792166769:86:2 770610941341378254845552263:86:2 746641358331756622009526795:86:2 225835037775653321162406482:87:2 986817445249819330865412019:87:2 616780861700730986391109840:87:2 216305282337076651549163487:87:2 295599901010436756375769296:87:2 491489596921107571295188077:88:2 259813483252542196788182807:88:1 579955406294440197184152434:88:2 895320425683649640902189115:88:2 644096915184540543748774885:88:2 172221509828360845310900051:89:1 185267263801705619842516483:89:1 348416623554686493572761064:89:1 771899233662826995171346727:89:2 934736202032819872552878314:89:2 816748757316336034609392461:90:1 815559565780910757646088456:90:1 394742957087612000828402864:90:1 274829753160398905674863044:90:1 911331055479759952169226830:90:1 151868109666151240402791825:91:1 110072015698249005012531485:91:1 307795048385320253938783719:91:1 366581913124025738169768961:91:1 568439825383853506201620698:91:1 802506305799567641733853743:92:1 636934136009603374244614841:92:1 918736251585663981150014039:92:1 589659776161270508183197969:92:1 239103127322902737474017529:92:1 776295143449078731560445959:93:1 102794887989517510244286016:93:1 833203683788092227991337918:93:1 223737199878108907969252056:93:1 182243602062537476207305495:93:1 838214755801601815725754703:94:1 854631175116241761866831166:94:1 150788851374446704306375374:94:1 565353364834480369730642804:94:1 693692663584885894637774737:94:1 970301881335814031994936067:95:1 370065818027590818189552471:95:1 813847003454606596325004579:95:1 413973180954831651322364007:95:1 344886249164269562950927983:95:1 391479767864145577778855019:96:1 100972542850824741441742111:96:1 195509156430397957718967627:96:1 632964892837793868703042399:96:1 504816643119044022081505932:96:1 763478562353117772976199462:97:1 378157762783893418426756580:97:1 789724179510805913154428775:97:1 227009707995111719856361140:97:1 403240148238250958610130550:97:1 835064848217895091780409683:98:1 627127689576122851352014813:98:1 562121166629246990083909042:98:1 701252036916253477959154913:98:1 208677531914959072353936492:98:1 138694848769272067551836608:99:1 653401532026139462926261742:99:1 641011888129680718104913796:99:1 373004201928082462554829581:99:1 553430587690604946266266044:99:1 454369022483691501923120077:100:1 213576239535080772999206185:100:1 377616088942759439390302299:100:1 466262319204823733948350073:100:1 701847213678577805556619658:100:1 5102893346240657627678440241:1:5102893346240657627678440241 5515331130671766738559129905:1:5515331130671766738559129905 4826982883271320867609766596:1:4826982883271320867609766596 4525935396974311009752318954:1:4525935396974311009752318954 3433683858504809392023426746:1:3433683858504809392023426746 7746123418162873451889094134:2:88012064048986 7297558710413066721143293863:2:85425749691840 3043311764597559012101034390:2:55166219415486 9126655693839782498107546130:2:95533531777275 2045324991692415958415195324:2:45225269393254 2370415979629713341228445420:3:1333341885 6718069848255475834946130166:3:1886896902 7919617019339686799184350633:3:1993278856 9779559813026167333549516725:3:2138486119 5374336730747157104450229429:3:1751626974 8327133805876420587105108201:4:9552650 3860552938258995039470722369:4:7882470 7741445198919821878877805029:4:9380057 7674351469468721575693513021:4:9359667 2208151912166504123348274923:4:6854996 1969152228622668220446130094:5:287644 6180285144474369883231799862:5:361577 6477536900056979356634860172:5:364990 5109075709449815184855605426:5:348071 8092056475868514028357685830:5:381603 3245853443141871864106433968:6:38478 4230996015988710607858779312:6:40216 3778446068596821076409814844:6:39465 2879177427583066318646134589:6:37717 9779600586025353224757754993:6:46243 2063805570386888332806552514:7:7981 6710960083659759811797909221:7:9446 4707140000791590199358780313:7:8979 1817519913712685058238080569:7:7838 2307223980857629729139041309:7:8109 9243063176855586761341865319:8:3131 9975988990416858885776168869:8:3161 1584341761403070817983616312:8:2511 2127740601622632403562630028:8:2606 1774487387791141114058879097:8:2547 1010650423484047013165377016:9:1001 8623318280011037440981232030:9:1270 5806944950959463676900807569:9:1215 6826817996685495744394894906:9:1237 9517104939635483939110743159:9:1284 4240036202949490838890776307:10:579 1768259186982761867300840739:10:530 7650240870292407636361442524:10:614 5974536532893350692722049182:10:599 9597950053666151305820003341:10:628 7843693397681710467349172211:11:343 4467512649976626967250412717:11:326 9135864966998038656683287063:11:348 3853548355311485103140575975:11:321 8853181020157503392426901649:11:347 2468148559206244682077351055:12:191 1787910311004107404363689785:12:186 3538310305995735098589770309:12:197 7865515788811374287890616184:12:211 5184010484786377560377219954:12:203 3726899917952919007638775626:13:132 4609389038588136183165110912:13:134 8538675539968262234900464625:13:140 4840989834766962441036928015:13:134 8003354260544236958658252355:13:140 4434524681191268750210459874:14:94 3522392365174133156795416073:14:92 4947378646694147623047749729:14:95 1783089944125871878467046260:14:88 4199684176548708389446021006:14:93 8174229492201759968526920981:15:72 4125129309770171089504672228:15:69 4531115359717672900973796376:15:69 9186495472543399501899014026:15:73 5627798435210699363866428207:15:70 1952788251247857436076036103:16:50 4727698339483954747008114213:16:53 6026266216627554262172393982:16:54 5869889534239326677577577344:16:54 2237675963820270656035452420:16:51 7883502321340321711045026345:17:43 3451158828196097667552305684:17:41 4010058610355041258143359298:17:42 8885504705319191691657172063:17:44 6494873656504678865782064770:17:43 5728683392108973086498894483:18:34 6582491813753460642969163882:18:35 6053924363582314129817092893:18:34 6997657270108289723709556019:18:35 4779171658847642624998701458:18:34 2456556844160353187876300965:19:27 4641057381240458623241797120:19:28 4422171678087322079071885309:19:28 7710210987458801151645480672:19:29 7324535138241225032736713596:19:29 8673565956825041311259918617:20:24 3218209093198464682511184516:20:23 7721800101050671843386649148:20:24 7138747625177945351575111557:20:24 8236194073843213027140429918:20:24 6242440944621954624356662280:21:21 1076766869572104509208338924:21:19 8078799741069500433102346993:21:21 6842534608480738541021572078:21:21 3825343862269383247932359932:21:20 6276096454146837084243967425:22:18 8397301262180445034918840927:22:18 5201422548825660711146161571:22:18 8149163709422809858155793724:22:18 7884964582967331116880271266:22:18 4521036262486067044465812405:23:15 6467891856265388074754551862:23:16 1506609528651214190046812689:23:15 8466518278776275822199035773:23:16 2982782618398291037206442796:23:15 3842688782018415571128263667:24:14 4289682675605762986062786912:24:14 2177277399351154906156200405:24:13 5478911208476992675312535966:24:14 4766304632148105234940200829:24:14 9819933578321546350992652599:25:13 8422941121366280840283886140:25:13 1333177086635626004119635606:25:12 8895170933825088294695906384:25:13 2720568132741434416583496170:25:12 9562169642439907017732308379:26:11 3819961333301253405549127317:26:11 9576802289696478427890687684:26:11 4261309232777415124674266330:26:11 9533460702055194253774417987:26:11 1169895401625701982394163340:27:10 5003796943711977166860004910:27:10 5966128515165170060643377131:27:10 8356984777129480364218931985:27:10 5152746889318479282788084650:27:10 2769782667651197038451098658:28:9 3026590016340519725580551623:28:9 5141740596912124853557739765:28:9 8793934875203821956589951377:28:9 3999204174875963205486657052:28:9 6057320297599234556512882512:29:9 5823638378350037066851610884:29:9 5589051892274402062116776509:29:9 4000409777021239383204239734:29:8 3192794136599687316010309328:29:8 9241651626555866533292611848:30:8 8623553269178673407649829170:30:8 9756289582668130479868861246:30:8 8970768269820609289019806509:30:8 7211469904332906104230489750:30:8 6586042165163364526214463075:31:7 6259942960710985879478375034:31:7 4557035539351230997286989506:31:7 2366728506062139432453288734:31:7 1629994925544531848886121478:31:7 5291321190213862038951502660:32:7 5124601990410728773510731880:32:7 4663518212407066244652487170:32:7 8747778653670878734346290051:32:7 1342895546790191631436291354:32:7 6223987452921935868129005292:33:6 6081128566394262985638967881:33:6 6600439880741697671329383817:33:6 9499679560658892337827785133:33:7 9194755994670898399745421570:33:7 1321378980011857732222066399:34:6 6566042813956450637073961163:34:6 6189355376314384501368583828:34:6 1278988886551499432302370071:34:6 7354660311066691791537967950:34:6 6063001916762748228570539250:35:6 3775883642504838015475356126:35:6 9729325640966796026234658320:35:6 1461255662006200346956942697:35:5 2332659480871295292420841770:35:6 4940102574417350578321219222:36:5 6460886787122627375445384696:36:5 5795242792176060396657919518:36:5 2794535095142560991206775555:36:5 5110443289608904757773490690:36:5 1502955159799456758344885452:37:5 4248502128491850940708198414:37:5 1916731942077341747372898092:37:5 6350678576454750431328763007:37:5 1884778463169562634001947115:37:5 4349827772870009652679123461:38:5 8296513354867054580024037835:38:5 2330846780683070241707053050:38:5 6018366325540442369369600292:38:5 5829698190808368742274484079:38:5 2179089919397709800913047357:39:5 1177895396675617409368812157:39:4 7902994095393447631728954193:39:5 9093417580217818045867964463:39:5 2718043923713567369993693884:39:5 5982959742380255482040859097:40:4 6798800132185484189752851291:40:4 3533396837515808418495453237:40:4 6595896484519651908945206491:40:4 2674366702806431407066013123:40:4 6105282488477609860472656964:41:4 9089797960174093278909660424:41:4 2515664099184824174047030509:41:4 2921293846268738523977402688:41:4 4936642785428825968687909038:41:4 4475685533568602368756845029:42:4 3056149956404493435793765720:42:4 8326203700057143231219337895:42:4 5423511313004085757588221143:42:4 5021918171193709003629847729:42:4 8580103891173774891339793783:43:4 3518474092669508174116398752:43:4 4989663415596409200700512008:43:4 8313422759771541835868749075:43:4 2772492326044447144461374474:43:4 7151036164321414231657086334:44:4 3752061605184333970278208414:44:4 2597425947122650341203328099:44:4 1955874346869985975905451497:44:4 1437205573035579676305324343:44:4 3245408474860035672939828872:45:4 3947452821228740183949174592:45:4 6041616420054208621946046852:45:4 5504496573710865102029724164:45:4 6270784964361480938453020091:45:4 3054734654506034030319776520:46:3 7543160799433639639429178000:46:4 4962416746297702944596232959:46:4 2315290597232510066459010465:46:3 5610801462150369284835058089:46:4 3178236994566839989773241254:47:3 4168981948511379270135916248:47:3 8798506952141438207979987088:47:3 5521632121183798376130760922:47:3 4930714614554023644539342491:47:3 1375495733849882145993557976:48:3 4594609347438533082312333254:48:3 7166782368174083821127717935:48:3 1860476993244113849437880396:48:3 7397217129174944249231877743:48:3 5520079984404264572250314653:49:3 9106983182976329093344108642:49:3 3765501482681122648565260070:49:3 3246867522948614893521878557:49:3 4604389091942330017989887821:49:3 1834908393759493094503246225:50:3 6982747052474409616582152716:50:3 4565528929288204520423961040:50:3 9625289738483637091078201276:50:3 1123119271482485209249457910:50:3 6082281514004414650390687846:51:3 4897252958362514387897797628:51:3 8581788008263722752267757108:51:3 4839083953231013155839620932:51:3 7137175825357779263476994775:51:3 7626547316928917500990244428:52:3 4362523118369217516441484986:52:3 4391977199209994018655568839:52:3 5943944937926794725458220550:52:3 7512551926314738905719792695:52:3 7405560414185877723504525954:53:3 2862654587669841077912542972:53:3 8892685682152777040246483225:53:3 7792583372403031878687003478:53:3 3230699197710337369270968876:53:3 5911275069675209470840118724:54:3 8277450486355611456370685161:54:3 3527618405677758464819004515:54:3 9583127821922941435749137765:54:3 9116541896131704068413613668:54:3 9120820627439685424861855937:55:3 8459775779435995658906385514:55:3 4267051448444557686998096801:55:3 6965385561168158073719795449:55:3 5360727291727876933178279633:55:3 9786609960595106962876202895:56:3 4823730519066080838216278344:56:3 2627226826731295702155544290:56:3 4797467554583716315055277054:56:3 6563840892890799241645615795:56:3 3364486162667833198729374613:57:3 6592969360190131509188442120:57:3 5693021317788300929194819749:57:3 3151366537466163771747640999:57:3 5294377903710016509050839599:57:3 3718274315703417498128643284:58:2 5999290606302649631947294054:58:3 2657873657879672828689840539:58:2 8860187539425312864309146439:58:3 8113730190502987862600144857:58:3 8062032445924800699319672266:59:2 9569894870569945422953753911:59:2 8055223211094084712088864387:59:2 2085644716734121765147667610:59:2 5491990665993509207434625647:59:2 6812497060900368749064809363:60:2 1237078312953916000688573543:60:2 3213524665572821133014745333:60:2 4311659193075194574969837024:60:2 1514639694344540896857801567:60:2 9071263920761457308064826671:61:2 8158485313470745508422951814:61:2 5659301329358107137648299559:61:2 2955189025772379319633941435:61:2 5681311123904614210994761762:61:2 2610390128273866587091422744:62:2 7121698360736227201553971928:62:2 6082021362391848696182805471:62:2 9327233174625073557955521203:62:2 2096028290415180639209126317:62:2 4818453783009200798447811290:63:2 2844441665099787110421537181:63:2 3535974019085337356300087976:63:2 6118529080160844920705320393:63:2 6514806949201210368692249181:63:2 9314586025267315973447203673:64:2 6533346195957082070306568391:64:2 4329554397700831962321135084:64:2 5366480351576826625488039348:64:2 6473018395894026131610579344:64:2 7564038821542695692352701495:65:2 2007870905575767117967695214:65:2 5757422181852655474995531448:65:2 7111376305277766910138439087:65:2 2769253436271899134046098682:65:2 5666660261537188182782235465:66:2 4175925770037421505022221155:66:2 5072728739940631410510542088:66:2 1580659089970721423213546639:66:2 2162822465729755234341317402:66:2 2606071498530434542675579324:67:2 8978865446126610312043712188:67:2 5447315532307513759401857406:67:2 3139530396846613896112361794:67:2 2932525940692423563049951987:67:2 5517769220320912515649213189:68:2 9991919503647897199425203204:68:2 8917612889092970260625750331:68:2 7836478723543714046065272005:68:2 9532554835885321510071078992:68:2 6666214909560828246832273227:69:2 2668532396947484008509624269:69:2 5278268749018383549860646767:69:2 1425554453662674191110715879:69:2 9575123441074044930378208039:69:2 5362417424913006247730934512:70:2 3016994096694900624812538718:70:2 7787782937603259305209999614:70:2 4701635155141042873559268520:70:2 5853772273776891180404636479:70:2 2285068797173674790008235126:71:2 7840282218348325163320385629:71:2 4427444602060134284989435865:71:2 8613531221625747893332837582:71:2 4796488820628116710242529049:71:2 4532758681986665450553468117:72:2 6754165108874118522716097629:72:2 1932038298556871203671460630:72:2 3653528818117007188609162539:72:2 1841153465219445806406902806:72:2 2118839727731990762949058960:73:2 2141041571685918219028019135:73:2 6231626686195548193595072461:73:2 9417484016310257653708345085:73:2 9022853257571760291509665003:73:2 9639430179074759796361780585:74:2 9116327274003771954027092534:74:2 5530239532924580586856894847:74:2 5371838310440032915261203509:74:2 8853094920879410446819906144:74:2 2942961377132958250450274729:75:2 2960375014709338315671691374:75:2 1753601960935328887993492201:75:2 6453516642718179120972673585:75:2 2598356477958726239833878598:75:2 8027777502087774716090685787:76:2 9698586680668801992435912830:76:2 5760055455271584557565935551:76:2 9285301448729850098377611645:76:2 9534119816037745632046102696:76:2 8216709866584698552795783839:77:2 4906277155619421499034713308:77:2 9876411043624321736780550372:77:2 3195316323554109779306177684:77:2 4832285061263533821328348662:77:2 5894732809658631776854817114:78:2 6625126757321564042556841227:78:2 8001934433299972275603822683:78:2 7826566233233680988756267317:78:2 8392881937765595125666799573:78:2 8804456958199874209659724833:79:2 7318023146213966725315045329:79:2 5291005169724041781436638376:79:2 4607088210730301605761148917:79:2 1696118108510915180955730858:79:2 1735582523482543757679190891:80:2 1212889029862888168533155561:80:2 5789657435732443359288697173:80:2 6097634258180949870513157259:80:2 1761981235838498757944766003:80:2 1460689314301709789179387678:81:2 3883066976960801940654174053:81:2 9943080673884536695828168073:81:2 6147738569696413985506969726:81:2 8290846949566425030231199917:81:2 9629206612824241959273814236:82:2 5247104490964778504021611585:82:2 2236476824557116281970757886:82:2 6408636736193760472247759763:82:2 6727112160158464581012250256:82:2 7605609969193745252737991365:83:2 7439106272067548333931753454:83:2 3545063542735953726136800068:83:2 7755127356015398240526166795:83:2 5964730963513808881128506378:83:2 6724699595064270184428150890:84:2 9961890789389373656104668515:84:2 4413562970952295621577817109:84:2 9874741062728536765157446194:84:2 3908491593776851958358213966:84:2 2508316250965039461989081355:85:2 3333179233814700617070909487:85:2 2101274797349852541956376742:85:2 2330732315150999653175607645:85:2 2129117772472181105401337224:85:2 4582342495435362424915645077:86:2 6211272534822098957476894699:86:2 4447822206346304735946847736:86:2 4697348450058423082145476013:86:2 5479961855517336937472135467:86:2 5723641939557250032729320675:87:2 9586405018766077670880276726:87:2 8947689371378778169076008531:87:2 7607432692409383312976701146:87:2 2824512414975179662594588319:87:2 9697441330418828640737242714:88:2 2136351422448553166413943081:88:2 5668299227957950818657010472:88:2 9688131617804607422055377803:88:2 6244769067100563232165857759:88:2 6518507063591965881830454193:89:2 8740564937296113114739892411:89:2 8360972785145014125758381934:89:2 7988286778620404284823863578:89:2 8094946880713385805614093108:89:2 8846201521959583727737031720:90:2 7017284300022031470179126212:90:2 6466244165309959656317421468:90:2 8419844761666706632717115711:90:2 3649695226164012477730537737:90:2 9665142237574156279543150791:91:2 4611042566281370622549549679:91:2 9491398195947856249346689967:91:2 7318637065984444158308258251:91:2 5953546488362780662721892618:91:2 4999170060414104682480721710:92:2 3338204738113210936782523926:92:1 7626680762189578273833310453:92:2 1663769810290423093390691215:92:1 8857776185573588008761115752:92:2 2680839588240431863272159241:93:1 6152131186829932082413936685:93:1 9186098066027386461195227991:93:1 6357360246515171034347188085:93:1 9713771765085446813517927368:93:1 1368164389910315042125924578:94:1 2913503526159649776277127782:94:1 3622789692019881637293849252:94:1 7070266669417688018319706388:94:1 3507150436328987380811696419:94:1 1747584934153556939972006348:95:1 6521439065197438970550064555:95:1 9663819197604663022095614764:95:1 9108805448046011599653044946:95:1 8968351574254209089717555820:95:1 5189951090376824587531046621:96:1 3134333488364297891755100257:96:1 7861285314261654051643296385:96:1 2913921058219037925492018754:96:1 7923802545442175387224768075:96:1 5704154590523650456002161719:97:1 5155459481737739213043748593:97:1 7968726107061217138676758769:97:1 5427482713880342953057791278:97:1 8874160055546619536655110675:97:1 5808724815086456873771961155:98:1 3255096289462683557964113208:98:1 1029822622202727737724192244:98:1 4378774273171149656967483386:98:1 9225232012330758407187245960:98:1 9369225903235941347402757622:99:1 9517654981849877730233262299:99:1 6532397580664579695634422617:99:1 2864648615510618547677419086:99:1 5307766870562526739820171656:99:1 2548224937379465808754865915:100:1 8560091243157666659406762786:100:1 8229990817622808165993232495:100:1 4594393617688568771508336509:100:1 1173177448266370631265545373:100:1 69571849832936206301740534598:1:69571849832936206301740534598 11286133129900552440905626764:1:11286133129900552440905626764 77672003230380930350772295291:1:77672003230380930350772295291 16208997938884471311589415696:1:16208997938884471311589415696 68245009519815827263639341954:1:68245009519815827263639341954 37403075181604731333134657822:2:193398746587470 80368854627656095007785653607:2:283494011625741 11544487222398436303703968029:2:107445275477325 66638689509278520094510553361:2:258144706529648 87187674316695883920071164013:2:295275590451862 36823931185545193662355502414:3:3326927856 24560212833870391562434153445:3:2906770263 65613161039295667283428267904:3:4033329044 96669965912335883024790691325:3:4589483947 64892516713243357425542609147:3:4018508326 84586844924773697258782740680:4:17053978 19215993718632809943401842288:4:11773774 91261489502083297034450830948:4:17380885 15503338330858400043150793635:4:11158512 65756946068923268347976098239:4:16013468 92974827424927801093976439458:5:621832 76174458591432332608598095978:5:597532 98074852837870041514178186712:5:628509 80644176084043510544027175096:5:604386 21681298473425580661479442943:5:464747 57283235116921913015218822408:6:62087 23225569728694490878924433504:6:53414 60446893533228614177033486666:6:62646 20908392737813741318655117610:6:52487 47749743794868072798196048578:6:60232 14597687373214794044779392136:7:10555 38263820946282218988097821455:7:12113 40259279294711276546130641077:7:12201 95100379663966658583346030672:7:13795 48954596460443271496844495396:7:12547 90601477771401553893488342753:8:4165 19485149374656801786675187958:8:3437 54159275471716189817563009796:8:3905 71160549042671522917955901335:8:4041 11302673935242539992315693607:8:3211 91878342802928275261528101547:9:1652 18672037864637803594961283445:9:1384 14792526981976886330931027974:9:1348 97562444915802887970657607271:9:1663 92360663611083072860413692889:9:1653 84753994522103024022576208287:10:781 28758895476895151890979042914:10:701 15763400017435043080279088281:10:660 50387279198308441449390664653:10:741 44112115164104762876623761970:10:731 42520554594753876768782408737:11:400 53789941206337316392661885876:11:409 49186905360877641835796806269:11:405 53941806455045125108738102085:11:409 40742152797194483133853006460:11:398 46588199594846413975985722477:12:244 19053227617188771463994580345:12:227 69959061027866647772842376922:12:253 69429084062720938938664746641:12:253 69243028865128462990297487233:12:253 33338930355612784230337270515:13:156 74114258948930612843879692345:13:166 71752696180128903985464836250:13:165 11493594190451155005491208865:13:144 59172917304925877845287045427:13:163 69691177037891041636888174974:14:114 16779281328809450862175596475:14:103 22103106699184911344112903209:14:105 33458439556897128716592786887:14:109 96901782157610156376413019696:14:117 10487467145764520719067177584:15:73 61637574624925699346678233081:15:83 56818346297565781678361356800:15:82 44759176468091813569316093121:15:81 69892442100972505054685738357:15:83 91209217588654445935584640692:16:64 71211101820208613953717761964:16:63 15151586048207819496665202684:16:57 78973966001842815712993348358:16:63 16209610763960344529378724555:16:57 45696025933938345525174329908:17:48 43806131632437699345196143426:17:48 77172150207550023007222623173:17:50 63514466551029028017953337499:17:49 16534041626419418214833144484:17:45 74874216084622114885902403133:18:40 16485930284952860649140917302:18:36 75379912110059364127543210428:18:40 70896227981808001088631629248:18:40 57833418027088576674269150038:18:39 67361287572145253523308024778:19:32 41577877248043275768446698703:19:32 10552541539581240671405286339:19:29 80848510538568721871953855825:19:33 18209856587874550619974296668:19:30 93187392074934425889112620642:20:28 21422264335060902743686723689:20:26 42271613601635569377174541912:20:26 58173056590773191762169567043:20:27 69355046099167186060480349992:20:27 55491008878369155055503418120:21:23 47618864038871533713369775641:21:23 46338187067878684090349854331:21:23 53020713198207017120277620601:21:23 63800591958874656384259364068:21:23 43167684327876811898887622947:22:20 85075535862189651917469155380:22:20 10246777138868266057419698416:22:18 45062984715698090354790870653:22:20 28028080958337874858482652446:22:19 63167400097115221088048223125:23:17 64306875254236229282869929935:23:17 72243300542276308877473408823:23:17 19445902920036289828339479975:23:16 54436136317995689451385914023:23:17 13880161671530557706629093525:24:14 31898859717669432600359687003:24:15 99132050138042826459852115531:24:16 65115418139102141339525361056:24:15 88713466710368005266114481268:24:16 81591686975721321606720738910:25:14 53681264958438373640847881148:25:14 75944502800128970750888327702:25:14 95923619511921321402626849281:25:14 11099245412604594985493842470:25:13 51284142506318662585972844733:26:12 70184884774920293523980042113:26:12 19828738175264916700515304665:26:12 94870554947755624765357618105:26:13 70153736935184976733982550710:26:12 71286154236677198155998959700:27:11 41055360246136537814013915516:27:11 74961276285601686293550052199:27:11 65230908849249963661173211830:27:11 17188316975851776993484137514:27:11 56658840927133660939832059954:28:10 42954962018977382566677345557:28:10 43316845280909153509344666136:28:10 63746913366200765905158876004:28:10 96800020460800148666949786607:28:10 32507313908004214082950130454:29:9 22896532287066188114554740389:29:9 84328592385962561649681666359:29:9 94322577223832520936491497368:29:9 12053302118228442565730340084:29:9 96957671571856677020011099479:30:9 14956982858142706306285664739:30:8 27844468669922519698883016602:30:8 10647756676069269147296830186:30:8 27588013520836875278775659413:30:8 46425785834173049425245782649:31:8 32062484091162786507543668050:31:8 68132583793404822843723613994:31:8 93407525165350255923980155576:31:8 71152234539257386501650019280:31:8 19084360130093625788533750530:32:7 20274968206118482737099715194:32:7 97956381975457667268023621256:32:8 91014397572283484737241790992:32:8 87059206101653877265769139557:32:8 51856221434541076094373232352:33:7 69306689000923359102402040106:33:7 47831421728977541365536826921:33:7 20727763998476366771038235116:33:7 26381966482392939578301593315:33:7 93278120739925873872431769652:34:7 26595321559950777762790897927:34:6 86112186863135442420738213830:34:7 19759166006939324034423360124:34:6 89902953767747858286455255300:34:7 19348161640404071021386453049:35:6 37335704967759494287007708368:35:6 72998637910020386559625801499:35:6 45742422210635209188776415262:35:6 87078441469985480547849461861:35:6 94745236310315747534356071455:36:6 77981578526753907526430606100:36:6 62940925160859801647539199006:36:6 79494856912951348760193390876:36:6 95349493813589730743311976330:36:6 42119135778911973774782751970:37:5 97390955164754568807696936607:37:6 25594734140391212919877505169:37:5 21624856694343284061996977241:37:5 17829602593894845617121567001:37:5 90109629007136656253706968152:38:5 43600174946471489361924590363:38:5 61431024173130214728290463478:38:5 35708819551592370853878882280:38:5 38963450154634235541559094408:38:5 42328118315571822299988552671:39:5 63607163958594548066402273104:39:5 36897046963771713852540678644:39:5 89530182999491741128769672394:39:5 36672796878574447882635565244:39:5 79655928730252763582530624064:40:5 78135780791482229509694017034:40:5 63489843996778142941277430515:40:5 85685136771276528222712416971:40:5 84991674969470640955297698269:40:5 93440904468816548184310353556:41:5 99677517855535260282364694056:41:5 68126500833197730145385692694:41:5 46332817778850431420796070751:41:5 68807391218272472056024206481:41:5 51416545136607404397277582263:42:4 76315726615974105969755814311:42:4 67843410388407840971513578372:42:4 27164254688857141422743062642:42:4 88446920063594222145275003600:42:4 62134575597844507676081302435:43:4 87631353711588076371498151759:43:4 86908284914251738920820999159:43:4 73710480978597816455541584634:43:4 93172613709119363931100076276:43:4 75228319279161574913267657067:44:4 34125115207031326751967960706:44:4 70106083020176031692655957690:44:4 35455426280184270553521041189:44:4 49728747674098812840586193144:44:4 40093184178537068761347035545:45:4 95571609261487689888038045063:45:4 38223428886198086614255886513:45:4 29174654101909932921864007885:45:4 32216622368423467246171276908:45:4 62824508722493072651813916048:46:4 89055652489238690668313655258:46:4 52615671167910347290243858626:46:4 74650287256880600060353762650:46:4 62134117063752653308012598362:46:4 82937750136888395295175451810:47:4 80118934212782188420595214928:47:4 37633681853173904198869352127:47:4 78588072054092322405995539801:47:4 17906548869343326643088879706:47:3 30854307229182777500100885764:48:3 79416854703212015337014374073:48:4 94381539710501663798757221008:48:4 28187422661173927395897079932:48:3 94707828999254220150512609966:48:4 53284812320824973087935397109:49:3 66896366120522293199905473526:49:3 21594850924079206227944689071:49:3 41942531545608855505885275167:49:3 29756440481530358395696419852:49:3 26415527825427782520854937722:50:3 76612265435393666349116099271:50:3 60463922425768157124508755855:50:3 75610828157637982154769696596:50:3 82464434934913256206716645427:50:3 97122827512627882752349817591:51:3 94556465913071820382475354339:51:3 83000837765642869977517736034:51:3 95726949468200197674681270617:51:3 68922608053249139826414649169:51:3 99132917659114966491431369970:52:3 70144109544092997714993363777:52:3 89756088748927486669750481095:52:3 72999632050095948368663050620:52:3 70033771923772986497164585107:52:3 19336835841297985351172995094:53:3 15966606124004092020357993176:53:3 95422500447707055057867529293:53:3 89820649331958669840782747724:53:3 37309673798025929648891579792:53:3 99830821435337274260708079397:54:3 27108474372462632730186067193:54:3 80141979197081691737805602952:54:3 68946257141936909042858952185:54:3 13283934109002448431880419984:54:3 61911239647675530522199378331:55:3 29793623049539522444011964497:55:3 35163739466058250626284549697:55:3 27386647948718210882840422889:55:3 45839945826169180068335867813:55:3 30708340288689494652053494445:56:3 97067499672044948914879205772:56:3 64453722770256310512723817031:56:3 62772499835416234240106277239:56:3 41254460830580027066307768518:56:3 24847203359604201519578872838:57:3 57032940351646756099571317904:57:3 32348903388164993283126185720:57:3 22539715627329775318208218728:57:3 31201073095949383286929710852:57:3 20894018408248684952411872874:58:3 56509532961965791028039411216:58:3 80250769856791635993026223027:58:3 83451383184239824667169695593:58:3 36433504596403982393510550646:58:3 28577618429409547905917604035:59:3 60284441950764912499291085928:59:3 44993323288527479199991583576:59:3 61294490716195203446358433799:59:3 11234788562181374761217277916:59:2 80601431092540465149648791569:60:3 55118909066883069419706812405:60:3 52051841196300599608288055896:60:3 40961119297377170953703328400:60:2 24040250477799682016180097792:60:2 68750986934026822446608436315:61:2 25657129818579305830398158042:61:2 54146576259923242475056920661:61:2 72155452864509681968080605465:61:2 59940274605884441983921045694:61:2 52508941776712180749469867760:62:2 54885561635379547300316222353:62:2 44087491100737975372694322783:62:2 55615072215812513809101701467:62:2 49257440858499113926124922857:62:2 40057467804401902224490885829:63:2 53180130559451999591518511987:63:2 19933307924812758503294385262:63:2 40229836589203442251014738158:63:2 97325656529810937805551894017:63:2 47426054685810658220848590590:64:2 77395948455650367404840763222:64:2 70057558196742162505739160816:64:2 24914537078731786849148349890:64:2 26500152591760439241005507814:64:2 80002341700209420982326580097:65:2 72703064744548632107632150254:65:2 42050528304391676916917101157:65:2 56637037959756080691635509038:65:2 70817129837734004260801209350:65:2 41473106505976795115681954256:66:2 97376922418746149593440476358:66:2 56777173366441513679072204938:66:2 23700359233360139854972643163:66:2 93718980811155805876041190083:66:2 62604057975226548874025177935:67:2 31646152883250334944481068684:67:2 13971739930343974349748751981:67:2 58813347461908245066769911221:67:2 98060512611039776697497305200:67:2 36181986493890735012668340784:68:2 82493932678227938520064292637:68:2 57955548423445643960006016745:68:2 44398031779662739988809098885:68:2 13444893140398992633684219955:68:2 49808026641341398228271034387:69:2 97808218171929272939079159948:69:2 28915887605498577814883297843:69:2 86089371790142186569866364832:69:2 31973828587863683453141865535:69:2 95194113359104469918369357688:70:2 52251306811822081310959068271:70:2 39614600922821002967739635332:70:2 74013471982621601500371540738:70:2 78626456554074367117434581532:70:2 24359684829726857984351449545:71:2 21453463931063350545281731616:71:2 21548918220484937921912331957:71:2 71387779185044066923465143878:71:2 47616627136380043252871641469:71:2 67215302747553719313405284002:72:2 14208219403473393121766754704:72:2 40653226859691553393069488607:72:2 61716552070308812925693508946:72:2 20722169846705863631625013448:72:2 41313151165787764970865095059:73:2 99098149294514730932499723863:73:2 62267975860722792231426054423:73:2 60982458734097604795283941306:73:2 55817628001888544255761281210:73:2 46308342633910643428891534844:74:2 78762188308442361376692477521:74:2 12971977092178675996577654545:74:2 76548919357013703491251677187:74:2 43397258987807148394006548893:74:2 44462416822494392709526424910:75:2 13199842859039049378003049783:75:2 83004794871384760402442391087:75:2 86669198779069686743906907134:75:2 36339600863370481247375308411:75:2 49329825855038820834119258912:76:2 50055438408689300640387384993:76:2 83960458123673788975457111077:76:2 29690005354585147829699875065:76:2 23944248214815695867240577299:76:2 60376206947547082472321463357:77:2 57836572037532331598510842912:77:2 33346598402983597263538370360:77:2 58419906258639716213836148414:77:2 21914672013108073498895889961:77:2 46692663394567070821841775875:78:2 70649836674995665814866489255:78:2 85350396292551836687124270968:78:2 53266876257165290978351369060:78:2 65357464849908535209779282824:78:2 33270776331877211498963352553:79:2 73155696578402600993627849335:79:2 93396688536394170141083509652:79:2 98454358630480963120913981313:79:2 72619316170074169837801259428:79:2 91922788082948173236894394740:80:2 75255814486082213602815412170:80:2 45434904461544035154469671975:80:2 47735842041919055095684245157:80:2 40107779336223872991813676903:80:2 98112721396002284197455985896:81:2 31193604477605042594994557028:81:2 16276322147265414903585880264:81:2 78607444467520715422726693203:81:2 68200529153607409399851223722:81:2 25751791696490459137541907822:82:2 21979316072061279131685701866:82:2 70654647027743327024963240171:82:2 59047543870843450237471336846:82:2 20754715119360480863821627253:82:2 33671243180273166257733518181:83:2 11574238755579654770853921176:83:2 54267283154724615735449746086:83:2 11176724254782249152383704926:83:2 11515367914372952520792180151:83:2 98192683459451729449293127173:84:2 42222678048297691528029134014:84:2 91266162928758264215980400371:84:2 27104044769784047120997860968:84:2 31849222341219910097368310798:84:2 13858600439186256159758466743:85:2 18858370531075284406333109182:85:2 18269275663722878951477667558:85:2 36293255298712871003418238360:85:2 42114104155427034406327725568:85:2 86991245915603663850824954962:86:2 92180303992930386749260361243:86:2 62733263656443700791952986608:86:2 93325654282194964058258614926:86:2 96260082460320340494174020049:86:2 51603820277562153107905704591:87:2 77107783911966683892897671345:87:2 10585832286238554521234002133:87:2 36844122116589850835434719322:87:2 74834804020770699906699520210:87:2 80760524885484665584641515100:88:2 54524657950888253833574198013:88:2 88490102901433989174471349983:88:2 56782698644752680101385231943:88:2 75228656401523245505184054090:88:2 42362168661357744565597446095:89:2 44624351137449468437450220815:89:2 27929248514976507737073645422:89:2 96889885489298116294229112555:89:2 97113576364887691938130484803:89:2 90071251383252505015631408494:90:2 16912029334544300428276945366:90:2 35628016409000990371358502865:90:2 73018436384321106437762358646:90:2 15670144158027734193520307234:90:2 67443913299016627338433499206:91:2 31146287245317037785050615713:91:2 36168473150774974992786308307:91:2 29126404901048385198307983852:91:2 80516739864010855005957999604:91:2 99548891546833721821255149414:92:2 29503295885634226576450639393:92:2 98790958316039655233360073882:92:2 31338625603572020616751560319:92:2 35515783894117702202345458328:92:2 92251178564170669345530283255:93:2 47990860621296272908114757030:93:2 92260576726918632496505071077:93:2 20367795332453171287648909210:93:2 89340268021968971424552944146:93:2 34533390154134531837265508391:94:2 84168311870903661128972687928:94:2 69631919834918039230036119540:94:2 49340835588008893901332900326:94:2 97725840317852395968571398144:94:2 83304877328447351793208471138:95:2 88748618264748977100444371406:95:2 73213372926213341979136449124:95:2 58024483368307853012763773376:95:2 83031400378686168289432675792:95:2 17688428584829139021372467535:96:1 62644209025589787804770335983:96:1 61474371804880984259734619287:96:1 33474434487584798516796933225:96:1 97657210679216953209453200290:96:2 20608522413639905398367202859:97:1 27354214867266080662511793729:97:1 48722342115577956393670484657:97:1 25326801864538628335785433092:97:1 16752696948089222333749828228:97:1 23113443360382281601434554132:98:1 94614747750939810858533943465:98:1 47493839170176402650860800260:98:1 38267453759295716283867425935:98:1 89626472820059298482088508215:98:1 89994287950467609377206018707:99:1 95551208728833073920859118706:99:1 14636221535886514793262135966:99:1 87308887189892933601264581132:99:1 14557482100921420435241618977:99:1 77728751976657246761207193269:100:1 53983169874408151418085788829:100:1 57937377992297591355085439691:100:1 44409345022610565932877906733:100:1 74971843218934764691863745186:100:1 614407330318959395831455216303:1:614407330318959395831455216303 772727122021617874805056639966:1:772727122021617874805056639966 741689246646700703873290485501:1:741689246646700703873290485501 275850702875762941571407247970:1:275850702875762941571407247970 416164855015397077927595718340:1:416164855015397077927595718340 979127841516051508256792241861:2:989508889053580 921525533063719530236294213580:2:959961214353850 679610347905047807613212311322:2:824384829982361 543093377493231552496836653961:2:736948693935494 925335868284042708570633806270:2:961943796842644 636122852823721606246965212492:3:8600301291 480902963744412625783886366616:3:7834641906 356668976049845129161686224805:3:7091777667 621592257633325230508421823752:3:8534312319 706481571058229279572517250103:3:8906360689 979958332885605929545808934244:4:31463128 141915310485367621025899809443:4:19409185 584217363241331755518723983932:4:27646720 117810237569627462053273706096:4:18526601 147611374815960870835148862666:4:19601077 552835372425339614538008520760:5:888217 695944290558885107466645924139:5:930068 286860401964519756409291990485:5:778994 718534752093014001463266554044:5:936029 530396644986953683147434104319:5:880886 283877989513132725602784388427:6:81069 418763669525213367924101367028:6:86495 683311016767758237407900267739:6:93850 679595377128913718641429053298:6:93765 766984592599137333333675724530:6:95674 125407563123352753055265019747:7:14351 219291188066522607614954973914:7:15544 449756076586468402667876533254:7:17224 503747510575444413928910477904:7:17505 438190143437624061339566376857:7:17160 651374759101057530002839452684:8:5330 841440699687336343026723902272:8:5503 467806199677329027597623923150:8:5113 605241063754862043989807671335:8:5281 117859700883625345688211507392:8:4304 400060814355199966460692407780:9:1945 767028287165626087614542503785:9:2091 519615854330336388778708726837:9:2003 502899179516656596448686476732:9:1996 557067684641625437674951824033:9:2018 408080170942823850943964075260:10:914 833135005867786371585421441290:10:981 436549792250136896153819209258:10:920 350173449456183973515289265239:10:900 757774443761038054366562579716:10:972 509619538552809240530047616867:11:501 467267493378878904809541179554:11:498 450562888552754946561166506649:11:496 468941736579409498413242685395:11:498 752845612025017831998600023634:11:520 926719727630363716962669772562:12:314 614783752689269150757416629598:12:303 496965306867701268213857620446:12:298 203397440352025523060984996891:12:276 816009547905069625710888080284:12:310 822109013511578676936374251593:13:200 171210095990391324721059464178:13:177 679993018507218112083753671051:13:197 772210599427280330624935093580:13:199 627563123006220536605020667093:13:195 454100570473865655843622046662:14:131 609448970201847672258563283149:14:134 765348996843825227000011034338:14:136 452794954898407134207549163272:14:131 945100316955496042059702982556:14:138 872668233982791438596617928844:15:99 721908675275439327494002168168:15:97 636791282302320540447187124594:15:97 443981421259339531539339336599:15:94 614761734160014419458164590244:15:96 524733561870901703882000096189:16:72 973238946491825386235816431248:16:74 993240015331113072506876128595:16:74 292805000225924727737180351531:16:69 359165141081166016862249967283:16:70 482806959183643763349353978231:17:55 667259937817783506677934046365:17:56 538638517485382610642654557676:17:56 118795420396898520841984030074:17:51 840128910204759408096217420494:17:57 171397328994553612964109580184:18:42 386830216463330079670556229879:18:44 928508919334797666223131832471:18:46 905024503677157371962032537423:18:46 518480699314129507766678896763:18:44 299742594857693630962614766956:19:35 104782000017215586451384627005:19:33 247260226748532985438850376211:19:35 332870387781537978391322033135:19:35 992422101170917263594300972576:19:37 673280472239555257969845677373:20:31 615904434882853754680675798958:20:30 186438263722445931390549567687:20:29 764779104527854240081952882299:20:31 156114391077117295127557142374:20:28 580846598969838391401033210711:21:26 580628074561891532364583510357:21:26 751418336909005611325169839999:21:26 634807357145737066048141880078:21:26 379432341848444029833522969603:21:25 231402051439837703057855776343:22:21 256465751065824924401756916834:22:21 154437777491814585119956215137:22:21 110083064970866940424731613682:22:20 859773073116838075280828654741:22:22 774544736228107676851319381898:23:19 594193211777448459884414400294:23:19 701056779184550282616629237429:23:19 562465796370676989128544198399:23:19 853330608540997212225749991831:23:20 746246604007365646666055267939:24:17 104696184430284931589355388532:24:16 114844249512284929483743430876:24:16 457345285648641145483082102707:24:17 862530479229735325118664258099:24:17 542914342802499719335229597304:25:15 455046029168280579804934731869:25:15 872471037097314412608036715053:25:15 181243265373684191011318673877:25:14 270345777078954341738596714939:25:15 263123642026571262533279253552:26:13 526682487877803735347794819180:26:13 832288145102863979091113959867:26:14 384505712752063552374415657433:26:13 957191700845684227587041988170:26:14 998223868545622803369465894086:27:12 361030923703385733237053843577:27:12 737654134071906650016416501979:27:12 324177875572527155020283768375:27:12 928153658635053663422967987999:27:12 609471612248328416009942146115:28:11 988736599247162518022019750053:28:11 490442196446355962665953997364:28:11 645349235694542704226617200413:28:11 363012461586526618688611627917:28:11 428037811227787094198154905803:29:10 848129965395628076402643434247:29:10 759276303728504352985797509704:29:10 327204452421155015466627636368:29:10 675424584389719421508896595107:29:10 526196954477805777408065323312:30:9 765316972729255986094842777622:30:9 855029154714418194001963661294:30:9 214464829779944799483100482678:30:9 362553550390933079554264492016:30:9 550803229437862906298888464728:31:9 620979772029528624309826675959:31:9 515075885099480792628190629874:31:9 835570767504259324272874400632:31:9 759790804621270761081910145012:31:9 305763482097539174961574507798:32:8 349810517090538985543560884588:32:8 936759377618059375929737999171:32:8 368488816222436560334274634065:32:8 266266946488534519617006349487:32:8 344949783301658557418779850957:33:7 557291573285765222113648199140:33:7 784090792201321855618358179682:33:8 487597465237838736793093779748:33:7 904448894039754436466134654411:33:8 784540077456069835453249442268:34:7 125865355019610620995650573686:34:7 528896157866843179997111912153:34:7 421094235145191174356077177059:34:7 470163108946313029248353407695:34:7 764328591922619554172392785672:35:7 908709250830636308880441407653:35:7 950044830500071639407849162119:35:7 493118249105974563759943574247:35:7 586832446734237768832155241607:35:7 733109964060844368941996325795:36:6 465770482961756376453719488520:36:6 698974656676047915182728060440:36:6 991524579060018608586395204126:36:6 500566676532611580617551156510:36:6 155944748340336813831630473258:37:6 285267394150725348709807772943:37:6 195288784741725939815413056173:37:6 154606805962190097254995877112:37:6 312967382565034077423922606191:37:6 760704741982958336849038784901:38:6 928272063340111220400042188820:38:6 491617102452697973832821327997:38:6 680915758552726766740624353376:38:6 106870238430540945657217715588:38:5 302152633850469694176410119868:39:5 240820781582961852722508855583:39:5 128357669102651762880819687872:39:5 415426198176444423200034608323:39:5 521522185080079073885156528865:39:5 787380727544811923019469415105:40:5 702333336010556443904144589967:40:5 385337394623156650426612470583:40:5 220416867051595886507501109657:40:5 476406543185224933689500143105:40:5 663815762435855043654967230030:41:5 985030840537605578344502354180:41:5 283496180168786318979927842245:41:5 934402707579803441725061535275:41:5 972842415875995481460634196491:41:5 156827007269881825951389001791:42:4 669424396427642495321620204546:42:5 714391148479119115847904211972:42:5 724500623586693038159640741595:42:5 358758202139358245921142737164:42:5 809873026949437653353953428854:43:4 974832502814600112474467366081:43:4 640045367988005646203671316990:43:4 350452760609913873748164894750:43:4 188573878522720998703157613366:43:4 963963171958315584792642866308:44:4 325830324551618347473090471218:44:4 183450496549064551808558196931:44:4 725100776589649031660505308699:44:4 769432380400815324307989552462:44:4 475709908955722851633244608687:45:4 827655427720803996508796128985:45:4 125310759655083950661747033817:45:4 268350856077085387907125080341:45:4 393985988056043330016795688748:45:4 836475824500069301285298222204:46:4 685963020963821227097944802747:46:4 744163567033061958470646607478:46:4 956006550284977166164918284946:46:4 985936185869267278670095344340:46:4 245799580949155312612134989586:47:4 357679815966978372606655003867:47:4 232300451766516018485095077248:47:4 162038344342207697360504070766:47:4 653707397221536965922542968438:47:4 652055244995777618030897471759:48:4 861992506124453918675896940298:48:4 520503622571598706196394731411:48:4 180325076415965695870361978494:48:4 995745741166446546651457322382:48:4 568719340970414905054597947374:49:4 764629878091987132361039459591:49:4 985246513583088730390959804568:49:4 775933046059602802287558607334:49:4 635034171186496041119551767720:49:4 202757220551410268431170858291:50:3 181823595064522978229281634562:50:3 687457721316440550624425793307:50:3 956255979045192517444783488417:50:3 751839844126327521224754585699:50:3 365902288175026688733003370377:51:3 227667946644847657014734104984:51:3 138054006416110459320145696765:51:3 731024222698276167532636666864:51:3 237854424692994079073904834542:51:3 204754918498303140965967992549:52:3 801903774434451557517323650974:52:3 131085221473190780401265562057:52:3 306270668669668387103478604011:52:3 150996034509729275171373985914:52:3 507283099766216496839807495497:53:3 952874317270032158915374592869:53:3 245357393369917706450462804296:53:3 595378664795714687336461478395:53:3 500247350965110755255136268857:53:3 559886544991933713025418015023:54:3 753009667573715587270046310692:54:3 624293085648827251903586342862:54:3 940890179029122660536727747240:54:3 486770960115754527100204967287:54:3 315531607973037241793597756506:55:3 765837218049358501829411481766:55:3 277832709640129562476757089525:55:3 708719267553873631949542771331:55:3 220685168369128345662177910680:55:3 753940189524377239704873974780:56:3 313961088371870852508914233200:56:3 775123758652111988508386345698:56:3 421384852242437498297014727863:56:3 685737411918007914442257779995:56:3 839101383903186227468609323228:57:3 962923148963532181362055683186:57:3 783589228987529468966539693868:57:3 123520257370443989268602293652:57:3 547067005542304364298127700124:57:3 820385300489733439308949387679:58:3 188257313703789327063232556360:58:3 101566013075827509425328224023:58:3 370250669717849240201392233759:58:3 854235942961032507271235653575:58:3 210115900409726983325686347427:59:3 279376113981907620247865340928:59:3 504888854931702722055869432091:59:3 395694262956907680057894742853:59:3 696191657059503884851298184262:59:3 728423031417198861032518797711:60:3 860862149447335936376336398787:60:3 765690063997825677580351472818:60:3 546393097351859330959087551684:60:3 328799479358431083270408166097:60:3 984273898890840100499970287017:61:3 511175337838113667001093069774:61:3 659394894783237578360437613464:61:3 838408301328442256892074705287:61:3 511694773500230063536745257580:61:3 710376709653560817935844396041:62:3 274045659161849516521926577200:62:2 526947493322389000100430421632:62:3 332881415119185746424514682741:62:2 513998644916058485690617766970:62:3 191237970584252441370714489817:63:2 214966110793716726224095215015:63:2 553834608646871272048648905686:63:2 790340017935439791057858291298:63:2 852492317894649414298065094863:63:2 186351630824841264144584344053:64:2 383021974221963049488007940035:64:2 190498352962581538170514216251:64:2 524778345543679199647857066619:64:2 540824774152024801234431232966:64:2 656299740112622022299193769069:65:2 254316998152706568106073967675:65:2 839118688597556535130782455356:65:2 988536952354163301150011238094:65:2 692115947725785342988129619171:65:2 902351456621319375486679900470:66:2 727798139761533036975370575605:66:2 660325516758780512191030036841:66:2 336470638775005931944450545059:66:2 705764889368708565464391900138:66:2 980672049847054368108169688209:67:2 398322805675967271490253547533:67:2 268932471785764131476794950210:67:2 807269811429283425308373862016:67:2 675977771608660187054873186600:67:2 330839797876258685906554975100:68:2 940973560985488784024510369068:68:2 592755240690752112155595468347:68:2 154930098903397526674256835768:68:2 957626996076536956128747513723:68:2 404891317655526670932181018270:69:2 522802538257366977826022269947:69:2 859017557915375817382762374664:69:2 347562044353368827972109218655:69:2 339719553279166804638501171871:69:2 809272948632663609814055330694:70:2 132318086720166900513417079872:70:2 414046171003231947535571509798:70:2 398333638347358112137764514548:70:2 349554630000873038779957805416:70:2 832044182642129515431284624416:71:2 757992343353902969303078015157:71:2 195673947470180369090234822161:71:2 535099865475373782423256202381:71:2 155751009823588616512007712489:71:2 113230854333697403685258630528:72:2 975267128561198687832454633919:72:2 403116308333115675473384863945:72:2 170737782048312313342271261048:72:2 964244441340567023911267841859:72:2 869126988245912610736605439522:73:2 927173703115415281831487940570:73:2 332200805037000377803160462954:73:2 183765473788524022843651437087:73:2 931422970105738671796111376913:73:2 837788444334342596893965390040:74:2 736626694279885724618911071925:74:2 845138982466292250813332621406:74:2 237294442371800695548845419949:74:2 751399376303393539254406554403:74:2 854111905021969030842633216661:75:2 360439936326758270206059269204:75:2 950701334724003418060476471522:75:2 150616164397419783424788548573:75:2 949745695904122435067449038847:75:2 584621494731652571258070672982:76:2 215169259973642314087635968146:76:2 640809282493570078231925525871:76:2 846666010294885426391661498479:76:2 435359304603936980691176415588:76:2 899971164078720982085944077697:77:2 465173922522868774443610704226:77:2 427129058817437715082835582880:77:2 404234702224467049707047260661:77:2 842163613996706059910755057105:77:2 174516371427425512978399812885:78:2 732544990578712871360312152408:78:2 333763807821032390818084548258:78:2 403782008868263425287421068138:78:2 737902856065298279235039477413:78:2 933165724189117637302009987437:79:2 258237269175644545721777134923:79:2 403176096079430337464692047025:79:2 700725495065172939243362154384:79:2 409042785696982257878210942234:79:2 832020248579956013200929308227:80:2 553438285382091926070716837791:80:2 937011701908946626098377674313:80:2 453480857873598012901730190012:80:2 666331376057053735730803302380:80:2 420448155088739286043502882407:81:2 868052400686667966870634894329:81:2 233490074052682903024587002118:81:2 686911299377906352190097050059:81:2 231297764787211833350280852546:81:2 299551365336302183226373813994:82:2 932910293590521156829765962004:82:2 862054738739684413307527280388:82:2 161935957456553815835405206041:82:2 143659945537708118757182570744:82:2 791877890074146050403868332323:83:2 593154030633041587434444746580:83:2 271159933403361787801637412658:83:2 637304056627452505385869642521:83:2 333752596445852012060625696153:83:2 879490433210572591285416652707:84:2 868710216021620371239905239818:84:2 682232641783335583124434205635:84:2 999744691142981263657489361715:84:2 794346471578187650117638597852:84:2 388228002947510470610403640016:85:2 994169070359829744413955436084:85:2 230270698056501281367153787517:85:2 317712004262891555368556357066:85:2 771552209655011136580498877438:85:2 167996735900352429289695192740:86:2 791115289805129812729448018601:86:2 190788732476450301661269311610:86:2 309763905818672899726595319577:86:2 406586509478564864326697458330:86:2 986932406383595539696541519344:87:2 867156807328622807771617971799:87:2 640188285960564265233170872233:87:2 724511846215902405509960223545:87:2 595275921560350085033308445622:87:2 473685816538297065820078170575:88:2 190773735056639566272640219081:88:2 784105082833868807325049860098:88:2 439375825053711400511160540456:88:2 684292880533233316412901027283:88:2 838974752153295720930711855844:89:2 949428225076116589202462105202:89:2 404409974907886252263272736005:89:2 857501418296200537827558714120:89:2 666885663038855450448244108867:89:2 902360856575908001121232547557:90:2 348880535374920972432609431939:90:2 758637501868486044354329175834:90:2 770402655537830374588363022664:90:2 620678989128788690978814042302:90:2 458192552045183654192088763406:91:2 427469825092060083396900151774:91:2 285837070741508036992663917217:91:2 154963401472889276244634878910:91:2 962840670888093383032575092558:91:2 641743367688022825086012480163:92:2 507363973567406725525089769359:92:2 726325048144034802681595247405:92:2 228779029134265540375105605259:92:2 714585314203579546041208562328:92:2 341348947955077747348942062861:93:2 216067466798907091985537349626:93:2 546772573057184700569636442063:93:2 338553025247735253011098020804:93:2 761363896095107366340389579099:93:2 690374694397895558372248068903:94:2 212470975043438139490169822152:94:2 945250060967243239866304034685:94:2 388410136582101628011210738313:94:2 589942768782974087472376385947:94:2 636690412246429606971296122441:95:2 978042743607568229986323907823:95:2 408578439020238337567485633929:95:2 983134140590771864946172958108:95:2 318554539223851192807444069053:95:2 826006095221038402667726323250:96:2 162331580069093040865820604561:96:2 688864308137374958029879155820:96:2 385358187809386791881945783558:96:2 904266011980488251797860563161:96:2 949663130038502759582225440844:97:2 414362325854358690124258603511:97:2 792242462969620083049910946475:97:2 412249817994818795257061556709:97:2 235875991475514286534119348861:97:2 725229445280432285503810655948:98:2 351621188234980267159111243149:98:2 856925318966996155938520816779:98:2 483964188129258892776936905861:98:2 288517611653153814812675800061:98:1 335183756754579224497430975635:99:1 198223479767179909233092469425:99:1 984901884354721227598108385816:99:2 987705558828841789058062573451:99:2 339429555017476140746425485229:99:1 152202612327494324907902695277:100:1 561421465631088523152582188920:100:1 990814292970071497169530676797:100:1 231683835580421095868668898376:100:1 832577696763345405857558685819:100:1 4219195697922503921203464236657:1:4219195697922503921203464236657 7028933847944239588769124174488:1:7028933847944239588769124174488 2247719544038644270199893464863:1:2247719544038644270199893464863 2553636420660439371967760793074:1:2553636420660439371967760793074 2702904989822137441645886733641:1:2702904989822137441645886733641 4121174915284331639047541832680:2:2030067711994930 4328982848258151930300267855355:2:2080620784347342 3985016274205227078815517746551:2:1996250553964914 1569669248701450334167388598410:2:1252864417525476 7438139254918367678207552635994:2:2727295226945254 4875051098564663881098382399939:3:16956116457 2330227597175248427830911040093:3:13257636698 9730893748291416374726008475184:3:21349329669 4848503102258442573147969258347:3:16925281189 1177332711332900812992306117707:3:10559249949 2455694133902420132759121056169:4:39586177 8755108854658464842944106763065:4:54395802 7252883937390195641453549950558:4:51895258 7295337815108128350865796966630:4:51971033 8609647158298212556569212542408:4:54168441 3901246434409674331624564098170:5:1312927 6476232095934052445626669265300:5:1452996 5675877561382828070546848998342:5:1415163 5555843335638448405754471803991:5:1409126 1190224382656431847139946366172:5:1035441 3979688586478145234466038835580:6:125885 3082596740139725854747904108380:6:120638 1538858490094125448884216138406:6:107448 1551113095978450468116692804205:6:107590 8610694511342843972382416284410:6:143165 1799190508230880365069529424224:7:20996 3793439827427982729763335205608:7:23357 9759774957952399097326116836002:7:26733 5472851023550816483315523841456:7:24613 1770904113805707803917457315211:7:20949 2926972153892257952970664400467:8:6431 1748864780890241383559741976613:8:6030 4699224714780800185428598199642:8:6823 3789872974393669846882269561835:8:6642 3799240100179822956210778763822:8:6644 8296805095356298367218668656427:9:2725 4323421059248569958160847876835:9:2535 6044817058069983301003759376783:9:2631 7458213315523642079252106975298:9:2693 5907650678660848073252217102775:9:2624 9107874440023215342145196218123:10:1247 2505924202953986056819248906198:10:1096 9403286517132219980613428878271:10:1251 1254760069566798636957749092299:10:1022 8192673148585180560353341264703:10:1234 1789163916905437848909726314565:11:562 6802241755667600755916732649604:11:635 9063921452266895905434713385863:11:652 7493319575694551013111346876388:11:640 9384798446972125943532383059667:11:654 4275643814678353101470932737149:12:356 9793211230038799596288509538836:12:382 3391867886888156360370206204484:12:350 6573466898490540426396691617842:12:369 6808386585146051509490743487284:12:371 2250650783714561088985040718605:13:216 1093462883038533165635051781468:13:204 6029660715291209625582044414577:13:233 6393030386944728208455367069173:13:234 9760846822559350650714687712560:13:241 5416183934321903341053908439827:14:156 8266942342480937771568169877860:14:161 2830434065069988613110840988106:14:149 6618048706216647488311844814061:14:159 7833832247085424046866194768276:14:160 6055494099902347326797969490779:15:112 1994984307788286462514860874356:15:104 9332303524753866338861291195606:15:116 1810967704394697257027507182355:15:104 6272883010492434331190598477788:15:113 5698320226141375820142619856414:16:83 9044420021899314142441753147449:16:86 8136370316990149617773823097942:16:85 5038836813320807653935900822823:16:82 3055509230167312657756803722365:16:80 5166970416332053173736813841957:17:64 9867808346081983802582371953336:17:66 3128658576327661165794347571284:17:62 6703839560114831927682866146038:17:65 7472249623901726199514744755748:17:65 4863426538555410111648187772737:18:50 2268188033212929060403994263476:18:48 3642360895085865391342279870405:18:49 7912416381998332220169906545738:18:52 9523570827324220646962989105527:18:52 1828056431620887775674947122249:19:39 1428590455133992296504380856090:19:38 8947803648909205589596248639118:19:42 4343092125325990466515084462168:19:40 7591879757014704052514908877695:19:42 6753288857061856484972831373404:20:34 1797544494725266608421489816838:20:32 2796310189507003860331036735324:20:33 9446054567163969916195889024115:20:35 7951367205799572542073350046388:20:35 5037513140207651305264882819363:21:28 6641395952452734091312121435505:21:29 6914409073839622142123095132146:21:29 1044210074954453318248574458149:21:26 3552546743184026855139000043749:21:28 7426634397550601215558203771876:22:25 3876386555330227895418789155849:22:24 6247981611436729539194904251745:22:25 1134429067426468023570404860170:22:23 2385180476389388421688694006254:22:24 6358060224367431495727046263701:23:21 5668427979522785572551014987109:23:21 7121277514072864209377055294279:23:21 6688937349266006702355131249453:23:21 2560788724640919161034178058612:23:20 8757749688876945051210615235867:24:19 5721648177626862756995939050969:24:19 9726703881819340776205060042200:24:19 5264583611782754373783956287430:24:19 1866486776593725777360013716437:24:18 4137885094336743881061317320969:25:16 8046211992128505220322347213432:25:17 2683294579284566691681268969741:25:16 6124891105679773664749433377701:25:17 5394907531755836069269598486817:25:16 9154347492053759158108448735457:26:15 6315881896972205625222104400228:26:15 7836448414606220811225015619330:26:15 7683882280689442586246783345489:26:15 8217405461067590612491535951455:26:15 5289148217175297354746004633993:27:13 6717899472356484633139296542584:27:13 8908163482439707198512034007364:27:14 7848634522741153391564057358077:27:13 3531141742681203239553182387036:27:13 7229832707835261867025673603573:28:12 4255495318995074304850843763701:28:12 3972313972447920379261372747337:28:12 9328557921965585570056833782211:28:12 9717128018580517287682355805334:28:12 1144959815180957989809693671912:29:10 9821535349613862820992446969537:29:11 1556045196728945926336408315838:29:10 4801023489587601866517467098972:29:11 3408070680311083166880620743746:29:11 5790938947712000485507906731452:30:10 3107767649219198082593567261207:30:10 7452934191715115938228794454977:30:10 7359627790891279181951326773362:30:10 7241471973015869150984437910938:30:10 1524961189752706512577353973365:31:9 6698523547847279489744936764818:31:9 3506051130504145287959312881723:31:9 1586387479008996410279219694849:31:9 9878146014197443538739880002453:31:9 1269514662411230812621246940759:32:8 6413924124683579685849441067042:32:9 2556398391423392057435500340063:32:8 3058734940966666016244397592286:32:8 9063634251988444891145844575915:32:9 6644267892275429542164571422195:33:8 5021040845626830892861785514032:33:8 3395576043387578545637935541330:33:8 4105991992635365585337123098313:33:8 7184016205742776613955667209303:33:8 7064935185236608498320753978292:34:8 5400085582230303630359521280756:34:8 3865411378340945992438886235602:34:7 8194339532777201112829719499930:34:8 2223949579968900925355283165494:34:7 9567785483414629801004880932591:35:7 4522507822428470414770267213653:35:7 7006511687728857604563238523093:35:7 8409636253436606817111262754314:35:7 8277749098541752672057924956672:35:7 1186534455297423171914978539735:36:6 8664076428805415586208394888688:36:7 5231873489846391328982757955078:36:7 4417015751137850281094095076472:36:7 3714813262346406183592085376926:36:7 1954624192881861886184205111645:37:6 2819811796149862317077744022286:37:6 2434690506132938322842099505926:37:6 2464624844654524159336828993742:37:6 8322036866069198438933833626582:37:6 2515022784397833014633747111541:38:6 8941552694879163478272922897963:38:6 3593665043556000495797110432271:38:6 6096299437097358083411997016117:38:6 9604305130885881103953880106744:38:6 4589219943537764837773393227542:39:6 2649755852304804498821981912047:39:6 1413901608399807217092520341041:39:5 8191405511055850077419193191738:39:6 4863035079701439789887911850471:39:6 3600065081631586600537966745137:40:5 6735229568380707913609724869691:40:5 1720066998036560707935689776739:40:5 1331093335229653537972981439517:40:5 2713274712858896892145518076274:40:5 6159728466078524763071257073115:41:5 1703763295111640161376254171795:41:5 7174790647866937141344618594148:41:5 5414180035126195174105393405524:41:5 5224006214624880947426566991193:41:5 7484282017593997072742575500922:42:5 5482772101733311045645407979880:42:5 6912508074119127898618973870768:42:5 4250142642557735579561771425020:42:5 4176442908576370654048756981403:42:5 4097549581364665546781906226693:43:5 4259909451677635534688717588805:43:5 4680150266923410711301984250571:43:5 3075312465941611370667864908531:43:5 3887847391813149414376144976813:43:5 3465716279088442217686478558464:44:4 1845656601642773821403557000723:44:4 8703692445740047964899969301549:44:5 2170614993414841645972862372852:44:4 6369800688282617899520689533049:44:5 4788512502821791348992604272286:45:4 2186636623409563216850281444294:45:4 5186632534146719338343312458428:45:4 4328185582278543382875720659255:45:4 2564141715870365254499619485105:45:4 9971044188250552853077945213388:46:4 8043016293302785699497648077249:46:4 8628731063752436222319942753764:46:4 3767494059172513137178343760548:46:4 3499867205359285539505859788140:46:4 2474247254526940052752267693833:47:4 1794270337180054805068898082046:47:4 3564320841284404812343124772151:47:4 7880057696625596001082599496007:47:4 5478864251439492079276386319391:47:4 6708447895752682932465129244754:48:4 2444556149769374516207358614591:48:4 6986411744602627529378075470145:48:4 5478317487580394692000753187595:48:4 5825237008800099949713790759292:48:4 2793411428934206152787844018895:49:4 1635657859744265077417084787208:49:4 7866227707935494645429210491673:49:4 9933493961099619628367768896013:49:4 3438321016099865957503498663736:49:4 7444433635205744850400971260780:50:4 5887833279742205553078856973570:50:4 8321617031985915060137248563713:50:4 1053880728508984743591198108401:50:3 3795834017186787193535734962426:50:4 4266428317383738205176978397987:51:3 4120973319942676094700044675089:51:3 9587006445996120515516859512836:51:4 6669312280427466639418600960678:51:4 8642099157974254123987954373309:51:4 7008461321841881287840331588453:52:3 2618716423909502480643478352716:52:3 4858752128242941842454847736906:52:3 3460672815290708780297797325843:52:3 1822424920107634930931960617565:52:3 5707369617402526382289992389907:53:3 2293859644950185810932828512310:53:3 8932837332152610034139952129643:53:3 8665248238525140198588311760631:53:3 9843888855066457153142945899463:53:3 2484182368634550646539220321804:54:3 3648275492725142743424553562824:54:3 7274377674727018234705153008070:54:3 9929493176650732851296463167944:54:3 7990440665697299073153045612560:54:3 3415674936654312330298845809218:55:3 9919556519616055628287954040308:55:3 6247653949594543504814878958384:55:3 6422820629969750233998287464434:55:3 7987848140468258488538381868711:55:3 6695532691051557212171965726606:56:3 2421936703191692518967108140120:56:3 8840685700733660605062308212224:56:3 8109418072281488070430247866094:56:3 5104008183123720297976250913661:56:3 4964450505304946365960016736766:57:3 5583952290113436618946014917700:57:3 4320312501282335404144210311563:57:3 8788020050360378142553676641641:57:3 1729643196461841579267144306017:57:3 5704212810542946078847604745564:58:3 8654375928253342454427945730945:58:3 6181379383875577533827793704523:58:3 5500615331288554234702999337695:58:3 2549968110219797454373163930747:58:3 6223417844826381534920776624587:59:3 4486032114590180820331400367389:59:3 6630944799697924783465910594935:59:3 2078006132382529203826277248591:59:3 5112898826637461269325214596060:59:3 2601447638965000287060979125819:60:3 6646071076020695531611596847642:60:3 3582661804643280002868556656494:60:3 1437829526994277555001168366300:60:3 7189948004281626588791383024480:60:3 2041837948775470791815097790510:61:3 7567991499054488108334962838575:61:3 6628408725783592292336800902074:61:3 9391322274797783928420226254071:61:3 1199080475978910038454800698071:61:3 3318491364213219096896608882917:62:3 7186490217370314535876831309604:62:3 9232833345387949144909807571041:62:3 6732162117497905913515989692106:62:3 6393207991525701595029795611086:62:3 3123040931470583094892471069435:63:3 2719812550786233078018030283667:63:3 2703499531172573486230561064767:63:3 1281386020887534701914671824225:63:3 4497791770063740473225317992080:63:3 1613874642908815529564884027514:64:2 7421185702231842835214101742093:64:3 4672946441732511891919386769401:64:3 1582325052050272471987660401353:64:2 4356275051581173611300899704210:64:3 9353159489674426689607011489431:65:2 5573726915531708181206868532996:65:2 6267551617274719523819323931380:65:2 8575668390123040032314965339826:65:2 3225881027599972500860274302463:65:2 3514807251448476522402515216683:66:2 6843170239987021377628036463499:66:2 4890369273481983898176129554154:66:2 4388243801720685736501275907366:66:2 1625940014989552761217672647397:66:2 7917712656013754835306451506321:67:2 6652291796028679144604972144663:67:2 3540029634101435449049212389201:67:2 8888300641654187223183752637878:67:2 9175759413754432376277024306806:67:2 5807115614732242586236170658750:68:2 6777129961378152111616387610137:68:2 6919697952658388493857716475252:68:2 8183611967398692941002433470197:68:2 7237750575211954526755900609823:68:2 9004331618960279054564164313881:69:2 3884218173266299034026303859907:69:2 5186606245138943457288132144574:69:2 3221010088537317550845497665137:69:2 1962570132589557667722006282103:69:2 6404841724234023031341460650204:70:2 6392054281320318061791562557002:70:2 1511282439099637190078493468267:70:2 1247040160520838928568803694685:70:2 8376645686027788785060452030293:70:2 1856440816566358021405011748146:71:2 9827929139537244112857941270535:71:2 5387990235882918623098858979436:71:2 1176763840479092566045561952379:71:2 1014913838335767328666938601149:71:2 4730067725002900653700787235564:72:2 7076110248423573202617761590576:72:2 6830515579408437369290145682759:72:2 8546780764085534746551191199807:72:2 2560089662310422115889967047461:72:2 8412124769483324444141250709214:73:2 6431183284414866606379245388555:73:2 1135111691822143501408298023899:73:2 8440765899013253998529142721246:73:2 5245638193695929679839496071317:73:2 8124470478012037354661336249268:74:2 6183524077381396702725820035442:74:2 7445033122580732937946915665225:74:2 4777029329360901318833582997153:74:2 3309476426178123043978078779867:74:2 8083680780039318858992000177477:75:2 4175899354251223756573171344103:75:2 1081696060072535301195443630258:75:2 3185494762667549794315868423980:75:2 5186983883877657129732988284402:75:2 2401069759530644342903726386783:76:2 4035497499386004104923345858701:76:2 9360008848666514796546044292697:76:2 9186963273846138791293434088606:76:2 3499274783189868930549590162819:76:2 3859592746326324410867666590916:77:2 7296079679219101360013474915564:77:2 3166149194188151086155383770297:77:2 5885636549870896675808528127074:77:2 2603480193262403377422760046988:77:2 6201248584799137896492493957157:78:2 7198820602789279808392317907558:78:2 2306836436066174599131682475116:78:2 1843803964702593851683722304826:78:2 7977868372719629324292027621697:78:2 8691580699699801357546157183443:79:2 8869080149544287690958496268589:79:2 5653696868979672157065873265227:79:2 4720939273125553819938944690089:79:2 9993586731935182911597378512664:79:2 3134672011650258345936465308812:80:2 6204598441372026133986536361463:80:2 2801146022052768031455029014585:80:2 4522713996611404188589506854854:80:2 9284089793490023679044544401089:80:2 8793975374421418327733474232163:81:2 9225206839128815407950897849839:81:2 9804696147863583036802554565709:81:2 2742311834247254802751877012856:81:2 2963038093416003556575413088488:81:2 1735233293512724701272997452613:82:2 3965398172349461215344596336530:82:2 8314192070220667981766089462846:82:2 7825711656682374196870123080902:82:2 9845515903108648657778776162231:82:2 7421752370658759542168697582463:83:2 7240211555155808951525877891328:83:2 1742891053824612015627431830044:83:2 1411586593982132705065561823901:83:2 2076388018364186608482498905021:83:2 1569327069686122866299136647633:84:2 2342227052385754473487192568119:84:2 3163791753328028740277667535942:84:2 2480395655419554813560756088095:84:2 1861700943208650633271761604480:84:2 4665549555053665914717562362478:85:2 9924416880326740512022243358415:85:2 4243389274430719241468012064723:85:2 5224378061814484616406976821433:85:2 5110719047614809515531887735063:85:2 1059491599356795247579297183414:86:2 1019252025007812778297737827668:86:2 5305432627268529821580880525984:86:2 6306491186923933849763403615971:86:2 4286821629314732337347516932054:86:2 1338608823749611438854490731389:87:2 1683309275555640318304174211506:87:2 6620382876040119991992239300582:87:2 7929545889103895056475200976186:87:2 3169280215588082851278568158840:87:2 5630994851240371373277551861866:88:2 1968994413790422478876693698731:88:2 4498834824232844789545439821802:88:2 6923410609124912979201327055130:88:2 2891828410261483066393084443574:88:2 8474169850914904975434509890750:89:2 8698957217988523711087491116336:89:2 2288897662956587841007236783266:89:2 2818680988959992801259269822493:89:2 8275171921023385755728515587987:89:2 8353669048776213585555238729796:90:2 6770268483713986281454322920817:90:2 8718173036676124254057302874666:90:2 5532094054891839346388604861737:90:2 5527864554325085274990592031756:90:2 4156155073607450877327372333762:91:2 5957402719770645054826590841244:91:2 2177074722732171825418797783232:91:2 6377961668393798967352891360926:91:2 8159715084336481886615542615854:91:2 6872350283355139424487478159998:92:2 1031265187076207627787747844300:92:2 4618390235047508040242402573112:92:2 2163240910495722098416704349454:92:2 2487973209857990390289451204133:92:2 2611420798220618474974016415201:93:2 4693262350109371602406818922747:93:2 8426491950691253718652833743076:93:2 4732690973872820097392036552656:93:2 8495671415661165215152791981245:93:2 7644138757490955730405010613012:94:2 1504217201462939125992453158000:94:2 1931362514116936107763205663415:94:2 9804380468890993408405823468350:94:2 9446573270980615378694395768191:94:2 5945795151632930628491191754403:95:2 6829102978652858344532890630750:95:2 7769634100895973632102759585379:95:2 3050927724399843372872101505045:95:2 7075774216171216943387596137853:95:2 9699359826965930146138518162949:96:2 2162665931647100318645745084621:96:2 9198850212737719338634748626402:96:2 5447985989747883883209888460495:96:2 8666204672644335090880316977699:96:2 3719553868226118878385256781069:97:2 1601990602250198595130098588374:97:2 2707092110199086927291946087798:97:2 1743451805873805997492417889867:97:2 4403556703622925890598219168060:97:2 7614096200563114505391861392781:98:2 1567890869880842880703257362158:98:2 8821632761820098155673169869477:98:2 9340667293878406291164371088421:98:2 1860173566911414997209419595826:98:2 7010338319902011686714285191435:99:2 6348521229084792144565828978841:99:2 6568499260887658305152911284057:99:2 5281196409551944265717605162596:99:2 5353409358824005512215874338133:99:2 3205890351597435548567573165425:100:2 8561065635527334148904760036767:100:2 6777346482512825100579821231636:100:2 4103567339970545427554801511111:100:2 7128283748085743339915439548645:100:2 23606926263772517687169599994952:1:23606926263772517687169599994952 39220444553902865803923381753085:1:39220444553902865803923381753085 74430704643628410602486580872842:1:74430704643628410602486580872842 42409700805541212753933871502505:1:42409700805541212753933871502505 58235797596708086288028351480358:1:58235797596708086288028351480358 30216948800573655670456227433790:2:5496994524335425 72136577614770905513910350217139:2:8493325474439967 92457948511683571164987619519816:2:9615505629538343 37106807392225225355808464692949:2:6091535717060618 83935655616780304636338744125688:2:9161640443543956 51772275303651271174570287200892:3:37270545620 89858647862408188839358575916130:3:44790573833 40269736238602694138811451007842:3:34276220527 52581076272977170689377986174969:3:37463627255 89631275685660160546556837897467:3:44752763590 48238004806003613110836262175394:4:83338817 33031727406925982175491257676792:4:75811104 12074154630768811323532081564094:4:58947336 83962128430600109213101504161793:4:95724004 86252341770235360296607382703033:4:96370191 31298003173722869545599433107505:5:1991147 64427732561778654834686997588870:5:2300459 29445947758716231450835024826734:5:1967003 50405919134248053772529585669599:5:2190263 13291490321136219118031957649318:5:1677701 48178684245165504973208042447803:6:190754 76930404615534201518076535923252:6:206228 62319599009931557624160287075334:6:199115 82896253650107424167516369424777:6:208812 93776905453353624158863247789516:6:213148 21036353782221861941234806340951:7:29833 78583607666447545070740353083265:7:36014 27194530020105293193061601424100:7:30948 32493686224049914200475092386974:7:31745 80882802740227094818738423517995:7:36163 79243740198099863042356603209924:8:9713 90938963282652035382927703204438:8:9881 64239065226337637667399615920325:8:9461 40534601746488863229621335417474:8:8932 54067587920099878234288964215766:8:9260 16485325090606377159737714205321:9:2941 17737387049661325000801617850083:9:2965 22955310690611084313492229737012:9:3051 80283611135816998865466519644568:9:3507 85961251759044257906112913898783:9:3533 21844568697019348442051825126667:10:1361 58514597514605561582863498586804:10:1502 61895806899432496286657704685467:10:1510 27435521745535664021636957662340:10:1392 12242907537762344547692922272787:10:1284 97635518165572467133317067447679:11:809 35155882679413570705639831204870:11:737 34304179526898979241186178472940:11:735 62370487896672279698496204621985:11:777 33426056352227343530326076921827:11:734 29172121018332919761465857425573:12:418 81234800592284631793965920568193:12:456 83502386945322793705281069100750:12:457 35368118296190128062190860753685:12:425 12530341004362928801987739773355:12:390 42448915002390590941473199965296:13:270 32531685246579661756755122232926:13:265 62125675011628934744664045033556:13:279 47207641856641683346056899711304:13:273 91207381187257464037265739382475:13:287 50028230752035163806838699950805:14:183 73830530977312951528476720843695:14:188 95975718299981751400470934632661:14:192 45457076882502744184221351231613:14:182 58382911029805083980862845293503:14:185 84260215941247101304541278509476:15:134 98889863299243539537742297242586:15:135 77309117488379553775978619524107:15:133 98360175097733724366053673091214:15:135 75807495146313130679559531837849:15:133 69484911946258012344738186209036:16:97 48496123139322364621827071048436:16:95 66695842391312122809124292413669:16:97 70994091088411357484130581134918:16:97 68857125714466945546686631210482:16:97 91487672072761898634575062224057:17:75 17834331304961333405583321829998:17:68 82242010973105029634594155447593:17:75 44925912531678149673064110113668:17:72 43672046188320816586763178968920:17:72 84310604029230634924939173127424:18:59 11187964570844747576982525639178:18:53 57442376795480521515858799071450:18:58 50461172266875044562271658789083:18:57 74148801366292326705211469714405:18:58 99120753391036490860591465715584:19:48 30032568098637776765519778437628:19:45 24505558512152867465188195228345:19:44 50386558221331352937890367933080:19:46 13490983638947285032560078923097:19:43 95016785037842470648305223471605:20:39 94964674150344014033973202818937:20:39 91784610470014908837050736144924:20:39 90725849457072096860975474668600:20:39 23407802998135074583105967127148:20:37 43256911117999129342508655239931:21:32 80541237628316398626351291350973:21:33 40971730606399595138712760059181:21:32 58239251422307022481127114283228:21:32 70628656691258428942948090676811:21:32 64257347192772578354049716380211:22:27 76391556370565388572354534671007:22:28 68016802693754588909994733712940:22:27 78170504296615383946224515226933:22:28 34890787001099661922480291816673:22:27 60382363692783967617808358050101:23:24 92286303985619989773711418629056:23:24 55920439439979203889844274339344:23:24 64015522781473710192588083630941:23:24 62540846302647397000950849684154:23:24 97060650075792060519639404602889:24:21 72181661287039991288815545968626:24:21 90357255154913621592028453719982:24:21 80090289223662826946385214293962:24:21 47140070715848785973067987818143:24:20 42278963964987890405173343024791:25:18 91942429548714269165080461337048:25:18 92806705638822163494580802487855:25:18 31168376884147796209112900975610:25:18 62208123734926691635526397440318:25:18 46714465522654452934397928550598:26:16 72266065484995841561901295824836:26:16 48436723136016542614402091599137:26:16 50702931665091292247546063615536:26:16 65470164616266774279010491870396:26:16 97099202316316337409173484232880:27:15 48753283359483330971907830465849:27:14 76091707097624159153959966338452:27:15 81252048652684870977414551659382:27:15 86666237080399924129621732425257:27:15 38869630766500537799449882445734:28:13 18554459353502165882408250885101:28:13 45170517178457359505168633303314:28:13 31053142816798308686004961963733:28:13 13146469328015869423606337696953:28:12 91621307388256066146602438176319:29:12 66749233864124127987987042516627:29:12 97430560111505245767671241584907:29:12 18485304046937952564444624762437:29:11 93819602060848333803603295377132:29:12 56523389991817817228463958015043:30:11 78898333474169204903621383037603:30:11 61411369730805477371414194960382:30:11 63213304160869921507940292299286:30:11 90154548566526374141199871332492:30:11 78662926466326174504616246896911:31:10 88432173913883494828630952450944:31:10 93482147346638417616747248335937:31:10 64494935130628418589683752342102:31:10 87556486565460944570917884589696:31:10 92310112551443945048065454235154:32:9 48573985505186359795403871029511:32:9 32611606912942930295012395710340:32:9 67913019102858389789287101964599:32:9 92568589407970970330175022360118:32:9 62004014674030356847430886579088:33:9 84331671238441623702120783274829:33:9 84647117409767105967798188221537:33:9 37340493717127478973352203350652:33:9 19888672507703196530790170550776:33:8 14075521096457342474194735751824:34:8 32547781024764631122747329917276:34:8 98350002672479075622042672958590:34:8 87522652135391604750311883820956:34:8 26087559292910578496029866147208:34:8 62321956530975304578765786312915:35:8 93973492915926466884650069619937:35:8 30501247750972697328404035792141:35:7 46557723941184275603895194948594:35:8 31221671596028275543428137560083:35:7 95090224777392259259229368412166:36:7 71322385722289263818221261469498:36:7 54006462438747991163858485024075:36:7 49497347382354418272351082765185:36:7 43930633597323717222794819515703:36:7 63572576816907652735088995509355:37:7 89169709707968113286828338374293:37:7 77720350467796550063869706056875:37:7 86988767474015088385591924832110:37:7 88926504399470703609664110085742:37:7 88168063617426382493235234251303:38:6 63516848474884522154427349056255:38:6 83414737269603543440749492701175:38:6 30196500803559743294167993647574:38:6 64918486160555187478728190544968:38:6 52011166197804202675011643633073:39:6 17544341132955633098775288774151:39:6 38853286369351978236733067537698:39:6 34913933117294417028807114802014:39:6 64495591218978192346123330320169:39:6 21975170772835362514260869016688:40:6 91950501014574481227466194560388:40:6 23883356913923867871774995430719:40:6 90057716533596069291001990458250:40:6 46880529831777203329376195464112:40:6 35189117215337462141764527483669:41:5 61226222554895363813456586914880:41:5 91274871438490602554108998285354:41:6 17731402250413398699153141757978:41:5 25103863205459403202655974504211:41:5 89168622837697732609685310639888:42:5 17134168139870254115386723084438:42:5 64861384266284757009913676383647:42:5 67989524124234273684915541450400:42:5 16607913770146850781293189631798:42:5 51080869501938207102710746282378:43:5 77083469652713570457893613180536:43:5 62005910111640254669282703068708:43:5 13708481475398606713807329035675:43:5 51414928827832105630684344700721:43:5 95029327698357118881933868134511:44:5 26372567998157739914744959474489:44:5 31098134173504224846288812093618:44:5 15171738169520850386216826142375:44:5 54678833520792923985998388968729:44:5 78559710930065593734179573249246:45:5 18965731275563146695526148104600:45:4 71563078349878413642929701403449:45:5 76039651139305147191583885542900:45:5 88196757345340953346363038042637:45:5 71992374757039660080816250264026:46:4 61955496064727993001733602558112:46:4 32302380244055498369763811803078:46:4 51830088247505912000837178845346:46:4 37790055732593512257460686823578:46:4 47963764612956996615466064585416:47:4 67686839379497376317111067758312:47:4 12216506719467225967293412977464:47:4 99319944756678670877514760255078:47:4 26897945911652960747725088656665:47:4 69463762342746412292644320013305:48:4 67524946761980922620242926930650:48:4 24220937156787646258073517588187:48:4 21597867354545733047718350146573:48:4 69167214728128308689605711924974:48:4 44313989576441783918688615306678:49:4 41720320757201596276842666042338:49:4 29794180582040093019028424132089:49:4 14086886631055946782650552848952:49:4 69762663308621129026027036161533:49:4 11774666727469767980268480247310:50:4 47016550578970231884619622003944:50:4 89979580005053457097134479845139:50:4 20816689784676860631003784531854:50:4 71131439766810096920401131725328:50:4 71232653657968101568793796366752:51:4 72264725361254949146958938732685:51:4 84763644548874167317013431870712:51:4 44247310788778942951834614188353:51:4 61615433097492169924089846208289:51:4 73640040228915937495496439039533:52:4 74362156140333438915755639684855:52:4 26260241404945890147339987353121:52:4 54417385071335727411045206267667:52:4 65773235146818174097204308409397:52:4 72222430928660607849904764604808:53:3 66033763183780095900192505268285:53:3 49163685990410110805479743974122:53:3 94308628413845994518480636727363:53:4 21113336481616955039441752619209:53:3 69919349651339980631691105757336:54:3 22404706623302150909752607518692:54:3 36846440742696380555777352131866:54:3 48503889358886018668664074754393:54:3 91144680948517251737104103868450:54:3 80343525098339545616489472475632:55:3 55104789708852433905627563075218:55:3 43479059014316555006202596217945:55:3 39792019512564172077301053975212:55:3 42416467344751609323418392253142:55:3 32962257285172962067946056877619:56:3 90044815026082981187923519223071:56:3 95920341979865481058436368856454:56:3 63133160664744534377747712046165:56:3 53596286648393221984823946579096:56:3 44468628219064401753828832318567:57:3 10949750918204717148800481811856:57:3 19720034007109964514590854208502:57:3 72885840437819590078718173164485:57:3 31884459475651933079704953110479:57:3 14651414146697364902328999382918:58:3 11506548594933717569781303277089:58:3 56478625669685184967342889709150:58:3 81023224835361672430673645161057:58:3 11071403018514856788566385423896:58:3 33048666709123723364218476900798:59:3 68526437053487240818362088709534:59:3 50105089221884787985982578161268:59:3 51363647030562949364711574317607:59:3 17950663050754054703638184536268:59:3 18600019532461671966500072810339:60:3 58126543760287782820270941288974:60:3 35013081208099825849208250596236:60:3 12733848439491373707327722299725:60:3 64371143015658415655447440576227:60:3 84781908659604783531345654050118:61:3 94212012373375161652139557912668:61:3 45356511120461683840194753715782:61:3 22506995184544339888681732748708:61:3 82665949434952436009956202794366:61:3 84733012629765234616588622081189:62:3 82739757171855893204627834856009:62:3 30572165264688982365253815605766:62:3 31666966846890599114997098402875:62:3 79722053519535315711889156038923:62:3 12681804364994753814383842427025:63:3 27579518504966658688943931161840:63:3 43067571358945482886678187970867:63:3 63034905411069574126480753872928:63:3 91999594980978037272680245913066:63:3 74236859321344974809049363536135:64:3 28479831598924709570662204551976:64:3 32005538244698413227752693738718:64:3 95036525337773969257349208779686:64:3 44664562857644658778370908363482:64:3 27082157671216457204624354511469:65:3 10879971468748611525924006821973:65:3 99554457055846674694494979395939:65:3 91329524345389870766855636748508:65:3 81910416613304805952427697708319:65:3 90461296566007306383220733863362:66:3 64686136973611062264765453574539:66:3 66697135400916459736849907470038:66:3 61982298176862944909796807563861:66:3 73029128904122203300377060795775:66:3 49466264427126867358019510459456:67:2 65188694037968705822861804206682:67:2 54351060267201434040238292148616:67:2 30190680944079172855559413478397:67:2 21923317043301355890263003864712:67:2 80123152957488092988376541428238:68:2 69272705514181934760325029493139:68:2 23524381576889471994826976444942:68:2 31276939360977852637442769212359:68:2 49201529094960788070707792064263:68:2 50345851961573012913115641669602:69:2 79578344439997729086417258305300:69:2 47430458288622947730874520086790:69:2 24520869073604280517479907781050:69:2 29987662316082843578364219925919:69:2 15329021061880141824902252658621:70:2 43336400012901474802930290555096:70:2 40557645323026526030695973414010:70:2 44128480339811390410177286136163:70:2 76971219174721892808325553518210:70:2 56908157514341529391988532496321:71:2 30675234479355884461963979833174:71:2 10457333996281477140100104283431:71:2 82224872070784780602489475248496:71:2 88285508823482165627988566439710:71:2 56054692822312259597805284965652:72:2 56890527624879668527289370284928:72:2 78542322281516463945307758833702:72:2 66929611868421910798013440344289:72:2 74777542151593417538289137580281:72:2 19470865395395306004517590771314:73:2 31479999363365490133965820904894:73:2 87894991916094369084633301859397:73:2 63204046047886127687358272445370:73:2 28519828082889711757401681477898:73:2 35835410359442225478189907214163:74:2 42774458172611172810968641218833:74:2 72036901528217344680870267765525:74:2 65942096387680369093155539280745:74:2 74540211104924714189496802450796:74:2 67982226648147189919775148278781:75:2 32547347971089150920347064910645:75:2 40369425316734932332941770309668:75:2 74189007564236807009142009488405:75:2 94054403138121509266950547994676:75:2 36362859783742019230998132939807:76:2 21804444625191859800932559193498:76:2 18955690196325171423048044485915:76:2 70549968308698237794960209624267:76:2 55107432370287198242502610643690:76:2 50864557203674970683813848992134:77:2 55713414386800077079367924499171:77:2 33458190266773753224375566163386:77:2 18316332374506597752828631361194:77:2 14596101515085960015251829762624:77:2 57255740379681590276812699695621:78:2 78894585547850324959698469685110:78:2 69844923748328906780866041948430:78:2 98920410185193264799268980539324:78:2 38035971545713610449410137766761:78:2 89958162172570509784749998523958:79:2 85311029913200135283721719059961:79:2 67704069490735730138294294135171:79:2 29837928228427677572368136880823:79:2 36124588541747751357081729703504:79:2 11425565375873222904792410633120:80:2 80016794363679384927264893999910:80:2 41439204665858861727857237534727:80:2 88350982242509815517054942300789:80:2 55749227345658637992494667426906:80:2 84941402275926465906384644554046:81:2 27327422734629387538086166547069:81:2 27947143947734328807058034690245:81:2 66241101666967233843022119747607:81:2 63902069649535894401003808046085:81:2 46319318160425573044210538233124:82:2 14947982279037236193615858425293:82:2 41273435590580833849949544229326:82:2 75247774726662236765649242417243:82:2 52209207048624771427580998457535:82:2 52652570017829105675310157829716:83:2 45570668310759780472049312276687:83:2 12731208264788118335896136537376:83:2 72239516315240115178522005989613:83:2 83824472755936090795813814907467:83:2 26789902714183558539071513525952:84:2 94071603400366195286754303052042:84:2 66177266914258092838614767228266:84:2 47075093675673682262462711506312:84:2 57147839357500750555226707682841:84:2 32999534241160844770780402984821:85:2 90487319580574807207790979112335:85:2 35783891647645169076460133302146:85:2 48472696154785243724403033106533:85:2 59307628711442468765700402416212:85:2 20389958646630546000289540421457:86:2 95093518286236036124544839330268:86:2 60940751588744425879768529519818:86:2 86591994482398539966129274511530:86:2 52393613033584495390821964652539:86:2 19827968234202540808447760882937:87:2 27887986284782336932784663787642:87:2 81256947877921117819195382517089:87:2 68807744452517645772504312657500:87:2 54652268351243525244729925569267:87:2 40345476240129674713957688877018:88:2 67777082722853535622211091730417:88:2 98515625885583265873499657017435:88:2 47038350880129675325161798986472:88:2 87612671660605188341354664695052:88:2 57457452695966603868173143281485:89:2 91875976518961059573756685477105:89:2 62818009632730808561835961194954:89:2 20573894641308591868627522553926:89:2 96398210291869515113254526535328:89:2 70476739950699119962677609318768:90:2 31928504747419960794013234309391:90:2 93925192163338948182763796003868:90:2 86786715732008744166496832072703:90:2 54154342097200246188220192393743:90:2 90936650915505420487373251699833:91:2 80501167249423675025074123113794:91:2 65256453408248061204481553874331:91:2 51582836311868979295222237787844:91:2 36878996187768235648089350614056:91:2 33855687668700688437083683582614:92:2 13916802768938824282230963615849:92:2 19223969827417045507459184957583:92:2 27492095929867749403650729188958:92:2 39282554679525622602672023071437:92:2 53138376114944482296140451630457:93:2 62365914966259824117885569223786:93:2 59481088639251464634256824721765:93:2 80090527246999240862604297950428:93:2 46378757960718804214001020124050:93:2 22949229165692597694101841762011:94:2 31720771365480779124865737477253:94:2 25044079997042943223646515040241:94:2 29721200346376226682749218431638:94:2 77293470342578553332488758340099:94:2 87275876459460097970938786426210:95:2 97201982200033526262399176328556:95:2 67597008447737101668237052082388:95:2 73689647483760569508106350172693:95:2 12613481957666276551721019895553:95:2 61333001648231054899251414299963:96:2 52243201507048102620459847828941:96:2 48868989399738691465828451660162:96:2 80533941161824467412702885840439:96:2 32490582137605180015377555746799:96:2 91748844919504501679578836192164:97:2 10155391701853469271489559780485:97:2 80817719552323645950006768262120:97:2 70028805214828957867262125887431:97:2 58327961176077492957829664116582:97:2 98645334438286211470522577785908:98:2 38861115999979483879649222195615:98:2 54078468340249616713242482093015:98:2 81223084245130587488104828625496:98:2 26012388573365339191023064811029:98:2 80394046181939419535133808249319:99:2 42095719850675082844966446220426:99:2 83155702287397782668196095696494:99:2 22190193161995088160451320309993:99:2 24763778762258127461843444336296:99:2 86658562735606398467035805575158:100:2 29049301776753856278819359131560:100:2 47049374564242834481251579089697:100:2 54216774597303492053386212960193:100:2 25027129046696961801738066301407:100:2 539046899386464672288518605527374:1:539046899386464672288518605527374 306764586524543054939136964550762:1:306764586524543054939136964550762 243459800462765306685584996983449:1:243459800462765306685584996983449 849741338367312812700475869383515:1:849741338367312812700475869383515 386858398101423594618043254776787:1:386858398101423594618043254776787 981091059273625401259711380117581:2:31322373142430083 437971886762183777442202073413141:2:20927777874446770 626584992327889590391300781410404:2:25031679774395676 824474045878383822573408447878568:2:28713656086928112 955612167896967166904148770458792:2:30912977337955772 800673940595695943694407100685667:3:92857837315 798702073408437080591814155198863:3:92781545817 827246702310589969895309166069229:3:93873933247 537735528971420147865160543739238:3:81318540865 464150178475467253146222334167552:3:77425884244 247393240303666195300527748726916:4:125414270 681811821679083562882977389383214:4:161590614 261108494446391288503105117559341:4:127117472 706266902224814457290853751754758:4:163020497 119330952591084537981298114426415:4:104517322 261268092612794895204383638909373:5:3043808 117879784587012401048528193705300:5:2595899 872150849625357892470557875349191:5:3873631 667899306681794840309711813476862:5:3672334 295629866108028258686743861776848:5:3119964 581010002493163470391361703983165:6:288866 247962729867951169689234234081865:6:250648 129825422548144073400682740606384:6:225022 834295704595820716711489420336327:6:306822 966321917030902734975704188240958:6:314427 293692318935509494258749435906651:7:43478 580707407955506574791366681500945:7:47925 959785474801988100874723491789852:7:51491 103612220856120428549517687222926:7:37465 908597011264809173708596115393070:7:51090 527287847288387645958716029718363:8:12309 949279258098941765413157660957163:8:13248 667433096593166344088290224767424:8:12678 744498861969206000219440317912497:8:12852 479974480288485480423902711941800:8:12166 972592844462436784926804139892327:9:4627 900211623119581601245396595740799:9:4587 449666293529416229078431260684305:9:4247 292651329261472179970050949494192:9:4049 966108190149781924013687963891357:9:4623 381787553849687739768858675190277:10:1812 387762857527573043751797403949194:10:1814 122105600847594899598461402799351:10:1616 887114391045119006957785504893789:10:1971 474529799196145742310287181541738:10:1851 947637044194820927542908423186452:11:995 818688037568553440349669524121768:11:981 983983227223284206996167764168536:11:998 124324824597534741208499488620424:11:827 356623417046852738026421982630122:11:910 418224311724484224832525684748752:12:522 924514795365634572369717155947258:12:558 180963266499283436636521090337030:12:487 923360982049097474523213901351167:12:558 774626988372549983670222165650223:12:550 650856065424737784541436814869843:13:334 694788164428865693533437164975262:13:335 327973526615933369537211520653391:13:317 620193293796444343339389677805390:13:333 120820228105284536124718774808636:13:293 165292421114618724173307394919859:14:200 218768816708392678536712867512489:14:204 591763608540063118747073412858309:14:219 460542643575825357893063882505789:14:215 728472226974094396817374999137624:14:222 975114531942360991814385360466934:15:158 674819077528322316758946679860516:15:154 143370329228310245383135570813264:15:139 310310630707757211866714717631264:15:146 809587634642518506943531512210244:15:156 581581674227562720184958539231851:16:111 195870484386893608857236897604589:16:104 114798065037052361532180934295464:16:100 864586612187846241627021337491172:16:114 662756102675847049671463895211349:16:112 265624990783971902959062667842359:17:80 111819290106321830945601069041372:17:76 144532205764193339572246541017720:17:77 360160688645257153897951790363934:17:82 305019441898734171805080946317374:17:81 398675458044357831376062420306646:18:64 984290956962019590273969277172384:18:68 717580215235308958128167457715305:18:66 104063034923646559721188052051869:18:60 215378698396002477161918342310058:18:62 461197974489268985976776890717608:19:52 193746054281921264292302644405462:19:50 618561060106725771755673221931721:19:53 839189456004524248198792399263215:19:54 238221164667523339741973275944619:19:50 423940834346622471513153116868997:20:42 108385608323762188343223231473818:20:39 193210897647774741780976269563218:20:41 441981591157986586619182771297320:20:42 352235997411838471536688117918339:20:42 417985503789816069696789885811924:21:35 794470631943705580571283686690029:21:36 390922151320440558008437567135098:21:35 479756324324077727379680045969502:21:35 766985217823434599768025512898221:21:36 203062812569547277277432923171710:22:29 119536556764624197457286551540157:22:28 798569006383623784367598610068714:22:31 240730377564928648977535173389928:22:29 614070313556366914662352067752335:22:30 646420025710962575627897069838686:23:26 490937498138883116123447428854436:23:26 354903269167047686673896466248801:23:26 541210639779627477741895495899764:23:26 506210504010635332671252355114451:23:26 682200356645753492060222935588561:24:23 298913923925703422901507637724797:24:22 946894474526065017274495941408490:24:23 965406512596655337252532713912638:24:23 443239377752999737313278296862123:24:22 247212565541435855112639887787647:25:19 188995825873683127097246969048727:25:19 413401815971982568151545460394322:25:20 681135997320141750706820565624853:25:20 681108486765170413428128034029559:25:20 756218634870620299354798341303141:26:18 969928515140006964334819986695988:26:18 108291822704827093600992252000573:26:17 128714045930311581514190615350184:26:17 227359883152659310363171302871432:26:17 778829641695162232309833115708069:27:16 338324058515139205399772253860671:27:16 470691065040610590999763355196725:27:16 601467872961058463849383651645742:27:16 380605479508923975380780974448886:27:16 872801494211808780439100414840832:28:15 860422934015070829936545881520977:28:15 245876990423629824669417841678145:28:14 465666123588163045089305661253612:28:14 809580713608222987223756884658372:28:14 642465400280851182654408153088629:29:13 316774600826672355583062851923323:29:13 411208597351920517684481557385876:29:13 821003271557507809341482479013105:29:13 700349028934886715142033544840139:29:13 764130714545499053348432520908333:30:12 522660167420636027953840737089946:30:12 998566481089402894661455959362942:30:12 307724392236355534009642585302856:30:12 684323099597076161079086284749833:30:12 255473710800071380664503902077558:31:11 888506817854424395340063049927539:31:11 742386871659731533075486449026343:31:11 161730416279988599645759654192275:31:10 519798385751977931724978699726271:31:11 487147354064174144114727139925275:32:10 386639071804201625013657831649875:32:10 305405000143664035838776739891679:32:10 817227786956226851063313107953128:32:10 189673312119508130084633054831387:32:10 708954834138238235759540785513502:33:9 325371505078606312105815036296260:33:9 174435198120028210401067593207632:33:9 849789888950587711544021846581743:33:9 554149728505076389079360605320891:33:9 551217466049750472642676331705572:34:9 287880360167245316042419190150909:34:9 733721427518246846749275632409619:34:9 844258212410696885421979403311245:34:9 421182434269800359535768611695282:34:9 523042012999411888540219968160475:35:8 496494548697029525069214296108046:35:8 534497456105367386325976208974647:35:8 685903228057684698089543094767409:35:8 830047119953944649277524705879228:35:8 185238845978141291187414973851314:36:7 960093124830613432826631725178430:36:8 238886924496113630470847960220775:36:7 388032209546658388586311805897587:36:8 451138184847841030626994482020684:36:8 730591516967188442933049121022186:37:7 466286455332209807408412848394128:37:7 399277112231640368961822803848041:37:7 907112321734378527004329967226552:37:7 611216442818075632574578428338886:37:7 146819598630351445609319735372809:38:7 356686998410390654067236199642485:38:7 794763992314487403014997839928780:38:7 678847543769281575020907608602989:38:7 312311656445000909179588121063967:38:7 488836904182952069243105129876788:39:6 399820579129430006431675059996660:39:6 946369332873407146629646564956141:39:7 544145929499951237899421710543589:39:6 803806452041492063582693309525671:39:6 682748800924808582229559451054089:40:6 219213363298107541444365073193419:40:6 922102273512031146852208270292806:40:6 890146527758879057473424825443868:40:6 537121211757494417251729715226697:40:6 201927978701853476178702329849399:41:6 153918663083121545747533341250108:41:6 914836904249881146518408587005901:41:6 677657093025861781224033248942140:41:6 456973215308249784438643434686785:41:6 496333687659761564918234915198236:42:6 798388658299398696309905942909249:42:6 519646646849960747768129211007247:42:6 405405191418808062429458096018129:42:5 167950093133243625886238338289007:42:5 836791090249580482749521702080171:43:5 179763455235651260288379444905534:43:5 682644968461431180730713732827300:43:5 508025315736434728166262710129744:43:5 641718427713576368126105100628245:43:5 683149204897637920297213284473771:44:5 447178817062180895786758410038281:44:5 841269946217572916985537938981388:44:5 470371581160485715947010281193489:44:5 169938344586486737612466371344315:44:5 495717777682029244044972200335644:45:5 725993036137215615070403647816117:45:5 768517202896486276373725368995970:45:5 353682448847623259724212669551627:45:5 113727553083674476936331736261456:45:5 337220184315876077055506024300424:46:5 350226725084785314758568572532595:46:5 895044167467008992699007023476663:46:5 937051519886347319674221254319991:46:5 908417922450926623199928182030362:46:5 395103939893670927092340401751844:47:4 344597254121798565284525877057181:47:4 845602984806116164421209688946833:47:5 188616358993905714046446425149968:47:4 668595876555952778995499514927665:47:4 375203683580927552420915317771559:48:4 322457872809026376231673152356589:48:4 628421924252688281190930488742659:48:4 793768587038967358188826629572294:48:4 913487753088794179097088562659810:48:4 550777752077825600011833529361915:49:4 522370869679619539824356691358938:49:4 372648370889328747068923793077640:49:4 870076197520315514210868883317928:49:4 141942645187743765687488577211246:49:4 822052028458320913732797043949460:50:4 732386748897043099421821993621298:50:4 910802875279596685465347227917317:50:4 597901562592621772951196007785676:50:4 345066065242490536498894166314468:50:4 909645865890308443093885956581858:51:4 420059384858074985658537568353587:51:4 532362990763243707126891718625323:51:4 735178903988587577996464693968097:51:4 573471045995749563199022378115666:51:4 524938788162844659869673560783919:52:4 556931955864899987187566559514996:52:4 638265666424569046660748175205494:52:4 989764308662432627884516938461948:52:4 141559373757967754768116071953207:52:4 157225366133546394344583242918095:53:4 898006172956146091361583492156726:53:4 426073710705290926665958750644897:53:4 169821429250153956629662476778404:53:4 145436411007175683662512380678464:53:4 982828590539315011815049631293832:54:4 764080521081759636617220483844866:54:4 932959900343225027842235640197159:54:4 514693254956708245321265054402870:54:4 787545388618808421920846380669440:54:4 382466853027474450835653507272334:55:3 930328257881930452019178733509875:55:3 306729355243777638314947160851558:55:3 320487318205554231951558164883788:55:3 375854140283139568927918128593252:55:3 459671094297284693088444100394457:56:3 510173674068661328785363671063593:56:3 364278134337029111126111722147544:56:3 769078198926551293063934159556397:56:3 980576884792512349423373571852671:56:3 343436634138539598570942264213940:57:3 664965785379398450010198184325791:57:3 329383766241073142944460397898237:57:3 125571124907782827916886936828494:57:3 550786353065461245971691209678817:57:3 237980545677853576580746276970937:58:3 657290355871618393601137321852755:58:3 703920962516407692211182522002985:58:3 340625379331009035406251915255303:58:3 557078024143866612746178420476923:58:3 244311420815960805823989851115440:59:3 292643126197816895416908602161265:59:3 836148914817630216324861905398581:59:3 183256537815340915041602857755056:59:3 585104907504152587288046077315422:59:3 438298984899827783926248772487422:60:3 390363093608113513447031159492221:60:3 608475951637209683914884086378046:60:3 122282594949353819538245947210916:60:3 782442983980948882530880344361052:60:3 999914951633831554304622004812169:61:3 804237356273831126810696763054858:61:3 669410280657054673484907097434565:61:3 248138706963227273262718280869438:61:3 159841764854827591510154085324776:61:3 329134487159627719681455078595134:62:3 541303184254192147576645539788851:62:3 640016979279245914212938028696063:62:3 331248939190897368968223922717404:62:3 175405436977627208849827122265865:62:3 606416164246815033246349935546944:63:3 410878724016792633192530323602413:63:3 433242695172398588024931252492857:63:3 711263655605627019197155250441831:63:3 262062459917347405062306899853046:63:3 324031825317545553062730078930860:64:3 989807756525703622820823389432114:64:3 337021030323400407962871546704209:64:3 132352217983182043483809034690921:64:3 346419491638017905446505221890334:64:3 838137948225528623777024520602977:65:3 577219856886767695469804747204652:65:3 902140058847479984114811040659594:65:3 795218501055137559338730707237815:65:3 440515013553968091525706351846106:65:3 231379547212770192635279467773628:66:3 957986475708972131396788654438170:66:3 945807851325627881766197577738196:66:3 860798848288219428789263328787286:66:3 417540981810866423248402063948866:66:3 981065157019437583821674492332463:67:3 660975572360987671719089746325220:67:3 882961064636382383518058464550238:67:3 956908907966133914622171548419523:67:3 439581857527844551623566172692450:67:3 866998354806445897461197025610018:68:3 704666757014605665301329238987046:68:3 272729678409280741427376425425092:68:2 827766392323254570952232014857839:68:3 165527910725097273925502172910610:68:2 138490691357183961307260437292838:69:2 522245168103355756862311669407426:69:2 260933703981434764519281096836341:69:2 464435960788914987369881806441769:69:2 811599260359342424444027438584424:69:2 313232932520966717273404899101694:70:2 902517794278557473374007106677281:70:2 105898430348861657939850647544677:70:2 606578655125456812362976921218966:70:2 306243974456245763770707425397751:70:2 418698595685984692015553759593198:71:2 354931547957638975592464690018898:71:2 590839749687542196342533716717231:71:2 576550560555012419196254774421928:71:2 918602422399591331258711155457927:71:2 399382321327277074071515957180003:72:2 320870639316393217429904013726855:72:2 123602070102779772912678883498856:72:2 272007376058738338656415463845628:72:2 983265531086444867796774108814223:72:2 503302536024815273667258195188067:73:2 671417720034649039940941925635352:73:2 348798792453397580428482982206271:73:2 299382968359227817434189941402021:73:2 652215606323552508812356206529037:73:2 912683341013622197146459248168454:74:2 896469376839472903281292558244092:74:2 404423340122068099907947258699426:74:2 326136326771221423638572044311969:74:2 242334266239257179909925237030744:74:2 548692367240291266782901850696151:75:2 224038974199685531487685409443266:75:2 893346586784335346565112088173884:75:2 922929033755978166062825558559954:75:2 223379333263977618920548706091458:75:2 766393651821111455292155869743758:76:2 443155281350120855846714437003947:76:2 666462538102378544252063933417966:76:2 459699576966544407553177073241912:76:2 747236473193198981150196382855088:76:2 426428150123648017646920111221577:77:2 946469440807487927936810312814241:77:2 829584972775952911000559369897415:77:2 342844454458394445503315306403122:77:2 568471911822669521683385304334563:77:2 728526971199962831699883817641006:78:2 959956017658716156078886741295833:78:2 294607249709318718488306073928539:78:2 883603507172452585555027162018306:78:2 981476065860790517257934918769024:78:2 724269812104206835195003818515317:79:2 529348383847097347884156794787198:79:2 257742685306332835508554433991291:79:2 307574068820808557003876669928272:79:2 369930251106424935447368882644793:79:2 868227728712677231330531804835063:80:2 675768340594975573323502799855448:80:2 787249185601302337761886019645326:80:2 799022920457060411402852689078254:80:2 255302527420056278379886990720180:80:2 250415477371432020114132779255127:81:2 735440266429934420880242019559570:81:2 645774927793287541748371427151834:81:2 858100745609790130697255630328747:81:2 346822211073883441898740605458102:81:2 976801843017554438849766888445892:82:2 700512735271736620819982086129553:82:2 915292783336624457162978573140470:82:2 747824359756752721747851444422179:82:2 175963284564555344074285948547201:82:2 323428860149986677883080929568153:83:2 313791924435852963864864502347787:83:2 483347301955040899203791561856976:83:2 825750274426803829667644910710756:83:2 677127578348156391372799197444456:83:2 560701749247734324264887656113365:84:2 204240746976758632614753351693020:84:2 953096796202664855088864887526411:84:2 681939800360447407780036053010788:84:2 807440416445865757667296195589441:84:2 499973883772741827291290297992688:85:2 839483277651901424207612765308683:85:2 732814546163824156284780739187137:85:2 420689549393396064522894318687307:85:2 430594935813491367076503717134619:85:2 305242576200273689957279947953742:86:2 191396165920363893765540787108629:86:2 993564970197755707102226821975878:86:2 118181947475838349634457564168019:86:2 161970542338126285997756764258652:86:2 379207032944489780086196240070250:87:2 917164962043675916898198225353439:87:2 382442751284253568015176256802845:87:2 219455205757016860987210859965817:87:2 913989518577815997880061850997552:87:2 654223631089700517639754634494273:88:2 866706755215655410326449963545188:88:2 169250497491764913118923110382633:88:2 202784054269945458075104240338524:88:2 263520109805151385200761618982278:88:2 338921524926490380055801016912098:89:2 395461064421776090480975500996054:89:2 642766769386364560360557747087642:89:2 865312318808464288654084599264462:89:2 943507945123136407816459560677581:89:2 448963288981515130044871501554835:90:2 405436933428602671190932610083308:90:2 331989927941161079806214643580842:90:2 165688877670992849299993038921316:90:2 721864162027177406361056931402083:90:2 751349938127142363144565237201538:91:2 802205532125428042002736391262783:91:2 797771656099725078002021390423724:91:2 273449158925046170315827484382275:91:2 124061827422714650819462843144915:91:2 453435051071552956412483869045658:92:2 183077556206727863450706933676593:92:2 108273496634246403487624145779924:92:2 516561569358863809818102950331671:92:2 244412409548012440165917742221392:92:2 723266238717918099025034041943166:93:2 643252358718834027849902182112194:93:2 946342575109654247696935957534263:93:2 604830316961677233410316866798471:93:2 487969344520643749848109603210941:93:2 809440929419955198862906022018363:94:2 394555920613913476167005210681160:94:2 324889522655427118158052514175609:94:2 636033807028437409838478143197329:94:2 848332174731079467883187259587948:94:2 473449599955862440498653476224764:95:2 467627109453809747126544465270274:95:2 834239328188826857121484397956194:95:2 324261116020977730350919716525700:95:2 619802435440065455331380444238797:95:2 453768671513329650688157374754529:96:2 436788658381255797044196567044252:96:2 826587203857014472379071464048338:96:2 575853014307770368117716332703007:96:2 641283750524546130790805552703752:96:2 314934747073000181067515369377648:97:2 134541750519938855766528993289701:97:2 821597167513390733899404040801282:97:2 352454121859047686076579501177736:97:2 902969358881313155038387451185935:97:2 277650468198049054194764093002077:98:2 192437932095065105316161128755707:98:2 821165775489786826454022511010144:98:2 641557439290594248773070376064153:98:2 701633508243098061623721571930962:98:2 343871246884661682049028823778629:99:2 514241968716719078980731397340784:99:2 819341849895273371160530081237578:99:2 695826641786973199979414066098118:99:2 350908445414599885573892199344381:99:2 745333700448433911817576619472279:100:2 229088428820908473132625442650206:100:2 294348121968796577251867012306993:100:2 494563831117197944844855385484117:100:2 185411366356632765783606056576287:100:2 7981298046688753354043627895792984:1:7981298046688753354043627895792984 7817308593805747151390551946346046:1:7817308593805747151390551946346046 6118299219424877907933946615868297:1:6118299219424877907933946615868297 2480990987877892538277871183709514:1:2480990987877892538277871183709514 8594734151038947314858664682282399:1:8594734151038947314858664682282399 4904255978179954731602384407780328:2:70030393245932545 8836554911941301837090900692709643:2:94002951612921718 9549438319805684007263591944881534:2:97721227580325064 2300232403720324309308697531002872:2:47960738148201225 8941054039533100233451126870268057:2:94557146951106240 6787854142502145857578992904762046:3:189340782319 4419877303355192404799324462755943:3:164110639492 3500223632327361430560663744282551:3:151832682236 6705167983044860695284270422931558:3:188568821791 3963470921391770280248112809528084:3:158255407577 8875687251732535296794723871441460:4:306937886 6782762309367472577620261248372166:4:286980012 3885097075428750722470148458293550:4:249660863 1433104979505188675877692215396301:4:194567142 4481280176217296510146056784158268:4:258732225 2039112492205787490823877075830688:5:4590798 8932653945984853126418723897402439:5:6168734 1251651549495601999634784230834200:5:4163865 7673059295878795979504966083695198:5:5984029 1304422250196517446805649077547390:5:4198398 5713741675184783129642481960739954:6:422817 2998361449043631474018036490937177:6:379735 8418097171831648535200325442523474:6:451026 3185474284624957381848136823192324:6:383585 8677937541466917027296939233823570:6:453317 1593184315434141551528495016300317:7:55358 6187483711181877103845004223231601:7:67198 9503927690151160610174410499806808:7:71447 5297901188588645553106456360311535:7:65724 4429911611276798705775932070144682:7:64066 5262283090778109035421097632973837:8:16411 4381633622681492069776976477457210:8:16040 4108234501932992525487675638595617:8:15911 1869404184976672913166178722004910:8:14419 1648248203828639673429942760070528:8:14194 7287587931676390986539429624897097:9:5787 9107498119197500108971780133144073:9:5932 2688375557314412116152077187523769:9:5180 1895133865047781507715308104496108:9:4983 4005367976809844655514892650569707:9:5415 6848320070611842938533538024560109:10:2418 6707000803802073071888286861388636:10:2413 4347515846591365337342847101810195:10:2311 6451282795277722238217630152491579:10:2404 5110019991996883837727351391807460:10:2348 7373053173862448401643995953560193:11:1199 6964126613020409659605688060883275:11:1192 3124550278274981381519695179512474:11:1109 2871373675621490676684396747976633:11:1100 1902304801847346587295114037523077:11:1060 9471283215325217456205661492760275:12:678 4258789676467922209426626273480119:12:634 6208806296864493300872358802283238:12:654 3500959223059745335011061700974035:12:624 8993970382449330519589817320710809:12:675 6233154631373283454870402646920491:13:397 6667102544692908066025045788646010:13:399 6793630262061012322806005845931117:13:400 1344142955465865671348806840769007:13:353 9414289684034705212032207727999599:13:410 2269079209556491310853028647251144:14:241 6375488823187633853463057425154510:14:259 1432190283123213216301731855515433:14:233 6053574647957045867260460089296594:14:258 8643535960297933275787609339665025:14:265 3845826703997607904137126059659480:15:173 9584541193837339577080070910109267:15:184 9575805064491585555412389327214215:15:184 6866682291523563199919724884751877:15:180 6786989608523012143284643465957842:15:180 4885124877879662238732710100174264:16:127 4018553753773146152785415025867706:16:125 3662519724921517127091377231921329:16:125 7796119944703271843035558301549493:16:131 9792789677358350446818206931673234:16:133 8487257478560820633680474936891853:17:99 9300163574526798471461053383277805:17:99 1199603514611100140330149664245080:17:88 6700279774606719055844709012035929:17:97 1969576023537656630457560048015421:17:90 5400454633100501553249638583402128:18:74 6842378495990943062900706052537304:18:75 3050915576901882287282795012058344:18:72 2963142082575146551570675065602175:18:72 9642954143394335921316406011786036:18:77 2811588188823411541815395295529281:19:57 1423784424687404041839977618804703:19:55 6225203738357691695366554350152236:19:60 6378993330244531649254705001638556:19:60 9189114323849631503511099656573202:19:61 3428087781502356603663344757817951:20:47 2673371770758484419526850737407638:20:46 6289486781390207979678265485268389:20:48 2144733379087759322878725776451273:20:46 2370137745071082723982863544038427:20:46 6476839112391385695175306764482971:21:40 2616673666409263000994587063596659:21:39 7948446592538639546744681542539306:21:41 5242376187342809132673922831916014:21:40 3526499922891819444390583645837211:21:39 5398810157788403438275487274101168:22:34 2790255775714968023318122632979526:22:33 5191950475149982597512518966098538:22:34 6963205156055280771444793752076597:22:34 1063952941765223036346341847588152:22:31 3639115500132729433369845829090314:23:28 2462613953897316572688858343502301:23:28 4122652335733145097577416801346654:23:28 1492913075575019216373277116190866:23:27 2564688746224514383017647444276826:23:28 6770474920868390556246872785440893:24:25 8195902463623465160556424050441526:24:25 1844729644320033050820670774464669:24:24 5584991322505740539278089764727713:24:25 1240415406935381472436473905543604:24:23 6183240960036982564468977015120881:25:22 3178340567897522925239457536653405:25:21 2066663515268813705830264131663856:25:21 5113541949141671907498266259967643:25:22 8982918161895575238902398885269898:25:22 3407609852509084831367312710962311:26:19 5888498618927941924678423045720727:26:19 6430943485601982709598338787555946:26:19 3406270825332850244154144066417535:26:19 4461455701016587433548583389700458:26:19 4612040458528476218909310244797396:27:17 6625718109171816576269987480349209:27:17 2204452450716585653884550851739206:27:17 7348213490187264578100473698213226:27:17 5506337844219874514235405878854414:27:17 7512521890503316036053864385776891:28:16 9447520513072749528408849696894924:28:16 6073519321575734404735086398303282:28:16 1216797175349028954641920237916902:28:15 6082177492598838000802130683055186:28:16 1865838105651168969330244032495558:29:14 5478669596888123594770947576013530:29:14 3218268248202092747660169244779253:29:14 7180386813750076711058397484424640:29:14 2054471951203620534983416471527405:29:14 4122076324034677149557876709475123:30:13 9569449974062564679419236012485057:30:13 8957930287809013514639861128921603:30:13 6991794316018487027271148151403426:30:13 7705164258554665889554082526600560:30:13 3477728221377419991950297160429005:31:12 5200101988648453452079772837611052:31:12 7905312312502953928442143746276899:31:12 6688182450165723517779676071716303:31:12 9186874097277233447442593891660596:31:12 1073617847721540919176582450031352:32:10 2752496284178311248626416681626535:32:11 5212583965903096188886767251483509:32:11 6457688020518963897818250139610015:32:11 3335856811925398243718348271565199:32:11 6969044456200476458683755862518359:33:10 4137286862425461335769442614081328:33:10 5649964088069633850836788780605800:33:10 2295609833641323626959142602089773:33:10 8721406355975699039245027276348449:33:10 6467421797678882129379818836710102:34:9 5766978475938496362768624455294809:34:9 9029875148348545521075057359312007:34:9 1293870626946111694630021584273204:34:9 8556354184696448416277205235392086:34:9 8981571648771049634729176153320180:35:9 3803309743409428510092861154770418:35:9 9082198924443465936920247511578128:35:9 6314105881972159738056626004566233:35:9 9343586080378934406744788847675048:35:9 9854797180356554542584034658355651:36:8 4886385602930181486484112265971922:36:8 9430883689332637314521847491645033:36:8 5006773570362257288147989417326603:36:8 1693041913645383941511696900313558:36:8 1059322593162751612289863189264496:37:7 3198400048112842204160239336881529:37:8 4294510869471491367493068540083894:37:8 6261776735052458707493579732087851:37:8 8933930033629455139641089295657849:37:8 7416598903284694744534852136559627:38:7 3081051577641122565728447046284471:38:7 9886312727869494395517896673759723:38:7 1917422841300373403569327055228473:38:7 4204313557904587877288252586911249:38:7 2995748091506753628563766740329180:39:7 6112743003549461698558208415878121:39:7 3959267268802315891402742615098784:39:7 5294585859137876870497182014284839:39:7 4255270377491319443277792137277414:39:7 9646872192702125656808526611244424:40:7 3384690191474459306056719968394530:40:6 7091966133612748503769450421755921:40:7 7078863730898543488090526312858119:40:7 2993313749939491314093708190608715:40:6 8238220187257626293314739491447589:41:6 9810966221580475631129027876118277:41:6 9829782776424705434683529087079840:41:6 8712549053643432681988684569053821:41:6 7285637971567492831676304075719680:41:6 9049887057757398345415617295910157:42:6 4033229248148266208971500361238752:42:6 4035441623747528733511395477684784:42:6 6673566077650215141154953054000519:42:6 1588296036173981239761367997197220:42:6 4488197872395959535084181343956176:43:6 4409769809435864140491687800930861:43:6 8232607612511453662367192670033812:43:6 8067924246643682607758771750615665:43:6 8917778723084591956648132026274683:43:6 4016821487654365371844641215199383:44:5 7604419239538474479060562659683360:44:5 8457011756829466310542785575663989:44:5 3376642827948179407616059745826957:44:5 4101523522373368713633410514002438:44:5 1640241312887228382858014017861258:45:5 2822311842549379162935905006299480:45:5 8376593738321184120846197688060817:45:5 3227129489540529460803035122987393:45:5 9785077629959300856450135302613224:45:5 6090604050094676817380621878743981:46:5 4660072396038201211198755611966241:46:5 5552985200742695940161931734197995:46:5 3874057115308341848599928398845569:46:5 2792510962778796614534664009229133:46:5 4184470459160857659231262418005795:47:5 7769800107592144946162559197132421:47:5 6318919152160673408985839593394172:47:5 8914675589876516613085543090132321:47:5 6374922955156288297149678288843566:47:5 1120746841083421361154002467810171:48:4 7676640995808408511585509591781392:48:5 7051914060728327468643726616072411:48:5 5509764634370190075091685534254940:48:5 1924351258627626925069717931701143:48:4 8999745546324073863080467855483872:49:4 4618798138199765732243350545406500:49:4 2467148773025616895997136489760951:49:4 9552625317256182065304991343876949:49:4 1856878467706453250366428041982100:49:4 1943980783550474166834855429512304:50:4 5968190410052139111717317266750247:50:4 3471772323921263839580165090253264:50:4 5396329586976809786368563748175221:50:4 6770666263884474521458578016852919:50:4 8045332458308372133992215083184561:51:4 4405246262091512135478528237300933:51:4 2269795411069898328826513956915967:51:4 7972151976749504604770293663411403:51:4 6330214389637161845668941816067250:51:4 2181049253153038600274452500825925:52:4 5597580097049084857138502520367823:52:4 8854394468349883800529123736490764:52:4 8819201133294342081943163971101248:52:4 5925380155056301621313292803003654:52:4 9921991877959722339846389587973091:53:4 3077879398685456768607035386671368:53:4 3606282087853936256772201330221701:53:4 6728690489028135533699698955791165:53:4 2438937099499087073438135610485442:53:4 5647961824278419607702705441091676:54:4 5711136365980072012289736487141862:54:4 6831574341648616954037438662953239:54:4 8114558070572958214264570402647506:54:4 8559070373549759319653119339754696:54:4 8834118739082751218263069362104322:55:4 6545966142632105885380595955205389:55:4 4409286350816228598639456661806716:55:4 5909404298222135434724010608497532:55:4 6683797901327531022314978929577294:55:4 2620770038653913970950008215868498:56:3 3303077808189362984143408579715956:56:3 1286570032056468645752813640779513:56:3 9743925249087200750395981870775522:56:4 1806907666951166842363316617340742:56:3 8702502862459515166314089530461714:57:3 9560892564095598675731389486446101:57:3 6650721578656141864957904244426572:57:3 3806291656517908291334004634240185:57:3 5148997226219081738751074522035733:57:3 1017147796585456096321189297762281:58:3 1571741881679380066549958441013528:58:3 1888316333947109605661195393498221:58:3 3366772821377386475674623647981226:58:3 8308280603342396239434672095082135:58:3 4252330987640748904308484273446948:59:3 6711887226957406323223124237333580:59:3 1174257219706292568691333184227113:59:3 8886980713951424997347895549695645:59:3 4519102205680433522623253850133049:59:3 3012797110159704690338846590831980:60:3 2885213446152262002214857904657553:60:3 2773298652805308104901329954536989:60:3 6472434332995186661714520922067320:60:3 1812862296912974630277880337810947:60:3 3090788417293599308734957232016481:61:3 4638289664551691815184397843751521:61:3 9791857577054085720541883254581823:61:3 1086695061200265691036961160150694:61:3 3902990622536941762983277984345510:61:3 3560002794522567189731482675302206:62:3 3604204310263630663197000731597271:62:3 4760837888829981993473438097182440:62:3 7466204710050238738558957746500729:62:3 6820968655756174556325533817180992:62:3 9110489132962920738155160770938630:63:3 8526656065658561219243181568778380:63:3 7119247360460342003186993829962161:63:3 2859868926658117632308381203125575:63:3 3545129010532062712979711697803505:63:3 7755418208843044870579872957899870:64:3 9829898071282805348033333623379839:64:3 3589169187066615293355835445098880:64:3 1938874619532837604726649953480236:64:3 2368124437273362279164373265629573:64:3 6919499605725459548110299048291583:65:3 9926913731858829048595155629588128:65:3 8514264674419952564955948623327191:65:3 2527989528116299661303059859230476:65:3 9441531712477041421996958085065793:65:3 1400242667075097527768655255249233:66:3 8639010780996141050566292227476519:66:3 4352041054035464021120369607910927:66:3 3273924099159241146235338607673464:66:3 2032557139406989788728186587382481:66:3 4175551891211108008075761272353133:67:3 4334799064350746187176482213790580:67:3 7012523489486913593440257440774286:67:3 9902582149253355736759118419107768:67:3 9437345907058462241541375075083656:67:3 1940289071421716290940274839361079:68:3 5218746064974649011742189056036319:68:3 2714385480581942122204031994819686:68:3 3817471472114134636023654498525999:68:3 4082113215153816240165560096828330:68:3 1621559803094870470143808496482498:69:3 2467413518538900670126527383773958:69:3 5508754394009562293232059072670839:69:3 3544028300464886865559401039413319:69:3 4292678498959551643007893575360437:69:3 8265362463385127637905237802150510:70:3 4058830447691445940466256074503978:70:3 4935966783831923284236649877616585:70:3 5466581375557048644178242294240787:70:3 6425159624857386512911595030897656:70:3 2686523784051748800597055650014296:71:2 1719649006517247505465688628769978:71:2 5768424683906983669112820815820928:71:2 9371525856607666464669739409803895:71:3 1054779454325762282277404297328004:71:2 2941358176060538915091567861618717:72:2 5609795148460986260049020782860251:72:2 8670411210572982332434708831541759:72:2 2936591367906160446598614543600598:72:2 4617098442571453778864182421872706:72:2 2814160255587395890207073744482891:73:2 2163980330243400673998130007427328:73:2 9681151089783069170091446402315468:73:2 9679017981181453613071749241078097:73:2 2059474020605259629979908190931320:73:2 9082843246710251251722235776403506:74:2 8423647440931518868272975334897612:74:2 7927164709649253533967618820286579:74:2 1424549269416015633425701802294909:74:2 7242041682192290698211067486757612:74:2 8991758598455874313307387662010402:75:2 5222880431760681054012052837377631:75:2 7116979915635172194323329196785630:75:2 2214452352570889856940935250551691:75:2 2270543009283374179601215604484498:75:2 4598259620055560931254685775625324:76:2 7854569223741721040167633176729037:76:2 4781368517915129381754426912757303:76:2 5429002461884599777082019747890604:76:2 3092919253227554374294708234672872:76:2 7228759165284443077778841793242043:77:2 4744347255537923651720919758943410:77:2 4409183725859167086349321362311436:77:2 8867051565901778628020817372082111:77:2 7568149877114369717965568881103294:77:2 2775576653421520016965243787264016:78:2 2788463987531345511883577024562259:78:2 3672871462258538171622868089196326:78:2 1187979763981601005949027458029227:78:2 8792437643095664318690122627765289:78:2 3046599152854503798639721870809128:79:2 6717227474763090216353339739858325:79:2 9591528270965907649173418612278519:79:2 8360068834881338082293893946710404:79:2 5331914800585361670858422226302590:79:2 5759851126347042866131274951030001:80:2 3063400779230850573349179072644200:80:2 5620072882611181196146425223616036:80:2 3232403797770561196173491398650264:80:2 2512824055647156623890614936076609:80:2 5997906955874306309586617999681558:81:2 6181483108313393469185296550184328:81:2 1146063466195812604905439744467158:81:2 2186494550929188302582977454003957:81:2 9543015003462987833082804736683200:81:2 6382938248946696417648208354518724:82:2 8864772282974712801864598515620973:82:2 5306671273300875931779731004996184:82:2 4055071357265536584341408791468093:82:2 7235932825551192343670773063624183:82:2 9867682713938834995642235573208171:83:2 6662124493158522087069786073246234:83:2 3226224901388385922913788047569043:83:2 2967694063881981280868350191686882:83:2 1310259057182975753964717785864884:83:2 5982872433773588589417362152261454:84:2 2418372180728286455464215497561178:84:2 2638970104510219247050595624115049:84:2 3443965521839018359495885152243270:84:2 9244666460147356770125350139548582:84:2 2398665211688480853669808249415974:85:2 8853190536753834028938009280399469:85:2 6184897781387632474749339573739053:85:2 2337643115040935702390248020834500:85:2 6919466335079508369459678642139255:85:2 9388568100275386036562927845457985:86:2 4628110912918162259118608345615764:86:2 1991871415200287771776674675298629:86:2 9303962866631310769370629528656576:86:2 6590962690835530104127800790384524:86:2 2914139904502844762598539272860036:87:2 6176102676829561496657723700729536:87:2 8653358097491223803569985890729177:87:2 4633906498319466901369997536138273:87:2 1452221266390429451126485788901665:87:2 6273324131236740721884269041551600:88:2 6066881385681881060217284195631655:88:2 2391884987015403057587668038033128:88:2 9766578653414965773888493478481989:88:2 1054951677699784072114913956710911:88:2 9851080570679492323763520491786861:89:2 2775063728450313295524897317333530:89:2 5034198699367569901060598558441770:89:2 9304306482706798929178616113879557:89:2 5507294864454434887700902725252704:89:2 4010005945309918592480218519482739:90:2 4855874300259711369051618872373889:90:2 5831304054855300884224828650934023:90:2 4327879895247896260905853463881474:90:2 4449322947415818380418274289173832:90:2 2503780420380913530076426513718034:91:2 2808810464505706571802062546393301:91:2 8590323779080304982378453592814738:91:2 5119075634618934813113177282254281:91:2 1659661731266849024950116842228093:91:2 3425963662832052757008948996046072:92:2 9604059336951864569620091481621301:92:2 7752113240432513453904983774446421:92:2 2227423929525542615971851585833042:92:2 5734126297582937953443241890070940:92:2 5705631372135097080562502484819764:93:2 9130154148619776834811757124705113:93:2 6520158158554177590211934134880223:93:2 5988033899671341115464958152413253:93:2 6452852977351427169208945557837611:93:2 4532059412101589215331114383087126:94:2 5260641566147727250495718438222646:94:2 3478471714407249182092681338625337:94:2 8771265447957410435707213047422917:94:2 9261479313897844535354124857002840:94:2 3176461491705831932060339052070019:95:2 1190631840471133289336118379008217:95:2 8524736229046735018061479086635438:95:2 6708087720233210296745039790762021:95:2 1756467595700294692933054807857829:95:2 7919292780653574555325184164008127:96:2 4865581486695139475156031699643189:96:2 3273504794177352132853741618919742:96:2 5132133609893217512342276730482547:96:2 2353179060122902899712662284938976:96:2 2105431183813723304751860181903472:97:2 2148828687240636041064660796392245:97:2 9963019016333018509122077383673043:97:2 4375727444517782841547471187564423:97:2 3833348708874976807006846518840253:97:2 2156366130993996005475901355383918:98:2 5320310051664987064153553609385088:98:2 6740826401189169324011836070616963:98:2 7743548341305467047044967602599905:98:2 9948300547196388332701043846716409:98:2 6352687298626877705000321301343414:99:2 1072153254614584923767218764806044:99:2 9200525693825395589081889384179956:99:2 3029862304700472673898280216030792:99:2 7764895454674171577797796242220752:99:2 5652715785704688456773983663072203:100:2 5744778685384623518966383068806018:100:2 8450706254043045471016485046416908:100:2 1133901490254634359869305040533472:100:2 5936938013747598227200761364624704:100:2 20836564474890168267287028524099861:1:20836564474890168267287028524099861 97136092114642585301185058470531424:1:97136092114642585301185058470531424 39951546002414501182659495024893425:1:39951546002414501182659495024893425 13434948976789410935701320060260596:1:13434948976789410935701320060260596 89339800292389756071671793669712268:1:89339800292389756071671793669712268 60861472828576937807624826891659504:2:246701181246821227 38196080262195263951099364173252415:2:195438175038029005 55847203247822708071060325984989698:2:236320128740280412 76798713043294237040662880469010305:2:277125807248791315 95630662317567201565988886050021019:2:309242077210665498 12808227868372945618131116924257606:3:233971530056 50511509426118263280065901157760463:3:369655167952 79733975992186230333301135491370408:3:430408798168 11864312307861889338979147241909811:3:228076666455 59761281616427240293187384108989629:3:390966879097 24433409387952967342702493547496804:4:395362994 32945057639115507483527869837219630:4:426037245 65792755511274579823985751630774281:4:506459263 12424076363679098569208854962458611:4:333861259 18105381494825100668651306297415939:4:366819082 59089548718344625997216848777731850:5:9001235 40806093578726825346856152249834869:5:8358820 10650382320535355979044235100536499:5:6389590 82661539387485172679925071149135524:5:9626328 51573364656189492042595812226442691:5:8759616 61076501992274802457910169715467369:6:627546 69494425892322877641208700732060414:6:641197 70930177441067969187198113840371764:6:643386 50598815567982766891655450803849835:6:608167 38466484397709903185263427835410915:6:581005 45014901738957033721020811988031711:7:89223 98496652612174775530477930335075117:7:99783 47178839741875653774689869364544058:7:89824 55283296009796260930750168987125301:7:91881 15406171076261314364215169316742974:7:76551 27980980776864380187899490582512032:8:20223 35005862111288939276984832280641319:8:20797 25415376342924253704662474570615117:8:19981 10929909479435579111882643421747421:8:17981 92159302483484752810244989675030762:8:23472 54377834119794453584877810892907537:9:7235 37833204657318786154803657332222214:9:6950 90939842848633844674214053882977665:9:7661 34385071257805587627526142440652398:9:6876 94626432329579697051055784956100463:9:7695 39217557274158252292746912729186842:10:2879 64471336262494961242960494461091677:10:3026 82110452865409173345013148878911131:10:3100 40758493690132583954513979637877433:10:2890 48540237274555441904915900355043684:10:2941 76107105696851847688749419445406402:11:1482 28097935924331674837345018616552364:11:1354 58179069673770016475246464052825409:11:1446 73885767793170031713423013291621553:11:1478 58615039562990120303262603244299539:11:1447 90016250125050572490346288730428479:12:818 26714899298396186431674316754673439:12:739 63141313446452911459073385658746254:12:794 23152344883932260372011328565897474:12:730 32684574274080042978152373098046460:12:751 74453778255756419448878521587652742:13:481 92914036859791943437130359156646499:13:489 48388374188541546176685816698291893:13:465 99926373065176154434540680814807815:13:492 47960173162614058187294781499738275:13:465 12319379478929523141656709410054369:14:272 53797735748661765272463982723245784:14:302 45170535815684575327372040010233670:14:298 95099931232650876125742435320251352:14:315 84386600989403966072903517205883130:14:312 55581311750543541788553665302955286:15:207 93705917746090735300811328041375282:15:214 76675354170583729256313833974239645:15:211 86577503560708733890603111055213298:15:213 89339972918115411343230245792227244:15:213 70845330872080188730000147202958272:16:150 65184053195280900740628436315164784:16:149 40663965598396061720811630642714714:16:145 18997293751804828174469199594837339:16:138 83778609286673289471836122383395135:16:152 18674476376163339489151580050129044:17:103 89486911190534668766682209183020109:17:113 67645713927893272789694418433423273:17:111 18269655065553633233679924747080503:17:103 23387296441145897455017886595534198:17:105 46760763458742529126893428067446666:18:84 30222445166727197428408184358730181:18:82 22333394037139623418813036163105213:18:80 31100686533563447347769324897074520:18:82 24530927657689094913243756615024553:18:81 73726475440637683464405437654861323:19:68 76570863720472859129309173133547369:19:68 44341178765087469220437078090469551:19:66 87070329163544950162840287533694749:19:69 57044230818070866397002154997744810:19:67 11352332322228696474026316231922497:20:50 55823434572915912310971587599282466:20:54 89443018426711944357407667661034774:20:55 86218276456761347674891263848634736:20:55 38577618804423211703744176976922265:20:53 96553158409972603862469699525681874:21:46 34589874874368394501842742344412619:21:44 82484903774005636012685889283955727:21:45 19358429679883960155693914671548721:21:42 70530076932630699466891231215765605:21:45 65881589186359148630224410371148227:22:38 48002574311057189348504421104662875:22:37 75516002009022387824669799291203255:22:38 76900746669480234284350206286117504:22:38 49610913516806780233595900356091341:22:37 80041473899375614964018103980140376:23:32 82878817801142580177938271781599809:23:32 14227380760240341938930741998587463:23:30 20074334135252591809221551241438165:23:31 42414697632529251625430761814332439:23:32 94349628729502651211333200389958319:24:28 43960757322906026478714644774547212:24:27 70034505596933393730076355392825171:24:28 10276359226805162666944011121708037:24:26 42155307881483819329858323680602166:24:27 79765356589522415947453237224206454:25:24 53487723547694100976787278075968077:25:24 30257233791819442709844708158482747:25:23 86649831392377463357259516397359629:25:24 81140249748929370230382179014712516:25:24 41664150654336353977443447778624094:26:21 13974737052344626250899084895646460:26:20 93576110765986136223229656627747064:26:22 70095325558428132246406716888028121:26:21 57415525369664986680178033950227116:26:21 77272506232867985493631732858521954:27:19 24218201757218197906719322138779229:27:18 42515721100114461899235175073108893:27:19 95345813634533974618808287317448181:27:19 78501429879837816178083521463297058:27:19 51525007948567141620071028597352531:28:17 84932268428449652830033583098303525:28:17 61176472275086191043421895150561373:28:17 46611389248514407200575072840427331:28:17 83750642359175484912134201439524281:28:17 48515694993244289468928724774671290:29:15 30944595420709829667922983332166793:29:15 57525280979966591845046520724195337:29:15 37061163931243654799512674876972828:29:15 97204483950248166753935940878632059:29:16 26566069271467041582059632276529446:30:14 59321246337540968558075506170165358:30:14 36927405422981842492434824945594970:30:14 22816802203877019207902352120251860:30:13 65010505786159179834647664557087056:30:14 12211700784536268148074612942759415:31:12 23033130787209757348699233593409893:31:12 24537817620506148568671812404098615:31:12 29523253438087827011839120380537672:31:12 89128706975589327299441906190620147:31:13 58325121184231053553351935235344095:32:12 61452207302653740581155344384835237:32:12 34967302831209047417560236115460311:32:12 24975931025837362916985005080953164:32:11 75809952156417145458015832744354720:32:12 50528261858407397113907110677604212:33:11 88795761361736608511569670547797093:33:11 15103514778567374775268298772481112:33:10 14963820644152850112544830755135534:33:10 36778062704447881009074137410802965:33:11 47692178291787476684079315655103165:34:10 94324810433018962720286988005416562:34:10 60460001318062420580878977334255566:34:10 44961531144929141349895431620194301:34:10 49897701104200753148759889182728474:34:10 36473699825124560570842491281730166:35:9 48816682315450425806631553892850197:35:9 83561967028926683231407070590347118:35:9 65217289754627521018488991905465492:35:9 70152687431440046300414765920193082:35:9 33452726987092045356350602424733185:36:9 91088246712215896331122458916076474:36:9 75154731939732962109924336356370153:36:9 15075475184765961882872716943738831:36:8 94734517434400585618716267711090267:36:9 20735192735469075050233302431363540:37:8 85931193032786729923658037969777226:37:8 31877844293223139853235914197087536:37:8 99226581417239670789205208793864967:37:8 80407725375374483312492011035805690:37:8 54128103350672622739461155439691568:38:8 83550349118324201070140509545223912:38:8 96743071216125444092886889387180829:38:8 86220709519861009080705706741995613:38:8 57224055214965931044499073734660093:38:8 42039577421039784264148056182675405:39:7 21287525408810525611713342729798631:39:7 59835874809955146862730793397450818:39:7 52124963903321403027864552960840415:39:7 43680961814852539798960203330835027:39:7 16385620858528863606762851008278341:40:7 95859075167345687222581508685515544:40:7 89893039735473185661909632148020044:40:7 30191324783594683655823219847962203:40:7 82100365933205145559210193355832473:40:7 94096800561569778700661313588285564:41:7 89415264634515893231821334912678692:41:7 99993656359865981596159486569819207:41:7 91718832000601354641658028626535959:41:7 41735872984669450802349659200278967:41:6 85445021584173397748899780257602367:42:6 69000323929042480445507205630075055:42:6 51881940182451812594753531383877136:42:6 33217776245143947657440985347162872:42:6 54331274800775276360227003563995286:42:6 13838701246248585913466181845387472:43:6 23483775850717453897944096059973508:43:6 50084150221617973784513181141806652:43:6 87943675280529444732857550850760542:43:6 67497781930016618708514958652214288:43:6 95677696270988238532561125719675385:44:6 30526926618887005072407268079690732:44:6 20525916751391322837092237294964300:44:6 97626584506453393160784973111068007:44:6 55785596410413288500323112395202843:44:6 38287741546532787077853077438008690:45:5 87422669878520844740655975825755769:45:5 59209241613272179381061433443361248:45:5 82141040109489790577980121165102483:45:5 97256011841180145775028936226685695:45:5 22187381822122199043207874670583192:46:5 30702842287945904237309621051915320:46:5 93777337347128916201788120145959299:46:5 93157755058407303199079596578447134:46:5 80905796535329303018943936506596520:46:5 20342088966460833850092930594974925:47:5 81596055780425055198156334461791109:47:5 37272534013949936981065295817622482:47:5 43730406572878817012043025766118590:47:5 19206030042190032948861773456520500:47:5 74855795036570712737505854641874967:48:5 50722047705517093120389416398903111:48:5 67962499715850030100300538686874959:48:5 62722146417128347243066231458964238:48:5 94326183220014895222012861223857538:48:5 60794674913234649187600493750069749:49:5 57236593368188235702540451771162476:49:5 65939446352472250041015841475995039:49:5 68637182929877298132856907949882531:49:5 44946427190418177085731455505290896:49:5 67410202030057364556137041664927516:50:4 32267188694542467756451740777911419:50:4 19587449305793506879178079833313282:50:4 21955926863034439908858635787236190:50:4 47887347690356342420313683548460333:50:4 88889086960155632738455302746126749:51:4 49117333488536143576983983414116707:51:4 76870883118965740058678009998871729:51:4 38628987502016716962411744300843096:51:4 10006988451949517867090101764268981:51:4 56553808103090429070124041235582505:52:4 51400447124933157397200275367680582:52:4 58859612567578806048102330648943196:52:4 52389343657935059849163672268658389:52:4 89500765399599991745820004291886478:52:4 48689385986460704566476635589820687:53:4 75975592500061007983001138797502432:53:4 86174875836401957726787102205448626:53:4 53673674414018449521135914688637340:53:4 75151611455903563238582570893833675:53:4 94483842634541302379211148837049849:54:4 91959730232192268470365785968089932:54:4 28860875832567682826670970750880529:54:4 66145069487916289255755863344301980:54:4 35114262860508235904781484270852751:54:4 44554311878104777377080362203432954:55:4 11134002882740882482810708308191636:55:4 36316366800879431971051765045047232:55:4 47932234381308270266436140167799390:55:4 35978339074393565363845371804857146:55:4 52897476408849333368522965494547950:56:4 98359007677472663240442624609347021:56:4 34991888463400877952501086357596081:56:4 56573039322295737597252263776069381:56:4 75758821463104909814643869836815770:56:4 73884722520195159519656191870426438:57:4 34230518795991667559825148317374646:57:4 49064477337411782853783606490697834:57:4 89014222156861514093839921329752310:57:4 68448925104419958707116073725788932:57:4 96527950670193683471036205976669681:58:4 24128339058296549823573229806842048:58:3 12546911019694719574268592842734997:58:3 57131654998597761329675787063217978:58:3 23608145257027927046425076971198122:58:3 39823653995336744215030317503282447:59:3 40531940843880285048869147136422553:59:3 94925747912078447009394235656283643:59:3 74931763893195120019461644022739565:59:3 70555568870170876121119854945483812:59:3 25291286299681964748568322068851762:60:3 85610912626192106573442999387468818:60:3 65335293237480765212112027340655162:60:3 44649020174818942970540202139327984:60:3 98319868788503646575704669598393818:60:3 85622156464183372970040549429249918:61:3 44909874527828848974771993860313158:61:3 27999190967728108720897228043265492:61:3 44668254485018519560773734534035935:61:3 99957867248020949726701242345534149:61:3 28234688036059294400232481967700357:62:3 50176277667814142517218806484608068:62:3 52005728328094859129785347552591630:62:3 33180254358300974899235956424294239:62:3 42032686389052047849559854314110928:62:3 26818207837549804365717929611951042:63:3 31012477253842121549801574569810594:63:3 15346983664839894494345069927636328:63:3 72872524610634765978449993657066094:63:3 52970582185605661777749521051878674:63:3 11495386863303257869761017444110993:64:3 92900336040823256478060261791222721:64:3 37696867938249320451443266188418241:64:3 27988625830890753608018825618540842:64:3 41306448729576758690938337794987286:64:3 23508858433609079075810584416587270:65:3 77808528723597125106977491674325820:65:3 17959724846214918835561027858321424:65:3 26102008781050275198411350469394591:65:3 23037633513081327240747779027706306:65:3 35294854401776050821707440526471689:66:3 81185915110920028779443000112560925:66:3 48044019529681109951651603496650082:66:3 15097763564969964309711609531432481:66:3 95044279228701846684942168757475781:66:3 33706399983438943354325788645633031:67:3 80322360524355565888695098968146103:67:3 70650311102462374391411271277056648:67:3 99970335838791914323968871666166870:67:3 27876586264938986103431287191522617:67:3 54607344718193659671303548666270079:68:3 34190047959213790997138692496710276:68:3 23438422107273705201923708928404394:68:3 94614517407263764841890751932030762:68:3 18147418322488319401648082939799342:68:3 59330895035760949047017510920864725:69:3 97907160559480969265618678731974281:69:3 75422987062861387195663917437963678:69:3 61909652798489975687143607242850481:69:3 47344384786294953148799498328742529:69:3 19447620819579434319927605143573173:70:3 54307667800453563188625823254590227:70:3 47787053066789468050290250004583429:70:3 66683551976379001459292099186451473:70:3 50285724653416013209159839723070091:70:3 76241298972088265281606791470690208:71:3 72669875066023426232841564466634145:71:3 45756654206761316019197050368584730:71:3 30938733598384285916476040634332003:71:3 11965393834839761733553640859072109:71:3 83639751157185722008649550297081654:72:3 53166881859306984428337817894252508:72:3 76924279337456105558755541431190660:72:3 40092834573749503516299628709613605:72:3 16190601939301808851584727178623325:72:2 52227048222172872932048521995814248:73:2 68231090063942034877999925112158799:73:3 50975106010855716373124966527920664:73:2 35455332353384033005867867862838096:73:2 75294708469575175966191406427850505:73:3 23558708435735536680167336171963382:74:2 71354904430070452538035194696868751:74:2 30485529853026021846498027731023397:74:2 14033526017752707617655679440168714:74:2 48620183114535204611090232611839226:74:2 35977653993736660521900320756954550:75:2 93738710933694174718510627118230683:75:2 68301809447155630665148369682355023:75:2 94845020919009725251484887802974009:75:2 41552902970705368965713746640082194:75:2 20096821104346528453173585117221986:76:2 50703580270693599246963225272704137:76:2 61339879920461373397532341861473191:76:2 69983629874617275641857117924688132:76:2 16773729797838482442347243257776156:76:2 21273455568163991382681226722169831:77:2 37402356119343265994506363953395643:77:2 60298745122457962757466098875495299:77:2 61316206868957829537329499060700378:77:2 30667470141988074313350365911580945:77:2 82559044192442758102971517463894449:78:2 82355191261169209689847990634526201:78:2 74384431214904391843631189467378396:78:2 70164212009681894193703385872750188:78:2 15647895454546780456792119279546207:78:2 74506033794546789644119962615727824:79:2 95434509975362238396209804807274809:79:2 88024536612565298340031206150248081:79:2 86023557043043895904786947843096521:79:2 71012002556267554285105011706805389:79:2 29078518566318012107450763468836555:80:2 37980390361535645106992222760447007:80:2 23369165075436014642559888903326980:80:2 34087290834523641494189348682234929:80:2 80731816124012982555700506541569185:80:2 77266234867555411502021863731757565:81:2 49765703663056215061432931178692665:81:2 51205759753760696127646873985777415:81:2 15578133112202546480348589174857640:81:2 92893596023658452488011414607697550:81:2 74915904164084849523238992179503144:82:2 54222293859280683196074135527201421:82:2 71283719388059735133533552218842800:82:2 49792572256957985544279409469981564:82:2 15861874381316547241169848188136413:82:2 10087253028135047209467793965596237:83:2 34401703167454138432162794358626840:83:2 18408404245266712513486547188083743:83:2 51632584146052521558493047828434810:83:2 66180563285348270730297140251107963:83:2 62860181980952141213769894386518535:84:2 20276756720325747292598117885473494:84:2 39230564777748633201653533308129929:84:2 18388912840794228885726354760722878:84:2 39674374260927714525001624307411484:84:2 21803815274461980087782183458428107:85:2 16078327127879004495955550309155847:85:2 55990827881634927589442573175845013:85:2 69654814729515106462811079831133951:85:2 48657421561720627019155578454020071:85:2 48126325534483533718139531026684930:86:2 28518149766516481968824421283772924:86:2 86777938965074766223972354376955087:86:2 64311762779839838822554444194853101:86:2 68322110736479049524898863242572835:86:2 46341357497127563303532569268233957:87:2 43891054453198781049698672672825746:87:2 15303919991735275799321403375362880:87:2 31377991084124529393280312461553985:87:2 24696292924962478623775861022167031:87:2 17331365821117649855432926249478735:88:2 82752366909740148624381042211223274:88:2 78963070755983005675628998289100899:88:2 22349931931647132732575418891653860:88:2 65795320912088554663050959028586250:88:2 90681304704734732095232132094758818:89:2 15366783834752619063880816207424618:89:2 15516546041532127046386869096406041:89:2 29647678788424862285248890277567582:89:2 20737997079040818724752994832315334:89:2 26583146077287448414503998826193891:90:2 77521680827750760024102520475890554:90:2 14181202052271886314264512674207971:90:2 54401857066656161976856460595489074:90:2 36993147012704529211161078380565833:90:2 31114804520845265119826918953646983:91:2 77694577549772956421186179573610300:91:2 49067233620832840220325497959506380:91:2 65220253705774820251727946114492774:91:2 96859344019304347332308437094439532:91:2 62499598727748408186501610375863902:92:2 27918870206644612302228143842101381:92:2 92556799466242655756353735664220865:92:2 25387496833340396170172635307388757:92:2 70306628517016013193266248476741008:92:2 50218944059689247360642610303690312:93:2 60656676598843682201007508366546354:93:2 82408519145415048193913577644242069:93:2 46807732305838287680646579026489031:93:2 41747313161560945006392079631277642:93:2 17770411466426049222945747656377351:94:2 62410094632189791294179923457781172:94:2 67760819513063326419532999678300227:94:2 94740732049879934802142483369804846:94:2 70282002963759261463849226055569381:94:2 54234532695839460508430597407197009:95:2 82516619884914091953537680836996045:95:2 22426164084167561685850492085535582:95:2 55982176544136042040917951465429164:95:2 47094088399432063808746612397515102:95:2 37916346765954621647699374805556089:96:2 90628999815054221370274595182509374:96:2 90105391334156226060537769403032425:96:2 10948345207946488267746554076634071:96:2 30307406604221068379937910236115341:96:2 53737201634817238857981320611076275:97:2 11795788293013581337121917303562216:97:2 14094462664988168623242926182675058:97:2 92949446060789322952532522076780357:97:2 97502014684973242640494319899517316:97:2 73252216304536692040204298384083789:98:2 15998882107337267599845997994191255:98:2 59813567581924075240850505547792472:98:2 97220079080109416186838535397761329:98:2 97182713970303835523686185964776961:98:2 30176819068409360150939070033142834:99:2 79190547434815866501930237093499941:99:2 30314697299816285448157848634934109:99:2 37526406666138450808783263861444304:99:2 42220124870157673674472585275037717:99:2 74972089573308093581422982625112625:100:2 92716128363408248414574816768296995:100:2 13865445195396100730159468719386990:100:2 31532043600920277429047821452569429:100:2 57950663826747456438767870167546662:100:2 972247896155038702693027661576915220:1:972247896155038702693027661576915220 425408125705564539216265439447836807:1:425408125705564539216265439447836807 986792812375007942711054719691060477:1:986792812375007942711054719691060477 945098314892195555891023304504084378:1:945098314892195555891023304504084378 867576271959802678925522983486459801:1:867576271959802678925522983486459801 587240005911777719646402825207292203:2:766315865627077904 342949059954215780203632621803960228:2:585618527673276215 450452145623785379471470771533849942:2:671157318088527869 241888311121980697623499285853771166:2:491821421983610528 663321080182623937616676883488208490:2:814445259168855336 359460455575287744336409533842106498:3:711023093955 977949983851904399542513507525859304:3:992595300372 344525799279941927463322530079905204:3:701036423402 179534373338443691161581616835759719:3:564134339738 270379593744842750258221934672545372:3:646633157741 488358521957254441367763045096354421:4:835958451 660714066318493801101093498022545290:4:901578171 194214222234988727271145144210248874:4:663850455 179058981444474221775720915373186202:4:650502586 138611296763329628674527990359386755:4:610168321 242265862378926622020337207708232914:5:11935989 786806058261198793446930239707050983:5:15106836 438102946823421917539534543124498457:5:13437399 717518052373342488734907744910488848:5:14830867 408980754878286733873062261888910678:5:13253804 752109299191960108417342189391564111:6:953630 945854132422997230383699047622587104:6:990765 341222334642603419936362524574089777:6:835935 820581287948592339278532083566095143:6:967580 274532363015933426920475966279707715:6:806180 272672976324363041562535871675410010:7:115407 776457353691628652863533942904757251:7:134016 413492055289032626195718117938470095:7:122480 195476215008330545409186415062969808:7:110048 536251032106419349622461280202410689:7:127114 820722420792928391554320542281592342:8:30851 146841982102900717789085194553012435:8:24880 645420289627991222689215854157338776:8:29938 895712791498617973610007267426559553:8:31190 970065898077461721544835645071781011:8:31502 251906163839823152222485701030888497:9:8579 214682948944140911086991058951894945:9:8428 764978897536218036153097277995882650:9:9706 477899973624569570793972718005412442:9:9212 190524973479522412750394908821811487:9:8317 845997742676527472840662310648162403:10:3915 163256717968317797544964714038772255:10:3321 525990312288814473478346493528279728:10:3733 181912468041433000058860430516430059:10:3357 178034826586350776334966352655292319:10:3350 507726108200926100938971145014966963:11:1761 482609277611806751411514044293518156:11:1753 747140538389585776985572598315658926:11:1824 684536990790395797644777022459632335:11:1810 859903779022556910931457720545670819:11:1848 721903275414225009713478386230691986:12:973 755462245233347823148047357625386383:12:976 485722281440079516480491740110407926:12:941 912154657464650738340468878385828394:12:992 702725109914261506295223977167025057:12:971 885785525603827583095657153072303845:13:582 247203082239320728486213316651351191:13:527 690841191192377680464324701805909005:13:571 842826063995800652941006371903590578:13:580 818558299462068738619331166913787209:13:578 570935674442305805232581952002154178:14:358 258160403734230085352338216464832100:14:338 915919969822480075985771610288309390:14:370 625416041264300150703445899467359868:14:360 895580005679925660701543645328850441:14:369 142278267925841380107631845117506013:15:220 417892180342592724301707052951740471:15:236 289824374475765850423922277408115110:15:231 289419472939725265517909330453694591:15:231 955212289635065913095405030552039658:15:250 361677968025386433265989635981134681:16:166 760265492530465870161264775094972303:16:174 169471107435109013529299073131754463:16:159 650938306325079250137448395509377107:16:173 659744754769174722860933675399291883:16:173 327548672830634354095737152793290499:17:122 948050672258700963601532023516598685:17:130 503393253417060071720269264742105736:17:125 134485845883032925091855403985757473:17:116 203926410994456759097118996089470565:17:119 592668260762070993043378643723644301:18:97 970743137721060846027278848730312394:18:99 702498342601508975588023306352130147:18:98 807061805297737152161086276954110782:18:98 755024885336976316745487841246258546:18:98 436133722883893983254481332691769984:19:75 700509136675408970703827541924539919:19:77 605611408185900246830549664279759145:19:76 589544464696633094127495307890645494:19:76 822023903930536816993265655376223705:19:77 597442321140915021857831725756812927:20:61 863200183050289617348750893410415460:20:62 776894165235571153877174797291489817:20:62 976077808817697949793300718080265885:20:63 279346910006634226274150811218922695:20:59 959955062675408400146614792596695405:21:51 651965991588227901040474514561232444:21:50 774520073956857515259291172133324735:21:51 404423509641069244516864952055150534:21:49 355337141174774286517089642743220027:21:49 276593648276096844210814907026494433:22:40 567226259246475171767511544177898970:22:42 877324784933753692431376209129638525:22:43 138247175066755628113801022464520897:22:39 869310250188297897691597389991785787:22:43 877474147672466749624164189598666865:23:36 401965548443038435840985428984440518:23:35 292760068555355536527519922451204126:23:34 536459696347457274040405020810482334:23:35 521350613663263359825008513357764779:23:35 288806096344542624140717645975282930:24:30 400420943134102967388982484400077368:24:30 627655027052526887322873458229016900:24:31 106661530066038409826139517383183500:24:28 600449197975485778568534912341979417:24:30 992254683170558010914328118513479063:25:27 993159710481327875650448099417119047:25:27 689611731221039282495330438915948241:25:27 930541276616387237936319640197992992:25:27 733263031830427765332642939354056005:25:27 906164274761348147168389251066999201:26:24 557969893280159014047214718493548198:26:23 952635456415474616721114395744839419:26:24 779948290704248500256513916757383286:26:24 855740181744393605995934871787236946:26:24 835878740919238686036659885756442906:27:21 319401925867274377535159133319568297:27:20 424347301421750144349978307444450285:27:20 704257417937715778598818144067623087:27:21 705247277561494861914958586264711324:27:21 751389654480520180034507219522656124:28:19 898891038440819668837798866487350797:28:19 106385886355933919765162028359035831:28:17 290511488128758883116646733966078669:28:18 655700879665287754480408763949021807:28:19 339034560503131139518590619728454177:29:16 538784803030894758824674223302825560:29:17 425379835644704242525523379815546278:29:16 957548747948042857132032352703834108:29:17 563264293082259144558117593273086070:29:17 736543616289217374823796630322342086:30:15 926787775525680665205938517295779913:30:15 852559697197085751368354954604372392:30:15 278398610144527079364616380428587045:30:15 762093465586455604545776967491415646:30:15 179237675236448926119321462782824187:31:13 230885590225207485826342886685145906:31:13 547586118690364892335594420797290867:31:14 264253174284820002509792203449400151:31:13 282554536624925258978865804183870733:31:13 706240943699457119706082834923297812:32:13 382775474226531423611240496386731272:32:12 595298652272925502082998827387995191:32:13 659362504053096555813441678566578316:32:13 833329897046078301549799878692771999:32:13 527921128973418770600423772791740502:33:12 558930128779048394686048469617298688:33:12 813538958882535145098179780586145586:33:12 213230159772521879791391053631735986:33:11 260509091374968551339313060994370776:33:11 412183333539937183832791671501630151:34:11 196739245416300290557534929613902183:34:10 140391846835272577213299085333194380:34:10 449626212753934989827300422702240448:34:11 285112320233367439305314816533150386:34:11 909166334845341042148839211552559846:35:10 771997159526193825377974571652671496:35:10 980471627868527183630627032597183469:35:10 808426206441628319190576020379538515:35:10 853741933220372823552215662751854196:35:10 696721041294699574007501327629749149:36:9 513781920942178939399920484703029890:36:9 616315280507223351363826175528337611:36:9 866384647988947669473492309152244344:36:9 405844623961039243634400264244396440:36:9 968707102872387436837375477746036933:37:9 863780843286512065264672842055967344:37:9 224019576215378794415269404176061519:37:9 525761947868983889683691309992325302:37:9 972880837590356401313050288746325715:37:9 693292624845655960497291399043217239:38:8 325570597181797020223132199561490408:38:8 446998146972391104861519846466462727:38:8 498590313465848083143433641135032569:38:8 860390112615122304093899271585158206:38:8 790780594621390764137647345487431267:39:8 335116826801385103120113609571794905:39:8 456128919775737598563646368195754300:39:8 390800972354224355472874078854846714:39:8 218270661652901752416404162071487803:39:8 758819295152852436604994249261803215:40:7 886963280855907217208366743544848275:40:7 516724813955913015073314701337476933:40:7 419032170717222061596336774374886992:40:7 553854598703207225048995591636780648:40:7 198506248636270144622884854977498487:41:7 828210430284350304786107674585078488:41:7 153186974011049932630191220810745764:41:7 733938082040659114729360328884913415:41:7 949080582620674702992549672161167550:41:7 576104789781704653583127484101310356:42:7 208623928880554775021753715325083465:42:6 791955257772162193268382491199890426:42:7 489327810795165683845419186890496247:42:7 639181794663292217910673771394697580:42:7 418207541562147198976816953946931715:43:6 519603557560168197559453854440467387:43:6 564979119396106381196854162166170598:43:6 307358223007571150080668929074085619:43:6 492438082099615674717927361277225397:43:6 755143952887937686089995846615870659:44:6 392818715009167104467618382403296275:44:6 171754470842342215049063543698149829:44:6 707030869302082285387084282464141352:44:6 424634093667752595906615971054800844:44:6 776448929519821363322341383853634887:45:6 324997105687098878304519083090906717:45:6 525048554139264263954227757767854569:45:6 975821116030186669574760291300999435:45:6 767801633820242014253589636930938920:45:6 301368696532289863987061035601142633:46:5 483925117002769769265897154270513370:46:5 680795995423278675740310965759345150:46:6 121028317217305412746258548758347596:46:5 564108746061510134740654000194255588:46:5 592310126454203836300361722784594514:47:5 379153546885282529079794576515887129:47:5 535869046437994583605898726708770569:47:5 154634241064225838907290273351982514:47:5 323791915530292695104098164513710787:47:5 771716251934146083700278698654796396:48:5 995215753041719308125087766854202279:48:5 705359908330908597111455743359433120:48:5 989224700736967700614799003748342379:48:5 637245356239171810935347554553316471:48:5 324436594191080476167926542213582806:49:5 437980035878188504166900900636730779:49:5 922832580861264291246914690687850790:49:5 322510337766589102160434569120752325:49:5 966782965626472359187424141749109990:49:5 503322693989142009635173413386464682:50:5 961621450283927627130347866058433165:50:5 857745411139566421572411488978583977:50:5 545043469753512838409199528316324293:50:5 550598864268551805513857333317808922:50:5 295691487133113699378316857096740974:51:4 554925351489121826232779396923673828:51:5 252262774595712707380754500155415060:51:4 298988511055586342831996741476324484:51:4 658613994758314497831485432849520622:51:5 326107521471113726197421022795262685:52:4 335374924765204975157102078619660648:52:4 977899278995711055129807098847689177:52:4 402923261008764246306384491878342671:52:4 830836589876036522971765385219001991:52:4 837450517350160419172927383190978255:53:4 954379905589763345841035319871783203:53:4 402708522033682914874006635361027324:53:4 585516585491540330047484376298591942:53:4 404529390980636302525718001672311885:53:4 130950640852344717295914884529585818:54:4 120764624142327674294847252385475759:54:4 652100561415485613988219516646652864:54:4 714815966149345158288350115581304941:54:4 612810019874090154006582177142994112:54:4 692358872917552366231193673581007813:55:4 180739294378124763335590512368458722:55:4 869471464527263532746854017061832426:55:4 544225479667356937174612371692082935:55:4 123334077041653832056688321482977195:55:4 465734866176615329401116949443065263:56:4 767572776013346319657346457089674413:56:4 401412785138544748041206080741290830:56:4 407050505760930917407714751419303215:56:4 119083071430023992245074770741980319:56:4 730404700348049095234659704183175429:57:4 648515524516369903742641018134255598:57:4 219202744759354073782592459363386009:57:4 968610655964474053883270650025170541:57:4 739830738475710239639756919438146928:57:4 639225699795033772144342274493304300:58:4 730001159730601622127607968523826033:58:4 801831858410039171839198555116103348:58:4 307263812613162168078777531549163412:58:4 794743523500433600054546945300067758:58:4 167125435355004926877929881121996671:59:3 146038338083856658092473069144976343:59:3 268403281200322102206810442840657593:59:3 320957644509454165306252340852798464:59:3 468219247936336814490731062569177627:59:4 956875475799104465380774093370207969:60:3 872001601892851320926497872824426987:60:3 112891283406254785102256445064216222:60:3 590501774841465413053572010241068587:60:3 708154097726460660331332021684136965:60:3 841875765286726207992490814772509900:61:3 595328868075871075181290527977362513:61:3 823215307338908072810047306864331317:61:3 514981397744472091066199799474823735:61:3 650788654653079354092133309999030541:61:3 796948748215608188876775011869260003:62:3 879729637897089789895206617695308445:62:3 444616255749622413179109638343888077:62:3 624513253449041123404101088792965291:62:3 617908727972183734979996586328493841:62:3 229313294908108740635299968427042390:63:3 946392723067614844271328390706656968:63:3 239344952449353398812227072812055061:63:3 927798171594492997676231328655752391:63:3 538329287715743060900948017323015718:63:3 354676838593333965123185669658432116:64:3 847183172909288332355709774293242816:64:3 188801900590794860168356903621039695:64:3 273511857697709335809490148064838131:64:3 101269844736698214780520827176978679:64:3 881317851529874968515386216752488054:65:3 354756376231831807574968530817509812:65:3 641321444087092992269153751650096390:65:3 921390637243891777685534952658115131:65:3 480106550396949425390457104637781496:65:3 473800944953941587834615089882982652:66:3 521442677802714046537466439424221382:66:3 280452976631174608201625504881716426:66:3 455920965108405682885892287168841608:66:3 885141118051534484281013613102591824:66:3 106086258867773536171352670768165298:67:3 164133819442253361197407001973602228:67:3 937263606961772765041128411749867433:67:3 109091073516273267983921323980811201:67:3 342531611688538805692620944790530337:67:3 916475378306774933563141963506093130:68:3 102924993855780868419366131815621273:68:3 405181908192012738275672790737419484:68:3 330552058250861086836358605279475301:68:3 907770661334475019536840200215970234:68:3 813334822473252576200704026321286525:69:3 671801657772258013089131036801010324:69:3 663345065946780626232641983419400188:69:3 554568171422905630460770716228704777:69:3 885034496401534722442680975180268232:69:3 267624578956982718778658380821233488:70:3 474611601279774078694520245841476414:70:3 134820651207704275290847231337472451:70:3 114283213102087580985043307374664782:70:3 452706637845927586726547125354649296:70:3 574280656618376304328879063694858233:71:3 731803357953613967466119440670189416:71:3 575776853394827249464942292065326251:71:3 136981203929522927480213717795695150:71:3 637371823773021405331681081587930927:71:3 294354043233575562297517134946681062:72:3 193630351486729432051745712708342762:72:3 300070128219858018332491099453355528:72:3 927393318678320851111698899934620460:72:3 743777789144457410373607000290863205:72:3 870753372974295899811292592520959520:73:3 641584907406955146047902177071530366:73:3 840975192566816220737948470120780867:73:3 349417099654237048766635050067200557:73:3 280076020025214602043485161547952768:73:3 387323006610666204033780605471870175:74:3 901987345595523342576415561433058608:74:3 269975154769519762307855320406460154:74:3 972724507054864501480341770524123082:74:3 413555243781132842365354944839031253:74:3 536566187677320409931843925977176527:75:2 431367115939995638580372796290872543:75:2 894816280117555637632146788277289486:75:3 785090613252747970744110140700081275:75:3 898227190997881057515599580130360102:75:3 471989638393836699438232421018350881:76:2 858676959786205737821477400573702458:76:2 491392425972136842596605540765992262:76:2 221824162840007297144424463168720265:76:2 589541914248436036385232659487485457:76:2 393890397888229375873133894308180254:77:2 751058549946269155579427524925129463:77:2 274661684678650542623978110151871703:77:2 122762425033875453547369424286941936:77:2 136846881743395926380879776657197470:77:2 831428450709601435315112716809275199:78:2 690794853926385401099790507163994401:78:2 553170451443663574318612981885532355:78:2 524479037921046582209448973119753041:78:2 730819201970690089469756325767471033:78:2 414002781804658209193967150815873596:79:2 661518177684215808145835686721062730:79:2 443694887642373469510187479143433420:79:2 327246667223205536045305796618487691:79:2 752933022415575191322933771129841962:79:2 282153259690080924469383427768760131:80:2 213432379710134595222528085066415614:80:2 653644935399743327021139320935581085:80:2 462974546598062049520269149787508397:80:2 172005153246111353862661008921565581:80:2 102209286965122603117614826692957213:81:2 220818141755829115184823112835758017:81:2 440539813548691213999142631569318741:81:2 756280574645138243424638413501338320:81:2 334075600638294211621780280021709496:81:2 581144462320466482181776397750339800:82:2 385266216192671181642258576796939455:82:2 845763681210984187770754314592999354:82:2 449023079942472887884811241828437551:82:2 826012263147098072744507390300993717:82:2 248327437421676703974565544695105493:83:2 230866041599473088369409394497013648:83:2 421967914034811723289335558425787820:83:2 207405241643412603849713246495207958:83:2 302515999454491799853045558379072847:83:2 892664471678994187812487953276692063:84:2 530074035080597102569147480547817011:84:2 530193511660398368602853580314020309:84:2 527382476411049877300926917337430604:84:2 123833152907319575582521909061504843:84:2 513060819235663302974499224925589777:85:2 879907381770219988231218999762617255:85:2 935639036945048324754469354274916365:85:2 146981077978436047024721976355210976:85:2 577612172956784733499461183692526880:85:2 707811671436506504464721648701511650:86:2 510546241507359291858173547583778705:86:2 495991302357261178924185583733212705:86:2 194428273407493028538349090559650426:86:2 591200133402341895585650693691827988:86:2 966787968205502412424923574139821618:87:2 643978727854037173226228189863498914:87:2 946290974474868996777511138117981826:87:2 280191855887985079737786736394243754:87:2 261476857121973156761229741147516981:87:2 979826594859295551662551911207436270:88:2 592688370312604002248100006831329989:88:2 695093928181387733899338678885242284:88:2 686637498945615676775978262180582090:88:2 397648653794346077477857887669675758:88:2 565419213337001716980200251143250557:89:2 540152296928012432961437871260872362:89:2 235259353722495776018687902823870992:89:2 763526230925346744877356513038344009:89:2 170157224862333476759309214563905404:89:2 394804494636950850097491044512596941:90:2 840627519015326934429927132222049075:90:2 697003863313563078897704802545929286:90:2 801801831064748372299240550034582417:90:2 522380071048504454201981450364439512:90:2 490467456972385076151365043898388935:91:2 528019588657228202303743788046164820:91:2 234208346848755813072069225780760296:91:2 244610814748788627734542632550070678:91:2 379899872843435729748378798985255531:91:2 720945961668009310561478180574831316:92:2 864554461713949512497419614772647864:92:2 569477252676503135211110297820298052:92:2 159410126826101688223047974177655588:92:2 428905420859650072362896975214540662:92:2 933979322164746254362140673943106936:93:2 184795876638446456083057844616242679:93:2 362879795044868899584170052220362172:93:2 125290173923752621394472567452025254:93:2 751588241683039565712695603526030432:93:2 813523875807247424696257359543351247:94:2 130365877905691005979005073450038150:94:2 338599211949889374147084028380318681:94:2 562868097665317806461614605678647471:94:2 367738058207515111099845634875134486:94:2 157723347689516438742479244077492159:95:2 113389001920150712326175987555894047:95:2 950150012634041518162403793686199953:95:2 333709591530859796848765384605897078:95:2 900571765855845930129611905449579105:95:2 895951341215252798916277280506856209:96:2 444754271461464144483451013511322124:96:2 728840681398691958642127553925197454:96:2 362595054717705835903637899117214862:96:2 602171875069144047429539253244629786:96:2 885944256918208071901426957099946950:97:2 821359205441967728534773778548078808:97:2 391251761589095641314257913107924011:97:2 273666118855960665612116577679549963:97:2 114784321034337028742972758668453651:97:2 581594090225938555472168350329386950:98:2 992896772802219671217347638414620583:98:2 958763938020098877491809095233403129:98:2 330752824110929902239713723360358094:98:2 643460121369334963866822729367815959:98:2 635697881952277390691252389414811095:99:2 590101466801447691956875348240622566:99:2 691632220851039857465204248933438467:99:2 492598173141579306762560579962993012:99:2 717113772509189046717387606851678859:99:2 263495728141305509763244508213675205:100:2 343162232065382028379482069367137479:100:2 897443025837474598560818195024532116:100:2 101254947854774419450660398221423339:100:2 837738692663118336705692050338334232:100:2 3184623848170109393826214111303377432:1:3184623848170109393826214111303377432 2234004236464245439592514548743023320:1:2234004236464245439592514548743023320 9942797056905654854713188621021247980:1:9942797056905654854713188621021247980 5384105155386712831413410203412500936:1:5384105155386712831413410203412500936 6367835021108718553998617608724244568:1:6367835021108718553998617608724244568 8393540280543722915070916279478595124:2:2897160727426720264 8504023929054943970391706180931337947:2:2916165963907908992 9334586148330213315914934326525997752:2:3055255496407823061 8253856809028904705394185359341520372:2:2872952629095875765 3282484850231322115375585280254496012:2:1811762912257374285 7646014408276136921351077520637380970:3:1970055089484 8531108956064768516556197782103486241:3:2043314245819 8396148424023657939708222537402655090:3:2032481973449 3147648398768074891782563960015344005:3:1465532334395 7153432935095382911382011477686846784:3:1926806798366 5896406814187783497374702632352634328:4:1558284891 4489116458193344216262334271212437643:4:1455593870 5933421056139759166303482269839276256:4:1560724658 7395961758567600479337632858540781187:4:1649106351 7528524854826533750904744609039953682:4:1656446723 6283136322397602024653992788219313552:5:22889446 9279917446942987642035236314576300602:5:24746217 2112930420602007073168466162263632542:5:18406746 8323687900956394306535214981496208214:5:24213811 8754549650351728199613938068696573338:5:24459454 1734743141997537667621349993464995915:6:1096156 6547850176239441776488130394226156728:6:1367780 4123832522818417130244265682518175218:6:1266339 5991680506719154431248743946025673785:6:1347694 2781084191985150315449928294077124528:6:1185866 1460313454267451722770486431673799837:7:146672 4255355638191950590949553406897082558:7:170885 6802069470094643623530424865346617579:7:182728 2130862543108396492193336670216565342:7:154808 8582979284771468942279185465019103773:7:188900 6360949801203717394892436676014411856:8:39851 8588548535633367078770728686332997641:8:41375 6707344595567779678062269255813027383:8:40116 7339104143160355166576362009846577632:8:40570 7054227614571243184949738029029793381:8:40369 7920332168117955909472498587841216777:9:12585 1259367066696259984009553372573126996:9:10259 8161619338593316820262292571294465430:9:12627 2025696680965693550792055232835382113:9:10815 3268466577056021543525521034139331150:9:11406 3933651447276044168546793832875271997:10:4565 7010424663953167040767981273273538820:10:4836 7871638012211292849974823845626119388:10:4893 4147996266064377607267451250658449563:10:4589 7197740038780099851357694810047155994:10:4849 5569492994465114312426795295145133775:11:2190 4768617518469093316437068251296741568:11:2159 3176858982981950701352102466410607568:11:2081 2771871641247595928602441774056604814:11:2055 2017796887057876591850337604739258330:11:1997 7094485283083980396689061627345833945:12:1177 3186602996773737615866836819556780007:12:1101 5108955560578344553560128156718262406:12:1145 8037236621047461095306956817922939688:12:1189 2226185483661936080756789734063937600:12:1068 5187237311058444118664870322855413847:13:667 1246618584110149326652878764471721954:13:597 7294551372582272209775282302723217873:13:684 7041817800552059745434402894135660929:13:683 7873774361818558409773866163864739167:13:688 8616932481170406107399333475978594811:14:434 2498208397781661701334738760047553428:14:397 7308039970422884621953976587170399647:14:429 2812013311635221428674090339670285306:14:401 7637143136004476966847115597881145336:14:431 5526927777268561636823843222929218091:15:281 2028305483886682136214029954552356682:15:263 2762789274320804539046123113632582202:15:268 9458254048797243245161569289849381905:15:291 5114978326627172184045331093671079275:15:280 3489328139496188531189170945459191103:16:192 1219986723765320695807922282634596027:16:180 4287368620719476411771339809044707785:16:194 2913217636756022968064405809815296016:16:190 2457345393599419740411223250701219584:16:188 2896185855548638251106668740334932334:17:139 6205850893005454506030149788314116750:17:145 8031264994305000994088655665460214576:17:148 2215197298866180678041750944452682168:17:137 4913353536333794390272095976037082299:17:143 1674623681432142562026819906662510467:18:102 3418521246078150198433112568372074199:18:107 7780749597193330114222238105919441134:18:112 2711282669459955214486620905183058941:18:105 9413860263046988623674246539522478672:18:113 9757453836379975108873416430700376440:19:88 7761263835272198054751688056139365562:19:87 7745436326508663993646063591734407916:19:87 7106879747613116635957078453449859612:19:87 7654442630690961223052125369302440374:19:87 4141650868409823109019807118805493669:20:67 2259631809461481754750025263592833399:20:65 1305977940434296728915463216770595947:20:63 8956923170025411150459872188859866659:20:70 7064130486474919461100714988035671757:20:69 1196530598880462821442934661792497188:21:52 6432277536920683164390006170285296225:21:56 3238705001038456733467442569871979437:21:54 1750659043131996089661726552635267455:21:53 6987013928257179811913560653947331599:21:56 3893508508980546879655000599156813602:22:46 6750533698284260500622479989805847397:22:47 5556675168111460322139177260922292971:22:46 6296815512213354405920235367665372581:22:47 6456537648673272951458920733314145225:22:47 7764172565074046290015771806219791513:23:40 8198576732355781300616280900573106604:23:40 1482605223402256770129204854094509775:23:37 8493594915534206617668549348770085140:23:40 9866898840011379099373943736176150860:23:40 3774961099050742685629680124123254181:24:33 3169871147038646839230141933278724941:24:33 2407541714093884412290552986624926665:24:32 9597543904104961682474209338556213272:24:34 1062597399788484312213547417252056399:24:31 1637418411001752064795887564714718439:25:28 5576153890286218143321546230791538503:25:29 3330100121153916905461815378446961603:25:28 3368384689523329315377199980651339560:25:28 3173916601973596679871148746069007033:25:28 6909204856073391227458102310055902870:26:26 7087000501076355833349119868388579291:26:26 1903224987010189300104233840415459797:26:24 6494145042088425341652693515962242261:26:26 5088145414025946889413304852325797526:26:25 5710326201061554823983397623160948644:27:22 3320397967626495216599899789064681439:27:22 9056198548199080815193912211520457397:27:23 5577832869980870219091142018761835101:27:22 2131689124405755004269389209143012769:27:22 3370079584706658363126249022081590876:28:20 7241732286285349303997566805445398991:28:20 2212681942448283125161196803474174267:28:19 1294424155845218883287813319570260242:28:19 2847609675496507568706686556262729869:28:20 1503238778011572898101140461141415758:29:17 7907940714167360722261797562350279721:29:18 4536569261238597497513914179713995828:29:18 6959447696419583494355702567459955463:29:18 5386565410662750956085509253026763157:29:18 5281127653391963675711677534028544835:30:16 4934046431305106688128651394163272067:30:16 9703924861779810501333661666196478033:30:17 7581649409916327285253774789594515115:30:16 5356921274384106222248879405224924466:30:16 9729694889661600792119643046137356424:31:15 8068208404518432262349150852395343853:31:15 4850513464627542304226783070625045334:31:15 3059568759537616381744860294794809162:31:15 5084406705291218916155112807321749867:31:15 4175999663699835262494520350023943418:32:13 1503617453303022771927335730834407882:32:13 1963315998159535410249940919474770049:32:13 6102056792654827265922429423470731618:32:14 4616594881267527394381708166250837865:32:13 8111020302499788026673867172332360732:33:13 7610424948899651558499133221870408289:33:13 7051346499404637637912720402455383554:33:13 4808644328838889062571019004096620712:33:12 1976392426420737591191179316901044791:33:12 4254296718150861049881904815915119198:34:11 3631594222704054522164505452559644828:34:11 2201884756509907171616864454308846116:34:11 8922782479911373186749528163883584959:34:12 9075686050151669732062785254190508501:34:12 6257941582780716268262833789530592160:35:11 5350162504003808366107546254313965727:35:11 7321888538809952215412986450239823192:35:11 7645888074150082999329260511664201106:35:11 7004979226085069490046203267974041292:35:11 4100265990523339569460732155809912771:36:10 4174768516339700972758053975501675779:36:10 2081096620205569383591181133070287603:36:10 4021693443231369325630225559027320283:36:10 3649657993974226986615622087293708721:36:10 5344256379295622964386577951425000290:37:9 7093693311591596308358789196962582635:37:9 2363366142280658792507615965311031219:37:9 7171151780666167164418103919445936694:37:9 9212375445013418035376147330082133864:37:9 4926812625662219933763630975094948141:38:9 3299499141582291758329309301638757604:38:9 3961230181689712948704220467831415738:38:9 2050684674844135839643234464053742898:38:9 9338843531963352997473665956793596583:38:9 7967505895973138906066386376696328315:39:8 9831211439568223997558806317256068157:39:8 9104807073106090779384709408996327332:39:8 9731301836580563959161450350445008522:39:8 5944624859916949953114546402127956070:39:8 9423273316637208591184202822613007989:40:8 4980780171310614896838691443077615324:40:8 3598427730110386085219446066278676664:40:8 5026459116516144730350057775066196213:40:8 5434937327444001994123097198184884588:40:8 6531680801370872180176940827252925293:41:7 5897154754100178815312772159149783528:41:7 7329993459486229996538101897871139878:41:7 6295247808469834584395102121417255420:41:7 8971443867179261194434406394696914925:41:7 8077286619018341117873764332618264898:42:7 1958185501353444612972965032221788024:42:7 5366308974107938393419005765136079809:42:7 7019384013387569245295519058259768489:42:7 2540913105709262667977747882994211592:42:7 8091606019730567141794608189319125405:43:7 2965156089180694035880807391564097741:43:7 2680600026229758677658559298943386727:43:7 6637802977051973219444405283161295312:43:7 6322132229019023778522042096857345782:43:7 4591839510244773784597518453773360172:44:6 2083981707820880189951965139400877107:44:6 9243359721005034503884690398756747951:44:6 1664562687327243147713982926204006157:44:6 7680076518007661325560855108338226601:44:6 1633466146697425172735026492899341330:45:6 1103929763512556819194605967991850162:45:6 1532640682726632277449777164266045261:45:6 1327101890958842923670389973116331080:45:6 2469808069104667663710550982318191159:45:6 8343188828187030138275504013010655456:46:6 5232801536764844865883005769315647749:46:6 5786061687397327674119951857110069507:46:6 3413363507509595714414774195480629285:46:6 3816267676515105845340870060607199112:46:6 9508517713867500627030776547160334101:47:6 6286684785599124655074088547202793191:47:6 2564640476147292472657668152333908163:47:5 9806757917935899248408253433597168001:47:6 3561509194612408468784167527190787520:47:5 4046796071615893583687454642933629695:48:5 9305238658722994750088562139702479358:48:5 5729385986254184048997376029733043310:48:5 3239257308109642476397445297881215927:48:5 6559333809188409266482509664375125048:48:5 9832578461340233450490659357966112203:49:5 5581075640711461930709871879291144277:49:5 3460234215415802422560357364289329118:49:5 7855587740850592264327560950850633426:49:5 7944870174848814712986207212150145096:49:5 4960131800467154162788718495239805127:50:5 2024572819390554859056629082887590538:50:5 4506694882501089368722614271980336328:50:5 4734937298056328753221788077119244897:50:5 2387635970959269557823670453153161408:50:5 7080965091629525345559065103855446516:51:5 8419981674125690638570901374844407426:51:5 1010782613320411816242970923438821828:51:5 7457712268360051330305862020500387228:51:5 8210683202425722591767038551439891910:51:5 3480394360659371269000221143681983213:52:5 1248544084185639029739826927934183951:52:4 5058717902992375224151276715790368420:52:5 4733057512261553851754519812401972835:52:5 1283625649570139684149443273044758248:52:4 7957049502348974186704843843181990311:53:4 6415809612493290784971194701734542585:53:4 1827058441794437327115015155102158788:53:4 9704007539383518008518602990864591817:53:4 2656459231926639864095352840419198428:53:4 2648765344057646032918966420913869788:54:4 3244541123233564510345263241308150164:54:4 6967864852432690182602138565708591065:54:4 5440165339080374735705131799817812024:54:4 4210987137878952991908221882107122791:54:4 7585979449326307652331974236529245928:55:4 8447201927261548185756924391699797382:55:4 7349920405070759591008911191708753449:55:4 1280102939352268687460494587236201295:55:4 7731771757723577187006741674232248533:55:4 4796537755998423313953162105736323131:56:4 2326919547576194185814135506542294299:56:4 6276799355693938795976929424603229023:56:4 9223890262973881121476127471368013596:56:4 5158881161206020533245407755804255543:56:4 4447377943675939090682334055841307365:57:4 4205941518003436934743571839346132802:57:4 4919151915206904688383519159757947975:57:4 3510749532201601767451200665055305928:57:4 6646788406010236301596780149255036979:57:4 6555433717716825265953082091975819827:58:4 2514705769635368542829463821270678156:58:4 3705937987242527693919869904733008140:58:4 9996261905926108133725764717475904666:58:4 6363108976379454860883096096582981742:58:4 1000631191123092518598349650044124939:59:4 7673544638530829762152801388338477760:59:4 4287090896253805759065581271378371091:59:4 5413659495285816141738685510321919440:59:4 2495708771565090502775214590504130212:59:4 1439689395754424192507740908335874373:60:4 7229172571026763867480202018022420892:60:4 8113507250601540798031294762955676734:60:4 2047716138574777520256532829451468690:60:4 2705030765017314724492429522836816642:60:4 2183949518195054145469129084660414758:61:3 3256480860376707410794392274002007404:61:3 1130603825668851362193755404433591463:61:3 1133462034009540749869463663548830392:61:3 2452443085288563009092443172650920641:61:3 3543725915123101477997983360127809409:62:3 5242914064353503745731637789832577284:62:3 2673354175087218927547517351185162110:62:3 9627458628956590884544628955698797361:62:3 8293201739649430692267679557263227626:62:3 8876267447455135150783514781941440581:63:3 3786412302673363577566362706583763298:63:3 5757625344982926182215405291002330433:63:3 3323458592522518773865344473242507125:63:3 6395737526342644396035807353192270625:63:3 1652114063389326132334277583554957889:64:3 5694357550088136318179159325809019244:64:3 4591526020298164288104110843152516640:64:3 2374306183832764169122242759582376120:64:3 8713609565334745067809048799390930196:64:3 6596999181940547284114171884439466183:65:3 5168603983677352130937453026071623189:65:3 2748944969524290976563160636876444572:65:3 1586543352764461061872376043874305079:65:3 6424342692668108423714673884133597631:65:3 5804929254815433264956430645821552265:66:3 3010391089992042318731155756605732582:66:3 7224202914679667640232949931889687114:66:3 1466948593681978264631513964341240301:66:3 9743992247127011915590518519136896663:66:3 5504330614473581227302573523621517129:67:3 9402195742635548673905704333218927514:67:3 5596851085562124007378951399771008914:67:3 2166927295227740398998079567953534017:67:3 4081472179646588585230658504401569182:67:3 3711341517587385063574029605647969759:68:3 9117405536011503934979235628349811741:68:3 8019453467595752282892817498583151054:68:3 4664998184544892114381143328060851502:68:3 5842334871460419479647288321503687982:68:3 6572397374214701322248585659145506941:69:3 4434643016414443046764369895110462601:69:3 1012632062592230374903351266190780966:69:3 3842247706125306166702610764971306033:69:3 3441303939287828662419154900913351410:69:3 8908040656878912023558456170110957238:70:3 8656385652494220359291133402105763288:70:3 8358258282697295268898349709253338966:70:3 7161929412738330930407247538013604282:70:3 8734374287962761001694534792205274431:70:3 6345616448821413416834135043525919857:71:3 6395397867257325129081330328021279437:71:3 8910628414833772313604548504943200233:71:3 2366206927043093608841883526641560364:71:3 6387658818029131844841753251468006702:71:3 7854202267045544808728054210026384075:72:3 4252311172545567390785086298997835726:72:3 8478655186106401340650122378310253507:72:3 5414139643394779015617891564993228314:72:3 4842441806949466158916718194653408076:72:3 2710264639084269175234392613202686976:73:3 4150722420574771574866440718823758974:73:3 6212559897661735567801169250041491431:73:3 7156024200113824867242621913770831487:73:3 1217151521231049508186956522544954098:73:3 4645560048220314506893835904105243211:74:3 9782593705684359070629204912650510744:74:3 4333837917318881508818688891509252234:74:3 7850029124265181551308536109692358327:74:3 8626380684119583702589322280471130136:74:3 7494361298342364320913628570660031499:75:3 4495596195079333658229593652552215764:75:3 1620958643832973114791954306441561805:75:3 5181963924070618709326603302534682263:75:3 4871965779709060485961357464779242834:75:3 8941330123710583617919603527512375538:76:3 1574602335834859466118572791468909577:76:2 1949138438562680350169111114567597164:76:3 1267112570791243469796912399132929386:76:2 7036959303315265933934493187031879629:76:3 9798075080047619489515618074525303600:77:3 6270933404219267219901611633761755747:77:3 5562043824472940892390708013093376250:77:3 7292245150536701137944146665557338249:77:3 4509529374544705991597504953240431159:77:2 6649049129242349789467136194935603078:78:2 9389668919586262118075452943635412330:78:2 4738440460695174529954832203790487073:78:2 6787907305623486085064921280130494598:78:2 5049667868264721402818408051186611087:78:2 7387340538732526178446259562126056112:79:2 4480637022069585583412855514501338987:79:2 2525840997140192887969303059582207810:79:2 4260075841445991834932262747182097571:79:2 1785233487848667634056955843117333347:79:2 8683605666959212745442856763897968730:80:2 8320546096051423990023990760898423853:80:2 2172909330288020920964567035813897285:80:2 7293606548555665690457205481224051185:80:2 5656136727667457638463136052126040282:80:2 5813929210287431008617671175413093330:81:2 7347813535974277211798304284072105778:81:2 5023601317656218865924439662055904507:81:2 7373485607067953574883539029288434807:81:2 6925027940680553181593415188609479363:81:2 8866477529587579612048919800701134573:82:2 6851253144269028578395688915479688286:82:2 4968599813616784278673590935573011849:82:2 4408031856160360155168409458294677669:82:2 2501476054058461110609894542366460491:82:2 1014522190410088406624930865094075848:83:2 2723777745629010360594512796600622256:83:2 6779356426469314178617124544190248973:83:2 5392853731257514444665283842666604999:83:2 7884125052869373940286826914825651203:83:2 7898801873091666890631603305251098264:84:2 9455172601514623528913421257013420003:84:2 6110727978022845157503923862867945623:84:2 3671304638534106586826993296958364503:84:2 2924517224614980789444321809145640721:84:2 8910199026952479520027806037392259314:85:2 5541841457267640276166955482290270905:85:2 8579137040229091911570586077101382400:85:2 8378914487728148895425156745211907680:85:2 3306767883299759008087852616621454840:85:2 8443017616070184045099566933941689013:86:2 9825135601697416091887881899418066863:86:2 3272355771040465920101924463705993906:86:2 1413784485671043138761040301230460960:86:2 3403009667512339459323341211239198164:86:2 2865825470082093390636718845646460234:87:2 2773706888960884128747543859452454002:87:2 2621624290634352379455164728216813435:87:2 8583365953516609297506614117060753365:87:2 9202414095353851429348266941314044929:87:2 3171708813324620212884648799810023444:88:2 5508494976200952581112805281637605319:88:2 3617601563516773796516618481839168582:88:2 4939914932775060815284245433582823305:88:2 4205300385064155903955685582616376100:88:2 9854723747712312291062741689039820479:89:2 5328044268009126270498542930428075034:89:2 5027774206467746481699474489724188614:89:2 4624739045943853196275777064991533627:89:2 2112893690370140302421661158912332361:89:2 7112806475106352953728300711692938239:90:2 1888237717352595946176862131655085746:90:2 4718492421354945463506237653880669214:90:2 8796889428879401318135445707448084322:90:2 2045129459416561939587386492944136724:90:2 7800580222790923983749084172088726650:91:2 2664347592294331267186655708687794982:91:2 7552586391079449063097601632245422836:91:2 6592984831667677018275728636239728115:91:2 4916655290509028350571131587290738364:91:2 3827090980920126622587255207570261904:92:2 8996231682175698444687472901864058166:92:2 1310512601629328031487467354782432974:92:2 9937928094748856150139595318723981541:92:2 3045240435969066513068560251342759900:92:2 6682240524521923229611846412257841916:93:2 1787669678193952614364624677987623173:93:2 4564921687783985265284685798966416378:93:2 1241890471304216716018256232792862140:93:2 4089132355009491618710857899893791838:93:2 4941287689991792267225735825690698521:94:2 8117754407360919679589102187848062384:94:2 6981033182543109675298217343058977202:94:2 4453731906457111078353601910991673518:94:2 8110463381041902448198273568056400703:94:2 8494056929115213172163489317394098484:95:2 3390717291429443301264367345572576782:95:2 3139172190943014706887938590322459094:95:2 8029432828212497829827669306995476694:95:2 2037946228154368289488334958420214133:95:2 6319432556767289991966557520633820384:96:2 4286293019021783963141853112254497901:96:2 1313503880143642137359702056405482465:96:2 6258690098082855426842406141909889880:96:2 6355176498708729917416387600769100905:96:2 8931249679149904670315641860974246501:97:2 3532855711061300762359407616471172838:97:2 8834871826755344580677620339476233491:97:2 4304378151406797060903601363203342458:97:2 6943321562026967970765925319059210319:97:2 4549594060266277793855980357931280412:98:2 8054727833031141913891113668084703556:98:2 7256334025946223724293602123786941929:98:2 1531374768815860546683638381521980524:98:2 6406991641741549806748096609280625687:98:2 9055472017054296113484065250933853424:99:2 9266918018453456617874076426602029763:99:2 9664453108726853497673803028262170046:99:2 5112794471252573410389151586918229062:99:2 4570090662053681289376410203046479118:99:2 9223155896482234417566058934356232752:100:2 7017921723269032080985893849723021477:100:2 4956353537238425227867748569892684916:100:2 3988852710317505939065708031435626901:100:2 1640247081641365339457084619288220575:100:2 15243152288350091373220623398066063649:1:15243152288350091373220623398066063649 49250464906126567463930258283909328035:1:49250464906126567463930258283909328035 58364493661443480697003915432777448778:1:58364493661443480697003915432777448778 10318346191513839772325473476906867398:1:10318346191513839772325473476906867398 12056525458235947622381575785435377891:1:12056525458235947622381575785435377891 55875187666978273105193309917657908951:2:7474970746897828034 81506313983032063936466934450147573909:2:9028084735038327271 73828655911253359959002860222235902112:2:8592360322475621131 99696236573614134569246173026025958198:2:9984800277101897773 83691209538837888065016054231128171263:2:9148289978943490402 27162689855439637552823445332225251617:3:3006013488134 18227918818816569656690375797874985263:3:2631756445418 29880029945147424338394232492276623418:3:3103085029618 55258453073352759868764597034917276267:3:3808900031578 48147648897986118505937758449864874846:3:3637963702717 19018616117934200023293544443675894408:4:2088308845 58000371184688015985004722450409769623:4:2759673436 10648651053769748112483041190713533654:4:1806440447 85988700502615732911422897569022010096:4:3045161612 78522895267148534359717875749706054244:4:2976796018 36335876598159054186916478992853747924:5:32513754 72698338022063662760990706454057189328:5:37351229 30690024638623442866443098945914753410:5:31433985 42448099243285319084794155399626397604:5:33540663 38047099846949696209829794053098088260:5:32814388 52364288709148493177172170728766646531:6:1934219 83750217839169818467876423422246349891:6:2091691 35161780038105460927212842232120223486:6:1809999 46251146959475822081961105540741458728:6:1894612 64664667685261123462407456676935767850:6:2003446 43007997465959649598237784901618163226:7:237805 44237104982444577473456451744917419804:7:238764 92822636171379421152446191799372072096:7:265430 68088951734817487167334197142775059146:7:253936 13143526063299010236362519934595299744:7:200758 91656557137763364756630769706224658621:8:55625 37577837760077554915352921920325819820:8:49758 94131610937377269312966519643966184283:8:55810 30903337185172526218840239246123148288:8:48556 82998953450633462618433061800499794924:8:54939 15557654478531229777557490147500448186:9:13565 99667542134687529958024519665000931651:9:16674 68821335282836267213954111569491142296:9:16002 79265580058902973082506692911082216899:9:16255 63630936034536481530486331317102873886:9:15863 89354712453259067590086943539886705815:10:6238 97893314506671446101123528864812748316:10:6296 52698763548106084094595742748011217945:10:5918 43860857102878425744312249696242688887:10:5810 65089398130745884475646720820759328705:10:6044 28572460143687761881645043544011517935:11:2541 89489125448463742384800062950597828226:11:2819 31054504350298879439314867674732029604:11:2560 73526403420005717108774391292487927617:11:2769 66900203551308214651742926237300425546:11:2745 14686145895774671539854839333257512953:12:1250 31720591403362289005701101850545639043:12:1333 14114076051470154951342968119647383406:12:1246 38731385789400465918408216030947933194:12:1356 68971658215177181701770297786096648185:12:1423 90391583785061394807489114822918520526:13:831 70370656232983410207862579738515599559:13:815 90983655077275319196626854949457280489:13:831 85448222398826685918287693454519881207:13:827 62826032245734865231375388450292585047:13:808 69878668179736534759527040245330535476:14:504 43575544004568550428877343741122909399:14:488 49665226712365146759691315641393173513:14:492 17259676968371138832705781111764421190:14:456 71532070518449079577594470678293997626:14:505 61327345975805540701585649244812439515:15:330 94100986829811495684904674277935224776:15:340 85611495538178669323442721362020851992:15:337 40059205818840362547605295712068299459:15:321 73202818778977250533523592850190828406:15:334 21366691143883488337267292095933555390:16:215 97687396687902232098297585776051713049:16:236 65452408948748236597082569314839253001:16:230 62477228495974435872267390398637258467:16:230 83706867410297745742622176970905620968:16:234 46422960561597795569972613597807689157:17:164 67576187451838051004517292971040256983:17:167 42210654852746229379207389843582922129:17:163 32393679993054384613170412413943855993:17:160 60184835012546068803954086170339426982:17:166 12987473662377251495057645089001091166:18:115 10476895386294596224796286125531516648:18:113 30982964680753241390725020054105060572:18:121 81862723001318341379793486176843770459:18:127 79164547439427514307100497377264324525:18:127 11608141549024954772867472422689879471:19:89 82615932594173077498054425013590321183:19:98 83361781325742614406184242436276005955:19:99 74855120314431410003016403072300157463:19:98 70264565152970199101867557219168822983:19:98 58065927016994916343792254520825764102:20:77 88508753534542163408061116481786646282:20:78 84022171545263015148305289820013714070:20:78 60441200398563464364111730565111782081:20:77 96205855370176434491924120648494884848:20:79 97726014676328466305543088425555144614:21:64 83371393762939308775759016782426649166:21:63 11348911844529975012671246838196090167:21:58 19725100320284612230838431742955832605:21:59 42957193210336409827527717384484088668:21:61 41172937375165855064259457372774046449:22:51 60604911824994222892159649091219433754:22:52 14762556413174854756955128740881929510:22:48 39639050070430307061179155465906533783:22:51 16160744234034063255124610010853937506:22:49 93605097015324560086517974841799608938:23:44 98397640238702817448352743314480534275:23:44 68464292322161878214489064195889551868:23:44 85337035621740710160411401967232652387:23:44 20990326758781518282976142505518843469:23:41 45674326897260776592456114483339186872:24:37 81381483293698926539558089078965391097:24:37 16501519644628520202971531745133679704:24:35 51910549435915824728936747090878738193:24:37 34678012967580409819292419429866217081:24:36 84606884930768284090895231863975449620:25:32 97201435298820115283684074410826534030:25:33 78579505190725118244763772781139090665:25:32 18232817235371634229871617348288214594:25:30 44069338092447920801688251806741578354:25:32 11694187108981322346836148291809269558:26:26 97293007817999432663524657596763896328:26:28 61157778134491733016832633360695842077:26:28 33495006411293865002174580614175726126:26:27 49463169651021976711980932187241454180:26:28 71714853334101426919387006340899617106:27:25 18270313031372460444894118237538239795:27:23 70030860649786953109401825833566436742:27:25 31328944263315776129565887913927091189:27:24 52593528261265234319905051029978027933:27:24 54312541541290820600146386912310551220:28:22 45486102652205388189707229889915262152:28:22 60093504746439798380083590304499265904:28:22 38585136882323524437658632410293978984:28:21 86467901757862670770326884828917683705:28:22 74047975109134475619100052907079183144:29:20 25942810183826251219382053694362326775:29:19 97451523114008355630496998186388751678:29:20 54086949776992416826863643074896255946:29:20 48024479708637841847383427967941608802:29:19 71470628043542948827713117144827159542:30:18 69468336104259336353046177748137684276:30:18 49420136141361831007954494726949210048:30:18 13092334651620857341409178049713378614:30:17 45484515459254233846325456772444080292:30:17 84699223187661472027223034007871797947:31:16 13652153073939331527145857882290782273:31:15 37798475016792846456368277900480772845:31:16 32390120221626369953330716373863776997:31:16 38364845023941345326664205211711923733:31:16 90695832474566528806061525975949509642:32:15 53196683743257100159990676759505773079:32:15 46120251174903468196658869395608998428:32:15 81039991663674133387054835656190207607:32:15 41230248620711926741258750295196366811:32:14 52163470032238864894129005657904520815:33:13 87885327638661021342862208600849924143:33:14 12552537347840323159306822424257162737:33:13 10871140813163787518185724595451131327:33:13 74365003319509872173006856790380088645:33:14 53651412361883831951820973834429046021:34:12 30959035734867061330046986561362843722:34:12 76101409275998798836562090572820246442:34:13 66060665984539573486027297155841011030:34:12 83198956865395483156674409922281327662:34:13 90444416616641881857899348872469512087:35:12 34388789097813824026916220786565683870:35:11 93731856619782115207048514634969975451:35:12 23138369340511724759615508484118543690:35:11 20210568093129603027450753294133266345:35:11 52514349204127854501462984306025387471:36:11 74197235975542359652127004061854425279:36:11 97359009526910882282901995168976664536:36:11 35043805639071932107757029735563344821:36:11 13944585107430200791493306506164068419:36:10 28955026902869413012361730706985764143:37:10 69845636314432296690590090634302474684:37:10 75143290567550996003869135500119975505:37:10 32730166089274783689479431119222771973:37:10 73555750335494997261604772770428431499:37:10 28054288321588940507027247336272347436:38:9 84407743947300352503551629349985810894:38:9 45244847992433170129507934459545124075:38:9 22140028701781513000006712049235923093:38:9 82590300869442945517532849848632562768:38:9 84373631094318806046142317125330070523:39:9 34344488026485596266216349686066954424:39:9 67757452043789208990769540056102939914:39:9 83084433336482603398785332202821846381:39:9 42005996753855795698902286569741705665:39:9 20216933880945842303696170867331041165:40:8 10523286268155136648645932906972579604:40:8 30474906090798025161106200144196393218:40:8 25748669029160367898188902088639438730:40:8 83746997418858082002606330874031873987:40:8 34852549551261484664099833323537516534:41:8 96785820538767117622749117148096601088:41:8 23509114920724918324965142762746244877:41:8 32401816285677832477482354562416607079:41:8 98197071417375791994930597990036526520:41:8 74963389345357550860702755096774628631:42:7 44557081852592247490625076127906797956:42:7 44658150927711366867667506775553189566:42:7 78261001526986493296899557928686556945:42:7 89269832865542062816268344124779044041:42:8 58220433676275945410888890449973551934:43:7 27624135787818925639250195594742963183:43:7 45862410364593125596502528424299911398:43:7 13712568195610210081719854517717983972:43:7 24091155488497522479213719797207211347:43:7 43760973898003009761537901380001094943:44:7 85657978906836657616012795173825230958:44:7 60170914201737207910205712458676596188:44:7 41176215882258934347732095785217721037:44:7 23632530730658489103830377607032840775:44:7 70631742521135559141292819497929827239:45:6 32608768675157778862468338808810476525:45:6 17752216903430595310971931502918301264:45:6 22168599535951685247246155661326438844:45:6 93653698600116172674422090159199892411:45:6 68894171687677363138436063738997394994:46:6 84987270814244161154222582686079967530:46:6 94558770300625978590937312433251190610:46:6 53343473215585846789770774007297577417:46:6 10249541765445954462891066509662879047:46:6 90558909581397979851797146309301309162:47:6 80661660681592765945492814478533593338:47:6 27507856704567957251717484244077802602:47:6 44873311048061884256650326786677087129:47:6 35632909552601878692015734364112519981:47:6 87398608044428100035534980916682178729:48:6 79629981018745296281682237644326178713:48:6 75967050136700048334961939001273249217:48:6 21933088779203700072035664420477895709:48:5 23332528736188105704361740187689410123:48:6 71181050758201947935458823856402399601:49:5 64060379525994818319647043569095142864:49:5 66557398127031987483954527278687082956:49:5 39090247450463265492296528882916430512:49:5 19809557118333512217861074749657119570:49:5 73523800516799740429421767916658590312:50:5 48090826123685987837158384432868535840:50:5 70104155005870624644128388964091094956:50:5 46921015699147291244254062854936863796:50:5 89624424086807110420217157624266642810:50:5 86559003837483649712621339723979904551:51:5 16186136728655415394292655062548310569:51:5 54835601826761408604704475585058310635:51:5 62647380896405405993091885529174118803:51:5 16186031776935360667384333138021547020:51:5 78706224145333844675075007471975810351:52:5 35809928638434476145763171840637930406:52:5 60574910186841727321007614998157465523:52:5 56064771443240373420412096067012766796:52:5 44044028321769912973664328886715425172:52:5 21780377077426411278152036639732979168:53:5 49797419231698745304070500809513842902:53:5 24244627279404284132799487408541048401:53:5 95951744665742244839234413250209956208:53:5 16768814529577948178222802017391950782:53:5 29642010407744038179496457563478303526:54:4 25429255203376271448493432018509867529:54:4 63868806936168396509507899820289865138:54:5 23285451165566792640595013028210487406:54:4 42598910951332385758268233851160317042:54:4 85776243807864154711975116014933975810:55:4 59334960054547156555652132642022698205:55:4 68906030074324058634791470838393181972:55:4 83122306103427969062013453647936119882:55:4 65061381888707388862679248364050121610:55:4 66322699090838853473246095407958764492:56:4 96993060865161813143366275205399338055:56:4 89982632164688704347823871456733933215:56:4 41630161032028823895704992975043966154:56:4 25458505254177597705096691262763306760:56:4 58422185742821829063019444282956672881:57:4 17617496943667469462716388020035157338:57:4 50228434252929030037157589294652429362:57:4 11596061265295514885686469095454121442:57:4 85279897217092116888711637416864041241:57:4 60210111625811627337988950637077035079:58:4 14332449775221035669426852389286555337:58:4 36233528412647026978448390501989742798:58:4 18250973942251247832409246250219393096:58:4 96437252540571659169127983336860675161:58:4 23936274288293435103737171440123031498:59:4 31953862091857933971545479065605806389:59:4 57340282164391747285253143256635807374:59:4 81929445843008524350881083738126460103:59:4 53601980365800372294825756642557358595:59:4 66286196089138661209524196847185519143:60:4 56173425719588356747281669622694556540:60:4 84795197286130435037374931471395471323:60:4 92058806583870092586763910916355419104:60:4 41809960240082335358986639203647244177:60:4 10329245995692165017469278474574242011:61:4 38060608864142670828783648961831435927:61:4 63769915545481624001929333411494605468:61:4 20733934811806331930750898270262098682:61:4 64782438212523624403898126991092470024:61:4 77079751099703224565286497608790188309:62:4 74325498740777090819328141427230258637:62:4 41888101500001694450833096399777870259:62:4 20408837685339927994584617809196483070:62:3 97114125813201217042423436459039280650:62:4 59317395317404102113107436608584534089:63:3 50026143111123221303237153060389145640:63:3 65782884129765757058519757707361498026:63:3 96398052000974785799623428686899838526:63:4 57229062464466201158436101332535594224:63:3 22778941647207237151204487541463002018:64:3 19662746284247341564607438272382738036:64:3 20762954382302493958366068606154077027:64:3 55195978014732183733560907352642676161:64:3 11386137764900468828557679119935815482:64:3 86571388118752462598999465224556365601:65:3 63053946906441005874026076883334969948:65:3 54525756977278700744025588849148239298:65:3 91733850816082453212651445125524921377:65:3 53146166809590693342488738029697894298:65:3 74580874444767729864679827270833974844:66:3 66492249121480835651929936969961731430:66:3 45452366573361113354567953099262674741:66:3 28694539239595342749843354401295446477:66:3 64268371593191524828043733527473105598:66:3 49638695013331104727243575040094178204:67:3 81822819446724296905601701886924501181:67:3 15635400059642330124382985216059776085:67:3 82592010279070086531174312876493756126:67:3 41402877638672983591912515324462057207:67:3 53105752924001881444672325458843357505:68:3 96702949244389705888569809649384210477:68:3 82526668131216958066038568126505467853:68:3 52711413757038772237760254588426555136:68:3 46882707939117902596118004766045340311:68:3 45099192940507330473428981400410766002:69:3 94448189358985665868122775358459568028:69:3 26684699821228558183940846929323221447:69:3 86264102765897747339250300817674910172:69:3 91518552528710195439862216308695521725:69:3 85980854412594044423537210532448699055:70:3 66528731823699248322370227690470158052:70:3 84333579014372549008786289734524285249:70:3 91427464771020218328248649937452155539:70:3 46811629489094492638881953289833346341:70:3 58353901720566480494655505026057531481:71:3 57418629053261746505837499162237997930:71:3 40572921711934362121620539297747760535:71:3 47925193588034152592971993729317709654:71:3 22846642006706933841379153415789571983:71:3 40358306493366773856651582627096905910:72:3 69812936801367614330157669140776753948:72:3 56174699719057558628328947765846703365:72:3 86953920953775565635254127624906681590:72:3 35614449211200672354109526570474055090:72:3 96359375655202640430948993117044988600:73:3 58160828522985107016049004133550182338:73:3 61552111559458749898832515088077254475:73:3 20150600337766737497694874414663729407:73:3 88954142211118175064740513134325059582:73:3 29645673267423368440050903249108995169:74:3 39200880389026769537405470505172487426:74:3 95423876126534217802935377211414321850:74:3 73432859988187305633978431413087485753:74:3 66683891084837783357155028444592449013:74:3 70101541219707252698960967184267687602:75:3 21826687993475690381965266555696595514:75:3 88199878836131682150016345755418710316:75:3 45478222661182456953680747110646811467:75:3 57378011911257353061382500805933416014:75:3 69136487972115841407291318019543011240:76:3 72488513142069495716092141586538719297:76:3 50291405120874376763615439417074948237:76:3 38870699033185151553363706868449076881:76:3 33893449573979386741454611032372417959:76:3 40053727994770792065821730682723710802:77:3 65604795441153993857888119888565023288:77:3 30340395722113221165401451895039269932:77:3 48490293435650624243149632372240600281:77:3 34815871925476273832820739559428311604:77:3 91164851120681922648710872142274206062:78:3 43979849416418229439510561265676857570:78:3 29209508807482247317353203961501221911:78:3 92959012161891049208218474135869136433:78:3 44325463554249824464793874114104088543:78:3 96491500216766177542250387865023350380:79:3 23413568265355748447506639042344498863:79:2 29450807299968381781799628511694515718:79:2 54242270603090988539559294062778322237:79:3 99326125769935527867966524715651489141:79:3 56208423097963989453098041423595271846:80:2 23411066792292069701278035518289577127:80:2 81393866350898542076531472498387807706:80:2 31981234766103158482821677636712660840:80:2 33775286436508093846205489956423231159:80:2 20823012555351330036295526636283163922:81:2 19690101378097703231701976866334315517:81:2 82020450655553196490970087734815272167:81:2 12658846941755452059465957087627306539:81:2 34868275510396336724817995308039907615:81:2 28611001488146347620903847913154968535:82:2 25725096312887454462283796329812690619:82:2 97126496872009886387334886089332743912:82:2 33214548249141902565723855153839545712:82:2 94302105717209596595516166744900656158:82:2 25176011317004154725769153102529039779:83:2 96016629674062826329703460975250706479:83:2 46572503471537983804657342856872557282:83:2 34057701245632516918952491173399259923:83:2 17711790876996311757958405391699436105:83:2 93314619121790626594412744019225336153:84:2 82050582679939155220856803652511259304:84:2 16102450351442164633047506540134286141:84:2 22762571967822288822642516619128587255:84:2 95025327736251382337886503032998413815:84:2 96245104278821359267089637932136916946:85:2 58740407902647532936250014507686623681:85:2 44853639329934214820787242214119531015:85:2 72848358216328115884673443665397153782:85:2 10504993810448395399909017696465083228:85:2 15703929651082840624807021732923732506:86:2 85670999600167504127745481901898385812:86:2 39013265810097581643202950170813374319:86:2 34667640177964937041161435051342059428:86:2 58101029192755907652060355662548800404:86:2 11651395525185764427919640817332538198:87:2 12704966897801744622894410286389884911:87:2 99303692393303218557082553835866580851:87:2 59276334051046154179352211819321081636:87:2 59260029632975859069036969041923684461:87:2 65275684384111011145527222382323110615:88:2 57944880659024195736997736998439331454:88:2 41138628833056500707548303951819421301:88:2 78421576253253126877958311901408963687:88:2 89777467021625305526017804658728710434:88:2 36817330251554136245642784933282062968:89:2 10566428284992545459129273615472898417:89:2 49157834296880910291987067463758226863:89:2 50444628637473782451444469353058050627:89:2 15773446221054018137524287225214075560:89:2 75032327892859741763365231766004777276:90:2 42349177186360052632392534686962033978:90:2 25298305948971665972653838617897262165:90:2 84331641239543305109687317694118498142:90:2 86110717222079593226112700578481932328:90:2 78961783066048830714275100635285107245:91:2 42351894943717530915016343441648291270:91:2 38753374551662263770187632031354113220:91:2 70405950243089823520177916412053979023:91:2 32864922157220536020139849200701104638:91:2 44439949904358889660553557196271081560:92:2 91779865183824075864045186247109855968:92:2 10741691558982025600202490804273861211:92:2 57398970040409453449534659523697788185:92:2 77102820532422514723236489274935771016:92:2 23593668469637601204300420778212677588:93:2 82567224924538925336635840148157651652:93:2 91874508761044135436250367298578425204:93:2 43629265206004649772117092431018768459:93:2 96638589339512837639628951235000334018:93:2 98287308934770204010454522307164717126:94:2 58154767670551737904709150565202676927:94:2 82454779264019133478530363972284006311:94:2 89724874240798873996565505042732436793:94:2 32055490694080976622029361426595632800:94:2 66888875677165687139551795146859817585:95:2 65660740039198288058723694896676219382:95:2 38468719230335792921242730038952705887:95:2 35101503783346637237708939621758456645:95:2 74382586722040261741831270435405056472:95:2 38165070818765328079294236633992115803:96:2 86407860539856614792073087479924382881:96:2 44596257043936868507205588779180552462:96:2 56279835092522788064950857593450662556:96:2 44371226696302943273679921763294343311:96:2 46566349536289474131244829488875273732:97:2 83076509763081063533615015985377026576:97:2 91439610997398051063405167251964474265:97:2 97243719340546818317862016263604073361:97:2 31806488959784776335859177817169754413:97:2 56873546870269864127577607610282154859:98:2 29917849920231834405550432118731613296:98:2 46967373121029956730831584141494688764:98:2 29884884666222688854397032929439176880:98:2 63817719663196748052644917688889941763:98:2 47061764354940365999007295722961669765:99:2 57929729741097145574574480568446672664:99:2 27029932697219635089902176145346516666:99:2 56011872908038066459301251564431620982:99:2 74627764923603783843689249222084915602:99:2 71765513093229683717742142304688864502:100:2 14653797341425300849800186237350233650:100:2 14289298179943945380948586432559670637:100:2 54492937031296474675605949887860626049:100:2 41290717822488120929465749790315374941:100:2 845260644673751724893850377554365009888:1:845260644673751724893850377554365009888 547220028269158273839859970986898421851:1:547220028269158273839859970986898421851 945292263802479864919294462050991889460:1:945292263802479864919294462050991889460 260329991781658252918183874340316095055:1:260329991781658252918183874340316095055 277459864657224722983957751748112011851:1:277459864657224722983957751748112011851 559223051597245118432740054677441245133:2:23647897403305121715 992456001143883752138706316703418536809:2:31503269689730362211 609647999793744001956210414043082015956:2:24691051006260223631 589808793934538232068614105513831212263:2:24285979369474442342 708717137367024669146311771566739060498:2:26621741816925215405 689778031522195527083017585055061469444:3:8835608266736 169950009564636939502759350898569094478:3:5539115203661 912967220309168496533029018907324431005:3:9701042224461 133498786760108819394744857237472546389:3:5110841817851 682674816308058091518586022174052705882:3:8805174368687 633082519962304611100391114041296919324:4:5016087233 733944954476007091696793681261677953245:4:5204941735 592878181129486043095545117977136856209:4:4934479703 681758810283719693860831497154713688030:4:5109844566 202155582158335082075864322884421551707:4:3770695255 614660089011042682924069055586917672425:5:57243608 337103201790136660940138314462681399434:5:50763618 225853584540243491773002006578282754819:5:46856020 423008746127802231070216612626794292241:5:53121443 225945103831453353283172817210563979790:5:46859816 246934105465020369365053445741649167273:6:2504744 606346613114784590546196285331360338868:6:2909288 207907206005845392949355588132325671527:6:2433949 179342536617486955680829119534093863321:6:2374728 844936499167599861742107547807874775665:6:3074708 572698497077981417203223020588181773951:7:344228 391166372439214876899477699292769858384:7:325982 181480492023260503196732451010458900881:7:292110 247055471597181687757009447252289675393:7:305270 923983450342975489011693618677463722980:7:368572 414748142228749578411019043180226247346:8:67177 843797799851076573083871445326213284069:8:73414 902270338079909679698548541434801621508:8:74031 666069107773211445881247661648337904948:8:71275 798509817450446225566688140011680032550:8:72909 937920578644658794087007218401135028569:9:21391 594083719461183270593808843122992635996:9:20333 744898320313682918244531148679794799955:9:20850 212489683534706633734394042015005248753:9:18138 269965366757481912240761876278528988259:9:18627 492669985441451428153658644132854978890:10:7400 278131120140293687691467838189006394705:10:6989 943294981410210613218621157332362277088:10:7897 920496997290800592346548529153370888269:10:7877 126185810768843219925534122324943971007:10:6458 549621526647871576627199344947242619138:11:3325 748476137874696161612268912882965416370:11:3419 570753409153943700465585158844030977274:11:3336 327554992536339027585867834356516995210:11:3172 317248624759471839323389447817974867814:11:3163 128857607187462251243098906927941445978:12:1499 197982557247672776675135335687529337811:12:1553 446228571645886281565949308000129849200:12:1662 282237024823325316625268963237964761376:12:1600 443292623325385198356533683921407903581:12:1661 953445833528555989123590393151281808485:13:996 747533401288280551762885798681552987787:13:977 519542569791233436345503104477587688476:13:950 918720431154048116872714779897378512524:13:993 735079290005709135800035322161035183298:13:976 415083379062402061269572707832047836538:14:573 506781150057078578202685622393487435697:14:581 135724664987722870269450342019940750465:14:529 464272064568607353921659990005830980635:14:577 311530337699067006185573248596553660543:14:561 338415147907894274102036576931029129892:15:370 265329225835508015609181189139100831794:15:364 313781953304562319643639405616937541689:15:368 804320940120575043474261692539268331887:15:392 370072838698058879056546070570198852447:15:372 730184843274885333014457266130580646511:16:268 543816552622978524109476672792429251166:16:263 556181050961101221528453595428147476340:16:263 804565238535152391888659993471761679511:16:270 307007930259211706117656620864169882562:16:254 542874792405194806268440545079772802466:17:189 860987971655584446726855479525759092814:17:195 944086715965489050431149571590278878324:17:196 772479670157892062784516415665508233151:17:193 156667638531300774639970736137497719891:17:176 194823861625905909375082860854461102992:18:134 928677991254652837402250071417427276970:18:146 733280701153073385627464384031344975323:18:144 135552426428316347542817888066239806413:18:131 483179825124995871728719538730468049402:18:140 510906725286735521601151384158615418096:19:108 631571508682333526059429600885331372176:19:110 294156234344948449413413462830943813795:19:105 892935211425519180032911786183891416914:19:112 499639959525014251614536510291721978505:19:108 742657736837579350373928868215067002412:20:87 496625191312802303102079780405871311631:20:86 198051684155100618965913575619794536975:20:82 604140530407259763668817121151079917648:20:86 212303461232973231316991509639104760009:20:82 865269720391018045126987454305285046029:21:71 624697742152242447042737508335472080367:21:70 948976159204030628790030653185793992508:21:71 683672346081551561611446893361164214967:21:70 131159494147765514808780881620476307653:21:65 356185076821308523243203160090374073031:22:56 347145024027082512817654057464752562651:22:56 370103199263178207014369788792031284480:22:56 447348541548833538135299390284927258724:22:57 752529336936003561372622983605488782316:22:58 914559635747708718263562917265495133617:23:49 661995759278019220278766674506433304602:23:48 823553994974368360885392008981155847985:23:49 831932290242838593988702222250298355124:23:49 543479566650733022107652226796382647533:23:48 820716465456622363410971213577320443415:24:41 669888206312598659031225133199867969275:24:41 149127168755989615531993648549184674721:24:38 832845752148808136251788280885486623519:24:41 615671685421456551594964988641553458742:24:41 477893077872782792603244716379677184062:25:35 161701557386313150177454733038568758034:25:33 123376506191019323107418130359721685784:25:33 179424887160491640232771503566768355305:25:33 536161407524538820748386286781400800304:25:35 884047930985662973095869749700623523160:26:31 866638159208084767759581298353749329748:26:31 834878412755440351116023123082003957906:26:31 324177913776718597839567576135599280970:26:30 712794592806245121382474403153640996826:26:31 962605115758629934949323113098417236011:27:27 544921637572759020417726567827256676339:27:27 400664284580967951580002028721515669269:27:26 626297916083475712212558516938891194399:27:27 216456250702255087401037881393809162022:27:26 153913885434084135109463117740926711327:28:23 985576569315218176488267773527702816142:28:24 295233891900693358156906330504728461291:28:23 734268397969263043257798190981488995173:28:24 256429411058263577696007304799155683326:28:23 883204509857561183957512415628630857982:29:22 105251996657421128871654166761344640409:29:20 608170087064811999308194006635961128541:29:21 945306568808866439368800035175506621354:29:22 793678287847157002991114041878604220782:29:21 682407011093478119938010332825834925134:30:19 686600488155917799350012399053343799631:30:19 650044167443684985643236627376258698748:30:19 275526930618550190157812758045598348540:30:19 494307071454100211980047990372712434109:30:19 771349526752642761427826462873378589610:31:17 328460412530940796852162797602588667437:31:17 796543967323422677229124007201226794554:31:17 913020828925938639404779116183298391425:31:18 727227906628843508144909200887616288307:31:17 964609050216654629599540584336986478725:32:16 774489136533973319203842571315020478355:32:16 489430502735746769717356204757290459684:32:16 313795651204763231852042163771599295813:32:15 675652236746629549635211174400480835889:32:16 460439844821646474489407978565170405053:33:14 390188378190063027522344330942533141151:33:14 347305706934054129323883381504216354832:33:14 462428139150536073087059222130968500151:33:14 753130911489437333542120184969208956100:33:15 416906350190491258392071553931591109521:34:13 247471046581155701756632600274876287442:34:13 310603816513705457466948016353259558553:34:13 133916270351430144661418314566137279056:34:13 118604167955665888255467588087581188342:34:13 934046989375760865813417244942599631034:35:12 647517966372377709695527047981119710853:35:12 554992175315639966931102230195359798407:35:12 681816884890217083708344812919748357787:35:12 186132796225485055654637273095819801927:35:12 342620651835933329853909654479482827588:36:11 476761503386668898707565881641148119690:36:11 741185984576920822409495800230123933545:36:12 160136882024856526403925035164973823800:36:11 195013722090702889276630289530302470113:36:11 466222889537254510565439721663107065093:37:11 571633322462165485938943150323583214635:37:11 301410392666154366240743825936694985445:37:10 480287156249488485840423648337737593594:37:11 668354363311492073155115869212577021402:37:11 543810975103177819768633779019690949683:38:10 771736960823871670292745892029732728058:38:10 954453613986653986842539631365651123303:38:10 590767925313589397884198867006282334072:38:10 186570526571780899048597389312391018628:38:10 238830695272971731481345898629043106828:39:9 773944112037825733133501417391412946533:39:9 365541101739807238249195188226271807646:39:9 761830410514923564841546797957224836844:39:9 625869339184993619310037781902764338540:39:9 758023711226724009914062643161202620341:40:9 176323721165419838261124848432179754156:40:9 641214392771660581189117523090291140085:40:9 210055068370321418783411516331677104125:40:9 495104793630636547250926402812222599061:40:9 403918756388579456417756005460372149875:41:8 533384286797837271950216890514024436424:41:8 624795826623670109642822572476334785177:41:8 801519291962801884703432207686092796074:41:8 363070121516131522990398908432751067543:41:8 713939225346465928738730682172496425884:42:8 125191351933881019455043734168344409473:42:8 934829463042586763976703220961115122298:42:8 357729397289284110218343305846358671842:42:8 110623648095938789410842418610015974666:42:8 733289372712821033880686132846592515025:43:8 715418511470594502080101771487801646680:43:8 338068440118604205647549934407863482114:43:7 125348331259096167080656546420243929853:43:7 220106675915259937322038881982221339900:43:7 692126640432012833907722096704877606838:44:7 405085322163560697317975267447073089370:44:7 865014675721194293218589329358748547237:44:7 509491112797767967517946782276915538486:44:7 819795381507229688895169458156017377209:44:7 856926610487089052588118439018440655617:45:7 204341926270609606255695711916680783744:45:7 546841967471256704489959602232232323532:45:7 740054571884108238462748173976167243871:45:7 197454850296755718899137370676321867938:45:7 169062551486887561576252975366472928108:46:6 261258915651706910831810957454730331869:46:6 515651302605975728213759035569909142019:46:6 146613111202296738341648051724385535005:46:6 379251893498512946066049790123355676157:46:6 126979011000349905307124120154703961645:47:6 503253872874574462577976642879207777046:47:6 596216113677091335305254333372362731967:47:6 826296240009356359582071095023082464486:47:6 934801022149973804486557550565242111613:47:6 834493266154932761866989982602526103415:48:6 528405051133534855547158673899817996840:48:6 671798169267141180590397906240647246429:48:6 278488339485724248997485297253522075185:48:6 929013490847090721546274413621135748002:48:6 365404777548756249475707893651771206080:49:6 781835962494097121711917350417910852886:49:6 837433391651819475401001519321421101649:49:6 605614259361771925817302092534110673748:49:6 240566347652030479938055499831723134851:49:6 693098692062426365054397751492697326908:50:5 151382783772065050888664880625658861736:50:5 153360781301160036239821767385067643927:50:5 844039425832608910993304168279583745693:50:6 269590560040358990938970684032335539997:50:5 189696686998819621061120871040481161894:51:5 721769212552610844247166002118306375067:51:5 665919083734369084983425045505158519943:51:5 366524883544760203830276397714813781434:51:5 175369765846998577908491366989111009160:51:5 497144034176156620487505387860159671166:52:5 621190904544936572767725065174254891519:52:5 223481356213812387968277709602688210749:52:5 496053314491599112591412848134451856798:52:5 775900901050979986297755618037054272198:52:5 401105507622357554548835383648374183120:53:5 505137973897787329292520505505073271580:53:5 945319034708115055342826206787227786155:53:5 937767325773005369075270745776811083903:53:5 496051231369415558174951474062062820354:53:5 454125969765826506174488880759938113477:54:5 459972147682629025237497409872457611200:54:5 802242563956734191061160582519508560280:54:5 984486167835166330764004428134068523884:54:5 788414899930566295562735431191989184359:54:5 944384658251113849564261676219182129454:55:5 587655387824693596301967192391062449270:55:5 609490700519379247667176569521811635041:55:5 506177485494816630213264445465441244842:55:5 174274429532152999769455451911347556724:55:4 227933081583909012003235327188925796696:56:4 854112681155541498710699386957709402302:56:4 763425946335539622908555842501352282922:56:4 292988530815500677034331787344850270457:56:4 251138149196290632566102782817417803647:56:4 957727415524165578642890564585793837170:57:4 885430972999410464372887264315538952354:57:4 105298799526978244820850565196673379695:57:4 331511703575114260803675242288610225331:57:4 104292875681954341191954095447420016649:57:4 195233519041619515420664095963419790646:58:4 224262069595841092169871716977559713342:58:4 368840680215758201179489735801082677480:58:4 319112242105881587161170649724331777623:58:4 151767687749256626016736258469673504336:58:4 851293629794600162237441881365186315173:59:4 189921016859609865780511588326804467680:59:4 935228831328397544913117577390552542651:59:4 467988965035207362968384531043486264109:59:4 907341382195618121890694220149065361128:59:4 657827224439646248880175412728679287212:60:4 260034055786687173872966800524460427856:60:4 516588006751588249336198780114552781289:60:4 223483299774388253112820785001232220646:60:4 195652563411973302245248664303389103825:60:4 463211472769952951339704913537971241808:61:4 186180841580244545558269427772735508624:61:4 378703264007603482068002261697693233836:61:4 501559919752143684781904216457811876164:61:4 703352619090878448153334589599518583828:61:4 273423888160874213461893717619036710459:62:4 675246620744823958070372274676176049730:62:4 173692385239983285206746687779252968208:62:4 585972203774282974528556138387683904444:62:4 950222842938400773691054270655041333615:62:4 659272976361355145100127795281856183370:63:4 583842510029743092797155313188641907754:63:4 974701839983634196024120267697825403376:63:4 909107927426254017236524734162353626491:63:4 537717265169923866733828464203676760247:63:4 364372682899194448401222882211159135502:64:4 817661901570436902810829911979515798116:64:4 626483364751790959973241918214694047941:64:4 264392683060464022247223091038063008037:64:3 307286324124730221706102053131286743494:64:3 502753343042411190496040683011441835256:65:3 940239981802909897522279680532784974652:65:3 130452479399957738979586397429908644053:65:3 593706184634302668097713774394073411109:65:3 228904009228124707450985245378182565958:65:3 400388872746465863774111977656347705273:66:3 626144510862672050426347028073599929462:66:3 484530231658565037101453278380077671089:66:3 530223519088683569377780397537855061527:66:3 278344398735597662092104875277836160624:66:3 626928360366177375197335124388344561220:67:3 570998450105787609634927289378796057424:67:3 395899439245678368197166079638273151344:67:3 691483790382314837906447696868563277190:67:3 410622894484765095756584880180308119106:67:3 581598592253850746658052602479430680822:68:3 975292416927801939739509145747061275169:68:3 436310900722130615595828580484656130325:68:3 899100579443537687565101839952719107882:68:3 530028322769755746772679704736484814062:68:3 673132498976197738457747484427052141831:69:3 434013653326097777494058352460203070588:69:3 326962896163823619671528561758007250441:69:3 123834290823977891378307776712296924197:69:3 238952145238760998414472571076079005838:69:3 103957720081817618262302200955380712114:70:3 763766768225710150667097994071993148597:70:3 496034108230494160264127548499337277088:70:3 736960507478497890973242610040028521859:70:3 637177591788358914042890191065702277105:70:3 316311104241915989957814223881779357186:71:3 879261170351012807437786377809469581027:71:3 428683458475680745063339874698984790959:71:3 870341103177614742559773027942776406749:71:3 345874293637235524299392868811994429658:71:3 793144159780571652539952627598649920183:72:3 149440262186157276914977466286491147892:72:3 763078438406285048563322283099641446818:72:3 793957333049346089633720473034209067119:72:3 884413627399000889956874537272366008198:72:3 195962389721179879089488380978401650846:73:3 385272563687655066667385583680935323451:73:3 713340379720858998114225233252766590309:73:3 704621999429823351518522432791508883193:73:3 514924032148950513650436664844482111242:73:3 367716281568888777030020558302822473698:74:3 846117734359435445401881221968630159813:74:3 162599320835464625351913310937750397565:74:3 692350061983072582649292722469942553893:74:3 773676920294587080706264503173899110461:74:3 912520612110585018684133810259125467654:75:3 568806638820198506118392784680983770623:75:3 690783001209184640050750393091861323754:75:3 927494538945526097820549623449838331856:75:3 721374684253418824353928802867420949259:75:3 112422253166928712067116029658847672431:76:3 446750038006160285588000652916027137222:76:3 683924397674320064551607589198337575129:76:3 245798126329450521847917306183800570477:76:3 554621264968677965947813148957844003657:76:3 840264272144414248402107853797369939333:77:3 619557822644930720268942507241026883724:77:3 997295992212288982578960853113832539432:77:3 203266007659039691968961150529724573474:77:3 421528747980617212559751883368621204075:77:3 924576510701457061560572201826410481899:78:3 849168693173347219056165868981321226165:78:3 807983182206823127058759366210097381359:78:3 732674500858144964090758576346075132409:78:3 256384004393690900904112503502776461354:78:3 434184494146254285662347291458030337191:79:3 607712925894766931641165636702367842744:79:3 503196876085429219600274264101092718893:79:3 704906322486705751472710977051731239060:79:3 724379085789333402225030534251661820010:79:3 111227311681164037390858076442489993939:80:2 938684650140149830005167941078809824964:80:3 363191378622359969154704926579734942524:80:3 621842245325110109430608723900564016978:80:3 353206384249390242935136602649288834566:80:3 441385375826731853620930722081898795311:81:2 576087917665068115923052032713512333154:81:3 726454565871586753403682955806135366903:81:3 577350415648504851291756761644900780886:81:3 505650417359889661429856555020044848770:81:3 758338915307503299806740719394147040549:82:2 606764721854281497011659618148978832145:82:2 380397071527310425928229779997984161168:82:2 497735827596623005774893892512037734643:82:2 811082364059952319479357009704458432094:82:2 798920531998871635478740785451334116120:83:2 676558532974973841372894293494038142679:83:2 222522915808208462049332897176057168678:83:2 193817933427632377561384970312440793886:83:2 248654835969864046801614796113190033233:83:2 947631870167657551477653920681089594630:84:2 143458502471967713988646366659997922829:84:2 706279985317332936742790662806026355933:84:2 420901042799973125495180062682282928459:84:2 513857403147245204652009616314169230893:84:2 321855539815973251202867613256509626870:85:2 658046130113723134024606608297234938005:85:2 966377437704091934856310230948999439783:85:2 926378869933996520570719313938523099699:85:2 390808092392262204640313012243818044914:85:2 764394617182861103702802265198228346571:86:2 731610397207241987104361316563637892055:86:2 239054249558752504585069528869127191055:86:2 582513867209876609689289037681048270635:86:2 133205095359793056459447402798222811123:86:2 280509459017018555858788267864745788756:87:2 224440798753525579629278494205942165310:87:2 924436898576512466775086591984382696759:87:2 641499164487397258680829842692122872240:87:2 364570516419877963765309581712890040046:87:2 152111989855085598194874588662804031073:88:2 857084656190716454346863030299677887236:88:2 131370272154375120719957646543253268661:88:2 305108093755502533214955142197199759106:88:2 340896096400568428716917511586106892521:88:2 186007777008980816966624404372168777620:89:2 452243506198281163153009113452809585338:89:2 332758309689118400174492556559690017840:89:2 630411552080262827317652943473693533580:89:2 503333629315074600234038808531457964746:89:2 334391399942547235871602716256304715566:90:2 352955215220495478300675609444490164596:90:2 604882129231419711256015050040950178319:90:2 944502742671124232636486314279678275648:90:2 804502476956070144435657769222444308803:90:2 798831146364615144832253190455660664269:91:2 173896565305839448870302579679191188713:91:2 503755259259718555973550548440264056581:91:2 712292595392774833837794805883032800770:91:2 279050619697308185823307729002749686103:91:2 216014295067822056843644327796162814235:92:2 129474133931695369867750194310791671743:92:2 283268993981419083619197419005460502497:92:2 394530160383775138551965348258182735676:92:2 291110181942259456765379827834339110992:92:2 696425132885888312301729150222012028552:93:2 336607214674580518689704774140336430535:93:2 415213237883077627201281763361048013798:93:2 544986417989485350260734941206784375717:93:2 293437824804077616387044027545839148835:93:2 314903167806556187021794034116228643546:94:2 946788127648443899769558715756298198841:94:2 982219911983085024638041463868255435204:94:2 596657570518627933014183213401809056786:94:2 476050991518611826160910550336174853067:94:2 363480926736041410269233922427181505073:95:2 305460859072964373994630518411405903891:95:2 179591635930805624427716636675373379738:95:2 323647157275608833032804378919228725504:95:2 337336295649425439663518282847717738421:95:2 408201612858468322859374726069535757728:96:2 217602829721113258163132872901409755995:96:2 791083359873231813494658167230350800782:96:2 424351066260318543572030312488670461535:96:2 810982196917371766128010592840946056739:96:2 965129226901302471697341597093232744172:97:2 496509454529105473490885265599730257053:97:2 796434685956233648457212514302341521968:97:2 448558824008557361223806253646534575457:97:2 250381278723054429012151174124035942199:97:2 796367666853905749946794722440233624819:98:2 176923671638037747882320151349001081543:98:2 280501954081125197322090297231443983356:98:2 546156036143484707601014458397625662368:98:2 784101751375944064601628538966596474820:98:2 536949757009612005985948987688848958495:99:2 238146655347331356336026185450789365707:99:2 127503040668578602439002280448100493933:99:2 163305033314135197708232018074998476888:99:2 955038211202863800577363118831547089668:99:2 199723228836182590884881198286526969919:100:2 535361109809980472857909516290582253303:100:2 634296955733222897516740867620578843685:100:2 715473850240596147223677702134310259510:100:2 341097503509677984466710542080346071145:100:2 4804672234361403223523140063179361226496:1:4804672234361403223523140063179361226496 7376829648484931032964939762307414221153:1:7376829648484931032964939762307414221153 3108072552358411929085121578160742166114:1:3108072552358411929085121578160742166114 3786041609873011275297591077666277633403:1:3786041609873011275297591077666277633403 7855999785779719041624110618990951167621:1:7855999785779719041624110618990951167621 2555056034058827772574175461670786754994:2:50547562098075786157 9523989115723306780152344174628712697415:2:97590927425264828149 3918714170921708453512732588623766778483:2:62599633951978572679 6907885683552253952723408557624857903280:2:83113691312275704704 1629088506475283806404635105571733025191:2:40361968565411719848 5971885611602299337976350319887824567671:3:18142779686006 6620922791070046160686466251067778734420:3:18777575109548 5990131489078451387196099553015657955545:3:18161238086771 6331799989543818569702047558937458520708:3:18500170428957 7604421093264875310070719436244315790535:3:19664763118711 7687518105925090745735989046944367850708:4:9363679449 9063968799085324417091032171809153167614:4:9757298705 4821232574748103566241001077434172430328:4:8332772415 2105574295056519567504632839254927689319:4:6773960229 2163513852058270797658625684361748931523:4:6820087083 1044473425290595060343338912786337680621:5:63647225 8904460375084693361754770704275856987676:5:97706064 2365103851305210189618594470785579123638:5:74949724 8895824794581487870433885382899431156467:5:97687106 1612680476436432461504014377869993947874:5:69424005 1858057845813190063754221587387521091920:6:3506252 7693526121717283950226171279069429719667:6:4443115 9122972425585660754090098433158709314102:6:4571121 5746022287311360075125957809551740155527:6:4232151 8748797131494341758641842423205299152868:6:4539326 4636743430765067929486782362675711805535:7:464089 6631925789220835874947080827672900887787:7:488433 6515461247875816055524606176439409871411:7:487199 1117711724888625367515313600840296368052:7:378732 2485595469346219845077611061015520449061:7:424540 6620871740930246043043883230637393919416:8:94976 3393987012683704767806814139231167945249:8:87365 8913582239762976014141155002571194676613:8:98572 1853997913993319163757834619075139551792:8:81005 9423848116134845418848242173642122434154:8:99260 5697710261365683525672418307160771841659:9:26139 3325843525193350270297620519308632495541:9:24621 9456345244463029358877288433143605188845:9:27653 4566694980387073509591667377378196457662:9:25504 7357752391558420319438125239539459762127:9:26892 9264865338954785031819117925528561281246:10:9923 7547281686492117915161750949713448437377:10:9722 3952530127379778649420609194712606213687:10:9113 3247527915110550441775380841506623532127:10:8936 1365429411429415392279424519764995751272:10:8194 2492598245324702153647514453067702036110:11:3815 9391807368370983342908233281860633378867:11:4304 7731013080055564622258546916326095888088:11:4228 3063735847248851088423069383983539815011:11:3887 6250817673059452890586111648715948042256:11:4147 9769466324275844784702268240686127927502:12:2150 3837163413982292820050801646934084193850:12:1989 4971263507827428499314309725074681412766:12:2032 2258401958478936486701462087001981443440:12:1903 4051260072478550555073307889526722917259:12:1998 5976117919549482273354505778552553244192:13:1147 4756773746578395979264309846738997552284:13:1127 7243623177174301221120395665137047083561:13:1164 8782449394800044371738173044090282654351:13:1181 7491111320206979513878192084165064306691:13:1167 5634628076867886609265577337615897754565:14:690 7363548695159048852710111466949712042242:14:704 2596618347038275894791141609831740455942:14:653 5602549738930824948453280423950320054523:14:690 2696478207401227520050498256311440792750:14:655 1959890561440845332856563921624536087570:15:416 5177619458594129635601307236881668289008:15:444 3630499240138962402172645449549701289112:15:433 4159484615946497421056310930569592255275:15:437 4498380021608268316443673051031979442510:15:440 9865113979196397451772930195390883094799:16:315 2389981662225611091551896697370573303606:16:289 5212824961920904541193187713218895357858:16:303 7520997537590936805827722063176688934747:16:310 5620411445253249266470906203778401372461:16:305 2284467325134139308841437124441169037005:17:206 5076702573115360246400664193243338802830:17:216 4583476045570655548063452119111238311491:17:215 3192048661772374546161607524449278767836:17:210 3722191126828505689020580849281902988510:17:212 4287961974096262116987373648359771918902:18:159 6450865364254195890335006306194981561731:18:162 9447769968594789975806235437448603366995:18:166 8091833512871203046149242568811107792784:18:164 3703375601034268913339788821668847428063:18:157 7859457544203877708620264323911094340638:19:125 2602428056980796761727990664131041178830:19:118 7307724575675796372153885049536262221464:19:125 1403601042974784185944934706522290659991:19:114 5434947213057344037750948326307163322900:19:123 5217939389034990121419281717204318442671:20:96 6382368473037112112384628393038417764945:20:97 1791534618459742337386089546454537590580:20:91 3884549000807072254969262649959382749097:20:95 5886961918602314711037922419341376127661:20:97 2075585426124339672810073662380763089208:21:74 7042487517281292772296780328258041735296:21:78 7378977993303601481110486131376857300612:21:79 6202005395753864853285219246412433302007:21:78 1315727920709793065805757337991299138571:21:72 4821659045734567513949804010897339365968:22:63 9317605587130022602173766408902570602915:22:65 7004428174427499627819179907468384634866:22:64 4547470852773192779804855553286625862493:22:63 1260266679356143925932868875228771724046:22:59 5692072001229489689734042320674352584339:23:53 7709891312194818453858541863560307237069:23:54 1672315738676077144844328397089204774917:23:50 9279887932306005102589121591443680035861:23:54 6008913104871268563485220302538717507698:23:53 2186821798064441618724534574032958137290:24:43 2748559630099531157853355211876860885734:24:43 4141219412584306134024573324332246401857:24:44 3944378714693917438653367192928857483797:24:44 2883123811904328682807799744515213054597:24:44 1615686407257561216437095867676742593631:25:37 8934624812750144548958773921426108181880:25:39 6111700879351643715180564583410638927156:25:39 2319042706856917361928940414452400988870:25:37 9985857428602429795212290632452379119083:25:39 8624232619753790158689077273573792211954:26:34 4913502697012945431327635557832334768701:26:33 2147258804008718723655917262885489535034:26:32 9608424415479063362304632255011066661959:26:34 1202808005734018206931418108874915101429:26:31 2278369092134458052559559624128998746078:27:28 4889881424766345733386588493929339949532:27:29 7174197400033913683598214087032476069079:27:29 2053402486657682952762088794499652596878:27:28 9411833966275747127413059009493181245167:27:30 4285079165305836755747053909636930881093:28:26 1978018853921690557991155487063138178779:28:25 5402402198718147491522876789662139234388:28:26 8201007208647020828940450344769423446378:28:26 2013642285885906887016118708312801642025:28:25 3166827448067760993850198500469007462689:29:23 9160891449812223152624277928774230405019:29:23 5743276512049422030732133158362383447070:29:23 1356759946207053292944381720018272050864:29:22 9149174518715169499428989755044453384862:29:23 8790790559011724193701894665266045151804:30:21 9499382904461559825022364214987457414107:30:21 9450498866107861445494917358630385420856:30:21 4488311609758933071859126394017185534125:30:20 3391413372988146689064854364333431213560:30:20 4980959211913097271146524781029319822066:31:19 5385635765269318116492067214301744729676:31:19 6892758690925373149088227855878267664596:31:19 8982084608536619673482228172464255450890:31:19 2842725748844341565842804994194502466718:31:18 9481297882201203057620909223295099802571:32:17 2455726344885884146357291509013528750814:32:17 4822580132084385315410826976420564220005:32:17 5464935549792602048209840331478181717122:32:17 4494621973655153970594464270224519373914:32:17 3878854308582005711803544594481677742365:33:15 3322338746248701034675293410982954330679:33:15 6620345588008707063026117115138646890655:33:16 5607774688435164549594808482504715400329:33:16 9964367755099280632308293154880000736799:33:16 8500344962503327393249441685618626382377:34:14 7004080501356918217199232656671381123442:34:14 9188618165784662982652265727494842641343:34:14 9721540635813862247543695039936653696864:34:15 2180169765763138283973963255770756590249:34:14 3890957849346342020562222006896838356886:35:13 1721367054323243888497529812367536986266:35:13 6232700818547174147674965463965419775187:35:13 5064681508400659372796036698848196321614:35:13 2464000670006617947927070192977897557372:35:13 5165319330266128027357897571204820122578:36:12 2723521533968365849001909745201937761074:36:12 9058853075148466869075357990457406975964:36:12 9439386927564974579081113896879465989403:36:12 8553510298189013724446759458854176077548:36:12 4544580113484968929592855252951290874366:37:11 5033883180097372508373542110019259103437:37:11 3881161641109183292305701593025239684046:37:11 5115894114636702628845318659714813698528:37:11 8237531503481103717227994051357896211773:37:11 5483374644780727915901086868186458105272:38:11 3183224389524601126980128324381026899103:38:10 7738199466832138052042928582823256909607:38:11 4169261625693876086072281797494375484800:38:11 3712097424144376732354467646322895542052:38:10 2333820351202753121167046593837640982310:39:10 5863966375276600555348334545135907221778:39:10 9728810329351077941161218526332834435473:39:10 8268417624297008203096167215706947745118:39:10 7527341511930914921848233801445978140902:39:10 3443078425220844474955145832392164828473:40:9 3900528077001159158921805655875293151888:40:9 5029252172126826154296212896630434866039:40:9 9915456784530864273238380012863791075156:40:9 3506413228105952837391386047985934505226:40:9 9705023523541292283492555995122458240089:41:9 8892146413032628026475234908448639569412:41:9 1963306987238890999808804726033189446380:41:9 4120338180299907462693887408163567750061:41:9 7095121697751921091569563333972018315361:41:9 7804260948783612598688191473999743497294:42:8 4680692543515128182696658517571208521269:42:8 9690521343661771097125008630189916874314:42:8 5609109317001770094184613919683477067345:42:8 5388016518122292859959551431221772331568:42:8 7637219332182070945143623006242969595490:43:8 2480334163550067752269287502328934332168:43:8 2315243713215143503250369339963030113847:43:8 9368311549653055391745148958278804702940:43:8 8265618162266338993613250260511445089800:43:8 1331087075799847147057597654057921411909:44:7 6846535241872734446511829062435967667447:44:8 9411038401626461035413787504239455299430:44:8 3444808909045405513215199222691463708701:44:7 5942476726687929821543229468372048673008:44:8 6997411052047336550727141966564640611426:45:7 7714310295397175952594959664999037890291:45:7 2327474098048229696506808441932825409441:45:7 4180089878031091826374803074323655611734:45:7 2049726490976274369118003115268812297449:45:7 3197979717545090865813901016859314210600:46:7 6720824774828330954232836164901792244638:46:7 3049163613634683609197616094598895207452:46:7 4627755713591309376236084311401317079065:46:7 7506173645940105117990834591954468791635:46:7 7097786204087194718937207097565597395361:47:7 7764778127733246990211390814946422996384:47:7 9296128026476634751120665090596419651442:47:7 3653368067242838538015044295199691875644:47:6 6998372709142857640711121871767024615722:47:7 4613684767971148399022441768046653278939:48:6 2779376079603878146303350152401875430623:48:6 4421301151079278135820915559391486955840:48:6 5530210354359110924998114470150413955342:48:6 8229444012244433811514506681989164671864:48:6 1265632977328166072311123827571371217604:49:6 2302924167081947843505003458808552386997:49:6 5530765156388023509374028722188989180086:49:6 8417808759888762923188434700810995251731:49:6 2046663050541078983686362182612646924019:49:6 2707663676186890651223363637332834235297:50:6 4612409778252029901354194311926736148598:50:6 9378059339408590546483319856906258823319:50:6 7038646840935905224814163995005414194180:50:6 6461365399514704530797780203965647170766:50:6 4386045828353856651225097478594403361296:51:5 8175875352299898820840532698923650950185:51:6 9118630853197360937748772981484963263087:51:6 6574752895016282053960381372462661248866:51:6 2633278186743754007547449456803750544550:51:5 3337631313586081743150475839752832569017:52:5 3125754848098678709187104605772611356487:52:5 5536112376947733732098118370422263054702:52:5 4777765897240278001147685430759673913238:52:5 2627475260759336276453896821263766276870:52:5 7050651953496184396491669307561509217988:53:5 1222314369691873993487944602703835036199:53:5 9487350226173696999970051600245359140218:53:5 6226184804574548456195361707133897571321:53:5 6246950807045560504879470942402201755323:53:5 3057511994449917818765160934302320422528:54:5 9856579113553190618389943797872222207010:54:5 5665603021561679463740555823845755313309:54:5 6820194328108811122945812650757043135049:54:5 8848110565017454419711293926483612657260:54:5 8874180434369974426827811280142616298652:55:5 9912681145940002092399100336178518933194:55:5 2144693006512561925948426783907856145477:55:5 8266364717886435914826024819998338426136:55:5 3802358435233917084029037591903638090224:55:5 2367165538121680121461953280727094581323:56:5 3615929797608546364447529599225482620598:56:5 3994878942971047458118871172905691878478:56:5 1955299515292489573805700569466455246827:56:5 4615695389068644886929973572331637131130:56:5 2903688022260049564075717051962548583235:57:4 8163180079570160754861225631179852580796:57:5 5837101583606718754527633912228978778923:57:4 2290563260949107657545726125793605284417:57:4 8027454660400369481198044432128218048350:57:5 9501563099578743874995548612800782649028:58:4 7512107452528768348935693366620028882000:58:4 7836403487278850940501135216252668116915:58:4 2073095033404485700257204023767691791467:58:4 1965802915664891482592623492632835194723:58:4 7796394428962726910323282826112631971540:59:4 2924489138567572942550223188957318211678:59:4 9696253323357517038574357616890670662202:59:4 2705180662364963341411342700312934206094:59:4 8414925657157630054479645729081329119342:59:4 3549563458306103455783731214164826308107:60:4 8846472060811110615743780872589651538209:60:4 7794878033123796678422345152339998641812:60:4 2724382396414383387543242053363182738791:60:4 2742966954380408619500146231818509038300:60:4 1607278774823598849074818597924768067193:61:4 6964183587119778780913416542980399835592:61:4 3675178739153173867872547739560404482907:61:4 4832285431769388435465304866005578503735:61:4 7162575852754960052685044595672646117296:61:4 1294515716063388479368284897143234829033:62:4 3246561153757747578605295955169068017431:62:4 1214237753435980159413981562374579570953:62:4 9049544958135200552654308299690240847661:62:4 6884660265015311135828968864098532439471:62:4 2055309557694656142325713091155456420210:63:4 2414940223341649568339630309735885984060:63:4 8653810516737682969438789132074265161435:63:4 6658150965739933387202088176944728993444:63:4 2061817747332489384828235657367923436252:63:4 6025919451294104321999301659984172258824:64:4 3931964416302968739947269099923028565451:64:4 3450788152532500637460369887428862067443:64:4 3173419965859137485210046880471356348274:64:4 4473119503091923563023768462100309759597:64:4 7648660364862400567505307952042330541006:65:4 4884174384778425083640302822075617081618:65:4 7291622044303837342502110645704054811300:65:4 8793715590668267158593498535188631577384:65:4 5962337588002916167800722777821596055130:65:4 7443906923444390431632869741640931905973:66:4 5401295331377856024964060243350383234546:66:3 3317914286946869094651930746482344782811:66:3 5831385182893312823573934072064969173652:66:4 8906825566283533817987983723317854401541:66:4 6191071587813388071506026384345811779637:67:3 3773581914544182753983228978702704354807:67:3 5892182598456716945372132791406145809532:67:3 6590237789148608769027992166104394461765:67:3 8332187133287401689116846762909562648246:67:3 5435513441712357910254008759306368176633:68:3 9121869098403221954753477718055146267420:68:3 5625577407710204648156768236337548232968:68:3 2289720830850144218229106267563313488882:68:3 6900554841229796499444193504424675470970:68:3 2978761768270568454840235443785091741801:69:3 3628405718434067322442305716760834550277:69:3 1131818167756605520986509719009218177146:69:3 6236918752332302554793927297946307124783:69:3 1202460749275332628562976045989388185270:69:3 3532799542288877564546105824923226726748:70:3 5403087135922006810943831624173839080112:70:3 9596751361389898993180023269512430574623:70:3 8341332979122647863191506270750521002429:70:3 7590239375352262354909571320267699384739:70:3 7409776777488787601686973469782106267212:71:3 7155094102487050409197041161798065870820:71:3 6315660050825059290065520260841214596009:71:3 8102809436777945550751041868041443194253:71:3 1153009887284016261104452363326746127947:71:3 6798816160301782381968163166070645852801:72:3 1826208637422729186717348245031576347444:72:3 4406462451756877683252798335418041055286:72:3 3996461364562695863459914941945917520718:72:3 1945478794081484222842024712400552406847:72:3 8317745772797065957645907569420911723105:73:3 8221907332200501117733422404556539853176:73:3 5776565464395831018436486672747004963279:73:3 9595668721419767582238506386956561302588:73:3 6771235767822709297052651659462597686342:73:3 9527621015683234819576060238853869806482:74:3 9841932938906946441557865593540467449365:74:3 9589470895263959686407786755731417585172:74:3 3586809122369343185899988181235566454197:74:3 5713645714001771376901307219599997177359:74:3 2799748326428552734881087749125320677024:75:3 7236045357057571542537161107945961851385:75:3 2929094722461028250426424324139937273401:75:3 9713174967966807030862851156648992712461:75:3 1250280098974745905830639791835018793642:75:3 8665162359454607187950771577115311948525:76:3 1936093024099174372113663058407663041673:76:3 4594825036023694845480969723158164122455:76:3 6638906632419868993604019127974111316039:76:3 6812987927794574505795861630981326684282:76:3 9698257912762631629422374467921325457760:77:3 6575854377729333473245731905891107693416:77:3 1472224689314982741924257245798605096585:77:3 2276653737776732261048660769415870787813:77:3 5267085840750072424082309561271219407706:77:3 6632144578242196658221558857641634206058:78:3 5141416191962275848394366248751298485455:78:3 6680298597977443448830230254686552785032:78:3 1964796524272519143718348632283115384484:78:3 9806139215246346916497247832213247602368:78:3 4681177677051256346380316890815033014484:79:3 3351352617062701877312792288231048269682:79:3 1123847091942683723300109932677658736479:79:3 1577187726866406272671685418193712661454:79:3 5569588418152097692433798675503306599968:79:3 2402688471254946167359850798039553652128:80:3 1442519589270066754739659829391110571371:80:3 8943893072402780757082066369797144942728:80:3 3355033730493791685790800380324684666411:80:3 9316106804561348830986150869152715584169:80:3 6608943835077305564379300398880528244279:81:3 5389544330343282309422428595214385734112:81:3 6369920198512322574059934510222236976772:81:3 5873114663936057179892763858056913767502:81:3 1294825347284453520404236386132657343811:81:3 6734309776085196668455662531688602102635:82:3 5990046682838601012944401926251572710578:82:3 4281912121586165049399154230809868982368:82:3 3472210313399301005239724673951995250383:82:3 5077532144916281469138735216110561334414:82:3 8802163295775088761741844629158605107637:83:3 8462869086697487062247341905146114038546:83:3 7431706938036110330450341192503532597936:83:3 7732186185293156019045597037224187966535:83:3 2996315117112864598746725126063188718451:83:2 6207367580656870122795503106796153353585:84:2 9439775102116795321323489192883295866508:84:2 1255717929038374570702993920667529137379:84:2 6212232965259447758173637513372366944584:84:2 3850700390214935315864607482595634686984:84:2 1546389741434978414438223966586453861899:85:2 2040638294170927208174803888493501441269:85:2 2298058265764122082545888627673472795304:85:2 7910996617378921629118645413056367910925:85:2 5246252363398343745745489001031710523387:85:2 2138370491326533846824718860127794642388:86:2 5667535417442488229892060555674071548007:86:2 6622582183248402337932547588699858372842:86:2 6117250930230830302350014704359372088177:86:2 9418705830118687279218073489506970150421:86:2 8402983103656948261980080914659081511306:87:2 8990240152258633866179796628581193296936:87:2 3089465825924037137795427231349647707737:87:2 6719512656026199738554724133715223663362:87:2 7621800692985633862695068546175810741983:87:2 6429877208999170477653804177181501974836:88:2 9070932413286895148251569063974094826250:88:2 8604209312182853768099502307954504787543:88:2 2505652990915451706246473441785003626613:88:2 3459131859740563174962227330026440099749:88:2 2900189725720367233988310772933752653391:89:2 2356126986846789777016872779681484473614:89:2 5118189209268049921206920417957484776206:89:2 6610835094525467778626299925581276337712:89:2 3506005818379209868711028475095015809703:89:2 6794664744631586836160466850191244436952:90:2 4576772496621220179102721776309559440398:90:2 1138293866545323959149236345454925946536:90:2 1341559744135060989370711699103435234557:90:2 2925690245134290406256136494596115723283:90:2 1080450308349141397488194982450423341359:91:2 8978842180982174626897400541336383387340:91:2 5811095605983734742638862213442123885645:91:2 5562095256242630139998249881459124996122:91:2 9828952147280563462463143300862181925257:91:2 3789133724158581235390907277894621986469:92:2 5220337375646114567410334942497088788618:92:2 7559910755424098613061130433614613561436:92:2 3888687053861441049041815193907031417023:92:2 7602251774504984107375044866204696211973:92:2 5211956885698399058132617959001454977119:93:2 3811788360045601186619365880114871550909:93:2 9267150368483305011081167147434003324296:93:2 4268916781847339226714304796971447868152:93:2 8520552125351522166469692644666714009259:93:2 2027490722975683827079776603772939509191:94:2 8523183120436376687718778615690220046412:94:2 2482724839522753737980275941095492748892:94:2 1441808008744960350158406284474176974993:94:2 8350573339299331387436371016027311316297:94:2 3979094161055783237774659927540442829262:95:2 3099369836546848003243602400919830532249:95:2 5240705896607922778918472445700691630726:95:2 6701061071536403860257173026293892579926:95:2 5122008752343344678037593065672644424358:95:2 4448185547778777371081619807942654886362:96:2 2578666893270886455536401748538877557426:96:2 9909416625719539072299814449889631293883:96:2 1869712785841590356235242417127744718663:96:2 4154405699587071013946639314157594511916:96:2 1278416285986257919776581239980209935788:97:2 8106523525612844046698288587325575116430:97:2 3775330185801972061984328735837338547959:97:2 5344330810327115636354627945023102704672:97:2 9199365071520912876121536663722074958617:97:2 1503097873369413345431036782156685305797:98:2 3451655418630523969518030655898308770446:98:2 6473414118624597277296626672595017540419:98:2 7956259124275841597995880071933063097336:98:2 6800301252386525229223505479593821848614:98:2 2553883566860980436260301043381188694806:99:2 5115197801437391458709586280414910085344:99:2 2260368125556397806954635319617907253225:99:2 1180395858620947280080523164471852522375:99:2 2009743523501572962678933094424208050971:99:2 6068525156147621690807354905798357294821:100:2 4202336360742741035949223557408859821490:100:2 9689441689837888013386359167013731264182:100:2 7764203815978349577863939330596310098655:100:2 6561965928258524723606206312685807648739:100:2 42752731035551474019716017554635324983382:1:42752731035551474019716017554635324983382 51057868454747596793214834187939042105155:1:51057868454747596793214834187939042105155 44969316836527383063632799033377233775779:1:44969316836527383063632799033377233775779 77743500007196914550053363860441888107286:1:77743500007196914550053363860441888107286 32137003510594378815816970804259971741622:1:32137003510594378815816970804259971741622 34541748619281866214971654013458241553792:2:185854105736951278724 73306803317072795853814937237019556370411:2:270752291434574558530 41061622432982822722694460414893473214148:2:202636675932524176221 10648865134166479048327948599061683998281:2:103193338613335304029 93875044762360888322122463714393403859762:2:306390347045008727576 34607746431310323946543827793116311060374:3:32588004930999 54243645727270342159281715384131893368369:3:37854393320763 81397700572718299699931219570962494870098:3:43338184305478 70285882238234902218979446769770041809890:3:41268881662687 84560977660345265298033001338397191768627:3:43892467727744 86581508305858409031997687920369758248697:4:17153639819 21405996067524955901992736427095728973831:4:12095779474 86782432014433232885196429454809477443270:4:17163582986 91139993189142536055239891801126737128942:4:17375097405 16858234885610094509371726870039029023765:4:11394703400 40209168306579321607949443622533147102082:5:132088502 99402107985130365123208879817667215696094:5:158299345 37839650580203365498000218992819293598280:5:130493663 90814697537690927133690185437599089165805:5:155464497 95548201571663385075489381274812715106982:5:157052373 38549210728838257470103624533610590264010:6:5812137 69986721588915973403623091829481673435601:6:6419520 73499479908632353045753927599190692103657:6:6472132 35026915247910401307639258311085010849718:6:5720056 11630603185794389774407516113351275124418:6:4759927 99629567691080189257960697334031902864272:7:719304 62323337700170713590043963100580119583929:7:672678 32373455235624058370071691490499079039839:7:612589 54381955753545803379419970065321406081864:7:659706 34208162332170903617270711833927952273276:7:617433 47158053134649757213556445666460999647107:8:121393 53523469348821077068712994774684165286849:8:123329 35374014335432697161619992568225334873165:8:117107 76373343498848519761232077656543291528673:8:128934 61855777078447846443776138436000684787255:8:125580 86210019132260585009104055754206251891581:9:35350 68509692084051466805995109890115811367675:9:34459 62220962339877571005939656121170883371118:9:34092 59395152941871159947806564181340379133880:9:33916 18945776463005833859086098993795176067429:9:29873 22816309670791865273646955076842743517537:10:10859 55967870083726819315743973817630725294829:10:11879 18207995708930907179330594402498746352557:10:10617 44270566728822415845962581121780171551994:10:11604 97950840918376713951280916911321889531015:10:12563 30009575423708909040462209079255610646435:11:4783 96577009044706016440568413653681709842078:11:5319 77807635695455561762836439873752240358108:11:5216 43697284293162965427244042639136698461276:11:4949 43724297589253622245602484355275569051364:11:4950 31586672654279956491868065211305318728075:12:2371 66758216462307993315607604939276265709896:12:2523 19287841694521882432914181173422022457383:12:2275 81509402311008762419310293559970266950345:12:2566 93328319494606238476638618555513145540653:12:2595 26880100367468182169402647889757119740496:13:1288 96918294101505092700285350441851291634860:13:1421 51496020035440615624150221090072699384531:13:1354 34753444314474599594119178145719960822546:13:1313 82500913163314930255794440432231521378245:13:1404 25350279786400223344953402362860578549279:14:769 33137200390614139461749568542864026292784:14:783 75750015402502588999344178248679345059331:14:831 46584776408501842790961510115111697896272:14:803 18611147889254578457579633843259956849572:14:752 17199982241059994080452392345137786956838:15:481 71956766610365163326831431262360224557002:15:529 38590396267652588264461356183066033672346:15:507 99412614885644376290341900957164764670503:15:540 64669980349310805410060357979195865808364:15:525 47037520711982756290933038590909558080221:16:348 61833833807941164656897536162658138999167:16:354 21119635051591562075926438153350025094705:16:331 64632307794491619250019333673858422374795:16:355 69695887579425117208526494926397308014270:16:357 83991943886526726146774222914882875804694:17:255 61579462610508199924834221183557169314185:17:250 85573021184701063340529399865904680591124:17:255 93529827031206887680139895013967377137053:17:257 29729191384555816515041415222707811515253:17:240 10095202857783135748735969826875135902504:18:166 93522034280308234443288409739549430737888:18:188 26330738599506601262549092737766629073203:18:176 32042563135957529626842215103540122524887:18:177 22023007310866495287022586646260620924483:18:174 48596140634395703439894120718645170940516:19:138 75966832991350002849843607441078858291521:19:141 85754154705343634926508777743370372235204:19:142 12301711259260547313732976097870233969611:19:128 52747873451824999076099706226941719503426:19:139 21078796445488830230408266488027764307200:20:103 88852001969921630769622879105553977576606:20:111 83336912521815483094406387192742005385900:20:111 55962482546460310076679934060166491210955:20:108 98913483968310641944222253007017119261782:20:112 51492534545449239115749540698560179382112:21:86 30062320773602280566941932003989832516239:21:84 70038726577527220012891497103338800928850:21:88 14619350971022648071823839211043232781936:21:81 95360554773772694990037803676882151623737:21:89 48661163131881993196152364511916732721011:22:70 69750821288860184957491430145054951684404:22:71 84984714155791492428745748779177160192093:22:72 59660386487627751889773177116755817075801:22:71 12363835852688871625391074554407861643772:22:66 74819862817810745146637239453319833559726:23:59 54560292638916242628189594138859010224023:23:59 10478641175694870475753251273420244945222:23:54 36400756803150564761362449837940295288584:23:58 13184170547603823929942930683545376006756:23:55 86589473069928035173372368850744002748497:24:50 94429987590263840270395312358828017647933:24:50 46928056695294793537293946708266195475305:24:49 80304080749102814419949528842384672857954:24:50 41913061855935625755327175001808030984598:24:49 60097191920833118658548035651556585859435:25:42 39108011865141654112369835066051291484282:25:42 49961097269764791553576447172201856646093:25:42 79658566973907176814517955473597251394749:25:43 40743299747243671057225177176636703330522:25:42 86866709822472440424804561695637127162876:26:37 61428580631791137466776785492860673661616:26:37 68203536801922315599883350363500788493238:26:37 21282718275169255567523147567282616431622:26:35 55752126731966914879845142971516140696505:26:36 55090174823892149133767860448955758224045:27:32 43345552237574895684314869020175359036266:27:31 63211365652716136057676122366755937418187:27:32 73803788651460164653664603008035246265287:27:32 84274993330627540428850924081118340727299:27:32 89429324836438304282874596542260395791127:28:29 68993912831005277300031387354389296673680:28:28 72787998261301301155419635581275526001891:28:28 56335727585825405015391136429553111445587:28:28 17897171762044002011176422535324668339330:28:27 70625359719337116121875334937328227881725:29:25 31631550119294319988939429237352185059675:29:24 45931031048645144819927346065238600925644:29:25 18352029963181595370057019865902353923453:29:24 29094392283944052078252663854662518677282:29:24 18686183296988910568947657071700393925985:30:21 50175464253109505137494733677974995999930:30:22 38192689231988621052813244253724693894827:30:22 62524449811586151820167292015885571533293:30:22 32156051341916667878033278434452647715446:30:22 72058038615924756766145880181622334232041:31:20 75293454708747208900504854802862263070311:31:20 69702023327485148729847690590133115786478:31:20 30274513636189942285664455635283687998063:31:20 30859044150410384983368484189070600390560:31:20 43450221210475857657768555594603344470980:32:18 88312316540714848969898160210501171060542:32:19 95654386904277151537306992394080073994417:32:19 65743820543998577451887020666856484179258:32:18 16092455115555786716282716374949406259676:32:18 65641624594939598748143552033546113583585:33:17 56937184950861590304322347657589363162493:33:17 21354438404850750794792660619827310520249:33:16 30299499739254409135651285920290511394514:33:16 59124814908862549189449578272161966298809:33:17 24219339516565183014286831257119951393175:34:15 26941088558794522293845312391372018794843:34:15 32835944288968418836406219220864297029246:34:15 57686844916992035490306515605848162485651:34:15 44683114473522510208210913803142343460409:34:15 18736155892915799970008838170976206322923:35:14 38882341228109787415537339080726183141470:35:14 43527575604838018382830234429566356601256:35:14 18770342577703028490100448815361015592033:35:14 48141961476876451788929093621534616723673:35:14 50965614141901592862966637472029451859055:36:13 27174161474548587471117583776597167014822:36:13 16060111326671746921274127486626582003688:36:13 38111962805618553928587452062270430433800:36:13 33261425610396803243055212913479499167284:36:13 70058215310262168549556298082232195004212:37:12 99584115967218265541718844993484085032393:37:12 49768780607296040951671926436006180803700:37:12 59910583534851862885308858535085691892288:37:12 97687793542525620840695010344207613637634:37:12 58432635077105559044871612813076801707561:38:11 63976631478625817304018134648792425166382:38:11 20460726378939563186668133374393521112750:38:11 97540535420916488050495657682991613051607:38:11 99320641395927540220129994129087661808173:38:11 46068667869476975547723159321437319983911:39:11 21873674229847185526383305219203088755832:39:10 37295003128030902001569763964243175475444:39:10 69172340704540820293440459741304381561770:39:11 50503550553184771144991530554063481410230:39:11 50408888017608268908567939246756984619958:40:10 63496962627075902325314611863537663414313:40:10 69589317972852783461916747752595487175435:40:10 14651711038683366281345906961167201300201:40:10 25565361228051777887310686886454030226167:40:10 25382686944113697867422016095764352479716:41:9 69449660428427965800882244199748000845404:41:9 77250782575441790978370305769769358958790:41:9 47683936979836534785712229355545156940881:41:9 26202951627474169809939992643055154308708:41:9 22113388079020741012457249794814224460036:42:9 38196746466715682608404713935959865654602:42:9 21233750030380251892706761913545295900754:42:9 95410148107134881643771985134833514636787:42:9 11414852420481838705568993820990096792756:42:8 85512681144083347133182421688341020999769:43:8 24852851363172640481634366389415484461943:43:8 98257620024661135754058889394397828431284:43:8 26919190425016486118578094162773751916830:43:8 79422593887737887956700542354653308325862:43:8 13967607833295167139086865851929202040095:44:8 31542642891559201907662235028283315946253:44:8 75366948788914705594190218997049172161493:44:8 58583397522644356361572170225805227051428:44:8 60712283122432744288721849014021533633328:44:8 75106823614066014223612499132149039637542:45:8 99204556534501473912283877515453807627857:45:8 68824980571709242055218478765023941677859:45:8 98954310164334971942284350821346056461686:45:8 49228910155418881541553134290062715163174:45:8 32255120100754631789807101356732946900657:46:7 50442551448137393326269915149764412529640:46:7 86216206762517113809437512245339322693060:46:7 58965060022824075504715064215542097884983:46:7 90658520715473186780721322310055074434847:46:7 27773909417183231278175196634459035965741:47:7 41138686562755989179753653579501725932005:47:7 57512328025089486929351592242641608065140:47:7 94913785947105355422551552127921764016359:47:7 41066929662455121508857408918067922148058:47:7 53074185461473274699533691133805516757010:48:7 91756057466517773648071056615640307660153:48:7 61020635329390407401171407214023679091799:48:7 21298044530425473900134103712216019576457:48:6 13470366377461102044632880046958334071497:48:6 44468570655733630632899805637419625821721:49:6 70895010669919683078559807360719967983888:49:6 59993525273832296620809989339009715577759:49:6 67310179858070240759126339898835770685513:49:6 12775117245647540547350568948167995493451:49:6 32964432790457463152911237977358690889681:50:6 60275229467105163661143840887050747035152:50:6 49841236449755784991682996646665280447290:50:6 26936553127846939375530271111262533213865:50:6 91974493748590368060251431966165710913325:50:6 35439617327721092412446328095271310403767:51:6 87275916232218851318183330625277982398200:51:6 91964019183941930486036488864391685684503:51:6 10766947600602543769551928981822875666618:51:6 49301149369280225288927178791269736726580:51:6 27891725392202725286187364785501737885705:52:5 17197451713554649098417974669902487423093:52:5 93625649260028137799516322807731704522624:52:6 87403266308681499901504122398207503188203:52:6 31309158497159360095102367621141788493310:52:6 73424127426478436810523127111611739808642:53:5 85557456565893244164248689995366971218776:53:5 77111947133498376668294401477430044552292:53:5 26349369334839819305160123279265924992972:53:5 32055220126813049838318700230166026670487:53:5 22628130578340362048493793162087786719091:54:5 21174967613372026940329159358956669108724:54:5 53116893544729401554752799819262667466106:54:5 18864797290668731428292397530162333304346:54:5 54554032300162088490639438995731265186254:54:5 52793040321369123544871003192306465764633:55:5 42705191645410848869485354215365883795273:55:5 67526546958955033081438512898369147489368:55:5 36419813429796383287821492583028017980219:55:5 58051714543730356084345272491504511406871:55:5 70701700261940022530386763053413423584619:56:5 72316255565344182901095125160383153876671:56:5 49877677474185714082288207285006129416957:56:5 72967274775929268051638087936693766370200:56:5 39294728276803131880770652305850844564628:56:5 43185766006658543231638857108733774903224:57:5 53174888869023944269212989236985609145180:57:5 77069855743184405876787357355970030737342:57:5 90962987595184545152926018142624424901042:57:5 49093034134387254032112984286183926529569:57:5 13600747082284765745929521123645358154616:58:4 45712584658024194637026645403033894341924:58:5 38575349166118853749568995243767148193011:58:5 53826351342383087018768511719179735341709:58:5 24610291733150216789562211293270963022923:58:4 33471001837068105186129558110076672629727:59:4 33875656916912828591546745303004240960398:59:4 26945890460664882197799508705078129775726:59:4 56380985460992476983931716307036705717195:59:4 73755151026831819287672911422131600729955:59:4 71884006677686119118610862621863462792598:60:4 57338365573416547428849836919376395932224:60:4 75803293524058412704054850954352780338125:60:4 40315255216251820488048652826975333120689:60:4 58167885098775175236559495024642113519520:60:4 56587022980932976187214494625188646796480:61:4 66600406475539221446788139307130214655193:61:4 25690033155607104546206837488126127297562:61:4 64970803003513449285775073483352478194903:61:4 82295183467001476479141730848550999288520:61:4 24772398502869755037538766815540774649595:62:4 33816892566083624760230578836754588932430:62:4 51194413588819655322802634133204133444391:62:4 13319562122442537455715413659719298069399:62:4 26098906946034958052203716617570365580554:62:4 35287978026152589133771340081781946044621:63:4 34844809599456114801018020483477022029902:63:4 93231569266702977642828091098876477656387:63:4 46742945781178390101215508602854995629332:63:4 54843330547834302129787263167838007998829:63:4 60267434506425335864803316678302644312904:64:4 76442553238725357526440924257316862598907:64:4 99339976384073054557965642620383700385179:64:4 29599167555660849298581488493874141792403:64:4 26626809525124318836194355215195811700833:64:4 48204977362724079778264248697113536723893:65:4 11352366117330536372209925461562688322041:65:4 39458149094664794004160043510268363240870:65:4 77034534013510994517110126766697321886605:65:4 63522467975581098795768131909827941371895:65:4 37511324513877251045530519827727552864486:66:4 43995693440392777145159571480376670990866:66:4 49757920458973228426924888450510978542670:66:4 13852223347606173806976509058735581406478:66:4 21727381630226324571213622581404241228144:66:4 47609626307125114297027074519661112366516:67:4 93981244614280687992317324419269727176394:67:4 51786015883488851910364126604535365821038:67:4 51468855319403022941413755667597860287326:67:4 50009856238296805880112987237799474586189:67:4 29248911798041638384233588970966184282873:68:3 57566150294183000319371514763767828804592:68:3 89593673908568426052192282503151556228060:68:4 23138099876338420534767004389591960664440:68:3 16029393666619156510116574722677384560602:68:3 16311500035145563355943916952589584305711:69:3 13193166708097273744756769436196990085481:69:3 44764075709206939186084021081047863069881:69:3 29309273594207254613012813141185338450544:69:3 49149841679833631086281886886457127931950:69:3 91460945484266013632249192121360294762665:70:3 56299515279167066209781661219948909046648:70:3 62613214308871067520596688036008068197183:70:3 39389876198746970909324978581634142705009:70:3 47010913149825164944783683204509341276170:70:3 30288918037747000385662081970717969047218:71:3 63351906084413403170538176630542084438391:71:3 75618826050524099767517456247657272340722:71:3 39849829982166925344898087626386099297681:71:3 41822180651846891892650993042542109856678:71:3 18554471527891080584978290304414085125046:72:3 96133672670712890807003167819232802229298:72:3 67826107741509515079728663831758392393620:72:3 30136639989303299683495231228376641387852:72:3 50359179808511623815433516554922641288938:72:3 11829446541172738804550798226836823935486:73:3 17489259598601551704823288743545450681483:73:3 48055562144746188330344938995937712667935:73:3 33913790290766956291558661779602087658280:73:3 87352615769825813241869867144320329524584:73:3 64542586064531991736323538068158201264815:74:3 34599467438143506099294477660674591407511:74:3 81188670261869195765091647961265838190270:74:3 81791539271608023624137866346416604351360:74:3 13481387346542427695450000873211844147924:74:3 34598404493803895376561473268804401330403:75:3 76842185146443097674186326779383120645574:75:3 38382827752514444105214570232843835183271:75:3 37802309577692837701388367112445429921298:75:3 40863712357541853757514865086379270765279:75:3 38848479250198666128525955006945253607923:76:3 76113643201108777705119123011357146024581:76:3 79773784530725122794697317365088670641262:76:3 61248656185896467121647082307484487673307:76:3 75968149914256269187379070951734109897581:76:3 24808556708511589093012324404632695940925:77:3 30095196787099358313047210033921105211969:77:3 55756046285133420639459079412206307054170:77:3 87664111738125746581851721249314220079378:77:3 67329734654459751408373331132936261287847:77:3 65968450455622960636572292660161853907299:78:3 26874964880093287817161831671018905243184:78:3 90118928087354858675974764870210967924470:78:3 93171820545419979832700770906132669422428:78:3 68246515640004264290022162480137071397787:78:3 59802824338562462036063973868492751036465:79:3 50624821531944729987532505176087220068470:79:3 63905598596352520684457240604192557414081:79:3 55933791490700511004097805513225318294508:79:3 40818364681292876097734135074415151822975:79:3 49791830711428293177452349967963788669831:80:3 38966402585696194155317105215582141082492:80:3 28287083396333372058705808570360527639569:80:3 10016792009541910110385836975412897395769:80:3 57445832172146549862591313001167479054277:80:3 52308611058530671864029590332041828891163:81:3 94133378691984155034805073833351146434902:81:3 54310031147471808009424858927405940381112:81:3 94135050651378905534789532016545037436423:81:3 56276753081359296595208045384209117530768:81:3 76727145040882197761284891585343590913831:82:3 62287654466906324526611855124998291386390:82:3 37594960978012237474467952651456252748712:82:3 27586545734250670327305901909291118055105:82:3 22374296413068119028151490856456435521659:82:3 46339728185118755452707799283251069140933:83:3 26272171351018638137788707495491393045199:83:3 80501243390566922310531094530738585127151:83:3 32891692230102482675795916191403269442549:83:3 54354739561681339176782121003377533507819:83:3 20254196235751791438691255401693928569066:84:3 76869559347784285353103351271052645225579:84:3 96888083271933917098480311933682609587319:84:3 49280764690154498006896562954179987362137:84:3 55229865764908591453219000904752648347533:84:3 84591191792699633728444487220909657074972:85:3 19306021744065638902442967488542920491234:85:2 52000320191461592661849553751562126070470:85:3 26232195974065236400981449059081710077797:85:2 48359940494779415486400964733730441577193:85:3 47720191225573439024000505855815898923713:86:2 99169919705883192182934494476644180869903:86:2 19744697062083710414610959630693568128880:86:2 38457023464776019451102050710446288666195:86:2 27922486282383059082184408086991392111404:86:2 87542057053686258707747433287357161758768:87:2 13782320744256670914143593448486630037337:87:2 29875254242231433140408366587877311653481:87:2 92096830988447854272278063102164517000001:87:2 37796364144359310645333289524302037188273:87:2 83504260941884335476144677940041799410992:88:2 22794546983894095942738609016447881896214:88:2 81176525885110222255243623557795502693638:88:2 27847714277506383531384812984588226991632:88:2 77207078795889534475787504088161968203189:88:2 99032797762825408410383345111207316168249:89:2 98401337653593617753668091343058650547753:89:2 90060802884365131699711412158626239263214:89:2 34820731225747599883701585435346172991956:89:2 78288768819257784994664986407150213129127:89:2 57440816827105240654467380624036371553865:90:2 27931866827250486620949019185196774073081:90:2 27060795443461509294109920857264499904074:90:2 76254549592320162335044067345682946764449:90:2 85349755317162426909089858969513483987787:90:2 22460216915324832948606089695545020802120:91:2 62326419051083292611464367081980516760499:91:2 79953607898581713558090097637237425327432:91:2 56026641592529416237347856893596360271948:91:2 17124627112088000375872752461194811498628:91:2 70171664174422375845819432219306415493639:92:2 94700513109079910834530730157444715683863:92:2 93472743424489621302421843371188150210405:92:2 25265680790849404930673589555109102892438:92:2 42498293031025683343106564164788538128963:92:2 30843355534822830497087185349940360430929:93:2 96483370486883250694245136421429696477119:93:2 52117853749926099387813355465735562815009:93:2 51516621848254333884969022520424720566628:93:2 70605946735293567644764770142275782852338:93:2 76357576647431544715093857468273630144852:94:2 52473597654776334626090087798877446202184:94:2 23413685484407888173453265081263897772106:94:2 73270471999106862457932657106429147220845:94:2 86775795465225770789819360599179736417715:94:2 18553618408783655436885295383002804055105:95:2 82509528671960400374692300252555234678091:95:2 53236286215811020184400062424963469783322:95:2 67812274325105303610091022823563188333632:95:2 45337215589842489318921162623184972022406:95:2 50472539967827179312929523610685247585265:96:2 65328414753911820427337170357098913151052:96:2 94983923085324750591344488563755983733293:96:2 89016153716301211317119646226632418587393:96:2 88483390668597303890742901515898446222524:96:2 12851353615332118533552303639361421811776:97:2 53710215675219436913767497069914754941251:97:2 73345364657405816648100567753184516039136:97:2 10708434415543099610550756964100504925454:97:2 75794602740473486341163468224424742736753:97:2 80526472468870209622623489372891883896956:98:2 66806408993320911957858821728191954137643:98:2 72516444515062278478297869237995596782587:98:2 37601970057428508663859486018110055700804:98:2 38313421837186062052969007231745637939624:98:2 64154403695847606282659660725860710237582:99:2 96268491290611903732333382752328482174073:99:2 68627793918081807777851948284726743001981:99:2 74796181385325876670723030390072149061924:99:2 75645100017498148890992974572538085621942:99:2 13370209065915107901745167790355362962236:100:2 24953445817059799401294386346072706186476:100:2 88786928052554198967997651358336944824075:100:2 24645335397941530605973582962779450324239:100:2 11481580149222895357401971772615074779593:100:2 576301675129742964631900018264131247929204:1:576301675129742964631900018264131247929204 698511494682918344533157069871862808675127:1:698511494682918344533157069871862808675127 637995253415935530095527026856133412598437:1:637995253415935530095527026856133412598437 558026280369138630228112532612965462399710:1:558026280369138630228112532612965462399710 580229846063014671150056426766221581368146:1:580229846063014671150056426766221581368146 507262268152495856794306378028230168692820:2:712223467847343441350 845405888355672866758909702751164427315605:2:919459563197682373618 575288870941139995232486360188935412909588:2:758477996346064079565 983639534555248053241740531928229093325806:2:991786032647792460955 413401005813775906033520804145492953403903:2:642962678398813367728 382531658290656923402444933260162571393458:3:72592061142619 803204315598521199877330097401019385539824:3:92955554188974 923294975833461968468842091962667453559194:3:97374855029542 196476610378366650821357765661302030676730:3:58134903024924 325870083666147598040204803067311043877971:3:68814743808289 809881379333847415104621945067957338796434:4:29998901600 865158750610875141395077461696480000529178:4:30498181959 531184979613336996959805343011982815800727:4:26996747616 751832562339599197064873883776529515697704:4:29446269519 910943163849270177343813299827315500387693:4:30893905961 508081394764853012859590213002119231443430:5:219374759 154070298461541638264879418684212617247905:5:172800018 682472570025298763118729855277277349656087:5:232711068 906821779514632719591328453512788704030043:5:246322672 302285381178526951416324185539871619762204:5:197734945 829474964114160693200906180519740035601513:6:9693200 345057613575590061921405528508620278145663:6:8374944 272368206908991502559039836628866798879143:6:8051177 281323480551441672508014705110872630293051:6:8094704 363578635084334780017781029237245704842237:6:8448242 422108261588024236453704912368638613454227:7:884075 304396097808325893488749240676462470960724:7:843734 876656805023499673943363322054099055723534:7:981370 125695194949536694712028133036249582247064:7:743586 818209685570590979092165264983954263149511:7:971744 125928007270896650954190199050549392691501:8:137250 526482793206909722759111741359959916119781:8:164124 723834365601253832457813653075111092380382:8:170787 801785543140763499059887328153684900948577:8:172984 487275329263266802495805904430419770500950:8:162544 159073105898202266239731077694782787806030:9:37840 401338408915409318135540870208294631100696:9:41938 697880439036352116737049381773190653863414:9:44597 523243141094226252515440314728568159663840:9:43192 681306641705197138584213260457679382257148:9:44478 255051211862847699062530401158925520366354:10:13824 162165829444550023446124617985549968725154:10:13212 671470013641243248520930584950104625419067:10:15230 557552330878323148385076165349082293617354:10:14949 475465778958180363315407850187089401111038:10:14713 540913430833997952950480568053549427310595:11:6221 972650048188686204538464059269131920592056:11:6562 269415557974458884747813221758762549721422:11:5839 689098178053761884684233898007092777973723:11:6360 137272835177684523233394674677096989363815:11:5492 817818388387456668738040210183682030888669:12:3109 298869823371368684618883501118863119808137:12:2859 606840749090739825861165715092241392802978:12:3033 512057022051028343020440577526457323320390:12:2990 117257539230665456556760559658100196070471:12:2645 235141348666728935963413022424345904467711:13:1521 870716586563963457334537962657172705613032:13:1683 432341615006072617698437676816605851914250:13:1594 767257504964309275529444105896357264719539:13:1666 593366942448612445478157462152917506587174:13:1634 902381223272903330617274801582596764685345:14:992 131224789800900998313488634277552623116063:14:864 309450597966453276708260434425782615483312:14:919 812504323456711360621133297682659836571202:14:985 949792093406153196087360275670518779353652:14:996 699810210724302440944504902636894562900550:15:616 368665668560862985166472205567657645335246:15:590 849332394343878019841662070185021993208687:15:624 343217921243091918681670462402042011860278:15:587 109880035010795133199151356955408968587586:15:544 793476836342716296379092060753359770503171:16:415 927399150303786123721301759245546478864646:16:419 346635547729929028867801426405569161580225:16:394 692059664075130617726594389551598434886201:16:412 287079812872662182753873034939172154691397:16:390 101272173976625407598502143559879033469074:17:258 397729526241913603074303896909487596228432:17:279 428304437586301753430183887954545960041494:17:281 177633099931855768276412397992060821815400:17:266 359387279054433140814414123167217272183397:17:278 596715408268066305072257289673227929932227:18:209 678151633010737672141593535571499187467496:18:210 716042952093621990109603257091125311823754:18:211 491890117881687104446715276129624938911132:18:207 925789906436914530894959692415625485340735:18:214 609113327393032418688827881680159742510245:19:158 919646629236656704234284150015659837481593:19:161 221620950100151134876912409931530589131585:19:149 539666351222584998377039443804787127759442:19:157 561593162671903585595682148778505128407996:19:157 147342332185610540588619189573258320217001:20:114 125906339401711447461666473711576356681259:20:113 571023252973895174928522518730550106176285:20:122 874832515136639170564653137591257137282822:20:125 599611433153097429559401343639189857970495:20:122 796625923278101404125244008372680353540396:21:98 461339480197330330482215961667587507676506:21:96 609029140523095900133624846615350655479163:21:97 724200040586412603525182683807304851958555:21:98 378404584296861508747066898275421132616865:21:95 540143272688997817176961701982994266800620:22:78 687181796822641122782972614500477662249560:22:79 926956543750698659860675422718043632480872:22:80 405714105423502826417524769301687431463995:22:77 503127630634328986671396749887437300390760:22:78 444783854904989044347373528207923387042288:23:64 441615786313151806234228832718042835359107:23:64 713597351540227444771138365155518864049168:23:66 428744709087636068255318195403399110226595:23:64 463945443178446340575744783210057092354917:23:64 591387649033965992646672627574128425855327:24:55 708547213075734118205770022816708095987407:24:55 894685782688807860601394260665216212607374:24:55 679261242775693594542114374309187112211553:24:55 312479636775181792574165666588873572849723:24:53 542673190479837950118594136867596851274801:25:46 444834523920458975996292449900624833569876:25:46 741764155266211563153596120275057289302178:25:47 243020379351088777238585525688295042822392:25:45 430817849078536491603432188211193311266073:25:46 333459354313247581974550908226642585282950:26:39 229204074300089567301751203647650338215184:26:38 660938467415900846054186097253603015471815:26:40 419264952291598321838204171731894910726036:26:39 571148337499574130118428359884677747208471:26:40 100348922056661629806569062715265119300705:27:33 301897424506309328005021107671153845019527:27:34 303279326541127161604643326451663203174048:27:34 513514339463274204671004293792159386362168:27:35 109597395830655815865555909963167865590983:27:33 760847879221914827000119127941565123398201:28:31 722292944962716572403167248764729448597037:28:31 756083041061665747128523905773232916276913:28:31 833708975454274959585484103225211998537923:28:31 181609573322013113267214813375778280977093:28:29 838194596871672143283511682751249055029795:29:27 412985777142455034306614525517035549894340:29:27 840137262964447141152296202505077574157214:29:27 868372328977131888002486917473817885427664:29:27 898389011071081837595684618751986988677533:29:27 461252311763101539442285872645698308484636:30:24 193615959882985559105498047468571923749997:30:23 935438005780862558496984134528408872829141:30:25 767016152405570616205915200222491443586901:30:24 287698411547918329873061780908906652240687:30:24 626710830147802568310695979454444841103052:31:22 591010727138298875124447930938198855483822:31:22 242069535490430228168581446114257355407589:31:21 418185702915756766145859729198502660707879:31:22 908962329323901363969671296747035748620765:31:22 575980041105627301603947724008951574515149:32:20 409513737717141505190537685078781732850127:32:19 219280588856672967829676954647243660372990:32:19 646403209801709101558511466817149684928090:32:20 594299035556191705955274529283971770534470:32:20 403644253112489626315237390283927647683840:33:18 703952634820197321822706183328578585885408:33:18 395799867785980900404576946249831828838044:33:18 863201236947139168773828814034214201187258:33:18 108679189126591915815002504723172601302605:33:17 729988017070220783313443413303460485877383:34:17 485916071842653948641771679598537961080494:34:16 903493875881847248530926126987351810089730:34:17 160167328421891634180896986156867599391225:34:16 581602414757950208335422424338689821406382:34:16 523000946407577751470516274271195847530273:35:15 159574149543440253680510558768986427774860:35:15 718885021078978725279979517832734399523412:35:15 418990890635704566517390939437377009601708:35:15 733039428162854545337559439543319701897364:35:15 266721856660979697753163317324175698363830:36:14 690512890028277392221847176656993146630766:36:14 523189352799696448913161364552041535249648:36:14 843302765187578710524538291671813847305703:36:14 656738797163090572637857744810938681397779:36:14 896647360195855441706855155518273733659423:37:13 744178731634017203318102236858873026117671:37:13 558112816674090592536320289901989115179482:37:13 994460403687956258177616190312142220188984:37:13 868690428894670906156152390305871224749760:37:13 900923338836789771187237175958867978753939:38:12 576514759602955574421973139479851229480935:38:12 232290281147706642301758358786107280811630:38:12 913267266926274452888360389076689112496594:38:12 409937416353578611799348385835596669666174:38:12 666072700041372502225807751981121868037150:39:11 909221554177680775125959252565089793159270:39:11 838371072907411741194877260013530334827652:39:11 206791131758682276458101695415287967907879:39:11 107215490143215296481953281287791066529410:39:11 458173691443521116706163877639745850804387:40:11 330332279212363652618748393080664720071928:40:10 221327219261307600428003922642793854298446:40:10 663943977898172578411372054858798752666280:40:11 318799741347952310143675681505939651103567:40:10 147474529997930342722675229104244856149054:41:10 455983720006479224753894715118271202892476:41:10 618080145118152636455170913194131971624425:41:10 645100295319035602660125469775266605583648:41:10 842977832902420983625487322335300078284738:41:10 409787950365396523917737874004647037812482:42:9 534990537838361465370347262404584594585796:42:9 651641203698701694885292884737892246350743:42:9 351112956732492663183763078757994828079723:42:9 766232756074680383630703090621318431811520:42:9 761523708229856654093573603728785887245835:43:9 331051508257989398148960187507353775862705:43:9 442209214604641611710615486838678172223096:43:9 609108222323765441265561144017498686413762:43:9 874826506414374079594147147419383304009042:43:9 412917533692934228473032804128590116763543:44:8 876552468058543231811861865273800228294863:44:8 309731474692546305079037143380439745650774:44:8 209973676468018129521095399754357042412853:44:8 516061874730756913929183810853951589287977:44:8 140553744343787264851537877308303111746130:45:8 685403170731664989940282594220241642237465:45:8 132661377524210787745044161712440961857351:45:8 724997724353030436708488189820144897916534:45:8 417234057950080384273573314589765474028372:45:8 329317973598326749847158304555549049354081:46:7 938517693311731867955135820478603813502649:46:8 513562992928731172570743649535559196246744:46:8 816413478458958652067861678915232906127332:46:8 440883611215662527845232872588247228265054:46:8 717012051315953643697133651373041140248523:47:7 195989463735207333272973137478909295986792:47:7 237537024968863786684515813172484710303133:47:7 396267204595275089801182859875298362948818:47:7 813421363482575072388201971653233715324345:47:7 566632877309008553335877742250391293989636:48:7 597469066777619801032150062019784639634295:48:7 233993325360737200960152870824087217786138:48:7 684253424578985107870204007476725017983259:48:7 442671338578038181769915468035299965447933:48:7 335885285545007947435629438897208470601213:49:7 237935256147933167951806632228923867905806:49:6 589079824567181808529122375703458714522914:49:7 821283381760273426131995370128000123832621:49:7 444721241594216515145432440100903775473676:49:7 455716658577377905625936858352446563847830:50:6 914730375547421393563421578771149238439868:50:6 538393555502539518835090514765309368715082:50:6 505850775641978249191327169875533656472614:50:6 203302035007936876005908940417431127030701:50:6 466072957519337283466617890585348522063257:51:6 317169827519795589443365416436136868434613:51:6 528048425122907806394243449186845185849306:51:6 213022220089551734721292186350199624020918:51:6 858369876766753709045605943092169189335736:51:6 585768447234578185694841350268332360722779:52:6 244700282269154967123558587029316431782113:52:6 745233546742729436234858415953614024403222:52:6 343754828507943685138086849807364188658820:52:6 259958825836941003380890175231272099414848:52:6 482143005098592243776141987037470329500526:53:6 726096971629539086568572888627033404017890:53:6 100044398816401386191257980105041427065072:53:5 343986832397059021373142989825592694321967:53:6 192091070273567868643900621270039005157404:53:6 198777777463210364506477137131479832035424:54:5 795186234905762187013522805328389424472882:54:5 115172159352173538359046696455098016177847:54:5 840201160230322900940195992369738542707502:54:5 916516230252886761682145346865950620631535:54:5 987283656072760021458136459160471418929856:55:5 329644715206577024343096096283293140228971:55:5 326414398561231198225627385543656378485646:55:5 819217663741349983671854775608276094698019:55:5 370948074833890966742356017719853120875895:55:5 981157942145032119524426534863442910765283:56:5 316284945510619596167603596421835578512530:56:5 421469752092877493253805903895973080988236:56:5 387245689448630021368486720298704924409738:56:5 573247749255667363315304849708283014303111:56:5 990302050430004509596338000847447262257627:57:5 268150702908400334713731551013314246945361:57:5 781849827144595245233545945279876782118499:57:5 575299217905420196490245391438763894292934:57:5 838537504528917203721130194536569246865541:57:5 912230998803347306207347559707580157879116:58:5 178121726414689090379500670149555729312115:58:5 495324062079730022975092981929542914642769:58:5 304874741553732190018109461895184656014581:58:5 225678537516984826766117386473529340011062:58:5 955663430420179280934125896856475769762243:59:5 216234274600604553722254895279169048629357:59:5 827588972177049887432328748502234818979689:59:5 100579588641699865035524127561499070637399:59:4 346406487852984196055099688005669431651734:59:5 573398362994397933800023776843611093675722:60:4 861866199197061156680411900454358578610809:60:4 213035582587298102392422170082204844056839:60:4 692301143498368056161317675688542489106333:60:4 927281825848454020821362021186702950281732:60:5 990631777434221696592642432420176788143719:61:4 389917562843684068906449973468202289074744:61:4 518713106395424609147047940424523823847014:61:4 400668467861431377748480149584091737400702:61:4 379705548450059130329853496965007410192131:61:4 704835568250714446633045543659161726788193:62:4 628438287616753442560950608396558428321114:62:4 968355076281567109289150175945026492665979:62:4 731649101608678464184633098737964516719426:62:4 753610253170613556275240431151970233373184:62:4 809514393275094967383174252153263974064644:63:4 172107967577968255506413176481420346651545:63:4 849630828088447447965675778327524155346367:63:4 333085578482711057111855921866300866700521:63:4 566578479121853902036234733214732742582345:63:4 568558985174182452753728927285889016406092:64:4 194621252750202348444436723674158375077823:64:4 931554510865154355744853883791160504467579:64:4 938385124144937672900731663061479659423132:64:4 707547559314176120404433911970167862035259:64:4 681012042871416609623194589503028838140202:65:4 453996506455858053869982679204616285379816:65:4 305823045054354187968173159900282150405318:65:4 882996622058185649035299839713266703700261:65:4 712412584988561717794563691486326478489878:65:4 131089273967281529876136003078749973402116:66:4 758933377489065256595046991137438783040947:66:4 570202359117249302509069394807333772385275:66:4 753529546430476442440351743789271151847309:66:4 765549642701098054558259322803287286113561:66:4 136628496837064271779061040988227476783013:67:4 371164984637915190392988306917767559371952:67:4 938198655066953215167552992523604092764091:67:4 812922364880744117021114265428182396465869:67:4 347992805544250035191648057753711132282397:67:4 920862238843789331522379148008467344139622:68:4 880454510214213218359050737623166225609447:68:4 756318576126710883313536320429592710128837:68:4 452000846118822422481369940200765049585701:68:4 981684732408291647537873602981511940726197:68:4 760503243834406901723940411450824774931886:69:4 432085564640326755070256211294909814637199:69:4 307183277248356428784830569673315237321770:69:3 470453739915449010409623858375824750502088:69:4 696611687002230671439902820769748655319969:69:4 751297086747053660807012101134930663566715:70:3 888451908531752730708700032982590696642273:70:3 695269959244787631219114478448982453173312:70:3 669255034130694303717812241137092135785842:70:3 222975667474811926898448685405208970467797:70:3 690456472704629879021891569515379140142365:71:3 720462061850130656712394923413437904868102:71:3 910313122080444500781489813075100251371721:71:3 424078297053840070978739592495164046583223:71:3 461391170374492597756982570722671088378131:71:3 200948285818120481140536266486866723003584:72:3 571650509726037441688447583069947126446989:72:3 772465495611067564623631371238932388963238:72:3 281632858324493339555164677601133425655691:72:3 159878451231347752691398812614409350988812:72:3 843515528169201438734064355314269615101221:73:3 410716141751159603779840606656956776481787:73:3 248520677950369401388089203824703762414347:73:3 563149906450798317775555710734967590357728:73:3 459168485817325070229566330115435863404731:73:3 387121658642852398869993392966256113647230:74:3 607545822685869546434858353664177308178898:74:3 969145398569122545394970680336630086859959:74:3 599482691758356459974924986315468032476198:74:3 356964362728098380496123914026267051543330:74:3 657493573248242171543843532691248951732724:75:3 295343111679785636709934994418219866447720:75:3 779800667413133359416487669789172853034212:75:3 190540213813372189987254716151587807865953:75:3 479762889589718579983187284495085753617722:75:3 489033371315071332527233806292301497995817:76:3 384500142390159295512094569311277763543869:76:3 175233800436898259654095630166391481629078:76:3 968538918387707147071899832465368358790779:76:3 149954564318268109378854550038309016679928:76:3 612398030251163659262202490749572517329262:77:3 389945386658192848122889073868951435147622:77:3 812468886035168629378155789162754158631189:77:3 276037778254828823358060860227204755050577:77:3 772042254641436173868261743504616583297297:77:3 300730979976813590319052513858589575048398:78:3 894525068724707811458725007515997259430602:78:3 861814319467647286603613713820572222699166:78:3 932629725219278171745038244040345032127029:78:3 951616131896912010600024152194750730583466:78:3 247052732368703941266422715122840382825030:79:3 359463933101161724612997647842303718094775:79:3 174613612221259339587157158920593745873110:79:3 900814261967337308972569633403094753238859:79:3 923431140777007855174777115810510159219289:79:3 608445409544408861119643816542364188875657:80:3 299473331555427229407727450263074156223190:80:3 165275698192117415282269587696167952239260:80:3 388208425983787779867195614736038042170605:80:3 302423394961831173270069720527875312244662:80:3 185848746939443325436257450707601611240589:81:3 167318351433340310724771415989599537695384:81:3 878387637746406136396842918601210399550643:81:3 963816934512294976052167939842116954115002:81:3 614200056311223687907485361781294158046012:81:3 458628020072235142451774902073989282960510:82:3 578580697777613604322017671094313327035089:82:3 379637818017185602492879811802481774902728:82:3 256296178791152210774291839480840594419121:82:3 968696334342289345488734712794018393576863:82:3 414359723771314927168944819725449537387074:83:3 116570300668959073640493610073477898771416:83:3 763333688102528334536415160152079457049826:83:3 854510105224356760199823582357862759797639:83:3 244146047328306220073140275345365044040815:83:3 583806726589045054308775977111519927886428:84:3 839867400057733024261547683587064693913674:84:3 907672916347684324268346267819867047070168:84:3 252223542514433175008127177118046117669727:84:3 621213405043416388452900510976680964225328:84:3 278804593076630841057684947659195594948374:85:3 995968933049373637901172175302730478241114:85:3 258562878410982244791788602677458757193371:85:3 210980085594941996184169328859565067461244:85:3 576642530933588278785383188162164270211571:85:3 150688726737699326426605560779306461711292:86:3 782937770095993133425812303127732768539396:86:3 374445022144298620211969738656070346317529:86:3 823591941399590608216606328041553666607410:86:3 163418942231553923044650201967470770541885:86:3 294203783173807509704023525687854076204192:87:2 684766492317484151267420456779269003758825:87:3 268102865240627386117852094234974478400957:87:2 308706410500897299991448527108409208234997:87:2 869854910165471913446805078511037851994745:87:3 236752799453444727771885936216190023523992:88:2 122037917306505570721413158032510445008470:88:2 182608080942720466929682430530091200148568:88:2 391698938324864716387350286577889000714849:88:2 920298756297797677860545137618088331589117:88:2 749994564690714329938113033363869242981667:89:2 787439557095131378908925997125488324511651:89:2 162590592765365119098980477690301327690711:89:2 411927666083643180231601386745097459311767:89:2 648565373089063820809964749046853797755243:89:2 615319927890380388590205341981545928915604:90:2 193504657865654003554311197891917540446459:90:2 573085792850360904519268640503125748163494:90:2 365532903165265958479740102581679402203198:90:2 276298710101629316054004047544824681331338:90:2 943700725974537009655176119800335170070377:91:2 442025451680236700704362531473660704025546:91:2 197904795747342808224252220588590266838623:91:2 193534115615636710180398748074816009629977:91:2 507154310052951784537083874323947036398935:91:2 180997638287323915308960258422193687933400:92:2 772597622477736939489870444891072391898897:92:2 648981565875676615220593162862914427129892:92:2 240808266837809848635308895036693246846008:92:2 263592328301045861602521998452263326065396:92:2 886317215261944935904364619862606636846797:93:2 543721480749106686228726013505806997011368:93:2 892742410229101495977530267151713517165518:93:2 695112645791093680806937233680545178643868:93:2 922810869707044605735151081582286301270828:93:2 164216831071971703964721697068054330435411:94:2 345386667058100238890803890634833609579045:94:2 955262432142514355545106543135176283140297:94:2 713553574173906561193042534509832146670790:94:2 265192233570292226324339272524742073481298:94:2 189221980284016013480599539630902289490273:95:2 652403675770540640635606382343734187332932:95:2 969892129670433112582506751352804896549524:95:2 689379917915188494385194366792780116737762:95:2 144165207712262917479492073968218085806748:95:2 650754504893578703291996485886761275300570:96:2 129559228674510803395600964691360945788119:96:2 843392450758945758863280041287270144147797:96:2 696137170789550014396005430089394644613203:96:2 634291261032053418246295190673443308275026:96:2 208571281605291314137101145837527002822540:97:2 830481992076314184393079765317427929636696:97:2 670853638959432997694996641046460924804011:97:2 749514947903663977656020598355335284652749:97:2 865151513872017589694394370615989670170344:97:2 415272953362523486965562942936398680090569:98:2 489760665905912384311408642431145255634578:98:2 600268113567034143926940687546676442537993:98:2 961631552193609728952678006939609522509325:98:2 749193960004182051579069701881154995178466:98:2 455336382784342194184352860687913172681676:99:2 283537993118798889488744627612684229400933:99:2 292971633072838473099257617543118562346496:99:2 947019638861072233180860997180237194144923:99:2 849286655506701565215199335170145095064972:99:2 927062197671132629723607723074951397415250:100:2 566322099222924254368611181126710363762536:100:2 660430695475535393720347063060876747910706:100:2 780133387726578005816095092902345849978619:100:2 625131597196661340454856311758310948292235:100:2 8237370056741519146366211957952652624844346:1:8237370056741519146366211957952652624844346 7648466674695366785611390998760383733928863:1:7648466674695366785611390998760383733928863 8559262974897572990426674482618462329058316:1:8559262974897572990426674482618462329058316 9631193664962629133969247007017917235673361:1:9631193664962629133969247007017917235673361 6713713367511064472695413687193382539875048:1:6713713367511064472695413687193382539875048 5642956364348542677789060824237794801653557:2:2375490762842184296627 4121121800112294109468385843245692328737558:2:2030054629834452043647 9044068557805893142884069916683091735350409:2:3007335790663538979537 4011705326306537436319335345119798268665040:2:2002924193849217408848 8068123442327529707336453793948861511661927:2:2840444233271889058816 4404305158008708622944714035493409250166572:3:163917680752391 8785042828327081040985171541355673733768186:3:206338987130326 6681479552487321998668821788961073906525409:3:188346497254139 2227316922009746165939957576593449303585836:3:130595237301951 1722931418640335528278568654006571297708919:3:119882556824453 3647380331586543769455398916324757510745538:4:43701391234 3630408861971450174319369056439212513544665:4:43650466019 1725228680339035326526101323444376358668643:4:36241959217 3536283051480191427710023711084981908216393:4:43364740802 1582364024950924163089259505296914414899308:4:35467175192 2969459971009037161841393775621006340496991:5:312273761 8842227404155396352570534163648556864353000:5:388429616 1556626362609970791893749735163565028039922:5:274433343 1740301306597132234819594251583940735458714:5:280624050 7123570850700754307591194285307175414573876:5:371997096 5268967135754730138263831154441600736568128:6:13191299 5192447157339351776045347783211088640655165:6:13159175 2007143641004438537251851446230575589812900:6:11231292 1977353841693796163604051967341521718083239:6:11203336 2164584496419517653420797405705086887978709:6:11373542 8208263652156488024477691743139952215368422:7:1350850 2706241863970585246466144797008417920679283:7:1152833 3491434831409913098025527721286110458579367:7:1195561 3156340036367389170816781884346721881266202:7:1178452 9061673889397452749879270959581582577197135:7:1370074 5385719123682505466188295587787038807088837:8:219485 6529041230572935977722382867918605728689890:8:224830 3922121044371623076783441934763015052851579:8:210955 6066825053306364955039202955191986489615811:8:222776 7769688950836963930268385078933374895227748:8:229773 8890009446023661310736478917515763607073016:9:59169 3299992316999000398112209910427135932668518:9:53000 7857051030274463580006021371840967380904248:9:58363 7987080514713441864053241132022578558350628:9:58469 1256383374286764330511710235012564610104088:9:47608 5646909993702860736946295379783514141359545:10:18844 8525337244390445473544794405548337781236438:10:19636 7295490528641853297274287786539755564706119:10:19333 5238369145253470024874746553988988762099982:10:18703 8846166405037622490115081832534889641095235:10:19709 6188256347196071545848325918262725848750002:11:7765 8342319083956959025486459890575464480452668:11:7978 5971374853174543290402785866999438539712841:11:7739 6975845644269677784587843929316472209766051:11:7850 9136148141951715189968889818511357617403483:11:8044 6277972011145245548646522401291499303709274:12:3685 9916664288672414203558880756669759807689994:12:3828 8535520419662541642431110466495585500656426:12:3780 1378842344809954815332808054368389282431092:12:3248 3617751376612468011279257302018341821319830:12:3519 7842595292286955073689195000868171306832628:13:1993 2855580040698639303373131137210608306528834:13:1844 2214054066422166348615982163934879319898220:13:1808 7722619830609083038774971716243636302337803:13:1990 6724997990164388103032016904897431774996884:13:1969 4029355546982384376610271643111159875027857:14:1104 4391925582691693415968650874726711160233306:14:1111 5957880877935166388122826795640501554424100:14:1135 4840686254786711693142088174591740181365375:14:1119 3285231931216848298935638310018224896461481:14:1088 7669469465205970818075569050916566210954204:15:722 2476783054457761035842303204960693755951147:15:670 4686027253244379518879691232719659265345653:15:699 9433454557395475883964071616743734359447339:15:732 7963464462829914328774308004916070241850267:15:724 3147935238587285264824538744497876947486407:16:453 5688280334862490070813825965852981272024277:16:470 2363066526254330570860193037199123466440699:16:444 3116649842954292344821584031260804873499224:16:452 4180708556164467023744910993622435941890631:16:461 6512862943834571525872694465990969228730577:17:329 6751427344066251430295702655618878067358030:17:330 9508405832626122767171189003269954143020466:17:337 1578528836051308537607769015111919340163103:17:303 5247290454733903028545627098291815143427235:17:325 8117330913088230515731628335792190320125989:18:242 9231099157914779282092952008619273018950632:18:243 2496201078570591549129395368062673269826681:18:226 5718788097851314186520817035629095604452474:18:237 2453565980833924052848679049568939193810275:18:226 2222660617837763369144274219438931579472729:19:169 1180645664182514063436412681970990335139909:19:163 1911785798890583552079307535093324379232591:19:168 6641808227793458980695122572683324899951689:19:179 6204824237394952790703617765392389399138613:19:178 4463872134723736466123924786510514975800464:20:135 8139862506656843520626619157553294322487782:20:139 5876001592187461402625118260921090850785595:20:137 2675873549697319518487751295499543076217508:20:132 2181792048038035553672936862877872454515585:20:130 9020150493086811589302769955257769755826788:21:111 9593441375688164788335076940589357468478182:21:111 9909802394309816590603184162096538117207880:21:111 8066075203206450700712848382725716005739597:21:110 4754697693797649335999573298943547797853650:21:107 6317855461835826249696638515410813516239693:22:88 5620677845663504064282033211084399858532698:22:87 1418040818692943325626611223867578167723852:22:82 7918931823168767925088594200599550091666332:22:89 9051087529780369536096906580133039705306976:22:89 2112981381961599386394826860709928544815476:23:69 5128449391568051225199550310507496044240631:23:71 2680095917564520890873566823160787967085098:23:69 7194603121866713102911596247421533762538932:23:73 3845658557852523652086197514483627861153593:23:71 3170806825702674138904892530702899442542508:24:59 6147697082474624811276886048400783419341365:24:60 4915239623714044872796945261450623367021704:24:60 2481851956306138134271557477357818818787654:24:58 7242776162204563292829578258661934561080073:24:61 5127051394755520897203188327257892476051267:25:51 4136933053391128639036090634813712953302759:25:50 4473109941480202101478807210243080053897707:25:50 2948666577220171269336992750831768952853310:25:49 8469236766769278916599913039518916361202034:25:52 6166498363817875579820554138451421374892826:26:44 9637110446899678080488765196694364826507373:26:45 9232371316949716178097781653000652064483584:26:44 7151472753739312040177505050888852409549912:26:44 3540272960751705213714946311599257866562315:26:43 8936709304191158754015366876099614905228057:27:38 1570490469220675890049636912274430841634756:27:36 8339803389709008370957177592313278356275219:27:38 3934422181319701281331268465296976314638271:27:37 4818271543845114290587138685977111439351021:27:38 7752004747882423982290861810246654098859870:28:34 9535278285429768535679906223105418826338912:28:34 3927317387058358658606814656622791090422333:28:33 7222595713245049978760845212271591351329881:28:33 5772781889833957293170228695102224613363773:28:33 3065679576070145981683376739625737364154730:29:29 2368747936431090719228755791595481337546187:29:28 7224303346108528156806224377939297981064248:29:30 8929725023049622577799625473283884494571565:29:30 7568601948845204919322909568709705242035374:29:30 7605338443967346397249924422089478004439261:30:26 7404577076903600486765068099948929573800504:30:26 8304422969039782246947549390131780817275938:30:26 2116035376838181678602359795518217416708483:30:25 7551328173419851023405555331139544779237080:30:26 2520278662086683878170546795512811089580456:31:23 1596123118971586293090735518858779750889514:31:22 7914615314680183627923570273551973094253317:31:24 7049963164355762832051065015841975406837953:31:24 1923378394606267424108376931951210939036293:31:23 3939656086273652553531646630402565299292359:32:21 9369040076813042140256989638074654031156732:32:22 8462852040765335487929513682430577848982343:32:21 8662984847430648745214761485262160940054775:32:21 5063065239028415861304006697240229586636450:32:21 8665735762379197382964254481260026092365680:33:20 8288571533011721116966004055381806441239192:33:19 8991860524079592197940444581099459670015215:33:20 6150771067661320979353976556150333631644088:33:19 5051735487206743692157307623808092197332059:33:19 6563051013588848955883284414419614963298903:34:18 4047857456095649280801553884634559719974697:34:17 7160040890942840714165614450232842528147580:34:18 8800692391710189105629379647333167903960237:34:18 6161818583773694175299017584855203608113431:34:18 2841572178127242495166188564187766146485775:35:16 4821388264929415901478132010751876570854499:35:16 3310228596530991620107333185412187306620472:35:16 3631736944711663212706370742695884704643322:35:16 2744702014060694214121923939285553827702132:35:16 8847183812258998459785165615567423355408492:36:15 1279134888881026534825146756902537292361499:36:14 1783992447651953945813717275251507252738307:36:14 7575629154287714165712408391012147468672897:36:15 5468530064518252771029361858855182820461843:36:15 2931637543163483304919212068481196140249759:37:14 8830754591545296109938255499318140440100364:37:14 1032461141456587754819816708513805599419108:37:13 2101098883305639253236154337230855852979153:37:13 1755790657633162880410458050976310139114707:37:13 2294876897022992183802251154942196471713667:38:13 6759143970748541102067797169172576624594824:38:13 1817821689023945423245446172831385477201505:38:12 9346596999125807405043908694742304945527037:38:13 8354839695009488495257290901782182110558035:38:13 7029684018269460853571932799423425092842173:39:12 1392947291377229515678081553587563260692531:39:12 2827920581923175689156832212316333621044132:39:12 9223060769854411011678669001553977907229963:39:12 5164557976094691525838956625169877217277785:39:12 6243151176437535186784026112472178815690724:40:11 8619852713099535241391624159078137837422701:40:11 7569515535650390020417360995100907706612332:40:11 8290922943143329456767316977423030432926921:40:11 8640304051152946011771664402200796660864488:40:11 4682300864257420105748963889528766162115061:41:10 1142095114678910560230650901322470587674229:41:10 4861626095536114847606347356090444168198885:41:10 4328018241705640424115890858766273517769111:41:10 4554823094143839958817451384175614079885163:41:10 9581611242763529825885530311162287545433699:42:10 7634131561393758842961601017380705749329726:42:10 2587044389937547045317252256881464122215447:42:10 1066578349815499975008535256132810563534839:42:10 6688777657257582087534343211697861886301626:42:10 5270792335141379286110119644011713262677434:43:9 2427037380046084417990315620429598350094931:43:9 7888050977347017357642591461698559336090633:43:9 5966468219973278557259760110678379856994918:43:9 9906539375134551168021467495247474291486184:43:9 5351129603372545825028463734951631560183529:44:9 8618522804661784768150114832672978804345892:44:9 5774046702437677349964493813306307858524659:44:9 2415417731902008873180659938105379325785096:44:9 7292503721176904153957356247544211139368297:44:9 3578019171400387873139322604274077043821966:45:8 5715597903851188641274899266713077763462475:45:8 9161781313696759468006648553610875644533130:45:9 4407479956875172823253853420556678398906702:45:8 4825022540256857260712719328757134975922738:45:8 8015311346188472343684600704085718472423001:46:8 6226283865473474186451292104128641133873568:46:8 3522238306240423767270485913353350881606953:46:8 8728284176058198096403387493266431145560168:46:8 2851374619761365500389874198398215644536283:46:8 6649424119312675479836064006191801030147576:47:8 4164350980813272939182364158701798393720649:47:8 7297050015339550373593730446638461240600900:47:8 8849045668593240626781574513780170643197229:47:8 6236741438505587147276031356354494213653210:47:8 2469102404892189749587664438028594843984288:48:7 2936194884266961159111212464363831568740228:48:7 2840225978018597218684228314493162812459693:48:7 5614191836820841064466392770369976181057070:48:7 1946306183158032838415128742852865514423212:48:7 3064641553371910505344866720057839922957271:49:7 7112312611277921416817182102521097827641759:49:7 7988456865367236135795163363254353612192049:49:7 6067164350000214974013213425047779654014726:49:7 1787857014317459424255409422904284942700593:49:7 9650786147318285426786789472348534418017237:50:7 3316975799764226954410031665010119268198288:50:7 7952314359404900419457476422860086970710132:50:7 8009344045846618347415644049059915693071077:50:7 1296866719623219321068731013561539483962757:50:6 5131786135032717542222755015728232043577797:51:6 5550102186400695194063606182907042020624502:51:6 7572385250133205823311047517886793719740142:51:6 3709172560032074953269596269941362771314334:51:6 7678471764563047979585753148924476184872304:51:6 9163953148431918184694120706347588200283869:52:6 9357909507083297550368188097696760479220399:52:6 1432995638130551135463153272301790078839954:52:6 4162775065524530440772847300478062103765796:52:6 1460820750042344915508425929965565839297572:52:6 8830119232217362854040152027910921825261360:53:6 8534396106291683994853751299951615272345055:53:6 2297973557975981208181891947942737812297444:53:6 9113406449985947743556232299862920870319003:53:6 1202687383884962679915143220928553179045145:53:6 5220675609519778167874622249263262125498643:54:6 7136012823702335361558347009146958047467028:54:6 1812679659813032556867169711121330970866742:54:6 5563285389787376675293332853878420170978847:54:6 9475997303731108636791410094868684206307913:54:6 3993477225578956206832891733199177926518343:55:5 7854873867159628096314611420810170474687593:55:6 3335887703635127947190675887953193547707160:55:5 3492898511912574467516544118937896131111148:55:5 8229827198163192614924965471821553194001193:55:6 5771472249232083742247592898457073824976711:56:5 6505099820340027350333174336728650337949665:56:5 4530783297841005935616585053762699121803463:56:5 7027138703794528656460185964480889870174535:56:5 5958746910104500525706233985595646934810618:56:5 5926621339109967415028422103633972563006909:57:5 3149916790714892276555183686824715210076949:57:5 1798369970552405291222739793798057898891420:57:5 9250867147039513327282235173508644906039528:57:5 9199216002054398175596535993973036347077879:57:5 7637025150046402812138638045725361318193824:58:5 5418989844300379683244954638663786381413358:58:5 1360390117785931190625857901756099573548742:58:5 9229862996692199657139199056231453879363580:58:5 7246546825906341357303070107916626298804825:58:5 6227202056408986648079629152837605416155243:59:5 6663451408296857073188514992191043205273966:59:5 2094896286057190589235674760646231968790428:59:5 4127183310951044023768427450655153805834188:59:5 6634348667533946652705940514977896683370183:59:5 3839252587357344665102997999904209249975669:60:5 6908444218990531342441276496728254441135905:60:5 3855607376272972973901361529469619086993536:60:5 3103581971815778572978248205281092523366779:60:5 8250595158840926985456746592069192255331464:60:5 6128844722692635993261840675554265069248012:61:5 7806695414220287037082952493227613389295395:61:5 9441519086637841161924272397153541740930298:61:5 6382432356818667504143714355129199573843182:61:5 2782662379528557372714923609372214256183533:61:4 6722329057437064320839114374847314811309285:62:4 3811914936070995593192071379641883746533801:62:4 5313966648941171904242112944977535661797697:62:4 8772166655870629616836116092682194450663609:62:4 7562493311073148094193889491295994875943489:62:4 6069422469265068317176957408131106337499495:63:4 4623731554903434283318928727070688339951756:63:4 8427256286293505735971864924825134728723536:63:4 6069196069184487476366000564040681080257535:63:4 2560715338673675528719477559059965850447396:63:4 6346161437330617700642971057151863473142205:64:4 4316595538171853004371048833999283079425401:64:4 5141280901773594052983192258248757509513166:64:4 9742380925147948114510546017561747629388285:64:4 3685650791871194195432442209529112660424816:64:4 3476039315597690986080917870485892965668756:65:4 1396842661653335342821387154925363043754617:65:4 1266872185069184051780018528879749279677462:65:4 1930792231001400516493929252555050100583410:65:4 8906087596674612256489150740826508952241730:65:4 5509034152751337809980115314603788971759235:66:4 4948922839808669939930327677867608727209498:66:4 3448165312144204347020457431907459298587473:66:4 4284954079037737173757152373067520263307722:66:4 8579413090477884705548730301847746445081589:66:4 6045012328376871695288879176451513082503374:67:4 1582438449179280112400238082465575156203510:67:4 8885535396922919475378084400481347542059501:67:4 2588812556297692219157442802444388502037121:67:4 8894523382727618739203361977325835489060763:67:4 1819265461659621636269127853362017096700285:68:4 2792059024424035348358955165369516539459967:68:4 5409771778040926371860986025557500584823328:68:4 4985996032806350781232953282681086109827245:68:4 6791342027703708657323152350796777594322669:68:4 8497660782150934126162504222828157955347675:69:4 9999961302661856950874612648924720024598401:69:4 1840770911119719029425252744004659705292463:69:4 4501405533550732520050405241944586880742875:69:4 8701009987432256907315740005295002230317964:69:4 7795435738802823104153118638715919396334181:70:4 4911654979437380453121899869797624932912693:70:4 5731215798404418282229036379609851562574108:70:4 2269038864488528117123389690554970355386302:70:4 6109439333334387630285309759708754064654084:70:4 2347555451126605163939638027312839142637441:71:3 7327751386446758209221587620799694508719478:71:4 5619067432623618501320393873471391156980766:71:4 4822302292987150233252599846592411148488256:71:3 2219521008439570492692759773907735063323879:71:3 5743483041337753527948348886549171683318527:72:3 4603360340098372535926132693427448370600396:72:3 9308416132460489403240894531647027213148764:72:3 6135523487672030144499928443235850313181915:72:3 3491611650441392160009456263878876081107178:72:3 9196786275872443699901114468104599951467265:73:3 9686134450356822168000758381952749946314448:73:3 3563699544247319893408639064921110050798712:73:3 2489805708701506378640008235563331793605067:73:3 1798363519015700847464321199305463392378523:73:3 4362792567207546101637489146452681791866653:74:3 5892925128329396746107455436880273404557426:74:3 7418313873616650432428374585499093179018502:74:3 9343111154500152261455090830424299635192744:74:3 8409147173960718817895910140955818716381154:74:3 7901347451943609330642113168775482989221844:75:3 9896693992694419297897104446785302459626913:75:3 2188814552182610964860573522083694518470816:75:3 7369466830815743036268936345203627876442776:75:3 1011313044916221051367041247231583160016388:75:3 8916601770888988811918929808147913502847795:76:3 5117420356115272064045116977097617224639923:76:3 2528980389620885547905087432332192447447032:76:3 9628529121845457166128525439604999714014104:76:3 6071710520806830721155012995854924485417432:76:3 6145070181942368294965730564639397940164285:77:3 9060421913513212968527262288815211364478143:77:3 3722168674033780266086271778599312836482057:77:3 1232571316985838576987420145455135073930598:77:3 7067948540077638816063291278220432922689143:77:3 4407220453331923625106347065145406365517499:78:3 8121813304341438757307817814075784889399799:78:3 6351419768658484286570153864791961403058410:78:3 1781609297310412554999732885747878306338058:78:3 8030593599311430627651171126125242282573317:78:3 5785174381385950767300943788887019410199445:79:3 8290721256006906762676895391114663072021242:79:3 1560574512019693681775979473451023414898813:79:3 3760224431857261310273599115402376705346442:79:3 4341469339590562751265828109212300532172948:79:3 1654313022662944232967091773030665190671409:80:3 2693341926325911371463321981203298938557560:80:3 3464904373268792330063101514886682269717814:80:3 9404244407244292098255109381667513347295953:80:3 9420522251448332652947270430270087638784669:80:3 8799482268114813847389695423023518911176444:81:3 2728266925627941136465501827684627102686045:81:3 6605333756970237011095141092683948665872303:81:3 1202137616288898468149975308889690009084807:81:3 3258729880535634720843558934315558520113400:81:3 5156919724131290116453053784766354944785309:82:3 7722718731107893259236074296885133676341045:82:3 1506967321017650386948205737159159748013594:82:3 1058694920359584586528416113240801874630833:82:3 3281552341805979610983118728202749805524370:82:3 1336027046529540002673955171360880217646854:83:3 2240726303931817117894391827092769851584686:83:3 7094156830280066345459179509586283005543882:83:3 9294527033199484726608273363211591940217490:83:3 2971157679737639552387561665940883109860696:83:3 9524011798433319098974751291283933943458846:84:3 5374484229449530641397638132866601450343921:84:3 5136115649672998086247001090918646945502064:84:3 5365809404231119870643175257514086116853238:84:3 6303121114481217673098197994299782729701452:84:3 7224805480570176090051675014411421089547853:85:3 1732174490152954248111199007611805614429537:85:3 7184545925036645388847855033577272852917326:85:3 6475081925795479439265021448712622520994141:85:3 9014303476493286763610743713235592545625499:85:3 6580555973513988016604270012675327391061314:86:3 7747795724519782302470312614324514221339304:86:3 2980004362626106942751169502140668279879983:86:3 4595139763969206831470279137971853959687719:86:3 6135832014252351658325686680269549829035800:86:3 1338983813796622365030369815292340922143748:87:3 4547977005833394687301113371306072555229939:87:3 5998615387111652877844641457549755885612584:87:3 2532880380694727264870550725116577610972976:87:3 7930739120278948837892333572968905725040092:87:3 5730360075215151495804889171303447856761560:88:3 2401430967358007236648962601744972442399129:88:3 8015877258090936971040903408160762734615340:88:3 5230160158809309674241306739871053987288930:88:3 9531863193281897933346464029008895417482989:88:3 6192676126845527084221216718614797869264114:89:3 8669777831089333482362861491390470491804224:89:3 9134048277407631282564801157989020062025385:89:3 5310880462137253615273356799455649125819057:89:3 1134568610452265311066977692918519708360108:89:2 9355818045460515172935256086402561904531166:90:3 7675403945060915565015750087688547211852927:90:2 5136475917274138929164146222656842490617031:90:2 9621157065242951836921762237747411590286706:90:3 9545333102535449839730412659196320880008878:90:3 8416972250318102480358733924414509135647147:91:2 7076190105246673821805344907168340874715695:91:2 6690689717523831556983334398728848824979886:91:2 5270907450310896169076229158370287858046014:91:2 8395855153568875478744101217833006193449306:91:2 7038526956296392605617411177530165489617863:92:2 6713851518388136592850245341595594844956697:92:2 5823748085242545723861763098708435535697883:92:2 6506935795123830797094438173955959123031388:92:2 2856257170268458279924846841021830894073209:92:2 7231200284771162358239014611670030958269669:93:2 4506730561541806907684546933470182415632297:93:2 3807787838288722553012132787913546633292779:93:2 1141282543361535996785749164365787036845992:93:2 9171089227043280004691698513490230634846506:93:2 9516574715282841110578419989515708038792939:94:2 5804204050773646792867841757401333922345920:94:2 6113204116121298538934886808800721756445508:94:2 1254918678281531499332648310364835994097810:94:2 7483398099116772444351434414901745613077552:94:2 3245343910266097481830883925698850217102937:95:2 1649978799497193535088953567034167420071621:95:2 3312335386219891936856969873095456141387266:95:2 8400059248608936994582669638899007056630933:95:2 1423902100384634012369050261986921468737541:95:2 9620577908369328731778298680716481307736283:96:2 3340118460488323231269228560074277187336671:96:2 6980793261258553642028083422416685609795358:96:2 7409273837985863148499994760204809337825349:96:2 3325916953579778239232706559113259305807530:96:2 8197810481185594245306488868958527568620666:97:2 6691593207582711638028936413622427574853604:97:2 4257256285792065249160197728548207879563929:97:2 6146147975017005772190893271267139772955278:97:2 4380460356764180115911784140956195532128842:97:2 6762235559728015032293314890911716442463911:98:2 8859897941668019072427576004836563020231106:98:2 1407802119675208995650560126857507730394111:98:2 4275199333456119351307523948222822899090389:98:2 8984830161276764144905462143413805909055718:98:2 7224168277459567784933694811251156635918947:99:2 5715860351822804253170348429838471387086966:99:2 8792251631771606364681740338506183248240284:99:2 1645032266253306585262207638718938691694373:99:2 1441283299659123913353498254144489330858059:99:2 8247080205031791788820940754659571819485920:100:2 1913400458618673291662249362428705531535379:100:2 7837030738901726475785858635583804630205435:100:2 3849424960818667828586897206464641570879124:100:2 2399424027460728493605136486942167296517391:100:2 98645176314609569768056029027788561819219724:1:98645176314609569768056029027788561819219724 41276149769213487685786082395449903375530669:1:41276149769213487685786082395449903375530669 73308306059597237324148890011239342300570390:1:73308306059597237324148890011239342300570390 78737604144275133011653721454069307985625945:1:78737604144275133011653721454069307985625945 90413008964169622547554862677175733380576782:1:90413008964169622547554862677175733380576782 55900972752207171777685827818494516720497439:2:7476695309574088279752 21821811677874139211003009248724397958872946:2:4671382202076184133112 92058318476510444544678666255797778637212450:2:9594702625746690881371 98108496131911336530034572990839589193143677:2:9904973302937839646746 78635728339058484435917321172644616877642053:2:8867678858588558767109 50159502851271101905915104084554108358794496:3:368794476392712 77479917946094751715283832339733436576185737:3:426314120164560 25367947635219602125528318645868470504000370:3:293829307010024 50412145672846058151747228471857635982421109:3:369412619693592 99252503406177192281983162726655803580016922:3:462999465727757 45024959342658905090709606310590484617994878:4:81914980523 47783806492069838885006765488274243957334296:4:83141946090 64235445468724736561915667978568323032672605:4:89524867119 66293725044118517956724426072277475194048937:4:90233562841 11215187916313042443973481503627642429362535:4:57869754331 25404097279294681690406786794953037944488220:5:479712188 17190947772766740550126730322464363822226285:5:443669898 72128828168961840661506246952962898738212635:5:591046670 48820221751235617573254362948468866799188513:5:546663338 41747630736741584362344179418731456753910360:5:529817582 77752212053472858818079046931231127522648749:6:20659451 37830400563680684537859353421599510789626556:6:18322025 79026466658119046502324119670574894914042760:6:20715500 73779538770342063539335920157160672280523452:6:20479655 23983162643772211635311053064309483478323967:6:16981826 95312128044720773473759075342836337202634521:7:1917500 48088714140846880707411243611290370130105694:7:1738969 94584719492761111221935578143039574014503286:7:1915402 49356807796717108228926966626547082397439116:7:1745447 75875008090537336207739315834092973066091295:7:1856032 89683900652063555445845251497254375828852882:8:311953 12218677492573829545311126198310374966923374:8:243152 78013586176631513036177091503115563928837401:8:306564 27790703244312512583203163681887811731190680:8:269455 11510089317335447171932326471065600798864349:8:241343 13207677196922972807506598706590433722810168:9:61830 80052508438203245233524111328400010177277329:9:75535 36599250672059387480416909826981892119033563:9:69244 27204722088938736555848964327082466558444861:9:66999 18327541732350068626508308309060990877517055:9:64122 67714573325872715903081502056663223140088251:10:24158 73076494841305667997072188273677774824508654:10:24343 94793359383899391009057102573722792075308481:10:24984 85015109135092485377829087260383181451187918:10:24714 49316640439310059825708382740877768390705460:10:23404 81414538370083773374511119424675873302781352:11:9814 68772931029840513108892143839637538512315748:11:9665 28036167944075662306801278242014056339663378:11:8908 54709766061354938537480534155828452594465562:11:9466 28859258211829829957087251392768875490700304:11:8931 98304836265202035720641311718046392519122016:12:4634 84141661413839404843954470111218647410437083:12:4575 79597185516710429523447206083158896291166893:12:4554 49266727530722571260246634770050350338880972:12:4375 66567109674613010543369502627718603476200473:12:4486 80053778022460672764413845341117901849855500:13:2383 99180663155786423524375569947438620891380260:13:2422 75958506624053332109266565527848266411408644:13:2373 97668470236996510279055776990988991513366728:13:2420 15723940155542674308661434691940549169670040:13:2102 36043295362482990929561165611570836298794319:14:1291 19255391228004042896189009177413073196878871:14:1235 15670910394913324416344720878901776937924803:14:1217 89802938711345461937451353244035572178637718:14:1378 25883522347413306722714028896112941297096533:14:1261 22689081683238656242495660701551008493445369:15:776 62748529388397389326036838547210970402020186:15:831 26828903740482286187774345916903284362457214:15:785 70567266109165291652080124763868444009590087:15:837 99426511787052653629364659803212352894856262:15:857 66130376276282689276452562527625842646218898:16:547 62194147132389781668014052114237627716579232:16:545 49839011837041604265582919711872799315032940:16:538 62880928087242727956288364515967452210529607:16:546 44229107617112700910836646684642654148175395:16:534 22224353120856220006986899355864096905296957:17:354 54112228143256301132111837406098937372875593:17:373 55935659962773446734192031771743021440731889:17:374 40024847418378248215890789539891129005042979:17:367 10931915995945102804282773559750026981499823:17:340 19161303128250737561545305948927903089828219:18:253 26069622931109601962166035821981234664412886:18:258 34689382777791099287141318914340649860193425:18:262 34144098257991018298858172096798370436107673:18:262 64880797274346548434694754377653578780352671:18:271 60925262805609213586878895741568689997063050:19:201 50869307893153429661759109473558844849094351:19:199 92191741364146949160095154241422794109382098:19:206 72010530191055842255176395360737832166865895:19:203 26871978027711978123149785450419176734164546:19:193 32476595940716799884722103120912389516882141:20:149 71804956124971519493487344412378201932259041:20:155 33209259090278343866055864880813412658245638:20:149 75185598762278467866992550012843844570687516:20:156 53326340601420020807140740350013517360295636:20:153 36911585960543013501711395554094036241200127:21:118 69356232255552835366282029866982067792548710:21:122 60320490687394300855942264475318667051224425:21:121 73064053750220286051759301008448036371551893:21:122 28691007500697902176717084253544109139769104:21:117 93831678803547431068367128216592583759628744:22:99 99695365928741636433413430524344625471280393:22:99 69203695666989247098183199233913753906827129:22:98 37373357792434606367824127252213758588875471:22:95 34999205573088147564779413489026348815610370:22:95 98294377587681482246243274646906354859311481:23:81 49839579637806372100919621974055903457426384:23:79 24138109998632007408050836028769526758622743:23:76 67853424116010525528410958910421898262884422:23:80 98178444843232251605733354365261651370595984:23:81 45640388130979555783922564912587135342511205:24:65 51357642535119502733554977676167410728989114:24:66 47107489569097429596374943095257182804333789:24:66 27701070219411412505865533740091416555406307:24:64 56372145080715705707899016878764660673141848:24:66 78729262017980907081475635807283784811332950:25:56 12733453848857459511445075320658820456151493:25:52 56239931349885160869586948600445315845365410:25:56 18387017649397578893625913708503198774571666:25:53 97334059699005155708452684484608990450654468:25:57 23581342123339355187554237383358040028749477:26:46 73820550379452323903610674914620648221223179:26:48 94588512870348913854025776915259570680585953:26:49 17427837276337594481985308847052569789171949:26:46 70926243860779468874259514894054561386001769:26:48 83402265382037486703776693148613797625269337:27:42 80429710439382266491330570648935463420589655:27:42 41364762109371152046794198168353712762745059:27:41 37833201107250071275551398218071978031490976:27:41 31709808455925297578878447382389624133964218:27:40 10373282753756068275427199997076855522326034:28:34 26768994500794564691114486081151695299836987:28:35 75783595214990633402976819717171130529679302:28:36 64872112083504079154957981867127272042366353:28:36 26645625833415832643812017205184934149331239:28:35 90396286128802228033532935179013060499404594:29:32 70722134846601238685224583317340177304172923:29:32 69823543906655271032563988136116941346560118:29:32 94255082596142952078758047469215305916938117:29:32 76275930979797319170279393603774630946399432:29:32 76561846894372825218020421989367984388641403:30:29 73752634078911821776539160679809751109804825:30:28 20790771133622980578837276315909462268877460:30:27 87041037856147509602522495823294502034459558:30:29 97864115505460253232140659446037549993935056:30:29 36472311036807443562190107838024866784367380:31:25 81342650159250980598983071665153955484821682:31:26 23006048747187720708364318892697370673425397:31:25 70610899836765513067036530763727997229493059:31:25 85355259922670592868363481235557497454783076:31:26 73043483755409476149625587531313593304226116:32:23 66632931729160780718838089309414472415877763:32:23 50396257047675502473907668007846171926997055:32:23 22957839565058602345239291410506921150709929:32:22 15789605634773426443564035684697748198780857:32:22 63427883236875164708780844302633807271328529:33:21 24604622173989511074710351232333595421448343:33:20 16630795667718880844606319692027537591253662:33:20 65748429911821951590696531689587229749189458:33:21 38005485042320974804501687669851527116770467:33:20 66492013135668323085201590094394743130307029:34:19 62885304310283970227613690784734298641059622:34:19 38529687735409836011415837008112019109810832:34:19 95550440871005210555364344699279592824096479:34:19 18804524552657614437798197163930572476596861:34:18 13788366360821302359266971952512200681559865:35:17 94115755969153128527756128620069052183116059:35:18 87695805537901678575002885773941222934685165:35:18 84702797046623275849473795598580602696979886:35:17 45223643851415803442102860791484721593247271:35:17 40583736133191290688089720591549727743399034:36:16 89370568667298385274817872862862382376905186:36:16 93208795505267633066468505647577833989602163:36:16 67723552175054953751656730533929493620014393:36:16 48081726888249108057118551570038946588921525:36:16 44013447583919310913998873746349951447538568:37:15 68206634466052351984446009417751625432304684:37:15 62926073368817693705479204554058294792427486:37:15 36909113885696478572919294858605390341354975:37:15 76125847459614811751547019087312634440111054:37:15 39701500002563716479158303671296371094881160:38:14 45008674157997042195287628057491731568946149:38:14 69327627914293211208916163556631729599791491:38:14 67897268654797486356393693271230449452770527:38:14 74084486831140993197640098814419479557451386:38:14 12806185855970585721989391552852343742826416:39:12 74993193567963280378581807942822267667539738:39:13 79275902983978334547677248600875538372338455:39:13 98195689154075207164110600122559445503460466:39:13 36305530792619152639865129727417389988656135:39:13 32869020801753080371511087592372270937160610:40:12 46540954223030971119221256419995590959700455:40:12 39407039684963435780191834223979414072781246:40:12 86298482524693395955180592253438023973359819:40:12 70570664241954270885804169016522654334886019:40:12 19298688144580781273854752794135902735156601:41:11 50274480167990521620356312045257150527590468:41:11 92530190935970833083685438776470061498878652:41:11 60037559525390256145671122500687105853383914:41:11 59615394202988009180129812886027385642056861:41:11 68497390363374518066500405778151871404188903:42:11 26788719935278036105652923593274251809924815:42:10 81723407070698779488241485337525774635233449:42:11 26156592268726952259721639147491171619494523:42:10 95955380150113316217946877631735861210317413:42:11 70100276442264946956377056621329364575495014:43:10 12132966424216260807958254837026909121512535:43:10 55724038051871971647448017812905392648205894:43:10 79032780235308079858212471552094060627688639:43:10 59090009166535796951811412378071640299707382:43:10 38385835561087304693650680712989146919291390:44:9 45028679771124069628184204719965602438008750:44:9 16362744171891402483776623507210354420323990:44:9 92798372039196833719403250581851145019048237:44:9 36020973647840257703278894247169697521321397:44:9 69419762029906370593760590640849906245318938:45:9 47581290475510157773849167513673494234815517:45:9 28421454428590726081779540579565316133754841:45:9 31463010229081152269548895857806991347727263:45:9 90819651124846694749714885809107504002291978:45:9 69809545103404576361111552372021099803872364:46:8 68665438625388921660956591524348256940735058:46:8 37137661944551143186295765626814874765633071:46:8 75891606776908717286160916309022025395427001:46:8 92799965857584648634111582731650644230916522:46:9 83893973469703626106532745488530769599175600:47:8 62905241567469162482381800703421904685550017:47:8 19652320754952618404006426061924898795745541:47:8 59432986878354525303318098642202612883508689:47:8 54339686608732035665068321423931860866268734:47:8 21144172641362559834792131697412294875027661:48:7 17174237229793560961751430176699132636803089:48:7 92875597758205159638526077837513866900485497:48:8 56523386965140566749026213901582967160046811:48:8 80117949238854580102119744977209398255761650:48:8 71514991377666455555128138496622518391833610:49:7 52951260257237992940850395282613311348104547:49:7 59310373905364714794689550769631292792431506:49:7 24426645467700325344226647239811432954406133:49:7 28986710552951976842709637592905407159333674:49:7 88928403534072237275842576259922496096020000:50:7 88388592734348743460140093839057420665714268:50:7 86611525416245188483061572271955957769841621:50:7 32397202072502499351451681144091269994204460:50:7 79400725109260898383585549737436474144812034:50:7 21705730420033539716268545143821610402526720:51:7 16356964707892253423415313307879715145033568:51:7 85520766990029509156638036106695352416887977:51:7 54117819219652094686332817553926758217700001:51:7 27158373592317981593246992498666346049374365:51:7 49830519770330109604157274923525673296766202:52:6 31239382487343251068729907793406529005396222:52:6 62257334076191107725949568179833308396323636:52:6 42431304753257988558393532697336727743976723:52:6 15674021559943024369678937541306077305010025:52:6 40190695632183821550645410763248143936570571:53:6 98971846183925729485671983718632787555801999:53:6 37765654462404714612892431943204534969774349:53:6 81102592066375575846365988695230091782509208:53:6 31968182699595346589270045172645898755303286:53:6 75605220640997009951280592050735946308873684:54:6 38487184651669415247319147840458992207384374:54:6 22792079599860415316707480212285779604510784:54:6 74652795993739589548711473608068756940403211:54:6 42146207290600634092278466760226676468379836:54:6 41386152563763059782071657208898153572900838:55:6 93931484418442014397938841799143902761082376:55:6 20792876836338413677311288079255259707894160:55:6 62136051053599527741118942604075423767262116:55:6 47433428192133053156718401508275097038838360:55:6 28019374111005310344426023669081528165213790:56:5 26230527823586656961906566058595859256453184:56:5 44292509913955217244559273496461489617699504:56:6 56636593973356420624825194944422887024775779:56:6 30921744687763081785246000178726682458302921:56:5 31329146189825123898893138197226663527249743:57:5 21878711817381987843479877698763799638315308:57:5 97941014701512947742906753943427035101303339:57:5 60347381018553464184007719513147769947964940:57:5 60497890853873847030251077058758773712859062:57:5 63437879241815372687824494189481976158060586:58:5 65021252230481080421824105774498354771970477:58:5 12731030178621651271470227528393664533760669:58:5 18732071341889360155938339231678690191868194:58:5 43076658070253942064040468316048494378212757:58:5 21668542125788549262119451889687594809291871:59:5 83032721122214724199187208259039680790071236:59:5 98436174104203902493402102182761164039843150:59:5 25545994678576171594320491812951156161235042:59:5 65811114501210384244776844611872179415618286:59:5 96239560203877270802822792624943163422149003:60:5 47676606643900140306738625342001244210803528:60:5 76082525030960600763304248319255198815036706:60:5 42734858928458518462285000437513409087457351:60:5 33312746347328282141430884678869036254187112:60:5 11290968010971353425109833643007980193820059:61:5 69725024652749998295242280463630061394641243:61:5 51159244455433855537548090563484422590314111:61:5 97924497973332478655320206541226331885581883:61:5 31197934171749005426197591357645099984681541:61:5 69067355497041407459067475374691986577878501:62:5 35385867233530562794381006384433632951846832:62:5 18959131037888427373044905381042246968992111:62:4 32200283364254091895691569237650432736309615:62:5 77591180419427565212146619593495736357050832:62:5 69406561939275680376856297461773586140321879:63:4 73015609462508147116300930966487608652007961:63:4 21128747718445532893049667212369298856763669:63:4 67452109231878299231716518777851860254199593:63:4 79177014823516701714780251260612093155420678:63:4 13306618762357121808951609329639870708399616:64:4 71003392339775296324691376402156463031989052:64:4 88363244047589419921766396837930098056353354:64:4 13807848819098715719561924573165753766905586:64:4 86484127290693386640616268225810924298908687:64:4 58621940122160460021174167939208965461292703:65:4 31004926805134463176628952508327375942633322:65:4 54301943559390458118019847277796408164813127:65:4 77229919348401804462045222021229247344176870:65:4 24237241487421255624936088306825257903335849:65:4 20155007594283921958944136335082530229244502:66:4 93420873323793486072682353610128287032568065:66:4 29626716141237571877566336311809677935015543:66:4 37670284772965037503746054178473750877275024:66:4 31055708443710677423916124006089451566522392:66:4 15578476057127914952918882513558566394809845:67:4 33522925887477433204549576049281631083331894:67:4 83340260517349534057427876907500963735707239:67:4 37322951336516691205694176916350758518444035:67:4 51766319009602827765218918040669649309381336:67:4 24098274650611810734225846749267055114179578:68:4 48211371887723383027546013367311004052041903:68:4 65462836877892813517137540113705500977623660:68:4 99805069726101575868519870742324635210499032:68:4 82566723326655076788605327968880896301155750:68:4 75727817903736337055777839422794809931256569:69:4 74184660856627540445488685606131758420180658:69:4 32461852574014207835752620475734339962271372:69:4 12020905390780502840860911034653002635640971:69:4 77571591826169747374831911861919322485848134:69:4 82243408037636524850877548111939372391719848:70:4 24037435399968148402074139390320292663756966:70:4 32797495637511670912237629961870417083938184:70:4 14240075654701354093462596482763531439195361:70:4 88380019821581793109140274439585641114612071:70:4 93511529234600283177117393172999325036516353:71:4 94411642862363248712767606528112054097972877:71:4 56118898121269217617549078064738795670771056:71:4 69966303252185093574517094204960246805029962:71:4 54917794130644747104219672365587267881369121:71:4 71531091020095672253088797827380822758618549:72:4 97435431032247613365953756308995678206284435:72:4 99750379785859013313474769267651719937313351:72:4 91361973623939046179207630132135926421690830:72:4 68352492939482966945763757766097682471627320:72:4 49523380870454415304064839837006034256433283:73:3 17332898606450079860894776241359281117321176:73:3 52055909950623857809608453846199882801916896:73:3 46012563621930954071436199267748986700985741:73:3 26115082896240121739456277602151312855153811:73:3 67413846766232061107423317872120330881290329:74:3 63942440001205781186840474337462226438831796:74:3 51695775653075466796943595568663420821223554:74:3 25214437867790116188584793404789108647015417:74:3 30973243220610141666243565373486529572831044:74:3 59288609077355575425816561612493953663681619:75:3 60555527540087312872738206723777083013000276:75:3 73795632295756068635909153774998645539977192:75:3 61524845402185043923516192007634030613865066:75:3 98581883758293526330525229679979877522568530:75:3 30074647086692853824906818823105805141599823:76:3 38443083360959842905029491304226505112574679:76:3 33211434019256350336892303379952576120929315:76:3 56404789198169982923086507413466908205558634:76:3 18453393364758421282475427183201249141199340:76:3 76079713954859078802022378141424217665166989:77:3 20666164023378068454606420365095080963262151:77:3 61209146380165861681068135091957135133461924:77:3 62643018023123963737687698877180466027879168:77:3 75276395218059344095898763230669317685216241:77:3 34955238591283506165569199312712083462287969:78:3 85425273658950047337798163228636933350808738:78:3 60681281378932627815340221877234474865825966:78:3 55834278376821005036843520934808485384899848:78:3 14893056188288733415809308056063796265589341:78:3 78853203720541893593368744779500852314437293:79:3 54435625751706047911259630729376629465139175:79:3 50205668227126221218500222966309715773949010:79:3 98300841436147069264814857501359751717770004:79:3 54509537062855075892922933131552230364704793:79:3 60390263432730542100549666564223574059168533:80:3 21660105437626132926694748342892381404197454:80:3 87245253619897927164043689365358786231653833:80:3 55507615603030561697687910786916639716676168:80:3 40110348896336888976007436490787571856217923:80:3 58681769323575899926535012227213315775995055:81:3 25843533338463025498519264110907072669249318:81:3 11159333641650879475636566456939295796510154:81:3 49129705646283297667157803860898848694061847:81:3 88194022148532123627997046139556568926937619:81:3 81260551239632377740779451062258990773882960:82:3 94505688959336771103712728694076904248353774:82:3 24172440109655060859345901440405770435692294:82:3 54311099277074649949380139861473006910554726:82:3 28343429878092817604560914926402933520837953:82:3 31700414774365428598757949286486474599577882:83:3 35043217509314799119423491351500280642345640:83:3 94548687182469390520212036367110307136586511:83:3 65674818742577299890531015663667723421191900:83:3 19735348981411097070161150021294623094997947:83:3 42778229167694326107939179734805740142475156:84:3 97664531236533927783091949024660997403824779:84:3 56391601138007436742257635716971702313714560:84:3 85946964063082952119715057102477671609591622:84:3 74067924414896214424783170932740499485565253:84:3 12240685699972467872341728874760426519275050:85:3 91962648404680495679520470294856557636893883:85:3 24579298293243253292862608783437272002677418:85:3 18110565197142753795261855105183466953317778:85:3 48435008656447834386652106884411669698415223:85:3 46132174042240879283444890916600757217249698:86:3 91570193493424382011460532953989072518334133:86:3 68823798337685675072604504752813089616931068:86:3 33398694246676189571543660310332224573013982:86:3 24411675887177003502628334512683131632118342:86:3 92779609089830120992183152163490935737701384:87:3 69140412370798396260342170977633685685458910:87:3 75132250973893031009935051216499602873086888:87:3 91821045043025275931256531810238827541771971:87:3 76001361855258705685190767289828698312904177:87:3 26745550835195897676476953499455746408226725:88:3 69635106161247281404918420008237714139850826:88:3 14291743644442405492011394631873713719134824:88:3 96649587940737573832238111700648574266373854:88:3 10780893502682002815262739201574829134201633:88:3 29050340318192523539713597566533539658137702:89:3 69155062107834791522768934440375483976213505:89:3 10877901184952231926478062374512739336147082:89:3 44950227822570314201082920086089667818845075:89:3 31623274666573088540511295207090116094789319:89:3 68581149328986386800887631494690982957012338:90:3 35462643609172552597990544705279360076812442:90:3 15857541536470775057840225103412299657355029:90:3 33561310439432488985633344788422789023699510:90:3 75852026963842336747777045598161235567737824:90:3 26339597186712127127388191110022112836219139:91:3 58135519629895388572671911520472833092188614:91:3 34538026337491151354961603670095759732482013:91:3 95357702081458604645868764899634515159985454:91:3 85928711019094653048278034175703921562534332:91:3 74026069899503611043585030038712398930724574:92:2 39627598570523562184870310587503535548083954:92:2 11039140382981164090949537121439345774843416:92:2 36007373411482345114007015475262793582366099:92:2 69777717497086895572688718980452862105301207:92:2 93735152434558192373044603370973826549362954:93:2 23527510750229926084847888501937059244249110:93:2 39319905233916346796293708679336152360179510:93:2 55903486723875878884042279207721153885600094:93:2 13236712230361106251407706562064278341956011:93:2 20723602770447053239008768812484101927520371:94:2 62027810023251783090302065364933707005825270:94:2 13470083890000335287306425991037407744767874:94:2 18767297361209222903817017240041556300438823:94:2 44074531991551486537072141140455488485956674:94:2 36457824864909854586607670671160540266788110:95:2 59531122713417600680197675887080212768445669:95:2 29206693524186115708080081745662483651574232:95:2 94926655956799576943422045676080852239968914:95:2 91668052562771902042799299643603551748751680:95:2 94971046979255978422767729542041882783515422:96:2 30680792929296488719819044102502820883990042:96:2 47347724757196959006075442921580164885175304:96:2 70643556848935959324683187416451323285196235:96:2 58472475850997464159491700941801601840601797:96:2 16505622049890614980558187276348192474163842:97:2 65444833524094157494880409226391117103463207:97:2 24966755960361248005730155844318665428206322:97:2 78796198112888609414742060058356290922338448:97:2 55997352847498835057116285338941762299934439:97:2 34560707268845159028972663908328624129287318:98:2 30922376282065416309653431008166083338196530:98:2 97295370111100256980515429860743010420165503:98:2 76674919509986893173878275734892978868094588:98:2 34377948612588598568971289735976335000242320:98:2 77803352895697344888321226166259015945772897:99:2 39618312141928023504041492247348206476585520:99:2 79184830131658236713461590511091386799044648:99:2 39911282058999690743065617811282889354260874:99:2 72038041068612360560966243486459611758993419:99:2 52956542067673547840299495286450780051131715:100:2 48094318081388573764658746586477808790831167:100:2 67143459516128931291513860135191063476965063:100:2 95705918363811533457861299030980794680364155:100:2 10961385631339526119314347474777098306711381:100:2 616283100993168165002522590050001198069056785:1:616283100993168165002522590050001198069056785 610593230772152572192403807584074042644965555:1:610593230772152572192403807584074042644965555 429249844826994684415661223400718849853559232:1:429249844826994684415661223400718849853559232 395747803309661123868662195433908182987390855:1:395747803309661123868662195433908182987390855 357050033409857596763659491600525496379943679:1:357050033409857596763659491600525496379943679 130766191695868708920148406598462416472198638:2:11435304617537248138217 218893368747335227763271223789209245512900541:2:14795045412141702100348 835483558987478160372847229414849326032236856:2:28904732466976375050042 849100100745856663283552365262219684164444179:2:29139322242390207372198 196520738251456029496592243665599610796725855:2:14018585458292717113188 389432139354229090796249398185655558066811710:3:730259580765482 540297700521286228995420112519843670973917236:3:814474902587144 636760897400193857772478998445723983711327832:3:860317575790453 517335418402071581623699171304560577896655101:3:802769266642937 742274757517359529169514268471127286606240624:3:905430035855889 773622706467412347199545296905078525315594648:4:166775519462 330716323342711415074207980730760025914836144:4:134854023254 879487617339063467189313024100896813160296874:4:172209629472 629519689322563249717067779072978700195506233:4:158398961341 187084075034747157156801721341226668102514178:4:116952417988 787782760984435602686000461147580582041943321:5:953413494 597625202778745642591243850004986563109421356:5:902164597 104340579871087240560602586698918781691368839:5:636342088 730451052668104944407245894668160255614880174:5:939113803 824547251795883831261870575550496655420298917:5:962150721 352498640293981486683391622718253485532886034:6:26578241 451850137210676138739702195812294868384651558:6:27701231 953515504699642054594362721794447686220297564:6:31372897 216541528667316191090459665227603090787972251:6:24505121 896018689205871917321369959486074239307911646:6:31049373 921579706036448317899135474590338114638163750:7:2651579 584549462826358483103070420416260152765623521:7:2484621 379117319432190957771006182808472645236303782:7:2335587 498753338130465373842290453238504160851364488:7:2428914 185377074033161100159771200633208343584302287:7:2108667 752963549129635042355095858842306874447275117:8:407002 180322259542409215941214970212534581834388051:8:340413 508113425702408100767584050153638204877205285:8:387476 502913136062055859645758146823056338686057787:8:386978 670153997299709423158804323739918231166308514:8:401117 467867417704653791723788681671910396769635080:9:91906 313262936706683773816520689017849523849634019:9:87900 524096177308064421785656974893436718926595799:9:93072 995902483131500368865768433015633006426735080:9:99954 887291210283313936058609828439246267284239707:9:98680 664578617891363967055455366267725746463052292:10:30356 972954290653225240696100594192915130445849876:10:31536 528334938835021701127650343799911063587911656:10:29668 431873107989614755787609531886242070586107629:10:29076 864947479864229355964637441852928331304174810:10:31167 233258760908294774866024309918524343725259324:11:10800 645433388034833613501218946860195095278996597:11:11847 957647650785556432580145427123600105760133659:11:12280 766027219862329314166231840011882676202333551:11:12033 811488363689476463556415129584105913211454964:11:12096 336583913563148457262789925999208187226080913:12:5135 588087437226663803484168347530896126741077358:12:5380 434462336618061129215700589154723453162873794:12:5246 550372237776966387395425964921193568161907166:12:5350 618849117940193137159083711806504915288954375:12:5402 548824976478150918748329396554661504537414336:13:2763 331560900095970959857246175511995835659239515:13:2658 409101402635072774075022425278605349842585183:13:2701 446538264305440912942268836356757463564021246:13:2720 336636879839296069605836249546545381698432686:13:2661 126047007956653581040401996847167163878682188:14:1412 342559550557424392402999566728987789104013512:14:1517 508084741242086917726757061729711059152158288:14:1560 170681175034882986978181274362912987002306596:14:1443 601727694743505251748197600547497710531233034:14:1579 753478603044474217738292806940918457507832558:15:981 227979147223135914651421652713782735140967496:15:906 492100525703868898006189661215423057308697490:15:953 419077972008553036829706335756173263058446521:15:943 719041084248626571592219389562012014559852143:15:978 140430821661176673618535701546873636184407043:16:574 776728412189274173004355199336747538784739420:16:639 157427178031473711359309087818008190678656189:16:578 194009367736535362606660808851969546555786156:16:586 203856769735442470697483737836388195593263095:16:587 705778802809013284750120982779104688143708315:17:434 781593961765190355248247100856596847685910555:17:437 328220695702736240907062571048605827013320783:17:415 182549845386842388462819888818856588709102272:17:401 683727456293869213035012746888729137243858987:17:433 219608865877367497538644772400830607166623310:18:290 672743442007960209316583665535784812983695962:18:309 299339466515960450927226777082718947536731378:18:295 948025167762936274593679806498647349584800578:18:315 755409380600504281920680015281555320230383277:18:311 379193812261519218520578391733383281125061372:19:221 631481017080438774954973578440898301637597140:19:227 515202345277337832685002201046312882710137562:19:225 124804182160691069774085856053048239752742273:19:209 337820626947003332244935990189462900717858350:19:220 629782773562220949574033069403420206448922950:20:173 917482512863122509793916570622073594745025445:20:177 426134616741042243518273799016234053944489513:20:170 500377643311930302623690980278201156549863443:20:171 191259587568409945233197025444294676989412997:20:163 464685129273802917788524648214247803980283815:21:133 601931432804251198518714473931942548833550142:21:135 685135023129366237817109518146997148638548188:21:136 634309370275802963275452917726052001082477183:21:135 182745340597999736275656246664058602127633585:21:128 370553958755408200423010229649452443243054044:22:106 748829967857012232028013912368093783249094168:22:109 583948651793213092431792200936894874323746588:22:108 390456988855998733796914818644797017725222675:22:106 400256383540545173102473160571855736399959553:22:106 287310961341374351943387502919693170888698021:23:85 636151605851309422901238380892324163342258008:23:88 680018038099074622715829970622687481849590866:23:88 839434846410813665653707624528998446135284287:23:89 535016243056237784721851255377484629593071167:23:88 145350167854694938363478781637850815162827803:24:69 465451396210550042581991402471782576752764803:24:72 504103460320651001256529397958458197231397760:24:72 364160543535279517370687454774862947381051134:24:71 176248390502675376114422426861793507990747400:24:69 744752783929026333355735935995603826034466794:25:62 810995146064835212347840604341555479434074950:25:62 416842811332838538805003924688168549991995794:25:60 635102219375187047526195287293826065043222500:25:61 323689099329705105445634248162987339395019388:25:60 460022970565376626646844579761311381333045978:26:52 177195884611656892178915915180325923672096922:26:50 958427141237477905884838944465416153103495850:26:53 951173358627662367208675995512369498197610833:26:53 353963616478575546968865113705325445150400582:26:51 540050880874595477157934752724676753347196327:27:45 757444178786249448305603789018198053249254677:27:45 167385330558192996657164347283899873942601898:27:43 359578477392144841633855625711394800283840822:27:44 188620718082222404105237089955703039211679362:27:43 565880150222282156752455758166297169080632482:28:39 691955136053151041592716774681170140691998790:28:39 290814096395204987966586291825455740299254142:28:38 944285746812601770386887377292362834096075984:28:40 890960552333735361473049447889267240030921312:28:40 283471252813991020213794353212540961818581266:29:34 424857469192577075743861751940588552167488118:29:34 390815360773924851970642743610492498187966900:29:34 118816746287143922606402330332333992038414579:29:33 197557975249534651381636327361982777258948135:29:33 487087402486195023203553312726966300368439655:30:30 166499701345943819204597405393170638970051252:30:29 847378598959320032569848769254216785824649151:30:31 742800792851338684844334870815814361166383559:30:31 776523589827687791141899627552130787621439882:30:31 698093762382337029130649734040320088555836326:31:27 312302674097811834469762119976988566453257122:31:27 322269523224437757974911441087093172512404427:31:27 408248158285414076108597120676054223554580868:31:27 291124357767827413520004066904929705622077228:31:27 888230749457497103209456605583234952553654581:32:25 599934254601185850525611326811729133243674423:32:25 733154519173645643011910285152659567564186467:32:25 219720234764615505923478011008878201359575117:32:24 771801290810892376481254971538653587489557081:32:25 826414192897788260362778139438341409415347245:33:22 964417236264126604565494378494805402661352733:33:23 946535253540334080176742239744093348678351994:33:23 291944673764511488789041642250002304940522269:33:22 806520379585402322333472077079012190635785229:33:22 331450952047065971376491161363500254583368085:34:20 422409087059798844584462558134455388431105891:34:20 366499963903424505269413671775971070548577872:34:20 474252565496092721636921028265477238002874961:34:20 872912119344433875981750041971679991983572815:34:20 285434525434454796374648013584289399368189034:35:18 306580959746898471408856293012490579509205664:35:18 294089353582094325017465234416034469249312454:35:18 478152558985655437762450670679588660487251235:35:18 627763282938677786368853019956629418784180640:35:19 945136478399817264470225359539314387878647850:36:17 738129348310038868949985539656944766159280325:36:17 730985705944670056338234049543328973441202219:36:17 458091064486839078000008596582776897032531083:36:17 452763999324567213649552269341272902912779891:36:17 615241797704824119795103681247249979747893821:37:16 811233705594290423043155274852763374446934720:37:16 146117753497381849336736370052281820191353390:37:15 714419309229382725640963981676728472491397587:37:16 797287590453495502118100306485863848750069991:37:16 781445337006583944051918580366727113503775633:38:15 177588775036254000853227241303444179787212682:38:14 976977617101746437353152997501735642656875960:38:15 836850542544832587245814393865860713734052774:38:15 994067797347870410342701295550305463788278624:38:15 902224972031319813035938011095112421382114762:39:14 593501771076552325720569777003545860240290783:39:14 210300424952731717567367518189159016882046658:39:13 767203032026295462178339533464764106421117485:39:14 344967621448376705014071646071933113786799569:39:13 105957052742172247781003280614586470819881412:40:12 704821581523868142706419884313534937705393282:40:13 444136688202769002494124691334642816170241889:40:13 873835591040677194673670041991878669609380141:40:13 109351056579478967694516473766293639112712880:40:12 283396777006047162219467629836414983610805092:41:12 441071678202306617695703493561185301024246160:41:12 624299299603306198827571220590209652296896844:41:12 129646774761109012899631990672186258849051797:41:11 530120274693260979752484635324642526518142708:41:12 817313239491774091696246033122726415438376032:42:11 637533804715717439190155479556085349042543178:42:11 531469961340231694050809811432509182048406995:42:11 717847704097308624600338595549176519667478956:42:11 223334094255232218365918097012291268837892260:42:11 902250795332448166262496743903306876631436097:43:11 888321895899845124484165990150238777113750987:43:11 796424554011710263798712707620143898185816414:43:11 632052671393453131936435312783260845279558623:43:11 110893530674792571522487897229923279782148387:43:10 753444112759874584952325716347008470348603000:44:10 626502508956639225223458469461828060403214261:44:10 955399078377763996227322790931467852155411428:44:10 233824440127788199130399723062630138478762198:44:10 987945116323525912018396732033311053107144694:44:10 475939419970446260478673609825421816386502694:45:9 604392639152442514601790317011331735343637570:45:9 107490629973775608045123972080371560971643726:45:9 792502255218382195147019703854928246067081071:45:9 251562712631612208036580243564055974620051045:45:9 516994611725898971221571207666459047228391974:46:9 564425782530786087355127372649903624861890326:46:9 589861569069870796730910162012834191726766439:46:9 840139488209568558435229905666669455588482263:46:9 336449420272623855001213212917068865961871796:46:9 926189391480744388225371936614530882721741638:47:9 256430151300044732238765385885858178772013775:47:8 526180185580663529306537723179048963322310375:47:8 519105975142108796929276331118322440287183048:47:8 303359446916399619130361840205748020279029005:47:8 346663285473822622378835180267254282848357620:48:8 267009129266771484319745778362160031155184894:48:8 189528678621154166730353778995618124927710029:48:8 720833597579956776519043829396337843429689026:48:8 737218318681514798683063638946683980939267005:48:8 197974308856674707918434573913675008491160367:49:8 102748319962671627717322077748006476168601686:49:7 405557494306180345623600909700516153022747279:49:8 481151323167184525707745440368702618064598810:49:8 486853290915285108459022439520718085349702818:49:8 404235265722983410763843398429094931078839272:50:7 914752090015652088918235146190465251088152461:50:7 821632349378678972193829558346994427179083123:50:7 962633783742277317334605176195853407039861231:50:7 126079106318673860946853833147519750805105954:50:7 463113098566982836978607937050630954791058760:51:7 316751262283049007348657633470569305950792233:51:7 758566796568304723138525477265910229744281374:51:7 649758194502538537572044280849908270009469455:51:7 889338071278116499491302107957463568287281108:51:7 971084833731457975373880296018886890039242467:52:7 816879197177731695663087738739573316236898167:52:7 724979885485242794416521091096889023310038529:52:7 115197552952086556686482129834566096044050680:52:7 771274382121879976510355902443004057682042856:52:7 348903949367116368056072736252262021789724217:53:6 734985237913318717789897136084721831331362108:53:7 205399635701248773276737110283142112264147367:53:6 867021436267595837286051666051998496829817860:53:7 979630137382469879393896425593893393926885221:53:7 388508418933756884588759883619953393056624686:54:6 313788218408811072292891613219912193858399620:54:6 340146004981616769539753407687616115309934305:54:6 513813798968037301724490288258109421329740150:54:6 503416719594967858164853288530925995003592343:54:6 836072181703823174800039373435360317176252085:55:6 125041611477279146316799607589127103652353574:55:6 903507476156896248289711838866413223538878321:55:6 898636566963022257673556567420093894036897140:55:6 385000030116183378492113051084875661973274001:55:6 680757382901001326257676666084049846020030534:56:6 441188312282196154842603700439453754320689640:56:6 121380672570143411956848476216266039276251742:56:6 829269631185125564739344356681521172219819957:56:6 177155444853463402415354520204153644869210759:56:6 849442234046684355659691988318058992496277335:57:6 497069892503440310968003081226159285147805023:57:6 157345575148917026880208815858090920501783532:57:5 965301440176316762132856789232192999272308195:57:6 925439882505452258685388087284195346721192578:57:6 949617528417029246771049357256466127653114643:58:5 497967670651616119689568263635275973557233978:58:5 511717354928536677254939504745667249806701083:58:5 592611740454497958731459956351888514149582862:58:5 713456766364315217071220016340292733758777035:58:5 342425131633952247241292761742514026511977899:59:5 998412473309998393111767643575697345334341956:59:5 684666955814988366529666266983114806212134155:59:5 925854683981431352201173394844326957729813159:59:5 188640986714679274666394300199589067553779021:59:5 686133227019267872830591057391267190674216577:60:5 682431886115695287509713312483783577153407384:60:5 836037311400074179191178337245171664885249464:60:5 651069019352284739206266545653356012355145218:60:5 570654208792687328301578529850544402087591521:60:5 970234976592056700286397481919133239510183136:61:5 623758312829914928102858185764982224948774197:61:5 864540616407670119444293478180247733035067542:61:5 538498427319271643114957411748227250286159400:61:5 256080681544272775868898410266625964370401137:61:5 118935851732618395181347082545026406885654697:62:5 564711787965692236497059101480870613701732545:62:5 346379026363374097833370610239618233816473354:62:5 150186941355725197069537752895810890355430667:62:5 717690647058066204725317005599250707210962508:62:5 788322528357307098138819925601606149783854487:63:5 703803900294493281659310475540836356626117997:63:5 551659116359942620501589894141335279310266728:63:5 709628182899738205744199175329382221694858013:63:5 532529912911298959319881067123131449634345842:63:5 685991046737132041764196602794615311588784259:64:5 273052786697292402619791456273390969014432972:64:4 787633816202457419101805735972329398152718425:64:5 678559416528576533864765763248466504117540493:64:5 861790117682414067402756698664680970521327527:64:5 606695657241650593454456871591136223148280262:65:4 730384021727433236792147523857319435984195545:65:4 597570449328293517343170109193655578660067731:65:4 260898057710252411904122339099986948861036880:65:4 280022868861408906308521035516836114064978908:65:4 628245097468870779801323853964001867511158267:66:4 905455891480331379961110589190462897619662097:66:4 965023977053593526947435450664334059017588301:66:4 818325581610232534226085126841015891746096722:66:4 216177760928260209540422486084270601921093812:66:4 555330818798004937394989434367481331401832851:67:4 183964582539577495033293474795428074299430609:67:4 621148128688342574995417173274150460747924717:67:4 254122449290755775265851587045442350067561239:67:4 418344369645447039679473180623715861065035226:67:4 134931946001819011799258564913596785730493710:68:4 202602857940175690720833216779336527465786907:68:4 129245921876430696174064009000849087089083545:68:4 610081640257468905969630775741020450460911618:68:4 252835258783755964391608125457518974400671387:68:4 806603565699167311200627456633432853360413998:69:4 230729095042259890382190268552231775659920296:69:4 323693010633043502430611958896844367253223403:69:4 321342376989318890422048057427470275313578256:69:4 356053813107553237107057883445745025107679569:69:4 795645468102465721524269444719302661061696897:70:4 208787605578296595207880613452848907798195892:70:4 402589105510699910527557593556527582191712340:70:4 943859911629996356311258868230944205727182388:70:4 608032947682071605204486557296578548989682200:70:4 618460754779843532134331325925412217153751391:71:4 413131840161941200647919448281999402829963995:71:4 485870002183869516522899016473168443827402968:71:4 405367771201774432962019169656456640014887000:71:4 960800589822698668379586660031919195095889031:71:4 115004145060239969358466994878827800643014988:72:4 427627664046845527966144946696643077585682618:72:4 344144793392241416668157623996449369919701526:72:4 875469500321293186248575266542784177595400261:72:4 996503240390318180586633881680992939421498670:72:4 287032475910513932547384838706399114861709000:73:4 499691990459278253789871882210470862494918298:73:4 832501961895166673445217514607629817483048058:73:4 538875672779265635842208419525826267576124670:73:4 493551879319023219548447947380790401681889763:73:4 446758014809145270027652517977699814087102565:74:4 796882232028271524061828485831561447206095155:74:4 334395409989335443513363291616854019930710126:74:3 381096235420984034960726383372244644309787855:74:4 530989927337479460889619349061495206275914297:74:4 517674324417944807190536684535588403348740812:75:3 571636861346472163135726652798302504865960652:75:3 641254400428458372629910430277576531234329572:75:3 568077981228671133933956085114817393850501777:75:3 520067343522721225963058211486037097012542800:75:3 371617951682399412401509828845989156607291005:76:3 192881563722480403745597926167454159279856934:76:3 146968187738113960018192116520934868465097363:76:3 584162527129059853876905873009304390661992573:76:3 400392714825030635652371302341849309302264954:76:3 775929870898754743753650823795479907717042366:77:3 153932880939564969528291680254137075398318941:77:3 738225149254073219764776378721867295505263645:77:3 387626515200625388169142260990284035272136205:77:3 737766826556888268319977957010486060050542230:77:3 105420156554471331850805209065882564438795571:78:3 396986588875394848075111118764811089382421966:78:3 993429251666636351884592613273309144599791038:78:3 289292602220632113940527923414769956858132459:78:3 885071519163019746448809003939915440517677092:78:3 238993167546183928468553941398890663041250119:79:3 774305696658949697491771192515824916503784485:79:3 393240669150282071151849995045101621199115495:79:3 263554894864277243462090514584539707935616305:79:3 970591341370265438560680182106678251522727756:79:3 978875282456127596514262141277073205323335266:80:3 137560565391207825665129657356276814687655328:80:3 683642215170581918460106441719202047473474060:80:3 780710048956737313734697969353904858319496177:80:3 370353207163207924709841094204377542051116710:80:3 933753167710753563843931566828780597013664535:81:3 371079168710790630074464798680177157561556635:81:3 334698867861626358494717838427639425895004722:81:3 919674346266938829001423261291468839835657272:81:3 611916544135976269401849369371805199651279896:81:3 187839343691342333237247548914432547428412575:82:3 524201245969491190734353166263349554976714320:82:3 960371011479382862268892580414970445535359107:82:3 445150924830748510843515739003964765780928741:82:3 852874828349601579571149675994043047920889888:82:3 835532624628950497913627908244318829995477320:83:3 940781424849500946555577068274640780943437705:83:3 950401204748574921184841971989993251516437637:83:3 684675547716639733463331029196985792161974878:83:3 695356437763011363752570747537981022013428638:83:3 485858732931353124759504353146856907318611064:84:3 622306645577374875903505835439031645422970778:84:3 881704108217823180636976117959772421569276550:84:3 143939934541509254094617079306229265076781731:84:3 407997759933055814500185036157947229001817065:84:3 449692070350745954521337331093434973480990674:85:3 684408959427612657845090154921808928744740493:85:3 215019137256414340512373954082599925063636396:85:3 622784010006757780118251587527368663291701927:85:3 715244204332052830941536782097205074337321837:85:3 448893255044421202564962680672652944000017986:86:3 201453302244782816891546795382041197561987037:86:3 304935251546805099988103819136676754251117094:86:3 663610197416865463350699998930422501408877849:86:3 410838445495372022685182652369404580716706275:86:3 960202538681157375502759822782310768010645874:87:3 175568171251799795137984974094633581415511028:87:3 164052222191873489321194851294644563884420850:87:3 460814934106301601951816058206202233992562278:87:3 799888490237709222859087559770791646531377037:87:3 634005709596130705674719395637017331562883866:88:3 574513535410136832279531974452287712300380819:88:3 876495961838318427687896152475358436990618208:88:3 877895909466580689432351605853185435030283219:88:3 554058352790532476769812669424867735923436091:88:3 789106365120791567689732623239656867039525677:89:3 251430700177012000060306971124331803687611867:89:3 323367791497544828899941987628054260505139663:89:3 987302348433198175204317978098955126984926321:89:3 217691305417088967140862116582556422045205242:89:3 154901013262381653341934251787949917582503652:90:3 874880442539918142664824278543313404421505339:90:3 636558607998747332019949764725432689044014791:90:3 875305364550505326078589530101080686815077345:90:3 714168147333654868468369779128795767282927938:90:3 436415141170999975141783000790602163601373463:91:3 332939518624335294954010309035744961403566556:91:3 467501031135449817352048635276585769464871653:91:3 819830381931637158201705821112463228003727453:91:3 999994806930656495313295724299630417438950417:91:3 522973866341888133250133945122237268433856726:92:3 403182032731238816903818564931685060467381086:92:3 206128129025643257145937956874589847944244103:92:3 490561471405295947497579882260022383155031465:92:3 299471553758046914445169363611866095186986207:92:3 689264387254069112199310195361813306497343925:93:3 219401049523471355433050003373336712711287040:93:2 779135926344730715326042613270825225748680837:93:3 692140470486845129098201285905668485811910870:93:3 972097811781251337044778730352234138950601349:93:3 827409940325823216257680106534007486394511762:94:3 983138300196608897820671605594452302480685279:94:3 750318328597715232355504469463426715583578624:94:3 452840017138919571470321343485122136093904310:94:2 456380512222266861278335540160681198709167988:94:2 804315845753310483951321994136397311404488606:95:2 182932623190434492298896971171297929074986461:95:2 621264091252532685984893409229137955361128484:95:2 794319862870382922738412215190635010718577397:95:2 359358946566946281516881515925027047619816389:95:2 445166232592645829553879145376615105292375992:96:2 548368102962207731991343343159815471921588790:96:2 297451036507277809432921840583371499367247503:96:2 714925832060891741908644316272837274361086773:96:2 300238547412218276044059732358028846276623205:96:2 668556432033769813266115247961357839989161815:97:2 299326871483721596470435625517577272725168900:97:2 473270133175944803029835703341471653360598180:97:2 882381200992965944983917264653641281047095426:97:2 127622167070827758283876571091440320370155376:97:2 589991650900880771231733943637236316908719556:98:2 499576076136347294059858673935623398583495971:98:2 394937617113097410748456029153974268990457132:98:2 802453540834960009699489369032497614573109471:98:2 461782763054270415926087423101165025228677926:98:2 337999072173084369957434932351897504803201826:99:2 494823014319574066941988235524121902383155370:99:2 803152047696764044164821452465984551423812104:99:2 763420563358326179577774786872396594045555203:99:2 223427741977959970800006691214752167559388166:99:2 184478155181589760815143840481791189956746581:100:2 963022642099458548355670697911544376319446388:100:2 640630268720357314395227222261086221016894384:100:2 105493988477185546303544777117947961042661745:100:2 250033332575199872012775429185695601278462799:100:2 6628055583282014125772659381580391988169132899:1:6628055583282014125772659381580391988169132899 8477572113353275075398469257410424364017347235:1:8477572113353275075398469257410424364017347235 8559780631158175390762535405394263459013785595:1:8559780631158175390762535405394263459013785595 3761137524603457057328257623416128341805332266:1:3761137524603457057328257623416128341805332266 1586785679129726248699633779604293374939425714:1:1586785679129726248699633779604293374939425714 1721655786432095842977503200799444453006190167:2:41492840182760396848903 3730372564817173095033051180087826233952377732:2:61076775985780168675167 5239647972928093176729395824321066586812013861:2:72385412708142330358386 3356009692419447518092288258739528270038652504:2:57931077086650542597231 3079684078541625949944066841721399988820180500:2:55494901374285060981140 8185664490533104210502079455727769879952202349:3:2015353868608743 7813919217704675174153989272298730068688857159:3:1984371460628120 6430182046223939505404700083453119507000640520:3:1859549554295862 4994820334255310365749520084587515431149193616:3:1709385269073198 8431506501989710337218195558238842091149868830:3:2035331058068471 8571499586596108890696377122222618231319221504:4:304273550447 9455127773586944627704599992382213372879380944:4:311829250264 6893080510582451205505243860357112032819158753:4:288139857968 1666345006482931253022340829569851372412377483:4:202041800971 8943580711479067500966135109877594495112687073:4:307523180528 4501610476204093226799718584543221894523269089:5:1351056721 3137297352394711113687677785210383617462881967:5:1256930129 1110175280034390854905760729468451608018311890:5:1021123592 5739002035220641810367901548614647394131640057:5:1418297298 7038928196604056228090902625807403375043501786:5:1477410927 7011360781837166462390246405096327476087822711:6:43748891 2003126653673854948470086228613438749000748259:6:35504609 8324476097129175066188506351969190576178875085:6:45018686 2146904933472239188192746491817947757582600276:6:35917172 7151574189825532414178684318002227399325415897:6:43893506 2945322211427714724033362856239078662259749104:7:3130332 4778438715454181032114768952200430046082744969:7:3354380 5650846280080474403437207238353396678339073754:7:3435707 9303446094985362920267132564186075662337865329:7:3689343 3735009105933027637525677237124702892190825834:7:3238376 5524815980298431959315174697448389107091688065:8:522143 5015848368309458549352318059105409260045313689:8:515873 6641341275067223675536941130550715046456670302:8:534296 3926779071236950521232050222017830815240312212:8:500327 7905476737965015676343982342671216314896985259:8:546060 4458756738132610778777774109768933717302329413:9:118068 7309194338985774489104125130546068419379190463:9:124734 1023181438869134315786745529332624868781613785:9:100254 2285907583202736984624296513214164291406445467:9:109621 5997997332774834576745293689008899190601387625:9:122023 8904392999891042145371064940136573413632975604:10:39351 6806890202059018425391339996117743492740612211:10:38308 6629504417439986732995163334739851144539058279:10:38207 3732123204582870280741104611090415951165020473:10:36074 8541808753625165528402441698659261700850406578:10:39188 5736631382688028862288418218252535103393214039:11:14450 2311955704118170250712319794243221647260095735:11:13304 6375237833653525568473133703926777527742017568:11:14589 7991002600509810320310947868269039661877797628:11:14892 5289272783686394373486339238689114894309981139:11:14344 6751731353324347200474962564111435685386899492:12:6593 1629429271372189762918788477840414603247398153:12:5856 4517671484519484672370075503963544300986859880:12:6376 4814367651900877940541905858924700706791034330:12:6410 1422603371271112614372084503088632291437722696:12:5791 4742552832784282644511331987497822207273983327:13:3262 9220301999004925730883256501696333650335188497:13:3433 5390352141193095036228386803121264417359870737:13:3294 4550385164227683104406075943743750692449898863:13:3252 3920364419707554263740616937693473120965651642:13:3214 9577189964144245008986332176735330717103882451:14:1924 5929114145433523491584021018262245546774234719:14:1859 7324800757347747688989070099025670001354383027:14:1888 5678493999674261841660039123343805106868587877:14:1854 8563079024572290160673281512337554821755877431:14:1909 9094962528286884093430895590484879443958242588:15:1158 6962470237013458314375187629089251981734977173:15:1138 9446617798490392385353110848956307918818803889:15:1161 1547586247924940297155363392366797376262564378:15:1029 7160823168257045677698482494946164329684681939:15:1140 9245141439571021726880801907779126913364137960:16:746 7129109770573331277090817071583961294300183246:16:734 3459397078307153168785735851664361148724093092:16:701 1726378994047014108204282711864462642976290534:16:671 6722072805285444822157101770142992909171949763:16:731 5796545146813488143728406178866827456980258516:17:491 4185431428291542388564386782915030341745446810:17:482 3729539883893544792662100773270345076287607050:17:479 3869839304076535418577128211599593427992953484:17:480 3235813173185140342618774609395597411847878109:17:475 7178090067281686513513165268432635932161773210:18:352 5731792908216885241790854653149857730049344743:18:348 8174093906430465011480297930894240595873497595:18:355 5622274740308878787966327864410877897740558246:18:348 9211377970116893380794332203411102164213150307:18:357 4676485395078242056714775295298044601731353542:19:253 7209917808096978273907903152583256978110553387:19:259 5439706251966613588301516830916477302456339322:19:255 7272630756012917040302969301385290133877367398:19:259 1009631998727380855964543057802348889141792064:19:233 3924043841867299962689239593033768379317647798:20:190 5785591911970039403933835540375308772493102766:20:194 2243568192460448103457327464774211444972956234:20:185 8507187511786343133297468322471336220395676234:20:197 4381382187338548827123181830423617997506311803:20:191 7245672790426971552741449239530729009727656321:21:152 5512492399424501561996168523274326585034135473:21:150 3682583112636614806719731250723703160730047707:21:147 9465054492931023399762985460086681874373610595:21:154 1465067798379629729129951993400124334522441583:21:141 7900350685758928840148413318931615948811088761:22:121 5080146943310681901932226077699576206734506123:22:119 9781560379436342598634142832090859298873809946:22:123 8998029083363942377426427035927370534771091746:22:122 7074417920864385658596116312140372374708044723:22:121 6084004596194641770910378774988856584655513724:23:97 7931192734437548914668947647490299355548264936:23:98 9195007812311602573847353987670180868917410779:23:99 6605393585961203913835605076317200193209117012:23:98 6784657089163640625507222885353665809835131976:23:98 9679637370096701740431904468889523607434563493:24:82 9825914561383291053239414147355265645810385267:24:82 5259549151844115614880797184427016704616928347:24:80 4267662726019466760981599626129803268188582952:24:79 6326826090028816449534754024752586217714507316:24:80 9253510659851188193204276520511640884393834218:25:68 1328028062986351023027460171132548478892549234:25:63 1440895853700766528231187178992851480734383813:25:64 9323464796714802478000053606078238248186160663:25:68 7278319527525900709022490360574984393759615691:25:68 9305003760853005147792568482001908103081517769:26:58 9015109794316396473303927439810409292052641124:26:58 1567449712916916467863307413294640134314900285:26:54 3837945554878630221977201558686538548862206422:26:56 7792773558906327895278711493813316658599783730:26:58 4435763596328351214071933044435623211278499196:27:49 8032941610047366258821539971858090031592007641:27:50 2641985514103231411011406549648464904330877849:27:48 7534638433023498782897596198533452509062110082:27:50 5909040726613840599913848886913406754357057302:27:49 7939717028516548407934539467433628337535750594:28:43 5495966071866815217256154321800757200366324265:28:43 5708584409446567697369511625321746348832860295:28:43 8195710623620562291319774725730831832595578428:28:43 7615133313500145575951763520379830447050630281:28:43 1377847096409374027203149195622543879501090432:29:36 9508605434697314465312019768945787209135922476:29:38 8450886878103946048116450564425035127456104243:29:38 3073247503497345318191088249222328407441527818:29:37 1245246829857783075154475321509247589699124551:29:35 9445923660083913498184520991330795224330551455:30:34 9556960606718271400589128283957896191105187900:30:34 8546997446581507565918291061446045526486367965:30:33 8082017261189755786155507422786943990464103121:30:33 4855003950576568181018645506593037471813637721:30:33 3254411054802582537821000673382334520294413689:31:29 1264594990237160459727235110951918818352518933:31:28 4177845191494827381571686581372591185750520931:31:29 3440257801469492960963708303094818085710180053:31:29 7654900646315749034523321320800880326275253838:31:30 6881119166398265873964806186517504243983326676:32:27 5217389221901438719511188690285759982154405515:32:26 8357371219954541229591599346969077244817378699:32:27 9435464768733094430128705394185884607696719016:32:27 5272741834889605018476097096154931403763116760:32:26 9447769652788804020883354914969106876265228331:33:24 5695962985910586214901618421229244902221450271:33:24 8876676623780608183751570387137263780536944980:33:24 3999546486154144209563820504729936530754655513:33:24 9464736930087794979167817917221322805404321446:33:24 9067482276735776026535710765743142224246230817:34:22 3002631900401285822604017697100611490224960611:34:21 2337323057929418316639561395999703958101203553:34:21 2841763720938206214522971280000095791267857411:34:21 5372840137197240440532233339508194890057436389:34:22 6395732180220885007675105987284447812616144609:35:20 7179861359839192658621533765264890033120064111:35:20 1526380555342588084908552168125912651285416368:35:19 2970590071084701867044208427718180790122960245:35:19 3294137463584963626211816288737822830631527507:35:19 3350054808241966494309924726195426975734213995:36:18 3953966275438188351078886181370047114297882263:36:18 9185250606195323860967049007315797680684371027:36:18 3390904907062687744508199522541703328972210316:36:18 2135588009517741363327083484789201547716657815:36:18 6062157203646183114512644454683638542776474842:37:17 8247634737816598305116452606075715006568035291:37:17 5373411682220549626814429272173705461839852442:37:17 1914073195038913712308479376316131963396045277:37:16 3074007725363398984577167581302280704860170942:37:16 5895245332463208904497336003336093765854183246:38:16 2823917909283305553744892466224232906226280088:38:15 2020725615919307143768012160522631921132145021:38:15 5990745196141520765800739775240854850626898254:38:16 2575908487702691418954757928783385133341938049:38:15 7586702736945618820451339170924696602641330051:39:15 6998146250091383020420856862730421494887449214:39:14 5772108071126141319306611522392307414228726135:39:14 7030151376880787655348397172606774751718615017:39:14 5012389090657389007492424730207119307375290096:39:14 6727859874245515073472374083307139271666386484:40:13 1950010871474779417250369567947621626867297749:40:13 1602403754698912652864507702789379958348927322:40:13 6161207144044479243938617337791559906691280672:40:13 3382297482454428811997946050359461852290481125:40:13 9181763417555698966826319270465416390690004346:41:13 8211539394103935603734205915951508919823290852:41:13 4070354413893740320383807416879430968513451749:41:12 9489397083359228917348023407975553792660920904:41:13 9125185973978786456737677134133679090912196917:41:13 8831278897586044501133417333599149883193521055:42:12 4244791913116167930014583191674219255770038132:42:12 2546202582470862886372780857642681358051887443:42:12 4056362648610287282935410756193721553692586768:42:12 6969374970457967455574469307370217498573164503:42:12 7815139772880126989741106770305623501177331801:43:11 2400290111282676779531748127899079976592942589:43:11 1700248885327721779386439554176759762230391263:43:11 8292201626752372474389040462782003244937961901:43:11 7033216430265859896017630113539993068402127458:43:11 2892456261239348454475156556363818312137707856:44:10 1572199848324846241808570256971514249155805867:44:10 1451145269339666845571971046533043441838945090:44:10 5965870215960575766760120187659756854935525388:44:10 5399543326754010875958686218011498472304392681:44:10 8437350196755907663417949507517453215772846479:45:10 6838433534656549164426201306864534085738930031:45:10 3354688589901498876559861070148632924161994662:45:10 7345865873535688149395627586852813339392661064:45:10 6813811860835474635647442237849685460603206630:45:10 4163432118939758609567666387524580348218324316:46:9 5558395507729749210205879555621425599276448533:46:9 6774316304443082011011803546659361713442876096:46:9 3196182836143102024872684190306360958949032549:46:9 8714619505754889950367586951896096564103373274:46:9 7620448562668474338115227338786208120829267597:47:9 6653229402622483465315412981495275100682823257:47:9 4163976453606259186245742520755238813155492084:47:9 8548032355194516059328104672569976955697185568:47:9 8372906409462075502689143244030092765594521328:47:9 3726619701082730153604803468519648825479438228:48:8 5641424615960255047006711985579811562209611161:48:8 9491766633426028205683406016192811327958078805:48:9 8868637007524252416725287492250920919854750269:48:9 3964245646846278060602579108661236098135366520:48:8 5668150230762473219268980297115483623118251478:49:8 4563048214801573538931834279531785168085437843:49:8 9903493347353600445160412096883415432663474318:49:8 8892795883821658365207473629910319597056763041:49:8 1384031573000553134208510723248686836035849159:49:8 2437673130667653551192138620599127455249211640:50:8 5344304648713586082050445574133407775481991033:50:8 4533941121310235164208810307839978878333605237:50:8 7160805263165259298752621759791086453798044157:50:8 9839700433418377983793623144383996161626952554:50:8 5397494717093513941393224747688379241291100686:51:7 6764418692665839731688822010383598216007013356:51:7 8205368994882163046782356991829964818835367617:51:7 2539096039719578298747943220603378823099067276:51:7 3450926659154524059310898817380156718637157968:51:7 4331400783936617693998650924678588180152200042:52:7 3892746260989579020478924534708154517105615304:52:7 7238020197664456096470124194409329701643059276:52:7 4302796038763191687736696543596235611919374162:52:7 6893652434239664962015555103661440568142705153:52:7 5163573745657872488284942471445857025754482414:53:7 2156277634196987375805955070090300831733078058:53:7 8172650586736760960976564324406956015927287047:53:7 5457637549774851862063205210087961327872823187:53:7 5082743765878195172589554241065261010895052209:53:7 5445859625230078450883222930808260118094198954:54:7 9120473141136633966973961842064200826094887218:54:7 9059656545316325167608622422867365378999130901:54:7 1346234706321512052347176049443463389320113580:54:6 9765711605719182436298039655699037116422521453:54:7 5452984155930214170885679916471288400009717865:55:6 9501561544700406547301632880730270693316749706:55:6 6616014985903813975235216134361398865503563946:55:6 5556062874356418267845257637498655986445043187:55:6 1955005942058131683560521084139226374335218939:55:6 4502099944624457346547355699877105158440520096:56:6 5939430963854387271793793268242870443096280717:56:6 2875034197503778026387313149343198767136595962:56:6 5549192434110810055052692500433176771674428723:56:6 5897191950843209679151319499736912258418675963:56:6 3077866944057851874566722582286890787188565263:57:6 8232425780447517568083129326677681557411117637:57:6 2332479308054605612885896555232673031343758593:57:6 1320378646797436152221651030192866751602908288:57:6 7049649514338908135687843987777535347907015848:57:6 7306121531745321781203277031743766520361595088:58:6 5220131275265801652014287880337020074536266608:58:6 7778602057003159441153307800109634976509297450:58:6 7382053644502182537069119839794692888352942959:58:6 8949614224390495034292675805906535340917088122:58:6 2550505563937536431702375818184842820354816925:59:5 5004721476671720113986466385052099226233297727:59:5 3154014303367520355709060531950422261948427730:59:5 2130757291246405935132421148494552810536500242:59:5 6581272196193188332372082183293746483210523949:59:5 5774827562661259289982664183289428826138438274:60:5 4983033823316321418231592939233037725200766606:60:5 9112022223060178579598893001845284637723136112:60:5 1283926313988531072407443287628831303297030941:60:5 4798255416522215270703681523638819315496499150:60:5 8465783990818332888660996637104261057710281859:61:5 6243153345332668801570081037790297968174450450:61:5 7217903460575087302769085185018760634487663957:61:5 4224949298699201766798611910706028260949982780:61:5 5428691258114779547731826574075424761201306869:61:5 5594170793459426790383163291196927447870972342:62:5 9520477021801886388450389845486272764915850225:62:5 5448393263235064683204557918996258044853032481:62:5 3106010572876420393205899142459134898183606631:62:5 6173597846268346021743336102334141132513568500:62:5 7747324766885008687452675596089896850010177065:63:5 4861409140417278081185244308163818469079637548:63:5 7041773595832479294730798122464644097215847425:63:5 2069854558652993030250901036265329583815905270:63:5 9371904710537270935632007042225781940632716698:63:5 7278789858769703663826571160062085610324396672:64:5 1941637681089412411161329792157030424911523396:64:5 6756672412078535628633471769376249607654227297:64:5 3586116069180537553165803196545027376623683426:64:5 2513631182594997848795720013458976522103430013:64:5 6227237853340074809000264619568905980049417379:65:5 1172570299422702551667387440807001697239255578:65:4 5908455532013400960827987942340859840300602089:65:5 6070872748965357107725501613586176846322619519:65:5 2629131064324144205024450228871434712823034772:65:4 9006236293917300889148254354675611721220498920:66:4 4373091980388453966105245600474450424783397363:66:4 6316875604501664434542264853594363821733340517:66:4 9563136038196786058324660179111510014065818308:66:4 6775006923695608445304035450474029673635266760:66:4 6573884297413734284905933413913318739303327279:67:4 2212406826433603402290677644341106651447666685:67:4 4198564782091597011261460479814529383125307088:67:4 5165554806379028032294932156183399114102838543:67:4 9243995206659087225396432050371082597259103084:67:4 5120706786975552524567741529208821167303839602:68:4 2811663938374528624775044773411219628395777899:68:4 7198590761501653729849083025034024902068954458:68:4 5361261874597473308808803227519141971246446404:68:4 7750346749442981939418277600834433186528821806:68:4 6848322693517535502158877793646432142881863808:69:4 7925398428402968236891327620523492490487423455:69:4 4103470593327160711488523905217191930940292563:69:4 2399081570373008263693342187492542333948276223:69:4 6224047399956410233091802047717688324416278315:69:4 5704885899132374031126098590447400660493936052:70:4 7170069093662866989306162911524741054087466911:70:4 4588344668395454571405274610381692851751522196:70:4 4852369694837673350325500321655138761168953581:70:4 6476862933741677539735660851441502828209513757:70:4 5343629640798728081975473421136504059461868593:71:4 4446781669342460840175023900052912438710195428:71:4 2676126271351218218003598192510865573058793056:71:4 4100249497238546294602824646408856093613015386:71:4 7680709357553354398295687571287665090738140393:71:4 8720559964829432470113797273443485399186127824:72:4 5171801650967943139768706603443990380556347121:72:4 5535814651259077913703758633846993471174707844:72:4 1296736327565215387491614029341425194285415786:72:4 5179080325941200576652787385176072570448301878:72:4 1324959046473223580449345582585853417776552817:73:4 4905334680649108021469008708567734144767966788:73:4 2205081730279679354118125617616779296266479244:73:4 1709602651554030258127864825872161277987240153:73:4 7191926057296759702956914129653618787266532872:73:4 9684356704692942076318489310738227734239262653:74:4 7933089372287711755538236892418236606369268037:74:4 1007648935845906960298797470101483020738951486:74:4 9486620989360241145225876089982560045959404872:74:4 4559194461223953804557326091223562722705161665:74:4 7529945318945004229654248982495593750906694928:75:4 6484974938704366329628120537096601607138157707:75:4 9237260935200769157418432318885986575303370319:75:4 4226485493365270115983524157480747117657102451:75:4 9086171281066478125089036847992322712816426977:75:4 4981556090532560589404768749221771155916237945:76:3 7384389093525906026431633194381985202567295004:76:4 9675503927150316249693799339905891715325948776:76:4 4107805818898710304920347720296705453490200322:76:3 3790350709933168096861746520900346260470248357:76:3 9913410539085901206829063798809256056233859771:77:3 2117009177768047028358227253256260550988123494:77:3 7198454497044820408593899614544085793572337170:77:3 7820358402406498208458392316065920883691209389:77:3 8827136753352115250764191112374853044472735288:77:3 7215701251328552196437926428939586024516427379:78:3 5756663579392397341569195409504400437722225137:78:3 4714604632976406253323644837378078958312432831:78:3 6384458385196904348978935906750243498323733030:78:3 4483635407780513742513059649374076274574545188:78:3 6282799273038972188177678220343859758662297647:79:3 1064687132654959467585752977770021626594406256:79:3 1716592680017418986277283491444980913924236318:79:3 8473178673383670741131061234196741844061722569:79:3 4861782394823852603341766964754985633039484725:79:3 7225824808290186098271149111312941874112898421:80:3 9523669757174528501261215232194009078968420436:80:3 8694356583904429272182934084992803675802623622:80:3 2231688553637037189257084828739245530151069216:80:3 8867778231582626012106606696513868817188438565:80:3 6005371994149577250080161587521805417485482893:81:3 9901898690430141874164458609120375704902208089:81:3 1951587810827068680742369983222488274249659381:81:3 1217014766607501253051857117428460889318624692:81:3 3584250293642620112333492909734892361519842728:81:3 5026691981937134020967876138823018221780527889:82:3 3364977081058099000264534589075049893416839466:82:3 9327636573521516633941406989473658743099678254:82:3 3817054835364869772931259433584421638704996333:82:3 5375200519539761439691167929762390603480851216:82:3 8713566915872674270102968004809446118384982717:83:3 6176700328265053664417298149220208798614704517:83:3 3183149383265725250966209225889825282975668366:83:3 4490402532226143324716159102709276472106329123:83:3 6210922961380536400461707545892589042965275506:83:3 7635364387077268038625965018087754622140309520:84:3 2088458749147875892190874243051171577142162637:84:3 1566029451715850824984264289951882081188167891:84:3 6540453491407628738059192994483966519689013993:84:3 4103025282607598431982070990098018769766262314:84:3 5824677662642605624616967649822031611015588259:85:3 1149519495842941447707890120221973540837314247:85:3 3381336419898152849960902064708400416325193240:85:3 4724621417316198176464448425339680679802646000:85:3 7425445832952882022290535227728318697998190942:85:3 9800426095775225496405308999802211120312250543:86:3 8256733156362618954921020554840836548333289766:86:3 5213162021166657906827828165159759667191000126:86:3 1929818470291523435344587346712165250022950755:86:3 7967800397868816640159905438247444764812948797:86:3 5100455232349904676774955883630415279462054698:87:3 5036468292103864038672054864522713308430555745:87:3 1363059997480348629047701260394589570227135456:87:3 4758510915560016793033213841305543200404341903:87:3 9080956499349474395800928040588001122098069167:87:3 1353643351511289687829826583990194444841053262:88:3 9933591582057106571653447040860882629083499058:88:3 7994833468506380883970096420161918120059291551:88:3 9348774054145453091436571114002991027297523674:88:3 2212367431675670696684447563198416446550694203:88:3 3923036179645719773310410960593384775707368799:89:3 8084743810048480211458628331441182105291794083:89:3 3224610828538691783315535284096541625712823983:89:3 8835091482558856829236188313130877236850364172:89:3 2434614916087380524760130431534252456842369759:89:3 7181986503006362579452311266592604319233290483:90:3 5410430239076121219220851766710971473864767064:90:3 7686453282502045400244375267619238606216474222:90:3 8793374087164555337886144717092455124945853407:90:3 3268350164284335379471205797578071464292086335:90:3 5748889824874975704408422463328969346576319643:91:3 8561007391876236452667177245050821342214464013:91:3 3698281407701356804748285938117555148995086168:91:3 7598919613986101017569672926786336479204986848:91:3 6435229184613255640996143638593742280655571189:91:3 1544783414601605785893173004400472935875389028:92:3 4444085757438440202310676610225116358509154271:92:3 8480895582302137288020716002973575387417061628:92:3 8499846034243408389868638649327431625226300122:92:3 9196766877122523318744108948511238050039425178:92:3 9612746456882488100651166867665408291829833458:93:3 5175525324923561856043365787850749856332310174:93:3 4183579787423212510059526348517947035144996216:93:3 7717130539694366644138388465804525926558541562:93:3 6865313716720587288907870838033398647624219770:93:3 2323279596871105948064692583251343683041741995:94:3 9763031792830372010205410268649720662102869430:94:3 8582254699108633821846736376397724474772167730:94:3 4904861251205976383435397696435372091403368058:94:3 8635025340484401873766057725912235052797185286:94:3 7568706118404514524976483239418943888157994426:95:3 6196898607908757341923633748153416528636339036:95:3 8950654449154359301951004265413226859372475053:95:3 5363487092375170644507703517168656530680142265:95:3 4980824469673433740376158486921353849792790972:95:3 7932238252421031262760402047193644326715626307:96:3 7264465480593233360769251522350843652084199146:96:3 7075326939508622975453932879968722521873546956:96:3 4527768684216623172452660982586147546523993048:96:2 1717831207587615281179924054800591747922394564:96:2 1033793741760067389440550008767579178175450549:97:2 1390725517791233245279204341329281888185825469:97:2 1061040929645301791832645665159814296201093416:97:2 9457660304427043815103371439898534713213571184:97:2 6137443080576622628770307445091016638841444719:97:2 3721942878650399793755248614602741838472070429:98:2 5171052494828833348715357060484364150586608055:98:2 8580146549602407292601057376490710295606047480:98:2 8925554660365018254456139453346253914145707065:98:2 6375571519979578236855982705085926692466306399:98:2 4353129125853992390242930173984104102882298683:99:2 9000367930360201623057489577582097938538659256:99:2 6931315044387042546049759031968657004837587663:99:2 4453962033151722180396536944990360617534359711:99:2 5019806324286626074296047113932265264054316410:99:2 8668671543873819154704692166282143532601817940:100:2 5340285506657106119609345314715140841096309435:100:2 7035750389549135102423503621982454968309285909:100:2 8547683438369733389497332467276707455728158344:100:2 8772089728130778309658022012542994437655115886:100:2 53516988002860501802944212741766705438036237519:1:53516988002860501802944212741766705438036237519 98458858164814675730630279446140045333409881743:1:98458858164814675730630279446140045333409881743 55130820784477358417379005469054604332607644071:1:55130820784477358417379005469054604332607644071 96503167698761228606775021759316459853715018953:1:96503167698761228606775021759316459853715018953 11864222103071256168705073802908513714390570642:1:11864222103071256168705073802908513714390570642 81578484144117598691711684462070692210407998594:2:285619474378267139005769 85857738520398448832619681883253708650332360565:2:293014911771395089920132 58575283268731151640477595437601402613719601102:2:242023311415927766700707 64184541822647657292648407753783448726396990933:2:253346683070151240716514 27628855500499991646597888571844130469347826352:2:166219299422479794202804 41867468354099940368454176034918808702066645460:3:3472366573867716 23995903575785745075078413114065923037456941782:3:2884335018330572 10802768111493884201079511129576454880121167185:3:2210607731384303 49701186863700912863570634955110341539864092060:3:3676677916772705 72198222672200206210491249135721088452618108711:3:4163981923572649 15781770871296244428317760117943342157674814075:4:354436903259 86865297467074319065764134167229810680559146087:4:542889669677 98483147296818864258046849030065701479248569063:4:560196614406 12322360950450255650816317537960691606537805058:4:333175824810 28850156540775219518062775522098713467081680467:4:412132670783 53844467895795081293754907618340467067761358508:5:2219362368 75505362592545417823507499982223979883682624646:5:2374627863 83940867479183245486629109936344192798298442954:5:2425463204 60384933834752208389654038496724124923512514325:5:2270835730 56761505564374826164942944177949779626806065029:5:2242904494 41700801240894828370338022783083678770843945295:6:58887628 54947311822549358305567374075390202867956770791:6:61658233 19539105473330021855033874543198184123169204708:6:51898018 62531835548076339223749916456384773105339862473:6:63001399 72647479387490748929774271419812842390892317099:6:64595672 73923645829996641615755363459446261654504727702:7:4960671 72877436025609255521984560975705172100498164414:7:4950580 63732686945407285955945457556697568998635978249:7:4856657 41081444132872093124273577925198675337808397517:7:4561337 26340122749852602305062993448577945689909619949:7:4280720 99842377113463376885203290239235008512891206389:8:749746 23559420049751795862276780777778410941448221215:8:625922 72918599993459167565832323768703315729274751328:8:720866 76754368692207741509765128596689590440362250438:8:725500 35296239050640207312301720877596449668536191782:8:658363 65213337624905457797343765173902543530904496939:9:159071 19660878250215974339081804475855094651268839981:9:139230 33320528379953205650877330758274026966809134714:9:147635 33223525444967684352101795849637281060107315274:9:147587 86998353667916579126138270870720439708726517758:9:164248 12477616230161322039051194689495890543712101823:10:40701 37749701218781187535774571836619055087412251327:10:45466 54985639893897249988353167051564262254242397264:10:47209 21852969909159998127844108368092534919313885795:10:43047 36935337637092399429990617069954819956951486487:10:45367 12612725137828621732381279487473082423405319620:11:15523 72253043692440128027598287166669933708492441273:11:18192 58130014789142128147548336420007542678701921351:11:17836 10080980983019350708455307129479452744342811339:11:15210 45163403707600763909399113895659412208743348313:11:17431 12316056111095556510507560372942441101181279477:12:6932 91431653269980381849038898267700259117664821014:12:8192 22676877708700065188806785734522446444657043810:12:7293 14529139420148104037279802392366181512805312332:12:7028 76772232994258667553110768690289899169211532904:12:8074 19683462191562226398604199666411126126808266046:13:3639 11442671141757118664674516332367799364143615513:13:3491 14762321772727352999088928622410214398799815030:13:3560 98583385169455623749674236755639035103689079027:13:4120 12302907407181477956403056894514799227030570522:13:3510 20162527206887946336214424422814504200438658102:14:2029 78704601964880511699701130755946879182721927872:14:2237 49242065018649476806691913718190525166867616434:14:2163 97497000815585600140364864782768163551119570390:14:2271 64662776256502302261869629695481961518225502748:14:2206 24799873221656011865881097350255318499002625945:15:1238 32003548359827993697877025702952797835440521232:15:1259 35911216697379724103564863438077766852720798880:15:1269 27633698417236438855301909317019933706478634873:15:1247 56044040872202439672186490808281019355146398031:15:1307 24983034586406260571590210460512074028764063972:16:794 60793888299104856930000082747150152608894597672:16:839 55861543823774186968399703522021981020148940707:16:835 76754820764084563897776744332843320115892196896:16:851 67980993531002835539934030036521375887090506853:16:845 59224201836796351973885942235816186432032338663:17:564 19023779325935171167577526646446848045543602794:17:527 78265928450180185594756269472586798909810508981:17:573 78699434575337274070415801722436158462576672098:17:573 95370345084403825110971351884683187634738772276:17:580 31663756005058721134092529189300987257036003055:18:383 87899707630086358203487014764678304246840171374:18:405 46673340195421656893867789394099885792310569373:18:391 11611070461885941747953817851401461575408397549:18:362 39092433288146758543246102553494091741721798883:18:387 29490415717090138128615357025287090676218758498:19:279 44804539277229133071354983695195635143524584179:19:285 38836966266238286787175994646967849921169021398:19:283 42573105804061131945755586314376023352270863095:19:284 34159903697825965355436900558177101206765753323:19:281 18771284843835236363774008082969201273940346926:20:205 14186974437971863262608897172253818260898153415:20:203 11102578309117359039835936209895762057535924871:20:200 29385656327850688927419257374945263813808517952:20:210 62094891294542525258901926958500755817161715150:20:218 21870881545333408459211230382904589945491693828:21:160 35789866451658852515892097128836387905003043331:21:164 20961848963539278244316592263171753054584718991:21:160 46887667564723156602107980506734008310909967355:21:166 30373147871362191071519320590797808492664874135:21:163 40002009512419238792115895742380020250538740256:22:131 24374662393404744241330119567931863660020302488:22:128 55236217072194076620121882580587378016188169741:22:133 81878431577578972306659404751545623231516728588:22:135 63618307796465853441610199760469172358685616283:22:134 94947906533467774209051841373059823601636791939:23:110 24482334222332193151190674554721539420200676142:23:103 64929780606499478244776468620086420528712607939:23:108 45813068524164521195967558607493060141581212854:23:106 23233456952410473714552883733643373927397022701:23:103 41746357973688042625804471873551672257400774490:24:87 20767635462410183083990420984196004107990715409:24:85 78153914418342672006671174190084569997697584514:24:89 45191514815881257697158684213194587187802902053:24:87 88755746504310383531040026402629798026850278840:24:90 23397045691912081632766806415228915440426152689:25:71 25264420828189715052646415340515676181166900393:25:71 25912142368643604090003228886928772349660413669:25:71 82447057175795264014369616347091849884282608617:25:75 39155713727133910246847828195335976539536472476:25:73 59426661840159685349282196723702902766027488591:26:62 74181122587379133623756840008963420913594173149:26:63 70735263860112245612995907440836188372059322568:26:63 25619458384732611959166385639473625650441070423:26:60 32302054441931924248587844542635641082821821814:26:61 34690175990165374262212526019361664287878936953:27:52 44465644802855368273977843510450230202632985496:27:53 87336682894856528257971768762789380355513202828:27:54 99704859825116787476582046803632528888112384371:27:55 65778648209140196437593426900548826188881257963:27:54 17095546551761184066146430463335582203307754369:28:44 67617232922970617966504701205893010969344151030:28:47 31365671261608769226147683566151029707880629145:28:45 18356666915314308222599274146727740847752832787:28:44 81919073668122389834515425334599999888347546004:28:47 88537624959886898410106838998814496342686437931:29:41 24564808510532067239045490349790439553615368488:29:39 18367471083214621661059379622451348077678881616:29:39 52028252684474812807976128118535425616401398989:29:40 33309581200747966053197506858750520175699908915:29:40 67110659743800903929948677641693646829209816398:30:36 55763813421545587761349264001077701370381218663:30:36 28474443197019563404889070075657375333038641202:30:35 61727896120066424751327178841454708476678438350:30:36 59684410817285202328952549309353440222571245615:30:36 69645499404827038456810465523425072849088295490:31:32 19815615369067268428000401794793356323428729945:31:31 71798887793827070655258824742961086432651953304:31:32 61929557643616860537581351448221809560129530458:31:32 49167719157612263141772165126726471529933479693:31:32 72502497883156795103906081638565380103252799027:32:29 37867204647857250727704584467826199382546781775:32:28 47999512070910829126357527827229735530129608435:32:28 50847214124424279336739323341451226716911108004:32:28 74680212525856483258429959579496257591313523106:32:29 43299336811476708944370261085968956900074660942:33:25 54417360564408307100589413089747127160667942532:33:26 11646296840197810991110329262089605386276591929:33:24 56809544667521387631824839042709072758563958730:33:26 37058437279214559385763244598918705779183170284:33:25 57913970550179648530083912933767920432222615510:34:23 28087967358453117363547925385147125565509915854:34:23 91012666345714778177610418910529318897298021778:34:24 88654917718712429301612898286034603518829304347:34:24 65023849238008633521061052777931909885629370893:34:23 83040982813549956414877087101817555083129411002:35:21 21710522853965482499840005481559066133590916364:35:21 53353461159739465097767289535328419192124596046:35:21 73741431657542352967471987388951717045686015170:35:21 77345723120487885717692127063793267817976244012:35:21 62404576614693830858305099875379881015747493574:36:19 97793632236563736766053197068613850744773303016:36:20 26415006886513605542048146229305259127851650071:36:19 80314415502969511421678979739770860314939054817:36:20 85406812278577107405497106553853853261447051212:36:20 69898211639737513716820471169552670318831355820:37:18 64150928935347901728609704593957268967438681914:37:18 93772652365341025126527918011390975991177371627:37:18 62619546608433618879289625691103207296757689322:37:18 12308005864434485578747528357919569471255607094:37:17 84458886320775891083937975640902213240896084572:38:17 78988255605961485745995932229572923001016640268:38:17 50681967886530588770339847124581757539768441072:38:16 50017914091976157786432811010010650759455247796:38:16 22561571372923001501068523695085302041911766694:38:16 67510681327453206430317954686929136962178343411:39:15 56517100062912513324621899990298556743131318429:39:15 85447830093992909379227184844293493187853015663:39:15 80504041461996325544880745451557964821257528278:39:15 85432547508356082526110559337491147444774236500:39:15 63547205652749430591283933176567658427346304100:40:14 34684866117913608109664622489127252637691645645:40:14 33257922675614636907614789767484203855583197908:40:14 19586527363492047268774753673413646447195671988:40:14 93459488071841130702073627657307827731255698546:40:14 69488562380727718942858132379954794378953745694:41:13 80886355492631895412291292217672413285347923158:41:13 42034607323676712068344993912557201504475864894:41:13 81284404048473265012489928692633224286325378819:41:13 48321564544676007372553897262143469718949037681:41:13 63334221847108756732078593711042664251855276692:42:13 92225668416449085907606014906089927427034244279:42:13 43673578439554179969848708817555606814500119436:42:12 77509452700072843099622714905639682062948040498:42:13 73357756560405072433334257398070940478939064315:42:13 87557173797544317335349206051686554265122334834:43:12 31202824360311762796617802258962446635975790612:43:12 78756661397535797767984708179208818546634491610:43:12 64488825592883842914418641780410159392690382380:43:12 12723941924241331082872663390391007805046231350:43:11 92347100694657624398938348205857328584000213023:44:11 37746341717257035214763254308839744490046471949:44:11 40043317653749252670414746692857301498540434541:44:11 51047046335495046372042071181212096461143718797:44:11 12933010113877369843463864024714862117633112125:44:11 98694646786708532705405085927351419224216540907:45:11 30358637175241443014783780855925810425207108258:45:10 40143790949703861840164769491678484844749785597:45:10 56901853875091612987753881345760711355994528606:45:10 54411316404621035468365448366775961993556383980:45:10 53334023595278111708142755499544562134550385193:46:10 64406295327754302973668262492779041347383695409:46:10 71004095741127333426707332850132804434671859682:46:10 55315102376717462461705623240074772415140259602:46:10 17486038602408272669201066347380608010862544949:46:10 49533329881330266939773785186289406545220747160:47:9 87493579651172138221598325063918818394451360060:47:9 12283744653623514062812335252662672690243988122:47:9 33439242136790549975902326503208275997469991292:47:9 78728667511198431918234842431590679077337038997:47:9 10075773640457977211084120827403785644065258110:48:9 41046488714302337559956247624940475001156247230:48:9 25981109153384990486418247791510477598344024891:48:9 36636520164778966934164839873407461597846914982:48:9 68323850555397864120865460157824480123749986433:48:9 89603851170592276320693316975610374904350673452:49:9 32625093860126275467497464897569332361713652452:49:8 74577201923142250062663356395146489217414592235:49:9 89977599901155594827842365697053299368653280569:49:9 13007893514382405943758090815385406047385790087:49:8 24569661932410105274679326862357889648150973439:50:8 77425967907477403879860883056893374366971390149:50:8 80133591868252074617710229179040069460738441393:50:8 15599914801086645980615542044755637139688282075:50:8 59714243841140479599729739228378523743971145839:50:8 10354867280120838769907785296158198293465851683:51:7 85716785139586405308334867764997725780990027852:51:8 71129119295708047805395854055589634430962757214:51:8 28128197945636347873386973600335474398610356960:51:8 23895061709815260324368031569267692210380899510:51:8 22734033049500088690812564900794452654734856238:52:7 60781067302517433872613484342397875820385066774:52:7 42061814696791175674142926719793184518739364350:52:7 38317017416545293612526928785403465472864223037:52:7 14689377831392693090665194278467556754260724955:52:7 52933784097240600430812098784996498637469773895:53:7 92800812580185382847742808912225957162589648232:53:7 74086859664865007700975301837616151996316824798:53:7 55289202073945790750026448411391661768205109660:53:7 30818015459613066463371203117615293647348162339:53:7 49193525831649999190631397875624050795274654340:54:7 73791790248963559685158824737972086892221829542:54:7 76798215550910948457632828736501408286225294463:54:7 40351868036250212376632844573116798072305280331:54:7 64639742273108937591483442765382745592140382530:54:7 87379162809200086993471422797696349349661949245:55:7 26354567922922967864943551358728897860196513873:55:6 60768271203570545045209386723735374193492963282:55:7 11612720319135307084970306875456859171385404407:55:6 19233831430089613278974714721580480183165208141:55:6 31364578864319401759003156249249236240531256456:56:6 60181314260898728937323660174905681213954662034:56:6 74198238122574166134546209730712646380053589224:56:6 86047368111838425875827860253748935653062247502:56:6 90627697003715260081562351488413197137601556809:56:6 48319359131387405378269937601621265347867368456:57:6 69192132651115991193237477109877137518393748234:57:6 88972473125711516242021227311458991186396604761:57:6 25630889312457631136247533359138997975777197741:57:6 64252391686550127734424406636576528189566044707:57:6 56003709799395436764376174947938992868803765693:58:6 50909384139524870298145986718992744695017089925:58:6 19951046511286372888007990607185751689806119838:58:6 82432949013339917199974847296972173152949823033:58:6 39259620786773665983118546366849410183532553070:58:6 26378304601308741500240097814672397245981460078:59:6 17728293641828883725217094439964741861255041468:59:6 14767681295247375076208525320757314437146351174:59:6 71953387697759139561165470206611677510590829141:59:6 78358802594771428555598028297044944953263529486:59:6 18572698861545461056997889828851589633479248834:60:5 75486145584194945251331949306420500225466589177:60:6 56843521335138384504590664464662163182320388571:60:6 83908373883523488264726568094463224680411945953:60:6 71934788575460680300344000469903658021627083018:60:6 32280542870791657184348660310066190083285366803:61:5 85585463817063841766693015461096302092446300567:61:5 21332082103872352940376331227865966060112439704:61:5 27003257037150642101772226264830775489656203849:61:5 95665757658849460078815045419441941035379840942:61:5 38102595089602064893498014544219006814387003248:62:5 70878250520099517095476670051297424483779753295:62:5 98022406774548373987743623005243395297077190505:62:5 88090673193910207234571755043678007310163448145:62:5 86982899319691124326835319783731108896966979198:62:5 20148153326542070924372787695862955441914976586:63:5 95783232094672092586787443452591536557224414090:63:5 79382827994085530192704905221889858252172397726:63:5 33393957534104818755934534430145564867859645733:63:5 91668121160610378620516666712624298311248668109:63:5 59001933355924316525660665967997654062951966708:64:5 12324192204200439157758306187990520025943231811:64:5 66453548858219054419709035608516153315376413696:64:5 72819571866079421837150522637542465719349139900:64:5 59664351732420057856214290914033666261845633379:64:5 58771844525834273332388640838947080091698917084:65:5 55484692943355209779158327682586615157797394375:65:5 47421595104984276331427968842007506470463410353:65:5 29222140640412094098700003502286378222911047454:65:5 73916548607944097774121029580846056656211007446:65:5 80660742025680454307260831604987986941810412428:66:5 57878433327674496936039226763992482671486386145:66:5 73050055630158381669290034542558125987462354674:66:5 44212901280139746939593800510061977340630919130:66:5 69394222836595053070611435950974854391084670785:66:5 81737723838607598793187505445533196875219163163:67:5 29718516374441233045423010276239968438609018042:67:4 82672360795742669296043428677863244230612717766:67:5 24198934834241637565546243607611367022545427690:67:4 19308730854680152525930977830612047475671635523:67:4 20636600932327269336932911990089219067726548063:68:4 80247456482551004694709827393632210179734970771:68:4 73560955080289169302360024802217067497001288394:68:4 69688494190630044833157144255613542979866413573:68:4 98347971503117621970179835080544277372179400377:68:4 74726854730840966084924203433928052366076285325:69:4 56323244578052022269312376522861188050587253676:69:4 29449910881994010695779366944447650828669061332:69:4 60937418679292210506989665490581080839146263056:69:4 32496845321926253091566214050074007376157703567:69:4 67283933190437187092938987770195229960208333923:70:4 18870515783161789835956758683831022705824063763:70:4 78548124152187142182546146323553017483390225813:70:4 64030100139534972174175975399249706140195762145:70:4 91632333869941492554759187147091753609413795965:70:4 91664440707362307976630181528291785510467553398:71:4 81566802711160741764629636613399020648200690273:71:4 90143075372686036239172741458268900885853326204:71:4 64072246083598825552586968577999529163588107020:71:4 71866147783978719129130554584846972510697190590:71:4 69320409566675313721925911072456796145983102012:72:4 93323753130609845014282360196605381441477095925:72:4 40655831130433175974513017847057641582037265735:72:4 56256980538955942534898595089612752138760514011:72:4 48189011056930876739084542377221074338000203716:72:4 88230296363340309441685257659806885644371810092:73:4 46903501271734627206697352496799373301462701910:73:4 96607862402457136675374615983409207897001530836:73:4 72463450984560409280090986663346814315716375002:73:4 95155433331049586962092843242982532130781040709:73:4 90760820257412810313857729908321577773966379797:74:4 98981602616021310546147543433878442356507824971:74:4 42658058932950514900565715792650144869925343286:74:4 34227749765914179026682650111637685994007054079:74:4 62828478964185594989944430114705616807711333402:74:4 10968580665390361367819817875457046930536021275:75:4 10918377414167270078493714062812442690108543809:75:4 12856622160209998175955448259207864057441899386:75:4 44444765793012548344736616697282139532657016109:75:4 81362664354617908084309812906922937568130690946:75:4 96285389728341566398535776365260925039104801588:76:4 88784859614729628310097406296884974878651115519:76:4 76035479942290286218065423580161813467619194964:76:4 28017914642353812715513076773891365861236996882:76:4 63718042815020194590482498649908399788322082232:76:4 21149128112479595258471831561879965238027032468:77:3 23656790026940651349595124425637351123289582017:77:4 38238995282313102522400243455220690104153965935:77:4 62954747540729028851824290631577176401800145562:77:4 81601678066281391676647603556693997315067017319:77:4 80083788133464692947456543316440501598732587697:78:3 16716233457704057201203955462480696908430092797:78:3 13871716197939586310112026085613960847528887293:78:3 35127109957428567470296162072999046257428853127:78:3 36483684793477597526640202228358806194458291319:78:3 19664079221801931006173380770437312301025250526:79:3 28472279452150977813492732493249056265360276672:79:3 49002939822242028982308501685823362066711795351:79:3 97207116032975238426508380730051047239909373993:79:3 77469683014945878950711118189129791892441758356:79:3 15726725411789193055250649469312071125364232140:80:3 32640398539209346678746793866308443812083744886:80:3 96837534229117516252452586719756137501018511022:80:3 93191728424863329904778382175437285636896373036:80:3 70891204551418591951188841030750139076648180680:80:3 12330984506513845106394314371394941391600249578:81:3 67806331534564132597699235740379534118989169882:81:3 62369536088750946806255970413658398818537530858:81:3 97033493380674668371888303370794861407797350934:81:3 74341619118230484889989456024512719634242092321:81:3 57402494733424328284987505744170232833764951461:82:3 51694163770281159632123177292804799955085447678:82:3 76639350932147734239201471539716674870064357234:82:3 98547737741922379816675181296928739758592467841:82:3 69193965748195334788563313027098327527520924418:82:3 16545546615936058506605154513769080960391996331:83:3 73410621310577562351410904667981726037048658407:83:3 30092030600752865290011625179286554108863237151:83:3 51876695731814421294138920865579323711141966927:83:3 69660829156627704935585541626346238756043135070:83:3 62821788804769986865160224352410058811509829844:84:3 27258344419013163930755195357817039411829468749:84:3 10513910575445320998165437974282861867157534884:84:3 87967078849933015937165171760524587448875661278:84:3 54957499135319896828176771221051142866230421941:84:3 58219865773928939315809925170286995191686317914:85:3 54215200104385411787926197086900122497505129830:85:3 75683641007005385699652463211692857925413913485:85:3 38936760662992425606629188616362348954410168499:85:3 95869076992874347970068191857095546102736724503:85:3 24958184267225999715594201280934565832317691342:86:3 38805349310396873765333879568991774162249419171:86:3 47108819088487097477274155670946659588333591871:86:3 49172772452716954099411614294779930743501463020:86:3 73506056528545479986902974308080077871151847462:86:3 83508520628534886362347933956591311810501646938:87:3 89272236188501400042012045859750386738602972864:87:3 59584083903016806000918785846539775133050779495:87:3 65899335172649743715209237117163307536494692068:87:3 46322355026695929453744844887943270732509911673:87:3 29450367723561995162323498664181986759095807304:88:3 71293001427594142468620312536490929085350650219:88:3 50830183452563119003888411780881016280237750541:88:3 21495731436481118721609819821281642743544547413:88:3 93792574085182718618037218451077300572225925299:88:3 12444758790970010655594706776499020030749730805:89:3 87615835854800225357862483550822285182615518287:89:3 55239399965257580107712423963665227788976726841:89:3 40251760911688047593360591183455699004991144603:89:3 21279353362635310514943920666344467527903907790:89:3 78297259120258470703664749029206867056691821376:90:3 67315874454422018735908873000731860173787208782:90:3 56539409133466349085398876592169051941872240073:90:3 27787302940654696320663762876434868163655093854:90:3 34596094388536959282857939060909531659579717643:90:3 44186411328014308925423473787231045182770531345:91:3 50879637468920548101459410137809411947201469113:91:3 30286776096978979721384992265745336979883001186:91:3 77321469718015529381897238702207140747235760354:91:3 97842461430722950902860458314280571567943694525:91:3 22013278812450507906716526723854883650814911609:92:3 37771427442529132528462709323093717811353209004:92:3 67781969034121320972886854246087558178949679579:92:3 96030441824437235269759755670357637240065754375:92:3 85076178343732513810725526102092878171418784471:92:3 85363041082586319299793652527724236878631144652:93:3 60207190175067021126720699588354368318850649770:93:3 61306999314673469072173756137704971393841265283:93:3 31942917277725477925356150412393249705114395999:93:3 89470576070290124774569616218977630539732028719:93:3 69765007785504708985064208276586257187132917910:94:3 44105173864231302420068875561362605922404347217:94:3 33688243180272498066418443440160444415236772762:94:3 30063697996483015059439746053436070558380970632:94:3 14466830542854011461888559703484774036377145095:94:3 56148141110631908570302776961417745498520254518:95:3 92742011515072502186701564931624622355453482681:95:3 61042151741003990065757736996362495484263349788:95:3 99725688635794007607079783756661212056065143641:95:3 57708383224118170266923849851644541347081356323:95:3 78763002601297960941299369964294572322449406249:96:3 54762041713211011368134740185952244238062626506:96:3 62644090015217686249129046876588318725422971195:96:3 37461098547696014312564991140463218403450001947:96:3 24668591102250386711682955251507084283656925474:96:3 13414724336945087934663115909430620409995024677:97:2 83305410111062332662038128760320826479185484660:97:3 52998143134569463249227052020841831215759864751:97:3 91713758684745141655617684986585713310635907788:97:3 42482956190011354830185463814714928684931735129:97:3 83127625888530385681673570214690919273964994046:98:3 11637240643810614713349767362867294976812988548:98:2 73837659660186684511925196493017195439164807903:98:3 15459374290615485536950170012433995496418417122:98:2 33189060775784035570146495956175935172891483446:98:2 37305634197172190818985488198754858189091097696:99:2 86123955481099486987482651160523150423251881740:99:2 65433126311342146107698889762501675123646534258:99:2 10091500385559657413639419631691294213855757949:99:2 22628379195017300733887071821710753320869212612:99:2 70812393581211983485266942225317034909508642377:100:2 13385842207585081880120307596465696649492385584:100:2 34798770584156269337383366266404405051026695864:100:2 85659325017625462636365823004788824400587406728:100:2 37627898595961004693155342206938507292375215888:100:2 299988286061262971584278193616135675667349558020:1:299988286061262971584278193616135675667349558020 989147514494475897460194158437990995658432760786:1:989147514494475897460194158437990995658432760786 871161503910969658304045898227793849173285039663:1:871161503910969658304045898227793849173285039663 281557739569750355395430577074325844523178614861:1:281557739569750355395430577074325844523178614861 931165222426007256789009963977855253447650651526:1:931165222426007256789009963977855253447650651526 737943237583474312720662517162262688525423645279:2:859036226001834169866928 978653938588106057982994828541457028621842787547:2:989269396366887545891689 688439406387479341248317753482172951249316088841:2:829722487574899551877402 263048054877696714130439205901141630072793255528:2:512882106217107865022008 887487906092911555392377784374359306728427988745:2:942065765269554604990723 279877496231931481208524268027216145394199618140:3:6541178390847083 162868344393469723060048931864405297597003954532:3:5461084467435203 937218585994309018567698298346942567775347905783:3:9786189717289145 827285047101433445588310796634539526776757770109:3:9387538364993373 961975334427719452924566607634950664414221525222:3:9871609764130433 714808714554771304972641091427529620867453040573:4:919490951148 168103792726556829528888766102677820374523358585:4:640316035446 603106935390168990386682423927611054946505700164:4:881248885307 727317485361646353596136831162851747408595880252:4:923487469744 396624891580487139512726123980978632450711568898:4:793587816272 830959768753414045120721866156901536794393966888:5:3836330367 484592671265176484408540724059175260971504758058:5:3444096951 258654272327807958421985469500509254223406285458:5:3037693355 704886266914729484570507028773324852272105994805:5:3712135410 359425885423442098144881593445696365584751465091:5:3244306452 762816806560179546795562330135083444236765899787:6:95588000 854922589112895480579112967875770948220034014075:6:97421422 915995175635899259530373079111284392428525028348:6:98548238 247869871386880020209875557172554541452601131308:6:79256938 982939284606865228980978057377507705019687302120:6:99713612 991160173927795758184188613011460384474499246219:7:7187733 682351756673025341534967523305678626989141735076:7:6814433 440822724287292127144974968291924246399187000431:7:6402114 523759685632528019546152346999303930394560283226:7:6561737 839044405838079364190336101536675699297417104989:7:7018672 773745915870584523729149636446635673951315486798:8:968444 475060920025503817634357319187146101149114356199:8:911157 628343220287394268992263304041238467219227847112:8:943571 759846142987521619969868887692589058650548307533:8:966252 913773778449087794786671986846740274940405100608:8:988791 112708847120657068572634739922034493974864436763:9:169042 561845905105134656740446735117758122114612984808:9:202075 944013573431661357297048838290909267512776398432:9:214068 522560912403880749101229000109660352271482727232:9:200454 921491747271671867205769628934533939177316443923:9:213495 742348191594029680856158875096527976789174437418:10:61243 562250811469593821315046017027023206717826431329:10:59565 144163799833732014440677799822400369294590194592:10:51985 695389112511086870133159836346624310782441106794:10:60844 878910845407685850938392917594086338791022246811:10:62286 479759566953524583085081796588382176545686884639:11:21609 956709327511570188013935761449278772223234496846:11:23008 841400064396063847701176685929121109660495680184:11:22741 336362654762267225655440982099815474250782826176:11:20922 566362707089199579183921789747719846169929724156:11:21937 213927646509681382467712419467709642468659385355:12:8794 963513778144533152335636978458272053883097027235:12:9969 478607199610633575669618415009869627191159069958:12:9404 211145985670982331487064900271116198378171830373:12:8784 523899361916477606745936636395779248332744852683:12:9475 623580160784178230001587570884861801217915973362:13:4748 286960026631107568190301538955337582085350078141:13:4473 907311268447948445400960606662023646349698690387:13:4887 949115629835235929759381394849294666965412464654:13:4904 260288080528015686593589243935737883211723437049:13:4439 615809828485949467075678356828879289674138640866:14:2591 599604477423879972917816519332296614937957268926:14:2586 855255945714814236700716673069815354887109728380:14:2652 409086349729712307717068509526036527904097490300:14:2516 681658084967370378140722986668911172544729410768:14:2610 916887866887419150729139018767696830610130850513:15:1575 503116962064827964865482826143748823946495742633:15:1513 293159516501407823239903198557336445101388837253:15:1460 561345702287667897292429749374320412815528106190:15:1525 950364551479927698405098260334804258683542094283:15:1579 757631564750748297574200457491353616997241718364:16:982 736252160921477068431263014011390104450160532224:16:981 627132020125906890305098042089383867900034097318:16:971 816253923929989115525568944409637178542136989933:16:987 406346280545569752586492715758142058705879716837:16:945 700390288751126551296728900244696201778468882857:17:652 187272724525511937763024257316464849353831667058:17:603 515712808919300198414896171899417551930186112056:17:640 787993522310075390883642267939450354320561502209:17:656 255614448732497135685749432576983759266964296681:17:614 527561578021569914465726359623109494909214892783:18:447 471423901522556184901674538628669728195290783266:18:445 298543185455455974983663606153001838253127356534:18:434 710979812944905598347252972109837780059877610880:18:455 236035380362146762050821916089190916527290955330:18:428 168199686084340441926110478151966299024868135344:19:305 936203728562799167238305456717670499857330996367:19:334 607166068640582564657327599126291643322384714310:19:327 703278634050968231969580893197526262639531216507:19:329 929001927929196936987641993666467532285276224709:19:334 622970532777649453329797653910789846748433433702:20:245 300138712097419191412606416646387006622320234564:20:236 236579505198154195955279493326946403804918070261:20:233 500679237011796889392195199854861860726932547963:20:242 455181793779259211435575159103611347360427787563:20:241 999503986318504155557395302954130506558565250590:21:193 778886639437857953369874328363582326152171275374:21:190 897605165176874392756624977521252743498247224183:21:192 736248448655054724137183173586100918372234467973:21:190 190730804799387727456570142632708165221827062323:21:178 766132287927141166904411678785025275317057521367:22:150 813209695410239322375184855711589387177452688440:22:150 681062681497349672853259565011284552419048503181:22:149 879443242588179014247141936926787508856632450749:22:151 504001482850585324960166219118608737142835678270:22:147 455655283015183705054124886851635393456895891109:23:118 151422671101094602435175471438013166361010962123:23:112 608040624279373509393555327362066832436889589294:23:119 520608101803840201268391353470532401388012997106:23:118 644704994555524449135536303879921555232074301092:23:119 258427901288974590266478606551336220943843085866:24:94 828850183899586529254126079905362789245737452948:24:99 548532780550895541713213096093114392995567432915:24:97 244428023191104867092534059368353996617888718593:24:94 876670453970740641850372713829559980046963496302:24:99 485732023564722016938527114811585761641785230199:25:80 863762970009834622485394809627920081165187509115:25:82 133330622867347511384819553335260239787108580214:25:76 494963976460549607967157018758983977912047852419:25:80 298152660457107483980412775153580028735118602119:25:79 241251002623125881430668542583869654809035672495:26:66 413790937720796747537079733380182573438908141741:26:67 539369619425744833556060407844557927443034744829:26:68 965195609780321460120435785598627289473843625636:26:70 325820504603403472653455092392269600003458464685:26:67 464148244066291501627801944213607647910083469817:27:58 688976305549277020248026675163373607165834399772:27:59 494678019140626806342435460935197440464608714317:27:58 719789621988234525811055817818207346152254154940:27:59 946373942040055323069457659356345712371389574258:27:59 594000425215725443790775347972476781090454870525:28:50 548468310272712825732749467959027765513889626327:28:50 813220340339468798552511725624214642602902237540:28:51 430666781016975427227389424776768757991141231782:28:50 870544130037058468155831417354654583040752651355:28:51 939506244817150579081136206984174119030874763445:29:45 742596404121797375011375149984152670796389849946:29:44 711366123042273182427205944878298079964039788603:29:44 647159605201992232671959008762446758331251681624:29:44 596661611449897966305652163251442581628120723456:29:44 282064575699497542045773673886138802840408402276:30:38 872504286454495124372342146010094695278621559885:30:39 917967835306314551966523874663092806281744949600:30:39 312546358106237719397859896329569035838504846936:30:38 155031067945140066009314003067132818710661602326:30:37 680237741104022562077039588696253302811825275253:31:34 777262127579329173344157576714549433922886176364:31:35 816588386729539557490057132615865335654700773909:31:35 563744816338286109794213902390635236350021034319:31:34 517257783533585975573250132616374036243288640874:31:34 611467403789759297089625139419718591342222925338:32:31 188569208219677791153406268588731142891596435743:32:30 796935708689295324421726662455136003368940087264:32:31 263158122195927455709878207758823024151751482269:32:30 955945622160070058492642481434097324790846380726:32:31 727153638027534690391725178390128408054832977006:33:28 482743845684718008247863026842812028789896902827:33:27 368549643310704690622508771378464398147492220009:33:27 741445270909390935099666531119973382535173400767:33:28 236788690483170241683295413911857011562555131164:33:27 107156294522981840354922167365592341690564948078:34:24 370551991264260339991517379620886503561330468245:34:25 836982818743297252989422106434136748239260287850:34:25 599411182117118841173878562985373529041192196514:34:25 472771298519493955073886319632359410580473282427:34:25 907823402152588168566444834680358926940648898068:35:23 995789748331158444032475136512771779639298403264:35:23 401935002848899291027234133452123659347807741728:35:22 972762199783235346675902595692043401779159499612:35:23 896887581596569195086067188072685618747857263493:35:23 393457083651497082230064749764734980700407821118:36:20 248796511912499624780809127047743273531742460705:36:20 901807993440770977373004877351255454821513928842:36:21 389221594598637962268331385805707031503171264154:36:20 201455066443391172029461716378998423560871035364:36:20 322868964078445461441566412546176289614778027147:37:19 309123293281441855586704329585867304655457940265:37:19 880172633294640558234701909447019749596256434094:37:19 585146414938085307356152146524810435482406956703:37:19 308475032758894280693663433525217484931682224687:37:19 603471724150603075086705029241887738255485453478:38:18 576949337203437789832927827824774366096259767515:38:18 597161283805195248345328256182586581071106820285:38:18 634871393097261032953448869097185544964272942701:38:18 718549074085337688936031320291550808569334369153:38:18 394377696089939950765825423059500183975376311562:39:16 548970901407040266232612172505050696899953146056:39:16 659543931881280646124776553055940634743317475357:39:16 324791591361441318155158459593775473977934585016:39:16 866601339885890067461737252272997080867356020478:39:16 896861689314262384203738907364077925120465018104:40:15 233392204292890003660906530488276828337662558654:40:15 540377522948501605129352303387068257891159350401:40:15 952331451594861564254940860615879749456974946214:40:15 473634354659741684874508409882955620843368215526:40:15 539418047701914108260901793314867247005248958361:41:14 748312066148112049913439583793149019257516645091:41:14 881449019777652687473367777422377674306054410000:41:14 584478099472128369486469683672081924784982318723:41:14 633073100802893999495227207367840784838015822595:41:14 371049101587745787993993769583399600887701288302:42:13 271130236581413590646614456859425034436661001207:42:13 296681774759659806968697572264936383021950401782:42:13 709268922429154719379363326121812885041626298734:42:13 431604069090718740746827172616180523680376581979:42:13 518352607070773726880596533746586688367442244163:43:12 530418293166146601109724696793634295184073326153:43:12 958146297593293669286842168599830055927124623706:43:13 304474589572775114557119495247935376276230204349:43:12 149923711375230213077929916450499358142486603266:43:12 459196316071504207724508108199172818725707070167:44:12 459503562865136198799023194682605845583844642932:44:12 954703299543486248283990637858391389191615452138:44:12 850615597070708330974269274392043557144863484037:44:12 524181011402705996182730526676843313948380723633:44:12 676791426381708467430925396292291618582401183301:45:11 748521081657884935595616333156336821260762012624:45:11 458969919335215083737778900036394703057296841660:45:11 351048766135407640807265966991251726686140995653:45:11 572850183962353791157190616182999564913282196593:45:11 110804908383519386168910013069450371399005066161:46:10 612772866813184631644215832662243655911141148597:46:10 892869661055718115890961731611383081606817943816:46:11 769818323223070338855715932615850413904444927190:46:10 160153296025769722977677419655619851893791943783:46:10 569063331811141370364470907428952796145441837633:47:10 811576064512708026879111553867832711365329950016:47:10 448556690597840784880340139423926493775502470987:47:10 329035687910384666294670207270385822598767146165:47:10 194604392244904544265920539181390067887763814721:47:10 556864127417542079729357440564329805377843807060:48:9 340033813420704886249046287787132635850616157278:48:9 138232860535323585875679073964513683932785769344:48:9 227315732089259390351454377759291906874814506156:48:9 925681206880508498662002120805993333373962231367:48:9 391740331100188679422056117659087841521418654858:49:9 479611487565802135494601786379120928291768080061:49:9 609838051258532389451259033849140193328853159494:49:9 677686784753150014334719087710998950763121666752:49:9 574397503774707335938448823027471632620309197046:49:9 951769126592473483039150899823378885786186193858:50:9 395523980851347193543460343261600610472508232650:50:8 944658567172975877441613874166521328649655090582:50:9 141848556775036645429962372750107908484321893255:50:8 713848264982441075674945911005043726324359235970:50:9 575243240642045443019593654659386759177356027785:51:8 141895589336768027022294065985648825370389009676:51:8 821422712950781196464230200401738700122303588304:51:8 987009502132207559254780548148114948727357853089:51:8 199984423485302710799350437678430479441346939793:51:8 660102752346748692265631977348878573474808794221:52:8 218357465668102282379442963225762434946043370939:52:8 207344807271788713664034141191344124265167517345:52:8 829462382012455348398634044302511779956190553351:52:8 348332823874716921879631733093604881737417182103:52:8 399544874930777203008797636799973781933591477349:53:7 204506606951251364602756598854313486134682492960:53:7 943578518787676477991395072252766453441893760495:53:8 451960231340773296636538386008877948756224882434:53:7 282064274352429285397272854444368575725740090904:53:7 669365433806408502441564379166191858722278725974:54:7 864986219291142428095094450836541263979831913665:54:7 308658872027897767034599108286569783099531193127:54:7 749069041410144067872606593678323556478468057727:54:7 991574355495911347532118787685260627944822772476:54:7 963296103582653627788734459988031048626163233782:55:7 626415795740516758759317101128950448331119122194:55:7 611867082403748787843088175414837505051435516794:55:7 907246188398387681891300666191009424137861342228:55:7 765977652923641070831435040323111061811486560332:55:7 792389465559598994259900104177798181404412899330:56:7 841549805014245720351901564563941033362565057315:56:7 313493673722628343203402040792210545267896246544:56:7 363663999942447961249446562249737353080302432458:56:7 876528387911187636228659706175274265546508928848:56:7 591220040382339182840311903581813088911912716406:57:6 322167840074173422653925375989384457599220478793:57:6 858763926618198589723303353051729890218735992413:57:6 370029846758197951176338760950843971121943037809:57:6 789497987682842164759910867026562781437408958752:57:6 647361742543024806515590409321545509201039350724:58:6 738685906761605338123368282469535642398495659915:58:6 999675625318021743319249240299162715292258188749:58:6 347456984347714740399045630794572639529659965704:58:6 504945660162089847316945405113184049409090682512:58:6 891679869022621610115545791679185671933155337263:59:6 152917608751086714241310630112955178264935126209:59:6 855488667755382041885122592822237971702984811757:59:6 475134949101745617165295354274500297049989462569:59:6 599920308655954582165571507824964874534621336392:59:6 449026493299281146643949345969406283751898268923:60:6 380840799125604047759141504656757623048302057463:60:6 118807656396449441447243221454994776038839304083:60:6 573084026787115054140774697288811025596148644997:60:6 388692694958960665417681018479771932038542498283:60:6 202003685910978701829899561608948344244916733515:61:5 180579325867629134666694572774390524117226762169:61:5 711662293660022659953795050590083417131078538368:61:6 436721086312936975330939974668415382471038886925:61:6 750720970846066585862214516583726078137408203599:61:6 503445183011867935161476590210642517577831357197:62:5 564418573122032166335548775204864746698826048412:62:5 218186339139033780675947999689275312121901552795:62:5 971433565106039219523925911666816124810714707091:62:5 640144657433864782158729075366039283996722045740:62:5 671994860558179308084855735841193257965225213493:63:5 220862745080344863828867846673853993216409280125:63:5 442418720916799427562866593640228263142798951919:63:5 435988327764203109671151763384429427867430029118:63:5 655994875177998528317837219937574618347690214588:63:5 448051893232304520146545395193633298723050055268:64:5 825711687826078026065393486493787378987099025438:64:5 475326900302811326345018212524587079374207100193:64:5 688652323193863189576678680178262505758853758599:64:5 392201559830945888118172749090518709778945014644:64:5 141912540908522857999607104142564195248082001374:65:5 935607725172363635594462887484014713365035306994:65:5 489923162140484549803764145258874525505824611352:65:5 205297151025799643085527881703676861074625936588:65:5 554840137530065014118048107809770588946298160024:65:5 776771873141353899202703230320545335269330409468:66:5 619869933483753579709149737137724456331155458388:66:5 705955170563822541542763316990076073525460279530:66:5 465173947371084911300278806092348753613601700129:66:5 806915143958609414411016589958024104820159686661:66:5 986297898748787195346774057944183900336105584284:67:5 652409952367430041910195220650245241178611096231:67:5 698810783325913667654554251564655563628104208535:67:5 617309595788410227470428437902774930275684130214:67:5 247016771305248763415825356729471224857842968479:67:5 950417710958126315601939940795859161371642974024:68:5 151165485456402900075876345676740112032119257232:68:4 708546058645761863659795182077008549099317694829:68:5 967370966943527933683435021424248009319410024271:68:5 773028659547045152908268315992766424336339460168:68:5 163005134832379319198361620780456305926372669382:69:4 664927133796298463859721732933204102069689009049:69:4 981829768680124363256973186445429825732223968011:69:4 582167797548519042153464295821702300266050080945:69:4 699359459950365185613241935597059245477833338669:69:4 223313231333619576934828939029044902176868644950:70:4 634664948315479316338732379362196517675215471907:70:4 116448125407405901924468405355408846403644012693:70:4 278637063855016294297950985547506267611135473446:70:4 432192011153309720097743283411226404090245653623:70:4 501238900719689523311003851228446067275463273541:71:4 102043405678465614346672998026914503935376910266:71:4 958169488404947458658894278420265593875356717921:71:4 258964980918764582823281618359999062943027215589:71:4 667814309592869805025893888426395316019124358965:71:4 130557053345960996985787652317107401023434084918:72:4 885378529316309079142749058651425048137870108759:72:4 640756900956756562465191828392224344942077949326:72:4 288157156410787341821109631710136631349151427901:72:4 563688328028345716582985606462509858818250065713:72:4 797552055548846717792840253570309584826250341267:73:4 922916591351347778427078354261367590390111282505:73:4 434145408802022831053243337517662438307847420755:73:4 528860639599309573712570823561679434710679191565:73:4 247543662253017199986827579845406596286849665393:73:4 474168849354762716407517804915799365929676602223:74:4 243350737883841604289311355318792334346189661431:74:4 267843260050523202415757005783086126510652371316:74:4 256994049166481641494983548572698527448755276094:74:4 918027921091697299269944871740339425965510045906:74:4 112234300920161004961625448610934993839308141260:75:4 730373545815113895230225063430939530967749310261:75:4 100506500481761692236676060183564151761428917799:75:4 374448275389439640165115128717790437077325802918:75:4 362929351525224902856440745029666437895128550987:75:4 683327540885118918549731784006090028701879414720:76:4 415143051094836241566507286729047591190892668051:76:4 111370369256035492764100677706890435981782083772:76:4 328005890818514088678391000316432846005556541970:76:4 252078067334009909175553516769079920627831436173:76:4 962879106516047497876140311424450553003002705614:77:4 926308486697288934390669465741946657135639478504:77:4 758845939738814268266470589010395819822793753377:77:4 743675993908682062915085409443091351614460685856:77:4 999790923012416382211167948072157557819798706854:77:4 738748820123347138374054647999278241880775003613:78:4 824801863983941073481500610478885626139117370271:78:4 679303954267683898181552151379215173573970021104:78:4 714151606403771564662413402886725613233739739584:78:4 631612505778149400891051229317348841014014330177:78:4 334267487895607127037734012304895603477103007336:79:3 192027000736443892397185348447899660177741857470:79:3 759165248587870363328229031144034308462759981303:79:4 448163115851070401454641723198568857267762178937:79:4 353818276502006392895025172525557595312071041020:79:3 688890333298432704545434616469689997734547758121:80:3 255397196416312902777589321037276686570442188836:80:3 303751319101840174752335230486844863195164573040:80:3 125786338652897833788582782144816235360396055961:80:3 517627493477717207161618307695116672062256449119:80:3 958483749572599701876519779792915542761873374687:81:3 444215016877309181420861919493121066186564240510:81:3 601818575739061139682127719631447898812914644967:81:3 485903897414099953669608546663536119619145711565:81:3 839903460433601827352662326940055541081932044565:81:3 941223276049997333133732859825534069219049806183:82:3 946216931770264428021976173852671095844133082570:82:3 561850457468410430079019842479696742231635550916:82:3 442638725225323605149529789407235629883995454903:82:3 826970205172655570419317209956041579256353964560:82:3 314175927549413846848171127753363494151961712447:83:3 995338624142434068592385630997152499707239140389:83:3 896510584863812493670416160078258311414245385287:83:3 648983319222573903718140623090263044069018796515:83:3 557336062966344911386563552858349476458240206016:83:3 305021511186575313301603635424063517034971648706:84:3 152849956405535618158125767778105135556807169378:84:3 790301979982530954844690346178653573220397518156:84:3 895283196298969889505622964413308941516077691772:84:3 836719881017177080079478214252687038201446782166:84:3 381678138449777412016208597225947347809419516942:85:3 958509329090500140685235444205002188127948161591:85:3 703881133443421276119077690430218393236344762051:85:3 476723700869060379008491690108193448278218687121:85:3 878243382516141942623955383422227443020966742765:85:3 429501029704259956357061733082928014727259637787:86:3 422765673863897933195224950310402077663967916239:86:3 833199464208754476461366240717009040644320043264:86:3 424295618299760027719808046540463614460897541501:86:3 843311527034055967849021915892559511497093239002:86:3 524746138379031250899867204079525279558633349118:87:3 430038018081422008382872405624288957318613944340:87:3 947344153207344343104817750765016374768124153645:87:3 849317877701508700906064593091053873021745862377:87:3 438613195504386115004211023025667125407653815984:87:3 550907152156586397139034125622562761415115250557:88:3 901247428455828924309119545351039545163179206252:88:3 442880514843515060503232162192626410281617265073:88:3 748284683902090243557934070551712464307143408889:88:3 626352351342846397850652050938877501066100583098:88:3 323845010843020696019971548857981474936053386933:89:3 444764482053227965092665277182614465549298827703:89:3 615814393383265201831628766465973109032661225069:89:3 241116557577184468621553011183795845511939253432:89:3 742176605257625195902350938167769444493465889015:89:3 582286818178059840743493550646784034549312159876:90:3 723032899020947554260313493862864910111557342036:90:3 974305116984430654605888669869378713139073589510:90:3 717711908325864572095441110592396660479876609935:90:3 749357039616412627164724504067730912784747108478:90:3 737131800630891283078850919354415429801042917469:91:3 298922822839822044761071796001507859685744419344:91:3 228749034161956826867516327316963891010295326716:91:3 707969269443256630875429456181432271112857659674:91:3 174180143120925002851143935469235382021513966198:91:3 434798599789092856290237345444614902753839479789:92:3 477674700882071639973115052188708780798746887073:92:3 178217884574408954189414932357641690892703535909:92:3 936607386108787939461707964090032758068797684155:92:3 593612934640322688185816070553273667534696913044:92:3 109382330092587411028517227470570229414848991479:93:3 506412730945869905646991957505622052058671066384:93:3 333233413118322783824530394470025635804655644842:93:3 856586519347251404248809015541747753747293301188:93:3 685863794352317635849902726791440841949623895511:93:3 565472843560022470918426527439826273662413434331:94:3 775079466596136959411223712263525859572313261734:94:3 351946734899451317759895150708127462275851307712:94:3 804137490514791947773883573199748531066165568047:94:3 580874229136887006493309522565601379476622553447:94:3 530764347405692736562285848206291136177937755044:95:3 844850860484877936856033618553159679090648253744:95:3 561232333314093571855882376959574953133770850802:95:3 432771980347118735863426643643289265097033464528:95:3 667683659802270620927343063036560458333560939501:95:3 609410106166901617326584433316241534287815759268:96:3 958641465021712728510321062344136414435082562398:96:3 979937502112754864720721688085553941260255787201:96:3 531526536214811079035739559176797532973206761300:96:3 487481503166430332146865392749268204241704799203:96:3 910261189833194417095797698106032698960860199681:97:3 370708150717506301824187460371617167601400681479:97:3 813974172401081265198982846101780052888750142986:97:3 401815420469049696613022273997179273976223829900:97:3 206642673866131604227547519409587866525953705373:97:3 644784296086369954728448934619268848743695095920:98:3 729789050140419139908038398442089009555027056367:98:3 597224496334507895816973107251055389790926335906:98:3 741507601212519074691481932761608943150543290428:98:3 119136920306280016577150006348425211983938438676:98:3 413682190748916120894519201938317024020817806863:99:3 105742711965467359747529496979361569094514514769:99:2 559303121418969381084739142968332971706665104231:99:3 370039076237766838666219293833420860795027312286:99:3 802810433124010605532242279929757161850705250356:99:3 932089042895022488557822434264240517945320057606:100:3 100584666939549205943860140230162738403194875072:100:2 635617006670887546301807855305767339693449680331:100:3 167295631338086734052362814613456891272455998062:100:2 108731429831702338235769441064611392334005532988:100:2 6284214359763641603084870753547391682597382775355:1:6284214359763641603084870753547391682597382775355 8811370865375216613602792566890563787521399576788:1:8811370865375216613602792566890563787521399576788 8079411354210585822446836424083563877746787008174:1:8079411354210585822446836424083563877746787008174 9611254389384002483207539531437744460778391835356:1:9611254389384002483207539531437744460778391835356 3967852360084401307892683179060918893452829044317:1:3967852360084401307892683179060918893452829044317 3578482480189696859428684291677482477175355701551:2:1891687733266169080866434 4054677237980728251212788456662909658953665249487:2:2013622913551772297474928 6014547234271708061766386373896732463972115637961:2:2452457386841147146656039 7204281450799071606417656610494205961818543214857:2:2684079255685098358049098 2617783542224873612967133130841359857651330509919:2:1617956594666517502546451 3191879528343319452072181110567604442945936416515:3:14723650405151076 3985120727167765773616897501505840512680712585381:3:15854303252505949 2878040346901353935387208342473042145360684711753:3:14224345505680632 9693883662727387141666292561431657494019383037281:3:21322228891419727 3053726763663609118678600613963389600556989618223:3:14508083900807225 9827108760710080115524563512256174279184908590651:4:1770542845104 8483144689782288733060126540983972400764314845223:4:1706629383057 5944131487522064695255916760687016359328937875127:4:1561428499481 8460829088417298139479823688415538321294656873514:4:1705505917372 1376651024714398783592224066645343304752000353393:4:1083193301334 8011625735263771619076836881111793525231503147673:5:6035929111 5163611097198660960306728065974332003859911469748:5:5528288576 7255407240994567365489507857216131587323173172507:5:5917419503 5525942933305539748776521569192618427216852896420:5:5603782609 7341205769979062790978985274670524903306316513525:5:5931349011 8186799637593482526580750610882904197698021911828:6:141966440 4935033432966882248332559768208498631102268222817:6:130481322 5817699002059235081144251925105486956088299617041:6:134109190 1515747083603814770594748222240692499816891393049:6:107177705 2993985001277735555313642332650130611093927119465:6:120053530 7087137763422712335688629575294878357473939183708:7:9520038 7901451631328650362853187510641079354182967654166:7:9669114 1490708291370024229374635057036079911842574240408:7:7619267 5887932227277251405421534107565333381011139367186:7:9271234 4351432423231394153226174789510068105932583976436:7:8879244 7324727040235399526781446101947266419869395434007:8:1282622 7827949571916748906752354165638023494242446661611:8:1293320 7639546325714271978012725832946951774437645281960:8:1289387 2124016562654528084728355236748753067014431399212:8:1098739 7048777770529758729476834891898117556308102767498:8:1276480 8530491820366868831124307436571866158662515977113:9:273385 1956331486999808974550897801656222850248537846325:9:232121 9844185075282432254415187570523305663004456536891:9:277770 8469632364091241783037294793466377662131966732598:9:273167 1720961040288989206730672059911983482523969111854:9:228839 7070311286903327300827429948215765015769376370582:10:76726 4339042038951781979530916952203596573060155202529:10:73070 1419736719755663970781744537848112694232163946523:10:65346 3654480361877989117092252364747779672897469542939:10:71826 7833392921331807540134088452573452031605032818566:10:77516 4804815637584153874138937028801650451544099447749:11:26644 4413649409938142874015532708422068621567694568211:11:26439 3544660115501287660694280374746784626968769547704:11:25917 8549147187703797462857176703695406039291126279983:11:28077 7392040772391420422134579851938558024086722582432:11:27708 1031681868571673394879633525636518240780508238914:12:10026 9415471529985518428596694459407260034788543272160:12:12054 5385461785946441796897299679175165822344423316781:12:11506 9303060595946643172109885550539928352742614116796:12:12042 7512497242232629582794130322305177120575114028661:12:11829 3651360165462762269777797839053835037270309476011:13:5439 6422944425231589815291434570038801597995163076051:13:5681 1409882366210559321014323714811217635135987958787:13:5055 3850197546805915133743865199762735670949347608526:13:5461 9694386183587505451443606204784662341630946666664:13:5863 3736020587168517389904207207766164709884352187666:14:2947 4265390019000698722491818362610813529514451868297:14:2975 1205638918761819661140339102943772347561255054907:14:2718 9108390587454232917960801905082027631123225372704:14:3141 2215679603288189966104136357135805954286494905910:14:2839 4624334475608707867713962503930301235731952293732:15:1755 8023402420906456189939423423088808136352478505037:15:1820 7097738705174246128932986600145309249847611530346:15:1806 7702656874658990672280109499863730123435489298668:15:1815 6625520534521031984253918078595170910747423078094:15:1797 6290634431609405818312869073285389159130151434823:16:1121 2728596188239445532347137061666012356380837138646:16:1064 8381162926589163727086713361578785436365679793954:16:1142 6778770965586856531144768935658934654145510313351:16:1127 8830288857385549405704099783982638188752354972049:16:1145 8836102997790047592424641099302709931088793579888:17:757 8091636102355931956046962793115204795694711933012:17:753 6520836055837495755003897670372948913389755011658:17:743 5205957725988296567118256737093201178106489366702:17:733 4439050992926237390383139731067016335331077186326:17:727 5455420863656778184946434235226606442710000429324:18:510 2915328345978182869555288088524689559734182660785:18:492 6030444065779215613707587244000072300632349327234:18:512 8087987292685442260901672765449874028097584806717:18:521 3244790831059681213291526653788099693435331324932:18:495 4693901851465930932776025940665373063968228796608:19:364 8126797799369832726322523967609420434403400146382:19:375 2696968651705689588924553578962804454654242078368:19:353 1166661075454782558816123898274722486347109096395:19:338 3258246473746355331306100317179747556316137709323:19:357 3831660407024931940391772771712160396305950080945:20:268 6150336535520267930008388574335252962797842018616:20:275 3742133730689463489913059859639933932593309992410:20:268 3128570173891287293603507919674050080184187920388:20:265 5138321679098105975734274757398283871217634950753:20:272 1644273118183636114394305761422806897670153419964:21:197 2594367186844700842357165734132291537568965750179:21:202 3952638131517531543440162925212902430357086618338:21:206 7841843241703060319697304387490993687416308153800:21:212 7282327127137660181483001557586334033765998769925:21:212 3300226063231719336955923341550207745645083944843:22:160 9771692355796990858300897412158584568737734332460:22:168 7173053209847323270766680120468560519031699128735:22:166 8323071758594487149853436603297674790104213323194:22:167 7145380098267527929547620014940483651983946237367:22:166 6209884231415564261153319815645015789336486311314:23:132 3692059834158524002189689412617124787679845840854:23:129 9204338332667279846132170210778375801346612552656:23:134 7162225134008982133663453504877764832034149926140:23:133 9924757206741613188314547536957216759149054333200:23:134 4817164672706610141557490945791421693550013039887:24:106 4327996741238437910486320087560409436760474668082:24:106 7426537965142898166574389265783142188189020707542:24:108 5405977530757771051862717959655899846319253625337:24:107 8342075587553139727811653422847711711624343181606:24:109 7019515841603766253682853901420536003793496307983:25:89 2853530906968340534746064827274631381117050443380:25:86 1335760324585360317267674765774766824031015938327:25:84 7521030177850234575686881344423318645901122713972:25:90 9971262003144828905534787441006781612860788515564:25:91 3794769494491893211650708742993678690474586333591:26:73 6545820109265419846667296936576291582533254943469:26:75 2691298756481768869024846625740522366724068108840:26:72 2703530657142427887645832438649810335315334038928:26:72 7612826313526205424933862911412677303415922398502:26:75 2678946664345168806136820449223309709020468016883:27:62 3440518383253179127677699799017740047384989894377:27:62 5590219837403539509143460717734306812991718929120:27:63 5138251104794727890940971107750782198267355722533:27:63 3788832560950515806131089068185985792708242965794:27:62 1080624763082060393271477441684142587126918935164:28:51 2535178842068633344954655690611531178482390989382:28:53 7689162422361512703119002709190747645713469645349:28:55 4799407022423660635526331109751910037101901070025:28:54 1277562630752842226816214827832589906201331129059:28:52 1592739441558839760042678713882505110804813215540:29:45 5953952849456881603893902156211246924894181875063:29:48 7790289946395689230964926274292822970111078359132:29:48 8354773973409918315077582177628654434618960335982:29:48 6572134664194287661957488680843446587917859742961:29:48 5832607473915126463792115161780533024000645947219:30:42 4607594196256351393125177505201918478811826761470:30:41 8314874853606773176204194652973378354038519614092:30:42 5251100794294283085233673385982807431241849297119:30:42 5839174607224066601982485771288140372936011511124:30:42 9185514486400477665303665883470575139413168945855:31:37 2048504093704206150241002030432231469849881857943:31:36 1097560697993741950678545395145347386334716866240:31:35 2944260873466789483616349305634247812158836221883:31:36 6751697651121315681622461839285063757201755172246:31:37 4834758460525606177337760001703172486096161841049:32:33 6532246707951245812583277052388788287112963830893:32:33 4627717907696833776360032729830042202018073048011:32:33 4570570652229736136512709176445644797934660000204:32:33 5974639132452836180640012714901036876582591665163:32:33 3413147458686775461512934750626357007997506946391:33:29 1948057216498005225027929206671543540335775440665:33:29 5708306608051508928533560277045893101268327023791:33:30 7564479368135529047867272545526395737598517048339:33:30 8216009795462436368970025713924746437072642308850:33:30 1323481955684274681285014896074927824553552787212:34:26 8499980258058567755941697866606097392694751181743:34:27 1289299287242735450921930286664865364249157685452:34:26 9991582722074982869253005921841658344121438575408:34:27 6014468937542618450178512602849698009560497032517:34:27 3723625781592668684929878163385677255803670425272:35:24 1544657472467368737656628196632455059980636799564:35:23 5681736260012815273211904168017268151188681033199:35:24 7364298248245229774020060305378154491996460178238:35:24 6766988060616036014892065234305429085817984960267:35:24 1982834859998785205401890556568567920342715337526:36:21 2750061585226913484513438867086219752192640489440:36:22 7484391456615913758488591363954603084812323177070:36:22 5214332785191859909328216322855110988404287374520:36:22 2006156868780768942314291578118496058712535456493:36:21 2271659425706825486908849728146680592001272188585:37:20 5013656282157513573931974161401256190056473654472:37:20 1545370468468571171637637372831963316890005174188:37:20 6911419205205821676041032109841021801596824490275:37:20 2756809310397154842813764772800516075525219639644:37:20 5903603976221109181730107206590263614104473035402:38:19 6293958340827092822436481510607189555432679071201:38:19 5725925024079910790641119160699060121278227299870:38:19 8280604950692559990924714503700237347520163609372:38:19 5712863206067396826154003442071875469924619108254:38:19 2225704302296907779882679304817623981670871284786:39:17 9934499866428653226222014328821577361189793336181:39:18 5330545128366587387877570788549043138195550550089:39:17 7177070096369621044848876452369030660342892133990:39:17 4177591496897192947369101105988981649914812081130:39:17 6101636638814152372601583422094684256867972473603:40:16 7760359433600063333243760288098796513713329429381:40:16 7982060121480175980906818301046231372972952374494:40:16 1559572903425816333073840389332264212498611772681:40:16 8682916496609732337404467579957260382882399621160:40:16 3603782614443776149929402758962242031917557475212:41:15 8436997032198445835906135626241901306051791107046:41:15 6460047435537296747318285471083732503409692114003:41:15 3793960402446371159994794462823681237109312401831:41:15 3161277533122495727663986083658753531652135181989:41:15 1573262425807977138427669222652471526949039757543:42:14 2617517379359593581667044498036672812491779916692:42:14 7655898375729136501727420711601295703734669214324:42:14 6813233594860550277512039505997180423508683085757:42:14 2861433296740474375230384356420060685101118831596:42:14 5328604182752330632775786151673956254507338582361:43:13 8195907453006803978563669229947483160051474899828:43:13 1313287276936175203810877752797037335001150398742:43:13 3622660233820662644217030476351006034940806565678:43:13 5623563025061842626954332305177933496931808637847:43:13 8101140888356003008024086379675600360441490686792:44:12 4171907788239006379634395085826730057661848277139:44:12 1930017019831721949523374962047219904926740598174:44:12 9487160469125840944650662724208751316051156272251:44:12 3457003813420136497636416313095535281774137060294:44:12 7654430190556530858689214786491152701178656842049:45:12 8286581764534928104758281001068417856663393804510:45:12 1831014508918330872192749596329366052675895782643:45:11 8106447548530713233224103123148804678443061878084:45:12 3448637801290746659623271116756210056270193446613:45:11 3608522254922972152493290030002962629553000987950:46:11 1238781190166356017842748835332873833921525396220:46:11 6477222155525930108220559624268200369419729085542:46:11 9935956803578057679086069519963704690512901438235:46:11 5854068029112403306088661131893197957200443024144:46:11 8075541693258394514839060483286436266419198701004:47:10 1273659290857757573335369291345787010190186358806:47:10 7904865227873710030337204813147626824239031244722:47:10 6225964689738491026362005809668297138591480116613:47:10 3793132988443608074610291787672279465828891799498:47:10 6833597251790304546020962925069547320857586567562:48:10 8769502622895739352278794709932349609425861291158:48:10 6285922205171283122567154808313365481593341476422:48:10 3607079440566113394089132947488372344940986733553:48:10 2239097776809282483815395343885648126715253334844:48:10 2920852122250452541045643600965362747755863932369:49:9 5801817982393736313785354795423828045946648055854:49:9 4754307017706684554441007862788615243155101111203:49:9 9882549058887049229366421262678738917315542439819:49:9 6526028279571216629286129118243062339439379359266:49:9 4576261934095606322289573691916414625709229207283:50:9 6025726283214070460656882288316960360062258887522:50:9 2607167582582211447799566395518084764005061097440:50:9 8467209530917703803544054616413204463016891344512:50:9 7071817207487620630799572266233126488833397146468:50:9 7021754070622470243663126303621878755553956886249:51:9 6589042615658318885318343847647162296879630718923:51:9 3104324680475894542207713232377041523929116210541:51:8 9342926559178139255314408594904177121056350430271:51:9 9984774418969963623793124112182687272440222200847:51:9 4126732631760448113035111140013461247513230156659:52:8 3361551464565945077156990765829876053852639621131:52:8 7583971880222726838431121649877334241869636809911:52:8 8263196286568402008825278997610814546570795324227:52:8 7262794539525354175255111560154327662524042123441:52:8 4222014280879945415513267312106299569988988010046:53:8 4357856318609864995480240903499582517079832496430:53:8 5400112012240382910162441469695319542523382142575:53:8 6286271417787874266022758177319215512043741277919:53:8 2737516137264012429542906529700815363391755994906:53:8 1692411524321152610780990475615273251010067145974:54:7 5847517099718707004678206367348189504264844971822:54:8 3076822568917180399827994881792800233145426348838:54:7 5970391234278338422743433819186688252706835385889:54:8 3866817135800659838021801207732715347093492998926:54:7 9238136143363121830484659426862618237484601747458:55:7 1959210291917523453597415159336066689819254777542:55:7 9018291461145710884073274249567983279047791131527:55:7 1732612202908107221449168130114897971975447615768:55:7 6643453604429748979777619824765830677611885365504:55:7 7681994126791915254746513848806812871199542903056:56:7 2309268336173071584146621789438688800191794877452:56:7 4806849941234222449946054819882066861535549021868:56:7 6678549296558168755223140538151364149353729980040:56:7 6478355057160369579218361091944381652897912043410:56:7 7367496380686834691051077838175116808616058418014:57:7 4949277541831493342477515728477890425145253995209:57:7 1899482418134369156720203851097882600439825524194:57:7 1700941542534958834876022170902608613367825292119:57:7 6410216946856461902493139161363395182094528072793:57:7 6648675841531521627373031970576747440808538662295:58:6 4772310145699978154815009093992844246514743546095:58:6 3130936970477243076252879577592444242831319408367:58:6 9624040674875733496081143623433097052978845847717:58:6 1705984440388413776192041541292046790769259881612:58:6 6181023243926141165080628956403398618951662651153:59:6 2526023384090422306897531553649539083407259507515:59:6 3788319591165664911165789922873073186206823806486:59:6 6043263896208203818076045151618088347694498740581:59:6 1866911049889761544432580764298542224462760953651:59:6 3052014407560142980276341405064717339388088594660:60:6 4316565029221560630832461063283644102158152252183:60:6 1204925297561076660223275812710991323241579027360:60:6 1917074901773792018885740319787714348077246556055:60:6 1200459833113858914367143322079018543412419798480:60:6 9525009185467662914198278814142011334540751575363:61:6 9575981463901693989768796745672372247949011865855:61:6 7434632239280745172486606234945336194911276346119:61:6 8440276716998104048820092606377323716111774797741:61:6 1548767946974010269894704019525193108928131261439:61:6 5550815159081933059858377716242938811099454814362:62:6 6621273653698680186862629477780429710437556220348:62:6 2268734313683706022265606148149670634469135491158:62:6 1083295891981565969931121478820752993938624957930:62:5 5615329180939917754966651827844393317654785721588:62:6 5994248574113178716839035339713927244316465079276:63:5 2874996250401190904130065595062970116209592523464:63:5 5788468766005909207327691668895559545128084165859:63:5 8015969700096436750395302251789791413282084518528:63:5 9562307115318025868506380423397199286045217601491:63:5 8194979641622827375630493611483317179917308052550:64:5 8651904308175752449469450501927772063451320925619:64:5 4378492784699273315729026741813237334731021725110:64:5 4540158392485393516663219436904410750405061261622:64:5 5233922388612043882687019547596920496018488675419:64:5 8497919812256874297841712663803049452809765658909:65:5 6353055995522171534359336438937034732939879611527:65:5 5016431998620131545933041777611398911471608570447:65:5 5019744963664687841782472480811681105507782559998:65:5 7475305417338139223171998212603272343886519920845:65:5 4259442302292265652104900421095340468972623998142:66:5 8632351195461910517097751518627858779771978518838:66:5 4626091702913982397233643722439173743784671662147:66:5 9565949034645272013429156710467268142157239695869:66:5 4235258161854865789632227382120899255142334740960:66:5 1763967477881474371361430649276222629683520469408:67:5 2970536022782314333247134903313957850890860040802:67:5 1587421710885962896574180491444672285401024988849:67:5 5276305714884992972123423227491917348963283633952:67:5 2683459150858701793245163349742854250484440501299:67:5 3627325083840783114810765741710290844310471203760:68:5 4491355727026967829872102136814923944239469641605:68:5 3813987360292748792627257376477765236081343351380:68:5 8192809339704609382972547945069430056692840220879:68:5 2120193605835284444442377987687288799087550256858:68:5 1805848257622817624144827173299987074215138996222:69:5 3870857286610739724143294839695439137978616605732:69:5 2430771732105905138702608018829716589544750332981:69:5 6778557480944527211763268600861565378291002382062:69:5 7974314331449308057387946826769374199052593870637:69:5 6187821811706886813788247772113040683284319711603:70:4 3084444489060688435309445347947653150879969160796:70:4 6349185554620672178596659511454768027192284339989:70:4 7015937561838790874021685575584648262193779636054:70:4 3687008514057240568438821675825954992374789307927:70:4 3991008114499500763161824438615665624838101909835:71:4 4423396115418220618400186231634848205671522903247:71:4 5803192026516542848954771332564523377312407643433:71:4 2722763173875624609690936982979693405995350403589:71:4 1862395209494927401372425842137056360322784092585:71:4 7558192684576081300474873280205879434750415246283:72:4 4786834745466131537481984378711722388969568761006:72:4 6141110668792959901630006289940284166502487963819:72:4 1423845266395611839874138914724931638978392503345:72:4 5823242178653575210813727153741985843364544542673:72:4 4906178473978384671176701529850834829258103386651:73:4 7083263139632354686242141984985603770726277119899:73:4 2216527425993142746667285078590337148257543455262:73:4 7936477242217831238692781987907272891283224059133:73:4 4219106696795525399985064131086345327984327124707:73:4 4377803887434779201455444046105455429068575342654:74:4 5215751335921071101881671892436612229505968979871:74:4 2817470075133468838656621685118257020916613041587:74:4 3948862096794707734836358479467811527167963758676:74:4 5855097789289522845724307934320723973865619602977:74:4 8714453689066763843106936080951187956937426551739:75:4 3242987649881910165287715043766533469584601843097:75:4 8895520211272348749138162980603105298198212354891:75:4 9704031279890973524123548601751408081057923076339:75:4 1970048098808149331316723545238654080204195545633:75:4 2946537107376750427957941018106491368956729377608:76:4 8587428977944625742815087834357957519850835444346:76:4 8516199908689833802703243975711414964060412999244:76:4 1919436436303827068453536281919199602985935369386:76:4 1146344509176367863319057152485075211515469826339:76:4 8744766673376378490130508582848409198972876725675:77:4 4547690578484999824543801104006420607732938379337:77:4 4691111907585927913992134931784089730483349372614:77:4 5554357853476068672485942632602303165201494466603:77:4 1222515273090425077584802748699756908824924867245:77:4 3517313436239428167337146383715307325861215910869:78:4 1515030046965927354361881991401417287465783294528:78:4 8789857979261581549223985168059052262300962194347:78:4 1763576625350427244797754757919918284584758064052:78:4 6714458995474178963362099070042545779646087385070:78:4 4420201385879122941299819586363521038480295259583:79:4 4222801820645211202066812080330456273411901873649:79:4 6950617146170654411788081105220068717559624762094:79:4 9275686202436143873343653021236101404125202445335:79:4 2238660848999017861255170497734310445960943574911:79:4 6480008547065979631693699177481209538726010165930:80:4 4896854536411226294150042791775113114610652585801:80:4 7482526078167512764030271661901793151915914731493:80:4 6872824341364180408985153938499857980548112335188:80:4 7357734087519752142202872808030012757197500138895:80:4 8072421668408075417110078970004558910909169547619:81:4 2085394068075862609046784856061433078584280111095:81:3 5390124543815412095636974466063086537739119400377:81:3 1256211050136783080924626294364997068141812396969:81:3 1553167999684080563000246923803498791578166222415:81:3 1453933109341182497153772697159667721860636120450:82:3 2595183431101053068818286279819892186272839435128:82:3 4051256991254685828481130720214477947074912412703:82:3 5994116773561956199363935758342327837769752189220:82:3 1007252505505231013571734884394964223291162242803:82:3 8764992819187912548192981314597424127898174823171:83:3 7937831568127352957472787983931337845405413850198:83:3 2725050953482051181701577488575460786278694688524:83:3 9350871824487937959627517224040740791676059951025:83:3 8702128970053260290729819208615881057316814326406:83:3 9974594146191099423325522581979168268999039110875:84:3 5822215372374105956705430694796625447994309346514:84:3 1038758446413528058758687130947665147603215862562:84:3 3009806145415164453083165470344270838843655146749:84:3 6071776501061227068855328909130365725944651637064:84:3 3047097861247800271887153504447257840439890142322:85:3 7805914425563152440098397229544718573680727761412:85:3 1151992309998400631655985410413760933749513286769:85:3 3129711174007778848555485920706662229571938071470:85:3 8062954672574293479078027819756684674960046730937:85:3 5970135142062283846093926240820910086970988490556:86:3 9510976175247587126657949389116208553014999220762:86:3 5388729732100806345983724711302081899786743868524:86:3 5806332703459201856786135891526700213083301236540:86:3 3378140624515009695528183139428959163971826055718:86:3 6134900593449203202256085202782367396130651728075:87:3 3075764616828376648458511383254651525256842095663:87:3 3612486270432585832832704699809901954091824289081:87:3 3590753301067697231353355704177591332142160707141:87:3 1783566270949360670145026299977561644294542929885:87:3 4771645707037921961988232704458957848501957573935:88:3 4258092724056728152771668382482244816272591400317:88:3 3349261808001048965661002174178609354835180270811:88:3 1344581402768288782051330083199882227198234107779:88:3 4437548663555245278243638387984442471788793284797:88:3 8475729010395280432834912127758818217581742814773:89:3 6028776334621478626901997858846265873652452321742:89:3 4880663719572032512165164867916956641369818379661:89:3 2402560782634510978551366011196802788298591499116:89:3 6872004131302190381528192002354690459775721440705:89:3 3106049231909246033850363368146789010132046802660:90:3 7912527940931777760353830149411163170553766081117:90:3 7128310280517734354199906131661150646710650796188:90:3 2620166039738961722129908342520856307026952905786:90:3 3769753285943763942196652968385715497286962832145:90:3 1816384620908024450486672126400762215128297888081:91:3 4346392640537235447947084429994955883218613883540:91:3 9277114235512712369534166795306973135473416252533:91:3 3512381467281873896331828141666457816745950870883:91:3 5401555732965270961558353606617288341669117210413:91:3 7792199658585550209486479239552297431933296574794:92:3 8606209110399157266689449717050073985509197646961:92:3 7258105748231938117110655549923010195415649371926:92:3 5026727371915909448201819505606931020459513207937:92:3 7260335757631220679493206975443534470061563220041:92:3 4385542304480859477550803020935608497891072537865:93:3 2510307938157240575849183886603215063619179859551:93:3 5262716539155051315294196885403883858685287719160:93:3 8169853504605211745672652737257336120075229439955:93:3 7219975501114679724153631046685501077620308044528:93:3 8530951646450797691182521752495856109971329781113:94:3 1382639162883775156202943605095047867667448887008:94:3 6453675764176752146360712886270563633115702246563:94:3 3964330585030546504592266600609629513657920491271:94:3 2953320124050252883961422039686134825294032778269:94:3 3482581666569737273602108115272425322583302601893:95:3 3513270986336051935238792466466330963100975096304:95:3 2612452814862973709389419268931204588050594598576:95:3 1195517534925029495484967420747033268620025087922:95:3 5708736525291254902355890435713891055846632354522:95:3 4424089776096336824406016129708660009907101873137:96:3 3333430818700411376746192163937982978909980689319:96:3 7549549440282013928520705993353950883595446240821:96:3 6630316146098945915358547402356922214630625462835:96:3 5530034960325318616433884160254526254996185124801:96:3 8749145336001954594655791295390436116780731370686:97:3 2135616600581862356226861103880524117209495248285:97:3 8472468443324292141356531872119959003926225300335:97:3 2347594767806060006442150668173932798904927322658:97:3 8982722631575280950204714931644160950145630891259:97:3 2558140485967747797154387286760422679200472937512:98:3 6909837992288266878780770959932627381779749361877:98:3 8439240299190331624201003127961885972788560403076:98:3 5505129341006705546708279747677471412541198855328:98:3 5848162232778516375526090237198540113649011243815:98:3 7167388710879695872601908799107828382264329325579:99:3 4724578984657898899206299467150737260335445331216:99:3 9658744968326798366815320571824713165206479693259:99:3 8971849432644737433418894155875687826276975007330:99:3 3030658470375311091394556071070211154821142026267:99:3 5175643454246329058803870635157040203920737363901:100:3 8067296532729665116256036588212458693021060480987:100:3 1769347286786898027333913368580505322661529028384:100:3 7344028849037655679935844618708177324652500353163:100:3 3135566747932843641570202202452572169802513519506:100:3 94385245133532004770179372892264716138102083943907:1:94385245133532004770179372892264716138102083943907 84244972590505176583569908390485260625185957737855:1:84244972590505176583569908390485260625185957737855 41868239252373306315592401544073782609559992426630:1:41868239252373306315592401544073782609559992426630 26666315658036271353212458827543115553169728820483:1:26666315658036271353212458827543115553169728820483 73958055103909130000930222051854809274682477557915:1:73958055103909130000930222051854809274682477557915 74331789016410945704207978579958132428316459953836:2:8621588543674010525832262 51840930166241979708753099799598847407884195939375:2:7200064594588161033962466 16236308370508079507835079680727764192974416556064:2:4029430278650826774699128 49442612743901853302366256158580145247968224225404:2:7031544122303567917956819 27948392714077362923573674771489056854876046466473:2:5286623942941030009685540 18521660101205515863200497129161394572709092472759:3:26458180200375245 49573962405315987359218731832446152638740522672479:3:36735380651943676 69377797432772692649834578741475073602233457092053:3:41090381110217547 79016040582973992297339333023909705870113246826149:3:42911308191108050 23361070160700533077494763029324305227651985370128:3:28586714517008684 72568463250952532489152047541504745845009911407187:4:2918683356382 27789117479400807979009437855215838556778838697679:4:2295983108764 29510203741980379542818343360295226765037321213165:4:2330735826938 48740308184973927148098567140965428599097102309400:4:2642238812464 32085206778448564913805455709130542705324645940902:4:2379995909471 48693807901869607508884611035837945575681043693374:5:8659538504 80283851648198254822835366832918509241208231078364:5:9570301942 69094436747259439992900811948523258149343414129441:5:9287281646 32998903373952536575632993721251536401379872875369:5:8011242933 41374304721223997006210659984696539815380824402683:5:8381970764 77421807754059080870918291170179410999198239336521:6:206447938 23920452825039267411271669068890296522723463620708:6:169744182 93168126782263747343527428496937257487581010265565:6:212917435 47102313609380204903883874064652815661607999868191:6:190037965 60918023120986286851821186338917841198962115983952:6:198361614 96784087365647708691696096318516800390161408609061:7:13830221 83746363412694310053239987267957638665323222377742:7:13547285 77529435701058045485782263579563066558685035374495:7:13398823 34644419251730704965394189224539384044856143811064:7:11942368 72887916704199122653375252855574243993678335998218:7:13281175 86343220032229121988926162947626833786833713163772:8:1745936 63197640557458168239401977886373109235286361506397:8:1679142 65984789456108329230991242443008917169256751277123:8:1688225 92226369893512216979119205857901817998759517516326:8:1760381 52896617571852967984531088722631373147122786789702:8:1642209 35807875494014673452153034505273505060224785310036:9:320625 37501964828541815029469175746764711755279897981374:9:322276 40629743357592125170730150500405868395363383650832:9:325157 95788748399099732543480466715247967799396051853162:9:357667 64964403243166650019941552878472614500112308639085:9:342563 11402141028777465771280146330231896776569207014162:10:80481 24073624072043384971806757419239389850466041228739:10:86726 94763613602217144421943261614382896690490054535354:10:99463 18263588014257646371636861266082198328063364284458:10:84364 13939069465313110224279406555873848904884795026166:10:82115 38763855866394357681168545929578606623760510683385:11:32213 57213261165064493404113329666115630288939891574844:11:33374 93833417890870977179120586536947676937007205119676:11:34909 59158930917297950161033761119235669043438554551675:11:33475 90130048433746212237793669632806844734810190807974:11:34781 41156962794466222908691537910009243784308548322887:12:13631 74939183691117246792729321795523593714756620591325:12:14329 58524652788843178396086335960210725606209870012639:12:14037 34484110427549185717221663747625632270260521927242:12:13431 18404130457697164648989536766787133272313768303425:12:12747 59831518223059944107842987562055048161713819651236:13:6745 73293837396306526485913362265053574515939358047795:13:6851 44743925197464092979300546212691612304397471838709:13:6596 35565643787360109869324949313726024654706758651033:13:6480 54417017202437869908362742435981945629711038165976:13:6696 20081273109511647078131971093920043612280936674566:14:3323 57264656019444798672545636148599575829424785195471:14:3582 35965027326413426581791256965259947689245006623125:14:3465 92199359528197030222030636867769170360388846056258:14:3706 20341359961270057232773118794796156387925795114960:14:3326 40364358005072244077731730286706047807788895374923:15:2027 47963555512185914637092746977855354027758114783738:15:2051 73981737244763298002520144099556789133726388302613:15:2111 71433972755032008315040425395171636186018369176599:15:2106 39080678648073852851354677154308708953743206452247:15:2023 63923471634604957921419920488839568468074172436681:16:1296 59490844865710775435164512656047186578249649151763:16:1290 64240716525209999455319957355483047905779071115233:16:1297 23698799436459456838645313044238757176719676108385:16:1218 37190684906605148915104279049452842952389191272270:16:1253 65284855055836877368158402398633237489675941444394:17:851 79909515812411699836058975150489407001447996322780:17:861 59301552593924534005179446956560047967377140220065:17:846 89101660301191328749541826964628227197916709802927:17:867 98673846909679703867669962179322871763453214472167:17:872 26537508186362072263515245163000370877731610774367:18:556 44867017575177283862694582250260399251295186775148:18:573 32531281504152581161990987337677015078677384560193:18:563 45444128225765126043998858358775175711328786261642:18:573 34733557217363280946045879186903799630066446248599:18:565 39112410012479626686910437652617550992862962874962:19:407 11368226532552351338984479562331506166607327047770:19:381 17308047272853841636386023172520309478293194092682:19:390 54327529253713755041934205492892019743344715606708:19:414 10080821627873977003545291859324567984813922792442:19:379 44537808012940215005450606583784783751537035406894:20:303 14286943668528865539161590507343928509686514722760:20:286 85482110103429170930423512790884875621694907734498:20:313 32902514647421585022731004121809658648490628549767:20:299 47893424881582382168669986050486496107424714259962:20:304 62875265711046383169859874264079449357458102584295:21:235 42464928048784159779641701536789589815030186709479:21:230 70270683394960465293399843761884350563761169108719:21:236 18156423288982387875009335204426848936296000252753:21:221 61448810600193979681717294684449080816301450695628:21:234 85416901526672333682039277577506842759207640107512:22:186 17795620213202947485025198168518262268097346588257:22:173 56298742130818706208006005996626160669415454838733:22:182 31578950738496080691016672490715617150850243002539:22:177 13383607731946201757680566619516611722721261351594:22:171 71167591342197083706965328387889254349802908018094:23:147 43158792061643657335752025994225490328533915616537:23:143 93465795845245895917415181980369725451263640165987:23:148 47259598987119297210272190230492244860296201851277:23:144 92583802422752272831282684700277265807842611220835:23:148 79082235812139848831740267563542280876504998226753:24:119 83526104534361856639444596771023857980518956021834:24:120 67981521688088442979951928638415285413430454609376:24:119 31647686351865217626828573473355185687672167576760:24:115 87607809794642391014784452356096357910834415710666:24:120 83710780111300621437386948406159781979764444875982:25:99 86240161407157604942644453808458122914439323755366:25:99 97186492715237155922441617659398260310567153093454:25:99 22596832475291182706535583344757713496965240915719:25:94 28546188883823333918026410414950739121020271282126:25:95 58879340018942521929254849832845541442911918614335:26:82 73269741052509807478300228216036901804657602326755:26:82 27998950865116995441290487612782902861594977494097:26:79 25656868346695966250940051891556583640147203692379:26:79 28149294555556404002375603216233171032549746229122:26:79 15629349279327817046333844531354159684150865922346:27:66 70632561313593968558044857582798818025322222496112:27:70 24951690754393197749343064217742446708220731699380:27:67 90865426969606459090195764175310085550298808453719:27:70 24020915553347510436630051034257328085962478415650:27:67 51891847434255019318488027488891819224017846628941:28:59 19959375372034785524836821721063609400573568556810:28:57 87390451173924607515943946536754816585043811656643:28:60 85461327582226288543301021678573283811738846017422:28:60 13049432868040051288809002154735944808831686434422:28:56 17519070034567182907902413852755512809150418000718:29:49 44497931536636099542225231540027463793160827719983:29:51 46595125154063915412169013454066913360195895732350:29:51 20851804600670950332574318506743122617025539550064:29:50 50227020119586750289086408153464499063216882112625:29:51 84048348173715944615436674803126469017291518638258:30:46 86018660904636132790301786847429113456190561668321:30:46 50115282033719370713220301204992976708657268399930:30:45 82299599901701892534429706449822960914674176312808:30:46 19320684322682400338691044249637863835170346244471:30:43 76170779842468546336356570092884879616512423225520:31:40 29150148448419707624421518402322507087022767858958:31:39 23084833168821695641672412441901302316936736714231:31:39 98069767081526796173348671226405658034270806473142:31:40 32411236150751464944793808147466522696625040676917:31:39 58916504515621940243902916947031444196116584532030:32:35 61445095875812565318361675871321068178556220306895:32:35 10225369602234524598821481581693952449085947063988:32:34 11379389722564359473365076190834620723791498792243:32:34 98775698228184687461368746371546158548337833973368:32:36 76358234292367325564892622946894740215380412083109:33:32 21292270680467356585355046825230571064369917010840:33:31 68509781473451014715715052679564860866857131385263:33:32 99002311623703703049983774394013198141619013330156:33:32 65326287622876389454207633542100796471822675918698:33:32 41866085300292158872301217466421119394877548284599:34:28 13294996610554509236929455315453108679472241938664:34:27 36846271445925176535900897726077861064498246178311:34:28 88250581102464019291394942306820902979752986620500:34:29 63388358462243273023808934462251150009726399974033:34:29 61785943884388551329706421685601066339133033455994:35:26 74562966419262590210240560667977744735903654075880:35:26 21411854308225896372927872225348061761706661093904:35:25 54949378701663398880481830735132158574746568558536:35:26 56968706948385072875564515072018709626420199699619:35:26 65566892876478702510439435818021825338533735733504:36:24 97244632974364140600370229844653397199284143416687:36:24 74768729832230142607518362322272415295804236774975:36:24 99317456572043143294498363866299681071656871728151:36:24 61382122395078053455306356918410053365761213625419:36:24 65319512782171653156604769389672181444142635056550:37:22 99838291350752543290904502598851817153508579147673:37:22 96561047074688456220580154636986961546238521959911:37:22 55728806251761861299248592806125070112740533323693:37:22 38818190139884706175534150090656796947979028059786:37:21 21276861153449304140504778376484080226392120179791:38:19 20861479143995900790191434367667408050788845714922:38:19 67892431059604486516151763833567364497748211647780:38:20 77047969546567682702379134048556662922832932246190:38:20 64829341813136760726747412333315598981202314603169:38:20 58680226541170697768891222021857405560120019256230:39:18 11474873199948748092118686615704034396595372754670:39:18 88585710346426758896531158378031034757261539212451:39:19 16823116137552051214565763340523552042792317362033:39:18 28742060608464902947155208795285851957642586935952:39:18 32158282371845952010327153323522736265262040521693:40:17 23578567726949227820447589533383966821090024317625:40:17 82291495204982041111863129616748413794316824907307:40:17 15223427785107652396174891338032218320683966869548:40:16 27371325601966944154816848597136123067863046782106:40:17 60391133683893754388870552086593419616202342558541:41:16 41235666147802197389707467349966943432250047270061:41:16 44543750900967189758097412535895758001620938531704:41:16 68736761734921511748832861148443714067454983097422:41:16 28012126600282255679513673548667827955336823253735:41:16 85264269786284589679982413626592586337755354192763:42:15 83771585632810271895413825602017164088551577365997:42:15 72856923508236960347405767366914817452363984117830:42:15 63275022825624432869768335281205256239822112314115:42:15 74307594266653778627854101904376087391865156609217:42:15 70832841941095088618076621807462796150080238394195:43:14 14495168574132547309579060798833778340328260521156:43:13 64754489775844388240853841497526419689163441896400:43:14 73709802481936157206848498837014254015586040162690:43:14 35034035985998523067181224038547016593519716288078:43:14 33330271391577384335936519873643819497545889616541:44:13 17123288238486900631539940642494257711553720358365:44:13 73850499316894171779917468006461918089770168040550:44:13 16169353171274964767770722561243883700017464252130:44:13 39191873684462172580631547793357257107650798104672:44:13 55828754042163723420581266072205085144717649284285:45:12 97377456667028637916020554722766869509751502170962:45:12 40645689205089765469448265755677929673380963950280:45:12 77028374099204520593137204609952777744958369231916:45:12 69681550855603770945338575944901246139173453168390:45:12 31880710062662681798861122941097459252409865119572:46:11 39125159086804069405331892049887142164253460346102:46:11 36965731531236465527570663674303332704986448262753:46:11 12473992425795782803818127666657463217947788560134:46:11 12546299698433989572628838132105455798880783017992:46:11 47665220282021973451889221772957494324202761008211:47:11 17453191495211340564153211461221309614161159842706:47:11 47203853871615515542523074034278167356525974159593:47:11 66539096648153530567311576957878792751661927983369:47:11 68179199441032614762225916720706815127605083522986:47:11 44137386607961142096645143647983543949717579996393:48:10 51543023720034555589609193593533136678376254853837:48:10 42751055575109397529337010291646698982087006673771:48:10 93192804449199196781510754938398881199913969407492:48:10 20064616901119101920773950129463571501882613842404:48:10 98757168958109891396997639002922406830444283296566:49:10 25062119295699341675585597412449859379487401063448:49:10 74569435941988339754637231801624213106496807493535:49:10 25867133062929660843421523053677576238584465877673:49:10 16432919490540701025348385686576149172421590048374:49:10 95508716019237356457686989102930734102874042784110:50:9 34123073300034884084795446340866026624321212922622:50:9 30581905850717989373289457806140350622571884965873:50:9 46731271840441075657575097182451241019038733440619:50:9 87217932929501384111535837953756807491508990969242:50:9 87903326980723811855639191317719101047335678681837:51:9 95024762541770649437483640157457346450647819284685:51:9 96390835674177884090529796075116791396291568299445:51:9 92061105035953237641935676233237056965175641366581:51:9 42549060700294808829892132757001982377383882988447:51:9 42258004424092718046462306449832722068634836686105:52:9 13307347262330136131131466619261857213992044011969:52:8 67536601861451239115398382207839089419749940649436:52:9 92803278937139593487538714982961039449708290922161:52:9 29107089510187811648364054292306189451708163749066:52:8 33909144746868377270195021086383102435256734010647:53:8 98889045875996056749833022373747258602988045151214:53:8 52151720338697887252625833498960699046200911179794:53:8 69564408042322373522595854499869627990822443010580:53:8 71718911635106791597437908303814016882546527653983:53:8 57267809187246734652883092209011463947281156065925:54:8 18640046081055188327024753779898934636639673482642:54:8 69049759084392165854236804623393809778123794878710:54:8 92246975895657887353056168541737974160126646491551:54:8 84251104364497450448957965958897437576859666790255:54:8 39345662060012772899514138203341832489472413348571:55:7 89434924664283394213644314558028900457419226249532:55:8 29433889620290022419659952235416536923495375692092:55:7 64000883832181920661376426476449181070664502203748:55:8 51743897208001816899554843033471477788891333559230:55:8 61067155412773297579620242172973152496486626480623:56:7 17746188993142535402573661621962246773196406906189:56:7 43792295420208178624139349463618316691076190361682:56:7 52626589573135186416192246826348722146926207468952:56:7 62296753083046344745974288184481953171247861413328:56:7 36873605151230735729805465796157649424278256699712:57:7 82879818744439139710292819636130513678012319135880:57:7 42981400182642966218121497305089959352030485609856:57:7 43811331918604851144480318902951207551358740698322:57:7 49228903190195463029982967892978537579597458265986:57:7 14671836214891311006026899961597262860689647469314:58:7 74290641736126190376848130663067167511507771925902:58:7 90726817327931437928991086367437559152322571954348:58:7 19299439173372085752693237330586946080926169886911:58:7 25753019026722841183175942033149793913899335021698:58:7 71066375734024973042320499062566751510936249895574:59:6 63761761938428624415920245044650385592143104552777:59:6 16900091470658015016436191254541816368316148475844:59:6 28045173350374902142372799243261394804781510813892:59:6 18122823579554354762019323728332365245424890115990:59:6 54235753431981514979184433472961948551587242850649:60:6 58982718895440612162777879964530315480801304907930:60:6 55162901673178501305581322456979914412930196457931:60:6 22358659101054107711502788895335193665205963390674:60:6 20893170955098596502988816876924617996335967211856:60:6 67686926194309093070591674521593620096718854793918:61:6 97012591383639650870426329465593190006774586466409:61:6 56525946226512260015441653845112658794721773315604:61:6 47217582977625234497800268845760054122472968908916:61:6 70480492240475915349905222562698479433798069376561:61:6 52568327631255442290438393439144822813487585029421:62:6 84000796284026881765210424668196681564333469792177:62:6 10312518916115647835766347575375231443279677953389:62:6 21440538632893037895047589733877704244724465624440:62:6 49089117327018406832807699998719550371709936586760:62:6 49088907647936495062348643503240304903399547997155:63:6 20508332754475906723785793724011926888876071343805:63:6 35491969093654325618690027030979019275530249642420:63:6 39968669734983339753127890557878295502166490620311:63:6 53167166472070387391893064758456022306806172292752:63:6 23194329559764712192105929903241319014947710724363:64:5 14203334493105370754694788955999476968492348533043:64:5 80626752493887051995977411983631383899561489006449:64:6 36673792857626229089400253757274571257914862819066:64:5 77575043158318380100930222416302872260586090523655:64:6 43783648324743872144129114326873205395178128004563:65:5 83563997758623141365421361984055650688130575345446:65:5 85158234406377879180877791128659867151545695653522:65:5 25944754558305692990120555565244786570690988631227:65:5 63873436053605149800743576369305614294384588721279:65:5 27242825668763511626339576547798815068204860449406:66:5 91243484075166397225225111580003313477707776403630:66:5 35109240469052967883194116385579928087551962024078:66:5 80755917385305995469399099829673231280506156134258:66:5 21474393663952405438018994507846501448512704808768:66:5 31310595643794710262060760265712441659048085689279:67:5 16001438505540249295589564493949018580308765323115:67:5 65820730051408040185474787115461991563558621916984:67:5 78619804954839894446431784551676871749676308101338:67:5 89912555735967597409762293881133117026403824609003:67:5 85705439915108698293147817578756570221037980675992:68:5 31267095592934995056625380517425401363369626404645:68:5 40434092782584355960373076295681566303062276963393:68:5 25683021302098627767870931220983037510695929534393:68:5 24558925060114160796437878245363131705437792555953:68:5 33618894583363056047321999357335811241954927170503:69:5 69188461278939883929430641040423783268949195242214:69:5 25069789495190601823311154942563038151475018060444:69:5 34110983258356845750885335218744037170453910352674:69:5 52874748201893534702109448123422734997940387428885:69:5 39091700064212419764098142691906344389647762827597:70:5 28390737843438066564053493527081597172392814616352:70:5 18806309119244922153889973368220379366496806668916:70:5 18856546186256106132510370518521404877266399576023:70:5 98044690040181900261385104053755018969119844174674:70:5 47063166119520549647801908551163481132413608265812:71:5 67172724959161475066839955057363847259433925782361:71:5 25619226689357549527015981155439912613330521398300:71:4 44423493335133635560759385433766340235399209628554:71:5 85641779877082041747477317731057620033783749931938:71:5 30038006207767539967485796740125597209898858255907:72:4 98129408952409107960104814614090638998831396492141:72:4 21267549115878556634074596167691286694639050918146:72:4 68034152896165208285255065604474451640657528427110:72:4 73419210298603098579670191547291111369268016310787:72:4 81641767103740038695148651847887446501373737455922:73:4 14203919653507282522905994991251701307234464825765:73:4 56186794299024879381219775106020243945156524508424:73:4 11943340429388028787638681734139895754924920364401:73:4 42843766631087056652419929686051102480113404921609:73:4 74954377789994685389813294136090240056982813349135:74:4 31987739362042019413759776571133069140283923371327:74:4 93376072697036683026208319729457846714596720791659:74:4 48249990871984893111695230930613158803073094665840:74:4 59919070365587189450550806271726406328471382439803:74:4 30621781583909990872450695070595841636490974439117:75:4 55012974161915644382286650677733916818621238441499:75:4 97394252613081493877845532399776202615763010966619:75:4 45195543647616276147882727711530535633892431287538:75:4 28945033368924878766802598741847862470595018553026:75:4 10528340343721631155371936912251772700730769805894:76:4 85118980360672793162723818402430740459850701159852:76:4 58752403802335363042244441550432892886717615744109:76:4 36136392510176789798797541473642176721459414449026:76:4 69139664518222749722236873477147589217381720027526:76:4 94612820459138646231700029566347478410719596633056:77:4 26470822451192967177690974171160735742367445232994:77:4 87815273291636341246636172068850611417225829476715:77:4 53514928230729463100782994034666520851851824610620:77:4 97578326532343239996369260951752567248461523715790:77:4 28228482106633307728349046747146519277968316045923:78:4 67550053830157277141377833444543161363326529674879:78:4 74273129391748747832280344245218250152185254490484:78:4 97586288170671111053129546949231963546301518612137:78:4 50361446068559012726685538678671597397587951714348:78:4 96997258072498590592602311438448163094712035100056:79:4 17633287698868889367255032524205069641968060648513:79:4 16418211989380167808218359331519508818198154269166:79:4 35953949172254273429398160236402845175223717079617:79:4 74665454534240651675897286013059321028377635910508:79:4 55054185963412885191936494931377520435826064189703:80:4 52535532623182241755720944105297598520853267560834:80:4 83992988047588228521730775001994501097694972348195:80:4 60631606332245674352238536324102018736548515819944:80:4 31242809575940065954462866229931532394148061498096:80:4 17425135271818892045971540093719686421453176346703:81:4 25856526566198681910138960916261765791077021563135:81:4 83057345414155953053025106991806754142118649469425:81:4 15359750490361818793429455791846893980529564005428:81:4 78736638037482140957408178277752156000039383912959:81:4 96303080152790876928972171753740967089577329211604:82:4 50307460280327347319364980991192173522036105978947:82:4 59524254068375893860549842460712516424782395207279:82:4 50781802169319153279673824392351737988941893688581:82:4 95051869257315054498325283078538086447082466126021:82:4 88973989108062975830861361253656165289320051029130:83:3 50936180728282754231390071827798479974816076857067:83:3 64330540239025648048124798396496134790402297757688:83:3 51653401191966690949010875480719369821550581559950:83:3 19774182463498923640357683834015367071472692035794:83:3 34369112226781620028357467621477099189162794434065:84:3 10614518195743616774560874219246502488156496075395:84:3 58890972233160346836161599256002010034064976563651:84:3 83876249520192474555845041291152976407867952805651:84:3 13886428184689527246298729426948128309449494223314:84:3 14151252082532749673845854942148734262971548129380:85:3 70570379570044117752389740073674583082530214902364:85:3 58755993232729373359603703253803920688496171029716:85:3 96565588413713091316353823547665435188971930430441:85:3 64440275250066859637990641409150497119518062645584:85:3 80031678046193125994268890570336322029036455900934:86:3 65029440656121565890068624586088141219163638608850:86:3 21405643321666960664261328724354622626333800844129:86:3 21403373195670519430991269925865910763255262050048:86:3 32537416264839797830962061971494873480732607166336:86:3 28748881658527729402863569435303462423479090929128:87:3 74169986325010888999574261113604591000289678883499:87:3 35321561057907751686040469289347057786318452878996:87:3 45169796561106369718672069682698660022864634749815:87:3 50926364873418184062217941064777515047430417268974:87:3 82755913715240077031620949665845988010762584587574:88:3 89426874799769104290998867504078447580241068930570:88:3 98279622862181867563903596757448394190605566950455:88:3 21762094016053429925275534347411766341399702983651:88:3 87908024209599652557440631824859913389401095568048:88:3 44151324131155587304291787130512812332218652336059:89:3 85660462534769974388492661342405002912119026797199:89:3 55263636919361591644056860790164462656387218322663:89:3 81481290123100261063576953957560488278272700938154:89:3 21935001658431197522483970547489050346763229144801:89:3 25229108860397140847176689884892783432276453704628:90:3 48667968801739942961446591647516249792225360011422:90:3 15214246154749817855297889336071486950166471715818:90:3 80974383233676703487444507728541123610006893521957:90:3 92578140556469280226697688965720493922202644864067:90:3 81309427228431655418396078696872452147276052352757:91:3 74631101106719602254136405626036738229548791825481:91:3 11891335472767085565848412707370947150087529395923:91:3 82890069062551250269937834869053255638039540592799:91:3 60983619197899314965721710703816729920343402353098:91:3 25470338211189457322723893994045905688362014918355:92:3 83758768291952553670951095327697710706356009562016:92:3 60002000832868148055760447785981484554821005375471:92:3 31857358117279284500164447076124683701673598923246:92:3 40136130625274982573536768471754230497473388541173:92:3 51247167555241041164260884676118091712730302033521:93:3 80022763060644346809829165012542520046567992361101:93:3 72459629381374328415842890960569039517642074455510:93:3 35387846551582204935908103195896108287432622905775:93:3 77165436277840559403712033532317409901839566727795:93:3 91212506660193738124034558426685991342737381135899:94:3 32326657709251251748774717563748809151995036790780:94:3 70683985134090439085619072399004792580470876425999:94:3 59029700513901236617847895576197214750875047470093:94:3 54924764108549604579202197348195383900060719976447:94:3 20372376705144802058707300047629711635463222936619:95:3 75534343141909562952771447337212722134411882341040:95:3 59460728617157093992854587692489467833072990717040:95:3 57244176367403357376411277259424173256905630807565:95:3 84019483709034125887527272154455070148422021365177:95:3 90932953983995845843440073721253586641148590548486:96:3 35367425869904079590479683083261989565105189876426:96:3 25904571029901522518017930847632155538622996594114:96:3 57552451456703208662829788385453254940117149689946:96:3 39862402590728090883096413022894487533480428865623:96:3 70396615251334656254897829057798645630217172625179:97:3 60262344491732311986180048659530068569651208007730:97:3 10940227440238925905913361601597275487855367621124:97:3 58604807842796412904499538222995143448103769481874:97:3 28203447942756678914196066505701872559146911239923:97:3 98920035768062424237484557554893785176005755359860:98:3 78841808332182151982342825841336457541573043053512:98:3 33385497008080494359946829593666908813285352122766:98:3 48830360820546107961593592514799741263482681371158:98:3 29982220546096617825692924107351538031448693667219:98:3 53951682287954942612669214426385844522163136230022:99:3 73055228801323525988589714595772546792768132985358:99:3 38325525755951922411472350888082246965615893880185:99:3 37168131007067465407230784475543081726299440134603:99:3 26788180293019543642274885517982715265919828397396:99:3 44839178383781686069630373416249752425743777698008:100:3 94120267809408402817874857261677704033794618270654:100:3 56127992171201313671476433844004075298864766612913:100:3 76690728331919188882622635368000380771681728841599:100:3 58321488428673000390655330467268103553901778827828:100:3 762271540118524357014029993853830171872790858219591:1:762271540118524357014029993853830171872790858219591 988517346478225273581191181272393072214883107372231:1:988517346478225273581191181272393072214883107372231 664198244314195019201543774334813379049175643142768:1:664198244314195019201543774334813379049175643142768 893903415913595798541165887189770761832775723065751:1:893903415913595798541165887189770761832775723065751 989694717821671217700751908969734946572471767991378:1:989694717821671217700751908969734946572471767991378 349580853561780303480194990920017770212273429931579:2:18697081418279707097655554 306195786555481159303336385897667599079384313371474:2:17498450975885870089925248 678670207293892927055763007367160866302084356473033:2:26051299531767948390569930 525333433208153265150691871273876431286576227008248:2:22920153428983700089691306 108284533833112803979297402559927921807192164013744:2:10405985481111954923564863 993928682384339980892623957537908964410970944849409:3:99797211793553625 120405675712728731643436636512952731846933944476901:3:49379761321784704 382067067026779610561262491144542193961953420038717:3:72562661135780859 293452759649943634091647499056734427140376297884693:3:66452715526356073 769648382739411429127013009432818655026116383454182:3:91642610890928768 164988108854777289179618595948084220617039479028157:4:3583960059504 856933032112063484229761183492847544889908038825764:4:5410491523376 581814408840872271481097556600291642410219180339834:4:4911296097407 575415616685931301132039381745606928823565940696893:4:4897736442285 726529670493968917095226522685837869168981168234524:4:5191744825819 562176559886544578582528827197363136766899830489691:5:14124547605 837133253192532388274678674214314667709604187338062:5:15295332370 182983576708584226145003392083892657675018772522016:5:11284502639 845014902260115939314630837244392765825019759506698:5:15324025768 313151488966647485688519080493393311906560640677157:5:12564664488 524218203333392023074520257091876281388994359544390:6:283956631 166477982333071650758018774433152074470982573286391:6:234544975 611095808412421566138027249408485997057293188870364:6:291307422 905671175499765789221913710203460466541286302860695:6:311048724 360068374463331767520101252381766134677382441146993:6:266725269 831951248581670137513209494824911020490613213608692:7:18806141 129171276981363154371353852988597061481626929878929:7:14412455 316391707759138470429947686188372886684917223420723:7:16380149 800035520198297605072213492379168680599933613902571:7:18701341 641550222352732527413067366620751843262238576105699:7:18120734 359270688243661337605719268066085733682348900442805:8:2086544 427956500654594497271127260223140054074412364102177:8:2132676 724849932980017668849252721801480578977616134868315:8:2277880 296644840286560811912465258789116498393337086150528:8:2037180 821391675445382270643362563965150289968027413955634:8:2313762 150912000195023252646398006937004899699728765685301:9:376195 248047588073521117744383512950161220843820699361572:9:397550 433354285251233917621566759364946386963235825276341:9:422976 764151736789263763674590817559241943694752904939010:9:450491 975794212516243299781171404236563427565538806702986:9:462896 756528401385344375219731775832493052912976187467562:10:122428 635843857551975575310264258821249183010826413378369:10:120319 176303348778089335973085467070191690433798362934908:10:105834 810434076595715956359446511490406739690603054834282:10:123274 337006026794075850314337281777608651392361979674216:10:112918 577927706691347258422888520735917848491306998857543:11:41182 494308233345743464441744575289923457077767302772993:11:40601 845867182887184762151143591159707260716088838726838:11:42633 843679009532354478600337559521796977571694396718157:11:42623 333012877629867633376911716529465070683455975786773:11:39169 795823702908326293768846155673099310724905386244827:12:17447 295660788939401740824159275858391113409196737996047:12:16065 429713263657180260202147118376481828575357441591886:12:16574 353768415242550258902886316611747351981068101733618:12:16307 126474413208007899837960154101382065313509191215999:12:14968 718211210295767975336354313373967547498696185717961:13:8166 187992236132983408965598768085450155670471600907144:13:7366 848797440294704838484596869956189492710440173180031:13:8271 919946192705554508216631602953285812622535678252399:13:8323 525103870851629059495621455333223907971398271561654:13:7971 883524604701831113061289621342652273029037460688789:14:4355 679650598137157046550647771676852206922682616350201:14:4274 204345135895639492305047381879390315991127598144632:14:3922 131579730047096704986037219166918482857989987801507:14:3801 258090221985769922306443849330315797932415704916557:14:3988 196322752643270555638737401492530941200663928314107:15:2253 771097311387152464608256269431450863180043062648293:15:2468 911902382040343157629108565144037754171656555559802:15:2496 964013220202414811490697192535604500547775804829939:15:2505 245789235931072160092938370504177481531506754563097:15:2287 895000870140594985250601517906075893597526728056283:16:1529 578412814758007759816704545310595230697547181852657:16:1488 113754783956733713836730987607313200825743913488413:16:1344 701876674479232078819819802810634204391486109908873:16:1506 720468862093308419118748471880203728212233294111334:16:1508 995929523000934017372041901984796708457932964577953:17:999 580164524740506709373993805970123133506548112930707:17:968 341139211500877298774689915376440381451083741614301:17:938 243112454863159437800730920812330372140905176822695:17:920 271808012207575866954431916120352855888949706398971:17:926 750869093824494935714477631304906487128911007470232:18:670 284508782137797496013069369259805848114960699981178:18:635 205675591917990214864340729042076950111532132387141:18:623 593436218431607037789728448271133936095928555926698:18:661 982804305430990909827706511536629918442383420129519:18:680 141611640817782727445828691958449723185937762421105:19:436 716117887972841476217136441689054430469812913265190:19:474 998672618761954446128242367013546681138164431550320:19:483 636868386986183209244639494867149515798693171038067:19:471 944333359139619531854974543730973238391330287442287:19:481 736189925101244748752090561460617283247366060101671:20:349 976760622975605075464611953836968129384880039712599:20:354 398114999070408405201625177623581203823049672118804:20:338 218138961086687302989448415557804733517347359932055:20:328 974316916937442742345880422964789674994694818839758:20:354 243125373319519765000262624337657040178261018842138:21:250 298088206466831264082854175368696897110584623428300:21:253 828645594571725854706799643966421162336555611690746:21:265 171559450099607049548407897759272774242910795366120:21:246 200136656610075530894555822484500182003806568804763:21:248 371437471006214996485780922211725953237358247811768:22:198 985813473751943005437519532447786748192091257028203:22:207 562040174436768189872541573647275502466267425553759:22:202 945881802480797119211924087921006961816712636810363:22:207 609852442108412709499043761141316707170003845922044:22:203 710174129881444688949568704450743777642323526762079:23:162 766322516776170407600849854114850597214520708947890:23:163 503043460577569453481346464224552269274684619419428:23:160 657218689575483318325078399706442239793153087825355:23:161 381965938678508231660677294506648004700672969779403:23:158 340872201862555902712922497015278334120956237959763:24:127 791718607278760038047232593963162146826419953604894:24:132 341591995833995459324127035237190113612593765053357:24:127 779129436170438673997594821207294357654738218335192:24:131 686649798899878166837980138328233838032460127163830:24:131 163305027623858384764375033250362051598502711944529:25:101 257742317176348865315362425678767555884472738905672:25:103 189074187670043557492309840780083236013529368776144:25:102 800540594949566656288410102221867572679222165600538:25:108 175654797337657129950534492791251681678299149994563:25:102 307577605758907347210456923506181531287597152158639:26:87 760447447911922330570375961322384298519429146621796:26:90 666751541266633924544774926385619311124335452603998:26:90 160758928609996008985429053435899476614983110580229:26:85 779772211912959843391792958863266628699628179954286:26:90 653203180850837029448029098966211091983203833755812:27:76 939192489973893793898122952983948247382505548800648:27:77 773732676654620889673590089884343727382872023616923:27:76 866192019822828671118894531033154529827568490069137:27:77 744373357864327731962226540910803562348678800517846:27:76 103457065865504567827733345785807773095635403218636:28:61 189959820530710509869104128440351194931770164050551:28:62 724522580907830520262213516201180886117122375129979:28:65 569692688675544194023714524012326566903827278099730:28:64 253614121090345022143664340406719129940323095248430:28:63 273742908521092442068342709443827562395631861129784:29:54 972104798198413841777924224101611868918629549211844:29:57 794393443676001916339965869446177628465710503514249:29:56 418781857858201581705046292851133253915605032682402:29:55 374615759635455465977620160539032776805217344464330:29:55 496151782346154921745328604324768689228503013927115:30:48 631127889631931756000383074340268493567994668046559:30:49 478615035040539293137488024084068891218651241195856:30:48 609028847401173873695610235338609941588536619861999:30:49 737759031167050383207331319696120634712456568045010:30:49 458151793821594282765716501721920722422883825774651:31:43 912264898197808878540310409984890941081933827621012:31:44 646634477204236672276882948636176331577325857793400:31:43 284241707132341216982012749462821229524379337095150:31:42 723467507202032461559838590857067219622459140703639:31:43 679165523083367139504683944551209586825730857255015:32:38 830504111897682587048969245700211116127740413331293:32:39 155926545689516932796411167218886294922296199431668:32:37 486501991598111300934202373064329791804447940899327:32:38 175345951238985632413167480662926928708606058203931:32:37 805581929725010398854030953406715855196356742126793:33:34 377925790772160651267656051996187606186669236391531:33:34 812908203869250704434628412195190347884356459255782:33:34 193192501578118571673912698967503663445719077613182:33:33 845792961004845191896297876956271085343153018660206:33:34 571159527099941122233704689132722078256725616970354:34:31 545511785613998386462216176075305891912438797102194:34:31 727710032284190639142687676716054406422506606440834:34:31 773538236504166853624090540698182556344012458744231:34:31 939954362631259397026946472582938506656074028310544:34:31 148431057818833804316550430069987794139959816604606:35:27 156059665771088046265214560236943525866805280799348:35:27 374843477560370911294241165197091426925891120346039:35:27 899961125475881015141752490025686330755821031724105:35:28 665788053671246100731867200032489321705312404561696:35:28 883725645503157289768347925828648856694877680933976:36:26 617821923589305404396312290503602146670743658185811:36:25 336473836702875061672225286031793986489023899722991:36:25 462854434068011858064953524705787736520528327476983:36:25 158723155873116974109149626289263174692186083316178:36:24 528596493736581717864646027438745112971319459521663:37:23 221004170816453613125176334996870317213341303401457:37:22 386745754209157368581644428670550944197800503288948:37:23 388284245344078051107331865174025006667412022765096:37:23 341371635134860529197007523002522379802923247480275:37:23 522342494617310428472043667886428587193481283910336:38:21 201276973123726430841113193383370665350546084879297:38:21 661765549100578526704074487251087351874283849323434:38:21 132402427551511421861561892742395428242718043708377:38:20 998629526438085458535315452822023687151061418265213:38:21 361734515086160527744282511354453024730629319873059:39:19 549798948836039519373193626503955902282983226045616:39:20 501402377533774185104113330662133277013793631796111:39:19 901971708451963846143736476257202457857131829013909:39:20 453137066621793242740541197159924235115501695348256:39:19 661446512314655767498819536959379178455887693726742:40:18 388962466562275143307865744732055615354536514001692:40:18 867622425375446306868108000358530213526455393067830:40:18 262002381326102079557224417959407596677355806853926:40:18 238220513668631508949179548593710696328001087421059:40:18 199803211826569943971440801000250364169452622386836:41:16 636703564551317674159184714465137621365885459060732:41:17 780472921068752161367591674212167237050968836349095:41:17 876140594230505636465361628421224794461216732351522:41:17 244115257519891703413724962573090550772998620135439:41:16 329775913180716808769720669606067189818622639032991:42:15 637690965449295195913633454375288074048867665585007:42:16 480901949540185408050211104704312339815307573221104:42:16 814553166213632084822873247711099505081315843892971:42:16 854276468753533947680287079968659047594525793147202:42:16 179081836888857768213491157414805123167888799257288:43:14 438959510375562653220263491580311849978059252956805:43:15 647734484070788622666930334030448425316170981137657:43:15 104368804435179918051644071751118222854530063215202:43:14 687387717948385126855097838422881961226050980422648:43:15 343777221899271945058262516342236290138988960472657:44:14 543104492407427166107783507128806870156653360736565:44:14 759722819295038851533794980059381386531936471168616:44:14 461077071288441988135870605379436234136034937688105:44:14 137975085046575261788613246146115993511777038810398:44:13 533662141146639772471110125860721036538139305520123:45:13 799692014017807637477144092524194239525957517638146:45:13 487678066513578410261202001932857948982015486888086:45:13 270704177154720636348317356382977640028423163127967:45:13 256809575584580784597228532556639808035850911795262:45:13 465449424736491521490028978659514082915870592504943:46:12 967525119817480004218115166184158219729322513287689:46:12 638192682545262749720995811263104731941469765644700:46:12 369403588370962979607390381657337633885088721377078:46:12 896801723959072016061661876862976893549851261490415:46:12 171175326803334289726297496357360027575046598579039:47:11 943437958406446855842854912479010204756893585458160:47:12 307763009197068008732343948273462058648159343698326:47:11 258525761397457012274304641482916658785535250076635:47:11 285911026738381667515091254844705900956339457664004:47:11 336377935330992412811661014224326416009159107330662:48:11 680081074175395263285291842531053583964653290860456:48:11 223124851722837320191021394383269286778682124679677:48:11 620447384238885667797508016534295959415918812972370:48:11 239723604524787021843734796031375383533808060201521:48:11 159678554371215282093089266167466687515146748772133:49:10 888300523454642199904929553100505683431805179358675:49:10 153748795162551821641589481749580518663561698308491:49:10 279421691356935107999246628335800375859467061487711:49:10 143520169674212645438562476436719785917515956700303:49:10 141639655525145844373310569434747850219844309069042:50:10 236443379615851801404493144054404102353975293070343:50:10 145657153429202543029884948839816703677907358902949:50:10 274372465782637845703332407206688108223232457689336:50:10 178744513079407305344759022431791612364529646272652:50:10 272962226974039112458187764879934503288677522994981:51:9 371128593015960974421868970729996253468204480239929:51:9 698295333095238252824612260446942977403326836100061:51:9 747039359689046653114410796399803572812308353426635:51:9 892518906210175004874913376647370917030375995048943:51:9 884430599116576053991843727165134133389874758637178:52:9 442785117371750892352125163179574740579318986613372:52:9 884506694474118864071676691950968748446573017000084:52:9 975520140424012473873587149993263581074499949183978:52:9 844357127884611759841468969654915239870874558291852:52:9 279167774482556997804541093273291531839772856973509:53:8 605787883456557041486731323448469034551082847767032:53:9 632418864492521206385957311752699957174342526761569:53:9 685338398058093537355191385739691690267324661247314:53:9 806434914153998702737313248463198956916479707199962:53:9 366146731859771105480683386020447757884798324499933:54:8 287290233110685581851634144094402356082651499719054:54:8 216746930105766912917591914662704453224960871790357:54:8 226776936507544064461572664160659023160965619733478:54:8 144619881036779010014749750145892747296087957448386:54:8 632552512733282228740810115480390410884898866981685:55:8 624001202621292064014006825226016270912652935537009:55:8 846494323259894721369056173487121524191462180889568:55:8 739807790170579411968210190783351021505968298176538:55:8 835186893518577174777867815072172737123931357241783:55:8 714784199381074648805890575419144849111635130632130:56:8 834716442422052526296182511612905047132060075908530:56:8 948085276853508028191811269069299358435454964903595:56:8 549585231527275740485327554530004491200996659353061:56:8 125687516149986277859150064878988165017569888202926:56:7 215053536563011657711796480498418037651569941839436:57:7 362891247217236320525764015425260553762801360406111:57:7 447519807261519833429147400168305928709687822419939:57:7 733135037499843308710914992487914391541356498357998:57:7 451933163629405603021708116606023157058421088065852:57:7 405405483017433432790361471909027658893035992863467:58:7 185039816209439265311118826828085186401701258928003:58:7 472354406679968462994770426484219270169130217319234:58:7 806295094874457426190011128141840937173794389587184:58:7 827921677866654775946556236941187552383113803659781:58:7 644156485476887612738481382331229030177507416443122:59:7 807985305138973156130815538414606835018231471489820:59:7 708901922600600564603096438134929935038576693164703:59:7 856361854680101834246850654057360876711773719351351:59:7 817846097045252725530591767916990893901440890205498:59:7 545920686026704112190387047713926762489145534787426:60:7 372356541365256716345305967220771962675220635227570:60:6 766501325198839819665461514404562969724530011304340:60:7 866082048047923264147546284414694281814095890785017:60:7 190411237008589316437781159408815499709243824474198:60:6 420910606631153051962849917619022280184618494181844:61:6 413474763475216483716909017269521963028689345831664:61:6 386711976852293311927336572958204189876936600169073:61:6 680492513732099855475295885911051685751064735975832:61:6 673366300821829562368858128732960898407541041347768:61:6 534833753764802034421210023282061181324945381714253:62:6 516017323903221487744366324778520495307946357848929:62:6 466066585097878562035131868637755728270890965718564:62:6 925403931239678464500855293386685529897189497240769:62:6 911973617625132038459382227555124867595283030142532:62:6 636120039484883469764189981349543688307313406821121:63:6 501770338468033859105409336723412728068366999144053:63:6 690403758389052122023034996950726873749065806567724:63:6 412210429280805604971535849148161079881358013391534:63:6 704313238901705635434976100642651717967833740245064:63:6 851460977150618672597101676215418368775975975640690:64:6 761201861987433452265747518388142889245961838937638:64:6 692197884963268058257084481720836120367835286531257:64:6 442218887344584350559919662608586316290250576237470:64:6 863947186118851352111713596785257666286967956602004:64:6 471192815033084359547268612073327701364610252969131:65:6 678725538737247655755509057136110423666560440185313:65:6 750351288251264644068503911424857545096835856393537:65:6 442757023764272490722072233943043921839169269725836:65:6 477191269793917815402615049852376156609754196756953:65:6 531364785871808033112635887628918058034519348103251:66:5 621395453079680697910058020424173556049136318191209:66:5 693769149510491155134759304120811739848902184245495:66:5 983677761898908295830988799169059914171930006132471:66:5 352008552561800660206211026991196751624891280147623:66:5 211678359498979732573219010467560592136779625921252:67:5 330797957580419448485594304714069745140765719273200:67:5 946471963420363029328382780907269983977547296657737:67:5 515734063987296228883560901645361344621298554730138:67:5 677567239893921435875744037113596812590612670650091:67:5 658879737369956835211165753162673595750712129963100:68:5 459157440273222731690897127236852433596260314854942:68:5 626596612651832211449294355052788622082156265178323:68:5 915958512057068476329152179254273874566614575436641:68:5 234697304404885893461850895944107583661687219921619:68:5 756724421245165967483947200590851795156998509082559:69:5 568293123369442916038697980091391632200644349007193:69:5 928668880101624561056597898240286554808800567627673:69:5 652859913406533092245799872715891764876429113124947:69:5 641712338442813930974104216965154409336435440111524:69:5 339657290647963637581817761068042299300903857909471:70:5 613457575732948067893586659833328792504508914810527:70:5 300620041141231026503020062912958534296318461506590:70:5 698657613232838138973153972547481221267358471762109:70:5 809333184718450200609618327933804578176741041224759:70:5 165732155874713508163958458548242244070323708084866:71:5 700104909764862599806106584063072191300640886547561:71:5 484889435690421998677212109300995711646327399866886:71:5 519639089109905839241301870182692584708701824966617:71:5 395600763472939477384625939442954981452860698376409:71:5 306250302996940564896029334115126859331733659128876:72:5 414025893934209386764061120396043693798558609137152:72:5 213412505958556941167057569908839973229679093988137:72:5 114994288934360676964487678045045463926689126451722:72:4 775945729279361938279070160262981339945167659901646:72:5 890730601909445908045229615157286233032127882953784:73:4 884143222369389905608075682167391470281932454035673:73:4 928464087955335688786510934410908331730022325790453:73:4 461576015764706371404082205816314732076741265740595:73:4 241075645399793104005513386321768807913610208629974:73:4 433682716284979189406186279252860972642126989732082:74:4 806502682461138158200042288944526942560349151498089:74:4 474769414627376831638784026342643384174285270905357:74:4 133282533552262599459845018957692773922984634230983:74:4 535650015247755996591439989845560314297703473681435:74:4 668923386138999239146302108505164367451884212788851:75:4 807950382925871017056431079367682283644732477566865:75:4 336545626156923356315902064235345920949978049118861:75:4 741051744122472707721781295547262838479764277528412:75:4 171191877189247689744664881869059634858387146353396:75:4 671776926110380676239345597627829898509618252922307:76:4 224866199691674878677689537105003026139295397141847:76:4 922621522596436517105240882515284643567863602019877:76:4 154717841979734289082980136214623340834991843998565:76:4 355887378703763078109418069257727082327653359280175:76:4 664160940235441053216834147033205646489049082102231:77:4 294573801760049265631713463691609793940961776144944:77:4 558448126996959356540981115012492745994965094286753:77:4 470791662300074195911127236844744055590909348053442:77:4 616766570657717221358512489276027146901145348315211:77:4 326133572864651767996513209164208672629140930116580:78:4 303215164633355890688465034260915531576498504295695:78:4 358725943998041725067334408797137528685187477794054:78:4 505503796663998980627068330059985202826337892273662:78:4 802995702872172011124219313770701201794261433717116:78:4 668329813095244654174906908633073747785412407335919:79:4 601553691083865547742411336594949971039078792514109:79:4 802195554465313049839106942871678895844166389918598:79:4 855717002505357702797397969034095564955848492259179:79:4 348242493185717602618903673509905295370823615142392:79:4 623096493969773915798407086948738317997667280360419:80:4 183835013937887049657116501463556774845769126484110:80:4 339523267814848594944165815866606718198391563694504:80:4 703319202034764980075626029419862212653590333558684:80:4 481235404896208295293196683880485404189609832444946:80:4 124783590866786063184904209987298564122350229855565:81:4 654323005328161098884953644138307441999242789824089:81:4 231536360599532225217999162056609595955396518270165:81:4 900494179897569384952631280973872682047512537548362:81:4 468193371862146611101828366205208043870294808391677:81:4 571484048371443903541924021942355727026320949633246:82:4 515730416007835121705860069365448656554587447207312:82:4 713127681762728825299527667567833193428578507774726:82:4 139057201071487035901950507942163630889882299484928:82:4 648836061217047193176692970286217593941640904156453:82:4 270487401145811640666418833900550535005366594142565:83:4 743900631917973324897198864788222334971451860834340:83:4 568243834667903319566813118766254404361082316241774:83:4 291582179538306466444816476236127856526893396617540:83:4 102012790375070071539687396209203835144260208551268:83:4 145773080919011370244775462081050383147579351658440:84:3 608922282079666885007596083788510190860611389271017:84:4 688578623395156804547364245623981545393118217629039:84:4 270024631176332608870974296807743879117634993776899:84:3 238489166459045137001673155176569679856852176358834:84:3 731295658326542999455197114281507925806284340208079:85:3 595198134827262820189946413477639353392032784359533:85:3 227445683234928194792954469925914664420807773828864:85:3 440810326403297368587685102677449874456976062368378:85:3 613181012494075589162080630810904320854562395319927:85:3 898459663958922777141958270921141970443356351838521:86:3 565700925657012736562896581440565837251076325869902:86:3 180733083897622134204128810700051110924830449569212:86:3 908611730210831418076529188208216102438842932575561:86:3 809350097489603848987002762672582490612968940102510:86:3 792895452814870347829734655798401686288366255668833:87:3 327001120712152580629507835994172274784325532521339:87:3 545189545155517249255235634615308520405145566605845:87:3 924521169717578168495846289278700367641242223761235:87:3 142225570878810797524629061698967115574088170954061:87:3 494352002784782117678451882554919262046285403008915:88:3 309405295456671935958387887348083103361788285830407:88:3 452480849815441796743240612249997678273375515773841:88:3 566962545654611211816186462028533701809325225092180:88:3 298490503229726731803564114255398715205909253582688:88:3 929998390432325990840792064323414912877123871289422:89:3 163932393146167081775134331661256607282623999117533:89:3 642825438380893721548233424742036193654203398178682:89:3 689725559860292285135296220247538843966963964869191:89:3 421851841541911491751251985598831279242459535796120:89:3 395162706423681090276620843919623696261527002705567:90:3 199003791017150944043207940275744777354489632376970:90:3 106181852337990259429289260247558430895762081945537:90:3 868911558062533504128770535127002668145013458376358:90:3 626484078159913441270486897525162834415736341982164:90:3 726998958115249287801737413006482108143045092885068:91:3 999699259795801151297290845011647270200595039190851:91:3 964543979516701431720972059343088453426800905791706:91:3 860086430536586653994281092879237947154385452242528:91:3 104894096783030841831415844404433514800471346826069:91:3 965199029945577197240587571042528848575053085506064:92:3 896198701566881073781816014023640648262521571485133:92:3 974858971493401258719938484654501972708241434885740:92:3 232792044711951920941283435937378954280807230062812:92:3 140028091194562534835042619013290708623819822599983:92:3 497387114804055613684423077360063090262354510373900:93:3 860228727879168882848884266669341455071625713241820:93:3 693276772206697675056529495380775402956915852057876:93:3 374587153015953303521246655363682011522108521396422:93:3 509490586194615503118108383227687915329319895485391:93:3 402712423565145591813264922006975670729699660121379:94:3 733422237641608669762882687330226694074123094215115:94:3 178174711648132297139407564168737129252629896581223:94:3 309206602570466594197705792164820740251885437329566:94:3 967394306755570978415618687865530554385631379266793:94:3 914180471078716162388183951915369628320892182281138:95:3 719646505298591684195765096989944444779520540217134:95:3 757662546272256169292874517878974550896648027547924:95:3 752805497459167306039883180389391128331982152005125:95:3 845506500851921723876058038525725705842419400660439:95:3 521445175509431070979187737968025534975693129612258:96:3 235221848122909148028256197281407636160288549276356:96:3 668726723636592223452315236525440963013498758486465:96:3 257687987232606124016374542565245945884438812458440:96:3 191087258693778111127523704097494801325933119507693:96:3 607564038031167696831796341008587717404297204312702:97:3 932544840001606898702366821193203894469686733852671:97:3 233530473573005360688041811711785147129008732325097:97:3 668689615009454105103492692457838328934063038847931:97:3 603599798584218839203224012895496046948021601403224:97:3 993121206659689241754103141460090365091739479784930:98:3 500712256592415401858074864417865797428925493199598:98:3 178955127025500021783982314368147694844478526239187:98:3 394005479281519140971107483341498534312253795996927:98:3 244948816649346867584942404968638319362500043485933:98:3 500379317551211255544115148238865967294735645038680:99:3 171978966106371979558410581629423907774276862450097:99:3 234495539831174650462922751490207509428168220140317:99:3 617360930491627784384573693736015369042820487744898:99:3 563117952559767197971600389502691139713171901989149:99:3 384917831892673361746302390315349864784796978094894:100:3 627360651066339700886376797863231553509147448801777:100:3 258598680454810335824329386321040880465764492605982:100:3 517218870667727342252576165232165850669107214927483:100:3 759238455879096005891939126067180594944450931806516:100:3 4878460266596614172791758218205229341251754028873295:1:4878460266596614172791758218205229341251754028873295 8636589321748074643740329776921305264179724119603674:1:8636589321748074643740329776921305264179724119603674 1788614205489269378127577098756594088760769492469848:1:1788614205489269378127577098756594088760769492469848 1438264668492631546199165151201988140030468681240120:1:1438264668492631546199165151201988140030468681240120 3097757548560705196520157784720567595584123147968098:1:3097757548560705196520157784720567595584123147968098 5260275217767352186944036060665263054070747824451809:2:72527754809916404766783853 3454070373360989127327336912720187937048101092404577:2:58771339727464007567731735 4557278334008021656252098641083320824120182360027035:2:67507616859196130685714835 7088460982115412797855006229594825057704565871826520:2:84192998415042879371004311 1989722446987952071806025392417524840491702872257806:2:44606305013842517012050315 8019294684685794018208034004604096451552467302810674:3:200160659946398955 6174604129018790010821127969703526159448681451772388:3:183457881019750008 9052837895188428697322665839289797886802042829264613:3:208414652178584120 4600104184582702448176324303306982654322420790684857:3:166311605452452776 5728744495603287111999371276145456012174479497652502:3:178931368835027950 2332356968769629865157171610507700093125698130255345:4:6949423124485 1164916001992198385579839581796308780753718774253813:4:5842162769506 8753648521964185636241476001083616008339479834507513:4:9672690153572 3029360643195718068040096286245296581278687843485038:4:7418869720836 4743886381757071323602270755663726236683698828611827:4:8299149151057 6331532564129670233583246691182739713864373445061386:5:22924600124 6534483218959906229630489661505181447933551574838239:5:23069716065 3552392331178081940466631701447664680895190860810341:5:20422278047 7675486288348397784153259758918200075310927073067507:5:23824356551 6409266577088167059604260257689395854843724570256834:5:22980616063 1473081196168405889487501637832681892173560495720289:6:337316651 1068855576089850961699058854310579015091061439033098:6:319756835 7901951343103748409574916854012924913876527402268499:6:446295380 1032911352990811106478782980253750334375802795162700:6:317939027 8956795132918664044124638095213373563392030365648464:6:455713723 4454989114610518790030422201234934338819666638019794:7:23900482 8419077322619916477502636528060289810938295057597003:7:26175496 1934845876141014096119290514189594547003328126856942:7:21216012 6345310008095603078211590493839099520047189306589951:7:25139139 4747588093263923490967731518986004903961101927602051:7:24118666 1608745054130723567207840152768709587526597876305866:8:2516580 9765936138531588540184736205790307252481766196654598:8:3152929 8364306956543725563091940119735978245875610613153252:8:3092457 6938879738419616120770664814769323843642970846110980:8:3021072 5766665917605592477299314426517238723333383834284835:8:2951994 9603224681951068866522613416927909289716035641772589:9:596793 4238437053161508537268796629770144760407016494134102:9:544949 3935392986086308424140094250184520465396904460831697:9:540476 6447680131698296814292317488561942860118188392724764:9:570953 1762887899153068492746638705093067439166935377230158:9:494339 6231181954682853783020867487194122010195189117452375:10:151167 4217398740304949846647488752882772373571539639989165:10:145379 2748482259082586934327853709266267380692789048072718:10:139286 5505696840858944815753913552202127866229329388799840:10:149307 1049983160230178020562306785982074305702282646376432:10:126508 1401131160194281486858221264925072984330745904507191:11:44635 7596138388390021938569217910159365264811496937013821:11:52049 3461496805682755139299042711286188456489294636528086:11:48460 1212919843168301937465904392680632483620229015862292:11:44053 4068415778044015874287264521836287328922998664300784:11:49177 4092822207896300206647279380733291826294174865950043:12:19998 6157948775822432449023309561570561533386760304620575:12:20691 1409004846680128746946919097411751626912199741793177:12:18298 1030180386743960887678960620372775306486050121030017:12:17826 1064105358850369710902643663058835125617838836945669:12:17875 5785902383856330039138178202799034693678895130437273:13:9587 7901777785889816007505295372536281534810296767560265:13:9820 4763232325113169860113843101119356151374704093523874:13:9445 8390998767133590426047869625577206168725959514316881:13:9865 5525436253936808632411635356616033748163638492053457:13:9553 7135691194857820387793663104674380086135971973060578:14:5056 1292116724864836461932585089171354809246880255840754:14:4475 2141940940208490346171352412842696913565171397793382:14:4639 3294102867120424857256612199791352332047699866655832:14:4784 9571766008740758770014590724936062056031790706935046:14:5163 8384441932362286393025173607383585344768461024291658:15:2894 9752656726832345613010540106456063890042723478082049:15:2923 2037940467655904175343321715487748027379015268031501:15:2633 7809214381169970052861171910937333963068205671338145:15:2880 8861058887802658826267159930107022171764300279251893:15:2905 2984529465816919278879922608970803130126957315362351:16:1648 6659192213971673838366312116168296262670241139543823:16:1733 7516930742519112136254750501375025261833760029638343:16:1746 6557964764416677055319137455299553458437162781544830:16:1732 1464768487610448081813854194233134921800055193057358:16:1577 6838322732097662718490789756178521331602122518070333:17:1119 1746421557704263561115815831978969189422656107346015:17:1033 3243001657686253316915806318918319816648246022236270:17:1071 4887830386339747491713124583216570823948619562835791:17:1097 3423131144516020633849218394480837665372063170518937:17:1075 3451845779781426037437647207109496508168157106098323:18:729 2816544952987111583018173109052793273674325564635892:18:721 7634440817535158458276966855988167139332110987902130:18:762 3442260931533591479025484169381746459315013254976100:18:729 7606111138838911576428144625666682056828423152664119:18:762 2703859112389936245412935294025133407762145186421394:19:509 9228113165085314001244806749331105138863854643144336:19:543 4719726237090484761890729144912229405656026739677130:19:524 1133409681144608248445009252302703557004533743147036:19:486 4233912219385164823546992023741833609527582629959556:19:521 3291775604475725958755121779907170339295101367044728:20:376 3944111351849813311881501240073026441394324852975470:20:380 3795557427236315095846069600550978041782359295275070:20:379 4724861704181580396419364231442442269925750827258725:20:383 4973480904020413425189924197550599356404033885017194:20:384 6814702831952314666557625219103441121100118689228957:21:293 4187661172951526423881793431725379790271985697375193:21:287 4200737557129542562215150472408800000690531044017018:21:287 7823745563731651069479335242329297409000759755418899:21:295 7347971750023155573559773328017569134610051661009610:21:294 5141428747110398467739601793015302069323067727182086:22:224 2153731387573894121146253396931021758814850118185032:22:215 2776878215600691873322589100705599963814601244227956:22:217 7176612830835509764578719369788370008784685876751763:22:227 9786949005694161945207596151037236207010928571727598:22:230 3040652527638463795721423895809804008497502570363877:23:173 5557476374241901724771077056994806002710716008288732:23:177 5583938033308642848408773196426600794017137080002542:23:177 1056131860697603019542379208443560569808474712699635:23:165 3479485653129758087494332426624262351690578272959003:23:174 8784286854007051956303948673235607441994556853301776:24:145 5025006412119269218255321899876361424730449600095971:24:142 3517078174706541998199728449043646461022586395071433:24:140 4883254350867332426178117033126026294539395494104649:24:142 3493915637071195722530865961236124418431053387008236:24:140 6191052977812261363415128994558866984963099769480324:25:117 9437105580842586736710687358944873767382427061638751:25:119 8204345253404690756556011299484309791684723714068892:25:119 5973450581211149205262889183880172347042873553233379:25:117 8657086263997765513030740074082037049419142276331894:25:119 9713389308997387471500983604579105169032842640702784:26:99 8645432134725462006590036589524824079841592980448492:26:99 5769837584980137588193357892993486219992221375312272:26:97 5826376522442313574836292751982233206651035847093464:26:97 4644527942457501559590067994787487874306982255292745:26:97 6770601689318947450816875063085471085953311017647771:27:83 6541351645426479160200638441979086264579385732800168:27:83 7420821406668380912160580304131783630805023777953029:27:83 2146845158583326666031262362551360600488179163223826:27:79 7085918471079311877622842311091202202658584301401745:27:83 6969726438027145067535347156688623082753085530358628:28:71 5081979610302510441447761851518817338663070317877543:28:70 6113193745285778075848675175410593455945898012262425:28:70 6030764544266125349475818396658136522247191093780840:28:70 4245098520652298989985618742736482715573171361944470:28:69 8092406788140757854380049548291046865932945829707421:29:61 6338576875302391136749028900381473526447722444328895:29:61 1561182759090100860532995117874667078418627426668006:29:58 2325468194247572708612740123386420959043622053743243:29:59 3675686466248309118862028018556655210713320609384678:29:59 3222806296089687593298517333335556994809633993109634:30:52 5513693301764592214476474565109720011850501688850029:30:53 6908186880422172238475693995291574902682088509150680:30:53 4633851243138470264207820691706450533000728449206334:30:52 3022951260552710771040673064786636077035675852335756:30:52 2824886985812298947682019376014683873659617260941734:31:45 4341920260529170484991296017259555231577167577435386:31:46 9524364613247799365658973568700996740194477968469872:31:47 5843568659075894973612392818151630785502976436274405:31:46 1614346710943084850659549537077506513682357563331590:31:44 7529529804693808386549424905782355489408327238038743:32:41 9191143673935970846261662379364239100462983130142696:32:42 4470160135726984232624838673330798818843517295318661:32:41 4694602639269208851623961832021153149703474297175192:32:41 8036463390922054098959682008491482082003436641427664:32:41 5212218828949643790724916983861670228946629827800956:33:36 2985298795425541009399359918340713193328478753662531:33:36 7735858369328210182650395581273323477509785623559302:33:37 1558491978203865186115294456413420947255332481624313:33:35 3666725433371337244075377741653298205212191888878982:33:36 7788194813820574447385776221831891860621506928515554:34:33 2947629564417180515771795247730360342671240762390739:34:32 1124873332148621604958412383594256011618169421627698:34:31 7860390675264988475008016530574792677460955701385690:34:33 9298256131743613238607668834468921771725151821497867:34:33 4004300681358481630085376087383740819246826917421848:35:29 1431216108784299507765782068872078736458310143212419:35:28 9263316107916864435344748646617425735904620008162350:35:30 7686724331586801285984480217657509108006290597169096:35:30 7265788140630118860241730261181370376885082190122974:35:30 7847134193097640285903211169143008597924806580678671:36:27 5691075925889300277899337920147103265512838061333759:36:27 2620711457794238961382100499626020719036128341649358:36:26 6606364429863068281601723124561909340594482681971199:36:27 7634755436099958728336347130440967420544388592202604:36:27 4312189603830029164425930978117242411330657083953050:37:24 4982883270424381465340073962791289102209976286134318:37:24 1712957193020818778805572852753621656034768405302698:37:24 5877826360603942407617118041971517670104901346859306:37:25 9906234661114524278626018161177105837750094182243448:37:25 4072166519982625547688958749893564312134299272505670:38:22 2139693117588218030138370660810247627363656096976238:38:22 7069316284223918251467283420716618680495319042901736:38:23 9697896054978669131452717115921726355876018883852358:38:23 6926564529657289010280833230775276227817180434774720:38:23 4821225477781436883117634951482382185943034363818529:39:21 7199640577145929859512158490201627761235430656404283:39:21 2910342570315087468906833702367636678552083556403386:39:20 2951996872634943359421600956268689981674956709558619:39:20 8644054953464220324353461392083148157055813672760464:39:21 4516645302089399639632749630926147160363594938738317:40:19 4189115236124828336517030812332207408894071924789800:40:19 6447790547979520507087222925847691702433743861861484:40:19 9478461582973474027106369114993112101621587158246347:40:19 9315094845427456788133752137482286980082644106106239:40:19 7782689854692640042207967933976193534221666620589387:41:18 8089548484476300497440018324434635926168748866324303:41:18 6849585678034777705792630800764719398134614648924136:41:18 8209822866256744959279621700467989543635963398224752:41:18 6892453037282225454971441744872334129886431236673925:41:18 9117985168037420865160732335010978528211094299406988:42:17 5790335639746674610084643169986087960890880877070756:42:17 7691015188675696681169249534179386989941529573567671:42:17 1726553208233425999968385630806637430038707413922275:42:16 6886773139757713057886536743672074387973882268832569:42:17 8788569608769709681499572068003839735492364834977185:43:16 5477651926800935622969490137727166856793262038344911:43:15 1453773126595076520959017769966044349364862061828866:43:15 7018247934213931571096004637186250247954770661295764:43:16 7405380758024086154514451701997644957926642791635599:43:16 3227013618501406897568469903758905511395844969204096:44:14 5404719665078765943696559139726384775729117416277971:44:14 8507110337267627370759480007014964686952045032826169:44:15 9308662031110552517206706763241463552769643869604450:44:15 4880220123701500973872982560944066288247258035268131:44:14 6069872688639695871255550878971049757253726522580228:45:14 1949371899305485274513841169778230417092902243225884:45:13 7497611484386308252593804979802612147824696943075812:45:14 8150244935176147669523355955990485044439836287718414:45:14 5403416335296093205421272009580661037315746253459993:45:14 5785022753245617615642397053836604446192034932223047:46:13 2535227572445685321889984284212895851635840708150967:46:13 2685220616326709718261112745182380806862925803605192:46:13 7159536439436186060452042355918151227738589616858370:46:13 5200080259174420991341942084120472389866923583463017:46:13 5203437006398515122310827724289313777916450928606344:47:12 5780309263784654671841845152926846358582334431419148:47:12 8218333280161802651701244224828908914755580850224226:47:12 8858217488662904483051233195545140619646472518632269:47:12 8438928307973071125416990390811118403624640743294525:47:12 5128862035030512785271213094870725583677418669973389:48:11 3372219698378890959467205026683420640823064409845608:48:11 1932809600332335550980241074581139316167786433672528:48:11 5871334282960042265769794739771396152153051070729603:48:11 7376696599230090299292716021647738051635813139896853:48:12 8904844903003115872681116779172397830279475716259871:49:11 4156063914156312000705002908696750219934676164458364:49:11 1685107052994936926796864664142278359125336999908383:49:11 6646127882513217938163181789356285586668738976157564:49:11 7933371843002185028661278718243082012717180058422243:49:11 1525101273469763850936041411378757695450960564682113:50:10 8310736890287746197485536320972548041337769061386562:50:10 2953619619015945064813488780059631869005099452457578:50:10 8356566883476117781854473925784382043048767787376450:50:10 5175625343973223676443544610633448365465733978921668:50:10 9213894824776120987684033274657229143365511493998499:51:10 6555788509581777204297731721829001244911056530958197:51:10 5712809706933279779610595102749715345908350003533262:51:10 1278488194995904676445012250924299853963305079535487:51:10 6518735643412380868808159935020134832599252797621952:51:10 7535139428844338488081383251585982355303766033938025:52:9 7061057082000397580281210035092969411552616375303836:52:9 7160079220811649139487795370864174228726191046677014:52:9 1941659428915822955491460055673189977886270975911491:52:9 9958882934252331516483854150943138460615108352583773:52:9 1632212390784714722684655080553432351834355533998278:53:9 7568608066450898284823630520535666053501530439537152:53:9 9260916341532376502194234779451695713977262828919665:53:9 6818246435116926215852236558777018974092772691502608:53:9 6715692423968745926585431818523368728013484002056030:53:9 4638576392299888040808933075278869705431503900781814:54:9 2416048350445922716785794489800235027366584265562981:54:8 5117017896616636339196789461292694665160249788089892:54:9 3362399757206187848880625981593217003155605240286287:54:8 2515264434951827524816045185259816203380983879611621:54:8 6014087921966751996674316557958832203000693296778131:55:8 7385326856993720679305864544601194852960354412727000:55:8 6384653127629622387217988353121653942570918684833853:55:8 6844674561055997307059518577556463033322138149927392:55:8 3498063928744664646836949482472698425066204553542394:55:8 8889345583528370080665487544941402105789167635322625:56:8 3413822715036022090975964778562687272996058815145865:56:8 5079042059209326036935690770758945476468859588859351:56:8 3217863610798751207771573109048817066765480835997940:56:8 2713304748367783498469861687183910244959959380460925:56:8 1291353437602116815006599148524734853126036244395916:57:7 7967676922375583733908509377346195241520058405091969:57:8 5750407587378566153749594182908072357161214268870672:57:8 6097312747090857774447679352166864896263041708525861:57:8 1399471217213126261020471807147945891219813867331252:57:7 9156790200200505748386403423151920378014861776672303:58:7 4127099482707522831854093723542861436682120309957025:58:7 7721721149520889342817076161502225665996641241057326:58:7 2146613737041469460931299924619069339459053735657215:58:7 8767734285121938277148034276949269497737208139115285:58:7 4335754744989651828436916492466194388092822018344009:59:7 7564301585364949833015204895543968448090327990986899:59:7 2582848142134300096502907303638484284611546763744230:59:7 3903732527791936000820178751106621111068374704372207:59:7 1192011417835822802543223767312505243698344084315651:59:7 4797455787167142198730114685201760403126095823930448:60:7 8339540736539669136651860855870986776014681741720738:60:7 2276285455415693637313711076520424772589052405488097:60:7 6143941983284229321008871918927441086619248000540333:60:7 5003215007873883984351264155437146726594460411039262:60:7 8793927813156578134466320617599810562481476006531998:61:7 9891556816117107820708645162910862134485754229441063:61:7 9013940676788564249544083833705898795331382183313869:61:7 1523040409954226688965253613704899303858287581008429:61:6 8995501700188776475290546602014506634028117981274249:61:7 5712214230344834421629279928468959570198756851005113:62:6 9184779441288775422696624304158046037925141306557840:62:6 3124009255806531058442873341048575323727796950963411:62:6 2801689452977236224483054971201960461030435993148615:62:6 3718569302781670189927932306156514624869354684432632:62:6 1559306759471945089408320436830925165636321272484668:63:6 8259714869772183018461603276894745207115534022806269:63:6 6046623779341433037716982870401554731958545138434678:63:6 2145519592074420752353220334931156339206082727182953:63:6 5090522689248277296325894034296464532956371382980723:63:6 2661159397963934041887016586705989941352276749736233:64:6 2481203825785036861936862740123586948713677760846986:64:6 9385735664516685660929582124237392278656371490808562:64:6 2521770821004521689239227197341411975179589210580964:64:6 5228172448564101119563145037381736969803980666168081:64:6 6505993352096154356614674728106186552921266429964636:65:6 3404106594710569667121228200703376419389034522586272:65:6 8886114222382630209182899811681993256460891315916516:65:6 1886481937689155729916100816005030776478498530239300:65:6 5408717474809889021346790109968467575920825117388671:65:6 3400458582226034301769161439504066102834627208798978:66:6 7366450718847975118916425962228121651695724325800073:66:6 2133001052543048019838913087356803920962805046595192:66:5 6222968851249189407730162403373160971479065329026347:66:6 9381348332343318380609660493041376803747029030998823:66:6 5862883785128632908273663342937394708169763024255139:67:5 2367758440307383256286451192560751129960751116003312:67:5 4566154194375688056127474707544956518531632155499444:67:5 8137780248079556592768569140048088227155610156749605:67:5 2887102786641478533335347133621348431529282579014823:67:5 3815806413141409910181889365290485401885100736667317:68:5 4556620802818329189553715767437229260478129076909066:68:5 2079894420899083003099787919131233801460935659305944:68:5 8543024400038145821764916701167043576676396498574999:68:5 1154280205356644465394714753250478124945632778352988:68:5 7625447346148686718313139542518000955935520701096631:69:5 5542400032644931288807312735429573954303610593701719:69:5 7743747291049107007421185108790674554074159581445579:69:5 9224877657507508336380239715619166450613773740004682:69:5 7519456947065604590454316716555407703063240995880676:69:5 6237442071990574788190289700109897235355136978493614:70:5 3849659538990403812671778838343883174444529642445657:70:5 1803053971515756384731807668938318779593485335759437:70:5 3473590740180013131310127042384724886836333095287574:70:5 2170582047156471429503715284186465573100909078914244:70:5 9433013989652973391870032014213008302600714452075587:71:5 3784208097450921326029421453457769074978022950968885:71:5 3385221971142219094814031772086235489384398529131013:71:5 6316923114074644086344323412495837266785703275371875:71:5 9589681559556268511167242017183685384563221010471543:71:5 4439527383494265740828433036153034756355767215861209:72:5 3594706642364992795421509045025344284331031808900854:72:5 2530108885102282270641105981168530519721509054555400:72:5 3968348391268864936845493774057060190554071179950877:72:5 7793973205720964012544483513115457672325010146264346:72:5 8711237069768517068605322895954514797803446815658927:73:5 4966489631582297432611528456741972466953676447291205:73:5 5607155814223429017199889126355270688627536881162992:73:5 5086276627054817423786005329902104349001779942523741:73:5 7180287405085944442376812794944797838194780215805206:73:5 7116232567865961004459525135044976018238406844695277:74:5 9614220763394612474613377367732722433514986965570707:74:5 7907169411955202956207169589583088309363122775088043:74:5 4663789263472587947990280070720370660432568548231881:74:4 4170860834685430880757106179144620960135482466619224:74:4 2728725567446923366621048183684740807474077120623829:75:4 2055897084304892433510318254554426210124361345951277:75:4 5056318086691333565719399450441523885420595073786668:75:4 5347168780598147138054080644663480254210460274393221:75:4 4860368584128147713580736788652598345755558350519698:75:4 9577271240356853175784469746935273313137202472783393:76:4 9903708221534743157591819326152530425881201468490364:76:4 3135283556562284878114821417161528545934008872912954:76:4 2640370286021730257864900737745556814616211249461023:76:4 7519644401354417311993801474918179126582234156748612:76:4 6600338664599732247814070999145465003916769321084281:77:4 4802258191729041679466801121514864528309568901230562:77:4 9056877855082918935294101924345600057766591566848606:77:4 9008681378528336341697416564601717618828908867105362:77:4 3916707355889514807549872575441970766819982876205968:77:4 9882270412211955994399157411823930024566949537526925:78:4 5673927817892059103411844237959006928882313940272084:78:4 6802775239878052330615777693163104264364652402408278:78:4 7940153315807666662160936809368861621152769796903368:78:4 9587401406447142307535782583745568262888451924726009:78:4 5405913439402966759651686368961664238562491404488095:79:4 8936649847473424025404126450121527017404035894037781:79:4 7538416883489497698629718768593420312033338739320027:79:4 8157116931163907240640701845634060142263014115897715:79:4 9923200012719907662692749827805591482448924273923191:79:4 5643745208073418423423310705754984045859301721010376:80:4 6713881892850428105576417107513791711447815503542769:80:4 6017654336647483331719559052859199368953933253381474:80:4 7494321310802496671642165379026241110784666602496990:80:4 5064117937304640456564914964180560316004566448616244:80:4 8155689834906725738644544115183221006872434227545749:81:4 5645241919529736520356971037711299494773831269573470:81:4 7743006892406663174146548432828505160249508850380140:81:4 3164074362307885157469620257486797143075749941412613:81:4 4176493992667084505308246553927760399727773883790270:81:4 5970996114927017820839192953522304118876454402489102:82:4 5498329863037799903458776379018304779362082371890392:82:4 5275365140954386359272509034487539561624368902311208:82:4 3531837312703255323457089969362232707895624786155618:82:4 7798835405305593846996115696172509469190643574149976:82:4 3104448046489015204725707996539710796374201947560051:83:4 8933499453255753719100520829905916482569219000943476:83:4 6758990526092399857469448741427593460424995502247783:83:4 6634262334747502407167899046419488413433485105413797:83:4 1918522756277268811160063104356167629833193803472907:83:4 5629807758929789331080807261570619115111126585146026:84:4 8835550999009870365014121989772595963522142479657676:84:4 3908914209975914376035640757578577830241069268707571:84:4 1991975052169640489248858798512194983575686044678087:84:4 8722983501233712685676347004539480480443645351891177:84:4 5409317758566189244624164238613836783819584586082620:85:4 7612712071630491585831585506371555971547282963284853:85:4 5127912759098582371901368323144358918114849367767404:85:4 5582428918943408721945515094345410744131750498145966:85:4 3710501949586680519863641012916140127256348050956826:85:4 1839756408168302212862836264605514593106635132615025:86:3 4656070802146507227311003347273242388293489916133866:86:3 4591018274655289310376841508946738414387822828912042:86:3 8149411991374680909342990387839880957674162842723443:86:4 7228342897471903431200776946959676088090542938174096:86:4 7045251997429621660924536872406941192441764081656830:87:3 3258797538043495737891422546396329700945158839829999:87:3 5124220860919654432455255475059624502521326829027054:87:3 2668323556732189606104286407073765917620326603285609:87:3 4106459797052307587723532072019990955641133712094319:87:3 3317203719328289521978395495315681051316959003216856:88:3 1140433493012997306296344885320356309980789971338470:88:3 4677960184091250216803826423289007277312069542458742:88:3 5960707618264392766038492646324635073911543460339299:88:3 5208577245470265694543134181142558382059804623243741:88:3 2708603034659269786436337704520268396488166150428114:89:3 4256952915738465199224715514057194553702068117237882:89:3 6587341439219466813856563360786490319259516925170603:89:3 9008973624631232608922477579662068783664066676149069:89:3 2519663900396963053867740828023440391850270336324471:89:3 9743401792505341513431807303094595635208745312833563:90:3 5807544940616413659689536492496326162215035051174841:90:3 5532631848645802945136040614470795985273018824588970:90:3 5083226162151249273615870646658709983357218790446367:90:3 9330551477280411683167893355521598928217401138293803:90:3 1342229162232067398047234869415086883027558826511820:91:3 2079513211903864497159525312011716033157838228928847:91:3 8363518204303343282702486196901484372783275553343987:91:3 6921315425018486735692037166580787205955226233708708:91:3 1090237830946080739815846738606210130234463399901793:91:3 1592529237858195165619963956657972958843855847966544:92:3 7185548264833356963629299691839434421191280362638020:92:3 2225063468117707208274533614560564426622793763695676:92:3 7749967208424191131852009961113939750613874010564003:92:3 3487736298141892617165269405056831119993644844643237:92:3 1016217224580641264782525414767868304866816988729991:93:3 7682439673450163412921576138604398957758502582357887:93:3 4863956255072837723924316043419793556856080596357714:93:3 7310200400338888966748637197982390149893066005045902:93:3 8200243328349657110454715751420067431990767369965682:93:3 9785365943972074860921684096391936595524782298676234:94:3 2010265638808691047315610260186746519168924433528626:94:3 2304643909426556563761329740090293618623788682749937:94:3 4227869147988397786934465777939614819025642182831626:94:3 1768000447123395080666532864523716223498432838740193:94:3 7504600660667871326408753591294538774340456431191810:95:3 3554729500276116219299633966182158666048408560931859:95:3 5027997237689468224443598692787490468602164178965160:95:3 9225711521335053319546228081277082734106344805053419:95:3 6707284909060843605887112855689088246267219607435839:95:3 1712806101584693633916640725255119605899795913432463:96:3 1567572394680659949509091033131559760132632752950620:96:3 5807564357295162372773399298887000480129380643142279:96:3 9281377575917963019839380484901838793928790820074286:96:3 9669882416674560722789730520470436322817622990600123:96:3 7816137728969481824892327769308524210612440442782065:97:3 6651028805489509135281686030311156580373957690986113:97:3 9412503769672797927164605515153154774894134643282335:97:3 6591645602381400158917500850047377180613879213998804:97:3 9849921275779443924816034826586177653884210807258027:97:3 4000283182395099189442855086295845281059253101373566:98:3 9237746745674341833570580106927298189992796265448846:98:3 5363354981753288761796147089268895642597823558965156:98:3 6304223634878200514290535800125908916795792171451251:98:3 9526469769344280720869909017251820931495375128159724:98:3 2366509236643570428160429438061101548034779597495877:99:3 3891947520461177594451977509742197881207921078308595:99:3 4381971843434230127331061598137147635519824174083207:99:3 1521550526609767014641040395428226563383034717138123:99:3 4563704380892945357090816308210328785110867500736359:99:3 7655332030149728116356681529407669479157342242407216:100:3 5318628883672974289280685792134879903975983481870800:100:3 4117454460721013586573166493103241595160994875226417:100:3 7112794338320160566773466962403539348220870905216795:100:3 2448232213270279521922195692645584706176770845552031:100:3 33702511712842038206065411806081027513458100628861843:1:33702511712842038206065411806081027513458100628861843 35949797855365861269814723503799490470614616687292027:1:35949797855365861269814723503799490470614616687292027 39694738976624099657609137098020382160972850571005033:1:39694738976624099657609137098020382160972850571005033 96314198340071376288103834716579833761007072056950323:1:96314198340071376288103834716579833761007072056950323 42287517777338900323439102969997149000491410871039206:1:42287517777338900323439102969997149000491410871039206 70120284659162070131233812010511201837382117812623948:2:264802350176810307952274454 94516707752082915774662265387040620644784369223041990:2:307435696938535287870107605 32510642792651567792899745341116228509663513776886984:2:180307079152903943304189763 79260554494735707640471308807989950577610312086266839:2:281532510546714138522714409 56384294946053035588377986416854591917235650958221075:2:237453774335244112557228446 55834863420141563276653656202434169755309476575061488:3:382209800919389400 10223575039447192460186981996933887090604648041686779:3:217037242501475840 64361402401505222723000541375201734574664492851408223:3:400751508871620679 31245552313114103623906237814257658755558824826608191:3:314965318473173670 37888343367751355554337050120984495369521268896809403:3:335867930922488460 46793273432706402178750217042701287821023830694345952:4:14707737051803 21696102638733463742307372506656518445783349373082981:4:12136555093041 62119807339349248964631997159037133387446500526081041:4:15787287758714 97107326403157579029460647156342769014145124316540826:4:17652775548599 52654845474764391845200810592056300099009609272633018:4:15148149606092 34319484295609066183358431964959577941577610997928405:5:32144609235 45070851513422520687650682253100185649976361695105031:5:33945261030 88949335433206796138690894559727501965602202321514275:5:38889158118 13941893431031971504599484764900975164040053879804171:5:26845058317 66539786619314036296114038104320460755576356440858093:5:36695793294 18324935750794190775525341449946944987501716582237657:6:513460544 44747660790861564667512400948756099523319096412754447:6:595838263 50259214211522731923833784389107417538617952390487154:6:607485545 96808271098178340684083658532718633498306341616341157:6:677618743 23065791460926174397153510468477392036600844562346536:6:533533131 73002507648821775962190915504805713380937354319096091:7:35637349 21687099082348251361246364691348128826123828535448455:7:29964029 23046098670044074795595372631508324734304059656565146:7:30225330 38029929875473829824130256265951930616385535674443617:7:32467324 60266123524758210936787698695257480807319660243819551:7:34674520 49807479082491144313535469211799774340360146704071403:8:3865109 99806260054392384400014939286256053744628447558181910:8:4215942 24881834067945155388480782825788504052406550674995472:8:3543931 35601120974287564468141756263103681041306504335302452:8:3706235 43094407110491749258086808280247235532610270445559317:8:3795793 20534801586163987547075770778532519312428816970952807:9:649380 58404724462689514024491342130993788488687231848628773:9:729354 35889696050620476601130104686946967876744211804058182:9:690941 30681092385435331194073305980693023977777721128379955:9:679007 25920258143679085282661856524043983510899285359025315:9:666404 94775725621195774154001380758362406467519103998249051:10:198458 26605393978183269942354040231807372456910634836479392:10:174782 56379293111670567666549671561115410209580633704415426:10:188413 56392748017632217668996660676505225789248630803603918:10:188417 58377045286470143608967810504847197643458976233683354:10:189070 10756684789815313277156390338464421665391584979303397:11:53722 33670153924174693113012752537341813631218617300474017:11:59594 10753782332627134993950774643995719759255940579797746:11:53720 68125898248773424186924733915291472285046016156887934:11:63537 43798040917541836431463278045845331095764033127955762:11:61036 66185142383562522115642637445588809328409689859976189:12:25219 26553128402125492332439991131034596429262176132901817:12:23370 13055094699006432464712216571789946323951467577668937:12:22028 47259772455312807007662418767282366774360343042073311:12:24521 25104187042158963884884343138959970792575391491330529:12:23261 54306587373077521942526956146119627919911215969726415:13:11390 28579411816269026758255692877754085723355970793492617:13:10841 46183764378543499325933636225738270315457628593040678:13:11249 41683825541752137157855899113937012196522634516609214:13:11160 72110208207375284131279127854158859947768830692918145:13:11641 42114236681286862131465143426065133481295428062543095:14:5739 92046269003111029186364980406319578604569284930365205:14:6069 40133125460734004661037981183531101157642169569526009:14:5719 51899185022436583151096343093276584158916295755530885:14:5825 27468005174867538569410583370572842005664581712765385:14:5567 73333609086166113397693706527769537637865521254547389:15:3344 31952889604894622530258852780955308809514145127911595:15:3164 78791916009866778551643230600244646400999975231683809:15:3360 71456096012184510949309994182716533561240211121251000:15:3338 92409544623665311848575092734852043385014566185947660:15:3396 74532855388034646465409957670080705390076559482158601:16:2016 85180540428810457713067386086409500944764564589816732:16:2033 84795019835170756631323013485853917868474203422959939:16:2032 21478186023874404362283770803757036859104591889192588:16:1865 56662138052448913431399935787328348111182770428303110:16:1981 53673184247816973628227286531659282228515282176277675:17:1264 16665841921091018001112852446858649344723728084348105:17:1179 82314000960056035629498279499056329170053606325336732:17:1296 58074217077673805945546943975665746506772988781093148:17:1269 90916779414348879345079677908735524431412637976121312:17:1303 52368060232642949919317276118291961355555070473598869:18:848 38380391396311575079817473627130507851411099055094106:18:834 83933223127074575324031257140725705594766136808061340:18:871 29683499048739690927084460490738450744364755706050573:18:822 88941955971393855348833865899090328204370140643546231:18:874 19700448932838225086877886687832865427998193339566518:19:565 92844669692172129962313388442164347796209917762502672:19:613 30457877894603865193583949734229808204659985122007746:19:578 77295502123625957870609061483765315004940693617763740:19:607 86974525375899229487353732762501012181325904208004314:19:611 67324838459140900527543991225389291543552411683860350:20:437 93428431029566972658804914864493604378531048415717081:20:445 35338234307393346496151558318798734225422503201539588:20:424 57561536886100401186724405367121283453800763389798278:20:434 49498250100611729932482384084993478640523676973514015:20:431 83706026379790484676897719202550776913489374869592879:21:331 35669830269210705287081174270420349586557018880216591:21:318 63731793151401410103676439200482008809713559026973831:21:326 94403123135189527965045723906769392918611677247729174:21:333 95773616798057696014818994722817794158002281246284588:21:333 24852114530123141692256414394718056125222059343029943:22:240 42618165849517552099818076193883092280736905768680627:22:246 69717091178671216182386062351735015048849283903747883:22:252 61016674473216924398075626999172738370360586104611112:22:250 40098067377859068744419910606282955635066324480628263:22:246 96686395951484352068613204796633753563812783268046935:23:201 53802516210071516232648449249043419142652243604081151:23:196 76205769323546494862347172620798515965195365799966633:23:199 40414507982105120638224071199672629523571054105311389:23:193 46235639831123780095845068195384661479282436730382266:23:194 72196984090442689411920316420999569447760442510558365:24:159 94986448646672484716348842421723352937075057551885952:24:161 93951417373546016037534448246368041736107826196035612:24:161 23822563096313611266087113629571430620907025288182008:24:152 91842295971038634704809965316160382548592367035406114:24:160 80616371805061547256252840408592240434922530581752716:25:130 78469424946277005450533109163525555499376178182555669:25:130 92059051627655107512627215924873540618143700686812198:25:131 39609749582687886913466737457962534740285324577186423:25:127 75468716913446957117757537389725709478326215715485943:25:130 68781736372997877082385827770372211156997603353745940:26:107 96199885763445194378467050974943500252672769620342006:26:109 23369348675592326746230946195392925484796077617749583:26:103 13269843387118092629656764932897350231811818829692212:26:101 44129825825927105499509133623849888615026009365866437:26:105 96868533381224163706733550344496043646592922960551336:27:91 87878228844019469536010292952345545552731947593539025:27:91 52862033923826215139179718440006941068482990901891581:27:89 88301348338511272678144789595527465000251644885216218:27:91 85495847789779845005273657523352987497116629550866059:27:91 85447928977208208997220181303174452823498047259264325:28:77 32311085644235889191153500085120333470388774902756883:28:75 64970748070012265806384282275108953745597739258534896:28:76 17822530343175621587026971875774643286900541817142553:28:73 86687289381182080192869823755903298065573836841840923:28:77 18841256016957394464487525014617375850797549194967945:29:63 50149420145579157567815651502038008848368991274745900:29:65 23002623011947252600265753113809785542676203371531589:29:63 58934935767095470594061369251756010197364657329744709:29:66 88532553328357355048983308304548679452261651294241036:29:66 58219500705820319560097868714816716282018892375546653:30:57 67219502389019377288097146410136926580002145716526827:30:57 79004159472560212197799322362863291329292222984996164:30:57 46715059335311447159707009231321078864168820554343665:30:56 61976322452590668219289610001982183320782675342288806:30:57 33847724736168682622058549327941147372278296748402987:31:49 46720720617082906220586884528240076744552943605370497:31:50 62428337100421494252306677118189623844127103581840349:31:50 88494148908693781102438849604752601211776194749591081:31:51 12741662079940021929379406025938762353077556613678305:31:47 13347359423447373796279337453067861022907837596325675:32:42 69531879825246500928634055284085548211342281698044252:32:44 90309250810912675672872905198884385692591842754523015:32:45 65243699931797315367226924583306531977702897811912579:32:44 77555284527141529087699889951381590731947601191761355:32:44 29016240950631090968927461104313325545042895165807915:33:38 13038046993478474464903182050344580772188794406388129:33:37 37257920802530691932877918955991355160525425706231091:33:39 23795688571457417485592101794357444210354868646115278:33:38 49506248905643486957880350487063163373023337486178431:33:39 34717547688797992792177410917905146315785975930608928:34:35 48658313598203766496008508035028815727846855503161149:34:35 30801325293128766882790391134058903991161461835169818:34:34 50374353450272852278317165182175070027765785367937979:34:35 48276629835019906962085941678250024108996837275981069:34:35 87833295198131103366411249783694855680237433387196735:35:32 29629003596612632132542286154149456490407386483595743:35:31 76729117195271938811228081015432240207325619519915936:35:32 59574207706280186001248239220728046305800501415332448:35:32 38356606665383202456746188930938828258030947382341115:35:31 43883559604830997717013284103811436513988747950069272:36:28 57464151352718102321244551416981810621012159659925751:36:29 21978704510119397525535015806013205141053115268748423:36:28 20464992918810394173921987169752407337084715387635672:36:28 24885225531800113943743187546933364578087667691180697:36:28 80488737675799676950355629457616441102931140233006083:37:26 51482092644147784554792240728093383869703894162506850:37:26 79439279323420811570077825022587790504894279727039034:37:26 41937770892812751642763804322006422272527677826721970:37:26 24415679607807333518361367580147364107402268812260857:37:26 35502396919061680310140141590016323463082343273960001:38:24 23537027769363936958657326100758358734541227759849812:38:23 71751420702617966523555445295318364921221295726499519:38:24 22760672399226788128093715286933394993825145339799084:38:23 89061758006221952389022730885376492840851800772822034:38:24 60640841500253325501173018940737500260537137658927838:39:22 37329945051408699406121116827120284441658251582392215:39:22 62315659767059191457853777348031438197173281524864323:39:22 41912345416231840014052967449725018134944889368453216:39:22 61112366363937407202251114738442747879029298032744260:39:22 63320658292680704152713517580909133192435984669991371:40:20 84148231683936645622796393343602909401520903645210529:40:21 69637530136329314621181385993840576415600308008327786:40:20 57950517182844105426817133347581483199789038464112549:40:20 27065332301297671922550195887947584742311206348417173:40:20 91967713122756121897662451474931260756459311702531866:41:19 66141356771487823598900955017822023183477673115444017:41:19 83145532106541234730040428150744565319412371991089198:41:19 31757230661885764251736165520611904651259346237624263:41:19 67276100517805422765140585126118881853863872237549084:41:19 74998943193765780083639849631337749374976931134703015:42:18 23606306566574852228711469821546024198026385977045276:42:17 51417627690364455179322587636508848880087107128092156:42:17 65904632988356389131071324802380490099183803456617418:42:18 97932697947054910964497319764416372247504963898682522:42:18 40332686040884911148132764820298468526896089393301501:43:16 96357029631451112867929614001771690779977119370212036:43:17 96158557575680890386427676885348461637388469737413610:43:17 63444392198730752061246399805896686230369769469661946:43:16 97176499804031786253125019611655737393983313281805152:43:17 97034236112974135465966234522317399368191675564632799:44:16 12865119084831451698426269541926606159411443409471509:44:15 41266665797912111315908101919112727635920889400779308:44:15 50445791686875371879671397039591582242310394477594010:44:15 33179823180001779200295200417761050360046002545507104:44:15 92705049582184296028626297439798054617755840727423912:45:15 29062078140362079024740955807826194052392996947422162:45:14 60014529658253112920355572378045134872364513566226607:45:14 44994714407361023764166426832080450742241335982599528:45:14 80078884059234381535355896524707109648297518301391662:45:14 44073520638422358987900058883318174636459345317241859:46:13 44258448879945397583773542006741570983637424804560203:46:13 80659936476461244798542710620670609067637665894022702:46:14 47099100467780746314373759229582217334021506674109414:46:13 26661228416622600428427584937346719348619832427595719:46:13 66250208072585952382264029538849119992210458552133581:47:13 74822609967943689094257066247358766122815567395289638:47:13 96194921512003520854781877800295019860350217105020772:47:13 40359810862676011791063213129252660281013866478171928:47:13 15414905331379690808896735639701697691586356428255953:47:12 62724765633007532283345689992732899067984190358290194:48:12 79375962793354748497275774141508850599750755793917199:48:12 50313562465959285876378792406515176002197343317109423:48:12 63754034612617369087438067344586924746785520367261697:48:12 88668110838867180415570694449392470197698204947532688:48:12 37003549118580888861528428837538840763590833254870909:49:11 36208691286413251881068146255422866954196420878696908:49:11 94942545385031861240565148638734631767094526314559299:49:12 94235615920361555445289063591711322203663369222615512:49:12 86736142066258747987401006069520245383568595749717183:49:12 60427684771730982944983860692337164699349385788844805:50:11 23017673672931157491919501041892756153378053512838156:50:11 55081988499162852399875160272941530355360579099935514:50:11 33881644827807057265944424508352753558894583827812836:50:11 76588573900741606740126546091619985131095049117975144:50:11 68446715616463627456963527599884076555886504461394462:51:10 71822135551824337593483971893477436385427038847520798:51:10 21971978895987373062334032918077128508370220166234556:51:10 32331214026995382448896112180769932266642608003487976:51:10 13032193887266246541525103256491864428857590675766712:51:10 32566474524725845928328702027223174201638934583865628:52:10 59167120614223218883992593640249978972896547934409680:52:10 71271027876478672194857560575681015354719807252955313:52:10 65504720429826444599574950977016042298298380563249190:52:10 81866648085315738311954194026451494099851389698187966:52:10 65674321804533548511343771563380315229244506847173532:53:9 69317026398957504523708053003436612431316129081494899:53:9 74236131042529354131972965575274056990892814742335303:53:9 75974899157619786390283306648585927318511851894685465:53:9 89625623697111890378813589027411303448105776153856955:53:9 57808465505641345832739762234909407689661293590460938:54:9 15590848615970027546514764884704066937477243559334395:54:9 83873058805690550454072938487542836909768513820681742:54:9 23907142743182501610603991987351300502471794777786183:54:9 12448742206689405788863817795093288000569255921486018:54:9 28089454584562032005147838761801356864312603779462393:55:8 54097353624209778934262227594547432210787723895420227:55:9 71286680363671935075438360632479800626826337240951220:55:9 47451386260230440265110836155957866109276233525176978:55:9 39937816201557417435070393359695266063041090043987747:55:9 37638289418346893847356125876010611995797595289337806:56:8 55162606584004065534611427100743760720113524609516875:56:8 94897348028948939469544802576902930758359670418635345:56:8 21089511407372440122503200182202184359576106427072944:56:8 66391120751242649835106326515762489247024508673901764:56:8 71709784866823733605157240064629458637785890078610049:57:8 85609659400922532846515242356672204703132821077012551:57:8 86876054258859744395631156095324801805485892753981544:57:8 89907204626951046242535533507676731074746442723956138:57:8 92146284272591427227599258064358702858626723738810013:57:8 46718841691093231912907225791828741724371274853411685:58:8 84054058938401482014967624130704412706938701287307970:58:8 18085310313172075660163815358106263352805083205922807:58:7 65886283546430863076737155518004695780383747519778098:58:8 92800751265768925060377947189771487019515428785886692:58:8 93589727002654694701659904120459309842582839294934016:59:7 15868293654627510795047577339778589096945190341740708:59:7 26687533468410912546529731464514486694556314406280082:59:7 58016689967661258295747868133239217400040850915018759:59:7 63978074631871971805356582545525028343912050905792071:59:7 58094069840268794733973513197052953353793028519267557:60:7 35240440645820075626469207846558208195288799950967969:60:7 64741468017794062585860055366042337886790475669792432:60:7 21999369907539478563909340368595898633038066492766402:60:7 87474224607164619310393646976481144290783647074394431:60:7 69400426918476368580809006688534982994167493833936446:61:7 21195081538986569555878010276044237642015084913841878:61:7 47058368865692873236771093098688384023889559404942224:61:7 31311132855322127226023279907531549086146353489938762:61:7 31971550317918105843344005491183436831723748207670769:61:7 86031041551380347375016922548206930836236816750988037:62:7 27504231929571224902500228857811221985916116190882421:62:7 46460171246110060091934569127196730973494210900994739:62:7 16603784669844811516454206647879154567194238124508615:62:6 52710377416250668362694540338392951501837918298069387:62:7 63263051160599707545839640909249017710510039995431697:63:6 38501930663563311339894901749681394269486323329922702:63:6 37869412370298050596908956279585382025545961892758123:63:6 41039708088959577742690128787937055011463987985329346:63:6 94672614167287908733837672203015375829572416465095244:63:6 65285687264711589058903966279483266045863739382402424:64:6 50957079800347041165543973988301699604485308546866270:64:6 62534016188161586945652217948522534970836535682129138:64:6 54862933033873190081456438571897421713918053774716414:64:6 63619183224275774685664110025191530305861768019975356:64:6 32026610905545781915765435523900953555065334397024198:65:6 30201810963399584324366991082461824794887865553768649:65:6 96766441778568985140040677105793428153660755040334468:65:6 43649765268718394378848456859775293827338121952996012:65:6 62398097214713208882507901551496389836889963353598623:65:6 37495512260688466470936870367823000462855900162482314:66:6 98480349857434891585468135921238861729625333724481726:66:6 16941740200089004272727952273065132738640017477060965:66:6 31373472271604611260728759569326882255623068478226140:66:6 65640425833711627923784646405437774235257474073426950:66:6 57993235657715349586016222617889957278094390673858409:67:6 29905326413548034979188442809706507114972973382761059:67:6 30359824031567832895803152032743454765736583955891410:67:6 69983886271503416666856734908712653544119098882743554:67:6 21344991794285014810518273450479762030001680533157420:67:6 60075632804590092946081234853895258022290312268113433:68:5 54308781962188651066437318650562882568288801232240252:68:5 77708324696146235792736062513640861044456578506722538:68:5 65526623685508985352397097866671923375813808083342698:68:5 64646804401581474717716446625693892352603502030542288:68:5 37640042318893433635188115235252473975180464570020660:69:5 93415764825230737900017451834520648098248008977973726:69:5 23797720474462437678230537137608135092704393581837526:69:5 68976527627351063391959672553095047883627169934276211:69:5 29058900818691400010834257241370378286509308789560030:69:5 79713487821722739772713821044295479299495387095071063:70:5 22163805393869286049448912839393425435464227365328174:70:5 57739586326403039259342984621661878104298486288360633:70:5 61403372123600762703349146880060167955899393369180267:70:5 69971406498489628338346253925755888719278657192094881:70:5 16122003215525326120394265843833644165322029333956866:71:5 23746978759809374061710260906173323231081937134552547:71:5 79930827250152397418186755024197489217372145111005942:71:5 27093229441002918428055139304249048591053156725770669:71:5 67098877474252689900827079494161820405862258521464522:71:5 82113558619402792875943707142344766646198160121588340:72:5 65749811836339072669308873545172348511038945579002262:72:5 48440618593853838858789758738703293836071318942871895:72:5 83230602465669530798143402290521738816545641930287710:72:5 35929880560559786545266826056346506081097445951796799:72:5 28156324807489414527515465420483330806421696599213259:73:5 85426457863740955902203752803957571348667887606032414:73:5 56660330964209521867126948421543530692067664622761946:73:5 42578094063737852863012248153274147387603734168118860:73:5 71181745481768978368930518010721604376587730740648986:73:5 61153703307250985329107687867678607685867657538249733:74:5 47658570342643407155517454941184403369478626776976440:74:5 37398083527711062191816611540221089032527262884598547:74:5 26061743179290931081488023624017326297997583181038970:74:5 45905497327500581443780456706665447863473943494222954:74:5 43929389250839438240400353386815789951418872000123973:75:5 78249532832786442774848517080661483517574637289953159:75:5 65686763875838145092000261777163307026511525734961632:75:5 88803667976308743492422163176614253186925760053220759:75:5 81808881398875533470195887542061264432190813418392422:75:5 65213831999303849033729641730606779023346108416257504:76:4 85705836081469399509791965359396027902281887651790013:76:4 75542234876288679058763238408426310730859765147170733:76:4 46403157562000579471215641704459363936055035399474932:76:4 69259783955429915296651303469953730852305240593650619:76:4 21213165548931433340195202967666707848929813471060577:77:4 39510470361659157648223665737325347193723456537333725:77:4 65834421781477194910720297284116914059913437497917378:77:4 12994126070089533775727260166191355947255628969193979:77:4 74868923625866787083062454213145132802791173976263407:77:4 14949592541137621016919339658804242199854719036611853:78:4 79677756893299577943381987301707048089926650649550744:78:4 59530896814916771402828819906218188970004523136694740:78:4 28599566776176804596890317604027675431169613722891049:78:4 53079628816169648423910960814191935062753767653395299:78:4 68232000804330233289836421306199799828147788988091519:79:4 20371732601577653918249253875514973746638362378332297:79:4 82408937000854540001888532221050089095417297303694907:79:4 90267805076206061921448412287644466891666543366519172:79:4 68750745433651497083288353701503227844666124810412160:79:4 67461989612654366617462822911488067751104850256463849:80:4 64178349384722653359587437785861306195819309536013499:80:4 15205040307882336187996719291155657392844477633798597:80:4 51965608293482431173921872248510028979844485308793402:80:4 85375580808294175240832143757727866053733219090403353:80:4 73478550286985850713756803220093510839373718401407316:81:4 55434517850851202337722950424364679938462723272886953:81:4 80239079018178673262193137184931532744565512962279852:81:4 32184979796437040842136731962636688509605392487491880:81:4 19936952518310239337775404410177972883628024266557436:81:4 98780693769916103244914167795078709709173430034191985:82:4 69964055102716312805442838334447780641371248270106304:82:4 88300765665213728360987156054145473215028267272762314:82:4 83420142868700098936198472109945226336983557561128003:82:4 78429965258395508244708939390590616087691475116115385:82:4 84891099366100115463218581454914059874002595833026309:83:4 43715566615483829365613919693930279677495386993791166:83:4 10009161663795449851597749233527626600596412331039400:83:4 29058514755751757176364350307999040652491931495291609:83:4 75331366276481882029123313786042483901531203393360308:83:4 38650870275395539337953529921319466671829442236637832:84:4 81340891063241745234694298483017920467901132263545020:84:4 50415237200718505162021352817411231921120923348079090:84:4 87893259631950749686131061613242192830406348429218681:84:4 52796269443259253642992906805045839423438864439100845:84:4 50608607028517539090954055480897574795969488210829599:85:4 10935294688898952523559536570418489256607470271492769:85:4 72197869703780785974139046614269863087469169769013377:85:4 51540073068269520413348325043025227533934360973707511:85:4 57630821279842183148741889823971349134045103010905990:85:4 57305991253715749267828580446551056711470089971256969:86:4 14915750812618637884775600909623560363252372732733272:86:4 45097171988578840869587468255325122289293752385017399:86:4 39373052179648230646267496723134699800870437222573487:86:4 92162018068924725731518056213131676495100676545035093:86:4 30442023244438394284971104262925916237551475298604825:87:4 85013031798407215437603992561926483500956943040682162:87:4 42929104584646551335147352666496881421776499511063272:87:4 94704272664026719046754987288365840093894307391011797:87:4 42236656085792054204956541746407930281145386322290208:87:4 11125829483041493314135837502176623232672954985936609:88:3 44047621392175728114060248107129254229000252580900471:88:3 48442520983946880771709684958923154189298515215583637:88:3 86113469236071376953760346567865202385868573135002981:88:3 96455853533753395709916661679112771127321328461262168:88:4 70416001117559755156110637755749552998254514266229814:89:3 49352094766567282338365550580784207479181137622940650:89:3 31625678106712881272990092927442653385377670172344674:89:3 23304369108199914328436168439160789416029949449232046:89:3 44251673566935558213631883998913292120974382256384942:89:3 92994528186019556475848430660807333835062972488554883:90:3 87658406009361285693365786559803056236633139647993125:90:3 33060980632076566457249242913981108367924225566703947:90:3 20768043409594415477863502349058348020429913579534286:90:3 78083486568407233525899113515866362083316987921828272:90:3 82372355420087700968968617267273462871804213522059768:91:3 33436086689731642077022950519541323405917061281819805:91:3 34475433474524002044427903371954707739420960134422612:91:3 72570468079791251207906169229420917200049930248791106:91:3 34860497544439157029690204291772603449232999250149636:91:3 23607950814822851790410348489681295862379370510027962:92:3 69915898756310702363754050043490252474969508122785794:92:3 81609425991102520584492841075117998063586490327333771:92:3 33204323915065717223627705793465790515125948693879278:92:3 42633681729527891642887433482955045762403133153075485:92:3 96097460222277602361995300973941809426962201752447990:93:3 88503753889959423236915368878782691154411709843288191:93:3 68276779729331379091725434332106964230065659536282936:93:3 94636823122355892661960835843133796414729532832129486:93:3 34292236674347293158719689154843966529696963361602222:93:3 40439765553880345391735027531044134850228037348413280:94:3 57906827692850676678854642881300216598330530787053432:94:3 62952964996879847569837546039225925731598180320662537:94:3 54050091317103046478815750442578080072348815670968002:94:3 42406626748227507954289259187912566543437455095795404:94:3 36262148550000594684995700999668114538625364952529416:95:3 72714474690693158641830507624751836037794245320898000:95:3 31960681502020146758654123514167719920273496388808561:95:3 27656082607480292299068121756979070985440831278277210:95:3 91076642801959698541647969735278805826176031093000843:95:3 15712406896747145889117064725863547722067581774127660:96:3 53540395126372809923764879542026567958153219520355569:96:3 76627986905799145744770767084285193902159157355944026:96:3 50136275466068811655212377868213436469442011672055873:96:3 39950948668059159443253390023432063749444597079077513:96:3 72863630010447003790314206429724116564694355622865398:97:3 69036504976066042021223673753868507761970560384963772:97:3 38034399465376753082966559284566775738147228599816686:97:3 33960963941837618467704486833374369562450589821904854:97:3 17087355903420374907759533620878969392131732957481855:97:3 65713215370193819525306985816271032037276685718283561:98:3 72047229173842620146279848840257218217674747317120810:98:3 11667806605337855480197090361361714000564723391518431:98:3 69586665683391437883292191719984220098667688621921979:98:3 41050776565380430765843592595538851248276674175920709:98:3 35364163556449226879254006193095546476798382214081763:99:3 86549310357874886680734159305815988142408298321360136:99:3 47481529570184569808518539106401201129529770307620983:99:3 51515052977690105914026100608446660161094659090227986:99:3 10574001303758182972410605066481971744431927388580081:99:3 63435766232424628845013782053100823507276436385632617:100:3 76123284463328105985072953753039936173373724236563752:100:3 90113305548948576297914094790880646738013257037465377:100:3 58699858704067723292925483187742517008468090704659943:100:3 92467064301643661447075569946571958365458596365063881:100:3 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_root.t0000644403072340010010000001023014536617520023362 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 276117; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_root'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_root(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_root() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_root(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_root() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_sadd.t0000644403072340010010000001067614536617520023330 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3601; use Scalar::Util qw< refaddr >; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_sadd'); my @data; # Simple numbers. my @val = (0 .. 5); for my $exp (1 .. 9) { push @val, 0 + "1e$exp"; } for my $xa (@val) { for my $xs ('+', '-') { for my $ya (@val) { for my $ys ('+', '-') { my $x = $xs . $xa; my $y = $ys . $ya; my $z = $x + $y; my $zs = $z < 0 ? '-' : '+'; my $za = abs($z); push @data, [ $xa, $xs, $ya, $ys, $za, $zs ]; } } } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $in3, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test; # $LIB -> _sadd($xabs, $xsgn, $yabs, $ysgn) $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_sadd(\$x, "$in1", \$y, "$in3");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sadd() in list context: $test", sub { plan tests => 11; cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); is(ref($got[1]), '', "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the third input arg"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($y), $in2, "'$test' third input arg is unmodified"); }; # $LIB -> _sadd($xabs, $xsgn, $yabs, $ysgn, 1) $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_sadd(\$x, "$in1", \$y, "$in3", 1);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sadd() in list context: $test", sub { plan tests => 11; cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); is(ref($got[1]), '', "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); isnt(refaddr($got[0]), refaddr($x), "'$test' output arg is not the first input arg"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); is($LIB->_str($x), $in0, "'$test' first input arg is unmodified"); is(ref($y), $REF, "'$test' third input arg is still a $REF"); ok($LIB->_str($y) eq $out0 || $LIB->_str($y) eq $in2, "'$test' third input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_ssub.t0000644403072340010010000001067614536617520023371 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3601; use Scalar::Util qw< refaddr >; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_ssub'); my @data; # Simple numbers. my @val = (0 .. 5); for my $exp (1 .. 9) { push @val, 0 + "1e$exp"; } for my $xa (@val) { for my $xs ('+', '-') { for my $ya (@val) { for my $ys ('+', '-') { my $x = $xs . $xa; my $y = $ys . $ya; my $z = $x - $y; my $zs = $z < 0 ? '-' : '+'; my $za = abs($z); push @data, [ $xa, $xs, $ya, $ys, $za, $zs ]; } } } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $in3, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test; # $LIB -> _ssub($xabs, $xsgn, $yabs, $ysgn) $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_ssub(\$x, "$in1", \$y, "$in3");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ssub() in list context: $test", sub { plan tests => 11; cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); is(ref($got[1]), '', "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the third input arg"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($y), $in2, "'$test' third input arg is unmodified"); }; # $LIB -> _ssub($xabs, $xsgn, $yabs, $ysgn, 1) $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_ssub(\$x, "$in1", \$y, "$in3", 1);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ssub() in list context: $test", sub { plan tests => 11; cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); is(ref($got[1]), '', "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); isnt(refaddr($got[0]), refaddr($x), "'$test' output arg is not the first input arg"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); is($LIB->_str($x), $in0, "'$test' first input arg is unmodified"); is(ref($y), $REF, "'$test' third input arg is still a $REF"); ok($LIB->_str($y) eq $out0 || $LIB->_str($y) eq $in2, "'$test' third input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_sub.dat0000644403072340010010000006535714505066136023516 0ustar OSPJADomain Users133:38:95 633:51:582 3336:77:3259 49016:77:48939 785833:87:785746 8013144:51:8013093 84981879:17:84981862 518094066:73:518093993 2050839895:30:2050839865 29590479939:47:29590479892 881113766723:82:881113766641 2365621927567:94:2365621927473 57129686171320:42:57129686171278 714600987410026:97:714600987409929 9193587152443818:16:9193587152443802 34574756119616356:69:34574756119616287 129203528618918503:63:129203528618918440 4564395485854842846:89:4564395485854842757 43281574081450827789:52:43281574081450827737 879882042331215118826:64:879882042331215118762 9815890112038293073618:99:9815890112038293073519 32765771533116119241658:87:32765771533116119241571 639148516878340632189594:94:639148516878340632189500 9647162707796234310274885:69:9647162707796234310274816 638:543:95 1252:311:941 4555:454:4101 69186:869:68317 565557:742:564815 7400473:611:7399862 19658791:331:19658460 714144170:442:714143728 2386517214:168:2386517046 99110092002:210:99110091792 826300029263:588:826300028675 4410735239285:403:4410735238882 92091100684359:437:92091100683922 658015468779407:828:658015468778579 4220984310163359:947:4220984310162412 26738778699642535:506:26738778699642029 890230005532954435:949:890230005532953486 3922825066173933005:568:3922825066173932437 62505015474366834798:628:62505015474366834170 132028171858756066777:730:132028171858756066047 4737039980787213332219:883:4737039980787213331336 14372745729267444679552:345:14372745729267444679207 414010976463363950689400:424:414010976463363950688976 9223329874769558018680858:459:9223329874769558018680399 9536:9459:77 2566:2149:417 18595:9595:9000 78531:1204:77327 503422:7304:496118 2931853:4108:2927745 46785153:8146:46777007 647775028:3504:647771524 5801011104:3253:5801007851 35280185453:6648:35280178805 194886927965:1417:194886926548 2990614267513:5326:2990614262187 55183342423442:3443:55183342419999 633446883544840:3392:633446883541448 9817088827022052:7999:9817088827014053 86655547463201531:6677:86655547463194854 469808383526946224:7836:469808383526938388 5592181420493206488:8832:5592181420493197656 55149516509993728560:3921:55149516509993724639 398160871733741330892:4231:398160871733741326661 6139432649736846842057:2864:6139432649736846839193 70861998413748565652224:6294:70861998413748565645930 833664652049286387414534:4628:833664652049286387409906 9968043041021011411801878:7510:9968043041021011411794368 17836:17797:39 38069:37507:562 71893:66551:5342 79413:62475:16938 425230:17501:407729 7920766:43158:7877608 38948767:31560:38917207 676511271:75914:676435357 7374698525:19667:7374678858 27192272607:63995:27192208612 388411254077:19778:388411234299 2114834524738:14028:2114834510710 16409430605418:79516:16409430525902 814912250703422:22272:814912250681150 6040319323178433:99758:6040319323078675 63754174502579632:67178:63754174502512454 717742466744157867:41985:717742466744115882 1782105050492255051:30684:1782105050492224367 63548492877548473907:68343:63548492877548405564 592216777063702935615:93568:592216777063702842047 8092452505794800795361:86169:8092452505794800709192 21253946235709418678381:46664:21253946235709418631717 735283246010825732943657:41166:735283246010825732902491 7012478285453214991102528:50860:7012478285453214991051668 132646:132631:15 323339:322798:541 308562:299313:9249 281385:199648:81737 1335139:521850:813289 7891773:774280:7117493 33237919:229030:33008889 714675173:559752:714115421 9878399551:576782:9877822769 94261921006:455065:94261465941 371668887345:511413:371668375932 6840272729638:530296:6840272199342 43907495372042:976579:43907494395463 666602751153144:995925:666602750157219 6216665892971179:767279:6216665892203900 96884761480738059:934690:96884761479803369 817448168324441050:580832:817448168323860218 2295757143808362977:973282:2295757143807389695 11815597744558353130:255586:11815597744558097544 463699427795925311195:668022:463699427795924643173 9363304141768984989482:756100:9363304141768984233382 26183307454183246130077:293890:26183307454183245836187 894831758902262698950737:807549:894831758902262698143188 4169368097765789401433635:309216:4169368097765789401124419 5913765:5913690:75 5083652:5083204:448 9752586:9750673:1913 9522513:9466811:55702 5587398:5229727:357671 8297096:2006436:6290660 74370623:5241050:69129573 335392818:6476228:328916590 9461095635:4709008:9456386627 14398561841:5378199:14393183642 626359500155:5704852:626353795303 5176173196652:3364623:5176169832029 62569331317826:1157104:62569330160722 431827930965647:7879849:431827923085798 9083627031010494:9497770:9083627021512724 29646705243931728:3493758:29646705240437970 370153101746632877:5394256:370153101741238621 1568010330586492527:5497457:1568010330580995070 20700004571466312858:2167224:20700004571464145634 122282277162823391419:8080930:122282277162815310489 5332464226618519198595:2562132:5332464226618516636463 71726351080048284451044:6151154:71726351080048278299890 491199108757670864397912:6155998:491199108757670858241914 1486504762310437888875584:1776162:1486504762310437887099422 67627210:67627136:74 15857573:15857075:498 71828494:71825805:2689 15482268:15440325:41943 47496097:47185724:310373 48985490:41476221:7509269 157414137:93251524:64162613 773273792:27526215:745747577 1354954446:55575841:1299378605 51906514618:95203435:51811311183 522149754180:80186920:522069567260 2522573657093:45176756:2522528480337 51624714554539:77144041:51624637410498 522097418811557:93667423:522097325144134 1132628181660832:97857782:1132628083803050 18706988903786396:51695405:18706988852090991 524028427716636024:44120134:524028427672515890 7904023062403436590:30134935:7904023062373301655 39527588659551342042:24333530:39527588659527008512 519496083150289162333:14877216:519496083150274285117 3288753338559486996243:20697269:3288753338559466298974 50528795162107323264049:79700606:50528795162107243563443 811355293457227174497334:47254378:811355293457227127242956 3493394877495298355315630:71068213:3493394877495298284247417 665232952:665232890:62 743587439:743586690:749 838271957:838270608:1349 615212506:615183383:29123 865914173:865735549:178624 595393709:587794231:7599478 287189362:263590918:23598444 808951866:324000586:484951280 8658516004:615305242:8043210762 41620309132:285636445:41334672687 288642557319:796629907:287845927412 5929085868959:403314958:5928682554001 17959771543946:295082893:17959476461053 276690032047251:669189855:276689362857396 7080058077982448:307819887:7080057770162561 73206798658531727:178924573:73206798479607154 895415108450975020:684330563:895415107766644457 1527441236207682104:110895291:1527441236096786813 37537035424743092285:139998623:37537035424603093662 132352644839504972799:975325452:132352644838529647347 5995165437483128813044:710434638:5995165437482418378406 54615252244279391247968:307423685:54615252244279083824283 143314873981406813342037:354177665:143314873981406459164372 5539034701295399041913584:647407055:5539034701295398394506529 2911696860:2911696780:80 3411541405:3411540795:610 4692237185:4692231106:6079 2028549082:2028534377:14705 2450983339:2450413760:569579 8552355185:8551236326:1118859 1423910692:1384081964:39828728 3671230100:3450906868:220323232 10986695989:5768043138:5218652851 99819068425:2504999290:97314069135 703144105123:2110879419:701033225704 4520386690940:6640865137:4513745825803 26457967432216:8308615763:26449658816453 526495136774746:2264823766:526492871950980 2305930233496135:1875480191:2305928358015944 42441583070038945:2088744444:42441580981294501 674686953288244297:1804378467:674686951483865830 8234586810594160066:3891042279:8234586806703117787 74123755135546098577:3631368829:74123755131914729748 961275538811931781834:1107519346:961275538810824262488 3327196843576965147140:7837160335:3327196843569127986805 43189607381866322227646:2269979592:43189607381864052248054 376995601544084727721247:3554155764:376995601544081173565483 6240642076808415199077913:2330014325:6240642076808412869063588 47521857396:47521857298:98 29855710131:29855709998:133 26059352079:26059343189:8890 76220706662:76220627648:79014 98870243750:98869754891:488859 36553738412:36546005659:7732753 60569554563:60518586003:50968560 26408808832:25422482306:986326526 62089392293:58827043678:3262348615 24771324544:13914559309:10856765235 484823757013:63284387910:421539369103 6832879865366:92879359350:6740000506016 16528369259376:59428223914:16468941035462 732915697395923:92734144387:732822963251536 1841819949374331:19505171630:1841800444202701 55283011529129817:43837430087:55282967691699730 860176264372911923:87841633084:860176176531278839 6890425713287428688:89158750064:6890425624128678624 83084605758588028789:60606782936:83084605697981245853 680306029496457016670:34000632864:680306029462456383806 1656699497359108944981:80654953026:1656699497278453991955 15784114706575359070777:79282191200:15784114706496076879577 719508822656944517261370:20550390726:719508822656923966870644 8206390444376863714239374:46843806797:8206390444376816870432577 203804183791:203804183732:59 881354617861:881354617654:207 118912313842:118912306453:7389 630665316168:630665273332:42836 331224417872:331224282098:135774 196627797340:196617834651:9962689 521026490070:520953769460:72720610 540869994310:540643129023:226865287 328738534740:319589907148:9148627592 583849867043:548370065479:35479801564 1597542322991:885165593394:712376729597 5883158403821:952742027760:4930416376061 26794037219453:960843001679:25833194217774 539921531597682:955579154217:538965952443465 1461932692099791:216103433714:1461716588666077 56139077225365846:421396827096:56138655828538750 873124811398649101:240398545338:873124571000103763 4400511199593615304:789981933788:4400510409611681516 90758405469344566241:537889589554:90758404931454976687 391296684497658197910:688891346078:391296683808766851832 1493425087709661734336:352790936363:1493425087356870797973 80146219325479180997525:548154313471:80146219324931026684054 421809518574176482831158:383298201579:421809518573793184629579 5212629249895455974308300:418672369800:5212629249895037301938500 4926362728312:4926362728296:16 9816116647386:9816116647030:356 7154921426061:7154921421405:4656 1673041653440:1673041573729:79711 8309789732221:8309789506219:226002 9405881916895:9405874378302:7538593 9819597448460:9819543125670:54322790 3385733907607:3385431210527:302697080 5184722284997:5181994517394:2727767603 2135149822065:2050836592675:84313229390 9559109277062:9244749302254:314359974808 17557288033633:8328912197651:9228375835982 67432503797807:3486674870939:63945828926868 800649450112674:1078638847336:799570811265338 3676455943092058:9509676791835:3666946266300223 34309286527727738:8855783606803:34300430744120935 206311909528095950:5386727033022:206306522801062928 8274056457303542056:6936577607444:8274049520725934612 94491110257140536073:7774050529704:94491102483090006369 196511224109386952855:6437618088389:196511217671768864466 1855364791635746573411:4868690783597:1855364786767055789814 11419155123099984924297:1294741457708:11419155121805243466589 481340853646091203283918:7686674301597:481340853638404528982321 7651012123269897262699147:5748891305348:7651012123264148371393799 95939441191702:95939441191683:19 61786336011168:61786336010685:483 61746183016028:61746183009943:6085 35781501455422:35781501403274:52148 73188327032564:73188326495531:537033 64954662863543:64954655577396:7286147 88045086977214:88045012011646:74965568 19814524853417:19814370921064:153932353 94402640245357:94399717056242:2923189115 73914672402183:73842612582419:72059819764 46026981916966:45465937108493:561044808473 100708132466402:98366213885414:2341918580988 114042583285148:55294115994704:58748467290444 287724359959574:21852222846305:265872137113269 6746825894994884:45808622489742:6701017272505142 31207454810099594:77897680155120:31129557129944474 230910590978469274:21275318519666:230889315659949608 4859546877825362702:66600881993609:4859480276943369093 77157776393151516956:40600605931222:77157735792545585734 955249562452513754791:19743948720620:955249542708565034171 6009099459328702160969:69340559803093:6009099389988142357876 75117085584034394319002:28297968959799:75117085555736425359203 692184003793713484554479:82048941595545:692184003711664542958934 2738931273510316500614111:94904585143508:2738931273415411915470603 442907756481041:442907756480959:82 178462823528237:178462823527746:491 958538725922994:958538725918951:4043 695612829240636:695612829171856:68780 697315011814601:697315011539971:274630 750139104865850:750139099147100:5718750 299672007667019:299671952863561:54803458 311893596024776:311893449913439:146111337 288453699037298:288450232716997:3466320301 136037643356113:135963378508569:74264847544 252025159669292:251120981256365:904178412927 465530187650758:458678954528654:6851233122104 330552420209756:298135357329571:32417062880185 1144678600174394:293672873410880:851005726763514 2746514837187622:970282071415966:1776232765771656 41215512800830094:388501615416706:40827011185413388 749990687025272694:105960332687526:749884726692585168 8249676253717288940:317832744061140:8249358420973227800 41670896126078727676:867879052015004:41670028247026712672 725206097956265329022:844858850496026:725205253097414832996 2456655341782765172070:315914796180158:2456655025867968991912 14602911888353240006760:561914227465634:14602911326439012541126 995200890243079629633566:693846259553834:995200889549233370079732 1921607759803626580817414:289019500698574:1921607759514607080118840 6586745434167297:6586745434167218:79 3874061842555835:3874061842555415:420 7113609043547369:7113609043545984:1385 3025828750066535:3025828750020285:46250 2789476696562319:2789476696435345:126974 5770376003240149:5770375998928322:4311827 7270576625747401:7270576569761040:55986361 3927169944800318:3927169190480660:754319658 6570506394884295:6570496777698913:9617185382 9244843879822384:9244767746865106:76132957278 8451743335157478:8451059713153207:683622004271 1644215481455642:1634476262414891:9739219040751 4628974880278097:4548844165105896:80130715172201 8523577476581086:8148285943170373:375291533410713 8339818228103080:2193714685151355:6146103542951725 76349556866999634:7335486858396207:69014070008603427 223788080653716844:3329351849143829:220458728804573015 4826603826342103398:4019720020715369:4822584106321388029 67923452601197407056:4282642147391871:67919169959050015185 895267286785102916184:7399786458103667:895259886998644812517 6071688419719926125024:9080167559868583:6071679339552366256441 37090190246530732190184:5853817187467547:37090184392713544722637 918841227944691532117138:1199641686435023:918841226745049845682115 6215447164204639625949612:6982926101101493:6215447157221713524848119 33880586973540204:33880586973540105:99 56971064008908024:56971064008907582:442 67560902118289604:67560902118282259:7345 10564773217791967:10564773217702105:89862 92977495595195446:92977495594526378:669068 52451077862939270:52451077857053795:5885475 60041179822805050:60041179729484951:93320099 41431875580925899:41431875220597760:360328139 85390909287470770:85390906627142973:2660327797 45896011993159592:45895929860960606:82132198986 90069437351686120:90069248292517442:189059168678 99333327397502622:99327917547688057:5409849814565 72653699313288006:72601177107831311:52522205456695 95707397388293684:95017035417633240:690361970660444 82784489994003350:72948380514228342:9836109479775008 97065267465719384:50346569218111194:46718698247608190 517020743343084490:85573987119347048:431446756223737442 4661156609216340082:74918921984864492:4586237687231475590 65996750521570676634:18994961090896048:65977755560479780586 557701962356448310700:54212096672696500:557647750259775614200 2432350373519895681518:89647735133341810:2432260725784762339708 76877084006088889885910:44438572952070806:76877039567515937815104 220571289993551285788308:25310571830388872:220571264682979455399436 7922696007237037674980058:81653662614001616:7922695925583375060978442 564129680773681692:564129680773681620:72 273559364257335294:273559364257334305:989 378401007153908655:378401007153901687:6968 264366044750873036:264366044750850589:22447 687097330601325638:687097330601219006:106632 873120763434226855:873120763430274707:3952148 659404740387652852:659404740372285895:15366957 858086665270932199:858086664758222576:512709623 277944991685543267:277944987267676397:4417866870 978451635203864366:978451541324238030:93879626336 571434032504202107:571433400428371683:632075830424 435294598333029289:435289772981320636:4825351708653 891754548163574301:891700558675626112:53989487948189 838377108048742242:837798895801703812:578212247038430 582481182965380490:575671434863197896:6809748102182594 535901445645231708:458405761462120524:77495684183111184 1150729405211598392:423795116331610954:726934288879987438 9885594657260357418:118368788986646104:9767225868273711314 48132297213997705682:137287639015303388:47995009574982402294 813222214183958908666:207298911052769184:813014915272906139482 6450232341519485492898:490332708518219428:6449742008810967273470 71877786883450075006804:274052610854248936:71877512830839220757868 885915531220699741740186:400053018784603440:885915131167680957136746 1941271543320869851457090:436051821788532020:1941271107269048062925070 3014582907476113873:3014582907476113784:89 2784787897474980974:2784787897474980629:345 9271985251013690441:9271985251013682281:8160 3054221451767334689:3054221451767246589:88100 4336190857240485496:4336190857240022737:462759 7110648843454446199:7110648843451193090:3253109 9225379379467136780:9225379379411686480:55450300 4999588793928931034:4999588793325843917:603087117 3781857504130063826:3781857500028475182:4101588644 1854196845797288016:1854196791009998019:54787289997 3896275743496340870:3896275114575246108:628921094762 4903618264187006311:4903608702114032649:9562072973662 2734089127248488424:2734040659867770778:48467380717646 6721790782529061776:6721210251407333663:580531121728113 6741291225911150232:6737475239570438419:3815986340711813 3084424246872191746:2996674105940141127:87750140932050619 5213768792062290908:4505528465748852589:708240326313438319 11595791317631559588:7724435405316634177:3871355912314925411 98796059441659566060:5349831095183443541:93446228346476122519 728832096592529016294:6842914129254171561:721989182463274844733 8292987862266738428368:1309892798362694591:8291677969468375733777 81700336532058774909144:6680808419803274675:81693655723638971634469 345733558604464788340832:3845259086432056039:345729713345378356284793 6892402371977243448131688:4810135106142332763:6892397561842137305798925 45123364737125838640:45123364737125838607:33 54090731930833551231:54090731930833550684:547 54174780072448778154:54174780072448771104:7050 26883263877354389880:26883263877354327656:62224 94091167085383703480:94091167085383231685:471795 99373324792381010134:99373324792379540141:1469993 18267055785684316014:18267055785591681422:92634592 24420554980586019109:24420554980268571542:317447567 28473905627494561655:28473905620585043325:6909518330 72996010183889099810:72996010120415281544:63473818266 11318499292335634659:11318498466544959527:825790675132 70611481455233159003:70611477733898881179:3721334277824 54085349265027558651:54085263322445093588:85942582465063 43906499115942233720:43905610924320212803:888191622020917 18029359544039772160:18021757345909237111:7602198130535049 83075145322094171786:83061914270387352299:13231051706819487 69725298374177744004:69606002940165683441:119295434012060563 94754356302092387020:88488757097920513029:6265599204171873991 101469052442452161094:59848299936217803865:41620752506234357229 188386507455750618032:19932325601235556079:168454181854515061953 7513493891361513005240:15495981843710919651:7497997909517802085589 60434789893992898356660:86934286700879594025:60347855607292018762635 375347419950554207069948:85148093127215474877:375262271857426991595071 7041796904556965647430852:34066120512372499601:7041762838436453274931251 301492478607448951265:301492478607448951205:60 626159810656892084860:626159810656892084109:751 116869082683733012247:116869082683733007342:4905 783795709573932444654:783795709573932421251:23403 172627403765817740255:172627403765817332188:408067 704870409283929892275:704870409283928271305:1620970 634124382550299618212:634124382550275049562:24568650 195461848734644722698:195461848734224187646:420535052 387657849176529645851:387657849167525876347:9003769504 143431997851211399552:143431997755497449998:95713949554 110355355285074457274:110355354749325650418:535748806856 584051742551173871512:584051741444091726167:1107082145345 417466865379033815672:417466798489758145658:66889275670014 797359160606160352580:797358684365884894161:476240275458419 753796703357461067232:753788663176948292263:8040180512774969 551123649075057102312:551056520094492494619:67128980564607693 186066346952824856176:185524386810973785807:541960141851070369 312042465792641937272:303303816418135022019:8738649374506915253 930570681004186749184:852495733433086795767:78074947571099953417 1696685684095675222972:997465331674817142173:699220352420858080799 7437184839821980624260:893917817891187754865:6543267021930792869395 73899252294967232644446:502341234725678398085:73396911060241554246361 635492571436613122254588:249771191177498153915:635242800245435624100673 5925700161824103852575160:324652375413295863395:5925375509448690556711765 1789936140077116147384:1789936140077116147351:33 8576606456390085467939:8576606456390085467648:291 1584719880662477434379:1584719880662477426493:7886 8688829064889303414885:8688829064889303339870:75015 4694164392882910714679:4694164392882910429875:284804 5366697690794780885491:5366697690794778938828:1946663 7579145499969650301583:7579145499969571981945:78319638 4828260696985121808712:4828260696984229733578:892075134 3341734213327120410836:3341734213317143512079:9976898757 1147088609964168101524:1147088609879452218328:84715883196 4327910720368896728347:4327910719446801850613:922094877734 2218655597506488076538:2218655590607882369654:6898605706884 7119488524164303103165:7119488488812331075243:35351972027922 4790201306838792921318:4790200368214597220734:938624195700584 2270936818951032742734:2270929245883198267490:7573067834475244 1228150830705530725430:1228104498958014747014:46331747515978416 4316017866931125242782:4315916567543335923946:101299387789318836 7563387831724437291398:7558063010997766677134:5324820726670614264 5332050029639351562258:5315047196190310638460:17002833449040923798 2313473616475746056506:1318444185297526565952:995029431178219490554 12579850484910989733090:6715914371472445472068:5863936113438544261022 55291820409885242929930:4111966649130116831880:51179853760755126098050 807254098436490534663090:4060650888268892915724:803193447548221641747366 3825686413197638899668698:4362891179467949115856:3821323522018170950552842 63289288480467904289361:63289288480467904289304:57 88294395673367816498962:88294395673367816498229:733 69841732960055071476797:69841732960055071468384:8413 54140984260688785595425:54140984260688785569951:25474 38806440777757273125746:38806440777757272682757:442989 50801909009926824041410:50801909009926816159174:7882236 97748354956044411143556:97748354956044360567253:50576303 27720358992254402337709:27720358992253790240553:612097156 20779576706822868004842:20779576706813437840350:9430164492 93414238854859238421154:93414238854820197381427:39041039727 28307636689013494455694:28307636688265854714444:747639741250 40958918628633069734778:40958918618775462619385:9857607115393 38420857023448155676097:38420856925894337036376:97553818639721 66812100969993286171798:66812100451837178340086:518156107831712 17248612246120251066878:17248604330878722713946:7915241528352932 56600819056463813477862:56600734627580566106622:84428883247371240 85584235577814110239464:85584016226756797276386:219351057312963078 97113165314021111042202:97104664757076221726512:8500556944889315690 19120948556327606310704:19032843758065040760628:88104798262565550076 82989399757950252989910:82658655049299755840790:330744708650497149120 35055011548799306538814:25937775258459376450938:9117236290339930087876 170896756364500780728608:79630397663318903941150:91266358701181876787458 425186594120221797218934:72363750170986252170278:352822843949235545048656 3555107825189790190175710:41633236615281651457418:3513474588574508538718292 862382897072047863921009:862382897072047863920942:67 345365086632616786979767:345365086632616786979602:165 830917411328470856915744:830917411328470856914167:1577 861328817548390238014261:861328817548390237954458:59803 435702441147691313768414:435702441147691312915569:852845 163650798094815139840371:163650798094815134949666:4890705 829972879311295811779051:829972879311295759699527:52079524 905398967434531832122592:905398967434531022182765:809939827 878572102846990460541727:878572102846981788905912:8671635815 966819332280923811663352:966819332280842407656343:81404007009 605914324928324398097611:605914324927487434954496:836963143115 785889551342281975415165:785889551334926098144317:7355877270848 410214032440285411317815:410214032371695638643806:68589772674009 462994403701713292129438:462994403230711797902629:471001494226809 639185052670576603423848:639185048152260312035675:4518316291388173 430192823783563989076964:430192732263357843456993:91520206145619971 590636419681983514483104:590635656249492501482997:763432491013000107 104604525443714477712956:104601987456388095909341:2537987326381803615 728495964727474129217540:728422130387509745109937:73834339964384107603 718387064290636610607582:718248234259751470727877:138830030885139879705 895835071021458774947496:893755587645623388592635:2079483375835386354861 642227582232849785508656:609068028736876094057391:33159553495973691451265 1317662748726089997152312:850894165421275537728675:466768583304814459423637 9016456244276862477292992:889595520322071688083671:8126860723954790789209321 3451989882450493243366519:3451989882450493243366475:44 3676153522703674807813091:3676153522703674807812863:228 9685068642890486639740029:9685068642890486639735688:4341 4613512245353828870908725:4613512245353828870809701:99024 6626765697622463003401482:6626765697622463003196582:204900 1855110671684747852266336:1855110671684747849405083:2861253 9343797076968945800229075:9343797076968945720810273:79418802 1251688292887159515281998:1251688292887159125871506:389410492 9279157541589533142090829:9279157541589530206326647:2935764182 1167245941941150154927837:1167245941941112391056619:37763871218 4912527100968541807763909:4912527100967787448470943:754359292966 4850890418574058845108737:4850890418572250491729576:1808353379161 5810035777828058678571368:5810035777814083249544709:13975429026659 3927232818871900282561562:3927232818092860557052400:779039725509162 9087609817492016097256898:9087609812767633363355124:4724382733901774 5234627964161454177515196:5234627893021110881058360:71140343296456836 9697164870890141615277734:9697164662445358490418398:208444783124859336 5407489659804451402540302:5407486861167440724261314:2798637010678278988 4083216859112673102149466:4083151706985507799310608:65152127165302838858 7219752816094268094417004:7219110157835469406203668:642658258798688213336 7046982686180116257763272:7043625276900062501518290:3357409280053756244982 2567747775486565143895290:2475791768058130306552480:91956007428434837342810 3553601079836557876973542:3250420820556278555501310:303180259280279321472232 11821254511570612874494542:2248566248782537066521058:9572688262788075807973484 Math-BigInt-2.005003/xt/author/lib-arithmetic-binary-_sub.t0000644403072340010010000001560714536617520023205 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 7209; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_sub'); my @data; # Small numbers. for (my $x = 0; $x <= 24 ; ++ $x) { for (my $y = 0; $y <= $x ; ++ $y) { push @data, [ $x, $y, $x - $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context without swap flag. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_sub(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sub() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context without swap flag. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_sub(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sub() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # List context with swap flag. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_sub(\$x, \$y, 1);|; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sub() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($x), "'$test' output arg is not the first input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is($LIB->_str($x), $in0, "'$test' first input arg is unmodified"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); ok($LIB->_str($y) eq $out0 || $LIB->_str($y) eq $in1, "'$test' second input arg has the correct value"); }; } # Scalar context with swap flag. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_sub(\$x, \$y, 1);|; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sub() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($x), "'$test' output arg is not the first input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is($LIB->_str($x), $in0, "'$test' first input arg is unmodified"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); ok($LIB->_str($y) eq $out0 || $LIB->_str($y) eq $in1, "'$test' second input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_lsft.dat0000644403072340010010000106033714505066136024067 0ustar OSPJADomain Users220:0:2:220 220:0:3:220 220:0:4:220 220:0:5:220 220:0:6:220 220:0:7:220 220:0:8:220 220:0:9:220 220:0:10:220 220:0:11:220 220:0:12:220 220:0:13:220 220:0:14:220 220:0:15:220 220:0:16:220 220:0:17:220 220:0:18:220 220:0:19:220 220:0:20:220 220:1:2:440 220:1:3:660 220:1:4:880 220:1:5:1100 220:1:6:1320 220:1:7:1540 220:1:8:1760 220:1:9:1980 220:1:10:2200 220:1:11:2420 220:1:12:2640 220:1:13:2860 220:1:14:3080 220:1:15:3300 220:1:16:3520 220:1:17:3740 220:1:18:3960 220:1:19:4180 220:1:20:4400 220:2:2:880 220:2:3:1980 220:2:4:3520 220:2:5:5500 220:2:6:7920 220:2:7:10780 220:2:8:14080 220:2:9:17820 220:2:10:22000 220:2:11:26620 220:2:12:31680 220:2:13:37180 220:2:14:43120 220:2:15:49500 220:2:16:56320 220:2:17:63580 220:2:18:71280 220:2:19:79420 220:2:20:88000 220:3:2:1760 220:3:3:5940 220:3:4:14080 220:3:5:27500 220:3:6:47520 220:3:7:75460 220:3:8:112640 220:3:9:160380 220:3:10:220000 220:3:11:292820 220:3:12:380160 220:3:13:483340 220:3:14:603680 220:3:15:742500 220:3:16:901120 220:3:17:1080860 220:3:18:1283040 220:3:19:1508980 220:3:20:1760000 220:4:2:3520 220:4:3:17820 220:4:4:56320 220:4:5:137500 220:4:6:285120 220:4:7:528220 220:4:8:901120 220:4:9:1443420 220:4:10:2200000 220:4:11:3221020 220:4:12:4561920 220:4:13:6283420 220:4:14:8451520 220:4:15:11137500 220:4:16:14417920 220:4:17:18374620 220:4:18:23094720 220:4:19:28670620 220:4:20:35200000 220:5:2:7040 220:5:3:53460 220:5:4:225280 220:5:5:687500 220:5:6:1710720 220:5:7:3697540 220:5:8:7208960 220:5:9:12990780 220:5:10:22000000 220:5:11:35431220 220:5:12:54743040 220:5:13:81684460 220:5:14:118321280 220:5:15:167062500 220:5:16:230686720 220:5:17:312368540 220:5:18:415704960 220:5:19:544741780 220:5:20:704000000 220:6:2:14080 220:6:3:160380 220:6:4:901120 220:6:5:3437500 220:6:6:10264320 220:6:7:25882780 220:6:8:57671680 220:6:9:116917020 220:6:10:220000000 220:6:11:389743420 220:6:12:656916480 220:6:13:1061897980 220:6:14:1656497920 220:6:15:2505937500 220:6:16:3690987520 220:6:17:5310265180 220:6:18:7482689280 220:6:19:10350093820 220:6:20:14080000000 220:7:2:28160 220:7:3:481140 220:7:4:3604480 220:7:5:17187500 220:7:6:61585920 220:7:7:181179460 220:7:8:461373440 220:7:9:1052253180 220:7:10:2200000000 220:7:11:4287177620 220:7:12:7882997760 220:7:13:13804673740 220:7:14:23190970880 220:7:15:37589062500 220:7:16:59055800320 220:7:17:90274508060 220:7:18:134688407040 220:7:19:196651782580 220:7:20:281600000000 220:8:2:56320 220:8:3:1443420 220:8:4:14417920 220:8:5:85937500 220:8:6:369515520 220:8:7:1268256220 220:8:8:3690987520 220:8:9:9470278620 220:8:10:22000000000 220:8:11:47158953820 220:8:12:94595973120 220:8:13:179460758620 220:8:14:324673592320 220:8:15:563835937500 220:8:16:944892805120 220:8:17:1534666637020 220:8:18:2424391326720 220:8:19:3736383869020 220:8:20:5632000000000 220:9:2:112640 220:9:3:4330260 220:9:4:57671680 220:9:5:429687500 220:9:6:2217093120 220:9:7:8877793540 220:9:8:29527900160 220:9:9:85232507580 220:9:10:220000000000 220:9:11:518748492020 220:9:12:1135151677440 220:9:13:2332989862060 220:9:14:4545430292480 220:9:15:8457539062500 220:9:16:15118284881920 220:9:17:26089332829340 220:9:18:43639043880960 220:9:19:70991293511380 220:9:20:112640000000000 220:10:2:225280 220:10:3:12990780 220:10:4:230686720 220:10:5:2148437500 220:10:6:13302558720 220:10:7:62144554780 220:10:8:236223201280 220:10:9:767092568220 220:10:10:2200000000000 220:10:11:5706233412220 220:10:12:13621820129280 220:10:13:30328868206780 220:10:14:63636024094720 220:10:15:126863085937500 220:10:16:241892558110720 220:10:17:443518658098780 220:10:18:785502789857280 220:10:19:1348834576716220 220:10:20:2252800000000000 220:11:2:450560 220:11:3:38972340 220:11:4:922746880 220:11:5:10742187500 220:11:6:79815352320 220:11:7:435011883460 220:11:8:1889785610240 220:11:9:6903833113980 220:11:10:22000000000000 220:11:11:62768567534420 220:11:12:163461841551360 220:11:13:394275286688140 220:11:14:890904337326080 220:11:15:1902946289062500 220:11:16:3870280929771520 220:11:17:7539817187679260 220:11:18:14139050217431040 220:11:19:25627856957608180 220:11:20:45056000000000000 220:12:2:901120 220:12:3:116917020 220:12:4:3690987520 220:12:5:53710937500 220:12:6:478892113920 220:12:7:3045083184220 220:12:8:15118284881920 220:12:9:62134498025820 220:12:10:220000000000000 220:12:11:690454242878620 220:12:12:1961542098616320 220:12:13:5125578726945820 220:12:14:12472660722565120 220:12:15:28544194335937500 220:12:16:61924494876344320 220:12:17:128176892190547420 220:12:18:254502903913758720 220:12:19:486929282194555420 220:12:20:901120000000000000 220:13:2:1802240 220:13:3:350751060 220:13:4:14763950080 220:13:5:268554687500 220:13:6:2873352683520 220:13:7:21315582289540 220:13:8:120946279055360 220:13:9:559210482232380 220:13:10:2200000000000000 220:13:11:7594996671664820 220:13:12:23538505183395840 220:13:13:66632523450295660 220:13:14:174617250115911680 220:13:15:428162915039062500 220:13:16:990791918021509120 220:13:17:2179007167239306140 220:13:18:4581052270447656960 220:13:19:9251656361696552980 220:13:20:18022400000000000000 220:14:2:3604480 220:14:3:1052253180 220:14:4:59055800320 220:14:5:1342773437500 220:14:6:17240116101120 220:14:7:149209076026780 220:14:8:967570232442880 220:14:9:5032894340091420 220:14:10:22000000000000000 220:14:11:83544963388313020 220:14:12:282462062200750080 220:14:13:866222804853843580 220:14:14:2444641501622763520 220:14:15:6422443725585937500 220:14:16:15852670688344145920 220:14:17:37043121843068204380 220:14:18:82458940868057825280 220:14:19:175781470872234506620 220:14:20:360448000000000000000 220:15:2:7208960 220:15:3:3156759540 220:15:4:236223201280 220:15:5:6713867187500 220:15:6:103440696606720 220:15:7:1044463532187460 220:15:8:7740561859543040 220:15:9:45296049060822780 220:15:10:220000000000000000 220:15:11:918994597271443220 220:15:12:3389544746409000960 220:15:13:11260896463099966540 220:15:14:34224981022718689280 220:15:15:96336655883789062500 220:15:16:253642731013506334720 220:15:17:629733071332159474460 220:15:18:1484260935625040855040 220:15:19:3339847946572455625780 220:15:20:7208960000000000000000 220:16:2:14417920 220:16:3:9470278620 220:16:4:944892805120 220:16:5:33569335937500 220:16:6:620644179640320 220:16:7:7311244725312220 220:16:8:61924494876344320 220:16:9:407664441547405020 220:16:10:2200000000000000000 220:16:11:10108940569985875420 220:16:12:40674536956908011520 220:16:13:146391654020299565020 220:16:14:479149734318061649920 220:16:15:1445049838256835937500 220:16:16:4058283696216101355520 220:16:17:10705462212646711065820 220:16:18:26716696841250735390720 220:16:19:63457110984876656889820 220:16:20:144179200000000000000000 220:17:2:28835840 220:17:3:28410835860 220:17:4:3779571220480 220:17:5:167846679687500 220:17:6:3723865077841920 220:17:7:51178713077185540 220:17:8:495395959010754560 220:17:9:3668979973926645180 220:17:10:22000000000000000000 220:17:11:111198346269844629620 220:17:12:488094443482896138240 220:17:13:1903091502263894345260 220:17:14:6708096280452863098880 220:17:15:21675747573852539062500 220:17:16:64932539139457621688320 220:17:17:181992857614994088118940 220:17:18:480900543142513237032960 220:17:19:1205685108712656480906580 220:17:20:2883584000000000000000000 220:18:2:57671680 220:18:3:85232507580 220:18:4:15118284881920 220:18:5:839233398437500 220:18:6:22343190467051520 220:18:7:358250991540298780 220:18:8:3963167672086036480 220:18:9:33020819765339806620 220:18:10:220000000000000000000 220:18:11:1223181808968290925820 220:18:12:5857133321794753658880 220:18:13:24740189529430626488380 220:18:14:93913347926340083384320 220:18:15:325136213607788085937500 220:18:16:1038920626231321947013120 220:18:17:3093878579454899498021980 220:18:18:8656209776565238266593280 220:18:19:22908017065540473137225020 220:18:20:57671680000000000000000000 220:19:2:115343360 220:19:3:255697522740 220:19:4:60473139527680 220:19:5:4196166992187500 220:19:6:134059142802309120 220:19:7:2507756940782091460 220:19:8:31705341376688291840 220:19:9:297187377888058259580 220:19:10:2200000000000000000000 220:19:11:13454999898651200184020 220:19:12:70285599861537043906560 220:19:13:321622463882598144348940 220:19:14:1314786870968761167380480 220:19:15:4877043204116821289062500 220:19:16:16622730019701151152209920 220:19:17:52595935850733291466373660 220:19:18:155811775978174288798679040 220:19:19:435252324245268989607275380 220:19:20:1153433600000000000000000000 220:20:2:230686720 220:20:3:767092568220 220:20:4:241892558110720 220:20:5:20980834960937500 220:20:6:804354856813854720 220:20:7:17554298585474640220 220:20:8:253642731013506334720 220:20:9:2674686400992524336220 220:20:10:22000000000000000000000 220:20:11:148004998885163202024220 220:20:12:843427198338444526878720 220:20:13:4181092030473775876536220 220:20:14:18407016193562656343326720 220:20:15:73155648061752319335937500 220:20:16:265963680315218418435358720 220:20:17:894130909462465954928352220 220:20:18:2804611967607137198376222720 220:20:19:8269794160660110802538232220 220:20:20:23068672000000000000000000000 8484:0:2:8484 8484:0:3:8484 8484:0:4:8484 8484:0:5:8484 8484:0:6:8484 8484:0:7:8484 8484:0:8:8484 8484:0:9:8484 8484:0:10:8484 8484:0:11:8484 8484:0:12:8484 8484:0:13:8484 8484:0:14:8484 8484:0:15:8484 8484:0:16:8484 8484:0:17:8484 8484:0:18:8484 8484:0:19:8484 8484:0:20:8484 8484:1:2:16968 8484:1:3:25452 8484:1:4:33936 8484:1:5:42420 8484:1:6:50904 8484:1:7:59388 8484:1:8:67872 8484:1:9:76356 8484:1:10:84840 8484:1:11:93324 8484:1:12:101808 8484:1:13:110292 8484:1:14:118776 8484:1:15:127260 8484:1:16:135744 8484:1:17:144228 8484:1:18:152712 8484:1:19:161196 8484:1:20:169680 8484:2:2:33936 8484:2:3:76356 8484:2:4:135744 8484:2:5:212100 8484:2:6:305424 8484:2:7:415716 8484:2:8:542976 8484:2:9:687204 8484:2:10:848400 8484:2:11:1026564 8484:2:12:1221696 8484:2:13:1433796 8484:2:14:1662864 8484:2:15:1908900 8484:2:16:2171904 8484:2:17:2451876 8484:2:18:2748816 8484:2:19:3062724 8484:2:20:3393600 8484:3:2:67872 8484:3:3:229068 8484:3:4:542976 8484:3:5:1060500 8484:3:6:1832544 8484:3:7:2910012 8484:3:8:4343808 8484:3:9:6184836 8484:3:10:8484000 8484:3:11:11292204 8484:3:12:14660352 8484:3:13:18639348 8484:3:14:23280096 8484:3:15:28633500 8484:3:16:34750464 8484:3:17:41681892 8484:3:18:49478688 8484:3:19:58191756 8484:3:20:67872000 8484:4:2:135744 8484:4:3:687204 8484:4:4:2171904 8484:4:5:5302500 8484:4:6:10995264 8484:4:7:20370084 8484:4:8:34750464 8484:4:9:55663524 8484:4:10:84840000 8484:4:11:124214244 8484:4:12:175924224 8484:4:13:242311524 8484:4:14:325921344 8484:4:15:429502500 8484:4:16:556007424 8484:4:17:708592164 8484:4:18:890616384 8484:4:19:1105643364 8484:4:20:1357440000 8484:5:2:271488 8484:5:3:2061612 8484:5:4:8687616 8484:5:5:26512500 8484:5:6:65971584 8484:5:7:142590588 8484:5:8:278003712 8484:5:9:500971716 8484:5:10:848400000 8484:5:11:1366356684 8484:5:12:2111090688 8484:5:13:3150049812 8484:5:14:4562898816 8484:5:15:6442537500 8484:5:16:8896118784 8484:5:17:12046066788 8484:5:18:16031094912 8484:5:19:21007223916 8484:5:20:27148800000 8484:6:2:542976 8484:6:3:6184836 8484:6:4:34750464 8484:6:5:132562500 8484:6:6:395829504 8484:6:7:998134116 8484:6:8:2224029696 8484:6:9:4508745444 8484:6:10:8484000000 8484:6:11:15029923524 8484:6:12:25333088256 8484:6:13:40950647556 8484:6:14:63880583424 8484:6:15:96638062500 8484:6:16:142337900544 8484:6:17:204783135396 8484:6:18:288559708416 8484:6:19:399137254404 8484:6:20:542976000000 8484:7:2:1085952 8484:7:3:18554508 8484:7:4:139001856 8484:7:5:662812500 8484:7:6:2374977024 8484:7:7:6986938812 8484:7:8:17792237568 8484:7:9:40578708996 8484:7:10:84840000000 8484:7:11:165329158764 8484:7:12:303997059072 8484:7:13:532358418228 8484:7:14:894328167936 8484:7:15:1449570937500 8484:7:16:2277406408704 8484:7:17:3481313301732 8484:7:18:5194074751488 8484:7:19:7583607833676 8484:7:20:10859520000000 8484:8:2:2171904 8484:8:3:55663524 8484:8:4:556007424 8484:8:5:3314062500 8484:8:6:14249862144 8484:8:7:48908571684 8484:8:8:142337900544 8484:8:9:365208380964 8484:8:10:848400000000 8484:8:11:1818620746404 8484:8:12:3647964708864 8484:8:13:6920659436964 8484:8:14:12520594351104 8484:8:15:21743564062500 8484:8:16:36438502539264 8484:8:17:59182326129444 8484:8:18:93493345526784 8484:8:19:144088548839844 8484:8:20:217190400000000 8484:9:2:4343808 8484:9:3:166990572 8484:9:4:2224029696 8484:9:5:16570312500 8484:9:6:85499172864 8484:9:7:342360001788 8484:9:8:1138703204352 8484:9:9:3286875428676 8484:9:10:8484000000000 8484:9:11:20004828210444 8484:9:12:43775576506368 8484:9:13:89968572680532 8484:9:14:175288320915456 8484:9:15:326153460937500 8484:9:16:583016040628224 8484:9:17:1006099544200548 8484:9:18:1682880219482112 8484:9:19:2737682427957036 8484:9:20:4343808000000000 8484:10:2:8687616 8484:10:3:500971716 8484:10:4:8896118784 8484:10:5:82851562500 8484:10:6:512995037184 8484:10:7:2396520012516 8484:10:8:9109625634816 8484:10:9:29581878858084 8484:10:10:84840000000000 8484:10:11:220053110314884 8484:10:12:525306918076416 8484:10:13:1169591444846916 8484:10:14:2454036492816384 8484:10:15:4892301914062500 8484:10:16:9328256650051584 8484:10:17:17103692251409316 8484:10:18:30291843950678016 8484:10:19:52015966131183684 8484:10:20:86876160000000000 8484:11:2:17375232 8484:11:3:1502915148 8484:11:4:35584475136 8484:11:5:414257812500 8484:11:6:3077970223104 8484:11:7:16775640087612 8484:11:8:72877005078528 8484:11:9:266236909722756 8484:11:10:848400000000000 8484:11:11:2420584213463724 8484:11:12:6303683016916992 8484:11:13:15204688783009908 8484:11:14:34356510899429376 8484:11:15:73384528710937500 8484:11:16:149252106400825344 8484:11:17:290762768273958372 8484:11:18:545253191112204288 8484:11:19:988303356492489996 8484:11:20:1737523200000000000 8484:12:2:34750464 8484:12:3:4508745444 8484:12:4:142337900544 8484:12:5:2071289062500 8484:12:6:18467821338624 8484:12:7:117429480613284 8484:12:8:583016040628224 8484:12:9:2396132187504804 8484:12:10:8484000000000000 8484:12:11:26626426348100964 8484:12:12:75644196203003904 8484:12:13:197660954179128804 8484:12:14:480991152592011264 8484:12:15:1100767930664062500 8484:12:16:2388033702413205504 8484:12:17:4942967060657292324 8484:12:18:9814557440019677184 8484:12:19:18777763773357309924 8484:12:20:34750464000000000000 8484:13:2:69500928 8484:13:3:13526236332 8484:13:4:569351602176 8484:13:5:10356445312500 8484:13:6:110806928031744 8484:13:7:822006364292988 8484:13:8:4664128325025792 8484:13:9:21565189687543236 8484:13:10:84840000000000000 8484:13:11:292890689829110604 8484:13:12:907730354436046848 8484:13:13:2569592404328674452 8484:13:14:6733876136288157696 8484:13:15:16511518959960937500 8484:13:16:38208539238611288064 8484:13:17:84030440031173969508 8484:13:18:176662033920354189312 8484:13:19:356777511693788888556 8484:13:20:695009280000000000000 8484:14:2:139001856 8484:14:3:40578708996 8484:14:4:2277406408704 8484:14:5:51782226562500 8484:14:6:664841568190464 8484:14:7:5754044550050916 8484:14:8:37313026600206336 8484:14:9:194086707187889124 8484:14:10:848400000000000000 8484:14:11:3221797588120216644 8484:14:12:10892764253232562176 8484:14:13:33404701256272767876 8484:14:14:94274265908034207744 8484:14:15:247672784399414062500 8484:14:16:611336627817780609024 8484:14:17:1428517480529957481636 8484:14:18:3179916610566375407616 8484:14:19:6778772722181988882564 8484:14:20:13900185600000000000000 8484:15:2:278003712 8484:15:3:121736126988 8484:15:4:9109625634816 8484:15:5:258911132812500 8484:15:6:3989049409142784 8484:15:7:40278311850356412 8484:15:8:298504212801650688 8484:15:9:1746780364691002116 8484:15:10:8484000000000000000 8484:15:11:35439773469322383084 8484:15:12:130713171038790746112 8484:15:13:434261116331545982388 8484:15:14:1319839722712478908416 8484:15:15:3715091765991210937500 8484:15:16:9781386045084489744384 8484:15:17:24284797169009277187812 8484:15:18:57238498990194757337088 8484:15:19:128796681721457788768716 8484:15:20:278003712000000000000000 8484:16:2:556007424 8484:16:3:365208380964 8484:16:4:36438502539264 8484:16:5:1294555664062500 8484:16:6:23934296454856704 8484:16:7:281948182952494884 8484:16:8:2388033702413205504 8484:16:9:15721023282219019044 8484:16:10:84840000000000000000 8484:16:11:389837508162546213924 8484:16:12:1568558052465488953344 8484:16:13:5645394512310097771044 8484:16:14:18477756117974704717824 8484:16:15:55726376489868164062500 8484:16:16:156502176721351835910144 8484:16:17:412841551873157712192804 8484:16:18:1030292981823505632067584 8484:16:19:2447136952707697986605604 8484:16:20:5560074240000000000000000 8484:17:2:1112014848 8484:17:3:1095625142892 8484:17:4:145754010157056 8484:17:5:6472778320312500 8484:17:6:143605778729140224 8484:17:7:1973637280667464188 8484:17:8:19104269619305644032 8484:17:9:141489209539971171396 8484:17:10:848400000000000000000 8484:17:11:4288212589788008353164 8484:17:12:18822696629585867440128 8484:17:13:73390128660031271023572 8484:17:14:258688585651645866049536 8484:17:15:835895647348022460937500 8484:17:16:2504034827541629374562304 8484:17:17:7018306381843681107277668 8484:17:18:18545273672823101377216512 8484:17:19:46495602101446261745506476 8484:17:20:111201484800000000000000000 8484:18:2:2224029696 8484:18:3:3286875428676 8484:18:4:583016040628224 8484:18:5:32363891601562500 8484:18:6:861634672374841344 8484:18:7:13815460964672249316 8484:18:8:152834156954445152256 8484:18:9:1273402885859740542564 8484:18:10:8484000000000000000000 8484:18:11:47170338487668091884804 8484:18:12:225872359555030409281536 8484:18:13:954071672580406523306436 8484:18:14:3621640199123042124693504 8484:18:15:12538434710220336914062500 8484:18:16:40064557240666069992996864 8484:18:17:119311208491342578823720356 8484:18:18:333814926110815824789897216 8484:18:19:883416439927478973164623044 8484:18:20:2224029696000000000000000000 8484:19:2:4448059392 8484:19:3:9860626286028 8484:19:4:2332064162512896 8484:19:5:161819458007812500 8484:19:6:5169808034249048064 8484:19:7:96708226752705745212 8484:19:8:1222673255635561218048 8484:19:9:11460625972737664883076 8484:19:10:84840000000000000000000 8484:19:11:518873723364349010732844 8484:19:12:2710468314660364911378432 8484:19:13:12402931743545284802983668 8484:19:14:50702962787722589745709056 8484:19:15:188076520653305053710937500 8484:19:16:641032915850657119887949824 8484:19:17:2028290544352823840003246052 8484:19:18:6008668669994684846218149888 8484:19:19:16784912358622100490127837836 8484:19:20:44480593920000000000000000000 8484:20:2:8896118784 8484:20:3:29581878858084 8484:20:4:9328256650051584 8484:20:5:809097290039062500 8484:20:6:31018848205494288384 8484:20:7:676957587268940216484 8484:20:8:9781386045084489744384 8484:20:9:103145633754638983947684 8484:20:10:848400000000000000000000 8484:20:11:5707610957007839118061284 8484:20:12:32525619775924378936541184 8484:20:13:161238112666088702438787684 8484:20:14:709841479028116256439926784 8484:20:15:2821147809799575805664062500 8484:20:16:10256526653610513918207197184 8484:20:17:34480939253998005280055182884 8484:20:18:108156036059904327231926697984 8484:20:19:318913334813819909312428918884 8484:20:20:889611878400000000000000000000 27182:0:2:27182 27182:0:3:27182 27182:0:4:27182 27182:0:5:27182 27182:0:6:27182 27182:0:7:27182 27182:0:8:27182 27182:0:9:27182 27182:0:10:27182 27182:0:11:27182 27182:0:12:27182 27182:0:13:27182 27182:0:14:27182 27182:0:15:27182 27182:0:16:27182 27182:0:17:27182 27182:0:18:27182 27182:0:19:27182 27182:0:20:27182 27182:1:2:54364 27182:1:3:81546 27182:1:4:108728 27182:1:5:135910 27182:1:6:163092 27182:1:7:190274 27182:1:8:217456 27182:1:9:244638 27182:1:10:271820 27182:1:11:299002 27182:1:12:326184 27182:1:13:353366 27182:1:14:380548 27182:1:15:407730 27182:1:16:434912 27182:1:17:462094 27182:1:18:489276 27182:1:19:516458 27182:1:20:543640 27182:2:2:108728 27182:2:3:244638 27182:2:4:434912 27182:2:5:679550 27182:2:6:978552 27182:2:7:1331918 27182:2:8:1739648 27182:2:9:2201742 27182:2:10:2718200 27182:2:11:3289022 27182:2:12:3914208 27182:2:13:4593758 27182:2:14:5327672 27182:2:15:6115950 27182:2:16:6958592 27182:2:17:7855598 27182:2:18:8806968 27182:2:19:9812702 27182:2:20:10872800 27182:3:2:217456 27182:3:3:733914 27182:3:4:1739648 27182:3:5:3397750 27182:3:6:5871312 27182:3:7:9323426 27182:3:8:13917184 27182:3:9:19815678 27182:3:10:27182000 27182:3:11:36179242 27182:3:12:46970496 27182:3:13:59718854 27182:3:14:74587408 27182:3:15:91739250 27182:3:16:111337472 27182:3:17:133545166 27182:3:18:158525424 27182:3:19:186441338 27182:3:20:217456000 27182:4:2:434912 27182:4:3:2201742 27182:4:4:6958592 27182:4:5:16988750 27182:4:6:35227872 27182:4:7:65263982 27182:4:8:111337472 27182:4:9:178341102 27182:4:10:271820000 27182:4:11:397971662 27182:4:12:563645952 27182:4:13:776345102 27182:4:14:1044223712 27182:4:15:1376088750 27182:4:16:1781399552 27182:4:17:2270267822 27182:4:18:2853457632 27182:4:19:3542385422 27182:4:20:4349120000 27182:5:2:869824 27182:5:3:6605226 27182:5:4:27834368 27182:5:5:84943750 27182:5:6:211367232 27182:5:7:456847874 27182:5:8:890699776 27182:5:9:1605069918 27182:5:10:2718200000 27182:5:11:4377688282 27182:5:12:6763751424 27182:5:13:10092486326 27182:5:14:14619131968 27182:5:15:20641331250 27182:5:16:28502392832 27182:5:17:38594552974 27182:5:18:51362237376 27182:5:19:67305323018 27182:5:20:86982400000 27182:6:2:1739648 27182:6:3:19815678 27182:6:4:111337472 27182:6:5:424718750 27182:6:6:1268203392 27182:6:7:3197935118 27182:6:8:7125598208 27182:6:9:14445629262 27182:6:10:27182000000 27182:6:11:48154571102 27182:6:12:81165017088 27182:6:13:131202322238 27182:6:14:204667847552 27182:6:15:309619968750 27182:6:16:456038285312 27182:6:17:656107400558 27182:6:18:924520272768 27182:6:19:1278801137342 27182:6:20:1739648000000 27182:7:2:3479296 27182:7:3:59447034 27182:7:4:445349888 27182:7:5:2123593750 27182:7:6:7609220352 27182:7:7:22385545826 27182:7:8:57004785664 27182:7:9:130010663358 27182:7:10:271820000000 27182:7:11:529700282122 27182:7:12:973980205056 27182:7:13:1705630189094 27182:7:14:2865349865728 27182:7:15:4644299531250 27182:7:16:7296612564992 27182:7:17:11153825809486 27182:7:18:16641364909824 27182:7:19:24297221609498 27182:7:20:34792960000000 27182:8:2:6958592 27182:8:3:178341102 27182:8:4:1781399552 27182:8:5:10617968750 27182:8:6:45655322112 27182:8:7:156698820782 27182:8:8:456038285312 27182:8:9:1170095970222 27182:8:10:2718200000000 27182:8:11:5826703103342 27182:8:12:11687762460672 27182:8:13:22173192458222 27182:8:14:40114898120192 27182:8:15:69664492968750 27182:8:16:116745801039872 27182:8:17:189615038761262 27182:8:18:299544568376832 27182:8:19:461647210580462 27182:8:20:695859200000000 27182:9:2:13917184 27182:9:3:535023306 27182:9:4:7125598208 27182:9:5:53089843750 27182:9:6:273931932672 27182:9:7:1096891745474 27182:9:8:3648306282496 27182:9:9:10530863731998 27182:9:10:27182000000000 27182:9:11:64093734136762 27182:9:12:140253149528064 27182:9:13:288251501956886 27182:9:14:561608573682688 27182:9:15:1044967394531250 27182:9:16:1867932816637952 27182:9:17:3223455658941454 27182:9:18:5391802230782976 27182:9:19:8771297001028778 27182:9:20:13917184000000000 27182:10:2:27834368 27182:10:3:1605069918 27182:10:4:28502392832 27182:10:5:265449218750 27182:10:6:1643591596032 27182:10:7:7678242218318 27182:10:8:29186450259968 27182:10:9:94777773587982 27182:10:10:271820000000000 27182:10:11:705031075504382 27182:10:12:1683037794336768 27182:10:13:3747269525439518 27182:10:14:7862520031557632 27182:10:15:15674510917968750 27182:10:16:29886925066207232 27182:10:17:54798746202004718 27182:10:18:97052440154093568 27182:10:19:166654643019546782 27182:10:20:278343680000000000 27182:11:2:55668736 27182:11:3:4815209754 27182:11:4:114009571328 27182:11:5:1327246093750 27182:11:6:9861549576192 27182:11:7:53747695528226 27182:11:8:233491602079744 27182:11:9:852999962291838 27182:11:10:2718200000000000 27182:11:11:7755341830548202 27182:11:12:20196453532041216 27182:11:13:48714503830713734 27182:11:14:110075280441806848 27182:11:15:235117663769531250 27182:11:16:478190801059315712 27182:11:17:931578685434080206 27182:11:18:1746943922773684224 27182:11:19:3166438217371388858 27182:11:20:5566873600000000000 27182:12:2:111337472 27182:12:3:14445629262 27182:12:4:456038285312 27182:12:5:6636230468750 27182:12:6:59169297457152 27182:12:7:376233868697582 27182:12:8:1867932816637952 27182:12:9:7676999660626542 27182:12:10:27182000000000000 27182:12:11:85308760136030222 27182:12:12:242357442384494592 27182:12:13:633288549799278542 27182:12:14:1541053926185295872 27182:12:15:3526764956542968750 27182:12:16:7651052816949051392 27182:12:17:15836837652379363502 27182:12:18:31444990609926316032 27182:12:19:60162326130056388302 27182:12:20:111337472000000000000 27182:13:2:222674944 27182:13:3:43336887786 27182:13:4:1824153141248 27182:13:5:33181152343750 27182:13:6:355015784742912 27182:13:7:2633637080883074 27182:13:8:14943462533103616 27182:13:9:69092996945638878 27182:13:10:271820000000000000 27182:13:11:938396361496332442 27182:13:12:2908289308613935104 27182:13:13:8232751147390621046 27182:13:14:21574754966594142208 27182:13:15:52901474348144531250 27182:13:16:122416845071184822272 27182:13:17:269226240090449179534 27182:13:18:566009830978673688576 27182:13:19:1143084196471071377738 27182:13:20:2226749440000000000000 27182:14:2:445349888 27182:14:3:130010663358 27182:14:4:7296612564992 27182:14:5:165905761718750 27182:14:6:2130094708457472 27182:14:7:18435459566181518 27182:14:8:119547700264828928 27182:14:9:621836972510749902 27182:14:10:2718200000000000000 27182:14:11:10322359976459656862 27182:14:12:34899471703367221248 27182:14:13:107025764916078073598 27182:14:14:302046569532317990912 27182:14:15:793522115222167968750 27182:14:16:1958669521138957156352 27182:14:17:4576846081537636052078 27182:14:18:10188176957616126394368 27182:14:19:21718599732950356177022 27182:14:20:44534988800000000000000 27182:15:2:890699776 27182:15:3:390031990074 27182:15:4:29186450259968 27182:15:5:829528808593750 27182:15:6:12780568250744832 27182:15:7:129048216963270626 27182:15:8:956381602118631424 27182:15:9:5596532752596749118 27182:15:10:27182000000000000000 27182:15:11:113545959741056225482 27182:15:12:418793660440406654976 27182:15:13:1391334943909014956774 27182:15:14:4228651973452451872768 27182:15:15:11902831728332519531250 27182:15:16:31338712338223314501632 27182:15:17:77806383386139812885326 27182:15:18:183387185237090275098624 27182:15:19:412653394926056767363418 27182:15:20:890699776000000000000000 27182:16:2:1781399552 27182:16:3:1170095970222 27182:16:4:116745801039872 27182:16:5:4147644042968750 27182:16:6:76683409504468992 27182:16:7:903337518742894382 27182:16:8:7651052816949051392 27182:16:9:50368794773370742062 27182:16:10:271820000000000000000 27182:16:11:1249005557151618480302 27182:16:12:5025523925284879859712 27182:16:13:18087354270817194438062 27182:16:14:59201127628334326218752 27182:16:15:178542475924987792968750 27182:16:16:501419397411573032026112 27182:16:17:1322708517564376819050542 27182:16:18:3300969334267624951775232 27182:16:19:7840414503595078579904942 27182:16:20:17813995520000000000000000 27182:17:2:3562799104 27182:17:3:3510287910666 27182:17:4:466983204159488 27182:17:5:20738220214843750 27182:17:6:460100457026813952 27182:17:7:6323362631200260674 27182:17:8:61208422535592411136 27182:17:9:453319152960336678558 27182:17:10:2718200000000000000000 27182:17:11:13739061128667803283322 27182:17:12:60306287103418558316544 27182:17:13:235135605520623527694806 27182:17:14:828815786796680567062528 27182:17:15:2678137138874816894531250 27182:17:16:8022710358585168512417792 27182:17:17:22486044798594405923859214 27182:17:18:59417448016817249131954176 27182:17:19:148967875568306493018193898 27182:17:20:356279910400000000000000000 27182:18:2:7125598208 27182:18:3:10530863731998 27182:18:4:1867932816637952 27182:18:5:103691101074218750 27182:18:6:2760602742160883712 27182:18:7:44263538418401824718 27182:18:8:489667380284739289088 27182:18:9:4079872376643030107022 27182:18:10:27182000000000000000000 27182:18:11:151129672415345836116542 27182:18:12:723675445241022699798528 27182:18:13:3056762871768105860032478 27182:18:14:11603421015153527938875392 27182:18:15:40172057083122253417968750 27182:18:16:128363365737362696198684672 27182:18:17:382262761576104900705606638 27182:18:18:1069514064302710484375175168 27182:18:19:2830389635797823367345684062 27182:18:20:7125598208000000000000000000 27182:19:2:14251196416 27182:19:3:31592591195994 27182:19:4:7471731266551808 27182:19:5:518455505371093750 27182:19:6:16563616452965302272 27182:19:7:309844768928812773026 27182:19:8:3917339042277914312704 27182:19:9:36718851389787270963198 27182:19:10:271820000000000000000000 27182:19:11:1662426396568804197281962 27182:19:12:8684105342892272397582336 27182:19:13:39737917332985376180422214 27182:19:14:162447894212149391144255488 27182:19:15:602580856246833801269531250 27182:19:16:2053813851797803139178954752 27182:19:17:6498466946793783311995312846 27182:19:18:19251253157448788718753153024 27182:19:19:53777403080158643979567997178 27182:19:20:142511964160000000000000000000 27182:20:2:28502392832 27182:20:3:94777773587982 27182:20:4:29886925066207232 27182:20:5:2592277526855468750 27182:20:6:99381698717791813632 27182:20:7:2168913382501689411182 27182:20:8:31338712338223314501632 27182:20:9:330469662508085438668782 27182:20:10:2718200000000000000000000 27182:20:11:18286690362256846170101582 27182:20:12:104209264114707268770988032 27182:20:13:516592925328809890345488782 27182:20:14:2274270518970091476019576832 27182:20:15:9038712843702507019042968750 27182:20:16:32861021628764850226863276032 27182:20:17:110473938095494316303920318382 27182:20:18:346522556834078196937556754432 27182:20:19:1021770658523014235611791946382 27182:20:20:2850239283200000000000000000000 813792:0:2:813792 813792:0:3:813792 813792:0:4:813792 813792:0:5:813792 813792:0:6:813792 813792:0:7:813792 813792:0:8:813792 813792:0:9:813792 813792:0:10:813792 813792:0:11:813792 813792:0:12:813792 813792:0:13:813792 813792:0:14:813792 813792:0:15:813792 813792:0:16:813792 813792:0:17:813792 813792:0:18:813792 813792:0:19:813792 813792:0:20:813792 813792:1:2:1627584 813792:1:3:2441376 813792:1:4:3255168 813792:1:5:4068960 813792:1:6:4882752 813792:1:7:5696544 813792:1:8:6510336 813792:1:9:7324128 813792:1:10:8137920 813792:1:11:8951712 813792:1:12:9765504 813792:1:13:10579296 813792:1:14:11393088 813792:1:15:12206880 813792:1:16:13020672 813792:1:17:13834464 813792:1:18:14648256 813792:1:19:15462048 813792:1:20:16275840 813792:2:2:3255168 813792:2:3:7324128 813792:2:4:13020672 813792:2:5:20344800 813792:2:6:29296512 813792:2:7:39875808 813792:2:8:52082688 813792:2:9:65917152 813792:2:10:81379200 813792:2:11:98468832 813792:2:12:117186048 813792:2:13:137530848 813792:2:14:159503232 813792:2:15:183103200 813792:2:16:208330752 813792:2:17:235185888 813792:2:18:263668608 813792:2:19:293778912 813792:2:20:325516800 813792:3:2:6510336 813792:3:3:21972384 813792:3:4:52082688 813792:3:5:101724000 813792:3:6:175779072 813792:3:7:279130656 813792:3:8:416661504 813792:3:9:593254368 813792:3:10:813792000 813792:3:11:1083157152 813792:3:12:1406232576 813792:3:13:1787901024 813792:3:14:2233045248 813792:3:15:2746548000 813792:3:16:3333292032 813792:3:17:3998160096 813792:3:18:4746034944 813792:3:19:5581799328 813792:3:20:6510336000 813792:4:2:13020672 813792:4:3:65917152 813792:4:4:208330752 813792:4:5:508620000 813792:4:6:1054674432 813792:4:7:1953914592 813792:4:8:3333292032 813792:4:9:5339289312 813792:4:10:8137920000 813792:4:11:11914728672 813792:4:12:16874790912 813792:4:13:23242713312 813792:4:14:31262633472 813792:4:15:41198220000 813792:4:16:53332672512 813792:4:17:67968721632 813792:4:18:85428628992 813792:4:19:106054187232 813792:4:20:130206720000 813792:5:2:26041344 813792:5:3:197751456 813792:5:4:833323008 813792:5:5:2543100000 813792:5:6:6328046592 813792:5:7:13677402144 813792:5:8:26666336256 813792:5:9:48053603808 813792:5:10:81379200000 813792:5:11:131062015392 813792:5:12:202497490944 813792:5:13:302155273056 813792:5:14:437676868608 813792:5:15:617973300000 813792:5:16:853322760192 813792:5:17:1155468267744 813792:5:18:1537715321856 813792:5:19:2015029557408 813792:5:20:2604134400000 813792:6:2:52082688 813792:6:3:593254368 813792:6:4:3333292032 813792:6:5:12715500000 813792:6:6:37968279552 813792:6:7:95741815008 813792:6:8:213330690048 813792:6:9:432482434272 813792:6:10:813792000000 813792:6:11:1441682169312 813792:6:12:2429969891328 813792:6:13:3928018549728 813792:6:14:6127476160512 813792:6:15:9269599500000 813792:6:16:13653164163072 813792:6:17:19642960551648 813792:6:18:27678875793408 813792:6:19:38285561590752 813792:6:20:52082688000000 813792:7:2:104165376 813792:7:3:1779763104 813792:7:4:13333168128 813792:7:5:63577500000 813792:7:6:227809677312 813792:7:7:670192705056 813792:7:8:1706645520384 813792:7:9:3892341908448 813792:7:10:8137920000000 813792:7:11:15858503862432 813792:7:12:29159638695936 813792:7:13:51064241146464 813792:7:14:85784666247168 813792:7:15:139043992500000 813792:7:16:218450626609152 813792:7:17:333930329378016 813792:7:18:498219764281344 813792:7:19:727425670224288 813792:7:20:1041653760000000 813792:8:2:208330752 813792:8:3:5339289312 813792:8:4:53332672512 813792:8:5:317887500000 813792:8:6:1366858063872 813792:8:7:4691348935392 813792:8:8:13653164163072 813792:8:9:35031077176032 813792:8:10:81379200000000 813792:8:11:174443542486752 813792:8:12:349915664351232 813792:8:13:663835134904032 813792:8:14:1200985327460352 813792:8:15:2085659887500000 813792:8:16:3495210025746432 813792:8:17:5676815599426272 813792:8:18:8967955757064192 813792:8:19:13821087734261472 813792:8:20:20833075200000000 813792:9:2:416661504 813792:9:3:16017867936 813792:9:4:213330690048 813792:9:5:1589437500000 813792:9:6:8201148383232 813792:9:7:32839442547744 813792:9:8:109225313304576 813792:9:9:315279694584288 813792:9:10:813792000000000 813792:9:11:1918878967354272 813792:9:12:4198987972214784 813792:9:13:8629856753752416 813792:9:14:16813794584444928 813792:9:15:31284898312500000 813792:9:16:55923360411942912 813792:9:17:96505865190246624 813792:9:18:161423203627155456 813792:9:19:262600666950967968 813792:9:20:416661504000000000 813792:10:2:833323008 813792:10:3:48053603808 813792:10:4:853322760192 813792:10:5:7947187500000 813792:10:6:49206890299392 813792:10:7:229876097834208 813792:10:8:873802506436608 813792:10:9:2837517251258592 813792:10:10:8137920000000000 813792:10:11:21107668640896992 813792:10:12:50387855666577408 813792:10:13:112188137798781408 813792:10:14:235393124182228992 813792:10:15:469273474687500000 813792:10:16:894773766591086592 813792:10:17:1640599708234192608 813792:10:18:2905617665288798208 813792:10:19:4989412672068391392 813792:10:20:8333230080000000000 813792:11:2:1666646016 813792:11:3:144160811424 813792:11:4:3413291040768 813792:11:5:39735937500000 813792:11:6:295241341796352 813792:11:7:1609132684839456 813792:11:8:6990420051492864 813792:11:9:25537655261327328 813792:11:10:81379200000000000 813792:11:11:232184355049866912 813792:11:12:604654267998928896 813792:11:13:1458445791384158304 813792:11:14:3295503738551205888 813792:11:15:7039102120312500000 813792:11:16:14316380265457385472 813792:11:17:27890195039981274336 813792:11:18:52301117975198367744 813792:11:19:94798840769299436448 813792:11:20:166664601600000000000 813792:12:2:3333292032 813792:12:3:432482434272 813792:12:4:13653164163072 813792:12:5:198679687500000 813792:12:6:1771448050778112 813792:12:7:11263928793876192 813792:12:8:55923360411942912 813792:12:9:229838897351945952 813792:12:10:813792000000000000 813792:12:11:2554027905548536032 813792:12:12:7255851215987146752 813792:12:13:18959795287994057952 813792:12:14:46137052339716882432 813792:12:15:105586531804687500000 813792:12:16:229062084247318167552 813792:12:17:474133315679681663712 813792:12:18:941420123553570619392 813792:12:19:1801177974616689292512 813792:12:20:3333292032000000000000 813792:13:2:6666584064 813792:13:3:1297447302816 813792:13:4:54612656652288 813792:13:5:993398437500000 813792:13:6:10628688304668672 813792:13:7:78847501557133344 813792:13:8:447386883295543296 813792:13:9:2068550076167513568 813792:13:10:8137920000000000000 813792:13:11:28094306961033896352 813792:13:12:87070214591845761024 813792:13:13:246477338743922753376 813792:13:14:645918732756036354048 813792:13:15:1583797977070312500000 813792:13:16:3664993347957090680832 813792:13:17:8060266366554588283104 813792:13:18:16945562223964271149056 813792:13:19:34222381517717096557728 813792:13:20:66665840640000000000000 813792:14:2:13333168128 813792:14:3:3892341908448 813792:14:4:218450626609152 813792:14:5:4966992187500000 813792:14:6:63772129828012032 813792:14:7:551932510899933408 813792:14:8:3579095066364346368 813792:14:9:18616950685507622112 813792:14:10:81379200000000000000 813792:14:11:309037376571372859872 813792:14:12:1044842575102149132288 813792:14:13:3204205403670995793888 813792:14:14:9042862258584508956672 813792:14:15:23756969656054687500000 813792:14:16:58639893567313450893312 813792:14:17:137024528231428000812768 813792:14:18:305020120031356880683008 813792:14:19:650225248836624834596832 813792:14:20:1333316812800000000000000 813792:15:2:26666336256 813792:15:3:11677025725344 813792:15:4:873802506436608 813792:15:5:24834960937500000 813792:15:6:382632778968072192 813792:15:7:3863527576299533856 813792:15:8:28632760530914770944 813792:15:9:167552556169568599008 813792:15:10:813792000000000000000 813792:15:11:3399411142285101458592 813792:15:12:12538110901225789587456 813792:15:13:41654670247722945320544 813792:15:14:126600071620183125393408 813792:15:15:356354544840820312500000 813792:15:16:938238297077015214292992 813792:15:17:2329416979934276013817056 813792:15:18:5490362160564423852294144 813792:15:19:12354279727895871857339808 813792:15:20:26666336256000000000000000 813792:16:2:53332672512 813792:16:3:35031077176032 813792:16:4:3495210025746432 813792:16:5:124174804687500000 813792:16:6:2295796673808433152 813792:16:7:27044693034096736992 813792:16:8:229062084247318167552 813792:16:9:1507973005526117391072 813792:16:10:8137920000000000000000 813792:16:11:37393522565136116044512 813792:16:12:150457330814709475049472 813792:16:13:541510713220398289167072 813792:16:14:1772401002682563755507712 813792:16:15:5345318172612304687500000 813792:16:16:15011812753232243428687872 813792:16:17:39600088658882692234889952 813792:16:18:98826518890159629341294592 813792:16:19:234731314830021565289456352 813792:16:20:533326725120000000000000000 813792:17:2:106665345024 813792:17:3:105093231528096 813792:17:4:13980840102985728 813792:17:5:620874023437500000 813792:17:6:13774780042850598912 813792:17:7:189312851238677158944 813792:17:8:1832496673978545340416 813792:17:9:13571757049735056519648 813792:17:10:81379200000000000000000 813792:17:11:411328748216497276489632 813792:17:12:1805487969776513700593664 813792:17:13:7039639271865177759171936 813792:17:14:24813614037555892577107968 813792:17:15:80179772589184570312500000 813792:17:16:240189004051715894859005952 813792:17:17:673201507201005767993129184 813792:17:18:1778877340022873328143302656 813792:17:19:4459894981770409740499670688 813792:17:20:10666534502400000000000000000 813792:18:2:213330690048 813792:18:3:315279694584288 813792:18:4:55923360411942912 813792:18:5:3104370117187500000 813792:18:6:82648680257103593472 813792:18:7:1325189958670740112608 813792:18:8:14659973391828362723328 813792:18:9:122145813447615508676832 813792:18:10:813792000000000000000000 813792:18:11:4524616230381470041385952 813792:18:12:21665855637318164407123968 813792:18:13:91515310534247310869235168 813792:18:14:347390596525782496079511552 813792:18:15:1202696588837768554687500000 813792:18:16:3843024064827454317744095232 813792:18:17:11444425622417098055883196128 813792:18:18:32019792120411719906579447808 813792:18:19:84738004653637785069493743072 813792:18:20:213330690048000000000000000000 813792:19:2:426661380096 813792:19:3:945839083752864 813792:19:4:223693441647771648 813792:19:5:15521850585937500000 813792:19:6:495892081542621560832 813792:19:7:9276329710695180788256 813792:19:8:117279787134626901786624 813792:19:9:1099312321028539578091488 813792:19:10:8137920000000000000000000 813792:19:11:49770778534196170455245472 813792:19:12:259990267647817972885487616 813792:19:13:1189699036945215041300057184 813792:19:14:4863468351360954945113161728 813792:19:15:18040448832566528320312500000 813792:19:16:61488385037239269083905523712 813792:19:17:194555235581090666950014334176 813792:19:18:576356258167410958318430060544 813792:19:19:1610022088419117916320381118368 813792:19:20:4266613800960000000000000000000 813792:20:2:853322760192 813792:20:3:2837517251258592 813792:20:4:894773766591086592 813792:20:5:77609252929687500000 813792:20:6:2975352489255729364992 813792:20:7:64934307974866265517792 813792:20:8:938238297077015214292992 813792:20:9:9893810889256856202823392 813792:20:10:81379200000000000000000000 813792:20:11:547478563876157875007700192 813792:20:12:3119883211773815674625851392 813792:20:13:15466087480287795536900743392 813792:20:14:68088556919053369231584264192 813792:20:15:270606732488497924804687500000 813792:20:16:983814160595828305342488379392 813792:20:17:3307439004878541338150243680992 813792:20:18:10374412647013397249731741089792 813792:20:19:30590419679963240410087241248992 813792:20:20:85332276019200000000000000000000 3719072:0:2:3719072 3719072:0:3:3719072 3719072:0:4:3719072 3719072:0:5:3719072 3719072:0:6:3719072 3719072:0:7:3719072 3719072:0:8:3719072 3719072:0:9:3719072 3719072:0:10:3719072 3719072:0:11:3719072 3719072:0:12:3719072 3719072:0:13:3719072 3719072:0:14:3719072 3719072:0:15:3719072 3719072:0:16:3719072 3719072:0:17:3719072 3719072:0:18:3719072 3719072:0:19:3719072 3719072:0:20:3719072 3719072:1:2:7438144 3719072:1:3:11157216 3719072:1:4:14876288 3719072:1:5:18595360 3719072:1:6:22314432 3719072:1:7:26033504 3719072:1:8:29752576 3719072:1:9:33471648 3719072:1:10:37190720 3719072:1:11:40909792 3719072:1:12:44628864 3719072:1:13:48347936 3719072:1:14:52067008 3719072:1:15:55786080 3719072:1:16:59505152 3719072:1:17:63224224 3719072:1:18:66943296 3719072:1:19:70662368 3719072:1:20:74381440 3719072:2:2:14876288 3719072:2:3:33471648 3719072:2:4:59505152 3719072:2:5:92976800 3719072:2:6:133886592 3719072:2:7:182234528 3719072:2:8:238020608 3719072:2:9:301244832 3719072:2:10:371907200 3719072:2:11:450007712 3719072:2:12:535546368 3719072:2:13:628523168 3719072:2:14:728938112 3719072:2:15:836791200 3719072:2:16:952082432 3719072:2:17:1074811808 3719072:2:18:1204979328 3719072:2:19:1342584992 3719072:2:20:1487628800 3719072:3:2:29752576 3719072:3:3:100414944 3719072:3:4:238020608 3719072:3:5:464884000 3719072:3:6:803319552 3719072:3:7:1275641696 3719072:3:8:1904164864 3719072:3:9:2711203488 3719072:3:10:3719072000 3719072:3:11:4950084832 3719072:3:12:6426556416 3719072:3:13:8170801184 3719072:3:14:10205133568 3719072:3:15:12551868000 3719072:3:16:15233318912 3719072:3:17:18271800736 3719072:3:18:21689627904 3719072:3:19:25509114848 3719072:3:20:29752576000 3719072:4:2:59505152 3719072:4:3:301244832 3719072:4:4:952082432 3719072:4:5:2324420000 3719072:4:6:4819917312 3719072:4:7:8929491872 3719072:4:8:15233318912 3719072:4:9:24400831392 3719072:4:10:37190720000 3719072:4:11:54450933152 3719072:4:12:77118676992 3719072:4:13:106220415392 3719072:4:14:142871869952 3719072:4:15:188278020000 3719072:4:16:243733102592 3719072:4:17:310620612512 3719072:4:18:390413302272 3719072:4:19:484673182112 3719072:4:20:595051520000 3719072:5:2:119010304 3719072:5:3:903734496 3719072:5:4:3808329728 3719072:5:5:11622100000 3719072:5:6:28919503872 3719072:5:7:62506443104 3719072:5:8:121866551296 3719072:5:9:219607482528 3719072:5:10:371907200000 3719072:5:11:598960264672 3719072:5:12:925424123904 3719072:5:13:1380865400096 3719072:5:14:2000206179328 3719072:5:15:2824170300000 3719072:5:16:3899729641472 3719072:5:17:5280550412704 3719072:5:18:7027439440896 3719072:5:19:9208790460128 3719072:5:20:11901030400000 3719072:6:2:238020608 3719072:6:3:2711203488 3719072:6:4:15233318912 3719072:6:5:58110500000 3719072:6:6:173517023232 3719072:6:7:437545101728 3719072:6:8:974932410368 3719072:6:9:1976467342752 3719072:6:10:3719072000000 3719072:6:11:6588562911392 3719072:6:12:11105089486848 3719072:6:13:17951250201248 3719072:6:14:28002886510592 3719072:6:15:42362554500000 3719072:6:16:62395674263552 3719072:6:17:89769357015968 3719072:6:18:126493909936128 3719072:6:19:174967018742432 3719072:6:20:238020608000000 3719072:7:2:476041216 3719072:7:3:8133610464 3719072:7:4:60933275648 3719072:7:5:290552500000 3719072:7:6:1041102139392 3719072:7:7:3062815712096 3719072:7:8:7799459282944 3719072:7:9:17788206084768 3719072:7:10:37190720000000 3719072:7:11:72474192025312 3719072:7:12:133261073842176 3719072:7:13:233366252616224 3719072:7:14:392040411148288 3719072:7:15:635438317500000 3719072:7:16:998330788216832 3719072:7:17:1526079069271456 3719072:7:18:2276890378850304 3719072:7:19:3324373356106208 3719072:7:20:4760412160000000 3719072:8:2:952082432 3719072:8:3:24400831392 3719072:8:4:243733102592 3719072:8:5:1452762500000 3719072:8:6:6246612836352 3719072:8:7:21439709984672 3719072:8:8:62395674263552 3719072:8:9:160093854762912 3719072:8:10:371907200000000 3719072:8:11:797216112278432 3719072:8:12:1599132886106112 3719072:8:13:3033761284010912 3719072:8:14:5488565756076032 3719072:8:15:9531574762500000 3719072:8:16:15973292611469312 3719072:8:17:25943344177614752 3719072:8:18:40984026819305472 3719072:8:19:63163093766017952 3719072:8:20:95208243200000000 3719072:9:2:1904164864 3719072:9:3:73202494176 3719072:9:4:974932410368 3719072:9:5:7263812500000 3719072:9:6:37479677018112 3719072:9:7:150077969892704 3719072:9:8:499165394108416 3719072:9:9:1440844692866208 3719072:9:10:3719072000000000 3719072:9:11:8769377235062752 3719072:9:12:19189594633273344 3719072:9:13:39438896692141856 3719072:9:14:76839920585064448 3719072:9:15:142973621437500000 3719072:9:16:255572681783508992 3719072:9:17:441036851019450784 3719072:9:18:737712482747498496 3719072:9:19:1200098781554341088 3719072:9:20:1904164864000000000 3719072:10:2:3808329728 3719072:10:3:219607482528 3719072:10:4:3899729641472 3719072:10:5:36319062500000 3719072:10:6:224878062108672 3719072:10:7:1050545789248928 3719072:10:8:3993323152867328 3719072:10:9:12967602235795872 3719072:10:10:37190720000000000 3719072:10:11:96463149585690272 3719072:10:12:230275135599280128 3719072:10:13:512705656997844128 3719072:10:14:1075758888190902272 3719072:10:15:2144604321562500000 3719072:10:16:4089162908536143872 3719072:10:17:7497626467330663328 3719072:10:18:13278824689454972928 3719072:10:19:22801876849532480672 3719072:10:20:38083297280000000000 3719072:11:2:7616659456 3719072:11:3:658822447584 3719072:11:4:15598918565888 3719072:11:5:181595312500000 3719072:11:6:1349268372652032 3719072:11:7:7353820524742496 3719072:11:8:31946585222938624 3719072:11:9:116708420122162848 3719072:11:10:371907200000000000 3719072:11:11:1061094645442592992 3719072:11:12:2763301627191361536 3719072:11:13:6665173540971973664 3719072:11:14:15060624434672631808 3719072:11:15:32169064823437500000 3719072:11:16:65426606536578301952 3719072:11:17:127459649944621276576 3719072:11:18:239018844410189512704 3719072:11:19:433235660141117132768 3719072:11:20:761665945600000000000 3719072:12:2:15233318912 3719072:12:3:1976467342752 3719072:12:4:62395674263552 3719072:12:5:907976562500000 3719072:12:6:8095610235912192 3719072:12:7:51476743673197472 3719072:12:8:255572681783508992 3719072:12:9:1050375781099465632 3719072:12:10:3719072000000000000 3719072:12:11:11672041099868522912 3719072:12:12:33159619526296338432 3719072:12:13:86647256032635657632 3719072:12:14:210848742085416845312 3719072:12:15:482535972351562500000 3719072:12:16:1046825704585252831232 3719072:12:17:2166814049058561701792 3719072:12:18:4302339199383411228672 3719072:12:19:8231477542681225522592 3719072:12:20:15233318912000000000000 3719072:13:2:30466637824 3719072:13:3:5929402028256 3719072:13:4:249582697054208 3719072:13:5:4539882812500000 3719072:13:6:48573661415473152 3719072:13:7:360337205712382304 3719072:13:8:2044581454268071936 3719072:13:9:9453382029895190688 3719072:13:10:37190720000000000000 3719072:13:11:128392452098553752032 3719072:13:12:397915434315556061184 3719072:13:13:1126414328424263549216 3719072:13:14:2951882389195835834368 3719072:13:15:7238039585273437500000 3719072:13:16:16749211273364045299712 3719072:13:17:36835838833995548930464 3719072:13:18:77442105588901402116096 3719072:13:19:156398073310943284929248 3719072:13:20:304666378240000000000000 3719072:14:2:60933275648 3719072:14:3:17788206084768 3719072:14:4:998330788216832 3719072:14:5:22699414062500000 3719072:14:6:291441968492838912 3719072:14:7:2522360439986676128 3719072:14:8:16356651634144575488 3719072:14:9:85080438269056716192 3719072:14:10:371907200000000000000 3719072:14:11:1412316973084091272352 3719072:14:12:4774985211786672734208 3719072:14:13:14643386269515426139808 3719072:14:14:41326353448741701681152 3719072:14:15:108570593779101562500000 3719072:14:16:267987380373824724795392 3719072:14:17:626209260177924331817888 3719072:14:18:1393957900600225238089728 3719072:14:19:2971563392907922413655712 3719072:14:20:6093327564800000000000000 3719072:15:2:121866551296 3719072:15:3:53364618254304 3719072:15:4:3993323152867328 3719072:15:5:113497070312500000 3719072:15:6:1748651810957033472 3719072:15:7:17656523079906732896 3719072:15:8:130853213073156603904 3719072:15:9:765723944421510445728 3719072:15:10:3719072000000000000000 3719072:15:11:15535486703925003995872 3719072:15:12:57299822541440072810496 3719072:15:13:190364021503700539817504 3719072:15:14:578568948282383823536128 3719072:15:15:1628558906686523437500000 3719072:15:16:4287798085981195596726272 3719072:15:17:10645557423024713640904096 3719072:15:18:25091242210804054285615104 3719072:15:19:56459704465250525859458528 3719072:15:20:121866551296000000000000000 3719072:16:2:243733102592 3719072:16:3:160093854762912 3719072:16:4:15973292611469312 3719072:16:5:567485351562500000 3719072:16:6:10491910865742200832 3719072:16:7:123595661559347130272 3719072:16:8:1046825704585252831232 3719072:16:9:6891515499793594011552 3719072:16:10:37190720000000000000000 3719072:16:11:170890353743175043954592 3719072:16:12:687597870497280873725952 3719072:16:13:2474732279548107017627552 3719072:16:14:8099965275953373529505792 3719072:16:15:24428383600297851562500000 3719072:16:16:68604769375699129547620352 3719072:16:17:180974476191420131895369632 3719072:16:18:451642359794472977141071872 3719072:16:19:1072734384839759991329712032 3719072:16:20:2437331025920000000000000000 3719072:17:2:487466205184 3719072:17:3:480281564288736 3719072:17:4:63893170445877248 3719072:17:5:2837426757812500000 3719072:17:6:62951465194453204992 3719072:17:7:865169630915429911904 3719072:17:8:8374605636682022649856 3719072:17:9:62023639498142346103968 3719072:17:10:371907200000000000000000 3719072:17:11:1879793891174925483500512 3719072:17:12:8251174445967370484711424 3719072:17:13:32171519634125391229158176 3719072:17:14:113399513863347229413081088 3719072:17:15:366425754004467773437500000 3719072:17:16:1097676310011186072761925632 3719072:17:17:3076566095254142242221283744 3719072:17:18:8129562476300513588539293696 3719072:17:19:20381953311955439835264528608 3719072:17:20:48746620518400000000000000000 3719072:18:2:974932410368 3719072:18:3:1440844692866208 3719072:18:4:255572681783508992 3719072:18:5:14187133789062500000 3719072:18:6:377708791166719229952 3719072:18:7:6056187416408009383328 3719072:18:8:66996845093456181198848 3719072:18:9:558212755483281114935712 3719072:18:10:3719072000000000000000000 3719072:18:11:20677732802924180318505632 3719072:18:12:99014093351608445816537088 3719072:18:13:418229755243630085979056288 3719072:18:14:1587593194086861211783135232 3719072:18:15:5496386310067016601562500000 3719072:18:16:17562820960178977164190810112 3719072:18:17:52301623619320418117761823648 3719072:18:18:146332124573409244593707286528 3719072:18:19:387257112927153356870026043552 3719072:18:20:974932410368000000000000000000 3719072:19:2:1949864820736 3719072:19:3:4322534078598624 3719072:19:4:1022290727134035968 3719072:19:5:70935668945312500000 3719072:19:6:2266252747000315379712 3719072:19:7:42393311914856065683296 3719072:19:8:535974760747649449590784 3719072:19:9:5023914799349530034421408 3719072:19:10:37190720000000000000000000 3719072:19:11:227455060832165983503561952 3719072:19:12:1188169120219301349798445056 3719072:19:13:5436986818167191117727731744 3719072:19:14:22226304717216056964963893248 3719072:19:15:82445794651005249023437500000 3719072:19:16:281005135362863634627052961792 3719072:19:17:889127601528447108001951002016 3719072:19:18:2633978242321366402686731157504 3719072:19:19:7357885145615913780530494827488 3719072:19:20:19498648207360000000000000000000 3719072:20:2:3899729641472 3719072:20:3:12967602235795872 3719072:20:4:4089162908536143872 3719072:20:5:354678344726562500000 3719072:20:6:13597516482001892278272 3719072:20:7:296753183403992459783072 3719072:20:8:4287798085981195596726272 3719072:20:9:45215233194145770309792672 3719072:20:10:371907200000000000000000000 3719072:20:11:2502005669153825818539181472 3719072:20:12:14258029442631616197581340672 3719072:20:13:70680828636173484530460512672 3719072:20:14:311168266041024797509494505472 3719072:20:15:1236686919765078735351562500000 3719072:20:16:4496082165805818154032847388672 3719072:20:17:15115169225983600836033167034272 3719072:20:18:47411608361784595248361160835072 3719072:20:19:139799817766702361830079401722272 3719072:20:20:389972964147200000000000000000000 63194981:0:2:63194981 63194981:0:3:63194981 63194981:0:4:63194981 63194981:0:5:63194981 63194981:0:6:63194981 63194981:0:7:63194981 63194981:0:8:63194981 63194981:0:9:63194981 63194981:0:10:63194981 63194981:0:11:63194981 63194981:0:12:63194981 63194981:0:13:63194981 63194981:0:14:63194981 63194981:0:15:63194981 63194981:0:16:63194981 63194981:0:17:63194981 63194981:0:18:63194981 63194981:0:19:63194981 63194981:0:20:63194981 63194981:1:2:126389962 63194981:1:3:189584943 63194981:1:4:252779924 63194981:1:5:315974905 63194981:1:6:379169886 63194981:1:7:442364867 63194981:1:8:505559848 63194981:1:9:568754829 63194981:1:10:631949810 63194981:1:11:695144791 63194981:1:12:758339772 63194981:1:13:821534753 63194981:1:14:884729734 63194981:1:15:947924715 63194981:1:16:1011119696 63194981:1:17:1074314677 63194981:1:18:1137509658 63194981:1:19:1200704639 63194981:1:20:1263899620 63194981:2:2:252779924 63194981:2:3:568754829 63194981:2:4:1011119696 63194981:2:5:1579874525 63194981:2:6:2275019316 63194981:2:7:3096554069 63194981:2:8:4044478784 63194981:2:9:5118793461 63194981:2:10:6319498100 63194981:2:11:7646592701 63194981:2:12:9100077264 63194981:2:13:10679951789 63194981:2:14:12386216276 63194981:2:15:14218870725 63194981:2:16:16177915136 63194981:2:17:18263349509 63194981:2:18:20475173844 63194981:2:19:22813388141 63194981:2:20:25277992400 63194981:3:2:505559848 63194981:3:3:1706264487 63194981:3:4:4044478784 63194981:3:5:7899372625 63194981:3:6:13650115896 63194981:3:7:21675878483 63194981:3:8:32355830272 63194981:3:9:46069141149 63194981:3:10:63194981000 63194981:3:11:84112519711 63194981:3:12:109200927168 63194981:3:13:138839373257 63194981:3:14:173407027864 63194981:3:15:213283060875 63194981:3:16:258846642176 63194981:3:17:310476941653 63194981:3:18:368553129192 63194981:3:19:433454374679 63194981:3:20:505559848000 63194981:4:2:1011119696 63194981:4:3:5118793461 63194981:4:4:16177915136 63194981:4:5:39496863125 63194981:4:6:81900695376 63194981:4:7:151731149381 63194981:4:8:258846642176 63194981:4:9:414622270341 63194981:4:10:631949810000 63194981:4:11:925237716821 63194981:4:12:1310411126016 63194981:4:13:1804911852341 63194981:4:14:2427698390096 63194981:4:15:3199245913125 63194981:4:16:4141546274816 63194981:4:17:5278108008101 63194981:4:18:6633956325456 63194981:4:19:8235633118901 63194981:4:20:10111196960000 63194981:5:2:2022239392 63194981:5:3:15356380383 63194981:5:4:64711660544 63194981:5:5:197484315625 63194981:5:6:491404172256 63194981:5:7:1062118045667 63194981:5:8:2070773137408 63194981:5:9:3731600433069 63194981:5:10:6319498100000 63194981:5:11:10177614885031 63194981:5:12:15724933512192 63194981:5:13:23463854080433 63194981:5:14:33987777461344 63194981:5:15:47988688696875 63194981:5:16:66264740397056 63194981:5:17:89727836137717 63194981:5:18:119411213858208 63194981:5:19:156477029259119 63194981:5:20:202223939200000 63194981:6:2:4044478784 63194981:6:3:46069141149 63194981:6:4:258846642176 63194981:6:5:987421578125 63194981:6:6:2948425033536 63194981:6:7:7434826319669 63194981:6:8:16566185099264 63194981:6:9:33584403897621 63194981:6:10:63194981000000 63194981:6:11:111953763735341 63194981:6:12:188699202146304 63194981:6:13:305030103045629 63194981:6:14:475828884458816 63194981:6:15:719830330453125 63194981:6:16:1060235846352896 63194981:6:17:1525373214341189 63194981:6:18:2149401849447744 63194981:6:19:2973063555923261 63194981:6:20:4044478784000000 63194981:7:2:8088957568 63194981:7:3:138207423447 63194981:7:4:1035386568704 63194981:7:5:4937107890625 63194981:7:6:17690550201216 63194981:7:7:52043784237683 63194981:7:8:132529480794112 63194981:7:9:302259635078589 63194981:7:10:631949810000000 63194981:7:11:1231491401088751 63194981:7:12:2264390425755648 63194981:7:13:3965391339593177 63194981:7:14:6661604382423424 63194981:7:15:10797454956796875 63194981:7:16:16963773541646336 63194981:7:17:25931344643800213 63194981:7:18:38689233290059392 63194981:7:19:56488207562541959 63194981:7:20:80889575680000000 63194981:8:2:16177915136 63194981:8:3:414622270341 63194981:8:4:4141546274816 63194981:8:5:24685539453125 63194981:8:6:106143301207296 63194981:8:7:364306489663781 63194981:8:8:1060235846352896 63194981:8:9:2720336715707301 63194981:8:10:6319498100000000 63194981:8:11:13546405411976261 63194981:8:12:27172685109067776 63194981:8:13:51550087414711301 63194981:8:14:93262461353927936 63194981:8:15:161961824351953125 63194981:8:16:271420376666341376 63194981:8:17:440832858944603621 63194981:8:18:696406199221069056 63194981:8:19:1073275943688297221 63194981:8:20:1617791513600000000 63194981:9:2:32355830272 63194981:9:3:1243866811023 63194981:9:4:16566185099264 63194981:9:5:123427697265625 63194981:9:6:636859807243776 63194981:9:7:2550145427646467 63194981:9:8:8481886770823168 63194981:9:9:24483030441365709 63194981:9:10:63194981000000000 63194981:9:11:149010459531738871 63194981:9:12:326072221308813312 63194981:9:13:670151136391246913 63194981:9:14:1305674458954991104 63194981:9:15:2429427365279296875 63194981:9:16:4342726026661462016 63194981:9:17:7494158602058261557 63194981:9:18:12535311585979243008 63194981:9:19:20392242930077647199 63194981:9:20:32355830272000000000 63194981:10:2:64711660544 63194981:10:3:3731600433069 63194981:10:4:66264740397056 63194981:10:5:617138486328125 63194981:10:6:3821158843462656 63194981:10:7:17851017993525269 63194981:10:8:67855094166585344 63194981:10:9:220347273972291381 63194981:10:10:631949810000000000 63194981:10:11:1639115054849127581 63194981:10:12:3912866655705759744 63194981:10:13:8711964773086209869 63194981:10:14:18279442425369875456 63194981:10:15:36441410479189453125 63194981:10:16:69483616426583392256 63194981:10:17:127400696234990446469 63194981:10:18:225635608547626374144 63194981:10:19:387452615671475296781 63194981:10:20:647116605440000000000 63194981:11:2:129423321088 63194981:11:3:11194801299207 63194981:11:4:265058961588224 63194981:11:5:3085692431640625 63194981:11:6:22926953060775936 63194981:11:7:124957125954676883 63194981:11:8:542840753332682752 63194981:11:9:1983125465750622429 63194981:11:10:6319498100000000000 63194981:11:11:18030265603340403391 63194981:11:12:46954399868469116928 63194981:11:13:113255542050120728297 63194981:11:14:255912193955178256384 63194981:11:15:546621157187841796875 63194981:11:16:1111737862825334276096 63194981:11:17:2165811835994837589973 63194981:11:18:4061440953857274734592 63194981:11:19:7361599697758030638839 63194981:11:20:12942332108800000000000 63194981:12:2:258846642176 63194981:12:3:33584403897621 63194981:12:4:1060235846352896 63194981:12:5:15428462158203125 63194981:12:6:137561718364655616 63194981:12:7:874699881682738181 63194981:12:8:4342726026661462016 63194981:12:9:17848129191755601861 63194981:12:10:63194981000000000000 63194981:12:11:198332921636744437301 63194981:12:12:563452798421629403136 63194981:12:13:1472322046651569467861 63194981:12:14:3582770715372495589376 63194981:12:15:8199317357817626953125 63194981:12:16:17787805805205348417536 63194981:12:17:36818801211912239029541 63194981:12:18:73105937169430945222656 63194981:12:19:139870394257402582137941 63194981:12:20:258846642176000000000000 63194981:13:2:517693284352 63194981:13:3:100753211692863 63194981:13:4:4240943385411584 63194981:13:5:77142310791015625 63194981:13:6:825370310187933696 63194981:13:7:6122899171779167267 63194981:13:8:34741808213291696128 63194981:13:9:160633162725800416749 63194981:13:10:631949810000000000000 63194981:13:11:2181662138004188810311 63194981:13:12:6761433581059552837632 63194981:13:13:19140186606470403082193 63194981:13:14:50158790015214938251264 63194981:13:15:122989760367264404296875 63194981:13:16:284604892883285574680576 63194981:13:17:625919620602508063502197 63194981:13:18:1315906869049757014007808 63194981:13:19:2657537490890649060620879 63194981:13:20:5176932843520000000000000 63194981:14:2:1035386568704 63194981:14:3:302259635078589 63194981:14:4:16963773541646336 63194981:14:5:385711553955078125 63194981:14:6:4952221861127602176 63194981:14:7:42860294202454170869 63194981:14:8:277934465706333569024 63194981:14:9:1445698464532203750741 63194981:14:10:6319498100000000000000 63194981:14:11:23998283518046076913421 63194981:14:12:81137202972714634051584 63194981:14:13:248822425884115240068509 63194981:14:14:702223060213009135517696 63194981:14:15:1844846405508966064453125 63194981:14:16:4553678286132569194889216 63194981:14:17:10640633550242637079537349 63194981:14:18:23686323642895626252140544 63194981:14:19:50493212326922332151796701 63194981:14:20:103538656870400000000000000 63194981:15:2:2070773137408 63194981:15:3:906778905235767 63194981:15:4:67855094166585344 63194981:15:5:1928557769775390625 63194981:15:6:29713331166765613056 63194981:15:7:300022059417179196083 63194981:15:8:2223475725650668552192 63194981:15:9:13011286180789833756669 63194981:15:10:63194981000000000000000 63194981:15:11:263981118698506846047631 63194981:15:12:973646435672575608619008 63194981:15:13:3234691536493498120890617 63194981:15:14:9831122842982127897247744 63194981:15:15:27672696082634490966796875 63194981:15:16:72858852578121107118227456 63194981:15:17:180890770354124830352134933 63194981:15:18:426353825572121272538529792 63194981:15:19:959371034211524310884137319 63194981:15:20:2070773137408000000000000000 63194981:16:2:4141546274816 63194981:16:3:2720336715707301 63194981:16:4:271420376666341376 63194981:16:5:9642788848876953125 63194981:16:6:178279987000593678336 63194981:16:7:2100154415920254372581 63194981:16:8:17787805805205348417536 63194981:16:9:117101575627108503810021 63194981:16:10:631949810000000000000000 63194981:16:11:2903792305683575306523941 63194981:16:12:11683757228070907303428096 63194981:16:13:42050989974415475571578021 63194981:16:14:137635719801749790561468416 63194981:16:15:415090441239517364501953125 63194981:16:16:1165741641249937713891639296 63194981:16:17:3075143096020122115986293861 63194981:16:18:7674368860298182905693536256 63194981:16:19:18228049650018961906798609061 63194981:16:20:41415462748160000000000000000 63194981:17:2:8283092549632 63194981:17:3:8161010147121903 63194981:17:4:1085681506665365504 63194981:17:5:48213944244384765625 63194981:17:6:1069679922003562070016 63194981:17:7:14701080911441780608067 63194981:17:8:142302446441642787340288 63194981:17:9:1053914180643976534290189 63194981:17:10:6319498100000000000000000 63194981:17:11:31941715362519328371763351 63194981:17:12:140205086736850887641137152 63194981:17:13:546662869667401182430514273 63194981:17:14:1926900077224497067860557824 63194981:17:15:6226356618592760467529296875 63194981:17:16:18651866259999003422266228736 63194981:17:17:52277432632342075971766995637 63194981:17:18:138138639485367292302483652608 63194981:17:19:346332943350360276229173572159 63194981:17:20:828309254963200000000000000000 63194981:18:2:16566185099264 63194981:18:3:24483030441365709 63194981:18:4:4342726026661462016 63194981:18:5:241069721221923828125 63194981:18:6:6418079532021372420096 63194981:18:7:102907566380092464256469 63194981:18:8:1138419571533142298722304 63194981:18:9:9485227625795788808611701 63194981:18:10:63194981000000000000000000 63194981:18:11:351358868987712612089396861 63194981:18:12:1682461040842210651693645824 63194981:18:13:7106617305676215371596685549 63194981:18:14:26976601081142958950047809536 63194981:18:15:93395349278891407012939453125 63194981:18:16:298429860159984054756259659776 63194981:18:17:888716354749815291520038925829 63194981:18:18:2486495510736611261444705746944 63194981:18:19:6580325923656845248354297871021 63194981:18:20:16566185099264000000000000000000 63194981:19:2:33132370198528 63194981:19:3:73449091324097127 63194981:19:4:17370904106645848064 63194981:19:5:1205348606109619140625 63194981:19:6:38508477192128234520576 63194981:19:7:720352964660647249795283 63194981:19:8:9107356572265138389778432 63194981:19:9:85367048632162099277505309 63194981:19:10:631949810000000000000000000 63194981:19:11:3864947558864838732983365471 63194981:19:12:20189532490106527820323749888 63194981:19:13:92386024973790799830756912137 63194981:19:14:377672415136001425300669333504 63194981:19:15:1400930239183371105194091796875 63194981:19:16:4774877762559744876100154556416 63194981:19:17:15108178030746859955840661739093 63194981:19:18:44756919193259002706004703444992 63194981:19:19:125026192549480059718731659549399 63194981:19:20:331323701985280000000000000000000 63194981:20:2:66264740397056 63194981:20:3:220347273972291381 63194981:20:4:69483616426583392256 63194981:20:5:6026743030548095703125 63194981:20:6:231050863152769407123456 63194981:20:7:5042470752624530748566981 63194981:20:8:72858852578121107118227456 63194981:20:9:768303437689458893497547781 63194981:20:10:6319498100000000000000000000 63194981:20:11:42514423147513226062817020181 63194981:20:12:242274389881278333843884998656 63194981:20:13:1201018324659280397799839857781 63194981:20:14:5287413811904019954209370669056 63194981:20:15:21013953587750566577911376953125 63194981:20:16:76398044200955918017602472902656 63194981:20:17:256839026522696619249291249564581 63194981:20:18:805624545478662048708084662009856 63194981:20:19:2375497658440121134655901531438581 63194981:20:20:6626474039705600000000000000000000 180567671:0:2:180567671 180567671:0:3:180567671 180567671:0:4:180567671 180567671:0:5:180567671 180567671:0:6:180567671 180567671:0:7:180567671 180567671:0:8:180567671 180567671:0:9:180567671 180567671:0:10:180567671 180567671:0:11:180567671 180567671:0:12:180567671 180567671:0:13:180567671 180567671:0:14:180567671 180567671:0:15:180567671 180567671:0:16:180567671 180567671:0:17:180567671 180567671:0:18:180567671 180567671:0:19:180567671 180567671:0:20:180567671 180567671:1:2:361135342 180567671:1:3:541703013 180567671:1:4:722270684 180567671:1:5:902838355 180567671:1:6:1083406026 180567671:1:7:1263973697 180567671:1:8:1444541368 180567671:1:9:1625109039 180567671:1:10:1805676710 180567671:1:11:1986244381 180567671:1:12:2166812052 180567671:1:13:2347379723 180567671:1:14:2527947394 180567671:1:15:2708515065 180567671:1:16:2889082736 180567671:1:17:3069650407 180567671:1:18:3250218078 180567671:1:19:3430785749 180567671:1:20:3611353420 180567671:2:2:722270684 180567671:2:3:1625109039 180567671:2:4:2889082736 180567671:2:5:4514191775 180567671:2:6:6500436156 180567671:2:7:8847815879 180567671:2:8:11556330944 180567671:2:9:14625981351 180567671:2:10:18056767100 180567671:2:11:21848688191 180567671:2:12:26001744624 180567671:2:13:30515936399 180567671:2:14:35391263516 180567671:2:15:40627725975 180567671:2:16:46225323776 180567671:2:17:52184056919 180567671:2:18:58503925404 180567671:2:19:65184929231 180567671:2:20:72227068400 180567671:3:2:1444541368 180567671:3:3:4875327117 180567671:3:4:11556330944 180567671:3:5:22570958875 180567671:3:6:39002616936 180567671:3:7:61934711153 180567671:3:8:92450647552 180567671:3:9:131633832159 180567671:3:10:180567671000 180567671:3:11:240335570101 180567671:3:12:312020935488 180567671:3:13:396707173187 180567671:3:14:495477689224 180567671:3:15:609415889625 180567671:3:16:739605180416 180567671:3:17:887128967623 180567671:3:18:1053070657272 180567671:3:19:1238513655389 180567671:3:20:1444541368000 180567671:4:2:2889082736 180567671:4:3:14625981351 180567671:4:4:46225323776 180567671:4:5:112854794375 180567671:4:6:234015701616 180567671:4:7:433542978071 180567671:4:8:739605180416 180567671:4:9:1184704489431 180567671:4:10:1805676710000 180567671:4:11:2643691271111 180567671:4:12:3744251225856 180567671:4:13:5157193251431 180567671:4:14:6936687649136 180567671:4:15:9141238344375 180567671:4:16:11833682886656 180567671:4:17:15081192449591 180567671:4:18:18955271830896 180567671:4:19:23531759452391 180567671:4:20:28890827360000 180567671:5:2:5778165472 180567671:5:3:43877944053 180567671:5:4:184901295104 180567671:5:5:564273971875 180567671:5:6:1404094209696 180567671:5:7:3034800846497 180567671:5:8:5916841443328 180567671:5:9:10662340404879 180567671:5:10:18056767100000 180567671:5:11:29080603982221 180567671:5:12:44931014710272 180567671:5:13:67043512268603 180567671:5:14:97113627087904 180567671:5:15:137118575165625 180567671:5:16:189338926186496 180567671:5:17:256380271643047 180567671:5:18:341194892956128 180567671:5:19:447103429595429 180567671:5:20:577816547200000 180567671:6:2:11556330944 180567671:6:3:131633832159 180567671:6:4:739605180416 180567671:6:5:2821369859375 180567671:6:6:8424565258176 180567671:6:7:21243605925479 180567671:6:8:47334731546624 180567671:6:9:95961063643911 180567671:6:10:180567671000000 180567671:6:11:319886643804431 180567671:6:12:539172176523264 180567671:6:13:871565659491839 180567671:6:14:1359590779230656 180567671:6:15:2056778627484375 180567671:6:16:3029422818983936 180567671:6:17:4358464617931799 180567671:6:18:6141508073210304 180567671:6:19:8494965162313151 180567671:6:20:11556330944000000 180567671:7:2:23112661888 180567671:7:3:394901496477 180567671:7:4:2958420721664 180567671:7:5:14106849296875 180567671:7:6:50547391549056 180567671:7:7:148705241478353 180567671:7:8:378677852372992 180567671:7:9:863649572795199 180567671:7:10:1805676710000000 180567671:7:11:3518753081848741 180567671:7:12:6470066118279168 180567671:7:13:11330353573393907 180567671:7:14:19034270909229184 180567671:7:15:30851679412265625 180567671:7:16:48470765103742976 180567671:7:17:74093898504840583 180567671:7:18:110547145317785472 180567671:7:19:161404338083949869 180567671:7:20:231126618880000000 180567671:8:2:46225323776 180567671:8:3:1184704489431 180567671:8:4:11833682886656 180567671:8:5:70534246484375 180567671:8:6:303284349294336 180567671:8:7:1040936690348471 180567671:8:8:3029422818983936 180567671:8:9:7772846155156791 180567671:8:10:18056767100000000 180567671:8:11:38706283900336151 180567671:8:12:77640793419350016 180567671:8:13:147294596454120791 180567671:8:14:266479792729208576 180567671:8:15:462775191183984375 180567671:8:16:775532241659887616 180567671:8:17:1259596274582289911 180567671:8:18:1989848615720138496 180567671:8:19:3066682423595047511 180567671:8:20:4622532377600000000 180567671:9:2:92450647552 180567671:9:3:3554113468293 180567671:9:4:47334731546624 180567671:9:5:352671232421875 180567671:9:6:1819706095766016 180567671:9:7:7286556832439297 180567671:9:8:24235382551871488 180567671:9:9:69955615396411119 180567671:9:10:180567671000000000 180567671:9:11:425769122903697661 180567671:9:12:931689521032200192 180567671:9:13:1914829753903570283 180567671:9:14:3730717098208920064 180567671:9:15:6941627867759765625 180567671:9:16:12408515866558201856 180567671:9:17:21413136667898928487 180567671:9:18:35817275082962492928 180567671:9:19:58266966048305902709 180567671:9:20:92450647552000000000 180567671:10:2:184901295104 180567671:10:3:10662340404879 180567671:10:4:189338926186496 180567671:10:5:1763356162109375 180567671:10:6:10918236574596096 180567671:10:7:51005897827075079 180567671:10:8:193883060414971904 180567671:10:9:629600538567700071 180567671:10:10:1805676710000000000 180567671:10:11:4683460351940674271 180567671:10:12:11180274252386402304 180567671:10:13:24892786800746413679 180567671:10:14:52230039374924880896 180567671:10:15:104124418016396484375 180567671:10:16:198536253864931229696 180567671:10:17:364023323354281784279 180567671:10:18:644710951493324872704 180567671:10:19:1107072354917812151471 180567671:10:20:1849012951040000000000 180567671:11:2:369802590208 180567671:11:3:31987021214637 180567671:11:4:757355704745984 180567671:11:5:8816780810546875 180567671:11:6:65509419447576576 180567671:11:7:357041284789525553 180567671:11:8:1551064483319775232 180567671:11:9:5666404847109300639 180567671:11:10:18056767100000000000 180567671:11:11:51518063871347416981 180567671:11:12:134163291028636827648 180567671:11:13:323606228409703377827 180567671:11:14:731220551248948332544 180567671:11:15:1561866270245947265625 180567671:11:16:3176580061838899675136 180567671:11:17:6188396497022790332743 180567671:11:18:11604797126879847708672 180567671:11:19:21034374743438430877949 180567671:11:20:36980259020800000000000 180567671:12:2:739605180416 180567671:12:3:95961063643911 180567671:12:4:3029422818983936 180567671:12:5:44083904052734375 180567671:12:6:393056516685459456 180567671:12:7:2499288993526678871 180567671:12:8:12408515866558201856 180567671:12:9:50997643623983705751 180567671:12:10:180567671000000000000 180567671:12:11:566698702584821586791 180567671:12:12:1609959492343641931776 180567671:12:13:4206880969326143911751 180567671:12:14:10237087717485276655616 180567671:12:15:23427994053689208984375 180567671:12:16:50825280989422394802176 180567671:12:17:105202740449387435656631 180567671:12:18:208886348283837258756096 180567671:12:19:399653120125330186681031 180567671:12:20:739605180416000000000000 180567671:13:2:1479210360832 180567671:13:3:287883190931733 180567671:13:4:12117691275935744 180567671:13:5:220419520263671875 180567671:13:6:2358339100112756736 180567671:13:7:17495022954686752097 180567671:13:8:99268126932465614848 180567671:13:9:458978792615853351759 180567671:13:10:1805676710000000000000 180567671:13:11:6233685728433037454701 180567671:13:12:19319513908123703181312 180567671:13:13:54689452601239870852763 180567671:13:14:143319228044793873178624 180567671:13:15:351419910805338134765625 180567671:13:16:813204495830758316834816 180567671:13:17:1788446587639586406162727 180567671:13:18:3759954269109070657609728 180567671:13:19:7593409282381273546939589 180567671:13:20:14792103608320000000000000 180567671:14:2:2958420721664 180567671:14:3:863649572795199 180567671:14:4:48470765103742976 180567671:14:5:1102097601318359375 180567671:14:6:14150034600676540416 180567671:14:7:122465160682807264679 180567671:14:8:794145015459724918784 180567671:14:9:4130809133542680165831 180567671:14:10:18056767100000000000000 180567671:14:11:68570543012763412001711 180567671:14:12:231834166897484438175744 180567671:14:13:710962883816118321085919 180567671:14:14:2006469192627114224500736 180567671:14:15:5271298662080072021484375 180567671:14:16:13011271933292133069357056 180567671:14:17:30403591989872968904766359 180567671:14:18:67679176843963271836975104 180567671:14:19:144274776365244197391852191 180567671:14:20:295842072166400000000000000 180567671:15:2:5916841443328 180567671:15:3:2590948718385597 180567671:15:4:193883060414971904 180567671:15:5:5510488006591796875 180567671:15:6:84900207604059242496 180567671:15:7:857256124779650852753 180567671:15:8:6353160123677799350272 180567671:15:9:37177282201884121492479 180567671:15:10:180567671000000000000000 180567671:15:11:754275973140397532018821 180567671:15:12:2782010002769813258108928 180567671:15:13:9242517489609538174116947 180567671:15:14:28090568696779599143010304 180567671:15:15:79069479931201080322265625 180567671:15:16:208180350932674129109712896 180567671:15:17:516861063827840471381028103 180567671:15:18:1218225183191338893065551872 180567671:15:19:2741220750939639750445191629 180567671:15:20:5916841443328000000000000000 180567671:16:2:11833682886656 180567671:16:3:7772846155156791 180567671:16:4:775532241659887616 180567671:16:5:27552440032958984375 180567671:16:6:509401245624355454976 180567671:16:7:6000792873457555969271 180567671:16:8:50825280989422394802176 180567671:16:9:334595539816957093432311 180567671:16:10:1805676710000000000000000 180567671:16:11:8297035704544372852207031 180567671:16:12:33384120033237759097307136 180567671:16:13:120152727364923996263520311 180567671:16:14:393267961754914388002144256 180567671:16:15:1186042198968016204833984375 180567671:16:16:3330885614922786065755406336 180567671:16:17:8786638085073288013477477751 180567671:16:18:21928053297444100075179933696 180567671:16:19:52083194267853155258458640951 180567671:16:20:118336828866560000000000000000 180567671:17:2:23667365773312 180567671:17:3:23318538465470373 180567671:17:4:3102128966639550464 180567671:17:5:137762200164794921875 180567671:17:6:3056407473746132729856 180567671:17:7:42005550114202891784897 180567671:17:8:406602247915379158417408 180567671:17:9:3011359858352613840890799 180567671:17:10:18056767100000000000000000 180567671:17:11:91267392749988101374277341 180567671:17:12:400609440398853109167685632 180567671:17:13:1561985455744011951425764043 180567671:17:14:5505751464568801432030019584 180567671:17:15:17790632984520243072509765625 180567671:17:16:53294169838764577052086501376 180567671:17:17:149372847446245896229117121767 180567671:17:18:394704959353993801353238806528 180567671:17:19:989580691089209949910714178069 180567671:17:20:2366736577331200000000000000000 180567671:18:2:47334731546624 180567671:18:3:69955615396411119 180567671:18:4:12408515866558201856 180567671:18:5:688811000823974609375 180567671:18:6:18338444842476796379136 180567671:18:7:294038850799420242494279 180567671:18:8:3252817983323033267339264 180567671:18:9:27102238725173524568017191 180567671:18:10:180567671000000000000000000 180567671:18:11:1003941320249869115117050751 180567671:18:12:4807313284786237310012227584 180567671:18:13:20305810924672155368534932559 180567671:18:14:77080520503963220048420274176 180567671:18:15:266859494767803646087646484375 180567671:18:16:852706717420233232833384022016 180567671:18:17:2539338406586180235894991070039 180567671:18:18:7104689268371888424358298517504 180567671:18:19:18802033130694989048303569383311 180567671:18:20:47334731546624000000000000000000 180567671:19:2:94669463093248 180567671:19:3:209866846189233357 180567671:19:4:49634063466232807424 180567671:19:5:3444055004119873046875 180567671:19:6:110030669054860778274816 180567671:19:7:2058271955595941697459953 180567671:19:8:26022543866584266138714112 180567671:19:9:243920148526561721112154719 180567671:19:10:1805676710000000000000000000 180567671:19:11:11043354522748560266287558261 180567671:19:12:57687759417434847720146731008 180567671:19:13:263975542020738019790954123267 180567671:19:14:1079127287055485080677883838464 180567671:19:15:4002892421517054691314697265625 180567671:19:16:13643307478723731725334144352256 180567671:19:17:43168752911965064010214848190663 180567671:19:18:127884406830693991638449373315072 180567671:19:19:357238629483204791917767818282909 180567671:19:20:946694630932480000000000000000000 180567671:20:2:189338926186496 180567671:20:3:629600538567700071 180567671:20:4:198536253864931229696 180567671:20:5:17220275020599365234375 180567671:20:6:660184014329164669648896 180567671:20:7:14407903689171591882219671 180567671:20:8:208180350932674129109712896 180567671:20:9:2195281336739055490009392471 180567671:20:10:18056767100000000000000000000 180567671:20:11:121476899750234162929163140871 180567671:20:12:692253113009218172641760772096 180567671:20:13:3431682046269594257282403602471 180567671:20:14:15107782018776791129490373738496 180567671:20:15:60043386322755820369720458984375 180567671:20:16:218292919659579707605346309636096 180567671:20:17:733868799503406088173652419241271 180567671:20:18:2301919322952491849492088719671296 180567671:20:19:6787533960180891046437588547375271 180567671:20:20:18933892618649600000000000000000000 4084497124:0:2:4084497124 4084497124:0:3:4084497124 4084497124:0:4:4084497124 4084497124:0:5:4084497124 4084497124:0:6:4084497124 4084497124:0:7:4084497124 4084497124:0:8:4084497124 4084497124:0:9:4084497124 4084497124:0:10:4084497124 4084497124:0:11:4084497124 4084497124:0:12:4084497124 4084497124:0:13:4084497124 4084497124:0:14:4084497124 4084497124:0:15:4084497124 4084497124:0:16:4084497124 4084497124:0:17:4084497124 4084497124:0:18:4084497124 4084497124:0:19:4084497124 4084497124:0:20:4084497124 4084497124:1:2:8168994248 4084497124:1:3:12253491372 4084497124:1:4:16337988496 4084497124:1:5:20422485620 4084497124:1:6:24506982744 4084497124:1:7:28591479868 4084497124:1:8:32675976992 4084497124:1:9:36760474116 4084497124:1:10:40844971240 4084497124:1:11:44929468364 4084497124:1:12:49013965488 4084497124:1:13:53098462612 4084497124:1:14:57182959736 4084497124:1:15:61267456860 4084497124:1:16:65351953984 4084497124:1:17:69436451108 4084497124:1:18:73520948232 4084497124:1:19:77605445356 4084497124:1:20:81689942480 4084497124:2:2:16337988496 4084497124:2:3:36760474116 4084497124:2:4:65351953984 4084497124:2:5:102112428100 4084497124:2:6:147041896464 4084497124:2:7:200140359076 4084497124:2:8:261407815936 4084497124:2:9:330844267044 4084497124:2:10:408449712400 4084497124:2:11:494224152004 4084497124:2:12:588167585856 4084497124:2:13:690280013956 4084497124:2:14:800561436304 4084497124:2:15:919011852900 4084497124:2:16:1045631263744 4084497124:2:17:1180419668836 4084497124:2:18:1323377068176 4084497124:2:19:1474503461764 4084497124:2:20:1633798849600 4084497124:3:2:32675976992 4084497124:3:3:110281422348 4084497124:3:4:261407815936 4084497124:3:5:510562140500 4084497124:3:6:882251378784 4084497124:3:7:1400982513532 4084497124:3:8:2091262527488 4084497124:3:9:2977598403396 4084497124:3:10:4084497124000 4084497124:3:11:5436465672044 4084497124:3:12:7058011030272 4084497124:3:13:8973640181428 4084497124:3:14:11207860108256 4084497124:3:15:13785177793500 4084497124:3:16:16730100219904 4084497124:3:17:20067134370212 4084497124:3:18:23820787227168 4084497124:3:19:28015565773516 4084497124:3:20:32675976992000 4084497124:4:2:65351953984 4084497124:4:3:330844267044 4084497124:4:4:1045631263744 4084497124:4:5:2552810702500 4084497124:4:6:5293508272704 4084497124:4:7:9806877594724 4084497124:4:8:16730100219904 4084497124:4:9:26798385630564 4084497124:4:10:40844971240000 4084497124:4:11:59801122392484 4084497124:4:12:84696132363264 4084497124:4:13:116657322358564 4084497124:4:14:156910041515584 4084497124:4:15:206777666902500 4084497124:4:16:267681603518464 4084497124:4:17:341141284293604 4084497124:4:18:428774170089024 4084497124:4:19:532295749696804 4084497124:4:20:653519539840000 4084497124:5:2:130703907968 4084497124:5:3:992532801132 4084497124:5:4:4182525054976 4084497124:5:5:12764053512500 4084497124:5:6:31761049636224 4084497124:5:7:68648143163068 4084497124:5:8:133840801759232 4084497124:5:9:241185470675076 4084497124:5:10:408449712400000 4084497124:5:11:657812346317324 4084497124:5:12:1016353588359168 4084497124:5:13:1516545190661332 4084497124:5:14:2196740581218176 4084497124:5:15:3101665003537500 4084497124:5:16:4282905656295424 4084497124:5:17:5799401832991268 4084497124:5:18:7717935061602432 4084497124:5:19:10113619244239276 4084497124:5:20:13070390796800000 4084497124:6:2:261407815936 4084497124:6:3:2977598403396 4084497124:6:4:16730100219904 4084497124:6:5:63820267562500 4084497124:6:6:190566297817344 4084497124:6:7:480537002141476 4084497124:6:8:1070726414073856 4084497124:6:9:2170669236075684 4084497124:6:10:4084497124000000 4084497124:6:11:7235935809490564 4084497124:6:12:12196243060310016 4084497124:6:13:19715087478597316 4084497124:6:14:30754368137054464 4084497124:6:15:46524975053062500 4084497124:6:16:68526490500726784 4084497124:6:17:98589831160851556 4084497124:6:18:138922831108843776 4084497124:6:19:192158765640546244 4084497124:6:20:261407815936000000 4084497124:7:2:522815631872 4084497124:7:3:8932795210188 4084497124:7:4:66920400879616 4084497124:7:5:319101337812500 4084497124:7:6:1143397786904064 4084497124:7:7:3363759014990332 4084497124:7:8:8565811312590848 4084497124:7:9:19536023124681156 4084497124:7:10:40844971240000000 4084497124:7:11:79595293904396204 4084497124:7:12:146354916723720192 4084497124:7:13:256296137221765108 4084497124:7:14:430561153918762496 4084497124:7:15:697874625795937500 4084497124:7:16:1096423848011628544 4084497124:7:17:1676027129734476452 4084497124:7:18:2500610959959187968 4084497124:7:19:3651016547170378636 4084497124:7:20:5228156318720000000 4084497124:8:2:1045631263744 4084497124:8:3:26798385630564 4084497124:8:4:267681603518464 4084497124:8:5:1595506689062500 4084497124:8:6:6860386721424384 4084497124:8:7:23546313104932324 4084497124:8:8:68526490500726784 4084497124:8:9:175824208122130404 4084497124:8:10:408449712400000000 4084497124:8:11:875548232948358244 4084497124:8:12:1756259000684642304 4084497124:8:13:3331849783882946404 4084497124:8:14:6027856154862674944 4084497124:8:15:10468119386939062500 4084497124:8:16:17542781568186056704 4084497124:8:17:28492461205486099684 4084497124:8:18:45010997279265383424 4084497124:8:19:69369314396237194084 4084497124:8:20:104563126374400000000 4084497124:9:2:2091262527488 4084497124:9:3:80395156891692 4084497124:9:4:1070726414073856 4084497124:9:5:7977533445312500 4084497124:9:6:41162320328546304 4084497124:9:7:164824191734526268 4084497124:9:8:548211924005814272 4084497124:9:9:1582417873099173636 4084497124:9:10:4084497124000000000 4084497124:9:11:9631030562431940684 4084497124:9:12:21075108008215707648 4084497124:9:13:43314047190478303252 4084497124:9:14:84389986168077449216 4084497124:9:15:157021790804085937500 4084497124:9:16:280684505090976907264 4084497124:9:17:484371840493263694628 4084497124:9:18:810197951026776901632 4084497124:9:19:1318016973528506687596 4084497124:9:20:2091262527488000000000 4084497124:10:2:4182525054976 4084497124:10:3:241185470675076 4084497124:10:4:4282905656295424 4084497124:10:5:39887667226562500 4084497124:10:6:246973921971277824 4084497124:10:7:1153769342141683876 4084497124:10:8:4385695392046514176 4084497124:10:9:14241760857892562724 4084497124:10:10:40844971240000000000 4084497124:10:11:105941336186751347524 4084497124:10:12:252901296098588491776 4084497124:10:13:563082613476217942276 4084497124:10:14:1181459806353084289024 4084497124:10:15:2355326862061289062500 4084497124:10:16:4490952081455630516224 4084497124:10:17:8234321288385482808676 4084497124:10:18:14583563118481984229376 4084497124:10:19:25042322497041627064324 4084497124:10:20:41825250549760000000000 4084497124:11:2:8365050109952 4084497124:11:3:723556412025228 4084497124:11:4:17131622625181696 4084497124:11:5:199438336132812500 4084497124:11:6:1481843531827666944 4084497124:11:7:8076385394991787132 4084497124:11:8:35085563136372113408 4084497124:11:9:128175847721033064516 4084497124:11:10:408449712400000000000 4084497124:11:11:1165354698054264822764 4084497124:11:12:3034815553183061901312 4084497124:11:13:7320073975190833249588 4084497124:11:14:16540437288943180046336 4084497124:11:15:35329902930919335937500 4084497124:11:16:71855233303290088259584 4084497124:11:17:139983461902553207747492 4084497124:11:18:262504136132675716128768 4084497124:11:19:475804127443790914222156 4084497124:11:20:836505010995200000000000 4084497124:12:2:16730100219904 4084497124:12:3:2170669236075684 4084497124:12:4:68526490500726784 4084497124:12:5:997191680664062500 4084497124:12:6:8891061190966001664 4084497124:12:7:56534697764942509924 4084497124:12:8:280684505090976907264 4084497124:12:9:1153582629489297580644 4084497124:12:10:4084497124000000000000 4084497124:12:11:12818901678596913050404 4084497124:12:12:36417786638196742815744 4084497124:12:13:95160961677480832244644 4084497124:12:14:231566122045204520648704 4084497124:12:15:529948543963790039062500 4084497124:12:16:1149683732852641412153344 4084497124:12:17:2379718852343404531707364 4084497124:12:18:4725074450388162890317824 4084497124:12:19:9040278421432027370220964 4084497124:12:20:16730100219904000000000000 4084497124:13:2:33460200439808 4084497124:13:3:6512007708227052 4084497124:13:4:274105962002907136 4084497124:13:5:4985958403320312500 4084497124:13:6:53346367145796009984 4084497124:13:7:395742884354597569468 4084497124:13:8:2245476040727815258112 4084497124:13:9:10382243665403678225796 4084497124:13:10:40844971240000000000000 4084497124:13:11:141007918464566043554444 4084497124:13:12:437013439658360913788928 4084497124:13:13:1237092501807250819180372 4084497124:13:14:3241925708632863289081856 4084497124:13:15:7949228159456850585937500 4084497124:13:16:18394939725642262594453504 4084497124:13:17:40455220489837877039025188 4084497124:13:18:85051340106986932025720832 4084497124:13:19:171765290007208520034198316 4084497124:13:20:334602004398080000000000000 4084497124:14:2:66920400879616 4084497124:14:3:19536023124681156 4084497124:14:4:1096423848011628544 4084497124:14:5:24929792016601562500 4084497124:14:6:320078202874776059904 4084497124:14:7:2770200190482182986276 4084497124:14:8:17963808325822522064896 4084497124:14:9:93440192988633104032164 4084497124:14:10:408449712400000000000000 4084497124:14:11:1551087103110226479098884 4084497124:14:12:5244161275900330965467136 4084497124:14:13:16082202523494260649344836 4084497124:14:14:45386959920860086047145984 4084497124:14:15:119238422391852758789062500 4084497124:14:16:294319035610276201511256064 4084497124:14:17:687738748327243909663428196 4084497124:14:18:1530924121925764776462974976 4084497124:14:19:3263540510136961880649768004 4084497124:14:20:6692040087961600000000000000 4084497124:15:2:133840801759232 4084497124:15:3:58608069374043468 4084497124:15:4:4385695392046514176 4084497124:15:5:124648960083007812500 4084497124:15:6:1920469217248656359424 4084497124:15:7:19391401333375280903932 4084497124:15:8:143710466606580176519168 4084497124:15:9:840961736897697936289476 4084497124:15:10:4084497124000000000000000 4084497124:15:11:17061958134212491270087724 4084497124:15:12:62929935310803971585605632 4084497124:15:13:209068632805425388441482868 4084497124:15:14:635417438892041204660043776 4084497124:15:15:1788576335877791381835937500 4084497124:15:16:4709104569764419224180097024 4084497124:15:17:11691558721563146464278279332 4084497124:15:18:27556634194663765976333549568 4084497124:15:19:62007269692602275732345592076 4084497124:15:20:133840801759232000000000000000 4084497124:16:2:267681603518464 4084497124:16:3:175824208122130404 4084497124:16:4:17542781568186056704 4084497124:16:5:623244800415039062500 4084497124:16:6:11522815303491938156544 4084497124:16:7:135739809333626966327524 4084497124:16:8:1149683732852641412153344 4084497124:16:9:7568655632079281426605284 4084497124:16:10:40844971240000000000000000 4084497124:16:11:187681539476337403970964964 4084497124:16:12:755159223729647659027267584 4084497124:16:13:2717892226470530049739277284 4084497124:16:14:8895844144488576865240612864 4084497124:16:15:26828645038166870727539062500 4084497124:16:16:75345673116230707586881552384 4084497124:16:17:198756498266573489892730748644 4084497124:16:18:496019415503947787574003892224 4084497124:16:19:1178138124159443238914566249444 4084497124:16:20:2676816035184640000000000000000 4084497124:17:2:535363207036928 4084497124:17:3:527472624366391212 4084497124:17:4:70171126272744226816 4084497124:17:5:3116224002075195312500 4084497124:17:6:69136891820951628939264 4084497124:17:7:950178665335388764292668 4084497124:17:8:9197469862821131297226752 4084497124:17:9:68117900688713532839447556 4084497124:17:10:408449712400000000000000000 4084497124:17:11:2064496934239711443680614604 4084497124:17:12:9061910684755771908327211008 4084497124:17:13:35332598944116890646610604692 4084497124:17:14:124541818022840076113368580096 4084497124:17:15:402429675572503060913085937500 4084497124:17:16:1205530769859691321390104838144 4084497124:17:17:3378860470531749328176422726948 4084497124:17:18:8928349479071060176332070060032 4084497124:17:19:22384624359029421539376758739436 4084497124:17:20:53536320703692800000000000000000 4084497124:18:2:1070726414073856 4084497124:18:3:1582417873099173636 4084497124:18:4:280684505090976907264 4084497124:18:5:15581120010375976562500 4084497124:18:6:414821350925709773635584 4084497124:18:7:6651250657347721350048676 4084497124:18:8:73579758902569050377814016 4084497124:18:9:613061106198421795555028004 4084497124:18:10:4084497124000000000000000000 4084497124:18:11:22709466276636825880486760644 4084497124:18:12:108742928217069262899926532096 4084497124:18:13:459323786273519578405937860996 4084497124:18:14:1743585452319761065587160121344 4084497124:18:15:6036445133587545913696289062500 4084497124:18:16:19288492317755061142241677410304 4084497124:18:17:57440627999039738578999186358116 4084497124:18:18:160710290623279083173977261080576 4084497124:18:19:425307862821559009248158416049284 4084497124:18:20:1070726414073856000000000000000000 4084497124:19:2:2141452828147712 4084497124:19:3:4747253619297520908 4084497124:19:4:1122738020363907629056 4084497124:19:5:77905600051879882812500 4084497124:19:6:2488928105554258641813504 4084497124:19:7:46558754601434049450340732 4084497124:19:8:588638071220552403022512128 4084497124:19:9:5517549955785796159995252036 4084497124:19:10:40844971240000000000000000000 4084497124:19:11:249804129043005084685354367084 4084497124:19:12:1304915138604831154799118385152 4084497124:19:13:5971209221555754519277192192948 4084497124:19:14:24410196332476654918220241698816 4084497124:19:15:90546677003813188705444335937500 4084497124:19:16:308615877084080978275866838564864 4084497124:19:17:976490675983675555842986168087972 4084497124:19:18:2892785231219023497131590699450368 4084497124:19:19:8080849393609621175715009904936396 4084497124:19:20:21414528281477120000000000000000000 4084497124:20:2:4282905656295424 4084497124:20:3:14241760857892562724 4084497124:20:4:4490952081455630516224 4084497124:20:5:389528000259399414062500 4084497124:20:6:14933568633325551850881024 4084497124:20:7:325911282210038346152385124 4084497124:20:8:4709104569764419224180097024 4084497124:20:9:49657949602072165439957268324 4084497124:20:10:408449712400000000000000000000 4084497124:20:11:2747845419473055931538898037924 4084497124:20:12:15658981663257973857589420621824 4084497124:20:13:77625719880224808750603498508324 4084497124:20:14:341742748654673168855083383783424 4084497124:20:15:1358200155057197830581665039062500 4084497124:20:16:4937854033345295652413869417037824 4084497124:20:17:16600341491722484449330764857495524 4084497124:20:18:52070134161942422948368632590106624 4084497124:20:19:153536138478582802338585188193791524 4084497124:20:20:428290565629542400000000000000000000 57250748865:0:2:57250748865 57250748865:0:3:57250748865 57250748865:0:4:57250748865 57250748865:0:5:57250748865 57250748865:0:6:57250748865 57250748865:0:7:57250748865 57250748865:0:8:57250748865 57250748865:0:9:57250748865 57250748865:0:10:57250748865 57250748865:0:11:57250748865 57250748865:0:12:57250748865 57250748865:0:13:57250748865 57250748865:0:14:57250748865 57250748865:0:15:57250748865 57250748865:0:16:57250748865 57250748865:0:17:57250748865 57250748865:0:18:57250748865 57250748865:0:19:57250748865 57250748865:0:20:57250748865 57250748865:1:2:114501497730 57250748865:1:3:171752246595 57250748865:1:4:229002995460 57250748865:1:5:286253744325 57250748865:1:6:343504493190 57250748865:1:7:400755242055 57250748865:1:8:458005990920 57250748865:1:9:515256739785 57250748865:1:10:572507488650 57250748865:1:11:629758237515 57250748865:1:12:687008986380 57250748865:1:13:744259735245 57250748865:1:14:801510484110 57250748865:1:15:858761232975 57250748865:1:16:916011981840 57250748865:1:17:973262730705 57250748865:1:18:1030513479570 57250748865:1:19:1087764228435 57250748865:1:20:1145014977300 57250748865:2:2:229002995460 57250748865:2:3:515256739785 57250748865:2:4:916011981840 57250748865:2:5:1431268721625 57250748865:2:6:2061026959140 57250748865:2:7:2805286694385 57250748865:2:8:3664047927360 57250748865:2:9:4637310658065 57250748865:2:10:5725074886500 57250748865:2:11:6927340612665 57250748865:2:12:8244107836560 57250748865:2:13:9675376558185 57250748865:2:14:11221146777540 57250748865:2:15:12881418494625 57250748865:2:16:14656191709440 57250748865:2:17:16545466421985 57250748865:2:18:18549242632260 57250748865:2:19:20667520340265 57250748865:2:20:22900299546000 57250748865:3:2:458005990920 57250748865:3:3:1545770219355 57250748865:3:4:3664047927360 57250748865:3:5:7156343608125 57250748865:3:6:12366161754840 57250748865:3:7:19637006860695 57250748865:3:8:29312383418880 57250748865:3:9:41735795922585 57250748865:3:10:57250748865000 57250748865:3:11:76200746739315 57250748865:3:12:98929294038720 57250748865:3:13:125779895256405 57250748865:3:14:157096054885560 57250748865:3:15:193221277419375 57250748865:3:16:234499067351040 57250748865:3:17:281272929173745 57250748865:3:18:333886367380680 57250748865:3:19:392682886465035 57250748865:3:20:458005990920000 57250748865:4:2:916011981840 57250748865:4:3:4637310658065 57250748865:4:4:14656191709440 57250748865:4:5:35781718040625 57250748865:4:6:74196970529040 57250748865:4:7:137459048024865 57250748865:4:8:234499067351040 57250748865:4:9:375622163303265 57250748865:4:10:572507488650000 57250748865:4:11:838208214132465 57250748865:4:12:1187151528464640 57250748865:4:13:1635138638333265 57250748865:4:14:2199344768397840 57250748865:4:15:2898319161290625 57250748865:4:16:3751985077616640 57250748865:4:17:4781639795953665 57250748865:4:18:6009954612852240 57250748865:4:19:7460974842835665 57250748865:4:20:9160119818400000 57250748865:5:2:1832023963680 57250748865:5:3:13911931974195 57250748865:5:4:58624766837760 57250748865:5:5:178908590203125 57250748865:5:6:445181823174240 57250748865:5:7:962213336174055 57250748865:5:8:1875992538808320 57250748865:5:9:3380599469729385 57250748865:5:10:5725074886500000 57250748865:5:11:9220290355457115 57250748865:5:12:14245818341575680 57250748865:5:13:21256802298332445 57250748865:5:14:30790826757569760 57250748865:5:15:43474787419359375 57250748865:5:16:60031761241866240 57250748865:5:17:81287876531212305 57250748865:5:18:108179183031340320 57250748865:5:19:141758522013877635 57250748865:5:20:183202396368000000 57250748865:6:2:3664047927360 57250748865:6:3:41735795922585 57250748865:6:4:234499067351040 57250748865:6:5:894542951015625 57250748865:6:6:2671090939045440 57250748865:6:7:6735493353218385 57250748865:6:8:15007940310466560 57250748865:6:9:30425395227564465 57250748865:6:10:57250748865000000 57250748865:6:11:101423193910028265 57250748865:6:12:170949820098908160 57250748865:6:13:276338429878321785 57250748865:6:14:431071574605976640 57250748865:6:15:652121811290390625 57250748865:6:16:960508179869859840 57250748865:6:17:1381893901030609185 57250748865:6:18:1947225294564125760 57250748865:6:19:2693411918263675065 57250748865:6:20:3664047927360000000 57250748865:7:2:7328095854720 57250748865:7:3:125207387767755 57250748865:7:4:937996269404160 57250748865:7:5:4472714755078125 57250748865:7:6:16026545634272640 57250748865:7:7:47148453472528695 57250748865:7:8:120063522483732480 57250748865:7:9:273828557048080185 57250748865:7:10:572507488650000000 57250748865:7:11:1115655133010310915 57250748865:7:12:2051397841186897920 57250748865:7:13:3592399588418183205 57250748865:7:14:6035002044483672960 57250748865:7:15:9781827169355859375 57250748865:7:16:15368130877917757440 57250748865:7:17:23492196317520356145 57250748865:7:18:35050055302154263680 57250748865:7:19:51174826447009826235 57250748865:7:20:73280958547200000000 57250748865:8:2:14656191709440 57250748865:8:3:375622163303265 57250748865:8:4:3751985077616640 57250748865:8:5:22363573775390625 57250748865:8:6:96159273805635840 57250748865:8:7:330039174307700865 57250748865:8:8:960508179869859840 57250748865:8:9:2464457013432721665 57250748865:8:10:5725074886500000000 57250748865:8:11:12272206463113420065 57250748865:8:12:24616774094242775040 57250748865:8:13:46701194649436381665 57250748865:8:14:84490028622771421440 57250748865:8:15:146727407540337890625 57250748865:8:16:245890094046684119040 57250748865:8:17:399367337397846054465 57250748865:8:18:630900995438776746240 57250748865:8:19:972321702493186698465 57250748865:8:20:1465619170944000000000 57250748865:9:2:29312383418880 57250748865:9:3:1126866489909795 57250748865:9:4:15007940310466560 57250748865:9:5:111817868876953125 57250748865:9:6:576955642833815040 57250748865:9:7:2310274220153906055 57250748865:9:8:7684065438958878720 57250748865:9:9:22180113120894494985 57250748865:9:10:57250748865000000000 57250748865:9:11:134994271094247620715 57250748865:9:12:295401289130913300480 57250748865:9:13:607115530442672961645 57250748865:9:14:1182860400718799900160 57250748865:9:15:2200911113105068359375 57250748865:9:16:3934241504746945904640 57250748865:9:17:6789244735763382925905 57250748865:9:18:11356217917897981432320 57250748865:9:19:18474112347370547270835 57250748865:9:20:29312383418880000000000 57250748865:10:2:58624766837760 57250748865:10:3:3380599469729385 57250748865:10:4:60031761241866240 57250748865:10:5:559089344384765625 57250748865:10:6:3461733857002890240 57250748865:10:7:16171919541077342385 57250748865:10:8:61472523511671029760 57250748865:10:9:199621018088050454865 57250748865:10:10:572507488650000000000 57250748865:10:11:1484936982036723827865 57250748865:10:12:3544815469570959605760 57250748865:10:13:7892501895754748501385 57250748865:10:14:16560045610063198602240 57250748865:10:15:33013666696576025390625 57250748865:10:16:62947864075951134474240 57250748865:10:17:115417160507977509740385 57250748865:10:18:204411922522163665781760 57250748865:10:19:351008134600040398145865 57250748865:10:20:586247668377600000000000 57250748865:11:2:117249533675520 57250748865:11:3:10141798409188155 57250748865:11:4:240127044967464960 57250748865:11:5:2795446721923828125 57250748865:11:6:20770403142017341440 57250748865:11:7:113203436787541396695 57250748865:11:8:491780188093368238080 57250748865:11:9:1796589162792454093785 57250748865:11:10:5725074886500000000000 57250748865:11:11:16334306802403962106515 57250748865:11:12:42537785634851515269120 57250748865:11:13:102602524644811730518005 57250748865:11:14:231840638540884780431360 57250748865:11:15:495205000448640380859375 57250748865:11:16:1007165825215218151587840 57250748865:11:17:1962091728635617665586545 57250748865:11:18:3679414605398945984071680 57250748865:11:19:6669154557400767564771435 57250748865:11:20:11724953367552000000000000 57250748865:12:2:234499067351040 57250748865:12:3:30425395227564465 57250748865:12:4:960508179869859840 57250748865:12:5:13977233609619140625 57250748865:12:6:124622418852104048640 57250748865:12:7:792424057512789776865 57250748865:12:8:3934241504746945904640 57250748865:12:9:16169302465132086844065 57250748865:12:10:57250748865000000000000 57250748865:12:11:179677374826443583171665 57250748865:12:12:510453427618218183229440 57250748865:12:13:1333832820382552496734065 57250748865:12:14:3245768939572386926039040 57250748865:12:15:7428075006729605712890625 57250748865:12:16:16114653203443490425405440 57250748865:12:17:33355559386805500314971265 57250748865:12:18:66229462897181027713290240 57250748865:12:19:126713936590614583730657265 57250748865:12:20:234499067351040000000000000 57250748865:13:2:468998134702080 57250748865:13:3:91276185682693395 57250748865:13:4:3842032719479439360 57250748865:13:5:69886168048095703125 57250748865:13:6:747734513112624291840 57250748865:13:7:5546968402589528438055 57250748865:13:8:31473932037975567237120 57250748865:13:9:145523722186188781596585 57250748865:13:10:572507488650000000000000 57250748865:13:11:1976451123090879414888315 57250748865:13:12:6125441131418618198753280 57250748865:13:13:17339826664973182457542845 57250748865:13:14:45440765154013416964546560 57250748865:13:15:111421125100944085693359375 57250748865:13:16:257834451255095846806487040 57250748865:13:17:567044509575693505354511505 57250748865:13:18:1192130332149258498839224320 57250748865:13:19:2407564795221677090882488035 57250748865:13:20:4689981347020800000000000000 57250748865:14:2:937996269404160 57250748865:14:3:273828557048080185 57250748865:14:4:15368130877917757440 57250748865:14:5:349430840240478515625 57250748865:14:6:4486407078675745751040 57250748865:14:7:38828778818126699066385 57250748865:14:8:251791456303804537896960 57250748865:14:9:1309713499675699034369265 57250748865:14:10:5725074886500000000000000 57250748865:14:11:21740962353999673563771465 57250748865:14:12:73505293577023418385039360 57250748865:14:13:225417746644651371948056985 57250748865:14:14:636170712156187837503651840 57250748865:14:15:1671316876514161285400390625 57250748865:14:16:4125351220081533548903792640 57250748865:14:17:9639756662786789591026695585 57250748865:14:18:21458345978686652979106037760 57250748865:14:19:45743731109211864726767272665 57250748865:14:20:93799626940416000000000000000 57250748865:15:2:1875992538808320 57250748865:15:3:821485671144240555 57250748865:15:4:61472523511671029760 57250748865:15:5:1747154201202392578125 57250748865:15:6:26918442472054474506240 57250748865:15:7:271801451726886893464695 57250748865:15:8:2014331650430436303175680 57250748865:15:9:11787421497081291309323385 57250748865:15:10:57250748865000000000000000 57250748865:15:11:239150585893996409201486115 57250748865:15:12:882063522924281020620472320 57250748865:15:13:2930430706380467835324740805 57250748865:15:14:8906389970186629725051125760 57250748865:15:15:25069753147712419281005859375 57250748865:15:16:66005619521304536782460682240 57250748865:15:17:163875863267375423047453824945 57250748865:15:18:386250227616359753623908679680 57250748865:15:19:869130891075025429808578180635 57250748865:15:20:1875992538808320000000000000000 57250748865:16:2:3751985077616640 57250748865:16:3:2464457013432721665 57250748865:16:4:245890094046684119040 57250748865:16:5:8735771006011962890625 57250748865:16:6:161510654832326847037440 57250748865:16:7:1902610162088208254252865 57250748865:16:8:16114653203443490425405440 57250748865:16:9:106086793473731621783910465 57250748865:16:10:572507488650000000000000000 57250748865:16:11:2630656444833960501216347265 57250748865:16:12:10584762275091372247445667840 57250748865:16:13:38095599182946081859221630465 57250748865:16:14:124689459582612816150715760640 57250748865:16:15:376046297215686289215087890625 57250748865:16:16:1056089912340872588519370915840 57250748865:16:17:2785889675545382191806715024065 57250748865:16:18:6952504097094475565230356234240 57250748865:16:19:16513486930425483166362985432065 57250748865:16:20:37519850776166400000000000000000 57250748865:17:2:7503970155233280 57250748865:17:3:7393371040298164995 57250748865:17:4:983560376186736476160 57250748865:17:5:43678855030059814453125 57250748865:17:6:969063928993961082224640 57250748865:17:7:13318271134617457779770055 57250748865:17:8:128917225627547923403243520 57250748865:17:9:954781141263584596055194185 57250748865:17:10:5725074886500000000000000000 57250748865:17:11:28937220893173565513379819915 57250748865:17:12:127017147301096466969348014080 57250748865:17:13:495242789378299064169881196045 57250748865:17:14:1745652434156579426110020648960 57250748865:17:15:5640694458235294338226318359375 57250748865:17:16:16897438597453961416309934653440 57250748865:17:17:47360124484271497260714155409105 57250748865:17:18:125145073747700560174146412216320 57250748865:17:19:313756251678084180160896723209235 57250748865:17:20:750397015523328000000000000000000 57250748865:18:2:15007940310466560 57250748865:18:3:22180113120894494985 57250748865:18:4:3934241504746945904640 57250748865:18:5:218394275150299072265625 57250748865:18:6:5814383573963766493347840 57250748865:18:7:93227897942322204458390385 57250748865:18:8:1031337805020383387225948160 57250748865:18:9:8593030271372261364496747665 57250748865:18:10:57250748865000000000000000000 57250748865:18:11:318309429824909220647178019065 57250748865:18:12:1524205767613157603632176168960 57250748865:18:13:6438156261917887834208455548585 57250748865:18:14:24439134078192111965540289085440 57250748865:18:15:84610416873529415073394775390625 57250748865:18:16:270359017559263382660958954455040 57250748865:18:17:805122116232615453432140641954785 57250748865:18:18:2252611327458610083134635419893760 57250748865:18:19:5961368781883599423057037740975465 57250748865:18:20:15007940310466560000000000000000000 57250748865:19:2:30015880620933120 57250748865:19:3:66540339362683484955 57250748865:19:4:15736966018987783618560 57250748865:19:5:1091971375751495361328125 57250748865:19:6:34886301443782598960087040 57250748865:19:7:652595285596255431208732695 57250748865:19:8:8250702440163067097807585280 57250748865:19:9:77337272442350352280470728985 57250748865:19:10:572507488650000000000000000000 57250748865:19:11:3501403728074001427118958209715 57250748865:19:12:18290469211357891243586114027520 57250748865:19:13:83696031404932541844709922131605 57250748865:19:14:342147877094689567517564047196160 57250748865:19:15:1269156253102941226100921630859375 57250748865:19:16:4325744280948214122575343271280640 57250748865:19:17:13687075975954462708346390913231345 57250748865:19:18:40547003894254981496423437558087680 57250748865:19:19:113266006855788389038083717078533835 57250748865:19:20:300158806209331200000000000000000000 57250748865:20:2:60031761241866240 57250748865:20:3:199621018088050454865 57250748865:20:4:62947864075951134474240 57250748865:20:5:5459856878757476806640625 57250748865:20:6:209317808662695593760522240 57250748865:20:7:4568166999173788018461128865 57250748865:20:8:66005619521304536782460682240 57250748865:20:9:696035451981153170524236560865 57250748865:20:10:5725074886500000000000000000000 57250748865:20:11:38515441008814015698308540306865 57250748865:20:12:219485630536294694923033368330240 57250748865:20:13:1088048408264123043981228987710865 57250748865:20:14:4790070279325653945245896660746240 57250748865:20:15:19037343796544118391513824462890625 57250748865:20:16:69211908495171425961205492340490240 57250748865:20:17:232680291591225866041888645524932865 57250748865:20:18:729846070096589666935621876045578240 57250748865:20:19:2152054130259979391723590624492142865 57250748865:20:20:6003176124186624000000000000000000000 371258865694:0:2:371258865694 371258865694:0:3:371258865694 371258865694:0:4:371258865694 371258865694:0:5:371258865694 371258865694:0:6:371258865694 371258865694:0:7:371258865694 371258865694:0:8:371258865694 371258865694:0:9:371258865694 371258865694:0:10:371258865694 371258865694:0:11:371258865694 371258865694:0:12:371258865694 371258865694:0:13:371258865694 371258865694:0:14:371258865694 371258865694:0:15:371258865694 371258865694:0:16:371258865694 371258865694:0:17:371258865694 371258865694:0:18:371258865694 371258865694:0:19:371258865694 371258865694:0:20:371258865694 371258865694:1:2:742517731388 371258865694:1:3:1113776597082 371258865694:1:4:1485035462776 371258865694:1:5:1856294328470 371258865694:1:6:2227553194164 371258865694:1:7:2598812059858 371258865694:1:8:2970070925552 371258865694:1:9:3341329791246 371258865694:1:10:3712588656940 371258865694:1:11:4083847522634 371258865694:1:12:4455106388328 371258865694:1:13:4826365254022 371258865694:1:14:5197624119716 371258865694:1:15:5568882985410 371258865694:1:16:5940141851104 371258865694:1:17:6311400716798 371258865694:1:18:6682659582492 371258865694:1:19:7053918448186 371258865694:1:20:7425177313880 371258865694:2:2:1485035462776 371258865694:2:3:3341329791246 371258865694:2:4:5940141851104 371258865694:2:5:9281471642350 371258865694:2:6:13365319164984 371258865694:2:7:18191684419006 371258865694:2:8:23760567404416 371258865694:2:9:30071968121214 371258865694:2:10:37125886569400 371258865694:2:11:44922322748974 371258865694:2:12:53461276659936 371258865694:2:13:62742748302286 371258865694:2:14:72766737676024 371258865694:2:15:83533244781150 371258865694:2:16:95042269617664 371258865694:2:17:107293812185566 371258865694:2:18:120287872484856 371258865694:2:19:134024450515534 371258865694:2:20:148503546277600 371258865694:3:2:2970070925552 371258865694:3:3:10023989373738 371258865694:3:4:23760567404416 371258865694:3:5:46407358211750 371258865694:3:6:80191914989904 371258865694:3:7:127341790933042 371258865694:3:8:190084539235328 371258865694:3:9:270647713090926 371258865694:3:10:371258865694000 371258865694:3:11:494145550238714 371258865694:3:12:641535319919232 371258865694:3:13:815655727929718 371258865694:3:14:1018734327464336 371258865694:3:15:1252998671717250 371258865694:3:16:1520676313882624 371258865694:3:17:1823994807154622 371258865694:3:18:2165181704727408 371258865694:3:19:2546464559795146 371258865694:3:20:2970070925552000 371258865694:4:2:5940141851104 371258865694:4:3:30071968121214 371258865694:4:4:95042269617664 371258865694:4:5:232036791058750 371258865694:4:6:481151489939424 371258865694:4:7:891392536531294 371258865694:4:8:1520676313882624 371258865694:4:9:2435829417818334 371258865694:4:10:3712588656940000 371258865694:4:11:5435601052625854 371258865694:4:12:7698423839030784 371258865694:4:13:10603524463086334 371258865694:4:14:14262280584500704 371258865694:4:15:18794980075758750 371258865694:4:16:24330821022121984 371258865694:4:17:31007911721628574 371258865694:4:18:38973270685093344 371258865694:4:19:48382826636107774 371258865694:4:20:59401418511040000 371258865694:5:2:11880283702208 371258865694:5:3:90215904363642 371258865694:5:4:380169078470656 371258865694:5:5:1160183955293750 371258865694:5:6:2886908939636544 371258865694:5:7:6239747755719058 371258865694:5:8:12165410511060992 371258865694:5:9:21922464760365006 371258865694:5:10:37125886569400000 371258865694:5:11:59791611578884394 371258865694:5:12:92381086068369408 371258865694:5:13:137845818020122342 371258865694:5:14:199671928183009856 371258865694:5:15:281924701136381250 371258865694:5:16:389293136353951744 371258865694:5:17:527134499267685758 371258865694:5:18:701518872331680192 371258865694:5:19:919273706086047706 371258865694:5:20:1188028370220800000 371258865694:6:2:23760567404416 371258865694:6:3:270647713090926 371258865694:6:4:1520676313882624 371258865694:6:5:5800919776468750 371258865694:6:6:17321453637819264 371258865694:6:7:43678234290033406 371258865694:6:8:97323284088487936 371258865694:6:9:197302182843285054 371258865694:6:10:371258865694000000 371258865694:6:11:657707727367728334 371258865694:6:12:1108573032820432896 371258865694:6:13:1791995634261590446 371258865694:6:14:2795406994562137984 371258865694:6:15:4228870517045718750 371258865694:6:16:6228690181663227904 371258865694:6:17:8961286487550657886 371258865694:6:18:12627339701970243456 371258865694:6:19:17466200415634906414 371258865694:6:20:23760567404416000000 371258865694:7:2:47521134808832 371258865694:7:3:811943139272778 371258865694:7:4:6082705255530496 371258865694:7:5:29004598882343750 371258865694:7:6:103928721826915584 371258865694:7:7:305747640030233842 371258865694:7:8:778586272707903488 371258865694:7:9:1775719645589565486 371258865694:7:10:3712588656940000000 371258865694:7:11:7234785001045011674 371258865694:7:12:13302876393845194752 371258865694:7:13:23295943245400675798 371258865694:7:14:39135697923869931776 371258865694:7:15:63433057755685781250 371258865694:7:16:99659042906611646464 371258865694:7:17:152341870288361184062 371258865694:7:18:227292114635464382208 371258865694:7:19:331857807897063221866 371258865694:7:20:475211348088320000000 371258865694:8:2:95042269617664 371258865694:8:3:2435829417818334 371258865694:8:4:24330821022121984 371258865694:8:5:145022994411718750 371258865694:8:6:623572330961493504 371258865694:8:7:2140233480211636894 371258865694:8:8:6228690181663227904 371258865694:8:9:15981476810306089374 371258865694:8:10:37125886569400000000 371258865694:8:11:79582635011495128414 371258865694:8:12:159634516726142337024 371258865694:8:13:302847262190208785374 371258865694:8:14:547899770934179044864 371258865694:8:15:951495866335286718750 371258865694:8:16:1594544686505786343424 371258865694:8:17:2589811794902140129054 371258865694:8:18:4091258063438358879744 371258865694:8:19:6305298350044201215454 371258865694:8:20:9504226961766400000000 371258865694:9:2:190084539235328 371258865694:9:3:7307488253455002 371258865694:9:4:97323284088487936 371258865694:9:5:725114972058593750 371258865694:9:6:3741433985768961024 371258865694:9:7:14981634361481458258 371258865694:9:8:49829521453305823232 371258865694:9:9:143833291292754804366 371258865694:9:10:371258865694000000000 371258865694:9:11:875408985126446412554 371258865694:9:12:1915614200713708044288 371258865694:9:13:3937014408472714209862 371258865694:9:14:7670596793078506628096 371258865694:9:15:14272437995029300781250 371258865694:9:16:25512714984092581494784 371258865694:9:17:44026800513336382193918 371258865694:9:18:73642645141890459835392 371258865694:9:19:119800668650839823093626 371258865694:9:20:190084539235328000000000 371258865694:10:2:380169078470656 371258865694:10:3:21922464760365006 371258865694:10:4:389293136353951744 371258865694:10:5:3625574860292968750 371258865694:10:6:22448603914613766144 371258865694:10:7:104871440530370207806 371258865694:10:8:398636171626446585856 371258865694:10:9:1294499621634793239294 371258865694:10:10:3712588656940000000000 371258865694:10:11:9629498836390910538094 371258865694:10:12:22987370408564496531456 371258865694:10:13:51181187310145284728206 371258865694:10:14:107388355103099092793344 371258865694:10:15:214086569925439511718750 371258865694:10:16:408203439745481303916544 371258865694:10:17:748455608726718497296606 371258865694:10:18:1325567612554028277037056 371258865694:10:19:2276212704365956638778894 371258865694:10:20:3801690784706560000000000 371258865694:11:2:760338156941312 371258865694:11:3:65767394281095018 371258865694:11:4:1557172545415806976 371258865694:11:5:18127874301464843750 371258865694:11:6:134691623487682596864 371258865694:11:7:734100083712591454642 371258865694:11:8:3189089373011572686848 371258865694:11:9:11650496594713139153646 371258865694:11:10:37125886569400000000000 371258865694:11:11:105924487200300015919034 371258865694:11:12:275848444902773958377472 371258865694:11:13:665355435031888701466678 371258865694:11:14:1503436971443387299106816 371258865694:11:15:3211298548881592675781250 371258865694:11:16:6531255035927700862664704 371258865694:11:17:12723745348354214454042302 371258865694:11:18:23860217025972508986667008 371258865694:11:19:43248041382953176136798986 371258865694:11:20:76033815694131200000000000 371258865694:12:2:1520676313882624 371258865694:12:3:197302182843285054 371258865694:12:4:6228690181663227904 371258865694:12:5:90639371507324218750 371258865694:12:6:808149740926095581184 371258865694:12:7:5138700585988140182494 371258865694:12:8:25512714984092581494784 371258865694:12:9:104854469352418252382814 371258865694:12:10:371258865694000000000000 371258865694:12:11:1165169359203300175109374 371258865694:12:12:3310181338833287500529664 371258865694:12:13:8649620655414553119066814 371258865694:12:14:21048117600207422187495424 371258865694:12:15:48169478233223890136718750 371258865694:12:16:104500080574843213802635264 371258865694:12:17:216303670922021645718719134 371258865694:12:18:429483906467505161760006144 371258865694:12:19:821712786276110346599180734 371258865694:12:20:1520676313882624000000000000 371258865694:13:2:3041352627765248 371258865694:13:3:591906548529855162 371258865694:13:4:24914760726652911616 371258865694:13:5:453196857536621093750 371258865694:13:6:4848898445556573487104 371258865694:13:7:35970904101916981277458 371258865694:13:8:204101719872740651958272 371258865694:13:9:943690224171764271445326 371258865694:13:10:3712588656940000000000000 371258865694:13:11:12816862951236301926203114 371258865694:13:12:39722176065999450006355968 371258865694:13:13:112445068520389190547868582 371258865694:13:14:294673646402903910624935936 371258865694:13:15:722542173498358352050781250 371258865694:13:16:1672001289197491420842164224 371258865694:13:17:3677162405674367977218225278 371258865694:13:18:7730710316415092911680110592 371258865694:13:19:15612542939246096585384433946 371258865694:13:20:30413526277652480000000000000 371258865694:14:2:6082705255530496 371258865694:14:3:1775719645589565486 371258865694:14:4:99659042906611646464 371258865694:14:5:2265984287683105468750 371258865694:14:6:29093390673339440922624 371258865694:14:7:251796328713418868942206 371258865694:14:8:1632813758981925215666176 371258865694:14:9:8493212017545878443007934 371258865694:14:10:37125886569400000000000000 371258865694:14:11:140985492463599321188234254 371258865694:14:12:476666112791993400076271616 371258865694:14:13:1461785890765059477122291566 371258865694:14:14:4125431049640654748749103104 371258865694:14:15:10838132602475375280761718750 371258865694:14:16:26752020627159862733474627584 371258865694:14:17:62511760896464255612709829726 371258865694:14:18:139152785695471672410241990656 371258865694:14:19:296638315845675835122304244974 371258865694:14:20:608270525553049600000000000000 371258865694:15:2:12165410511060992 371258865694:15:3:5327158936768696458 371258865694:15:4:398636171626446585856 371258865694:15:5:11329921438415527343750 371258865694:15:6:174560344040036645535744 371258865694:15:7:1762574300993932082595442 371258865694:15:8:13062510071855401725329408 371258865694:15:9:76438908157912905987071406 371258865694:15:10:371258865694000000000000000 371258865694:15:11:1550840417099592533070576794 371258865694:15:12:5719993353503920800915259392 371258865694:15:13:19003216579945773202589790358 371258865694:15:14:57756034694969166482487443456 371258865694:15:15:162571989037130629211425781250 371258865694:15:16:428032330034557803735594041344 371258865694:15:17:1062699935239892345416067105342 371258865694:15:18:2504750142518490103384355831808 371258865694:15:19:5636128001067840867323780654506 371258865694:15:20:12165410511060992000000000000000 371258865694:16:2:24330821022121984 371258865694:16:3:15981476810306089374 371258865694:16:4:1594544686505786343424 371258865694:16:5:56649607192077636718750 371258865694:16:6:1047362064240219873214464 371258865694:16:7:12338020106957524578168094 371258865694:16:8:104500080574843213802635264 371258865694:16:9:687950173421216153883642654 371258865694:16:10:3712588656940000000000000000 371258865694:16:11:17059244588095517863776344734 371258865694:16:12:68639920242047049610983112704 371258865694:16:13:247041815539295051633667274654 371258865694:16:14:808584485729568330754824208384 371258865694:16:15:2438579835556959438171386718750 371258865694:16:16:6848517280552924859769504661504 371258865694:16:17:18065898899078169872073140790814 371258865694:16:18:45085502565332821860918404972544 371258865694:16:19:107086432020288976479151832435614 371258865694:16:20:243308210221219840000000000000000 371258865694:17:2:48661642044243968 371258865694:17:3:47944430430918268122 371258865694:17:4:6378178746023145373696 371258865694:17:5:283248035960388183593750 371258865694:17:6:6284172385441319239286784 371258865694:17:7:86366140748702672047176658 371258865694:17:8:836000644598745710421082112 371258865694:17:9:6191551560790945384952783886 371258865694:17:10:37125886569400000000000000000 371258865694:17:11:187651690469050696501539792074 371258865694:17:12:823679042904564595331797352448 371258865694:17:13:3211543602010835671237674570502 371258865694:17:14:11320182800213956630567538917376 371258865694:17:15:36578697533354391572570800781250 371258865694:17:16:109576276488846797756312074584064 371258865694:17:17:307120281284328887825243393443838 371258865694:17:18:811539046175990793496531289505792 371258865694:17:19:2034642208385490553103884816276666 371258865694:17:20:4866164204424396800000000000000000 371258865694:18:2:97323284088487936 371258865694:18:3:143833291292754804366 371258865694:18:4:25512714984092581494784 371258865694:18:5:1416240179801940917968750 371258865694:18:6:37705034312647915435720704 371258865694:18:7:604562985240918704330236606 371258865694:18:8:6688005156789965683368656896 371258865694:18:9:55723964047118508464575054974 371258865694:18:10:371258865694000000000000000000 371258865694:18:11:2064168595159557661516937712814 371258865694:18:12:9884148514854775143981568229376 371258865694:18:13:41750066826140863726089769416526 371258865694:18:14:158482559202995392827945544843264 371258865694:18:15:548680463000315873588562011718750 371258865694:18:16:1753220423821548764100993193345024 371258865694:18:17:5221044781833591093029137688545246 371258865694:18:18:14607702831167834282937563211104256 371258865694:18:19:38658201959324320508973811509256654 371258865694:18:20:97323284088487936000000000000000000 371258865694:19:2:194646568176975872 371258865694:19:3:431499873878264413098 371258865694:19:4:102050859936370325979136 371258865694:19:5:7081200899009704589843750 371258865694:19:6:226230205875887492614324224 371258865694:19:7:4231940896686430930311656242 371258865694:19:8:53504041254319725466949255168 371258865694:19:9:501515676424066576181175494766 371258865694:19:10:3712588656940000000000000000000 371258865694:19:11:22705854546755134276686314840954 371258865694:19:12:118609782178257301727778818752512 371258865694:19:13:542750868739831228439167002414838 371258865694:19:14:2218755828841935499591237627805696 371258865694:19:15:8230206945004738103828430175781250 371258865694:19:16:28051526781144780225615891093520384 371258865694:19:17:88757761291171048581495340705269182 371258865694:19:18:262938650961021017092876137799876608 371258865694:19:19:734505837227162089670502418675876426 371258865694:19:20:1946465681769758720000000000000000000 371258865694:20:2:389293136353951744 371258865694:20:3:1294499621634793239294 371258865694:20:4:408203439745481303916544 371258865694:20:5:35406004495048522949218750 371258865694:20:6:1357381235255324955685945344 371258865694:20:7:29623586276805016512181593694 371258865694:20:8:428032330034557803735594041344 371258865694:20:9:4513641087816599185630579452894 371258865694:20:10:37125886569400000000000000000000 371258865694:20:11:249764400014306477043549463250494 371258865694:20:12:1423317386139087620733345825030144 371258865694:20:13:7055761293617805969709171031392894 371258865694:20:14:31062581603787096994277326789279744 371258865694:20:15:123453104175071071557426452636718750 371258865694:20:16:448824428498316483609854257496326144 371258865694:20:17:1508881941949907825885420791989576094 371258865694:20:18:4732895717298378307671770480397778944 371258865694:20:19:13955610907316079703739545954841652094 371258865694:20:20:38929313635395174400000000000000000000 5030561530485:0:2:5030561530485 5030561530485:0:3:5030561530485 5030561530485:0:4:5030561530485 5030561530485:0:5:5030561530485 5030561530485:0:6:5030561530485 5030561530485:0:7:5030561530485 5030561530485:0:8:5030561530485 5030561530485:0:9:5030561530485 5030561530485:0:10:5030561530485 5030561530485:0:11:5030561530485 5030561530485:0:12:5030561530485 5030561530485:0:13:5030561530485 5030561530485:0:14:5030561530485 5030561530485:0:15:5030561530485 5030561530485:0:16:5030561530485 5030561530485:0:17:5030561530485 5030561530485:0:18:5030561530485 5030561530485:0:19:5030561530485 5030561530485:0:20:5030561530485 5030561530485:1:2:10061123060970 5030561530485:1:3:15091684591455 5030561530485:1:4:20122246121940 5030561530485:1:5:25152807652425 5030561530485:1:6:30183369182910 5030561530485:1:7:35213930713395 5030561530485:1:8:40244492243880 5030561530485:1:9:45275053774365 5030561530485:1:10:50305615304850 5030561530485:1:11:55336176835335 5030561530485:1:12:60366738365820 5030561530485:1:13:65397299896305 5030561530485:1:14:70427861426790 5030561530485:1:15:75458422957275 5030561530485:1:16:80488984487760 5030561530485:1:17:85519546018245 5030561530485:1:18:90550107548730 5030561530485:1:19:95580669079215 5030561530485:1:20:100611230609700 5030561530485:2:2:20122246121940 5030561530485:2:3:45275053774365 5030561530485:2:4:80488984487760 5030561530485:2:5:125764038262125 5030561530485:2:6:181100215097460 5030561530485:2:7:246497514993765 5030561530485:2:8:321955937951040 5030561530485:2:9:407475483969285 5030561530485:2:10:503056153048500 5030561530485:2:11:608697945188685 5030561530485:2:12:724400860389840 5030561530485:2:13:850164898651965 5030561530485:2:14:985990059975060 5030561530485:2:15:1131876344359125 5030561530485:2:16:1287823751804160 5030561530485:2:17:1453832282310165 5030561530485:2:18:1629901935877140 5030561530485:2:19:1816032712505085 5030561530485:2:20:2012224612194000 5030561530485:3:2:40244492243880 5030561530485:3:3:135825161323095 5030561530485:3:4:321955937951040 5030561530485:3:5:628820191310625 5030561530485:3:6:1086601290584760 5030561530485:3:7:1725482604956355 5030561530485:3:8:2575647503608320 5030561530485:3:9:3667279355723565 5030561530485:3:10:5030561530485000 5030561530485:3:11:6695677397075535 5030561530485:3:12:8692810324678080 5030561530485:3:13:11052143682475545 5030561530485:3:14:13803860839650840 5030561530485:3:15:16978145165386875 5030561530485:3:16:20605180028866560 5030561530485:3:17:24715148799272805 5030561530485:3:18:29338234845788520 5030561530485:3:19:34504621537596615 5030561530485:3:20:40244492243880000 5030561530485:4:2:80488984487760 5030561530485:4:3:407475483969285 5030561530485:4:4:1287823751804160 5030561530485:4:5:3144100956553125 5030561530485:4:6:6519607743508560 5030561530485:4:7:12078378234694485 5030561530485:4:8:20605180028866560 5030561530485:4:9:33005514201512085 5030561530485:4:10:50305615304850000 5030561530485:4:11:73652451367830885 5030561530485:4:12:104313723896136960 5030561530485:4:13:143677867872182085 5030561530485:4:14:193254051755111760 5030561530485:4:15:254672177480803125 5030561530485:4:16:329682880461864960 5030561530485:4:17:420157529587637685 5030561530485:4:18:528088227224193360 5030561530485:4:19:655587809214335685 5030561530485:4:20:804889844877600000 5030561530485:5:2:160977968975520 5030561530485:5:3:1222426451907855 5030561530485:5:4:5151295007216640 5030561530485:5:5:15720504782765625 5030561530485:5:6:39117646461051360 5030561530485:5:7:84548647642861395 5030561530485:5:8:164841440230932480 5030561530485:5:9:297049627813608765 5030561530485:5:10:503056153048500000 5030561530485:5:11:810176965046139735 5030561530485:5:12:1251764686753643520 5030561530485:5:13:1867812282338367105 5030561530485:5:14:2705556724571564640 5030561530485:5:15:3820082662212046875 5030561530485:5:16:5274926087389839360 5030561530485:5:17:7142678002989840645 5030561530485:5:18:9505588090035480480 5030561530485:5:19:12456168375072378015 5030561530485:5:20:16097796897552000000 5030561530485:6:2:321955937951040 5030561530485:6:3:3667279355723565 5030561530485:6:4:20605180028866560 5030561530485:6:5:78602523913828125 5030561530485:6:6:234705878766308160 5030561530485:6:7:591840533500029765 5030561530485:6:8:1318731521847459840 5030561530485:6:9:2673446650322478885 5030561530485:6:10:5030561530485000000 5030561530485:6:11:8911946615507537085 5030561530485:6:12:15021176241043722240 5030561530485:6:13:24281559670398772365 5030561530485:6:14:37877794144001904960 5030561530485:6:15:57301239933180703125 5030561530485:6:16:84398817398237429760 5030561530485:6:17:121425526050827290965 5030561530485:6:18:171100585620638648640 5030561530485:6:19:236667199126375182285 5030561530485:6:20:321955937951040000000 5030561530485:7:2:643911875902080 5030561530485:7:3:11001838067170695 5030561530485:7:4:82420720115466240 5030561530485:7:5:393012619569140625 5030561530485:7:6:1408235272597848960 5030561530485:7:7:4142883734500208355 5030561530485:7:8:10549852174779678720 5030561530485:7:9:24061019852902309965 5030561530485:7:10:50305615304850000000 5030561530485:7:11:98031412770582907935 5030561530485:7:12:180254114892524666880 5030561530485:7:13:315660275715184040745 5030561530485:7:14:530289118016026669440 5030561530485:7:15:859518598997710546875 5030561530485:7:16:1350381078371798876160 5030561530485:7:17:2064233942864063946405 5030561530485:7:18:3079810541171495675520 5030561530485:7:19:4496676783401128463415 5030561530485:7:20:6439118759020800000000 5030561530485:8:2:1287823751804160 5030561530485:8:3:33005514201512085 5030561530485:8:4:329682880461864960 5030561530485:8:5:1965063097845703125 5030561530485:8:6:8449411635587093760 5030561530485:8:7:29000186141501458485 5030561530485:8:8:84398817398237429760 5030561530485:8:9:216549178676120789685 5030561530485:8:10:503056153048500000000 5030561530485:8:11:1078345540476411987285 5030561530485:8:12:2163049378710296002560 5030561530485:8:13:4103583584297392529685 5030561530485:8:14:7424047652224373372160 5030561530485:8:15:12892778984965658203125 5030561530485:8:16:21606097253948782018560 5030561530485:8:17:35091977028689087088885 5030561530485:8:18:55436589741086922159360 5030561530485:8:19:85436858884621440804885 5030561530485:8:20:128782375180416000000000 5030561530485:9:2:2575647503608320 5030561530485:9:3:99016542604536255 5030561530485:9:4:1318731521847459840 5030561530485:9:5:9825315489228515625 5030561530485:9:6:50696469813522562560 5030561530485:9:7:203001302990510209395 5030561530485:9:8:675190539185899438080 5030561530485:9:9:1948942608085087107165 5030561530485:9:10:5030561530485000000000 5030561530485:9:11:11861800945240531860135 5030561530485:9:12:25956592544523552030720 5030561530485:9:13:53346586595866102885905 5030561530485:9:14:103936667131141227210240 5030561530485:9:15:193391684774484873046875 5030561530485:9:16:345697556063180512296960 5030561530485:9:17:596563609487714480511045 5030561530485:9:18:997858615339564598868480 5030561530485:9:19:1623300318807807375292815 5030561530485:9:20:2575647503608320000000000 5030561530485:10:2:5151295007216640 5030561530485:10:3:297049627813608765 5030561530485:10:4:5274926087389839360 5030561530485:10:5:49126577446142578125 5030561530485:10:6:304178818881135375360 5030561530485:10:7:1421009120933571465765 5030561530485:10:8:5401524313487195504640 5030561530485:10:9:17540483472765783964485 5030561530485:10:10:50305615304850000000000 5030561530485:10:11:130479810397645850461485 5030561530485:10:12:311479110534282624368640 5030561530485:10:13:693505625746259337516765 5030561530485:10:14:1455113339835977180943360 5030561530485:10:15:2900875271617273095703125 5030561530485:10:16:5531160897010888196751360 5030561530485:10:17:10141581361291146168687765 5030561530485:10:18:17961455076112162779632640 5030561530485:10:19:30842706057348340130563485 5030561530485:10:20:51512950072166400000000000 5030561530485:11:2:10302590014433280 5030561530485:11:3:891148883440826295 5030561530485:11:4:21099704349559357440 5030561530485:11:5:245632887230712890625 5030561530485:11:6:1825072913286812252160 5030561530485:11:7:9947063846535000260355 5030561530485:11:8:43212194507897564037120 5030561530485:11:9:157864351254892055680365 5030561530485:11:10:503056153048500000000000 5030561530485:11:11:1435277914374104355076335 5030561530485:11:12:3737749326411391492423680 5030561530485:11:13:9015573134701371387717945 5030561530485:11:14:20371586757703680533207040 5030561530485:11:15:43513129074259096435546875 5030561530485:11:16:88498574352174211148021760 5030561530485:11:17:172406883141949484867692005 5030561530485:11:18:323306191370018930033387520 5030561530485:11:19:586011415089618462480706215 5030561530485:11:20:1030259001443328000000000000 5030561530485:12:2:20605180028866560 5030561530485:12:3:2673446650322478885 5030561530485:12:4:84398817398237429760 5030561530485:12:5:1228164436153564453125 5030561530485:12:6:10950437479720873512960 5030561530485:12:7:69629446925745001822485 5030561530485:12:8:345697556063180512296960 5030561530485:12:9:1420779161294028501123285 5030561530485:12:10:5030561530485000000000000 5030561530485:12:11:15788057058115147905839685 5030561530485:12:12:44852991916936697909084160 5030561530485:12:13:117202450751117828040333285 5030561530485:12:14:285202214607851527464898560 5030561530485:12:15:652696936113886446533203125 5030561530485:12:16:1415977189634787378368348160 5030561530485:12:17:2930917013413141242750764085 5030561530485:12:18:5819511444660340740600975360 5030561530485:12:19:11134216886702750787133418085 5030561530485:12:20:20605180028866560000000000000 5030561530485:13:2:41210360057733120 5030561530485:13:3:8020339950967436655 5030561530485:13:4:337595269592949719040 5030561530485:13:5:6140822180767822265625 5030561530485:13:6:65702624878325241077760 5030561530485:13:7:487406128480215012757395 5030561530485:13:8:2765580448505444098375680 5030561530485:13:9:12787012451646256510109565 5030561530485:13:10:50305615304850000000000000 5030561530485:13:11:173668627639266626964236535 5030561530485:13:12:538235903003240374909009920 5030561530485:13:13:1523631859764531764524332705 5030561530485:13:14:3992831004509921384508579840 5030561530485:13:15:9790454041708296697998046875 5030561530485:13:16:22655635034156598053893570560 5030561530485:13:17:49825589228023401126762989445 5030561530485:13:18:104751206003886133330817556480 5030561530485:13:19:211550120847352264955534943615 5030561530485:13:20:412103600577331200000000000000 5030561530485:14:2:82420720115466240 5030561530485:14:3:24061019852902309965 5030561530485:14:4:1350381078371798876160 5030561530485:14:5:30704110903839111328125 5030561530485:14:6:394215749269951446466560 5030561530485:14:7:3411842899361505089301765 5030561530485:14:8:22124643588043552787005440 5030561530485:14:9:115083112064816308590986085 5030561530485:14:10:503056153048500000000000000 5030561530485:14:11:1910354904031932896606601885 5030561530485:14:12:6458830836038884498908119040 5030561530485:14:13:19807214176938912938816325165 5030561530485:14:14:55899634063138899383120117760 5030561530485:14:15:146856810625624450469970703125 5030561530485:14:16:362490160546505568862297128960 5030561530485:14:17:847035016876397819154970820565 5030561530485:14:18:1885521708069950399954716016640 5030561530485:14:19:4019452296099693034155163928685 5030561530485:14:20:8242072011546624000000000000000 5030561530485:15:2:164841440230932480 5030561530485:15:3:72183059558706929895 5030561530485:15:4:5401524313487195504640 5030561530485:15:5:153520554519195556640625 5030561530485:15:6:2365294495619708678799360 5030561530485:15:7:23882900295530535625112355 5030561530485:15:8:176997148704348422296043520 5030561530485:15:9:1035748008583346777318874765 5030561530485:15:10:5030561530485000000000000000 5030561530485:15:11:21013903944351261862672620735 5030561530485:15:12:77505970032466613986897428480 5030561530485:15:13:257493784300205868204612227145 5030561530485:15:14:782594876883944591363681648640 5030561530485:15:15:2202852159384366757049560546875 5030561530485:15:16:5799842568744089101796754063360 5030561530485:15:17:14399595286898762925634503949605 5030561530485:15:18:33939390745259107199184888299520 5030561530485:15:19:76369593625894167648948114645015 5030561530485:15:20:164841440230932480000000000000000 5030561530485:16:2:329682880461864960 5030561530485:16:3:216549178676120789685 5030561530485:16:4:21606097253948782018560 5030561530485:16:5:767602772595977783203125 5030561530485:16:6:14191766973718252072796160 5030561530485:16:7:167180302068713749375786485 5030561530485:16:8:1415977189634787378368348160 5030561530485:16:9:9321732077250120995869872885 5030561530485:16:10:50305615304850000000000000000 5030561530485:16:11:231152943387863880489398828085 5030561530485:16:12:930071640389599367842769141760 5030561530485:16:13:3347419195902676286659958952885 5030561530485:16:14:10956328276375224279091543080960 5030561530485:16:15:33042782390765501355743408203125 5030561530485:16:16:92797481099905425628748065013760 5030561530485:16:17:244793119877278969735786567143285 5030561530485:16:18:610909033414663929585327989391360 5030561530485:16:19:1451022278891989185330014178255285 5030561530485:16:20:3296828804618649600000000000000000 5030561530485:17:2:659365760923729920 5030561530485:17:3:649647536028362369055 5030561530485:17:4:86424389015795128074240 5030561530485:17:5:3838013862979888916015625 5030561530485:17:6:85150601842309512436776960 5030561530485:17:7:1170262114480996245630505395 5030561530485:17:8:11327817517078299026946785280 5030561530485:17:9:83895588695251088962828855965 5030561530485:17:10:503056153048500000000000000000 5030561530485:17:11:2542682377266502685383387108935 5030561530485:17:12:11160859684675192414113229701120 5030561530485:17:13:43516449546734791726579466387505 5030561530485:17:14:153388595869253139907281603133440 5030561530485:17:15:495641735861482520336151123046875 5030561530485:17:16:1484759697598486810059969040220160 5030561530485:17:17:4161483037913742485508371641435845 5030561530485:17:18:10996362601463950732535903809044480 5030561530485:17:19:27569423298947794521270269386850415 5030561530485:17:20:65936576092372992000000000000000000 5030561530485:18:2:1318731521847459840 5030561530485:18:3:1948942608085087107165 5030561530485:18:4:345697556063180512296960 5030561530485:18:5:19190069314899444580078125 5030561530485:18:6:510903611053857074620661760 5030561530485:18:7:8191834801366973719413537765 5030561530485:18:8:90622540136626392215574282240 5030561530485:18:9:755060298257259800665459703685 5030561530485:18:10:5030561530485000000000000000000 5030561530485:18:11:27969506149931529539217258198285 5030561530485:18:12:133930316216102308969358756413440 5030561530485:18:13:565713844107552292445533063037565 5030561530485:18:14:2147440342169543958701942443868160 5030561530485:18:15:7434626037922237805042266845703125 5030561530485:18:16:23756155161575788960959504643522560 5030561530485:18:17:70745211644533622253642317904409365 5030561530485:18:18:197934526826351113185646268562800640 5030561530485:18:19:523819042680008095904135118350157885 5030561530485:18:20:1318731521847459840000000000000000000 5030561530485:19:2:2637463043694919680 5030561530485:19:3:5846827824255261321495 5030561530485:19:4:1382790224252722049187840 5030561530485:19:5:95950346574497222900390625 5030561530485:19:6:3065421666323142447723970560 5030561530485:19:7:57342843609568816035894764355 5030561530485:19:8:724980321093011137724594257920 5030561530485:19:9:6795542684315338205989137333165 5030561530485:19:10:50305615304850000000000000000000 5030561530485:19:11:307664567649246824931389840181135 5030561530485:19:12:1607163794593227707632305076961280 5030561530485:19:13:7354279973398179801791929819488345 5030561530485:19:14:30064164790373615421827194214154240 5030561530485:19:15:111519390568833567075634002685546875 5030561530485:19:16:380098482585212623375352074296360960 5030561530485:19:17:1202668597957071578311919404374959205 5030561530485:19:18:3562821482874320037341632834130411520 5030561530485:19:19:9952561810920153822178567248652999815 5030561530485:19:20:26374630436949196800000000000000000000 5030561530485:20:2:5274926087389839360 5030561530485:20:3:17540483472765783964485 5030561530485:20:4:5531160897010888196751360 5030561530485:20:5:479751732872486114501953125 5030561530485:20:6:18392529997938854686343823360 5030561530485:20:7:401399905266981712251263350485 5030561530485:20:8:5799842568744089101796754063360 5030561530485:20:9:61159884158838043853902235998485 5030561530485:20:10:503056153048500000000000000000000 5030561530485:20:11:3384310244141715074245288241992485 5030561530485:20:12:19285965535118732491587660923535360 5030561530485:20:13:95605639654176337423295087653348485 5030561530485:20:14:420898307065230615905580718998159360 5030561530485:20:15:1672790858532503506134510040283203125 5030561530485:20:16:6081575721363401974005633188741775360 5030561530485:20:17:20445366165270216831302629874374306485 5030561530485:20:18:64130786691737760672149391014347407360 5030561530485:20:19:189098674407482922621392777724406996485 5030561530485:20:20:527492608738983936000000000000000000000 78586093603254:0:2:78586093603254 78586093603254:0:3:78586093603254 78586093603254:0:4:78586093603254 78586093603254:0:5:78586093603254 78586093603254:0:6:78586093603254 78586093603254:0:7:78586093603254 78586093603254:0:8:78586093603254 78586093603254:0:9:78586093603254 78586093603254:0:10:78586093603254 78586093603254:0:11:78586093603254 78586093603254:0:12:78586093603254 78586093603254:0:13:78586093603254 78586093603254:0:14:78586093603254 78586093603254:0:15:78586093603254 78586093603254:0:16:78586093603254 78586093603254:0:17:78586093603254 78586093603254:0:18:78586093603254 78586093603254:0:19:78586093603254 78586093603254:0:20:78586093603254 78586093603254:1:2:157172187206508 78586093603254:1:3:235758280809762 78586093603254:1:4:314344374413016 78586093603254:1:5:392930468016270 78586093603254:1:6:471516561619524 78586093603254:1:7:550102655222778 78586093603254:1:8:628688748826032 78586093603254:1:9:707274842429286 78586093603254:1:10:785860936032540 78586093603254:1:11:864447029635794 78586093603254:1:12:943033123239048 78586093603254:1:13:1021619216842302 78586093603254:1:14:1100205310445556 78586093603254:1:15:1178791404048810 78586093603254:1:16:1257377497652064 78586093603254:1:17:1335963591255318 78586093603254:1:18:1414549684858572 78586093603254:1:19:1493135778461826 78586093603254:1:20:1571721872065080 78586093603254:2:2:314344374413016 78586093603254:2:3:707274842429286 78586093603254:2:4:1257377497652064 78586093603254:2:5:1964652340081350 78586093603254:2:6:2829099369717144 78586093603254:2:7:3850718586559446 78586093603254:2:8:5029509990608256 78586093603254:2:9:6365473581863574 78586093603254:2:10:7858609360325400 78586093603254:2:11:9508917325993734 78586093603254:2:12:11316397478868576 78586093603254:2:13:13281049818949926 78586093603254:2:14:15402874346237784 78586093603254:2:15:17681871060732150 78586093603254:2:16:20118039962433024 78586093603254:2:17:22711381051340406 78586093603254:2:18:25461894327454296 78586093603254:2:19:28369579790774694 78586093603254:2:20:31434437441301600 78586093603254:3:2:628688748826032 78586093603254:3:3:2121824527287858 78586093603254:3:4:5029509990608256 78586093603254:3:5:9823261700406750 78586093603254:3:6:16974596218302864 78586093603254:3:7:26955030105916122 78586093603254:3:8:40236079924866048 78586093603254:3:9:57289262236772166 78586093603254:3:10:78586093603254000 78586093603254:3:11:104598090585931074 78586093603254:3:12:135796769746422912 78586093603254:3:13:172653647646349038 78586093603254:3:14:215640240847328976 78586093603254:3:15:265228065910982250 78586093603254:3:16:321888639398928384 78586093603254:3:17:386093477872786902 78586093603254:3:18:458314097894177328 78586093603254:3:19:539022016024719186 78586093603254:3:20:628688748826032000 78586093603254:4:2:1257377497652064 78586093603254:4:3:6365473581863574 78586093603254:4:4:20118039962433024 78586093603254:4:5:49116308502033750 78586093603254:4:6:101847577309817184 78586093603254:4:7:188685210741412854 78586093603254:4:8:321888639398928384 78586093603254:4:9:515603360130949494 78586093603254:4:10:785860936032540000 78586093603254:4:11:1150578996445241814 78586093603254:4:12:1629561236957074944 78586093603254:4:13:2244497419402537494 78586093603254:4:14:3018963371862605664 78586093603254:4:15:3978420988664733750 78586093603254:4:16:5150218230382854144 78586093603254:4:17:6563589123837377334 78586093603254:4:18:8249653762095191904 78586093603254:4:19:10241418304469664534 78586093603254:4:20:12573774976520640000 78586093603254:5:2:2514754995304128 78586093603254:5:3:19096420745590722 78586093603254:5:4:80472159849732096 78586093603254:5:5:245581542510168750 78586093603254:5:6:611085463858903104 78586093603254:5:7:1320796475189889978 78586093603254:5:8:2575109115191427072 78586093603254:5:9:4640430241178545446 78586093603254:5:10:7858609360325400000 78586093603254:5:11:12656368960897659954 78586093603254:5:12:19554734843484899328 78586093603254:5:13:29178466452232987422 78586093603254:5:14:42265487206076479296 78586093603254:5:15:59676314829971006250 78586093603254:5:16:82403491686125666304 78586093603254:5:17:111581015105235414678 78586093603254:5:18:148493767717713454272 78586093603254:5:19:194586947784923626146 78586093603254:5:20:251475499530412800000 78586093603254:6:2:5029509990608256 78586093603254:6:3:57289262236772166 78586093603254:6:4:321888639398928384 78586093603254:6:5:1227907712550843750 78586093603254:6:6:3666512783153418624 78586093603254:6:7:9245575326329229846 78586093603254:6:8:20600872921531416576 78586093603254:6:9:41763872170606909014 78586093603254:6:10:78586093603254000000 78586093603254:6:11:139220058569874259494 78586093603254:6:12:234656818121818791936 78586093603254:6:13:379320063879028836486 78586093603254:6:14:591716820885070710144 78586093603254:6:15:895144722449565093750 78586093603254:6:16:1318455866978010660864 78586093603254:6:17:1896877256789002049526 78586093603254:6:18:2672887818918842176896 78586093603254:6:19:3697152007913548896774 78586093603254:6:20:5029509990608256000000 78586093603254:7:2:10059019981216512 78586093603254:7:3:171867786710316498 78586093603254:7:4:1287554557595713536 78586093603254:7:5:6139538562754218750 78586093603254:7:6:21999076698920511744 78586093603254:7:7:64719027284304608922 78586093603254:7:8:164806983372251332608 78586093603254:7:9:375874849535462181126 78586093603254:7:10:785860936032540000000 78586093603254:7:11:1531420644268616854434 78586093603254:7:12:2815881817461825503232 78586093603254:7:13:4931160830427374874318 78586093603254:7:14:8284035492390989942016 78586093603254:7:15:13427170836743476406250 78586093603254:7:16:21095293871648170573824 78586093603254:7:17:32246913365413034841942 78586093603254:7:18:48111980740539159184128 78586093603254:7:19:70245888150357429038706 78586093603254:7:20:100590199812165120000000 78586093603254:8:2:20118039962433024 78586093603254:8:3:515603360130949494 78586093603254:8:4:5150218230382854144 78586093603254:8:5:30697692813771093750 78586093603254:8:6:131994460193523070464 78586093603254:8:7:453033190990132262454 78586093603254:8:8:1318455866978010660864 78586093603254:8:9:3382873645819159630134 78586093603254:8:10:7858609360325400000000 78586093603254:8:11:16845627086954785398774 78586093603254:8:12:33790581809541906038784 78586093603254:8:13:64105090795555873366134 78586093603254:8:14:115976496893473859188224 78586093603254:8:15:201407562551152146093750 78586093603254:8:16:337524701946370729181184 78586093603254:8:17:548197527212021592313014 78586093603254:8:18:866015653329704865314304 78586093603254:8:19:1334671874856791151735414 78586093603254:8:20:2011803996243302400000000 78586093603254:9:2:40236079924866048 78586093603254:9:3:1546810080392848482 78586093603254:9:4:20600872921531416576 78586093603254:9:5:153488464068855468750 78586093603254:9:6:791966761161138422784 78586093603254:9:7:3171232336930925837178 78586093603254:9:8:10547646935824085286912 78586093603254:9:9:30445862812372436671206 78586093603254:9:10:78586093603254000000000 78586093603254:9:11:185301897956502639386514 78586093603254:9:12:405486981714502872465408 78586093603254:9:13:833366180342226353759742 78586093603254:9:14:1623670956508634028635136 78586093603254:9:15:3021113438267282191406250 78586093603254:9:16:5400395231141931666898944 78586093603254:9:17:9319357962604367069321238 78586093603254:9:18:15588281759934687575657472 78586093603254:9:19:25358765622279031882972866 78586093603254:9:20:40236079924866048000000000 78586093603254:10:2:80472159849732096 78586093603254:10:3:4640430241178545446 78586093603254:10:4:82403491686125666304 78586093603254:10:5:767442320344277343750 78586093603254:10:6:4751800566966830536704 78586093603254:10:7:22198626358516480860246 78586093603254:10:8:84381175486592682295296 78586093603254:10:9:274012765311351930040854 78586093603254:10:10:785860936032540000000000 78586093603254:10:11:2038320877521529033251654 78586093603254:10:12:4865843780574034469584896 78586093603254:10:13:10833760344448942598876646 78586093603254:10:14:22731393391120876400891904 78586093603254:10:15:45316701574009232871093750 78586093603254:10:16:86406323698270906670383104 78586093603254:10:17:158429085364274240178461046 78586093603254:10:18:280589071678824376361834496 78586093603254:10:19:481816546823301605776484454 78586093603254:10:20:804721598497320960000000000 78586093603254:11:2:160944319699464192 78586093603254:11:3:13921290723535636338 78586093603254:11:4:329613966744502665216 78586093603254:11:5:3837211601721386718750 78586093603254:11:6:28510803401800983220224 78586093603254:11:7:155390384509615366021722 78586093603254:11:8:675049403892741458362368 78586093603254:11:9:2466114887802167370367686 78586093603254:11:10:7858609360325400000000000 78586093603254:11:11:22421529652736819365768194 78586093603254:11:12:58390125366888413635018752 78586093603254:11:13:140838884477836253785396398 78586093603254:11:14:318239507475692269612486656 78586093603254:11:15:679750523610138493066406250 78586093603254:11:16:1382501179172334506726129664 78586093603254:11:17:2693294451192662083033837782 78586093603254:11:18:5050603290218838774513020928 78586093603254:11:19:9154514389642730509753204626 78586093603254:11:20:16094431969946419200000000000 78586093603254:12:2:321888639398928384 78586093603254:12:3:41763872170606909014 78586093603254:12:4:1318455866978010660864 78586093603254:12:5:19186058008606933593750 78586093603254:12:6:171064820410805899321344 78586093603254:12:7:1087732691567307562152054 78586093603254:12:8:5400395231141931666898944 78586093603254:12:9:22195033990219506333309174 78586093603254:12:10:78586093603254000000000000 78586093603254:12:11:246636826180105013023450134 78586093603254:12:12:700681504402660963620225024 78586093603254:12:13:1830905498211871299210153174 78586093603254:12:14:4455353104659691774574813184 78586093603254:12:15:10196257854152077395996093750 78586093603254:12:16:22120018866757352107618074624 78586093603254:12:17:45786005670275255411575242294 78586093603254:12:18:90910859223939097941234376704 78586093603254:12:19:173935773403211879685310887894 78586093603254:12:20:321888639398928384000000000000 78586093603254:13:2:643777278797856768 78586093603254:13:3:125291616511820727042 78586093603254:13:4:5273823467912042643456 78586093603254:13:5:95930290043034667968750 78586093603254:13:6:1026388922464835395928064 78586093603254:13:7:7614128840971152935064378 78586093603254:13:8:43203161849135453335191552 78586093603254:13:9:199755305911975556999782566 78586093603254:13:10:785860936032540000000000000 78586093603254:13:11:2713005087981155143257951474 78586093603254:13:12:8408178052831931563442700288 78586093603254:13:13:23801771476754326889731991262 78586093603254:13:14:62374943465235684844047384576 78586093603254:13:15:152943867812281160939941406250 78586093603254:13:16:353920301868117633721889193984 78586093603254:13:17:778362096394679341996779118998 78586093603254:13:18:1636395466030903762942218780672 78586093603254:13:19:3304779694661025714020906869986 78586093603254:13:20:6437772787978567680000000000000 78586093603254:14:2:1287554557595713536 78586093603254:14:3:375874849535462181126 78586093603254:14:4:21095293871648170573824 78586093603254:14:5:479651450215173339843750 78586093603254:14:6:6158333534789012375568384 78586093603254:14:7:53298901886798070545450646 78586093603254:14:8:345625294793083626681532416 78586093603254:14:9:1797797753207780012998043094 78586093603254:14:10:7858609360325400000000000000 78586093603254:14:11:29843055967792706575837466214 78586093603254:14:12:100898136633983178761312403456 78586093603254:14:13:309423029197806249566515886406 78586093603254:14:14:873249208513299587816663384064 78586093603254:14:15:2294158017184217414099121093750 78586093603254:14:16:5662724829889882139550227103744 78586093603254:14:17:13232155638709548813945245022966 78586093603254:14:18:29455118388556267732959938052096 78586093603254:14:19:62790814198559488566397230529734 78586093603254:14:20:128755455759571353600000000000000 78586093603254:15:2:2575109115191427072 78586093603254:15:3:1127624548606386543378 78586093603254:15:4:84381175486592682295296 78586093603254:15:5:2398257251075866699218750 78586093603254:15:6:36950001208734074253410304 78586093603254:15:7:373092313207586493818154522 78586093603254:15:8:2765002358344669013452259328 78586093603254:15:9:16180179778870020116982387846 78586093603254:15:10:78586093603254000000000000000 78586093603254:15:11:328273615645719772334212128354 78586093603254:15:12:1210777639607798145135748841472 78586093603254:15:13:4022499379571481244364706523278 78586093603254:15:14:12225488919186194229433287376896 78586093603254:15:15:34412370257763261211486816406250 78586093603254:15:16:90603597278238114232803633659904 78586093603254:15:17:224946645858062329837069165390422 78586093603254:15:18:530192130994012819193278884937728 78586093603254:15:19:1193025469772630282761547380064946 78586093603254:15:20:2575109115191427072000000000000000 78586093603254:16:2:5150218230382854144 78586093603254:16:3:3382873645819159630134 78586093603254:16:4:337524701946370729181184 78586093603254:16:5:11991286255379333496093750 78586093603254:16:6:221700007252404445520461824 78586093603254:16:7:2611646192453105456727081654 78586093603254:16:8:22120018866757352107618074624 78586093603254:16:9:145621618009830181052841490614 78586093603254:16:10:785860936032540000000000000000 78586093603254:16:11:3611009772102917495676333411894 78586093603254:16:12:14529331675293577741628986097664 78586093603254:16:13:52292491934429256176741184802614 78586093603254:16:14:171156844868606719212066023276544 78586093603254:16:15:516185553866448918172302246093750 78586093603254:16:16:1449657556451809827724858138558464 78586093603254:16:17:3824092979587059607230175811637174 78586093603254:16:18:9543458357892230745479019928879104 78586093603254:16:19:22667483925679975372469400221233974 78586093603254:16:20:51502182303828541440000000000000000 78586093603254:17:2:10300436460765708288 78586093603254:17:3:10148620937457478890402 78586093603254:17:4:1350098807785482916724736 78586093603254:17:5:59956431276896667480468750 78586093603254:17:6:1330200043514426673122770944 78586093603254:17:7:18281523347171738197089571578 78586093603254:17:8:176960150934058816860944596992 78586093603254:17:9:1310594562088471629475573415526 78586093603254:17:10:7858609360325400000000000000000 78586093603254:17:11:39721107493132092452439667530834 78586093603254:17:12:174351980103522932899547833171968 78586093603254:17:13:679802395147580330297635402433982 78586093603254:17:14:2396195828160494068968924325871616 78586093603254:17:15:7742783307996733772584533691406250 78586093603254:17:16:23194520903228957243597730216935424 78586093603254:17:17:65009580652980013322912988797831958 78586093603254:17:18:171782250442060153418622358719823872 78586093603254:17:19:430682194587919532076918604203445506 78586093603254:17:20:1030043646076570828800000000000000000 78586093603254:18:2:20600872921531416576 78586093603254:18:3:30445862812372436671206 78586093603254:18:4:5400395231141931666898944 78586093603254:18:5:299782156384483337402343750 78586093603254:18:6:7981200261086560038736625664 78586093603254:18:7:127970663430202167379627001046 78586093603254:18:8:1415681207472470534887556775936 78586093603254:18:9:11795351058796244665280160739734 78586093603254:18:10:78586093603254000000000000000000 78586093603254:18:11:436932182424453016976836342839174 78586093603254:18:12:2092223761242275194794573998063616 78586093603254:18:13:8837431136918544293869260231641766 78586093603254:18:14:33546741594246916965564940562202624 78586093603254:18:15:116141749619951006588768005371093750 78586093603254:18:16:371112334451663315897563683470966784 78586093603254:18:17:1105162871100660226489520809563143286 78586093603254:18:18:3092080507957082761535202456956829696 78586093603254:18:19:8182961697170471109461453479865464614 78586093603254:18:20:20600872921531416576000000000000000000 78586093603254:19:2:41201745843062833152 78586093603254:19:3:91337588437117310013618 78586093603254:19:4:21601580924567726667595776 78586093603254:19:5:1498910781922416687011718750 78586093603254:19:6:47887201566519360232419753984 78586093603254:19:7:895794644011415171657389007322 78586093603254:19:8:11325449659779764279100454207488 78586093603254:19:9:106158159529166201987521446657606 78586093603254:19:10:785860936032540000000000000000000 78586093603254:19:11:4806254006668983186745199771230914 78586093603254:19:12:25106685134907302337534887976763392 78586093603254:19:13:114886604779941075820300383011342958 78586093603254:19:14:469654382319456837517909167870836736 78586093603254:19:15:1742126244299265098831520080566406250 78586093603254:19:16:5937797351226613054361018935535468544 78586093603254:19:17:18787768808711223850321853762573435862 78586093603254:19:18:55657449143227489707633644225222934528 78586093603254:19:19:155476272246238951079767616117443827666 78586093603254:19:20:412017458430628331520000000000000000000 78586093603254:20:2:82403491686125666304 78586093603254:20:3:274012765311351930040854 78586093603254:20:4:86406323698270906670383104 78586093603254:20:5:7494553909612083435058593750 78586093603254:20:6:287323209399116161394518523904 78586093603254:20:7:6270562508079906201601723051254 78586093603254:20:8:90603597278238114232803633659904 78586093603254:20:9:955423435762495817887693019918454 78586093603254:20:10:7858609360325400000000000000000000 78586093603254:20:11:52868794073358815054197197483540054 78586093603254:20:12:301280221618887628050418655721160704 78586093603254:20:13:1493525862139233985663904979147458454 78586093603254:20:14:6575161352472395725250728350191714304 78586093603254:20:15:26131893664488976482472801208496093750 78586093603254:20:16:95004757619625808869776302968567496704 78586093603254:20:17:319392069748090805455471513963748409654 78586093603254:20:18:1001834084578094814737405596054012821504 78586093603254:20:19:2954049172678540070515584706231432725654 78586093603254:20:20:8240349168612566630400000000000000000000 119171730034764:0:2:119171730034764 119171730034764:0:3:119171730034764 119171730034764:0:4:119171730034764 119171730034764:0:5:119171730034764 119171730034764:0:6:119171730034764 119171730034764:0:7:119171730034764 119171730034764:0:8:119171730034764 119171730034764:0:9:119171730034764 119171730034764:0:10:119171730034764 119171730034764:0:11:119171730034764 119171730034764:0:12:119171730034764 119171730034764:0:13:119171730034764 119171730034764:0:14:119171730034764 119171730034764:0:15:119171730034764 119171730034764:0:16:119171730034764 119171730034764:0:17:119171730034764 119171730034764:0:18:119171730034764 119171730034764:0:19:119171730034764 119171730034764:0:20:119171730034764 119171730034764:1:2:238343460069528 119171730034764:1:3:357515190104292 119171730034764:1:4:476686920139056 119171730034764:1:5:595858650173820 119171730034764:1:6:715030380208584 119171730034764:1:7:834202110243348 119171730034764:1:8:953373840278112 119171730034764:1:9:1072545570312876 119171730034764:1:10:1191717300347640 119171730034764:1:11:1310889030382404 119171730034764:1:12:1430060760417168 119171730034764:1:13:1549232490451932 119171730034764:1:14:1668404220486696 119171730034764:1:15:1787575950521460 119171730034764:1:16:1906747680556224 119171730034764:1:17:2025919410590988 119171730034764:1:18:2145091140625752 119171730034764:1:19:2264262870660516 119171730034764:1:20:2383434600695280 119171730034764:2:2:476686920139056 119171730034764:2:3:1072545570312876 119171730034764:2:4:1906747680556224 119171730034764:2:5:2979293250869100 119171730034764:2:6:4290182281251504 119171730034764:2:7:5839414771703436 119171730034764:2:8:7626990722224896 119171730034764:2:9:9652910132815884 119171730034764:2:10:11917173003476400 119171730034764:2:11:14419779334206444 119171730034764:2:12:17160729125006016 119171730034764:2:13:20140022375875116 119171730034764:2:14:23357659086813744 119171730034764:2:15:26813639257821900 119171730034764:2:16:30507962888899584 119171730034764:2:17:34440629980046796 119171730034764:2:18:38611640531263536 119171730034764:2:19:43020994542549804 119171730034764:2:20:47668692013905600 119171730034764:3:2:953373840278112 119171730034764:3:3:3217636710938628 119171730034764:3:4:7626990722224896 119171730034764:3:5:14896466254345500 119171730034764:3:6:25741093687509024 119171730034764:3:7:40875903401924052 119171730034764:3:8:61015925777799168 119171730034764:3:9:86876191195342956 119171730034764:3:10:119171730034764000 119171730034764:3:11:158617572676270884 119171730034764:3:12:205928749500072192 119171730034764:3:13:261820290886376508 119171730034764:3:14:327007227215392416 119171730034764:3:15:402204588867328500 119171730034764:3:16:488127406222393344 119171730034764:3:17:585490709660795532 119171730034764:3:18:695009529562743648 119171730034764:3:19:817398896308446276 119171730034764:3:20:953373840278112000 119171730034764:4:2:1906747680556224 119171730034764:4:3:9652910132815884 119171730034764:4:4:30507962888899584 119171730034764:4:5:74482331271727500 119171730034764:4:6:154446562125054144 119171730034764:4:7:286131323813468364 119171730034764:4:8:488127406222393344 119171730034764:4:9:781885720758086604 119171730034764:4:10:1191717300347640000 119171730034764:4:11:1744793299438979724 119171730034764:4:12:2471144994000866304 119171730034764:4:13:3403663781522894604 119171730034764:4:14:4578101181015493824 119171730034764:4:15:6033068833009927500 119171730034764:4:16:7810038499558293504 119171730034764:4:17:9953342064233524044 119171730034764:4:18:12510171532129385664 119171730034764:4:19:15530579029860479244 119171730034764:4:20:19067476805562240000 119171730034764:5:2:3813495361112448 119171730034764:5:3:28958730398447652 119171730034764:5:4:122031851555598336 119171730034764:5:5:372411656358637500 119171730034764:5:6:926679372750324864 119171730034764:5:7:2002919266694278548 119171730034764:5:8:3905019249779146752 119171730034764:5:9:7036971486822779436 119171730034764:5:10:11917173003476400000 119171730034764:5:11:19192726293828776964 119171730034764:5:12:29653739928010395648 119171730034764:5:13:44247629159797629852 119171730034764:5:14:64093416534216913536 119171730034764:5:15:90496032495148912500 119171730034764:5:16:124960615992932696064 119171730034764:5:17:169206815091969908748 119171730034764:5:18:225183087578328941952 119171730034764:5:19:295081001567349105636 119171730034764:5:20:381349536111244800000 119171730034764:6:2:7626990722224896 119171730034764:6:3:86876191195342956 119171730034764:6:4:488127406222393344 119171730034764:6:5:1862058281793187500 119171730034764:6:6:5560076236501949184 119171730034764:6:7:14020434866859949836 119171730034764:6:8:31240153998233174016 119171730034764:6:9:63332743381405014924 119171730034764:6:10:119171730034764000000 119171730034764:6:11:211119989232116546604 119171730034764:6:12:355844879136124747776 119171730034764:6:13:575219179077369188076 119171730034764:6:14:897307831479036789504 119171730034764:6:15:1357440487427233687500 119171730034764:6:16:1999369855886923137024 119171730034764:6:17:2876515856563488448716 119171730034764:6:18:4053295576409920955136 119171730034764:6:19:5606539029779633007084 119171730034764:6:20:7626990722224896000000 119171730034764:7:2:15253981444449792 119171730034764:7:3:260628573586028868 119171730034764:7:4:1952509624889573376 119171730034764:7:5:9310291408965937500 119171730034764:7:6:33360457419011695104 119171730034764:7:7:98143044068019648852 119171730034764:7:8:249921231985865392128 119171730034764:7:9:569994690432645134316 119171730034764:7:10:1191717300347640000000 119171730034764:7:11:2322319881553282012644 119171730034764:7:12:4270138549633496973312 119171730034764:7:13:7477849328005799444988 119171730034764:7:14:12562309640706515053056 119171730034764:7:15:20361607311408505312500 119171730034764:7:16:31989917694190770192384 119171730034764:7:17:48900769561579303628172 119171730034764:7:18:72959320375378577192448 119171730034764:7:19:106524241565813027134596 119171730034764:7:20:152539814444497920000000 119171730034764:8:2:30507962888899584 119171730034764:8:3:781885720758086604 119171730034764:8:4:7810038499558293504 119171730034764:8:5:46551457044829687500 119171730034764:8:6:200162744514070170624 119171730034764:8:7:687001308476137541964 119171730034764:8:8:1999369855886923137024 119171730034764:8:9:5129952213893806208844 119171730034764:8:10:11917173003476400000000 119171730034764:8:11:25545518697086102139084 119171730034764:8:12:51241662595601963679744 119171730034764:8:13:97212041264075392784844 119171730034764:8:14:175872334969891210742784 119171730034764:8:15:305424109671127579687500 119171730034764:8:16:511838683107052323078144 119171730034764:8:17:831313082546848161678924 119171730034764:8:18:1313267766756814389464064 119171730034764:8:19:2023960589750447515557324 119171730034764:8:20:3050796288889958400000000 119171730034764:9:2:61015925777799168 119171730034764:9:3:2345657162274259812 119171730034764:9:4:31240153998233174016 119171730034764:9:5:232757285224148437500 119171730034764:9:6:1200976467084421023744 119171730034764:9:7:4809009159332962793748 119171730034764:9:8:15994958847095385096192 119171730034764:9:9:46169569925044255879596 119171730034764:9:10:119171730034764000000000 119171730034764:9:11:281000705667947123529924 119171730034764:9:12:614899951147223564156928 119171730034764:9:13:1263756536432980106202972 119171730034764:9:14:2462212689578476950398976 119171730034764:9:15:4581361645066913695312500 119171730034764:9:16:8189418929712837169250304 119171730034764:9:17:14132322403296418748541708 119171730034764:9:18:23638819801622659010353152 119171730034764:9:19:38455251205258502795589156 119171730034764:9:20:61015925777799168000000000 119171730034764:10:2:122031851555598336 119171730034764:10:3:7036971486822779436 119171730034764:10:4:124960615992932696064 119171730034764:10:5:1163786426120742187500 119171730034764:10:6:7205858802506526142464 119171730034764:10:7:33663064115330739556236 119171730034764:10:8:127959670776763080769536 119171730034764:10:9:415526129325398302916364 119171730034764:10:10:1191717300347640000000000 119171730034764:10:11:3091007762347418358829164 119171730034764:10:12:7378799413766682769883136 119171730034764:10:13:16428834973628741380638636 119171730034764:10:14:34470977654098677305585664 119171730034764:10:15:68720424676003705429687500 119171730034764:10:16:131030702875405394708004864 119171730034764:10:17:240249480856039118725209036 119171730034764:10:18:425498756429207862186356736 119171730034764:10:19:730649772899911553116193964 119171730034764:10:20:1220318515555983360000000000 119171730034764:11:2:244063703111196672 119171730034764:11:3:21110914460468338308 119171730034764:11:4:499842463971730784256 119171730034764:11:5:5818932130603710937500 119171730034764:11:6:43235152815039156854784 119171730034764:11:7:235641448807315176893652 119171730034764:11:8:1023677366214104646156288 119171730034764:11:9:3739735163928584726247276 119171730034764:11:10:11917173003476400000000000 119171730034764:11:11:34001085385821601947120804 119171730034764:11:12:88545592965200193238597632 119171730034764:11:13:213574854657173637948302268 119171730034764:11:14:482593687157381482278199296 119171730034764:11:15:1030806370140055581445312500 119171730034764:11:16:2096491246006486315328077824 119171730034764:11:17:4084241174552665018328553612 119171730034764:11:18:7658977615725741519354421248 119171730034764:11:19:13882345685098319509207685316 119171730034764:11:20:24406370311119667200000000000 119171730034764:12:2:488127406222393344 119171730034764:12:3:63332743381405014924 119171730034764:12:4:1999369855886923137024 119171730034764:12:5:29094660653018554687500 119171730034764:12:6:259410916890234941128704 119171730034764:12:7:1649490141651206238255564 119171730034764:12:8:8189418929712837169250304 119171730034764:12:9:33657616475357262536225484 119171730034764:12:10:119171730034764000000000000 119171730034764:12:11:374011939244037621418328844 119171730034764:12:12:1062547115582402318863171584 119171730034764:12:13:2776473110543257293327929484 119171730034764:12:14:6756311620203340751894790144 119171730034764:12:15:15462095552100833721679687500 119171730034764:12:16:33543859936103781045249245184 119171730034764:12:17:69432099967395305311585411404 119171730034764:12:18:137861597083063347348379582464 119171730034764:12:19:263764568016868070674946021004 119171730034764:12:20:488127406222393344000000000000 119171730034764:13:2:976254812444786688 119171730034764:13:3:189998230144215044772 119171730034764:13:4:7997479423547692548096 119171730034764:13:5:145473303265092773437500 119171730034764:13:6:1556465501341409646772224 119171730034764:13:7:11546430991558443667788948 119171730034764:13:8:65515351437702697354002432 119171730034764:13:9:302918548278215362826029356 119171730034764:13:10:1191717300347640000000000000 119171730034764:13:11:4114131331684413835601617284 119171730034764:13:12:12750565386988827826358059008 119171730034764:13:13:36094150437062344813263083292 119171730034764:13:14:94588362682846770526527062016 119171730034764:13:15:231931433281512505825195312500 119171730034764:13:16:536701758977660496723987922944 119171730034764:13:17:1180345699445720190296951993868 119171730034764:13:18:2481508747495140252270832484352 119171730034764:13:19:5011526792320493342823974399076 119171730034764:13:20:9762548124447866880000000000000 119171730034764:14:2:1952509624889573376 119171730034764:14:3:569994690432645134316 119171730034764:14:4:31989917694190770192384 119171730034764:14:5:727366516325463867187500 119171730034764:14:6:9338793008048457880633344 119171730034764:14:7:80825016940909105674522636 119171730034764:14:8:524122811501621578832019456 119171730034764:14:9:2726266934503938265434264204 119171730034764:14:10:11917173003476400000000000000 119171730034764:14:11:45255444648528552191617790124 119171730034764:14:12:153006784643865933916296708096 119171730034764:14:13:469223955681810482572420082796 119171730034764:14:14:1324237077559854787371378868224 119171730034764:14:15:3478971499222687587377929687500 119171730034764:14:16:8587228143642567947583806767104 119171730034764:14:17:20065876890577243235048183895756 119171730034764:14:18:44667157454912524540874984718336 119171730034764:14:19:95219009054089373513655513582444 119171730034764:14:20:195250962488957337600000000000000 119171730034764:15:2:3905019249779146752 119171730034764:15:3:1709984071297935402948 119171730034764:15:4:127959670776763080769536 119171730034764:15:5:3636832581627319335937500 119171730034764:15:6:56032758048290747283800064 119171730034764:15:7:565775118586363739721658452 119171730034764:15:8:4192982492012972630656155648 119171730034764:15:9:24536402410535444388908377836 119171730034764:15:10:119171730034764000000000000000 119171730034764:15:11:497809891133814074107795691364 119171730034764:15:12:1836081415726391206995560497152 119171730034764:15:13:6099911423863536273441461076348 119171730034764:15:14:18539319085837967023199304155136 119171730034764:15:15:52184572488340313810668945312500 119171730034764:15:16:137395650298281087161340908273664 119171730034764:15:17:341119907139813134995819126227852 119171730034764:15:18:804008834188425441735749724930048 119171730034764:15:19:1809161172027698096759454758066436 119171730034764:15:20:3905019249779146752000000000000000 119171730034764:16:2:7810038499558293504 119171730034764:16:3:5129952213893806208844 119171730034764:16:4:511838683107052323078144 119171730034764:16:5:18184162908136596679687500 119171730034764:16:6:336196548289744483702800384 119171730034764:16:7:3960425830104546178051609164 119171730034764:16:8:33543859936103781045249245184 119171730034764:16:9:220827621694818999500175400524 119171730034764:16:10:1191717300347640000000000000000 119171730034764:16:11:5475908802471954815185752605004 119171730034764:16:12:22032976988716694483946725965824 119171730034764:16:13:79298848510225971554738993992524 119171730034764:16:14:259550467201731538324790258171904 119171730034764:16:15:782768587325104707160034179687500 119171730034764:16:16:2198330404772497394581454532378624 119171730034764:16:17:5799038421376823294928925145873484 119171730034764:16:18:14472159015391657951243495048740864 119171730034764:16:19:34374062268526263838429640403262284 119171730034764:16:20:78100384995582935040000000000000000 119171730034764:17:2:15620076999116587008 119171730034764:17:3:15389856641681418626532 119171730034764:17:4:2047354732428209292312576 119171730034764:17:5:90920814540682983398437500 119171730034764:17:6:2017179289738466902216802304 119171730034764:17:7:27722980810731823246361264148 119171730034764:17:8:268350879488830248361993961472 119171730034764:17:9:1987448595253370995501578604716 119171730034764:17:10:11917173003476400000000000000000 119171730034764:17:11:60234996827191502967043278655044 119171730034764:17:12:264395723864600333807360711589888 119171730034764:17:13:1030885030632937630211606921902812 119171730034764:17:14:3633706540824241536547063614406656 119171730034764:17:15:11741528809876570607400512695312500 119171730034764:17:16:35173286476359958313303272518057984 119171730034764:17:17:98583653163405996013791727479849228 119171730034764:17:18:260498862277049843122382910877335552 119171730034764:17:19:653107183101999012930163167661983396 119171730034764:17:20:1562007699911658700800000000000000000 119171730034764:18:2:31240153998233174016 119171730034764:18:3:46169569925044255879596 119171730034764:18:4:8189418929712837169250304 119171730034764:18:5:454604072703414916992187500 119171730034764:18:6:12103075738430801413300813824 119171730034764:18:7:194060865675122762724528849036 119171730034764:18:8:2146807035910641986895951691776 119171730034764:18:9:17887037357280338959514207442444 119171730034764:18:10:119171730034764000000000000000000 119171730034764:18:11:662584965099106532637476065205484 119171730034764:18:12:3172748686375204005688328539078656 119171730034764:18:13:13401505398228189192750889984736556 119171730034764:18:14:50871891571539381511658890601693184 119171730034764:18:15:176122932148148559111007690429687500 119171730034764:18:16:562772583621759333012852360288927744 119171730034764:18:17:1675922103777901932234459367157436876 119171730034764:18:18:4688979520986897176202892395792039936 119171730034764:18:19:12409036478937981245673100185577684524 119171730034764:18:20:31240153998233174016000000000000000000 119171730034764:19:2:62480307996466348032 119171730034764:19:3:138508709775132767638788 119171730034764:19:4:32757675718851348677001216 119171730034764:19:5:2273020363517074584960937500 119171730034764:19:6:72618454430584808479804882944 119171730034764:19:7:1358426059725859339071701943252 119171730034764:19:8:17174456287285135895167613534208 119171730034764:19:9:160983336215523050635627866981996 119171730034764:19:10:1191717300347640000000000000000000 119171730034764:19:11:7288434616090171859012236717260324 119171730034764:19:12:38072984236502448068259942468943872 119171730034764:19:13:174219570176966459505761569801575228 119171730034764:19:14:712206482001551341163224468423704576 119171730034764:19:15:2641843982222228386665115356445312500 119171730034764:19:16:9004361337948149328205637764622843904 119171730034764:19:17:28490675764224332847985809241676426892 119171730034764:19:18:84401631377764149171652063124256718848 119171730034764:19:19:235771693099821643667788903525976005956 119171730034764:19:20:624803079964663480320000000000000000000 119171730034764:20:2:124960615992932696064 119171730034764:20:3:415526129325398302916364 119171730034764:20:4:131030702875405394708004864 119171730034764:20:5:11365101817585372924804687500 119171730034764:20:6:435710726583508850878829297664 119171730034764:20:7:9508982418081015373501913602764 119171730034764:20:8:137395650298281087161340908273664 119171730034764:20:9:1448850025939707455720650802837964 119171730034764:20:10:11917173003476400000000000000000000 119171730034764:20:11:80172780776991890449134603889863564 119171730034764:20:12:456875810838029376819119309627326464 119171730034764:20:13:2264854412300563973574900407420477964 119171730034764:20:14:9970890748021718776285142557931864064 119171730034764:20:15:39627659733333425799976730346679687500 119171730034764:20:16:144069781407170389251290204233965502464 119171730034764:20:17:484341487991813658415758757108499257164 119171730034764:20:18:1519229364799754685089737136236620939264 119171730034764:20:19:4479662168896611229687989166993544113164 119171730034764:20:20:12496061599293269606400000000000000000000 4245845664849036:0:2:4245845664849036 4245845664849036:0:3:4245845664849036 4245845664849036:0:4:4245845664849036 4245845664849036:0:5:4245845664849036 4245845664849036:0:6:4245845664849036 4245845664849036:0:7:4245845664849036 4245845664849036:0:8:4245845664849036 4245845664849036:0:9:4245845664849036 4245845664849036:0:10:4245845664849036 4245845664849036:0:11:4245845664849036 4245845664849036:0:12:4245845664849036 4245845664849036:0:13:4245845664849036 4245845664849036:0:14:4245845664849036 4245845664849036:0:15:4245845664849036 4245845664849036:0:16:4245845664849036 4245845664849036:0:17:4245845664849036 4245845664849036:0:18:4245845664849036 4245845664849036:0:19:4245845664849036 4245845664849036:0:20:4245845664849036 4245845664849036:1:2:8491691329698072 4245845664849036:1:3:12737536994547108 4245845664849036:1:4:16983382659396144 4245845664849036:1:5:21229228324245180 4245845664849036:1:6:25475073989094216 4245845664849036:1:7:29720919653943252 4245845664849036:1:8:33966765318792288 4245845664849036:1:9:38212610983641324 4245845664849036:1:10:42458456648490360 4245845664849036:1:11:46704302313339396 4245845664849036:1:12:50950147978188432 4245845664849036:1:13:55195993643037468 4245845664849036:1:14:59441839307886504 4245845664849036:1:15:63687684972735540 4245845664849036:1:16:67933530637584576 4245845664849036:1:17:72179376302433612 4245845664849036:1:18:76425221967282648 4245845664849036:1:19:80671067632131684 4245845664849036:1:20:84916913296980720 4245845664849036:2:2:16983382659396144 4245845664849036:2:3:38212610983641324 4245845664849036:2:4:67933530637584576 4245845664849036:2:5:106146141621225900 4245845664849036:2:6:152850443934565296 4245845664849036:2:7:208046437577602764 4245845664849036:2:8:271734122550338304 4245845664849036:2:9:343913498852771916 4245845664849036:2:10:424584566484903600 4245845664849036:2:11:513747325446733356 4245845664849036:2:12:611401775738261184 4245845664849036:2:13:717547917359487084 4245845664849036:2:14:832185750310411056 4245845664849036:2:15:955315274591033100 4245845664849036:2:16:1086936490201353216 4245845664849036:2:17:1227049397141371404 4245845664849036:2:18:1375653995411087664 4245845664849036:2:19:1532750285010501996 4245845664849036:2:20:1698338265939614400 4245845664849036:3:2:33966765318792288 4245845664849036:3:3:114637832950923972 4245845664849036:3:4:271734122550338304 4245845664849036:3:5:530730708106129500 4245845664849036:3:6:917102663607391776 4245845664849036:3:7:1456325063043219348 4245845664849036:3:8:2173872980402706432 4245845664849036:3:9:3095221489674947244 4245845664849036:3:10:4245845664849036000 4245845664849036:3:11:5651220579914066916 4245845664849036:3:12:7336821308859134208 4245845664849036:3:13:9328122925673332092 4245845664849036:3:14:11650600504345754784 4245845664849036:3:15:14329729118865496500 4245845664849036:3:16:17390983843221651456 4245845664849036:3:17:20859839751403313868 4245845664849036:3:18:24761771917399577952 4245845664849036:3:19:29122255415199537924 4245845664849036:3:20:33966765318792288000 4245845664849036:4:2:67933530637584576 4245845664849036:4:3:343913498852771916 4245845664849036:4:4:1086936490201353216 4245845664849036:4:5:2653653540530647500 4245845664849036:4:6:5502615981644350656 4245845664849036:4:7:10194275441302535436 4245845664849036:4:8:17390983843221651456 4245845664849036:4:9:27856993407074525196 4245845664849036:4:10:42458456648490360000 4245845664849036:4:11:62163426379054736076 4245845664849036:4:12:88041855706309610496 4245845664849036:4:13:121265598033753317196 4245845664849036:4:14:163108407060840566976 4245845664849036:4:15:214945936782982447500 4245845664849036:4:16:278255741491546423296 4245845664849036:4:17:354617275773856335756 4245845664849036:4:18:445711894513192403136 4245845664849036:4:19:553322852888791220556 4245845664849036:4:20:679335306375845760000 4245845664849036:5:2:135867061275169152 4245845664849036:5:3:1031740496558315748 4245845664849036:5:4:4347745960805412864 4245845664849036:5:5:13268267702653237500 4245845664849036:5:6:33015695889866103936 4245845664849036:5:7:71359928089117748052 4245845664849036:5:8:139127870745773211648 4245845664849036:5:9:250712940663670726764 4245845664849036:5:10:424584566484903600000 4245845664849036:5:11:683797690169602096836 4245845664849036:5:12:1056502268475715325952 4245845664849036:5:13:1576452774438793123548 4245845664849036:5:14:2283517698851767937664 4245845664849036:5:15:3224189051744736712500 4245845664849036:5:16:4452091863864742772736 4245845664849036:5:17:6028493688155557707852 4245845664849036:5:18:8022814101237463256448 4245845664849036:5:19:10513134204887033190564 4245845664849036:5:20:13586706127516915200000 4245845664849036:6:2:271734122550338304 4245845664849036:6:3:3095221489674947244 4245845664849036:6:4:17390983843221651456 4245845664849036:6:5:66341338513266187500 4245845664849036:6:6:198094175339196623616 4245845664849036:6:7:499519496623824236364 4245845664849036:6:8:1113022965966185693184 4245845664849036:6:9:2256416465973036540876 4245845664849036:6:10:4245845664849036000000 4245845664849036:6:11:7521774591865623065196 4245845664849036:6:12:12678027221708583911424 4245845664849036:6:13:20493886067704310606124 4245845664849036:6:14:31969247783924751127296 4245845664849036:6:15:48362835776171050687500 4245845664849036:6:16:71233469821835884363776 4245845664849036:6:17:102484392698644481033484 4245845664849036:6:18:144410653822274338616064 4245845664849036:6:19:199749549892853630620716 4245845664849036:6:20:271734122550338304000000 4245845664849036:7:2:543468245100676608 4245845664849036:7:3:9285664469024841732 4245845664849036:7:4:69563935372886605824 4245845664849036:7:5:331706692566330937500 4245845664849036:7:6:1188565052035179741696 4245845664849036:7:7:3496636476366769654548 4245845664849036:7:8:8904183727729485545472 4245845664849036:7:9:20307748193757328867884 4245845664849036:7:10:42458456648490360000000 4245845664849036:7:11:82739520510521853717156 4245845664849036:7:12:152136326660503006937088 4245845664849036:7:13:266420518880156037879612 4245845664849036:7:14:447569468974946515782144 4245845664849036:7:15:725442536642565760312500 4245845664849036:7:16:1139735517149374149820416 4245845664849036:7:17:1742234675876956177569228 4245845664849036:7:18:2599391768800938095089152 4245845664849036:7:19:3795241447964218981793604 4245845664849036:7:20:5434682451006766080000000 4245845664849036:8:2:1086936490201353216 4245845664849036:8:3:27856993407074525196 4245845664849036:8:4:278255741491546423296 4245845664849036:8:5:1658533462831654687500 4245845664849036:8:6:7131390312211078450176 4245845664849036:8:7:24476455334567387581836 4245845664849036:8:8:71233469821835884363776 4245845664849036:8:9:182769733743815959810956 4245845664849036:8:10:424584566484903600000000 4245845664849036:8:11:910134725615740390888716 4245845664849036:8:12:1825635919926036083245056 4245845664849036:8:13:3463466745442028492434956 4245845664849036:8:14:6265972565649251220950016 4245845664849036:8:15:10881638049638486404687500 4245845664849036:8:16:18235768274389986397126656 4245845664849036:8:17:29617989489908255018676876 4245845664849036:8:18:46789051838416885711604736 4245845664849036:8:19:72109587511320160654078476 4245845664849036:8:20:108693649020135321600000000 4245845664849036:9:2:2173872980402706432 4245845664849036:9:3:83570980221223575588 4245845664849036:9:4:1113022965966185693184 4245845664849036:9:5:8292667314158273437500 4245845664849036:9:6:42788341873266470701056 4245845664849036:9:7:171335187341971713072852 4245845664849036:9:8:569867758574687074910208 4245845664849036:9:9:1644927603694343638298604 4245845664849036:9:10:4245845664849036000000000 4245845664849036:9:11:10011481981773144299775876 4245845664849036:9:12:21907631039112432998940672 4245845664849036:9:13:45025067690746370401654428 4245845664849036:9:14:87723615919089517093300224 4245845664849036:9:15:163224570744577296070312500 4245845664849036:9:16:291772292390239782354026496 4245845664849036:9:17:503505821328440335317506892 4245845664849036:9:18:842202933091503942808885248 4245845664849036:9:19:1370082162715083052427491044 4245845664849036:9:20:2173872980402706432000000000 4245845664849036:10:2:4347745960805412864 4245845664849036:10:3:250712940663670726764 4245845664849036:10:4:4452091863864742772736 4245845664849036:10:5:41463336570791367187500 4245845664849036:10:6:256730051239598824206336 4245845664849036:10:7:1199346311393801991509964 4245845664849036:10:8:4558942068597496599281664 4245845664849036:10:9:14804348433249092744687436 4245845664849036:10:10:42458456648490360000000000 4245845664849036:10:11:110126301799504587297534636 4245845664849036:10:12:262891572469349195987288064 4245845664849036:10:13:585325879979702815221507564 4245845664849036:10:14:1228130622867253239306203136 4245845664849036:10:15:2448368561168659441054687500 4245845664849036:10:16:4668356678243836517664423936 4245845664849036:10:17:8559598962583485700397617164 4245845664849036:10:18:15159652795647070970559934464 4245845664849036:10:19:26031561091586577996122329836 4245845664849036:10:20:43477459608054128640000000000 4245845664849036:11:2:8695491921610825728 4245845664849036:11:3:752138821991012180292 4245845664849036:11:4:17808367455458971090944 4245845664849036:11:5:207316682853956835937500 4245845664849036:11:6:1540380307437592945238016 4245845664849036:11:7:8395424179756613940569748 4245845664849036:11:8:36471536548779972794253312 4245845664849036:11:9:133239135899241834702186924 4245845664849036:11:10:424584566484903600000000000 4245845664849036:11:11:1211389319794550460272880996 4245845664849036:11:12:3154698869632190351847456768 4245845664849036:11:13:7609236439736136597879598332 4245845664849036:11:14:17193828720141545350286843904 4245845664849036:11:15:36725528417529891615820312500 4245845664849036:11:16:74693706851901384282630782976 4245845664849036:11:17:145513182363919256906759491788 4245845664849036:11:18:272873750321647277470078820352 4245845664849036:11:19:494599660740144981926324266884 4245845664849036:11:20:869549192161082572800000000000 4245845664849036:12:2:17390983843221651456 4245845664849036:12:3:2256416465973036540876 4245845664849036:12:4:71233469821835884363776 4245845664849036:12:5:1036583414269784179687500 4245845664849036:12:6:9242281844625557671428096 4245845664849036:12:7:58767969258296297583988236 4245845664849036:12:8:291772292390239782354026496 4245845664849036:12:9:1199152223093176512319682316 4245845664849036:12:10:4245845664849036000000000000 4245845664849036:12:11:13325282517740055063001690956 4245845664849036:12:12:37856386435586284222169481216 4245845664849036:12:13:98920073716569775772434778316 4245845664849036:12:14:240713602081981634904015814656 4245845664849036:12:15:550882926262948374237304687500 4245845664849036:12:16:1195099309630422148522092527616 4245845664849036:12:17:2473724100186627367414911360396 4245845664849036:12:18:4911727505789650994461418766336 4245845664849036:12:19:9397393554062754656600161070796 4245845664849036:12:20:17390983843221651456000000000000 4245845664849036:13:2:34781967686443302912 4245845664849036:13:3:6769249397919109622628 4245845664849036:13:4:284933879287343537455104 4245845664849036:13:5:5182917071348920898437500 4245845664849036:13:6:55453691067753346028568576 4245845664849036:13:7:411375784808074083087917652 4245845664849036:13:8:2334178339121918258832211968 4245845664849036:13:9:10792370007838588610877140844 4245845664849036:13:10:42458456648490360000000000000 4245845664849036:13:11:146578107695140605693018600516 4245845664849036:13:12:454276637227035410666033774592 4245845664849036:13:13:1285960958315407085041652118108 4245845664849036:13:14:3369990429147742888656221405184 4245845664849036:13:15:8263243893944225613559570312500 4245845664849036:13:16:19121588954086754376353480441856 4245845664849036:13:17:42053309703172665246053493126732 4245845664849036:13:18:88411095104213717900305537794048 4245845664849036:13:19:178550477527192338475403060345124 4245845664849036:13:20:347819676864433029120000000000000 4245845664849036:14:2:69563935372886605824 4245845664849036:14:3:20307748193757328867884 4245845664849036:14:4:1139735517149374149820416 4245845664849036:14:5:25914585356744604492187500 4245845664849036:14:6:332722146406520076171411456 4245845664849036:14:7:2879630493656518581615423564 4245845664849036:14:8:18673426712975346070657695744 4245845664849036:14:9:97131330070547297497894267596 4245845664849036:14:10:424584566484903600000000000000 4245845664849036:14:11:1612359184646546662623204605676 4245845664849036:14:12:5451319646724424927992405295104 4245845664849036:14:13:16717492458100292105541477535404 4245845664849036:14:14:47179866008068400441187099672576 4245845664849036:14:15:123948658409163384203393554687500 4245845664849036:14:16:305945423265388070021655687069696 4245845664849036:14:17:714906264953935309182909383154444 4245845664849036:14:18:1591399711875846922205499680292864 4245845664849036:14:19:3392459073016654431032658146557356 4245845664849036:14:20:6956393537288660582400000000000000 4245845664849036:15:2:139127870745773211648 4245845664849036:15:3:60923244581271986603652 4245845664849036:15:4:4558942068597496599281664 4245845664849036:15:5:129572926783723022460937500 4245845664849036:15:6:1996332878439120457028468736 4245845664849036:15:7:20157413455595630071307964948 4245845664849036:15:8:149387413703802768565261565952 4245845664849036:15:9:874181970634925677481048408364 4245845664849036:15:10:4245845664849036000000000000000 4245845664849036:15:11:17735951031112013288855250662436 4245845664849036:15:12:65415835760693099135908863541248 4245845664849036:15:13:217327401955303797372039207960252 4245845664849036:15:14:660518124112957606176619395416064 4245845664849036:15:15:1859229876137450763050903320312500 4245845664849036:15:16:4895126772246209120346490993115136 4245845664849036:15:17:12153406504216900256109459513625548 4245845664849036:15:18:28645194813765244599698994245271552 4245845664849036:15:19:64456722387316434189620504784589764 4245845664849036:15:20:139127870745773211648000000000000000 4245845664849036:16:2:278255741491546423296 4245845664849036:16:3:182769733743815959810956 4245845664849036:16:4:18235768274389986397126656 4245845664849036:16:5:647864633918615112304687500 4245845664849036:16:6:11977997270634722742170812416 4245845664849036:16:7:141101894189169410499155754636 4245845664849036:16:8:1195099309630422148522092527616 4245845664849036:16:9:7867637735714331097329435675276 4245845664849036:16:10:42458456648490360000000000000000 4245845664849036:16:11:195095461342232146177407757286796 4245845664849036:16:12:784990029128317189630906362494976 4245845664849036:16:13:2825256225418949365836509703483276 4245845664849036:16:14:9247253737581406486472671535824896 4245845664849036:16:15:27888448142061761445763549804687500 4245845664849036:16:16:78322028355939345925543855889842176 4245845664849036:16:17:206607910571687304353860811731634316 4245845664849036:16:18:515613506647774402794581896414887936 4245845664849036:16:19:1224677725359012249602789590907205516 4245845664849036:16:20:2782557414915464232960000000000000000 4245845664849036:17:2:556511482983092846592 4245845664849036:17:3:548309201231447879432868 4245845664849036:17:4:72943073097559945588506624 4245845664849036:17:5:3239323169593075561523437500 4245845664849036:17:6:71867983623808336453024874496 4245845664849036:17:7:987713259324185873494090282452 4245845664849036:17:8:9560794477043377188176740220928 4245845664849036:17:9:70808739621428979875964921077484 4245845664849036:17:10:424584566484903600000000000000000 4245845664849036:17:11:2146050074764553607951485330154756 4245845664849036:17:12:9419880349539806275570876349939712 4245845664849036:17:13:36728330930446341755874626145282588 4245845664849036:17:14:129461552326139690810617401501548544 4245845664849036:17:15:418326722130926421686453247070312500 4245845664849036:17:16:1253152453695029534808701694237474816 4245845664849036:17:17:3512334479718684174015633799437783372 4245845664849036:17:18:9281043119659939250302474135467982848 4245845664849036:17:19:23268876781821232742453002227236904804 4245845664849036:17:20:55651148298309284659200000000000000000 4245845664849036:18:2:1113022965966185693184 4245845664849036:18:3:1644927603694343638298604 4245845664849036:18:4:291772292390239782354026496 4245845664849036:18:5:16196615847965377807617187500 4245845664849036:18:6:431207901742850018718149246976 4245845664849036:18:7:6913992815269301114458631977164 4245845664849036:18:8:76486355816347017505413921767424 4245845664849036:18:9:637278656592860818883684289697356 4245845664849036:18:10:4245845664849036000000000000000000 4245845664849036:18:11:23606550822410089687466338631702316 4245845664849036:18:12:113038564194477675306850516199276544 4245845664849036:18:13:477468302095802442826370139888673644 4245845664849036:18:14:1812461732565955671348643621021679616 4245845664849036:18:15:6274900831963896325296798706054687500 4245845664849036:18:16:20050439259120472556939227107799597056 4245845664849036:18:17:59709686155217630958265774590442317324 4245845664849036:18:18:167058776153878906505444534438423691264 4245845664849036:18:19:442108658854603422106607042317501191276 4245845664849036:18:20:1113022965966185693184000000000000000000 4245845664849036:19:2:2226045931932371386368 4245845664849036:19:3:4934782811083030914895812 4245845664849036:19:4:1167089169560959129416105984 4245845664849036:19:5:80983079239826889038085937500 4245845664849036:19:6:2587247410457100112308895481856 4245845664849036:19:7:48397949706885107801210423840148 4245845664849036:19:8:611890846530776140043311374139392 4245845664849036:19:9:5735507909335747369953158607276204 4245845664849036:19:10:42458456648490360000000000000000000 4245845664849036:19:11:259672059046510986562129724948725476 4245845664849036:19:12:1356462770333732103682206194391318528 4245845664849036:19:13:6207087927245431756742811818552757372 4245845664849036:19:14:25374464255923379398881010694303514624 4245845664849036:19:15:94123512479458444879451980590820312500 4245845664849036:19:16:320807028145927560911027633724793552896 4245845664849036:19:17:1015064664638699726290518168037519394508 4245845664849036:19:18:3007057970769820317098001619891626442752 4245845664849036:19:19:8400064518237465020025533804032522634244 4245845664849036:19:20:22260459319323713863680000000000000000000 4245845664849036:20:2:4452091863864742772736 4245845664849036:20:3:14804348433249092744687436 4245845664849036:20:4:4668356678243836517664423936 4245845664849036:20:5:404915396199134445190429687500 4245845664849036:20:6:15523484462742600673853372891136 4245845664849036:20:7:338785647948195754608472966881036 4245845664849036:20:8:4895126772246209120346490993115136 4245845664849036:20:9:51619571184021726329578427465485836 4245845664849036:20:10:424584566484903600000000000000000000 4245845664849036:20:11:2856392649511620852183426974435980236 4245845664849036:20:12:16277553244004785244186474332695822336 4245845664849036:20:13:80692143054190612837656553641185845836 4245845664849036:20:14:355242499582927311584334149720249204736 4245845664849036:20:15:1411852687191876673191779708862304687500 4245845664849036:20:16:5132912450334840974576442139596696846336 4245845664849036:20:17:17256099298857895346938808856637829706636 4245845664849036:20:18:54127043473856765707764029158049275969536 4245845664849036:20:19:159601225846511835380485142276617930050636 4245845664849036:20:20:445209186386474277273600000000000000000000 52542225399172662:0:2:52542225399172662 52542225399172662:0:3:52542225399172662 52542225399172662:0:4:52542225399172662 52542225399172662:0:5:52542225399172662 52542225399172662:0:6:52542225399172662 52542225399172662:0:7:52542225399172662 52542225399172662:0:8:52542225399172662 52542225399172662:0:9:52542225399172662 52542225399172662:0:10:52542225399172662 52542225399172662:0:11:52542225399172662 52542225399172662:0:12:52542225399172662 52542225399172662:0:13:52542225399172662 52542225399172662:0:14:52542225399172662 52542225399172662:0:15:52542225399172662 52542225399172662:0:16:52542225399172662 52542225399172662:0:17:52542225399172662 52542225399172662:0:18:52542225399172662 52542225399172662:0:19:52542225399172662 52542225399172662:0:20:52542225399172662 52542225399172662:1:2:105084450798345324 52542225399172662:1:3:157626676197517986 52542225399172662:1:4:210168901596690648 52542225399172662:1:5:262711126995863310 52542225399172662:1:6:315253352395035972 52542225399172662:1:7:367795577794208634 52542225399172662:1:8:420337803193381296 52542225399172662:1:9:472880028592553958 52542225399172662:1:10:525422253991726620 52542225399172662:1:11:577964479390899282 52542225399172662:1:12:630506704790071944 52542225399172662:1:13:683048930189244606 52542225399172662:1:14:735591155588417268 52542225399172662:1:15:788133380987589930 52542225399172662:1:16:840675606386762592 52542225399172662:1:17:893217831785935254 52542225399172662:1:18:945760057185107916 52542225399172662:1:19:998302282584280578 52542225399172662:1:20:1050844507983453240 52542225399172662:2:2:210168901596690648 52542225399172662:2:3:472880028592553958 52542225399172662:2:4:840675606386762592 52542225399172662:2:5:1313555634979316550 52542225399172662:2:6:1891520114370215832 52542225399172662:2:7:2574569044559460438 52542225399172662:2:8:3362702425547050368 52542225399172662:2:9:4255920257332985622 52542225399172662:2:10:5254222539917266200 52542225399172662:2:11:6357609273299892102 52542225399172662:2:12:7566080457480863328 52542225399172662:2:13:8879636092460179878 52542225399172662:2:14:10298276178237841752 52542225399172662:2:15:11822000714813848950 52542225399172662:2:16:13450809702188201472 52542225399172662:2:17:15184703140360899318 52542225399172662:2:18:17023681029331942488 52542225399172662:2:19:18967743369101330982 52542225399172662:2:20:21016890159669064800 52542225399172662:3:2:420337803193381296 52542225399172662:3:3:1418640085777661874 52542225399172662:3:4:3362702425547050368 52542225399172662:3:5:6567778174896582750 52542225399172662:3:6:11349120686221294992 52542225399172662:3:7:18021983311916223066 52542225399172662:3:8:26901619404376402944 52542225399172662:3:9:38303282315996870598 52542225399172662:3:10:52542225399172662000 52542225399172662:3:11:69933702006298813122 52542225399172662:3:12:90792965489770359936 52542225399172662:3:13:115435269201982338414 52542225399172662:3:14:144175866495329784528 52542225399172662:3:15:177330010722207734250 52542225399172662:3:16:215212955235011223552 52542225399172662:3:17:258139953386135288406 52542225399172662:3:18:306426258527974964784 52542225399172662:3:19:360387124012925288658 52542225399172662:3:20:420337803193381296000 52542225399172662:4:2:840675606386762592 52542225399172662:4:3:4255920257332985622 52542225399172662:4:4:13450809702188201472 52542225399172662:4:5:32838890874482913750 52542225399172662:4:6:68094724117327769952 52542225399172662:4:7:126153883183413561462 52542225399172662:4:8:215212955235011223552 52542225399172662:4:9:344729540843971835382 52542225399172662:4:10:525422253991726620000 52542225399172662:4:11:769270722069286944342 52542225399172662:4:12:1089515585877244319232 52542225399172662:4:13:1500658499625770399382 52542225399172662:4:14:2018462130934616983392 52542225399172662:4:15:2659950160833116013750 52542225399172662:4:16:3443407283760179576832 52542225399172662:4:17:4388379207564299902902 52542225399172662:4:18:5515672653503549366112 52542225399172662:4:19:6847355356245580484502 52542225399172662:4:20:8406756063867625920000 52542225399172662:5:2:1681351212773525184 52542225399172662:5:3:12767760771998956866 52542225399172662:5:4:53803238808752805888 52542225399172662:5:5:164194454372414568750 52542225399172662:5:6:408568344703966619712 52542225399172662:5:7:883077182283894930234 52542225399172662:5:8:1721703641880089788416 52542225399172662:5:9:3102565867595746518438 52542225399172662:5:10:5254222539917266200000 52542225399172662:5:11:8461977942762156387762 52542225399172662:5:12:13074187030526931830784 52542225399172662:5:13:19508560495135015191966 52542225399172662:5:14:28258469833084637767488 52542225399172662:5:15:39899252412496740206250 52542225399172662:5:16:55094516540162873229312 52542225399172662:5:17:74602446528593098349334 52542225399172662:5:18:99282107763063888590016 52542225399172662:5:19:130099751768666029205538 52542225399172662:5:20:168135121277352518400000 52542225399172662:6:2:3362702425547050368 52542225399172662:6:3:38303282315996870598 52542225399172662:6:4:215212955235011223552 52542225399172662:6:5:820972271862072843750 52542225399172662:6:6:2451410068223799718272 52542225399172662:6:7:6181540275987264511638 52542225399172662:6:8:13773629135040718307328 52542225399172662:6:9:27923092808361718665942 52542225399172662:6:10:52542225399172662000000 52542225399172662:6:11:93081757370383720265382 52542225399172662:6:12:156890244366323181969408 52542225399172662:6:13:253611286436755197495558 52542225399172662:6:14:395618577663184928744832 52542225399172662:6:15:598488786187451103093750 52542225399172662:6:16:881512264642605971668992 52542225399172662:6:17:1268241590986082671938678 52542225399172662:6:18:1787077939735149994620288 52542225399172662:6:19:2471895283604654554905222 52542225399172662:6:20:3362702425547050368000000 52542225399172662:7:2:6725404851094100736 52542225399172662:7:3:114909846947990611794 52542225399172662:7:4:860851820940044894208 52542225399172662:7:5:4104861359310364218750 52542225399172662:7:6:14708460409342798309632 52542225399172662:7:7:43270781931910851581466 52542225399172662:7:8:110189033080325746458624 52542225399172662:7:9:251307835275255467993478 52542225399172662:7:10:525422253991726620000000 52542225399172662:7:11:1023899331074220922919202 52542225399172662:7:12:1882682932395878183632896 52542225399172662:7:13:3296946723677817567442254 52542225399172662:7:14:5538660087284589002427648 52542225399172662:7:15:8977331792811766546406250 52542225399172662:7:16:14104196234281695546703872 52542225399172662:7:17:21560107046763405422957526 52542225399172662:7:18:32167402915232699903165184 52542225399172662:7:19:46966010388488436543199218 52542225399172662:7:20:67254048510941007360000000 52542225399172662:8:2:13450809702188201472 52542225399172662:8:3:344729540843971835382 52542225399172662:8:4:3443407283760179576832 52542225399172662:8:5:20524306796551821093750 52542225399172662:8:6:88250762456056789857792 52542225399172662:8:7:302895473523375961070262 52542225399172662:8:8:881512264642605971668992 52542225399172662:8:9:2261770517477299211941302 52542225399172662:8:10:5254222539917266200000000 52542225399172662:8:11:11262892641816430152111222 52542225399172662:8:12:22592195188750538203594752 52542225399172662:8:13:42860307407811628376749302 52542225399172662:8:14:77541241221984246033987072 52542225399172662:8:15:134659976892176498196093750 52542225399172662:8:16:225667139748507128747261952 52542225399172662:8:17:366521819794977892190277942 52542225399172662:8:18:579013252474188598256973312 52542225399172662:8:19:892354197381280294320785142 52542225399172662:8:20:1345080970218820147200000000 52542225399172662:9:2:26901619404376402944 52542225399172662:9:3:1034188622531915506146 52542225399172662:9:4:13773629135040718307328 52542225399172662:9:5:102621533982759105468750 52542225399172662:9:6:529504574736340739146752 52542225399172662:9:7:2120268314663631727491834 52542225399172662:9:8:7052098117140847773351936 52542225399172662:9:9:20355934657295692907471718 52542225399172662:9:10:52542225399172662000000000 52542225399172662:9:11:123891819059980731673223442 52542225399172662:9:12:271106342265006458443137024 52542225399172662:9:13:557183996301551168897740926 52542225399172662:9:14:1085577377107779444475819008 52542225399172662:9:15:2019899653382647472941406250 52542225399172662:9:16:3610674235976114059956191232 52542225399172662:9:17:6230870936514624167234725014 52542225399172662:9:18:10422238544535394768625519616 52542225399172662:9:19:16954729750244325592094917698 52542225399172662:9:20:26901619404376402944000000000 52542225399172662:10:2:53803238808752805888 52542225399172662:10:3:3102565867595746518438 52542225399172662:10:4:55094516540162873229312 52542225399172662:10:5:513107669913795527343750 52542225399172662:10:6:3177027448418044434880512 52542225399172662:10:7:14841878202645422092442838 52542225399172662:10:8:56416784937126782186815488 52542225399172662:10:9:183203411915661236167245462 52542225399172662:10:10:525422253991726620000000000 52542225399172662:10:11:1362810009659788048405457862 52542225399172662:10:12:3253276107180077501317644288 52542225399172662:10:13:7243391951920165195670632038 52542225399172662:10:14:15198083279508912222661466112 52542225399172662:10:15:30298494800739712094121093750 52542225399172662:10:16:57770787775617824959299059712 52542225399172662:10:17:105924805920748610842990325238 52542225399172662:10:18:187600293801637105835259353088 52542225399172662:10:19:322139865254642186249803436262 52542225399172662:10:20:538032388087528058880000000000 52542225399172662:11:2:107606477617505611776 52542225399172662:11:3:9307697602787239555314 52542225399172662:11:4:220378066160651492917248 52542225399172662:11:5:2565538349568977636718750 52542225399172662:11:6:19062164690508266609283072 52542225399172662:11:7:103893147418517954647099866 52542225399172662:11:8:451334279497014257494523904 52542225399172662:11:9:1648830707240951125505209158 52542225399172662:11:10:5254222539917266200000000000 52542225399172662:11:11:14990910106257668532460036482 52542225399172662:11:12:39039313286160930015811731456 52542225399172662:11:13:94164095374962147543718216494 52542225399172662:11:14:212773165913124771117260525568 52542225399172662:11:15:454477422011095681411816406250 52542225399172662:11:16:924332604409885199348784955392 52542225399172662:11:17:1800721700652726384330835529046 52542225399172662:11:18:3376805288429467905034668355584 52542225399172662:11:19:6120657439838201538746265288978 52542225399172662:11:20:10760647761750561177600000000000 52542225399172662:12:2:215212955235011223552 52542225399172662:12:3:27923092808361718665942 52542225399172662:12:4:881512264642605971668992 52542225399172662:12:5:12827691747844888183593750 52542225399172662:12:6:114372988143049599655698432 52542225399172662:12:7:727252031929625682529699062 52542225399172662:12:8:3610674235976114059956191232 52542225399172662:12:9:14839476365168560129546882422 52542225399172662:12:10:52542225399172662000000000000 52542225399172662:12:11:164900011168834353857060401302 52542225399172662:12:12:468471759433931160189740777472 52542225399172662:12:13:1224133239874507918068336814422 52542225399172662:12:14:2978824322783746795641647357952 52542225399172662:12:15:6817161330166435221177246093750 52542225399172662:12:16:14789321670558163189580559286272 52542225399172662:12:17:30612268911096348533624203993782 52542225399172662:12:18:60782495191730422290624030400512 52542225399172662:12:19:116292491356925829236179040490582 52542225399172662:12:20:215212955235011223552000000000000 52542225399172662:13:2:430425910470022447104 52542225399172662:13:3:83769278425085155997826 52542225399172662:13:4:3526049058570423886675968 52542225399172662:13:5:64138458739224440917968750 52542225399172662:13:6:686237928858297597934190592 52542225399172662:13:7:5090764223507379777707893434 52542225399172662:13:8:28885393887808912479649529856 52542225399172662:13:9:133555287286517041165921941798 52542225399172662:13:10:525422253991726620000000000000 52542225399172662:13:11:1813900122857177892427664414322 52542225399172662:13:12:5621661113207173922276889329664 52542225399172662:13:13:15913732118368602934888378587486 52542225399172662:13:14:41703540518972455138983063011328 52542225399172662:13:15:102257419952496528317658691406250 52542225399172662:13:16:236629146728930611033288948580352 52542225399172662:13:17:520408571488637925071611467894294 52542225399172662:13:18:1094084913451147601231232547209216 52542225399172662:13:19:2209557335781590755487401769321058 52542225399172662:13:20:4304259104700224471040000000000000 52542225399172662:14:2:860851820940044894208 52542225399172662:14:3:251307835275255467993478 52542225399172662:14:4:14104196234281695546703872 52542225399172662:14:5:320692293696122204589843750 52542225399172662:14:6:4117427573149785587605143552 52542225399172662:14:7:35635349564551658443955254038 52542225399172662:14:8:231083151102471299837196238848 52542225399172662:14:9:1201997585578653370493297476182 52542225399172662:14:10:5254222539917266200000000000000 52542225399172662:14:11:19952901351428956816704308557542 52542225399172662:14:12:67459933358486087067322671955968 52542225399172662:14:13:206878517538791838153548921637318 52542225399172662:14:14:583849567265614371945762882158592 52542225399172662:14:15:1533861299287447924764880371093750 52542225399172662:14:16:3786066347662889776532623177285632 52542225399172662:14:17:8846945715306844726217394954202998 52542225399172662:14:18:19693528442120656822162185849765888 52542225399172662:14:19:41981589379850224354260633617100102 52542225399172662:14:20:86085182094004489420800000000000000 52542225399172662:15:2:1721703641880089788416 52542225399172662:15:3:753923505825766403980434 52542225399172662:15:4:56416784937126782186815488 52542225399172662:15:5:1603461468480611022949218750 52542225399172662:15:6:24704565438898713525630861312 52542225399172662:15:7:249447446951861609107686778266 52542225399172662:15:8:1848665208819770398697569910784 52542225399172662:15:9:10817978270207880334439677285638 52542225399172662:15:10:52542225399172662000000000000000 52542225399172662:15:11:219481914865718524983747394132962 52542225399172662:15:12:809519200301833044807872063471616 52542225399172662:15:13:2689420728004293895996135981285134 52542225399172662:15:14:8173893941718601207240680350220288 52542225399172662:15:15:23007919489311718871473205566406250 52542225399172662:15:16:60577061562606236424521970836570112 52542225399172662:15:17:150398077160216360345695714221450966 52542225399172662:15:18:354483511958171822798919345295785984 52542225399172662:15:19:797650198217154262730952038724901938 52542225399172662:15:20:1721703641880089788416000000000000000 52542225399172662:16:2:3443407283760179576832 52542225399172662:16:3:2261770517477299211941302 52542225399172662:16:4:225667139748507128747261952 52542225399172662:16:5:8017307342403055114746093750 52542225399172662:16:6:148227392633392281153785167872 52542225399172662:16:7:1746132128663031263753807447862 52542225399172662:16:8:14789321670558163189580559286272 52542225399172662:16:9:97361804431870923009957095570742 52542225399172662:16:10:525422253991726620000000000000000 52542225399172662:16:11:2414301063522903774821221335462582 52542225399172662:16:12:9714230403621996537694464761659392 52542225399172662:16:13:34962469464055820647949767756706742 52542225399172662:16:14:114434515184060416901369524903084032 52542225399172662:16:15:345118792339675783072098083496093750 52542225399172662:16:16:969232985001699782792351533385121792 52542225399172662:16:17:2556767311723678125876827141764666422 52542225399172662:16:18:6380703215247092810380548215324147712 52542225399172662:16:19:15155353766125930991888088735773136822 52542225399172662:16:20:34434072837601795768320000000000000000 52542225399172662:17:2:6886814567520359153664 52542225399172662:17:3:6785311552431897635823906 52542225399172662:17:4:902668558994028514989047808 52542225399172662:17:5:40086536712015275573730468750 52542225399172662:17:6:889364355800353686922711007232 52542225399172662:17:7:12222924900641218846276652135034 52542225399172662:17:8:118314573364465305516644474290176 52542225399172662:17:9:876256239886838307089613860136678 52542225399172662:17:10:5254222539917266200000000000000000 52542225399172662:17:11:26557311698751941523033434690088402 52542225399172662:17:12:116570764843463958452333577139912704 52542225399172662:17:13:454512103032725668423346980837187646 52542225399172662:17:14:1602083212576845836619173348643176448 52542225399172662:17:15:5176781885095136746081471252441406250 52542225399172662:17:16:15507727760027196524677624534161948672 52542225399172662:17:17:43465044299302528139906061409999329174 52542225399172662:17:18:114852657874447670586849867875834658816 52542225399172662:17:19:287951721556392688845873685979689599618 52542225399172662:17:20:688681456752035915366400000000000000000 52542225399172662:18:2:13773629135040718307328 52542225399172662:18:3:20355934657295692907471718 52542225399172662:18:4:3610674235976114059956191232 52542225399172662:18:5:200432683560076377868652343750 52542225399172662:18:6:5336186134802122121536266043392 52542225399172662:18:7:85560474304488531923936564945238 52542225399172662:18:8:946516586915722444133155794321408 52542225399172662:18:9:7886306158981544763806524741230102 52542225399172662:18:10:52542225399172662000000000000000000 52542225399172662:18:11:292130428686271356753367781590972422 52542225399172662:18:12:1398849178121567501428002925678952448 52542225399172662:18:13:5908657339425433689503510750883439398 52542225399172662:18:14:22429164976075841712668426881004470272 52542225399172662:18:15:77651728276427051191222068786621093750 52542225399172662:18:16:248123644160435144394841992546591178752 52542225399172662:18:17:738905753088142978378403043969988595958 52542225399172662:18:18:2067347841740058070563297621765023858688 52542225399172662:18:19:5471082709571461088071600033614102392742 52542225399172662:18:20:13773629135040718307328000000000000000000 52542225399172662:19:2:27547258270081436614656 52542225399172662:19:3:61067803971887078722415154 52542225399172662:19:4:14442696943904456239824764928 52542225399172662:19:5:1002163417800381889343261718750 52542225399172662:19:6:32017116808812732729217596260352 52542225399172662:19:7:598923320131419723467555954616666 52542225399172662:19:8:7572132695325779553065246354571264 52542225399172662:19:9:70976755430833902874258722671070918 52542225399172662:19:10:525422253991726620000000000000000000 52542225399172662:19:11:3213434715548984924287045597500696642 52542225399172662:19:12:16786190137458810017136035108147429376 52542225399172662:19:13:76812545412530637963545639761484712174 52542225399172662:19:14:314008309665061783977357976334062583808 52542225399172662:19:15:1164775924146405767868331031799316406250 52542225399172662:19:16:3969978306566962310317471880745458860032 52542225399172662:19:17:12561397802498430632432851747489806131286 52542225399172662:19:18:37212261151321045270139357191770429456384 52542225399172662:19:19:103950571481857760673360400638667945462098 52542225399172662:19:20:275472582700814366146560000000000000000000 52542225399172662:20:2:55094516540162873229312 52542225399172662:20:3:183203411915661236167245462 52542225399172662:20:4:57770787775617824959299059712 52542225399172662:20:5:5010817089001909446716308593750 52542225399172662:20:6:192102700852876396375305577562112 52542225399172662:20:7:4192463240919938064272891682316662 52542225399172662:20:8:60577061562606236424521970836570112 52542225399172662:20:9:638790798877505125868328504039638262 52542225399172662:20:10:5254222539917266200000000000000000000 52542225399172662:20:11:35347781871038834167157501572507663062 52542225399172662:20:12:201434281649505720205632421297769152512 52542225399172662:20:13:998563090362898293526093316899301258262 52542225399172662:20:14:4396116335310864975683011668676876173312 52542225399172662:20:15:17471638862196086518024965476989746093750 52542225399172662:20:16:63519652905071396965079550091927341760512 52542225399172662:20:17:213543762642473320751358479707326704231862 52542225399172662:20:18:669820700723778814862508429451867730214912 52542225399172662:20:19:1975060858155297452793847612134690963779862 52542225399172662:20:20:5509451654016287322931200000000000000000000 523503991474319612:0:2:523503991474319612 523503991474319612:0:3:523503991474319612 523503991474319612:0:4:523503991474319612 523503991474319612:0:5:523503991474319612 523503991474319612:0:6:523503991474319612 523503991474319612:0:7:523503991474319612 523503991474319612:0:8:523503991474319612 523503991474319612:0:9:523503991474319612 523503991474319612:0:10:523503991474319612 523503991474319612:0:11:523503991474319612 523503991474319612:0:12:523503991474319612 523503991474319612:0:13:523503991474319612 523503991474319612:0:14:523503991474319612 523503991474319612:0:15:523503991474319612 523503991474319612:0:16:523503991474319612 523503991474319612:0:17:523503991474319612 523503991474319612:0:18:523503991474319612 523503991474319612:0:19:523503991474319612 523503991474319612:0:20:523503991474319612 523503991474319612:1:2:1047007982948639224 523503991474319612:1:3:1570511974422958836 523503991474319612:1:4:2094015965897278448 523503991474319612:1:5:2617519957371598060 523503991474319612:1:6:3141023948845917672 523503991474319612:1:7:3664527940320237284 523503991474319612:1:8:4188031931794556896 523503991474319612:1:9:4711535923268876508 523503991474319612:1:10:5235039914743196120 523503991474319612:1:11:5758543906217515732 523503991474319612:1:12:6282047897691835344 523503991474319612:1:13:6805551889166154956 523503991474319612:1:14:7329055880640474568 523503991474319612:1:15:7852559872114794180 523503991474319612:1:16:8376063863589113792 523503991474319612:1:17:8899567855063433404 523503991474319612:1:18:9423071846537753016 523503991474319612:1:19:9946575838012072628 523503991474319612:1:20:10470079829486392240 523503991474319612:2:2:2094015965897278448 523503991474319612:2:3:4711535923268876508 523503991474319612:2:4:8376063863589113792 523503991474319612:2:5:13087599786857990300 523503991474319612:2:6:18846143693075506032 523503991474319612:2:7:25651695582241660988 523503991474319612:2:8:33504255454356455168 523503991474319612:2:9:42403823309419888572 523503991474319612:2:10:52350399147431961200 523503991474319612:2:11:63343982968392673052 523503991474319612:2:12:75384574772302024128 523503991474319612:2:13:88472174559160014428 523503991474319612:2:14:102606782328966643952 523503991474319612:2:15:117788398081721912700 523503991474319612:2:16:134017021817425820672 523503991474319612:2:17:151292653536078367868 523503991474319612:2:18:169615293237679554288 523503991474319612:2:19:188984940922229379932 523503991474319612:2:20:209401596589727844800 523503991474319612:3:2:4188031931794556896 523503991474319612:3:3:14134607769806629524 523503991474319612:3:4:33504255454356455168 523503991474319612:3:5:65437998934289951500 523503991474319612:3:6:113076862158453036192 523503991474319612:3:7:179561869075691626916 523503991474319612:3:8:268034043634851641344 523503991474319612:3:9:381634409784778997148 523503991474319612:3:10:523503991474319612000 523503991474319612:3:11:696783812652319403572 523503991474319612:3:12:904614897267624289536 523503991474319612:3:13:1150138269269080187564 523503991474319612:3:14:1436494952605533015328 523503991474319612:3:15:1766825971225828690500 523503991474319612:3:16:2144272349078813130752 523503991474319612:3:17:2571975110113332253756 523503991474319612:3:18:3053075278278231977184 523503991474319612:3:19:3590713877522358218708 523503991474319612:3:20:4188031931794556896000 523503991474319612:4:2:8376063863589113792 523503991474319612:4:3:42403823309419888572 523503991474319612:4:4:134017021817425820672 523503991474319612:4:5:327189994671449757500 523503991474319612:4:6:678461172950718217152 523503991474319612:4:7:1256933083529841388412 523503991474319612:4:8:2144272349078813130752 523503991474319612:4:9:3434709688063010974332 523503991474319612:4:10:5235039914743196120000 523503991474319612:4:11:7664621939175513439292 523503991474319612:4:12:10855378767211491474432 523503991474319612:4:13:14951797500498042438332 523503991474319612:4:14:20110929336477462214592 523503991474319612:4:15:26502389568387430357500 523503991474319612:4:16:34308357585261010092032 523503991474319612:4:17:43723576871926648313852 523503991474319612:4:18:54955355009008175589312 523503991474319612:4:19:68223563672924806155452 523503991474319612:4:20:83760638635891137920000 523503991474319612:5:2:16752127727178227584 523503991474319612:5:3:127211469928259665716 523503991474319612:5:4:536068087269703282688 523503991474319612:5:5:1635949973357248787500 523503991474319612:5:6:4070767037704309302912 523503991474319612:5:7:8798531584708889718884 523503991474319612:5:8:17154178792630505046016 523503991474319612:5:9:30912387192567098768988 523503991474319612:5:10:52350399147431961200000 523503991474319612:5:11:84310841330930647832212 523503991474319612:5:12:130264545206537897693184 523503991474319612:5:13:194373367506474551698316 523503991474319612:5:14:281553010710684471004288 523503991474319612:5:15:397535843525811455362500 523503991474319612:5:16:548933721364176161472512 523503991474319612:5:17:743300806822753021335484 523503991474319612:5:18:989196390162147160607616 523503991474319612:5:19:1296247709785571316953588 523503991474319612:5:20:1675212772717822758400000 523503991474319612:6:2:33504255454356455168 523503991474319612:6:3:381634409784778997148 523503991474319612:6:4:2144272349078813130752 523503991474319612:6:5:8179749866786243937500 523503991474319612:6:6:24424602226225855817472 523503991474319612:6:7:61589721092962228032188 523503991474319612:6:8:137233430341044040368128 523503991474319612:6:9:278211484733103888920892 523503991474319612:6:10:523503991474319612000000 523503991474319612:6:11:927419254640237126154332 523503991474319612:6:12:1563174542478454772318208 523503991474319612:6:13:2526853777584169172078108 523503991474319612:6:14:3941742149949582594060032 523503991474319612:6:15:5963037652887171830437500 523503991474319612:6:16:8782939541826818583560192 523503991474319612:6:17:12636113715986801362703228 523503991474319612:6:18:17805535022918648890937088 523503991474319612:6:19:24628706485925855022118172 523503991474319612:6:20:33504255454356455168000000 523503991474319612:7:2:67008510908712910336 523503991474319612:7:3:1144903229354336991444 523503991474319612:7:4:8577089396315252523008 523503991474319612:7:5:40898749333931219687500 523503991474319612:7:6:146547613357355134904832 523503991474319612:7:7:431128047650735596225316 523503991474319612:7:8:1097867442728352322945024 523503991474319612:7:9:2503903362597935000288028 523503991474319612:7:10:5235039914743196120000000 523503991474319612:7:11:10201611801042608387697652 523503991474319612:7:12:18758094509741457267818496 523503991474319612:7:13:32849099108594199237015404 523503991474319612:7:14:55184390099294156316840448 523503991474319612:7:15:89445564793307577456562500 523503991474319612:7:16:140527032669229097336963072 523503991474319612:7:17:214813933171775623165954876 523503991474319612:7:18:320499630412535680036867584 523503991474319612:7:19:467945423232591245420245268 523503991474319612:7:20:670085109087129103360000000 523503991474319612:8:2:134017021817425820672 523503991474319612:8:3:3434709688063010974332 523503991474319612:8:4:34308357585261010092032 523503991474319612:8:5:204493746669656098437500 523503991474319612:8:6:879285680144130809428992 523503991474319612:8:7:3017896333555149173577212 523503991474319612:8:8:8782939541826818583560192 523503991474319612:8:9:22535130263381415002592252 523503991474319612:8:10:52350399147431961200000000 523503991474319612:8:11:112217729811468692264674172 523503991474319612:8:12:225097134116897487213821952 523503991474319612:8:13:427038288411724590081200252 523503991474319612:8:14:772581461390118188435766272 523503991474319612:8:15:1341683471899613661848437500 523503991474319612:8:16:2248432522707665557391409152 523503991474319612:8:17:3651836863920185593821232892 523503991474319612:8:18:5768993347425642240663616512 523503991474319612:8:19:8890963041419233662984660092 523503991474319612:8:20:13401702181742582067200000000 523503991474319612:9:2:268034043634851641344 523503991474319612:9:3:10304129064189032922996 523503991474319612:9:4:137233430341044040368128 523503991474319612:9:5:1022468733348280492187500 523503991474319612:9:6:5275714080864784856573952 523503991474319612:9:7:21125274334886044215040484 523503991474319612:9:8:70263516334614548668481536 523503991474319612:9:9:202816172370432735023330268 523503991474319612:9:10:523503991474319612000000000 523503991474319612:9:11:1234395027926155614911415892 523503991474319612:9:12:2701165609402769846565863424 523503991474319612:9:13:5551497749352419671055603276 523503991474319612:9:14:10816140459461654638100727808 523503991474319612:9:15:20125252078494204927726562500 523503991474319612:9:16:35974920363322648918262546432 523503991474319612:9:17:62081226686643155094960959164 523503991474319612:9:18:103841880253661560331945097216 523503991474319612:9:19:168928297786965439596708541748 523503991474319612:9:20:268034043634851641344000000000 523503991474319612:10:2:536068087269703282688 523503991474319612:10:3:30912387192567098768988 523503991474319612:10:4:548933721364176161472512 523503991474319612:10:5:5112343666741402460937500 523503991474319612:10:6:31654284485188709139443712 523503991474319612:10:7:147876920344202309505283388 523503991474319612:10:8:562108130676916389347852288 523503991474319612:10:9:1825345551333894615209972412 523503991474319612:10:10:5235039914743196120000000000 523503991474319612:10:11:13578345307187711764025574812 523503991474319612:10:12:32413987312833238158790361088 523503991474319612:10:13:72169470741581455723722842588 523503991474319612:10:14:151425966432463164933410189312 523503991474319612:10:15:301878781177413073915898437500 523503991474319612:10:16:575598725813162382692200742912 523503991474319612:10:17:1055380853672933636614336305788 523503991474319612:10:18:1869153844565908085975011749888 523503991474319612:10:19:3209637657952343352337462293212 523503991474319612:10:20:5360680872697032826880000000000 523503991474319612:11:2:1072136174539406565376 523503991474319612:11:3:92737161577701296306964 523503991474319612:11:4:2195734885456704645890048 523503991474319612:11:5:25561718333707012304687500 523503991474319612:11:6:189925706911132254836662272 523503991474319612:11:7:1035138442409416166536983716 523503991474319612:11:8:4496865045415331114782818304 523503991474319612:11:9:16428109962005051536889751708 523503991474319612:11:10:52350399147431961200000000000 523503991474319612:11:11:149361798379064829404281322932 523503991474319612:11:12:388967847753998857905484333056 523503991474319612:11:13:938203119640558924408396953644 523503991474319612:11:14:2119963530054484309067742650368 523503991474319612:11:15:4528181717661196108738476562500 523503991474319612:11:16:9209579613010598123075211886592 523503991474319612:11:17:17941474512439871822443717198396 523503991474319612:11:18:33644769202186345547550211497984 523503991474319612:11:19:60983115501094523694411783571028 523503991474319612:11:20:107213617453940656537600000000000 523503991474319612:12:2:2144272349078813130752 523503991474319612:12:3:278211484733103888920892 523503991474319612:12:4:8782939541826818583560192 523503991474319612:12:5:127808591668535061523437500 523503991474319612:12:6:1139554241466793529019973632 523503991474319612:12:7:7245969096865913165758886012 523503991474319612:12:8:35974920363322648918262546432 523503991474319612:12:9:147852989658045463832007765372 523503991474319612:12:10:523503991474319612000000000000 523503991474319612:12:11:1642979782169713123447094552252 523503991474319612:12:12:4667614173047986294865811996672 523503991474319612:12:13:12196640555327266017309160397372 523503991474319612:12:14:29679489420762780326948397105152 523503991474319612:12:15:67922725764917941631077148437500 523503991474319612:12:16:147353273808169569969203390185472 523503991474319612:12:17:305005066711477820981543192372732 523503991474319612:12:18:605605845639354219855903806963712 523503991474319612:12:19:1158679194520795950193823887849532 523503991474319612:12:20:2144272349078813130752000000000000 523503991474319612:13:2:4288544698157626261504 523503991474319612:13:3:834634454199311666762676 523503991474319612:13:4:35131758167307274334240768 523503991474319612:13:5:639042958342675307617187500 523503991474319612:13:6:6837325448800761174119841792 523503991474319612:13:7:50721783678061392160312202084 523503991474319612:13:8:287799362906581191346100371456 523503991474319612:13:9:1330676906922409174488069888348 523503991474319612:13:10:5235039914743196120000000000000 523503991474319612:13:11:18072777603866844357918040074772 523503991474319612:13:12:56011370076575835538389743960064 523503991474319612:13:13:158556327219254458225019085165836 523503991474319612:13:14:415512851890678924577277559472128 523503991474319612:13:15:1018840886473769124466157226562500 523503991474319612:13:16:2357652380930713119507254242967552 523503991474319612:13:17:5185086134095122956686234270336444 523503991474319612:13:18:10900905221508375957406268525346816 523503991474319612:13:19:22014904695895123053682653869141108 523503991474319612:13:20:42885446981576262615040000000000000 523503991474319612:14:2:8577089396315252523008 523503991474319612:14:3:2503903362597935000288028 523503991474319612:14:4:140527032669229097336963072 523503991474319612:14:5:3195214791713376538085937500 523503991474319612:14:6:41023952692804567044719050752 523503991474319612:14:7:355052485746429745122185414588 523503991474319612:14:8:2302394903252649530768802971648 523503991474319612:14:9:11976092162301682570392628995132 523503991474319612:14:10:52350399147431961200000000000000 523503991474319612:14:11:198800553642535287937098440822492 523503991474319612:14:12:672136440918910026460676927520768 523503991474319612:14:13:2061232253850307956925248107155868 523503991474319612:14:14:5817179926469504944081885832609792 523503991474319612:14:15:15282613297106536866992358398437500 523503991474319612:14:16:37722438094891409912116067887480832 523503991474319612:14:17:88146464279617090263665982595719548 523503991474319612:14:18:196216293987150767233312833456242688 523503991474319612:14:19:418283189222007338019970423513681052 523503991474319612:14:20:857708939631525252300800000000000000 523503991474319612:15:2:17154178792630505046016 523503991474319612:15:3:7511710087793805000864084 523503991474319612:15:4:562108130676916389347852288 523503991474319612:15:5:15976073958566882690429687500 523503991474319612:15:6:246143716156827402268314304512 523503991474319612:15:7:2485367400225008215855297902116 523503991474319612:15:8:18419159226021196246150423773184 523503991474319612:15:9:107784829460715143133533660956188 523503991474319612:15:10:523503991474319612000000000000000 523503991474319612:15:11:2186806090067888167308082849047412 523503991474319612:15:12:8065637291026920317528123130249216 523503991474319612:15:13:26796019300054003440028225393026284 523503991474319612:15:14:81440518970573069217146401656537088 523503991474319612:15:15:229239199456598053004885375976562500 523503991474319612:15:16:603559009518262558593857086199693312 523503991474319612:15:17:1498489892753490534482321704127232316 523503991474319612:15:18:3531893291768713810199631002212368384 523503991474319612:15:19:7947380595218139422379438046759939988 523503991474319612:15:20:17154178792630505046016000000000000000 523503991474319612:16:2:34308357585261010092032 523503991474319612:16:3:22535130263381415002592252 523503991474319612:16:4:2248432522707665557391409152 523503991474319612:16:5:79880369792834413452148437500 523503991474319612:16:6:1476862296940964413609885827072 523503991474319612:16:7:17397571801575057510987085314812 523503991474319612:16:8:147353273808169569969203390185472 523503991474319612:16:9:970063465146436288201802948605692 523503991474319612:16:10:5235039914743196120000000000000000 523503991474319612:16:11:24054866990746769840388911339521532 523503991474319612:16:12:96787647492323043810337477562990592 523503991474319612:16:13:348348250900702044720366930109341692 523503991474319612:16:14:1140167265588022969040049623191519232 523503991474319612:16:15:3438587991848970795073280639648437500 523503991474319612:16:16:9656944152292200937501713379195092992 523503991474319612:16:17:25474328176809339086199468970162949372 523503991474319612:16:18:63574079251836848583593358039822630912 523503991474319612:16:19:151000231309144649025209322888438859772 523503991474319612:16:20:343083575852610100920320000000000000000 523503991474319612:17:2:68616715170522020184064 523503991474319612:17:3:67605390790144245007776756 523503991474319612:17:4:8993730090830662229565636608 523503991474319612:17:5:399401848964172067260742187500 523503991474319612:17:6:8861173781645786481659314962432 523503991474319612:17:7:121783002611025402576909597203684 523503991474319612:17:8:1178826190465356559753627121483776 523503991474319612:17:9:8730571186317926593816226537451228 523503991474319612:17:10:52350399147431961200000000000000000 523503991474319612:17:11:264603536898214468244278024734736852 523503991474319612:17:12:1161451769907876525724049730755887104 523503991474319612:17:13:4528527261709126581364770091421441996 523503991474319612:17:14:15962341718232321566560694724681269248 523503991474319612:17:15:51578819877734561926099209594726562500 523503991474319612:17:16:154511106436675215000027414067121487872 523503991474319612:17:17:433063579005758764465390972492770139324 523503991474319612:17:18:1144333426533063274504680444716807356416 523503991474319612:17:19:2869004394873748331478977134880338335668 523503991474319612:17:20:6861671517052202018406400000000000000000 523503991474319612:18:2:137233430341044040368128 523503991474319612:18:3:202816172370432735023330268 523503991474319612:18:4:35974920363322648918262546432 523503991474319612:18:5:1997009244820860336303710937500 523503991474319612:18:6:53167042689874718889955889774592 523503991474319612:18:7:852481018277177818038367180425788 523503991474319612:18:8:9430609523722852478029016971870208 523503991474319612:18:9:78575140676861339344346038837061052 523503991474319612:18:10:523503991474319612000000000000000000 523503991474319612:18:11:2910638905880359150687058272082105372 523503991474319612:18:12:13937421238894518308688596769070645248 523503991474319612:18:13:58870854402218645557742011188478745948 523503991474319612:18:14:223472784055252501931849726145537769472 523503991474319612:18:15:773682298166018428891488143920898437500 523503991474319612:18:16:2472177702986803440000438625073943805952 523503991474319612:18:17:7362080843097898995911646532377092368508 523503991474319612:18:18:20598001677595138941084248004902532415488 523503991474319612:18:19:54511083502601218298100565562726428377692 523503991474319612:18:20:137233430341044040368128000000000000000000 523503991474319612:19:2:274466860682088080736256 523503991474319612:19:3:608448517111298205069990804 523503991474319612:19:4:143899681453290595673050185728 523503991474319612:19:5:9985046224104301681518554687500 523503991474319612:19:6:319002256139248313339735338647552 523503991474319612:19:7:5967367127940244726268570262980516 523503991474319612:19:8:75444876189782819824232135774961664 523503991474319612:19:9:707176266091752054099114349533549468 523503991474319612:19:10:5235039914743196120000000000000000000 523503991474319612:19:11:32017027964683950657557640992903159092 523503991474319612:19:12:167249054866734219704263161228847742976 523503991474319612:19:13:765321107228842392250646145450223697324 523503991474319612:19:14:3128618976773535027045896166037528772608 523503991474319612:19:15:11605234472490276433372322158813476562500 523503991474319612:19:16:39554843247788855040007018001183100895232 523503991474319612:19:17:125155374332664282930497991050410570264636 523503991474319612:19:18:370764030196712500939516464088245583478784 523503991474319612:19:19:1035710586549423147663910745691802139176148 523503991474319612:19:20:2744668606820880807362560000000000000000000 523503991474319612:20:2:548933721364176161472512 523503991474319612:20:3:1825345551333894615209972412 523503991474319612:20:4:575598725813162382692200742912 523503991474319612:20:5:49925231120521508407592773437500 523503991474319612:20:6:1914013536835489880038412031885312 523503991474319612:20:7:41771569895581713083879991840863612 523503991474319612:20:8:603559009518262558593857086199693312 523503991474319612:20:9:6364586394825768486892029145801945212 523503991474319612:20:10:52350399147431961200000000000000000000 523503991474319612:20:11:352187307611523457233134050921934750012 523503991474319612:20:12:2006988658400810636451157934746172915712 523503991474319612:20:13:9949174393974951099258399890852908065212 523503991474319612:20:14:43800665674829490378642546324525402816512 523503991474319612:20:15:174078517087354146500584832382202148437500 523503991474319612:20:16:632877491964621680640112288018929614323712 523503991474319612:20:17:2127641363655292809818465847856979694498812 523503991474319612:20:18:6673752543540825016911296353588420502618112 523503991474319612:20:19:19678501144439039805614304168144240644346812 523503991474319612:20:20:54893372136417616147251200000000000000000000 3464452702834759928:0:2:3464452702834759928 3464452702834759928:0:3:3464452702834759928 3464452702834759928:0:4:3464452702834759928 3464452702834759928:0:5:3464452702834759928 3464452702834759928:0:6:3464452702834759928 3464452702834759928:0:7:3464452702834759928 3464452702834759928:0:8:3464452702834759928 3464452702834759928:0:9:3464452702834759928 3464452702834759928:0:10:3464452702834759928 3464452702834759928:0:11:3464452702834759928 3464452702834759928:0:12:3464452702834759928 3464452702834759928:0:13:3464452702834759928 3464452702834759928:0:14:3464452702834759928 3464452702834759928:0:15:3464452702834759928 3464452702834759928:0:16:3464452702834759928 3464452702834759928:0:17:3464452702834759928 3464452702834759928:0:18:3464452702834759928 3464452702834759928:0:19:3464452702834759928 3464452702834759928:0:20:3464452702834759928 3464452702834759928:1:2:6928905405669519856 3464452702834759928:1:3:10393358108504279784 3464452702834759928:1:4:13857810811339039712 3464452702834759928:1:5:17322263514173799640 3464452702834759928:1:6:20786716217008559568 3464452702834759928:1:7:24251168919843319496 3464452702834759928:1:8:27715621622678079424 3464452702834759928:1:9:31180074325512839352 3464452702834759928:1:10:34644527028347599280 3464452702834759928:1:11:38108979731182359208 3464452702834759928:1:12:41573432434017119136 3464452702834759928:1:13:45037885136851879064 3464452702834759928:1:14:48502337839686638992 3464452702834759928:1:15:51966790542521398920 3464452702834759928:1:16:55431243245356158848 3464452702834759928:1:17:58895695948190918776 3464452702834759928:1:18:62360148651025678704 3464452702834759928:1:19:65824601353860438632 3464452702834759928:1:20:69289054056695198560 3464452702834759928:2:2:13857810811339039712 3464452702834759928:2:3:31180074325512839352 3464452702834759928:2:4:55431243245356158848 3464452702834759928:2:5:86611317570868998200 3464452702834759928:2:6:124720297302051357408 3464452702834759928:2:7:169758182438903236472 3464452702834759928:2:8:221724972981424635392 3464452702834759928:2:9:280620668929615554168 3464452702834759928:2:10:346445270283475992800 3464452702834759928:2:11:419198777043005951288 3464452702834759928:2:12:498881189208205429632 3464452702834759928:2:13:585492506779074427832 3464452702834759928:2:14:679032729755612945888 3464452702834759928:2:15:779501858137820983800 3464452702834759928:2:16:886899891925698541568 3464452702834759928:2:17:1001226831119245619192 3464452702834759928:2:18:1122482675718462216672 3464452702834759928:2:19:1250667425723348334008 3464452702834759928:2:20:1385781081133903971200 3464452702834759928:3:2:27715621622678079424 3464452702834759928:3:3:93540222976538518056 3464452702834759928:3:4:221724972981424635392 3464452702834759928:3:5:433056587854344991000 3464452702834759928:3:6:748321783812308144448 3464452702834759928:3:7:1188307277072322655304 3464452702834759928:3:8:1773799783851397083136 3464452702834759928:3:9:2525586020366539987512 3464452702834759928:3:10:3464452702834759928000 3464452702834759928:3:11:4611186547473065464168 3464452702834759928:3:12:5986574270498465155584 3464452702834759928:3:13:7611402588127967561816 3464452702834759928:3:14:9506458216578581242432 3464452702834759928:3:15:11692527872067314757000 3464452702834759928:3:16:14190398270811176665088 3464452702834759928:3:17:17020856129027175526264 3464452702834759928:3:18:20204688162932319900096 3464452702834759928:3:19:23762681088743618346152 3464452702834759928:3:20:27715621622678079424000 3464452702834759928:4:2:55431243245356158848 3464452702834759928:4:3:280620668929615554168 3464452702834759928:4:4:886899891925698541568 3464452702834759928:4:5:2165282939271724955000 3464452702834759928:4:6:4489930702873848866688 3464452702834759928:4:7:8318150939506258587128 3464452702834759928:4:8:14190398270811176665088 3464452702834759928:4:9:22730274183298859887608 3464452702834759928:4:10:34644527028347599280000 3464452702834759928:4:11:50723052022203720105848 3464452702834759928:4:12:71838891245981581867008 3464452702834759928:4:13:98948233645663578303608 3464452702834759928:4:14:133090415032100137394048 3464452702834759928:4:15:175387918081009721355000 3464452702834759928:4:16:227046372332978826641408 3464452702834759928:4:17:289354554193461983946488 3464452702834759928:4:18:363684386932781758201728 3464452702834759928:4:19:451490940686128748576888 3464452702834759928:4:20:554312432453561588480000 3464452702834759928:5:2:110862486490712317696 3464452702834759928:5:3:841862006788846662504 3464452702834759928:5:4:3547599567702794166272 3464452702834759928:5:5:10826414696358624775000 3464452702834759928:5:6:26939584217243093200128 3464452702834759928:5:7:58227056576543810109896 3464452702834759928:5:8:113523186166489413320704 3464452702834759928:5:9:204572467649689738988472 3464452702834759928:5:10:346445270283475992800000 3464452702834759928:5:11:557953572244240921164328 3464452702834759928:5:12:862066694951778982404096 3464452702834759928:5:13:1286327037393626517946904 3464452702834759928:5:14:1863265810449401923516672 3464452702834759928:5:15:2630818771215145820325000 3464452702834759928:5:16:3632741957327661226262528 3464452702834759928:5:17:4919027421288853727090296 3464452702834759928:5:18:6546318964790071647631104 3464452702834759928:5:19:8578327873036446222960872 3464452702834759928:5:20:11086248649071231769600000 3464452702834759928:6:2:221724972981424635392 3464452702834759928:6:3:2525586020366539987512 3464452702834759928:6:4:14190398270811176665088 3464452702834759928:6:5:54132073481793123875000 3464452702834759928:6:6:161637505303458559200768 3464452702834759928:6:7:407589396035806670769272 3464452702834759928:6:8:908185489331915306565632 3464452702834759928:6:9:1841152208847207650896248 3464452702834759928:6:10:3464452702834759928000000 3464452702834759928:6:11:6137489294686650132807608 3464452702834759928:6:12:10344800339421347788849152 3464452702834759928:6:13:16722251486117144733309752 3464452702834759928:6:14:26085721346291626929233408 3464452702834759928:6:15:39462281568227187304875000 3464452702834759928:6:16:58123871317242579620200448 3464452702834759928:6:17:83623466161910513360535032 3464452702834759928:6:18:117833741366221289657359872 3464452702834759928:6:19:162988229587692478236256568 3464452702834759928:6:20:221724972981424635392000000 3464452702834759928:7:2:443449945962849270784 3464452702834759928:7:3:7576758061099619962536 3464452702834759928:7:4:56761593083244706660352 3464452702834759928:7:5:270660367408965619375000 3464452702834759928:7:6:969825031820751355204608 3464452702834759928:7:7:2853125772250646695384904 3464452702834759928:7:8:7265483914655322452525056 3464452702834759928:7:9:16570369879624868858066232 3464452702834759928:7:10:34644527028347599280000000 3464452702834759928:7:11:67512382241553151460883688 3464452702834759928:7:12:124137604073056173466189824 3464452702834759928:7:13:217389269319522881533026776 3464452702834759928:7:14:365200098848082777009267712 3464452702834759928:7:15:591934223523407809573125000 3464452702834759928:7:16:929981941075881273923207168 3464452702834759928:7:17:1421598924752478727129095544 3464452702834759928:7:18:2121007344591983213832477696 3464452702834759928:7:19:3096776362166157086488874792 3464452702834759928:7:20:4434499459628492707840000000 3464452702834759928:8:2:886899891925698541568 3464452702834759928:8:3:22730274183298859887608 3464452702834759928:8:4:227046372332978826641408 3464452702834759928:8:5:1353301837044828096875000 3464452702834759928:8:6:5818950190924508131227648 3464452702834759928:8:7:19971880405754526867694328 3464452702834759928:8:8:58123871317242579620200448 3464452702834759928:8:9:149133328916623819722596088 3464452702834759928:8:10:346445270283475992800000000 3464452702834759928:8:11:742636204657084666069720568 3464452702834759928:8:12:1489651248876674081594277888 3464452702834759928:8:13:2826060501153797459929348088 3464452702834759928:8:14:5112801383873158878129747968 3464452702834759928:8:15:8879013352851117143596875000 3464452702834759928:8:16:14879711057214100382771314688 3464452702834759928:8:17:24167181720792138361194624248 3464452702834759928:8:18:38178132202655697848984598528 3464452702834759928:8:19:58838750881156984643288621048 3464452702834759928:8:20:88689989192569854156800000000 3464452702834759928:9:2:1773799783851397083136 3464452702834759928:9:3:68190822549896579662824 3464452702834759928:9:4:908185489331915306565632 3464452702834759928:9:5:6766509185224140484375000 3464452702834759928:9:6:34913701145547048787365888 3464452702834759928:9:7:139803162840281688073860296 3464452702834759928:9:8:464990970537940636961603584 3464452702834759928:9:9:1342199960249614377503364792 3464452702834759928:9:10:3464452702834759928000000000 3464452702834759928:9:11:8168998251227931326766926248 3464452702834759928:9:12:17875814986520088979131334656 3464452702834759928:9:13:36738786514999366979081525144 3464452702834759928:9:14:71579219374224224293816471552 3464452702834759928:9:15:133185200292766757153953125000 3464452702834759928:9:16:238075376915425606124341035008 3464452702834759928:9:17:410842089253466352140308612216 3464452702834759928:9:18:687206379647802561281722773504 3464452702834759928:9:19:1117936266741982708222483799912 3464452702834759928:9:20:1773799783851397083136000000000 3464452702834759928:10:2:3547599567702794166272 3464452702834759928:10:3:204572467649689738988472 3464452702834759928:10:4:3632741957327661226262528 3464452702834759928:10:5:33832545926120702421875000 3464452702834759928:10:6:209482206873282292724195328 3464452702834759928:10:7:978622139881971816517022072 3464452702834759928:10:8:3719927764303525095692828672 3464452702834759928:10:9:12079799642246529397530283128 3464452702834759928:10:10:34644527028347599280000000000 3464452702834759928:10:11:89858980763507244594436188728 3464452702834759928:10:12:214509779838241067749576015872 3464452702834759928:10:13:477604224694991770728059826872 3464452702834759928:10:14:1002109071239139140113430601728 3464452702834759928:10:15:1997778004391501357309296875000 3464452702834759928:10:16:3809206030646809697989456560128 3464452702834759928:10:17:6984315517308927986385246407672 3464452702834759928:10:18:12369714833660446103071009923072 3464452702834759928:10:19:21240789068097671456227192198328 3464452702834759928:10:20:35475995677027941662720000000000 3464452702834759928:11:2:7095199135405588332544 3464452702834759928:11:3:613717402949069216965416 3464452702834759928:11:4:14530967829310644905050112 3464452702834759928:11:5:169162729630603512109375000 3464452702834759928:11:6:1256893241239693756345171968 3464452702834759928:11:7:6850354979173802715619154504 3464452702834759928:11:8:29759422114428200765542629376 3464452702834759928:11:9:108718196780218764577772548152 3464452702834759928:11:10:346445270283475992800000000000 3464452702834759928:11:11:988448788398579690538798076008 3464452702834759928:11:12:2574117358058892812994912190464 3464452702834759928:11:13:6208854921034893019464777749336 3464452702834759928:11:14:14029526997347947961588028424192 3464452702834759928:11:15:29966670065872520359639453125000 3464452702834759928:11:16:60947296490348955167831304962048 3464452702834759928:11:17:118733363794251775768549188930424 3464452702834759928:11:18:222654867005888029855278178615296 3464452702834759928:11:19:403574992293855757668316651768232 3464452702834759928:11:20:709519913540558833254400000000000 3464452702834759928:12:2:14190398270811176665088 3464452702834759928:12:3:1841152208847207650896248 3464452702834759928:12:4:58123871317242579620200448 3464452702834759928:12:5:845813648153017560546875000 3464452702834759928:12:6:7541359447438162538071031808 3464452702834759928:12:7:47952484854216619009334081528 3464452702834759928:12:8:238075376915425606124341035008 3464452702834759928:12:9:978463771021968881199952933368 3464452702834759928:12:10:3464452702834759928000000000000 3464452702834759928:12:11:10872936672384376595926778836088 3464452702834759928:12:12:30889408296706713755938946285568 3464452702834759928:12:13:80715113973453609253042110741368 3464452702834759928:12:14:196413377962871271462232397938688 3464452702834759928:12:15:449500050988087805394591796875000 3464452702834759928:12:16:975156743845583282685300879392768 3464452702834759928:12:17:2018467184502280188065336211817208 3464452702834759928:12:18:4007787606105984537395007215075328 3464452702834759928:12:19:7667924853583259395698016383596408 3464452702834759928:12:20:14190398270811176665088000000000000 3464452702834759928:13:2:28380796541622353330176 3464452702834759928:13:3:5523456626541622952688744 3464452702834759928:13:4:232495485268970318480801792 3464452702834759928:13:5:4229068240765087802734375000 3464452702834759928:13:6:45248156684628975228426190848 3464452702834759928:13:7:335667393979516333065338570696 3464452702834759928:13:8:1904603015323404848994728280064 3464452702834759928:13:9:8806173939197719930799576400312 3464452702834759928:13:10:34644527028347599280000000000000 3464452702834759928:13:11:119602303396228142555194567196968 3464452702834759928:13:12:370672899560480565071267355426816 3464452702834759928:13:13:1049296481654896920289547439637784 3464452702834759928:13:14:2749787291480197800471253571141632 3464452702834759928:13:15:6742500764821317080918876953125000 3464452702834759928:13:16:15602507901529332522964814070284288 3464452702834759928:13:17:34313942136538763197110715600892536 3464452702834759928:13:18:72140176909907721673110129871355904 3464452702834759928:13:19:145690572218081928518262311288331752 3464452702834759928:13:20:283807965416223533301760000000000000 3464452702834759928:14:2:56761593083244706660352 3464452702834759928:14:3:16570369879624868858066232 3464452702834759928:14:4:929981941075881273923207168 3464452702834759928:14:5:21145341203825439013671875000 3464452702834759928:14:6:271488940107773851370557145088 3464452702834759928:14:7:2349671757856614331457369994872 3464452702834759928:14:8:15236824122587238791957826240512 3464452702834759928:14:9:79255565452779479377196187602808 3464452702834759928:14:10:346445270283475992800000000000000 3464452702834759928:14:11:1315625337358509568107140239166648 3464452702834759928:14:12:4448074794725766780855208265121792 3464452702834759928:14:13:13640854261513659963764116715291192 3464452702834759928:14:14:38497022080722769206597549995982848 3464452702834759928:14:15:101137511472319756213783154296875000 3464452702834759928:14:16:249640126424469320367437025124548608 3464452702834759928:14:17:583337016321158974350882165215173112 3464452702834759928:14:18:1298523184378338990115982337684406272 3464452702834759928:14:19:2768120872143556641846983914478303288 3464452702834759928:14:20:5676159308324470666035200000000000000 3464452702834759928:15:2:113523186166489413320704 3464452702834759928:15:3:49711109638874606574198696 3464452702834759928:15:4:3719927764303525095692828672 3464452702834759928:15:5:105726706019127195068359375000 3464452702834759928:15:6:1628933640646643108223342870528 3464452702834759928:15:7:16447702304996300320201589964104 3464452702834759928:15:8:121894592980697910335662609924096 3464452702834759928:15:9:713300089075015314394765688425272 3464452702834759928:15:10:3464452702834759928000000000000000 3464452702834759928:15:11:14471878710943605249178542630833128 3464452702834759928:15:12:53376897536709201370262499181461504 3464452702834759928:15:13:177331105399677579528933517298785496 3464452702834759928:15:14:538958309130118768892365699943759872 3464452702834759928:15:15:1517062672084796343206747314453125000 3464452702834759928:15:16:3994242022791509125878992401992777728 3464452702834759928:15:17:9916729277459702563964996808657942904 3464452702834759928:15:18:23373417318810101822087682078319312896 3464452702834759928:15:19:52594296570727576195092694375087762472 3464452702834759928:15:20:113523186166489413320704000000000000000 3464452702834759928:16:2:227046372332978826641408 3464452702834759928:16:3:149133328916623819722596088 3464452702834759928:16:4:14879711057214100382771314688 3464452702834759928:16:5:528633530095635975341796875000 3464452702834759928:16:6:9773601843879858649340057223168 3464452702834759928:16:7:115133916134974102241411129748728 3464452702834759928:16:8:975156743845583282685300879392768 3464452702834759928:16:9:6419700801675137829552891195827448 3464452702834759928:16:10:34644527028347599280000000000000000 3464452702834759928:16:11:159190665820379657740963968939164408 3464452702834759928:16:12:640522770440510416443149990177538048 3464452702834759928:16:13:2305304370195808533876135724884211448 3464452702834759928:16:14:7545416327821662764493119799212638208 3464452702834759928:16:15:22755940081271945148101209716796875000 3464452702834759928:16:16:63907872364664146014063878431884443648 3464452702834759928:16:17:168584397716814943587404945747185029368 3464452702834759928:16:18:420721511738581832797578277409747632128 3464452702834759928:16:19:999291634843823947706761193126667486968 3464452702834759928:16:20:2270463723329788266414080000000000000000 3464452702834759928:17:2:454092744665957653282816 3464452702834759928:17:3:447399986749871459167788264 3464452702834759928:17:4:59518844228856401531085258752 3464452702834759928:17:5:2643167650478179876708984375000 3464452702834759928:17:6:58641611063279151896040343339008 3464452702834759928:17:7:805937412944818715689877908241096 3464452702834759928:17:8:7801253950764666261482407035142144 3464452702834759928:17:9:57777307215076240465976020762447032 3464452702834759928:17:10:346445270283475992800000000000000000 3464452702834759928:17:11:1751097324024176235150603658330808488 3464452702834759928:17:12:7686273245286124997317799882130456576 3464452702834759928:17:13:29968956812545510940389764423494748824 3464452702834759928:17:14:105635828589503278702903677188976934912 3464452702834759928:17:15:341339101219079177221518145751953125000 3464452702834759928:17:16:1022525957834626336225022054910151098368 3464452702834759928:17:17:2865934761185854040985884077702145499256 3464452702834759928:17:18:7572987211294472990356408993375457378304 3464452702834759928:17:19:18986541062032655006428462669406682252392 3464452702834759928:17:20:45409274466595765328281600000000000000000 3464452702834759928:18:2:908185489331915306565632 3464452702834759928:18:3:1342199960249614377503364792 3464452702834759928:18:4:238075376915425606124341035008 3464452702834759928:18:5:13215838252390899383544921875000 3464452702834759928:18:6:351849666379674911376242060034048 3464452702834759928:18:7:5641561890613731009829145357687672 3464452702834759928:18:8:62410031606117330091859256281137152 3464452702834759928:18:9:519995764935686164193784186862023288 3464452702834759928:18:10:3464452702834759928000000000000000000 3464452702834759928:18:11:19262070564265938586656640241638893368 3464452702834759928:18:12:92235278943433499967813598585565478912 3464452702834759928:18:13:389596438563091642225066937505431734712 3464452702834759928:18:14:1478901600253045901840651480645677088768 3464452702834759928:18:15:5120086518286187658322772186279296875000 3464452702834759928:18:16:16360415325354021379600352878562417573888 3464452702834759928:18:17:48720890940159518696760029320936473487352 3464452702834759928:18:18:136313769803300513826415361880758232809472 3464452702834759928:18:19:360744280178620445122140790718726962795448 3464452702834759928:18:20:908185489331915306565632000000000000000000 3464452702834759928:19:2:1816370978663830613131264 3464452702834759928:19:3:4026599880748843132510094376 3464452702834759928:19:4:952301507661702424497364140032 3464452702834759928:19:5:66079191261954496917724609375000 3464452702834759928:19:6:2111097998278049468257452360204288 3464452702834759928:19:7:39490933234296117068804017503813704 3464452702834759928:19:8:499280252848938640734874050249097216 3464452702834759928:19:9:4679961884421175477744057681758209592 3464452702834759928:19:10:34644527028347599280000000000000000000 3464452702834759928:19:11:211882776206925324453223042658027827048 3464452702834759928:19:12:1106823347321201999613763183026785746944 3464452702834759928:19:13:5064753701320191348925870187570612551256 3464452702834759928:19:14:20704622403542642625769120729039479242752 3464452702834759928:19:15:76801297774292814874841582794189453125000 3464452702834759928:19:16:261766645205664342073605646056998681182208 3464452702834759928:19:17:828255145982711817844920498455920049284984 3464452702834759928:19:18:2453647856459409248875476513853648190570496 3464452702834759928:19:19:6854141323393788457320675023655812293113512 3464452702834759928:19:20:18163709786638306131312640000000000000000000 3464452702834759928:20:2:3632741957327661226262528 3464452702834759928:20:3:12079799642246529397530283128 3464452702834759928:20:4:3809206030646809697989456560128 3464452702834759928:20:5:330395956309772484588623046875000 3464452702834759928:20:6:12666587989668296809544714161225728 3464452702834759928:20:7:276436532640072819481628122526695928 3464452702834759928:20:8:3994242022791509125878992401992777728 3464452702834759928:20:9:42119656959790579299696519135823886328 3464452702834759928:20:10:346445270283475992800000000000000000000 3464452702834759928:20:11:2330710538276178568985453469238306097528 3464452702834759928:20:12:13281880167854423995365158196321428963328 3464452702834759928:20:13:65841798117162487536036312438417963166328 3464452702834759928:20:14:289864713649596996760767690206552709398528 3464452702834759928:20:15:1152019466614392223122623741912841796875000 3464452702834759928:20:16:4188266323290629473177690336911978898915328 3464452702834759928:20:17:14080337481706100903363648473750640837844728 3464452702834759928:20:18:44165661416269366479758577249365667430268928 3464452702834759928:20:19:130228685144481980689092825449460433569156728 3464452702834759928:20:20:363274195732766122626252800000000000000000000 82321682164470047679:0:2:82321682164470047679 82321682164470047679:0:3:82321682164470047679 82321682164470047679:0:4:82321682164470047679 82321682164470047679:0:5:82321682164470047679 82321682164470047679:0:6:82321682164470047679 82321682164470047679:0:7:82321682164470047679 82321682164470047679:0:8:82321682164470047679 82321682164470047679:0:9:82321682164470047679 82321682164470047679:0:10:82321682164470047679 82321682164470047679:0:11:82321682164470047679 82321682164470047679:0:12:82321682164470047679 82321682164470047679:0:13:82321682164470047679 82321682164470047679:0:14:82321682164470047679 82321682164470047679:0:15:82321682164470047679 82321682164470047679:0:16:82321682164470047679 82321682164470047679:0:17:82321682164470047679 82321682164470047679:0:18:82321682164470047679 82321682164470047679:0:19:82321682164470047679 82321682164470047679:0:20:82321682164470047679 82321682164470047679:1:2:164643364328940095358 82321682164470047679:1:3:246965046493410143037 82321682164470047679:1:4:329286728657880190716 82321682164470047679:1:5:411608410822350238395 82321682164470047679:1:6:493930092986820286074 82321682164470047679:1:7:576251775151290333753 82321682164470047679:1:8:658573457315760381432 82321682164470047679:1:9:740895139480230429111 82321682164470047679:1:10:823216821644700476790 82321682164470047679:1:11:905538503809170524469 82321682164470047679:1:12:987860185973640572148 82321682164470047679:1:13:1070181868138110619827 82321682164470047679:1:14:1152503550302580667506 82321682164470047679:1:15:1234825232467050715185 82321682164470047679:1:16:1317146914631520762864 82321682164470047679:1:17:1399468596795990810543 82321682164470047679:1:18:1481790278960460858222 82321682164470047679:1:19:1564111961124930905901 82321682164470047679:1:20:1646433643289400953580 82321682164470047679:2:2:329286728657880190716 82321682164470047679:2:3:740895139480230429111 82321682164470047679:2:4:1317146914631520762864 82321682164470047679:2:5:2058042054111751191975 82321682164470047679:2:6:2963580557920921716444 82321682164470047679:2:7:4033762426059032336271 82321682164470047679:2:8:5268587658526083051456 82321682164470047679:2:9:6668056255322073861999 82321682164470047679:2:10:8232168216447004767900 82321682164470047679:2:11:9960923541900875769159 82321682164470047679:2:12:11854322231683686865776 82321682164470047679:2:13:13912364285795438057751 82321682164470047679:2:14:16135049704236129345084 82321682164470047679:2:15:18522378487005760727775 82321682164470047679:2:16:21074350634104332205824 82321682164470047679:2:17:23790966145531843779231 82321682164470047679:2:18:26672225021288295447996 82321682164470047679:2:19:29718127261373687212119 82321682164470047679:2:20:32928672865788019071600 82321682164470047679:3:2:658573457315760381432 82321682164470047679:3:3:2222685418440691287333 82321682164470047679:3:4:5268587658526083051456 82321682164470047679:3:5:10290210270558755959875 82321682164470047679:3:6:17781483347525530298664 82321682164470047679:3:7:28236336982413226353897 82321682164470047679:3:8:42148701268208664411648 82321682164470047679:3:9:60012506297898664757991 82321682164470047679:3:10:82321682164470047679000 82321682164470047679:3:11:109570158960909633460749 82321682164470047679:3:12:142251866780204242389312 82321682164470047679:3:13:180860735715340694750763 82321682164470047679:3:14:225890695859305810831176 82321682164470047679:3:15:277835677305086410916625 82321682164470047679:3:16:337189610145669315293184 82321682164470047679:3:17:404446424474041344246927 82321682164470047679:3:18:480100050383189318063928 82321682164470047679:3:19:564644417966100057030261 82321682164470047679:3:20:658573457315760381432000 82321682164470047679:4:2:1317146914631520762864 82321682164470047679:4:3:6668056255322073861999 82321682164470047679:4:4:21074350634104332205824 82321682164470047679:4:5:51451051352793779799375 82321682164470047679:4:6:106688900085153181791984 82321682164470047679:4:7:197654358876892584477279 82321682164470047679:4:8:337189610145669315293184 82321682164470047679:4:9:540112556681087982821919 82321682164470047679:4:10:823216821644700476790000 82321682164470047679:4:11:1205271748570005968068239 82321682164470047679:4:12:1707022401362450908671744 82321682164470047679:4:13:2351189564299429031759919 82321682164470047679:4:14:3162469742030281351636464 82321682164470047679:4:15:4167535159576296163749375 82321682164470047679:4:16:5395033762330709044690944 82321682164470047679:4:17:6875589216058702852197759 82321682164470047679:4:18:8641800906897407725150704 82321682164470047679:4:19:10728243941355901083574959 82321682164470047679:4:20:13171469146315207628640000 82321682164470047679:5:2:2634293829263041525728 82321682164470047679:5:3:20004168765966221585997 82321682164470047679:5:4:84297402536417328823296 82321682164470047679:5:5:257255256763968898996875 82321682164470047679:5:6:640133400510919090751904 82321682164470047679:5:7:1383580512138248091340953 82321682164470047679:5:8:2697516881165354522345472 82321682164470047679:5:9:4861013010129791845397271 82321682164470047679:5:10:8232168216447004767900000 82321682164470047679:5:11:13257989234270065648750629 82321682164470047679:5:12:20484268816349410904060928 82321682164470047679:5:13:30565464335892577412878947 82321682164470047679:5:14:44274576388423938922910496 82321682164470047679:5:15:62513027393644442456240625 82321682164470047679:5:16:86320540197291344715055104 82321682164470047679:5:17:116885016672997948487361903 82321682164470047679:5:18:155552416324153339052712672 82321682164470047679:5:19:203836634885762120587924221 82321682164470047679:5:20:263429382926304152572800000 82321682164470047679:6:2:5268587658526083051456 82321682164470047679:6:3:60012506297898664757991 82321682164470047679:6:4:337189610145669315293184 82321682164470047679:6:5:1286276283819844494984375 82321682164470047679:6:6:3840800403065514544511424 82321682164470047679:6:7:9685063584967736639386671 82321682164470047679:6:8:21580135049322836178763776 82321682164470047679:6:9:43749117091168126608575439 82321682164470047679:6:10:82321682164470047679000000 82321682164470047679:6:11:145837881576970722136256919 82321682164470047679:6:12:245811225796192930848731136 82321682164470047679:6:13:397351036366603506367426311 82321682164470047679:6:14:619844069437935144920746944 82321682164470047679:6:15:937695410904666636843609375 82321682164470047679:6:16:1381128643156661515440881664 82321682164470047679:6:17:1987045283440965124285152351 82321682164470047679:6:18:2799943493834760102948828096 82321682164470047679:6:19:3872896062829480291170560199 82321682164470047679:6:20:5268587658526083051456000000 82321682164470047679:7:2:10537175317052166102912 82321682164470047679:7:3:180037518893695994273973 82321682164470047679:7:4:1348758440582677261172736 82321682164470047679:7:5:6431381419099222474921875 82321682164470047679:7:6:23044802418393087267068544 82321682164470047679:7:7:67795445094774156475706697 82321682164470047679:7:8:172641080394582689430110208 82321682164470047679:7:9:393742053820513139477178951 82321682164470047679:7:10:823216821644700476790000000 82321682164470047679:7:11:1604216697346677943498826109 82321682164470047679:7:12:2949734709554315170184773632 82321682164470047679:7:13:5165563472765845582776542043 82321682164470047679:7:14:8677816972131092028890457216 82321682164470047679:7:15:14065431163569999552654140625 82321682164470047679:7:16:22098058290506584247054106624 82321682164470047679:7:17:33779769818496407112847589967 82321682164470047679:7:18:50398982889025681853078905728 82321682164470047679:7:19:73585025193760125532240643781 82321682164470047679:7:20:105371753170521661029120000000 82321682164470047679:8:2:21074350634104332205824 82321682164470047679:8:3:540112556681087982821919 82321682164470047679:8:4:5395033762330709044690944 82321682164470047679:8:5:32156907095496112374609375 82321682164470047679:8:6:138268814510358523602411264 82321682164470047679:8:7:474568115663419095329946879 82321682164470047679:8:8:1381128643156661515440881664 82321682164470047679:8:9:3543678484384618255294610559 82321682164470047679:8:10:8232168216447004767900000000 82321682164470047679:8:11:17646383670813457378487087199 82321682164470047679:8:12:35396816514651782042217283584 82321682164470047679:8:13:67152325145955992576095046559 82321682164470047679:8:14:121489437609835288404466401024 82321682164470047679:8:15:210981467453549993289812109375 82321682164470047679:8:16:353568932648105347952865705984 82321682164470047679:8:17:574256086914438920918409029439 82321682164470047679:8:18:907181692002462273355420303104 82321682164470047679:8:19:1398115478681442385112572231839 82321682164470047679:8:20:2107435063410433220582400000000 82321682164470047679:9:2:42148701268208664411648 82321682164470047679:9:3:1620337670043263948465757 82321682164470047679:9:4:21580135049322836178763776 82321682164470047679:9:5:160784535477480561873046875 82321682164470047679:9:6:829612887062151141614467584 82321682164470047679:9:7:3321976809643933667309628153 82321682164470047679:9:8:11049029145253292123527053312 82321682164470047679:9:9:31893106359461564297651495031 82321682164470047679:9:10:82321682164470047679000000000 82321682164470047679:9:11:194110220378948031163357959189 82321682164470047679:9:12:424761798175821384506607403008 82321682164470047679:9:13:872980226897427903489235605267 82321682164470047679:9:14:1700852126537694037662529614336 82321682164470047679:9:15:3164722011803249899347181640625 82321682164470047679:9:16:5657102922369685567245851295744 82321682164470047679:9:17:9762353477545461655612953500463 82321682164470047679:9:18:16329270456044320920397565455872 82321682164470047679:9:19:26564194094947405317138872404941 82321682164470047679:9:20:42148701268208664411648000000000 82321682164470047679:10:2:84297402536417328823296 82321682164470047679:10:3:4861013010129791845397271 82321682164470047679:10:4:86320540197291344715055104 82321682164470047679:10:5:803922677387402809365234375 82321682164470047679:10:6:4977677322372906849686805504 82321682164470047679:10:7:23253837667507535671167397071 82321682164470047679:10:8:88392233162026336988216426496 82321682164470047679:10:9:287037957235154078678863455279 82321682164470047679:10:10:823216821644700476790000000000 82321682164470047679:10:11:2135212424168428342796937551079 82321682164470047679:10:12:5097141578109856614079288836096 82321682164470047679:10:13:11348742949666562745360062868471 82321682164470047679:10:14:23811929771527716527275414600704 82321682164470047679:10:15:47470830177048748490207724609375 82321682164470047679:10:16:90513646757914969075933620731904 82321682164470047679:10:17:165960009118272848145420209507871 82321682164470047679:10:18:293926868208797776567156178205696 82321682164470047679:10:19:504719687804000701025638575693879 82321682164470047679:10:20:842974025364173288232960000000000 82321682164470047679:11:2:168594805072834657646592 82321682164470047679:11:3:14583039030389375536191813 82321682164470047679:11:4:345282160789165378860220416 82321682164470047679:11:5:4019613386937014046826171875 82321682164470047679:11:6:29866063934237441098120833024 82321682164470047679:11:7:162776863672552749698171779497 82321682164470047679:11:8:707137865296210695905731411968 82321682164470047679:11:9:2583341615116386708109771097511 82321682164470047679:11:10:8232168216447004767900000000000 82321682164470047679:11:11:23487336665852711770766313061869 82321682164470047679:11:12:61165698937318279368951466033152 82321682164470047679:11:13:147533658345665315689680817290123 82321682164470047679:11:14:333367016801388031381855804409856 82321682164470047679:11:15:712062452655731227353115869140625 82321682164470047679:11:16:1448218348126639505214937931710464 82321682164470047679:11:17:2821320155010638418472143561633807 82321682164470047679:11:18:5290683627758359978208811207702528 82321682164470047679:11:19:9589674068276013319487132938183701 82321682164470047679:11:20:16859480507283465764659200000000000 82321682164470047679:12:2:337189610145669315293184 82321682164470047679:12:3:43749117091168126608575439 82321682164470047679:12:4:1381128643156661515440881664 82321682164470047679:12:5:20098066934685070234130859375 82321682164470047679:12:6:179196383605424646588724998144 82321682164470047679:12:7:1139438045707869247887202456479 82321682164470047679:12:8:5657102922369685567245851295744 82321682164470047679:12:9:23250074536047480372987939877599 82321682164470047679:12:10:82321682164470047679000000000000 82321682164470047679:12:11:258360703324379829478429443680559 82321682164470047679:12:12:733988387247819352427417592397824 82321682164470047679:12:13:1917937558493649103965850624771599 82321682164470047679:12:14:4667138235219432439345981261737984 82321682164470047679:12:15:10680936789835968410296738037109375 82321682164470047679:12:16:23171493570026232083439006907367424 82321682164470047679:12:17:47962442635180853114026440547774719 82321682164470047679:12:18:95232305299650479607758601738645504 82321682164470047679:12:19:182203807297244253070255525825490319 82321682164470047679:12:20:337189610145669315293184000000000000 82321682164470047679:13:2:674379220291338630586368 82321682164470047679:13:3:131247351273504379825726317 82321682164470047679:13:4:5524514572626646061763526656 82321682164470047679:13:5:100490334673425351170654296875 82321682164470047679:13:6:1075178301632547879532349988864 82321682164470047679:13:7:7976066319955084735210417195353 82321682164470047679:13:8:45256823378957484537966810365952 82321682164470047679:13:9:209250670824427323356891458898391 82321682164470047679:13:10:823216821644700476790000000000000 82321682164470047679:13:11:2841967736568178124262723880486149 82321682164470047679:13:12:8807860646973832229129011108773888 82321682164470047679:13:13:24933188260417438351556058122030787 82321682164470047679:13:14:65339935293072054150843737664331776 82321682164470047679:13:15:160214051847539526154451070556640625 82321682164470047679:13:16:370743897120419713335024110517878784 82321682164470047679:13:17:815361524798074502938449489312170223 82321682164470047679:13:18:1714181495393708632939654831295619072 82321682164470047679:13:19:3461872338647640808334854990684316061 82321682164470047679:13:20:6743792202913386305863680000000000000 82321682164470047679:14:2:1348758440582677261172736 82321682164470047679:14:3:393742053820513139477178951 82321682164470047679:14:4:22098058290506584247054106624 82321682164470047679:14:5:502451673367126755853271484375 82321682164470047679:14:6:6451069809795287277194099933184 82321682164470047679:14:7:55832464239685593146472920367471 82321682164470047679:14:8:362054587031659876303734482927616 82321682164470047679:14:9:1883256037419845910212023130085519 82321682164470047679:14:10:8232168216447004767900000000000000 82321682164470047679:14:11:31261645102249959366889962685347639 82321682164470047679:14:12:105694327763685986749548133305286656 82321682164470047679:14:13:324131447385426698570228755586400231 82321682164470047679:14:14:914759094103008758111812327300644864 82321682164470047679:14:15:2403210777713092892316766058349609375 82321682164470047679:14:16:5931902353926715413360385768286060544 82321682164470047679:14:17:13861145921567266549953641318306893791 82321682164470047679:14:18:30855266917086755392913786963321143296 82321682164470047679:14:19:65775574434305175358362244823002005159 82321682164470047679:14:20:134875844058267726117273600000000000000 82321682164470047679:15:2:2697516881165354522345472 82321682164470047679:15:3:1181226161461539418431536853 82321682164470047679:15:4:88392233162026336988216426496 82321682164470047679:15:5:2512258366835633779266357421875 82321682164470047679:15:6:38706418858771723663164599599104 82321682164470047679:15:7:390827249677799152025310442572297 82321682164470047679:15:8:2896436696253279010429875863420928 82321682164470047679:15:9:16949304336778613191908208170769671 82321682164470047679:15:10:82321682164470047679000000000000000 82321682164470047679:15:11:343878096124749553035789589538824029 82321682164470047679:15:12:1268331933164231840994577599663439872 82321682164470047679:15:13:4213708816010547081412973822623203003 82321682164470047679:15:14:12806627317442122613565372582209028096 82321682164470047679:15:15:36048161665696393384751490875244140625 82321682164470047679:15:16:94910437662827446613766172292576968704 82321682164470047679:15:17:235639480666643531349211902411217194447 82321682164470047679:15:18:555394804507561597072448165339780579328 82321682164470047679:15:19:1249735914251798331808882651637038098021 82321682164470047679:15:20:2697516881165354522345472000000000000000 82321682164470047679:16:2:5395033762330709044690944 82321682164470047679:16:3:3543678484384618255294610559 82321682164470047679:16:4:353568932648105347952865705984 82321682164470047679:16:5:12561291834178168896331787109375 82321682164470047679:16:6:232238513152630341978987597594624 82321682164470047679:16:7:2735790747744594064177173098006079 82321682164470047679:16:8:23171493570026232083439006907367424 82321682164470047679:16:9:152543739031007518727173873536927039 82321682164470047679:16:10:823216821644700476790000000000000000 82321682164470047679:16:11:3782659057372245083393685484927064319 82321682164470047679:16:12:15219983197970782091934931195961278464 82321682164470047679:16:13:54778214608137112058368659694101639039 82321682164470047679:16:14:179292782444189716589915216150926393344 82321682164470047679:16:15:540722424985445900771272363128662109375 82321682164470047679:16:16:1518567002605239145820258756681231499264 82321682164470047679:16:17:4005871171332940032936602340990692305599 82321682164470047679:16:18:9997106481136108747304066976116050427904 82321682164470047679:16:19:23744982370784168304368770381103723862399 82321682164470047679:16:20:53950337623307090446909440000000000000000 82321682164470047679:17:2:10790067524661418089381888 82321682164470047679:17:3:10631035453153854765883831677 82321682164470047679:17:4:1414275730592421391811462823936 82321682164470047679:17:5:62806459170890844481658935546875 82321682164470047679:17:6:1393431078915782051873925585567744 82321682164470047679:17:7:19150535234212158449240211686042553 82321682164470047679:17:8:185371948560209856667512055258939392 82321682164470047679:17:9:1372893651279067668544564861832343351 82321682164470047679:17:10:8232168216447004767900000000000000000 82321682164470047679:17:11:41609249631094695917330540334197707509 82321682164470047679:17:12:182639798375649385103219174351535341568 82321682164470047679:17:13:712116789905782456758792576023321307507 82321682164470047679:17:14:2510098954218656032258813026112969506816 82321682164470047679:17:15:8110836374781688511569085446929931640625 82321682164470047679:17:16:24297072041683826333124140106899703988224 82321682164470047679:17:17:68099809912659980559922239796841769195183 82321682164470047679:17:18:179947916660449957451473205570088907702272 82321682164470047679:17:19:451154665044899197783006637240970753385581 82321682164470047679:17:20:1079006752466141808938188800000000000000000 82321682164470047679:18:2:21580135049322836178763776 82321682164470047679:18:3:31893106359461564297651495031 82321682164470047679:18:4:5657102922369685567245851295744 82321682164470047679:18:5:314032295854454222408294677734375 82321682164470047679:18:6:8360586473494692311243553513406464 82321682164470047679:18:7:134053746639485109144681481802297871 82321682164470047679:18:8:1482975588481678853340096442071515136 82321682164470047679:18:9:12356042861511609016901083756491090159 82321682164470047679:18:10:82321682164470047679000000000000000000 82321682164470047679:18:11:457701745942041655090635943676174782599 82321682164470047679:18:12:2191677580507792621238630092218424098816 82321682164470047679:18:13:9257518268775171937864303488303176997591 82321682164470047679:18:14:35141385359061184451623382365581573095424 82321682164470047679:18:15:121662545621725327673536281703948974609375 82321682164470047679:18:16:388753152666941221329986241710395263811584 82321682164470047679:18:17:1157696768515219669518678076546310076318111 82321682164470047679:18:18:3239062499888099234126517700261600338640896 82321682164470047679:18:19:8571938635853084757877126107578444314326039 82321682164470047679:18:20:21580135049322836178763776000000000000000000 82321682164470047679:19:2:43160270098645672357527552 82321682164470047679:19:3:95679319078384692892954485093 82321682164470047679:19:4:22628411689478742268983405182976 82321682164470047679:19:5:1570161479272271112041473388671875 82321682164470047679:19:6:50163518840968153867461321080438784 82321682164470047679:19:7:938376226476395764012770372616085097 82321682164470047679:19:8:11863804707853430826720771536572121088 82321682164470047679:19:9:111204385753604481152109753808419811431 82321682164470047679:19:10:823216821644700476790000000000000000000 82321682164470047679:19:11:5034719205362458205996995380437922608589 82321682164470047679:19:12:26300130966093511454863561106621089185792 82321682164470047679:19:13:120347737494077235192235945347941300968683 82321682164470047679:19:14:491979395026856582322727353118142023335936 82321682164470047679:19:15:1824938184325879915103044225559234619140625 82321682164470047679:19:16:6220050442671059541279779867366324220985344 82321682164470047679:19:17:19680845064758734381817527301287271297407887 82321682164470047679:19:18:58303124997985786214277318604708806095536128 82321682164470047679:19:19:162866834081208610399665396043990441972194741 82321682164470047679:19:20:431602700986456723575275520000000000000000000 82321682164470047679:20:2:86320540197291344715055104 82321682164470047679:20:3:287037957235154078678863455279 82321682164470047679:20:4:90513646757914969075933620731904 82321682164470047679:20:5:7850807396361355560207366943359375 82321682164470047679:20:6:300981113045808923204767926482632704 82321682164470047679:20:7:6568633585334770348089392608312595679 82321682164470047679:20:8:94910437662827446613766172292576968704 82321682164470047679:20:9:1000839471782440330368987784275778302879 82321682164470047679:20:10:8232168216447004767900000000000000000000 82321682164470047679:20:11:55381911258987040265966949184817148694479 82321682164470047679:20:12:315601571593122137458362733279453070229504 82321682164470047679:20:13:1564520587423004057499067289523236912592879 82321682164470047679:20:14:6887711530375992152518182943653988326703104 82321682164470047679:20:15:27374072764888198726545663383388519287109375 82321682164470047679:20:16:99520807082736952660476477877861187535765504 82321682164470047679:20:17:334574366100898484490897964121883612055934079 82321682164470047679:20:18:1049456249963744151856991734884758509719650304 82321682164470047679:20:19:3094469847542963597593642524835818397471700079 82321682164470047679:20:20:8632054019729134471505510400000000000000000000 Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_lsft.t0000644403072340010010000001031014536617520023546 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 32905; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_lsft'); my @data; # Small numbers. for (my $x = 0; $x <= 10 ; ++ $x) { for (my $n = 0; $n <= 10 ; ++ $n) { for (my $b = 2; $b <= 10 ; ++ $b) { my $y = $x * $b ** $n; last if $y > 2147483647; push @data, [ $x, $n, $b, $y ]; } } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_lsft(\$x, \$y, $in2);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_lsft() in list context: $test", sub { plan tests => 8; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_lsft(\$x, \$y, $in2);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_lsft() in scalar context: $test", sub { plan tests => 7; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_modpow.dat0000644403072340010010000134603714505066136024430 0ustar OSPJADomain Users# Small numbers. 0:0:1:0 0:0:2:1 0:0:3:1 0:0:4:1 0:0:5:1 0:0:6:1 0:0:7:1 0:0:8:1 0:0:9:1 0:0:10:1 0:0:11:1 0:0:12:1 0:0:13:1 0:0:14:1 0:0:15:1 0:0:16:1 0:0:17:1 0:0:18:1 0:0:19:1 0:0:20:1 0:1:1:0 0:1:2:0 0:1:3:0 0:1:4:0 0:1:5:0 0:1:6:0 0:1:7:0 0:1:8:0 0:1:9:0 0:1:10:0 0:1:11:0 0:1:12:0 0:1:13:0 0:1:14:0 0:1:15:0 0:1:16:0 0:1:17:0 0:1:18:0 0:1:19:0 0:1:20:0 0:2:1:0 0:2:2:0 0:2:3:0 0:2:4:0 0:2:5:0 0:2:6:0 0:2:7:0 0:2:8:0 0:2:9:0 0:2:10:0 0:2:11:0 0:2:12:0 0:2:13:0 0:2:14:0 0:2:15:0 0:2:16:0 0:2:17:0 0:2:18:0 0:2:19:0 0:2:20:0 0:3:1:0 0:3:2:0 0:3:3:0 0:3:4:0 0:3:5:0 0:3:6:0 0:3:7:0 0:3:8:0 0:3:9:0 0:3:10:0 0:3:11:0 0:3:12:0 0:3:13:0 0:3:14:0 0:3:15:0 0:3:16:0 0:3:17:0 0:3:18:0 0:3:19:0 0:3:20:0 0:4:1:0 0:4:2:0 0:4:3:0 0:4:4:0 0:4:5:0 0:4:6:0 0:4:7:0 0:4:8:0 0:4:9:0 0:4:10:0 0:4:11:0 0:4:12:0 0:4:13:0 0:4:14:0 0:4:15:0 0:4:16:0 0:4:17:0 0:4:18:0 0:4:19:0 0:4:20:0 0:5:1:0 0:5:2:0 0:5:3:0 0:5:4:0 0:5:5:0 0:5:6:0 0:5:7:0 0:5:8:0 0:5:9:0 0:5:10:0 0:5:11:0 0:5:12:0 0:5:13:0 0:5:14:0 0:5:15:0 0:5:16:0 0:5:17:0 0:5:18:0 0:5:19:0 0:5:20:0 0:6:1:0 0:6:2:0 0:6:3:0 0:6:4:0 0:6:5:0 0:6:6:0 0:6:7:0 0:6:8:0 0:6:9:0 0:6:10:0 0:6:11:0 0:6:12:0 0:6:13:0 0:6:14:0 0:6:15:0 0:6:16:0 0:6:17:0 0:6:18:0 0:6:19:0 0:6:20:0 0:7:1:0 0:7:2:0 0:7:3:0 0:7:4:0 0:7:5:0 0:7:6:0 0:7:7:0 0:7:8:0 0:7:9:0 0:7:10:0 0:7:11:0 0:7:12:0 0:7:13:0 0:7:14:0 0:7:15:0 0:7:16:0 0:7:17:0 0:7:18:0 0:7:19:0 0:7:20:0 0:8:1:0 0:8:2:0 0:8:3:0 0:8:4:0 0:8:5:0 0:8:6:0 0:8:7:0 0:8:8:0 0:8:9:0 0:8:10:0 0:8:11:0 0:8:12:0 0:8:13:0 0:8:14:0 0:8:15:0 0:8:16:0 0:8:17:0 0:8:18:0 0:8:19:0 0:8:20:0 0:9:1:0 0:9:2:0 0:9:3:0 0:9:4:0 0:9:5:0 0:9:6:0 0:9:7:0 0:9:8:0 0:9:9:0 0:9:10:0 0:9:11:0 0:9:12:0 0:9:13:0 0:9:14:0 0:9:15:0 0:9:16:0 0:9:17:0 0:9:18:0 0:9:19:0 0:9:20:0 0:10:1:0 0:10:2:0 0:10:3:0 0:10:4:0 0:10:5:0 0:10:6:0 0:10:7:0 0:10:8:0 0:10:9:0 0:10:10:0 0:10:11:0 0:10:12:0 0:10:13:0 0:10:14:0 0:10:15:0 0:10:16:0 0:10:17:0 0:10:18:0 0:10:19:0 0:10:20:0 0:11:1:0 0:11:2:0 0:11:3:0 0:11:4:0 0:11:5:0 0:11:6:0 0:11:7:0 0:11:8:0 0:11:9:0 0:11:10:0 0:11:11:0 0:11:12:0 0:11:13:0 0:11:14:0 0:11:15:0 0:11:16:0 0:11:17:0 0:11:18:0 0:11:19:0 0:11:20:0 0:12:1:0 0:12:2:0 0:12:3:0 0:12:4:0 0:12:5:0 0:12:6:0 0:12:7:0 0:12:8:0 0:12:9:0 0:12:10:0 0:12:11:0 0:12:12:0 0:12:13:0 0:12:14:0 0:12:15:0 0:12:16:0 0:12:17:0 0:12:18:0 0:12:19:0 0:12:20:0 0:13:1:0 0:13:2:0 0:13:3:0 0:13:4:0 0:13:5:0 0:13:6:0 0:13:7:0 0:13:8:0 0:13:9:0 0:13:10:0 0:13:11:0 0:13:12:0 0:13:13:0 0:13:14:0 0:13:15:0 0:13:16:0 0:13:17:0 0:13:18:0 0:13:19:0 0:13:20:0 0:14:1:0 0:14:2:0 0:14:3:0 0:14:4:0 0:14:5:0 0:14:6:0 0:14:7:0 0:14:8:0 0:14:9:0 0:14:10:0 0:14:11:0 0:14:12:0 0:14:13:0 0:14:14:0 0:14:15:0 0:14:16:0 0:14:17:0 0:14:18:0 0:14:19:0 0:14:20:0 0:15:1:0 0:15:2:0 0:15:3:0 0:15:4:0 0:15:5:0 0:15:6:0 0:15:7:0 0:15:8:0 0:15:9:0 0:15:10:0 0:15:11:0 0:15:12:0 0:15:13:0 0:15:14:0 0:15:15:0 0:15:16:0 0:15:17:0 0:15:18:0 0:15:19:0 0:15:20:0 0:16:1:0 0:16:2:0 0:16:3:0 0:16:4:0 0:16:5:0 0:16:6:0 0:16:7:0 0:16:8:0 0:16:9:0 0:16:10:0 0:16:11:0 0:16:12:0 0:16:13:0 0:16:14:0 0:16:15:0 0:16:16:0 0:16:17:0 0:16:18:0 0:16:19:0 0:16:20:0 0:17:1:0 0:17:2:0 0:17:3:0 0:17:4:0 0:17:5:0 0:17:6:0 0:17:7:0 0:17:8:0 0:17:9:0 0:17:10:0 0:17:11:0 0:17:12:0 0:17:13:0 0:17:14:0 0:17:15:0 0:17:16:0 0:17:17:0 0:17:18:0 0:17:19:0 0:17:20:0 0:18:1:0 0:18:2:0 0:18:3:0 0:18:4:0 0:18:5:0 0:18:6:0 0:18:7:0 0:18:8:0 0:18:9:0 0:18:10:0 0:18:11:0 0:18:12:0 0:18:13:0 0:18:14:0 0:18:15:0 0:18:16:0 0:18:17:0 0:18:18:0 0:18:19:0 0:18:20:0 0:19:1:0 0:19:2:0 0:19:3:0 0:19:4:0 0:19:5:0 0:19:6:0 0:19:7:0 0:19:8:0 0:19:9:0 0:19:10:0 0:19:11:0 0:19:12:0 0:19:13:0 0:19:14:0 0:19:15:0 0:19:16:0 0:19:17:0 0:19:18:0 0:19:19:0 0:19:20:0 0:20:1:0 0:20:2:0 0:20:3:0 0:20:4:0 0:20:5:0 0:20:6:0 0:20:7:0 0:20:8:0 0:20:9:0 0:20:10:0 0:20:11:0 0:20:12:0 0:20:13:0 0:20:14:0 0:20:15:0 0:20:16:0 0:20:17:0 0:20:18:0 0:20:19:0 0:20:20:0 #1:0:0:1 1:0:1:0 1:0:2:1 1:0:3:1 1:0:4:1 1:0:5:1 1:0:6:1 1:0:7:1 1:0:8:1 1:0:9:1 1:0:10:1 1:0:11:1 1:0:12:1 1:0:13:1 1:0:14:1 1:0:15:1 1:0:16:1 1:0:17:1 1:0:18:1 1:0:19:1 1:0:20:1 #1:1:0:1 1:1:1:0 1:1:2:1 1:1:3:1 1:1:4:1 1:1:5:1 1:1:6:1 1:1:7:1 1:1:8:1 1:1:9:1 1:1:10:1 1:1:11:1 1:1:12:1 1:1:13:1 1:1:14:1 1:1:15:1 1:1:16:1 1:1:17:1 1:1:18:1 1:1:19:1 1:1:20:1 #1:2:0:1 1:2:1:0 1:2:2:1 1:2:3:1 1:2:4:1 1:2:5:1 1:2:6:1 1:2:7:1 1:2:8:1 1:2:9:1 1:2:10:1 1:2:11:1 1:2:12:1 1:2:13:1 1:2:14:1 1:2:15:1 1:2:16:1 1:2:17:1 1:2:18:1 1:2:19:1 1:2:20:1 #1:3:0:1 1:3:1:0 1:3:2:1 1:3:3:1 1:3:4:1 1:3:5:1 1:3:6:1 1:3:7:1 1:3:8:1 1:3:9:1 1:3:10:1 1:3:11:1 1:3:12:1 1:3:13:1 1:3:14:1 1:3:15:1 1:3:16:1 1:3:17:1 1:3:18:1 1:3:19:1 1:3:20:1 #1:4:0:1 1:4:1:0 1:4:2:1 1:4:3:1 1:4:4:1 1:4:5:1 1:4:6:1 1:4:7:1 1:4:8:1 1:4:9:1 1:4:10:1 1:4:11:1 1:4:12:1 1:4:13:1 1:4:14:1 1:4:15:1 1:4:16:1 1:4:17:1 1:4:18:1 1:4:19:1 1:4:20:1 #1:5:0:1 1:5:1:0 1:5:2:1 1:5:3:1 1:5:4:1 1:5:5:1 1:5:6:1 1:5:7:1 1:5:8:1 1:5:9:1 1:5:10:1 1:5:11:1 1:5:12:1 1:5:13:1 1:5:14:1 1:5:15:1 1:5:16:1 1:5:17:1 1:5:18:1 1:5:19:1 1:5:20:1 #1:6:0:1 1:6:1:0 1:6:2:1 1:6:3:1 1:6:4:1 1:6:5:1 1:6:6:1 1:6:7:1 1:6:8:1 1:6:9:1 1:6:10:1 1:6:11:1 1:6:12:1 1:6:13:1 1:6:14:1 1:6:15:1 1:6:16:1 1:6:17:1 1:6:18:1 1:6:19:1 1:6:20:1 #1:7:0:1 1:7:1:0 1:7:2:1 1:7:3:1 1:7:4:1 1:7:5:1 1:7:6:1 1:7:7:1 1:7:8:1 1:7:9:1 1:7:10:1 1:7:11:1 1:7:12:1 1:7:13:1 1:7:14:1 1:7:15:1 1:7:16:1 1:7:17:1 1:7:18:1 1:7:19:1 1:7:20:1 #1:8:0:1 1:8:1:0 1:8:2:1 1:8:3:1 1:8:4:1 1:8:5:1 1:8:6:1 1:8:7:1 1:8:8:1 1:8:9:1 1:8:10:1 1:8:11:1 1:8:12:1 1:8:13:1 1:8:14:1 1:8:15:1 1:8:16:1 1:8:17:1 1:8:18:1 1:8:19:1 1:8:20:1 #1:9:0:1 1:9:1:0 1:9:2:1 1:9:3:1 1:9:4:1 1:9:5:1 1:9:6:1 1:9:7:1 1:9:8:1 1:9:9:1 1:9:10:1 1:9:11:1 1:9:12:1 1:9:13:1 1:9:14:1 1:9:15:1 1:9:16:1 1:9:17:1 1:9:18:1 1:9:19:1 1:9:20:1 #1:10:0:1 1:10:1:0 1:10:2:1 1:10:3:1 1:10:4:1 1:10:5:1 1:10:6:1 1:10:7:1 1:10:8:1 1:10:9:1 1:10:10:1 1:10:11:1 1:10:12:1 1:10:13:1 1:10:14:1 1:10:15:1 1:10:16:1 1:10:17:1 1:10:18:1 1:10:19:1 1:10:20:1 #1:11:0:1 1:11:1:0 1:11:2:1 1:11:3:1 1:11:4:1 1:11:5:1 1:11:6:1 1:11:7:1 1:11:8:1 1:11:9:1 1:11:10:1 1:11:11:1 1:11:12:1 1:11:13:1 1:11:14:1 1:11:15:1 1:11:16:1 1:11:17:1 1:11:18:1 1:11:19:1 1:11:20:1 #1:12:0:1 1:12:1:0 1:12:2:1 1:12:3:1 1:12:4:1 1:12:5:1 1:12:6:1 1:12:7:1 1:12:8:1 1:12:9:1 1:12:10:1 1:12:11:1 1:12:12:1 1:12:13:1 1:12:14:1 1:12:15:1 1:12:16:1 1:12:17:1 1:12:18:1 1:12:19:1 1:12:20:1 #1:13:0:1 1:13:1:0 1:13:2:1 1:13:3:1 1:13:4:1 1:13:5:1 1:13:6:1 1:13:7:1 1:13:8:1 1:13:9:1 1:13:10:1 1:13:11:1 1:13:12:1 1:13:13:1 1:13:14:1 1:13:15:1 1:13:16:1 1:13:17:1 1:13:18:1 1:13:19:1 1:13:20:1 #1:14:0:1 1:14:1:0 1:14:2:1 1:14:3:1 1:14:4:1 1:14:5:1 1:14:6:1 1:14:7:1 1:14:8:1 1:14:9:1 1:14:10:1 1:14:11:1 1:14:12:1 1:14:13:1 1:14:14:1 1:14:15:1 1:14:16:1 1:14:17:1 1:14:18:1 1:14:19:1 1:14:20:1 #1:15:0:1 1:15:1:0 1:15:2:1 1:15:3:1 1:15:4:1 1:15:5:1 1:15:6:1 1:15:7:1 1:15:8:1 1:15:9:1 1:15:10:1 1:15:11:1 1:15:12:1 1:15:13:1 1:15:14:1 1:15:15:1 1:15:16:1 1:15:17:1 1:15:18:1 1:15:19:1 1:15:20:1 #1:16:0:1 1:16:1:0 1:16:2:1 1:16:3:1 1:16:4:1 1:16:5:1 1:16:6:1 1:16:7:1 1:16:8:1 1:16:9:1 1:16:10:1 1:16:11:1 1:16:12:1 1:16:13:1 1:16:14:1 1:16:15:1 1:16:16:1 1:16:17:1 1:16:18:1 1:16:19:1 1:16:20:1 #1:17:0:1 1:17:1:0 1:17:2:1 1:17:3:1 1:17:4:1 1:17:5:1 1:17:6:1 1:17:7:1 1:17:8:1 1:17:9:1 1:17:10:1 1:17:11:1 1:17:12:1 1:17:13:1 1:17:14:1 1:17:15:1 1:17:16:1 1:17:17:1 1:17:18:1 1:17:19:1 1:17:20:1 #1:18:0:1 1:18:1:0 1:18:2:1 1:18:3:1 1:18:4:1 1:18:5:1 1:18:6:1 1:18:7:1 1:18:8:1 1:18:9:1 1:18:10:1 1:18:11:1 1:18:12:1 1:18:13:1 1:18:14:1 1:18:15:1 1:18:16:1 1:18:17:1 1:18:18:1 1:18:19:1 1:18:20:1 #1:19:0:1 1:19:1:0 1:19:2:1 1:19:3:1 1:19:4:1 1:19:5:1 1:19:6:1 1:19:7:1 1:19:8:1 1:19:9:1 1:19:10:1 1:19:11:1 1:19:12:1 1:19:13:1 1:19:14:1 1:19:15:1 1:19:16:1 1:19:17:1 1:19:18:1 1:19:19:1 1:19:20:1 #1:20:0:1 1:20:1:0 1:20:2:1 1:20:3:1 1:20:4:1 1:20:5:1 1:20:6:1 1:20:7:1 1:20:8:1 1:20:9:1 1:20:10:1 1:20:11:1 1:20:12:1 1:20:13:1 1:20:14:1 1:20:15:1 1:20:16:1 1:20:17:1 1:20:18:1 1:20:19:1 1:20:20:1 #2:0:0:2 2:0:1:0 2:0:2:1 2:0:3:1 2:0:4:1 2:0:5:1 2:0:6:1 2:0:7:1 2:0:8:1 2:0:9:1 2:0:10:1 2:0:11:1 2:0:12:1 2:0:13:1 2:0:14:1 2:0:15:1 2:0:16:1 2:0:17:1 2:0:18:1 2:0:19:1 2:0:20:1 #2:1:0:2 2:1:1:0 2:1:2:0 2:1:3:2 2:1:4:2 2:1:5:2 2:1:6:2 2:1:7:2 2:1:8:2 2:1:9:2 2:1:10:2 2:1:11:2 2:1:12:2 2:1:13:2 2:1:14:2 2:1:15:2 2:1:16:2 2:1:17:2 2:1:18:2 2:1:19:2 2:1:20:2 #2:2:0:2 2:2:1:0 2:2:2:0 2:2:3:1 2:2:4:0 2:2:5:4 2:2:6:4 2:2:7:4 2:2:8:4 2:2:9:4 2:2:10:4 2:2:11:4 2:2:12:4 2:2:13:4 2:2:14:4 2:2:15:4 2:2:16:4 2:2:17:4 2:2:18:4 2:2:19:4 2:2:20:4 #2:3:0:2 2:3:1:0 2:3:2:0 2:3:3:2 2:3:4:0 2:3:5:3 2:3:6:2 2:3:7:1 2:3:8:0 2:3:9:8 2:3:10:8 2:3:11:8 2:3:12:8 2:3:13:8 2:3:14:8 2:3:15:8 2:3:16:8 2:3:17:8 2:3:18:8 2:3:19:8 2:3:20:8 #2:4:0:2 2:4:1:0 2:4:2:0 2:4:3:1 2:4:4:0 2:4:5:1 2:4:6:4 2:4:7:2 2:4:8:0 2:4:9:7 2:4:10:6 2:4:11:5 2:4:12:4 2:4:13:3 2:4:14:2 2:4:15:1 2:4:16:0 2:4:17:16 2:4:18:16 2:4:19:16 2:4:20:16 #2:5:0:2 2:5:1:0 2:5:2:0 2:5:3:2 2:5:4:0 2:5:5:2 2:5:6:2 2:5:7:4 2:5:8:0 2:5:9:5 2:5:10:2 2:5:11:10 2:5:12:8 2:5:13:6 2:5:14:4 2:5:15:2 2:5:16:0 2:5:17:15 2:5:18:14 2:5:19:13 2:5:20:12 #2:6:0:2 2:6:1:0 2:6:2:0 2:6:3:1 2:6:4:0 2:6:5:4 2:6:6:4 2:6:7:1 2:6:8:0 2:6:9:1 2:6:10:4 2:6:11:9 2:6:12:4 2:6:13:12 2:6:14:8 2:6:15:4 2:6:16:0 2:6:17:13 2:6:18:10 2:6:19:7 2:6:20:4 #2:7:0:2 2:7:1:0 2:7:2:0 2:7:3:2 2:7:4:0 2:7:5:3 2:7:6:2 2:7:7:2 2:7:8:0 2:7:9:2 2:7:10:8 2:7:11:7 2:7:12:8 2:7:13:11 2:7:14:2 2:7:15:8 2:7:16:0 2:7:17:9 2:7:18:2 2:7:19:14 2:7:20:8 #2:8:0:2 2:8:1:0 2:8:2:0 2:8:3:1 2:8:4:0 2:8:5:1 2:8:6:4 2:8:7:4 2:8:8:0 2:8:9:4 2:8:10:6 2:8:11:3 2:8:12:4 2:8:13:9 2:8:14:4 2:8:15:1 2:8:16:0 2:8:17:1 2:8:18:4 2:8:19:9 2:8:20:16 #2:9:0:2 2:9:1:0 2:9:2:0 2:9:3:2 2:9:4:0 2:9:5:2 2:9:6:2 2:9:7:1 2:9:8:0 2:9:9:8 2:9:10:2 2:9:11:6 2:9:12:8 2:9:13:5 2:9:14:8 2:9:15:2 2:9:16:0 2:9:17:2 2:9:18:8 2:9:19:18 2:9:20:12 #2:10:0:2 2:10:1:0 2:10:2:0 2:10:3:1 2:10:4:0 2:10:5:4 2:10:6:4 2:10:7:2 2:10:8:0 2:10:9:7 2:10:10:4 2:10:11:1 2:10:12:4 2:10:13:10 2:10:14:2 2:10:15:4 2:10:16:0 2:10:17:4 2:10:18:16 2:10:19:17 2:10:20:4 #2:11:0:2 2:11:1:0 2:11:2:0 2:11:3:2 2:11:4:0 2:11:5:3 2:11:6:2 2:11:7:4 2:11:8:0 2:11:9:5 2:11:10:8 2:11:11:2 2:11:12:8 2:11:13:7 2:11:14:4 2:11:15:8 2:11:16:0 2:11:17:8 2:11:18:14 2:11:19:15 2:11:20:8 #2:12:0:2 2:12:1:0 2:12:2:0 2:12:3:1 2:12:4:0 2:12:5:1 2:12:6:4 2:12:7:1 2:12:8:0 2:12:9:1 2:12:10:6 2:12:11:4 2:12:12:4 2:12:13:1 2:12:14:8 2:12:15:1 2:12:16:0 2:12:17:16 2:12:18:10 2:12:19:11 2:12:20:16 #2:13:0:2 2:13:1:0 2:13:2:0 2:13:3:2 2:13:4:0 2:13:5:2 2:13:6:2 2:13:7:2 2:13:8:0 2:13:9:2 2:13:10:2 2:13:11:8 2:13:12:8 2:13:13:2 2:13:14:2 2:13:15:2 2:13:16:0 2:13:17:15 2:13:18:2 2:13:19:3 2:13:20:12 #2:14:0:2 2:14:1:0 2:14:2:0 2:14:3:1 2:14:4:0 2:14:5:4 2:14:6:4 2:14:7:4 2:14:8:0 2:14:9:4 2:14:10:4 2:14:11:5 2:14:12:4 2:14:13:4 2:14:14:4 2:14:15:4 2:14:16:0 2:14:17:13 2:14:18:4 2:14:19:6 2:14:20:4 #2:15:0:2 2:15:1:0 2:15:2:0 2:15:3:2 2:15:4:0 2:15:5:3 2:15:6:2 2:15:7:1 2:15:8:0 2:15:9:8 2:15:10:8 2:15:11:10 2:15:12:8 2:15:13:8 2:15:14:8 2:15:15:8 2:15:16:0 2:15:17:9 2:15:18:8 2:15:19:12 2:15:20:8 #2:16:0:2 2:16:1:0 2:16:2:0 2:16:3:1 2:16:4:0 2:16:5:1 2:16:6:4 2:16:7:2 2:16:8:0 2:16:9:7 2:16:10:6 2:16:11:9 2:16:12:4 2:16:13:3 2:16:14:2 2:16:15:1 2:16:16:0 2:16:17:1 2:16:18:16 2:16:19:5 2:16:20:16 #2:17:0:2 2:17:1:0 2:17:2:0 2:17:3:2 2:17:4:0 2:17:5:2 2:17:6:2 2:17:7:4 2:17:8:0 2:17:9:5 2:17:10:2 2:17:11:7 2:17:12:8 2:17:13:6 2:17:14:4 2:17:15:2 2:17:16:0 2:17:17:2 2:17:18:14 2:17:19:10 2:17:20:12 #2:18:0:2 2:18:1:0 2:18:2:0 2:18:3:1 2:18:4:0 2:18:5:4 2:18:6:4 2:18:7:1 2:18:8:0 2:18:9:1 2:18:10:4 2:18:11:3 2:18:12:4 2:18:13:12 2:18:14:8 2:18:15:4 2:18:16:0 2:18:17:4 2:18:18:10 2:18:19:1 2:18:20:4 #2:19:0:2 2:19:1:0 2:19:2:0 2:19:3:2 2:19:4:0 2:19:5:3 2:19:6:2 2:19:7:2 2:19:8:0 2:19:9:2 2:19:10:8 2:19:11:6 2:19:12:8 2:19:13:11 2:19:14:2 2:19:15:8 2:19:16:0 2:19:17:8 2:19:18:2 2:19:19:2 2:19:20:8 #2:20:0:2 2:20:1:0 2:20:2:0 2:20:3:1 2:20:4:0 2:20:5:1 2:20:6:4 2:20:7:4 2:20:8:0 2:20:9:4 2:20:10:6 2:20:11:1 2:20:12:4 2:20:13:9 2:20:14:4 2:20:15:1 2:20:16:0 2:20:17:16 2:20:18:4 2:20:19:4 2:20:20:16 #3:0:0:3 3:0:1:0 3:0:2:1 3:0:3:1 3:0:4:1 3:0:5:1 3:0:6:1 3:0:7:1 3:0:8:1 3:0:9:1 3:0:10:1 3:0:11:1 3:0:12:1 3:0:13:1 3:0:14:1 3:0:15:1 3:0:16:1 3:0:17:1 3:0:18:1 3:0:19:1 3:0:20:1 #3:1:0:3 3:1:1:0 3:1:2:1 3:1:3:0 3:1:4:3 3:1:5:3 3:1:6:3 3:1:7:3 3:1:8:3 3:1:9:3 3:1:10:3 3:1:11:3 3:1:12:3 3:1:13:3 3:1:14:3 3:1:15:3 3:1:16:3 3:1:17:3 3:1:18:3 3:1:19:3 3:1:20:3 #3:2:0:3 3:2:1:0 3:2:2:1 3:2:3:0 3:2:4:1 3:2:5:4 3:2:6:3 3:2:7:2 3:2:8:1 3:2:9:0 3:2:10:9 3:2:11:9 3:2:12:9 3:2:13:9 3:2:14:9 3:2:15:9 3:2:16:9 3:2:17:9 3:2:18:9 3:2:19:9 3:2:20:9 #3:3:0:3 3:3:1:0 3:3:2:1 3:3:3:0 3:3:4:3 3:3:5:2 3:3:6:3 3:3:7:6 3:3:8:3 3:3:9:0 3:3:10:7 3:3:11:5 3:3:12:3 3:3:13:1 3:3:14:13 3:3:15:12 3:3:16:11 3:3:17:10 3:3:18:9 3:3:19:8 3:3:20:7 #3:4:0:3 3:4:1:0 3:4:2:1 3:4:3:0 3:4:4:1 3:4:5:1 3:4:6:3 3:4:7:4 3:4:8:1 3:4:9:0 3:4:10:1 3:4:11:4 3:4:12:9 3:4:13:3 3:4:14:11 3:4:15:6 3:4:16:1 3:4:17:13 3:4:18:9 3:4:19:5 3:4:20:1 #3:5:0:3 3:5:1:0 3:5:2:1 3:5:3:0 3:5:4:3 3:5:5:3 3:5:6:3 3:5:7:5 3:5:8:3 3:5:9:0 3:5:10:3 3:5:11:1 3:5:12:3 3:5:13:9 3:5:14:5 3:5:15:3 3:5:16:3 3:5:17:5 3:5:18:9 3:5:19:15 3:5:20:3 #3:6:0:3 3:6:1:0 3:6:2:1 3:6:3:0 3:6:4:1 3:6:5:4 3:6:6:3 3:6:7:1 3:6:8:1 3:6:9:0 3:6:10:9 3:6:11:3 3:6:12:9 3:6:13:1 3:6:14:1 3:6:15:9 3:6:16:9 3:6:17:15 3:6:18:9 3:6:19:7 3:6:20:9 #3:7:0:3 3:7:1:0 3:7:2:1 3:7:3:0 3:7:4:3 3:7:5:2 3:7:6:3 3:7:7:3 3:7:8:3 3:7:9:0 3:7:10:7 3:7:11:9 3:7:12:3 3:7:13:3 3:7:14:3 3:7:15:12 3:7:16:11 3:7:17:11 3:7:18:9 3:7:19:2 3:7:20:7 #3:8:0:3 3:8:1:0 3:8:2:1 3:8:3:0 3:8:4:1 3:8:5:1 3:8:6:3 3:8:7:2 3:8:8:1 3:8:9:0 3:8:10:1 3:8:11:5 3:8:12:9 3:8:13:9 3:8:14:9 3:8:15:6 3:8:16:1 3:8:17:16 3:8:18:9 3:8:19:6 3:8:20:1 #3:9:0:3 3:9:1:0 3:9:2:1 3:9:3:0 3:9:4:3 3:9:5:3 3:9:6:3 3:9:7:6 3:9:8:3 3:9:9:0 3:9:10:3 3:9:11:4 3:9:12:3 3:9:13:1 3:9:14:13 3:9:15:3 3:9:16:3 3:9:17:14 3:9:18:9 3:9:19:18 3:9:20:3 #3:10:0:3 3:10:1:0 3:10:2:1 3:10:3:0 3:10:4:1 3:10:5:4 3:10:6:3 3:10:7:4 3:10:8:1 3:10:9:0 3:10:10:9 3:10:11:1 3:10:12:9 3:10:13:3 3:10:14:11 3:10:15:9 3:10:16:9 3:10:17:8 3:10:18:9 3:10:19:16 3:10:20:9 #3:11:0:3 3:11:1:0 3:11:2:1 3:11:3:0 3:11:4:3 3:11:5:2 3:11:6:3 3:11:7:5 3:11:8:3 3:11:9:0 3:11:10:7 3:11:11:3 3:11:12:3 3:11:13:9 3:11:14:5 3:11:15:12 3:11:16:11 3:11:17:7 3:11:18:9 3:11:19:10 3:11:20:7 #3:12:0:3 3:12:1:0 3:12:2:1 3:12:3:0 3:12:4:1 3:12:5:1 3:12:6:3 3:12:7:1 3:12:8:1 3:12:9:0 3:12:10:1 3:12:11:9 3:12:12:9 3:12:13:1 3:12:14:1 3:12:15:6 3:12:16:1 3:12:17:4 3:12:18:9 3:12:19:11 3:12:20:1 #3:13:0:3 3:13:1:0 3:13:2:1 3:13:3:0 3:13:4:3 3:13:5:3 3:13:6:3 3:13:7:3 3:13:8:3 3:13:9:0 3:13:10:3 3:13:11:5 3:13:12:3 3:13:13:3 3:13:14:3 3:13:15:3 3:13:16:3 3:13:17:12 3:13:18:9 3:13:19:14 3:13:20:3 #3:14:0:3 3:14:1:0 3:14:2:1 3:14:3:0 3:14:4:1 3:14:5:4 3:14:6:3 3:14:7:2 3:14:8:1 3:14:9:0 3:14:10:9 3:14:11:4 3:14:12:9 3:14:13:9 3:14:14:9 3:14:15:9 3:14:16:9 3:14:17:2 3:14:18:9 3:14:19:4 3:14:20:9 #3:15:0:3 3:15:1:0 3:15:2:1 3:15:3:0 3:15:4:3 3:15:5:2 3:15:6:3 3:15:7:6 3:15:8:3 3:15:9:0 3:15:10:7 3:15:11:1 3:15:12:3 3:15:13:1 3:15:14:13 3:15:15:12 3:15:16:11 3:15:17:6 3:15:18:9 3:15:19:12 3:15:20:7 #3:16:0:3 3:16:1:0 3:16:2:1 3:16:3:0 3:16:4:1 3:16:5:1 3:16:6:3 3:16:7:4 3:16:8:1 3:16:9:0 3:16:10:1 3:16:11:3 3:16:12:9 3:16:13:3 3:16:14:11 3:16:15:6 3:16:16:1 3:16:17:1 3:16:18:9 3:16:19:17 3:16:20:1 #3:17:0:3 3:17:1:0 3:17:2:1 3:17:3:0 3:17:4:3 3:17:5:3 3:17:6:3 3:17:7:5 3:17:8:3 3:17:9:0 3:17:10:3 3:17:11:9 3:17:12:3 3:17:13:9 3:17:14:5 3:17:15:3 3:17:16:3 3:17:17:3 3:17:18:9 3:17:19:13 3:17:20:3 #3:18:0:3 3:18:1:0 3:18:2:1 3:18:3:0 3:18:4:1 3:18:5:4 3:18:6:3 3:18:7:1 3:18:8:1 3:18:9:0 3:18:10:9 3:18:11:5 3:18:12:9 3:18:13:1 3:18:14:1 3:18:15:9 3:18:16:9 3:18:17:9 3:18:18:9 3:18:19:1 3:18:20:9 #3:19:0:3 3:19:1:0 3:19:2:1 3:19:3:0 3:19:4:3 3:19:5:2 3:19:6:3 3:19:7:3 3:19:8:3 3:19:9:0 3:19:10:7 3:19:11:4 3:19:12:3 3:19:13:3 3:19:14:3 3:19:15:12 3:19:16:11 3:19:17:10 3:19:18:9 3:19:19:3 3:19:20:7 #3:20:0:3 3:20:1:0 3:20:2:1 3:20:3:0 3:20:4:1 3:20:5:1 3:20:6:3 3:20:7:2 3:20:8:1 3:20:9:0 3:20:10:1 3:20:11:1 3:20:12:9 3:20:13:9 3:20:14:9 3:20:15:6 3:20:16:1 3:20:17:13 3:20:18:9 3:20:19:9 3:20:20:1 #4:0:0:4 4:0:1:0 4:0:2:1 4:0:3:1 4:0:4:1 4:0:5:1 4:0:6:1 4:0:7:1 4:0:8:1 4:0:9:1 4:0:10:1 4:0:11:1 4:0:12:1 4:0:13:1 4:0:14:1 4:0:15:1 4:0:16:1 4:0:17:1 4:0:18:1 4:0:19:1 4:0:20:1 #4:1:0:4 4:1:1:0 4:1:2:0 4:1:3:1 4:1:4:0 4:1:5:4 4:1:6:4 4:1:7:4 4:1:8:4 4:1:9:4 4:1:10:4 4:1:11:4 4:1:12:4 4:1:13:4 4:1:14:4 4:1:15:4 4:1:16:4 4:1:17:4 4:1:18:4 4:1:19:4 4:1:20:4 #4:2:0:4 4:2:1:0 4:2:2:0 4:2:3:1 4:2:4:0 4:2:5:1 4:2:6:4 4:2:7:2 4:2:8:0 4:2:9:7 4:2:10:6 4:2:11:5 4:2:12:4 4:2:13:3 4:2:14:2 4:2:15:1 4:2:16:0 4:2:17:16 4:2:18:16 4:2:19:16 4:2:20:16 #4:3:0:4 4:3:1:0 4:3:2:0 4:3:3:1 4:3:4:0 4:3:5:4 4:3:6:4 4:3:7:1 4:3:8:0 4:3:9:1 4:3:10:4 4:3:11:9 4:3:12:4 4:3:13:12 4:3:14:8 4:3:15:4 4:3:16:0 4:3:17:13 4:3:18:10 4:3:19:7 4:3:20:4 #4:4:0:4 4:4:1:0 4:4:2:0 4:4:3:1 4:4:4:0 4:4:5:1 4:4:6:4 4:4:7:4 4:4:8:0 4:4:9:4 4:4:10:6 4:4:11:3 4:4:12:4 4:4:13:9 4:4:14:4 4:4:15:1 4:4:16:0 4:4:17:1 4:4:18:4 4:4:19:9 4:4:20:16 #4:5:0:4 4:5:1:0 4:5:2:0 4:5:3:1 4:5:4:0 4:5:5:4 4:5:6:4 4:5:7:2 4:5:8:0 4:5:9:7 4:5:10:4 4:5:11:1 4:5:12:4 4:5:13:10 4:5:14:2 4:5:15:4 4:5:16:0 4:5:17:4 4:5:18:16 4:5:19:17 4:5:20:4 #4:6:0:4 4:6:1:0 4:6:2:0 4:6:3:1 4:6:4:0 4:6:5:1 4:6:6:4 4:6:7:1 4:6:8:0 4:6:9:1 4:6:10:6 4:6:11:4 4:6:12:4 4:6:13:1 4:6:14:8 4:6:15:1 4:6:16:0 4:6:17:16 4:6:18:10 4:6:19:11 4:6:20:16 #4:7:0:4 4:7:1:0 4:7:2:0 4:7:3:1 4:7:4:0 4:7:5:4 4:7:6:4 4:7:7:4 4:7:8:0 4:7:9:4 4:7:10:4 4:7:11:5 4:7:12:4 4:7:13:4 4:7:14:4 4:7:15:4 4:7:16:0 4:7:17:13 4:7:18:4 4:7:19:6 4:7:20:4 #4:8:0:4 4:8:1:0 4:8:2:0 4:8:3:1 4:8:4:0 4:8:5:1 4:8:6:4 4:8:7:2 4:8:8:0 4:8:9:7 4:8:10:6 4:8:11:9 4:8:12:4 4:8:13:3 4:8:14:2 4:8:15:1 4:8:16:0 4:8:17:1 4:8:18:16 4:8:19:5 4:8:20:16 #4:9:0:4 4:9:1:0 4:9:2:0 4:9:3:1 4:9:4:0 4:9:5:4 4:9:6:4 4:9:7:1 4:9:8:0 4:9:9:1 4:9:10:4 4:9:11:3 4:9:12:4 4:9:13:12 4:9:14:8 4:9:15:4 4:9:16:0 4:9:17:4 4:9:18:10 4:9:19:1 4:9:20:4 #4:10:0:4 4:10:1:0 4:10:2:0 4:10:3:1 4:10:4:0 4:10:5:1 4:10:6:4 4:10:7:4 4:10:8:0 4:10:9:4 4:10:10:6 4:10:11:1 4:10:12:4 4:10:13:9 4:10:14:4 4:10:15:1 4:10:16:0 4:10:17:16 4:10:18:4 4:10:19:4 4:10:20:16 #4:11:0:4 4:11:1:0 4:11:2:0 4:11:3:1 4:11:4:0 4:11:5:4 4:11:6:4 4:11:7:2 4:11:8:0 4:11:9:7 4:11:10:4 4:11:11:4 4:11:12:4 4:11:13:10 4:11:14:2 4:11:15:4 4:11:16:0 4:11:17:13 4:11:18:16 4:11:19:16 4:11:20:4 #4:12:0:4 4:12:1:0 4:12:2:0 4:12:3:1 4:12:4:0 4:12:5:1 4:12:6:4 4:12:7:1 4:12:8:0 4:12:9:1 4:12:10:6 4:12:11:5 4:12:12:4 4:12:13:1 4:12:14:8 4:12:15:1 4:12:16:0 4:12:17:1 4:12:18:10 4:12:19:7 4:12:20:16 #4:13:0:4 4:13:1:0 4:13:2:0 4:13:3:1 4:13:4:0 4:13:5:4 4:13:6:4 4:13:7:4 4:13:8:0 4:13:9:4 4:13:10:4 4:13:11:9 4:13:12:4 4:13:13:4 4:13:14:4 4:13:15:4 4:13:16:0 4:13:17:4 4:13:18:4 4:13:19:9 4:13:20:4 #4:14:0:4 4:14:1:0 4:14:2:0 4:14:3:1 4:14:4:0 4:14:5:1 4:14:6:4 4:14:7:2 4:14:8:0 4:14:9:7 4:14:10:6 4:14:11:3 4:14:12:4 4:14:13:3 4:14:14:2 4:14:15:1 4:14:16:0 4:14:17:16 4:14:18:16 4:14:19:17 4:14:20:16 #4:15:0:4 4:15:1:0 4:15:2:0 4:15:3:1 4:15:4:0 4:15:5:4 4:15:6:4 4:15:7:1 4:15:8:0 4:15:9:1 4:15:10:4 4:15:11:1 4:15:12:4 4:15:13:12 4:15:14:8 4:15:15:4 4:15:16:0 4:15:17:13 4:15:18:10 4:15:19:11 4:15:20:4 #4:16:0:4 4:16:1:0 4:16:2:0 4:16:3:1 4:16:4:0 4:16:5:1 4:16:6:4 4:16:7:4 4:16:8:0 4:16:9:4 4:16:10:6 4:16:11:4 4:16:12:4 4:16:13:9 4:16:14:4 4:16:15:1 4:16:16:0 4:16:17:1 4:16:18:4 4:16:19:6 4:16:20:16 #4:17:0:4 4:17:1:0 4:17:2:0 4:17:3:1 4:17:4:0 4:17:5:4 4:17:6:4 4:17:7:2 4:17:8:0 4:17:9:7 4:17:10:4 4:17:11:5 4:17:12:4 4:17:13:10 4:17:14:2 4:17:15:4 4:17:16:0 4:17:17:4 4:17:18:16 4:17:19:5 4:17:20:4 #4:18:0:4 4:18:1:0 4:18:2:0 4:18:3:1 4:18:4:0 4:18:5:1 4:18:6:4 4:18:7:1 4:18:8:0 4:18:9:1 4:18:10:6 4:18:11:9 4:18:12:4 4:18:13:1 4:18:14:8 4:18:15:1 4:18:16:0 4:18:17:16 4:18:18:10 4:18:19:1 4:18:20:16 #4:19:0:4 4:19:1:0 4:19:2:0 4:19:3:1 4:19:4:0 4:19:5:4 4:19:6:4 4:19:7:4 4:19:8:0 4:19:9:4 4:19:10:4 4:19:11:3 4:19:12:4 4:19:13:4 4:19:14:4 4:19:15:4 4:19:16:0 4:19:17:13 4:19:18:4 4:19:19:4 4:19:20:4 #4:20:0:4 4:20:1:0 4:20:2:0 4:20:3:1 4:20:4:0 4:20:5:1 4:20:6:4 4:20:7:2 4:20:8:0 4:20:9:7 4:20:10:6 4:20:11:1 4:20:12:4 4:20:13:3 4:20:14:2 4:20:15:1 4:20:16:0 4:20:17:1 4:20:18:16 4:20:19:16 4:20:20:16 #5:0:0:5 5:0:1:0 5:0:2:1 5:0:3:1 5:0:4:1 5:0:5:1 5:0:6:1 5:0:7:1 5:0:8:1 5:0:9:1 5:0:10:1 5:0:11:1 5:0:12:1 5:0:13:1 5:0:14:1 5:0:15:1 5:0:16:1 5:0:17:1 5:0:18:1 5:0:19:1 5:0:20:1 #5:1:0:5 5:1:1:0 5:1:2:1 5:1:3:2 5:1:4:1 5:1:5:0 5:1:6:5 5:1:7:5 5:1:8:5 5:1:9:5 5:1:10:5 5:1:11:5 5:1:12:5 5:1:13:5 5:1:14:5 5:1:15:5 5:1:16:5 5:1:17:5 5:1:18:5 5:1:19:5 5:1:20:5 #5:2:0:5 5:2:1:0 5:2:2:1 5:2:3:1 5:2:4:1 5:2:5:0 5:2:6:1 5:2:7:4 5:2:8:1 5:2:9:7 5:2:10:5 5:2:11:3 5:2:12:1 5:2:13:12 5:2:14:11 5:2:15:10 5:2:16:9 5:2:17:8 5:2:18:7 5:2:19:6 5:2:20:5 #5:3:0:5 5:3:1:0 5:3:2:1 5:3:3:2 5:3:4:1 5:3:5:0 5:3:6:5 5:3:7:6 5:3:8:5 5:3:9:8 5:3:10:5 5:3:11:4 5:3:12:5 5:3:13:8 5:3:14:13 5:3:15:5 5:3:16:13 5:3:17:6 5:3:18:17 5:3:19:11 5:3:20:5 #5:4:0:5 5:4:1:0 5:4:2:1 5:4:3:1 5:4:4:1 5:4:5:0 5:4:6:1 5:4:7:2 5:4:8:1 5:4:9:4 5:4:10:5 5:4:11:9 5:4:12:1 5:4:13:1 5:4:14:9 5:4:15:10 5:4:16:1 5:4:17:13 5:4:18:13 5:4:19:17 5:4:20:5 #5:5:0:5 5:5:1:0 5:5:2:1 5:5:3:2 5:5:4:1 5:5:5:0 5:5:6:5 5:5:7:3 5:5:8:5 5:5:9:2 5:5:10:5 5:5:11:1 5:5:12:5 5:5:13:5 5:5:14:3 5:5:15:5 5:5:16:5 5:5:17:14 5:5:18:11 5:5:19:9 5:5:20:5 #5:6:0:5 5:6:1:0 5:6:2:1 5:6:3:1 5:6:4:1 5:6:5:0 5:6:6:1 5:6:7:1 5:6:8:1 5:6:9:1 5:6:10:5 5:6:11:5 5:6:12:1 5:6:13:12 5:6:14:1 5:6:15:10 5:6:16:9 5:6:17:2 5:6:18:1 5:6:19:7 5:6:20:5 #5:7:0:5 5:7:1:0 5:7:2:1 5:7:3:2 5:7:4:1 5:7:5:0 5:7:6:5 5:7:7:5 5:7:8:5 5:7:9:5 5:7:10:5 5:7:11:3 5:7:12:5 5:7:13:8 5:7:14:5 5:7:15:5 5:7:16:13 5:7:17:10 5:7:18:5 5:7:19:16 5:7:20:5 #5:8:0:5 5:8:1:0 5:8:2:1 5:8:3:1 5:8:4:1 5:8:5:0 5:8:6:1 5:8:7:4 5:8:8:1 5:8:9:7 5:8:10:5 5:8:11:4 5:8:12:1 5:8:13:1 5:8:14:11 5:8:15:10 5:8:16:1 5:8:17:16 5:8:18:7 5:8:19:4 5:8:20:5 #5:9:0:5 5:9:1:0 5:9:2:1 5:9:3:2 5:9:4:1 5:9:5:0 5:9:6:5 5:9:7:6 5:9:8:5 5:9:9:8 5:9:10:5 5:9:11:9 5:9:12:5 5:9:13:5 5:9:14:13 5:9:15:5 5:9:16:5 5:9:17:12 5:9:18:17 5:9:19:1 5:9:20:5 #5:10:0:5 5:10:1:0 5:10:2:1 5:10:3:1 5:10:4:1 5:10:5:0 5:10:6:1 5:10:7:2 5:10:8:1 5:10:9:4 5:10:10:5 5:10:11:1 5:10:12:1 5:10:13:12 5:10:14:9 5:10:15:10 5:10:16:9 5:10:17:9 5:10:18:13 5:10:19:5 5:10:20:5 #5:11:0:5 5:11:1:0 5:11:2:1 5:11:3:2 5:11:4:1 5:11:5:0 5:11:6:5 5:11:7:3 5:11:8:5 5:11:9:2 5:11:10:5 5:11:11:5 5:11:12:5 5:11:13:8 5:11:14:3 5:11:15:5 5:11:16:13 5:11:17:11 5:11:18:11 5:11:19:6 5:11:20:5 #5:12:0:5 5:12:1:0 5:12:2:1 5:12:3:1 5:12:4:1 5:12:5:0 5:12:6:1 5:12:7:1 5:12:8:1 5:12:9:1 5:12:10:5 5:12:11:3 5:12:12:1 5:12:13:1 5:12:14:1 5:12:15:10 5:12:16:1 5:12:17:4 5:12:18:1 5:12:19:11 5:12:20:5 #5:13:0:5 5:13:1:0 5:13:2:1 5:13:3:2 5:13:4:1 5:13:5:0 5:13:6:5 5:13:7:5 5:13:8:5 5:13:9:5 5:13:10:5 5:13:11:4 5:13:12:5 5:13:13:5 5:13:14:5 5:13:15:5 5:13:16:5 5:13:17:3 5:13:18:5 5:13:19:17 5:13:20:5 #5:14:0:5 5:14:1:0 5:14:2:1 5:14:3:1 5:14:4:1 5:14:5:0 5:14:6:1 5:14:7:4 5:14:8:1 5:14:9:7 5:14:10:5 5:14:11:9 5:14:12:1 5:14:13:12 5:14:14:11 5:14:15:10 5:14:16:9 5:14:17:15 5:14:18:7 5:14:19:9 5:14:20:5 #5:15:0:5 5:15:1:0 5:15:2:1 5:15:3:2 5:15:4:1 5:15:5:0 5:15:6:5 5:15:7:6 5:15:8:5 5:15:9:8 5:15:10:5 5:15:11:1 5:15:12:5 5:15:13:8 5:15:14:13 5:15:15:5 5:15:16:13 5:15:17:7 5:15:18:17 5:15:19:7 5:15:20:5 #5:16:0:5 5:16:1:0 5:16:2:1 5:16:3:1 5:16:4:1 5:16:5:0 5:16:6:1 5:16:7:2 5:16:8:1 5:16:9:4 5:16:10:5 5:16:11:5 5:16:12:1 5:16:13:1 5:16:14:9 5:16:15:10 5:16:16:1 5:16:17:1 5:16:18:13 5:16:19:16 5:16:20:5 #5:17:0:5 5:17:1:0 5:17:2:1 5:17:3:2 5:17:4:1 5:17:5:0 5:17:6:5 5:17:7:3 5:17:8:5 5:17:9:2 5:17:10:5 5:17:11:3 5:17:12:5 5:17:13:5 5:17:14:3 5:17:15:5 5:17:16:5 5:17:17:5 5:17:18:11 5:17:19:4 5:17:20:5 #5:18:0:5 5:18:1:0 5:18:2:1 5:18:3:1 5:18:4:1 5:18:5:0 5:18:6:1 5:18:7:1 5:18:8:1 5:18:9:1 5:18:10:5 5:18:11:4 5:18:12:1 5:18:13:12 5:18:14:1 5:18:15:10 5:18:16:9 5:18:17:8 5:18:18:1 5:18:19:1 5:18:20:5 #5:19:0:5 5:19:1:0 5:19:2:1 5:19:3:2 5:19:4:1 5:19:5:0 5:19:6:5 5:19:7:5 5:19:8:5 5:19:9:5 5:19:10:5 5:19:11:9 5:19:12:5 5:19:13:8 5:19:14:5 5:19:15:5 5:19:16:13 5:19:17:6 5:19:18:5 5:19:19:5 5:19:20:5 #5:20:0:5 5:20:1:0 5:20:2:1 5:20:3:1 5:20:4:1 5:20:5:0 5:20:6:1 5:20:7:4 5:20:8:1 5:20:9:7 5:20:10:5 5:20:11:1 5:20:12:1 5:20:13:1 5:20:14:11 5:20:15:10 5:20:16:1 5:20:17:13 5:20:18:7 5:20:19:6 5:20:20:5 #6:0:0:6 6:0:1:0 6:0:2:1 6:0:3:1 6:0:4:1 6:0:5:1 6:0:6:1 6:0:7:1 6:0:8:1 6:0:9:1 6:0:10:1 6:0:11:1 6:0:12:1 6:0:13:1 6:0:14:1 6:0:15:1 6:0:16:1 6:0:17:1 6:0:18:1 6:0:19:1 6:0:20:1 #6:1:0:6 6:1:1:0 6:1:2:0 6:1:3:0 6:1:4:2 6:1:5:1 6:1:6:0 6:1:7:6 6:1:8:6 6:1:9:6 6:1:10:6 6:1:11:6 6:1:12:6 6:1:13:6 6:1:14:6 6:1:15:6 6:1:16:6 6:1:17:6 6:1:18:6 6:1:19:6 6:1:20:6 #6:2:0:6 6:2:1:0 6:2:2:0 6:2:3:0 6:2:4:0 6:2:5:1 6:2:6:0 6:2:7:1 6:2:8:4 6:2:9:0 6:2:10:6 6:2:11:3 6:2:12:0 6:2:13:10 6:2:14:8 6:2:15:6 6:2:16:4 6:2:17:2 6:2:18:0 6:2:19:17 6:2:20:16 #6:3:0:6 6:3:1:0 6:3:2:0 6:3:3:0 6:3:4:0 6:3:5:1 6:3:6:0 6:3:7:6 6:3:8:0 6:3:9:0 6:3:10:6 6:3:11:7 6:3:12:0 6:3:13:8 6:3:14:6 6:3:15:6 6:3:16:8 6:3:17:12 6:3:18:0 6:3:19:7 6:3:20:16 #6:4:0:6 6:4:1:0 6:4:2:0 6:4:3:0 6:4:4:0 6:4:5:1 6:4:6:0 6:4:7:1 6:4:8:0 6:4:9:0 6:4:10:6 6:4:11:9 6:4:12:0 6:4:13:9 6:4:14:8 6:4:15:6 6:4:16:0 6:4:17:4 6:4:18:0 6:4:19:4 6:4:20:16 #6:5:0:6 6:5:1:0 6:5:2:0 6:5:3:0 6:5:4:0 6:5:5:1 6:5:6:0 6:5:7:6 6:5:8:0 6:5:9:0 6:5:10:6 6:5:11:10 6:5:12:0 6:5:13:2 6:5:14:6 6:5:15:6 6:5:16:0 6:5:17:7 6:5:18:0 6:5:19:5 6:5:20:16 #6:6:0:6 6:6:1:0 6:6:2:0 6:6:3:0 6:6:4:0 6:6:5:1 6:6:6:0 6:6:7:1 6:6:8:0 6:6:9:0 6:6:10:6 6:6:11:5 6:6:12:0 6:6:13:12 6:6:14:8 6:6:15:6 6:6:16:0 6:6:17:8 6:6:18:0 6:6:19:11 6:6:20:16 #6:7:0:6 6:7:1:0 6:7:2:0 6:7:3:0 6:7:4:0 6:7:5:1 6:7:6:0 6:7:7:6 6:7:8:0 6:7:9:0 6:7:10:6 6:7:11:8 6:7:12:0 6:7:13:7 6:7:14:6 6:7:15:6 6:7:16:0 6:7:17:14 6:7:18:0 6:7:19:9 6:7:20:16 #6:8:0:6 6:8:1:0 6:8:2:0 6:8:3:0 6:8:4:0 6:8:5:1 6:8:6:0 6:8:7:1 6:8:8:0 6:8:9:0 6:8:10:6 6:8:11:4 6:8:12:0 6:8:13:3 6:8:14:8 6:8:15:6 6:8:16:0 6:8:17:16 6:8:18:0 6:8:19:16 6:8:20:16 #6:9:0:6 6:9:1:0 6:9:2:0 6:9:3:0 6:9:4:0 6:9:5:1 6:9:6:0 6:9:7:6 6:9:8:0 6:9:9:0 6:9:10:6 6:9:11:2 6:9:12:0 6:9:13:5 6:9:14:6 6:9:15:6 6:9:16:0 6:9:17:11 6:9:18:0 6:9:19:1 6:9:20:16 #6:10:0:6 6:10:1:0 6:10:2:0 6:10:3:0 6:10:4:0 6:10:5:1 6:10:6:0 6:10:7:1 6:10:8:0 6:10:9:0 6:10:10:6 6:10:11:1 6:10:12:0 6:10:13:4 6:10:14:8 6:10:15:6 6:10:16:0 6:10:17:15 6:10:18:0 6:10:19:6 6:10:20:16 #6:11:0:6 6:11:1:0 6:11:2:0 6:11:3:0 6:11:4:0 6:11:5:1 6:11:6:0 6:11:7:6 6:11:8:0 6:11:9:0 6:11:10:6 6:11:11:6 6:11:12:0 6:11:13:11 6:11:14:6 6:11:15:6 6:11:16:0 6:11:17:5 6:11:18:0 6:11:19:17 6:11:20:16 #6:12:0:6 6:12:1:0 6:12:2:0 6:12:3:0 6:12:4:0 6:12:5:1 6:12:6:0 6:12:7:1 6:12:8:0 6:12:9:0 6:12:10:6 6:12:11:3 6:12:12:0 6:12:13:1 6:12:14:8 6:12:15:6 6:12:16:0 6:12:17:13 6:12:18:0 6:12:19:7 6:12:20:16 #6:13:0:6 6:13:1:0 6:13:2:0 6:13:3:0 6:13:4:0 6:13:5:1 6:13:6:0 6:13:7:6 6:13:8:0 6:13:9:0 6:13:10:6 6:13:11:7 6:13:12:0 6:13:13:6 6:13:14:6 6:13:15:6 6:13:16:0 6:13:17:10 6:13:18:0 6:13:19:4 6:13:20:16 #6:14:0:6 6:14:1:0 6:14:2:0 6:14:3:0 6:14:4:0 6:14:5:1 6:14:6:0 6:14:7:1 6:14:8:0 6:14:9:0 6:14:10:6 6:14:11:9 6:14:12:0 6:14:13:10 6:14:14:8 6:14:15:6 6:14:16:0 6:14:17:9 6:14:18:0 6:14:19:5 6:14:20:16 #6:15:0:6 6:15:1:0 6:15:2:0 6:15:3:0 6:15:4:0 6:15:5:1 6:15:6:0 6:15:7:6 6:15:8:0 6:15:9:0 6:15:10:6 6:15:11:10 6:15:12:0 6:15:13:8 6:15:14:6 6:15:15:6 6:15:16:0 6:15:17:3 6:15:18:0 6:15:19:11 6:15:20:16 #6:16:0:6 6:16:1:0 6:16:2:0 6:16:3:0 6:16:4:0 6:16:5:1 6:16:6:0 6:16:7:1 6:16:8:0 6:16:9:0 6:16:10:6 6:16:11:5 6:16:12:0 6:16:13:9 6:16:14:8 6:16:15:6 6:16:16:0 6:16:17:1 6:16:18:0 6:16:19:9 6:16:20:16 #6:17:0:6 6:17:1:0 6:17:2:0 6:17:3:0 6:17:4:0 6:17:5:1 6:17:6:0 6:17:7:6 6:17:8:0 6:17:9:0 6:17:10:6 6:17:11:8 6:17:12:0 6:17:13:2 6:17:14:6 6:17:15:6 6:17:16:0 6:17:17:6 6:17:18:0 6:17:19:16 6:17:20:16 #6:18:0:6 6:18:1:0 6:18:2:0 6:18:3:0 6:18:4:0 6:18:5:1 6:18:6:0 6:18:7:1 6:18:8:0 6:18:9:0 6:18:10:6 6:18:11:4 6:18:12:0 6:18:13:12 6:18:14:8 6:18:15:6 6:18:16:0 6:18:17:2 6:18:18:0 6:18:19:1 6:18:20:16 #6:19:0:6 6:19:1:0 6:19:2:0 6:19:3:0 6:19:4:0 6:19:5:1 6:19:6:0 6:19:7:6 6:19:8:0 6:19:9:0 6:19:10:6 6:19:11:2 6:19:12:0 6:19:13:7 6:19:14:6 6:19:15:6 6:19:16:0 6:19:17:12 6:19:18:0 6:19:19:6 6:19:20:16 #6:20:0:6 6:20:1:0 6:20:2:0 6:20:3:0 6:20:4:0 6:20:5:1 6:20:6:0 6:20:7:1 6:20:8:0 6:20:9:0 6:20:10:6 6:20:11:1 6:20:12:0 6:20:13:3 6:20:14:8 6:20:15:6 6:20:16:0 6:20:17:4 6:20:18:0 6:20:19:17 6:20:20:16 #7:0:0:7 7:0:1:0 7:0:2:1 7:0:3:1 7:0:4:1 7:0:5:1 7:0:6:1 7:0:7:1 7:0:8:1 7:0:9:1 7:0:10:1 7:0:11:1 7:0:12:1 7:0:13:1 7:0:14:1 7:0:15:1 7:0:16:1 7:0:17:1 7:0:18:1 7:0:19:1 7:0:20:1 #7:1:0:7 7:1:1:0 7:1:2:1 7:1:3:1 7:1:4:3 7:1:5:2 7:1:6:1 7:1:7:0 7:1:8:7 7:1:9:7 7:1:10:7 7:1:11:7 7:1:12:7 7:1:13:7 7:1:14:7 7:1:15:7 7:1:16:7 7:1:17:7 7:1:18:7 7:1:19:7 7:1:20:7 #7:2:0:7 7:2:1:0 7:2:2:1 7:2:3:1 7:2:4:1 7:2:5:4 7:2:6:1 7:2:7:0 7:2:8:1 7:2:9:4 7:2:10:9 7:2:11:5 7:2:12:1 7:2:13:10 7:2:14:7 7:2:15:4 7:2:16:1 7:2:17:15 7:2:18:13 7:2:19:11 7:2:20:9 #7:3:0:7 7:3:1:0 7:3:2:1 7:3:3:1 7:3:4:3 7:3:5:3 7:3:6:1 7:3:7:0 7:3:8:7 7:3:9:1 7:3:10:3 7:3:11:2 7:3:12:7 7:3:13:5 7:3:14:7 7:3:15:13 7:3:16:7 7:3:17:3 7:3:18:1 7:3:19:1 7:3:20:3 #7:4:0:7 7:4:1:0 7:4:2:1 7:4:3:1 7:4:4:1 7:4:5:1 7:4:6:1 7:4:7:0 7:4:8:1 7:4:9:7 7:4:10:1 7:4:11:3 7:4:12:1 7:4:13:9 7:4:14:7 7:4:15:1 7:4:16:1 7:4:17:4 7:4:18:7 7:4:19:7 7:4:20:1 #7:5:0:7 7:5:1:0 7:5:2:1 7:5:3:1 7:5:4:3 7:5:5:2 7:5:6:1 7:5:7:0 7:5:8:7 7:5:9:4 7:5:10:7 7:5:11:10 7:5:12:7 7:5:13:11 7:5:14:7 7:5:15:7 7:5:16:7 7:5:17:11 7:5:18:13 7:5:19:11 7:5:20:7 #7:6:0:7 7:6:1:0 7:6:2:1 7:6:3:1 7:6:4:1 7:6:5:4 7:6:6:1 7:6:7:0 7:6:8:1 7:6:9:1 7:6:10:9 7:6:11:4 7:6:12:1 7:6:13:12 7:6:14:7 7:6:15:4 7:6:16:1 7:6:17:9 7:6:18:1 7:6:19:1 7:6:20:9 #7:7:0:7 7:7:1:0 7:7:2:1 7:7:3:1 7:7:4:3 7:7:5:3 7:7:6:1 7:7:7:0 7:7:8:7 7:7:9:7 7:7:10:3 7:7:11:6 7:7:12:7 7:7:13:6 7:7:14:7 7:7:15:13 7:7:16:7 7:7:17:12 7:7:18:7 7:7:19:7 7:7:20:3 #7:8:0:7 7:8:1:0 7:8:2:1 7:8:3:1 7:8:4:1 7:8:5:1 7:8:6:1 7:8:7:0 7:8:8:1 7:8:9:4 7:8:10:1 7:8:11:9 7:8:12:1 7:8:13:3 7:8:14:7 7:8:15:1 7:8:16:1 7:8:17:16 7:8:18:13 7:8:19:11 7:8:20:1 #7:9:0:7 7:9:1:0 7:9:2:1 7:9:3:1 7:9:4:3 7:9:5:2 7:9:6:1 7:9:7:0 7:9:8:7 7:9:9:1 7:9:10:7 7:9:11:8 7:9:12:7 7:9:13:8 7:9:14:7 7:9:15:7 7:9:16:7 7:9:17:10 7:9:18:1 7:9:19:1 7:9:20:7 #7:10:0:7 7:10:1:0 7:10:2:1 7:10:3:1 7:10:4:1 7:10:5:4 7:10:6:1 7:10:7:0 7:10:8:1 7:10:9:7 7:10:10:9 7:10:11:1 7:10:12:1 7:10:13:4 7:10:14:7 7:10:15:4 7:10:16:1 7:10:17:2 7:10:18:7 7:10:19:7 7:10:20:9 #7:11:0:7 7:11:1:0 7:11:2:1 7:11:3:1 7:11:4:3 7:11:5:3 7:11:6:1 7:11:7:0 7:11:8:7 7:11:9:4 7:11:10:3 7:11:11:7 7:11:12:7 7:11:13:2 7:11:14:7 7:11:15:13 7:11:16:7 7:11:17:14 7:11:18:13 7:11:19:11 7:11:20:3 #7:12:0:7 7:12:1:0 7:12:2:1 7:12:3:1 7:12:4:1 7:12:5:1 7:12:6:1 7:12:7:0 7:12:8:1 7:12:9:1 7:12:10:1 7:12:11:5 7:12:12:1 7:12:13:1 7:12:14:7 7:12:15:1 7:12:16:1 7:12:17:13 7:12:18:1 7:12:19:1 7:12:20:1 #7:13:0:7 7:13:1:0 7:13:2:1 7:13:3:1 7:13:4:3 7:13:5:2 7:13:6:1 7:13:7:0 7:13:8:7 7:13:9:7 7:13:10:7 7:13:11:2 7:13:12:7 7:13:13:7 7:13:14:7 7:13:15:7 7:13:16:7 7:13:17:6 7:13:18:7 7:13:19:7 7:13:20:7 #7:14:0:7 7:14:1:0 7:14:2:1 7:14:3:1 7:14:4:1 7:14:5:4 7:14:6:1 7:14:7:0 7:14:8:1 7:14:9:4 7:14:10:9 7:14:11:3 7:14:12:1 7:14:13:10 7:14:14:7 7:14:15:4 7:14:16:1 7:14:17:8 7:14:18:13 7:14:19:11 7:14:20:9 #7:15:0:7 7:15:1:0 7:15:2:1 7:15:3:1 7:15:4:3 7:15:5:3 7:15:6:1 7:15:7:0 7:15:8:7 7:15:9:1 7:15:10:3 7:15:11:10 7:15:12:7 7:15:13:5 7:15:14:7 7:15:15:13 7:15:16:7 7:15:17:5 7:15:18:1 7:15:19:1 7:15:20:3 #7:16:0:7 7:16:1:0 7:16:2:1 7:16:3:1 7:16:4:1 7:16:5:1 7:16:6:1 7:16:7:0 7:16:8:1 7:16:9:7 7:16:10:1 7:16:11:4 7:16:12:1 7:16:13:9 7:16:14:7 7:16:15:1 7:16:16:1 7:16:17:1 7:16:18:7 7:16:19:7 7:16:20:1 #7:17:0:7 7:17:1:0 7:17:2:1 7:17:3:1 7:17:4:3 7:17:5:2 7:17:6:1 7:17:7:0 7:17:8:7 7:17:9:4 7:17:10:7 7:17:11:6 7:17:12:7 7:17:13:11 7:17:14:7 7:17:15:7 7:17:16:7 7:17:17:7 7:17:18:13 7:17:19:11 7:17:20:7 #7:18:0:7 7:18:1:0 7:18:2:1 7:18:3:1 7:18:4:1 7:18:5:4 7:18:6:1 7:18:7:0 7:18:8:1 7:18:9:1 7:18:10:9 7:18:11:9 7:18:12:1 7:18:13:12 7:18:14:7 7:18:15:4 7:18:16:1 7:18:17:15 7:18:18:1 7:18:19:1 7:18:20:9 #7:19:0:7 7:19:1:0 7:19:2:1 7:19:3:1 7:19:4:3 7:19:5:3 7:19:6:1 7:19:7:0 7:19:8:7 7:19:9:7 7:19:10:3 7:19:11:8 7:19:12:7 7:19:13:6 7:19:14:7 7:19:15:13 7:19:16:7 7:19:17:3 7:19:18:7 7:19:19:7 7:19:20:3 #7:20:0:7 7:20:1:0 7:20:2:1 7:20:3:1 7:20:4:1 7:20:5:1 7:20:6:1 7:20:7:0 7:20:8:1 7:20:9:4 7:20:10:1 7:20:11:1 7:20:12:1 7:20:13:3 7:20:14:7 7:20:15:1 7:20:16:1 7:20:17:4 7:20:18:13 7:20:19:11 7:20:20:1 #8:0:0:8 8:0:1:0 8:0:2:1 8:0:3:1 8:0:4:1 8:0:5:1 8:0:6:1 8:0:7:1 8:0:8:1 8:0:9:1 8:0:10:1 8:0:11:1 8:0:12:1 8:0:13:1 8:0:14:1 8:0:15:1 8:0:16:1 8:0:17:1 8:0:18:1 8:0:19:1 8:0:20:1 #8:1:0:8 8:1:1:0 8:1:2:0 8:1:3:2 8:1:4:0 8:1:5:3 8:1:6:2 8:1:7:1 8:1:8:0 8:1:9:8 8:1:10:8 8:1:11:8 8:1:12:8 8:1:13:8 8:1:14:8 8:1:15:8 8:1:16:8 8:1:17:8 8:1:18:8 8:1:19:8 8:1:20:8 #8:2:0:8 8:2:1:0 8:2:2:0 8:2:3:1 8:2:4:0 8:2:5:4 8:2:6:4 8:2:7:1 8:2:8:0 8:2:9:1 8:2:10:4 8:2:11:9 8:2:12:4 8:2:13:12 8:2:14:8 8:2:15:4 8:2:16:0 8:2:17:13 8:2:18:10 8:2:19:7 8:2:20:4 #8:3:0:8 8:3:1:0 8:3:2:0 8:3:3:2 8:3:4:0 8:3:5:2 8:3:6:2 8:3:7:1 8:3:8:0 8:3:9:8 8:3:10:2 8:3:11:6 8:3:12:8 8:3:13:5 8:3:14:8 8:3:15:2 8:3:16:0 8:3:17:2 8:3:18:8 8:3:19:18 8:3:20:12 #8:4:0:8 8:4:1:0 8:4:2:0 8:4:3:1 8:4:4:0 8:4:5:1 8:4:6:4 8:4:7:1 8:4:8:0 8:4:9:1 8:4:10:6 8:4:11:4 8:4:12:4 8:4:13:1 8:4:14:8 8:4:15:1 8:4:16:0 8:4:17:16 8:4:18:10 8:4:19:11 8:4:20:16 #8:5:0:8 8:5:1:0 8:5:2:0 8:5:3:2 8:5:4:0 8:5:5:3 8:5:6:2 8:5:7:1 8:5:8:0 8:5:9:8 8:5:10:8 8:5:11:10 8:5:12:8 8:5:13:8 8:5:14:8 8:5:15:8 8:5:16:0 8:5:17:9 8:5:18:8 8:5:19:12 8:5:20:8 #8:6:0:8 8:6:1:0 8:6:2:0 8:6:3:1 8:6:4:0 8:6:5:4 8:6:6:4 8:6:7:1 8:6:8:0 8:6:9:1 8:6:10:4 8:6:11:3 8:6:12:4 8:6:13:12 8:6:14:8 8:6:15:4 8:6:16:0 8:6:17:4 8:6:18:10 8:6:19:1 8:6:20:4 #8:7:0:8 8:7:1:0 8:7:2:0 8:7:3:2 8:7:4:0 8:7:5:2 8:7:6:2 8:7:7:1 8:7:8:0 8:7:9:8 8:7:10:2 8:7:11:2 8:7:12:8 8:7:13:5 8:7:14:8 8:7:15:2 8:7:16:0 8:7:17:15 8:7:18:8 8:7:19:8 8:7:20:12 #8:8:0:8 8:8:1:0 8:8:2:0 8:8:3:1 8:8:4:0 8:8:5:1 8:8:6:4 8:8:7:1 8:8:8:0 8:8:9:1 8:8:10:6 8:8:11:5 8:8:12:4 8:8:13:1 8:8:14:8 8:8:15:1 8:8:16:0 8:8:17:1 8:8:18:10 8:8:19:7 8:8:20:16 #8:9:0:8 8:9:1:0 8:9:2:0 8:9:3:2 8:9:4:0 8:9:5:3 8:9:6:2 8:9:7:1 8:9:8:0 8:9:9:8 8:9:10:8 8:9:11:7 8:9:12:8 8:9:13:8 8:9:14:8 8:9:15:8 8:9:16:0 8:9:17:8 8:9:18:8 8:9:19:18 8:9:20:8 #8:10:0:8 8:10:1:0 8:10:2:0 8:10:3:1 8:10:4:0 8:10:5:4 8:10:6:4 8:10:7:1 8:10:8:0 8:10:9:1 8:10:10:4 8:10:11:1 8:10:12:4 8:10:13:12 8:10:14:8 8:10:15:4 8:10:16:0 8:10:17:13 8:10:18:10 8:10:19:11 8:10:20:4 #8:11:0:8 8:11:1:0 8:11:2:0 8:11:3:2 8:11:4:0 8:11:5:2 8:11:6:2 8:11:7:1 8:11:8:0 8:11:9:8 8:11:10:2 8:11:11:8 8:11:12:8 8:11:13:5 8:11:14:8 8:11:15:2 8:11:16:0 8:11:17:2 8:11:18:8 8:11:19:12 8:11:20:12 #8:12:0:8 8:12:1:0 8:12:2:0 8:12:3:1 8:12:4:0 8:12:5:1 8:12:6:4 8:12:7:1 8:12:8:0 8:12:9:1 8:12:10:6 8:12:11:9 8:12:12:4 8:12:13:1 8:12:14:8 8:12:15:1 8:12:16:0 8:12:17:16 8:12:18:10 8:12:19:1 8:12:20:16 #8:13:0:8 8:13:1:0 8:13:2:0 8:13:3:2 8:13:4:0 8:13:5:3 8:13:6:2 8:13:7:1 8:13:8:0 8:13:9:8 8:13:10:8 8:13:11:6 8:13:12:8 8:13:13:8 8:13:14:8 8:13:15:8 8:13:16:0 8:13:17:9 8:13:18:8 8:13:19:8 8:13:20:8 #8:14:0:8 8:14:1:0 8:14:2:0 8:14:3:1 8:14:4:0 8:14:5:4 8:14:6:4 8:14:7:1 8:14:8:0 8:14:9:1 8:14:10:4 8:14:11:4 8:14:12:4 8:14:13:12 8:14:14:8 8:14:15:4 8:14:16:0 8:14:17:4 8:14:18:10 8:14:19:7 8:14:20:4 #8:15:0:8 8:15:1:0 8:15:2:0 8:15:3:2 8:15:4:0 8:15:5:2 8:15:6:2 8:15:7:1 8:15:8:0 8:15:9:8 8:15:10:2 8:15:11:10 8:15:12:8 8:15:13:5 8:15:14:8 8:15:15:2 8:15:16:0 8:15:17:15 8:15:18:8 8:15:19:18 8:15:20:12 #8:16:0:8 8:16:1:0 8:16:2:0 8:16:3:1 8:16:4:0 8:16:5:1 8:16:6:4 8:16:7:1 8:16:8:0 8:16:9:1 8:16:10:6 8:16:11:3 8:16:12:4 8:16:13:1 8:16:14:8 8:16:15:1 8:16:16:0 8:16:17:1 8:16:18:10 8:16:19:11 8:16:20:16 #8:17:0:8 8:17:1:0 8:17:2:0 8:17:3:2 8:17:4:0 8:17:5:3 8:17:6:2 8:17:7:1 8:17:8:0 8:17:9:8 8:17:10:8 8:17:11:2 8:17:12:8 8:17:13:8 8:17:14:8 8:17:15:8 8:17:16:0 8:17:17:8 8:17:18:8 8:17:19:12 8:17:20:8 #8:18:0:8 8:18:1:0 8:18:2:0 8:18:3:1 8:18:4:0 8:18:5:4 8:18:6:4 8:18:7:1 8:18:8:0 8:18:9:1 8:18:10:4 8:18:11:5 8:18:12:4 8:18:13:12 8:18:14:8 8:18:15:4 8:18:16:0 8:18:17:13 8:18:18:10 8:18:19:1 8:18:20:4 #8:19:0:8 8:19:1:0 8:19:2:0 8:19:3:2 8:19:4:0 8:19:5:2 8:19:6:2 8:19:7:1 8:19:8:0 8:19:9:8 8:19:10:2 8:19:11:7 8:19:12:8 8:19:13:5 8:19:14:8 8:19:15:2 8:19:16:0 8:19:17:2 8:19:18:8 8:19:19:8 8:19:20:12 #8:20:0:8 8:20:1:0 8:20:2:0 8:20:3:1 8:20:4:0 8:20:5:1 8:20:6:4 8:20:7:1 8:20:8:0 8:20:9:1 8:20:10:6 8:20:11:1 8:20:12:4 8:20:13:1 8:20:14:8 8:20:15:1 8:20:16:0 8:20:17:16 8:20:18:10 8:20:19:7 8:20:20:16 #9:0:0:9 9:0:1:0 9:0:2:1 9:0:3:1 9:0:4:1 9:0:5:1 9:0:6:1 9:0:7:1 9:0:8:1 9:0:9:1 9:0:10:1 9:0:11:1 9:0:12:1 9:0:13:1 9:0:14:1 9:0:15:1 9:0:16:1 9:0:17:1 9:0:18:1 9:0:19:1 9:0:20:1 #9:1:0:9 9:1:1:0 9:1:2:1 9:1:3:0 9:1:4:1 9:1:5:4 9:1:6:3 9:1:7:2 9:1:8:1 9:1:9:0 9:1:10:9 9:1:11:9 9:1:12:9 9:1:13:9 9:1:14:9 9:1:15:9 9:1:16:9 9:1:17:9 9:1:18:9 9:1:19:9 9:1:20:9 #9:2:0:9 9:2:1:0 9:2:2:1 9:2:3:0 9:2:4:1 9:2:5:1 9:2:6:3 9:2:7:4 9:2:8:1 9:2:9:0 9:2:10:1 9:2:11:4 9:2:12:9 9:2:13:3 9:2:14:11 9:2:15:6 9:2:16:1 9:2:17:13 9:2:18:9 9:2:19:5 9:2:20:1 #9:3:0:9 9:3:1:0 9:3:2:1 9:3:3:0 9:3:4:1 9:3:5:4 9:3:6:3 9:3:7:1 9:3:8:1 9:3:9:0 9:3:10:9 9:3:11:3 9:3:12:9 9:3:13:1 9:3:14:1 9:3:15:9 9:3:16:9 9:3:17:15 9:3:18:9 9:3:19:7 9:3:20:9 #9:4:0:9 9:4:1:0 9:4:2:1 9:4:3:0 9:4:4:1 9:4:5:1 9:4:6:3 9:4:7:2 9:4:8:1 9:4:9:0 9:4:10:1 9:4:11:5 9:4:12:9 9:4:13:9 9:4:14:9 9:4:15:6 9:4:16:1 9:4:17:16 9:4:18:9 9:4:19:6 9:4:20:1 #9:5:0:9 9:5:1:0 9:5:2:1 9:5:3:0 9:5:4:1 9:5:5:4 9:5:6:3 9:5:7:4 9:5:8:1 9:5:9:0 9:5:10:9 9:5:11:1 9:5:12:9 9:5:13:3 9:5:14:11 9:5:15:9 9:5:16:9 9:5:17:8 9:5:18:9 9:5:19:16 9:5:20:9 #9:6:0:9 9:6:1:0 9:6:2:1 9:6:3:0 9:6:4:1 9:6:5:1 9:6:6:3 9:6:7:1 9:6:8:1 9:6:9:0 9:6:10:1 9:6:11:9 9:6:12:9 9:6:13:1 9:6:14:1 9:6:15:6 9:6:16:1 9:6:17:4 9:6:18:9 9:6:19:11 9:6:20:1 #9:7:0:9 9:7:1:0 9:7:2:1 9:7:3:0 9:7:4:1 9:7:5:4 9:7:6:3 9:7:7:2 9:7:8:1 9:7:9:0 9:7:10:9 9:7:11:4 9:7:12:9 9:7:13:9 9:7:14:9 9:7:15:9 9:7:16:9 9:7:17:2 9:7:18:9 9:7:19:4 9:7:20:9 #9:8:0:9 9:8:1:0 9:8:2:1 9:8:3:0 9:8:4:1 9:8:5:1 9:8:6:3 9:8:7:4 9:8:8:1 9:8:9:0 9:8:10:1 9:8:11:3 9:8:12:9 9:8:13:3 9:8:14:11 9:8:15:6 9:8:16:1 9:8:17:1 9:8:18:9 9:8:19:17 9:8:20:1 #9:9:0:9 9:9:1:0 9:9:2:1 9:9:3:0 9:9:4:1 9:9:5:4 9:9:6:3 9:9:7:1 9:9:8:1 9:9:9:0 9:9:10:9 9:9:11:5 9:9:12:9 9:9:13:1 9:9:14:1 9:9:15:9 9:9:16:9 9:9:17:9 9:9:18:9 9:9:19:1 9:9:20:9 #9:10:0:9 9:10:1:0 9:10:2:1 9:10:3:0 9:10:4:1 9:10:5:1 9:10:6:3 9:10:7:2 9:10:8:1 9:10:9:0 9:10:10:1 9:10:11:1 9:10:12:9 9:10:13:9 9:10:14:9 9:10:15:6 9:10:16:1 9:10:17:13 9:10:18:9 9:10:19:9 9:10:20:1 #9:11:0:9 9:11:1:0 9:11:2:1 9:11:3:0 9:11:4:1 9:11:5:4 9:11:6:3 9:11:7:4 9:11:8:1 9:11:9:0 9:11:10:9 9:11:11:9 9:11:12:9 9:11:13:3 9:11:14:11 9:11:15:9 9:11:16:9 9:11:17:15 9:11:18:9 9:11:19:5 9:11:20:9 #9:12:0:9 9:12:1:0 9:12:2:1 9:12:3:0 9:12:4:1 9:12:5:1 9:12:6:3 9:12:7:1 9:12:8:1 9:12:9:0 9:12:10:1 9:12:11:4 9:12:12:9 9:12:13:1 9:12:14:1 9:12:15:6 9:12:16:1 9:12:17:16 9:12:18:9 9:12:19:7 9:12:20:1 #9:13:0:9 9:13:1:0 9:13:2:1 9:13:3:0 9:13:4:1 9:13:5:4 9:13:6:3 9:13:7:2 9:13:8:1 9:13:9:0 9:13:10:9 9:13:11:3 9:13:12:9 9:13:13:9 9:13:14:9 9:13:15:9 9:13:16:9 9:13:17:8 9:13:18:9 9:13:19:6 9:13:20:9 #9:14:0:9 9:14:1:0 9:14:2:1 9:14:3:0 9:14:4:1 9:14:5:1 9:14:6:3 9:14:7:4 9:14:8:1 9:14:9:0 9:14:10:1 9:14:11:5 9:14:12:9 9:14:13:3 9:14:14:11 9:14:15:6 9:14:16:1 9:14:17:4 9:14:18:9 9:14:19:16 9:14:20:1 #9:15:0:9 9:15:1:0 9:15:2:1 9:15:3:0 9:15:4:1 9:15:5:4 9:15:6:3 9:15:7:1 9:15:8:1 9:15:9:0 9:15:10:9 9:15:11:1 9:15:12:9 9:15:13:1 9:15:14:1 9:15:15:9 9:15:16:9 9:15:17:2 9:15:18:9 9:15:19:11 9:15:20:9 #9:16:0:9 9:16:1:0 9:16:2:1 9:16:3:0 9:16:4:1 9:16:5:1 9:16:6:3 9:16:7:2 9:16:8:1 9:16:9:0 9:16:10:1 9:16:11:9 9:16:12:9 9:16:13:9 9:16:14:9 9:16:15:6 9:16:16:1 9:16:17:1 9:16:18:9 9:16:19:4 9:16:20:1 #9:17:0:9 9:17:1:0 9:17:2:1 9:17:3:0 9:17:4:1 9:17:5:4 9:17:6:3 9:17:7:4 9:17:8:1 9:17:9:0 9:17:10:9 9:17:11:4 9:17:12:9 9:17:13:3 9:17:14:11 9:17:15:9 9:17:16:9 9:17:17:9 9:17:18:9 9:17:19:17 9:17:20:9 #9:18:0:9 9:18:1:0 9:18:2:1 9:18:3:0 9:18:4:1 9:18:5:1 9:18:6:3 9:18:7:1 9:18:8:1 9:18:9:0 9:18:10:1 9:18:11:3 9:18:12:9 9:18:13:1 9:18:14:1 9:18:15:6 9:18:16:1 9:18:17:13 9:18:18:9 9:18:19:1 9:18:20:1 #9:19:0:9 9:19:1:0 9:19:2:1 9:19:3:0 9:19:4:1 9:19:5:4 9:19:6:3 9:19:7:2 9:19:8:1 9:19:9:0 9:19:10:9 9:19:11:5 9:19:12:9 9:19:13:9 9:19:14:9 9:19:15:9 9:19:16:9 9:19:17:15 9:19:18:9 9:19:19:9 9:19:20:9 #9:20:0:9 9:20:1:0 9:20:2:1 9:20:3:0 9:20:4:1 9:20:5:1 9:20:6:3 9:20:7:4 9:20:8:1 9:20:9:0 9:20:10:1 9:20:11:1 9:20:12:9 9:20:13:3 9:20:14:11 9:20:15:6 9:20:16:1 9:20:17:16 9:20:18:9 9:20:19:5 9:20:20:1 #10:0:0:10 10:0:1:0 10:0:2:1 10:0:3:1 10:0:4:1 10:0:5:1 10:0:6:1 10:0:7:1 10:0:8:1 10:0:9:1 10:0:10:1 10:0:11:1 10:0:12:1 10:0:13:1 10:0:14:1 10:0:15:1 10:0:16:1 10:0:17:1 10:0:18:1 10:0:19:1 10:0:20:1 #10:1:0:10 10:1:1:0 10:1:2:0 10:1:3:1 10:1:4:2 10:1:5:0 10:1:6:4 10:1:7:3 10:1:8:2 10:1:9:1 10:1:10:0 10:1:11:10 10:1:12:10 10:1:13:10 10:1:14:10 10:1:15:10 10:1:16:10 10:1:17:10 10:1:18:10 10:1:19:10 10:1:20:10 #10:2:0:10 10:2:1:0 10:2:2:0 10:2:3:1 10:2:4:0 10:2:5:0 10:2:6:4 10:2:7:2 10:2:8:4 10:2:9:1 10:2:10:0 10:2:11:1 10:2:12:4 10:2:13:9 10:2:14:2 10:2:15:10 10:2:16:4 10:2:17:15 10:2:18:10 10:2:19:5 10:2:20:0 #10:3:0:10 10:3:1:0 10:3:2:0 10:3:3:1 10:3:4:0 10:3:5:0 10:3:6:4 10:3:7:6 10:3:8:0 10:3:9:1 10:3:10:0 10:3:11:10 10:3:12:4 10:3:13:12 10:3:14:6 10:3:15:10 10:3:16:8 10:3:17:14 10:3:18:10 10:3:19:12 10:3:20:0 #10:4:0:10 10:4:1:0 10:4:2:0 10:4:3:1 10:4:4:0 10:4:5:0 10:4:6:4 10:4:7:4 10:4:8:0 10:4:9:1 10:4:10:0 10:4:11:1 10:4:12:4 10:4:13:3 10:4:14:4 10:4:15:10 10:4:16:0 10:4:17:4 10:4:18:10 10:4:19:6 10:4:20:0 #10:5:0:10 10:5:1:0 10:5:2:0 10:5:3:1 10:5:4:0 10:5:5:0 10:5:6:4 10:5:7:5 10:5:8:0 10:5:9:1 10:5:10:0 10:5:11:10 10:5:12:4 10:5:13:4 10:5:14:12 10:5:15:10 10:5:16:0 10:5:17:6 10:5:18:10 10:5:19:3 10:5:20:0 #10:6:0:10 10:6:1:0 10:6:2:0 10:6:3:1 10:6:4:0 10:6:5:0 10:6:6:4 10:6:7:1 10:6:8:0 10:6:9:1 10:6:10:0 10:6:11:1 10:6:12:4 10:6:13:1 10:6:14:8 10:6:15:10 10:6:16:0 10:6:17:9 10:6:18:10 10:6:19:11 10:6:20:0 #10:7:0:10 10:7:1:0 10:7:2:0 10:7:3:1 10:7:4:0 10:7:5:0 10:7:6:4 10:7:7:3 10:7:8:0 10:7:9:1 10:7:10:0 10:7:11:10 10:7:12:4 10:7:13:10 10:7:14:10 10:7:15:10 10:7:16:0 10:7:17:5 10:7:18:10 10:7:19:15 10:7:20:0 #10:8:0:10 10:8:1:0 10:8:2:0 10:8:3:1 10:8:4:0 10:8:5:0 10:8:6:4 10:8:7:2 10:8:8:0 10:8:9:1 10:8:10:0 10:8:11:1 10:8:12:4 10:8:13:9 10:8:14:2 10:8:15:10 10:8:16:0 10:8:17:16 10:8:18:10 10:8:19:17 10:8:20:0 #10:9:0:10 10:9:1:0 10:9:2:0 10:9:3:1 10:9:4:0 10:9:5:0 10:9:6:4 10:9:7:6 10:9:8:0 10:9:9:1 10:9:10:0 10:9:11:10 10:9:12:4 10:9:13:12 10:9:14:6 10:9:15:10 10:9:16:0 10:9:17:7 10:9:18:10 10:9:19:18 10:9:20:0 #10:10:0:10 10:10:1:0 10:10:2:0 10:10:3:1 10:10:4:0 10:10:5:0 10:10:6:4 10:10:7:4 10:10:8:0 10:10:9:1 10:10:10:0 10:10:11:1 10:10:12:4 10:10:13:3 10:10:14:4 10:10:15:10 10:10:16:0 10:10:17:2 10:10:18:10 10:10:19:9 10:10:20:0 #10:11:0:10 10:11:1:0 10:11:2:0 10:11:3:1 10:11:4:0 10:11:5:0 10:11:6:4 10:11:7:5 10:11:8:0 10:11:9:1 10:11:10:0 10:11:11:10 10:11:12:4 10:11:13:4 10:11:14:12 10:11:15:10 10:11:16:0 10:11:17:3 10:11:18:10 10:11:19:14 10:11:20:0 #10:12:0:10 10:12:1:0 10:12:2:0 10:12:3:1 10:12:4:0 10:12:5:0 10:12:6:4 10:12:7:1 10:12:8:0 10:12:9:1 10:12:10:0 10:12:11:1 10:12:12:4 10:12:13:1 10:12:14:8 10:12:15:10 10:12:16:0 10:12:17:13 10:12:18:10 10:12:19:7 10:12:20:0 #10:13:0:10 10:13:1:0 10:13:2:0 10:13:3:1 10:13:4:0 10:13:5:0 10:13:6:4 10:13:7:3 10:13:8:0 10:13:9:1 10:13:10:0 10:13:11:10 10:13:12:4 10:13:13:10 10:13:14:10 10:13:15:10 10:13:16:0 10:13:17:11 10:13:18:10 10:13:19:13 10:13:20:0 #10:14:0:10 10:14:1:0 10:14:2:0 10:14:3:1 10:14:4:0 10:14:5:0 10:14:6:4 10:14:7:2 10:14:8:0 10:14:9:1 10:14:10:0 10:14:11:1 10:14:12:4 10:14:13:9 10:14:14:2 10:14:15:10 10:14:16:0 10:14:17:8 10:14:18:10 10:14:19:16 10:14:20:0 #10:15:0:10 10:15:1:0 10:15:2:0 10:15:3:1 10:15:4:0 10:15:5:0 10:15:6:4 10:15:7:6 10:15:8:0 10:15:9:1 10:15:10:0 10:15:11:10 10:15:12:4 10:15:13:12 10:15:14:6 10:15:15:10 10:15:16:0 10:15:17:12 10:15:18:10 10:15:19:8 10:15:20:0 #10:16:0:10 10:16:1:0 10:16:2:0 10:16:3:1 10:16:4:0 10:16:5:0 10:16:6:4 10:16:7:4 10:16:8:0 10:16:9:1 10:16:10:0 10:16:11:1 10:16:12:4 10:16:13:3 10:16:14:4 10:16:15:10 10:16:16:0 10:16:17:1 10:16:18:10 10:16:19:4 10:16:20:0 #10:17:0:10 10:17:1:0 10:17:2:0 10:17:3:1 10:17:4:0 10:17:5:0 10:17:6:4 10:17:7:5 10:17:8:0 10:17:9:1 10:17:10:0 10:17:11:10 10:17:12:4 10:17:13:4 10:17:14:12 10:17:15:10 10:17:16:0 10:17:17:10 10:17:18:10 10:17:19:2 10:17:20:0 #10:18:0:10 10:18:1:0 10:18:2:0 10:18:3:1 10:18:4:0 10:18:5:0 10:18:6:4 10:18:7:1 10:18:8:0 10:18:9:1 10:18:10:0 10:18:11:1 10:18:12:4 10:18:13:1 10:18:14:8 10:18:15:10 10:18:16:0 10:18:17:15 10:18:18:10 10:18:19:1 10:18:20:0 #10:19:0:10 10:19:1:0 10:19:2:0 10:19:3:1 10:19:4:0 10:19:5:0 10:19:6:4 10:19:7:3 10:19:8:0 10:19:9:1 10:19:10:0 10:19:11:10 10:19:12:4 10:19:13:10 10:19:14:10 10:19:15:10 10:19:16:0 10:19:17:14 10:19:18:10 10:19:19:10 10:19:20:0 #10:20:0:10 10:20:1:0 10:20:2:0 10:20:3:1 10:20:4:0 10:20:5:0 10:20:6:4 10:20:7:2 10:20:8:0 10:20:9:1 10:20:10:0 10:20:11:1 10:20:12:4 10:20:13:9 10:20:14:2 10:20:15:10 10:20:16:0 10:20:17:4 10:20:18:10 10:20:19:5 10:20:20:0 #11:0:0:11 11:0:1:0 11:0:2:1 11:0:3:1 11:0:4:1 11:0:5:1 11:0:6:1 11:0:7:1 11:0:8:1 11:0:9:1 11:0:10:1 11:0:11:1 11:0:12:1 11:0:13:1 11:0:14:1 11:0:15:1 11:0:16:1 11:0:17:1 11:0:18:1 11:0:19:1 11:0:20:1 #11:1:0:11 11:1:1:0 11:1:2:1 11:1:3:2 11:1:4:3 11:1:5:1 11:1:6:5 11:1:7:4 11:1:8:3 11:1:9:2 11:1:10:1 11:1:11:0 11:1:12:11 11:1:13:11 11:1:14:11 11:1:15:11 11:1:16:11 11:1:17:11 11:1:18:11 11:1:19:11 11:1:20:11 #11:2:0:11 11:2:1:0 11:2:2:1 11:2:3:1 11:2:4:1 11:2:5:1 11:2:6:1 11:2:7:2 11:2:8:1 11:2:9:4 11:2:10:1 11:2:11:0 11:2:12:1 11:2:13:4 11:2:14:9 11:2:15:1 11:2:16:9 11:2:17:2 11:2:18:13 11:2:19:7 11:2:20:1 #11:3:0:11 11:3:1:0 11:3:2:1 11:3:3:2 11:3:4:3 11:3:5:1 11:3:6:5 11:3:7:1 11:3:8:3 11:3:9:8 11:3:10:1 11:3:11:0 11:3:12:11 11:3:13:5 11:3:14:1 11:3:15:11 11:3:16:3 11:3:17:5 11:3:18:17 11:3:19:1 11:3:20:11 #11:4:0:11 11:4:1:0 11:4:2:1 11:4:3:1 11:4:4:1 11:4:5:1 11:4:6:1 11:4:7:4 11:4:8:1 11:4:9:7 11:4:10:1 11:4:11:0 11:4:12:1 11:4:13:3 11:4:14:11 11:4:15:1 11:4:16:1 11:4:17:4 11:4:18:7 11:4:19:11 11:4:20:1 #11:5:0:11 11:5:1:0 11:5:2:1 11:5:3:2 11:5:4:3 11:5:5:1 11:5:6:5 11:5:7:2 11:5:8:3 11:5:9:5 11:5:10:1 11:5:11:0 11:5:12:11 11:5:13:7 11:5:14:9 11:5:15:11 11:5:16:11 11:5:17:10 11:5:18:5 11:5:19:7 11:5:20:11 #11:6:0:11 11:6:1:0 11:6:2:1 11:6:3:1 11:6:4:1 11:6:5:1 11:6:6:1 11:6:7:1 11:6:8:1 11:6:9:1 11:6:10:1 11:6:11:0 11:6:12:1 11:6:13:12 11:6:14:1 11:6:15:1 11:6:16:9 11:6:17:8 11:6:18:1 11:6:19:1 11:6:20:1 #11:7:0:11 11:7:1:0 11:7:2:1 11:7:3:2 11:7:4:3 11:7:5:1 11:7:6:5 11:7:7:4 11:7:8:3 11:7:9:2 11:7:10:1 11:7:11:0 11:7:12:11 11:7:13:2 11:7:14:11 11:7:15:11 11:7:16:3 11:7:17:3 11:7:18:11 11:7:19:11 11:7:20:11 #11:8:0:11 11:8:1:0 11:8:2:1 11:8:3:1 11:8:4:1 11:8:5:1 11:8:6:1 11:8:7:2 11:8:8:1 11:8:9:4 11:8:10:1 11:8:11:0 11:8:12:1 11:8:13:9 11:8:14:9 11:8:15:1 11:8:16:1 11:8:17:16 11:8:18:13 11:8:19:7 11:8:20:1 #11:9:0:11 11:9:1:0 11:9:2:1 11:9:3:2 11:9:4:3 11:9:5:1 11:9:6:5 11:9:7:1 11:9:8:3 11:9:9:8 11:9:10:1 11:9:11:0 11:9:12:11 11:9:13:8 11:9:14:1 11:9:15:11 11:9:16:11 11:9:17:6 11:9:18:17 11:9:19:1 11:9:20:11 #11:10:0:11 11:10:1:0 11:10:2:1 11:10:3:1 11:10:4:1 11:10:5:1 11:10:6:1 11:10:7:4 11:10:8:1 11:10:9:7 11:10:10:1 11:10:11:0 11:10:12:1 11:10:13:10 11:10:14:11 11:10:15:1 11:10:16:9 11:10:17:15 11:10:18:7 11:10:19:11 11:10:20:1 #11:11:0:11 11:11:1:0 11:11:2:1 11:11:3:2 11:11:4:3 11:11:5:1 11:11:6:5 11:11:7:2 11:11:8:3 11:11:9:5 11:11:10:1 11:11:11:0 11:11:12:11 11:11:13:6 11:11:14:9 11:11:15:11 11:11:16:3 11:11:17:12 11:11:18:5 11:11:19:7 11:11:20:11 #11:12:0:11 11:12:1:0 11:12:2:1 11:12:3:1 11:12:4:1 11:12:5:1 11:12:6:1 11:12:7:1 11:12:8:1 11:12:9:1 11:12:10:1 11:12:11:0 11:12:12:1 11:12:13:1 11:12:14:1 11:12:15:1 11:12:16:1 11:12:17:13 11:12:18:1 11:12:19:1 11:12:20:1 #11:13:0:11 11:13:1:0 11:13:2:1 11:13:3:2 11:13:4:3 11:13:5:1 11:13:6:5 11:13:7:4 11:13:8:3 11:13:9:2 11:13:10:1 11:13:11:0 11:13:12:11 11:13:13:11 11:13:14:11 11:13:15:11 11:13:16:11 11:13:17:7 11:13:18:11 11:13:19:11 11:13:20:11 #11:14:0:11 11:14:1:0 11:14:2:1 11:14:3:1 11:14:4:1 11:14:5:1 11:14:6:1 11:14:7:2 11:14:8:1 11:14:9:4 11:14:10:1 11:14:11:0 11:14:12:1 11:14:13:4 11:14:14:9 11:14:15:1 11:14:16:9 11:14:17:9 11:14:18:13 11:14:19:7 11:14:20:1 #11:15:0:11 11:15:1:0 11:15:2:1 11:15:3:2 11:15:4:3 11:15:5:1 11:15:6:5 11:15:7:1 11:15:8:3 11:15:9:8 11:15:10:1 11:15:11:0 11:15:12:11 11:15:13:5 11:15:14:1 11:15:15:11 11:15:16:3 11:15:17:14 11:15:18:17 11:15:19:1 11:15:20:11 #11:16:0:11 11:16:1:0 11:16:2:1 11:16:3:1 11:16:4:1 11:16:5:1 11:16:6:1 11:16:7:4 11:16:8:1 11:16:9:7 11:16:10:1 11:16:11:0 11:16:12:1 11:16:13:3 11:16:14:11 11:16:15:1 11:16:16:1 11:16:17:1 11:16:18:7 11:16:19:11 11:16:20:1 #11:17:0:11 11:17:1:0 11:17:2:1 11:17:3:2 11:17:4:3 11:17:5:1 11:17:6:5 11:17:7:2 11:17:8:3 11:17:9:5 11:17:10:1 11:17:11:0 11:17:12:11 11:17:13:7 11:17:14:9 11:17:15:11 11:17:16:11 11:17:17:11 11:17:18:5 11:17:19:7 11:17:20:11 #11:18:0:11 11:18:1:0 11:18:2:1 11:18:3:1 11:18:4:1 11:18:5:1 11:18:6:1 11:18:7:1 11:18:8:1 11:18:9:1 11:18:10:1 11:18:11:0 11:18:12:1 11:18:13:12 11:18:14:1 11:18:15:1 11:18:16:9 11:18:17:2 11:18:18:1 11:18:19:1 11:18:20:1 #11:19:0:11 11:19:1:0 11:19:2:1 11:19:3:2 11:19:4:3 11:19:5:1 11:19:6:5 11:19:7:4 11:19:8:3 11:19:9:2 11:19:10:1 11:19:11:0 11:19:12:11 11:19:13:2 11:19:14:11 11:19:15:11 11:19:16:3 11:19:17:5 11:19:18:11 11:19:19:11 11:19:20:11 #11:20:0:11 11:20:1:0 11:20:2:1 11:20:3:1 11:20:4:1 11:20:5:1 11:20:6:1 11:20:7:2 11:20:8:1 11:20:9:4 11:20:10:1 11:20:11:0 11:20:12:1 11:20:13:9 11:20:14:9 11:20:15:1 11:20:16:1 11:20:17:4 11:20:18:13 11:20:19:7 11:20:20:1 #12:0:0:12 12:0:1:0 12:0:2:1 12:0:3:1 12:0:4:1 12:0:5:1 12:0:6:1 12:0:7:1 12:0:8:1 12:0:9:1 12:0:10:1 12:0:11:1 12:0:12:1 12:0:13:1 12:0:14:1 12:0:15:1 12:0:16:1 12:0:17:1 12:0:18:1 12:0:19:1 12:0:20:1 #12:1:0:12 12:1:1:0 12:1:2:0 12:1:3:0 12:1:4:0 12:1:5:2 12:1:6:0 12:1:7:5 12:1:8:4 12:1:9:3 12:1:10:2 12:1:11:1 12:1:12:0 12:1:13:12 12:1:14:12 12:1:15:12 12:1:16:12 12:1:17:12 12:1:18:12 12:1:19:12 12:1:20:12 #12:2:0:12 12:2:1:0 12:2:2:0 12:2:3:0 12:2:4:0 12:2:5:4 12:2:6:0 12:2:7:4 12:2:8:0 12:2:9:0 12:2:10:4 12:2:11:1 12:2:12:0 12:2:13:1 12:2:14:4 12:2:15:9 12:2:16:0 12:2:17:8 12:2:18:0 12:2:19:11 12:2:20:4 #12:3:0:12 12:3:1:0 12:3:2:0 12:3:3:0 12:3:4:0 12:3:5:3 12:3:6:0 12:3:7:6 12:3:8:0 12:3:9:0 12:3:10:8 12:3:11:1 12:3:12:0 12:3:13:12 12:3:14:6 12:3:15:3 12:3:16:0 12:3:17:11 12:3:18:0 12:3:19:18 12:3:20:8 #12:4:0:12 12:4:1:0 12:4:2:0 12:4:3:0 12:4:4:0 12:4:5:1 12:4:6:0 12:4:7:2 12:4:8:0 12:4:9:0 12:4:10:6 12:4:11:1 12:4:12:0 12:4:13:1 12:4:14:2 12:4:15:6 12:4:16:0 12:4:17:13 12:4:18:0 12:4:19:7 12:4:20:16 #12:5:0:12 12:5:1:0 12:5:2:0 12:5:3:0 12:5:4:0 12:5:5:2 12:5:6:0 12:5:7:3 12:5:8:0 12:5:9:0 12:5:10:2 12:5:11:1 12:5:12:0 12:5:13:12 12:5:14:10 12:5:15:12 12:5:16:0 12:5:17:3 12:5:18:0 12:5:19:8 12:5:20:12 #12:6:0:12 12:6:1:0 12:6:2:0 12:6:3:0 12:6:4:0 12:6:5:4 12:6:6:0 12:6:7:1 12:6:8:0 12:6:9:0 12:6:10:4 12:6:11:1 12:6:12:0 12:6:13:1 12:6:14:8 12:6:15:9 12:6:16:0 12:6:17:2 12:6:18:0 12:6:19:1 12:6:20:4 #12:7:0:12 12:7:1:0 12:7:2:0 12:7:3:0 12:7:4:0 12:7:5:3 12:7:6:0 12:7:7:5 12:7:8:0 12:7:9:0 12:7:10:8 12:7:11:1 12:7:12:0 12:7:13:12 12:7:14:12 12:7:15:3 12:7:16:0 12:7:17:7 12:7:18:0 12:7:19:12 12:7:20:8 #12:8:0:12 12:8:1:0 12:8:2:0 12:8:3:0 12:8:4:0 12:8:5:1 12:8:6:0 12:8:7:4 12:8:8:0 12:8:9:0 12:8:10:6 12:8:11:1 12:8:12:0 12:8:13:1 12:8:14:4 12:8:15:6 12:8:16:0 12:8:17:16 12:8:18:0 12:8:19:11 12:8:20:16 #12:9:0:12 12:9:1:0 12:9:2:0 12:9:3:0 12:9:4:0 12:9:5:2 12:9:6:0 12:9:7:6 12:9:8:0 12:9:9:0 12:9:10:2 12:9:11:1 12:9:12:0 12:9:13:12 12:9:14:6 12:9:15:12 12:9:16:0 12:9:17:5 12:9:18:0 12:9:19:18 12:9:20:12 #12:10:0:12 12:10:1:0 12:10:2:0 12:10:3:0 12:10:4:0 12:10:5:4 12:10:6:0 12:10:7:2 12:10:8:0 12:10:9:0 12:10:10:4 12:10:11:1 12:10:12:0 12:10:13:1 12:10:14:2 12:10:15:9 12:10:16:0 12:10:17:9 12:10:18:0 12:10:19:7 12:10:20:4 #12:11:0:12 12:11:1:0 12:11:2:0 12:11:3:0 12:11:4:0 12:11:5:3 12:11:6:0 12:11:7:3 12:11:8:0 12:11:9:0 12:11:10:8 12:11:11:1 12:11:12:0 12:11:13:12 12:11:14:10 12:11:15:3 12:11:16:0 12:11:17:6 12:11:18:0 12:11:19:8 12:11:20:8 #12:12:0:12 12:12:1:0 12:12:2:0 12:12:3:0 12:12:4:0 12:12:5:1 12:12:6:0 12:12:7:1 12:12:8:0 12:12:9:0 12:12:10:6 12:12:11:1 12:12:12:0 12:12:13:1 12:12:14:8 12:12:15:6 12:12:16:0 12:12:17:4 12:12:18:0 12:12:19:1 12:12:20:16 #12:13:0:12 12:13:1:0 12:13:2:0 12:13:3:0 12:13:4:0 12:13:5:2 12:13:6:0 12:13:7:5 12:13:8:0 12:13:9:0 12:13:10:2 12:13:11:1 12:13:12:0 12:13:13:12 12:13:14:12 12:13:15:12 12:13:16:0 12:13:17:14 12:13:18:0 12:13:19:12 12:13:20:12 #12:14:0:12 12:14:1:0 12:14:2:0 12:14:3:0 12:14:4:0 12:14:5:4 12:14:6:0 12:14:7:4 12:14:8:0 12:14:9:0 12:14:10:4 12:14:11:1 12:14:12:0 12:14:13:1 12:14:14:4 12:14:15:9 12:14:16:0 12:14:17:15 12:14:18:0 12:14:19:11 12:14:20:4 #12:15:0:12 12:15:1:0 12:15:2:0 12:15:3:0 12:15:4:0 12:15:5:3 12:15:6:0 12:15:7:6 12:15:8:0 12:15:9:0 12:15:10:8 12:15:11:1 12:15:12:0 12:15:13:12 12:15:14:6 12:15:15:3 12:15:16:0 12:15:17:10 12:15:18:0 12:15:19:18 12:15:20:8 #12:16:0:12 12:16:1:0 12:16:2:0 12:16:3:0 12:16:4:0 12:16:5:1 12:16:6:0 12:16:7:2 12:16:8:0 12:16:9:0 12:16:10:6 12:16:11:1 12:16:12:0 12:16:13:1 12:16:14:2 12:16:15:6 12:16:16:0 12:16:17:1 12:16:18:0 12:16:19:7 12:16:20:16 #12:17:0:12 12:17:1:0 12:17:2:0 12:17:3:0 12:17:4:0 12:17:5:2 12:17:6:0 12:17:7:3 12:17:8:0 12:17:9:0 12:17:10:2 12:17:11:1 12:17:12:0 12:17:13:12 12:17:14:10 12:17:15:12 12:17:16:0 12:17:17:12 12:17:18:0 12:17:19:8 12:17:20:12 #12:18:0:12 12:18:1:0 12:18:2:0 12:18:3:0 12:18:4:0 12:18:5:4 12:18:6:0 12:18:7:1 12:18:8:0 12:18:9:0 12:18:10:4 12:18:11:1 12:18:12:0 12:18:13:1 12:18:14:8 12:18:15:9 12:18:16:0 12:18:17:8 12:18:18:0 12:18:19:1 12:18:20:4 #12:19:0:12 12:19:1:0 12:19:2:0 12:19:3:0 12:19:4:0 12:19:5:3 12:19:6:0 12:19:7:5 12:19:8:0 12:19:9:0 12:19:10:8 12:19:11:1 12:19:12:0 12:19:13:12 12:19:14:12 12:19:15:3 12:19:16:0 12:19:17:11 12:19:18:0 12:19:19:12 12:19:20:8 #12:20:0:12 12:20:1:0 12:20:2:0 12:20:3:0 12:20:4:0 12:20:5:1 12:20:6:0 12:20:7:4 12:20:8:0 12:20:9:0 12:20:10:6 12:20:11:1 12:20:12:0 12:20:13:1 12:20:14:4 12:20:15:6 12:20:16:0 12:20:17:13 12:20:18:0 12:20:19:11 12:20:20:16 #13:0:0:13 13:0:1:0 13:0:2:1 13:0:3:1 13:0:4:1 13:0:5:1 13:0:6:1 13:0:7:1 13:0:8:1 13:0:9:1 13:0:10:1 13:0:11:1 13:0:12:1 13:0:13:1 13:0:14:1 13:0:15:1 13:0:16:1 13:0:17:1 13:0:18:1 13:0:19:1 13:0:20:1 #13:1:0:13 13:1:1:0 13:1:2:1 13:1:3:1 13:1:4:1 13:1:5:3 13:1:6:1 13:1:7:6 13:1:8:5 13:1:9:4 13:1:10:3 13:1:11:2 13:1:12:1 13:1:13:0 13:1:14:13 13:1:15:13 13:1:16:13 13:1:17:13 13:1:18:13 13:1:19:13 13:1:20:13 #13:2:0:13 13:2:1:0 13:2:2:1 13:2:3:1 13:2:4:1 13:2:5:4 13:2:6:1 13:2:7:1 13:2:8:1 13:2:9:7 13:2:10:9 13:2:11:4 13:2:12:1 13:2:13:0 13:2:14:1 13:2:15:4 13:2:16:9 13:2:17:16 13:2:18:7 13:2:19:17 13:2:20:9 #13:3:0:13 13:3:1:0 13:3:2:1 13:3:3:1 13:3:4:1 13:3:5:2 13:3:6:1 13:3:7:6 13:3:8:5 13:3:9:1 13:3:10:7 13:3:11:8 13:3:12:1 13:3:13:0 13:3:14:13 13:3:15:7 13:3:16:5 13:3:17:4 13:3:18:1 13:3:19:12 13:3:20:17 #13:4:0:13 13:4:1:0 13:4:2:1 13:4:3:1 13:4:4:1 13:4:5:1 13:4:6:1 13:4:7:1 13:4:8:1 13:4:9:4 13:4:10:1 13:4:11:5 13:4:12:1 13:4:13:0 13:4:14:1 13:4:15:1 13:4:16:1 13:4:17:1 13:4:18:13 13:4:19:4 13:4:20:1 #13:5:0:13 13:5:1:0 13:5:2:1 13:5:3:1 13:5:4:1 13:5:5:3 13:5:6:1 13:5:7:6 13:5:8:5 13:5:9:7 13:5:10:3 13:5:11:10 13:5:12:1 13:5:13:0 13:5:14:13 13:5:15:13 13:5:16:13 13:5:17:13 13:5:18:7 13:5:19:14 13:5:20:13 #13:6:0:13 13:6:1:0 13:6:2:1 13:6:3:1 13:6:4:1 13:6:5:4 13:6:6:1 13:6:7:1 13:6:8:1 13:6:9:1 13:6:10:9 13:6:11:9 13:6:12:1 13:6:13:0 13:6:14:1 13:6:15:4 13:6:16:9 13:6:17:16 13:6:18:1 13:6:19:11 13:6:20:9 #13:7:0:13 13:7:1:0 13:7:2:1 13:7:3:1 13:7:4:1 13:7:5:2 13:7:6:1 13:7:7:6 13:7:8:5 13:7:9:4 13:7:10:7 13:7:11:7 13:7:12:1 13:7:13:0 13:7:14:13 13:7:15:7 13:7:16:5 13:7:17:4 13:7:18:13 13:7:19:10 13:7:20:17 #13:8:0:13 13:8:1:0 13:8:2:1 13:8:3:1 13:8:4:1 13:8:5:1 13:8:6:1 13:8:7:1 13:8:8:1 13:8:9:7 13:8:10:1 13:8:11:3 13:8:12:1 13:8:13:0 13:8:14:1 13:8:15:1 13:8:16:1 13:8:17:1 13:8:18:7 13:8:19:16 13:8:20:1 #13:9:0:13 13:9:1:0 13:9:2:1 13:9:3:1 13:9:4:1 13:9:5:3 13:9:6:1 13:9:7:6 13:9:8:5 13:9:9:1 13:9:10:3 13:9:11:6 13:9:12:1 13:9:13:0 13:9:14:13 13:9:15:13 13:9:16:13 13:9:17:13 13:9:18:1 13:9:19:18 13:9:20:13 #13:10:0:13 13:10:1:0 13:10:2:1 13:10:3:1 13:10:4:1 13:10:5:4 13:10:6:1 13:10:7:1 13:10:8:1 13:10:9:4 13:10:10:9 13:10:11:1 13:10:12:1 13:10:13:0 13:10:14:1 13:10:15:4 13:10:16:9 13:10:17:16 13:10:18:13 13:10:19:6 13:10:20:9 #13:11:0:13 13:11:1:0 13:11:2:1 13:11:3:1 13:11:4:1 13:11:5:2 13:11:6:1 13:11:7:6 13:11:8:5 13:11:9:7 13:11:10:7 13:11:11:2 13:11:12:1 13:11:13:0 13:11:14:13 13:11:15:7 13:11:16:5 13:11:17:4 13:11:18:7 13:11:19:2 13:11:20:17 #13:12:0:13 13:12:1:0 13:12:2:1 13:12:3:1 13:12:4:1 13:12:5:1 13:12:6:1 13:12:7:1 13:12:8:1 13:12:9:1 13:12:10:1 13:12:11:4 13:12:12:1 13:12:13:0 13:12:14:1 13:12:15:1 13:12:16:1 13:12:17:1 13:12:18:1 13:12:19:7 13:12:20:1 #13:13:0:13 13:13:1:0 13:13:2:1 13:13:3:1 13:13:4:1 13:13:5:3 13:13:6:1 13:13:7:6 13:13:8:5 13:13:9:4 13:13:10:3 13:13:11:8 13:13:12:1 13:13:13:0 13:13:14:13 13:13:15:13 13:13:16:13 13:13:17:13 13:13:18:13 13:13:19:15 13:13:20:13 #13:14:0:13 13:14:1:0 13:14:2:1 13:14:3:1 13:14:4:1 13:14:5:4 13:14:6:1 13:14:7:1 13:14:8:1 13:14:9:7 13:14:10:9 13:14:11:5 13:14:12:1 13:14:13:0 13:14:14:1 13:14:15:4 13:14:16:9 13:14:17:16 13:14:18:7 13:14:19:5 13:14:20:9 #13:15:0:13 13:15:1:0 13:15:2:1 13:15:3:1 13:15:4:1 13:15:5:2 13:15:6:1 13:15:7:6 13:15:8:5 13:15:9:1 13:15:10:7 13:15:11:10 13:15:12:1 13:15:13:0 13:15:14:13 13:15:15:7 13:15:16:5 13:15:17:4 13:15:18:1 13:15:19:8 13:15:20:17 #13:16:0:13 13:16:1:0 13:16:2:1 13:16:3:1 13:16:4:1 13:16:5:1 13:16:6:1 13:16:7:1 13:16:8:1 13:16:9:4 13:16:10:1 13:16:11:9 13:16:12:1 13:16:13:0 13:16:14:1 13:16:15:1 13:16:16:1 13:16:17:1 13:16:18:13 13:16:19:9 13:16:20:1 #13:17:0:13 13:17:1:0 13:17:2:1 13:17:3:1 13:17:4:1 13:17:5:3 13:17:6:1 13:17:7:6 13:17:8:5 13:17:9:7 13:17:10:3 13:17:11:7 13:17:12:1 13:17:13:0 13:17:14:13 13:17:15:13 13:17:16:13 13:17:17:13 13:17:18:7 13:17:19:3 13:17:20:13 #13:18:0:13 13:18:1:0 13:18:2:1 13:18:3:1 13:18:4:1 13:18:5:4 13:18:6:1 13:18:7:1 13:18:8:1 13:18:9:1 13:18:10:9 13:18:11:3 13:18:12:1 13:18:13:0 13:18:14:1 13:18:15:4 13:18:16:9 13:18:17:16 13:18:18:1 13:18:19:1 13:18:20:9 #13:19:0:13 13:19:1:0 13:19:2:1 13:19:3:1 13:19:4:1 13:19:5:2 13:19:6:1 13:19:7:6 13:19:8:5 13:19:9:4 13:19:10:7 13:19:11:6 13:19:12:1 13:19:13:0 13:19:14:13 13:19:15:7 13:19:16:5 13:19:17:4 13:19:18:13 13:19:19:13 13:19:20:17 #13:20:0:13 13:20:1:0 13:20:2:1 13:20:3:1 13:20:4:1 13:20:5:1 13:20:6:1 13:20:7:1 13:20:8:1 13:20:9:7 13:20:10:1 13:20:11:1 13:20:12:1 13:20:13:0 13:20:14:1 13:20:15:1 13:20:16:1 13:20:17:1 13:20:18:7 13:20:19:17 13:20:20:1 #14:0:0:14 14:0:1:0 14:0:2:1 14:0:3:1 14:0:4:1 14:0:5:1 14:0:6:1 14:0:7:1 14:0:8:1 14:0:9:1 14:0:10:1 14:0:11:1 14:0:12:1 14:0:13:1 14:0:14:1 14:0:15:1 14:0:16:1 14:0:17:1 14:0:18:1 14:0:19:1 14:0:20:1 #14:1:0:14 14:1:1:0 14:1:2:0 14:1:3:2 14:1:4:2 14:1:5:4 14:1:6:2 14:1:7:0 14:1:8:6 14:1:9:5 14:1:10:4 14:1:11:3 14:1:12:2 14:1:13:1 14:1:14:0 14:1:15:14 14:1:16:14 14:1:17:14 14:1:18:14 14:1:19:14 14:1:20:14 #14:2:0:14 14:2:1:0 14:2:2:0 14:2:3:1 14:2:4:0 14:2:5:1 14:2:6:4 14:2:7:0 14:2:8:4 14:2:9:7 14:2:10:6 14:2:11:9 14:2:12:4 14:2:13:1 14:2:14:0 14:2:15:1 14:2:16:4 14:2:17:9 14:2:18:16 14:2:19:6 14:2:20:16 #14:3:0:14 14:3:1:0 14:3:2:0 14:3:3:2 14:3:4:0 14:3:5:4 14:3:6:2 14:3:7:0 14:3:8:0 14:3:9:8 14:3:10:4 14:3:11:5 14:3:12:8 14:3:13:1 14:3:14:0 14:3:15:14 14:3:16:8 14:3:17:7 14:3:18:8 14:3:19:8 14:3:20:4 #14:4:0:14 14:4:1:0 14:4:2:0 14:4:3:1 14:4:4:0 14:4:5:1 14:4:6:4 14:4:7:0 14:4:8:0 14:4:9:4 14:4:10:6 14:4:11:4 14:4:12:4 14:4:13:1 14:4:14:0 14:4:15:1 14:4:16:0 14:4:17:13 14:4:18:4 14:4:19:17 14:4:20:16 #14:5:0:14 14:5:1:0 14:5:2:0 14:5:3:2 14:5:4:0 14:5:5:4 14:5:6:2 14:5:7:0 14:5:8:0 14:5:9:2 14:5:10:4 14:5:11:1 14:5:12:8 14:5:13:1 14:5:14:0 14:5:15:14 14:5:16:0 14:5:17:12 14:5:18:2 14:5:19:10 14:5:20:4 #14:6:0:14 14:6:1:0 14:6:2:0 14:6:3:1 14:6:4:0 14:6:5:1 14:6:6:4 14:6:7:0 14:6:8:0 14:6:9:1 14:6:10:6 14:6:11:3 14:6:12:4 14:6:13:1 14:6:14:0 14:6:15:1 14:6:16:0 14:6:17:15 14:6:18:10 14:6:19:7 14:6:20:16 #14:7:0:14 14:7:1:0 14:7:2:0 14:7:3:2 14:7:4:0 14:7:5:4 14:7:6:2 14:7:7:0 14:7:8:0 14:7:9:5 14:7:10:4 14:7:11:9 14:7:12:8 14:7:13:1 14:7:14:0 14:7:15:14 14:7:16:0 14:7:17:6 14:7:18:14 14:7:19:3 14:7:20:4 #14:8:0:14 14:8:1:0 14:8:2:0 14:8:3:1 14:8:4:0 14:8:5:1 14:8:6:4 14:8:7:0 14:8:8:0 14:8:9:7 14:8:10:6 14:8:11:5 14:8:12:4 14:8:13:1 14:8:14:0 14:8:15:1 14:8:16:0 14:8:17:16 14:8:18:16 14:8:19:4 14:8:20:16 #14:9:0:14 14:9:1:0 14:9:2:0 14:9:3:2 14:9:4:0 14:9:5:4 14:9:6:2 14:9:7:0 14:9:8:0 14:9:9:8 14:9:10:4 14:9:11:4 14:9:12:8 14:9:13:1 14:9:14:0 14:9:15:14 14:9:16:0 14:9:17:3 14:9:18:8 14:9:19:18 14:9:20:4 #14:10:0:14 14:10:1:0 14:10:2:0 14:10:3:1 14:10:4:0 14:10:5:1 14:10:6:4 14:10:7:0 14:10:8:0 14:10:9:4 14:10:10:6 14:10:11:1 14:10:12:4 14:10:13:1 14:10:14:0 14:10:15:1 14:10:16:0 14:10:17:8 14:10:18:4 14:10:19:5 14:10:20:16 #14:11:0:14 14:11:1:0 14:11:2:0 14:11:3:2 14:11:4:0 14:11:5:4 14:11:6:2 14:11:7:0 14:11:8:0 14:11:9:2 14:11:10:4 14:11:11:3 14:11:12:8 14:11:13:1 14:11:14:0 14:11:15:14 14:11:16:0 14:11:17:10 14:11:18:2 14:11:19:13 14:11:20:4 #14:12:0:14 14:12:1:0 14:12:2:0 14:12:3:1 14:12:4:0 14:12:5:1 14:12:6:4 14:12:7:0 14:12:8:0 14:12:9:1 14:12:10:6 14:12:11:9 14:12:12:4 14:12:13:1 14:12:14:0 14:12:15:1 14:12:16:0 14:12:17:4 14:12:18:10 14:12:19:11 14:12:20:16 #14:13:0:14 14:13:1:0 14:13:2:0 14:13:3:2 14:13:4:0 14:13:5:4 14:13:6:2 14:13:7:0 14:13:8:0 14:13:9:5 14:13:10:4 14:13:11:5 14:13:12:8 14:13:13:1 14:13:14:0 14:13:15:14 14:13:16:0 14:13:17:5 14:13:18:14 14:13:19:2 14:13:20:4 #14:14:0:14 14:14:1:0 14:14:2:0 14:14:3:1 14:14:4:0 14:14:5:1 14:14:6:4 14:14:7:0 14:14:8:0 14:14:9:7 14:14:10:6 14:14:11:4 14:14:12:4 14:14:13:1 14:14:14:0 14:14:15:1 14:14:16:0 14:14:17:2 14:14:18:16 14:14:19:9 14:14:20:16 #14:15:0:14 14:15:1:0 14:15:2:0 14:15:3:2 14:15:4:0 14:15:5:4 14:15:6:2 14:15:7:0 14:15:8:0 14:15:9:8 14:15:10:4 14:15:11:1 14:15:12:8 14:15:13:1 14:15:14:0 14:15:15:14 14:15:16:0 14:15:17:11 14:15:18:8 14:15:19:12 14:15:20:4 #14:16:0:14 14:16:1:0 14:16:2:0 14:16:3:1 14:16:4:0 14:16:5:1 14:16:6:4 14:16:7:0 14:16:8:0 14:16:9:4 14:16:10:6 14:16:11:3 14:16:12:4 14:16:13:1 14:16:14:0 14:16:15:1 14:16:16:0 14:16:17:1 14:16:18:4 14:16:19:16 14:16:20:16 #14:17:0:14 14:17:1:0 14:17:2:0 14:17:3:2 14:17:4:0 14:17:5:4 14:17:6:2 14:17:7:0 14:17:8:0 14:17:9:2 14:17:10:4 14:17:11:9 14:17:12:8 14:17:13:1 14:17:14:0 14:17:15:14 14:17:16:0 14:17:17:14 14:17:18:2 14:17:19:15 14:17:20:4 #14:18:0:14 14:18:1:0 14:18:2:0 14:18:3:1 14:18:4:0 14:18:5:1 14:18:6:4 14:18:7:0 14:18:8:0 14:18:9:1 14:18:10:6 14:18:11:5 14:18:12:4 14:18:13:1 14:18:14:0 14:18:15:1 14:18:16:0 14:18:17:9 14:18:18:10 14:18:19:1 14:18:20:16 #14:19:0:14 14:19:1:0 14:19:2:0 14:19:3:2 14:19:4:0 14:19:5:4 14:19:6:2 14:19:7:0 14:19:8:0 14:19:9:5 14:19:10:4 14:19:11:4 14:19:12:8 14:19:13:1 14:19:14:0 14:19:15:14 14:19:16:0 14:19:17:7 14:19:18:14 14:19:19:14 14:19:20:4 #14:20:0:14 14:20:1:0 14:20:2:0 14:20:3:1 14:20:4:0 14:20:5:1 14:20:6:4 14:20:7:0 14:20:8:0 14:20:9:7 14:20:10:6 14:20:11:1 14:20:12:4 14:20:13:1 14:20:14:0 14:20:15:1 14:20:16:0 14:20:17:13 14:20:18:16 14:20:19:6 14:20:20:16 #15:0:0:15 15:0:1:0 15:0:2:1 15:0:3:1 15:0:4:1 15:0:5:1 15:0:6:1 15:0:7:1 15:0:8:1 15:0:9:1 15:0:10:1 15:0:11:1 15:0:12:1 15:0:13:1 15:0:14:1 15:0:15:1 15:0:16:1 15:0:17:1 15:0:18:1 15:0:19:1 15:0:20:1 #15:1:0:15 15:1:1:0 15:1:2:1 15:1:3:0 15:1:4:3 15:1:5:0 15:1:6:3 15:1:7:1 15:1:8:7 15:1:9:6 15:1:10:5 15:1:11:4 15:1:12:3 15:1:13:2 15:1:14:1 15:1:15:0 15:1:16:15 15:1:17:15 15:1:18:15 15:1:19:15 15:1:20:15 #15:2:0:15 15:2:1:0 15:2:2:1 15:2:3:0 15:2:4:1 15:2:5:0 15:2:6:3 15:2:7:1 15:2:8:1 15:2:9:0 15:2:10:5 15:2:11:5 15:2:12:9 15:2:13:4 15:2:14:1 15:2:15:0 15:2:16:1 15:2:17:4 15:2:18:9 15:2:19:16 15:2:20:5 #15:3:0:15 15:3:1:0 15:3:2:1 15:3:3:0 15:3:4:3 15:3:5:0 15:3:6:3 15:3:7:1 15:3:8:7 15:3:9:0 15:3:10:5 15:3:11:9 15:3:12:3 15:3:13:8 15:3:14:1 15:3:15:0 15:3:16:15 15:3:17:9 15:3:18:9 15:3:19:12 15:3:20:15 #15:4:0:15 15:4:1:0 15:4:2:1 15:4:3:0 15:4:4:1 15:4:5:0 15:4:6:3 15:4:7:1 15:4:8:1 15:4:9:0 15:4:10:5 15:4:11:3 15:4:12:9 15:4:13:3 15:4:14:1 15:4:15:0 15:4:16:1 15:4:17:16 15:4:18:9 15:4:19:9 15:4:20:5 #15:5:0:15 15:5:1:0 15:5:2:1 15:5:3:0 15:5:4:3 15:5:5:0 15:5:6:3 15:5:7:1 15:5:8:7 15:5:9:0 15:5:10:5 15:5:11:1 15:5:12:3 15:5:13:6 15:5:14:1 15:5:15:0 15:5:16:15 15:5:17:2 15:5:18:9 15:5:19:2 15:5:20:15 #15:6:0:15 15:6:1:0 15:6:2:1 15:6:3:0 15:6:4:1 15:6:5:0 15:6:6:3 15:6:7:1 15:6:8:1 15:6:9:0 15:6:10:5 15:6:11:4 15:6:12:9 15:6:13:12 15:6:14:1 15:6:15:0 15:6:16:1 15:6:17:13 15:6:18:9 15:6:19:11 15:6:20:5 #15:7:0:15 15:7:1:0 15:7:2:1 15:7:3:0 15:7:4:3 15:7:5:0 15:7:6:3 15:7:7:1 15:7:8:7 15:7:9:0 15:7:10:5 15:7:11:5 15:7:12:3 15:7:13:11 15:7:14:1 15:7:15:0 15:7:16:15 15:7:17:8 15:7:18:9 15:7:19:13 15:7:20:15 #15:8:0:15 15:8:1:0 15:8:2:1 15:8:3:0 15:8:4:1 15:8:5:0 15:8:6:3 15:8:7:1 15:8:8:1 15:8:9:0 15:8:10:5 15:8:11:9 15:8:12:9 15:8:13:9 15:8:14:1 15:8:15:0 15:8:16:1 15:8:17:1 15:8:18:9 15:8:19:5 15:8:20:5 #15:9:0:15 15:9:1:0 15:9:2:1 15:9:3:0 15:9:4:3 15:9:5:0 15:9:6:3 15:9:7:1 15:9:8:7 15:9:9:0 15:9:10:5 15:9:11:3 15:9:12:3 15:9:13:5 15:9:14:1 15:9:15:0 15:9:16:15 15:9:17:15 15:9:18:9 15:9:19:18 15:9:20:15 #15:10:0:15 15:10:1:0 15:10:2:1 15:10:3:0 15:10:4:1 15:10:5:0 15:10:6:3 15:10:7:1 15:10:8:1 15:10:9:0 15:10:10:5 15:10:11:1 15:10:12:9 15:10:13:10 15:10:14:1 15:10:15:0 15:10:16:1 15:10:17:4 15:10:18:9 15:10:19:4 15:10:20:5 #15:11:0:15 15:11:1:0 15:11:2:1 15:11:3:0 15:11:4:3 15:11:5:0 15:11:6:3 15:11:7:1 15:11:8:7 15:11:9:0 15:11:10:5 15:11:11:4 15:11:12:3 15:11:13:7 15:11:14:1 15:11:15:0 15:11:16:15 15:11:17:9 15:11:18:9 15:11:19:3 15:11:20:15 #15:12:0:15 15:12:1:0 15:12:2:1 15:12:3:0 15:12:4:1 15:12:5:0 15:12:6:3 15:12:7:1 15:12:8:1 15:12:9:0 15:12:10:5 15:12:11:5 15:12:12:9 15:12:13:1 15:12:14:1 15:12:15:0 15:12:16:1 15:12:17:16 15:12:18:9 15:12:19:7 15:12:20:5 #15:13:0:15 15:13:1:0 15:13:2:1 15:13:3:0 15:13:4:3 15:13:5:0 15:13:6:3 15:13:7:1 15:13:8:7 15:13:9:0 15:13:10:5 15:13:11:9 15:13:12:3 15:13:13:2 15:13:14:1 15:13:15:0 15:13:16:15 15:13:17:2 15:13:18:9 15:13:19:10 15:13:20:15 #15:14:0:15 15:14:1:0 15:14:2:1 15:14:3:0 15:14:4:1 15:14:5:0 15:14:6:3 15:14:7:1 15:14:8:1 15:14:9:0 15:14:10:5 15:14:11:3 15:14:12:9 15:14:13:4 15:14:14:1 15:14:15:0 15:14:16:1 15:14:17:13 15:14:18:9 15:14:19:17 15:14:20:5 #15:15:0:15 15:15:1:0 15:15:2:1 15:15:3:0 15:15:4:3 15:15:5:0 15:15:6:3 15:15:7:1 15:15:8:7 15:15:9:0 15:15:10:5 15:15:11:1 15:15:12:3 15:15:13:8 15:15:14:1 15:15:15:0 15:15:16:15 15:15:17:8 15:15:18:9 15:15:19:8 15:15:20:15 #15:16:0:15 15:16:1:0 15:16:2:1 15:16:3:0 15:16:4:1 15:16:5:0 15:16:6:3 15:16:7:1 15:16:8:1 15:16:9:0 15:16:10:5 15:16:11:4 15:16:12:9 15:16:13:3 15:16:14:1 15:16:15:0 15:16:16:1 15:16:17:1 15:16:18:9 15:16:19:6 15:16:20:5 #15:17:0:15 15:17:1:0 15:17:2:1 15:17:3:0 15:17:4:3 15:17:5:0 15:17:6:3 15:17:7:1 15:17:8:7 15:17:9:0 15:17:10:5 15:17:11:5 15:17:12:3 15:17:13:6 15:17:14:1 15:17:15:0 15:17:16:15 15:17:17:15 15:17:18:9 15:17:19:14 15:17:20:15 #15:18:0:15 15:18:1:0 15:18:2:1 15:18:3:0 15:18:4:1 15:18:5:0 15:18:6:3 15:18:7:1 15:18:8:1 15:18:9:0 15:18:10:5 15:18:11:9 15:18:12:9 15:18:13:12 15:18:14:1 15:18:15:0 15:18:16:1 15:18:17:4 15:18:18:9 15:18:19:1 15:18:20:5 #15:19:0:15 15:19:1:0 15:19:2:1 15:19:3:0 15:19:4:3 15:19:5:0 15:19:6:3 15:19:7:1 15:19:8:7 15:19:9:0 15:19:10:5 15:19:11:3 15:19:12:3 15:19:13:11 15:19:14:1 15:19:15:0 15:19:16:15 15:19:17:9 15:19:18:9 15:19:19:15 15:19:20:15 #15:20:0:15 15:20:1:0 15:20:2:1 15:20:3:0 15:20:4:1 15:20:5:0 15:20:6:3 15:20:7:1 15:20:8:1 15:20:9:0 15:20:10:5 15:20:11:1 15:20:12:9 15:20:13:9 15:20:14:1 15:20:15:0 15:20:16:1 15:20:17:16 15:20:18:9 15:20:19:16 15:20:20:5 #16:0:0:16 16:0:1:0 16:0:2:1 16:0:3:1 16:0:4:1 16:0:5:1 16:0:6:1 16:0:7:1 16:0:8:1 16:0:9:1 16:0:10:1 16:0:11:1 16:0:12:1 16:0:13:1 16:0:14:1 16:0:15:1 16:0:16:1 16:0:17:1 16:0:18:1 16:0:19:1 16:0:20:1 #16:1:0:16 16:1:1:0 16:1:2:0 16:1:3:1 16:1:4:0 16:1:5:1 16:1:6:4 16:1:7:2 16:1:8:0 16:1:9:7 16:1:10:6 16:1:11:5 16:1:12:4 16:1:13:3 16:1:14:2 16:1:15:1 16:1:16:0 16:1:17:16 16:1:18:16 16:1:19:16 16:1:20:16 #16:2:0:16 16:2:1:0 16:2:2:0 16:2:3:1 16:2:4:0 16:2:5:1 16:2:6:4 16:2:7:4 16:2:8:0 16:2:9:4 16:2:10:6 16:2:11:3 16:2:12:4 16:2:13:9 16:2:14:4 16:2:15:1 16:2:16:0 16:2:17:1 16:2:18:4 16:2:19:9 16:2:20:16 #16:3:0:16 16:3:1:0 16:3:2:0 16:3:3:1 16:3:4:0 16:3:5:1 16:3:6:4 16:3:7:1 16:3:8:0 16:3:9:1 16:3:10:6 16:3:11:4 16:3:12:4 16:3:13:1 16:3:14:8 16:3:15:1 16:3:16:0 16:3:17:16 16:3:18:10 16:3:19:11 16:3:20:16 #16:4:0:16 16:4:1:0 16:4:2:0 16:4:3:1 16:4:4:0 16:4:5:1 16:4:6:4 16:4:7:2 16:4:8:0 16:4:9:7 16:4:10:6 16:4:11:9 16:4:12:4 16:4:13:3 16:4:14:2 16:4:15:1 16:4:16:0 16:4:17:1 16:4:18:16 16:4:19:5 16:4:20:16 #16:5:0:16 16:5:1:0 16:5:2:0 16:5:3:1 16:5:4:0 16:5:5:1 16:5:6:4 16:5:7:4 16:5:8:0 16:5:9:4 16:5:10:6 16:5:11:1 16:5:12:4 16:5:13:9 16:5:14:4 16:5:15:1 16:5:16:0 16:5:17:16 16:5:18:4 16:5:19:4 16:5:20:16 #16:6:0:16 16:6:1:0 16:6:2:0 16:6:3:1 16:6:4:0 16:6:5:1 16:6:6:4 16:6:7:1 16:6:8:0 16:6:9:1 16:6:10:6 16:6:11:5 16:6:12:4 16:6:13:1 16:6:14:8 16:6:15:1 16:6:16:0 16:6:17:1 16:6:18:10 16:6:19:7 16:6:20:16 #16:7:0:16 16:7:1:0 16:7:2:0 16:7:3:1 16:7:4:0 16:7:5:1 16:7:6:4 16:7:7:2 16:7:8:0 16:7:9:7 16:7:10:6 16:7:11:3 16:7:12:4 16:7:13:3 16:7:14:2 16:7:15:1 16:7:16:0 16:7:17:16 16:7:18:16 16:7:19:17 16:7:20:16 #16:8:0:16 16:8:1:0 16:8:2:0 16:8:3:1 16:8:4:0 16:8:5:1 16:8:6:4 16:8:7:4 16:8:8:0 16:8:9:4 16:8:10:6 16:8:11:4 16:8:12:4 16:8:13:9 16:8:14:4 16:8:15:1 16:8:16:0 16:8:17:1 16:8:18:4 16:8:19:6 16:8:20:16 #16:9:0:16 16:9:1:0 16:9:2:0 16:9:3:1 16:9:4:0 16:9:5:1 16:9:6:4 16:9:7:1 16:9:8:0 16:9:9:1 16:9:10:6 16:9:11:9 16:9:12:4 16:9:13:1 16:9:14:8 16:9:15:1 16:9:16:0 16:9:17:16 16:9:18:10 16:9:19:1 16:9:20:16 #16:10:0:16 16:10:1:0 16:10:2:0 16:10:3:1 16:10:4:0 16:10:5:1 16:10:6:4 16:10:7:2 16:10:8:0 16:10:9:7 16:10:10:6 16:10:11:1 16:10:12:4 16:10:13:3 16:10:14:2 16:10:15:1 16:10:16:0 16:10:17:1 16:10:18:16 16:10:19:16 16:10:20:16 #16:11:0:16 16:11:1:0 16:11:2:0 16:11:3:1 16:11:4:0 16:11:5:1 16:11:6:4 16:11:7:4 16:11:8:0 16:11:9:4 16:11:10:6 16:11:11:5 16:11:12:4 16:11:13:9 16:11:14:4 16:11:15:1 16:11:16:0 16:11:17:16 16:11:18:4 16:11:19:9 16:11:20:16 #16:12:0:16 16:12:1:0 16:12:2:0 16:12:3:1 16:12:4:0 16:12:5:1 16:12:6:4 16:12:7:1 16:12:8:0 16:12:9:1 16:12:10:6 16:12:11:3 16:12:12:4 16:12:13:1 16:12:14:8 16:12:15:1 16:12:16:0 16:12:17:1 16:12:18:10 16:12:19:11 16:12:20:16 #16:13:0:16 16:13:1:0 16:13:2:0 16:13:3:1 16:13:4:0 16:13:5:1 16:13:6:4 16:13:7:2 16:13:8:0 16:13:9:7 16:13:10:6 16:13:11:4 16:13:12:4 16:13:13:3 16:13:14:2 16:13:15:1 16:13:16:0 16:13:17:16 16:13:18:16 16:13:19:5 16:13:20:16 #16:14:0:16 16:14:1:0 16:14:2:0 16:14:3:1 16:14:4:0 16:14:5:1 16:14:6:4 16:14:7:4 16:14:8:0 16:14:9:4 16:14:10:6 16:14:11:9 16:14:12:4 16:14:13:9 16:14:14:4 16:14:15:1 16:14:16:0 16:14:17:1 16:14:18:4 16:14:19:4 16:14:20:16 #16:15:0:16 16:15:1:0 16:15:2:0 16:15:3:1 16:15:4:0 16:15:5:1 16:15:6:4 16:15:7:1 16:15:8:0 16:15:9:1 16:15:10:6 16:15:11:1 16:15:12:4 16:15:13:1 16:15:14:8 16:15:15:1 16:15:16:0 16:15:17:16 16:15:18:10 16:15:19:7 16:15:20:16 #16:16:0:16 16:16:1:0 16:16:2:0 16:16:3:1 16:16:4:0 16:16:5:1 16:16:6:4 16:16:7:2 16:16:8:0 16:16:9:7 16:16:10:6 16:16:11:5 16:16:12:4 16:16:13:3 16:16:14:2 16:16:15:1 16:16:16:0 16:16:17:1 16:16:18:16 16:16:19:17 16:16:20:16 #16:17:0:16 16:17:1:0 16:17:2:0 16:17:3:1 16:17:4:0 16:17:5:1 16:17:6:4 16:17:7:4 16:17:8:0 16:17:9:4 16:17:10:6 16:17:11:3 16:17:12:4 16:17:13:9 16:17:14:4 16:17:15:1 16:17:16:0 16:17:17:16 16:17:18:4 16:17:19:6 16:17:20:16 #16:18:0:16 16:18:1:0 16:18:2:0 16:18:3:1 16:18:4:0 16:18:5:1 16:18:6:4 16:18:7:1 16:18:8:0 16:18:9:1 16:18:10:6 16:18:11:4 16:18:12:4 16:18:13:1 16:18:14:8 16:18:15:1 16:18:16:0 16:18:17:1 16:18:18:10 16:18:19:1 16:18:20:16 #16:19:0:16 16:19:1:0 16:19:2:0 16:19:3:1 16:19:4:0 16:19:5:1 16:19:6:4 16:19:7:2 16:19:8:0 16:19:9:7 16:19:10:6 16:19:11:9 16:19:12:4 16:19:13:3 16:19:14:2 16:19:15:1 16:19:16:0 16:19:17:16 16:19:18:16 16:19:19:16 16:19:20:16 #16:20:0:16 16:20:1:0 16:20:2:0 16:20:3:1 16:20:4:0 16:20:5:1 16:20:6:4 16:20:7:4 16:20:8:0 16:20:9:4 16:20:10:6 16:20:11:1 16:20:12:4 16:20:13:9 16:20:14:4 16:20:15:1 16:20:16:0 16:20:17:1 16:20:18:4 16:20:19:9 16:20:20:16 #17:0:0:17 17:0:1:0 17:0:2:1 17:0:3:1 17:0:4:1 17:0:5:1 17:0:6:1 17:0:7:1 17:0:8:1 17:0:9:1 17:0:10:1 17:0:11:1 17:0:12:1 17:0:13:1 17:0:14:1 17:0:15:1 17:0:16:1 17:0:17:1 17:0:18:1 17:0:19:1 17:0:20:1 #17:1:0:17 17:1:1:0 17:1:2:1 17:1:3:2 17:1:4:1 17:1:5:2 17:1:6:5 17:1:7:3 17:1:8:1 17:1:9:8 17:1:10:7 17:1:11:6 17:1:12:5 17:1:13:4 17:1:14:3 17:1:15:2 17:1:16:1 17:1:17:0 17:1:18:17 17:1:19:17 17:1:20:17 #17:2:0:17 17:2:1:0 17:2:2:1 17:2:3:1 17:2:4:1 17:2:5:4 17:2:6:1 17:2:7:2 17:2:8:1 17:2:9:1 17:2:10:9 17:2:11:3 17:2:12:1 17:2:13:3 17:2:14:9 17:2:15:4 17:2:16:1 17:2:17:0 17:2:18:1 17:2:19:4 17:2:20:9 #17:3:0:17 17:3:1:0 17:3:2:1 17:3:3:2 17:3:4:1 17:3:5:3 17:3:6:5 17:3:7:6 17:3:8:1 17:3:9:8 17:3:10:3 17:3:11:7 17:3:12:5 17:3:13:12 17:3:14:13 17:3:15:8 17:3:16:1 17:3:17:0 17:3:18:17 17:3:19:11 17:3:20:13 #17:4:0:17 17:4:1:0 17:4:2:1 17:4:3:1 17:4:4:1 17:4:5:1 17:4:6:1 17:4:7:4 17:4:8:1 17:4:9:1 17:4:10:1 17:4:11:9 17:4:12:1 17:4:13:9 17:4:14:11 17:4:15:1 17:4:16:1 17:4:17:0 17:4:18:1 17:4:19:16 17:4:20:1 #17:5:0:17 17:5:1:0 17:5:2:1 17:5:3:2 17:5:4:1 17:5:5:2 17:5:6:5 17:5:7:5 17:5:8:1 17:5:9:8 17:5:10:7 17:5:11:10 17:5:12:5 17:5:13:10 17:5:14:5 17:5:15:2 17:5:16:1 17:5:17:0 17:5:18:17 17:5:19:6 17:5:20:17 #17:6:0:17 17:6:1:0 17:6:2:1 17:6:3:1 17:6:4:1 17:6:5:4 17:6:6:1 17:6:7:1 17:6:8:1 17:6:9:1 17:6:10:9 17:6:11:5 17:6:12:1 17:6:13:1 17:6:14:1 17:6:15:4 17:6:16:1 17:6:17:0 17:6:18:1 17:6:19:7 17:6:20:9 #17:7:0:17 17:7:1:0 17:7:2:1 17:7:3:2 17:7:4:1 17:7:5:3 17:7:6:5 17:7:7:3 17:7:8:1 17:7:9:8 17:7:10:3 17:7:11:8 17:7:12:5 17:7:13:4 17:7:14:3 17:7:15:8 17:7:16:1 17:7:17:0 17:7:18:17 17:7:19:5 17:7:20:13 #17:8:0:17 17:8:1:0 17:8:2:1 17:8:3:1 17:8:4:1 17:8:5:1 17:8:6:1 17:8:7:2 17:8:8:1 17:8:9:1 17:8:10:1 17:8:11:4 17:8:12:1 17:8:13:3 17:8:14:9 17:8:15:1 17:8:16:1 17:8:17:0 17:8:18:1 17:8:19:9 17:8:20:1 #17:9:0:17 17:9:1:0 17:9:2:1 17:9:3:2 17:9:4:1 17:9:5:2 17:9:6:5 17:9:7:6 17:9:8:1 17:9:9:8 17:9:10:7 17:9:11:2 17:9:12:5 17:9:13:12 17:9:14:13 17:9:15:2 17:9:16:1 17:9:17:0 17:9:18:17 17:9:19:1 17:9:20:17 #17:10:0:17 17:10:1:0 17:10:2:1 17:10:3:1 17:10:4:1 17:10:5:4 17:10:6:1 17:10:7:4 17:10:8:1 17:10:9:1 17:10:10:9 17:10:11:1 17:10:12:1 17:10:13:9 17:10:14:11 17:10:15:4 17:10:16:1 17:10:17:0 17:10:18:1 17:10:19:17 17:10:20:9 #17:11:0:17 17:11:1:0 17:11:2:1 17:11:3:2 17:11:4:1 17:11:5:3 17:11:6:5 17:11:7:5 17:11:8:1 17:11:9:8 17:11:10:3 17:11:11:6 17:11:12:5 17:11:13:10 17:11:14:5 17:11:15:8 17:11:16:1 17:11:17:0 17:11:18:17 17:11:19:4 17:11:20:13 #17:12:0:17 17:12:1:0 17:12:2:1 17:12:3:1 17:12:4:1 17:12:5:1 17:12:6:1 17:12:7:1 17:12:8:1 17:12:9:1 17:12:10:1 17:12:11:3 17:12:12:1 17:12:13:1 17:12:14:1 17:12:15:1 17:12:16:1 17:12:17:0 17:12:18:1 17:12:19:11 17:12:20:1 #17:13:0:17 17:13:1:0 17:13:2:1 17:13:3:2 17:13:4:1 17:13:5:2 17:13:6:5 17:13:7:3 17:13:8:1 17:13:9:8 17:13:10:7 17:13:11:7 17:13:12:5 17:13:13:4 17:13:14:3 17:13:15:2 17:13:16:1 17:13:17:0 17:13:18:17 17:13:19:16 17:13:20:17 #17:14:0:17 17:14:1:0 17:14:2:1 17:14:3:1 17:14:4:1 17:14:5:4 17:14:6:1 17:14:7:2 17:14:8:1 17:14:9:1 17:14:10:9 17:14:11:9 17:14:12:1 17:14:13:3 17:14:14:9 17:14:15:4 17:14:16:1 17:14:17:0 17:14:18:1 17:14:19:6 17:14:20:9 #17:15:0:17 17:15:1:0 17:15:2:1 17:15:3:2 17:15:4:1 17:15:5:3 17:15:6:5 17:15:7:6 17:15:8:1 17:15:9:8 17:15:10:3 17:15:11:10 17:15:12:5 17:15:13:12 17:15:14:13 17:15:15:8 17:15:16:1 17:15:17:0 17:15:18:17 17:15:19:7 17:15:20:13 #17:16:0:17 17:16:1:0 17:16:2:1 17:16:3:1 17:16:4:1 17:16:5:1 17:16:6:1 17:16:7:4 17:16:8:1 17:16:9:1 17:16:10:1 17:16:11:5 17:16:12:1 17:16:13:9 17:16:14:11 17:16:15:1 17:16:16:1 17:16:17:0 17:16:18:1 17:16:19:5 17:16:20:1 #17:17:0:17 17:17:1:0 17:17:2:1 17:17:3:2 17:17:4:1 17:17:5:2 17:17:6:5 17:17:7:5 17:17:8:1 17:17:9:8 17:17:10:7 17:17:11:8 17:17:12:5 17:17:13:10 17:17:14:5 17:17:15:2 17:17:16:1 17:17:17:0 17:17:18:17 17:17:19:9 17:17:20:17 #17:18:0:17 17:18:1:0 17:18:2:1 17:18:3:1 17:18:4:1 17:18:5:4 17:18:6:1 17:18:7:1 17:18:8:1 17:18:9:1 17:18:10:9 17:18:11:4 17:18:12:1 17:18:13:1 17:18:14:1 17:18:15:4 17:18:16:1 17:18:17:0 17:18:18:1 17:18:19:1 17:18:20:9 #17:19:0:17 17:19:1:0 17:19:2:1 17:19:3:2 17:19:4:1 17:19:5:3 17:19:6:5 17:19:7:3 17:19:8:1 17:19:9:8 17:19:10:3 17:19:11:2 17:19:12:5 17:19:13:4 17:19:14:3 17:19:15:8 17:19:16:1 17:19:17:0 17:19:18:17 17:19:19:17 17:19:20:13 #17:20:0:17 17:20:1:0 17:20:2:1 17:20:3:1 17:20:4:1 17:20:5:1 17:20:6:1 17:20:7:2 17:20:8:1 17:20:9:1 17:20:10:1 17:20:11:1 17:20:12:1 17:20:13:3 17:20:14:9 17:20:15:1 17:20:16:1 17:20:17:0 17:20:18:1 17:20:19:4 17:20:20:1 #18:0:0:18 18:0:1:0 18:0:2:1 18:0:3:1 18:0:4:1 18:0:5:1 18:0:6:1 18:0:7:1 18:0:8:1 18:0:9:1 18:0:10:1 18:0:11:1 18:0:12:1 18:0:13:1 18:0:14:1 18:0:15:1 18:0:16:1 18:0:17:1 18:0:18:1 18:0:19:1 18:0:20:1 #18:1:0:18 18:1:1:0 18:1:2:0 18:1:3:0 18:1:4:2 18:1:5:3 18:1:6:0 18:1:7:4 18:1:8:2 18:1:9:0 18:1:10:8 18:1:11:7 18:1:12:6 18:1:13:5 18:1:14:4 18:1:15:3 18:1:16:2 18:1:17:1 18:1:18:0 18:1:19:18 18:1:20:18 #18:2:0:18 18:2:1:0 18:2:2:0 18:2:3:0 18:2:4:0 18:2:5:4 18:2:6:0 18:2:7:2 18:2:8:4 18:2:9:0 18:2:10:4 18:2:11:5 18:2:12:0 18:2:13:12 18:2:14:2 18:2:15:9 18:2:16:4 18:2:17:1 18:2:18:0 18:2:19:1 18:2:20:4 #18:3:0:18 18:3:1:0 18:3:2:0 18:3:3:0 18:3:4:0 18:3:5:2 18:3:6:0 18:3:7:1 18:3:8:0 18:3:9:0 18:3:10:2 18:3:11:2 18:3:12:0 18:3:13:8 18:3:14:8 18:3:15:12 18:3:16:8 18:3:17:1 18:3:18:0 18:3:19:18 18:3:20:12 #18:4:0:18 18:4:1:0 18:4:2:0 18:4:3:0 18:4:4:0 18:4:5:1 18:4:6:0 18:4:7:4 18:4:8:0 18:4:9:0 18:4:10:6 18:4:11:3 18:4:12:0 18:4:13:1 18:4:14:4 18:4:15:6 18:4:16:0 18:4:17:1 18:4:18:0 18:4:19:1 18:4:20:16 #18:5:0:18 18:5:1:0 18:5:2:0 18:5:3:0 18:5:4:0 18:5:5:3 18:5:6:0 18:5:7:2 18:5:8:0 18:5:9:0 18:5:10:8 18:5:11:10 18:5:12:0 18:5:13:5 18:5:14:2 18:5:15:3 18:5:16:0 18:5:17:1 18:5:18:0 18:5:19:18 18:5:20:8 #18:6:0:18 18:6:1:0 18:6:2:0 18:6:3:0 18:6:4:0 18:6:5:4 18:6:6:0 18:6:7:1 18:6:8:0 18:6:9:0 18:6:10:4 18:6:11:4 18:6:12:0 18:6:13:12 18:6:14:8 18:6:15:9 18:6:16:0 18:6:17:1 18:6:18:0 18:6:19:1 18:6:20:4 #18:7:0:18 18:7:1:0 18:7:2:0 18:7:3:0 18:7:4:0 18:7:5:2 18:7:6:0 18:7:7:4 18:7:8:0 18:7:9:0 18:7:10:2 18:7:11:6 18:7:12:0 18:7:13:8 18:7:14:4 18:7:15:12 18:7:16:0 18:7:17:1 18:7:18:0 18:7:19:18 18:7:20:12 #18:8:0:18 18:8:1:0 18:8:2:0 18:8:3:0 18:8:4:0 18:8:5:1 18:8:6:0 18:8:7:2 18:8:8:0 18:8:9:0 18:8:10:6 18:8:11:9 18:8:12:0 18:8:13:1 18:8:14:2 18:8:15:6 18:8:16:0 18:8:17:1 18:8:18:0 18:8:19:1 18:8:20:16 #18:9:0:18 18:9:1:0 18:9:2:0 18:9:3:0 18:9:4:0 18:9:5:3 18:9:6:0 18:9:7:1 18:9:8:0 18:9:9:0 18:9:10:8 18:9:11:8 18:9:12:0 18:9:13:5 18:9:14:8 18:9:15:3 18:9:16:0 18:9:17:1 18:9:18:0 18:9:19:18 18:9:20:8 #18:10:0:18 18:10:1:0 18:10:2:0 18:10:3:0 18:10:4:0 18:10:5:4 18:10:6:0 18:10:7:4 18:10:8:0 18:10:9:0 18:10:10:4 18:10:11:1 18:10:12:0 18:10:13:12 18:10:14:4 18:10:15:9 18:10:16:0 18:10:17:1 18:10:18:0 18:10:19:1 18:10:20:4 #18:11:0:18 18:11:1:0 18:11:2:0 18:11:3:0 18:11:4:0 18:11:5:2 18:11:6:0 18:11:7:2 18:11:8:0 18:11:9:0 18:11:10:2 18:11:11:7 18:11:12:0 18:11:13:8 18:11:14:2 18:11:15:12 18:11:16:0 18:11:17:1 18:11:18:0 18:11:19:18 18:11:20:12 #18:12:0:18 18:12:1:0 18:12:2:0 18:12:3:0 18:12:4:0 18:12:5:1 18:12:6:0 18:12:7:1 18:12:8:0 18:12:9:0 18:12:10:6 18:12:11:5 18:12:12:0 18:12:13:1 18:12:14:8 18:12:15:6 18:12:16:0 18:12:17:1 18:12:18:0 18:12:19:1 18:12:20:16 #18:13:0:18 18:13:1:0 18:13:2:0 18:13:3:0 18:13:4:0 18:13:5:3 18:13:6:0 18:13:7:4 18:13:8:0 18:13:9:0 18:13:10:8 18:13:11:2 18:13:12:0 18:13:13:5 18:13:14:4 18:13:15:3 18:13:16:0 18:13:17:1 18:13:18:0 18:13:19:18 18:13:20:8 #18:14:0:18 18:14:1:0 18:14:2:0 18:14:3:0 18:14:4:0 18:14:5:4 18:14:6:0 18:14:7:2 18:14:8:0 18:14:9:0 18:14:10:4 18:14:11:3 18:14:12:0 18:14:13:12 18:14:14:2 18:14:15:9 18:14:16:0 18:14:17:1 18:14:18:0 18:14:19:1 18:14:20:4 #18:15:0:18 18:15:1:0 18:15:2:0 18:15:3:0 18:15:4:0 18:15:5:2 18:15:6:0 18:15:7:1 18:15:8:0 18:15:9:0 18:15:10:2 18:15:11:10 18:15:12:0 18:15:13:8 18:15:14:8 18:15:15:12 18:15:16:0 18:15:17:1 18:15:18:0 18:15:19:18 18:15:20:12 #18:16:0:18 18:16:1:0 18:16:2:0 18:16:3:0 18:16:4:0 18:16:5:1 18:16:6:0 18:16:7:4 18:16:8:0 18:16:9:0 18:16:10:6 18:16:11:4 18:16:12:0 18:16:13:1 18:16:14:4 18:16:15:6 18:16:16:0 18:16:17:1 18:16:18:0 18:16:19:1 18:16:20:16 #18:17:0:18 18:17:1:0 18:17:2:0 18:17:3:0 18:17:4:0 18:17:5:3 18:17:6:0 18:17:7:2 18:17:8:0 18:17:9:0 18:17:10:8 18:17:11:6 18:17:12:0 18:17:13:5 18:17:14:2 18:17:15:3 18:17:16:0 18:17:17:1 18:17:18:0 18:17:19:18 18:17:20:8 #18:18:0:18 18:18:1:0 18:18:2:0 18:18:3:0 18:18:4:0 18:18:5:4 18:18:6:0 18:18:7:1 18:18:8:0 18:18:9:0 18:18:10:4 18:18:11:9 18:18:12:0 18:18:13:12 18:18:14:8 18:18:15:9 18:18:16:0 18:18:17:1 18:18:18:0 18:18:19:1 18:18:20:4 #18:19:0:18 18:19:1:0 18:19:2:0 18:19:3:0 18:19:4:0 18:19:5:2 18:19:6:0 18:19:7:4 18:19:8:0 18:19:9:0 18:19:10:2 18:19:11:8 18:19:12:0 18:19:13:8 18:19:14:4 18:19:15:12 18:19:16:0 18:19:17:1 18:19:18:0 18:19:19:18 18:19:20:12 #18:20:0:18 18:20:1:0 18:20:2:0 18:20:3:0 18:20:4:0 18:20:5:1 18:20:6:0 18:20:7:2 18:20:8:0 18:20:9:0 18:20:10:6 18:20:11:1 18:20:12:0 18:20:13:1 18:20:14:2 18:20:15:6 18:20:16:0 18:20:17:1 18:20:18:0 18:20:19:1 18:20:20:16 #19:0:0:19 19:0:1:0 19:0:2:1 19:0:3:1 19:0:4:1 19:0:5:1 19:0:6:1 19:0:7:1 19:0:8:1 19:0:9:1 19:0:10:1 19:0:11:1 19:0:12:1 19:0:13:1 19:0:14:1 19:0:15:1 19:0:16:1 19:0:17:1 19:0:18:1 19:0:19:1 19:0:20:1 #19:1:0:19 19:1:1:0 19:1:2:1 19:1:3:1 19:1:4:3 19:1:5:4 19:1:6:1 19:1:7:5 19:1:8:3 19:1:9:1 19:1:10:9 19:1:11:8 19:1:12:7 19:1:13:6 19:1:14:5 19:1:15:4 19:1:16:3 19:1:17:2 19:1:18:1 19:1:19:0 19:1:20:19 #19:2:0:19 19:2:1:0 19:2:2:1 19:2:3:1 19:2:4:1 19:2:5:1 19:2:6:1 19:2:7:4 19:2:8:1 19:2:9:1 19:2:10:1 19:2:11:9 19:2:12:1 19:2:13:10 19:2:14:11 19:2:15:1 19:2:16:9 19:2:17:4 19:2:18:1 19:2:19:0 19:2:20:1 #19:3:0:19 19:3:1:0 19:3:2:1 19:3:3:1 19:3:4:3 19:3:5:4 19:3:6:1 19:3:7:6 19:3:8:3 19:3:9:1 19:3:10:9 19:3:11:6 19:3:12:7 19:3:13:8 19:3:14:13 19:3:15:4 19:3:16:11 19:3:17:8 19:3:18:1 19:3:19:0 19:3:20:19 #19:4:0:19 19:4:1:0 19:4:2:1 19:4:3:1 19:4:4:1 19:4:5:1 19:4:6:1 19:4:7:2 19:4:8:1 19:4:9:1 19:4:10:1 19:4:11:4 19:4:12:1 19:4:13:9 19:4:14:9 19:4:15:1 19:4:16:1 19:4:17:16 19:4:18:1 19:4:19:0 19:4:20:1 #19:5:0:19 19:5:1:0 19:5:2:1 19:5:3:1 19:5:4:3 19:5:5:4 19:5:6:1 19:5:7:3 19:5:8:3 19:5:9:1 19:5:10:9 19:5:11:10 19:5:12:7 19:5:13:2 19:5:14:3 19:5:15:4 19:5:16:3 19:5:17:15 19:5:18:1 19:5:19:0 19:5:20:19 #19:6:0:19 19:6:1:0 19:6:2:1 19:6:3:1 19:6:4:1 19:6:5:1 19:6:6:1 19:6:7:1 19:6:8:1 19:6:9:1 19:6:10:1 19:6:11:3 19:6:12:1 19:6:13:12 19:6:14:1 19:6:15:1 19:6:16:9 19:6:17:13 19:6:18:1 19:6:19:0 19:6:20:1 #19:7:0:19 19:7:1:0 19:7:2:1 19:7:3:1 19:7:4:3 19:7:5:4 19:7:6:1 19:7:7:5 19:7:8:3 19:7:9:1 19:7:10:9 19:7:11:2 19:7:12:7 19:7:13:7 19:7:14:5 19:7:15:4 19:7:16:11 19:7:17:9 19:7:18:1 19:7:19:0 19:7:20:19 #19:8:0:19 19:8:1:0 19:8:2:1 19:8:3:1 19:8:4:1 19:8:5:1 19:8:6:1 19:8:7:4 19:8:8:1 19:8:9:1 19:8:10:1 19:8:11:5 19:8:12:1 19:8:13:3 19:8:14:11 19:8:15:1 19:8:16:1 19:8:17:1 19:8:18:1 19:8:19:0 19:8:20:1 #19:9:0:19 19:9:1:0 19:9:2:1 19:9:3:1 19:9:4:3 19:9:5:4 19:9:6:1 19:9:7:6 19:9:8:3 19:9:9:1 19:9:10:9 19:9:11:7 19:9:12:7 19:9:13:5 19:9:14:13 19:9:15:4 19:9:16:3 19:9:17:2 19:9:18:1 19:9:19:0 19:9:20:19 #19:10:0:19 19:10:1:0 19:10:2:1 19:10:3:1 19:10:4:1 19:10:5:1 19:10:6:1 19:10:7:2 19:10:8:1 19:10:9:1 19:10:10:1 19:10:11:1 19:10:12:1 19:10:13:4 19:10:14:9 19:10:15:1 19:10:16:9 19:10:17:4 19:10:18:1 19:10:19:0 19:10:20:1 #19:11:0:19 19:11:1:0 19:11:2:1 19:11:3:1 19:11:4:3 19:11:5:4 19:11:6:1 19:11:7:3 19:11:8:3 19:11:9:1 19:11:10:9 19:11:11:8 19:11:12:7 19:11:13:11 19:11:14:3 19:11:15:4 19:11:16:11 19:11:17:8 19:11:18:1 19:11:19:0 19:11:20:19 #19:12:0:19 19:12:1:0 19:12:2:1 19:12:3:1 19:12:4:1 19:12:5:1 19:12:6:1 19:12:7:1 19:12:8:1 19:12:9:1 19:12:10:1 19:12:11:9 19:12:12:1 19:12:13:1 19:12:14:1 19:12:15:1 19:12:16:1 19:12:17:16 19:12:18:1 19:12:19:0 19:12:20:1 #19:13:0:19 19:13:1:0 19:13:2:1 19:13:3:1 19:13:4:3 19:13:5:4 19:13:6:1 19:13:7:5 19:13:8:3 19:13:9:1 19:13:10:9 19:13:11:6 19:13:12:7 19:13:13:6 19:13:14:5 19:13:15:4 19:13:16:3 19:13:17:15 19:13:18:1 19:13:19:0 19:13:20:19 #19:14:0:19 19:14:1:0 19:14:2:1 19:14:3:1 19:14:4:1 19:14:5:1 19:14:6:1 19:14:7:4 19:14:8:1 19:14:9:1 19:14:10:1 19:14:11:4 19:14:12:1 19:14:13:10 19:14:14:11 19:14:15:1 19:14:16:9 19:14:17:13 19:14:18:1 19:14:19:0 19:14:20:1 #19:15:0:19 19:15:1:0 19:15:2:1 19:15:3:1 19:15:4:3 19:15:5:4 19:15:6:1 19:15:7:6 19:15:8:3 19:15:9:1 19:15:10:9 19:15:11:10 19:15:12:7 19:15:13:8 19:15:14:13 19:15:15:4 19:15:16:11 19:15:17:9 19:15:18:1 19:15:19:0 19:15:20:19 #19:16:0:19 19:16:1:0 19:16:2:1 19:16:3:1 19:16:4:1 19:16:5:1 19:16:6:1 19:16:7:2 19:16:8:1 19:16:9:1 19:16:10:1 19:16:11:3 19:16:12:1 19:16:13:9 19:16:14:9 19:16:15:1 19:16:16:1 19:16:17:1 19:16:18:1 19:16:19:0 19:16:20:1 #19:17:0:19 19:17:1:0 19:17:2:1 19:17:3:1 19:17:4:3 19:17:5:4 19:17:6:1 19:17:7:3 19:17:8:3 19:17:9:1 19:17:10:9 19:17:11:2 19:17:12:7 19:17:13:2 19:17:14:3 19:17:15:4 19:17:16:3 19:17:17:2 19:17:18:1 19:17:19:0 19:17:20:19 #19:18:0:19 19:18:1:0 19:18:2:1 19:18:3:1 19:18:4:1 19:18:5:1 19:18:6:1 19:18:7:1 19:18:8:1 19:18:9:1 19:18:10:1 19:18:11:5 19:18:12:1 19:18:13:12 19:18:14:1 19:18:15:1 19:18:16:9 19:18:17:4 19:18:18:1 19:18:19:0 19:18:20:1 #19:19:0:19 19:19:1:0 19:19:2:1 19:19:3:1 19:19:4:3 19:19:5:4 19:19:6:1 19:19:7:5 19:19:8:3 19:19:9:1 19:19:10:9 19:19:11:7 19:19:12:7 19:19:13:7 19:19:14:5 19:19:15:4 19:19:16:11 19:19:17:8 19:19:18:1 19:19:19:0 19:19:20:19 #19:20:0:19 19:20:1:0 19:20:2:1 19:20:3:1 19:20:4:1 19:20:5:1 19:20:6:1 19:20:7:4 19:20:8:1 19:20:9:1 19:20:10:1 19:20:11:1 19:20:12:1 19:20:13:3 19:20:14:11 19:20:15:1 19:20:16:1 19:20:17:16 19:20:18:1 19:20:19:0 19:20:20:1 #20:0:0:20 20:0:1:0 20:0:2:1 20:0:3:1 20:0:4:1 20:0:5:1 20:0:6:1 20:0:7:1 20:0:8:1 20:0:9:1 20:0:10:1 20:0:11:1 20:0:12:1 20:0:13:1 20:0:14:1 20:0:15:1 20:0:16:1 20:0:17:1 20:0:18:1 20:0:19:1 20:0:20:1 #20:1:0:20 20:1:1:0 20:1:2:0 20:1:3:2 20:1:4:0 20:1:5:0 20:1:6:2 20:1:7:6 20:1:8:4 20:1:9:2 20:1:10:0 20:1:11:9 20:1:12:8 20:1:13:7 20:1:14:6 20:1:15:5 20:1:16:4 20:1:17:3 20:1:18:2 20:1:19:1 20:1:20:0 #20:2:0:20 20:2:1:0 20:2:2:0 20:2:3:1 20:2:4:0 20:2:5:0 20:2:6:4 20:2:7:1 20:2:8:0 20:2:9:4 20:2:10:0 20:2:11:4 20:2:12:4 20:2:13:10 20:2:14:8 20:2:15:10 20:2:16:0 20:2:17:9 20:2:18:4 20:2:19:1 20:2:20:0 #20:3:0:20 20:3:1:0 20:3:2:0 20:3:3:2 20:3:4:0 20:3:5:0 20:3:6:2 20:3:7:6 20:3:8:0 20:3:9:8 20:3:10:0 20:3:11:3 20:3:12:8 20:3:13:5 20:3:14:6 20:3:15:5 20:3:16:0 20:3:17:10 20:3:18:8 20:3:19:1 20:3:20:0 #20:4:0:20 20:4:1:0 20:4:2:0 20:4:3:1 20:4:4:0 20:4:5:0 20:4:6:4 20:4:7:1 20:4:8:0 20:4:9:7 20:4:10:0 20:4:11:5 20:4:12:4 20:4:13:9 20:4:14:8 20:4:15:10 20:4:16:0 20:4:17:13 20:4:18:16 20:4:19:1 20:4:20:0 #20:5:0:20 20:5:1:0 20:5:2:0 20:5:3:2 20:5:4:0 20:5:5:0 20:5:6:2 20:5:7:6 20:5:8:0 20:5:9:5 20:5:10:0 20:5:11:1 20:5:12:8 20:5:13:11 20:5:14:6 20:5:15:5 20:5:16:0 20:5:17:5 20:5:18:14 20:5:19:1 20:5:20:0 #20:6:0:20 20:6:1:0 20:6:2:0 20:6:3:1 20:6:4:0 20:6:5:0 20:6:6:4 20:6:7:1 20:6:8:0 20:6:9:1 20:6:10:0 20:6:11:9 20:6:12:4 20:6:13:12 20:6:14:8 20:6:15:10 20:6:16:0 20:6:17:15 20:6:18:10 20:6:19:1 20:6:20:0 #20:7:0:20 20:7:1:0 20:7:2:0 20:7:3:2 20:7:4:0 20:7:5:0 20:7:6:2 20:7:7:6 20:7:8:0 20:7:9:2 20:7:10:0 20:7:11:4 20:7:12:8 20:7:13:6 20:7:14:6 20:7:15:5 20:7:16:0 20:7:17:11 20:7:18:2 20:7:19:1 20:7:20:0 #20:8:0:20 20:8:1:0 20:8:2:0 20:8:3:1 20:8:4:0 20:8:5:0 20:8:6:4 20:8:7:1 20:8:8:0 20:8:9:4 20:8:10:0 20:8:11:3 20:8:12:4 20:8:13:3 20:8:14:8 20:8:15:10 20:8:16:0 20:8:17:16 20:8:18:4 20:8:19:1 20:8:20:0 #20:9:0:20 20:9:1:0 20:9:2:0 20:9:3:2 20:9:4:0 20:9:5:0 20:9:6:2 20:9:7:6 20:9:8:0 20:9:9:8 20:9:10:0 20:9:11:5 20:9:12:8 20:9:13:8 20:9:14:6 20:9:15:5 20:9:16:0 20:9:17:14 20:9:18:8 20:9:19:1 20:9:20:0 #20:10:0:20 20:10:1:0 20:10:2:0 20:10:3:1 20:10:4:0 20:10:5:0 20:10:6:4 20:10:7:1 20:10:8:0 20:10:9:7 20:10:10:0 20:10:11:1 20:10:12:4 20:10:13:4 20:10:14:8 20:10:15:10 20:10:16:0 20:10:17:8 20:10:18:16 20:10:19:1 20:10:20:0 #20:11:0:20 20:11:1:0 20:11:2:0 20:11:3:2 20:11:4:0 20:11:5:0 20:11:6:2 20:11:7:6 20:11:8:0 20:11:9:5 20:11:10:0 20:11:11:9 20:11:12:8 20:11:13:2 20:11:14:6 20:11:15:5 20:11:16:0 20:11:17:7 20:11:18:14 20:11:19:1 20:11:20:0 #20:12:0:20 20:12:1:0 20:12:2:0 20:12:3:1 20:12:4:0 20:12:5:0 20:12:6:4 20:12:7:1 20:12:8:0 20:12:9:1 20:12:10:0 20:12:11:4 20:12:12:4 20:12:13:1 20:12:14:8 20:12:15:10 20:12:16:0 20:12:17:4 20:12:18:10 20:12:19:1 20:12:20:0 #20:13:0:20 20:13:1:0 20:13:2:0 20:13:3:2 20:13:4:0 20:13:5:0 20:13:6:2 20:13:7:6 20:13:8:0 20:13:9:2 20:13:10:0 20:13:11:3 20:13:12:8 20:13:13:7 20:13:14:6 20:13:15:5 20:13:16:0 20:13:17:12 20:13:18:2 20:13:19:1 20:13:20:0 #20:14:0:20 20:14:1:0 20:14:2:0 20:14:3:1 20:14:4:0 20:14:5:0 20:14:6:4 20:14:7:1 20:14:8:0 20:14:9:4 20:14:10:0 20:14:11:5 20:14:12:4 20:14:13:10 20:14:14:8 20:14:15:10 20:14:16:0 20:14:17:2 20:14:18:4 20:14:19:1 20:14:20:0 #20:15:0:20 20:15:1:0 20:15:2:0 20:15:3:2 20:15:4:0 20:15:5:0 20:15:6:2 20:15:7:6 20:15:8:0 20:15:9:8 20:15:10:0 20:15:11:1 20:15:12:8 20:15:13:5 20:15:14:6 20:15:15:5 20:15:16:0 20:15:17:6 20:15:18:8 20:15:19:1 20:15:20:0 #20:16:0:20 20:16:1:0 20:16:2:0 20:16:3:1 20:16:4:0 20:16:5:0 20:16:6:4 20:16:7:1 20:16:8:0 20:16:9:7 20:16:10:0 20:16:11:9 20:16:12:4 20:16:13:9 20:16:14:8 20:16:15:10 20:16:16:0 20:16:17:1 20:16:18:16 20:16:19:1 20:16:20:0 #20:17:0:20 20:17:1:0 20:17:2:0 20:17:3:2 20:17:4:0 20:17:5:0 20:17:6:2 20:17:7:6 20:17:8:0 20:17:9:5 20:17:10:0 20:17:11:4 20:17:12:8 20:17:13:11 20:17:14:6 20:17:15:5 20:17:16:0 20:17:17:3 20:17:18:14 20:17:19:1 20:17:20:0 #20:18:0:20 20:18:1:0 20:18:2:0 20:18:3:1 20:18:4:0 20:18:5:0 20:18:6:4 20:18:7:1 20:18:8:0 20:18:9:1 20:18:10:0 20:18:11:3 20:18:12:4 20:18:13:12 20:18:14:8 20:18:15:10 20:18:16:0 20:18:17:9 20:18:18:10 20:18:19:1 20:18:20:0 #20:19:0:20 20:19:1:0 20:19:2:0 20:19:3:2 20:19:4:0 20:19:5:0 20:19:6:2 20:19:7:6 20:19:8:0 20:19:9:2 20:19:10:0 20:19:11:5 20:19:12:8 20:19:13:6 20:19:14:6 20:19:15:5 20:19:16:0 20:19:17:10 20:19:18:2 20:19:19:1 20:19:20:0 #20:20:0:20 20:20:1:0 20:20:2:0 20:20:3:1 20:20:4:0 20:20:5:0 20:20:6:4 20:20:7:1 20:20:8:0 20:20:9:4 20:20:10:0 20:20:11:1 20:20:12:4 20:20:13:3 20:20:14:8 20:20:15:10 20:20:16:0 20:20:17:13 20:20:18:4 20:20:19:1 20:20:20:0 # Big random numbers. 541:932:670:551 498:741:2680:1408 493:294:29036:23885 677:381:502319:424929 124:644:7815376:4902592 426:674:47705196:2470560 155:403:271658034:152714351 427:777:7990472785:2194110682 541:674:84600919454:17880105491 253:135:112528687926:77780019859 276:467:6122946012602:3096828804900 699:780:88480707542432:8894145315281 138:333:349791384844673:207924571073190 831:100:5854671569773773:4440287816019162 200:836:79038250231977980:35876942782673280 811:741:262201765657826441:85984560493797893 753:895:7388064555903808170:1339377145516017987 286:480:54531236813928854129:43472388089876990938 491:9803:285:161 433:9659:9871:1465 684:5067:62231:23717 394:4166:519632:501024 308:6701:8044636:3396276 640:5574:76215172:12639896 808:5113:131053547:70094021 121:6507:9714479326:5503201901 331:2057:59233158691:21832383773 467:9658:275940562063:118346986660 640:8151:9607541157595:8654341820635 734:8303:35705723433562:10983103751332 848:8993:110609576255236:105032128915984 126:7721:7911054700394194:3065609710284666 293:7473:86189023701437480:39136164821952053 555:4499:334838206326379543:217033347465538026 278:8664:2778564673161967338:2120193459410838112 924:5030:44112241480900862925:5853445669636213851 783:75508:980:1 790:89067:8822:7726 717:62743:22972:4717 701:18606:559823:437055 772:94978:3268034:2906654 530:20956:59311351:1450546 345:81569:508697885:346063565 231:18408:7806728798:508476419 565:45522:25042780712:8220171345 812:53244:909369872313:488516394478 551:68433:1935753632100:1873501974251 894:53151:94742836908308:20236603928548 731:80470:807760250301739:706525077838934 767:81348:8485082936215942:4707824873846599 774:20201:85009547437512836:13098723952095424 626:24968:343839340372068071:233809051594134824 211:16238:9775086293701306245:1224272992724500636 311:41471:64058629844284800999:38568043487197139129 277:733219:338:251 283:813026:7716:1645 191:288862:53410:19091 236:996237:279188:167796 516:464599:6709608:3939840 382:805803:65474738:4357886 271:652960:609995674:466915967 489:111032:6479461981:1342731508 715:337403:85858682552:61933684155 224:233900:745567785838:597129478158 669:228678:1141386674103:336943853505 920:762949:28775289412198:16830263994260 586:428461:512653996846703:501202195027249 888:139025:2139987661831769:1156452254146473 567:341378:10568081898469204:7720172962148489 740:989293:193538031552851328:24393474289875584 100:271606:8724538733549024775:1428699418275160975 140:173021:59846738846570856659:43219946764093194084 653:9614244:464:161 680:1864916:7213:2186 114:9726128:81366:7278 896:8675941:494012:153176 357:5449387:5799628:2788601 724:5238068:35357925:6135301 994:4033780:887957976:137621872 517:2769973:9557521723:4244998651 281:3555901:90755622720:16603302521 105:3437874:754380655775:73057833400 730:2415908:3044449833105:2669580139030 287:5472053:11883757191483:4922772001217 449:5037773:273037505443735:44278239317889 733:9477665:7915870602107761:7387949851323917 109:9721684:71141784154170477:68561542302260668 563:5834073:103693130265475231:67323100545011505 411:3298330:5683448882990098162:5185124661333521931 127:8294662:23004302162139021508:4694297664746943125 874:20102901:649:181 971:15478949:5544:1907 860:27235775:68780:15320 839:84217637:664946:242159 904:79326096:3506461:2716127 144:69136272:79690052:13872860 117:93882782:340384276:215896569 910:39553137:2084943486:1900134796 726:40739946:13161645477:2570575770 399:89280294:381998874843:293309377182 265:30717048:7170593453793:4731708735370 356:75194979:85743937410153:81298827223067 102:82903853:632474475812580:152423018474472 864:80373596:8471790831846713:7114746809062741 953:81404302:59670219812529475:34918987140857809 424:53972813:773785741386205243:618032041370694417 562:75700680:7339122993873807100:2902317585126748076 289:57951507:30445461016021299051:10353055399247003230 913:816569729:625:123 716:677654571:7584:5696 128:886627167:76824:512 358:708776197:599937:477913 687:913202087:9266684:2944411 712:652743105:71531194:56444366 428:617635642:350293434:335458816 343:986629398:4990141032:3864821545 974:287254454:55495610693:34785576931 726:953544142:466450699360:415050029216 251:234480022:5505621483891:1263352976011 246:410380258:75603089710301:11802900653375 338:958913179:721536315372638:643758569378034 455:765230296:6499613307910203:21102003223717 388:756154159:46587353740800261:15196260301988599 508:240252491:443404347535246315:343870473061272587 985:955930099:5446929295683463407:3595799635029690943 458:264683008:72046116068526564402:11325826018497849982 566:4821175400:586:222 454:8468110056:4437:2872 487:3895397439:31089:6700 856:4811847765:381041:188177 991:4048747767:7705495:4753036 317:7754450053:27029860:20662777 329:3269671879:599955218:88961327 354:3276285524:2700459227:1542551681 747:3068267390:33591131025:18357224574 912:7482140686:410638275166:119137041732 919:2180728302:8764448277705:7045754421241 459:5883070584:23402365905881:12932158115033 527:4184532134:598093895000592:364336399657537 334:4278374376:2350297638367788:1188327483963592 468:4016253803:61083183897586343:41101540908612478 411:3225649770:354575772961695456:323162216307436473 899:5001209429:2738001529528063689:730329296722705379 482:7607104246:39402731724352549380:18640684735753395784 124:29619454271:806:496 160:25346208232:7070:6140 343:80523785208:54478:38899 687:84003694801:717285:657402 174:36340932765:2138855:141189 505:40913789941:52291758:12861367 210:60645307810:265125837:195842172 923:98555562056:3947562397:2879856215 187:41374855734:80672179206:39885770215 951:96968130116:664640729484:630991430553 552:53500079019:6354687049874:4029285662160 534:61335642628:92569366360482:74831884334178 809:32327640724:353013771793978:280405976246833 748:45964888043:1815270043263841:898660373443764 915:52181489221:31790237231167122:10750862876997753 383:91202315773:748549666681797028:142695347546974167 950:84707977999:6048325856431282151:2637422906721578197 669:58555710765:34498699741749743308:19067597447262965313 996:686313123008:134:40 117:857561367753:7783:7546 851:888314121547:26972:23039 666:575632910638:846814:123672 674:935899601112:9180120:896656 618:600045854143:56419192:3084024 810:139818291070:210326144:81804032 456:892486845958:6583221542:3724190372 449:532249312372:79910492382:42882472207 641:335427855689:640748552784:385354813025 880:588959161928:4827389332310:4550189563270 687:734449900510:59357362221044:38498644583429 275:342861418533:241746750343324:195820318160563 785:947766395923:1366961055230520:57909677882465 322:103489080106:55491826545258921:14376492804961654 336:126148629530:195382478471060116:12625416423385812 823:388558820114:3375881238392049662:1654732438966871137 236:809576086746:45111728136508321755:43366187214743553526 304:6544825297817:401:115 822:1041850306553:3545:1992 762:1274948304343:47868:46788 839:8817123479840:710199:191101 734:6170382452582:1090297:821077 303:1961858564926:53475460:3719729 991:3468276219840:371651468:23478689 396:5510689408386:6508046353:2184750505 965:6227294608125:64846432467:33296404076 210:2292857151265:860571636821:741254692791 736:2644295951836:7395235261275:7196104464661 711:3198669572918:27941174732548:24238229331325 252:3550101303954:454948056603707:430706679897783 947:2283269275245:4962311606702602:2014098536996043 773:3494560742227:17354699847788665:10339822809615367 403:9294064317604:997167571387490845:533807049474008986 868:8214007499906:2583937445775536643:768064343789564311 780:6950923896388:87140635971904578979:73285647998001227025 289:18176184617269:247:237 533:41285877605812:7874:273 879:54987151347784:35620:21581 499:37729900657654:449103:24013 565:22176798676146:5395445:4387640 600:87410701522723:78957262:49907700 638:20573493689081:169774709:153647079 571:90012147014324:5500234653:2671742950 132:57616582779203:77069416612:64190992708 154:36473576440930:882596087373:805193998840 155:96921819408210:6933594025610:2187598810755 120:63944296739519:32342000048338:13713144474796 747:96639324924747:198562315394871:38338658410041 155:31831684436888:4935816573506318:266693577484441 378:49745506358859:28538133690039055:5283290550024697 954:34502023467402:755727784274586701:470810447339421603 110:94624329847330:7853884576995542451:4089217306802701240 413:36223308875541:98281527362011388746:11198539887871397879 639:728825936801925:484:199 377:407072194092404:4129:3234 909:791459715479901:34438:8173 226:871953339504066:405661:339404 960:668492985726803:8377315:3935785 252:155091892085479:84569696:67576672 912:735961143419185:856509673:592786388 771:612749884828694:6213893781:4591712394 712:756130542950598:62211312817:38190055470 789:160430731258789:348667040419:170998932132 769:614450048738729:3255133918424:1944746785257 155:920787842173189:66230063875601:62163794442821 353:720496553083008:289261132808752:69342567854561 771:515727422444023:7255596204648408:4009845567790347 775:267150795381707:50251709472030599:3274297709874053 638:154672599220301:371389382024641285:138195533599750658 304:852047525193663:8588279505438230041:6305005232098827663 832:562298346877453:10883355356353643360:3601592161191729152 306:1793669117438195:118:8 385:1494728422815056:9566:6135 312:8613346033711132:99016:7152 854:1658021455380572:177874:81270 199:8786867326632310:9995419:7730762 419:6535389224350283:92736172:29654687 970:9193551725263408:961766232:375036064 521:7168491268366137:6639630204:1626549833 472:9868756830720938:27362666292:24877807360 215:7597422681616918:219517602772:32432656585 546:4010830062082047:4768881578787:224381480991 529:1688108904812713:19092935555944:6044207036513 624:8667896243877413:398290687636654:187370800004534 735:2701275905572286:6338453112578830:2152058633744605 176:3632757383390618:34617681097835727:3450017249155360 440:4143280564693164:654431539282845554:440852019577359048 448:5204092081606634:3801611746099362677:323384817861754522 260:8996688767977698:74541650780569130755:62252285012284906845 486:74907312959125146:113:104 614:62420876258442732:3071:2184 571:66136018550626742:25647:17968 947:16459926297416807:485637:407213 699:90928336941533034:7804147:7210308 929:50875159233190165:19560567:2536397 384:16327583871087382:967173437:909657362 515:43660630636130131:9850794211:2302031767 783:98273833093381740:51541282032:17583155025 273:42689080303125558:809341372393:313014469013 469:86868080949330440:2443651480531:1376104180294 505:97454563792610693:33152101456866:27457834779187 603:95438627173313480:942457687707338:229878491749611 984:13971074089470519:1440129649181882:1249491694168400 543:63312091764456009:65335006568094954:20450517934770861 559:63066168227366366:599044375901820551:225882837197484261 333:54535129923485087:9394677212796276841:6114169849107283093 285:58955927937641060:35265743849940160638:2827996070653825365 229:757126199208333334:730:411 821:605102649286980882:1513:467 309:455795539054877381:57779:32803 489:364068481729991947:262165:116549 294:458872684557730002:9885089:6834053 641:386625021438802785:56375034:10897307 960:187219068471686843:669674498:55842992 815:294711987711331957:5536671430:4212000005 641:113336579423751347:92205264639:26355929303 623:951856311780946516:153224923851:113209748215 626:993554233448532199:4100775530601:398639110631 361:601607488390352321:25359914095854:4179662063035 803:903500368651605123:550187970121531:57339305924326 151:617302634339200927:9018586042257460:6501945329683351 416:987049760568575120:98071471663828513:50125494597106415 408:908980605592682535:129743638811191470:8161627593335172 849:735212412036186942:4453007125107739043:1886519840032979206 531:729597717179176661:70892474319080235422:42791833297642602417 406:1608424639307301469:179:88 821:3281561013582791867:1242:1067 717:2609675391580266519:22378:11471 778:7423178177661517742:432339:119773 363:6207616571730673157:2776210:1069343 317:9819726936716946938:90209658:29082925 459:3778230640303434833:264959564:255266519 338:4494489475107313441:2746599842:1596572378 841:3450402144463455963:23654904740:20979754661 471:1045075053100024861:437093357753:66946790628 100:1843432010991924512:9970495246023:5049778053583 867:2944435968628882927:84798580419535:10058649044293 238:2707797992244045514:547414175218257:246161552983744 358:1259666525196620536:8371208441022811:7501623790481064 423:4315959484198394184:19453142439509494:18196590058885181 874:6918420591558430228:137473827881691075:76683768515849926 488:3879974403126492601:5161910852220653205:672077907793390898 430:2340103535838657779:65368589225996198225:44189874666468197475 574:24577393525703886617:976:320 439:33988657781759381623:7390:6539 885:83528490909139545882:52061:37148 729:64449258383955216741:197736:152265 482:86977718647397157175:4347853:245807 469:96195863551802367747:41019041:11610179 547:36574252084680039796:224718366:34749895 740:48233488691539231147:2438740369:1728759161 121:55335863900366064736:31664427192:30778493953 194:25598877743099126327:259780309579:104574276383 397:28432649615448087634:3014688724427:2011954455497 524:92003806046154104905:89960738739810:63942569949614 699:42033079237537633355:394704718824239:224733294767653 773:86726013776722959415:9083324622900914:7258729590126221 136:58187055860664203574:18744511908886102:7630357844549928 670:59639802768217191449:793845932275008677:691432212693916954 468:47059837801958841460:7590233695980572030:5579143954334282166 499:92607816741351725511:66813567930176817887:9165758696281630385 9250:242:274:238 9376:249:8994:2980 3346:274:10068:9436 5095:828:565624:346889 4673:619:5632516:1638377 3477:687:79695569:53004314 5332:709:902030542:837264580 9302:217:3915358783:2843180661 8248:799:73341685228:30201617980 3093:794:624212545109:267540207867 6481:175:1491320447394:744633970363 6252:737:53518467907148:20100655323660 2601:760:999606579587125:334548811373751 9407:450:9509386659050737:2458708607027001 1877:536:28345449713392523:299773193789111 5127:288:208973669972326217:178192500074119301 1966:805:9659023675504187722:8205463578481497180 3671:240:75643603693193329380:5972984960525001901 2586:5111:216:0 1437:4279:6552:3789 3805:9851:96666:92785 9616:3501:384379:79792 5908:9379:9278539:2381099 3470:3622:82883013:37737193 6718:5267:710953069:2569474 3887:6489:4239059952:3271140479 5062:4378:95747224242:3373788298 5606:4962:186406938010:168774016496 4619:1186:9650886784029:5446284732322 3261:1546:39602536917202:18270819960051 1023:3673:657610082292190:468212426198343 5394:8153:1189967530979512:1072056142545472 1025:7330:92252907034230885:6028741218003475 2580:3239:417190934986661304:202667150414413512 2910:9659:6710143291140383696:6145130269259638016 1557:1842:94529356544471252218:44677250306517536113 9130:41371:479:119 7198:29210:1967:1152 8448:98050:92585:21759 4097:27867:792031:318319 6709:20523:2170696:644533 5074:15799:21437049:4092196 1059:24669:108481837:104266557 9509:68536:5324296621:1719323162 5647:41632:49751669959:48694928402 8235:10347:315556377117:155284406628 8018:83942:8338638848460:212701873984 9815:70599:95588152222477:67523372108278 5940:48546:931628360613819:535226877461925 3707:32210:6285855529747646:5499323527926359 9597:29915:53313663634044745:45767248893426983 7576:52966:434240106426627315:55554241524234211 4960:54183:9694281233824917054:8433337204229197720 2578:61629:57459340937855600911:42925282921958759556 2962:317434:978:514 5852:526094:2087:1710 5469:977536:38845:24056 3620:807430:909942:513316 6405:423985:2319411:276267 4483:150899:95908863:34430131 8238:527509:439531579:239282629 4889:171778:6886388472:3052067377 2444:804816:97842315561:61261292719 7965:353116:909234298599:717358345716 2787:769323:4117807767872:2244022790171 2739:854333:63715677724513:11730951498891 1636:503983:341941567364553:267194339089303 9996:563706:9422827161283384:8868032782443608 4795:585023:38524615994496834:26289341207006035 6679:978096:621730900231956246:301098278755384555 1883:647697:6621310578836552379:5575612502073853664 9208:992700:39569404636399084231:1694243888580719188 7077:4090805:337:0 5005:7253450:6729:1645 8159:6468553:52926:23303 2789:7316600:831629:717216 1488:3568611:6803512:2420848 1342:4964627:24026572:18354200 7711:7755469:777609453:594129859 7384:1226404:5140247105:3729956896 4803:6832674:13688587620:1907613909 7956:9734619:149824113422:31914415978 8903:3314102:7157177975964:6982144026385 2905:8646545:71904120281882:27529054059955 1949:7625615:392193391025788:15389674868237 6218:1167719:3937029063190880:861799833504512 3807:3430621:44636485428713308:16143374141327431 7333:9504715:285301981686498190:247218149243045497 4420:9527763:6504600586158728631:4261164508988750809 2909:7608244:53147366783094424738:52526669057942598791 2307:54306242:488:121 3309:24078826:2599:2493 8527:64963425:76807:64813 5694:70819604:436434:13932 9144:64603444:1879221:1118346 5372:18165967:31968308:15288404 3471:65973208:958353890:781590511 6455:33909056:9612859386:2584832695 9735:95427211:54415197708:30269705751 5444:49074277:876930483453:765951119360 6086:52289071:7227438934312:5137969190760 1323:68277426:49416527280480:45094045936569 4770:10609616:688923808430372:509950792886272 9704:80903479:9678155562926597:5194077399322080 3034:40735614:23740610470554156:16389085886539564 3153:55409727:132883133626614050:83956914371512937 9668:76068645:5398216779236738507:2100005914654911241 9963:56889658:43539517316851979273:677140377465862271 7416:802387642:146:76 8784:238159549:4869:2772 9778:981796802:23416:1776 7237:856699275:541770:111193 6405:398028256:2752001:998060 3191:337820794:69760696:46410097 3325:884718359:431742011:346082334 3764:512952796:6639391079:39581955 2368:251258206:38253878339:987102833 2351:203039846:595855342436:575263204073 5313:713435825:8316186343462:185916465119 3198:377873762:73549285599254:6376416251814 9039:170257466:972441977677672:709041698857369 1944:473023445:2874307406994219:2455244876385507 6516:495066866:59010515115195169:40668745550557614 3984:984128370:485655289225191996:110653875401668872 4644:872020651:5541911523091654228:1249085883741819140 7532:843086527:29662324094854757274:29299821754477506134 2400:2772684930:864:0 4487:3917424777:9166:2983 2546:9692638116:15308:10880 3436:4278436391:271230:65116 3464:1109381609:9807745:6315359 5702:5028696762:95892723:92021869 4542:1761508176:190561473:73771677 6306:6124869950:6906014871:1440087111 5699:4973147705:19898748340:2354590659 8507:7079281367:286688764878:91833505895 6260:8800237674:1748073539743:1106310808646 5053:7880898212:78294227246840:21091488568001 5811:2759668902:744384639956206:555025964153493 4450:8811262959:4992144512296162:4858566012043236 4939:2299490696:48047733487431617:47468384390935101 8022:6225818630:225833887761859721:32152929179139606 4581:7794255769:1144569361272522848:810771766775818853 3325:4031561993:21070206067430362109:11228941330426343488 5385:12143565654:848:433 1538:80858215598:8197:4764 1804:24477335127:27487:4985 4685:24778112385:458168:71341 4045:15712191755:7167491:6144857 2663:23792440524:79273289:55131360 4483:35323941174:704878460:26099709 6292:73550269377:2021487637:550434157 3247:24078711443:99220084661:63770845839 5202:34968888491:771435959463:196634046681 2899:50876814254:5679808284951:3818116194373 2675:38060653144:76803578355457:73738587259139 6722:34412073775:564486001442718:241205742249956 8923:98120929416:4983200630526672:95345362635697 1560:59641973528:11786515127941581:8801377162761555 2123:50526510141:867916513655814763:393793475740076007 4852:20642677148:2355450972959957663:1218124998390224716 3196:13267403586:41447119246119501050:34916564259606697596 2134:895400689189:861:307 6357:466805574413:8380:6917 7033:284585813148:96285:72766 5066:897147332608:233410:112676 3767:938768586294:3691674:2121841 2129:494190132984:57779515:5416796 6020:892094685680:269475611:264542084 7174:383114422514:1974450693:1868405506 8838:977436883499:18786835130:8563149982 5855:283503557405:848369393341:258620241100 2010:823099451638:1878176658724:1435249027028 6523:664682771440:76966702184240:58793208690161 2486:998070174159:957549440426476:345124488329108 5110:487710182931:1005754567936887:595847637784666 6747:220552741514:30555837397630838:21466336192328367 7644:240107853460:688064727963175610:350960107906750566 9591:766712944449:3240282346438251320:2573930969560112831 3145:508333184363:55764145174613015526:3621643918918359727 7623:8527792596949:919:271 3768:3611265103664:7006:6716 5968:5310409494929:56580:27208 1495:4679688503399:661185:525835 7357:8681636677346:5408301:4758799 4756:9334718245601:49024481:21010840 5003:4085337959860:816741585:762222781 8313:9054317633516:4791511228:2002982473 3579:4931968773696:35571554866:24224094927 3580:3556605348293:935407280865:123924147925 1912:3719834223385:7326657470021:1226391478065 9719:2857336029186:53362944852556:32408806480501 9347:6587253990288:247015332424515:165152490636001 3663:6275070437717:1737231563576657:601368406332393 1223:6462739278267:95041662935119170:92792679920074217 9071:8482026895150:445005580339007122:257030600777081877 3402:4383138552657:5268939071706658662:4767790819207334304 6444:9660169044595:37976873004247400718:13773241075481362806 2235:84587929556982:770:15 4143:61280595092364:5053:1310 4435:60366794250913:63081:52810 5332:92057524775762:546060:521884 9210:30647261921258:3168949:2376175 9520:25122547313547:35774292:20817664 4408:89348422670298:101870535:6846529 1353:54300599165209:8536032352:8335385481 4171:59373133558626:66764430571:36443086061 5125:93243304884978:295189075771:294023788873 2840:61987439183179:4745621832774:1658554994894 7841:12612423690727:30105934487350:30064718453431 4211:59147739209433:632542830266844:159930975568967 1352:82472810942973:5737644663182886:3961550998556438 5537:61035840114519:11030507287571197:10932727135175936 1083:28229976755875:979497610087445233:613308919278585969 5754:49922859120049:9471067634682646994:4613235145868145520 7398:55418156196005:60157757492482582666:36263350060365613650 5969:649547611177319:151:21 8102:846967283405931:7035:818 8698:170606506437751:35953:22469 1766:731696749021876:311846:243334 5675:494867704707807:3136304:2695075 5295:852572540807740:76269883:24038255 3027:184722586124805:512893839:369244230 5274:279191734951863:5366977885:4136158384 5394:878970406298425:36296984272:8345812736 4740:794631760078117:325114906646:119082173414 3298:665841849296880:2566892047358:1411268604188 9749:867643392148443:53266957772786:22503511554473 8084:113776400431153:708745642225002:431686543091258 2133:493841798489999:3698437069848346:1179239448407219 2311:158018779045248:88266914739131958:26237698484998537 1817:346699636037739:113702464524166828:73132080930039225 9299:279777165419517:1831666488398835869:630505053689873246 7617:302415073941201:99147984924680642004:69246313770922124661 7167:5581318783925089:381:372 2974:8363110174572189:5746:1104 3923:6225718933103090:87336:28513 6341:6105804618962551:217912:59437 3608:5382841696217342:2733197:1806934 5221:8662202904470592:61208816:23596673 2949:2552461905904704:396699311:239324067 9592:1033389062813014:4195899669:4124577415 7647:7688045755197997:94247283456:72473108319 9579:7998160522454752:345288105134:191549022039 6303:5171972286043661:2290494438294:2011882734309 8424:7731930531357402:68984471365861:66189023165494 4032:5742589820875145:383390769543204:153556577331624 9057:6345362004345914:3275959703037768:3093393307711113 6771:1522754171127911:12418680825820577:1649476247609614 2100:1874337349353160:157099358451355903:151128331993260161 3886:9189779590745487:6580713040658081717:6234985690354128611 7444:9123014556519172:84287992140813135320:24246113551168402256 6563:84269677771348846:786:295 2107:15703793716535607:9605:1308 4536:65331170363455657:69182:61136 5184:42438863769311065:507256:257048 1716:34766085949852020:5830453:3346406 4612:69854474831104564:85812884:81223856 8498:48112178119852343:534591550:59236642 2978:89754482649309549:3727927485:834633008 8218:10541120782418259:92834907664:11256156816 3875:11368888847993867:791270154222:480800383523 9522:41774346558853419:4919662450425:114529424283 6115:72418317377058235:61812667120570:56985882500445 9640:45031144684449777:198382772271966:178024615998484 1639:49163754645905201:9014113473318825:7377286584843889 6811:38552952400753735:69108327621475531:31376308750822072 7753:19154404450021708:729037980839994099:284883188295109663 9658:95033288555604526:9922510903041611480:8921699904141674544 2515:29232619722333109:78701987875239732297:6030302722465788601 9876:314570336581604092:462:246 9288:220142523651449260:8954:1222 9186:422770663809522773:10095:3981 3320:131945129785348808:117112:41904 1084:375988959713616681:7379846:1522856 5847:790603461854347225:39372378:30777279 8522:900617175518904140:364484541:156335524 7073:589861958222961018:1428369925:700251969 2849:711355617462609887:32695748815:19591389154 1626:871129168187282254:542035282904:446881975552 8476:288495588196849108:9531124381194:1536084699448 2318:785672334809401314:14407927708458:11720392942666 4563:573512679998091084:286061882814438:106725334088409 8722:344140045108327300:9373634835393482:2681214082316186 2217:739243487777837231:57614980958717093:12690273676460614 7473:299532734909443333:949480990576093936:789282608133618961 3496:915771758492336559:7275814380126960848:2337049063938672480 8311:781050121051877525:28203088676544690136:12956773830364932279 6605:8179332054081530595:804:269 8260:4812834204262360017:1356:1312 4738:5659264302613195138:43395:14239 7116:4338872841022694023:663874:119792 1510:1459043366146773670:6701160:829240 6575:9611525475697388310:68735620:6904865 8034:4899676528233868217:834162824:402595440 8550:4861688397454136029:8048076681:6236748642 1674:9637318958128266218:21390698798:18494861456 6817:7944304883979651441:946797748147:858035526310 4419:2964827632312771575:6386183099190:4233514935069 6010:2839097505437261850:74142284100104:37814230676608 9000:2997075288014407868:732014442171597:353785529792139 5223:5497825947034298806:8457929590609178:6257291569485505 4292:8607088557923818176:44832236556036798:19788239936131786 9387:6419161717205555962:357429149116601062:292914815874927301 3301:3329132999021278329:1971536178526406004:672456241952116681 6798:6286956990158270864:87454739675598164127:37317091038623198136 7909:54383834293222216388:994:939 6219:31747563478750937647:7199:905 6476:32283484263205958082:76949:20917 9138:26415010580534094361:371805:5988 1929:63078234531669858118:3550589:2258869 9942:88156833716751061583:52762196:29143512 7029:60967195117196317916:112793425:62541571 9814:74412639091869000499:5311546141:432620777 2577:85331369987822878289:86860200014:57593972437 8752:92749348032075074261:628234612326:115921191220 7330:86488161895528985043:2993145890806:1473449371712 9570:44645700344446874338:67487287699480:65406753343800 1394:94586822834411493143:231471848412287:184763774544105 3894:64046335493424925511:4656473697573122:123396044320690 3545:34655813526936796814:77085584201947369:68802131688322254 3284:93355935159022330298:854525374753994007:732167680775599771 9078:56746348745269809538:6810183364996425133:6735664222577539669 9379:40119816689939502790:22725758290501445592:97781985296234401 77533:627:856:205 15545:386:4216:1001 45091:600:87422:29211 84790:508:140326:29360 14273:569:9702894:4462109 87524:367:58217977:48729124 86562:427:252734685:145459713 29291:235:1528892678:1413673073 67492:164:53865987474:33282487462 52246:991:310423049263:215251220123 62482:446:6671319476361:4824344308414 15450:435:27431482786637:17931247256457 82323:218:409505063799397:366311687156312 80446:624:5685590825634741:233342611907014 64414:511:76874061608215616:44783387174748352 99242:170:519294225700140916:498246855424435468 37909:967:3203203669104692883:1726648228474029004 96301:165:89710996229658616933:78214231652174803880 94393:3431:351:325 19313:7928:7935:7786 28305:9102:95876:32289 25265:6429:879080:457785 86435:3946:9843440:3556905 16265:6895:36846567:30822770 11979:4739:260385280:5424499 90716:7636:6673465677:1544197645 89804:7325:50069508655:5588368684 90040:4722:432155164109:79389496260 58349:8117:3627927835275:1546451423324 88444:3686:30173072151269:10610465154072 42298:2416:781233972533198:402579528033336 85965:7495:9196151983409420:6700791324519965 47637:5748:66560519278664332:22905866422784205 95903:1290:400225880608936047:273751647387981526 89461:8031:6803902485311766132:710292483666049033 67905:8900:93622881839174153067:32453091403736891976 63582:13184:675:351 23140:98922:2820:520 40324:99256:58472:43160 80961:21476:425403:63801 53853:43736:2500423:2457001 46402:61814:36784207:2648692 51701:54220:658667203:97101387 68852:90941:7031354665:2188299392 64487:41447:27002211888:14373647447 31054:61266:274550522948:258656877948 58633:23114:6126701974497:4746022484602 69784:67784:65758016245580:20279507109056 42886:62945:301483468379025:174803942750401 72754:93816:7819121867643748:2771455999050820 48391:91032:54416124632254190:6094891174320521 20342:56300:324161247217027186:248024878079342564 74030:85449:5005854280108528081:1928040689302208260 40304:64945:38120124633764879211:718999385837456801 65554:999963:736:32 37208:732587:2191:278 35250:771463:17730:6030 59221:374771:206362:67689 29753:882568:5722907:5677828 62201:261781:14123776:1049817 68726:743933:627267612:585778484 93990:162564:1716353195:600252895 83071:949356:36264639859:5821822483 66065:228102:799856729380:221217590285 53422:523126:6496586842871:3708643419961 20390:737128:20817919131354:1052432929282 17790:917530:851192019358079:579189086106565 85991:767044:8012353460605121:8002823701993552 78487:968721:55611234925072068:39723862107594139 51891:966991:709427338484780936:696920594100181731 62148:515726:1039778373482034397:53639889662825981 11668:432185:63385110814450295453:3988354427059986004 38100:4528985:990:450 62771:3748675:3850:1101 19824:8094160:15757:11508 32192:4755619:330439:238934 22647:5579992:4824791:2692522 59598:6799325:20388451:9386414 71225:4845225:323624590:216585265 45160:7321661:2310100504:81081008 94932:2445482:69498454080:56357810304 28854:2622840:667024034741:52647920482 84132:7154667:5991528203533:1732200105582 22559:3475612:34618346080022:1881606891337 15676:1379059:320227294041904:108161390425760 68481:1301502:5236013970636796:3110481944456953 95037:2928864:28520053109635609:19513814885823691 36736:6862061:913481445081669765:755064238640244526 41869:5911877:1317382133012481575:769360501314498564 14370:6740549:75522308728529758684:8788804968384227248 74453:15423884:739:522 53480:31388948:9396:5620 91164:16496739:17482:7018 69582:10033578:517986:48546 63212:66183156:1288727:1171571 86984:78042869:31150939:7704786 42507:71409318:823337086:698911955 56055:53388454:3723694495:994689110 86309:21948099:42860600825:2987725439 49104:40580914:239261331989:78738495177 71690:54090341:7365087036684:1773000467480 42514:13337764:63600985346197:54143628901605 40304:70421522:621420716903025:310030394357791 80557:22512874:3905754685368112:765858314820217 98822:17561931:90362566707129477:26124016105809926 34516:85108275:369478891489583432:141954795338017488 17064:86570394:8537129283965587229:3068544888705074630 26282:90309243:13265202178386660789:7836074374047714530 74644:835961971:598:2 15783:144919001:1779:63 95174:661427559:47835:33164 20769:713347039:638593:554872 69594:267302247:8741238:6328764 75212:421631179:12735731:4572051 23127:641254690:719472963:521176206 72933:562372262:8040930867:4783551336 14438:529109228:45991872596:7791049648 61764:980605719:687113740181:290505440928 35393:665312786:5515920391087:1632232797618 54034:432483223:59139828927148:28327175379808 97445:506385022:368376969026735:16235426819600 55262:903754183:7280561751884321:4660225864027823 91459:971755964:90080467406546649:75505934253926224 30687:867416545:709483889259383264:464306720452630335 48714:587195416:6134282649821919014:4738719366989245346 35526:834375936:82149331224113184878:35185544042972559328 93305:5075540322:238:183 87665:9842917234:8526:7375 47076:5392794326:92942:66568 46555:9474838810:304165:153085 24097:7039778379:7845893:2662657 44386:6546745442:64537353:57929899 85752:1824528648:559518249:304417338 97486:8985798702:4645003481:1099449333 69026:9030494784:46377274567:7174998273 13519:2241764775:775268654281:470752844980 50420:1571536967:2355180764814:2350674675752 25154:1100490771:54348421339478:26274965030054 30032:1973712918:225041737434883:149596840264883 14286:1323549104:9887549607165475:9528297236886366 32598:3183075366:41399925286232130:29073791120700894 60741:5082134991:848922399823502277:694973086038588456 78086:8560947363:4750442928184049612:240949243934638052 45170:2255817083:34514499934985906660:22042115580772129720 11736:83387106891:967:409 44520:68190585201:7062:1290 76789:30921580317:65725:56379 25255:90538689039:614434:574575 48748:98184574065:7104486:2347162 46355:28443924044:37528605:13624090 47124:62344408158:794428810:764806196 66103:10284978348:6980170205:5455605121 22532:85062361602:34858565457:34659380593 75585:95630387760:256899067234:179974627433 81315:15811042407:1641905200260:868410634455 86791:50622872607:12198942265239:6935983476184 82643:27778802668:803296413906033:595704014315161 98306:58349619489:8871744153738973:3842432756696209 17431:37554223132:45172171574892753:12146101700892352 77780:29234895321:197406854633964015:127187623760269220 71552:14159017811:7878395903890192643:618091032640795130 66607:15539119590:47616233254366029018:39797701663715586943 12069:208126518128:797:486 42115:640746699088:9770:6355 91197:677042113901:86850:52947 50768:602450358229:556532:143044 98441:974801288978:9853685:1844681 13427:342731594411:82290609:64053728 15732:749803282585:743645130:172800942 42409:870891289362:3759191637:3704295280 55737:211345343929:51713456054:15897521867 34437:890359666958:529802457620:516075379449 18405:759840438692:9898683786297:7032041094690 64590:618728086718:42271548402011:3099473531606 83792:306046071747:542093311320143:19815777613976 58685:231823407339:5840947639508947:1443965233125913 71590:450440403377:97220980941292310:4442506823211520 21008:500537565963:848693466179833454:559916137531522712 69233:526856808940:3312848072563094291:1182483275306811459 76056:751044883880:72654603354002891282:69172879773131073752 89610:2840628303718:580:0 79828:2369993962836:2139:946 16228:8107324339747:83201:76079 49680:8401858869518:368558:174864 17390:5163125737192:6418906:3720570 28214:3425166197202:97566152:74945240 65116:1908923115548:401600174:143357456 46702:7769142739849:4620125641:658891269 27037:1743118958106:52815489425:19013873909 55268:9750184986121:380696384377:149697257171 24965:8477927034875:5618138523387:2915266011185 54439:7094540199261:25918422110572:23336705993919 77125:4791797731916:244145801386855:223891475440575 53187:6524459204495:5742716931942403:4443300887543351 16482:7592349266106:51324124870606761:3262575089062494 38570:7963324866305:171697241870556255:15701004533259920 97312:9792073610282:9634199296962172829:6455610091386437355 72200:1803160007358:62572404950847173430:28284155627893881040 20284:83054417344287:473:231 23535:31536249723786:2031:1053 80024:40974936940095:16980:16664 61122:21401315351700:804250:402126 64691:19204509266262:7707261:474916 98084:27827593974036:88624312:56934304 40461:53342640527270:257763709:180506362 57962:69079834268852:5254139874:3003677218 22129:39755882712294:14781348347:7964423265 38646:66290126569430:321943748186:99667425978 82765:25597253313272:4440631809145:1895522554865 39417:19693882327620:11806303001391:4417840913985 74129:22477563417812:493864578588497:23824420893710 35962:49490503958820:8041836977275764:6889321874456464 78178:68700113431443:45041069153157208:15857748713343504 54734:29156460570835:890208258762993306:513426099784379366 71889:95520860284200:1465892494581504075:1421941045546641576 68885:19139479292377:88756564306192235605:76335640227696530780 58179:380004783382187:255:249 91942:126850999212281:6280:2432 72643:854412571420224:91106:80311 53069:518094354805886:520180:301741 51248:579769801879032:1506356:177184 68457:848393888646631:85349951:60022146 85655:858768677431757:590107931:27311772 81596:623571559013967:6917600542:5694258242 67807:782021951202507:55205859385:37509501523 13855:684663681778274:127449968097:13403130745 21443:339842896248577:4439026944297:291805426544 54140:586504190337591:95842912077460:1432203702320 21331:435535585796841:263420225209423:164348364078094 51192:466239750670315:6980517482751089:4386347425591759 25089:780450197939673:14857597269076359:11824359041610627 62508:432019299555852:835937398643674640:369112427595746016 36280:706259514010120:4323895097716248463:1020457762670783668 82920:386291763166831:61388104127663373069:61325650750202404749 47913:2887930526518374:514:291 11018:4666799595491025:2300:668 47835:5242433975596736:81012:8961 65336:3746970600345456:202385:164561 25256:9637668327972589:6575400:226496 68722:7887829778107450:94070742:66802570 81530:2415066420911486:175511089:147926451 70331:3164955768499977:9130372878:3734408075 10580:7476667905669769:28994978222:24651993320 82637:8192903242637892:954776484892:906911107977 80583:7874176714856228:1287010142469:556249560777 34457:3688586887996522:29196889992909:8275309674781 26796:7793507525852471:763824573240071:592047399202833 83088:6902345557088873:9311585835653769:8219327322881421 81087:4806707064911073:38325795206608733:3570803875564981 71095:1172439332074685:441411130791539798:275122400044138093 91891:3953663330633992:4028930342283502232:643935311875408513 22615:6155772594052114:44118658084298651290:35162048191346920505 24995:93496862893842888:612:577 64204:27414448515147745:8777:2306 68412:21630807793588724:45177:37371 92727:42171301118698074:694291:525095 91775:82107362562538814:2418598:1445833 92508:16703033157337103:89720044:72412232 32794:21026123895364737:209413513:118780933 63540:28669851068509123:6265060687:5538453987 17757:56721281524652371:38483880726:28864200465 85470:83388566123852987:264334375657:8317301267 25492:28997563230803448:4372043525286:362222601124 99741:96527608676822152:14841311371774:9684762687553 83777:29005592989533593:482551573395439:174170035984331 81980:35544316038589536:5702491960407385:3176993172593540 48902:93022302353849049:17958887357857232:11587070068839232 90622:95659231736499884:641155536190766978:270428289228207722 67807:87552416166677211:9608195089437573474:6988808180380962061 91990:74364625591676249:69543431396637811905:2188298131993058725 77351:404644415704135158:363:298 80554:952413299304170866:2775:2371 39276:866460330826877726:42577:13868 29493:792940620125800939:552735:12492 27997:828268283291410874:3022162:1843737 63696:319026765421719988:29224939:2466987 28403:209727342531799814:203859067:49073422 90263:559494717357569507:5887778736:204819863 45680:310556844001659086:73646689665:4499362120 41337:212883909125262850:554881972751:113370913580 77577:366648925807149910:2708627077120:1027635621489 83367:805292314593827942:64780075148788:31312879582489 58509:337226404162392407:827930100836395:592348652361084 14387:862993410312357356:4175841394296041:751394457019938 84008:374054879964167161:76372436147369525:47640616634975908 44622:128733247131531660:933525875678684347:685181580651354209 73517:810138127806267847:4764235755019129785:364529142290258753 32718:193795723151426444:54336750580841963724:2573998625542746276 27949:6955757556082204030:343:324 78998:7023529991424680972:7673:1731 88730:3575126783838655364:84627:30250 84529:4753761186544918476:821132:668721 66002:9666828723623161127:9415555:9323093 30183:6714094907938136059:34753463:21426143 23275:9081834576116974144:278437348:66578309 57663:9730005145563330935:4850586559:1916025155 86441:3412925859742467868:40646220271:26789055904 50836:4100545094925618585:671576483508:212715153736 82121:6049420675705894812:5105236690681:2857507067560 52501:1901425731224106842:30502924912757:22517513678070 62784:6420693840506249739:351205004894051:15390247798472 32622:6301968712765788212:3258685049700503:85327594471630 55031:4750161026963515885:72534382696347194:65383203970036355 81375:3284325445585853550:133872870699431348:11630348497676389 71675:3490476873823556752:1239861117701139176:1128104209792714329 37452:3539564431894857941:50992209507690131626:37293229421938630214 47726:65471455927980695433:602:168 47633:32107808000431200222:5105:3144 52692:50671637256550990786:73576:29440 40911:95891363472736888565:170634:134571 32978:48155622194668766295:8201672:4465112 53453:56562153921762457341:57338654:45477349 49493:33063548661188048689:498729601:497035797 19615:80392279894364958513:5656774071:1251765250 26236:63409681039212154884:66187067197:21989603370 97618:36448492177170827163:245311425909:171724758643 15175:84598032804403246686:8191049514622:6419145794777 67925:99745265096517116849:58689973642554:1304712076919 32262:52225679553816430608:787969474103076:760850129500488 97983:73825235926308227064:9051677367542713:2120818132185945 32638:13695630389925042573:20647611471381009:19841887193859811 98841:46979759757591422877:714520877679146111:76474396066728052 17517:38134875599243455426:9665845235128868441:2576119571400548824 67013:69695095760298142116:71333470733008092122:48706778616729978251 964739:706:616:225 314579:724:3491:3401 641688:543:99684:37692 240349:613:602219:96118 370170:274:7421706:3091932 482571:496:74491808:9486049 636095:694:513964182:309547111 853446:418:2186334329:2055081525 661855:560:38532371148:12304084129 229530:692:916582503922:60573852266 307071:757:2617035188363:1141032217482 507592:698:84991663708758:70016120266492 978937:266:649039655600883:134967491191129 531091:543:5093986862756825:414366914452546 330434:761:80463963158657327:34322841005034689 496112:980:866043820486542984:485169755324407000 790796:436:5266337061867678673:1059465317016632121 418939:365:40846304056191070976:24346884799168266347 947348:1888:697:256 381589:7582:3171:1549 564582:1373:91875:33882 205243:3723:126979:35013 393328:1280:7824313:3623386 364119:7113:37664844:6157011 696797:5473:549110145:244052312 214345:6065:1607402233:1083828196 741718:5325:62406122568:9913622152 901026:4840:379833376488:77001890088 263600:6501:2329422624336:1703112233696 508683:8318:98826095030156:69050202604289 831036:1577:755811038527870:6242049086046 770599:4627:2842767607332841:2452631136837364 536050:9768:57483266591304036:6005573943543028 706553:9394:333872632295930696:21178137117368601 444204:2733:2869071705721249982:924608146408684166 232978:6431:26827934500153771256:5843949928136425184 613512:23606:469:37 344353:94795:7712:1 883235:50908:25589:10828 957424:96666:337577:144754 863113:59232:5869176:3548953 252447:41810:20570300:19724249 662930:16136:283723729:60276162 559138:57333:3634817309:1361488300 426678:35683:60183950178:16490773188 211512:16350:741587467871:529708883758 374595:88031:2135294452171:454129819243 339854:64025:97285941108195:54823052634569 175879:29453:924678210434715:144927419712724 717297:62067:9638320240302970:9539888404575923 920692:84905:92040370933076627:50492045866084234 515148:72621:909818309060937063:825743425397229963 552314:51822:1541721750977580820:621107868286142196 756105:89123:60632572558533784834:35741065707822222591 107701:530663:671:66 556418:540579:6031:5946 709412:825232:56475:34906 397551:633342:558219:479001 593923:596705:6821391:4126489 903870:114493:84770376:64971528 563980:174325:532930216:71299736 624967:139665:1078208284:194158323 800597:627244:43302512089:9821877369 365550:768199:529020647419:316102880395 172325:446645:6466903330448:3330498437221 938624:219549:82594513187834:4820471502048 687207:181436:739035833872219:409852281069414 358922:535597:6401909161344146:3587639595123642 978778:105615:79692152051184454:31240912847465398 979491:501391:306772925843318646:250943891517009849 127821:725004:7913744394693442924:5681331333746013053 115144:127733:20544013599205961151:3487109157886691380 988380:6142007:762:432 504651:7451315:9364:5203 737045:4328978:36616:29697 899156:3136087:142557:36005 882184:7329093:6841687:3853386 608743:2647623:37686019:14594910 697094:5960665:902976093:514120211 433471:6567756:3886098907:2562497887 358990:4899388:81859521857:67521961327 611136:7981582:812533413384:610369113600 978290:5290668:5420201110444:3676390644976 377617:6580454:93765093564117:39491817521347 656101:1836512:731575919132206:54941062470905 688277:5327166:5987580579920641:1761285424264508 831282:3858094:14226641283282287:9134213154640465 446576:7846467:139810983761795205:31108214237250206 293765:2496750:3623896478636457955:2059332806499751600 209745:5504313:45353213599292269848:15516934903316014569 985451:96704375:829:321 832210:39908584:5821:2341 222020:23205409:44128:28960 685841:35124926:432571:8095 555332:12136448:9628700:4892176 192363:10818424:69451185:19204446 392530:17478078:159281614:153593056 515927:90541454:5811615161:2800969323 765979:56567250:58378502909:23032786239 779072:49106660:731260788829:52624051456 478715:75846593:7908103418394:4895905214189 571607:72162481:67957607872936:32529185082719 863266:28135992:165870493102476:39891725019172 301479:23094441:7667108686133525:709997111647304 283928:98576138:55488991691735676:46201395765534100 933733:77690554:758980154233446626:254983247376088191 998040:93702463:3675431312642571092:1331364716533863288 809889:53469082:37564983387836311459:28959333190453354829 957303:928232385:505:488 694837:226611808:3820:2501 436049:483587254:27387:13618 133239:236011294:517708:419037 271396:672389372:8311956:474304 314884:238563040:49599902:4491598 682427:699682811:957403564:706424571 390445:237006599:9267510827:5373804230 106051:149847616:54183524274:30007716277 722814:111141948:902927393167:629593761141 353974:999051870:7655797780072:1888355040352 352549:164468876:74746391798219:52738742942646 109935:279756612:266915275957714:14271381661509 386349:963609393:3733333734766138:1119019704587641 336998:497883037:96378394557017179:18556471089791667 485924:663091435:586465087448508006:272214406325209376 417233:762511442:6147738408546578160:1521644033707813489 624207:742276091:78191002357050100210:34876163289268327423 609922:8258624071:594:478 291757:5287131124:8530:7651 917240:1257263716:80376:22912 823930:1000072392:552252:469432 935013:7229902547:3396621:173523 711047:9666633331:74188394:71916125 824732:9422135511:205627377:128896274 165628:8844701357:8386315289:7300946687 464620:5149976266:15213035654:1188960558 582712:2183290401:123072681876:26086334476 563552:9668238850:5678301098407:4142448017978 796640:4018497062:39458555290213:16928433961868 395336:7182295485:585698867902978:169348946405992 917294:7509827099:6447273114512526:4231849908307934 465248:7994912148:77482969307051008:27147185170364416 536293:4947104037:344977899866810133:111844019836584925 827547:4186198097:2503435885345310096:1307305886105239275 982401:8639471049:29748282661615897721:9514704845569598786 350741:67092364336:350:141 175195:60818839905:4803:1375 563816:57531736770:99369:55387 255327:31026755642:773811:328113 445988:60200192687:4315980:647732 310117:46859258114:52071138:48365557 132640:28193362939:253871165:229911380 734785:35993936743:1602835398:1505925421 981878:37908790731:47593644803:7511495102 104660:62863015659:244731697074:173537177912 716638:43101598055:9367627651605:6392641776937 523428:40195840334:92106826690244:76902254831416 645032:35442845227:988997462979544:946655385902392 291518:20259419750:9499211931727466:8184439279194734 507952:60138742364:29212284151863676:22842859882974420 389196:86598159245:536413590358898831:177554195426952418 403845:16207222920:2341865029099036505:1375014547988964270 970340:43878329347:54024495575196786139:50231667624803350984 579478:855767694079:326:102 353655:956694936989:9992:671 787409:550733598451:94804:22617 678422:906082608216:726891:306661 857309:777041789001:3639100:2741009 715354:160724622649:94817192:1975520 763713:385963749821:753976760:22269513 872245:693771995947:7948626115:4770770115 773327:393555288721:38007048258:32564609417 899590:382618124395:247309515009:115130071165 885582:665372521929:7236761112825:198231911457 954057:601062392943:62931610732475:34866675850543 978544:792980516698:675437352112934:161539454620526 630189:801689663454:2668230346184190:1783023191401491 215562:593390788318:24178062408544753:843188267449639 221976:497085998379:150119884627646000:53460266555249776 679889:978078795084:4917068461493605919:2553772922989999830 440889:836893350868:95851807581457327787:24771752003637337697 655057:3415259524928:499:293 969835:4350438997447:7870:5685 672168:5104223892659:47714:43722 209431:5726126579612:120176:33569 778031:8502452737970:4407127:2072799 473019:3552485824117:56228168:13387283 694994:8443808875010:970094631:192484711 201698:6337126591798:4151195542:2330888524 317844:6041653592154:38870780253:15386276427 330955:5538232437417:874851497261:838867469637 211291:5135694393055:3781949248590:28316079421 336828:1189139957800:78860443820875:29411411779001 820352:1161592064672:117576187625311:8492980819896 463327:2190976101095:5068683500073035:2262566487001538 366544:2294630220457:84546294688949107:65976905318964951 741451:3562425211280:677239604410897093:38470261673642647 170781:4390883348685:5841532384738028438:1890210730346202965 295399:3236398277752:57084977511998382614:1782225278986697171 441586:18826089641599:603:505 160347:39044131962906:3446:2647 480804:15036473923270:53862:5664 192566:44333670740364:197984:100928 947793:87570560622404:6139040:4374881 138199:74969382290616:33763505:20082046 123855:97519374580081:164518394:96296751 758738:48289495247290:6713895258:337564060 713634:50493380526698:89916083167:31250802499 473855:76259400994654:974939444901:761723532184 387979:63905922956098:2630431465178:2032152446525 928121:41956490777316:18505116844193:7684648473202 964434:26743164059511:620214635206293:129515630760663 602833:78536858280235:1076363351540507:107244110202471 397287:77247616238846:82787002630292554:54965883402686751 275619:57072395946278:849030839716789305:20244370728062871 510682:65377941717416:7188725319711559376:4807233106778362640 552393:88960533826466:33954055779952660747:8022926259078529179 333870:749311331087690:745:625 117472:763501483823577:7058:292 147890:453940642679650:67796:51848 728981:299139922948057:263506:29697 823470:498399115471189:9826529:1892235 685228:832662431863116:27632170:1574946 267193:591818876113778:942107734:279483161 156523:500298835908015:5369862083:3105110661 750861:201766856164876:96142628138:29108062545 815586:754818042589057:759176064678:518348549238 931766:869673302551860:2652771014584:925576369200 507808:619793346925574:15129864031097:420559999805 511029:530423660254000:224465282384316:61862951395713 604424:595586718029319:1716683832834989:82601557130359 991636:463601436823403:31046565588148587:5746215269425843 318575:235648596837885:770166072037812946:181548019773777035 355312:751359384907800:9409058608997936937:6704885787521791816 261568:592341836430229:98934177656164228669:77147476566764793402 804052:1402814061156804:834:100 817816:5826280646664894:8728:6920 533783:9401690199799394:34665:5554 693955:9895724681373716:335554:57247 314152:2248020831481208:7168318:3825948 210892:6166311036919114:83855040:41167744 629686:9380651771381281:649054246:442046256 978287:4061902790448579:7262579430:6505894673 647818:8195814641109906:90438051037:32907513829 973929:9968643720366636:746616724257:357228748746 907965:6331543381506902:4766637491935:1928930697120 395552:1901524211744671:37193736051067:22517737362458 131748:7408131534975218:212668503302267:16939128988406 934346:8823865347210091:8095982482056757:4181759248889253 385141:1241489338212164:43299499188740527:2050167115451193 782224:5932896878045826:821429308185990979:357537997718538306 697802:1011533707455435:4757968298815760549:2163906039551612155 529041:4687480414656457:86903573642476301437:63514859619159061544 112562:76181948937154723:948:656 808117:17801078929226685:3946:2721 839359:18172716365707347:72353:68679 809337:69784835425793361:903138:218415 535653:94969607577726546:6333547:3366399 989425:28762090172674766:25383457:19669356 955008:50781490123018858:203124471:29578770 785162:83224610685443742:1207910865:632046499 937024:35956274045754508:95928632197:89469428747 319215:29326517492695820:985353880689:700615573848 525301:86288710185338733:3831486814842:169627664023 661305:12287412237839066:12807092014847:4535883346240 407126:34319407522603779:467194447656873:210172966979156 191653:38823712463888982:5697779043466200:2519990905637809 448670:97687202133285246:43369252019094727:37967527355297670 192585:89184174628993994:210236072407449267:14913513027122727 311523:36961984721096078:2092710508798903902:1361273835735871137 125919:82245111066293983:60971252707360917066:4333186882905256389 758871:273715456182992814:753:324 866370:531111673454855333:4022:652 109244:448322867339193082:65535:22801 242497:795330829495131185:220910:143647 664763:446981061396181935:1869881:1435439 146441:781197171463774309:42265477:32873583 903098:609788724889892521:457918583:198082363 556084:464322017835504285:5399119606:488025778 904400:226869220372936103:34543011407:25540335318 460883:749639521172137048:866670860511:270218744782 523135:150180320121099556:3367415121229:1774146283881 850598:850706836070178571:85902740427326:75982738582488 370691:271451815805720117:358615336989006:242394584907887 637074:648743870171244641:6165002476527164:1516417643710040 621030:971131070597721077:88814094792457719:35283269504215812 451582:678728564198014932:929276606224149772:775530584180685144 793295:254644351446182062:7815584446769048881:7350331319352400254 180031:865524288534854892:20000825234782957600:560914159553510561 761809:2023013917087932938:529:403 480904:5621417226603858697:1081:329 748829:3688394490045247803:77492:27045 231257:1512374357328043333:281011:148739 540039:5246209887761064930:1847645:1759806 225154:3166045060668847517:47349372:15678592 805873:6069776505030729406:949090066:198520761 439839:7889099937359037828:6382084259:2691066508 183219:9575170154297219088:99889048801:87219037408 216927:2722493392900882058:427137844438:174969973577 446058:5784853382427745282:1084284937888:40575542304 186171:3737815040991936024:79593423813227:40119852099146 242780:5670872644271440556:347641929015853:2242162858896 921958:7825840095945768458:2544330818878049:2266715082282099 329458:5562550676413141889:67751346976342331:9975958901921750 759270:2299559545566259340:337612871552004004:148870012011488384 108669:4365256542680971423:7819332097931491722:4513086395222567199 878004:1946014125034477147:54295391666769539894:48376762403048822998 233788:43113607705422402289:931:107 360984:48275969773258248476:6108:3708 891824:27818633024162705969:73291:36075 328121:49917584775292449795:251895:27026 940686:25350959791689323163:3540311:824554 573595:95424689027446681200:72845454:61582477 191751:87152260747809029287:887518877:872153576 222679:85818511371003935028:9652907440:6063669121 866647:12093302271281293131:71060458064:46388107479 426791:31857837404033749527:272866111978:190939066175 256974:96785214830437534288:5748778274041:1967219957807 450069:32475455761362950547:23789847485631:9106771687944 965791:53431665549988373432:998948355979759:380724514412633 953589:67452073471352474716:1398684921047539:1120590831537971 324518:48734066059691512695:91693213964322888:54556260323751896 782605:58190175086336872317:223265462661042420:67646728242755605 830374:89792301766977129830:3463193892797306485:3369653676718427486 160136:71883838836840557891:15804410916863794301:3328388097235805163 9101558:288:345:211 3988276:465:6467:2296 3549303:300:23800:15401 4308053:495:816782:689545 8289858:843:1092693:877512 1541967:325:22239019:16173224 5989088:387:341651138:111619442 8470088:123:4457813618:1692700660 6555332:716:69951478521:36463575571 9992349:197:271493510312:206407764061 8703554:867:7803147936861:6539765682833 8418549:754:43814478160872:32444453189529 7766511:890:655931131993347:562147451089905 7750687:756:6585077406270752:1474415405060641 8059706:214:50809364750298905:47592924863060936 6801112:254:851482476276866633:15926741278639044 1438726:854:5269477992437342321:699657467685071581 7604587:818:15878710025156864079:5180723049257743708 1032566:8507:686:124 4002543:7576:1743:120 7586553:1528:57926:41413 3141307:1135:251281:154156 2180308:1983:6690711:1199308 6162192:7854:29915856:22458384 6608641:5935:343394098:309336151 9767487:7238:9075960104:6336002001 4472704:8336:67164963963:46978573246 5032340:7018:805764752061:743082161413 7002852:5366:6825186072198:2150686276974 4367068:2792:40304749999999:27553757162931 2383184:9428:555023065294853:468558507466641 2151449:2117:4378130008199384:301328585803521 4678357:5663:14955244420847287:7140491949655740 3020052:2403:935488029464365179:561789144282448992 8538332:8737:9067950016503478334:7418715609522204166 4082220:5391:67983434721168341635:61299925377222072020 4466130:37395:320:0 2783521:80394:3532:2629 5123872:53655:27776:22784 5900585:82045:741903:103064 5947306:45393:1375921:947471 6112000:34157:76700295:18040735 1439109:99634:729759495:231457671 6776751:24001:4130868487:1507860956 6159773:53110:57487781644:4472796461 4694804:25639:571603435047:236114506601 5460336:40030:2406102877622:1957263109916 2543168:34456:81081561558967:42963843148162 6543484:31585:454223637656819:321559689112392 6954900:90995:5141415663540540:2290226555457360 1796349:77414:84633977479448045:2243399948256256 5419281:34123:476107205843573832:276551733352877289 4798425:88352:7094553247917578481:1144087908646268133 5574959:16810:13508824013253128924:154674658632098033 2767868:845756:505:381 6312626:571860:7083:6139 8107094:134369:52539:28679 1557300:958725:504233:400458 5718277:474269:6989528:4255149 6093212:905402:32873605:12267704 3411455:163752:324381159:108101296 3345786:215249:8473570518:3243562824 6144769:287615:11341588580:5575372909 4837236:910776:498824223558:473009509512 7655040:632188:9830588878631:7894980784543 6812159:430540:11757194866808:11725513219993 2740379:723536:487503232040126:485906308498549 8216732:402369:4034937063715809:3770093164516793 2418776:587405:85628953084272490:13607057811458166 3727674:449819:342965233245583436:231457101007494692 6430214:450383:1761379195405022149:1730756810643347871 9148401:657173:87249647208030037704:49424997851323251417 6955164:8654005:689:580 2180702:6791673:3927:398 3300229:4935453:90313:36940 9855519:3055658:148973:25877 2757898:9354488:8971430:1764776 3059667:2635909:61649232:30323571 3582238:9046787:682214456:201811544 9116501:1353222:9781843191:3076992544 1066851:2208418:86871039480:6612522201 4520275:6380181:162109191174:10802134351 2102087:7753413:7936733381420:1478996473827 6271722:6790966:87667674892866:61275375065844 5942348:9461834:953793166276285:479071510959394 3469185:3220198:2237584799188830:970075862648775 9222728:1844400:49920014059137832:37979240779571912 1027353:1131863:984944172504748666:41800583966330269 7845102:3760022:8680750448918950678:4490351379318330816 3022635:5372868:57673865965816418012:12981921600207813485 3014400:77810430:369:81 2889705:53500690:8529:5385 5651442:54039876:10355:3811 8790072:76171858:918131:647830 9566447:16637163:7121102:5149303 1763396:37853278:44783777:15768765 3431252:74566167:635860411:384901283 5576609:74475222:1502698003:1026665801 6404780:90499062:16953620197:5032294410 8714274:98634520:597000240316:336581680064 1589593:45847537:4413832811214:2547883571653 8621752:92154038:58892252293843:47299484190381 2811609:19543506:129646602387800:5258629245441 4591256:93704543:8074039229841603:5022207630549413 8510122:90751682:81332691996859217:70099003720223227 2288995:96384293:880810499446017709:313275514452656651 1219999:12661023:6086969487067850310:917544269555815999 4089730:41836038:11739147764195106454:9400769374642375936 9229846:428402755:321:181 9832832:377478281:9180:1052 9923932:739694389:74948:41008 1188395:609306194:502133:21940 5650969:336857280:4721837:2627685 4184204:466440863:30491177:8595965 8333588:335193424:811009921:755090398 5358065:631559069:9365663883:6619873583 8184824:434391960:78819081843:4213488523 9144358:137122499:497846213688:23842749640 9474437:622748727:5796610229754:111363489449 9653053:830574203:30686046648912:10583562190453 1555197:931371502:357939215329509:109593373564062 2760293:919568961:6537570749333936:2900215721452453 1375347:646189988:81086817238687965:1560911026347261 6868027:493047386:169757376232079732:68163525096857277 3253655:635474700:9585948516572424128:8130827116227974753 2660684:396780605:49619550699352734495:12257268860184055169 3055105:5312967996:291:244 9603997:9300228925:1233:673 7976146:3986323736:65980:57536 8186237:9810880908:440584:131313 7107200:8189668848:3501054:2147068 1958264:1347798259:53686852:15356108 3298450:7076576142:301152612:231934888 2168860:7986209470:3168857668:491645492 8675115:9172878798:52758157739:20880444705 6832173:1222382436:599784036945:502259372631 2948143:9160862197:9925328078447:3019226433461 8826336:2812922659:86526511181245:28299534476536 8777337:6249931915:133332595334650:16924681504193 9344587:8888782469:8618170613832848:3159356349574043 6381926:1944985485:92773831476062612:40172609245547572 1507057:2371761513:752473190236886281:686800863704442884 3617966:1259404294:1989531660768672862:1742145483831444934 6194606:9973164799:29182597022246299807:12421309246818068133 3642059:62981519625:611:161 2070704:85745175735:3847:3221 3421951:10508886066:22273:9334 5609058:50530301527:132052:19860 2920191:70471512439:2692859:2059799 7057076:43158274059:27686274:20614124 8850566:19199870230:837297757:202794940 6976292:25395250634:1444015572:1248022864 6487076:33609666048:55555643596:30779796424 9402025:97932381160:831072357686:490821552629 6190298:81093684020:3556417189148:3395398200904 6492919:94284333607:64002952939931:12243239178434 5814277:39476519271:277473510277574:225551652001521 2543813:50603933526:1636691549752396:493990777347225 9268994:44853678283:55936196296765295:28640415449441824 8517045:85856911900:858055121398151580:672755198880096345 7099951:88917638713:1428878432560388121:1115319876168019198 2539555:65930393175:14625516892609897260:13441873313651741995 9319388:191520095355:107:39 6705028:941807241118:1091:86 8038627:162977696687:72658:15033 1030515:637162362881:455271:424908 2856980:393313329294:3727889:1370862 7415667:933415718347:22674381:1131189 3994297:203285714112:461715246:234827677 4697944:226583765281:8770273449:7114833634 7883989:122445277901:12326446279:1783124939 9175738:488300319063:935961626325:123269345122 7348898:594753006088:5412080939112:1850985520144 1101766:856028374447:14035574790947:394056127523 5668671:829765848751:733670839973241:331350815849031 4860716:487662106138:8875037514532836:3626623370218660 8931295:350964996361:73736862886477776:19961501209317775 9667340:637466353936:458928960360640246:133387846214793080 8560782:249641534558:1915229845630595355:1046128458684065004 2510795:434681200332:17851811347033292847:1293836198445615931 7052511:5261054833720:599:454 8501591:1563015053798:3049:1055 3350431:6839359247001:31957:27985 6691903:8419468258091:813000:259447 7828777:1441757469254:9063057:5144389 3073939:1046519859031:12534482:5493053 5051867:7117315040316:256723653:207086776 7925278:4462663003287:8213505626:3974030972 3424144:9070016173252:36298801241:11009354107 4976070:5147597459905:838734838994:439586430668 6438014:1809625552778:8349716037471:5023616053963 2392905:9674411099745:62921667755053:62043907483143 8137678:3843186135211:534430053816879:315030015955258 4339236:2056310319699:6651592943365799:1975666099936628 6669368:6247334386143:79114415312123836:76808349581735260 8280196:2470148445953:978828349066527837:154872025401683479 7001086:4652587882228:3889675569920855409:3402504933031373449 7377425:3672346811942:21887330137539893258:5716326466468400725 3268564:78394235214893:683:121 8244344:90182785542090:2828:708 1289754:13138600965078:97196:46088 4647314:44392569097680:113100:75076 3960274:75015504193104:6193530:6031936 7011658:26553624545790:32141308:22560048 7387494:44267966622595:131676255:47411964 9865882:92094615127959:7551326036:2514020996 8373192:57010966739258:27158865513:10932301149 3837282:24225357071366:990631914237:161169127722 2355452:22899268788593:3731428109314:2472175295028 4942486:81252776715559:40340386764987:12317949945259 6269270:27642795125887:594243788988707:115949326664892 1137291:76485018359341:6177402505182046:2157204743351291 9155336:40319716534068:73017764807711113:5028514847790773 1261542:12300555149595:222089542543438343:19717683020944461 2615302:29163896003230:6841775274362891513:887507840490885373 9540238:40566996010679:74778894009026646299:55885919862369157233 9349631:550041673368656:273:79 3141512:388550074751955:2162:520 2035703:281382078609271:21902:9525 8429113:198039691636202:949949:543312 3873922:300222500393261:3558074:170508 7772738:129869998655690:62694679:45339795 6296096:304154619731470:690691931:171810651 3517040:900944087644328:5541165453:5268586942 8341638:720604744012510:45687500217:18226582929 4464329:985634354742465:781185442314:644777925209 8518193:655757075718269:8997667058863:8911252251947 2905754:492881413127595:45692714562348:34249260354392 2439859:539977885815926:505780105281108:57618782218897 9043526:414002214935644:8612672252663876:3818792253870332 1026702:174401247155278:47951569100018418:44283710820921720 1828171:674586491793196:121630119303556694:10635801910872169 9045015:988383980261322:2835255851803971223:987068326213389014 9980505:168728641735456:68355478922103220589:18535426074114168895 2220587:7388119956048688:279:253 3353614:2349389852303877:7632:7552 4958889:6208705499315366:85774:11401 2481918:8270281010696911:503824:8240 6140436:2563763660752128:3830317:3622079 2225402:8529799438395018:99507095:42719604 8098280:3469699470970390:335172121:138372620 7442261:6377251070000685:3682674604:1921878421 8225578:2533800031263221:89940694965:41214853513 8035581:9067901439004357:945174890308:777625322941 8049145:7655296134147044:7125755227715:973987652240 5971844:1698617223201810:93530773161474:50974013285482 2793214:6786779778582725:464196855839931:390787577381926 5748178:3957910786685479:6537635167880520:4790185637738872 1465668:7584009125178654:96952290091142887:81901275436705983 3148661:5063490978056775:318868117926490847:267015006773548593 4306479:6695315099162462:3035956434086655056:63729914913929921 3719823:8977179992969501:72566785051578661365:62878493928583629828 3586543:70340330474638746:272:225 3679439:92419471842458346:5091:1294 6332202:93655647718501931:51195:22173 2746508:64031068146108077:989621:636840 3171660:10661416528584952:8275424:7912992 2720446:30277336260782221:51724195:18555826 9758665:55785651688424360:582021789:423284179 4352648:11207949617883787:5796713086:732387604 5683821:62147516226035681:83652704120:31419574661 8179455:40291478840793107:594404156575:267715133650 5437733:79970803098101375:9091964239286:4761689719067 6553644:48298121551797856:53324481811313:33299439352181 4894888:86174617675895260:839946625756456:286026131916136 2197507:29690086209683709:1992393281232438:1590218505056707 9892082:34776174674822006:56786342281912745:9260961690397569 7355185:19928971473297236:869264349689818560:364258920253916545 1156279:21262583382276803:3494617759645253210:1206809608225207539 1453049:31394071461921384:25326021253274124904:830072166952825945 2882041:514715382235033992:525:106 2738325:721746804917536078:3190:3045 6929957:121324865731128364:29121:3535 6443253:837194653116704856:527910:482361 6751122:681990896464168583:1399688:209600 2229539:560447118393419111:52411390:45740169 4168056:696703229047981308:306272965:118674141 9150466:703235623347856564:7687992832:412791808 4054599:620669463113280958:23598391904:14250989649 2095369:830578262229062651:207522394619:176872991419 9646195:142728496600858953:5949366920189:3229149558011 1395314:708533911066352055:35374616635978:4784559300588 3533901:264889755514274499:703782613347652:611158951203869 4514329:956597164527530407:6486542520791252:5105956048287253 1826667:371240995423530139:17795952074992924:1884553351072227 3076431:184236008211880519:239484910770968940:128484433309929831 3241394:213628403964982968:5064363501684593071:127098768931776776 4157707:869336231315665735:26180052937084374949:3159269752890382767 9847414:6413767121267680649:129:94 6984654:3062043224417405464:4652:736 1350511:7274606794367593099:95950:14491 6812002:4396982432265514354:450522:87166 3072782:1587937326958019023:8631442:7702600 5703425:9490009681707524101:18839817:1084184 9935960:1640992013991955817:217759705:176840990 2771246:9422079536209551919:1685127918:1087183502 9561838:6635908482553090909:88566841314:77777903272 6812221:1346155767506385064:982403066217:130059795220 1434521:8746842558987826620:6842797451032:2769992508041 9188230:8808662840040675643:49710552532173:34919376787138 3454192:4084358626302148576:255818712612650:153476555625706 3153098:8505165630082226146:9182568126662601:3543573683465203 7962358:8957633924154452958:60660843557101779:39903792610654213 1471974:8421369177920709338:532516369781101061:132795706051091564 8012812:2697816641012089842:4950234591855195269:2404592023903328999 5607638:5436936026149758223:21969025157486417233:18388272996490071165 6615606:35334867828771717923:562:84 5362391:97596453588615545812:1906:1475 8873402:50187896459001626317:67905:10877 6334847:33476447908751172962:687585:366214 9255689:38530550535146362721:3116714:726523 4339779:40698894413622428476:37275893:36362035 4636657:95620669278304653039:562186937:254905143 5626907:19910422285588820897:5819042120:5479973947 6705590:10562401372106279438:80103251353:44700182191 9545554:45569396879988054019:526195991232:361007101504 7473822:28599440899534135388:6310520803012:4751806083940 6563220:96978924587469586168:24539940262904:14581739462816 2239159:21647006879612704782:860563095123012:675669252523381 6324783:53217177602952170065:9760787361555702:5886183278045601 3151362:20081040178351686151:55224105207946688:20264985169944704 6091681:90938975515749567617:892928929327885690:259266744414943991 2476713:12352659399497304065:7090225790619334023:1091726104200984693 7398701:48538344937744403328:20724092812204723696:12339801855896484641 76753490:362:656:32 61806068:923:5684:3672 18011932:283:35362:27486 49681505:195:912245:225450 95521425:536:8587512:1804761 31017450:150:26031785:7486935 62967340:590:900695981:429271428 35467599:705:1668449903:57719812 73276183:280:58980925163:9810790363 60747038:591:182757956991:99992456420 74874729:321:1414502078213:726360626102 23626363:233:74130237523858:67675920205129 63009986:122:503741836606872:12652524231928 97882277:919:2168590913791524:1056322864237433 98000698:845:88832355801138710:37783273791168468 95965814:413:697743945403178048:465925227926149056 42920073:288:2689400519996412401:619826957747501558 53340375:636:60585031443018625593:19139304835903173936 62982250:3345:740:480 15265795:3852:2143:342 11165943:1964:31376:25537 32840270:3690:865599:220039 70563865:9345:5726001:1672195 68342603:2273:99601932:53230223 60986940:6495:298412224:2430528 62366324:9737:1910614920:627316664 37406711:5752:72454966369:35470850212 37084756:5833:233686217268:52523195188 20031418:7847:1285796803635:649768323367 83285943:1829:85309124669814:42915212835099 62283117:9692:435908579101621:386784049384605 51531353:2468:8021264671949442:887378864113039 37329769:9742:18307739747403320:752774755332041 25754293:4214:975891001923445918:829465525981723407 50494737:2634:6099879160353432690:6065467401050465679 94434086:8421:35640695931348269198:3441265816609771206 31928616:36608:260:196 22688956:54487:3851:389 90883382:32733:61154:35250 74292424:82297:581023:159546 17648114:18286:5286100:274236 29355341:13002:60416428:51639493 41294878:54710:261624468:180675016 33320626:29544:9879003643:3551425815 43345807:22370:34052026757:18144147561 30774307:45092:162893968163:37937482055 46724319:95829:5107070743026:4030964603469 59022302:32449:40859753102395:1723778921542 24312513:25982:246370786659418:143782866407247 10577494:35704:6804244237467707:5898125177015208 22371703:68772:68442056579578915:21066484116603936 46736939:66201:935768669680425534:736778903979695585 46362873:40122:6418462958366842467:660004259059653957 50929826:51413:53125728627263393621:1697858565064527332 29046313:339725:199:74 58571811:913189:7773:3912 18253338:872519:68652:30636 60158443:127492:473976:229153 39396750:197619:7266725:2422400 57367330:582311:65249548:20650216 99363286:322912:364231308:347600380 26340949:184755:8030161465:7149179674 33596620:974789:14119995506:8215348548 50213630:378097:527594883758:356780718896 96004367:690937:7350084320469:65166499103 78043403:259068:70800486225749:29410908339569 65097297:865365:411061957642194:76653031237005 51888897:175895:3437743683974840:3016002200877553 41017528:103226:50047098871298224:25056771768326352 62924299:306597:663656843477542948:3383962340619535 19165275:404951:2183877058367572396:1376003513179096839 79857712:861581:45128290647061405494:312202991815077502 61515492:4603229:431:248 33589537:3774242:1724:529 57190331:9696735:34679:19915 84301208:6332294:857394:266986 18787157:4113353:7704694:7024323 79229103:4846812:77230850:1977791 82899101:2555733:124128499:14240324 29350016:7441593:9923967243:7817039765 45715380:1324674:19878094400:6851057600 67834829:6672604:367094109974:163624428407 71689428:4883982:1124451139068:441660070584 14189028:2309863:52642414435258:44042352374126 22153953:8588663:809742896733541:303603162110341 75513429:9018926:6250768139889509:1637868842166177 73015695:9446368:51128397068434375:5118400837925000 33431423:2860350:915405966281308921:535718978376708003 56228939:7437015:3941089648824942096:186379354432408691 30504642:6612150:27018642407484509891:4511313491773194823 86267185:98194668:414:1 77473871:22483764:6964:2721 54659684:28512207:37164:8912 18393256:35906976:185604:106300 33560108:31887757:4956130:953438 51699491:49670717:17054222:135305 91883152:68740112:137151239:117124840 64498463:11908711:5364179641:1130579614 86209640:48475499:42773991830:38828542880 57991526:39844201:534824191367:68290887633 83932683:67288890:3488730977747:527196730133 36819204:22984702:71387299492447:42443335010846 90535355:16936895:220734755144522:202574579826409 44429953:69914673:3301098702182256:3157692323371873 83557454:40312220:83310020694159510:61705275889009906 65112708:55910342:566031235024190952:352390722979525704 59063691:95222734:5560801524868648496:5082683503436800409 62844068:82522592:32169608869825532307:10473012370941603532 59913971:437811953:452:15 62994598:963492162:2553:1777 35362600:202126569:78174:47818 85722812:564911906:705612:4348 63158129:365642170:7599373:43473 67800440:720803854:57778819:42476421 58574898:377011382:944513668:886423848 60863193:513909333:4954723774:753505507 79531269:319287411:39918377085:14105303259 56427478:754008764:112657680286:67292557288 91464810:983838824:7461456516990:7333677197730 64859206:614109777:54716114869425:4973576494186 57420255:924182421:777365682413289:133337133125205 65440724:645538247:1741135882024094:811410102920038 73481264:774023370:36253597209002905:10744484923262851 87384966:582679022:173699242781822616:18954202661183544 51019872:693435972:5393511846594170465:3547969811568170821 36468753:216749685:53951275228611812192:7839980459867209521 23262817:7295046251:540:493 68453680:5056621700:4842:3544 25317796:8748314950:20578:2480 55315530:9684247447:553881:156489 32753367:6710430305:5903824:4805335 85724353:7535167513:89043676:26190049 66388546:8194493682:711687534:388397752 53146184:1977026578:2656275754:904060514 76655071:9724187823:81859007955:29910775756 72409521:5311512464:260653200690:229571589111 66705166:2865183881:7378810804937:3433223847152 53823517:9163466837:53110546330728:46558871305573 76605426:5820476453:576742476436704:418674593301984 24896579:7401168191:7320769769649405:4763614470173564 83695541:5791157237:97776164872971327:94495204551789383 76044043:1191244751:154902433737364691:30245319798005903 33936574:2855598290:4008288218110702663:557282774737471123 33594604:5443000799:58387009731830548714:42899172484946293240 82965856:45954173024:912:304 26474107:57218765494:3802:511 34867820:54663116866:66296:62624 31574057:54981884795:959776:84665 32060841:37711872780:3642247:3580641 54878285:75629962078:46350493:23657578 80190680:16982088558:803350216:700065392 98847744:81344506133:1968907129:607968127 11915207:34483816799:86512773356:58508611699 86746209:70420287932:131925707240:124670329961 66844127:56484979504:7477493958110:1756441527571 90658552:86274821692:22325094157943:126444722569 61930094:48481775801:185614384753941:120251346275000 15099363:67400974269:1998348556425990:1908870999735753 48740034:58686560394:59549156845108204:13766211002963944 98030314:10261047243:945160751088203806:186279964684905086 39556675:61505981454:1713720966251959360:1100746154091135865 68313048:27761263245:33555640723149686659:14184915926709419723 31018821:191345341240:568:1 85534619:868116684019:8185:5809 96895293:275023630063:61886:43065 27090759:434715389195:848374:652157 62831753:735269151343:4446758:2987765 40834970:317395680664:31796554:21365936 20465184:401030889727:554795864:138145376 57908939:535347039042:6926308493:6861584523 39150977:576151723147:66243754537:24067391166 78871661:208754263056:849913328413:554133481602 70623481:325293779274:6537243921640:2855124782041 58459170:727992440000:47735749290708:30814300970244 48494757:360835420803:658954948184665:503227654055318 89497595:144303410912:1143349395441196:610188529142589 60559148:825655122356:50383517992430218:46665974175883946 31025943:230237980837:207623637143236000:134498039453761943 87992235:385274670998:7616055328445076939:5720629767861525372 82649389:714117088587:86695015093092183359:37913482755031917555 45301572:4527539858411:812:792 75850097:5562595166211:9881:5154 91244678:2989652144215:91785:73682 68164051:6758677977333:314290:156591 16658569:8521293143628:1897441:839203 68446754:2616607285459:99104525:93939169 88356933:3227661744550:826023192:394985265 94753588:8292149037400:3217990063:1867373516 97717420:8487580332542:13959827621:12416612770 10095467:6201599468058:208039854402:139980016045 89154943:7166320692162:3534807542364:752620638925 31382542:7182754484158:44930056250936:1275645131520 40523468:4195658138364:886098448956396:278591811599284 76690124:4478101438447:6226162909433609:407524719954633 69680032:8437528015029:37081747196913258:13008549775215520 70648365:3389626090612:442969877162686657:148493195101493575 63264126:5768382686010:9308728529822809464:8273310877556471592 50051210:3473497321471:91151447635450457397:46613741610379512560 83099614:20699456145241:619:462 39658229:62956314012311:7542:1115 62075780:52726454617497:65690:33160 10694446:37356183347266:550945:7101 80278963:32610189991550:2978265:2059099 22208345:22613488462023:12613349:495886 45026285:35592914653920:412777771:409568167 21208639:12973345390624:8437311511:1662443442 26805679:55951173292728:73756886286:50116172275 85218642:77593459749590:925271514598:361917365862 62069408:71584172478544:4096402836461:3136746432732 14790319:13869097818721:64274475496831:62399126524822 48676652:95812696106679:152560720319192:27180715323928 17647296:71696215682003:3756691271486268:3418438517114832 89303868:95823423332203:43582205104635450:32228030819475132 96801361:52915089807931:967263353490484779:282538238852503174 54181330:98964011621042:2679835558445558879:2331439746210334378 20755815:91354092641871:17343461485672682416:16709627374313096103 85529002:369174878763109:550:412 81536081:245625896678128:7819:1446 83703144:221261172579514:65292:58116 36469521:776502722249083:443084:415765 28925277:407327395161147:3446032:3142901 67835025:183513364324919:84689835:3051165 21000956:820543217993822:239881761:27971701 67892251:971029790875137:1371099911:721586486 71441835:825093250912739:87539060107:65532317619 46010939:627864153702010:427599446625:383381211226 85942412:144435111496634:6666525954889:1756059627657 85044880:241589720212180:43557735822322:19855444827048 51159849:354023202453424:975903142595417:119660094212089 85394521:631411708807611:2894271435440165:104213341461936 51348469:840548255370719:65938279753924196:61512315336478609 81402334:216133737088199:823507564102515325:612977415813499039 65849145:599238623367930:6670660325715154755:2278947253155034680 98739433:348009231684831:67033889564604610259:43137426111760012599 96464909:6440573211743852:145:81 22632718:4552841904779110:1862:270 78232619:8773354748777998:78380:41701 87679919:8863908488551794:188603:184876 30654374:5512507127509708:8973317:4081048 93462360:3576166087605115:48369892:34391444 23819478:8883041831867577:913438377:490028616 23814255:7852276752813456:4545874318:1583514373 60298355:4070230629357375:73292220697:41194835820 55657636:7146216974089877:798339644563:439708882930 62059310:3694290793151189:4156961110813:2717304132994 58295472:6506387043209167:22681499150686:207268728666 46660883:7186906927744481:562032585006686:28865640655653 90448481:9637272394448234:8916303473695044:6185228592867277 65316529:7151564187965858:48620596743621617:16973596595293233 35502381:7778733726973144:444630221362835795:176081789655545321 58398465:9402603448805946:2656526350295290001:1290250694873546760 20962672:5630371148167316:57171349762123183727:42997174297595692092 36576446:78147952565877893:417:218 95180034:23176638102781884:4058:1980 25024984:43001732062984446:39140:29356 61125585:74554016402133471:414148:299193 31429053:72959132536576129:9727402:8745839 46843537:34336944053296333:90495939:36535030 53117555:80733272062934861:970658745:796401635 67046687:74890520899495576:3939503107:3261708638 92985397:13739306429560496:16761803212:10716240921 14906770:61813333277366102:971331670020:494076409840 32968346:24239271070403531:6401931669105:2168245126106 30707633:16992509325367295:65028379779310:54856574843677 65703427:80704213814997869:367349865123641:355616055218135 50664772:82924458735058646:4804991481225125:2582709764963479 40925308:49860910553911490:39790293197151240:16055844889573744 56391228:90626281259437888:142852298396380979:114116429004844058 51244198:16421344803347629:6582966289425512570:4800493986363932828 25304361:86900800827227944:30029459891133615379:18399273972347541598 35876485:413399794727318980:777:232 55348345:249380418486995348:9576:3817 95554640:971026564827482316:87832:30872 85633711:940911381968591666:371389:147253 45507266:856662410193345485:3550072:1098824 45814324:666092462575567057:91443072:74073856 29687482:261886127724175666:688672464:254300944 30125549:941789181662247707:2575724732:1003459617 30369661:995372521464305676:86300806469:8803888150 68648140:260631472253983840:636937240878:202715127280 86450992:155185655071361169:8433393847292:1608697663736 61970688:265869792638084257:74875303561037:30378688900024 19033403:930235918162605591:556330888422402:259441758669713 68679362:374687181860192261:3589001536625969:2620502698100084 37609317:241694613378065574:35765957871195837:27663096907011642 66771615:295241069900513016:315667124688426687:315001549104441615 60509596:580291578724374356:2445402817540468620:472917959025978616 93317848:150125384593072055:76170742583858556457:46641863199520764043 12074376:4018319177627685292:610:256 91338920:1513374483757938770:4686:2806 60973762:9033388940226011158:59329:20349 96631825:3167383093212421409:651858:425407 69721105:6022549525591460242:2840329:613678 47100475:6136895271159143869:57586993:41281104 55304162:6986385224992080732:950857353:775656379 74583295:7863963145527361162:4955138396:4099043069 57072279:1233390078002152383:29787477897:4945732308 95920682:9636058099914389315:398043187610:96421928878 85680759:3140640276442380726:6959148298218:1633352574051 57023678:6850087381539641133:82130320457313:42929245729919 70223835:6057006789140164136:443388495577535:118662375622375 53066125:7945377552963288716:7895110038890041:6500310479145239 82344811:6077521209616932732:50104436280209340:15681141381534061 78342497:9626866501927997236:903398719858527314:596565838342903703 78265588:7214394480622771620:3830545073582479860:906106169202314176 97686896:3606198955172476681:33358694803434647829:14847600439750696925 26357952:56375887406212615846:289:152 61937644:57738517986317380706:1704:592 86166037:29943208106816074167:32825:25858 98881827:26757235734815287311:764738:83793 79997008:29215355938919447056:9674616:9300760 77660755:53083734720919544641:21154231:11084602 10551104:92154386796607644109:160774508:16666064 82348295:17762957367922310542:3877209913:1618552303 33417527:72335769288444985095:98351086218:8373385229 71991627:45183886274132534082:948555056847:736367076108 39297177:69187035819187822566:1621660579795:1524198385949 97514725:63124655166696656054:33973100107515:14943355316890 53407703:36023670409240395726:152577539842370:147273067517789 24243238:98726068757233393833:8021552126929213:1269892902794976 32993699:36651624275317777014:40906802657015692:34121895056055037 47660625:27705824380684246269:571844646574818904:107806372572506761 15590514:40545525355091126304:4644896422834543348:1973206555565396996 11469467:98019110909625730892:32929557478988262932:29001588018119032621 823303779:707:879:525 207154849:564:2349:1909 483760141:722:11421:8878 273591677:468:434331:391177 930024972:523:8112227:764272 968509936:899:20685957:1060318 765322342:541:765727180:134738812 608833859:996:8413674986:4174070201 949320267:408:39713215533:5191914675 629687895:840:874284387829:863059917745 912974234:289:8353072804651:3773874282870 726618865:520:99410783381447:89421504240511 484826812:254:879422416318210:629120878567804 113027005:397:1262800614120229:1114926067826554 510891130:840:20739906512437936:14144319357489408 834900004:403:546631459697429895:327040530477794224 633141962:362:5307937376334925593:5118716592131199235 744756021:208:47709105921152061412:11224441360350157117 148149810:8658:230:140 852841678:4731:2291:18 101475251:2572:47615:2316 702090221:9738:508037:220974 540352963:5552:1233919:654753 690239705:1752:80791651:14223298 591369650:2508:853717939:230606674 844117641:9915:5228630924:3946464281 876495023:4368:69740575878:14530937095 546567589:1676:147044065331:79431135246 447339241:9445:1919244093947:1046986583072 515301903:2418:67825782177828:14122779200265 499600322:1240:833377688505369:553543615520389 228445046:8435:8648794818244194:6113886909397736 933942574:7856:97189401247700424:91615735880248648 934264671:6215:884440365638251220:358330642093022551 736673804:1454:7583944928506866699:1283553913171030426 552556680:9257:77541616096706393287:49670597409977152900 923299114:33044:254:168 612422659:20612:5743:4384 265447596:14205:29510:6196 245109239:29641:645497:89870 530410950:25816:6611754:2183154 655548563:58426:21180870:7559089 755883731:14700:855267540:194004181 258926157:52110:9942008758:1956508291 101888362:62669:59042602116:42161778316 886768276:64391:872217656362:341545205154 593275154:55983:9088596025587:8252016286175 816445019:69371:60194896444987:43583449950680 548901800:13100:568287619586012:514292809426892 941518574:47889:1615441937191740:601517558933864 200947173:40296:64593464204761279:20915807422007434 385529672:75452:955237565660699396:83119743631400620 360392337:46665:5682685992113240272:4590974924251368945 799443396:18468:59352664822231467160:21143752143548247296 210260768:627123:722:216 903470050:538560:8637:4927 663057712:612583:38417:29168 349956945:451762:178174:13829 251874792:830795:6830395:122343 957773438:158853:38933587:4507873 463317695:339673:607680345:28962500 662609079:670864:8563418346:8338903875 364307646:856898:64523392310:51536724656 325441645:392078:284003787143:81416690585 546891485:955620:5464983795188:5016439554113 582158267:972934:66937624565122:11262493301049 699167608:646514:687700770581127:584488491929263 422867742:979694:6430604133468974:1035167358220006 223350303:681980:30600844227995008:14525571742304513 498031728:307640:571191368440475651:459582453838188671 160591087:693242:8016639112221075001:1818731089514719344 488415251:630588:23319399088072893468:618188486535302125 122604999:7160546:550:451 534709575:9356564:2645:220 510638899:4426638:97835:79966 912932530:9156500:245151:149377 191906067:5563196:1388368:1196769 358307970:8515950:71545064:18046424 380963252:8401038:418171636:15340292 414887224:9821827:5951417444:3774978504 801510851:7342263:88253200832:11156485451 522443873:8866095:697971355709:178694826187 209932383:4794065:7750224146709:523917464445 714450336:9983118:71651599105349:45335664092217 446468439:2872193:743955547060264:177189302133447 669548879:6270341:7555546048726645:6518214128294744 948106767:2604580:76306083921554260:1146956853543201 757385458:7842179:348090950543825597:256634415093633717 837593877:6711305:5748473427840365124:4836092410797001089 889528564:5127104:14222921813980822586:10623303798516479008 924904003:72812885:340:63 943377861:82275314:7555:466 371880882:18798619:54637:47849 856181513:34370210:464911:261577 664987480:22555080:7446557:2584923 407786277:27240688:88580353:35376542 523369636:20010331:320356462:55401330 341010636:12169662:8873395415:6107683966 263952388:82887269:46081864834:8276327778 741793898:49112414:684283656383:342258577463 834495666:96856461:3643474603482:3048296904108 509596370:45355513:30081891313634:18133178468248 400632029:39833646:252468663609097:153538360073669 101696252:96438730:6393972446821999:3728650548487903 176338016:25868825:33709864888251334:32168412778711980 310007727:30202814:654731800259234816:93792597189708385 992683343:56739217:7733040205481538001:1383812359714343406 528847629:52045537:22052464669353427508:18807816941540189061 952214755:583975350:503:263 675118430:173227679:1477:203 445675927:126063140:10043:8570 190507081:793033560:314670:1 888826752:964984886:5376157:2603947 784149849:180205494:98986240:28450641 886815675:920307304:607699478:63934801 113814740:707896549:3242974353:545648495 496881069:862836803:96374825880:84147283029 768030535:230426266:964449516477:267606477724 614349154:663463783:6415619730079:3675158740371 132630828:329425862:82919259004621:5135676391442 356029938:771445351:851839261107303:655485516683625 185936466:779077022:3985048018745697:1319848976648013 215022190:199723864:82265537926971596:24174948941147800 527853102:121864944:121741783183536139:70813775842355105 212788689:469099429:2876888343002390666:101612418729541375 129278827:950178713:67246737154161034448:13708058038442856475 181672779:4584176046:553:302 687301570:9123191910:8382:4192 508779797:1590433677:67289:8532 163661848:3096042074:409275:100534 271347165:3005256465:6651108:1440909 587417024:4525956318:75503138:34379020 362576929:9418863019:326000483:2844503 273810120:3512100799:4877956815:4651582275 890006944:2163498371:49465624251:23897218636 626287467:6959669666:494015045663:129148141922 105053839:9906087303:2356537821676:386958467507 581359944:7445341746:13873535971575:11774573890206 196557260:8377605252:347416149498700:162055608760900 843359493:7364076840:2061866802917526:416377140877281 281477969:1953802851:56353734603633593:43434742458750649 330799378:7466004235:249488260021819270:197616349374770542 985876965:5959641739:4015632149467698097:1717310284160309701 342001017:7116243602:75153435972613674632:10192890321177127985 651463715:12010893918:719:93 826373971:31743956660:7576:3073 609077406:21354827537:72811:6863 753917433:17223593574:840731:386623 520089351:25115663941:9638513:5462836 772502783:61907832145:66693190:51752073 739888274:57280130780:372465248:341501760 888603471:34122536297:2321349725:296472191 309873017:44903793278:39270434248:31026628553 337306692:37732412283:249038899605:42858900828 803018906:88838038281:1667476947197:460294371895 838759232:61734464832:84733627103390:78375006976756 617792622:49412567136:993196072104753:376098554477628 193259315:99598812638:3272421514014660:1667231226630265 977599650:23861708315:69557604825358883:5910931949750387 530266907:99762662884:194801898312292404:144973506464341249 424423484:48645910698:5565027490224747591:2024504239273927111 490246780:73041325417:90103984739214194578:69205070200569340488 141160382:316470345246:310:194 933941089:608500515541:8094:6037 483907160:166246362197:26133:14705 128012261:854139739676:954848:319985 175905448:671517958632:9625506:6205270 500120221:269064433233:98867420:16059261 964319534:790093056448:826727104:409333824 260094543:972437398218:9283842088:8150323961 152951967:781391373087:56889708641:13671799951 527014714:437935606731:166374737612:104526919404 836174739:709083070968:9039413424933:8104581712251 769407222:619010235280:57971386443927:19103009997006 242901406:948388857857:929837633962298:870380554471028 444919445:788718493999:2085153052916246:1244989344319309 473388738:830272468931:91086981806210761:49803283184209585 179737705:469550175374:290201141035789194:190373025720742573 528105623:931696742863:3555840485943245341:3077629007140648036 256484983:122295191314:58160594575440430204:29192054893507595873 121582895:6894305564017:923:83 291973566:3429496624930:7588:7284 895200480:4557317798701:51169:39417 570050345:9415130845584:673415:64685 520221626:8288193576640:7907871:6429844 404755540:4791460480383:48994005:21425335 768649174:5903059720626:226404154:160245558 994007789:6446763829842:6456519081:6387592402 196295569:6625859574666:81949961957:39900963823 462354822:1838257112998:619636555000:418509752464 256365340:7428579232175:3397888593062:111513841830 486320914:2797352937805:68798030034631:5581859623164 889762339:9924625357856:402442411052558:72398521340443 692230319:1808769934125:6835997663325601:4015213128342293 667610145:1260051744745:72465362417565591:71301867754476057 342475697:7372564660437:337489758298775216:182478155416635825 511406101:9934100215698:5479232954090642172:2699920611246137689 797572520:3737425956536:93674340866389273624:44161467265559612600 492818438:54804300874670:450:274 711231350:14434526485571:3783:461 143064488:40204742947480:75756:58540 882415171:72666947330886:916340:543901 904238548:34107870706701:1927778:417894 920544590:11311697819960:47060802:40226026 246101366:88288116162753:808596764:246207808 967544388:50595509753733:5924886658:4082086178 637278159:78022932125390:85838304018:47868371181 384311024:79199113245006:622487335280:546649766656 165694210:84463548812836:8090791395673:7312960376775 629049539:19179783075346:51927515154726:40183893035713 884436439:89086053380259:576349746643854:415967015291077 362186247:47129078271416:5079009070476858:85817642474745 608011674:38435395970753:11455987178837856:6511788404289888 538993600:90656373861022:523086054519333748:212720847718791500 448274881:62144186903198:7286936712855690946:3245889660145286089 615974641:71740134656485:81123358292649426549:61382822474762706571 297719874:712593990469574:560:16 694660345:204646415222505:8686:7289 451586097:429645311892070:86131:39150 653943720:535198775725460:940268:742072 124235126:856848754757684:4297282:31100 582443791:739754137649494:71510993:4691239 266266111:783802491965424:868153437:37294831 873103884:706028840366162:3535348454:3343186632 491204527:152571576043878:44677826115:35515645489 578142440:178618426120146:484320381849:122428053028 795187369:792564508303638:4966922343609:442388924002 861290322:676287469568659:16165852178693:13932848254847 885670737:462741836830626:218928605367384:152068091255217 246473706:943396970191497:7687500657714409:6866316439740680 483706271:139404594879017:27823195887508775:23870816072093266 268905419:466965665195742:801032500199890355:241032668343290771 718378421:987000171335445:3774018495837160121:1418505354159611647 536374913:425175615299314:66303824937822329917:65149521494647985491 824302274:7758220617414432:352:192 254295592:1532462245805940:9697:3767 101558625:3724035177816791:42515:11465 537623498:2554943428386144:482327:410184 906058004:4520014667122382:2834005:2215516 779493395:8873332291196430:47118536:40929137 132548192:3987323280205499:517475678:214191682 299873311:1678835802638495:5994451392:1257759967 831279957:6512226660209034:42433894119:10082720739 756725791:2187979497409082:472766533372:363940585409 962116713:8075597509588433:9599363249055:2478606465708 515896536:3408616735788385:93894142770928:21368382378128 971295121:2731926067284643:679346090478710:74325075553901 306025250:1912886254310595:6817897185792561:5606647611218963 931780287:7463359317624937:94875841960189251:74841096382026204 328013336:4137995516592682:601745848294358561:571692698007638947 572111223:9396686378979038:2377361095610679358:569034587845996209 378739149:1911712253437662:22392302075623647290:1952706063607185931 449440566:63117435055303629:727:594 293283357:50588603525749951:8799:4203 895706616:65967872129516610:48383:15469 543993438:38046895760465555:593933:193187 565999462:35911887614322769:7897579:5300651 940930623:23800286601393646:24560312:127649 472282494:18945828686471598:520517543:201094685 821944116:25985962898420027:2652222017:526831618 156560980:32471615450883875:24670252841:11472406774 387943901:85248416536577477:617634432824:611751047213 594232430:67971257242703848:5795944694241:2919918691561 800600100:35463814083094019:55079521438003:46309813181730 801620531:73128498511685638:713897735390275:183982951944116 660018305:57365154142776756:4538304958816803:1532835738171940 754020847:83876850180466542:93315419100478889:78861082292563160 697846675:80194845424772022:662365713739857724:456089385546314045 587223634:72849993762312083:1472296487913165012:183714984014853916 877166882:54726323993819836:84894463276173757609:29400319549307105031 668538859:347358474940157122:174:109 342234658:990364717073301029:5108:4168 467604043:225566997175608305:79747:78424 939675528:799957213147895532:178545:107571 443982067:839308250073539826:5781694:3136861 557458104:599964996541201714:17400742:3525844 481251208:205975703952061860:357563372:201316280 537190176:885921427192376805:2922062514:732141990 540588687:956179515717514349:48343156773:28653268545 709391803:434057981203945913:870563370059:814908652960 736117821:872984409740341404:6542786305869:2323734683832 113094832:214707695679430014:74979064788625:67800452505074 438795407:219367292230354830:318526252434818:172271659695851 637446764:369445721948563761:6543539341978899:355505545567190 126162438:745472977109049584:98632527245627531:31344412358268491 843812508:763449557272646387:392292719477026610:215531558012069002 590593659:628771114949626306:9096306720153932244:776843071400116569 376765703:106934356540910699:13823697015525047916:5279241135933499151 908188458:5830419771879445660:487:424 725224141:1951033919056152192:6767:5586 991683692:3680522165196211498:76009:63080 884162344:2302411574503660027:112672:79648 774120328:4360390138530743416:8198378:4635014 732868049:6905303307510512903:46040750:4947399 446734500:7767467581267981927:205352783:112410926 766781498:3961736490503609942:9842727904:2079813760 502810989:8622353219178623586:27433568550:23683204461 176113866:4376992787603606251:702199401742:153967249396 739214907:2427690354515164146:9076719465111:4486219760322 893529053:6975195601997844357:25792889042150:6608319620113 882963214:9943359214497155807:845177183632737:516306198985762 857911981:6070563593830198412:6545961211199878:1755495174583491 651133594:3647583903946302983:73556771587180155:48445799104335889 748357757:8194584177500304939:888275373961707364:397623357178189613 702365349:3522638441574255245:3562502822901824448:1922802208866537525 534331029:8920302823643399909:73683538678000485903:21753415319129845407 966427178:14390684137944862318:806:140 241687653:46542087774411006410:3301:3079 261736818:63648684955027571625:71467:36563 665004910:13473018062514425494:301383:293098 125680046:71005241140667542308:5140256:1259648 185750831:22652517096949583574:95589792:49589857 959748939:63314061115225211976:125819093:92425475 927095636:50898731624763479554:3673000664:2694721432 812766125:90023141201919358827:89674525725:28512187325 425931368:50423111458898088654:479704717609:167457023902 217076184:48099879323936896085:9786033188864:1822353395712 457158938:38041363892039355580:51704264080334:33338004152206 683891697:11475689236605602437:581942302789096:438260802325409 276533628:32839917342515790449:2757384478533229:1603082535693279 117816268:28108144400912437570:39376505801665039:3702318028084197 807781451:12238074893178195880:441695210778746843:366866741682345787 134380284:50512078793153015805:4445676643747061962:630827496129897000 957490947:26739248134632016603:46182445342806539925:45569668893797825073 9841041793:237:989:65 3030250796:516:8650:2596 5469657572:655:99290:15298 7359710857:899:785823:18064 8286482390:906:8914549:4586464 3010310364:223:49649237:13045380 8310582148:690:882135379:269789091 8182431264:934:4845721687:4034828018 6851359296:838:25000092801:19211908455 7957118845:576:139064835705:95470471945 2524362275:415:5897619126967:5432608629676 6307678729:887:97758420980018:19547954261415 7662503019:432:107021631102329:86932701640635 7469891695:772:4377116362971102:4347686472167935 5490949801:911:35603170490064823:1999139080400024 6869568167:447:260302316161600985:72489929792126653 4904369531:557:1482949988701184290:282573850013230821 8601135080:996:47976062584064417048:36885846714046183424 8981831766:7137:310:256 5439714411:3679:2878:2441 1085125038:8315:53915:39152 3154633989:3290:195182:72345 9964445804:5441:6161207:2930097 3579844983:5701:29313365:12654753 9581412558:1305:663645549:94271766 2671449676:4753:4905124744:4903871608 3369523094:6686:18294904448:12708812800 4363781887:1157:468568880831:331998532604 7436441806:3727:1057979152032:839193240640 5295070981:1157:26411330654677:22005766345278 1723838231:3867:338964238703645:300689136170251 5452673406:9942:5050216016733559:2809841545565979 1595506723:7922:92043933291125787:2754409467142087 1482311907:8757:588797672999861211:295733902834415238 5201122383:8995:7546580193725155584:5178058083821464047 4329622242:6445:55263774554055200892:19704931728629282652 8542610294:44245:574:232 3617690989:36605:5941:607 8334272123:32737:39841:27512 2667378700:68817:615611:485627 8306228477:34256:3591216:3421489 6312994396:19511:26368945:10128941 4005770765:75249:197350314:52947425 9289935835:83677:7600174047:574336690 4171182447:60667:37500141727:2085162592 4446795317:78103:666822696426:499034647139 5966205510:96548:4821613722735:139317728235 5020252540:36413:77125890223008:22275395056768 9168119157:96323:342220300078322:122369422689853 6301219214:27965:6549708002693061:3437242492438052 2925888122:97385:36896421941621954:6410214891569288 1997672197:76317:348398988032334819:271068738294659386 5832228550:15006:1301177928320358909:1011025220572817806 8502530309:98186:48526132937258833152:13631065796807536633 2706862549:741845:450:349 8318749001:488566:4338:535 1104786127:442880:81571:30319 8265560124:544049:506467:417348 6177621341:586977:8043362:5387973 2395872292:948757:42249462:34464844 6078526289:502063:647367041:631862953 3060513294:257461:8139436710:6380248644 2792265407:996123:55793898065:3778343728 5688566753:878632:394722428277:181374324844 4429292285:713996:6559104410891:578189008404 7930791693:687575:40445528210491:8716718193346 3936055253:141982:605766860316243:388596375555673 4115551810:481139:9535125615234781:7772524015292605 8554720567:180599:51247461472621583:721190118232216 8793290099:740965:219309044046342128:38861257155720787 3046859841:348648:3663886663677650731:3265980473434629531 9571471088:831798:50754598859706687050:21085123266146723554 8829030134:4085910:177:49 5671298523:6534954:6005:1644 6234706516:6704860:40865:27831 8306404678:8313415:109244:36704 8403224273:8819549:7323543:6180776 7199386848:4291194:66092264:54679304 9756601897:9439438:793682061:726880765 5631748543:4697564:8983629831:2556265606 9310245432:5360816:90647981711:53764641557 2274449104:4073596:673314717517:652491898709 9548205219:8677169:6516852516908:4459060605543 3693024776:3060692:60183725000853:21617636434249 8902680058:8149260:676043979398988:312943552732708 5296094998:1033133:9913744635773724:2139263953786372 9890952601:3692058:24846791415199239:12544031708413594 1158864119:7392655:281184289253853890:200888829760765289 8943466985:9966861:3824303195160902548:69339527756143985 8379503413:1827716:79442291441475585084:41939272167914774185 9095057035:94112657:328:51 6143808877:16999923:4733:525 2638428452:25370750:71624:33856 9206851690:16484493:985858:927930 4854478664:75316024:1472066:1396132 2707944508:51988510:25206509:3240444 1231376383:85965925:758905542:548374717 8004457405:43453422:4840390611:2688330673 7079743895:48833121:69576072283:69309788333 7008320897:74970015:894124285675:732592313893 7320143054:86733250:8229422429611:1885466610076 7010126130:63727927:45031630575478:6944337515304 3890361119:76342610:519838341666335:70886114368616 5494409219:68184561:8595049614570462:4832337234627863 9507935432:99201452:38929834806622158:12546463847405506 9865133922:16794222:139777646993675386:22688436378681542 2407733490:17797867:5146579207070565013:2567881537103987242 3543976606:21889880:40847835675313219902:27182417529183295156 3384395541:864049966:868:9 5245106853:706255268:2087:24 2433066385:375955126:53226:193 8225013381:616063973:279078:135993 6989942950:165628287:1816065:1144675 7530284627:444981546:12236585:7368269 5440570638:129657013:219834653:115936964 1028578712:389895549:8946416289:4894976843 9189598627:810600385:84384814373:1605507804 3443143323:635338986:558492549238:260362814505 1408890471:768399496:3283379715711:2407256615178 8279349415:545047566:43800794120576:34229555886609 7265183528:858038987:850908352480515:462900008516072 6225455801:889757200:3875599885359666:3694316145604699 7893747402:208736118:92701132328103274:76637349189376408 9203485288:608283326:989452682376130723:265131857443350669 1849503181:142367204:2711969808542474556:934040921540537161 4871724114:368073267:79724966342671977385:46044942248436656624 3368893797:2105143025:693:243 3479315422:9691201811:3800:1328 8497532486:1884515550:76753:48259 5646021693:4387278602:316726:23389 8177404003:5366769928:5725680:831601 7320578536:3255861878:32319938:27935030 7577562208:8147164390:508255357:272473303 7919540779:2739730235:3067123726:571119695 6276579116:1388538879:26536054794:18590325104 9749477304:4061967566:139368990358:70789969964 5407684777:3435848784:7498968964634:6079136199543 7993412456:8696914692:92400765874578:13285474768126 8663315507:5811583440:945555187791330:112946957659621 4750152440:5032302876:5523483503273435:1927565133224480 2274480996:3041700189:67775533339287844:2888410566360712 4593033597:6100178100:430586694115524209:317365647000850663 8797008683:2348845450:8236310253244580722:6083671967269272743 4650579708:6751315655:29574894890419341494:23394998404003833836 6410165973:74067961136:728:113 2520910280:58992553929:6353:1952 6492165292:18623647294:93271:66106 2337722976:12952481519:355553:192337 5176861344:88059560326:3472321:1900264 9066915770:39350921711:97350419:89473431 6289150672:63150205516:214171529:199979547 8221681186:29924307025:9446275814:7962061962 9419628763:11008323279:59036021924:28669349095 3803227883:51304425900:147550633243:112288136480 6849199016:23601170888:4515109071480:2853811801936 5863716583:82370073306:51838218173913:33536716137718 6816090654:21983842336:706900884325504:698074312385792 6709516969:48136577051:4130004778360963:64955723707561 4429341919:95074566838:83037155463076362:72461917814709847 6561339705:24273073605:126109454001440947:56923252471739846 5896762073:91613121792:5209052105301463809:4497860777463854542 2412180484:81867666918:90973384156649106876:84834287544605239324 7717888391:389580720613:667:521 5823184715:834404750285:5799:1841 9614291145:279608471326:74924:19293 3121605169:619021371102:759466:681849 2821965481:959896630177:1386840:204721 1255120303:920514313736:33329216:27329025 8975444241:630065669031:332196544:276388081 1623593172:495951181458:3995179658:2676660546 9169003347:488086056104:42529566092:18040190229 2907266259:408376204201:377765778181:180822786866 1798095089:439132003414:6229858216678:4106422767793 8777942329:885049501474:71028204583100:44084533924181 1353988431:817864135927:399841060570471:187740469257162 3246242096:356559257137:4469697986696744:1991218291361264 4086542955:140766334297:46125652785394458:30201016782479847 4361052234:734419977288:452848761824751073:188000094840585877 5973805156:354883567165:9006837612338625006:7659911953179197968 3933655473:390243423813:21119511720997528230:13442484939731967363 6878689150:6408563969772:608:96 2164431066:4154354460467:6188:4116 4438726688:6137831346732:50482:47212 4376200805:9314085977167:970583:953561 6724058265:1566368105711:4753768:3570393 9269439323:3481966124808:45481220:21640041 8292602844:1028633936661:961680264:848698152 6190706025:2689757176193:2360317961:437572417 6106143202:6922280290715:32254350339:28302432880 9422164601:7819099138969:822532180454:391372486175 5631327137:8051902466039:5563181545060:4733817090993 5291412587:7244815941772:93768991245277:734170742613 3931280459:7596309483760:215444903604587:71661877828232 8271746155:6111481798769:9564288911695122:7878966353752423 8256844488:8897982084250:67273646082608314:37129643789915938 8791090801:5145490215546:768612165918533172:206418722657044393 5229199274:7263097341841:5911201907643682251:2137137246278797271 4222643563:5766290485956:19606404047151832638:12458034549207435007 2037713631:24142854966737:682:13 8643190545:37569099153705:1726:687 8608256348:39569438843751:77284:12736 1293077733:41977433263385:514343:128150 8051584153:97711068954999:3016645:2606537 2628012269:95615337655001:94167616:91795405 1381070177:13833430252257:276175737:110702483 7129105946:68515659584449:1181727331:911812245 8593229057:93477072284215:36934787728:34389328529 7695446584:34908307698195:231448327865:226196241309 9604620488:44826786371595:4647670987483:2367772882483 7226626769:69744772036664:91673041225336:20606844482433 1004271440:44156010058821:336398649178584:322298733648008 4154702961:33612207999241:6504474716351141:2554688229984419 2945251611:72478581999581:57362374696218696:32034098945915595 3215862022:77626751999440:796598888121036429:589772535440579305 6963528977:86301310664015:2247388820259286311:2114920480753986335 2045047513:10824712864057:18304380958635687625:8384252947025234358 9093715086:908970166368471:666:378 4755680184:692571531946818:5763:1896 2964802854:254793070800593:38689:30330 4110999593:186584012487657:729075:440618 1458842499:249699392905176:5460465:2125926 7120356772:151372966564142:91654926:69633466 8962422230:997964072249315:768034133:600810 6293169306:784938810231576:2842570014:966491466 8981417342:797980315036523:19920506989:2726216837 6428538870:733658770155949:470718991506:77798626170 5151470019:424418683261535:7242003798775:4902159533824 5883494783:626832399456109:64331471587791:46533215571629 9742000179:336305308474962:551056110290380:69852604452861 6878101757:135941093845904:5828110094997915:2220507524343301 8877362126:214463972316649:73750810494496222:73084078650110626 7628017096:693914701248503:842028605440447187:733276887716861635 7680392875:818585425980517:1999498276151315508:1008944487387146851 3886668039:724514932814336:96318632688998159531:22142736918235919612 6808465668:3446813003305181:271:161 5041543971:9244256117067700:5988:3933 7202725371:9211345114044224:11231:4706 7516421112:5557383695355166:326503:198074 9827178187:6030048693064166:4059898:886401 9734089754:1571573440367302:21891509:11707800 2421295218:1521337364269455:130821030:73490112 1395425341:9010500260348316:1718038371:976293865 7115249401:2808459679699465:11755498223:5816758319 6204953351:8005853148456804:560774381866:170935857103 5103170873:8905431554564434:2913942925460:2267906634949 1207934115:2311598531101891:38014671521357:647595051625 4267263200:3304655645924937:845297210361705:354050904256475 9589692291:6931462028704557:3844559965543060:741474508676171 9335141980:5205566032084882:86381751094952915:39439249148955940 1985835418:3881228223997512:943213668918980911:632896670411711296 3155948069:7087104996833910:6060228958969619623:499692654158856796 4002353303:1259148441885096:73718057379074794702:62929208567031378375 7224491466:36107356177181175:210:6 2007745884:30969556498771300:1656:1152 7075208848:56194185951867036:78243:11884 3219677059:68200724286555753:363876:331711 1528904335:37119925903500534:1051831:422493 8658694288:47267341155588371:68121222:20232736 9490212227:42207391544453807:455035089:83633372 2719283172:74951279393742067:9847818532:8871092948 1321924438:43055646902848769:56684322044:18553788880 2234021404:61309498757848316:457447158319:203971487773 5381441086:51544924165872145:1802064558081:954464068114 7926975583:58702229987833580:64088605352166:9359026369171 3228148511:59617207701533524:875322015706486:239177423781173 1758496475:72528257683832675:4127996643214426:3956460491302167 1489223964:78708492259384741:24962274431624115:24191707029401214 8332666718:64942542680375939:470492140103964966:15463960133800502 5739128314:12016933417387007:2406464625757050669:2328263908189852144 3761702133:52359842755770664:16912235172328692987:5566054755606613107 4089514364:266575993382355724:122:76 7061266951:358197564215875960:8551:3450 6535187225:194348996522707338:69764:56293 7483139758:119254047519628604:914436:227980 6990099988:868328131295592639:4400527:3366269 3811396511:604549610604004173:67022219:55158520 2685094885:236117407392310037:336217780:332473165 9989468082:987523080704906407:1214614283:277364777 8732643726:245760346016388686:19956997153:7714401594 9076619543:560591002717378466:367699615375:19904129299 3463547295:837533622774171353:5034008881128:2496070924671 6374018925:980427606307956838:96982213836240:85631583496185 1381101652:709437799437149858:866380018188435:431342036030389 2859558483:978445928965736765:5919424104042227:2123103472366414 4057567535:154356595375881299:52375340933256896:37704169217032783 3481991469:245562683606459379:546781129369787904:244755774787428789 3084576681:254016406603236948:7884452488751463715:5599593489600899026 6913980266:577480496448414447:10450858526188094819:8444056315162714800 8213901241:9306404075740018646:971:491 5590568727:5862561041112468525:1133:175 4466305392:9331782165258991016:67475:12481 2736075118:6390355879142172505:236064:97984 5848153572:7196178693773504211:3683496:2190792 7655272708:4897824477801314718:43360053:39978382 3634231528:1116035941698776761:939470499:93034792 9298867816:1029401673900198194:7841553592:3475011640 9739905449:3885952277859549818:72287981529:32371745548 5637682043:9027491819854451427:746022278676:367473653579 8430633645:3051251372035311172:4222972327941:1872861043788 9216834718:4975488149010020159:51857772089857:30762825427161 1274335305:2041401904498191617:116850707494210:94343398409205 5400774532:8993732227955608881:2815232385410193:2098242611113102 3636923067:4315238810679195890:24061757028640679:15920361796782842 5174486081:5652167945595388471:354267277918129054:74012367452726071 6460185689:3903703946848670264:2264357728792017172:1826757664074002577 7546110789:3556150232932525015:66799657960460360599:6674436799822769361 3368359574:22343958545696336390:108:64 7956754806:60064778167482078942:2334:78 7142610701:41568596917217048269:62631:18101 1148249276:69302437350926011749:226892:193816 2918004369:45981563686624773522:5770556:4327601 8911458075:45407463210929537287:58850123:32688169 2062680340:26478341115373362962:622425396:601909720 1238433098:93575326067631623037:9496609166:6550616480 2119337818:40844259136576793873:31298385207:23022632266 1318290404:38932821080186080929:284224025368:246135617608 9464625154:62774739343989082005:8094425668189:2286159476593 3064711989:90039222184283297211:15192951244072:977305203965 4958185778:77970905989155300274:636331841289824:144878060167200 1942140263:71303627589412949922:4178978477120945:2883540925366614 2188005724:22843335500981098191:55367124243116659:20779874099996972 2569532803:92577232933988754491:577323698245713149:401456160805680824 4589123757:50005969468274074326:3214834519426895114:959622133756235617 4070179766:65848858467286600639:20973713792816759035:17546829308988618636 22839022818:487:249:132 87332116772:460:5578:4582 28236961163:379:86694:13481 65289991816:611:422637:129022 45360708959:382:4482102:613759 95683759921:896:72772020:24116401 47154734740:466:617035284:214409656 88829800899:825:8807515679:2467874411 93760558364:138:41399492103:37816621165 15000616003:363:683727392784:268694786827 55785081399:536:1496584412899:548447187959 23668127488:212:70278815111110:1511236744766 64853578357:155:723025158199825:578706838486468 83041651823:431:1518480079504971:173264395347206 75987916898:888:14636453229183361:6712711834069130 74605612553:944:999883140386963436:378311545745468425 89271019624:869:2340722486432535994:13095832146841260 78903644888:302:17039511201608590492:1165216962991210252 23296806574:1774:916:388 50429549746:2666:9837:7102 37602575819:2066:75150:1981 88934326744:6430:845932:457604 23640123710:2326:7551926:1567378 93653166872:3582:63428746:47027436 16718878587:7034:244650730:101523709 88613168777:7953:7463215696:3581670633 72419501225:4611:34081097077:22671174433 35876693102:3891:441783312941:382405039229 62652083597:7469:2377852399041:289163797247 66146285914:6668:75830276596767:4922982361840 56862261737:7473:895353196082328:878103928994849 77004910472:5430:3922391825458876:335910523762716 20600206185:3482:46733249327069722:40785303900593669 94574498669:3780:709557530729132170:338548320878531741 23273494253:4006:5176618344307582085:5115111519617745709 76283080790:9386:10145249392990405317:10090919947476222085 77118370476:38373:551:171 58348923692:15754:8816:8464 37818719877:87483:71268:49689 51192071808:73084:817950:133746 53124233432:44332:7890999:3995284 21407591704:28194:29476919:7854349 79969136428:33760:498965808:219971632 72744220765:51662:7201688086:1275562023 30422704708:54650:48480332791:28769321757 45721797399:85352:837867181033:239441422453 44583836568:47973:7404495525057:1929523140141 87013334264:10289:80347500356722:33803061242744 44168288763:57383:261734645938461:166616724016902 61578287233:53259:2190529204448070:1458945161786767 79446352149:42419:25259625719851063:15121995024940411 82464040534:63502:343929516324219036:209828980137768556 44621029364:82649:8221021090599974476:2276699388076498104 30756608966:60656:77614116061411784432:8222521348779335808 53697636778:708476:966:886 74083976321:915485:6923:4665 84018146554:853969:58059:32554 83010426797:886497:154913:114973 98915304623:931162:3275354:2327841 12171028197:622631:83866372:70569865 76217181515:257025:171700732:146136087 98567315422:993628:4385285303:4095574058 69957008582:351069:64610093229:60248442968 88232131610:765916:349945890343:142439596026 66137325408:108652:4576251315383:1907550548409 37559949829:340397:12778853871949:1704676505991 66619190515:625572:848457646041066:199920450793825 92223313657:827815:8488316507860558:1976110952259261 66925901634:233111:73119684886515135:32731691538480174 37873160634:174374:310289087457829980:67967652899343276 21935467385:360965:6163243361458922634:2014228929015380027 98584476354:438427:51511137160411745019:43311369127276949139 28531458955:8254845:546:181 43144805405:3372606:9971:9633 54319866600:6102709:54861:8658 49649940003:5226864:585596:232653 18262295363:8438490:1818094:426735 58548992842:2538540:44902976:26799232 42575790339:6297253:801878661:374832936 23277459907:9842516:7805076522:5434009849 76840053930:2161130:30418586523:3869147655 33334042981:6184981:123783067012:100914057329 32048719609:8036209:5476671383014:87827639377 52471091154:8317332:27550227963032:2890188258888 45658566633:3934340:739560788726046:410697626951865 97454037453:3409893:5588272511338604:5249945326226437 69707047743:8438270:17936389038334050:1581732337766499 28893338192:3516438:878667819525736434:303628771371624292 55156936756:7795910:6341384903188148501:1094077471502514313 59728998479:4918591:67078282443734193923:24694174131065191275 66826970375:16145046:147:106 59725513918:65563870:8094:5302 79427943459:93810330:40290:12741 85416231028:58509420:151362:6688 27746485615:71728149:3451099:1879761 75336854301:96728581:78922395:67016061 29872607564:60837814:100455342:2612614 41747439218:38933522:3604240865:1927379544 25469960435:40693110:58901860888:39582386481 36041794767:61233456:654650295920:315677455281 59361281375:74312405:1260458991333:872439539438 59004445065:17035112:80330445612999:8453675631528 68764398010:92114608:585677716962994:166867494725516 17076301735:51841481:8655971231048346:2195123628844123 43000328313:83903162:94269921869734972:49842391099733449 80389928054:33666165:869647328621211508:174506958580533776 74542257941:50344631:4104670166056433354:219852955336644161 42846496511:23580547:39642397380058476198:9835832119688322215 90771248661:649339112:140:81 97555945972:178907058:7067:1185 94235591145:810228817:83538:67581 99576670139:506478422:271062:66727 32729952537:228507553:2541453:318423 55742835953:664069864:32614115:15819891 41941843172:296150428:910884010:781799306 70374175327:540558850:2210573389:20386097 45774414356:809456402:52182698275:49366270211 18628492644:856006361:679738138589:589824953397 38504506595:611522407:6957694170589:2714076645117 71986734283:359179895:70070337932745:169697287732 51028720051:664179080:904039910739580:362632434567341 26032234758:150741780:5029660035751061:2900275493635324 72219178404:956578359:74806565153906834:37272901101410986 96154528881:240299003:171361403604919306:64001782775366113 56078160411:269276126:8098896992214179995:338166354538704381 79128735541:111871466:62019940876902135767:16165511439277477303 62156489615:1875623640:507:391 31523633283:9280714291:9118:7991 38971534812:1422330788:32188:23812 57436440997:3074670933:519098:84523 82335391425:5805183223:9871592:9588993 25928248778:6411251245:91225657:27585639 95485179864:7776190048:238372111:194583535 90175888594:1453154887:7339982090:5522366704 32678124430:7753686658:77668808815:26740829365 75905172457:1538434568:466937955352:20148894577 10565471594:1385829591:6691001623302:6289959434318 56608477422:1973643822:94466872905498:62667061150248 88647522868:8149774173:212682678046433:157383997772030 54248972409:1833760942:9752268350631908:8948946688486537 20445480441:3410997002:41415854599323816:30328214234011353 18122869099:3217922969:862605430660776987:317224888936027363 51760941839:8423683086:5762414490706194811:5275494698438021576 94183319338:6766158320:90592138656689262739:9862588439718768208 65106899726:58692221623:988:132 20384054764:97158414260:7418:6288 33233156439:46049380762:11710:8851 29204072890:45519293797:273142:47834 43469157807:82973008088:2809862:2486795 55136153548:54934857923:21184693:5448404 89155345685:10228525430:935071435:923830205 43922895261:32307580650:6197018191:438180638 13931853509:92513753231:59547662240:56889691949 93304245303:43584632842:945755162352:103728065697 53115598509:38112785039:1864095759456:1849140664197 59725187129:57943426878:97642091022025:9524620083511 52624978026:29610747842:427721429282827:82376525881828 40878292929:75792971600:9225601529607960:5624707194084801 82031732381:23686389878:91739498324894097:67384277125006828 25919078115:13752062321:530552820132115037:353279256458090526 72952369726:52952465561:4459128755349048573:3623513234938553794 56271243903:95151338271:16881032998372706742:12438976585623605433 63410035623:897732422330:234:27 77843171695:418083869603:7818:5467 65406945487:296115165847:13379:5360 72053583455:846969635596:782758:15765 38210860133:526849925111:5621235:1960517 91996747146:543623752185:72197008:11220032 44231753227:816370503124:699194546:164267859 23600401676:991476091527:2411386125:2158152476 67636565268:997124390978:78138761664:43892616576 23951927462:969735778727:837351196157:233927490469 99228003099:689017567022:7086412839436:2635558186073 30509539736:541607079210:29898347784451:13451880255030 60555995048:856713016141:189822495413427:73676385104897 51618317460:325572950751:7523284893835949:391193836928635 26214129274:983882308269:17718456721580498:1648112188326482 21116474104:674601693579:531984850182601376:102686416662652064 41417343895:365132302389:5056865975010107852:2548920039787781487 52868171984:341522120154:42941678306719890703:23551248395481954205 43401357380:8615229640681:903:668 36203555932:8872073380007:1706:830 12075415695:2018999892324:24194:17511 58284557959:4841993351217:603615:354109 52215326148:4875518977462:6296020:3155884 78767316962:4298462992495:78879436:76429828 64650623798:9868474296523:537859309:417101717 39314559709:6215707998049:9764683659:5777911351 70322429624:6489934727534:71257804399:40435770792 36843772580:9944989910732:860656222881:290547316270 76528033456:7708246408405:2700954167939:189626188692 80046160382:9016783817786:30628748809922:3317061425572 85044365869:1450296809133:243647839110932:8705554896201 89548059504:8633371669180:6207642031984733:1066493499264018 81921336254:8528192568016:69418499000508526:59361141764017578 24034498469:8619060851148:276261142504844712:77596475502637393 55758655503:8803885214499:2076707304545194474:655497833384984963 29821132172:6073861044589:36871477066179072415:30273229584846011742 66182521559:44111358476766:523:191 29369129201:67119972292810:5274:1567 65791153159:32205220663558:20472:19201 90242338280:26023414842243:508749:161384 53818060454:75931904940022:2369216:2084416 26821609275:85756839896610:49800999:8359980 75003317923:83117105441823:833940586:280383697 57348589939:38211373602146:1213275187:916954527 91644580963:78912918832054:13887372672:1601772121 44027522541:64049926156614:364069610161:105769046962 35308124744:45536339122615:8299528591105:5199348627254 38371127798:98993048630629:37758997836838:32624723606784 33174429361:73260050815800:293341089426500:209817017768501 94515839973:31734759489963:1094262175293512:469935001507413 72571467486:84472976092478:55520465259619255:39663842747575781 70112221743:73365204263530:146408701232956386:99220721077532541 34358535169:90648640531366:7800237983889951521:6915397513427572763 97296995992:93186843375854:48545827033510625105:17903775041210884329 58082533719:632288852138769:283:67 77147655144:884593298708422:2115:1881 12563539221:692109126064987:54406:48671 25173521928:235406961263500:320648:234096 27632863494:321213911060622:2801468:2397940 61227470825:526518380188588:33094119:6522814 71136018255:211735547770462:426077620:60983645 66626963300:515310878235669:6586160956:2588902460 29969704323:585789757210024:52567960577:24939436505 92597819872:268392427403924:534451130355:160364874526 63623493205:899734748659350:3517809550246:193420241795 91153814696:889508592940242:50135183036040:33647066148856 64906751646:304833591004188:880851444644799:690183324225927 99485854851:452053285898586:2881310434753422:2527327895220969 47838358483:748358509368287:85570690901718486:11402377788517993 64390727451:484558330170375:727638476047213185:463770257665984326 94493692466:324453109692265:7988261927424912746:2332206653248517042 93811895396:425979889127143:38248431324288891185:15334099080299603466 83317790159:6449499562459381:506:373 97985485518:6021738315819810:2636:2348 75545298864:6799075768076008:75883:25014 54516165601:3378728235800091:617965:518501 22824365389:2269125957636778:8304538:7988751 92447642143:8986044161389471:53269617:38154829 68366280828:5437124368029648:140912756:36468196 77250462759:7597909275412090:5147455520:1755489361 75922603289:9990482360447890:45983950730:33385042071 43251525917:5273517774176196:246028025059:22465949021 93247133978:4665125000798959:9479974597122:8564131787390 38238555765:4423088031708144:82977766745614:69896717631157 77009889744:3168959537534094:106808790779806:105324958310046 18082776406:7863121570190207:3628748519935363:2583772231687786 84074717434:3085452237400185:29813521313708872:7103374346994168 37851982798:1369657305742969:953081147576225886:296192994633648472 76662645685:1183376155459415:2214847238698008709:334335144770043907 59034116534:1830810166002294:53976968831272272841:1716295626220920771 65855002169:98141282675235448:235:21 46501560292:51692960327956262:8217:5236 68999247592:72347233704199229:88172:30580 90256516429:35655136757966893:880589:472120 89250730967:75417167047227166:5942715:3405439 66517209895:69511358386626348:93340900:55129725 96126899834:73310263353796531:907177361:587610842 82478101655:29427715723387910:9639817075:2597101525 79142786358:59685777050238439:16297500956:10805862776 24820148602:75737738940085342:198450369865:8776718219 64536274984:53982945971855126:1233748316796:310378650028 62474093971:29406907489373111:43156973260779:19489964581777 36825482330:39258289387451017:749145950882885:108045929807935 76178339585:59895143072429467:5781940795712008:847862885622929 64013222145:38141150861892136:41199501716616685:35451817748034015 71654850291:17366093454598532:482305019218247939:167164590676445070 85524883517:95380212917149550:5478965337730774038:278072804424652915 56722762460:12649614765954762:30376258370168715213:15927003967975766788 25869876555:928346688309484875:218:117 96214888754:153015287180206141:5638:3452 35098556783:392737527525073344:35221:13718 96902361162:470301015267664961:447344:185104 51863794603:144345281299774506:6202129:3139933 24541720860:207331693318986005:97629098:78363718 56746900804:529182862639056155:195172290:142379224 32820076565:686585660498451990:3818206500:762656125 30124830730:309484365874805926:86589962982:19986600082 24785464753:529893626064052654:939367279733:674057627411 21244182332:789527861971007226:2260498857319:252174323974 40740088116:242485304564537822:78874448186003:47400761064496 61671338439:782476765273953467:266661512938788:25386771933243 53779919751:292902642406671068:2517922445648217:385113700450692 44033689115:204833611161475134:18151823809219074:7010193285776629 38392988427:400802964876169920:344795064570347335:118436133615079946 20169419412:433636022535994493:7778606788305346956:4974389060100561888 68635551969:297211319115902491:34757078067543295567:5921380817333500316 96543716096:4742297056536837378:633:1 77043420523:7424692391130042332:9584:8353 35958576455:7611715346387184414:20664:11593 14764410464:7765201859136966770:567997:294408 75162398292:6420479986376548738:8515495:1900024 73227616997:1825514360145517111:16032155:10447083 64054196689:9579096593806698612:139884434:125122349 47801114154:7582657855948521400:4083414670:3271023096 84096902446:1166103852737358385:41833382665:4000531046 32986677656:1845105055781277313:104773547170:5750558146 98865488743:4171797409992791714:1186197241341:576882887077 14482543806:3299782411005171953:56313245793265:8671933782861 12001166007:1502547137842605357:438294709188041:396239540706900 37905483042:1512911939717633429:5789448954722025:2638810127150622 89632416160:8989539749510321240:90400323708101750:63189822876636750 30373731667:9760187384208077530:504756332807044479:159866089569893449 48974137561:7454211756379840751:5280913563481113396:1161395242332262249 71837479005:4516183971389151126:85659577869315578700:65797383877566013425 33270426513:12925836327523584148:595:16 94365442613:73519027024140013337:6507:4604 85256441388:17533624264853279471:82580:71052 31745116287:45437127323842853075:458016:144639 14045190876:46997532715773066153:7031921:4742106 59912036452:32446610672141162119:43865678:4748726 25027274290:45262581064531939552:151218705:62771890 92041671658:92846520186056125233:3904170750:3219802138 94033235360:20029968071035996703:89218544612:43924102332 75711745026:30317497846899873497:733170630704:440624605472 89910125490:97963301307924568194:5076623980789:2574458737574 86082338794:57931577630335801634:93164656695401:74957459437201 45265433806:49569067653737077849:407267670697958:161507689334640 87553704413:75161758649632493115:9692836389412223:6819639529066918 24030634092:78009725841567148991:52745892919180115:8578862008807843 16990318546:45973545877164794851:529007891377009772:440311454177740724 57427254748:21603290612473901453:8419626070306305776:5596565632144568448 85039321682:73746238287443571254:73774468143953761790:26476723862086523214 312755356417:554:146:69 601150330881:675:9454:5927 398823035183:541:68121:55088 910838827474:410:211260:147676 475439621446:674:3006754:2479146 883292085285:403:68167095:35726985 878515307062:426:918326855:472485754 778616415536:347:6709221206:3512996688 432813990086:703:76469093538:9440577542 440328202081:754:772584695302:733816765033 811363984922:618:7525223910193:2549194522906 694102019039:984:64214743810956:26848437848749 437380277030:830:292905031441130:186503316834230 287975090874:294:5116409422939191:3960296446599195 498505194798:329:16047327131361114:11674988575623366 589513610803:862:960109563603904379:572146218152385066 800518272835:302:7548556736502444003:2782594427464168705 211111435972:310:15818636676812567268:3753596005546548316 473416942365:2968:511:81 853213901484:2053:5416:1136 861952721188:8295:78900:8032 992418195939:6885:158006:119787 408197495826:7755:7054403:1509147 334963419076:8578:31595634:13239766 361683845216:3717:497692347:275863766 660816428773:7715:9014422853:113151069 519358376330:3298:10724945828:462514676 295650329859:1633:465659857613:422021837906 368140471899:2477:1513748066586:259919160909 300117293321:9002:96273114233055:70422821853661 379787998429:4374:147230057961974:15280824609023 502578664955:1518:7934285885808919:4024513276628391 402770575574:5701:48338843981950475:19408547775102624 895964401379:9890:389514140428542468:180216955600246765 611438903247:7391:4846648874984413804:2182796391514701379 565035435118:2623:90220215076039381584:2477966135706634336 739917396350:56311:850:100 925495511942:38388:6882:2674 726320127095:89402:27952:11809 119323046804:86564:706140:241936 560195982863:11482:7544923:7146333 101025696762:39856:66283822:13943502 495702849271:55642:783683265:295111006 961566770244:80121:6630488148:1211057136 982482892656:73349:54628153110:53493026616 950712658883:96584:337739330077:173837181997 598985014703:39470:5005564331190:558464416999 382409437334:66231:46128411084759:38884683914681 664376659079:11902:494821472349207:136833505744696 871056477447:63081:9007393103933417:1748162545671449 567594166191:62778:96052386839574382:71458168979643013 510000267470:73684:766250713291783678:570579530415114018 150628954491:10732:1900963286060832133:693508248173284097 424955440877:30128:18538987445620943981:14624737257405128164 290594251434:758350:260:56 660174688720:352475:7263:865 288753680160:477106:56579:26768 162766554489:660055:861351:842958 929599368510:974862:8383811:7108910 634114194588:439593:90003735:74014803 405955119950:482277:832180588:612199756 660265095824:116110:8849923335:8354772361 855993474936:631024:98983642506:64561220628 575657768666:447458:845740325613:209317139665 527743787055:608831:5011884725109:3207590173524 225696537949:859789:60566821653972:56479191045253 501338743978:539029:824515409144530:779962697151458 969632954329:866890:1781071746678528:382737535406257 593383366313:135651:41157850917669622:5445873013816511 526090684170:304249:423298880861625303:237152593217726442 414237868816:583126:7694621523281827281:5861621328831074851 982206166272:647963:44177660953591964189:5698180147839290478 429915137285:2282072:536:129 904932004025:8247279:9587:1551 752597685104:2710794:82853:29671 826773003236:1037606:938760:186976 879044226097:7290174:9926731:8945577 283062539760:9718375:20811523:13319956 588465196681:3538370:219409218:27239713 381304592425:1588863:2651196894:2084236819 758173374330:3403045:68044680433:25308052736 964813107369:2219211:977522888369:332060130860 277529199121:7715572:8482508203154:958619836473 541569636583:2593829:69142535649871:17258609344958 447888670289:2161479:348474625319702:36874362654823 683671968537:4984391:3454413331365023:52590270861686 457390611889:4701945:24729897274482183:1417178848601587 914347779752:5073060:199751938413812525:167355101001364576 123730963052:1081610:1695481220524827047:306474633102751853 587260260289:9731507:87155929374239034353:42242776256437005963 647414025454:60977205:792:496 138132517758:12529275:7732:7280 355402447697:91682035:84535:40953 778353361710:73212322:320128:299392 212184225481:94374716:8759333:2396925 445448919136:76193650:82188463:66612655 988271073041:67536648:798089393:655351660 689777630388:79015665:4438271355:648635253 636666783885:60711695:89303107714:12032291923 232733501251:85839467:589885875139:485475872171 858323370763:36921188:1223744284418:619442093971 446907239573:40846370:99635837784047:90970540314019 941672142510:11668780:923651993625053:120903390550272 640877831421:37563286:7332031383972322:3839533096158051 622745394495:78417653:39578616596289761:30504385264531635 350908024649:16396362:758154140099317973:264669569206253302 852282427831:24111602:5777802229654139851:3706835756672696595 352563287380:67261006:25808325615277823631:8102457729582001135 993332798027:787267037:798:467 673012266158:486582412:6272:3200 499277109190:891509680:88701:25951 555093571408:515568421:542602:30376 468488320042:976998691:9165655:7606938 323183055674:559776909:53856177:45388583 802395191465:394052195:875744373:816630017 670850474094:271026287:5609450384:1191007552 891589999687:884730325:88682896318:62548998735 519939829841:392144946:346385917757:70576328903 209795411071:678523676:6232605687609:4111556557900 266280774083:840403580:59797768830310:22923580802581 413644635012:155864548:722698130279366:433436996651282 737270791034:359262870:2925186853054753:649324729854452 380128160472:798714529:41568660081695982:13922624331983214 126997485442:848309432:393754591296079952:241833660614253120 356013450922:208847406:7816453071881383881:1041824493876861136 888040565856:372398691:89162156634381154074:35719096839055542714 612246028093:2294109253:498:469 367738286824:9740690240:3763:1528 708791139274:8766958895:44774:11134 560241311588:9385508422:148969:111216 569135419789:7780938715:2460834:558301 797809092381:6023730544:98546471:12138034 790366655892:1059590107:951703981:872338357 620399642502:9298421926:2463353577:2305143540 123990342929:6254794589:33570628596:24249395861 172994820040:1693140564:469440542302:191481155902 572406096754:7322454033:7718604460354:4570210957164 480985956216:5668906690:64482234161936:47902059277728 807429344145:6714002937:527977967326252:43233342437649 732110714996:3655522244:6514863591706679:45972136042504 915717043988:9024070437:98024304630663989:90096686159041454 142506578927:8357192311:173410119292125178:97051882511430999 372774046271:8557815868:6942510196019213087:4831778080099399115 401241838125:4719455408:52802098174547985576:33261708467182579161 379857439952:63520582152:208:144 426784718337:24435733243:4719:3981 522723622221:70338376669:39729:3450 712359959577:38225736237:545913:40581 895456403153:43759624150:8071888:4651505 257709047324:40328590423:44577723:30548234 573490880110:87427488196:856054341:126897463 323500062329:44342393502:1798445406:899531947 201903032866:78612186047:14609705876:1719688728 704966902762:98259654962:591986641677:388197179488 264133844254:56741438637:4274867358321:3966180866599 398318789982:58516221648:90590573242407:89357759581014 547616383989:21319739898:293434473543128:23544372624345 657408667962:29038907648:8932863823703300:2247371394185596 969371006572:37634234182:70216138915786540:63458101718349864 110882092947:22663749733:507659673298335576:490944776019671355 655909784079:58181187146:5789755569969732800:5561663506324596321 136507297812:47998457951:44524690488979138053:20309706388282270185 555910485728:181195260662:673:16 884259071421:883852790576:9617:4741 917317605636:388912928504:29309:13689 723832308004:165752093593:653915:103184 139036132701:333314915876:2503016:547065 485652876235:548805091715:35357527:10868981 283322717547:814718165453:213814733:60622002 485239766222:357204133428:7799712842:1592052826 113862512434:828369865454:20529635442:16859945494 144957433220:591845155477:651949976069:15393324770 603744779778:237984727675:1680221619131:213743181079 389390818986:194028622790:28542919188456:1992626315928 950121200214:138808371178:337265977908872:29840208301224 806921193344:151808237228:8600897128738454:88773305169336 106703407673:113824140359:53444623664607298:948185424484015 217092772218:957821701185:872466654186219155:186502133567412838 728740785760:486043781900:2753110337302564451:1065815017876937732 598633917131:107670281671:36922063388220497766:3937061283079111199 432318260607:8594835782867:468:207 805635071240:4159858865924:7060:5480 737034301990:5267784443455:10881:6733 298118439073:2417248537086:797970:235969 168901661250:5370077789023:4099039:3728480 834773116724:5841770543090:33359211:17244136 734878453695:9080366239628:163665571:135183985 729150696703:4018950799236:9575276437:3227668374 999499536462:6820531502021:24995633289:7641419883 292058399021:4467151488040:620147325712:358621326001 673069259987:1013183803019:3812517113328:980797441067 702083416536:3197280278117:53937366315883:53401138164727 877980222448:3027486270188:103770496976325:42884238138856 615540090702:3926438120059:6194070848359695:2144721446779833 900085467333:9099011603759:90007296757296782:626640173464981 710995861252:6854099404546:272552591640916949:20271992278541326 585352181640:2833032735493:1677379770298730920:1506449827735647960 617028370603:6466486550988:66125974630565097913:20166460757329030313 172481218038:56985153412021:445:278 403867284597:86702012362954:4470:4239 372467374690:31887172956075:30959:9488 690517825864:61571114140333:247250:171994 859452184578:97859528173817:2118313:1248161 704942320877:75047252618759:53585437:38020826 113121583459:48806938705238:857565201:557118403 214308146882:81492249832389:4729420854:2206069766 315513085171:64569731018885:93816482289:32130812566 328532329687:28814862163756:816266752526:239180376969 476399952598:39025760586023:8859052106054:1395576175392 529537087965:78750009043860:11216456540772:5472536178285 130489496809:13442727214972:687768290712279:512795982433651 853112851554:45011665964477:9936826202050334:4697008661678162 207282589497:43219343850836:15820467339784077:13527811369493280 398573157188:86509442449105:227645867777277190:159578341375045288 427955067840:60551843758401:6789981604300901968:5620524931296609920 840314082551:31237359487205:55254254468010472808:6522000790183385183 346862363597:175626594480112:233:4 983937576408:557185225060821:1247:945 862317665637:161705020123229:11216:7205 993823966162:921170353087152:619178:123082 756470391519:508215464171825:7715329:2003614 683475219184:200606478526385:69724468:10595276 962637605631:837662588618171:309520392:10592463 451513922469:620386028374973:7630677881:2741196868 108858691367:950302843539228:17905079843:642146863 712921686452:245375511429248:748659810598:748320987710 539946364575:807213571109052:4952837773130:4082439330035 816054485243:327437558183374:60666497800057:24209951791323 164518949302:648589683712669:851631741337563:606058133325955 138027847293:271268046859162:4124707054707686:971745618565177 971594858015:803565166098171:57466949641023032:17165747925986463 852166023928:924256248372748:511986007322869285:257939484647018761 432138577491:334996757266861:9803764323895738019:3891047405871665614 294896436278:971676507989380:98168406873017120586:57325437294091798396 874272559330:8269574256877110:296:0 976442881636:5594059547255599:3562:664 298413684661:6204936189971100:65596:55181 256133540732:7517796958988458:361138:93316 447200198859:5428234359475085:3992415:1438389 399819503358:5535378453055946:63337305:8250984 347394275426:7690212632398117:704726112:494470496 338042253109:7494336282249544:4972815797:2554845780 427493651599:8097946796774673:47092684065:16031623804 829177369838:7352626535910061:468747130124:217333522496 776156499887:3273962919010235:8835473906296:6825952240039 177031538662:3552843445274037:68839966971838:52801704618854 433967686654:7064991585867114:494701453009999:392425761695794 665067772202:2249218642162988:6432259546559909:5155257085387732 160579041437:3215557792236390:76651954708608916:39854447388601665 962121927133:6715279952557720:547854593360932060:226735594158806261 246842941517:6631210796713710:5858838167679300228:50091563962467961 765751785298:3855570304976267:61054513670503108182:19355373001042555552 677898094447:21545426157110170:159:40 903879851645:44462440241009582:9016:2577 447386159952:78246859100174717:34416:14256 546171374153:72074689193968054:557575:435219 551251258508:40846316446551632:7038350:998836 836070055184:98554398582824981:33110958:8581520 713988675268:50666206716525843:115762783:62275593 154145974479:22000537269336101:5798333175:3488975304 260753695241:88440820759543654:24754393608:4705533025 378745635312:53726119751612792:470524188099:9254590020 999862183496:16921873911367234:6317543898289:5488575644257 375305854800:39734247503641021:16389794248113:9685594677921 566948694985:83444473456505545:339951150099576:149529188193001 356053306299:71660956203094440:8427387348226144:5975046779909377 722153044475:39123431868678210:56901947396290250:23184649537902875 896702680842:70035479833750854:205870427041522557:167458410963409896 946917713690:18211313213574561:9232240728562445104:4658301108237299440 184493226839:86975705938471540:65483722834643594389:58946237004718595397 425707732660:460595135883328230:197:136 994270401460:510317345944844240:3523:1868 903290393245:112347331763870685:66803:4500 945050190386:615783002128855479:698956:117640 209985210950:783547280519979765:2302438:831976 859766962729:509146563188839207:88558549:32302354 269655647690:326990536193249686:198058348:5053192 276957586697:179424542904924642:4974334298:1124937547 318170791145:601640657635813934:96860316312:93058087873 925117496915:885314246639291747:848400865170:172957097135 423210750318:429491301465253002:8905743641302:3853623045846 171032048974:239946758667109639:51018207659362:29999587736582 631553482816:839530368592812702:878590060094982:697255947027652 879285644014:788904476777089606:7565760370747275:5750296579716286 498398508359:394946939443862013:65339246887811987:51026930612764114 331585618836:954532705724633034:897865706388325532:889595995600936768 904983960880:128226829232143137:6675024829621732254:2419273219141379710 960565961220:422686602937035041:63519118191059336736:49845892757860025760 955096849206:4007183950762212576:184:128 800368138573:3930883694568378351:3897:2017 996153346696:4450068958463085888:84414:75826 741767756998:1579727603800964376:716550:511786 767995132851:8793179285867074579:7072061:2513831 599548418862:9406321271666188559:15396745:7931218 109267967856:4468802857930786534:520636150:217042196 309512567613:6083298753672016061:7121418169:1650665773 766767172168:1765264285874759105:94536980377:72747973622 959272919571:9974678139980693464:775420513529:610014473711 542739047374:1188480980964324163:6883076280698:3131871270828 675759399344:1180816802753937498:13112538225170:12615326491116 133659726808:4755623521435682512:659034601185454:650143011364746 473840885625:1780213636022306737:9230149742588251:4565087736919504 356957474436:4337713264482036727:53736792033776592:8986175260707168 503523496752:4010866014526341375:402619374729953738:196524803576634868 392324549159:2886427350195698108:5600844152869234989:1864607736963803872 920165196163:2837229438491937112:23616449245990611621:11887398557798985625 216759055798:37816446875699168251:628:200 845676687575:24768543611951604194:8732:3801 598534038088:43208050374605581512:73453:58287 160482897424:97641909672274432560:778379:236097 577616625585:76546767607912595144:9948724:8180397 606164238267:51042160133354499581:79870427:9304148 947549814474:89559825334452708640:966361274:799983082 345232228041:86409543406343490157:4766602943:406060724 170104642247:49408534826735532106:25796913287:11476657876 170179390445:16010041140034524817:540051792404:179841017173 924130273523:79474490073841169236:7236803998067:1044034662729 563767360660:90065339650922049687:45353885701327:43913491876163 222850033002:60149455834481047166:787623913142664:780883474188312 239749283766:49516070298320558235:4711344808726650:2482190529637776 450086015612:38608013650965609987:68261013946938827:20337008353266809 632969337869:74375570776758661882:555598673306236153:331312241627150894 677770902448:31837854944846568324:6955293297156459240:5225437844836646656 704859291162:57550124578478193458:99518671616901205455:62366664009520364004 4474009739473:530:512:417 5889900866259:143:7784:3467 5615670201198:111:16404:4404 8988415719391:156:182473:73525 8101011856881:698:4814569:3634269 6968104459483:454:18548676:17484961 2980712926245:957:509022428:126041033 6792162987805:541:8693279119:1510386590 1151901970687:801:51497282739:15204776551 2496182244552:600:358184539814:213966652388 4125503259153:360:8294174927352:5495772821337 6804825979843:603:50730191601929:31550928918011 9522195587846:181:170524224089142:64096080835574 9132163745653:840:8245979782243271:7101312259427982 7902224851254:503:98731758048457739:85596686571030962 2008747028906:951:546760408327579142:121426842893188758 1713500620441:186:3554064251778962223:849683355297381199 7011745000749:356:83374845541250880438:30102967863096959907 2914243435198:3378:712:544 2171649799244:6174:8388:784 2289864114539:1250:83675:576 6267793331303:4116:252240:242401 7906378996322:6838:5028577:3815414 4714916537234:1724:46215990:25699126 3371701785208:5650:847429705:583016269 8308880196533:3090:5245245894:4807026343 3266708752918:8269:22177559688:6511298680 4162411010767:4260:745265487032:487962798489 2363258284896:3100:2747437992025:1253646872126 9576717216296:4266:39322043511518:24081388964948 5832770840949:2651:212606998631577:93844950676056 3430033778091:3498:3127511586166547:2469122638676308 8189123711074:2248:53644388097887103:38247505964005759 8611292003499:3001:966760682818606799:750746699837548918 7747924684357:7352:7123888514577263003:6746796653663626532 4542266767888:9957:28479287404814459291:9319051675228731155 7356559094329:34502:786:451 8690321447952:12879:4733:3913 8911004615591:90285:89704:34711 8175550607276:30565:715046:242612 7274593824439:93564:7082793:4705138 5378386169030:99126:99285013:58214956 4081913750008:18830:693069310:445255864 3594085189069:49699:4847617603:4086916380 8292814248243:73753:36048592400:6265592243 4791050059380:51701:129250568238:20228374608 6998177676290:75970:7889784150370:2741153044430 9025275235709:65284:30693667474480:24095548596401 2149542664988:89629:571756796322701:309566181943813 5836220446749:51936:7230484659804077:5732294156867978 8878897622609:25252:10533801322409256:8605926339970609 9096481963016:80844:284710906704555940:59247923025763976 4013319598691:49913:5687426518680819640:4457485355058368971 8215259808920:88609:53276790017937806223:35909731609606597121 5728868115422:334463:874:272 6592735346470:739832:2872:1064 2460526434834:416153:83674:1936 4511268723180:695071:177432:39288 7638168202182:586289:2542420:2273712 6143145403263:396243:70528700:22536547 6817249547994:639965:215279477:102502668 5560860281129:929592:5350536936:1916571097 7858635961450:540365:25085368341:13865558893 5271502562522:615909:505783581779:463064704130 6707007251657:522603:2239553133010:1397423776893 2259416583264:720360:48545123122385:18140803709251 7114237023161:855923:879134139341528:828198474679601 5202572088746:491761:7119591437886467:3334667323004776 3237139957868:576261:22168945328051173:21216564615639157 9860817583284:423561:113086622479974661:106428996139694003 6270932005391:325884:1596033868571966141:518807956106232729 1602848340096:930032:44746342246106959017:39126190261848946188 7141433171955:9859294:137:17 7293884718154:9180220:3746:1880 8536477364804:9540922:69913:59890 3857022921705:1564434:776503:772836 8757725064159:7017673:3117391:1881488 4701604133118:8349808:78736069:21251143 7180853461598:8734125:235588396:140847588 9463144036620:9175632:9432840582:9172220652 4419111740757:6739943:77018709685:74522085398 8627613907003:3500405:345133500806:120414029523 1643064727036:9857073:7921924048935:3184365782161 9823133260373:1337865:11263615576855:9312183660833 8182515082963:9301582:339369849596984:90399537790161 4207369560000:6625080:4053161274105704:1888758061084488 5939070416111:7678142:47603680450289270:28192188721589401 6154235661897:1898646:178127118798461968:127734881552870097 2464402128748:6559199:9533920788389564570:8961954964858560442 1624198866245:2513790:71621576075635291063:17219423371056518149 4966249859160:11563146:394:178 2126614654385:50671309:8774:5351 5475471008081:37601152:80743:25736 1851477913626:45927095:217536:46464 8340636484137:81614684:9890132:2804341 1126481558860:43838227:34330005:21111040 5344677300404:36455509:232896675:214134344 6856486468723:22484974:4184840954:2655228951 2755604816672:46811082:68714670085:33037167939 9308963361940:52918619:281014673806:274314628906 4402535495925:84765132:6066992694661:4526798800510 9073940035622:12073895:33805986555576:16813783177400 4316292112190:44245073:929315159054624:783249052082816 5258162515060:85187081:6471134589827670:6141760554186250 7453359936574:47489097:21241850669488307:20846563970932820 7198873525111:77894088:787426023505386507:634021819907348662 8358320362492:90936653:5098900595210319714:469483510425544942 8871468356432:81475767:69778997483444316099:40736084614768134269 1370438477698:325823507:396:16 3299800247181:626857048:4798:3003 1624863169595:361198108:91292:1881 7899208243266:644223999:525817:115254 4167084778304:250494502:6008145:2579971 5648194331675:469883385:96478113:52672340 8490831952990:518975598:427798932:222954196 6727125807928:312286775:3860811561:2125705045 7060742962322:998022616:63486047266:38503096436 5927598928752:685001265:296110124332:63063376892 1253487126549:655775296:5842339418541:2866660316835 4340734182056:927619422:67552188864691:65999019218559 8724867162683:198025467:817011281656623:749007243553796 9357268585433:349303176:3877164917751131:802180060360895 4590138248781:586798565:68526607503454709:68240343384740731 4867063945994:441554377:651469091198578103:543761116808238694 2479073209219:892229846:2409975556239728271:1861612916876791927 1086146426729:733246162:48351239424043520098:11503185709641158691 4319501830096:7170426652:815:701 4882478982741:2304151984:3629:133 3036388234401:3880872153:74613:17802 9565719282679:3050706182:700372:127297 7132646964273:4836619005:2160447:193461 4564260440105:4242884375:57721268:48241645 2427644051509:4866137639:619312541:43858140 2243073136646:3883175177:4113579901:3430305725 8458226294463:6602388063:15006628803:3503952654 3359432324335:8164749993:880588774997:580030392005 4868022289184:6594075691:9444242115609:3276596782688 6989912342027:6104423234:56287147787661:16159448677219 1336641585161:4945913161:396817743089041:331364766249242 9077488457176:3791358003:8220429978606491:1786361708664792 2731362709109:8659858811:22555706268131427:1465504632691862 8938152187791:6818262849:560738402478345773:329145505828096271 4760604478096:9708025118:6092030389945062267:1045799244625240453 7467188801362:7830671630:38362437515608146437:18827032825233936606 2770172244817:60857847555:796:117 9314345955427:31186880509:1622:1389 3877248496630:81843192681:23705:4205 3533481646657:67686478142:318155:38234 6110099673193:52531450100:6754472:4850569 3731718082232:26086436543:21035483:15720054 9030074411871:39870077261:979280501:825906991 8475320140158:33316324260:8046429051:5394742803 5360559676757:89772488976:36912688729:9137809752 2567321701284:74197634884:422769621942:37558743228 5532148265916:48693639636:4452117211614:871289299584 6682026151435:63930633428:25567226752578:23116034768341 8642949048459:68132605272:535206246171811:113971204591764 9589620422068:98655093179:9834122390701359:7288894534368532 3126138418600:73283550807:14585323607581990:2682010777084620 6327637678412:83520453705:767480956583725532:198895123776364596 6416478558946:25684841467:2606341565392519747:2531590481364572642 4204013958430:33611793601:73677359033855390300:13101144068959426900 2290123570532:739732291721:293:77 3264769151610:162907140879:6165:90 6500405380249:342422154893:46028:38969 8605325553227:482585336652:854157:194557 1953409146534:558709428084:2547434:401856 7984777101221:927328437526:96728327:41152461 6117418607944:553209983323:546954362:86578928 3895849364885:547553193538:6934270895:6352297245 8346779002435:909597278110:70128738090:24493347985 6105937854517:156052453496:856476629439:482297720272 5053205282748:838669763778:3215892981798:2503987313058 4211343878207:527111372381:91504621143542:53466459427745 2432656210944:457436345619:816178423631654:220614952838460 5655864268456:887986793738:5822640596636830:3374630996820346 1551861286055:746922721165:54924302416599890:11031523602559695 2775019986147:474414478748:953805341080156205:430792275647727376 1413139687984:827004178249:1802137215311093729:1386347576244350567 4286349532925:473773333112:22983587470166688368:4241545929500308129 2854186840979:3528420475381:838:137 3446207673559:2186522789553:1593:217 9060768309544:7353878360485:71106:67606 1967853720832:6738748702268:249748:43900 4633680919605:5245178713091:4191663:4124874 8406690423285:3186695164752:73868212:14226465 4526609923260:4788937356352:265437172:1262816 1462450343793:2271977933353:7266793317:2272772346 2436336190305:9316540806555:99193666165:28602026265 9265738429859:1964640529674:119501331840:11760388201 9278068321120:4387171926624:4603357066596:3786400146184 3175322594010:5223340600556:40552859575649:29183268394535 4892481364515:7037911216297:364309083650567:62661426348369 1355596137982:8940293951975:5607460466030703:1917314581903102 2636570106553:8624528960296:61026265358269151:8767936673422129 1721271529284:3238801968424:442389470223541843:69758829906222088 2114456286562:5699158619781:9201171612237077839:6379193097627904119 5603950726911:5289105155475:92250626863310377925:60582304956952451351 1616026858276:61551089508728:617:31 4514345681796:76739932929756:1719:1530 8613342485055:55230169175997:23223:7968 1324887447863:53262569287056:444583:291214 2199232103547:64240335416766:7848400:1759129 9972827172101:42603920698399:13816281:8286758 5745826362410:88143950348438:989318870:43265680 4037412805244:98374865022605:4899678527:687054833 3679515684160:64521383469522:81033006913:54837160875 3243252787708:90432227759893:357392580725:126479855063 5852558761880:80207579499838:5443014629485:2004981049680 6881063351706:31535559462098:97053299534349:88437189847518 5397287216378:76591818656330:180080693840300:18155239722324 4373630244807:40079815664760:8277871897632486:3992276113848513 7282306264348:14050362034254:29072011946817168:7684976448101296 2324464917303:29591246295739:511540899482122360:293883746634264727 5805599908118:55414524459859:1772794974834879704:1161363995821215888 8277916367563:89007538437781:23233898309315628294:20847313227293867491 5177436097758:210195683232239:412:60 9673600423568:988142602868487:4357:252 6910419615631:212139952573847:70247:33833 2918120269736:304885311648088:924550:553906 3499283611788:303263139072919:5826269:1027317 7960622317773:707076213658586:33607799:24930310 9593387757598:928459305198813:890543989:590954688 8100743381817:848995717799923:1999350883:1006987706 2569975860829:340495710763895:15187942534:2639293651 7079458345619:758976151189382:780625919171:677828085414 8324641140840:355107974585361:7098557451371:3279392518929 4658587276088:964498980733320:42556813152070:1673379460796 8853864299463:440745780173047:345769510130704:240169857269975 2182865285066:645494701922027:2022899209118636:957013322936968 3187783097853:872925692916703:71735220682625392:7896872315806677 4029793616787:555192457105478:734369627483008643:640729987309017971 9931622880108:627952180365475:9669614305654476357:173496964813870815 8633542270834:875097716630780:22195951525893942656:10032541623426392576 6805883320938:5381549560522900:526:446 3934081069943:4084625795161594:7966:1789 4934137625407:4884143245722040:13160:2881 1023682272915:2152463700375187:987076:817243 9137593384965:8443494692029543:4975753:3459282 5633847320408:9890206406423390:92360279:20672334 9016202457268:6885212775587613:279545771:59433849 9152257123544:2412166481295744:2017900009:1198241228 1724220113871:9722439705288084:66946438021:59618178523 2773226696989:3481895239496624:743430397446:435534709237 9751981508083:3589794047480721:4959644317751:1536914733925 4436070563459:4090363477598772:89625256142313:33483423345196 1240831802889:1911443649459101:832359909090335:341437116345209 1336087866706:2650311124213932:9862685171221432:6005175358794448 7472476438625:1132699239971590:75013535671621891:71557534482602341 4056272809770:1817727984939317:384401521665737316:55878518809293660 8948357844661:9643070733706452:5664498275447866120:4605683331642655081 5048320432512:1950407674080833:71012020638593799520:23845402703505565952 5119038890298:50177816812030659:730:392 8944529762178:57634673141095340:4581:1350 3773357838662:77458250420149762:79266:33652 1334881947083:84404771040654515:308035:17527 2771601415710:65791045195235022:8427824:2284784 1700638984056:63450077604444939:53903071:17055915 8982009293253:45065105255793008:946907933:851836947 6470970534144:69465379341050095:3559236595:2127768809 4405445253723:57677346830344521:18035826987:4149080187 1355174256142:13830063271596403:884627133977:658883729418 5991110095382:72807026234699115:8440498284551:3607993932467 1376699830609:82997445883022776:82581976089541:43979311952666 6521505413204:99985450633749098:680517126108477:491074850530975 1888571025858:55912651713252108:3840868905146744:2112573382387784 9795844644672:47435503535392143:45494844634035512:41248897249520152 2213179825011:73683928631320028:611238825448676424:407861674976472057 4097024359612:73128339797500276:7190721264124227957:1390508981176885642 8541068081433:63359869884438070:58207028441130658251:43443184815600415353 7910865137091:749944876741125959:638:531 9929476410473:449073896045564138:7831:5402 6002989993354:898739490443303170:84515:20251 9762855521969:179459085147905190:920273:841545 3460773521292:344270996089085775:9473764:4835652 5536049918960:729733153213202241:17047913:4483235 6532700916919:284068840799061747:536336428:494953883 8929105069934:998941365878660108:9966733111:5475147108 6829069738088:681293479125659925:93504414728:29947951896 7725508361545:269911518404756991:458480473354:19438178687 6638778168056:458306045600329980:6774168346068:420836812456 2286930902510:529255318777354061:32759601981299:6732360379017 2096606882892:455813967319990983:644852049678654:531936238046982 1988534023607:256997562517492357:6380419319722762:1535685588945579 1080739380261:802509161515855600:39612178689056074:2168488250310235 6386061729118:143530191456759601:538837066895128904:186871603252746672 5913010808056:721474316526461111:4343846683890962917:2577435831965653419 5739182415583:561963843583811890:48582496044894089994:1938681087994594957 3900374136431:8717897256363611701:431:28 9082081804755:9271982126977724550:9541:3879 8487868304857:1249003447332007000:12351:151 3288000229857:1704352930612335534:147270:25419 9536800753886:8293784509216682999:3717340:1774156 7959168932657:7896496430136190387:56772290:6373113 8185701158029:2191144160509467557:501473869:438347460 7730299910930:6936889107966306919:1756074008:90296712 3877965952718:6458260227265185905:84929410129:77518790360 5618503558058:3434347150605933388:378162869687:161897571561 3969812647802:8943758654769527983:1470355374673:483082081362 4699971204807:7221929994607027822:86715360554406:59903708182233 2919264393197:5294112729760128807:838805955034542:71789114808437 9320871671469:5546805974739310648:3451554919247682:2392143435071139 4973512210528:9179783242266178744:66046732403275037:30914073046513293 8835870550581:2886946688697860563:564174019352655232:509403340679352525 4389203299644:1758922909417683499:4391882351823537505:368697738505780854 2079717541901:2621897241243593057:62165567374869987796:24042886325056220329 6156750156450:96648332145655584396:425:225 9052284183415:18546088438658551314:7177:4450 9464039557591:99284587817444755404:97860:70141 8627692651393:89465474804274678424:759078:256099 3620926792031:33028668514557610468:4337524:641637 7588114101491:38612777040033809502:55090156:11919061 4052674350142:18981863946881183860:325921843:6666689 6507255838436:94457204347171589043:8392180411:4079336344 8864446224635:34310393393060225192:54695886040:33297809265 7439618762765:13189008908252452930:489746861995:27297191440 6672528980979:41773361598107414677:2274740523787:2076024210682 7547764093007:86676145674618279931:26711062287009:8524260776024 5594866252109:59322457907977959202:501031235121827:186789170555925 5529251497605:81551802173875056970:2222259815033461:159113525802263 7146935855187:25414687681751780575:72227390841641389:11705484423354749 4131045784589:54614715597837063259:955072781922219053:149652308360974993 7483821037563:92499822239350047287:9829993967143437919:548587762164077441 2036380274135:80717879926892949047:54854575636844321261:19406098334292682819 31583159498006:307:152:88 27591768377125:795:1192:61 79993315631235:589:28214:269 42997355821565:794:455274:116047 89980743703285:897:3288290:70395 85685609375931:122:34327431:14884551 71136538524555:771:922212274:76898575 57397244046682:642:4959113492:4662332516 45861234207676:130:86284474455:26864743291 97937910267771:602:156552508858:10377795103 62628206156868:802:8215859240490:6060109807224 16745110041236:689:56476285910903:40238980649692 44576492307474:938:378800526809653:292317582558192 70223357458756:888:8893217825484877:4377401867573379 50341296536111:875:26230654129586917:8359613984385940 66007522916132:370:628471442559933141:140962779172556119 49788185576210:798:5681694724508299127:2557927378138367293 89132693171762:663:35739894699731136755:19881229597499113488 53126788067963:8127:480:467 19689140301223:2775:2203:293 50869725684030:9139:43658:20364 57447138429191:3001:846111:689801 30572074599159:9768:5503005:2624211 81811715862237:4526:30836493:22653189 11756160254110:1355:628300371:273907756 36560814757892:2626:1656497435:99145149 70986661933233:7187:49787502050:3330505427 41105979083255:6893:275728141602:34702760801 92618752956738:8584:5572059608751:899040016020 23896144003934:1038:17941170849904:5766644849664 48671949592793:3018:272516717832292:161050302446757 24557656923489:8915:2908607298087755:2416464855255164 56949484931047:3727:85235704296938802:64500263383781791 47868508880040:3298:199863994631700362:178904634542663568 35804312741950:1005:7729176852276989693:6103402528817504459 44606159755258:1696:73125226588880934683:10071968429665603648 55915721563467:86200:320:161 14644527802458:86644:4429:2378 28913784271943:38468:75134:64395 94027073137809:49361:723705:516669 13816057865283:49571:3437658:1867905 27862849450817:74387:61392438:38375441 54056581768185:83835:294373033:181484910 91452709429113:66113:2595514498:447348583 19243694307450:70740:32645279893:21949987308 88312437765398:59571:388508305839:277423871516 70443759394861:42549:4112263418948:3175147553725 52265138230015:92902:54790042170751:54556872689861 61092398014239:37831:674789405213105:503355420657849 91521907345247:86452:6995171038453144:2974441550938977 36160691293946:91429:71956674777061375:55256651409892431 37007637515000:27938:160192418224415440:16782754685526080 68408976425397:96105:6203643865395577121:3753487954368767738 73853617418724:39514:15272106606332725772:4473045965586977860 12722375432731:476751:737:470 80973851758046:650605:9167:6649 49266773365296:546158:83004:33948 85745779839640:321834:651552:263872 81828442788900:986865:3084866:2401068 56412964824806:193019:98488621:50209156 63168984317763:749300:258510388:202020845 23124639315630:163403:4500814523:3863977897 22558768590520:551535:12107125800:9673251400 52009518573514:835535:757224182368:10013050752 22743996595601:957982:4657689883997:3349694271540 24898284547706:559670:87174357717398:18056420677724 86457773313914:781125:951027665011195:464448251842544 22503525951232:923779:2746290892143347:437499560822628 74777124931644:685520:86325939088563462:73506049220513556 69752435000793:383021:751566252230878807:233537127686250427 18266090008805:799473:7645369858009299995:1819084709998494030 58310002767904:541980:19522514902197987904:4612572121203015040 10453778913055:7667837:276:151 94365501477970:1098861:2322:2314 22056592115722:7841952:43467:8350 67420177875046:7833015:239768:96792 48330838532410:4208463:8785333:5551026 87174827296116:9966992:23068553:13792235 94498650912293:4383318:185485696:150033929 56792753780777:4551676:3223541764:1303919557 31044180433088:8347300:32116140174:7544629216 35848929445330:9690770:358822613292:177779873272 49905423001783:2353090:6086635884246:754104482653 45711506924375:2761340:35432994716294:21129695584071 50589278698952:9042176:572401342694455:124299693143466 59162482219561:4366971:5108324861361284:2518340430215145 79751761584954:6383383:35047007880377639:25736462212424824 12667644430030:8121559:707354877670580033:50876410767143908 88997764812658:9939772:8839661174001322634:215775424360212046 52436895100613:5922419:57392734487197162928:17913474582358346205 78121522990665:91603720:562:109 59229985409893:88766911:1606:89 62849654927241:30299421:11598:4521 17731835545434:93998385:307539:49842 47830248662209:87265978:2866875:1947421 25883650048161:54960049:38217395:20728871 54121311887047:76483977:532537692:186930931 56604533348960:50365629:4243318976:3429267776 99047296917033:97976153:80270810480:77353182793 87586812942686:44785491:985832089964:841892008512 78869280196461:10561306:2173430051447:221544569534 99775053022223:50086982:64833161137779:4814903103565 46127235805517:42926897:558874898202150:181876590853727 17116532668078:23921276:3664858296457577:3297443622265365 42763057312292:68639441:17886459193564284:14611620695441228 54266944083992:72522663:131250850227629177:22637413825583658 22988234136119:19126611:2027121885673731829:1866511778808816797 80494024295292:33075152:19862962292552019444:16962775036321328460 82527521311006:562296833:323:272 49363911243719:332473404:9296:7953 64019980937588:142557966:83508:59944 97497125430766:472733204:557412:247972 45032817396939:170534484:9041038:8685463 51573909024825:878531214:38383645:21689325 83467000356094:278953199:482231517:64959709 56892307729064:904686390:2065825946:1085156800 62035736964569:840102641:27290508283:13380255563 48173097611366:587595171:162750553334:123216125756 54072448410957:537513703:1155355732123:149000577126 14520617358884:788917203:74777665281359:61797152821886 94378472399897:839565206:499455534128476:260856140772805 14250825804701:657107523:8617660582670452:7354473241695761 45354686678349:881870362:77889683578834183:8767496423742876 57791199808426:721855397:647310900318231733:627009710746241903 34909217606537:566991265:6676832176506088201:4205328296843086445 48226296122963:749937661:19469525491298817126:10792638635504662439 89848145781905:4537461115:540:365 63290342940075:1543992799:5564:1967 37573866722703:2256410141:24648:3639 17468354146069:4272340319:301715:34999 62844512711000:9062474292:1669037:207792 93787391140444:8458047936:39686088:30814096 72408153274083:7623720575:131140891:72463085 12042117752077:4924214438:8595198657:174962350 93875428564788:8493262186:30808912327:11586045255 23470168810850:6387978348:155936232269:144901193274 93674598882746:4244063583:6542974423922:4586957549948 38193518698072:8253579877:73550962809795:11270475610177 38346341234519:1834849764:602772783449526:113587227709147 50496935888600:8967358441:5183476130268864:1494663507332864 98133644345902:4806265591:48556754235183681:27249090019615582 78742994830893:4506265563:160926630104748559:139316939378996298 18177205783631:6913720022:2892839358814452475:2383493467252981236 49202576393212:7846825180:38998654273297314816:22797112300839568384 96527936551529:97536278324:613:204 92080297134521:48342935527:8162:1725 76144303087084:72524378737:37129:24462 71216971140911:91462924546:448200:237361 60792540548938:62587465210:6295976:4550584 28144609381763:65246523762:24710634:1373581 23339370023581:36524445832:656565001:542931931 80524156194148:30794058769:6002231201:191334727 75684592376676:69322575176:64684839849:14196507348 53107044526644:86535978542:516896718195:187874252361 19391395138036:92321075507:6335598819502:5744579798488 88364369402224:93039872314:78563736326090:2567546406976 38867879826934:94024422081:344077735709103:70129859933698 39613905654027:53406417330:3600643887093317:2166605209860747 36859102159157:68972799131:19779425681674452:12305083685695637 80514813118638:25637814000:877403420535853110:279629815585285236 36019313361893:65295992743:6272672231448696448:2508766508867793869 45900931026432:40221875670:92063435741748973239:14229724757352203727 68227027716789:768648603653:314:307 72712738115807:540600980242:1020:769 72142595488033:286914420548:88448:9089 20739399239250:752197261819:588239:265490 79812800815881:841825457869:6386803:824698 23221804762946:404668653302:73479055:73249666 79920211114873:419188107368:565387966:400456655 91026126734342:734699268920:2990207437:2508878782 63127197563519:572341812732:89360294061:27051988126 26354889286560:374636139284:956514670860:937276922880 13374355175868:455448459302:1321532531053:200449875109 93509365038018:275466260241:16016084701945:13838462098528 71611264551891:866672110810:309926396209609:150961594940668 76050239855802:742346150315:8360341433363668:6860986297398664 99467219843792:553699010754:83686381782401521:16737615273940661 58549901400463:570672873073:739024993067875710:445726268356193563 35905990802157:832956437812:3842960705260729158:3801515517056683641 45188361153641:747206458493:47899049700022512930:15047053219915355471 56620441017564:6061651373728:162:0 84090756229167:7298566710246:7262:5309 65392623947584:4616327001631:42045:3514 91068693068100:2359549367240:679945:441190 41906513372988:2944940047405:9961191:5114988 24139388238283:5186743981119:33497876:27428099 64737073489175:4064847987670:976132317:274175089 69950506362576:5818642342598:2937620026:576052002 52596690439931:1717790954532:75982605657:10350095449 29782334701495:4115110260384:264497846598:55730530477 82700674593081:3604348341196:6914567750197:3018604121376 92624703192527:8015104163328:84312698609213:66457578498185 28985817016471:5717705204420:115585910621479:42417962881099 97197323577602:6384010007291:7579735566306927:3181243581897431 75326314628736:7678837290504:27770294819616807:24260291581765179 93521403218618:7561334157457:377149920765884347:231079755278741777 50744762246551:9052785347034:1086180045116830458:436695959939247793 18812062180538:5103838062131:69080934597327721349:53780459640963259814 72666403883570:49643608999048:420:280 75924169917461:41220622971256:6433:359 17548597401900:71773753350731:27011:10426 66101372850732:61836706562817:746346:84276 71250736146793:99319897168231:9232911:3704011 49014463780631:60314137150095:88283078:32523145 27513492972929:72215851002742:477819362:364667667 80854159883752:27585779348830:5670874845:4324936969 46980622787464:26866395419103:69441857206:34713687608 56455216902922:93786902381345:617095715884:488147119272 29969809038890:12304462778484:6891766544152:4520278072408 60355814317701:93835950095385:93352572704724:81495340878861 35762342979990:94661924426630:263091259958329:99529769751951 31132774554413:60003722167950:2869685621720640:915823890810649 95853358858571:13995565963245:69168996177102507:51209011847220443 99872999961691:81053142583261:751531888185542705:417908694397849841 73743775492004:56720451844867:4586298569090177801:143524248234583179 45018298182785:48708671112616:73120033279303105530:38738118868824576535 92761651978647:464629983441950:565:484 75935162704235:874368022418114:9479:2447 52698148198641:624634939201332:52067:19183 83057986589782:607480008827058:338110:48504 90397693619999:372141716369182:4098040:944761 67366922043629:368765620467924:34699194:22698937 10401043646831:471747916280394:333405154:56246823 65103126518039:855755785800437:1589262110:659930039 76481931630844:116893051152319:64585769667:60205440835 89250588608980:396626791256061:481443747367:298498328300 15521913773447:359812065738883:5057913996995:3331988486548 81875207636389:105524585662734:32200908444625:15799084300966 36380470163055:224639740131212:578044330142096:361154111377521 84730822143930:938428524428287:4504754332065113:2690592719918723 69639954251966:819827961911448:20659458946219910:19202053501950986 28703156177081:765367476942220:506518016129806942:391638379886823265 91742224544326:962706321497136:2768115785018208400:2154765783973413376 90685748813511:455998682418753:25375291638765659221:1484128591581518594 99861162086721:3541042915963859:793:393 85818249450922:1084684912264972:6608:4496 29734615824817:4784349619744365:74783:48559 54878366104572:1553563378678979:764711:382050 84767627847148:2933158041474974:1333873:554996 46597109717090:7341935153026136:61287826:35849518 74405587257124:2517341439642144:654188454:52698178 46868157317585:3626985021613361:8229720395:3638264840 35973315851247:3063903137811463:58083568777:25976930153 10562256292592:6887037933077420:391261954462:258823484262 60994151167558:4528428012935935:6359473358213:2507596321162 77964178300751:9012252206510513:92988719203762:16552239107531 53408556659714:1551439512992656:925858631406528:733506220880320 37750725494799:6238804790574769:2338249930914746:806718066335973 96449750900889:6576552014412632:40463171124619617:8792628234595767 19271684856971:7588100159040614:174172678430976051:131376360747901144 84324189684401:3986827958304340:2619321070883114043:1820739539445303277 37863775676625:3897184943524403:28950617849469427233:5172982733098375821 71942815021975:84020688924882908:346:47 15268882863072:66813280532044411:5803:1084 67236060373084:33979461187315566:58670:22246 10020897108738:85137440027274135:728251:650066 84234020852643:45534016191510887:1724104:1307211 26010506626846:80297800451387244:31976884:2047008 27077214824467:32629560636590492:518064757:424970905 12080796694146:99445566055071835:7558374010:6161700436 16739992037564:63661347569660515:77077445484:3827108600 24404288229465:51007695339975443:531225004520:241541183865 61134400104872:68266563546392068:4552152272284:3731780539256 82133155617215:37756825763085732:84128399588137:12261460744127 19527701775215:15053809453598234:101218765423507:93129906744295 86967870427761:78142558815516533:9587871192416002:4857435771380665 65058601118062:91955394396903546:76034425488062363:4574983120006111 59974542230395:66397390822677790:731745059776026473:91119381597378518 48740934864278:34521166390465857:5096541431318024425:662821875091608688 69524360507213:69924740543385074:70003368588915054561:26516805242242878433 92041033579025:261496461350309310:814:1 59148202161370:841963755590079621:3311:861 78499286773471:508694091974635635:79885:27646 32797799681144:598604788987043212:282088:143808 97048173749321:905653685078872092:8508025:37391 92294291567159:752788817190234487:66392855:37851584 13174057717600:255263515823284276:781913775:234991825 53290094015351:519633312547268611:5305119802:3359316955 92811423128650:374381616680154288:30782499505:26324742115 22958449357363:934193395454040156:962812802846:231392074103 31649919101493:369209576584522607:5656114659857:5623224231260 62129562318882:872290142831145605:27480203481679:17409945158517 28974657896963:466882370174334231:514959084024350:329448910761237 89428435640692:835995401070440867:8647292338090803:5670346045763812 35154859167093:480942181240098058:50803737596725012:37119545444716289 79788445264557:904199704031863247:618247372019228080:384995137231770693 49894106724810:205397300381694691:9606984756675361030:3454223603139748140 51650790898294:981820743362213462:13553923607206913825:9147560623167183611 84421266396350:9966213199173744796:148:0 95072213559181:7641769570559252062:3523:1418 34419620558080:2599621950172198226:26188:12076 62282841573622:7108637320204251220:744684:604204 44410391842209:8057989330826362679:6241130:5749269 59901503704949:2724874829766214212:12944148:8737681 95815587600758:7089159602944659119:905208335:469033107 76779242555130:3260861927196082003:2968968633:643813926 63580902576651:8781597646582077407:59077491549:11692056030 83289843271478:1179561528028046226:191254596145:189684625749 58255524282410:9734019191433911275:2949822445704:2834174512520 95648642692328:2530355863444933140:78160275067504:62415571302736 19119050147607:6529617372393366013:182810819841227:150419130844895 86121639012416:8235194526588672709:8048502295356564:2335904731300928 62968410578416:8863072751913393778:29776610927265934:23118537796112706 91173607218290:2383877672887918880:942105466740370369:843223319157230012 81451114716613:5470767710152427640:7620814268139987982:4300414712750398787 17138478047201:2737190207675443873:31505049839583627001:12795660436239002466 27864460859552:97105047692672631096:985:1 39838083299495:74126594184733584302:9491:5979 44342494320225:83826651713459660088:24214:2039 13346480434992:76293126395724025417:645012:94212 81359596801930:95417408350777397128:9283232:8903840 76316353266803:94753101781039578219:60240000:23768267 45325304508097:10020509992219128334:989514040:363522609 98107096604506:99704796431975202056:6098751689:3269641015 73188619604740:38503874347472810717:49865413195:1948629575 82433823811146:36040994843375913765:862140610389:629945041842 21948608550678:82853286166729530839:7615708899196:577272772276 13255359690412:62845419151367643672:66954273117868:52422054814736 43755186730378:47740466640523023621:956183240617364:336287128139956 19421925473585:78171673524026672856:6865711612374350:4767530593415675 99964867091655:38887191794246804536:66381182432543918:18621158071210345 66438842607277:58371616001680959222:551203120113158637:379877565699931924 19330685288996:60593071424336727631:5856879522266092681:2848457186136722139 28054571977928:21229682897683574451:62342818436740822345:27533222990899251757 626117928530156:645:287:83 127390684030415:559:2137:1921 463709043667289:666:24534:13051 635542682841981:550:773519:366901 762429159765566:908:1789576:1094784 439313425390479:284:97316789:58953893 562207575573985:408:439688142:228593701 239918014801621:240:6356607495:2384458861 602378338964448:909:79802915331:35209132803 758756944499503:696:112430453209:28897737634 675945984877037:710:5419261150633:246226268399 188038615993081:119:65066672452842:33921969504925 703174642345850:141:122376742373010:79859394182090 242219666697276:791:2942007620446494:1905080199853122 390431552171729:550:55839983083925114:24213441057090921 688865332289393:691:906214385190432415:872478887037021152 647775413385160:107:1746741627096016743:1387580737300482598 512978966640397:197:21794800466361168362:11784442147418204691 636068511322908:4061:517:125 658934014001447:2042:4277:2734 740580050702822:5335:82928:79120 519926973547517:4248:265250:208391 232443618023178:7579:1547996:1227928 152336867973345:1686:38104561:36652781 147071691494387:8520:458989730:241707631 838240734415668:9583:9553915228:5620122520 267857487499606:5499:55101207777:3097057846 283311505202637:6432:633360914969:363964753818 653047462270364:6462:6032524010685:1395031710001 373976922099938:1546:40113252973896:35351565342544 205091351979633:2227:363743756237384:96850131015073 434471828268394:9323:2199914795425875:148400174869384 732325178624057:3040:62819413974095981:20281303792098450 214237267764255:8731:426342934483731172:358200093371848495 339900085921458:7451:7037269958771082536:4031626170302624384 100148583237811:7557:74654234283578062896:64261042547914563859 794427864460957:21244:744:625 797074015263023:84399:6737:5447 596781205296546:43993:53329:41612 238271621727708:36994:639147:454557 706389823164795:28565:5571327:2769873 724890511114157:36546:41451310:41138489 865803670958644:35661:721410999:321488680 549670452289162:44426:4149076813:2041520342 678092380624930:66279:43014845367:30180006199 960372018752311:97394:804990649132:799618046649 210886082815444:44638:3698067048870:1946109424546 876180822058644:37562:36755059984020:32286402800136 657003285610946:11193:430845386276597:118324520738918 493388887983859:67857:8085734161335819:4481501878189702 231971332587093:17871:14140360153772507:1473963972566795 258846671609063:58319:546423192850289980:161344402363383207 921066834276807:54759:6879361511917119085:907845553863681833 786015352685191:54949:64918101057449687646:55516008254120036677 751248681276332:474774:321:1 557033838043733:697803:8286:3953 366476969079048:530362:52133:4541 659853265457758:629458:922568:913272 658557956579664:940778:8263998:6010146 843491548581361:233616:76519098:2989675 653328623761837:664849:490625313:313395376 987173469961649:339918:5532759409:4142888742 642912374418172:118619:52184192775:21529497133 207201823109005:941971:213824617783:9557216036 703537154897095:926760:5099755134071:2717021987837 206796779628395:673319:76184689276818:14139434076959 379855186024553:497011:920493445470927:299845245941582 840538302389256:966738:8078911340885591:5874513813310998 967329337626006:138099:73179295300015353:49025092255857180 427525766737757:863198:171873204401593898:158200862066812331 687274035734439:362478:9930419503478040942:5369528198222807625 769944415125937:582034:63490760320059065619:11950498024074855517 846048195948240:3673243:247:103 519082190066519:6204086:8460:4501 685751847148645:4818250:64962:56185 235631350284813:8944399:257233:103579 982935326071190:8291296:2429868:2240968 770245369650494:3164405:86964809:20097615 909174537028634:9651215:840189569:474251881 814482035597859:3229075:4313230406:1206234625 601008670647140:7060875:52645239026:18440279786 806967449355236:7407487:945507015748:366777044068 741221826988917:4334471:2214640107322:1811030501545 222306511139399:2295761:90989865397676:88884633417567 299060186379417:1502743:582310979598959:70639047384664 697322821909897:4324312:3999417341413098:495276678518407 205504816372141:6670998:14999483878326631:11357185106231931 691157302176301:1928679:536352373534687462:356252559510043905 235495290848046:2219691:9590818299665559622:4432560888610001338 162552368682909:5364764:11425529377078185228:4451205461846735277 657432009430590:63261480:205:165 612360634743044:92319368:2080:2016 674327388123294:34230769:16733:10153 628023841942070:88298540:824507:203640 823997416585181:83103741:8166695:5530701 157704061631856:55176420:45382906:4102240 685270992574986:33346684:269847527:173034983 842825209536714:43349860:3725365575:3160222476 207841697768698:53369203:29140654512:17290794640 277774790147776:37034052:739357073677:319656382857 260003197487098:56983227:4697234299866:2981124224944 176395391723523:88209100:22959553990698:22943294334639 912148648577022:57357269:542641511038165:91550764400842 912909909755969:44366613:2794148755462547:2318153067519414 527136552057120:23269717:77598140869975315:58958416828719775 105166294624994:22930705:677995574716135166:644805958683005178 574839886003855:73250574:2206140212095423711:1036677064857227917 933772013110700:22218956:20845289630068949826:4756143322190953918 656301664859661:897217523:155:6 597382544574305:583705096:8148:6013 195535862707249:816680294:84522:82795 904574811641861:997023388:618588:300733 407957999931431:497224523:9444491:6898531 726536814887856:369789200:31829280:19231296 127151457610488:596975749:659941335:631634373 377991410644680:526381226:7969573073:143870741 891721497305384:396562009:98925794806:47489400580 796847737752641:812880564:799158870359:182068787557 184886501475077:129321881:5282212949362:2902096159965 555634701804299:371730327:41283790945524:5049743558147 279327693373373:857888846:432079669313919:225360028266916 315511422680542:965801406:1034692100944053:840910046022562 509260614391645:331535044:68001229362947748:4141153569497557 825062462349556:493610571:271877610233293274:49032111508294818 375142327724672:805088362:4601789857133607732:4341438383656931176 590541873765620:786216773:94461719659159909148:69329899804651697868 274478548514396:4710310493:329:81 340702789842960:1224354900:2578:1244 109649946664813:1633531943:74380:15157 331783104590763:9350535768:559506:492675 738880413381508:9980602702:9054663:8053180 253661652655934:1686738613:45008389:39088360 111388225998147:6543072860:204613984:91707633 614940427264111:5093641696:6198410526:1229903161 396598574884049:7802247803:75323463523:62392406614 633568255550983:7502778429:988305737969:760043070059 807518843869677:1702447458:7576444727837:4825419536329 617892241012790:2085478749:48083324261639:6446500205225 617091812394367:3797520341:100022238851159:17710684376503 503693156332238:3695735343:3181173830204694:247177723300874 291463494232756:8538972402:21680237890845330:13329075313654336 525468720206659:7070108413:412892267530332573:303211078479904432 408064992819622:1383977565:7040848763635368111:4232197778751285706 359493154016509:3790382836:76070105593764391432:70773731904154828529 503811658719324:57103666639:602:214 221267843248578:42920064694:8327:7522 663645312443401:91834885993:14898:10129 156685537426424:65581195928:789441:594733 556923317432220:89493892216:6079906:2959730 403809418896305:39636430484:42220465:10141240 479048662096191:45879564242:422898666:336412809 217120102125009:90865201841:7664510082:7218057537 251820443096750:73286193655:92771527361:5825286761 278185871069240:77155093300:450008978154:105226970902 387257745023258:21440405204:3131005384585:832825259436 723550415321686:62521257171:29343912478607:3918361126247 599007715637196:44185523576:115339516928611:47062585271007 638172476192933:45031615664:3949311507955300:2894186558890921 709728729615203:59998006408:97358259738462915:15254508148032481 973110223514570:45459529887:372771115141099423:219701579230040517 834226879539325:17877918803:1699387825048383973:224932997652169763 985267277010919:52060301569:84858825658425439970:42926532710770859459 431700962815567:735916676585:754:607 286074101998743:541896501198:5277:3399 288607047165671:740482000950:21465:91 708214451383671:489204013981:104626:79377 720848178329739:817345266491:6992529:1759305 576976784841698:105151841442:37224786:32659294 383108552218876:636647802249:949438400:595453376 530845174372213:827391434729:5786840892:2081174677 338630185724995:193794234011:62898859267:52756934688 892729213828006:605596751806:288704686227:70809700417 576270939778410:445543405591:6315961950517:4698367338775 723647793294459:678058306503:56368654981927:26280204697809 167381888193797:879483827770:202160110440499:116632044215234 595946142145327:439744276487:7201856228152080:6675480051636943 735443573210025:602979337983:42696673195559267:18821052658230497 802241261417487:534816172725:786396725279863730:368759361576467297 444627213405479:704176109233:7325701202887766776:3348464958881012711 983470485429168:560800212783:68096163043192161814:24761500108397044592 118528605524699:1703126212668:872:481 602985363080269:7446951076171:6541:5202 514514348173198:3643947658770:50757:39922 157375105215417:7055749064096:913284:732213 807524604948994:1469867006222:2636003:2550767 936831503172689:1466770065404:44290653:36136687 981391945954702:1410104139049:789113101:368695714 549020292659212:3483518739219:5652279473:1549192609 924986564401783:5705085538047:40400526524:32907975759 627112655876619:1052158729797:443568456892:147281632135 106216150609881:4014744834602:8263635452175:5227783389186 159550011866157:2301049138784:56233814417395:48017219602221 433781079022552:8634497036680:575714379207037:299698572969938 451147731807532:5498280243545:1679655669032505:334505671331272 337094471291796:8608128156840:20804341592746043:14532461504638520 457716229945621:1498876967441:614696427302570152:528021682231398165 439686696527614:2204610867548:2819295461556830421:2046170992055320432 543290100440369:4782788859330:15188127614412192254:5541576441708233387 499277449256342:19931072792611:520:328 123190478882604:44609944452693:3962:2618 526557224407265:20961293941144:87020:34045 426407635684360:77803671116680:147938:105162 803214922592343:30835695357149:4972498:4962195 146710458318589:96115550673149:38434709:13621597 730384611067939:75043254583577:348634610:16845549 899313939548051:45789921058301:2091374392:1899435355 614566862566990:63235361845177:34072028588:1848924488 583281938156919:31198500004723:902916154797:135200663703 431476387436823:63521708566792:7847597498186:6513860992537 305606966894921:26740077678544:79111455341009:14127494577862 127742231683574:67986908943696:277156239406495:53825297739646 274035652291784:33139050020943:9309020426649139:6345822294739885 707125563231379:86540738087870:64483030574525677:35450973131354114 674995349461429:26255443095652:202139904573003712:75181386503511985 805417285771367:12739298597762:7422837750093654731:5093434663933748143 177579999472938:54898845128896:92756245335856918929:80669943693282292929 866435345066261:543665368805898:716:645 519926349436049:477578462740185:3497:558 338945759912948:387204950440088:14350:4306 557899898623441:793608023589634:985804:431817 847109330984589:476565116994799:5292615:2158269 235258411860568:213323927107140:77599225:25136376 251668351808681:736975781456795:534689123:305916503 623355798438417:888075971167284:4168684075:512220146 661984406239467:511727734359686:14777225911:3074351226 504713567378723:744408096734947:190582514440:83530250667 717602933806524:298333865578936:2833847046143:2312534375456 123697387564621:151610543672505:79070158416850:22962275026851 699983406037300:863285315246942:154456081520019:16032679574602 551390685678911:364698820049784:4041087545885426:905322486352263 429042140375166:249942137305124:27794293897867431:7274815884679410 313212811452312:575321032909292:842701056169335749:656367434150359407 717458828668794:151926712996074:6250500107937771223:1484538590565152350 490576994004444:749856773793388:86523799384862380527:3941224328427975684 866791719126638:3246069902917661:958:550 523597542894562:9890305801785110:7143:6970 488461786933241:8161325214312192:81500:1181 225847786798989:2801456496590191:728985:548574 254172158557715:3407328437620421:7732341:7508678 560386423863023:2901339041180654:99343728:43394209 137786508346517:5798641513449491:160325480:21189333 913437878261276:3574284540170507:2918672900:161515676 922135230362452:5420452152387624:28779213799:23232979743 163138914947078:8995121665761912:681353937875:24751450491 144306895037138:8925806552607041:6677884839644:4211208773756 945539581847803:8048828876720812:96761124861350:58979481434841 335222141205844:3465317082560712:598828567780745:125171757466356 659249177807360:2110366816034186:1330942408402361:1028183193773028 984959092704134:1295392640711772:44868529983601430:42099570244837806 353554113988230:8956490441142239:678126820335453723:343805229272889240 159328767115784:4958163864537886:8604922581195819125:1597328986331305491 951660178602006:7321969060723086:88897259952142506766:71260361880350281754 779907479163857:86869931899889226:362:135 707650226654465:15144742308947023:2336:289 902755058003083:49673787082213838:88124:63957 945946493365570:48246044138827522:266077:217991 760006624672332:67765048779485132:6725461:3583379 427973672535928:96622742905743847:72012602:31545390 757042153846133:70517710643161700:860214328:345339521 996852215240968:88420669600846713:3418296776:3320441232 824228367951827:49087416488480643:55429197437:15058933548 170206364067392:11316621999310867:179842613837:80447410033 160800280361950:19680138432716560:5750913612533:1487837133592 918399428865075:97759392230587939:25531540489358:17059728428317 872586490721599:98599871151631298:201482505460227:171408166569286 763260473629759:91008936286136021:2619108842007918:537487369159885 340252397574545:89899874832243349:80260302475543948:31490514780602001 697909485268315:35851288090693918:818763880186628148:604403272109706073 464412960585774:73878602740836742:1150454284599114104:1023200043655385160 254487250067181:23973114659316187:43713622876906413386:20254543963079935393 205171465707716:845561001286961635:674:328 633077854827474:343791197471614413:3696:672 287951970298612:699945598047219250:49159:17139 519108803302347:948660391697255807:700520:49083 570997908687827:431191769826356271:5784472:4193875 371084586155716:377099252131805253:37843899:24321001 436321121246895:475619549857583847:975778490:294019755 304289215934496:738117439923844068:4229336718:119815236 910937087734204:339666050766029860:31160664662:14093653212 233662759543565:594162189795192245:824072567248:326254747613 245077012376591:869981694415262428:1099580898516:366733660309 169416607705190:863922707404553463:76837568108890:34799949426590 296584825387494:505568752053967266:392127017663663:369040258553956 641691655019622:948861359742448765:1095492591607958:832252925123632 297114454089256:796540670237354656:85903564802763545:50457058802985656 471592844724451:298242663108699688:157206866265329985:123586750275616291 560552018785809:714601787044176726:5409908942687558127:3270362601367749042 323197840065393:863360175151318800:35702687374146922272:13155542852667973473 305239793730871:8230446707120859002:170:21 535065985960515:4776977828292892622:4925:400 949782032163745:6739411986318584314:77410:34735 269341963678669:8914494475997257027:294676:119833 279563928614320:1933635733873244772:9182444:1237112 640767602536742:6933625026939397051:26904866:21132356 520868440768190:1908411910928037135:782789146:598428574 382123931754719:8654843632848485084:8166045319:2225158661 900206416020269:2261831826802740111:63666722425:25595686044 294402030535686:8046892440056046872:592528644370:435570524416 374729848186450:1416858428501895411:3338511760825:2869407868350 664150568136427:9274891056985062405:18478327465166:7822821119123 375039254162021:1192054755273130880:864153425898657:666467744606107 127860128941954:2100408714924210624:6213440168780259:3762171003383470 273629568580162:7232370494598035463:11607111789408198:4408052619708802 949300063694972:5710085653278859503:633196782346225751:535625525919216033 596541705071391:3708832453946316490:3942319984283028238:3402478229387462897 356707084758189:7233139185894081408:83058452565151658407:21316620982697884681 607902825838662:77606999465942958237:409:150 663599251305174:24886837461906062848:3890:2036 819504828287869:18971398400728426605:16434:13267 579964657520716:49589507551021726460:773648:277936 547763396765099:78126578628892172341:4224314:1674575 157833351010554:21647644385341830557:38732990:35437294 272904170553903:96907056560436016109:175722346:124646941 779863382231522:34623079643774118837:7125534096:3387681248 570695774915913:44223137303217899471:90841622651:67776626272 753761405025195:76122423899529965242:263441168792:11606648809 193574037656183:36121199807388879655:8455110123784:5725210462631 864091886134338:36053275928411216535:36073348063303:31321624028146 338435929832820:73846266841891367417:251724986528893:160194457483221 183664147491300:66817508665048822741:7565639896756345:3657763253878650 967731252093582:98594416603186131594:18849447588627478:17035710549491602 796334622714747:94314366833692131348:216144402001664237:36062485782293631 472863042648875:69367092952675580046:1423721175080988078:744879409321447405 550030198015127:45691780295439874905:72372927945187245992:45224178920036715215 4270688469626208:542:842:258 6439050712259518:437:4158:2014 5324246757588823:392:91665:29191 6078388637151118:827:726128:61328 4689266001676713:250:2574355:1714134 1359505420900624:106:12506299:8382819 8029386049787806:535:591617198:29126034 1170272880227842:986:4129332479:4070869829 1021548442514492:533:86306576791:31046440763 8861000445170135:301:834655375619:339850297308 5877558527673859:108:7506527250276:809593017553 7306980925856198:349:32584359823472:28154894324784 3173743195096451:562:405291688043044:18494974775377 8422935973205892:997:5239863053782482:4031331025966650 9836597773640807:649:38452471770110763:18422292985990316 7620705811990513:290:830079616607689899:746280838036581826 3267924729626367:340:6079914080563142126:1156577658721752931 5875489627677025:900:89183782281167075080:62175839624757112705 1822154849540723:9822:279:1 4756286027775031:9955:6546:1765 3684664165533366:5363:73481:36092 2507620339142271:7808:609864:516225 5434070159126740:2470:7327265:4785265 7403214267411516:8695:97676934:84052602 9237547789071496:5214:284990660:211064796 7399926190564843:5579:3192099044:895640699 2803294004249024:7797:12748823962:3074550870 8255054924455745:6155:290603858786:9036428469 2912552782130709:3497:1421923673000:447094095269 1256546487326153:2824:91169355454329:49698625090084 4825802011382177:7263:950495470622405:141336805564158 1757551799058566:1401:3791587330733312:1680089683581952 2258500212641006:2750:88164973303304027:74883614269236139 9816597246825395:2031:546409314773826568:332503969216031483 1778499378820974:5830:4774821080943100981:2823343795253471390 1532118804488190:5313:83094540330260280216:9026629689037391208 3202806825811395:78950:392:193 7916692282617746:83909:2789:98 4079100412791305:40727:69543:46574 2007733948317304:43494:415560:28096 1482051584336743:29033:1104626:751687 3152556442137253:13572:98533583:32729643 8484171431489294:11606:107494501:102753530 1137222925925846:29868:1365118749:673117525 1982719827414442:72044:43057078303:7592681804 6103854960869798:45813:413506365259:360135765319 1112757117121230:88979:3790093534103:2294601453717 8231823626224674:59363:29905441708665:5976286802004 8220893912310727:54618:688323545786945:303817822664574 5825043925706681:75413:9757970370268409:1763821238338577 4382620809799039:57333:44340240427547228:4246226090302823 2499933272524478:84305:174347873602476884:40528685764579728 4751933234767597:55573:6387409608828420810:5716646784619763497 2791031992868996:65725:86387227210227995655:84252558299071995266 7873050372359763:312782:129:0 1500239851974623:764256:1961:1 1634406660788185:277966:55729:34587 8411342126245983:807354:146670:122889 9743858811546434:422380:1038839:771083 3929884509880166:782888:30391011:9233053 1990996072497519:303741:130519699:91926946 3589586602972656:180031:8610027084:5947288920 2565803861685258:751383:50318155326:30560110128 7722101163975356:483688:994102665545:112356326916 3444258969226157:597125:6930706683261:4289611782101 9585308156824882:195638:18820640100022:10222878560900 7023283249654256:503778:722926751782032:321367910300704 5048615803792992:952568:3238135012123971:3041117254853154 3425278845102126:203324:51095900256271489:35553224193388629 9271068231964176:979421:735310416939682726:515253937704666238 4032529282145404:649562:4328759093394041306:3982171206680870802 5362149587983781:418360:56129895216134318863:39245734418517872837 3386492147537801:8862479:936:737 3942870812731280:8342015:6647:528 5045109858875244:4231134:23431:12732 1018976808612548:2969698:269632:172352 5613873006858356:5238236:7966080:3369856 8025623285651925:8435872:20667205:17034590 4551520465120185:3778122:137228704:109805841 5004531745679269:6058232:9438325768:652525833 9243557676557931:7991446:77641577336:31989841337 9390297353642853:4131564:363043005600:84743560881 9215707003527807:5578113:6706431993783:4528594185081 8444551682238982:6015843:24513955213141:24311118278901 5779282531196892:2287832:562629339257200:187144839986336 3945508723331592:2634639:7856147490806568:731844479870832 7982485930466892:9749717:49919354163491216:1143759016168736 9326209558510321:8523858:320306045723497140:47594641095401341 7923487262329013:6300494:1516656535438921764:259675452197968897 8545814248021407:3531604:50795379906865611200:39717708549193563201 6037932369048558:65161410:219:72 7326264562161440:99264490:6722:3304 9951963243241143:81618406:41559:13491 7813046399368579:74455783:930470:627179 1119526315464898:23936330:8021605:7758604 2598329383130261:10223948:35765644:32081965 8770308132055313:46792967:734289827:204757943 2080764968174260:67469143:1002516618:277400836 6544449936686029:68511120:15701842792:6879051593 4977741288059717:66016202:628278755019:431405383303 9687031419679579:99618124:5071996484804:4145108816933 6420980489433272:37700032:43012728110746:10943558634828 4694563570089025:38623227:928771153141039:70691439260638 1306372208334950:30912413:1586782985688151:1104814902327240 6503262058278826:81432085:84975406821254480:3978702638658496 9422606174334594:65980205:516624664366207167:209800428395173524 2270865943708352:62265640:9499570304815425984:5136916609470052672 8379718194155466:10244982:87979672881636632810:30806230714087981076 5468122775552921:960401114:275:231 3966302002615645:268614234:6205:2820 1615219675451181:296811219:89387:2824 6951993546898978:547766992:612944:539952 6342581457330817:251537294:2845716:1710997 3714454174447432:894450255:17538832:890096 7815554223989634:487208346:337819462:189599846 4440746482531366:732918285:7038969934:2747011062 2659545707110732:148437322:48560514182:14703246208 2849087879079615:144416599:954249230779:614142676489 3875935266492927:616270281:1108102228366:1083709511641 4073982087277320:706462349:70136013648764:7926759272944 5219525328833790:736899444:505253852777660:328109564258540 2799731369812373:419366739:5248026337459932:3316016677482341 6533515587537424:243897604:66850851392971179:1053041850605467 9683259815705895:300283979:674821909712856251:60848597184412177 9372159289240601:874228125:3982029019155395908:1600851332519979729 6901717805591272:694527872:96513938788260530257:47325734703878240429 4859120517916574:7539266352:900:676 2660972602761867:1055552145:1040:987 4364719363999764:8787896412:77468:40028 1270212147917267:1533041748:766073:346438 8406858991073732:5501066256:5743950:4334626 4033195207925825:6226482302:65154342:55158229 3554566087970315:1425495571:861686302:402845433 4954115004820096:7737472815:6703800766:2126488694 5442735261257004:9944593562:53036055183:17765336529 8397299849530394:5357785591:649790050446:130978710038 4946016997734562:5618865598:9295872005752:6101605173576 5550859774524370:1142080077:17812378594716:3714902481148 3035608225805012:9326819023:941367908819270:919680052313538 5073582268655015:6474464557:2071489057646546:772636104903409 6482834842611861:2876849684:30580682733426895:30217728718374021 7601763063834916:2886275299:637352937729724179:464578737016097356 5025733037569541:2672673093:3038114306758819730:2735609146757705161 3874987239116076:6353134370:79453014578189712897:73344556490210264028 9923185983458846:47015090214:154:56 9048180116229929:63257744070:6099:1084 5604930844455087:49440532391:88989:57000 5164416028925323:80186438262:740524:288741 1624825113043536:21989358985:3525756:3287376 1200141249313931:92367136662:92967725:49946386 3285608954940219:20863346836:514199658:178822611 3460982541393380:65161478445:5681045772:3640023656 4630065165120279:20156683761:63285056434:18746034225 9261234974965082:89877900849:278521074100:246159678632 1122035348188328:11312608306:3441443496356:3078186946220 2030632022444688:44858188480:54057605934810:37505885566386 8525346026636132:25724389535:820320803220847:379211289852657 4256004040188186:82996215111:6387588728601394:5829685995857828 3295791446067518:39676643795:57918229246047517:53129158498585537 2984459298716769:25054855149:827378935676058290:752029565247754919 4023179450458399:85608343319:3768681939776395353:3020513268293223544 8694478962447467:14723742365:89026181114685364248:49034933752608996851 2583731333159901:266762256655:808:405 5676265856599753:882381960962:4842:43 7839365528163712:515366558663:28405:8948 7866221838415615:283425852456:604610:26575 6895116471803999:748058966416:7409079:7335724 3555324411698772:441488124895:40761707:192359 3372342297628212:829500684853:346416274:169837514 8979398409180764:246253691472:3514648468:310943372 6136748842098009:920338605773:16278494989:1384630753 7786149534455897:588914419516:298221313406:233256061971 6436967271650447:856205324162:9715751402643:490979128381 1297343211934794:966853423223:64927268376232:31053670964456 7439634755578762:784362084961:759563059553509:151859808858219 5650740345754464:702048602210:4365999122993986:3150582001299686 3633953715912410:430717454716:91242918910481576:7806118853565160 3351276878419093:499380247282:922764789143559579:637058412027404011 3783662698071694:937732439139:7896720171684653733:5133749896807459462 2936634077541237:505947540117:71692587253230299611:34460973285281034627 4088340835446290:5908483366904:492:124 7958459885892988:5761623782901:7475:3613 2215662915656759:4057493863702:19068:121 2735808399821380:4342531685351:755478:74716 1179000897973105:4570904523698:3674343:1257229 7428544033520632:4660232642893:45166496:30644640 3685013817827632:7303511040892:316589987:62229878 2926104279188246:6567159382662:3053569604:2851494740 3388127359218867:7111436256684:79423810855:56893297276 6546284558868357:3542188328597:920792496750:478796271657 4610162347124577:8739114508255:9581043842887:5997993752356 5413564736455678:9603152396743:78158361247347:5912215523617 9778307370413932:7317260227085:429947569674827:386035314743238 7784737858935655:2105828418947:6591998468635775:2685649013125275 6576238548359714:2973378396330:25411105215980312:1574490552439712 6182894731246435:4575204559831:587544593744949318:98444352221695549 3095803136373426:3306470065824:6169984027550135495:5391171292634090876 1702106514394353:3284731436408:91372833915053028867:40626676088380787967 9739424890342807:19078005133699:533:166 6097547682905884:59873686942795:4667:3273 9929838710174627:31536145508663:57225:48383 3936181767442337:17270028910156:250646:220159 4687369576244887:55844338640108:8940370:1333851 7435233097142907:65993632723661:79496644:15232547 2277246326890266:11973025882219:751427078:46047134 3096824643286625:52328087091225:9996715276:453936197 3261379825862201:97541826022912:55476281476:18159200753 6074642843807499:96897204901330:476358931540:446996271761 5675420423010765:58788679564424:3283131629983:1588453423440 5213050239503003:30648678760201:29318057101683:13543933142966 3372329771779511:45613653725737:873416704984450:2881404908871 9796433096441390:12182884028541:9468933325497544:4884241547941352 9060685773123857:34652861578382:97909768185440503:77790132798668375 2096171894316017:46452105431936:580376500585468737:301929892499011747 6839489875943967:35083058522385:8939321674036471511:3852697404598988332 2900708146921674:34421017322487:79173407676419863588:26238863054350407168 1552942250286666:433410023495658:254:174 9267205510218390:497041620084945:2922:720 8036627529609315:439358938054191:29246:18389 3110012521867809:750649580773002:684022:47125 4416695451158400:461247573603881:1392383:5626 4657986774474934:562418309739600:45566058:544642 1900922698262709:641991285269107:794914691:488258031 2768325761824435:419647872897006:6772617903:5746598188 2925428600396201:972493721630438:83680410999:7286262760 1837226002054863:178140306744266:420825884702:408796261117 8716770981517086:976737478733361:5667162595152:2486493421632 3349848035530671:979815978618586:64327470571356:13172419196529 5454822629603045:961535321711535:576304914624738:177132006024245 6372594334120250:128081118422769:4372511818532114:1378833575090570 9285040351419378:769674418376795:43042036399913052:41808965135490720 1981263353640131:419095182954097:605454522884211062:217155048040734139 2999808803618592:563163664223832:2233528392287269033:109530067749896160 2796133281614238:215006179505649:78947882667600733577:20078355215701982730 2127730845758770:6157470645597463:913:593 9178826781047822:4590361205005196:7158:3730 8230612608691905:8382393213894110:80623:5506 9879201147569261:3905549525085374:587747:505497 9701951596079512:4941738004763423:2643516:1342420 8759648006239688:2225417933577109:99181079:94614497 5484229841302547:5826927240549033:335507421:295797656 1029097709505115:7689609249976598:4472195544:3247698073 2021372432731684:1919848794489323:21451122562:5839240054 4026127196013216:9723997491112863:210492888911:192579115272 8966585155616947:4282147215388641:1758189476716:554597110423 9612263796688488:6074024995521977:60975402288313:22686826269486 1657850621786765:5006088548882704:693874962996130:281612491389355 7865942608614558:1909235089988476:2381462117922698:375536910825428 7904255316167317:7851761957708273:27600441070677791:6161011082434823 9769359335927605:9394456117141418:264146904915482511:235684819274525599 1919236811835683:1916897290488737:7137411493957477546:2239602115147203421 5038552998024800:9906260321796575:36741460116577301083:6348284465165334494 1101576499158869:44982508081216999:562:323 3896561444079835:30979684205892498:1947:379 2418904295066142:31830776720993005:64393:14331 3731213886520175:49983019964156476:804687:625576 6266359264019100:56830903506793475:6115683:1828023 1249930853315258:77458731733582797:21357382:8721488 5549144168227461:85921105078769356:891267852:637419225 7599818923743751:25856403787348786:7721992256:4161292785 5597726255416677:31555690740982406:97027183107:25845626538 7831601200197058:21029772596594106:778009655214:557166149956 6683376458463412:71604502670805162:5084905784075:1056305029194 4567840872779679:32353113950110331:55032178342612:52103405643051 9539333514607271:31935845861095604:302494617200140:156263449809021 6707692749104783:44167539035753667:7460923488605425:5522688297514202 5908759135262812:95138104573417273:72230475189808511:8075886827444026 7752602014336813:42784103235209102:900671080280580903:90174418285847254 8818966270077490:15023843330260038:5868017658250607544:3980384812225344664 4095518530318340:82182542093307527:14615354820136256420:9134668338201936600 9667885944955411:192098114101809426:246:73 7487034770241978:287607048243166389:6443:5729 5161089482454165:567940544526638853:75278:10109 2833705746481661:449296300614897197:375362:239355 2666989463726434:565672395966862066:7797111:4795546 1507959543883799:771803664946601890:35309486:28817533 1733075042852584:659442834418743322:575053122:67233688 3655219454952205:734926178464313369:2373355370:2161560425 8663987136838893:706646582358470209:51868001478:4785077835 8787278470068230:942209674219277739:672771266144:591035597088 7645761960738435:564751250502562546:5773460281051:4743619019486 5290976944016342:371277507228921750:60816824221042:59375444621648 6241798114558613:659098397129144695:964569777059980:930083170703657 1870928132448501:503502141044482298:1861085395519496:8339394591337 3182455905484727:371565263639942831:93856829280424398:55897444691477357 9197573813217634:652606425402955383:713970242810956942:268748734735020428 9299346415948530:626960568883823733:5367027216434723540:4037754888304273500 1188949475243546:887244614387112359:33363636488792217601:30795333440159232123 3057387705551788:4924690644363830768:136:120 3084646128892730:9332365670074316010:2695:1695 9670493270155894:8086098990525378042:80407:68312 3432182864420069:9630904790719530808:412280:132441 8282760941404007:3322744680164121918:2377167:1581202 5772686886310943:5878228360861406792:77657645:69736421 1163324037211655:6912477294629173764:790099828:389897341 5930387716743473:5870415319030414717:2095167575:887969653 3541543064059991:1505551936366910462:82222810388:45709286993 4021584231110107:4657376007776714316:392655429707:294554314550 6546774571777053:1361072024536076926:7576219278921:5767870892943 8851925501547351:7787304083570510687:55004620378658:6035359630963 5854052325117703:2199827455979379096:162983705911831:34071904139693 1671736755215175:5551436646766104701:6854025392587970:3641883906266065 8867915881479453:1583057534888554086:43321332317281603:20279624857330708 5085085636563233:2656205354971198979:289425944071057183:238220740870706406 5091148345888203:5176686710618681189:7800751308247550307:4967876179718897463 7710062216392923:1306266708775766182:40880970527308655864:34765196164312557425 4951559148268314:17795084591362190437:544:64 4998978571596182:27542438385910105903:8645:7908 3125803763263671:18910982694483122103:13478:1829 6593393147359682:78054168504375870742:589232:353088 9198811775996363:86587846071551667907:5528255:153592 4705496423114735:72504579464115719024:65775288:51823705 7847486081497255:77673585583322655545:249976455:9892795 4708138068688242:33500358092287131276:5528766436:2705782120 8061960025947007:92756725361004350921:40564797050:9565809607 6229336180149040:37014338095114339273:900348567742:534589960148 9468182845602809:79129273953504336176:4527322142079:339361265362 2490373277264996:45599565737896060061:45476315467534:31403911267500 9874549710525224:33240459849321077638:221263181367801:66532065425647 9224293954377274:30018861889662564333:7368786921205210:3544070301338594 2477667400173041:77797347663874298060:90215210454574113:72430799047210915 4669184758560689:15053219650546131062:641140799124213962:51307715113861495 8560558225993094:92776752730544836003:9834310626812007459:3741314172018152993 2534179835358234:78718004772527293506:71869722082381489628:8961041582549987336 58295583824762013:423:725:97 89675780332036619:537:2967:2075 64916272680457830:252:12513:8343 94870319455563519:551:947039:218601 90945887438801886:269:8844415:4249461 10401819561084608:596:38618198:16213974 78216848065773765:671:150811919:10624625 85963879184783950:442:5630632885:2275756305 84768262186797420:553:71515959952:9031223888 41757901406088546:623:431762609700:212189452236 20512166210395944:473:4522978690781:4485597692761 49827603912194323:549:39059380158233:13848640681926 64200424435306236:688:653753265556582:621010432304898 85468078858719375:298:7367250436528207:6891824296439518 12458495716376214:326:70311048514276149:27619150024388520 28799412338968474:965:709081202984106127:608269589186666820 98959107393288396:179:5321045587932469393:4309684525687374348 91987108465091400:585:33629318386377418640:2365466998326320400 18193308198302719:3868:720:1 21966776045471519:5919:4810:1659 93168958337892568:4700:18454:7346 81721985687378941:2071:970534:672777 93937570848292439:5734:2994064:2193089 26457178086795188:8377:90621252:52338872 93119285207608099:4465:459626526:127351087 49250175665067951:4896:7098255229:4596252792 97460106645775947:5235:51197226105:4361227818 37950383799804179:7116:659292439122:569497917889 84117487821212903:3697:7742660077684:4989551562339 12283017380111392:3668:56762365946826:10917962908414 75660048441121773:7904:282493799927456:269472929777793 61268251057251438:9448:1979765469563889:1554336137985894 90772626459112640:2205:31349500364911032:26022665717609120 60689599845901104:3474:272724967065426730:82433457601592956 31102911149386762:7095:6474217867576657481:4364718336296555311 74687664632630167:3487:86846479178367634939:32475473061270854777 98745315675531310:35890:958:132 18147781362573093:20930:9604:2401 98753114948202002:75461:54260:1572 82609422634085600:83894:400338:238378 74153412637052455:24478:9363139:7423118 10332180446080458:98659:18577490:6645832 74319541404194955:97031:279523246:15317951 73913061342703738:17773:5229207149:4325687570 11876171803241222:99731:32469617815:7102952313 83119851450014130:69905:630882577234:505392512294 45776172476773429:54092:3682891707473:1629006421255 40993116691747891:16364:44247704471788:10321819101553 74579932382351109:56477:574381859202727:454064479546226 23136917661298581:56602:6340311935453160:2426234701063761 34649562796261201:65216:14124539505518945:9716749971642886 24898900544561772:13597:985685352767199010:732395215580357582 46234129891553265:27563:2464099434570603710:199950488658748375 80388499202395453:75340:93041210986652927913:16358648256719986459 64866793506342549:445401:957:810 91139588477540242:161863:6504:4432 63313386147430851:822016:94030:50471 50632843711633248:771580:929211:572430 99270836500571457:187324:9933522:166395 67102896496525672:981576:40174176:34288864 64528309052102342:671309:831407757:43895810 40853163434104968:574343:1803094026:392549298 23084950894496542:181119:43526957991:25360556086 88597785046279110:312971:909806883453:906767776197 38126552908158401:926098:8441686806351:3125486153671 54347959460728887:934275:70295052829224:38426922491991 80478696644798180:404210:143469832281061:58461261257400 17560650537628506:836665:4226004278689262:3719745647114602 30832962042751554:222021:66018531467053235:21811105326974824 30210855297196014:333225:909993949989035543:238624916911835456 87196832059037053:234256:9131374713907338308:1790998578996441857 79510179483398003:263985:28039642255764613604:4253351361920910059 83206215236584726:4475123:881:41 84169254123916173:5407799:6784:3237 42043445436782058:2872492:14341:11353 76927069646078813:2910824:703413:125686 80781064492643484:4455608:3263634:388908 29771683527955797:7382754:66679950:14827419 93534641906557700:5682501:689604293:460635211 97749425210129818:1735026:6887732109:5524051753 69101254221831569:9305699:42457426074:37825243475 55456654581244220:6028327:988789013763:78217596431 50289073274391651:6225133:2682282957712:2316081778291 88472483516954698:9134832:98650461495079:11773256874419 57635368012041777:2644363:507801536534851:21102336012871 18116366868141971:7497556:2301088003414017:757425812697121 91618310297617316:1886882:67065172510629058:17463219876174376 67298638502366410:4261474:920807431153886603:90227303758643250 24653558468146444:4946754:9265321345684978893:7770400230436185541 34741810583557135:2627952:14455981555374065512:5710944729276895681 37154467293836269:60896672:178:153 73025427562899011:55521941:2025:161 28425770475917582:72174688:68537:72 94954152158832959:35440712:224824:10409 75475689098543720:72274247:2769946:396518 95363317725722120:63401089:61788441:29260370 95155006389790873:98376855:945199050:610864507 38928579084218443:47891293:3029140619:539376707 24686640582704585:92508593:58088487660:7621640765 76658455377078668:60537087:373596153688:188684792904 19835617377832657:76271676:7986073465982:1270136296321 24499018403547445:24094384:81389291782330:19550085474565 27225191888095412:42642764:885464092107222:391795679920006 98759759177870025:75901772:1821761545303696:190489288719185 74316480025693542:42653591:10102994344379538:9420440330316330 95090655357551043:73842616:729045896948630867:195440879402925595 38519568477811643:62888983:1506421402551556337:1254153280562407475 40694105935442380:95686565:82051961432317247098:12625896563922494910 93292550636763649:896409439:956:277 95267802721668640:248649844:3995:1225 19365111726624432:272712934:19361:15394 38561803597562386:812223787:533406:120730 52097247577286361:336581044:1176742:1024711 88198539249600387:269742616:79916958:46713681 27877959324243481:754264928:582510561:543708340 48947087057739182:772802077:5932124388:4630203800 70458227536955333:749096608:89215612937:21390681986 56372671369962941:433062973:633666115115:519184605146 48929485243987925:311663334:2373182989231:1047479776878 13607461493288596:230000128:64875005530145:1234892707766 41402193774409805:847498957:448387524261751:33026563599377 52654602517462228:491339522:6658244329912485:6302318880861724 17969552203867522:278959601:44341791523187687:5223042797709322 21374257642674087:271792205:689932862818435790:27883156089112557 87458799026982866:464012944:7938466750835782124:22743475697668652 54183296852742695:288892861:37491163271417769577:23468658745417151280 69729024038333969:5246961592:383:175 83250126687518412:7206821993:2255:1492 34524694683554049:8954270641:12254:4363 39596866584589284:8332462598:285581:116622 27861377077152922:8088095799:1335367:678801 35824888805360146:5510721118:94632968:76949736 18093629744960281:2639148451:760364478:388135141 93511907252733514:1060255570:6336631589:4774305234 70004647357779828:9691158161:87090395381:14015672958 69735420294131306:4904018704:674688653975:572110305271 57132668012849750:8481007368:5896575002467:1507010758938 24222393762419308:7390435191:32134322109764:6158432965588 91988696951107723:7792074552:121104834637156:16493168986541 51163990646948844:9058011786:5692837144221199:2540609132272645 45663337067554099:9434657361:54390104005230027:45152923892679523 31142342133851624:9080103954:719806267194624549:460597912529119192 25295128431124840:1527441592:6213217913747081474:5153006955882190514 70305899527380946:4611400446:79097721760100777065:70652635944485499666 47518054209880000:49117556671:637:488 16116294416253228:39397731498:5080:64 59234780573612091:96495326132:83641:83034 43998823463324610:17187705635:586242:81612 26988810406340408:10580945668:8383321:1550907 50871004878366251:30401945663:87555449:3898679 14560147979667522:49247319224:579605117:69131448 83768953096514097:27825714420:1917472040:1030700001 22048410110457010:62942255075:50089877907:13948786915 69027486265125446:34316123196:866962255156:213172446836 47483749550032340:70699676183:5828320125067:1027177468291 60635431217476724:95055650750:91332077050693:47660012257613 17305555404919259:81867379963:298753270131626:118091985824009 22353099318460227:61666747208:5266764875667019:1267427345254898 33764772805314922:88396548973:99819742557349500:9652383262765852 99722129033057694:10843320360:503991084387602480:337842008034507376 35524547731643940:76067448591:2340387345929890396:2186032316716784316 13196150450229504:58642544299:34059957384117240583:29716466356057464804 18115502146678534:590339113861:247:26 94754162064606070:615592522973:8722:1662 14749469774338935:431490246250:59433:30240 46592907079718556:996040718192:799949:57195 78826132984401022:813109604974:4215702:2192044 43314537102427566:315418247034:91549836:11750796 48445955872277434:250381668684:594540989:245867854 46705867793469040:375796262371:8533638379:868800683 61701307026685999:255708836216:21839133644:3332410277 60150358289298018:492473176340:605890034276:128849303988 99118702058248595:833947818463:2705781562021:100371816780 15434277383054985:775822723284:98061277755779:91808970395571 55322832780332873:162065978906:816233954763312:63106249321729 60704711200606762:502625302600:2729214611625875:575001769172251 74475372565991473:593430266415:44132552207914452:3448590791244457 60617431089049567:615641437354:907790561334404071:832180332309077268 83279878287650695:956941007810:1270622184913260191:972754726333752421 53299865538901909:148583152899:80516284661422232543:23169419173750986471 13101971968204569:1936723483434:580:401 83153405521174887:4332456005943:8375:5278 83656473625784284:5157677332335:89667:16678 23062347557522888:4254634014210:850290:477394 73038733608996117:1528794586650:5385685:1982134 21475552146306209:4491409615400:96948123:39982291 21536382044937406:1439593422976:954480913:152546437 85490005290406811:1106538393414:1628577283:11327728 49524543954676848:7277779911282:34266980421:3241037286 63522044916261193:8044791102089:272744644250:16952512193 93621631672944659:5670542137182:6542744759879:2959268331112 28474127003612224:6213289784927:89351097648733:69265398429477 79387875362984125:4223330759685:894452484388689:182675345014243 90964737369501460:3977222528694:1502628209460561:36870674415283 32528094620926295:4210278677754:34190646339784890:19631269620978355 11537087597044466:4740861585788:537130950770961525:172333288304457196 33513492836728472:9896382103193:2018909323450797600:714412402057847552 18729482439588288:4843998618534:54125780788451033914:49766291187157237386 41696170801813599:58526546470085:339:6 74973098689848319:41095933367758:6741:3901 50882948073951777:60740561976835:87356:56761 16977918049098572:75200073115326:639640:175104 36607575175940068:12026100210064:8800711:6009739 61147883893478267:29777965102798:75486095:1990044 35094615497823644:61488707184252:931786172:303277616 18579795271584046:68991979922088:4705689793:703827930 72427677604570469:89072379778980:19164029967:2095270003 81943688329262228:84926841835363:846552395352:433601888168 82613506629189704:21555464028802:6870876162060:4966226022196 42483087511860879:55376195533790:92840540038471:62640268161779 11492901216815761:47808293272801:535720507123366:102025580190135 89937713754749147:26501285917642:4883008058697619:2671717005725732 73813873727635789:91062091285680:93675491685060026:83839175961837283 25577391930875230:75258901181512:499679505719707813:68147707155081508 54536262492597784:73620677321894:7434140458938129639:6538930277774422027 79221808217547679:32149712663165:47138778727605632066:34599505701199517349 39310534630509864:145755428171085:662:164 36768459404790247:206978964496227:9345:8443 54111663864359309:567578971179977:68279:58331 69537558018152700:629542213921884:678988:288612 87149813354821961:804889789614008:8707446:824041 57461608556166332:150936129939785:29898968:21837432 68938494783354473:696369176114686:493216675:303304789 65203733304718530:876832216776721:8601456259:4319119843 58272499942403374:887466176836109:73689601658:35743834152 41978359478014640:569636613903735:691813190398:505407044416 95239405396387729:191448080050971:3294895107554:3108529418755 53404091522742776:689699879031065:70156571311558:52099777733618 34656033961519040:861401380073164:773330573936337:71907324139447 46958109818330116:188050012693238:6533572214390831:2076620692710116 37788136369822611:421654341788491:58821157155975195:41379391336406931 13246082120390721:550610480382396:465287595982035493:309983258561545077 40451171694721402:451632204934221:3313393993465238260:820800034524076372 74325149987275726:901078670267309:73666952825231292444:2106079511462317552 96113283309965634:5885366966770339:287:209 48695128862400787:8780293428887496:2560:2081 43095486841481554:4110901068645687:73188:6328 42132135656543206:2250994870968570:257209:157529 97562081590576693:6933162407795632:6414775:3451351 55326531110119876:2924144459808381:32159298:2651800 61051040447838818:6642824395248007:785431572:467548472 89071771542907183:2000074542509246:1955709815:1819744974 98651038330372318:2600401141791514:81624439923:12335006707 62006772101626054:8385933387528704:301926098365:277837551726 63121011334692998:4478486264175694:1134832317260:497465774324 42615059713302543:6545945536265166:35173734903297:7997164472097 11568749717313081:3396302783434017:723726650444173:360552810497827 70420251647714075:9848903396863927:9796427471477890:2311701793865095 44728750086722365:7649936192548795:13863603950274530:9589105661908865 39041248967401553:9673932980595148:880607985637663904:651729688085202625 50647024966293989:8211928757115915:5353144764540501251:1055961101090065510 14875110997021052:4729018301140669:15446439523270356695:1725357573968036167 63343115453193139:27164619940257289:760:139 67002606329824589:12886295435920383:9411:5699 51551746823787960:31881669236652785:78841:10879 13386233084335502:92519415590860520:218436:34996 35543389124906858:57621714684082548:6040553:4212273 10130211502378231:66930246033734481:87472794:33829231 25690903676753753:23976154253560987:789451996:484590337 56012609322059189:42746720371611264:8222932610:6660603411 26429863895907275:22431255260301558:23841351564:87096169 43138453128604940:43075849118806851:405351685554:235499329760 66320683389098138:15438147035608648:7174409663545:2663505676701 11923500242609335:87260335641450718:21028169208091:1247574804400 76250291807991931:49037061316035019:938810992627365:283926755224171 67055657229319195:41936709276159247:4673781728675928:612650056252555 34100550835691721:53793333766710103:28286611780235424:22039239694413273 98411509969468418:95649708484537027:523128766355766976:252653459140113344 21977366191760509:61197957637575664:5022762673376705203:3933160766928935556 26008989027199754:73176829339408157:90833260257232200147:17743063386394855316 87110817968865271:831873444506429322:444:1 61472222598646262:140322247814403689:6687:5999 26031800977218225:156612419501820128:72877:29204 45090702518064940:255511884352191533:633692:240892 16625315895166668:560916757421471159:7296475:3585782 40087841401488724:911537946782018035:38892513:11397649 69334228429815473:291416262624787835:934170026:525015003 31843763089482704:520660599348284467:7281670065:485480804 15564713980121509:624159467460690971:47205105455:46476742164 36066858034978175:539508794338458892:637569168979:284659919135 11685811559960693:632666692162254916:9774088275154:8554050739879 82676475129063930:300671657267049605:20920041498115:9668113900145 56225066594430151:394241182022066535:596177527626551:126271511455578 32555697767926293:547836363866143620:8110279852712126:5807842889305939 73687988188610909:260811480230009003:17543710564811615:16926839729467174 28505191820897495:767995113095622194:470724406603913404:278095530520425153 46098299055299853:268348394206067566:6654212093850861316:1524131808926824197 26419641841061084:531529973132148591:22074043167288427005:11935404928124986544 49003332734315955:4416299686089664449:662:395 14877487790825640:3874914777982416465:7255:4520 83764349022688249:2265165057125199986:30857:17823 19456260541009512:6032546414406814838:730710:51984 51314048402724271:5973567254699225850:8952529:5079830 89747698899539422:6548675048483057408:34301610:20199466 72485471294474900:8210080075173450102:411270523:349662644 35023284224199559:1269169641365586352:1843447234:1532807297 38219668537419453:5639680129215148388:85718248536:71284050345 18153399272411021:5712760837265795223:856602471021:777572751983 33847318133975383:4464139996881505013:4125797099694:3828227020753 25841160855262396:3801335420535553495:77596315378626:77380923836512 46322344690384571:9431130420834569034:600293979942799:113402168174812 68317381666471419:5071984610052124843:4884638773017885:1029515033885484 20280591524716417:8790260663521912304:32917588447317225:32539030676958496 15645915707357700:4882633294761680949:224256976653006072:127989460089042912 73219115999362165:2990162430363971459:1294386930390154878:935541705090272089 81340297752899082:7280967055011835764:37296906609851516314:12376908646224508794 26178656091129617:81352289772466111422:254:135 71012713687828334:96140265840087412211:5525:5159 15845088365706415:82448054826110465842:52512:48577 76854774592567032:33144564303367894220:656388:449676 65471693714358405:23986221833645730121:9899235:8821260 70058408736848894:75167339087225377992:99301118:30675912 35433811172292066:47672063151352190780:497996895:412826151 99895542263790365:20925020710274448812:5314004699:1627705563 97491543420619941:75390525240477995028:76749292444:35323160225 48944889312000592:96885074045951096698:522728268961:229010882332 61124779470358241:41104214730049702769:1565340949104:645284706833 19601153182952665:91552808291902068976:30511816830520:11099255334025 81829468660908811:95042642472714868138:668448090799822:360608056543889 49853382506288831:83114095120297141950:9996283636434483:8915027500611019 87701722453090282:38606996744719473843:50149776713031562:47668578627447210 37909828072216023:50741793061848023676:297509709887839486:16671182943939977 83722006647102066:21656626848321882422:6537954471107623564:442548751933330032 11477029081862748:72112400617804841168:25149526125521495620:6371890344718429636 871818648964708674:431:261:234 231714576133048155:136:3145:2005 811572407058881175:652:91656:89433 414088974786459206:767:895016:278352 818986333016803903:782:3979767:210829 253689202402979277:572:57618297:24351030 296695030643501330:672:416751824:141166304 185865440093527352:698:9916051888:4752960992 203715134023327400:129:27230668147:5741682156 379115187848131524:382:297845282470:266854730206 317885925945980364:939:8360503958739:7901897466837 899647799735911407:898:38332944339203:31527300592989 443385751627992691:556:352019323541421:96366470648644 321268762662226997:503:4587503480809462:260310668491251 460811194325867408:499:94970396923193606:15747840730200952 735476232847807638:968:833534631319897727:102583970472164236 369760870129995613:274:4723352835868730710:545467675560127479 413174994934424737:217:23211407681329252345:8963226440158059822 187503036435387230:4372:399:289 905937363566406127:6667:2389:34 591993954124297577:3289:79627:28562 784177622117075276:7054:836803:492134 174855496439213624:3803:9062146:2068508 163778239146304398:2739:12480437:7995662 573570515650730954:3306:292272663:139323160 264764863941791210:6633:2341758142:2054545838 131910542338899982:5128:53452956810:4641865066 276073541799045448:5725:671664512337:133867535350 794177662596287876:9219:7776222708827:2921714382134 854589520999051381:7286:52258463232013:7659065251613 997755116294940305:6973:698884642085877:137637640002515 298359027710290748:6487:6919601672884698:1274631051521378 847149484147327592:4991:22531552355454934:19153817337382618 217769691148747975:8469:108955865866038966:22588879199670721 544213838180577249:9159:3972600123824857062:718471453749532887 539974858096395457:2855:17950975850899804474:5172592791298687581 866135694452130839:69254:538:515 161176631148511894:48955:3909:3214 415840807271804300:47833:12809:5317 297750055490720981:39960:691208:119505 972718150034832257:45637:1173768:1000361 220871916450258960:96134:59653127:49590303 906707831317063272:16779:121250112:19247616 156323145623257914:31414:8384506194:2605919724 853585873180462375:88777:25522233566:23169649253 819283133551914263:47375:849020657223:282692337059 439813246432829592:99318:2395169261663:836696485638 408554827410085013:91737:82161815797956:22093357221701 496068578748561268:69039:754553806595659:38459871352099 152952550591945729:96028:4375300707195316:3260921879646317 527028261301467360:32371:32318984834280447:28411749395010147 723382275752921486:53253:225360434498169313:23935081970442350 453185067180626017:89567:2018146052498735901:94064852490007216 343570059627482523:99549:68960603735896069638:54694581951149829387 867748594068888184:340626:755:81 417611540018984243:781174:8698:5629 291243406398890254:228060:72254:68160 217256191720326855:230705:994373:711476 664617340148718926:710228:8704548:5717596 576173429356532276:406740:36951080:21981416 445199761425316560:147586:884626271:778352196 736220287994792917:197353:2927635251:1429107163 696849111241605471:230845:94136230162:23661654659 500530389955748730:227207:988282236804:565354851180 370671686648447028:339212:9755915346403:2945148089733 114170078992120730:477589:71964601724772:38045208142016 280021965587279510:103960:399391607853822:63741546003382 959879387327874986:333251:4627973135702317:3002632206575497 180489669328552044:837283:29750272164048136:19782421345970752 938645648774491515:782710:268613357170854371:32781702615700987 997420999029640044:619179:9810867707292958511:109269574725405997 313304539319285656:469962:33057600857799051064:11728711343152585976 886876743836493581:2210086:320:121 795718982072158504:7434903:9798:5410 449119636142298012:7942685:39804:30840 853661334526536236:3111860:213428:89108 123554405449442000:3154790:3825887:976518 325441710221941448:7324363:35501191:2751380 911731738322035385:2419759:358215995:192405765 556158968999619478:7980431:8040299390:4984612082 486713919010014273:8593883:60644607332:28121736425 206130274359919946:5756595:434812360303:417164957897 985881533944008146:4656909:8631794680813:2378025757569 413584670098199883:6391243:46565119750801:15651839253693 370874385773224072:6111595:158568438729146:36238665437638 732022909099011823:8434283:5460484378342665:3265933025373472 484260673732365186:2007936:49265285909422838:27013261359432550 135777479703937191:2849130:816462484534478166:258589874028023847 789287064115560832:1452795:9580987444960187251:6192011955010461616 580303266999223623:4136783:86254865072627418091:17060347891400281672 955787682617331451:15809072:888:673 127198290123699513:45541232:7491:3657 357266916934869229:68940340:39538:8473 321188504267288165:43090407:399832:38013 537956299888483646:27146637:1251224:1224640 875022797491073509:62217326:78272266:77724707 840825970189401723:13531649:722715517:6678547 574115385086304923:63968890:8068017140:6313880829 868459416816945929:96684664:52078339783:26480836311 774741141558589380:79318231:262096066496:93893617344 360964423097719430:46030487:9792386883639:5581232667875 485844750875345502:13153902:10822445547202:8888537953164 308783921334328695:44938644:152585779895287:102801509481539 821244691081819529:77517087:7387036526601534:297678766423007 610624884208737575:40844055:32118901278085804:14303983391080531 613069208001170406:63845630:321140730794847868:169626966391114204 457701714250248801:21668988:7875964754830548926:2820692885412080805 229805096223882863:33166581:77694812362658667171:62846654597156446346 796318175499384617:131774134:887:304 269145257122328218:653942554:8950:5674 689795433220769394:885038130:87086:75372 947146764306835838:240230487:564607:129014 945145919256837038:140164684:7655963:6666255 560177035840935581:417962180:61817695:24293171 683321698937937869:199990883:822939679:236527112 915650540605033126:757964069:2187049598:1070968254 659073633970310422:667125938:19647835393:6565861267 661866969255658935:258017168:132484622971:66294397213 770806511338063590:963996661:7217867873384:280975435760 648085567200856398:461586873:43183859313228:11106736524504 437586012206934914:999293385:889690365722751:352589770554782 426432062293444865:118779125:4309781770232693:3438203824489937 344284356879573926:637565895:93106764965536756:35165771605819828 753116155705197322:449408794:115942185465270054:39789606223418764 229190658042957949:600314512:1304749448175214988:124699034184179233 316322449019525306:867960060:34678933325762414280:33192382344530610256 495115043599807503:9743977942:282:267 691848856854930820:7025614061:7048:80 787048532959400523:8857812088:89710:47691 243668948198028888:3842049433:332526:154704 753596477611294743:8211782981:3488030:860383 393518331220479698:3804513938:37118475:20166169 171223513481690414:3424236070:362122373:243365003 647575204769656482:6669072817:5917880089:485256376 809309115580813925:4397904830:67498089071:42354178342 138738917534690443:3963118753:915813773673:677033123086 426951110646462872:5756351694:6387765699726:218922089482 352231575392203644:7949290500:83425751139496:4503985429368 648399349270332278:9240014210:439645609570032:376466777170192 622359864774624653:9788622215:3931472745535810:3762853984055717 226805896826192383:8552480525:17141563656364331:699426817157584 452864376434186172:2486139214:971286575309274144:739596824515418784 624076992881435037:2215850030:1089472497914356840:391158764667740609 383081198863819440:1398851151:52050323846349524270:22584574915908868700 555761448200833643:37627577001:338:135 429877281744778583:51517038999:9690:2687 451091690886741485:26081048307:23108:21801 770629469955263532:99146132984:681022:66240 364402881183080936:86593051449:7318482:3000128 633914877182409001:57772964386:77254215:63631981 542035797276508097:75838472329:661518116:359658337 906551689687134395:41045565293:6865374436:790954247 301668178237416164:60970307475:20739702467:15662336526 523201607115881927:19795475425:774304972854:207417579455 677850628392966081:50880567643:1351556093640:1260526342161 967479777735330546:55841606557:64771593827003:38013560650318 694980650824375589:36201938428:104859418109822:56922839690807 415807253797615802:84132099795:7520994644367727:6473457712082597 912926109161868583:71115727060:57858397701828282:1114950218066545 713249736488691631:81748630488:474865037930053003:52090680650689165 270134374170038968:61466094133:7300056039763111617:1910415051402880918 706618831543269606:18188807668:91215223270944464105:49333721482191439061 949614812159208261:215066491812:707:155 485212827230587895:411103169430:7901:4985 883508317145425705:147119280593:69761:62526 883930807706428557:485972746795:220765:67483 780652364168707234:313010898097:6934253:6650623 909701195352513509:701358503634:85429425:30556336 275274482254133189:704253689954:366012910:263829231 429020102406958096:682767900256:6120758294:2069993598 596579618936489240:166653726097:95464269866:32997206644 161672118548188282:821767936127:502810997748:120659575108 923199148163961556:744388085176:6372793328276:5020704157656 360911332061502106:147562006601:51972706316492:49408975441892 414169073460547230:408860636977:383356256015078:68799509337822 579053684380095172:354065879905:8746258273836092:156359914931632 811019184529788580:559782082744:89955892304022194:70468856928256052 254670658370969375:250778859443:779667055377115978:126418595317320659 611602914474782481:681937911957:7494897115690898321:6153632132199897747 205527763536105677:622485116684:72734535810259567582:59664688541239789855 528415913591723386:6834088678341:186:154 197222869902030167:5350261666623:7032:6023 743730546338990255:5111302802069:11952:1679 921124328876839535:6780552623144:285087:124480 566998231559569767:7657014815311:8164640:6835863 817651116040187366:2349202432934:85650372:7916608 747594299936202086:9758513173006:133271897:55885615 796224315733991780:9593391739816:5680746470:4781518190 136114248426884559:7366065477032:90882337563:63149210361 730285814913608213:3056359205397:365939332135:24360560198 979261953000596187:9775934662892:8586490038371:3713880124312 101859058954963281:1128379314363:30609714253600:3459980176241 630038735059520050:7371161554825:403280882397822:379265797071568 678530882197877649:3371067872840:5620231830459696:3267400562012049 874679566612240769:3058479338534:60230568698477762:3898174088009223 306082330001414870:2800568827038:181010089696699782:164094726796498378 466375803081187628:9250324031067:6018328041599697770:3289576888153016962 532110616571558607:7126698859359:98692891526694679822:19254578945820275883 940586812762817490:91344117160921:223:117 553797548299988357:37122373566004:6928:4161 280595187172165817:81288517084711:91300:36933 602119418159900729:78686503230793:694583:102082 724559742249528089:58927403749839:4775838:4279253 810625954242091462:59116268686897:90963902:77123088 698654168502906461:87028744003787:230202258:164838233 817928938650768948:46701678333867:5721422429:68051431 336178278087797673:49058118268211:12532633708:7012828121 919425165215375001:25550386390864:825591969341:800195443210 517424522650658226:68285610487699:8032290709939:7792689119456 511425792007908928:81673621045100:46272355918158:22288744619386 711274708348833301:41715131150353:177254741305773:167721440308873 376812994988129323:25311727626008:3500112294853764:936181771896229 416562422882856591:23900584806607:38738621251854431:27430835374253717 356309711459491802:82588667966928:663583763292679815:157974407135844886 466175968346296562:57387614653004:3251910015067962854:1375378284486361570 331382729694425785:12221485953941:72680399425201156876:33909428008636684605 635822267952284714:813012712281254:895:401 836735907324954285:198380072548022:2142:1845 450503357138730252:434128382520113:72610:63252 913348439045540077:557059676762601:459563:267795 768773665945717076:744742983983122:5736500:859776 227955728104187988:766392659382749:83321909:73114540 393297198742528479:478790841375597:777514488:279467991 186355877725393440:586466871245533:7195341506:1155378390 327250323266993915:950103286023083:68114742926:67339527827 954548286807634047:454912670602453:659333554896:524148612975 312669882545669584:632177095260774:9326257518831:6660886917697 750479168275670401:847398767386636:22294408817266:16574609225695 629576851701434731:940217622144333:491794883018017:66068161364498 130582455216720373:790996636305531:4417416429577840:3387433235963037 702263319351520238:246619852795018:77194433504029255:5648826179111144 419950870106492009:199029856506091:788059873555608071:298116399692527525 545701356813525646:849659679581674:5634027973346718506:4139609329046456390 426422163679896723:435632727956714:66395416085373620063:6956274819000278396 656995231930858011:5916047146740769:333:180 275326324704535385:6622793667148026:9464:337 428502638725286879:2990593494722820:80072:52417 684129208718288910:6240337694912881:806476:511340 803976035705853118:2221629914072971:6858540:5821612 727380329596165558:2932525286049878:92055876:39293500 725744532919709206:1234383993899844:169012044:53028028 441249942196507227:9124030540626530:7179448638:3694855263 864904842860568305:4110153793654821:19979505414:507937049 195445931433999573:7539506392711749:816032368650:762685275963 835088129050810318:8557620059319686:8317202975103:7651116949804 321804188654348359:9376330104542812:85349265623074:79794070311755 210493158689820370:9175694907608441:820060223958341:198341640610231 101073430708563277:9801050632326514:9410572684715988:8059077138386701 812194534064410232:5011796064365581:97491811380521978:23322901545901728 936815900740950704:5849598583043047:883084781180409592:340532368841299376 380807354599948216:8889940831421718:4061930396110846031:1957747539383946360 346570886603943974:6709135254693044:55342503800319956392:43006008297258798560 809364999468373718:78756468835241437:309:287 147111867967094395:64396546217386197:9873:7966 140263547994901516:19602808589016999:34222:19998 949093173093700473:66184183000850406:773627:357742 481842688106244697:59650051114165711:7111245:2345818 801986957733858164:39469971885101264:96627136:78590208 428183913546204090:42790140328702700:100182937:93861281 220300116837792340:21455591892535935:4742585434:303006456 209330072478225024:41659856581948927:15739632506:253614492 262203737340938313:74557263392082305:900790557747:783807573966 332284984236804617:88164475786092330:9632699051311:5430033863668 733916062223202174:65196526224981340:60322577544509:16583161385190 782703919298314876:13785259571040104:831860536725192:479442652938640 350880785276297519:24012291740616437:4091856075295694:509179752051325 749513475748668827:24012447191731715:28905789531482859:12585371407169375 232971188502413474:39675484402996075:447290275454717136:166105085172160832 616552651596923227:68900956591579703:4974404198980413154:2061708583082634935 525856885570169778:58521177727370298:29469738365153533066:18624806536998751970 307864793218024748:875462390249659250:324:112 867220589244932104:562381952895160213:3486:532 273411364230347400:435407756511310238:59147:57995 587347354082165276:772549156065371040:469267:18056 962201052809182497:846616106391180229:2163829:791810 493325949661490529:671975112228091762:78844695:7438446 759290296757621386:115485912191327476:748428666:713315662 240507472090425453:912721893035171091:5243296197:2155867158 317487603811297014:747123150965966097:33906013257:16478927121 746155802337710071:626687367801327523:300272171664:177759139447 243594774598019209:383834975439930480:4300173446113:3737482921744 370132165008461082:472668244053529806:77421033212964:57836879582280 290740113915077688:620519168295244663:474514409794322:327781982264334 596711331397778448:988774479441743504:6949648648312516:1887767480811396 812285049181960763:805530035324011861:78786813641958286:27740586591457185 365908225508954256:188735586318363182:161109067580150479:47800970126999880 804392130527606136:719309885318892236:7777931592233222691:5374416845672450049 618659166668413654:913340126625616695:37239719838892258093:9710866240283194014 254275686390746342:2751659768031706013:942:674 746737238184970577:9099473683585467763:3534:335 675305205302696875:1490014079020478524:92464:12273 150410173345462960:5777093157920116874:481230:118660 652012743233866629:9264969367963072974:7718274:1874421 431662852736887845:8716406463492236892:81490160:27269665 926804373806967567:2817246453224143471:830440637:805843660 165492191501128680:2101264150641167639:4937499206:1674383210 333003552683724958:1209415077527359161:52340667527:42951661749 553987192134460458:8269877096084580206:278142246097:201332376996 394946791524167755:7029956057636017782:8729250074248:8240404033801 105344906089993129:3709589317505650066:45422764859742:24018419494117 656399087327105753:6147532440137598138:380302891879442:345787195984973 312606891770155376:7662785008615808282:8501009459710820:6383445989770476 749734244094685066:8810030035404167584:14095183195840771:751203756125372 749494377285843790:6408969679580436846:152121296313758806:77195716105085968 502025155808999444:4697665121979375034:5193474163161058629:2375515190014906852 241699376383800519:2614128748252278549:93767191960322718409:16355227705249451179 275780173739166530:60437756621187701380:878:550 515439184796081425:83087272772770427140:7628:6725 205033128545123308:87441799279349656476:74142:39988 300554449348824143:59739471455345600044:705876:107113 886522121740069744:55737947720553235149:2157609:278581 807201017151712155:54225864511373171566:29617334:21730853 615237896380265522:44668888725553750078:776591683:613356002 869602694423620860:52202747607102181025:9100799403:5777337588 949848184413359566:22033094539514810946:51714756924:21452537884 413400926675934550:80693600064186952469:477446850408:226418512288 171441142892212353:39452183446048228958:8812521798580:6081264080029 630134456223725832:29792226520482490039:82826753213190:43105499324028 273831742871039415:94466647310376265573:282266885547713:59705075378874 681277733032425905:66091242888863873953:6631219194469658:4757872348167335 376034577079881773:22510111646804142521:77699105794159770:30010614066583283 623779482921136486:97484908356368278786:512266078681097230:211442659456548156 902829369062295582:43152536960617447594:1962049577578911294:1618419443678480196 671084906849685117:62173440345174603423:46294138174555474289:11307230808391178797 9556214770671679403:980:141:94 4776260182909809160:833:6369:3142 3143974285849042969:985:65132:7845 2231929507341619432:304:694235:197771 7300315584024739331:942:6190674:4213063 7571635778657013407:352:74828908:14554681 7637166302489125988:323:638840311:8115730 8219965721457719215:329:5393516051:4241689844 2721031207923497441:910:18005342323:4833637018 7260134928355532999:961:249852932660:87930136139 6916407302089234073:414:5232593302107:5100832896979 4220968874692280938:353:16042324325312:9550816710272 9815088768574338212:762:521315991982123:333566656675277 5716288444714129733:834:4243489433292591:1447588626061240 8402034766297600576:791:98038753802505602:74999282189135400 6844677531833022053:553:884436007237627270:438646588849948083 6904883785174044323:616:3079979895825206782:2894488424540872467 7589615326857721476:916:46991012762788993905:27153301046175784296 4101305490569421625:3698:875:750 6884582062150028214:3827:5331:5133 5342264887872427297:9383:55551:6088 6321005302072434981:8631:400970:260291 7687756552659139910:5007:8319340:2730820 2191209501627538447:4293:26208799:8647579 2480744295662656021:2188:624477326:515025459 4637269266650088435:2282:8905175757:8006287626 2634072415663071639:9530:53203744988:18474439357 4660360696440466607:2050:268032157254:264244053463 1220213354499583828:7227:7348773412209:7237796843602 5433682157947017938:3429:70760747213637:26727655155440 6624879829340624185:3350:434364488963335:136729724334445 3258220804997017741:4761:2466108405170716:1172332133401585 8666214248856932934:7945:36795128019251719:36426916775314530 7596600350068548133:5734:697974260331503833:681266172229539781 6392912238627617245:8451:5479863335897724365:5163682773084283335 6642607036177932186:2175:53599957675847220691:31420130923273481088 8213253920037042111:61514:780:261 9584890503024155902:78418:4560:2224 4784179062700437823:35387:44136:22663 4393327759397011984:20850:845082:624142 7654160129149464137:71585:8240133:675038 9023641033154931785:73584:62479775:16728100 6062120666802899041:79564:813647305:325492136 4482508362945896945:87643:8135346082:621189891 5137865152233198751:11800:75321369144:11263399849 6136161224329694070:42607:671812138402:52323448670 3251337854571610305:63630:7569504209679:5670934856949 8201168049925545945:40550:87254202228401:26493945767532 7724249290155225246:94425:417611831905926:4642768023102 3077679709929822967:64567:4698902479072034:360223130506287 6090159759383520668:35676:71175588646893840:40426152417734176 5236602735137509796:41417:484381041817588632:149417970175897760 2527577822919669612:41805:8368857472820055617:2574799281340162724 8191096504463131173:23897:43249887499224543140:10711228863231565793 7235808257475063897:717078:853:228 7823529261489708786:182426:3804:3780 8893829839225074709:739225:78025:9324 1668333492695664307:477831:827381:756550 8295556615800352874:573693:7050877:4142649 6487915113852199636:858163:62135537:32928648 1569748925155141808:117256:629866644:135400408 6212230313404576344:846395:4187085799:3677177582 8582718620934586666:661537:79005108943:36321326790 6058310692312581988:982744:446271032842:380890864796 5853673553650434188:962724:5026837290344:1749032055544 6814454454568292049:525101:38613384786696:19173967066017 2460333192399394051:137429:538842224710295:484529551741701 5225333369820392861:481288:6281787312162682:6167018886997571 7151080692588111845:331369:72856103839529069:31436158776589293 3661631375352025094:942677:842543289498895934:202616765315691962 9888876407617366802:185565:8641331757119235847:5658520940213959554 7719291267495743108:562061:82819323958077939141:77179779194530715258 5914596735785686670:4599304:674:512 4436437978149463583:4471997:9669:1925 8859241734891216549:6883066:91079:51717 2249673547445018807:3576618:431111:235500 7062526900427521042:7162756:1720784:664352 5295500889762069274:6358490:40096858:8312404 4713910289955100872:3326919:345345172:227507144 9986473266104187110:9865771:2366667864:354838808 1478685360230350072:3943952:29160855078:4555048480 8434436921497508281:9068418:175586158034:165220988087 2754009069358569869:7512400:2689570146862:822167816567 4527964743328021953:3166594:77815406806301:13152544088618 8882961273633926724:7088754:266761025789249:993026018209 8088452377158515312:3777467:8951686575362750:1534474041147908 7255921235507393805:9056407:29072930836875821:1037007489015686 7008634764059720811:8377771:307096556024206629:64252801134989073 6278312285964311080:8693191:1830862663022593648:1369040743935541472 7351208396096195137:4316280:80429565095050035799:63135130168807248047 6490309790421786549:44071202:591:114 7069197153553161716:54049931:8876:4980 6749513760469343475:84039119:66188:55875 7786965765496648420:85519711:642718:348678 1441863847248799463:69954415:4911327:3802454 6606588733069666184:84146283:93378817:36558201 9178021778589761900:87901053:872599362:93630002 9954669267068522787:16608458:9767316551:9581678067 3858005787263636591:40294244:79405700064:61444947457 6595994653540978926:42846271:686894561845:466434011001 7533512011128786290:31394933:3264447076036:696715129196 8861491420295822581:42532010:51224211894326:28414100662427 1022450969448745507:20058169:260087672387930:89843368774697 9403431821523606251:47184473:9899629148309131:2781241331246147 4924839080448161148:77084969:51301790029828938:25954462992845094 6199730973489472501:68289965:838490340765206017:164761866891159730 6772176621913693552:58498295:7701845200760158455:4755603363726215578 6921620124845026050:75085809:22126873352305918356:21748954952063455560 6755603270863616678:654337849:711:470 9533985319021705670:723348557:5549:3280 2312149286523811771:430432991:56190:16801 9835210839434758923:341985522:152305:5029 2257690148229504171:264270683:2153347:951987 3708211862099325715:286526389:36553658:22129953 1022447889993720547:304336533:666073797:181125241 1443453208798003821:780420900:9533529868:8178267301 4440491776847046395:229461802:12813591987:5430699709 9174374984706693141:221622937:114036967237:58394307542 6563625618299778332:649202291:1257834014089:875233487794 5293746505169372657:303463325:51075265915778:16890554778341 4612159254004267285:567916592:983408778348850:548606993213675 6647298549209880539:832053405:4325334557187002:3149577727530547 9115361087783314458:178741842:92356597022076028:78140614743441952 8962105514464529444:210026839:127906066030613065:16953455936932584 7613694369903243522:103552684:3872209294339404903:1821078075402890730 1963351981432648160:451933046:99030378104501342031:41308421797187983720 6492554019631030006:8269219278:441:127 4873326980285517198:1692730813:9234:2430 3758588530980332510:8903468878:82590:26260 3680741817294742358:3501868002:594966:147352 2489268643567328550:7308546311:6842757:3458880 6880174494626124994:6067906563:81688281:54922324 3415686427259427206:7417496644:718189092:348980740 1335560792721443050:4525076230:4881923022:383254528 6497312931020064404:6615831099:54160218780:12765616544 2034702845933937345:3339324791:280788439933:235601754063 5565146080759901449:5576757886:5728946809002:4060592455393 2968581242970706493:5979745607:84229707205849:50305697010298 3582904290586160339:8265709828:572424956801056:534003551743313 2583543522228328675:1889505551:3790291775071684:3294820721670215 3200381871906064383:4722809601:28402687162498175:14982172200664608 9646313576895944442:4874780052:463912737795771972:155111051303909340 5669965635536051659:7454347288:2841963820135671350:857510640480673321 2531176001189010409:9452962712:62751024013953302218:5060777680516390661 8899300035867459954:72510872227:316:108 8564198891619250831:37368776397:3710:3171 9802423325128338983:49170933796:70988:31333 4170972846740519795:40268554992:856944:207073 5769571780819952609:30778620202:7093529:5132057 7795342780571103007:90514845084:72375540:13950061 5528998624990688464:60709578846:943491288:769746640 1968723949205022561:10486995106:9938535961:7213334768 3929862296788032191:82056155256:10594455244:6283928933 4748570818690046338:33101251162:707731160895:486694790209 8080147223803110835:98443016781:2277968335476:1073055522055 8384404835234666319:75852679010:27816591477257:14076866463265 2281918455347088168:10947573744:527114552626800:386791395239376 1647862383756265921:70516012907:5881118717439734:1497641971277933 4961143852090912825:91571979267:64563939257248929:37649487695443354 3150379280075691963:81531005589:706896678079544487:651736960807533939 8771196434480436274:64073526894:9729796270196778355:966459613664450776 6932398027368801061:24413305883:92646084199409303764:38479364161102806229 3295461156871183717:174393042670:580:289 9396727364371271028:207359589926:1535:1304 4511182356384549654:805751129804:30684:408 3298088091425594290:348548949249:524542:174908 2701893367452268016:101252503725:9599240:2595816 4794854035710759603:110199384481:31321290:7157733 4038798493004396621:682784354386:844553094:163578937 3936085210103145973:487329417315:6530534520:5573523157 8148791714065910878:486856027582:93666605542:25777218180 2706073336671758446:985556321224:140505212938:101191297494 6275049582353989667:375242565464:2235587874004:692428545589 2647354422478818911:535503151529:47136913731809:655737238333 1290956271440602686:542231920468:780438072863211:722734978987347 1448232778161197410:882764985248:5411691963658979:3426722136313569 1494510437416901473:476635199652:13774764336814357:9237703443833864 2519456851209502967:971228723873:574278875473719439:308894085266319841 1242219911993603868:431722433377:8354026364441941452:5369040652272505428 1907624258573334508:194432904794:67755752254032103979:43041847008786972488 5482326545946849924:3183960132040:225:126 6574000506864939136:4993936491114:8612:4452 8795595467963353140:8344612213879:96395:47450 8021208704369205079:4283699377442:487426:39811 4621027697284478815:1473170161271:3942402:340423 2788946014385010209:7632562358361:68259084:5639393 8262840254934035699:8432750147798:337494719:113636811 7989854145049460097:4140867378487:6098551704:3229394337 5244247473691114675:8957264495796:20755190080:7065579345 6107942515353696317:7588388940506:962569389462:3015552793 2462538046948107618:6843325644845:8824818383132:2443361453856 6516732026727925270:2948472581380:90854360407316:58706502363532 4498475169593140567:4620585156647:137383918003865:6636304126348 8498177346173925506:7464246016956:3905139808728897:3201097529639887 6928905576960163238:4831013821707:75284466039098722:6674179278628674 4782906293793406120:9258139047885:858337659968439543:287936396699361226 1877599950008277889:7765574539878:4556376116237591896:69044434768324977 3894828383783746250:3152364180032:47674737291426528078:8385302925222596182 4330853258799011311:97919317772490:996:49 3779819066125529347:97856866243208:4967:2133 3508266127185605023:14713305242787:48662:34845 5229151593167093620:60027661974608:929406:902500 2102996895465731292:12230160631483:2056596:833112 5387031188159895428:18344322649553:32417308:14642012 7672791210746351934:47521134867211:510346137:84421245 7261592535447440285:77125086408280:4271356888:1962371425 3829063088954428493:94309840184045:49068462142:44599995223 4224072368979531063:71607100502545:984574722738:125997155811 2932993608287243398:73060537718761:3995454351293:1716232402728 7686552888441532241:66473150814079:46338348295550:28404805253711 3943970780105342100:61333549224408:480626250794821:127259694639604 8131992782009048340:44962543190658:6819583760006325:6205835987025900 6347846327198658574:39956451167619:47345125964480236:36922529698388340 6913551970092429210:68584597986151:965889867561894263:106109898212981946 7402593392800321808:55918857913038:2862455209174162345:1662122816199403634 8434108366890548914:30721721317346:52382621119677162150:38658949672805194636 9869278521597009893:271834431350967:254:95 8646850444945516706:995602779793077:4144:672 6583198205199891522:758402040079056:10006:9640 1346430006298161432:727610249381497:225264:24048 5589186617721642117:975274907009195:3934986:1995663 7653894118801081903:125120299376991:59060586:5029393 2196349479719395613:818797742946538:291866394:245424649 6877191025908372286:689428563287109:6119720050:6061929916 9630815609431531132:475705392170827:86762996147:48430023795 2890298639403603398:857717376124735:930258256528:638000646992 6275947887781548709:124291054705103:7663384380136:4965204201637 7589743017945142524:359144937522687:81925056735300:29761009824024 7524500165894386161:584893499932287:500923191909364:470254055170593 6097645440812911115:166028525502558:8227074264014460:3155297419979185 7541857046671807242:570509336162826:27893545550752616:17567790213451304 7627368918535287068:192184645692381:647017668947779026:382836737739004784 1484973129068072819:795487904584791:3768599382797459631:2484440590355610476 5340827983773619473:375887542388471:44861347730912531043:39348477010527919026 6250665004507741321:3682186248044620:163:134 2417684301579606116:7843028405450869:4979:512 8980640134122132489:2878047961119112:36864:17217 7005879384668710852:1542674953747142:374035:44619 8198133367800258991:3467641444253916:4616107:1841943 2538484199967221289:6704153727561239:49775285:18459189 1659563357664784050:1662196145132502:455745075:435631800 5249547482149106232:4689418515169977:7905673800:7454776032 7339116667754158639:3779252285519305:27719934353:24801170048 4045117999556576066:2495719576242666:707017230622:369930847848 6870568177684255780:9569277129087499:1524162421294:265305458902 1898227512462913376:7829314309914163:62906510679826:1028127200546 3257313765198671245:2167601885814789:978978840317335:886164942932820 6045985697628819752:9119164804797861:5509647469567944:956083664391200 7196779112618560802:3866792818592953:71138033487654663:70183023905562041 9334640103274538803:7583698629301761:140281511719249760:18147484043654963 5679265938336120891:1702256839532817:6752691339085934334:4153408098864324183 9619079980489379522:4117464180791750:54519509689201481871:27340386017054833921 1541573363816404711:96930333690709583:306:67 7881541900328014235:20551034079522965:1021:369 7758146377178951277:25582982595848171:14134:4757 1831296567875464069:10636932956079599:427849:197035 8672472940363101102:71912619142403178:9250819:2030613 2821109065664085858:26858209627002665:92242118:83734988 6476356070167369105:14483296534317101:715230876:148816957 3918486552000878446:15204494648187996:1095650624:1062010624 1079148620491623218:45017716963046292:57734591156:10717117536 3557956240817386414:70774657395602950:824902649604:756178545904 1544307022341190076:54597505040765759:1320915961829:778442565052 1838322976200206586:68828246261707729:29138701877932:27994332323944 5888857433541972702:34137770932486070:710902154922988:161669655151320 1230715718552298403:70262874583828599:5146390331279202:3418352062273273 8899040684401706131:83735561520900325:91397677823351157:37809676204284505 6245997554607563817:78775111345144976:859087511418593661:149388979991446422 4696350985467203915:24674935519918903:9399874506780810455:1131438486195076675 8192555634092797278:76000209840024284:76214202827044654902:46379267839436633136 4302235499339815550:955919891602954244:899:546 2100922491761567206:473964024199246933:9628:9220 1272217213264553646:972331349798443936:66677:54536 8588739600539158167:971718737579666997:408040:9807 9694314115403031877:123589735100706338:8069844:4162981 3613592460157928297:751082553774580770:33225747:11544640 1596398175450718512:589750360791569013:962617130:862553522 6737843064071308066:276450389374623500:7955284001:5777926016 5750554504220037757:276512334283818076:73951537248:49800979729 9461040046431949585:449031524258887747:596780483222:538109585357 8696762123433751149:809359976370042946:6547605717276:1517179378653 3837812747429398576:571528687131956848:51856899239257:39378964417038 9444586223892779367:349164553777069239:346717825782625:77834779452178 7021688061465186156:719218964872495735:2597221581370797:864249253275222 1179997407108169235:641271635482262753:15659325852056138:13806347933754519 5628456319205951474:477921876448296142:578999408459263750:573853829798879926 1541235743226776749:701283308924866334:7217607967210330909:3384520601412343660 3516385019818051339:939573947998609932:62202639050607997399:24582757348327234650 4800331456668831771:7789717689527826746:165:126 1137409295368491489:8180611493312182402:1367:8 4557108751649769468:4097323190158223833:86322:26034 4938907989476608316:8982365260564936336:360819:46243 7174495563111271588:4201438428987439309:7752172:2133340 5045567970643489577:7577085538299921327:12329884:4183845 7760901662251084804:8649667779822807151:564145531:333474310 3813091936209156628:9288783898005442814:5386267424:3587356192 9583174067806269030:6621701799646232409:93161181993:77168479884 9815638076690872001:4843372175268595727:629763594724:482688116333 1258644532384764269:9182888212526358069:9794486607248:7747603863565 4357208002361121806:1860849301651656989:12751437607492:7706034694184 9565340385904202508:3603852910186570076:819090364580987:808474696057596 5284826937825219129:4863831472528313467:6916511713407071:2454531352982913 2295667908751844947:1225654552392782255:43766546121545116:24346785207867611 5168024120433378854:6927219670615217610:992984385623214134:746621278819469614 2612060438852919922:5232100452369179003:4801439037631298320:2048126913752983088 9959556244355698731:9849260241088014747:41498394749006241012:319854787859327343 1059112680146466458:68020374685742490243:243:44 7635300632215294076:70688492249263934691:5944:1704 9798440422214713997:55235337256747407589:89701:22139 4078737378799023468:81048384271201357169:593840:385328 4661488830088290380:23955349541977178316:4055597:1384839 9960393366878189157:61432045099155030550:25409357:23910697 2299405387006750130:67312813834448726782:216594830:181916690 4832284394397816618:50689994814340673982:7711829184:1690751040 2676297477691128644:46272565169487290409:82120607779:13286891134 4233052794794222345:95994971631159865348:829689067968:88518326305 3353808809808896482:27783604015771719022:8430550266269:3370785696441 6007496897573558085:97283547944034532429:84431060275855:69691295459895 9543469602715968914:34913138621742589492:187102574095330:65189817461706 9779529491576235537:44213100059280373381:2349067400037871:2092609669155144 1783012948880252532:55054578429106231241:96896723174461776:43353820924992816 4913730111806196332:33954834464798038151:382440810327634704:376430258612204000 2279380802584017655:82095125717884793442:8168143738413776319:5699747266160887018 5025118366701010064:70582767371494524492:51263939774256677187:19112048780370374287 65864431418972995174:971:568:128 82698521405620516641:353:4280:3201 79844575817340992050:850:58913:23312 64965887930726818027:528:473276:185277 39733794842728586983:154:4473441:99556 89301315104216236168:115:42417376:7747680 42834736712700123003:864:760958839:24328301 31883167269061357136:451:5077007751:2502502499 79624408258706745784:112:90376091276:68875567936 41030566386370471046:858:861176222908:391416137256 51264287013534980189:935:5667468440610:4594596520679 92648797961485187441:300:30069015972841:20283421250471 10634958179995944046:227:576319526573537:349750016172729 15325367274288433921:927:5438027503937804:5233968892819189 56478684411149301075:463:55431482067356593:44564661007237320 56562084972750784394:500:944653304890604844:821684185292165584 51036837178473024246:551:1106913181974450510:827013286925097486 53361372202120522021:549:36582866532275541580:6373600673638360881 35563137442717773294:3980:665:441 46705911286806786959:1445:3846:1127 53813814783322126933:1153:82713:38662 24923207619031127884:7854:751230:542296 14340194206598623749:1275:1080078:711939 63224293474733190126:8169:17336275:14108101 17671503300616016982:9712:622600002:215371638 99701380235565722430:9249:3615737358:3205681848 60004324028633332391:5639:29598018201:9364234607 48995185621226441495:8154:536059159004:267803362629 24327101125188825177:9722:3751942356115:704367586804 66135025703711735826:7251:60954897390294:3970577077506 66102914168936388898:8314:480993629944745:258417304576289 82489946239310702189:1040:2296836352078232:1736859958103577 76816375885052475103:6214:48190447886774179:11471460604571151 28254608506799306276:8737:839106338366109914:97157651531039682 40768786762990350442:6652:6195680877694129501:1235932115436298805 15551499703566742477:6662:60555979076229014788:29620497381385218609 84079535428361033963:16859:812:719 50306980545820232640:71497:8214:1686 17517549122335789353:91485:78969:56286 94857349295433167804:16437:391898:349270 29785681913539081849:19290:7085906:4187731 63770212276529314738:45863:28249230:1203502 32582184087691927374:13840:694759781:262442842 77978428949941721680:59099:1709258949:196787482 90376780484468773357:87981:78040679157:63614416123 30375911078399725133:98780:468972806779:116391644081 41512606874761846523:31685:1631793708602:1228202385157 12665663435053209974:85921:32997314983856:27177444725824 40799197550836852705:22014:311400126760273:133377577712205 43228304219500239534:57150:6962751165984690:3606311999430756 73352846950240165241:89162:46844023965003442:8205206462018801 47880731227576455816:68511:576601456933344719:217736099377982282 95075361254308149451:87429:9847025740061947822:2744823997478316237 34847231060027789460:91273:97483971208090766700:2460188342901381900 78244675107399589912:235785:968:120 40095527194366946442:262531:2206:1758 42207868551418416447:146408:23893:5935 10390846986665682569:398060:687896:301401 34391722668462394079:890815:2619020:1646339 17324493746960834653:499867:50149764:37765093 32206654342570506386:161093:100572136:34982528 40704952446480091635:555183:4211592889:1212587641 39896505442725714803:833401:23081975519:6261405671 42527450706934751276:922468:700786090630:577816329986 80830658068351406891:775940:6908501384054:2665330820793 51985149017655692722:373370:42491751421927:460034042400 57810247976929895311:940107:789986247852137:721697880287910 51762792001562520454:262887:2249725112720088:1108422994760128 66416163882521831178:705790:58392415475020308:50315779491959400 22308028863338605780:443231:846171756523399530:311674418434048720 12740290001822890416:686564:9621233480038378992:1671151925802218256 26556435516623322700:950899:16687737555272119074:10770482904997888132 30869221422121800534:7866989:100:64 10750764494246328078:6874690:9564:276 56918920972988273258:9074691:71651:40065 29833319293094599686:9011524:265906:193400 17089825587293356843:1081874:8611897:5604348 13849840902893902297:3986379:84386120:20906913 58111452789209643454:7262900:527287230:175882126 30643495685538329653:9132043:9690259008:6361140205 82667773785504695910:9846663:99582304702:32359222364 87790457711030361481:8460200:741932441491:503367924063 18653869562599779754:5818680:9856773187226:7549224586366 41732317058187382751:1648566:74388518438725:13119835832976 70645871145605724455:2151132:424741654723650:220329242818375 79579093977093272144:6042003:9943415886257657:707631612455809 32169564584362740804:5493486:46045589981576578:22185057565686938 43169513309202660389:5690193:273953633779328135:118002967287418499 51297546882150850322:2442911:4930726886583841009:4258123573843540940 79805486294268786452:1608482:61238805087756611826:32648554270272560764 91055466398790379022:70728066:437:248 17155369365032051186:31700743:3266:144 59301076852429368614:99462814:35354:808 87028196051560053283:29303896:979313:506559 32526858485928662877:64024824:6114201:1431234 86345911894450023142:21552378:53361541:34986876 51739728030086243151:47693735:675363445:603815436 98659797176437598197:77611770:8623134048:5842272505 10842400658725807949:95510868:61269302874:39702312781 13256446389841268093:80524592:984901282267:429921777441 30400637697005061160:19112939:7553649798609:6104897114770 84759007615678831937:75306943:37092174657984:8781918242369 85031921082508843780:95674393:710897698872204:47873315908168 46012081657774284520:50311126:4113707647428698:917213197484644 54197529003608253663:61547704:44552037820458485:5227955372182091 69842203393271307731:36067176:121248883371237750:32001734499517981 99021262078023840297:52395672:8321296457413424687:7300402520872578209 76847039330678455305:21090824:40223247165686116301:12154255615946862779 18554074581598151803:568985697:786:511 84485498026888133217:951811072:6817:3333 43583957018564298798:405665511:38407:17723 22195473545611278549:453782379:277546:61125 16613618701137070994:680271939:7397190:1677104 44033200479871103989:296605810:32503863:24857401 85359715578070107951:259172643:107995779:58442967 72663088286121864473:299160173:5259220790:4617743273 60437833370318390556:789542662:82021591862:58241254852 55828669803503116128:702698153:241596221458:156770020528 84704198774959423315:484535101:4570925267366:2213143625941 42537211014224429215:222032479:19050594266598:12363610719919 40015277977882172388:539756456:448298755460632:387107434861512 81044361763739462972:323143218:3313559559921316:1719622602214644 45127260592745175996:653229789:24003888386989558:2771496387658856 65160081566224001498:948745284:103506803538459693:85910995338499093 17746124867977423849:298158986:4214092889667116951:2159578328323836423 35409843007981811676:868605372:31985793798575463570:24688737115302003996 83597641919687997474:6774346314:345:141 82841938530552063205:1079985589:6681:5035 10631651286139099314:1081893301:49264:31456 20537649317563980465:4670313038:159198:10371 11883754796565647224:7934642395:5726771:82492 27906772043610536425:3195449085:16644722:3885869 91065151380683935047:3299833265:729858551:649201776 30940557763353756947:5853593738:4974566603:3801997118 50392716370050876872:3877359202:64604541620:29122645064 17254830954661565969:5825836350:242778188311:189652852512 14696075226810186051:7182019549:1159293520889:797632840700 95268543199461018989:5044472297:52516502963393:21427817784513 49760494662207142109:9875094206:630952352637836:184871314674325 19626262877019678788:2417070730:3307841169388423:1805870839832963 90749261168715531528:3009296190:28379507849375503:22722752753602253 77315821912794960276:8118729804:266665536318673378:127071481732711982 46335723135434268770:1422178342:8642717959625473945:3511624710347909740 46169675940362653340:2934488103:51205568526176718458:1449495669570463600 58571532123314344921:14515331847:887:758 57219782886266735100:26627193244:9582:5112 72366392018956136826:71077478231:96803:9718 48933379309480272205:61519681247:602076:371629 10152509274579913403:65065889735:3781399:679652 10768523365523514437:68994302831:22668180:16466453 99063736762078462456:66580434653:570024608:108616224 25160671911312709766:17648716873:8004885629:4303135792 81461528100385808914:33882391363:59855235555:27343639099 93884130312672821195:92027507758:942511959964:10333589969 61142953815889896355:21137156709:5009195329101:4586362654402 18600734864775460107:70366237401:92331846978773:4125081832895 89382774124976961259:42849308429:342545668081308:313407069526171 85222226601958688597:40016388827:6974905199151067:3680020864318550 48455132240344763252:15689713883:82466759928556839:26330689769058092 38675394750862675655:70537916124:645778715902626609:21370536046558756 40803890400713773119:99719114663:3261149545299587622:2210127233764762791 53801846326828279789:57464528614:54140728199667680371:4568723316320849660 34435353948989126267:437538670611:929:352 58485460597325143387:453445561323:5171:2330 43793655216968895165:579115863192:57330:12195 84435156811898725862:921943297886:186353:139537 38951100352479553204:883822407865:4668853:2365455 58211521102434373295:253354683774:46329629:18560676 64403504091027868249:783806731482:966525600:249075601 30968139097161377572:874072794230:2676425624:2141293592 34218047740083866970:410689502540:75864127555:74777579855 21715894513073451768:437793605405:497767837051:212901537137 65901400732914508181:833667398350:2793870887979:2485771795435 22529411787730922624:832384076786:94719762058182:14547839220442 25087332457470472879:295342695948:634040562280954:331877067181249 62604621306184630790:333490948726:3637280499966857:2580020321233571 99282125743710610928:766856009355:37200324918060695:24638692396931332 26662368455808839905:939184273507:265531256108972597:98065305802173085 30894376790507934463:824264198545:7873767928936187546:2186131094706012709 83283032685138518707:438048901070:94292330953074793666:40231280662498184077 27650709674716285279:4820624072548:786:193 17409430425647484280:2452850205066:3791:565 44641536841543150377:5459439489722:45700:41829 27970011626869519426:7486507043910:578390:366886 27184333691980090009:2333339929438:5751797:4072070 11148706802467748862:5538987698252:86708159:16380764 19772688621033283554:2928769909053:104902252:80783100 11387461020223759471:7663669571667:6897935705:1402778466 44764395193743930390:8948816923325:46696897001:40611219366 18781465160371186652:8792724444456:619438689931:63451025631 71570468501673772820:2354387523521:8334508372913:4471132460471 81902436170333786557:7564344303565:86904697219615:80276067103232 88282890787917755086:9963911063542:165906523858532:73933838724044 52334800666495758823:8309065973644:3080555932260095:1567522326420336 39518829325063149373:4471440825201:93726994425601651:9586985688430529 61037533714159370528:1777608835929:724326507607521470:477318105674026338 15011035413299232093:7343304434086:3810072818765663684:1057594363754188537 64053438283926371495:8310420360432:94644852778816138215:35914509431541627400 37647300686560337053:38760359755942:804:37 59372738150856306727:28014119640819:8403:1543 80319621635173034090:62636156691585:78658:23786 33642191307238809512:65473440420381:883592:469368 74554539143666041823:54268186336409:2736369:471962 39539425445349379599:36982722579758:80191963:38110528 47771561256040303428:76626034669777:925620050:956038 78425422688707523705:95482878299709:4599006017:2568247790 29740198075096654613:66764336952692:37752989815:12887221421 48970691109862127050:54282805661184:186761714367:79968436360 56255245650740820126:29397813088030:5500460630372:2434823257764 66648327235289047513:20568666229415:80015598035479:70830346590845 96390054667756173357:49419459098730:929765589908874:903959806273257 60863121570623272736:26598071371275:8612436690188373:7393246104898100 28413352594842048519:40900881034591:51043070316817068:7107416294437599 77239147104192299810:78139585134283:575263101445336099:12280119435662808 83184105639423877316:86206707482678:8092202917019447576:320447881724297392 96366139774177616163:31642376425843:34729381437976001548:16323428614440519147 92934650953872370952:540560847964699:473:12 72116972068499515622:195414676733474:3921:1801 42800522879630976494:598635795597201:22015:8504 53123331040951398347:469257636435619:356931:203429 55990138265953391796:299215841610823:5021483:2922346 49654724064502280810:138712623156282:42145851:14385859 95706866635647188033:590849719878796:934237786:529205607 29244336801197367206:795002718095291:9477420240:311979536 87787516403908696336:869165293125157:75911767444:54586673956 25860028306181397918:415620255776013:833563241185:222805525623 43400644357484194793:436828965629237:4375230359970:593407020803 66480539166385640850:385995707200084:54391982621323:24679082781855 78168145296438653423:548358267335621:908808662442849:696340769034278 70154676309775372291:553579160570698:9092350294552673:7099062119466555 64425169720234830120:682322222886496:81089631277240344:37983000211141104 24329158299547602157:808298373057181:674553832594138274:369265723868306805 95068953808330464765:997736373257323:3250262352883331098:2902562740966403187 78207530557496846398:461162755744120:56395000903385435027:15906275981474495321 35448230268438134209:1968748026486315:517:153 20106045396824485464:9452321161300310:8824:7160 30600823741647513694:5018226480922388:30709:30445 65036292016021911565:2034525276366352:787702:209771 81290158728532356387:9411788615236362:9002994:2115723 59520848260867694334:6022215668258023:13404110:2793424 99062904798434840792:8663327253467086:917241870:800197444 68514387957703547687:9874756916482503:6397803937:392882771 72934786772266145302:6893794217547331:72941647931:4614112557 20966663519081383231:3658035129599069:899853629472:15316728319 34693891578605427693:3580835880907604:3988807716789:883361041605 54463841402206743359:5854367683948517:18135862160663:5109614980543 90961562991925950615:9981519585748986:733487597505759:563872215922530 25636000578080676767:1387146389521851:8642956983837266:5434996572343823 52880471046803788126:1190439489728423:32517517720824933:1177709828924104 23408424867919882722:8532957311110287:397954542843200529:275531578478141193 21005315884540713856:7557856723024945:2543898903116072850:1341152686342212376 18467738824515672437:3222616195898062:70218337655811281075:51118092252837866394 58035825058327530219:95377635599276363:915:324 35807177953785687900:91870333210208711:2845:795 12018804217480669541:63818331990803230:14053:10377 16068238307271663913:52427009611798209:745944:109033 35784066082787362901:71375358390051610:3392049:1683121 12360808570534454670:97483047610406456:60059848:45987000 60808832603862494835:53695972436464826:773975966:83111831 96476174801015005799:82109370735344082:9344258343:5751967915 92641792366623771881:58087224371827736:91219451230:48775863851 40492208443791078926:26637737647822629:126023986500:75208499576 69543899348691144784:45862384682686220:1427319053153:168594104736 92718989795653851839:30466677303373425:37980632678969:17202979884913 92913058421824756953:54713039116396151:369241386669808:901789623625 68864125084526540279:81498677439535747:9568410988542297:6349728475703810 70574248650924567501:27291041594041761:24377064850307359:21242383395389284 43412050568872718001:63449121105588784:334043291219303376:319134630480844833 57625521987021136085:26362544569629836:9370864809451192639:5709161102972729159 62109142266293348006:23125275010196862:97979853876337729325:77599350542708604761 21756330277361432315:728056306112694059:847:677 18049565375429092301:125651014477642356:9519:5920 88865743919074303862:569473938037956867:46466:44038 37555362738691326953:665648844480640042:716227:454882 79678883096256126364:907322319077229106:9510402:512644 94419004303685021769:626137241021917116:53614031:49319524 35074417107760423432:245789322933976657:190351707:32585410 57436581953712619941:826282862236139755:2284184005:1071589281 40561240587356731587:462662648990339620:14507086233:7029499749 88591835926864135962:886753307979721593:427474367588:327164431808 49466467990409799603:227897200653339733:2056700316721:830773922943 70183245130783006543:891550516147578488:59231706306530:52262304512141 94646759338808421487:758911421608469472:284344244327443:25644969644515 44156624728863403424:770567608329827374:8190292478430041:3632159209189529 77431941070592846743:605957418252705227:98126079062007817:3730501067874568 65346167010913412721:307989154368609280:957777588098749719:1217155472141904 70764579132112134238:683737260357829009:3599226725010195501:3540081198610581610 77338981576851943200:314597721557702559:84370975291476895505:70537815378701503810 41177136426005285473:2009466725178564925:185:63 25436154200142292505:1731902149234835702:5446:2165 90160687810880704726:6828925046829739890:39425:16651 34466282718794966797:8522923899597749504:788910:594121 30377656521826837744:1843971653942563668:4079145:3493876 23563697794968420053:2705754592207082488:20472565:14261921 53098770533548043232:3898419893786332916:429586828:312426768 86605451391419971238:9540694054908016899:2246136315:192739787 89817433928787845543:5161942992857796539:23701092856:7144060583 59790830786820642932:3098759795726654436:874518918772:740199819368 83980296452800845748:7609934682324514319:3684714595620:1829688516892 86898332538440568009:9461472994492407176:73254088463115:48433029999951 21422691975353695773:9805226473676851380:237924267916760:234363447739121 99767410208798389203:3140166534804254777:1724728029904565:39821825647463 23685040292879279419:5423061147445891497:91256984123439005:71854831408293699 94688502079766276168:6634166558260701005:365337963402374335:195053478553783443 95771332036181120571:1470917783908372739:5378735424812724548:4104306209134008731 17774919347051041152:5776809660449777254:10965096108924710008:7491690706985214448 41536510328622466177:45681640082610915680:868:1 33343527320376622065:93137121925888855334:6540:6525 41240692293950496126:87271437188188661862:24744:21336 51782676793739214115:68495728107935144298:792939:578971 87275767075699199287:77267803988188147735:4124265:2324308 52113046105483846107:85527869007334194243:16863155:11974988 19216474670948757129:57965027929565616945:246492179:184722864 78394576971904566143:63737201953298609451:7181843725:6170758707 59305297107487598193:82721740200607815468:55521741370:10598753971 10268780385408370889:32670539752129851546:968764198097:458216628039 84333951308891870085:23859149060996856981:7469114232904:5015415237229 49236912403092124111:49458438278791798759:91989760255990:62910586266971 84033905963355090230:13905709167001755050:152424138080611:66762726426453 73712423879622309559:36039721197251238593:2630097360318446:316946572999775 77518205804300702821:45170044040253777975:57073470813250435:51577698330410496 38147495734780032312:80379124979800906763:659947557722138146:309793610365354326 53070033933989101713:20945248216590437655:4121333018564629659:1759240354342798590 99876013115789323001:84285928869856133933:63950820532341962147:42228132008199549953 Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_modpow.t0000644403072340010010000001152314536617520024112 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 58609; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_modpow'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, $m, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$m = $LIB->_new("$in2"); | . qq|\@got = $LIB->_modpow(\$x, \$y, \$m);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_modpow() in list context: $test", sub { plan tests => 12; cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); isnt(refaddr($got[0]), refaddr($m), "'$test' output arg is not the third input arg") } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); is(ref($m), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($m), $in2, "'$test' third input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, $m, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$m = $LIB->_new("$in2"); | . qq|\$got = $LIB->_modpow(\$x, \$y, \$m);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_modpow() in scalar context: $test", sub { plan tests => 11; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 2 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); isnt(refaddr($got), refaddr($m), "'$test' output arg is not the third input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); is(ref($m), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($m), $in2, "'$test' third input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_rsft.dat0000644403072340010010000036311414505066136024073 0ustar OSPJADomain Users459:0:2:459 459:0:3:459 459:0:4:459 459:0:5:459 459:0:6:459 459:0:7:459 459:0:8:459 459:0:9:459 459:0:10:459 459:0:11:459 459:0:12:459 459:0:13:459 459:0:14:459 459:0:15:459 459:0:16:459 459:0:17:459 459:0:18:459 459:0:19:459 459:0:20:459 459:1:2:229 459:1:3:153 459:1:4:114 459:1:5:91 459:1:6:76 459:1:7:65 459:1:8:57 459:1:9:51 459:1:10:45 459:1:11:41 459:1:12:38 459:1:13:35 459:1:14:32 459:1:15:30 459:1:16:28 459:1:17:27 459:1:18:25 459:1:19:24 459:1:20:22 459:2:2:114 459:2:3:51 459:2:4:28 459:2:5:18 459:2:6:12 459:2:7:9 459:2:8:7 459:2:9:5 459:2:10:4 459:2:11:3 459:2:12:3 459:2:13:2 459:2:14:2 459:2:15:2 459:2:16:1 459:2:17:1 459:2:18:1 459:2:19:1 459:2:20:1 459:3:2:57 459:3:3:17 459:3:4:7 459:3:5:3 459:3:6:2 459:3:7:1 459:3:8:0 459:3:9:0 459:4:2:28 459:4:3:5 459:4:4:1 459:4:5:0 459:4:6:0 459:5:2:14 459:5:3:1 459:5:4:0 459:5:5:0 459:6:2:7 459:6:3:0 459:6:4:0 459:7:2:3 459:7:3:0 459:7:4:0 459:8:2:1 459:8:3:0 459:8:4:0 459:9:2:0 459:9:3:0 459:10:2:0 459:10:3:0 459:11:2:0 459:11:3:0 459:12:2:0 459:12:3:0 459:13:2:0 459:13:3:0 459:14:2:0 459:14:3:0 459:15:2:0 459:15:3:0 459:16:2:0 459:16:3:0 459:17:2:0 459:17:3:0 459:18:2:0 459:18:3:0 459:19:2:0 459:19:3:0 459:20:2:0 459:20:3:0 4651:0:2:4651 4651:0:3:4651 4651:0:4:4651 4651:0:5:4651 4651:0:6:4651 4651:0:7:4651 4651:0:8:4651 4651:0:9:4651 4651:0:10:4651 4651:0:11:4651 4651:0:12:4651 4651:0:13:4651 4651:0:14:4651 4651:0:15:4651 4651:0:16:4651 4651:0:17:4651 4651:0:18:4651 4651:0:19:4651 4651:0:20:4651 4651:1:2:2325 4651:1:3:1550 4651:1:4:1162 4651:1:5:930 4651:1:6:775 4651:1:7:664 4651:1:8:581 4651:1:9:516 4651:1:10:465 4651:1:11:422 4651:1:12:387 4651:1:13:357 4651:1:14:332 4651:1:15:310 4651:1:16:290 4651:1:17:273 4651:1:18:258 4651:1:19:244 4651:1:20:232 4651:2:2:1162 4651:2:3:516 4651:2:4:290 4651:2:5:186 4651:2:6:129 4651:2:7:94 4651:2:8:72 4651:2:9:57 4651:2:10:46 4651:2:11:38 4651:2:12:32 4651:2:13:27 4651:2:14:23 4651:2:15:20 4651:2:16:18 4651:2:17:16 4651:2:18:14 4651:2:19:12 4651:2:20:11 4651:3:2:581 4651:3:3:172 4651:3:4:72 4651:3:5:37 4651:3:6:21 4651:3:7:13 4651:3:8:9 4651:3:9:6 4651:3:10:4 4651:3:11:3 4651:3:12:2 4651:3:13:2 4651:3:14:1 4651:3:15:1 4651:3:16:1 4651:3:17:0 4651:3:18:0 4651:4:2:290 4651:4:3:57 4651:4:4:18 4651:4:5:7 4651:4:6:3 4651:4:7:1 4651:4:8:1 4651:4:9:0 4651:4:10:0 4651:5:2:145 4651:5:3:19 4651:5:4:4 4651:5:5:1 4651:5:6:0 4651:5:7:0 4651:6:2:72 4651:6:3:6 4651:6:4:1 4651:6:5:0 4651:6:6:0 4651:7:2:36 4651:7:3:2 4651:7:4:0 4651:7:5:0 4651:8:2:18 4651:8:3:0 4651:8:4:0 4651:9:2:9 4651:9:3:0 4651:9:4:0 4651:10:2:4 4651:10:3:0 4651:10:4:0 4651:11:2:2 4651:11:3:0 4651:11:4:0 4651:12:2:1 4651:12:3:0 4651:12:4:0 4651:13:2:0 4651:13:3:0 4651:14:2:0 4651:14:3:0 4651:15:2:0 4651:15:3:0 4651:16:2:0 4651:16:3:0 4651:17:2:0 4651:17:3:0 4651:18:2:0 4651:18:3:0 4651:19:2:0 4651:19:3:0 4651:20:2:0 4651:20:3:0 93291:0:2:93291 93291:0:3:93291 93291:0:4:93291 93291:0:5:93291 93291:0:6:93291 93291:0:7:93291 93291:0:8:93291 93291:0:9:93291 93291:0:10:93291 93291:0:11:93291 93291:0:12:93291 93291:0:13:93291 93291:0:14:93291 93291:0:15:93291 93291:0:16:93291 93291:0:17:93291 93291:0:18:93291 93291:0:19:93291 93291:0:20:93291 93291:1:2:46645 93291:1:3:31097 93291:1:4:23322 93291:1:5:18658 93291:1:6:15548 93291:1:7:13327 93291:1:8:11661 93291:1:9:10365 93291:1:10:9329 93291:1:11:8481 93291:1:12:7774 93291:1:13:7176 93291:1:14:6663 93291:1:15:6219 93291:1:16:5830 93291:1:17:5487 93291:1:18:5182 93291:1:19:4910 93291:1:20:4664 93291:2:2:23322 93291:2:3:10365 93291:2:4:5830 93291:2:5:3731 93291:2:6:2591 93291:2:7:1903 93291:2:8:1457 93291:2:9:1151 93291:2:10:932 93291:2:11:771 93291:2:12:647 93291:2:13:552 93291:2:14:475 93291:2:15:414 93291:2:16:364 93291:2:17:322 93291:2:18:287 93291:2:19:258 93291:2:20:233 93291:3:2:11661 93291:3:3:3455 93291:3:4:1457 93291:3:5:746 93291:3:6:431 93291:3:7:271 93291:3:8:182 93291:3:9:127 93291:3:10:93 93291:3:11:70 93291:3:12:53 93291:3:13:42 93291:3:14:33 93291:3:15:27 93291:3:16:22 93291:3:17:18 93291:3:18:15 93291:3:19:13 93291:3:20:11 93291:4:2:5830 93291:4:3:1151 93291:4:4:364 93291:4:5:149 93291:4:6:71 93291:4:7:38 93291:4:8:22 93291:4:9:14 93291:4:10:9 93291:4:11:6 93291:4:12:4 93291:4:13:3 93291:4:14:2 93291:4:15:1 93291:4:16:1 93291:4:17:1 93291:4:18:0 93291:4:19:0 93291:5:2:2915 93291:5:3:383 93291:5:4:91 93291:5:5:29 93291:5:6:11 93291:5:7:5 93291:5:8:2 93291:5:9:1 93291:5:10:0 93291:5:11:0 93291:6:2:1457 93291:6:3:127 93291:6:4:22 93291:6:5:5 93291:6:6:1 93291:6:7:0 93291:6:8:0 93291:7:2:728 93291:7:3:42 93291:7:4:5 93291:7:5:1 93291:7:6:0 93291:7:7:0 93291:8:2:364 93291:8:3:14 93291:8:4:1 93291:8:5:0 93291:8:6:0 93291:9:2:182 93291:9:3:4 93291:9:4:0 93291:9:5:0 93291:10:2:91 93291:10:3:1 93291:10:4:0 93291:10:5:0 93291:11:2:45 93291:11:3:0 93291:11:4:0 93291:12:2:22 93291:12:3:0 93291:12:4:0 93291:13:2:11 93291:13:3:0 93291:13:4:0 93291:14:2:5 93291:14:3:0 93291:14:4:0 93291:15:2:2 93291:15:3:0 93291:15:4:0 93291:16:2:1 93291:16:3:0 93291:16:4:0 93291:17:2:0 93291:17:3:0 93291:18:2:0 93291:18:3:0 93291:19:2:0 93291:19:3:0 93291:20:2:0 93291:20:3:0 297703:0:2:297703 297703:0:3:297703 297703:0:4:297703 297703:0:5:297703 297703:0:6:297703 297703:0:7:297703 297703:0:8:297703 297703:0:9:297703 297703:0:10:297703 297703:0:11:297703 297703:0:12:297703 297703:0:13:297703 297703:0:14:297703 297703:0:15:297703 297703:0:16:297703 297703:0:17:297703 297703:0:18:297703 297703:0:19:297703 297703:0:20:297703 297703:1:2:148851 297703:1:3:99234 297703:1:4:74425 297703:1:5:59540 297703:1:6:49617 297703:1:7:42529 297703:1:8:37212 297703:1:9:33078 297703:1:10:29770 297703:1:11:27063 297703:1:12:24808 297703:1:13:22900 297703:1:14:21264 297703:1:15:19846 297703:1:16:18606 297703:1:17:17511 297703:1:18:16539 297703:1:19:15668 297703:1:20:14885 297703:2:2:74425 297703:2:3:33078 297703:2:4:18606 297703:2:5:11908 297703:2:6:8269 297703:2:7:6075 297703:2:8:4651 297703:2:9:3675 297703:2:10:2977 297703:2:11:2460 297703:2:12:2067 297703:2:13:1761 297703:2:14:1518 297703:2:15:1323 297703:2:16:1162 297703:2:17:1030 297703:2:18:918 297703:2:19:824 297703:2:20:744 297703:3:2:37212 297703:3:3:11026 297703:3:4:4651 297703:3:5:2381 297703:3:6:1378 297703:3:7:867 297703:3:8:581 297703:3:9:408 297703:3:10:297 297703:3:11:223 297703:3:12:172 297703:3:13:135 297703:3:14:108 297703:3:15:88 297703:3:16:72 297703:3:17:60 297703:3:18:51 297703:3:19:43 297703:3:20:37 297703:4:2:18606 297703:4:3:3675 297703:4:4:1162 297703:4:5:476 297703:4:6:229 297703:4:7:123 297703:4:8:72 297703:4:9:45 297703:4:10:29 297703:4:11:20 297703:4:12:14 297703:4:13:10 297703:4:14:7 297703:4:15:5 297703:4:16:4 297703:4:17:3 297703:4:18:2 297703:4:19:2 297703:4:20:1 297703:5:2:9303 297703:5:3:1225 297703:5:4:290 297703:5:5:95 297703:5:6:38 297703:5:7:17 297703:5:8:9 297703:5:9:5 297703:5:10:2 297703:5:11:1 297703:5:12:1 297703:5:13:0 297703:5:14:0 297703:6:2:4651 297703:6:3:408 297703:6:4:72 297703:6:5:19 297703:6:6:6 297703:6:7:2 297703:6:8:1 297703:6:9:0 297703:6:10:0 297703:7:2:2325 297703:7:3:136 297703:7:4:18 297703:7:5:3 297703:7:6:1 297703:7:7:0 297703:7:8:0 297703:8:2:1162 297703:8:3:45 297703:8:4:4 297703:8:5:0 297703:8:6:0 297703:9:2:581 297703:9:3:15 297703:9:4:1 297703:9:5:0 297703:9:6:0 297703:10:2:290 297703:10:3:5 297703:10:4:0 297703:10:5:0 297703:11:2:145 297703:11:3:1 297703:11:4:0 297703:11:5:0 297703:12:2:72 297703:12:3:0 297703:12:4:0 297703:13:2:36 297703:13:3:0 297703:13:4:0 297703:14:2:18 297703:14:3:0 297703:14:4:0 297703:15:2:9 297703:15:3:0 297703:15:4:0 297703:16:2:4 297703:16:3:0 297703:16:4:0 297703:17:2:2 297703:17:3:0 297703:17:4:0 297703:18:2:1 297703:18:3:0 297703:18:4:0 297703:19:2:0 297703:19:3:0 297703:20:2:0 297703:20:3:0 4726068:0:2:4726068 4726068:0:3:4726068 4726068:0:4:4726068 4726068:0:5:4726068 4726068:0:6:4726068 4726068:0:7:4726068 4726068:0:8:4726068 4726068:0:9:4726068 4726068:0:10:4726068 4726068:0:11:4726068 4726068:0:12:4726068 4726068:0:13:4726068 4726068:0:14:4726068 4726068:0:15:4726068 4726068:0:16:4726068 4726068:0:17:4726068 4726068:0:18:4726068 4726068:0:19:4726068 4726068:0:20:4726068 4726068:1:2:2363034 4726068:1:3:1575356 4726068:1:4:1181517 4726068:1:5:945213 4726068:1:6:787678 4726068:1:7:675152 4726068:1:8:590758 4726068:1:9:525118 4726068:1:10:472606 4726068:1:11:429642 4726068:1:12:393839 4726068:1:13:363543 4726068:1:14:337576 4726068:1:15:315071 4726068:1:16:295379 4726068:1:17:278004 4726068:1:18:262559 4726068:1:19:248740 4726068:1:20:236303 4726068:2:2:1181517 4726068:2:3:525118 4726068:2:4:295379 4726068:2:5:189042 4726068:2:6:131279 4726068:2:7:96450 4726068:2:8:73844 4726068:2:9:58346 4726068:2:10:47260 4726068:2:11:39058 4726068:2:12:32819 4726068:2:13:27964 4726068:2:14:24112 4726068:2:15:21004 4726068:2:16:18461 4726068:2:17:16353 4726068:2:18:14586 4726068:2:19:13091 4726068:2:20:11815 4726068:3:2:590758 4726068:3:3:175039 4726068:3:4:73844 4726068:3:5:37808 4726068:3:6:21879 4726068:3:7:13778 4726068:3:8:9230 4726068:3:9:6482 4726068:3:10:4726 4726068:3:11:3550 4726068:3:12:2734 4726068:3:13:2151 4726068:3:14:1722 4726068:3:15:1400 4726068:3:16:1153 4726068:3:17:961 4726068:3:18:810 4726068:3:19:689 4726068:3:20:590 4726068:4:2:295379 4726068:4:3:58346 4726068:4:4:18461 4726068:4:5:7561 4726068:4:6:3646 4726068:4:7:1968 4726068:4:8:1153 4726068:4:9:720 4726068:4:10:472 4726068:4:11:322 4726068:4:12:227 4726068:4:13:165 4726068:4:14:123 4726068:4:15:93 4726068:4:16:72 4726068:4:17:56 4726068:4:18:45 4726068:4:19:36 4726068:4:20:29 4726068:5:2:147689 4726068:5:3:19448 4726068:5:4:4615 4726068:5:5:1512 4726068:5:6:607 4726068:5:7:281 4726068:5:8:144 4726068:5:9:80 4726068:5:10:47 4726068:5:11:29 4726068:5:12:18 4726068:5:13:12 4726068:5:14:8 4726068:5:15:6 4726068:5:16:4 4726068:5:17:3 4726068:5:18:2 4726068:5:19:1 4726068:5:20:1 4726068:6:2:73844 4726068:6:3:6482 4726068:6:4:1153 4726068:6:5:302 4726068:6:6:101 4726068:6:7:40 4726068:6:8:18 4726068:6:9:8 4726068:6:10:4 4726068:6:11:2 4726068:6:12:1 4726068:6:13:0 4726068:6:14:0 4726068:7:2:36922 4726068:7:3:2160 4726068:7:4:288 4726068:7:5:60 4726068:7:6:16 4726068:7:7:5 4726068:7:8:2 4726068:7:9:0 4726068:7:10:0 4726068:8:2:18461 4726068:8:3:720 4726068:8:4:72 4726068:8:5:12 4726068:8:6:2 4726068:8:7:0 4726068:8:8:0 4726068:9:2:9230 4726068:9:3:240 4726068:9:4:18 4726068:9:5:2 4726068:9:6:0 4726068:9:7:0 4726068:10:2:4615 4726068:10:3:80 4726068:10:4:4 4726068:10:5:0 4726068:10:6:0 4726068:11:2:2307 4726068:11:3:26 4726068:11:4:1 4726068:11:5:0 4726068:11:6:0 4726068:12:2:1153 4726068:12:3:8 4726068:12:4:0 4726068:12:5:0 4726068:13:2:576 4726068:13:3:2 4726068:13:4:0 4726068:13:5:0 4726068:14:2:288 4726068:14:3:0 4726068:14:4:0 4726068:15:2:144 4726068:15:3:0 4726068:15:4:0 4726068:16:2:72 4726068:16:3:0 4726068:16:4:0 4726068:17:2:36 4726068:17:3:0 4726068:17:4:0 4726068:18:2:18 4726068:18:3:0 4726068:18:4:0 4726068:19:2:9 4726068:19:3:0 4726068:19:4:0 4726068:20:2:4 4726068:20:3:0 4726068:20:4:0 21371100:0:2:21371100 21371100:0:3:21371100 21371100:0:4:21371100 21371100:0:5:21371100 21371100:0:6:21371100 21371100:0:7:21371100 21371100:0:8:21371100 21371100:0:9:21371100 21371100:0:10:21371100 21371100:0:11:21371100 21371100:0:12:21371100 21371100:0:13:21371100 21371100:0:14:21371100 21371100:0:15:21371100 21371100:0:16:21371100 21371100:0:17:21371100 21371100:0:18:21371100 21371100:0:19:21371100 21371100:0:20:21371100 21371100:1:2:10685550 21371100:1:3:7123700 21371100:1:4:5342775 21371100:1:5:4274220 21371100:1:6:3561850 21371100:1:7:3053014 21371100:1:8:2671387 21371100:1:9:2374566 21371100:1:10:2137110 21371100:1:11:1942827 21371100:1:12:1780925 21371100:1:13:1643930 21371100:1:14:1526507 21371100:1:15:1424740 21371100:1:16:1335693 21371100:1:17:1257123 21371100:1:18:1187283 21371100:1:19:1124794 21371100:1:20:1068555 21371100:2:2:5342775 21371100:2:3:2374566 21371100:2:4:1335693 21371100:2:5:854844 21371100:2:6:593641 21371100:2:7:436144 21371100:2:8:333923 21371100:2:9:263840 21371100:2:10:213711 21371100:2:11:176620 21371100:2:12:148410 21371100:2:13:126456 21371100:2:14:109036 21371100:2:15:94982 21371100:2:16:83480 21371100:2:17:73948 21371100:2:18:65960 21371100:2:19:59199 21371100:2:20:53427 21371100:3:2:2671387 21371100:3:3:791522 21371100:3:4:333923 21371100:3:5:170968 21371100:3:6:98940 21371100:3:7:62306 21371100:3:8:41740 21371100:3:9:29315 21371100:3:10:21371 21371100:3:11:16056 21371100:3:12:12367 21371100:3:13:9727 21371100:3:14:7788 21371100:3:15:6332 21371100:3:16:5217 21371100:3:17:4349 21371100:3:18:3664 21371100:3:19:3115 21371100:3:20:2671 21371100:4:2:1335693 21371100:4:3:263840 21371100:4:4:83480 21371100:4:5:34193 21371100:4:6:16490 21371100:4:7:8900 21371100:4:8:5217 21371100:4:9:3257 21371100:4:10:2137 21371100:4:11:1459 21371100:4:12:1030 21371100:4:13:748 21371100:4:14:556 21371100:4:15:422 21371100:4:16:326 21371100:4:17:255 21371100:4:18:203 21371100:4:19:163 21371100:4:20:133 21371100:5:2:667846 21371100:5:3:87946 21371100:5:4:20870 21371100:5:5:6838 21371100:5:6:2748 21371100:5:7:1271 21371100:5:8:652 21371100:5:9:361 21371100:5:10:213 21371100:5:11:132 21371100:5:12:85 21371100:5:13:57 21371100:5:14:39 21371100:5:15:28 21371100:5:16:20 21371100:5:17:15 21371100:5:18:11 21371100:5:19:8 21371100:5:20:6 21371100:6:2:333923 21371100:6:3:29315 21371100:6:4:5217 21371100:6:5:1367 21371100:6:6:458 21371100:6:7:181 21371100:6:8:81 21371100:6:9:40 21371100:6:10:21 21371100:6:11:12 21371100:6:12:7 21371100:6:13:4 21371100:6:14:2 21371100:6:15:1 21371100:6:16:1 21371100:6:17:0 21371100:6:18:0 21371100:7:2:166961 21371100:7:3:9771 21371100:7:4:1304 21371100:7:5:273 21371100:7:6:76 21371100:7:7:25 21371100:7:8:10 21371100:7:9:4 21371100:7:10:2 21371100:7:11:1 21371100:7:12:0 21371100:7:13:0 21371100:8:2:83480 21371100:8:3:3257 21371100:8:4:326 21371100:8:5:54 21371100:8:6:12 21371100:8:7:3 21371100:8:8:1 21371100:8:9:0 21371100:8:10:0 21371100:9:2:41740 21371100:9:3:1085 21371100:9:4:81 21371100:9:5:10 21371100:9:6:2 21371100:9:7:0 21371100:9:8:0 21371100:10:2:20870 21371100:10:3:361 21371100:10:4:20 21371100:10:5:2 21371100:10:6:0 21371100:10:7:0 21371100:11:2:10435 21371100:11:3:120 21371100:11:4:5 21371100:11:5:0 21371100:11:6:0 21371100:12:2:5217 21371100:12:3:40 21371100:12:4:1 21371100:12:5:0 21371100:12:6:0 21371100:13:2:2608 21371100:13:3:13 21371100:13:4:0 21371100:13:5:0 21371100:14:2:1304 21371100:14:3:4 21371100:14:4:0 21371100:14:5:0 21371100:15:2:652 21371100:15:3:1 21371100:15:4:0 21371100:15:5:0 21371100:16:2:326 21371100:16:3:0 21371100:16:4:0 21371100:17:2:163 21371100:17:3:0 21371100:17:4:0 21371100:18:2:81 21371100:18:3:0 21371100:18:4:0 21371100:19:2:40 21371100:19:3:0 21371100:19:4:0 21371100:20:2:20 21371100:20:3:0 21371100:20:4:0 315184996:0:2:315184996 315184996:0:3:315184996 315184996:0:4:315184996 315184996:0:5:315184996 315184996:0:6:315184996 315184996:0:7:315184996 315184996:0:8:315184996 315184996:0:9:315184996 315184996:0:10:315184996 315184996:0:11:315184996 315184996:0:12:315184996 315184996:0:13:315184996 315184996:0:14:315184996 315184996:0:15:315184996 315184996:0:16:315184996 315184996:0:17:315184996 315184996:0:18:315184996 315184996:0:19:315184996 315184996:0:20:315184996 315184996:1:2:157592498 315184996:1:3:105061665 315184996:1:4:78796249 315184996:1:5:63036999 315184996:1:6:52530832 315184996:1:7:45026428 315184996:1:8:39398124 315184996:1:9:35020555 315184996:1:10:31518499 315184996:1:11:28653181 315184996:1:12:26265416 315184996:1:13:24244999 315184996:1:14:22513214 315184996:1:15:21012333 315184996:1:16:19699062 315184996:1:17:18540293 315184996:1:18:17510277 315184996:1:19:16588684 315184996:1:20:15759249 315184996:2:2:78796249 315184996:2:3:35020555 315184996:2:4:19699062 315184996:2:5:12607399 315184996:2:6:8755138 315184996:2:7:6432346 315184996:2:8:4924765 315184996:2:9:3891172 315184996:2:10:3151849 315184996:2:11:2604834 315184996:2:12:2188784 315184996:2:13:1864999 315184996:2:14:1608086 315184996:2:15:1400822 315184996:2:16:1231191 315184996:2:17:1090605 315184996:2:18:972793 315184996:2:19:873088 315184996:2:20:787962 315184996:3:2:39398124 315184996:3:3:11673518 315184996:3:4:4924765 315184996:3:5:2521479 315184996:3:6:1459189 315184996:3:7:918906 315184996:3:8:615595 315184996:3:9:432352 315184996:3:10:315184 315184996:3:11:236803 315184996:3:12:182398 315184996:3:13:143461 315184996:3:14:114863 315184996:3:15:93388 315184996:3:16:76949 315184996:3:17:64153 315184996:3:18:54044 315184996:3:19:45952 315184996:3:20:39398 315184996:4:2:19699062 315184996:4:3:3891172 315184996:4:4:1231191 315184996:4:5:504295 315184996:4:6:243198 315184996:4:7:131272 315184996:4:8:76949 315184996:4:9:48039 315184996:4:10:31518 315184996:4:11:21527 315184996:4:12:15199 315184996:4:13:11035 315184996:4:14:8204 315184996:4:15:6225 315184996:4:16:4809 315184996:4:17:3773 315184996:4:18:3002 315184996:4:19:2418 315184996:4:20:1969 315184996:5:2:9849531 315184996:5:3:1297057 315184996:5:4:307797 315184996:5:5:100859 315184996:5:6:40533 315184996:5:7:18753 315184996:5:8:9618 315184996:5:9:5337 315184996:5:10:3151 315184996:5:11:1957 315184996:5:12:1266 315184996:5:13:848 315184996:5:14:586 315184996:5:15:415 315184996:5:16:300 315184996:5:17:221 315184996:5:18:166 315184996:5:19:127 315184996:5:20:98 315184996:6:2:4924765 315184996:6:3:432352 315184996:6:4:76949 315184996:6:5:20171 315184996:6:6:6755 315184996:6:7:2679 315184996:6:8:1202 315184996:6:9:593 315184996:6:10:315 315184996:6:11:177 315184996:6:12:105 315184996:6:13:65 315184996:6:14:41 315184996:6:15:27 315184996:6:16:18 315184996:6:17:13 315184996:6:18:9 315184996:6:19:6 315184996:6:20:4 315184996:7:2:2462382 315184996:7:3:144117 315184996:7:4:19237 315184996:7:5:4034 315184996:7:6:1125 315184996:7:7:382 315184996:7:8:150 315184996:7:9:65 315184996:7:10:31 315184996:7:11:16 315184996:7:12:8 315184996:7:13:5 315184996:7:14:2 315184996:7:15:1 315184996:7:16:1 315184996:7:17:0 315184996:7:18:0 315184996:8:2:1231191 315184996:8:3:48039 315184996:8:4:4809 315184996:8:5:806 315184996:8:6:187 315184996:8:7:54 315184996:8:8:18 315184996:8:9:7 315184996:8:10:3 315184996:8:11:1 315184996:8:12:0 315184996:8:13:0 315184996:9:2:615595 315184996:9:3:16013 315184996:9:4:1202 315184996:9:5:161 315184996:9:6:31 315184996:9:7:7 315184996:9:8:2 315184996:9:9:0 315184996:9:10:0 315184996:10:2:307797 315184996:10:3:5337 315184996:10:4:300 315184996:10:5:32 315184996:10:6:5 315184996:10:7:1 315184996:10:8:0 315184996:10:9:0 315184996:11:2:153898 315184996:11:3:1779 315184996:11:4:75 315184996:11:5:6 315184996:11:6:0 315184996:11:7:0 315184996:12:2:76949 315184996:12:3:593 315184996:12:4:18 315184996:12:5:1 315184996:12:6:0 315184996:12:7:0 315184996:13:2:38474 315184996:13:3:197 315184996:13:4:4 315184996:13:5:0 315184996:13:6:0 315184996:14:2:19237 315184996:14:3:65 315184996:14:4:1 315184996:14:5:0 315184996:14:6:0 315184996:15:2:9618 315184996:15:3:21 315184996:15:4:0 315184996:15:5:0 315184996:16:2:4809 315184996:16:3:7 315184996:16:4:0 315184996:16:5:0 315184996:17:2:2404 315184996:17:3:2 315184996:17:4:0 315184996:17:5:0 315184996:18:2:1202 315184996:18:3:0 315184996:18:4:0 315184996:19:2:601 315184996:19:3:0 315184996:19:4:0 315184996:20:2:300 315184996:20:3:0 315184996:20:4:0 1423539905:0:2:1423539905 1423539905:0:3:1423539905 1423539905:0:4:1423539905 1423539905:0:5:1423539905 1423539905:0:6:1423539905 1423539905:0:7:1423539905 1423539905:0:8:1423539905 1423539905:0:9:1423539905 1423539905:0:10:1423539905 1423539905:0:11:1423539905 1423539905:0:12:1423539905 1423539905:0:13:1423539905 1423539905:0:14:1423539905 1423539905:0:15:1423539905 1423539905:0:16:1423539905 1423539905:0:17:1423539905 1423539905:0:18:1423539905 1423539905:0:19:1423539905 1423539905:0:20:1423539905 1423539905:1:2:711769952 1423539905:1:3:474513301 1423539905:1:4:355884976 1423539905:1:5:284707981 1423539905:1:6:237256650 1423539905:1:7:203362843 1423539905:1:8:177942488 1423539905:1:9:158171100 1423539905:1:10:142353990 1423539905:1:11:129412718 1423539905:1:12:118628325 1423539905:1:13:109503069 1423539905:1:14:101681421 1423539905:1:15:94902660 1423539905:1:16:88971244 1423539905:1:17:83737641 1423539905:1:18:79085550 1423539905:1:19:74923152 1423539905:1:20:71176995 1423539905:2:2:355884976 1423539905:2:3:158171100 1423539905:2:4:88971244 1423539905:2:5:56941596 1423539905:2:6:39542775 1423539905:2:7:29051834 1423539905:2:8:22242811 1423539905:2:9:17574566 1423539905:2:10:14235399 1423539905:2:11:11764792 1423539905:2:12:9885693 1423539905:2:13:8423313 1423539905:2:14:7262958 1423539905:2:15:6326844 1423539905:2:16:5560702 1423539905:2:17:4925743 1423539905:2:18:4393641 1423539905:2:19:3943323 1423539905:2:20:3558849 1423539905:3:2:177942488 1423539905:3:3:52723700 1423539905:3:4:22242811 1423539905:3:5:11388319 1423539905:3:6:6590462 1423539905:3:7:4150262 1423539905:3:8:2780351 1423539905:3:9:1952729 1423539905:3:10:1423539 1423539905:3:11:1069526 1423539905:3:12:823807 1423539905:3:13:647947 1423539905:3:14:518782 1423539905:3:15:421789 1423539905:3:16:347543 1423539905:3:17:289749 1423539905:3:18:244091 1423539905:3:19:207543 1423539905:3:20:177942 1423539905:4:2:88971244 1423539905:4:3:17574566 1423539905:4:4:5560702 1423539905:4:5:2277663 1423539905:4:6:1098410 1423539905:4:7:592894 1423539905:4:8:347543 1423539905:4:9:216969 1423539905:4:10:142353 1423539905:4:11:97229 1423539905:4:12:68650 1423539905:4:13:49842 1423539905:4:14:37055 1423539905:4:15:28119 1423539905:4:16:21721 1423539905:4:17:17044 1423539905:4:18:13560 1423539905:4:19:10923 1423539905:4:20:8897 1423539905:5:2:44485622 1423539905:5:3:5858188 1423539905:5:4:1390175 1423539905:5:5:455532 1423539905:5:6:183068 1423539905:5:7:84699 1423539905:5:8:43442 1423539905:5:9:24107 1423539905:5:10:14235 1423539905:5:11:8839 1423539905:5:12:5720 1423539905:5:13:3834 1423539905:5:14:2646 1423539905:5:15:1874 1423539905:5:16:1357 1423539905:5:17:1002 1423539905:5:18:753 1423539905:5:19:574 1423539905:5:20:444 1423539905:6:2:22242811 1423539905:6:3:1952729 1423539905:6:4:347543 1423539905:6:5:91106 1423539905:6:6:30511 1423539905:6:7:12099 1423539905:6:8:5430 1423539905:6:9:2678 1423539905:6:10:1423 1423539905:6:11:803 1423539905:6:12:476 1423539905:6:13:294 1423539905:6:14:189 1423539905:6:15:124 1423539905:6:16:84 1423539905:6:17:58 1423539905:6:18:41 1423539905:6:19:30 1423539905:6:20:22 1423539905:7:2:11121405 1423539905:7:3:650909 1423539905:7:4:86885 1423539905:7:5:18221 1423539905:7:6:5085 1423539905:7:7:1728 1423539905:7:8:678 1423539905:7:9:297 1423539905:7:10:142 1423539905:7:11:73 1423539905:7:12:39 1423539905:7:13:22 1423539905:7:14:13 1423539905:7:15:8 1423539905:7:16:5 1423539905:7:17:3 1423539905:7:18:2 1423539905:7:19:1 1423539905:7:20:1 1423539905:8:2:5560702 1423539905:8:3:216969 1423539905:8:4:21721 1423539905:8:5:3644 1423539905:8:6:847 1423539905:8:7:246 1423539905:8:8:84 1423539905:8:9:33 1423539905:8:10:14 1423539905:8:11:6 1423539905:8:12:3 1423539905:8:13:1 1423539905:8:14:0 1423539905:8:15:0 1423539905:9:2:2780351 1423539905:9:3:72323 1423539905:9:4:5430 1423539905:9:5:728 1423539905:9:6:141 1423539905:9:7:35 1423539905:9:8:10 1423539905:9:9:3 1423539905:9:10:1 1423539905:9:11:0 1423539905:9:12:0 1423539905:10:2:1390175 1423539905:10:3:24107 1423539905:10:4:1357 1423539905:10:5:145 1423539905:10:6:23 1423539905:10:7:5 1423539905:10:8:1 1423539905:10:9:0 1423539905:10:10:0 1423539905:11:2:695087 1423539905:11:3:8035 1423539905:11:4:339 1423539905:11:5:29 1423539905:11:6:3 1423539905:11:7:0 1423539905:11:8:0 1423539905:12:2:347543 1423539905:12:3:2678 1423539905:12:4:84 1423539905:12:5:5 1423539905:12:6:0 1423539905:12:7:0 1423539905:13:2:173771 1423539905:13:3:892 1423539905:13:4:21 1423539905:13:5:1 1423539905:13:6:0 1423539905:13:7:0 1423539905:14:2:86885 1423539905:14:3:297 1423539905:14:4:5 1423539905:14:5:0 1423539905:14:6:0 1423539905:15:2:43442 1423539905:15:3:99 1423539905:15:4:1 1423539905:15:5:0 1423539905:15:6:0 1423539905:16:2:21721 1423539905:16:3:33 1423539905:16:4:0 1423539905:16:5:0 1423539905:17:2:10860 1423539905:17:3:11 1423539905:17:4:0 1423539905:17:5:0 1423539905:18:2:5430 1423539905:18:3:3 1423539905:18:4:0 1423539905:18:5:0 1423539905:19:2:2715 1423539905:19:3:1 1423539905:19:4:0 1423539905:19:5:0 1423539905:20:2:1357 1423539905:20:3:0 1423539905:20:4:0 63033066685:0:2:63033066685 63033066685:0:3:63033066685 63033066685:0:4:63033066685 63033066685:0:5:63033066685 63033066685:0:6:63033066685 63033066685:0:7:63033066685 63033066685:0:8:63033066685 63033066685:0:9:63033066685 63033066685:0:10:63033066685 63033066685:0:11:63033066685 63033066685:0:12:63033066685 63033066685:0:13:63033066685 63033066685:0:14:63033066685 63033066685:0:15:63033066685 63033066685:0:16:63033066685 63033066685:0:17:63033066685 63033066685:0:18:63033066685 63033066685:0:19:63033066685 63033066685:0:20:63033066685 63033066685:1:2:31516533342 63033066685:1:3:21011022228 63033066685:1:4:15758266671 63033066685:1:5:12606613337 63033066685:1:6:10505511114 63033066685:1:7:9004723812 63033066685:1:8:7879133335 63033066685:1:9:7003674076 63033066685:1:10:6303306668 63033066685:1:11:5730278789 63033066685:1:12:5252755557 63033066685:1:13:4848697437 63033066685:1:14:4502361906 63033066685:1:15:4202204445 63033066685:1:16:3939566667 63033066685:1:17:3707827452 63033066685:1:18:3501837038 63033066685:1:19:3317529825 63033066685:1:20:3151653334 63033066685:2:2:15758266671 63033066685:2:3:7003674076 63033066685:2:4:3939566667 63033066685:2:5:2521322667 63033066685:2:6:1750918519 63033066685:2:7:1286389116 63033066685:2:8:984891666 63033066685:2:9:778186008 63033066685:2:10:630330666 63033066685:2:11:520934435 63033066685:2:12:437729629 63033066685:2:13:372976725 63033066685:2:14:321597279 63033066685:2:15:280146963 63033066685:2:16:246222916 63033066685:2:17:218107497 63033066685:2:18:194546502 63033066685:2:19:174606832 63033066685:2:20:157582666 63033066685:3:2:7879133335 63033066685:3:3:2334558025 63033066685:3:4:984891666 63033066685:3:5:504264533 63033066685:3:6:291819753 63033066685:3:7:183769873 63033066685:3:8:123111458 63033066685:3:9:86465112 63033066685:3:10:63033066 63033066685:3:11:47357675 63033066685:3:12:36477469 63033066685:3:13:28690517 63033066685:3:14:22971234 63033066685:3:15:18676464 63033066685:3:16:15388932 63033066685:3:17:12829852 63033066685:3:18:10808139 63033066685:3:19:9189833 63033066685:3:20:7879133 63033066685:4:2:3939566667 63033066685:4:3:778186008 63033066685:4:4:246222916 63033066685:4:5:100852906 63033066685:4:6:48636625 63033066685:4:7:26252839 63033066685:4:8:15388932 63033066685:4:9:9607234 63033066685:4:10:6303306 63033066685:4:11:4305243 63033066685:4:12:3039789 63033066685:4:13:2206962 63033066685:4:14:1640802 63033066685:4:15:1245097 63033066685:4:16:961808 63033066685:4:17:754697 63033066685:4:18:600452 63033066685:4:19:483675 63033066685:4:20:393956 63033066685:5:2:1969783333 63033066685:5:3:259395336 63033066685:5:4:61555729 63033066685:5:5:20170581 63033066685:5:6:8106104 63033066685:5:7:3750405 63033066685:5:8:1923616 63033066685:5:9:1067470 63033066685:5:10:630330 63033066685:5:11:391385 63033066685:5:12:253315 63033066685:5:13:169766 63033066685:5:14:117200 63033066685:5:15:83006 63033066685:5:16:60113 63033066685:5:17:44393 63033066685:5:18:33358 63033066685:5:19:25456 63033066685:5:20:19697 63033066685:6:2:984891666 63033066685:6:3:86465112 63033066685:6:4:15388932 63033066685:6:5:4034116 63033066685:6:6:1351017 63033066685:6:7:535772 63033066685:6:8:240452 63033066685:6:9:118607 63033066685:6:10:63033 63033066685:6:11:35580 63033066685:6:12:21109 63033066685:6:13:13058 63033066685:6:14:8371 63033066685:6:15:5533 63033066685:6:16:3757 63033066685:6:17:2611 63033066685:6:18:1853 63033066685:6:19:1339 63033066685:6:20:984 63033066685:7:2:492445833 63033066685:7:3:28821704 63033066685:7:4:3847233 63033066685:7:5:806823 63033066685:7:6:225169 63033066685:7:7:76538 63033066685:7:8:30056 63033066685:7:9:13178 63033066685:7:10:6303 63033066685:7:11:3234 63033066685:7:12:1759 63033066685:7:13:1004 63033066685:7:14:597 63033066685:7:15:368 63033066685:7:16:234 63033066685:7:17:153 63033066685:7:18:102 63033066685:7:19:70 63033066685:7:20:49 63033066685:8:2:246222916 63033066685:8:3:9607234 63033066685:8:4:961808 63033066685:8:5:161364 63033066685:8:6:37528 63033066685:8:7:10934 63033066685:8:8:3757 63033066685:8:9:1464 63033066685:8:10:630 63033066685:8:11:294 63033066685:8:12:146 63033066685:8:13:77 63033066685:8:14:42 63033066685:8:15:24 63033066685:8:16:14 63033066685:8:17:9 63033066685:8:18:5 63033066685:8:19:3 63033066685:8:20:2 63033066685:9:2:123111458 63033066685:9:3:3202411 63033066685:9:4:240452 63033066685:9:5:32272 63033066685:9:6:6254 63033066685:9:7:1562 63033066685:9:8:469 63033066685:9:9:162 63033066685:9:10:63 63033066685:9:11:26 63033066685:9:12:12 63033066685:9:13:5 63033066685:9:14:3 63033066685:9:15:1 63033066685:9:16:0 63033066685:9:17:0 63033066685:10:2:61555729 63033066685:10:3:1067470 63033066685:10:4:60113 63033066685:10:5:6454 63033066685:10:6:1042 63033066685:10:7:223 63033066685:10:8:58 63033066685:10:9:18 63033066685:10:10:6 63033066685:10:11:2 63033066685:10:12:1 63033066685:10:13:0 63033066685:10:14:0 63033066685:11:2:30777864 63033066685:11:3:355823 63033066685:11:4:15028 63033066685:11:5:1290 63033066685:11:6:173 63033066685:11:7:31 63033066685:11:8:7 63033066685:11:9:2 63033066685:11:10:0 63033066685:11:11:0 63033066685:12:2:15388932 63033066685:12:3:118607 63033066685:12:4:3757 63033066685:12:5:258 63033066685:12:6:28 63033066685:12:7:4 63033066685:12:8:0 63033066685:12:9:0 63033066685:13:2:7694466 63033066685:13:3:39535 63033066685:13:4:939 63033066685:13:5:51 63033066685:13:6:4 63033066685:13:7:0 63033066685:13:8:0 63033066685:14:2:3847233 63033066685:14:3:13178 63033066685:14:4:234 63033066685:14:5:10 63033066685:14:6:0 63033066685:14:7:0 63033066685:15:2:1923616 63033066685:15:3:4392 63033066685:15:4:58 63033066685:15:5:2 63033066685:15:6:0 63033066685:15:7:0 63033066685:16:2:961808 63033066685:16:3:1464 63033066685:16:4:14 63033066685:16:5:0 63033066685:16:6:0 63033066685:17:2:480904 63033066685:17:3:488 63033066685:17:4:3 63033066685:17:5:0 63033066685:17:6:0 63033066685:18:2:240452 63033066685:18:3:162 63033066685:18:4:0 63033066685:18:5:0 63033066685:19:2:120226 63033066685:19:3:54 63033066685:19:4:0 63033066685:19:5:0 63033066685:20:2:60113 63033066685:20:3:18 63033066685:20:4:0 63033066685:20:5:0 143998018271:0:2:143998018271 143998018271:0:3:143998018271 143998018271:0:4:143998018271 143998018271:0:5:143998018271 143998018271:0:6:143998018271 143998018271:0:7:143998018271 143998018271:0:8:143998018271 143998018271:0:9:143998018271 143998018271:0:10:143998018271 143998018271:0:11:143998018271 143998018271:0:12:143998018271 143998018271:0:13:143998018271 143998018271:0:14:143998018271 143998018271:0:15:143998018271 143998018271:0:16:143998018271 143998018271:0:17:143998018271 143998018271:0:18:143998018271 143998018271:0:19:143998018271 143998018271:0:20:143998018271 143998018271:1:2:71999009135 143998018271:1:3:47999339423 143998018271:1:4:35999504567 143998018271:1:5:28799603654 143998018271:1:6:23999669711 143998018271:1:7:20571145467 143998018271:1:8:17999752283 143998018271:1:9:15999779807 143998018271:1:10:14399801827 143998018271:1:11:13090728933 143998018271:1:12:11999834855 143998018271:1:13:11076770636 143998018271:1:14:10285572733 143998018271:1:15:9599867884 143998018271:1:16:8999876141 143998018271:1:17:8470471663 143998018271:1:18:7999889903 143998018271:1:19:7578843066 143998018271:1:20:7199900913 143998018271:2:2:35999504567 143998018271:2:3:15999779807 143998018271:2:4:8999876141 143998018271:2:5:5759920730 143998018271:2:6:3999944951 143998018271:2:7:2938735066 143998018271:2:8:2249969035 143998018271:2:9:1777753311 143998018271:2:10:1439980182 143998018271:2:11:1190066266 143998018271:2:12:999986237 143998018271:2:13:852059279 143998018271:2:14:734683766 143998018271:2:15:639991192 143998018271:2:16:562492258 143998018271:2:17:498263039 143998018271:2:18:444438327 143998018271:2:19:398886477 143998018271:2:20:359995045 143998018271:3:2:17999752283 143998018271:3:3:5333259935 143998018271:3:4:2249969035 143998018271:3:5:1151984146 143998018271:3:6:666657491 143998018271:3:7:419819295 143998018271:3:8:281246129 143998018271:3:9:197528145 143998018271:3:10:143998018 143998018271:3:11:108187842 143998018271:3:12:83332186 143998018271:3:13:65543021 143998018271:3:14:52477411 143998018271:3:15:42666079 143998018271:3:16:35155766 143998018271:3:17:29309590 143998018271:3:18:24691018 143998018271:3:19:20994025 143998018271:3:20:17999752 143998018271:4:2:8999876141 143998018271:4:3:1777753311 143998018271:4:4:562492258 143998018271:4:5:230396829 143998018271:4:6:111109581 143998018271:4:7:59974185 143998018271:4:8:35155766 143998018271:4:9:21947571 143998018271:4:10:14399801 143998018271:4:11:9835258 143998018271:4:12:6944348 143998018271:4:13:5041770 143998018271:4:14:3748386 143998018271:4:15:2844405 143998018271:4:16:2197235 143998018271:4:17:1724093 143998018271:4:18:1371723 143998018271:4:19:1104948 143998018271:4:20:899987 143998018271:5:2:4499938070 143998018271:5:3:592584437 143998018271:5:4:140623064 143998018271:5:5:46079365 143998018271:5:6:18518263 143998018271:5:7:8567740 143998018271:5:8:4394470 143998018271:5:9:2438619 143998018271:5:10:1439980 143998018271:5:11:894114 143998018271:5:12:578695 143998018271:5:13:387828 143998018271:5:14:267741 143998018271:5:15:189627 143998018271:5:16:137327 143998018271:5:17:101417 143998018271:5:18:76206 143998018271:5:19:58155 143998018271:5:20:44999 143998018271:6:2:2249969035 143998018271:6:3:197528145 143998018271:6:4:35155766 143998018271:6:5:9215873 143998018271:6:6:3086377 143998018271:6:7:1223962 143998018271:6:8:549308 143998018271:6:9:270957 143998018271:6:10:143998 143998018271:6:11:81283 143998018271:6:12:48224 143998018271:6:13:29832 143998018271:6:14:19124 143998018271:6:15:12641 143998018271:6:16:8582 143998018271:6:17:5965 143998018271:6:18:4233 143998018271:6:19:3060 143998018271:6:20:2249 143998018271:7:2:1124984517 143998018271:7:3:65842715 143998018271:7:4:8788941 143998018271:7:5:1843174 143998018271:7:6:514396 143998018271:7:7:174851 143998018271:7:8:68663 143998018271:7:9:30106 143998018271:7:10:14399 143998018271:7:11:7389 143998018271:7:12:4018 143998018271:7:13:2294 143998018271:7:14:1366 143998018271:7:15:842 143998018271:7:16:536 143998018271:7:17:350 143998018271:7:18:235 143998018271:7:19:161 143998018271:7:20:112 143998018271:8:2:562492258 143998018271:8:3:21947571 143998018271:8:4:2197235 143998018271:8:5:368634 143998018271:8:6:85732 143998018271:8:7:24978 143998018271:8:8:8582 143998018271:8:9:3345 143998018271:8:10:1439 143998018271:8:11:671 143998018271:8:12:334 143998018271:8:13:176 143998018271:8:14:97 143998018271:8:15:56 143998018271:8:16:33 143998018271:8:17:20 143998018271:8:18:13 143998018271:8:19:8 143998018271:8:20:5 143998018271:9:2:281246129 143998018271:9:3:7315857 143998018271:9:4:549308 143998018271:9:5:73726 143998018271:9:6:14288 143998018271:9:7:3568 143998018271:9:8:1072 143998018271:9:9:371 143998018271:9:10:143 143998018271:9:11:61 143998018271:9:12:27 143998018271:9:13:13 143998018271:9:14:6 143998018271:9:15:3 143998018271:9:16:2 143998018271:9:17:1 143998018271:9:18:0 143998018271:9:19:0 143998018271:10:2:140623064 143998018271:10:3:2438619 143998018271:10:4:137327 143998018271:10:5:14745 143998018271:10:6:2381 143998018271:10:7:509 143998018271:10:8:134 143998018271:10:9:41 143998018271:10:10:14 143998018271:10:11:5 143998018271:10:12:2 143998018271:10:13:1 143998018271:10:14:0 143998018271:10:15:0 143998018271:11:2:70311532 143998018271:11:3:812873 143998018271:11:4:34331 143998018271:11:5:2949 143998018271:11:6:396 143998018271:11:7:72 143998018271:11:8:16 143998018271:11:9:4 143998018271:11:10:1 143998018271:11:11:0 143998018271:11:12:0 143998018271:12:2:35155766 143998018271:12:3:270957 143998018271:12:4:8582 143998018271:12:5:589 143998018271:12:6:66 143998018271:12:7:10 143998018271:12:8:2 143998018271:12:9:0 143998018271:12:10:0 143998018271:13:2:17577883 143998018271:13:3:90319 143998018271:13:4:2145 143998018271:13:5:117 143998018271:13:6:11 143998018271:13:7:1 143998018271:13:8:0 143998018271:13:9:0 143998018271:14:2:8788941 143998018271:14:3:30106 143998018271:14:4:536 143998018271:14:5:23 143998018271:14:6:1 143998018271:14:7:0 143998018271:14:8:0 143998018271:15:2:4394470 143998018271:15:3:10035 143998018271:15:4:134 143998018271:15:5:4 143998018271:15:6:0 143998018271:15:7:0 143998018271:16:2:2197235 143998018271:16:3:3345 143998018271:16:4:33 143998018271:16:5:0 143998018271:16:6:0 143998018271:17:2:1098617 143998018271:17:3:1115 143998018271:17:4:8 143998018271:17:5:0 143998018271:17:6:0 143998018271:18:2:549308 143998018271:18:3:371 143998018271:18:4:2 143998018271:18:5:0 143998018271:18:6:0 143998018271:19:2:274654 143998018271:19:3:123 143998018271:19:4:0 143998018271:19:5:0 143998018271:20:2:137327 143998018271:20:3:41 143998018271:20:4:0 143998018271:20:5:0 5919814475416:0:2:5919814475416 5919814475416:0:3:5919814475416 5919814475416:0:4:5919814475416 5919814475416:0:5:5919814475416 5919814475416:0:6:5919814475416 5919814475416:0:7:5919814475416 5919814475416:0:8:5919814475416 5919814475416:0:9:5919814475416 5919814475416:0:10:5919814475416 5919814475416:0:11:5919814475416 5919814475416:0:12:5919814475416 5919814475416:0:13:5919814475416 5919814475416:0:14:5919814475416 5919814475416:0:15:5919814475416 5919814475416:0:16:5919814475416 5919814475416:0:17:5919814475416 5919814475416:0:18:5919814475416 5919814475416:0:19:5919814475416 5919814475416:0:20:5919814475416 5919814475416:1:2:2959907237708 5919814475416:1:3:1973271491805 5919814475416:1:4:1479953618854 5919814475416:1:5:1183962895083 5919814475416:1:6:986635745902 5919814475416:1:7:845687782202 5919814475416:1:8:739976809427 5919814475416:1:9:657757163935 5919814475416:1:10:591981447541 5919814475416:1:11:538164952310 5919814475416:1:12:493317872951 5919814475416:1:13:455370344262 5919814475416:1:14:422843891101 5919814475416:1:15:394654298361 5919814475416:1:16:369988404713 5919814475416:1:17:348224380906 5919814475416:1:18:328878581967 5919814475416:1:19:311569182916 5919814475416:1:20:295990723770 5919814475416:2:2:1479953618854 5919814475416:2:3:657757163935 5919814475416:2:4:369988404713 5919814475416:2:5:236792579016 5919814475416:2:6:164439290983 5919814475416:2:7:120812540314 5919814475416:2:8:92497101178 5919814475416:2:9:73084129326 5919814475416:2:10:59198144754 5919814475416:2:11:48924086573 5919814475416:2:12:41109822745 5919814475416:2:13:35028488020 5919814475416:2:14:30203135078 5919814475416:2:15:26310286557 5919814475416:2:16:23124275294 5919814475416:2:17:20483787112 5919814475416:2:18:18271032331 5919814475416:2:19:16398378048 5919814475416:2:20:14799536188 5919814475416:3:2:739976809427 5919814475416:3:3:219252387978 5919814475416:3:4:92497101178 5919814475416:3:5:47358515803 5919814475416:3:6:27406548497 5919814475416:3:7:17258934330 5919814475416:3:8:11562137647 5919814475416:3:9:8120458814 5919814475416:3:10:5919814475 5919814475416:3:11:4447644233 5919814475416:3:12:3425818562 5919814475416:3:13:2694499078 5919814475416:3:14:2157366791 5919814475416:3:15:1754019103 5919814475416:3:16:1445267205 5919814475416:3:17:1204928653 5919814475416:3:18:1015057351 5919814475416:3:19:863072528 5919814475416:3:20:739976809 5919814475416:4:2:369988404713 5919814475416:4:3:73084129326 5919814475416:4:4:23124275294 5919814475416:4:5:9471703160 5919814475416:4:6:4567758082 5919814475416:4:7:2465562047 5919814475416:4:8:1445267205 5919814475416:4:9:902273201 5919814475416:4:10:591981447 5919814475416:4:11:404331293 5919814475416:4:12:285484880 5919814475416:4:13:207269159 5919814475416:4:14:154097627 5919814475416:4:15:116934606 5919814475416:4:16:90329200 5919814475416:4:17:70878156 5919814475416:4:18:56392075 5919814475416:4:19:45424869 5919814475416:4:20:36998840 5919814475416:5:2:184994202356 5919814475416:5:3:24361376442 5919814475416:5:4:5781068823 5919814475416:5:5:1894340632 5919814475416:5:6:761293013 5919814475416:5:7:352223149 5919814475416:5:8:180658400 5919814475416:5:9:100252577 5919814475416:5:10:59198144 5919814475416:5:11:36757390 5919814475416:5:12:23790406 5919814475416:5:13:15943781 5919814475416:5:14:11006973 5919814475416:5:15:7795640 5919814475416:5:16:5645575 5919814475416:5:17:4169303 5919814475416:5:18:3132893 5919814475416:5:19:2390782 5919814475416:5:20:1849942 5919814475416:6:2:92497101178 5919814475416:6:3:8120458814 5919814475416:6:4:1445267205 5919814475416:6:5:378868126 5919814475416:6:6:126882168 5919814475416:6:7:50317592 5919814475416:6:8:22582300 5919814475416:6:9:11139175 5919814475416:6:10:5919814 5919814475416:6:11:3341580 5919814475416:6:12:1982533 5919814475416:6:13:1226444 5919814475416:6:14:786212 5919814475416:6:15:519709 5919814475416:6:16:352848 5919814475416:6:17:245253 5919814475416:6:18:174049 5919814475416:6:19:125830 5919814475416:6:20:92497 5919814475416:7:2:46248550589 5919814475416:7:3:2706819604 5919814475416:7:4:361316801 5919814475416:7:5:75773625 5919814475416:7:6:21147028 5919814475416:7:7:7188227 5919814475416:7:8:2822787 5919814475416:7:9:1237686 5919814475416:7:10:591981 5919814475416:7:11:303780 5919814475416:7:12:165211 5919814475416:7:13:94341 5919814475416:7:14:56158 5919814475416:7:15:34647 5919814475416:7:16:22053 5919814475416:7:17:14426 5919814475416:7:18:9669 5919814475416:7:19:6622 5919814475416:7:20:4624 5919814475416:8:2:23124275294 5919814475416:8:3:902273201 5919814475416:8:4:90329200 5919814475416:8:5:15154725 5919814475416:8:6:3524504 5919814475416:8:7:1026889 5919814475416:8:8:352848 5919814475416:8:9:137520 5919814475416:8:10:59198 5919814475416:8:11:27616 5919814475416:8:12:13767 5919814475416:8:13:7257 5919814475416:8:14:4011 5919814475416:8:15:2309 5919814475416:8:16:1378 5919814475416:8:17:848 5919814475416:8:18:537 5919814475416:8:19:348 5919814475416:8:20:231 5919814475416:9:2:11562137647 5919814475416:9:3:300757733 5919814475416:9:4:22582300 5919814475416:9:5:3030945 5919814475416:9:6:587417 5919814475416:9:7:146698 5919814475416:9:8:44106 5919814475416:9:9:15280 5919814475416:9:10:5919 5919814475416:9:11:2510 5919814475416:9:12:1147 5919814475416:9:13:558 5919814475416:9:14:286 5919814475416:9:15:153 5919814475416:9:16:86 5919814475416:9:17:49 5919814475416:9:18:29 5919814475416:9:19:18 5919814475416:9:20:11 5919814475416:10:2:5781068823 5919814475416:10:3:100252577 5919814475416:10:4:5645575 5919814475416:10:5:606189 5919814475416:10:6:97902 5919814475416:10:7:20956 5919814475416:10:8:5513 5919814475416:10:9:1697 5919814475416:10:10:591 5919814475416:10:11:228 5919814475416:10:12:95 5919814475416:10:13:42 5919814475416:10:14:20 5919814475416:10:15:10 5919814475416:10:16:5 5919814475416:10:17:2 5919814475416:10:18:1 5919814475416:10:19:0 5919814475416:10:20:0 5919814475416:11:2:2890534411 5919814475416:11:3:33417525 5919814475416:11:4:1411393 5919814475416:11:5:121237 5919814475416:11:6:16317 5919814475416:11:7:2993 5919814475416:11:8:689 5919814475416:11:9:188 5919814475416:11:10:59 5919814475416:11:11:20 5919814475416:11:12:7 5919814475416:11:13:3 5919814475416:11:14:1 5919814475416:11:15:0 5919814475416:11:16:0 5919814475416:12:2:1445267205 5919814475416:12:3:11139175 5919814475416:12:4:352848 5919814475416:12:5:24247 5919814475416:12:6:2719 5919814475416:12:7:427 5919814475416:12:8:86 5919814475416:12:9:20 5919814475416:12:10:5 5919814475416:12:11:1 5919814475416:12:12:0 5919814475416:12:13:0 5919814475416:13:2:722633602 5919814475416:13:3:3713058 5919814475416:13:4:88212 5919814475416:13:5:4849 5919814475416:13:6:453 5919814475416:13:7:61 5919814475416:13:8:10 5919814475416:13:9:2 5919814475416:13:10:0 5919814475416:13:11:0 5919814475416:14:2:361316801 5919814475416:14:3:1237686 5919814475416:14:4:22053 5919814475416:14:5:969 5919814475416:14:6:75 5919814475416:14:7:8 5919814475416:14:8:1 5919814475416:14:9:0 5919814475416:14:10:0 5919814475416:15:2:180658400 5919814475416:15:3:412562 5919814475416:15:4:5513 5919814475416:15:5:193 5919814475416:15:6:12 5919814475416:15:7:1 5919814475416:15:8:0 5919814475416:15:9:0 5919814475416:16:2:90329200 5919814475416:16:3:137520 5919814475416:16:4:1378 5919814475416:16:5:38 5919814475416:16:6:2 5919814475416:16:7:0 5919814475416:16:8:0 5919814475416:17:2:45164600 5919814475416:17:3:45840 5919814475416:17:4:344 5919814475416:17:5:7 5919814475416:17:6:0 5919814475416:17:7:0 5919814475416:18:2:22582300 5919814475416:18:3:15280 5919814475416:18:4:86 5919814475416:18:5:1 5919814475416:18:6:0 5919814475416:18:7:0 5919814475416:19:2:11291150 5919814475416:19:3:5093 5919814475416:19:4:21 5919814475416:19:5:0 5919814475416:19:6:0 5919814475416:20:2:5645575 5919814475416:20:3:1697 5919814475416:20:4:5 5919814475416:20:5:0 5919814475416:20:6:0 53446442434181:0:2:53446442434181 53446442434181:0:3:53446442434181 53446442434181:0:4:53446442434181 53446442434181:0:5:53446442434181 53446442434181:0:6:53446442434181 53446442434181:0:7:53446442434181 53446442434181:0:8:53446442434181 53446442434181:0:9:53446442434181 53446442434181:0:10:53446442434181 53446442434181:0:11:53446442434181 53446442434181:0:12:53446442434181 53446442434181:0:13:53446442434181 53446442434181:0:14:53446442434181 53446442434181:0:15:53446442434181 53446442434181:0:16:53446442434181 53446442434181:0:17:53446442434181 53446442434181:0:18:53446442434181 53446442434181:0:19:53446442434181 53446442434181:0:20:53446442434181 53446442434181:1:2:26723221217090 53446442434181:1:3:17815480811393 53446442434181:1:4:13361610608545 53446442434181:1:5:10689288486836 53446442434181:1:6:8907740405696 53446442434181:1:7:7635206062025 53446442434181:1:8:6680805304272 53446442434181:1:9:5938493603797 53446442434181:1:10:5344644243418 53446442434181:1:11:4858767494016 53446442434181:1:12:4453870202848 53446442434181:1:13:4111264802629 53446442434181:1:14:3817603031012 53446442434181:1:15:3563096162278 53446442434181:1:16:3340402652136 53446442434181:1:17:3143908378481 53446442434181:1:18:2969246801898 53446442434181:1:19:2812970654430 53446442434181:1:20:2672322121709 53446442434181:2:2:13361610608545 53446442434181:2:3:5938493603797 53446442434181:2:4:3340402652136 53446442434181:2:5:2137857697367 53446442434181:2:6:1484623400949 53446442434181:2:7:1090743723146 53446442434181:2:8:835100663034 53446442434181:2:9:659832622644 53446442434181:2:10:534464424341 53446442434181:2:11:441706135819 53446442434181:2:12:371155850237 53446442434181:2:13:316251138663 53446442434181:2:14:272685930786 53446442434181:2:15:237539744151 53446442434181:2:16:208775165758 53446442434181:2:17:184935786969 53446442434181:2:18:164958155661 53446442434181:2:19:148051087075 53446442434181:2:20:133616106085 53446442434181:3:2:6680805304272 53446442434181:3:3:1979497867932 53446442434181:3:4:835100663034 53446442434181:3:5:427571539473 53446442434181:3:6:247437233491 53446442434181:3:7:155820531878 53446442434181:3:8:104387582879 53446442434181:3:9:73314735849 53446442434181:3:10:53446442434 53446442434181:3:11:40155103256 53446442434181:3:12:30929654186 53446442434181:3:13:24327010666 53446442434181:3:14:19477566484 53446442434181:3:15:15835982943 53446442434181:3:16:13048447859 53446442434181:3:17:10878575704 53446442434181:3:18:9164341981 53446442434181:3:19:7792162477 53446442434181:3:20:6680805304 53446442434181:4:2:3340402652136 53446442434181:4:3:659832622644 53446442434181:4:4:208775165758 53446442434181:4:5:85514307894 53446442434181:4:6:41239538915 53446442434181:4:7:22260075982 53446442434181:4:8:13048447859 53446442434181:4:9:8146081761 53446442434181:4:10:5344644243 53446442434181:4:11:3650463932 53446442434181:4:12:2577471182 53446442434181:4:13:1871308512 53446442434181:4:14:1391254748 53446442434181:4:15:1055732196 53446442434181:4:16:815527991 53446442434181:4:17:639916217 53446442434181:4:18:509130110 53446442434181:4:19:410113814 53446442434181:4:20:334040265 53446442434181:5:2:1670201326068 53446442434181:5:3:219944207548 53446442434181:5:4:52193791439 53446442434181:5:5:17102861578 53446442434181:5:6:6873256485 53446442434181:5:7:3180010854 53446442434181:5:8:1631055982 53446442434181:5:9:905120195 53446442434181:5:10:534464424 53446442434181:5:11:331860357 53446442434181:5:12:214789265 53446442434181:5:13:143946808 53446442434181:5:14:99375339 53446442434181:5:15:70382146 53446442434181:5:16:50970499 53446442434181:5:17:37642130 53446442434181:5:18:28285006 53446442434181:5:19:21584937 53446442434181:5:20:16702013 53446442434181:6:2:835100663034 53446442434181:6:3:73314735849 53446442434181:6:4:13048447859 53446442434181:6:5:3420572315 53446442434181:6:6:1145542747 53446442434181:6:7:454287264 53446442434181:6:8:203881997 53446442434181:6:9:100568910 53446442434181:6:10:53446442 53446442434181:6:11:30169123 53446442434181:6:12:17899105 53446442434181:6:13:11072831 53446442434181:6:14:7098238 53446442434181:6:15:4692143 53446442434181:6:16:3185656 53446442434181:6:17:2214242 53446442434181:6:18:1571389 53446442434181:6:19:1136049 53446442434181:6:20:835100 53446442434181:7:2:417550331517 53446442434181:7:3:24438245283 53446442434181:7:4:3262111964 53446442434181:7:5:684114463 53446442434181:7:6:190923791 53446442434181:7:7:64898180 53446442434181:7:8:25485249 53446442434181:7:9:11174323 53446442434181:7:10:5344644 53446442434181:7:11:2742647 53446442434181:7:12:1491592 53446442434181:7:13:851756 53446442434181:7:14:507017 53446442434181:7:15:312809 53446442434181:7:16:199103 53446442434181:7:17:130249 53446442434181:7:18:87299 53446442434181:7:19:59792 53446442434181:7:20:41755 53446442434181:8:2:208775165758 53446442434181:8:3:8146081761 53446442434181:8:4:815527991 53446442434181:8:5:136822892 53446442434181:8:6:31820631 53446442434181:8:7:9271168 53446442434181:8:8:3185656 53446442434181:8:9:1241591 53446442434181:8:10:534464 53446442434181:8:11:249331 53446442434181:8:12:124299 53446442434181:8:13:65519 53446442434181:8:14:36215 53446442434181:8:15:20853 53446442434181:8:16:12443 53446442434181:8:17:7661 53446442434181:8:18:4849 53446442434181:8:19:3146 53446442434181:8:20:2087 53446442434181:9:2:104387582879 53446442434181:9:3:2715360587 53446442434181:9:4:203881997 53446442434181:9:5:27364578 53446442434181:9:6:5303438 53446442434181:9:7:1324452 53446442434181:9:8:398207 53446442434181:9:9:137954 53446442434181:9:10:53446 53446442434181:9:11:22666 53446442434181:9:12:10358 53446442434181:9:13:5039 53446442434181:9:14:2586 53446442434181:9:15:1390 53446442434181:9:16:777 53446442434181:9:17:450 53446442434181:9:18:269 53446442434181:9:19:165 53446442434181:9:20:104 53446442434181:10:2:52193791439 53446442434181:10:3:905120195 53446442434181:10:4:50970499 53446442434181:10:5:5472915 53446442434181:10:6:883906 53446442434181:10:7:189207 53446442434181:10:8:49775 53446442434181:10:9:15328 53446442434181:10:10:5344 53446442434181:10:11:2060 53446442434181:10:12:863 53446442434181:10:13:387 53446442434181:10:14:184 53446442434181:10:15:92 53446442434181:10:16:48 53446442434181:10:17:26 53446442434181:10:18:14 53446442434181:10:19:8 53446442434181:10:20:5 53446442434181:11:2:26096895719 53446442434181:11:3:301706731 53446442434181:11:4:12742624 53446442434181:11:5:1094583 53446442434181:11:6:147317 53446442434181:11:7:27029 53446442434181:11:8:6221 53446442434181:11:9:1703 53446442434181:11:10:534 53446442434181:11:11:187 53446442434181:11:12:71 53446442434181:11:13:29 53446442434181:11:14:13 53446442434181:11:15:6 53446442434181:11:16:3 53446442434181:11:17:1 53446442434181:11:18:0 53446442434181:11:19:0 53446442434181:12:2:13048447859 53446442434181:12:3:100568910 53446442434181:12:4:3185656 53446442434181:12:5:218916 53446442434181:12:6:24552 53446442434181:12:7:3861 53446442434181:12:8:777 53446442434181:12:9:189 53446442434181:12:10:53 53446442434181:12:11:17 53446442434181:12:12:5 53446442434181:12:13:2 53446442434181:12:14:0 53446442434181:12:15:0 53446442434181:13:2:6524223929 53446442434181:13:3:33522970 53446442434181:13:4:796414 53446442434181:13:5:43783 53446442434181:13:6:4092 53446442434181:13:7:551 53446442434181:13:8:97 53446442434181:13:9:21 53446442434181:13:10:5 53446442434181:13:11:1 53446442434181:13:12:0 53446442434181:13:13:0 53446442434181:14:2:3262111964 53446442434181:14:3:11174323 53446442434181:14:4:199103 53446442434181:14:5:8756 53446442434181:14:6:682 53446442434181:14:7:78 53446442434181:14:8:12 53446442434181:14:9:2 53446442434181:14:10:0 53446442434181:14:11:0 53446442434181:15:2:1631055982 53446442434181:15:3:3724774 53446442434181:15:4:49775 53446442434181:15:5:1751 53446442434181:15:6:113 53446442434181:15:7:11 53446442434181:15:8:1 53446442434181:15:9:0 53446442434181:15:10:0 53446442434181:16:2:815527991 53446442434181:16:3:1241591 53446442434181:16:4:12443 53446442434181:16:5:350 53446442434181:16:6:18 53446442434181:16:7:1 53446442434181:16:8:0 53446442434181:16:9:0 53446442434181:17:2:407763995 53446442434181:17:3:413863 53446442434181:17:4:3110 53446442434181:17:5:70 53446442434181:17:6:3 53446442434181:17:7:0 53446442434181:17:8:0 53446442434181:18:2:203881997 53446442434181:18:3:137954 53446442434181:18:4:777 53446442434181:18:5:14 53446442434181:18:6:0 53446442434181:18:7:0 53446442434181:19:2:101940998 53446442434181:19:3:45984 53446442434181:19:4:194 53446442434181:19:5:2 53446442434181:19:6:0 53446442434181:19:7:0 53446442434181:20:2:50970499 53446442434181:20:3:15328 53446442434181:20:4:48 53446442434181:20:5:0 53446442434181:20:6:0 281732222637500:0:2:281732222637500 281732222637500:0:3:281732222637500 281732222637500:0:4:281732222637500 281732222637500:0:5:281732222637500 281732222637500:0:6:281732222637500 281732222637500:0:7:281732222637500 281732222637500:0:8:281732222637500 281732222637500:0:9:281732222637500 281732222637500:0:10:281732222637500 281732222637500:0:11:281732222637500 281732222637500:0:12:281732222637500 281732222637500:0:13:281732222637500 281732222637500:0:14:281732222637500 281732222637500:0:15:281732222637500 281732222637500:0:16:281732222637500 281732222637500:0:17:281732222637500 281732222637500:0:18:281732222637500 281732222637500:0:19:281732222637500 281732222637500:0:20:281732222637500 281732222637500:1:2:140866111318750 281732222637500:1:3:93910740879166 281732222637500:1:4:70433055659375 281732222637500:1:5:56346444527500 281732222637500:1:6:46955370439583 281732222637500:1:7:40247460376785 281732222637500:1:8:35216527829687 281732222637500:1:9:31303580293055 281732222637500:1:10:28173222263750 281732222637500:1:11:25612020239772 281732222637500:1:12:23477685219791 281732222637500:1:13:21671709433653 281732222637500:1:14:20123730188392 281732222637500:1:15:18782148175833 281732222637500:1:16:17608263914843 281732222637500:1:17:16572483684558 281732222637500:1:18:15651790146527 281732222637500:1:19:14828011717763 281732222637500:1:20:14086611131875 281732222637500:2:2:70433055659375 281732222637500:2:3:31303580293055 281732222637500:2:4:17608263914843 281732222637500:2:5:11269288905500 281732222637500:2:6:7825895073263 281732222637500:2:7:5749637196683 281732222637500:2:8:4402065978710 281732222637500:2:9:3478175588117 281732222637500:2:10:2817322226375 281732222637500:2:11:2328365476342 281732222637500:2:12:1956473768315 281732222637500:2:13:1667054571819 281732222637500:2:14:1437409299170 281732222637500:2:15:1252143211722 281732222637500:2:16:1100516494677 281732222637500:2:17:974851981444 281732222637500:2:18:869543897029 281732222637500:2:19:780421669355 281732222637500:2:20:704330556593 281732222637500:3:2:35216527829687 281732222637500:3:3:10434526764351 281732222637500:3:4:4402065978710 281732222637500:3:5:2253857781100 281732222637500:3:6:1304315845543 281732222637500:3:7:821376742383 281732222637500:3:8:550258247338 281732222637500:3:9:386463954235 281732222637500:3:10:281732222637 281732222637500:3:11:211669588758 281732222637500:3:12:163039480692 281732222637500:3:13:128234967063 281732222637500:3:14:102672092797 281732222637500:3:15:83476214114 281732222637500:3:16:68782280917 281732222637500:3:17:57344234202 281732222637500:3:18:48307994279 281732222637500:3:19:41074824702 281732222637500:3:20:35216527829 281732222637500:4:2:17608263914843 281732222637500:4:3:3478175588117 281732222637500:4:4:1100516494677 281732222637500:4:5:450771556220 281732222637500:4:6:217385974257 281732222637500:4:7:117339534626 281732222637500:4:8:68782280917 281732222637500:4:9:42940439359 281732222637500:4:10:28173222263 281732222637500:4:11:19242689887 281732222637500:4:12:13586623391 281732222637500:4:13:9864228235 281732222637500:4:14:7333720914 281732222637500:4:15:5565080940 281732222637500:4:16:4298892557 281732222637500:4:17:3373190247 281732222637500:4:18:2683777459 281732222637500:4:19:2161832879 281732222637500:4:20:1760826391 281732222637500:5:2:8804131957421 281732222637500:5:3:1159391862705 281732222637500:5:4:275129123669 281732222637500:5:5:90154311244 281732222637500:5:6:36230995709 281732222637500:5:7:16762790660 281732222637500:5:8:8597785114 281732222637500:5:9:4771159928 281732222637500:5:10:2817322226 281732222637500:5:11:1749335444 281732222637500:5:12:1132218615 281732222637500:5:13:758786787 281732222637500:5:14:523837208 281732222637500:5:15:371005396 281732222637500:5:16:268680784 281732222637500:5:17:198422955 281732222637500:5:18:149098747 281732222637500:5:19:113780677 281732222637500:5:20:88041319 281732222637500:6:2:4402065978710 281732222637500:6:3:386463954235 281732222637500:6:4:68782280917 281732222637500:6:5:18030862248 281732222637500:6:6:6038499284 281732222637500:6:7:2394684380 281732222637500:6:8:1074723139 281732222637500:6:9:530128880 281732222637500:6:10:281732222 281732222637500:6:11:159030494 281732222637500:6:12:94351551 281732222637500:6:13:58368214 281732222637500:6:14:37416943 281732222637500:6:15:24733693 281732222637500:6:16:16792549 281732222637500:6:17:11671938 281732222637500:6:18:8283263 281732222637500:6:19:5988456 281732222637500:6:20:4402065 281732222637500:7:2:2201032989355 281732222637500:7:3:128821318078 281732222637500:7:4:17195570229 281732222637500:7:5:3606172449 281732222637500:7:6:1006416547 281732222637500:7:7:342097768 281732222637500:7:8:134340392 281732222637500:7:9:58903208 281732222637500:7:10:28173222 281732222637500:7:11:14457317 281732222637500:7:12:7862629 281732222637500:7:13:4489862 281732222637500:7:14:2672638 281732222637500:7:15:1648912 281732222637500:7:16:1049534 281732222637500:7:17:686584 281732222637500:7:18:460181 281732222637500:7:19:315181 281732222637500:7:20:220103 281732222637500:8:2:1100516494677 281732222637500:8:3:42940439359 281732222637500:8:4:4298892557 281732222637500:8:5:721234489 281732222637500:8:6:167736091 281732222637500:8:7:48871109 281732222637500:8:8:16792549 281732222637500:8:9:6544800 281732222637500:8:10:2817322 281732222637500:8:11:1314301 281732222637500:8:12:655219 281732222637500:8:13:345374 281732222637500:8:14:190902 281732222637500:8:15:109927 281732222637500:8:16:65595 281732222637500:8:17:40387 281732222637500:8:18:25565 281732222637500:8:19:16588 281732222637500:8:20:11005 281732222637500:9:2:550258247338 281732222637500:9:3:14313479786 281732222637500:9:4:1074723139 281732222637500:9:5:144246897 281732222637500:9:6:27956015 281732222637500:9:7:6981587 281732222637500:9:8:2099068 281732222637500:9:9:727200 281732222637500:9:10:281732 281732222637500:9:11:119481 281732222637500:9:12:54601 281732222637500:9:13:26567 281732222637500:9:14:13635 281732222637500:9:15:7328 281732222637500:9:16:4099 281732222637500:9:17:2375 281732222637500:9:18:1420 281732222637500:9:19:873 281732222637500:9:20:550 281732222637500:10:2:275129123669 281732222637500:10:3:4771159928 281732222637500:10:4:268680784 281732222637500:10:5:28849379 281732222637500:10:6:4659335 281732222637500:10:7:997369 281732222637500:10:8:262383 281732222637500:10:9:80800 281732222637500:10:10:28173 281732222637500:10:11:10861 281732222637500:10:12:4550 281732222637500:10:13:2043 281732222637500:10:14:973 281732222637500:10:15:488 281732222637500:10:16:256 281732222637500:10:17:139 281732222637500:10:18:78 281732222637500:10:19:45 281732222637500:10:20:27 281732222637500:11:2:137564561834 281732222637500:11:3:1590386642 281732222637500:11:4:67170196 281732222637500:11:5:5769875 281732222637500:11:6:776555 281732222637500:11:7:142481 281732222637500:11:8:32797 281732222637500:11:9:8977 281732222637500:11:10:2817 281732222637500:11:11:987 281732222637500:11:12:379 281732222637500:11:13:157 281732222637500:11:14:69 281732222637500:11:15:32 281732222637500:11:16:16 281732222637500:11:17:8 281732222637500:11:18:4 281732222637500:11:19:2 281732222637500:11:20:1 281732222637500:12:2:68782280917 281732222637500:12:3:530128880 281732222637500:12:4:16792549 281732222637500:12:5:1153975 281732222637500:12:6:129425 281732222637500:12:7:20354 281732222637500:12:8:4099 281732222637500:12:9:997 281732222637500:12:10:281 281732222637500:12:11:89 281732222637500:12:12:31 281732222637500:12:13:12 281732222637500:12:14:4 281732222637500:12:15:2 281732222637500:12:16:1 281732222637500:12:17:0 281732222637500:12:18:0 281732222637500:13:2:34391140458 281732222637500:13:3:176709626 281732222637500:13:4:4198137 281732222637500:13:5:230795 281732222637500:13:6:21570 281732222637500:13:7:2907 281732222637500:13:8:512 281732222637500:13:9:110 281732222637500:13:10:28 281732222637500:13:11:8 281732222637500:13:12:2 281732222637500:13:13:0 281732222637500:13:14:0 281732222637500:14:2:17195570229 281732222637500:14:3:58903208 281732222637500:14:4:1049534 281732222637500:14:5:46159 281732222637500:14:6:3595 281732222637500:14:7:415 281732222637500:14:8:64 281732222637500:14:9:12 281732222637500:14:10:2 281732222637500:14:11:0 281732222637500:14:12:0 281732222637500:15:2:8597785114 281732222637500:15:3:19634402 281732222637500:15:4:262383 281732222637500:15:5:9231 281732222637500:15:6:599 281732222637500:15:7:59 281732222637500:15:8:8 281732222637500:15:9:1 281732222637500:15:10:0 281732222637500:15:11:0 281732222637500:16:2:4298892557 281732222637500:16:3:6544800 281732222637500:16:4:65595 281732222637500:16:5:1846 281732222637500:16:6:99 281732222637500:16:7:8 281732222637500:16:8:1 281732222637500:16:9:0 281732222637500:16:10:0 281732222637500:17:2:2149446278 281732222637500:17:3:2181600 281732222637500:17:4:16398 281732222637500:17:5:369 281732222637500:17:6:16 281732222637500:17:7:1 281732222637500:17:8:0 281732222637500:17:9:0 281732222637500:18:2:1074723139 281732222637500:18:3:727200 281732222637500:18:4:4099 281732222637500:18:5:73 281732222637500:18:6:2 281732222637500:18:7:0 281732222637500:18:8:0 281732222637500:19:2:537361569 281732222637500:19:3:242400 281732222637500:19:4:1024 281732222637500:19:5:14 281732222637500:19:6:0 281732222637500:19:7:0 281732222637500:20:2:268680784 281732222637500:20:3:80800 281732222637500:20:4:256 281732222637500:20:5:2 281732222637500:20:6:0 281732222637500:20:7:0 6277008074065850:0:2:6277008074065850 6277008074065850:0:3:6277008074065850 6277008074065850:0:4:6277008074065850 6277008074065850:0:5:6277008074065850 6277008074065850:0:6:6277008074065850 6277008074065850:0:7:6277008074065850 6277008074065850:0:8:6277008074065850 6277008074065850:0:9:6277008074065850 6277008074065850:0:10:6277008074065850 6277008074065850:0:11:6277008074065850 6277008074065850:0:12:6277008074065850 6277008074065850:0:13:6277008074065850 6277008074065850:0:14:6277008074065850 6277008074065850:0:15:6277008074065850 6277008074065850:0:16:6277008074065850 6277008074065850:0:17:6277008074065850 6277008074065850:0:18:6277008074065850 6277008074065850:0:19:6277008074065850 6277008074065850:0:20:6277008074065850 6277008074065850:1:2:3138504037032925 6277008074065850:1:3:2092336024688616 6277008074065850:1:4:1569252018516462 6277008074065850:1:5:1255401614813170 6277008074065850:1:6:1046168012344308 6277008074065850:1:7:896715439152264 6277008074065850:1:8:784626009258231 6277008074065850:1:9:697445341562872 6277008074065850:1:10:627700807406585 6277008074065850:1:11:570637097642350 6277008074065850:1:12:523084006172154 6277008074065850:1:13:482846774928142 6277008074065850:1:14:448357719576132 6277008074065850:1:15:418467204937723 6277008074065850:1:16:392313004629115 6277008074065850:1:17:369235769062697 6277008074065850:1:18:348722670781436 6277008074065850:1:19:330368846003465 6277008074065850:1:20:313850403703292 6277008074065850:2:2:1569252018516462 6277008074065850:2:3:697445341562872 6277008074065850:2:4:392313004629115 6277008074065850:2:5:251080322962634 6277008074065850:2:6:174361335390718 6277008074065850:2:7:128102205593180 6277008074065850:2:8:98078251157278 6277008074065850:2:9:77493926840319 6277008074065850:2:10:62770080740658 6277008074065850:2:11:51876099785668 6277008074065850:2:12:43590333847679 6277008074065850:2:13:37142059609857 6277008074065850:2:14:32025551398295 6277008074065850:2:15:27897813662514 6277008074065850:2:16:24519562789319 6277008074065850:2:17:21719751121335 6277008074065850:2:18:19373481710079 6277008074065850:2:19:17387834000182 6277008074065850:2:20:15692520185164 6277008074065850:3:2:784626009258231 6277008074065850:3:3:232481780520957 6277008074065850:3:4:98078251157278 6277008074065850:3:5:50216064592526 6277008074065850:3:6:29060222565119 6277008074065850:3:7:18300315084740 6277008074065850:3:8:12259781394659 6277008074065850:3:9:8610436315591 6277008074065850:3:10:6277008074065 6277008074065850:3:11:4716009071424 6277008074065850:3:12:3632527820639 6277008074065850:3:13:2857081508450 6277008074065850:3:14:2287539385592 6277008074065850:3:15:1859854244167 6277008074065850:3:16:1532472674332 6277008074065850:3:17:1277632418902 6277008074065850:3:18:1076304539448 6277008074065850:3:19:915149157904 6277008074065850:3:20:784626009258 6277008074065850:4:2:392313004629115 6277008074065850:4:3:77493926840319 6277008074065850:4:4:24519562789319 6277008074065850:4:5:10043212918505 6277008074065850:4:6:4843370427519 6277008074065850:4:7:2614330726391 6277008074065850:4:8:1532472674332 6277008074065850:4:9:956715146176 6277008074065850:4:10:627700807406 6277008074065850:4:11:428728097402 6277008074065850:4:12:302710651719 6277008074065850:4:13:219775500650 6277008074065850:4:14:163395670399 6277008074065850:4:15:123990282944 6277008074065850:4:16:95779542145 6277008074065850:4:17:75154848170 6277008074065850:4:18:59794696636 6277008074065850:4:19:48165745152 6277008074065850:4:20:39231300462 6277008074065850:5:2:196156502314557 6277008074065850:5:3:25831308946773 6277008074065850:5:4:6129890697329 6277008074065850:5:5:2008642583701 6277008074065850:5:6:807228404586 6277008074065850:5:7:373475818055 6277008074065850:5:8:191559084291 6277008074065850:5:9:106301682908 6277008074065850:5:10:62770080740 6277008074065850:5:11:38975281582 6277008074065850:5:12:25225887643 6277008074065850:5:13:16905807742 6277008074065850:5:14:11671119314 6277008074065850:5:15:8266018862 6277008074065850:5:16:5986221384 6277008074065850:5:17:4420873421 6277008074065850:5:18:3321927590 6277008074065850:5:19:2535039218 6277008074065850:5:20:1961565023 6277008074065850:6:2:98078251157278 6277008074065850:6:3:8610436315591 6277008074065850:6:4:1532472674332 6277008074065850:6:5:401728516740 6277008074065850:6:6:134538067431 6277008074065850:6:7:53353688293 6277008074065850:6:8:23944885536 6277008074065850:6:9:11811298100 6277008074065850:6:10:6277008074 6277008074065850:6:11:3543207416 6277008074065850:6:12:2102157303 6277008074065850:6:13:1300446749 6277008074065850:6:14:833651379 6277008074065850:6:15:551067924 6277008074065850:6:16:374138836 6277008074065850:6:17:260051377 6277008074065850:6:18:184551532 6277008074065850:6:19:133423116 6277008074065850:6:20:98078251 6277008074065850:7:2:49039125578639 6277008074065850:7:3:2870145438530 6277008074065850:7:4:383118168583 6277008074065850:7:5:80345703348 6277008074065850:7:6:22423011238 6277008074065850:7:7:7621955470 6277008074065850:7:8:2993110692 6277008074065850:7:9:1312366455 6277008074065850:7:10:627700807 6277008074065850:7:11:322109765 6277008074065850:7:12:175179775 6277008074065850:7:13:100034365 6277008074065850:7:14:59546527 6277008074065850:7:15:36737861 6277008074065850:7:16:23383677 6277008074065850:7:17:15297139 6277008074065850:7:18:10252862 6277008074065850:7:19:7022269 6277008074065850:7:20:4903912 6277008074065850:8:2:24519562789319 6277008074065850:8:3:956715146176 6277008074065850:8:4:95779542145 6277008074065850:8:5:16069140669 6277008074065850:8:6:3737168539 6277008074065850:8:7:1088850781 6277008074065850:8:8:374138836 6277008074065850:8:9:145818495 6277008074065850:8:10:62770080 6277008074065850:8:11:29282705 6277008074065850:8:12:14598314 6277008074065850:8:13:7694951 6277008074065850:8:14:4253323 6277008074065850:8:15:2449190 6277008074065850:8:16:1461479 6277008074065850:8:17:899831 6277008074065850:8:18:569603 6277008074065850:8:19:369593 6277008074065850:8:20:245195 6277008074065850:9:2:12259781394659 6277008074065850:9:3:318905048725 6277008074065850:9:4:23944885536 6277008074065850:9:5:3213828133 6277008074065850:9:6:622861423 6277008074065850:9:7:155550111 6277008074065850:9:8:46767354 6277008074065850:9:9:16202055 6277008074065850:9:10:6277008 6277008074065850:9:11:2662064 6277008074065850:9:12:1216526 6277008074065850:9:13:591919 6277008074065850:9:14:303808 6277008074065850:9:15:163279 6277008074065850:9:16:91342 6277008074065850:9:17:52931 6277008074065850:9:18:31644 6277008074065850:9:19:19452 6277008074065850:9:20:12259 6277008074065850:10:2:6129890697329 6277008074065850:10:3:106301682908 6277008074065850:10:4:5986221384 6277008074065850:10:5:642765626 6277008074065850:10:6:103810237 6277008074065850:10:7:22221444 6277008074065850:10:8:5845919 6277008074065850:10:9:1800228 6277008074065850:10:10:627700 6277008074065850:10:11:242005 6277008074065850:10:12:101377 6277008074065850:10:13:45532 6277008074065850:10:14:21700 6277008074065850:10:15:10885 6277008074065850:10:16:5708 6277008074065850:10:17:3113 6277008074065850:10:18:1758 6277008074065850:10:19:1023 6277008074065850:10:20:612 6277008074065850:11:2:3064945348664 6277008074065850:11:3:35433894302 6277008074065850:11:4:1496555346 6277008074065850:11:5:128553125 6277008074065850:11:6:17301706 6277008074065850:11:7:3174492 6277008074065850:11:8:730739 6277008074065850:11:9:200025 6277008074065850:11:10:62770 6277008074065850:11:11:22000 6277008074065850:11:12:8448 6277008074065850:11:13:3502 6277008074065850:11:14:1550 6277008074065850:11:15:725 6277008074065850:11:16:356 6277008074065850:11:17:183 6277008074065850:11:18:97 6277008074065850:11:19:53 6277008074065850:11:20:30 6277008074065850:12:2:1532472674332 6277008074065850:12:3:11811298100 6277008074065850:12:4:374138836 6277008074065850:12:5:25710625 6277008074065850:12:6:2883617 6277008074065850:12:7:453498 6277008074065850:12:8:91342 6277008074065850:12:9:22225 6277008074065850:12:10:6277 6277008074065850:12:11:2000 6277008074065850:12:12:704 6277008074065850:12:13:269 6277008074065850:12:14:110 6277008074065850:12:15:48 6277008074065850:12:16:22 6277008074065850:12:17:10 6277008074065850:12:18:5 6277008074065850:12:19:2 6277008074065850:12:20:1 6277008074065850:13:2:766236337166 6277008074065850:13:3:3937099366 6277008074065850:13:4:93534709 6277008074065850:13:5:5142125 6277008074065850:13:6:480602 6277008074065850:13:7:64785 6277008074065850:13:8:11417 6277008074065850:13:9:2469 6277008074065850:13:10:627 6277008074065850:13:11:181 6277008074065850:13:12:58 6277008074065850:13:13:20 6277008074065850:13:14:7 6277008074065850:13:15:3 6277008074065850:13:16:1 6277008074065850:13:17:0 6277008074065850:13:18:0 6277008074065850:14:2:383118168583 6277008074065850:14:3:1312366455 6277008074065850:14:4:23383677 6277008074065850:14:5:1028425 6277008074065850:14:6:80100 6277008074065850:14:7:9255 6277008074065850:14:8:1427 6277008074065850:14:9:274 6277008074065850:14:10:62 6277008074065850:14:11:16 6277008074065850:14:12:4 6277008074065850:14:13:1 6277008074065850:14:14:0 6277008074065850:14:15:0 6277008074065850:15:2:191559084291 6277008074065850:15:3:437455485 6277008074065850:15:4:5845919 6277008074065850:15:5:205685 6277008074065850:15:6:13350 6277008074065850:15:7:1322 6277008074065850:15:8:178 6277008074065850:15:9:30 6277008074065850:15:10:6 6277008074065850:15:11:1 6277008074065850:15:12:0 6277008074065850:15:13:0 6277008074065850:16:2:95779542145 6277008074065850:16:3:145818495 6277008074065850:16:4:1461479 6277008074065850:16:5:41137 6277008074065850:16:6:2225 6277008074065850:16:7:188 6277008074065850:16:8:22 6277008074065850:16:9:3 6277008074065850:16:10:0 6277008074065850:16:11:0 6277008074065850:17:2:47889771072 6277008074065850:17:3:48606165 6277008074065850:17:4:365369 6277008074065850:17:5:8227 6277008074065850:17:6:370 6277008074065850:17:7:26 6277008074065850:17:8:2 6277008074065850:17:9:0 6277008074065850:17:10:0 6277008074065850:18:2:23944885536 6277008074065850:18:3:16202055 6277008074065850:18:4:91342 6277008074065850:18:5:1645 6277008074065850:18:6:61 6277008074065850:18:7:3 6277008074065850:18:8:0 6277008074065850:18:9:0 6277008074065850:19:2:11972442768 6277008074065850:19:3:5400685 6277008074065850:19:4:22835 6277008074065850:19:5:329 6277008074065850:19:6:10 6277008074065850:19:7:0 6277008074065850:19:8:0 6277008074065850:20:2:5986221384 6277008074065850:20:3:1800228 6277008074065850:20:4:5708 6277008074065850:20:5:65 6277008074065850:20:6:1 6277008074065850:20:7:0 6277008074065850:20:8:0 10666566767831026:0:2:10666566767831026 10666566767831026:0:3:10666566767831026 10666566767831026:0:4:10666566767831026 10666566767831026:0:5:10666566767831026 10666566767831026:0:6:10666566767831026 10666566767831026:0:7:10666566767831026 10666566767831026:0:8:10666566767831026 10666566767831026:0:9:10666566767831026 10666566767831026:0:10:10666566767831026 10666566767831026:0:11:10666566767831026 10666566767831026:0:12:10666566767831026 10666566767831026:0:13:10666566767831026 10666566767831026:0:14:10666566767831026 10666566767831026:0:15:10666566767831026 10666566767831026:0:16:10666566767831026 10666566767831026:0:17:10666566767831026 10666566767831026:0:18:10666566767831026 10666566767831026:0:19:10666566767831026 10666566767831026:0:20:10666566767831026 10666566767831026:1:2:5333283383915513 10666566767831026:1:3:3555522255943675 10666566767831026:1:4:2666641691957756 10666566767831026:1:5:2133313353566205 10666566767831026:1:6:1777761127971837 10666566767831026:1:7:1523795252547289 10666566767831026:1:8:1333320845978878 10666566767831026:1:9:1185174085314558 10666566767831026:1:10:1066656676783102 10666566767831026:1:11:969687887984638 10666566767831026:1:12:888880563985918 10666566767831026:1:13:820505135987002 10666566767831026:1:14:761897626273644 10666566767831026:1:15:711104451188735 10666566767831026:1:16:666660422989439 10666566767831026:1:17:627445103990060 10666566767831026:1:18:592587042657279 10666566767831026:1:19:561398250938475 10666566767831026:1:20:533328338391551 10666566767831026:2:2:2666641691957756 10666566767831026:2:3:1185174085314558 10666566767831026:2:4:666660422989439 10666566767831026:2:5:426662670713241 10666566767831026:2:6:296293521328639 10666566767831026:2:7:217685036078184 10666566767831026:2:8:166665105747359 10666566767831026:2:9:131686009479395 10666566767831026:2:10:106665667678310 10666566767831026:2:11:88153444362239 10666566767831026:2:12:74073380332159 10666566767831026:2:13:63115779691307 10666566767831026:2:14:54421259019546 10666566767831026:2:15:47406963412582 10666566767831026:2:16:41666276436839 10666566767831026:2:17:36908535528827 10666566767831026:2:18:32921502369848 10666566767831026:2:19:29547276365182 10666566767831026:2:20:26666416919577 10666566767831026:3:2:1333320845978878 10666566767831026:3:3:395058028438186 10666566767831026:3:4:166665105747359 10666566767831026:3:5:85332534142648 10666566767831026:3:6:49382253554773 10666566767831026:3:7:31097862296883 10666566767831026:3:8:20833138218419 10666566767831026:3:9:14631778831043 10666566767831026:3:10:10666566767831 10666566767831026:3:11:8013949487476 10666566767831026:3:12:6172781694346 10666566767831026:3:13:4855059976254 10666566767831026:3:14:3887232787110 10666566767831026:3:15:3160464227505 10666566767831026:3:16:2604142277302 10666566767831026:3:17:2171090325225 10666566767831026:3:18:1828972353880 10666566767831026:3:19:1555119808693 10666566767831026:3:20:1333320845978 10666566767831026:4:2:666660422989439 10666566767831026:4:3:131686009479395 10666566767831026:4:4:41666276436839 10666566767831026:4:5:17066506828529 10666566767831026:4:6:8230375592462 10666566767831026:4:7:4442551756697 10666566767831026:4:8:2604142277302 10666566767831026:4:9:1625753203449 10666566767831026:4:10:1066656676783 10666566767831026:4:11:728540862497 10666566767831026:4:12:514398474528 10666566767831026:4:13:373466152019 10666566767831026:4:14:277659484793 10666566767831026:4:15:210697615167 10666566767831026:4:16:162758892331 10666566767831026:4:17:127711195601 10666566767831026:4:18:101609575215 10666566767831026:4:19:81848410983 10666566767831026:4:20:66666042298 10666566767831026:5:2:333330211494719 10666566767831026:5:3:43895336493131 10666566767831026:5:4:10416569109209 10666566767831026:5:5:3413301365705 10666566767831026:5:6:1371729265410 10666566767831026:5:7:634650250956 10666566767831026:5:8:325517784662 10666566767831026:5:9:180639244827 10666566767831026:5:10:106665667678 10666566767831026:5:11:66230987499 10666566767831026:5:12:42866539544 10666566767831026:5:13:28728165539 10666566767831026:5:14:19832820342 10666566767831026:5:15:14046507677 10666566767831026:5:16:10172430770 10666566767831026:5:17:7512423270 10666566767831026:5:18:5644976400 10666566767831026:5:19:4307811104 10666566767831026:5:20:3333302114 10666566767831026:6:2:166665105747359 10666566767831026:6:3:14631778831043 10666566767831026:6:4:2604142277302 10666566767831026:6:5:682660273141 10666566767831026:6:6:228621544235 10666566767831026:6:7:90664321565 10666566767831026:6:8:40689723082 10666566767831026:6:9:20071027203 10666566767831026:6:10:10666566767 10666566767831026:6:11:6020998863 10666566767831026:6:12:3572211628 10666566767831026:6:13:2209858887 10666566767831026:6:14:1416630024 10666566767831026:6:15:936433845 10666566767831026:6:16:635776923 10666566767831026:6:17:441907251 10666566767831026:6:18:313609800 10666566767831026:6:19:226726900 10666566767831026:6:20:166665105 10666566767831026:7:2:83332552873679 10666566767831026:7:3:4877259610347 10666566767831026:7:4:651035569325 10666566767831026:7:5:136532054628 10666566767831026:7:6:38103590705 10666566767831026:7:7:12952045937 10666566767831026:7:8:5086215385 10666566767831026:7:9:2230114133 10666566767831026:7:10:1066656676 10666566767831026:7:11:547363533 10666566767831026:7:12:297684302 10666566767831026:7:13:169989145 10666566767831026:7:14:101187858 10666566767831026:7:15:62428923 10666566767831026:7:16:39736057 10666566767831026:7:17:25994544 10666566767831026:7:18:17422766 10666566767831026:7:19:11932994 10666566767831026:7:20:8333255 10666566767831026:8:2:41666276436839 10666566767831026:8:3:1625753203449 10666566767831026:8:4:162758892331 10666566767831026:8:5:27306410925 10666566767831026:8:6:6350598450 10666566767831026:8:7:1850292276 10666566767831026:8:8:635776923 10666566767831026:8:9:247790459 10666566767831026:8:10:106665667 10666566767831026:8:11:49760321 10666566767831026:8:12:24807025 10666566767831026:8:13:13076088 10666566767831026:8:14:7227704 10666566767831026:8:15:4161928 10666566767831026:8:16:2483503 10666566767831026:8:17:1529090 10666566767831026:8:18:967931 10666566767831026:8:19:628052 10666566767831026:8:20:416662 10666566767831026:9:2:20833138218419 10666566767831026:9:3:541917734483 10666566767831026:9:4:40689723082 10666566767831026:9:5:5461282185 10666566767831026:9:6:1058433075 10666566767831026:9:7:264327468 10666566767831026:9:8:79472115 10666566767831026:9:9:27532273 10666566767831026:9:10:10666566 10666566767831026:9:11:4523665 10666566767831026:9:12:2067252 10666566767831026:9:13:1005852 10666566767831026:9:14:516264 10666566767831026:9:15:277461 10666566767831026:9:16:155218 10666566767831026:9:17:89946 10666566767831026:9:18:53773 10666566767831026:9:19:33055 10666566767831026:9:20:20833 10666566767831026:10:2:10416569109209 10666566767831026:10:3:180639244827 10666566767831026:10:4:10172430770 10666566767831026:10:5:1092256437 10666566767831026:10:6:176405512 10666566767831026:10:7:37761066 10666566767831026:10:8:9934014 10666566767831026:10:9:3059141 10666566767831026:10:10:1066656 10666566767831026:10:11:411242 10666566767831026:10:12:172271 10666566767831026:10:13:77373 10666566767831026:10:14:36876 10666566767831026:10:15:18497 10666566767831026:10:16:9701 10666566767831026:10:17:5290 10666566767831026:10:18:2987 10666566767831026:10:19:1739 10666566767831026:10:20:1041 10666566767831026:11:2:5208284554604 10666566767831026:11:3:60213081609 10666566767831026:11:4:2543107692 10666566767831026:11:5:218451287 10666566767831026:11:6:29400918 10666566767831026:11:7:5394438 10666566767831026:11:8:1241751 10666566767831026:11:9:339904 10666566767831026:11:10:106665 10666566767831026:11:11:37385 10666566767831026:11:12:14355 10666566767831026:11:13:5951 10666566767831026:11:14:2634 10666566767831026:11:15:1233 10666566767831026:11:16:606 10666566767831026:11:17:311 10666566767831026:11:18:165 10666566767831026:11:19:91 10666566767831026:11:20:52 10666566767831026:12:2:2604142277302 10666566767831026:12:3:20071027203 10666566767831026:12:4:635776923 10666566767831026:12:5:43690257 10666566767831026:12:6:4900153 10666566767831026:12:7:770634 10666566767831026:12:8:155218 10666566767831026:12:9:37767 10666566767831026:12:10:10666 10666566767831026:12:11:3398 10666566767831026:12:12:1196 10666566767831026:12:13:457 10666566767831026:12:14:188 10666566767831026:12:15:82 10666566767831026:12:16:37 10666566767831026:12:17:18 10666566767831026:12:18:9 10666566767831026:12:19:4 10666566767831026:12:20:2 10666566767831026:13:2:1302071138651 10666566767831026:13:3:6690342401 10666566767831026:13:4:158944230 10666566767831026:13:5:8738051 10666566767831026:13:6:816692 10666566767831026:13:7:110090 10666566767831026:13:8:19402 10666566767831026:13:9:4196 10666566767831026:13:10:1066 10666566767831026:13:11:308 10666566767831026:13:12:99 10666566767831026:13:13:35 10666566767831026:13:14:13 10666566767831026:13:15:5 10666566767831026:13:16:2 10666566767831026:13:17:1 10666566767831026:13:18:0 10666566767831026:13:19:0 10666566767831026:14:2:651035569325 10666566767831026:14:3:2230114133 10666566767831026:14:4:39736057 10666566767831026:14:5:1747610 10666566767831026:14:6:136115 10666566767831026:14:7:15727 10666566767831026:14:8:2425 10666566767831026:14:9:466 10666566767831026:14:10:106 10666566767831026:14:11:28 10666566767831026:14:12:8 10666566767831026:14:13:2 10666566767831026:14:14:0 10666566767831026:14:15:0 10666566767831026:15:2:325517784662 10666566767831026:15:3:743371377 10666566767831026:15:4:9934014 10666566767831026:15:5:349522 10666566767831026:15:6:22685 10666566767831026:15:7:2246 10666566767831026:15:8:303 10666566767831026:15:9:51 10666566767831026:15:10:10 10666566767831026:15:11:2 10666566767831026:15:12:0 10666566767831026:15:13:0 10666566767831026:16:2:162758892331 10666566767831026:16:3:247790459 10666566767831026:16:4:2483503 10666566767831026:16:5:69904 10666566767831026:16:6:3780 10666566767831026:16:7:320 10666566767831026:16:8:37 10666566767831026:16:9:5 10666566767831026:16:10:1 10666566767831026:16:11:0 10666566767831026:16:12:0 10666566767831026:17:2:81379446165 10666566767831026:17:3:82596819 10666566767831026:17:4:620875 10666566767831026:17:5:13980 10666566767831026:17:6:630 10666566767831026:17:7:45 10666566767831026:17:8:4 10666566767831026:17:9:0 10666566767831026:17:10:0 10666566767831026:18:2:40689723082 10666566767831026:18:3:27532273 10666566767831026:18:4:155218 10666566767831026:18:5:2796 10666566767831026:18:6:105 10666566767831026:18:7:6 10666566767831026:18:8:0 10666566767831026:18:9:0 10666566767831026:19:2:20344861541 10666566767831026:19:3:9177424 10666566767831026:19:4:38804 10666566767831026:19:5:559 10666566767831026:19:6:17 10666566767831026:19:7:0 10666566767831026:19:8:0 10666566767831026:20:2:10172430770 10666566767831026:20:3:3059141 10666566767831026:20:4:9701 10666566767831026:20:5:111 10666566767831026:20:6:2 10666566767831026:20:7:0 10666566767831026:20:8:0 471720470025117723:0:2:471720470025117723 471720470025117723:0:3:471720470025117723 471720470025117723:0:4:471720470025117723 471720470025117723:0:5:471720470025117723 471720470025117723:0:6:471720470025117723 471720470025117723:0:7:471720470025117723 471720470025117723:0:8:471720470025117723 471720470025117723:0:9:471720470025117723 471720470025117723:0:10:471720470025117723 471720470025117723:0:11:471720470025117723 471720470025117723:0:12:471720470025117723 471720470025117723:0:13:471720470025117723 471720470025117723:0:14:471720470025117723 471720470025117723:0:15:471720470025117723 471720470025117723:0:16:471720470025117723 471720470025117723:0:17:471720470025117723 471720470025117723:0:18:471720470025117723 471720470025117723:0:19:471720470025117723 471720470025117723:0:20:471720470025117723 471720470025117723:1:2:235860235012558861 471720470025117723:1:3:157240156675039241 471720470025117723:1:4:117930117506279430 471720470025117723:1:5:94344094005023544 471720470025117723:1:6:78620078337519620 471720470025117723:1:7:67388638575016817 471720470025117723:1:8:58965058753139715 471720470025117723:1:9:52413385558346413 471720470025117723:1:10:47172047002511772 471720470025117723:1:11:42883679093192520 471720470025117723:1:12:39310039168759810 471720470025117723:1:13:36286190001932132 471720470025117723:1:14:33694319287508408 471720470025117723:1:15:31448031335007848 471720470025117723:1:16:29482529376569857 471720470025117723:1:17:27748262942653983 471720470025117723:1:18:26206692779173206 471720470025117723:1:19:24827393159216722 471720470025117723:1:20:23586023501255886 471720470025117723:2:2:117930117506279430 471720470025117723:2:3:52413385558346413 471720470025117723:2:4:29482529376569857 471720470025117723:2:5:18868818801004708 471720470025117723:2:6:13103346389586603 471720470025117723:2:7:9626948367859545 471720470025117723:2:8:7370632344142464 471720470025117723:2:9:5823709506482934 471720470025117723:2:10:4717204700251177 471720470025117723:2:11:3898516281199320 471720470025117723:2:12:3275836597396650 471720470025117723:2:13:2791245384764010 471720470025117723:2:14:2406737091964886 471720470025117723:2:15:2096535422333856 471720470025117723:2:16:1842658086035616 471720470025117723:2:17:1632250761332587 471720470025117723:2:18:1455927376620733 471720470025117723:2:19:1306704903116669 471720470025117723:2:20:1179301175062794 471720470025117723:3:2:58965058753139715 471720470025117723:3:3:17471128519448804 471720470025117723:3:4:7370632344142464 471720470025117723:3:5:3773763760200941 471720470025117723:3:6:2183891064931100 471720470025117723:3:7:1375278338265649 471720470025117723:3:8:921329043017808 471720470025117723:3:9:647078834053659 471720470025117723:3:10:471720470025117 471720470025117723:3:11:354410571018120 471720470025117723:3:12:272986383116387 471720470025117723:3:13:214711183443385 471720470025117723:3:14:171909792283206 471720470025117723:3:15:139769028155590 471720470025117723:3:16:115166130377226 471720470025117723:3:17:96014750666622 471720470025117723:3:18:80884854256707 471720470025117723:3:19:68773942269298 471720470025117723:3:20:58965058753139 471720470025117723:4:2:29482529376569857 471720470025117723:4:3:5823709506482934 471720470025117723:4:4:1842658086035616 471720470025117723:4:5:754752752040188 471720470025117723:4:6:363981844155183 471720470025117723:4:7:196468334037949 471720470025117723:4:8:115166130377226 471720470025117723:4:9:71897648228184 471720470025117723:4:10:47172047002511 471720470025117723:4:11:32219142819829 471720470025117723:4:12:22748865259698 471720470025117723:4:13:16516244880260 471720470025117723:4:14:12279270877371 471720470025117723:4:15:9317935210372 471720470025117723:4:16:7197883148576 471720470025117723:4:17:5647926509801 471720470025117723:4:18:4493603014261 471720470025117723:4:19:3619681172068 471720470025117723:4:20:2948252937656 471720470025117723:5:2:14741264688284928 471720470025117723:5:3:1941236502160978 471720470025117723:5:4:460664521508904 471720470025117723:5:5:150950550408037 471720470025117723:5:6:60663640692530 471720470025117723:5:7:28066904862564 471720470025117723:5:8:14395766297153 471720470025117723:5:9:7988627580909 471720470025117723:5:10:4717204700251 471720470025117723:5:11:2929012983620 471720470025117723:5:12:1895738771641 471720470025117723:5:13:1270480375404 471720470025117723:5:14:877090776955 471720470025117723:5:15:621195680691 471720470025117723:5:16:449867696786 471720470025117723:5:17:332230971164 471720470025117723:5:18:249644611903 471720470025117723:5:19:190509535372 471720470025117723:5:20:147412646882 471720470025117723:6:2:7370632344142464 471720470025117723:6:3:647078834053659 471720470025117723:6:4:115166130377226 471720470025117723:6:5:30190110081607 471720470025117723:6:6:10110606782088 471720470025117723:6:7:4009557837509 471720470025117723:6:8:1799470787144 471720470025117723:6:9:887625286767 471720470025117723:6:10:471720470025 471720470025117723:6:11:266273907601 471720470025117723:6:12:157978230970 471720470025117723:6:13:97729259646 471720470025117723:6:14:62649341211 471720470025117723:6:15:41413045379 471720470025117723:6:16:28116731049 471720470025117723:6:17:19542998303 471720470025117723:6:18:13869145105 471720470025117723:6:19:10026817651 471720470025117723:6:20:7370632344 471720470025117723:7:2:3685316172071232 471720470025117723:7:3:215692944684553 471720470025117723:7:4:28791532594306 471720470025117723:7:5:6038022016321 471720470025117723:7:6:1685101130348 471720470025117723:7:7:572793976787 471720470025117723:7:8:224933848393 471720470025117723:7:9:98625031863 471720470025117723:7:10:47172047002 471720470025117723:7:11:24206718872 471720470025117723:7:12:13164852580 471720470025117723:7:13:7517635357 471720470025117723:7:14:4474952943 471720470025117723:7:15:2760869691 471720470025117723:7:16:1757295690 471720470025117723:7:17:1149588135 471720470025117723:7:18:770508061 471720470025117723:7:19:527727244 471720470025117723:7:20:368531617 471720470025117723:8:2:1842658086035616 471720470025117723:8:3:71897648228184 471720470025117723:8:4:7197883148576 471720470025117723:8:5:1207604403264 471720470025117723:8:6:280850188391 471720470025117723:8:7:81827710969 471720470025117723:8:8:28116731049 471720470025117723:8:9:10958336873 471720470025117723:8:10:4717204700 471720470025117723:8:11:2200610806 471720470025117723:8:12:1097071048 471720470025117723:8:13:578279642 471720470025117723:8:14:319639495 471720470025117723:8:15:184057979 471720470025117723:8:16:109830980 471720470025117723:8:17:67622831 471720470025117723:8:18:42806003 471720470025117723:8:19:27775118 471720470025117723:8:20:18426580 471720470025117723:9:2:921329043017808 471720470025117723:9:3:23965882742728 471720470025117723:9:4:1799470787144 471720470025117723:9:5:241520880652 471720470025117723:9:6:46808364731 471720470025117723:9:7:11689672995 471720470025117723:9:8:3514591381 471720470025117723:9:9:1217592985 471720470025117723:9:10:471720470 471720470025117723:9:11:200055527 471720470025117723:9:12:91422587 471720470025117723:9:13:44483049 471720470025117723:9:14:22831392 471720470025117723:9:15:12270531 471720470025117723:9:16:6864436 471720470025117723:9:17:3977813 471720470025117723:9:18:2378111 471720470025117723:9:19:1461848 471720470025117723:9:20:921329 471720470025117723:10:2:460664521508904 471720470025117723:10:3:7988627580909 471720470025117723:10:4:449867696786 471720470025117723:10:5:48304176130 471720470025117723:10:6:7801394121 471720470025117723:10:7:1669953285 471720470025117723:10:8:439323922 471720470025117723:10:9:135288109 471720470025117723:10:10:47172047 471720470025117723:10:11:18186866 471720470025117723:10:12:7618548 471720470025117723:10:13:3421773 471720470025117723:10:14:1630813 471720470025117723:10:15:818035 471720470025117723:10:16:429027 471720470025117723:10:17:233989 471720470025117723:10:18:132117 471720470025117723:10:19:76939 471720470025117723:10:20:46066 471720470025117723:11:2:230332260754452 471720470025117723:11:3:2662875860303 471720470025117723:11:4:112466924196 471720470025117723:11:5:9660835226 471720470025117723:11:6:1300232353 471720470025117723:11:7:238564755 471720470025117723:11:8:54915490 471720470025117723:11:9:15032012 471720470025117723:11:10:4717204 471720470025117723:11:11:1653351 471720470025117723:11:12:634879 471720470025117723:11:13:263213 471720470025117723:11:14:116486 471720470025117723:11:15:54535 471720470025117723:11:16:26814 471720470025117723:11:17:13764 471720470025117723:11:18:7339 471720470025117723:11:19:4049 471720470025117723:11:20:2303 471720470025117723:12:2:115166130377226 471720470025117723:12:3:887625286767 471720470025117723:12:4:28116731049 471720470025117723:12:5:1932167045 471720470025117723:12:6:216705392 471720470025117723:12:7:34080679 471720470025117723:12:8:6864436 471720470025117723:12:9:1670223 471720470025117723:12:10:471720 471720470025117723:12:11:150304 471720470025117723:12:12:52906 471720470025117723:12:13:20247 471720470025117723:12:14:8320 471720470025117723:12:15:3635 471720470025117723:12:16:1675 471720470025117723:12:17:809 471720470025117723:12:18:407 471720470025117723:12:19:213 471720470025117723:12:20:115 471720470025117723:13:2:57583065188613 471720470025117723:13:3:295875095589 471720470025117723:13:4:7029182762 471720470025117723:13:5:386433409 471720470025117723:13:6:36117565 471720470025117723:13:7:4868668 471720470025117723:13:8:858054 471720470025117723:13:9:185580 471720470025117723:13:10:47172 471720470025117723:13:11:13664 471720470025117723:13:12:4408 471720470025117723:13:13:1557 471720470025117723:13:14:594 471720470025117723:13:15:242 471720470025117723:13:16:104 471720470025117723:13:17:47 471720470025117723:13:18:22 471720470025117723:13:19:11 471720470025117723:13:20:5 471720470025117723:14:2:28791532594306 471720470025117723:14:3:98625031863 471720470025117723:14:4:1757295690 471720470025117723:14:5:77286681 471720470025117723:14:6:6019594 471720470025117723:14:7:695524 471720470025117723:14:8:107256 471720470025117723:14:9:20620 471720470025117723:14:10:4717 471720470025117723:14:11:1242 471720470025117723:14:12:367 471720470025117723:14:13:119 471720470025117723:14:14:42 471720470025117723:14:15:16 471720470025117723:14:16:6 471720470025117723:14:17:2 471720470025117723:14:18:1 471720470025117723:14:19:0 471720470025117723:14:20:0 471720470025117723:15:2:14395766297153 471720470025117723:15:3:32875010621 471720470025117723:15:4:439323922 471720470025117723:15:5:15457336 471720470025117723:15:6:1003265 471720470025117723:15:7:99360 471720470025117723:15:8:13407 471720470025117723:15:9:2291 471720470025117723:15:10:471 471720470025117723:15:11:112 471720470025117723:15:12:30 471720470025117723:15:13:9 471720470025117723:15:14:3 471720470025117723:15:15:1 471720470025117723:15:16:0 471720470025117723:15:17:0 471720470025117723:16:2:7197883148576 471720470025117723:16:3:10958336873 471720470025117723:16:4:109830980 471720470025117723:16:5:3091467 471720470025117723:16:6:167210 471720470025117723:16:7:14194 471720470025117723:16:8:1675 471720470025117723:16:9:254 471720470025117723:16:10:47 471720470025117723:16:11:10 471720470025117723:16:12:2 471720470025117723:16:13:0 471720470025117723:16:14:0 471720470025117723:17:2:3598941574288 471720470025117723:17:3:3652778957 471720470025117723:17:4:27457745 471720470025117723:17:5:618293 471720470025117723:17:6:27868 471720470025117723:17:7:2027 471720470025117723:17:8:209 471720470025117723:17:9:28 471720470025117723:17:10:4 471720470025117723:17:11:0 471720470025117723:17:12:0 471720470025117723:18:2:1799470787144 471720470025117723:18:3:1217592985 471720470025117723:18:4:6864436 471720470025117723:18:5:123658 471720470025117723:18:6:4644 471720470025117723:18:7:289 471720470025117723:18:8:26 471720470025117723:18:9:3 471720470025117723:18:10:0 471720470025117723:18:11:0 471720470025117723:19:2:899735393572 471720470025117723:19:3:405864328 471720470025117723:19:4:1716109 471720470025117723:19:5:24731 471720470025117723:19:6:774 471720470025117723:19:7:41 471720470025117723:19:8:3 471720470025117723:19:9:0 471720470025117723:19:10:0 471720470025117723:20:2:449867696786 471720470025117723:20:3:135288109 471720470025117723:20:4:429027 471720470025117723:20:5:4946 471720470025117723:20:6:129 471720470025117723:20:7:5 471720470025117723:20:8:0 471720470025117723:20:9:0 8410268224950877598:0:2:8410268224950877598 8410268224950877598:0:3:8410268224950877598 8410268224950877598:0:4:8410268224950877598 8410268224950877598:0:5:8410268224950877598 8410268224950877598:0:6:8410268224950877598 8410268224950877598:0:7:8410268224950877598 8410268224950877598:0:8:8410268224950877598 8410268224950877598:0:9:8410268224950877598 8410268224950877598:0:10:8410268224950877598 8410268224950877598:0:11:8410268224950877598 8410268224950877598:0:12:8410268224950877598 8410268224950877598:0:13:8410268224950877598 8410268224950877598:0:14:8410268224950877598 8410268224950877598:0:15:8410268224950877598 8410268224950877598:0:16:8410268224950877598 8410268224950877598:0:17:8410268224950877598 8410268224950877598:0:18:8410268224950877598 8410268224950877598:0:19:8410268224950877598 8410268224950877598:0:20:8410268224950877598 8410268224950877598:1:2:4205134112475438799 8410268224950877598:1:3:2803422741650292532 8410268224950877598:1:4:2102567056237719399 8410268224950877598:1:5:1682053644990175519 8410268224950877598:1:6:1401711370825146266 8410268224950877598:1:7:1201466889278696799 8410268224950877598:1:8:1051283528118859699 8410268224950877598:1:9:934474247216764177 8410268224950877598:1:10:841026822495087759 8410268224950877598:1:11:764569838631897963 8410268224950877598:1:12:700855685412573133 8410268224950877598:1:13:646943709611605969 8410268224950877598:1:14:600733444639348399 8410268224950877598:1:15:560684548330058506 8410268224950877598:1:16:525641764059429849 8410268224950877598:1:17:494721660291228094 8410268224950877598:1:18:467237123608382088 8410268224950877598:1:19:442645696050046189 8410268224950877598:1:20:420513411247543879 8410268224950877598:2:2:2102567056237719399 8410268224950877598:2:3:934474247216764177 8410268224950877598:2:4:525641764059429849 8410268224950877598:2:5:336410728998035103 8410268224950877598:2:6:233618561804191044 8410268224950877598:2:7:171638127039813828 8410268224950877598:2:8:131410441014857462 8410268224950877598:2:9:103830471912973797 8410268224950877598:2:10:84102682249508775 8410268224950877598:2:11:69506348966536178 8410268224950877598:2:12:58404640451047761 8410268224950877598:2:13:49764900739354305 8410268224950877598:2:14:42909531759953457 8410268224950877598:2:15:37378969888670567 8410268224950877598:2:16:32852610253714365 8410268224950877598:2:17:29101274134778123 8410268224950877598:2:18:25957617978243449 8410268224950877598:2:19:23297141897370852 8410268224950877598:2:20:21025670562377193 8410268224950877598:3:2:1051283528118859699 8410268224950877598:3:3:311491415738921392 8410268224950877598:3:4:131410441014857462 8410268224950877598:3:5:67282145799607020 8410268224950877598:3:6:38936426967365174 8410268224950877598:3:7:24519732434259118 8410268224950877598:3:8:16426305126857182 8410268224950877598:3:9:11536719101441533 8410268224950877598:3:10:8410268224950877 8410268224950877598:3:11:6318758996957834 8410268224950877598:3:12:4867053370920646 8410268224950877598:3:13:3828069287642638 8410268224950877598:3:14:3064966554282389 8410268224950877598:3:15:2491931325911371 8410268224950877598:3:16:2053288140857147 8410268224950877598:3:17:1711839654986948 8410268224950877598:3:18:1442089887680191 8410268224950877598:3:19:1226165363019518 8410268224950877598:3:20:1051283528118859 8410268224950877598:4:2:525641764059429849 8410268224950877598:4:3:103830471912973797 8410268224950877598:4:4:32852610253714365 8410268224950877598:4:5:13456429159921404 8410268224950877598:4:6:6489404494560862 8410268224950877598:4:7:3502818919179874 8410268224950877598:4:8:2053288140857147 8410268224950877598:4:9:1281857677937948 8410268224950877598:4:10:841026822495087 8410268224950877598:4:11:574432636087075 8410268224950877598:4:12:405587780910053 8410268224950877598:4:13:294466868280202 8410268224950877598:4:14:218926182448742 8410268224950877598:4:15:166128755060758 8410268224950877598:4:16:128330508803571 8410268224950877598:4:17:100696450293349 8410268224950877598:4:18:80116104871121 8410268224950877598:4:19:64535019106290 8410268224950877598:4:20:52564176405942 8410268224950877598:5:2:262820882029714924 8410268224950877598:5:3:34610157304324599 8410268224950877598:5:4:8213152563428591 8410268224950877598:5:5:2691285831984280 8410268224950877598:5:6:1081567415760143 8410268224950877598:5:7:500402702739982 8410268224950877598:5:8:256661017607143 8410268224950877598:5:9:142428630881994 8410268224950877598:5:10:84102682249508 8410268224950877598:5:11:52221148735188 8410268224950877598:5:12:33798981742504 8410268224950877598:5:13:22651297560015 8410268224950877598:5:14:15637584460624 8410268224950877598:5:15:11075250337383 8410268224950877598:5:16:8020656800223 8410268224950877598:5:17:5923320605491 8410268224950877598:5:18:4450894715062 8410268224950877598:5:19:3396579952962 8410268224950877598:5:20:2628208820297 8410268224950877598:6:2:131410441014857462 8410268224950877598:6:3:11536719101441533 8410268224950877598:6:4:2053288140857147 8410268224950877598:6:5:538257166396856 8410268224950877598:6:6:180261235960023 8410268224950877598:6:7:71486100391426 8410268224950877598:6:8:32082627200892 8410268224950877598:6:9:15825403431332 8410268224950877598:6:10:8410268224950 8410268224950877598:6:11:4747377157744 8410268224950877598:6:12:2816581811875 8410268224950877598:6:13:1742407504616 8410268224950877598:6:14:1116970318616 8410268224950877598:6:15:738350022492 8410268224950877598:6:16:501291050013 8410268224950877598:6:17:348430623852 8410268224950877598:6:18:247271928614 8410268224950877598:6:19:178767365945 8410268224950877598:6:20:131410441014 8410268224950877598:7:2:65705220507428731 8410268224950877598:7:3:3845573033813844 8410268224950877598:7:4:513322035214286 8410268224950877598:7:5:107651433279371 8410268224950877598:7:6:30043539326670 8410268224950877598:7:7:10212300055918 8410268224950877598:7:8:4010328400111 8410268224950877598:7:9:1758378159036 8410268224950877598:7:10:841026822495 8410268224950877598:7:11:431579741613 8410268224950877598:7:12:234715150989 8410268224950877598:7:13:134031346508 8410268224950877598:7:14:79783594186 8410268224950877598:7:15:49223334832 8410268224950877598:7:16:31330690625 8410268224950877598:7:17:20495919050 8410268224950877598:7:18:13737329367 8410268224950877598:7:19:9408808733 8410268224950877598:7:20:6570522050 8410268224950877598:8:2:32852610253714365 8410268224950877598:8:3:1281857677937948 8410268224950877598:8:4:128330508803571 8410268224950877598:8:5:21530286655874 8410268224950877598:8:6:5007256554445 8410268224950877598:8:7:1458900007988 8410268224950877598:8:8:501291050013 8410268224950877598:8:9:195375351004 8410268224950877598:8:10:84102682249 8410268224950877598:8:11:39234521964 8410268224950877598:8:12:19559595915 8410268224950877598:8:13:10310103577 8410268224950877598:8:14:5698828156 8410268224950877598:8:15:3281555655 8410268224950877598:8:16:1958168164 8410268224950877598:8:17:1205642297 8410268224950877598:8:18:763184964 8410268224950877598:8:19:495200459 8410268224950877598:8:20:328526102 8410268224950877598:9:2:16426305126857182 8410268224950877598:9:3:427285892645982 8410268224950877598:9:4:32082627200892 8410268224950877598:9:5:4306057331174 8410268224950877598:9:6:834542759074 8410268224950877598:9:7:208414286855 8410268224950877598:9:8:62661381251 8410268224950877598:9:9:21708372333 8410268224950877598:9:10:8410268224 8410268224950877598:9:11:3566774724 8410268224950877598:9:12:1629966326 8410268224950877598:9:13:793084890 8410268224950877598:9:14:407059154 8410268224950877598:9:15:218770377 8410268224950877598:9:16:122385510 8410268224950877598:9:17:70920135 8410268224950877598:9:18:42399164 8410268224950877598:9:19:26063182 8410268224950877598:9:20:16426305 8410268224950877598:10:2:8213152563428591 8410268224950877598:10:3:142428630881994 8410268224950877598:10:4:8020656800223 8410268224950877598:10:5:861211466234 8410268224950877598:10:6:139090459845 8410268224950877598:10:7:29773469550 8410268224950877598:10:8:7832672656 8410268224950877598:10:9:2412041370 8410268224950877598:10:10:841026822 8410268224950877598:10:11:324252247 8410268224950877598:10:12:135830527 8410268224950877598:10:13:61006530 8410268224950877598:10:14:29075653 8410268224950877598:10:15:14584691 8410268224950877598:10:16:7649094 8410268224950877598:10:17:4171772 8410268224950877598:10:18:2355509 8410268224950877598:10:19:1371746 8410268224950877598:10:20:821315 8410268224950877598:11:2:4106576281714295 8410268224950877598:11:3:47476210293998 8410268224950877598:11:4:2005164200055 8410268224950877598:11:5:172242293246 8410268224950877598:11:6:23181743307 8410268224950877598:11:7:4253352792 8410268224950877598:11:8:979084082 8410268224950877598:11:9:268004596 8410268224950877598:11:10:84102682 8410268224950877598:11:11:29477477 8410268224950877598:11:12:11319210 8410268224950877598:11:13:4692810 8410268224950877598:11:14:2076832 8410268224950877598:11:15:972312 8410268224950877598:11:16:478068 8410268224950877598:11:17:245398 8410268224950877598:11:18:130861 8410268224950877598:11:19:72197 8410268224950877598:11:20:41065 8410268224950877598:12:2:2053288140857147 8410268224950877598:12:3:15825403431332 8410268224950877598:12:4:501291050013 8410268224950877598:12:5:34448458649 8410268224950877598:12:6:3863623884 8410268224950877598:12:7:607621827 8410268224950877598:12:8:122385510 8410268224950877598:12:9:29778288 8410268224950877598:12:10:8410268 8410268224950877598:12:11:2679770 8410268224950877598:12:12:943267 8410268224950877598:12:13:360985 8410268224950877598:12:14:148345 8410268224950877598:12:15:64820 8410268224950877598:12:16:29879 8410268224950877598:12:17:14435 8410268224950877598:12:18:7270 8410268224950877598:12:19:3799 8410268224950877598:12:20:2053 8410268224950877598:13:2:1026644070428573 8410268224950877598:13:3:5275134477110 8410268224950877598:13:4:125322762503 8410268224950877598:13:5:6889691729 8410268224950877598:13:6:643937314 8410268224950877598:13:7:86803118 8410268224950877598:13:8:15298188 8410268224950877598:13:9:3308698 8410268224950877598:13:10:841026 8410268224950877598:13:11:243615 8410268224950877598:13:12:78605 8410268224950877598:13:13:27768 8410268224950877598:13:14:10596 8410268224950877598:13:15:4321 8410268224950877598:13:16:1867 8410268224950877598:13:17:849 8410268224950877598:13:18:403 8410268224950877598:13:19:199 8410268224950877598:13:20:102 8410268224950877598:14:2:513322035214286 8410268224950877598:14:3:1758378159036 8410268224950877598:14:4:31330690625 8410268224950877598:14:5:1377938345 8410268224950877598:14:6:107322885 8410268224950877598:14:7:12400445 8410268224950877598:14:8:1912273 8410268224950877598:14:9:367633 8410268224950877598:14:10:84102 8410268224950877598:14:11:22146 8410268224950877598:14:12:6550 8410268224950877598:14:13:2136 8410268224950877598:14:14:756 8410268224950877598:14:15:288 8410268224950877598:14:16:116 8410268224950877598:14:17:49 8410268224950877598:14:18:22 8410268224950877598:14:19:10 8410268224950877598:14:20:5 8410268224950877598:15:2:256661017607143 8410268224950877598:15:3:586126053012 8410268224950877598:15:4:7832672656 8410268224950877598:15:5:275587669 8410268224950877598:15:6:17887147 8410268224950877598:15:7:1771492 8410268224950877598:15:8:239034 8410268224950877598:15:9:40848 8410268224950877598:15:10:8410 8410268224950877598:15:11:2013 8410268224950877598:15:12:545 8410268224950877598:15:13:164 8410268224950877598:15:14:54 8410268224950877598:15:15:19 8410268224950877598:15:16:7 8410268224950877598:15:17:2 8410268224950877598:15:18:1 8410268224950877598:15:19:0 8410268224950877598:15:20:0 8410268224950877598:16:2:128330508803571 8410268224950877598:16:3:195375351004 8410268224950877598:16:4:1958168164 8410268224950877598:16:5:55117533 8410268224950877598:16:6:2981191 8410268224950877598:16:7:253070 8410268224950877598:16:8:29879 8410268224950877598:16:9:4538 8410268224950877598:16:10:841 8410268224950877598:16:11:183 8410268224950877598:16:12:45 8410268224950877598:16:13:12 8410268224950877598:16:14:3 8410268224950877598:16:15:1 8410268224950877598:16:16:0 8410268224950877598:16:17:0 8410268224950877598:17:2:64165254401785 8410268224950877598:17:3:65125117001 8410268224950877598:17:4:489542041 8410268224950877598:17:5:11023506 8410268224950877598:17:6:496865 8410268224950877598:17:7:36152 8410268224950877598:17:8:3734 8410268224950877598:17:9:504 8410268224950877598:17:10:84 8410268224950877598:17:11:16 8410268224950877598:17:12:3 8410268224950877598:17:13:0 8410268224950877598:17:14:0 8410268224950877598:18:2:32082627200892 8410268224950877598:18:3:21708372333 8410268224950877598:18:4:122385510 8410268224950877598:18:5:2204701 8410268224950877598:18:6:82810 8410268224950877598:18:7:5164 8410268224950877598:18:8:466 8410268224950877598:18:9:56 8410268224950877598:18:10:8 8410268224950877598:18:11:1 8410268224950877598:18:12:0 8410268224950877598:18:13:0 8410268224950877598:19:2:16041313600446 8410268224950877598:19:3:7236124111 8410268224950877598:19:4:30596377 8410268224950877598:19:5:440940 8410268224950877598:19:6:13801 8410268224950877598:19:7:737 8410268224950877598:19:8:58 8410268224950877598:19:9:6 8410268224950877598:19:10:0 8410268224950877598:19:11:0 8410268224950877598:20:2:8020656800223 8410268224950877598:20:3:2412041370 8410268224950877598:20:4:7649094 8410268224950877598:20:5:88188 8410268224950877598:20:6:2300 8410268224950877598:20:7:105 8410268224950877598:20:8:7 8410268224950877598:20:9:0 8410268224950877598:20:10:0 11736061446441134093:0:2:11736061446441134093 11736061446441134093:0:3:11736061446441134093 11736061446441134093:0:4:11736061446441134093 11736061446441134093:0:5:11736061446441134093 11736061446441134093:0:6:11736061446441134093 11736061446441134093:0:7:11736061446441134093 11736061446441134093:0:8:11736061446441134093 11736061446441134093:0:9:11736061446441134093 11736061446441134093:0:10:11736061446441134093 11736061446441134093:0:11:11736061446441134093 11736061446441134093:0:12:11736061446441134093 11736061446441134093:0:13:11736061446441134093 11736061446441134093:0:14:11736061446441134093 11736061446441134093:0:15:11736061446441134093 11736061446441134093:0:16:11736061446441134093 11736061446441134093:0:17:11736061446441134093 11736061446441134093:0:18:11736061446441134093 11736061446441134093:0:19:11736061446441134093 11736061446441134093:0:20:11736061446441134093 11736061446441134093:1:2:5868030723220567046 11736061446441134093:1:3:3912020482147044697 11736061446441134093:1:4:2934015361610283523 11736061446441134093:1:5:2347212289288226818 11736061446441134093:1:6:1956010241073522348 11736061446441134093:1:7:1676580206634447727 11736061446441134093:1:8:1467007680805141761 11736061446441134093:1:9:1304006827382348232 11736061446441134093:1:10:1173606144644113409 11736061446441134093:1:11:1066914676949194008 11736061446441134093:1:12:978005120536761174 11736061446441134093:1:13:902773957418548776 11736061446441134093:1:14:838290103317223863 11736061446441134093:1:15:782404096429408939 11736061446441134093:1:16:733503840402570880 11736061446441134093:1:17:690356555673007887 11736061446441134093:1:18:652003413691174116 11736061446441134093:1:19:617687444549533373 11736061446441134093:1:20:586803072322056704 11736061446441134093:2:2:2934015361610283523 11736061446441134093:2:3:1304006827382348232 11736061446441134093:2:4:733503840402570880 11736061446441134093:2:5:469442457857645363 11736061446441134093:2:6:326001706845587058 11736061446441134093:2:7:239511458090635389 11736061446441134093:2:8:183375960100642720 11736061446441134093:2:9:144889647486927581 11736061446441134093:2:10:117360614464411340 11736061446441134093:2:11:96992243359017637 11736061446441134093:2:12:81500426711396764 11736061446441134093:2:13:69444150570657598 11736061446441134093:2:14:59877864522658847 11736061446441134093:2:15:52160273095293929 11736061446441134093:2:16:45843990025160680 11736061446441134093:2:17:40609209157235758 11736061446441134093:2:18:36222411871731895 11736061446441134093:2:19:32509865502607019 11736061446441134093:2:20:29340153616102835 11736061446441134093:3:2:1467007680805141761 11736061446441134093:3:3:434668942460782744 11736061446441134093:3:4:183375960100642720 11736061446441134093:3:5:93888491571529072 11736061446441134093:3:6:54333617807597843 11736061446441134093:3:7:34215922584376484 11736061446441134093:3:8:22921995012580340 11736061446441134093:3:9:16098849720769731 11736061446441134093:3:10:11736061446441134 11736061446441134093:3:11:8817476669001603 11736061446441134093:3:12:6791702225949730 11736061446441134093:3:13:5341857736204430 11736061446441134093:3:14:4276990323047060 11736061446441134093:3:15:3477351539686261 11736061446441134093:3:16:2865249376572542 11736061446441134093:3:17:2388777009249162 11736061446441134093:3:18:2012356215096216 11736061446441134093:3:19:1711045552768790 11736061446441134093:3:20:1467007680805141 11736061446441134093:4:2:733503840402570880 11736061446441134093:4:3:144889647486927581 11736061446441134093:4:4:45843990025160680 11736061446441134093:4:5:18777698314305814 11736061446441134093:4:6:9055602967932973 11736061446441134093:4:7:4887988940625212 11736061446441134093:4:8:2865249376572542 11736061446441134093:4:9:1788761080085525 11736061446441134093:4:10:1173606144644113 11736061446441134093:4:11:801588788091054 11736061446441134093:4:12:565975185495810 11736061446441134093:4:13:410912133554186 11736061446441134093:4:14:305499308789075 11736061446441134093:4:15:231823435979084 11736061446441134093:4:16:179078086035783 11736061446441134093:4:17:140516294661715 11736061446441134093:4:18:111797567505345 11736061446441134093:4:19:90055029093094 11736061446441134093:4:20:73350384040257 11736061446441134093:5:2:366751920201285440 11736061446441134093:5:3:48296549162309193 11736061446441134093:5:4:11460997506290170 11736061446441134093:5:5:3755539662861162 11736061446441134093:5:6:1509267161322162 11736061446441134093:5:7:698284134375030 11736061446441134093:5:8:358156172071567 11736061446441134093:5:9:198751231120613 11736061446441134093:5:10:117360614464411 11736061446441134093:5:11:72871708008277 11736061446441134093:5:12:47164598791317 11736061446441134093:5:13:31608625658014 11736061446441134093:5:14:21821379199219 11736061446441134093:5:15:15454895731938 11736061446441134093:5:16:11192380377236 11736061446441134093:5:17:8265664391865 11736061446441134093:5:18:6210975972519 11736061446441134093:5:19:4739738373320 11736061446441134093:5:20:3667519202012 11736061446441134093:6:2:183375960100642720 11736061446441134093:6:3:16098849720769731 11736061446441134093:6:4:2865249376572542 11736061446441134093:6:5:751107932572232 11736061446441134093:6:6:251544526887027 11736061446441134093:6:7:99754876339290 11736061446441134093:6:8:44769521508945 11736061446441134093:6:9:22083470124512 11736061446441134093:6:10:11736061446441 11736061446441134093:6:11:6624700728025 11736061446441134093:6:12:3930383232609 11736061446441134093:6:13:2431432742924 11736061446441134093:6:14:1558669942801 11736061446441134093:6:15:1030326382129 11736061446441134093:6:16:699523773577 11736061446441134093:6:17:486215552462 11736061446441134093:6:18:345054220695 11736061446441134093:6:19:249459914385 11736061446441134093:6:20:183375960100 11736061446441134093:7:2:91687980050321360 11736061446441134093:7:3:5366283240256577 11736061446441134093:7:4:716312344143135 11736061446441134093:7:5:150221586514446 11736061446441134093:7:6:41924087814504 11736061446441134093:7:7:14250696619898 11736061446441134093:7:8:5596190188618 11736061446441134093:7:9:2453718902723 11736061446441134093:7:10:1173606144644 11736061446441134093:7:11:602245520729 11736061446441134093:7:12:327531936050 11736061446441134093:7:13:187033287917 11736061446441134093:7:14:111333567342 11736061446441134093:7:15:68688425475 11736061446441134093:7:16:43720235848 11736061446441134093:7:17:28600914850 11736061446441134093:7:18:19169678927 11736061446441134093:7:19:13129469178 11736061446441134093:7:20:9168798005 11736061446441134093:8:2:45843990025160680 11736061446441134093:8:3:1788761080085525 11736061446441134093:8:4:179078086035783 11736061446441134093:8:5:30044317302889 11736061446441134093:8:6:6987347969084 11736061446441134093:8:7:2035813802842 11736061446441134093:8:8:699523773577 11736061446441134093:8:9:272635433635 11736061446441134093:8:10:117360614464 11736061446441134093:8:11:54749592793 11736061446441134093:8:12:27294328004 11736061446441134093:8:13:14387175993 11736061446441134093:8:14:7952397667 11736061446441134093:8:15:4579228365 11736061446441134093:8:16:2732514740 11736061446441134093:8:17:1682406755 11736061446441134093:8:18:1064982162 11736061446441134093:8:19:691024693 11736061446441134093:8:20:458439900 11736061446441134093:9:2:22921995012580340 11736061446441134093:9:3:596253693361841 11736061446441134093:9:4:44769521508945 11736061446441134093:9:5:6008863460577 11736061446441134093:9:6:1164557994847 11736061446441134093:9:7:290830543263 11736061446441134093:9:8:87440471697 11736061446441134093:9:9:30292825959 11736061446441134093:9:10:11736061446 11736061446441134093:9:11:4977235708 11736061446441134093:9:12:2274527333 11736061446441134093:9:13:1106705845 11736061446441134093:9:14:568028404 11736061446441134093:9:15:305281891 11736061446441134093:9:16:170782171 11736061446441134093:9:17:98965103 11736061446441134093:9:18:59165675 11736061446441134093:9:19:36369720 11736061446441134093:9:20:22921995 11736061446441134093:10:2:11460997506290170 11736061446441134093:10:3:198751231120613 11736061446441134093:10:4:11192380377236 11736061446441134093:10:5:1201772692115 11736061446441134093:10:6:194092999141 11736061446441134093:10:7:41547220466 11736061446441134093:10:8:10930058962 11736061446441134093:10:9:3365869551 11736061446441134093:10:10:1173606144 11736061446441134093:10:11:452475973 11736061446441134093:10:12:189543944 11736061446441134093:10:13:85131218 11736061446441134093:10:14:40573457 11736061446441134093:10:15:20352126 11736061446441134093:10:16:10673885 11736061446441134093:10:17:5821476 11736061446441134093:10:18:3286981 11736061446441134093:10:19:1914195 11736061446441134093:10:20:1146099 11736061446441134093:11:2:5730498753145085 11736061446441134093:11:3:66250410373537 11736061446441134093:11:4:2798095094309 11736061446441134093:11:5:240354538423 11736061446441134093:11:6:32348833190 11736061446441134093:11:7:5935317209 11736061446441134093:11:8:1366257370 11736061446441134093:11:9:373985505 11736061446441134093:11:10:117360614 11736061446441134093:11:11:41134179 11736061446441134093:11:12:15795328 11736061446441134093:11:13:6548555 11736061446441134093:11:14:2898104 11736061446441134093:11:15:1356808 11736061446441134093:11:16:667117 11736061446441134093:11:17:342439 11736061446441134093:11:18:182610 11736061446441134093:11:19:100747 11736061446441134093:11:20:57304 11736061446441134093:12:2:2865249376572542 11736061446441134093:12:3:22083470124512 11736061446441134093:12:4:699523773577 11736061446441134093:12:5:48070907684 11736061446441134093:12:6:5391472198 11736061446441134093:12:7:847902458 11736061446441134093:12:8:170782171 11736061446441134093:12:9:41553945 11736061446441134093:12:10:11736061 11736061446441134093:12:11:3739470 11736061446441134093:12:12:1316277 11736061446441134093:12:13:503735 11736061446441134093:12:14:207007 11736061446441134093:12:15:90453 11736061446441134093:12:16:41694 11736061446441134093:12:17:20143 11736061446441134093:12:18:10145 11736061446441134093:12:19:5302 11736061446441134093:12:20:2865 11736061446441134093:13:2:1432624688286271 11736061446441134093:13:3:7361156708170 11736061446441134093:13:4:174880943394 11736061446441134093:13:5:9614181536 11736061446441134093:13:6:898578699 11736061446441134093:13:7:121128922 11736061446441134093:13:8:21347771 11736061446441134093:13:9:4617105 11736061446441134093:13:10:1173606 11736061446441134093:13:11:339951 11736061446441134093:13:12:109689 11736061446441134093:13:13:38748 11736061446441134093:13:14:14786 11736061446441134093:13:15:6030 11736061446441134093:13:16:2605 11736061446441134093:13:17:1184 11736061446441134093:13:18:563 11736061446441134093:13:19:279 11736061446441134093:13:20:143 11736061446441134093:14:2:716312344143135 11736061446441134093:14:3:2453718902723 11736061446441134093:14:4:43720235848 11736061446441134093:14:5:1922836307 11736061446441134093:14:6:149763116 11736061446441134093:14:7:17304131 11736061446441134093:14:8:2668471 11736061446441134093:14:9:513011 11736061446441134093:14:10:117360 11736061446441134093:14:11:30904 11736061446441134093:14:12:9140 11736061446441134093:14:13:2980 11736061446441134093:14:14:1056 11736061446441134093:14:15:402 11736061446441134093:14:16:162 11736061446441134093:14:17:69 11736061446441134093:14:18:31 11736061446441134093:14:19:14 11736061446441134093:14:20:7 11736061446441134093:15:2:358156172071567 11736061446441134093:15:3:817906300907 11736061446441134093:15:4:10930058962 11736061446441134093:15:5:384567261 11736061446441134093:15:6:24960519 11736061446441134093:15:7:2472018 11736061446441134093:15:8:333558 11736061446441134093:15:9:57001 11736061446441134093:15:10:11736 11736061446441134093:15:11:2809 11736061446441134093:15:12:761 11736061446441134093:15:13:229 11736061446441134093:15:14:75 11736061446441134093:15:15:26 11736061446441134093:15:16:10 11736061446441134093:15:17:4 11736061446441134093:15:18:1 11736061446441134093:15:19:0 11736061446441134093:15:20:0 11736061446441134093:16:2:179078086035783 11736061446441134093:16:3:272635433635 11736061446441134093:16:4:2732514740 11736061446441134093:16:5:76913452 11736061446441134093:16:6:4160086 11736061446441134093:16:7:353145 11736061446441134093:16:8:41694 11736061446441134093:16:9:6333 11736061446441134093:16:10:1173 11736061446441134093:16:11:255 11736061446441134093:16:12:63 11736061446441134093:16:13:17 11736061446441134093:16:14:5 11736061446441134093:16:15:1 11736061446441134093:16:16:0 11736061446441134093:16:17:0 11736061446441134093:17:2:89539043017891 11736061446441134093:17:3:90878477878 11736061446441134093:17:4:683128685 11736061446441134093:17:5:15382690 11736061446441134093:17:6:693347 11736061446441134093:17:7:50449 11736061446441134093:17:8:5211 11736061446441134093:17:9:703 11736061446441134093:17:10:117 11736061446441134093:17:11:23 11736061446441134093:17:12:5 11736061446441134093:17:13:1 11736061446441134093:17:14:0 11736061446441134093:17:15:0 11736061446441134093:18:2:44769521508945 11736061446441134093:18:3:30292825959 11736061446441134093:18:4:170782171 11736061446441134093:18:5:3076538 11736061446441134093:18:6:115557 11736061446441134093:18:7:7207 11736061446441134093:18:8:651 11736061446441134093:18:9:78 11736061446441134093:18:10:11 11736061446441134093:18:11:2 11736061446441134093:18:12:0 11736061446441134093:18:13:0 11736061446441134093:19:2:22384760754472 11736061446441134093:19:3:10097608653 11736061446441134093:19:4:42695542 11736061446441134093:19:5:615307 11736061446441134093:19:6:19259 11736061446441134093:19:7:1029 11736061446441134093:19:8:81 11736061446441134093:19:9:8 11736061446441134093:19:10:1 11736061446441134093:19:11:0 11736061446441134093:19:12:0 11736061446441134093:20:2:11192380377236 11736061446441134093:20:3:3365869551 11736061446441134093:20:4:10673885 11736061446441134093:20:5:123061 11736061446441134093:20:6:3209 11736061446441134093:20:7:147 11736061446441134093:20:8:10 11736061446441134093:20:9:0 11736061446441134093:20:10:0 Math-BigInt-2.005003/xt/author/lib-arithmetic-ternary-_rsft.t0000644403072340010010000001025214536617520023561 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 54713; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_rsft'); my @data; # Small numbers. for (my $x = 0; $x <= 100 ; ++ $x) { for (my $n = 0; $n <= 5 ; ++ $n) { for (my $b = 2; $b <= 16 ; ++ $b) { my $y = int($x / ($b ** $n)); push @data, [ $x, $n, $b, $y ]; } } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_rsft(\$x, \$y, $in2);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_rsft() in list context: $test", sub { plan tests => 8; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_rsft(\$x, \$y, $in2);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_rsft() in scalar context: $test", sub { plan tests => 7; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_clog10.t0000644403072340010010000001060114546553333023342 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4569; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_clog10'); # ceil(log(x) / log(10) sub clog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 10 ** $y; } while ($trial < $x) { $y++; $trial = 10 ** $y; } return $y; } my @data; # Small numbers. for (my $x = 1; $x <= 998 ; ++ $x) { my $y = clog10($x); my $status = 10 ** $y == $x ? 1 : 0; push @data, [ $x, $y, $status ]; } # Larger numbers. my $b = $LIB -> _new(10); for (my $y = 3 ; $y <= 50 ; $y++) { my $x = $LIB -> _pow($LIB -> _copy($b), $LIB -> _new($y)); my $x_up = $LIB -> _inc($LIB -> _copy($x)); my $x_dn = $LIB -> _dec($LIB -> _copy($x)); push @data, [ $LIB -> _str($x_dn), $y, 0 ]; # clog10(10**$y - 1) = $y push @data, [ $LIB -> _str($x), $y, 1 ]; # clog10(10**$y) = $y push @data, [ $LIB -> _str($x_up), $y + 1, 0 ]; # clog10(10**$y + 1) = $y + 1 } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_clog10(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_clog10() in scalar context: $test", sub { unless (defined $out0) { plan tests => 1; is($got, $out0, "'$test' output arg has the right value"); return; } plan tests => 5; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_clog10(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_clog10() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got[0], $out0, "'$test' output arg has the right value"); return; } plan tests => 8; # Number of output arguments. cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); # First output argument. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); # Second output argument. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_clog2.t0000644403072340010010000001056014773764715023301 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5181; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_clog2'); # ceil(log(x) / log(2)) sub clog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial > $x) { $y--; $trial = 2 ** $y; } while ($trial < $x) { $y++; $trial = 2 ** $y; } return $y; } my @data; # Small numbers. for (my $x = 1 ; $x <= 1022 ; ++ $x) { my $y = clog2($x); my $status = 2 ** $y == $x ? 1 : 0; push @data, [ $x, $y, $status ]; } # Larger numbers. my $b = $LIB -> _new(2); for (my $y = 10 ; $y <= 100 ; $y++) { my $x = $LIB -> _pow($LIB -> _copy($b), $LIB -> _new($y)); my $x_up = $LIB -> _inc($LIB -> _copy($x)); my $x_dn = $LIB -> _dec($LIB -> _copy($x)); push @data, [ $LIB -> _str($x_dn), $y, 0 ]; # clog2(2**$y - 1) = $y push @data, [ $LIB -> _str($x), $y, 1 ]; # clog2(2**$y) = $y push @data, [ $LIB -> _str($x_up), $y + 1, 0 ]; # clog2(2**$y + 1) = $y + 1 } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_clog2(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_clog2() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got, $out0, "'$test' output arg has the right value"); return; } plan tests => 5; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_clog2(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_clog2() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got[0], $out0, "'$test' output arg has the right value"); return; } plan tests => 8; # Number of output arguments. cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); # First output argument. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); # Second output argument. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_dec.dat0000644403072340010010000011556414505066136023326 0ustar OSPJADomain Users# numbers close to 2^10 1022:1021 1023:1022 1024:1023 1025:1024 1026:1025 # numbers close to 2^11 2046:2045 2047:2046 2048:2047 2049:2048 2050:2049 # numbers close to 2^12 4094:4093 4095:4094 4096:4095 4097:4096 4098:4097 # numbers close to 2^13 8190:8189 8191:8190 8192:8191 8193:8192 8194:8193 # numbers close to 2^14 16382:16381 16383:16382 16384:16383 16385:16384 16386:16385 # numbers close to 2^15 32766:32765 32767:32766 32768:32767 32769:32768 32770:32769 # numbers close to 2^16 65534:65533 65535:65534 65536:65535 65537:65536 65538:65537 # numbers close to 2^17 131070:131069 131071:131070 131072:131071 131073:131072 131074:131073 # numbers close to 2^18 262142:262141 262143:262142 262144:262143 262145:262144 262146:262145 # numbers close to 2^19 524286:524285 524287:524286 524288:524287 524289:524288 524290:524289 # numbers close to 2^20 1048574:1048573 1048575:1048574 1048576:1048575 1048577:1048576 1048578:1048577 # numbers close to 2^21 2097150:2097149 2097151:2097150 2097152:2097151 2097153:2097152 2097154:2097153 # numbers close to 2^22 4194302:4194301 4194303:4194302 4194304:4194303 4194305:4194304 4194306:4194305 # numbers close to 2^23 8388606:8388605 8388607:8388606 8388608:8388607 8388609:8388608 8388610:8388609 # numbers close to 2^24 16777214:16777213 16777215:16777214 16777216:16777215 16777217:16777216 16777218:16777217 # numbers close to 2^25 33554430:33554429 33554431:33554430 33554432:33554431 33554433:33554432 33554434:33554433 # numbers close to 2^26 67108862:67108861 67108863:67108862 67108864:67108863 67108865:67108864 67108866:67108865 # numbers close to 2^27 134217726:134217725 134217727:134217726 134217728:134217727 134217729:134217728 134217730:134217729 # numbers close to 2^28 268435454:268435453 268435455:268435454 268435456:268435455 268435457:268435456 268435458:268435457 # numbers close to 2^29 536870910:536870909 536870911:536870910 536870912:536870911 536870913:536870912 536870914:536870913 # numbers close to 2^30 1073741822:1073741821 1073741823:1073741822 1073741824:1073741823 1073741825:1073741824 1073741826:1073741825 # numbers close to 2^31 2147483646:2147483645 2147483647:2147483646 2147483648:2147483647 2147483649:2147483648 2147483650:2147483649 # numbers close to 2^32 4294967294:4294967293 4294967295:4294967294 4294967296:4294967295 4294967297:4294967296 4294967298:4294967297 # numbers close to 2^33 8589934590:8589934589 8589934591:8589934590 8589934592:8589934591 8589934593:8589934592 8589934594:8589934593 # numbers close to 2^34 17179869182:17179869181 17179869183:17179869182 17179869184:17179869183 17179869185:17179869184 17179869186:17179869185 # numbers close to 2^35 34359738366:34359738365 34359738367:34359738366 34359738368:34359738367 34359738369:34359738368 34359738370:34359738369 # numbers close to 2^36 68719476734:68719476733 68719476735:68719476734 68719476736:68719476735 68719476737:68719476736 68719476738:68719476737 # numbers close to 2^37 137438953470:137438953469 137438953471:137438953470 137438953472:137438953471 137438953473:137438953472 137438953474:137438953473 # numbers close to 2^38 274877906942:274877906941 274877906943:274877906942 274877906944:274877906943 274877906945:274877906944 274877906946:274877906945 # numbers close to 2^39 549755813886:549755813885 549755813887:549755813886 549755813888:549755813887 549755813889:549755813888 549755813890:549755813889 # numbers close to 2^40 1099511627774:1099511627773 1099511627775:1099511627774 1099511627776:1099511627775 1099511627777:1099511627776 1099511627778:1099511627777 # numbers close to 2^41 2199023255550:2199023255549 2199023255551:2199023255550 2199023255552:2199023255551 2199023255553:2199023255552 2199023255554:2199023255553 # numbers close to 2^42 4398046511102:4398046511101 4398046511103:4398046511102 4398046511104:4398046511103 4398046511105:4398046511104 4398046511106:4398046511105 # numbers close to 2^43 8796093022206:8796093022205 8796093022207:8796093022206 8796093022208:8796093022207 8796093022209:8796093022208 8796093022210:8796093022209 # numbers close to 2^44 17592186044414:17592186044413 17592186044415:17592186044414 17592186044416:17592186044415 17592186044417:17592186044416 17592186044418:17592186044417 # numbers close to 2^45 35184372088830:35184372088829 35184372088831:35184372088830 35184372088832:35184372088831 35184372088833:35184372088832 35184372088834:35184372088833 # numbers close to 2^46 70368744177662:70368744177661 70368744177663:70368744177662 70368744177664:70368744177663 70368744177665:70368744177664 70368744177666:70368744177665 # numbers close to 2^47 140737488355326:140737488355325 140737488355327:140737488355326 140737488355328:140737488355327 140737488355329:140737488355328 140737488355330:140737488355329 # numbers close to 2^48 281474976710654:281474976710653 281474976710655:281474976710654 281474976710656:281474976710655 281474976710657:281474976710656 281474976710658:281474976710657 # numbers close to 2^49 562949953421310:562949953421309 562949953421311:562949953421310 562949953421312:562949953421311 562949953421313:562949953421312 562949953421314:562949953421313 # numbers close to 2^50 1125899906842622:1125899906842621 1125899906842623:1125899906842622 1125899906842624:1125899906842623 1125899906842625:1125899906842624 1125899906842626:1125899906842625 # numbers close to 2^51 2251799813685246:2251799813685245 2251799813685247:2251799813685246 2251799813685248:2251799813685247 2251799813685249:2251799813685248 2251799813685250:2251799813685249 # numbers close to 2^52 4503599627370494:4503599627370493 4503599627370495:4503599627370494 4503599627370496:4503599627370495 4503599627370497:4503599627370496 4503599627370498:4503599627370497 # numbers close to 2^53 9007199254740990:9007199254740989 9007199254740991:9007199254740990 9007199254740992:9007199254740991 9007199254740993:9007199254740992 9007199254740994:9007199254740993 # numbers close to 2^54 18014398509481982:18014398509481981 18014398509481983:18014398509481982 18014398509481984:18014398509481983 18014398509481985:18014398509481984 18014398509481986:18014398509481985 # numbers close to 2^55 36028797018963966:36028797018963965 36028797018963967:36028797018963966 36028797018963968:36028797018963967 36028797018963969:36028797018963968 36028797018963970:36028797018963969 # numbers close to 2^56 72057594037927934:72057594037927933 72057594037927935:72057594037927934 72057594037927936:72057594037927935 72057594037927937:72057594037927936 72057594037927938:72057594037927937 # numbers close to 2^57 144115188075855870:144115188075855869 144115188075855871:144115188075855870 144115188075855872:144115188075855871 144115188075855873:144115188075855872 144115188075855874:144115188075855873 # numbers close to 2^58 288230376151711742:288230376151711741 288230376151711743:288230376151711742 288230376151711744:288230376151711743 288230376151711745:288230376151711744 288230376151711746:288230376151711745 # numbers close to 2^59 576460752303423486:576460752303423485 576460752303423487:576460752303423486 576460752303423488:576460752303423487 576460752303423489:576460752303423488 576460752303423490:576460752303423489 # numbers close to 2^60 1152921504606846974:1152921504606846973 1152921504606846975:1152921504606846974 1152921504606846976:1152921504606846975 1152921504606846977:1152921504606846976 1152921504606846978:1152921504606846977 # numbers close to 2^61 2305843009213693950:2305843009213693949 2305843009213693951:2305843009213693950 2305843009213693952:2305843009213693951 2305843009213693953:2305843009213693952 2305843009213693954:2305843009213693953 # numbers close to 2^62 4611686018427387902:4611686018427387901 4611686018427387903:4611686018427387902 4611686018427387904:4611686018427387903 4611686018427387905:4611686018427387904 4611686018427387906:4611686018427387905 # numbers close to 2^63 9223372036854775806:9223372036854775805 9223372036854775807:9223372036854775806 9223372036854775808:9223372036854775807 9223372036854775809:9223372036854775808 9223372036854775810:9223372036854775809 # numbers close to 2^64 18446744073709551614:18446744073709551613 18446744073709551615:18446744073709551614 18446744073709551616:18446744073709551615 18446744073709551617:18446744073709551616 18446744073709551618:18446744073709551617 # numbers close to 2^65 36893488147419103230:36893488147419103229 36893488147419103231:36893488147419103230 36893488147419103232:36893488147419103231 36893488147419103233:36893488147419103232 36893488147419103234:36893488147419103233 # numbers close to 2^66 73786976294838206462:73786976294838206461 73786976294838206463:73786976294838206462 73786976294838206464:73786976294838206463 73786976294838206465:73786976294838206464 73786976294838206466:73786976294838206465 # numbers close to 2^67 147573952589676412926:147573952589676412925 147573952589676412927:147573952589676412926 147573952589676412928:147573952589676412927 147573952589676412929:147573952589676412928 147573952589676412930:147573952589676412929 # numbers close to 2^68 295147905179352825854:295147905179352825853 295147905179352825855:295147905179352825854 295147905179352825856:295147905179352825855 295147905179352825857:295147905179352825856 295147905179352825858:295147905179352825857 # numbers close to 2^69 590295810358705651710:590295810358705651709 590295810358705651711:590295810358705651710 590295810358705651712:590295810358705651711 590295810358705651713:590295810358705651712 590295810358705651714:590295810358705651713 # numbers close to 2^70 1180591620717411303422:1180591620717411303421 1180591620717411303423:1180591620717411303422 1180591620717411303424:1180591620717411303423 1180591620717411303425:1180591620717411303424 1180591620717411303426:1180591620717411303425 # numbers close to 2^71 2361183241434822606846:2361183241434822606845 2361183241434822606847:2361183241434822606846 2361183241434822606848:2361183241434822606847 2361183241434822606849:2361183241434822606848 2361183241434822606850:2361183241434822606849 # numbers close to 2^72 4722366482869645213694:4722366482869645213693 4722366482869645213695:4722366482869645213694 4722366482869645213696:4722366482869645213695 4722366482869645213697:4722366482869645213696 4722366482869645213698:4722366482869645213697 # numbers close to 2^73 9444732965739290427390:9444732965739290427389 9444732965739290427391:9444732965739290427390 9444732965739290427392:9444732965739290427391 9444732965739290427393:9444732965739290427392 9444732965739290427394:9444732965739290427393 # numbers close to 2^74 18889465931478580854782:18889465931478580854781 18889465931478580854783:18889465931478580854782 18889465931478580854784:18889465931478580854783 18889465931478580854785:18889465931478580854784 18889465931478580854786:18889465931478580854785 # numbers close to 2^75 37778931862957161709566:37778931862957161709565 37778931862957161709567:37778931862957161709566 37778931862957161709568:37778931862957161709567 37778931862957161709569:37778931862957161709568 37778931862957161709570:37778931862957161709569 # numbers close to 2^76 75557863725914323419134:75557863725914323419133 75557863725914323419135:75557863725914323419134 75557863725914323419136:75557863725914323419135 75557863725914323419137:75557863725914323419136 75557863725914323419138:75557863725914323419137 # numbers close to 2^77 151115727451828646838270:151115727451828646838269 151115727451828646838271:151115727451828646838270 151115727451828646838272:151115727451828646838271 151115727451828646838273:151115727451828646838272 151115727451828646838274:151115727451828646838273 # numbers close to 2^78 302231454903657293676542:302231454903657293676541 302231454903657293676543:302231454903657293676542 302231454903657293676544:302231454903657293676543 302231454903657293676545:302231454903657293676544 302231454903657293676546:302231454903657293676545 # numbers close to 2^79 604462909807314587353086:604462909807314587353085 604462909807314587353087:604462909807314587353086 604462909807314587353088:604462909807314587353087 604462909807314587353089:604462909807314587353088 604462909807314587353090:604462909807314587353089 # numbers close to 2^80 1208925819614629174706174:1208925819614629174706173 1208925819614629174706175:1208925819614629174706174 1208925819614629174706176:1208925819614629174706175 1208925819614629174706177:1208925819614629174706176 1208925819614629174706178:1208925819614629174706177 # numbers close to 2^81 2417851639229258349412350:2417851639229258349412349 2417851639229258349412351:2417851639229258349412350 2417851639229258349412352:2417851639229258349412351 2417851639229258349412353:2417851639229258349412352 2417851639229258349412354:2417851639229258349412353 # numbers close to 2^82 4835703278458516698824702:4835703278458516698824701 4835703278458516698824703:4835703278458516698824702 4835703278458516698824704:4835703278458516698824703 4835703278458516698824705:4835703278458516698824704 4835703278458516698824706:4835703278458516698824705 # numbers close to 2^83 9671406556917033397649406:9671406556917033397649405 9671406556917033397649407:9671406556917033397649406 9671406556917033397649408:9671406556917033397649407 9671406556917033397649409:9671406556917033397649408 9671406556917033397649410:9671406556917033397649409 # numbers close to 2^84 19342813113834066795298814:19342813113834066795298813 19342813113834066795298815:19342813113834066795298814 19342813113834066795298816:19342813113834066795298815 19342813113834066795298817:19342813113834066795298816 19342813113834066795298818:19342813113834066795298817 # numbers close to 2^85 38685626227668133590597630:38685626227668133590597629 38685626227668133590597631:38685626227668133590597630 38685626227668133590597632:38685626227668133590597631 38685626227668133590597633:38685626227668133590597632 38685626227668133590597634:38685626227668133590597633 # numbers close to 2^86 77371252455336267181195262:77371252455336267181195261 77371252455336267181195263:77371252455336267181195262 77371252455336267181195264:77371252455336267181195263 77371252455336267181195265:77371252455336267181195264 77371252455336267181195266:77371252455336267181195265 # numbers close to 2^87 154742504910672534362390526:154742504910672534362390525 154742504910672534362390527:154742504910672534362390526 154742504910672534362390528:154742504910672534362390527 154742504910672534362390529:154742504910672534362390528 154742504910672534362390530:154742504910672534362390529 # numbers close to 2^88 309485009821345068724781054:309485009821345068724781053 309485009821345068724781055:309485009821345068724781054 309485009821345068724781056:309485009821345068724781055 309485009821345068724781057:309485009821345068724781056 309485009821345068724781058:309485009821345068724781057 # numbers close to 2^89 618970019642690137449562110:618970019642690137449562109 618970019642690137449562111:618970019642690137449562110 618970019642690137449562112:618970019642690137449562111 618970019642690137449562113:618970019642690137449562112 618970019642690137449562114:618970019642690137449562113 # numbers close to 2^90 1237940039285380274899124222:1237940039285380274899124221 1237940039285380274899124223:1237940039285380274899124222 1237940039285380274899124224:1237940039285380274899124223 1237940039285380274899124225:1237940039285380274899124224 1237940039285380274899124226:1237940039285380274899124225 # numbers close to 2^91 2475880078570760549798248446:2475880078570760549798248445 2475880078570760549798248447:2475880078570760549798248446 2475880078570760549798248448:2475880078570760549798248447 2475880078570760549798248449:2475880078570760549798248448 2475880078570760549798248450:2475880078570760549798248449 # numbers close to 2^92 4951760157141521099596496894:4951760157141521099596496893 4951760157141521099596496895:4951760157141521099596496894 4951760157141521099596496896:4951760157141521099596496895 4951760157141521099596496897:4951760157141521099596496896 4951760157141521099596496898:4951760157141521099596496897 # numbers close to 2^93 9903520314283042199192993790:9903520314283042199192993789 9903520314283042199192993791:9903520314283042199192993790 9903520314283042199192993792:9903520314283042199192993791 9903520314283042199192993793:9903520314283042199192993792 9903520314283042199192993794:9903520314283042199192993793 # numbers close to 2^94 19807040628566084398385987582:19807040628566084398385987581 19807040628566084398385987583:19807040628566084398385987582 19807040628566084398385987584:19807040628566084398385987583 19807040628566084398385987585:19807040628566084398385987584 19807040628566084398385987586:19807040628566084398385987585 # numbers close to 2^95 39614081257132168796771975166:39614081257132168796771975165 39614081257132168796771975167:39614081257132168796771975166 39614081257132168796771975168:39614081257132168796771975167 39614081257132168796771975169:39614081257132168796771975168 39614081257132168796771975170:39614081257132168796771975169 # numbers close to 2^96 79228162514264337593543950334:79228162514264337593543950333 79228162514264337593543950335:79228162514264337593543950334 79228162514264337593543950336:79228162514264337593543950335 79228162514264337593543950337:79228162514264337593543950336 79228162514264337593543950338:79228162514264337593543950337 # numbers close to 2^97 158456325028528675187087900670:158456325028528675187087900669 158456325028528675187087900671:158456325028528675187087900670 158456325028528675187087900672:158456325028528675187087900671 158456325028528675187087900673:158456325028528675187087900672 158456325028528675187087900674:158456325028528675187087900673 # numbers close to 2^98 316912650057057350374175801342:316912650057057350374175801341 316912650057057350374175801343:316912650057057350374175801342 316912650057057350374175801344:316912650057057350374175801343 316912650057057350374175801345:316912650057057350374175801344 316912650057057350374175801346:316912650057057350374175801345 # numbers close to 2^99 633825300114114700748351602686:633825300114114700748351602685 633825300114114700748351602687:633825300114114700748351602686 633825300114114700748351602688:633825300114114700748351602687 633825300114114700748351602689:633825300114114700748351602688 633825300114114700748351602690:633825300114114700748351602689 # numbers close to 2^100 1267650600228229401496703205374:1267650600228229401496703205373 1267650600228229401496703205375:1267650600228229401496703205374 1267650600228229401496703205376:1267650600228229401496703205375 1267650600228229401496703205377:1267650600228229401496703205376 1267650600228229401496703205378:1267650600228229401496703205377 # numbers close to 2^101 2535301200456458802993406410750:2535301200456458802993406410749 2535301200456458802993406410751:2535301200456458802993406410750 2535301200456458802993406410752:2535301200456458802993406410751 2535301200456458802993406410753:2535301200456458802993406410752 2535301200456458802993406410754:2535301200456458802993406410753 # numbers close to 2^102 5070602400912917605986812821502:5070602400912917605986812821501 5070602400912917605986812821503:5070602400912917605986812821502 5070602400912917605986812821504:5070602400912917605986812821503 5070602400912917605986812821505:5070602400912917605986812821504 5070602400912917605986812821506:5070602400912917605986812821505 # numbers close to 2^103 10141204801825835211973625643006:10141204801825835211973625643005 10141204801825835211973625643007:10141204801825835211973625643006 10141204801825835211973625643008:10141204801825835211973625643007 10141204801825835211973625643009:10141204801825835211973625643008 10141204801825835211973625643010:10141204801825835211973625643009 # numbers close to 2^104 20282409603651670423947251286014:20282409603651670423947251286013 20282409603651670423947251286015:20282409603651670423947251286014 20282409603651670423947251286016:20282409603651670423947251286015 20282409603651670423947251286017:20282409603651670423947251286016 20282409603651670423947251286018:20282409603651670423947251286017 # numbers close to 2^105 40564819207303340847894502572030:40564819207303340847894502572029 40564819207303340847894502572031:40564819207303340847894502572030 40564819207303340847894502572032:40564819207303340847894502572031 40564819207303340847894502572033:40564819207303340847894502572032 40564819207303340847894502572034:40564819207303340847894502572033 # numbers close to 2^106 81129638414606681695789005144062:81129638414606681695789005144061 81129638414606681695789005144063:81129638414606681695789005144062 81129638414606681695789005144064:81129638414606681695789005144063 81129638414606681695789005144065:81129638414606681695789005144064 81129638414606681695789005144066:81129638414606681695789005144065 # numbers close to 2^107 162259276829213363391578010288126:162259276829213363391578010288125 162259276829213363391578010288127:162259276829213363391578010288126 162259276829213363391578010288128:162259276829213363391578010288127 162259276829213363391578010288129:162259276829213363391578010288128 162259276829213363391578010288130:162259276829213363391578010288129 # numbers close to 2^108 324518553658426726783156020576254:324518553658426726783156020576253 324518553658426726783156020576255:324518553658426726783156020576254 324518553658426726783156020576256:324518553658426726783156020576255 324518553658426726783156020576257:324518553658426726783156020576256 324518553658426726783156020576258:324518553658426726783156020576257 # numbers close to 2^109 649037107316853453566312041152510:649037107316853453566312041152509 649037107316853453566312041152511:649037107316853453566312041152510 649037107316853453566312041152512:649037107316853453566312041152511 649037107316853453566312041152513:649037107316853453566312041152512 649037107316853453566312041152514:649037107316853453566312041152513 # numbers close to 2^110 1298074214633706907132624082305022:1298074214633706907132624082305021 1298074214633706907132624082305023:1298074214633706907132624082305022 1298074214633706907132624082305024:1298074214633706907132624082305023 1298074214633706907132624082305025:1298074214633706907132624082305024 1298074214633706907132624082305026:1298074214633706907132624082305025 # numbers close to 2^111 2596148429267413814265248164610046:2596148429267413814265248164610045 2596148429267413814265248164610047:2596148429267413814265248164610046 2596148429267413814265248164610048:2596148429267413814265248164610047 2596148429267413814265248164610049:2596148429267413814265248164610048 2596148429267413814265248164610050:2596148429267413814265248164610049 # numbers close to 2^112 5192296858534827628530496329220094:5192296858534827628530496329220093 5192296858534827628530496329220095:5192296858534827628530496329220094 5192296858534827628530496329220096:5192296858534827628530496329220095 5192296858534827628530496329220097:5192296858534827628530496329220096 5192296858534827628530496329220098:5192296858534827628530496329220097 # numbers close to 2^113 10384593717069655257060992658440190:10384593717069655257060992658440189 10384593717069655257060992658440191:10384593717069655257060992658440190 10384593717069655257060992658440192:10384593717069655257060992658440191 10384593717069655257060992658440193:10384593717069655257060992658440192 10384593717069655257060992658440194:10384593717069655257060992658440193 # numbers close to 2^114 20769187434139310514121985316880382:20769187434139310514121985316880381 20769187434139310514121985316880383:20769187434139310514121985316880382 20769187434139310514121985316880384:20769187434139310514121985316880383 20769187434139310514121985316880385:20769187434139310514121985316880384 20769187434139310514121985316880386:20769187434139310514121985316880385 # numbers close to 2^115 41538374868278621028243970633760766:41538374868278621028243970633760765 41538374868278621028243970633760767:41538374868278621028243970633760766 41538374868278621028243970633760768:41538374868278621028243970633760767 41538374868278621028243970633760769:41538374868278621028243970633760768 41538374868278621028243970633760770:41538374868278621028243970633760769 # numbers close to 2^116 83076749736557242056487941267521534:83076749736557242056487941267521533 83076749736557242056487941267521535:83076749736557242056487941267521534 83076749736557242056487941267521536:83076749736557242056487941267521535 83076749736557242056487941267521537:83076749736557242056487941267521536 83076749736557242056487941267521538:83076749736557242056487941267521537 # numbers close to 2^117 166153499473114484112975882535043070:166153499473114484112975882535043069 166153499473114484112975882535043071:166153499473114484112975882535043070 166153499473114484112975882535043072:166153499473114484112975882535043071 166153499473114484112975882535043073:166153499473114484112975882535043072 166153499473114484112975882535043074:166153499473114484112975882535043073 # numbers close to 2^118 332306998946228968225951765070086142:332306998946228968225951765070086141 332306998946228968225951765070086143:332306998946228968225951765070086142 332306998946228968225951765070086144:332306998946228968225951765070086143 332306998946228968225951765070086145:332306998946228968225951765070086144 332306998946228968225951765070086146:332306998946228968225951765070086145 # numbers close to 2^119 664613997892457936451903530140172286:664613997892457936451903530140172285 664613997892457936451903530140172287:664613997892457936451903530140172286 664613997892457936451903530140172288:664613997892457936451903530140172287 664613997892457936451903530140172289:664613997892457936451903530140172288 664613997892457936451903530140172290:664613997892457936451903530140172289 # numbers close to 2^120 1329227995784915872903807060280344574:1329227995784915872903807060280344573 1329227995784915872903807060280344575:1329227995784915872903807060280344574 1329227995784915872903807060280344576:1329227995784915872903807060280344575 1329227995784915872903807060280344577:1329227995784915872903807060280344576 1329227995784915872903807060280344578:1329227995784915872903807060280344577 # numbers close to 2^121 2658455991569831745807614120560689150:2658455991569831745807614120560689149 2658455991569831745807614120560689151:2658455991569831745807614120560689150 2658455991569831745807614120560689152:2658455991569831745807614120560689151 2658455991569831745807614120560689153:2658455991569831745807614120560689152 2658455991569831745807614120560689154:2658455991569831745807614120560689153 # numbers close to 2^122 5316911983139663491615228241121378302:5316911983139663491615228241121378301 5316911983139663491615228241121378303:5316911983139663491615228241121378302 5316911983139663491615228241121378304:5316911983139663491615228241121378303 5316911983139663491615228241121378305:5316911983139663491615228241121378304 5316911983139663491615228241121378306:5316911983139663491615228241121378305 # numbers close to 2^123 10633823966279326983230456482242756606:10633823966279326983230456482242756605 10633823966279326983230456482242756607:10633823966279326983230456482242756606 10633823966279326983230456482242756608:10633823966279326983230456482242756607 10633823966279326983230456482242756609:10633823966279326983230456482242756608 10633823966279326983230456482242756610:10633823966279326983230456482242756609 # numbers close to 2^124 21267647932558653966460912964485513214:21267647932558653966460912964485513213 21267647932558653966460912964485513215:21267647932558653966460912964485513214 21267647932558653966460912964485513216:21267647932558653966460912964485513215 21267647932558653966460912964485513217:21267647932558653966460912964485513216 21267647932558653966460912964485513218:21267647932558653966460912964485513217 # numbers close to 2^125 42535295865117307932921825928971026430:42535295865117307932921825928971026429 42535295865117307932921825928971026431:42535295865117307932921825928971026430 42535295865117307932921825928971026432:42535295865117307932921825928971026431 42535295865117307932921825928971026433:42535295865117307932921825928971026432 42535295865117307932921825928971026434:42535295865117307932921825928971026433 # numbers close to 2^126 85070591730234615865843651857942052862:85070591730234615865843651857942052861 85070591730234615865843651857942052863:85070591730234615865843651857942052862 85070591730234615865843651857942052864:85070591730234615865843651857942052863 85070591730234615865843651857942052865:85070591730234615865843651857942052864 85070591730234615865843651857942052866:85070591730234615865843651857942052865 # numbers close to 2^127 170141183460469231731687303715884105726:170141183460469231731687303715884105725 170141183460469231731687303715884105727:170141183460469231731687303715884105726 170141183460469231731687303715884105728:170141183460469231731687303715884105727 170141183460469231731687303715884105729:170141183460469231731687303715884105728 170141183460469231731687303715884105730:170141183460469231731687303715884105729 # numbers close to 2^128 340282366920938463463374607431768211454:340282366920938463463374607431768211453 340282366920938463463374607431768211455:340282366920938463463374607431768211454 340282366920938463463374607431768211456:340282366920938463463374607431768211455 340282366920938463463374607431768211457:340282366920938463463374607431768211456 340282366920938463463374607431768211458:340282366920938463463374607431768211457 # numbers close to 2^129 680564733841876926926749214863536422910:680564733841876926926749214863536422909 680564733841876926926749214863536422911:680564733841876926926749214863536422910 680564733841876926926749214863536422912:680564733841876926926749214863536422911 680564733841876926926749214863536422913:680564733841876926926749214863536422912 680564733841876926926749214863536422914:680564733841876926926749214863536422913 # numbers close to 2^130 1361129467683753853853498429727072845822:1361129467683753853853498429727072845821 1361129467683753853853498429727072845823:1361129467683753853853498429727072845822 1361129467683753853853498429727072845824:1361129467683753853853498429727072845823 1361129467683753853853498429727072845825:1361129467683753853853498429727072845824 1361129467683753853853498429727072845826:1361129467683753853853498429727072845825 # numbers close to 2^131 2722258935367507707706996859454145691646:2722258935367507707706996859454145691645 2722258935367507707706996859454145691647:2722258935367507707706996859454145691646 2722258935367507707706996859454145691648:2722258935367507707706996859454145691647 2722258935367507707706996859454145691649:2722258935367507707706996859454145691648 2722258935367507707706996859454145691650:2722258935367507707706996859454145691649 # numbers close to 2^132 5444517870735015415413993718908291383294:5444517870735015415413993718908291383293 5444517870735015415413993718908291383295:5444517870735015415413993718908291383294 5444517870735015415413993718908291383296:5444517870735015415413993718908291383295 5444517870735015415413993718908291383297:5444517870735015415413993718908291383296 5444517870735015415413993718908291383298:5444517870735015415413993718908291383297 # numbers close to 2^133 10889035741470030830827987437816582766590:10889035741470030830827987437816582766589 10889035741470030830827987437816582766591:10889035741470030830827987437816582766590 10889035741470030830827987437816582766592:10889035741470030830827987437816582766591 10889035741470030830827987437816582766593:10889035741470030830827987437816582766592 10889035741470030830827987437816582766594:10889035741470030830827987437816582766593 # numbers close to 2^134 21778071482940061661655974875633165533182:21778071482940061661655974875633165533181 21778071482940061661655974875633165533183:21778071482940061661655974875633165533182 21778071482940061661655974875633165533184:21778071482940061661655974875633165533183 21778071482940061661655974875633165533185:21778071482940061661655974875633165533184 21778071482940061661655974875633165533186:21778071482940061661655974875633165533185 # numbers close to 2^135 43556142965880123323311949751266331066366:43556142965880123323311949751266331066365 43556142965880123323311949751266331066367:43556142965880123323311949751266331066366 43556142965880123323311949751266331066368:43556142965880123323311949751266331066367 43556142965880123323311949751266331066369:43556142965880123323311949751266331066368 43556142965880123323311949751266331066370:43556142965880123323311949751266331066369 # numbers close to 2^136 87112285931760246646623899502532662132734:87112285931760246646623899502532662132733 87112285931760246646623899502532662132735:87112285931760246646623899502532662132734 87112285931760246646623899502532662132736:87112285931760246646623899502532662132735 87112285931760246646623899502532662132737:87112285931760246646623899502532662132736 87112285931760246646623899502532662132738:87112285931760246646623899502532662132737 # numbers close to 2^137 174224571863520493293247799005065324265470:174224571863520493293247799005065324265469 174224571863520493293247799005065324265471:174224571863520493293247799005065324265470 174224571863520493293247799005065324265472:174224571863520493293247799005065324265471 174224571863520493293247799005065324265473:174224571863520493293247799005065324265472 174224571863520493293247799005065324265474:174224571863520493293247799005065324265473 # numbers close to 2^138 348449143727040986586495598010130648530942:348449143727040986586495598010130648530941 348449143727040986586495598010130648530943:348449143727040986586495598010130648530942 348449143727040986586495598010130648530944:348449143727040986586495598010130648530943 348449143727040986586495598010130648530945:348449143727040986586495598010130648530944 348449143727040986586495598010130648530946:348449143727040986586495598010130648530945 # numbers close to 2^139 696898287454081973172991196020261297061886:696898287454081973172991196020261297061885 696898287454081973172991196020261297061887:696898287454081973172991196020261297061886 696898287454081973172991196020261297061888:696898287454081973172991196020261297061887 696898287454081973172991196020261297061889:696898287454081973172991196020261297061888 696898287454081973172991196020261297061890:696898287454081973172991196020261297061889 # numbers close to 2^140 1393796574908163946345982392040522594123774:1393796574908163946345982392040522594123773 1393796574908163946345982392040522594123775:1393796574908163946345982392040522594123774 1393796574908163946345982392040522594123776:1393796574908163946345982392040522594123775 1393796574908163946345982392040522594123777:1393796574908163946345982392040522594123776 1393796574908163946345982392040522594123778:1393796574908163946345982392040522594123777 # numbers close to 2^141 2787593149816327892691964784081045188247550:2787593149816327892691964784081045188247549 2787593149816327892691964784081045188247551:2787593149816327892691964784081045188247550 2787593149816327892691964784081045188247552:2787593149816327892691964784081045188247551 2787593149816327892691964784081045188247553:2787593149816327892691964784081045188247552 2787593149816327892691964784081045188247554:2787593149816327892691964784081045188247553 # numbers close to 2^142 5575186299632655785383929568162090376495102:5575186299632655785383929568162090376495101 5575186299632655785383929568162090376495103:5575186299632655785383929568162090376495102 5575186299632655785383929568162090376495104:5575186299632655785383929568162090376495103 5575186299632655785383929568162090376495105:5575186299632655785383929568162090376495104 5575186299632655785383929568162090376495106:5575186299632655785383929568162090376495105 # numbers close to 2^143 11150372599265311570767859136324180752990206:11150372599265311570767859136324180752990205 11150372599265311570767859136324180752990207:11150372599265311570767859136324180752990206 11150372599265311570767859136324180752990208:11150372599265311570767859136324180752990207 11150372599265311570767859136324180752990209:11150372599265311570767859136324180752990208 11150372599265311570767859136324180752990210:11150372599265311570767859136324180752990209 # numbers close to 2^144 22300745198530623141535718272648361505980414:22300745198530623141535718272648361505980413 22300745198530623141535718272648361505980415:22300745198530623141535718272648361505980414 22300745198530623141535718272648361505980416:22300745198530623141535718272648361505980415 22300745198530623141535718272648361505980417:22300745198530623141535718272648361505980416 22300745198530623141535718272648361505980418:22300745198530623141535718272648361505980417 # numbers close to 2^145 44601490397061246283071436545296723011960830:44601490397061246283071436545296723011960829 44601490397061246283071436545296723011960831:44601490397061246283071436545296723011960830 44601490397061246283071436545296723011960832:44601490397061246283071436545296723011960831 44601490397061246283071436545296723011960833:44601490397061246283071436545296723011960832 44601490397061246283071436545296723011960834:44601490397061246283071436545296723011960833 # numbers close to 2^146 89202980794122492566142873090593446023921662:89202980794122492566142873090593446023921661 89202980794122492566142873090593446023921663:89202980794122492566142873090593446023921662 89202980794122492566142873090593446023921664:89202980794122492566142873090593446023921663 89202980794122492566142873090593446023921665:89202980794122492566142873090593446023921664 89202980794122492566142873090593446023921666:89202980794122492566142873090593446023921665 # numbers close to 2^147 178405961588244985132285746181186892047843326:178405961588244985132285746181186892047843325 178405961588244985132285746181186892047843327:178405961588244985132285746181186892047843326 178405961588244985132285746181186892047843328:178405961588244985132285746181186892047843327 178405961588244985132285746181186892047843329:178405961588244985132285746181186892047843328 178405961588244985132285746181186892047843330:178405961588244985132285746181186892047843329 # numbers close to 2^148 356811923176489970264571492362373784095686654:356811923176489970264571492362373784095686653 356811923176489970264571492362373784095686655:356811923176489970264571492362373784095686654 356811923176489970264571492362373784095686656:356811923176489970264571492362373784095686655 356811923176489970264571492362373784095686657:356811923176489970264571492362373784095686656 356811923176489970264571492362373784095686658:356811923176489970264571492362373784095686657 # numbers close to 2^149 713623846352979940529142984724747568191373310:713623846352979940529142984724747568191373309 713623846352979940529142984724747568191373311:713623846352979940529142984724747568191373310 713623846352979940529142984724747568191373312:713623846352979940529142984724747568191373311 713623846352979940529142984724747568191373313:713623846352979940529142984724747568191373312 713623846352979940529142984724747568191373314:713623846352979940529142984724747568191373313 # numbers close to 2^150 1427247692705959881058285969449495136382746622:1427247692705959881058285969449495136382746621 1427247692705959881058285969449495136382746623:1427247692705959881058285969449495136382746622 1427247692705959881058285969449495136382746624:1427247692705959881058285969449495136382746623 1427247692705959881058285969449495136382746625:1427247692705959881058285969449495136382746624 1427247692705959881058285969449495136382746626:1427247692705959881058285969449495136382746625 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_dec.t0000644403072340010010000000723714536617520023021 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5469; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_dec'); my @data; # Small numbers. for (my $x = 1; $x <= 512 ; ++ $x) { push @data, [ $x, $x - 1 ]; } # 11 - 1, 101 - 1, 1001 - 1, 10001 - 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "1" . ("0" x ($p - 1) . "1"); my $y = "1" . ("0" x $p); push @data, [ $x, $y ]; } # 10 - 1, 100 - 1, 1000 - 1, 10000 - 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "1" . ("0" x $p); my $y = ("9" x $p); push @data, [ $x, $y ]; } # 9 - 1, 99 - 1, 999 - 1, 9999 - 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $y = "9" x ($p - 1) . "8"; push @data, [ $x, $y ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_dec(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_dec() in list context: $test", sub { plan tests => 6, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_dec(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_dec() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_dfac.dat0000644403072340010010000002246314505066136023463 0ustar OSPJADomain Users0:1 1:1 2:2 3:3 4:8 5:15 6:48 7:105 8:384 9:945 10:3840 11:10395 12:46080 13:135135 14:645120 15:2027025 16:10321920 17:34459425 18:185794560 19:654729075 20:3715891200 21:13749310575 22:81749606400 23:316234143225 24:1961990553600 25:7905853580625 26:51011754393600 27:213458046676875 28:1428329123020800 29:6190283353629375 30:42849873690624000 31:191898783962510625 32:1371195958099968000 33:6332659870762850625 34:46620662575398912000 35:221643095476699771875 36:1678343852714360832000 37:8200794532637891559375 38:63777066403145711616000 39:319830986772877770815625 40:2551082656125828464640000 41:13113070457687988603440625 42:107145471557284795514880000 43:563862029680583509947946875 44:4714400748520531002654720000 45:25373791335626257947657609375 46:216862434431944426122117120000 47:1192568192774434123539907640625 48:10409396852733332453861621760000 49:58435841445947272053455474390625 50:520469842636666622693081088000000 51:2980227913743310874726229193921875 52:27064431817106664380040216576000000 53:157952079428395476360490147277859375 54:1461479318123759876522171695104000000 55:8687364368561751199826958100282265625 56:81842841814930553085241614925824000000 57:495179769008019818390136611716089140625 58:4746884825265972078944013665697792000000 59:29215606371473169285018060091249259296875 60:284813089515958324736640819941867520000000 61:1782151988659863326386101665566204817109375 62:17658411549989416133671730836395786240000000 63:112275575285571389562324404930670903477890625 64:1130138339199322632554990773529330319360000000 65:7297912393562140321551086320493608726062890625 66:74589130387155293748629391052935801077760000000 67:488960130368663401543922783473071784646213671875 68:5072060866326559974906798591599634473287680000000 69:33738248995437774706530672059641953140588743359375 70:355044260642859198243475901411974413130137600000000 71:2395415678676082004163677716234578672981800778515625 72:25563186766285862273530264901662157745369907200000000 73:174865344543353986303948473285124243127671456831640625 74:1891675820705153808241239602722999673157373132800000000 75:13114900840751548972796135496384318234575359262373046875 76:143767362373591689426334209806947975159960358092800000000 77:1009847364737869270905302433221592504062302663202724609375 78:11213854265140151775254068364941942062476907931238400000000 79:79777941814291672401518892224505807820921910393015244140625 80:897108341211212142020325469195355364998152634499072000000000 81:6462013286957625464523030270184970433494674741834234775390625 82:73562883979319395645666688474019139929848516028923904000000000 83:536347102817482913555411512425352545980058003572241486357421875 84:6179282254262829234236001831817607754107275346429607936000000000 85:45589503739486047652209978556154966408304930303640526340380859375 86:531418273866603314144296157536314266853225679792946282496000000000 87:3966286825335286145742268134385482077522528936416725791613134765625 88:46764808100261091644698061863195655483083859821779272859648000000000 89:352999527454840466971061863960307904899505075341088595453568994140625 90:4208832729023498248022825567687608993477547383960134557368320000000000 91:32122956998390482494366629620388019345854961856039062186274778466796875 92:387212611070161838818099952227260027399934359324332379277885440000000000 93:2987435000850314871976096554696085799164511452611632783323554397412109375 94:36397985440595212848901395509362442575593829776487243652121231360000000000 95:283806325080779912837729172696128150920628587998105114415737667754150390625 96:3494206602297140433494533968898794487257007658542775390603638210560000000000 97:27529213532835651545259729751524430639300973035816196098326553772152587890625 98:342432247025119762482464328952081859751186750537191988279156544634880000000000 99:2725392139750729502980713245400918633290796330545803413734328823443106201171875 100:34243224702511976248246432895208185975118675053719198827915654463488000000000000 101:275264606114823679801052037785492781962370429385126144787167211167753726318359375 102:3492808919656221577321136155311234969462104855479358280447396755275776000000000000 103:28352254429826839019508359891905756542124154226667992913078222750278633810791015625 104:363252127644247044041398160152368436824058904969853261166529262548680704000000000000 105:2976986715131818097048377788650104436923036193800139255873213388779256550133056640625 106:38504725530290186668388204976151054303350243926804445683652101830160154624000000000000 107:318537578519104536384176423385561174750764872736614900378433832599380450864237060546875 108:4158510357271340160185926137424313864761826344094880133834426997657296699392000000000000 109:34720596058582394465875230149026168047833371128291024141249287753332469144201839599609375 110:457436139299847417620451875116674525123800897850436814721786969742302636933120000000000000 111:3853986162502645785712150546541904653309504195240303679678670940619904075006404195556640625 112:51232847601582910773490610013067546813865700559248923248840140611137895336509440000000000000 113:435500436362798973785473011759235225823973974062154315803689816290049160475723674097900390625 114:5840544626580451828177929541489700336780689863754377250367776029669720068362076160000000000000 115:50082550181721881985329396352312050969757007017147746317424328873355653454708222521258544921875 116:677503176683332412068639826812805239066560024195507761042662019441687527930000834560000000000000 117:5859658371261460192283539373220509963461569821006286319138646478182611454200862034987249755859375 118:79945374848633224624099499563911018209854082855069915803034118294119128295740098478080000000000000 119:697299346180113762881741185413240685651926808699748071977498930903730763049902582163482720947265625 120:9593444981835986954891939947669322185182489942608389896364094195294295395488811817369600000000000000 121:84373220887793765308690683435002122963883143852669516709277370639351422329038212441781409234619140625 122:1170400287783990408496816673615657306592263772998223567356419491825904038249635041719091200000000000000 123:10377906169198633132968954062505261124557626693878350555241116588640224946471700130339113335858154296875 124:145129635685214810653605267528341506017440707851779722352196016986412100742954745173167308800000000000000 125:1297238271149829141621119257813157640569703336734793819405139573580028118308962516292389166982269287109375 126:18286334096337066142354263708571029758197529189324245016376698140287924693612297891819080908800000000000000 127:164749260436028300985882145742271020352352323765318815064452725844663571025238239569133424206748199462890625 128:2340650764331144466221345754697091809049283736233503362096217361956854360782374130152842356326400000000000000 129:21252654596247650827178796800752961625453449765726127143314401633961600662255732904418211722670517730712890625 130:304284599363048780608774948110621935176406885710355437072508257054391066901708636919869506322432000000000000000 131:2784097752108442258360422380898637972934401919310122655774186614048969686755501010478785735669837822723388671875 132:40165567115922439040358293150602095443285708913766917693571089931179620831025540073422774834561024000000000000000 133:370285001030422820361936176659518850400275455268246313217966819668512968338481634393678502844088430422210693359375 134:5382185993533606831408011282180680789400284994444766970938526050778069191357422369838651827831177216000000000000000 135:49988475139107080748861383849035044804037186461213252284425520655249250725695020643146597883951938106998443603515625 136:731977295120570529071489534376572587358438759244488308047639542905817410024609442298056648585040101376000000000000000 137:6848421094057670062594009587317801138153094545186215562966296329769147349420217828111083910101415520658786773681640625 138:101012866726638733011865555743967017055464548775739386510574256921002802583396103037131817504735533989888000000000000000 139:951930532074016138700567332637174358203280141780883963252315189837911481569410278107440663504096757371571361541748046875 140:14141801341729422621661177804155382387765036828603514111480395968940392361675454425198454450662974758584320000000000000000 141:134222205022436275556779993901841584506662499991104638818576441767145518901286849213149133554077642789391561977386474609375 142:2008135790525578012275887248190064299062635229661699003830216227589535715357914528378180531994142415718973440000000000000000 143:19193775318208387404619539127963346584452737498727963351056431172701809202884019437480326098233102918882993362766265869140625 144:289171553835683233767727763739369259065019473071284656551551136772893143011539692086457996607156507863532175360000000000000000 145:2783097421140216173669833173554685254745646937315554685903182520041762334418182818434647284243799923238034037601108551025390625 146:42219046860009752130088253505947911823492843068407559856526465968842398879684795044622867504644850148075697602560000000000000000 147:409115320907611777529465476512538732447610099785386538827767830446139063159472874309893150783838588715991003527362957000732421875 148:6248418935281443315253061518880290949876940774124318858765916963388675034193349666604184390687437821915203245178880000000000000000 149:60958182815234154851890356000368271134693904868022594285337406736474720410761458272174079466791949718682659525577080593109130859375 150:937262840292216497287959227832043642481541116118647828814887544508301255129002449990627658603115673287280486776832000000000000000000 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_dfac.t0000644403072340010010000000607314536617520023160 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 605; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_dfac'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_dfac(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_dfac() in list context: $test", sub { plan tests => 6, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_dfac(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_dfac() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_fac.dat0000644403072340010010000004342514505066136023320 0ustar OSPJADomain Users0:1 1:1 2:2 3:6 4:24 5:120 6:720 7:5040 8:40320 9:362880 10:3628800 11:39916800 12:479001600 13:6227020800 14:87178291200 15:1307674368000 16:20922789888000 17:355687428096000 18:6402373705728000 19:121645100408832000 20:2432902008176640000 21:51090942171709440000 22:1124000727777607680000 23:25852016738884976640000 24:620448401733239439360000 25:15511210043330985984000000 26:403291461126605635584000000 27:10888869450418352160768000000 28:304888344611713860501504000000 29:8841761993739701954543616000000 30:265252859812191058636308480000000 31:8222838654177922817725562880000000 32:263130836933693530167218012160000000 33:8683317618811886495518194401280000000 34:295232799039604140847618609643520000000 35:10333147966386144929666651337523200000000 36:371993326789901217467999448150835200000000 37:13763753091226345046315979581580902400000000 38:523022617466601111760007224100074291200000000 39:20397882081197443358640281739902897356800000000 40:815915283247897734345611269596115894272000000000 41:33452526613163807108170062053440751665152000000000 42:1405006117752879898543142606244511569936384000000000 43:60415263063373835637355132068513997507264512000000000 44:2658271574788448768043625811014615890319638528000000000 45:119622220865480194561963161495657715064383733760000000000 46:5502622159812088949850305428800254892961651752960000000000 47:258623241511168180642964355153611979969197632389120000000000 48:12413915592536072670862289047373375038521486354677760000000000 49:608281864034267560872252163321295376887552831379210240000000000 50:30414093201713378043612608166064768844377641568960512000000000000 51:1551118753287382280224243016469303211063259720016986112000000000000 52:80658175170943878571660636856403766975289505440883277824000000000000 53:4274883284060025564298013753389399649690343788366813724672000000000000 54:230843697339241380472092742683027581083278564571807941132288000000000000 55:12696403353658275925965100847566516959580321051449436762275840000000000000 56:710998587804863451854045647463724949736497978881168458687447040000000000000 57:40526919504877216755680601905432322134980384796226602145184481280000000000000 58:2350561331282878571829474910515074683828862318181142924420699914240000000000000 59:138683118545689835737939019720389406345902876772687432540821294940160000000000000 60:8320987112741390144276341183223364380754172606361245952449277696409600000000000000 61:507580213877224798800856812176625227226004528988036003099405939480985600000000000000 62:31469973260387937525653122354950764088012280797258232192163168247821107200000000000000 63:1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000 64:126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000 65:8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000 66:544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000 67:36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000 68:2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000 69:171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000 70:11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000 71:850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000 72:61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000 73:4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000 74:330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000 75:24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000 76:1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000 77:145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000 78:11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000 79:894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000 80:71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000 81:5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000 82:475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000 83:39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000 84:3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000 85:281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000 86:24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000 87:2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000 88:185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000 89:16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000 90:1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000 91:135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000 92:12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000 93:1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000 94:108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000 95:10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000 96:991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000 97:96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000 98:9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000 99:933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000 100:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 101:9425947759838359420851623124482936749562312794702543768327889353416977599316221476503087861591808346911623490003549599583369706302603264000000000000000000000000 102:961446671503512660926865558697259548455355905059659464369444714048531715130254590603314961882364451384985595980362059157503710042865532928000000000000000000000000 103:99029007164861804075467152545817733490901658221144924830052805546998766658416222832141441073883538492653516385977292093222882134415149891584000000000000000000000000 104:10299016745145627623848583864765044283053772454999072182325491776887871732475287174542709871683888003235965704141638377695179741979175588724736000000000000000000000000 105:1081396758240290900504101305800329649720646107774902579144176636573226531909905153326984536526808240339776398934872029657993872907813436816097280000000000000000000000000 106:114628056373470835453434738414834942870388487424139673389282723476762012382449946252660360871841673476016298287096435143747350528228224302506311680000000000000000000000000 107:12265202031961379393517517010387338887131568154382945052653251412013535324922144249034658613287059061933743916719318560380966506520420000368175349760000000000000000000000000 108:1324641819451828974499891837121832599810209360673358065686551152497461815091591578895743130235002378688844343005686404521144382704205360039762937774080000000000000000000000000 109:144385958320249358220488210246279753379312820313396029159834075622223337844983482099636001195615259277084033387619818092804737714758384244334160217374720000000000000000000000000 110:15882455415227429404253703127090772871724410234473563207581748318444567162948183030959960131517678520479243672638179990208521148623422266876757623911219200000000000000000000000000 111:1762952551090244663872161047107075788761409536026565516041574063347346955087248316436555574598462315773196047662837978913145847497199871623320096254145331200000000000000000000000000 112:197450685722107402353682037275992488341277868034975337796656295094902858969771811440894224355027779366597957338237853638272334919686385621811850780464277094400000000000000000000000000 113:22311927486598136465966070212187151182564399087952213171022161345724023063584214692821047352118139068425569179220877461124773845924561575264739138192463311667200000000000000000000000000 114:2543559733472187557120132004189335234812341496026552301496526393412538629248600474981599398141467853800514886431180030568224218435400019580180261753940817530060800000000000000000000000000 115:292509369349301569068815180481773552003419272043053514672100535242441942363589054622883930786268803187059211939585703515345785120071002251720730101703194015956992000000000000000000000000000 116:33931086844518982011982560935885732032396635556994207701963662088123265314176330336254535971207181169698868584991941607780111073928236261199604691797570505851011072000000000000000000000000000 117:3969937160808720895401959629498630647790406360168322301129748464310422041758630649341780708631240196854767624444057168110272995649603642560353748940315749184568295424000000000000000000000000000 118:468452584975429065657431236280838416439267950499862031533310318788629800927518416622330123618486343228862579684398745837012213486653229822121742374957258403779058860032000000000000000000000000000 119:55745857612076058813234317117419771556272886109483581752463927935846946310374691578057284710599874844234646982443450754604453404911734348832487342619913750049708004343808000000000000000000000000000 120:6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000 121:809429852527344373968162284544935082997082306309701607045776233628497660426640521713391773997910182738287074185078904956856663439318382745047716214841147650721760223072092160000000000000000000000000000 122:98750442008336013624115798714482080125644041369783596059584700502676714572050143649033796427745042294071023050579626404736512939596842694895821378210620013388054747214795243520000000000000000000000000000 123:12146304367025329675766243241881295855454217088483382315328918161829235892362167668831156960612640202170735835221294047782591091570411651472186029519906261646730733907419814952960000000000000000000000000000 124:1506141741511140879795014161993280686076322918971939407100785852066825250652908790935063463115967385069171243567440461925041295354731044782551067660468376444194611004520057054167040000000000000000000000000000 125:188267717688892609974376770249160085759540364871492425887598231508353156331613598866882932889495923133646405445930057740630161919341380597818883457558547055524326375565007131770880000000000000000000000000000000 126:23721732428800468856771473051394170805702085973808045661837377170052497697783313457227249544076486314839447086187187275319400401837013955325179315652376928996065123321190898603130880000000000000000000000000000000 127:3012660018457659544809977077527059692324164918673621799053346900596667207618480809067860692097713761984609779945772783965563851033300772326297773087851869982500270661791244122597621760000000000000000000000000000000 128:385620482362580421735677065923463640617493109590223590278828403276373402575165543560686168588507361534030051833058916347592172932262498857766114955245039357760034644709279247692495585280000000000000000000000000000000 129:49745042224772874403902341504126809639656611137138843145968864022652168932196355119328515747917449637889876686464600208839390308261862352651828829226610077151044469167497022952331930501120000000000000000000000000000000 130:6466855489220473672507304395536485253155359447828049608975952322944781961185526165512707047229268452925683969240398027149120740074042105844737747799459310029635780991774612983803150965145600000000000000000000000000000000 131:847158069087882051098456875815279568163352087665474498775849754305766436915303927682164623187034167333264599970492141556534816949699515865660644961729169613882287309922474300878212776434073600000000000000000000000000000000 132:111824865119600430744996307607616902997562475571842633838412167568361169672820118454045730260688510087990927196104962685462595837360336094267205134948250389032461924909766607715924086489297715200000000000000000000000000000000 133:14872707060906857289084508911813048098675809251055070300508818286592035566485075754388082124671571841702793317081960037166525246368924700537538282948117301741317436012998958826217903503076596121600000000000000000000000000000000 134:1992942746161518876737324194182948445222558439641379420268181650403332765909000151088003004705990626788174304488982644980314383013435909872030129915047718433336536425741860482713199069412263880294400000000000000000000000000000000 135:269047270731805048359538766214698040105045389351586221736204522804449923397715020396880405635308734616403531106012657072342441706813847832724067538531441988500432417475151165166281874370655623839744000000000000000000000000000000000 136:36590428819525486576897272205198933454286172951815726156123815101405189582089242773975735166401987907830880230417721361838572072126683305250473185240276110436058808776620558462614334914409164842205184000000000000000000000000000000000 137:5012888748274991661034926292112253883237205694398754483388962668892510972746226260034675717797072343372830591567227826571884373881355612819314826377917827129740056802397016509378163883274055583382110208000000000000000000000000000000000 138:691778647261948849222819828311491035886734385827028118707676848307166514238979223884785249055995983385450621636277440066920043595627074569065446040152660143904127838730788278294186615891819670506731208704000000000000000000000000000000000 139:96157231969410890041971956135297253988256079629956908500367081914696145479218112119985149618783441690577636407442564169301886059792163365100096999581219760002673769583579570682891939608962934200435638009856000000000000000000000000000000000 140:13462012475717524605876073858941615558355851148193967190051391468057460367090535696797920946629681836680869097041958983702264048370902871114013579941370766400374327741701139895604871545254810788060989321379840000000000000000000000000000000000 141:1898143759076170969428526414110767793728175011895349373797246196996101911759765533248506853474785138972002542682916216702019230820297304827075914771733278062452780211579860725280286887880928321116599494314557440000000000000000000000000000000000 142:269536413788816277658850750803729026709400851689139611079208959973446471469886705721287973193419489734024361060974102771686730776482217285444779897586125484868294790044340222989800738079091821598557128192667156480000000000000000000000000000000000 143:38543707171800727705215657364933250819444321791546964384326881276202845420193798918144180166658987031965483631719296696351202501036957071818603525354815944336166154976340651887541505545310130488593669331551403376640000000000000000000000000000000000 144:5550293832739304789551054660550388117999982337982762871343070903773209740507907044212761943998894132603029642967578724274573160149321818341878907651093495984407926316593053871805976798524658790357488383743402086236160000000000000000000000000000000000 145:804792605747199194484902925779806277109997439007500616344745281047115412373646521410850481879839649227439298230298915019813108221651663659572441609408556917739149315905992811411866635786075524601835815642793302504243200000000000000000000000000000000000 146:117499720439091082394795827163851716458059626095095089986332811032878850206552392125984170354456588787206137541623641592892713800361142894297576474973649309989915800122274950466132528824767026591868029083847822165619507200000000000000000000000000000000000 147:17272458904546389112034986593086202319334765035978978227990923221833190980363201642519673042105118551719302218618675314155228928653088005461743741821126448568517622617974417718521481737240752909004600275325629858346067558400000000000000000000000000000000000 148:2556323917872865588581178015776757943261545225324888777742656636831312265093753843092911610231557545654456728355563946494973881440657024808338073789526714388140608147460213822341179297111631430532680840748193219035217998643200000000000000000000000000000000000 149:380892263763056972698595524350736933545970238573408427883655838887865527498969322620843829924502074302514052524979028027751108334657896696442372994639480443832950613971571859528835715269633083149369445271480789636247481797836800000000000000000000000000000000000 150:57133839564458545904789328652610540031895535786011264182548375833179829124845398393126574488675311145377107878746854204162666250198684504466355949195922066574942592095735778929325357290444962472405416790722118445437122269675520000000000000000000000000000000000000 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_fac.t0000644403072340010010000000606614536617520023016 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 605; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_fac'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_fac(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_fac() in list context: $test", sub { plan tests => 6, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_fac(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_fac() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_fib.dat0000644403072340010010000001707514505066136023331 0ustar OSPJADomain Users0:0 1:1 2:1 3:2 4:3 5:5 6:8 7:13 8:21 9:34 10:55 11:89 12:144 13:233 14:377 15:610 16:987 17:1597 18:2584 19:4181 20:6765 21:10946 22:17711 23:28657 24:46368 25:75025 26:121393 27:196418 28:317811 29:514229 30:832040 31:1346269 32:2178309 33:3524578 34:5702887 35:9227465 36:14930352 37:24157817 38:39088169 39:63245986 40:102334155 41:165580141 42:267914296 43:433494437 44:701408733 45:1134903170 46:1836311903 47:2971215073 48:4807526976 49:7778742049 50:12586269025 51:20365011074 52:32951280099 53:53316291173 54:86267571272 55:139583862445 56:225851433717 57:365435296162 58:591286729879 59:956722026041 60:1548008755920 61:2504730781961 62:4052739537881 63:6557470319842 64:10610209857723 65:17167680177565 66:27777890035288 67:44945570212853 68:72723460248141 69:117669030460994 70:190392490709135 71:308061521170129 72:498454011879264 73:806515533049393 74:1304969544928657 75:2111485077978050 76:3416454622906707 77:5527939700884757 78:8944394323791464 79:14472334024676221 80:23416728348467685 81:37889062373143906 82:61305790721611591 83:99194853094755497 84:160500643816367088 85:259695496911122585 86:420196140727489673 87:679891637638612258 88:1100087778366101931 89:1779979416004714189 90:2880067194370816120 91:4660046610375530309 92:7540113804746346429 93:12200160415121876738 94:19740274219868223167 95:31940434634990099905 96:51680708854858323072 97:83621143489848422977 98:135301852344706746049 99:218922995834555169026 100:354224848179261915075 101:573147844013817084101 102:927372692193078999176 103:1500520536206896083277 104:2427893228399975082453 105:3928413764606871165730 106:6356306993006846248183 107:10284720757613717413913 108:16641027750620563662096 109:26925748508234281076009 110:43566776258854844738105 111:70492524767089125814114 112:114059301025943970552219 113:184551825793033096366333 114:298611126818977066918552 115:483162952612010163284885 116:781774079430987230203437 117:1264937032042997393488322 118:2046711111473984623691759 119:3311648143516982017180081 120:5358359254990966640871840 121:8670007398507948658051921 122:14028366653498915298923761 123:22698374052006863956975682 124:36726740705505779255899443 125:59425114757512643212875125 126:96151855463018422468774568 127:155576970220531065681649693 128:251728825683549488150424261 129:407305795904080553832073954 130:659034621587630041982498215 131:1066340417491710595814572169 132:1725375039079340637797070384 133:2791715456571051233611642553 134:4517090495650391871408712937 135:7308805952221443105020355490 136:11825896447871834976429068427 137:19134702400093278081449423917 138:30960598847965113057878492344 139:50095301248058391139327916261 140:81055900096023504197206408605 141:131151201344081895336534324866 142:212207101440105399533740733471 143:343358302784187294870275058337 144:555565404224292694404015791808 145:898923707008479989274290850145 146:1454489111232772683678306641953 147:2353412818241252672952597492098 148:3807901929474025356630904134051 149:6161314747715278029583501626149 150:9969216677189303386214405760200 151:16130531424904581415797907386349 152:26099748102093884802012313146549 153:42230279526998466217810220532898 154:68330027629092351019822533679447 155:110560307156090817237632754212345 156:178890334785183168257455287891792 157:289450641941273985495088042104137 158:468340976726457153752543329995929 159:757791618667731139247631372100066 160:1226132595394188293000174702095995 161:1983924214061919432247806074196061 162:3210056809456107725247980776292056 163:5193981023518027157495786850488117 164:8404037832974134882743767626780173 165:13598018856492162040239554477268290 166:22002056689466296922983322104048463 167:35600075545958458963222876581316753 168:57602132235424755886206198685365216 169:93202207781383214849429075266681969 170:150804340016807970735635273952047185 171:244006547798191185585064349218729154 172:394810887814999156320699623170776339 173:638817435613190341905763972389505493 174:1033628323428189498226463595560281832 175:1672445759041379840132227567949787325 176:2706074082469569338358691163510069157 177:4378519841510949178490918731459856482 178:7084593923980518516849609894969925639 179:11463113765491467695340528626429782121 180:18547707689471986212190138521399707760 181:30010821454963453907530667147829489881 182:48558529144435440119720805669229197641 183:78569350599398894027251472817058687522 184:127127879743834334146972278486287885163 185:205697230343233228174223751303346572685 186:332825110087067562321196029789634457848 187:538522340430300790495419781092981030533 188:871347450517368352816615810882615488381 189:1409869790947669143312035591975596518914 190:2281217241465037496128651402858212007295 191:3691087032412706639440686994833808526209 192:5972304273877744135569338397692020533504 193:9663391306290450775010025392525829059713 194:15635695580168194910579363790217849593217 195:25299086886458645685589389182743678652930 196:40934782466626840596168752972961528246147 197:66233869353085486281758142155705206899077 198:107168651819712326877926895128666735145224 199:173402521172797813159685037284371942044301 200:280571172992510140037611932413038677189525 201:453973694165307953197296969697410619233826 202:734544867157818093234908902110449296423351 203:1188518561323126046432205871807859915657177 204:1923063428480944139667114773918309212080528 205:3111581989804070186099320645726169127737705 206:5034645418285014325766435419644478339818233 207:8146227408089084511865756065370647467555938 208:13180872826374098837632191485015125807374171 209:21327100234463183349497947550385773274930109 210:34507973060837282187130139035400899082304280 211:55835073295300465536628086585786672357234389 212:90343046356137747723758225621187571439538669 213:146178119651438213260386312206974243796773058 214:236521166007575960984144537828161815236311727 215:382699285659014174244530850035136059033084785 216:619220451666590135228675387863297874269396512 217:1001919737325604309473206237898433933302481297 218:1621140188992194444701881625761731807571877809 219:2623059926317798754175087863660165740874359106 220:4244200115309993198876969489421897548446236915 221:6867260041627791953052057353082063289320596021 222:11111460156937785151929026842503960837766832936 223:17978720198565577104981084195586024127087428957 224:29090180355503362256910111038089984964854261893 225:47068900554068939361891195233676009091941690850 226:76159080909572301618801306271765994056795952743 227:123227981463641240980692501505442003148737643593 228:199387062373213542599493807777207997205533596336 229:322615043836854783580186309282650000354271239929 230:522002106210068326179680117059857997559804836265 231:844617150046923109759866426342507997914076076194 232:1366619256256991435939546543402365995473880912459 233:2211236406303914545699412969744873993387956988653 234:3577855662560905981638959513147239988861837901112 235:5789092068864820527338372482892113982249794889765 236:9366947731425726508977331996039353971111632790877 237:15156039800290547036315704478931467953361427680642 238:24522987531716273545293036474970821924473060471519 239:39679027332006820581608740953902289877834488152161 240:64202014863723094126901777428873111802307548623680 241:103881042195729914708510518382775401680142036775841 242:168083057059453008835412295811648513482449585399521 243:271964099255182923543922814194423915162591622175362 244:440047156314635932379335110006072428645041207574883 245:712011255569818855923257924200496343807632829750245 246:1152058411884454788302593034206568772452674037325128 247:1864069667454273644225850958407065116260306867075373 248:3016128079338728432528443992613633888712980904400501 249:4880197746793002076754294951020699004973287771475874 250:7896325826131730509282738943634332893686268675876375 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_fib.t0000644403072340010010000000421614546553333023022 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 503; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_fib'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_fib(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_fib() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_ilog10.t0000644403072340010010000001057614546553333023363 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4569; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_ilog10'); # int(log(x) / log(10) sub ilog10 { my $x = shift; my $y = int(log($x) / log(10)); my $trial = 10 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 10 ** $y; } while ($trial > $x) { $y--; $trial = 10 ** $y; } return $y; } my @data; # Small numbers. for (my $x = 1; $x <= 998 ; ++ $x) { my $y = ilog10($x); my $status = 10 ** $y == $x ? 1 : 0; push @data, [ $x, $y, $status ]; } # Larger numbers. my $b = $LIB -> _new(10); for (my $y = 3 ; $y <= 50 ; $y++) { my $x = $LIB -> _pow($LIB -> _copy($b), $LIB -> _new($y)); my $x_up = $LIB -> _inc($LIB -> _copy($x)); my $x_dn = $LIB -> _dec($LIB -> _copy($x)); push @data, [ $LIB -> _str($x_dn), $y - 1, 0 ]; # ilog10(10**$y - 1) = $y - 1 push @data, [ $LIB -> _str($x), $y, 1 ]; # ilog10(10**$y) = $y push @data, [ $LIB -> _str($x_up), $y, 0 ]; # ilog10(10**$y + 1) = $y } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_ilog10(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ilog10() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got, $out0, "'$test' output arg has the right value"); return; } plan tests => 5; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_ilog10(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ilog10() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got[0], $out0, "'$test' output arg has the right value"); return; } plan tests => 8; # Number of output arguments. cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); # First output argument. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); # Second output argument. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_ilog2.t0000644403072340010010000001055714773764715023315 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5181; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_ilog2'); # int(log(x) / log(2)) sub ilog2 { my $x = shift; my $y = int(log($x) / log(2)); my $trial = 2 ** $y; return $y if $trial == $x; while ($trial < $x) { $y++; $trial = 2 ** $y; } while ($trial > $x) { $y--; $trial = 2 ** $y; } return $y; } my @data; # Small numbers. for (my $x = 1 ; $x <= 1022 ; ++ $x) { my $y = ilog2($x); my $status = 2 ** $y == $x ? 1 : 0; push @data, [ $x, $y, $status ]; } # Larger numbers. my $b = $LIB -> _new(2); for (my $y = 10 ; $y <= 100 ; $y++) { my $x = $LIB -> _pow($LIB -> _copy($b), $LIB -> _new($y)); my $x_up = $LIB -> _inc($LIB -> _copy($x)); my $x_dn = $LIB -> _dec($LIB -> _copy($x)); push @data, [ $LIB -> _str($x_dn), $y - 1, 0 ]; # ilog2(2**$y - 1) = $y - 1 push @data, [ $LIB -> _str($x), $y, 1 ]; # ilog2(2**$y) = $y push @data, [ $LIB -> _str($x_up), $y, 0 ]; # ilog2(2**$y + 1) = $y } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_ilog2(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ilog2() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got, $out0, "'$test' output arg has the right value"); return; } plan tests => 5; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_ilog2(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ilog2() in list context: $test", sub { unless (defined $out0) { plan tests => 1; is($got[0], $out0, "'$test' output arg has the right value"); return; } plan tests => 8; # Number of output arguments. cmp_ok(scalar(@got), '==', 2, "'$test' gives two output args"); # First output argument. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' first input arg has the correct value"); # Second output argument. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_inc.dat0000644403072340010010000011556414505066136023344 0ustar OSPJADomain Users# numbers close to 2^10 1022:1023 1023:1024 1024:1025 1025:1026 1026:1027 # numbers close to 2^11 2046:2047 2047:2048 2048:2049 2049:2050 2050:2051 # numbers close to 2^12 4094:4095 4095:4096 4096:4097 4097:4098 4098:4099 # numbers close to 2^13 8190:8191 8191:8192 8192:8193 8193:8194 8194:8195 # numbers close to 2^14 16382:16383 16383:16384 16384:16385 16385:16386 16386:16387 # numbers close to 2^15 32766:32767 32767:32768 32768:32769 32769:32770 32770:32771 # numbers close to 2^16 65534:65535 65535:65536 65536:65537 65537:65538 65538:65539 # numbers close to 2^17 131070:131071 131071:131072 131072:131073 131073:131074 131074:131075 # numbers close to 2^18 262142:262143 262143:262144 262144:262145 262145:262146 262146:262147 # numbers close to 2^19 524286:524287 524287:524288 524288:524289 524289:524290 524290:524291 # numbers close to 2^20 1048574:1048575 1048575:1048576 1048576:1048577 1048577:1048578 1048578:1048579 # numbers close to 2^21 2097150:2097151 2097151:2097152 2097152:2097153 2097153:2097154 2097154:2097155 # numbers close to 2^22 4194302:4194303 4194303:4194304 4194304:4194305 4194305:4194306 4194306:4194307 # numbers close to 2^23 8388606:8388607 8388607:8388608 8388608:8388609 8388609:8388610 8388610:8388611 # numbers close to 2^24 16777214:16777215 16777215:16777216 16777216:16777217 16777217:16777218 16777218:16777219 # numbers close to 2^25 33554430:33554431 33554431:33554432 33554432:33554433 33554433:33554434 33554434:33554435 # numbers close to 2^26 67108862:67108863 67108863:67108864 67108864:67108865 67108865:67108866 67108866:67108867 # numbers close to 2^27 134217726:134217727 134217727:134217728 134217728:134217729 134217729:134217730 134217730:134217731 # numbers close to 2^28 268435454:268435455 268435455:268435456 268435456:268435457 268435457:268435458 268435458:268435459 # numbers close to 2^29 536870910:536870911 536870911:536870912 536870912:536870913 536870913:536870914 536870914:536870915 # numbers close to 2^30 1073741822:1073741823 1073741823:1073741824 1073741824:1073741825 1073741825:1073741826 1073741826:1073741827 # numbers close to 2^31 2147483646:2147483647 2147483647:2147483648 2147483648:2147483649 2147483649:2147483650 2147483650:2147483651 # numbers close to 2^32 4294967294:4294967295 4294967295:4294967296 4294967296:4294967297 4294967297:4294967298 4294967298:4294967299 # numbers close to 2^33 8589934590:8589934591 8589934591:8589934592 8589934592:8589934593 8589934593:8589934594 8589934594:8589934595 # numbers close to 2^34 17179869182:17179869183 17179869183:17179869184 17179869184:17179869185 17179869185:17179869186 17179869186:17179869187 # numbers close to 2^35 34359738366:34359738367 34359738367:34359738368 34359738368:34359738369 34359738369:34359738370 34359738370:34359738371 # numbers close to 2^36 68719476734:68719476735 68719476735:68719476736 68719476736:68719476737 68719476737:68719476738 68719476738:68719476739 # numbers close to 2^37 137438953470:137438953471 137438953471:137438953472 137438953472:137438953473 137438953473:137438953474 137438953474:137438953475 # numbers close to 2^38 274877906942:274877906943 274877906943:274877906944 274877906944:274877906945 274877906945:274877906946 274877906946:274877906947 # numbers close to 2^39 549755813886:549755813887 549755813887:549755813888 549755813888:549755813889 549755813889:549755813890 549755813890:549755813891 # numbers close to 2^40 1099511627774:1099511627775 1099511627775:1099511627776 1099511627776:1099511627777 1099511627777:1099511627778 1099511627778:1099511627779 # numbers close to 2^41 2199023255550:2199023255551 2199023255551:2199023255552 2199023255552:2199023255553 2199023255553:2199023255554 2199023255554:2199023255555 # numbers close to 2^42 4398046511102:4398046511103 4398046511103:4398046511104 4398046511104:4398046511105 4398046511105:4398046511106 4398046511106:4398046511107 # numbers close to 2^43 8796093022206:8796093022207 8796093022207:8796093022208 8796093022208:8796093022209 8796093022209:8796093022210 8796093022210:8796093022211 # numbers close to 2^44 17592186044414:17592186044415 17592186044415:17592186044416 17592186044416:17592186044417 17592186044417:17592186044418 17592186044418:17592186044419 # numbers close to 2^45 35184372088830:35184372088831 35184372088831:35184372088832 35184372088832:35184372088833 35184372088833:35184372088834 35184372088834:35184372088835 # numbers close to 2^46 70368744177662:70368744177663 70368744177663:70368744177664 70368744177664:70368744177665 70368744177665:70368744177666 70368744177666:70368744177667 # numbers close to 2^47 140737488355326:140737488355327 140737488355327:140737488355328 140737488355328:140737488355329 140737488355329:140737488355330 140737488355330:140737488355331 # numbers close to 2^48 281474976710654:281474976710655 281474976710655:281474976710656 281474976710656:281474976710657 281474976710657:281474976710658 281474976710658:281474976710659 # numbers close to 2^49 562949953421310:562949953421311 562949953421311:562949953421312 562949953421312:562949953421313 562949953421313:562949953421314 562949953421314:562949953421315 # numbers close to 2^50 1125899906842622:1125899906842623 1125899906842623:1125899906842624 1125899906842624:1125899906842625 1125899906842625:1125899906842626 1125899906842626:1125899906842627 # numbers close to 2^51 2251799813685246:2251799813685247 2251799813685247:2251799813685248 2251799813685248:2251799813685249 2251799813685249:2251799813685250 2251799813685250:2251799813685251 # numbers close to 2^52 4503599627370494:4503599627370495 4503599627370495:4503599627370496 4503599627370496:4503599627370497 4503599627370497:4503599627370498 4503599627370498:4503599627370499 # numbers close to 2^53 9007199254740990:9007199254740991 9007199254740991:9007199254740992 9007199254740992:9007199254740993 9007199254740993:9007199254740994 9007199254740994:9007199254740995 # numbers close to 2^54 18014398509481982:18014398509481983 18014398509481983:18014398509481984 18014398509481984:18014398509481985 18014398509481985:18014398509481986 18014398509481986:18014398509481987 # numbers close to 2^55 36028797018963966:36028797018963967 36028797018963967:36028797018963968 36028797018963968:36028797018963969 36028797018963969:36028797018963970 36028797018963970:36028797018963971 # numbers close to 2^56 72057594037927934:72057594037927935 72057594037927935:72057594037927936 72057594037927936:72057594037927937 72057594037927937:72057594037927938 72057594037927938:72057594037927939 # numbers close to 2^57 144115188075855870:144115188075855871 144115188075855871:144115188075855872 144115188075855872:144115188075855873 144115188075855873:144115188075855874 144115188075855874:144115188075855875 # numbers close to 2^58 288230376151711742:288230376151711743 288230376151711743:288230376151711744 288230376151711744:288230376151711745 288230376151711745:288230376151711746 288230376151711746:288230376151711747 # numbers close to 2^59 576460752303423486:576460752303423487 576460752303423487:576460752303423488 576460752303423488:576460752303423489 576460752303423489:576460752303423490 576460752303423490:576460752303423491 # numbers close to 2^60 1152921504606846974:1152921504606846975 1152921504606846975:1152921504606846976 1152921504606846976:1152921504606846977 1152921504606846977:1152921504606846978 1152921504606846978:1152921504606846979 # numbers close to 2^61 2305843009213693950:2305843009213693951 2305843009213693951:2305843009213693952 2305843009213693952:2305843009213693953 2305843009213693953:2305843009213693954 2305843009213693954:2305843009213693955 # numbers close to 2^62 4611686018427387902:4611686018427387903 4611686018427387903:4611686018427387904 4611686018427387904:4611686018427387905 4611686018427387905:4611686018427387906 4611686018427387906:4611686018427387907 # numbers close to 2^63 9223372036854775806:9223372036854775807 9223372036854775807:9223372036854775808 9223372036854775808:9223372036854775809 9223372036854775809:9223372036854775810 9223372036854775810:9223372036854775811 # numbers close to 2^64 18446744073709551614:18446744073709551615 18446744073709551615:18446744073709551616 18446744073709551616:18446744073709551617 18446744073709551617:18446744073709551618 18446744073709551618:18446744073709551619 # numbers close to 2^65 36893488147419103230:36893488147419103231 36893488147419103231:36893488147419103232 36893488147419103232:36893488147419103233 36893488147419103233:36893488147419103234 36893488147419103234:36893488147419103235 # numbers close to 2^66 73786976294838206462:73786976294838206463 73786976294838206463:73786976294838206464 73786976294838206464:73786976294838206465 73786976294838206465:73786976294838206466 73786976294838206466:73786976294838206467 # numbers close to 2^67 147573952589676412926:147573952589676412927 147573952589676412927:147573952589676412928 147573952589676412928:147573952589676412929 147573952589676412929:147573952589676412930 147573952589676412930:147573952589676412931 # numbers close to 2^68 295147905179352825854:295147905179352825855 295147905179352825855:295147905179352825856 295147905179352825856:295147905179352825857 295147905179352825857:295147905179352825858 295147905179352825858:295147905179352825859 # numbers close to 2^69 590295810358705651710:590295810358705651711 590295810358705651711:590295810358705651712 590295810358705651712:590295810358705651713 590295810358705651713:590295810358705651714 590295810358705651714:590295810358705651715 # numbers close to 2^70 1180591620717411303422:1180591620717411303423 1180591620717411303423:1180591620717411303424 1180591620717411303424:1180591620717411303425 1180591620717411303425:1180591620717411303426 1180591620717411303426:1180591620717411303427 # numbers close to 2^71 2361183241434822606846:2361183241434822606847 2361183241434822606847:2361183241434822606848 2361183241434822606848:2361183241434822606849 2361183241434822606849:2361183241434822606850 2361183241434822606850:2361183241434822606851 # numbers close to 2^72 4722366482869645213694:4722366482869645213695 4722366482869645213695:4722366482869645213696 4722366482869645213696:4722366482869645213697 4722366482869645213697:4722366482869645213698 4722366482869645213698:4722366482869645213699 # numbers close to 2^73 9444732965739290427390:9444732965739290427391 9444732965739290427391:9444732965739290427392 9444732965739290427392:9444732965739290427393 9444732965739290427393:9444732965739290427394 9444732965739290427394:9444732965739290427395 # numbers close to 2^74 18889465931478580854782:18889465931478580854783 18889465931478580854783:18889465931478580854784 18889465931478580854784:18889465931478580854785 18889465931478580854785:18889465931478580854786 18889465931478580854786:18889465931478580854787 # numbers close to 2^75 37778931862957161709566:37778931862957161709567 37778931862957161709567:37778931862957161709568 37778931862957161709568:37778931862957161709569 37778931862957161709569:37778931862957161709570 37778931862957161709570:37778931862957161709571 # numbers close to 2^76 75557863725914323419134:75557863725914323419135 75557863725914323419135:75557863725914323419136 75557863725914323419136:75557863725914323419137 75557863725914323419137:75557863725914323419138 75557863725914323419138:75557863725914323419139 # numbers close to 2^77 151115727451828646838270:151115727451828646838271 151115727451828646838271:151115727451828646838272 151115727451828646838272:151115727451828646838273 151115727451828646838273:151115727451828646838274 151115727451828646838274:151115727451828646838275 # numbers close to 2^78 302231454903657293676542:302231454903657293676543 302231454903657293676543:302231454903657293676544 302231454903657293676544:302231454903657293676545 302231454903657293676545:302231454903657293676546 302231454903657293676546:302231454903657293676547 # numbers close to 2^79 604462909807314587353086:604462909807314587353087 604462909807314587353087:604462909807314587353088 604462909807314587353088:604462909807314587353089 604462909807314587353089:604462909807314587353090 604462909807314587353090:604462909807314587353091 # numbers close to 2^80 1208925819614629174706174:1208925819614629174706175 1208925819614629174706175:1208925819614629174706176 1208925819614629174706176:1208925819614629174706177 1208925819614629174706177:1208925819614629174706178 1208925819614629174706178:1208925819614629174706179 # numbers close to 2^81 2417851639229258349412350:2417851639229258349412351 2417851639229258349412351:2417851639229258349412352 2417851639229258349412352:2417851639229258349412353 2417851639229258349412353:2417851639229258349412354 2417851639229258349412354:2417851639229258349412355 # numbers close to 2^82 4835703278458516698824702:4835703278458516698824703 4835703278458516698824703:4835703278458516698824704 4835703278458516698824704:4835703278458516698824705 4835703278458516698824705:4835703278458516698824706 4835703278458516698824706:4835703278458516698824707 # numbers close to 2^83 9671406556917033397649406:9671406556917033397649407 9671406556917033397649407:9671406556917033397649408 9671406556917033397649408:9671406556917033397649409 9671406556917033397649409:9671406556917033397649410 9671406556917033397649410:9671406556917033397649411 # numbers close to 2^84 19342813113834066795298814:19342813113834066795298815 19342813113834066795298815:19342813113834066795298816 19342813113834066795298816:19342813113834066795298817 19342813113834066795298817:19342813113834066795298818 19342813113834066795298818:19342813113834066795298819 # numbers close to 2^85 38685626227668133590597630:38685626227668133590597631 38685626227668133590597631:38685626227668133590597632 38685626227668133590597632:38685626227668133590597633 38685626227668133590597633:38685626227668133590597634 38685626227668133590597634:38685626227668133590597635 # numbers close to 2^86 77371252455336267181195262:77371252455336267181195263 77371252455336267181195263:77371252455336267181195264 77371252455336267181195264:77371252455336267181195265 77371252455336267181195265:77371252455336267181195266 77371252455336267181195266:77371252455336267181195267 # numbers close to 2^87 154742504910672534362390526:154742504910672534362390527 154742504910672534362390527:154742504910672534362390528 154742504910672534362390528:154742504910672534362390529 154742504910672534362390529:154742504910672534362390530 154742504910672534362390530:154742504910672534362390531 # numbers close to 2^88 309485009821345068724781054:309485009821345068724781055 309485009821345068724781055:309485009821345068724781056 309485009821345068724781056:309485009821345068724781057 309485009821345068724781057:309485009821345068724781058 309485009821345068724781058:309485009821345068724781059 # numbers close to 2^89 618970019642690137449562110:618970019642690137449562111 618970019642690137449562111:618970019642690137449562112 618970019642690137449562112:618970019642690137449562113 618970019642690137449562113:618970019642690137449562114 618970019642690137449562114:618970019642690137449562115 # numbers close to 2^90 1237940039285380274899124222:1237940039285380274899124223 1237940039285380274899124223:1237940039285380274899124224 1237940039285380274899124224:1237940039285380274899124225 1237940039285380274899124225:1237940039285380274899124226 1237940039285380274899124226:1237940039285380274899124227 # numbers close to 2^91 2475880078570760549798248446:2475880078570760549798248447 2475880078570760549798248447:2475880078570760549798248448 2475880078570760549798248448:2475880078570760549798248449 2475880078570760549798248449:2475880078570760549798248450 2475880078570760549798248450:2475880078570760549798248451 # numbers close to 2^92 4951760157141521099596496894:4951760157141521099596496895 4951760157141521099596496895:4951760157141521099596496896 4951760157141521099596496896:4951760157141521099596496897 4951760157141521099596496897:4951760157141521099596496898 4951760157141521099596496898:4951760157141521099596496899 # numbers close to 2^93 9903520314283042199192993790:9903520314283042199192993791 9903520314283042199192993791:9903520314283042199192993792 9903520314283042199192993792:9903520314283042199192993793 9903520314283042199192993793:9903520314283042199192993794 9903520314283042199192993794:9903520314283042199192993795 # numbers close to 2^94 19807040628566084398385987582:19807040628566084398385987583 19807040628566084398385987583:19807040628566084398385987584 19807040628566084398385987584:19807040628566084398385987585 19807040628566084398385987585:19807040628566084398385987586 19807040628566084398385987586:19807040628566084398385987587 # numbers close to 2^95 39614081257132168796771975166:39614081257132168796771975167 39614081257132168796771975167:39614081257132168796771975168 39614081257132168796771975168:39614081257132168796771975169 39614081257132168796771975169:39614081257132168796771975170 39614081257132168796771975170:39614081257132168796771975171 # numbers close to 2^96 79228162514264337593543950334:79228162514264337593543950335 79228162514264337593543950335:79228162514264337593543950336 79228162514264337593543950336:79228162514264337593543950337 79228162514264337593543950337:79228162514264337593543950338 79228162514264337593543950338:79228162514264337593543950339 # numbers close to 2^97 158456325028528675187087900670:158456325028528675187087900671 158456325028528675187087900671:158456325028528675187087900672 158456325028528675187087900672:158456325028528675187087900673 158456325028528675187087900673:158456325028528675187087900674 158456325028528675187087900674:158456325028528675187087900675 # numbers close to 2^98 316912650057057350374175801342:316912650057057350374175801343 316912650057057350374175801343:316912650057057350374175801344 316912650057057350374175801344:316912650057057350374175801345 316912650057057350374175801345:316912650057057350374175801346 316912650057057350374175801346:316912650057057350374175801347 # numbers close to 2^99 633825300114114700748351602686:633825300114114700748351602687 633825300114114700748351602687:633825300114114700748351602688 633825300114114700748351602688:633825300114114700748351602689 633825300114114700748351602689:633825300114114700748351602690 633825300114114700748351602690:633825300114114700748351602691 # numbers close to 2^100 1267650600228229401496703205374:1267650600228229401496703205375 1267650600228229401496703205375:1267650600228229401496703205376 1267650600228229401496703205376:1267650600228229401496703205377 1267650600228229401496703205377:1267650600228229401496703205378 1267650600228229401496703205378:1267650600228229401496703205379 # numbers close to 2^101 2535301200456458802993406410750:2535301200456458802993406410751 2535301200456458802993406410751:2535301200456458802993406410752 2535301200456458802993406410752:2535301200456458802993406410753 2535301200456458802993406410753:2535301200456458802993406410754 2535301200456458802993406410754:2535301200456458802993406410755 # numbers close to 2^102 5070602400912917605986812821502:5070602400912917605986812821503 5070602400912917605986812821503:5070602400912917605986812821504 5070602400912917605986812821504:5070602400912917605986812821505 5070602400912917605986812821505:5070602400912917605986812821506 5070602400912917605986812821506:5070602400912917605986812821507 # numbers close to 2^103 10141204801825835211973625643006:10141204801825835211973625643007 10141204801825835211973625643007:10141204801825835211973625643008 10141204801825835211973625643008:10141204801825835211973625643009 10141204801825835211973625643009:10141204801825835211973625643010 10141204801825835211973625643010:10141204801825835211973625643011 # numbers close to 2^104 20282409603651670423947251286014:20282409603651670423947251286015 20282409603651670423947251286015:20282409603651670423947251286016 20282409603651670423947251286016:20282409603651670423947251286017 20282409603651670423947251286017:20282409603651670423947251286018 20282409603651670423947251286018:20282409603651670423947251286019 # numbers close to 2^105 40564819207303340847894502572030:40564819207303340847894502572031 40564819207303340847894502572031:40564819207303340847894502572032 40564819207303340847894502572032:40564819207303340847894502572033 40564819207303340847894502572033:40564819207303340847894502572034 40564819207303340847894502572034:40564819207303340847894502572035 # numbers close to 2^106 81129638414606681695789005144062:81129638414606681695789005144063 81129638414606681695789005144063:81129638414606681695789005144064 81129638414606681695789005144064:81129638414606681695789005144065 81129638414606681695789005144065:81129638414606681695789005144066 81129638414606681695789005144066:81129638414606681695789005144067 # numbers close to 2^107 162259276829213363391578010288126:162259276829213363391578010288127 162259276829213363391578010288127:162259276829213363391578010288128 162259276829213363391578010288128:162259276829213363391578010288129 162259276829213363391578010288129:162259276829213363391578010288130 162259276829213363391578010288130:162259276829213363391578010288131 # numbers close to 2^108 324518553658426726783156020576254:324518553658426726783156020576255 324518553658426726783156020576255:324518553658426726783156020576256 324518553658426726783156020576256:324518553658426726783156020576257 324518553658426726783156020576257:324518553658426726783156020576258 324518553658426726783156020576258:324518553658426726783156020576259 # numbers close to 2^109 649037107316853453566312041152510:649037107316853453566312041152511 649037107316853453566312041152511:649037107316853453566312041152512 649037107316853453566312041152512:649037107316853453566312041152513 649037107316853453566312041152513:649037107316853453566312041152514 649037107316853453566312041152514:649037107316853453566312041152515 # numbers close to 2^110 1298074214633706907132624082305022:1298074214633706907132624082305023 1298074214633706907132624082305023:1298074214633706907132624082305024 1298074214633706907132624082305024:1298074214633706907132624082305025 1298074214633706907132624082305025:1298074214633706907132624082305026 1298074214633706907132624082305026:1298074214633706907132624082305027 # numbers close to 2^111 2596148429267413814265248164610046:2596148429267413814265248164610047 2596148429267413814265248164610047:2596148429267413814265248164610048 2596148429267413814265248164610048:2596148429267413814265248164610049 2596148429267413814265248164610049:2596148429267413814265248164610050 2596148429267413814265248164610050:2596148429267413814265248164610051 # numbers close to 2^112 5192296858534827628530496329220094:5192296858534827628530496329220095 5192296858534827628530496329220095:5192296858534827628530496329220096 5192296858534827628530496329220096:5192296858534827628530496329220097 5192296858534827628530496329220097:5192296858534827628530496329220098 5192296858534827628530496329220098:5192296858534827628530496329220099 # numbers close to 2^113 10384593717069655257060992658440190:10384593717069655257060992658440191 10384593717069655257060992658440191:10384593717069655257060992658440192 10384593717069655257060992658440192:10384593717069655257060992658440193 10384593717069655257060992658440193:10384593717069655257060992658440194 10384593717069655257060992658440194:10384593717069655257060992658440195 # numbers close to 2^114 20769187434139310514121985316880382:20769187434139310514121985316880383 20769187434139310514121985316880383:20769187434139310514121985316880384 20769187434139310514121985316880384:20769187434139310514121985316880385 20769187434139310514121985316880385:20769187434139310514121985316880386 20769187434139310514121985316880386:20769187434139310514121985316880387 # numbers close to 2^115 41538374868278621028243970633760766:41538374868278621028243970633760767 41538374868278621028243970633760767:41538374868278621028243970633760768 41538374868278621028243970633760768:41538374868278621028243970633760769 41538374868278621028243970633760769:41538374868278621028243970633760770 41538374868278621028243970633760770:41538374868278621028243970633760771 # numbers close to 2^116 83076749736557242056487941267521534:83076749736557242056487941267521535 83076749736557242056487941267521535:83076749736557242056487941267521536 83076749736557242056487941267521536:83076749736557242056487941267521537 83076749736557242056487941267521537:83076749736557242056487941267521538 83076749736557242056487941267521538:83076749736557242056487941267521539 # numbers close to 2^117 166153499473114484112975882535043070:166153499473114484112975882535043071 166153499473114484112975882535043071:166153499473114484112975882535043072 166153499473114484112975882535043072:166153499473114484112975882535043073 166153499473114484112975882535043073:166153499473114484112975882535043074 166153499473114484112975882535043074:166153499473114484112975882535043075 # numbers close to 2^118 332306998946228968225951765070086142:332306998946228968225951765070086143 332306998946228968225951765070086143:332306998946228968225951765070086144 332306998946228968225951765070086144:332306998946228968225951765070086145 332306998946228968225951765070086145:332306998946228968225951765070086146 332306998946228968225951765070086146:332306998946228968225951765070086147 # numbers close to 2^119 664613997892457936451903530140172286:664613997892457936451903530140172287 664613997892457936451903530140172287:664613997892457936451903530140172288 664613997892457936451903530140172288:664613997892457936451903530140172289 664613997892457936451903530140172289:664613997892457936451903530140172290 664613997892457936451903530140172290:664613997892457936451903530140172291 # numbers close to 2^120 1329227995784915872903807060280344574:1329227995784915872903807060280344575 1329227995784915872903807060280344575:1329227995784915872903807060280344576 1329227995784915872903807060280344576:1329227995784915872903807060280344577 1329227995784915872903807060280344577:1329227995784915872903807060280344578 1329227995784915872903807060280344578:1329227995784915872903807060280344579 # numbers close to 2^121 2658455991569831745807614120560689150:2658455991569831745807614120560689151 2658455991569831745807614120560689151:2658455991569831745807614120560689152 2658455991569831745807614120560689152:2658455991569831745807614120560689153 2658455991569831745807614120560689153:2658455991569831745807614120560689154 2658455991569831745807614120560689154:2658455991569831745807614120560689155 # numbers close to 2^122 5316911983139663491615228241121378302:5316911983139663491615228241121378303 5316911983139663491615228241121378303:5316911983139663491615228241121378304 5316911983139663491615228241121378304:5316911983139663491615228241121378305 5316911983139663491615228241121378305:5316911983139663491615228241121378306 5316911983139663491615228241121378306:5316911983139663491615228241121378307 # numbers close to 2^123 10633823966279326983230456482242756606:10633823966279326983230456482242756607 10633823966279326983230456482242756607:10633823966279326983230456482242756608 10633823966279326983230456482242756608:10633823966279326983230456482242756609 10633823966279326983230456482242756609:10633823966279326983230456482242756610 10633823966279326983230456482242756610:10633823966279326983230456482242756611 # numbers close to 2^124 21267647932558653966460912964485513214:21267647932558653966460912964485513215 21267647932558653966460912964485513215:21267647932558653966460912964485513216 21267647932558653966460912964485513216:21267647932558653966460912964485513217 21267647932558653966460912964485513217:21267647932558653966460912964485513218 21267647932558653966460912964485513218:21267647932558653966460912964485513219 # numbers close to 2^125 42535295865117307932921825928971026430:42535295865117307932921825928971026431 42535295865117307932921825928971026431:42535295865117307932921825928971026432 42535295865117307932921825928971026432:42535295865117307932921825928971026433 42535295865117307932921825928971026433:42535295865117307932921825928971026434 42535295865117307932921825928971026434:42535295865117307932921825928971026435 # numbers close to 2^126 85070591730234615865843651857942052862:85070591730234615865843651857942052863 85070591730234615865843651857942052863:85070591730234615865843651857942052864 85070591730234615865843651857942052864:85070591730234615865843651857942052865 85070591730234615865843651857942052865:85070591730234615865843651857942052866 85070591730234615865843651857942052866:85070591730234615865843651857942052867 # numbers close to 2^127 170141183460469231731687303715884105726:170141183460469231731687303715884105727 170141183460469231731687303715884105727:170141183460469231731687303715884105728 170141183460469231731687303715884105728:170141183460469231731687303715884105729 170141183460469231731687303715884105729:170141183460469231731687303715884105730 170141183460469231731687303715884105730:170141183460469231731687303715884105731 # numbers close to 2^128 340282366920938463463374607431768211454:340282366920938463463374607431768211455 340282366920938463463374607431768211455:340282366920938463463374607431768211456 340282366920938463463374607431768211456:340282366920938463463374607431768211457 340282366920938463463374607431768211457:340282366920938463463374607431768211458 340282366920938463463374607431768211458:340282366920938463463374607431768211459 # numbers close to 2^129 680564733841876926926749214863536422910:680564733841876926926749214863536422911 680564733841876926926749214863536422911:680564733841876926926749214863536422912 680564733841876926926749214863536422912:680564733841876926926749214863536422913 680564733841876926926749214863536422913:680564733841876926926749214863536422914 680564733841876926926749214863536422914:680564733841876926926749214863536422915 # numbers close to 2^130 1361129467683753853853498429727072845822:1361129467683753853853498429727072845823 1361129467683753853853498429727072845823:1361129467683753853853498429727072845824 1361129467683753853853498429727072845824:1361129467683753853853498429727072845825 1361129467683753853853498429727072845825:1361129467683753853853498429727072845826 1361129467683753853853498429727072845826:1361129467683753853853498429727072845827 # numbers close to 2^131 2722258935367507707706996859454145691646:2722258935367507707706996859454145691647 2722258935367507707706996859454145691647:2722258935367507707706996859454145691648 2722258935367507707706996859454145691648:2722258935367507707706996859454145691649 2722258935367507707706996859454145691649:2722258935367507707706996859454145691650 2722258935367507707706996859454145691650:2722258935367507707706996859454145691651 # numbers close to 2^132 5444517870735015415413993718908291383294:5444517870735015415413993718908291383295 5444517870735015415413993718908291383295:5444517870735015415413993718908291383296 5444517870735015415413993718908291383296:5444517870735015415413993718908291383297 5444517870735015415413993718908291383297:5444517870735015415413993718908291383298 5444517870735015415413993718908291383298:5444517870735015415413993718908291383299 # numbers close to 2^133 10889035741470030830827987437816582766590:10889035741470030830827987437816582766591 10889035741470030830827987437816582766591:10889035741470030830827987437816582766592 10889035741470030830827987437816582766592:10889035741470030830827987437816582766593 10889035741470030830827987437816582766593:10889035741470030830827987437816582766594 10889035741470030830827987437816582766594:10889035741470030830827987437816582766595 # numbers close to 2^134 21778071482940061661655974875633165533182:21778071482940061661655974875633165533183 21778071482940061661655974875633165533183:21778071482940061661655974875633165533184 21778071482940061661655974875633165533184:21778071482940061661655974875633165533185 21778071482940061661655974875633165533185:21778071482940061661655974875633165533186 21778071482940061661655974875633165533186:21778071482940061661655974875633165533187 # numbers close to 2^135 43556142965880123323311949751266331066366:43556142965880123323311949751266331066367 43556142965880123323311949751266331066367:43556142965880123323311949751266331066368 43556142965880123323311949751266331066368:43556142965880123323311949751266331066369 43556142965880123323311949751266331066369:43556142965880123323311949751266331066370 43556142965880123323311949751266331066370:43556142965880123323311949751266331066371 # numbers close to 2^136 87112285931760246646623899502532662132734:87112285931760246646623899502532662132735 87112285931760246646623899502532662132735:87112285931760246646623899502532662132736 87112285931760246646623899502532662132736:87112285931760246646623899502532662132737 87112285931760246646623899502532662132737:87112285931760246646623899502532662132738 87112285931760246646623899502532662132738:87112285931760246646623899502532662132739 # numbers close to 2^137 174224571863520493293247799005065324265470:174224571863520493293247799005065324265471 174224571863520493293247799005065324265471:174224571863520493293247799005065324265472 174224571863520493293247799005065324265472:174224571863520493293247799005065324265473 174224571863520493293247799005065324265473:174224571863520493293247799005065324265474 174224571863520493293247799005065324265474:174224571863520493293247799005065324265475 # numbers close to 2^138 348449143727040986586495598010130648530942:348449143727040986586495598010130648530943 348449143727040986586495598010130648530943:348449143727040986586495598010130648530944 348449143727040986586495598010130648530944:348449143727040986586495598010130648530945 348449143727040986586495598010130648530945:348449143727040986586495598010130648530946 348449143727040986586495598010130648530946:348449143727040986586495598010130648530947 # numbers close to 2^139 696898287454081973172991196020261297061886:696898287454081973172991196020261297061887 696898287454081973172991196020261297061887:696898287454081973172991196020261297061888 696898287454081973172991196020261297061888:696898287454081973172991196020261297061889 696898287454081973172991196020261297061889:696898287454081973172991196020261297061890 696898287454081973172991196020261297061890:696898287454081973172991196020261297061891 # numbers close to 2^140 1393796574908163946345982392040522594123774:1393796574908163946345982392040522594123775 1393796574908163946345982392040522594123775:1393796574908163946345982392040522594123776 1393796574908163946345982392040522594123776:1393796574908163946345982392040522594123777 1393796574908163946345982392040522594123777:1393796574908163946345982392040522594123778 1393796574908163946345982392040522594123778:1393796574908163946345982392040522594123779 # numbers close to 2^141 2787593149816327892691964784081045188247550:2787593149816327892691964784081045188247551 2787593149816327892691964784081045188247551:2787593149816327892691964784081045188247552 2787593149816327892691964784081045188247552:2787593149816327892691964784081045188247553 2787593149816327892691964784081045188247553:2787593149816327892691964784081045188247554 2787593149816327892691964784081045188247554:2787593149816327892691964784081045188247555 # numbers close to 2^142 5575186299632655785383929568162090376495102:5575186299632655785383929568162090376495103 5575186299632655785383929568162090376495103:5575186299632655785383929568162090376495104 5575186299632655785383929568162090376495104:5575186299632655785383929568162090376495105 5575186299632655785383929568162090376495105:5575186299632655785383929568162090376495106 5575186299632655785383929568162090376495106:5575186299632655785383929568162090376495107 # numbers close to 2^143 11150372599265311570767859136324180752990206:11150372599265311570767859136324180752990207 11150372599265311570767859136324180752990207:11150372599265311570767859136324180752990208 11150372599265311570767859136324180752990208:11150372599265311570767859136324180752990209 11150372599265311570767859136324180752990209:11150372599265311570767859136324180752990210 11150372599265311570767859136324180752990210:11150372599265311570767859136324180752990211 # numbers close to 2^144 22300745198530623141535718272648361505980414:22300745198530623141535718272648361505980415 22300745198530623141535718272648361505980415:22300745198530623141535718272648361505980416 22300745198530623141535718272648361505980416:22300745198530623141535718272648361505980417 22300745198530623141535718272648361505980417:22300745198530623141535718272648361505980418 22300745198530623141535718272648361505980418:22300745198530623141535718272648361505980419 # numbers close to 2^145 44601490397061246283071436545296723011960830:44601490397061246283071436545296723011960831 44601490397061246283071436545296723011960831:44601490397061246283071436545296723011960832 44601490397061246283071436545296723011960832:44601490397061246283071436545296723011960833 44601490397061246283071436545296723011960833:44601490397061246283071436545296723011960834 44601490397061246283071436545296723011960834:44601490397061246283071436545296723011960835 # numbers close to 2^146 89202980794122492566142873090593446023921662:89202980794122492566142873090593446023921663 89202980794122492566142873090593446023921663:89202980794122492566142873090593446023921664 89202980794122492566142873090593446023921664:89202980794122492566142873090593446023921665 89202980794122492566142873090593446023921665:89202980794122492566142873090593446023921666 89202980794122492566142873090593446023921666:89202980794122492566142873090593446023921667 # numbers close to 2^147 178405961588244985132285746181186892047843326:178405961588244985132285746181186892047843327 178405961588244985132285746181186892047843327:178405961588244985132285746181186892047843328 178405961588244985132285746181186892047843328:178405961588244985132285746181186892047843329 178405961588244985132285746181186892047843329:178405961588244985132285746181186892047843330 178405961588244985132285746181186892047843330:178405961588244985132285746181186892047843331 # numbers close to 2^148 356811923176489970264571492362373784095686654:356811923176489970264571492362373784095686655 356811923176489970264571492362373784095686655:356811923176489970264571492362373784095686656 356811923176489970264571492362373784095686656:356811923176489970264571492362373784095686657 356811923176489970264571492362373784095686657:356811923176489970264571492362373784095686658 356811923176489970264571492362373784095686658:356811923176489970264571492362373784095686659 # numbers close to 2^149 713623846352979940529142984724747568191373310:713623846352979940529142984724747568191373311 713623846352979940529142984724747568191373311:713623846352979940529142984724747568191373312 713623846352979940529142984724747568191373312:713623846352979940529142984724747568191373313 713623846352979940529142984724747568191373313:713623846352979940529142984724747568191373314 713623846352979940529142984724747568191373314:713623846352979940529142984724747568191373315 # numbers close to 2^150 1427247692705959881058285969449495136382746622:1427247692705959881058285969449495136382746623 1427247692705959881058285969449495136382746623:1427247692705959881058285969449495136382746624 1427247692705959881058285969449495136382746624:1427247692705959881058285969449495136382746625 1427247692705959881058285969449495136382746625:1427247692705959881058285969449495136382746626 1427247692705959881058285969449495136382746626:1427247692705959881058285969449495136382746627 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_inc.t0000644403072340010010000000727114536617520023035 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5473; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_inc'); my @data; # Small numbers. for (my $x = 0; $x <= 512 ; ++ $x) { push @data, [ $x, $x + 1 ]; } # 11 + 1, 101 + 1, 1001 + 1, 10001 + 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "1" . ("0" x ($p - 1) . "1"); my $y = "1" . ("0" x ($p - 1) . "2"); push @data, [ $x, $y ]; } # 10 + 1, 100 + 1, 1000 + 1, 10000 + 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "1" . ("0" x $p); my $y = "1" . ("0" x ($p - 1) . "1"); push @data, [ $x, $y ]; } # 9 + 1, 99 + 1, 999 + 1, 9999 + 1, ... for (my $p = 1; $p <= 50 ; ++ $p) { my $x = "9" x $p; my $y = "1" . ("0" x $p); push @data, [ $x, $y ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_inc(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_inc() in list context: $test", sub { plan tests => 6, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_inc(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_inc() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_lucas.dat0000644403072340010010000001722514505066136023675 0ustar OSPJADomain Users0:2 1:1 2:3 3:4 4:7 5:11 6:18 7:29 8:47 9:76 10:123 11:199 12:322 13:521 14:843 15:1364 16:2207 17:3571 18:5778 19:9349 20:15127 21:24476 22:39603 23:64079 24:103682 25:167761 26:271443 27:439204 28:710647 29:1149851 30:1860498 31:3010349 32:4870847 33:7881196 34:12752043 35:20633239 36:33385282 37:54018521 38:87403803 39:141422324 40:228826127 41:370248451 42:599074578 43:969323029 44:1568397607 45:2537720636 46:4106118243 47:6643838879 48:10749957122 49:17393796001 50:28143753123 51:45537549124 52:73681302247 53:119218851371 54:192900153618 55:312119004989 56:505019158607 57:817138163596 58:1322157322203 59:2139295485799 60:3461452808002 61:5600748293801 62:9062201101803 63:14662949395604 64:23725150497407 65:38388099893011 66:62113250390418 67:100501350283429 68:162614600673847 69:263115950957276 70:425730551631123 71:688846502588399 72:1114577054219522 73:1803423556807921 74:2918000611027443 75:4721424167835364 76:7639424778862807 77:12360848946698171 78:20000273725560978 79:32361122672259149 80:52361396397820127 81:84722519070079276 82:137083915467899403 83:221806434537978679 84:358890350005878082 85:580696784543856761 86:939587134549734843 87:1520283919093591604 88:2459871053643326447 89:3980154972736918051 90:6440026026380244498 91:10420180999117162549 92:16860207025497407047 93:27280388024614569596 94:44140595050111976643 95:71420983074726546239 96:115561578124838522882 97:186982561199565069121 98:302544139324403592003 99:489526700523968661124 100:792070839848372253127 101:1281597540372340914251 102:2073668380220713167378 103:3355265920593054081629 104:5428934300813767249007 105:8784200221406821330636 106:14213134522220588579643 107:22997334743627409910279 108:37210469265847998489922 109:60207804009475408400201 110:97418273275323406890123 111:157626077284798815290324 112:255044350560122222180447 113:412670427844921037470771 114:667714778405043259651218 115:1080385206249964297121989 116:1748099984655007556773207 117:2828485190904971853895196 118:4576585175559979410668403 119:7405070366464951264563599 120:11981655542024930675232002 121:19386725908489881939795601 122:31368381450514812615027603 123:50755107359004694554823204 124:82123488809519507169850807 125:132878596168524201724674011 126:215002084978043708894524818 127:347880681146567910619198829 128:562882766124611619513723647 129:910763447271179530132922476 130:1473646213395791149646646123 131:2384409660666970679779568599 132:3858055874062761829426214722 133:6242465534729732509205783321 134:10100521408792494338631998043 135:16342986943522226847837781364 136:26443508352314721186469779407 137:42786495295836948034307560771 138:69230003648151669220777340178 139:112016498943988617255084900949 140:181246502592140286475862241127 141:293263001536128903730947142076 142:474509504128269190206809383203 143:767772505664398093937756525279 144:1242282009792667284144565908482 145:2010054515457065378082322433761 146:3252336525249732662226888342243 147:5262391040706798040309210776004 148:8514727565956530702536099118247 149:13777118606663328742845309894251 150:22291846172619859445381409012498 151:36068964779283188188226718906749 152:58360810951903047633608127919247 153:94429775731186235821834846825996 154:152790586683089283455442974745243 155:247220362414275519277277821571239 156:400010949097364802732720796316482 157:647231311511640322009998617887721 158:1047242260609005124742719414204203 159:1694473572120645446752718032091924 160:2741715832729650571495437446296127 161:4436189404850296018248155478388051 162:7177905237579946589743592924684178 163:11614094642430242607991748403072229 164:18791999880010189197735341327756407 165:30406094522440431805727089730828636 166:49198094402450621003462431058585043 167:79604188924891052809189520789413679 168:128802283327341673812651951847998722 169:208406472252232726621841472637412401 170:337208755579574400434493424485411123 171:545615227831807127056334897122823524 172:882823983411381527490828321608234647 173:1428439211243188654547163218731058171 174:2311263194654570182037991540339292818 175:3739702405897758836585154759070350989 176:6050965600552329018623146299409643807 177:9790668006450087855208301058479994796 178:15841633607002416873831447357889638603 179:25632301613452504729039748416369633399 180:41473935220454921602871195774259272002 181:67106236833907426331910944190628905401 182:108580172054362347934782139964888177403 183:175686408888269774266693084155517082804 184:284266580942632122201475224120405260207 185:459952989830901896468168308275922343011 186:744219570773534018669643532396327603218 187:1204172560604435915137811840672249946229 188:1948392131377969933807455373068577549447 189:3152564691982405848945267213740827495676 190:5100956823360375782752722586809405045123 191:8253521515342781631697989800550232540799 192:13354478338703157414450712387359637585922 193:21607999854045939046148702187909870126721 194:34962478192749096460599414575269507712643 195:56570478046795035506748116763179377839364 196:91532956239544131967347531338448885552007 197:148103434286339167474095648101628263391371 198:239636390525883299441443179440077148943378 199:387739824812222466915538827541705412334749 200:627376215338105766356982006981782561278127 201:1015116040150328233272520834523487973612876 202:1642492255488433999629502841505270534891003 203:2657608295638762232902023676028758508503879 204:4300100551127196232531526517534029043394882 205:6957708846765958465433550193562787551898761 206:11257809397893154697965076711096816595293643 207:18215518244659113163398626904659604147192404 208:29473327642552267861363703615756420742486047 209:47688845887211381024762330520416024889678451 210:77162173529763648886126034136172445632164498 211:124851019416975029910888364656588470521842949 212:202013192946738678797014398792760916154007447 213:326864212363713708707902763449349386675850396 214:528877405310452387504917162242110302829857843 215:855741617674166096212819925691459689505708239 216:1384619022984618483717737087933569992335566082 217:2240360640658784579930557013625029681841274321 218:3624979663643403063648294101558599674176840403 219:5865340304302187643578851115183629356018114724 220:9490319967945590707227145216742229030194955127 221:15355660272247778350805996331925858386213069851 222:24845980240193369058033141548668087416408024978 223:40201640512441147408839137880593945802621094829 224:65047620752634516466872279429262033219029119807 225:105249261265075663875711417309855979021650214636 226:170296882017710180342583696739118012240679334443 227:275546143282785844218295114048973991262329549079 228:445843025300496024560878810788092003503008883522 229:721389168583281868779173924837065994765338432601 230:1167232193883777893340052735625157998268347316123 231:1888621362467059762119226660462223993033685748724 232:3055853556350837655459279396087381991302033064847 233:4944474918817897417578506056549605984335718813571 234:8000328475168735073037785452636987975637751878418 235:12944803393986632490616291509186593959973470691989 236:20945131869155367563654076961823581935611222570407 237:33889935263142000054270368471010175895584693262396 238:54835067132297367617924445432833757831195915832803 239:88725002395439367672194813903843933726780609095199 240:143560069527736735290119259336677691557976524928002 241:232285071923176102962314073240521625284757134023201 242:375845141450912838252433332577199316842733658951203 243:608130213374088941214747405817720942127490792974404 244:983975354825001779467180738394920258970224451925607 245:1592105568199090720681928144212641201097715244900011 246:2576080923024092500149108882607561460067939696825618 247:4168186491223183220831037026820202661165654941725629 248:6744267414247275720980145909427764121233594638551247 249:10912453905470458941811182936247966782399249580276876 250:17656721319717734662791328845675730903632844218828123 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_lucas.t0000644403072340010010000000422414546553333023370 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 503; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_lucas'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_lucas(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_lucas() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_sqrt.dat0000644403072340010010000023026014505066136023553 0ustar OSPJADomain Users7:2 5:2 1:1 5:2 5:2 6:2 5:2 3:1 6:2 6:2 13:3 72:8 36:6 57:7 43:6 10:3 44:6 14:3 55:7 34:5 203:14 575:23 304:17 626:25 241:15 275:16 536:23 575:23 133:11 571:23 2737:52 6735:82 2376:48 4305:65 6576:81 5473:73 6703:81 6660:81 7706:87 4203:64 30065:173 16072:126 51721:227 42455:206 61006:246 45206:212 50604:224 20740:144 20163:141 31667:177 733745:856 443626:666 245164:495 534031:730 621605:788 232041:481 647037:804 346730:588 436701:660 647572:804 4412004:2100 1411200:1187 5512732:2347 1630034:1276 1330174:1153 2076011:1440 2573230:1604 1162051:1077 1057006:1028 2543304:1594 37036223:6085 53064251:7284 21104300:4593 50464556:7103 26545325:5152 72024626:8486 31724014:5632 54302662:7369 34070104:5836 61542471:7844 327176233:18088 710505435:26655 630035710:25100 620533222:24910 263700273:16238 341010543:18466 762655001:27616 170507262:13057 207263471:14396 237420666:15408 4166460121:64548 7501334741:86610 2710354727:52061 6756052147:82195 7225076050:85000 1615502050:40193 7644630316:87433 7533766030:86797 5502532570:74179 4703524352:68582 23601234431:153626 20232211231:142239 74125744222:272260 35361615030:188046 54342612571:233115 20115443444:141828 36013440253:189772 51266331555:226420 17155600547:130979 15301367617:123698 125570733767:354359 265606312615:515370 652222433310:807602 123343246625:351202 132100577706:363456 250076403735:500076 615777441111:784714 135644143732:368298 267301730452:517012 720037076675:848549 3027243770607:1739897 2113141026532:1453664 1044160146252:1021841 2305064006634:1518243 2544636447421:1595191 1352725003042:1163067 6005147021314:2450540 6433224755230:2536380 2747053210617:1657423 1511000611372:1229227 23200016340171:4816639 77643331311400:8811545 10676353647323:3267468 57541234030402:7585593 15234165675234:3903096 12023146106536:3467440 55220117231411:7431023 70016367240013:8367578 13165107505362:3628375 53026125010205:7281903 617757436436263:24854726 523402513572742:22877991 176103552126716:13270401 163600300074716:12790633 140576346714053:11856489 312566354432261:17679546 314425454740505:17732045 256476213160724:16014874 476205123641224:21822124 256027107004656:16000847 1047470725035361:32364652 7313743444121310:85520427 2341406716642503:48388084 6361202136373074:79757144 6117534310665632:78214668 3714425662572247:60946088 1066550477374122:32658084 1365127577735137:36947632 3272646150323731:57207046 3267700162775022:57163801 67750171043002626:260288630 60553507017330144:246076221 26215166216327375:161910982 32276660371570514:179657063 17454567531066377:132115735 37131010161677436:192694084 62164063231767174:249327221 24023437214013467:154994958 42042176123071734:205041888 26376257001541016:162407687 546727151242011207:739410002 766463413072535677:875478962 414240303774364655:643615027 601237135427455177:775394825 301074610164723031:548702660 711467706716335237:843485451 364523107221444630:603757490 537531567267065032:733165443 263247017453724177:513076034 247614671115441603:497608954 4237573444437362537:2058536724 6414547556477000147:2532695709 4235347764226502120:2057996055 2220657162722006115:1490186955 3152046201745075301:1775400293 4231030700312634626:2056946936 2647044306220343163:1626973972 1263745135030672450:1124164193 7020301350153432144:2649585127 7722524156165343601:2778942992 40764654067731512444:6384720359 70623775140666617670:8403795281 56664366342327351400:7527573735 32066037064671470306:5662688148 22624354251477060623:4756506517 47441107662705134424:6887750551 44656055626012156171:6682518658 10344114530627466330:3216226753 46603033004672013165:6826641414 37362700324556600260:6112503605 625056074204720632211:25001121458 242672117667627420162:15577936887 671327730136475454272:25909992862 274224315424272717534:16559719666 540027530310300135163:23238492427 771124666010350064202:27769131531 607270346662063614434:24642855895 462354256652241315606:21502424436 641614100013670720356:25330102645 625172565257254121677:25003451066 1056672420176674361050:32506498122 4724005634703664271715:68731402100 1761362450205062310667:41968588851 7306043664751573163660:85475398008 4702327320666572330645:68573517633 5317561337200527242017:72921610906 6764423237551217722674:82246113814 5104447175162415226731:71445413954 2237623647225320643767:47303526794 6642534612024604356150:81501746067 67717766327620631731732:260226375157 20440716035366212022272:142971032154 34711440743637630101752:186310066136 31323602465357551501612:176984752070 12507406464520304400301:111836516686 37623524462766642067251:193967843888 30531223521536720215507:174731861781 26042606050221107535576:161377216639 12525415775543166265721:111917003960 54760270363450331223146:234009124530 701742127120276731306010:837700499653 307204157014277674632212:554260008492 641010624364004463746126:800631391068 113365537504724557734355:336697991536 432325763332142523002251:657514838868 465655032315454332326067:682389208821 347677261576624071627610:589641638265 415217376225206364664131:644373630920 164056436373656503100730:405038808478 607210257661050241037347:779236971441 6444460760564170540640751:2538594248903 2747264604122336303515233:1657487437093 2260647437554232227041127:1503544956944 1631625742067740005462703:1277351064534 2461650721531101440046140:1568964856690 7333334754217342071146631:2708013063893 1710501554171704423777544:1307861443032 7201632426061011326034112:2683585740396 7653740246572053000011722:2766539399063 1277666741334174601224136:1130339215162 65063354437530713676037375:8066185866785 46660657420047145037141157:6830860664663 23625264477214526444516656:4860582730209 51417142660413416550675515:7170574778942 17170401650001030306062046:4143718336229 47342666526577315136614621:6880600738785 41750436446056646767035016:6461457764781 76142346026571172040717074:8725958172405 45156651710507245570042035:6719869917677 21017246060724033467432524:4584457008275 713650710154540444415414255:26714241710266 642326013175652655472477537:25344151458978 570616676202200707454374465:23887584143278 455676133413700454323714147:21346571935880 732776221173726630155730066:27069839696121 444016777423511443470100555:21071705612586 414622327654770066372025460:20362277074403 511742703147720245505755022:22621730772593 113476643700257473437365373:10652541654471 460752076656141602366367264:21465136306488 7422645065336453234147467163:86154773897541 5461142363360577231051473504:73899542375853 3432633510310227371576673134:58588680735362 6065034402633235470652662322:77878330764296 7174726656045376174470416550:84703758216772 7754402666266516423567112007:88059086222073 4047435610600210573765777714:63619459370543 2573666053457757746043653033:50731312356943 5522351461766755524623034352:74312525604818 6525225176177032277645526114:80778865900537 23724732352166140235450623071:154028349183408 41013331040732074703260360055:202517483296460 54734373640620070305535607665:233953785266706 32717146237202126177303616640:180878816441290 23104206712136006145040610600:152000679972610 26067265570174745270426416600:161453601911430 15411444115163251565354061566:124142837550795 23244662437311316302433276177:152462003257570 11216203563017373200603530063:105906579413261 14103765634203673775121251634:118759275992251 575102400234061650161515270525:758355062114087 654135451725322641662042351756:808786406738715 523244325307445457515555225733:723356292090865 540324233405165403360406730232:735067502618069 242743454065707532030534566063:492690018232262 632454764017450723336607046264:795270245902266 152164246016065725577542272457:390082357991316 457334216300327757171174135236:676264900982098 152733352130067117551122101677:390811146373881 724246672123615453467337620706:851026833962135 1674065203611553642170243107567:1293856716801189 2525030672673256725673705376727:1589034509591675 3636356161427303320614025447756:1906923218545336 7414021505136430611052011530302:2722870085982148 4716345661750131627767656716573:2171714912632441 1614514311712207042277103247076:1270635396843723 1053553055767200144131017264204:1026427326101171 2677604076766020331563212341151:1636338619224645 2701245144654555742277117423375:1643546514296007 7525054161633424363132212520536:2743183216927630 36202100273464325021171736752054:6016818118695655 20221067072602722525400541664652:4496784081163195 14644701521050276554314212627744:3826839625729078 50534452121260105202735351760537:7108758831277096 51333755237343026253636705524030:7164757863134177 74025771527712665116450306214612:8603823076267471 42624223462050242173645510400130:6528722957979626 32167455502257354162676136713631:5671636051639540 54601174615350475507273046267767:7389260762441022 12644705311653415675671211657053:3555939441505354 151157446104473001156525521411413:12294610449480414 456711407353540711774103660504050:21370807363165779 524334054472276056556731322502541:22898341740664891 167204464104344567113117740220625:12930756517093057 664633006637012101022105360446151:25780477238348635 534075524275376775232052672170647:23110074086323842 634361505523200664424103146766764:25186534210232273 616124260460235145671720176046652:24821850464061601 200044735333354115113600056337417:14143717168175914 264225114762300300556674666077264:16255002761067138 3600722335035226236575772674040136:60006019156708156 7153300716564701240710615231666011:84577187920648563 6533205634120600225464756605223673:80828247748671381 6200763243720352273771630756637315:78744925193439305 6250057445103014521316757175764022:79057304818106558 3740314155432330712303322150121255:61158107847057618 5673127045455356454362012071045012:75320163604810076 4532265065202164562226602020640471:67322099382016931 3061026560573557774264741424610566:55326544809644111 1726672427722130061624076344316650:41553248100745747 31263701352221424075373434506000564:176815444326058305 65732604457207002234642565152754274:256383705522030011 20177737126473755773412500125421523:142048361928160775 77004220237174502003011757147005010:277496342745583769 11225717076762353530724075512433346:105951484542512916 46055536732316327404300133735271676:214605537515499183 34737477614623617453620344203100633:186379928143090605 27657607330552630674666003147771400:166305764574029816 23275465273665175013540565775741473:152562987889150804 22506045756314052452224777251550217:150020151167481671 706073256622206735525440330251203705:840281653151017415 412566366152754251113301541213702643:642313292835166420 223652534162511026731526112124752150:472919162397244193 546074057747353415725043602632071744:738968238659384748 152044031154723406776030523175455727:389928238467956314 171454527275621206643407545362420175:414070679082232537 467621302172172455460430545243633607:683828415739045210 273257346044062077621357575645215665:522740228071326147 106105330520776570125666525301336565:325738131818761080 642626314251356656026554463464312532:801639765886995314 2016151561634430352457353512516605156:1419912519007572646 5061271563301652775534707074113563433:2249726997504731189 2103330236006345174430006541323542517:1450286260021222560 2524617531372254324334362350534710726:1588904506687627947 5561641324653125071055374333640253130:2358313237178879312 2351002456657016135531440607625344305:1533297902123724988 5303313306127521220407621145224625756:2302892378320689397 2726176402215134075026476704612151116:1651113685430271659 3520456252017430577456104354412717523:1876287891560735563 6662040027447567073165726762575215250:2581092797139918228 62215576027346355057716532113716357313:7887685086725151139 23734714355237347050006456602251432211:4871828645923145258 77163202016431235027372360076551354635:8784258763061982740 63441442071371045560727347335543656722:7965013626565308366 41372763727266364012271573736424232122:6432166332369395748 52300045715745621036054020751007501635:7231877053417433550 51450065514725773651224523176261376532:7172870103014955174 31624531515142261470612000640106522321:5623569286062212416 15577461257027221464273102152023434213:3946829266262631414 75650325361510262117552063325142077711:8697719549485960639 776135445461531613543634266022566622340:27859207552648219816 467011770236426000760060760730545146735:21610455114051300348 566611110607463564003452414505141743310:23803594489225016286 721646172336270647471157217060642102120:26863472827173158466 724153307416566344722774261247521163346:26910096755986707985 336311151206436227025301557631417112366:18338788160792856135 100406566231042160402261014524207122530:10020307691435535973 414703242205575656337205422607634545466:20364263851305199005 745115777225271551743522466510117304151:27296808920188300130 512073050376314221211770621635565444734:22629031140910876858 7644474472563623615045553363406240400065:87432685378888046681 1170627162776465432745152721037263632263:34214429160464820368 7552507470114723720070474562312032276161:86905163656221968592 2711300254313012072357702561017725360160:52070147438940597572 5075074502561322255676204430527030003423:71239557147425630636 1720214753616052022407640411363066777172:41475471710591213267 6235351605673121435102740621044315056174:78964242576454321582 3310406361766465020513520714444222124470:57536130924545708633 1252221126563230126164333530711063131546:35386736591034078091 2735546132455150553307473012465556115305:52302448627718669681 34225410423756532675534223102476266643731:185001109250070532315 24563266541765545234531327624135755115305:156726725678058958275 50615364021077301740363057175702320065157:224978585694455155049 75175724063421201631456202512165723224625:274181917827236013429 37677045271454136204436622677773330272544:194105757955435562613 35054041055233015751210405277071425407033:187227244425679180456 17315750307625027744122443747656146577651:131589324443987581952 14572614121245337300424651233564462531265:120717082971903099661 46131567516451755534450315116212536070510:214782605246448567084 12612765365042372325440004717331006237452:112306568663824701173 513063135666523140673547713571756633757155:716284256190601428378 115442600463370026503102632350105577265214:339768451247860896068 327277715740630255141117711441325707147634:572081913488470858108 555571325754627576540267447771275102774721:745366571395999470831 752361046115052141502116636365517032662331:867387483259386295775 150723701256055462437664271423431570351350:388231504718583422742 646460374447616407362435207260234724534720:804027595575933206639 575326017243056673230045624503504343721701:758502483346664246918 527747777337337111562116206311115733775544:726462509244170914608 576420636542740004514455640573664405730306:759223706520509015983 6737417733762310506335734133363125336677703:2595653623610498324753 1166133423262555553605261725673624711565750:1079876577791441661197 3661110165613214646300363336134273324525404:1913402771403139430056 6777004041746375157117052536761454067255207:2603267954273315898744 7431554352005201571772760357751256223675547:2726087737400467742284 7327006140075047214544163713603167221341165:2706844313970614604498 1070156343432477352311406543620262301733013:1034483611969023582903 4170052452515063471415615463722403550614264:2042070628679395964299 7025125641404564604353031225773156026561715:2650495357740617625387 4661132264064233274477417403666567230417060:2158965554163436224617 16571240460735503627206445552506317700156763:4070778851858143328487 33414157447570550463031721165375260436436356:5780498027641783605751 54047373047213672721240727755475332244060023:7351691849310175808087 54046742454706323261745747502116200565141516:7351648961607614957390 20144577753777243625040513101720776101742501:4488271131936799963473 37774273623525620674476621316127624016120253:6146077905748154497149 33554647231276772765660253225756023302141114:5792637329513800380234 60066421755415373335713046275400674100264743:7750253012348395154534 76327322352702573446713321221632746027105407:8736550941458681464780 65252230720355516515355031113240167665163212:8077885287645245864206 122021536725103201225134546707013535332645224:11046335895902459892078 477037217334201015152065045524245504326156646:21841181683558264269229 364706404632627726272201446205654646672777651:19097287886834290645502 727444646276174215407135345642053307650203446:26971181773815069807610 635031312601575456450020727536630731437774275:25199827630394130464730 212273612002363642262150235746535323243507321:14569612623620562213995 601626362351072032665264024425743001430650077:24528072944099624734898 651274133141347643225714253372560674775760575:25520073141379270804546 771022142365547771005075135765031112143352727:27767285469875296598538 632751734571047640724203637246216155516746276:25154556934500906464663 4177034107570475745255270777033733051275532737:64629978396797223014738 5621466052516262271335120544547727774260100473:74976436648564876107866 4472144335367566313553334270001030201237601111:66874093155478125807103 1536611655304335750615261665104221305456341267:39199638458847241651497 1637164366237763037455171547227251546330500365:40461887823453851267229 4230772117375122013116403314647021416671651317:65044385748311298916475 4343254347124262276631067552131455422606041737:65903371288002120511300 7567370546403476553214220562276076721610101737:86990634820097022632661 3437037256132005714570020017232173406245353172:58626250572009171551783 7426034114450264267221362121225127222124767255:86174440029803873783996 33456466415502514201160752762576721222053172345:182911088825971713423222 60347063471472530603551705744262037133514610131:245656393101161791448509 34111061375572312772360265256273601717722510727:184691801051298194254245 20544021031470440611023033567070726132246752375:143331856303720704344946 12533114620714346231776451606646416767510737752:111951394009696664570708 33275375616041040657474606122722124225661155350:182415393034801316510234 63223475351026052355260410652713733736414113141:251442787430910517965219 56232117645474467337735764656105110636540436650:237133122202433937711907 47630045300523335774241763107132563512770221123:218243087635149021629325 22042323064757007140511211752562621210611462443:148466572213266266749355 410525505110115325206345515264063076440713313442:640722642888571033530595 411132121206605372212746714316165627153537143574:641195852455866539202855 674132027363622432474137605254301066670730533570:821055435012534602778666 434265651442221301733460216476100643721315070566:658988354557363404803665 111366500030661033432006553610207552424170431042:333716196835965744876775 155054164047162541256451350020502575756311711451:393769176100875805025271 332702742307212144407445451444421236675317634401:576803902818984178557715 151040152661751252175634616747727733377360254567:388638846053442336761130 741161026356761547073570452034434470010255747270:860907095078651066331021 513426305123123316264551177515002736671551455255:716537720656158698689307 1521055650447574525574504332552561406131265366537:1233310849075598834113876 1313364105705225664437476735173111605003533230007:1146020988335390681485926 4605217560623141002770603630236523326242535132001:2145977064328307541189736 6745656013761660513561727265340031770517054224467:2597240076265892774074657 1040731640207305233354463411026051147455443052464:1020162555775943598396617 2560214242275774236574157546530357305004537240034:1600066949310488769266414 7355135242740544047567165620013012402510001403126:2712035258388161893767034 3257210001231300242661141533025166411143002010543:1804774224447839415303113 1170553015264561676131471070176137470073653671235:1081920983835955404717688 5152630354554613616047540427674062260753157526217:2269940605953075067384679 20651404307663645425402520605770612010422663506372:4544381619941666543554843 11463111314120153415024033242700733465321514077107:3385721682909000335574209 64646223103242663732147465741601522737206467516047:8040287501280203831673217 73634637722661234167277727074342472035775641162776:8581062738534268178834534 71013345100000326522547627525353630063067740017662:8426941621964657144420074 64022777055573774337247016041143355061145712541741:8001423439337139238865705 22121561000735217051473741200677645746270062600103:4703356354852906215358638 75125615146037055670601642532265323362524073721205:8667503397520941016559388 45146347676750417702374272531461316537141475002157:6719103189916822352178174 54552446032324122305604107774460346657112136604071:7385962769492148090352897 371676705522540604452025441501152157437473654064652:19278918681361270902206336 571313561022215656455311260673156204037024601067422:23902166450391388244958817 704454501146006707354441271333734271377464311633020:26541561769157569815714193 155144722532025173141057731335557615143331036702456:12455710438671299376292031 670023070757520747207172673225620231411060253411230:25884803857814351752294784 372604044232664712403556515053235757526132103060255:19302954287690387430799386 262713601677546622110433502151652345177665170150513:16208442296456085483855353 654553363571512270475144003205245004541334515764504:25584240531458272515174353 573414575302034761077762043723744663272735033723105:23946076407253752039000951 507010435125760566015253415463420424215742723642566:22516892217305668091171286 3764625164252146622043611276073355644571177520057166:61356541332217762338288998 4676455032074060605650740713547133437460761133702367:68384611076426109960688307 2001211712115036361637011342522404270544353023165666:44734904851972540678524774 7754242436224510212027706370510525264577441175617706:88058176430269723204893953 6724766522712267575064270325363242250670325325443507:82004673785780451545812226 1545213146217153654541636714657502503363027664405312:39309199256880744231826244 4521776007174540541030512157352317625106117534655575:67244152215449489902200190 2161446044024215415235500377664434117020601236425107:46491354508383764826266923 7655076313435357144075145133251063441347424666532523:87493292962577178016803399 1067426306121722354475422504277050555376516214341263:32671490723897530085830007 42224330076031747541405724113250316770515663015260224:205485595787227255325802698 65054313342001717467017675426012653533605415272603145:255057470664949779798371452 41662723317105374103750102622456675116444252267251220:204114485809080620733846134 10700237341510717211014623720140776214601261642731677:103441951555018127524342139 27133026541565067337336134145524737141162574300652576:164721056764352587543820918 55321353565407464464620175061172277243140123106542116:235204918242385961516904210 14074372574762155400671473107040765714551014067336545:118635460865468699879595032 60347557452762655415312341454437274536176336640377731:245657398530479141389229039 26332741336660066104247537076551502410015046545415427:162273661869879753152166672 60567471003350505351407612211764026574047437147623201:246104593625048992809169897 266163344656514534335764202540613635212220342310101134:515910209878147821808872758 214204241520210704227760014031435506015173643315726712:462822040875551544024534254 375425733201721141670506663121055070375630653506145540:612719946796022906880245575 335237265077362410323010527765315724167727012475666257:578996774669222497149139363 135224477500740075510041060206140100006432577346337042:367728809723606066429289907 254560532130640452742571546421101553223334564135743037:504539921245723084895587193 277244225034017130765310567536717117604533662410647721:526539860821587875693118399 526536704267621417516524476447213522743537434442624515:725628489151040304933308167 214155206433326715302032100440627627606502331674505674:462769063824848511558406653 406406457653775034664511100106147747110754527545343671:637500162865685105437746067 7533265131117112735134217562453673326126653232560416434:2744679422285435639312477794 3362670117241024141505536667554100341752173677657275314:1833758467530831646385999871 5046031660151553535564610041425375177706276461170131532:2246337387871989619296721464 7174304767323404704240570710235446450035446021216064337:2678489269592731578139699462 2207214431707552355175604776344340025133460527723167762:1485669691320231636896554442 5054673344261721536554713346271501670211036421215712712:2248260070423731369381827137 1324544127072441403473157476267672645422650442602414762:1150888407740924899213181391 1574630576341414543326663762127437343173301362124774415:1254842849260979987565978155 3541105762601556032306523056617740031262600514315425736:1881782602375087331200076785 5575327701445754202654001301456150204534132337163015554:2361213184243590107489986207 62110003433362651255631126203203263757227276006541456155:7880990003379185308204440866 57737022371360244660443134750515323707544671253147331231:7598488163533601547913499338 43767405045422634317667162571572556032776734704354772522:6615693844595790718796765710 42020354310406752162674214703245167367461715074765370721:6482310877334313111157693204 75677602427536332515461160470574042404636221464621324437:8699287466657044120205732576 57141137077454473205705360717377155577642246631176136064:7559175687696011818743493126 47102503350424604404450767723355125452570756222043634551:6863126353960314812561091368 46157443435151204405075247447361314763300677551025062205:6793926952444455330734744328 13673711362463720371303163115261735526545141324654724164:3697798177627291812566339000 22057550572001451212652212501733177763637257173471042530:4696546664518670702638545443 247202603622614045341374243745324404460775143405041450757:15722678004163732327407505796 716750672035511671727204547704471442417267734471200571355:26772199611453513733627280495 436043641061164156532131151577735747064460551177134015164:20881658005559907084514519507 310202311437417057066137744342464700735122332154251156224:17612561183354823396982031216 205110757166502433724362030044375501557235270417662254700:14321688349021648562245276706 215736467212533674563377672255524526424316115130140665212:14687970152901784630021096489 447001656040442015454064662550332776427260025515577146543:21142413675842264520404982876 224357072347230533564060274441171712737414407071767547027:14978553746848543239834773591 763304573514713730551216335107721012206576751443103471437:27627967234574347716683093772 526775050546500525254600250355547231406334027232263203327:22951580567501239635723189041 6506353107075646332347560114030326603657242053424422057371:80661968157711390747834700378 5577364335064522764106025051530744205267407070702415531723:74681753695695461782437334504 1761451340146612204122513763042514270623253333254056317463:41969647843967099506960931942 6133227771630476064405267033661644256735021544435602525600:78314926876237815104444830955 2563205605605532202663674317032411351520404635477644770603:50628110823983272570467679329 5766610467722014171712723470536710721016316577551300715102:75938201636080467373162833399 2727225333210000571611350766616366651122610764200553311152:52222843021133965946326459572 4510632543610107347536436216353035570466272633514442041242:67161242868265230962017683642 5276345155762370334502326501050123246405155353525013132203:72638455075547761366860447771 5737114424165541263201406310025555721444600575241724260165:75743741815185901622375320134 24457547034677703420712203233053362747065010321231575320005:156389088604920590926341618880 20346244774451657476272315477357345440411412124477446757735:142640263510874297165589802554 56512413210031066557445173314171203726142505271166045037441:237723396429613268634437673790 57643527142440545312566764773652044500760710756200367216376:240090664421673308244002327987 22547505612251777324376120447466256401243145341304720553314:150158268544398770729048695727 70343205545711133570555567701306621671316666214244506704533:265222935557449732354038996664 41530024276351215536170111040703327003035545473656630265646:203789166238912748382047968392 11425720210165477661600422742002056456762507136631312354513:106891160580122235201950352893 16352541115532016333457210435741662177624446203146164520653:127877054687430208788266730327 67723011344665533423564572551241475266661034100346564301445:260236452759150429946791614848 701106775401073333423155250562464711137237551020264011430162:837321190106325526893598699498 422325656173247202540421270057021624623051255110144067351575:649865875526055916741040174265 137644524671703355372357776737713730573052525546561207233244:371004750200995883923263019386 603555144352315657665434147266354213133762672604606052017170:776888115723439070851322045280 540075226116131433355023576763050712107011335522775716671375:734898105941314447578382779707 606647252606576352165121317373753141633051346436047414223526:778875633594077939791058220733 540307672237753317317441577132775747321612154510302707205753:735056237466054917713890774596 121204547061413175152354070146423341614350530403076115030201:348144434195655604125029548398 435106544516427266516410375226235263324045774350366125523276:659626064157888826609102497243 321761003673473046545651311311035557121754226052000251630465:567239811432054764011424431038 2762550070424341311147114671030124745302057536364416016366323:1662092076397797316431244440296 5772425201557306647735267335044022071511223202102433114035164:2402587189168648390871534164186 7715701700427346012753623446557071625075430135111650117174170:2777715194260805783799446609084 7422507726502624466346771165054453643031764210552171251115243:2724427963169998089488459676080 3153020326167157036130034331573623442240532727670477715424026:1775674611567997003029575258178 5741724054066360326010000766570141445411527432237540207176137:2396189486260708958377850007307 6036471253344315530406553044053621016662226266433451757570431:2456923127276129396646422955088 1331227464052510242226045057040375016331167550021526164135510:1153788309895931577871167207681 1440172671260036676413575422041667443324512357254437737413012:1200071944201695216188178157179 4750120542300776206423662425245400612125105143612451273241155:2179477125895285969248731036466 16434351553241264247514672217742202431714057612715241713712710:4053930383373802368571032267649 63557711517072104605437055063053120036500161004107244446474464:7972309045506960564031925712280 65254073510357533212500405523061327113660302623735000710647220:8077999350727724167987883228685 43532670717306140246516753605022775716350536144055563320462402:6597929274954843000459012532414 54404047526573716446714457445212061401075276327764560106617146:7375909945665939083755379457926 47670742740264414654012315065403666153351662404675143413325754:6904400244790594022042276910454 21166777625206362722644602476615240107242765222410027326247050:4600736639409645965118325550374 42411061731506274357174771674526712465115336131717317074400164:6512377579003406829198436443118 16557411421163053120675257245126161657502401556771331400562125:4069079923172197059060518902712 33101670100337777776413034522363212761667600503032731524674013:5753405087453670489759416588172 533543446735643171160036201126736706375024123455527105520064750:23098559408232435722642148912527 517657065363337167737706163121272564151727033014000314550521533:22752078264706658830637160567090 725414506231241022340407677161024454664372652611633713621004525:26933520123282085058728587662018 626146402342046757147724425124663507465224400152277757666127265:25022917542565790046981490923289 372637643317377031467022511524672653765674667110202772732561266:19303824577460732599046821440581 470165675714654376737045043371176614242374157077715521342373750:21683304077438345437124058661259 403651037511717100276204510764306526405203201317065566155075071:20091068600542806873794405128407 636632315710370305056343211032321735450127033142045505250047214:25231573785841625639219612343252 460537336106611726115651163176477371013376163421144571446554115:21460133646056627624965909228815 105640767005621237614016476077743455352561721573062664777120375:10278169438456501608891266186130 7113324062303240210337135454004447334716312576017471537705233675:84340524436970631219897346768256 3477776742064066403767527553565470756734130352622401364075006003:58972677928546422791431600390138 3705233047573760470110607736744342217231305327314131014362010445:60870625490245789572307443396294 4771305504771754267177450220300062443465402733430302442137323176:69074637203330675670681313544972 5617700460042361105310145765755135422777000467626045342026000621:74951320602390730026072617162782 1612624652112433175167577663205247634122605757612224457331673376:40157498080837072676103293890018 6202511167775301747651706120341573553177116427135141520730042615:78756023057130695543043036512329 7345670045536175540046207216735251056370101264535224565546017171:85706884469896439819487213312446 2320162337273072664756655244640221430514243147112100714124016617:48168063457783650706390086628250 4777630566356552246431634650233264651354535762042221112313053575:69120406294787881884922227916560 12572471370543575445665522752702356436053366564157074410277651661:112127032291698398654561582326850 72741454700650305131435150747752351212603566626044432510140643362:269706237785947963661146162453503 77016750011070463205413471404513327403306335351613753527030223247:277518918293997505278142764838002 17341003540144620376062472203225415160526035454562767332204637045:131685244200497347811662503825085 77757735311224526637447200351002721463764363620523125033620606537:278850740202038062722422435677189 47734302535260017570530005306207021761471260252453500142372311676:218481812824912310984608834378028 71644542566067603254014334724055707322533525042421221571530170627:267664981957049441850726637597146 44373063551162033256513207344775327725173411620707474561032313235:210649147995338526734728302845479 62272666260475734656340601533167006075002476503562067256415654340:249544918322284684940915493590019 54726666377567575543700144651433316447015202617041036426342565173:233937312922858835558544235737309 112111711526021671770600261012362610307134264144542746332147551532:334830870031455838838292883830188 172215354410264406244300431465505157731260544034354042700023562501:414988378644829530416988338126075 623224651451667472677350221631547371025155177435755150246362072360:789445787531776923267413374334589 705750553501520151275544303334644371211453452007311217073226130655:840089610399700248117450241403112 263754401416102032126001451677145055740307556753361172720566443421:513570249738146370489172735754408 524002532357032236727422340064623141406634607707330644340131030064:723880191991072675136373011112453 764607232066243700331447542505447371255631132541771731124357240263:874418224916569142485843564456756 312520720701354243261253204176400353506426707273762720512210412335:559035527226449395415592143120014 661067611756201417031460517321307517665353641631300504331440740305:813060644574684488541790897427060 640174651222133115401423616364402234155737422774627213666034321422:800109149567815600668134004803317 6661312506325616113321664651471232055502373037012262075021425070521:2580951860520768433288497076106153 2544131500251062251644766412773632047541503563540230031225157301631:1595033385309242438379788372604675 1533171173511764270076045007611443602021715402544250022624560056757:1238212895067631037339290126840366 3550150766030307770514777351020741600724020634073141133157344676173:1884184376867165240139641673080697 2060644347105203157510212760137073705213040766224363526071626547556:1435494460841003439610253171823734 6324372202237121716072071006022723714124622617662431300253072025212:2514830451986201338568784080193218 2111714200645457437541301056165206534653020122420145266713071423466:1453173837035837029916200164651048 4260640563012414234453375444246510465420756513655271611406452522172:2064131915118899137664667725296304 4060144660546347164740071322077121034105061131267070364674750602041:2014980064553083156567193298047139 5705007735241670250562152625067365701257751422054401322761724524433:2388515801756745809987105126991438 20153763273021247364041237157035230615476550635263420402446417307271:4489294295657308248334517243283851 27315023312151112533274041505655204624542236124046320357234641330440:5226377647295602052978344690590839 30313071100415373115210332343171007260360440204332142635364415516446:5505730750810047841020390875310167 63227117743512233112624637135775572116774105234363201057174475721613:7951548135018251470197778285826297 65230616627722611004272150013324651072231110562046236111241660516535:8076547320961018860429867001833076 74546375752327074255177000260145413327677153760024100402351435210320:8634024308069040539419583578966110 20067320505664263533714741421661776270067047133305534343414454067463:4479656293251108738874365000632282 55505604007072314052741625400711662403176664001370236741330736764674:7450208319709745811017629229627356 22117454561716264150636147044307062234256673224147461622565323224250:4702919791120859011012371754881601 54241734320210476435230316641154373371102465522572431113772376435175:7364898799047443559870975611336512 266024171231407612155731312603210122317421336755163060750040602062362:16310247430109931111441122624157132 727046673525023354666552304062163344722604667514770352305453462642444:26963803024147453422713643124822535 561124562524164064076577616471575411554364456226005030524534741000051:23688067935654103575187795597321727 327572470550104530502676203772650417356166623516107155042460040605162:18098963245172485031134899480997448 324231075344555032353120242260166571502160134167041640167236616022764:18006417615521279260795610237556709 127576154145367113423152477042005133261005553153007205361636433646227:11294961449485656098582254452629384 475724156423705544041626423251636153664124472742553235016346051451540:21811101678358788120576329522170078 247121506537013214017714423416336711105750003765643306240537361417217:15720098808118644074673437860489356 100410634621405672463236612136425746360621565014215157022465371706000:10020510696636457982721539194326098 166000354665165170051743160660752246752567744404212514351576126231367:12884112490395493673293236879179765 3321567243436432455636556655672475034330254531024360541045350572420230:57633039512387618437884952823890607 3541216165031144232611544125377571372275525274456232140033324452430272:59508118480011987626629663032780692 4310676451132703351016474047675606570773763547435627211041700635325347:65655741950972599994474116950607055 5737254042512450132145465112364055224512531766327614766106560707404061:75744663458968844587063941460665035 1770605723164541237434477214105206445337341073252347262615215003404536:42078566077809035024865525153643025 7402245455377344423522351704526234566277074315463357452502634215570304:86036303124770211290661490179383478 2262030260553767662053760701016275146050323421060311440263716640073726:47560805928345743940077763710684093 6350230251572227315203746747270447443543505473677264760077476455222746:79688331966306254936221266940607651 6561765507030436770025410406645162273075661704470604440153754650253562:81004725214214737005387382380212264 5144525760204400316421452464573230657422430040155435220417536315107403:71725349495170815210863011820148736 22143266633613071311467212063220503201044634402176335101750567571754413:148806137755178201222887388243217107 44226775003502625627347516272535706027025345463035061304177133070216261:210301628627794096851266620321261071 63747737167402744100146352246720241066262675656510206554641604767023135:252483142343014148608954743799873481 77273227714243430273706066067713217777056340226304033451617222625224314:277980624710146714703032161090845423 71240536301376310453425204426375676467031233267254555546424154574720154:266909228580385190197654453943436044 30702203626531022475141020136101360021722600536733772231352465324515456:175220442946966158144938692325397520 60661034655052164220522105056021041253205665743343775727414054637052722:246294609472176967132827127298726485 77076454065050611310077163476546620324644410014464456066213276504772427:277626464993974613173208934152106415 14331704513237754633667456761410355032612532352724720634402273714172351:119715097265289621589200539337445210 27030223044441401655556511757613714327753213441465712056056245624067226:164408707325498431629923598766802742 315172220055704564455251571517001562363616212041007073526455636763602445:561402012871083821210516562899570065 331623273621433252414311752645034016474413661704717525425731005716715246:575867409758039053083214635129435950 642224516435071347601343056013542466377260162443750325462503301421644367:801389116743590015919567931989657303 101707030070473021172610534102314613376356266112412663277763203304107265:318915396414900328299716598942595419 453502605075027773453111016275502564551070440425575444645326025120620301:673426020491507124428850969339723890 377312643520702670504061571076464210353063150300570412041172336034565477:614257798909140974126896033512026140 723376241652414236044466255761000520100333507732617046137754203707755323:850515280081677448544954448178865662 477311614666201311262653054655052372530111560666145637471237155245600205:690877423763580011847918368119394471 671032133733141407621526625163332415246257047761273673715646732722772542:819165510585706609692633661130150186 657373751521661336457257141350642317503617452555014610403113415357264540:810785885127301248862424099420964564 1010615024043432160055735242231516546463604525027535516105476563621103755:1005293501442952808296095834331927467 2063324760727624237400073753024123344336622265003764232131245530435421414:1436427777762468723764701745357835101 2367062362770125752564327413447510511443346465712162106440675122064543255:1538526035779091309610936855136229736 4172752210507730571473512743015613130206603023455113467703366440607306251:2042731556154094999316143005283208886 5443732363735262346623623377567431231135401164123136531671236330734227171:2333180739620328330517479070429791610 3117502171160551634771560425331722043327255111162070726517523143312641420:1765644973136035531802534902756728647 4412334015662660720067242563261206116077607276050607632357043042427551302:2100555644505201085692356556843602073 5720435644154610432767223274100304224156425330340402671274341312166616152:2391743222872098039127769771150166380 3332674535403114356361025212700733120641360023630744462574243231467541433:1825561430191576532246390537784636698 2227176666634011052521232207400615335531160525611634064325224213010536450:1492372830975561231428178872411845824 75260311424016462364243033574731400716223767773417774455352776453500446574:8675270106689270246438591989478389814 35454074163434767670477364147061514324366162033533313605431310461261434776:5954332386039157595196754844868003763 56250062142407723710553256602323350463766611751771741131260177026230075572:7500004142826037380198484085639734005 62025406243130412513605163453761454271305655273220350332550451022624411631:7875621006824186465234655307909661656 22540222620133510740341440055311202360337200040024531462736044120374500453:4747654433521200449707392398428170760 71375374753362205231740554606631403577436050004526432163403776376532021224:8448394803355380907416990833144595395 75411546657432102155520745321323031120650003427104366237575614744037372114:8683982188917254000859967587212962953 45276700151574327750373625325151552002547616702350145653454022032353423444:6728796337501554055367010349052897625 32742472201521601407435110625623534613254606320423772611642654463522666476:5722103826524087233781734878731169652 15527414153032100174231164273605577435203624532105761717554611607327123745:3940483999844701840460086471008268654 421665222455504751633563477074427350634415346374040666635021502327031706123:20534488609544303712108753069347303517 446723062134655013147122522614244157150677453235220600602005332230105763760:21135824141363757409302107496216557780 553624116231415072516116714203007170532707030352707116357657426431432603746:23529218351475577067224151679515723094 536730714477446742561155053160457322542057045246216406322615312052357034543:23167449459909192657436940129770201247 506725413516131351315275144262362554426627756431055064735751703210534525171:22510562265659455342348381427997412428 200651450227422470774054210134437607414022500543405364353342716706214256751:14165149142434839565978821964679352090 327654255342177567020442234255765040645552143713000425122571553167415270363:18101222481981087650178352097081010405 446535026162243560310631165015725566051651770760516655501604573217276267425:21131375396841625375238372669896996288 244754160756724657720025561221052576076375322651456252002300062614003645077:15644620824958483400796127559487946908 267474473524063717214044016076375402652605770103374442640422055021531103042:16354646848038746850415712344153157744 4660277314255074361451223062312370015616525775251001264107474433052020505024:68266223817163597096142836576773177275 7231060230200537255221266012416547303730551247266647755141473220063440047251:85035640940728713103416134430264323294 5601312776224021325717537713131701510454752627134422604420051475524450162344:74841918576583947202345145281384740996 4310327035421517252521470212404172233357101434304066441643247706744273755313:65653080928632109797163170913486902311 6121024533430620640504606346225161374305612732512617524006706373476240574625:78236976765661265168706375911570648882 2333704126075437637266150264227553720302121102762506246142547056456744171515:48308427071013579392920636869763024904 5525132052154115721312535306626037735654541731337740433307244044424123245034:74331232010199559999277990457948861219 3076374254474763763312641354377657200231564525634242071244140263271533565474:55465072383210352782580602028496209690 5702160415661125442155457071071241144345775173321230456374412770050751023160:75512650699476345704251531838027408301 7373355216454366027035521442026600076724321300702314022723366065163535353371:85868243352559425856293418522068419477 25751317237626713261665625721140273321157514602222551702565555304770466116374:160472169666975940908509562085960943648 75217310351615416113012524663311071213522452220013776423730540674166565501325:274257744378559738990825084374845323496 25526615353356265066113766040743104662724173661174523101516677274333103357627:159770508396750947642672737778940593341 10372160115406033622232666324627460455277413002450561361543416647316320706543:101843802538033867454949412611763000238 21324540154206151041404475112674536323133477431747614674501040744007344236674:146029244174604119058912188576199688297 34733313704417330414245473453011405235317042532406106666517246557350417317634:186368757318433956483503532760251182143 67414604171341744227422241435700016773321176130071112712370736361200064053764:259643224774577440209747261792234220903 66060756326746307531770067766375021060326033460701413527277137634454453636135:257022871213334451637688070784218169194 57130412116205711521112054072646137276103326561444453623743341222104073167657:239019689808613280948701711234387330012 13712040027336463276232333255433006326647472702347413260046621501506312425665:117098420259781742609105141907165153483 621377600121153403440050261143536210647003470735207375370035323463261345623044:788275078967458797742222757304214258896 601704461567740332105407366311542753420102670257344707332005177506130001421260:775696114188887974801514023884181374517 473403450241201733255617160677067462434253442475145536510045155070541472137036:688043203760637209344722061324789315665 316634331351262361431520457600707440645113551430612015661232744032047362575225:562702702455979290129304679057577041035 751436702406052246562352163231066267747220262350320472651575640175510515150476:866854487446452714366022620049192228153 472361630210512707657434371137401424514610425603563740563016154073110636162373:687285697661833137362242582378847588677 766354143636112702260644666033263253272652174420606746622764711303645502001262:875416554353476172747642182085662430604 723323353237442762430356535327570206353742473042564415237544217353311545066035:850484187529340701986593759295791786476 330774065537654120473725315712501516231400366442446141437361666340710343507272:575129607599586304304293605426594343039 612454600553577335010330034123057034650621414177403112607761200405012566056445:782594786945055835138926866421087118086 1043545677454205270310222154757024113563276741475310150677704404205772603070075:1021540834942101210915797548601964185123 1404441012334771725172047135237106337057714454213516054357234007306214107523141:1185091140940126902091348241453071218880 5211640057667734127346774210041320472274104275107563361275563505770302520527621:2282901674989033365255788763430581724729 1661103425272165447047346147365522472067642541627112226412764567140262711156316:1288838013589048919408449942230738626199 7554277215135550403167067706240504162052105751537332627762617336561066500656674:2748504541589034813935951524085901652189 2365663722031606235422477043103420126702401467557771546446054546026367630447475:1538071429430898126460420664805262255221 7004021041500231606176615230276133123121736642520523362424660123574175770224535:2646511107382742802717079845084588874214 1553104001510120152355410316606006350600210347650706450664123314323213114103526:1246235933324874143734815222720181736876 7755107746374342151430542050015730662574657236143473371527240747156524376065025:2784799408642270979507840738326128207248 4675162636717150303065277351570703623600407633035044256326554615405660265057417:2162212440237348718382395149260388609770 14670116461423644752204654645600461564677036216215061447224420720121456121532144:3830158803682119490534785490228801128468 67774070673776421674541631351417053763226071414305706511304365241516461535462737:8232500876026459414040937616222469503479 73367223340432657337214733716514355105266752163011154361726325021770702402740420:8565466907322253926613114992640574812389 41064317412537663600467562064335371346054020707253466464132026711524464231300574:6408144615451313580043470828943185218298 53255452224024430306573017224576746364564540055233157011557731126774551130437423:7297633330335556829522182833399343119081 20662115716540212212657762723624765674701617407205444123417423061023417174133051:4545560000323415840133357047093823479601 70205644470522314325431533546323617547622415772151530440242607075123436255013013:8378880860265427734304905826300613007308 71431460762600046202761063340210635431655073317722364074257137374244153536266657:8451713480862921810857248161739475050225 55412371572341327711772411733020453051743275615427735027471756027705227664007076:7443948654601355302914397529418879454968 60740630114550055511212421414335232314070272204423276077055012367412056551450375:7793627532449190345462524821610790439842 362430464334463670142124273373115513037775755142500722400245354255442417455246703:19037606581040161576367714214739375732687 231517241704255106377027623120172353035476246007304722213171246701434144402616304:15215690641711111838630931819335064536413 301430056531237463777522376432040517033574777124063712713436451315200255507471447:17361741172222256803537635941245033719401 132627402733051047003304733455101404703636404236056644160200753175515530401010264:11516397124667551468628006844158303093689 147406656022451070015676652244707352711040114141365137331666041643405176130463623:12141114282571063502462406799411704994541 554417713471242173467167672711735375660473713153767177750715447675005732544534637:23546076392283326096054385871522529556464 574763006206611632614651407034726205664153024733037106320230224035076513061657006:23974215445069555656519765813870876182567 151007623075340507473374735550630527311302674157453732477611311161601573144247713:12288515902066469941626736127304995434553 761676517306175660135112125050011460521313317502326602305251105755040632532210614:27598487590920189047835163947950520191474 244042526432007365355617245466437061537674771512603277225336367532405502513325424:15621860530423620619004393039399110434016 4613133155205150010253547160224602702251424331606034172734434106615775700245005726:67920049729112757844507249314569364346268 2664536155567246416742051033621063535105707224505073406435660276517464517551122321:51619145242509066722544548064303467483841 2700605037027043337414011054267140457764760235334012525266272350105404032170414171:51967345872451898170299987745262350359643 2741651324512303320734310216156541656337057145004513135342775264401427162113633250:52360780403965555493502390443597119008193 5660512156271063555122326772156702252134475055224343136427011166761115046205252133:75236375220175669725216035682269972964891 3726513361677713276472615312227737742557150222521204645127470321207430723663702204:61045174761628074779468160906123331424044 2612273207254256553353107362110115513573156255063451700126045135114307524065020375:51110402143343154812261575741256413658037 3540736424170517637607745144672636415717043442053406760353104333634136172321316776:59504087457674011771176693240831121822842 5573734753046225337646521307434740621534745773741407554301762563576536150425042661:74657449414283001861047486878597105192981 4176255041403476607567674510401753440617631136615136201052013362550724677754653115:64623950988805045419169337869290071838595 61641137174260321453154710754155762657316726770124020273316140577524004706317104123:248276332287756179212344517960876003622023 16514766545151737476676602175441040647663004065664331335430007471304101525643221040:128509791631422924335709536710638141050004 44454516756462500101261323116303152654553642325076703146126520223672462503001434030:210842397910056268884713235782312028683980 75436431247163236120212630551560446174067052604514003453327360451262704073516563222:274656933732180218775188823989884641457411 27005574123267461417403257572032313564575321435237160547032756131217324363567341334:164333727893173108705935499949463934422412 15036061514251425457170361135523763215232051356751655154744502421034626572603146427:122621619277562247731085493863815681755332 46423574512517231644264655376735205563442145507146737764651474073552225305312524302:215461306300034372654930511287018495606884 43070465655133046632422253610350055606672630041422744570262374503371375152734015633:207534251763734283670439048532647736552691 16651133727446711544733170721667307533607007037701634742025332652760644725333744637:129039272035480390587891384746025132453989 63230025360107057172771700250545046271430733506473227205117340215767676310257114524:251455811943385108890556195128253522118976 667653760024112776643575713116103736022101440304465377045620767635003673067557017016:817100826106615055993229985396969951780529 654703272006171263537711753115524551274217350615161727117473640554772653652574250446:809137362878622274499378915016077702284300 577015025766214665775171066422721625317276773024773474374673557743753412206624525656:759615051039810996829225643499120853436578 243262572123035611224223155166506705235327121544602410007777717260457764053235177672:493216557024432839775516894809971499769174 777264334704171424245767460070170466112334033304224605773730317402107603644153144726:881625960770309567365955643192859651546679 637300626303103254513115075403741632726167416135212410353543422111162473262624407363:798311108718338739436094963386820178987732 730054436235375444701226611732047654576706247112261704232022252063537345070151076076:854432230335077800488020845931898982509439 715603656770270620456555155734001570403650355735154216237360014040031221034243337416:845933600686407668394658675635422132334108 607251367410446744747631313034153133760417274146372605454103452036657103355471650311:779263349202595787490697358541609872027047 554441200045665002022300435507216145043534170723017726652642373571455257101715664331:744608084864558129934860924415341346061785 7427056373650054542642437666611666037406452276657643315070177142733477454600015201506:2725262624711617502837781221533126356141732 1161213226455203336667225735705611436310056337026214522422473752350012113116412236142:1077596040478621718226686777053925273749059 2060200251162373141072230576042157547204260355660646666575336132751421177052717152103:1435339768543452968961732775792788965429260 1107162503771547661312221654636422014217527401467142310615600762360053250015163530520:1052217897477298977211944980341297711541506 7045535571745320733537754704323421265523331245761723547665740137554647431163067025273:2654342775857202798120705805831248330864498 5735170105133074267641214132041603110574516303513754321422600616336702043427354325512:2394821518429520514993286079877603934747957 7160136622260124263732330566642762606260243725051354730103434613262613235553717117634:2675843160998066467904679789283135599458966 5726306510447345023044313463040032511261250573025032771546222672733547223607531541133:2392970227655861376417818531839877559133767 1217040375713170071135041202065536710267746066552366725456505236250612662032570451604:1103195529230049985129208317525545257278593 5451616404103677143751114005171047547747740335513205041202470162020326513771446773455:2334869676042685930139531247340412717239533 72535076501033406660106055011524124702626603754061732536532552160146061141073446560353:8516752696951661908112800427390220683396669 73702025131342517700166064124343327100251750271014101030211404616717307555355742553405:8584988359417997352988102190229089103720768 42520301634416010672050153662027052075431337674071741047642324451751717223314347212112:6520759283581629857314874014734192678371751 27213355660000413704113320632602073751574234235707472251375310574752252021363340655007:5216642182477193221826155074176529720445767 36273745565456705030332711776102513016673146304111172550675263772241400756474127450240:6022768928446176493767489124606165096013730 23376127565374360271111106462531051766736405743101110156040312220034632776027630026043:4834886510082150860155801019898884223361531 13371047114747437443647450457277441631746553245320073670016251003501352511371600711452:3656644242300231952337313435600165610152436 77211231035645240552254734255127115224100776746131720563765541224617305726411565607377:8786992149515398340945365217332566453382930 62776352636456111564035261305526030105124351430455524502462113261435572626276600030131:7923152947940365966290804025985186660275591 77341373426700040142176456747046677523564252063216346634061255243106643736166140056122:8794394432062962693266456191528669411158548 271470426067012517717556412565131547753362212413071147225650471215113422365133714560451:16476359612093094811165491631212449686366896 602520675267212743725033344746537133457565003632770625413770023476511702031177110540550:24546296569283374152284997674109905202560213 350064201075365670135323634117006407274753403136603134774126203312463701126200122412747:18710002701105247839811964894307508369935714 751762574643276734241033767037255570157625770374317037334114017460166112004527034752712:27418289053901170334438038850913568771002269 625171160440762463247276147513655235354300126510255734256445375133543331573256730753630:25003422974480163427943727721784221414065893 631660175113203047130213675144047367463635671020527115335407642041064402464204273162522:25132850517066364932202036994270743955040376 345073403012345300144404770767215720342252470635326401233762102476651042473600456634007:18576151458586498619730967261805294831741571 176333577335040641350202043060435635214661467003153317465226535101440451550701042352102:13279065378822435835797330252305049764526251 674006201036002271064244010742264717740363160043135407754403700443742351240150753167127:25961629398710749469803729726853225817424410 566711574577517345133570704500377276113001612612372004317107706214423730052400540571771:23805704664586539920396843990313189664381836 3376503731412063570564123301677242246671666112326262116667750152265745255327545045203065:58107690811217610891863977733184820525781490 3120254507160516264101755210700470572555661770063241622776375255676115622653105202767774:55859238333157714692668134422628622708666323 7100544603704073414757714222713053741347775675611072745552660036771061711101707161336317:84264729298230546293077471835491387884585338 3247723224362363707635221715127412462067012131652323020073310756732034744072566222342114:56988799113179808323610686224131146281502788 3141371767105456443742403744762761506666572470351155124016024074056635714746754063316443:56047941684824220168571323746495084271947952 7157047764703201054313450621210230656055646166716466605721051207242225264273732204475703:84599336668222174981329495803795052838100594 6740467544405011260545064707143757221571507632142747056202625175437353372501631141566305:82100350452388516345482662289970282148831292 5665416071112131402544243571120751154126425541205734225713461565252601010512027324074460:75268958217263319596777821269354688614429020 4470353473345733202164043364467276671455151375634035443506064151660750234011413765140453:66860702010566215727531536010992988711128301 7237777706360626762427371045246070337163046131130042204152612737643726010510742074475214:85075129775749544620966810791486976941890168 45510471675250713304453426077166763317207260127000056165472706045174751626042027142512137:213331834650271344129541878595403825908584289 55211525665667306406662741026305313762530655373404175000115060025501350111667250323541045:234971329454610922339362625633485941989552068 10364647256075000645052371271614024247006336713707015674537554302710411356764233134664200:101806911632143132431586257396592767179916711 71206353563130175065334717410704766507120733610551320727175203525550204251401415372532647:266845186509200827040681998947116517383408949 35125117306003654327105477452640603412605405261247375406312313737052023545307647715427272:187416961094783666132868129494036536476910564 17557417645140405505627603707201304554211675153015667250344714173725324702746135163760030:132504406134816533902473046419772034792679342 23477470364204333742570727206712037336122147702527260155527611432374155206135554603563651:153223595977265635189941227666381092820311075 21134057465056436055660427362327272332751007733370261743726414301421613173516664225577123:145375573825372864994382725814919878967492336 25303311011066411162104203540516046276001536422334170377416636624204031543332324512022434:159070144939477600144393036971941128666266717 43127521742010111634467622004712577344676751733016020444633243321417750162152170004634502:207671668125457382127657556240140296199597073 240012320245117054305541666231113761153570502761746563276704443463747551271133426565532411:489910522692784232368040131227615415149943890 422665105531145673706447610117706341170122730467204372020556205350707250654551515646607125:650126991849396815756087151518622366252268433 570075535322565466513022023545553554767102456753746416403057034502101134260557031132042557:755033466359316728871931560115991189432397491 446422223404702301665437715004042332233764062426303751016700172715046350233606341113475245:668148354338093316287007289765841422341645473 133001366334305636325465535673402406555614522652263135416313544072566302317072247261571472:364693523844756031781585523856467386321868109 237606501263325202633307744752546431470652566034540504347136604402667376645354024313075227:487448972984173188147282502100096857104483125 260550230357434747052463117300603771756105214631304512346632105713472021557012531633432550:510441211460668354852178838023318232604682064 421043412436500546713711233303425243053751435270454717031655700537676523062334554413620713:648878580657815015469450878411143841877002460 451005643720020012131342435751714652073127421377416232034277444764063725434720672645576655:671569537516421312052940441973348593882729698 545605026507256644026372131051521736361411266371043030157140406436041410022112772657526072:738650815004800928180353447616604081385712493 6634231524643513651503767037055346774274137126720042457443316641113364311403554305571576144:2575700200847046106294956208580855124821837518 3316232371200363201604712126617475477736053754627422443553621063150372654272545642016630040:1821052544876276545493475761684418475931797227 6017306542422055431236354247004050231735351517367071750665541611454313422257631720635307076:2453019882190532802864589969523250184573741823 1246656011237324235671672720325443333314553761673200342665257571160021302336717511746056550:1116537510000145152164065092294253777705633470 5713130617667670730163614243010025247162161700736056706073625737500767306345235210002011267:2390215600666113703240809485421490856724578509 2540317522051030042272407730006027363042726235717370210677720530344615716706144620566220743:1593837357465004972604672769462183866421712485 6272242006367514176567730645536601771231726063532754313552710636322310537747121427665126162:2504444450645195319894488704814924155922422708 5705365225014523567006545641706707636147436474720422361011536466626473301121235025330366005:2388590635712725799810097550682175471716061847 3426127653403300004615372053004703264302304624561755714672265044522212342317520313130157405:1850980187199014835693583020556275521611412487 7073332007150527754511014201341354231044514074510206702656205220267206703756150525536714543:2659573651386727014043773969159040386784721976 60472347653030145344512313735707017653731753556427515732367212342145235222355133460304406676:7776396829703982213342415500527470023801227695 13667716633333011711376644104545266552373675455017644144431744263652500776007347621054315416:3696987507868130694175888271722925908922765840 70002551267337562266240302556741545044054645113233442703106542106133500015017077352630274006:8366752731337144175674255166508426363036500917 35710112702526361247714724616742676132411422262517222605213332557730640510334274223760337721:5975793897259707303510377136191754186936987085 14730436331111510636452510261236755541600674736424577747725534350640176774202062343573140440:3838025056081774804917509004208733712704563856 26510071156403154401004043375131517530701374245600002716225244323477374674501611453302657560:5148793174754949738871963306688134599566400500 15235435675322670455532022542513025054042010222775741561506000021403433102441652144700447151:3903259621819008653621563361517173738328051149 37055041731627056240160577022104703722017037202055243414603146503454056440560340712165626172:6087285251376598356243085042523146097527369926 42243154525335676126170516275043737376552123267370227513332105042706247036716374131620406710:6499473403694769803390471016851740444339584973 61463000174554455552651543265231526625062243226031606271662454133626742662003224162505762432:7839834193052456103241518619605852279332190410 704075127150427262722377101463764143742133705750714562732255360636502055513471623726467711302:26534414015584125251070405052523751389939532831 776432653755506057733057531557211715143135624735707511003425722024045100076610500345210772202:27864541154584011160220457698801654382165514656 154177035664714555407712046305026614537624235067111546620717325342641110633140403615354003511:12416804567388284194477379410675944286285847601 272323425506670357753643456343467265122323457601137532355207366741614241352217132305705451302:16502224865352864223575677932782416945331481063 716105274773053035552343347056771017271745116656447642676047376735677740672141115551115340142:26760143399710193547622382309000095210273056534 506536641753324322207301652476302727120370061346777667672236607353041412344776640134315245467:22506368915338705124753059956556940256034918370 110604670131160750646211716745162615563321223700600054642467567040046445353764446502155551740:10516875492804921033554241248352347974992270516 527074674266275124144611406532341664261770516561602142334255737061777337547515006067743353071:22958106939952064003771234037831501189035390303 664171563676406024005440150017735361525064320505376704704032335214726530532644042065122603004:25771526219384175695999212545750759716591871666 510256503410522432660514531452776617216677721601277712144134125510300134133233301473050671772:22588857948345295499053250818891514321888910171 2375505677306650445314530746070070427454577514602746175364125361317154225013571161641035442765:48739159587611381435894238071178852630124649329 6546072304026003557344463652326325005021141626067656323567307556742577626053164630257066361074:80907801255663866652243156013783855666462541746 6250303044513247543512600152642402306362255414514304673423626662765745644104033425502420563276:79058858102765736465304138097884374062833408222 2750604510702136172171656032375240600261277364647055440717514337242533575710626422736301725713:52446205875183537171330435602096646639350011671 4043017523225561765632300263365507615333120561660162400052542173160300423433532141171747042607:63584727122364547941357188420993030893431761835 4670337102507464543735032022757372706124716121745517152060121330221116542015607137236402540063:68339864665562987517512045894044194255813265874 6455334665161203672562733341606753427702010357715366073336231456046577735770771223204454501757:80345097331207482162006333140098207029893794353 5733005700562273363003775157137327416333520712425353411000231465137620312136200231235446276330:75716614428817889156526420320897789502082165849 1630505326751271264152407667740153177310730617564157602260707215627341671776111352752544705060:40379516177775969783145893024103502906431068738 5406267300654574351206062355305307100464320043151232610247037153324232437347736235016310620326:73527323497150189352383681792647054271439864380 74022407262144463502002623033305322313742475650175525744021507613257511115742410704704546645111:272070592424364128486767341409268777797114432295 42620524672675470747704233007767206710470211232217543512526776753305214162147135534703130161274:206447389600051544821529267597236260299078661302 37123432620771565043070331636653512456111716661351534501146167351517755767442563346442021761436:192674421293464808068500016569329563550081269686 25562447067206652154663620630552041266313141652212032604710273330420444644362160445171100661357:159882604016843096183184290460755955829040236883 21476176444530334530104620004023012236605740644444731650752722172452372124046047017115214174333:146547522819494750168934874414246413730892789621 50163052670562266623235741626252153373255332100463037752651205361002634611666112707422575451110:223971097846490600764190132185075259452833414332 33151431431027017244157340267624460503572175231622667560264006422023353620641436564033245472225:182075345478258031078910206036266524630029039059 41453542415665647110722216621433661402475416104610653230172330716146442122753727756324503224457:203601430288850493405885236367471267233735493891 73635077230054465031364573675251716655115733345540173376056611044425222622407526173336001723145:271357839816826491907902936595615163147810061359 61714162551133024225631373264272224576001676652557004550640612107215400772770121612504573150105:248423353473728440098006281854230303663091583542 445613237053151003347211764647752411145632545250660705416055617665023571273340726457131601064100:667542685566362118121664171785879528509923848566 736230475677377616561751304645531300637655206674073223323734726562475475557164275653203013642500:858038737865242082195822496906085981726713096974 142367144007124367650416430566534043142115056435771200002753066101727656455005020316647344272773:377315708667323268721555697317155434549343540728 700460576235714127565015404537221151352422300443377474270350075522076516503517676266670631364131:836935228220030255146938378938205208609471730023 541210137126222716663167273164264342567007203760112577333676440704654773707175076631366064455647:735669856067395707361037429671149763532216376760 467014151662076406112424505505200256420454655623200404357577246250766200461323753240432653122654:683384336711104614495257272584567841829558041357 563600076053343061531574705305073551614627463277413456174275346630223456567504004162530753123100:750733025817662467867989951517786134213779990285 641310061741030476450204267733675022554305264035557413462517540316250306751640242226121111612007:800818370007226093258919654471642813639368664142 464720673646733242175135440534652357176613135015505554271555324256663600063021617471457566725670:681704242063032230750855719643023165886445895931 430160672252554453230177303313137600137476342414262401474641152426175655260242065731433461543406:655866352432074726287748890506052731616778724240 3550663314770446246130401147045037613750035626672554310631515277427571313127361165175424076276762:1884320385383134957430184769624515875027454287930 6023244014306675735103201732561511040306320337245122701443653710317624363115022771127750665675105:2454229821004275005935392278180162207616455829563 5654020240162322104167273033552133402425651070701573247252406734545267620653026231541473144222352:2377818378296021603900574327964140430292660434036 3034016741265144547360555766025650403615647257343254700703237515300057446421501603112021362460437:1741842915209389525322583923335828876839831340859 4303337752326354366130535530117722257036525372143372441562145441026006742112526114004435167314710:2074448782767690884725151588637206534868518548353 2576414147727575006766640406354717164453463252060227161631373413335522006323746026606045427151372:1605121225243618478631509730121469735554052089936 4010256145400645761665665143641052124441646005770114371100611602663564764770525435141355705702457:2002562394883276979405188740724424566821686776459 1667036670144427131011153632474505766720474756274424555664106041462473362307755743652355647050016:1291137742514108031839582985435079975382407293109 3642736557545763564045101103272614425444622315251356713366173111651362342533257262675746242470562:1908595441036618311047238900579733200498862896596 4217505400016621727741672032635545467242553377235514041303403644625047160404756152567064537640257:2053656592523838131420967786785877185445009078637 74633427344261463470532267572033545066035211374053663733413147453077730141560201530510702352766325:8639064031725975317696150746942502784313941441161 22731351051412440004366022272626322576001673700060323642100265001135350570476662134444160676224545:4767740665285019464170539797771305683681696013173 10411106712610674314270717577542170202057243121451221150520563413371571516375264335065237705522653:3226624662493404161247198375130704754284847587198 11654471134102701616653514256351642024314653110227563220661311067467052623236327610163656773313276:3413864545365369591944372139351247314619170676451 45537165243351717257602463570506407405616737650344045057734175536244021575472762373633212562414234:6748123090412008575071258258907526741127710935998 64235000672127744326364267026714645707101553673340145265005311124634024561502616025100327605346215:8014674083961726782448837141481255962349430252795 66731440467321344125573102627667573065657073246433203764555144332702202005715167575535554250522743:8168931415266096119531583524920425977071516515469 77236715376475672473624625035440443153571752420276124156111136274772443501224320561157102076374202:8788442147302084418132392016061481920074057576786 44560031465453256704502015413174602035167404352656434436514415261142101732564012766142453424002400:6675330064158120466571509843713535516437771011652 44104117130263044724514722646764261750501211715155140575723050420267624137453450423061467544750230:6641093067429716778378801338453220466292353380156 570142244212027762277513106770640003511043777570530316003177011706255077102734655320474033637146361:23877651564004944292383198006293949975683275838874 700454430704256716730664653665247753473262370464774360122431700550627151264737603663273755311025126:26466099650387790314817209424679652845594004543245 414413613327442024035472264756731267757137243712565472021214006624561740532705443321715176361545106:20357151405033122267051075353343540773384386655555 576775700262550770752006134710763577227362671210405765702206614011417057361034127521616213453564645:24016154984979397628937430640358398266558272272778 654706101744354034776543532514523470201227754130204664715400115277650302123173474413011763566022660:25587225362363032792137013650350102271498326176731 463465175544317410521434171613744404104245065076566060504464217125230201046375077342600651015616111:21528241348152835368923949620237931855030463518811 305170754356410153045676247234123031534161155064152060144201302431231742754625362534645613502267027:17469137195534590942068288558048088856428693035142 506167453777725554405662020650732137770652474327626273375160710613463157301012126572066122440604574:22498165564723839377403607349647915851217131666156 433614346076630263656246034012545702600171314373701557604525274510603560131425376123664306655062361:20823408608501881473525041558822347909647273764594 335401110357760617715042531536753510524360531300560067306206145737405473036500025260664330360770434:18313959439666797998405185611869158967469820752768 2111216651371020776361466417724662727007652164557625204601350065113136203147577527160544141163207073:45947977663560131668576160357468318784265530172834 4334543565406743460640414410101031362046473247400122164110777672744154236024336426703026202234631771:65837250591186927697757963230442718455064958286928 2250021575627401302475167646237142665462723361012551377424215247037061025722417316425401410163057216:47434392329062267670609034492458498194802102441949 2256740046476750115552250161261610377711657054231353450142101077306071741215235103422410071136726123:47505158103902255253593425733672201864846855890325 1654260032360061260143762262772355630426421353146070334714464102464056356024614601361355615777724653:40672595594085967556356133846396114826936208528496 3130423544023357021066670104363166646654511551047065145747601320643331433013616561513100244064751257:55950188060661217236543394883177668472279963515815 2574702202657114562651700147350431320236072451723653063675450024207225463251505127413322430467226642:50741523456210048666888572133571866458158317328368 3626722463436436461350002337430375634157571213267056217543502542574110241516155434331505563623705313:60222275475412222764194982536261056830993769991989 2726573157001503106415737373536575433147467505335516517074371054543615236753305266255247444774651456:52216598481723252770684573452752636809152318164472 3770321060301037661677124763056634062551256551316063272360064320773726163207052525013740731063644066:61402940160069189163051308648575553177365592711427 Math-BigInt-2.005003/xt/author/lib-arithmetic-unary-_sqrt.t0000644403072340010010000000734514536617520023257 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 14389; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_sqrt'); my @data; # Small numbers. for (my $x = 0; $x <= 2500 ; ++ $x) { push @data, [ $x, int sqrt $x ]; } # Powers of ten and nearby cases, e.g., # # 9999 ** (1/2) => 99 # 10000 ** (1/2) => 100 # 10001 ** (1/2) => 100 { my $max = 100; my $entry; for (my $e = 1 ; $e <= int($max / 2); ++ $e) { $entry = [ ("9" x ($e * 2)), "9" x $e ]; push @data, $entry if length("@$entry") < $max; $entry = [ "1" . ("0" x ($e * 2)), "1" . ("0" x $e) ]; push @data, $entry if length("@$entry") < $max; $entry = [ "1" . ("0" x ($e * 2 - 1)) . "1", "1" . ("0" x $e) ]; push @data, $entry if length("@$entry") < $max; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/; push @data, [ /^(\d+):(\d+)$/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_sqrt(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sqrt() in list context: $test", sub { plan tests => 6, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_sqrt(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_sqrt() in scalar context: $test", sub { plan tests => 5, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); is(ref($x), $REF, "'$test' first input arg is still a $REF"); ok($LIB->_str($x) eq $out0 || $LIB->_str($x) eq $in0, "'$test' input arg has the correct value"); }; } Math-BigInt-2.005003/xt/author/lib-bitwise-_and.dat0000644403072340010010000057140414505066136021515 0ustar OSPJADomain Users444:900:388 416:140:128 890:617:616 566:1144:48 308:5543:292 713:6613:193 594:13851:530 790:44486:262 716:33720:648 218:363375:74 804:440930:544 601:242176:512 170:4833306:10 419:1617828:416 647:7404603:3 204:69711089:192 819:63583176:768 317:10984278:276 620:963505087:556 498:581348333:480 190:417467810:162 402:7998844295:386 772:4726801214:772 512:1086721801:512 957:38860611321:697 864:60575917866:800 825:84769233594:568 867:362209375667:291 895:736500973154:610 296:865092264745:296 342:1687865320196:260 974:5097470514950:774 870:2765743179146:258 552:78919956994048:0 399:84317151923390:142 768:78362590964833:0 249:163554015806710:240 707:965318511451159:3 407:617848143092033:257 794:9332237930668380:280 282:5864621929927953:272 778:9701718312943872:256 206:32063914601327528:136 960:83832152568584227:0 407:22421013154149871:391 445:863505578193241645:45 173:138075968358609197:45 106:734215952437356659:98 332:1761890411960243747:0 682:2843858663669566411:650 923:1772424660528739241:905 860:10038713660155976772:68 320:16331906448091771868:320 178:76107500115733668093:176 615:559911093398746910326:614 585:999446155173982459012:0 786:723437567934081574299:274 792:5162698714567582118789:768 442:9104437662376244162156:40 622:5530669657053457960896:576 495:66272309672273134794482:226 346:81591679714646518926770:274 511:31773749403617749036601:57 890:676996717829328570941154:610 873:872409933330665740680210:0 167:642333322313125039315965:165 657:7243147145948191027628148:16 892:6791963119483090097228688:784 557:9620707595346433665274652:524 824:928:800 594:764:592 697:700:696 331:3903:267 750:5156:36 843:1176:8 605:73261:525 296:45336:264 711:42167:135 318:622277:4 797:280891:281 919:295380:404 326:4358024:256 662:7255102:22 953:2957006:648 666:76099990:146 897:17015442:640 927:15201904:528 138:583202618:10 383:346696668:348 549:767026102:548 582:2001232546:514 453:7527435796:4 828:6228479892:788 837:63373498846:324 129:71929982332:0 181:94656511732:180 674:672905493100:544 556:530663273421:524 634:615101332656:48 371:1635996418469:289 280:9220505298721:256 606:6608515483341:588 892:90423682713680:80 377:58941986778473:361 313:68316210404450:32 778:660948485302122:778 185:104259553417727:185 172:333933907242959:140 912:8850598180243812:256 686:4501219345759580:12 337:4681713147775961:337 104:11440297254617113:8 439:95754212337359973:37 532:41732395873318124:4 526:347568839119166093:524 153:290992454000600751:137 967:550249884164197067:707 918:5046968465109969438:534 159:8390813979621914536:136 970:6033808600841433713:576 165:56359723635588865744:128 996:68073659579243490150:868 151:73818722542717663103:23 918:674379570415805456563:146 504:474714627426116267151:136 934:358351219306483128316:932 669:6063377269061209324542:668 974:4257075550071339603350:390 996:3161846502101142398927:964 726:57484197793761252394201:208 751:22443500489459738513634:226 619:15955013470598427297602:578 706:765275429658440494208664:640 749:187771915636887732960003:513 209:249611980330042574799684:64 206:2348594833909688510410205:204 312:8504441806511890175243002:56 751:4397328105384112352845915:75 410:930:386 247:152:144 656:872:512 682:8255:42 181:8423:165 106:2756:64 290:88791:2 194:17831:130 235:70555:139 517:659195:513 432:953389:32 718:220080:640 774:2911213:772 109:9751711:13 470:4462342:262 495:27951349:229 539:54556988:24 541:27420320:512 549:554743628:516 964:894002897:704 568:316463191:16 975:3700260320:448 230:6434089602:130 115:4436041166:66 404:39904920732:148 297:55711430830:40 292:33941586935:292 385:117944682238:128 642:319120858658:514 316:664339206777:56 387:9142791103921:385 734:6963573069027:194 128:5401326433648:0 118:89656293441062:38 199:32399133767030:70 920:48781660115390:408 414:104319307811195:282 239:605006375162253:141 656:181889358567569:144 644:7110066158719083:0 803:1887952973688808:800 342:1447585693437082:18 253:21556841304781527:213 330:24358394486498057:264 758:20449340871878650:754 345:887286212746109434:344 528:194946007868428274:528 858:728334972267791794:274 912:5311376312794145905:16 612:7934908628982077594:0 103:7998435438268598230:70 105:79483064696397561813:65 867:70153151508842689860:320 941:72539032021771199392:928 846:151369764220701155888:512 654:910499608653066753206:134 487:573844590594910441106:130 249:7971596692841147855903:25 671:5434222642750106027203:131 626:7393377305461175967120:16 519:35968472097172482371883:3 396:78680259043623857530564:132 620:15862056131305231242254:12 447:569467561864159761781531:283 981:485194142493931795774072:592 885:852863360513849876672996:356 892:5720372815222898848154704:80 953:9588480309717896634961680:784 385:5499029906715098102071914:0 3509:213:149 9966:965:708 7100:995:928 8908:8092:652 2185:3928:2056 8433:4221:113 5736:14618:4104 6944:85350:2336 1176:56326:1024 2949:939511:389 2078:118708:2068 6488:389081:2392 5725:7590306:4096 6012:8889352:1032 2138:5378143:90 4258:87190820:32 2596:78589714:2560 3908:22047847:3140 7190:949051248:7184 9194:534304641:896 6666:809477260:8 6671:2554065156:4100 1948:1459033201:1040 6399:5341468602:4282 6893:39997507930:2120 5183:60122553711:5167 7824:72769629813:3600 5668:164764649436:1540 9600:888916781103:8192 4492:756337508934:4 5973:4681609257912:784 7535:5787623827599:2063 7803:1742683758973:121 8141:26404209836704:640 9732:70139027605472:1536 5620:69004792763547:5264 9771:964103197660470:1058 8731:793344515233155:3 6891:884572773864020:4672 2541:7670245121840864:224 6044:4467430049239322:4376 5001:9717514527630572:136 9618:44277313822913149:8208 2517:45104528770817569:2049 8197:66464152246813003:1 5382:764213223598034609:1024 2963:611118650351727581:913 2128:796767028616707006:2064 1799:2861234198245504553:1537 6136:6495948162758736328:4552 4886:6975799261289413163:4610 4991:96406589599819707182:4910 9960:11854181578220105421:9928 8155:88831639530332804168:5192 8460:939192764704165938663:260 6662:516698564118035532632:2560 2665:348693658980124211368:2088 8271:2240106436373994582057:8201 4613:9815869061744524085626:0 5057:7657475154420045124938:4416 1726:73070267757258507410580:1172 8700:41381789082664121216734:8412 3916:70178313781374401530170:2312 4988:602639578694784584966230:84 2581:251206920558569104291364:516 5875:653279618886288897508675:1091 9023:1800265208259928962796666:58 5402:6765371801810932690107376:4368 5719:8500106343716365230700674:4098 7947:499:259 6720:928:512 4244:356:4 2119:4148:4 6033:5415:5377 7597:3383:3365 4595:69095:483 7487:47667:6195 6758:83905:576 9345:499011:1025 3136:263455:1024 6157:273791:2061 5799:1131397:645 5739:2619969:4673 5103:9732425:329 8795:59363093:529 6436:99348608:4096 1783:10542751:1687 6016:633851038:1152 5983:273372719:5647 8565:835996948:276 2296:6689398509:2280 4968:5604907419:4360 7010:5483985483:6722 8223:46983677847:23 1034:57875373385:1032 5939:17011186028:4384 4316:598075109969:4176 1508:973092486763:1120 4925:920876226318:4876 1281:1453848854745:1 7704:7164420890275:7680 8235:6738506857075:8227 1264:25490649295534:160 4415:78322413148292:4100 7220:11431886226829:1028 4213:199015557745588:52 7778:345835144206877:6656 3929:896291002318134:3344 7265:9521646351806918:4160 5030:3356024933072025:4224 7329:2527434053055190:4224 2882:23919757925612014:2370 1221:85370486979998585:65 6831:77188411570201668:4 5725:968998523875369539:577 5486:400389613057796009:1320 4618:154168900185573575:2 7011:6541844022307768957:2657 9634:2383444422180216019:1154 9284:7735626677931714006:9284 7447:75092284085147485891:1027 1109:23658839772258116132:4 8968:44787718420834964096:512 3770:355199107340595639143:546 1347:578881113901597653687:3 7283:883823131542919058130:4178 3964:7488750707177445993349:2820 1239:3806954428014855172747:131 1022:7223901517929540608335:334 1695:89430124192304623246986:1674 9104:52189827280161990862466:8832 8715:78782510578057175922927:8203 5602:456667282381711345393028:5504 5413:910681315119987084954145:33 4757:782799263381300494786765:133 2692:9225871815094208362743279:132 8192:6885276044786805694263729:8192 5698:5046699975155755138224006:1538 9715:783:259 9296:209:80 4559:517:5 8840:9288:8200 3392:4642:0 9628:6521:280 3833:14472:2184 2968:89413:2304 2380:49293:12 3214:499283:3074 6253:832469:4165 5594:617490:1042 2029:8113352:1224 6579:8702304:2336 1280:5885034:1024 3911:65128703:2119 7804:51399466:2600 9051:29622522:90 5141:200702144:4096 7068:988709047:148 4333:723849753:4105 5459:5941025161:4353 4516:3196545139:32 5360:1649894680:1040 3328:31113964731:3072 5674:32928359173:512 3330:81323424153:2304 1491:467919095944:128 9589:968956568748:9252 8617:740550527310:264 8198:3403330199996:8196 1733:5666668244126:1156 5364:7206339809727:4276 7180:88569903139687:2052 6528:85376148971545:0 5049:76110592744492:4136 1993:384211925335017:969 9975:154877504350502:8230 5878:969599883050533:5668 5574:2299069788834409:64 9251:5330868324690046:8226 9175:7756057264056580:8452 8846:53252385154405856:128 6457:77567992522838224:4112 6685:20261716486976942:4108 1716:539801472185574058:672 4667:180075647084519789:41 8857:740842719054288823:657 3082:4426268829592814262:2 9903:2595770174450055733:8741 4480:7454686758236732485:4096 4631:69833745888408088107:515 4139:14678945844222393747:4099 2658:44874499037228847446:66 4314:300983055000921188965:64 4168:904760364918677613169:64 4034:752989342941063605055:2818 2723:1319024496802987058071:643 6864:3556823356809905325956:640 2145:1530134167227912914164:96 9466:10080302196564701748791:1074 6780:46258154206259620324755:16 2054:10599833883072996118034:2050 3035:245928583804472850064573:153 3946:604158482387206058803622:290 8075:795420366500573083150959:2571 2896:9798098373766718537457417:2816 4808:1509735186063456550547584:4224 8621:4655867400676458038341327:8333 36557:187:137 13721:399:393 56308:256:256 73958:7448:0 95396:7633:5248 12602:7564:4360 49035:12134:12034 92416:16300:10496 13275:28178:8722 35442:402536:96 25175:155106:16450 37765:901127:32773 66658:6858603:1122 48524:6835080:2440 67796:8661599:2132 25161:87601263:8265 36444:95348382:34332 70945:83633028:256 49282:178603977:16512 89579:507184667:66571 89996:985950310:18436 92056:1414951470:25096 54500:8172195491:50336 56846:4465634116:2564 58715:61825582108:33816 84122:93795860403:67730 59025:47336345603:16385 26788:899824353032:26624 30827:991624402893:4169 17622:835795974147:16386 20503:1724180615441:20497 18540:8579041699506:32 27654:7374444274826:9218 82985:50694636195023:17417 69934:55257638420929:256 51385:98388068859025:51345 29038:166410517744761:104 96226:396143181592667:28738 80011:698401113949571:131 35451:2396513263771399:2563 13388:5355195680153985:8192 21048:5136074825099284:16400 91568:96434587576316789:8496 19472:96784444676530172:19472 54244:89157224795602249:53568 72874:213998188543916754:6274 85398:906717260123699066:83218 63153:924781457591257681:16913 29333:1606390294170568179:145 50138:5204749834309909349:33600 40515:7628124601164507412:2048 11908:45325089087690027014:8196 46634:37723599147050320077:32776 87365:19284152099673799438:20740 47789:392326876295248867753:45225 22155:376511401150780141926:20482 94394:424370719724321613824:73728 30091:2430103164699965850741:1025 54592:2476833319477027367671:16448 46826:9538045119784980116116:45696 61702:32098985126439640297200:57344 55133:91576715838974147770300:5916 85982:11166731294089257827906:3650 71667:165332967119356799879549:369 10367:641421494702714729132003:10339 64645:822372881543178881721931:58369 93170:8400510588042679316260282:8626 49021:6482855818311937078068595:1393 97757:6275331370784571527801187:10561 25278:725:660 69340:550:516 16680:905:264 85387:2731:2187 42917:3725:1669 40607:8526:14 67939:26091:355 44789:22831:2085 69166:47623:2566 74166:747298:74018 78845:443870:476 65627:384175:65547 84973:9467042:16544 36326:4453936:33824 87780:2049782:83684 58694:25993186:34114 30968:95545566:26840 19016:80990630:16384 91282:916907291:25618 76015:621382167:67591 86954:323923611:650 39574:4635576918:2582 58540:3654492870:8324 33772:1026008557:33260 62829:13176737637:1381 91534:80719578645:66564 85973:50991581537:84289 96474:776741288910:96458 39312:685346666578:6160 61877:819353270158:45444 78571:6751439558012:4200 78480:2695618981178:73744 29057:4274193767347:4481 13815:62318429925197:9541 26155:89496864326122:42 79877:84117947377490:73728 16729:810978983605210:16728 91838:461561243642570:8842 41157:416243685494035:32769 53808:7852144783951593:33312 11291:7510818897432578:2 10946:7330889644981864:10816 41627:12577173416722802:18 36136:26457076177989076:3328 59037:91046357039232090:42008 99990:594129855434222194:530 18914:617883505738343773:16704 90981:537341018913378006:580 72104:8037198380053918349:69768 48459:6860788829561558358:5442 79699:2933236671215509615:73795 19187:82419487268439507665:17105 41204:48863852319825029340:8404 11307:49870937009879403058:2082 59443:538461792826100808179:59443 90549:330588521441530845834:65664 57334:613238311053158914524:6612 66266:1855233129422316408504:664 85617:6310586748471786474300:2608 76864:5571598560103295093465:2112 70562:57334470076940770465730:70530 27429:27283780786061526312930:8992 99893:38929300403326290317376:65536 70670:904215050078828390374695:70662 65474:112954352212830648116247:41986 25649:945328072632226533948393:8225 52251:6056224601297956426405056:50176 22710:3995633577839900763591820:4228 85704:8037765909537561611494253:16968 87262:407:150 59768:531:16 93008:537:528 10949:2322:2048 56322:5710:5122 82745:9086:824 97300:85782:85012 42961:61202:42768 95224:66440:66440 27037:786006:26644 58895:845408:58880 10724:707214:2180 65158:5671015:34822 83912:9001214:82120 76692:7752952:2192 50048:79151260:49280 65000:87556745:136 54047:18136348:37148 57244:602739967:5276 33050:229362617:33048 83469:931152482:16896 46571:2683024110:45290 36862:4027472521:2696 67317:5444028799:65653 93454:37705120608:26880 68344:43625701365:68336 46258:58984832432:5296 56072:962682695896:4104 45470:642729746508:40972 27019:567503467688:8328 57710:2646005172349:49260 55606:3215805801507:16418 61254:7366501444646:44038 49847:70071417158816:32928 81802:88342082732126:65546 39357:39506535614425:33177 60399:946466126826175:2735 79706:645162694754359:18 51804:953924752051513:2072 63353:9012758873230686:50520 44776:6645555921669410:35872 18152:7555165024977487:584 85816:50095501087430009:83256 92965:13871641825034181:11013 78700:52718850816036525:66092 52628:179368833630242112:34048 20087:332353124684405743:2663 58502:468997766741134704:33792 51525:8615672642173809801:1 94720:2438819839367798765:86528 41601:7272416646262501237:8705 12505:11610138560655787358:88 24445:51565362705994406688:23328 59190:93499569569191166227:274 64563:932125010762564707803:9235 18752:460734605835241842097:16640 95345:286579189870800413241:8241 93647:9039066392468497696250:67018 85913:3361926379338130426987:3081 13141:1380580092266839229802:320 11863:92464951928582512763086:8262 23725:84583529935455577631931:19625 38562:17028094126635232530906:4226 64683:586912549135385880628141:2217 80307:609765169818460988257571:12579 47714:609672091804657339853636:43584 31287:7661688203944520747441809:23057 99929:2586662871971483966349868:98824 34225:1360493494838243594219909:385 135300:827:0 993503:367:79 180136:848:768 932426:1391:74 956592:2831:2048 589622:3111:3110 543202:22204:16544 706197:33369:33297 873940:44962:1408 166365:653886:34844 427752:476584:394408 188374:230329:164752 129148:8747788:96268 926368:7018065:655872 427356:8410971:1368 548279:24908595:528691 244816:98071890:13392 241272:75274397:34840 602178:340353221:598080 512929:965353143:135841 105009:141962637:2049 735347:2988897151:143475 649028:7082901610:557120 249025:3859942361:133313 312167:78544279074:33314 371388:89366674405:76452 100120:47165151642:65816 688344:623239171032:131288 598848:615570419790:598080 430089:695308788879:131081 524328:9553622985600:524288 879117:9383623484966:614916 768836:9886070884287:656132 944786:93800364038097:17040 536623:78331915542918:8198 895710:48953081917537:827456 725583:496685661031161:585 257968:517540119525794:207264 692070:685477335404807:262 602308:1370775749942277:4100 833556:7432141367677231:266244 215257:3284457679770016:16512 875197:71094428097125224:858664 642759:45843427907247408:35840 128892:42375401573937137:92016 788757:923692191720312502:526356 753196:280149192724197972:12804 591935:902449610114111470:524334 174937:1457240614119823223:131921 212868:5378624825762702990:140932 796415:4860925085854974614:524950 630047:86283522571310824983:72727 401028:41118418440764944196:134660 973235:47591471735381832275:659475 379849:869164361771866322933:50113 617635:567454585716772039754:93186 398973:676176194941136978026:104 860327:5685575687294595701024:589856 173868:7556697011025774755786:42760 694251:3127447350398383596797:34025 671101:71679116870997164325207:145749 910137:77496686476497405845133:360969 665551:13353241900228819379357:9357 739996:444780996321430258211384:150040 862435:283738723948733576621465:338049 369798:865625141687716909868700:304260 935045:1947772280085134444284893:671877 657658:8105056345610832871504682:2090 652649:2759026672826573212821483:75113 448901:316:260 197382:912:768 265776:651:512 534060:4836:548 468079:2227:35 474467:7118:6466 974800:89783:24208 911550:87227:82106 181057:70536:768 946601:107704:8360 999450:394576:393232 967852:932346:917672 603012:3616662:74628 194295:7844456:176736 147204:6205973:143876 999250:57469571:797186 953940:59996573:133140 175737:30900614:163840 986905:876118876:525080 725980:729578681:528536 866765:877274563:532929 517018:3764364175:500618 642399:7234235442:101394 971927:8703662198:413718 927011:38388927416:524576 296217:69823488576:294912 197403:17933067521:257 417555:908264014655:787 599291:522032852632:74904 167459:346516497820:132096 128100:3076029156764:1028 242914:6932436656400:40960 847628:6522577149833:315144 228954:62211513773876:93712 556185:40940155839122:8336 248518:66075749505785:248512 564844:588883048865669:7684 389926:798091254624411:61442 780410:763539320489536:540736 356827:3265814810505622:274834 844970:5920316673124676:24576 215675:4587210268510138:570 437353:38801346976068381:40969 242024:70729037647869284:143712 688981:40141602504370722:557568 941066:441102861133841145:655368 453013:621410367829440170:450688 144857:949341583031596884:144720 854152:1980306777915841895:526336 488424:6684973048370442319:405576 339410:5941832305447481926:73794 273507:45164365023124421327:10307 224965:98907909161080373018:11776 226647:15887188195457324480:218432 264418:207030916971121955637:262176 250852:410637925701621511490:119104 783027:119047220449531600183:200755 277048:4178862740797081099823:6696 488507:3221726967417122234692:401408 633176:4220914940986843263277:565512 342596:99203456083424610781227:2048 729559:39033624633933943801985:129 780868:79536644934340385007119:614916 533832:285094910446991112572782:525640 353996:778937302020016781006901:262148 846326:701492206948769989036399:297318 805430:3167093441245071299620628:526868 758006:5854849895259116406954799:102438 744936:2589939942724914595406255:655784 316650:584:72 280161:990:576 620678:906:130 232536:8812:72 841631:8639:415 330038:2482:2354 947338:48945:13312 967091:55879:49155 204345:40612:7712 140522:805769:136 149332:384025:17424 787528:720211:525376 484860:7618667:278632 604730:4348054:6162 145674:4693954:137474 596629:99134752:526336 470830:48625434:337674 927279:97517642:10 267863:746110697:5697 763566:384258900:197124 543370:397647277:2184 740194:8728508184:148224 674345:4664110287:2057 410278:4220204030:131750 622789:44090475543:589829 961764:76008461090:262176 131801:34577187772:131736 721606:614268419813:708 158650:843072196351:19130 462736:139635371106:134144 514328:6656615139258:409880 812913:4513603732831:804177 448903:6133863790034:299394 163734:66882248034982:150150 701432:29809235069161:655592 988670:11244943576032:917984 393557:438815102508692:393236 490367:342275706205715:143891 734318:900366019173541:594980 467085:4464695995887868:336012 844151:8314374720484369:811025 162915:9107523528581444:24640 151070:12127115974761573:150532 931322:96413270453051514:794746 130005:61853148427100610:41408 321120:805166404119293117:58400 649069:518696595799235382:82724 484066:465896764193077703:221378 295349:6730623403048976120:176 927413:6612294936173035083:271873 194722:3334261378098180315:45186 582967:47541876521945452850:573746 732141:87317550112113963740:533196 896359:30875681572847465012:368676 516905:305461471119117764522:115496 420086:954403216860006911989:2292 771852:922079492485573855043:608000 924513:8565151046210364342342:131136 350429:2284088119399963049775:268301 312006:2511831363414945376420:262276 912378:62320524196615344026763:581770 906446:48524843277077153560121:365576 413308:91805753632255163656269:149580 200334:615580035562518191459066:133770 960954:291193179532213103216486:295202 283381:176834539048718121729695:283285 937477:2626234420264483524737683:805377 969509:4021874345006790079802129:314113 631007:3506516820835751645193602:41090 3561162:643:642 7646663:434:386 3973042:218:146 1858301:8413:221 6093754:6926:6922 6328077:3827:3585 7213963:69557:897 9284231:44903:43527 2067099:83982:67594 2213481:937837:18025 2873849:757938:757936 3932247:625749:524373 2184569:2875151:2184457 4997302:2499172:262180 4282777:4935183:4278281 6683033:57509986:6653952 1757483:64130993:1212705 7542145:31458929:6292481 4760683:615055595:524395 1429628:302204568:81944 9758393:339546929:1311281 5557711:2298193350:5277126 1449316:6054229430:1316132 3362836:4380182324:1064980 7846632:78481664923:5712520 3516641:58322615834:272384 5265450:23021494611:1048578 5832126:988824652738:575874 7761721:651291957543:395553 3228739:550493397068:3145792 9077097:1103479752861:8421385 3609757:1077006212484:1184900 8976057:1313513415397:8397473 4478162:62448175872199:4477122 8131361:25126196990830:529184 2204395:37817691808178:8354 8706168:257150525599280:8407088 1511235:762363161776435:1179907 4119768:622164912413993:1612808 2021909:3371377348528742:150020 1894623:3897569046748233:313417 4181973:1447776121076486:2689796 8964872:38632947809048245:8962560 4196480:56056605973324782:4194432 2418069:79792657416165883:2130321 9875973:658207888332764795:406017 3048168:753640338303272314:2654312 9667900:909121757316220972:98348 9797400:3104553646147965551:8458760 8855547:7734443749178407090:268466 5101524:9783700308761695293:840724 4062119:62708286586584764603:331939 2342746:31700463191360974734:2273034 7723374:78914597930107594863:5556334 8204775:344856775921682989314:6619394 7996932:195605089945862006710:6948356 6408817:638676935083326816839:6406721 1633940:4360267088738171845697:1600512 7989757:7063072049322732146158:3787244 5316356:6860679444679009766520:1051648 9418407:85344811879296377482327:8561671 8578651:93189267180908033195955:42515 5500712:58664655820869273521211:5377064 6505012:135989934009897222402166:4407348 1309474:662462353690768160920856:69888 8632591:287999492441888289274361:8468745 1793338:1417009695022633393631999:528442 5615711:2128272450874917134739666:1122386 8103471:1800622306280180556266010:4203018 6651234:199:66 5729379:938:34 9991218:957:48 4096956:2154:40 8093593:9291:9225 7721351:4365:4357 8478865:33291:1 5650161:43472:8400 3632623:52668:19884 9696890:906848:120416 2928580:587785:567296 1611860:298326:34900 6782681:4975568:4418256 8250253:6828889:6824713 6433253:4762030:4204964 3839633:15329755:2654353 2565723:24480637:2425433 4862209:59310250:524288 9995466:206980583:1049794 2277720:796859339:2228552 8978701:408336004:4 6202393:4321589872:1450000 4318468:8873046245:4317188 9584306:9388315408:9572880 9157920:61434844347:8983584 7860984:94906554252:5706376 4083512:70425016017:2639376 4161369:265021843403:550729 7387440:584624427024:5279760 6049356:160145072209:4210752 6939035:6559842879317:573713 8428902:7363298037651:8424706 3570579:7741431899213:286721 4580737:95081620711136:9344 6842427:48207028115291:4735003 4665617:34142297907177:69889 3678922:672369145490472:1056776 1943867:388813544864871:1681443 7001364:404474620352503:5396 1195555:5420481140351210:8226 6337809:2079305666300710:33024 8129521:8262205778548605:8127345 3923385:79804635672772592:3169712 5901465:56553129948540543:3097 3694058:65310642162466156:2121064 4891150:192433464377298974:655374 8861639:538113242774453972:8468164 2716312:142163772366396913:4240 6184429:8796972419131769251:4325793 1046099:2591401698062100915:385043 1015661:9823427137624324711:473701 9968779:31349851069644743160:9437320 5258696:34948734340776786434:5257216 8240337:70289472330894467412:1876048 3622351:368234222036583852775:2490567 5841012:332950983993641801519:4718628 5864529:645210569946237848039:5326913 4259477:8678938615425851107502:4237444 1614362:7338336179449446406652:1048600 6244482:7822289124930835454561:2048 8212840:79484065192759837392141:7885064 4718416:88881028516417372937130:4446976 6609002:49656165492478780613545:294952 2576656:780446275302528697533466:16 2259196:831944508503965865453267:2105552 7935658:131870063068067989494019:6361090 4992897:5629556200794895526378878:4992256 6972509:6423957127798870314684513:65 7260126:2891257968664964166237364:4359316 7838039:454:326 7566960:376:112 7366327:682:674 9145528:7087:2216 9343351:2403:355 4045175:7243:6211 4989954:68665:1024 8053409:33119:32769 6374591:95214:82094 7154790:953092:788484 2326207:353016:90808 6460595:644036:36992 3487891:3440173:3422209 4636819:4474015:4472979 7184545:9899347:327681 6830602:67353001:14344 7252931:45785379:2793731 9638361:92026262:1053072 8661886:598777085:8390780 3290568:849830635:2236616 3235122:465178626:3149826 7049769:4470295058:6488576 1768665:3209130708:159952 2998673:2962543048:311680 5973672:53737444309:640 8486691:50745972384:8394272 3434095:72631540974:2376814 4383844:481919525575:24644 9084527:432288805637:692741 4819553:964007646549:4259905 6752765:6033702739240:2427176 5058761:7532950849126:4980800 2763831:8418818913434:2106386 2338171:78982741456220:2303320 8955066:16807823108473:8248 8240968:51700158965098:1844552 4555279:560308661541623:262663 6077993:760763701262227:570881 7984469:388702154859810:5833984 1521829:1441300971910730:1126400 1588395:5896317508180352:530560 3150484:2755934770040425:3146240 7279441:23789919604295624:3081024 5398967:51537439061865365:4350357 6179815:94651794726465557:393221 5703773:459199976587912061:4391005 2955421:371144834930345206:2883732 5949362:950905046460040391:4228226 2048326:2311782283884457765:1655044 3107940:3340082047822711288:2181216 2690548:4529971692806810981:68964 3235616:68985938243393701337:17664 5000828:25580515362874370046:788092 2926182:47291027716589165920:2098272 8059572:817081671457608361277:2678836 8746267:640639629658000585600:8745216 3898146:255284776281248065287:1794818 5947300:1384220528719141087980:4729508 8883166:3122597464139194863990:426326 7937993:6396807561366164513665:897 5902036:69347540050686883795263:1179668 9591657:39329282076455271940958:8405832 5062908:53681242712646682597779:278672 7433565:788973100063454056945541:2098437 1220700:962476610205677133324257:64 6485876:309832185822712087080154:4351056 1377925:3307578161873989240292403:1115137 2381802:4229990595977246451275124:5472 4711620:4700980178026238114333858:4260992 53884801:565:513 31204214:694:566 46820950:312:16 24804470:3984:3088 22169565:4629:533 94682271:3111:3079 37552949:16985:529 70308068:56319:53476 91143936:61495:45056 64284610:135412:192 23077796:477823:548 88468369:973844:313360 34397797:9434619:840801 84212120:3033273:280728 93412828:6931212:82188 58062440:85561141:17925664 26905312:53677835:17959424 35729177:86532152:2105368 45211315:180827802:42014354 24669215:282010830:4727822 16020166:546492628:9457860 67893289:8679065780:67110944 35590654:2998863837:35586524 63335225:2644679199:25299481 23715899:99787894332:20996152 18579271:31347239588:1075716 58447936:53691048543:3686464 88460295:984445318202:83969026 23786585:946599627074:19398720 92114280:293170710124:5506152 98824569:5575508092915:69329265 20182024:7456295856226:17932288 72719492:5189406936617:4295680 89103290:64828371006684:397464 22578537:23613538622259:1081633 18223916:43275663984479:1311500 10733646:501673549109409:10487808 32701826:549465195742307:29492226 65463565:823252112028099:27435265 36688795:7016522212305767:33932035 80117984:7507640927702478:75530432 80524713:6570536812341598:9216264 26535067:55476069301314907:1336347 80514999:30713708294413856:9211424 25954518:68154524857349779:25428114 84603922:781440792028899171:83944450 21978429:543641731688367362:5047552 75991431:555153415055283109:67568005 53712887:5810607026456974119:18027303 78729490:8188046896615985799:67178498 80441479:6709973743780384827:675843 67534550:65770430838817662923:403138 70465992:25505085651260531539:205120 71367974:25855626003356876078:71335206 23840435:300486758560979914463:21137043 67312628:518716256313636830664:6592 21977642:870416819240734118937:21581832 66652031:3944199533538094467588:58786308 17690084:2820018610953804721840:273568 78507566:9807196946701193123048:69796904 57989658:46769930166752596361579:33849354 39739954:51566623312441828830952:4219424 35756684:78622718236791274637508:33589380 59308777:699220743523615985871912:25208872 61517366:695596467000272153984441:11185200 72705393:929329707167387841685461:67462481 48714517:5439181670800147590824804:42091268 60872695:4966409797954574022947243:33558947 89679385:8865024042047772012440974:71328776 70501732:595:64 97808378:410:410 68547207:176:128 13745830:6998:6662 87904993:8452:0 79298735:6613:133 37463178:19036:8 87167696:92679:512 28561908:11060:308 73230600:691453:526344 41455394:899209:559104 12734481:847245:16385 33229576:3576224:3277056 52334327:5905819:1707155 66714471:3415966:3152646 66612331:99575539:32007267 57205427:17284505:16818321 58284775:80631299:4739587 55079119:445529591:34091207 16195097:716720108:11535880 91132782:328406694:16912934 41238082:1739116629:35655744 29653209:5693070164:21256272 37911677:1368562307:137217 52158279:41092750648:17931520 87824595:46318984494:1054722 84350481:15619434326:329232 27163029:568766821591:17068181 94485696:934628557147:69206080 12855982:399271711983:4194478 41455710:5532352565868:6852684 11732890:7700830256965:1792 77254070:4322193035363:75677730 23952147:23695956897906:17133586 69825889:18311753655471:25633 60880965:67352082803322:10512448 73731938:547668984774414:71307010 97500728:666753076537785:71804984 60508237:437708945597060:34799620 83542341:6061528029370949:16285765 50781927:7814357808136121:17047201 64340120:5142617571231118:25460872 48766363:83032101555017730:35657730 95756528:12318465585514954:86311104 14060440:95505880704576954:5376408 12314405:938500022440299057:545 52918737:175565283338284731:288913 42819049:685071127964925401:597449 14284762:8466481168103742924:5871048 29350468:9896281745952633464:11555392 44296351:7811520751906007466:10692746 84110443:20454709292487669126:222210 11193697:16948392651105671569:11176193 35698028:25131762447949425996:42316 50676007:148918685084290907244:50413604 50394749:577019093066012752942:16839724 22461466:270856515605494545230:17086474 27619562:7644153084791365645869:25505832 56800943:7083121846070991967878:33592966 25634179:6764252138505567541508:8716544 19996510:75953974803981276478344:16784136 94929614:39865291441861810675826:19398722 89758964:28276254378223796045898:88148032 61164704:876666439977901739084587:58984480 43810306:265597638507917262795313:42742272 30747326:340573095674920728369883:21039770 12561242:4731611430335305965919969:11799104 75664435:5358077669703253411619281:67141649 94570659:9498156385555084316699153:86116353 37318458:124:56 21109674:110:42 42261754:707:194 62093754:9547:8458 50405267:8499:275 72775421:7244:5196 85966743:19649:3201 17721597:36285:2237 44747312:31860:18480 79884075:816739:26147 35448741:310315:304161 84332448:314294:314272 60101739:9961804:9437256 38124276:6642432:4528640 57147966:9023811:524290 99485800:30427371:29362280 92934695:20446695:16912423 58460028:48214824:39584552 61717775:588128002:51125506 89864118:202769792:68289920 47621042:363368232:8422176 72119123:5813416361:12545 11961823:2116883220:2359572 80578893:3169031543:79790405 96054248:42093679331:79200992 52857551:51555514841:2263241 91415701:80417060243:20112529 85496814:777569765940:548 85748122:372933508070:68168066 37183146:532886171676:37031944 80359291:7254840705054:67108890 66400070:6961125302900:56894020 81913252:5570917713322:75515296 86345581:65822354186009:67110665 33830739:21792344562490:267026 97177515:25340835554952:92292744 63478811:318834073435000:58726424 75498113:877944575623479:75497473 19060679:305292487474175:37831 87437531:5165908921164186:70262938 34044760:8983649044084230:34025984 77269969:6106272889658972:1641040 68164485:65006761216457141:67115397 57676709:98059699505928342:55578756 78488450:69190372081438029:76054784 80377639:540459123652354755:13263363 86459475:415401980932123608:2310224 49964793:973743207676116323:49964129 72210914:6897736623033762864:81952 99846252:9087600163349734599:87162948 42961405:6555961215331626804:264500 14507607:17238269943677145807:610887 92706537:74465986637875891114:92439208 42485796:90432939395526474478:8914980 98225518:969326545564298176791:72927494 33841525:206998934894727946878:24692 85237061:235271072983933178856:68456768 51665442:9094043888910191827598:50338306 22059930:7667800763849860638119:22053250 85919483:3675730711712080690538:1377386 91820741:45957524227951786685737:69633 70085028:25094983531535736821679:278948 89796681:52813380197800779572184:71835720 80103482:472233593339880780379733:16 22781315:269294311075205527345731:6002691 63039191:199627760449530081489356:37789892 64645861:4274609465567345383955212:12601860 88190340:2603675220625888137370111:67144068 15052852:9254575154541865970258971:6361104 293496311:782:262 649033302:346:82 618176984:292:256 121069491:2024:1952 186574601:9251:9217 863453219:7269:33 160760714:24161:512 706120264:63734:34880 601699263:50751:575 650452231:637547:71683 436775625:859911:526849 937015230:500454:107174 152412142:8511590:98406 317182544:3559381:2507344 518810715:4510569:4472905 351193602:70002504:69992960 200359813:54260623:53556101 850662935:82951296:11539456 442696042:455013840:436339008 219741412:663698742:84425764 884735410:229937590:78680498 493296013:8845762973:220660109 714187416:9817591879:134250496 338665317:1106484540:2333988 448188364:27106580498:178554880 366029162:16906489784:93325608 530647163:84111334215:354486339 931560100:620859123100:101081220 603270034:441508053854:65274642 965639667:538526321731:545918019 501880329:6725475379300:92405760 396294500:3400705916476:27146276 790583196:6388852069511:84022404 829025370:11939398307052:285756488 591762755:19557512436864:33854464 860211997:36279524478356:805390612 592204282:261512539212496:570425552 671602027:346238414653528:671514696 933848028:494050781363156:553673684 676257087:2763442476841646:22574 913853765:1313053256021198:6308932 243206950:5448849894559207:174459174 491569857:79319381401011817:262721 312632064:96643222762732576:44048384 187203514:33573689544991700:186672016 614281025:542426343169328784:67896832 563558032:383225573193515524:16974336 623920364:895515472882777662:603980844 398588677:2785751370189689979:343986177 926556956:3361311592551476940:355082764 628795169:7327645536385774986:608183552 926652565:70707474725703525328:104333456 225384472:75640615065957549509:207945728 836940327:82426835964489050259:818028547 222607852:141342290636127619291:4196552 727554213:796367646350132010689:17045633 172307811:360719610603204042047:267555 567471167:4271141570121891157361:22053937 615012948:8076324124059889481123:545787904 545030101:4035365054292979325119:7084181 515188778:30352428327436847094894:269551658 694965376:38263028816467391896259:671895680 675349914:35291061329744247844685:134219016 534537717:144100518126000803117751:533749941 991542135:327036886191791045541765:1096453 998655028:240199177238069000941320:394240 381484143:7639254430585508885437836:337910796 213991207:5850204214596947192987494:205537062 784184947:5549918144108108406237307:612671603 716385972:313:48 135543397:776:512 440635161:169:9 803774015:4679:4615 379520194:1523:1218 838148293:3531:193 620223706:41370:32922 874366956:29646:17356 935791393:36398:2592 501322036:289911:52 606690485:944958:542772 316603967:562386:562194 884595656:7219864:2624136 150592518:1693514:1692674 537887449:5586423:327889 190514192:14712120:4195344 303803214:35582716:35299916 856988364:77028260:1317508 535202326:687252105:149324288 393483140:737067484:56885636 218625349:192753172:151331844 146381303:8554338349:144742437 182147788:3752854228:177210052 708685132:4868421368:573318216 136248513:14181062870:134273216 118779328:67932225221:17853632 142396662:17832734904:6865072 157866227:303887663547:17350835 270222026:623994389064:1196616 658700252:246977926069:16782228 986211363:7926074907340:717225984 437257429:3616413777301:33555605 497179166:8386567079441:67240464 623710899:92326867761412:69537792 330144797:51759996095120:271321104 675485531:33190216470683:536875035 891384214:261088695679484:807498132 948552502:598642161297158:940114694 876921254:348218407105361:541360384 682734275:3052686571710170:682730178 614679666:8232614618856666:614548562 332080433:6634299669763794:50463760 115560859:68669275193082828:46268808 695625735:25836359586120559:694288391 233837274:98628391988797101:222302856 851644764:165073783732918751:268505436 272969786:726410271951209692:4194328 714851848:157024869438725714:713557504 749997113:1079406563506692914:536870960 160989225:5221732830162296247:26247201 443529586:8234044732544424582:309106690 420215579:67957142080317536451:268679171 859115686:70361316645153038340:320864260 572977432:28439326638374971821:35971336 725704655:804958795717988442815:138494607 415350409:492791613714197386113:138416769 442834475:173619793083767016555:440470571 882306803:1102698690027201168918:75892242 556930098:6112742206969031156408:2228272 661313195:8560546232309137710710:640325154 180139251:83461308737249131930748:136619120 465639584:97178809486076410617513:285218976 284807888:81587484474196216810135:272663184 630385179:632838485186018526309314:9579010 488460758:847674965022912964244610:4226 708408533:886652220002578182966674:573572240 684214568:5668065295843863927162480:524320 980966733:1785789112808933116620503:842533957 521406222:8956778945982656340234021:504628996 982545835:534:2 180018989:905:777 700548320:781:0 992768228:2505:192 437398019:7809:2561 944583099:7237:4097 470262070:46833:41008 918396324:50390:33924 692841592:16992:16480 935205106:600474:526482 239272581:757881:196609 215003333:496295:36997 549190748:9836823:9574420 498796498:2063362:1770498 720006633:8815448:8520008 670320165:90610598:90440228 186539278:37211307:35015690 406573063:74359045:2785285 481915078:142121446:137892038 733786307:328866829:60297217 218214398:497027250:218106034 639199412:6729336509:1638580 355525856:3376681251:16777248 197244835:1620355509:8429985 953136539:58664868551:679645315 371076788:58968750610:302918160 726740379:85460334283:558965899 611086046:484462134590:69207070 689649548:955589317908:688592132 682906826:643482969853:9454792 716096769:1807420850868:44859392 914756307:8689972925224:42340864 245404561:9183440519313:245399697 759918938:98987775656466:553648146 228435669:52890393162763:18392065 190484260:22733938175171:139070464 764249687:836083439205633:134546433 223861441:760683039650914:5591104 927310255:231043898560387:285213059 888830545:3616698071493838:550119488 458980860:6978691601061867:20993512 795655462:1612607724794520:772288512 491945678:99708344766745470:340937294 775695006:43738014038843609:607395992 376757342:91674523377906538:6590538 297794811:461389420645048011:11263179 415147663:837488827437881184:411698688 566644685:631462735383722304:20990272 683820616:1468480394392028487:675300416 435753225:9574140168032109717:22544385 119453079:1593377778528070874:34251922 537072914:54423998395065600040:0 540730297:60001371405457102694:537396000 830929814:58342603607399704927:268609814 637059469:625248518512332512327:13631493 525307400:854441824847058168878:223317000 926377891:522722927057589180788:872874272 424750878:3523062481800226920859:403769626 151051451:4083262092518367970298:151011514 182160458:3154327593389754562774:135923778 229877337:64056494287678832795581:226625049 600920254:38403596632660972064875:12603434 156478005:67616908830842270147682:4333600 572888850:347830595369152619002437:539267584 922030330:129502345672389798228582:642060386 622507954:302063676177193182399952:621970832 654661302:7308086338464204803757846:587290134 285905231:9684582853443769823590008:16945224 206512789:7593017712793978580420002:134611072 6507222573:241:33 5144153393:466:272 8943715766:346:274 2823172299:4767:4235 7925000132:6340:196 4888276591:6702:2606 9853682961:23219:16401 6721714333:94932:77972 4856494161:59366:8256 2203040598:567640:567632 6186750508:273262:556 1219034334:686003:554130 2236383661:2800965:557317 6604738313:1625548:544008 7825537043:6146262:5244946 7439164028:25465487:16810508 3587892363:51943497:18382857 8113295943:94027973:26345541 6764547936:958702552:287343424 8709134578:681783518:135378 5573266572:977716797:134235148 3696799021:2287339366:2286945572 3434188817:6582894593:2282815489 9589105579:5281071830:981860994 9606317902:94718948796:8800716044 2715582785:12823449473:2689859841 4049428008:72813901558:4027143712 1383119179:950210436240:275814400 3644091046:314572835869:402655236 9721954150:247034967487:6829350 9870594681:2766157871715:139547233 6917481730:7720113119675:4698677506 9754268960:3178495705986:84017408 8575817985:84007554074559:6579290369 1779446908:65739096948507:33567768 9213986958:94831516937727:9196030094 2262858314:438526386624618:6314058 6489846838:272281485705906:4296015922 7235631743:945967309724527:759569007 5711139244:6369688509565010:73465856 6940823366:6988409477052373:6444844868 3070489204:8455508558573903:2147708996 6455070799:60860902637920302:4299161614 5830490285:64248087205499095:5821698181 5487991252:38721871623503261:1124604308 4940935676:775285786799363349:8425748 7076596251:220338334085883283:629407763 3240871242:500412323695575651:1091190850 6031431614:7757510160383749820:5419042492 4561238218:6701130515362433518:4455680202 5393379195:6702555450748654476:4315431688 8249941307:85243440150845670307:6495666467 1296161622:67057510001501057665:1224774144 5206010591:13604599913010481368:642533592 5685016531:816309646206172605793:4338099521 6209494359:877684319527770216967:34428935 7717022372:805175283758489908280:6595551264 7095268233:8475535721605817948026:2160136968 3783342162:8987191476767079658735:1073819714 4959782941:5926460909045487544572:111151132 8856481645:15421641221102808295056:170075648 8343751838:21470165256189849465341:6996164764 9437193084:51467132485559785069068:8891925004 8762321505:694413482547787451683734:8594145792 6241654994:168634608575522588626735:5369235458 9234949849:208780950060322107551936:9194971328 7754880776:3832389396302847910662918:3458208512 7551450977:1045609995491887641052602:7549797664 2790971588:5265927456666749897828397:67127300 8595419303:393:129 3440125140:418:128 6663846257:318:304 1598067194:7722:4138 3070057819:1563:1051 9750532729:6721:4673 3645735942:93521:66560 4248004094:24308:17652 2760604331:98011:96907 4156861721:628114:34064 2861329622:285051:280658 8921657654:525511:6 8302264760:6250438:5898624 1969132655:7356003:5248099 2672338967:6137510:4759558 8299054843:16338765:11077193 8783355976:10918928:8781824 5852097211:45235704:8530104 2047044321:837426750:805440032 5461678635:672134249:692265 2842031028:316803539:6291856 2294615568:5668952862:12913168 9233788031:8614874136:8596229144 1210837088:7671530208:1208107104 1901385307:50065021737:537956873 3550070091:27006393002:1100005386 9928227390:77405976104:8686416424 9830780377:657554703341:156271049 1817203678:422242470544:1276134032 8437849922:282726846895:7831113986 1168447297:5653001750213:18941505 4357630523:7512736748105:4328522249 6952730841:3077314318847:506069209 5583190286:12056477100870:4496861446 3275570617:62414483321611:18428169 4802201205:30732262345122:4430266400 2880794870:863727441735166:588275958 8724133685:665286547152406:8595248660 8184209004:319825435144755:4853928480 5131693121:8795449451806583:538340417 3458019450:9368705598018351:3222016042 4245702937:1125137884018008:2432712984 7615767679:72998965288318924:15410252 7432698837:33742564710852522:4479820672 9571078737:57055903502456232:9531166720 9129135449:710564166336405499:537005401 8465211834:204260412461920738:5504016802 1442276259:500166921580674978:1094149026 9942996243:6366292999855844616:1344668928 4971838092:3738728834686216170:4300743304 9530594349:3361531018018877932:8859439148 8674532811:95227027986551288842:8590070794 2528247594:68458728075599299964:2418033960 2948736660:76106583920942529978:2348819600 3817504625:693328496539769478808:3767148048 7064708099:579616511213302104071:605470723 7002764517:830209355513512322716:6985720964 5604590532:6251542097194532516586:4295230144 6016860425:6719732628506906961859:4899078401 8515454689:8689704788234848449204:3506963104 5196055417:82167745201994798928057:4582342713 8896628216:98584709733717329359688:8627716424 6188551282:68650287203953995896518:4568204354 5931811574:245358132223377095985970:562037298 1265319906:316988194626362927228705:153102112 7629199805:165130300389307085773926:4363409444 3281972771:7335202128888446098505162:2156030978 6753271356:4126295645812075616441505:4571960352 5129078186:9335724363895021138355397:564397184 3818506745:946:432 6042789368:333:328 2803457363:479:339 8781531584:5507:384 1730885988:3116:2084 7894283549:4106:4104 9665604353:29503:25345 2209366834:36606:562 4780447874:64296:55296 4804020840:663846:131104 5107128219:887278:557450 3741733072:838338:278720 3436192943:9962270:9437198 7914629397:6290973:2074645 8944042995:8848405:196625 5596558216:66266366:26222728 5635990148:59783034:58728960 7618819076:40361415:33936388 1629469211:427592770:18647042 5124203194:528950330:285548602 7393241124:184070389:145268772 6960958563:4637757460:4637229056 6674014986:3199240385:2357198848 3882810353:4695257716:122352240 1985163627:46021446544:907215104 4352755472:66273165369:4331683856 3609843297:64604335987:35767905 3673273742:359626064958:2589983758 3883795757:248567423443:3343122689 7555338017:882706353987:6446911233 4228658010:7343066490090:2953584714 5739367166:5632773886835:5672043122 7357834269:8965057917196:4664565772 3542309354:15706542136863:3523303434 1274545446:67768980209954:33030434 1514727974:40992299516584:1111523872 4909890092:281203602622361:8389128 5642886061:942730554740962:5607584 1340658009:292186690240944:65028368 7818358250:1329144283353859:6442451202 5852925842:1953574996595647:479495058 2650895667:5480749198053647:469831939 9201604310:11009289573957706:9131065410 7170586899:83612688711584845:558237697 1914814794:80910124321396783:1377878026 1207290407:447641095392925407:1170276871 2148354056:177718837960257968:262144 8302772963:155390250201970505:8199881281 5009552922:5578787037995999031:134616594 2711853349:3782513370805163012:2164363268 2112192562:6994650833762799998:1077936178 8389100341:39750732498601849036:5704581124 6487735744:74809011008727414824:3340288 1981494141:49301197671812794741:1410531701 1286483283:584159716668425261064:131072 5311634137:702673519448681090814:4362603224 8515422202:261053510949481016305:2014053360 8635596051:1465963135517367821336:8632411152 5893506729:8890067893868377823165:5788550825 6499144966:7234510912027557644421:20971524 9577135517:41173135651874473996612:8595665156 3929187680:39406159631132186404414:2684363808 5496683317:27870644837231072812381:1082169621 6727543079:360789397824904777040304:2419982624 1781816721:845528785978133045075989:536887313 4690345012:841093224091800741002027:386971680 7875031232:5288865629974631318462231:354553856 1052052336:8810002084002857577785218:571474688 2199952444:1198440914412752123580447:16814108 63437431113:300:264 22499834129:557:1 75470094084:155:0 46692760657:4129:4097 52248046359:8577:8449 19309000508:6988:4876 85237129375:56774:16518 56101322293:30566:13860 22556125264:42286:8192 90180229578:686046:528842 52820859938:350285:284672 28410706583:507768:47632 68741968073:2819414:196672 17159851423:3388007:163847 99612531612:6625380:4462596 12898010371:26552968:8388608 49541053401:63027220:12597264 81918208669:73965500:2132636 71189396669:516845828:302411780 58442450827:211152460:135333384 81989840579:275503006:275351170 63340523837:8893517592:8891924760 51721696879:9822211318:139592806 34830680964:3147501409:403833600 66013919694:42835794249:40134531400 43971236693:57610614696:35043414784 94696812386:66233465559:25909406274 64103287912:336305122296:61410412648 18105323865:279310506662:2101248 41428777368:155309077320:553677064 44715642762:8673503880279:10217456642 98571756086:5543619207665:11565015088 82120279117:4146694011369:4731174985 82400129802:71888691637306:4889255946 10304520051:46776451767005:10267794001 58931440804:47921509409277:24033501348 30777893729:342398424204111:134234945 60345881965:917418925478461:8793428013 83020337948:384572368591384:274829848 70007314142:3968886239623666:1145196754 71124670373:4032735409895277:18110245 54733361295:3041381711369688:54157398152 53690002208:94319931482844968:34360011552 55498941502:72361665926453179:52628456506 78532700702:44735465993351704:9670042136 54189947210:833299389044828390:428877890 55663823873:828418127373566106:20494450688 69056790671:963933444417404539:68788289547 25834079610:2366089675508367959:25824608338 62050342180:4593891265604021906:18020303872 88422731210:9482201335914272096:40338752 82440508430:81302470707974314219:73287077898 47217420349:95020362154606294719:2923438141 80503620032:41238911177762276636:69161976064 23298272838:659808552586464456630:4438322694 42380278407:873498947392425324737:35869831297 30527833437:428661175535650786442:4354786312 57133966344:3843450766674601857387:1281490952 91413151292:1139665777030164362613:136426548 11461532110:7645838448229708809951:10790437070 65823155844:89415296468897455077355:44297922176 60828328126:38696125145958155229348:17725259940 28738797094:93819348513801742829049:26310280224 43310086990:598114472454559727395984:290988032 15384743586:419408281015921401446891:32930 57240041863:932300747231379801078535:5398149383 49991464020:7737460332928430804780470:45684950036 22969571418:6923036854885193342616288:18406015040 72022545779:8869636314072986037242848:79741280 43597320016:322:320 24627771008:999:640 97348640827:567:51 84974772494:2073:8 58973910572:5323:5128 74564780277:4510:148 88321291526:93071:90374 71201772849:55662:53536 60656322756:85499:2240 99977946552:310937:271512 74676360748:402852:394276 26474144987:219914:213002 15089898998:3353544:2163136 93359739416:4672022:262672 49424946502:1534026:1327170 48257959654:80691545:71696448 93393288238:76705541:75525124 90686116252:41607208:5259272 95176077014:567467824:549621264 84991003148:407158112:138446848 63864808370:505698716:505414032 86579910177:9889782566:135270944 88822198637:7563429323:2182086985 54328565857:9629012229:606863361 87067354857:33293834270:18255052808 58106366493:40597951446:38709264916 83167630644:82773684843:82764107808 21654022941:901512822814:4329177116 89184758368:543752930238:88081646112 83326423206:682293855408:78427193504 93504231842:9794519549488:1145651232 42716729328:6483427633357:6476302528 36079973117:9895736797255:109060165 88412415398:63176606956049:86184697856 65794246622:73317863873056:60148417024 12683652297:54231293356888:11609909320 47247994852:497068267581966:8708 34218365281:866062760286411:25551835201 79030415514:182802342821050:1687433370 92726844710:5752540593859015:23934994694 24948642991:7509800366215507:23740289027 75823132747:6455394892122328:7103578184 63492591847:21094066741507809:7606497 61458062830:74725487057051543:60383567238 91257237998:32923099789556366:56127630 89559225676:108916384007726665:89288344648 75416747877:852901920687179620:4462741348 29075112936:888948707658878068:11895046240 66319499545:9779367314160414552:9673130264 48250599358:5479027831135933944:34382026168 33003427170:2282835533125740182:10872177666 20194922441:43185212632743940157:19598016521 28207795838:42986079313240554912:10742680608 51197853330:91572924621486243220:3808509072 53595702775:959961587778366381746:53285258418 17642103130:541011227298972040659:419766610 71663217157:991665999079388724993:68975700481 49371225762:5081209349088994743350:36276605986 21815308605:8241186659352240653168:4391216 85949826387:6052580133418023874466:17230218498 66397784493:62160585161792088586167:5109711269 54943437010:91202029604271928724604:20449345616 51375377296:42144282341166124171139:369363840 90525924758:479143000464775272142971:4613937170 44051664131:204435266868898727697049:35444951041 15697121859:369012923102866140258708:547291136 22151130381:9895468819773267707607717:21613389829 62214259957:4553626718739653301376285:44358960149 57500872531:8710445745285920342364069:18824105729 40768746007:927:535 99267350732:852:68 52250534774:195:66 92333149979:6086:1794 66449953883:4548:4160 13375856605:8303:77 33836642420:84265:32 77305770833:61469:28689 78334799124:90826:8192 72203810543:764692:696836 62945853773:460090:327944 36944281491:131374:258 16933101567:7825362:4327378 15850888890:9333169:8931504 26472704454:1505990:288966 18236862518:87461900:83890180 22920943554:54625708:33654144 90169970870:65404946:42205202 34910582422:210103762:8725650 52500282725:170419025:134226241 92204720610:291559524:289423456 76653421379:6410912801:5771771905 86095424661:7183834552:136350864 66491425325:5405337327:5404533293 58678057118:71005552250:2285901850 87660938388:91166329466:86586146832 72571088829:85411933938:72487186096 57597385266:309526336638:34377568306 62983100499:949293207811:51573215235 80695729138:398755613114:71966329266 98726752872:5283750942150:26710380608 13773845310:8538514831521:69480480 31453015928:1314150766715:5641095288 55957173960:13146547436448:17235063424 92135251426:74407070569380:18035511712 76960140970:46795181083757:5538843688 60710671831:721863749695785:34361856257 24762026855:158962314379812:5373428260 37245000206:485920775221452:724570124 18863569076:2134653691425935:18259521668 10370701933:6476899306542303:572526669 37066319137:8433763469669955:2165449729 75201062685:47096972234661807:68719544077 39486151974:93360503223980206:8818726 40055921233:23459010485464165:34401978433 74655270722:767468213098439755:1090 90992461652:355011376118583575:90806698260 37409675471:928746137823738960:88758336 75551877258:1969783575014117233:75180541952 82348466181:5634755166700236096:68858994688 58751062006:6923839136789409542:2219183878 93611134927:24433094633686155921:85899903617 71129560603:87300592615548003476:68895908880 11460899019:78404340130757308865:2719051969 11577802366:836194861874301378990:8590991406 84065792158:248382876673446568431:69024620686 26357435677:196113769104512535618:553782272 71939103803:9207569030324518164550:2764085250 66034380110:2810234249131628492333:14349804556 15138208012:3514518316039020449720:2219477256 96570260289:20645558025364968891984:94623507008 79774486393:71935088276449381188418:79457026880 98688927469:42026060562651991638453:97710506149 97072567262:240387229930974925513486:96660964110 69170395682:689698806372413159730596:68891469856 90742728518:154980186631475030374178:73553422082 38333062334:5614009118814223543426880:215227392 13993198204:9860053736187264768737178:9697772056 80979092496:8932910345513359992611487:79628525584 919954677602:925:768 725756684844:469:4 411186571101:394:264 333765686944:2371:0 161333187026:2001:464 816835460001:4901:4897 804094185863:53429:36997 501139776401:58971:8721 939850514932:70351:196 547492118277:184093:167685 502561646964:441321:141664 325669228757:832118:266324 849034453652:4518280:4497536 416189480517:2982390:65604 636901306515:2047863:405523 185051615066:90856730:90836250 478920403515:20891078:18890754 716470855043:61409632:11075840 442984874159:172374268:38011052 983952774240:289108509:270749696 897976131671:430344944:293863504 515737762955:1985454229:341155969 639544835908:6052680345:1623495168 965848451000:1727503125:1610973968 424835314638:90858139129:570433992 233154272339:76435255392:69944299584 422063234289:19123420037:1086855297 897421398215:418902935192:277026144384 566141913715:427883510484:15310260816 470484804768:338220828472:328749564960 148366104285:4970488369686:134287892 971711201416:3923729239041:550024265728 244061494063:5723002510239:207517391631 203162309952:22089814909644:30283006016 285809354988:27642505561035:26247368 466720581414:23358091840286:189691872006 350808955206:287296911255591:281393170438 443847805236:449562202841623:306341740564 427776728039:955956542584021:427754000581 869648539275:4704615566647191:833945575043 805729253586:6369363173887953:698085574864 474908836006:9981861270004252:420940349444 164329350842:91754163454362972:155730854936 657913182106:35150124614281383:653407576194 877226252080:30696425865134417:51917111568 150407290804:611761182088995163:4308140304 299471167942:927230524294848325:23779492164 555235050953:404263075283002973:100959305 625466868779:4629507831649546330:619013734410 907973327735:5915901104315981118:624398194998 230816873239:6618046212094131920:227780164112 604189678181:16815048856958869338:584862276160 392386319855:26867417872003597680:70128764256 828861328273:45064676238731636053:277890738449 687345094212:838273789573913166204:145014852 768957850517:364619974242013645673:768820478721 997202470878:934986205539203758419:172545417554 816282861776:6003784827697105681518:137644474432 648549112834:7055153594363907064260:17180524544 352564576459:3123647929225477613922:343666098242 203598947453:56055980322122371641437:173516333149 974052911565:51362082605005201196576:285616619520 338511398533:53507458819203490799276:300922046084 847596566583:751024486774380241282989:142614565 497574728594:237428611492343436089360:80941748240 903321695629:727311409991764196286001:550830150657 899001032316:3075003701790574082548183:554061267028 451770153519:7100325453005913306431934:310027747374 288675717583:3405777710516585532216952:13225279560 694814453230:734:206 991850611427:316:32 190147221792:716:0 596737045757:4731:4217 438927978505:9789:8201 120441731267:6360:6336 899659946470:44123:2114 360754511032:16350:15512 109684011142:58423:8198 689809937903:179282:5186 871265701303:115996:99604 664419738751:778978:41058 316607701054:6387690:4202538 911538587493:8245546:7143712 823279933033:1286850:164416 561561641851:46602062:42337098 183441854121:99660856:99648552 446149961113:13773762:9445760 670701960145:206598963:139473681 664281455016:139144932:138545312 622165710046:151187194:151143642 556140614721:3784113076:1619021824 850773925182:8772481824:8623575328 647000767349:1253912039:10597 316412327470:67479270298:41372676618 420595914500:76541922679:7520388356 915577341520:24956799445:21685108816 546876319823:717570564464:167772708928 328705631600:827904153402:277031732528 165733911504:794634923405:137481062784 236550427847:1199995282648:98801026240 804632492850:5544043158816:44334913824 875782793461:5375164386976:839674529952 916465084104:80668545928721:360777401856 633799375055:24908359868430:562663792654 659669805499:98223890065100:75162083464 590187125292:438931802402092:1075873836 258376303442:995636204590180:17319100480 785945212452:894856330846291:639844753408 362460593652:9470798768236532:17789199860 773787248592:6964819029038615:223472518672 676600543004:6869905295349695:17322481436 590402479649:62117633486175783:584488461857 518152824170:35894794435050251:137507119370 687199768079:49117345431177410:687195572226 621071200434:943426459663895764:71181009040 433092155298:309615308863662051:414535993250 621259703162:683088955868331026:549831704594 311843890560:7202549715733213810:309293752320 771452607478:2632778597933817866:152706777090 317714572815:4047517837965879316:6040002564 384360582738:87095278083768989099:349849519106 885157969271:33685105627579730677:34645379189 756379294968:53889828942771036680:687197388808 700897605316:264995826609796899209:13434364032 339624672741:238231348863092720477:26072121669 100080740496:384235699878155052368:22766739472 697375097446:2607132265107602744317:696959304292 677953290947:7604157231371769705728:6444564480 991476930447:1129781083394607236277:560904356997 264654392856:19826462917102993873403:2325809176 525318810359:67901562066019084488198:147205409286 183027401203:85419043618256620656852:2235597008 492792071087:599382171474591770120964:283467973380 271464224642:810393943196604323470986:197845456514 345204063531:603235612170478488366861:275209497865 518268940588:9058257006137334152253061:448994230276 437595439685:3126893222292047596429085:282976059909 700901237451:5039971712236333370818314:137981600266 701418912829:470:20 681882272482:777:512 758801612574:812:780 683280623575:7547:1363 731920212117:6021:133 229366582959:9717:1189 425845771476:38603:33984 784506843915:26977:24833 560676881374:68077:460 566324188270:352425:344104 387586859002:539346:531154 303445688455:954750:294918 130409118877:7916345:7866393 366336907980:8195074:6359040 983996298659:4213161:16801 186929736627:92779552:92348448 221816476767:17820336:17481744 648145927183:59413199:8425487 105684280354:155122440:151396352 701490596994:330139602:269026434 554888520754:633438033:566256656 704687375632:3745473009:304349456 360002273546:9781742713:9681010696 515202035348:3234947589:3225494020 298182654170:84556237830:5050992642 676296614757:34945596301:34937201413 529403958834:76328713752:74097301008 759520443633:873068571056:550945958064 504368896677:251749003690:206362415264 566928724523:350616913547:7013237259 307529564450:7997768241119:300649840898 420935834531:4319580801958:412334689186 113754495219:4893731819077:79054342209 586614192592:60332577346876:584195641616 102505871656:67206565168999:101423579424 329345441730:60597951125082:51774527042 586049452127:153182262807403:38029387 583495361904:877706502063807:20803781680 226605753107:654427640549835:209413292291 888087265559:4287221315397970:18354290962 398000418067:1396469178455483:88046847251 680912697691:6724742856497895:128866457667 949280721427:17830223150405761:395220895745 584019072042:74252725286994310:24999493634 804114442645:61483814865157761:206971086977 236107928881:558888246757947348:164167226640 498053827862:624805721540209989:490800680196 266782970849:812956186840012099:103557370177 240911152047:2792527940749945998:103435755662 173163243566:5265796092461665579:137444280362 998085673109:6302092837640741375:35434004629 702491637051:51383195584908981386:141847376906 948008953495:49975934452919832038:655523316870 888813558011:83175068227896999680:886644971520 905794722842:405416060972299265080:355475653656 434049254304:590921877761352114091:429564887968 477630807017:691474954373598668735:451323995049 197233499996:5160934781867453911410:59122913616 227692489725:8816181586073026376168:154661102056 132540000287:6908273123357004069620:97987782676 224932104105:97697648479187093241544:223351998088 491282934320:21028245219511134444074:215322495520 955956166413:23793555807086547693913:833532293385 930461923509:993992811006693135828403:895514443953 812716281378:599385954232082995534858:207125892098 852392556692:385041484038654057466142:826614089748 629209132084:7154891942960677852746365:551849361460 813744066217:1298966432941419794046101:108731567233 504685510158:5841075393774201963512098:347901362178 2771852160266:972:264 7904990858509:357:261 4404934610211:509:289 7392436026427:2739:2099 5021585022710:3339:3074 1435541779003:4309:4113 7271365804536:92084:65968 7013364887520:64342:27456 6071350979374:41407:41262 3725468523179:915651:546947 9365644695965:746918:541060 4235790580332:538295:537124 7404831078817:7322852:4405408 2273344999118:7540198:6491334 9715642092889:7672071:6619393 1671298102552:90091570:16789520 8787475655341:80050906:71658120 3505265705857:14542673:1835777 2287260464775:597052827:51397763 5348937860673:650341424:612500480 5031643704406:500225084:89179156 6573145431652:5793533481:1230114336 8356681832854:2603195941:2433292292 3758335779577:6573175528:4399866600 8474504555367:98874504315:90282467427 8407252494382:81290438460:1699225644 9942262224082:60771057327:43016787074 6074436459215:791718769410:551098028546 8959442406607:580791381947:25908284555 2993435037400:984322941758:687834399256 9561456230132:7248354310161:627653556240 3301151250082:1106063335597:1101701185696 3857988545871:8239252776775:3308199093575 8047076575320:87252798965213:8044474007640 3658646978754:93156161254882:75568906434 8934258032630:96929303437135:8933666332486 9510527395825:885383711297381:1436157793 7537778996054:673363087156331:4720278184002 4120463797661:432150556744687:1139311675789 4637907735538:8420168231123431:73288471010 6344813939489:3052190150886224:6327629841152 7534688615137:4065722133509383:824667287553 9938051964609:32851927123955131:5402791041 3121825711864:33336017913954816:3051596284416 4894491121652:69155521163451646:70869325044 5699787858439:982247859497097884:5673929933316 5339678180286:548670978545784669:4780643123996 8680157245919:513749685637302717:4969304441245 2483369633435:6012722727375495675:2483296428187 4297423212114:4300222301563772443:1512136920594 2759947622275:1356422427239098924:2209906459136 9063479003649:81814093852375588366:8942143932928 7242507489949:98578129783671184785:7241349599377 6796245906884:23241341768266435434:4545296990528 3610877509736:786318706662221319493:1134810890304 3152707372363:756404053253170524590:3109623480586 6221304247219:328504384572734876858:5497560244402 7972874971852:3305656421395276897840:1099517921792 1339739439546:8682582356152314623028:140335218736 3961635584592:8066071452667869298992:2277463064592 6378535318699:56475463354014035427395:4969751134211 8919593521456:76645318418300875766873:8816496218128 8414466098079:18413670803337351226334:3861175813022 9445175634145:660200307938404148841269:639951570977 5929650547658:530950693762239219203106:5912065763330 5789573116975:180712001214544218873752:1379512013832 7691563975961:5128248155292757291619452:7208035173400 7268520861709:6294514017037169760617304:2869374877704 8572119413604:8559190709174226999831550:2233819325284 1063516129474:495:194 5345192776288:198:64 3999145382846:169:168 2980423100556:2651:2056 2494761440319:8395:11 1368213130714:8356:128 5315100954829:22640:20544 5696793262148:36977:36928 7886885729171:76559:74499 3043531601824:841882:823424 2137227508356:954640:954368 3974586315528:146287:144136 8592911944054:8286151:7752006 2315931893992:1552697:262184 5605056194524:5480424:4327368 8687288913526:77337402:8651314 1741054491759:30989645:13114445 9419424369685:17332016:16778256 4341671172109:555898967:16783365 3097903801303:492865759:157319383 1922174828446:135508208:134230160 2838652063795:8882207558:4788226 1664861668164:5543626936:4302110720 5485173341013:3437992358:214604036 5838462825031:97682948588:26273153092 8980886307670:54064502136:34460975440 3360514583165:30816583293:26512665213 4117849581763:904907185313:629223327873 2737250633561:194198617160:193542095944 6541500327940:506227115384:485554421760 7724409653596:1082719043067:17482975576 2689036437702:4753143356294:352271976582 3528439455743:4073534307473:3521889967249 4712807101173:32076747156278:4433497825844 1643875200808:60908959557786:1529956329480 7563597187796:92621657971169:4539931691200 2084298703008:816581381461606:708822695968 9338403206446:940148473051930:61270700298 2317040328480:155618262851683:35203121184 6702423714016:6780465702396420:6631455727616 4283237191364:6614059327522390:3715156444740 1614909144932:4518079338212353:1271310674944 2591958052780:45960048983991707:323339691400 8503572122207:32890453292910980:1861331716100 7006706831846:81606101783881470:4746480255206 6262671773174:229625944693124452:1717987020132 7588315181688:942415645679582986:2200273170952 6416601471180:818437195838397623:4677626239108 1085813597140:4418860734580269424:464066191696 9991344781013:1251294119575681347:9991210037313 2668384145230:7077946311592676882:2376325172738 7579787312081:62759714748458052009:4416476785025 5907654641422:13796602638912770163:1100107743234 6691310742873:22299379512907934301:6618813048921 7849299343368:532525040462467070902:6599428175872 3046329017273:326752398324439314286:2204442420008 1382063829284:701389424950732175023:1379915804708 1478385639836:9751258500128629249716:1478374883476 9337581240171:7768537154628664068479:172085086571 1213116034683:3031202436751726726191:111954463787 6884136205921:55595176319593778382173:2475015144513 9913078792231:82050001654056725687161:8796362113057 9846920378205:10530221509283937880710:9002822959620 4728167084064:552354310748823410116015:4724732461088 4850466404228:133173038632154004605961:4810631939072 5466571033646:384853715020381845907769:722779392040 4941719673321:6220277302328340201536600:25794058312 1490513456956:5019898329399616875889588:1207028417332 1564574622915:3998958688290680979710251:1238106644483 7904168972467:931:163 3615376725774:720:512 5123360734077:183:53 3141937773754:6634:6314 5553310054857:6776:6216 5698257987515:1950:1946 3081136827889:44150:44144 1453186289075:27991:3347 5017606002699:51567:34827 9483232312072:923113:4360 3808548160098:969934:524354 3658467887691:328224:328192 9154329737683:9047848:8521984 5360312172088:8199250:7184 9581664141913:3220733:3145817 1430932135082:18419918:1118346 9194216971298:53191564:34144256 2228532816343:11745148:10494292 6465759481924:451643861:138936388 6548890235675:862271059:4469267 1510587272889:363572132:335579808 1156400849844:1037729514:1020797600 6414104665637:8263818149:5973613093 3325202575831:1853115108:604242116 4877584067074:58127465513:57993209856 3442060441847:28007888394:4337666 7233391115152:51554223314:17189634192 4634416328827:799032032179:214882922547 6011744763061:305672062696:305536763040 7113185279013:693627333541:138149963813 9757114874996:1136051315919:36529054788 1872815688865:7577085847091:704584516641 8179483328583:4448458823203:4398784888835 1867606511705:91076619532885:619616522321 2236766809702:99967412682296:2234592013856 7279220894759:69844198817044:7167530773508 6378113399068:770069669224885:4728776171796 2052120571903:636416098512670:897839673118 9167785148112:907265464226320:8821905953296 4657397028538:5780902661212558:207233892490 5329424560116:8645712466609914:4504487790320 3419752581068:1745990172360777:3401614180424 8840831335515:39013869416861698:8831568728066 6642218774645:79159493050215687:2209812258821 4274295403966:32661126445991713:1112526751008 6324557100290:412625779143341866:826982577410 8143748192064:693153331318074976:3607908288064 7925502664099:118676421188349799:7769730403619 7758866205214:5864985247870321122:5506151645186 6434943262573:6887629143305596967:4475356024869 7256015561542:2147247272750818437:6597207662596 8657524928583:10412023210280435979:8596521877507 2871783255512:74949444761911982315:2783718041800 7935731716898:87593658789388186655:84527828994 4277028025525:999363450024480655782:3166766645412 9150638140602:347827859938105229708:8873402433672 2148028531050:785440757122121040749:1237493875048 6050466666145:5991028050622837011305:4400783856161 1365239075472:9726721826369574828511:213743046800 6879107386406:2185783752073103688423:4402488279078 6016472632920:84811624891922515806027:5982093887048 5475205747021:91982291822695011733582:5119634575436 8633155251957:65750967948346567652453:1451969897573 2292933394300:388082846683757388953675:2289692244040 8065812365141:725278854890046740407934:6893818881620 2078812411823:639983119642109356828741:549801951237 3749983762298:3918672608057821525112745:3608043206440 8428394043934:6927421568818272041073062:4020106582022 9136734598502:1278819158744106916365144:9115238777152 83970737941282:577:512 92057179982189:238:108 76851209745505:866:96 53075247310174:2989:268 69215344115309:1265:1121 79367996772559:3291:203 45650283402222:46640:4640 35711912593648:26172:16432 70823096322851:85927:68387 83363568529546:502815:237578 41505733474391:701034:700482 70799127001778:182538:34818 58163652165009:4048744:1131776 24074102811381:3926183:1616037 81913676629859:3506187:1114115 80869755458274:14290024:524384 62931393956715:23819711:23150891 72111997850939:12853768:262152 23185135803064:323395765:289439920 56109705599273:619210008:67109128 42587014145812:395350645:126910996 80652651904726:6129953115:1745528914 58417911860132:8860144435:268567328 59497546665463:1626652462:1075842342 36396229262586:81727087263:77314678938 80660035709401:95327229802:86448931144 71094018423971:97460922940:2434181152 74361890360317:292112437282:33685536 84194401225893:894254914413:618494167077 12348724439961:804162896378:254096179608 75238189167392:2154677187659:435947614208 91036136050207:5361829874619:824642439707 95823821025221:8855492077254:19601041092 24523398099664:47085839722713:2478267441360 39752326724224:28069679712946:30253517440 16378146250508:36637685463085:275952834572 46797097748159:654273650380580:2262441149988 55783930725309:242204441432953:17626900202297 90449898596667:689806329530478:90434832451626 33830746650464:5546160844462686:22007697658432 60841226349150:7153148057527785:36559041470536 29006548941124:7881988891821547:139787829568 96070021049022:16434134098988623:72842664757774 91044496195753:65972327388684474:70684189524136 22272335626111:93777038385731998:604051742 33510063963809:649469021948782354:146723055104 41600320136879:908118739335785288:1119179514376 95236718320022:785451659985615770:92487901436306 41275437084988:7998778491934190581:4982845841716 27608808207602:2534633306397635892:18761041327152 46635642785665:5590600911971914273:9243642823169 19116306334425:16376128743705844651:17879221535369 41066929277745:27621747385035411323:35461407460145 89722232620217:89707202230115558979:1108102136833 79735483676168:527915904853600157484:8796311139848 41106475490787:528014733927668515831:35605682848227 23667494282247:412092584616890909326:21990299844614 38085038405768:7659540888156744868588:37941875990664 37557132734466:2031072624170550020636:37419399774208 17973759386881:8310283679092293060747:379132116993 79685002583451:58307024556864240944542:103280870810 36188849634274:53071717942922764948786:5704519970 57786332313301:87341525595759168231221:57217709512213 83535799345294:447927617492144147278022:73530672685190 91678549891673:290063808043724111510773:3575577204817 75984337293389:962851542566392146848833:74776742084673 36082263333227:6064195454541965950455160:275115411816 24888712088466:2885315976573227349550694:2339991159298 92217505592295:7335795484308669343823556:88515040326340 37820923946867:705:577 31439000202078:343:342 59982568646002:501:368 88214483248059:5188:0 96117150170888:8178:7936 87830601136139:9965:8201 27065039615619:83811:17923 49992869534327:74823:71 67489726972430:44998:33286 74927717572412:477227:346152 55640638135016:443236:33376 59715445457211:670130:655666 29322016427067:5554413:5537833 75755108210114:6172227:5243970 17637850604170:3546914:1049090 47921309090877:58664147:1770513 98456384248912:71187049:923712 63524328463478:99826179:16783362 55199232185035:605861735:4675 44471618199960:922404716:302006536 67876553684796:295241254:295175716 79133507894645:9524513112:882936144 27846748704842:2956290942:2416967754 80029356820971:6096615726:5526161706 46584282623775:18341517119:17265592095 72284913439083:91830469599:86444900683 26816561370083:53928853319:2248692547 37630337672328:145209448778:143045181448 61768883894650:919424847675:17454713146 83567831317503:824277681082:4878386106 53819277744472:1713293662928:561571338320 68915717578519:2093889256034:710825744898 66977947776008:7452821749577:5231350445064 18990312682249:35908556604039:2227323393 26152632755971:58558132701679:23365161222403 22571443148827:84654339437234:4973887787026 24400968676222:131769956422353:24257993232976 57241270258294:895337865299879:39642632028710 70932162611112:668505291618176:70368816203648 88879297302357:9296912695387070:360822407956 56660975546232:9769204330195211:53910988450056 29195129301073:2765987913534902:20360377010192 39310061462821:34885492084241374:35186825683204 51487023742793:41460646439948125:13266097147721 99473007919325:92830968570907864:79439870361816 91710877010056:992660329094259968:3612504293376 94679432947335:116191922184914918:72636580365958 81903151038692:970762824761980343:72726950772900 93345868448352:8495907154312943930:4952114364448 93564643702525:9558165711851133560:75937556238968 38424624858920:4540515123707077336:37874164105736 15324422600503:10837648349724611302:15122391306790 87335874066255:86073913928227270795:79354747465739 26838567485982:96192262545774379556:17729713603076 99455370633332:448937627772937118576:97170413920368 62562758108072:295131080906494925384:61987127099912 61412697289557:790794708292476062348:40960063013380 39095086753974:1849162592463319049441:35796413325472 22782778706889:6438681300213680434280:758097938504 44194566970244:9451363241067410435237:43980886706308 60275889640574:61023346045925310443198:52845549552702 47210709880344:48259052803304233997463:137573270544 61195549029018:29700749169924224280174:18314047922698 76846534991355:942510777669274133140016:4415401037872 47556823804521:167166293780259280862290:8798802815040 95456607235000:186976393405389560776374:95387870954160 54722376649907:3207107781175077618072708:18983920077952 97162276085687:3846045291871677857743793:26388312687537 90705650079282:4762197869984175374117479:88433376887330 37149911534760:835:0 89720315570509:506:328 99370115796663:123:51 82175827431358:3044:2980 84082031609457:7960:1552 96664322243159:1399:87 80070758102634:85524:83456 58761191046390:93219:76834 90976511177328:96277:77840 63773393858577:166902:32784 62822870281969:350391:346289 40463165821068:689803:136 25074887372644:4995593:4205056 78648566537974:7023452:4852308 56391064858705:3935623:2097153 70496074420352:35760109:2162816 53373473914623:13846892:13846636 88446361020296:79976290:79955712 40891189527373:356318691:269517121 94714486916473:925375304:654836040 99937254013649:506981019:335964817 87669967416516:9037398773:245956 80306473886724:8740336968:147874816 79120322320038:3752330120:2191524480 82041954383832:80501854008:71404357400 61733461093952:92881143793:22012020288 76864293767257:56809747972:34763243520 91895309962822:959429782220:635693468228 96541798015684:312146335839:311940022340 62618691302204:763560024100:762433851428 60424306619674:2159904755601:1050661618960 14178606345778:4840022345460:4828193359408 97347658582511:7402867202323:590625376515 14349817916035:16292249439832:13198728923648 55222857293275:29748666678444:19825611021448 51011423381762:79241484313716:8800396648448 66721681441845:747354627453822:40295552450612 92256953792035:508264245275562:72843664564770 55995903870696:900322536119360:55819759551552 34795201612097:4517187590083108:13198998683648 36080804933975:6097444945549330:35802847645714 65861433951476:1527999961447723:45784458331168 16807087291477:51018566240055901:1138505035861 33782488478442:32409188145800983:2989299442178 20031574832752:44042011341811574:20005154514544 20412844214069:874112812234146228:18213619630388 12280285210587:935104388040511261:8968025933593 95910545772040:979283128154417915:22059086268936 72705922861448:7487259550725903233:2337034731904 49547925929307:5953696416527398914:5567460423682 68833774793503:2894976361211933558:4984446956310 70659600175546:23305268812509141145:70377872576664 89207943223563:38242673945810004888:71469615040776 62249660326576:31571736873233249535:17631379726512 45526015897709:958622220810491300720:292326211680 87774077987138:882285761114169672573:1118205378880 12328896984800:655840925749149187282:3455452198080 58439665199283:8835853931552444258105:35332718067761 38985596562083:4470003887819854514933:35596691049121 10934404226293:5229270788461194511366:9009973298180 59902868574833:31778198782772912871976:348432388640 52200634829473:59609822633555427746209:2549604827297 29103492018389:16080787709331033077215:18107700392149 60354604763150:823163294985319896683347:54976223182850 39967725643429:688675316231818511005292:35186554316324 48197062579564:265484270452389844289079:35552665732132 64960937102052:7132054368366068463581564:53877152155748 27319070651867:7483487680201694138231014:17901968974018 62025898106918:4901298949228410982433367:18011056046086 854655220226307:916:256 632674289330648:277:272 508642452689453:159:13 482951164891540:8537:272 185790154663826:1979:1938 378315440562487:8079:263 779364138236905:65435:15241 769643072823013:14982:6788 137922012444746:45103:45066 124369062678443:565849:524809 397213860202053:984363:590849 493687691825925:838255:16901 282610827588881:9298532:9232384 264716664754372:3914431:36996 577326052921857:6092636:5034496 889018097643010:70999660:69733888 702599567393153:77636483:77595009 105409357219237:43326268:33620260 289925621402172:801605808:25462832 931023287785412:216032371:4195392 346082270863001:568871365:12601473 899544212978560:8568602721:6241255424 387927091037645:3652933053:1345406349 818585179399261:5815474904:4605345880 123478887216857:89002751140:20001600640 929965173000892:16275783286:1107823156 396692218565603:26961220862:8623591650 815574035952612:892134218644:835909276548 761550563167689:851211034230:549755915328 489697434746913:155418718579:137466560545 458954358387786:6892936668938:277613290506 965164119523531:8576456067751:6377088876675 589098800368163:6834222861666:6597072455714 971765328912570:45725747121589:36902797836464 631522470319255:79704880270982:9197806830726 941037520653136:26550851789573:17610876027648 899438169060361:857881270300998:844459356991488 653305936814333:828017020256893:650917934792829 440727289832708:310618947953587:299619335381248 700224517005609:8982273470999941:677644932817153 894473342310340:2095991876428769:879609320309696 879721178137303:8524551754437288:562984515601024 173549680174735:39184671877150872:22265362161800 486470432101241:76961139516871169:327865460101633 632250726146973:56435331184113135:69279231811981 552479386879248:209280082499760855:424548953505808 544869695470517:330576927840790384:107229237846832 987194207632908:580747260660839928:845009315197960 776590745396897:5296138328560234090:703747755992608 237593239064365:2860136501511378941:26485261109037 545057645006248:2505015275912206507:433319468599464 551477022941973:18764333388994902706:76418206196240 375046306510832:82842964689535879521:375011915563360 937020792205409:59642347475438629275:4428705263617 912457382366940:339665822698299070147:888405397735104 774821836126068:873247150158432954775:138513113364 688787098346262:756781737071640778144:88247117152512 732179956299068:2926728005407280725697:730491396617216 670672964002910:1316968044712796656319:669671418265630 135113717863132:4053582664078327543989:17731840135316 799910071195118:96670905394344874147092:782317614552324 821103426996718:24652437180236254136913:782861037144128 614252932994471:11678626218609227735806:576730999423142 231605183409298:175884147921090686202986:17595415864322 737590635619289:624635955840672947129462:163645564797008 306933294580484:737962248701724215970561:288241451401984 975469555104994:2709964752253979805963598:112292796568642 259815076102762:7784395878921988951006079:48382286496362 628074143671379:1080219857707466057779882:19897645596674 183389648339343:388:388 210876285916386:995:226 676807531393741:129:129 205252982333555:1512:96 790600129514509:7211:3081 747651298065887:2888:2376 688126579549571:68362:65794 579465204870005:53432:48 665342711598944:55992:35360 289541849160136:574922:456 266805303111696:786080:61440 632696750284668:326896:269424 146086480992201:8547560:8537288 539087773142283:8290854:3702786 487039909556555:6479395:4247555 591154788507395:60463240:50862080 252736254339209:74924020:69281920 835666299189579:68319968:30784 970172211145421:926987813:301998597 334369023307282:865737661:312085008 625712531271035:423346941:153632889 592826480301357:8645835160:54825224 829346725035167:8173567777:5437963265 824107886703854:7943504652:6732922892 670741207340952:71753580862:272646424 149545696951786:94407154573:3523271048 928697735602250:11281791702:2252866 700054764297440:664881261228:627098814624 288646478949918:923218395041:569956806144 441297534574326:283219445709:281588909764 561616770152990:8640399057937:7462908370960 220571695644632:5755162242099:119588039696 773180556923624:5238142558770:4398048625184 313463407593909:98696530044431:27502874263557 167832265276274:68390745650708:26527698366992 456687538762183:43703686215639:7810574266823 273260083038042:890335192152160:44535858741312 370213099651624:102105493466054:88597659828736 472603997289028:587900038532391:5017064998916 475490943146381:7331208484197842:209853649280 481896618328583:8667015468937668:142972083568644 280224537566352:9394882123149790:106207293477008 505358301344146:65670141574515395:363406913699970 452679342085388:69570322159273683:292008436466688 225956734587236:60632833999771654:80270862585860 991317059965170:954388212717718727:704790645964994 491934727756617:785885018891431444:6873156880896 782245465337257:738083314071172028:565492927603112 446961815587671:5471164423855355325:301275852243221 868102452667930:2147175031613052752:4400198206992 960283043058047:6605666054976973144:9102403174744 652169156894532:36666599179687036315:71625338782976 256473487416205:15710946361964639760:114627343815168 966265272562706:33052583870751460272:647337610330128 971462455781907:101842872998535578905:581650417598481 515359322403645:752870737396988278117:550850687269 387769816663930:669736790794993768327:282077079865090 319073706661774:4162548841426540616040:35330447134984 511467803010523:6283269570328773122878:492600008392986 345484556542132:4873867519150003095464:290302749606048 755004871801275:74609646132265074085153:600470788557089 882207791244815:92926962184624850909982:319154724839950 154620413190145:99365269487831742016870:8933842984960 757459714951852:462649393360695768021737:13239077544 128497110836211:249338793397815253009696:128385164509472 314699739515486:292684018747760664867278:26603499503694 237781701910744:9944304827432989799176013:158608111190088 797398509194526:9521774575788938433463709:233305993643292 736718776119361:2208646372646478876569959:732309381722177 313336667998490:488:264 199158848501141:125:21 932331478378053:722:576 892659202284781:5426:5152 895714901744436:4628:4628 691774410685698:9556:9472 490730081416504:80855:12560 393980263257329:86880:86112 264439581747593:16068:10368 393669052719020:702242:694048 749829336343394:294325:270624 367949038095371:612722:2050 928340891131018:5871369:627720 382498040780288:3649483:1115648 795736013861610:5239514:4256458 145081564722323:55613404:50369680 965742769083926:46517802:41944578 484297094416396:34949695:346124 219571498142907:545352982:536890386 711165768130984:759074718:742130056 452703007501318:543493073:543229952 579885681062356:5348565239:4966359252 504622095728310:7254467248:5104624304 836694043308783:7152160941:34345133 748502387041342:70450324767:1109435422 750370198335383:59007339677:22231649429 522744002208032:38535036670:37858664480 555232138309665:566287826754:562779271168 338596362998861:418537556868:416926416900 270854718015277:839683929647:287779636781 437854455448932:5598787155945:4473225217376 306381293281622:8597887956541:7150315675668 807124565946911:1954135976515:9948930563 482138824714120:91705013437720:19794166285576 352744111519088:57479249605413:277600022816 522929178325178:18642767294885:18213001801888 471986228456993:137376463163744:48654786756640 106776061176783:299558792664558:69610766798 394245605116230:550378441938299:392046578106690 897823671668695:9718242132560162:563570844961026 708296037726155:4239717446676695:562950022197443 741982021630558:8989157376966863:741706563584078 864392948561163:20331361829633960:19791387899144 329417815921581:99691895411131030:45080193139332 890329073063836:52856580977757218:853804134171648 999704101415369:824477824657267276:281683681085512 712443069960387:223078632877686651:141650236215363 235408555497445:819504785631881510:94566914064676 994909946433742:8188371495131632801:704089025433728 210536159597008:1411656275563491856:58700408623120 110751011386553:7745369917460529414:5094773948416 894997837211884:90190538267495427965:326229811030124 641265686619367:63450568531757245585:3445661639809 991222616719621:25313203927967269185:704247893197057 776835800418118:521858076492641223095:73139006619910 274194094241308:779487508965534853212:256188500418588 417657917327304:477522347747327563218:45359384511936 218985697873511:3078619316675921794584:216648957232640 705251959646253:9711510850984358349693:1288490190893 187295769137254:1459902058677005104019:2577522003970 958168027842827:35149527050087675642472:287384864440328 393518157548354:57758110177873442704445:5639365462016 844772029307111:51881334413313957936713:563295708846145 217876458435656:402640398794378097115222:77138688524352 620653586127636:611263769930720559946927:240719927300 722568713361817:724599041497418378703374:581796824109064 666443319934585:4516850194455281156390242:648713136012384 360303723684472:8932078019249525487312520:283200198017544 922266195487360:8780755348130825781168459:844743839336448 7279923832807363:407:387 7825854362624937:464:384 9269902859994449:407:273 1201994391628089:2674:2096 8718165918330601:1841:1569 1546183024460039:7186:2 8012619196894791:89960:69184 9933808880165425:77089:73761 2226602719772575:23535:23439 9409398477668162:557267:557122 9683749286589184:301448:4352 7332868344759733:927783:917541 3920575070946342:7425725:6374436 5552942310519419:7340317:6291481 3682835443141514:7779195:5407498 5125862527327397:52306495:52035621 6866394769354907:87134602:85004426 5145643974095956:35953719:2364436 8206658687122233:411414686:411349016 3371697897574620:305772212:305762452 8871850813593850:890696889:873894072 6265634744498736:1241544943:1073772576 5294193269428952:6499666200:18874392 1836461434204994:9267747071:677679170 4482474046725082:69902999210:1073814154 9714692310928693:87836948245:86172566805 7805242706640686:62458443602:10917787394 7419153036133971:385178471819:35102131203 1100000022610273:463395012037:419364897089 6016837293604274:853170144554:274886706466 4632635178636965:1579936657130:1422876739232 2742406519570463:3070056431611:2200164974619 9298155117574624:3684025479874:108448002240 2591182985627809:12960237178017:586401450145 8453470737398518:32435827384304:8796234062576 7148133298949887:91945980542633:71538351148713 2000167701426655:572171777006732:571883838017676 2373332364465415:641641743224175:77517717538055 1786279856975789:886369608773015:562967133826437 8212834888329571:3140044338247814:2574517249255426 9774772196257493:5562471358963068:705922972552276 9296098027895412:1458735440943440:288623086229584 8376376570576027:30699204048581830:3659454410290306 4402562575942386:96795851023479262:2146316665766098 8147984813709902:13636983067498410:4629495990505994 9702893885711597:424225786544769205:9605445367480485 2651087742697206:259451086153280406:2604890719349398 8020800750051050:794302495758036841:1245609562803816 1665740897182996:2763591289007859255:46877490045972 6492528008631666:7813948822065510522:4521231407779954 6539783792539916:3538458763654723687:5384746796365828 7807987670142698:14414517559693473345:2996513893008960 3432926333778164:87057271073409056052:2254042863122484 5967639024799099:34067594167758081366:35188937624914 2808618539059531:223582073918981763675:301420905496651 4015497788277300:990708278863425690922:1759222580920352 2768660880260641:766192708345111654003:2621252904693281 8822651679368665:1319350773881973569315:3105159001433345 1846029420130988:4511098905063855732362:712844321796744 9268685899026389:7045870460717495922957:84945863868677 2422333293088614:23332459789374417440467:2261695472209474 5163829771715771:23572714686367036956033:79309995328641 6891836984913115:94296518348192745438136:4530058845005976 9073325572136302:867181473737275680092324:9073307979124772 4205522078123109:847439945638996478116354:4169787261435904 4425155230837324:958024111873194758229217:1856124836907072 7006909940951539:9883620571511651437162601:4609720082014305 6848844548602472:5538894017480391799720220:6847949010159624 3370336958031491:3818808068299839519809550:2515992515715074 9569102327716134:142:6 9665515846836622:312:264 8763667989305466:327:66 5878053395348459:3796:2752 8679081588024018:9535:8210 8042863377257576:2957:8 5084609528834550:50926:32998 7311373990432867:67711:65635 6107043642339044:34073:33792 1987913126930192:892027:263184 8780464350891449:762954:590856 5258276399391098:769270:696434 7044789024976422:5454618:5319170 2038765470042763:1578223:1573003 6389159010901761:7705628:4199424 6100596349192463:84086202:67307786 8012421208477925:65089398:65011812 9951582429813716:93257077:93231444 1942853539680719:949280055:269766919 9130828162173122:132375040:16809984 6672981282832325:116145923:115621633 7034190233732557:2622317358:134742284 8292599852701613:6236635654:5640815108 6914746960714094:3279012592:3225419872 3314200444078947:82051220322:81740825442 9857288066108453:82448909993:9395242017 8140469360370950:62996605375:28597002502 3181873534866315:385544824509:281324552841 8039622903338213:223016084948:216900568260 9030664357101105:387145671040:352741367808 2075054827800757:8718324505098:7972543694848 3217019383441002:9981857825386:9981790585450 5603289168223498:5927140396508:137507114248 7495352163153788:15318817040641:1007709102336 4143302087600239:86556670154859:8834764556395 7954087847498414:82270226180664:72649447899688 5689146305204059:516776995271715:24195699835907 6001118375630052:384228247961639:371033635323940 6968434249244971:502263661540404:211931000545312 2443942449064364:5953065283586450:42056345258368 6383588381292425:3226450032630183:602877849538945 1635649884315789:5584899376582642:500334200914048 8818008850562826:68491265514514848:5436398561765632 4862338861227753:40427194508566696:281755031486632 1408976053961900:72800920206339267:17384342656 9542749298104240:775266305121091627:74836886945824 4303188570388550:690012080454262579:923658522466306 5543563564321561:798658189526620693:4821651904563729 5363646587715951:8390885176062753897:5075432782135401 4725574822357712:6516440326924172015:10868951640768 1965748699517339:4244850354715624819:203134915838227 7879091823258857:69483730576720263681:1069618726905857 4743441490172693:76005919405531505529:70370908996369 6310532049972483:39493707424647699618:5701127593266178 1581489512181174:822630154021535903775:288180100554774 5473403318866262:820012209192668260674:4523390904303938 2587460039200261:247444565989771445533:2587425939391493 4771414843958583:7161834673051262195779:2272043008003 4285838284793093:4666006029181914950035:2025241371189505 3982047986298421:4783179528528122125878:567906398146100 6238475923051898:15503812359946895342993:6236997983474960 9280550955093371:26427111674031230600225:35803420853281 6284633032991275:32890253880484531491833:6280703096980009 7209215041347434:918910201666679394188922:2547225003695722 7580268879455258:433801305449632946785789:5277754078790680 5383467205669857:457849285021033483042925:4820414131863649 1713966915750029:8265069186260637158543467:565801829072905 9066845881556553:6826439524562521813289054:9044769749600328 5428504202138774:2956036746257176539384961:5418599997064320 3128007745315351:398:6 2998974324004368:322:0 4256437866564368:697:528 5360336534421854:5724:92 9009972050753587:7969:6177 9023760052522778:1499:1306 3537526156829357:82344:168 3662627493251761:13005:641 7274829197376547:41828:8224 2747062887779039:334443:2635 3267036872150580:921185:658976 4231649626393861:689779:689153 2846854570281826:3504017:2163456 6923019388801719:7589966:7426054 3347901543041249:3859276:3293248 3832928672903287:23643305:23609377 8872191517252602:62535505:58856272 8944487820175767:81550366:1574934 7189852526614479:974739630:940576910 6245110591184905:172362071:172359681 1085737468895629:668574757:604053509 2251078540998460:4891411397:9175812 4539254994109374:4932567822:4831838990 3146630592319944:2575520117:8474944 9619338659988706:22926595740:18363188352 7123850940741099:34602748209:34565259553 9990880699979119:99731437230:30737208366 4959706228579853:920924699858:901999860736 4966360433112900:284204853039:275437922052 3543422097667517:505049802011:210843477273 2248671619046536:4233389730832:1106643045376 3244535574132930:6259478366359:5090682865794 4627511503706037:1345536653265:207368181649 7116897333711698:35238600884430:19332104258 9812585928155406:78544707936797:75241653166092 1910125789274244:11924008871482:8900245987328 2179988869554531:782929838762690:712552357830722 3644659294666273:514490843059945:231774060860961 7288803858416716:302534657181802:282713080725576 5371728500957249:3087930262958677:580559321440321 4066518895354616:5668858422036107:1163602002313864 5837694178423481:7268865084912852:4662315870744720 9702659825167814:93491510145561758:35184506381446 2717226162301628:68920042153926452:143252261767732 7722463461556723:41812319698410878:4516793805357426 1983744461402859:353425945191101852:1983537456623752 6690481541801836:738027899836386593:6192948039402784 8656617643396515:845845161250833185:7882541987414305 1895734292315348:7473139956266218691:1315153346081984 5795999566118720:6387704296834469119:1274498376535104 1455729994074180:2853373136846636889:320782670659648 2604246186764672:97841127239210176571:282042999373824 1996451385447020:36311664266824662491:1145978929549384 1837466742769512:20992843499242676638:1274471419232520 1929120366576006:410021679351121764009:141297246060672 8870740488695462:685423526377479063967:2675816990836870 6185677344379441:377781989680595456436:1468956863664176 9890684261730059:7360798849818617849561:565700376659465 5340574629773588:8119101103559308736444:149636871373076 3435195540269219:4497823503710369742313:1147899826235553 5549882174888609:42992510082850389614648:738891159322656 6240669082701430:33004153444214828117620:600344586423924 6218459131667522:43772577476061325527318:564204419514370 4744315867667260:669507472613279722330832:2370975439376 1363192846505449:578454028817798358544676:1289520987246880 2709388321183304:410866273190011090456899:175924549079104 3569668383173262:9198493241370080657925924:2436552685904388 8462796624174386:5465829065021041394418986:5629621446968610 4635116524326832:5771483932886266467410766:4599824094348032 47515762084621606:994:290 38249756191411972:699:512 86436497877669567:329:9 45383770242507758:3207:134 82294505490594453:1774:644 16346053369012674:5735:66 82698169154817812:68221:2580 56950889836642192:56648:56576 15011485633068804:44009:43776 51078162314615394:794813:524320 81596181020211782:892601:825856 84274008083299756:536792:536712 37061499055540490:3287323:2314 30906322351992241:6015870:1739056 74858914093984571:7942068:5319472 68680631082787798:43292200:41976320 25004148071328451:45490462:45228034 45666345021699930:71737966:270922 26066065119114453:412147599:403756165 12287800520427690:678106013:196744 24240518592466933:112877971:44040593 31538659155178414:9360833876:8818716932 51206503961694161:2068670671:1111558337 38899222652009912:5576381068:4498395272 22769361125988319:27007752587:17205629323 36869244670010222:30107930130:4337959426 78596649813589202:26963075893:17180696592 45211352463876934:594370832702:35488014598 89388513730492796:453914057084:417406835068 13138501296569561:673525258505:19598514185 54768225143341613:9207587446238:313744457740 92564136330250314:1979783528548:568819138624 31510792284169183:1024291336060:988052218716 65740961360603194:57853554300212:4458444816432 58095014052032618:64431478777467:35293948452970 68491564231846064:49196085192663:5181209452688 79066990360618065:407101416636449:107752160690177 14209703046711657:217457251043905:72043885398081 86805721914935155:875239870580180:4398198818128 41217753696877285:3089418671842414:678691101876324 27691034653434170:7387185676703821:598792028160008 72193576484783681:8777271758106468:46869924283968 89761067284889860:33241065191883571:15199726356201728 72637705250273188:46291826857459891:6646505259168 61876219344481421:93728330642116229:20499309955927173 24198110950802716:289414943700863484:1178717794615580 32213758299753174:985277001112383271:9112984567826950 41140403510074075:102948263494239744:44951681384960 79729013886155659:4018879407647393914:72410559264360458 12789862761305697:8471397508348592741:123173221499489 93424148752412604:2579659221739918397:92543986766709820 44149885048686154:91936673924307932888:36178417053501000 57551051888486238:15965551603438724646:36028797354649094 61354521788569930:80487694266293951108:61283600067336192 98039888672197809:112984807386643294628:96838947061106848 25201458197251566:969862265590570003500:2392541750821932 47309445281789902:688268095598123222713:45055858493228680 69923152406888848:4280884590204100052456:13555535329132928 96293985113610363:2610287041215520552340:72649227939090448 87860710918089058:9659030454371892500286:87825147457437986 57884214734997811:25970575473275279623740:176334466826288 10210264512009411:18274084982407021420655:1132695958650947 62154326729358381:10460173672366122387293:4521210099844109 51124718735402567:129083091547089008509597:36310856246886917 68232346520318311:469219921010824128781854:32132815139655686 77523044124964685:368691032801710266525069:73016677421294861 21723775680697936:8815772682316867173488752:1453144940744784 32517212289964516:1379108257727371782358507:19006236146074080 54215606084900542:1369684029234890508261245:18027593262962236 19189722523837729:280:256 66658374100110210:342:258 37764534702947498:192:128 43829997819831782:5173:1060 61191092472767324:4006:772 88179531427796470:3035:466 91348610176275605:66791:1157 55889441401744071:85398:2182 82276194512133890:50207:50178 76866425511159206:242899:205954 24983649423636160:458043:439296 61242477841978972:605046:594516 45287947529721176:4890230:562256 80700779202413210:6674372:6619776 15881722195900032:9984737:8934016 47477398257070614:98895221:31457300 40742443791606409:86059207:18882689 33312891268193873:31629320:6422528 61790300468690940:524312677:234889316 74930959282769580:257282383:168853516 55909472511880706:683288627:681715714 51697583321518881:1318800830:142606624 91937559708964387:2608814978:326636034 60526764354758780:5447198969:4303661176 28854052742026539:67521387381:50063511841 90365045934368081:76085485267:6560154705 56884216752668209:45842074397:2353400337 38867087772124408:519986107903:451241313528 41457135988048664:807749197571:34386477824 58894460405137884:264618909981:210931810588 66607660962775063:5979874784525:1443109109765 76928765292439196:6806002644568:6599758489112 92965157014948477:2824004636822:2272042483732 43657736173474863:90992230508091:20069309547563 75284759655463905:97646237247117:87991133446785 72100369729028355:54313624638067:35619779477507 43689995114632819:424618215514102:283743273260658 96225093132767096:899550841194698:299213192185928 37271817193669225:708825020390700:567732879400 43074120131768339:9017492410374907:1151275765779 32221443208066410:2472223079116896:79410858373216 21939434913541989:9877766741709380:301011718636100 84899466641944488:50301318648215866:9170512781519144 61275301667748473:87435976690354669:4680134210685033 39613092347960184:69739947502685169:37295454975183728 88109228031027444:461843434586209224:11263534622648512 65642813147157702:702623849261619657:54096564820414656 79920017102471165:955982055784222069:72133000854277493 65083767387999995:6018922107278682342:38000514818263266 89641614430222426:3772387613112256688:7371675710556176 19392631808703421:1872224190022397197:18121575964715277 17718693204240046:67433287511681732373:5102859403265540 72859273811493396:26846525135313202851:563083602821632 18768009131917352:26185508294751561378:18169458123210784 96295608076470523:646572125376596408092:23644276006060056 65447466584410465:651141276083151754487:27166819199516769 73598500965516393:410186554404147996683:388608910163977 26939031209881872:8423442013987667639806:8339116182384912 51752537549688414:8423036810018180712100:6215025984423428 39403175025504953:9988511889793111983890:792028881519120 72897018871747120:93537684082744709777185:203760765239840 75611685152357451:12623957367745227444666:2252130527137802 99827101929295988:40054115973094090855450:176162989002768 90125501729227943:796190601928148532542055:35221202665511 30207464978126119:781862960713146568112024:18947892489491712 12989284350385700:639412491475976030092496:9012161771822080 82079261601449166:8207028894346096908645180:72902032088760332 12028272761146411:6250194240031654645634190:12024423108346890 21904711161091341:6399606132662809265795728:19230549722271744 64231814430692389:999:37 76462170425200722:589:64 18548173879961583:916:900 68161687340808528:8592:8464 73259498038784586:6278:4098 16145205415485273:1553:1553 75577105278623537:41015:32817 92894549567587370:76235:65546 86150913863866626:39785:6400 31736194576809685:237183:106069 84623566720587666:420544:17024 71880530501338351:360208:263168 95618436967158712:4297649:4297648 42178764972696572:5009175:4203284 41931007677722606:7014452:2099236 99556206213057467:61089260:41943464 45959306292569449:51797983:17827145 18583014758739301:45912881:9208097 73403835325639063:857569437:823945365 30673483219042146:555723434:17508898 50695191026510465:493277316:342130816 52776368867992992:2928467104:2928166048 41756337020410363:6449111094:2149646386 13839695642988428:4462254799:4439181964 52412379477443218:63840309946:34561327762 45658425859674483:64942173661:34600550737 35879229063489550:77029205975:77024485382 68442149863250417:650633084215:572509935921 66539753846946483:270622719918:55874173602 62767349424737598:347128259275:70069272586 75210843977759413:2149205049491:2010691141777 18444533582565021:9908881347345:1099513201169 75099495761751084:6165591081868:5031714652172 87034132363204417:51695927128314:40699182927936 45792695757736346:66656424203992:52873202270360 24901677120710066:35091402166217:26250874127744 91766205946682703:539256641364804:413533471044 36665576116519364:420210246615292:72728869142724 62718869301506438:931943364668464:635623771873280 72965795789183335:7330482520172042:573945917243394 17270857174826196:1369699526414353:1224306207494160 69261598929297856:3052961562550226:580567913497024 20402543406745504:25861043626623196:20371756812468352 69601811503366186:48696452067930109:46443551583666216 81381681893680424:85066732302798607:81100201004893448 16283901783187158:330113179993195960:4723570756813968 97731605837776262:144258394291199337:2338626995456 29468463917232015:321683678881737358:27181061339900558 54856921455113937:4984261476100161119:743287385044561 70624290284656160:6343595435805744162:2507300521382944 28554094721668669:7275261971497156295:28253067980084741 71715598207798116:44653631266873632011:49680351643517184 91524145810589265:69464042672471099037:290820878059025 36923363413867969:46654868245150129789:880820886838337 62092226663537110:536520668485370747975:42801793100650566 44231242310050782:633677872988732683865:3382183876125272 18316049165568174:809615022845760012296:17871426191368 34697203275601952:1272472456424829570927:7393408824969248 12614625747157811:5806421868545242436388:2322869879178016 46344158549553833:2744689021369347812008:10169108209345192 43330396381045788:79146545634075333893726:40885065000944668 22567790077055371:80572366245884034652167:4540158770712579 32428027203130635:16022443317926806871941:4786294411531521 39483004623955350:252844853518259621993519:2257298466800646 99930171350762079:143577567693134739214157:72062336102302285 30588329346548790:392227152612411795896736:9016443636039712 63708421787710903:9146374756874239485291947:569824057107875 53721660154737462:2094052423785038418190803:14103435716600082 58447721586964777:8127359690478937072693887:2433650928332841 184338200755214172:853:852 401977900570415539:733:145 342891709208968927:901:645 762777289745684456:4802:4800 982568530761471892:1078:1044 223586573844407529:5785:1161 891229049912182391:85769:17921 214590723414748528:79521:9248 186207156471393122:84542:18978 860503424353401598:941718:416406 558391859672256447:438763:262571 305441584836007751:263177:1025 376546603483410710:2859431:139526 776047590619572978:6388130:2189474 726060821727035892:8741987:278624 956023662129458223:35153357:35136525 835559989939501064:54981694:4616200 596085244154481544:51483692:16777224 909690471242435455:356660818:289538642 274494542928136530:544458041:246032 369910618025716920:996093953:168894464 725416486501225285:6595590608:4429189440 344840586088081378:5762384320:4653711808 793682991102781827:2817738658:2767405442 534787858763388276:29571060969:1115722848 384843293579065364:20749724211:19675523088 653062489500548692:66137353377:65599433728 174579223867272034:929631455954:824671472194 829795013041075614:607304961733:36040606852 330369026810435674:140622074328:138069315672 877559946558889972:3528066700949:91016435348 328137922649963081:8086220513100:7776982014536 901993302211005254:1601738186507:137975892738 509299692076786937:48014253080975:36331404378249 262578679836205394:71000505862170:70931404439570 948047845013928918:62071264374490:35682858904274 497893040317916960:338319248728563:20963802489120 862325335650545058:264498338382477:158339606511744 828573049106804878:274147640708913:185011357155328 933006447204126905:4275534520388453:615739937521697 784559674396419934:1160236200597573:17697548435524 731330466551795449:5770428906887943:1126088888551937 426646229845283336:93979889895960877:92816597982384136 776836806117158704:64705351236817466:55697018068763184 889209405193035494:10455998358567832:1408663430830720 484661551182266650:342241065283176166:340514406804766722 534393307899226950:322671554590881180:318075526596075780 143536065328555710:745490036405551757:24911669344436876 964375204111519940:4933327427773076837:315852446264135748 521053957855553568:9206334546802515417:505283111710492672 934464369296979400:9246794739996765591:23400081343653248 471302224473840554:84617913375539638900:435203058709828128 260332050239321805:31116766460281805637:258079681341870661 577064605308035487:94933696326106438570:40750788116874 280465659601612119:712500813830102402911:280456863374067031 731193372414007164:709067234551495266921:167151676822120 942648648288640729:887719154961244622491:941520676042182297 784394866481047805:6591820427467422602624:207896558980432000 575180421915302727:6283945705184100876202:523351058689645314 968995928652360404:9521850225790551442956:878905788793717252 629226829461001725:19049830595180966938628:36365750644178948 350942781749101309:55571277974745674018821:308013373482631173 360635613831716960:51754267124076640584813:66159969910880 153568893319187288:870040540433086430256334:144416488634386504 371144177359614229:162399566693377200887251:9571835028443409 619984460677956468:373678045481465411328656:43523072714129936 222049104812082025:2121154355423632638448113:145311840405061985 655820944640733402:3742062799370502564807414:78884496094527698 636064082434087297:7687668752776802030692378:616994015316805632 263729152199617757:924:156 858790528033737762:110:34 117431780650038815:505:25 278180666642820769:2805:2721 455483085609131513:5430:5424 319339268136812468:4714:4640 476102349371548676:85931:66560 919069034388221418:71996:67880 482444900346805802:26318:9738 585155109615691842:904016:378944 781503317381332769:223338:75808 966007034589027434:745359:72714 380195746343870083:7569824:7372928 770074292649802684:7495802:8248 268767433784346738:8397666:8388706 227890002795303235:16389901:7999745 782733046798880991:36194686:2621534 180031978899603418:49828263:41963906 320688684481304824:293388232:293378248 345620710884748498:905905306:290260114 368828585039927964:215317401:139467416 887870649008511376:8320113544:2694896000 721166931511168216:1779611017:1209140360 784658015568684986:2096576009:1344415240 892893569973400969:76679548747:71277217033 414133396291179307:60561923111:293965859 841924518380912686:45453363136:10821910528 189237095037471377:473410559427:146565826689 319143083862965470:911408707130:893892178970 222051094651497011:670809678744:34528584208 995709106989643759:8487464377216:171866592128 441698007102012673:9874039134518:9871077415168 263795617528612051:4996009159087:563313442947 170620648216154486:20515975502111:2749186183446 948104353291537342:47763223774469:3713300201732 727326853130029802:44754893069659:44668934948938 270734459042002747:986943477049204:423922046920496 799842812880898942:503312354863629:431835339966988 550745084757017930:283019002442545:1254434013440 738217424840730395:6584239115851617:6232393228781313 177461560279699300:5749080317796361:5744123621408768 446092734366632575:6733135238285978:4717730322860570 652920959867217742:55176226659527102:1130454015172878 118909677315513018:84460993260472911:82208904475986442 788814097839617586:16361945272776257:14109045405283840 187157220168359034:890382068320397991:6826317941590050 291152963386671723:479814179755836726:290517430340550690 647508098373697686:614174728774668101:613729975614357508 525298606634788514:1831583456432061653:92909007711855744 895011765890910389:1672212082062746972:297413518812053524 152296678463290999:8671764521640885843:6756503784799827 809272822307651099:39415145657977903650:160467125004409346 208845653145166139:85682789291756045239:1240252748529971 245461076775304875:78674035884449854825:234187783300740137 896903745876412163:623434627167337406542:603535145721151490 351729030143756373:214147442083194884969:63195186893176897 877851312851371931:304365292013378800591:876653935561606027 912837318592303647:8800424414334316500898:11259206032167426 323600936262140942:1413737323021308485829:2718353601003524 204829811766035838:1647498661111317894423:180991847768884502 329109684287784117:17728925749882587245114:288513502544937008 620743778252735922:82369631393008621407511:1128288685212946 417369471819933578:47020450717207009347536:126736591847835520 631717458902801564:196169676551881347948673:1196408510103680 406187918900579315:772823060603197183789822:9588301887474418 601830108193749969:115807379034647104554922:583779136058000256 857351895785004428:9891338270258510049920558:118326143295505420 782714764281805014:5957077556777910038978133:164525337669556308 166875052502986279:2175318087589033637303822:166775063515792902 204206569274993962:481:288 865891806219305594:893:632 592861580254506988:324:324 818847785067424647:8063:2823 941991188886365187:6515:3 942753645673963580:4572:28 319356091489279855:24334:24334 524249487571479212:79471:8748 286789436494824122:57640:49192 400519364575824961:110052:68672 775612243209419560:654773:63776 615276470289336392:762372:32768 999957764972907715:8018454:1705986 523707388922164525:6575611:6313257 713675999435357199:2205474:41986 476869258190242050:46802365:42598656 728378562767581017:57044852:54816592 709628589228097177:57373001:56782857 970676658811896449:473587778:3801088 318580798917732543:132548334:130023598 737934530763203168:969962779:25174016 228940730489121505:1398503784:55060576 907191072185404065:3970179116:1074004000 337140845582155376:2808515570:69372528 979063448435514851:29912231902:20946374082 380996744141715272:90382358695:21661814784 416601279992720224:20855806764:168839968 785878577893065831:506587836245:434108679237 297740925354683756:389731745578:317975440680 582995718537476612:171015090099:18258536960 818009917641848010:1086519727184:741444506688 922351470097812073:1058254068739:852082886657 243909173737575635:5539684649178:42044096722 811052790057409410:99656688617572:88111808120832 854779329889561578:71379291013085:70648072825800 506253500377807929:28751341825402:19928916700216 305529063193404121:703124889304220:128711580082328 140899117289589741:394958209792590:3298719566412 883808740511936114:106058309796267:105920528973858 988303901106702650:2725195229661027:325491438977314 684087708228803491:1912218800112787:1770373172445315 569290019671872424:7330846594396104:565431104504712 294012663646024422:90380390164188202:9294980595746 118419747211322955:60408757409221119:37317569981448267 286386333120830848:93961091920492262:92693331382932608 112363301427027985:471841706844557657:39425739435081745 575554873407892477:910259417676896454:333477590328199364 451166410704642662:604024561727905978:18239941404467234 454576553421743700:9784821517078738847:453361988177798676 834048519431097995:9346543660377238256:112874420634159744 662519371876821517:6286575889508802074:85609429344455176 391862770049765049:81002785024855659944:297273911123395752 114297067799419314:66220885833539684073:42239404840091808 560198511693219927:37039135708012594285:145295531072110661 672690533881812995:829024574761117574201:73430199039557633 958737981599881851:374511667799641423219:955916633399466099 697964342463775848:431142079166300860442:651905486570913800 279429023755869070:7062537525363767049871:27206470414113422 962419716809565496:2345607289529804880442:383670185006997560 266946005126079681:1269153853326309577978:73255305808823488 347117264354481643:68337954358021924061530:36363117277479242 910848187335748897:85533502127192611681973:325104154869539873 603027389154289841:31647963886421466386700:7353607457275904 444230536382943764:178507827442156878336270:288249072265236484 573492083734876802:686674056634499392254078:347164200340295682 887418334700867034:452267880418560539276911:864759573221901386 151211162511360827:4070614937956692456257601:151210612729315329 340590444601047153:3695784273072737400609351:335523756234659905 762427633363317872:6556566036964936566347390:582138510518424688 6592739541694096119:495:231 7225265031392172840:120:40 7478434183852703707:863:859 7518762535385689010:3878:2850 3587611051476568182:5153:32 6564434953365303312:6870:4112 1150503128119017540:43407:32772 1883670883524441568:35879:1056 7272314328331577339:96127:92027 4224859394694602962:801467:794770 8927605509856872710:562467:33026 3133294122059362184:637789:568072 2750128153784027440:6088584:1573120 9138313791175463347:7289510:69794 4012529079814606014:1859424:281632 1443013602137329942:69586673:2211856 4309073873046597818:97671949:30560264 8014265419683498750:99362415:32244334 8485472613483829156:618711567:67125764 1050695113873109468:804053560:631513112 5873461136323160059:196501311:143787835 9132828805637991144:5139409911:5133904608 8904149225370859281:6274728219:5704286481 3086307350593742060:3609432819:3540058336 5551454939608482699:90261634073:68786782217 6078312817027664738:77101737004:6451036192 3558890001436545925:79040414075:69289902337 2577104877805488216:347201958346:70170787912 4568644526882615142:906797415672:897670605920 8839893234051505883:115318930089:45097163401 8422553708077451297:3791910461588:3779824517120 8128853677624600623:9542600996002:8838192373794 3644945102432818838:8268670004907:2199023404674 5807578098350078992:29693017228933:9896430830592 2810708317560921808:26084415644753:4466771493968 2414687062999460214:72460981401244:1129593200660 3384255265358256343:912602356508247:855426627567703 9547676392252551974:140332894080190:45087694782502 1790468957684071495:819784815316659:30133259267 7316995782293370595:5499179227658272:844841812537376 1195773161688665380:8035070715175029:6765684379877412 2185982160210306186:1101515071573582:608100269425674 4085236754824124168:98284899397366086:4834587021234432 4690440309923807689:57691808483925488:1339223972118976 2482260841270468938:56842764405379629:18227778395111432 4466874182346883675:751035300773566687:606866786379497563 5563188509806730326:218556879445714043:72172289001522258 4377481934181851005:330112875671428428:330100467474963788 8771813657610157558:6704435586289081748:6416134136947645844 1605138636198069742:4070788454051725187:1172651165977085314 5417795489914638013:9445095726900533956:217193133502581380 3884572072624221455:15730297863284864665:1173192721065190409 5029449857322057865:30412427615872279375:291645220918919177 5205641270580785313:63970046360967752902:4612251324304629888 1877166643025924054:977542977565722765928:1873506351414856256 2906901912680232923:955445340267567713355:600987292266464331 6290350139813824596:939410293647058804873:4921238247684046848 4088219480594944093:4807782820095718649751:2314920731832516629 3648358848004414192:1830838362380950963021:3647935499453071936 8652155898547911259:9130924965794144316158:8647474921833998938 7816169339933417168:83522515535693227048022:4627461881106603088 5269096279917388057:72995314542576444012819:79963220387455249 3515968327521625137:61401763925106852086835:1189539642008093745 6508657456934344064:577346917783051842278789:720611232209753472 5513875814631326737:666324044713562570978900:5513576668506571792 1229290176676492805:824605578949686501927512:1229289334818562560 8619287940903403823:7119895586719225508348333:5767018301134274861 4425506781914070555:7227991312720718440141478:3540537635317584386 4265451837046379934:9522581183904399093381109:2954794013674935700 7805665847874367888:656:144 7781114985471996422:531:514 9390295064450035953:594:80 1411171830412192786:1864:1024 1067557737509369988:7189:6148 7896830565264811689:7935:1705 8647953623061071460:57770:32800 4425978563783598671:71360:576 1115302311697840352:51090:49280 8696885394722780472:188214:185648 9223048590459597761:965983:176449 4450575929328432784:326081:290944 9338551452786209298:8499196:107024 6478977812703968025:6564925:4204569 2917980054676482521:1338191:10569 1841971830552030659:47718346:38800834 3952504519222483549:27129298:16896080 5119336491734655477:69689252:82340 2897083565063326134:451613149:136839572 3243611186398807832:123832025:37783064 3886043110830283057:990508431:33591553 4106922705746715237:7286770622:4294984228 5152001319412403756:4892956851:4322265120 6176044639011885208:1976459300:21118976 4814316373589074114:79741795301:68721254592 1455285260713538135:89981493131:72797393411 2457906679486387662:37611718679:34390147078 4273258166487946533:243565384843:172419453953 4722974504778190708:541038139340:317425108804 2280747407998344401:935816733314:588410650752 8804078332115369933:2095577808899:553113550849 2289531075070200326:5680274073469:4537809568260 5922080848763177803:7674005664551:4546359198467 4206814512368498493:84817379909260:9895697749516 7138798116725280547:87584723853079:12096372887299 6600881264732402032:49384913103081:9380210925664 2028910073822356083:192214557332019:38278365446707 4714695404082073056:513147637725496:512596027935008 3559840703621774544:698606984589877:589613446082576 7490138140289834507:5128799540892310:5084777463943682 1737788419668913503:4406563645726912:3805530137043008 7810659173935840727:6091936214411237:1407376024757701 4552854398222571028:43187756782420224:2370547071680512 8565705662505166793:20313021989717232:20312930788574400 9751011117890071942:18168429137856718:18168407591520390 1035200709437744911:187095648819741865:151011876174824457 3698660993214265838:198372089076180698:162200028950044874 6498753047611691635:616859963879159824:576465519803191312 3216245961021886446:8963486124397571623:3179578862067256870 3160038672382266045:8470980278676692057:2416944458887399449 8946014501197197842:1475234431054742729:1450159913560965120 1196933172012903163:17732292927380055711:1158621787779555995 4197112719223563185:72652405078683934154:3459082570654286208 8773144436977348078:79734438737030045652:5800671504443248068 2706742485691491099:107843928893586912833:36030936518304257 7447926709079476810:705951537077085372619:4974235271861207114 5780812459040845264:852780673384948800369:1166872131968436560 8166078460665250855:3625172742145484168661:90222729025979397 1654203426951801886:6156097120432412823093:1153027057741073428 5442121250020458791:9138675605115122792645:5224250404804493317 3276679526598501838:28006042454967643180393:2695433149791503688 3920984738318538471:22337086171598467487016:2612653036467934240 1924495412139642793:23447895861788005520748:1775559550555014440 9432532090978928182:832837703815813755893164:64758168269653028 6519991976322625491:676631014587872694312993:1738673302887538689 6498363853948815847:953091980200828805446008:1729965461988804960 9180563792620101859:4545500082542369562000185:945800041271468065 7635851841593173909:9487506651320303307921236:4621214433851475732 3649971399397056454:9401390729528520452770779:2352014801485466562 2209761161374047384:996:128 4040760821563356251:703:27 5988969080536176830:833:0 4182386397725729917:3978:1032 9274426477653766657:5131:4097 7119924205535669648:4955:272 5075635480909754566:67341:4 8148498786243602219:56743:17699 8951039745978423513:90448:16464 9894031475599767051:320956:25608 2485302831960889145:183960:1560 3087153140866627480:243608:145304 5203672293599902004:1241782:1077300 7269620620059823171:1854091:280579 5836331787985860536:8556402:165680 9639520230018514884:88672251:21039040 7084746290675884818:66652764:58720784 8974206707187137903:21984700:4273452 3077788307631834425:100018054:3540224 7581678342438914244:294144733:268961988 1899210934117638909:661609461:554566389 6780495353707340786:5899107844:5881012736 6371431052767177690:7529788316:4295238552 1165269302767895356:8645441287:50643716 6416854783366876282:83235118670:5923474506 7781450054238354937:58585001771:37049347369 4919749080607419094:21797318042:4314409106 1765292581580196249:712779411601:11534481 5757299189332203999:892654442793:50806151433 4681830283632606161:809766490342:635798819008 6647858467593538067:4759637370819:17724867075 4704404079990087959:6558459801223:5038040686599 6275540312968354233:5252292810053:559420281089 9474171955929060147:69197406235259:4544177111603 5536443148021527432:86737253168161:75458618191872 8190033689135805818:93400358354868:88177342313776 9074232055275720858:762042013983978:603709596500106 1741533481904215348:222052860410141:10378811117844 3740847833907169138:178944348800162:35221857633314 7496436385261226809:3322428688929226:2393809430970632 9849365555771375624:9044867492122363:9042659589521416 6281251405700226101:9093453368348632:9091116901944336 2595728208245343921:43071982145821173:282631690305713 8783784738431919889:51131486119396454:46167944848737280 1510474898907882538:28901921495664156:28719385115902984 3584369914963310982:279102496397225049:116548440324581376 8333712683857364520:861325996501567926:262346807840342048 9657569642763141862:403318269268916414:288393396101464230 7416656030306800616:4248794597966745693:2514204913523757128 6702331513085264162:9523580865808652033:288799923713474816 8430821890740996593:7729673126132064213:6989657819623721425 2772830258421482438:38477612221143488955:322869809335796098 6415345655831972493:79612308665642124937:5766754732946227849 3064860762879395967:42564691377024129588:756604737954351156 3627251905510003925:557483960113291426864:3460035565414536208 9456490191690144048:967939747964343941288:7881471172286496 1098491748179985742:826083386489717605529:591273561970656264 3763899749762098340:3431767466112894927861:5638438975963300 8485905387272226474:5274733900353964017016:8179457903018050600 6893079542101172178:9246151376941449197178:2026656193567757906 2998197279839299692:99827722061684995248884:2995368776512897124 7294135838163084946:52546450036124555061014:304503990075794962 2996307321094175520:43816932921663445250707:4508135188869632 9866377417050650458:452451178905878099245652:604689392778424912 2411989122080427932:998072968613818712760718:2332874518764224908 7438100682729128909:740151133633586357042193:2603168721728503809 2878237670398860792:4129411631099808746664195:171423517894840576 8237398410033059549:7141209360635438601010003:3463290248910492241 9211922693667670334:3736730553155991953225524:1267218349761757492 74387734471455499524:339:256 20970352233932189410:274:2 54763320057173731605:272:272 68258353952303309390:5213:76 66803882274346022559:1794:1538 82603192953711923624:3550:392 68901868661338337022:30290:26194 37820385555174487228:74748:73916 43658678141419084471:58958:16902 17778256098678891266:208394:74242 93796508130894500206:158991:16654 21231722668534640670:421020:270364 70315161834583970947:9524640:1135744 54877695378457157319:8659065:65 34710601756640901836:8212945:2183360 53756683329707610705:94006038:131600 74594222305147436357:55562233:38079809 20146622276423881512:15687929:2555944 34838305447570563746:776157732:709042720 88250333801108647439:870022961:278539777 77332470189906543290:931460899:545538594 56103620665293463910:6626244902:2148819238 93296000106909889381:5357427798:5251485764 40120596518126621441:7472964841:4649648129 87820340239437548165:18008974716:17465737220 44493082211316297664:16971897661:5964434176 15918524862108037802:19177466296:17750319272 61265386475120224136:513468266878:440301773064 81964317946027730971:212257547850:137473040394 62109327064316255801:475173286721:429530288641 61378387575596200637:9780671616841:297042776585 83723194018952893199:2720159669856:412585464320 48593061507955813420:3382507229261:3367256473612 70565204743761280858:32111855377655:23158708608082 26601380513276695076:39733457617923:4544754876416 34353054670014537394:94115058278169:18761667599888 77657701505612902913:931839134147629:848823783268353 90956611018097078248:158801290610916:141071590099168 32536864543140872799:623521466767920:599242536649232 29572098477904500673:4054275716933330:1163569157375680 15023412363939176344:4335304684316179:3765700665673232 12913637592122554811:2009561808957608:1724756063711400 99816161499333225157:22548435027766864:4532223973927488 62106340394730495193:62981367223898986:55733179331448904 70706326189794538735:56556440493999860:2327701029520612 75495823963764717430:983298949423339872:406732604201767264 13750478465838616580:537790507392561563:455568408318054400 54777101370688733917:821976584301532064:587749820982297216 81690655696508810805:3990742569627671194:2675562624508613136 44978750442474379118:5118176249956882339:4612823085324769058 15349781389630482307:4529797542446110236:1442560185046402560 77653829967051397760:96805318400723434916:77615475921445492864 74738629932230110738:24446403151491214239:72077526051301906 10488827056857662180:21985966865629373188:1228858315254055428 28461739004111432400:923561043850555792651:69911353066850304 54479875803998098654:206161906771361215280:39488160079966113808 94455603665586273742:422703574113713258164:74512202147943201924 42109040348286580931:3988690658509544702744:585850602812227584 68648177511085925219:8545515950771774515068:55379428851037266784 53723557367824851256:5567846651459044376635:13907222066807177272 41565548106787394032:19455145299309349954283:36911592437446672608 17882162637214017711:42563778581926651085603:6918127301631098915 40969724188093178424:17598902220870790418187:37510659434566648328 68651995962834464277:990772909507128331628541:30567092304998575637 90374677236820199223:328427421235539016091104:74220247695337915680 60347574689916710786:742623105403855543669065:18834197067811127552 32720933893779016792:4240719561805967926532617:32720916301573294088 67091886871882085429:6999265853352435335818384:48571955454860174352 84752072339722896488:6599688261169805262932317:10378898015055249480 42367460842178036864:765:128 11666613691566246843:267:267 84219482365746628152:194:0 15621427454555394377:3716:0 38336096304742789083:3881:3849 63951073549720662607:4963:4675 49184311156869913862:39445:6148 13009293166163802117:87046:4100 83029916789576305431:80511:2583 51991825472101365586:970767:266242 35468838222919074372:561747:33344 46291441495870773348:400935:399396 78491433494566096616:2667564:525352 45279519658084157327:2668539:2623371 21210136615703384399:2560441:69897 43760869268896187598:71548352:4293824 25860779120023914182:19266341:17121796 42500789440004544903:42522768:55424 28612685725129981086:469482468:138623108 74590877652246927463:539222317:536936485 24927488004785067288:379502609:335953936 24981783061738283657:3023562636:2684871304 29950745944409529337:4791472856:75502296 12387543101994040029:5037572860:4966138588 51416016653443021950:13158627295:12884915294 80915079169237678238:69951009479:1090859142 53676630786814231336:91188589842:21529575680 81046929462227821902:969908766082:965563401474 82932577365017757404:272962283323:238459815448 19803511595873862173:106543460722:104293728272 72746727812229400557:7134808348156:2217070724588 85436441179256026970:3791924500485:2277407461376 35254070443453616643:4062298645785:2202253262849 43403850506937271161:37914596455514:35263930007640 36003548147768895701:67223811284706:13198457571520 92202929444505707412:25265271512844:20684663718660 63150157133557441302:841669128379978:683157989491202 23736512746769372336:329731762382132:290823653573680 70551573541427116241:294712450690662:290279937288256 42096592389760647682:3420847958058104:1164641486536704 15399526547744133071:2909561834976047:582784164823823 90042297163738642748:2811717947326305:140961099643168 60808966960675702895:91616760965701969:91294947449241665 48202882347944347781:22451898761487264:18861031222804608 21983106643183327448:10589542857957678:438705481367560 70848265926639411957:726767512087737109:150195698371961365 26197462269623655906:318651357784692787:18829431396386 42007994078920598297:917847871041732875:340092157794844937 63700433130979603154:3480917143272404343:3459927947044991058 67389525841268268481:9724617371656390568:9670495798207186304 33498571950253935612:5822439502178506296:5818744867089547832 78828189166539183748:49850963647597014855:130657443126183428 63205519261457593885:32479088593017645988:23068568568719352324 38676885939318447315:17948888344780220701:1735929651206817809 44356956738928277627:716102229534274258323:41613824744027586579 91020939834370325755:715826456934288290234:88631492127702937786 17419833199608808700:326386845518708082963:12792195465661906960 49791980411720178970:8236557173182513198443:46188922451425105162 34627054617158390963:1622918830496944395701:34624800617096451249 19228831993243457749:4514521644846776040305:761820824859646033 20160833632220954936:75718625882592634164935:1657792084436271104 70582686331239744036:14727500831383048722367:41577232040401044004 82709415716059229775:59583359195703262375139:73864133704140467267 31966895549384171774:319417003031797330768443:30057349378713198650 98624074140047730920:755722910431997077135823:98007616847323865288 25313182981781235174:726574382934933116676037:19385860321763173828 76522071010397244506:3474825153936210560701189:2604487959520493568 10900879627036345990:5810037119660547640761114:10828078746418872834 95051821170486187945:3672191297679535673115890:94763160272978314400 22061760002539000735:597:533 39366668492954807591:620:36 16040607676731014405:368:256 69228503420047716859:1445:417 19097137574599769778:4593:4272 66817360111722965678:7089:2720 21826709946759231961:53167:35209 81417301003797126869:32745:24257 50193608691462953039:91685:81925 77826170646409429656:329417:648 54946650685277925513:149866:147464 94513297163412264520:534535:524288 76930592957074815991:3048956:819700 99952169663790914668:9157581:8460364 95042861947787337579:5560251:5297963 11213927287984480992:85509030:18399904 22284663006060403710:15123855:8700302 79587672161850738302:93782206:18022462 21321237726008250940:876565831:874582020 24298907920642410199:477214835:475070547 73312441235177622066:696277351:151013410 69543820363165507953:4954122253:4396195841 80695530467879248802:7892203799:3525402882 64361139024090665797:8143760897:5442404865 90036643734390767314:18817966750:8544914 30487996868371642858:84300515124:79465496864 91882546391104531348:19394717360:2214765200 79208380913931631101:105157379487:2023227805 39306840278487099699:609101616557:584116142369 81494068104708492598:339233854132:46349156404 20455406026505332309:7608354603682:2625567457792 72338275851346110266:7951104827760:6714149790000 93756944989828426762:6426774243950:5050890979338 25380429706639195115:61694010839696:35288541827712 11882529893852844258:35567198806504:35567161049312 44149667040861855545:36116384632905:35459254620169 24120845056774904759:805255135715560:655583845810336 56991671771555186174:240946444188674:20895874941954 48423938279008762803:775502108894418:71745306435730 78912055214404387106:9022917988485196:49601871872 85347465640096652045:7953441331747518:3379400885148172 56468334506288270001:3499884408382435:1199567188689569 33822259574173747331:41392145209570437:15265582809217 41706218992628529819:26372452513758465:20267366625589249 71986541294536666336:13369202806720795:863288428103680 23825740863287573079:449996621555689316:154812336849527364 94337985327837261268:716744742628533563:662664116460102928 21659732968194590526:597666877837465735:577116337638490118 62234529636075720215:1905368697085523304:1882841885639197696 58164656843654990897:8807391906559146254:2464036354909571072 96574538967423373294:2211591392766471663:2031447256776838638 29053203793550791234:98592220674098280645:19613640655923843136 30865223964929173160:76981563817302023095:3194534449284383392 41525241877222410913:88299804525730669852:4631750328188928000 64690016231821107049:696762608232066665307:27778211315346262857 40736776940614572549:288619242926634843513:39578768500507154433 69803026224604854913:877644326015662050221:64600196573041265281 31317689077229141974:9505058058556387111584:18450341989556957824 12545196788235199694:5418658985333745970620:12545168188448466060 13884098476167935270:3191785109775352312208:47879336564896000 49908458929305266230:27280379180011700880660:47562593249083785236 39321855192728772554:83208117747095542446544:39240437988683946432 47838571075426437457:79353336317806770428757:9277454870369044817 74794002568424956647:964076825393886584526045:74190238734521598149 87765993569412435233:947253271025591664831914:83146936270144982304 48920366216234577779:799996221493958781580995:48479003686396372547 32823525323770888970:1706757660205251020880128:27995648518642860288 42618350008750390579:1296476908132504324505895:37425125109193310499 80785254381735243904:4249995166203860239235009:2384868033956262016 881799322411833830676:265:256 880120374680946944539:875:523 211472886063634374392:165:160 151330651245938645422:7190:6150 497595866502575774349:7608:6280 531601181617827975619:4263:4227 642360725057356640246:31921:11440 966945424924975596069:19129:545 919861860154480403479:61220:9220 742508862806975470700:175400:134184 724385173594803498389:139121:134417 294765508996567060190:444846:444558 221037855003745999462:8633490:8394754 846768150007689283598:3498363:10 332708968640853209787:4580940:25096 496017305763337045078:58008695:33883222 454895170585970044294:45770416:3302528 205100409827668991739:96992024:17242648 130349727912189511631:743822795:608191947 839565856991782493310:147467384:8916088 154874350194066034072:811315175:541166976 447231613919977348176:2837373286:134479936 774980085806082317866:8132309062:4832366594 981035774151917899984:5487976324:5419634816 802843495426519982565:81019163952:70196543776 732479088886677436344:89774797176:1680781624 991265871839330144994:34384122388:34378617344 777002153795985727143:131472738354:19329501218 395169597527708451517:208961897012:2164294196 653564666903711121723:688437181033:549923651625 246638593371207842388:9544807226542:9534841559044 543200395242541600084:8932725415507:8904732363856 780690986084881823631:1273338952799:1101269726223 437079977328869386322:63074385930730:1106525300802 326751289238223779107:36803602672039:377976578339 888143587489231287675:20895511083975:20890930786627 738860959169924271232:245372359080514:87008320456704 715489256647052723075:983138764733703:131977983688963 956100257515936427171:537665582772138:105557411245218 686145603097856557149:4465269131415957:4182684106981397 490762637443360779988:7645628605359713:5383759240259136 559051160334043753906:4593837438481776:17660916016432 664704233417206597362:76945073941043296:4873040138076256 963179619521526807696:53940603130122815:39723711623893008 489834390260635811419:79009237670406931:76581191725099539 312601904127950236606:568545186503503761:153404487359310736 507272510179694292712:727526683811710132:725273088432211104 232513723596262020614:437958512139815082:144854825568501762 806327731249563712176:2657202948965753225:2594082184883085440 427289173092332397399:5789826512087377412:22535630589944324 321105562960062176579:2364702480119545851:2310346747689344323 193773874987422016629:81475430992390415625:9570718828749825 984582731549166475448:64454442986496323601:25243810899498831888 649083172505436347054:24254879329991925853:18488015505481269260 222005969894708531294:883488350203235006660:221419797838761218116 312439391906423198624:153941014134148993042:5211808879523926016 895200717630756888326:588584025548561196007:304382118951687553798 906036098015282156366:1539328700908132223553:314766148939366613568 894926327295222953896:3792196596794890290518:9441796639194481920 840826852711674418420:4556888847911826468892:682854079786305720340 912242191180958568237:10202420753441632685560:610113694362146704680 626446593487947941314:81853644303266182349658:23166869014377939266 792676031368550605887:52831119479043522405513:792638269738916029449 464188762713727421893:236303347371667863291909:147691191371470915589 384295533654253365849:755833329988493846963534:87910924175566495816 419090563429240848588:421791495658272263376543:296877289636931698828 101248114709761174698:4684570794412088978339776:93751589453570253952 893350215653064683083:1083939219381459905638314:7221952264838524426 935972617908896186983:4135784350551921659448805:1234690380480675941 465870500505580520969:944:512 571874625077864685738:684:168 440030530251613862857:647:641 977008989770095374774:7348:4276 746807664163561189046:9886:9878 607801761454864902568:6127:424 416281386680518373868:76261:8676 485439857409014108948:42074:16 276596457857580998369:70558:70272 775147603568563767285:643116:573476 104906961587943941843:637661:41681 956039314105373831526:190269:8484 682013604402179184170:2162646:2135554 178156507706293883379:1583555:524739 947546384186611374669:8624037:8425989 190209792238082639433:93143011:92538433 860068275356608501102:63984513:25170176 258886092594341322187:93048713:76123529 605026924066710153703:605885570:68944002 291653703683688952968:289445710:289444872 135637426799862460399:764648315:227642219 908438026389312981622:3951448687:3414573670 344593248288062812720:3220490549:2952036400 912404701320633475500:4221721556:1218462084 783566487089214023274:76317088459:70938935882 763325920773369257834:51766852869:34502368512 904196670049732679164:34617796600:224396792 377687852093876280144:497240118308:426304868352 914948121307881353882:505477193703:206162694786 447694530757773309517:103822189667:103687398465 808060059739072649431:4635748817220:4415361144900 194462508544051132684:7802819148283:5568827767048 471217867692448859303:2816194361560:2250567221376 961226125438083375724:11398536670068:312056390244 720101835623395099876:71640495247624:171832246272 534572028027912877390:29992644208450:29708639036738 945196198717204160168:319352765637438:319210628792872 643857464571204922739:997789501940483:290517767348483 257982762446266403725:639943616612932:635545431673348 240681841005551899915:2406101083255991:149619754685443 794349738200416544038:9781267400669986:9804063010 178090447459764211937:9108583102205010:101309689888832 119143646013438804355:36640595594232137:563276652003585 133971404344420374533:47687953722439706:11270478192744448 449396544224780726820:18803182988904034:14728015446560 191927204963110751261:945083636466541913:361422709718909977 893145510729281808264:235453033567627725:162205766571532680 629348265160511336160:554356601647234242:409880481161555136 698697216606280000601:3308402457938322637:2326400035265193033 568705397534886297194:7652248353760747402:4616806740870045194 442119388309433769521:5829838194624973052:5810655290130974768 136955936290496171156:36043825378934046235:25662953402308529168 591620263725291179129:32559831857193466822:162483700471597120 719742880447018065054:26406855843827017780:18766605624568465428 587741951084617063328:657979358539584018785:65143517498961336608 701584046362042964056:988200780557040625640:664085649782930014280 982959644669126801250:422191461397475860434:373619786454790444866 982213771522158857775:2818057513677623398893:295464363528552448045 721206925987551066873:9334754113003150169912:627801963981624054328 162604279716705028960:1006080272927923491045:9223971001189351520 156404307916090673502:71341530360181310473799:155251042254556528710 129439100957449290476:13625298342515251272652:36917132619984962252 404676301882556083229:24748504988969042061695:397757919383708903453 371029099476105893288:621987975160648187080629:369583435023196685728 294952453770835342818:165968749425081835766812:95476336257303708672 320895993773629603655:395869688019386231634138:297526797680641521730 263994911825149460593:4741175128410063424798145:185485325210178551873 582668848192032201478:3759607788756402560693661:10818211456471126276 546497408531225202633:9503108000121240121952251:525733332078428440521 961698072723057382921:563:513 263804790461676397547:291:291 632129933874069234005:636:84 368565527368254261859:6595:2115 796983165143147829049:1198:1064 456338142283836032181:7283:1073 200728278870608533220:34583:1540 610271150703747140730:59247:1130 159138554812568295073:89249:87201 403121112366718808276:641798:540676 646755747032392139558:589132:260 720610987245156917186:954195:921410 739753184724431386037:8537428:8520980 317816886137864211218:3378803:2230802 949960975047840464477:6736207:2508877 419295243658224926837:28487460:17956900 190948723929371146899:45589531:270355 913342354043986034302:76162340:76031012 314831876610553813604:459212351:420217380 155458545345205500413:840004989:838955389 686726782694117950206:177938834:8454290 651829746880372688931:5280107272:538970112 809331843148238072147:9935602895:1076101187 219523365488830456327:3021460781:2417229829 542352846028780581363:59242477269:18303955153 970850054106497434678:97630645962:17214227458 169410607776464374391:22093499095:538970711 685377299243600843922:600922631413:2705720464 613276022094432542766:683502380854:623361826854 231375672460176591249:850298348168:3115384960 306570588837988250647:9351920015678:1755222038 425313595726833895779:2098089268495:2062960394499 482053834613025792155:5993794083774:2152038554 663891209194575345627:53994904526651:36355473184539 336392241947525428475:13554745688579:278191407107 172921255089375986428:20226078060772:17872435970276 470664542716115823963:203118333206539:27110437560331 791800629577755032811:413553006761280:114443699639360 604535920714215932047:683909821311889:571758940061825 555038437157423121506:8980349106877557:5811468711298144 947360560662971007555:2157483062795809:1268905725198849 626048458485162433192:3417599835146639:2291423439784072 341223975204157963593:26959038523706170:22242090687662344 685058313284040672591:41611324423697955:4503901659218947 732426864220287321994:68912610741762507:32879939653763466 336156912628671480157:886522961191895612:580123225586925596 357407374586671454383:196596299042688505:581686756673705 330414812481615986605:255288440520823019:74363625531265193 877490747659427968467:4732388347135136182:117163962279137682 506441597103292895512:7744737534746414452:6938029697439711504 692335105131810115402:5967134540208774114:1131637983382338 898276301128004313905:18569157330964795869:5207356359311633 949238871979156975934:94051328337599870632:19676614624842887208 970721327065065966283:68640637737119503927:10958533709149618691 403337399224389182235:888379113735757088241:295736752046109458705 897237434233208667815:303852960654420291417:297492750616079314433 525177150834095154123:269150265430889752729:222514980828813484169 510373424345659716823:3205311397419266976754:175424394500731412690 949074411515369680086:4507659379075869245693:891209766206645076180 123417429528511839468:8750855296120462115449:39236004547053748328 474771144935910231250:54943177290031335544842:4089691613138585602 278816460830581162814:30991107736145812666988:576460753283187244 983435028451262988697:79395956522585581105590:295158042024020803984 315268622543802737284:849483999838867879992723:1599380752443637888 624939139234399225409:268786549957601017607975:606474028848665462273 824071644542487715390:196632148886741512225675:592603916813686931978 589006882418196160168:6244776212961770221947052:35601173124421322920 319085469901417848723:3668668430844810590328321:300336351297033377281 592123756196054042569:9071965578163981673489817:1822306405181687177 7300047138393488614089:813:521 8636673752397886040570:777:264 1629270617821667133818:199:66 3394699687685937733116:2418:2416 6688203241792354002050:9433:9344 1751263791830769161209:7520:4448 4942558110806602238298:75024:65808 6852685193708545663390:10019:8450 2301498128734908493769:59380:42944 6691963382966270466760:355157:2624 4249151348701881978444:937384:543752 1315516820430515431316:632017:74896 7891410500579961932633:5322892:67592 1995869658788354780147:6923873:6857313 7036795929647536660695:6685442:393218 7562438252834739307997:71229266:1623376 8533010002858995058263:55179552:21069824 8542210342173633060430:47936205:37884492 2011349200382607743828:687056799:4424468 3116059875070847574793:758567918:758399752 1886193403994945578752:806612695:269706752 3601524702023560708227:1024241919:872710275 3535448051720245490307:8867823444:8859431424 2459089745187820879671:6159199826:621358610 8515260176966714466156:69052060791:314578020 9333850258838344049494:42063040194:34544681538 9459604484671616913899:19176580127:17565810699 3305759064309413289821:705014944236:100667724 4773981189406678440334:126348639641:4309981576 7108511361776857106262:794708922942:4434936342 2111519588811714942942:7073855092772:6760278790148 2243927820513497653464:8722137592316:8704883761368 3975488135319714484080:7456130955520:4432473442560 8556820723026856036548:33369067289108:6704786098180 6331336856120394839801:35721775468113:296798963281 9686962994801927764115:59064587900149:52810968436881 6472519523230250532116:891852504005477:36432186013956 1499152800548928118233:487504708277990:185963643147456 8955969662435634712373:217130729758143:216844845714741 7511347315194370508758:9868232556234198:9581249282721238 1367922152328680340540:2197765056780434:999297164400656 4491603134621557824019:4314094589944189:916052780089361 2849773504913473843361:81689700293046748:9175115772032 2456510999446837609045:19339981684136214:18067827903447060 6949711201783435609747:19698116380364375:1135061550269971 7959062220774915637100:990984097581335435:288275181391086344 4295767864547054123835:408482877800694755:396598251178083107 4487137415118413047784:168533561676802869:144748649044386592 3650786280093450791060:2595911890477334086:2307540708115884036 7260166706852048343169:1262575307108815513:1226546505090207873 2207715686609421376184:1436839024270398196:157807930363351728 1763615536271088555005:48606673816553706039:46262391554403865141 5793877201326462349197:83471603784678238702:442057842495859084 3109933717438262497932:76296618697291449333:144126595595584132 2761671395151734342065:446571392820497315924:298993989884863774736 6635248645827661440339:490663477856922674829:47274989330369651713 7105115073589577015904:274822139075047655236:2397043556698030656 3146338426581204471146:3404013775524580081754:3108287073087752503370 5454464719227130543909:3867244565412239938526:30319404911922549508 2403946983664990825155:9607520755728630234823:5846306185670306499 3598770856546260074361:77111900354827283468379:1182218036220587675737 6310382261962808861357:64687527383723218733621:5055994656504638636581 3178648952328929414068:66282332582153985338206:147575501321601551124 4430784850662777606320:940437872731085580188798:593843663929612865584 6922826246973687780153:404758503444089951612136:5718527677772684116008 6385051514766385715892:406901021539777907473817:186917680589954554000 5319937552629303285047:9906712559784211354938103:4729627975418640728119 7085038705430132789477:6365861998721415252111892:1155213161717108740 9554133485472904879612:5718313095586829468570146:9524140460830920675360 4952100291636686421346:183:34 9560352107655883063249:939:897 3052708254099691667291:753:593 7391993860319253295747:5347:4227 4264157241989522744123:7721:553 2892830026152243814056:2579:2560 3185904079955155773148:68964:1092 8322823603142699148030:64915:24722 4117766527754262056540:98708:32788 7414188785867723601311:292741:292229 1893058940744650897604:203145:137344 7426402741036432457532:725046:725044 9453216880119478417286:3784807:2670598 9179201581296116419831:2572528:2441456 2037104735212168802654:4222711:4218966 5885170609235910673264:29616140:25378816 6700767488225165993900:87332824:16779144 7323690251211137351768:94375271:85983296 4437041671435643422100:901641152:620790144 2426276564913906412851:123540555:71304195 5703826504107681381157:681256056:538648608 5696984228494459302180:2939331650:252715008 9486651006877998940792:6299679425:4302045760 3316030389909620538458:9675928366:9663688714 5452953007912274573947:84652201793:79534625345 9383853286371399546830:61873877577:44109935176 7997663440949397829533:25155773441:5387723777 6905192684857070462457:891815405000:588410791368 6782015931292131206311:731223147630:584115749926 3894465029981209209729:319930073705:8595276289 7971331799981511669381:3303951017226:2200097235968 2845169498313829683565:3623438881930:311452798984 2749069124011454265056:1415690057378:1136304223904 1531443421532023745583:14123262732497:14088566794241 4452055467970132769303:32681840987424:30889757427712 4859669657469409747848:38276168542537:849470611720 7890354680411817311546:560804221139362:281475113072930 5173219776415045431225:944581018837757:9900437971641 4146626821137773901739:980032076093635:369459130798211 6950770413329162617268:4164027527824578:176924164224 4250389889657435365898:2819572708708319:567351308222986 6836335552042248394261:1803300948144353:1759319807709185 6412040883873376364729:77737399948215662:4513770244210728 6537543261944269029011:75535888857943563:100439960358403 2622618989134076552105:99118429999058529:9010647350739489 9374625135643515767244:359600712825370341:3521671535804612 6002043114839609544736:852370950074692872:798307840660869120 3927975859725158358622:574754252862169825:547610738150638144 8373350678629784180191:4220324013619891990:3067261702728664342 9409789424501175164483:2678266811089424989:75180625830875713 4401784518469014890853:7998223573405320224:1011060197365415968 3678369420575471907402:59728735106297361450:57979649523137458186 7015263530395952392812:62020673791294766005:5482200325953727012 3777369627010558587287:79616204144686615461:78434851914934337925 1734009243750656369686:579304436241703580494:553417601025680547846 9212145092154979286192:843966473561062375475:613363564330957144112 7019495948906307998187:253286192576108258768:230800827900880044480 6347626478232878900438:5629030301228700086640:5017658610989322477648 4186715887613077730819:1508844698056070547637:1194591060760748621825 3908407433201679901536:7301845967279849394072:2430360797002216801024 8622856403257969281575:29498725583518773676146:352796760254263199778 5444828370951677330669:30719053256712870258100:19023258090133800100 2984053456860311951551:93271919234705503192084:2366085128154525106196 3856527694177052546764:416132357798158585881163:296301584316777906760 3807474103984136595522:875001758018915224298660:1335087623741309984768 7741075794674618350166:921446975340789197513649:4789596663423338291728 8181583366736829979712:6902408849693752294072167:7674151814657107237952 7032064068072425969807:3392154335081141376003949:1494479584832195397645 2580097791083453101717:5525697282171158234946749:157233055624676775061 9234150008468204122903:876:772 5459213476113354696164:380:356 2938176879848716347547:538:26 1242678823383285358876:2045:284 3187020299092545486908:8282:24 9537729668975090692309:5550:4228 5682907913879542780844:46436:4388 6008358572866476735114:40283:6154 9450955075952928636613:13471:13445 4730525291392744194312:494642:425984 1255830478799013385642:457597:168232 3367625371852756122690:392225:31744 4725096924731509634206:3639406:32782 3114258568330761470588:7990490:1572952 9663685276399550853167:4207505:4206593 8377238444077281557615:85710818:67736674 4205582515627603658149:30618762:16909440 8842561702208701419258:91582323:85020274 4474065999136341914947:328718349:42225665 3967882905756268914703:179352113:169877505 6835450620682149276343:491237468:138911764 5742776933246555869665:5666496860:1075790144 9234144965868385739328:3370987184:1084760576 7182701637115357232228:3358151494:1073762372 7741951730871194170548:44536636370:44258369680 7501556159433141174962:23129385809:18833490448 7915505158985231507878:35115487214:201982374 4054125677716766905961:811338830475:224974082569 7875153311234457650546:877231881556:17701537104 3416275534577784305090:218461372349:217232160128 7893345709911097061851:2347019587980:2336801984904 6535107139316138500222:3379456998405:2271249522692 6978639340044664769155:9882501302274:381458319362 2037622598427088110897:33785824047125:13444858265617 3120199460497219532690:94579704889716:74784041206032 7904210446022078773185:62522484639472:17970753701568 2441700063083239358150:275989489111565:54976878776836 1942875493571853760423:298151089426306:7742215554946 8891437147018377262201:200756335821626:35271110377528 7153061032501225145749:1595766251929850:424428802621584 8640400463860238213394:8508052656306624:1172093358121216 6480767193298133896912:1701724025048270:1690705286450368 9249785046115384782726:50328659278214148:36250495211283460 1089459233931954106071:40605066259871851:30165444675 1165541050100374583288:11080957246201352:9288684432528904 9671118733510289655630:552282533254152458:408156343619551498 4664634299420532471285:560986095054035172:488646063966654692 3691126986480278414264:226148402038758868:9377485598785936 2845052372674987718949:1134696168072630764:794955866735399204 4076035418775792747887:3681753950512657750:3609636836515808582 8954345667688163013788:5949017731939070800:4792393069484863504 1568399370256627889132:16828057403370648376:110695532829618984 7224268583561812215057:59035257491229168553:57665585957342183681 2068184418309929341136:76410523440203230262:306264814982299664 6171564321363621100348:499473177481361523935:184719695678245208092 8772183594893807149908:455706671065453878459:451945232559092285456 4512134917958177812139:999615545519816665447:960416070994986297379 3723916124757606699217:3650784369231949164752:3574671265993496596688 7726445730875039519548:9601081138086866000768:6467250704716862208 6498965514834834825185:5089779093747986375358:4727717760561179001504 1213791763600799632075:71876598452741891556900:4624776840652915200 2488867408112648369947:91291695263756198716289:90702496495251268353 5912023221271529820185:44203975790139462017894:5908526030470181289984 8363492878799108670537:160639059456310605393579:78598932880213410825 8461027603735290053291:705342265757613159032035:6062946370415847538851 1216596302205560187473:927337693451981963729672:1200454817265221634560 1904845159615214666580:8981930524662015450894820:1904700916488636219716 2258277370210363891966:9751171974170401869087641:1771139878967329374360 4121902922507882862049:2363991889824436262074652:2808570974919256445184 93570539726045622982060:756:164 48478026819945693280271:774:6 94456958735764996467293:845:589 69997902002582534942737:2158:0 18073630605297538227209:5956:5120 42281428581840652153921:5704:5184 49118674548523139943884:33686:388 68568059324843633263535:44197:32933 83699431219550895382872:35462:32768 51785616352244879478135:170790:133414 71769023500854198335472:309288:307232 11469481779111597951417:379944:116776 66711732997731142169013:6982489:6291729 11184739337102466176146:2996836:69632 66834001046875812829444:7624647:7344388 39915975623614608849910:65968654:662022 67159649983900080311174:42345447:8782726 58979480993588500697321:86103888:18944064 17782617498005397627619:975309318:671089154 81226300512247607674850:347534717:3556704 89202878270035246699994:689509633:70912 33865978247485708742168:2400661227:185740808 69490558562449669904096:3375943144:20464864 96956598983604497974378:6508639758:2177926154 95451679543986548767071:95702840557:87107399757 19241715664230020762121:78205764152:9148383752 47957465113876309340378:31099227508:30361026640 89090860856346387908430:936695484526:103469711438 32165821099597977235666:299782738779:277227769938 13847368295351647935580:255745454747:113967697944 84179603330924457454577:3041716223016:3023927650336 68243872051807409520233:5695994666811:1125827550761 21556981874898016395413:2380417182042:180562927632 91360316548759760161951:97445541343402:79302309724298 62332889408713762491942:71207937727834:70644700105730 19034990159633731321906:92165791027485:72911367176208 46894591609032232962120:795003140445050:19825904582728 77788757575421816860870:441833722558713:299446328176832 71213319664595379524494:402504701445507:107820879970690 74886389337453216241507:5099305304244156:564326507255584 33225814551046595134291:7587068803217630:2480790426665042 77022734350387303874424:3190347771038852:2609796889070592 69288992659867623035545:12301120438775660:9010794311516680 90469852781852791956027:37000824056094685:971992102601241 14804431441624842098497:29932068845221574:18601581083711040 71206023545246860957212:132654253566721822:5990208805918236 76286544204960334408538:697266733562162157:11558488390003528 30178727217847749326348:849385491757704479:704987622892905484 14087368213492973517828:8461717817408393317:2666130981553442820 53736072575392320674891:3120055653790553372:666532770637419528 75901506674929083277459:8238433506544259596:2305844246167289856 96499526627831928425287:69020671800716901882:59794344001594263874 50766531691512517708859:75028779750412549902:82050511004257290 86500984495950225052173:49720043750496511541:3602897381811126789 32403219714760773405201:103982659322574650521:83082556217407637521 38940728504921718307157:217053298002649641889:198313775387960946945 16810052266894181107640:767323142484525381712:166026924297926508560 69702650008732454641220:7405022851512796279409:2361477136980549587520 77037219360446589823882:9032862388517770991114:1182907812472337826314 72275037345519483404586:1943920709971457390032:1328238070845431120128 60825867225301875685430:81567253847088596431912:1203652869957630996512 82620344885664221984394:83154585402737749930128:80774946405897765662848 61135259990193181337795:84643228357263509302642:4132359501584091326530 31020015906986095904314:145707557202344516266819:31000907058931245777410 14744725703033481065168:964590269921540556510923:36894651430721344192 65518071908796986094497:219247415319158882733563:58092040315554104902049 72731610595182129051732:4638906857863056952720972:29560981850826624530500 85731458088435752307434:1363366998408918234459968:664148186361854298688 60269194403236834703639:7599090841833700117093472:37834421867131498043392 86663539590423273903157:129:1 20858618368297686474236:607:92 40420173125166509078757:348:68 33623532526762026325697:1684:1664 28396069182145460026450:8159:7250 85112253080164605186846:5362:4114 48677682172779392859825:45737:45729 86721199133714012745543:78521:8705 20026461249455239601774:32730:7754 20777275607242503521410:874414:263298 56081007028822750820651:112887:14371 88564519267918033690568:622714:98376 31690706401004338873166:5292138:74 93256676343091396569499:3140726:747538 54491715811700758946842:8389535:26 25042770205310879347245:79060977:1315361 80242572206199212495887:48845094:13127686 42826197631327331793758:56187231:16849246 23749803209737012136688:267016859:245516944 60418690482398369925215:920934183:876888071 35222097134415324513846:193719506:151651346 46260484541541225887802:9557965681:9261054000 65142000396955135490462:4197398839:2955884822 70854987536764359505535:6379987154:5368733778 54319010491973654621901:58793832290:57982070336 70854363875355065817912:27348738179:1208778752 78331552532725610931224:90027096747:1711824904 67492252675986127183940:902597075812:558957092932 86659101462343562294423:288760400397:288606257157 82099454577334611505882:876675487709:584407208664 10779120278997771689243:4225645595956:3871980784912 45127709667911972104041:7485466530099:6651831779617 69442638679521961876153:3850278312510:840997432 68086821477958180987280:51777370369053:2212348600336 63466375369501830333248:40745596634554:36327110230272 49802210534896094728933:14735588915617:8797703688353 97403760513509408650374:661995330954836:90163242345476 74158812761729617003660:974485731813611:46268552 54629372711587349840738:565598810533311:565458282266914 22885427387435132037086:6213836068723067:5066697263317338 23933047515125716202269:8122841786720241:79200690213649 38057612200917194454801:9880463714705395:9871521318049553 22865309053614291330398:26597989319333176:20335092434339096 51464565560864736496977:38158981676007401:563105654984001 75692131739761884307667:79861412886104256:77556251689484480 67988122369908221890399:348251366456060786:329911495221594962 84490099575467991160472:456890755092782326:433524380653589648 81638326547374316817455:720563946531793146:675381689397086250 76242941732433323154523:1470129867351082347:19704426350527563 15115496599893297064750:7552117386834201587:7531848439194307362 59194233879205078367202:1957200132681937072:648597665840541856 17397529954499007462988:60148511021494521011:55500708165580295168 93350811503291650872104:14587904411917501067:9962142971627307528 44981130862374534285947:36607883553062651067:7782294923189420091 15936166330040356743045:137609381289173783240:136383663318378742400 65842484372773325290143:145245714284511643754:24499688180997425162 69486233608256656145748:127739313180490488812:125106655723620817220 91224969966820224207416:5180632729863633665187:5023315167460785653792 87335248448769438450274:5996307244071503896719:1254669857837919043586 18306244948869682159136:1430772946088344097420:1180746594991733805568 71545196581252857409783:21288430024987952190798:18926936030745310007366 23319852008025001708679:82308473515387678221625:1773446941593471566849 65138484813773787919510:56759203812717525794917:56671280661714169757700 33124511719398448216971:447985343785145451425212:28352970112134431385992 75735416864721109699160:186622775903234871195577:9225678838053913112 72260194773160672431395:303559877716335347326492:1328417886213117643776 40798331716733105535651:1744686817049627350792753:657746258815768263201 90461553298117141301378:3548952339051155236636077:14259765596490230169728 89633770420321167571772:1847482299507676970162549:10478205569131768650036 12764914117417792484259:573:545 79720055470507276464238:108:108 54412924801499993980062:586:10 51469203850836133161292:1175:4 42696587405924571023617:7424:2304 35770340557131817671176:9532:8 67507371906831907302598:59574:10374 98511875993747819341681:19298:864 59918479012648955957955:83075:16515 23341592978047558137978:180292:163904 67088846135707781121692:738595:82944 54938084276444259748054:151346:2066 55183237314715280401120:6996675:705216 52608333054131772751362:8559287:137730 68647258595365105850109:4452070:4343524 57777604235512937808770:24439685:24150912 54621051301053395323323:42506544:42469680 71878783603840919669267:16693310:16648210 10399929230605666685699:521217203:469827587 65219292132680408901070:362004862:336724302 78190683087139284972817:261388704:8679680 70779148700986176856210:8636584402:8636481682 93088588515844971799189:7886728154:1175560848 44037679709072031662221:9298405906:9160507392 15510391828466444841594:22675849910:4421059122 24210742900635623479964:46674609062:35836527236 26258799465694947076757:80887044503:79527561365 40528837506228018864215:490001611637:420912898133 66913815996485648155999:250171640137:215174086985 12616042729484919815234:811479747613:604016741376 81157898954149334734376:1934246253037:1933943869480 71881308410245600647378:7727076351211:3328761141442 83831199402277614760456:8517313053265:4003178545664 45658169776642998396686:48661421820553:5670896136 18646669065786330068197:72899258218556:70408105766948 29555844729542357156240:51941505588746:12305087856640 76819832606380907525929:682467459339705:572373382206761 77665733445764336273440:693011142874021:24232912945184 99963400951986022407734:277049972374258:265019767921202 54227772704192871640683:9096614352308170:89337788139082 98932655897123535220091:1245003143109271:1231736525834259 87741929646223820998008:4575071836811304:3257270312 24289113516416701748355:61255619092225096:2697794319029248 97251139723839467584033:45261848848210610:45106508400695840 31863997697367641872301:56464164278155103:56322532627093261 92487019117240829864199:333232046909573454:7284019273287942 36921047264090889064123:478132002479193890:441531438970703394 33280882973485102508933:906461216871648170:576501041245031296 27596679740588575635268:6531608683994611238:37306519473239556 43469908573872854289083:5508921195273034487:9726424458070707 97684003605188807574009:2830364352131342269:2686195284198883769 93668149209279628390245:50271908986242048096:9268604391525523552 70396665643294099378927:19013529246699750029:422388439003562637 86389516180531253555256:83709852327349033123:654431696104132640 21984738853222509314658:917965412749995526263:622793858172591276130 42762066902668371306764:285122271638649623922:260615429411664298240 87384783807633448625147:509320861640623873895:18463632606676206435 22283391671881914271876:9635693274499853625800:43237447111845349504 27823009237940030592915:5616736664601377058435:5317976823367989593731 46425953147294047739520:6162866012602181587309:5976781742206321102848 99432414418245773111013:74407977739635401744887:23614723815203066880229 69455672661123464060553:97120674530722381600330:21548108625695016752648 68855801130691111914817:97993189432770989107198:21253545131104572507456 21699443873189740226496:506666435170020003792337:153358280975959786944 79450306402759757098977:199226369061984085565238:295167611731125817120 80814827335552595349239:390140349995622120557237:76084174086290274257589 60425279402850009769438:6696047686373298310069698:41342049290349567813058 29485886995098279294407:9990217028016774791865107:9486238155367824761091 25217798450748006010619:4162294691731809873662482:6013782825054933025298 460504551428830863869351:917:389 143473537153975229200007:497:129 701357125520845571522199:686:646 501598789255023315300568:7224:4120 456843258592925884034238:2685:2108 700845721333153332866268:7379:3280 170936301888127581275384:24004:17600 129891986910120074201302:43907:34946 128403552826413771985837:36406:548 604942548976849879497807:336838:8262 771040882715702135133429:403688:262368 142185146288711504848357:361436:65988 618774932070553384344556:9272576:9001216 771682500429006827857141:5781364:533620 667756725536856837426154:9890534:428770 206019902810647014950020:95537810:28328064 613115117633789991213604:11308442:788480 913863327402351722404126:87361227:17039370 582096852852458164856524:190064900:190062596 210708374051532425495899:537198561:34113 848088468959029435846401:300692801:787713 696109088718784517426439:2313594183:144999687 141622474329587001990089:8909327804:8892451208 460699782943079995310308:2828593710:134250532 204197480656959030073100:82584876364:8996787468 651871503806703585635768:61985144791:9270078864 603288220435505868784499:67465434839:52076495443 171292731706688142608554:861711082394:277049540746 128942777779061699136596:502659879025:481041055824 485521338015288687787593:951642473150:659311477256 960809483128368615738351:6443597295533:4725542046637 697936985211076605468914:3732500581147:274879545362 577936029996046616774508:1660028944228:1101676037988 187157642563298622923049:20206849053704:19930896613384 385819609695399772627455:75782748676405:70370891669813 420329335955197653610762:43238829403514:37728101081354 489926088698905274909619:601376371124799:38417680826931 690226155818182502162445:291290750589527:290997071642629 274694798513394853346516:498673296839516:4957478031444 260033367866876298557108:8433252582506470:1395383339595428 984288705594866618717039:3829336706433577:3377987114549801 694360661757588195069580:3482481817174384:3390894298382336 806539166146067024847913:49144706613384955:11267863948035113 286679925673464429067131:74279435028002312:73571072502444552 945368608338085463753080:77966496431807091:4600412619407472 591852677964234869921354:781092013054925199:54278508767088650 792115340290416510313881:454318527977855481:3377704023687577 500514389609913465006345:348216439953571252:23649403390667008 527515262443486663378976:6051294313083006531:63191221671233536 335113986514953737887314:8701414310737405378:1207386992208266306 873447036546261315162121:9845313794682154294:9844886459260600320 998756693641470180273074:89826128119731433529:84457696003625132080 788285955130003498961325:58798413159860816586:18533869375398611080 352061338041038459694765:71365327447674286042:23634894280515415688 950742105982896154322037:587773002446075496503:365779036266997907509 359191245636072512661960:888430865098438668805:675588532333223936 849486744798049073355728:913928991127895935170:599537201363919440064 825052114970972634839905:9883538389625997030112:9851148492308369928800 720947648992821672230881:9890055424769604299097:150174218495602534721 923663416374452311064454:4046588994771931545170:2716617476966296075778 227825892257839832662631:64898195741891324254578:1146248169492467187810 249797138523478883111147:71238362569552589373713:18991400446281734422529 421212808997102005587225:81176659902906701565930:81176659331091791940872 586095747744221231197050:487644875553620932992229:472241262224782782367840 532277013951679648613256:892896245003500397100781:227042531759636288455304 183091284101130998528997:838463147127266591051080:153571855994034837260608 178497684388829071189024:4893817850403373191542902:20298385732360571461664 119747007765366907853092:5979327303138417026779186:75769677131899369408544 151366824775036676427124:8812896899495987866475102:75526667582602545236 259928368727962627224367:353:289 554682137442694980090745:932:800 771510895809894442467725:283:265 553049542668244685817195:4178:66 649968956734287645849774:7836:6284 341548055451813137038021:5791:4741 783902236860258699641218:38197:256 245875555592030901073837:24429:22317 711568980426307468842029:57466:49192 175195108412275231960378:618804:532784 596271614411614647838331:840943:17515 230195298038646560255740:974193:707696 946335360435662159794018:1035613:445760 698705601106375623206511:9973327:8398415 574196161704683580080647:8678194:8667650 164268838748013044879380:19341819:131088 345569914596207527115302:15807512:7352320 568889036359018206516612:79455820:9978884 564319625242796513157139:866953788:44343312 433144912583525520012271:942026699:268837835 622473877416511401277245:582161785:44176697 666591981844822966979680:8614417023:8608055392 424405182219010728114142:9783272928:8709514688 757960118305759967079197:6516883688:4299702280 480430759545701264955957:82181488661:12885032981 816772449302840635644651:57279768447:22886302315 971185127153047597232366:86794345572:85904068708 257071152921621141765415:153256641502:13502284038 670285022137577231551498:478492089045:413524887552 655385384395018864231096:689191842532:687212069536 740372260244526361120592:5984727929381:5503189504 496020529101399056398370:2804414094262:3021674530 142233848142645902948934:1454898200717:11788124164 871694742092358585035162:41893853032287:35253765941530 849210728795543790225800:76497008864805:70377468856320 913089171152157880476489:28971746146075:17699595952905 188705824379487281287331:339883040702185:281569656901793 569007240305598398322571:668834579408070:105828179035266 712118899546548443539933:750953249379375:572794583384077 134319269181951109617448:8444168294246858:4770699366367496 605380244313735797714894:9033263083380653:18779543703436 533997275414124036543410:2233023363609500:226774277739408 870261596818200365718286:10512115087029163:1407995516359434 644711551615070625349871:19028590388356273:8954512670881 906006330362367751444438:85478956947487111:75052700227604870 370120979793880208387873:714932400540027118:606773231319779360 582471727190598455043313:390942254231479077:74490126631182369 488968077638431675006629:566199717442714118:223359344732289540 965720865202758457868667:4803613273991442504:4623389572692197448 382872799109874674701356:5508126865339965377:31666082022298624 864091153598828898300037:2925912172592505927:2920598231267287045 959083123966288510152525:70960419653957435402:1140335166177288 260280187049269835831254:77782836043583533745:75026593488139391632 131740301210529126820974:97795114903476077661:92603588178065097804 668830746348241675332592:129548587992640840437:18521345963533181680 469255780295142134052071:585840489412626889083:558023437642517459043 467596274441836471100209:377921289789505647772:81902463373115760656 937173101879229716577064:5334794672290637496161:590377439487101975328 735116457852579324706394:4605693388030617772938:3111452894102158582282 897284831663502774710129:7980192677869054083149:9829998037233565761 549783613794631518776895:45322937145812613391497:162854669157728838665 211175058079728910419835:93228160021697007583685:3352733261730740044097 197078242074038482591861:25764278815361049166461:5619483600118694805621 678294812629732153905381:548856421880470896195499:19479793572996504883361 414616273357585869625646:835174979938891803814014:79254427671795993823278 113408676440093640369393:835257272799945358958354:75620193549533151495184 231682943868005262227369:4546400227164516098414918:231205886837780025600 383946381423466916958859:3007717133961758459947567:379127007347415803052555 169109191404221670194776:4201575822067810916315092:158335407907753851432528 606292704470844315939597:395:265 605739823877406159295723:948:160 603943255902900119364726:226:98 389747289232636903476255:1819:1051 263443577785574025028932:5962:1344 309769571576506584776078:9017:8456 378267304216814951646459:59924:49168 111658834611253633908605:24247:24117 541837819828248317823980:78189:364 660337861502219243380088:585892:544800 668338575148817443052672:340334:331776 580355520046706872234604:793640:266280 256628814233832377829013:9772865:263681 774537204136031498024001:6097712:5242880 742196394992593063806645:4515445:4228661 246229870738072378091358:25612757:8651092 129057080478132653864455:77619139:10491395 630955064759429907777513:21672532:21660224 954760603516668703764606:494225845:490029108 352424189313280454924202:340972248:4362888 342038498350076808448455:491207342:134482054 799634802060574709896607:6936173373:476418333 909723511004257740584482:5495697470:5410697250 197190712023395439392823:8006842207:438295 551498849548377516554566:12331721506:1476534530 914544622732116105427252:11068323038:11042566164 480947585841878588862950:55850764750:38667420102 202112612103235967936934:543467273845:412470765604 734602996019406807610251:195194267224:176094716424 443892789109662299626716:855287115783:283484655620 874834726761619408219549:9236706998333:137474779165 658005972837104460265877:6456399761972:4712373948436 489942249737299293769521:4947582734082:4708628958976 830268332819137131920045:63291254130763:18211208693769 559760202338768247816300:77855387130858:2487133241448 543776868059213732399995:69740882500662:33019977402418 607952638347033647212645:511109914310193:88510688272417 880676040256079329632177:420752089128691:85762486705841 130825493958695407010827:154774912746314:154207909920778 679996885104716219497829:7278496047660824:7108069979405568 163430123047794019287678:4173924986722314:145138286460938 156650018956711601419096:7003940682737378:6790583813415488 456227119709905205818698:65338638281366112:11260098589380672 842254450930491788454783:99393157775780329:28041375934825 337106429689259481504840:70406271973165677:34377468431960136 775520725787724237798586:742164297035215395:195742882885666 641920871579531266002782:304886198422348456:9332660073660936 772481418035102150331630:846217615431714981:663252283193297060 846924043737664400068289:8458383259926066091:5774202420615709313 655323203896841312622963:9124349819259782096:2594074489495028048 983417074335734576290504:7852645390915630040:2628467621992862408 217061698142792754690387:58406908514009752917:39199331792892469585 134293364594365437161684:62124781970373365772:1009105405238841348 524261724702976203735344:97278314848366704666:78398837897979494416 626443860678509277805195:205689897722925765431:55808694578873651715 788760634494432123314940:584684821310425008702:119913199027183682108 976876459403671871466891:502973203466408173422:443021279001011817738 914897337751979033467735:3860265722632258942796:2656552533284723168068 545133987825098064040064:9546278031702860562133:9546264371129340956800 353175202900002014666363:2415845289977969807081:2372894319007902109289 829995395787571272459649:20600012564227421249653:20072550963747223511041 784338515523725797866965:52137018743916030069065:9482957453675671324993 869603921876803466434354:11569341254548198739405:608784320487558874368 394991374551008895988615:411830185229013009381666:392620674359119190962434 248882064841547231866116:510209520534375196781099:170051342938640305694720 319410963137991225815737:679004869670176428326214:16533867261333974724608 647544727544947058311873:4894125451690301369966668:38351934180729238847552 740090631173042765060012:5741556842561237216032473:739352459455467386590856 239810473840469126894800:4956895752506369682312015:78066787571844650762304 8408810823337571489507064:481:224 7047047207130507442092641:629:609 1679164692503023537270655:805:805 9298175371723812283949532:8053:340 3478274295969200134264119:5648:5136 7946034795063768705868780:1425:384 9135318828144307296028189:67683:1 9958286149228963836286153:25313:16577 1552198137550286987105455:46941:37901 6215472620543399603972665:287792:8240 3424054418419648464320595:947486:684050 8793362467563338659173998:385654:295526 4013531062388931681049161:7542836:4397056 5572109283103418408326636:1468349:17836 8681377228963972166556676:5533965:1314820 1600009160544431065389556:34949862:34949348 2002556090790445833177233:67370897:67291281 4832425661330500170085980:90875183:71869452 5690230426536975518822154:671231177:537013256 8668662594224599438802321:672926231:1050641 4368292540200454493752129:100047079:94537793 4903292293240450604085489:4182791835:2421166225 4251200187493621722835557:7981764640:4584374304 2519971810553983940167944:8298683562:5580523528 9666467968968545630672550:58841798958:51824988198 6791496409586571164280679:22648370214:5454701606 3420365034970913435021912:46876204978:34393428496 5643792335102016057850541:108090912410:68729973384 5313792677132316296974665:401050155671:542216193 9600868319730180215163130:520418261205:142308559056 7794285949123138053157698:2812624387014:2801414583106 1753473373660530041617582:6448097147071:4420864194734 1688144702175891048215156:6588251217210:5500813283376 5629937653971309278029061:88349635583687:345755616261 8526934582531913016909016:75052835708650:151559368 6035167174202241698068390:86678977206053:3113943652132 9993263693553355692692714:167995118593587:158923991680034 4167384339609216481612830:688596007168341:37410241282068 9963793397870094954048344:844367877038517:99929494167824 7803413670383649586519165:5907388657107864:4534506212098072 8795115684396742656691341:5360254855134000:5068824034969600 5796454290422053860697483:9519557692397299:9026787327870083 3845872902809358888414692:92690677346611406:14491222810820 1758550357527112128270533:16089626494754208:13521021231435904 5197748734043171214124911:68314130857527239:601523126273863 4007391249669277865901255:492574018145799513:307653681239706689 5201232555894720121080117:291174779193970274:2939033235752992 4650352247607658083127741:885697853987522873:578713103034745145 9818109323173008360594634:5860532728375544136:4707459207541033032 2196987491176166103461691:8259775631446476899:7070666862639974435 5800355491265343634327484:3910780731619245223:2739772222944068772 7957071564820999456027781:95589930453450516979:21226450241818222721 4991889323574378098151659:97895457042445490040:5513113480977797224 9551425525471950560667870:31441401183274143362:28828741065999124610 3386843177200540144599971:752656559724676290709:590309603740679176321 3514342893352153576416154:790671207429004329954:604762533447256245122 4381776779313480559585356:834662086295387580304:592043560238678351872 5806845415283462748239216:9832244421277739464314:92270046789620806768 2730609044495778011436215:1364127676089309627524:157951095099808285828 4005157243984066732964828:9905192328484629500999:146440416003690564 3667589160267871853159516:67971210947819552903412:38445897206404860608596 3643815939510057963676337:46513596174944058177025:7553960064445083312641 5774094744805488287205658:24896484909890688581952:18963550724038283231488 7597136055692955956612808:855129279773668076057281:9376569195279418048 8025331891477624449855291:495247738581533829852465:152555511153249892855089 7296600935993486868264824:365528707898077981856616:42593640162705407480680 4274845642282035458879381:9906222282246323739537912:5778482014593163469200 8385596558432263878360789:3184589342293338754934333:3183318389974700159936021 1889401919743556679818230:7657265409624384880193373:76002929709888693209940 2153728337783570157557110:928:288 6084958292698973862834076:674:640 5490514688416088745102115:269:257 5155823144230153161239437:9243:8201 5153308841340046105006633:6556:4104 2153081496420491727525481:2100:32 6980455576760488723069145:51211:34825 2288872038758089597207151:44550:518 6481231379150588036366959:48821:33317 5163734016637623044956031:361374:798 8057288215738744306070325:532423:4869 6055661749604032110157172:498928:269424 6445902721641714749511268:4420148:201252 6578967755080993720542657:8958340:565632 1599378710707755664470085:6427975:135237 6518580774634714204070168:67067056:52510736 7066043665202123275851000:17608804:17567840 8946061254825850661720156:38776212:38469652 1123550535535772233505598:255781454:87427598 8745495053775663213165279:558614543:21596175 4035674119426310862672875:661002128:610669440 7105487709101606282877019:4341819706:33703962 4486376099379695789781944:6050844340:4429742768 8739925761198206532694666:5777874980:1076043776 8818763957136910311061610:70723702495:69361469514 6540554232576407712875051:17059794219:9945006123 7683685019207347691988276:54506902007:34906308916 3203467017581786233660270:380499925208:343630938184 7868801618488476349654146:360772158919:13012976770 9485108234952751539356868:380983937193:309778776192 6452533053489376906880913:4982063530131:1746960529 8377461294016993789906518:7914141239165:206713292372 2627607198304884881742862:8855235048290:8801528942594 2328399774658221754116870:84772479792656:4434579513856 4034671311876188623589731:33979669926190:11577086693666 8224178238245819067177421:91745943402855:70647988394309 8501914604477942360974089:156828941557843:2751278882817 4819856390840161354336593:136955780580736:22555031388416 9458938728031065625346778:699092754093515:566257665720522 8763780538626520977201378:3381512558333931:1127021497501922 4988350137203504364284286:9993098937270584:9852210586845496 1663212914547993883454475:9628876113882125:9012840157948937 5304731065389542783872561:32147750540909250:5090757410032128 6877631230162332519106952:95725141838150474:23648854470953224 5550789008628802773610539:64842563502574855:1712236091670531 7161215994274377751237325:716588173054601071:576904959583978061 3219990536262157839682880:697849567737010357:659566668726192128 3820948317765464531831103:359636296635461920:358180543236014368 9937690669318314731937439:7929111667503146574:5334673209841813006 7517129987554611463683931:5734769220544878196:5657675687940281936 2777867125777429295615045:8988347352435519270:8684349943830891524 6481506789769987001227205:54217122616537257392:39226705699047216512 7969592647193965075517759:47552415406292972048:1417513772714692624 8751554961657221081268528:19143330812448362345:624317898382639392 4942729953726686056883659:694516326607357921895:620585086587026407491 2890866097037715307719894:522624918338766220304:147592109959342533648 5181705397078955095959379:211758227652378489310:5384073261833331026 3620175953766060093192438:3363605541030711717341:2693307399851473414356 4104464380061159078572132:7265185812508407848469:4746627656997590077444 3675407403145377157230403:8914226737668589679966:1184918524461051815234 1268628459184553852166219:65325500291251800956265:59108844460248032886857 9222729904818390338507589:26868018839524454355616:3246672002866909155840 9738770684756855530501854:88960065175954599319896:10671441564044179279960 6820082167530623492055541:774020215446527272165923:756263474604309427396641 9282721300425965599216336:220240981868840153350558:210758670750299643969680 7144457026241042339013416:769798058474610805618341:755592624314338935185952 7989060254719141580232884:2561136648076162634533518:2541063419915053592266884 7994697129282418810406725:3184971784790533968234395:3024401487831603995477761 5108837393560576336331897:1401078164951433857705701:191560306315561157264481 3097072530770560427566304:253:224 9160188653691529839097291:253:201 9171001063227777014264351:537:537 9114264034122524610022885:5407:1285 4080896992714097665134055:2857:2337 5778390327199320857821472:2055:0 3788357921423613533185836:83820:83756 4188469261591989200671534:66989:300 6149996261935363238030857:69368:3592 6601911891035579915548767:943489:270337 6137455837681327317760820:129158:47108 9803131573318822050582427:193541:181249 7023402201004670427942553:8968677:18561 3791069224299177681783876:7421805:7343172 4882327762078745325538653:4105285:3933253 4747686397330201449231294:49853457:46149648 5280836039352753151795321:37642670:35282984 1017263581716502063724292:18303198:1114116 5427622050446671839614885:528321440:24216480 6668663345374014368500033:172781379:18753 6899536540297221814644652:947068094:807406764 9018616349284417133400139:1804620216:1099976712 3125342347293108157752503:1974954790:354885670 2109126169000155276309351:5057893684:219173156 6101581683366360098621295:90128983921:72881342305 3271876678442203818747124:51688893277:17192837204 7506268256024483108143618:39932007221:5572264448 5801249264093612248580246:108503126638:108469567494 3169441239435523616142509:748416717565:181479198893 3529344933241243030812328:645876799311:9126827528 7125373016507147739388669:8104555143667:5535491440881 4322525170376196953937888:3087043995135:301757171168 2859922443443005257468988:4151806565898:851083037704 3638872938922712830348298:30947889011843:4419859778562 1066866875588890178419993:13842144155387:13203266655257 6053934129544848687781136:55862317504896:20100783821056 5064193431704630841525477:402426817198868:114349210599428 2180836534700859226853029:596717837562775:15402291692165 1025314061046216921644550:991667570797245:427437448161796 1706389620832652280791754:5203037371483005:5145716704215624 1740807326381935426915667:7040966558447459:4507554295399747 5784743991848207384564603:6180665711797346:1178711902257250 1956204999949566438640834:33952090854835764:27192121018582016 5733844963296244670702190:30178678196039600:11594698302956064 8557966779918673846984690:22051077634173835:2274075683359618 4656344739488476221719555:527197102399449905:306297553383604225 7985451515592622555483832:502525771828085237:47375782921781424 1465855571712302531725091:158436209719134845:4715393635205665 1414813027939443023657549:8485739225867944431:2360244769020510285 8559788362306256445669253:5220250654002558504:581533951735117312 9592320866735081241461101:8450308996338994039:4683885726507483493 1172888813572409153777628:84953145259501858495:74512672123997138588 3768054751182767408208810:21084803437157857348:2308170679735457792 2056824815060073931140275:24320884551449455737:1154329018005466161 8724730784627171465408794:536512799610693014267:148762978213245784090 3722897056748306345719481:134379202843618474258:36921147465149345808 1782309787865569973172145:230609074528118610353:147576205782369604017 1195843465385684264759919:2306701411630115355017:1033722806933467049993 7147523397590999128219401:1413278087732286492843:221721252090918473737 3875390173107692764108536:1675793454880344039683:5786580507420557312 9291703987254308079375906:17655553300273732446318:16971582312755063324706 3580949287313319426952711:40420402712621296313202:205239168119020356098 7856991656416982554389507:83350401184663633691461:82647106677555763085313 6069364958537915393345103:921061764572410578555976:4884568131447201793096 5148745366159911912612440:481467413471119399989374:303412229206344022106200 7087245520577534008233521:206480243152023619629029:40293525784826772196897 1397400519586114828863973:3468519686659905796748368:30253823529311015043136 2343254365227623068781281:1070282352654792603710487:1058475490071503194587137 3373438295237690139856080:7161744932004629613143095:944665870494081577927696 Math-BigInt-2.005003/xt/author/lib-bitwise-_and.t0000644403072340010010000001252314536617520021203 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 35945; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_and'); my @data; # Small numbers. for (my $x = 0; $x <= 64 ; ++ $x) { for (my $y = 0; $y <= 64 ; ++ $y) { push @data, [ $x, $y, $x & $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_and(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_and() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_and(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_and() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-bitwise-_or.dat0000644403072340010010000070613614505066136021375 0ustar OSPJADomain Users227:325:487 436:333:509 325:917:981 689:4553:5113 665:7474:8123 594:9379:9971 941:82085:82861 358:93609:93679 271:89450:89455 663:605406:605919 539:986448:986971 614:916493:917103 482:1902602:1903082 795:7971916:7972703 711:3213197:3213263 558:89649006:89649006 194:75293299:75293427 569:51237987:51238523 220:463858327:463858399 416:168017795:168017827 259:543472473:543472475 536:8664365174:8664365694 225:4367551515:4367551739 975:9354011770:9354012671 954:32569070976:32569071546 936:36009745555:36009746363 512:73130597019:73130597019 684:155331795571:155331795711 568:686586783152:686586783672 918:976179376830:976179377086 109:1254546173926:1254546173935 674:5927160609571:5927160609699 117:5422526144353:5422526144373 320:69495572254893:69495572255213 965:16615739013284:16615739014117 391:82632470460440:82632470460831 863:746489232497279:746489232497535 413:489910439634342:489910439634367 259:559019999984068:559019999984071 863:4119460080756180:4119460080756703 573:4166711713011743:4166711713012287 901:4099332858269079:4099332858269591 894:15174893783263504:15174893783264126 212:18257256488828931:18257256488829143 571:60632043070399055:60632043070399103 967:288107600636583568:288107600636583895 980:503741568578081464:503741568578081788 661:747385745449393795:747385745449393815 699:2789601214093522560:2789601214093522619 519:4633128012660981724:4633128012660981727 136:5254657792704858329:5254657792704858329 709:10656208010878781522:10656208010878782167 294:72179045270170437975:72179045270170438007 741:26772821322834997405:26772821322834998013 953:546163599045327831172:546163599045327831997 417:991541851911510826852:991541851911510826981 618:810507276117503622901:810507276117503622911 437:4559592695352077290325:4559592695352077290485 497:1144874659940344521230:1144874659940344521727 771:9755053037595556091935:9755053037595556092703 732:38837335687360045560053:38837335687360045560573 545:97102037489525831251264:97102037489525831251809 548:14929271963517996097866:14929271963517996098414 888:259944436883087110577175:259944436883087110578047 506:792980868510394905391368:792980868510394905391610 804:382180353343224524264138:382180353343224524264430 410:7564174260148807754638446:7564174260148807754638846 979:6969858428057981520714654:6969858428057981520714719 430:7836100519439290551784378:7836100519439290551784382 788:631:887 785:241:1009 686:943:943 431:3898:4031 676:5608:6124 983:7552:8151 404:52074:52222 609:76008:76521 419:88783:89071 636:328874:329470 677:306665:307181 110:673415:673519 627:8977342:8977407 185:5734992:5735161 595:6209846:6210423 891:53859593:53860219 971:36567137:36568043 483:15174489:15174651 233:422732465:422732537 861:370519927:370519935 695:136145676:136145855 897:3249200533:3249201045 830:9358465109:9358465919 853:9869422803:9869423575 653:73055003822:73055004335 338:96491040202:96491040218 279:77434117838:77434118111 644:770117956632:770117957276 374:765324321087:765324321151 717:133451617859:133451617999 981:4906187936138:4906187936735 892:1723718269430:1723718269950 676:3530985947933:3530985948093 947:45217179156149:45217179156407 906:92320792360699:92320792360955 137:85422387971839:85422387971839 685:774766271760570:774766271761087 136:645425420820124:645425420820124 348:871028077559137:871028077559165 378:1002813097444482:1002813097444858 593:8498342546326153:8498342546326233 941:4601462948908720:4601462948908989 760:40772032072954439:40772032072954623 281:41418092993954779:41418092993954779 408:50773603287863145:50773603287863289 939:188776887362730107:188776887362731003 458:209734775190076531:209734775190076923 506:457005337443020141:457005337443020287 424:1433067230905404736:1433067230905404904 465:3227621808102904279:3227621808102904279 719:7853880159420620340:7853880159420620543 159:54052693047291630126:54052693047291630271 956:52810015699460083205:52810015699460083645 283:65463332813140929244:65463332813140929503 118:149469890411960599520:149469890411960599542 726:191447478186549259872:191447478186549260022 375:678941660401423076322:678941660401423076343 694:7795085323084645159491:7795085323084645159671 200:9948052387770598149415:9948052387770598149615 666:8591959372770998912649:8591959372770998912667 572:17499372692867147886563:17499372692867147886591 983:48571610921819460673664:48571610921819460674519 541:52389703081140647852661:52389703081140647852669 586:973509641912674910461606:973509641912674910461678 129:907324252169659515322377:907324252169659515322505 692:895258562743630116029175:895258562743630116029175 658:1436585483018497862620413:1436585483018497862620927 824:4121242273885089676390458:4121242273885089676391226 801:7311018953918910604119991:7311018953918910604119991 184:920:952 641:870:999 328:658:986 460:3163:3551 916:4502:5014 926:3028:3038 793:46289:47065 622:86525:87039 957:73064:73725 440:340728:340984 840:262792:263112 226:191411:191475 507:9641358:9641471 561:9245024:9245553 227:8012335:8012527 299:96798161:96798203 511:97120121:97120255 123:22514668:22514687 531:448750972:448751487 174:743630620:743630782 807:334641809:334642103 902:6363265297:6363265943 736:7295991205:7295991781 989:9317428963:9317429247 895:96021965428:96021965695 117:87748742812:87748742909 450:25356304535:25356304855 901:420055590594:420055590855 561:137786372040:137786372089 314:345935886539:345935886843 286:6037401592916:6037401593182 134:9571144220387:9571144220391 998:9624317459173:9624317459431 812:25538303310767:25538303310767 360:49817289466288:49817289466360 734:76278336569760:76278336570366 200:126515522449802:126515522449866 682:391050411225941:391050411226111 757:897654515806471:897654515807223 267:9722481649669912:9722481649669915 932:4101795226013627:4101795226013631 406:7535105360590769:7535105360590775 178:44033080595134851:44033080595134899 980:59588861368270436:59588861368270836 728:89763595667720071:89763595667720159 698:388691044933469452:388691044933470142 330:222691385575841170:222691385575841242 166:965737891098673557:965737891098673591 314:8334267497377309504:8334267497377309562 947:6425938899125594266:6425938899125595067 187:4943533472563969364:4943533472563969535 471:70137543783339180515:70137543783339180535 407:59729280237574151730:59729280237574152119 243:29729712592410426171:29729712592410426363 655:212397835676030191664:212397835676030192319 922:984831351364648086355:984831351364648086491 423:942230758253885356113:942230758253885356535 690:5688302565075413908252:5688302565075413908414 620:3577965403538911272663:3577965403538911272703 554:9837772479537385844527:9837772479537385844527 203:88671453017671431858718:88671453017671431858911 913:81962468075865323695944:81962468075865323696089 274:41286498539698969409674:41286498539698969409946 366:644746139950764937904759:644746139950764937905023 558:508204441926108855421687:508204441926108855421695 724:656587429107107370192744:656587429107107370192892 679:9894761493209868048980441:9894761493209868048980991 848:4207569330028341158222933:4207569330028341158223701 752:5095581436096884029359917:5095581436096884029360125 8337:981:9173 7831:445:8127 3368:692:4028 9358:3570:11774 3367:5227:7535 6582:9380:15798 9818:76740:77790 5367:35192:40447 5104:49151:49151 3682:366297:368379 6401:875553:875809 5723:743339:743419 5619:7992056:7993339 9465:3530564:3538941 7134:6807150:6807550 7398:89827867:89833215 1199:13257961:13257967 2691:25167792:25169843 2152:300857161:300859241 4982:802125432:802125694 6879:151405676:151412479 2733:5860332452:5860334509 4594:4318935814:4318936054 4026:7274091886:7274094590 4879:31901934639:31901939503 4431:56225533266:56225537375 5959:81663583174:81663588295 5334:437026619791:437026624991 9063:440577432738:440577441767 3571:659870777580:659870780927 6315:1508326549167:1508326555311 2388:3564244251625:3564244253693 7174:4588770154702:4588770155726 4739:80199521268216:80199521268731 2611:37583872637600:37583872637619 7114:60839024734550:60839024737246 7081:300242908104691:300242908110843 1155:579344908984736:579344908985763 6806:687630647597381:687630647598039 7889:7504802942316236:7504802942320349 3994:7916926307721634:7916926307725242 4244:3837350432751419:3837350432751551 7336:46320266048290439:46320266048290479 4390:15598766299660418:15598766299664806 6548:74085396872747473:74085396872747477 1288:959970589832305927:959970589832305935 7638:115370322961846349:115370322961849823 8298:366516832825968877:366516832825977071 8708:5403014157584463035:5403014157584463551 3317:5550024237312200620:5550024237312200701 7697:1263254099616930617:1263254099616931641 1150:61152115110478440006:61152115110478440062 4343:92305067277431020639:92305067277431020799 4596:22631277615267817115:22631277615267821567 4380:120628673570600473588:120628673570600473596 4166:688398321892559028879:688398321892559033039 4605:491190394525793119651:491190394525793123839 6981:6131390081248986741133:6131390081248986741709 6914:7572672081843872741399:7572672081843872742167 4864:1272867293156636528061:1272867293156636532669 2447:56346504183773493674785:56346504183773493676975 8854:63184341576020416353337:63184341576020416362175 4602:79694255994919758400032:79694255994919758404602 7437:841814541221127875315995:841814541221127875321119 5546:582312992240406656678174:582312992240406656679358 4683:353767066998528003931159:353767066998528003931743 4937:1617899928765979425350904:1617899928765979425355769 2867:1417224709279020533192943:1417224709279020533193727 1066:4525397697570752259847220:4525397697570752259847230 7023:262:7023 3083:606:3679 5281:627:5875 4348:9379:13567 8208:3007:11199 4058:9651:12283 9369:35814:45055 6143:13079:14335 2512:79400:81912 1297:435807:436063 2870:155189:155447 2107:939230:941311 8537:8362396:8370653 6736:2112128:2112208 3975:2061996:2064303 2376:89602174:89602430 2217:32698673:32700857 6983:60523557:60530535 1040:623216656:623217680 2048:710433026:710433026 4926:961723236:961723262 3586:9973464148:9973464662 9309:1648321643:1648321663 6161:9090922257:9090924305 3056:56221065719:56221068279 1281:72571559853:72571559853 1081:67763413698:67763414779 4934:789605734157:789605734223 7041:697235635371:697235636139 5429:975488692683:975488693759 6242:4905730633797:4905730635879 6974:7509115987093:7509115994047 4019:8740809584132:8740809584567 4867:97043915953199:97043915953967 8924:68360307936809:68360307945213 5549:48202756624411:48202756625855 5313:153459403489072:153459403489265 2648:161944540872364:161944540872444 3310:311779298760851:311779298761983 3456:4638989702428091:4638989702430139 1112:6100747752185920:6100747752186968 3105:2205828069697739:2205828069698795 6639:51333600413846680:51333600413851135 9554:35148800964819058:35148800964820338 8892:91194381504276986:91194381504277502 4300:687222287112534454:687222287112534526 7541:426235440657811922:426235440657817079 1475:192146818923631351:192146818923632631 2233:8832507497986143083:8832507497986145275 5701:9265788843731643691:9265788843731648367 5695:1861901680979649340:1861901680979654463 9579:23387305741728835012:23387305741728835055 7004:44574703351296861907:44574703351296868319 6362:24646170197010096761:24646170197010103035 5614:895663361643475532618:895663361643475533806 9274:654203211022291700521:654203211022291709755 5794:830309253252435557208:830309253252435558394 2905:4447635394175880906349:4447635394175880908669 9392:3115352486250333644841:3115352486250333646009 1366:7813780821558176047027:7813780821558176047095 7156:79764101946168517516742:79764101946168517517302 8813:48433102691288008259261:48433102691288008259325 4322:76501124119566570113831:76501124119566570118119 5202:279305339067281264096046:279305339067281264097150 9155:524336753526506819806729:524336753526506819807179 3836:250643163401015131826752:250643163401015131827964 3755:3250246155917172894495681:3250246155917172894498795 8432:9793749466438428370518726:9793749466438428370526966 2475:8766385582466883494938827:8766385582466883494939115 1080:255:1279 1619:304:1907 9626:423:9663 4032:8108:8172 8456:2070:10526 4056:6928:8152 8069:21626:24575 2042:13012:14334 6733:80151:80735 3047:990442:991215 8166:198866:204790 7025:273219:277363 2921:9499634:9501691 9245:6166855:6176095 3287:2588544:2588631 3315:18441311:18443519 8619:84272206:84272623 7590:90624763:90628095 3563:450600674:450600939 1717:530050019:530051063 2664:516555170:516557802 4706:4230842719:4230847359 2728:3559857946:3559858106 7435:4355183724:4355186031 2434:35975989374:35975989758 4018:23527905260:23527907326 1999:89722135287:89722136575 2583:161628046986:161628049055 2814:302669980332:302669982462 7514:198408909983:198408912351 6149:1015040167125:1015040171221 6197:2334260323631:2334260329791 8872:4875575018124:4875575026348 9745:70118191753790:70118191754815 1802:16275230825941:16275230826463 3194:21390362943738:21390362946810 9529:269327332538860:269327332539901 1401:880244224613695:880244224613759 8338:469580456553316:469580456553462 4447:5323785845762398:5323785845766495 9722:6185844940738113:6185844940746747 2523:4191034627922305:4191034627922395 7069:23039500890503079:23039500890505151 5339:97346880638605258:97346880638605275 8975:22468212336784057:22468212336784319 4544:353905379036839854:353905379036839918 6516:484104389592674065:484104389592678261 8043:852606335812322327:852606335812329343 7572:9679878303282814572:9679878303282814972 4758:5196434693553348842:5196434693553353470 3074:3951984782167793143:3951984782167793143 3787:56890813850028980431:56890813850028981967 2199:10941741046601895815:10941741046601895831 3572:68133581655482668499:68133581655482670583 8459:942598702534779567979:942598702534779567979 3811:741801825504372270714:741801825504372272891 8100:985805275227696974992:985805275227696979892 2784:3962216002591231814406:3962216002591231814630 2291:7679424246631390808903:7679424246631390809079 2284:8538971553122520011404:8538971553122520013548 9417:70608845548587287871586:70608845548587287880939 8488:43617241925636925412051:43617241925636925420539 9606:11806558065986332711419:11806558065986332720639 7539:352760122526341079957960:352760122526341079965179 4873:143395435781588537263659:143395435781588537268011 1092:980312775414693426134029:980312775414693426134093 1799:4322202684884840433131712:4322202684884840433133511 6597:5080186070631501220400310:5080186070631501220404727 8600:1485058522977483784668273:1485058522977483784676857 27704:995:28667 68722:481:69107 79429:570:79487 43402:2105:43451 35437:3819:36591 80576:4996:80836 63168:34244:63428 10776:23454:31646 96640:10474:96746 23728:150092:155388 15717:111929:114045 38718:893061:899007 70327:4060337:4060855 68712:8822687:8888319 14162:3010490:3014650 32643:70561571:70582179 75599:14823741:14890879 32231:33409971:33423351 87210:296914368:297000426 48040:800621387:800635883 92471:887032585:887057215 12682:8033914193:8033926619 55873:8401963987:8401968083 88154:8253397223:8253462783 69145:90335001883:90335067931 34652:34927353057:34927386621 76669:84042913818:84042922879 60726:152287963309:152287964607 24913:499400073022:499400081279 13845:641592014831:641592014847 76177:1955495685655:1955495751575 10329:5232057459795:5232057461851 91934:1873805760283:1873805834015 58465:36173853423106:36173853423203 55397:12995732485539:12995732504039 62996:29512750135171:29512750135191 55426:174845598330843:174845598367707 68034:894800600137595:894800600203259 95035:958579696291926:958579696300927 61590:4114708818084000:4114708818096310 11964:3130495854732476:3130495854735036 35105:2462534703959184:2462534703959473 85853:15921283127938780:15921283127955421 66873:98629568423910521:98629568423910777 68484:42774576825004329:42774576825072557 38906:733503903301166456:733503903301171194 96511:591576797182605257:591576797182689279 26738:319474477151767666:319474477151775858 43364:9467178508084295783:9467178508084296039 72001:2469951667757397417:2469951667757465065 44935:3657031030542713613:3657031030542757775 47241:94482493059930133331:94482493059930176475 87786:91331979998329911158:91331979998329927678 86264:33766860640201209397:33766860640201209597 61382:811282131249580186528:811282131249580212198 79107:420159066739843181742:420159066739843251631 23319:419604515788805086060:419604515788805102463 24949:1234323712823954283414:1234323712823954308087 54591:5566925346558803139873:5566925346558803172671 74151:7698811566425282019142:7698811566425282019303 57323:74105911036038956291993:74105911036038956310523 96265:23124808423380354374327:23124808423380354464447 17402:78357807300844916047649:78357807300844916047867 46046:501254365661433871617475:501254365661433871663071 60487:861162339719518956375205:861162339719518956416231 34566:832749103508831140309561:832749103508831140310847 49217:9207428599873819460395995:9207428599873819460428763 47846:1521922155712337426426061:1521922155712337426430703 30079:2355779418751296753166545:2355779418751296753171967 91749:661:91893 87752:450:88010 44136:142:44270 29893:5477:30181 29109:4873:29629 74580:4393:78717 47988:27907:65399 62600:55140:63468 18280:61278:61310 55477:100210:122871 15194:213179:228347 91737:518750:519775 97433:6034567:6126751 25842:1666930:1667058 73031:6743301:6815047 11155:88448923:88457115 67965:10757019:10824703 34751:37015740:37017535 73212:593574218:593575422 84700:672978296:673046524 62165:220194910:220199647 61339:9311322768:9311350683 76676:1906878082:1906945926 52515:1126816397:1126817711 92149:98678307327:98678308863 15302:48932710872:48932715486 80399:86893799624:86893869775 53341:150963660932:150963681501 32877:784379622332:784379655165 21723:884131881396:884131886591 96976:7306304684576:7306304781040 84349:9836693410778:9836693412863 61622:5545886622329:5545886675711 50360:22140334793235:22140334827195 50578:68299491323892:68299491373046 91425:34851738031363:34851738055971 67333:237935677638487:237935677638487 97060:434022740432434:434022740524854 15908:424434540599646:424434540609406 51677:3961817694113912:3961817694132733 58056:9155761135198509:9155761135215597 87134:5403337049569340:5403337049635966 76320:82699801709338107:82699801709346811 81008:12586022987740580:12586022987742708 21405:88563337731895882:88563337731896287 15043:113320125318461814:113320125318462455 49203:468674882257837010:468674882257869811 15572:429716845996276468:429716845996277492 20019:7114196859872453238:7114196859872472695 96290:4917484250061231292:4917484250061307070 13858:1665547327801535875:1665547327801540515 15243:24376583510459711511:24376583510459726751 19937:58447809698577472553:58447809698577473001 91915:75375079177468145791:75375079177468213119 55049:189170701190139165634:189170701190139215819 29397:507529643100347983701:507529643100347987925 78412:545917396246308070083:545917396246308139727 76125:2777136668623042291831:2777136668623042357631 71610:8617009819583246617774:8617009819583246622654 44471:9014697909348833843114:9014697909348833886143 90386:81783940482243861674803:81783940482243861674803 85053:92969950486512893232983:92969950486512893251455 25892:90870190263025495799923:90870190263025495801207 58617:431943251643449844359122:431943251643449844367355 59156:571622613829524865206515:571622613829524865216503 21421:547456501972044361516592:547456501972044361521085 56093:7554678648011739359347656:7554678648011739359402973 33855:3778739885320209054119827:3778739885320209054152639 72631:8498946522985699922011282:8498946522985699922018231 30908:893:31741 52769:568:52793 90748:653:90877 38819:2471:40871 39036:3615:40575 24943:1165:26095 62456:74547:127995 60645:96209:131061 50136:83273:116697 75884:177156:244844 48360:983586:1031914 75239:809548:884719 78371:5238633:5242731 40757:2108462:2146111 48999:3760917:3800951 24854:73508293:73524695 45165:40275191:40287487 89776:50158704:50159344 64942:318555062:318570430 97996:437899509:437911293 17131:637522599:637522671 89899:1138745717:1138753407 33719:6289910125:6289943551 19702:7863056756:7863074294 42970:93900814722:93900816346 32265:23162969908:23162978109 48702:46155827215:46155873855 66869:244382651888:244382651893 71356:195917382005:195917453309 85260:978663298137:978663365981 89147:8674014921715:8674015010811 71574:9999660588744:9999660589022 30853:3464779753546:3464779757775 50726:68930015885615:68930015919919 62396:98548704145235:98548704149503 52501:91053171120695:91053171138359 57325:427492162681590:427492162732031 17418:968237672750162:968237672750170 22526:927195935068835:927195935070207 25980:6146721483591110:6146721483615742 40459:6142741286463215:6142741286469359 23764:1903766809862700:1903766809870076 33340:34940410780274777:34940410780308093 68632:38145061220432004:38145061220498588 43293:93144441351543370:93144441351551839 32498:690712703472107588:690712703472140022 33159:771020616270932058:771020616270932447 11550:741285618933982044:741285618933985118 21025:7870778246722872488:7870778246722877097 14492:4337032071563281527:4337032071563295999 49324:9650071899996474272:9650071899996474284 33746:84984582361763753496:84984582361763786714 96730:41888117588768207742:41888117588768291838 82392:91248021337843195008:91248021337843260888 74341:977129462105658057047:977129462105658057591 52966:425438463571916591230:425438463571916611326 17722:428019577924346083249:428019577924346083259 38631:1264276254075140078072:1264276254075140112383 66301:1558476756599179903326:1558476756599179903999 98492:8094013388465241279160:8094013388465241311932 61874:75748543400295694492595:75748543400295694529459 60852:78692988509257815872544:78692988509257815883188 18313:42970298922047177605752:42970298922047177607161 45979:294576527627691106052598:294576527627691106089983 36199:480860250682469955546169:480860250682469955579263 33160:123465697248880650961044:123465697248880650994076 38106:4564668790810585715679544:4564668790810585715684858 47753:6178633443105735646977762:6178633443105735647018731 62678:3303686460538589285469588:3303686460538589285514710 521532:859:522111 194811:301:195071 155928:235:156155 985305:4094:987135 987860:3165:990941 847456:8938:847594 193748:56727:196055 948620:68299:1014735 696362:17057:713387 370191:145460:507455 868691:371555:912243 940727:142935:950007 949149:5333299:6257599 885096:6600697:7190521 622821:2896203:2994671 710160:57009880:57669336 852158:86362395:86886847 548887:93262727:93287319 878813:224764032:225306845 327046:609179878:609222118 684473:618458386:618593723 442555:1010009565:1010288127 244368:3875978996:3876044532 250178:7286587014:7286816710 368054:97780608532:97780613046 914744:37394205357:37394317245 356387:79846371561:79846437099 844735:373321365342:373321365503 345818:759689670289:759689998043 169599:950733157686:950733289343 683550:9959093268938:9959093796830 499881:5073698198301:5073698534333 403316:7794045253635:7794045386615 648223:88870700047948:88870700580447 108743:13194158953940:13194159062487 287591:57972608792304:57972609054711 307603:729255188716484:729255189019607 651396:545375548933854:545375548995294 233817:225713173196264:225713173298681 312930:2377005974924860:2377005975203454 311078:4468762181997329:4468762182270775 512884:7408141289686807:7408141289903991 196208:59115404837810922:59115404837977850 529776:39855458567674796:39855458567675900 583536:48304886920797836:48304886921363452 815112:796317054843505112:796317054843779544 279539:281263795568602083:281263795568864243 601337:171934074383554630:171934074383629567 894216:5507851820601462241:5507851820602355177 330755:5594389665898059184:5594389665898388915 583562:6865157505302228040:6865157505302785994 487094:33740819434148422074:33740819434148687806 266331:10981107855319016333:10981107855319282655 949622:86703955575634636825:86703955575635443071 568399:903654290408331433222:903654290408332000591 658630:328531120694013305866:328531120694013963470 588587:758776467742290199244:758776467742290213871 291277:5502077836223358928987:5502077836223358958047 286007:3127576358663999141583:3127576358663999160319 662760:5150230900507001743149:5150230900507002273773 556646:55617737060062063207981:55617737060062063230575 341902:35078847401913034271081:35078847401913034342383 654036:83038128431658793569343:83038128431658794221311 470077:814516417667169455999979:814516417667169456205823 341709:669389751739730786722334:669389751739730786989791 657998:195314749452957189836087:195314749452957190360959 778621:4887327037495216273024737:4887327037495216273614845 417612:5655497774689239634068600:5655497774689239634468732 434196:8386754796981252399791415:8386754796981252399824183 900001:462:900079 451680:961:452577 212165:439:212471 779868:3904:782172 249717:5273:253949 602047:7140:606207 387175:43108:387175 136241:18592:154801 367703:63067:392799 504798:146748:507902 645231:706386:778111 820980:970926:972542 454640:9885863:9895927 329829:7060202:7322351 486212:8209036:8350668 768458:43674702:43777486 648268:12613121:13235789 817235:84591234:84867795 687109:367006132:367689141 450213:943351628:943652845 899889:678254899:678296371 870588:9638916155:9639524543 723978:7482836279:7483362623 531441:2542981391:2543508479 436993:87908130757:87908401093 423290:68939889559:68940169215 659895:85761206053:85761865655 275111:391872674797:391872674799 339421:405845142428:405845405661 727986:852566144488:852566736890 707412:6627268004419:6627268676439 452853:6267634949984:6267634974709 503119:8344434071009:8344434114031 393692:26104498948895:26104499211231 568553:49667623615987:49667623615995 425081:82486126670978:82486126673147 943189:634823358287462:634823358967415 468439:405362245972674:405362246105047 748490:948858549560598:948858549694430 814683:2253541984443276:2253541984731103 528084:4143299482626706:4143299482627798 259369:9215433547347911:9215433547446255 982419:43284091523904056:43284091524612027 627350:91617190178754010:91617190178824158 570481:74970206852900609:74970206853461873 140428:684758869669034546:684758869669035710 780367:241560213124746673:241560213124804095 142409:927945964838902190:927945964838911471 649187:8997305946021507739:8997305946021558267 302682:5335875168199486599:5335875168199753439 826480:3012195213109455843:3012195213110018035 896433:32713912433261016022:32713912433261805559 204680:24148800487197679631:24148800487197753231 647507:75502961010754114348:75502961010754188159 281063:837078548932707187945:837078548932707450351 801675:210857167499438220322:210857167499438227371 400451:313670733113260540424:313670733113260940875 177304:7056415710380818847369:7056415710380818888345 449513:5922391526295876983764:5922391526295877377021 719425:2469639456422659719805:2469639456422659881597 285160:60433122267334779346994:60433122267334779369978 795717:51013408385245867312010:51013408385245868107727 855412:70223770475487943569729:70223770475487944359285 370529:698125205462424655326295:698125205462424655622007 369425:429717107324496631350696:429717107324496631424953 465900:509865246967214926988412:509865246967214927454204 670277:2489529223759154669830804:2489529223759154669845205 300625:6024318359052484262336500:6024318359052484262336501 612503:9491790904396119335882385:9491790904396119335886487 875035:556:875071 609101:780:609101 705054:731:705247 991046:7621:991175 243360:7871:245439 724910:3743:724927 499092:94644:523700 555148:71295:622335 687234:69555:753587 404398:919203:929711 443658:838654:970750 690697:309724:965597 424841:6527037:6814653 361591:4419192:4714111 556591:1073414:1605423 442622:50518012:50780158 890643:74396341:74430391 951198:84340166:84864990 172330:747766319:747807535 450289:727301172:727711477 646905:807012307:807133179 577544:2527296642:2527853706 737862:8097129561:8097850975 946487:8451886469:8452570551 796460:89008720675:89009254191 371308:50386888891:50387217151 647524:53757124221:53757214589 275801:345251359311:345251364703 270610:328657460188:328657730526 803156:332064906286:332064906622 625353:6724466587251:6724467146491 719355:8117684229489:8117684272635 102154:8025452103851:8025452171179 579059:83997410495410:83997411041267 939488:44174335570071:44174336226807 739210:81529398571815:81529399113647 354151:337658194524395:337658194526191 953893:934021015542883:934021015969383 259817:589626827612202:589626827863787 669071:8455610139538923:8455610139669999 127368:6973195370839396:6973195370888684 283284:2667340131933279:2667340131950303 840084:78908389744381201:78908389745221013 381682:49127114807562508:49127114807825406 374324:36387252667887642:36387252667921982 613825:499197050274205094:499197050274799079 457050:690899212274154507:690899212274433371 965870:201662947084469203:201662947085172735 393242:5342794081749518207:5342794081749649279 334850:9214394222067592875:9214394222067924651 438520:5346321213499563691:5346321213499571963 535342:59502282917342388052:59502282917342396286 567460:35377401728421851589:35377401728421853669 709969:75136172331962203026:75136172331962728403 668405:212352210916208455609:212352210916208459773 781521:797151222552302890690:797151222552302972627 234748:471153589059963281859:471153589059963319807 709854:2143985110548392281627:2143985110548392957663 696576:3240217367621339553835:3240217367621339685163 550555:1677321947550140998421:1677321947550141015967 799246:62081986127317687191169:62081986127317687989903 540175:85702638543294292355020:85702638543294292361167 746441:60951319338775476845636:60951319338775476928461 449999:571888261792978722251706:571888261792978722291711 597177:611545296459158752076207:611545296459158752148927 588107:900394597585172114687984:900394597585172115226619 143249:5141325052726127238138053:5141325052726127238279125 756969:6101103021210880603244541:6101103021210880603836413 533491:9325225616246057254969668:9325225616246057254970359 7649882:561:7649915 2171473:188:2171645 9547859:519:9548375 4841740:6304:4848044 5479033:3065:5479417 5623575:2341:5623607 7929188:29906:7929334 9281192:79703:9289727 8986399:84507:9002783 8656087:687714:9338615 8153252:676216:8288764 6563079:966029:7257487 8993154:4737829:13204391 9739710:2434625:11911167 3624622:8172867:8388591 2733166:25002290:25015678 2929906:66469164:67026430 9049650:62867308:62871422 4656846:825887591:830410735 7332455:614995230:619706239 1595738:985288594:985292762 4813857:4947163033:4947179449 8992999:3671214336:3671816679 4883345:5553809655:5558168567 9277399:67116235366:67125510135 5842954:42321231957:42326550623 1863376:84398264575:84399849215 5891170:855591948525:855593579759 6794317:410650224922:410654846303 8275221:633323975572:633331447701 6183793:4707919235890:4707919518579 1151804:9416565032284:9416566085500 3165559:1107474643650:1107475693559 9293202:76649025037323:76649025367451 4216097:43661148915943:43661148937703 3492097:84050431199175:84050433626055 6948771:452706758775002:452706765068283 4393436:221855754628211:221855754694143 9979570:574541740725496:574541749114618 2616654:9751988716747929:9751988719320543 9167967:1071264310914064:1071264311536735 2544078:6565244409378841:6565244409674207 3018415:61445256379270955:61445256381370287 2357546:65334230914895137:65334230917053739 9097699:29472080978864836:29472080979033063 7230848:993563428742631532:993563428749465068 2193225:918627815667780970:918627815667793771 9960659:882214378466095028:882214378474569719 7630707:5325680994816232128:5325680994822811635 2854760:3426670509807332238:3426670509809463278 2612256:1141012953597992244:1141012953600351540 7198085:99709624255939019920:99709624255939335573 9291085:89329889278368884197:89329889278377846253 9522380:69123310925510143411:69123310925511257599 8875634:840196662209450629854:840196662209459224318 3162817:817936239406071050650:817936239406071051227 5155927:226322833690650144229:226322833690655124983 6571209:6293616653039297577754:6293616653039302035419 7012388:5687666038405987410097:5687666038405992259765 6820104:1901807179557676884424:1901807179557678985672 9231580:68040004865720760083005:68040004865720760401661 5983277:91424347283682219947084:91424347283682225781869 2231573:45257775315884713406826:45257775315884715507071 3010033:437180124325977017760502:437180124325977017810935 2939520:873583059955137502324136:873583059955137502904232 9424979:549153003784935586352279:549153003784935595564247 3122622:5637613025399482683130115:5637613025399482683991487 1289233:9649917960452354688376011:9649917960452354688416987 8198436:1909434032194933153544427:1909434032194933156166127 6972177:523:6972187 5441514:979:5441531 8281367:245:8281591 3073411:6317:3079599 3016197:1416:3016589 5611414:6766:5611518 9229061:74659:9302951 4213988:70701:4283629 8432258:57182:8454110 5551687:114081:5619687 8689492:248996:8904692 3375612:579062:3921406 4714153:3890917:8388333 4893170:2988902:7322614 2351822:4827230:7072478 9769582:97442186:98556910 1002222:94414725:95416303 4706609:62067107:66572723 6610285:398559564:400940397 5201362:297998311:298803191 7950090:199088538:201187226 2329817:7638713517:7640943869 4582948:6158773818:6163000894 7842957:7774748819:7776234655 6553155:55878065082:55884382203 6880834:74694665596:74699439998 2831955:62591752367:62594449151 8503012:173748959547:173757415423 8129688:544184623770:544185675418 2724114:237441653415:237442276279 2000904:6250289181268:6250290920028 7557020:9068194766981:9068202127261 7740679:8819200625653:8819202990071 2428595:58714252380522:58714252709883 4947137:12138557892644:12138557963493 7560021:82890219405163:82890225844095 4406827:992999231355733:992999231422335 8418592:575427406446412:575427414851436 6666154:180814374015501:180814380644271 2069916:6550998629030997:6550998629719517 9991223:8612443301856954:8612443303442111 8389435:9584431527751387:9584431527751675 4646981:91502400538189093:91502400542539109 2294318:52188220730951002:52188220731148158 1751272:15398304822640025:15398304822771193 8856456:149812667956169507:149812667964959659 5499178:199782045083945604:199782045088213934 4107985:590409338328172363:590409338330279899 8026809:9686613645671158871:9686613645676412671 5426772:5457782947759258242:5457782947759259350 7710219:1129849068068397818:1129849068075738875 1926694:91714574203393482874:91714574203393762942 5743118:32231591241537108746:32231591241538583310 1110469:81456257225566975018:81456257225568024047 4134370:541612032147827998950:541612032147828200934 6064011:115581862338836913298:115581862338837208987 6623595:532667781967488621180:532667781967488949119 4330552:9811879924415565634308:9811879924415565635388 2056006:6753911662681006625240:6753911662681008332766 9872725:7512624424502148777605:7512624424502158616533 1511870:54582015733523805559282:54582015733523805624830 9359405:10698530948172458764088:10698530948172467861309 4087271:28823750066008066132502:28823750066008068382711 8958311:613264456335538521748067:613264456335538530136935 6869775:465570630128348644590957:465570630128348649346927 9390796:783664874437216335127913:783664874437216335523821 3174369:7371676821032958556819818:7371676821032958558928875 4208761:7124987362435607994563370:7124987362435607998757755 1249376:1412214669099904928230887:1412214669099904928300519 2400352:260:2400612 3647367:726:3647447 2218008:273:2218265 6252874:5224:6258026 6731542:3243:6733759 1701846:6137:1701887 2967125:99270:3000279 3903824:22481:3921873 3579594:97045:3669983 4485413:591297:5076453 9901211:883231:10452639 2255596:182537:2288621 2704974:8452239:11140815 6383619:1144051:7437555 4606410:3308614:7765454 9504446:58497017:66951167 6367023:96956183:99053375 3671019:43241378:45862891 8596191:428970560:429112031 4265752:481038901:485300029 7223534:482007796:486472446 5639698:1922034241:1927278163 7937309:3512184825:3514810365 7843077:5005226690:5007458247 6392443:82284726828:82291051135 2661716:60270917525:60270952405 3964308:68651899441:68652171189 9932136:732122149232:732123626872 6638226:438003775814:438010084310 5706728:251476926513:251481519097 5057444:2806005555014:2806006153190 2934768:2880245274967:2880245325815 5660354:8147860923851:8147861209035 9202529:37902557072011:37902566255595 5125323:91552672811336:91552677281227 9311012:39000677912945:39000678044533 2466414:322814269934331:322814270237439 5999362:220801439698822:220801441435526 7203976:632623126762195:632623131000539 4829718:8361758485126994:8361758489952086 4139463:8359387120630061:8359387122858479 6391945:6607438575307178:6607438579599787 5295051:30057720063073147:30057720067316731 8705934:37106464426215596:37106464426221486 4908261:98367169068253936:98367169068263157 8020644:843841776373261647:843841776375490543 9553640:723477952859430929:723477952868902649 4027138:893382105982953155:893382105986103235 7257565:7093012532959736923:7093012532960427487 9981213:1852158050115134875:1852158050115153311 1388750:6039019995266153602:6039019995266415822 7172800:99171231071753830337:99171231071760908225 1196069:54987166192305779575:54987166192306975607 2861318:47593556601265740908:47593556601266503022 9336675:717615991524664428381:717615991524673091455 1920635:817984557307900576254:817984557307901366271 7309966:306586177756456347122:306586177756458905598 1850013:1028795217681302406269:1028795217681303207677 8534189:3033347726692368256466:3033347726692376788479 8860333:4348827429944601650829:4348827429944602113709 6029958:97864946491612048372418:97864946491612054139590 5153917:93398815331160794555214:93398815331160798783359 9783365:21159329592677008612059:21159329592677009677023 5561710:234289984480661519038854:234289984480661523529198 4376970:896939096733844826863360:896939096733844827013002 2827475:514826717589391514550570:514826717589391514756603 1058255:7114910297200107206905789:7114910297200107206914047 7467294:7601144891822702328226426:7601144891822702331425662 3432835:1271963587992755025484169:1271963587992755027868043 75014024:411:75014043 12224435:784:12224435 90692534:401:90692535 42164556:5885:42170365 30011965:2991:30014399 27702865:4462:27703167 64186685:47747:64224191 38115849:95247:38141455 32328577:61673:32373737 27850084:576310:27852662 14150830:390703:14155439 61526387:343543:61865463 69736961:2420413:70057661 34956166:9552007:43377543 19147588:3409462:20197238 91797992:83907695:91815407 44438489:15255883:49208283 77329907:71916432:81526771 51293178:225448724:259963902 90628478:251381588:268429182 87453112:909665969:926838713 42727551:1962967781:2005662463 11978530:4932373168:4932423602 94079868:4462246801:4529585149 99735068:90101233844:90193526460 92168890:16621811759:16642931391 99786213:91091826463:91100217343 59851435:705746147653:705779719151 98593674:903791333017:903820701595 35094208:178057028058:178091720666 36028102:5967056402674:5967092121334 28994037:4673568890765:4673595244541 78410984:3734182144814:3734184525806 66105129:90696870230486:90696891236351 25988201:44891605972555:44891631435371 98224354:13131851945794:13131860336610 77555418:368983900880734:368983976968158 64744144:193039519912614:193039584459510 34299635:788137652393525:788137686032119 76832667:7426441622635011:7426441622642587 49421527:4157179952424559:4157179963047679 78547633:3183371458352121:3183371458878457 68004456:52945979351596387:52945979419000683 73751851:76051276923742592:76051276993232299 59709729:46441116888189396:46441116897106421 89101562:828689967981320951:828689968065928959 83556266:389689808153475557:389689808227401711 47154666:611517926220970487:611517926233587199 29127316:8699971550278653254:8699971550305941462 57026492:3833015620363302020:3833015620382177212 46513451:1226835265108720193:1226835265113276267 95770423:23892994879241525365:23892994879251242871 87811943:49463648174254256084:49463648174324051959 99334904:71166072296958270339:71166072296958835707 60484684:305225879961992560144:305225879962009992796 54365283:217756068641737621646:217756068641790348527 31401508:854954505138962194594:854954505138966849190 97811001:7665231013810222377120:7665231013810294749881 79166891:7705351795900763704802:7705351795900839624171 55996149:3396135940712676611301:3396135940712732458741 53707134:19681037325275544140797:19681037325275596569599 18903981:99850514846032962369245:99850514846032979163133 55105069:84121168820187491981745:84121168820187530256317 11324199:431359396162090220338856:431359396162090220650415 40794117:811663120673705238716051:811663120673705241345687 49310909:254502532275802134058294:254502532275802173930943 59461643:7706755363603707155272343:7706755363603707214123679 43934046:4729501485329182220709723:4729501485329182254657375 54312718:8230821621772173658075336:8230821621772173694517198 50718038:637:50718591 95494179:459:95494635 87254294:332:87254366 59194983:6515:59195255 44218280:4898:44218282 37269439:3199:37269503 72890025:25685:72906493 90086736:51105:90103793 18734043:17621:18735071 76940616:657672:77466952 53978178:727637:54509143 89770441:284012:90037741 36942507:5449886:41138879 31170276:2473977:33538045 54723315:4298272:54761203 67574528:51815699:118996755 70826980:47253145:117030909 56872566:99589940:133160822 88655902:666972213:667547711 72316085:184378586:251622655 45592471:723189012:734003095 10216097:6738646247:6740244199 51395382:9062402387:9113795447 16543609:6344662497:6358564857 13158052:57222826188:57227071212 97679490:47262474012:47342321566 98033407:44272963459:44289744895 28911162:906365415892:906368104446 83741344:994276062402:994284797666 88174174:998916120695:998937161343 51751031:4289665947513:4289717600127 21075229:6793492892195:6793497124671 74835730:1798504463952:1798509035346 83399469:75615955447507:75615969083391 11687970:61721170108810:61721179552170 28703984:55965486309588:55965504240884 32956512:606066850616790:606066861143542 30382613:728586589721828:728586606599925 39572692:212374352951571:212374386638295 89891950:4546821898270739:4546821986450559 95083318:6555037330250373:6555037332396983 87017299:1977039112162962:1977039179468755 43781922:83330511236939739:83330511279144955 72837881:31019111983170549:31019111988816893 72295288:84751367806800520:84751367807136760 88892647:954748581123484897:954748581194788071 11045718:646730517167180117:646730517176093527 49931275:950750795648635131:950750795689620731 50407704:3481557841894160837:3481557841894160861 44655673:6324270251632919141:6324270251675477629 31216213:8389591320425544801:8389591320447843957 30060795:70892313115025855399:70892313115043296255 17012550:87992758850063434081:87992758850080446311 82188111:30200834590675889514:30200834590749687663 96392661:721327502808841518475:721327502808928157151 11694359:820007757191168745541:820007757191178318167 58695959:966906355739456325743:966906355739493656959 82483464:3598880992247903644881:3598880992247975509465 16362374:3108808679164310757214:3108808679164326035422 74567897:1862078372374284925759:1862078372374355246079 32601373:90568293342426161682177:90568293342426177435421 90252911:74556527391604037333284:74556527391604043626351 36218655:69918106435968690341635:69918106435968692971295 89017346:196626492282640105505117:196626492282640176958815 20461135:564889826648247588970776:564889826648247609423711 68762837:479566470984291644104078:479566470984291711811039 79340048:5790451360189644024711156:5790451360189644095006708 26598200:5016114076155224467946645:5016114076155224468225981 92641022:2375921214138000906711935:2375921214138000999315455 73936026:971:73936859 60732598:285:60732863 53776196:141:53776333 56611459:6315:56613547 36297850:3952:36298618 45433514:6353:45439739 74701416:78533:74709741 85597922:80117:85671671 73085661:90044:73105405 19840533:952819:19841015 21275160:828196:21799740 92770635:211091:92781019 73870198:5078782:74416126 97446843:1899434:98499515 24760888:1476339:25155323 89458280:41252451:125138539 83938658:98089107:98106867 36018058:78314042:112197562 57992727:812169534:863829823 15738917:990657733:1006386405 97096565:794021208:802938749 35157203:9675227898:9709319931 79988742:5562031260:5633334430 62505451:5957756526:5968357359 37848725:84763868356:84797423317 13678281:16343516366:16357193423 20971357:52662029376:52680458077 50742952:258546595746:258563635114 48267197:377874534877:377889226749 42048214:410899511279:410899578879 52286366:4162221070687:4162221628383 38027722:5005305867919:5005306130383 14515153:2315323307979:2315337465819 68463391:45746115918377:45746183060287 66522070:33738586169833:33738645285887 34177379:34412274201436:34412274758527 76107790:903030245591427:903030254590351 11595862:120476509047354:120476512221822 32035272:683339810566117:683339831574509 99527825:5091022623523981:5091022705978525 24408614:5813732478427675:5813732482904639 33194012:7126015543579701:7126015557735485 25170135:25830486030564581:25830486055730423 76971224:83036870136395061:83036870203637245 46390058:60684033008682103:60684033021435775 46604564:516255678627529163:516255678661091807 85671457:375264736301997488:375264736387530673 46513281:326453157488464978:326453157488475347 21020983:2507678306758850279:2507678306758883319 51707228:6497606982235013347:6497606982251838975 54630676:5686001304541744880:5686001304579596276 67132242:73110908490515118723:73110908490515119059 30150394:17921895852793813987:17921895852802990075 55217694:17257493621544060899:17257493621582499839 66286145:330834506012324852504:330834506012350215001 11900640:277127528062991782800:277127528062992111600 21758340:623279359050185540678:623279359050186065350 14627871:2702749498302789708286:2702749498302804262399 38526257:3114454416656782005938:3114454416656815611827 45237042:2020018620923546614669:2020018620923555019711 69072407:10326965995875767406473:10326965995875835314079 56565947:49818329742056613062714:49818329742056634689723 74902199:52630470567267433678219:52630470567267501862847 94675121:893834921151184356737495:893834921151184357007863 26917817:144957751445136210655188:144957751445136227434493 37974334:527754198862002895182249:527754198862002928744895 71880032:1162890250214866872165939:1162890250214866872692595 68811946:4703408516261906983702134:4703408516261906984337150 74977083:7034348796452347401787270:7034348796452347475189695 674510285:337:674510301 398661191:884:398661495 675930146:166:675930278 385980471:9920:385990391 218240917:7511:218243031 950489032:9576:950497256 704615666:33024:704615922 167833530:66280:167899130 559070093:36796:559071165 149736769:309880:149749625 376164913:708538:376168379 754985343:961965:755936767 657480438:2210897:657587959 913431424:7287095:914357175 871460829:7242316:872411101 954515947:33157062:972943343 699831622:83052404:771217270 786136553:39879098:788266491 449786908:821349624:989854972 356688465:291090951:358330967 223623924:408769958:492666870 752222392:3068721500:3204381180 505961277:1664397495:2134703039 348159392:1174775272:1455816168 925763521:83190653010:83746531283 128436143:28870417286:28989972399 856478351:65757699206:66563530383 230117119:589909370863:589987049471 268669551:608675750712:608675820415 951678318:767849005741:768799111151 219196769:1795279287510:1795296067063 773393358:7146055920295:7146794118127 775269632:3367192736084:3367228652884 355555388:46550562968866:46550834568510 472092507:60558035445158:60558438297599 981535157:90593772004050:90594745084919 530327567:471187536199569:471187972931487 592330705:213914831896212:213914870562773 495471556:451560838853432:451561049095164 469792636:9888529092735353:9888529226954621 642864154:8974888283489668:8974888859162014 341598698:8649153208147482:8649153548419066 445219838:86355701501243304:86355701677404158 664188378:89811724591695495:89811724642203615 985450696:75850744493074554:75850744804010234 610540140:459673640445750612:459673641049997180 465854618:205852180300362539:205852180715860923 508914024:544590506007931562:544590506348735466 428988500:2565283162767856736:2565283162910481524 923784494:9574588953470245208:9574588954376658302 653261523:8578656001396754300:8578656001437204479 797189217:17051487581892206610:17051487582110573683 870210447:63334629991865245090:63334629992436850607 945308084:26371887503113615750:26371887503253600694 893590675:383614921221032111926:383614921221573181367 171044853:543563665379632558766:543563665379769974783 954891096:842042865222674279587:842042865222814793723 972002292:1801807032017382250578:1801807032017668250614 180326091:9353571739906749413046:9353571739906892349183 257356176:7361725566924813459653:7361725566925070660053 323338317:96888154277058660643804:96888154277058694214621 365807777:21373583058963121604393:21373583058963188797353 966742447:41332156453344064361257:41332156453344895816623 348871255:328354503239440973181181:328354503239441317853951 334501833:791147249701095964062079:791147249701096235644927 989213426:423276086689320715397842:423276086689321029974770 352748290:4147915215207244194558944:4147915215207244261929954 768590006:7945735526315012612403129:7945735526315012839698367 631165479:9944643024529581072889276:9944643024529581074741183 310371782:420:310371814 240738644:528:240739156 822274413:261:822274413 612717964:5647:612718479 156047864:9767:156057599 826848792:4492:826849180 110735431:83000:110752895 832033197:87110:832034287 491099365:16382:491110399 211037913:818891:211582683 159129643:744500:159349823 465724977:364379:466087803 418008146:7080461:418270815 945412748:7144005:947772109 768418150:1333381:769489383 857412988:62750214:868188030 972445136:61614050:1006532594 682042425:43312478:716694911 771307725:642787859:804862687 590603260:755499706:792454142 152637891:528360663:528430551 691893697:9951563991:10624038359 798969936:7832236849:8587801457 259532094:2305698564:2407411518 162894190:27888716462:27917130734 835219723:35911431518:36473468255 706395721:41494455747:41529622475 796026818:335089286090:335811903434 198640291:248960690664:249107557355 804232625:626745259657:626795724729 502312465:4685240314101:4685271772917 419306594:2315628725349:2316044229735 938577449:6018558543915:6019396390443 881745983:19457546255173:19458159541119 825565820:89743644456185:89744201316093 183764377:16468989442325:16469034794397 693024422:317933477284844:317933611909102 518850982:320641498041845:320641840401911 670948789:844154779236961:844155420803061 705151108:5860150763518786:5860150797138886 364332764:3927493112961255:3927493115338495 589063374:4198926085471705:4198926120877535 823173518:23898333140491781:23898333945839503 765674464:57002293638116953:57002293772417017 932607727:81841141683369159:81841141776840431 798558125:600013697250242852:600013697971730349 219684568:685988965693908767:685988965712265183 819942207:887166584872604790:887166584873801599 647631786:8479878028705557858:8479878029244006378 977798581:9942347661211705486:9942347661614884287 247823710:4045142277435908483:4045142277679447519 868316159:80680941839000455280:80680941839038282751 193538428:41490444744719489634:41490444744887335806 841082948:22496268374590166110:22496268374592322654 784195843:286253882014863778463:286253882015102133151 855558789:645447641950470239670:645447641950482071479 186251664:487158515056701856395:487158515056735419291 382299686:9254724698820997833966:9254724698821069729518 530354299:4635816887718139377503:4635816887718592362367 135436544:8477960747610757631719:8477960747610891853799 969104660:59430607484956727120178:59430607484956878265654 463825515:77591092065186476335166:77591092065186906335871 749896924:61344695692720684984359:61344695692720755371263 239321099:345812158579357475859136:345812158579357643696843 164509963:651590197307243216016142:651590197307243233196815 447983586:218972125549596077112493:218972125549596482977775 542389048:7974614602725698741035075:7974614602725699283153787 568267615:7968771123470199625009593:7968771123470199638973439 260283124:8488987863389274453166686:8488987863389274612685566 228775089:940:228775869 749351050:670:749351582 474610745:228:474610941 599229134:3716:599232206 428774673:5291:428774843 414184068:6874:414186206 463513530:82164:463595518 551292676:36909:551329581 856616567:34449:856616695 512554861:291349:512554877 868625076:260825:868743933 556824027:770417:557577723 704394519:7753710:704544767 837261497:8192136:838834361 128392063:4632541:132628479 956339263:91413684:1030937791 159919460:92731279:227475439 331140189:40913373:335334877 820206445:328844046:872143727 157634116:139852983:158727927 456447372:149917260:469753804 161486535:1730658468:1873270503 432814359:3100420004:3117203383 365354528:8275737375:8552709951 913223595:63661626127:64272465839 575208193:70524760312:70528990201 468474742:60835660999:61136101367 554314474:630470658885:631024315375 459940345:748772488123:748926235643 547923142:698037368398:698585249486 646473487:9914245304569:9914791098367 871277371:6103884956911:6104154089471 625299767:6637353663246:6637425228607 316970719:98190623927101:98190936702975 148610152:21503761137043:21503774801403 932211898:42029104696648:42029473820154 256935473:466651997620335:466652221001343 670835677:559202630932884:559203265330141 109820115:697213229500952:697213297343195 745977342:4889764409615222:4889764415125502 554304717:4975272231917982:4975272785567199 878253752:9525174665240843:9525175470618555 125638114:38088797793910695:38088797811736551 702015617:18076094076331730:18076094638845651 435050081:24262785919661209:24262786086270713 768171778:387558490501276940:387558491068038926 148369222:159491989466013064:159491989605711822 296425710:271238967010252834:271238967279212782 382062580:5038064081217444345:5038064081523695613 286288378:4620797951789728546:4620797952059239418 961066285:5325250355646092191:5325250355931314111 730289705:49908980057803816367:49908980057946685359 552602199:34950704215432776337:34950704215439067863 148374768:65118298668602286492:65118298668737029628 392335071:592353702669743862338:592353702669844659935 727014837:116537134209088364170:116537134209109417919 615960124:389500892220191111479:389500892220266905407 219487724:3751960939812499449496:3751960939812584652796 890867478:2025349460988552485868:2025349460988620677118 751721342:9105275280933541848804:9105275280933542395902 601795751:91896915643010221627664:91896915643010251685303 546850153:44144200628537448853308:44144200628537457766269 779895811:87654697352574665096742:87654697352575303155239 489432701:805004816466516668513386:805004816466517138800255 375524991:349236226137649850352877:349236226137650219585279 975962672:132020465628847961711608:132020465628847961711608 358210023:5746167451129988880104175:5746167451129989170068463 962969937:1308082550245349962806352:1308082550245350635992401 369179510:2697647969100675909171927:2697647969100675942792183 9285784778:793:9285785563 1682687672:532:1682687676 2163642894:989:2163643359 2200757483:9108:2200758271 8646236122:9936:8646244314 3023356559:8990:3023365023 9292822230:71830:9292824278 5239401845:47113:5239405949 2788796664:76500:2788797180 2115220533:223392:2115239093 8941105081:679124:8941109245 7784803454:607912:7785410302 9679706518:7058756:9680436694 1982632673:4866815:1986974463 7097086604:9208817:7105999869 5579468878:23151761:5602538719 9988773812:66303455:9998415871 1110158691:31749411:1139801443 4628532427:224473231:4829871311 4672181253:767164851:5368436151 2468237910:170386375:2604659671 6098729402:2463173618:8519891962 2281939239:7880887411:8015310199 4721938049:7117501963:7407107723 1388306682:46530501809:46573550843 2947138186:81591687511:81600175071 8025199780:24850653212:25223951548 5234914509:659362366982:660301903567 2301601365:229919156175:229935933407 2177228223:167980009350:170152943551 8614382125:2717963938365:2726557084221 8948570447:9703523397944:9703798143359 4178340164:8418681018158:8422321684334 7247467976:90807518297371:90812520070619 6938002631:33413518714130:33413736818135 1943055843:61449712231671:61450040438263 2732038081:168562545067046:168563086170087 3622286906:630644169334697:630646690545595 2940969912:633306296481192:633309031823288 3484455618:9769162792701834:9769165102751690 4670079739:5963480573292496:5963480880115707 8368984144:2718257694778893:2718258811549277 4902563265:49995487050119588:49995487050186213 6016501430:90077106261983191:90077111741579255 9565002341:90923803119685876:90923803657362165 5487542200:738061156108443069:738061161594863549 4226825966:945488539495320586:945488542852873966 5643222310:227129142503602070:227129146803552182 8364071111:8673578492430292822:8673578495954100183 7188710703:7586880121462833032:7586880128647151535 1157299241:3232558387201884541:3232558387270712701 2491591775:86750966547642828686:86750966547986771935 7507058292:15158926657496884715:15158926662784892927 1014979922:39902059434595094032:39902059435541913426 4778147115:650728625259147381842:650728625259282431355 5198203531:308405316096998253477:308405316097339190191 7107666209:361524245815068522619:361524245815698061691 2017572424:1803051819064483188545:1803051819066228064073 7453485223:6504383129763722605581:6504383129771176082607 3020582679:5534843831169634450767:5534843831169970011999 2984679075:89905571028993808352186:89905571028996516206523 8429361682:80853697511727704889178:80853697511732541251418 5042018810:67896510763226262034147:67896510763226866081787 7784141070:565979629941252156193084:565979629941257546955070 5773488654:376684355612898638889370:376684355612903204418462 9393561137:409994476827236254604404:409994476827245043768949 6000238053:7773947612736687795205161:7773947612736693163916781 6204067057:4573087269431442364355079:4573087269431442922200823 1304297286:1704212173050774765451811:1704212173050775842193255 1640204679:558:1640205231 4973554521:261:4973554525 1850789946:977:1850790907 8764140947:6020:8764145559 3457190949:5006:3457195951 9369982838:8687:9369991167 2936155037:31604:2936175613 2670129238:51078:2670131158 6064286938:19662:6064303326 7606443665:767334:7607140343 2665920525:145044:2665922205 1557278768:685575:1557820983 4158856756:6146393:4160741245 7051181537:5092735:7051542015 9872455295:1718711:9873113087 2958560124:87883129:3044867965 8184838897:28913617:8187002865 4323606655:94996727:4391274751 8260732648:721365050:8304717562 3574523633:620078103:4127188727 5433509468:735733318:6104737374 7513506318:8960434892:16103465678 8448943871:6677737194:8583556863 1421411431:6622973385:8035995119 8620191157:85752666299:85761850815 6692778854:85941668280:92592405502 4204686318:56264645832:60058140654 6513769026:299185291651:299252415427 4257725334:127873296492:128812825598 4496274542:712005933050:712159262718 1425091258:8625680380858:8625753783226 9762865022:5687026002111:5696702349311 1830611683:4821951539085:4823243943919 4552165501:81400393181283:81404928305279 9529178457:19812523063647:19821139835231 5765757361:49845931177932:49847385161725 2520072466:330663113084992:330663483232594 8533729293:573324547183010:573326560850351 4193597352:222705647780446:222706871547902 8501452105:4191199466596762:4191200818757083 6713917455:1337054240271570:1337056390245599 2342919655:6311742832450284:6311745156489199 1577329259:40869949850316771:40869950991429611 6180257575:91578922522026378:91578922522623919 6202236678:31576617022626301:31576622947606527 7821492597:777988664764447264:777988665840417653 2372335962:764779595612709001:764779597760231899 9880540740:328945173644256811:328945183513982575 7894018906:4919126718125771552:4919126718134168442 1736862120:8025761995743358805:8025761996406190077 7035057201:4349404897807028435:4349404898366059763 3963049588:97000736910550935214:97000736911158408958 8197717458:99458224834294436565:99458224839270072279 5619271815:40379855867030657044:40379855872469227671 9068290157:356575217451973574344:356575217451973705453 4657304151:301646301630527987908:301646301634890625751 8947058308:761430642051159090242:761430642051444893382 5913280905:8170036325165795796950:8170036325166339319775 2106220096:4587385260246426821239:4587385260246637215351 7291640646:7974699817730726340720:7974699817735332805494 2293432641:85585762283671078591210:85585762283673370975211 4637069671:49579650976769482041181:49579650976769551251327 4929733749:98108627800321115784488:98108627800325487576445 6252828976:535018708554689478845621:535018708554694042254773 9175974154:447210949897594887261109:447210949897594925403071 8422185189:577765177628821457621048:577765177628826390124797 7762138826:7022245122510567838862634:7022245122510575455756266 9498979450:2089123992081465770543483:2089123992081474998168955 4326746899:9561061984073497371234521:9561061984073501695605723 5699474132:786:5699474390 9153848590:683:9153849263 6432294215:657:6432294871 6853274556:1254:6853275646 9619292039:1799:9619292039 1103412842:4130:1103412842 3660629299:31133:3660643775 3276963022:42145:3276995823 9306228322:86824:9306232682 1931277369:366251:1931343547 4939274618:250387:4939307899 1327628741:254205:1327751677 9057558904:7536226:9059696506 3371152358:6690340:3371153382 1983763001:3674969:1983763321 5141726754:98923153:5234357939 4616425155:57809996:4621803215 9181007800:88177566:9252339646 6938106888:147739041:6942580137 3560560348:380776808:3602642940 4273719486:319901392:4290498302 9008954150:9199082602:9613344622 7907502119:5378654183:7916224487 3725625146:4077685692:4280061886 7921460600:64916004358:68139614078 5929799711:97265148376:102633959903 9230212748:94740777668:95277670092 2689819800:504499419321:506652228793 9189178970:639010701993:648199782139 6261491581:471782553746:472404393983 3788958381:9714668648598:9715213925055 8486948671:4516607424510:4518236389375 2848765586:8019886017259:8022730325755 9997948310:34224680617171:34234646320599 5340769262:39590957182498:39590991097838 5728334204:52118923440917:52123554280317 3913238877:677003101825366:677006995843423 9504032354:490673850870414:490674226786030 7344220469:362866252722804:362873058491253 6693199037:9225956938845766:9225959102193407 2872376983:6338702172097126:6338704859660023 8714307937:3065847596531379:3065847646912499 3307867043:34397657167606730:34397658327989227 8149420709:98497608991062386:98497610142153719 7372293276:15692637723676747:15692642125862111 8593144589:942174169277776592:942174169279888349 3144531336:828339359182685662:828339361638497758 3012078423:379943692636823004:379943693467828191 6008494229:3187634482938940141:3187634487269710589 1272767016:5057735801714125367:5057735802973252159 4663724099:4933907973742273574:4933907974087961703 4805083452:61110462315340025749:61110462319672938429 9203073560:54043708905102882203:54043708914305857435 1808949675:83935721336590716345:83935721337166392763 7294836331:940916260251304699956:940916260255646613119 4289972991:345325954792079212517:345325954793681453055 8441767695:323378868274434377512:323378868281178826543 3430285912:7325697720131931347041:7325697720135358225017 4088691982:9402033036501306134252:9402033036503186505710 7590922609:5674662865122989404801:5674662865125142133745 1631345618:19653974209353588093212:19653974209354126031838 2361527417:25654067581488402639629:25654067581488608292733 1658287579:42627461128647754597886:42627461128648333424127 5762450770:812682315831775151760173:812682315831776315680639 5431956197:227748072266059392846235:227748072266064769948671 9435904131:437654921887870593373342:437654921887879189626015 9208703801:9271480805903063254207672:9271480805903071917617081 9152122621:2552631998137922378410592:2552631998137922932076285 2752657733:1998007319055976547180293:1998007319055978762829637 85274193414:907:85274193807 77003556723:213:77003556855 79725318659:205:79725318863 17288251088:7437:17288257501 80849648292:7386:80849649406 39762455035:7758:39762460671 28390831132:79956:28390833244 73221199089:86059:73221264635 56954735029:63544:56954780093 26464320768:682277:26464976165 13150977748:761570:13150977782 22400553581:218853:22400685805 72540854886:6255441:72542583671 37056865547:8859116:37057195503 42807056695:5091130:42807066431 81867010599:30517781:81872288311 42206541700:74803023:42277926863 20642133588:30915141:20667432533 31991930308:601979837:32010895357 27843646722:736696532:27850005974 93373616510:954006243:93379689471 14893114138:8167299439:17045650303 82232088769:2362754700:84523540173 19284382244:5550826921:23621990317 63846484701:32823698878:68685787135 93733970478:82911906573:102542338863 59615728059:49062110458:68406998523 61301663168:635971728762:680079095290 60299712479:264771761120:273529763839 67165064206:212209658216:274542357870 50472885171:1728510915289:1769315728379 92938735085:1330382084147:1330969550335 53653612186:7183026880689:7200508815035 19187186708:21317742751164:21335250042300 38843440875:40226674586855:40265515532015 39032200434:55015180553500:55015289609726 23582054722:270649850709575:270651621236551 77359921836:818306351099175:818306351103919 75565735739:850176766712437:850179049496447 94934854162:7739106589630029:7739184176430687 74285151932:7147262598553837:7147331514136317 41115253128:4154233721785786:4154272689028538 37212845739:31274235369084220:31274272447002559 18135394513:84370026436622651:84370027250579963 61909864841:40790979772938598:40790981519342063 25358250796:268226323753374950:268226342631946222 60511954671:972097754044074268:972097814476337151 51173307667:927845696649893051:927845701616645563 11954223514:6213499159242532145:6213499169040432571 99312457237:2117971206289719010:2117971206492651255 80555309858:9710368034858439776:9710368104675802978 69280203821:84214444317239902246:84214444386496250927 70218959825:55181813383693727917:55181813453503724541 29561765906:29906121250127686007:29906121267844475255 25035721821:926490536427738255672:926490536428879928701 61125116972:521875335605658782769:521875335631870053437 42711647015:741302204111419204129:741302204114381431591 82282707660:9396409915965965622304:9396409916043409915628 26536194828:5429394447769138325886:5429394447778400140158 17611485526:2012001209447856625538:2012001209447859877846 97400100381:49225806236995843241386:49225806237075375110079 79092662595:35714327997433051051536:35714327997502479890259 25576863862:54226526992995545403163:54226526992999309639551 91357319564:928714820102303655892999:928714820102390697138575 96553693196:923659723429323122881293:923659723429402463138573 47683641523:566348925188608740707549:566348925188652093074687 66175280544:9067315505174979659726176:9067315505175002880081376 64332133254:7282995259566493503991106:7282995259566545080057798 56083840768:5921698085963061159435070:5921698085963078515556158 47515851849:843:47515852619 42830057079:743:42830057207 97955328173:533:97955328701 46325980846:1750:46325980926 86603483617:5117:86603488253 95130801044:6618:95130803166 15761753328:97889:15761768177 35641743602:70376:35641744122 59759490241:43394:59759525315 33223314711:312827:33223593471 80871612376:479700:80871940060 36698260897:354324:36698549685 87382314662:7691931:87383432895 81473085011:3436046:81474158175 14773687171:1786005:14774424471 56818005982:69376911:56887345119 65814997325:17419361:65832349037 93206597452:96520584:93277900748 29738709650:890243716:30023924374 45087054974:934389720:45096501246 32276118738:389748852:32614874358 90661249649:7022909439:93346199551 84065475899:2910949652:84820483391 68532036848:3117707665:68683298289 62693287480:33604317580:68098701244 36797214485:38852639597:41268608893 85610475469:18812408265:102807551949 55214334071:937252061965:957703775103 83824017079:333819452125:411200978687 66760385536:994205148340:1030712370356 21260827593:5241283852949:5244020784093 14884181017:7940206596645:7954266560061 35354355713:2743989061142:2744408534551 11468082714:71419201408291:71428521938747 25109163531:66670746400878:66692231200367 26880173772:53650480291415:53667696738015 64226797215:783542216809665:783603755646687 14251126932:751287258763618:751292648452598 11933299748:522769563293804:522778174274668 76049775427:5558386816418595:5558391921441635 74240732151:8982430119350047:8982434431365119 58129375100:4727640518993933:4727692193169277 21781115781:55208185026923118:55208185333119983 23383458946:10768932261855663:10768949739734447 59372594723:69513765979548354:69513804948827875 61926683295:868006875156846996:868006909701929887 68477585308:963285267722240442:963285298055710654 37374410745:584770628515831087:584770629055856639 16355561564:5130864570699159991:5130864585745570303 16272372375:6665399574118522390:6665399585940176535 21100067161:1347810337526305717:1347810339692739581 53115786035:97695123869833135678:97695123869980071743 37474867679:19199991131961331940:19199991168880187903 36002530810:22076571547734071296:22076571548820397562 99317436907:173271459533775074856:173271459624099772395 86602633718:593945369724256528616:593945369810317572606 16495786115:444562416078180183925:444562416078484799479 16971437186:5311317962220769257339:5311317962228336932859 30096944081:9401233583293123029365:9401233583314609040373 62237743252:4520263865178240841150:4520263865179191377342 42520197934:73527363691105003874547:73527363691146917690367 66716006211:38223434145946365855706:38223434145954956933083 79469984759:71464027615085801081657:71464027615156680768511 65045606745:281694790049552282694804:281694790049573757597149 24309765814:303554269603388194504003:303554269603390486724599 44140108163:605203380523757961647794:605203380523766629441459 31839772052:7810888257572448351622648:7810888257572457105153532 49320418275:7972972652898283503880625:7972972652898284226993139 56037460108:6409089070888631197133043:6409089070888631332759807 34246238137:750:34246238207 55599933218:703:55599933375 41933594704:362:41933595002 99147455459:1637:99147456487 21606396522:4718:21606396526 67245518942:9353:67245520095 43096940130:45568:43096981090 89869120993:78641:89869121521 33662100864:12037:33662103429 99987859279:114453:99987865439 99009515836:244896:99009691068 31305197911:224091:31305198431 43435083140:1312514:43436132230 10654990743:9682450:10663493527 88223633045:6971367:88230060023 64714187667:80601418:64790324187 17798034134:96408626:17817368310 75656866106:58433790:75698514430 19081034582:993837748:19251723254 22816581044:362529127:23085180407 10043944901:540011637:10581176309 61513199049:5798813514:65967685579 70692360696:5767045012:75023507452 35368916103:1807547206:36502962119 51432030489:32387829519:68651814687 66576368902:47673606205:67005302079 59580034308:56374051224:60116954524 46395233721:721163233376:755612237305 49319177478:681150718996:687190568214 85054022643:634052803979:635353038843 22395297621:8420878850690:8442697686999 59140479973:4284858482205:4320292487165 42398962613:8808194181397:8847086181301 76954842312:66559934638850:66632053407690 71036574351:60986940451510:60987109538495 73618356072:79715473527873:79788546979689 95609678360:696499651497748:696499660386076 38470874757:518834518576147:518870556212887 57483174950:396753240791039:396775252539391 94707086450:6254059240916449:6254153940596211 39893292332:3928592912022487:3928597358182399 80253325848:9794194659768215:9794272144324511 11221753507:94942061071523973:94942072020106919 16308237928:62253495580099471:62253506519627759 81811154661:40239583565328009:40239596584513261 24806649286:340878855433778248:340878874862124494 62312459297:296419398665961858:296419400815062435 88770945778:760567593136784465:760567613188187891 18389085494:7652721230492499925:7652721247672565751 52507858351:4962431580214258825:4962431597681835439 87028303641:3375050213455827830:3375050300484130687 16844399641:14037523302742444424:14037523311533714841 96936571306:16211582275286086906:16211582344283207162 38161098423:66207062554648079364:66207062558406176439 52294198820:746073937429010615946:746073937446270840494 88962000407:401053733999243786686:401053734016994082751 20285251160:815524442995691095092:815524443015437901436 30690361795:8106648415302627230766:8106648415324722939375 54672163179:9454709534551788857403:9454709534571795818875 40990491841:5680747044192589428782:5680747044199068597487 73928821826:47963002784360609080505:47963002784361447943419 61742552578:75695120325399739106571:75695120325451280848651 11782533792:41020316354543285665689:41020316354552215338937 12633255397:652516037882677310564294:652516037882687779549159 92827202836:979958802387541680993697:979958802387546190820789 99443935582:803299623053225091881400:803299623053250862733822 56883295278:9407098154944273926706891:9407098154944312757712623 97051365364:8115799470909783621141147:8115799470909801203945471 40147550767:3910310369232512623437771:3910310369232552766203887 237121596132:455:237121596391 160699921615:949:160699922431 542063645315:106:542063645419 441036003831:5729:441036005367 389429473817:1351:389429475167 937134818184:3708:937134821372 177278128616:70834:177278129658 843488344876:36251:843488346047 614129760071:87985:614129825783 898621250843:700716:898621947199 990260665785:746411:990261280699 336869625288:826460:336869629404 196508159480:6083187:196509229051 118045843801:5589955:118050122715 710999016087:5231707:710999529183 849646842963:62936476:849663620575 977929498039:66792004:977977208823 800681661068:45088169:800726187949 609309566089:444083255:609348365503 423281745580:243977586:423315300350 178958917264:696919242:178975833818 140174961007:5286905687:144873353087 142312168661:9694553546:152001019359 708820107432:6863139225:711253012921 801526536266:69653647905:802080840299 268692925391:74162372141:274063949807 656362854925:36171042308:657062256141 161376364028:322751965392:479824702972 999394678960:613844658462:1026429991358 389520187952:981039163963:1095141157435 669844520352:8748101463241:8795958476265 958756248826:5282342787843:5360093716475 528449363729:1481401063743:1631725510463 993816479677:55387925152834:55969423722495 959782805267:36994080447326:37381239955295 869215423612:87690413181659:87734973615871 384759816451:585212404878277:585489773685703 635636513189:237654072654424:238284768246781 663270951980:801709386080385:802364033313965 442967289633:6123392360862950:6123693016973287 225239854320:7847410918098598:7847480733429494 274563304927:3521712476217111:3521735697620959 606437699320:20012100364126218:20012139060784890 395273791919:42737391384847284:42737460106488767 930280604491:31559334209139796:31560229727221599 866447035987:147699639146098155:147700471027838971 633159000317:398024963283218636:398024976352932093 558268091887:323706488533327615:323707046532718591 690244503966:7427557439432482878:7427557991633643966 934247430120:1304808905996352889:1304808976868573177 843043443043:8234721491569115661:8234721784835773295 140242845089:18085367658966233728:18085367797044477857 377254154286:42833325122564243295:42833325215981354879 753336145408:65105494377394966714:65105494987884582586 279012387348:814034755321617747082:814034755599991811742 873710019718:715027145312129786133:715027145872289621399 324863711212:468358872093307910747:468358872409042583551 586694236833:4438253169899416543844:4438253170483961002725 793154465732:8183249207202381624617:8183249207752289484781 358200188639:5291971175523428031226:5291971175803240537855 873809804834:21296792448243046670356:21296792448793659309622 261678593697:58199302182588440400432:58199302182643419477681 181189419636:52315935878917504150631:52315935878917513784951 917079859591:267405009903811868799047:267405009904705222521287 440709539155:644376805661522738780580:644376805661943915347447 521357317538:675126476328837239505729:675126476329151851124707 104302173826:4616544300992923046141891:4616544300992957412466627 115455283068:4805065400351208728856740:4805065400351244171333628 989698966836:2578935389894925925177799:2578935389895768443706871 640387208147:637:640387208191 231433880449:849:231433880529 649899538531:433:649899538931 571303624450:1378:571303624546 283657431518:7974:283657437182 115600138968:6130:115600144378 667666563964:81674:667666579326 300293225720:74642:300293292026 940348851320:32573:940348866429 123809429137:526978:123809431187 490690033364:420486:490690051798 641271658381:733396:641272379357 988174723168:8954706:988174723954 335157946944:1690982:335158046566 140850589871:8873678:140859373295 258144050872:35595937:258144714425 354322030937:66336590:354334619487 672159614495:19702917:672162244255 273992017108:359591948:274332579036 678244435422:931051616:678604766718 288339498479:283205833:288618444271 124487756598:6746450156:128817490942 259742318651:3767570420:261889839103 232811636395:6665740895:239409800959 580578911892:70424291191:650381322231 611296068781:97313208825:682838326781 634041527790:26211057342:651222188030 913594709005:108217408250:952249548543 324465845990:643419228511:961266315263 378654744604:949386192493:949923341949 922530588916:8037738922780:8658379074556 984913305699:5266649922217:5426656344811 739138514039:2956516932156:3008057753215 809046893949:14429324182600:15117731227005 368260330395:34471349088162:34488562679739 836351632177:88340368981782:88901435785015 929969578870:360551933466162:360620753680246 938851792547:772683309896540:772797223532543 467877045595:385872903543186:385928312733147 551847755642:5587063141777303:5587614979031039 490250638248:6768529313853301:6768538508820477 803400698424:6235301849917237:6235310576758589 731811106083:69437574600818217:69438262925033259 923894011441:31422554633743562:31422906823081723 636181539906:43293558010667105:43294193751157859 531661825289:525863745662723946:525863958422988651 474075157040:380671638061109609:380671811487454073 278390586301:378517009403271277:378517284567645181 166078535453:1793815414985486932:1793815561031743325 660567956999:4384841496456720850:4384842046418714583 593761671075:7335100994236607260:7335101553637228479 630407831324:14334022764553889526:14334022835490324478 352045822913:42676443143550449148:42676443212395771901 733126964940:66604658513338985565:66604659212076580573 853236784123:124816008882528854966:124816008884688927743 533963221701:626016138874599850713:626016139390273809117 165711031439:786925265634813227970:786925265800186544079 587159886676:4219383819518030939321:4219383819520787668989 661859820600:2645996864448381158406:2645996864998552364094 259527371843:6488171893925294850069:6488171893961483316311 990882251038:58708793072858923694718:58708793073684094876542 421599623337:36828193301537470633234:36828193301950324538811 393219034963:17997595377523341421172:17997595377905671499639 324520833079:826268540923688858124706:826268540923970414440887 321913125248:380006564704228239432063:380006564704239555672575 626990972923:989922214196083747968189:989922214196152492621823 251360229050:2173436236692001281305502:2173436236692070067929022 845306145422:4010653623216340487229205:4010653623216632815808415 511925900123:3743693480120138217273044:3743693480120554831738847 695591635611:251:695591635707 776399021879:767:776399022079 205192075084:212:205192075228 145730100513:7586:145730100643 281300122878:9473:281300123135 464744719604:5639:464744724215 288674779251:39428:288674781815 352342019956:19636:352342036468 942124044711:63905:942124104103 239018726034:600353:239019326387 136290278482:423851:136290697211 831085016587:923754:831085543019 403719784667:3694701:403722430719 771737443015:1416324:771738820295 174075495604:6275135:174080378047 999534888490:50735732:999585361534 848046422526:51309696:848047373822 862013708861:53401005:862066827197 402649084556:322751641:402653052573 324311531208:413020289:324722966217 306127366081:315517729:306400128993 523455857341:5776654504:523859575485 780710234417:2954805435:781516196283 523347516598:5909860291:523884388343 410565166201:34440174515:410569891835 171539119478:18106656237:171660262911 915886601902:42985511974:958838537902 786985253453:792583095988:823492607741 360286520047:425917442311:497862339567 149915677361:928494579091:1077764161459 742482368967:7927262132424:8512623475151 822280979462:8607491074965:8793810710423 781868824900:1184334783364:1888709508036 333416385100:66984569700873:66991549041229 312270762638:85509341225126:85545915626158 993217288864:45543710316553:46110651308713 972160175724:983103127055459:983937713925743 981321231891:921556711340808:922382872084251 297118117506:240979950003529:241272704987083 664767145857:2795060008103234:2795645215551427 274329209328:6407025955005535:6407129122467327 212086923122:8602670402511661:8602808378965887 780626447258:81604056229750953:81604610283695035 907548109101:61156669360521382:61157018562816431 712188367581:43614809728992875:43615384200271615 701597111926:904053180995000104:904053332798527358 675356624563:342029015509686655:342029067756036095 402568126486:763128925932794589:763129238305813215 556190730270:3106226716411087157:3106226717619898687 329370884344:9849564578421235201:9849564579227098873 457946586461:8794815872611135287:8794815917977403263 747903602537:26696463850611832442:26696464409494519675 454655507829:85774748216106192922:85774748635268185471 739089716592:24818777952621142747:24818778640154081275 586174921711:808116397978831651002:808116398564332010495 500286368975:208821359774002827269:208821359911978925263 869476239921:762512175344839326465:762512175654082378545 107451907189:5332997831094270960018:5332997831132925787639 387538093014:9404316370950239523277:9404316371302561059807 573411582685:7959671247603172442825:7959671247607477265117 209331512463:72883438666977998956851:72883438667116176174527 532345354144:27645704380334966182834:27645704380652793853874 957942368756:60428716845421831931893:60428716845451896737781 924413853758:729552359999703611218383:729552360000069241281023 965915247191:909803713253603359649971:909803713254156941259511 745690632359:930436297345501340545248:930436297345542413267175 607373571495:7158729848151677859735388:7158729848151696650221567 698446804351:1676744980245931376570458:1676744980246620729570687 310286099865:1212782302100450149806595:1212782302100485253773211 1231589535554:461:1231589535695 6165420417529:392:6165420417529 4109228753430:160:4109228753590 8766704192373:1567:8766704193407 9186215698111:9363:9186215706303 7956411939859:4143:7956411939903 5282068712689:59939:5282068754163 6269665217364:92296:6269665242076 6838162767404:83431:6838162784239 6484732828986:344515:6484733156859 4188959087941:954166:4188959383415 3388870888483:473014:3388871229367 2630453144287:1638448:2630453144319 7194397143650:3029255:7194397277031 2020481895837:8542631:2020490304959 8149817702613:45091213:8149817702877 3651739103016:95676860:3651758190524 4602835948132:74585232:4602836997876 1208429650162:442439047:1208469108215 8731465643763:775047225:8731668152059 7435764525893:510928015:7436173733839 7321008942016:2000063862:7322906111990 5642225466481:7797266275:5643567693683 6041780974170:9443368782:6041794215774 6971069163502:36705609334:7007773648894 4479829366474:33714750680:4500516460250 2814050935675:98690243802:2886132416507 7203307198325:821975881644:7419146377213 4505178086784:910862016863:5347026370015 4016282492670:782397043090:4085579218942 7895036283733:4109676834376:8516917522269 9311870482869:4652869764431:13723875900927 9651909679269:1852134974526:10924182076607 5139549184556:76567672315325:76621913063357 2141403013932:76319973106514:76947391701886 7983794156590:66718806255603:70295725537279 5283364339649:134246678564853:139495129219061 3314565688301:721183784888796:721192651779069 6138304912157:936728602506612:941144372150141 7376127130210:6519832674473151:6526657937538815 7819560445701:6712769634640869:6719386066839525 5026641141104:1286630931945792:1291648528014704 8928896244529:17256442855427032:17256555757722617 3321277883559:75047280534730904:75047303252524223 3366775649470:76773529969701659:76775735468980159 4294643710951:489336353404424788:489339814286425079 8395742758078:993321840134027712:993325140967423486 9986792605597:957328583141240055:957328656290541567 3417481477880:5253701538527498509:5253703777011040253 7514510899859:4407365062483964319:4407370360510675871 5097977069847:4859524777920851542:4859529872055136087 7244256542631:45522188028623480469:45522190247029800887 5356057608983:92871345014029253062:92871345851548400599 9389556626209:25552849582131447576:25552858928114562873 2831185668973:909254511835085713226:909254514583873187695 8902063120142:595612874644276133075:595612883509223325663 4269223659514:712222044317547470025:712222044454986440699 8090920214163:1391375005059177205423:1391375009560309784255 8917201053554:8718020705741293144306:8718020705793647570930 6432956955813:3337307166025221642999:3337307170739083788023 3908018329329:51621480361918039511218:51621480363056340653811 8965615534871:69135189276192888204683:69135189285140916760479 4088898026309:26650034462994395845970:26650034464712455126871 6219524212155:276151262464444476295424:276151262469564345748923 9737802558673:490635115448658749280371:490635115458081941093619 8478777305726:690317077571233679354570:690317077577375625210622 8286543576489:9264478536114559698819107:9264478536117347401301419 8246112874000:7176617838093564765456698:7176617838098310477836090 7702722387212:6633442971869604865495944:6633442971872903501045644 7174208571158:849:7174208571223 3519746320931:590:3519746321007 6614411791072:499:6614411791347 1088769210891:1616:1088769211995 9390476792755:1753:9390476793851 9058050397004:8496:9058050405244 9345414361385:42649:9345414395833 8322136021664:31137:8322136046497 5324826625439:97865:5324826705887 8495570584756:670065:8495571123701 3761889503295:957789:3761890065791 5995150045126:451822:5995150438382 7493109195453:2790651:7493111428863 4409292745886:6402080:4409294847166 6716521898858:7340329:6716522947435 4876836296903:74497297:4876909739479 7451234184977:74861834:7451306815259 4709684377097:26960378:4709693487099 1085940066972:830722684:1086485428988 4593294770470:883976951:4593294797815 6304864996023:407499242:6305003469823 4679861213212:6371300730:4681513786750 6660424885149:1261227661:6660612353949 6865883670787:9948509037:6866964757359 3689279289442:12324134254:3689355902318 7878001177917:93544744731:7971458758463 1096298630974:18143055153:1097254932287 5061384694035:405913726096:5355595623827 5478854537496:290162093052:5479022443516 4048662275513:759569066997:4118871257085 8088391321449:6847732064771:8226971264875 1858141206122:3400664744429:4088405866479 7433055052918:9640717644785:16246378592247 6463169493295:27262657300176:32898777087999 5448143335600:21340109453293:26375388264445 9529133701089:44710196052704:44718930761697 3899240975235:554174255261173:558070870568951 3574229626253:658967282571906:658968090247055 9949449199457:713204204766439:714338078269415 3069554750710:4112454438745567:4115248415634943 3645747606913:5547735467075102:5550278191331231 3394115926246:4951439041809064:4951508835039982 7528832731178:79930213017601196:79937634725448878 9411661738792:88376023529387567:88376062230230831 8193397722265:96260628587792653:96264423728991645 2805486197027:240411401444358174:240413635364223295 4693052632091:435503958275930096:435508648458600443 3213371150908:316628117982205340:316628548179384252 6537082921564:7672024923731118767:7672031460671351551 9665039798242:2014574996469760374:2014584351982342134 8447801891158:1543836722346206261:1543837470343249271 8010192240470:42222101601512561755:42222108512117047135 5570383167290:20178300957251974011:20178305425092755323 9955428563385:27210069582992491617:27210079483428994553 2808153232633:846983692646989570715:846983694899742504699 2129508554842:344636049050130672252:344636050464527088254 4204422804333:508865106689783803258:508865108340798177151 8561041541261:7862084030783175756725:7862084036320487771069 5323980561922:5684397349077634350713:5684397349170067373691 5457624873125:4743693532639610667803:4743693532856808553407 1426571491744:75447937771934592214926:75447937771969023279022 8890384466383:21724983313569631985113:21724983322451625467359 3077282202196:78876216548537230853370:78876216548554683352830 6939871208889:123911743773566710578968:123911743780503351721913 5548108311242:114505810925041103085708:114505810926150278408910 4665665165601:454644764222458003724595:454644764226986196375859 8861546507466:7660551324445458539581421:7660551324454272500625391 6700927193771:6401015482541893449638144:6401015482546326092903339 1951444550014:4079947575199682636871247:4079947575200250027636607 3698005976068:801:3698005976869 6855791910846:314:6855791910846 6024454416600:434:6024454416890 7614850931327:3067:7614850931711 5492357588871:8607:5492357588895 1388572211490:7050:1388572212138 3026800000739:29701:3026800017127 7658302270586:48544:7658302275066 6210935783181:14216:6210935783309 7258357896309:641622:7258358013559 1763099747731:189333:1763099797399 5452447290780:944232:5452447317500 3143413764107:9638542:3143423201935 1718828133523:4717859:1718832594355 2111681925041:4961308:2111686295485 2913585210751:65299471:2913597810047 1450780467616:23058288:1450782488560 7480573601408:49649593:7480608274361 1868004782952:825390341:1868276365165 1034335609777:679978740:1035015284725 4255737799897:687417798:4256278867423 5454936296317:5766101987:5460374584319 7026394547599:8667564058:7026396679583 2181120840346:8476335949:2181809758175 3983922489662:87132261324:3985150635006 4477777931746:86812151119:4495597432303 8078693775399:50480661057:8091582986855 5108699126913:325876958622:5428838129055 1131596091459:533700457410:1647042802627 5702325556510:811902052897:6320802955071 2797163487665:7134299582283:7693761769467 9439117189693:2484020992146:11922816268991 2787281225596:8074615706073:8628437899261 3189689689308:28803808304600:29647770435036 5058997390393:25622510283049:26242111745337 7012472904446:80772829500065:87372385475327 3872365127313:230644269496859:232845745503899 3679126507057:288044046500439:290245284679287 7426259636013:960168523242661:967319779139501 9690449016314:5523878167404840:5523878704543226 3116109461459:3980560744045875:3983382581084147 4457985510802:9378941268639182:9383361058422238 7825603994262:45127703867415687:45132196542676631 9361626086957:30891083343133915:30891638132178687 7038240651299:44253810652495706:44260839367606139 7911548665563:410583160970717856:410583169711914747 4412187643410:299684437740112043:299688849791438523 8174098396278:930899772866763599:930907495822475135 7515217496506:1489740523067438015:1489741352013855679 2219132799267:2148674869299045555:2148677086250790323 8697738317714:2038622382208085203:2038626402583867347 6436310848381:72064402634286611120:72064408793270041597 1174782530489:83523507934432715673:83523507938796762041 4942359850087:83287762261014000319:83287766659112042239 1255353569761:829258415190400878035:829258415328926356979 1104143618119:287585607537973916582:287585608642049078247 1692369874548:890844702700123433552:890844703292829462132 2847590149268:8776107183532274737951:8776107185739897892767 6251914397274:5654808007969025241038:5654808013627697082334 8989930589335:9040619219299729438239:9040619228147899891359 8147924294582:53083687507234655355594:53083687512770935446526 1365168251553:13659639135928261152287:13659639137285877690047 8184081292109:60801253686206649986376:60801253694109394141005 5456635097064:827928114223722753376938:827928114224427678035946 2003508338823:834462366436328716959602:834462366437713211031543 7206415001123:880548192768076005079196:880548192773045576761023 1061177672612:7229560858123890511385852:7229560858124302845695996 3104461719601:9468981168223311158723000:9468981168223586306410937 1041675928478:5983405226006889038328306:5983405226007166206342142 33188519286098:236:33188519286270 30461167638882:313:30461167638907 98826065596838:429:98826065596847 90286372006824:2424:90286372006904 50068405495650:7082:50068405501930 80854834379483:5658:80854834380507 62597603147226:96565:62597603229183 27693141709688:10888:27693141720056 98918004402778:31425:98918004423387 65945095418250:106949:65945095483855 86627423409584:780982:86627423616950 10120571282791:444615:10120571317735 73911995082821:2335162:73911995181567 68300258494368:3353443:68300259684323 65642106958464:7826427:65642106977275 61837013101548:94649262:61837021756398 71883466888497:26447648:71883484815153 54081416757244:63707912:54081421737980 90229605603481:361566117:90229606129597 58325856409680:485255372:58326192748764 80126312230309:122800074:80126363693039 81068435907204:6822196043:81070593897423 47012496890562:8321489300:47012712012758 44945163754057:2783480211:44945724251099 29140303386456:54333421903:29192488927071 77515033008725:94919887129:77515463580509 66273292397921:57954333456:66312120172401 55916956897245:105676505456:55919381565437 34584596801691:127495907736:34626023942555 73152998419238:710040289141:73312205995895 22562536945309:8179059021960:26343181909661 39925313089956:6302698632013:41781276111853 25694682365205:4352300849014:26387666354039 42730393072792:27469139534218:69269130835354 44039566123973:87531529649349:122723451535301 24233633922351:77622237662224:95223013653823 75816655227045:266662422667028:271542848053173 87757119320987:319404900833427:404619204197275 33795886146921:171348247565038:175920785520623 58658831700412:5529857962656841:5547559944181245 30155369014544:4997982163465110:5026896286775190 87975823361100:4788678494776272:4876641155149788 27756699682249:52971318475013251:52980237243104715 10894090137391:72028107852288204:72037729788985327 87184054336300:96207986685842851:96211594592632751 75136400485946:899510543031437114:899581204007743290 11051953327537:270843440082303268:270843444377271733 79416182066501:916945939457063340:917025115035893229 43074951483718:3905210960273276258:3905253841279319398 67966673682270:7932502655522773737:7932525541947080703 52022731561802:5169943604229938912:5169990885243346922 36865830097960:30076463398572900875:30076500249728112171 52938979472160:57672459945827910871:57672460107175491575 70258021655266:39437041421256311829:39437107143116678903 54044886066676:328104669937730529594:328104671037477580286 62470465587205:736477052413017887945:736477088490898431181 36729454903741:800333950881335611910:800333986091478340543 78148443151480:6432858334703258163714:6432858338071588363898 83374002624998:8759351564271434429233:8759351636100547312631 11377177920252:9753309471329107101102:9753309473596927559678 68692093519998:62029072224222345555348:62029072259585257893374 98216483321857:92906102578833439672066:92906102578841032425219 43133965919451:80292447508410569584918:80292447550433212233183 86702690625690:654543326234329850012658:654543326238762273041402 16044356064544:889947069450692305524836:889947069455090522185060 28380279214521:855770793882804008045877:855770793884468511694269 65691878357972:7799987904982038664784578:7799987905045437013818326 77825146219678:3962233329823419508009509:3962233329823729082298047 55549909284457:2159783650022467598555185:2159783650040629815950969 21249644270675:502:21249644271095 39494123358584:812:39494123359100 11134778766832:811:11134778767355 24600081627590:1120:24600081628646 35998405312585:2643:35998405315163 79169455406626:4385:79169455406883 42137252107094:87907:42137252124535 82046706864720:66833:82046706866001 58860287235139:40149:58860287270103 26850617232790:652492:26850617851358 15554141437132:976030:15554142272734 24629333235948:737708:24629333449196 99211161697362:5686542:99211167071582 87590146222487:9108006:87590146407351 57395675480008:5759153:57395675922425 87547737870593:63344677:87547738296613 42167001732443:13121410:42167014324187 39652094665857:90956388:39652168820453 90067254555852:123345753:90067343163357 57566772553154:863342654:57567585236478 42393584965286:540618117:42394124533671 56141985312616:1515503983:56143197499247 61991463540595:8139584970:61993141270523 50818668463796:9739373424:50828332208116 50826698120207:85228129101:50834561785679 64958382408243:22663987509:64962721415991 45573492892915:92833770686:45595370384639 28161246461197:585299914649:28161288437661 16922152480543:570783841487:17489106780127 87448612930356:780345616440:87676249942844 17392272235695:3063354239115:17426799754415 39609873706745:1656617518907:41265886130171 91755078352219:9741515985616:101152919781339 85958447866702:68521104416343:139078873300831 45849215510781:27487378108125:63771665788669 86550658614852:43469498503906:122869036570342 70550623622515:949291802011146:949335831197563 63622155509727:658121467791894:703550002733023 93973950901470:888394516133872:976355453829118 81530728336740:9494848746768601:9565373183544829 13670876265244:5332565092477766:5345821234903902 97417359614103:1349520177460800:1367765619275479 19582881521230:64689033407538224:64690726541131390 81841323311892:20260479088080482:20260629546219382 70698636347819:88976739491591859:89047109461557179 35212942687595:204881597878546387:204881617749065723 98416731715187:477708295883911375:477796808383264511 14285280415726:447870535137844478:447879460164853758 10430213238508:7020485359371732360:7020495529871142892 28320876367993:6149652713850841147:6149662885990545531 81684004509153:1522770859112184280:1522773369654787577 12307998077693:30587610441350029867:30587621509636485887 89934152077388:42942327249304637591:42942345674916712671 16308541892561:63627285865502522531:63627295302088310771 53234910044278:981573959196054708873:981573959344254345983 87052602733544:954916144170588999896:954916225723467232248 26778791583402:534539113575154475751:534539131511476354799 87366683140606:8679986952418860149590:8679986969259964050430 38834316637819:4235092934298137763176:4235092971755629707131 81774762539910:2101362789435891819135:2101362798236441295871 24439739460560:48137450111583460169461:48137450118327901863925 81886290437026:10372462349396736933984:10372462349809611695074 29592129087466:84298932922138507135596:84298932924475309551598 50762091005744:435814365933542965846675:435814365979903250081715 65524681855773:799488810658198347788138:799488810679639380328319 93490292077897:482146671881648702233290:482146671903639566434251 71707559710482:6325098509726279995183653:6325098509726359998160695 51239776730178:6129591322881729681562140:6129591322930658488008286 90170175866248:1797035275803517688068921:1797035275891479692574649 95124015391947:411:95124015392219 52498774327255:644:52498774327255 39901243136043:570:39901243136571 79388099283447:2315:79388099283455 97547815270233:1061:97547815270269 90561617993174:7737:90561617993727 73781658761188:57307:73781658779647 52239422143166:62681:52239422193407 79414333529293:79444:79414333538013 51840001625876:138839:51840001761111 83715733607620:728436:83715734330868 58432833268786:576986:58432833842682 69188165781682:1079990:69188166843062 36005923095465:3771320:36005926767545 37940448980405:2901563:37940449243071 11778202495202:94724714:11778271963882 48352724937230:74448952:48352724937278 11703148216822:53645023:11703181807615 37955642883688:549136099:37955645177579 74617830344917:155487637:74617964563925 51469321623046:684590258:51469460952758 23807645640844:7031045309:23809811283133 77118491576667:6406963148:77120397901791 15192855241061:3296420153:15195007050109 14385168201311:62083788915:14428925818495 45243330511668:99386072858:45316938129214 71835924776889:81122532322:71846142140411 53091916017011:405438966201:53186438884859 69311320392470:927157204027:70230749591359 88004895402898:927708253762:88922998697938 38179273609282:2773031315723:38199163091275 52782719967961:7901996204107:60679296869083 65375106734079:5631959191853:69816286173183 29077123857838:33258775783498:33533689560558 31304748306977:53792372535468:67056106451629 50925326639913:41244928516690:52587568112507 48356240757969:566164131151700:611323565047765 62146547819074:647109795883718:699907869223622 96815828669868:716548804743044:804566391824300 28688313197923:7454260855780310:7454275965794295 93946340617195:4469380605364373:4492543699708927 17415043896171:7078430000301677:7089513163478895 43493165340614:68220770822513260:68257613060503534 44870839680549:83886440925648509:83931010978152061 63776573737630:70260962315795431:70298346248338431 65792878161307:975969943486669365:976014476274544575 90212142464782:106153872279713943:106241884853616543 32322286901566:402881295317433325:402895591391099903 96654820839357:6144367412064738447:6144457984607772607 62730713928018:5385916893576775507:5385953233303492435 24788809219816:1475737573685731088:1475737619185729528 53074858428011:94597255999445896457:94597256296873709419 51019480199375:73706763756284643452:73706808152841779455 83319010483531:47796407833539777199:47796416934575595503 12706581106573:884500981974896460458:884500985334802403247 43645976520439:733789459211943912836:733789501680614615031 74738367002244:799429192932868625482:799429263924936767182 80038764509169:9778801933907441526783:9778801943013309085695 59884914647685:4099692100624669589118:4099692102909777788671 89747999087518:6611814613487406458957:6611814685642858626015 46966157558632:83176359914002939012490:83176359949410649466858 80211533530993:52184273031513901995432:52184273102926608570361 31194187997445:78207056111611020800748:78207056138112147125229 50250138408203:639032600872155226257379:639032600921158657734635 17474124046564:306067058906308541138003:306067058907837565494519 34483303505947:941392799619408378528400:941392799630767560811163 43473457621693:4188629817088597582877916:4188629817129870353743613 52019432249220:9662764619217394311608207:9662764619224333166835599 54671228841878:7548053832125230094931773:7548053832126334472486847 234712016160319:123:234712016160383 761133702856065:334:761133702856143 854924388998490:898:854924388999130 324268606901722:5042:324268606906362 468382464672594:2701:468382464674783 754956599931346:6462:754956599933438 170887930764588:75226:170887930838526 344302289637771:94690:344302289646059 166891687857803:75631:166891687866351 701693847235069:595373:701693847764477 227346861666907:847635:227346861719387 477257813150203:788772:477257813412351 899806122516759:2231698:899806124748183 251044915578715:5548877:251044920864607 289875014782837:9999611:289875024257023 871029313637472:37635222:871029349960950 571909992951193:96222426:571910060326363 373995921656561:54899327:373995942705919 187009387437248:728820865:187010115173569 996053152911487:858871517:996053171787519 803079470569163:352812159:803079823294207 762132087804078:4421420749:762132146525935 931118281286221:1446160082:931118282368735 464968782216021:3856315393:464968862072661 707605942747552:31535169301:707636127334325 984848786206467:42611524151:984887471337271 370895355032730:31435940124:370912804926878 123651557697633:993234989687:124209907841655 477884022570593:377420473918:478252853100159 207141644152310:858693244057:207704318492159 940769881235302:2098172778813:941081270673279 628820154085270:4512625540917:633296115040183 341504188878172:1453837861354:342888714030590 820571930651860:81429824546574:820576519483358 995065743345739:91897987088404:1085861935007839 884253621328685:88358533081773:972508756949933 920168013157505:195762175050119:1115915985868167 177053607048174:720000464256550:756290791604206 447343057966658:223803041268366:527624868091598 299134764450462:4745177909863122:5026692283671262 344002039715022:1416929180135832:1470041668531678 458317137741833:7813628549820151:7849372410638079 749723602059404:61500027259441562:61640816295924126 809525848478386:85690995066058847:86394967664016127 417162727574841:41072594156571041:41090324922420665 141025018177565:811024406309732545:811165145678997725 687720335297212:588329238687246295:588418471129247743 673688419286029:836100562563129056:836101349799100141 687651898475149:1459052220978365364:1459159046529172413 479426657481805:9287377833811633470:9287536168058877311 775938057461413:4784725759437655986:4784726876800769975 583488256312167:75487980992114190059:75487998779454384111 343264334346297:97533336386942953837:97533679444512635261 702860150153747:76355553673705217565:76356138867302858271 666378058990190:131312618808722515160:131313282914338137854 872691989150729:712484773425537344053:712485082599831895613 604996096824771:942208264595041563904:942208834279524742595 175863173300135:2042892253293587290220:2042892428468196835311 664023064365689:8144890096114124629828:8144890108263115255677 528837916160091:7444599026324782764440:7444599343780917342683 563255922357262:41065451838064403707749:41065452401315963434863 483159636948320:19286407533550142222853:19286407573132795705189 126721698509600:41214759199079833127520:41214759252958880988000 623176901201257:376929119525084291809312:376929119560268731272553 628844217312132:589317118108477251566698:589317118135063904501742 652168750422473:728295098283851406239634:728295098865649865719771 556983284409206:6363748909684281134466845:6363748909711222424135551 333369439211411:2221067784458168258912651:2221067784471373169422235 112021249388094:7957805943989784680156101:7957805943994323701854207 644545657248501:400:644545657248757 213141642423174:235:213141642423279 870094651490851:963:870094651491299 385812275544343:4195:385812275548535 686867009120477:4798:686867009125119 769845051156178:2979:769845051158515 434874359617691:89586:434874359700987 706706548504411:63376:706706548520923 264360036004824:64597:264360036007901 412299409381617:991905:412299409980145 178539939122452:322456:178539939164060 708273758065993:457237:708273758469981 945398995666531:3143874:945398997843683 830773663933082:4440579:830773668340379 917457867989045:3144978:917457871043895 514635848763747:40637659:514635849293307 388760036249367:76999386:388760036437983 607479903702735:66841450:607479905906671 476116547023638:303947922:476116850439062 836754322939434:744388348:836754865061630 116737177834413:154605905:116737197956093 278010503839652:7520426234:278012651356158 974463924240608:8277036343:974467905719799 534557591548414:2557834274:534560144061950 702692084995809:72685600412:702694977109757 423002413239499:19182757306:423002738372091 976840843898962:69859684133:976909571112823 493757740923700:353628651514:494041496616958 205800085714494:446380722890:206089700114174 502441791971912:829439433343:502441899981439 590228762029992:2650509972758:592565358755774 300353946209111:4046326061688:303119931530111 885758711649904:8415249837836:888095486476156 764460315653646:13072838972970:773952199685678 241339406450374:55240975668433:276527170158295 938502427534750:97737932003179:947729630492671 343337884060526:773576087723537:1055340976037759 825417164276899:812389188540842:825730982141355 434796642617146:991623571911875:1002694406830075 624898763776151:1553251542630895:2178130906702335 473203410637948:9044209589559804:9482091171329532 283339713496368:1333826611092471:1615988960911351 875480219673664:99510973419026465:100095965178166369 693539211354294:57073246297664277:57130442445597623 444629300838294:59000007900626227:59000291418800055 809120999640103:414230684744650433:414331152762375911 798311543569991:704254399616749464:704487540160856031 555796095291177:478766052723586277:479065456114401261 756810836338113:1941778219069947358:1941813748130905567 154717481949792:3335945924055501540:3335950950383606500 240742627160341:1982996173146133577:1983236364905723229 867432741462017:11073230634223258703:11074093098152488015 400932037086648:38284706426802711506:38285097852942610426 939420909117973:31303144529571530573:31303217530191472477 116288258779180:860469217202317026788:860469263117401714156 463551648969239:238564550204633215750:238564591470735487767 793216061752742:588006722038382554689:588006811240559505383 264513318363282:9592869125990440794100:9592869301982333597686 712991977486780:5362149683498481913547:5362149692527065415679 107851379431861:3763467474493142712802:3763467476722683730423 221340745939571:51651654901821875008964:51651654910945459290103 913615682417518:72758027758528125860810:72758028614126550907886 785628229894166:98591688262039134399143:98591688343962473065143 667621255950179:586218540378174516849325:586218540470742504402927 677602867183793:866636327170129020840469:866636327284753378568885 693832555529436:983206999889588658071870:983207000564725069901310 130680078309068:6866924532247642401367798:6866924532377488953702142 623850789237956:1240248646888921674758601:1240248647475386918075853 629157774077010:6613980427760250604993330:6613980428384996910677874 743214467493782:978:743214467493846 644335066520385:123:644335066520443 843235998808769:328:843235998809033 982031822561659:1074:982031822562683 306795126864695:6428:306795126864703 419785620586863:7786:419785620594543 695722096200846:61944:695722096262654 708835394010319:43181:708835394043119 677562608627304:76966:677562608627438 236552091357695:508339:236552091849215 630033788394202:665785:630033788926715 907370634824379:424373:907370634836927 989116959637573:7411004:989116966983037 180998840336119:3281074:180998842564343 619964905362609:5996264:619964906045177 876936830856448:37040649:876936867823369 767284800984118:79846762:767284880825726 219261294439618:19912513:219261297491907 788008823290034:987718101:788009393846775 591987439658571:836137653:591987990296319 901422349955382:726541144:901422367257470 676323512233584:4437041391:676327945924351 514326567888589:1513343326:514326602706911 546854147326207:7861510721:546860866937599 303066728790698:34435317427:303101155704507 753319967709239:11950227668:753319972428023 969466083045698:39563326341:969466454766535 172340251295554:193380344944:172344546819954 461263168947821:727758798144:461440345309037 404655212682407:831017945086:405485693427711 307112564361842:4875099593363:307310142315251 288600289747366:8002143664886:289721279233014 769684969342059:9626112380487:770514971774575 320077108926728:48524239295016:333409426332456 676468025127611:56744639679222:694616409504511 284760509932947:29737160554421:312261200476087 589309405164705:209641064568943:774038434610415 622554253090554:313135117726358:913694020075262 343657820572963:971382846454184:980763093892523 468475869675913:2340882559840077:2809354113576909 225953955351551:6455149138207132:6456252947164159 928050003149710:4206406086635005:4501119264337919 724223008709323:19563315526242912:20146073989159659 389340566110349:75721658346537774:75829444982326191 507518638608165:78443729688936118:78810510836891575 170325449499793:198304921024303336:198334232450168057 224360515409638:633964494480845963:634109655789846255 991151790371002:433886572589705445:434595147744246015 271857270220125:1540027172423860133:1540222061665189885 554436766976130:6548280047345842501:6548790503135771079 430054716738954:2274571679624935424:2274854261805628810 432829928687737:17426070770518516876:17426080253808733437 661128301296910:16054548138857012132:16055191362823241646 412988307861374:65010643442081373419:65010999787013996543 214680228172657:944579429441579547847:944579571279120433143 256127877609287:441569035788425556224:441569212201038509895 904527165650091:313393636362319651981:313394239069181310127 397923503537252:7888018825865214545702:7888019116551822376806 939133149048208:7409405274279690966940:7409405280877046398876 980977832077295:5287631009283723625625:5287631145760657942527 738695059192085:25888521840255084775588:25888522426870316923317 254108452657291:27223541761775911832527:27223541977315423427535 397455349332171:80621421118025124407414:80621421224954916632831 444390939135622:382698038175638841375336:382698038320812292816622 423346014319335:481100233540266858741672:481100233822844169879535 570114887177719:620446630580251863161176:620446630582468084162047 485558198049220:4472812053967135884420356:4472812054293192955116996 132499806441968:7525422962879643277922870:7525422962880201638630390 293536832188602:4570650325494135658683281:4570650325786983877376955 8618926131710320:967:8618926131710967 6760958562138796:809:6760958562139053 1774662848985585:141:1774662848985597 5267004432551894:6901:5267004432556023 2653069893256748:5926:2653069893261102 9793207449426256:6206:9793207449426302 7730668990967796:99902:7730668991000574 3808483247219578:48338:3808483247259642 7626980627450315:37159:7626980627487215 8736514566583758:194892:8736514566716878 7805252460449485:343881:7805252460724173 5978911871308824:941579:5978911871589915 5801375772039602:2790149:5801375774268343 3957976934753407:5234155:3957976939363839 5445999423120453:5936442:5445999428367743 1910540472058716:77114426:1910540481507198 9190548545773382:54120934:9190548581507046 5213255246901682:18437902:5213255246903230 9722435605774552:762625313:9722435829431801 1434221211093970:640673974:1434221247720438 9816275108776095:496231416:9816275529493503 9608328488643739:1758055202:9608329034461115 5532487559311436:7085578809:5532491925912189 1890935658339178:3298912412:1890935666736126 8449242738084002:21840130870:8449264577936310 5516996772082468:55105474087:5516997108170535 6059633420423851:25577591831:6059640475309759 1660996546226485:353013684783:1661340416310079 9027970872226280:136610181832:9028089153188840 3555591111808564:374916345342:3555682560245758 8038569993201461:2166820656453:8039602932905845 9334180642986391:1939655748458:9334732881918975 4089950040913147:3554605053285:4090165001647615 3379327098991565:89526208353209:3467305486447613 9493956347632135:10644627064996:9495107401095847 3308699454734065:19269251139046:3326843012710391 7597873852862159:427603180173200:7880199293960159 8665458845458924:683521766333396:8705627528150012 4390723974016478:494976257085839:4463466244996575 1349339735164700:1401994922689038:1402151730972446 8188852418833040:4180873789675689:8972014071052985 3807203676738742:5279672900395508:8945582311699958 1577406711381724:64454587716494971:64738968674959103 3136245680216458:21224221292193795:21224384521042315 5385933020964288:90948004519319800:95489262421523960 1911762176545045:843366602981765540:844143445817684405 3008926223713971:592570574266474764:593274339155568575 4362102532851714:678612620408808811:680043402870517099 4389468075552185:6933413049143130740:6935541772579766269 5393410566278451:7046660949424882309:7051491116905811895 2027005139998965:5308691544339650046:5309589882937531903 1525886811566468:49854074004808385425:49854122109270225813 9850104112106563:13768467879251594966:13777635641573166807 2015460857295090:17733214506165594354:17734939691586550002 4859780418614325:975959458356175414001:975964317582475507445 4861945418587319:714108044850033496271:714108049940123458815 5679295147012587:113726969695978045909:113731509617632997887 7922400784487562:1931510936130306932416:1931512102849725562570 9444623173830611:9104143398445029167416:9104152692361810335739 5089044690777817:2970156244513567731786:2970156244672616265435 7054487417203786:23471610665077710444526:23471615467747865526254 5647635965753106:65344871350118925922061:65344876997247171034911 3505417338119799:65553599730349443798774:65553603108085977216759 6024945719721132:967131257178237233685401:967131257570929938169789 1262139976637981:878624953366535947521962:878624954531606435454911 7121048626494932:936712444977368944842282:936712449762443914117118 1182117572177893:4882460867032029540263775:4882460867084944097865727 9472079073814139:4181950197972028666157137:4181950198396440157273723 8854988572049982:3094382673379667294258852:3094382681354494660560574 8638717059509475:533:8638717059510007 1109448708182223:696:1109448708182783 3491073387210976:827:3491073387211771 8039281712571488:8724:8039281712572020 1935001890978193:7466:1935001890979259 8085241559539868:4659:8085241559544511 3183016677018720:14646:3183016677031286 4203437535005527:70590:4203437535075327 5536792066765031:25568:5536792066782183 8607913684102381:394577:8607913684233725 7457795849599510:187743:7457795849781087 5091245823530506:998531:5091245824130699 9764075177391503:4039191:9764075181422495 7376136149278663:8661994:7376136149286895 8104814533465986:2637059:8104814533476227 2112637318687668:94875854:2112637335763966 4059279286862737:31236363:4059279287690139 3252306940474015:40779219:3252306941263839 4986819427142550:937789255:4986819819573207 9863748539692503:141628292:9863748541855703 7870031704500224:313402810:7870032016977338 5795895759371278:3523209660:5795899250834878 7780498925777445:4699838332:7780503354996605 8370898143064718:4583482206:8370898163135454 9003889573264554:57038888403:9003889577459195 2867165671366823:87178199475:2867235600982455 3749193043298775:29645252393:3749196809039871 2632513743387597:566296405891:2633072112533455 1046627431687933:138279397046:1046627466815231 7871975340072245:442296192934:7872400175357879 4707283127509453:5845358888599:4711956991600607 6180871307669892:4890297862281:6180882049644941 4335632183760350:1174361906407:4335638178209279 3358898229317649:37880608017459:3358973393624115 9642289694490802:77732619530203:9649032946249723 3091141261351761:67336211488170:3095666112290811 4585371324072009:123712008054284:4638701966550605 2787544511697052:993286160133440:3350641376132572 6075829053356644:906235978141968:6682830364998516 6786908711848203:3207006436493540:7737166150273519 1956295017212024:1890002863229660:1961528708016892 4600291979704389:2211861813083645:6720206310817277 4368799579497603:95945402449345826:99041773776010659 5205131986477203:89699754591991709:89789949493458847 1293266745256520:87693964698673271:87711591247604351 8108277997553854:289399770200699352:296375488864909822 1045004743029761:123886043258006916:124895721357819269 1109067674430660:366466176683601826:367029883365224422 8962600620104857:7297136341973741736:7304829762306423993 7902265376189309:5011795082900807280:5016300883843694461 9106881035738663:6128100383690550538:6137134144233144111 1890742388355799:17888800626494284897:17890549514628724471 6801756950802601:41808438599146652499:41810692633419314171 5571132238069781:37373044546543757758:37377619521213245887 1386675753644020:329965289537658432918:329966640994260545526 3401005536986877:360902969091974078370:360904118081759862783 2519330785522173:742382722269831544976:742385171158715265533 7937417658630555:2454402836094019785460:2454407392513299796991 4451755772395573:3249161932455477852178:3249162442732647610423 4212661974239173:5096554285922686201410:5096556774274409295815 2480841176282491:80083225586813446801717:80083227838922649140607 1556769816117815:47530563862000717456124:47530564287627754988287 9489678346838066:96319094776386413346950:96319094833904080609462 3533012043069615:227875861759374503032351:227875863036182750953151 8182563645481113:622258666842187529115284:622258666843005837833885 2604540867061946:539537935950241663240127:539537935951070055329727 5892613210735207:9231146945714744692849326:9231146951591652681956079 5643954535579204:9651113264022135541242214:9651113264023396402511718 5366650225298422:8560444017775193737354038:8560444018075018961837046 3663258554810159:509:3663258554810367 6978991496137826:256:6978991496138082 6364718065846544:981:6364718065847253 6578682220988408:5343:6578682220992511 2458134084111054:8384:2458134084119246 2703514366487423:6620:2703514366491647 1276031914026119:75771:1276031914027007 9818445836591187:79495:9818445836662487 5534617539319950:54343:5534617539370191 3437912614874859:459186:3437912615006203 3346533797744480:100709:3346533797842789 4499139633846151:693746:4499139633846263 4347846518393066:8481226:4347846526855658 5992863791007478:9910284:5992863799672574 8245317769512419:1308970:8245317769625067 9554245565405224:36335254:9554245601722046 6934126646117040:30173050:6934126651107322 8085983104581280:72621005:8085983109038061 1271640570489198:593417933:1271640620990447 1378220189249829:579471336:1378220222937069 2135023688717041:299847992:2135023710884857 1870289101689506:9659267579:1870298265467899 1892747561651238:2478781243:1892747858411327 8013579036167295:5016989316:8013584002821887 1391128936423785:17799425996:1391146198609901 4242377264759662:41454620747:4242379447980911 7329735740020818:29623325855:7329756688473311 5303968742865517:401513135789:5304041892314861 7946311264680495:405524285498:7946715713092159 9279428207399941:426550271386:9279841604328863 9701585873100562:1280378789042:9701723379457970 5837969343881520:2095343050870:5838406693134710 3915157756523760:5100290573348:3919706127021300 7944883531883628:61551719005946:7951665826873086 8941588915567001:53913614376031:8995499761696223 1684615070352055:92204114158088:1688849658585791 3065923653330918:634310907156824:3066503541817342 2705889950773395:658676727237579:3342507720670171 1981759129445722:890170832823186:2018700344944602 8207510964760635:1685330165219346:8440936000122939 9453235569516345:5747224416451163:15199356648521595 8191266536919773:3368357409034418:9007104211260159 6626239396638146:85856956818082551:87695911780610039 8935315843024408:44858412824894763:45034894478253883 9027069979421869:25186770673444040:34193980673486061 4048499306574841:644718286747134476:648095995360115709 9840349059709579:637757559756871861:647381176141216447 3949292332906982:542953399860117189:544645274562068455 9991404553414561:9509899440573267840:9510475585239826337 1403609420516611:1632187842910675458:1632271961062108931 6706313493748693:3321585023157695552:3323643313371643861 5373321576648000:90726898011607302903:90727186088636944375 1579866067753956:25732431697578148396:25733567085382458348 3624802256879794:88368648879064675996:88368754466710615742 2575903829978881:140306865564172378759:140309434044809736071 6110932354138760:618565086477594721203:618566512561626807227 9812454907384347:689575621648366351514:689585262304045020827 8908818061186329:1763136378592747937734:1763141168067856818143 4995358510847834:2915437220486591017815:2915437235882043897695 4849312292202900:5106741296565161069558:5106745820370471545846 1174444651960874:51742584529304429867433:51742585699210576395179 7358265074295936:11316155729249155452713:11316158583912433364905 9808948844141855:71966337064210993514227:71966346282552098922495 7256236750460102:102531019614233978614562:102531019619741282793446 1391803075864874:975905991788776524689953:975905991983966264965931 1921802458797217:458842370084463059575264:458842370721209145275873 5788639189295522:7177074451941682706045978:7177074453226118455426490 4381603037699941:6082312551888255521681089:6082312553577118879973349 6022089072534518:9046288553109995005426651:9046288553221109562833919 64481143908455108:946:64481143908455414 76419616360277960:100:76419616360277996 84609942590486217:411:84609942590486491 11302320207298560:4503:11302320207303063 22303273552333999:3471:22303273552334255 90872413906938523:5156:90872413906943679 93751062686595240:42312:93751062686596584 51448555666249904:63791:51448555666274751 94643755871569594:72796:94643755871575806 84261693087854657:565625:84261693087854969 63481694652905797:635264:63481694653495749 61963119809022894:422423:61963119809166271 47294872852460252:7050278:47294872859440894 67980215185116131:7083800:67980215187218427 47590972207773470:1093318:47590972207775710 72598232280656333:49020698:72598232289247199 63981948434080456:65970352:63981948493619960 18320879707780038:66198293:18320879724690391 64541033482341577:800951377:64541034046016729 35581668203979244:898159410:35581668204540926 52382522065052866:376540610:52382522103950786 77433749153568666:2614541948:77433749557411838 36478358271836680:5365790528:36478358759634760 44461522141236203:7913177058:44461526545858539 95889360814671389:94525950277:95889369440685917 51534403925370644:74918625083:51534477213564735 28662785972028909:61343334217:28662820337549293 67474051432047475:436521066549:67474210891490167 29298996973668429:516911416162:29299203267513199 26114687862825116:417954801087:26114963814737343 30139322343125545:9344659566961:30148608751661945 90891894654986098:6056831358443:90896293271926779 48582948422064907:9590466403575:48583020631285759 52525230353640858:77251713947902:52599999292243454 57633686222038336:67765440234311:57699801281488711 18006336884570255:69100250817162:18013280341064335 84389887567678908:919870544062311:84394938583740415 24004459910956299:852003969254985:24567410433443659 59676927853618442:446478163883570:60121131765200698 58038238442142697:9064097568402451:67048218726219771 61214385438469278:6712824886170684:63045377589755070 10813119893110207:2455626190545199:13224348973137343 41337444998562758:91817991858702373:132574713724521447 61946304066094135:80240260864947195:134285381746702335 73530508211373819:32849664661754194:105200841425147899 71975846051776692:424601563510114848:432343364472113844 63826582409075277:779706643722442765:788925981136968269 36280721396399666:405953957303986262:406166191284354678 10429663427544444:4033486089867490581:4034626837588997501 23318252665474011:2110368973542597089:2115530706089913339 18694217904659918:4415361243277936399:4415475879193337807 36951653761302406:84939579532982264922:84939938321733173214 66613149441847916:10444079652491745394:10447501625294584446 60641628429780658:19957010335041834451:19957696517287956467 80188782375764418:825979117787838195467:826059232606311589835 20317289158075522:994474827474522540431:994492890618781232527 89392975992221994:641826640629346696840:641834968742756319146 98976526233009037:6418193019017300645990:6418268878861279820783 27211047007045754:7291479936003440059252:7291507006035597683582 48747701118441531:1617941142491294302713:1617980565509171288571 92291971560653227:83126740282505363429961:83126741585461543689195 77282127629423881:18472125915534183823715:18472198119391194185067 66537102615589434:52607035421401626780621:52607082744382653019135 58454561765292236:679391519958001761732716:679391557543832344951020 90999233961424502:562799622041121227900733:562799640136068376819583 32209763496588444:579453068825546067423378:579453086884037097125022 75415360984818779:2584551761744740297897804:2584551834481029497747295 90143592889431613:5068000252904484659410134:5068000343047957278078719 52210825485283682:8636762656651873957335583:8636762693006470183318399 50572613715681648:321:50572613715681649 66226674957875021:902:66226674957875151 98725408410543130:650:98725408410543770 26063413725654297:6995:26063413725658971 72202901749221083:5267:72202901749225179 63996776408071098:1957:63996776408072127 31791864220658798:87633:31791864220745343 45663731766925921:36429:45663731766959725 46001241161155347:32813:46001241161188159 65554957777899605:106545:65554957778006133 77979638203061662:969565:77979638203080671 61952532026425292:663242:61952532026425294 98428733656073367:8303955:98428733660050903 73889718356355175:1248415:73889718357404927 19979326979351231:1204744:19979326979498687 11481428515223168:80171001:11481428528201721 60591761075206104:73974802:60591761147033562 59805857933762626:52309870:59805857969287022 61194908410378539:529365525:61194908779543359 87731848729130509:229025713:87731848746039229 98949977953061540:383693250:98949978231077862 34327250319055003:2447685357:34327250596183807 18865086441561259:6051775009:18865091822214827 98965138381668218:6366795831:98965143232184191 21011557898422934:95115092867:21011627176340375 57053261873788335:21590269434:57053279064161791 24201737185600889:25400583541:24201762420237693 60355780584780059:532006980589:60356024358927359 12311330989347997:225219406341:12311470039596701 85533941430798116:928514685080:85534285242171324 25557377674513332:3158155579541:25560209132870581 52200853493951611:7689101050268:52203705385856511 62903054728671761:2570802044292:62905253879594901 57765374779743762:95446266158673:57842901368594003 96751381555577988:25433094222649:96757023171934141 22315662460209221:16354527499342:22324483517799503 40257919615463380:614596474335143:40302589968609271 28304448293572490:433907994434383:28585927863410639 64689836971187900:298475826024459:64703469474275007 47358642669664460:2087073106762415:49375149446576879 35983397828537888:2593558160823767:36018867019055095 93107818032657614:2369001634973238:93145785749599998 99587200427337416:65461703852003455:137886557750015743 57838101649262669:37523334698220072:57842516878801517 53698062730466227:35766212169494091:72012783360671739 24592941639008982:964705236241138669:970349177206522879 38052457291447434:330026885681621149:330871319345233055 62993658929480918:316806528129054980:360232994603548118 50117734716586100:8680479280009169118:8716521339931851006 63793519836727538:9074387632883080316:9074388208555891966 80894703169093604:9071530431616948182:9079236910999584758 30662752975337918:55912970207741259241:55916393625283378687 69938536796420391:91053370311176290966:91080515168195541943 54561133670513057:35756162006524618249:35810363571670351785 23681622194245251:916318866821447973451:916320028237615333067 56799922415461389:709746111171629342053:709766738044461776237 73475762650083688:108712661758056048537:108786135596223428601 64973219631791957:4483512216839264413932:4483567614907997290493 22413263891585864:4527576123761974207782:4527594701731202596718 52904745838057941:3467804207567442265969:3467842633325587980277 95717373699179003:36432343534987350214188:36432415597261728106495 20949317790976405:71899581555659356892395:71899601832075945569791 69501096612988000:27899218908002500563237:27899256707567308461413 56647958820534449:685542429119145170479296:685542465149042249677041 47833993212712425:366498327241526710734112:366498374951536487947753 39972351389447881:778483394497655099811030:778483431091755800327903 13135940348481798:5900069646333357993668223:5900069656615996378038143 50023365664630648:7148282315339076656018654:7148282355895646458345470 32324282337311874:8069695720339904724607797:8069695725571391016648631 89577081923907803:911:89577081923908575 43176489113856436:473:43176489113856509 21407756829733193:682:21407756829733867 83861173938584544:9965:83861173938585581 80195182243221254:2185:80195182243221391 36598389138501413:1056:36598389138501413 70506617051937941:20622:70506617051937951 25678507247857184:63107:25678507247861411 13685168325221313:61654:13685168325262295 61716946063502059:797785:61716946063503099 80938189193054068:813285:80938189193080821 78112688910085740:443670:78112688910102398 13589563149865736:6563076:13589563154331404 55356176398211290:2813069:55356176400841951 10557188476974873:3639504:10557188477009881 32014918610012210:38929586:32014918611061938 38900770504529384:33886376:38900770504791528 38720212853338826:20020557:38720212873347023 94074651426733336:476870339:94074651833860059 46994607626649018:231188435:46994607627042811 93927905221460846:872739630:93927905557279598 47147430054330404:8907168717:47147430096837613 99185625253630328:7200707082:99185629634712442 34921694821746647:1040771765:34921695090241527 38033271768578757:82948285860:38033341831413733 14375128295675779:71161022824:14375130443489259 11623638156094161:16483060738:11623641649229523 55583094619794251:844097811114:55583369634151403 69963999007891313:144760922687:69964003638411135 11256774848165214:889442938637:11256796671786847 73375291003348611:5061566929935:73375884856245903 85622453307229904:1314247855588:85622526678323188 29164471202431873:5180415420736:29164540471503809 33384828417047273:20832962811136:33385517915537385 86977072667912219:78092931355379:87054039019158267 70689003147669232:75098988389681:70763809675325425 33720809346162269:741905226971105:33758202422099965 25961649085971482:693151756996761:26599368115977371 92286892856001934:377470639560953:92288052788682239 57120420781290709:4241363742526833:58546792861466101 44395468567521331:3325299591530500:45028813578364983 28920247309057811:2158258989745678:29201860064640799 84531487785472368:53952843676591693:126098538835736445 13868646085434258:16362851416213744:16719165146340338 63652967559198188:14096382756950286:68174797554316782 64829554546396716:646033753336881418:646124052358885166 17455763885715974:536261318270563449:540203256865683071 30970196211571373:616669691561211753:643698068974338029 72977811745801872:8512344357052339141:8584965898551416789 78384673902144788:5497513459943125579:5575315048753512287 12254730994801826:4178370302919547596:4179214834724757230 68517176507221655:62624465149208648748:62687836611127402175 36010671512971473:25163866042101300222:25184111352136301567 30144325786427225:67818441250079044389:67836482036940341117 21042708923185785:896011185173182885789:896031664792829394941 72992602259443955:315351314951842551600:315424234848611981299 34562157729320736:257692598101316239205:257713649424660758373 56969370935884214:8799278172450963813628:8799298438727831911934 64947207901762973:7906988821490942630785:7907017150545605648285 82261638738853836:5800178737025278857280:5800178737052293005260 82884915033729717:89115755090718744668291:89115765334198973819575 24831217498933662:97188064783404574842526:97188067056972529098654 25086435828635959:28090522622315648608550:28090527135776523647287 77984076864230859:232160581988390682759287:232160587617933269472767 90660811770346146:714149907841012575543218:714149979918952008957874 79639251523696446:908387147871439463038062:908387222757287185612670 93921166739888460:2679064212148612632121578:2679064303641505452513774 52861899015113433:8094358669210250911842508:8094358719529957438966493 71737736966985309:2037436663671244224209613:2037436685706655555942109 576758784089591537:251:576758784089591547 461878849990172606:845:461878849990172671 317846312239899577:578:317846312239899643 818545215996156376:5257:818545215996157401 609836056622927425:4621:609836056622931533 734140200883178138:5926:734140200883183550 674744862247731309:95217:674744862247744509 326561796845575959:19674:326561796845592543 517696446932567551:58757:517696446932575743 317765520939114503:283672:317765520939381791 618330969591439185:165309:618330969591439357 282902655492628318:322941:282902655492685695 429802981699153579:7939951:429802981706035183 884183932970051173:4766644:884183932970057717 812474061672597351:6813182:812474061676869631 134379477849226286:80846910:134379477925870654 871300787800948532:32657021:871300787810533245 276861588086205628:52471620:276861588121890812 374659788302300430:858149412:374659788604700462 371179146294034079:880520113:371179147168055231 183768948449747389:934302041:183768949299114493 742054864884719809:5058258355:742054865626195443 672820876826543390:7845873480:672820876876875614 883542429272593793:7298977147:883542434423758331 133774970992566486:42008745299:133775010823910871 558970373318863587:35356199735:558970408521952247 234540417893278666:11737858483:234540428792275963 494926963426355549:193601226971:494927015016294879 672031633542412790:139146429703:672031634158976503 899934186784960232:757088652719:899934874013282287 120068727746065097:5019772654435:120073129013801963 211264349792565566:2239602205668:211264355977133054 187477372355721445:7001780534149:187479924505820133 797331097280103521:47567365107008:797343205365837153 792643069835923942:41028327735483:792684097590710783 743682210288619285:17987481836232:743682588404080605 841377239634425613:801205832305506:842169510860881775 218940820318627979:741642132913659:219541157996002811 955937360822111429:318233652709803:956218872448667119 462040167410299463:4780708355061595:466684514810722143 939102090425261786:9594621834870455:948674446443413247 793531014627830653:3782884271388528:796979645734846333 685565116518047860:61314751148370169:710405423361272061 980394759081251889:58226525950168995:999763897671212979 916794446664866716:67193958906850645:936673671155810269 611333710076567254:689567722366038520:719440100650909694 303003486149105651:980738635339167644:989803009284208639 377141246076886886:475417781591326153:557285231257698287 719992445628867804:9642077638459130481:10232160583960782589 326394663861171160:3843024932026583543:3879779574962142207 254745208892234963:6112449224642799151:6330875183912664831 917722105331781757:22419553501234316129:23039966425015899005 818961603106477569:70497605931762121812:71147250349974158933 942867006910685617:72167292842984274528:72460031784153447409 798122154305652093:631192320680432195682:631773962926382865791 925164095779752842:167411490336823372737:168317488492611234763 194273539208492220:898142399252337352794:898322598492946035966 955890099789589633:6881670291381627447491:6881742349676315536579 327082145332152174:2513262014042870380674:2513264831034625097710 252238949771328325:4321946369254081386149:4321982400048279027685 734598105321642207:66722526431460179105892:66722679977178814208255 477500839253625639:61040274098488064252196:61040274169029238446887 147752865992773406:85539777009497527746390:85539777044691093815134 931046609541811962:374631053540701862262306:374631390067216845274874 251805974433765637:381739118009059904140485:381739191350892420611525 280785676873779484:620193638665029028963394:620193656688231148973406 157576898765960715:9279552308151364144414755:9279552456069841357501995 895939418204278570:6994641132393280834769701:6994641997651758900715311 214776549173682155:3526126114516091361908020:3526126185175244217376767 982976767464516421:328:982976767464516429 366182916067453735:179:366182916067453879 473014865568219113:436:473014865568219133 483104549071663471:8077:483104549071667183 360490313195193988:6433:360490313195200421 135774482379246493:4492:135774482379250589 956955933275635072:32338:956955933275652050 821945926928580449:13637:821945926928580453 206239663956607305:14134:206239663956621183 517732061810111436:277244:517732061810113532 721553936687603055:541816:721553936687619455 733005040165752326:632985:733005040166350495 393060245245069044:7990662:393060245250371574 141924584732281278:4644648:141924584732417982 789351174885986853:8470800:789351174894375733 165214973339214911:70484317:165214973339346303 531356077951588344:11856370:531356077954760698 537054577718372529:20194434:537054577719422131 662904531813275594:635663350:662904532438317054 768645212339722625:577434462:768645212879387615 433863442371500725:217791910:433863442445631415 250555668350086741:4986391846:250555668903751543 524963253882139351:2635394201:524963256366268127 208391793072989375:6018955614:208391793723178495 458280631593627130:79706669467:458280702500630011 974484355095586555:80952760179:974484356589287419 764023473595411681:40206803309:764023474669219309 943945734002638033:484652210195:943946077692624083 105920154208334529:571564716937:105920171686589385 313901231229965395:829330505058:313901506140519795 299055581899090994:9871792837890:299064963726966066 796285870521595547:3994431410039:796288207027863551 883061353370240656:3510867891453:883061491615061757 726293958713736858:20335587002524:726296699377876638 520785042089140734:63182351570329:520794122749965823 756535567119769896:56382458320160:756590820001281320 860182755462122805:270571070626226:860187244248276407 207202242904538314:686064586873650:207851677577871354 600092272180484141:585110479054417:600092280837537405 967014795497420748:3359789260499531:967130384430006223 936639991596769712:4424662222807174:936675317166039478 717351971506375551:3426262268885801:719643536700603263 794907330530580912:84669665097300317:805263203576658429 668199926650583219:93558903938334227:670455097208323763 175600430379758457:33960483889025936:180143888386487289 564078119964844021:825243658809835051:1150628747961171967 995080357082915030:588936545932069901:1004160858695658719 137531275054967129:767143299517327096:859620144248090617 841455909463727029:2671721932096560039:3440750051385498551 396690096159397794:5405651252601671672:5730262829601120250 521742826422857324:8574270562376056181:8646348300230590333 170028756817567425:37101094222494336128:37108975800505786049 465983923627887432:31076261142810548314:31090476869348186970 960054497425393905:25564924996554094336:26506744847398797297 387702449106964481:417535815486858519315:417896178234651833107 189870953322188333:855202030530145700936:855391194908666580589 482108431009934695:519083420896259647149:519371662267688153071 930518023930061608:8556030970871404371551:8556905118899660603263 237650857883261709:1273101409189687861464:1273103665388422626269 416486592352828480:6529985466879159394788:6529987446103645060580 333092977921670919:10212013670163616683571:10212344473682340937527 419191592845781150:16570764549448807225227:16570787072394753163167 541231626570578617:73928590734663447330065:73928770968021620211641 488322456992137731:906512003041506972164274:906512203113243881562803 142774161650819856:486638717165719616811029:486638798270181563822869 581040945157223539:231683117477962893746868:231683698514368270431991 260485445843899522:5363713785542682618860765:5363713936534225074246879 214808432142665965:9247754851570354644033269:9247754885383637948161789 776803907354388818:6470538403616016520199705:6470538980147174305595227 596801541568652747:588:596801541568653263 604199468534112121:279:604199468534112127 552622960957865501:734:552622960957865695 906785029045178667:8147:906785029045182459 957807954601833400:9058:957807954601833466 204799298595452521:9712:204799298595452921 283430844410442338:39445:283430844410477175 345080161012044245:15921:345080161012056053 293609539834645418:84208:293609539834727418 788714488895824369:510079:788714488895891967 830082135900166794:662049:830082135900166827 580509500744234459:258513:580509500744398299 929404357932671663:9946498:929404357942175663 790034202903217476:3150513:790034202903222261 370003638299869616:4522252:370003638299869628 447439118811549386:90856251:447439118812209147 275535384330322916:86897495:275535384416351223 749434769478723415:61627419:749434769523048287 934172508843719611:155821879:934172508999499711 867449581048310808:320904684:867449581333560828 888416422400543975:151683742:888416422534762239 383507041388356414:4968135587:383507041926249407 144036783584819243:9316698398:144036792767199551 487184889195671015:3031174459:487184891889200639 655376323054629662:91201965469:655376409423773599 672547577955532471:99199078972:672547586682388159 723593715152353833:59531407395:723593756155935275 606922072557752748:446270429845:606922103206075325 478084393998623421:215849349688:478084403679965885 740404253015255656:608454914873:740404257856797561 112925560496506753:9565454399045:112934910648842181 812195375949958542:4719005041618:812195421450325982 996792711659016150:2729608015273:996795232944320511 229194366752318472:29865902618452:229220892739041116 945173452418581997:87491857217405:945175103851460605 765182875125665534:27779480237016:765182886568525822 137745878807870149:434148347994633:137887552599227085 337917016488971859:111919199683536:338022853207560147 516556680912670282:347786175609661:516574613597585279 573940239487206084:3616067988798887:576421012849344487 874733400911613740:3344525864461804:877056188415995884 282897434566675617:4574415828997794:287471712855908003 137032531022497251:41763752862858756:141546718039965671 190412533939910191:23852082288951318:213075973254264383 111706589318273282:99235610322723424:138730669575175010 300348229410991777:871877578456436908:881453319987904173 953915345636189977:252984006691878539:1134625631103448987 119638037830607304:812430353958797577:860010762988790217 403364713399062699:8254503139521657388:8619303509073656495 486952481167750206:7873295374413942152:8053439986780863934 585720182915384628:6559070166769523445:6568218545899626485 778031797926614081:47043267064263175485:47188540898288860541 802239903747138301:43024043318035837595:43754225146640986879 348938073992117795:34540629749905895600:34578637754232389299 868101058727515288:198179539278163723284:198180688268923622556 723371874293987895:676823108247520508493:677544044836350294655 627219439225911011:173988625480929665555:173998776999360853747 181426404852296884:7155108070535465531898:7155289496654635335166 923536350993354448:7654445477838062110372:7655314681778883448564 583575543152679232:8472181820940360441287:8472765389233607794119 261429534241262734:20851807049177545787733:20852023442139852525023 570063809959847298:34230447073181309355168:34230809685533211911586 557790508484410173:26621451563216073964725:26621533931480741101501 510097986041047179:297311432746137829409544:297311938275514005777291 241281497918818215:967357407708168900741284:967357626431956341215143 771869769465492050:627381949825788134225952:627382680536416813513330 233876759780363796:9792546085004478596671561:9792546306953132757741149 375196280940023448:6091003816269671008317976:6091004176645619611238040 165083147124235775:2204370665014536223836079:2204370811452014804852735 8790606455287895069:943:8790606455287895999 9725395259001185745:629:9725395259001186293 4848379468642649716:367:4848379468642649983 9287172483105784538:4023:9287172483105787903 2227493186959909749:5682:2227493186959914871 4661279519947557467:3922:4661279519947558747 3612299607116677585:29701:3612299607116707285 8124816254526335514:66250:8124816254526401242 8100426174544646870:29283:8100426174544671479 2318609172492541262:607485:2318609172493065727 8033734934632579491:873746:8033734934632846771 5721149069105724437:323471:5721149069106020255 6529907433836030921:5038864:6529907433836309465 1343889174177053886:6824269:1343889174179675647 3076784842674977124:6752394:3076784842675304942 1552259807636809223:74407565:1552259807706087055 3568124134330698463:24400036:3568124134333864703 3115664428587349529:63058340:3115664428629424061 3982610007682387560:505223966:3982610008152940414 6379157560533505265:225170181:6379157560602908661 9731266004738807451:150212477:9731266004884824063 5335882835589521390:3017405383:5335882838300164079 9378113523867068340:4597064607:9378113528464123839 5411212800159009418:6884215703:5411212802479541151 1982994749639026526:49090490647:1982994784066205535 9681770555940253149:79434004217:9681770625733476349 2616997613882098137:48915216704:2616997652578892249 9541560179737291412:215001666324:9541560248508742548 4932742675073862029:635434671054:4932743241788005327 6857993494711512980:363544223846:6857993770139168758 8477605160924891239:1446691653521:8477606262936883191 6839135641357383394:1477631532992:6839136019316735970 7995269793312772622:2643580056480:7995270220664533934 1453513860329216670:47082578562570:1453514754829049502 9693027032800952435:14882371746783:9693028132616879103 5724682069719369049:36825778013975:5724683702515779423 8111459682362417275:934281559893159:8112093143337231615 9774501774283866152:342847287971923:9774842899280679035 7396642285051805327:794066648874756:7396870996431339407 7381717043251542185:8780341438094155:7385676541591354347 1692972523213959932:4444725113647246:1693335861089792766 7558512641646531310:7765765653669918:7565977003085937406 2842533763267528074:46938394262444411:2879761131178532347 3852604955352936584:15920201044124427:3855010774845813643 4726028488283198843:36859456931791583:4726241935356827647 4097622662518513607:832366261370089994:4313796149023342543 4708840727681657885:191044662435767268:4899841335697076221 4789738049983160638:902448487184621148:5692186537165029246 8392823844318804788:5613879379562090831:9077512877303987071 8532483131252216105:8733593624336379787:9186214264722931627 8806237470326405295:2279159289366959555:9202889640476933615 3103714654922148959:46107911315245138518:46113127401671069279 1573501142703001555:35709290982309574681:36881933327612772315 6964159431185599232:19881748633489031748:26800828043711073092 6495080139188065418:426835834867195400888:433186517999155140282 5329355700977064071:923454283730553973772:928098907295197756559 8962524352014247163:248066779471844763045:248958844454714271231 4976111974204347912:9261630095063853103255:9266602089118976769695 4694402892465384107:9289729228185133680263:9294413471040392900271 8453332078434540522:9758108513810959140938:9758180646292424350698 4332746046017239418:46042318405816884689884:46042904155862666705918 3273682160647783424:28912592222520534656784:28915271323410045986576 5010835826644017623:15852339516519535996362:15852666027492527304159 9902535023224186564:475817192832767696610143:475826516491402979108831 3463462027933495273:624769014283472475711705:624772477710229868900345 9558876936486879801:701443082360993769192180:701452352564965473385213 3820462373866128191:9825917285200902032921111:9825921033323927710946111 1033120957847789827:8097718813991661356036253:8097719395626756459196831 9920430434684641801:5014826575649320037136127:5014835844163771181971199 1757409620759624820:553:1757409620759625341 6687461032857610447:645:6687461032857610959 8464447124346284069:974:8464447124346285039 6587160244320529895:7600:6587160244320534007 5766371097664478943:8993:5766371097664487423 2087546234361847914:1383:2087546234361849199 4909636437328088035:74808:4909636437328097275 3697247178626552631:98306:3697247178626552631 4440081397752926422:58829:4440081397752985055 4195286300767099592:923133:4195286300767494141 5534669199579594185:504769:5534669199579791305 4014633289071579044:703243:4014633289072246703 5248468796570777467:2364303:5248468796573136895 3038308523395251664:3516253:3038308523398660061 8925671900426716732:6715873:8925671900433022973 3797087289694740700:27148577:3797087289704702461 5056889218420208605:62622288:5056889218479684573 7386636472559976325:87073525:7386636472561025013 6240078008303783990:110395445:6240078008304832567 9103881502773563459:831144414:9103881503604691423 5873557809591611311:877553554:5873557810195722175 7089347519166203097:6282154674:7089347519271065339 6455925541346012184:9363854788:6455925541381733852 3419964713482774588:4858150471:3419964714020765311 8809007056467338743:49542150831:8809007060767555583 5237377887688947999:89744736265:5237377905960384799 2985422638892117419:88646072341:2985422656611286463 3563140296408555019:749404787881:3563140873410567851 5880312171074604578:643176936471:5880312258048818743 2895932035085462473:725181629630:2895932208092147711 4065572737816411165:9494563081889:4065581682622693053 2666616112951544573:4718358702196:2666620794466953981 5463355769164506830:9220746297152:5463356055875469262 6674273469587217405:40585815581910:6674313739319115775 1079161467921439955:55499664713541:1079161845899591639 4013557900045312304:53615519397010:4013610961150539186 5975255700638019211:309334713542848:5975537244755177163 4962815123543690997:669867638301411:4962816430054747895 4956527961841369834:170885013903624:4956668700403801066 2722236722699177358:2863651980933341:2724537011285753311 2549473407613768326:9129457692754287:2549582471911953391 7067176122991503850:4413112474966446:7070563178516576750 5343709885469741963:24819716824622002:5366232429909242811 7001242467565016550:97356635170440145:7023902371526711287 1066969109244066288:28665538605379644:1076351411767147004 8025736782778410264:954808393315915619:8025745750672226171 2123944566113664958:257966818840004093:2305279460009312255 1673850166735705630:498734790285909558:1728254156900064830 6800001699245104490:4642430813412457456:6809301617772265466 6048901306597195482:2820321560994618338:8643476087558356986 2304917167965134354:5249752219540098511:6917245318438576095 6709983984752789363:71224031118757246266:71300627505703335803 7386229822180792516:96022488402750839369:100778571649563728589 8769824060046183559:52470492840443532025:54888939584264756991 1272160899782217870:936638634975505348710:937901643986629294318 1085688606724255214:523530794318504868914:524539640252089761278 8949349868866771552:449340585464327139369:451943677087017040489 1693162727600344533:9365217463002045171269:9365757701454088228821 4965171576575643736:9848426325196935759375:9848759895232250631775 3645043105564266908:8383836609723477096956:8384018102139863529980 5955928010342335091:74369195531827759073347:74374961688219146635891 2521704014566960709:42374102678966097157839:42376422243949153402575 3205090917665073516:68757765758797890792148:68760094119947315047420 6658100050233723296:746933526250964120275736:746933815609611893181368 1413903058426913679:152032218346253439602814:152033443889694279463935 5453366405871538880:701848098121126098315579:701848747797568830684155 7498568995158949038:1500259226277603215725040:1500264414429326580973054 9496208011269303489:5354719559774630620297070:5354719706502374294945775 4289692355926901681:3625451764141117668209344:3625453601614508589020145 6994513683004451543:458:6994513683004451807 1418995968434414451:567:1418995968434414455 5041331055859623282:461:5041331055859623423 5325620961400764698:7553:5325620961400765851 5408087772440055537:8775:5408087772440063735 2119508264742641460:7288:2119508264742641532 7755888356599986179:36084:7755888356599987447 7911207557933701675:54136:7911207557933751163 8776774576384530511:24009:8776774576384531919 4050716571637599680:721754:4050716571637600218 3970551010784010421:238756:3970551010784175285 3327671154361174758:645027:3327671154361753575 3207034816627826564:4271870:3207034816627834878 6451347206041506872:8406199:6451347206041523391 7001522597740057251:8435135:7001522597748455359 5103999457787715462:21983732:5103999457792327670 3805412075719284563:57365036:3805412075757098879 9045034664890116196:18989046:9045034664892284918 4156894718499604688:133555168:4156894718619151344 9878931426898009502:126536506:9878931426948865982 2303801291451640054:418658465:2303801291735808247 7842861843520420372:4495591598:7842861843562363582 7130583602948093127:5280079389:7130583603351109343 4918952283629503356:3462463569:4918952285812638589 7229605105245308145:32826998714:7229605129412902907 9823658552887623764:54517321795:9823658587522355287 8878658909603804336:97064317000:8878658918347961592 1182480289162261563:240900230657:1182480495362965051 9448774984629815579:340527084156:9448775010408725375 3144544340739567494:671817418167:3144544976952586167 7359750074211946440:5970230213812:7359750400703987708 7229414883706050213:6548649774305:7229420880029916901 1675421579279298558:2718290342981:1675422061490601983 6924230971793538623:23962295697034:6924249156686970559 8689761025188253194:62990619118408:8689761308724907850 8976505592723223545:45615257572842:8976515728865458171 2470043373679438000:143599265083856:2470184670654855664 3015278784495648959:569415570615826:3015843801474461375 6782487799141681391:557305278814034:6782982889252249599 1981170730996559322:3762716462688159:1981546916478414815 9875593192983378499:6281024244811558:9880747705254952807 2329059161246499454:8577837062012026:2332437995928927870 1871436152868998573:69861106478511712:1871455988642807789 7096881952312134517:24985082132784247:7097096649154457463 4913083996806242660:83880667505236726:4985141593027574774 5773974487837096877:861962040276889185:6626853324571525101 7776612668946353811:677662217669837157:7777609042599055351 5787604804041609926:921479338920143439:6690646966793075407 9565483558685652594:2273901395164012798:11511180710141245182 2761591939313585750:3448882746893991195:3449728443759918943 2792070196590965228:4272773415337195099:4611683600359225343 2031803439489188649:76232855921234488071:78251146334630292271 7573928073409616292:72971840774566871646:73623720758819478526 6350631649774021765:27352212111608346222:27361615137735671535 3632241306034687799:628640739225691994817:631111051689619619831 5624789777096317112:224643376889794064441:229399816363468388537 1188866490492055702:599782902030263214987:600960329734322254751 8462133283544347385:2782112886262013306643:2784737649357727971323 9056245377120929570:2205618704777052839931:2213447087998602010619 9158881793178231269:6574190240055967254754:6576210210248252647911 9897430986148467705:78947185141950792757573:78947262319979108955133 4332746754422327816:46012805766562380266195:46015400121502364990171 3285662899150048271:62603387578436209966832:62603466396240111337215 5643504853705369921:664323709162446761184003:664328321200863161838403 4918996013869117680:881604518619809603491443:881604807773844276229875 4402442544205920936:141841625981357425140542:141841625987993502219198 1171267799027237818:2668596360454105437425061:2668597531676261836902335 7149179338749884656:1752718397031372035294752:1752725402037557695332080 2477948751354901242:7557484958970549428045588:7557487436056998049347582 60869120510293256359:451:60869120510293256679 18503026944941372965:973:18503026944941373421 63731996983206955350:281:63731996983206955359 25329028027094197308:4650:25329028027094201918 98973705635001637598:2433:98973705635001637855 52984822808601223795:5281:52984822808601229043 56794689681897082764:91640:56794689681897156604 90822465375084329169:14495:90822465375084329183 39167324275764640022:89984:39167324275764723606 47492279252003395761:860403:47492279252004190451 48629123613903969424:936432:48629123613903969776 26563219965321382001:661252:26563219965321387893 52783232726392671575:8112395:52783232726393933151 72256163221197355201:7106047:72256163221203647999 69032197096835877500:9826261:69032197096836952061 80919198121201231369:77511506:80919198121269919579 46410372448102949217:61607546:46410372448122613627 57046266629665008806:58405215:57046266629666586111 13383341839767983662:156975841:13383341839784826607 35755767869961144034:983343920:35755767870942652402 24860377963835481031:244976064:24860377963877555143 48024414046957113833:5148995237:48024414047238619117 73329278884427845945:9275056984:73329278893688877945 96184640036748529716:6806103771:96184640038904985343 46176926741824685317:66382477660:46176926777057115485 38095266970307683371:66034790770:38095267000425051515 54131764861956132246:45068935651:54131764896617950711 24633515164931552009:614803953874:24633515199845628891 67509681162662696430:982402717507:67509681849916184559 91328075868170586176:413882116065:91328076144411668449 31487675845260260428:8758316611053:31487682051489641965 68494640721305636417:7919120456497:68494648563916971889 32112694862267726053:4478388053874:32112694864415211511 48211002652912261290:29232349582466:48211029608388107434 12745337863294335219:17764334204036:12745355627614633207 12207908085723981760:22997482913403:12207912769399226363 20962801022437141161:801254452400204:20962810402645719789 36843651169555920883:673882044874501:36843655997672112119 77393665479537166373:714599443565937:77394229840937061749 66806116861245549827:4614487535211739:66806227405283229147 51303311425404136116:3376639403670979:51303880977259167735 95977751711651500262:3219540778763496:95980566480751547630 29002578147582991840:47538912684941524:29038646810530872820 73449069854314689133:83379710476100950:73458138652126705535 20607505848846172784:68384971887156332:20608177122237734524 40485560452207400690:294973085751625840:40775589926414507762 81972036328797968495:210503436795725086:82145657197592272255 69401787102265035229:457837778074890110:69715367818508857343 97235569335506980309:3031413615199959037:100266945558096576509 19757237417337044015:4613286928810429972:24368976230786989631 40626018185656609647:7590502060228363595:45819338296374816623 95311895985542764794:89763929667019771270:110662426384649788926 88923721205098116438:47901980504965638227:126449402360662850903 87708235450561385343:21648798887695389594:109347398900948718591 86935623632375029594:231912259413113349812:234510871584726368254 32271395371145618155:210461429873418412049:221360708432432456443 84935094803577633226:684157930741724924480:693968462399661865930 58999855503922133019:4167592960049204273561:4205783788012530825627 56214808765478784668:6153327602170712064848:6191094817822501818332 31426259641549408663:2663780557937378537632:2692603596114128501175 71153209025143938567:51379960641189437627024:51426888715045099265687 40657170888636308787:83182818178333550308309:83222305739879228112887 50634223024475858549:10024570250830775475073:10034955592329171304437 24733935843168337103:258174211815371957675913:258180048484339220594639 97657862417003382598:858100419103985465173320:858105627024649279711054 72666168504133377597:862889715953052109371094:862938143747259915697919 57446154313852092680:9116509852408456839350868:9116528314964385291291484 23412145708708879979:1744000082830990966400157:1744018595057760323731199 79989635161603340215:7820256974351125314815816:7820331054136438944069631 52901608735404357149:835:52901608735404357471 17286625050259351333:615:17286625050259351399 63317577835375838762:249:63317577835375838971 25002348564668788619:8165:25002348564668792815 72130757435503907743:7893:72130757435503910879 28840432567323711042:3158:28840432567323713110 74283561575249938520:28018:74283561575249964410 75007910186633389348:90092:75007910186633396204 52443972926940134794:12228:52443972926940135374 97243050207602874159:901263:97243050207603447727 19835868042801031570:859084:19835868042801036254 84885210123655260500:960972:84885210123655424476 19893220962508477790:6319256:19893220962512698846 59873038648677537870:4390209:59873038648681889103 22049988869102945984:7100396:22049988869107931116 33833019811034386550:29897071:33833019811043307903 65341711825076853543:56013535:65341711825115790335 21447045510132672173:33300228:21447045510147620781 96130474607469098083:915438952:96130474608074128747 95913463650170939302:134669984:95913463650170955686 31783711039088349404:550542722:31783711039093595614 99402510590307805971:6469734084:99402510590318309335 47762600453359576392:1476554478:47762600454836121582 30344814270034104584:7870645909:30344814277837641629 17206646036302930862:30674232640:17206646036911335406 94068624605574333812:18391650988:94068624606650849276 12617892716691355788:62772848141:12617892768592559757 23563156687897264388:895582472028:23563157583465056092 97145031846756498456:547981231754:97145032100429053594 82411079713650745598:865848219002:82411080263541978622 20707172346484187464:3514166845409:20707172561501028329 70113011969438855525:9815495765876:70113020782713995125 15533186493916602777:9855017962712:15533195455366917593 39623994021549601785:37949254066211:39623996235928499195 68447734842847794899:50145635902306:68447745337076135923 39477942957840466565:39383234690184:39477978144871792269 10441028175557109843:676399584937602:10441595661131296467 17515582393144035705:658570196848982:17515589631279618431 60539338350902900659:123624302643564:60539355964563783679 14110349191092616586:2735769874155672:14113084960840351130 29226483943209387766:2196594778696762:29228323986712030974 73782784757815078907:3840428356120120:73786342812931846139 62589151779110466885:80127987836119653:62662522260916272997 88937649243791784133:17526326170770442:88954612618731945167 34848564514008044075:19622513654831708:34866867054529452671 77196745191308364550:917547165235340644:77244596216798900070 14971358053439430776:300465953257137637:14983470411146978813 34002676774092506955:512118905342975230:34010040341364727807 77411008072860221283:8214943906473987932:82022784543299141503 76097411651130569320:6617531068519399825:82710421313087861753 96713158405363969286:1530247054888290778:96790993480628170206 68998080152202754902:31822963677651757175:69007510148172741495 66786833833789842271:92729923634148695247:140582958308414816223 50273986041962473057:50202979547159140542:50275336277884649215 85162602155229149283:748956657758570436157:823032505861587041919 62262605527273518651:144744538196887069464:147050400173615871803 28028729426083477797:518595553972973452633:546268493938904006013 10122832889649401730:8117530062622350157604:8126763427570636140454 94578926662580136562:9277908251297282139949:9296357335822701129599 87931097422140624089:3810789438788723435017:3815403380014768418521 57536400024569703327:57553143623941600078368:57553731979906796284863 35142536626581636540:17413196039494600622275:17413704977057694320127 45305761257793560334:70464421538870659259238:70465913392265363627886 88380505801236615025:787123831065128455442338:787138388424275577999347 52728623509403985236:302567507611771806563489:302581937340914314247669 66013714074690733784:462321660845917966315093:462341555357637759954653 36542040619056060222:6798682366489280318270228:6798695057140815222275902 65034953705071121192:9519597126109283155380160:9519624940341475183368168 37522678253473463347:1595069276620438001394369:1595106749472053019016947 13359344677446796261:569:13359344677446796285 94302773171934234886:500:94302773171934235126 14174901275868115695:498:14174901275868115967 67342600527840331913:6615:67342600527840336351 89250330986849581376:2856:89250330986849581928 26800232093219542296:2871:26800232093219544895 72162946380284645912:65771:72162946380284646139 80353917492124332340:80190:80353917492124399934 82944159208682349004:13928:82944159208682354668 20162757848568082101:928005:20162757848568082357 86721048048059214976:403720:86721048048059215240 97156578625405215877:461298:97156578625405283831 85464989405152233533:6143708:85464989405156474621 22333224304352335691:3048955:22333224304354695163 67522730148248987180:4401571:67522730148249186223 19611986037809215786:50874063:19611986037809217519 15169121897186705268:31018934:15169121897212936182 31835399992227363014:44070224:31835399992235752918 84738961867918177036:437939906:84738961868355960782 75561140131132283863:932614157:75561140131200474079 41776518191027657392:953019642:41776518191833284346 50366299151101211766:1632419383:50366299151655681655 87428239686100251179:4848270302:87428239686104972287 88814734064614399428:3701766624:88814734067978501604 74618749666422245064:67850898772:74618749694408380380 58886239540495011955:14522132396:58886239546401781759 80843130407459177200:22681019543:80843130407538910967 57573072000011355361:317957619542:57573072034425634807 84187505144183243194:685542161536:84187505271020453306 14870811496861812156:420500584315:14870811640873351167 42918593506492711072:6303245254230:42918598561703902966 10262002089467849922:5288718767251:10262002399782386899 60152585141456282989:6505960823328:60152590089259319149 98283175897107307936:93386363125953:98283180497101184481 47860746805342914062:76764807032253:47860817522013892543 75090830293577728563:15136181191201:75090836341598421555 42661896904533116607:383696241530587:42661998919538284287 16118934186145811975:161779875865847:16118936394832768759 81409981197620710703:719275837163479:81410126528048369663 47761348129861355210:3268267592086302:47764048977109940190 76532702033960978194:8735696951020181:76534118277157212055 82207571869371610371:9499017632680990:82216588141253246239 23592221388677423101:59810964690170052:23633903325938712573 13853738626908074234:65026136315441293:13900182050343137535 33458441596920568628:19999980124995702:33459299903525067638 32268290303654518492:407926511314680984:32277297503737642716 76430750238680523881:823732445796477235:77245457613777251707 68498136805697286948:930483331144436811:69102104213806874479 50548005516961082915:3297724168265081674:50584395538178469739 57262193795956131272:9088271643934135703:64467955536285652447 76072841652507947298:2975225494277561646:78397290117811125550 20812377490929746352:45309379348371778385:63761800243600862193 58467618116283389335:39960839715361942218:58508514558656380895 55293814778181365396:25069399325655502856:73785700714847125148 86220375392794310793:156927837448517796615:233885420459534973839 58921327694033173025:983382689794089958621:1023776206375656079101 13552848712278211871:762359296370330884681:774753519307377082207 63889996993657458917:1622569100777013461707:1622714497450473378543 48934883793258385648:7905614349314338796973:7945321321727859340797 79904355980876593957:6217053695696524805044:6296606484717754792885 58580222615308881478:59946285213879319519409:59984053669190875999991 17853469384672039095:72929093541738199289948:72938425073284709011711 91911270379413902543:28152741165366072735443:28167873907936882292447 31896210529471689234:925345574171524221730691:925357832970226129436563 25210014649175018019:862568700277446358172022:862569608762673919265655 39506511080220708674:950785652940605985596370:950785959485006172123090 57450172401958116006:2056852821855634814170943:2056871865330000637591487 39891206879485873455:3186231889854468323786278:3186268893682218068606767 88683124599857694330:7568015997354920308892509:7568016472643997475268479 309733903324562670317:473:309733903324562670589 156373521477446559888:821:156373521477446560693 408962099357536167073:996:408962099357536167909 227982561203734435399:2954:227982561203734437839 268330884411942564011:7232:268330884411942567147 371756688137363231520:9656:371756688137363240888 412354152390825212654:74753:412354152390825213679 571837656330417164105:11411:571837656330417172443 807579755156848122499:97610:807579755156848213963 344180284308835551810:215583:344180284308835748447 648213952574741151828:791403:648213952574741418879 190032553935581683786:323057:190032553935581998587 827866185138161785927:7337505:827866185138162368103 340950721277643223474:2408858:340950721277643256250 956518545348779097122:6337311:956518545348781195071 841177353420930104697:19741936:841177353420932988409 642065440513414168155:94384828:642065440513433042687 418499153396468687899:67291403:418499153396468739355 360006248634039209352:665083685:360006248634158768045 213792430808419566540:442945646:213792430808558392302 453679112141199805762:958699953:453679112141621599731 411421592291779663656:3853618118:411421592293937635310 250010593530047780417:8724277725:250010593530182107101 782788912150804649697:7870606156:782788912154295664621 142886184167907352137:63202461490:142886184213809815419 865668062578056029355:75404132803:865668062651243029995 486682642857646670475:77788080484:486682642857789484015 303990658139957898370:136496251201:303990658176507686339 735389781114262675516:290850140972:735389781400683344700 420246614847720021544:156558933983:420246614848276004863 214551419267872597416:4670037620483:214551423850645485483 432680477901804217372:8698211280737:432680484263196043133 698392404717792555101:3594096450549:698392404737388444669 258158502412285888920:73956970532978:258158574164561091066 617177033433593671878:90422046015272:617177053263546023918 148824290449869140649:54351027761096:148824325935185788905 690476948580309044681:329944404487291:690477238924980710907 196878139029858738156:268167300569760:196878230976518610924 492526443985123725042:954910411102229:492527007160098938615 116821811669196083257:2418784431400369:116821958025085875641 699907393872518395109:4022126389674334:699908598980314920447 850937511520483232207:2848453389358214:850940335767298235855 781531822741848776359:35684558990030989:781536329511170473647 413586735066080510774:91598505909581830:413605923859318635318 220793812472945097143:15208833921202083:220800014105093783479 437132231689107885842:451895056348059214:437420554462092058462 168447535002837531755:868041661058610390:169312827848185052415 920247806136580695845:586228487741708785:920833837038629289973 120909845045386940952:7456123669704850602:127974146270381194938 466166488104300012550:4541251903552170404:470346321726018383270 709036427036388550672:6358172875516762265:710199626823232387225 982752454136694493362:30805070169152543816:994966647378844310778 264011649130381980316:50943496797196454377:273242375148753730557 181767924782782664074:37429679659559121338:219053379291213462970 317900821937617145367:143306118275551297323:442705984660665139007 240235795537569138545:757305472099705983480:831110600232611534841 362687697700920694584:780615263935321352927:1106336146903603036159 668892451087948483663:3554795770529693173096:4223637824394063940975 583549713433865505989:8576825265071606069186:8853535728056659738567 759774004873094465422:4519314884139058758856:4685472994716265973710 681806221345912249390:25872592898593356472956:25954568625798457589374 128855152747377057152:72423885150115233334351:72440327799123765878223 592023669549095746686:18357034080154090132723:18358545181612516769023 871968104725627568083:400926586641402115860539:401092671797056694616059 996761413228193122675:641706882036150738127558:642075818721103218248695 708034240891924682366:150248728222532100599885:150949704502008135726719 267439224958580770663:6521442441373391844828500:6521560404162830168582007 181018589137697072098:5931296795467083160893675:5931476660571705986743275 234140785590697847002:5753239846027816394588305:5753317096563340587165915 198494464040543812196:274:198494464040543812470 626806984620154053393:432:626806984620154053553 479443940428708885406:149:479443940428708885407 452505857345442098828:2566:452505857345442098830 479905585915867592646:8916:479905585915867592662 499376707336888516199:4532:499376707336888516599 901592998622558719868:89315:901592998622558806015 215095569838475578242:17533:215095569838475595775 636307202035408238495:48090:636307202035408240607 677647051002816079783:684242:677647051002816231415 942234791776613668734:391163:942234791776613693439 898100612669348258512:770500:898100612669349028820 334863063902778756089:7631939:334863063902786125819 184940340354673346206:2331706:184940340354673514174 102721700401219139328:5266945:102721700401220189953 216896706416883408232:34457056:216896706416884047336 757810873088123859731:73517810:757810873088195165171 747230505944979523202:74898742:747230505945047949238 678103862946487246542:298120850:678103862946760163038 884180579317449987660:709630282:884180579317454970702 976970815525555359351:363319681:976970815525580955639 307364816474689540827:1323884656:307364816474771878651 703284087248129039775:3629134893:703284087249610685887 695999789907618569798:1830362216:695999789908843372142 315321319412221042798:60728724849:315321319421399526783 903340986376824139595:27332139691:903340986404003905515 735561980108102898317:69192958891:735561980108573758383 455707232268130850825:192447577062:455707232406786210799 461534932070704324663:419618134192:461534932075857033399 589897040984907755281:496250054984:589897041128932175705 693511203904884218154:2408366496965:693511206244127268335 872276653332772583816:8479216247639:872276658899193330655 931423508315922149020:2069769202785:931423508317622480637 503104508156042060168:82876857203100:503104520664146688412 710506711256127170684:15260412989874:710506716208610343422 148758934701643786930:12972973154808:148758944648795646970 849706386678483073442:963239888176361:849706505428965228011 869283001574449287847:666191595424904:869283636679870373551 511610307850066444058:113679533513187:511610315684355489787 546037841559331971690:8158561981893185:546042595994122562155 606584454199494254581:8926594694148677:606589824971419123701 921626439389078257682:8352956499521057:921634642124263583283 687434877685743082152:97008089924569165:687527382107316542189 262886000687819308589:55592129821023426:262922311184265428719 113604232415131983297:96169274386915063:113695606229616549879 486394474420944392681:578681657429108029:486395497528325764605 496804102576663229523:548326205851987516:496881790508563496575 539268943954661978883:666212858008613506:539278751598554100611 986773202559696300637:6858707932272951466:986846667539355724543 726670599264148382842:1587174616284106501:727968273675724779391 236665727803081731697:1610069484825236736:236816611757745110897 280018952158267823208:64565512562754942191:289243668440764904687 550698228364187482733:17167765975346633663:553292310554831485951 730613442777444133492:22168415225612042169:732964884946580635645 701521476585749055855:986765051131808957664:1023766698239395876335 993689532481551339229:761596419799642812759:1141353557064381513695 835912485352738303481:441400034670897107107:1180429483399816658427 636205904544764407129:1545085795868703228866:2139786137980216192987 493298225876885320413:1086393303143276513547:1088213604652882246623 121973347853262314754:8060352552926884731301:8098119775274789756327 260775246028223086670:82604770930246915611972:82607112872989470186830 457774998595221467490:85225179033653118223507:85534163170143986775539 777809816989943661043:16505015809915520292246:16505179223731974641143 467622722206297348976:185664483192457163698538:185832346041705826876282 242556296126522220311:733266047560775855695017:733432077264866193637311 391279517085422753486:983037158770822180080719:983428143280478898855631 458467944674349928727:8395450497871847280763138:8395756166190742896636183 437754983576687064835:8947787530247919864836207:8948141693894518443341679 223574330728315142628:3025557979368041910658283:3025558849848329139709423 432679158945100287137:333:432679158945100287469 324239396669381975656:448:324239396669381976040 769603061748944838719:972:769603061748944839679 815257009521772504726:3278:815257009521772506846 783164557153180926556:3771:783164557153180929791 866803056494289426533:4159:866803056494289426559 400988445040606529700:29393:400988445040606542581 516656253034387534727:18038:516656253034387535863 103741184812190470680:45078:103741184812190511646 115201745049243350552:635477:115201745049243874909 474014405605274387880:711295:474014405605274411007 934821331229927486762:921838:934821331229927749102 980465166595004716187:8722278:980465166595013433343 411045161097481261875:8904326:411045161097481412535 182966433048394329836:9425709:182966433048394989549 628595513088163754860:60507871:628595513088223737855 794090711737183158784:48286195:794090711737183161331 542975584062587110938:14287489:542975584062588815003 331507861092466170179:656831648:331507861092566990307 237859724967602481369:523746371:237859724967958019291 168443838669897229930:510688975:168443838670233829103 720793783920338834587:9934992494:720793783920607884543 327375265038798094970:5033360924:327375265039469248126 747181246919432357478:1686630306:747181246920045096934 264574489326717535251:94934594191:264574489404203792031 217307571558152525682:58756355046:217307571562447624182 157322858640114966937:57478798546:157322858679876976091 316264786289016195973:849035704781:316264786843173452749 676809147636359159689:245291816009:676809147739916525513 582901633248199501308:342216680328:582901633556027860988 947042084419142141306:4820870619556:947042084695664223742 810638340975878010329:2826756477242:810638343793456248315 116622244718646587686:9881403687785:116622253860484739951 322776697975632810918:52587252452206:322776714819630521326 434612489469459857965:13800403781344:434612490019217786605 851495955856526842625:68925302442878:851496002591139797887 941470327304046318666:894143003689623:941470658466494093023 722679382028091045144:804089693835735:722679965112860653023 979897495503766962911:225381561568838:979897707207185059551 308371446635538162826:5292160881546263:308376100941698725023 811637936994906868348:9935265159650419:811638583516377063039 146276489907068437264:1776481277371072:146276493355963638736 710969207110066185993:99982158778438213:711059614463881623373 267732248062684917842:71867830761528939:267765834157355826811 738060925795931395594:93218455517153320:738153258522521787946 615561073017947567198:885825410169457126:615582184742358777342 876098373900229221138:523679006830889176:876170521655067352026 540987504773585714091:560316361578910729:541294313057036812203 974429584193940945992:1646624765826611177:974722507835476082665 619167744350377652321:4203613851899769107:622217253044410102131 581498277504808775702:4025737109964718257:585107359003921346743 198173460447138798125:46333633417098280234:198246118444625821487 365494446687545243815:25739645252876759840:368175355315865123751 250005853185190763939:14929673867108243643:254775386226775809467 440726803603385043411:315102301593525705183:441928210343142578655 235796337270363193272:614799878843554353133:845983175010189246461 153986569822179060795:927733076161532134609:1076468394505441012987 492328205223831774940:5011024298204855149011:5307325448158252607455 348802730140328319546:5516281032000489217315:5827576640950706757435 617038599700962509800:2730315629645571353172:3347200780316064541692 875666847976975470692:27329409287053369538173:28039050912774859257469 591757660541984684817:63604932457712820564021:63606087639903815842613 439336393696153205775:83508913757249444177073:83819121781324946275519 465071761547682314742:260632988382242951898001:260799450439444785003511 771982605670220418835:558387993010908634823003:558417494157706774314843 880490269702759496287:384314858103539624841655:384577382075960326470655 548002971683261113986:5950327341043644563134310:5950771287917917596547046 970117708921440121446:5645739333574290342966650:5646709157330615535499134 442105007404129135729:3256386313182788284549857:3256514373179327345831665 9071128832282292768877:129:9071128832282292769005 8206970527718997417005:367:8206970527718997417327 5373616494226129273605:320:5373616494226129273669 5869684158756619766216:2082:5869684158756619766250 5177277028868916482223:5081:5177277028868916483071 3817008966866320177860:3123:3817008966866320178935 2123297709064481639036:94060:2123297709064481664892 4023878127502920185719:52735:4023878127502920187903 4027436833151411994504:37587:4027436833151411994587 9264123348352465197993:129710:9264123348352465238959 5945820145894135317087:865158:5945820145894136181727 9492950540564803410114:316379:9492950540564803410907 7881069662903051255964:4359273:7881069662903051388157 4017977942215408705857:9027617:4017977942215417127265 5961349415775694814787:9354915:5961349415775695208163 1489309799303900441089:26191657:1489309799303909191465 2559671178194768394790:33939675:2559671178194802047743 1122090199571063792055:15888653:1122090199571073233343 1553809195864913782499:651605288:1553809195865456162795 8567326035603747927573:421462920:8567326035604018263965 4076150644878128432359:422918773:4076150644878148632311 2056917663751461188459:6929960419:2056917663758323482603 6890303937129073711566:7257704482:6890303937134175181294 2430392618979025472508:3896504854:2430392618980772674558 1044804922655888474471:42387647708:1044804922661458521599 1066373363706131303204:40901914324:1066373363742731923444 7243987904915103337174:10799258665:7243987904917268324095 3051923195786073301489:731396222583:3051923195933176492023 2126461663672159991399:528972859314:2126461664055086905335 2881747538045821227138:982063267156:2881747538340127686102 1938257578447162482629:8491182038536:1938257580341243125709 3396074086141400627881:5508685095538:3396074087249773853435 4547686910075606891450:7907312124809:4547686911381554068411 2502723193669917365754:59834462220511:2502723213780183807487 8570878972861786447216:95732862722086:8570878972866219998582 4426955676749501282635:53230119654756:4426955676753835572591 5589311403152778472148:934497729849834:5589311473805061467134 1329312714343091059802:212707899638694:1329312856472829083646 1214531345313354228588:162750119132931:1214531486068627062639 2640934798094231258965:8568043565652766:2640937700835280805727 5910489892340588172472:9439311205253469:5910499321755098240509 2986776162667939214670:5826788204353837:2986777341528433999215 3700286592252522088183:65732707005952677:3700295886476039157495 3254267952159371878015:95860319119208310:3254363812326875332479 9274646159924402659736:35150007193956993:9274676735945969365913 1236884305611515075003:511235999459048814:1237030677298369396223 2537914813392212742677:600340593160135609:2538513882861808841661 8879744510582523563741:793693981704335436:8879745077930654056157 2922959528488100919246:5031127363904477650:2923085667787975655390 6266553399788619073010:5304364184354873002:6271748301972057808890 9732492571564538924029:3661315984091452315:9734980954515247668223 1434797472777244343201:55983946248136015719:1472280479906893004775 8904191736926375511989:77138536028463319618:8978879470049150259191 2573204366773952760771:24362749944700664333:2573211550802548423631 4564753540502114553014:882815258977639079835:4722343929684916985791 5608592986913777994146:990400908952184512516:5713509646476491581862 5996654319621841855024:145457680584265722658:6049877905993856707378 5258456957523574341130:8868049208192215149399:9403227791573276163935 8936584429312224520949:3786040340239665410197:9103314513285736823541 4473162847498981995005:6274551011806049822858:9269343644955278440959 6139085430415372619201:66705284610024228120455:72843737284621083996103 7150399597057122729600:40091233115229517870721:47221339420828062678657 7595009136391967729839:43462471041831127785346:46038173287148827967407 9963478263260475305732:346322490028595260181120:355916024180203179503492 9869974973860328381697:349491090409668720839202:349897804327123911958307 9885871952151238358007:368789802418321740965083:368933341146341547948031 6054064629880200333759:8288731036835671823078173:8290062733240982407470015 4958944350154482694561:1690438223494889502861336:1690585871801747658176953 3350477798512816659706:1237111839672065798141452:1237111848762974570282750 6582612900368399176252:593:6582612900368399176317 4796780815935864179662:219:4796780815935864179679 7877162413072783111216:966:7877162413072783112182 9627551816898057699695:9656:9627551816898057709055 8962097957523924027280:8886:8962097957523924035510 7055657699875086568714:5019:7055657699875086573467 4823450918245382254277:88330:4823450918245382324175 5071776919054462541338:14523:5071776919054462549691 1805982217276289611549:25584:1805982217276289611773 4521261463218319456288:281674:4521261463218319457386 9379454610080599358371:317172:9379454610080599638007 8574966642347444143464:432272:8574966642347444444664 3785978544849655663751:2274818:3785978544849657773703 6252565558813837813982:9896372:6252565558813838010878 7075071683856569957576:5048695:7075071683856574676479 3901322080248002766895:37918472:3901322080248006967087 5595878751459627510976:88498512:5595878751459699224016 7377918197328770259778:58378238:7377918197328775143422 2610536507139676241871:674673275:2610536507140348510207 7436132195667327828773:944768867:7436132195667332024167 7999866324744209483849:116964795:7999866324744253537787 3201285066042258646641:5192624359:3201285066046889225975 7359124948777963305219:4413567785:7359124948778064001835 7901699045122435971648:7764044683:7901699045125803998155 6958462410838743044379:29715355093:6958462410848006428127 8705706827871906113643:30550220255:8705706827889359420927 8625441813700965853333:57912990812:8625441813756815244509 5449489182825434673639:372618431939:5449489183172253941223 3518615823389735707470:423291495377:3518615823389905642463 7278328156715283278108:658026150641:7278328157338681113597 4284099569306651341036:9212956781441:4284099578381934017517 4211040215306435551896:4322157506316:4211040218778180513692 3503567676946375447155:8272962813891:3503567677505291649011 4264419730589618036303:50440627894774:4264419766736307191807 6356306147595881186017:19297627632892:6356306166871964514045 3275859392321662112150:25760498457921:3275859399382660963799 7591705741577167037498:425830099982393:7591706025286793428027 6475225696064241447175:637516203397327:6475225696619504579023 7870323443913390252116:887508068620075:7870324048666279245695 9138448102109492315830:6575049739209385:9138449870880373640895 3342632193909724828949:5515045888950765:3342632336440531998205 8462459232790409949217:6222102256518267:8462459253440658912379 6861669451304679166531:33904963213749743:6861682984231771242479 7203862179164440817779:95307645122765308:7203884707660551680511 1214865913479316560853:63428056280455204:1214884280078605999093 9402210182578391522107:334989082509221386:9402500107065773039419 8213301674472983308016:175419717784587279:8213304492525781741311 6281057929337920269844:498914561046133802:6281115491125279309374 4247046474334227149974:1308750635331937809:4247055909521805735575 4408045965572635009970:8625545978154766223:4408194593164502167487 6675703610634972017047:8582887261698432905:6677144764736308494239 1816678413107420227876:49802720180386470339:1825903122288123673063 3730023051954605722997:84914329836006959978:3813756232429420375935 2979120329108987110832:65016335590460766895:3025255314446259912639 9602930047762126276840:763638925222911718698:10218919474538269883882 4321083764708636167608:621794568743121519583:4348763468648912195583 5611578712491639083689:661080053927134525272:5680902626400860567545 6018202944856026963345:1058163255638477119407:7074324098953811517375 4087956825013057510336:2772082075038331233411:4129755234534183206851 9092734676713535935728:2210452464774024130037:9444677512126412094965 3814781675685175858324:72449680218411745614378:74963963892352324443838 1835385831589721316682:69133302753198883105025:70318942910756840996171 4142772511418247126743:34876283933803779054721:37238621223231802957527 1215024912403238444780:986599409629717607245147:986605505709588332904447 1003611917301687843485:689838704535335286251999:690470847803481919257567 8651173025961151919729:846307284313742610600135:849859652922120905520887 7870341478051453826074:9024356069797760933368342:9029090275208319943538206 1833197744693064810274:9640587614210862294570284:9640626865913963296440110 4569718636807922799060:9373262306866038469218197:9373892414893206530875349 2177478184862469203469:722:2177478184862469203679 8318569877594357982148:802:8318569877594357982182 2455117245204810921616:317:2455117245204810921917 5966300351744337938180:4811:5966300351744337942479 9179739366651046569453:8135:9179739366651046576111 5669475973545399249130:7893:5669475973545399254783 8495884887914876081300:92031:8495884887914876106751 5679246504113894786067:46643:5679246504113894831667 6281660595284373864513:32308:6281660595284373896821 8505934340990927698874:383652:8505934340990928026558 4023840744649558298053:835108:4023840744649558835173 5121104683121485776727:859149:5121104683121486307167 3609181886571109984363:2946623:3609181886571110792831 4062646336756539251095:4604025:4062646336756543576575 6106745008563876145028:1632254:6106745008563876194302 3163293244723808342476:22805848:3163293244723810008540 7927551936692404571861:98783614:7927551936692490559487 8955331105662294174353:34972868:8955331105662294273749 3304622810725200823110:164659573:3304622810725222876023 2473520754209212633524:938191060:2473520754209271560692 3658945818095993501724:218949719:3658945818096010328159 9842929602267561489656:7957511241:9842929602268903767289 8899296710743489916993:8201197772:8899296710746712209613 1595700538765061757601:2778167128:1595700538767226437625 3560954714305661299969:63239818106:3560954714325666230139 4718788221151003944317:98075308626:4718788221228661241727 1493987112432932336417:41370702818:1493987112474294612963 3797914983601803510830:967392761881:3797914984293563259967 2833523602679496255402:725874263824:2833523602683808671674 8132996169768238017087:459822358757:8132996169811313519359 1423720155145661234642:3951691251480:1423720157413706285018 5186593350307823799941:1340550264603:5186593351545093226399 3439358159346624221311:4728006023410:3439358159346676521215 3604310601346482359504:96979230752784:3604310680511455415504 3919226304790921601511:60466687637526:3919226323200666237431 3098164435204037823566:27999780441152:3098164453299281448014 9414554909037695892139:100066684598488:9414555008002435087099 8377237137459831311943:979042184276049:8377237984547650350679 2021967930534638051197:440357820296828:2021968071272179957629 4100017181192582813600:3856569724063383:4100018483594173833143 9155510914449534935776:5317501138157782:9155511512618860733174 6660267773440575056931:5124054271676766:6660272857619128843647 7425425845867007484395:44551553575438231:7425463007464403167231 1069924225881590976159:71869808148593493:1069983072847997173727 7427626455962141682773:30498263534382919:7427655801928832511831 4721509102871771105240:811947256466232282:4722320881722234099674 8709237573795117460644:822014677430687620:8710032459293901455268 4362183206464884362982:140454279845178730:4362219248508121051118 1529418264800075618746:7986684163629131723:1529852376515388030971 2210534905846611187297:9024755604171799287:2213429109657424772855 8668291022372413626254:1137097358024461461:8668814504263960485791 5811253104447892900073:91712938770271681936:5902946826915937779193 5128616045490724806632:94579557908878369134:5149370345682627379182 5422998597788331913085:53404135371674729924:5460180476859004993533 5406841062396481522735:841444902332120473571:5563998886099435708399 6039111244457709784180:845643099078653498854:6787800569281592810998 8236569705258501364004:365404820017608898995:8260637540113434278327 1292613479765182743878:4873276413241731040120:6165743097174038398846 3768731474313516607650:2943328159183379517456:4128605150790503037106 8106963140489298367586:3041827509931696479353:8116564850358934101115 3149740395182420616686:37762020846148348658246:37774279644473279113198 4279495759545243366744:37641290332768779320525:37778787501053228842461 2646502575712435567804:14175155337263180056275:16814197625406758059775 7979046131517610872356:169677528409938440995942:169982116516414063103590 9024803120939554065623:891554649303531192343916:896871364841959357963775 8170340354512038857906:122385695717168002506182:122687763596758132661750 4958728888706023266819:6021502180418710626613278:6021586354018511048129055 6012439021414584149344:5550670919169478191817453:5550699042550461641779181 5925753676764797772075:6307286711352942705539447:6308486632463956319205759 86182144043061877027275:851:86182144043061877027803 20004771454593737924614:854:20004771454593737925462 31012041656035501011124:998:31012041656035501011958 25685960717433677041396:6387:25685960717433677045495 95207514688699149149908:3598:95207514688699149151966 61307063994863224814040:2382:61307063994863224814046 97583039223256999345191:71644:97583039223256999346175 74848330995316579265377:45919:74848330995316579302271 83071738461298740107053:97621:83071738461298740133757 64884687638356063999527:725585:64884687638356064720503 60321001665113285767542:257934:60321001665113285984254 72250157631877249931114:385026:72250157631877250283370 91479914845196531648623:2035118:91479914845196532043247 85465730355899282340816:1509511:85465730355899282734039 62015992723070453834687:9087418:62015992723070462389183 68818546579286624714800:17814838:68818546579286642382134 29295144098109847634569:67547029:29295144098109847941021 51943785211373381881067:36880679:51943785211373385076207 10261504070364977781254:295612134:10261504070365248224998 25470614349348722923125:200969928:25470614349348759133949 19708174716979936568777:428824884:19708174716979936984573 51938824753978676051610:6245273281:51938824753983241813723 59595234827367012323593:7093659042:59595234827369700914603 81733535430028403831345:5550656769:81733535430028417466161 76142394145975430671917:40849771648:76142394146016280440493 51000104594993410182529:20464539733:51000104595010631998933 74008827794726834805660:15214182423:74008827794731306982303 48187416552584921544393:958113520017:48187416552911406432217 77079099100163930328562:662047915063:77079099100817386208759 83381205428964338862977:836153167324:83381205429800314785757 44482732715945069807888:4074323790384:44482732718367969364784 24725590055434955855337:7752100548945:24725590062084843574777 54144664858820568755438:5911709747157:54144664864456640901119 13563086937519002708797:43937780817006:13563086940422652264319 11393061259218070164862:22949754421327:11393061260060996392319 88628237966694372684478:93002765088189:88628237971711431522239 64119771497992880572109:184299507901805:64119771682221219375085 18805938940749856137869:189082628210277:18805938988578928819949 85442422635985787976049:158303974276258:85442422646877825498611 32593209102134591505124:1927804524329995:32593210238277311692527 30552177742470022276867:6162894107538399:30552183412754600556511 47294105381530084274169:5858625072331559:47294110096649872211967 39706246199266299545440:76758806847944261:39706318452814999713637 87976720206345644631200:71998311833321334:87976773827397444304886 35105903708897508201163:46737011961684806:35105950445840749229007 38764265481217466835902:205017284394077686:38764308342525904547838 27639514548736230590360:160988514221760565:27639526531287553386429 69491125734634203344326:333299840144369313:69491170783893376724967 16574587447305876686279:1342284685201061043:16575749446971869066743 10987986056178576120879:9518758363944917895:10988276855289314533295 94957055764428232356268:1337900614291645026:94958353086998375920622 37511763269490883044740:39206423978660950740:37550967385860905334740 78036351036894563671690:42547036146019917375:78036644943224635317951 74759292740139418562915:41676373699846074733:74800969068687594615151 74445457273134795514337:549855799818042215651:74967480791349448732131 35200993089277124403009:761017561497819954714:35371631101596456189787 13450886513811526327009:660965696063862464018:14093077685899326381811 94774379411570380744878:7628482645068814579519:102079309350468270948287 61249725045686194193618:7288756310780966008197:66027814567992177391063 57937323695556289552239:9001209761998496472277:65670256743293919879167 44816020340647606087504:29158287663163428394153:73159768839546413776889 70339357571731037277189:20332710745791429885303:70526491726609616141687 15563784971785529272641:63783335961446533559917:74593444860234139959149 21834657265808755962267:217272969034269458990315:220178949485956056004091 93422141617698781736534:942993846320416113346747:1019734618809820751326975 50977709701115697171036:414266232971889536615129:453271951584079889779421 22277056163734090072861:3692064036943834863778359:3692737631368096532331327 41961880622567760974147:8020794149335498321273965:8060984998123011340760431 97677402214737763791431:5737923702900327057027712:5740912670126633632101063 88677390624651567511796:347:88677390624651567512063 26016318932278034406464:143:26016318932278034406607 18523259264920504519300:580:18523259264920504519364 87475763750979302590247:5851:87475763750979302594559 29853421536534357979354:3111:29853421536534357982463 49123513386117762970256:7786:49123513386117762973434 83322207579196347537353:59390:83322207579196347578367 99177267951546182797781:59347:99177267951546182856663 32616940074453126533831:28462:32616940074453126545391 66214263494895457638300:315904:66214263494895457916828 93927735861703982754905:467006:93927735861703983213695 36424898441463780577756:883685:36424898441463780604925 50396936909202615204421:7587247:50396936909202621726703 93404103162360344878087:3850804:93404103162360345058871 20973644841097471398172:9592866:20973644841097472471358 87249159951763702065551:69157015:87249159951763770435999 78234485000933650327038:10983657:78234485000933660950015 32812581368040582312592:65698777:32812581368040584543193 57734472402073155552623:648079885:57734472402073759575919 76469168129799802093605:720271330:76469168129800488810471 92699118449709402628934:285078501:92699118449709683700711 36924532302586663704328:7311600288:36924532302589369171880 42124925494819772971097:1277847014:42124925494821048188415 82699858904579685613520:4010500434:82699858904581866782674 80720123912424217335866:79072900073:80720123912502198139899 23329967885431618005303:70256245115:23329967885433112754559 39313516112110080003080:12875450235:39313516112112802320251 93587609131758111918950:848954994120:93587609131765253255150 25319498305313288131312:452686944934:25319498305589240306422 24936310434100658511251:961535448386:24936310434424986246611 46658099323692041204229:8337623590979:46658099330306292054599 85838579844794733325521:2194939388557:85838579846384082317021 95150642222370655481276:8377345670763:95150642226863191556095 89537636688917509296393:94849232442094:89537636783479804908527 89764828522526117864970:64384429793616:89764828540135517398874 76005800761400830105375:58015711565432:76005800818864357349247 25393057978165497351468:464311055254740:25393058402618098306556 71444396412561507772330:174232485040864:71444396577900585646058 35230380839553625660761:699776581403147:35230380862030363926363 87288500738113203393241:3302706625652657:87288501064441666533369 70239743993505604972493:6035253031401144:70239749675803458469885 83566220390669013403496:7214352330828950:83566227605021288493054 97312980618670991322444:16709039889319884:97312987937570177265612 93078746721940604311787:77380491643433827:93078747355401248832491 29883298267330170763898:65252328916965275:29883362815279940698107 38439513274666960972627:745365765567001953:38439517778493422174067 61773182228499154030901:253076260033116654:61773218824113748703743 41338008766651696754574:233728181343415669:41338234593704886792191 64397276113385997444161:7959166669560558106:64397583486534990935643 73161399532349503745794:2589176378060258389:73163817430987321622359 12016183635664882136848:7394000753082356323:12016225298909310089075 77921749803393345644940:71445973220875130562:77992798890251200757710 87760908811087661463859:39055276271579459105:87799531686475830624051 97571651518597740082536:99835590379633936380:97647839551320273958908 18168444838430870417805:322936810173465445517:18186901722046463047053 50978904355552772996778:250720648645175314303:51053056167402574168063 13513091203911995103448:852437596990232082082:14144041008131542367994 94691552181752588703036:4761248353450791421961:99450999056589007019325 32175011994291405482833:5032770152917066057076:36911358289290056331125 69306763901545030074646:6496234718422747981726:75210392426301857982366 19761228106066880560359:93130888819072398977813:112154094004240826433527 20521811230640815007245:89769932852725280759135:110283667897780943585119 16124979619473581253544:59045578985754100785905:75170414452619703346169 17894910288271745190744:591061182217799062821485:604084602829444862417789 89731363835174479932055:763918925285081288284265:848927881239875395468031 78544176621901456400783:762997736377221647811587:839178411907393464952207 19044820967958701365880:1846028555653686073668720:1846028801898182212583032 29700855152296453706705:2084363771579403925772766:2112882440201044552047583 12436924948891442621623:8135924831954909945162856:8136554399508152259996927 53311359386274292030871:370:53311359386274292030967 48679890801109426764697:465:48679890801109426764761 21370608825726566381310:494:21370608825726566381566 56735213826984355987408:6632:56735213826984355987448 34333969321921619644943:4483:34333969321921619645327 16079356809297693123322:9665:16079356809297693124603 30393000091827120197468:68114:30393000091827120197470 61584270682454525804156:40543:61584270682454525804159 44214516547814552663191:39356:44214516547814552698303 98684438272533043585661:531677:98684438272533043592957 63737435311201615208371:668842:63737435311201615347643 52573440134803861219515:952075:52573440134803862040507 46657198701254518013232:5247238:46657198701254518013238 21121911893902037601110:2349107:21121911893902037605239 53010268032447502819593:9243622:53010268032447503346671 67816849477825889841251:17043339:67816849477825889845227 15739897321238255600194:95830187:15739897321238340551403 70673089164394002829884:47443746:70673089164394037509950 58926969797730460617104:144951639:58926969797730471234007 22986183548597045714375:684074318:22986183548597716811215 33842857685476354452974:989415697:33842857685477333364223 62349199047496831506288:6837488148:62349199047497159270260 75608978415841348279214:4034784704:75608978415841624063982 18830978977507909603662:9710416485:18830978977517578072943 25846981672624240075880:95658031991:25846981672641420574591 37778893357338408104722:56038418400:37778893357360086513650 61006491792937927064234:74203134283:61006491793011047529451 98254431827438079734724:487648299353:98254431827644271754205 87588116988927259101486:970717081595:87588116989202170638335 98316150302107386245423:246553139678:98316150302112344963583 89123115102042025632497:7099498372498:89123115102250886512627 17097622022517757188229:9573400600816:17097622031934892701941 27618028673900294730302:4665434363371:27618028678488393709567 85250520855967858454277:28636570058220:85250520867003115634669 64393764471733459193695:19374495567505:64393764473514155151327 97017706725906176080079:94745072184284:97017706745837106756575 40712258787560155019563:965779976767647:40712259154801937775039 50668423103291524953311:282934281533546:50668423103643729591551 64730488777588627179826:429034557793149:64730489063549228018559 34696977580787647581510:8277976680579153:34696983527513525013847 70473048163074701975779:9062321169294097:70473057170411395671027 98933369568070584005492:2643751518938185:98933369607972273616765 27940462451559490358890:46723379770470528:27940471698626236628714 98973122608774968284913:34247153566404034:98973122935332073693171 51134278854775860469686:75539652820263599:51134352054247427669951 74311405785426535054297:891536630694840981:74311411429026724772829 85750713730613814853342:643352322532703373:85750770030567027900127 90004309089090323829996:158604376925701614:90004454172488590153198 95498705619534584608832:2346857494487794140:95498710180669594401244 54142026366725932906527:8707958985035149834:54150119405652469545503 88427256575375210026445:3705483137331707002:88428501966089059548671 99048883996296180900547:51569967543891414714:99095615690465123233531 26866638748958728045992:10114607369823993281:26876752709265822252521 77807690744056697587346:12815791734706541935:77807781033786941773823 13220994937069072426732:534512977623336450021:13521462173955321198573 47861426988834790703888:797550781622172852377:48030619770242125472665 15977252853790858335078:417727745625856175440:16355772257315613114230 56586235461316407530132:6352286756632104042536:56592013592866861191868 92309523681774461110174:1940305871225596617801:94101453056425726044127 92254075413015574994231:5384013801243813519510:92895388099462695484855 51639971536554882415188:94487799047095221014036:146088535223694304149076 64936771849539286996838:58914053705599570601008:65997747969780942567286 11427467261753009025983:59694587853660391616758:70531123662899217085439 95255853644466308726910:734213916912225572554476:753140566313070077101822 35688727079258879703002:216490358675260664712252:226082707330540486017022 17759612495744397324628:338182426652258527891022:339399912365902289305438 83751245721448993500582:3694672773561231850055921:3777833145812551042313719 84805016251431421358570:2146138830813408994890076:2228798691289178687123966 91100361089175559541470:3912126904412914851069473:3926331793702476202852095 164180993808217267619537:821:164180993808217267619829 655872294242277726943038:844:655872294242277726943102 490416793889360053377423:151:490416793889360053377439 720123205503449043274321:9413:720123205503449043283669 216778321812169831914762:8950:216778321812169831923710 400694361190195166778788:1593:400694361190195166779325 863078584924179024177557:74214:863078584924179024177655 155017203845687712354399:92632:155017203845687712381407 638814771663047625897017:89333:638814771663047625899261 215356664785881599301768:437701:215356664785881599573453 134404099165170093535942:942676:134404099165170094207702 782711443059566067851616:812090:782711443059566067869050 830273694650410065814379:1505511:830273694650410066246639 665439423756906236258828:7122822:665439423756906237046670 675613881805725265790544:4089771:675613881805725266601979 333502364831039432645239:66638177:333502364831039488777079 715455547276981523710480:54052939:715455547276981559937627 557772236203153295370088:16859290:557772236203153312147450 208674931330784269124673:668062143:208674931330784869996031 973418721758398162587404:935923571:973418721758398703718271 690000788031250182020436:975241269:690000788031250184117621 714694027138918767368588:3033966841:714694027138919116552701 864943442021434330817250:3146200240:864943442021437451777778 409422670593598191617476:3564376298:409422670593599267460590 458942678534956475150910:63982853948:458942678534999443963710 120442743128740725650726:17663265557:120442743128741195415351 586007365680587171139148:56753969296:586007365680621904977628 667064756936975025309479:897001621099:667064756937249909540719 565958699317651823569443:948162807728:565958699317979357310899 301274782212401833675079:388776640194:301274782212410501480391 950088131806547036424630:4664080544577:950088131806654956927991 734442753792475218903803:6960725746308:734442753799141721498367 188010329190282737477212:1988042696332:188010329191152477005532 190188665155504061594190:17017766417595:190188665172306003017471 382744310786745484165342:87967000852866:382744310804343055972830 421257572215390603192152:63955350831828:421257572250712474118108 201095678270669369423416:300166846497108:201095678553243862103932 986427619682669897739276:113553124065724:986427619788223569456572 216781626635336504657415:887220880991546:216781626956806222243647 611624215088860198921285:1670133088923769:611624216430960724341885 775468377248032061992307:5969849529792937:775468377287626837065211 357007029927054391238324:9613523479176282:357007038935501333987070 428314427231462349950348:96771214072623685:428314518301811674021837 515606645402096105961254:50281436313242849:515606654588108274630631 371827855478481896041411:16366342423343481:371827867340125176036347 984053506312722624751351:795825114557275007:984054230075603908263935 519546847515259354435388:409554437423199751:519547210061640499953471 295686763079115892703860:514529086363914850:295686835181961996653174 194178451496291654792551:7782790747066507279:194178452064335709468015 344164431999147348836874:1106138395059727224:344165515266599226960762 123281187379652849509040:9290295874573775010:123290466273591304336050 318322215643760775528705:46190676532032021415:318368406310867492119463 506188340894892931320979:38768307982487894132:506226964891835559558391 246035118345940157184374:50923769794955216662:246076665620691846676342 354073842694424951955814:344448160965979597297:354083932306845258672631 910474932694563358342768:914303265415952457066:911378823190670017691514 587918448854151966011311:262071087930969500290:587920792002036074655663 163860667359912868292814:9929653747669287098518:164008826957616203561182 458286755117757282915492:1757264093192547668162:459836326662615655453926 619408664323698204584469:9431702895796367960539:623343092666497620749279 471200047854713002321484:30633799407280410157803:491124916110425092646639 188392806283894648648071:81251976797206869782026:264248452556650505551759 294094049796152373948314:72441332450878575806902:299130092034231341363134 246474323627754454159874:818165024960868594830459:894629536481864218304123 772784724864852274901960:482322432479644092544701:1093947155716770441197565 656691925347806016073312:575119700403775455357144:1189139325569141749313272 893955835358063059543278:8838325743032911055748906:9670815791878777809338350 354619252427602883202364:4212413312191024391797089:4226959768981496320720253 118991136485103850978503:6458069782691549860037961:6496771459371480315329999 551620499829596403569229:133:551620499829596403569357 685754533756779246067483:670:685754533756779246067615 811574051597639133341681:182:811574051597639133341687 522384285347974300716178:4123:522384285347974300720283 146294604342351338533505:3819:146294604342351338536683 454091980498850129342860:4885:454091980498850129343389 837952684766279238581850:77197:837952684766279238647775 327740439970226699473294:86151:327740439970226699489679 481651052332560732334498:89161:481651052332560732356075 193024570273353944846367:607793:193024570273353945437759 914598464297186181651040:279244:914598464297186181929708 606545372573263991884439:689823:606545372573263991918239 683978208558649223592046:7297805:683978208558649228393327 894174184083372570633931:7749945:894174184083372573124603 431256190330485403226642:9828332:431256190330485404596222 116450201914442047548813:96350999:116450201914442050961311 517564339372342656087019:66571570:517564339372342722428923 881511596692690392313022:16063586:881511596692690406210814 266250449459182412470389:821273648:266250449459183223028853 647820264522166619205141:525228898:647820264522167093297015 426435461239501647355892:406690983:426435461239501781573623 315930291132721309929577:2987415333:315930291132721611921261 698893295855766602998303:5698866434:698893295855770940731167 336083570796838979163033:4169337060:336083570796839382014973 310722202856850829197539:97816244816:310722202856928210449139 928446803639232961020351:50144442533:928446803639280886348223 891776812705154252179894:86474303820:891776812705240185154046 284099424143920223329797:349401310448:284099424144269596294901 463428452918036065416110:253945928398:463428452918277124652014 535998425857064947500889:481946624170:535998425857409186654203 465236299888546609337961:5075470538604:465236299889150993094509 292903952334288756766992:3752799618284:292903952337625951108604 451607881928861189412611:2718870348478:451607881931369601644479 764620473705807549565572:61685439614315:764620473767457510608879 165855337945507207852101:81618158897883:165855337954342850165471 931794578973249587952663:18818698663945:931794578992033926347807 539047341873720244615810:704464265189846:539047342436739253582806 150963095676067445318990:203884220733765:150963095879889447681359 744901736382747647003873:927561718317597:744901737308590302023421 656033124008564551781837:3526575202532918:656033124156045174472703 579048524115323178604749:3447102634536565:579048524167060355251965 969912348032603169302772:5641932195707204:969912353670919001946612 306655816317682517281216:18142737620328775:306655816357475407161799 702305802138604282268969:31950344968144682:702305806644991377231659 452320453198478970598261:94657407709835447:452320457711287555552247 745613800274556743618649:638141807349197525:745613854353499961162461 171261170951983910157546:438943900666173632:171261172993940942028010 102348953244601276685707:104550112061010057:102348985134860688424331 416818683176813410582704:7431228578255593623:416821421367585875157175 519113788284643249583631:4889574562216687095:519118461613683786086399 869748226697295302431348:3985656702491744262:869749526518093238491766 196692707454827188315368:95098346491926396431:196711460778201976536815 948976530938355446451494:72060806614247458919:949048012397724116110695 851326206839351644112284:25340484307700158270:851344908973735449317310 863879686493351264470132:241150924028224645710:863880840581476950994558 222509977968205170758765:494930165227857758993:222520681065207704444797 586878591442505559615394:331640327850464353073:587196392490167501045683 522322047837187337472962:7048008926204912349615:528890260129953515305967 226540801858966515657766:2754209858484561365898:226633202786191470620590 382305784938468751046229:3188222122145084647191:382453462570615512102743 126845074860701472177361:49891327894128030487930:126855758261172423343611 971526033216872962790213:80814924673729384495692:1047166060705408618019661 322832472490465066088253:48080872463438232611429:370686794670893554466685 599526540213858561588782:375650335931766576478287:604397174978994467470959 805596164742543172980421:843751822646501319674238:881901140114891366780927 850741991111775585268690:252173501219401458964909:856645670640203417254911 444902620934123422864660:3404601396904763598959322:3470791785228143026894814 867013956402237116220819:4107151178794583367755924:4796633056459842027761047 444306472477324885164800:2806339200346245002679861:2863376821834215036278581 263352833711459764058193:102:263352833711459764058231 595150997684940893432623:627:595150997684940893432703 346035268308728132430601:987:346035268308728132430811 243072947783534608905565:5008:243072947783534608906205 474821698689132870556977:5291:474821698689132870557115 102471289615795496242799:6032:102471289615795496247295 298318150839659193160163:85590:298318150839659193163767 707063586541611979717044:92081:707063586541611979734965 558877930633594344720369:87416:558877930633594344790009 311566171789987107978884:568468:311566171789987108535956 736105060935274973774014:933348:736105060935274973789694 998864504360068105357277:291682:998864504360068105369599 850782542115058931725323:2829468:850782542115058931727519 877530148920999832216866:3260814:877530148920999835461038 959994699310316494616972:7258382:959994699310316501596558 371017908947002468198191:45578643:371017908947002513686463 983098667018379966075509:23783663:983098667018379970935551 186723740932957986015074:89221303:186723740932958071025655 472395380602872132796526:452380304:472395380602872312284926 622231319983046450975175:124285312:622231319983046487175623 628662610637203250556440:863902822:628662610637204056129150 498107144069935332883285:6595374032:498107144069935485778901 178022010985337824122556:5219607680:178022010985342169970364 655318779091083276070386:9932297949:655318779091092134625279 194149871690242706491360:71672527695:194149871690313842032623 116593409178885472378373:75809656945:116593409178889810337397 900204484373411867289033:84807004293:900204484373423422600653 598767846397314460984856:480003779275:598767846397485224750811 412920827904420055008244:265967118062:412920827904682664585214 133760839953718555676518:832099653255:133760839953998617747431 905526883447713597816304:9234322980353:905526883447997065789425 843890976610344225445963:5983594742953:843890976610757213396203 968889893621181707204575:9628941758574:968889893629981709776895 745927254848396268654888:16752895680592:745927254864994471768440 521255684676948580190965:46551940686061:521255684712418662116093 350827797534413151616856:30475744342736:350827797547062386196440 776211778523852407137642:913236505275745:776211778535466018499947 277360000028398741779081:326418858718770:277360000345470677251771 382313139979113369140981:769818646833700:382313140542067930267381 982108670086747144068587:7740495158013355:982108670428490180296171 223768851626279752722735:4193134762279377:223768854687328714385919 680938445263248384847362:3632155453091064:680938448648662185668346 291769197071200397569082:91931242927619545:291769216917600632438267 887409693919493719000653:12167677438054768:887409694256219205654397 914096033240321973425841:44247161388704016:914096038922624116897713 128873230436277218090627:856432476194419100:128873276071267029467039 817486475953974328996962:614489160049620111:817487054104137020863727 944979220615893012059893:908951624510770424:944979257836584405212925 123776959897109036964279:4852786161435533244:123777038714519357743039 336891677371920142397291:4477507808070448905:336892830579847662665579 743703070739126803875304:4371269738581773975:743703395454050782531583 685565435316938200903828:21193739400162711143:685586484025119528646391 591463888435415779767112:40014659351828609485:591466842797493325528013 608176703629034237906432:36784137018614191144:608189115973649589853736 479045030265504215106105:265408717696894498991:479310348620935261059775 164412837883475312485390:334911354495823164128:164452146462115877598958 549874249167151919593938:386370087657756943591:549952778514125992492535 539839233669040348750012:8927755566942345089072:547573115020012916043964 846888719584051902056629:5495600467985341650308:847626734728832206282165 839640203392958969613296:3661834933490558322018:839677252258069430358002 968779990588087980969043:31645604843371585190957:980918009321436180380799 659320229408876631729068:26390939705147301444539:678249309078141230037951 499869109266461605472130:20628544576993993797495:518869440422186096504823 929984735442738398653506:245090708089956902284779:1170832633236972889370091 472656933991738769575713:117144997128035327705447:589686629820135281168231 831377546515913214000221:191273796977346550822110:871534379592076813663455 713953603297368950849180:3016015180404926347813265:3625292693813679820324765 947632370872373381484718:4905844896782156591088316:5813148040112435902665406 524636586787626736037253:5130401090459199214189407:5437797780071599864020959 9542387848317672307031801:631:9542387848317672307031807 3814151211912630087158547:578:3814151211912630087158611 7468852113095759278723572:311:7468852113095759278723575 2638344351354925887062230:5360:2638344351354925887067382 8011588091489249809679159:5157:8011588091489249809684279 6026936533876267321015598:9529:6026936533876267321015615 7795558409760268142113485:49181:7795558409760268142113501 2148172870487248571103229:15842:2148172870487248571105279 4336386132642380613673743:80696:4336386132642380613679935 9999757638757172971660808:236914:9999757638757172971831162 2048109094263784987318278:730247:2048109094263784987393159 2874716781024835827237295:423183:2874716781024835827398063 5950552416726014984678362:4900939:5950552416726014989429723 9040617781915875503056724:2232185:9040617781915875505287037 3516885659427471393663882:4898204:3516885659427471394324382 7897773893218603738807071:26208122:7897773893218603748032383 1371356882697569531149264:60553934:1371356882697569565408222 5678340214436178070911863:38051465:5678340214436178071175167 6348994965629685382286469:541505720:6348994965629685923757245 3468159972493257563517431:242232361:3468159972493257770089983 6143868301919252180434908:747085610:6143868301919252919091198 4113280438194572680880480:1115212445:4113280438194572720204797 9113842555202631422206520:9433766592:9113842555202640851761912 6208395122135746141954587:4428949083:6208395122135750529738331 6968932114017020209184089:49517382647:6968932114017065323462655 4212700605271814762290525:60694421600:4212700605271866847755645 4810399349957872568993300:72984256150:4810399349957874583330454 7628392826837508821834249:316481559258:7628392826837545446759131 8633157103219952030814875:521374130710:8633157103220095442481823 2269702411503267499186730:733011264563:2269702411503860882071099 4201232430794973631422831:2114975328679:4201232430796401410796015 6176302800536743018698406:5008028600351:6176302800541725260455615 4769817703547573526371068:8642627292672:4769817703548415417179900 7438688136225043583128465:21950893578887:7438688136244999112022935 1577664320949245507481018:85678399093533:1577664321028857063800767 6689561505830427091104335:61391431993215:6689561505838193707022207 2956197897942404383016547:943540733797946:2956197898531764392355451 3064200359705382497197637:566678933966873:3064200360269707645787741 9553251187379213364787805:785577642341077:9553251187520131313105629 4521126014932373823412114:7340602520998652:4521126015495323869239294 5024696812764564789943759:1501542754223092:5024696814265420178481151 1842387597350064420280019:1950118864489277:1842387598526086796795903 7610834671211910905860155:70171177084085794:7610834698317071570662971 5797134730656515941660476:50827427045503297:5797134735300853275490173 2240330763455050734811801:23672930378693786:2240330763457400149098139 7838201276160275856629265:273466774935238463:7838201402415014769786687 6835834640928342360681363:931520924639247786:6835835239103694563671995 7884516717294860937223994:234748075238202257:7884516861898370688999355 8602405293906070403947720:9533622217216617896:8602414805508483523804648 6549017112164013857761391:3338931919478735459:6549017256913079591955055 1763924889713972109087789:9268668718419120925:1763924935010649378363197 1661271732035744036609218:84821397178869283619:1661345600112363405508579 3749884241368990540473737:11603040392161746269:3749884241444866775580125 7015231509895471210668618:73109481493314610149:7015296111786997184701423 3864907529198212165736481:830455618573042462817:3864907556502540467910753 3527166070700145647595833:904746210555079090617:3527479782505604548850105 5488418647544573319963511:375138627123015569994:5488419951372160580187007 4034983215002390242356446:1320625853474259720133:4035113999536119911153631 7119073977101752322760855:3216424736122861239913:7119850529451940283924223 1000824866763873939969206:1729811872542948094290:1001138809387805027169782 8463787036946671011957234:10406147674581123293717:8474118241331040810265591 3316702359946670552113013:72471824004714458957314:3321576049708087584481143 4794440044871473340909869:76499493541419455942365:4795325642870667759685629 2105442562455529075443673:477632418275538091005134:2408347341611519590225887 8090007398738831554496565:760763821382368653900969:8090469783461051810970813 4309141766858234052843316:975579807692814859795641:4679852187009949219946429 8932812874112985086775301:8415938972988077304979372:9632391106975588157448109 3896053940572653651590994:3114205475087367867583334:4512035258458328956534646 1811114968979185705256898:1054444704629004129657222:2416924689685061555840966 8704232963452904851383166:323:8704232963452904851383167 4764543418146310076786652:773:4764543418146310076786653 1529908777185478773884204:654:1529908777185478773884846 3971954989414542859084733:5845:3971954989414542859089917 4512190793660311907564513:8578:4512190793660311907564515 4176817866619564063867547:3047:4176817866619564063869951 9804825522215607014948798:50476:9804825522215607014981566 7258782234097798478278780:16121:7258782234097798478282493 7184683159840735633327797:86682:7184683159840735633331903 4202718494250674000355128:761038:4202718494250674001010686 2166223752878039389880625:878783:2166223752878039390742975 7262253588195015177765207:293477:7262253588195015177796471 7472325260807691803443311:4015813:7472325260807691806131951 1266131316542984107873839:9121902:1266131316542984116991599 9843677192304316260118634:9138374:9843677192304316260249838 1404086233198784795883966:83128203:1404086233198784864059327 3192974519226297379432166:47253030:3192974519226297380480742 5624924545141793422904469:83664534:5624924545141793437359767 2012075693591111594067038:929307238:2012075693591111900520062 3383002586327132839043684:135894113:3383002586327132839605861 2202601009093713199600862:321225368:2202601009093713216378590 2494212241770962740155571:5016981968:2494212241770967622850035 7793363675524599043576678:3059517340:7793363675524599648344062 3555922969312132205629311:2340857132:3555922969312134369898367 1197780673807021881148064:48334748102:1197780673807027262979046 6194477195355282423139475:62917784247:6194477195355300140940983 6641902116470373311886884:87998006810:6641902116470390559061566 9592068512342081705075770:307114660237:9592068512342360884508095 5063461470823711845599447:883143448705:5063461470824027561384151 2469064179123826568624189:754995873056:2469064179124436458208573 2927843717583560172749332:1571626015681:2927843717583599365381077 1093003382575541754549733:6713928791564:1093003382582152313403373 6926934546824526581251093:9352804007685:6926934546824533528018709 8939446019549107745077779:19701366721724:8939446019567705021955775 8983439925744982738708533:58879142609478:8983439925768677039401591 8654040771755573010600562:34912571826775:8654040771765743566566007 4080591859442954095680414:784887773115700:4080591860085894736773054 7084415868699901711008457:280879792730638:7084415868969700488114895 3816304892824097425209315:810254191141874:3816304893035615975487475 1883810202319817927437692:9157910729586735:1883810211467832720358783 6502825707420344138755589:7138148234434178:6502825709746924191383175 8610714112196853824863841:1295662745719395:8610714113351349367062115 5768932624809754630571035:54324226953976076:5768932625023644946291999 9149558630237292240659535:34269288702938103:9149558650818122882052095 8442246218554729417826729:87080957409448021:8442246223350435275043325 6253377620392830208946031:925551456249853559:6253378217137377468465023 1305562539298217548999681:290728968824309134:1305562541550036699475343 8924178013147953536726013:310264862803497780:8924178304756280742147069 8927732303552167501950976:2472633232911638522:8927734632054187781193722 1673377832489863701022828:8746830687025811145:1673377904745519216840429 8728487582666950286269888:5775727261451690946:8728488745019057830264770 1621873444872403138962863:27699869153527994242:1621873474449351829813167 7278782186112268220534012:45806637940473084102:7278789756736360427601150 8351120481355098532211102:21180810838450782633:8351120481372847493605823 4838734486839802022214126:482062231677204940183:4839216516120616657485311 7001232482714628214295369:428029948687356613861:7001345762339346382938093 4220259352469000397021974:425570663747121125525:4220609854721690911472535 8816852600425009966195683:9275003940609306599459:8821358508147740149523427 8266769252432094828319430:9963806158158331953243:8267064550191913561412319 1484847835086879152253867:7001595366704569097218:1489903143966095225110443 3346601564162522897962203:55079198263909457681038:3398554012259271078567647 5450513559019250274985471:37258041071949722143191:5477722587628362265783807 6853767317859955525276152:24040019076442510949074:6872657236548926508891130 3310074269987803464451519:369098198338063195946468:3621759834925715351404031 4304182662054377640260560:142715306783652243826931:4379897905217852921609203 3725340814683962573081655:580578421639037230616449:4226503696112372743262135 8530515100836674894543076:9938590820741917635579365:18431326556014643475627493 7362192610248933505337145:5254185540380219107046525:7705093947691132777265021 9766252907104914285128529:5982150183614180978359004:15672752956766826789469149 2553915423819831481669422:136:2553915423819831481669550 5654470294989716930508941:545:5654470294989716930509485 4267564336686077756314321:237:4267564336686077756314365 3575541447641874512643650:9418:3575541447641874512651978 1683294404940201511104459:3983:1683294404940201511104463 6538438379356911518016493:8821:6538438379356911518016509 3626124556030504322051685:37517:3626124556030504322055917 1869018002015347982213139:62397:1869018002015347982267327 4495016055521019665848235:85015:4495016055521019665932223 3440236160711359531685447:234989:3440236160711359531816943 8389563989597972473314469:761952:8389563989597972473838821 5809057825615272668025842:686892:5809057825615272668560382 5232556524706371235581641:1658311:5232556524706371236122575 7867798971781566918804478:2695379:7867798971781566920909823 6886025551829349313779361:5424561:6886025551829349313796017 2267333246743618864829479:95008320:2267333246743618948822631 4922900157092936371385305:28287595:4922900157092936388948987 8512682154737109229535079:22411038:8512682154737109234089855 6160396706453333588376542:953426221:6160396706453333726788607 7779423196955532633718442:173079381:7779423196955532668370943 9672670885275514649562819:795711540:9672670885275515323539191 1702300837627458639688301:3032446790:1702300837627459255924591 6548374550967408202038321:2866108027:6548374550967410392792699 1856727285097010843055100:4862009107:1856727285097015154802687 9421080177926820511903690:13176282570:9421080177926824829812682 5537994750574180527740571:25527864164:5537994750574199066583039 6172244032617354138465407:15707722323:6172244032617360719345279 2087869040819608546636941:401892936833:2087869040819973662964877 6532515817232497926529580:103070568985:6532515817232572367041085 8423292699046764313269576:417753783017:8423292699047180925132777 6949966703564622784004080:2125529325580:6949966703566436357111804 2911743249874124033316962:3353945717866:2911743249874143437356138 6595332311567653226156787:5782976164241:6595332311573436133372915 8790826302877250442941733:42662320155079:8790826302883882147184103 5127845305632895928210484:60669828934376:5127845305675918667136764 6160725092274467777173966:60109018386804:6160725092292618444233214 4909789382724742346001583:871902059443650:4909789383587706569588207 1276334167934064597724469:443855022260209:1276334168092553335734261 9164194603447151917019941:144171407932048:9164194603447156237826997 7149153403959358101303854:5548475176486807:7149153404416759430559679 3126187935119527249159520:2797201295279655:3126187935225089048684391 5457668589334762277904342:7188093451730534:5457668589345207839719414 1079897690857940706584941:11012827964764308:1079897701307707807496701 1687164725096176623857035:73044551172118362:1687164797858012379021275 1220265706528857508713768:36328247193498776:1220265706529166964815288 4239863478964261817932775:824978497516390433:4239864218127526002678759 6255728272471839379281371:939855008801756641:6255728849778282084685307 5795380655346055177042822:182057887473902949:5795380693279348327186407 7011652661392776870420809:1706265688954142148:7011652962253322580852173 7045243731614982414818188:7978690731981023579:7045243889241175602658271 1501526739236284141913783:3626316949606837085:1501528036910716654710783 6150332655304493231918705:11369950908000401471:6150342761947241339846271 7831783146983643105110541:90262892773146196249:7831859529166490979793693 4023849551703232921267551:47335453139844577272:4023895722618157596016639 9483687895488908808250532:109273171914163564107:9483691084047066046754543 3526900324373234129814951:525089734262333553585:3526979949511357596434359 9895006619726180252954857:572648390114487120110:9895117950473447201419503 6989005350943284011151379:8338464539500994551589:6989079300055832048172855 2616054841774543230334068:1116418388379783975933:2616128629349114179352573 2914876226245157237239686:8432771307267083056657:2918420610099042553151383 7863834087095163570399468:48318718423931952771413:7911058916914703901899261 3195095848636074870084414:33164362599447028811923:3209290746589459336649663 5022473809406668957333353:20530307694755742854784:5023951999139272911077353 8560245373598503705534130:631671908683302364513568:9170611247792292356972466 8312899695437852843696740:156751030451596562374500:8318217942200290814984036 6997261273981990245209880:956213307370785998966372:7007962997844168771870588 2629507355561592822469834:1107036641528199719019852:3546459443397357248837070 8902936765561581642278240:6267403414727288147696288:9064245810386173647486944 6308580797918111301695060:1005863180279969984247751:7215775692974285273429975 Math-BigInt-2.005003/xt/author/lib-bitwise-_or.t0000644403072340010010000001253714536617520021066 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 35945; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_or'); my @data; # Small numbers. for (my $x = 0; $x <= 64 ; ++ $x) { for (my $y = 0; $y <= 64 ; ++ $y) { push @data, [ $x, $y, $x | $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_or(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_or() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg") } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_or(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_or() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg") } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-bitwise-_sand.dat0000644403072340010010000060747414505066136021707 0ustar OSPJADomain Users# Small values 0:+:0:+:0:+ 0:+:1:+:0:+ 0:+:1:-:0:+ 0:+:2:+:0:+ 0:+:2:-:0:+ 0:+:3:+:0:+ 0:+:3:-:0:+ 0:+:4:+:0:+ 0:+:4:-:0:+ 1:+:0:+:0:+ 1:-:0:+:0:+ 1:+:1:+:1:+ 1:+:1:-:1:+ 1:-:1:+:1:+ 1:-:1:-:1:- 1:+:2:+:0:+ 1:+:2:-:0:+ 1:-:2:+:2:+ 1:-:2:-:2:- 1:+:3:+:1:+ 1:+:3:-:1:+ 1:-:3:+:3:+ 1:-:3:-:3:- 1:+:4:+:0:+ 1:+:4:-:0:+ 1:-:4:+:4:+ 1:-:4:-:4:- 2:+:0:+:0:+ 2:-:0:+:0:+ 2:+:1:+:0:+ 2:+:1:-:2:+ 2:-:1:+:0:+ 2:-:1:-:2:- 2:+:2:+:2:+ 2:+:2:-:2:+ 2:-:2:+:2:+ 2:-:2:-:2:- 2:+:3:+:2:+ 2:+:3:-:0:+ 2:-:3:+:2:+ 2:-:3:-:4:- 2:+:4:+:0:+ 2:+:4:-:0:+ 2:-:4:+:4:+ 2:-:4:-:4:- 3:+:0:+:0:+ 3:-:0:+:0:+ 3:+:1:+:1:+ 3:+:1:-:3:+ 3:-:1:+:1:+ 3:-:1:-:3:- 3:+:2:+:2:+ 3:+:2:-:2:+ 3:-:2:+:0:+ 3:-:2:-:4:- 3:+:3:+:3:+ 3:+:3:-:1:+ 3:-:3:+:1:+ 3:-:3:-:3:- 3:+:4:+:0:+ 3:+:4:-:0:+ 3:-:4:+:4:+ 3:-:4:-:4:- 4:+:0:+:0:+ 4:-:0:+:0:+ 4:+:1:+:0:+ 4:+:1:-:4:+ 4:-:1:+:0:+ 4:-:1:-:4:- 4:+:2:+:0:+ 4:+:2:-:4:+ 4:-:2:+:0:+ 4:-:2:-:4:- 4:+:3:+:0:+ 4:+:3:-:4:+ 4:-:3:+:0:+ 4:-:3:-:4:- 4:+:4:+:4:+ 4:+:4:-:4:+ 4:-:4:+:4:+ 4:-:4:-:4:- # Values close to powers of 8 0:+:0:+:0:+ 0:+:1:+:0:+ 0:+:1:-:0:+ 0:+:2:+:0:+ 0:+:2:-:0:+ 0:+:3:+:0:+ 0:+:3:-:0:+ 0:+:4:+:0:+ 0:+:4:-:0:+ 0:+:64:+:0:+ 0:+:64:-:0:+ 0:+:128:+:0:+ 0:+:128:-:0:+ 0:+:256:+:0:+ 0:+:256:-:0:+ 0:+:512:+:0:+ 0:+:512:-:0:+ 0:+:16384:+:0:+ 0:+:16384:-:0:+ 0:+:32768:+:0:+ 0:+:32768:-:0:+ 0:+:65536:+:0:+ 0:+:65536:-:0:+ 0:+:131072:+:0:+ 0:+:131072:-:0:+ 0:+:4194304:+:0:+ 0:+:4194304:-:0:+ 0:+:8388608:+:0:+ 0:+:8388608:-:0:+ 0:+:16777216:+:0:+ 0:+:16777216:-:0:+ 0:+:33554432:+:0:+ 0:+:33554432:-:0:+ 0:+:1073741824:+:0:+ 0:+:1073741824:-:0:+ 0:+:2147483648:+:0:+ 0:+:2147483648:-:0:+ 0:+:4294967296:+:0:+ 0:+:4294967296:-:0:+ 0:+:8589934592:+:0:+ 0:+:8589934592:-:0:+ 0:+:274877906944:+:0:+ 0:+:274877906944:-:0:+ 0:+:549755813888:+:0:+ 0:+:549755813888:-:0:+ 0:+:1099511627776:+:0:+ 0:+:1099511627776:-:0:+ 0:+:2199023255552:+:0:+ 0:+:2199023255552:-:0:+ 0:+:70368744177664:+:0:+ 0:+:70368744177664:-:0:+ 0:+:140737488355328:+:0:+ 0:+:140737488355328:-:0:+ 0:+:281474976710656:+:0:+ 0:+:281474976710656:-:0:+ 0:+:562949953421312:+:0:+ 0:+:562949953421312:-:0:+ 0:+:18014398509481984:+:0:+ 0:+:18014398509481984:-:0:+ 0:+:36028797018963968:+:0:+ 0:+:36028797018963968:-:0:+ 0:+:72057594037927936:+:0:+ 0:+:72057594037927936:-:0:+ 0:+:144115188075855872:+:0:+ 0:+:144115188075855872:-:0:+ 1:+:0:+:0:+ 1:-:0:+:0:+ 1:+:1:+:1:+ 1:+:1:-:1:+ 1:-:1:+:1:+ 1:-:1:-:1:- 1:+:2:+:0:+ 1:+:2:-:0:+ 1:-:2:+:2:+ 1:-:2:-:2:- 1:+:3:+:1:+ 1:+:3:-:1:+ 1:-:3:+:3:+ 1:-:3:-:3:- 1:+:4:+:0:+ 1:+:4:-:0:+ 1:-:4:+:4:+ 1:-:4:-:4:- 1:+:64:+:0:+ 1:+:64:-:0:+ 1:-:64:+:64:+ 1:-:64:-:64:- 1:+:128:+:0:+ 1:+:128:-:0:+ 1:-:128:+:128:+ 1:-:128:-:128:- 1:+:256:+:0:+ 1:+:256:-:0:+ 1:-:256:+:256:+ 1:-:256:-:256:- 1:+:512:+:0:+ 1:+:512:-:0:+ 1:-:512:+:512:+ 1:-:512:-:512:- 1:+:16384:+:0:+ 1:+:16384:-:0:+ 1:-:16384:+:16384:+ 1:-:16384:-:16384:- 1:+:32768:+:0:+ 1:+:32768:-:0:+ 1:-:32768:+:32768:+ 1:-:32768:-:32768:- 1:+:65536:+:0:+ 1:+:65536:-:0:+ 1:-:65536:+:65536:+ 1:-:65536:-:65536:- 1:+:131072:+:0:+ 1:+:131072:-:0:+ 1:-:131072:+:131072:+ 1:-:131072:-:131072:- 1:+:4194304:+:0:+ 1:+:4194304:-:0:+ 1:-:4194304:+:4194304:+ 1:-:4194304:-:4194304:- 1:+:8388608:+:0:+ 1:+:8388608:-:0:+ 1:-:8388608:+:8388608:+ 1:-:8388608:-:8388608:- 1:+:16777216:+:0:+ 1:+:16777216:-:0:+ 1:-:16777216:+:16777216:+ 1:-:16777216:-:16777216:- 1:+:33554432:+:0:+ 1:+:33554432:-:0:+ 1:-:33554432:+:33554432:+ 1:-:33554432:-:33554432:- 1:+:1073741824:+:0:+ 1:+:1073741824:-:0:+ 1:-:1073741824:+:1073741824:+ 1:-:1073741824:-:1073741824:- 1:+:2147483648:+:0:+ 1:+:2147483648:-:0:+ 1:-:2147483648:+:2147483648:+ 1:-:2147483648:-:2147483648:- 1:+:4294967296:+:0:+ 1:+:4294967296:-:0:+ 1:-:4294967296:+:4294967296:+ 1:-:4294967296:-:4294967296:- 1:+:8589934592:+:0:+ 1:+:8589934592:-:0:+ 1:-:8589934592:+:8589934592:+ 1:-:8589934592:-:8589934592:- 1:+:274877906944:+:0:+ 1:+:274877906944:-:0:+ 1:-:274877906944:+:274877906944:+ 1:-:274877906944:-:274877906944:- 1:+:549755813888:+:0:+ 1:+:549755813888:-:0:+ 1:-:549755813888:+:549755813888:+ 1:-:549755813888:-:549755813888:- 1:+:1099511627776:+:0:+ 1:+:1099511627776:-:0:+ 1:-:1099511627776:+:1099511627776:+ 1:-:1099511627776:-:1099511627776:- 1:+:2199023255552:+:0:+ 1:+:2199023255552:-:0:+ 1:-:2199023255552:+:2199023255552:+ 1:-:2199023255552:-:2199023255552:- 1:+:70368744177664:+:0:+ 1:+:70368744177664:-:0:+ 1:-:70368744177664:+:70368744177664:+ 1:-:70368744177664:-:70368744177664:- 1:+:140737488355328:+:0:+ 1:+:140737488355328:-:0:+ 1:-:140737488355328:+:140737488355328:+ 1:-:140737488355328:-:140737488355328:- 1:+:281474976710656:+:0:+ 1:+:281474976710656:-:0:+ 1:-:281474976710656:+:281474976710656:+ 1:-:281474976710656:-:281474976710656:- 1:+:562949953421312:+:0:+ 1:+:562949953421312:-:0:+ 1:-:562949953421312:+:562949953421312:+ 1:-:562949953421312:-:562949953421312:- 1:+:18014398509481984:+:0:+ 1:+:18014398509481984:-:0:+ 1:-:18014398509481984:+:18014398509481984:+ 1:-:18014398509481984:-:18014398509481984:- 1:+:36028797018963968:+:0:+ 1:+:36028797018963968:-:0:+ 1:-:36028797018963968:+:36028797018963968:+ 1:-:36028797018963968:-:36028797018963968:- 1:+:72057594037927936:+:0:+ 1:+:72057594037927936:-:0:+ 1:-:72057594037927936:+:72057594037927936:+ 1:-:72057594037927936:-:72057594037927936:- 1:+:144115188075855872:+:0:+ 1:+:144115188075855872:-:0:+ 1:-:144115188075855872:+:144115188075855872:+ 1:-:144115188075855872:-:144115188075855872:- 2:+:0:+:0:+ 2:-:0:+:0:+ 2:+:1:+:0:+ 2:+:1:-:2:+ 2:-:1:+:0:+ 2:-:1:-:2:- 2:+:2:+:2:+ 2:+:2:-:2:+ 2:-:2:+:2:+ 2:-:2:-:2:- 2:+:3:+:2:+ 2:+:3:-:0:+ 2:-:3:+:2:+ 2:-:3:-:4:- 2:+:4:+:0:+ 2:+:4:-:0:+ 2:-:4:+:4:+ 2:-:4:-:4:- 2:+:64:+:0:+ 2:+:64:-:0:+ 2:-:64:+:64:+ 2:-:64:-:64:- 2:+:128:+:0:+ 2:+:128:-:0:+ 2:-:128:+:128:+ 2:-:128:-:128:- 2:+:256:+:0:+ 2:+:256:-:0:+ 2:-:256:+:256:+ 2:-:256:-:256:- 2:+:512:+:0:+ 2:+:512:-:0:+ 2:-:512:+:512:+ 2:-:512:-:512:- 2:+:16384:+:0:+ 2:+:16384:-:0:+ 2:-:16384:+:16384:+ 2:-:16384:-:16384:- 2:+:32768:+:0:+ 2:+:32768:-:0:+ 2:-:32768:+:32768:+ 2:-:32768:-:32768:- 2:+:65536:+:0:+ 2:+:65536:-:0:+ 2:-:65536:+:65536:+ 2:-:65536:-:65536:- 2:+:131072:+:0:+ 2:+:131072:-:0:+ 2:-:131072:+:131072:+ 2:-:131072:-:131072:- 2:+:4194304:+:0:+ 2:+:4194304:-:0:+ 2:-:4194304:+:4194304:+ 2:-:4194304:-:4194304:- 2:+:8388608:+:0:+ 2:+:8388608:-:0:+ 2:-:8388608:+:8388608:+ 2:-:8388608:-:8388608:- 2:+:16777216:+:0:+ 2:+:16777216:-:0:+ 2:-:16777216:+:16777216:+ 2:-:16777216:-:16777216:- 2:+:33554432:+:0:+ 2:+:33554432:-:0:+ 2:-:33554432:+:33554432:+ 2:-:33554432:-:33554432:- 2:+:1073741824:+:0:+ 2:+:1073741824:-:0:+ 2:-:1073741824:+:1073741824:+ 2:-:1073741824:-:1073741824:- 2:+:2147483648:+:0:+ 2:+:2147483648:-:0:+ 2:-:2147483648:+:2147483648:+ 2:-:2147483648:-:2147483648:- 2:+:4294967296:+:0:+ 2:+:4294967296:-:0:+ 2:-:4294967296:+:4294967296:+ 2:-:4294967296:-:4294967296:- 2:+:8589934592:+:0:+ 2:+:8589934592:-:0:+ 2:-:8589934592:+:8589934592:+ 2:-:8589934592:-:8589934592:- 2:+:274877906944:+:0:+ 2:+:274877906944:-:0:+ 2:-:274877906944:+:274877906944:+ 2:-:274877906944:-:274877906944:- 2:+:549755813888:+:0:+ 2:+:549755813888:-:0:+ 2:-:549755813888:+:549755813888:+ 2:-:549755813888:-:549755813888:- 2:+:1099511627776:+:0:+ 2:+:1099511627776:-:0:+ 2:-:1099511627776:+:1099511627776:+ 2:-:1099511627776:-:1099511627776:- 2:+:2199023255552:+:0:+ 2:+:2199023255552:-:0:+ 2:-:2199023255552:+:2199023255552:+ 2:-:2199023255552:-:2199023255552:- 2:+:70368744177664:+:0:+ 2:+:70368744177664:-:0:+ 2:-:70368744177664:+:70368744177664:+ 2:-:70368744177664:-:70368744177664:- 2:+:140737488355328:+:0:+ 2:+:140737488355328:-:0:+ 2:-:140737488355328:+:140737488355328:+ 2:-:140737488355328:-:140737488355328:- 2:+:281474976710656:+:0:+ 2:+:281474976710656:-:0:+ 2:-:281474976710656:+:281474976710656:+ 2:-:281474976710656:-:281474976710656:- 2:+:562949953421312:+:0:+ 2:+:562949953421312:-:0:+ 2:-:562949953421312:+:562949953421312:+ 2:-:562949953421312:-:562949953421312:- 2:+:18014398509481984:+:0:+ 2:+:18014398509481984:-:0:+ 2:-:18014398509481984:+:18014398509481984:+ 2:-:18014398509481984:-:18014398509481984:- 2:+:36028797018963968:+:0:+ 2:+:36028797018963968:-:0:+ 2:-:36028797018963968:+:36028797018963968:+ 2:-:36028797018963968:-:36028797018963968:- 2:+:72057594037927936:+:0:+ 2:+:72057594037927936:-:0:+ 2:-:72057594037927936:+:72057594037927936:+ 2:-:72057594037927936:-:72057594037927936:- 2:+:144115188075855872:+:0:+ 2:+:144115188075855872:-:0:+ 2:-:144115188075855872:+:144115188075855872:+ 2:-:144115188075855872:-:144115188075855872:- 3:+:0:+:0:+ 3:-:0:+:0:+ 3:+:1:+:1:+ 3:+:1:-:3:+ 3:-:1:+:1:+ 3:-:1:-:3:- 3:+:2:+:2:+ 3:+:2:-:2:+ 3:-:2:+:0:+ 3:-:2:-:4:- 3:+:3:+:3:+ 3:+:3:-:1:+ 3:-:3:+:1:+ 3:-:3:-:3:- 3:+:4:+:0:+ 3:+:4:-:0:+ 3:-:4:+:4:+ 3:-:4:-:4:- 3:+:64:+:0:+ 3:+:64:-:0:+ 3:-:64:+:64:+ 3:-:64:-:64:- 3:+:128:+:0:+ 3:+:128:-:0:+ 3:-:128:+:128:+ 3:-:128:-:128:- 3:+:256:+:0:+ 3:+:256:-:0:+ 3:-:256:+:256:+ 3:-:256:-:256:- 3:+:512:+:0:+ 3:+:512:-:0:+ 3:-:512:+:512:+ 3:-:512:-:512:- 3:+:16384:+:0:+ 3:+:16384:-:0:+ 3:-:16384:+:16384:+ 3:-:16384:-:16384:- 3:+:32768:+:0:+ 3:+:32768:-:0:+ 3:-:32768:+:32768:+ 3:-:32768:-:32768:- 3:+:65536:+:0:+ 3:+:65536:-:0:+ 3:-:65536:+:65536:+ 3:-:65536:-:65536:- 3:+:131072:+:0:+ 3:+:131072:-:0:+ 3:-:131072:+:131072:+ 3:-:131072:-:131072:- 3:+:4194304:+:0:+ 3:+:4194304:-:0:+ 3:-:4194304:+:4194304:+ 3:-:4194304:-:4194304:- 3:+:8388608:+:0:+ 3:+:8388608:-:0:+ 3:-:8388608:+:8388608:+ 3:-:8388608:-:8388608:- 3:+:16777216:+:0:+ 3:+:16777216:-:0:+ 3:-:16777216:+:16777216:+ 3:-:16777216:-:16777216:- 3:+:33554432:+:0:+ 3:+:33554432:-:0:+ 3:-:33554432:+:33554432:+ 3:-:33554432:-:33554432:- 3:+:1073741824:+:0:+ 3:+:1073741824:-:0:+ 3:-:1073741824:+:1073741824:+ 3:-:1073741824:-:1073741824:- 3:+:2147483648:+:0:+ 3:+:2147483648:-:0:+ 3:-:2147483648:+:2147483648:+ 3:-:2147483648:-:2147483648:- 3:+:4294967296:+:0:+ 3:+:4294967296:-:0:+ 3:-:4294967296:+:4294967296:+ 3:-:4294967296:-:4294967296:- 3:+:8589934592:+:0:+ 3:+:8589934592:-:0:+ 3:-:8589934592:+:8589934592:+ 3:-:8589934592:-:8589934592:- 3:+:274877906944:+:0:+ 3:+:274877906944:-:0:+ 3:-:274877906944:+:274877906944:+ 3:-:274877906944:-:274877906944:- 3:+:549755813888:+:0:+ 3:+:549755813888:-:0:+ 3:-:549755813888:+:549755813888:+ 3:-:549755813888:-:549755813888:- 3:+:1099511627776:+:0:+ 3:+:1099511627776:-:0:+ 3:-:1099511627776:+:1099511627776:+ 3:-:1099511627776:-:1099511627776:- 3:+:2199023255552:+:0:+ 3:+:2199023255552:-:0:+ 3:-:2199023255552:+:2199023255552:+ 3:-:2199023255552:-:2199023255552:- 3:+:70368744177664:+:0:+ 3:+:70368744177664:-:0:+ 3:-:70368744177664:+:70368744177664:+ 3:-:70368744177664:-:70368744177664:- 3:+:140737488355328:+:0:+ 3:+:140737488355328:-:0:+ 3:-:140737488355328:+:140737488355328:+ 3:-:140737488355328:-:140737488355328:- 3:+:281474976710656:+:0:+ 3:+:281474976710656:-:0:+ 3:-:281474976710656:+:281474976710656:+ 3:-:281474976710656:-:281474976710656:- 3:+:562949953421312:+:0:+ 3:+:562949953421312:-:0:+ 3:-:562949953421312:+:562949953421312:+ 3:-:562949953421312:-:562949953421312:- 3:+:18014398509481984:+:0:+ 3:+:18014398509481984:-:0:+ 3:-:18014398509481984:+:18014398509481984:+ 3:-:18014398509481984:-:18014398509481984:- 3:+:36028797018963968:+:0:+ 3:+:36028797018963968:-:0:+ 3:-:36028797018963968:+:36028797018963968:+ 3:-:36028797018963968:-:36028797018963968:- 3:+:72057594037927936:+:0:+ 3:+:72057594037927936:-:0:+ 3:-:72057594037927936:+:72057594037927936:+ 3:-:72057594037927936:-:72057594037927936:- 3:+:144115188075855872:+:0:+ 3:+:144115188075855872:-:0:+ 3:-:144115188075855872:+:144115188075855872:+ 3:-:144115188075855872:-:144115188075855872:- 4:+:0:+:0:+ 4:-:0:+:0:+ 4:+:1:+:0:+ 4:+:1:-:4:+ 4:-:1:+:0:+ 4:-:1:-:4:- 4:+:2:+:0:+ 4:+:2:-:4:+ 4:-:2:+:0:+ 4:-:2:-:4:- 4:+:3:+:0:+ 4:+:3:-:4:+ 4:-:3:+:0:+ 4:-:3:-:4:- 4:+:4:+:4:+ 4:+:4:-:4:+ 4:-:4:+:4:+ 4:-:4:-:4:- 4:+:64:+:0:+ 4:+:64:-:0:+ 4:-:64:+:64:+ 4:-:64:-:64:- 4:+:128:+:0:+ 4:+:128:-:0:+ 4:-:128:+:128:+ 4:-:128:-:128:- 4:+:256:+:0:+ 4:+:256:-:0:+ 4:-:256:+:256:+ 4:-:256:-:256:- 4:+:512:+:0:+ 4:+:512:-:0:+ 4:-:512:+:512:+ 4:-:512:-:512:- 4:+:16384:+:0:+ 4:+:16384:-:0:+ 4:-:16384:+:16384:+ 4:-:16384:-:16384:- 4:+:32768:+:0:+ 4:+:32768:-:0:+ 4:-:32768:+:32768:+ 4:-:32768:-:32768:- 4:+:65536:+:0:+ 4:+:65536:-:0:+ 4:-:65536:+:65536:+ 4:-:65536:-:65536:- 4:+:131072:+:0:+ 4:+:131072:-:0:+ 4:-:131072:+:131072:+ 4:-:131072:-:131072:- 4:+:4194304:+:0:+ 4:+:4194304:-:0:+ 4:-:4194304:+:4194304:+ 4:-:4194304:-:4194304:- 4:+:8388608:+:0:+ 4:+:8388608:-:0:+ 4:-:8388608:+:8388608:+ 4:-:8388608:-:8388608:- 4:+:16777216:+:0:+ 4:+:16777216:-:0:+ 4:-:16777216:+:16777216:+ 4:-:16777216:-:16777216:- 4:+:33554432:+:0:+ 4:+:33554432:-:0:+ 4:-:33554432:+:33554432:+ 4:-:33554432:-:33554432:- 4:+:1073741824:+:0:+ 4:+:1073741824:-:0:+ 4:-:1073741824:+:1073741824:+ 4:-:1073741824:-:1073741824:- 4:+:2147483648:+:0:+ 4:+:2147483648:-:0:+ 4:-:2147483648:+:2147483648:+ 4:-:2147483648:-:2147483648:- 4:+:4294967296:+:0:+ 4:+:4294967296:-:0:+ 4:-:4294967296:+:4294967296:+ 4:-:4294967296:-:4294967296:- 4:+:8589934592:+:0:+ 4:+:8589934592:-:0:+ 4:-:8589934592:+:8589934592:+ 4:-:8589934592:-:8589934592:- 4:+:274877906944:+:0:+ 4:+:274877906944:-:0:+ 4:-:274877906944:+:274877906944:+ 4:-:274877906944:-:274877906944:- 4:+:549755813888:+:0:+ 4:+:549755813888:-:0:+ 4:-:549755813888:+:549755813888:+ 4:-:549755813888:-:549755813888:- 4:+:1099511627776:+:0:+ 4:+:1099511627776:-:0:+ 4:-:1099511627776:+:1099511627776:+ 4:-:1099511627776:-:1099511627776:- 4:+:2199023255552:+:0:+ 4:+:2199023255552:-:0:+ 4:-:2199023255552:+:2199023255552:+ 4:-:2199023255552:-:2199023255552:- 4:+:70368744177664:+:0:+ 4:+:70368744177664:-:0:+ 4:-:70368744177664:+:70368744177664:+ 4:-:70368744177664:-:70368744177664:- 4:+:140737488355328:+:0:+ 4:+:140737488355328:-:0:+ 4:-:140737488355328:+:140737488355328:+ 4:-:140737488355328:-:140737488355328:- 4:+:281474976710656:+:0:+ 4:+:281474976710656:-:0:+ 4:-:281474976710656:+:281474976710656:+ 4:-:281474976710656:-:281474976710656:- 4:+:562949953421312:+:0:+ 4:+:562949953421312:-:0:+ 4:-:562949953421312:+:562949953421312:+ 4:-:562949953421312:-:562949953421312:- 4:+:18014398509481984:+:0:+ 4:+:18014398509481984:-:0:+ 4:-:18014398509481984:+:18014398509481984:+ 4:-:18014398509481984:-:18014398509481984:- 4:+:36028797018963968:+:0:+ 4:+:36028797018963968:-:0:+ 4:-:36028797018963968:+:36028797018963968:+ 4:-:36028797018963968:-:36028797018963968:- 4:+:72057594037927936:+:0:+ 4:+:72057594037927936:-:0:+ 4:-:72057594037927936:+:72057594037927936:+ 4:-:72057594037927936:-:72057594037927936:- 4:+:144115188075855872:+:0:+ 4:+:144115188075855872:-:0:+ 4:-:144115188075855872:+:144115188075855872:+ 4:-:144115188075855872:-:144115188075855872:- 64:+:0:+:0:+ 64:-:0:+:0:+ 64:+:1:+:0:+ 64:+:1:-:64:+ 64:-:1:+:0:+ 64:-:1:-:64:- 64:+:2:+:0:+ 64:+:2:-:64:+ 64:-:2:+:0:+ 64:-:2:-:64:- 64:+:3:+:0:+ 64:+:3:-:64:+ 64:-:3:+:0:+ 64:-:3:-:64:- 64:+:4:+:0:+ 64:+:4:-:64:+ 64:-:4:+:0:+ 64:-:4:-:64:- 64:+:64:+:64:+ 64:+:64:-:64:+ 64:-:64:+:64:+ 64:-:64:-:64:- 64:+:128:+:0:+ 64:+:128:-:0:+ 64:-:128:+:128:+ 64:-:128:-:128:- 64:+:256:+:0:+ 64:+:256:-:0:+ 64:-:256:+:256:+ 64:-:256:-:256:- 64:+:512:+:0:+ 64:+:512:-:0:+ 64:-:512:+:512:+ 64:-:512:-:512:- 64:+:16384:+:0:+ 64:+:16384:-:0:+ 64:-:16384:+:16384:+ 64:-:16384:-:16384:- 64:+:32768:+:0:+ 64:+:32768:-:0:+ 64:-:32768:+:32768:+ 64:-:32768:-:32768:- 64:+:65536:+:0:+ 64:+:65536:-:0:+ 64:-:65536:+:65536:+ 64:-:65536:-:65536:- 64:+:131072:+:0:+ 64:+:131072:-:0:+ 64:-:131072:+:131072:+ 64:-:131072:-:131072:- 64:+:4194304:+:0:+ 64:+:4194304:-:0:+ 64:-:4194304:+:4194304:+ 64:-:4194304:-:4194304:- 64:+:8388608:+:0:+ 64:+:8388608:-:0:+ 64:-:8388608:+:8388608:+ 64:-:8388608:-:8388608:- 64:+:16777216:+:0:+ 64:+:16777216:-:0:+ 64:-:16777216:+:16777216:+ 64:-:16777216:-:16777216:- 64:+:33554432:+:0:+ 64:+:33554432:-:0:+ 64:-:33554432:+:33554432:+ 64:-:33554432:-:33554432:- 64:+:1073741824:+:0:+ 64:+:1073741824:-:0:+ 64:-:1073741824:+:1073741824:+ 64:-:1073741824:-:1073741824:- 64:+:2147483648:+:0:+ 64:+:2147483648:-:0:+ 64:-:2147483648:+:2147483648:+ 64:-:2147483648:-:2147483648:- 64:+:4294967296:+:0:+ 64:+:4294967296:-:0:+ 64:-:4294967296:+:4294967296:+ 64:-:4294967296:-:4294967296:- 64:+:8589934592:+:0:+ 64:+:8589934592:-:0:+ 64:-:8589934592:+:8589934592:+ 64:-:8589934592:-:8589934592:- 64:+:274877906944:+:0:+ 64:+:274877906944:-:0:+ 64:-:274877906944:+:274877906944:+ 64:-:274877906944:-:274877906944:- 64:+:549755813888:+:0:+ 64:+:549755813888:-:0:+ 64:-:549755813888:+:549755813888:+ 64:-:549755813888:-:549755813888:- 64:+:1099511627776:+:0:+ 64:+:1099511627776:-:0:+ 64:-:1099511627776:+:1099511627776:+ 64:-:1099511627776:-:1099511627776:- 64:+:2199023255552:+:0:+ 64:+:2199023255552:-:0:+ 64:-:2199023255552:+:2199023255552:+ 64:-:2199023255552:-:2199023255552:- 64:+:70368744177664:+:0:+ 64:+:70368744177664:-:0:+ 64:-:70368744177664:+:70368744177664:+ 64:-:70368744177664:-:70368744177664:- 64:+:140737488355328:+:0:+ 64:+:140737488355328:-:0:+ 64:-:140737488355328:+:140737488355328:+ 64:-:140737488355328:-:140737488355328:- 64:+:281474976710656:+:0:+ 64:+:281474976710656:-:0:+ 64:-:281474976710656:+:281474976710656:+ 64:-:281474976710656:-:281474976710656:- 64:+:562949953421312:+:0:+ 64:+:562949953421312:-:0:+ 64:-:562949953421312:+:562949953421312:+ 64:-:562949953421312:-:562949953421312:- 64:+:18014398509481984:+:0:+ 64:+:18014398509481984:-:0:+ 64:-:18014398509481984:+:18014398509481984:+ 64:-:18014398509481984:-:18014398509481984:- 64:+:36028797018963968:+:0:+ 64:+:36028797018963968:-:0:+ 64:-:36028797018963968:+:36028797018963968:+ 64:-:36028797018963968:-:36028797018963968:- 64:+:72057594037927936:+:0:+ 64:+:72057594037927936:-:0:+ 64:-:72057594037927936:+:72057594037927936:+ 64:-:72057594037927936:-:72057594037927936:- 64:+:144115188075855872:+:0:+ 64:+:144115188075855872:-:0:+ 64:-:144115188075855872:+:144115188075855872:+ 64:-:144115188075855872:-:144115188075855872:- 128:+:0:+:0:+ 128:-:0:+:0:+ 128:+:1:+:0:+ 128:+:1:-:128:+ 128:-:1:+:0:+ 128:-:1:-:128:- 128:+:2:+:0:+ 128:+:2:-:128:+ 128:-:2:+:0:+ 128:-:2:-:128:- 128:+:3:+:0:+ 128:+:3:-:128:+ 128:-:3:+:0:+ 128:-:3:-:128:- 128:+:4:+:0:+ 128:+:4:-:128:+ 128:-:4:+:0:+ 128:-:4:-:128:- 128:+:64:+:0:+ 128:+:64:-:128:+ 128:-:64:+:0:+ 128:-:64:-:128:- 128:+:128:+:128:+ 128:+:128:-:128:+ 128:-:128:+:128:+ 128:-:128:-:128:- 128:+:256:+:0:+ 128:+:256:-:0:+ 128:-:256:+:256:+ 128:-:256:-:256:- 128:+:512:+:0:+ 128:+:512:-:0:+ 128:-:512:+:512:+ 128:-:512:-:512:- 128:+:16384:+:0:+ 128:+:16384:-:0:+ 128:-:16384:+:16384:+ 128:-:16384:-:16384:- 128:+:32768:+:0:+ 128:+:32768:-:0:+ 128:-:32768:+:32768:+ 128:-:32768:-:32768:- 128:+:65536:+:0:+ 128:+:65536:-:0:+ 128:-:65536:+:65536:+ 128:-:65536:-:65536:- 128:+:131072:+:0:+ 128:+:131072:-:0:+ 128:-:131072:+:131072:+ 128:-:131072:-:131072:- 128:+:4194304:+:0:+ 128:+:4194304:-:0:+ 128:-:4194304:+:4194304:+ 128:-:4194304:-:4194304:- 128:+:8388608:+:0:+ 128:+:8388608:-:0:+ 128:-:8388608:+:8388608:+ 128:-:8388608:-:8388608:- 128:+:16777216:+:0:+ 128:+:16777216:-:0:+ 128:-:16777216:+:16777216:+ 128:-:16777216:-:16777216:- 128:+:33554432:+:0:+ 128:+:33554432:-:0:+ 128:-:33554432:+:33554432:+ 128:-:33554432:-:33554432:- 128:+:1073741824:+:0:+ 128:+:1073741824:-:0:+ 128:-:1073741824:+:1073741824:+ 128:-:1073741824:-:1073741824:- 128:+:2147483648:+:0:+ 128:+:2147483648:-:0:+ 128:-:2147483648:+:2147483648:+ 128:-:2147483648:-:2147483648:- 128:+:4294967296:+:0:+ 128:+:4294967296:-:0:+ 128:-:4294967296:+:4294967296:+ 128:-:4294967296:-:4294967296:- 128:+:8589934592:+:0:+ 128:+:8589934592:-:0:+ 128:-:8589934592:+:8589934592:+ 128:-:8589934592:-:8589934592:- 128:+:274877906944:+:0:+ 128:+:274877906944:-:0:+ 128:-:274877906944:+:274877906944:+ 128:-:274877906944:-:274877906944:- 128:+:549755813888:+:0:+ 128:+:549755813888:-:0:+ 128:-:549755813888:+:549755813888:+ 128:-:549755813888:-:549755813888:- 128:+:1099511627776:+:0:+ 128:+:1099511627776:-:0:+ 128:-:1099511627776:+:1099511627776:+ 128:-:1099511627776:-:1099511627776:- 128:+:2199023255552:+:0:+ 128:+:2199023255552:-:0:+ 128:-:2199023255552:+:2199023255552:+ 128:-:2199023255552:-:2199023255552:- 128:+:70368744177664:+:0:+ 128:+:70368744177664:-:0:+ 128:-:70368744177664:+:70368744177664:+ 128:-:70368744177664:-:70368744177664:- 128:+:140737488355328:+:0:+ 128:+:140737488355328:-:0:+ 128:-:140737488355328:+:140737488355328:+ 128:-:140737488355328:-:140737488355328:- 128:+:281474976710656:+:0:+ 128:+:281474976710656:-:0:+ 128:-:281474976710656:+:281474976710656:+ 128:-:281474976710656:-:281474976710656:- 128:+:562949953421312:+:0:+ 128:+:562949953421312:-:0:+ 128:-:562949953421312:+:562949953421312:+ 128:-:562949953421312:-:562949953421312:- 128:+:18014398509481984:+:0:+ 128:+:18014398509481984:-:0:+ 128:-:18014398509481984:+:18014398509481984:+ 128:-:18014398509481984:-:18014398509481984:- 128:+:36028797018963968:+:0:+ 128:+:36028797018963968:-:0:+ 128:-:36028797018963968:+:36028797018963968:+ 128:-:36028797018963968:-:36028797018963968:- 128:+:72057594037927936:+:0:+ 128:+:72057594037927936:-:0:+ 128:-:72057594037927936:+:72057594037927936:+ 128:-:72057594037927936:-:72057594037927936:- 128:+:144115188075855872:+:0:+ 128:+:144115188075855872:-:0:+ 128:-:144115188075855872:+:144115188075855872:+ 128:-:144115188075855872:-:144115188075855872:- 256:+:0:+:0:+ 256:-:0:+:0:+ 256:+:1:+:0:+ 256:+:1:-:256:+ 256:-:1:+:0:+ 256:-:1:-:256:- 256:+:2:+:0:+ 256:+:2:-:256:+ 256:-:2:+:0:+ 256:-:2:-:256:- 256:+:3:+:0:+ 256:+:3:-:256:+ 256:-:3:+:0:+ 256:-:3:-:256:- 256:+:4:+:0:+ 256:+:4:-:256:+ 256:-:4:+:0:+ 256:-:4:-:256:- 256:+:64:+:0:+ 256:+:64:-:256:+ 256:-:64:+:0:+ 256:-:64:-:256:- 256:+:128:+:0:+ 256:+:128:-:256:+ 256:-:128:+:0:+ 256:-:128:-:256:- 256:+:256:+:256:+ 256:+:256:-:256:+ 256:-:256:+:256:+ 256:-:256:-:256:- 256:+:512:+:0:+ 256:+:512:-:0:+ 256:-:512:+:512:+ 256:-:512:-:512:- 256:+:16384:+:0:+ 256:+:16384:-:0:+ 256:-:16384:+:16384:+ 256:-:16384:-:16384:- 256:+:32768:+:0:+ 256:+:32768:-:0:+ 256:-:32768:+:32768:+ 256:-:32768:-:32768:- 256:+:65536:+:0:+ 256:+:65536:-:0:+ 256:-:65536:+:65536:+ 256:-:65536:-:65536:- 256:+:131072:+:0:+ 256:+:131072:-:0:+ 256:-:131072:+:131072:+ 256:-:131072:-:131072:- 256:+:4194304:+:0:+ 256:+:4194304:-:0:+ 256:-:4194304:+:4194304:+ 256:-:4194304:-:4194304:- 256:+:8388608:+:0:+ 256:+:8388608:-:0:+ 256:-:8388608:+:8388608:+ 256:-:8388608:-:8388608:- 256:+:16777216:+:0:+ 256:+:16777216:-:0:+ 256:-:16777216:+:16777216:+ 256:-:16777216:-:16777216:- 256:+:33554432:+:0:+ 256:+:33554432:-:0:+ 256:-:33554432:+:33554432:+ 256:-:33554432:-:33554432:- 256:+:1073741824:+:0:+ 256:+:1073741824:-:0:+ 256:-:1073741824:+:1073741824:+ 256:-:1073741824:-:1073741824:- 256:+:2147483648:+:0:+ 256:+:2147483648:-:0:+ 256:-:2147483648:+:2147483648:+ 256:-:2147483648:-:2147483648:- 256:+:4294967296:+:0:+ 256:+:4294967296:-:0:+ 256:-:4294967296:+:4294967296:+ 256:-:4294967296:-:4294967296:- 256:+:8589934592:+:0:+ 256:+:8589934592:-:0:+ 256:-:8589934592:+:8589934592:+ 256:-:8589934592:-:8589934592:- 256:+:274877906944:+:0:+ 256:+:274877906944:-:0:+ 256:-:274877906944:+:274877906944:+ 256:-:274877906944:-:274877906944:- 256:+:549755813888:+:0:+ 256:+:549755813888:-:0:+ 256:-:549755813888:+:549755813888:+ 256:-:549755813888:-:549755813888:- 256:+:1099511627776:+:0:+ 256:+:1099511627776:-:0:+ 256:-:1099511627776:+:1099511627776:+ 256:-:1099511627776:-:1099511627776:- 256:+:2199023255552:+:0:+ 256:+:2199023255552:-:0:+ 256:-:2199023255552:+:2199023255552:+ 256:-:2199023255552:-:2199023255552:- 256:+:70368744177664:+:0:+ 256:+:70368744177664:-:0:+ 256:-:70368744177664:+:70368744177664:+ 256:-:70368744177664:-:70368744177664:- 256:+:140737488355328:+:0:+ 256:+:140737488355328:-:0:+ 256:-:140737488355328:+:140737488355328:+ 256:-:140737488355328:-:140737488355328:- 256:+:281474976710656:+:0:+ 256:+:281474976710656:-:0:+ 256:-:281474976710656:+:281474976710656:+ 256:-:281474976710656:-:281474976710656:- 256:+:562949953421312:+:0:+ 256:+:562949953421312:-:0:+ 256:-:562949953421312:+:562949953421312:+ 256:-:562949953421312:-:562949953421312:- 256:+:18014398509481984:+:0:+ 256:+:18014398509481984:-:0:+ 256:-:18014398509481984:+:18014398509481984:+ 256:-:18014398509481984:-:18014398509481984:- 256:+:36028797018963968:+:0:+ 256:+:36028797018963968:-:0:+ 256:-:36028797018963968:+:36028797018963968:+ 256:-:36028797018963968:-:36028797018963968:- 256:+:72057594037927936:+:0:+ 256:+:72057594037927936:-:0:+ 256:-:72057594037927936:+:72057594037927936:+ 256:-:72057594037927936:-:72057594037927936:- 256:+:144115188075855872:+:0:+ 256:+:144115188075855872:-:0:+ 256:-:144115188075855872:+:144115188075855872:+ 256:-:144115188075855872:-:144115188075855872:- 512:+:0:+:0:+ 512:-:0:+:0:+ 512:+:1:+:0:+ 512:+:1:-:512:+ 512:-:1:+:0:+ 512:-:1:-:512:- 512:+:2:+:0:+ 512:+:2:-:512:+ 512:-:2:+:0:+ 512:-:2:-:512:- 512:+:3:+:0:+ 512:+:3:-:512:+ 512:-:3:+:0:+ 512:-:3:-:512:- 512:+:4:+:0:+ 512:+:4:-:512:+ 512:-:4:+:0:+ 512:-:4:-:512:- 512:+:64:+:0:+ 512:+:64:-:512:+ 512:-:64:+:0:+ 512:-:64:-:512:- 512:+:128:+:0:+ 512:+:128:-:512:+ 512:-:128:+:0:+ 512:-:128:-:512:- 512:+:256:+:0:+ 512:+:256:-:512:+ 512:-:256:+:0:+ 512:-:256:-:512:- 512:+:512:+:512:+ 512:+:512:-:512:+ 512:-:512:+:512:+ 512:-:512:-:512:- 512:+:16384:+:0:+ 512:+:16384:-:0:+ 512:-:16384:+:16384:+ 512:-:16384:-:16384:- 512:+:32768:+:0:+ 512:+:32768:-:0:+ 512:-:32768:+:32768:+ 512:-:32768:-:32768:- 512:+:65536:+:0:+ 512:+:65536:-:0:+ 512:-:65536:+:65536:+ 512:-:65536:-:65536:- 512:+:131072:+:0:+ 512:+:131072:-:0:+ 512:-:131072:+:131072:+ 512:-:131072:-:131072:- 512:+:4194304:+:0:+ 512:+:4194304:-:0:+ 512:-:4194304:+:4194304:+ 512:-:4194304:-:4194304:- 512:+:8388608:+:0:+ 512:+:8388608:-:0:+ 512:-:8388608:+:8388608:+ 512:-:8388608:-:8388608:- 512:+:16777216:+:0:+ 512:+:16777216:-:0:+ 512:-:16777216:+:16777216:+ 512:-:16777216:-:16777216:- 512:+:33554432:+:0:+ 512:+:33554432:-:0:+ 512:-:33554432:+:33554432:+ 512:-:33554432:-:33554432:- 512:+:1073741824:+:0:+ 512:+:1073741824:-:0:+ 512:-:1073741824:+:1073741824:+ 512:-:1073741824:-:1073741824:- 512:+:2147483648:+:0:+ 512:+:2147483648:-:0:+ 512:-:2147483648:+:2147483648:+ 512:-:2147483648:-:2147483648:- 512:+:4294967296:+:0:+ 512:+:4294967296:-:0:+ 512:-:4294967296:+:4294967296:+ 512:-:4294967296:-:4294967296:- 512:+:8589934592:+:0:+ 512:+:8589934592:-:0:+ 512:-:8589934592:+:8589934592:+ 512:-:8589934592:-:8589934592:- 512:+:274877906944:+:0:+ 512:+:274877906944:-:0:+ 512:-:274877906944:+:274877906944:+ 512:-:274877906944:-:274877906944:- 512:+:549755813888:+:0:+ 512:+:549755813888:-:0:+ 512:-:549755813888:+:549755813888:+ 512:-:549755813888:-:549755813888:- 512:+:1099511627776:+:0:+ 512:+:1099511627776:-:0:+ 512:-:1099511627776:+:1099511627776:+ 512:-:1099511627776:-:1099511627776:- 512:+:2199023255552:+:0:+ 512:+:2199023255552:-:0:+ 512:-:2199023255552:+:2199023255552:+ 512:-:2199023255552:-:2199023255552:- 512:+:70368744177664:+:0:+ 512:+:70368744177664:-:0:+ 512:-:70368744177664:+:70368744177664:+ 512:-:70368744177664:-:70368744177664:- 512:+:140737488355328:+:0:+ 512:+:140737488355328:-:0:+ 512:-:140737488355328:+:140737488355328:+ 512:-:140737488355328:-:140737488355328:- 512:+:281474976710656:+:0:+ 512:+:281474976710656:-:0:+ 512:-:281474976710656:+:281474976710656:+ 512:-:281474976710656:-:281474976710656:- 512:+:562949953421312:+:0:+ 512:+:562949953421312:-:0:+ 512:-:562949953421312:+:562949953421312:+ 512:-:562949953421312:-:562949953421312:- 512:+:18014398509481984:+:0:+ 512:+:18014398509481984:-:0:+ 512:-:18014398509481984:+:18014398509481984:+ 512:-:18014398509481984:-:18014398509481984:- 512:+:36028797018963968:+:0:+ 512:+:36028797018963968:-:0:+ 512:-:36028797018963968:+:36028797018963968:+ 512:-:36028797018963968:-:36028797018963968:- 512:+:72057594037927936:+:0:+ 512:+:72057594037927936:-:0:+ 512:-:72057594037927936:+:72057594037927936:+ 512:-:72057594037927936:-:72057594037927936:- 512:+:144115188075855872:+:0:+ 512:+:144115188075855872:-:0:+ 512:-:144115188075855872:+:144115188075855872:+ 512:-:144115188075855872:-:144115188075855872:- 16384:+:0:+:0:+ 16384:-:0:+:0:+ 16384:+:1:+:0:+ 16384:+:1:-:16384:+ 16384:-:1:+:0:+ 16384:-:1:-:16384:- 16384:+:2:+:0:+ 16384:+:2:-:16384:+ 16384:-:2:+:0:+ 16384:-:2:-:16384:- 16384:+:3:+:0:+ 16384:+:3:-:16384:+ 16384:-:3:+:0:+ 16384:-:3:-:16384:- 16384:+:4:+:0:+ 16384:+:4:-:16384:+ 16384:-:4:+:0:+ 16384:-:4:-:16384:- 16384:+:64:+:0:+ 16384:+:64:-:16384:+ 16384:-:64:+:0:+ 16384:-:64:-:16384:- 16384:+:128:+:0:+ 16384:+:128:-:16384:+ 16384:-:128:+:0:+ 16384:-:128:-:16384:- 16384:+:256:+:0:+ 16384:+:256:-:16384:+ 16384:-:256:+:0:+ 16384:-:256:-:16384:- 16384:+:512:+:0:+ 16384:+:512:-:16384:+ 16384:-:512:+:0:+ 16384:-:512:-:16384:- 16384:+:16384:+:16384:+ 16384:+:16384:-:16384:+ 16384:-:16384:+:16384:+ 16384:-:16384:-:16384:- 16384:+:32768:+:0:+ 16384:+:32768:-:0:+ 16384:-:32768:+:32768:+ 16384:-:32768:-:32768:- 16384:+:65536:+:0:+ 16384:+:65536:-:0:+ 16384:-:65536:+:65536:+ 16384:-:65536:-:65536:- 16384:+:131072:+:0:+ 16384:+:131072:-:0:+ 16384:-:131072:+:131072:+ 16384:-:131072:-:131072:- 16384:+:4194304:+:0:+ 16384:+:4194304:-:0:+ 16384:-:4194304:+:4194304:+ 16384:-:4194304:-:4194304:- 16384:+:8388608:+:0:+ 16384:+:8388608:-:0:+ 16384:-:8388608:+:8388608:+ 16384:-:8388608:-:8388608:- 16384:+:16777216:+:0:+ 16384:+:16777216:-:0:+ 16384:-:16777216:+:16777216:+ 16384:-:16777216:-:16777216:- 16384:+:33554432:+:0:+ 16384:+:33554432:-:0:+ 16384:-:33554432:+:33554432:+ 16384:-:33554432:-:33554432:- 16384:+:1073741824:+:0:+ 16384:+:1073741824:-:0:+ 16384:-:1073741824:+:1073741824:+ 16384:-:1073741824:-:1073741824:- 16384:+:2147483648:+:0:+ 16384:+:2147483648:-:0:+ 16384:-:2147483648:+:2147483648:+ 16384:-:2147483648:-:2147483648:- 16384:+:4294967296:+:0:+ 16384:+:4294967296:-:0:+ 16384:-:4294967296:+:4294967296:+ 16384:-:4294967296:-:4294967296:- 16384:+:8589934592:+:0:+ 16384:+:8589934592:-:0:+ 16384:-:8589934592:+:8589934592:+ 16384:-:8589934592:-:8589934592:- 16384:+:274877906944:+:0:+ 16384:+:274877906944:-:0:+ 16384:-:274877906944:+:274877906944:+ 16384:-:274877906944:-:274877906944:- 16384:+:549755813888:+:0:+ 16384:+:549755813888:-:0:+ 16384:-:549755813888:+:549755813888:+ 16384:-:549755813888:-:549755813888:- 16384:+:1099511627776:+:0:+ 16384:+:1099511627776:-:0:+ 16384:-:1099511627776:+:1099511627776:+ 16384:-:1099511627776:-:1099511627776:- 16384:+:2199023255552:+:0:+ 16384:+:2199023255552:-:0:+ 16384:-:2199023255552:+:2199023255552:+ 16384:-:2199023255552:-:2199023255552:- 16384:+:70368744177664:+:0:+ 16384:+:70368744177664:-:0:+ 16384:-:70368744177664:+:70368744177664:+ 16384:-:70368744177664:-:70368744177664:- 16384:+:140737488355328:+:0:+ 16384:+:140737488355328:-:0:+ 16384:-:140737488355328:+:140737488355328:+ 16384:-:140737488355328:-:140737488355328:- 16384:+:281474976710656:+:0:+ 16384:+:281474976710656:-:0:+ 16384:-:281474976710656:+:281474976710656:+ 16384:-:281474976710656:-:281474976710656:- 16384:+:562949953421312:+:0:+ 16384:+:562949953421312:-:0:+ 16384:-:562949953421312:+:562949953421312:+ 16384:-:562949953421312:-:562949953421312:- 16384:+:18014398509481984:+:0:+ 16384:+:18014398509481984:-:0:+ 16384:-:18014398509481984:+:18014398509481984:+ 16384:-:18014398509481984:-:18014398509481984:- 16384:+:36028797018963968:+:0:+ 16384:+:36028797018963968:-:0:+ 16384:-:36028797018963968:+:36028797018963968:+ 16384:-:36028797018963968:-:36028797018963968:- 16384:+:72057594037927936:+:0:+ 16384:+:72057594037927936:-:0:+ 16384:-:72057594037927936:+:72057594037927936:+ 16384:-:72057594037927936:-:72057594037927936:- 16384:+:144115188075855872:+:0:+ 16384:+:144115188075855872:-:0:+ 16384:-:144115188075855872:+:144115188075855872:+ 16384:-:144115188075855872:-:144115188075855872:- 32768:+:0:+:0:+ 32768:-:0:+:0:+ 32768:+:1:+:0:+ 32768:+:1:-:32768:+ 32768:-:1:+:0:+ 32768:-:1:-:32768:- 32768:+:2:+:0:+ 32768:+:2:-:32768:+ 32768:-:2:+:0:+ 32768:-:2:-:32768:- 32768:+:3:+:0:+ 32768:+:3:-:32768:+ 32768:-:3:+:0:+ 32768:-:3:-:32768:- 32768:+:4:+:0:+ 32768:+:4:-:32768:+ 32768:-:4:+:0:+ 32768:-:4:-:32768:- 32768:+:64:+:0:+ 32768:+:64:-:32768:+ 32768:-:64:+:0:+ 32768:-:64:-:32768:- 32768:+:128:+:0:+ 32768:+:128:-:32768:+ 32768:-:128:+:0:+ 32768:-:128:-:32768:- 32768:+:256:+:0:+ 32768:+:256:-:32768:+ 32768:-:256:+:0:+ 32768:-:256:-:32768:- 32768:+:512:+:0:+ 32768:+:512:-:32768:+ 32768:-:512:+:0:+ 32768:-:512:-:32768:- 32768:+:16384:+:0:+ 32768:+:16384:-:32768:+ 32768:-:16384:+:0:+ 32768:-:16384:-:32768:- 32768:+:32768:+:32768:+ 32768:+:32768:-:32768:+ 32768:-:32768:+:32768:+ 32768:-:32768:-:32768:- 32768:+:65536:+:0:+ 32768:+:65536:-:0:+ 32768:-:65536:+:65536:+ 32768:-:65536:-:65536:- 32768:+:131072:+:0:+ 32768:+:131072:-:0:+ 32768:-:131072:+:131072:+ 32768:-:131072:-:131072:- 32768:+:4194304:+:0:+ 32768:+:4194304:-:0:+ 32768:-:4194304:+:4194304:+ 32768:-:4194304:-:4194304:- 32768:+:8388608:+:0:+ 32768:+:8388608:-:0:+ 32768:-:8388608:+:8388608:+ 32768:-:8388608:-:8388608:- 32768:+:16777216:+:0:+ 32768:+:16777216:-:0:+ 32768:-:16777216:+:16777216:+ 32768:-:16777216:-:16777216:- 32768:+:33554432:+:0:+ 32768:+:33554432:-:0:+ 32768:-:33554432:+:33554432:+ 32768:-:33554432:-:33554432:- 32768:+:1073741824:+:0:+ 32768:+:1073741824:-:0:+ 32768:-:1073741824:+:1073741824:+ 32768:-:1073741824:-:1073741824:- 32768:+:2147483648:+:0:+ 32768:+:2147483648:-:0:+ 32768:-:2147483648:+:2147483648:+ 32768:-:2147483648:-:2147483648:- 32768:+:4294967296:+:0:+ 32768:+:4294967296:-:0:+ 32768:-:4294967296:+:4294967296:+ 32768:-:4294967296:-:4294967296:- 32768:+:8589934592:+:0:+ 32768:+:8589934592:-:0:+ 32768:-:8589934592:+:8589934592:+ 32768:-:8589934592:-:8589934592:- 32768:+:274877906944:+:0:+ 32768:+:274877906944:-:0:+ 32768:-:274877906944:+:274877906944:+ 32768:-:274877906944:-:274877906944:- 32768:+:549755813888:+:0:+ 32768:+:549755813888:-:0:+ 32768:-:549755813888:+:549755813888:+ 32768:-:549755813888:-:549755813888:- 32768:+:1099511627776:+:0:+ 32768:+:1099511627776:-:0:+ 32768:-:1099511627776:+:1099511627776:+ 32768:-:1099511627776:-:1099511627776:- 32768:+:2199023255552:+:0:+ 32768:+:2199023255552:-:0:+ 32768:-:2199023255552:+:2199023255552:+ 32768:-:2199023255552:-:2199023255552:- 32768:+:70368744177664:+:0:+ 32768:+:70368744177664:-:0:+ 32768:-:70368744177664:+:70368744177664:+ 32768:-:70368744177664:-:70368744177664:- 32768:+:140737488355328:+:0:+ 32768:+:140737488355328:-:0:+ 32768:-:140737488355328:+:140737488355328:+ 32768:-:140737488355328:-:140737488355328:- 32768:+:281474976710656:+:0:+ 32768:+:281474976710656:-:0:+ 32768:-:281474976710656:+:281474976710656:+ 32768:-:281474976710656:-:281474976710656:- 32768:+:562949953421312:+:0:+ 32768:+:562949953421312:-:0:+ 32768:-:562949953421312:+:562949953421312:+ 32768:-:562949953421312:-:562949953421312:- 32768:+:18014398509481984:+:0:+ 32768:+:18014398509481984:-:0:+ 32768:-:18014398509481984:+:18014398509481984:+ 32768:-:18014398509481984:-:18014398509481984:- 32768:+:36028797018963968:+:0:+ 32768:+:36028797018963968:-:0:+ 32768:-:36028797018963968:+:36028797018963968:+ 32768:-:36028797018963968:-:36028797018963968:- 32768:+:72057594037927936:+:0:+ 32768:+:72057594037927936:-:0:+ 32768:-:72057594037927936:+:72057594037927936:+ 32768:-:72057594037927936:-:72057594037927936:- 32768:+:144115188075855872:+:0:+ 32768:+:144115188075855872:-:0:+ 32768:-:144115188075855872:+:144115188075855872:+ 32768:-:144115188075855872:-:144115188075855872:- 65536:+:0:+:0:+ 65536:-:0:+:0:+ 65536:+:1:+:0:+ 65536:+:1:-:65536:+ 65536:-:1:+:0:+ 65536:-:1:-:65536:- 65536:+:2:+:0:+ 65536:+:2:-:65536:+ 65536:-:2:+:0:+ 65536:-:2:-:65536:- 65536:+:3:+:0:+ 65536:+:3:-:65536:+ 65536:-:3:+:0:+ 65536:-:3:-:65536:- 65536:+:4:+:0:+ 65536:+:4:-:65536:+ 65536:-:4:+:0:+ 65536:-:4:-:65536:- 65536:+:64:+:0:+ 65536:+:64:-:65536:+ 65536:-:64:+:0:+ 65536:-:64:-:65536:- 65536:+:128:+:0:+ 65536:+:128:-:65536:+ 65536:-:128:+:0:+ 65536:-:128:-:65536:- 65536:+:256:+:0:+ 65536:+:256:-:65536:+ 65536:-:256:+:0:+ 65536:-:256:-:65536:- 65536:+:512:+:0:+ 65536:+:512:-:65536:+ 65536:-:512:+:0:+ 65536:-:512:-:65536:- 65536:+:16384:+:0:+ 65536:+:16384:-:65536:+ 65536:-:16384:+:0:+ 65536:-:16384:-:65536:- 65536:+:32768:+:0:+ 65536:+:32768:-:65536:+ 65536:-:32768:+:0:+ 65536:-:32768:-:65536:- 65536:+:65536:+:65536:+ 65536:+:65536:-:65536:+ 65536:-:65536:+:65536:+ 65536:-:65536:-:65536:- 65536:+:131072:+:0:+ 65536:+:131072:-:0:+ 65536:-:131072:+:131072:+ 65536:-:131072:-:131072:- 65536:+:4194304:+:0:+ 65536:+:4194304:-:0:+ 65536:-:4194304:+:4194304:+ 65536:-:4194304:-:4194304:- 65536:+:8388608:+:0:+ 65536:+:8388608:-:0:+ 65536:-:8388608:+:8388608:+ 65536:-:8388608:-:8388608:- 65536:+:16777216:+:0:+ 65536:+:16777216:-:0:+ 65536:-:16777216:+:16777216:+ 65536:-:16777216:-:16777216:- 65536:+:33554432:+:0:+ 65536:+:33554432:-:0:+ 65536:-:33554432:+:33554432:+ 65536:-:33554432:-:33554432:- 65536:+:1073741824:+:0:+ 65536:+:1073741824:-:0:+ 65536:-:1073741824:+:1073741824:+ 65536:-:1073741824:-:1073741824:- 65536:+:2147483648:+:0:+ 65536:+:2147483648:-:0:+ 65536:-:2147483648:+:2147483648:+ 65536:-:2147483648:-:2147483648:- 65536:+:4294967296:+:0:+ 65536:+:4294967296:-:0:+ 65536:-:4294967296:+:4294967296:+ 65536:-:4294967296:-:4294967296:- 65536:+:8589934592:+:0:+ 65536:+:8589934592:-:0:+ 65536:-:8589934592:+:8589934592:+ 65536:-:8589934592:-:8589934592:- 65536:+:274877906944:+:0:+ 65536:+:274877906944:-:0:+ 65536:-:274877906944:+:274877906944:+ 65536:-:274877906944:-:274877906944:- 65536:+:549755813888:+:0:+ 65536:+:549755813888:-:0:+ 65536:-:549755813888:+:549755813888:+ 65536:-:549755813888:-:549755813888:- 65536:+:1099511627776:+:0:+ 65536:+:1099511627776:-:0:+ 65536:-:1099511627776:+:1099511627776:+ 65536:-:1099511627776:-:1099511627776:- 65536:+:2199023255552:+:0:+ 65536:+:2199023255552:-:0:+ 65536:-:2199023255552:+:2199023255552:+ 65536:-:2199023255552:-:2199023255552:- 65536:+:70368744177664:+:0:+ 65536:+:70368744177664:-:0:+ 65536:-:70368744177664:+:70368744177664:+ 65536:-:70368744177664:-:70368744177664:- 65536:+:140737488355328:+:0:+ 65536:+:140737488355328:-:0:+ 65536:-:140737488355328:+:140737488355328:+ 65536:-:140737488355328:-:140737488355328:- 65536:+:281474976710656:+:0:+ 65536:+:281474976710656:-:0:+ 65536:-:281474976710656:+:281474976710656:+ 65536:-:281474976710656:-:281474976710656:- 65536:+:562949953421312:+:0:+ 65536:+:562949953421312:-:0:+ 65536:-:562949953421312:+:562949953421312:+ 65536:-:562949953421312:-:562949953421312:- 65536:+:18014398509481984:+:0:+ 65536:+:18014398509481984:-:0:+ 65536:-:18014398509481984:+:18014398509481984:+ 65536:-:18014398509481984:-:18014398509481984:- 65536:+:36028797018963968:+:0:+ 65536:+:36028797018963968:-:0:+ 65536:-:36028797018963968:+:36028797018963968:+ 65536:-:36028797018963968:-:36028797018963968:- 65536:+:72057594037927936:+:0:+ 65536:+:72057594037927936:-:0:+ 65536:-:72057594037927936:+:72057594037927936:+ 65536:-:72057594037927936:-:72057594037927936:- 65536:+:144115188075855872:+:0:+ 65536:+:144115188075855872:-:0:+ 65536:-:144115188075855872:+:144115188075855872:+ 65536:-:144115188075855872:-:144115188075855872:- 131072:+:0:+:0:+ 131072:-:0:+:0:+ 131072:+:1:+:0:+ 131072:+:1:-:131072:+ 131072:-:1:+:0:+ 131072:-:1:-:131072:- 131072:+:2:+:0:+ 131072:+:2:-:131072:+ 131072:-:2:+:0:+ 131072:-:2:-:131072:- 131072:+:3:+:0:+ 131072:+:3:-:131072:+ 131072:-:3:+:0:+ 131072:-:3:-:131072:- 131072:+:4:+:0:+ 131072:+:4:-:131072:+ 131072:-:4:+:0:+ 131072:-:4:-:131072:- 131072:+:64:+:0:+ 131072:+:64:-:131072:+ 131072:-:64:+:0:+ 131072:-:64:-:131072:- 131072:+:128:+:0:+ 131072:+:128:-:131072:+ 131072:-:128:+:0:+ 131072:-:128:-:131072:- 131072:+:256:+:0:+ 131072:+:256:-:131072:+ 131072:-:256:+:0:+ 131072:-:256:-:131072:- 131072:+:512:+:0:+ 131072:+:512:-:131072:+ 131072:-:512:+:0:+ 131072:-:512:-:131072:- 131072:+:16384:+:0:+ 131072:+:16384:-:131072:+ 131072:-:16384:+:0:+ 131072:-:16384:-:131072:- 131072:+:32768:+:0:+ 131072:+:32768:-:131072:+ 131072:-:32768:+:0:+ 131072:-:32768:-:131072:- 131072:+:65536:+:0:+ 131072:+:65536:-:131072:+ 131072:-:65536:+:0:+ 131072:-:65536:-:131072:- 131072:+:131072:+:131072:+ 131072:+:131072:-:131072:+ 131072:-:131072:+:131072:+ 131072:-:131072:-:131072:- 131072:+:4194304:+:0:+ 131072:+:4194304:-:0:+ 131072:-:4194304:+:4194304:+ 131072:-:4194304:-:4194304:- 131072:+:8388608:+:0:+ 131072:+:8388608:-:0:+ 131072:-:8388608:+:8388608:+ 131072:-:8388608:-:8388608:- 131072:+:16777216:+:0:+ 131072:+:16777216:-:0:+ 131072:-:16777216:+:16777216:+ 131072:-:16777216:-:16777216:- 131072:+:33554432:+:0:+ 131072:+:33554432:-:0:+ 131072:-:33554432:+:33554432:+ 131072:-:33554432:-:33554432:- 131072:+:1073741824:+:0:+ 131072:+:1073741824:-:0:+ 131072:-:1073741824:+:1073741824:+ 131072:-:1073741824:-:1073741824:- 131072:+:2147483648:+:0:+ 131072:+:2147483648:-:0:+ 131072:-:2147483648:+:2147483648:+ 131072:-:2147483648:-:2147483648:- 131072:+:4294967296:+:0:+ 131072:+:4294967296:-:0:+ 131072:-:4294967296:+:4294967296:+ 131072:-:4294967296:-:4294967296:- 131072:+:8589934592:+:0:+ 131072:+:8589934592:-:0:+ 131072:-:8589934592:+:8589934592:+ 131072:-:8589934592:-:8589934592:- 131072:+:274877906944:+:0:+ 131072:+:274877906944:-:0:+ 131072:-:274877906944:+:274877906944:+ 131072:-:274877906944:-:274877906944:- 131072:+:549755813888:+:0:+ 131072:+:549755813888:-:0:+ 131072:-:549755813888:+:549755813888:+ 131072:-:549755813888:-:549755813888:- 131072:+:1099511627776:+:0:+ 131072:+:1099511627776:-:0:+ 131072:-:1099511627776:+:1099511627776:+ 131072:-:1099511627776:-:1099511627776:- 131072:+:2199023255552:+:0:+ 131072:+:2199023255552:-:0:+ 131072:-:2199023255552:+:2199023255552:+ 131072:-:2199023255552:-:2199023255552:- 131072:+:70368744177664:+:0:+ 131072:+:70368744177664:-:0:+ 131072:-:70368744177664:+:70368744177664:+ 131072:-:70368744177664:-:70368744177664:- 131072:+:140737488355328:+:0:+ 131072:+:140737488355328:-:0:+ 131072:-:140737488355328:+:140737488355328:+ 131072:-:140737488355328:-:140737488355328:- 131072:+:281474976710656:+:0:+ 131072:+:281474976710656:-:0:+ 131072:-:281474976710656:+:281474976710656:+ 131072:-:281474976710656:-:281474976710656:- 131072:+:562949953421312:+:0:+ 131072:+:562949953421312:-:0:+ 131072:-:562949953421312:+:562949953421312:+ 131072:-:562949953421312:-:562949953421312:- 131072:+:18014398509481984:+:0:+ 131072:+:18014398509481984:-:0:+ 131072:-:18014398509481984:+:18014398509481984:+ 131072:-:18014398509481984:-:18014398509481984:- 131072:+:36028797018963968:+:0:+ 131072:+:36028797018963968:-:0:+ 131072:-:36028797018963968:+:36028797018963968:+ 131072:-:36028797018963968:-:36028797018963968:- 131072:+:72057594037927936:+:0:+ 131072:+:72057594037927936:-:0:+ 131072:-:72057594037927936:+:72057594037927936:+ 131072:-:72057594037927936:-:72057594037927936:- 131072:+:144115188075855872:+:0:+ 131072:+:144115188075855872:-:0:+ 131072:-:144115188075855872:+:144115188075855872:+ 131072:-:144115188075855872:-:144115188075855872:- 4194304:+:0:+:0:+ 4194304:-:0:+:0:+ 4194304:+:1:+:0:+ 4194304:+:1:-:4194304:+ 4194304:-:1:+:0:+ 4194304:-:1:-:4194304:- 4194304:+:2:+:0:+ 4194304:+:2:-:4194304:+ 4194304:-:2:+:0:+ 4194304:-:2:-:4194304:- 4194304:+:3:+:0:+ 4194304:+:3:-:4194304:+ 4194304:-:3:+:0:+ 4194304:-:3:-:4194304:- 4194304:+:4:+:0:+ 4194304:+:4:-:4194304:+ 4194304:-:4:+:0:+ 4194304:-:4:-:4194304:- 4194304:+:64:+:0:+ 4194304:+:64:-:4194304:+ 4194304:-:64:+:0:+ 4194304:-:64:-:4194304:- 4194304:+:128:+:0:+ 4194304:+:128:-:4194304:+ 4194304:-:128:+:0:+ 4194304:-:128:-:4194304:- 4194304:+:256:+:0:+ 4194304:+:256:-:4194304:+ 4194304:-:256:+:0:+ 4194304:-:256:-:4194304:- 4194304:+:512:+:0:+ 4194304:+:512:-:4194304:+ 4194304:-:512:+:0:+ 4194304:-:512:-:4194304:- 4194304:+:16384:+:0:+ 4194304:+:16384:-:4194304:+ 4194304:-:16384:+:0:+ 4194304:-:16384:-:4194304:- 4194304:+:32768:+:0:+ 4194304:+:32768:-:4194304:+ 4194304:-:32768:+:0:+ 4194304:-:32768:-:4194304:- 4194304:+:65536:+:0:+ 4194304:+:65536:-:4194304:+ 4194304:-:65536:+:0:+ 4194304:-:65536:-:4194304:- 4194304:+:131072:+:0:+ 4194304:+:131072:-:4194304:+ 4194304:-:131072:+:0:+ 4194304:-:131072:-:4194304:- 4194304:+:4194304:+:4194304:+ 4194304:+:4194304:-:4194304:+ 4194304:-:4194304:+:4194304:+ 4194304:-:4194304:-:4194304:- 4194304:+:8388608:+:0:+ 4194304:+:8388608:-:0:+ 4194304:-:8388608:+:8388608:+ 4194304:-:8388608:-:8388608:- 4194304:+:16777216:+:0:+ 4194304:+:16777216:-:0:+ 4194304:-:16777216:+:16777216:+ 4194304:-:16777216:-:16777216:- 4194304:+:33554432:+:0:+ 4194304:+:33554432:-:0:+ 4194304:-:33554432:+:33554432:+ 4194304:-:33554432:-:33554432:- 4194304:+:1073741824:+:0:+ 4194304:+:1073741824:-:0:+ 4194304:-:1073741824:+:1073741824:+ 4194304:-:1073741824:-:1073741824:- 4194304:+:2147483648:+:0:+ 4194304:+:2147483648:-:0:+ 4194304:-:2147483648:+:2147483648:+ 4194304:-:2147483648:-:2147483648:- 4194304:+:4294967296:+:0:+ 4194304:+:4294967296:-:0:+ 4194304:-:4294967296:+:4294967296:+ 4194304:-:4294967296:-:4294967296:- 4194304:+:8589934592:+:0:+ 4194304:+:8589934592:-:0:+ 4194304:-:8589934592:+:8589934592:+ 4194304:-:8589934592:-:8589934592:- 4194304:+:274877906944:+:0:+ 4194304:+:274877906944:-:0:+ 4194304:-:274877906944:+:274877906944:+ 4194304:-:274877906944:-:274877906944:- 4194304:+:549755813888:+:0:+ 4194304:+:549755813888:-:0:+ 4194304:-:549755813888:+:549755813888:+ 4194304:-:549755813888:-:549755813888:- 4194304:+:1099511627776:+:0:+ 4194304:+:1099511627776:-:0:+ 4194304:-:1099511627776:+:1099511627776:+ 4194304:-:1099511627776:-:1099511627776:- 4194304:+:2199023255552:+:0:+ 4194304:+:2199023255552:-:0:+ 4194304:-:2199023255552:+:2199023255552:+ 4194304:-:2199023255552:-:2199023255552:- 4194304:+:70368744177664:+:0:+ 4194304:+:70368744177664:-:0:+ 4194304:-:70368744177664:+:70368744177664:+ 4194304:-:70368744177664:-:70368744177664:- 4194304:+:140737488355328:+:0:+ 4194304:+:140737488355328:-:0:+ 4194304:-:140737488355328:+:140737488355328:+ 4194304:-:140737488355328:-:140737488355328:- 4194304:+:281474976710656:+:0:+ 4194304:+:281474976710656:-:0:+ 4194304:-:281474976710656:+:281474976710656:+ 4194304:-:281474976710656:-:281474976710656:- 4194304:+:562949953421312:+:0:+ 4194304:+:562949953421312:-:0:+ 4194304:-:562949953421312:+:562949953421312:+ 4194304:-:562949953421312:-:562949953421312:- 4194304:+:18014398509481984:+:0:+ 4194304:+:18014398509481984:-:0:+ 4194304:-:18014398509481984:+:18014398509481984:+ 4194304:-:18014398509481984:-:18014398509481984:- 4194304:+:36028797018963968:+:0:+ 4194304:+:36028797018963968:-:0:+ 4194304:-:36028797018963968:+:36028797018963968:+ 4194304:-:36028797018963968:-:36028797018963968:- 4194304:+:72057594037927936:+:0:+ 4194304:+:72057594037927936:-:0:+ 4194304:-:72057594037927936:+:72057594037927936:+ 4194304:-:72057594037927936:-:72057594037927936:- 4194304:+:144115188075855872:+:0:+ 4194304:+:144115188075855872:-:0:+ 4194304:-:144115188075855872:+:144115188075855872:+ 4194304:-:144115188075855872:-:144115188075855872:- 8388608:+:0:+:0:+ 8388608:-:0:+:0:+ 8388608:+:1:+:0:+ 8388608:+:1:-:8388608:+ 8388608:-:1:+:0:+ 8388608:-:1:-:8388608:- 8388608:+:2:+:0:+ 8388608:+:2:-:8388608:+ 8388608:-:2:+:0:+ 8388608:-:2:-:8388608:- 8388608:+:3:+:0:+ 8388608:+:3:-:8388608:+ 8388608:-:3:+:0:+ 8388608:-:3:-:8388608:- 8388608:+:4:+:0:+ 8388608:+:4:-:8388608:+ 8388608:-:4:+:0:+ 8388608:-:4:-:8388608:- 8388608:+:64:+:0:+ 8388608:+:64:-:8388608:+ 8388608:-:64:+:0:+ 8388608:-:64:-:8388608:- 8388608:+:128:+:0:+ 8388608:+:128:-:8388608:+ 8388608:-:128:+:0:+ 8388608:-:128:-:8388608:- 8388608:+:256:+:0:+ 8388608:+:256:-:8388608:+ 8388608:-:256:+:0:+ 8388608:-:256:-:8388608:- 8388608:+:512:+:0:+ 8388608:+:512:-:8388608:+ 8388608:-:512:+:0:+ 8388608:-:512:-:8388608:- 8388608:+:16384:+:0:+ 8388608:+:16384:-:8388608:+ 8388608:-:16384:+:0:+ 8388608:-:16384:-:8388608:- 8388608:+:32768:+:0:+ 8388608:+:32768:-:8388608:+ 8388608:-:32768:+:0:+ 8388608:-:32768:-:8388608:- 8388608:+:65536:+:0:+ 8388608:+:65536:-:8388608:+ 8388608:-:65536:+:0:+ 8388608:-:65536:-:8388608:- 8388608:+:131072:+:0:+ 8388608:+:131072:-:8388608:+ 8388608:-:131072:+:0:+ 8388608:-:131072:-:8388608:- 8388608:+:4194304:+:0:+ 8388608:+:4194304:-:8388608:+ 8388608:-:4194304:+:0:+ 8388608:-:4194304:-:8388608:- 8388608:+:8388608:+:8388608:+ 8388608:+:8388608:-:8388608:+ 8388608:-:8388608:+:8388608:+ 8388608:-:8388608:-:8388608:- 8388608:+:16777216:+:0:+ 8388608:+:16777216:-:0:+ 8388608:-:16777216:+:16777216:+ 8388608:-:16777216:-:16777216:- 8388608:+:33554432:+:0:+ 8388608:+:33554432:-:0:+ 8388608:-:33554432:+:33554432:+ 8388608:-:33554432:-:33554432:- 8388608:+:1073741824:+:0:+ 8388608:+:1073741824:-:0:+ 8388608:-:1073741824:+:1073741824:+ 8388608:-:1073741824:-:1073741824:- 8388608:+:2147483648:+:0:+ 8388608:+:2147483648:-:0:+ 8388608:-:2147483648:+:2147483648:+ 8388608:-:2147483648:-:2147483648:- 8388608:+:4294967296:+:0:+ 8388608:+:4294967296:-:0:+ 8388608:-:4294967296:+:4294967296:+ 8388608:-:4294967296:-:4294967296:- 8388608:+:8589934592:+:0:+ 8388608:+:8589934592:-:0:+ 8388608:-:8589934592:+:8589934592:+ 8388608:-:8589934592:-:8589934592:- 8388608:+:274877906944:+:0:+ 8388608:+:274877906944:-:0:+ 8388608:-:274877906944:+:274877906944:+ 8388608:-:274877906944:-:274877906944:- 8388608:+:549755813888:+:0:+ 8388608:+:549755813888:-:0:+ 8388608:-:549755813888:+:549755813888:+ 8388608:-:549755813888:-:549755813888:- 8388608:+:1099511627776:+:0:+ 8388608:+:1099511627776:-:0:+ 8388608:-:1099511627776:+:1099511627776:+ 8388608:-:1099511627776:-:1099511627776:- 8388608:+:2199023255552:+:0:+ 8388608:+:2199023255552:-:0:+ 8388608:-:2199023255552:+:2199023255552:+ 8388608:-:2199023255552:-:2199023255552:- 8388608:+:70368744177664:+:0:+ 8388608:+:70368744177664:-:0:+ 8388608:-:70368744177664:+:70368744177664:+ 8388608:-:70368744177664:-:70368744177664:- 8388608:+:140737488355328:+:0:+ 8388608:+:140737488355328:-:0:+ 8388608:-:140737488355328:+:140737488355328:+ 8388608:-:140737488355328:-:140737488355328:- 8388608:+:281474976710656:+:0:+ 8388608:+:281474976710656:-:0:+ 8388608:-:281474976710656:+:281474976710656:+ 8388608:-:281474976710656:-:281474976710656:- 8388608:+:562949953421312:+:0:+ 8388608:+:562949953421312:-:0:+ 8388608:-:562949953421312:+:562949953421312:+ 8388608:-:562949953421312:-:562949953421312:- 8388608:+:18014398509481984:+:0:+ 8388608:+:18014398509481984:-:0:+ 8388608:-:18014398509481984:+:18014398509481984:+ 8388608:-:18014398509481984:-:18014398509481984:- 8388608:+:36028797018963968:+:0:+ 8388608:+:36028797018963968:-:0:+ 8388608:-:36028797018963968:+:36028797018963968:+ 8388608:-:36028797018963968:-:36028797018963968:- 8388608:+:72057594037927936:+:0:+ 8388608:+:72057594037927936:-:0:+ 8388608:-:72057594037927936:+:72057594037927936:+ 8388608:-:72057594037927936:-:72057594037927936:- 8388608:+:144115188075855872:+:0:+ 8388608:+:144115188075855872:-:0:+ 8388608:-:144115188075855872:+:144115188075855872:+ 8388608:-:144115188075855872:-:144115188075855872:- 16777216:+:0:+:0:+ 16777216:-:0:+:0:+ 16777216:+:1:+:0:+ 16777216:+:1:-:16777216:+ 16777216:-:1:+:0:+ 16777216:-:1:-:16777216:- 16777216:+:2:+:0:+ 16777216:+:2:-:16777216:+ 16777216:-:2:+:0:+ 16777216:-:2:-:16777216:- 16777216:+:3:+:0:+ 16777216:+:3:-:16777216:+ 16777216:-:3:+:0:+ 16777216:-:3:-:16777216:- 16777216:+:4:+:0:+ 16777216:+:4:-:16777216:+ 16777216:-:4:+:0:+ 16777216:-:4:-:16777216:- 16777216:+:64:+:0:+ 16777216:+:64:-:16777216:+ 16777216:-:64:+:0:+ 16777216:-:64:-:16777216:- 16777216:+:128:+:0:+ 16777216:+:128:-:16777216:+ 16777216:-:128:+:0:+ 16777216:-:128:-:16777216:- 16777216:+:256:+:0:+ 16777216:+:256:-:16777216:+ 16777216:-:256:+:0:+ 16777216:-:256:-:16777216:- 16777216:+:512:+:0:+ 16777216:+:512:-:16777216:+ 16777216:-:512:+:0:+ 16777216:-:512:-:16777216:- 16777216:+:16384:+:0:+ 16777216:+:16384:-:16777216:+ 16777216:-:16384:+:0:+ 16777216:-:16384:-:16777216:- 16777216:+:32768:+:0:+ 16777216:+:32768:-:16777216:+ 16777216:-:32768:+:0:+ 16777216:-:32768:-:16777216:- 16777216:+:65536:+:0:+ 16777216:+:65536:-:16777216:+ 16777216:-:65536:+:0:+ 16777216:-:65536:-:16777216:- 16777216:+:131072:+:0:+ 16777216:+:131072:-:16777216:+ 16777216:-:131072:+:0:+ 16777216:-:131072:-:16777216:- 16777216:+:4194304:+:0:+ 16777216:+:4194304:-:16777216:+ 16777216:-:4194304:+:0:+ 16777216:-:4194304:-:16777216:- 16777216:+:8388608:+:0:+ 16777216:+:8388608:-:16777216:+ 16777216:-:8388608:+:0:+ 16777216:-:8388608:-:16777216:- 16777216:+:16777216:+:16777216:+ 16777216:+:16777216:-:16777216:+ 16777216:-:16777216:+:16777216:+ 16777216:-:16777216:-:16777216:- 16777216:+:33554432:+:0:+ 16777216:+:33554432:-:0:+ 16777216:-:33554432:+:33554432:+ 16777216:-:33554432:-:33554432:- 16777216:+:1073741824:+:0:+ 16777216:+:1073741824:-:0:+ 16777216:-:1073741824:+:1073741824:+ 16777216:-:1073741824:-:1073741824:- 16777216:+:2147483648:+:0:+ 16777216:+:2147483648:-:0:+ 16777216:-:2147483648:+:2147483648:+ 16777216:-:2147483648:-:2147483648:- 16777216:+:4294967296:+:0:+ 16777216:+:4294967296:-:0:+ 16777216:-:4294967296:+:4294967296:+ 16777216:-:4294967296:-:4294967296:- 16777216:+:8589934592:+:0:+ 16777216:+:8589934592:-:0:+ 16777216:-:8589934592:+:8589934592:+ 16777216:-:8589934592:-:8589934592:- 16777216:+:274877906944:+:0:+ 16777216:+:274877906944:-:0:+ 16777216:-:274877906944:+:274877906944:+ 16777216:-:274877906944:-:274877906944:- 16777216:+:549755813888:+:0:+ 16777216:+:549755813888:-:0:+ 16777216:-:549755813888:+:549755813888:+ 16777216:-:549755813888:-:549755813888:- 16777216:+:1099511627776:+:0:+ 16777216:+:1099511627776:-:0:+ 16777216:-:1099511627776:+:1099511627776:+ 16777216:-:1099511627776:-:1099511627776:- 16777216:+:2199023255552:+:0:+ 16777216:+:2199023255552:-:0:+ 16777216:-:2199023255552:+:2199023255552:+ 16777216:-:2199023255552:-:2199023255552:- 16777216:+:70368744177664:+:0:+ 16777216:+:70368744177664:-:0:+ 16777216:-:70368744177664:+:70368744177664:+ 16777216:-:70368744177664:-:70368744177664:- 16777216:+:140737488355328:+:0:+ 16777216:+:140737488355328:-:0:+ 16777216:-:140737488355328:+:140737488355328:+ 16777216:-:140737488355328:-:140737488355328:- 16777216:+:281474976710656:+:0:+ 16777216:+:281474976710656:-:0:+ 16777216:-:281474976710656:+:281474976710656:+ 16777216:-:281474976710656:-:281474976710656:- 16777216:+:562949953421312:+:0:+ 16777216:+:562949953421312:-:0:+ 16777216:-:562949953421312:+:562949953421312:+ 16777216:-:562949953421312:-:562949953421312:- 16777216:+:18014398509481984:+:0:+ 16777216:+:18014398509481984:-:0:+ 16777216:-:18014398509481984:+:18014398509481984:+ 16777216:-:18014398509481984:-:18014398509481984:- 16777216:+:36028797018963968:+:0:+ 16777216:+:36028797018963968:-:0:+ 16777216:-:36028797018963968:+:36028797018963968:+ 16777216:-:36028797018963968:-:36028797018963968:- 16777216:+:72057594037927936:+:0:+ 16777216:+:72057594037927936:-:0:+ 16777216:-:72057594037927936:+:72057594037927936:+ 16777216:-:72057594037927936:-:72057594037927936:- 16777216:+:144115188075855872:+:0:+ 16777216:+:144115188075855872:-:0:+ 16777216:-:144115188075855872:+:144115188075855872:+ 16777216:-:144115188075855872:-:144115188075855872:- 33554432:+:0:+:0:+ 33554432:-:0:+:0:+ 33554432:+:1:+:0:+ 33554432:+:1:-:33554432:+ 33554432:-:1:+:0:+ 33554432:-:1:-:33554432:- 33554432:+:2:+:0:+ 33554432:+:2:-:33554432:+ 33554432:-:2:+:0:+ 33554432:-:2:-:33554432:- 33554432:+:3:+:0:+ 33554432:+:3:-:33554432:+ 33554432:-:3:+:0:+ 33554432:-:3:-:33554432:- 33554432:+:4:+:0:+ 33554432:+:4:-:33554432:+ 33554432:-:4:+:0:+ 33554432:-:4:-:33554432:- 33554432:+:64:+:0:+ 33554432:+:64:-:33554432:+ 33554432:-:64:+:0:+ 33554432:-:64:-:33554432:- 33554432:+:128:+:0:+ 33554432:+:128:-:33554432:+ 33554432:-:128:+:0:+ 33554432:-:128:-:33554432:- 33554432:+:256:+:0:+ 33554432:+:256:-:33554432:+ 33554432:-:256:+:0:+ 33554432:-:256:-:33554432:- 33554432:+:512:+:0:+ 33554432:+:512:-:33554432:+ 33554432:-:512:+:0:+ 33554432:-:512:-:33554432:- 33554432:+:16384:+:0:+ 33554432:+:16384:-:33554432:+ 33554432:-:16384:+:0:+ 33554432:-:16384:-:33554432:- 33554432:+:32768:+:0:+ 33554432:+:32768:-:33554432:+ 33554432:-:32768:+:0:+ 33554432:-:32768:-:33554432:- 33554432:+:65536:+:0:+ 33554432:+:65536:-:33554432:+ 33554432:-:65536:+:0:+ 33554432:-:65536:-:33554432:- 33554432:+:131072:+:0:+ 33554432:+:131072:-:33554432:+ 33554432:-:131072:+:0:+ 33554432:-:131072:-:33554432:- 33554432:+:4194304:+:0:+ 33554432:+:4194304:-:33554432:+ 33554432:-:4194304:+:0:+ 33554432:-:4194304:-:33554432:- 33554432:+:8388608:+:0:+ 33554432:+:8388608:-:33554432:+ 33554432:-:8388608:+:0:+ 33554432:-:8388608:-:33554432:- 33554432:+:16777216:+:0:+ 33554432:+:16777216:-:33554432:+ 33554432:-:16777216:+:0:+ 33554432:-:16777216:-:33554432:- 33554432:+:33554432:+:33554432:+ 33554432:+:33554432:-:33554432:+ 33554432:-:33554432:+:33554432:+ 33554432:-:33554432:-:33554432:- 33554432:+:1073741824:+:0:+ 33554432:+:1073741824:-:0:+ 33554432:-:1073741824:+:1073741824:+ 33554432:-:1073741824:-:1073741824:- 33554432:+:2147483648:+:0:+ 33554432:+:2147483648:-:0:+ 33554432:-:2147483648:+:2147483648:+ 33554432:-:2147483648:-:2147483648:- 33554432:+:4294967296:+:0:+ 33554432:+:4294967296:-:0:+ 33554432:-:4294967296:+:4294967296:+ 33554432:-:4294967296:-:4294967296:- 33554432:+:8589934592:+:0:+ 33554432:+:8589934592:-:0:+ 33554432:-:8589934592:+:8589934592:+ 33554432:-:8589934592:-:8589934592:- 33554432:+:274877906944:+:0:+ 33554432:+:274877906944:-:0:+ 33554432:-:274877906944:+:274877906944:+ 33554432:-:274877906944:-:274877906944:- 33554432:+:549755813888:+:0:+ 33554432:+:549755813888:-:0:+ 33554432:-:549755813888:+:549755813888:+ 33554432:-:549755813888:-:549755813888:- 33554432:+:1099511627776:+:0:+ 33554432:+:1099511627776:-:0:+ 33554432:-:1099511627776:+:1099511627776:+ 33554432:-:1099511627776:-:1099511627776:- 33554432:+:2199023255552:+:0:+ 33554432:+:2199023255552:-:0:+ 33554432:-:2199023255552:+:2199023255552:+ 33554432:-:2199023255552:-:2199023255552:- 33554432:+:70368744177664:+:0:+ 33554432:+:70368744177664:-:0:+ 33554432:-:70368744177664:+:70368744177664:+ 33554432:-:70368744177664:-:70368744177664:- 33554432:+:140737488355328:+:0:+ 33554432:+:140737488355328:-:0:+ 33554432:-:140737488355328:+:140737488355328:+ 33554432:-:140737488355328:-:140737488355328:- 33554432:+:281474976710656:+:0:+ 33554432:+:281474976710656:-:0:+ 33554432:-:281474976710656:+:281474976710656:+ 33554432:-:281474976710656:-:281474976710656:- 33554432:+:562949953421312:+:0:+ 33554432:+:562949953421312:-:0:+ 33554432:-:562949953421312:+:562949953421312:+ 33554432:-:562949953421312:-:562949953421312:- 33554432:+:18014398509481984:+:0:+ 33554432:+:18014398509481984:-:0:+ 33554432:-:18014398509481984:+:18014398509481984:+ 33554432:-:18014398509481984:-:18014398509481984:- 33554432:+:36028797018963968:+:0:+ 33554432:+:36028797018963968:-:0:+ 33554432:-:36028797018963968:+:36028797018963968:+ 33554432:-:36028797018963968:-:36028797018963968:- 33554432:+:72057594037927936:+:0:+ 33554432:+:72057594037927936:-:0:+ 33554432:-:72057594037927936:+:72057594037927936:+ 33554432:-:72057594037927936:-:72057594037927936:- 33554432:+:144115188075855872:+:0:+ 33554432:+:144115188075855872:-:0:+ 33554432:-:144115188075855872:+:144115188075855872:+ 33554432:-:144115188075855872:-:144115188075855872:- 1073741824:+:0:+:0:+ 1073741824:-:0:+:0:+ 1073741824:+:1:+:0:+ 1073741824:+:1:-:1073741824:+ 1073741824:-:1:+:0:+ 1073741824:-:1:-:1073741824:- 1073741824:+:2:+:0:+ 1073741824:+:2:-:1073741824:+ 1073741824:-:2:+:0:+ 1073741824:-:2:-:1073741824:- 1073741824:+:3:+:0:+ 1073741824:+:3:-:1073741824:+ 1073741824:-:3:+:0:+ 1073741824:-:3:-:1073741824:- 1073741824:+:4:+:0:+ 1073741824:+:4:-:1073741824:+ 1073741824:-:4:+:0:+ 1073741824:-:4:-:1073741824:- 1073741824:+:64:+:0:+ 1073741824:+:64:-:1073741824:+ 1073741824:-:64:+:0:+ 1073741824:-:64:-:1073741824:- 1073741824:+:128:+:0:+ 1073741824:+:128:-:1073741824:+ 1073741824:-:128:+:0:+ 1073741824:-:128:-:1073741824:- 1073741824:+:256:+:0:+ 1073741824:+:256:-:1073741824:+ 1073741824:-:256:+:0:+ 1073741824:-:256:-:1073741824:- 1073741824:+:512:+:0:+ 1073741824:+:512:-:1073741824:+ 1073741824:-:512:+:0:+ 1073741824:-:512:-:1073741824:- 1073741824:+:16384:+:0:+ 1073741824:+:16384:-:1073741824:+ 1073741824:-:16384:+:0:+ 1073741824:-:16384:-:1073741824:- 1073741824:+:32768:+:0:+ 1073741824:+:32768:-:1073741824:+ 1073741824:-:32768:+:0:+ 1073741824:-:32768:-:1073741824:- 1073741824:+:65536:+:0:+ 1073741824:+:65536:-:1073741824:+ 1073741824:-:65536:+:0:+ 1073741824:-:65536:-:1073741824:- 1073741824:+:131072:+:0:+ 1073741824:+:131072:-:1073741824:+ 1073741824:-:131072:+:0:+ 1073741824:-:131072:-:1073741824:- 1073741824:+:4194304:+:0:+ 1073741824:+:4194304:-:1073741824:+ 1073741824:-:4194304:+:0:+ 1073741824:-:4194304:-:1073741824:- 1073741824:+:8388608:+:0:+ 1073741824:+:8388608:-:1073741824:+ 1073741824:-:8388608:+:0:+ 1073741824:-:8388608:-:1073741824:- 1073741824:+:16777216:+:0:+ 1073741824:+:16777216:-:1073741824:+ 1073741824:-:16777216:+:0:+ 1073741824:-:16777216:-:1073741824:- 1073741824:+:33554432:+:0:+ 1073741824:+:33554432:-:1073741824:+ 1073741824:-:33554432:+:0:+ 1073741824:-:33554432:-:1073741824:- 1073741824:+:1073741824:+:1073741824:+ 1073741824:+:1073741824:-:1073741824:+ 1073741824:-:1073741824:+:1073741824:+ 1073741824:-:1073741824:-:1073741824:- 1073741824:+:2147483648:+:0:+ 1073741824:+:2147483648:-:0:+ 1073741824:-:2147483648:+:2147483648:+ 1073741824:-:2147483648:-:2147483648:- 1073741824:+:4294967296:+:0:+ 1073741824:+:4294967296:-:0:+ 1073741824:-:4294967296:+:4294967296:+ 1073741824:-:4294967296:-:4294967296:- 1073741824:+:8589934592:+:0:+ 1073741824:+:8589934592:-:0:+ 1073741824:-:8589934592:+:8589934592:+ 1073741824:-:8589934592:-:8589934592:- 1073741824:+:274877906944:+:0:+ 1073741824:+:274877906944:-:0:+ 1073741824:-:274877906944:+:274877906944:+ 1073741824:-:274877906944:-:274877906944:- 1073741824:+:549755813888:+:0:+ 1073741824:+:549755813888:-:0:+ 1073741824:-:549755813888:+:549755813888:+ 1073741824:-:549755813888:-:549755813888:- 1073741824:+:1099511627776:+:0:+ 1073741824:+:1099511627776:-:0:+ 1073741824:-:1099511627776:+:1099511627776:+ 1073741824:-:1099511627776:-:1099511627776:- 1073741824:+:2199023255552:+:0:+ 1073741824:+:2199023255552:-:0:+ 1073741824:-:2199023255552:+:2199023255552:+ 1073741824:-:2199023255552:-:2199023255552:- 1073741824:+:70368744177664:+:0:+ 1073741824:+:70368744177664:-:0:+ 1073741824:-:70368744177664:+:70368744177664:+ 1073741824:-:70368744177664:-:70368744177664:- 1073741824:+:140737488355328:+:0:+ 1073741824:+:140737488355328:-:0:+ 1073741824:-:140737488355328:+:140737488355328:+ 1073741824:-:140737488355328:-:140737488355328:- 1073741824:+:281474976710656:+:0:+ 1073741824:+:281474976710656:-:0:+ 1073741824:-:281474976710656:+:281474976710656:+ 1073741824:-:281474976710656:-:281474976710656:- 1073741824:+:562949953421312:+:0:+ 1073741824:+:562949953421312:-:0:+ 1073741824:-:562949953421312:+:562949953421312:+ 1073741824:-:562949953421312:-:562949953421312:- 1073741824:+:18014398509481984:+:0:+ 1073741824:+:18014398509481984:-:0:+ 1073741824:-:18014398509481984:+:18014398509481984:+ 1073741824:-:18014398509481984:-:18014398509481984:- 1073741824:+:36028797018963968:+:0:+ 1073741824:+:36028797018963968:-:0:+ 1073741824:-:36028797018963968:+:36028797018963968:+ 1073741824:-:36028797018963968:-:36028797018963968:- 1073741824:+:72057594037927936:+:0:+ 1073741824:+:72057594037927936:-:0:+ 1073741824:-:72057594037927936:+:72057594037927936:+ 1073741824:-:72057594037927936:-:72057594037927936:- 1073741824:+:144115188075855872:+:0:+ 1073741824:+:144115188075855872:-:0:+ 1073741824:-:144115188075855872:+:144115188075855872:+ 1073741824:-:144115188075855872:-:144115188075855872:- 2147483648:+:0:+:0:+ 2147483648:-:0:+:0:+ 2147483648:+:1:+:0:+ 2147483648:+:1:-:2147483648:+ 2147483648:-:1:+:0:+ 2147483648:-:1:-:2147483648:- 2147483648:+:2:+:0:+ 2147483648:+:2:-:2147483648:+ 2147483648:-:2:+:0:+ 2147483648:-:2:-:2147483648:- 2147483648:+:3:+:0:+ 2147483648:+:3:-:2147483648:+ 2147483648:-:3:+:0:+ 2147483648:-:3:-:2147483648:- 2147483648:+:4:+:0:+ 2147483648:+:4:-:2147483648:+ 2147483648:-:4:+:0:+ 2147483648:-:4:-:2147483648:- 2147483648:+:64:+:0:+ 2147483648:+:64:-:2147483648:+ 2147483648:-:64:+:0:+ 2147483648:-:64:-:2147483648:- 2147483648:+:128:+:0:+ 2147483648:+:128:-:2147483648:+ 2147483648:-:128:+:0:+ 2147483648:-:128:-:2147483648:- 2147483648:+:256:+:0:+ 2147483648:+:256:-:2147483648:+ 2147483648:-:256:+:0:+ 2147483648:-:256:-:2147483648:- 2147483648:+:512:+:0:+ 2147483648:+:512:-:2147483648:+ 2147483648:-:512:+:0:+ 2147483648:-:512:-:2147483648:- 2147483648:+:16384:+:0:+ 2147483648:+:16384:-:2147483648:+ 2147483648:-:16384:+:0:+ 2147483648:-:16384:-:2147483648:- 2147483648:+:32768:+:0:+ 2147483648:+:32768:-:2147483648:+ 2147483648:-:32768:+:0:+ 2147483648:-:32768:-:2147483648:- 2147483648:+:65536:+:0:+ 2147483648:+:65536:-:2147483648:+ 2147483648:-:65536:+:0:+ 2147483648:-:65536:-:2147483648:- 2147483648:+:131072:+:0:+ 2147483648:+:131072:-:2147483648:+ 2147483648:-:131072:+:0:+ 2147483648:-:131072:-:2147483648:- 2147483648:+:4194304:+:0:+ 2147483648:+:4194304:-:2147483648:+ 2147483648:-:4194304:+:0:+ 2147483648:-:4194304:-:2147483648:- 2147483648:+:8388608:+:0:+ 2147483648:+:8388608:-:2147483648:+ 2147483648:-:8388608:+:0:+ 2147483648:-:8388608:-:2147483648:- 2147483648:+:16777216:+:0:+ 2147483648:+:16777216:-:2147483648:+ 2147483648:-:16777216:+:0:+ 2147483648:-:16777216:-:2147483648:- 2147483648:+:33554432:+:0:+ 2147483648:+:33554432:-:2147483648:+ 2147483648:-:33554432:+:0:+ 2147483648:-:33554432:-:2147483648:- 2147483648:+:1073741824:+:0:+ 2147483648:+:1073741824:-:2147483648:+ 2147483648:-:1073741824:+:0:+ 2147483648:-:1073741824:-:2147483648:- 2147483648:+:2147483648:+:2147483648:+ 2147483648:+:2147483648:-:2147483648:+ 2147483648:-:2147483648:+:2147483648:+ 2147483648:-:2147483648:-:2147483648:- 2147483648:+:4294967296:+:0:+ 2147483648:+:4294967296:-:0:+ 2147483648:-:4294967296:+:4294967296:+ 2147483648:-:4294967296:-:4294967296:- 2147483648:+:8589934592:+:0:+ 2147483648:+:8589934592:-:0:+ 2147483648:-:8589934592:+:8589934592:+ 2147483648:-:8589934592:-:8589934592:- 2147483648:+:274877906944:+:0:+ 2147483648:+:274877906944:-:0:+ 2147483648:-:274877906944:+:274877906944:+ 2147483648:-:274877906944:-:274877906944:- 2147483648:+:549755813888:+:0:+ 2147483648:+:549755813888:-:0:+ 2147483648:-:549755813888:+:549755813888:+ 2147483648:-:549755813888:-:549755813888:- 2147483648:+:1099511627776:+:0:+ 2147483648:+:1099511627776:-:0:+ 2147483648:-:1099511627776:+:1099511627776:+ 2147483648:-:1099511627776:-:1099511627776:- 2147483648:+:2199023255552:+:0:+ 2147483648:+:2199023255552:-:0:+ 2147483648:-:2199023255552:+:2199023255552:+ 2147483648:-:2199023255552:-:2199023255552:- 2147483648:+:70368744177664:+:0:+ 2147483648:+:70368744177664:-:0:+ 2147483648:-:70368744177664:+:70368744177664:+ 2147483648:-:70368744177664:-:70368744177664:- 2147483648:+:140737488355328:+:0:+ 2147483648:+:140737488355328:-:0:+ 2147483648:-:140737488355328:+:140737488355328:+ 2147483648:-:140737488355328:-:140737488355328:- 2147483648:+:281474976710656:+:0:+ 2147483648:+:281474976710656:-:0:+ 2147483648:-:281474976710656:+:281474976710656:+ 2147483648:-:281474976710656:-:281474976710656:- 2147483648:+:562949953421312:+:0:+ 2147483648:+:562949953421312:-:0:+ 2147483648:-:562949953421312:+:562949953421312:+ 2147483648:-:562949953421312:-:562949953421312:- 2147483648:+:18014398509481984:+:0:+ 2147483648:+:18014398509481984:-:0:+ 2147483648:-:18014398509481984:+:18014398509481984:+ 2147483648:-:18014398509481984:-:18014398509481984:- 2147483648:+:36028797018963968:+:0:+ 2147483648:+:36028797018963968:-:0:+ 2147483648:-:36028797018963968:+:36028797018963968:+ 2147483648:-:36028797018963968:-:36028797018963968:- 2147483648:+:72057594037927936:+:0:+ 2147483648:+:72057594037927936:-:0:+ 2147483648:-:72057594037927936:+:72057594037927936:+ 2147483648:-:72057594037927936:-:72057594037927936:- 2147483648:+:144115188075855872:+:0:+ 2147483648:+:144115188075855872:-:0:+ 2147483648:-:144115188075855872:+:144115188075855872:+ 2147483648:-:144115188075855872:-:144115188075855872:- 4294967296:+:0:+:0:+ 4294967296:-:0:+:0:+ 4294967296:+:1:+:0:+ 4294967296:+:1:-:4294967296:+ 4294967296:-:1:+:0:+ 4294967296:-:1:-:4294967296:- 4294967296:+:2:+:0:+ 4294967296:+:2:-:4294967296:+ 4294967296:-:2:+:0:+ 4294967296:-:2:-:4294967296:- 4294967296:+:3:+:0:+ 4294967296:+:3:-:4294967296:+ 4294967296:-:3:+:0:+ 4294967296:-:3:-:4294967296:- 4294967296:+:4:+:0:+ 4294967296:+:4:-:4294967296:+ 4294967296:-:4:+:0:+ 4294967296:-:4:-:4294967296:- 4294967296:+:64:+:0:+ 4294967296:+:64:-:4294967296:+ 4294967296:-:64:+:0:+ 4294967296:-:64:-:4294967296:- 4294967296:+:128:+:0:+ 4294967296:+:128:-:4294967296:+ 4294967296:-:128:+:0:+ 4294967296:-:128:-:4294967296:- 4294967296:+:256:+:0:+ 4294967296:+:256:-:4294967296:+ 4294967296:-:256:+:0:+ 4294967296:-:256:-:4294967296:- 4294967296:+:512:+:0:+ 4294967296:+:512:-:4294967296:+ 4294967296:-:512:+:0:+ 4294967296:-:512:-:4294967296:- 4294967296:+:16384:+:0:+ 4294967296:+:16384:-:4294967296:+ 4294967296:-:16384:+:0:+ 4294967296:-:16384:-:4294967296:- 4294967296:+:32768:+:0:+ 4294967296:+:32768:-:4294967296:+ 4294967296:-:32768:+:0:+ 4294967296:-:32768:-:4294967296:- 4294967296:+:65536:+:0:+ 4294967296:+:65536:-:4294967296:+ 4294967296:-:65536:+:0:+ 4294967296:-:65536:-:4294967296:- 4294967296:+:131072:+:0:+ 4294967296:+:131072:-:4294967296:+ 4294967296:-:131072:+:0:+ 4294967296:-:131072:-:4294967296:- 4294967296:+:4194304:+:0:+ 4294967296:+:4194304:-:4294967296:+ 4294967296:-:4194304:+:0:+ 4294967296:-:4194304:-:4294967296:- 4294967296:+:8388608:+:0:+ 4294967296:+:8388608:-:4294967296:+ 4294967296:-:8388608:+:0:+ 4294967296:-:8388608:-:4294967296:- 4294967296:+:16777216:+:0:+ 4294967296:+:16777216:-:4294967296:+ 4294967296:-:16777216:+:0:+ 4294967296:-:16777216:-:4294967296:- 4294967296:+:33554432:+:0:+ 4294967296:+:33554432:-:4294967296:+ 4294967296:-:33554432:+:0:+ 4294967296:-:33554432:-:4294967296:- 4294967296:+:1073741824:+:0:+ 4294967296:+:1073741824:-:4294967296:+ 4294967296:-:1073741824:+:0:+ 4294967296:-:1073741824:-:4294967296:- 4294967296:+:2147483648:+:0:+ 4294967296:+:2147483648:-:4294967296:+ 4294967296:-:2147483648:+:0:+ 4294967296:-:2147483648:-:4294967296:- 4294967296:+:4294967296:+:4294967296:+ 4294967296:+:4294967296:-:4294967296:+ 4294967296:-:4294967296:+:4294967296:+ 4294967296:-:4294967296:-:4294967296:- 4294967296:+:8589934592:+:0:+ 4294967296:+:8589934592:-:0:+ 4294967296:-:8589934592:+:8589934592:+ 4294967296:-:8589934592:-:8589934592:- 4294967296:+:274877906944:+:0:+ 4294967296:+:274877906944:-:0:+ 4294967296:-:274877906944:+:274877906944:+ 4294967296:-:274877906944:-:274877906944:- 4294967296:+:549755813888:+:0:+ 4294967296:+:549755813888:-:0:+ 4294967296:-:549755813888:+:549755813888:+ 4294967296:-:549755813888:-:549755813888:- 4294967296:+:1099511627776:+:0:+ 4294967296:+:1099511627776:-:0:+ 4294967296:-:1099511627776:+:1099511627776:+ 4294967296:-:1099511627776:-:1099511627776:- 4294967296:+:2199023255552:+:0:+ 4294967296:+:2199023255552:-:0:+ 4294967296:-:2199023255552:+:2199023255552:+ 4294967296:-:2199023255552:-:2199023255552:- 4294967296:+:70368744177664:+:0:+ 4294967296:+:70368744177664:-:0:+ 4294967296:-:70368744177664:+:70368744177664:+ 4294967296:-:70368744177664:-:70368744177664:- 4294967296:+:140737488355328:+:0:+ 4294967296:+:140737488355328:-:0:+ 4294967296:-:140737488355328:+:140737488355328:+ 4294967296:-:140737488355328:-:140737488355328:- 4294967296:+:281474976710656:+:0:+ 4294967296:+:281474976710656:-:0:+ 4294967296:-:281474976710656:+:281474976710656:+ 4294967296:-:281474976710656:-:281474976710656:- 4294967296:+:562949953421312:+:0:+ 4294967296:+:562949953421312:-:0:+ 4294967296:-:562949953421312:+:562949953421312:+ 4294967296:-:562949953421312:-:562949953421312:- 4294967296:+:18014398509481984:+:0:+ 4294967296:+:18014398509481984:-:0:+ 4294967296:-:18014398509481984:+:18014398509481984:+ 4294967296:-:18014398509481984:-:18014398509481984:- 4294967296:+:36028797018963968:+:0:+ 4294967296:+:36028797018963968:-:0:+ 4294967296:-:36028797018963968:+:36028797018963968:+ 4294967296:-:36028797018963968:-:36028797018963968:- 4294967296:+:72057594037927936:+:0:+ 4294967296:+:72057594037927936:-:0:+ 4294967296:-:72057594037927936:+:72057594037927936:+ 4294967296:-:72057594037927936:-:72057594037927936:- 4294967296:+:144115188075855872:+:0:+ 4294967296:+:144115188075855872:-:0:+ 4294967296:-:144115188075855872:+:144115188075855872:+ 4294967296:-:144115188075855872:-:144115188075855872:- 8589934592:+:0:+:0:+ 8589934592:-:0:+:0:+ 8589934592:+:1:+:0:+ 8589934592:+:1:-:8589934592:+ 8589934592:-:1:+:0:+ 8589934592:-:1:-:8589934592:- 8589934592:+:2:+:0:+ 8589934592:+:2:-:8589934592:+ 8589934592:-:2:+:0:+ 8589934592:-:2:-:8589934592:- 8589934592:+:3:+:0:+ 8589934592:+:3:-:8589934592:+ 8589934592:-:3:+:0:+ 8589934592:-:3:-:8589934592:- 8589934592:+:4:+:0:+ 8589934592:+:4:-:8589934592:+ 8589934592:-:4:+:0:+ 8589934592:-:4:-:8589934592:- 8589934592:+:64:+:0:+ 8589934592:+:64:-:8589934592:+ 8589934592:-:64:+:0:+ 8589934592:-:64:-:8589934592:- 8589934592:+:128:+:0:+ 8589934592:+:128:-:8589934592:+ 8589934592:-:128:+:0:+ 8589934592:-:128:-:8589934592:- 8589934592:+:256:+:0:+ 8589934592:+:256:-:8589934592:+ 8589934592:-:256:+:0:+ 8589934592:-:256:-:8589934592:- 8589934592:+:512:+:0:+ 8589934592:+:512:-:8589934592:+ 8589934592:-:512:+:0:+ 8589934592:-:512:-:8589934592:- 8589934592:+:16384:+:0:+ 8589934592:+:16384:-:8589934592:+ 8589934592:-:16384:+:0:+ 8589934592:-:16384:-:8589934592:- 8589934592:+:32768:+:0:+ 8589934592:+:32768:-:8589934592:+ 8589934592:-:32768:+:0:+ 8589934592:-:32768:-:8589934592:- 8589934592:+:65536:+:0:+ 8589934592:+:65536:-:8589934592:+ 8589934592:-:65536:+:0:+ 8589934592:-:65536:-:8589934592:- 8589934592:+:131072:+:0:+ 8589934592:+:131072:-:8589934592:+ 8589934592:-:131072:+:0:+ 8589934592:-:131072:-:8589934592:- 8589934592:+:4194304:+:0:+ 8589934592:+:4194304:-:8589934592:+ 8589934592:-:4194304:+:0:+ 8589934592:-:4194304:-:8589934592:- 8589934592:+:8388608:+:0:+ 8589934592:+:8388608:-:8589934592:+ 8589934592:-:8388608:+:0:+ 8589934592:-:8388608:-:8589934592:- 8589934592:+:16777216:+:0:+ 8589934592:+:16777216:-:8589934592:+ 8589934592:-:16777216:+:0:+ 8589934592:-:16777216:-:8589934592:- 8589934592:+:33554432:+:0:+ 8589934592:+:33554432:-:8589934592:+ 8589934592:-:33554432:+:0:+ 8589934592:-:33554432:-:8589934592:- 8589934592:+:1073741824:+:0:+ 8589934592:+:1073741824:-:8589934592:+ 8589934592:-:1073741824:+:0:+ 8589934592:-:1073741824:-:8589934592:- 8589934592:+:2147483648:+:0:+ 8589934592:+:2147483648:-:8589934592:+ 8589934592:-:2147483648:+:0:+ 8589934592:-:2147483648:-:8589934592:- 8589934592:+:4294967296:+:0:+ 8589934592:+:4294967296:-:8589934592:+ 8589934592:-:4294967296:+:0:+ 8589934592:-:4294967296:-:8589934592:- 8589934592:+:8589934592:+:8589934592:+ 8589934592:+:8589934592:-:8589934592:+ 8589934592:-:8589934592:+:8589934592:+ 8589934592:-:8589934592:-:8589934592:- 8589934592:+:274877906944:+:0:+ 8589934592:+:274877906944:-:0:+ 8589934592:-:274877906944:+:274877906944:+ 8589934592:-:274877906944:-:274877906944:- 8589934592:+:549755813888:+:0:+ 8589934592:+:549755813888:-:0:+ 8589934592:-:549755813888:+:549755813888:+ 8589934592:-:549755813888:-:549755813888:- 8589934592:+:1099511627776:+:0:+ 8589934592:+:1099511627776:-:0:+ 8589934592:-:1099511627776:+:1099511627776:+ 8589934592:-:1099511627776:-:1099511627776:- 8589934592:+:2199023255552:+:0:+ 8589934592:+:2199023255552:-:0:+ 8589934592:-:2199023255552:+:2199023255552:+ 8589934592:-:2199023255552:-:2199023255552:- 8589934592:+:70368744177664:+:0:+ 8589934592:+:70368744177664:-:0:+ 8589934592:-:70368744177664:+:70368744177664:+ 8589934592:-:70368744177664:-:70368744177664:- 8589934592:+:140737488355328:+:0:+ 8589934592:+:140737488355328:-:0:+ 8589934592:-:140737488355328:+:140737488355328:+ 8589934592:-:140737488355328:-:140737488355328:- 8589934592:+:281474976710656:+:0:+ 8589934592:+:281474976710656:-:0:+ 8589934592:-:281474976710656:+:281474976710656:+ 8589934592:-:281474976710656:-:281474976710656:- 8589934592:+:562949953421312:+:0:+ 8589934592:+:562949953421312:-:0:+ 8589934592:-:562949953421312:+:562949953421312:+ 8589934592:-:562949953421312:-:562949953421312:- 8589934592:+:18014398509481984:+:0:+ 8589934592:+:18014398509481984:-:0:+ 8589934592:-:18014398509481984:+:18014398509481984:+ 8589934592:-:18014398509481984:-:18014398509481984:- 8589934592:+:36028797018963968:+:0:+ 8589934592:+:36028797018963968:-:0:+ 8589934592:-:36028797018963968:+:36028797018963968:+ 8589934592:-:36028797018963968:-:36028797018963968:- 8589934592:+:72057594037927936:+:0:+ 8589934592:+:72057594037927936:-:0:+ 8589934592:-:72057594037927936:+:72057594037927936:+ 8589934592:-:72057594037927936:-:72057594037927936:- 8589934592:+:144115188075855872:+:0:+ 8589934592:+:144115188075855872:-:0:+ 8589934592:-:144115188075855872:+:144115188075855872:+ 8589934592:-:144115188075855872:-:144115188075855872:- 274877906944:+:0:+:0:+ 274877906944:-:0:+:0:+ 274877906944:+:1:+:0:+ 274877906944:+:1:-:274877906944:+ 274877906944:-:1:+:0:+ 274877906944:-:1:-:274877906944:- 274877906944:+:2:+:0:+ 274877906944:+:2:-:274877906944:+ 274877906944:-:2:+:0:+ 274877906944:-:2:-:274877906944:- 274877906944:+:3:+:0:+ 274877906944:+:3:-:274877906944:+ 274877906944:-:3:+:0:+ 274877906944:-:3:-:274877906944:- 274877906944:+:4:+:0:+ 274877906944:+:4:-:274877906944:+ 274877906944:-:4:+:0:+ 274877906944:-:4:-:274877906944:- 274877906944:+:64:+:0:+ 274877906944:+:64:-:274877906944:+ 274877906944:-:64:+:0:+ 274877906944:-:64:-:274877906944:- 274877906944:+:128:+:0:+ 274877906944:+:128:-:274877906944:+ 274877906944:-:128:+:0:+ 274877906944:-:128:-:274877906944:- 274877906944:+:256:+:0:+ 274877906944:+:256:-:274877906944:+ 274877906944:-:256:+:0:+ 274877906944:-:256:-:274877906944:- 274877906944:+:512:+:0:+ 274877906944:+:512:-:274877906944:+ 274877906944:-:512:+:0:+ 274877906944:-:512:-:274877906944:- 274877906944:+:16384:+:0:+ 274877906944:+:16384:-:274877906944:+ 274877906944:-:16384:+:0:+ 274877906944:-:16384:-:274877906944:- 274877906944:+:32768:+:0:+ 274877906944:+:32768:-:274877906944:+ 274877906944:-:32768:+:0:+ 274877906944:-:32768:-:274877906944:- 274877906944:+:65536:+:0:+ 274877906944:+:65536:-:274877906944:+ 274877906944:-:65536:+:0:+ 274877906944:-:65536:-:274877906944:- 274877906944:+:131072:+:0:+ 274877906944:+:131072:-:274877906944:+ 274877906944:-:131072:+:0:+ 274877906944:-:131072:-:274877906944:- 274877906944:+:4194304:+:0:+ 274877906944:+:4194304:-:274877906944:+ 274877906944:-:4194304:+:0:+ 274877906944:-:4194304:-:274877906944:- 274877906944:+:8388608:+:0:+ 274877906944:+:8388608:-:274877906944:+ 274877906944:-:8388608:+:0:+ 274877906944:-:8388608:-:274877906944:- 274877906944:+:16777216:+:0:+ 274877906944:+:16777216:-:274877906944:+ 274877906944:-:16777216:+:0:+ 274877906944:-:16777216:-:274877906944:- 274877906944:+:33554432:+:0:+ 274877906944:+:33554432:-:274877906944:+ 274877906944:-:33554432:+:0:+ 274877906944:-:33554432:-:274877906944:- 274877906944:+:1073741824:+:0:+ 274877906944:+:1073741824:-:274877906944:+ 274877906944:-:1073741824:+:0:+ 274877906944:-:1073741824:-:274877906944:- 274877906944:+:2147483648:+:0:+ 274877906944:+:2147483648:-:274877906944:+ 274877906944:-:2147483648:+:0:+ 274877906944:-:2147483648:-:274877906944:- 274877906944:+:4294967296:+:0:+ 274877906944:+:4294967296:-:274877906944:+ 274877906944:-:4294967296:+:0:+ 274877906944:-:4294967296:-:274877906944:- 274877906944:+:8589934592:+:0:+ 274877906944:+:8589934592:-:274877906944:+ 274877906944:-:8589934592:+:0:+ 274877906944:-:8589934592:-:274877906944:- 274877906944:+:274877906944:+:274877906944:+ 274877906944:+:274877906944:-:274877906944:+ 274877906944:-:274877906944:+:274877906944:+ 274877906944:-:274877906944:-:274877906944:- 274877906944:+:549755813888:+:0:+ 274877906944:+:549755813888:-:0:+ 274877906944:-:549755813888:+:549755813888:+ 274877906944:-:549755813888:-:549755813888:- 274877906944:+:1099511627776:+:0:+ 274877906944:+:1099511627776:-:0:+ 274877906944:-:1099511627776:+:1099511627776:+ 274877906944:-:1099511627776:-:1099511627776:- 274877906944:+:2199023255552:+:0:+ 274877906944:+:2199023255552:-:0:+ 274877906944:-:2199023255552:+:2199023255552:+ 274877906944:-:2199023255552:-:2199023255552:- 274877906944:+:70368744177664:+:0:+ 274877906944:+:70368744177664:-:0:+ 274877906944:-:70368744177664:+:70368744177664:+ 274877906944:-:70368744177664:-:70368744177664:- 274877906944:+:140737488355328:+:0:+ 274877906944:+:140737488355328:-:0:+ 274877906944:-:140737488355328:+:140737488355328:+ 274877906944:-:140737488355328:-:140737488355328:- 274877906944:+:281474976710656:+:0:+ 274877906944:+:281474976710656:-:0:+ 274877906944:-:281474976710656:+:281474976710656:+ 274877906944:-:281474976710656:-:281474976710656:- 274877906944:+:562949953421312:+:0:+ 274877906944:+:562949953421312:-:0:+ 274877906944:-:562949953421312:+:562949953421312:+ 274877906944:-:562949953421312:-:562949953421312:- 274877906944:+:18014398509481984:+:0:+ 274877906944:+:18014398509481984:-:0:+ 274877906944:-:18014398509481984:+:18014398509481984:+ 274877906944:-:18014398509481984:-:18014398509481984:- 274877906944:+:36028797018963968:+:0:+ 274877906944:+:36028797018963968:-:0:+ 274877906944:-:36028797018963968:+:36028797018963968:+ 274877906944:-:36028797018963968:-:36028797018963968:- 274877906944:+:72057594037927936:+:0:+ 274877906944:+:72057594037927936:-:0:+ 274877906944:-:72057594037927936:+:72057594037927936:+ 274877906944:-:72057594037927936:-:72057594037927936:- 274877906944:+:144115188075855872:+:0:+ 274877906944:+:144115188075855872:-:0:+ 274877906944:-:144115188075855872:+:144115188075855872:+ 274877906944:-:144115188075855872:-:144115188075855872:- 549755813888:+:0:+:0:+ 549755813888:-:0:+:0:+ 549755813888:+:1:+:0:+ 549755813888:+:1:-:549755813888:+ 549755813888:-:1:+:0:+ 549755813888:-:1:-:549755813888:- 549755813888:+:2:+:0:+ 549755813888:+:2:-:549755813888:+ 549755813888:-:2:+:0:+ 549755813888:-:2:-:549755813888:- 549755813888:+:3:+:0:+ 549755813888:+:3:-:549755813888:+ 549755813888:-:3:+:0:+ 549755813888:-:3:-:549755813888:- 549755813888:+:4:+:0:+ 549755813888:+:4:-:549755813888:+ 549755813888:-:4:+:0:+ 549755813888:-:4:-:549755813888:- 549755813888:+:64:+:0:+ 549755813888:+:64:-:549755813888:+ 549755813888:-:64:+:0:+ 549755813888:-:64:-:549755813888:- 549755813888:+:128:+:0:+ 549755813888:+:128:-:549755813888:+ 549755813888:-:128:+:0:+ 549755813888:-:128:-:549755813888:- 549755813888:+:256:+:0:+ 549755813888:+:256:-:549755813888:+ 549755813888:-:256:+:0:+ 549755813888:-:256:-:549755813888:- 549755813888:+:512:+:0:+ 549755813888:+:512:-:549755813888:+ 549755813888:-:512:+:0:+ 549755813888:-:512:-:549755813888:- 549755813888:+:16384:+:0:+ 549755813888:+:16384:-:549755813888:+ 549755813888:-:16384:+:0:+ 549755813888:-:16384:-:549755813888:- 549755813888:+:32768:+:0:+ 549755813888:+:32768:-:549755813888:+ 549755813888:-:32768:+:0:+ 549755813888:-:32768:-:549755813888:- 549755813888:+:65536:+:0:+ 549755813888:+:65536:-:549755813888:+ 549755813888:-:65536:+:0:+ 549755813888:-:65536:-:549755813888:- 549755813888:+:131072:+:0:+ 549755813888:+:131072:-:549755813888:+ 549755813888:-:131072:+:0:+ 549755813888:-:131072:-:549755813888:- 549755813888:+:4194304:+:0:+ 549755813888:+:4194304:-:549755813888:+ 549755813888:-:4194304:+:0:+ 549755813888:-:4194304:-:549755813888:- 549755813888:+:8388608:+:0:+ 549755813888:+:8388608:-:549755813888:+ 549755813888:-:8388608:+:0:+ 549755813888:-:8388608:-:549755813888:- 549755813888:+:16777216:+:0:+ 549755813888:+:16777216:-:549755813888:+ 549755813888:-:16777216:+:0:+ 549755813888:-:16777216:-:549755813888:- 549755813888:+:33554432:+:0:+ 549755813888:+:33554432:-:549755813888:+ 549755813888:-:33554432:+:0:+ 549755813888:-:33554432:-:549755813888:- 549755813888:+:1073741824:+:0:+ 549755813888:+:1073741824:-:549755813888:+ 549755813888:-:1073741824:+:0:+ 549755813888:-:1073741824:-:549755813888:- 549755813888:+:2147483648:+:0:+ 549755813888:+:2147483648:-:549755813888:+ 549755813888:-:2147483648:+:0:+ 549755813888:-:2147483648:-:549755813888:- 549755813888:+:4294967296:+:0:+ 549755813888:+:4294967296:-:549755813888:+ 549755813888:-:4294967296:+:0:+ 549755813888:-:4294967296:-:549755813888:- 549755813888:+:8589934592:+:0:+ 549755813888:+:8589934592:-:549755813888:+ 549755813888:-:8589934592:+:0:+ 549755813888:-:8589934592:-:549755813888:- 549755813888:+:274877906944:+:0:+ 549755813888:+:274877906944:-:549755813888:+ 549755813888:-:274877906944:+:0:+ 549755813888:-:274877906944:-:549755813888:- 549755813888:+:549755813888:+:549755813888:+ 549755813888:+:549755813888:-:549755813888:+ 549755813888:-:549755813888:+:549755813888:+ 549755813888:-:549755813888:-:549755813888:- 549755813888:+:1099511627776:+:0:+ 549755813888:+:1099511627776:-:0:+ 549755813888:-:1099511627776:+:1099511627776:+ 549755813888:-:1099511627776:-:1099511627776:- 549755813888:+:2199023255552:+:0:+ 549755813888:+:2199023255552:-:0:+ 549755813888:-:2199023255552:+:2199023255552:+ 549755813888:-:2199023255552:-:2199023255552:- 549755813888:+:70368744177664:+:0:+ 549755813888:+:70368744177664:-:0:+ 549755813888:-:70368744177664:+:70368744177664:+ 549755813888:-:70368744177664:-:70368744177664:- 549755813888:+:140737488355328:+:0:+ 549755813888:+:140737488355328:-:0:+ 549755813888:-:140737488355328:+:140737488355328:+ 549755813888:-:140737488355328:-:140737488355328:- 549755813888:+:281474976710656:+:0:+ 549755813888:+:281474976710656:-:0:+ 549755813888:-:281474976710656:+:281474976710656:+ 549755813888:-:281474976710656:-:281474976710656:- 549755813888:+:562949953421312:+:0:+ 549755813888:+:562949953421312:-:0:+ 549755813888:-:562949953421312:+:562949953421312:+ 549755813888:-:562949953421312:-:562949953421312:- 549755813888:+:18014398509481984:+:0:+ 549755813888:+:18014398509481984:-:0:+ 549755813888:-:18014398509481984:+:18014398509481984:+ 549755813888:-:18014398509481984:-:18014398509481984:- 549755813888:+:36028797018963968:+:0:+ 549755813888:+:36028797018963968:-:0:+ 549755813888:-:36028797018963968:+:36028797018963968:+ 549755813888:-:36028797018963968:-:36028797018963968:- 549755813888:+:72057594037927936:+:0:+ 549755813888:+:72057594037927936:-:0:+ 549755813888:-:72057594037927936:+:72057594037927936:+ 549755813888:-:72057594037927936:-:72057594037927936:- 549755813888:+:144115188075855872:+:0:+ 549755813888:+:144115188075855872:-:0:+ 549755813888:-:144115188075855872:+:144115188075855872:+ 549755813888:-:144115188075855872:-:144115188075855872:- 1099511627776:+:0:+:0:+ 1099511627776:-:0:+:0:+ 1099511627776:+:1:+:0:+ 1099511627776:+:1:-:1099511627776:+ 1099511627776:-:1:+:0:+ 1099511627776:-:1:-:1099511627776:- 1099511627776:+:2:+:0:+ 1099511627776:+:2:-:1099511627776:+ 1099511627776:-:2:+:0:+ 1099511627776:-:2:-:1099511627776:- 1099511627776:+:3:+:0:+ 1099511627776:+:3:-:1099511627776:+ 1099511627776:-:3:+:0:+ 1099511627776:-:3:-:1099511627776:- 1099511627776:+:4:+:0:+ 1099511627776:+:4:-:1099511627776:+ 1099511627776:-:4:+:0:+ 1099511627776:-:4:-:1099511627776:- 1099511627776:+:64:+:0:+ 1099511627776:+:64:-:1099511627776:+ 1099511627776:-:64:+:0:+ 1099511627776:-:64:-:1099511627776:- 1099511627776:+:128:+:0:+ 1099511627776:+:128:-:1099511627776:+ 1099511627776:-:128:+:0:+ 1099511627776:-:128:-:1099511627776:- 1099511627776:+:256:+:0:+ 1099511627776:+:256:-:1099511627776:+ 1099511627776:-:256:+:0:+ 1099511627776:-:256:-:1099511627776:- 1099511627776:+:512:+:0:+ 1099511627776:+:512:-:1099511627776:+ 1099511627776:-:512:+:0:+ 1099511627776:-:512:-:1099511627776:- 1099511627776:+:16384:+:0:+ 1099511627776:+:16384:-:1099511627776:+ 1099511627776:-:16384:+:0:+ 1099511627776:-:16384:-:1099511627776:- 1099511627776:+:32768:+:0:+ 1099511627776:+:32768:-:1099511627776:+ 1099511627776:-:32768:+:0:+ 1099511627776:-:32768:-:1099511627776:- 1099511627776:+:65536:+:0:+ 1099511627776:+:65536:-:1099511627776:+ 1099511627776:-:65536:+:0:+ 1099511627776:-:65536:-:1099511627776:- 1099511627776:+:131072:+:0:+ 1099511627776:+:131072:-:1099511627776:+ 1099511627776:-:131072:+:0:+ 1099511627776:-:131072:-:1099511627776:- 1099511627776:+:4194304:+:0:+ 1099511627776:+:4194304:-:1099511627776:+ 1099511627776:-:4194304:+:0:+ 1099511627776:-:4194304:-:1099511627776:- 1099511627776:+:8388608:+:0:+ 1099511627776:+:8388608:-:1099511627776:+ 1099511627776:-:8388608:+:0:+ 1099511627776:-:8388608:-:1099511627776:- 1099511627776:+:16777216:+:0:+ 1099511627776:+:16777216:-:1099511627776:+ 1099511627776:-:16777216:+:0:+ 1099511627776:-:16777216:-:1099511627776:- 1099511627776:+:33554432:+:0:+ 1099511627776:+:33554432:-:1099511627776:+ 1099511627776:-:33554432:+:0:+ 1099511627776:-:33554432:-:1099511627776:- 1099511627776:+:1073741824:+:0:+ 1099511627776:+:1073741824:-:1099511627776:+ 1099511627776:-:1073741824:+:0:+ 1099511627776:-:1073741824:-:1099511627776:- 1099511627776:+:2147483648:+:0:+ 1099511627776:+:2147483648:-:1099511627776:+ 1099511627776:-:2147483648:+:0:+ 1099511627776:-:2147483648:-:1099511627776:- 1099511627776:+:4294967296:+:0:+ 1099511627776:+:4294967296:-:1099511627776:+ 1099511627776:-:4294967296:+:0:+ 1099511627776:-:4294967296:-:1099511627776:- 1099511627776:+:8589934592:+:0:+ 1099511627776:+:8589934592:-:1099511627776:+ 1099511627776:-:8589934592:+:0:+ 1099511627776:-:8589934592:-:1099511627776:- 1099511627776:+:274877906944:+:0:+ 1099511627776:+:274877906944:-:1099511627776:+ 1099511627776:-:274877906944:+:0:+ 1099511627776:-:274877906944:-:1099511627776:- 1099511627776:+:549755813888:+:0:+ 1099511627776:+:549755813888:-:1099511627776:+ 1099511627776:-:549755813888:+:0:+ 1099511627776:-:549755813888:-:1099511627776:- 1099511627776:+:1099511627776:+:1099511627776:+ 1099511627776:+:1099511627776:-:1099511627776:+ 1099511627776:-:1099511627776:+:1099511627776:+ 1099511627776:-:1099511627776:-:1099511627776:- 1099511627776:+:2199023255552:+:0:+ 1099511627776:+:2199023255552:-:0:+ 1099511627776:-:2199023255552:+:2199023255552:+ 1099511627776:-:2199023255552:-:2199023255552:- 1099511627776:+:70368744177664:+:0:+ 1099511627776:+:70368744177664:-:0:+ 1099511627776:-:70368744177664:+:70368744177664:+ 1099511627776:-:70368744177664:-:70368744177664:- 1099511627776:+:140737488355328:+:0:+ 1099511627776:+:140737488355328:-:0:+ 1099511627776:-:140737488355328:+:140737488355328:+ 1099511627776:-:140737488355328:-:140737488355328:- 1099511627776:+:281474976710656:+:0:+ 1099511627776:+:281474976710656:-:0:+ 1099511627776:-:281474976710656:+:281474976710656:+ 1099511627776:-:281474976710656:-:281474976710656:- 1099511627776:+:562949953421312:+:0:+ 1099511627776:+:562949953421312:-:0:+ 1099511627776:-:562949953421312:+:562949953421312:+ 1099511627776:-:562949953421312:-:562949953421312:- 1099511627776:+:18014398509481984:+:0:+ 1099511627776:+:18014398509481984:-:0:+ 1099511627776:-:18014398509481984:+:18014398509481984:+ 1099511627776:-:18014398509481984:-:18014398509481984:- 1099511627776:+:36028797018963968:+:0:+ 1099511627776:+:36028797018963968:-:0:+ 1099511627776:-:36028797018963968:+:36028797018963968:+ 1099511627776:-:36028797018963968:-:36028797018963968:- 1099511627776:+:72057594037927936:+:0:+ 1099511627776:+:72057594037927936:-:0:+ 1099511627776:-:72057594037927936:+:72057594037927936:+ 1099511627776:-:72057594037927936:-:72057594037927936:- 1099511627776:+:144115188075855872:+:0:+ 1099511627776:+:144115188075855872:-:0:+ 1099511627776:-:144115188075855872:+:144115188075855872:+ 1099511627776:-:144115188075855872:-:144115188075855872:- 2199023255552:+:0:+:0:+ 2199023255552:-:0:+:0:+ 2199023255552:+:1:+:0:+ 2199023255552:+:1:-:2199023255552:+ 2199023255552:-:1:+:0:+ 2199023255552:-:1:-:2199023255552:- 2199023255552:+:2:+:0:+ 2199023255552:+:2:-:2199023255552:+ 2199023255552:-:2:+:0:+ 2199023255552:-:2:-:2199023255552:- 2199023255552:+:3:+:0:+ 2199023255552:+:3:-:2199023255552:+ 2199023255552:-:3:+:0:+ 2199023255552:-:3:-:2199023255552:- 2199023255552:+:4:+:0:+ 2199023255552:+:4:-:2199023255552:+ 2199023255552:-:4:+:0:+ 2199023255552:-:4:-:2199023255552:- 2199023255552:+:64:+:0:+ 2199023255552:+:64:-:2199023255552:+ 2199023255552:-:64:+:0:+ 2199023255552:-:64:-:2199023255552:- 2199023255552:+:128:+:0:+ 2199023255552:+:128:-:2199023255552:+ 2199023255552:-:128:+:0:+ 2199023255552:-:128:-:2199023255552:- 2199023255552:+:256:+:0:+ 2199023255552:+:256:-:2199023255552:+ 2199023255552:-:256:+:0:+ 2199023255552:-:256:-:2199023255552:- 2199023255552:+:512:+:0:+ 2199023255552:+:512:-:2199023255552:+ 2199023255552:-:512:+:0:+ 2199023255552:-:512:-:2199023255552:- 2199023255552:+:16384:+:0:+ 2199023255552:+:16384:-:2199023255552:+ 2199023255552:-:16384:+:0:+ 2199023255552:-:16384:-:2199023255552:- 2199023255552:+:32768:+:0:+ 2199023255552:+:32768:-:2199023255552:+ 2199023255552:-:32768:+:0:+ 2199023255552:-:32768:-:2199023255552:- 2199023255552:+:65536:+:0:+ 2199023255552:+:65536:-:2199023255552:+ 2199023255552:-:65536:+:0:+ 2199023255552:-:65536:-:2199023255552:- 2199023255552:+:131072:+:0:+ 2199023255552:+:131072:-:2199023255552:+ 2199023255552:-:131072:+:0:+ 2199023255552:-:131072:-:2199023255552:- 2199023255552:+:4194304:+:0:+ 2199023255552:+:4194304:-:2199023255552:+ 2199023255552:-:4194304:+:0:+ 2199023255552:-:4194304:-:2199023255552:- 2199023255552:+:8388608:+:0:+ 2199023255552:+:8388608:-:2199023255552:+ 2199023255552:-:8388608:+:0:+ 2199023255552:-:8388608:-:2199023255552:- 2199023255552:+:16777216:+:0:+ 2199023255552:+:16777216:-:2199023255552:+ 2199023255552:-:16777216:+:0:+ 2199023255552:-:16777216:-:2199023255552:- 2199023255552:+:33554432:+:0:+ 2199023255552:+:33554432:-:2199023255552:+ 2199023255552:-:33554432:+:0:+ 2199023255552:-:33554432:-:2199023255552:- 2199023255552:+:1073741824:+:0:+ 2199023255552:+:1073741824:-:2199023255552:+ 2199023255552:-:1073741824:+:0:+ 2199023255552:-:1073741824:-:2199023255552:- 2199023255552:+:2147483648:+:0:+ 2199023255552:+:2147483648:-:2199023255552:+ 2199023255552:-:2147483648:+:0:+ 2199023255552:-:2147483648:-:2199023255552:- 2199023255552:+:4294967296:+:0:+ 2199023255552:+:4294967296:-:2199023255552:+ 2199023255552:-:4294967296:+:0:+ 2199023255552:-:4294967296:-:2199023255552:- 2199023255552:+:8589934592:+:0:+ 2199023255552:+:8589934592:-:2199023255552:+ 2199023255552:-:8589934592:+:0:+ 2199023255552:-:8589934592:-:2199023255552:- 2199023255552:+:274877906944:+:0:+ 2199023255552:+:274877906944:-:2199023255552:+ 2199023255552:-:274877906944:+:0:+ 2199023255552:-:274877906944:-:2199023255552:- 2199023255552:+:549755813888:+:0:+ 2199023255552:+:549755813888:-:2199023255552:+ 2199023255552:-:549755813888:+:0:+ 2199023255552:-:549755813888:-:2199023255552:- 2199023255552:+:1099511627776:+:0:+ 2199023255552:+:1099511627776:-:2199023255552:+ 2199023255552:-:1099511627776:+:0:+ 2199023255552:-:1099511627776:-:2199023255552:- 2199023255552:+:2199023255552:+:2199023255552:+ 2199023255552:+:2199023255552:-:2199023255552:+ 2199023255552:-:2199023255552:+:2199023255552:+ 2199023255552:-:2199023255552:-:2199023255552:- 2199023255552:+:70368744177664:+:0:+ 2199023255552:+:70368744177664:-:0:+ 2199023255552:-:70368744177664:+:70368744177664:+ 2199023255552:-:70368744177664:-:70368744177664:- 2199023255552:+:140737488355328:+:0:+ 2199023255552:+:140737488355328:-:0:+ 2199023255552:-:140737488355328:+:140737488355328:+ 2199023255552:-:140737488355328:-:140737488355328:- 2199023255552:+:281474976710656:+:0:+ 2199023255552:+:281474976710656:-:0:+ 2199023255552:-:281474976710656:+:281474976710656:+ 2199023255552:-:281474976710656:-:281474976710656:- 2199023255552:+:562949953421312:+:0:+ 2199023255552:+:562949953421312:-:0:+ 2199023255552:-:562949953421312:+:562949953421312:+ 2199023255552:-:562949953421312:-:562949953421312:- 2199023255552:+:18014398509481984:+:0:+ 2199023255552:+:18014398509481984:-:0:+ 2199023255552:-:18014398509481984:+:18014398509481984:+ 2199023255552:-:18014398509481984:-:18014398509481984:- 2199023255552:+:36028797018963968:+:0:+ 2199023255552:+:36028797018963968:-:0:+ 2199023255552:-:36028797018963968:+:36028797018963968:+ 2199023255552:-:36028797018963968:-:36028797018963968:- 2199023255552:+:72057594037927936:+:0:+ 2199023255552:+:72057594037927936:-:0:+ 2199023255552:-:72057594037927936:+:72057594037927936:+ 2199023255552:-:72057594037927936:-:72057594037927936:- 2199023255552:+:144115188075855872:+:0:+ 2199023255552:+:144115188075855872:-:0:+ 2199023255552:-:144115188075855872:+:144115188075855872:+ 2199023255552:-:144115188075855872:-:144115188075855872:- 70368744177664:+:0:+:0:+ 70368744177664:-:0:+:0:+ 70368744177664:+:1:+:0:+ 70368744177664:+:1:-:70368744177664:+ 70368744177664:-:1:+:0:+ 70368744177664:-:1:-:70368744177664:- 70368744177664:+:2:+:0:+ 70368744177664:+:2:-:70368744177664:+ 70368744177664:-:2:+:0:+ 70368744177664:-:2:-:70368744177664:- 70368744177664:+:3:+:0:+ 70368744177664:+:3:-:70368744177664:+ 70368744177664:-:3:+:0:+ 70368744177664:-:3:-:70368744177664:- 70368744177664:+:4:+:0:+ 70368744177664:+:4:-:70368744177664:+ 70368744177664:-:4:+:0:+ 70368744177664:-:4:-:70368744177664:- 70368744177664:+:64:+:0:+ 70368744177664:+:64:-:70368744177664:+ 70368744177664:-:64:+:0:+ 70368744177664:-:64:-:70368744177664:- 70368744177664:+:128:+:0:+ 70368744177664:+:128:-:70368744177664:+ 70368744177664:-:128:+:0:+ 70368744177664:-:128:-:70368744177664:- 70368744177664:+:256:+:0:+ 70368744177664:+:256:-:70368744177664:+ 70368744177664:-:256:+:0:+ 70368744177664:-:256:-:70368744177664:- 70368744177664:+:512:+:0:+ 70368744177664:+:512:-:70368744177664:+ 70368744177664:-:512:+:0:+ 70368744177664:-:512:-:70368744177664:- 70368744177664:+:16384:+:0:+ 70368744177664:+:16384:-:70368744177664:+ 70368744177664:-:16384:+:0:+ 70368744177664:-:16384:-:70368744177664:- 70368744177664:+:32768:+:0:+ 70368744177664:+:32768:-:70368744177664:+ 70368744177664:-:32768:+:0:+ 70368744177664:-:32768:-:70368744177664:- 70368744177664:+:65536:+:0:+ 70368744177664:+:65536:-:70368744177664:+ 70368744177664:-:65536:+:0:+ 70368744177664:-:65536:-:70368744177664:- 70368744177664:+:131072:+:0:+ 70368744177664:+:131072:-:70368744177664:+ 70368744177664:-:131072:+:0:+ 70368744177664:-:131072:-:70368744177664:- 70368744177664:+:4194304:+:0:+ 70368744177664:+:4194304:-:70368744177664:+ 70368744177664:-:4194304:+:0:+ 70368744177664:-:4194304:-:70368744177664:- 70368744177664:+:8388608:+:0:+ 70368744177664:+:8388608:-:70368744177664:+ 70368744177664:-:8388608:+:0:+ 70368744177664:-:8388608:-:70368744177664:- 70368744177664:+:16777216:+:0:+ 70368744177664:+:16777216:-:70368744177664:+ 70368744177664:-:16777216:+:0:+ 70368744177664:-:16777216:-:70368744177664:- 70368744177664:+:33554432:+:0:+ 70368744177664:+:33554432:-:70368744177664:+ 70368744177664:-:33554432:+:0:+ 70368744177664:-:33554432:-:70368744177664:- 70368744177664:+:1073741824:+:0:+ 70368744177664:+:1073741824:-:70368744177664:+ 70368744177664:-:1073741824:+:0:+ 70368744177664:-:1073741824:-:70368744177664:- 70368744177664:+:2147483648:+:0:+ 70368744177664:+:2147483648:-:70368744177664:+ 70368744177664:-:2147483648:+:0:+ 70368744177664:-:2147483648:-:70368744177664:- 70368744177664:+:4294967296:+:0:+ 70368744177664:+:4294967296:-:70368744177664:+ 70368744177664:-:4294967296:+:0:+ 70368744177664:-:4294967296:-:70368744177664:- 70368744177664:+:8589934592:+:0:+ 70368744177664:+:8589934592:-:70368744177664:+ 70368744177664:-:8589934592:+:0:+ 70368744177664:-:8589934592:-:70368744177664:- 70368744177664:+:274877906944:+:0:+ 70368744177664:+:274877906944:-:70368744177664:+ 70368744177664:-:274877906944:+:0:+ 70368744177664:-:274877906944:-:70368744177664:- 70368744177664:+:549755813888:+:0:+ 70368744177664:+:549755813888:-:70368744177664:+ 70368744177664:-:549755813888:+:0:+ 70368744177664:-:549755813888:-:70368744177664:- 70368744177664:+:1099511627776:+:0:+ 70368744177664:+:1099511627776:-:70368744177664:+ 70368744177664:-:1099511627776:+:0:+ 70368744177664:-:1099511627776:-:70368744177664:- 70368744177664:+:2199023255552:+:0:+ 70368744177664:+:2199023255552:-:70368744177664:+ 70368744177664:-:2199023255552:+:0:+ 70368744177664:-:2199023255552:-:70368744177664:- 70368744177664:+:70368744177664:+:70368744177664:+ 70368744177664:+:70368744177664:-:70368744177664:+ 70368744177664:-:70368744177664:+:70368744177664:+ 70368744177664:-:70368744177664:-:70368744177664:- 70368744177664:+:140737488355328:+:0:+ 70368744177664:+:140737488355328:-:0:+ 70368744177664:-:140737488355328:+:140737488355328:+ 70368744177664:-:140737488355328:-:140737488355328:- 70368744177664:+:281474976710656:+:0:+ 70368744177664:+:281474976710656:-:0:+ 70368744177664:-:281474976710656:+:281474976710656:+ 70368744177664:-:281474976710656:-:281474976710656:- 70368744177664:+:562949953421312:+:0:+ 70368744177664:+:562949953421312:-:0:+ 70368744177664:-:562949953421312:+:562949953421312:+ 70368744177664:-:562949953421312:-:562949953421312:- 70368744177664:+:18014398509481984:+:0:+ 70368744177664:+:18014398509481984:-:0:+ 70368744177664:-:18014398509481984:+:18014398509481984:+ 70368744177664:-:18014398509481984:-:18014398509481984:- 70368744177664:+:36028797018963968:+:0:+ 70368744177664:+:36028797018963968:-:0:+ 70368744177664:-:36028797018963968:+:36028797018963968:+ 70368744177664:-:36028797018963968:-:36028797018963968:- 70368744177664:+:72057594037927936:+:0:+ 70368744177664:+:72057594037927936:-:0:+ 70368744177664:-:72057594037927936:+:72057594037927936:+ 70368744177664:-:72057594037927936:-:72057594037927936:- 70368744177664:+:144115188075855872:+:0:+ 70368744177664:+:144115188075855872:-:0:+ 70368744177664:-:144115188075855872:+:144115188075855872:+ 70368744177664:-:144115188075855872:-:144115188075855872:- 140737488355328:+:0:+:0:+ 140737488355328:-:0:+:0:+ 140737488355328:+:1:+:0:+ 140737488355328:+:1:-:140737488355328:+ 140737488355328:-:1:+:0:+ 140737488355328:-:1:-:140737488355328:- 140737488355328:+:2:+:0:+ 140737488355328:+:2:-:140737488355328:+ 140737488355328:-:2:+:0:+ 140737488355328:-:2:-:140737488355328:- 140737488355328:+:3:+:0:+ 140737488355328:+:3:-:140737488355328:+ 140737488355328:-:3:+:0:+ 140737488355328:-:3:-:140737488355328:- 140737488355328:+:4:+:0:+ 140737488355328:+:4:-:140737488355328:+ 140737488355328:-:4:+:0:+ 140737488355328:-:4:-:140737488355328:- 140737488355328:+:64:+:0:+ 140737488355328:+:64:-:140737488355328:+ 140737488355328:-:64:+:0:+ 140737488355328:-:64:-:140737488355328:- 140737488355328:+:128:+:0:+ 140737488355328:+:128:-:140737488355328:+ 140737488355328:-:128:+:0:+ 140737488355328:-:128:-:140737488355328:- 140737488355328:+:256:+:0:+ 140737488355328:+:256:-:140737488355328:+ 140737488355328:-:256:+:0:+ 140737488355328:-:256:-:140737488355328:- 140737488355328:+:512:+:0:+ 140737488355328:+:512:-:140737488355328:+ 140737488355328:-:512:+:0:+ 140737488355328:-:512:-:140737488355328:- 140737488355328:+:16384:+:0:+ 140737488355328:+:16384:-:140737488355328:+ 140737488355328:-:16384:+:0:+ 140737488355328:-:16384:-:140737488355328:- 140737488355328:+:32768:+:0:+ 140737488355328:+:32768:-:140737488355328:+ 140737488355328:-:32768:+:0:+ 140737488355328:-:32768:-:140737488355328:- 140737488355328:+:65536:+:0:+ 140737488355328:+:65536:-:140737488355328:+ 140737488355328:-:65536:+:0:+ 140737488355328:-:65536:-:140737488355328:- 140737488355328:+:131072:+:0:+ 140737488355328:+:131072:-:140737488355328:+ 140737488355328:-:131072:+:0:+ 140737488355328:-:131072:-:140737488355328:- 140737488355328:+:4194304:+:0:+ 140737488355328:+:4194304:-:140737488355328:+ 140737488355328:-:4194304:+:0:+ 140737488355328:-:4194304:-:140737488355328:- 140737488355328:+:8388608:+:0:+ 140737488355328:+:8388608:-:140737488355328:+ 140737488355328:-:8388608:+:0:+ 140737488355328:-:8388608:-:140737488355328:- 140737488355328:+:16777216:+:0:+ 140737488355328:+:16777216:-:140737488355328:+ 140737488355328:-:16777216:+:0:+ 140737488355328:-:16777216:-:140737488355328:- 140737488355328:+:33554432:+:0:+ 140737488355328:+:33554432:-:140737488355328:+ 140737488355328:-:33554432:+:0:+ 140737488355328:-:33554432:-:140737488355328:- 140737488355328:+:1073741824:+:0:+ 140737488355328:+:1073741824:-:140737488355328:+ 140737488355328:-:1073741824:+:0:+ 140737488355328:-:1073741824:-:140737488355328:- 140737488355328:+:2147483648:+:0:+ 140737488355328:+:2147483648:-:140737488355328:+ 140737488355328:-:2147483648:+:0:+ 140737488355328:-:2147483648:-:140737488355328:- 140737488355328:+:4294967296:+:0:+ 140737488355328:+:4294967296:-:140737488355328:+ 140737488355328:-:4294967296:+:0:+ 140737488355328:-:4294967296:-:140737488355328:- 140737488355328:+:8589934592:+:0:+ 140737488355328:+:8589934592:-:140737488355328:+ 140737488355328:-:8589934592:+:0:+ 140737488355328:-:8589934592:-:140737488355328:- 140737488355328:+:274877906944:+:0:+ 140737488355328:+:274877906944:-:140737488355328:+ 140737488355328:-:274877906944:+:0:+ 140737488355328:-:274877906944:-:140737488355328:- 140737488355328:+:549755813888:+:0:+ 140737488355328:+:549755813888:-:140737488355328:+ 140737488355328:-:549755813888:+:0:+ 140737488355328:-:549755813888:-:140737488355328:- 140737488355328:+:1099511627776:+:0:+ 140737488355328:+:1099511627776:-:140737488355328:+ 140737488355328:-:1099511627776:+:0:+ 140737488355328:-:1099511627776:-:140737488355328:- 140737488355328:+:2199023255552:+:0:+ 140737488355328:+:2199023255552:-:140737488355328:+ 140737488355328:-:2199023255552:+:0:+ 140737488355328:-:2199023255552:-:140737488355328:- 140737488355328:+:70368744177664:+:0:+ 140737488355328:+:70368744177664:-:140737488355328:+ 140737488355328:-:70368744177664:+:0:+ 140737488355328:-:70368744177664:-:140737488355328:- 140737488355328:+:140737488355328:+:140737488355328:+ 140737488355328:+:140737488355328:-:140737488355328:+ 140737488355328:-:140737488355328:+:140737488355328:+ 140737488355328:-:140737488355328:-:140737488355328:- 140737488355328:+:281474976710656:+:0:+ 140737488355328:+:281474976710656:-:0:+ 140737488355328:-:281474976710656:+:281474976710656:+ 140737488355328:-:281474976710656:-:281474976710656:- 140737488355328:+:562949953421312:+:0:+ 140737488355328:+:562949953421312:-:0:+ 140737488355328:-:562949953421312:+:562949953421312:+ 140737488355328:-:562949953421312:-:562949953421312:- 140737488355328:+:18014398509481984:+:0:+ 140737488355328:+:18014398509481984:-:0:+ 140737488355328:-:18014398509481984:+:18014398509481984:+ 140737488355328:-:18014398509481984:-:18014398509481984:- 140737488355328:+:36028797018963968:+:0:+ 140737488355328:+:36028797018963968:-:0:+ 140737488355328:-:36028797018963968:+:36028797018963968:+ 140737488355328:-:36028797018963968:-:36028797018963968:- 140737488355328:+:72057594037927936:+:0:+ 140737488355328:+:72057594037927936:-:0:+ 140737488355328:-:72057594037927936:+:72057594037927936:+ 140737488355328:-:72057594037927936:-:72057594037927936:- 140737488355328:+:144115188075855872:+:0:+ 140737488355328:+:144115188075855872:-:0:+ 140737488355328:-:144115188075855872:+:144115188075855872:+ 140737488355328:-:144115188075855872:-:144115188075855872:- 281474976710656:+:0:+:0:+ 281474976710656:-:0:+:0:+ 281474976710656:+:1:+:0:+ 281474976710656:+:1:-:281474976710656:+ 281474976710656:-:1:+:0:+ 281474976710656:-:1:-:281474976710656:- 281474976710656:+:2:+:0:+ 281474976710656:+:2:-:281474976710656:+ 281474976710656:-:2:+:0:+ 281474976710656:-:2:-:281474976710656:- 281474976710656:+:3:+:0:+ 281474976710656:+:3:-:281474976710656:+ 281474976710656:-:3:+:0:+ 281474976710656:-:3:-:281474976710656:- 281474976710656:+:4:+:0:+ 281474976710656:+:4:-:281474976710656:+ 281474976710656:-:4:+:0:+ 281474976710656:-:4:-:281474976710656:- 281474976710656:+:64:+:0:+ 281474976710656:+:64:-:281474976710656:+ 281474976710656:-:64:+:0:+ 281474976710656:-:64:-:281474976710656:- 281474976710656:+:128:+:0:+ 281474976710656:+:128:-:281474976710656:+ 281474976710656:-:128:+:0:+ 281474976710656:-:128:-:281474976710656:- 281474976710656:+:256:+:0:+ 281474976710656:+:256:-:281474976710656:+ 281474976710656:-:256:+:0:+ 281474976710656:-:256:-:281474976710656:- 281474976710656:+:512:+:0:+ 281474976710656:+:512:-:281474976710656:+ 281474976710656:-:512:+:0:+ 281474976710656:-:512:-:281474976710656:- 281474976710656:+:16384:+:0:+ 281474976710656:+:16384:-:281474976710656:+ 281474976710656:-:16384:+:0:+ 281474976710656:-:16384:-:281474976710656:- 281474976710656:+:32768:+:0:+ 281474976710656:+:32768:-:281474976710656:+ 281474976710656:-:32768:+:0:+ 281474976710656:-:32768:-:281474976710656:- 281474976710656:+:65536:+:0:+ 281474976710656:+:65536:-:281474976710656:+ 281474976710656:-:65536:+:0:+ 281474976710656:-:65536:-:281474976710656:- 281474976710656:+:131072:+:0:+ 281474976710656:+:131072:-:281474976710656:+ 281474976710656:-:131072:+:0:+ 281474976710656:-:131072:-:281474976710656:- 281474976710656:+:4194304:+:0:+ 281474976710656:+:4194304:-:281474976710656:+ 281474976710656:-:4194304:+:0:+ 281474976710656:-:4194304:-:281474976710656:- 281474976710656:+:8388608:+:0:+ 281474976710656:+:8388608:-:281474976710656:+ 281474976710656:-:8388608:+:0:+ 281474976710656:-:8388608:-:281474976710656:- 281474976710656:+:16777216:+:0:+ 281474976710656:+:16777216:-:281474976710656:+ 281474976710656:-:16777216:+:0:+ 281474976710656:-:16777216:-:281474976710656:- 281474976710656:+:33554432:+:0:+ 281474976710656:+:33554432:-:281474976710656:+ 281474976710656:-:33554432:+:0:+ 281474976710656:-:33554432:-:281474976710656:- 281474976710656:+:1073741824:+:0:+ 281474976710656:+:1073741824:-:281474976710656:+ 281474976710656:-:1073741824:+:0:+ 281474976710656:-:1073741824:-:281474976710656:- 281474976710656:+:2147483648:+:0:+ 281474976710656:+:2147483648:-:281474976710656:+ 281474976710656:-:2147483648:+:0:+ 281474976710656:-:2147483648:-:281474976710656:- 281474976710656:+:4294967296:+:0:+ 281474976710656:+:4294967296:-:281474976710656:+ 281474976710656:-:4294967296:+:0:+ 281474976710656:-:4294967296:-:281474976710656:- 281474976710656:+:8589934592:+:0:+ 281474976710656:+:8589934592:-:281474976710656:+ 281474976710656:-:8589934592:+:0:+ 281474976710656:-:8589934592:-:281474976710656:- 281474976710656:+:274877906944:+:0:+ 281474976710656:+:274877906944:-:281474976710656:+ 281474976710656:-:274877906944:+:0:+ 281474976710656:-:274877906944:-:281474976710656:- 281474976710656:+:549755813888:+:0:+ 281474976710656:+:549755813888:-:281474976710656:+ 281474976710656:-:549755813888:+:0:+ 281474976710656:-:549755813888:-:281474976710656:- 281474976710656:+:1099511627776:+:0:+ 281474976710656:+:1099511627776:-:281474976710656:+ 281474976710656:-:1099511627776:+:0:+ 281474976710656:-:1099511627776:-:281474976710656:- 281474976710656:+:2199023255552:+:0:+ 281474976710656:+:2199023255552:-:281474976710656:+ 281474976710656:-:2199023255552:+:0:+ 281474976710656:-:2199023255552:-:281474976710656:- 281474976710656:+:70368744177664:+:0:+ 281474976710656:+:70368744177664:-:281474976710656:+ 281474976710656:-:70368744177664:+:0:+ 281474976710656:-:70368744177664:-:281474976710656:- 281474976710656:+:140737488355328:+:0:+ 281474976710656:+:140737488355328:-:281474976710656:+ 281474976710656:-:140737488355328:+:0:+ 281474976710656:-:140737488355328:-:281474976710656:- 281474976710656:+:281474976710656:+:281474976710656:+ 281474976710656:+:281474976710656:-:281474976710656:+ 281474976710656:-:281474976710656:+:281474976710656:+ 281474976710656:-:281474976710656:-:281474976710656:- 281474976710656:+:562949953421312:+:0:+ 281474976710656:+:562949953421312:-:0:+ 281474976710656:-:562949953421312:+:562949953421312:+ 281474976710656:-:562949953421312:-:562949953421312:- 281474976710656:+:18014398509481984:+:0:+ 281474976710656:+:18014398509481984:-:0:+ 281474976710656:-:18014398509481984:+:18014398509481984:+ 281474976710656:-:18014398509481984:-:18014398509481984:- 281474976710656:+:36028797018963968:+:0:+ 281474976710656:+:36028797018963968:-:0:+ 281474976710656:-:36028797018963968:+:36028797018963968:+ 281474976710656:-:36028797018963968:-:36028797018963968:- 281474976710656:+:72057594037927936:+:0:+ 281474976710656:+:72057594037927936:-:0:+ 281474976710656:-:72057594037927936:+:72057594037927936:+ 281474976710656:-:72057594037927936:-:72057594037927936:- 281474976710656:+:144115188075855872:+:0:+ 281474976710656:+:144115188075855872:-:0:+ 281474976710656:-:144115188075855872:+:144115188075855872:+ 281474976710656:-:144115188075855872:-:144115188075855872:- 562949953421312:+:0:+:0:+ 562949953421312:-:0:+:0:+ 562949953421312:+:1:+:0:+ 562949953421312:+:1:-:562949953421312:+ 562949953421312:-:1:+:0:+ 562949953421312:-:1:-:562949953421312:- 562949953421312:+:2:+:0:+ 562949953421312:+:2:-:562949953421312:+ 562949953421312:-:2:+:0:+ 562949953421312:-:2:-:562949953421312:- 562949953421312:+:3:+:0:+ 562949953421312:+:3:-:562949953421312:+ 562949953421312:-:3:+:0:+ 562949953421312:-:3:-:562949953421312:- 562949953421312:+:4:+:0:+ 562949953421312:+:4:-:562949953421312:+ 562949953421312:-:4:+:0:+ 562949953421312:-:4:-:562949953421312:- 562949953421312:+:64:+:0:+ 562949953421312:+:64:-:562949953421312:+ 562949953421312:-:64:+:0:+ 562949953421312:-:64:-:562949953421312:- 562949953421312:+:128:+:0:+ 562949953421312:+:128:-:562949953421312:+ 562949953421312:-:128:+:0:+ 562949953421312:-:128:-:562949953421312:- 562949953421312:+:256:+:0:+ 562949953421312:+:256:-:562949953421312:+ 562949953421312:-:256:+:0:+ 562949953421312:-:256:-:562949953421312:- 562949953421312:+:512:+:0:+ 562949953421312:+:512:-:562949953421312:+ 562949953421312:-:512:+:0:+ 562949953421312:-:512:-:562949953421312:- 562949953421312:+:16384:+:0:+ 562949953421312:+:16384:-:562949953421312:+ 562949953421312:-:16384:+:0:+ 562949953421312:-:16384:-:562949953421312:- 562949953421312:+:32768:+:0:+ 562949953421312:+:32768:-:562949953421312:+ 562949953421312:-:32768:+:0:+ 562949953421312:-:32768:-:562949953421312:- 562949953421312:+:65536:+:0:+ 562949953421312:+:65536:-:562949953421312:+ 562949953421312:-:65536:+:0:+ 562949953421312:-:65536:-:562949953421312:- 562949953421312:+:131072:+:0:+ 562949953421312:+:131072:-:562949953421312:+ 562949953421312:-:131072:+:0:+ 562949953421312:-:131072:-:562949953421312:- 562949953421312:+:4194304:+:0:+ 562949953421312:+:4194304:-:562949953421312:+ 562949953421312:-:4194304:+:0:+ 562949953421312:-:4194304:-:562949953421312:- 562949953421312:+:8388608:+:0:+ 562949953421312:+:8388608:-:562949953421312:+ 562949953421312:-:8388608:+:0:+ 562949953421312:-:8388608:-:562949953421312:- 562949953421312:+:16777216:+:0:+ 562949953421312:+:16777216:-:562949953421312:+ 562949953421312:-:16777216:+:0:+ 562949953421312:-:16777216:-:562949953421312:- 562949953421312:+:33554432:+:0:+ 562949953421312:+:33554432:-:562949953421312:+ 562949953421312:-:33554432:+:0:+ 562949953421312:-:33554432:-:562949953421312:- 562949953421312:+:1073741824:+:0:+ 562949953421312:+:1073741824:-:562949953421312:+ 562949953421312:-:1073741824:+:0:+ 562949953421312:-:1073741824:-:562949953421312:- 562949953421312:+:2147483648:+:0:+ 562949953421312:+:2147483648:-:562949953421312:+ 562949953421312:-:2147483648:+:0:+ 562949953421312:-:2147483648:-:562949953421312:- 562949953421312:+:4294967296:+:0:+ 562949953421312:+:4294967296:-:562949953421312:+ 562949953421312:-:4294967296:+:0:+ 562949953421312:-:4294967296:-:562949953421312:- 562949953421312:+:8589934592:+:0:+ 562949953421312:+:8589934592:-:562949953421312:+ 562949953421312:-:8589934592:+:0:+ 562949953421312:-:8589934592:-:562949953421312:- 562949953421312:+:274877906944:+:0:+ 562949953421312:+:274877906944:-:562949953421312:+ 562949953421312:-:274877906944:+:0:+ 562949953421312:-:274877906944:-:562949953421312:- 562949953421312:+:549755813888:+:0:+ 562949953421312:+:549755813888:-:562949953421312:+ 562949953421312:-:549755813888:+:0:+ 562949953421312:-:549755813888:-:562949953421312:- 562949953421312:+:1099511627776:+:0:+ 562949953421312:+:1099511627776:-:562949953421312:+ 562949953421312:-:1099511627776:+:0:+ 562949953421312:-:1099511627776:-:562949953421312:- 562949953421312:+:2199023255552:+:0:+ 562949953421312:+:2199023255552:-:562949953421312:+ 562949953421312:-:2199023255552:+:0:+ 562949953421312:-:2199023255552:-:562949953421312:- 562949953421312:+:70368744177664:+:0:+ 562949953421312:+:70368744177664:-:562949953421312:+ 562949953421312:-:70368744177664:+:0:+ 562949953421312:-:70368744177664:-:562949953421312:- 562949953421312:+:140737488355328:+:0:+ 562949953421312:+:140737488355328:-:562949953421312:+ 562949953421312:-:140737488355328:+:0:+ 562949953421312:-:140737488355328:-:562949953421312:- 562949953421312:+:281474976710656:+:0:+ 562949953421312:+:281474976710656:-:562949953421312:+ 562949953421312:-:281474976710656:+:0:+ 562949953421312:-:281474976710656:-:562949953421312:- 562949953421312:+:562949953421312:+:562949953421312:+ 562949953421312:+:562949953421312:-:562949953421312:+ 562949953421312:-:562949953421312:+:562949953421312:+ 562949953421312:-:562949953421312:-:562949953421312:- 562949953421312:+:18014398509481984:+:0:+ 562949953421312:+:18014398509481984:-:0:+ 562949953421312:-:18014398509481984:+:18014398509481984:+ 562949953421312:-:18014398509481984:-:18014398509481984:- 562949953421312:+:36028797018963968:+:0:+ 562949953421312:+:36028797018963968:-:0:+ 562949953421312:-:36028797018963968:+:36028797018963968:+ 562949953421312:-:36028797018963968:-:36028797018963968:- 562949953421312:+:72057594037927936:+:0:+ 562949953421312:+:72057594037927936:-:0:+ 562949953421312:-:72057594037927936:+:72057594037927936:+ 562949953421312:-:72057594037927936:-:72057594037927936:- 562949953421312:+:144115188075855872:+:0:+ 562949953421312:+:144115188075855872:-:0:+ 562949953421312:-:144115188075855872:+:144115188075855872:+ 562949953421312:-:144115188075855872:-:144115188075855872:- 18014398509481984:+:0:+:0:+ 18014398509481984:-:0:+:0:+ 18014398509481984:+:1:+:0:+ 18014398509481984:+:1:-:18014398509481984:+ 18014398509481984:-:1:+:0:+ 18014398509481984:-:1:-:18014398509481984:- 18014398509481984:+:2:+:0:+ 18014398509481984:+:2:-:18014398509481984:+ 18014398509481984:-:2:+:0:+ 18014398509481984:-:2:-:18014398509481984:- 18014398509481984:+:3:+:0:+ 18014398509481984:+:3:-:18014398509481984:+ 18014398509481984:-:3:+:0:+ 18014398509481984:-:3:-:18014398509481984:- 18014398509481984:+:4:+:0:+ 18014398509481984:+:4:-:18014398509481984:+ 18014398509481984:-:4:+:0:+ 18014398509481984:-:4:-:18014398509481984:- 18014398509481984:+:64:+:0:+ 18014398509481984:+:64:-:18014398509481984:+ 18014398509481984:-:64:+:0:+ 18014398509481984:-:64:-:18014398509481984:- 18014398509481984:+:128:+:0:+ 18014398509481984:+:128:-:18014398509481984:+ 18014398509481984:-:128:+:0:+ 18014398509481984:-:128:-:18014398509481984:- 18014398509481984:+:256:+:0:+ 18014398509481984:+:256:-:18014398509481984:+ 18014398509481984:-:256:+:0:+ 18014398509481984:-:256:-:18014398509481984:- 18014398509481984:+:512:+:0:+ 18014398509481984:+:512:-:18014398509481984:+ 18014398509481984:-:512:+:0:+ 18014398509481984:-:512:-:18014398509481984:- 18014398509481984:+:16384:+:0:+ 18014398509481984:+:16384:-:18014398509481984:+ 18014398509481984:-:16384:+:0:+ 18014398509481984:-:16384:-:18014398509481984:- 18014398509481984:+:32768:+:0:+ 18014398509481984:+:32768:-:18014398509481984:+ 18014398509481984:-:32768:+:0:+ 18014398509481984:-:32768:-:18014398509481984:- 18014398509481984:+:65536:+:0:+ 18014398509481984:+:65536:-:18014398509481984:+ 18014398509481984:-:65536:+:0:+ 18014398509481984:-:65536:-:18014398509481984:- 18014398509481984:+:131072:+:0:+ 18014398509481984:+:131072:-:18014398509481984:+ 18014398509481984:-:131072:+:0:+ 18014398509481984:-:131072:-:18014398509481984:- 18014398509481984:+:4194304:+:0:+ 18014398509481984:+:4194304:-:18014398509481984:+ 18014398509481984:-:4194304:+:0:+ 18014398509481984:-:4194304:-:18014398509481984:- 18014398509481984:+:8388608:+:0:+ 18014398509481984:+:8388608:-:18014398509481984:+ 18014398509481984:-:8388608:+:0:+ 18014398509481984:-:8388608:-:18014398509481984:- 18014398509481984:+:16777216:+:0:+ 18014398509481984:+:16777216:-:18014398509481984:+ 18014398509481984:-:16777216:+:0:+ 18014398509481984:-:16777216:-:18014398509481984:- 18014398509481984:+:33554432:+:0:+ 18014398509481984:+:33554432:-:18014398509481984:+ 18014398509481984:-:33554432:+:0:+ 18014398509481984:-:33554432:-:18014398509481984:- 18014398509481984:+:1073741824:+:0:+ 18014398509481984:+:1073741824:-:18014398509481984:+ 18014398509481984:-:1073741824:+:0:+ 18014398509481984:-:1073741824:-:18014398509481984:- 18014398509481984:+:2147483648:+:0:+ 18014398509481984:+:2147483648:-:18014398509481984:+ 18014398509481984:-:2147483648:+:0:+ 18014398509481984:-:2147483648:-:18014398509481984:- 18014398509481984:+:4294967296:+:0:+ 18014398509481984:+:4294967296:-:18014398509481984:+ 18014398509481984:-:4294967296:+:0:+ 18014398509481984:-:4294967296:-:18014398509481984:- 18014398509481984:+:8589934592:+:0:+ 18014398509481984:+:8589934592:-:18014398509481984:+ 18014398509481984:-:8589934592:+:0:+ 18014398509481984:-:8589934592:-:18014398509481984:- 18014398509481984:+:274877906944:+:0:+ 18014398509481984:+:274877906944:-:18014398509481984:+ 18014398509481984:-:274877906944:+:0:+ 18014398509481984:-:274877906944:-:18014398509481984:- 18014398509481984:+:549755813888:+:0:+ 18014398509481984:+:549755813888:-:18014398509481984:+ 18014398509481984:-:549755813888:+:0:+ 18014398509481984:-:549755813888:-:18014398509481984:- 18014398509481984:+:1099511627776:+:0:+ 18014398509481984:+:1099511627776:-:18014398509481984:+ 18014398509481984:-:1099511627776:+:0:+ 18014398509481984:-:1099511627776:-:18014398509481984:- 18014398509481984:+:2199023255552:+:0:+ 18014398509481984:+:2199023255552:-:18014398509481984:+ 18014398509481984:-:2199023255552:+:0:+ 18014398509481984:-:2199023255552:-:18014398509481984:- 18014398509481984:+:70368744177664:+:0:+ 18014398509481984:+:70368744177664:-:18014398509481984:+ 18014398509481984:-:70368744177664:+:0:+ 18014398509481984:-:70368744177664:-:18014398509481984:- 18014398509481984:+:140737488355328:+:0:+ 18014398509481984:+:140737488355328:-:18014398509481984:+ 18014398509481984:-:140737488355328:+:0:+ 18014398509481984:-:140737488355328:-:18014398509481984:- 18014398509481984:+:281474976710656:+:0:+ 18014398509481984:+:281474976710656:-:18014398509481984:+ 18014398509481984:-:281474976710656:+:0:+ 18014398509481984:-:281474976710656:-:18014398509481984:- 18014398509481984:+:562949953421312:+:0:+ 18014398509481984:+:562949953421312:-:18014398509481984:+ 18014398509481984:-:562949953421312:+:0:+ 18014398509481984:-:562949953421312:-:18014398509481984:- 18014398509481984:+:18014398509481984:+:18014398509481984:+ 18014398509481984:+:18014398509481984:-:18014398509481984:+ 18014398509481984:-:18014398509481984:+:18014398509481984:+ 18014398509481984:-:18014398509481984:-:18014398509481984:- 18014398509481984:+:36028797018963968:+:0:+ 18014398509481984:+:36028797018963968:-:0:+ 18014398509481984:-:36028797018963968:+:36028797018963968:+ 18014398509481984:-:36028797018963968:-:36028797018963968:- 18014398509481984:+:72057594037927936:+:0:+ 18014398509481984:+:72057594037927936:-:0:+ 18014398509481984:-:72057594037927936:+:72057594037927936:+ 18014398509481984:-:72057594037927936:-:72057594037927936:- 18014398509481984:+:144115188075855872:+:0:+ 18014398509481984:+:144115188075855872:-:0:+ 18014398509481984:-:144115188075855872:+:144115188075855872:+ 18014398509481984:-:144115188075855872:-:144115188075855872:- 36028797018963968:+:0:+:0:+ 36028797018963968:-:0:+:0:+ 36028797018963968:+:1:+:0:+ 36028797018963968:+:1:-:36028797018963968:+ 36028797018963968:-:1:+:0:+ 36028797018963968:-:1:-:36028797018963968:- 36028797018963968:+:2:+:0:+ 36028797018963968:+:2:-:36028797018963968:+ 36028797018963968:-:2:+:0:+ 36028797018963968:-:2:-:36028797018963968:- 36028797018963968:+:3:+:0:+ 36028797018963968:+:3:-:36028797018963968:+ 36028797018963968:-:3:+:0:+ 36028797018963968:-:3:-:36028797018963968:- 36028797018963968:+:4:+:0:+ 36028797018963968:+:4:-:36028797018963968:+ 36028797018963968:-:4:+:0:+ 36028797018963968:-:4:-:36028797018963968:- 36028797018963968:+:64:+:0:+ 36028797018963968:+:64:-:36028797018963968:+ 36028797018963968:-:64:+:0:+ 36028797018963968:-:64:-:36028797018963968:- 36028797018963968:+:128:+:0:+ 36028797018963968:+:128:-:36028797018963968:+ 36028797018963968:-:128:+:0:+ 36028797018963968:-:128:-:36028797018963968:- 36028797018963968:+:256:+:0:+ 36028797018963968:+:256:-:36028797018963968:+ 36028797018963968:-:256:+:0:+ 36028797018963968:-:256:-:36028797018963968:- 36028797018963968:+:512:+:0:+ 36028797018963968:+:512:-:36028797018963968:+ 36028797018963968:-:512:+:0:+ 36028797018963968:-:512:-:36028797018963968:- 36028797018963968:+:16384:+:0:+ 36028797018963968:+:16384:-:36028797018963968:+ 36028797018963968:-:16384:+:0:+ 36028797018963968:-:16384:-:36028797018963968:- 36028797018963968:+:32768:+:0:+ 36028797018963968:+:32768:-:36028797018963968:+ 36028797018963968:-:32768:+:0:+ 36028797018963968:-:32768:-:36028797018963968:- 36028797018963968:+:65536:+:0:+ 36028797018963968:+:65536:-:36028797018963968:+ 36028797018963968:-:65536:+:0:+ 36028797018963968:-:65536:-:36028797018963968:- 36028797018963968:+:131072:+:0:+ 36028797018963968:+:131072:-:36028797018963968:+ 36028797018963968:-:131072:+:0:+ 36028797018963968:-:131072:-:36028797018963968:- 36028797018963968:+:4194304:+:0:+ 36028797018963968:+:4194304:-:36028797018963968:+ 36028797018963968:-:4194304:+:0:+ 36028797018963968:-:4194304:-:36028797018963968:- 36028797018963968:+:8388608:+:0:+ 36028797018963968:+:8388608:-:36028797018963968:+ 36028797018963968:-:8388608:+:0:+ 36028797018963968:-:8388608:-:36028797018963968:- 36028797018963968:+:16777216:+:0:+ 36028797018963968:+:16777216:-:36028797018963968:+ 36028797018963968:-:16777216:+:0:+ 36028797018963968:-:16777216:-:36028797018963968:- 36028797018963968:+:33554432:+:0:+ 36028797018963968:+:33554432:-:36028797018963968:+ 36028797018963968:-:33554432:+:0:+ 36028797018963968:-:33554432:-:36028797018963968:- 36028797018963968:+:1073741824:+:0:+ 36028797018963968:+:1073741824:-:36028797018963968:+ 36028797018963968:-:1073741824:+:0:+ 36028797018963968:-:1073741824:-:36028797018963968:- 36028797018963968:+:2147483648:+:0:+ 36028797018963968:+:2147483648:-:36028797018963968:+ 36028797018963968:-:2147483648:+:0:+ 36028797018963968:-:2147483648:-:36028797018963968:- 36028797018963968:+:4294967296:+:0:+ 36028797018963968:+:4294967296:-:36028797018963968:+ 36028797018963968:-:4294967296:+:0:+ 36028797018963968:-:4294967296:-:36028797018963968:- 36028797018963968:+:8589934592:+:0:+ 36028797018963968:+:8589934592:-:36028797018963968:+ 36028797018963968:-:8589934592:+:0:+ 36028797018963968:-:8589934592:-:36028797018963968:- 36028797018963968:+:274877906944:+:0:+ 36028797018963968:+:274877906944:-:36028797018963968:+ 36028797018963968:-:274877906944:+:0:+ 36028797018963968:-:274877906944:-:36028797018963968:- 36028797018963968:+:549755813888:+:0:+ 36028797018963968:+:549755813888:-:36028797018963968:+ 36028797018963968:-:549755813888:+:0:+ 36028797018963968:-:549755813888:-:36028797018963968:- 36028797018963968:+:1099511627776:+:0:+ 36028797018963968:+:1099511627776:-:36028797018963968:+ 36028797018963968:-:1099511627776:+:0:+ 36028797018963968:-:1099511627776:-:36028797018963968:- 36028797018963968:+:2199023255552:+:0:+ 36028797018963968:+:2199023255552:-:36028797018963968:+ 36028797018963968:-:2199023255552:+:0:+ 36028797018963968:-:2199023255552:-:36028797018963968:- 36028797018963968:+:70368744177664:+:0:+ 36028797018963968:+:70368744177664:-:36028797018963968:+ 36028797018963968:-:70368744177664:+:0:+ 36028797018963968:-:70368744177664:-:36028797018963968:- 36028797018963968:+:140737488355328:+:0:+ 36028797018963968:+:140737488355328:-:36028797018963968:+ 36028797018963968:-:140737488355328:+:0:+ 36028797018963968:-:140737488355328:-:36028797018963968:- 36028797018963968:+:281474976710656:+:0:+ 36028797018963968:+:281474976710656:-:36028797018963968:+ 36028797018963968:-:281474976710656:+:0:+ 36028797018963968:-:281474976710656:-:36028797018963968:- 36028797018963968:+:562949953421312:+:0:+ 36028797018963968:+:562949953421312:-:36028797018963968:+ 36028797018963968:-:562949953421312:+:0:+ 36028797018963968:-:562949953421312:-:36028797018963968:- 36028797018963968:+:18014398509481984:+:0:+ 36028797018963968:+:18014398509481984:-:36028797018963968:+ 36028797018963968:-:18014398509481984:+:0:+ 36028797018963968:-:18014398509481984:-:36028797018963968:- 36028797018963968:+:36028797018963968:+:36028797018963968:+ 36028797018963968:+:36028797018963968:-:36028797018963968:+ 36028797018963968:-:36028797018963968:+:36028797018963968:+ 36028797018963968:-:36028797018963968:-:36028797018963968:- 36028797018963968:+:72057594037927936:+:0:+ 36028797018963968:+:72057594037927936:-:0:+ 36028797018963968:-:72057594037927936:+:72057594037927936:+ 36028797018963968:-:72057594037927936:-:72057594037927936:- 36028797018963968:+:144115188075855872:+:0:+ 36028797018963968:+:144115188075855872:-:0:+ 36028797018963968:-:144115188075855872:+:144115188075855872:+ 36028797018963968:-:144115188075855872:-:144115188075855872:- 72057594037927936:+:0:+:0:+ 72057594037927936:-:0:+:0:+ 72057594037927936:+:1:+:0:+ 72057594037927936:+:1:-:72057594037927936:+ 72057594037927936:-:1:+:0:+ 72057594037927936:-:1:-:72057594037927936:- 72057594037927936:+:2:+:0:+ 72057594037927936:+:2:-:72057594037927936:+ 72057594037927936:-:2:+:0:+ 72057594037927936:-:2:-:72057594037927936:- 72057594037927936:+:3:+:0:+ 72057594037927936:+:3:-:72057594037927936:+ 72057594037927936:-:3:+:0:+ 72057594037927936:-:3:-:72057594037927936:- 72057594037927936:+:4:+:0:+ 72057594037927936:+:4:-:72057594037927936:+ 72057594037927936:-:4:+:0:+ 72057594037927936:-:4:-:72057594037927936:- 72057594037927936:+:64:+:0:+ 72057594037927936:+:64:-:72057594037927936:+ 72057594037927936:-:64:+:0:+ 72057594037927936:-:64:-:72057594037927936:- 72057594037927936:+:128:+:0:+ 72057594037927936:+:128:-:72057594037927936:+ 72057594037927936:-:128:+:0:+ 72057594037927936:-:128:-:72057594037927936:- 72057594037927936:+:256:+:0:+ 72057594037927936:+:256:-:72057594037927936:+ 72057594037927936:-:256:+:0:+ 72057594037927936:-:256:-:72057594037927936:- 72057594037927936:+:512:+:0:+ 72057594037927936:+:512:-:72057594037927936:+ 72057594037927936:-:512:+:0:+ 72057594037927936:-:512:-:72057594037927936:- 72057594037927936:+:16384:+:0:+ 72057594037927936:+:16384:-:72057594037927936:+ 72057594037927936:-:16384:+:0:+ 72057594037927936:-:16384:-:72057594037927936:- 72057594037927936:+:32768:+:0:+ 72057594037927936:+:32768:-:72057594037927936:+ 72057594037927936:-:32768:+:0:+ 72057594037927936:-:32768:-:72057594037927936:- 72057594037927936:+:65536:+:0:+ 72057594037927936:+:65536:-:72057594037927936:+ 72057594037927936:-:65536:+:0:+ 72057594037927936:-:65536:-:72057594037927936:- 72057594037927936:+:131072:+:0:+ 72057594037927936:+:131072:-:72057594037927936:+ 72057594037927936:-:131072:+:0:+ 72057594037927936:-:131072:-:72057594037927936:- 72057594037927936:+:4194304:+:0:+ 72057594037927936:+:4194304:-:72057594037927936:+ 72057594037927936:-:4194304:+:0:+ 72057594037927936:-:4194304:-:72057594037927936:- 72057594037927936:+:8388608:+:0:+ 72057594037927936:+:8388608:-:72057594037927936:+ 72057594037927936:-:8388608:+:0:+ 72057594037927936:-:8388608:-:72057594037927936:- 72057594037927936:+:16777216:+:0:+ 72057594037927936:+:16777216:-:72057594037927936:+ 72057594037927936:-:16777216:+:0:+ 72057594037927936:-:16777216:-:72057594037927936:- 72057594037927936:+:33554432:+:0:+ 72057594037927936:+:33554432:-:72057594037927936:+ 72057594037927936:-:33554432:+:0:+ 72057594037927936:-:33554432:-:72057594037927936:- 72057594037927936:+:1073741824:+:0:+ 72057594037927936:+:1073741824:-:72057594037927936:+ 72057594037927936:-:1073741824:+:0:+ 72057594037927936:-:1073741824:-:72057594037927936:- 72057594037927936:+:2147483648:+:0:+ 72057594037927936:+:2147483648:-:72057594037927936:+ 72057594037927936:-:2147483648:+:0:+ 72057594037927936:-:2147483648:-:72057594037927936:- 72057594037927936:+:4294967296:+:0:+ 72057594037927936:+:4294967296:-:72057594037927936:+ 72057594037927936:-:4294967296:+:0:+ 72057594037927936:-:4294967296:-:72057594037927936:- 72057594037927936:+:8589934592:+:0:+ 72057594037927936:+:8589934592:-:72057594037927936:+ 72057594037927936:-:8589934592:+:0:+ 72057594037927936:-:8589934592:-:72057594037927936:- 72057594037927936:+:274877906944:+:0:+ 72057594037927936:+:274877906944:-:72057594037927936:+ 72057594037927936:-:274877906944:+:0:+ 72057594037927936:-:274877906944:-:72057594037927936:- 72057594037927936:+:549755813888:+:0:+ 72057594037927936:+:549755813888:-:72057594037927936:+ 72057594037927936:-:549755813888:+:0:+ 72057594037927936:-:549755813888:-:72057594037927936:- 72057594037927936:+:1099511627776:+:0:+ 72057594037927936:+:1099511627776:-:72057594037927936:+ 72057594037927936:-:1099511627776:+:0:+ 72057594037927936:-:1099511627776:-:72057594037927936:- 72057594037927936:+:2199023255552:+:0:+ 72057594037927936:+:2199023255552:-:72057594037927936:+ 72057594037927936:-:2199023255552:+:0:+ 72057594037927936:-:2199023255552:-:72057594037927936:- 72057594037927936:+:70368744177664:+:0:+ 72057594037927936:+:70368744177664:-:72057594037927936:+ 72057594037927936:-:70368744177664:+:0:+ 72057594037927936:-:70368744177664:-:72057594037927936:- 72057594037927936:+:140737488355328:+:0:+ 72057594037927936:+:140737488355328:-:72057594037927936:+ 72057594037927936:-:140737488355328:+:0:+ 72057594037927936:-:140737488355328:-:72057594037927936:- 72057594037927936:+:281474976710656:+:0:+ 72057594037927936:+:281474976710656:-:72057594037927936:+ 72057594037927936:-:281474976710656:+:0:+ 72057594037927936:-:281474976710656:-:72057594037927936:- 72057594037927936:+:562949953421312:+:0:+ 72057594037927936:+:562949953421312:-:72057594037927936:+ 72057594037927936:-:562949953421312:+:0:+ 72057594037927936:-:562949953421312:-:72057594037927936:- 72057594037927936:+:18014398509481984:+:0:+ 72057594037927936:+:18014398509481984:-:72057594037927936:+ 72057594037927936:-:18014398509481984:+:0:+ 72057594037927936:-:18014398509481984:-:72057594037927936:- 72057594037927936:+:36028797018963968:+:0:+ 72057594037927936:+:36028797018963968:-:72057594037927936:+ 72057594037927936:-:36028797018963968:+:0:+ 72057594037927936:-:36028797018963968:-:72057594037927936:- 72057594037927936:+:72057594037927936:+:72057594037927936:+ 72057594037927936:+:72057594037927936:-:72057594037927936:+ 72057594037927936:-:72057594037927936:+:72057594037927936:+ 72057594037927936:-:72057594037927936:-:72057594037927936:- 72057594037927936:+:144115188075855872:+:0:+ 72057594037927936:+:144115188075855872:-:0:+ 72057594037927936:-:144115188075855872:+:144115188075855872:+ 72057594037927936:-:144115188075855872:-:144115188075855872:- 144115188075855872:+:0:+:0:+ 144115188075855872:-:0:+:0:+ 144115188075855872:+:1:+:0:+ 144115188075855872:+:1:-:144115188075855872:+ 144115188075855872:-:1:+:0:+ 144115188075855872:-:1:-:144115188075855872:- 144115188075855872:+:2:+:0:+ 144115188075855872:+:2:-:144115188075855872:+ 144115188075855872:-:2:+:0:+ 144115188075855872:-:2:-:144115188075855872:- 144115188075855872:+:3:+:0:+ 144115188075855872:+:3:-:144115188075855872:+ 144115188075855872:-:3:+:0:+ 144115188075855872:-:3:-:144115188075855872:- 144115188075855872:+:4:+:0:+ 144115188075855872:+:4:-:144115188075855872:+ 144115188075855872:-:4:+:0:+ 144115188075855872:-:4:-:144115188075855872:- 144115188075855872:+:64:+:0:+ 144115188075855872:+:64:-:144115188075855872:+ 144115188075855872:-:64:+:0:+ 144115188075855872:-:64:-:144115188075855872:- 144115188075855872:+:128:+:0:+ 144115188075855872:+:128:-:144115188075855872:+ 144115188075855872:-:128:+:0:+ 144115188075855872:-:128:-:144115188075855872:- 144115188075855872:+:256:+:0:+ 144115188075855872:+:256:-:144115188075855872:+ 144115188075855872:-:256:+:0:+ 144115188075855872:-:256:-:144115188075855872:- 144115188075855872:+:512:+:0:+ 144115188075855872:+:512:-:144115188075855872:+ 144115188075855872:-:512:+:0:+ 144115188075855872:-:512:-:144115188075855872:- 144115188075855872:+:16384:+:0:+ 144115188075855872:+:16384:-:144115188075855872:+ 144115188075855872:-:16384:+:0:+ 144115188075855872:-:16384:-:144115188075855872:- 144115188075855872:+:32768:+:0:+ 144115188075855872:+:32768:-:144115188075855872:+ 144115188075855872:-:32768:+:0:+ 144115188075855872:-:32768:-:144115188075855872:- 144115188075855872:+:65536:+:0:+ 144115188075855872:+:65536:-:144115188075855872:+ 144115188075855872:-:65536:+:0:+ 144115188075855872:-:65536:-:144115188075855872:- 144115188075855872:+:131072:+:0:+ 144115188075855872:+:131072:-:144115188075855872:+ 144115188075855872:-:131072:+:0:+ 144115188075855872:-:131072:-:144115188075855872:- 144115188075855872:+:4194304:+:0:+ 144115188075855872:+:4194304:-:144115188075855872:+ 144115188075855872:-:4194304:+:0:+ 144115188075855872:-:4194304:-:144115188075855872:- 144115188075855872:+:8388608:+:0:+ 144115188075855872:+:8388608:-:144115188075855872:+ 144115188075855872:-:8388608:+:0:+ 144115188075855872:-:8388608:-:144115188075855872:- 144115188075855872:+:16777216:+:0:+ 144115188075855872:+:16777216:-:144115188075855872:+ 144115188075855872:-:16777216:+:0:+ 144115188075855872:-:16777216:-:144115188075855872:- 144115188075855872:+:33554432:+:0:+ 144115188075855872:+:33554432:-:144115188075855872:+ 144115188075855872:-:33554432:+:0:+ 144115188075855872:-:33554432:-:144115188075855872:- 144115188075855872:+:1073741824:+:0:+ 144115188075855872:+:1073741824:-:144115188075855872:+ 144115188075855872:-:1073741824:+:0:+ 144115188075855872:-:1073741824:-:144115188075855872:- 144115188075855872:+:2147483648:+:0:+ 144115188075855872:+:2147483648:-:144115188075855872:+ 144115188075855872:-:2147483648:+:0:+ 144115188075855872:-:2147483648:-:144115188075855872:- 144115188075855872:+:4294967296:+:0:+ 144115188075855872:+:4294967296:-:144115188075855872:+ 144115188075855872:-:4294967296:+:0:+ 144115188075855872:-:4294967296:-:144115188075855872:- 144115188075855872:+:8589934592:+:0:+ 144115188075855872:+:8589934592:-:144115188075855872:+ 144115188075855872:-:8589934592:+:0:+ 144115188075855872:-:8589934592:-:144115188075855872:- 144115188075855872:+:274877906944:+:0:+ 144115188075855872:+:274877906944:-:144115188075855872:+ 144115188075855872:-:274877906944:+:0:+ 144115188075855872:-:274877906944:-:144115188075855872:- 144115188075855872:+:549755813888:+:0:+ 144115188075855872:+:549755813888:-:144115188075855872:+ 144115188075855872:-:549755813888:+:0:+ 144115188075855872:-:549755813888:-:144115188075855872:- 144115188075855872:+:1099511627776:+:0:+ 144115188075855872:+:1099511627776:-:144115188075855872:+ 144115188075855872:-:1099511627776:+:0:+ 144115188075855872:-:1099511627776:-:144115188075855872:- 144115188075855872:+:2199023255552:+:0:+ 144115188075855872:+:2199023255552:-:144115188075855872:+ 144115188075855872:-:2199023255552:+:0:+ 144115188075855872:-:2199023255552:-:144115188075855872:- 144115188075855872:+:70368744177664:+:0:+ 144115188075855872:+:70368744177664:-:144115188075855872:+ 144115188075855872:-:70368744177664:+:0:+ 144115188075855872:-:70368744177664:-:144115188075855872:- 144115188075855872:+:140737488355328:+:0:+ 144115188075855872:+:140737488355328:-:144115188075855872:+ 144115188075855872:-:140737488355328:+:0:+ 144115188075855872:-:140737488355328:-:144115188075855872:- 144115188075855872:+:281474976710656:+:0:+ 144115188075855872:+:281474976710656:-:144115188075855872:+ 144115188075855872:-:281474976710656:+:0:+ 144115188075855872:-:281474976710656:-:144115188075855872:- 144115188075855872:+:562949953421312:+:0:+ 144115188075855872:+:562949953421312:-:144115188075855872:+ 144115188075855872:-:562949953421312:+:0:+ 144115188075855872:-:562949953421312:-:144115188075855872:- 144115188075855872:+:18014398509481984:+:0:+ 144115188075855872:+:18014398509481984:-:144115188075855872:+ 144115188075855872:-:18014398509481984:+:0:+ 144115188075855872:-:18014398509481984:-:144115188075855872:- 144115188075855872:+:36028797018963968:+:0:+ 144115188075855872:+:36028797018963968:-:144115188075855872:+ 144115188075855872:-:36028797018963968:+:0:+ 144115188075855872:-:36028797018963968:-:144115188075855872:- 144115188075855872:+:72057594037927936:+:0:+ 144115188075855872:+:72057594037927936:-:144115188075855872:+ 144115188075855872:-:72057594037927936:+:0:+ 144115188075855872:-:72057594037927936:-:144115188075855872:- 144115188075855872:+:144115188075855872:+:144115188075855872:+ 144115188075855872:+:144115188075855872:-:144115188075855872:+ 144115188075855872:-:144115188075855872:+:144115188075855872:+ 144115188075855872:-:144115188075855872:-:144115188075855872:- # Random values 10:+:14:+:10:+ 10:+:14:-:2:+ 10:-:14:+:6:+ 10:-:14:-:14:- 77:+:247:+:69:+ 77:+:247:-:9:+ 77:-:247:+:179:+ 77:-:247:-:255:- 10:+:3960:+:8:+ 10:+:3960:-:8:+ 10:-:3960:+:3952:+ 10:-:3960:-:3968:- 59:+:61308:+:56:+ 59:+:61308:-:0:+ 59:-:61308:+:61252:+ 59:-:61308:-:61308:- 46:+:638557:+:12:+ 46:+:638557:-:34:+ 46:-:638557:+:638544:+ 46:-:638557:-:638590:- 15:+:2442434:+:2:+ 15:+:2442434:-:14:+ 15:-:2442434:+:2442432:+ 15:-:2442434:-:2442448:- 85:+:82305970:+:16:+ 85:+:82305970:-:68:+ 85:-:82305970:+:82305954:+ 85:-:82305970:-:82306038:- 23:+:673162029:+:5:+ 23:+:673162029:-:19:+ 23:-:673162029:+:673162025:+ 23:-:673162029:-:673162047:- 17:+:4522669194:+:0:+ 17:+:4522669194:-:16:+ 17:-:4522669194:+:4522669194:+ 17:-:4522669194:-:4522669210:- 83:+:91018171396:+:0:+ 83:+:91018171396:-:80:+ 83:-:91018171396:+:91018171396:+ 83:-:91018171396:-:91018171476:- 32:+:665354923829:+:32:+ 32:+:665354923829:-:0:+ 32:-:665354923829:+:665354923808:+ 32:-:665354923829:-:665354923840:- 69:+:9281632446841:+:65:+ 69:+:9281632446841:-:5:+ 69:-:9281632446841:+:9281632446777:+ 69:-:9281632446841:-:9281632446845:- 99:+:30668420711699:+:3:+ 99:+:30668420711699:-:97:+ 99:-:30668420711699:+:30668420711697:+ 99:-:30668420711699:-:30668420711795:- 95:+:883794394267609:+:89:+ 95:+:883794394267609:-:7:+ 95:-:883794394267609:+:883794394267521:+ 95:-:883794394267609:-:883794394267615:- 35:+:8684633304074929:+:33:+ 35:+:8684633304074929:-:3:+ 35:-:8684633304074929:+:8684633304074897:+ 35:-:8684633304074929:-:8684633304074931:- 94:+:11563113229902457:+:88:+ 94:+:11563113229902457:-:6:+ 94:-:11563113229902457:+:11563113229902368:+ 94:-:11563113229902457:-:11563113229902462:- 95:+:252145365464128978:+:82:+ 95:+:252145365464128978:-:14:+ 95:-:252145365464128978:+:252145365464128896:+ 95:-:252145365464128978:-:252145365464128992:- 51:+:6393995603825289252:+:32:+ 51:+:6393995603825289252:-:16:+ 51:-:6393995603825289252:+:6393995603825289220:+ 51:-:6393995603825289252:-:6393995603825289268:- 51:+:51038456532994750749:+:17:+ 51:+:51038456532994750749:-:35:+ 51:-:51038456532994750749:+:51038456532994750733:+ 51:-:51038456532994750749:-:51038456532994750783:- 791:+:28:+:20:+ 791:+:28:-:772:+ 791:-:28:+:8:+ 791:-:28:-:800:- 986:+:205:+:200:+ 986:+:205:-:786:+ 986:-:205:+:4:+ 986:-:205:-:990:- 334:+:9547:+:330:+ 334:+:9547:-:4:+ 334:-:9547:+:9218:+ 334:-:9547:-:9552:- 966:+:71026:+:322:+ 966:+:71026:-:646:+ 966:-:71026:+:70706:+ 966:-:71026:-:71670:- 754:+:779777:+:512:+ 754:+:779777:-:242:+ 754:-:779777:+:779264:+ 754:-:779777:-:780018:- 187:+:4887188:+:144:+ 187:+:4887188:-:40:+ 187:-:4887188:+:4887044:+ 187:-:4887188:-:4887228:- 587:+:68447552:+:64:+ 587:+:68447552:-:576:+ 587:-:68447552:+:68447488:+ 587:-:68447552:-:68448128:- 787:+:570325027:+:3:+ 787:+:570325027:-:785:+ 787:-:570325027:+:570325025:+ 787:-:570325027:-:570325811:- 338:+:3816209974:+:18:+ 338:+:3816209974:-:322:+ 338:-:3816209974:+:3816209958:+ 338:-:3816209974:-:3816210294:- 855:+:56052508560:+:784:+ 855:+:56052508560:-:80:+ 855:-:56052508560:+:56052507776:+ 855:-:56052508560:-:56052508640:- 809:+:612109325503:+:41:+ 809:+:612109325503:-:769:+ 809:-:612109325503:+:612109325463:+ 809:-:612109325503:-:612109326271:- 541:+:1387493497187:+:1:+ 541:+:1387493497187:-:541:+ 541:-:1387493497187:+:1387493497187:+ 541:-:1387493497187:-:1387493497727:- 565:+:32399948911200:+:544:+ 565:+:32399948911200:-:32:+ 565:-:32399948911200:+:32399948910656:+ 565:-:32399948911200:-:32399948911232:- 610:+:897356029041414:+:514:+ 610:+:897356029041414:-:98:+ 610:-:897356029041414:+:897356029040902:+ 610:-:897356029041414:-:897356029041510:- 361:+:3316497300356913:+:289:+ 361:+:3316497300356913:-:73:+ 361:-:3316497300356913:+:3316497300356625:+ 361:-:3316497300356913:-:3316497300356985:- 909:+:21068394397400452:+:388:+ 909:+:21068394397400452:-:524:+ 909:-:21068394397400452:+:21068394397400064:+ 909:-:21068394397400452:-:21068394397400976:- 408:+:952412982029847298:+:256:+ 408:+:952412982029847298:-:152:+ 408:-:952412982029847298:+:952412982029847040:+ 408:-:952412982029847298:-:952412982029847448:- 360:+:3894513476241942289:+:256:+ 360:+:3894513476241942289:-:104:+ 360:-:3894513476241942289:+:3894513476241942032:+ 360:-:3894513476241942289:-:3894513476241942392:- 557:+:95870299528893025432:+:8:+ 557:+:95870299528893025432:-:552:+ 557:-:95870299528893025432:+:95870299528893025424:+ 557:-:95870299528893025432:-:95870299528893025984:- 9625:+:91:+:25:+ 9625:+:91:-:9601:+ 9625:-:91:+:67:+ 9625:-:91:-:9691:- 7606:+:702:+:182:+ 7606:+:702:-:7426:+ 7606:-:702:+:522:+ 7606:-:702:-:8126:- 2273:+:3739:+:2177:+ 2273:+:3739:-:97:+ 2273:-:3739:+:1563:+ 2273:-:3739:-:3835:- 6761:+:99876:+:544:+ 6761:+:99876:-:6216:+ 6761:-:99876:+:99332:+ 6761:-:99876:-:106092:- 1312:+:868605:+:32:+ 1312:+:868605:-:1280:+ 1312:-:868605:+:868576:+ 1312:-:868605:-:869888:- 3765:+:4461118:+:564:+ 3765:+:4461118:-:3200:+ 3765:-:4461118:+:4460554:+ 3765:-:4461118:-:4464318:- 6270:+:57432769:+:6208:+ 6270:+:57432769:-:62:+ 6270:-:57432769:+:57426560:+ 6270:-:57432769:-:57432830:- 2335:+:744217457:+:2321:+ 2335:+:744217457:-:15:+ 2335:-:744217457:+:744215137:+ 2335:-:744217457:-:744217471:- 3094:+:6942374846:+:2070:+ 3094:+:6942374846:-:1026:+ 3094:-:6942374846:+:6942372778:+ 3094:-:6942374846:-:6942375870:- 3791:+:72042699323:+:2571:+ 3791:+:72042699323:-:1221:+ 3791:-:72042699323:+:72042696753:+ 3791:-:72042699323:-:72042700543:- 7121:+:279457613656:+:848:+ 7121:+:279457613656:-:6272:+ 7121:-:279457613656:+:279457612808:+ 7121:-:279457613656:-:279457619928:- 6651:+:4126480832319:+:4411:+ 6651:+:4126480832319:-:2241:+ 6651:-:4126480832319:+:4126480827909:+ 6651:-:4126480832319:-:4126480834559:- 3811:+:93388178403833:+:225:+ 3811:+:93388178403833:-:3587:+ 3811:-:93388178403833:+:93388178403609:+ 3811:-:93388178403833:-:93388178407419:- 9971:+:754890221240426:+:98:+ 9971:+:754890221240426:-:9874:+ 9971:-:754890221240426:+:754890221240328:+ 9971:-:754890221240426:-:754890221250300:- 3482:+:2133308645454968:+:1048:+ 3482:+:2133308645454968:-:2440:+ 3482:-:2133308645454968:+:2133308645453920:+ 3482:-:2133308645454968:-:2133308645457408:- 6168:+:22618099504356413:+:6168:+ 6168:+:22618099504356413:-:0:+ 6168:-:22618099504356413:+:22618099504350248:+ 6168:-:22618099504356413:-:22618099504356416:- 6408:+:763176706193812503:+:2048:+ 6408:+:763176706193812503:-:4360:+ 6408:-:763176706193812503:+:763176706193810448:+ 6408:-:763176706193812503:-:763176706193816856:- 7143:+:3492118900412950762:+:2274:+ 7143:+:3492118900412950762:-:4870:+ 7143:-:3492118900412950762:+:3492118900412948488:+ 7143:-:3492118900412950762:-:3492118900412955632:- 1460:+:80613695401402482694:+:4:+ 1460:+:80613695401402482694:-:1456:+ 1460:-:80613695401402482694:+:80613695401402482692:+ 1460:-:80613695401402482694:-:80613695401402484152:- 42640:+:39:+:0:+ 42640:+:39:-:42640:+ 42640:-:39:+:32:+ 42640:-:39:-:42672:- 81507:+:356:+:96:+ 81507:+:356:-:81408:+ 81507:-:356:+:260:+ 81507:-:356:-:81764:- 93716:+:1933:+:1540:+ 93716:+:1933:-:92176:+ 93716:-:1933:+:396:+ 93716:-:1933:-:94112:- 26511:+:24376:+:18184:+ 26511:+:24376:-:8328:+ 26511:-:24376:+:6192:+ 26511:-:24376:-:32704:- 48837:+:210675:+:14017:+ 48837:+:210675:-:34821:+ 48837:-:210675:+:196659:+ 48837:-:210675:-:245495:- 35803:+:5623327:+:35355:+ 35803:+:5623327:-:449:+ 35803:-:5623327:+:5587973:+ 35803:-:5623327:-:5623775:- 68206:+:12943794:+:65570:+ 68206:+:12943794:-:2638:+ 68206:-:12943794:+:12878226:+ 68206:-:12943794:-:12946430:- 49334:+:626076386:+:162:+ 49334:+:626076386:-:49174:+ 49334:-:626076386:+:626076226:+ 49334:-:626076386:-:626125558:- 64141:+:3982309956:+:14852:+ 64141:+:3982309956:-:49292:+ 64141:-:3982309956:+:3982295104:+ 64141:-:3982309956:-:3982359248:- 12535:+:22065175072:+:4128:+ 12535:+:22065175072:-:8416:+ 12535:-:22065175072:+:22065170944:+ 12535:-:22065175072:-:22065183488:- 58007:+:896249161441:+:57985:+ 58007:+:896249161441:-:23:+ 58007:-:896249161441:+:896249103457:+ 58007:-:896249161441:-:896249161463:- 43859:+:2810994192055:+:10771:+ 43859:+:2810994192055:-:33089:+ 43859:-:2810994192055:+:2810994181285:+ 43859:-:2810994192055:-:2810994225143:- 76794:+:77921439156821:+:68176:+ 76794:+:77921439156821:-:8618:+ 76794:-:77921439156821:+:77921439088644:+ 76794:-:77921439156821:-:77921439165438:- 58235:+:175257311986382:+:16970:+ 58235:+:175257311986382:-:41266:+ 58235:-:175257311986382:+:175257311969412:+ 58235:-:175257311986382:-:175257312027648:- 59355:+:2121010194466213:+:50561:+ 59355:+:2121010194466213:-:8795:+ 59355:-:2121010194466213:+:2121010194415653:+ 59355:-:2121010194466213:-:2121010194475007:- 94989:+:14528979755642011:+:8201:+ 94989:+:14528979755642011:-:86789:+ 94989:-:14528979755642011:+:14528979755633811:+ 94989:-:14528979755642011:-:14528979755728799:- 62373:+:805004729188360000:+:4864:+ 62373:+:805004729188360000:-:57472:+ 62373:-:805004729188360000:+:805004729188355136:+ 62373:-:805004729188360000:-:805004729188417472:- 38769:+:2291283404762466988:+:544:+ 38769:+:2291283404762466988:-:38224:+ 38769:-:2291283404762466988:+:2291283404762466444:+ 38769:-:2291283404762466988:-:2291283404762505212:- 96160:+:39951169670965413997:+:16416:+ 96160:+:39951169670965413997:-:79744:+ 96160:-:39951169670965413997:+:39951169670965397600:+ 96160:-:39951169670965413997:-:39951169670965493760:- 434896:+:23:+:16:+ 434896:+:23:-:434880:+ 434896:-:23:+:16:+ 434896:-:23:-:434912:- 501279:+:697:+:537:+ 501279:+:697:-:500743:+ 501279:-:697:+:161:+ 501279:-:697:-:501439:- 730448:+:7765:+:1104:+ 730448:+:7765:-:729344:+ 730448:-:7765:+:6672:+ 730448:-:7765:-:737120:- 722868:+:50897:+:1680:+ 722868:+:50897:-:721188:+ 722868:-:50897:+:49216:+ 722868:-:50897:-:772084:- 299352:+:284707:+:266240:+ 299352:+:284707:-:33112:+ 299352:-:284707:+:18464:+ 299352:-:284707:-:317816:- 100787:+:7198076:+:98608:+ 100787:+:7198076:-:2176:+ 100787:-:7198076:+:7099468:+ 100787:-:7198076:-:7200252:- 363242:+:67751939:+:98306:+ 363242:+:67751939:-:264936:+ 363242:-:67751939:+:67653634:+ 363242:-:67751939:-:68016876:- 908695:+:497946599:+:789895:+ 908695:+:497946599:-:118801:+ 908695:-:497946599:+:497156705:+ 908695:-:497946599:-:498065399:- 543510:+:7290815843:+:258:+ 543510:+:7290815843:-:543252:+ 543510:-:7290815843:+:7290815586:+ 543510:-:7290815843:-:7291359096:- 510950:+:20139604985:+:117728:+ 510950:+:20139604985:-:393222:+ 510950:-:20139604985:+:20139487256:+ 510950:-:20139604985:-:20139998206:- 767872:+:617673498121:+:103936:+ 767872:+:617673498121:-:663936:+ 767872:-:617673498121:+:617673394176:+ 767872:-:617673498121:-:617674162048:- 368105:+:7282709252766:+:264328:+ 368105:+:7282709252766:-:103776:+ 368105:-:7282709252766:+:7282708988438:+ 368105:-:7282709252766:-:7282709356542:- 954672:+:61986886826697:+:954368:+ 954672:+:61986886826697:-:304:+ 954672:-:61986886826697:+:61986885872320:+ 954672:-:61986886826697:-:61986886826992:- 879769:+:969949602433527:+:18577:+ 879769:+:969949602433527:-:861193:+ 879769:-:969949602433527:+:969949602414951:+ 879769:-:969949602433527:-:969949603294719:- 582031:+:2958393099243677:+:540813:+ 582031:+:2958393099243677:-:41219:+ 582031:-:2958393099243677:+:2958393098702865:+ 582031:-:2958393099243677:-:2958393099284895:- 654289:+:36735422839440663:+:49425:+ 654289:+:36735422839440663:-:604865:+ 654289:-:36735422839440663:+:36735422839391239:+ 654289:-:36735422839440663:-:36735422840045527:- 797432:+:658044667899341846:+:534544:+ 797432:+:658044667899341846:-:262888:+ 797432:-:658044667899341846:+:658044667898807296:+ 797432:-:658044667899341846:-:658044667899604728:- 446492:+:3571776236591145163:+:147464:+ 446492:+:3571776236591145163:-:299028:+ 446492:-:3571776236591145163:+:3571776236590997696:+ 446492:-:3571776236591145163:-:3571776236591444188:- 282137:+:77201681456800947641:+:19481:+ 282137:+:77201681456800947641:-:262657:+ 282137:-:77201681456800947641:+:77201681456800928161:+ 282137:-:77201681456800947641:-:77201681456801210297:- 3134867:+:94:+:18:+ 3134867:+:94:-:3134850:+ 3134867:-:94:+:76:+ 3134867:-:94:-:3134944:- 9970226:+:111:+:34:+ 9970226:+:111:-:9970192:+ 9970226:-:111:+:78:+ 9970226:-:111:-:9970304:- 3336767:+:4073:+:2601:+ 3336767:+:4073:-:3334167:+ 3336767:-:4073:+:1473:+ 3336767:-:4073:-:3338239:- 7061169:+:16499:+:49:+ 7061169:+:16499:-:7061121:+ 7061169:-:16499:+:16451:+ 7061169:-:16499:-:7077619:- 3936987:+:375159:+:266323:+ 3936987:+:375159:-:3670665:+ 3936987:-:375159:+:108837:+ 3936987:-:375159:-:4045823:- 1807903:+:6907525:+:591365:+ 1807903:+:6907525:-:1216539:+ 1807903:-:6907525:+:6316161:+ 1807903:-:6907525:-:8124063:- 1090984:+:42722522:+:42120:+ 1090984:+:42722522:-:1048864:+ 1090984:-:42722522:+:42680408:+ 1090984:-:42722522:-:43771392:- 7803419:+:118686141:+:1245209:+ 7803419:+:118686141:-:6558211:+ 7803419:-:118686141:+:117440933:+ 7803419:-:118686141:-:125244351:- 7618043:+:8504475131:+:6569467:+ 7618043:+:8504475131:-:1048577:+ 7618043:-:8504475131:+:8497905665:+ 7618043:-:8504475131:-:8505523707:- 6895019:+:47527015136:+:4206752:+ 6895019:+:47527015136:-:2688288:+ 6895019:-:47527015136:+:47522808384:+ 6895019:-:47527015136:-:47529703424:- 8735472:+:562960702737:+:2064:+ 8735472:+:562960702737:-:8733408:+ 8735472:-:562960702737:+:562960700688:+ 8735472:-:562960702737:-:562969436160:- 6527355:+:3227116817996:+:2263112:+ 6527355:+:3227116817996:-:4264240:+ 6527355:-:3227116817996:+:3227114554884:+ 6527355:-:3227116817996:-:3227121082236:- 2222914:+:98816398114018:+:43074:+ 2222914:+:98816398114018:-:2179842:+ 2222914:-:98816398114018:+:98816398070946:+ 2222914:-:98816398114018:-:98816400293858:- 5746508:+:810895706782512:+:338688:+ 5746508:+:810895706782512:-:5407808:+ 5746508:-:810895706782512:+:810895706443824:+ 5746508:-:810895706782512:-:810895712190320:- 2227028:+:5645499815426885:+:129860:+ 2227028:+:5645499815426885:-:2097168:+ 2227028:-:5645499815426885:+:5645499815297028:+ 2227028:-:5645499815426885:-:5645499817524056:- 7502961:+:41737865780180431:+:144449:+ 7502961:+:41737865780180431:-:7358513:+ 7502961:-:41737865780180431:+:41737865780035983:+ 7502961:-:41737865780180431:-:41737865787538943:- 9229524:+:850986923680037961:+:21568:+ 9229524:+:850986923680037961:-:9207956:+ 9229524:-:850986923680037961:+:850986923680016392:+ 9229524:-:850986923680037961:-:850986923689245916:- 9111414:+:7107640019820926978:+:8519682:+ 9111414:+:7107640019820926978:-:591734:+ 9111414:-:7107640019820926978:+:7107640019812407298:+ 9111414:-:7107640019820926978:-:7107640019821518710:- 1111166:+:16040620779387988910:+:41006:+ 1111166:+:16040620779387988910:-:1070162:+ 1111166:-:16040620779387988910:+:16040620779387947906:+ 1111166:-:16040620779387988910:-:16040620779389059070:- 47386086:+:48:+:32:+ 47386086:+:48:-:47386048:+ 47386086:-:48:+:16:+ 47386086:-:48:-:47386096:- 26473797:+:389:+:261:+ 26473797:+:389:-:26473537:+ 26473797:-:389:+:129:+ 26473797:-:389:-:26473925:- 17023540:+:4276:+:52:+ 17023540:+:4276:-:17023492:+ 17023540:-:4276:+:4228:+ 17023540:-:4276:-:17027764:- 95295469:+:35454:+:620:+ 95295469:+:35454:-:95294848:+ 95295469:-:35454:+:34834:+ 95295469:-:35454:-:95330302:- 36189955:+:828989:+:534017:+ 36189955:+:828989:-:35655939:+ 36189955:-:828989:+:294973:+ 36189955:-:828989:-:36484927:- 27683387:+:7196252:+:2378264:+ 27683387:+:7196252:-:25305120:+ 27683387:-:7196252:+:4817988:+ 27683387:-:7196252:-:32501372:- 20598496:+:96595092:+:16796800:+ 20598496:+:96595092:-:3801696:+ 20598496:-:96595092:+:79798272:+ 20598496:-:96595092:-:100396768:- 52405233:+:448297730:+:35136256:+ 52405233:+:448297730:-:17268976:+ 52405233:-:448297730:+:413161474:+ 52405233:-:448297730:-:465566706:- 28601294:+:3655200346:+:26503754:+ 28601294:+:3655200346:-:2097542:+ 28601294:-:3655200346:+:3628696594:+ 28601294:-:3655200346:-:3657297886:- 58082551:+:63227536994:+:2491490:+ 58082551:+:63227536994:-:55591062:+ 58082551:-:63227536994:+:63225045504:+ 58082551:-:63227536994:-:63283128056:- 45462894:+:362807852579:+:13346:+ 45462894:+:362807852579:-:45449548:+ 45462894:-:362807852579:+:362807839234:+ 45462894:-:362807852579:-:362853302128:- 43674929:+:9230100781826:+:8407296:+ 43674929:+:9230100781826:-:35267632:+ 43674929:-:9230100781826:+:9230092374530:+ 43674929:-:9230100781826:-:9230136049458:- 54618017:+:41438206598519:+:16844065:+ 54618017:+:41438206598519:-:37773953:+ 54618017:-:41438206598519:+:41438189754455:+ 54618017:-:41438206598519:-:41438244372471:- 15470378:+:305103384568887:+:13108258:+ 15470378:+:305103384568887:-:2362120:+ 15470378:-:305103384568887:+:305103371460630:+ 15470378:-:305103384568887:-:305103386931008:- 96302219:+:7246692796591093:+:95248513:+ 96302219:+:7246692796591093:-:1053707:+ 96302219:-:7246692796591093:+:7246692701342581:+ 96302219:-:7246692796591093:-:7246692797644799:- 89458445:+:21720247485788866:+:22020608:+ 89458445:+:21720247485788866:-:67437836:+ 89458445:-:21720247485788866:+:21720247463768258:+ 89458445:-:21720247485788866:-:21720247553226702:- 29307952:+:472973565956368492:+:12197920:+ 29307952:+:472973565956368492:-:17110032:+ 29307952:-:472973565956368492:+:472973565944170560:+ 29307952:-:472973565956368492:-:472973565973478512:- 77753160:+:1456424841313129168:+:75629120:+ 77753160:+:1456424841313129168:-:2124032:+ 77753160:-:1456424841313129168:+:1456424841237500048:+ 77753160:-:1456424841313129168:-:1456424841315253200:- 69899801:+:61773447439782223994:+:69894168:+ 69899801:+:61773447439782223994:-:5632:+ 69899801:-:61773447439782223994:+:61773447439712329826:+ 69899801:-:61773447439782223994:-:61773447439782229626:- 331646006:+:15:+:6:+ 331646006:+:15:-:331646000:+ 331646006:-:15:+:10:+ 331646006:-:15:-:331646016:- 579175303:+:842:+:770:+ 579175303:+:842:-:579174534:+ 579175303:-:842:+:72:+ 579175303:-:842:-:579175376:- 353383197:+:5091:+:4865:+ 353383197:+:5091:-:353378333:+ 353383197:-:5091:+:227:+ 353383197:-:5091:-:353383423:- 272168654:+:98292:+:30404:+ 272168654:+:98292:-:272138252:+ 272168654:-:98292:+:67888:+ 272168654:-:98292:-:272236544:- 185188744:+:572907:+:557448:+ 185188744:+:572907:-:184631296:+ 185188744:-:572907:+:15464:+ 185188744:-:572907:-:185204208:- 489124153:+:8082300:+:2314552:+ 489124153:+:8082300:-:486809600:+ 489124153:-:8082300:+:5767748:+ 489124153:-:8082300:-:494891900:- 132839839:+:12906645:+:12644501:+ 132839839:+:12906645:-:120195339:+ 132839839:-:12906645:+:262145:+ 132839839:-:12906645:-:133101983:- 619175106:+:737283900:+:551685120:+ 619175106:+:737283900:-:67489984:+ 619175106:-:737283900:+:185598780:+ 619175106:-:737283900:-:804773884:- 132533947:+:1730902937:+:119687833:+ 132533947:+:1730902937:-:12846115:+ 132533947:-:1730902937:+:1611215105:+ 132533947:-:1730902937:-:1743749051:- 262266668:+:40492311944:+:226592008:+ 262266668:+:40492311944:-:35674664:+ 262266668:-:40492311944:+:40265719936:+ 262266668:-:40492311944:-:40527986608:- 303714730:+:565606476755:+:268452226:+ 303714730:+:565606476755:-:35262504:+ 303714730:-:565606476755:+:565338024530:+ 303714730:-:565606476755:-:565641739260:- 342177361:+:8157489927155:+:272634449:+ 342177361:+:8157489927155:-:69542913:+ 342177361:-:8157489927155:+:8157217292707:+ 342177361:-:8157489927155:-:8157559470067:- 722799481:+:71681732668843:+:538183977:+ 722799481:+:71681732668843:-:184615505:+ 722799481:-:71681732668843:+:71681194484867:+ 722799481:-:71681732668843:-:71681917284347:- 624536114:+:645609123200687:+:70363682:+ 624536114:+:645609123200687:-:554172432:+ 624536114:-:645609123200687:+:645609052837006:+ 624536114:-:645609123200687:-:645609677373120:- 491177882:+:8459718824811854:+:88261898:+ 491177882:+:8459718824811854:-:402915986:+ 491177882:-:8459718824811854:+:8459718736549958:+ 491177882:-:8459718824811854:-:8459719227727838:- 546229578:+:65502029899847071:+:935178:+ 546229578:+:65502029899847071:-:545294400:+ 546229578:-:65502029899847071:+:65502029898911894:+ 546229578:-:65502029899847071:-:65502030445141472:- 568625933:+:915719234316600754:+:560201984:+ 568625933:+:915719234316600754:-:8423948:+ 568625933:-:915719234316600754:+:915719233756398770:+ 568625933:-:915719234316600754:-:915719234325024702:- 227934452:+:6282076775572929274:+:25166064:+ 227934452:+:6282076775572929274:-:202768388:+ 227934452:-:6282076775572929274:+:6282076775547763208:+ 227934452:-:6282076775572929274:-:6282076775775697660:- 910213502:+:15506372791721583382:+:339788054:+ 910213502:+:15506372791721583382:-:570425450:+ 910213502:-:15506372791721583382:+:15506372791381795330:+ 910213502:-:15506372791721583382:-:15506372792292008830:- 2514054951:+:84:+:4:+ 2514054951:+:84:-:2514054948:+ 2514054951:-:84:+:80:+ 2514054951:-:84:-:2514055032:- 7910258915:+:100:+:96:+ 7910258915:+:100:-:7910258816:+ 7910258915:-:100:+:4:+ 7910258915:-:100:-:7910258916:- 7059996806:+:8977:+:0:+ 7059996806:+:8977:-:7059996806:+ 7059996806:-:8977:+:8976:+ 7059996806:-:8977:-:7060005782:- 5199841861:+:74499:+:66049:+ 5199841861:+:74499:-:5199775813:+ 5199841861:-:74499:+:8451:+ 5199841861:-:74499:-:5199850311:- 1782006711:+:372016:+:327984:+ 1782006711:+:372016:-:1781678736:+ 1782006711:-:372016:+:44032:+ 1782006711:-:372016:-:1782050752:- 2264568139:+:9342831:+:9077067:+ 2264568139:+:9342831:-:2255491073:+ 2264568139:-:9342831:+:265765:+ 2264568139:-:9342831:-:2264833903:- 8761682915:+:72566517:+:1049313:+ 8761682915:+:72566517:-:8760633603:+ 8761682915:-:72566517:+:71517205:+ 8761682915:-:72566517:-:8833200119:- 7400418719:+:322751548:+:286805020:+ 7400418719:+:322751548:-:7113613700:+ 7400418719:-:322751548:+:35946528:+ 7400418719:-:322751548:-:7436365248:- 2714633243:+:6407060091:+:566362139:+ 2714633243:+:6407060091:-:2148271105:+ 2714633243:-:6407060091:+:5840697953:+ 2714633243:-:6407060091:-:8555331195:- 8689204859:+:69229347159:+:73400403:+ 8689204859:+:69229347159:-:8615804457:+ 8689204859:-:69229347159:+:69155946757:+ 8689204859:-:69229347159:-:77845151615:- 2209888451:+:795931745970:+:20453506:+ 2209888451:+:795931745970:-:2189434946:+ 2209888451:-:795931745970:+:795911292464:+ 2209888451:-:795931745970:-:798121180916:- 2290958402:+:1413462932419:+:142868546:+ 2290958402:+:1413462932419:-:2148089856:+ 2290958402:-:1413462932419:+:1413320063874:+ 2290958402:-:1413462932419:-:1415611022276:- 8896437769:+:60354400887497:+:301990409:+ 8896437769:+:60354400887497:-:8594447361:+ 8896437769:-:60354400887497:+:60354098897089:+ 8896437769:-:60354400887497:-:60362995334857:- 1347106805:+:345585204747920:+:1347032720:+ 1347106805:+:345585204747920:-:74096:+ 1347106805:-:345585204747920:+:345583857715200:+ 1347106805:-:345585204747920:-:345585204822016:- 2878137196:+:4189997352239364:+:2206744836:+ 2878137196:+:4189997352239364:-:671392364:+ 2878137196:-:4189997352239364:+:4189995145494532:+ 2878137196:-:4189997352239364:-:4189998023631724:- 2641827432:+:81004746619040655:+:156307976:+ 2641827432:+:81004746619040655:-:2485519456:+ 2641827432:-:81004746619040655:+:81004746462732680:+ 2641827432:-:81004746619040655:-:81004749104560112:- 4275938647:+:697942995067694024:+:3327729984:+ 4275938647:+:697942995067694024:-:948208656:+ 4275938647:-:697942995067694024:+:697942991739964040:+ 4275938647:-:697942995067694024:-:697942996015902680:- 7743142527:+:5886947376457522903:+:3238140503:+ 7743142527:+:5886947376457522903:-:4505002025:+ 7743142527:-:5886947376457522903:+:5886947373219382401:+ 7743142527:-:5886947376457522903:-:5886947380962524927:- 3209285611:+:89650609867799529321:+:994051945:+ 3209285611:+:89650609867799529321:-:2215233667:+ 3209285611:-:89650609867799529321:+:89650609866805477377:+ 3209285611:-:89650609867799529321:-:89650609870014762987:- 65672873385:+:67:+:1:+ 65672873385:+:67:-:65672873385:+ 65672873385:-:67:+:67:+ 65672873385:-:67:-:65672873451:- 75424490261:+:879:+:773:+ 75424490261:+:879:-:75424489489:+ 75424490261:-:879:+:107:+ 75424490261:-:879:-:75424490367:- 88425013071:+:7050:+:6922:+ 88425013071:+:7050:-:88425006150:+ 88425013071:-:7050:+:128:+ 88425013071:-:7050:-:88425013200:- 73168011111:+:21830:+:5446:+ 73168011111:+:21830:-:73168005666:+ 73168011111:-:21830:+:16384:+ 73168011111:-:21830:-:73168027496:- 86040588068:+:736314:+:732192:+ 86040588068:+:736314:-:86039855876:+ 86040588068:-:736314:+:4120:+ 86040588068:-:736314:-:86040592188:- 65744095894:+:8168218:+:2359826:+ 65744095894:+:8168218:-:65741736070:+ 65744095894:-:8168218:+:5808394:+ 65744095894:-:8168218:-:65749904286:- 72128671031:+:94821053:+:19138613:+ 72128671031:+:94821053:-:72109532419:+ 72128671031:-:94821053:+:75682441:+ 72128671031:-:94821053:-:72204353471:- 18306283325:+:519669087:+:35751197:+ 18306283325:+:519669087:-:18270532129:+ 18306283325:-:519669087:+:483917891:+ 18306283325:-:519669087:-:18790201215:- 13898208174:+:7364143124:+:5174050820:+ 13898208174:+:7364143124:-:8724157356:+ 13898208174:-:7364143124:+:2190092304:+ 13898208174:-:7364143124:-:16088300480:- 34241056725:+:83321375044:+:14500038980:+ 34241056725:+:83321375044:-:19741017748:+ 34241056725:-:83321375044:+:68821336064:+ 34241056725:-:83321375044:-:103062392792:- 70601938357:+:954196141803:+:69256610977:+ 70601938357:+:954196141803:-:1345327381:+ 70601938357:-:954196141803:+:884939530827:+ 70601938357:-:954196141803:-:955541469183:- 56901147901:+:3753104472859:+:39024859161:+ 56901147901:+:3753104472859:-:17876288741:+ 56901147901:-:3753104472859:+:3714079613699:+ 56901147901:-:3753104472859:-:3770980761599:- 93800108465:+:76517493634927:+:92711162145:+ 93800108465:+:76517493634927:-:1088946321:+ 93800108465:-:76517493634927:+:76424782472783:+ 93800108465:-:76517493634927:-:76518582581247:- 82719794608:+:190230144595864:+:13961897360:+ 82719794608:+:190230144595864:-:68757897248:+ 82719794608:-:190230144595864:+:190216182698512:+ 82719794608:-:190230144595864:-:190298902493120:- 61357864199:+:9137742739462650:+:42949710082:+ 61357864199:+:9137742739462650:-:18408154118:+ 61357864199:-:9137742739462650:+:9137699789752568:+ 61357864199:-:9137742739462650:-:9137761147616768:- 94698803292:+:51133067481687961:+:327704:+ 94698803292:+:51133067481687961:-:94698475588:+ 94698803292:-:51133067481687961:+:51133067481360256:+ 94698803292:-:51133067481687961:-:51133162180163548:- 32742825737:+:950986225762315068:+:30276193032:+ 32742825737:+:950986225762315068:-:2466632704:+ 32742825737:-:950986225762315068:+:950986195486122036:+ 32742825737:-:950986225762315068:-:950986228228947772:- 78284701460:+:3361002227017506156:+:77613538564:+ 78284701460:+:3361002227017506156:-:671162900:+ 78284701460:-:3361002227017506156:+:3361002149403967596:+ 78284701460:-:3361002227017506156:-:3361002227688669052:- 44580569453:+:60852962986804990479:+:35970416653:+ 44580569453:+:60852962986804990479:-:8610152801:+ 44580569453:-:60852962986804990479:+:60852962950834573827:+ 44580569453:-:60852962986804990479:-:60852962995415143279:- 467667787196:+:67:+:0:+ 467667787196:+:67:-:467667787196:+ 467667787196:-:67:+:64:+ 467667787196:-:67:-:467667787260:- 722267493969:+:220:+:80:+ 722267493969:+:220:-:722267493888:+ 722267493969:-:220:+:140:+ 722267493969:-:220:-:722267494108:- 687259610747:+:8115:+:3635:+ 687259610747:+:8115:-:687259607113:+ 687259610747:-:8115:+:4481:+ 687259610747:-:8115:-:687259615227:- 270231104856:+:36609:+:3328:+ 270231104856:+:36609:-:270231101528:+ 270231104856:-:36609:+:33280:+ 270231104856:-:36609:-:270231138136:- 274605249049:+:700890:+:692248:+ 274605249049:+:700890:-:274604556800:+ 274605249049:-:700890:+:8642:+ 274605249049:-:700890:-:274605257690:- 934979659017:+:2747775:+:2188553:+ 934979659017:+:2747775:-:934977470465:+ 934979659017:-:2747775:+:559223:+ 934979659017:-:2747775:-:934980218239:- 485387633079:+:88864016:+:21725456:+ 485387633079:+:88864016:-:485365907632:+ 485387633079:-:88864016:+:67138560:+ 485387633079:-:88864016:-:485454771648:- 827677207720:+:370579478:+:335972352:+ 827677207720:+:370579478:-:827341235368:+ 827677207720:-:370579478:+:34607120:+ 827677207720:-:370579478:-:827711814840:- 547204792641:+:4791891895:+:4388421889:+ 547204792641:+:4791891895:-:542816370753:+ 547204792641:-:4791891895:+:403470007:+ 547204792641:-:4791891895:-:547608262647:- 290805008308:+:21136297524:+:2706392628:+ 290805008308:+:21136297524:-:288098615684:+ 290805008308:-:21136297524:+:18429904900:+ 290805008308:-:21136297524:-:309234913204:- 513209277007:+:950707563360:+:366557006400:+ 513209277007:+:950707563360:-:146652270592:+ 513209277007:-:950707563360:+:584150556960:+ 513209277007:-:950707563360:-:1097359833952:- 749461012584:+:8099280786408:+:52651163752:+ 749461012584:+:8099280786408:-:696809848840:+ 749461012584:-:8099280786408:+:8046629622664:+ 749461012584:-:8099280786408:-:8796090635240:- 708562751866:+:12872505922557:+:704796201336:+ 708562751866:+:12872505922557:-:3766550530:+ 708562751866:-:12872505922557:+:12167709721220:+ 708562751866:-:12872505922557:-:12876272473086:- 978297677487:+:367912048298875:+:554085417515:+ 978297677487:+:367912048298875:-:424212259973:+ 978297677487:-:367912048298875:+:367357962881361:+ 978297677487:-:367912048298875:-:368336260558847:- 507331437415:+:6525413592505024:+:361297412672:+ 507331437415:+:6525413592505024:-:146034024768:+ 507331437415:-:6525413592505024:+:6525052295092352:+ 507331437415:-:6525413592505024:-:6525559626529792:- 117758151249:+:63552164943887538:+:117712013328:+ 117758151249:+:63552164943887538:-:46137920:+ 117758151249:-:63552164943887538:+:63552047231874210:+ 117758151249:-:63552164943887538:-:63552164990025458:- 387766131327:+:954064857514366526:+:319044031038:+ 387766131327:+:954064857514366526:-:68722100290:+ 387766131327:-:954064857514366526:+:954064538470335488:+ 387766131327:-:954064857514366526:-:954064926236466816:- 319929119017:+:1895100054208709934:+:276627063080:+ 319929119017:+:1895100054208709934:-:43302055936:+ 319929119017:-:1895100054208709934:+:1895099777581646854:+ 319929119017:-:1895100054208709934:-:1895100097510765870:- 695104297225:+:72537395973370190518:+:5705340928:+ 695104297225:+:72537395973370190518:-:689398956296:+ 695104297225:-:72537395973370190518:+:72537395967664849590:+ 695104297225:-:72537395973370190518:-:72537396662769146814:- 7701353916063:+:27:+:27:+ 7701353916063:+:27:-:7701353916037:+ 7701353916063:-:27:+:1:+ 7701353916063:-:27:-:7701353916063:- 5945927516150:+:809:+:800:+ 5945927516150:+:809:-:5945927515350:+ 5945927516150:-:809:+:8:+ 5945927516150:-:809:-:5945927516158:- 2539531611102:+:9093:+:9092:+ 2539531611102:+:9093:-:2539531602010:+ 2539531611102:-:9093:+:0:+ 2539531611102:-:9093:-:2539531611102:- 6646850202326:+:10767:+:10758:+ 6646850202326:+:10767:-:6646850191568:+ 6646850202326:-:10767:+:10:+ 6646850202326:-:10767:-:6646850202336:- 2537330384575:+:538800:+:530608:+ 2537330384575:+:538800:-:2537329853968:+ 2537330384575:-:538800:+:8192:+ 2537330384575:-:538800:-:2537330392768:- 8878727835850:+:9684393:+:196744:+ 8878727835850:+:9684393:-:8878727639106:+ 8878727835850:-:9684393:+:9487648:+ 8878727835850:-:9684393:-:8878737323498:- 1137870221347:+:60498340:+:35201056:+ 1137870221347:+:60498340:-:1137835020288:+ 1137870221347:-:60498340:+:25297284:+ 1137870221347:-:60498340:-:1137895518628:- 6639544994198:+:671588789:+:536904084:+ 6639544994198:+:671588789:-:6639008090114:+ 6639544994198:-:671588789:+:134684704:+ 6639544994198:-:671588789:-:6639679678902:- 2395602380924:+:3996595617:+:3288801312:+ 2395602380924:+:3996595617:-:2392313579612:+ 2395602380924:-:3996595617:+:707794304:+ 2395602380924:-:3996595617:-:2396310175228:- 1463954660327:+:20754244593:+:20670317537:+ 1463954660327:+:20754244593:-:1443284342791:+ 1463954660327:-:20754244593:+:83927057:+ 1463954660327:-:20754244593:-:1464038587383:- 1862319512433:+:797118115108:+:762673367328:+ 1862319512433:+:797118115108:-:1099646145104:+ 1862319512433:-:797118115108:+:34444747780:+ 1862319512433:-:797118115108:-:1896764260212:- 7806965898867:+:2674020842411:+:2235799820835:+ 7806965898867:+:2674020842411:-:5571166078033:+ 7806965898867:-:2674020842411:+:438221021577:+ 7806965898867:-:2674020842411:-:8245186920443:- 4372165825105:+:24832000365114:+:2824478134800:+ 4372165825105:+:24832000365114:-:1547687690304:+ 4372165825105:-:24832000365114:+:22007522230314:+ 4372165825105:-:24832000365114:-:26379688055418:- 4509986307578:+:910884632768595:+:4467036631122:+ 4509986307578:+:910884632768595:-:42949676456:+ 4509986307578:-:910884632768595:+:906417596137474:+ 4509986307578:-:910884632768595:-:910927582445052:- 1043758885731:+:2530177346988561:+:146043578881:+ 1043758885731:+:2530177346988561:-:897715306851:+ 1043758885731:-:2530177346988561:+:2530031303409681:+ 1043758885731:-:2530177346988561:-:2531075062295411:- 6171619594540:+:65921451841049904:+:1185680462112:+ 6171619594540:+:65921451841049904:-:4985939132416:+ 6171619594540:-:65921451841049904:+:65920266160587792:+ 6171619594540:-:65921451841049904:-:65926437780182320:- 3922127123740:+:566426243333222077:+:1649541407772:+ 3922127123740:+:566426243333222077:-:2272585715968:+ 3922127123740:-:566426243333222077:+:566424593791814308:+ 3922127123740:-:566426243333222077:-:566428515918938048:- 9037631693941:+:7215896946451575932:+:34696471668:+ 9037631693941:+:7215896946451575932:-:9002935222276:+ 9037631693941:-:7215896946451575932:+:7215896911755104264:+ 9037631693941:-:7215896946451575932:-:7215905949386798208:- 8260824297625:+:91132981807124225243:+:4398571196569:+ 8260824297625:+:91132981807124225243:-:3862253101057:+ 8260824297625:-:91132981807124225243:+:91132977408553028675:+ 8260824297625:-:91132981807124225243:-:91132985669377326299:- 99408839807031:+:51:+:51:+ 99408839807031:+:51:-:99408839806981:+ 99408839807031:-:51:+:1:+ 99408839807031:-:51:-:99408839807031:- 69149187254542:+:691:+:2:+ 69149187254542:+:691:-:69149187254540:+ 69149187254542:-:691:+:690:+ 69149187254542:-:691:-:69149187255232:- 87674069678635:+:1500:+:8:+ 87674069678635:+:1500:-:87674069678624:+ 87674069678635:-:1500:+:1492:+ 87674069678635:-:1500:-:87674069680124:- 25639712794542:+:62124:+:8876:+ 25639712794542:+:62124:-:25639712785668:+ 25639712794542:-:62124:+:53248:+ 25639712794542:-:62124:-:25639712847792:- 72459278920545:+:689398:+:32864:+ 72459278920545:+:689398:-:72459278887680:+ 72459278920545:-:689398:+:656534:+ 72459278920545:-:689398:-:72459279577078:- 80284445351621:+:7232663:+:4725893:+ 80284445351621:+:7232663:-:80284440625729:+ 80284445351621:-:7232663:+:2506771:+ 80284445351621:-:7232663:-:80284447858391:- 50998551509214:+:46104123:+:42694682:+ 50998551509214:+:46104123:-:50998508814532:+ 50998551509214:-:46104123:+:3409442:+ 50998551509214:-:46104123:-:50998554918656:- 60051050336590:+:328776821:+:293605444:+ 60051050336590:+:328776821:-:60050756731146:+ 60051050336590:-:328776821:+:35171376:+ 60051050336590:-:328776821:-:60051085507966:- 68712391357965:+:1855296160:+:1216713216:+ 68712391357965:+:1855296160:-:68711174644736:+ 68712391357965:-:1855296160:+:638582944:+ 68712391357965:-:1855296160:-:68713029940896:- 15954262772486:+:61307143398:+:8659156998:+ 15954262772486:+:61307143398:-:15945603615490:+ 15954262772486:-:61307143398:+:52647986402:+ 15954262772486:-:61307143398:-:16006910758886:- 67589257415197:+:139480361890:+:138943482368:+ 67589257415197:+:139480361890:-:67450313932828:+ 67589257415197:-:139480361890:+:536879522:+ 67589257415197:-:139480361890:-:67589794294718:- 71942910766907:+:1161469911976:+:1159657972520:+ 71942910766907:+:1161469911976:-:70783252794392:+ 71942910766907:-:1161469911976:+:1811939456:+ 71942910766907:-:1161469911976:-:71944722706368:- 59365912182309:+:91987323772296:+:19414124682240:+ 59365912182309:+:91987323772296:-:39951787500064:+ 59365912182309:-:91987323772296:+:72573199090056:+ 59365912182309:-:91987323772296:-:131939111272360:- 19645990550261:+:114016725279420:+:1726850048692:+ 19645990550261:+:114016725279420:-:17919140501572:+ 19645990550261:-:114016725279420:+:112289875230728:+ 19645990550261:-:114016725279420:-:131935865780992:- 72723366380194:+:4234143907662891:+:2354481659938:+ 72723366380194:+:4234143907662891:-:70368884720256:+ 72723366380194:-:4234143907662891:+:4231789426002954:+ 72723366380194:-:4234143907662891:-:4304512792383148:- 96553576322599:+:42163792379776661:+:74288456402437:+ 96553576322599:+:42163792379776661:-:22265119920163:+ 96553576322599:-:42163792379776661:+:42089503923374225:+ 96553576322599:-:42163792379776661:-:42186057499696823:- 61137157425822:+:381763295954871975:+:3919334605446:+ 61137157425822:+:381763295954871975:-:57217822820376:+ 61137157425822:-:381763295954871975:+:381759376620266530:+ 61137157425822:-:381763295954871975:-:381820513777692352:- 12019628023392:+:1622358278132959309:+:2482499520576:+ 12019628023392:+:1622358278132959309:-:9537128502816:+ 12019628023392:-:1622358278132959309:+:1622355795633438720:+ 12019628023392:-:1622358278132959309:-:1622367815261462112:- 22170274015980:+:47491847720331868999:+:4539935763012:+ 22170274015980:+:47491847720331868999:-:17630338252968:+ 22170274015980:-:47491847720331868999:+:47491843180396105988:+ 22170274015980:-:47491847720331868999:-:47491865350670121968:- 462575152807645:+:78:+:76:+ 462575152807645:+:78:-:462575152807568:+ 462575152807645:-:78:+:2:+ 462575152807645:-:78:-:462575152807646:- 782075626851789:+:651:+:137:+ 782075626851789:+:651:-:782075626851653:+ 782075626851789:-:651:+:515:+ 782075626851789:-:651:-:782075626852303:- 435011786737105:+:2072:+:16:+ 435011786737105:+:2072:-:435011786737088:+ 435011786737105:-:2072:+:2056:+ 435011786737105:-:2072:-:435011786739160:- 334866017983618:+:12409:+:4096:+ 334866017983618:+:12409:-:334866017979522:+ 334866017983618:-:12409:+:8312:+ 334866017983618:-:12409:-:334866017991930:- 223095163271754:+:742658:+:69634:+ 223095163271754:+:742658:-:223095163202122:+ 223095163271754:-:742658:+:673026:+ 223095163271754:-:742658:-:223095163944778:- 277146631824395:+:5782337:+:532481:+ 277146631824395:+:5782337:-:277146631291915:+ 277146631824395:-:5782337:+:5249857:+ 277146631824395:-:5782337:-:277146637074251:- 344879804156860:+:68523398:+:68518276:+ 344879804156860:+:68523398:-:344879735638584:+ 344879804156860:-:68523398:+:5124:+ 344879804156860:-:68523398:-:344879804161984:- 208716844665777:+:305077491:+:2230449:+ 208716844665777:+:305077491:-:208716842435329:+ 208716844665777:-:305077491:+:302847043:+ 208716844665777:-:305077491:-:208717147512819:- 989994139563805:+:4961977887:+:553682461:+ 989994139563805:+:4961977887:-:989993585881345:+ 989994139563805:-:4961977887:+:4408295427:+ 989994139563805:-:4961977887:-:989998547859231:- 516172650015491:+:74454908550:+:69882489346:+ 516172650015491:+:74454908550:-:516102767526146:+ 516172650015491:-:74454908550:+:4572419204:+ 516172650015491:-:74454908550:-:516177222434696:- 556443560972100:+:756894423601:+:69126851072:+ 556443560972100:+:756894423601:-:556374434121028:+ 556443560972100:-:756894423601:+:687767572528:+ 556443560972100:-:756894423601:-:557131328544628:- 242473127759330:+:6114462511400:+:4978404327712:+ 242473127759330:+:6114462511400:-:237494723431616:+ 242473127759330:-:6114462511400:+:1136058183688:+ 242473127759330:-:6114462511400:-:243609185943016:- 357800233949704:+:51318593053670:+:4572168864256:+ 357800233949704:+:51318593053670:-:353228065085448:+ 357800233949704:-:51318593053670:+:46746424189408:+ 357800233949704:-:51318593053670:-:404546658139112:- 218693901346159:+:814971085716891:+:215668091839755:+ 218693901346159:+:814971085716891:-:3025809506405:+ 218693901346159:-:814971085716891:+:599302993877137:+ 218693901346159:-:814971085716891:-:817996895223295:- 410186214553104:+:1219063728797644:+:92407840388608:+ 410186214553104:+:1219063728797644:-:317778374164496:+ 410186214553104:-:1219063728797644:+:1126655888409024:+ 410186214553104:-:1219063728797644:-:1536842102962128:- 555465957893358:+:23391166500313009:+:308002204812448:+ 555465957893358:+:23391166500313009:-:247463753080910:+ 555465957893358:-:23391166500313009:+:23083164295500560:+ 555465957893358:-:23391166500313009:-:23638630253393918:- 195250067863733:+:833289919219557649:+:53344314777617:+ 195250067863733:+:833289919219557649:-:141905753086117:+ 195250067863733:-:833289919219557649:+:833236574904780033:+ 195250067863733:-:833289919219557649:-:833431824972643765:- 778840702942675:+:9157047117911609556:+:75112168706256:+ 778840702942675:+:9157047117911609556:-:703728534236416:+ 778840702942675:-:9157047117911609556:+:9156972005742903300:+ 778840702942675:-:9157047117911609556:-:9157750846445845972:- 610066988334940:+:90175511567434662538:+:565148976693768:+ 610066988334940:+:90175511567434662538:-:44918011641172:+ 610066988334940:-:90175511567434662538:+:90174946418457968768:+ 610066988334940:-:90175511567434662538:-:90175556485446303708:- 3677528572845243:+:31:+:27:+ 3677528572845243:+:31:-:3677528572845217:+ 3677528572845243:-:31:+:5:+ 3677528572845243:-:31:-:3677528572845247:- 1430076910106193:+:676:+:512:+ 1430076910106193:+:676:-:1430076910105680:+ 1430076910106193:-:676:+:164:+ 1430076910106193:-:676:-:1430076910106356:- 3652164693018594:+:1274:+:1250:+ 3652164693018594:+:1274:-:3652164693017346:+ 3652164693018594:-:1274:+:26:+ 3652164693018594:-:1274:-:3652164693018618:- 8296848088301038:+:46966:+:46438:+ 8296848088301038:+:46966:-:8296848088254602:+ 8296848088301038:-:46966:+:530:+ 8296848088301038:-:46966:-:8296848088301566:- 9549605241579092:+:732400:+:730192:+ 9549605241579092:+:732400:-:9549605240848912:+ 9549605241579092:-:732400:+:2208:+ 9549605241579092:-:732400:-:9549605241581312:- 1670689195066017:+:7696520:+:128:+ 1670689195066017:+:7696520:-:1670689195065888:+ 1670689195066017:-:7696520:+:7696392:+ 1670689195066017:-:7696520:-:1670689202762408:- 8389817715606898:+:22762313:+:737600:+ 8389817715606898:+:22762313:-:8389817714869298:+ 8389817715606898:-:22762313:+:22024712:+ 8389817715606898:-:22762313:-:8389817737631610:- 4357986350282944:+:646094688:+:67115072:+ 4357986350282944:+:646094688:-:4357986283167872:+ 4357986350282944:-:646094688:+:578979648:+ 4357986350282944:-:646094688:-:4357986929262592:- 6152619634086699:+:6675354993:+:27283745:+ 6152619634086699:+:6675354993:-:6152619606802955:+ 6152619634086699:-:6675354993:+:6648071249:+ 6152619634086699:-:6675354993:-:6152626282157947:- 3537854983058703:+:38823952225:+:38788936961:+ 3537854983058703:+:38823952225:-:3537816194121743:+ 3537854983058703:-:38823952225:+:35015265:+ 3537854983058703:-:38823952225:-:3537855018073967:- 7048602999316911:+:974168888949:+:699021492261:+ 7048602999316911:+:974168888949:-:7047903977824651:+ 7048602999316911:-:974168888949:+:275147396689:+ 7048602999316911:-:974168888949:-:7048878146713599:- 8269055074207310:+:9051431083149:+:177743168524:+ 8269055074207310:+:9051431083149:-:8268877331038786:+ 8269055074207310:-:9051431083149:+:8873687914624:+ 8269055074207310:-:9051431083149:-:8277928762121934:- 6753174311571908:+:64961150284606:+:62744678109444:+ 6753174311571908:+:64961150284606:-:6690429633462464:+ 6753174311571908:-:64961150284606:+:2216472175164:+ 6753174311571908:-:64961150284606:-:6755390783747072:- 3090610523161597:+:243130672529613:+:237633097580749:+ 3090610523161597:+:243130672529613:-:2852977425580849:+ 3090610523161597:-:243130672529613:+:5497574948865:+ 3090610523161597:-:243130672529613:-:3096108098110461:- 3529622860419104:+:6410249769210991:+:1268853938606112:+ 3529622860419104:+:6410249769210991:-:2260768921812992:+ 3529622860419104:-:6410249769210991:+:5141395830604896:+ 3529622860419104:-:6410249769210991:-:8671018691024000:- 2118551257191341:+:83756702026723110:+:422515379536676:+ 2118551257191341:+:83756702026723110:-:1696035877654664:+ 2118551257191341:-:83756702026723110:+:83334186647186434:+ 2118551257191341:-:83756702026723110:-:85452737904377774:- 7140307629736356:+:109056260521495900:+:371713326612740:+ 7140307629736356:+:109056260521495900:-:6768594303123620:+ 7140307629736356:-:109056260521495900:+:108684547194883164:+ 7140307629736356:-:109056260521495900:-:115824854824619516:- 4732627561458268:+:6427566802281809223:+:4574246202343492:+ 4732627561458268:+:6427566802281809223:-:158381359114776:+ 4732627561458268:-:6427566802281809223:+:6422992556079465732:+ 4732627561458268:-:6427566802281809223:-:6427725183640924000:- 8299949552232997:+:15857509510312164171:+:4838684528536065:+ 8299949552232997:+:15857509510312164171:-:3461265023696933:+ 8299949552232997:-:15857509510312164171:+:15852670825783628107:+ 8299949552232997:-:15857509510312164171:-:15860970775335861103:- 58325631119564618:+:31:+:10:+ 58325631119564618:+:31:-:58325631119564608:+ 58325631119564618:-:31:+:22:+ 58325631119564618:-:31:-:58325631119564640:- 74175772497440526:+:896:+:768:+ 74175772497440526:+:896:-:74175772497439744:+ 74175772497440526:-:896:+:128:+ 74175772497440526:-:896:-:74175772497440640:- 71107714948179061:+:2456:+:16:+ 71107714948179061:+:2456:-:71107714948179040:+ 71107714948179061:-:2456:+:2440:+ 71107714948179061:-:2456:-:71107714948181496:- 88956977175553108:+:90182:+:90180:+ 88956977175553108:+:90182:-:88956977175462928:+ 88956977175553108:-:90182:+:4:+ 88956977175553108:-:90182:-:88956977175553112:- 84006263267242511:+:818238:+:12302:+ 84006263267242511:+:818238:-:84006263267230210:+ 84006263267242511:-:818238:+:805936:+ 84006263267242511:-:818238:-:84006263268048448:- 73860254893152451:+:3026161:+:2885825:+ 73860254893152451:+:3026161:-:73860254890266627:+ 73860254893152451:-:3026161:+:140337:+ 73860254893152451:-:3026161:-:73860254893292787:- 25623344653274793:+:21510353:+:2177:+ 25623344653274793:+:21510353:-:25623344653272617:+ 25623344653274793:-:21510353:+:21508177:+ 25623344653274793:-:21510353:-:25623344674782969:- 48587805377046604:+:843740717:+:843718668:+ 48587805377046604:+:843740717:-:48587804533327936:+ 48587805377046604:-:843740717:+:22052:+ 48587805377046604:-:843740717:-:48587805377068656:- 36224479547060182:+:8998846112:+:1273472:+ 36224479547060182:+:8998846112:-:36224479545786688:+ 36224479547060182:-:8998846112:+:8997572640:+ 36224479547060182:-:8998846112:-:36224488544632800:- 78165672625273131:+:26273234320:+:9093331200:+ 78165672625273131:+:26273234320:-:78165663531941920:+ 78165672625273131:-:26273234320:+:17179903120:+ 78165672625273131:-:26273234320:-:78165689805176240:- 96504968002231514:+:236382734027:+:4303373514:+ 96504968002231514:+:236382734027:-:96504963698858000:+ 96504968002231514:-:236382734027:+:232079360514:+ 96504968002231514:-:236382734027:-:96505200081592028:- 97285481898722516:+:9424586487299:+:551167198208:+ 97285481898722516:+:9424586487299:-:97284930731524308:+ 97285481898722516:-:9424586487299:+:8873419289088:+ 97285481898722516:-:9424586487299:-:97294355318011604:- 79218611612413234:+:86080388255898:+:70678061563922:+ 79218611612413234:+:86080388255898:-:79147933550849314:+ 79218611612413234:-:86080388255898:+:15402326691978:+ 79218611612413234:-:86080388255898:-:79234013939105210:- 65516364789624484:+:617055067502594:+:5368883200:+ 65516364789624484:+:617055067502594:-:65516359420741284:+ 65516364789624484:-:617055067502594:+:617049698619392:+ 65516364789624484:-:617055067502594:-:66133414488243876:- 18554966230829563:+:4391532802481938:+:433208252565778:+ 18554966230829563:+:4391532802481938:-:18121757978263786:+ 18554966230829563:-:4391532802481938:+:3958324549916160:+ 18554966230829563:-:4391532802481938:-:22513290780745724:- 17211071973564785:+:58906633467903533:+:4790848684302369:+ 17211071973564785:+:58906633467903533:-:12420223289262417:+ 17211071973564785:-:58906633467903533:+:54115784783601165:+ 17211071973564785:-:58906633467903533:-:71326856757165949:- 36912653452733867:+:744274267947943977:+:36837338925097:+ 36912653452733867:+:744274267947943977:-:36875816113808771:+ 36912653452733867:-:744274267947943977:+:744237430609018881:+ 36912653452733867:-:744274267947943977:-:781150084061752747:- 72101092074957889:+:7916764532741491074:+:72100498613962752:+ 72101092074957889:+:7916764532741491074:-:593460995136:+ 72101092074957889:-:7916764532741491074:+:7844664034127528322:+ 72101092074957889:-:7916764532741491074:-:7916765126202486210:- 61680968502696168:+:41005709652134100286:+:4787838549776424:+ 61680968502696168:+:41005709652134100286:-:56893129952919744:+ 61680968502696168:-:41005709652134100286:+:41000921813584323864:+ 61680968502696168:-:41005709652134100286:-:41062602782087020032:- 817619739005876104:+:37:+:0:+ 817619739005876104:+:37:-:817619739005876104:+ 817619739005876104:-:37:+:32:+ 817619739005876104:-:37:-:817619739005876136:- 162970774037920307:+:483:+:35:+ 162970774037920307:+:483:-:162970774037920273:+ 162970774037920307:-:483:+:449:+ 162970774037920307:-:483:-:162970774037920755:- 627238844701195809:+:6750:+:6656:+ 627238844701195809:+:6750:-:627238844701189152:+ 627238844701195809:-:6750:+:94:+ 627238844701195809:-:6750:-:627238844701195902:- 769215571164571535:+:81099:+:9355:+ 769215571164571535:+:81099:-:769215571164562181:+ 769215571164571535:-:81099:+:71745:+ 769215571164571535:-:81099:-:769215571164643279:- 660192614224856731:+:690810:+:33306:+ 660192614224856731:+:690810:-:660192614224823426:+ 660192614224856731:-:690810:+:657504:+ 660192614224856731:-:690810:-:660192614225514236:- 237871311694930571:+:1675313:+:1114113:+ 237871311694930571:+:1675313:-:237871311693816459:+ 237871311694930571:-:1675313:+:561201:+ 237871311694930571:-:1675313:-:237871311695491771:- 182384622981222565:+:19817537:+:17432577:+ 182384622981222565:+:19817537:-:182384622963789989:+ 182384622981222565:-:19817537:+:2384961:+ 182384622981222565:-:19817537:-:182384622983607525:- 443973990236909141:+:124173332:+:17050644:+ 443973990236909141:+:124173332:-:443973990219858500:+ 443973990236909141:-:124173332:+:107122688:+ 443973990236909141:-:124173332:-:443973990344031832:- 253167309973268691:+:7568852644:+:6495043712:+ 253167309973268691:+:7568852644:-:253167303478224976:+ 253167309973268691:-:7568852644:+:1073808932:+ 253167309973268691:-:7568852644:-:253167311047077620:- 568338187419614829:+:46535483800:+:3576373256:+ 568338187419614829:+:46535483800:-:568338183843241576:+ 568338187419614829:-:46535483800:+:42959110544:+ 568338187419614829:-:46535483800:-:568338230378725376:- 752226724769568708:+:109972859822:+:105232991108:+ 752226724769568708:+:109972859822:-:752226619536577600:+ 752226724769568708:-:109972859822:+:4739868716:+ 752226724769568708:-:109972859822:-:752226729509437424:- 842957254834230753:+:8463045822977:+:1237824241665:+ 842957254834230753:+:8463045822977:-:842956017009989089:+ 842957254834230753:-:8463045822977:+:7225221581313:+ 842957254834230753:-:8463045822977:-:842964480055812065:- 290901261172147098:+:31526042603388:+:30941489660696:+ 290901261172147098:+:31526042603388:-:290870319682486400:+ 290901261172147098:-:31526042603388:+:584552942692:+ 290901261172147098:-:31526042603388:-:290901845725089788:- 497339605292889666:+:946888553200837:+:639023120004160:+ 497339605292889666:+:946888553200837:-:496700582172885506:+ 497339605292889666:-:946888553200837:+:307865433196676:+ 497339605292889666:-:946888553200837:-:497647470726086342:- 752902970729044198:+:7527984044859662:+:5233680859791366:+ 752902970729044198:+:7527984044859662:-:747669289869252834:+ 752902970729044198:-:7527984044859662:+:2294303185068298:+ 752902970729044198:-:7527984044859662:-:755197273914112494:- 312392459136078596:+:83826645143637333:+:500557304365316:+ 312392459136078596:+:83826645143637333:-:311891901831713280:+ 312392459136078596:-:83826645143637333:+:83326087839272020:+ 312392459136078596:-:83826645143637333:-:395718546975350616:- 473145076382288613:+:294953492401593156:+:292983153287072324:+ 473145076382288613:+:294953492401593156:-:180161923095216292:+ 473145076382288613:-:294953492401593156:+:1970339114520832:+ 473145076382288613:-:294953492401593156:-:475115415496809448:- 208617779006015725:+:2965394443280636537:+:10450311523600489:+ 208617779006015725:+:2965394443280636537:-:198167467482415237:+ 208617779006015725:-:2965394443280636537:+:2954944131757036049:+ 208617779006015725:-:2965394443280636537:-:3163561910763051773:- 150095850368045144:+:99049409970251206220:+:149798565295849544:+ 150095850368045144:+:99049409970251206220:-:297285072195600:+ 150095850368045144:-:99049409970251206220:+:98899611404955356680:+ 150095850368045144:-:99049409970251206220:-:99049707255323401824:- 8902154050572738324:+:60:+:20:+ 8902154050572738324:+:60:-:8902154050572738308:+ 8902154050572738324:-:60:+:44:+ 8902154050572738324:-:60:-:8902154050572738364:- 1550621466268166559:+:393:+:393:+ 1550621466268166559:+:393:-:1550621466268166167:+ 1550621466268166559:-:393:+:1:+ 1550621466268166559:-:393:-:1550621466268166559:- 6498526993157843088:+:9887:+:8336:+ 6498526993157843088:+:9887:-:6498526993157834752:+ 6498526993157843088:-:9887:+:1552:+ 6498526993157843088:-:9887:-:6498526993157844640:- 9958861015242101969:+:82791:+:81985:+ 9958861015242101969:+:82791:-:9958861015242019985:+ 9958861015242101969:-:82791:+:807:+ 9958861015242101969:-:82791:-:9958861015242102775:- 6007457892931655654:+:129157:+:53380:+ 6007457892931655654:+:129157:-:6007457892931602274:+ 6007457892931655654:-:129157:+:75776:+ 6007457892931655654:-:129157:-:6007457892931731430:- 4239575964608732117:+:1206066:+:784:+ 4239575964608732117:+:1206066:-:4239575964608731332:+ 4239575964608732117:-:1206066:+:1205282:+ 4239575964608732117:-:1206066:-:4239575964609937398:- 6660207548266957652:+:88822974:+:71516180:+ 6660207548266957652:+:88822974:-:6660207548195441472:+ 6660207548266957652:-:88822974:+:17306796:+ 6660207548266957652:-:88822974:-:6660207548284264448:- 3834724818804738293:+:553379938:+:3868768:+ 3834724818804738293:+:553379938:-:3834724818800869524:+ 3834724818804738293:-:553379938:+:549511170:+ 3834724818804738293:-:553379938:-:3834724819354249462:- 8679646170711734245:+:2098884512:+:488253344:+ 8679646170711734245:+:2098884512:-:8679646170223480928:+ 8679646170711734245:-:2098884512:+:1610631168:+ 8679646170711734245:-:2098884512:-:8679646172322365440:- 6356558509571781341:+:84230714405:+:4630654981:+ 6356558509571781341:+:84230714405:-:6356558504941126361:+ 6356558509571781341:-:84230714405:+:79600059425:+ 6356558509571781341:-:84230714405:-:6356558589171840765:- 5363796475244967284:+:844267204193:+:277062558816:+ 5363796475244967284:+:844267204193:-:5363796198182408468:+ 5363796475244967284:-:844267204193:+:567204645376:+ 5363796475244967284:-:844267204193:-:5363797042449612660:- 8695601967442305911:+:6020304421225:+:1550484373857:+ 8695601967442305911:+:6020304421225:-:8695600416957932055:+ 8695601967442305911:-:6020304421225:+:4469820047369:+ 8695601967442305911:-:6020304421225:-:8695606437262353279:- 6044071441702032694:+:20923695103019:+:19808609997858:+ 6044071441702032694:+:20923695103019:-:6044051633092034836:+ 6044071441702032694:-:20923695103019:+:1115085105162:+ 6044071441702032694:-:20923695103019:-:6044072556787137856:- 1733477381483898256:+:356584685369783:+:4734488453520:+ 1733477381483898256:+:356584685369783:-:1733472646995444736:+ 1733477381483898256:-:356584685369783:+:351850196916272:+ 1733477381483898256:-:356584685369783:-:1733829231680814528:- 3160133837855230411:+:6099049600571809:+:4793911499852161:+ 3160133837855230411:+:6099049600571809:-:3155339926355378251:+ 3160133837855230411:-:6099049600571809:+:1305138100719649:+ 3160133837855230411:-:6099049600571809:-:3161438975955950059:- 7522515242191272167:+:58680176193043175:+:18103738934081767:+ 7522515242191272167:+:58680176193043175:-:7504411503257190401:+ 7522515242191272167:-:58680176193043175:+:40576437258961409:+ 7522515242191272167:-:58680176193043175:-:7563091679450233575:- 8614724186640768384:+:237616828025517920:+:219592267605742848:+ 8614724186640768384:+:237616828025517920:-:8395131919035025536:+ 8614724186640768384:-:237616828025517920:+:18024560419774976:+ 8614724186640768384:-:237616828025517920:-:8632748747060543360:- 4278121802890211897:+:9955842873934658225:+:723461163917685297:+ 4278121802890211897:+:9955842873934658225:-:3554660638972526601:+ 4278121802890211897:-:9955842873934658225:+:9232381710016972929:+ 4278121802890211897:-:9955842873934658225:-:13510503512907184825:- 3923219608582208301:+:12694045502446365477:+:3468338101710072613:+ 3923219608582208301:+:12694045502446365477:-:454881506872135689:+ 3923219608582208301:-:12694045502446365477:+:9225707400736292865:+ 3923219608582208301:-:12694045502446365477:-:13148927009318501165:- 83684991742640849251:+:11:+:3:+ 83684991742640849251:+:11:-:83684991742640849249:+ 83684991742640849251:-:11:+:9:+ 83684991742640849251:-:11:-:83684991742640849259:- 10755732757514066361:+:382:+:312:+ 10755732757514066361:+:382:-:10755732757514066048:+ 10755732757514066361:-:382:+:70:+ 10755732757514066361:-:382:-:10755732757514066430:- 14245871386598490437:+:2828:+:260:+ 14245871386598490437:+:2828:-:14245871386598490180:+ 14245871386598490437:-:2828:+:2568:+ 14245871386598490437:-:2828:-:14245871386598493008:- 24953617604065851243:+:43568:+:8736:+ 24953617604065851243:+:43568:-:24953617604065842496:+ 24953617604065851243:-:43568:+:34832:+ 24953617604065851243:-:43568:-:24953617604065886064:- 64099035388523101498:+:716026:+:568378:+ 64099035388523101498:+:716026:-:64099035388522533122:+ 64099035388523101498:-:716026:+:147650:+ 64099035388523101498:-:716026:-:64099035388523249146:- 32185667736598261276:+:6351958:+:2141204:+ 32185667736598261276:+:6351958:-:32185667736596120072:+ 32185667736598261276:-:6351958:+:4210756:+ 32185667736598261276:-:6351958:-:32185667736602472032:- 13703501596479193948:+:20008791:+:18875220:+ 13703501596479193948:+:20008791:-:13703501596460318728:+ 13703501596479193948:-:20008791:+:1133572:+ 13703501596479193948:-:20008791:-:13703501596480327520:- 31217453799517886186:+:397749423:+:2360490:+ 31217453799517886186:+:397749423:-:31217453799515525696:+ 31217453799517886186:-:397749423:+:395388934:+ 31217453799517886186:-:397749423:-:31217453799913275120:- 97588569495785945273:+:9527889645:+:918554793:+ 97588569495785945273:+:9527889645:-:97588569494867390481:+ 97588569495785945273:-:9527889645:+:8609334853:+ 97588569495785945273:-:9527889645:-:97588569504395280125:- 98727934424887290412:+:80625852451:+:11830321184:+ 98727934424887290412:+:80625852451:-:98727934413056969228:+ 98727934424887290412:-:80625852451:+:68795531264:+ 98727934424887290412:-:80625852451:-:98727934493682821676:- 18781340408486298957:+:741362727095:+:569561317381:+ 18781340408486298957:+:741362727095:-:18781339838924981577:+ 18781340408486298957:-:741362727095:+:171801409715:+ 18781340408486298957:-:741362727095:-:18781340580287708671:- 78903301433075599149:+:4367642050905:+:2851858317577:+ 78903301433075599149:+:4367642050905:-:78903298581217281573:+ 78903301433075599149:-:4367642050905:+:1515783733329:+ 78903301433075599149:-:4367642050905:-:78903302948859332477:- 49561351336733571795:+:97913155048737:+:79182123061249:+ 49561351336733571795:+:97913155048737:-:49561272154610510547:+ 49561351336733571795:-:97913155048737:+:18731031987489:+ 49561351336733571795:-:97913155048737:-:49561370067765559283:- 19912294788855406663:+:164341792401589:+:145222507962373:+ 19912294788855406663:+:164341792401589:-:19912149566347444291:+ 19912294788855406663:-:164341792401589:+:19119284439217:+ 19912294788855406663:-:164341792401589:-:19912313908139845879:- 63102008015621210744:+:2100858920870761:+:2063439739486824:+ 63102008015621210744:+:2100858920870761:-:63099944575881723920:+ 63102008015621210744:-:2100858920870761:+:37419181383944:+ 63102008015621210744:-:2100858920870761:-:63102045434802594688:- 52050995360252327939:+:77600208661251670:+:5067101572169730:+ 52050995360252327939:+:77600208661251670:-:52045928258680158210:+ 52050995360252327939:-:77600208661251670:+:72533107089081940:+ 52050995360252327939:-:77600208661251670:-:52123528467341409880:- 22460277771649684589:+:363112371113715983:+:360860274947260429:+ 22460277771649684589:+:363112371113715983:-:22099417496702424161:+ 22460277771649684589:-:363112371113715983:+:2252096166455555:+ 22460277771649684589:-:363112371113715983:-:22462529867816140143:- 52125168040159242654:+:1646865574224092249:+:1315266599903578136:+ 52125168040159242654:+:1646865574224092249:-:50809901440255664518:+ 52125168040159242654:-:1646865574224092249:+:331598974320514112:+ 52125168040159242654:-:1646865574224092249:-:52456767014479756766:- 44804785382944179079:+:87480047701314008409:+:3171240991172591873:+ 44804785382944179079:+:87480047701314008409:-:41633544391771587207:+ 44804785382944179079:-:87480047701314008409:+:84308806710141416537:+ 44804785382944179079:-:87480047701314008409:-:129113592093085595615:- Math-BigInt-2.005003/xt/author/lib-bitwise-_sand.t0000644403072340010010000000652514536617520021373 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 69001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_and'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $in3, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_sand(\$x, "$in1", \$y, "$in3");|; eval $test; is($@, "", "'$test' gives emtpy \$\@"); cmp_ok(scalar @got, '==', 2, "'$test' gives two output args"); # First output arg. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' first output arg is not the third input arg") } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); if ($strx eq $in0 || $strx eq $out0) { pass("'$test' first input value is unmodified or equal" . " to the output value"); } else { fail("'$test' first input value is unmodified or equal" . " to the output value"); diag(" got: '", $strx, "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (first output value)"); } } # Second output arg. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); # Other tests. is(ref($y), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($y), $in2, "'$test' third input arg is unmodified"); } Math-BigInt-2.005003/xt/author/lib-bitwise-_sor.dat0000644403072340010010000063353114505066136021556 0ustar OSPJADomain Users# Small values 0:+:0:+:0:+ 0:+:1:+:1:+ 0:+:1:-:1:- 0:+:2:+:2:+ 0:+:2:-:2:- 0:+:3:+:3:+ 0:+:3:-:3:- 0:+:4:+:4:+ 0:+:4:-:4:- 1:+:0:+:1:+ 1:-:0:+:1:- 1:+:1:+:1:+ 1:+:1:-:1:- 1:-:1:+:1:- 1:-:1:-:1:- 1:+:2:+:3:+ 1:+:2:-:1:- 1:-:2:+:1:- 1:-:2:-:1:- 1:+:3:+:3:+ 1:+:3:-:3:- 1:-:3:+:1:- 1:-:3:-:1:- 1:+:4:+:5:+ 1:+:4:-:3:- 1:-:4:+:1:- 1:-:4:-:1:- 2:+:0:+:2:+ 2:-:0:+:2:- 2:+:1:+:3:+ 2:+:1:-:1:- 2:-:1:+:1:- 2:-:1:-:1:- 2:+:2:+:2:+ 2:+:2:-:2:- 2:-:2:+:2:- 2:-:2:-:2:- 2:+:3:+:3:+ 2:+:3:-:1:- 2:-:3:+:1:- 2:-:3:-:1:- 2:+:4:+:6:+ 2:+:4:-:2:- 2:-:4:+:2:- 2:-:4:-:2:- 3:+:0:+:3:+ 3:-:0:+:3:- 3:+:1:+:3:+ 3:+:1:-:1:- 3:-:1:+:3:- 3:-:1:-:1:- 3:+:2:+:3:+ 3:+:2:-:1:- 3:-:2:+:1:- 3:-:2:-:1:- 3:+:3:+:3:+ 3:+:3:-:1:- 3:-:3:+:1:- 3:-:3:-:3:- 3:+:4:+:7:+ 3:+:4:-:1:- 3:-:4:+:3:- 3:-:4:-:3:- 4:+:0:+:4:+ 4:-:0:+:4:- 4:+:1:+:5:+ 4:+:1:-:1:- 4:-:1:+:3:- 4:-:1:-:1:- 4:+:2:+:6:+ 4:+:2:-:2:- 4:-:2:+:2:- 4:-:2:-:2:- 4:+:3:+:7:+ 4:+:3:-:3:- 4:-:3:+:1:- 4:-:3:-:3:- 4:+:4:+:4:+ 4:+:4:-:4:- 4:-:4:+:4:- 4:-:4:-:4:- # Values close to powers of 8 0:+:0:+:0:+ 0:+:1:+:1:+ 0:+:1:-:1:- 0:+:2:+:2:+ 0:+:2:-:2:- 0:+:3:+:3:+ 0:+:3:-:3:- 0:+:4:+:4:+ 0:+:4:-:4:- 0:+:64:+:64:+ 0:+:64:-:64:- 0:+:128:+:128:+ 0:+:128:-:128:- 0:+:256:+:256:+ 0:+:256:-:256:- 0:+:512:+:512:+ 0:+:512:-:512:- 0:+:16384:+:16384:+ 0:+:16384:-:16384:- 0:+:32768:+:32768:+ 0:+:32768:-:32768:- 0:+:65536:+:65536:+ 0:+:65536:-:65536:- 0:+:131072:+:131072:+ 0:+:131072:-:131072:- 0:+:4194304:+:4194304:+ 0:+:4194304:-:4194304:- 0:+:8388608:+:8388608:+ 0:+:8388608:-:8388608:- 0:+:16777216:+:16777216:+ 0:+:16777216:-:16777216:- 0:+:33554432:+:33554432:+ 0:+:33554432:-:33554432:- 0:+:1073741824:+:1073741824:+ 0:+:1073741824:-:1073741824:- 0:+:2147483648:+:2147483648:+ 0:+:2147483648:-:2147483648:- 0:+:4294967296:+:4294967296:+ 0:+:4294967296:-:4294967296:- 0:+:8589934592:+:8589934592:+ 0:+:8589934592:-:8589934592:- 0:+:274877906944:+:274877906944:+ 0:+:274877906944:-:274877906944:- 0:+:549755813888:+:549755813888:+ 0:+:549755813888:-:549755813888:- 0:+:1099511627776:+:1099511627776:+ 0:+:1099511627776:-:1099511627776:- 0:+:2199023255552:+:2199023255552:+ 0:+:2199023255552:-:2199023255552:- 0:+:70368744177664:+:70368744177664:+ 0:+:70368744177664:-:70368744177664:- 0:+:140737488355328:+:140737488355328:+ 0:+:140737488355328:-:140737488355328:- 0:+:281474976710656:+:281474976710656:+ 0:+:281474976710656:-:281474976710656:- 0:+:562949953421312:+:562949953421312:+ 0:+:562949953421312:-:562949953421312:- 0:+:18014398509481984:+:18014398509481984:+ 0:+:18014398509481984:-:18014398509481984:- 0:+:36028797018963968:+:36028797018963968:+ 0:+:36028797018963968:-:36028797018963968:- 0:+:72057594037927936:+:72057594037927936:+ 0:+:72057594037927936:-:72057594037927936:- 0:+:144115188075855872:+:144115188075855872:+ 0:+:144115188075855872:-:144115188075855872:- 1:+:0:+:1:+ 1:-:0:+:1:- 1:+:1:+:1:+ 1:+:1:-:1:- 1:-:1:+:1:- 1:-:1:-:1:- 1:+:2:+:3:+ 1:+:2:-:1:- 1:-:2:+:1:- 1:-:2:-:1:- 1:+:3:+:3:+ 1:+:3:-:3:- 1:-:3:+:1:- 1:-:3:-:1:- 1:+:4:+:5:+ 1:+:4:-:3:- 1:-:4:+:1:- 1:-:4:-:1:- 1:+:64:+:65:+ 1:+:64:-:63:- 1:-:64:+:1:- 1:-:64:-:1:- 1:+:128:+:129:+ 1:+:128:-:127:- 1:-:128:+:1:- 1:-:128:-:1:- 1:+:256:+:257:+ 1:+:256:-:255:- 1:-:256:+:1:- 1:-:256:-:1:- 1:+:512:+:513:+ 1:+:512:-:511:- 1:-:512:+:1:- 1:-:512:-:1:- 1:+:16384:+:16385:+ 1:+:16384:-:16383:- 1:-:16384:+:1:- 1:-:16384:-:1:- 1:+:32768:+:32769:+ 1:+:32768:-:32767:- 1:-:32768:+:1:- 1:-:32768:-:1:- 1:+:65536:+:65537:+ 1:+:65536:-:65535:- 1:-:65536:+:1:- 1:-:65536:-:1:- 1:+:131072:+:131073:+ 1:+:131072:-:131071:- 1:-:131072:+:1:- 1:-:131072:-:1:- 1:+:4194304:+:4194305:+ 1:+:4194304:-:4194303:- 1:-:4194304:+:1:- 1:-:4194304:-:1:- 1:+:8388608:+:8388609:+ 1:+:8388608:-:8388607:- 1:-:8388608:+:1:- 1:-:8388608:-:1:- 1:+:16777216:+:16777217:+ 1:+:16777216:-:16777215:- 1:-:16777216:+:1:- 1:-:16777216:-:1:- 1:+:33554432:+:33554433:+ 1:+:33554432:-:33554431:- 1:-:33554432:+:1:- 1:-:33554432:-:1:- 1:+:1073741824:+:1073741825:+ 1:+:1073741824:-:1073741823:- 1:-:1073741824:+:1:- 1:-:1073741824:-:1:- 1:+:2147483648:+:2147483649:+ 1:+:2147483648:-:2147483647:- 1:-:2147483648:+:1:- 1:-:2147483648:-:1:- 1:+:4294967296:+:4294967297:+ 1:+:4294967296:-:4294967295:- 1:-:4294967296:+:1:- 1:-:4294967296:-:1:- 1:+:8589934592:+:8589934593:+ 1:+:8589934592:-:8589934591:- 1:-:8589934592:+:1:- 1:-:8589934592:-:1:- 1:+:274877906944:+:274877906945:+ 1:+:274877906944:-:274877906943:- 1:-:274877906944:+:1:- 1:-:274877906944:-:1:- 1:+:549755813888:+:549755813889:+ 1:+:549755813888:-:549755813887:- 1:-:549755813888:+:1:- 1:-:549755813888:-:1:- 1:+:1099511627776:+:1099511627777:+ 1:+:1099511627776:-:1099511627775:- 1:-:1099511627776:+:1:- 1:-:1099511627776:-:1:- 1:+:2199023255552:+:2199023255553:+ 1:+:2199023255552:-:2199023255551:- 1:-:2199023255552:+:1:- 1:-:2199023255552:-:1:- 1:+:70368744177664:+:70368744177665:+ 1:+:70368744177664:-:70368744177663:- 1:-:70368744177664:+:1:- 1:-:70368744177664:-:1:- 1:+:140737488355328:+:140737488355329:+ 1:+:140737488355328:-:140737488355327:- 1:-:140737488355328:+:1:- 1:-:140737488355328:-:1:- 1:+:281474976710656:+:281474976710657:+ 1:+:281474976710656:-:281474976710655:- 1:-:281474976710656:+:1:- 1:-:281474976710656:-:1:- 1:+:562949953421312:+:562949953421313:+ 1:+:562949953421312:-:562949953421311:- 1:-:562949953421312:+:1:- 1:-:562949953421312:-:1:- 1:+:18014398509481984:+:18014398509481985:+ 1:+:18014398509481984:-:18014398509481983:- 1:-:18014398509481984:+:1:- 1:-:18014398509481984:-:1:- 1:+:36028797018963968:+:36028797018963969:+ 1:+:36028797018963968:-:36028797018963967:- 1:-:36028797018963968:+:1:- 1:-:36028797018963968:-:1:- 1:+:72057594037927936:+:72057594037927937:+ 1:+:72057594037927936:-:72057594037927935:- 1:-:72057594037927936:+:1:- 1:-:72057594037927936:-:1:- 1:+:144115188075855872:+:144115188075855873:+ 1:+:144115188075855872:-:144115188075855871:- 1:-:144115188075855872:+:1:- 1:-:144115188075855872:-:1:- 2:+:0:+:2:+ 2:-:0:+:2:- 2:+:1:+:3:+ 2:+:1:-:1:- 2:-:1:+:1:- 2:-:1:-:1:- 2:+:2:+:2:+ 2:+:2:-:2:- 2:-:2:+:2:- 2:-:2:-:2:- 2:+:3:+:3:+ 2:+:3:-:1:- 2:-:3:+:1:- 2:-:3:-:1:- 2:+:4:+:6:+ 2:+:4:-:2:- 2:-:4:+:2:- 2:-:4:-:2:- 2:+:64:+:66:+ 2:+:64:-:62:- 2:-:64:+:2:- 2:-:64:-:2:- 2:+:128:+:130:+ 2:+:128:-:126:- 2:-:128:+:2:- 2:-:128:-:2:- 2:+:256:+:258:+ 2:+:256:-:254:- 2:-:256:+:2:- 2:-:256:-:2:- 2:+:512:+:514:+ 2:+:512:-:510:- 2:-:512:+:2:- 2:-:512:-:2:- 2:+:16384:+:16386:+ 2:+:16384:-:16382:- 2:-:16384:+:2:- 2:-:16384:-:2:- 2:+:32768:+:32770:+ 2:+:32768:-:32766:- 2:-:32768:+:2:- 2:-:32768:-:2:- 2:+:65536:+:65538:+ 2:+:65536:-:65534:- 2:-:65536:+:2:- 2:-:65536:-:2:- 2:+:131072:+:131074:+ 2:+:131072:-:131070:- 2:-:131072:+:2:- 2:-:131072:-:2:- 2:+:4194304:+:4194306:+ 2:+:4194304:-:4194302:- 2:-:4194304:+:2:- 2:-:4194304:-:2:- 2:+:8388608:+:8388610:+ 2:+:8388608:-:8388606:- 2:-:8388608:+:2:- 2:-:8388608:-:2:- 2:+:16777216:+:16777218:+ 2:+:16777216:-:16777214:- 2:-:16777216:+:2:- 2:-:16777216:-:2:- 2:+:33554432:+:33554434:+ 2:+:33554432:-:33554430:- 2:-:33554432:+:2:- 2:-:33554432:-:2:- 2:+:1073741824:+:1073741826:+ 2:+:1073741824:-:1073741822:- 2:-:1073741824:+:2:- 2:-:1073741824:-:2:- 2:+:2147483648:+:2147483650:+ 2:+:2147483648:-:2147483646:- 2:-:2147483648:+:2:- 2:-:2147483648:-:2:- 2:+:4294967296:+:4294967298:+ 2:+:4294967296:-:4294967294:- 2:-:4294967296:+:2:- 2:-:4294967296:-:2:- 2:+:8589934592:+:8589934594:+ 2:+:8589934592:-:8589934590:- 2:-:8589934592:+:2:- 2:-:8589934592:-:2:- 2:+:274877906944:+:274877906946:+ 2:+:274877906944:-:274877906942:- 2:-:274877906944:+:2:- 2:-:274877906944:-:2:- 2:+:549755813888:+:549755813890:+ 2:+:549755813888:-:549755813886:- 2:-:549755813888:+:2:- 2:-:549755813888:-:2:- 2:+:1099511627776:+:1099511627778:+ 2:+:1099511627776:-:1099511627774:- 2:-:1099511627776:+:2:- 2:-:1099511627776:-:2:- 2:+:2199023255552:+:2199023255554:+ 2:+:2199023255552:-:2199023255550:- 2:-:2199023255552:+:2:- 2:-:2199023255552:-:2:- 2:+:70368744177664:+:70368744177666:+ 2:+:70368744177664:-:70368744177662:- 2:-:70368744177664:+:2:- 2:-:70368744177664:-:2:- 2:+:140737488355328:+:140737488355330:+ 2:+:140737488355328:-:140737488355326:- 2:-:140737488355328:+:2:- 2:-:140737488355328:-:2:- 2:+:281474976710656:+:281474976710658:+ 2:+:281474976710656:-:281474976710654:- 2:-:281474976710656:+:2:- 2:-:281474976710656:-:2:- 2:+:562949953421312:+:562949953421314:+ 2:+:562949953421312:-:562949953421310:- 2:-:562949953421312:+:2:- 2:-:562949953421312:-:2:- 2:+:18014398509481984:+:18014398509481986:+ 2:+:18014398509481984:-:18014398509481982:- 2:-:18014398509481984:+:2:- 2:-:18014398509481984:-:2:- 2:+:36028797018963968:+:36028797018963970:+ 2:+:36028797018963968:-:36028797018963966:- 2:-:36028797018963968:+:2:- 2:-:36028797018963968:-:2:- 2:+:72057594037927936:+:72057594037927938:+ 2:+:72057594037927936:-:72057594037927934:- 2:-:72057594037927936:+:2:- 2:-:72057594037927936:-:2:- 2:+:144115188075855872:+:144115188075855874:+ 2:+:144115188075855872:-:144115188075855870:- 2:-:144115188075855872:+:2:- 2:-:144115188075855872:-:2:- 3:+:0:+:3:+ 3:-:0:+:3:- 3:+:1:+:3:+ 3:+:1:-:1:- 3:-:1:+:3:- 3:-:1:-:1:- 3:+:2:+:3:+ 3:+:2:-:1:- 3:-:2:+:1:- 3:-:2:-:1:- 3:+:3:+:3:+ 3:+:3:-:1:- 3:-:3:+:1:- 3:-:3:-:3:- 3:+:4:+:7:+ 3:+:4:-:1:- 3:-:4:+:3:- 3:-:4:-:3:- 3:+:64:+:67:+ 3:+:64:-:61:- 3:-:64:+:3:- 3:-:64:-:3:- 3:+:128:+:131:+ 3:+:128:-:125:- 3:-:128:+:3:- 3:-:128:-:3:- 3:+:256:+:259:+ 3:+:256:-:253:- 3:-:256:+:3:- 3:-:256:-:3:- 3:+:512:+:515:+ 3:+:512:-:509:- 3:-:512:+:3:- 3:-:512:-:3:- 3:+:16384:+:16387:+ 3:+:16384:-:16381:- 3:-:16384:+:3:- 3:-:16384:-:3:- 3:+:32768:+:32771:+ 3:+:32768:-:32765:- 3:-:32768:+:3:- 3:-:32768:-:3:- 3:+:65536:+:65539:+ 3:+:65536:-:65533:- 3:-:65536:+:3:- 3:-:65536:-:3:- 3:+:131072:+:131075:+ 3:+:131072:-:131069:- 3:-:131072:+:3:- 3:-:131072:-:3:- 3:+:4194304:+:4194307:+ 3:+:4194304:-:4194301:- 3:-:4194304:+:3:- 3:-:4194304:-:3:- 3:+:8388608:+:8388611:+ 3:+:8388608:-:8388605:- 3:-:8388608:+:3:- 3:-:8388608:-:3:- 3:+:16777216:+:16777219:+ 3:+:16777216:-:16777213:- 3:-:16777216:+:3:- 3:-:16777216:-:3:- 3:+:33554432:+:33554435:+ 3:+:33554432:-:33554429:- 3:-:33554432:+:3:- 3:-:33554432:-:3:- 3:+:1073741824:+:1073741827:+ 3:+:1073741824:-:1073741821:- 3:-:1073741824:+:3:- 3:-:1073741824:-:3:- 3:+:2147483648:+:2147483651:+ 3:+:2147483648:-:2147483645:- 3:-:2147483648:+:3:- 3:-:2147483648:-:3:- 3:+:4294967296:+:4294967299:+ 3:+:4294967296:-:4294967293:- 3:-:4294967296:+:3:- 3:-:4294967296:-:3:- 3:+:8589934592:+:8589934595:+ 3:+:8589934592:-:8589934589:- 3:-:8589934592:+:3:- 3:-:8589934592:-:3:- 3:+:274877906944:+:274877906947:+ 3:+:274877906944:-:274877906941:- 3:-:274877906944:+:3:- 3:-:274877906944:-:3:- 3:+:549755813888:+:549755813891:+ 3:+:549755813888:-:549755813885:- 3:-:549755813888:+:3:- 3:-:549755813888:-:3:- 3:+:1099511627776:+:1099511627779:+ 3:+:1099511627776:-:1099511627773:- 3:-:1099511627776:+:3:- 3:-:1099511627776:-:3:- 3:+:2199023255552:+:2199023255555:+ 3:+:2199023255552:-:2199023255549:- 3:-:2199023255552:+:3:- 3:-:2199023255552:-:3:- 3:+:70368744177664:+:70368744177667:+ 3:+:70368744177664:-:70368744177661:- 3:-:70368744177664:+:3:- 3:-:70368744177664:-:3:- 3:+:140737488355328:+:140737488355331:+ 3:+:140737488355328:-:140737488355325:- 3:-:140737488355328:+:3:- 3:-:140737488355328:-:3:- 3:+:281474976710656:+:281474976710659:+ 3:+:281474976710656:-:281474976710653:- 3:-:281474976710656:+:3:- 3:-:281474976710656:-:3:- 3:+:562949953421312:+:562949953421315:+ 3:+:562949953421312:-:562949953421309:- 3:-:562949953421312:+:3:- 3:-:562949953421312:-:3:- 3:+:18014398509481984:+:18014398509481987:+ 3:+:18014398509481984:-:18014398509481981:- 3:-:18014398509481984:+:3:- 3:-:18014398509481984:-:3:- 3:+:36028797018963968:+:36028797018963971:+ 3:+:36028797018963968:-:36028797018963965:- 3:-:36028797018963968:+:3:- 3:-:36028797018963968:-:3:- 3:+:72057594037927936:+:72057594037927939:+ 3:+:72057594037927936:-:72057594037927933:- 3:-:72057594037927936:+:3:- 3:-:72057594037927936:-:3:- 3:+:144115188075855872:+:144115188075855875:+ 3:+:144115188075855872:-:144115188075855869:- 3:-:144115188075855872:+:3:- 3:-:144115188075855872:-:3:- 4:+:0:+:4:+ 4:-:0:+:4:- 4:+:1:+:5:+ 4:+:1:-:1:- 4:-:1:+:3:- 4:-:1:-:1:- 4:+:2:+:6:+ 4:+:2:-:2:- 4:-:2:+:2:- 4:-:2:-:2:- 4:+:3:+:7:+ 4:+:3:-:3:- 4:-:3:+:1:- 4:-:3:-:3:- 4:+:4:+:4:+ 4:+:4:-:4:- 4:-:4:+:4:- 4:-:4:-:4:- 4:+:64:+:68:+ 4:+:64:-:60:- 4:-:64:+:4:- 4:-:64:-:4:- 4:+:128:+:132:+ 4:+:128:-:124:- 4:-:128:+:4:- 4:-:128:-:4:- 4:+:256:+:260:+ 4:+:256:-:252:- 4:-:256:+:4:- 4:-:256:-:4:- 4:+:512:+:516:+ 4:+:512:-:508:- 4:-:512:+:4:- 4:-:512:-:4:- 4:+:16384:+:16388:+ 4:+:16384:-:16380:- 4:-:16384:+:4:- 4:-:16384:-:4:- 4:+:32768:+:32772:+ 4:+:32768:-:32764:- 4:-:32768:+:4:- 4:-:32768:-:4:- 4:+:65536:+:65540:+ 4:+:65536:-:65532:- 4:-:65536:+:4:- 4:-:65536:-:4:- 4:+:131072:+:131076:+ 4:+:131072:-:131068:- 4:-:131072:+:4:- 4:-:131072:-:4:- 4:+:4194304:+:4194308:+ 4:+:4194304:-:4194300:- 4:-:4194304:+:4:- 4:-:4194304:-:4:- 4:+:8388608:+:8388612:+ 4:+:8388608:-:8388604:- 4:-:8388608:+:4:- 4:-:8388608:-:4:- 4:+:16777216:+:16777220:+ 4:+:16777216:-:16777212:- 4:-:16777216:+:4:- 4:-:16777216:-:4:- 4:+:33554432:+:33554436:+ 4:+:33554432:-:33554428:- 4:-:33554432:+:4:- 4:-:33554432:-:4:- 4:+:1073741824:+:1073741828:+ 4:+:1073741824:-:1073741820:- 4:-:1073741824:+:4:- 4:-:1073741824:-:4:- 4:+:2147483648:+:2147483652:+ 4:+:2147483648:-:2147483644:- 4:-:2147483648:+:4:- 4:-:2147483648:-:4:- 4:+:4294967296:+:4294967300:+ 4:+:4294967296:-:4294967292:- 4:-:4294967296:+:4:- 4:-:4294967296:-:4:- 4:+:8589934592:+:8589934596:+ 4:+:8589934592:-:8589934588:- 4:-:8589934592:+:4:- 4:-:8589934592:-:4:- 4:+:274877906944:+:274877906948:+ 4:+:274877906944:-:274877906940:- 4:-:274877906944:+:4:- 4:-:274877906944:-:4:- 4:+:549755813888:+:549755813892:+ 4:+:549755813888:-:549755813884:- 4:-:549755813888:+:4:- 4:-:549755813888:-:4:- 4:+:1099511627776:+:1099511627780:+ 4:+:1099511627776:-:1099511627772:- 4:-:1099511627776:+:4:- 4:-:1099511627776:-:4:- 4:+:2199023255552:+:2199023255556:+ 4:+:2199023255552:-:2199023255548:- 4:-:2199023255552:+:4:- 4:-:2199023255552:-:4:- 4:+:70368744177664:+:70368744177668:+ 4:+:70368744177664:-:70368744177660:- 4:-:70368744177664:+:4:- 4:-:70368744177664:-:4:- 4:+:140737488355328:+:140737488355332:+ 4:+:140737488355328:-:140737488355324:- 4:-:140737488355328:+:4:- 4:-:140737488355328:-:4:- 4:+:281474976710656:+:281474976710660:+ 4:+:281474976710656:-:281474976710652:- 4:-:281474976710656:+:4:- 4:-:281474976710656:-:4:- 4:+:562949953421312:+:562949953421316:+ 4:+:562949953421312:-:562949953421308:- 4:-:562949953421312:+:4:- 4:-:562949953421312:-:4:- 4:+:18014398509481984:+:18014398509481988:+ 4:+:18014398509481984:-:18014398509481980:- 4:-:18014398509481984:+:4:- 4:-:18014398509481984:-:4:- 4:+:36028797018963968:+:36028797018963972:+ 4:+:36028797018963968:-:36028797018963964:- 4:-:36028797018963968:+:4:- 4:-:36028797018963968:-:4:- 4:+:72057594037927936:+:72057594037927940:+ 4:+:72057594037927936:-:72057594037927932:- 4:-:72057594037927936:+:4:- 4:-:72057594037927936:-:4:- 4:+:144115188075855872:+:144115188075855876:+ 4:+:144115188075855872:-:144115188075855868:- 4:-:144115188075855872:+:4:- 4:-:144115188075855872:-:4:- 64:+:0:+:64:+ 64:-:0:+:64:- 64:+:1:+:65:+ 64:+:1:-:1:- 64:-:1:+:63:- 64:-:1:-:1:- 64:+:2:+:66:+ 64:+:2:-:2:- 64:-:2:+:62:- 64:-:2:-:2:- 64:+:3:+:67:+ 64:+:3:-:3:- 64:-:3:+:61:- 64:-:3:-:3:- 64:+:4:+:68:+ 64:+:4:-:4:- 64:-:4:+:60:- 64:-:4:-:4:- 64:+:64:+:64:+ 64:+:64:-:64:- 64:-:64:+:64:- 64:-:64:-:64:- 64:+:128:+:192:+ 64:+:128:-:64:- 64:-:128:+:64:- 64:-:128:-:64:- 64:+:256:+:320:+ 64:+:256:-:192:- 64:-:256:+:64:- 64:-:256:-:64:- 64:+:512:+:576:+ 64:+:512:-:448:- 64:-:512:+:64:- 64:-:512:-:64:- 64:+:16384:+:16448:+ 64:+:16384:-:16320:- 64:-:16384:+:64:- 64:-:16384:-:64:- 64:+:32768:+:32832:+ 64:+:32768:-:32704:- 64:-:32768:+:64:- 64:-:32768:-:64:- 64:+:65536:+:65600:+ 64:+:65536:-:65472:- 64:-:65536:+:64:- 64:-:65536:-:64:- 64:+:131072:+:131136:+ 64:+:131072:-:131008:- 64:-:131072:+:64:- 64:-:131072:-:64:- 64:+:4194304:+:4194368:+ 64:+:4194304:-:4194240:- 64:-:4194304:+:64:- 64:-:4194304:-:64:- 64:+:8388608:+:8388672:+ 64:+:8388608:-:8388544:- 64:-:8388608:+:64:- 64:-:8388608:-:64:- 64:+:16777216:+:16777280:+ 64:+:16777216:-:16777152:- 64:-:16777216:+:64:- 64:-:16777216:-:64:- 64:+:33554432:+:33554496:+ 64:+:33554432:-:33554368:- 64:-:33554432:+:64:- 64:-:33554432:-:64:- 64:+:1073741824:+:1073741888:+ 64:+:1073741824:-:1073741760:- 64:-:1073741824:+:64:- 64:-:1073741824:-:64:- 64:+:2147483648:+:2147483712:+ 64:+:2147483648:-:2147483584:- 64:-:2147483648:+:64:- 64:-:2147483648:-:64:- 64:+:4294967296:+:4294967360:+ 64:+:4294967296:-:4294967232:- 64:-:4294967296:+:64:- 64:-:4294967296:-:64:- 64:+:8589934592:+:8589934656:+ 64:+:8589934592:-:8589934528:- 64:-:8589934592:+:64:- 64:-:8589934592:-:64:- 64:+:274877906944:+:274877907008:+ 64:+:274877906944:-:274877906880:- 64:-:274877906944:+:64:- 64:-:274877906944:-:64:- 64:+:549755813888:+:549755813952:+ 64:+:549755813888:-:549755813824:- 64:-:549755813888:+:64:- 64:-:549755813888:-:64:- 64:+:1099511627776:+:1099511627840:+ 64:+:1099511627776:-:1099511627712:- 64:-:1099511627776:+:64:- 64:-:1099511627776:-:64:- 64:+:2199023255552:+:2199023255616:+ 64:+:2199023255552:-:2199023255488:- 64:-:2199023255552:+:64:- 64:-:2199023255552:-:64:- 64:+:70368744177664:+:70368744177728:+ 64:+:70368744177664:-:70368744177600:- 64:-:70368744177664:+:64:- 64:-:70368744177664:-:64:- 64:+:140737488355328:+:140737488355392:+ 64:+:140737488355328:-:140737488355264:- 64:-:140737488355328:+:64:- 64:-:140737488355328:-:64:- 64:+:281474976710656:+:281474976710720:+ 64:+:281474976710656:-:281474976710592:- 64:-:281474976710656:+:64:- 64:-:281474976710656:-:64:- 64:+:562949953421312:+:562949953421376:+ 64:+:562949953421312:-:562949953421248:- 64:-:562949953421312:+:64:- 64:-:562949953421312:-:64:- 64:+:18014398509481984:+:18014398509482048:+ 64:+:18014398509481984:-:18014398509481920:- 64:-:18014398509481984:+:64:- 64:-:18014398509481984:-:64:- 64:+:36028797018963968:+:36028797018964032:+ 64:+:36028797018963968:-:36028797018963904:- 64:-:36028797018963968:+:64:- 64:-:36028797018963968:-:64:- 64:+:72057594037927936:+:72057594037928000:+ 64:+:72057594037927936:-:72057594037927872:- 64:-:72057594037927936:+:64:- 64:-:72057594037927936:-:64:- 64:+:144115188075855872:+:144115188075855936:+ 64:+:144115188075855872:-:144115188075855808:- 64:-:144115188075855872:+:64:- 64:-:144115188075855872:-:64:- 128:+:0:+:128:+ 128:-:0:+:128:- 128:+:1:+:129:+ 128:+:1:-:1:- 128:-:1:+:127:- 128:-:1:-:1:- 128:+:2:+:130:+ 128:+:2:-:2:- 128:-:2:+:126:- 128:-:2:-:2:- 128:+:3:+:131:+ 128:+:3:-:3:- 128:-:3:+:125:- 128:-:3:-:3:- 128:+:4:+:132:+ 128:+:4:-:4:- 128:-:4:+:124:- 128:-:4:-:4:- 128:+:64:+:192:+ 128:+:64:-:64:- 128:-:64:+:64:- 128:-:64:-:64:- 128:+:128:+:128:+ 128:+:128:-:128:- 128:-:128:+:128:- 128:-:128:-:128:- 128:+:256:+:384:+ 128:+:256:-:128:- 128:-:256:+:128:- 128:-:256:-:128:- 128:+:512:+:640:+ 128:+:512:-:384:- 128:-:512:+:128:- 128:-:512:-:128:- 128:+:16384:+:16512:+ 128:+:16384:-:16256:- 128:-:16384:+:128:- 128:-:16384:-:128:- 128:+:32768:+:32896:+ 128:+:32768:-:32640:- 128:-:32768:+:128:- 128:-:32768:-:128:- 128:+:65536:+:65664:+ 128:+:65536:-:65408:- 128:-:65536:+:128:- 128:-:65536:-:128:- 128:+:131072:+:131200:+ 128:+:131072:-:130944:- 128:-:131072:+:128:- 128:-:131072:-:128:- 128:+:4194304:+:4194432:+ 128:+:4194304:-:4194176:- 128:-:4194304:+:128:- 128:-:4194304:-:128:- 128:+:8388608:+:8388736:+ 128:+:8388608:-:8388480:- 128:-:8388608:+:128:- 128:-:8388608:-:128:- 128:+:16777216:+:16777344:+ 128:+:16777216:-:16777088:- 128:-:16777216:+:128:- 128:-:16777216:-:128:- 128:+:33554432:+:33554560:+ 128:+:33554432:-:33554304:- 128:-:33554432:+:128:- 128:-:33554432:-:128:- 128:+:1073741824:+:1073741952:+ 128:+:1073741824:-:1073741696:- 128:-:1073741824:+:128:- 128:-:1073741824:-:128:- 128:+:2147483648:+:2147483776:+ 128:+:2147483648:-:2147483520:- 128:-:2147483648:+:128:- 128:-:2147483648:-:128:- 128:+:4294967296:+:4294967424:+ 128:+:4294967296:-:4294967168:- 128:-:4294967296:+:128:- 128:-:4294967296:-:128:- 128:+:8589934592:+:8589934720:+ 128:+:8589934592:-:8589934464:- 128:-:8589934592:+:128:- 128:-:8589934592:-:128:- 128:+:274877906944:+:274877907072:+ 128:+:274877906944:-:274877906816:- 128:-:274877906944:+:128:- 128:-:274877906944:-:128:- 128:+:549755813888:+:549755814016:+ 128:+:549755813888:-:549755813760:- 128:-:549755813888:+:128:- 128:-:549755813888:-:128:- 128:+:1099511627776:+:1099511627904:+ 128:+:1099511627776:-:1099511627648:- 128:-:1099511627776:+:128:- 128:-:1099511627776:-:128:- 128:+:2199023255552:+:2199023255680:+ 128:+:2199023255552:-:2199023255424:- 128:-:2199023255552:+:128:- 128:-:2199023255552:-:128:- 128:+:70368744177664:+:70368744177792:+ 128:+:70368744177664:-:70368744177536:- 128:-:70368744177664:+:128:- 128:-:70368744177664:-:128:- 128:+:140737488355328:+:140737488355456:+ 128:+:140737488355328:-:140737488355200:- 128:-:140737488355328:+:128:- 128:-:140737488355328:-:128:- 128:+:281474976710656:+:281474976710784:+ 128:+:281474976710656:-:281474976710528:- 128:-:281474976710656:+:128:- 128:-:281474976710656:-:128:- 128:+:562949953421312:+:562949953421440:+ 128:+:562949953421312:-:562949953421184:- 128:-:562949953421312:+:128:- 128:-:562949953421312:-:128:- 128:+:18014398509481984:+:18014398509482112:+ 128:+:18014398509481984:-:18014398509481856:- 128:-:18014398509481984:+:128:- 128:-:18014398509481984:-:128:- 128:+:36028797018963968:+:36028797018964096:+ 128:+:36028797018963968:-:36028797018963840:- 128:-:36028797018963968:+:128:- 128:-:36028797018963968:-:128:- 128:+:72057594037927936:+:72057594037928064:+ 128:+:72057594037927936:-:72057594037927808:- 128:-:72057594037927936:+:128:- 128:-:72057594037927936:-:128:- 128:+:144115188075855872:+:144115188075856000:+ 128:+:144115188075855872:-:144115188075855744:- 128:-:144115188075855872:+:128:- 128:-:144115188075855872:-:128:- 256:+:0:+:256:+ 256:-:0:+:256:- 256:+:1:+:257:+ 256:+:1:-:1:- 256:-:1:+:255:- 256:-:1:-:1:- 256:+:2:+:258:+ 256:+:2:-:2:- 256:-:2:+:254:- 256:-:2:-:2:- 256:+:3:+:259:+ 256:+:3:-:3:- 256:-:3:+:253:- 256:-:3:-:3:- 256:+:4:+:260:+ 256:+:4:-:4:- 256:-:4:+:252:- 256:-:4:-:4:- 256:+:64:+:320:+ 256:+:64:-:64:- 256:-:64:+:192:- 256:-:64:-:64:- 256:+:128:+:384:+ 256:+:128:-:128:- 256:-:128:+:128:- 256:-:128:-:128:- 256:+:256:+:256:+ 256:+:256:-:256:- 256:-:256:+:256:- 256:-:256:-:256:- 256:+:512:+:768:+ 256:+:512:-:256:- 256:-:512:+:256:- 256:-:512:-:256:- 256:+:16384:+:16640:+ 256:+:16384:-:16128:- 256:-:16384:+:256:- 256:-:16384:-:256:- 256:+:32768:+:33024:+ 256:+:32768:-:32512:- 256:-:32768:+:256:- 256:-:32768:-:256:- 256:+:65536:+:65792:+ 256:+:65536:-:65280:- 256:-:65536:+:256:- 256:-:65536:-:256:- 256:+:131072:+:131328:+ 256:+:131072:-:130816:- 256:-:131072:+:256:- 256:-:131072:-:256:- 256:+:4194304:+:4194560:+ 256:+:4194304:-:4194048:- 256:-:4194304:+:256:- 256:-:4194304:-:256:- 256:+:8388608:+:8388864:+ 256:+:8388608:-:8388352:- 256:-:8388608:+:256:- 256:-:8388608:-:256:- 256:+:16777216:+:16777472:+ 256:+:16777216:-:16776960:- 256:-:16777216:+:256:- 256:-:16777216:-:256:- 256:+:33554432:+:33554688:+ 256:+:33554432:-:33554176:- 256:-:33554432:+:256:- 256:-:33554432:-:256:- 256:+:1073741824:+:1073742080:+ 256:+:1073741824:-:1073741568:- 256:-:1073741824:+:256:- 256:-:1073741824:-:256:- 256:+:2147483648:+:2147483904:+ 256:+:2147483648:-:2147483392:- 256:-:2147483648:+:256:- 256:-:2147483648:-:256:- 256:+:4294967296:+:4294967552:+ 256:+:4294967296:-:4294967040:- 256:-:4294967296:+:256:- 256:-:4294967296:-:256:- 256:+:8589934592:+:8589934848:+ 256:+:8589934592:-:8589934336:- 256:-:8589934592:+:256:- 256:-:8589934592:-:256:- 256:+:274877906944:+:274877907200:+ 256:+:274877906944:-:274877906688:- 256:-:274877906944:+:256:- 256:-:274877906944:-:256:- 256:+:549755813888:+:549755814144:+ 256:+:549755813888:-:549755813632:- 256:-:549755813888:+:256:- 256:-:549755813888:-:256:- 256:+:1099511627776:+:1099511628032:+ 256:+:1099511627776:-:1099511627520:- 256:-:1099511627776:+:256:- 256:-:1099511627776:-:256:- 256:+:2199023255552:+:2199023255808:+ 256:+:2199023255552:-:2199023255296:- 256:-:2199023255552:+:256:- 256:-:2199023255552:-:256:- 256:+:70368744177664:+:70368744177920:+ 256:+:70368744177664:-:70368744177408:- 256:-:70368744177664:+:256:- 256:-:70368744177664:-:256:- 256:+:140737488355328:+:140737488355584:+ 256:+:140737488355328:-:140737488355072:- 256:-:140737488355328:+:256:- 256:-:140737488355328:-:256:- 256:+:281474976710656:+:281474976710912:+ 256:+:281474976710656:-:281474976710400:- 256:-:281474976710656:+:256:- 256:-:281474976710656:-:256:- 256:+:562949953421312:+:562949953421568:+ 256:+:562949953421312:-:562949953421056:- 256:-:562949953421312:+:256:- 256:-:562949953421312:-:256:- 256:+:18014398509481984:+:18014398509482240:+ 256:+:18014398509481984:-:18014398509481728:- 256:-:18014398509481984:+:256:- 256:-:18014398509481984:-:256:- 256:+:36028797018963968:+:36028797018964224:+ 256:+:36028797018963968:-:36028797018963712:- 256:-:36028797018963968:+:256:- 256:-:36028797018963968:-:256:- 256:+:72057594037927936:+:72057594037928192:+ 256:+:72057594037927936:-:72057594037927680:- 256:-:72057594037927936:+:256:- 256:-:72057594037927936:-:256:- 256:+:144115188075855872:+:144115188075856128:+ 256:+:144115188075855872:-:144115188075855616:- 256:-:144115188075855872:+:256:- 256:-:144115188075855872:-:256:- 512:+:0:+:512:+ 512:-:0:+:512:- 512:+:1:+:513:+ 512:+:1:-:1:- 512:-:1:+:511:- 512:-:1:-:1:- 512:+:2:+:514:+ 512:+:2:-:2:- 512:-:2:+:510:- 512:-:2:-:2:- 512:+:3:+:515:+ 512:+:3:-:3:- 512:-:3:+:509:- 512:-:3:-:3:- 512:+:4:+:516:+ 512:+:4:-:4:- 512:-:4:+:508:- 512:-:4:-:4:- 512:+:64:+:576:+ 512:+:64:-:64:- 512:-:64:+:448:- 512:-:64:-:64:- 512:+:128:+:640:+ 512:+:128:-:128:- 512:-:128:+:384:- 512:-:128:-:128:- 512:+:256:+:768:+ 512:+:256:-:256:- 512:-:256:+:256:- 512:-:256:-:256:- 512:+:512:+:512:+ 512:+:512:-:512:- 512:-:512:+:512:- 512:-:512:-:512:- 512:+:16384:+:16896:+ 512:+:16384:-:15872:- 512:-:16384:+:512:- 512:-:16384:-:512:- 512:+:32768:+:33280:+ 512:+:32768:-:32256:- 512:-:32768:+:512:- 512:-:32768:-:512:- 512:+:65536:+:66048:+ 512:+:65536:-:65024:- 512:-:65536:+:512:- 512:-:65536:-:512:- 512:+:131072:+:131584:+ 512:+:131072:-:130560:- 512:-:131072:+:512:- 512:-:131072:-:512:- 512:+:4194304:+:4194816:+ 512:+:4194304:-:4193792:- 512:-:4194304:+:512:- 512:-:4194304:-:512:- 512:+:8388608:+:8389120:+ 512:+:8388608:-:8388096:- 512:-:8388608:+:512:- 512:-:8388608:-:512:- 512:+:16777216:+:16777728:+ 512:+:16777216:-:16776704:- 512:-:16777216:+:512:- 512:-:16777216:-:512:- 512:+:33554432:+:33554944:+ 512:+:33554432:-:33553920:- 512:-:33554432:+:512:- 512:-:33554432:-:512:- 512:+:1073741824:+:1073742336:+ 512:+:1073741824:-:1073741312:- 512:-:1073741824:+:512:- 512:-:1073741824:-:512:- 512:+:2147483648:+:2147484160:+ 512:+:2147483648:-:2147483136:- 512:-:2147483648:+:512:- 512:-:2147483648:-:512:- 512:+:4294967296:+:4294967808:+ 512:+:4294967296:-:4294966784:- 512:-:4294967296:+:512:- 512:-:4294967296:-:512:- 512:+:8589934592:+:8589935104:+ 512:+:8589934592:-:8589934080:- 512:-:8589934592:+:512:- 512:-:8589934592:-:512:- 512:+:274877906944:+:274877907456:+ 512:+:274877906944:-:274877906432:- 512:-:274877906944:+:512:- 512:-:274877906944:-:512:- 512:+:549755813888:+:549755814400:+ 512:+:549755813888:-:549755813376:- 512:-:549755813888:+:512:- 512:-:549755813888:-:512:- 512:+:1099511627776:+:1099511628288:+ 512:+:1099511627776:-:1099511627264:- 512:-:1099511627776:+:512:- 512:-:1099511627776:-:512:- 512:+:2199023255552:+:2199023256064:+ 512:+:2199023255552:-:2199023255040:- 512:-:2199023255552:+:512:- 512:-:2199023255552:-:512:- 512:+:70368744177664:+:70368744178176:+ 512:+:70368744177664:-:70368744177152:- 512:-:70368744177664:+:512:- 512:-:70368744177664:-:512:- 512:+:140737488355328:+:140737488355840:+ 512:+:140737488355328:-:140737488354816:- 512:-:140737488355328:+:512:- 512:-:140737488355328:-:512:- 512:+:281474976710656:+:281474976711168:+ 512:+:281474976710656:-:281474976710144:- 512:-:281474976710656:+:512:- 512:-:281474976710656:-:512:- 512:+:562949953421312:+:562949953421824:+ 512:+:562949953421312:-:562949953420800:- 512:-:562949953421312:+:512:- 512:-:562949953421312:-:512:- 512:+:18014398509481984:+:18014398509482496:+ 512:+:18014398509481984:-:18014398509481472:- 512:-:18014398509481984:+:512:- 512:-:18014398509481984:-:512:- 512:+:36028797018963968:+:36028797018964480:+ 512:+:36028797018963968:-:36028797018963456:- 512:-:36028797018963968:+:512:- 512:-:36028797018963968:-:512:- 512:+:72057594037927936:+:72057594037928448:+ 512:+:72057594037927936:-:72057594037927424:- 512:-:72057594037927936:+:512:- 512:-:72057594037927936:-:512:- 512:+:144115188075855872:+:144115188075856384:+ 512:+:144115188075855872:-:144115188075855360:- 512:-:144115188075855872:+:512:- 512:-:144115188075855872:-:512:- 16384:+:0:+:16384:+ 16384:-:0:+:16384:- 16384:+:1:+:16385:+ 16384:+:1:-:1:- 16384:-:1:+:16383:- 16384:-:1:-:1:- 16384:+:2:+:16386:+ 16384:+:2:-:2:- 16384:-:2:+:16382:- 16384:-:2:-:2:- 16384:+:3:+:16387:+ 16384:+:3:-:3:- 16384:-:3:+:16381:- 16384:-:3:-:3:- 16384:+:4:+:16388:+ 16384:+:4:-:4:- 16384:-:4:+:16380:- 16384:-:4:-:4:- 16384:+:64:+:16448:+ 16384:+:64:-:64:- 16384:-:64:+:16320:- 16384:-:64:-:64:- 16384:+:128:+:16512:+ 16384:+:128:-:128:- 16384:-:128:+:16256:- 16384:-:128:-:128:- 16384:+:256:+:16640:+ 16384:+:256:-:256:- 16384:-:256:+:16128:- 16384:-:256:-:256:- 16384:+:512:+:16896:+ 16384:+:512:-:512:- 16384:-:512:+:15872:- 16384:-:512:-:512:- 16384:+:16384:+:16384:+ 16384:+:16384:-:16384:- 16384:-:16384:+:16384:- 16384:-:16384:-:16384:- 16384:+:32768:+:49152:+ 16384:+:32768:-:16384:- 16384:-:32768:+:16384:- 16384:-:32768:-:16384:- 16384:+:65536:+:81920:+ 16384:+:65536:-:49152:- 16384:-:65536:+:16384:- 16384:-:65536:-:16384:- 16384:+:131072:+:147456:+ 16384:+:131072:-:114688:- 16384:-:131072:+:16384:- 16384:-:131072:-:16384:- 16384:+:4194304:+:4210688:+ 16384:+:4194304:-:4177920:- 16384:-:4194304:+:16384:- 16384:-:4194304:-:16384:- 16384:+:8388608:+:8404992:+ 16384:+:8388608:-:8372224:- 16384:-:8388608:+:16384:- 16384:-:8388608:-:16384:- 16384:+:16777216:+:16793600:+ 16384:+:16777216:-:16760832:- 16384:-:16777216:+:16384:- 16384:-:16777216:-:16384:- 16384:+:33554432:+:33570816:+ 16384:+:33554432:-:33538048:- 16384:-:33554432:+:16384:- 16384:-:33554432:-:16384:- 16384:+:1073741824:+:1073758208:+ 16384:+:1073741824:-:1073725440:- 16384:-:1073741824:+:16384:- 16384:-:1073741824:-:16384:- 16384:+:2147483648:+:2147500032:+ 16384:+:2147483648:-:2147467264:- 16384:-:2147483648:+:16384:- 16384:-:2147483648:-:16384:- 16384:+:4294967296:+:4294983680:+ 16384:+:4294967296:-:4294950912:- 16384:-:4294967296:+:16384:- 16384:-:4294967296:-:16384:- 16384:+:8589934592:+:8589950976:+ 16384:+:8589934592:-:8589918208:- 16384:-:8589934592:+:16384:- 16384:-:8589934592:-:16384:- 16384:+:274877906944:+:274877923328:+ 16384:+:274877906944:-:274877890560:- 16384:-:274877906944:+:16384:- 16384:-:274877906944:-:16384:- 16384:+:549755813888:+:549755830272:+ 16384:+:549755813888:-:549755797504:- 16384:-:549755813888:+:16384:- 16384:-:549755813888:-:16384:- 16384:+:1099511627776:+:1099511644160:+ 16384:+:1099511627776:-:1099511611392:- 16384:-:1099511627776:+:16384:- 16384:-:1099511627776:-:16384:- 16384:+:2199023255552:+:2199023271936:+ 16384:+:2199023255552:-:2199023239168:- 16384:-:2199023255552:+:16384:- 16384:-:2199023255552:-:16384:- 16384:+:70368744177664:+:70368744194048:+ 16384:+:70368744177664:-:70368744161280:- 16384:-:70368744177664:+:16384:- 16384:-:70368744177664:-:16384:- 16384:+:140737488355328:+:140737488371712:+ 16384:+:140737488355328:-:140737488338944:- 16384:-:140737488355328:+:16384:- 16384:-:140737488355328:-:16384:- 16384:+:281474976710656:+:281474976727040:+ 16384:+:281474976710656:-:281474976694272:- 16384:-:281474976710656:+:16384:- 16384:-:281474976710656:-:16384:- 16384:+:562949953421312:+:562949953437696:+ 16384:+:562949953421312:-:562949953404928:- 16384:-:562949953421312:+:16384:- 16384:-:562949953421312:-:16384:- 16384:+:18014398509481984:+:18014398509498368:+ 16384:+:18014398509481984:-:18014398509465600:- 16384:-:18014398509481984:+:16384:- 16384:-:18014398509481984:-:16384:- 16384:+:36028797018963968:+:36028797018980352:+ 16384:+:36028797018963968:-:36028797018947584:- 16384:-:36028797018963968:+:16384:- 16384:-:36028797018963968:-:16384:- 16384:+:72057594037927936:+:72057594037944320:+ 16384:+:72057594037927936:-:72057594037911552:- 16384:-:72057594037927936:+:16384:- 16384:-:72057594037927936:-:16384:- 16384:+:144115188075855872:+:144115188075872256:+ 16384:+:144115188075855872:-:144115188075839488:- 16384:-:144115188075855872:+:16384:- 16384:-:144115188075855872:-:16384:- 32768:+:0:+:32768:+ 32768:-:0:+:32768:- 32768:+:1:+:32769:+ 32768:+:1:-:1:- 32768:-:1:+:32767:- 32768:-:1:-:1:- 32768:+:2:+:32770:+ 32768:+:2:-:2:- 32768:-:2:+:32766:- 32768:-:2:-:2:- 32768:+:3:+:32771:+ 32768:+:3:-:3:- 32768:-:3:+:32765:- 32768:-:3:-:3:- 32768:+:4:+:32772:+ 32768:+:4:-:4:- 32768:-:4:+:32764:- 32768:-:4:-:4:- 32768:+:64:+:32832:+ 32768:+:64:-:64:- 32768:-:64:+:32704:- 32768:-:64:-:64:- 32768:+:128:+:32896:+ 32768:+:128:-:128:- 32768:-:128:+:32640:- 32768:-:128:-:128:- 32768:+:256:+:33024:+ 32768:+:256:-:256:- 32768:-:256:+:32512:- 32768:-:256:-:256:- 32768:+:512:+:33280:+ 32768:+:512:-:512:- 32768:-:512:+:32256:- 32768:-:512:-:512:- 32768:+:16384:+:49152:+ 32768:+:16384:-:16384:- 32768:-:16384:+:16384:- 32768:-:16384:-:16384:- 32768:+:32768:+:32768:+ 32768:+:32768:-:32768:- 32768:-:32768:+:32768:- 32768:-:32768:-:32768:- 32768:+:65536:+:98304:+ 32768:+:65536:-:32768:- 32768:-:65536:+:32768:- 32768:-:65536:-:32768:- 32768:+:131072:+:163840:+ 32768:+:131072:-:98304:- 32768:-:131072:+:32768:- 32768:-:131072:-:32768:- 32768:+:4194304:+:4227072:+ 32768:+:4194304:-:4161536:- 32768:-:4194304:+:32768:- 32768:-:4194304:-:32768:- 32768:+:8388608:+:8421376:+ 32768:+:8388608:-:8355840:- 32768:-:8388608:+:32768:- 32768:-:8388608:-:32768:- 32768:+:16777216:+:16809984:+ 32768:+:16777216:-:16744448:- 32768:-:16777216:+:32768:- 32768:-:16777216:-:32768:- 32768:+:33554432:+:33587200:+ 32768:+:33554432:-:33521664:- 32768:-:33554432:+:32768:- 32768:-:33554432:-:32768:- 32768:+:1073741824:+:1073774592:+ 32768:+:1073741824:-:1073709056:- 32768:-:1073741824:+:32768:- 32768:-:1073741824:-:32768:- 32768:+:2147483648:+:2147516416:+ 32768:+:2147483648:-:2147450880:- 32768:-:2147483648:+:32768:- 32768:-:2147483648:-:32768:- 32768:+:4294967296:+:4295000064:+ 32768:+:4294967296:-:4294934528:- 32768:-:4294967296:+:32768:- 32768:-:4294967296:-:32768:- 32768:+:8589934592:+:8589967360:+ 32768:+:8589934592:-:8589901824:- 32768:-:8589934592:+:32768:- 32768:-:8589934592:-:32768:- 32768:+:274877906944:+:274877939712:+ 32768:+:274877906944:-:274877874176:- 32768:-:274877906944:+:32768:- 32768:-:274877906944:-:32768:- 32768:+:549755813888:+:549755846656:+ 32768:+:549755813888:-:549755781120:- 32768:-:549755813888:+:32768:- 32768:-:549755813888:-:32768:- 32768:+:1099511627776:+:1099511660544:+ 32768:+:1099511627776:-:1099511595008:- 32768:-:1099511627776:+:32768:- 32768:-:1099511627776:-:32768:- 32768:+:2199023255552:+:2199023288320:+ 32768:+:2199023255552:-:2199023222784:- 32768:-:2199023255552:+:32768:- 32768:-:2199023255552:-:32768:- 32768:+:70368744177664:+:70368744210432:+ 32768:+:70368744177664:-:70368744144896:- 32768:-:70368744177664:+:32768:- 32768:-:70368744177664:-:32768:- 32768:+:140737488355328:+:140737488388096:+ 32768:+:140737488355328:-:140737488322560:- 32768:-:140737488355328:+:32768:- 32768:-:140737488355328:-:32768:- 32768:+:281474976710656:+:281474976743424:+ 32768:+:281474976710656:-:281474976677888:- 32768:-:281474976710656:+:32768:- 32768:-:281474976710656:-:32768:- 32768:+:562949953421312:+:562949953454080:+ 32768:+:562949953421312:-:562949953388544:- 32768:-:562949953421312:+:32768:- 32768:-:562949953421312:-:32768:- 32768:+:18014398509481984:+:18014398509514752:+ 32768:+:18014398509481984:-:18014398509449216:- 32768:-:18014398509481984:+:32768:- 32768:-:18014398509481984:-:32768:- 32768:+:36028797018963968:+:36028797018996736:+ 32768:+:36028797018963968:-:36028797018931200:- 32768:-:36028797018963968:+:32768:- 32768:-:36028797018963968:-:32768:- 32768:+:72057594037927936:+:72057594037960704:+ 32768:+:72057594037927936:-:72057594037895168:- 32768:-:72057594037927936:+:32768:- 32768:-:72057594037927936:-:32768:- 32768:+:144115188075855872:+:144115188075888640:+ 32768:+:144115188075855872:-:144115188075823104:- 32768:-:144115188075855872:+:32768:- 32768:-:144115188075855872:-:32768:- 65536:+:0:+:65536:+ 65536:-:0:+:65536:- 65536:+:1:+:65537:+ 65536:+:1:-:1:- 65536:-:1:+:65535:- 65536:-:1:-:1:- 65536:+:2:+:65538:+ 65536:+:2:-:2:- 65536:-:2:+:65534:- 65536:-:2:-:2:- 65536:+:3:+:65539:+ 65536:+:3:-:3:- 65536:-:3:+:65533:- 65536:-:3:-:3:- 65536:+:4:+:65540:+ 65536:+:4:-:4:- 65536:-:4:+:65532:- 65536:-:4:-:4:- 65536:+:64:+:65600:+ 65536:+:64:-:64:- 65536:-:64:+:65472:- 65536:-:64:-:64:- 65536:+:128:+:65664:+ 65536:+:128:-:128:- 65536:-:128:+:65408:- 65536:-:128:-:128:- 65536:+:256:+:65792:+ 65536:+:256:-:256:- 65536:-:256:+:65280:- 65536:-:256:-:256:- 65536:+:512:+:66048:+ 65536:+:512:-:512:- 65536:-:512:+:65024:- 65536:-:512:-:512:- 65536:+:16384:+:81920:+ 65536:+:16384:-:16384:- 65536:-:16384:+:49152:- 65536:-:16384:-:16384:- 65536:+:32768:+:98304:+ 65536:+:32768:-:32768:- 65536:-:32768:+:32768:- 65536:-:32768:-:32768:- 65536:+:65536:+:65536:+ 65536:+:65536:-:65536:- 65536:-:65536:+:65536:- 65536:-:65536:-:65536:- 65536:+:131072:+:196608:+ 65536:+:131072:-:65536:- 65536:-:131072:+:65536:- 65536:-:131072:-:65536:- 65536:+:4194304:+:4259840:+ 65536:+:4194304:-:4128768:- 65536:-:4194304:+:65536:- 65536:-:4194304:-:65536:- 65536:+:8388608:+:8454144:+ 65536:+:8388608:-:8323072:- 65536:-:8388608:+:65536:- 65536:-:8388608:-:65536:- 65536:+:16777216:+:16842752:+ 65536:+:16777216:-:16711680:- 65536:-:16777216:+:65536:- 65536:-:16777216:-:65536:- 65536:+:33554432:+:33619968:+ 65536:+:33554432:-:33488896:- 65536:-:33554432:+:65536:- 65536:-:33554432:-:65536:- 65536:+:1073741824:+:1073807360:+ 65536:+:1073741824:-:1073676288:- 65536:-:1073741824:+:65536:- 65536:-:1073741824:-:65536:- 65536:+:2147483648:+:2147549184:+ 65536:+:2147483648:-:2147418112:- 65536:-:2147483648:+:65536:- 65536:-:2147483648:-:65536:- 65536:+:4294967296:+:4295032832:+ 65536:+:4294967296:-:4294901760:- 65536:-:4294967296:+:65536:- 65536:-:4294967296:-:65536:- 65536:+:8589934592:+:8590000128:+ 65536:+:8589934592:-:8589869056:- 65536:-:8589934592:+:65536:- 65536:-:8589934592:-:65536:- 65536:+:274877906944:+:274877972480:+ 65536:+:274877906944:-:274877841408:- 65536:-:274877906944:+:65536:- 65536:-:274877906944:-:65536:- 65536:+:549755813888:+:549755879424:+ 65536:+:549755813888:-:549755748352:- 65536:-:549755813888:+:65536:- 65536:-:549755813888:-:65536:- 65536:+:1099511627776:+:1099511693312:+ 65536:+:1099511627776:-:1099511562240:- 65536:-:1099511627776:+:65536:- 65536:-:1099511627776:-:65536:- 65536:+:2199023255552:+:2199023321088:+ 65536:+:2199023255552:-:2199023190016:- 65536:-:2199023255552:+:65536:- 65536:-:2199023255552:-:65536:- 65536:+:70368744177664:+:70368744243200:+ 65536:+:70368744177664:-:70368744112128:- 65536:-:70368744177664:+:65536:- 65536:-:70368744177664:-:65536:- 65536:+:140737488355328:+:140737488420864:+ 65536:+:140737488355328:-:140737488289792:- 65536:-:140737488355328:+:65536:- 65536:-:140737488355328:-:65536:- 65536:+:281474976710656:+:281474976776192:+ 65536:+:281474976710656:-:281474976645120:- 65536:-:281474976710656:+:65536:- 65536:-:281474976710656:-:65536:- 65536:+:562949953421312:+:562949953486848:+ 65536:+:562949953421312:-:562949953355776:- 65536:-:562949953421312:+:65536:- 65536:-:562949953421312:-:65536:- 65536:+:18014398509481984:+:18014398509547520:+ 65536:+:18014398509481984:-:18014398509416448:- 65536:-:18014398509481984:+:65536:- 65536:-:18014398509481984:-:65536:- 65536:+:36028797018963968:+:36028797019029504:+ 65536:+:36028797018963968:-:36028797018898432:- 65536:-:36028797018963968:+:65536:- 65536:-:36028797018963968:-:65536:- 65536:+:72057594037927936:+:72057594037993472:+ 65536:+:72057594037927936:-:72057594037862400:- 65536:-:72057594037927936:+:65536:- 65536:-:72057594037927936:-:65536:- 65536:+:144115188075855872:+:144115188075921408:+ 65536:+:144115188075855872:-:144115188075790336:- 65536:-:144115188075855872:+:65536:- 65536:-:144115188075855872:-:65536:- 131072:+:0:+:131072:+ 131072:-:0:+:131072:- 131072:+:1:+:131073:+ 131072:+:1:-:1:- 131072:-:1:+:131071:- 131072:-:1:-:1:- 131072:+:2:+:131074:+ 131072:+:2:-:2:- 131072:-:2:+:131070:- 131072:-:2:-:2:- 131072:+:3:+:131075:+ 131072:+:3:-:3:- 131072:-:3:+:131069:- 131072:-:3:-:3:- 131072:+:4:+:131076:+ 131072:+:4:-:4:- 131072:-:4:+:131068:- 131072:-:4:-:4:- 131072:+:64:+:131136:+ 131072:+:64:-:64:- 131072:-:64:+:131008:- 131072:-:64:-:64:- 131072:+:128:+:131200:+ 131072:+:128:-:128:- 131072:-:128:+:130944:- 131072:-:128:-:128:- 131072:+:256:+:131328:+ 131072:+:256:-:256:- 131072:-:256:+:130816:- 131072:-:256:-:256:- 131072:+:512:+:131584:+ 131072:+:512:-:512:- 131072:-:512:+:130560:- 131072:-:512:-:512:- 131072:+:16384:+:147456:+ 131072:+:16384:-:16384:- 131072:-:16384:+:114688:- 131072:-:16384:-:16384:- 131072:+:32768:+:163840:+ 131072:+:32768:-:32768:- 131072:-:32768:+:98304:- 131072:-:32768:-:32768:- 131072:+:65536:+:196608:+ 131072:+:65536:-:65536:- 131072:-:65536:+:65536:- 131072:-:65536:-:65536:- 131072:+:131072:+:131072:+ 131072:+:131072:-:131072:- 131072:-:131072:+:131072:- 131072:-:131072:-:131072:- 131072:+:4194304:+:4325376:+ 131072:+:4194304:-:4063232:- 131072:-:4194304:+:131072:- 131072:-:4194304:-:131072:- 131072:+:8388608:+:8519680:+ 131072:+:8388608:-:8257536:- 131072:-:8388608:+:131072:- 131072:-:8388608:-:131072:- 131072:+:16777216:+:16908288:+ 131072:+:16777216:-:16646144:- 131072:-:16777216:+:131072:- 131072:-:16777216:-:131072:- 131072:+:33554432:+:33685504:+ 131072:+:33554432:-:33423360:- 131072:-:33554432:+:131072:- 131072:-:33554432:-:131072:- 131072:+:1073741824:+:1073872896:+ 131072:+:1073741824:-:1073610752:- 131072:-:1073741824:+:131072:- 131072:-:1073741824:-:131072:- 131072:+:2147483648:+:2147614720:+ 131072:+:2147483648:-:2147352576:- 131072:-:2147483648:+:131072:- 131072:-:2147483648:-:131072:- 131072:+:4294967296:+:4295098368:+ 131072:+:4294967296:-:4294836224:- 131072:-:4294967296:+:131072:- 131072:-:4294967296:-:131072:- 131072:+:8589934592:+:8590065664:+ 131072:+:8589934592:-:8589803520:- 131072:-:8589934592:+:131072:- 131072:-:8589934592:-:131072:- 131072:+:274877906944:+:274878038016:+ 131072:+:274877906944:-:274877775872:- 131072:-:274877906944:+:131072:- 131072:-:274877906944:-:131072:- 131072:+:549755813888:+:549755944960:+ 131072:+:549755813888:-:549755682816:- 131072:-:549755813888:+:131072:- 131072:-:549755813888:-:131072:- 131072:+:1099511627776:+:1099511758848:+ 131072:+:1099511627776:-:1099511496704:- 131072:-:1099511627776:+:131072:- 131072:-:1099511627776:-:131072:- 131072:+:2199023255552:+:2199023386624:+ 131072:+:2199023255552:-:2199023124480:- 131072:-:2199023255552:+:131072:- 131072:-:2199023255552:-:131072:- 131072:+:70368744177664:+:70368744308736:+ 131072:+:70368744177664:-:70368744046592:- 131072:-:70368744177664:+:131072:- 131072:-:70368744177664:-:131072:- 131072:+:140737488355328:+:140737488486400:+ 131072:+:140737488355328:-:140737488224256:- 131072:-:140737488355328:+:131072:- 131072:-:140737488355328:-:131072:- 131072:+:281474976710656:+:281474976841728:+ 131072:+:281474976710656:-:281474976579584:- 131072:-:281474976710656:+:131072:- 131072:-:281474976710656:-:131072:- 131072:+:562949953421312:+:562949953552384:+ 131072:+:562949953421312:-:562949953290240:- 131072:-:562949953421312:+:131072:- 131072:-:562949953421312:-:131072:- 131072:+:18014398509481984:+:18014398509613056:+ 131072:+:18014398509481984:-:18014398509350912:- 131072:-:18014398509481984:+:131072:- 131072:-:18014398509481984:-:131072:- 131072:+:36028797018963968:+:36028797019095040:+ 131072:+:36028797018963968:-:36028797018832896:- 131072:-:36028797018963968:+:131072:- 131072:-:36028797018963968:-:131072:- 131072:+:72057594037927936:+:72057594038059008:+ 131072:+:72057594037927936:-:72057594037796864:- 131072:-:72057594037927936:+:131072:- 131072:-:72057594037927936:-:131072:- 131072:+:144115188075855872:+:144115188075986944:+ 131072:+:144115188075855872:-:144115188075724800:- 131072:-:144115188075855872:+:131072:- 131072:-:144115188075855872:-:131072:- 4194304:+:0:+:4194304:+ 4194304:-:0:+:4194304:- 4194304:+:1:+:4194305:+ 4194304:+:1:-:1:- 4194304:-:1:+:4194303:- 4194304:-:1:-:1:- 4194304:+:2:+:4194306:+ 4194304:+:2:-:2:- 4194304:-:2:+:4194302:- 4194304:-:2:-:2:- 4194304:+:3:+:4194307:+ 4194304:+:3:-:3:- 4194304:-:3:+:4194301:- 4194304:-:3:-:3:- 4194304:+:4:+:4194308:+ 4194304:+:4:-:4:- 4194304:-:4:+:4194300:- 4194304:-:4:-:4:- 4194304:+:64:+:4194368:+ 4194304:+:64:-:64:- 4194304:-:64:+:4194240:- 4194304:-:64:-:64:- 4194304:+:128:+:4194432:+ 4194304:+:128:-:128:- 4194304:-:128:+:4194176:- 4194304:-:128:-:128:- 4194304:+:256:+:4194560:+ 4194304:+:256:-:256:- 4194304:-:256:+:4194048:- 4194304:-:256:-:256:- 4194304:+:512:+:4194816:+ 4194304:+:512:-:512:- 4194304:-:512:+:4193792:- 4194304:-:512:-:512:- 4194304:+:16384:+:4210688:+ 4194304:+:16384:-:16384:- 4194304:-:16384:+:4177920:- 4194304:-:16384:-:16384:- 4194304:+:32768:+:4227072:+ 4194304:+:32768:-:32768:- 4194304:-:32768:+:4161536:- 4194304:-:32768:-:32768:- 4194304:+:65536:+:4259840:+ 4194304:+:65536:-:65536:- 4194304:-:65536:+:4128768:- 4194304:-:65536:-:65536:- 4194304:+:131072:+:4325376:+ 4194304:+:131072:-:131072:- 4194304:-:131072:+:4063232:- 4194304:-:131072:-:131072:- 4194304:+:4194304:+:4194304:+ 4194304:+:4194304:-:4194304:- 4194304:-:4194304:+:4194304:- 4194304:-:4194304:-:4194304:- 4194304:+:8388608:+:12582912:+ 4194304:+:8388608:-:4194304:- 4194304:-:8388608:+:4194304:- 4194304:-:8388608:-:4194304:- 4194304:+:16777216:+:20971520:+ 4194304:+:16777216:-:12582912:- 4194304:-:16777216:+:4194304:- 4194304:-:16777216:-:4194304:- 4194304:+:33554432:+:37748736:+ 4194304:+:33554432:-:29360128:- 4194304:-:33554432:+:4194304:- 4194304:-:33554432:-:4194304:- 4194304:+:1073741824:+:1077936128:+ 4194304:+:1073741824:-:1069547520:- 4194304:-:1073741824:+:4194304:- 4194304:-:1073741824:-:4194304:- 4194304:+:2147483648:+:2151677952:+ 4194304:+:2147483648:-:2143289344:- 4194304:-:2147483648:+:4194304:- 4194304:-:2147483648:-:4194304:- 4194304:+:4294967296:+:4299161600:+ 4194304:+:4294967296:-:4290772992:- 4194304:-:4294967296:+:4194304:- 4194304:-:4294967296:-:4194304:- 4194304:+:8589934592:+:8594128896:+ 4194304:+:8589934592:-:8585740288:- 4194304:-:8589934592:+:4194304:- 4194304:-:8589934592:-:4194304:- 4194304:+:274877906944:+:274882101248:+ 4194304:+:274877906944:-:274873712640:- 4194304:-:274877906944:+:4194304:- 4194304:-:274877906944:-:4194304:- 4194304:+:549755813888:+:549760008192:+ 4194304:+:549755813888:-:549751619584:- 4194304:-:549755813888:+:4194304:- 4194304:-:549755813888:-:4194304:- 4194304:+:1099511627776:+:1099515822080:+ 4194304:+:1099511627776:-:1099507433472:- 4194304:-:1099511627776:+:4194304:- 4194304:-:1099511627776:-:4194304:- 4194304:+:2199023255552:+:2199027449856:+ 4194304:+:2199023255552:-:2199019061248:- 4194304:-:2199023255552:+:4194304:- 4194304:-:2199023255552:-:4194304:- 4194304:+:70368744177664:+:70368748371968:+ 4194304:+:70368744177664:-:70368739983360:- 4194304:-:70368744177664:+:4194304:- 4194304:-:70368744177664:-:4194304:- 4194304:+:140737488355328:+:140737492549632:+ 4194304:+:140737488355328:-:140737484161024:- 4194304:-:140737488355328:+:4194304:- 4194304:-:140737488355328:-:4194304:- 4194304:+:281474976710656:+:281474980904960:+ 4194304:+:281474976710656:-:281474972516352:- 4194304:-:281474976710656:+:4194304:- 4194304:-:281474976710656:-:4194304:- 4194304:+:562949953421312:+:562949957615616:+ 4194304:+:562949953421312:-:562949949227008:- 4194304:-:562949953421312:+:4194304:- 4194304:-:562949953421312:-:4194304:- 4194304:+:18014398509481984:+:18014398513676288:+ 4194304:+:18014398509481984:-:18014398505287680:- 4194304:-:18014398509481984:+:4194304:- 4194304:-:18014398509481984:-:4194304:- 4194304:+:36028797018963968:+:36028797023158272:+ 4194304:+:36028797018963968:-:36028797014769664:- 4194304:-:36028797018963968:+:4194304:- 4194304:-:36028797018963968:-:4194304:- 4194304:+:72057594037927936:+:72057594042122240:+ 4194304:+:72057594037927936:-:72057594033733632:- 4194304:-:72057594037927936:+:4194304:- 4194304:-:72057594037927936:-:4194304:- 4194304:+:144115188075855872:+:144115188080050176:+ 4194304:+:144115188075855872:-:144115188071661568:- 4194304:-:144115188075855872:+:4194304:- 4194304:-:144115188075855872:-:4194304:- 8388608:+:0:+:8388608:+ 8388608:-:0:+:8388608:- 8388608:+:1:+:8388609:+ 8388608:+:1:-:1:- 8388608:-:1:+:8388607:- 8388608:-:1:-:1:- 8388608:+:2:+:8388610:+ 8388608:+:2:-:2:- 8388608:-:2:+:8388606:- 8388608:-:2:-:2:- 8388608:+:3:+:8388611:+ 8388608:+:3:-:3:- 8388608:-:3:+:8388605:- 8388608:-:3:-:3:- 8388608:+:4:+:8388612:+ 8388608:+:4:-:4:- 8388608:-:4:+:8388604:- 8388608:-:4:-:4:- 8388608:+:64:+:8388672:+ 8388608:+:64:-:64:- 8388608:-:64:+:8388544:- 8388608:-:64:-:64:- 8388608:+:128:+:8388736:+ 8388608:+:128:-:128:- 8388608:-:128:+:8388480:- 8388608:-:128:-:128:- 8388608:+:256:+:8388864:+ 8388608:+:256:-:256:- 8388608:-:256:+:8388352:- 8388608:-:256:-:256:- 8388608:+:512:+:8389120:+ 8388608:+:512:-:512:- 8388608:-:512:+:8388096:- 8388608:-:512:-:512:- 8388608:+:16384:+:8404992:+ 8388608:+:16384:-:16384:- 8388608:-:16384:+:8372224:- 8388608:-:16384:-:16384:- 8388608:+:32768:+:8421376:+ 8388608:+:32768:-:32768:- 8388608:-:32768:+:8355840:- 8388608:-:32768:-:32768:- 8388608:+:65536:+:8454144:+ 8388608:+:65536:-:65536:- 8388608:-:65536:+:8323072:- 8388608:-:65536:-:65536:- 8388608:+:131072:+:8519680:+ 8388608:+:131072:-:131072:- 8388608:-:131072:+:8257536:- 8388608:-:131072:-:131072:- 8388608:+:4194304:+:12582912:+ 8388608:+:4194304:-:4194304:- 8388608:-:4194304:+:4194304:- 8388608:-:4194304:-:4194304:- 8388608:+:8388608:+:8388608:+ 8388608:+:8388608:-:8388608:- 8388608:-:8388608:+:8388608:- 8388608:-:8388608:-:8388608:- 8388608:+:16777216:+:25165824:+ 8388608:+:16777216:-:8388608:- 8388608:-:16777216:+:8388608:- 8388608:-:16777216:-:8388608:- 8388608:+:33554432:+:41943040:+ 8388608:+:33554432:-:25165824:- 8388608:-:33554432:+:8388608:- 8388608:-:33554432:-:8388608:- 8388608:+:1073741824:+:1082130432:+ 8388608:+:1073741824:-:1065353216:- 8388608:-:1073741824:+:8388608:- 8388608:-:1073741824:-:8388608:- 8388608:+:2147483648:+:2155872256:+ 8388608:+:2147483648:-:2139095040:- 8388608:-:2147483648:+:8388608:- 8388608:-:2147483648:-:8388608:- 8388608:+:4294967296:+:4303355904:+ 8388608:+:4294967296:-:4286578688:- 8388608:-:4294967296:+:8388608:- 8388608:-:4294967296:-:8388608:- 8388608:+:8589934592:+:8598323200:+ 8388608:+:8589934592:-:8581545984:- 8388608:-:8589934592:+:8388608:- 8388608:-:8589934592:-:8388608:- 8388608:+:274877906944:+:274886295552:+ 8388608:+:274877906944:-:274869518336:- 8388608:-:274877906944:+:8388608:- 8388608:-:274877906944:-:8388608:- 8388608:+:549755813888:+:549764202496:+ 8388608:+:549755813888:-:549747425280:- 8388608:-:549755813888:+:8388608:- 8388608:-:549755813888:-:8388608:- 8388608:+:1099511627776:+:1099520016384:+ 8388608:+:1099511627776:-:1099503239168:- 8388608:-:1099511627776:+:8388608:- 8388608:-:1099511627776:-:8388608:- 8388608:+:2199023255552:+:2199031644160:+ 8388608:+:2199023255552:-:2199014866944:- 8388608:-:2199023255552:+:8388608:- 8388608:-:2199023255552:-:8388608:- 8388608:+:70368744177664:+:70368752566272:+ 8388608:+:70368744177664:-:70368735789056:- 8388608:-:70368744177664:+:8388608:- 8388608:-:70368744177664:-:8388608:- 8388608:+:140737488355328:+:140737496743936:+ 8388608:+:140737488355328:-:140737479966720:- 8388608:-:140737488355328:+:8388608:- 8388608:-:140737488355328:-:8388608:- 8388608:+:281474976710656:+:281474985099264:+ 8388608:+:281474976710656:-:281474968322048:- 8388608:-:281474976710656:+:8388608:- 8388608:-:281474976710656:-:8388608:- 8388608:+:562949953421312:+:562949961809920:+ 8388608:+:562949953421312:-:562949945032704:- 8388608:-:562949953421312:+:8388608:- 8388608:-:562949953421312:-:8388608:- 8388608:+:18014398509481984:+:18014398517870592:+ 8388608:+:18014398509481984:-:18014398501093376:- 8388608:-:18014398509481984:+:8388608:- 8388608:-:18014398509481984:-:8388608:- 8388608:+:36028797018963968:+:36028797027352576:+ 8388608:+:36028797018963968:-:36028797010575360:- 8388608:-:36028797018963968:+:8388608:- 8388608:-:36028797018963968:-:8388608:- 8388608:+:72057594037927936:+:72057594046316544:+ 8388608:+:72057594037927936:-:72057594029539328:- 8388608:-:72057594037927936:+:8388608:- 8388608:-:72057594037927936:-:8388608:- 8388608:+:144115188075855872:+:144115188084244480:+ 8388608:+:144115188075855872:-:144115188067467264:- 8388608:-:144115188075855872:+:8388608:- 8388608:-:144115188075855872:-:8388608:- 16777216:+:0:+:16777216:+ 16777216:-:0:+:16777216:- 16777216:+:1:+:16777217:+ 16777216:+:1:-:1:- 16777216:-:1:+:16777215:- 16777216:-:1:-:1:- 16777216:+:2:+:16777218:+ 16777216:+:2:-:2:- 16777216:-:2:+:16777214:- 16777216:-:2:-:2:- 16777216:+:3:+:16777219:+ 16777216:+:3:-:3:- 16777216:-:3:+:16777213:- 16777216:-:3:-:3:- 16777216:+:4:+:16777220:+ 16777216:+:4:-:4:- 16777216:-:4:+:16777212:- 16777216:-:4:-:4:- 16777216:+:64:+:16777280:+ 16777216:+:64:-:64:- 16777216:-:64:+:16777152:- 16777216:-:64:-:64:- 16777216:+:128:+:16777344:+ 16777216:+:128:-:128:- 16777216:-:128:+:16777088:- 16777216:-:128:-:128:- 16777216:+:256:+:16777472:+ 16777216:+:256:-:256:- 16777216:-:256:+:16776960:- 16777216:-:256:-:256:- 16777216:+:512:+:16777728:+ 16777216:+:512:-:512:- 16777216:-:512:+:16776704:- 16777216:-:512:-:512:- 16777216:+:16384:+:16793600:+ 16777216:+:16384:-:16384:- 16777216:-:16384:+:16760832:- 16777216:-:16384:-:16384:- 16777216:+:32768:+:16809984:+ 16777216:+:32768:-:32768:- 16777216:-:32768:+:16744448:- 16777216:-:32768:-:32768:- 16777216:+:65536:+:16842752:+ 16777216:+:65536:-:65536:- 16777216:-:65536:+:16711680:- 16777216:-:65536:-:65536:- 16777216:+:131072:+:16908288:+ 16777216:+:131072:-:131072:- 16777216:-:131072:+:16646144:- 16777216:-:131072:-:131072:- 16777216:+:4194304:+:20971520:+ 16777216:+:4194304:-:4194304:- 16777216:-:4194304:+:12582912:- 16777216:-:4194304:-:4194304:- 16777216:+:8388608:+:25165824:+ 16777216:+:8388608:-:8388608:- 16777216:-:8388608:+:8388608:- 16777216:-:8388608:-:8388608:- 16777216:+:16777216:+:16777216:+ 16777216:+:16777216:-:16777216:- 16777216:-:16777216:+:16777216:- 16777216:-:16777216:-:16777216:- 16777216:+:33554432:+:50331648:+ 16777216:+:33554432:-:16777216:- 16777216:-:33554432:+:16777216:- 16777216:-:33554432:-:16777216:- 16777216:+:1073741824:+:1090519040:+ 16777216:+:1073741824:-:1056964608:- 16777216:-:1073741824:+:16777216:- 16777216:-:1073741824:-:16777216:- 16777216:+:2147483648:+:2164260864:+ 16777216:+:2147483648:-:2130706432:- 16777216:-:2147483648:+:16777216:- 16777216:-:2147483648:-:16777216:- 16777216:+:4294967296:+:4311744512:+ 16777216:+:4294967296:-:4278190080:- 16777216:-:4294967296:+:16777216:- 16777216:-:4294967296:-:16777216:- 16777216:+:8589934592:+:8606711808:+ 16777216:+:8589934592:-:8573157376:- 16777216:-:8589934592:+:16777216:- 16777216:-:8589934592:-:16777216:- 16777216:+:274877906944:+:274894684160:+ 16777216:+:274877906944:-:274861129728:- 16777216:-:274877906944:+:16777216:- 16777216:-:274877906944:-:16777216:- 16777216:+:549755813888:+:549772591104:+ 16777216:+:549755813888:-:549739036672:- 16777216:-:549755813888:+:16777216:- 16777216:-:549755813888:-:16777216:- 16777216:+:1099511627776:+:1099528404992:+ 16777216:+:1099511627776:-:1099494850560:- 16777216:-:1099511627776:+:16777216:- 16777216:-:1099511627776:-:16777216:- 16777216:+:2199023255552:+:2199040032768:+ 16777216:+:2199023255552:-:2199006478336:- 16777216:-:2199023255552:+:16777216:- 16777216:-:2199023255552:-:16777216:- 16777216:+:70368744177664:+:70368760954880:+ 16777216:+:70368744177664:-:70368727400448:- 16777216:-:70368744177664:+:16777216:- 16777216:-:70368744177664:-:16777216:- 16777216:+:140737488355328:+:140737505132544:+ 16777216:+:140737488355328:-:140737471578112:- 16777216:-:140737488355328:+:16777216:- 16777216:-:140737488355328:-:16777216:- 16777216:+:281474976710656:+:281474993487872:+ 16777216:+:281474976710656:-:281474959933440:- 16777216:-:281474976710656:+:16777216:- 16777216:-:281474976710656:-:16777216:- 16777216:+:562949953421312:+:562949970198528:+ 16777216:+:562949953421312:-:562949936644096:- 16777216:-:562949953421312:+:16777216:- 16777216:-:562949953421312:-:16777216:- 16777216:+:18014398509481984:+:18014398526259200:+ 16777216:+:18014398509481984:-:18014398492704768:- 16777216:-:18014398509481984:+:16777216:- 16777216:-:18014398509481984:-:16777216:- 16777216:+:36028797018963968:+:36028797035741184:+ 16777216:+:36028797018963968:-:36028797002186752:- 16777216:-:36028797018963968:+:16777216:- 16777216:-:36028797018963968:-:16777216:- 16777216:+:72057594037927936:+:72057594054705152:+ 16777216:+:72057594037927936:-:72057594021150720:- 16777216:-:72057594037927936:+:16777216:- 16777216:-:72057594037927936:-:16777216:- 16777216:+:144115188075855872:+:144115188092633088:+ 16777216:+:144115188075855872:-:144115188059078656:- 16777216:-:144115188075855872:+:16777216:- 16777216:-:144115188075855872:-:16777216:- 33554432:+:0:+:33554432:+ 33554432:-:0:+:33554432:- 33554432:+:1:+:33554433:+ 33554432:+:1:-:1:- 33554432:-:1:+:33554431:- 33554432:-:1:-:1:- 33554432:+:2:+:33554434:+ 33554432:+:2:-:2:- 33554432:-:2:+:33554430:- 33554432:-:2:-:2:- 33554432:+:3:+:33554435:+ 33554432:+:3:-:3:- 33554432:-:3:+:33554429:- 33554432:-:3:-:3:- 33554432:+:4:+:33554436:+ 33554432:+:4:-:4:- 33554432:-:4:+:33554428:- 33554432:-:4:-:4:- 33554432:+:64:+:33554496:+ 33554432:+:64:-:64:- 33554432:-:64:+:33554368:- 33554432:-:64:-:64:- 33554432:+:128:+:33554560:+ 33554432:+:128:-:128:- 33554432:-:128:+:33554304:- 33554432:-:128:-:128:- 33554432:+:256:+:33554688:+ 33554432:+:256:-:256:- 33554432:-:256:+:33554176:- 33554432:-:256:-:256:- 33554432:+:512:+:33554944:+ 33554432:+:512:-:512:- 33554432:-:512:+:33553920:- 33554432:-:512:-:512:- 33554432:+:16384:+:33570816:+ 33554432:+:16384:-:16384:- 33554432:-:16384:+:33538048:- 33554432:-:16384:-:16384:- 33554432:+:32768:+:33587200:+ 33554432:+:32768:-:32768:- 33554432:-:32768:+:33521664:- 33554432:-:32768:-:32768:- 33554432:+:65536:+:33619968:+ 33554432:+:65536:-:65536:- 33554432:-:65536:+:33488896:- 33554432:-:65536:-:65536:- 33554432:+:131072:+:33685504:+ 33554432:+:131072:-:131072:- 33554432:-:131072:+:33423360:- 33554432:-:131072:-:131072:- 33554432:+:4194304:+:37748736:+ 33554432:+:4194304:-:4194304:- 33554432:-:4194304:+:29360128:- 33554432:-:4194304:-:4194304:- 33554432:+:8388608:+:41943040:+ 33554432:+:8388608:-:8388608:- 33554432:-:8388608:+:25165824:- 33554432:-:8388608:-:8388608:- 33554432:+:16777216:+:50331648:+ 33554432:+:16777216:-:16777216:- 33554432:-:16777216:+:16777216:- 33554432:-:16777216:-:16777216:- 33554432:+:33554432:+:33554432:+ 33554432:+:33554432:-:33554432:- 33554432:-:33554432:+:33554432:- 33554432:-:33554432:-:33554432:- 33554432:+:1073741824:+:1107296256:+ 33554432:+:1073741824:-:1040187392:- 33554432:-:1073741824:+:33554432:- 33554432:-:1073741824:-:33554432:- 33554432:+:2147483648:+:2181038080:+ 33554432:+:2147483648:-:2113929216:- 33554432:-:2147483648:+:33554432:- 33554432:-:2147483648:-:33554432:- 33554432:+:4294967296:+:4328521728:+ 33554432:+:4294967296:-:4261412864:- 33554432:-:4294967296:+:33554432:- 33554432:-:4294967296:-:33554432:- 33554432:+:8589934592:+:8623489024:+ 33554432:+:8589934592:-:8556380160:- 33554432:-:8589934592:+:33554432:- 33554432:-:8589934592:-:33554432:- 33554432:+:274877906944:+:274911461376:+ 33554432:+:274877906944:-:274844352512:- 33554432:-:274877906944:+:33554432:- 33554432:-:274877906944:-:33554432:- 33554432:+:549755813888:+:549789368320:+ 33554432:+:549755813888:-:549722259456:- 33554432:-:549755813888:+:33554432:- 33554432:-:549755813888:-:33554432:- 33554432:+:1099511627776:+:1099545182208:+ 33554432:+:1099511627776:-:1099478073344:- 33554432:-:1099511627776:+:33554432:- 33554432:-:1099511627776:-:33554432:- 33554432:+:2199023255552:+:2199056809984:+ 33554432:+:2199023255552:-:2198989701120:- 33554432:-:2199023255552:+:33554432:- 33554432:-:2199023255552:-:33554432:- 33554432:+:70368744177664:+:70368777732096:+ 33554432:+:70368744177664:-:70368710623232:- 33554432:-:70368744177664:+:33554432:- 33554432:-:70368744177664:-:33554432:- 33554432:+:140737488355328:+:140737521909760:+ 33554432:+:140737488355328:-:140737454800896:- 33554432:-:140737488355328:+:33554432:- 33554432:-:140737488355328:-:33554432:- 33554432:+:281474976710656:+:281475010265088:+ 33554432:+:281474976710656:-:281474943156224:- 33554432:-:281474976710656:+:33554432:- 33554432:-:281474976710656:-:33554432:- 33554432:+:562949953421312:+:562949986975744:+ 33554432:+:562949953421312:-:562949919866880:- 33554432:-:562949953421312:+:33554432:- 33554432:-:562949953421312:-:33554432:- 33554432:+:18014398509481984:+:18014398543036416:+ 33554432:+:18014398509481984:-:18014398475927552:- 33554432:-:18014398509481984:+:33554432:- 33554432:-:18014398509481984:-:33554432:- 33554432:+:36028797018963968:+:36028797052518400:+ 33554432:+:36028797018963968:-:36028796985409536:- 33554432:-:36028797018963968:+:33554432:- 33554432:-:36028797018963968:-:33554432:- 33554432:+:72057594037927936:+:72057594071482368:+ 33554432:+:72057594037927936:-:72057594004373504:- 33554432:-:72057594037927936:+:33554432:- 33554432:-:72057594037927936:-:33554432:- 33554432:+:144115188075855872:+:144115188109410304:+ 33554432:+:144115188075855872:-:144115188042301440:- 33554432:-:144115188075855872:+:33554432:- 33554432:-:144115188075855872:-:33554432:- 1073741824:+:0:+:1073741824:+ 1073741824:-:0:+:1073741824:- 1073741824:+:1:+:1073741825:+ 1073741824:+:1:-:1:- 1073741824:-:1:+:1073741823:- 1073741824:-:1:-:1:- 1073741824:+:2:+:1073741826:+ 1073741824:+:2:-:2:- 1073741824:-:2:+:1073741822:- 1073741824:-:2:-:2:- 1073741824:+:3:+:1073741827:+ 1073741824:+:3:-:3:- 1073741824:-:3:+:1073741821:- 1073741824:-:3:-:3:- 1073741824:+:4:+:1073741828:+ 1073741824:+:4:-:4:- 1073741824:-:4:+:1073741820:- 1073741824:-:4:-:4:- 1073741824:+:64:+:1073741888:+ 1073741824:+:64:-:64:- 1073741824:-:64:+:1073741760:- 1073741824:-:64:-:64:- 1073741824:+:128:+:1073741952:+ 1073741824:+:128:-:128:- 1073741824:-:128:+:1073741696:- 1073741824:-:128:-:128:- 1073741824:+:256:+:1073742080:+ 1073741824:+:256:-:256:- 1073741824:-:256:+:1073741568:- 1073741824:-:256:-:256:- 1073741824:+:512:+:1073742336:+ 1073741824:+:512:-:512:- 1073741824:-:512:+:1073741312:- 1073741824:-:512:-:512:- 1073741824:+:16384:+:1073758208:+ 1073741824:+:16384:-:16384:- 1073741824:-:16384:+:1073725440:- 1073741824:-:16384:-:16384:- 1073741824:+:32768:+:1073774592:+ 1073741824:+:32768:-:32768:- 1073741824:-:32768:+:1073709056:- 1073741824:-:32768:-:32768:- 1073741824:+:65536:+:1073807360:+ 1073741824:+:65536:-:65536:- 1073741824:-:65536:+:1073676288:- 1073741824:-:65536:-:65536:- 1073741824:+:131072:+:1073872896:+ 1073741824:+:131072:-:131072:- 1073741824:-:131072:+:1073610752:- 1073741824:-:131072:-:131072:- 1073741824:+:4194304:+:1077936128:+ 1073741824:+:4194304:-:4194304:- 1073741824:-:4194304:+:1069547520:- 1073741824:-:4194304:-:4194304:- 1073741824:+:8388608:+:1082130432:+ 1073741824:+:8388608:-:8388608:- 1073741824:-:8388608:+:1065353216:- 1073741824:-:8388608:-:8388608:- 1073741824:+:16777216:+:1090519040:+ 1073741824:+:16777216:-:16777216:- 1073741824:-:16777216:+:1056964608:- 1073741824:-:16777216:-:16777216:- 1073741824:+:33554432:+:1107296256:+ 1073741824:+:33554432:-:33554432:- 1073741824:-:33554432:+:1040187392:- 1073741824:-:33554432:-:33554432:- 1073741824:+:1073741824:+:1073741824:+ 1073741824:+:1073741824:-:1073741824:- 1073741824:-:1073741824:+:1073741824:- 1073741824:-:1073741824:-:1073741824:- 1073741824:+:2147483648:+:3221225472:+ 1073741824:+:2147483648:-:1073741824:- 1073741824:-:2147483648:+:1073741824:- 1073741824:-:2147483648:-:1073741824:- 1073741824:+:4294967296:+:5368709120:+ 1073741824:+:4294967296:-:3221225472:- 1073741824:-:4294967296:+:1073741824:- 1073741824:-:4294967296:-:1073741824:- 1073741824:+:8589934592:+:9663676416:+ 1073741824:+:8589934592:-:7516192768:- 1073741824:-:8589934592:+:1073741824:- 1073741824:-:8589934592:-:1073741824:- 1073741824:+:274877906944:+:275951648768:+ 1073741824:+:274877906944:-:273804165120:- 1073741824:-:274877906944:+:1073741824:- 1073741824:-:274877906944:-:1073741824:- 1073741824:+:549755813888:+:550829555712:+ 1073741824:+:549755813888:-:548682072064:- 1073741824:-:549755813888:+:1073741824:- 1073741824:-:549755813888:-:1073741824:- 1073741824:+:1099511627776:+:1100585369600:+ 1073741824:+:1099511627776:-:1098437885952:- 1073741824:-:1099511627776:+:1073741824:- 1073741824:-:1099511627776:-:1073741824:- 1073741824:+:2199023255552:+:2200096997376:+ 1073741824:+:2199023255552:-:2197949513728:- 1073741824:-:2199023255552:+:1073741824:- 1073741824:-:2199023255552:-:1073741824:- 1073741824:+:70368744177664:+:70369817919488:+ 1073741824:+:70368744177664:-:70367670435840:- 1073741824:-:70368744177664:+:1073741824:- 1073741824:-:70368744177664:-:1073741824:- 1073741824:+:140737488355328:+:140738562097152:+ 1073741824:+:140737488355328:-:140736414613504:- 1073741824:-:140737488355328:+:1073741824:- 1073741824:-:140737488355328:-:1073741824:- 1073741824:+:281474976710656:+:281476050452480:+ 1073741824:+:281474976710656:-:281473902968832:- 1073741824:-:281474976710656:+:1073741824:- 1073741824:-:281474976710656:-:1073741824:- 1073741824:+:562949953421312:+:562951027163136:+ 1073741824:+:562949953421312:-:562948879679488:- 1073741824:-:562949953421312:+:1073741824:- 1073741824:-:562949953421312:-:1073741824:- 1073741824:+:18014398509481984:+:18014399583223808:+ 1073741824:+:18014398509481984:-:18014397435740160:- 1073741824:-:18014398509481984:+:1073741824:- 1073741824:-:18014398509481984:-:1073741824:- 1073741824:+:36028797018963968:+:36028798092705792:+ 1073741824:+:36028797018963968:-:36028795945222144:- 1073741824:-:36028797018963968:+:1073741824:- 1073741824:-:36028797018963968:-:1073741824:- 1073741824:+:72057594037927936:+:72057595111669760:+ 1073741824:+:72057594037927936:-:72057592964186112:- 1073741824:-:72057594037927936:+:1073741824:- 1073741824:-:72057594037927936:-:1073741824:- 1073741824:+:144115188075855872:+:144115189149597696:+ 1073741824:+:144115188075855872:-:144115187002114048:- 1073741824:-:144115188075855872:+:1073741824:- 1073741824:-:144115188075855872:-:1073741824:- 2147483648:+:0:+:2147483648:+ 2147483648:-:0:+:2147483648:- 2147483648:+:1:+:2147483649:+ 2147483648:+:1:-:1:- 2147483648:-:1:+:2147483647:- 2147483648:-:1:-:1:- 2147483648:+:2:+:2147483650:+ 2147483648:+:2:-:2:- 2147483648:-:2:+:2147483646:- 2147483648:-:2:-:2:- 2147483648:+:3:+:2147483651:+ 2147483648:+:3:-:3:- 2147483648:-:3:+:2147483645:- 2147483648:-:3:-:3:- 2147483648:+:4:+:2147483652:+ 2147483648:+:4:-:4:- 2147483648:-:4:+:2147483644:- 2147483648:-:4:-:4:- 2147483648:+:64:+:2147483712:+ 2147483648:+:64:-:64:- 2147483648:-:64:+:2147483584:- 2147483648:-:64:-:64:- 2147483648:+:128:+:2147483776:+ 2147483648:+:128:-:128:- 2147483648:-:128:+:2147483520:- 2147483648:-:128:-:128:- 2147483648:+:256:+:2147483904:+ 2147483648:+:256:-:256:- 2147483648:-:256:+:2147483392:- 2147483648:-:256:-:256:- 2147483648:+:512:+:2147484160:+ 2147483648:+:512:-:512:- 2147483648:-:512:+:2147483136:- 2147483648:-:512:-:512:- 2147483648:+:16384:+:2147500032:+ 2147483648:+:16384:-:16384:- 2147483648:-:16384:+:2147467264:- 2147483648:-:16384:-:16384:- 2147483648:+:32768:+:2147516416:+ 2147483648:+:32768:-:32768:- 2147483648:-:32768:+:2147450880:- 2147483648:-:32768:-:32768:- 2147483648:+:65536:+:2147549184:+ 2147483648:+:65536:-:65536:- 2147483648:-:65536:+:2147418112:- 2147483648:-:65536:-:65536:- 2147483648:+:131072:+:2147614720:+ 2147483648:+:131072:-:131072:- 2147483648:-:131072:+:2147352576:- 2147483648:-:131072:-:131072:- 2147483648:+:4194304:+:2151677952:+ 2147483648:+:4194304:-:4194304:- 2147483648:-:4194304:+:2143289344:- 2147483648:-:4194304:-:4194304:- 2147483648:+:8388608:+:2155872256:+ 2147483648:+:8388608:-:8388608:- 2147483648:-:8388608:+:2139095040:- 2147483648:-:8388608:-:8388608:- 2147483648:+:16777216:+:2164260864:+ 2147483648:+:16777216:-:16777216:- 2147483648:-:16777216:+:2130706432:- 2147483648:-:16777216:-:16777216:- 2147483648:+:33554432:+:2181038080:+ 2147483648:+:33554432:-:33554432:- 2147483648:-:33554432:+:2113929216:- 2147483648:-:33554432:-:33554432:- 2147483648:+:1073741824:+:3221225472:+ 2147483648:+:1073741824:-:1073741824:- 2147483648:-:1073741824:+:1073741824:- 2147483648:-:1073741824:-:1073741824:- 2147483648:+:2147483648:+:2147483648:+ 2147483648:+:2147483648:-:2147483648:- 2147483648:-:2147483648:+:2147483648:- 2147483648:-:2147483648:-:2147483648:- 2147483648:+:4294967296:+:6442450944:+ 2147483648:+:4294967296:-:2147483648:- 2147483648:-:4294967296:+:2147483648:- 2147483648:-:4294967296:-:2147483648:- 2147483648:+:8589934592:+:10737418240:+ 2147483648:+:8589934592:-:6442450944:- 2147483648:-:8589934592:+:2147483648:- 2147483648:-:8589934592:-:2147483648:- 2147483648:+:274877906944:+:277025390592:+ 2147483648:+:274877906944:-:272730423296:- 2147483648:-:274877906944:+:2147483648:- 2147483648:-:274877906944:-:2147483648:- 2147483648:+:549755813888:+:551903297536:+ 2147483648:+:549755813888:-:547608330240:- 2147483648:-:549755813888:+:2147483648:- 2147483648:-:549755813888:-:2147483648:- 2147483648:+:1099511627776:+:1101659111424:+ 2147483648:+:1099511627776:-:1097364144128:- 2147483648:-:1099511627776:+:2147483648:- 2147483648:-:1099511627776:-:2147483648:- 2147483648:+:2199023255552:+:2201170739200:+ 2147483648:+:2199023255552:-:2196875771904:- 2147483648:-:2199023255552:+:2147483648:- 2147483648:-:2199023255552:-:2147483648:- 2147483648:+:70368744177664:+:70370891661312:+ 2147483648:+:70368744177664:-:70366596694016:- 2147483648:-:70368744177664:+:2147483648:- 2147483648:-:70368744177664:-:2147483648:- 2147483648:+:140737488355328:+:140739635838976:+ 2147483648:+:140737488355328:-:140735340871680:- 2147483648:-:140737488355328:+:2147483648:- 2147483648:-:140737488355328:-:2147483648:- 2147483648:+:281474976710656:+:281477124194304:+ 2147483648:+:281474976710656:-:281472829227008:- 2147483648:-:281474976710656:+:2147483648:- 2147483648:-:281474976710656:-:2147483648:- 2147483648:+:562949953421312:+:562952100904960:+ 2147483648:+:562949953421312:-:562947805937664:- 2147483648:-:562949953421312:+:2147483648:- 2147483648:-:562949953421312:-:2147483648:- 2147483648:+:18014398509481984:+:18014400656965632:+ 2147483648:+:18014398509481984:-:18014396361998336:- 2147483648:-:18014398509481984:+:2147483648:- 2147483648:-:18014398509481984:-:2147483648:- 2147483648:+:36028797018963968:+:36028799166447616:+ 2147483648:+:36028797018963968:-:36028794871480320:- 2147483648:-:36028797018963968:+:2147483648:- 2147483648:-:36028797018963968:-:2147483648:- 2147483648:+:72057594037927936:+:72057596185411584:+ 2147483648:+:72057594037927936:-:72057591890444288:- 2147483648:-:72057594037927936:+:2147483648:- 2147483648:-:72057594037927936:-:2147483648:- 2147483648:+:144115188075855872:+:144115190223339520:+ 2147483648:+:144115188075855872:-:144115185928372224:- 2147483648:-:144115188075855872:+:2147483648:- 2147483648:-:144115188075855872:-:2147483648:- 4294967296:+:0:+:4294967296:+ 4294967296:-:0:+:4294967296:- 4294967296:+:1:+:4294967297:+ 4294967296:+:1:-:1:- 4294967296:-:1:+:4294967295:- 4294967296:-:1:-:1:- 4294967296:+:2:+:4294967298:+ 4294967296:+:2:-:2:- 4294967296:-:2:+:4294967294:- 4294967296:-:2:-:2:- 4294967296:+:3:+:4294967299:+ 4294967296:+:3:-:3:- 4294967296:-:3:+:4294967293:- 4294967296:-:3:-:3:- 4294967296:+:4:+:4294967300:+ 4294967296:+:4:-:4:- 4294967296:-:4:+:4294967292:- 4294967296:-:4:-:4:- 4294967296:+:64:+:4294967360:+ 4294967296:+:64:-:64:- 4294967296:-:64:+:4294967232:- 4294967296:-:64:-:64:- 4294967296:+:128:+:4294967424:+ 4294967296:+:128:-:128:- 4294967296:-:128:+:4294967168:- 4294967296:-:128:-:128:- 4294967296:+:256:+:4294967552:+ 4294967296:+:256:-:256:- 4294967296:-:256:+:4294967040:- 4294967296:-:256:-:256:- 4294967296:+:512:+:4294967808:+ 4294967296:+:512:-:512:- 4294967296:-:512:+:4294966784:- 4294967296:-:512:-:512:- 4294967296:+:16384:+:4294983680:+ 4294967296:+:16384:-:16384:- 4294967296:-:16384:+:4294950912:- 4294967296:-:16384:-:16384:- 4294967296:+:32768:+:4295000064:+ 4294967296:+:32768:-:32768:- 4294967296:-:32768:+:4294934528:- 4294967296:-:32768:-:32768:- 4294967296:+:65536:+:4295032832:+ 4294967296:+:65536:-:65536:- 4294967296:-:65536:+:4294901760:- 4294967296:-:65536:-:65536:- 4294967296:+:131072:+:4295098368:+ 4294967296:+:131072:-:131072:- 4294967296:-:131072:+:4294836224:- 4294967296:-:131072:-:131072:- 4294967296:+:4194304:+:4299161600:+ 4294967296:+:4194304:-:4194304:- 4294967296:-:4194304:+:4290772992:- 4294967296:-:4194304:-:4194304:- 4294967296:+:8388608:+:4303355904:+ 4294967296:+:8388608:-:8388608:- 4294967296:-:8388608:+:4286578688:- 4294967296:-:8388608:-:8388608:- 4294967296:+:16777216:+:4311744512:+ 4294967296:+:16777216:-:16777216:- 4294967296:-:16777216:+:4278190080:- 4294967296:-:16777216:-:16777216:- 4294967296:+:33554432:+:4328521728:+ 4294967296:+:33554432:-:33554432:- 4294967296:-:33554432:+:4261412864:- 4294967296:-:33554432:-:33554432:- 4294967296:+:1073741824:+:5368709120:+ 4294967296:+:1073741824:-:1073741824:- 4294967296:-:1073741824:+:3221225472:- 4294967296:-:1073741824:-:1073741824:- 4294967296:+:2147483648:+:6442450944:+ 4294967296:+:2147483648:-:2147483648:- 4294967296:-:2147483648:+:2147483648:- 4294967296:-:2147483648:-:2147483648:- 4294967296:+:4294967296:+:4294967296:+ 4294967296:+:4294967296:-:4294967296:- 4294967296:-:4294967296:+:4294967296:- 4294967296:-:4294967296:-:4294967296:- 4294967296:+:8589934592:+:12884901888:+ 4294967296:+:8589934592:-:4294967296:- 4294967296:-:8589934592:+:4294967296:- 4294967296:-:8589934592:-:4294967296:- 4294967296:+:274877906944:+:279172874240:+ 4294967296:+:274877906944:-:270582939648:- 4294967296:-:274877906944:+:4294967296:- 4294967296:-:274877906944:-:4294967296:- 4294967296:+:549755813888:+:554050781184:+ 4294967296:+:549755813888:-:545460846592:- 4294967296:-:549755813888:+:4294967296:- 4294967296:-:549755813888:-:4294967296:- 4294967296:+:1099511627776:+:1103806595072:+ 4294967296:+:1099511627776:-:1095216660480:- 4294967296:-:1099511627776:+:4294967296:- 4294967296:-:1099511627776:-:4294967296:- 4294967296:+:2199023255552:+:2203318222848:+ 4294967296:+:2199023255552:-:2194728288256:- 4294967296:-:2199023255552:+:4294967296:- 4294967296:-:2199023255552:-:4294967296:- 4294967296:+:70368744177664:+:70373039144960:+ 4294967296:+:70368744177664:-:70364449210368:- 4294967296:-:70368744177664:+:4294967296:- 4294967296:-:70368744177664:-:4294967296:- 4294967296:+:140737488355328:+:140741783322624:+ 4294967296:+:140737488355328:-:140733193388032:- 4294967296:-:140737488355328:+:4294967296:- 4294967296:-:140737488355328:-:4294967296:- 4294967296:+:281474976710656:+:281479271677952:+ 4294967296:+:281474976710656:-:281470681743360:- 4294967296:-:281474976710656:+:4294967296:- 4294967296:-:281474976710656:-:4294967296:- 4294967296:+:562949953421312:+:562954248388608:+ 4294967296:+:562949953421312:-:562945658454016:- 4294967296:-:562949953421312:+:4294967296:- 4294967296:-:562949953421312:-:4294967296:- 4294967296:+:18014398509481984:+:18014402804449280:+ 4294967296:+:18014398509481984:-:18014394214514688:- 4294967296:-:18014398509481984:+:4294967296:- 4294967296:-:18014398509481984:-:4294967296:- 4294967296:+:36028797018963968:+:36028801313931264:+ 4294967296:+:36028797018963968:-:36028792723996672:- 4294967296:-:36028797018963968:+:4294967296:- 4294967296:-:36028797018963968:-:4294967296:- 4294967296:+:72057594037927936:+:72057598332895232:+ 4294967296:+:72057594037927936:-:72057589742960640:- 4294967296:-:72057594037927936:+:4294967296:- 4294967296:-:72057594037927936:-:4294967296:- 4294967296:+:144115188075855872:+:144115192370823168:+ 4294967296:+:144115188075855872:-:144115183780888576:- 4294967296:-:144115188075855872:+:4294967296:- 4294967296:-:144115188075855872:-:4294967296:- 8589934592:+:0:+:8589934592:+ 8589934592:-:0:+:8589934592:- 8589934592:+:1:+:8589934593:+ 8589934592:+:1:-:1:- 8589934592:-:1:+:8589934591:- 8589934592:-:1:-:1:- 8589934592:+:2:+:8589934594:+ 8589934592:+:2:-:2:- 8589934592:-:2:+:8589934590:- 8589934592:-:2:-:2:- 8589934592:+:3:+:8589934595:+ 8589934592:+:3:-:3:- 8589934592:-:3:+:8589934589:- 8589934592:-:3:-:3:- 8589934592:+:4:+:8589934596:+ 8589934592:+:4:-:4:- 8589934592:-:4:+:8589934588:- 8589934592:-:4:-:4:- 8589934592:+:64:+:8589934656:+ 8589934592:+:64:-:64:- 8589934592:-:64:+:8589934528:- 8589934592:-:64:-:64:- 8589934592:+:128:+:8589934720:+ 8589934592:+:128:-:128:- 8589934592:-:128:+:8589934464:- 8589934592:-:128:-:128:- 8589934592:+:256:+:8589934848:+ 8589934592:+:256:-:256:- 8589934592:-:256:+:8589934336:- 8589934592:-:256:-:256:- 8589934592:+:512:+:8589935104:+ 8589934592:+:512:-:512:- 8589934592:-:512:+:8589934080:- 8589934592:-:512:-:512:- 8589934592:+:16384:+:8589950976:+ 8589934592:+:16384:-:16384:- 8589934592:-:16384:+:8589918208:- 8589934592:-:16384:-:16384:- 8589934592:+:32768:+:8589967360:+ 8589934592:+:32768:-:32768:- 8589934592:-:32768:+:8589901824:- 8589934592:-:32768:-:32768:- 8589934592:+:65536:+:8590000128:+ 8589934592:+:65536:-:65536:- 8589934592:-:65536:+:8589869056:- 8589934592:-:65536:-:65536:- 8589934592:+:131072:+:8590065664:+ 8589934592:+:131072:-:131072:- 8589934592:-:131072:+:8589803520:- 8589934592:-:131072:-:131072:- 8589934592:+:4194304:+:8594128896:+ 8589934592:+:4194304:-:4194304:- 8589934592:-:4194304:+:8585740288:- 8589934592:-:4194304:-:4194304:- 8589934592:+:8388608:+:8598323200:+ 8589934592:+:8388608:-:8388608:- 8589934592:-:8388608:+:8581545984:- 8589934592:-:8388608:-:8388608:- 8589934592:+:16777216:+:8606711808:+ 8589934592:+:16777216:-:16777216:- 8589934592:-:16777216:+:8573157376:- 8589934592:-:16777216:-:16777216:- 8589934592:+:33554432:+:8623489024:+ 8589934592:+:33554432:-:33554432:- 8589934592:-:33554432:+:8556380160:- 8589934592:-:33554432:-:33554432:- 8589934592:+:1073741824:+:9663676416:+ 8589934592:+:1073741824:-:1073741824:- 8589934592:-:1073741824:+:7516192768:- 8589934592:-:1073741824:-:1073741824:- 8589934592:+:2147483648:+:10737418240:+ 8589934592:+:2147483648:-:2147483648:- 8589934592:-:2147483648:+:6442450944:- 8589934592:-:2147483648:-:2147483648:- 8589934592:+:4294967296:+:12884901888:+ 8589934592:+:4294967296:-:4294967296:- 8589934592:-:4294967296:+:4294967296:- 8589934592:-:4294967296:-:4294967296:- 8589934592:+:8589934592:+:8589934592:+ 8589934592:+:8589934592:-:8589934592:- 8589934592:-:8589934592:+:8589934592:- 8589934592:-:8589934592:-:8589934592:- 8589934592:+:274877906944:+:283467841536:+ 8589934592:+:274877906944:-:266287972352:- 8589934592:-:274877906944:+:8589934592:- 8589934592:-:274877906944:-:8589934592:- 8589934592:+:549755813888:+:558345748480:+ 8589934592:+:549755813888:-:541165879296:- 8589934592:-:549755813888:+:8589934592:- 8589934592:-:549755813888:-:8589934592:- 8589934592:+:1099511627776:+:1108101562368:+ 8589934592:+:1099511627776:-:1090921693184:- 8589934592:-:1099511627776:+:8589934592:- 8589934592:-:1099511627776:-:8589934592:- 8589934592:+:2199023255552:+:2207613190144:+ 8589934592:+:2199023255552:-:2190433320960:- 8589934592:-:2199023255552:+:8589934592:- 8589934592:-:2199023255552:-:8589934592:- 8589934592:+:70368744177664:+:70377334112256:+ 8589934592:+:70368744177664:-:70360154243072:- 8589934592:-:70368744177664:+:8589934592:- 8589934592:-:70368744177664:-:8589934592:- 8589934592:+:140737488355328:+:140746078289920:+ 8589934592:+:140737488355328:-:140728898420736:- 8589934592:-:140737488355328:+:8589934592:- 8589934592:-:140737488355328:-:8589934592:- 8589934592:+:281474976710656:+:281483566645248:+ 8589934592:+:281474976710656:-:281466386776064:- 8589934592:-:281474976710656:+:8589934592:- 8589934592:-:281474976710656:-:8589934592:- 8589934592:+:562949953421312:+:562958543355904:+ 8589934592:+:562949953421312:-:562941363486720:- 8589934592:-:562949953421312:+:8589934592:- 8589934592:-:562949953421312:-:8589934592:- 8589934592:+:18014398509481984:+:18014407099416576:+ 8589934592:+:18014398509481984:-:18014389919547392:- 8589934592:-:18014398509481984:+:8589934592:- 8589934592:-:18014398509481984:-:8589934592:- 8589934592:+:36028797018963968:+:36028805608898560:+ 8589934592:+:36028797018963968:-:36028788429029376:- 8589934592:-:36028797018963968:+:8589934592:- 8589934592:-:36028797018963968:-:8589934592:- 8589934592:+:72057594037927936:+:72057602627862528:+ 8589934592:+:72057594037927936:-:72057585447993344:- 8589934592:-:72057594037927936:+:8589934592:- 8589934592:-:72057594037927936:-:8589934592:- 8589934592:+:144115188075855872:+:144115196665790464:+ 8589934592:+:144115188075855872:-:144115179485921280:- 8589934592:-:144115188075855872:+:8589934592:- 8589934592:-:144115188075855872:-:8589934592:- 274877906944:+:0:+:274877906944:+ 274877906944:-:0:+:274877906944:- 274877906944:+:1:+:274877906945:+ 274877906944:+:1:-:1:- 274877906944:-:1:+:274877906943:- 274877906944:-:1:-:1:- 274877906944:+:2:+:274877906946:+ 274877906944:+:2:-:2:- 274877906944:-:2:+:274877906942:- 274877906944:-:2:-:2:- 274877906944:+:3:+:274877906947:+ 274877906944:+:3:-:3:- 274877906944:-:3:+:274877906941:- 274877906944:-:3:-:3:- 274877906944:+:4:+:274877906948:+ 274877906944:+:4:-:4:- 274877906944:-:4:+:274877906940:- 274877906944:-:4:-:4:- 274877906944:+:64:+:274877907008:+ 274877906944:+:64:-:64:- 274877906944:-:64:+:274877906880:- 274877906944:-:64:-:64:- 274877906944:+:128:+:274877907072:+ 274877906944:+:128:-:128:- 274877906944:-:128:+:274877906816:- 274877906944:-:128:-:128:- 274877906944:+:256:+:274877907200:+ 274877906944:+:256:-:256:- 274877906944:-:256:+:274877906688:- 274877906944:-:256:-:256:- 274877906944:+:512:+:274877907456:+ 274877906944:+:512:-:512:- 274877906944:-:512:+:274877906432:- 274877906944:-:512:-:512:- 274877906944:+:16384:+:274877923328:+ 274877906944:+:16384:-:16384:- 274877906944:-:16384:+:274877890560:- 274877906944:-:16384:-:16384:- 274877906944:+:32768:+:274877939712:+ 274877906944:+:32768:-:32768:- 274877906944:-:32768:+:274877874176:- 274877906944:-:32768:-:32768:- 274877906944:+:65536:+:274877972480:+ 274877906944:+:65536:-:65536:- 274877906944:-:65536:+:274877841408:- 274877906944:-:65536:-:65536:- 274877906944:+:131072:+:274878038016:+ 274877906944:+:131072:-:131072:- 274877906944:-:131072:+:274877775872:- 274877906944:-:131072:-:131072:- 274877906944:+:4194304:+:274882101248:+ 274877906944:+:4194304:-:4194304:- 274877906944:-:4194304:+:274873712640:- 274877906944:-:4194304:-:4194304:- 274877906944:+:8388608:+:274886295552:+ 274877906944:+:8388608:-:8388608:- 274877906944:-:8388608:+:274869518336:- 274877906944:-:8388608:-:8388608:- 274877906944:+:16777216:+:274894684160:+ 274877906944:+:16777216:-:16777216:- 274877906944:-:16777216:+:274861129728:- 274877906944:-:16777216:-:16777216:- 274877906944:+:33554432:+:274911461376:+ 274877906944:+:33554432:-:33554432:- 274877906944:-:33554432:+:274844352512:- 274877906944:-:33554432:-:33554432:- 274877906944:+:1073741824:+:275951648768:+ 274877906944:+:1073741824:-:1073741824:- 274877906944:-:1073741824:+:273804165120:- 274877906944:-:1073741824:-:1073741824:- 274877906944:+:2147483648:+:277025390592:+ 274877906944:+:2147483648:-:2147483648:- 274877906944:-:2147483648:+:272730423296:- 274877906944:-:2147483648:-:2147483648:- 274877906944:+:4294967296:+:279172874240:+ 274877906944:+:4294967296:-:4294967296:- 274877906944:-:4294967296:+:270582939648:- 274877906944:-:4294967296:-:4294967296:- 274877906944:+:8589934592:+:283467841536:+ 274877906944:+:8589934592:-:8589934592:- 274877906944:-:8589934592:+:266287972352:- 274877906944:-:8589934592:-:8589934592:- 274877906944:+:274877906944:+:274877906944:+ 274877906944:+:274877906944:-:274877906944:- 274877906944:-:274877906944:+:274877906944:- 274877906944:-:274877906944:-:274877906944:- 274877906944:+:549755813888:+:824633720832:+ 274877906944:+:549755813888:-:274877906944:- 274877906944:-:549755813888:+:274877906944:- 274877906944:-:549755813888:-:274877906944:- 274877906944:+:1099511627776:+:1374389534720:+ 274877906944:+:1099511627776:-:824633720832:- 274877906944:-:1099511627776:+:274877906944:- 274877906944:-:1099511627776:-:274877906944:- 274877906944:+:2199023255552:+:2473901162496:+ 274877906944:+:2199023255552:-:1924145348608:- 274877906944:-:2199023255552:+:274877906944:- 274877906944:-:2199023255552:-:274877906944:- 274877906944:+:70368744177664:+:70643622084608:+ 274877906944:+:70368744177664:-:70093866270720:- 274877906944:-:70368744177664:+:274877906944:- 274877906944:-:70368744177664:-:274877906944:- 274877906944:+:140737488355328:+:141012366262272:+ 274877906944:+:140737488355328:-:140462610448384:- 274877906944:-:140737488355328:+:274877906944:- 274877906944:-:140737488355328:-:274877906944:- 274877906944:+:281474976710656:+:281749854617600:+ 274877906944:+:281474976710656:-:281200098803712:- 274877906944:-:281474976710656:+:274877906944:- 274877906944:-:281474976710656:-:274877906944:- 274877906944:+:562949953421312:+:563224831328256:+ 274877906944:+:562949953421312:-:562675075514368:- 274877906944:-:562949953421312:+:274877906944:- 274877906944:-:562949953421312:-:274877906944:- 274877906944:+:18014398509481984:+:18014673387388928:+ 274877906944:+:18014398509481984:-:18014123631575040:- 274877906944:-:18014398509481984:+:274877906944:- 274877906944:-:18014398509481984:-:274877906944:- 274877906944:+:36028797018963968:+:36029071896870912:+ 274877906944:+:36028797018963968:-:36028522141057024:- 274877906944:-:36028797018963968:+:274877906944:- 274877906944:-:36028797018963968:-:274877906944:- 274877906944:+:72057594037927936:+:72057868915834880:+ 274877906944:+:72057594037927936:-:72057319160020992:- 274877906944:-:72057594037927936:+:274877906944:- 274877906944:-:72057594037927936:-:274877906944:- 274877906944:+:144115188075855872:+:144115462953762816:+ 274877906944:+:144115188075855872:-:144114913197948928:- 274877906944:-:144115188075855872:+:274877906944:- 274877906944:-:144115188075855872:-:274877906944:- 549755813888:+:0:+:549755813888:+ 549755813888:-:0:+:549755813888:- 549755813888:+:1:+:549755813889:+ 549755813888:+:1:-:1:- 549755813888:-:1:+:549755813887:- 549755813888:-:1:-:1:- 549755813888:+:2:+:549755813890:+ 549755813888:+:2:-:2:- 549755813888:-:2:+:549755813886:- 549755813888:-:2:-:2:- 549755813888:+:3:+:549755813891:+ 549755813888:+:3:-:3:- 549755813888:-:3:+:549755813885:- 549755813888:-:3:-:3:- 549755813888:+:4:+:549755813892:+ 549755813888:+:4:-:4:- 549755813888:-:4:+:549755813884:- 549755813888:-:4:-:4:- 549755813888:+:64:+:549755813952:+ 549755813888:+:64:-:64:- 549755813888:-:64:+:549755813824:- 549755813888:-:64:-:64:- 549755813888:+:128:+:549755814016:+ 549755813888:+:128:-:128:- 549755813888:-:128:+:549755813760:- 549755813888:-:128:-:128:- 549755813888:+:256:+:549755814144:+ 549755813888:+:256:-:256:- 549755813888:-:256:+:549755813632:- 549755813888:-:256:-:256:- 549755813888:+:512:+:549755814400:+ 549755813888:+:512:-:512:- 549755813888:-:512:+:549755813376:- 549755813888:-:512:-:512:- 549755813888:+:16384:+:549755830272:+ 549755813888:+:16384:-:16384:- 549755813888:-:16384:+:549755797504:- 549755813888:-:16384:-:16384:- 549755813888:+:32768:+:549755846656:+ 549755813888:+:32768:-:32768:- 549755813888:-:32768:+:549755781120:- 549755813888:-:32768:-:32768:- 549755813888:+:65536:+:549755879424:+ 549755813888:+:65536:-:65536:- 549755813888:-:65536:+:549755748352:- 549755813888:-:65536:-:65536:- 549755813888:+:131072:+:549755944960:+ 549755813888:+:131072:-:131072:- 549755813888:-:131072:+:549755682816:- 549755813888:-:131072:-:131072:- 549755813888:+:4194304:+:549760008192:+ 549755813888:+:4194304:-:4194304:- 549755813888:-:4194304:+:549751619584:- 549755813888:-:4194304:-:4194304:- 549755813888:+:8388608:+:549764202496:+ 549755813888:+:8388608:-:8388608:- 549755813888:-:8388608:+:549747425280:- 549755813888:-:8388608:-:8388608:- 549755813888:+:16777216:+:549772591104:+ 549755813888:+:16777216:-:16777216:- 549755813888:-:16777216:+:549739036672:- 549755813888:-:16777216:-:16777216:- 549755813888:+:33554432:+:549789368320:+ 549755813888:+:33554432:-:33554432:- 549755813888:-:33554432:+:549722259456:- 549755813888:-:33554432:-:33554432:- 549755813888:+:1073741824:+:550829555712:+ 549755813888:+:1073741824:-:1073741824:- 549755813888:-:1073741824:+:548682072064:- 549755813888:-:1073741824:-:1073741824:- 549755813888:+:2147483648:+:551903297536:+ 549755813888:+:2147483648:-:2147483648:- 549755813888:-:2147483648:+:547608330240:- 549755813888:-:2147483648:-:2147483648:- 549755813888:+:4294967296:+:554050781184:+ 549755813888:+:4294967296:-:4294967296:- 549755813888:-:4294967296:+:545460846592:- 549755813888:-:4294967296:-:4294967296:- 549755813888:+:8589934592:+:558345748480:+ 549755813888:+:8589934592:-:8589934592:- 549755813888:-:8589934592:+:541165879296:- 549755813888:-:8589934592:-:8589934592:- 549755813888:+:274877906944:+:824633720832:+ 549755813888:+:274877906944:-:274877906944:- 549755813888:-:274877906944:+:274877906944:- 549755813888:-:274877906944:-:274877906944:- 549755813888:+:549755813888:+:549755813888:+ 549755813888:+:549755813888:-:549755813888:- 549755813888:-:549755813888:+:549755813888:- 549755813888:-:549755813888:-:549755813888:- 549755813888:+:1099511627776:+:1649267441664:+ 549755813888:+:1099511627776:-:549755813888:- 549755813888:-:1099511627776:+:549755813888:- 549755813888:-:1099511627776:-:549755813888:- 549755813888:+:2199023255552:+:2748779069440:+ 549755813888:+:2199023255552:-:1649267441664:- 549755813888:-:2199023255552:+:549755813888:- 549755813888:-:2199023255552:-:549755813888:- 549755813888:+:70368744177664:+:70918499991552:+ 549755813888:+:70368744177664:-:69818988363776:- 549755813888:-:70368744177664:+:549755813888:- 549755813888:-:70368744177664:-:549755813888:- 549755813888:+:140737488355328:+:141287244169216:+ 549755813888:+:140737488355328:-:140187732541440:- 549755813888:-:140737488355328:+:549755813888:- 549755813888:-:140737488355328:-:549755813888:- 549755813888:+:281474976710656:+:282024732524544:+ 549755813888:+:281474976710656:-:280925220896768:- 549755813888:-:281474976710656:+:549755813888:- 549755813888:-:281474976710656:-:549755813888:- 549755813888:+:562949953421312:+:563499709235200:+ 549755813888:+:562949953421312:-:562400197607424:- 549755813888:-:562949953421312:+:549755813888:- 549755813888:-:562949953421312:-:549755813888:- 549755813888:+:18014398509481984:+:18014948265295872:+ 549755813888:+:18014398509481984:-:18013848753668096:- 549755813888:-:18014398509481984:+:549755813888:- 549755813888:-:18014398509481984:-:549755813888:- 549755813888:+:36028797018963968:+:36029346774777856:+ 549755813888:+:36028797018963968:-:36028247263150080:- 549755813888:-:36028797018963968:+:549755813888:- 549755813888:-:36028797018963968:-:549755813888:- 549755813888:+:72057594037927936:+:72058143793741824:+ 549755813888:+:72057594037927936:-:72057044282114048:- 549755813888:-:72057594037927936:+:549755813888:- 549755813888:-:72057594037927936:-:549755813888:- 549755813888:+:144115188075855872:+:144115737831669760:+ 549755813888:+:144115188075855872:-:144114638320041984:- 549755813888:-:144115188075855872:+:549755813888:- 549755813888:-:144115188075855872:-:549755813888:- 1099511627776:+:0:+:1099511627776:+ 1099511627776:-:0:+:1099511627776:- 1099511627776:+:1:+:1099511627777:+ 1099511627776:+:1:-:1:- 1099511627776:-:1:+:1099511627775:- 1099511627776:-:1:-:1:- 1099511627776:+:2:+:1099511627778:+ 1099511627776:+:2:-:2:- 1099511627776:-:2:+:1099511627774:- 1099511627776:-:2:-:2:- 1099511627776:+:3:+:1099511627779:+ 1099511627776:+:3:-:3:- 1099511627776:-:3:+:1099511627773:- 1099511627776:-:3:-:3:- 1099511627776:+:4:+:1099511627780:+ 1099511627776:+:4:-:4:- 1099511627776:-:4:+:1099511627772:- 1099511627776:-:4:-:4:- 1099511627776:+:64:+:1099511627840:+ 1099511627776:+:64:-:64:- 1099511627776:-:64:+:1099511627712:- 1099511627776:-:64:-:64:- 1099511627776:+:128:+:1099511627904:+ 1099511627776:+:128:-:128:- 1099511627776:-:128:+:1099511627648:- 1099511627776:-:128:-:128:- 1099511627776:+:256:+:1099511628032:+ 1099511627776:+:256:-:256:- 1099511627776:-:256:+:1099511627520:- 1099511627776:-:256:-:256:- 1099511627776:+:512:+:1099511628288:+ 1099511627776:+:512:-:512:- 1099511627776:-:512:+:1099511627264:- 1099511627776:-:512:-:512:- 1099511627776:+:16384:+:1099511644160:+ 1099511627776:+:16384:-:16384:- 1099511627776:-:16384:+:1099511611392:- 1099511627776:-:16384:-:16384:- 1099511627776:+:32768:+:1099511660544:+ 1099511627776:+:32768:-:32768:- 1099511627776:-:32768:+:1099511595008:- 1099511627776:-:32768:-:32768:- 1099511627776:+:65536:+:1099511693312:+ 1099511627776:+:65536:-:65536:- 1099511627776:-:65536:+:1099511562240:- 1099511627776:-:65536:-:65536:- 1099511627776:+:131072:+:1099511758848:+ 1099511627776:+:131072:-:131072:- 1099511627776:-:131072:+:1099511496704:- 1099511627776:-:131072:-:131072:- 1099511627776:+:4194304:+:1099515822080:+ 1099511627776:+:4194304:-:4194304:- 1099511627776:-:4194304:+:1099507433472:- 1099511627776:-:4194304:-:4194304:- 1099511627776:+:8388608:+:1099520016384:+ 1099511627776:+:8388608:-:8388608:- 1099511627776:-:8388608:+:1099503239168:- 1099511627776:-:8388608:-:8388608:- 1099511627776:+:16777216:+:1099528404992:+ 1099511627776:+:16777216:-:16777216:- 1099511627776:-:16777216:+:1099494850560:- 1099511627776:-:16777216:-:16777216:- 1099511627776:+:33554432:+:1099545182208:+ 1099511627776:+:33554432:-:33554432:- 1099511627776:-:33554432:+:1099478073344:- 1099511627776:-:33554432:-:33554432:- 1099511627776:+:1073741824:+:1100585369600:+ 1099511627776:+:1073741824:-:1073741824:- 1099511627776:-:1073741824:+:1098437885952:- 1099511627776:-:1073741824:-:1073741824:- 1099511627776:+:2147483648:+:1101659111424:+ 1099511627776:+:2147483648:-:2147483648:- 1099511627776:-:2147483648:+:1097364144128:- 1099511627776:-:2147483648:-:2147483648:- 1099511627776:+:4294967296:+:1103806595072:+ 1099511627776:+:4294967296:-:4294967296:- 1099511627776:-:4294967296:+:1095216660480:- 1099511627776:-:4294967296:-:4294967296:- 1099511627776:+:8589934592:+:1108101562368:+ 1099511627776:+:8589934592:-:8589934592:- 1099511627776:-:8589934592:+:1090921693184:- 1099511627776:-:8589934592:-:8589934592:- 1099511627776:+:274877906944:+:1374389534720:+ 1099511627776:+:274877906944:-:274877906944:- 1099511627776:-:274877906944:+:824633720832:- 1099511627776:-:274877906944:-:274877906944:- 1099511627776:+:549755813888:+:1649267441664:+ 1099511627776:+:549755813888:-:549755813888:- 1099511627776:-:549755813888:+:549755813888:- 1099511627776:-:549755813888:-:549755813888:- 1099511627776:+:1099511627776:+:1099511627776:+ 1099511627776:+:1099511627776:-:1099511627776:- 1099511627776:-:1099511627776:+:1099511627776:- 1099511627776:-:1099511627776:-:1099511627776:- 1099511627776:+:2199023255552:+:3298534883328:+ 1099511627776:+:2199023255552:-:1099511627776:- 1099511627776:-:2199023255552:+:1099511627776:- 1099511627776:-:2199023255552:-:1099511627776:- 1099511627776:+:70368744177664:+:71468255805440:+ 1099511627776:+:70368744177664:-:69269232549888:- 1099511627776:-:70368744177664:+:1099511627776:- 1099511627776:-:70368744177664:-:1099511627776:- 1099511627776:+:140737488355328:+:141836999983104:+ 1099511627776:+:140737488355328:-:139637976727552:- 1099511627776:-:140737488355328:+:1099511627776:- 1099511627776:-:140737488355328:-:1099511627776:- 1099511627776:+:281474976710656:+:282574488338432:+ 1099511627776:+:281474976710656:-:280375465082880:- 1099511627776:-:281474976710656:+:1099511627776:- 1099511627776:-:281474976710656:-:1099511627776:- 1099511627776:+:562949953421312:+:564049465049088:+ 1099511627776:+:562949953421312:-:561850441793536:- 1099511627776:-:562949953421312:+:1099511627776:- 1099511627776:-:562949953421312:-:1099511627776:- 1099511627776:+:18014398509481984:+:18015498021109760:+ 1099511627776:+:18014398509481984:-:18013298997854208:- 1099511627776:-:18014398509481984:+:1099511627776:- 1099511627776:-:18014398509481984:-:1099511627776:- 1099511627776:+:36028797018963968:+:36029896530591744:+ 1099511627776:+:36028797018963968:-:36027697507336192:- 1099511627776:-:36028797018963968:+:1099511627776:- 1099511627776:-:36028797018963968:-:1099511627776:- 1099511627776:+:72057594037927936:+:72058693549555712:+ 1099511627776:+:72057594037927936:-:72056494526300160:- 1099511627776:-:72057594037927936:+:1099511627776:- 1099511627776:-:72057594037927936:-:1099511627776:- 1099511627776:+:144115188075855872:+:144116287587483648:+ 1099511627776:+:144115188075855872:-:144114088564228096:- 1099511627776:-:144115188075855872:+:1099511627776:- 1099511627776:-:144115188075855872:-:1099511627776:- 2199023255552:+:0:+:2199023255552:+ 2199023255552:-:0:+:2199023255552:- 2199023255552:+:1:+:2199023255553:+ 2199023255552:+:1:-:1:- 2199023255552:-:1:+:2199023255551:- 2199023255552:-:1:-:1:- 2199023255552:+:2:+:2199023255554:+ 2199023255552:+:2:-:2:- 2199023255552:-:2:+:2199023255550:- 2199023255552:-:2:-:2:- 2199023255552:+:3:+:2199023255555:+ 2199023255552:+:3:-:3:- 2199023255552:-:3:+:2199023255549:- 2199023255552:-:3:-:3:- 2199023255552:+:4:+:2199023255556:+ 2199023255552:+:4:-:4:- 2199023255552:-:4:+:2199023255548:- 2199023255552:-:4:-:4:- 2199023255552:+:64:+:2199023255616:+ 2199023255552:+:64:-:64:- 2199023255552:-:64:+:2199023255488:- 2199023255552:-:64:-:64:- 2199023255552:+:128:+:2199023255680:+ 2199023255552:+:128:-:128:- 2199023255552:-:128:+:2199023255424:- 2199023255552:-:128:-:128:- 2199023255552:+:256:+:2199023255808:+ 2199023255552:+:256:-:256:- 2199023255552:-:256:+:2199023255296:- 2199023255552:-:256:-:256:- 2199023255552:+:512:+:2199023256064:+ 2199023255552:+:512:-:512:- 2199023255552:-:512:+:2199023255040:- 2199023255552:-:512:-:512:- 2199023255552:+:16384:+:2199023271936:+ 2199023255552:+:16384:-:16384:- 2199023255552:-:16384:+:2199023239168:- 2199023255552:-:16384:-:16384:- 2199023255552:+:32768:+:2199023288320:+ 2199023255552:+:32768:-:32768:- 2199023255552:-:32768:+:2199023222784:- 2199023255552:-:32768:-:32768:- 2199023255552:+:65536:+:2199023321088:+ 2199023255552:+:65536:-:65536:- 2199023255552:-:65536:+:2199023190016:- 2199023255552:-:65536:-:65536:- 2199023255552:+:131072:+:2199023386624:+ 2199023255552:+:131072:-:131072:- 2199023255552:-:131072:+:2199023124480:- 2199023255552:-:131072:-:131072:- 2199023255552:+:4194304:+:2199027449856:+ 2199023255552:+:4194304:-:4194304:- 2199023255552:-:4194304:+:2199019061248:- 2199023255552:-:4194304:-:4194304:- 2199023255552:+:8388608:+:2199031644160:+ 2199023255552:+:8388608:-:8388608:- 2199023255552:-:8388608:+:2199014866944:- 2199023255552:-:8388608:-:8388608:- 2199023255552:+:16777216:+:2199040032768:+ 2199023255552:+:16777216:-:16777216:- 2199023255552:-:16777216:+:2199006478336:- 2199023255552:-:16777216:-:16777216:- 2199023255552:+:33554432:+:2199056809984:+ 2199023255552:+:33554432:-:33554432:- 2199023255552:-:33554432:+:2198989701120:- 2199023255552:-:33554432:-:33554432:- 2199023255552:+:1073741824:+:2200096997376:+ 2199023255552:+:1073741824:-:1073741824:- 2199023255552:-:1073741824:+:2197949513728:- 2199023255552:-:1073741824:-:1073741824:- 2199023255552:+:2147483648:+:2201170739200:+ 2199023255552:+:2147483648:-:2147483648:- 2199023255552:-:2147483648:+:2196875771904:- 2199023255552:-:2147483648:-:2147483648:- 2199023255552:+:4294967296:+:2203318222848:+ 2199023255552:+:4294967296:-:4294967296:- 2199023255552:-:4294967296:+:2194728288256:- 2199023255552:-:4294967296:-:4294967296:- 2199023255552:+:8589934592:+:2207613190144:+ 2199023255552:+:8589934592:-:8589934592:- 2199023255552:-:8589934592:+:2190433320960:- 2199023255552:-:8589934592:-:8589934592:- 2199023255552:+:274877906944:+:2473901162496:+ 2199023255552:+:274877906944:-:274877906944:- 2199023255552:-:274877906944:+:1924145348608:- 2199023255552:-:274877906944:-:274877906944:- 2199023255552:+:549755813888:+:2748779069440:+ 2199023255552:+:549755813888:-:549755813888:- 2199023255552:-:549755813888:+:1649267441664:- 2199023255552:-:549755813888:-:549755813888:- 2199023255552:+:1099511627776:+:3298534883328:+ 2199023255552:+:1099511627776:-:1099511627776:- 2199023255552:-:1099511627776:+:1099511627776:- 2199023255552:-:1099511627776:-:1099511627776:- 2199023255552:+:2199023255552:+:2199023255552:+ 2199023255552:+:2199023255552:-:2199023255552:- 2199023255552:-:2199023255552:+:2199023255552:- 2199023255552:-:2199023255552:-:2199023255552:- 2199023255552:+:70368744177664:+:72567767433216:+ 2199023255552:+:70368744177664:-:68169720922112:- 2199023255552:-:70368744177664:+:2199023255552:- 2199023255552:-:70368744177664:-:2199023255552:- 2199023255552:+:140737488355328:+:142936511610880:+ 2199023255552:+:140737488355328:-:138538465099776:- 2199023255552:-:140737488355328:+:2199023255552:- 2199023255552:-:140737488355328:-:2199023255552:- 2199023255552:+:281474976710656:+:283673999966208:+ 2199023255552:+:281474976710656:-:279275953455104:- 2199023255552:-:281474976710656:+:2199023255552:- 2199023255552:-:281474976710656:-:2199023255552:- 2199023255552:+:562949953421312:+:565148976676864:+ 2199023255552:+:562949953421312:-:560750930165760:- 2199023255552:-:562949953421312:+:2199023255552:- 2199023255552:-:562949953421312:-:2199023255552:- 2199023255552:+:18014398509481984:+:18016597532737536:+ 2199023255552:+:18014398509481984:-:18012199486226432:- 2199023255552:-:18014398509481984:+:2199023255552:- 2199023255552:-:18014398509481984:-:2199023255552:- 2199023255552:+:36028797018963968:+:36030996042219520:+ 2199023255552:+:36028797018963968:-:36026597995708416:- 2199023255552:-:36028797018963968:+:2199023255552:- 2199023255552:-:36028797018963968:-:2199023255552:- 2199023255552:+:72057594037927936:+:72059793061183488:+ 2199023255552:+:72057594037927936:-:72055395014672384:- 2199023255552:-:72057594037927936:+:2199023255552:- 2199023255552:-:72057594037927936:-:2199023255552:- 2199023255552:+:144115188075855872:+:144117387099111424:+ 2199023255552:+:144115188075855872:-:144112989052600320:- 2199023255552:-:144115188075855872:+:2199023255552:- 2199023255552:-:144115188075855872:-:2199023255552:- 70368744177664:+:0:+:70368744177664:+ 70368744177664:-:0:+:70368744177664:- 70368744177664:+:1:+:70368744177665:+ 70368744177664:+:1:-:1:- 70368744177664:-:1:+:70368744177663:- 70368744177664:-:1:-:1:- 70368744177664:+:2:+:70368744177666:+ 70368744177664:+:2:-:2:- 70368744177664:-:2:+:70368744177662:- 70368744177664:-:2:-:2:- 70368744177664:+:3:+:70368744177667:+ 70368744177664:+:3:-:3:- 70368744177664:-:3:+:70368744177661:- 70368744177664:-:3:-:3:- 70368744177664:+:4:+:70368744177668:+ 70368744177664:+:4:-:4:- 70368744177664:-:4:+:70368744177660:- 70368744177664:-:4:-:4:- 70368744177664:+:64:+:70368744177728:+ 70368744177664:+:64:-:64:- 70368744177664:-:64:+:70368744177600:- 70368744177664:-:64:-:64:- 70368744177664:+:128:+:70368744177792:+ 70368744177664:+:128:-:128:- 70368744177664:-:128:+:70368744177536:- 70368744177664:-:128:-:128:- 70368744177664:+:256:+:70368744177920:+ 70368744177664:+:256:-:256:- 70368744177664:-:256:+:70368744177408:- 70368744177664:-:256:-:256:- 70368744177664:+:512:+:70368744178176:+ 70368744177664:+:512:-:512:- 70368744177664:-:512:+:70368744177152:- 70368744177664:-:512:-:512:- 70368744177664:+:16384:+:70368744194048:+ 70368744177664:+:16384:-:16384:- 70368744177664:-:16384:+:70368744161280:- 70368744177664:-:16384:-:16384:- 70368744177664:+:32768:+:70368744210432:+ 70368744177664:+:32768:-:32768:- 70368744177664:-:32768:+:70368744144896:- 70368744177664:-:32768:-:32768:- 70368744177664:+:65536:+:70368744243200:+ 70368744177664:+:65536:-:65536:- 70368744177664:-:65536:+:70368744112128:- 70368744177664:-:65536:-:65536:- 70368744177664:+:131072:+:70368744308736:+ 70368744177664:+:131072:-:131072:- 70368744177664:-:131072:+:70368744046592:- 70368744177664:-:131072:-:131072:- 70368744177664:+:4194304:+:70368748371968:+ 70368744177664:+:4194304:-:4194304:- 70368744177664:-:4194304:+:70368739983360:- 70368744177664:-:4194304:-:4194304:- 70368744177664:+:8388608:+:70368752566272:+ 70368744177664:+:8388608:-:8388608:- 70368744177664:-:8388608:+:70368735789056:- 70368744177664:-:8388608:-:8388608:- 70368744177664:+:16777216:+:70368760954880:+ 70368744177664:+:16777216:-:16777216:- 70368744177664:-:16777216:+:70368727400448:- 70368744177664:-:16777216:-:16777216:- 70368744177664:+:33554432:+:70368777732096:+ 70368744177664:+:33554432:-:33554432:- 70368744177664:-:33554432:+:70368710623232:- 70368744177664:-:33554432:-:33554432:- 70368744177664:+:1073741824:+:70369817919488:+ 70368744177664:+:1073741824:-:1073741824:- 70368744177664:-:1073741824:+:70367670435840:- 70368744177664:-:1073741824:-:1073741824:- 70368744177664:+:2147483648:+:70370891661312:+ 70368744177664:+:2147483648:-:2147483648:- 70368744177664:-:2147483648:+:70366596694016:- 70368744177664:-:2147483648:-:2147483648:- 70368744177664:+:4294967296:+:70373039144960:+ 70368744177664:+:4294967296:-:4294967296:- 70368744177664:-:4294967296:+:70364449210368:- 70368744177664:-:4294967296:-:4294967296:- 70368744177664:+:8589934592:+:70377334112256:+ 70368744177664:+:8589934592:-:8589934592:- 70368744177664:-:8589934592:+:70360154243072:- 70368744177664:-:8589934592:-:8589934592:- 70368744177664:+:274877906944:+:70643622084608:+ 70368744177664:+:274877906944:-:274877906944:- 70368744177664:-:274877906944:+:70093866270720:- 70368744177664:-:274877906944:-:274877906944:- 70368744177664:+:549755813888:+:70918499991552:+ 70368744177664:+:549755813888:-:549755813888:- 70368744177664:-:549755813888:+:69818988363776:- 70368744177664:-:549755813888:-:549755813888:- 70368744177664:+:1099511627776:+:71468255805440:+ 70368744177664:+:1099511627776:-:1099511627776:- 70368744177664:-:1099511627776:+:69269232549888:- 70368744177664:-:1099511627776:-:1099511627776:- 70368744177664:+:2199023255552:+:72567767433216:+ 70368744177664:+:2199023255552:-:2199023255552:- 70368744177664:-:2199023255552:+:68169720922112:- 70368744177664:-:2199023255552:-:2199023255552:- 70368744177664:+:70368744177664:+:70368744177664:+ 70368744177664:+:70368744177664:-:70368744177664:- 70368744177664:-:70368744177664:+:70368744177664:- 70368744177664:-:70368744177664:-:70368744177664:- 70368744177664:+:140737488355328:+:211106232532992:+ 70368744177664:+:140737488355328:-:70368744177664:- 70368744177664:-:140737488355328:+:70368744177664:- 70368744177664:-:140737488355328:-:70368744177664:- 70368744177664:+:281474976710656:+:351843720888320:+ 70368744177664:+:281474976710656:-:211106232532992:- 70368744177664:-:281474976710656:+:70368744177664:- 70368744177664:-:281474976710656:-:70368744177664:- 70368744177664:+:562949953421312:+:633318697598976:+ 70368744177664:+:562949953421312:-:492581209243648:- 70368744177664:-:562949953421312:+:70368744177664:- 70368744177664:-:562949953421312:-:70368744177664:- 70368744177664:+:18014398509481984:+:18084767253659648:+ 70368744177664:+:18014398509481984:-:17944029765304320:- 70368744177664:-:18014398509481984:+:70368744177664:- 70368744177664:-:18014398509481984:-:70368744177664:- 70368744177664:+:36028797018963968:+:36099165763141632:+ 70368744177664:+:36028797018963968:-:35958428274786304:- 70368744177664:-:36028797018963968:+:70368744177664:- 70368744177664:-:36028797018963968:-:70368744177664:- 70368744177664:+:72057594037927936:+:72127962782105600:+ 70368744177664:+:72057594037927936:-:71987225293750272:- 70368744177664:-:72057594037927936:+:70368744177664:- 70368744177664:-:72057594037927936:-:70368744177664:- 70368744177664:+:144115188075855872:+:144185556820033536:+ 70368744177664:+:144115188075855872:-:144044819331678208:- 70368744177664:-:144115188075855872:+:70368744177664:- 70368744177664:-:144115188075855872:-:70368744177664:- 140737488355328:+:0:+:140737488355328:+ 140737488355328:-:0:+:140737488355328:- 140737488355328:+:1:+:140737488355329:+ 140737488355328:+:1:-:1:- 140737488355328:-:1:+:140737488355327:- 140737488355328:-:1:-:1:- 140737488355328:+:2:+:140737488355330:+ 140737488355328:+:2:-:2:- 140737488355328:-:2:+:140737488355326:- 140737488355328:-:2:-:2:- 140737488355328:+:3:+:140737488355331:+ 140737488355328:+:3:-:3:- 140737488355328:-:3:+:140737488355325:- 140737488355328:-:3:-:3:- 140737488355328:+:4:+:140737488355332:+ 140737488355328:+:4:-:4:- 140737488355328:-:4:+:140737488355324:- 140737488355328:-:4:-:4:- 140737488355328:+:64:+:140737488355392:+ 140737488355328:+:64:-:64:- 140737488355328:-:64:+:140737488355264:- 140737488355328:-:64:-:64:- 140737488355328:+:128:+:140737488355456:+ 140737488355328:+:128:-:128:- 140737488355328:-:128:+:140737488355200:- 140737488355328:-:128:-:128:- 140737488355328:+:256:+:140737488355584:+ 140737488355328:+:256:-:256:- 140737488355328:-:256:+:140737488355072:- 140737488355328:-:256:-:256:- 140737488355328:+:512:+:140737488355840:+ 140737488355328:+:512:-:512:- 140737488355328:-:512:+:140737488354816:- 140737488355328:-:512:-:512:- 140737488355328:+:16384:+:140737488371712:+ 140737488355328:+:16384:-:16384:- 140737488355328:-:16384:+:140737488338944:- 140737488355328:-:16384:-:16384:- 140737488355328:+:32768:+:140737488388096:+ 140737488355328:+:32768:-:32768:- 140737488355328:-:32768:+:140737488322560:- 140737488355328:-:32768:-:32768:- 140737488355328:+:65536:+:140737488420864:+ 140737488355328:+:65536:-:65536:- 140737488355328:-:65536:+:140737488289792:- 140737488355328:-:65536:-:65536:- 140737488355328:+:131072:+:140737488486400:+ 140737488355328:+:131072:-:131072:- 140737488355328:-:131072:+:140737488224256:- 140737488355328:-:131072:-:131072:- 140737488355328:+:4194304:+:140737492549632:+ 140737488355328:+:4194304:-:4194304:- 140737488355328:-:4194304:+:140737484161024:- 140737488355328:-:4194304:-:4194304:- 140737488355328:+:8388608:+:140737496743936:+ 140737488355328:+:8388608:-:8388608:- 140737488355328:-:8388608:+:140737479966720:- 140737488355328:-:8388608:-:8388608:- 140737488355328:+:16777216:+:140737505132544:+ 140737488355328:+:16777216:-:16777216:- 140737488355328:-:16777216:+:140737471578112:- 140737488355328:-:16777216:-:16777216:- 140737488355328:+:33554432:+:140737521909760:+ 140737488355328:+:33554432:-:33554432:- 140737488355328:-:33554432:+:140737454800896:- 140737488355328:-:33554432:-:33554432:- 140737488355328:+:1073741824:+:140738562097152:+ 140737488355328:+:1073741824:-:1073741824:- 140737488355328:-:1073741824:+:140736414613504:- 140737488355328:-:1073741824:-:1073741824:- 140737488355328:+:2147483648:+:140739635838976:+ 140737488355328:+:2147483648:-:2147483648:- 140737488355328:-:2147483648:+:140735340871680:- 140737488355328:-:2147483648:-:2147483648:- 140737488355328:+:4294967296:+:140741783322624:+ 140737488355328:+:4294967296:-:4294967296:- 140737488355328:-:4294967296:+:140733193388032:- 140737488355328:-:4294967296:-:4294967296:- 140737488355328:+:8589934592:+:140746078289920:+ 140737488355328:+:8589934592:-:8589934592:- 140737488355328:-:8589934592:+:140728898420736:- 140737488355328:-:8589934592:-:8589934592:- 140737488355328:+:274877906944:+:141012366262272:+ 140737488355328:+:274877906944:-:274877906944:- 140737488355328:-:274877906944:+:140462610448384:- 140737488355328:-:274877906944:-:274877906944:- 140737488355328:+:549755813888:+:141287244169216:+ 140737488355328:+:549755813888:-:549755813888:- 140737488355328:-:549755813888:+:140187732541440:- 140737488355328:-:549755813888:-:549755813888:- 140737488355328:+:1099511627776:+:141836999983104:+ 140737488355328:+:1099511627776:-:1099511627776:- 140737488355328:-:1099511627776:+:139637976727552:- 140737488355328:-:1099511627776:-:1099511627776:- 140737488355328:+:2199023255552:+:142936511610880:+ 140737488355328:+:2199023255552:-:2199023255552:- 140737488355328:-:2199023255552:+:138538465099776:- 140737488355328:-:2199023255552:-:2199023255552:- 140737488355328:+:70368744177664:+:211106232532992:+ 140737488355328:+:70368744177664:-:70368744177664:- 140737488355328:-:70368744177664:+:70368744177664:- 140737488355328:-:70368744177664:-:70368744177664:- 140737488355328:+:140737488355328:+:140737488355328:+ 140737488355328:+:140737488355328:-:140737488355328:- 140737488355328:-:140737488355328:+:140737488355328:- 140737488355328:-:140737488355328:-:140737488355328:- 140737488355328:+:281474976710656:+:422212465065984:+ 140737488355328:+:281474976710656:-:140737488355328:- 140737488355328:-:281474976710656:+:140737488355328:- 140737488355328:-:281474976710656:-:140737488355328:- 140737488355328:+:562949953421312:+:703687441776640:+ 140737488355328:+:562949953421312:-:422212465065984:- 140737488355328:-:562949953421312:+:140737488355328:- 140737488355328:-:562949953421312:-:140737488355328:- 140737488355328:+:18014398509481984:+:18155135997837312:+ 140737488355328:+:18014398509481984:-:17873661021126656:- 140737488355328:-:18014398509481984:+:140737488355328:- 140737488355328:-:18014398509481984:-:140737488355328:- 140737488355328:+:36028797018963968:+:36169534507319296:+ 140737488355328:+:36028797018963968:-:35888059530608640:- 140737488355328:-:36028797018963968:+:140737488355328:- 140737488355328:-:36028797018963968:-:140737488355328:- 140737488355328:+:72057594037927936:+:72198331526283264:+ 140737488355328:+:72057594037927936:-:71916856549572608:- 140737488355328:-:72057594037927936:+:140737488355328:- 140737488355328:-:72057594037927936:-:140737488355328:- 140737488355328:+:144115188075855872:+:144255925564211200:+ 140737488355328:+:144115188075855872:-:143974450587500544:- 140737488355328:-:144115188075855872:+:140737488355328:- 140737488355328:-:144115188075855872:-:140737488355328:- 281474976710656:+:0:+:281474976710656:+ 281474976710656:-:0:+:281474976710656:- 281474976710656:+:1:+:281474976710657:+ 281474976710656:+:1:-:1:- 281474976710656:-:1:+:281474976710655:- 281474976710656:-:1:-:1:- 281474976710656:+:2:+:281474976710658:+ 281474976710656:+:2:-:2:- 281474976710656:-:2:+:281474976710654:- 281474976710656:-:2:-:2:- 281474976710656:+:3:+:281474976710659:+ 281474976710656:+:3:-:3:- 281474976710656:-:3:+:281474976710653:- 281474976710656:-:3:-:3:- 281474976710656:+:4:+:281474976710660:+ 281474976710656:+:4:-:4:- 281474976710656:-:4:+:281474976710652:- 281474976710656:-:4:-:4:- 281474976710656:+:64:+:281474976710720:+ 281474976710656:+:64:-:64:- 281474976710656:-:64:+:281474976710592:- 281474976710656:-:64:-:64:- 281474976710656:+:128:+:281474976710784:+ 281474976710656:+:128:-:128:- 281474976710656:-:128:+:281474976710528:- 281474976710656:-:128:-:128:- 281474976710656:+:256:+:281474976710912:+ 281474976710656:+:256:-:256:- 281474976710656:-:256:+:281474976710400:- 281474976710656:-:256:-:256:- 281474976710656:+:512:+:281474976711168:+ 281474976710656:+:512:-:512:- 281474976710656:-:512:+:281474976710144:- 281474976710656:-:512:-:512:- 281474976710656:+:16384:+:281474976727040:+ 281474976710656:+:16384:-:16384:- 281474976710656:-:16384:+:281474976694272:- 281474976710656:-:16384:-:16384:- 281474976710656:+:32768:+:281474976743424:+ 281474976710656:+:32768:-:32768:- 281474976710656:-:32768:+:281474976677888:- 281474976710656:-:32768:-:32768:- 281474976710656:+:65536:+:281474976776192:+ 281474976710656:+:65536:-:65536:- 281474976710656:-:65536:+:281474976645120:- 281474976710656:-:65536:-:65536:- 281474976710656:+:131072:+:281474976841728:+ 281474976710656:+:131072:-:131072:- 281474976710656:-:131072:+:281474976579584:- 281474976710656:-:131072:-:131072:- 281474976710656:+:4194304:+:281474980904960:+ 281474976710656:+:4194304:-:4194304:- 281474976710656:-:4194304:+:281474972516352:- 281474976710656:-:4194304:-:4194304:- 281474976710656:+:8388608:+:281474985099264:+ 281474976710656:+:8388608:-:8388608:- 281474976710656:-:8388608:+:281474968322048:- 281474976710656:-:8388608:-:8388608:- 281474976710656:+:16777216:+:281474993487872:+ 281474976710656:+:16777216:-:16777216:- 281474976710656:-:16777216:+:281474959933440:- 281474976710656:-:16777216:-:16777216:- 281474976710656:+:33554432:+:281475010265088:+ 281474976710656:+:33554432:-:33554432:- 281474976710656:-:33554432:+:281474943156224:- 281474976710656:-:33554432:-:33554432:- 281474976710656:+:1073741824:+:281476050452480:+ 281474976710656:+:1073741824:-:1073741824:- 281474976710656:-:1073741824:+:281473902968832:- 281474976710656:-:1073741824:-:1073741824:- 281474976710656:+:2147483648:+:281477124194304:+ 281474976710656:+:2147483648:-:2147483648:- 281474976710656:-:2147483648:+:281472829227008:- 281474976710656:-:2147483648:-:2147483648:- 281474976710656:+:4294967296:+:281479271677952:+ 281474976710656:+:4294967296:-:4294967296:- 281474976710656:-:4294967296:+:281470681743360:- 281474976710656:-:4294967296:-:4294967296:- 281474976710656:+:8589934592:+:281483566645248:+ 281474976710656:+:8589934592:-:8589934592:- 281474976710656:-:8589934592:+:281466386776064:- 281474976710656:-:8589934592:-:8589934592:- 281474976710656:+:274877906944:+:281749854617600:+ 281474976710656:+:274877906944:-:274877906944:- 281474976710656:-:274877906944:+:281200098803712:- 281474976710656:-:274877906944:-:274877906944:- 281474976710656:+:549755813888:+:282024732524544:+ 281474976710656:+:549755813888:-:549755813888:- 281474976710656:-:549755813888:+:280925220896768:- 281474976710656:-:549755813888:-:549755813888:- 281474976710656:+:1099511627776:+:282574488338432:+ 281474976710656:+:1099511627776:-:1099511627776:- 281474976710656:-:1099511627776:+:280375465082880:- 281474976710656:-:1099511627776:-:1099511627776:- 281474976710656:+:2199023255552:+:283673999966208:+ 281474976710656:+:2199023255552:-:2199023255552:- 281474976710656:-:2199023255552:+:279275953455104:- 281474976710656:-:2199023255552:-:2199023255552:- 281474976710656:+:70368744177664:+:351843720888320:+ 281474976710656:+:70368744177664:-:70368744177664:- 281474976710656:-:70368744177664:+:211106232532992:- 281474976710656:-:70368744177664:-:70368744177664:- 281474976710656:+:140737488355328:+:422212465065984:+ 281474976710656:+:140737488355328:-:140737488355328:- 281474976710656:-:140737488355328:+:140737488355328:- 281474976710656:-:140737488355328:-:140737488355328:- 281474976710656:+:281474976710656:+:281474976710656:+ 281474976710656:+:281474976710656:-:281474976710656:- 281474976710656:-:281474976710656:+:281474976710656:- 281474976710656:-:281474976710656:-:281474976710656:- 281474976710656:+:562949953421312:+:844424930131968:+ 281474976710656:+:562949953421312:-:281474976710656:- 281474976710656:-:562949953421312:+:281474976710656:- 281474976710656:-:562949953421312:-:281474976710656:- 281474976710656:+:18014398509481984:+:18295873486192640:+ 281474976710656:+:18014398509481984:-:17732923532771328:- 281474976710656:-:18014398509481984:+:281474976710656:- 281474976710656:-:18014398509481984:-:281474976710656:- 281474976710656:+:36028797018963968:+:36310271995674624:+ 281474976710656:+:36028797018963968:-:35747322042253312:- 281474976710656:-:36028797018963968:+:281474976710656:- 281474976710656:-:36028797018963968:-:281474976710656:- 281474976710656:+:72057594037927936:+:72339069014638592:+ 281474976710656:+:72057594037927936:-:71776119061217280:- 281474976710656:-:72057594037927936:+:281474976710656:- 281474976710656:-:72057594037927936:-:281474976710656:- 281474976710656:+:144115188075855872:+:144396663052566528:+ 281474976710656:+:144115188075855872:-:143833713099145216:- 281474976710656:-:144115188075855872:+:281474976710656:- 281474976710656:-:144115188075855872:-:281474976710656:- 562949953421312:+:0:+:562949953421312:+ 562949953421312:-:0:+:562949953421312:- 562949953421312:+:1:+:562949953421313:+ 562949953421312:+:1:-:1:- 562949953421312:-:1:+:562949953421311:- 562949953421312:-:1:-:1:- 562949953421312:+:2:+:562949953421314:+ 562949953421312:+:2:-:2:- 562949953421312:-:2:+:562949953421310:- 562949953421312:-:2:-:2:- 562949953421312:+:3:+:562949953421315:+ 562949953421312:+:3:-:3:- 562949953421312:-:3:+:562949953421309:- 562949953421312:-:3:-:3:- 562949953421312:+:4:+:562949953421316:+ 562949953421312:+:4:-:4:- 562949953421312:-:4:+:562949953421308:- 562949953421312:-:4:-:4:- 562949953421312:+:64:+:562949953421376:+ 562949953421312:+:64:-:64:- 562949953421312:-:64:+:562949953421248:- 562949953421312:-:64:-:64:- 562949953421312:+:128:+:562949953421440:+ 562949953421312:+:128:-:128:- 562949953421312:-:128:+:562949953421184:- 562949953421312:-:128:-:128:- 562949953421312:+:256:+:562949953421568:+ 562949953421312:+:256:-:256:- 562949953421312:-:256:+:562949953421056:- 562949953421312:-:256:-:256:- 562949953421312:+:512:+:562949953421824:+ 562949953421312:+:512:-:512:- 562949953421312:-:512:+:562949953420800:- 562949953421312:-:512:-:512:- 562949953421312:+:16384:+:562949953437696:+ 562949953421312:+:16384:-:16384:- 562949953421312:-:16384:+:562949953404928:- 562949953421312:-:16384:-:16384:- 562949953421312:+:32768:+:562949953454080:+ 562949953421312:+:32768:-:32768:- 562949953421312:-:32768:+:562949953388544:- 562949953421312:-:32768:-:32768:- 562949953421312:+:65536:+:562949953486848:+ 562949953421312:+:65536:-:65536:- 562949953421312:-:65536:+:562949953355776:- 562949953421312:-:65536:-:65536:- 562949953421312:+:131072:+:562949953552384:+ 562949953421312:+:131072:-:131072:- 562949953421312:-:131072:+:562949953290240:- 562949953421312:-:131072:-:131072:- 562949953421312:+:4194304:+:562949957615616:+ 562949953421312:+:4194304:-:4194304:- 562949953421312:-:4194304:+:562949949227008:- 562949953421312:-:4194304:-:4194304:- 562949953421312:+:8388608:+:562949961809920:+ 562949953421312:+:8388608:-:8388608:- 562949953421312:-:8388608:+:562949945032704:- 562949953421312:-:8388608:-:8388608:- 562949953421312:+:16777216:+:562949970198528:+ 562949953421312:+:16777216:-:16777216:- 562949953421312:-:16777216:+:562949936644096:- 562949953421312:-:16777216:-:16777216:- 562949953421312:+:33554432:+:562949986975744:+ 562949953421312:+:33554432:-:33554432:- 562949953421312:-:33554432:+:562949919866880:- 562949953421312:-:33554432:-:33554432:- 562949953421312:+:1073741824:+:562951027163136:+ 562949953421312:+:1073741824:-:1073741824:- 562949953421312:-:1073741824:+:562948879679488:- 562949953421312:-:1073741824:-:1073741824:- 562949953421312:+:2147483648:+:562952100904960:+ 562949953421312:+:2147483648:-:2147483648:- 562949953421312:-:2147483648:+:562947805937664:- 562949953421312:-:2147483648:-:2147483648:- 562949953421312:+:4294967296:+:562954248388608:+ 562949953421312:+:4294967296:-:4294967296:- 562949953421312:-:4294967296:+:562945658454016:- 562949953421312:-:4294967296:-:4294967296:- 562949953421312:+:8589934592:+:562958543355904:+ 562949953421312:+:8589934592:-:8589934592:- 562949953421312:-:8589934592:+:562941363486720:- 562949953421312:-:8589934592:-:8589934592:- 562949953421312:+:274877906944:+:563224831328256:+ 562949953421312:+:274877906944:-:274877906944:- 562949953421312:-:274877906944:+:562675075514368:- 562949953421312:-:274877906944:-:274877906944:- 562949953421312:+:549755813888:+:563499709235200:+ 562949953421312:+:549755813888:-:549755813888:- 562949953421312:-:549755813888:+:562400197607424:- 562949953421312:-:549755813888:-:549755813888:- 562949953421312:+:1099511627776:+:564049465049088:+ 562949953421312:+:1099511627776:-:1099511627776:- 562949953421312:-:1099511627776:+:561850441793536:- 562949953421312:-:1099511627776:-:1099511627776:- 562949953421312:+:2199023255552:+:565148976676864:+ 562949953421312:+:2199023255552:-:2199023255552:- 562949953421312:-:2199023255552:+:560750930165760:- 562949953421312:-:2199023255552:-:2199023255552:- 562949953421312:+:70368744177664:+:633318697598976:+ 562949953421312:+:70368744177664:-:70368744177664:- 562949953421312:-:70368744177664:+:492581209243648:- 562949953421312:-:70368744177664:-:70368744177664:- 562949953421312:+:140737488355328:+:703687441776640:+ 562949953421312:+:140737488355328:-:140737488355328:- 562949953421312:-:140737488355328:+:422212465065984:- 562949953421312:-:140737488355328:-:140737488355328:- 562949953421312:+:281474976710656:+:844424930131968:+ 562949953421312:+:281474976710656:-:281474976710656:- 562949953421312:-:281474976710656:+:281474976710656:- 562949953421312:-:281474976710656:-:281474976710656:- 562949953421312:+:562949953421312:+:562949953421312:+ 562949953421312:+:562949953421312:-:562949953421312:- 562949953421312:-:562949953421312:+:562949953421312:- 562949953421312:-:562949953421312:-:562949953421312:- 562949953421312:+:18014398509481984:+:18577348462903296:+ 562949953421312:+:18014398509481984:-:17451448556060672:- 562949953421312:-:18014398509481984:+:562949953421312:- 562949953421312:-:18014398509481984:-:562949953421312:- 562949953421312:+:36028797018963968:+:36591746972385280:+ 562949953421312:+:36028797018963968:-:35465847065542656:- 562949953421312:-:36028797018963968:+:562949953421312:- 562949953421312:-:36028797018963968:-:562949953421312:- 562949953421312:+:72057594037927936:+:72620543991349248:+ 562949953421312:+:72057594037927936:-:71494644084506624:- 562949953421312:-:72057594037927936:+:562949953421312:- 562949953421312:-:72057594037927936:-:562949953421312:- 562949953421312:+:144115188075855872:+:144678138029277184:+ 562949953421312:+:144115188075855872:-:143552238122434560:- 562949953421312:-:144115188075855872:+:562949953421312:- 562949953421312:-:144115188075855872:-:562949953421312:- 18014398509481984:+:0:+:18014398509481984:+ 18014398509481984:-:0:+:18014398509481984:- 18014398509481984:+:1:+:18014398509481985:+ 18014398509481984:+:1:-:1:- 18014398509481984:-:1:+:18014398509481983:- 18014398509481984:-:1:-:1:- 18014398509481984:+:2:+:18014398509481986:+ 18014398509481984:+:2:-:2:- 18014398509481984:-:2:+:18014398509481982:- 18014398509481984:-:2:-:2:- 18014398509481984:+:3:+:18014398509481987:+ 18014398509481984:+:3:-:3:- 18014398509481984:-:3:+:18014398509481981:- 18014398509481984:-:3:-:3:- 18014398509481984:+:4:+:18014398509481988:+ 18014398509481984:+:4:-:4:- 18014398509481984:-:4:+:18014398509481980:- 18014398509481984:-:4:-:4:- 18014398509481984:+:64:+:18014398509482048:+ 18014398509481984:+:64:-:64:- 18014398509481984:-:64:+:18014398509481920:- 18014398509481984:-:64:-:64:- 18014398509481984:+:128:+:18014398509482112:+ 18014398509481984:+:128:-:128:- 18014398509481984:-:128:+:18014398509481856:- 18014398509481984:-:128:-:128:- 18014398509481984:+:256:+:18014398509482240:+ 18014398509481984:+:256:-:256:- 18014398509481984:-:256:+:18014398509481728:- 18014398509481984:-:256:-:256:- 18014398509481984:+:512:+:18014398509482496:+ 18014398509481984:+:512:-:512:- 18014398509481984:-:512:+:18014398509481472:- 18014398509481984:-:512:-:512:- 18014398509481984:+:16384:+:18014398509498368:+ 18014398509481984:+:16384:-:16384:- 18014398509481984:-:16384:+:18014398509465600:- 18014398509481984:-:16384:-:16384:- 18014398509481984:+:32768:+:18014398509514752:+ 18014398509481984:+:32768:-:32768:- 18014398509481984:-:32768:+:18014398509449216:- 18014398509481984:-:32768:-:32768:- 18014398509481984:+:65536:+:18014398509547520:+ 18014398509481984:+:65536:-:65536:- 18014398509481984:-:65536:+:18014398509416448:- 18014398509481984:-:65536:-:65536:- 18014398509481984:+:131072:+:18014398509613056:+ 18014398509481984:+:131072:-:131072:- 18014398509481984:-:131072:+:18014398509350912:- 18014398509481984:-:131072:-:131072:- 18014398509481984:+:4194304:+:18014398513676288:+ 18014398509481984:+:4194304:-:4194304:- 18014398509481984:-:4194304:+:18014398505287680:- 18014398509481984:-:4194304:-:4194304:- 18014398509481984:+:8388608:+:18014398517870592:+ 18014398509481984:+:8388608:-:8388608:- 18014398509481984:-:8388608:+:18014398501093376:- 18014398509481984:-:8388608:-:8388608:- 18014398509481984:+:16777216:+:18014398526259200:+ 18014398509481984:+:16777216:-:16777216:- 18014398509481984:-:16777216:+:18014398492704768:- 18014398509481984:-:16777216:-:16777216:- 18014398509481984:+:33554432:+:18014398543036416:+ 18014398509481984:+:33554432:-:33554432:- 18014398509481984:-:33554432:+:18014398475927552:- 18014398509481984:-:33554432:-:33554432:- 18014398509481984:+:1073741824:+:18014399583223808:+ 18014398509481984:+:1073741824:-:1073741824:- 18014398509481984:-:1073741824:+:18014397435740160:- 18014398509481984:-:1073741824:-:1073741824:- 18014398509481984:+:2147483648:+:18014400656965632:+ 18014398509481984:+:2147483648:-:2147483648:- 18014398509481984:-:2147483648:+:18014396361998336:- 18014398509481984:-:2147483648:-:2147483648:- 18014398509481984:+:4294967296:+:18014402804449280:+ 18014398509481984:+:4294967296:-:4294967296:- 18014398509481984:-:4294967296:+:18014394214514688:- 18014398509481984:-:4294967296:-:4294967296:- 18014398509481984:+:8589934592:+:18014407099416576:+ 18014398509481984:+:8589934592:-:8589934592:- 18014398509481984:-:8589934592:+:18014389919547392:- 18014398509481984:-:8589934592:-:8589934592:- 18014398509481984:+:274877906944:+:18014673387388928:+ 18014398509481984:+:274877906944:-:274877906944:- 18014398509481984:-:274877906944:+:18014123631575040:- 18014398509481984:-:274877906944:-:274877906944:- 18014398509481984:+:549755813888:+:18014948265295872:+ 18014398509481984:+:549755813888:-:549755813888:- 18014398509481984:-:549755813888:+:18013848753668096:- 18014398509481984:-:549755813888:-:549755813888:- 18014398509481984:+:1099511627776:+:18015498021109760:+ 18014398509481984:+:1099511627776:-:1099511627776:- 18014398509481984:-:1099511627776:+:18013298997854208:- 18014398509481984:-:1099511627776:-:1099511627776:- 18014398509481984:+:2199023255552:+:18016597532737536:+ 18014398509481984:+:2199023255552:-:2199023255552:- 18014398509481984:-:2199023255552:+:18012199486226432:- 18014398509481984:-:2199023255552:-:2199023255552:- 18014398509481984:+:70368744177664:+:18084767253659648:+ 18014398509481984:+:70368744177664:-:70368744177664:- 18014398509481984:-:70368744177664:+:17944029765304320:- 18014398509481984:-:70368744177664:-:70368744177664:- 18014398509481984:+:140737488355328:+:18155135997837312:+ 18014398509481984:+:140737488355328:-:140737488355328:- 18014398509481984:-:140737488355328:+:17873661021126656:- 18014398509481984:-:140737488355328:-:140737488355328:- 18014398509481984:+:281474976710656:+:18295873486192640:+ 18014398509481984:+:281474976710656:-:281474976710656:- 18014398509481984:-:281474976710656:+:17732923532771328:- 18014398509481984:-:281474976710656:-:281474976710656:- 18014398509481984:+:562949953421312:+:18577348462903296:+ 18014398509481984:+:562949953421312:-:562949953421312:- 18014398509481984:-:562949953421312:+:17451448556060672:- 18014398509481984:-:562949953421312:-:562949953421312:- 18014398509481984:+:18014398509481984:+:18014398509481984:+ 18014398509481984:+:18014398509481984:-:18014398509481984:- 18014398509481984:-:18014398509481984:+:18014398509481984:- 18014398509481984:-:18014398509481984:-:18014398509481984:- 18014398509481984:+:36028797018963968:+:54043195528445952:+ 18014398509481984:+:36028797018963968:-:18014398509481984:- 18014398509481984:-:36028797018963968:+:18014398509481984:- 18014398509481984:-:36028797018963968:-:18014398509481984:- 18014398509481984:+:72057594037927936:+:90071992547409920:+ 18014398509481984:+:72057594037927936:-:54043195528445952:- 18014398509481984:-:72057594037927936:+:18014398509481984:- 18014398509481984:-:72057594037927936:-:18014398509481984:- 18014398509481984:+:144115188075855872:+:162129586585337856:+ 18014398509481984:+:144115188075855872:-:126100789566373888:- 18014398509481984:-:144115188075855872:+:18014398509481984:- 18014398509481984:-:144115188075855872:-:18014398509481984:- 36028797018963968:+:0:+:36028797018963968:+ 36028797018963968:-:0:+:36028797018963968:- 36028797018963968:+:1:+:36028797018963969:+ 36028797018963968:+:1:-:1:- 36028797018963968:-:1:+:36028797018963967:- 36028797018963968:-:1:-:1:- 36028797018963968:+:2:+:36028797018963970:+ 36028797018963968:+:2:-:2:- 36028797018963968:-:2:+:36028797018963966:- 36028797018963968:-:2:-:2:- 36028797018963968:+:3:+:36028797018963971:+ 36028797018963968:+:3:-:3:- 36028797018963968:-:3:+:36028797018963965:- 36028797018963968:-:3:-:3:- 36028797018963968:+:4:+:36028797018963972:+ 36028797018963968:+:4:-:4:- 36028797018963968:-:4:+:36028797018963964:- 36028797018963968:-:4:-:4:- 36028797018963968:+:64:+:36028797018964032:+ 36028797018963968:+:64:-:64:- 36028797018963968:-:64:+:36028797018963904:- 36028797018963968:-:64:-:64:- 36028797018963968:+:128:+:36028797018964096:+ 36028797018963968:+:128:-:128:- 36028797018963968:-:128:+:36028797018963840:- 36028797018963968:-:128:-:128:- 36028797018963968:+:256:+:36028797018964224:+ 36028797018963968:+:256:-:256:- 36028797018963968:-:256:+:36028797018963712:- 36028797018963968:-:256:-:256:- 36028797018963968:+:512:+:36028797018964480:+ 36028797018963968:+:512:-:512:- 36028797018963968:-:512:+:36028797018963456:- 36028797018963968:-:512:-:512:- 36028797018963968:+:16384:+:36028797018980352:+ 36028797018963968:+:16384:-:16384:- 36028797018963968:-:16384:+:36028797018947584:- 36028797018963968:-:16384:-:16384:- 36028797018963968:+:32768:+:36028797018996736:+ 36028797018963968:+:32768:-:32768:- 36028797018963968:-:32768:+:36028797018931200:- 36028797018963968:-:32768:-:32768:- 36028797018963968:+:65536:+:36028797019029504:+ 36028797018963968:+:65536:-:65536:- 36028797018963968:-:65536:+:36028797018898432:- 36028797018963968:-:65536:-:65536:- 36028797018963968:+:131072:+:36028797019095040:+ 36028797018963968:+:131072:-:131072:- 36028797018963968:-:131072:+:36028797018832896:- 36028797018963968:-:131072:-:131072:- 36028797018963968:+:4194304:+:36028797023158272:+ 36028797018963968:+:4194304:-:4194304:- 36028797018963968:-:4194304:+:36028797014769664:- 36028797018963968:-:4194304:-:4194304:- 36028797018963968:+:8388608:+:36028797027352576:+ 36028797018963968:+:8388608:-:8388608:- 36028797018963968:-:8388608:+:36028797010575360:- 36028797018963968:-:8388608:-:8388608:- 36028797018963968:+:16777216:+:36028797035741184:+ 36028797018963968:+:16777216:-:16777216:- 36028797018963968:-:16777216:+:36028797002186752:- 36028797018963968:-:16777216:-:16777216:- 36028797018963968:+:33554432:+:36028797052518400:+ 36028797018963968:+:33554432:-:33554432:- 36028797018963968:-:33554432:+:36028796985409536:- 36028797018963968:-:33554432:-:33554432:- 36028797018963968:+:1073741824:+:36028798092705792:+ 36028797018963968:+:1073741824:-:1073741824:- 36028797018963968:-:1073741824:+:36028795945222144:- 36028797018963968:-:1073741824:-:1073741824:- 36028797018963968:+:2147483648:+:36028799166447616:+ 36028797018963968:+:2147483648:-:2147483648:- 36028797018963968:-:2147483648:+:36028794871480320:- 36028797018963968:-:2147483648:-:2147483648:- 36028797018963968:+:4294967296:+:36028801313931264:+ 36028797018963968:+:4294967296:-:4294967296:- 36028797018963968:-:4294967296:+:36028792723996672:- 36028797018963968:-:4294967296:-:4294967296:- 36028797018963968:+:8589934592:+:36028805608898560:+ 36028797018963968:+:8589934592:-:8589934592:- 36028797018963968:-:8589934592:+:36028788429029376:- 36028797018963968:-:8589934592:-:8589934592:- 36028797018963968:+:274877906944:+:36029071896870912:+ 36028797018963968:+:274877906944:-:274877906944:- 36028797018963968:-:274877906944:+:36028522141057024:- 36028797018963968:-:274877906944:-:274877906944:- 36028797018963968:+:549755813888:+:36029346774777856:+ 36028797018963968:+:549755813888:-:549755813888:- 36028797018963968:-:549755813888:+:36028247263150080:- 36028797018963968:-:549755813888:-:549755813888:- 36028797018963968:+:1099511627776:+:36029896530591744:+ 36028797018963968:+:1099511627776:-:1099511627776:- 36028797018963968:-:1099511627776:+:36027697507336192:- 36028797018963968:-:1099511627776:-:1099511627776:- 36028797018963968:+:2199023255552:+:36030996042219520:+ 36028797018963968:+:2199023255552:-:2199023255552:- 36028797018963968:-:2199023255552:+:36026597995708416:- 36028797018963968:-:2199023255552:-:2199023255552:- 36028797018963968:+:70368744177664:+:36099165763141632:+ 36028797018963968:+:70368744177664:-:70368744177664:- 36028797018963968:-:70368744177664:+:35958428274786304:- 36028797018963968:-:70368744177664:-:70368744177664:- 36028797018963968:+:140737488355328:+:36169534507319296:+ 36028797018963968:+:140737488355328:-:140737488355328:- 36028797018963968:-:140737488355328:+:35888059530608640:- 36028797018963968:-:140737488355328:-:140737488355328:- 36028797018963968:+:281474976710656:+:36310271995674624:+ 36028797018963968:+:281474976710656:-:281474976710656:- 36028797018963968:-:281474976710656:+:35747322042253312:- 36028797018963968:-:281474976710656:-:281474976710656:- 36028797018963968:+:562949953421312:+:36591746972385280:+ 36028797018963968:+:562949953421312:-:562949953421312:- 36028797018963968:-:562949953421312:+:35465847065542656:- 36028797018963968:-:562949953421312:-:562949953421312:- 36028797018963968:+:18014398509481984:+:54043195528445952:+ 36028797018963968:+:18014398509481984:-:18014398509481984:- 36028797018963968:-:18014398509481984:+:18014398509481984:- 36028797018963968:-:18014398509481984:-:18014398509481984:- 36028797018963968:+:36028797018963968:+:36028797018963968:+ 36028797018963968:+:36028797018963968:-:36028797018963968:- 36028797018963968:-:36028797018963968:+:36028797018963968:- 36028797018963968:-:36028797018963968:-:36028797018963968:- 36028797018963968:+:72057594037927936:+:108086391056891904:+ 36028797018963968:+:72057594037927936:-:36028797018963968:- 36028797018963968:-:72057594037927936:+:36028797018963968:- 36028797018963968:-:72057594037927936:-:36028797018963968:- 36028797018963968:+:144115188075855872:+:180143985094819840:+ 36028797018963968:+:144115188075855872:-:108086391056891904:- 36028797018963968:-:144115188075855872:+:36028797018963968:- 36028797018963968:-:144115188075855872:-:36028797018963968:- 72057594037927936:+:0:+:72057594037927936:+ 72057594037927936:-:0:+:72057594037927936:- 72057594037927936:+:1:+:72057594037927937:+ 72057594037927936:+:1:-:1:- 72057594037927936:-:1:+:72057594037927935:- 72057594037927936:-:1:-:1:- 72057594037927936:+:2:+:72057594037927938:+ 72057594037927936:+:2:-:2:- 72057594037927936:-:2:+:72057594037927934:- 72057594037927936:-:2:-:2:- 72057594037927936:+:3:+:72057594037927939:+ 72057594037927936:+:3:-:3:- 72057594037927936:-:3:+:72057594037927933:- 72057594037927936:-:3:-:3:- 72057594037927936:+:4:+:72057594037927940:+ 72057594037927936:+:4:-:4:- 72057594037927936:-:4:+:72057594037927932:- 72057594037927936:-:4:-:4:- 72057594037927936:+:64:+:72057594037928000:+ 72057594037927936:+:64:-:64:- 72057594037927936:-:64:+:72057594037927872:- 72057594037927936:-:64:-:64:- 72057594037927936:+:128:+:72057594037928064:+ 72057594037927936:+:128:-:128:- 72057594037927936:-:128:+:72057594037927808:- 72057594037927936:-:128:-:128:- 72057594037927936:+:256:+:72057594037928192:+ 72057594037927936:+:256:-:256:- 72057594037927936:-:256:+:72057594037927680:- 72057594037927936:-:256:-:256:- 72057594037927936:+:512:+:72057594037928448:+ 72057594037927936:+:512:-:512:- 72057594037927936:-:512:+:72057594037927424:- 72057594037927936:-:512:-:512:- 72057594037927936:+:16384:+:72057594037944320:+ 72057594037927936:+:16384:-:16384:- 72057594037927936:-:16384:+:72057594037911552:- 72057594037927936:-:16384:-:16384:- 72057594037927936:+:32768:+:72057594037960704:+ 72057594037927936:+:32768:-:32768:- 72057594037927936:-:32768:+:72057594037895168:- 72057594037927936:-:32768:-:32768:- 72057594037927936:+:65536:+:72057594037993472:+ 72057594037927936:+:65536:-:65536:- 72057594037927936:-:65536:+:72057594037862400:- 72057594037927936:-:65536:-:65536:- 72057594037927936:+:131072:+:72057594038059008:+ 72057594037927936:+:131072:-:131072:- 72057594037927936:-:131072:+:72057594037796864:- 72057594037927936:-:131072:-:131072:- 72057594037927936:+:4194304:+:72057594042122240:+ 72057594037927936:+:4194304:-:4194304:- 72057594037927936:-:4194304:+:72057594033733632:- 72057594037927936:-:4194304:-:4194304:- 72057594037927936:+:8388608:+:72057594046316544:+ 72057594037927936:+:8388608:-:8388608:- 72057594037927936:-:8388608:+:72057594029539328:- 72057594037927936:-:8388608:-:8388608:- 72057594037927936:+:16777216:+:72057594054705152:+ 72057594037927936:+:16777216:-:16777216:- 72057594037927936:-:16777216:+:72057594021150720:- 72057594037927936:-:16777216:-:16777216:- 72057594037927936:+:33554432:+:72057594071482368:+ 72057594037927936:+:33554432:-:33554432:- 72057594037927936:-:33554432:+:72057594004373504:- 72057594037927936:-:33554432:-:33554432:- 72057594037927936:+:1073741824:+:72057595111669760:+ 72057594037927936:+:1073741824:-:1073741824:- 72057594037927936:-:1073741824:+:72057592964186112:- 72057594037927936:-:1073741824:-:1073741824:- 72057594037927936:+:2147483648:+:72057596185411584:+ 72057594037927936:+:2147483648:-:2147483648:- 72057594037927936:-:2147483648:+:72057591890444288:- 72057594037927936:-:2147483648:-:2147483648:- 72057594037927936:+:4294967296:+:72057598332895232:+ 72057594037927936:+:4294967296:-:4294967296:- 72057594037927936:-:4294967296:+:72057589742960640:- 72057594037927936:-:4294967296:-:4294967296:- 72057594037927936:+:8589934592:+:72057602627862528:+ 72057594037927936:+:8589934592:-:8589934592:- 72057594037927936:-:8589934592:+:72057585447993344:- 72057594037927936:-:8589934592:-:8589934592:- 72057594037927936:+:274877906944:+:72057868915834880:+ 72057594037927936:+:274877906944:-:274877906944:- 72057594037927936:-:274877906944:+:72057319160020992:- 72057594037927936:-:274877906944:-:274877906944:- 72057594037927936:+:549755813888:+:72058143793741824:+ 72057594037927936:+:549755813888:-:549755813888:- 72057594037927936:-:549755813888:+:72057044282114048:- 72057594037927936:-:549755813888:-:549755813888:- 72057594037927936:+:1099511627776:+:72058693549555712:+ 72057594037927936:+:1099511627776:-:1099511627776:- 72057594037927936:-:1099511627776:+:72056494526300160:- 72057594037927936:-:1099511627776:-:1099511627776:- 72057594037927936:+:2199023255552:+:72059793061183488:+ 72057594037927936:+:2199023255552:-:2199023255552:- 72057594037927936:-:2199023255552:+:72055395014672384:- 72057594037927936:-:2199023255552:-:2199023255552:- 72057594037927936:+:70368744177664:+:72127962782105600:+ 72057594037927936:+:70368744177664:-:70368744177664:- 72057594037927936:-:70368744177664:+:71987225293750272:- 72057594037927936:-:70368744177664:-:70368744177664:- 72057594037927936:+:140737488355328:+:72198331526283264:+ 72057594037927936:+:140737488355328:-:140737488355328:- 72057594037927936:-:140737488355328:+:71916856549572608:- 72057594037927936:-:140737488355328:-:140737488355328:- 72057594037927936:+:281474976710656:+:72339069014638592:+ 72057594037927936:+:281474976710656:-:281474976710656:- 72057594037927936:-:281474976710656:+:71776119061217280:- 72057594037927936:-:281474976710656:-:281474976710656:- 72057594037927936:+:562949953421312:+:72620543991349248:+ 72057594037927936:+:562949953421312:-:562949953421312:- 72057594037927936:-:562949953421312:+:71494644084506624:- 72057594037927936:-:562949953421312:-:562949953421312:- 72057594037927936:+:18014398509481984:+:90071992547409920:+ 72057594037927936:+:18014398509481984:-:18014398509481984:- 72057594037927936:-:18014398509481984:+:54043195528445952:- 72057594037927936:-:18014398509481984:-:18014398509481984:- 72057594037927936:+:36028797018963968:+:108086391056891904:+ 72057594037927936:+:36028797018963968:-:36028797018963968:- 72057594037927936:-:36028797018963968:+:36028797018963968:- 72057594037927936:-:36028797018963968:-:36028797018963968:- 72057594037927936:+:72057594037927936:+:72057594037927936:+ 72057594037927936:+:72057594037927936:-:72057594037927936:- 72057594037927936:-:72057594037927936:+:72057594037927936:- 72057594037927936:-:72057594037927936:-:72057594037927936:- 72057594037927936:+:144115188075855872:+:216172782113783808:+ 72057594037927936:+:144115188075855872:-:72057594037927936:- 72057594037927936:-:144115188075855872:+:72057594037927936:- 72057594037927936:-:144115188075855872:-:72057594037927936:- 144115188075855872:+:0:+:144115188075855872:+ 144115188075855872:-:0:+:144115188075855872:- 144115188075855872:+:1:+:144115188075855873:+ 144115188075855872:+:1:-:1:- 144115188075855872:-:1:+:144115188075855871:- 144115188075855872:-:1:-:1:- 144115188075855872:+:2:+:144115188075855874:+ 144115188075855872:+:2:-:2:- 144115188075855872:-:2:+:144115188075855870:- 144115188075855872:-:2:-:2:- 144115188075855872:+:3:+:144115188075855875:+ 144115188075855872:+:3:-:3:- 144115188075855872:-:3:+:144115188075855869:- 144115188075855872:-:3:-:3:- 144115188075855872:+:4:+:144115188075855876:+ 144115188075855872:+:4:-:4:- 144115188075855872:-:4:+:144115188075855868:- 144115188075855872:-:4:-:4:- 144115188075855872:+:64:+:144115188075855936:+ 144115188075855872:+:64:-:64:- 144115188075855872:-:64:+:144115188075855808:- 144115188075855872:-:64:-:64:- 144115188075855872:+:128:+:144115188075856000:+ 144115188075855872:+:128:-:128:- 144115188075855872:-:128:+:144115188075855744:- 144115188075855872:-:128:-:128:- 144115188075855872:+:256:+:144115188075856128:+ 144115188075855872:+:256:-:256:- 144115188075855872:-:256:+:144115188075855616:- 144115188075855872:-:256:-:256:- 144115188075855872:+:512:+:144115188075856384:+ 144115188075855872:+:512:-:512:- 144115188075855872:-:512:+:144115188075855360:- 144115188075855872:-:512:-:512:- 144115188075855872:+:16384:+:144115188075872256:+ 144115188075855872:+:16384:-:16384:- 144115188075855872:-:16384:+:144115188075839488:- 144115188075855872:-:16384:-:16384:- 144115188075855872:+:32768:+:144115188075888640:+ 144115188075855872:+:32768:-:32768:- 144115188075855872:-:32768:+:144115188075823104:- 144115188075855872:-:32768:-:32768:- 144115188075855872:+:65536:+:144115188075921408:+ 144115188075855872:+:65536:-:65536:- 144115188075855872:-:65536:+:144115188075790336:- 144115188075855872:-:65536:-:65536:- 144115188075855872:+:131072:+:144115188075986944:+ 144115188075855872:+:131072:-:131072:- 144115188075855872:-:131072:+:144115188075724800:- 144115188075855872:-:131072:-:131072:- 144115188075855872:+:4194304:+:144115188080050176:+ 144115188075855872:+:4194304:-:4194304:- 144115188075855872:-:4194304:+:144115188071661568:- 144115188075855872:-:4194304:-:4194304:- 144115188075855872:+:8388608:+:144115188084244480:+ 144115188075855872:+:8388608:-:8388608:- 144115188075855872:-:8388608:+:144115188067467264:- 144115188075855872:-:8388608:-:8388608:- 144115188075855872:+:16777216:+:144115188092633088:+ 144115188075855872:+:16777216:-:16777216:- 144115188075855872:-:16777216:+:144115188059078656:- 144115188075855872:-:16777216:-:16777216:- 144115188075855872:+:33554432:+:144115188109410304:+ 144115188075855872:+:33554432:-:33554432:- 144115188075855872:-:33554432:+:144115188042301440:- 144115188075855872:-:33554432:-:33554432:- 144115188075855872:+:1073741824:+:144115189149597696:+ 144115188075855872:+:1073741824:-:1073741824:- 144115188075855872:-:1073741824:+:144115187002114048:- 144115188075855872:-:1073741824:-:1073741824:- 144115188075855872:+:2147483648:+:144115190223339520:+ 144115188075855872:+:2147483648:-:2147483648:- 144115188075855872:-:2147483648:+:144115185928372224:- 144115188075855872:-:2147483648:-:2147483648:- 144115188075855872:+:4294967296:+:144115192370823168:+ 144115188075855872:+:4294967296:-:4294967296:- 144115188075855872:-:4294967296:+:144115183780888576:- 144115188075855872:-:4294967296:-:4294967296:- 144115188075855872:+:8589934592:+:144115196665790464:+ 144115188075855872:+:8589934592:-:8589934592:- 144115188075855872:-:8589934592:+:144115179485921280:- 144115188075855872:-:8589934592:-:8589934592:- 144115188075855872:+:274877906944:+:144115462953762816:+ 144115188075855872:+:274877906944:-:274877906944:- 144115188075855872:-:274877906944:+:144114913197948928:- 144115188075855872:-:274877906944:-:274877906944:- 144115188075855872:+:549755813888:+:144115737831669760:+ 144115188075855872:+:549755813888:-:549755813888:- 144115188075855872:-:549755813888:+:144114638320041984:- 144115188075855872:-:549755813888:-:549755813888:- 144115188075855872:+:1099511627776:+:144116287587483648:+ 144115188075855872:+:1099511627776:-:1099511627776:- 144115188075855872:-:1099511627776:+:144114088564228096:- 144115188075855872:-:1099511627776:-:1099511627776:- 144115188075855872:+:2199023255552:+:144117387099111424:+ 144115188075855872:+:2199023255552:-:2199023255552:- 144115188075855872:-:2199023255552:+:144112989052600320:- 144115188075855872:-:2199023255552:-:2199023255552:- 144115188075855872:+:70368744177664:+:144185556820033536:+ 144115188075855872:+:70368744177664:-:70368744177664:- 144115188075855872:-:70368744177664:+:144044819331678208:- 144115188075855872:-:70368744177664:-:70368744177664:- 144115188075855872:+:140737488355328:+:144255925564211200:+ 144115188075855872:+:140737488355328:-:140737488355328:- 144115188075855872:-:140737488355328:+:143974450587500544:- 144115188075855872:-:140737488355328:-:140737488355328:- 144115188075855872:+:281474976710656:+:144396663052566528:+ 144115188075855872:+:281474976710656:-:281474976710656:- 144115188075855872:-:281474976710656:+:143833713099145216:- 144115188075855872:-:281474976710656:-:281474976710656:- 144115188075855872:+:562949953421312:+:144678138029277184:+ 144115188075855872:+:562949953421312:-:562949953421312:- 144115188075855872:-:562949953421312:+:143552238122434560:- 144115188075855872:-:562949953421312:-:562949953421312:- 144115188075855872:+:18014398509481984:+:162129586585337856:+ 144115188075855872:+:18014398509481984:-:18014398509481984:- 144115188075855872:-:18014398509481984:+:126100789566373888:- 144115188075855872:-:18014398509481984:-:18014398509481984:- 144115188075855872:+:36028797018963968:+:180143985094819840:+ 144115188075855872:+:36028797018963968:-:36028797018963968:- 144115188075855872:-:36028797018963968:+:108086391056891904:- 144115188075855872:-:36028797018963968:-:36028797018963968:- 144115188075855872:+:72057594037927936:+:216172782113783808:+ 144115188075855872:+:72057594037927936:-:72057594037927936:- 144115188075855872:-:72057594037927936:+:72057594037927936:- 144115188075855872:-:72057594037927936:-:72057594037927936:- 144115188075855872:+:144115188075855872:+:144115188075855872:+ 144115188075855872:+:144115188075855872:-:144115188075855872:- 144115188075855872:-:144115188075855872:+:144115188075855872:- 144115188075855872:-:144115188075855872:-:144115188075855872:- # Random values 98:+:69:+:103:+ 98:+:69:-:5:- 98:-:69:+:33:- 98:-:69:-:65:- 56:+:749:+:765:+ 56:+:749:-:709:- 56:-:749:+:19:- 56:-:749:-:37:- 40:+:3369:+:3369:+ 40:+:3369:-:3329:- 40:-:3369:+:7:- 40:-:3369:-:33:- 92:+:56428:+:56444:+ 92:+:56428:-:56356:- 92:-:56428:+:20:- 92:-:56428:-:76:- 88:+:337565:+:337629:+ 88:+:337565:-:337541:- 88:-:337565:+:67:- 88:-:337565:-:21:- 22:+:4878274:+:4878294:+ 22:+:4878274:-:4878274:- 22:-:4878274:+:22:- 22:-:4878274:-:2:- 73:+:85315112:+:85315177:+ 73:+:85315112:-:85315111:- 73:-:85315112:+:65:- 73:-:85315112:-:1:- 38:+:905187951:+:905187951:+ 38:+:905187951:-:905187913:- 38:-:905187951:+:1:- 38:-:905187951:-:37:- 31:+:9290562420:+:9290562431:+ 31:+:9290562420:-:9290562401:- 31:-:9290562420:+:11:- 31:-:9290562420:-:19:- 94:+:25936892790:+:25936892798:+ 94:+:25936892790:-:25936892706:- 94:-:25936892790:+:10:- 94:-:25936892790:-:86:- 19:+:207690094436:+:207690094455:+ 19:+:207690094436:-:207690094433:- 19:-:207690094436:+:19:- 19:-:207690094436:-:3:- 45:+:3577365768343:+:3577365768383:+ 45:+:3577365768343:-:3577365768339:- 45:-:3577365768343:+:41:- 45:-:3577365768343:-:5:- 98:+:62756353130201:+:62756353130235:+ 98:+:62756353130201:-:62756353130137:- 98:-:62756353130201:+:33:- 98:-:62756353130201:-:65:- 20:+:267407809365478:+:267407809365494:+ 20:+:267407809365478:-:267407809365474:- 20:-:267407809365478:+:18:- 20:-:267407809365478:-:2:- 92:+:2165066959527967:+:2165066959528031:+ 92:+:2165066959527967:-:2165066959527939:- 92:-:2165066959527967:+:65:- 92:-:2165066959527967:-:27:- 41:+:89833150277075305:+:89833150277075305:+ 41:+:89833150277075305:-:89833150277075265:- 41:-:89833150277075305:+:1:- 41:-:89833150277075305:-:41:- 60:+:667518400417517160:+:667518400417517180:+ 60:+:667518400417517160:-:667518400417517124:- 60:-:667518400417517160:+:20:- 60:-:667518400417517160:-:36:- 34:+:6610953337802165182:+:6610953337802165182:+ 34:+:6610953337802165182:-:6610953337802165150:- 34:-:6610953337802165182:+:2:- 34:-:6610953337802165182:-:34:- 91:+:10398172404063513554:+:10398172404063513563:+ 91:+:10398172404063513554:-:10398172404063513473:- 91:-:10398172404063513554:+:9:- 91:-:10398172404063513554:-:81:- 200:+:62:+:254:+ 200:+:62:-:54:- 200:-:62:+:194:- 200:-:62:-:6:- 748:+:369:+:1021:+ 748:+:369:-:273:- 748:-:369:+:651:- 748:-:369:-:97:- 688:+:4216:+:4856:+ 688:+:4216:-:4168:- 688:-:4216:+:648:- 688:-:4216:-:40:- 862:+:36982:+:37758:+ 862:+:36982:-:36898:- 862:-:36982:+:778:- 862:-:36982:-:86:- 395:+:892752:+:892891:+ 395:+:892752:-:892485:- 395:-:892752:+:139:- 395:-:892752:-:267:- 674:+:6988649:+:6988779:+ 674:+:6988649:-:6988105:- 674:-:6988649:+:129:- 674:-:6988649:-:545:- 841:+:69010600:+:69011433:+ 841:+:69010600:-:69010599:- 841:-:69010600:+:833:- 841:-:69010600:-:1:- 504:+:965866259:+:965866491:+ 504:+:965866259:-:965865987:- 504:-:965866259:+:229:- 504:-:965866259:-:275:- 565:+:1402904928:+:1402905461:+ 565:+:1402904928:-:1402904907:- 565:-:1402904928:+:533:- 565:-:1402904928:-:21:- 924:+:88482619718:+:88482620382:+ 924:+:88482619718:-:88482619458:- 924:-:88482619718:+:666:- 924:-:88482619718:-:258:- 808:+:557096333213:+:557096333245:+ 808:+:557096333213:-:557096332437:- 808:-:557096333213:+:35:- 808:-:557096333213:-:773:- 702:+:4084183464537:+:4084183464703:+ 702:+:4084183464537:-:4084183464001:- 702:-:4084183464537:+:165:- 702:-:4084183464537:-:537:- 229:+:42844229015565:+:42844229015789:+ 229:+:42844229015565:-:42844229015561:- 229:-:42844229015565:+:225:- 229:-:42844229015565:-:5:- 776:+:618841278895671:+:618841278895935:+ 776:+:618841278895671:-:618841278895159:- 776:-:618841278895671:+:257:- 776:-:618841278895671:-:519:- 573:+:8382392474066375:+:8382392474066943:+ 573:+:8382392474066375:-:8382392474066371:- 573:-:8382392474066375:+:569:- 573:-:8382392474066375:-:5:- 400:+:36352370964513277:+:36352370964513277:+ 400:+:36352370964513277:-:36352370964512877:- 400:-:36352370964513277:+:3:- 400:-:36352370964513277:-:397:- 628:+:313219421294589230:+:313219421294589822:+ 628:+:313219421294589230:-:313219421294589194:- 628:-:313219421294589230:+:594:- 628:-:313219421294589230:-:34:- 767:+:1933583184196019215:+:1933583184196019967:+ 767:+:1933583184196019215:-:1933583184196019201:- 767:-:1933583184196019215:+:753:- 767:-:1933583184196019215:-:15:- 696:+:80895324374283516865:+:80895324374283516921:+ 696:+:80895324374283516865:-:80895324374283516225:- 696:-:80895324374283516865:+:55:- 696:-:80895324374283516865:-:641:- 7993:+:67:+:8059:+ 7993:+:67:-:67:- 7993:-:67:+:7993:- 7993:-:67:-:1:- 9385:+:274:+:9659:+ 9385:+:274:-:273:- 9385:-:274:+:9385:- 9385:-:274:-:1:- 5790:+:1158:+:5790:+ 5790:+:1158:-:2:- 5790:-:1158:+:4634:- 5790:-:1158:-:1158:- 8310:+:28235:+:28287:+ 8310:+:28235:-:19977:- 8310:-:28235:+:53:- 8310:-:28235:-:8257:- 2021:+:411178:+:411631:+ 2021:+:411178:-:409609:- 2021:-:411178:+:453:- 2021:-:411178:-:1569:- 3503:+:4954963:+:4956159:+ 3503:+:4954963:-:4952657:- 3503:-:4954963:+:1197:- 3503:-:4954963:-:2307:- 3246:+:62437529:+:62438591:+ 3246:+:62437529:-:62435345:- 3246:-:62437529:+:1061:- 3246:-:62437529:-:2185:- 6842:+:723978338:+:723983098:+ 6842:+:723978338:-:723976258:- 6842:-:723978338:+:4762:- 6842:-:723978338:-:2082:- 6750:+:7634271248:+:7634271838:+ 6750:+:7634271248:-:7634265090:- 6750:-:7634271248:+:590:- 6750:-:7634271248:-:6158:- 5729:+:19453177853:+:19453181949:+ 5729:+:19453177853:-:19453176221:- 5729:-:19453177853:+:4097:- 5729:-:19453177853:-:1633:- 5740:+:639301610659:+:639301615343:+ 5740:+:639301610659:-:639301609603:- 5740:-:639301610659:+:4681:- 5740:-:639301610659:-:1059:- 6669:+:9711126697566:+:9711126699615:+ 6669:+:9711126697566:-:9711126692945:- 6669:-:9711126697566:+:2049:- 6669:-:9711126697566:-:4621:- 5004:+:38904417991220:+:38904417991612:+ 5004:+:38904417991220:-:38904417986612:- 5004:-:38904417991220:+:396:- 5004:-:38904417991220:-:4612:- 8592:+:853321089338293:+:853321089346485:+ 8592:+:853321089338293:-:853321089337893:- 8592:-:853321089338293:+:8203:- 8592:-:853321089338293:-:389:- 4764:+:2696445065211858:+:2696445065215966:+ 4764:+:2696445065211858:-:2696445065211202:- 4764:-:2696445065211858:+:4106:- 4764:-:2696445065211858:-:658:- 6659:+:75997530533939166:+:75997530533945311:+ 6659:+:75997530533939166:-:75997530533938653:- 6659:-:75997530533939166:+:6145:- 6659:-:75997530533939166:-:513:- 2282:+:635999628825284899:+:635999628825287147:+ 2282:+:635999628825284899:-:635999628825284865:- 2282:-:635999628825284899:+:2249:- 2282:-:635999628825284899:-:33:- 2037:+:9811169905358744048:+:9811169905358745589:+ 2037:+:9811169905358744048:-:9811169905358743563:- 2037:-:9811169905358744048:+:1541:- 2037:-:9811169905358744048:-:485:- 2348:+:34305009185643835655:+:34305009185643837743:+ 2348:+:34305009185643835655:-:34305009185643835395:- 2348:-:34305009185643835655:+:2089:- 2348:-:34305009185643835655:-:259:- 82651:+:40:+:82683:+ 82651:+:40:-:37:- 82651:-:40:+:82643:- 82651:-:40:-:3:- 20731:+:517:+:21247:+ 20731:+:517:-:517:- 20731:-:517:+:20731:- 20731:-:517:-:1:- 27357:+:9802:+:28383:+ 27357:+:9802:-:1025:- 27357:-:9802:+:18581:- 27357:-:9802:-:8777:- 12869:+:91866:+:95967:+ 12869:+:91866:-:83097:- 12869:-:91866:+:4101:- 12869:-:91866:-:8769:- 85055:+:175466:+:257407:+ 85055:+:175466:-:172353:- 85055:-:175466:+:81941:- 85055:-:175466:-:3113:- 37710:+:5975022:+:6011886:+ 37710:+:5975022:-:5974178:- 37710:-:5975022:+:36866:- 37710:-:5975022:-:846:- 55961:+:84129799:+:84146847:+ 55961:+:84129799:-:84090887:- 55961:-:84129799:+:17049:- 55961:-:84129799:-:38913:- 45442:+:395912856:+:395949978:+ 45442:+:395912856:-:395904534:- 45442:-:395912856:+:37122:- 45442:-:395912856:-:8322:- 91561:+:9672223463:+:9672290287:+ 91561:+:9672223463:-:9672198727:- 91561:-:9672223463:+:66825:- 91561:-:9672223463:-:24737:- 73463:+:95095775610:+:95095848959:+ 73463:+:95095775610:-:95095775497:- 73463:-:95095775610:+:73349:- 73463:-:95095775610:-:113:- 59829:+:215811864632:+:215811881405:+ 59829:+:215811864632:-:215811821571:- 59829:-:215811864632:+:16773:- 59829:-:215811864632:-:43061:- 34084:+:5687216641117:+:5687216674173:+ 34084:+:5687216641117:-:5687216640089:- 34084:-:5687216641117:+:33059:- 34084:-:5687216641117:-:1025:- 94141:+:39195096058960:+:39195096084477:+ 94141:+:39195096058960:-:39195095990339:- 94141:-:39195096058960:+:25517:- 94141:-:39195096058960:-:68621:- 40037:+:784304668602616:+:784304668605693:+ 40037:+:784304668602616:-:784304668565651:- 40037:-:784304668602616:+:3077:- 40037:-:784304668602616:-:36965:- 58561:+:1690477840814545:+:1690477840823761:+ 58561:+:1690477840814545:-:1690477840765201:- 58561:-:1690477840814545:+:9217:- 58561:-:1690477840814545:-:49345:- 26226:+:50055446714918083:+:50055446714935027:+ 26226:+:50055446714918083:-:50055446714908801:- 26226:-:50055446714918083:+:16945:- 26226:-:50055446714918083:-:9281:- 17063:+:573327632804860410:+:573327632804860927:+ 17063:+:573327632804860410:-:573327632804843865:- 17063:-:573327632804860410:+:517:- 17063:-:573327632804860410:-:16545:- 87435:+:3911024041807414493:+:3911024041807435231:+ 87435:+:3911024041807414493:-:3911024041807347797:- 87435:-:3911024041807414493:+:20739:- 87435:-:3911024041807414493:-:66697:- 95433:+:82969541527913970986:+:82969541527913987563:+ 95433:+:82969541527913970986:-:82969541527913892129:- 95433:-:82969541527913970986:+:16577:- 95433:-:82969541527913970986:-:78857:- 855318:+:85:+:855383:+ 855318:+:85:-:65:- 855318:-:85:+:855297:- 855318:-:85:-:21:- 141152:+:257:+:141153:+ 141152:+:257:-:1:- 141152:-:257:+:140895:- 141152:-:257:-:257:- 395691:+:8059:+:401403:+ 395691:+:8059:-:5713:- 395691:-:8059:+:393345:- 395691:-:8059:-:2347:- 689582:+:90801:+:780223:+ 689582:+:90801:-:90641:- 689582:-:90801:+:689421:- 689582:-:90801:-:161:- 305761:+:693055:+:965503:+ 305761:+:693055:-:659743:- 305761:-:693055:+:272449:- 305761:-:693055:-:33313:- 466252:+:3361293:+:3628877:+ 466252:+:3361293:-:3162625:- 466252:-:3361293:+:267587:- 466252:-:3361293:-:198665:- 497537:+:70339372:+:70770605:+ 497537:+:70339372:-:70273067:- 497537:-:70339372:+:431233:- 497537:-:70339372:-:66305:- 610498:+:852221376:+:852221378:+ 610498:+:852221376:-:851610942:- 610498:-:852221376:+:2:- 610498:-:852221376:-:610434:- 406040:+:6342056078:+:6342195870:+ 406040:+:6342056078:-:6341789830:- 406040:-:6342056078:+:139794:- 406040:-:6342056078:-:266246:- 203462:+:22844025385:+:22844226287:+ 203462:+:22844025385:-:22844022825:- 203462:-:22844025385:+:200901:- 203462:-:22844025385:-:2561:- 949120:+:898998434723:+:898998696867:+ 949120:+:898998434723:-:898997747747:- 949120:-:898998434723:+:262237:- 949120:-:898998434723:-:686883:- 331397:+:2888121377736:+:2888121708493:+ 331397:+:2888121377736:-:2888121377091:- 331397:-:2888121377736:+:330757:- 331397:-:2888121377736:-:645:- 986118:+:32720639752888:+:32720640016062:+ 986118:+:32720639752888:-:32720639029938:- 986118:-:32720639752888:+:263174:- 986118:-:32720639752888:-:722950:- 123850:+:276849392448397:+:276849392481231:+ 123850:+:276849392448397:-:276849392357381:- 123850:-:276849392448397:+:32833:- 123850:-:276849392448397:-:91017:- 176721:+:3218583236040414:+:3218583236048607:+ 176721:+:3218583236040414:-:3218583235871885:- 176721:-:3218583236040414:+:8193:- 176721:-:3218583236040414:-:168529:- 712611:+:83363784254022167:+:83363784254554039:+ 712611:+:83363784254022167:-:83363784253841429:- 712611:-:83363784254022167:+:531873:- 712611:-:83363784254022167:-:180739:- 455299:+:624152550231618640:+:624152550231766739:+ 455299:+:624152550231618640:-:624152550231311437:- 455299:-:624152550231618640:+:148099:- 455299:-:624152550231618640:-:307203:- 412562:+:9221212110369980349:+:9221212110370373567:+ 412562:+:9221212110369980349:-:9221212110369961005:- 412562:-:9221212110369980349:+:393217:- 412562:-:9221212110369980349:-:19345:- 492489:+:32593920387540982982:+:32593920387541082063:+ 492489:+:32593920387540982982:-:32593920387540589573:- 492489:-:32593920387540982982:+:99081:- 492489:-:32593920387540982982:-:393409:- 7509409:+:46:+:7509423:+ 7509409:+:46:-:13:- 7509409:-:46:+:7509377:- 7509409:-:46:-:33:- 9144390:+:639:+:9144959:+ 9144390:+:639:-:569:- 9144390:-:639:+:9144321:- 9144390:-:639:-:69:- 1224313:+:3157:+:1224317:+ 1224313:+:3157:-:5:- 1224313:-:3157:+:1221161:- 1224313:-:3157:-:3153:- 9620271:+:61711:+:9632559:+ 9620271:+:61711:-:12289:- 9620271:-:61711:+:9570849:- 9620271:-:61711:-:49423:- 6776144:+:445828:+:6811092:+ 6776144:+:445828:-:34948:- 6776144:-:445828:+:6365260:- 6776144:-:445828:-:410884:- 4637210:+:9790862:+:14149534:+ 4637210:+:9790862:-:9512326:- 4637210:-:9790862:+:4358674:- 4637210:-:9790862:-:278538:- 3843538:+:98183869:+:100315135:+ 3843538:+:98183869:-:96471597:- 3843538:-:98183869:+:2131265:- 3843538:-:98183869:-:1712273:- 9445703:+:525619755:+:534016879:+ 9445703:+:525619755:-:524571177:- 9445703:-:525619755:+:8397125:- 9445703:-:525619755:-:1048579:- 2798514:+:6411329596:+:6412022718:+ 2798514:+:6411329596:-:6409224202:- 2798514:-:6411329596:+:693122:- 2798514:-:6411329596:-:2105394:- 7490384:+:48161491764:+:48166751092:+ 7490384:+:48161491764:-:48159260708:- 7490384:-:48161491764:+:5259340:- 7490384:-:48161491764:-:2231044:- 3982101:+:813849112010:+:813850161119:+ 3982101:+:813849112010:-:813846179017:- 3982101:-:813849112010:+:1049109:- 3982101:-:813849112010:-:2932993:- 3658237:+:8690577916637:+:8690581099517:+ 3658237:+:8690577916637:-:8690577441281:- 3658237:-:8690577916637:+:3182881:- 3658237:-:8690577916637:-:475357:- 3083254:+:87595349752289:+:87595350473719:+ 3083254:+:87595349752289:-:87595347390465:- 3083254:-:87595349752289:+:721429:- 3083254:-:87595349752289:-:2361825:- 1411100:+:648204377909806:+:648204378958398:+ 1411100:+:648204377909806:-:648204377547298:- 1411100:-:648204377909806:+:1048594:- 1411100:-:648204377909806:-:362506:- 8826020:+:1242782861826399:+:1242782870519295:+ 8826020:+:1242782861826399:-:1242782861693275:- 8826020:-:1242782861826399:+:8692897:- 8826020:-:1242782861826399:-:133123:- 3652829:+:17526857838461560:+:17526857838608125:+ 3652829:+:17526857838461560:-:17526857834955299:- 3652829:-:17526857838461560:+:146565:- 3652829:-:17526857838461560:-:3506261:- 1105145:+:946978685971613915:+:946978685971651835:+ 1105145:+:946978685971613915:-:946978685970546691:- 1105145:-:946978685971613915:+:37921:- 1105145:-:946978685971613915:-:1067225:- 3905469:+:4672788750902333272:+:4672788750902468605:+ 3905469:+:4672788750902333272:-:4672788750898563139:- 3905469:-:4672788750902333272:+:135333:- 3905469:-:4672788750902333272:-:3770133:- 4528723:+:38310073213259246745:+:38310073213263511259:+ 4528723:+:38310073213259246745:-:38310073213258982537:- 4528723:-:38310073213259246745:+:4264515:- 4528723:-:38310073213259246745:-:264209:- 82067540:+:69:+:82067541:+ 82067540:+:69:-:1:- 82067540:-:69:+:82067475:- 82067540:-:69:-:65:- 35455555:+:148:+:35455703:+ 35455555:+:148:-:145:- 35455555:-:148:+:35455555:- 35455555:-:148:-:3:- 73434959:+:1338:+:73435007:+ 73434959:+:1338:-:49:- 73434959:-:1338:+:73433669:- 73434959:-:1338:-:1289:- 36447711:+:50826:+:36497375:+ 36447711:+:50826:-:49665:- 36447711:-:50826:+:36446549:- 36447711:-:50826:-:1161:- 43826166:+:782273:+:44040183:+ 43826166:+:782273:-:214017:- 43826166:-:782273:+:43257909:- 43826166:-:782273:-:568257:- 53928969:+:4303541:+:58191549:+ 53928969:+:4303541:-:4262581:- 53928969:-:4303541:+:53888009:- 53928969:-:4303541:-:40961:- 13738509:+:54612329:+:64090989:+ 13738509:+:54612329:-:50352481:- 13738509:-:54612329:+:9478661:- 13738509:-:54612329:-:4259849:- 30481856:+:842258004:+:871620564:+ 30481856:+:842258004:-:841138708:- 30481856:-:842258004:+:29362604:- 30481856:-:842258004:-:1119252:- 32762078:+:7025030301:+:7046167775:+ 32762078:+:7025030301:-:7013405697:- 32762078:-:7025030301:+:21137473:- 32762078:-:7025030301:-:11624605:- 16850425:+:50826921659:+:50826928123:+ 16850425:+:50826921659:-:50810077699:- 16850425:-:50826921659:+:6465:- 16850425:-:50826921659:-:16843961:- 87716441:+:923865429510:+:923950380639:+ 87716441:+:923865429510:-:923862664197:- 87716441:-:923865429510:+:84951129:- 87716441:-:923865429510:-:2765313:- 79489290:+:3325890178850:+:3325894127402:+ 79489290:+:3325890178850:-:3325814638114:- 79489290:-:3325890178850:+:3948554:- 79489290:-:3325890178850:-:75540738:- 34069135:+:49606251013001:+:49606251510671:+ 34069135:+:49606251013001:-:49606217441537:- 34069135:-:49606251013001:+:497671:- 34069135:-:49606251013001:-:33571465:- 13359433:+:429932013208452:+:429932013411277:+ 13359433:+:429932013208452:-:429932000051843:- 13359433:-:429932013208452:+:202825:- 13359433:-:429932013208452:-:13156609:- 30534879:+:4680203429445998:+:4680203447299583:+ 30534879:+:4680203429445998:-:4680203416764705:- 30534879:-:4680203429445998:+:17853585:- 30534879:-:4680203429445998:-:12681293:- 38514619:+:97209504449267833:+:97209504482963451:+ 38514619:+:97209504449267833:-:97209504444448833:- 38514619:-:97209504449267833:+:33695619:- 38514619:-:97209504449267833:-:4819001:- 79474309:+:231932191483150749:+:231932191494172573:+ 79474309:+:231932191483150749:-:231932191414698265:- 79474309:-:231932191483150749:+:11021825:- 79474309:-:231932191483150749:-:68452485:- 29225296:+:4452959506800560020:+:4452959506829146068:+ 29225296:+:4452959506800560020:-:4452959506799920772:- 29225296:-:4452959506800560020:+:28586060:- 29225296:-:4452959506800560020:-:639236:- 17112908:+:29466439402507501547:+:29466439402524606447:+ 17112908:+:29466439402507501547:-:29466439402507493539:- 17112908:-:29466439402507501547:+:17104897:- 17112908:-:29466439402507501547:-:8011:- 762222305:+:39:+:762222311:+ 762222305:+:39:-:7:- 762222305:-:39:+:762222273:- 762222305:-:39:-:33:- 100954879:+:731:+:100954879:+ 100954879:+:731:-:1:- 100954879:-:731:+:100954149:- 100954879:-:731:-:731:- 819313319:+:9301:+:819314423:+ 819313319:+:9301:-:1105:- 819313319:-:9301:+:819305123:- 819313319:-:9301:-:8197:- 968820257:+:54786:+:968873507:+ 968820257:+:54786:-:53249:- 968820257:-:54786:+:968818721:- 968820257:-:54786:-:1537:- 156232502:+:945188:+:156233526:+ 156232502:+:945188:-:1026:- 156232502:-:945188:+:155288338:- 156232502:-:945188:-:944162:- 898901661:+:2222935:+:901115871:+ 898901661:+:2222935:-:2214211:- 898901661:-:2222935:+:898892937:- 898901661:-:2222935:-:8725:- 250467244:+:26551295:+:268301311:+ 250467244:+:26551295:-:17834067:- 250467244:-:26551295:+:241750017:- 250467244:-:26551295:-:8717227:- 718898596:+:624254413:+:805166573:+ 718898596:+:624254413:-:86267977:- 718898596:-:624254413:+:180912163:- 718898596:-:624254413:-:537986433:- 287675282:+:2186270599:+:2473580439:+ 287675282:+:2186270599:-:2185905157:- 287675282:-:2186270599:+:287309841:- 287675282:-:2186270599:-:365441:- 589802279:+:27033847011:+:27572826087:+ 589802279:+:27033847011:-:26983023809:- 589802279:-:27033847011:+:538979077:- 589802279:-:27033847011:-:50823203:- 920527000:+:269189805767:+:269492319967:+ 920527000:+:269189805767:-:268571792967:- 920527000:-:269189805767:+:302514193:- 920527000:-:269189805767:-:618012807:- 398973091:+:6722540993233:+:6722562292467:+ 398973091:+:6722540993233:-:6722163319377:- 398973091:-:6722540993233:+:21299235:- 398973091:-:6722540993233:-:377673857:- 747829145:+:79837868032386:+:79838070437787:+ 747829145:+:79837868032386:-:79837322608641:- 747829145:-:79837868032386:+:202405401:- 747829145:-:79837868032386:-:545423745:- 845871079:+:332462225465319:+:332462529708007:+ 845871079:+:332462225465319:-:332461683836929:- 845871079:-:332462225465319:+:304242689:- 845871079:-:332462225465319:-:541628391:- 326002031:+:3298597957811153:+:3298598232948735:+ 326002031:+:3298597957811153:-:3298597906946705:- 326002031:-:3298597957811153:+:275137583:- 326002031:-:3298597957811153:-:50864449:- 551000799:+:36335802913310970:+:36335802922818303:+ 551000799:+:36335802913310970:-:36335802371817505:- 551000799:-:36335802913310970:+:9507333:- 551000799:-:36335802913310970:-:541493465:- 110402764:+:832949447327784794:+:832949447394893790:+ 110402764:+:832949447327784794:-:832949447284491026:- 110402764:-:832949447327784794:+:67108994:- 110402764:-:832949447327784794:-:43293770:- 267663233:+:8393270886714933206:+:8393270886810353623:+ 267663233:+:8393270886714933206:-:8393270886542690389:- 267663233:-:8393270886714933206:+:95420417:- 267663233:-:8393270886714933206:-:172242817:- 458666413:+:32773882170797369062:+:32773882170849015791:+ 458666413:+:32773882170797369062:-:32773882170390349377:- 458666413:-:32773882170797369062:+:51646729:- 458666413:-:32773882170797369062:-:407019685:- 8054776485:+:30:+:8054776511:+ 8054776485:+:30:-:25:- 8054776485:-:30:+:8054776481:- 8054776485:-:30:-:5:- 8551240393:+:252:+:8551240445:+ 8551240393:+:252:-:51:- 8551240393:-:252:+:8551240193:- 8551240393:-:252:-:201:- 3193273530:+:7739:+:3193274043:+ 3193273530:+:7739:-:513:- 3193273530:-:7739:+:3193266305:- 3193273530:-:7739:-:7225:- 6311517475:+:29174:+:6311542263:+ 6311517475:+:29174:-:24789:- 6311517475:-:29174:+:6311513089:- 6311517475:-:29174:-:4385:- 7915391503:+:456492:+:7915700015:+ 7915391503:+:456492:-:308513:- 7915391503:-:456492:+:7915243523:- 7915391503:-:456492:-:147979:- 2634336996:+:8496388:+:2642800612:+ 2634336996:+:8496388:-:8463620:- 2634336996:-:8496388:+:2634304228:- 2634336996:-:8496388:-:32772:- 1904743939:+:45117254:+:1941471047:+ 1904743939:+:45117254:-:36727109:- 1904743939:-:45117254:+:1896353793:- 1904743939:-:45117254:-:8390145:- 3034716422:+:354067805:+:3053108575:+ 3034716422:+:354067805:-:18392153:- 3034716422:-:354067805:+:2699040769:- 3034716422:-:354067805:-:335675653:- 3519404060:+:2063161437:+:4227717213:+ 3519404060:+:2063161437:-:708313153:- 3519404060:-:2063161437:+:2164555779:- 3519404060:-:2063161437:-:1354848281:- 3926627913:+:77066115266:+:77233888971:+ 3926627913:+:77066115266:-:73307261057:- 3926627913:-:77066115266:+:167773705:- 3926627913:-:77066115266:-:3758854209:- 6871562664:+:676852894082:+:676987124138:+ 6871562664:+:676852894082:-:670115561474:- 6871562664:-:676852894082:+:134230054:- 6871562664:-:676852894082:-:6737332610:- 1500789494:+:9935141017352:+:9936373104638:+ 1500789494:+:9935141017352:-:9934872315138:- 1500789494:-:9935141017352:+:1232087286:- 1500789494:-:9935141017352:-:268702214:- 2549879950:+:84006310287240:+:84008486344590:+ 2549879950:+:84006310287240:-:84005936464642:- 2549879950:-:84006310287240:+:2176057350:- 2549879950:-:84006310287240:-:373822598:- 1760531073:+:490932607529364:+:490933819782037:+ 1760531073:+:490932607529364:-:490932059250963:- 1760531073:-:490932607529364:+:1212252673:- 1760531073:-:490932607529364:-:548278401:- 2595080305:+:5930746342264214:+:5930748523564535:+ 2595080305:+:5930746342264214:-:5930745928484229:- 2595080305:-:5930746342264214:+:2181300321:- 2595080305:-:5930746342264214:-:413779985:- 6566104117:+:32143248762986023:+:32143250961718839:+ 6566104117:+:32143248762986023:-:32143244395614723:- 6566104117:-:32143248762986023:+:2198732817:- 6566104117:-:32143248762986023:-:4367371301:- 7848039402:+:166041872022839560:+:166041872291574762:+ 7848039402:+:166041872022839560:-:166041864443535366:- 7848039402:-:166041872022839560:+:268735202:- 7848039402:-:166041872022839560:-:7579304194:- 6931857944:+:6804504586043747215:+:6804504590809033631:+ 6931857944:+:6804504586043747215:-:6804504583877175687:- 6931857944:-:6804504586043747215:+:4765286417:- 6931857944:-:6804504586043747215:-:2166571527:- 1134412882:+:28742027143008778555:+:28742027144083668347:+ 1134412882:+:28742027143008778555:-:28742027142949255465:- 1134412882:-:28742027143008778555:+:1074889793:- 1134412882:-:28742027143008778555:-:59523089:- 23898234180:+:70:+:23898234182:+ 23898234180:+:70:-:2:- 23898234180:-:70:+:23898234114:- 23898234180:-:70:-:66:- 59592753896:+:922:+:59592754170:+ 59592753896:+:922:-:274:- 59592753896:-:922:+:59592753254:- 59592753896:-:922:-:642:- 77923451271:+:7097:+:77923457983:+ 77923451271:+:7097:-:6713:- 77923451271:-:7097:+:77923450887:- 77923451271:-:7097:-:385:- 35849996275:+:81271:+:35850010615:+ 35849996275:+:81271:-:14341:- 35849996275:-:81271:+:35849929345:- 35849996275:-:81271:-:66931:- 86538976408:+:239182:+:86538976990:+ 86538976408:+:239182:-:582:- 86538976408:-:239182:+:86538737810:- 86538976408:-:239182:-:238598:- 71713408018:+:4854272:+:71713936914:+ 71713408018:+:4854272:-:528878:- 71713408018:-:4854272:+:71709082642:- 71713408018:-:4854272:-:4325394:- 19602353267:+:69858713:+:19670105595:+ 19602353267:+:69858713:-:67752329:- 19602353267:-:69858713:+:19600246883:- 19602353267:-:69858713:-:2106385:- 33320625257:+:216654199:+:33537254783:+ 33320625257:+:216654199:-:216629527:- 33320625257:-:216654199:+:33320600585:- 33320625257:-:216654199:-:24673:- 66729635962:+:8411915988:+:68675958526:+ 66729635962:+:8411915988:-:1946322562:- 66729635962:-:8411915988:+:60264042538:- 66729635962:-:8411915988:-:6465593426:- 63170871859:+:94328443838:+:137295287231:+ 63170871859:+:94328443838:-:74124415373:- 63170871859:-:94328443838:+:42966843393:- 63170871859:-:94328443838:-:20204028465:- 86651750817:+:116825360872:+:134215485929:+ 86651750817:+:116825360872:-:47563735111:- 86651750817:-:116825360872:+:17390125057:- 86651750817:-:116825360872:-:69261625761:- 96381494087:+:8648161708232:+:8658634927055:+ 96381494087:+:8648161708232:-:8562253432961:- 96381494087:-:8648161708232:+:10473218823:- 96381494087:-:8648161708232:-:85908275271:- 49194218776:+:80360391178032:+:80399585113912:+ 49194218776:+:80360391178032:-:80350390895144:- 49194218776:-:80360391178032:+:39193935880:- 49194218776:-:80360391178032:-:10000282888:- 94593012707:+:527613970797525:+:527622629938167:+ 94593012707:+:527613970797525:-:527528036925461:- 94593012707:-:527613970797525:+:8659140643:- 94593012707:-:527613970797525:-:85933872065:- 82928893362:+:5745899137124739:+:5745907894844851:+ 82928893362:+:5745899137124739:-:5745824965951489:- 82928893362:-:5745899137124739:+:8757720113:- 82928893362:-:5745899137124739:-:74171173249:- 47958439928:+:30326965876390091:+:30327004573204475:+ 47958439928:+:30326965876390091:-:30326956614764547:- 47958439928:-:30326965876390091:+:38696814389:- 47958439928:-:30326965876390091:-:9261625539:- 59430600193:+:464276835840720818:+:464276893055516595:+ 59430600193:+:464276835840720818:-:464276833624916401:- 59430600193:-:464276835840720818:+:57214795777:- 59430600193:-:464276835840720818:-:2215804417:- 51651239156:+:2470189995271954146:+:2470190029699276534:+ 51651239156:+:2470189995271954146:-:2470189978048037378:- 51651239156:-:2470189995271954146:+:34427322386:- 51651239156:-:2470189995271954146:-:17223916770:- 50280210995:+:43215563622842608082:+:43215563663983225843:+ 50280210995:+:43215563622842608082:-:43215563613703014849:- 50280210995:-:43215563622842608082:+:41140617761:- 50280210995:-:43215563622842608082:-:9139593233:- 154382542712:+:57:+:154382542713:+ 154382542712:+:57:-:1:- 154382542712:-:57:+:154382542663:- 154382542712:-:57:-:49:- 356154326276:+:561:+:356154326837:+ 356154326276:+:561:-:561:- 356154326276:-:561:+:356154326275:- 356154326276:-:561:-:1:- 482504130872:+:3410:+:482504134010:+ 482504130872:+:3410:-:3138:- 482504130872:-:3410:+:482504130598:- 482504130872:-:3410:-:274:- 108189441451:+:46238:+:108189449663:+ 108189441451:+:46238:-:8213:- 108189441451:-:46238:+:108189403425:- 108189441451:-:46238:-:38025:- 441464992277:+:834309:+:441465027349:+ 441464992277:+:834309:-:35073:- 441464992277:-:834309:+:441464193041:- 441464992277:-:834309:-:799237:- 117137585018:+:9245026:+:117138371450:+ 117137585018:+:9245026:-:786434:- 117137585018:-:9245026:+:117129126426:- 117137585018:-:9245026:-:8458594:- 194853823688:+:51295577:+:194871555545:+ 194853823688:+:51295577:-:17731857:- 194853823688:-:51295577:+:194820259975:- 194853823688:-:51295577:-:33563713:- 118902429590:+:883706786:+:119180058550:+ 118902429590:+:883706786:-:277628962:- 118902429590:-:883706786:+:118296351766:- 118902429590:-:883706786:-:606077826:- 240963721494:+:7318762472:+:248013388798:+ 240963721494:+:7318762472:-:7049667298:- 240963721494:-:7318762472:+:240694626326:- 240963721494:-:7318762472:-:269095174:- 420567205596:+:49912748568:+:463852953308:+ 420567205596:+:49912748568:-:43285747716:- 420567205596:-:49912748568:+:413940204740:- 420567205596:-:49912748568:-:6627000852:- 837952645552:+:803071668669:+:1082262534589:+ 837952645552:+:803071668669:-:244309889037:- 837952645552:-:803071668669:+:279190865923:- 837952645552:-:803071668669:-:558761779629:- 480480924599:+:1032584684080:+:1099494323127:+ 480480924599:+:1032584684080:-:619013398537:- 480480924599:-:1032584684080:+:66909639047:- 480480924599:-:1032584684080:-:413571285543:- 998281145505:+:31775419112908:+:31810384952813:+ 998281145505:+:31775419112908:-:30812103807307:- 998281145505:-:31775419112908:+:34965839905:- 998281145505:-:31775419112908:-:963315305601:- 260198322062:+:886530214113775:+:886755985194991:+ 260198322062:+:886530214113775:-:886495786872929:- 260198322062:-:886530214113775:+:225771081217:- 260198322062:-:886530214113775:-:34427240845:- 474434310833:+:7305904556489881:+:7306179470376633:+ 474434310833:+:7305904556489881:-:7305705036065801:- 474434310833:-:7305904556489881:+:274913886753:- 474434310833:-:7305904556489881:-:199520424081:- 107794203581:+:36480695985894162:+:36480696254854079:+ 107794203581:+:36480695985894162:-:36480588460650497:- 107794203581:-:36480695985894162:+:268959917:- 107794203581:-:36480695985894162:-:107525243665:- 798892888429:+:359026954336146125:+:359027650120848365:+ 798892888429:+:359026954336146125:-:359026851227959937:- 798892888429:-:359026954336146125:+:695784702241:- 798892888429:-:359026954336146125:-:103108186189:- 979147316437:+:1006612438347416181:+:1006612722109538037:+ 979147316437:+:1006612438347416181:-:1006611742962221601:- 979147316437:-:1006612438347416181:+:283762121857:- 979147316437:-:1006612438347416181:-:695385194581:- 811517989415:+:82750415509231882379:+:82750416077509743279:+ 811517989415:+:82750415509231882379:-:82750415265991753865:- 811517989415:-:82750415509231882379:+:568277860901:- 811517989415:-:82750415509231882379:-:243240128515:- 4603865358508:+:65:+:4603865358573:+ 4603865358508:+:65:-:65:- 4603865358508:-:65:+:4603865358507:- 4603865358508:-:65:-:1:- 5845243883393:+:100:+:5845243883493:+ 5845243883393:+:100:-:99:- 5845243883393:-:100:+:5845243883393:- 5845243883393:-:100:-:1:- 6225862316884:+:7703:+:6225862319959:+ 6225862316884:+:7703:-:3075:- 6225862316884:-:7703:+:6225862312257:- 6225862316884:-:7703:-:4627:- 2102779827715:+:97790:+:2102779838463:+ 2102779827715:+:97790:-:10749:- 2102779827715:-:97790:+:2102779740673:- 2102779827715:-:97790:-:87041:- 4596808913509:+:397613:+:4596809306989:+ 4596808913509:+:397613:-:393481:- 4596808913509:-:397613:+:4596808909377:- 4596808913509:-:397613:-:4133:- 9209996912933:+:2204466:+:9209999108919:+ 9209996912933:+:2204466:-:2195985:- 9209996912933:-:2204466:+:9209996904453:- 9209996912933:-:2204466:-:8481:- 9744460869078:+:80548948:+:9744474308054:+ 9744460869078:+:80548948:-:13438978:- 9744460869078:-:80548948:+:9744393759106:- 9744460869078:-:80548948:-:67109970:- 6678383066361:+:161509515:+:6678399843579:+ 6678383066361:+:161509515:-:16777219:- 6678383066361:-:161509515:+:6678238334065:- 6678383066361:-:161509515:-:144732297:- 5208075731618:+:7125188007:+:5212910763943:+ 5208075731618:+:7125188007:-:4835032325:- 5208075731618:-:7125188007:+:5205785575937:- 5208075731618:-:7125188007:-:2290155681:- 6571596911850:+:69713116357:+:6572302122223:+ 6571596911850:+:69713116357:-:705210373:- 6571596911850:-:69713116357:+:6502589005865:- 6571596911850:-:69713116357:-:69007905985:- 8581553796503:+:995642390854:+:8726786293207:+ 8581553796503:+:995642390854:-:145232496705:- 8581553796503:-:995642390854:+:7731143902353:- 8581553796503:-:995642390854:-:850409894149:- 7218174860276:+:7287697409799:+:7356687556599:+ 7218174860276:+:7287697409799:-:138512696323:- 7218174860276:-:7287697409799:+:68990146801:- 7218174860276:-:7287697409799:-:7149184713475:- 1181455494661:+:38350206045670:+:39527095513063:+ 1181455494661:+:38350206045670:-:38345640018401:- 1181455494661:-:38350206045670:+:1176889467393:- 1181455494661:-:38350206045670:-:4566027269:- 7548076509858:+:702378876897551:+:702448335309743:+ 7548076509858:+:702378876897551:-:694900258799885:- 7548076509858:-:702378876897551:+:69458412193:- 7548076509858:-:702378876897551:-:7478618097665:- 7026220437404:+:2387310036456123:+:2391987277766591:+ 7026220437404:+:2387310036456123:-:2384961057329187:- 7026220437404:-:2387310036456123:+:4677241310465:- 7026220437404:-:2387310036456123:-:2348979126939:- 6033243354885:+:99813612476965620:+:99818062465972213:+ 6033243354885:+:99813612476965620:-:99812029222617331:- 6033243354885:-:99813612476965620:+:4449989006593:- 6033243354885:-:99813612476965620:-:1583254348289:- 1998692235599:+:657528446603034184:+:657529889880014671:+ 1998692235599:+:657528446603034184:-:657527891187779073:- 1998692235599:-:657528446603034184:+:1443276980487:- 1998692235599:-:657528446603034184:-:555415255111:- 3349552716252:+:6192696912572626160:+:6192699128245321212:+ 3349552716252:+:6192696912572626160:-:6192695778692604964:- 3349552716252:-:6192696912572626160:+:2215672695052:- 3349552716252:-:6192696912572626160:-:1133880021196:- 7134748768988:+:92274090409374771527:+:92274092785030659039:+ 7134748768988:+:92274090409374771527:-:92274085650281890051:- 7134748768988:-:92274090409374771527:+:2375655887513:- 7134748768988:-:92274090409374771527:-:4759092881475:- 15085144087421:+:47:+:15085144087423:+ 15085144087421:+:47:-:3:- 15085144087421:-:47:+:15085144087377:- 15085144087421:-:47:-:45:- 15574668968683:+:919:+:15574668968959:+ 15574668968683:+:919:-:277:- 15574668968683:-:919:+:15574668968041:- 15574668968683:-:919:-:643:- 73993948649022:+:6565:+:73993948651455:+ 73993948649022:+:6565:-:2433:- 73993948649022:-:6565:+:73993948644889:- 73993948649022:-:6565:-:4133:- 73800341229063:+:20095:+:73800341245567:+ 73800341229063:+:20095:-:16505:- 73800341229063:-:20095:+:73800341225473:- 73800341229063:-:20095:-:3591:- 47391850131085:+:742965:+:47391850856125:+ 47391850131085:+:742965:-:725041:- 47391850131085:-:742965:+:47391850113161:- 47391850131085:-:742965:-:17925:- 75704142398528:+:3409961:+:75704145546345:+ 75704142398528:+:3409961:-:3147817:- 75704142398528:-:3409961:+:75704142136343:- 75704142398528:-:3409961:-:262185:- 62387403124291:+:94886636:+:62387481214703:+ 62387403124291:+:94886636:-:78090409:- 62387403124291:-:94886636:+:62387386328067:- 62387403124291:-:94886636:-:16796227:- 77481190180069:+:102539605:+:77481191007733:+ 77481190180069:+:102539605:-:827665:- 77481190180069:-:102539605:+:77481088468129:- 77481190180069:-:102539605:-:101711941:- 79477401435624:+:3554802568:+:79477697150952:+ 79477401435624:+:3554802568:-:295715336:- 79477401435624:-:3554802568:+:79474142348392:- 79477401435624:-:3554802568:-:3259087240:- 39634977849610:+:73363568565:+:39707992897471:+ 39634977849610:+:73363568565:-:73015047861:- 39634977849610:-:73363568565:+:39634629328905:- 39634977849610:-:73363568565:-:348520705:- 17440475042022:+:254091319594:+:17590799161838:+ 17440475042022:+:254091319594:-:150324119818:- 17440475042022:-:254091319594:+:17336707842246:- 17440475042022:-:254091319594:-:103767199778:- 54932911474177:+:2371269655906:+:57166462451555:+ 54932911474177:+:2371269655906:-:2233550977377:- 54932911474177:-:2371269655906:+:54795192795649:- 54932911474177:-:2371269655906:-:137718678529:- 97509651385985:+:19003811301013:+:98886243716757:+ 97509651385985:+:19003811301013:-:1376592330773:- 97509651385985:-:19003811301013:+:79882432415745:- 97509651385985:-:19003811301013:-:17627218970241:- 93484381391683:+:599369163666402:+:691728229006307:+ 93484381391683:+:599369163666402:-:598243847614625:- 93484381391683:-:599369163666402:+:92359065339905:- 93484381391683:-:599369163666402:-:1125316051777:- 83915076087252:+:6944850168907514:+:7015296223096830:+ 83915076087252:+:6944850168907514:-:6931381147009578:- 83915076087252:-:6944850168907514:+:70446054189314:- 83915076087252:-:6944850168907514:-:13469021897938:- 50415959590541:+:12534660349634258:+:12576211479684831:+ 50415959590541:+:12534660349634258:-:12525795520094289:- 50415959590541:-:12534660349634258:+:41551130050573:- 50415959590541:-:12534660349634258:-:8864829539969:- 38581608889422:+:104199612691709158:+:104202911680036078:+ 38581608889422:+:104199612691709158:-:104164330071146658:- 38581608889422:-:104199612691709158:+:3298988326922:- 38581608889422:-:104199612691709158:-:35282620562502:- 75625183460747:+:7428594588827011441:+:7428669923896753659:+ 75625183460747:+:7428594588827011441:-:7428594298713292913:- 75625183460747:-:7428594588827011441:+:75335069742219:- 75625183460747:-:7428594588827011441:-:290113718529:- 52178266427365:+:35836596399139889621:+:35836602377768513525:+ 52178266427365:+:35836596399139889621:-:35836550199502086161:- 52178266427365:-:35836596399139889621:+:5978628623905:- 52178266427365:-:35836596399139889621:-:46199637803461:- 632845193390516:+:85:+:632845193390581:+ 632845193390516:+:85:-:65:- 632845193390516:-:85:+:632845193390499:- 632845193390516:-:85:-:17:- 588674397439978:+:888:+:588674397439994:+ 588674397439978:+:888:-:22:- 588674397439978:-:888:+:588674397439106:- 588674397439978:-:888:-:866:- 215703342329038:+:4840:+:215703342333678:+ 215703342329038:+:4840:-:4642:- 215703342329038:-:4840:+:215703342328838:- 215703342329038:-:4840:-:198:- 525998023584884:+:10864:+:525998023585396:+ 525998023584884:+:10864:-:524:- 525998023584884:-:10864:+:525998023574532:- 525998023584884:-:10864:-:10340:- 357197966478753:+:772219:+:357197966724603:+ 357197966478753:+:772219:-:245851:- 357197966478753:-:772219:+:357197965952385:- 357197966478753:-:772219:-:526369:- 564506054223289:+:3067188:+:564506056977853:+ 564506054223289:+:3067188:-:2754563:- 564506054223289:-:3067188:+:564506053910665:- 564506054223289:-:3067188:-:312625:- 997947613218020:+:10649013:+:997947613380085:+ 997947613218020:+:10649013:-:162065:- 997947613218020:-:10649013:+:997947602731075:- 997947613218020:-:10649013:-:10486945:- 618571557176225:+:265296750:+:618571658894319:+ 618571557176225:+:265296750:-:101718093:- 618571557176225:-:265296750:+:618571393597569:- 618571557176225:-:265296750:-:163578657:- 731742107085461:+:4180679573:+:731742125964181:+ 731742107085461:+:4180679573:-:18878721:- 731742107085461:-:4180679573:+:731737945284609:- 731742107085461:-:4180679573:-:4161800853:- 202409795683103:+:97729552382:+:202413017047039:+ 202409795683103:+:97729552382:-:3221363937:- 202409795683103:-:97729552382:+:202315287494657:- 202409795683103:-:97729552382:-:94508188445:- 296004168759641:+:177242915751:+:296042831870975:+ 296004168759641:+:177242915751:-:38663111335:- 296004168759641:-:177242915751:+:295865588955225:- 296004168759641:-:177242915751:-:138579804417:- 382513605724173:+:5013013472906:+:386959104503439:+ 382513605724173:+:5013013472906:-:4445498779265:- 382513605724173:-:5013013472906:+:381946091030533:- 382513605724173:-:5013013472906:-:567514693641:- 191442027158899:+:65440672132589:+:210683614871039:+ 191442027158899:+:65440672132589:-:19241587712141:- 191442027158899:-:65440672132589:+:145242942738451:- 191442027158899:-:65440672132589:-:46199084420449:- 851455080264668:+:192175891900218:+:1036757858383870:+ 851455080264668:+:192175891900218:-:185302778119202:- 851455080264668:-:192175891900218:+:844581966483650:- 851455080264668:-:192175891900218:-:6873113781018:- 193090804128457:+:4592808148053770:+:4784797560848331:+ 193090804128457:+:4592808148053770:-:4591706756719873:- 193090804128457:-:4592808148053770:+:191989412794561:- 193090804128457:-:4592808148053770:-:1101391333897:- 391512183928499:+:90147009853759876:+:90463686516668343:+ 391512183928499:+:90147009853759876:-:90072174332739841:- 391512183928499:-:90147009853759876:+:316676662908467:- 391512183928499:-:90147009853759876:-:74835521020035:- 959274246840659:+:411432033477538833:+:412074372950242643:+ 959274246840659:+:411432033477538833:-:411115098703401985:- 959274246840659:-:411432033477538833:+:642339472703811:- 959274246840659:-:411432033477538833:-:316934774136849:- 372931516889310:+:8182463838706309711:+:8182464035235035871:+ 372931516889310:+:8182463838706309711:-:8182091103718146561:- 372931516889310:-:8182463838706309711:+:196528726161:- 372931516889310:-:8182463838706309711:-:372734988163149:- 134126035989497:+:79410104683437259175:+:79410140437532310527:+ 134126035989497:+:79410104683437259175:-:79410006311496321031:- 134126035989497:-:79410104683437259175:+:35754095051353:- 134126035989497:-:79410104683437259175:-:98371940938145:- 8542678226405686:+:43:+:8542678226405695:+ 8542678226405686:+:43:-:9:- 8542678226405686:-:43:+:8542678226405653:- 8542678226405686:-:43:-:33:- 5947652548886090:+:525:+:5947652548886095:+ 5947652548886090:+:525:-:5:- 5947652548886090:-:525:+:5947652548885569:- 5947652548886090:-:525:-:521:- 6056046552945740:+:5525:+:6056046552946141:+ 6056046552945740:+:5525:-:401:- 6056046552945740:-:5525:+:6056046552940619:- 6056046552945740:-:5525:-:5121:- 3068518777952373:+:39153:+:3068518777985269:+ 3068518777952373:+:39153:-:32897:- 3068518777952373:-:39153:+:3068518777946117:- 3068518777952373:-:39153:-:6257:- 1193824351728824:+:522055:+:1193824352204799:+ 1193824351728824:+:522055:-:475975:- 1193824351728824:-:522055:+:1193824351682737:- 1193824351728824:-:522055:-:46087:- 7656605999303390:+:5293829:+:7656606000402399:+ 7656605999303390:+:5293829:-:1099009:- 7656605999303390:-:5293829:+:7656605995108569:- 7656605999303390:-:5293829:-:4194821:- 3161442308872267:+:18052393:+:3161442310126955:+ 3161442308872267:+:18052393:-:1254689:- 3161442308872267:-:18052393:+:3161442292074563:- 3161442308872267:-:18052393:-:16797705:- 6931165138883836:+:373109746:+:6931165474699262:+ 6931165138883836:+:373109746:-:335815426:- 6931165138883836:-:373109746:+:6931165101589514:- 6931165138883836:-:373109746:-:37294322:- 4843291942190063:+:7788788011:+:4843296509656047:+ 4843291942190063:+:7788788011:-:4567465985:- 4843291942190063:-:7788788011:+:4843288720868037:- 4843291942190063:-:7788788011:-:3221322027:- 7630872164553776:+:80279235963:+:7630881039842683:+ 7630872164553776:+:80279235963:-:8875288907:- 7630872164553776:-:80279235963:+:7630800760606725:- 7630872164553776:-:80279235963:-:71403947051:- 8950315703861750:+:112384642734:+:8950419496472574:+ 8950315703861750:+:112384642734:-:103792610826:- 8950315703861750:-:112384642734:+:8950307111829842:- 8950315703861750:-:112384642734:-:8592031910:- 5768967682041666:+:6261100721969:+:5770211117479795:+ 5768967682041666:+:6261100721969:-:1243435438129:- 5768967682041666:-:6261100721969:+:5763950016757825:- 5768967682041666:-:6261100721969:-:5017665283841:- 7206131364245186:+:56633516286491:+:7243523359239899:+ 7206131364245186:+:56633516286491:-:37391994994713:- 7206131364245186:-:56633516286491:+:7186889842953409:- 7206131364245186:-:56633516286491:-:19241521291777:- 1683178112441882:+:799098835932647:+:2250528293511167:+ 1683178112441882:+:799098835932647:-:567350181069285:- 1683178112441882:-:799098835932647:+:1451429457578521:- 1683178112441882:-:799098835932647:-:231748654863361:- 2319388124454516:+:1008736947274883:+:3304552122752759:+ 2319388124454516:+:1008736947274883:-:985163998298243:- 2319388124454516:-:1008736947274883:+:2295815175477873:- 2319388124454516:-:1008736947274883:-:23572948976643:- 3156419459071072:+:86915962574274372:+:90071716304191332:+ 3156419459071072:+:86915962574274372:-:86915296845120260:- 3156419459071072:-:86915962574274372:+:3155753729916956:- 3156419459071072:-:86915962574274372:-:665729154116:- 2954945837156415:+:186400523234931515:+:188728739922541375:+ 2954945837156415:+:186400523234931515:-:185773794085384961:- 2954945837156415:-:186400523234931515:+:2328216687609861:- 2954945837156415:-:186400523234931515:-:626729149546555:- 5959406095982558:+:7330321251787603200:+:7331768244542373854:+ 5959406095982558:+:7330321251787603200:-:7325808838446391330:- 5959406095982558:-:7330321251787603200:+:1446992754770654:- 5959406095982558:-:7330321251787603200:-:4512413341211870:- 6825974099835247:+:92462617956370546980:+:92467191973083576687:+ 6825974099835247:+:92462617956370546980:-:92460365998983741441:- 6825974099835247:-:92462617956370546980:+:4574016713029707:- 6825974099835247:-:92462617956370546980:-:2251957386805539:- 75579741871135556:+:39:+:75579741871135591:+ 75579741871135556:+:39:-:35:- 75579741871135556:-:39:+:75579741871135553:- 75579741871135556:-:39:-:3:- 43619826077132323:+:388:+:43619826077132711:+ 43619826077132323:+:388:-:385:- 43619826077132323:-:388:+:43619826077132323:- 43619826077132323:-:388:-:3:- 40605130233069860:+:4745:+:40605130233074605:+ 40605130233069860:+:4745:-:4745:- 40605130233069860:-:4745:+:40605130233069859:- 40605130233069860:-:4745:-:1:- 24583342738244020:+:71238:+:24583342738315254:+ 24583342738244020:+:71238:-:71234:- 24583342738244020:-:71238:+:24583342738244018:- 24583342738244020:-:71238:-:2:- 44174935643462481:+:822930:+:44174935644282835:+ 44174935643462481:+:822930:-:820353:- 44174935643462481:-:822930:+:44174935643459905:- 44174935643462481:-:822930:-:2577:- 56366739628569046:+:2950257:+:56366739629094391:+ 56366739628569046:+:2950257:-:525345:- 56366739628569046:-:2950257:+:56366739626144133:- 56366739628569046:-:2950257:-:2424913:- 48433153736095224:+:70050123:+:48433153805579771:+ 48433153736095224:+:70050123:-:69484547:- 48433153736095224:-:70050123:+:48433153735529653:- 48433153736095224:-:70050123:-:565571:- 64834791054534311:+:209689587:+:64834791257669623:+ 64834791054534311:+:209689587:-:203135313:- 64834791054534311:-:209689587:+:64834791047980037:- 64834791054534311:-:209689587:-:6554275:- 80636483763609551:+:2284030668:+:80636485911158735:+ 80636483763609551:+:2284030668:-:2147549185:- 80636483763609551:-:2284030668:+:80636483627128067:- 80636483763609551:-:2284030668:-:136481483:- 56166939289322035:+:68734386437:+:56167008017285943:+ 56166939289322035:+:68734386437:-:68727963909:- 56166939289322035:-:68734386437:+:56166939282899507:- 56166939289322035:-:68734386437:-:6422529:- 10317789072460161:+:374065036299:+:10317814842490251:+ 10317789072460161:+:374065036299:-:25770030091:- 10317789072460161:-:374065036299:+:10317440777453953:- 10317789072460161:-:374065036299:-:348295006209:- 43980567232679336:+:3039492815247:+:43983591577730479:+ 43980567232679336:+:3039492815247:-:3024345051143:- 43980567232679336:-:3039492815247:+:43980552084915233:- 43980567232679336:-:3039492815247:-:15147764103:- 39352674258241031:+:10044304175108:+:39352822520608263:+ 39352674258241031:+:10044304175108:-:148262367233:- 39352674258241031:-:10044304175108:+:39342778216433155:- 39352674258241031:-:10044304175108:-:9896041807875:- 25622823690584215:+:774432323037424:+:25833951725381879:+ 25622823690584215:+:774432323037424:-:211128034797673:- 25622823690584215:-:774432323037424:+:25059519402344455:- 25622823690584215:-:774432323037424:-:563304288239751:- 65871238366851471:+:5230114684960184:+:70533443153264063:+ 65871238366851471:+:5230114684960184:-:4662204786412593:- 65871238366851471:-:5230114684960184:+:65303328468303879:- 65871238366851471:-:5230114684960184:-:567909898547591:- 81327755599176540:+:10235949533100224:+:82471806323129308:+ 81327755599176540:+:10235949533100224:-:1144050723952804:- 81327755599176540:-:10235949533100224:+:72235856790029084:- 81327755599176540:-:10235949533100224:-:9091898809147420:- 26665463076498691:+:730708970143564141:+:756604737397943663:+ 26665463076498691:+:730708970143564141:-:729939274321444973:- 26665463076498691:-:730708970143564141:+:25895767254379523:- 26665463076498691:-:730708970143564141:-:769695822119169:- 33921404672788600:+:5688103097778091902:+:5690496004766171006:+ 33921404672788600:+:5688103097778091902:-:5656574600093382406:- 33921404672788600:-:5688103097778091902:+:2392906988079106:- 33921404672788600:-:5688103097778091902:-:31528497684709494:- 10208297823700370:+:94701671264044647932:+:94701671418873710078:+ 10208297823700370:+:94701671264044647932:-:94691463121050009706:- 10208297823700370:-:94701671264044647932:+:154829062146:- 10208297823700370:-:94701671264044647932:-:10208142994638226:- 975296814894431694:+:26:+:975296814894431710:+ 975296814894431694:+:26:-:18:- 975296814894431694:-:26:+:975296814894431686:- 975296814894431694:-:26:-:10:- 626411061914371225:+:669:+:626411061914371741:+ 626411061914371225:+:669:-:517:- 626411061914371225:-:669:+:626411061914371073:- 626411061914371225:-:669:-:153:- 196786399275336775:+:8974:+:196786399275345743:+ 196786399275336775:+:8974:-:8969:- 196786399275336775:-:8974:+:196786399275336769:- 196786399275336775:-:8974:-:5:- 364776085804609851:+:53875:+:364776085804610427:+ 364776085804609851:+:53875:-:577:- 364776085804609851:-:53875:+:364776085804556553:- 364776085804609851:-:53875:-:53299:- 925236912927177604:+:132376:+:925236912927178652:+ 925236912927177604:+:132376:-:1044:- 925236912927177604:-:132376:+:925236912927046276:- 925236912927177604:-:132376:-:131332:- 851696184142194809:+:1035920:+:851696184142589689:+ 851696184142194809:+:1035920:-:394887:- 851696184142194809:-:1035920:+:851696184141553769:- 851696184142194809:-:1035920:-:641033:- 649061395921133830:+:89773089:+:649061395922285863:+ 649061395921133830:+:89773089:-:1152033:- 649061395921133830:-:89773089:+:649061395832512773:- 649061395921133830:-:89773089:-:88621057:- 302292782640272548:+:585353857:+:302292782648909477:+ 302292782640272548:+:585353857:-:8636929:- 302292782640272548:-:585353857:+:302292782063555619:- 302292782640272548:-:585353857:-:576716929:- 328176308188470662:+:5655992898:+:328176309263916998:+ 328176308188470662:+:5655992898:-:1075446338:- 328176308188470662:-:5655992898:+:328176303607924102:- 328176308188470662:-:5655992898:-:4580546562:- 986631108951246930:+:41078845894:+:986631150023735766:+ 986631108951246930:+:41078845894:-:41072488838:- 986631108951246930:-:41078845894:+:986631108944889874:- 986631108951246930:-:41078845894:-:6357058:- 114750485023514156:+:956031671585:+:114750530494783277:+ 114750485023514156:+:956031671585:-:45471269121:- 114750485023514156:-:956031671585:+:114749574463111691:- 114750485023514156:-:956031671585:-:910560402465:- 955063931822993558:+:7303445380974:+:955070666420060158:+ 955063931822993558:+:7303445380974:-:6734597066602:- 955063931822993558:-:7303445380974:+:955063362974679186:- 955063931822993558:-:7303445380974:-:568848314374:- 936075377646148894:+:27623769245203:+:936075407717211935:+ 936075377646148894:+:27623769245203:-:30071063041:- 936075377646148894:-:27623769245203:+:936047783947966733:- 936075377646148894:-:27623769245203:-:27593698182161:- 799510443253211238:+:630080892866706:+:800092137040294134:+ 799510443253211238:+:630080892866706:-:581693787082898:- 799510443253211238:-:630080892866706:+:799462056147427430:- 799510443253211238:-:630080892866706:-:48387105783810:- 941881156630762596:+:2877225715614877:+:944133025166251261:+ 941881156630762596:+:2877225715614877:-:2251868535488665:- 941881156630762596:-:2877225715614877:+:941255799450636387:- 941881156630762596:-:2877225715614877:-:625357180126209:- 174658646061546165:+:14672244678947081:+:179197705006349245:+ 174658646061546165:+:14672244678947081:-:4539058944803081:- 174658646061546165:-:14672244678947081:+:164525460327402165:- 174658646061546165:-:14672244678947081:-:10133185734144001:- 570234893421136232:+:781168578896644568:+:1152892639322229240:+ 570234893421136232:+:781168578896644568:-:582657745901093016:- 570234893421136232:-:781168578896644568:+:371724060425584680:- 570234893421136232:-:781168578896644568:-:198510832995551560:- 125011669302241302:+:4287928632822453136:+:4304853554492603286:+ 125011669302241302:+:4287928632822453136:-:4179841885190361994:- 125011669302241302:-:4287928632822453136:+:16924921670150150:- 125011669302241302:-:4287928632822453136:-:108086747632091142:- 841774925959036810:+:78397820956437500557:+:78398547826009177999:+ 841774925959036810:+:78397820956437500557:-:77556772900050141189:- 841774925959036810:-:78397820956437500557:+:726869571677441:- 841774925959036810:-:78397820956437500557:-:841048056387359369:- 8316587797567433983:+:79:+:8316587797567433983:+ 8316587797567433983:+:79:-:1:- 8316587797567433983:-:79:+:8316587797567433905:- 8316587797567433983:-:79:-:79:- 4624350144192599004:+:746:+:4624350144192599038:+ 4624350144192599004:+:746:-:34:- 4624350144192599004:-:746:+:4624350144192598290:- 4624350144192599004:-:746:-:714:- 5716767948714299992:+:5467:+:5716767948714301275:+ 5716767948714299992:+:5467:-:1283:- 5716767948714299992:-:5467:+:5716767948714295813:- 5716767948714299992:-:5467:-:4179:- 2754446044981643701:+:81295:+:2754446044981722559:+ 2754446044981643701:+:81295:-:78859:- 2754446044981643701:-:81295:+:2754446044981641265:- 2754446044981643701:-:81295:-:2437:- 4965673387806121692:+:295819:+:4965673387806416863:+ 4965673387806121692:+:295819:-:295171:- 4965673387806121692:-:295819:+:4965673387806121041:- 4965673387806121692:-:295819:-:651:- 4095191405157242851:+:4177116:+:4095191405159251967:+ 4095191405157242851:+:4177116:-:2009113:- 4095191405157242851:-:4177116:+:4095191405155074851:- 4095191405157242851:-:4177116:-:2168003:- 8198704225595265955:+:48919954:+:8198704225643657139:+ 8198704225595265955:+:48919954:-:48391185:- 8198704225595265955:-:48919954:+:8198704225594737185:- 8198704225595265955:-:48919954:-:528769:- 7922171655862390314:+:898485506:+:7922171656676429610:+ 7922171655862390314:+:898485506:-:814039298:- 7922171655862390314:-:898485506:+:7922171655777944106:- 7922171655862390314:-:898485506:-:84446210:- 3882374608332205778:+:7720903139:+:3882374612762472435:+ 3882374608332205778:+:7720903139:-:4430266657:- 3882374608332205778:-:7720903139:+:3882374605041569297:- 3882374608332205778:-:7720903139:-:3290636481:- 6613753811760338092:+:44421080485:+:6613753820386162093:+ 6613753811760338092:+:44421080485:-:8625824001:- 6613753811760338092:-:44421080485:+:6613753775965081611:- 6613753811760338092:-:44421080485:-:35795256481:- 9938713204602637878:+:468201982984:+:9938713672804421182:+ 9938713204602637878:+:468201982984:-:468201783298:- 9938713204602637878:-:468201982984:+:9938713204602438198:- 9938713204602637878:-:468201982984:-:199686:- 7131320861913544104:+:1050823425396:+:7131321362415943164:+ 7131320861913544104:+:1050823425396:-:500502399060:- 7131320861913544104:-:1050823425396:+:7131320311592517764:- 7131320861913544104:-:1050823425396:-:550321026340:- 5338586934577226989:+:43870342615875:+:5338595070590613487:+ 5338586934577226989:+:43870342615875:-:8136013386499:- 5338586934577226989:-:43870342615875:+:5338551200247997613:- 5338586934577226989:-:43870342615875:-:35734329229377:- 5847293668380798409:+:965212922739292:+:5847906384191848413:+ 5847293668380798409:+:965212922739292:-:612715811050003:- 5847293668380798409:-:965212922739292:+:5846941171269109121:- 5847293668380798409:-:965212922739292:-:352497111689289:- 3265178757461576563:+:3998384589925299:+:3269119408226593779:+ 3265178757461576563:+:3998384589925299:-:3940650765017217:- 3265178757461576563:-:3998384589925299:+:3265121023636668481:- 3265178757461576563:-:3998384589925299:-:57733824908083:- 3505803970070556689:+:10248972018404150:+:3505910897581095735:+ 3505803970070556689:+:10248972018404150:-:106927510539045:- 3505803970070556689:-:10248972018404150:+:3495661925562691585:- 3505803970070556689:-:10248972018404150:-:10142044507865105:- 5723901547839868045:+:225502227067686905:+:5723907131903430653:+ 5723901547839868045:+:225502227067686905:-:5584063562609:- 5723901547839868045:-:225502227067686905:+:5498404904835743749:- 5723901547839868045:-:225502227067686905:-:225496643004124297:- 4696689458747581670:+:2812941315194270161:+:7434879201527510519:+ 4696689458747581670:+:2812941315194270161:-:2738189742779928849:- 4696689458747581670:-:2812941315194270161:+:4621937886333240357:- 4696689458747581670:-:2812941315194270161:-:74751572414341313:- 9015592909291572459:+:18151007961371598414:+:18446134927052234479:+ 9015592909291572459:+:18151007961371598414:-:9430542017760662021:- 9015592909291572459:-:18151007961371598414:+:295126965680636065:- 9015592909291572459:-:18151007961371598414:-:8720465943610936393:- 94874544759299543129:+:54:+:94874544759299543167:+ 94874544759299543129:+:54:-:37:- 94874544759299543129:-:54:+:94874544759299543113:- 94874544759299543129:-:54:-:17:- 10819802417666475267:+:334:+:10819802417666475343:+ 10819802417666475267:+:334:-:77:- 10819802417666475267:-:334:+:10819802417666475009:- 10819802417666475267:-:334:-:257:- 34866378823591681828:+:2415:+:34866378823591681903:+ 34866378823591681828:+:2415:-:75:- 34866378823591681828:-:2415:+:34866378823591679489:- 34866378823591681828:-:2415:-:2339:- 47838549617028680750:+:79543:+:47838549617028759231:+ 47838549617028680750:+:79543:-:78481:- 47838549617028680750:-:79543:+:47838549617028679689:- 47838549617028680750:-:79543:-:1061:- 68788000228666419068:+:984025:+:68788000228667009021:+ 68788000228666419068:+:984025:-:589953:- 68788000228666419068:-:984025:+:68788000228666024995:- 68788000228666419068:-:984025:-:394073:- 36057589446171533315:+:3444994:+:36057589446172586243:+ 36057589446171533315:+:3444994:-:1052929:- 36057589446171533315:-:3444994:+:36057589446169141249:- 36057589446171533315:-:3444994:-:2392065:- 27169279968675519726:+:38695964:+:27169279968713538814:+ 27169279968675519726:+:38695964:-:38019090:- 27169279968675519726:-:38695964:+:27169279968674842850:- 27169279968675519726:-:38695964:-:676874:- 24671014453455184219:+:699743863:+:24671014454009102207:+ 24671014453455184219:+:699743863:-:553917989:- 24671014453455184219:-:699743863:+:24671014453309358345:- 24671014453455184219:-:699743863:-:145825875:- 72298725814522832547:+:7973098894:+:72298725819891578799:+ 72298725814522832547:+:7973098894:-:5368746253:- 72298725814522832547:-:7973098894:+:72298725811918479905:- 72298725814522832547:-:7973098894:-:2604352641:- 20178467141490284471:+:27151537019:+:20178467151456999423:+ 20178467141490284471:+:27151537019:-:9966714953:- 20178467141490284471:-:27151537019:+:20178467124305462405:- 20178467141490284471:-:27151537019:-:17184822067:- 66608429334636889853:+:957820396079:+:66608429665383081727:+ 66608429334636889853:+:957820396079:-:330746191875:- 66608429334636889853:-:957820396079:+:66608428707562685649:- 66608429334636889853:-:957820396079:-:627074204205:- 41498861994800016342:+:3177637288627:+:41498862969102236663:+ 41498861994800016342:+:3177637288627:-:974302220321:- 41498861994800016342:-:3177637288627:+:41498859791464948037:- 41498861994800016342:-:3177637288627:-:2203335068305:- 83173864110555969028:+:66033468344879:+:83173881713833852463:+ 83173864110555969028:+:66033468344879:-:17603277883435:- 83173864110555969028:-:66033468344879:+:83173815680365507585:- 83173864110555969028:-:66033468344879:-:48430190461443:- 33027098407412709633:+:804512735553266:+:33027107972309188595:+ 33027098407412709633:+:804512735553266:-:9564896478961:- 33027098407412709633:-:804512735553266:+:33026303459573635329:- 33027098407412709633:-:804512735553266:-:794947839074305:- 80380748841065113305:+:3203705000193771:+:80383599602790821627:+ 80380748841065113305:+:3203705000193771:-:2850761725708323:- 80380748841065113305:-:3203705000193771:+:80380395897790627857:- 80380748841065113305:-:3203705000193771:-:352943274485449:- 32606353941715521256:+:67096530867690263:+:32637410541129670655:+ 32606353941715521256:+:67096530867690263:-:31056599414149399:- 32606353941715521256:-:67096530867690263:+:32570314010261980385:- 32606353941715521256:-:67096530867690263:-:36039931453540871:- 85266635061479135069:+:538394078810660310:+:85280148112680083423:+ 85266635061479135069:+:538394078810660310:-:13513051200948353:- 85266635061479135069:-:538394078810660310:+:84741754033869423113:- 85266635061479135069:-:538394078810660310:-:524881027609711957:- 41743706356804331966:+:6493253389832642934:+:43477733002908002814:+ 41743706356804331966:+:6493253389832642934:-:1734026646103670850:- 41743706356804331966:-:6493253389832642934:+:36984479613075359882:- 41743706356804331966:-:6493253389832642934:-:4759226743728972086:- 47786820211044598851:+:91521247247257357826:+:128495838135758736963:+ 47786820211044598851:+:91521247247257357826:-:80709017924714138113:- 47786820211044598851:-:91521247247257357826:+:36974590888501379137:- 47786820211044598851:-:91521247247257357826:-:10812229322543219713:- Math-BigInt-2.005003/xt/author/lib-bitwise-_sor.t0000644403072340010010000000652514536617520021251 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 69001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_and'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $in3, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_sor(\$x, "$in1", \$y, "$in3");|; eval $test; is($@, "", "'$test' gives emtpy \$\@"); cmp_ok(scalar @got, '==', 2, "'$test' gives two output args"); # First output arg. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' first output arg is not the third input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); if ($strx eq $in0 || $strx eq $out0) { pass("'$test' first input value is unmodified or equal" . " to the output value"); } else { fail("'$test' first input value is unmodified or equal" . " to the output value"); diag(" got: '", $strx, "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (first output value)"); } } # Second output arg. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); # Other tests. is(ref($y), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($y), $in2, "'$test' third input arg is unmodified"); } Math-BigInt-2.005003/xt/author/lib-bitwise-_sxor.dat0000644403072340010010000067523414505066136021754 0ustar OSPJADomain Users# Small values 0:+:0:+:0:+ 0:+:1:+:1:+ 0:+:1:-:1:- 0:+:2:+:2:+ 0:+:2:-:2:- 0:+:3:+:3:+ 0:+:3:-:3:- 0:+:4:+:4:+ 0:+:4:-:4:- 1:+:0:+:1:+ 1:-:0:+:1:- 1:+:1:+:0:+ 1:+:1:-:2:- 1:-:1:+:2:- 1:-:1:-:0:+ 1:+:2:+:3:+ 1:+:2:-:1:- 1:-:2:+:3:- 1:-:2:-:1:+ 1:+:3:+:2:+ 1:+:3:-:4:- 1:-:3:+:4:- 1:-:3:-:2:+ 1:+:4:+:5:+ 1:+:4:-:3:- 1:-:4:+:5:- 1:-:4:-:3:+ 2:+:0:+:2:+ 2:-:0:+:2:- 2:+:1:+:3:+ 2:+:1:-:3:- 2:-:1:+:1:- 2:-:1:-:1:+ 2:+:2:+:0:+ 2:+:2:-:4:- 2:-:2:+:4:- 2:-:2:-:0:+ 2:+:3:+:1:+ 2:+:3:-:1:- 2:-:3:+:3:- 2:-:3:-:3:+ 2:+:4:+:6:+ 2:+:4:-:2:- 2:-:4:+:6:- 2:-:4:-:2:+ 3:+:0:+:3:+ 3:-:0:+:3:- 3:+:1:+:2:+ 3:+:1:-:4:- 3:-:1:+:4:- 3:-:1:-:2:+ 3:+:2:+:1:+ 3:+:2:-:3:- 3:-:2:+:1:- 3:-:2:-:3:+ 3:+:3:+:0:+ 3:+:3:-:2:- 3:-:3:+:2:- 3:-:3:-:0:+ 3:+:4:+:7:+ 3:+:4:-:1:- 3:-:4:+:7:- 3:-:4:-:1:+ 4:+:0:+:4:+ 4:-:0:+:4:- 4:+:1:+:5:+ 4:+:1:-:5:- 4:-:1:+:3:- 4:-:1:-:3:+ 4:+:2:+:6:+ 4:+:2:-:6:- 4:-:2:+:2:- 4:-:2:-:2:+ 4:+:3:+:7:+ 4:+:3:-:7:- 4:-:3:+:1:- 4:-:3:-:1:+ 4:+:4:+:0:+ 4:+:4:-:8:- 4:-:4:+:8:- 4:-:4:-:0:+ # Values close to powers of 8 0:+:0:+:0:+ 0:+:1:+:1:+ 0:+:1:-:1:- 0:+:2:+:2:+ 0:+:2:-:2:- 0:+:3:+:3:+ 0:+:3:-:3:- 0:+:4:+:4:+ 0:+:4:-:4:- 0:+:64:+:64:+ 0:+:64:-:64:- 0:+:128:+:128:+ 0:+:128:-:128:- 0:+:256:+:256:+ 0:+:256:-:256:- 0:+:512:+:512:+ 0:+:512:-:512:- 0:+:16384:+:16384:+ 0:+:16384:-:16384:- 0:+:32768:+:32768:+ 0:+:32768:-:32768:- 0:+:65536:+:65536:+ 0:+:65536:-:65536:- 0:+:131072:+:131072:+ 0:+:131072:-:131072:- 0:+:4194304:+:4194304:+ 0:+:4194304:-:4194304:- 0:+:8388608:+:8388608:+ 0:+:8388608:-:8388608:- 0:+:16777216:+:16777216:+ 0:+:16777216:-:16777216:- 0:+:33554432:+:33554432:+ 0:+:33554432:-:33554432:- 0:+:1073741824:+:1073741824:+ 0:+:1073741824:-:1073741824:- 0:+:2147483648:+:2147483648:+ 0:+:2147483648:-:2147483648:- 0:+:4294967296:+:4294967296:+ 0:+:4294967296:-:4294967296:- 0:+:8589934592:+:8589934592:+ 0:+:8589934592:-:8589934592:- 0:+:274877906944:+:274877906944:+ 0:+:274877906944:-:274877906944:- 0:+:549755813888:+:549755813888:+ 0:+:549755813888:-:549755813888:- 0:+:1099511627776:+:1099511627776:+ 0:+:1099511627776:-:1099511627776:- 0:+:2199023255552:+:2199023255552:+ 0:+:2199023255552:-:2199023255552:- 0:+:70368744177664:+:70368744177664:+ 0:+:70368744177664:-:70368744177664:- 0:+:140737488355328:+:140737488355328:+ 0:+:140737488355328:-:140737488355328:- 0:+:281474976710656:+:281474976710656:+ 0:+:281474976710656:-:281474976710656:- 0:+:562949953421312:+:562949953421312:+ 0:+:562949953421312:-:562949953421312:- 0:+:18014398509481984:+:18014398509481984:+ 0:+:18014398509481984:-:18014398509481984:- 0:+:36028797018963968:+:36028797018963968:+ 0:+:36028797018963968:-:36028797018963968:- 0:+:72057594037927936:+:72057594037927936:+ 0:+:72057594037927936:-:72057594037927936:- 0:+:144115188075855872:+:144115188075855872:+ 0:+:144115188075855872:-:144115188075855872:- 1:+:0:+:1:+ 1:-:0:+:1:- 1:+:1:+:0:+ 1:+:1:-:2:- 1:-:1:+:2:- 1:-:1:-:0:+ 1:+:2:+:3:+ 1:+:2:-:1:- 1:-:2:+:3:- 1:-:2:-:1:+ 1:+:3:+:2:+ 1:+:3:-:4:- 1:-:3:+:4:- 1:-:3:-:2:+ 1:+:4:+:5:+ 1:+:4:-:3:- 1:-:4:+:5:- 1:-:4:-:3:+ 1:+:64:+:65:+ 1:+:64:-:63:- 1:-:64:+:65:- 1:-:64:-:63:+ 1:+:128:+:129:+ 1:+:128:-:127:- 1:-:128:+:129:- 1:-:128:-:127:+ 1:+:256:+:257:+ 1:+:256:-:255:- 1:-:256:+:257:- 1:-:256:-:255:+ 1:+:512:+:513:+ 1:+:512:-:511:- 1:-:512:+:513:- 1:-:512:-:511:+ 1:+:16384:+:16385:+ 1:+:16384:-:16383:- 1:-:16384:+:16385:- 1:-:16384:-:16383:+ 1:+:32768:+:32769:+ 1:+:32768:-:32767:- 1:-:32768:+:32769:- 1:-:32768:-:32767:+ 1:+:65536:+:65537:+ 1:+:65536:-:65535:- 1:-:65536:+:65537:- 1:-:65536:-:65535:+ 1:+:131072:+:131073:+ 1:+:131072:-:131071:- 1:-:131072:+:131073:- 1:-:131072:-:131071:+ 1:+:4194304:+:4194305:+ 1:+:4194304:-:4194303:- 1:-:4194304:+:4194305:- 1:-:4194304:-:4194303:+ 1:+:8388608:+:8388609:+ 1:+:8388608:-:8388607:- 1:-:8388608:+:8388609:- 1:-:8388608:-:8388607:+ 1:+:16777216:+:16777217:+ 1:+:16777216:-:16777215:- 1:-:16777216:+:16777217:- 1:-:16777216:-:16777215:+ 1:+:33554432:+:33554433:+ 1:+:33554432:-:33554431:- 1:-:33554432:+:33554433:- 1:-:33554432:-:33554431:+ 1:+:1073741824:+:1073741825:+ 1:+:1073741824:-:1073741823:- 1:-:1073741824:+:1073741825:- 1:-:1073741824:-:1073741823:+ 1:+:2147483648:+:2147483649:+ 1:+:2147483648:-:2147483647:- 1:-:2147483648:+:2147483649:- 1:-:2147483648:-:2147483647:+ 1:+:4294967296:+:4294967297:+ 1:+:4294967296:-:4294967295:- 1:-:4294967296:+:4294967297:- 1:-:4294967296:-:4294967295:+ 1:+:8589934592:+:8589934593:+ 1:+:8589934592:-:8589934591:- 1:-:8589934592:+:8589934593:- 1:-:8589934592:-:8589934591:+ 1:+:274877906944:+:274877906945:+ 1:+:274877906944:-:274877906943:- 1:-:274877906944:+:274877906945:- 1:-:274877906944:-:274877906943:+ 1:+:549755813888:+:549755813889:+ 1:+:549755813888:-:549755813887:- 1:-:549755813888:+:549755813889:- 1:-:549755813888:-:549755813887:+ 1:+:1099511627776:+:1099511627777:+ 1:+:1099511627776:-:1099511627775:- 1:-:1099511627776:+:1099511627777:- 1:-:1099511627776:-:1099511627775:+ 1:+:2199023255552:+:2199023255553:+ 1:+:2199023255552:-:2199023255551:- 1:-:2199023255552:+:2199023255553:- 1:-:2199023255552:-:2199023255551:+ 1:+:70368744177664:+:70368744177665:+ 1:+:70368744177664:-:70368744177663:- 1:-:70368744177664:+:70368744177665:- 1:-:70368744177664:-:70368744177663:+ 1:+:140737488355328:+:140737488355329:+ 1:+:140737488355328:-:140737488355327:- 1:-:140737488355328:+:140737488355329:- 1:-:140737488355328:-:140737488355327:+ 1:+:281474976710656:+:281474976710657:+ 1:+:281474976710656:-:281474976710655:- 1:-:281474976710656:+:281474976710657:- 1:-:281474976710656:-:281474976710655:+ 1:+:562949953421312:+:562949953421313:+ 1:+:562949953421312:-:562949953421311:- 1:-:562949953421312:+:562949953421313:- 1:-:562949953421312:-:562949953421311:+ 1:+:18014398509481984:+:18014398509481985:+ 1:+:18014398509481984:-:18014398509481983:- 1:-:18014398509481984:+:18014398509481985:- 1:-:18014398509481984:-:18014398509481983:+ 1:+:36028797018963968:+:36028797018963969:+ 1:+:36028797018963968:-:36028797018963967:- 1:-:36028797018963968:+:36028797018963969:- 1:-:36028797018963968:-:36028797018963967:+ 1:+:72057594037927936:+:72057594037927937:+ 1:+:72057594037927936:-:72057594037927935:- 1:-:72057594037927936:+:72057594037927937:- 1:-:72057594037927936:-:72057594037927935:+ 1:+:144115188075855872:+:144115188075855873:+ 1:+:144115188075855872:-:144115188075855871:- 1:-:144115188075855872:+:144115188075855873:- 1:-:144115188075855872:-:144115188075855871:+ 2:+:0:+:2:+ 2:-:0:+:2:- 2:+:1:+:3:+ 2:+:1:-:3:- 2:-:1:+:1:- 2:-:1:-:1:+ 2:+:2:+:0:+ 2:+:2:-:4:- 2:-:2:+:4:- 2:-:2:-:0:+ 2:+:3:+:1:+ 2:+:3:-:1:- 2:-:3:+:3:- 2:-:3:-:3:+ 2:+:4:+:6:+ 2:+:4:-:2:- 2:-:4:+:6:- 2:-:4:-:2:+ 2:+:64:+:66:+ 2:+:64:-:62:- 2:-:64:+:66:- 2:-:64:-:62:+ 2:+:128:+:130:+ 2:+:128:-:126:- 2:-:128:+:130:- 2:-:128:-:126:+ 2:+:256:+:258:+ 2:+:256:-:254:- 2:-:256:+:258:- 2:-:256:-:254:+ 2:+:512:+:514:+ 2:+:512:-:510:- 2:-:512:+:514:- 2:-:512:-:510:+ 2:+:16384:+:16386:+ 2:+:16384:-:16382:- 2:-:16384:+:16386:- 2:-:16384:-:16382:+ 2:+:32768:+:32770:+ 2:+:32768:-:32766:- 2:-:32768:+:32770:- 2:-:32768:-:32766:+ 2:+:65536:+:65538:+ 2:+:65536:-:65534:- 2:-:65536:+:65538:- 2:-:65536:-:65534:+ 2:+:131072:+:131074:+ 2:+:131072:-:131070:- 2:-:131072:+:131074:- 2:-:131072:-:131070:+ 2:+:4194304:+:4194306:+ 2:+:4194304:-:4194302:- 2:-:4194304:+:4194306:- 2:-:4194304:-:4194302:+ 2:+:8388608:+:8388610:+ 2:+:8388608:-:8388606:- 2:-:8388608:+:8388610:- 2:-:8388608:-:8388606:+ 2:+:16777216:+:16777218:+ 2:+:16777216:-:16777214:- 2:-:16777216:+:16777218:- 2:-:16777216:-:16777214:+ 2:+:33554432:+:33554434:+ 2:+:33554432:-:33554430:- 2:-:33554432:+:33554434:- 2:-:33554432:-:33554430:+ 2:+:1073741824:+:1073741826:+ 2:+:1073741824:-:1073741822:- 2:-:1073741824:+:1073741826:- 2:-:1073741824:-:1073741822:+ 2:+:2147483648:+:2147483650:+ 2:+:2147483648:-:2147483646:- 2:-:2147483648:+:2147483650:- 2:-:2147483648:-:2147483646:+ 2:+:4294967296:+:4294967298:+ 2:+:4294967296:-:4294967294:- 2:-:4294967296:+:4294967298:- 2:-:4294967296:-:4294967294:+ 2:+:8589934592:+:8589934594:+ 2:+:8589934592:-:8589934590:- 2:-:8589934592:+:8589934594:- 2:-:8589934592:-:8589934590:+ 2:+:274877906944:+:274877906946:+ 2:+:274877906944:-:274877906942:- 2:-:274877906944:+:274877906946:- 2:-:274877906944:-:274877906942:+ 2:+:549755813888:+:549755813890:+ 2:+:549755813888:-:549755813886:- 2:-:549755813888:+:549755813890:- 2:-:549755813888:-:549755813886:+ 2:+:1099511627776:+:1099511627778:+ 2:+:1099511627776:-:1099511627774:- 2:-:1099511627776:+:1099511627778:- 2:-:1099511627776:-:1099511627774:+ 2:+:2199023255552:+:2199023255554:+ 2:+:2199023255552:-:2199023255550:- 2:-:2199023255552:+:2199023255554:- 2:-:2199023255552:-:2199023255550:+ 2:+:70368744177664:+:70368744177666:+ 2:+:70368744177664:-:70368744177662:- 2:-:70368744177664:+:70368744177666:- 2:-:70368744177664:-:70368744177662:+ 2:+:140737488355328:+:140737488355330:+ 2:+:140737488355328:-:140737488355326:- 2:-:140737488355328:+:140737488355330:- 2:-:140737488355328:-:140737488355326:+ 2:+:281474976710656:+:281474976710658:+ 2:+:281474976710656:-:281474976710654:- 2:-:281474976710656:+:281474976710658:- 2:-:281474976710656:-:281474976710654:+ 2:+:562949953421312:+:562949953421314:+ 2:+:562949953421312:-:562949953421310:- 2:-:562949953421312:+:562949953421314:- 2:-:562949953421312:-:562949953421310:+ 2:+:18014398509481984:+:18014398509481986:+ 2:+:18014398509481984:-:18014398509481982:- 2:-:18014398509481984:+:18014398509481986:- 2:-:18014398509481984:-:18014398509481982:+ 2:+:36028797018963968:+:36028797018963970:+ 2:+:36028797018963968:-:36028797018963966:- 2:-:36028797018963968:+:36028797018963970:- 2:-:36028797018963968:-:36028797018963966:+ 2:+:72057594037927936:+:72057594037927938:+ 2:+:72057594037927936:-:72057594037927934:- 2:-:72057594037927936:+:72057594037927938:- 2:-:72057594037927936:-:72057594037927934:+ 2:+:144115188075855872:+:144115188075855874:+ 2:+:144115188075855872:-:144115188075855870:- 2:-:144115188075855872:+:144115188075855874:- 2:-:144115188075855872:-:144115188075855870:+ 3:+:0:+:3:+ 3:-:0:+:3:- 3:+:1:+:2:+ 3:+:1:-:4:- 3:-:1:+:4:- 3:-:1:-:2:+ 3:+:2:+:1:+ 3:+:2:-:3:- 3:-:2:+:1:- 3:-:2:-:3:+ 3:+:3:+:0:+ 3:+:3:-:2:- 3:-:3:+:2:- 3:-:3:-:0:+ 3:+:4:+:7:+ 3:+:4:-:1:- 3:-:4:+:7:- 3:-:4:-:1:+ 3:+:64:+:67:+ 3:+:64:-:61:- 3:-:64:+:67:- 3:-:64:-:61:+ 3:+:128:+:131:+ 3:+:128:-:125:- 3:-:128:+:131:- 3:-:128:-:125:+ 3:+:256:+:259:+ 3:+:256:-:253:- 3:-:256:+:259:- 3:-:256:-:253:+ 3:+:512:+:515:+ 3:+:512:-:509:- 3:-:512:+:515:- 3:-:512:-:509:+ 3:+:16384:+:16387:+ 3:+:16384:-:16381:- 3:-:16384:+:16387:- 3:-:16384:-:16381:+ 3:+:32768:+:32771:+ 3:+:32768:-:32765:- 3:-:32768:+:32771:- 3:-:32768:-:32765:+ 3:+:65536:+:65539:+ 3:+:65536:-:65533:- 3:-:65536:+:65539:- 3:-:65536:-:65533:+ 3:+:131072:+:131075:+ 3:+:131072:-:131069:- 3:-:131072:+:131075:- 3:-:131072:-:131069:+ 3:+:4194304:+:4194307:+ 3:+:4194304:-:4194301:- 3:-:4194304:+:4194307:- 3:-:4194304:-:4194301:+ 3:+:8388608:+:8388611:+ 3:+:8388608:-:8388605:- 3:-:8388608:+:8388611:- 3:-:8388608:-:8388605:+ 3:+:16777216:+:16777219:+ 3:+:16777216:-:16777213:- 3:-:16777216:+:16777219:- 3:-:16777216:-:16777213:+ 3:+:33554432:+:33554435:+ 3:+:33554432:-:33554429:- 3:-:33554432:+:33554435:- 3:-:33554432:-:33554429:+ 3:+:1073741824:+:1073741827:+ 3:+:1073741824:-:1073741821:- 3:-:1073741824:+:1073741827:- 3:-:1073741824:-:1073741821:+ 3:+:2147483648:+:2147483651:+ 3:+:2147483648:-:2147483645:- 3:-:2147483648:+:2147483651:- 3:-:2147483648:-:2147483645:+ 3:+:4294967296:+:4294967299:+ 3:+:4294967296:-:4294967293:- 3:-:4294967296:+:4294967299:- 3:-:4294967296:-:4294967293:+ 3:+:8589934592:+:8589934595:+ 3:+:8589934592:-:8589934589:- 3:-:8589934592:+:8589934595:- 3:-:8589934592:-:8589934589:+ 3:+:274877906944:+:274877906947:+ 3:+:274877906944:-:274877906941:- 3:-:274877906944:+:274877906947:- 3:-:274877906944:-:274877906941:+ 3:+:549755813888:+:549755813891:+ 3:+:549755813888:-:549755813885:- 3:-:549755813888:+:549755813891:- 3:-:549755813888:-:549755813885:+ 3:+:1099511627776:+:1099511627779:+ 3:+:1099511627776:-:1099511627773:- 3:-:1099511627776:+:1099511627779:- 3:-:1099511627776:-:1099511627773:+ 3:+:2199023255552:+:2199023255555:+ 3:+:2199023255552:-:2199023255549:- 3:-:2199023255552:+:2199023255555:- 3:-:2199023255552:-:2199023255549:+ 3:+:70368744177664:+:70368744177667:+ 3:+:70368744177664:-:70368744177661:- 3:-:70368744177664:+:70368744177667:- 3:-:70368744177664:-:70368744177661:+ 3:+:140737488355328:+:140737488355331:+ 3:+:140737488355328:-:140737488355325:- 3:-:140737488355328:+:140737488355331:- 3:-:140737488355328:-:140737488355325:+ 3:+:281474976710656:+:281474976710659:+ 3:+:281474976710656:-:281474976710653:- 3:-:281474976710656:+:281474976710659:- 3:-:281474976710656:-:281474976710653:+ 3:+:562949953421312:+:562949953421315:+ 3:+:562949953421312:-:562949953421309:- 3:-:562949953421312:+:562949953421315:- 3:-:562949953421312:-:562949953421309:+ 3:+:18014398509481984:+:18014398509481987:+ 3:+:18014398509481984:-:18014398509481981:- 3:-:18014398509481984:+:18014398509481987:- 3:-:18014398509481984:-:18014398509481981:+ 3:+:36028797018963968:+:36028797018963971:+ 3:+:36028797018963968:-:36028797018963965:- 3:-:36028797018963968:+:36028797018963971:- 3:-:36028797018963968:-:36028797018963965:+ 3:+:72057594037927936:+:72057594037927939:+ 3:+:72057594037927936:-:72057594037927933:- 3:-:72057594037927936:+:72057594037927939:- 3:-:72057594037927936:-:72057594037927933:+ 3:+:144115188075855872:+:144115188075855875:+ 3:+:144115188075855872:-:144115188075855869:- 3:-:144115188075855872:+:144115188075855875:- 3:-:144115188075855872:-:144115188075855869:+ 4:+:0:+:4:+ 4:-:0:+:4:- 4:+:1:+:5:+ 4:+:1:-:5:- 4:-:1:+:3:- 4:-:1:-:3:+ 4:+:2:+:6:+ 4:+:2:-:6:- 4:-:2:+:2:- 4:-:2:-:2:+ 4:+:3:+:7:+ 4:+:3:-:7:- 4:-:3:+:1:- 4:-:3:-:1:+ 4:+:4:+:0:+ 4:+:4:-:8:- 4:-:4:+:8:- 4:-:4:-:0:+ 4:+:64:+:68:+ 4:+:64:-:60:- 4:-:64:+:68:- 4:-:64:-:60:+ 4:+:128:+:132:+ 4:+:128:-:124:- 4:-:128:+:132:- 4:-:128:-:124:+ 4:+:256:+:260:+ 4:+:256:-:252:- 4:-:256:+:260:- 4:-:256:-:252:+ 4:+:512:+:516:+ 4:+:512:-:508:- 4:-:512:+:516:- 4:-:512:-:508:+ 4:+:16384:+:16388:+ 4:+:16384:-:16380:- 4:-:16384:+:16388:- 4:-:16384:-:16380:+ 4:+:32768:+:32772:+ 4:+:32768:-:32764:- 4:-:32768:+:32772:- 4:-:32768:-:32764:+ 4:+:65536:+:65540:+ 4:+:65536:-:65532:- 4:-:65536:+:65540:- 4:-:65536:-:65532:+ 4:+:131072:+:131076:+ 4:+:131072:-:131068:- 4:-:131072:+:131076:- 4:-:131072:-:131068:+ 4:+:4194304:+:4194308:+ 4:+:4194304:-:4194300:- 4:-:4194304:+:4194308:- 4:-:4194304:-:4194300:+ 4:+:8388608:+:8388612:+ 4:+:8388608:-:8388604:- 4:-:8388608:+:8388612:- 4:-:8388608:-:8388604:+ 4:+:16777216:+:16777220:+ 4:+:16777216:-:16777212:- 4:-:16777216:+:16777220:- 4:-:16777216:-:16777212:+ 4:+:33554432:+:33554436:+ 4:+:33554432:-:33554428:- 4:-:33554432:+:33554436:- 4:-:33554432:-:33554428:+ 4:+:1073741824:+:1073741828:+ 4:+:1073741824:-:1073741820:- 4:-:1073741824:+:1073741828:- 4:-:1073741824:-:1073741820:+ 4:+:2147483648:+:2147483652:+ 4:+:2147483648:-:2147483644:- 4:-:2147483648:+:2147483652:- 4:-:2147483648:-:2147483644:+ 4:+:4294967296:+:4294967300:+ 4:+:4294967296:-:4294967292:- 4:-:4294967296:+:4294967300:- 4:-:4294967296:-:4294967292:+ 4:+:8589934592:+:8589934596:+ 4:+:8589934592:-:8589934588:- 4:-:8589934592:+:8589934596:- 4:-:8589934592:-:8589934588:+ 4:+:274877906944:+:274877906948:+ 4:+:274877906944:-:274877906940:- 4:-:274877906944:+:274877906948:- 4:-:274877906944:-:274877906940:+ 4:+:549755813888:+:549755813892:+ 4:+:549755813888:-:549755813884:- 4:-:549755813888:+:549755813892:- 4:-:549755813888:-:549755813884:+ 4:+:1099511627776:+:1099511627780:+ 4:+:1099511627776:-:1099511627772:- 4:-:1099511627776:+:1099511627780:- 4:-:1099511627776:-:1099511627772:+ 4:+:2199023255552:+:2199023255556:+ 4:+:2199023255552:-:2199023255548:- 4:-:2199023255552:+:2199023255556:- 4:-:2199023255552:-:2199023255548:+ 4:+:70368744177664:+:70368744177668:+ 4:+:70368744177664:-:70368744177660:- 4:-:70368744177664:+:70368744177668:- 4:-:70368744177664:-:70368744177660:+ 4:+:140737488355328:+:140737488355332:+ 4:+:140737488355328:-:140737488355324:- 4:-:140737488355328:+:140737488355332:- 4:-:140737488355328:-:140737488355324:+ 4:+:281474976710656:+:281474976710660:+ 4:+:281474976710656:-:281474976710652:- 4:-:281474976710656:+:281474976710660:- 4:-:281474976710656:-:281474976710652:+ 4:+:562949953421312:+:562949953421316:+ 4:+:562949953421312:-:562949953421308:- 4:-:562949953421312:+:562949953421316:- 4:-:562949953421312:-:562949953421308:+ 4:+:18014398509481984:+:18014398509481988:+ 4:+:18014398509481984:-:18014398509481980:- 4:-:18014398509481984:+:18014398509481988:- 4:-:18014398509481984:-:18014398509481980:+ 4:+:36028797018963968:+:36028797018963972:+ 4:+:36028797018963968:-:36028797018963964:- 4:-:36028797018963968:+:36028797018963972:- 4:-:36028797018963968:-:36028797018963964:+ 4:+:72057594037927936:+:72057594037927940:+ 4:+:72057594037927936:-:72057594037927932:- 4:-:72057594037927936:+:72057594037927940:- 4:-:72057594037927936:-:72057594037927932:+ 4:+:144115188075855872:+:144115188075855876:+ 4:+:144115188075855872:-:144115188075855868:- 4:-:144115188075855872:+:144115188075855876:- 4:-:144115188075855872:-:144115188075855868:+ 64:+:0:+:64:+ 64:-:0:+:64:- 64:+:1:+:65:+ 64:+:1:-:65:- 64:-:1:+:63:- 64:-:1:-:63:+ 64:+:2:+:66:+ 64:+:2:-:66:- 64:-:2:+:62:- 64:-:2:-:62:+ 64:+:3:+:67:+ 64:+:3:-:67:- 64:-:3:+:61:- 64:-:3:-:61:+ 64:+:4:+:68:+ 64:+:4:-:68:- 64:-:4:+:60:- 64:-:4:-:60:+ 64:+:64:+:0:+ 64:+:64:-:128:- 64:-:64:+:128:- 64:-:64:-:0:+ 64:+:128:+:192:+ 64:+:128:-:64:- 64:-:128:+:192:- 64:-:128:-:64:+ 64:+:256:+:320:+ 64:+:256:-:192:- 64:-:256:+:320:- 64:-:256:-:192:+ 64:+:512:+:576:+ 64:+:512:-:448:- 64:-:512:+:576:- 64:-:512:-:448:+ 64:+:16384:+:16448:+ 64:+:16384:-:16320:- 64:-:16384:+:16448:- 64:-:16384:-:16320:+ 64:+:32768:+:32832:+ 64:+:32768:-:32704:- 64:-:32768:+:32832:- 64:-:32768:-:32704:+ 64:+:65536:+:65600:+ 64:+:65536:-:65472:- 64:-:65536:+:65600:- 64:-:65536:-:65472:+ 64:+:131072:+:131136:+ 64:+:131072:-:131008:- 64:-:131072:+:131136:- 64:-:131072:-:131008:+ 64:+:4194304:+:4194368:+ 64:+:4194304:-:4194240:- 64:-:4194304:+:4194368:- 64:-:4194304:-:4194240:+ 64:+:8388608:+:8388672:+ 64:+:8388608:-:8388544:- 64:-:8388608:+:8388672:- 64:-:8388608:-:8388544:+ 64:+:16777216:+:16777280:+ 64:+:16777216:-:16777152:- 64:-:16777216:+:16777280:- 64:-:16777216:-:16777152:+ 64:+:33554432:+:33554496:+ 64:+:33554432:-:33554368:- 64:-:33554432:+:33554496:- 64:-:33554432:-:33554368:+ 64:+:1073741824:+:1073741888:+ 64:+:1073741824:-:1073741760:- 64:-:1073741824:+:1073741888:- 64:-:1073741824:-:1073741760:+ 64:+:2147483648:+:2147483712:+ 64:+:2147483648:-:2147483584:- 64:-:2147483648:+:2147483712:- 64:-:2147483648:-:2147483584:+ 64:+:4294967296:+:4294967360:+ 64:+:4294967296:-:4294967232:- 64:-:4294967296:+:4294967360:- 64:-:4294967296:-:4294967232:+ 64:+:8589934592:+:8589934656:+ 64:+:8589934592:-:8589934528:- 64:-:8589934592:+:8589934656:- 64:-:8589934592:-:8589934528:+ 64:+:274877906944:+:274877907008:+ 64:+:274877906944:-:274877906880:- 64:-:274877906944:+:274877907008:- 64:-:274877906944:-:274877906880:+ 64:+:549755813888:+:549755813952:+ 64:+:549755813888:-:549755813824:- 64:-:549755813888:+:549755813952:- 64:-:549755813888:-:549755813824:+ 64:+:1099511627776:+:1099511627840:+ 64:+:1099511627776:-:1099511627712:- 64:-:1099511627776:+:1099511627840:- 64:-:1099511627776:-:1099511627712:+ 64:+:2199023255552:+:2199023255616:+ 64:+:2199023255552:-:2199023255488:- 64:-:2199023255552:+:2199023255616:- 64:-:2199023255552:-:2199023255488:+ 64:+:70368744177664:+:70368744177728:+ 64:+:70368744177664:-:70368744177600:- 64:-:70368744177664:+:70368744177728:- 64:-:70368744177664:-:70368744177600:+ 64:+:140737488355328:+:140737488355392:+ 64:+:140737488355328:-:140737488355264:- 64:-:140737488355328:+:140737488355392:- 64:-:140737488355328:-:140737488355264:+ 64:+:281474976710656:+:281474976710720:+ 64:+:281474976710656:-:281474976710592:- 64:-:281474976710656:+:281474976710720:- 64:-:281474976710656:-:281474976710592:+ 64:+:562949953421312:+:562949953421376:+ 64:+:562949953421312:-:562949953421248:- 64:-:562949953421312:+:562949953421376:- 64:-:562949953421312:-:562949953421248:+ 64:+:18014398509481984:+:18014398509482048:+ 64:+:18014398509481984:-:18014398509481920:- 64:-:18014398509481984:+:18014398509482048:- 64:-:18014398509481984:-:18014398509481920:+ 64:+:36028797018963968:+:36028797018964032:+ 64:+:36028797018963968:-:36028797018963904:- 64:-:36028797018963968:+:36028797018964032:- 64:-:36028797018963968:-:36028797018963904:+ 64:+:72057594037927936:+:72057594037928000:+ 64:+:72057594037927936:-:72057594037927872:- 64:-:72057594037927936:+:72057594037928000:- 64:-:72057594037927936:-:72057594037927872:+ 64:+:144115188075855872:+:144115188075855936:+ 64:+:144115188075855872:-:144115188075855808:- 64:-:144115188075855872:+:144115188075855936:- 64:-:144115188075855872:-:144115188075855808:+ 128:+:0:+:128:+ 128:-:0:+:128:- 128:+:1:+:129:+ 128:+:1:-:129:- 128:-:1:+:127:- 128:-:1:-:127:+ 128:+:2:+:130:+ 128:+:2:-:130:- 128:-:2:+:126:- 128:-:2:-:126:+ 128:+:3:+:131:+ 128:+:3:-:131:- 128:-:3:+:125:- 128:-:3:-:125:+ 128:+:4:+:132:+ 128:+:4:-:132:- 128:-:4:+:124:- 128:-:4:-:124:+ 128:+:64:+:192:+ 128:+:64:-:192:- 128:-:64:+:64:- 128:-:64:-:64:+ 128:+:128:+:0:+ 128:+:128:-:256:- 128:-:128:+:256:- 128:-:128:-:0:+ 128:+:256:+:384:+ 128:+:256:-:128:- 128:-:256:+:384:- 128:-:256:-:128:+ 128:+:512:+:640:+ 128:+:512:-:384:- 128:-:512:+:640:- 128:-:512:-:384:+ 128:+:16384:+:16512:+ 128:+:16384:-:16256:- 128:-:16384:+:16512:- 128:-:16384:-:16256:+ 128:+:32768:+:32896:+ 128:+:32768:-:32640:- 128:-:32768:+:32896:- 128:-:32768:-:32640:+ 128:+:65536:+:65664:+ 128:+:65536:-:65408:- 128:-:65536:+:65664:- 128:-:65536:-:65408:+ 128:+:131072:+:131200:+ 128:+:131072:-:130944:- 128:-:131072:+:131200:- 128:-:131072:-:130944:+ 128:+:4194304:+:4194432:+ 128:+:4194304:-:4194176:- 128:-:4194304:+:4194432:- 128:-:4194304:-:4194176:+ 128:+:8388608:+:8388736:+ 128:+:8388608:-:8388480:- 128:-:8388608:+:8388736:- 128:-:8388608:-:8388480:+ 128:+:16777216:+:16777344:+ 128:+:16777216:-:16777088:- 128:-:16777216:+:16777344:- 128:-:16777216:-:16777088:+ 128:+:33554432:+:33554560:+ 128:+:33554432:-:33554304:- 128:-:33554432:+:33554560:- 128:-:33554432:-:33554304:+ 128:+:1073741824:+:1073741952:+ 128:+:1073741824:-:1073741696:- 128:-:1073741824:+:1073741952:- 128:-:1073741824:-:1073741696:+ 128:+:2147483648:+:2147483776:+ 128:+:2147483648:-:2147483520:- 128:-:2147483648:+:2147483776:- 128:-:2147483648:-:2147483520:+ 128:+:4294967296:+:4294967424:+ 128:+:4294967296:-:4294967168:- 128:-:4294967296:+:4294967424:- 128:-:4294967296:-:4294967168:+ 128:+:8589934592:+:8589934720:+ 128:+:8589934592:-:8589934464:- 128:-:8589934592:+:8589934720:- 128:-:8589934592:-:8589934464:+ 128:+:274877906944:+:274877907072:+ 128:+:274877906944:-:274877906816:- 128:-:274877906944:+:274877907072:- 128:-:274877906944:-:274877906816:+ 128:+:549755813888:+:549755814016:+ 128:+:549755813888:-:549755813760:- 128:-:549755813888:+:549755814016:- 128:-:549755813888:-:549755813760:+ 128:+:1099511627776:+:1099511627904:+ 128:+:1099511627776:-:1099511627648:- 128:-:1099511627776:+:1099511627904:- 128:-:1099511627776:-:1099511627648:+ 128:+:2199023255552:+:2199023255680:+ 128:+:2199023255552:-:2199023255424:- 128:-:2199023255552:+:2199023255680:- 128:-:2199023255552:-:2199023255424:+ 128:+:70368744177664:+:70368744177792:+ 128:+:70368744177664:-:70368744177536:- 128:-:70368744177664:+:70368744177792:- 128:-:70368744177664:-:70368744177536:+ 128:+:140737488355328:+:140737488355456:+ 128:+:140737488355328:-:140737488355200:- 128:-:140737488355328:+:140737488355456:- 128:-:140737488355328:-:140737488355200:+ 128:+:281474976710656:+:281474976710784:+ 128:+:281474976710656:-:281474976710528:- 128:-:281474976710656:+:281474976710784:- 128:-:281474976710656:-:281474976710528:+ 128:+:562949953421312:+:562949953421440:+ 128:+:562949953421312:-:562949953421184:- 128:-:562949953421312:+:562949953421440:- 128:-:562949953421312:-:562949953421184:+ 128:+:18014398509481984:+:18014398509482112:+ 128:+:18014398509481984:-:18014398509481856:- 128:-:18014398509481984:+:18014398509482112:- 128:-:18014398509481984:-:18014398509481856:+ 128:+:36028797018963968:+:36028797018964096:+ 128:+:36028797018963968:-:36028797018963840:- 128:-:36028797018963968:+:36028797018964096:- 128:-:36028797018963968:-:36028797018963840:+ 128:+:72057594037927936:+:72057594037928064:+ 128:+:72057594037927936:-:72057594037927808:- 128:-:72057594037927936:+:72057594037928064:- 128:-:72057594037927936:-:72057594037927808:+ 128:+:144115188075855872:+:144115188075856000:+ 128:+:144115188075855872:-:144115188075855744:- 128:-:144115188075855872:+:144115188075856000:- 128:-:144115188075855872:-:144115188075855744:+ 256:+:0:+:256:+ 256:-:0:+:256:- 256:+:1:+:257:+ 256:+:1:-:257:- 256:-:1:+:255:- 256:-:1:-:255:+ 256:+:2:+:258:+ 256:+:2:-:258:- 256:-:2:+:254:- 256:-:2:-:254:+ 256:+:3:+:259:+ 256:+:3:-:259:- 256:-:3:+:253:- 256:-:3:-:253:+ 256:+:4:+:260:+ 256:+:4:-:260:- 256:-:4:+:252:- 256:-:4:-:252:+ 256:+:64:+:320:+ 256:+:64:-:320:- 256:-:64:+:192:- 256:-:64:-:192:+ 256:+:128:+:384:+ 256:+:128:-:384:- 256:-:128:+:128:- 256:-:128:-:128:+ 256:+:256:+:0:+ 256:+:256:-:512:- 256:-:256:+:512:- 256:-:256:-:0:+ 256:+:512:+:768:+ 256:+:512:-:256:- 256:-:512:+:768:- 256:-:512:-:256:+ 256:+:16384:+:16640:+ 256:+:16384:-:16128:- 256:-:16384:+:16640:- 256:-:16384:-:16128:+ 256:+:32768:+:33024:+ 256:+:32768:-:32512:- 256:-:32768:+:33024:- 256:-:32768:-:32512:+ 256:+:65536:+:65792:+ 256:+:65536:-:65280:- 256:-:65536:+:65792:- 256:-:65536:-:65280:+ 256:+:131072:+:131328:+ 256:+:131072:-:130816:- 256:-:131072:+:131328:- 256:-:131072:-:130816:+ 256:+:4194304:+:4194560:+ 256:+:4194304:-:4194048:- 256:-:4194304:+:4194560:- 256:-:4194304:-:4194048:+ 256:+:8388608:+:8388864:+ 256:+:8388608:-:8388352:- 256:-:8388608:+:8388864:- 256:-:8388608:-:8388352:+ 256:+:16777216:+:16777472:+ 256:+:16777216:-:16776960:- 256:-:16777216:+:16777472:- 256:-:16777216:-:16776960:+ 256:+:33554432:+:33554688:+ 256:+:33554432:-:33554176:- 256:-:33554432:+:33554688:- 256:-:33554432:-:33554176:+ 256:+:1073741824:+:1073742080:+ 256:+:1073741824:-:1073741568:- 256:-:1073741824:+:1073742080:- 256:-:1073741824:-:1073741568:+ 256:+:2147483648:+:2147483904:+ 256:+:2147483648:-:2147483392:- 256:-:2147483648:+:2147483904:- 256:-:2147483648:-:2147483392:+ 256:+:4294967296:+:4294967552:+ 256:+:4294967296:-:4294967040:- 256:-:4294967296:+:4294967552:- 256:-:4294967296:-:4294967040:+ 256:+:8589934592:+:8589934848:+ 256:+:8589934592:-:8589934336:- 256:-:8589934592:+:8589934848:- 256:-:8589934592:-:8589934336:+ 256:+:274877906944:+:274877907200:+ 256:+:274877906944:-:274877906688:- 256:-:274877906944:+:274877907200:- 256:-:274877906944:-:274877906688:+ 256:+:549755813888:+:549755814144:+ 256:+:549755813888:-:549755813632:- 256:-:549755813888:+:549755814144:- 256:-:549755813888:-:549755813632:+ 256:+:1099511627776:+:1099511628032:+ 256:+:1099511627776:-:1099511627520:- 256:-:1099511627776:+:1099511628032:- 256:-:1099511627776:-:1099511627520:+ 256:+:2199023255552:+:2199023255808:+ 256:+:2199023255552:-:2199023255296:- 256:-:2199023255552:+:2199023255808:- 256:-:2199023255552:-:2199023255296:+ 256:+:70368744177664:+:70368744177920:+ 256:+:70368744177664:-:70368744177408:- 256:-:70368744177664:+:70368744177920:- 256:-:70368744177664:-:70368744177408:+ 256:+:140737488355328:+:140737488355584:+ 256:+:140737488355328:-:140737488355072:- 256:-:140737488355328:+:140737488355584:- 256:-:140737488355328:-:140737488355072:+ 256:+:281474976710656:+:281474976710912:+ 256:+:281474976710656:-:281474976710400:- 256:-:281474976710656:+:281474976710912:- 256:-:281474976710656:-:281474976710400:+ 256:+:562949953421312:+:562949953421568:+ 256:+:562949953421312:-:562949953421056:- 256:-:562949953421312:+:562949953421568:- 256:-:562949953421312:-:562949953421056:+ 256:+:18014398509481984:+:18014398509482240:+ 256:+:18014398509481984:-:18014398509481728:- 256:-:18014398509481984:+:18014398509482240:- 256:-:18014398509481984:-:18014398509481728:+ 256:+:36028797018963968:+:36028797018964224:+ 256:+:36028797018963968:-:36028797018963712:- 256:-:36028797018963968:+:36028797018964224:- 256:-:36028797018963968:-:36028797018963712:+ 256:+:72057594037927936:+:72057594037928192:+ 256:+:72057594037927936:-:72057594037927680:- 256:-:72057594037927936:+:72057594037928192:- 256:-:72057594037927936:-:72057594037927680:+ 256:+:144115188075855872:+:144115188075856128:+ 256:+:144115188075855872:-:144115188075855616:- 256:-:144115188075855872:+:144115188075856128:- 256:-:144115188075855872:-:144115188075855616:+ 512:+:0:+:512:+ 512:-:0:+:512:- 512:+:1:+:513:+ 512:+:1:-:513:- 512:-:1:+:511:- 512:-:1:-:511:+ 512:+:2:+:514:+ 512:+:2:-:514:- 512:-:2:+:510:- 512:-:2:-:510:+ 512:+:3:+:515:+ 512:+:3:-:515:- 512:-:3:+:509:- 512:-:3:-:509:+ 512:+:4:+:516:+ 512:+:4:-:516:- 512:-:4:+:508:- 512:-:4:-:508:+ 512:+:64:+:576:+ 512:+:64:-:576:- 512:-:64:+:448:- 512:-:64:-:448:+ 512:+:128:+:640:+ 512:+:128:-:640:- 512:-:128:+:384:- 512:-:128:-:384:+ 512:+:256:+:768:+ 512:+:256:-:768:- 512:-:256:+:256:- 512:-:256:-:256:+ 512:+:512:+:0:+ 512:+:512:-:1024:- 512:-:512:+:1024:- 512:-:512:-:0:+ 512:+:16384:+:16896:+ 512:+:16384:-:15872:- 512:-:16384:+:16896:- 512:-:16384:-:15872:+ 512:+:32768:+:33280:+ 512:+:32768:-:32256:- 512:-:32768:+:33280:- 512:-:32768:-:32256:+ 512:+:65536:+:66048:+ 512:+:65536:-:65024:- 512:-:65536:+:66048:- 512:-:65536:-:65024:+ 512:+:131072:+:131584:+ 512:+:131072:-:130560:- 512:-:131072:+:131584:- 512:-:131072:-:130560:+ 512:+:4194304:+:4194816:+ 512:+:4194304:-:4193792:- 512:-:4194304:+:4194816:- 512:-:4194304:-:4193792:+ 512:+:8388608:+:8389120:+ 512:+:8388608:-:8388096:- 512:-:8388608:+:8389120:- 512:-:8388608:-:8388096:+ 512:+:16777216:+:16777728:+ 512:+:16777216:-:16776704:- 512:-:16777216:+:16777728:- 512:-:16777216:-:16776704:+ 512:+:33554432:+:33554944:+ 512:+:33554432:-:33553920:- 512:-:33554432:+:33554944:- 512:-:33554432:-:33553920:+ 512:+:1073741824:+:1073742336:+ 512:+:1073741824:-:1073741312:- 512:-:1073741824:+:1073742336:- 512:-:1073741824:-:1073741312:+ 512:+:2147483648:+:2147484160:+ 512:+:2147483648:-:2147483136:- 512:-:2147483648:+:2147484160:- 512:-:2147483648:-:2147483136:+ 512:+:4294967296:+:4294967808:+ 512:+:4294967296:-:4294966784:- 512:-:4294967296:+:4294967808:- 512:-:4294967296:-:4294966784:+ 512:+:8589934592:+:8589935104:+ 512:+:8589934592:-:8589934080:- 512:-:8589934592:+:8589935104:- 512:-:8589934592:-:8589934080:+ 512:+:274877906944:+:274877907456:+ 512:+:274877906944:-:274877906432:- 512:-:274877906944:+:274877907456:- 512:-:274877906944:-:274877906432:+ 512:+:549755813888:+:549755814400:+ 512:+:549755813888:-:549755813376:- 512:-:549755813888:+:549755814400:- 512:-:549755813888:-:549755813376:+ 512:+:1099511627776:+:1099511628288:+ 512:+:1099511627776:-:1099511627264:- 512:-:1099511627776:+:1099511628288:- 512:-:1099511627776:-:1099511627264:+ 512:+:2199023255552:+:2199023256064:+ 512:+:2199023255552:-:2199023255040:- 512:-:2199023255552:+:2199023256064:- 512:-:2199023255552:-:2199023255040:+ 512:+:70368744177664:+:70368744178176:+ 512:+:70368744177664:-:70368744177152:- 512:-:70368744177664:+:70368744178176:- 512:-:70368744177664:-:70368744177152:+ 512:+:140737488355328:+:140737488355840:+ 512:+:140737488355328:-:140737488354816:- 512:-:140737488355328:+:140737488355840:- 512:-:140737488355328:-:140737488354816:+ 512:+:281474976710656:+:281474976711168:+ 512:+:281474976710656:-:281474976710144:- 512:-:281474976710656:+:281474976711168:- 512:-:281474976710656:-:281474976710144:+ 512:+:562949953421312:+:562949953421824:+ 512:+:562949953421312:-:562949953420800:- 512:-:562949953421312:+:562949953421824:- 512:-:562949953421312:-:562949953420800:+ 512:+:18014398509481984:+:18014398509482496:+ 512:+:18014398509481984:-:18014398509481472:- 512:-:18014398509481984:+:18014398509482496:- 512:-:18014398509481984:-:18014398509481472:+ 512:+:36028797018963968:+:36028797018964480:+ 512:+:36028797018963968:-:36028797018963456:- 512:-:36028797018963968:+:36028797018964480:- 512:-:36028797018963968:-:36028797018963456:+ 512:+:72057594037927936:+:72057594037928448:+ 512:+:72057594037927936:-:72057594037927424:- 512:-:72057594037927936:+:72057594037928448:- 512:-:72057594037927936:-:72057594037927424:+ 512:+:144115188075855872:+:144115188075856384:+ 512:+:144115188075855872:-:144115188075855360:- 512:-:144115188075855872:+:144115188075856384:- 512:-:144115188075855872:-:144115188075855360:+ 16384:+:0:+:16384:+ 16384:-:0:+:16384:- 16384:+:1:+:16385:+ 16384:+:1:-:16385:- 16384:-:1:+:16383:- 16384:-:1:-:16383:+ 16384:+:2:+:16386:+ 16384:+:2:-:16386:- 16384:-:2:+:16382:- 16384:-:2:-:16382:+ 16384:+:3:+:16387:+ 16384:+:3:-:16387:- 16384:-:3:+:16381:- 16384:-:3:-:16381:+ 16384:+:4:+:16388:+ 16384:+:4:-:16388:- 16384:-:4:+:16380:- 16384:-:4:-:16380:+ 16384:+:64:+:16448:+ 16384:+:64:-:16448:- 16384:-:64:+:16320:- 16384:-:64:-:16320:+ 16384:+:128:+:16512:+ 16384:+:128:-:16512:- 16384:-:128:+:16256:- 16384:-:128:-:16256:+ 16384:+:256:+:16640:+ 16384:+:256:-:16640:- 16384:-:256:+:16128:- 16384:-:256:-:16128:+ 16384:+:512:+:16896:+ 16384:+:512:-:16896:- 16384:-:512:+:15872:- 16384:-:512:-:15872:+ 16384:+:16384:+:0:+ 16384:+:16384:-:32768:- 16384:-:16384:+:32768:- 16384:-:16384:-:0:+ 16384:+:32768:+:49152:+ 16384:+:32768:-:16384:- 16384:-:32768:+:49152:- 16384:-:32768:-:16384:+ 16384:+:65536:+:81920:+ 16384:+:65536:-:49152:- 16384:-:65536:+:81920:- 16384:-:65536:-:49152:+ 16384:+:131072:+:147456:+ 16384:+:131072:-:114688:- 16384:-:131072:+:147456:- 16384:-:131072:-:114688:+ 16384:+:4194304:+:4210688:+ 16384:+:4194304:-:4177920:- 16384:-:4194304:+:4210688:- 16384:-:4194304:-:4177920:+ 16384:+:8388608:+:8404992:+ 16384:+:8388608:-:8372224:- 16384:-:8388608:+:8404992:- 16384:-:8388608:-:8372224:+ 16384:+:16777216:+:16793600:+ 16384:+:16777216:-:16760832:- 16384:-:16777216:+:16793600:- 16384:-:16777216:-:16760832:+ 16384:+:33554432:+:33570816:+ 16384:+:33554432:-:33538048:- 16384:-:33554432:+:33570816:- 16384:-:33554432:-:33538048:+ 16384:+:1073741824:+:1073758208:+ 16384:+:1073741824:-:1073725440:- 16384:-:1073741824:+:1073758208:- 16384:-:1073741824:-:1073725440:+ 16384:+:2147483648:+:2147500032:+ 16384:+:2147483648:-:2147467264:- 16384:-:2147483648:+:2147500032:- 16384:-:2147483648:-:2147467264:+ 16384:+:4294967296:+:4294983680:+ 16384:+:4294967296:-:4294950912:- 16384:-:4294967296:+:4294983680:- 16384:-:4294967296:-:4294950912:+ 16384:+:8589934592:+:8589950976:+ 16384:+:8589934592:-:8589918208:- 16384:-:8589934592:+:8589950976:- 16384:-:8589934592:-:8589918208:+ 16384:+:274877906944:+:274877923328:+ 16384:+:274877906944:-:274877890560:- 16384:-:274877906944:+:274877923328:- 16384:-:274877906944:-:274877890560:+ 16384:+:549755813888:+:549755830272:+ 16384:+:549755813888:-:549755797504:- 16384:-:549755813888:+:549755830272:- 16384:-:549755813888:-:549755797504:+ 16384:+:1099511627776:+:1099511644160:+ 16384:+:1099511627776:-:1099511611392:- 16384:-:1099511627776:+:1099511644160:- 16384:-:1099511627776:-:1099511611392:+ 16384:+:2199023255552:+:2199023271936:+ 16384:+:2199023255552:-:2199023239168:- 16384:-:2199023255552:+:2199023271936:- 16384:-:2199023255552:-:2199023239168:+ 16384:+:70368744177664:+:70368744194048:+ 16384:+:70368744177664:-:70368744161280:- 16384:-:70368744177664:+:70368744194048:- 16384:-:70368744177664:-:70368744161280:+ 16384:+:140737488355328:+:140737488371712:+ 16384:+:140737488355328:-:140737488338944:- 16384:-:140737488355328:+:140737488371712:- 16384:-:140737488355328:-:140737488338944:+ 16384:+:281474976710656:+:281474976727040:+ 16384:+:281474976710656:-:281474976694272:- 16384:-:281474976710656:+:281474976727040:- 16384:-:281474976710656:-:281474976694272:+ 16384:+:562949953421312:+:562949953437696:+ 16384:+:562949953421312:-:562949953404928:- 16384:-:562949953421312:+:562949953437696:- 16384:-:562949953421312:-:562949953404928:+ 16384:+:18014398509481984:+:18014398509498368:+ 16384:+:18014398509481984:-:18014398509465600:- 16384:-:18014398509481984:+:18014398509498368:- 16384:-:18014398509481984:-:18014398509465600:+ 16384:+:36028797018963968:+:36028797018980352:+ 16384:+:36028797018963968:-:36028797018947584:- 16384:-:36028797018963968:+:36028797018980352:- 16384:-:36028797018963968:-:36028797018947584:+ 16384:+:72057594037927936:+:72057594037944320:+ 16384:+:72057594037927936:-:72057594037911552:- 16384:-:72057594037927936:+:72057594037944320:- 16384:-:72057594037927936:-:72057594037911552:+ 16384:+:144115188075855872:+:144115188075872256:+ 16384:+:144115188075855872:-:144115188075839488:- 16384:-:144115188075855872:+:144115188075872256:- 16384:-:144115188075855872:-:144115188075839488:+ 32768:+:0:+:32768:+ 32768:-:0:+:32768:- 32768:+:1:+:32769:+ 32768:+:1:-:32769:- 32768:-:1:+:32767:- 32768:-:1:-:32767:+ 32768:+:2:+:32770:+ 32768:+:2:-:32770:- 32768:-:2:+:32766:- 32768:-:2:-:32766:+ 32768:+:3:+:32771:+ 32768:+:3:-:32771:- 32768:-:3:+:32765:- 32768:-:3:-:32765:+ 32768:+:4:+:32772:+ 32768:+:4:-:32772:- 32768:-:4:+:32764:- 32768:-:4:-:32764:+ 32768:+:64:+:32832:+ 32768:+:64:-:32832:- 32768:-:64:+:32704:- 32768:-:64:-:32704:+ 32768:+:128:+:32896:+ 32768:+:128:-:32896:- 32768:-:128:+:32640:- 32768:-:128:-:32640:+ 32768:+:256:+:33024:+ 32768:+:256:-:33024:- 32768:-:256:+:32512:- 32768:-:256:-:32512:+ 32768:+:512:+:33280:+ 32768:+:512:-:33280:- 32768:-:512:+:32256:- 32768:-:512:-:32256:+ 32768:+:16384:+:49152:+ 32768:+:16384:-:49152:- 32768:-:16384:+:16384:- 32768:-:16384:-:16384:+ 32768:+:32768:+:0:+ 32768:+:32768:-:65536:- 32768:-:32768:+:65536:- 32768:-:32768:-:0:+ 32768:+:65536:+:98304:+ 32768:+:65536:-:32768:- 32768:-:65536:+:98304:- 32768:-:65536:-:32768:+ 32768:+:131072:+:163840:+ 32768:+:131072:-:98304:- 32768:-:131072:+:163840:- 32768:-:131072:-:98304:+ 32768:+:4194304:+:4227072:+ 32768:+:4194304:-:4161536:- 32768:-:4194304:+:4227072:- 32768:-:4194304:-:4161536:+ 32768:+:8388608:+:8421376:+ 32768:+:8388608:-:8355840:- 32768:-:8388608:+:8421376:- 32768:-:8388608:-:8355840:+ 32768:+:16777216:+:16809984:+ 32768:+:16777216:-:16744448:- 32768:-:16777216:+:16809984:- 32768:-:16777216:-:16744448:+ 32768:+:33554432:+:33587200:+ 32768:+:33554432:-:33521664:- 32768:-:33554432:+:33587200:- 32768:-:33554432:-:33521664:+ 32768:+:1073741824:+:1073774592:+ 32768:+:1073741824:-:1073709056:- 32768:-:1073741824:+:1073774592:- 32768:-:1073741824:-:1073709056:+ 32768:+:2147483648:+:2147516416:+ 32768:+:2147483648:-:2147450880:- 32768:-:2147483648:+:2147516416:- 32768:-:2147483648:-:2147450880:+ 32768:+:4294967296:+:4295000064:+ 32768:+:4294967296:-:4294934528:- 32768:-:4294967296:+:4295000064:- 32768:-:4294967296:-:4294934528:+ 32768:+:8589934592:+:8589967360:+ 32768:+:8589934592:-:8589901824:- 32768:-:8589934592:+:8589967360:- 32768:-:8589934592:-:8589901824:+ 32768:+:274877906944:+:274877939712:+ 32768:+:274877906944:-:274877874176:- 32768:-:274877906944:+:274877939712:- 32768:-:274877906944:-:274877874176:+ 32768:+:549755813888:+:549755846656:+ 32768:+:549755813888:-:549755781120:- 32768:-:549755813888:+:549755846656:- 32768:-:549755813888:-:549755781120:+ 32768:+:1099511627776:+:1099511660544:+ 32768:+:1099511627776:-:1099511595008:- 32768:-:1099511627776:+:1099511660544:- 32768:-:1099511627776:-:1099511595008:+ 32768:+:2199023255552:+:2199023288320:+ 32768:+:2199023255552:-:2199023222784:- 32768:-:2199023255552:+:2199023288320:- 32768:-:2199023255552:-:2199023222784:+ 32768:+:70368744177664:+:70368744210432:+ 32768:+:70368744177664:-:70368744144896:- 32768:-:70368744177664:+:70368744210432:- 32768:-:70368744177664:-:70368744144896:+ 32768:+:140737488355328:+:140737488388096:+ 32768:+:140737488355328:-:140737488322560:- 32768:-:140737488355328:+:140737488388096:- 32768:-:140737488355328:-:140737488322560:+ 32768:+:281474976710656:+:281474976743424:+ 32768:+:281474976710656:-:281474976677888:- 32768:-:281474976710656:+:281474976743424:- 32768:-:281474976710656:-:281474976677888:+ 32768:+:562949953421312:+:562949953454080:+ 32768:+:562949953421312:-:562949953388544:- 32768:-:562949953421312:+:562949953454080:- 32768:-:562949953421312:-:562949953388544:+ 32768:+:18014398509481984:+:18014398509514752:+ 32768:+:18014398509481984:-:18014398509449216:- 32768:-:18014398509481984:+:18014398509514752:- 32768:-:18014398509481984:-:18014398509449216:+ 32768:+:36028797018963968:+:36028797018996736:+ 32768:+:36028797018963968:-:36028797018931200:- 32768:-:36028797018963968:+:36028797018996736:- 32768:-:36028797018963968:-:36028797018931200:+ 32768:+:72057594037927936:+:72057594037960704:+ 32768:+:72057594037927936:-:72057594037895168:- 32768:-:72057594037927936:+:72057594037960704:- 32768:-:72057594037927936:-:72057594037895168:+ 32768:+:144115188075855872:+:144115188075888640:+ 32768:+:144115188075855872:-:144115188075823104:- 32768:-:144115188075855872:+:144115188075888640:- 32768:-:144115188075855872:-:144115188075823104:+ 65536:+:0:+:65536:+ 65536:-:0:+:65536:- 65536:+:1:+:65537:+ 65536:+:1:-:65537:- 65536:-:1:+:65535:- 65536:-:1:-:65535:+ 65536:+:2:+:65538:+ 65536:+:2:-:65538:- 65536:-:2:+:65534:- 65536:-:2:-:65534:+ 65536:+:3:+:65539:+ 65536:+:3:-:65539:- 65536:-:3:+:65533:- 65536:-:3:-:65533:+ 65536:+:4:+:65540:+ 65536:+:4:-:65540:- 65536:-:4:+:65532:- 65536:-:4:-:65532:+ 65536:+:64:+:65600:+ 65536:+:64:-:65600:- 65536:-:64:+:65472:- 65536:-:64:-:65472:+ 65536:+:128:+:65664:+ 65536:+:128:-:65664:- 65536:-:128:+:65408:- 65536:-:128:-:65408:+ 65536:+:256:+:65792:+ 65536:+:256:-:65792:- 65536:-:256:+:65280:- 65536:-:256:-:65280:+ 65536:+:512:+:66048:+ 65536:+:512:-:66048:- 65536:-:512:+:65024:- 65536:-:512:-:65024:+ 65536:+:16384:+:81920:+ 65536:+:16384:-:81920:- 65536:-:16384:+:49152:- 65536:-:16384:-:49152:+ 65536:+:32768:+:98304:+ 65536:+:32768:-:98304:- 65536:-:32768:+:32768:- 65536:-:32768:-:32768:+ 65536:+:65536:+:0:+ 65536:+:65536:-:131072:- 65536:-:65536:+:131072:- 65536:-:65536:-:0:+ 65536:+:131072:+:196608:+ 65536:+:131072:-:65536:- 65536:-:131072:+:196608:- 65536:-:131072:-:65536:+ 65536:+:4194304:+:4259840:+ 65536:+:4194304:-:4128768:- 65536:-:4194304:+:4259840:- 65536:-:4194304:-:4128768:+ 65536:+:8388608:+:8454144:+ 65536:+:8388608:-:8323072:- 65536:-:8388608:+:8454144:- 65536:-:8388608:-:8323072:+ 65536:+:16777216:+:16842752:+ 65536:+:16777216:-:16711680:- 65536:-:16777216:+:16842752:- 65536:-:16777216:-:16711680:+ 65536:+:33554432:+:33619968:+ 65536:+:33554432:-:33488896:- 65536:-:33554432:+:33619968:- 65536:-:33554432:-:33488896:+ 65536:+:1073741824:+:1073807360:+ 65536:+:1073741824:-:1073676288:- 65536:-:1073741824:+:1073807360:- 65536:-:1073741824:-:1073676288:+ 65536:+:2147483648:+:2147549184:+ 65536:+:2147483648:-:2147418112:- 65536:-:2147483648:+:2147549184:- 65536:-:2147483648:-:2147418112:+ 65536:+:4294967296:+:4295032832:+ 65536:+:4294967296:-:4294901760:- 65536:-:4294967296:+:4295032832:- 65536:-:4294967296:-:4294901760:+ 65536:+:8589934592:+:8590000128:+ 65536:+:8589934592:-:8589869056:- 65536:-:8589934592:+:8590000128:- 65536:-:8589934592:-:8589869056:+ 65536:+:274877906944:+:274877972480:+ 65536:+:274877906944:-:274877841408:- 65536:-:274877906944:+:274877972480:- 65536:-:274877906944:-:274877841408:+ 65536:+:549755813888:+:549755879424:+ 65536:+:549755813888:-:549755748352:- 65536:-:549755813888:+:549755879424:- 65536:-:549755813888:-:549755748352:+ 65536:+:1099511627776:+:1099511693312:+ 65536:+:1099511627776:-:1099511562240:- 65536:-:1099511627776:+:1099511693312:- 65536:-:1099511627776:-:1099511562240:+ 65536:+:2199023255552:+:2199023321088:+ 65536:+:2199023255552:-:2199023190016:- 65536:-:2199023255552:+:2199023321088:- 65536:-:2199023255552:-:2199023190016:+ 65536:+:70368744177664:+:70368744243200:+ 65536:+:70368744177664:-:70368744112128:- 65536:-:70368744177664:+:70368744243200:- 65536:-:70368744177664:-:70368744112128:+ 65536:+:140737488355328:+:140737488420864:+ 65536:+:140737488355328:-:140737488289792:- 65536:-:140737488355328:+:140737488420864:- 65536:-:140737488355328:-:140737488289792:+ 65536:+:281474976710656:+:281474976776192:+ 65536:+:281474976710656:-:281474976645120:- 65536:-:281474976710656:+:281474976776192:- 65536:-:281474976710656:-:281474976645120:+ 65536:+:562949953421312:+:562949953486848:+ 65536:+:562949953421312:-:562949953355776:- 65536:-:562949953421312:+:562949953486848:- 65536:-:562949953421312:-:562949953355776:+ 65536:+:18014398509481984:+:18014398509547520:+ 65536:+:18014398509481984:-:18014398509416448:- 65536:-:18014398509481984:+:18014398509547520:- 65536:-:18014398509481984:-:18014398509416448:+ 65536:+:36028797018963968:+:36028797019029504:+ 65536:+:36028797018963968:-:36028797018898432:- 65536:-:36028797018963968:+:36028797019029504:- 65536:-:36028797018963968:-:36028797018898432:+ 65536:+:72057594037927936:+:72057594037993472:+ 65536:+:72057594037927936:-:72057594037862400:- 65536:-:72057594037927936:+:72057594037993472:- 65536:-:72057594037927936:-:72057594037862400:+ 65536:+:144115188075855872:+:144115188075921408:+ 65536:+:144115188075855872:-:144115188075790336:- 65536:-:144115188075855872:+:144115188075921408:- 65536:-:144115188075855872:-:144115188075790336:+ 131072:+:0:+:131072:+ 131072:-:0:+:131072:- 131072:+:1:+:131073:+ 131072:+:1:-:131073:- 131072:-:1:+:131071:- 131072:-:1:-:131071:+ 131072:+:2:+:131074:+ 131072:+:2:-:131074:- 131072:-:2:+:131070:- 131072:-:2:-:131070:+ 131072:+:3:+:131075:+ 131072:+:3:-:131075:- 131072:-:3:+:131069:- 131072:-:3:-:131069:+ 131072:+:4:+:131076:+ 131072:+:4:-:131076:- 131072:-:4:+:131068:- 131072:-:4:-:131068:+ 131072:+:64:+:131136:+ 131072:+:64:-:131136:- 131072:-:64:+:131008:- 131072:-:64:-:131008:+ 131072:+:128:+:131200:+ 131072:+:128:-:131200:- 131072:-:128:+:130944:- 131072:-:128:-:130944:+ 131072:+:256:+:131328:+ 131072:+:256:-:131328:- 131072:-:256:+:130816:- 131072:-:256:-:130816:+ 131072:+:512:+:131584:+ 131072:+:512:-:131584:- 131072:-:512:+:130560:- 131072:-:512:-:130560:+ 131072:+:16384:+:147456:+ 131072:+:16384:-:147456:- 131072:-:16384:+:114688:- 131072:-:16384:-:114688:+ 131072:+:32768:+:163840:+ 131072:+:32768:-:163840:- 131072:-:32768:+:98304:- 131072:-:32768:-:98304:+ 131072:+:65536:+:196608:+ 131072:+:65536:-:196608:- 131072:-:65536:+:65536:- 131072:-:65536:-:65536:+ 131072:+:131072:+:0:+ 131072:+:131072:-:262144:- 131072:-:131072:+:262144:- 131072:-:131072:-:0:+ 131072:+:4194304:+:4325376:+ 131072:+:4194304:-:4063232:- 131072:-:4194304:+:4325376:- 131072:-:4194304:-:4063232:+ 131072:+:8388608:+:8519680:+ 131072:+:8388608:-:8257536:- 131072:-:8388608:+:8519680:- 131072:-:8388608:-:8257536:+ 131072:+:16777216:+:16908288:+ 131072:+:16777216:-:16646144:- 131072:-:16777216:+:16908288:- 131072:-:16777216:-:16646144:+ 131072:+:33554432:+:33685504:+ 131072:+:33554432:-:33423360:- 131072:-:33554432:+:33685504:- 131072:-:33554432:-:33423360:+ 131072:+:1073741824:+:1073872896:+ 131072:+:1073741824:-:1073610752:- 131072:-:1073741824:+:1073872896:- 131072:-:1073741824:-:1073610752:+ 131072:+:2147483648:+:2147614720:+ 131072:+:2147483648:-:2147352576:- 131072:-:2147483648:+:2147614720:- 131072:-:2147483648:-:2147352576:+ 131072:+:4294967296:+:4295098368:+ 131072:+:4294967296:-:4294836224:- 131072:-:4294967296:+:4295098368:- 131072:-:4294967296:-:4294836224:+ 131072:+:8589934592:+:8590065664:+ 131072:+:8589934592:-:8589803520:- 131072:-:8589934592:+:8590065664:- 131072:-:8589934592:-:8589803520:+ 131072:+:274877906944:+:274878038016:+ 131072:+:274877906944:-:274877775872:- 131072:-:274877906944:+:274878038016:- 131072:-:274877906944:-:274877775872:+ 131072:+:549755813888:+:549755944960:+ 131072:+:549755813888:-:549755682816:- 131072:-:549755813888:+:549755944960:- 131072:-:549755813888:-:549755682816:+ 131072:+:1099511627776:+:1099511758848:+ 131072:+:1099511627776:-:1099511496704:- 131072:-:1099511627776:+:1099511758848:- 131072:-:1099511627776:-:1099511496704:+ 131072:+:2199023255552:+:2199023386624:+ 131072:+:2199023255552:-:2199023124480:- 131072:-:2199023255552:+:2199023386624:- 131072:-:2199023255552:-:2199023124480:+ 131072:+:70368744177664:+:70368744308736:+ 131072:+:70368744177664:-:70368744046592:- 131072:-:70368744177664:+:70368744308736:- 131072:-:70368744177664:-:70368744046592:+ 131072:+:140737488355328:+:140737488486400:+ 131072:+:140737488355328:-:140737488224256:- 131072:-:140737488355328:+:140737488486400:- 131072:-:140737488355328:-:140737488224256:+ 131072:+:281474976710656:+:281474976841728:+ 131072:+:281474976710656:-:281474976579584:- 131072:-:281474976710656:+:281474976841728:- 131072:-:281474976710656:-:281474976579584:+ 131072:+:562949953421312:+:562949953552384:+ 131072:+:562949953421312:-:562949953290240:- 131072:-:562949953421312:+:562949953552384:- 131072:-:562949953421312:-:562949953290240:+ 131072:+:18014398509481984:+:18014398509613056:+ 131072:+:18014398509481984:-:18014398509350912:- 131072:-:18014398509481984:+:18014398509613056:- 131072:-:18014398509481984:-:18014398509350912:+ 131072:+:36028797018963968:+:36028797019095040:+ 131072:+:36028797018963968:-:36028797018832896:- 131072:-:36028797018963968:+:36028797019095040:- 131072:-:36028797018963968:-:36028797018832896:+ 131072:+:72057594037927936:+:72057594038059008:+ 131072:+:72057594037927936:-:72057594037796864:- 131072:-:72057594037927936:+:72057594038059008:- 131072:-:72057594037927936:-:72057594037796864:+ 131072:+:144115188075855872:+:144115188075986944:+ 131072:+:144115188075855872:-:144115188075724800:- 131072:-:144115188075855872:+:144115188075986944:- 131072:-:144115188075855872:-:144115188075724800:+ 4194304:+:0:+:4194304:+ 4194304:-:0:+:4194304:- 4194304:+:1:+:4194305:+ 4194304:+:1:-:4194305:- 4194304:-:1:+:4194303:- 4194304:-:1:-:4194303:+ 4194304:+:2:+:4194306:+ 4194304:+:2:-:4194306:- 4194304:-:2:+:4194302:- 4194304:-:2:-:4194302:+ 4194304:+:3:+:4194307:+ 4194304:+:3:-:4194307:- 4194304:-:3:+:4194301:- 4194304:-:3:-:4194301:+ 4194304:+:4:+:4194308:+ 4194304:+:4:-:4194308:- 4194304:-:4:+:4194300:- 4194304:-:4:-:4194300:+ 4194304:+:64:+:4194368:+ 4194304:+:64:-:4194368:- 4194304:-:64:+:4194240:- 4194304:-:64:-:4194240:+ 4194304:+:128:+:4194432:+ 4194304:+:128:-:4194432:- 4194304:-:128:+:4194176:- 4194304:-:128:-:4194176:+ 4194304:+:256:+:4194560:+ 4194304:+:256:-:4194560:- 4194304:-:256:+:4194048:- 4194304:-:256:-:4194048:+ 4194304:+:512:+:4194816:+ 4194304:+:512:-:4194816:- 4194304:-:512:+:4193792:- 4194304:-:512:-:4193792:+ 4194304:+:16384:+:4210688:+ 4194304:+:16384:-:4210688:- 4194304:-:16384:+:4177920:- 4194304:-:16384:-:4177920:+ 4194304:+:32768:+:4227072:+ 4194304:+:32768:-:4227072:- 4194304:-:32768:+:4161536:- 4194304:-:32768:-:4161536:+ 4194304:+:65536:+:4259840:+ 4194304:+:65536:-:4259840:- 4194304:-:65536:+:4128768:- 4194304:-:65536:-:4128768:+ 4194304:+:131072:+:4325376:+ 4194304:+:131072:-:4325376:- 4194304:-:131072:+:4063232:- 4194304:-:131072:-:4063232:+ 4194304:+:4194304:+:0:+ 4194304:+:4194304:-:8388608:- 4194304:-:4194304:+:8388608:- 4194304:-:4194304:-:0:+ 4194304:+:8388608:+:12582912:+ 4194304:+:8388608:-:4194304:- 4194304:-:8388608:+:12582912:- 4194304:-:8388608:-:4194304:+ 4194304:+:16777216:+:20971520:+ 4194304:+:16777216:-:12582912:- 4194304:-:16777216:+:20971520:- 4194304:-:16777216:-:12582912:+ 4194304:+:33554432:+:37748736:+ 4194304:+:33554432:-:29360128:- 4194304:-:33554432:+:37748736:- 4194304:-:33554432:-:29360128:+ 4194304:+:1073741824:+:1077936128:+ 4194304:+:1073741824:-:1069547520:- 4194304:-:1073741824:+:1077936128:- 4194304:-:1073741824:-:1069547520:+ 4194304:+:2147483648:+:2151677952:+ 4194304:+:2147483648:-:2143289344:- 4194304:-:2147483648:+:2151677952:- 4194304:-:2147483648:-:2143289344:+ 4194304:+:4294967296:+:4299161600:+ 4194304:+:4294967296:-:4290772992:- 4194304:-:4294967296:+:4299161600:- 4194304:-:4294967296:-:4290772992:+ 4194304:+:8589934592:+:8594128896:+ 4194304:+:8589934592:-:8585740288:- 4194304:-:8589934592:+:8594128896:- 4194304:-:8589934592:-:8585740288:+ 4194304:+:274877906944:+:274882101248:+ 4194304:+:274877906944:-:274873712640:- 4194304:-:274877906944:+:274882101248:- 4194304:-:274877906944:-:274873712640:+ 4194304:+:549755813888:+:549760008192:+ 4194304:+:549755813888:-:549751619584:- 4194304:-:549755813888:+:549760008192:- 4194304:-:549755813888:-:549751619584:+ 4194304:+:1099511627776:+:1099515822080:+ 4194304:+:1099511627776:-:1099507433472:- 4194304:-:1099511627776:+:1099515822080:- 4194304:-:1099511627776:-:1099507433472:+ 4194304:+:2199023255552:+:2199027449856:+ 4194304:+:2199023255552:-:2199019061248:- 4194304:-:2199023255552:+:2199027449856:- 4194304:-:2199023255552:-:2199019061248:+ 4194304:+:70368744177664:+:70368748371968:+ 4194304:+:70368744177664:-:70368739983360:- 4194304:-:70368744177664:+:70368748371968:- 4194304:-:70368744177664:-:70368739983360:+ 4194304:+:140737488355328:+:140737492549632:+ 4194304:+:140737488355328:-:140737484161024:- 4194304:-:140737488355328:+:140737492549632:- 4194304:-:140737488355328:-:140737484161024:+ 4194304:+:281474976710656:+:281474980904960:+ 4194304:+:281474976710656:-:281474972516352:- 4194304:-:281474976710656:+:281474980904960:- 4194304:-:281474976710656:-:281474972516352:+ 4194304:+:562949953421312:+:562949957615616:+ 4194304:+:562949953421312:-:562949949227008:- 4194304:-:562949953421312:+:562949957615616:- 4194304:-:562949953421312:-:562949949227008:+ 4194304:+:18014398509481984:+:18014398513676288:+ 4194304:+:18014398509481984:-:18014398505287680:- 4194304:-:18014398509481984:+:18014398513676288:- 4194304:-:18014398509481984:-:18014398505287680:+ 4194304:+:36028797018963968:+:36028797023158272:+ 4194304:+:36028797018963968:-:36028797014769664:- 4194304:-:36028797018963968:+:36028797023158272:- 4194304:-:36028797018963968:-:36028797014769664:+ 4194304:+:72057594037927936:+:72057594042122240:+ 4194304:+:72057594037927936:-:72057594033733632:- 4194304:-:72057594037927936:+:72057594042122240:- 4194304:-:72057594037927936:-:72057594033733632:+ 4194304:+:144115188075855872:+:144115188080050176:+ 4194304:+:144115188075855872:-:144115188071661568:- 4194304:-:144115188075855872:+:144115188080050176:- 4194304:-:144115188075855872:-:144115188071661568:+ 8388608:+:0:+:8388608:+ 8388608:-:0:+:8388608:- 8388608:+:1:+:8388609:+ 8388608:+:1:-:8388609:- 8388608:-:1:+:8388607:- 8388608:-:1:-:8388607:+ 8388608:+:2:+:8388610:+ 8388608:+:2:-:8388610:- 8388608:-:2:+:8388606:- 8388608:-:2:-:8388606:+ 8388608:+:3:+:8388611:+ 8388608:+:3:-:8388611:- 8388608:-:3:+:8388605:- 8388608:-:3:-:8388605:+ 8388608:+:4:+:8388612:+ 8388608:+:4:-:8388612:- 8388608:-:4:+:8388604:- 8388608:-:4:-:8388604:+ 8388608:+:64:+:8388672:+ 8388608:+:64:-:8388672:- 8388608:-:64:+:8388544:- 8388608:-:64:-:8388544:+ 8388608:+:128:+:8388736:+ 8388608:+:128:-:8388736:- 8388608:-:128:+:8388480:- 8388608:-:128:-:8388480:+ 8388608:+:256:+:8388864:+ 8388608:+:256:-:8388864:- 8388608:-:256:+:8388352:- 8388608:-:256:-:8388352:+ 8388608:+:512:+:8389120:+ 8388608:+:512:-:8389120:- 8388608:-:512:+:8388096:- 8388608:-:512:-:8388096:+ 8388608:+:16384:+:8404992:+ 8388608:+:16384:-:8404992:- 8388608:-:16384:+:8372224:- 8388608:-:16384:-:8372224:+ 8388608:+:32768:+:8421376:+ 8388608:+:32768:-:8421376:- 8388608:-:32768:+:8355840:- 8388608:-:32768:-:8355840:+ 8388608:+:65536:+:8454144:+ 8388608:+:65536:-:8454144:- 8388608:-:65536:+:8323072:- 8388608:-:65536:-:8323072:+ 8388608:+:131072:+:8519680:+ 8388608:+:131072:-:8519680:- 8388608:-:131072:+:8257536:- 8388608:-:131072:-:8257536:+ 8388608:+:4194304:+:12582912:+ 8388608:+:4194304:-:12582912:- 8388608:-:4194304:+:4194304:- 8388608:-:4194304:-:4194304:+ 8388608:+:8388608:+:0:+ 8388608:+:8388608:-:16777216:- 8388608:-:8388608:+:16777216:- 8388608:-:8388608:-:0:+ 8388608:+:16777216:+:25165824:+ 8388608:+:16777216:-:8388608:- 8388608:-:16777216:+:25165824:- 8388608:-:16777216:-:8388608:+ 8388608:+:33554432:+:41943040:+ 8388608:+:33554432:-:25165824:- 8388608:-:33554432:+:41943040:- 8388608:-:33554432:-:25165824:+ 8388608:+:1073741824:+:1082130432:+ 8388608:+:1073741824:-:1065353216:- 8388608:-:1073741824:+:1082130432:- 8388608:-:1073741824:-:1065353216:+ 8388608:+:2147483648:+:2155872256:+ 8388608:+:2147483648:-:2139095040:- 8388608:-:2147483648:+:2155872256:- 8388608:-:2147483648:-:2139095040:+ 8388608:+:4294967296:+:4303355904:+ 8388608:+:4294967296:-:4286578688:- 8388608:-:4294967296:+:4303355904:- 8388608:-:4294967296:-:4286578688:+ 8388608:+:8589934592:+:8598323200:+ 8388608:+:8589934592:-:8581545984:- 8388608:-:8589934592:+:8598323200:- 8388608:-:8589934592:-:8581545984:+ 8388608:+:274877906944:+:274886295552:+ 8388608:+:274877906944:-:274869518336:- 8388608:-:274877906944:+:274886295552:- 8388608:-:274877906944:-:274869518336:+ 8388608:+:549755813888:+:549764202496:+ 8388608:+:549755813888:-:549747425280:- 8388608:-:549755813888:+:549764202496:- 8388608:-:549755813888:-:549747425280:+ 8388608:+:1099511627776:+:1099520016384:+ 8388608:+:1099511627776:-:1099503239168:- 8388608:-:1099511627776:+:1099520016384:- 8388608:-:1099511627776:-:1099503239168:+ 8388608:+:2199023255552:+:2199031644160:+ 8388608:+:2199023255552:-:2199014866944:- 8388608:-:2199023255552:+:2199031644160:- 8388608:-:2199023255552:-:2199014866944:+ 8388608:+:70368744177664:+:70368752566272:+ 8388608:+:70368744177664:-:70368735789056:- 8388608:-:70368744177664:+:70368752566272:- 8388608:-:70368744177664:-:70368735789056:+ 8388608:+:140737488355328:+:140737496743936:+ 8388608:+:140737488355328:-:140737479966720:- 8388608:-:140737488355328:+:140737496743936:- 8388608:-:140737488355328:-:140737479966720:+ 8388608:+:281474976710656:+:281474985099264:+ 8388608:+:281474976710656:-:281474968322048:- 8388608:-:281474976710656:+:281474985099264:- 8388608:-:281474976710656:-:281474968322048:+ 8388608:+:562949953421312:+:562949961809920:+ 8388608:+:562949953421312:-:562949945032704:- 8388608:-:562949953421312:+:562949961809920:- 8388608:-:562949953421312:-:562949945032704:+ 8388608:+:18014398509481984:+:18014398517870592:+ 8388608:+:18014398509481984:-:18014398501093376:- 8388608:-:18014398509481984:+:18014398517870592:- 8388608:-:18014398509481984:-:18014398501093376:+ 8388608:+:36028797018963968:+:36028797027352576:+ 8388608:+:36028797018963968:-:36028797010575360:- 8388608:-:36028797018963968:+:36028797027352576:- 8388608:-:36028797018963968:-:36028797010575360:+ 8388608:+:72057594037927936:+:72057594046316544:+ 8388608:+:72057594037927936:-:72057594029539328:- 8388608:-:72057594037927936:+:72057594046316544:- 8388608:-:72057594037927936:-:72057594029539328:+ 8388608:+:144115188075855872:+:144115188084244480:+ 8388608:+:144115188075855872:-:144115188067467264:- 8388608:-:144115188075855872:+:144115188084244480:- 8388608:-:144115188075855872:-:144115188067467264:+ 16777216:+:0:+:16777216:+ 16777216:-:0:+:16777216:- 16777216:+:1:+:16777217:+ 16777216:+:1:-:16777217:- 16777216:-:1:+:16777215:- 16777216:-:1:-:16777215:+ 16777216:+:2:+:16777218:+ 16777216:+:2:-:16777218:- 16777216:-:2:+:16777214:- 16777216:-:2:-:16777214:+ 16777216:+:3:+:16777219:+ 16777216:+:3:-:16777219:- 16777216:-:3:+:16777213:- 16777216:-:3:-:16777213:+ 16777216:+:4:+:16777220:+ 16777216:+:4:-:16777220:- 16777216:-:4:+:16777212:- 16777216:-:4:-:16777212:+ 16777216:+:64:+:16777280:+ 16777216:+:64:-:16777280:- 16777216:-:64:+:16777152:- 16777216:-:64:-:16777152:+ 16777216:+:128:+:16777344:+ 16777216:+:128:-:16777344:- 16777216:-:128:+:16777088:- 16777216:-:128:-:16777088:+ 16777216:+:256:+:16777472:+ 16777216:+:256:-:16777472:- 16777216:-:256:+:16776960:- 16777216:-:256:-:16776960:+ 16777216:+:512:+:16777728:+ 16777216:+:512:-:16777728:- 16777216:-:512:+:16776704:- 16777216:-:512:-:16776704:+ 16777216:+:16384:+:16793600:+ 16777216:+:16384:-:16793600:- 16777216:-:16384:+:16760832:- 16777216:-:16384:-:16760832:+ 16777216:+:32768:+:16809984:+ 16777216:+:32768:-:16809984:- 16777216:-:32768:+:16744448:- 16777216:-:32768:-:16744448:+ 16777216:+:65536:+:16842752:+ 16777216:+:65536:-:16842752:- 16777216:-:65536:+:16711680:- 16777216:-:65536:-:16711680:+ 16777216:+:131072:+:16908288:+ 16777216:+:131072:-:16908288:- 16777216:-:131072:+:16646144:- 16777216:-:131072:-:16646144:+ 16777216:+:4194304:+:20971520:+ 16777216:+:4194304:-:20971520:- 16777216:-:4194304:+:12582912:- 16777216:-:4194304:-:12582912:+ 16777216:+:8388608:+:25165824:+ 16777216:+:8388608:-:25165824:- 16777216:-:8388608:+:8388608:- 16777216:-:8388608:-:8388608:+ 16777216:+:16777216:+:0:+ 16777216:+:16777216:-:33554432:- 16777216:-:16777216:+:33554432:- 16777216:-:16777216:-:0:+ 16777216:+:33554432:+:50331648:+ 16777216:+:33554432:-:16777216:- 16777216:-:33554432:+:50331648:- 16777216:-:33554432:-:16777216:+ 16777216:+:1073741824:+:1090519040:+ 16777216:+:1073741824:-:1056964608:- 16777216:-:1073741824:+:1090519040:- 16777216:-:1073741824:-:1056964608:+ 16777216:+:2147483648:+:2164260864:+ 16777216:+:2147483648:-:2130706432:- 16777216:-:2147483648:+:2164260864:- 16777216:-:2147483648:-:2130706432:+ 16777216:+:4294967296:+:4311744512:+ 16777216:+:4294967296:-:4278190080:- 16777216:-:4294967296:+:4311744512:- 16777216:-:4294967296:-:4278190080:+ 16777216:+:8589934592:+:8606711808:+ 16777216:+:8589934592:-:8573157376:- 16777216:-:8589934592:+:8606711808:- 16777216:-:8589934592:-:8573157376:+ 16777216:+:274877906944:+:274894684160:+ 16777216:+:274877906944:-:274861129728:- 16777216:-:274877906944:+:274894684160:- 16777216:-:274877906944:-:274861129728:+ 16777216:+:549755813888:+:549772591104:+ 16777216:+:549755813888:-:549739036672:- 16777216:-:549755813888:+:549772591104:- 16777216:-:549755813888:-:549739036672:+ 16777216:+:1099511627776:+:1099528404992:+ 16777216:+:1099511627776:-:1099494850560:- 16777216:-:1099511627776:+:1099528404992:- 16777216:-:1099511627776:-:1099494850560:+ 16777216:+:2199023255552:+:2199040032768:+ 16777216:+:2199023255552:-:2199006478336:- 16777216:-:2199023255552:+:2199040032768:- 16777216:-:2199023255552:-:2199006478336:+ 16777216:+:70368744177664:+:70368760954880:+ 16777216:+:70368744177664:-:70368727400448:- 16777216:-:70368744177664:+:70368760954880:- 16777216:-:70368744177664:-:70368727400448:+ 16777216:+:140737488355328:+:140737505132544:+ 16777216:+:140737488355328:-:140737471578112:- 16777216:-:140737488355328:+:140737505132544:- 16777216:-:140737488355328:-:140737471578112:+ 16777216:+:281474976710656:+:281474993487872:+ 16777216:+:281474976710656:-:281474959933440:- 16777216:-:281474976710656:+:281474993487872:- 16777216:-:281474976710656:-:281474959933440:+ 16777216:+:562949953421312:+:562949970198528:+ 16777216:+:562949953421312:-:562949936644096:- 16777216:-:562949953421312:+:562949970198528:- 16777216:-:562949953421312:-:562949936644096:+ 16777216:+:18014398509481984:+:18014398526259200:+ 16777216:+:18014398509481984:-:18014398492704768:- 16777216:-:18014398509481984:+:18014398526259200:- 16777216:-:18014398509481984:-:18014398492704768:+ 16777216:+:36028797018963968:+:36028797035741184:+ 16777216:+:36028797018963968:-:36028797002186752:- 16777216:-:36028797018963968:+:36028797035741184:- 16777216:-:36028797018963968:-:36028797002186752:+ 16777216:+:72057594037927936:+:72057594054705152:+ 16777216:+:72057594037927936:-:72057594021150720:- 16777216:-:72057594037927936:+:72057594054705152:- 16777216:-:72057594037927936:-:72057594021150720:+ 16777216:+:144115188075855872:+:144115188092633088:+ 16777216:+:144115188075855872:-:144115188059078656:- 16777216:-:144115188075855872:+:144115188092633088:- 16777216:-:144115188075855872:-:144115188059078656:+ 33554432:+:0:+:33554432:+ 33554432:-:0:+:33554432:- 33554432:+:1:+:33554433:+ 33554432:+:1:-:33554433:- 33554432:-:1:+:33554431:- 33554432:-:1:-:33554431:+ 33554432:+:2:+:33554434:+ 33554432:+:2:-:33554434:- 33554432:-:2:+:33554430:- 33554432:-:2:-:33554430:+ 33554432:+:3:+:33554435:+ 33554432:+:3:-:33554435:- 33554432:-:3:+:33554429:- 33554432:-:3:-:33554429:+ 33554432:+:4:+:33554436:+ 33554432:+:4:-:33554436:- 33554432:-:4:+:33554428:- 33554432:-:4:-:33554428:+ 33554432:+:64:+:33554496:+ 33554432:+:64:-:33554496:- 33554432:-:64:+:33554368:- 33554432:-:64:-:33554368:+ 33554432:+:128:+:33554560:+ 33554432:+:128:-:33554560:- 33554432:-:128:+:33554304:- 33554432:-:128:-:33554304:+ 33554432:+:256:+:33554688:+ 33554432:+:256:-:33554688:- 33554432:-:256:+:33554176:- 33554432:-:256:-:33554176:+ 33554432:+:512:+:33554944:+ 33554432:+:512:-:33554944:- 33554432:-:512:+:33553920:- 33554432:-:512:-:33553920:+ 33554432:+:16384:+:33570816:+ 33554432:+:16384:-:33570816:- 33554432:-:16384:+:33538048:- 33554432:-:16384:-:33538048:+ 33554432:+:32768:+:33587200:+ 33554432:+:32768:-:33587200:- 33554432:-:32768:+:33521664:- 33554432:-:32768:-:33521664:+ 33554432:+:65536:+:33619968:+ 33554432:+:65536:-:33619968:- 33554432:-:65536:+:33488896:- 33554432:-:65536:-:33488896:+ 33554432:+:131072:+:33685504:+ 33554432:+:131072:-:33685504:- 33554432:-:131072:+:33423360:- 33554432:-:131072:-:33423360:+ 33554432:+:4194304:+:37748736:+ 33554432:+:4194304:-:37748736:- 33554432:-:4194304:+:29360128:- 33554432:-:4194304:-:29360128:+ 33554432:+:8388608:+:41943040:+ 33554432:+:8388608:-:41943040:- 33554432:-:8388608:+:25165824:- 33554432:-:8388608:-:25165824:+ 33554432:+:16777216:+:50331648:+ 33554432:+:16777216:-:50331648:- 33554432:-:16777216:+:16777216:- 33554432:-:16777216:-:16777216:+ 33554432:+:33554432:+:0:+ 33554432:+:33554432:-:67108864:- 33554432:-:33554432:+:67108864:- 33554432:-:33554432:-:0:+ 33554432:+:1073741824:+:1107296256:+ 33554432:+:1073741824:-:1040187392:- 33554432:-:1073741824:+:1107296256:- 33554432:-:1073741824:-:1040187392:+ 33554432:+:2147483648:+:2181038080:+ 33554432:+:2147483648:-:2113929216:- 33554432:-:2147483648:+:2181038080:- 33554432:-:2147483648:-:2113929216:+ 33554432:+:4294967296:+:4328521728:+ 33554432:+:4294967296:-:4261412864:- 33554432:-:4294967296:+:4328521728:- 33554432:-:4294967296:-:4261412864:+ 33554432:+:8589934592:+:8623489024:+ 33554432:+:8589934592:-:8556380160:- 33554432:-:8589934592:+:8623489024:- 33554432:-:8589934592:-:8556380160:+ 33554432:+:274877906944:+:274911461376:+ 33554432:+:274877906944:-:274844352512:- 33554432:-:274877906944:+:274911461376:- 33554432:-:274877906944:-:274844352512:+ 33554432:+:549755813888:+:549789368320:+ 33554432:+:549755813888:-:549722259456:- 33554432:-:549755813888:+:549789368320:- 33554432:-:549755813888:-:549722259456:+ 33554432:+:1099511627776:+:1099545182208:+ 33554432:+:1099511627776:-:1099478073344:- 33554432:-:1099511627776:+:1099545182208:- 33554432:-:1099511627776:-:1099478073344:+ 33554432:+:2199023255552:+:2199056809984:+ 33554432:+:2199023255552:-:2198989701120:- 33554432:-:2199023255552:+:2199056809984:- 33554432:-:2199023255552:-:2198989701120:+ 33554432:+:70368744177664:+:70368777732096:+ 33554432:+:70368744177664:-:70368710623232:- 33554432:-:70368744177664:+:70368777732096:- 33554432:-:70368744177664:-:70368710623232:+ 33554432:+:140737488355328:+:140737521909760:+ 33554432:+:140737488355328:-:140737454800896:- 33554432:-:140737488355328:+:140737521909760:- 33554432:-:140737488355328:-:140737454800896:+ 33554432:+:281474976710656:+:281475010265088:+ 33554432:+:281474976710656:-:281474943156224:- 33554432:-:281474976710656:+:281475010265088:- 33554432:-:281474976710656:-:281474943156224:+ 33554432:+:562949953421312:+:562949986975744:+ 33554432:+:562949953421312:-:562949919866880:- 33554432:-:562949953421312:+:562949986975744:- 33554432:-:562949953421312:-:562949919866880:+ 33554432:+:18014398509481984:+:18014398543036416:+ 33554432:+:18014398509481984:-:18014398475927552:- 33554432:-:18014398509481984:+:18014398543036416:- 33554432:-:18014398509481984:-:18014398475927552:+ 33554432:+:36028797018963968:+:36028797052518400:+ 33554432:+:36028797018963968:-:36028796985409536:- 33554432:-:36028797018963968:+:36028797052518400:- 33554432:-:36028797018963968:-:36028796985409536:+ 33554432:+:72057594037927936:+:72057594071482368:+ 33554432:+:72057594037927936:-:72057594004373504:- 33554432:-:72057594037927936:+:72057594071482368:- 33554432:-:72057594037927936:-:72057594004373504:+ 33554432:+:144115188075855872:+:144115188109410304:+ 33554432:+:144115188075855872:-:144115188042301440:- 33554432:-:144115188075855872:+:144115188109410304:- 33554432:-:144115188075855872:-:144115188042301440:+ 1073741824:+:0:+:1073741824:+ 1073741824:-:0:+:1073741824:- 1073741824:+:1:+:1073741825:+ 1073741824:+:1:-:1073741825:- 1073741824:-:1:+:1073741823:- 1073741824:-:1:-:1073741823:+ 1073741824:+:2:+:1073741826:+ 1073741824:+:2:-:1073741826:- 1073741824:-:2:+:1073741822:- 1073741824:-:2:-:1073741822:+ 1073741824:+:3:+:1073741827:+ 1073741824:+:3:-:1073741827:- 1073741824:-:3:+:1073741821:- 1073741824:-:3:-:1073741821:+ 1073741824:+:4:+:1073741828:+ 1073741824:+:4:-:1073741828:- 1073741824:-:4:+:1073741820:- 1073741824:-:4:-:1073741820:+ 1073741824:+:64:+:1073741888:+ 1073741824:+:64:-:1073741888:- 1073741824:-:64:+:1073741760:- 1073741824:-:64:-:1073741760:+ 1073741824:+:128:+:1073741952:+ 1073741824:+:128:-:1073741952:- 1073741824:-:128:+:1073741696:- 1073741824:-:128:-:1073741696:+ 1073741824:+:256:+:1073742080:+ 1073741824:+:256:-:1073742080:- 1073741824:-:256:+:1073741568:- 1073741824:-:256:-:1073741568:+ 1073741824:+:512:+:1073742336:+ 1073741824:+:512:-:1073742336:- 1073741824:-:512:+:1073741312:- 1073741824:-:512:-:1073741312:+ 1073741824:+:16384:+:1073758208:+ 1073741824:+:16384:-:1073758208:- 1073741824:-:16384:+:1073725440:- 1073741824:-:16384:-:1073725440:+ 1073741824:+:32768:+:1073774592:+ 1073741824:+:32768:-:1073774592:- 1073741824:-:32768:+:1073709056:- 1073741824:-:32768:-:1073709056:+ 1073741824:+:65536:+:1073807360:+ 1073741824:+:65536:-:1073807360:- 1073741824:-:65536:+:1073676288:- 1073741824:-:65536:-:1073676288:+ 1073741824:+:131072:+:1073872896:+ 1073741824:+:131072:-:1073872896:- 1073741824:-:131072:+:1073610752:- 1073741824:-:131072:-:1073610752:+ 1073741824:+:4194304:+:1077936128:+ 1073741824:+:4194304:-:1077936128:- 1073741824:-:4194304:+:1069547520:- 1073741824:-:4194304:-:1069547520:+ 1073741824:+:8388608:+:1082130432:+ 1073741824:+:8388608:-:1082130432:- 1073741824:-:8388608:+:1065353216:- 1073741824:-:8388608:-:1065353216:+ 1073741824:+:16777216:+:1090519040:+ 1073741824:+:16777216:-:1090519040:- 1073741824:-:16777216:+:1056964608:- 1073741824:-:16777216:-:1056964608:+ 1073741824:+:33554432:+:1107296256:+ 1073741824:+:33554432:-:1107296256:- 1073741824:-:33554432:+:1040187392:- 1073741824:-:33554432:-:1040187392:+ 1073741824:+:1073741824:+:0:+ 1073741824:+:1073741824:-:2147483648:- 1073741824:-:1073741824:+:2147483648:- 1073741824:-:1073741824:-:0:+ 1073741824:+:2147483648:+:3221225472:+ 1073741824:+:2147483648:-:1073741824:- 1073741824:-:2147483648:+:3221225472:- 1073741824:-:2147483648:-:1073741824:+ 1073741824:+:4294967296:+:5368709120:+ 1073741824:+:4294967296:-:3221225472:- 1073741824:-:4294967296:+:5368709120:- 1073741824:-:4294967296:-:3221225472:+ 1073741824:+:8589934592:+:9663676416:+ 1073741824:+:8589934592:-:7516192768:- 1073741824:-:8589934592:+:9663676416:- 1073741824:-:8589934592:-:7516192768:+ 1073741824:+:274877906944:+:275951648768:+ 1073741824:+:274877906944:-:273804165120:- 1073741824:-:274877906944:+:275951648768:- 1073741824:-:274877906944:-:273804165120:+ 1073741824:+:549755813888:+:550829555712:+ 1073741824:+:549755813888:-:548682072064:- 1073741824:-:549755813888:+:550829555712:- 1073741824:-:549755813888:-:548682072064:+ 1073741824:+:1099511627776:+:1100585369600:+ 1073741824:+:1099511627776:-:1098437885952:- 1073741824:-:1099511627776:+:1100585369600:- 1073741824:-:1099511627776:-:1098437885952:+ 1073741824:+:2199023255552:+:2200096997376:+ 1073741824:+:2199023255552:-:2197949513728:- 1073741824:-:2199023255552:+:2200096997376:- 1073741824:-:2199023255552:-:2197949513728:+ 1073741824:+:70368744177664:+:70369817919488:+ 1073741824:+:70368744177664:-:70367670435840:- 1073741824:-:70368744177664:+:70369817919488:- 1073741824:-:70368744177664:-:70367670435840:+ 1073741824:+:140737488355328:+:140738562097152:+ 1073741824:+:140737488355328:-:140736414613504:- 1073741824:-:140737488355328:+:140738562097152:- 1073741824:-:140737488355328:-:140736414613504:+ 1073741824:+:281474976710656:+:281476050452480:+ 1073741824:+:281474976710656:-:281473902968832:- 1073741824:-:281474976710656:+:281476050452480:- 1073741824:-:281474976710656:-:281473902968832:+ 1073741824:+:562949953421312:+:562951027163136:+ 1073741824:+:562949953421312:-:562948879679488:- 1073741824:-:562949953421312:+:562951027163136:- 1073741824:-:562949953421312:-:562948879679488:+ 1073741824:+:18014398509481984:+:18014399583223808:+ 1073741824:+:18014398509481984:-:18014397435740160:- 1073741824:-:18014398509481984:+:18014399583223808:- 1073741824:-:18014398509481984:-:18014397435740160:+ 1073741824:+:36028797018963968:+:36028798092705792:+ 1073741824:+:36028797018963968:-:36028795945222144:- 1073741824:-:36028797018963968:+:36028798092705792:- 1073741824:-:36028797018963968:-:36028795945222144:+ 1073741824:+:72057594037927936:+:72057595111669760:+ 1073741824:+:72057594037927936:-:72057592964186112:- 1073741824:-:72057594037927936:+:72057595111669760:- 1073741824:-:72057594037927936:-:72057592964186112:+ 1073741824:+:144115188075855872:+:144115189149597696:+ 1073741824:+:144115188075855872:-:144115187002114048:- 1073741824:-:144115188075855872:+:144115189149597696:- 1073741824:-:144115188075855872:-:144115187002114048:+ 2147483648:+:0:+:2147483648:+ 2147483648:-:0:+:2147483648:- 2147483648:+:1:+:2147483649:+ 2147483648:+:1:-:2147483649:- 2147483648:-:1:+:2147483647:- 2147483648:-:1:-:2147483647:+ 2147483648:+:2:+:2147483650:+ 2147483648:+:2:-:2147483650:- 2147483648:-:2:+:2147483646:- 2147483648:-:2:-:2147483646:+ 2147483648:+:3:+:2147483651:+ 2147483648:+:3:-:2147483651:- 2147483648:-:3:+:2147483645:- 2147483648:-:3:-:2147483645:+ 2147483648:+:4:+:2147483652:+ 2147483648:+:4:-:2147483652:- 2147483648:-:4:+:2147483644:- 2147483648:-:4:-:2147483644:+ 2147483648:+:64:+:2147483712:+ 2147483648:+:64:-:2147483712:- 2147483648:-:64:+:2147483584:- 2147483648:-:64:-:2147483584:+ 2147483648:+:128:+:2147483776:+ 2147483648:+:128:-:2147483776:- 2147483648:-:128:+:2147483520:- 2147483648:-:128:-:2147483520:+ 2147483648:+:256:+:2147483904:+ 2147483648:+:256:-:2147483904:- 2147483648:-:256:+:2147483392:- 2147483648:-:256:-:2147483392:+ 2147483648:+:512:+:2147484160:+ 2147483648:+:512:-:2147484160:- 2147483648:-:512:+:2147483136:- 2147483648:-:512:-:2147483136:+ 2147483648:+:16384:+:2147500032:+ 2147483648:+:16384:-:2147500032:- 2147483648:-:16384:+:2147467264:- 2147483648:-:16384:-:2147467264:+ 2147483648:+:32768:+:2147516416:+ 2147483648:+:32768:-:2147516416:- 2147483648:-:32768:+:2147450880:- 2147483648:-:32768:-:2147450880:+ 2147483648:+:65536:+:2147549184:+ 2147483648:+:65536:-:2147549184:- 2147483648:-:65536:+:2147418112:- 2147483648:-:65536:-:2147418112:+ 2147483648:+:131072:+:2147614720:+ 2147483648:+:131072:-:2147614720:- 2147483648:-:131072:+:2147352576:- 2147483648:-:131072:-:2147352576:+ 2147483648:+:4194304:+:2151677952:+ 2147483648:+:4194304:-:2151677952:- 2147483648:-:4194304:+:2143289344:- 2147483648:-:4194304:-:2143289344:+ 2147483648:+:8388608:+:2155872256:+ 2147483648:+:8388608:-:2155872256:- 2147483648:-:8388608:+:2139095040:- 2147483648:-:8388608:-:2139095040:+ 2147483648:+:16777216:+:2164260864:+ 2147483648:+:16777216:-:2164260864:- 2147483648:-:16777216:+:2130706432:- 2147483648:-:16777216:-:2130706432:+ 2147483648:+:33554432:+:2181038080:+ 2147483648:+:33554432:-:2181038080:- 2147483648:-:33554432:+:2113929216:- 2147483648:-:33554432:-:2113929216:+ 2147483648:+:1073741824:+:3221225472:+ 2147483648:+:1073741824:-:3221225472:- 2147483648:-:1073741824:+:1073741824:- 2147483648:-:1073741824:-:1073741824:+ 2147483648:+:2147483648:+:0:+ 2147483648:+:2147483648:-:4294967296:- 2147483648:-:2147483648:+:4294967296:- 2147483648:-:2147483648:-:0:+ 2147483648:+:4294967296:+:6442450944:+ 2147483648:+:4294967296:-:2147483648:- 2147483648:-:4294967296:+:6442450944:- 2147483648:-:4294967296:-:2147483648:+ 2147483648:+:8589934592:+:10737418240:+ 2147483648:+:8589934592:-:6442450944:- 2147483648:-:8589934592:+:10737418240:- 2147483648:-:8589934592:-:6442450944:+ 2147483648:+:274877906944:+:277025390592:+ 2147483648:+:274877906944:-:272730423296:- 2147483648:-:274877906944:+:277025390592:- 2147483648:-:274877906944:-:272730423296:+ 2147483648:+:549755813888:+:551903297536:+ 2147483648:+:549755813888:-:547608330240:- 2147483648:-:549755813888:+:551903297536:- 2147483648:-:549755813888:-:547608330240:+ 2147483648:+:1099511627776:+:1101659111424:+ 2147483648:+:1099511627776:-:1097364144128:- 2147483648:-:1099511627776:+:1101659111424:- 2147483648:-:1099511627776:-:1097364144128:+ 2147483648:+:2199023255552:+:2201170739200:+ 2147483648:+:2199023255552:-:2196875771904:- 2147483648:-:2199023255552:+:2201170739200:- 2147483648:-:2199023255552:-:2196875771904:+ 2147483648:+:70368744177664:+:70370891661312:+ 2147483648:+:70368744177664:-:70366596694016:- 2147483648:-:70368744177664:+:70370891661312:- 2147483648:-:70368744177664:-:70366596694016:+ 2147483648:+:140737488355328:+:140739635838976:+ 2147483648:+:140737488355328:-:140735340871680:- 2147483648:-:140737488355328:+:140739635838976:- 2147483648:-:140737488355328:-:140735340871680:+ 2147483648:+:281474976710656:+:281477124194304:+ 2147483648:+:281474976710656:-:281472829227008:- 2147483648:-:281474976710656:+:281477124194304:- 2147483648:-:281474976710656:-:281472829227008:+ 2147483648:+:562949953421312:+:562952100904960:+ 2147483648:+:562949953421312:-:562947805937664:- 2147483648:-:562949953421312:+:562952100904960:- 2147483648:-:562949953421312:-:562947805937664:+ 2147483648:+:18014398509481984:+:18014400656965632:+ 2147483648:+:18014398509481984:-:18014396361998336:- 2147483648:-:18014398509481984:+:18014400656965632:- 2147483648:-:18014398509481984:-:18014396361998336:+ 2147483648:+:36028797018963968:+:36028799166447616:+ 2147483648:+:36028797018963968:-:36028794871480320:- 2147483648:-:36028797018963968:+:36028799166447616:- 2147483648:-:36028797018963968:-:36028794871480320:+ 2147483648:+:72057594037927936:+:72057596185411584:+ 2147483648:+:72057594037927936:-:72057591890444288:- 2147483648:-:72057594037927936:+:72057596185411584:- 2147483648:-:72057594037927936:-:72057591890444288:+ 2147483648:+:144115188075855872:+:144115190223339520:+ 2147483648:+:144115188075855872:-:144115185928372224:- 2147483648:-:144115188075855872:+:144115190223339520:- 2147483648:-:144115188075855872:-:144115185928372224:+ 4294967296:+:0:+:4294967296:+ 4294967296:-:0:+:4294967296:- 4294967296:+:1:+:4294967297:+ 4294967296:+:1:-:4294967297:- 4294967296:-:1:+:4294967295:- 4294967296:-:1:-:4294967295:+ 4294967296:+:2:+:4294967298:+ 4294967296:+:2:-:4294967298:- 4294967296:-:2:+:4294967294:- 4294967296:-:2:-:4294967294:+ 4294967296:+:3:+:4294967299:+ 4294967296:+:3:-:4294967299:- 4294967296:-:3:+:4294967293:- 4294967296:-:3:-:4294967293:+ 4294967296:+:4:+:4294967300:+ 4294967296:+:4:-:4294967300:- 4294967296:-:4:+:4294967292:- 4294967296:-:4:-:4294967292:+ 4294967296:+:64:+:4294967360:+ 4294967296:+:64:-:4294967360:- 4294967296:-:64:+:4294967232:- 4294967296:-:64:-:4294967232:+ 4294967296:+:128:+:4294967424:+ 4294967296:+:128:-:4294967424:- 4294967296:-:128:+:4294967168:- 4294967296:-:128:-:4294967168:+ 4294967296:+:256:+:4294967552:+ 4294967296:+:256:-:4294967552:- 4294967296:-:256:+:4294967040:- 4294967296:-:256:-:4294967040:+ 4294967296:+:512:+:4294967808:+ 4294967296:+:512:-:4294967808:- 4294967296:-:512:+:4294966784:- 4294967296:-:512:-:4294966784:+ 4294967296:+:16384:+:4294983680:+ 4294967296:+:16384:-:4294983680:- 4294967296:-:16384:+:4294950912:- 4294967296:-:16384:-:4294950912:+ 4294967296:+:32768:+:4295000064:+ 4294967296:+:32768:-:4295000064:- 4294967296:-:32768:+:4294934528:- 4294967296:-:32768:-:4294934528:+ 4294967296:+:65536:+:4295032832:+ 4294967296:+:65536:-:4295032832:- 4294967296:-:65536:+:4294901760:- 4294967296:-:65536:-:4294901760:+ 4294967296:+:131072:+:4295098368:+ 4294967296:+:131072:-:4295098368:- 4294967296:-:131072:+:4294836224:- 4294967296:-:131072:-:4294836224:+ 4294967296:+:4194304:+:4299161600:+ 4294967296:+:4194304:-:4299161600:- 4294967296:-:4194304:+:4290772992:- 4294967296:-:4194304:-:4290772992:+ 4294967296:+:8388608:+:4303355904:+ 4294967296:+:8388608:-:4303355904:- 4294967296:-:8388608:+:4286578688:- 4294967296:-:8388608:-:4286578688:+ 4294967296:+:16777216:+:4311744512:+ 4294967296:+:16777216:-:4311744512:- 4294967296:-:16777216:+:4278190080:- 4294967296:-:16777216:-:4278190080:+ 4294967296:+:33554432:+:4328521728:+ 4294967296:+:33554432:-:4328521728:- 4294967296:-:33554432:+:4261412864:- 4294967296:-:33554432:-:4261412864:+ 4294967296:+:1073741824:+:5368709120:+ 4294967296:+:1073741824:-:5368709120:- 4294967296:-:1073741824:+:3221225472:- 4294967296:-:1073741824:-:3221225472:+ 4294967296:+:2147483648:+:6442450944:+ 4294967296:+:2147483648:-:6442450944:- 4294967296:-:2147483648:+:2147483648:- 4294967296:-:2147483648:-:2147483648:+ 4294967296:+:4294967296:+:0:+ 4294967296:+:4294967296:-:8589934592:- 4294967296:-:4294967296:+:8589934592:- 4294967296:-:4294967296:-:0:+ 4294967296:+:8589934592:+:12884901888:+ 4294967296:+:8589934592:-:4294967296:- 4294967296:-:8589934592:+:12884901888:- 4294967296:-:8589934592:-:4294967296:+ 4294967296:+:274877906944:+:279172874240:+ 4294967296:+:274877906944:-:270582939648:- 4294967296:-:274877906944:+:279172874240:- 4294967296:-:274877906944:-:270582939648:+ 4294967296:+:549755813888:+:554050781184:+ 4294967296:+:549755813888:-:545460846592:- 4294967296:-:549755813888:+:554050781184:- 4294967296:-:549755813888:-:545460846592:+ 4294967296:+:1099511627776:+:1103806595072:+ 4294967296:+:1099511627776:-:1095216660480:- 4294967296:-:1099511627776:+:1103806595072:- 4294967296:-:1099511627776:-:1095216660480:+ 4294967296:+:2199023255552:+:2203318222848:+ 4294967296:+:2199023255552:-:2194728288256:- 4294967296:-:2199023255552:+:2203318222848:- 4294967296:-:2199023255552:-:2194728288256:+ 4294967296:+:70368744177664:+:70373039144960:+ 4294967296:+:70368744177664:-:70364449210368:- 4294967296:-:70368744177664:+:70373039144960:- 4294967296:-:70368744177664:-:70364449210368:+ 4294967296:+:140737488355328:+:140741783322624:+ 4294967296:+:140737488355328:-:140733193388032:- 4294967296:-:140737488355328:+:140741783322624:- 4294967296:-:140737488355328:-:140733193388032:+ 4294967296:+:281474976710656:+:281479271677952:+ 4294967296:+:281474976710656:-:281470681743360:- 4294967296:-:281474976710656:+:281479271677952:- 4294967296:-:281474976710656:-:281470681743360:+ 4294967296:+:562949953421312:+:562954248388608:+ 4294967296:+:562949953421312:-:562945658454016:- 4294967296:-:562949953421312:+:562954248388608:- 4294967296:-:562949953421312:-:562945658454016:+ 4294967296:+:18014398509481984:+:18014402804449280:+ 4294967296:+:18014398509481984:-:18014394214514688:- 4294967296:-:18014398509481984:+:18014402804449280:- 4294967296:-:18014398509481984:-:18014394214514688:+ 4294967296:+:36028797018963968:+:36028801313931264:+ 4294967296:+:36028797018963968:-:36028792723996672:- 4294967296:-:36028797018963968:+:36028801313931264:- 4294967296:-:36028797018963968:-:36028792723996672:+ 4294967296:+:72057594037927936:+:72057598332895232:+ 4294967296:+:72057594037927936:-:72057589742960640:- 4294967296:-:72057594037927936:+:72057598332895232:- 4294967296:-:72057594037927936:-:72057589742960640:+ 4294967296:+:144115188075855872:+:144115192370823168:+ 4294967296:+:144115188075855872:-:144115183780888576:- 4294967296:-:144115188075855872:+:144115192370823168:- 4294967296:-:144115188075855872:-:144115183780888576:+ 8589934592:+:0:+:8589934592:+ 8589934592:-:0:+:8589934592:- 8589934592:+:1:+:8589934593:+ 8589934592:+:1:-:8589934593:- 8589934592:-:1:+:8589934591:- 8589934592:-:1:-:8589934591:+ 8589934592:+:2:+:8589934594:+ 8589934592:+:2:-:8589934594:- 8589934592:-:2:+:8589934590:- 8589934592:-:2:-:8589934590:+ 8589934592:+:3:+:8589934595:+ 8589934592:+:3:-:8589934595:- 8589934592:-:3:+:8589934589:- 8589934592:-:3:-:8589934589:+ 8589934592:+:4:+:8589934596:+ 8589934592:+:4:-:8589934596:- 8589934592:-:4:+:8589934588:- 8589934592:-:4:-:8589934588:+ 8589934592:+:64:+:8589934656:+ 8589934592:+:64:-:8589934656:- 8589934592:-:64:+:8589934528:- 8589934592:-:64:-:8589934528:+ 8589934592:+:128:+:8589934720:+ 8589934592:+:128:-:8589934720:- 8589934592:-:128:+:8589934464:- 8589934592:-:128:-:8589934464:+ 8589934592:+:256:+:8589934848:+ 8589934592:+:256:-:8589934848:- 8589934592:-:256:+:8589934336:- 8589934592:-:256:-:8589934336:+ 8589934592:+:512:+:8589935104:+ 8589934592:+:512:-:8589935104:- 8589934592:-:512:+:8589934080:- 8589934592:-:512:-:8589934080:+ 8589934592:+:16384:+:8589950976:+ 8589934592:+:16384:-:8589950976:- 8589934592:-:16384:+:8589918208:- 8589934592:-:16384:-:8589918208:+ 8589934592:+:32768:+:8589967360:+ 8589934592:+:32768:-:8589967360:- 8589934592:-:32768:+:8589901824:- 8589934592:-:32768:-:8589901824:+ 8589934592:+:65536:+:8590000128:+ 8589934592:+:65536:-:8590000128:- 8589934592:-:65536:+:8589869056:- 8589934592:-:65536:-:8589869056:+ 8589934592:+:131072:+:8590065664:+ 8589934592:+:131072:-:8590065664:- 8589934592:-:131072:+:8589803520:- 8589934592:-:131072:-:8589803520:+ 8589934592:+:4194304:+:8594128896:+ 8589934592:+:4194304:-:8594128896:- 8589934592:-:4194304:+:8585740288:- 8589934592:-:4194304:-:8585740288:+ 8589934592:+:8388608:+:8598323200:+ 8589934592:+:8388608:-:8598323200:- 8589934592:-:8388608:+:8581545984:- 8589934592:-:8388608:-:8581545984:+ 8589934592:+:16777216:+:8606711808:+ 8589934592:+:16777216:-:8606711808:- 8589934592:-:16777216:+:8573157376:- 8589934592:-:16777216:-:8573157376:+ 8589934592:+:33554432:+:8623489024:+ 8589934592:+:33554432:-:8623489024:- 8589934592:-:33554432:+:8556380160:- 8589934592:-:33554432:-:8556380160:+ 8589934592:+:1073741824:+:9663676416:+ 8589934592:+:1073741824:-:9663676416:- 8589934592:-:1073741824:+:7516192768:- 8589934592:-:1073741824:-:7516192768:+ 8589934592:+:2147483648:+:10737418240:+ 8589934592:+:2147483648:-:10737418240:- 8589934592:-:2147483648:+:6442450944:- 8589934592:-:2147483648:-:6442450944:+ 8589934592:+:4294967296:+:12884901888:+ 8589934592:+:4294967296:-:12884901888:- 8589934592:-:4294967296:+:4294967296:- 8589934592:-:4294967296:-:4294967296:+ 8589934592:+:8589934592:+:0:+ 8589934592:+:8589934592:-:17179869184:- 8589934592:-:8589934592:+:17179869184:- 8589934592:-:8589934592:-:0:+ 8589934592:+:274877906944:+:283467841536:+ 8589934592:+:274877906944:-:266287972352:- 8589934592:-:274877906944:+:283467841536:- 8589934592:-:274877906944:-:266287972352:+ 8589934592:+:549755813888:+:558345748480:+ 8589934592:+:549755813888:-:541165879296:- 8589934592:-:549755813888:+:558345748480:- 8589934592:-:549755813888:-:541165879296:+ 8589934592:+:1099511627776:+:1108101562368:+ 8589934592:+:1099511627776:-:1090921693184:- 8589934592:-:1099511627776:+:1108101562368:- 8589934592:-:1099511627776:-:1090921693184:+ 8589934592:+:2199023255552:+:2207613190144:+ 8589934592:+:2199023255552:-:2190433320960:- 8589934592:-:2199023255552:+:2207613190144:- 8589934592:-:2199023255552:-:2190433320960:+ 8589934592:+:70368744177664:+:70377334112256:+ 8589934592:+:70368744177664:-:70360154243072:- 8589934592:-:70368744177664:+:70377334112256:- 8589934592:-:70368744177664:-:70360154243072:+ 8589934592:+:140737488355328:+:140746078289920:+ 8589934592:+:140737488355328:-:140728898420736:- 8589934592:-:140737488355328:+:140746078289920:- 8589934592:-:140737488355328:-:140728898420736:+ 8589934592:+:281474976710656:+:281483566645248:+ 8589934592:+:281474976710656:-:281466386776064:- 8589934592:-:281474976710656:+:281483566645248:- 8589934592:-:281474976710656:-:281466386776064:+ 8589934592:+:562949953421312:+:562958543355904:+ 8589934592:+:562949953421312:-:562941363486720:- 8589934592:-:562949953421312:+:562958543355904:- 8589934592:-:562949953421312:-:562941363486720:+ 8589934592:+:18014398509481984:+:18014407099416576:+ 8589934592:+:18014398509481984:-:18014389919547392:- 8589934592:-:18014398509481984:+:18014407099416576:- 8589934592:-:18014398509481984:-:18014389919547392:+ 8589934592:+:36028797018963968:+:36028805608898560:+ 8589934592:+:36028797018963968:-:36028788429029376:- 8589934592:-:36028797018963968:+:36028805608898560:- 8589934592:-:36028797018963968:-:36028788429029376:+ 8589934592:+:72057594037927936:+:72057602627862528:+ 8589934592:+:72057594037927936:-:72057585447993344:- 8589934592:-:72057594037927936:+:72057602627862528:- 8589934592:-:72057594037927936:-:72057585447993344:+ 8589934592:+:144115188075855872:+:144115196665790464:+ 8589934592:+:144115188075855872:-:144115179485921280:- 8589934592:-:144115188075855872:+:144115196665790464:- 8589934592:-:144115188075855872:-:144115179485921280:+ 274877906944:+:0:+:274877906944:+ 274877906944:-:0:+:274877906944:- 274877906944:+:1:+:274877906945:+ 274877906944:+:1:-:274877906945:- 274877906944:-:1:+:274877906943:- 274877906944:-:1:-:274877906943:+ 274877906944:+:2:+:274877906946:+ 274877906944:+:2:-:274877906946:- 274877906944:-:2:+:274877906942:- 274877906944:-:2:-:274877906942:+ 274877906944:+:3:+:274877906947:+ 274877906944:+:3:-:274877906947:- 274877906944:-:3:+:274877906941:- 274877906944:-:3:-:274877906941:+ 274877906944:+:4:+:274877906948:+ 274877906944:+:4:-:274877906948:- 274877906944:-:4:+:274877906940:- 274877906944:-:4:-:274877906940:+ 274877906944:+:64:+:274877907008:+ 274877906944:+:64:-:274877907008:- 274877906944:-:64:+:274877906880:- 274877906944:-:64:-:274877906880:+ 274877906944:+:128:+:274877907072:+ 274877906944:+:128:-:274877907072:- 274877906944:-:128:+:274877906816:- 274877906944:-:128:-:274877906816:+ 274877906944:+:256:+:274877907200:+ 274877906944:+:256:-:274877907200:- 274877906944:-:256:+:274877906688:- 274877906944:-:256:-:274877906688:+ 274877906944:+:512:+:274877907456:+ 274877906944:+:512:-:274877907456:- 274877906944:-:512:+:274877906432:- 274877906944:-:512:-:274877906432:+ 274877906944:+:16384:+:274877923328:+ 274877906944:+:16384:-:274877923328:- 274877906944:-:16384:+:274877890560:- 274877906944:-:16384:-:274877890560:+ 274877906944:+:32768:+:274877939712:+ 274877906944:+:32768:-:274877939712:- 274877906944:-:32768:+:274877874176:- 274877906944:-:32768:-:274877874176:+ 274877906944:+:65536:+:274877972480:+ 274877906944:+:65536:-:274877972480:- 274877906944:-:65536:+:274877841408:- 274877906944:-:65536:-:274877841408:+ 274877906944:+:131072:+:274878038016:+ 274877906944:+:131072:-:274878038016:- 274877906944:-:131072:+:274877775872:- 274877906944:-:131072:-:274877775872:+ 274877906944:+:4194304:+:274882101248:+ 274877906944:+:4194304:-:274882101248:- 274877906944:-:4194304:+:274873712640:- 274877906944:-:4194304:-:274873712640:+ 274877906944:+:8388608:+:274886295552:+ 274877906944:+:8388608:-:274886295552:- 274877906944:-:8388608:+:274869518336:- 274877906944:-:8388608:-:274869518336:+ 274877906944:+:16777216:+:274894684160:+ 274877906944:+:16777216:-:274894684160:- 274877906944:-:16777216:+:274861129728:- 274877906944:-:16777216:-:274861129728:+ 274877906944:+:33554432:+:274911461376:+ 274877906944:+:33554432:-:274911461376:- 274877906944:-:33554432:+:274844352512:- 274877906944:-:33554432:-:274844352512:+ 274877906944:+:1073741824:+:275951648768:+ 274877906944:+:1073741824:-:275951648768:- 274877906944:-:1073741824:+:273804165120:- 274877906944:-:1073741824:-:273804165120:+ 274877906944:+:2147483648:+:277025390592:+ 274877906944:+:2147483648:-:277025390592:- 274877906944:-:2147483648:+:272730423296:- 274877906944:-:2147483648:-:272730423296:+ 274877906944:+:4294967296:+:279172874240:+ 274877906944:+:4294967296:-:279172874240:- 274877906944:-:4294967296:+:270582939648:- 274877906944:-:4294967296:-:270582939648:+ 274877906944:+:8589934592:+:283467841536:+ 274877906944:+:8589934592:-:283467841536:- 274877906944:-:8589934592:+:266287972352:- 274877906944:-:8589934592:-:266287972352:+ 274877906944:+:274877906944:+:0:+ 274877906944:+:274877906944:-:549755813888:- 274877906944:-:274877906944:+:549755813888:- 274877906944:-:274877906944:-:0:+ 274877906944:+:549755813888:+:824633720832:+ 274877906944:+:549755813888:-:274877906944:- 274877906944:-:549755813888:+:824633720832:- 274877906944:-:549755813888:-:274877906944:+ 274877906944:+:1099511627776:+:1374389534720:+ 274877906944:+:1099511627776:-:824633720832:- 274877906944:-:1099511627776:+:1374389534720:- 274877906944:-:1099511627776:-:824633720832:+ 274877906944:+:2199023255552:+:2473901162496:+ 274877906944:+:2199023255552:-:1924145348608:- 274877906944:-:2199023255552:+:2473901162496:- 274877906944:-:2199023255552:-:1924145348608:+ 274877906944:+:70368744177664:+:70643622084608:+ 274877906944:+:70368744177664:-:70093866270720:- 274877906944:-:70368744177664:+:70643622084608:- 274877906944:-:70368744177664:-:70093866270720:+ 274877906944:+:140737488355328:+:141012366262272:+ 274877906944:+:140737488355328:-:140462610448384:- 274877906944:-:140737488355328:+:141012366262272:- 274877906944:-:140737488355328:-:140462610448384:+ 274877906944:+:281474976710656:+:281749854617600:+ 274877906944:+:281474976710656:-:281200098803712:- 274877906944:-:281474976710656:+:281749854617600:- 274877906944:-:281474976710656:-:281200098803712:+ 274877906944:+:562949953421312:+:563224831328256:+ 274877906944:+:562949953421312:-:562675075514368:- 274877906944:-:562949953421312:+:563224831328256:- 274877906944:-:562949953421312:-:562675075514368:+ 274877906944:+:18014398509481984:+:18014673387388928:+ 274877906944:+:18014398509481984:-:18014123631575040:- 274877906944:-:18014398509481984:+:18014673387388928:- 274877906944:-:18014398509481984:-:18014123631575040:+ 274877906944:+:36028797018963968:+:36029071896870912:+ 274877906944:+:36028797018963968:-:36028522141057024:- 274877906944:-:36028797018963968:+:36029071896870912:- 274877906944:-:36028797018963968:-:36028522141057024:+ 274877906944:+:72057594037927936:+:72057868915834880:+ 274877906944:+:72057594037927936:-:72057319160020992:- 274877906944:-:72057594037927936:+:72057868915834880:- 274877906944:-:72057594037927936:-:72057319160020992:+ 274877906944:+:144115188075855872:+:144115462953762816:+ 274877906944:+:144115188075855872:-:144114913197948928:- 274877906944:-:144115188075855872:+:144115462953762816:- 274877906944:-:144115188075855872:-:144114913197948928:+ 549755813888:+:0:+:549755813888:+ 549755813888:-:0:+:549755813888:- 549755813888:+:1:+:549755813889:+ 549755813888:+:1:-:549755813889:- 549755813888:-:1:+:549755813887:- 549755813888:-:1:-:549755813887:+ 549755813888:+:2:+:549755813890:+ 549755813888:+:2:-:549755813890:- 549755813888:-:2:+:549755813886:- 549755813888:-:2:-:549755813886:+ 549755813888:+:3:+:549755813891:+ 549755813888:+:3:-:549755813891:- 549755813888:-:3:+:549755813885:- 549755813888:-:3:-:549755813885:+ 549755813888:+:4:+:549755813892:+ 549755813888:+:4:-:549755813892:- 549755813888:-:4:+:549755813884:- 549755813888:-:4:-:549755813884:+ 549755813888:+:64:+:549755813952:+ 549755813888:+:64:-:549755813952:- 549755813888:-:64:+:549755813824:- 549755813888:-:64:-:549755813824:+ 549755813888:+:128:+:549755814016:+ 549755813888:+:128:-:549755814016:- 549755813888:-:128:+:549755813760:- 549755813888:-:128:-:549755813760:+ 549755813888:+:256:+:549755814144:+ 549755813888:+:256:-:549755814144:- 549755813888:-:256:+:549755813632:- 549755813888:-:256:-:549755813632:+ 549755813888:+:512:+:549755814400:+ 549755813888:+:512:-:549755814400:- 549755813888:-:512:+:549755813376:- 549755813888:-:512:-:549755813376:+ 549755813888:+:16384:+:549755830272:+ 549755813888:+:16384:-:549755830272:- 549755813888:-:16384:+:549755797504:- 549755813888:-:16384:-:549755797504:+ 549755813888:+:32768:+:549755846656:+ 549755813888:+:32768:-:549755846656:- 549755813888:-:32768:+:549755781120:- 549755813888:-:32768:-:549755781120:+ 549755813888:+:65536:+:549755879424:+ 549755813888:+:65536:-:549755879424:- 549755813888:-:65536:+:549755748352:- 549755813888:-:65536:-:549755748352:+ 549755813888:+:131072:+:549755944960:+ 549755813888:+:131072:-:549755944960:- 549755813888:-:131072:+:549755682816:- 549755813888:-:131072:-:549755682816:+ 549755813888:+:4194304:+:549760008192:+ 549755813888:+:4194304:-:549760008192:- 549755813888:-:4194304:+:549751619584:- 549755813888:-:4194304:-:549751619584:+ 549755813888:+:8388608:+:549764202496:+ 549755813888:+:8388608:-:549764202496:- 549755813888:-:8388608:+:549747425280:- 549755813888:-:8388608:-:549747425280:+ 549755813888:+:16777216:+:549772591104:+ 549755813888:+:16777216:-:549772591104:- 549755813888:-:16777216:+:549739036672:- 549755813888:-:16777216:-:549739036672:+ 549755813888:+:33554432:+:549789368320:+ 549755813888:+:33554432:-:549789368320:- 549755813888:-:33554432:+:549722259456:- 549755813888:-:33554432:-:549722259456:+ 549755813888:+:1073741824:+:550829555712:+ 549755813888:+:1073741824:-:550829555712:- 549755813888:-:1073741824:+:548682072064:- 549755813888:-:1073741824:-:548682072064:+ 549755813888:+:2147483648:+:551903297536:+ 549755813888:+:2147483648:-:551903297536:- 549755813888:-:2147483648:+:547608330240:- 549755813888:-:2147483648:-:547608330240:+ 549755813888:+:4294967296:+:554050781184:+ 549755813888:+:4294967296:-:554050781184:- 549755813888:-:4294967296:+:545460846592:- 549755813888:-:4294967296:-:545460846592:+ 549755813888:+:8589934592:+:558345748480:+ 549755813888:+:8589934592:-:558345748480:- 549755813888:-:8589934592:+:541165879296:- 549755813888:-:8589934592:-:541165879296:+ 549755813888:+:274877906944:+:824633720832:+ 549755813888:+:274877906944:-:824633720832:- 549755813888:-:274877906944:+:274877906944:- 549755813888:-:274877906944:-:274877906944:+ 549755813888:+:549755813888:+:0:+ 549755813888:+:549755813888:-:1099511627776:- 549755813888:-:549755813888:+:1099511627776:- 549755813888:-:549755813888:-:0:+ 549755813888:+:1099511627776:+:1649267441664:+ 549755813888:+:1099511627776:-:549755813888:- 549755813888:-:1099511627776:+:1649267441664:- 549755813888:-:1099511627776:-:549755813888:+ 549755813888:+:2199023255552:+:2748779069440:+ 549755813888:+:2199023255552:-:1649267441664:- 549755813888:-:2199023255552:+:2748779069440:- 549755813888:-:2199023255552:-:1649267441664:+ 549755813888:+:70368744177664:+:70918499991552:+ 549755813888:+:70368744177664:-:69818988363776:- 549755813888:-:70368744177664:+:70918499991552:- 549755813888:-:70368744177664:-:69818988363776:+ 549755813888:+:140737488355328:+:141287244169216:+ 549755813888:+:140737488355328:-:140187732541440:- 549755813888:-:140737488355328:+:141287244169216:- 549755813888:-:140737488355328:-:140187732541440:+ 549755813888:+:281474976710656:+:282024732524544:+ 549755813888:+:281474976710656:-:280925220896768:- 549755813888:-:281474976710656:+:282024732524544:- 549755813888:-:281474976710656:-:280925220896768:+ 549755813888:+:562949953421312:+:563499709235200:+ 549755813888:+:562949953421312:-:562400197607424:- 549755813888:-:562949953421312:+:563499709235200:- 549755813888:-:562949953421312:-:562400197607424:+ 549755813888:+:18014398509481984:+:18014948265295872:+ 549755813888:+:18014398509481984:-:18013848753668096:- 549755813888:-:18014398509481984:+:18014948265295872:- 549755813888:-:18014398509481984:-:18013848753668096:+ 549755813888:+:36028797018963968:+:36029346774777856:+ 549755813888:+:36028797018963968:-:36028247263150080:- 549755813888:-:36028797018963968:+:36029346774777856:- 549755813888:-:36028797018963968:-:36028247263150080:+ 549755813888:+:72057594037927936:+:72058143793741824:+ 549755813888:+:72057594037927936:-:72057044282114048:- 549755813888:-:72057594037927936:+:72058143793741824:- 549755813888:-:72057594037927936:-:72057044282114048:+ 549755813888:+:144115188075855872:+:144115737831669760:+ 549755813888:+:144115188075855872:-:144114638320041984:- 549755813888:-:144115188075855872:+:144115737831669760:- 549755813888:-:144115188075855872:-:144114638320041984:+ 1099511627776:+:0:+:1099511627776:+ 1099511627776:-:0:+:1099511627776:- 1099511627776:+:1:+:1099511627777:+ 1099511627776:+:1:-:1099511627777:- 1099511627776:-:1:+:1099511627775:- 1099511627776:-:1:-:1099511627775:+ 1099511627776:+:2:+:1099511627778:+ 1099511627776:+:2:-:1099511627778:- 1099511627776:-:2:+:1099511627774:- 1099511627776:-:2:-:1099511627774:+ 1099511627776:+:3:+:1099511627779:+ 1099511627776:+:3:-:1099511627779:- 1099511627776:-:3:+:1099511627773:- 1099511627776:-:3:-:1099511627773:+ 1099511627776:+:4:+:1099511627780:+ 1099511627776:+:4:-:1099511627780:- 1099511627776:-:4:+:1099511627772:- 1099511627776:-:4:-:1099511627772:+ 1099511627776:+:64:+:1099511627840:+ 1099511627776:+:64:-:1099511627840:- 1099511627776:-:64:+:1099511627712:- 1099511627776:-:64:-:1099511627712:+ 1099511627776:+:128:+:1099511627904:+ 1099511627776:+:128:-:1099511627904:- 1099511627776:-:128:+:1099511627648:- 1099511627776:-:128:-:1099511627648:+ 1099511627776:+:256:+:1099511628032:+ 1099511627776:+:256:-:1099511628032:- 1099511627776:-:256:+:1099511627520:- 1099511627776:-:256:-:1099511627520:+ 1099511627776:+:512:+:1099511628288:+ 1099511627776:+:512:-:1099511628288:- 1099511627776:-:512:+:1099511627264:- 1099511627776:-:512:-:1099511627264:+ 1099511627776:+:16384:+:1099511644160:+ 1099511627776:+:16384:-:1099511644160:- 1099511627776:-:16384:+:1099511611392:- 1099511627776:-:16384:-:1099511611392:+ 1099511627776:+:32768:+:1099511660544:+ 1099511627776:+:32768:-:1099511660544:- 1099511627776:-:32768:+:1099511595008:- 1099511627776:-:32768:-:1099511595008:+ 1099511627776:+:65536:+:1099511693312:+ 1099511627776:+:65536:-:1099511693312:- 1099511627776:-:65536:+:1099511562240:- 1099511627776:-:65536:-:1099511562240:+ 1099511627776:+:131072:+:1099511758848:+ 1099511627776:+:131072:-:1099511758848:- 1099511627776:-:131072:+:1099511496704:- 1099511627776:-:131072:-:1099511496704:+ 1099511627776:+:4194304:+:1099515822080:+ 1099511627776:+:4194304:-:1099515822080:- 1099511627776:-:4194304:+:1099507433472:- 1099511627776:-:4194304:-:1099507433472:+ 1099511627776:+:8388608:+:1099520016384:+ 1099511627776:+:8388608:-:1099520016384:- 1099511627776:-:8388608:+:1099503239168:- 1099511627776:-:8388608:-:1099503239168:+ 1099511627776:+:16777216:+:1099528404992:+ 1099511627776:+:16777216:-:1099528404992:- 1099511627776:-:16777216:+:1099494850560:- 1099511627776:-:16777216:-:1099494850560:+ 1099511627776:+:33554432:+:1099545182208:+ 1099511627776:+:33554432:-:1099545182208:- 1099511627776:-:33554432:+:1099478073344:- 1099511627776:-:33554432:-:1099478073344:+ 1099511627776:+:1073741824:+:1100585369600:+ 1099511627776:+:1073741824:-:1100585369600:- 1099511627776:-:1073741824:+:1098437885952:- 1099511627776:-:1073741824:-:1098437885952:+ 1099511627776:+:2147483648:+:1101659111424:+ 1099511627776:+:2147483648:-:1101659111424:- 1099511627776:-:2147483648:+:1097364144128:- 1099511627776:-:2147483648:-:1097364144128:+ 1099511627776:+:4294967296:+:1103806595072:+ 1099511627776:+:4294967296:-:1103806595072:- 1099511627776:-:4294967296:+:1095216660480:- 1099511627776:-:4294967296:-:1095216660480:+ 1099511627776:+:8589934592:+:1108101562368:+ 1099511627776:+:8589934592:-:1108101562368:- 1099511627776:-:8589934592:+:1090921693184:- 1099511627776:-:8589934592:-:1090921693184:+ 1099511627776:+:274877906944:+:1374389534720:+ 1099511627776:+:274877906944:-:1374389534720:- 1099511627776:-:274877906944:+:824633720832:- 1099511627776:-:274877906944:-:824633720832:+ 1099511627776:+:549755813888:+:1649267441664:+ 1099511627776:+:549755813888:-:1649267441664:- 1099511627776:-:549755813888:+:549755813888:- 1099511627776:-:549755813888:-:549755813888:+ 1099511627776:+:1099511627776:+:0:+ 1099511627776:+:1099511627776:-:2199023255552:- 1099511627776:-:1099511627776:+:2199023255552:- 1099511627776:-:1099511627776:-:0:+ 1099511627776:+:2199023255552:+:3298534883328:+ 1099511627776:+:2199023255552:-:1099511627776:- 1099511627776:-:2199023255552:+:3298534883328:- 1099511627776:-:2199023255552:-:1099511627776:+ 1099511627776:+:70368744177664:+:71468255805440:+ 1099511627776:+:70368744177664:-:69269232549888:- 1099511627776:-:70368744177664:+:71468255805440:- 1099511627776:-:70368744177664:-:69269232549888:+ 1099511627776:+:140737488355328:+:141836999983104:+ 1099511627776:+:140737488355328:-:139637976727552:- 1099511627776:-:140737488355328:+:141836999983104:- 1099511627776:-:140737488355328:-:139637976727552:+ 1099511627776:+:281474976710656:+:282574488338432:+ 1099511627776:+:281474976710656:-:280375465082880:- 1099511627776:-:281474976710656:+:282574488338432:- 1099511627776:-:281474976710656:-:280375465082880:+ 1099511627776:+:562949953421312:+:564049465049088:+ 1099511627776:+:562949953421312:-:561850441793536:- 1099511627776:-:562949953421312:+:564049465049088:- 1099511627776:-:562949953421312:-:561850441793536:+ 1099511627776:+:18014398509481984:+:18015498021109760:+ 1099511627776:+:18014398509481984:-:18013298997854208:- 1099511627776:-:18014398509481984:+:18015498021109760:- 1099511627776:-:18014398509481984:-:18013298997854208:+ 1099511627776:+:36028797018963968:+:36029896530591744:+ 1099511627776:+:36028797018963968:-:36027697507336192:- 1099511627776:-:36028797018963968:+:36029896530591744:- 1099511627776:-:36028797018963968:-:36027697507336192:+ 1099511627776:+:72057594037927936:+:72058693549555712:+ 1099511627776:+:72057594037927936:-:72056494526300160:- 1099511627776:-:72057594037927936:+:72058693549555712:- 1099511627776:-:72057594037927936:-:72056494526300160:+ 1099511627776:+:144115188075855872:+:144116287587483648:+ 1099511627776:+:144115188075855872:-:144114088564228096:- 1099511627776:-:144115188075855872:+:144116287587483648:- 1099511627776:-:144115188075855872:-:144114088564228096:+ 2199023255552:+:0:+:2199023255552:+ 2199023255552:-:0:+:2199023255552:- 2199023255552:+:1:+:2199023255553:+ 2199023255552:+:1:-:2199023255553:- 2199023255552:-:1:+:2199023255551:- 2199023255552:-:1:-:2199023255551:+ 2199023255552:+:2:+:2199023255554:+ 2199023255552:+:2:-:2199023255554:- 2199023255552:-:2:+:2199023255550:- 2199023255552:-:2:-:2199023255550:+ 2199023255552:+:3:+:2199023255555:+ 2199023255552:+:3:-:2199023255555:- 2199023255552:-:3:+:2199023255549:- 2199023255552:-:3:-:2199023255549:+ 2199023255552:+:4:+:2199023255556:+ 2199023255552:+:4:-:2199023255556:- 2199023255552:-:4:+:2199023255548:- 2199023255552:-:4:-:2199023255548:+ 2199023255552:+:64:+:2199023255616:+ 2199023255552:+:64:-:2199023255616:- 2199023255552:-:64:+:2199023255488:- 2199023255552:-:64:-:2199023255488:+ 2199023255552:+:128:+:2199023255680:+ 2199023255552:+:128:-:2199023255680:- 2199023255552:-:128:+:2199023255424:- 2199023255552:-:128:-:2199023255424:+ 2199023255552:+:256:+:2199023255808:+ 2199023255552:+:256:-:2199023255808:- 2199023255552:-:256:+:2199023255296:- 2199023255552:-:256:-:2199023255296:+ 2199023255552:+:512:+:2199023256064:+ 2199023255552:+:512:-:2199023256064:- 2199023255552:-:512:+:2199023255040:- 2199023255552:-:512:-:2199023255040:+ 2199023255552:+:16384:+:2199023271936:+ 2199023255552:+:16384:-:2199023271936:- 2199023255552:-:16384:+:2199023239168:- 2199023255552:-:16384:-:2199023239168:+ 2199023255552:+:32768:+:2199023288320:+ 2199023255552:+:32768:-:2199023288320:- 2199023255552:-:32768:+:2199023222784:- 2199023255552:-:32768:-:2199023222784:+ 2199023255552:+:65536:+:2199023321088:+ 2199023255552:+:65536:-:2199023321088:- 2199023255552:-:65536:+:2199023190016:- 2199023255552:-:65536:-:2199023190016:+ 2199023255552:+:131072:+:2199023386624:+ 2199023255552:+:131072:-:2199023386624:- 2199023255552:-:131072:+:2199023124480:- 2199023255552:-:131072:-:2199023124480:+ 2199023255552:+:4194304:+:2199027449856:+ 2199023255552:+:4194304:-:2199027449856:- 2199023255552:-:4194304:+:2199019061248:- 2199023255552:-:4194304:-:2199019061248:+ 2199023255552:+:8388608:+:2199031644160:+ 2199023255552:+:8388608:-:2199031644160:- 2199023255552:-:8388608:+:2199014866944:- 2199023255552:-:8388608:-:2199014866944:+ 2199023255552:+:16777216:+:2199040032768:+ 2199023255552:+:16777216:-:2199040032768:- 2199023255552:-:16777216:+:2199006478336:- 2199023255552:-:16777216:-:2199006478336:+ 2199023255552:+:33554432:+:2199056809984:+ 2199023255552:+:33554432:-:2199056809984:- 2199023255552:-:33554432:+:2198989701120:- 2199023255552:-:33554432:-:2198989701120:+ 2199023255552:+:1073741824:+:2200096997376:+ 2199023255552:+:1073741824:-:2200096997376:- 2199023255552:-:1073741824:+:2197949513728:- 2199023255552:-:1073741824:-:2197949513728:+ 2199023255552:+:2147483648:+:2201170739200:+ 2199023255552:+:2147483648:-:2201170739200:- 2199023255552:-:2147483648:+:2196875771904:- 2199023255552:-:2147483648:-:2196875771904:+ 2199023255552:+:4294967296:+:2203318222848:+ 2199023255552:+:4294967296:-:2203318222848:- 2199023255552:-:4294967296:+:2194728288256:- 2199023255552:-:4294967296:-:2194728288256:+ 2199023255552:+:8589934592:+:2207613190144:+ 2199023255552:+:8589934592:-:2207613190144:- 2199023255552:-:8589934592:+:2190433320960:- 2199023255552:-:8589934592:-:2190433320960:+ 2199023255552:+:274877906944:+:2473901162496:+ 2199023255552:+:274877906944:-:2473901162496:- 2199023255552:-:274877906944:+:1924145348608:- 2199023255552:-:274877906944:-:1924145348608:+ 2199023255552:+:549755813888:+:2748779069440:+ 2199023255552:+:549755813888:-:2748779069440:- 2199023255552:-:549755813888:+:1649267441664:- 2199023255552:-:549755813888:-:1649267441664:+ 2199023255552:+:1099511627776:+:3298534883328:+ 2199023255552:+:1099511627776:-:3298534883328:- 2199023255552:-:1099511627776:+:1099511627776:- 2199023255552:-:1099511627776:-:1099511627776:+ 2199023255552:+:2199023255552:+:0:+ 2199023255552:+:2199023255552:-:4398046511104:- 2199023255552:-:2199023255552:+:4398046511104:- 2199023255552:-:2199023255552:-:0:+ 2199023255552:+:70368744177664:+:72567767433216:+ 2199023255552:+:70368744177664:-:68169720922112:- 2199023255552:-:70368744177664:+:72567767433216:- 2199023255552:-:70368744177664:-:68169720922112:+ 2199023255552:+:140737488355328:+:142936511610880:+ 2199023255552:+:140737488355328:-:138538465099776:- 2199023255552:-:140737488355328:+:142936511610880:- 2199023255552:-:140737488355328:-:138538465099776:+ 2199023255552:+:281474976710656:+:283673999966208:+ 2199023255552:+:281474976710656:-:279275953455104:- 2199023255552:-:281474976710656:+:283673999966208:- 2199023255552:-:281474976710656:-:279275953455104:+ 2199023255552:+:562949953421312:+:565148976676864:+ 2199023255552:+:562949953421312:-:560750930165760:- 2199023255552:-:562949953421312:+:565148976676864:- 2199023255552:-:562949953421312:-:560750930165760:+ 2199023255552:+:18014398509481984:+:18016597532737536:+ 2199023255552:+:18014398509481984:-:18012199486226432:- 2199023255552:-:18014398509481984:+:18016597532737536:- 2199023255552:-:18014398509481984:-:18012199486226432:+ 2199023255552:+:36028797018963968:+:36030996042219520:+ 2199023255552:+:36028797018963968:-:36026597995708416:- 2199023255552:-:36028797018963968:+:36030996042219520:- 2199023255552:-:36028797018963968:-:36026597995708416:+ 2199023255552:+:72057594037927936:+:72059793061183488:+ 2199023255552:+:72057594037927936:-:72055395014672384:- 2199023255552:-:72057594037927936:+:72059793061183488:- 2199023255552:-:72057594037927936:-:72055395014672384:+ 2199023255552:+:144115188075855872:+:144117387099111424:+ 2199023255552:+:144115188075855872:-:144112989052600320:- 2199023255552:-:144115188075855872:+:144117387099111424:- 2199023255552:-:144115188075855872:-:144112989052600320:+ 70368744177664:+:0:+:70368744177664:+ 70368744177664:-:0:+:70368744177664:- 70368744177664:+:1:+:70368744177665:+ 70368744177664:+:1:-:70368744177665:- 70368744177664:-:1:+:70368744177663:- 70368744177664:-:1:-:70368744177663:+ 70368744177664:+:2:+:70368744177666:+ 70368744177664:+:2:-:70368744177666:- 70368744177664:-:2:+:70368744177662:- 70368744177664:-:2:-:70368744177662:+ 70368744177664:+:3:+:70368744177667:+ 70368744177664:+:3:-:70368744177667:- 70368744177664:-:3:+:70368744177661:- 70368744177664:-:3:-:70368744177661:+ 70368744177664:+:4:+:70368744177668:+ 70368744177664:+:4:-:70368744177668:- 70368744177664:-:4:+:70368744177660:- 70368744177664:-:4:-:70368744177660:+ 70368744177664:+:64:+:70368744177728:+ 70368744177664:+:64:-:70368744177728:- 70368744177664:-:64:+:70368744177600:- 70368744177664:-:64:-:70368744177600:+ 70368744177664:+:128:+:70368744177792:+ 70368744177664:+:128:-:70368744177792:- 70368744177664:-:128:+:70368744177536:- 70368744177664:-:128:-:70368744177536:+ 70368744177664:+:256:+:70368744177920:+ 70368744177664:+:256:-:70368744177920:- 70368744177664:-:256:+:70368744177408:- 70368744177664:-:256:-:70368744177408:+ 70368744177664:+:512:+:70368744178176:+ 70368744177664:+:512:-:70368744178176:- 70368744177664:-:512:+:70368744177152:- 70368744177664:-:512:-:70368744177152:+ 70368744177664:+:16384:+:70368744194048:+ 70368744177664:+:16384:-:70368744194048:- 70368744177664:-:16384:+:70368744161280:- 70368744177664:-:16384:-:70368744161280:+ 70368744177664:+:32768:+:70368744210432:+ 70368744177664:+:32768:-:70368744210432:- 70368744177664:-:32768:+:70368744144896:- 70368744177664:-:32768:-:70368744144896:+ 70368744177664:+:65536:+:70368744243200:+ 70368744177664:+:65536:-:70368744243200:- 70368744177664:-:65536:+:70368744112128:- 70368744177664:-:65536:-:70368744112128:+ 70368744177664:+:131072:+:70368744308736:+ 70368744177664:+:131072:-:70368744308736:- 70368744177664:-:131072:+:70368744046592:- 70368744177664:-:131072:-:70368744046592:+ 70368744177664:+:4194304:+:70368748371968:+ 70368744177664:+:4194304:-:70368748371968:- 70368744177664:-:4194304:+:70368739983360:- 70368744177664:-:4194304:-:70368739983360:+ 70368744177664:+:8388608:+:70368752566272:+ 70368744177664:+:8388608:-:70368752566272:- 70368744177664:-:8388608:+:70368735789056:- 70368744177664:-:8388608:-:70368735789056:+ 70368744177664:+:16777216:+:70368760954880:+ 70368744177664:+:16777216:-:70368760954880:- 70368744177664:-:16777216:+:70368727400448:- 70368744177664:-:16777216:-:70368727400448:+ 70368744177664:+:33554432:+:70368777732096:+ 70368744177664:+:33554432:-:70368777732096:- 70368744177664:-:33554432:+:70368710623232:- 70368744177664:-:33554432:-:70368710623232:+ 70368744177664:+:1073741824:+:70369817919488:+ 70368744177664:+:1073741824:-:70369817919488:- 70368744177664:-:1073741824:+:70367670435840:- 70368744177664:-:1073741824:-:70367670435840:+ 70368744177664:+:2147483648:+:70370891661312:+ 70368744177664:+:2147483648:-:70370891661312:- 70368744177664:-:2147483648:+:70366596694016:- 70368744177664:-:2147483648:-:70366596694016:+ 70368744177664:+:4294967296:+:70373039144960:+ 70368744177664:+:4294967296:-:70373039144960:- 70368744177664:-:4294967296:+:70364449210368:- 70368744177664:-:4294967296:-:70364449210368:+ 70368744177664:+:8589934592:+:70377334112256:+ 70368744177664:+:8589934592:-:70377334112256:- 70368744177664:-:8589934592:+:70360154243072:- 70368744177664:-:8589934592:-:70360154243072:+ 70368744177664:+:274877906944:+:70643622084608:+ 70368744177664:+:274877906944:-:70643622084608:- 70368744177664:-:274877906944:+:70093866270720:- 70368744177664:-:274877906944:-:70093866270720:+ 70368744177664:+:549755813888:+:70918499991552:+ 70368744177664:+:549755813888:-:70918499991552:- 70368744177664:-:549755813888:+:69818988363776:- 70368744177664:-:549755813888:-:69818988363776:+ 70368744177664:+:1099511627776:+:71468255805440:+ 70368744177664:+:1099511627776:-:71468255805440:- 70368744177664:-:1099511627776:+:69269232549888:- 70368744177664:-:1099511627776:-:69269232549888:+ 70368744177664:+:2199023255552:+:72567767433216:+ 70368744177664:+:2199023255552:-:72567767433216:- 70368744177664:-:2199023255552:+:68169720922112:- 70368744177664:-:2199023255552:-:68169720922112:+ 70368744177664:+:70368744177664:+:0:+ 70368744177664:+:70368744177664:-:140737488355328:- 70368744177664:-:70368744177664:+:140737488355328:- 70368744177664:-:70368744177664:-:0:+ 70368744177664:+:140737488355328:+:211106232532992:+ 70368744177664:+:140737488355328:-:70368744177664:- 70368744177664:-:140737488355328:+:211106232532992:- 70368744177664:-:140737488355328:-:70368744177664:+ 70368744177664:+:281474976710656:+:351843720888320:+ 70368744177664:+:281474976710656:-:211106232532992:- 70368744177664:-:281474976710656:+:351843720888320:- 70368744177664:-:281474976710656:-:211106232532992:+ 70368744177664:+:562949953421312:+:633318697598976:+ 70368744177664:+:562949953421312:-:492581209243648:- 70368744177664:-:562949953421312:+:633318697598976:- 70368744177664:-:562949953421312:-:492581209243648:+ 70368744177664:+:18014398509481984:+:18084767253659648:+ 70368744177664:+:18014398509481984:-:17944029765304320:- 70368744177664:-:18014398509481984:+:18084767253659648:- 70368744177664:-:18014398509481984:-:17944029765304320:+ 70368744177664:+:36028797018963968:+:36099165763141632:+ 70368744177664:+:36028797018963968:-:35958428274786304:- 70368744177664:-:36028797018963968:+:36099165763141632:- 70368744177664:-:36028797018963968:-:35958428274786304:+ 70368744177664:+:72057594037927936:+:72127962782105600:+ 70368744177664:+:72057594037927936:-:71987225293750272:- 70368744177664:-:72057594037927936:+:72127962782105600:- 70368744177664:-:72057594037927936:-:71987225293750272:+ 70368744177664:+:144115188075855872:+:144185556820033536:+ 70368744177664:+:144115188075855872:-:144044819331678208:- 70368744177664:-:144115188075855872:+:144185556820033536:- 70368744177664:-:144115188075855872:-:144044819331678208:+ 140737488355328:+:0:+:140737488355328:+ 140737488355328:-:0:+:140737488355328:- 140737488355328:+:1:+:140737488355329:+ 140737488355328:+:1:-:140737488355329:- 140737488355328:-:1:+:140737488355327:- 140737488355328:-:1:-:140737488355327:+ 140737488355328:+:2:+:140737488355330:+ 140737488355328:+:2:-:140737488355330:- 140737488355328:-:2:+:140737488355326:- 140737488355328:-:2:-:140737488355326:+ 140737488355328:+:3:+:140737488355331:+ 140737488355328:+:3:-:140737488355331:- 140737488355328:-:3:+:140737488355325:- 140737488355328:-:3:-:140737488355325:+ 140737488355328:+:4:+:140737488355332:+ 140737488355328:+:4:-:140737488355332:- 140737488355328:-:4:+:140737488355324:- 140737488355328:-:4:-:140737488355324:+ 140737488355328:+:64:+:140737488355392:+ 140737488355328:+:64:-:140737488355392:- 140737488355328:-:64:+:140737488355264:- 140737488355328:-:64:-:140737488355264:+ 140737488355328:+:128:+:140737488355456:+ 140737488355328:+:128:-:140737488355456:- 140737488355328:-:128:+:140737488355200:- 140737488355328:-:128:-:140737488355200:+ 140737488355328:+:256:+:140737488355584:+ 140737488355328:+:256:-:140737488355584:- 140737488355328:-:256:+:140737488355072:- 140737488355328:-:256:-:140737488355072:+ 140737488355328:+:512:+:140737488355840:+ 140737488355328:+:512:-:140737488355840:- 140737488355328:-:512:+:140737488354816:- 140737488355328:-:512:-:140737488354816:+ 140737488355328:+:16384:+:140737488371712:+ 140737488355328:+:16384:-:140737488371712:- 140737488355328:-:16384:+:140737488338944:- 140737488355328:-:16384:-:140737488338944:+ 140737488355328:+:32768:+:140737488388096:+ 140737488355328:+:32768:-:140737488388096:- 140737488355328:-:32768:+:140737488322560:- 140737488355328:-:32768:-:140737488322560:+ 140737488355328:+:65536:+:140737488420864:+ 140737488355328:+:65536:-:140737488420864:- 140737488355328:-:65536:+:140737488289792:- 140737488355328:-:65536:-:140737488289792:+ 140737488355328:+:131072:+:140737488486400:+ 140737488355328:+:131072:-:140737488486400:- 140737488355328:-:131072:+:140737488224256:- 140737488355328:-:131072:-:140737488224256:+ 140737488355328:+:4194304:+:140737492549632:+ 140737488355328:+:4194304:-:140737492549632:- 140737488355328:-:4194304:+:140737484161024:- 140737488355328:-:4194304:-:140737484161024:+ 140737488355328:+:8388608:+:140737496743936:+ 140737488355328:+:8388608:-:140737496743936:- 140737488355328:-:8388608:+:140737479966720:- 140737488355328:-:8388608:-:140737479966720:+ 140737488355328:+:16777216:+:140737505132544:+ 140737488355328:+:16777216:-:140737505132544:- 140737488355328:-:16777216:+:140737471578112:- 140737488355328:-:16777216:-:140737471578112:+ 140737488355328:+:33554432:+:140737521909760:+ 140737488355328:+:33554432:-:140737521909760:- 140737488355328:-:33554432:+:140737454800896:- 140737488355328:-:33554432:-:140737454800896:+ 140737488355328:+:1073741824:+:140738562097152:+ 140737488355328:+:1073741824:-:140738562097152:- 140737488355328:-:1073741824:+:140736414613504:- 140737488355328:-:1073741824:-:140736414613504:+ 140737488355328:+:2147483648:+:140739635838976:+ 140737488355328:+:2147483648:-:140739635838976:- 140737488355328:-:2147483648:+:140735340871680:- 140737488355328:-:2147483648:-:140735340871680:+ 140737488355328:+:4294967296:+:140741783322624:+ 140737488355328:+:4294967296:-:140741783322624:- 140737488355328:-:4294967296:+:140733193388032:- 140737488355328:-:4294967296:-:140733193388032:+ 140737488355328:+:8589934592:+:140746078289920:+ 140737488355328:+:8589934592:-:140746078289920:- 140737488355328:-:8589934592:+:140728898420736:- 140737488355328:-:8589934592:-:140728898420736:+ 140737488355328:+:274877906944:+:141012366262272:+ 140737488355328:+:274877906944:-:141012366262272:- 140737488355328:-:274877906944:+:140462610448384:- 140737488355328:-:274877906944:-:140462610448384:+ 140737488355328:+:549755813888:+:141287244169216:+ 140737488355328:+:549755813888:-:141287244169216:- 140737488355328:-:549755813888:+:140187732541440:- 140737488355328:-:549755813888:-:140187732541440:+ 140737488355328:+:1099511627776:+:141836999983104:+ 140737488355328:+:1099511627776:-:141836999983104:- 140737488355328:-:1099511627776:+:139637976727552:- 140737488355328:-:1099511627776:-:139637976727552:+ 140737488355328:+:2199023255552:+:142936511610880:+ 140737488355328:+:2199023255552:-:142936511610880:- 140737488355328:-:2199023255552:+:138538465099776:- 140737488355328:-:2199023255552:-:138538465099776:+ 140737488355328:+:70368744177664:+:211106232532992:+ 140737488355328:+:70368744177664:-:211106232532992:- 140737488355328:-:70368744177664:+:70368744177664:- 140737488355328:-:70368744177664:-:70368744177664:+ 140737488355328:+:140737488355328:+:0:+ 140737488355328:+:140737488355328:-:281474976710656:- 140737488355328:-:140737488355328:+:281474976710656:- 140737488355328:-:140737488355328:-:0:+ 140737488355328:+:281474976710656:+:422212465065984:+ 140737488355328:+:281474976710656:-:140737488355328:- 140737488355328:-:281474976710656:+:422212465065984:- 140737488355328:-:281474976710656:-:140737488355328:+ 140737488355328:+:562949953421312:+:703687441776640:+ 140737488355328:+:562949953421312:-:422212465065984:- 140737488355328:-:562949953421312:+:703687441776640:- 140737488355328:-:562949953421312:-:422212465065984:+ 140737488355328:+:18014398509481984:+:18155135997837312:+ 140737488355328:+:18014398509481984:-:17873661021126656:- 140737488355328:-:18014398509481984:+:18155135997837312:- 140737488355328:-:18014398509481984:-:17873661021126656:+ 140737488355328:+:36028797018963968:+:36169534507319296:+ 140737488355328:+:36028797018963968:-:35888059530608640:- 140737488355328:-:36028797018963968:+:36169534507319296:- 140737488355328:-:36028797018963968:-:35888059530608640:+ 140737488355328:+:72057594037927936:+:72198331526283264:+ 140737488355328:+:72057594037927936:-:71916856549572608:- 140737488355328:-:72057594037927936:+:72198331526283264:- 140737488355328:-:72057594037927936:-:71916856549572608:+ 140737488355328:+:144115188075855872:+:144255925564211200:+ 140737488355328:+:144115188075855872:-:143974450587500544:- 140737488355328:-:144115188075855872:+:144255925564211200:- 140737488355328:-:144115188075855872:-:143974450587500544:+ 281474976710656:+:0:+:281474976710656:+ 281474976710656:-:0:+:281474976710656:- 281474976710656:+:1:+:281474976710657:+ 281474976710656:+:1:-:281474976710657:- 281474976710656:-:1:+:281474976710655:- 281474976710656:-:1:-:281474976710655:+ 281474976710656:+:2:+:281474976710658:+ 281474976710656:+:2:-:281474976710658:- 281474976710656:-:2:+:281474976710654:- 281474976710656:-:2:-:281474976710654:+ 281474976710656:+:3:+:281474976710659:+ 281474976710656:+:3:-:281474976710659:- 281474976710656:-:3:+:281474976710653:- 281474976710656:-:3:-:281474976710653:+ 281474976710656:+:4:+:281474976710660:+ 281474976710656:+:4:-:281474976710660:- 281474976710656:-:4:+:281474976710652:- 281474976710656:-:4:-:281474976710652:+ 281474976710656:+:64:+:281474976710720:+ 281474976710656:+:64:-:281474976710720:- 281474976710656:-:64:+:281474976710592:- 281474976710656:-:64:-:281474976710592:+ 281474976710656:+:128:+:281474976710784:+ 281474976710656:+:128:-:281474976710784:- 281474976710656:-:128:+:281474976710528:- 281474976710656:-:128:-:281474976710528:+ 281474976710656:+:256:+:281474976710912:+ 281474976710656:+:256:-:281474976710912:- 281474976710656:-:256:+:281474976710400:- 281474976710656:-:256:-:281474976710400:+ 281474976710656:+:512:+:281474976711168:+ 281474976710656:+:512:-:281474976711168:- 281474976710656:-:512:+:281474976710144:- 281474976710656:-:512:-:281474976710144:+ 281474976710656:+:16384:+:281474976727040:+ 281474976710656:+:16384:-:281474976727040:- 281474976710656:-:16384:+:281474976694272:- 281474976710656:-:16384:-:281474976694272:+ 281474976710656:+:32768:+:281474976743424:+ 281474976710656:+:32768:-:281474976743424:- 281474976710656:-:32768:+:281474976677888:- 281474976710656:-:32768:-:281474976677888:+ 281474976710656:+:65536:+:281474976776192:+ 281474976710656:+:65536:-:281474976776192:- 281474976710656:-:65536:+:281474976645120:- 281474976710656:-:65536:-:281474976645120:+ 281474976710656:+:131072:+:281474976841728:+ 281474976710656:+:131072:-:281474976841728:- 281474976710656:-:131072:+:281474976579584:- 281474976710656:-:131072:-:281474976579584:+ 281474976710656:+:4194304:+:281474980904960:+ 281474976710656:+:4194304:-:281474980904960:- 281474976710656:-:4194304:+:281474972516352:- 281474976710656:-:4194304:-:281474972516352:+ 281474976710656:+:8388608:+:281474985099264:+ 281474976710656:+:8388608:-:281474985099264:- 281474976710656:-:8388608:+:281474968322048:- 281474976710656:-:8388608:-:281474968322048:+ 281474976710656:+:16777216:+:281474993487872:+ 281474976710656:+:16777216:-:281474993487872:- 281474976710656:-:16777216:+:281474959933440:- 281474976710656:-:16777216:-:281474959933440:+ 281474976710656:+:33554432:+:281475010265088:+ 281474976710656:+:33554432:-:281475010265088:- 281474976710656:-:33554432:+:281474943156224:- 281474976710656:-:33554432:-:281474943156224:+ 281474976710656:+:1073741824:+:281476050452480:+ 281474976710656:+:1073741824:-:281476050452480:- 281474976710656:-:1073741824:+:281473902968832:- 281474976710656:-:1073741824:-:281473902968832:+ 281474976710656:+:2147483648:+:281477124194304:+ 281474976710656:+:2147483648:-:281477124194304:- 281474976710656:-:2147483648:+:281472829227008:- 281474976710656:-:2147483648:-:281472829227008:+ 281474976710656:+:4294967296:+:281479271677952:+ 281474976710656:+:4294967296:-:281479271677952:- 281474976710656:-:4294967296:+:281470681743360:- 281474976710656:-:4294967296:-:281470681743360:+ 281474976710656:+:8589934592:+:281483566645248:+ 281474976710656:+:8589934592:-:281483566645248:- 281474976710656:-:8589934592:+:281466386776064:- 281474976710656:-:8589934592:-:281466386776064:+ 281474976710656:+:274877906944:+:281749854617600:+ 281474976710656:+:274877906944:-:281749854617600:- 281474976710656:-:274877906944:+:281200098803712:- 281474976710656:-:274877906944:-:281200098803712:+ 281474976710656:+:549755813888:+:282024732524544:+ 281474976710656:+:549755813888:-:282024732524544:- 281474976710656:-:549755813888:+:280925220896768:- 281474976710656:-:549755813888:-:280925220896768:+ 281474976710656:+:1099511627776:+:282574488338432:+ 281474976710656:+:1099511627776:-:282574488338432:- 281474976710656:-:1099511627776:+:280375465082880:- 281474976710656:-:1099511627776:-:280375465082880:+ 281474976710656:+:2199023255552:+:283673999966208:+ 281474976710656:+:2199023255552:-:283673999966208:- 281474976710656:-:2199023255552:+:279275953455104:- 281474976710656:-:2199023255552:-:279275953455104:+ 281474976710656:+:70368744177664:+:351843720888320:+ 281474976710656:+:70368744177664:-:351843720888320:- 281474976710656:-:70368744177664:+:211106232532992:- 281474976710656:-:70368744177664:-:211106232532992:+ 281474976710656:+:140737488355328:+:422212465065984:+ 281474976710656:+:140737488355328:-:422212465065984:- 281474976710656:-:140737488355328:+:140737488355328:- 281474976710656:-:140737488355328:-:140737488355328:+ 281474976710656:+:281474976710656:+:0:+ 281474976710656:+:281474976710656:-:562949953421312:- 281474976710656:-:281474976710656:+:562949953421312:- 281474976710656:-:281474976710656:-:0:+ 281474976710656:+:562949953421312:+:844424930131968:+ 281474976710656:+:562949953421312:-:281474976710656:- 281474976710656:-:562949953421312:+:844424930131968:- 281474976710656:-:562949953421312:-:281474976710656:+ 281474976710656:+:18014398509481984:+:18295873486192640:+ 281474976710656:+:18014398509481984:-:17732923532771328:- 281474976710656:-:18014398509481984:+:18295873486192640:- 281474976710656:-:18014398509481984:-:17732923532771328:+ 281474976710656:+:36028797018963968:+:36310271995674624:+ 281474976710656:+:36028797018963968:-:35747322042253312:- 281474976710656:-:36028797018963968:+:36310271995674624:- 281474976710656:-:36028797018963968:-:35747322042253312:+ 281474976710656:+:72057594037927936:+:72339069014638592:+ 281474976710656:+:72057594037927936:-:71776119061217280:- 281474976710656:-:72057594037927936:+:72339069014638592:- 281474976710656:-:72057594037927936:-:71776119061217280:+ 281474976710656:+:144115188075855872:+:144396663052566528:+ 281474976710656:+:144115188075855872:-:143833713099145216:- 281474976710656:-:144115188075855872:+:144396663052566528:- 281474976710656:-:144115188075855872:-:143833713099145216:+ 562949953421312:+:0:+:562949953421312:+ 562949953421312:-:0:+:562949953421312:- 562949953421312:+:1:+:562949953421313:+ 562949953421312:+:1:-:562949953421313:- 562949953421312:-:1:+:562949953421311:- 562949953421312:-:1:-:562949953421311:+ 562949953421312:+:2:+:562949953421314:+ 562949953421312:+:2:-:562949953421314:- 562949953421312:-:2:+:562949953421310:- 562949953421312:-:2:-:562949953421310:+ 562949953421312:+:3:+:562949953421315:+ 562949953421312:+:3:-:562949953421315:- 562949953421312:-:3:+:562949953421309:- 562949953421312:-:3:-:562949953421309:+ 562949953421312:+:4:+:562949953421316:+ 562949953421312:+:4:-:562949953421316:- 562949953421312:-:4:+:562949953421308:- 562949953421312:-:4:-:562949953421308:+ 562949953421312:+:64:+:562949953421376:+ 562949953421312:+:64:-:562949953421376:- 562949953421312:-:64:+:562949953421248:- 562949953421312:-:64:-:562949953421248:+ 562949953421312:+:128:+:562949953421440:+ 562949953421312:+:128:-:562949953421440:- 562949953421312:-:128:+:562949953421184:- 562949953421312:-:128:-:562949953421184:+ 562949953421312:+:256:+:562949953421568:+ 562949953421312:+:256:-:562949953421568:- 562949953421312:-:256:+:562949953421056:- 562949953421312:-:256:-:562949953421056:+ 562949953421312:+:512:+:562949953421824:+ 562949953421312:+:512:-:562949953421824:- 562949953421312:-:512:+:562949953420800:- 562949953421312:-:512:-:562949953420800:+ 562949953421312:+:16384:+:562949953437696:+ 562949953421312:+:16384:-:562949953437696:- 562949953421312:-:16384:+:562949953404928:- 562949953421312:-:16384:-:562949953404928:+ 562949953421312:+:32768:+:562949953454080:+ 562949953421312:+:32768:-:562949953454080:- 562949953421312:-:32768:+:562949953388544:- 562949953421312:-:32768:-:562949953388544:+ 562949953421312:+:65536:+:562949953486848:+ 562949953421312:+:65536:-:562949953486848:- 562949953421312:-:65536:+:562949953355776:- 562949953421312:-:65536:-:562949953355776:+ 562949953421312:+:131072:+:562949953552384:+ 562949953421312:+:131072:-:562949953552384:- 562949953421312:-:131072:+:562949953290240:- 562949953421312:-:131072:-:562949953290240:+ 562949953421312:+:4194304:+:562949957615616:+ 562949953421312:+:4194304:-:562949957615616:- 562949953421312:-:4194304:+:562949949227008:- 562949953421312:-:4194304:-:562949949227008:+ 562949953421312:+:8388608:+:562949961809920:+ 562949953421312:+:8388608:-:562949961809920:- 562949953421312:-:8388608:+:562949945032704:- 562949953421312:-:8388608:-:562949945032704:+ 562949953421312:+:16777216:+:562949970198528:+ 562949953421312:+:16777216:-:562949970198528:- 562949953421312:-:16777216:+:562949936644096:- 562949953421312:-:16777216:-:562949936644096:+ 562949953421312:+:33554432:+:562949986975744:+ 562949953421312:+:33554432:-:562949986975744:- 562949953421312:-:33554432:+:562949919866880:- 562949953421312:-:33554432:-:562949919866880:+ 562949953421312:+:1073741824:+:562951027163136:+ 562949953421312:+:1073741824:-:562951027163136:- 562949953421312:-:1073741824:+:562948879679488:- 562949953421312:-:1073741824:-:562948879679488:+ 562949953421312:+:2147483648:+:562952100904960:+ 562949953421312:+:2147483648:-:562952100904960:- 562949953421312:-:2147483648:+:562947805937664:- 562949953421312:-:2147483648:-:562947805937664:+ 562949953421312:+:4294967296:+:562954248388608:+ 562949953421312:+:4294967296:-:562954248388608:- 562949953421312:-:4294967296:+:562945658454016:- 562949953421312:-:4294967296:-:562945658454016:+ 562949953421312:+:8589934592:+:562958543355904:+ 562949953421312:+:8589934592:-:562958543355904:- 562949953421312:-:8589934592:+:562941363486720:- 562949953421312:-:8589934592:-:562941363486720:+ 562949953421312:+:274877906944:+:563224831328256:+ 562949953421312:+:274877906944:-:563224831328256:- 562949953421312:-:274877906944:+:562675075514368:- 562949953421312:-:274877906944:-:562675075514368:+ 562949953421312:+:549755813888:+:563499709235200:+ 562949953421312:+:549755813888:-:563499709235200:- 562949953421312:-:549755813888:+:562400197607424:- 562949953421312:-:549755813888:-:562400197607424:+ 562949953421312:+:1099511627776:+:564049465049088:+ 562949953421312:+:1099511627776:-:564049465049088:- 562949953421312:-:1099511627776:+:561850441793536:- 562949953421312:-:1099511627776:-:561850441793536:+ 562949953421312:+:2199023255552:+:565148976676864:+ 562949953421312:+:2199023255552:-:565148976676864:- 562949953421312:-:2199023255552:+:560750930165760:- 562949953421312:-:2199023255552:-:560750930165760:+ 562949953421312:+:70368744177664:+:633318697598976:+ 562949953421312:+:70368744177664:-:633318697598976:- 562949953421312:-:70368744177664:+:492581209243648:- 562949953421312:-:70368744177664:-:492581209243648:+ 562949953421312:+:140737488355328:+:703687441776640:+ 562949953421312:+:140737488355328:-:703687441776640:- 562949953421312:-:140737488355328:+:422212465065984:- 562949953421312:-:140737488355328:-:422212465065984:+ 562949953421312:+:281474976710656:+:844424930131968:+ 562949953421312:+:281474976710656:-:844424930131968:- 562949953421312:-:281474976710656:+:281474976710656:- 562949953421312:-:281474976710656:-:281474976710656:+ 562949953421312:+:562949953421312:+:0:+ 562949953421312:+:562949953421312:-:1125899906842624:- 562949953421312:-:562949953421312:+:1125899906842624:- 562949953421312:-:562949953421312:-:0:+ 562949953421312:+:18014398509481984:+:18577348462903296:+ 562949953421312:+:18014398509481984:-:17451448556060672:- 562949953421312:-:18014398509481984:+:18577348462903296:- 562949953421312:-:18014398509481984:-:17451448556060672:+ 562949953421312:+:36028797018963968:+:36591746972385280:+ 562949953421312:+:36028797018963968:-:35465847065542656:- 562949953421312:-:36028797018963968:+:36591746972385280:- 562949953421312:-:36028797018963968:-:35465847065542656:+ 562949953421312:+:72057594037927936:+:72620543991349248:+ 562949953421312:+:72057594037927936:-:71494644084506624:- 562949953421312:-:72057594037927936:+:72620543991349248:- 562949953421312:-:72057594037927936:-:71494644084506624:+ 562949953421312:+:144115188075855872:+:144678138029277184:+ 562949953421312:+:144115188075855872:-:143552238122434560:- 562949953421312:-:144115188075855872:+:144678138029277184:- 562949953421312:-:144115188075855872:-:143552238122434560:+ 18014398509481984:+:0:+:18014398509481984:+ 18014398509481984:-:0:+:18014398509481984:- 18014398509481984:+:1:+:18014398509481985:+ 18014398509481984:+:1:-:18014398509481985:- 18014398509481984:-:1:+:18014398509481983:- 18014398509481984:-:1:-:18014398509481983:+ 18014398509481984:+:2:+:18014398509481986:+ 18014398509481984:+:2:-:18014398509481986:- 18014398509481984:-:2:+:18014398509481982:- 18014398509481984:-:2:-:18014398509481982:+ 18014398509481984:+:3:+:18014398509481987:+ 18014398509481984:+:3:-:18014398509481987:- 18014398509481984:-:3:+:18014398509481981:- 18014398509481984:-:3:-:18014398509481981:+ 18014398509481984:+:4:+:18014398509481988:+ 18014398509481984:+:4:-:18014398509481988:- 18014398509481984:-:4:+:18014398509481980:- 18014398509481984:-:4:-:18014398509481980:+ 18014398509481984:+:64:+:18014398509482048:+ 18014398509481984:+:64:-:18014398509482048:- 18014398509481984:-:64:+:18014398509481920:- 18014398509481984:-:64:-:18014398509481920:+ 18014398509481984:+:128:+:18014398509482112:+ 18014398509481984:+:128:-:18014398509482112:- 18014398509481984:-:128:+:18014398509481856:- 18014398509481984:-:128:-:18014398509481856:+ 18014398509481984:+:256:+:18014398509482240:+ 18014398509481984:+:256:-:18014398509482240:- 18014398509481984:-:256:+:18014398509481728:- 18014398509481984:-:256:-:18014398509481728:+ 18014398509481984:+:512:+:18014398509482496:+ 18014398509481984:+:512:-:18014398509482496:- 18014398509481984:-:512:+:18014398509481472:- 18014398509481984:-:512:-:18014398509481472:+ 18014398509481984:+:16384:+:18014398509498368:+ 18014398509481984:+:16384:-:18014398509498368:- 18014398509481984:-:16384:+:18014398509465600:- 18014398509481984:-:16384:-:18014398509465600:+ 18014398509481984:+:32768:+:18014398509514752:+ 18014398509481984:+:32768:-:18014398509514752:- 18014398509481984:-:32768:+:18014398509449216:- 18014398509481984:-:32768:-:18014398509449216:+ 18014398509481984:+:65536:+:18014398509547520:+ 18014398509481984:+:65536:-:18014398509547520:- 18014398509481984:-:65536:+:18014398509416448:- 18014398509481984:-:65536:-:18014398509416448:+ 18014398509481984:+:131072:+:18014398509613056:+ 18014398509481984:+:131072:-:18014398509613056:- 18014398509481984:-:131072:+:18014398509350912:- 18014398509481984:-:131072:-:18014398509350912:+ 18014398509481984:+:4194304:+:18014398513676288:+ 18014398509481984:+:4194304:-:18014398513676288:- 18014398509481984:-:4194304:+:18014398505287680:- 18014398509481984:-:4194304:-:18014398505287680:+ 18014398509481984:+:8388608:+:18014398517870592:+ 18014398509481984:+:8388608:-:18014398517870592:- 18014398509481984:-:8388608:+:18014398501093376:- 18014398509481984:-:8388608:-:18014398501093376:+ 18014398509481984:+:16777216:+:18014398526259200:+ 18014398509481984:+:16777216:-:18014398526259200:- 18014398509481984:-:16777216:+:18014398492704768:- 18014398509481984:-:16777216:-:18014398492704768:+ 18014398509481984:+:33554432:+:18014398543036416:+ 18014398509481984:+:33554432:-:18014398543036416:- 18014398509481984:-:33554432:+:18014398475927552:- 18014398509481984:-:33554432:-:18014398475927552:+ 18014398509481984:+:1073741824:+:18014399583223808:+ 18014398509481984:+:1073741824:-:18014399583223808:- 18014398509481984:-:1073741824:+:18014397435740160:- 18014398509481984:-:1073741824:-:18014397435740160:+ 18014398509481984:+:2147483648:+:18014400656965632:+ 18014398509481984:+:2147483648:-:18014400656965632:- 18014398509481984:-:2147483648:+:18014396361998336:- 18014398509481984:-:2147483648:-:18014396361998336:+ 18014398509481984:+:4294967296:+:18014402804449280:+ 18014398509481984:+:4294967296:-:18014402804449280:- 18014398509481984:-:4294967296:+:18014394214514688:- 18014398509481984:-:4294967296:-:18014394214514688:+ 18014398509481984:+:8589934592:+:18014407099416576:+ 18014398509481984:+:8589934592:-:18014407099416576:- 18014398509481984:-:8589934592:+:18014389919547392:- 18014398509481984:-:8589934592:-:18014389919547392:+ 18014398509481984:+:274877906944:+:18014673387388928:+ 18014398509481984:+:274877906944:-:18014673387388928:- 18014398509481984:-:274877906944:+:18014123631575040:- 18014398509481984:-:274877906944:-:18014123631575040:+ 18014398509481984:+:549755813888:+:18014948265295872:+ 18014398509481984:+:549755813888:-:18014948265295872:- 18014398509481984:-:549755813888:+:18013848753668096:- 18014398509481984:-:549755813888:-:18013848753668096:+ 18014398509481984:+:1099511627776:+:18015498021109760:+ 18014398509481984:+:1099511627776:-:18015498021109760:- 18014398509481984:-:1099511627776:+:18013298997854208:- 18014398509481984:-:1099511627776:-:18013298997854208:+ 18014398509481984:+:2199023255552:+:18016597532737536:+ 18014398509481984:+:2199023255552:-:18016597532737536:- 18014398509481984:-:2199023255552:+:18012199486226432:- 18014398509481984:-:2199023255552:-:18012199486226432:+ 18014398509481984:+:70368744177664:+:18084767253659648:+ 18014398509481984:+:70368744177664:-:18084767253659648:- 18014398509481984:-:70368744177664:+:17944029765304320:- 18014398509481984:-:70368744177664:-:17944029765304320:+ 18014398509481984:+:140737488355328:+:18155135997837312:+ 18014398509481984:+:140737488355328:-:18155135997837312:- 18014398509481984:-:140737488355328:+:17873661021126656:- 18014398509481984:-:140737488355328:-:17873661021126656:+ 18014398509481984:+:281474976710656:+:18295873486192640:+ 18014398509481984:+:281474976710656:-:18295873486192640:- 18014398509481984:-:281474976710656:+:17732923532771328:- 18014398509481984:-:281474976710656:-:17732923532771328:+ 18014398509481984:+:562949953421312:+:18577348462903296:+ 18014398509481984:+:562949953421312:-:18577348462903296:- 18014398509481984:-:562949953421312:+:17451448556060672:- 18014398509481984:-:562949953421312:-:17451448556060672:+ 18014398509481984:+:18014398509481984:+:0:+ 18014398509481984:+:18014398509481984:-:36028797018963968:- 18014398509481984:-:18014398509481984:+:36028797018963968:- 18014398509481984:-:18014398509481984:-:0:+ 18014398509481984:+:36028797018963968:+:54043195528445952:+ 18014398509481984:+:36028797018963968:-:18014398509481984:- 18014398509481984:-:36028797018963968:+:54043195528445952:- 18014398509481984:-:36028797018963968:-:18014398509481984:+ 18014398509481984:+:72057594037927936:+:90071992547409920:+ 18014398509481984:+:72057594037927936:-:54043195528445952:- 18014398509481984:-:72057594037927936:+:90071992547409920:- 18014398509481984:-:72057594037927936:-:54043195528445952:+ 18014398509481984:+:144115188075855872:+:162129586585337856:+ 18014398509481984:+:144115188075855872:-:126100789566373888:- 18014398509481984:-:144115188075855872:+:162129586585337856:- 18014398509481984:-:144115188075855872:-:126100789566373888:+ 36028797018963968:+:0:+:36028797018963968:+ 36028797018963968:-:0:+:36028797018963968:- 36028797018963968:+:1:+:36028797018963969:+ 36028797018963968:+:1:-:36028797018963969:- 36028797018963968:-:1:+:36028797018963967:- 36028797018963968:-:1:-:36028797018963967:+ 36028797018963968:+:2:+:36028797018963970:+ 36028797018963968:+:2:-:36028797018963970:- 36028797018963968:-:2:+:36028797018963966:- 36028797018963968:-:2:-:36028797018963966:+ 36028797018963968:+:3:+:36028797018963971:+ 36028797018963968:+:3:-:36028797018963971:- 36028797018963968:-:3:+:36028797018963965:- 36028797018963968:-:3:-:36028797018963965:+ 36028797018963968:+:4:+:36028797018963972:+ 36028797018963968:+:4:-:36028797018963972:- 36028797018963968:-:4:+:36028797018963964:- 36028797018963968:-:4:-:36028797018963964:+ 36028797018963968:+:64:+:36028797018964032:+ 36028797018963968:+:64:-:36028797018964032:- 36028797018963968:-:64:+:36028797018963904:- 36028797018963968:-:64:-:36028797018963904:+ 36028797018963968:+:128:+:36028797018964096:+ 36028797018963968:+:128:-:36028797018964096:- 36028797018963968:-:128:+:36028797018963840:- 36028797018963968:-:128:-:36028797018963840:+ 36028797018963968:+:256:+:36028797018964224:+ 36028797018963968:+:256:-:36028797018964224:- 36028797018963968:-:256:+:36028797018963712:- 36028797018963968:-:256:-:36028797018963712:+ 36028797018963968:+:512:+:36028797018964480:+ 36028797018963968:+:512:-:36028797018964480:- 36028797018963968:-:512:+:36028797018963456:- 36028797018963968:-:512:-:36028797018963456:+ 36028797018963968:+:16384:+:36028797018980352:+ 36028797018963968:+:16384:-:36028797018980352:- 36028797018963968:-:16384:+:36028797018947584:- 36028797018963968:-:16384:-:36028797018947584:+ 36028797018963968:+:32768:+:36028797018996736:+ 36028797018963968:+:32768:-:36028797018996736:- 36028797018963968:-:32768:+:36028797018931200:- 36028797018963968:-:32768:-:36028797018931200:+ 36028797018963968:+:65536:+:36028797019029504:+ 36028797018963968:+:65536:-:36028797019029504:- 36028797018963968:-:65536:+:36028797018898432:- 36028797018963968:-:65536:-:36028797018898432:+ 36028797018963968:+:131072:+:36028797019095040:+ 36028797018963968:+:131072:-:36028797019095040:- 36028797018963968:-:131072:+:36028797018832896:- 36028797018963968:-:131072:-:36028797018832896:+ 36028797018963968:+:4194304:+:36028797023158272:+ 36028797018963968:+:4194304:-:36028797023158272:- 36028797018963968:-:4194304:+:36028797014769664:- 36028797018963968:-:4194304:-:36028797014769664:+ 36028797018963968:+:8388608:+:36028797027352576:+ 36028797018963968:+:8388608:-:36028797027352576:- 36028797018963968:-:8388608:+:36028797010575360:- 36028797018963968:-:8388608:-:36028797010575360:+ 36028797018963968:+:16777216:+:36028797035741184:+ 36028797018963968:+:16777216:-:36028797035741184:- 36028797018963968:-:16777216:+:36028797002186752:- 36028797018963968:-:16777216:-:36028797002186752:+ 36028797018963968:+:33554432:+:36028797052518400:+ 36028797018963968:+:33554432:-:36028797052518400:- 36028797018963968:-:33554432:+:36028796985409536:- 36028797018963968:-:33554432:-:36028796985409536:+ 36028797018963968:+:1073741824:+:36028798092705792:+ 36028797018963968:+:1073741824:-:36028798092705792:- 36028797018963968:-:1073741824:+:36028795945222144:- 36028797018963968:-:1073741824:-:36028795945222144:+ 36028797018963968:+:2147483648:+:36028799166447616:+ 36028797018963968:+:2147483648:-:36028799166447616:- 36028797018963968:-:2147483648:+:36028794871480320:- 36028797018963968:-:2147483648:-:36028794871480320:+ 36028797018963968:+:4294967296:+:36028801313931264:+ 36028797018963968:+:4294967296:-:36028801313931264:- 36028797018963968:-:4294967296:+:36028792723996672:- 36028797018963968:-:4294967296:-:36028792723996672:+ 36028797018963968:+:8589934592:+:36028805608898560:+ 36028797018963968:+:8589934592:-:36028805608898560:- 36028797018963968:-:8589934592:+:36028788429029376:- 36028797018963968:-:8589934592:-:36028788429029376:+ 36028797018963968:+:274877906944:+:36029071896870912:+ 36028797018963968:+:274877906944:-:36029071896870912:- 36028797018963968:-:274877906944:+:36028522141057024:- 36028797018963968:-:274877906944:-:36028522141057024:+ 36028797018963968:+:549755813888:+:36029346774777856:+ 36028797018963968:+:549755813888:-:36029346774777856:- 36028797018963968:-:549755813888:+:36028247263150080:- 36028797018963968:-:549755813888:-:36028247263150080:+ 36028797018963968:+:1099511627776:+:36029896530591744:+ 36028797018963968:+:1099511627776:-:36029896530591744:- 36028797018963968:-:1099511627776:+:36027697507336192:- 36028797018963968:-:1099511627776:-:36027697507336192:+ 36028797018963968:+:2199023255552:+:36030996042219520:+ 36028797018963968:+:2199023255552:-:36030996042219520:- 36028797018963968:-:2199023255552:+:36026597995708416:- 36028797018963968:-:2199023255552:-:36026597995708416:+ 36028797018963968:+:70368744177664:+:36099165763141632:+ 36028797018963968:+:70368744177664:-:36099165763141632:- 36028797018963968:-:70368744177664:+:35958428274786304:- 36028797018963968:-:70368744177664:-:35958428274786304:+ 36028797018963968:+:140737488355328:+:36169534507319296:+ 36028797018963968:+:140737488355328:-:36169534507319296:- 36028797018963968:-:140737488355328:+:35888059530608640:- 36028797018963968:-:140737488355328:-:35888059530608640:+ 36028797018963968:+:281474976710656:+:36310271995674624:+ 36028797018963968:+:281474976710656:-:36310271995674624:- 36028797018963968:-:281474976710656:+:35747322042253312:- 36028797018963968:-:281474976710656:-:35747322042253312:+ 36028797018963968:+:562949953421312:+:36591746972385280:+ 36028797018963968:+:562949953421312:-:36591746972385280:- 36028797018963968:-:562949953421312:+:35465847065542656:- 36028797018963968:-:562949953421312:-:35465847065542656:+ 36028797018963968:+:18014398509481984:+:54043195528445952:+ 36028797018963968:+:18014398509481984:-:54043195528445952:- 36028797018963968:-:18014398509481984:+:18014398509481984:- 36028797018963968:-:18014398509481984:-:18014398509481984:+ 36028797018963968:+:36028797018963968:+:0:+ 36028797018963968:+:36028797018963968:-:72057594037927936:- 36028797018963968:-:36028797018963968:+:72057594037927936:- 36028797018963968:-:36028797018963968:-:0:+ 36028797018963968:+:72057594037927936:+:108086391056891904:+ 36028797018963968:+:72057594037927936:-:36028797018963968:- 36028797018963968:-:72057594037927936:+:108086391056891904:- 36028797018963968:-:72057594037927936:-:36028797018963968:+ 36028797018963968:+:144115188075855872:+:180143985094819840:+ 36028797018963968:+:144115188075855872:-:108086391056891904:- 36028797018963968:-:144115188075855872:+:180143985094819840:- 36028797018963968:-:144115188075855872:-:108086391056891904:+ 72057594037927936:+:0:+:72057594037927936:+ 72057594037927936:-:0:+:72057594037927936:- 72057594037927936:+:1:+:72057594037927937:+ 72057594037927936:+:1:-:72057594037927937:- 72057594037927936:-:1:+:72057594037927935:- 72057594037927936:-:1:-:72057594037927935:+ 72057594037927936:+:2:+:72057594037927938:+ 72057594037927936:+:2:-:72057594037927938:- 72057594037927936:-:2:+:72057594037927934:- 72057594037927936:-:2:-:72057594037927934:+ 72057594037927936:+:3:+:72057594037927939:+ 72057594037927936:+:3:-:72057594037927939:- 72057594037927936:-:3:+:72057594037927933:- 72057594037927936:-:3:-:72057594037927933:+ 72057594037927936:+:4:+:72057594037927940:+ 72057594037927936:+:4:-:72057594037927940:- 72057594037927936:-:4:+:72057594037927932:- 72057594037927936:-:4:-:72057594037927932:+ 72057594037927936:+:64:+:72057594037928000:+ 72057594037927936:+:64:-:72057594037928000:- 72057594037927936:-:64:+:72057594037927872:- 72057594037927936:-:64:-:72057594037927872:+ 72057594037927936:+:128:+:72057594037928064:+ 72057594037927936:+:128:-:72057594037928064:- 72057594037927936:-:128:+:72057594037927808:- 72057594037927936:-:128:-:72057594037927808:+ 72057594037927936:+:256:+:72057594037928192:+ 72057594037927936:+:256:-:72057594037928192:- 72057594037927936:-:256:+:72057594037927680:- 72057594037927936:-:256:-:72057594037927680:+ 72057594037927936:+:512:+:72057594037928448:+ 72057594037927936:+:512:-:72057594037928448:- 72057594037927936:-:512:+:72057594037927424:- 72057594037927936:-:512:-:72057594037927424:+ 72057594037927936:+:16384:+:72057594037944320:+ 72057594037927936:+:16384:-:72057594037944320:- 72057594037927936:-:16384:+:72057594037911552:- 72057594037927936:-:16384:-:72057594037911552:+ 72057594037927936:+:32768:+:72057594037960704:+ 72057594037927936:+:32768:-:72057594037960704:- 72057594037927936:-:32768:+:72057594037895168:- 72057594037927936:-:32768:-:72057594037895168:+ 72057594037927936:+:65536:+:72057594037993472:+ 72057594037927936:+:65536:-:72057594037993472:- 72057594037927936:-:65536:+:72057594037862400:- 72057594037927936:-:65536:-:72057594037862400:+ 72057594037927936:+:131072:+:72057594038059008:+ 72057594037927936:+:131072:-:72057594038059008:- 72057594037927936:-:131072:+:72057594037796864:- 72057594037927936:-:131072:-:72057594037796864:+ 72057594037927936:+:4194304:+:72057594042122240:+ 72057594037927936:+:4194304:-:72057594042122240:- 72057594037927936:-:4194304:+:72057594033733632:- 72057594037927936:-:4194304:-:72057594033733632:+ 72057594037927936:+:8388608:+:72057594046316544:+ 72057594037927936:+:8388608:-:72057594046316544:- 72057594037927936:-:8388608:+:72057594029539328:- 72057594037927936:-:8388608:-:72057594029539328:+ 72057594037927936:+:16777216:+:72057594054705152:+ 72057594037927936:+:16777216:-:72057594054705152:- 72057594037927936:-:16777216:+:72057594021150720:- 72057594037927936:-:16777216:-:72057594021150720:+ 72057594037927936:+:33554432:+:72057594071482368:+ 72057594037927936:+:33554432:-:72057594071482368:- 72057594037927936:-:33554432:+:72057594004373504:- 72057594037927936:-:33554432:-:72057594004373504:+ 72057594037927936:+:1073741824:+:72057595111669760:+ 72057594037927936:+:1073741824:-:72057595111669760:- 72057594037927936:-:1073741824:+:72057592964186112:- 72057594037927936:-:1073741824:-:72057592964186112:+ 72057594037927936:+:2147483648:+:72057596185411584:+ 72057594037927936:+:2147483648:-:72057596185411584:- 72057594037927936:-:2147483648:+:72057591890444288:- 72057594037927936:-:2147483648:-:72057591890444288:+ 72057594037927936:+:4294967296:+:72057598332895232:+ 72057594037927936:+:4294967296:-:72057598332895232:- 72057594037927936:-:4294967296:+:72057589742960640:- 72057594037927936:-:4294967296:-:72057589742960640:+ 72057594037927936:+:8589934592:+:72057602627862528:+ 72057594037927936:+:8589934592:-:72057602627862528:- 72057594037927936:-:8589934592:+:72057585447993344:- 72057594037927936:-:8589934592:-:72057585447993344:+ 72057594037927936:+:274877906944:+:72057868915834880:+ 72057594037927936:+:274877906944:-:72057868915834880:- 72057594037927936:-:274877906944:+:72057319160020992:- 72057594037927936:-:274877906944:-:72057319160020992:+ 72057594037927936:+:549755813888:+:72058143793741824:+ 72057594037927936:+:549755813888:-:72058143793741824:- 72057594037927936:-:549755813888:+:72057044282114048:- 72057594037927936:-:549755813888:-:72057044282114048:+ 72057594037927936:+:1099511627776:+:72058693549555712:+ 72057594037927936:+:1099511627776:-:72058693549555712:- 72057594037927936:-:1099511627776:+:72056494526300160:- 72057594037927936:-:1099511627776:-:72056494526300160:+ 72057594037927936:+:2199023255552:+:72059793061183488:+ 72057594037927936:+:2199023255552:-:72059793061183488:- 72057594037927936:-:2199023255552:+:72055395014672384:- 72057594037927936:-:2199023255552:-:72055395014672384:+ 72057594037927936:+:70368744177664:+:72127962782105600:+ 72057594037927936:+:70368744177664:-:72127962782105600:- 72057594037927936:-:70368744177664:+:71987225293750272:- 72057594037927936:-:70368744177664:-:71987225293750272:+ 72057594037927936:+:140737488355328:+:72198331526283264:+ 72057594037927936:+:140737488355328:-:72198331526283264:- 72057594037927936:-:140737488355328:+:71916856549572608:- 72057594037927936:-:140737488355328:-:71916856549572608:+ 72057594037927936:+:281474976710656:+:72339069014638592:+ 72057594037927936:+:281474976710656:-:72339069014638592:- 72057594037927936:-:281474976710656:+:71776119061217280:- 72057594037927936:-:281474976710656:-:71776119061217280:+ 72057594037927936:+:562949953421312:+:72620543991349248:+ 72057594037927936:+:562949953421312:-:72620543991349248:- 72057594037927936:-:562949953421312:+:71494644084506624:- 72057594037927936:-:562949953421312:-:71494644084506624:+ 72057594037927936:+:18014398509481984:+:90071992547409920:+ 72057594037927936:+:18014398509481984:-:90071992547409920:- 72057594037927936:-:18014398509481984:+:54043195528445952:- 72057594037927936:-:18014398509481984:-:54043195528445952:+ 72057594037927936:+:36028797018963968:+:108086391056891904:+ 72057594037927936:+:36028797018963968:-:108086391056891904:- 72057594037927936:-:36028797018963968:+:36028797018963968:- 72057594037927936:-:36028797018963968:-:36028797018963968:+ 72057594037927936:+:72057594037927936:+:0:+ 72057594037927936:+:72057594037927936:-:144115188075855872:- 72057594037927936:-:72057594037927936:+:144115188075855872:- 72057594037927936:-:72057594037927936:-:0:+ 72057594037927936:+:144115188075855872:+:216172782113783808:+ 72057594037927936:+:144115188075855872:-:72057594037927936:- 72057594037927936:-:144115188075855872:+:216172782113783808:- 72057594037927936:-:144115188075855872:-:72057594037927936:+ 144115188075855872:+:0:+:144115188075855872:+ 144115188075855872:-:0:+:144115188075855872:- 144115188075855872:+:1:+:144115188075855873:+ 144115188075855872:+:1:-:144115188075855873:- 144115188075855872:-:1:+:144115188075855871:- 144115188075855872:-:1:-:144115188075855871:+ 144115188075855872:+:2:+:144115188075855874:+ 144115188075855872:+:2:-:144115188075855874:- 144115188075855872:-:2:+:144115188075855870:- 144115188075855872:-:2:-:144115188075855870:+ 144115188075855872:+:3:+:144115188075855875:+ 144115188075855872:+:3:-:144115188075855875:- 144115188075855872:-:3:+:144115188075855869:- 144115188075855872:-:3:-:144115188075855869:+ 144115188075855872:+:4:+:144115188075855876:+ 144115188075855872:+:4:-:144115188075855876:- 144115188075855872:-:4:+:144115188075855868:- 144115188075855872:-:4:-:144115188075855868:+ 144115188075855872:+:64:+:144115188075855936:+ 144115188075855872:+:64:-:144115188075855936:- 144115188075855872:-:64:+:144115188075855808:- 144115188075855872:-:64:-:144115188075855808:+ 144115188075855872:+:128:+:144115188075856000:+ 144115188075855872:+:128:-:144115188075856000:- 144115188075855872:-:128:+:144115188075855744:- 144115188075855872:-:128:-:144115188075855744:+ 144115188075855872:+:256:+:144115188075856128:+ 144115188075855872:+:256:-:144115188075856128:- 144115188075855872:-:256:+:144115188075855616:- 144115188075855872:-:256:-:144115188075855616:+ 144115188075855872:+:512:+:144115188075856384:+ 144115188075855872:+:512:-:144115188075856384:- 144115188075855872:-:512:+:144115188075855360:- 144115188075855872:-:512:-:144115188075855360:+ 144115188075855872:+:16384:+:144115188075872256:+ 144115188075855872:+:16384:-:144115188075872256:- 144115188075855872:-:16384:+:144115188075839488:- 144115188075855872:-:16384:-:144115188075839488:+ 144115188075855872:+:32768:+:144115188075888640:+ 144115188075855872:+:32768:-:144115188075888640:- 144115188075855872:-:32768:+:144115188075823104:- 144115188075855872:-:32768:-:144115188075823104:+ 144115188075855872:+:65536:+:144115188075921408:+ 144115188075855872:+:65536:-:144115188075921408:- 144115188075855872:-:65536:+:144115188075790336:- 144115188075855872:-:65536:-:144115188075790336:+ 144115188075855872:+:131072:+:144115188075986944:+ 144115188075855872:+:131072:-:144115188075986944:- 144115188075855872:-:131072:+:144115188075724800:- 144115188075855872:-:131072:-:144115188075724800:+ 144115188075855872:+:4194304:+:144115188080050176:+ 144115188075855872:+:4194304:-:144115188080050176:- 144115188075855872:-:4194304:+:144115188071661568:- 144115188075855872:-:4194304:-:144115188071661568:+ 144115188075855872:+:8388608:+:144115188084244480:+ 144115188075855872:+:8388608:-:144115188084244480:- 144115188075855872:-:8388608:+:144115188067467264:- 144115188075855872:-:8388608:-:144115188067467264:+ 144115188075855872:+:16777216:+:144115188092633088:+ 144115188075855872:+:16777216:-:144115188092633088:- 144115188075855872:-:16777216:+:144115188059078656:- 144115188075855872:-:16777216:-:144115188059078656:+ 144115188075855872:+:33554432:+:144115188109410304:+ 144115188075855872:+:33554432:-:144115188109410304:- 144115188075855872:-:33554432:+:144115188042301440:- 144115188075855872:-:33554432:-:144115188042301440:+ 144115188075855872:+:1073741824:+:144115189149597696:+ 144115188075855872:+:1073741824:-:144115189149597696:- 144115188075855872:-:1073741824:+:144115187002114048:- 144115188075855872:-:1073741824:-:144115187002114048:+ 144115188075855872:+:2147483648:+:144115190223339520:+ 144115188075855872:+:2147483648:-:144115190223339520:- 144115188075855872:-:2147483648:+:144115185928372224:- 144115188075855872:-:2147483648:-:144115185928372224:+ 144115188075855872:+:4294967296:+:144115192370823168:+ 144115188075855872:+:4294967296:-:144115192370823168:- 144115188075855872:-:4294967296:+:144115183780888576:- 144115188075855872:-:4294967296:-:144115183780888576:+ 144115188075855872:+:8589934592:+:144115196665790464:+ 144115188075855872:+:8589934592:-:144115196665790464:- 144115188075855872:-:8589934592:+:144115179485921280:- 144115188075855872:-:8589934592:-:144115179485921280:+ 144115188075855872:+:274877906944:+:144115462953762816:+ 144115188075855872:+:274877906944:-:144115462953762816:- 144115188075855872:-:274877906944:+:144114913197948928:- 144115188075855872:-:274877906944:-:144114913197948928:+ 144115188075855872:+:549755813888:+:144115737831669760:+ 144115188075855872:+:549755813888:-:144115737831669760:- 144115188075855872:-:549755813888:+:144114638320041984:- 144115188075855872:-:549755813888:-:144114638320041984:+ 144115188075855872:+:1099511627776:+:144116287587483648:+ 144115188075855872:+:1099511627776:-:144116287587483648:- 144115188075855872:-:1099511627776:+:144114088564228096:- 144115188075855872:-:1099511627776:-:144114088564228096:+ 144115188075855872:+:2199023255552:+:144117387099111424:+ 144115188075855872:+:2199023255552:-:144117387099111424:- 144115188075855872:-:2199023255552:+:144112989052600320:- 144115188075855872:-:2199023255552:-:144112989052600320:+ 144115188075855872:+:70368744177664:+:144185556820033536:+ 144115188075855872:+:70368744177664:-:144185556820033536:- 144115188075855872:-:70368744177664:+:144044819331678208:- 144115188075855872:-:70368744177664:-:144044819331678208:+ 144115188075855872:+:140737488355328:+:144255925564211200:+ 144115188075855872:+:140737488355328:-:144255925564211200:- 144115188075855872:-:140737488355328:+:143974450587500544:- 144115188075855872:-:140737488355328:-:143974450587500544:+ 144115188075855872:+:281474976710656:+:144396663052566528:+ 144115188075855872:+:281474976710656:-:144396663052566528:- 144115188075855872:-:281474976710656:+:143833713099145216:- 144115188075855872:-:281474976710656:-:143833713099145216:+ 144115188075855872:+:562949953421312:+:144678138029277184:+ 144115188075855872:+:562949953421312:-:144678138029277184:- 144115188075855872:-:562949953421312:+:143552238122434560:- 144115188075855872:-:562949953421312:-:143552238122434560:+ 144115188075855872:+:18014398509481984:+:162129586585337856:+ 144115188075855872:+:18014398509481984:-:162129586585337856:- 144115188075855872:-:18014398509481984:+:126100789566373888:- 144115188075855872:-:18014398509481984:-:126100789566373888:+ 144115188075855872:+:36028797018963968:+:180143985094819840:+ 144115188075855872:+:36028797018963968:-:180143985094819840:- 144115188075855872:-:36028797018963968:+:108086391056891904:- 144115188075855872:-:36028797018963968:-:108086391056891904:+ 144115188075855872:+:72057594037927936:+:216172782113783808:+ 144115188075855872:+:72057594037927936:-:216172782113783808:- 144115188075855872:-:72057594037927936:+:72057594037927936:- 144115188075855872:-:72057594037927936:-:72057594037927936:+ 144115188075855872:+:144115188075855872:+:0:+ 144115188075855872:+:144115188075855872:-:288230376151711744:- 144115188075855872:-:144115188075855872:+:288230376151711744:- 144115188075855872:-:144115188075855872:-:0:+ # Random values 16:+:50:+:34:+ 16:+:50:-:34:- 16:-:50:+:62:- 16:-:50:-:62:+ 45:+:213:+:248:+ 45:+:213:-:250:- 45:-:213:+:250:- 45:-:213:-:248:+ 44:+:8733:+:8753:+ 44:+:8733:-:8753:- 44:-:8733:+:8759:- 44:-:8733:-:8759:+ 59:+:78148:+:78207:+ 59:+:78148:-:78201:- 59:-:78148:+:78207:- 59:-:78148:-:78201:+ 48:+:822672:+:822688:+ 48:+:822672:-:822720:- 48:-:822672:+:822720:- 48:-:822672:-:822688:+ 31:+:4637207:+:4637192:+ 31:+:4637207:-:4637194:- 31:-:4637207:+:4637194:- 31:-:4637207:-:4637192:+ 52:+:79246843:+:79246799:+ 52:+:79246843:-:79246799:- 52:-:79246843:+:79246793:- 52:-:79246843:-:79246793:+ 74:+:799410339:+:799410409:+ 74:+:799410339:-:799410409:- 74:-:799410339:+:799410411:- 74:-:799410339:-:799410411:+ 74:+:7195308869:+:7195308815:+ 74:+:7195308869:-:7195308815:- 74:-:7195308869:+:7195308813:- 74:-:7195308869:-:7195308813:+ 87:+:55580679017:+:55580678974:+ 87:+:55580679017:-:55580678976:- 87:-:55580679017:+:55580678976:- 87:-:55580679017:-:55580678974:+ 18:+:944160124014:+:944160124028:+ 18:+:944160124014:-:944160124032:- 18:-:944160124014:+:944160124032:- 18:-:944160124014:-:944160124028:+ 13:+:5356482595484:+:5356482595473:+ 13:+:5356482595484:-:5356482595479:- 13:-:5356482595484:+:5356482595473:- 13:-:5356482595484:-:5356482595479:+ 95:+:44148577918732:+:44148577918803:+ 95:+:44148577918732:-:44148577918805:- 95:-:44148577918732:+:44148577918803:- 95:-:44148577918732:-:44148577918805:+ 40:+:858529687169535:+:858529687169495:+ 40:+:858529687169535:-:858529687169495:- 40:-:858529687169535:+:858529687169497:- 40:-:858529687169535:-:858529687169497:+ 50:+:6493013754114556:+:6493013754114510:+ 50:+:6493013754114556:-:6493013754114506:- 50:-:6493013754114556:+:6493013754114510:- 50:-:6493013754114556:-:6493013754114506:+ 38:+:97680329055292997:+:97680329055293027:+ 38:+:97680329055292997:-:97680329055293027:- 38:-:97680329055292997:+:97680329055293025:- 38:-:97680329055292997:-:97680329055293025:+ 61:+:533204970634442507:+:533204970634442550:+ 61:+:533204970634442507:-:533204970634442552:- 61:-:533204970634442507:+:533204970634442552:- 61:-:533204970634442507:-:533204970634442550:+ 99:+:9533000874494015057:+:9533000874494015026:+ 99:+:9533000874494015057:-:9533000874494015028:- 99:-:9533000874494015057:+:9533000874494015028:- 99:-:9533000874494015057:-:9533000874494015026:+ 80:+:18668859131640712721:+:18668859131640712769:+ 80:+:18668859131640712721:-:18668859131640712769:- 80:-:18668859131640712721:+:18668859131640712799:- 80:-:18668859131640712721:-:18668859131640712799:+ 600:+:99:+:571:+ 600:+:99:-:571:- 600:-:99:+:565:- 600:-:99:-:565:+ 402:+:918:+:516:+ 402:+:918:-:520:- 402:-:918:+:520:- 402:-:918:-:516:+ 125:+:3954:+:3855:+ 125:+:3954:-:3853:- 125:-:3954:+:3855:- 125:-:3954:-:3853:+ 837:+:59799:+:60114:+ 837:+:59799:-:60116:- 837:-:59799:+:60116:- 837:-:59799:-:60114:+ 565:+:743784:+:744285:+ 565:+:743784:-:744275:- 565:-:743784:+:744285:- 565:-:743784:-:744275:+ 592:+:5630501:+:5630069:+ 592:+:5630501:-:5630069:- 592:-:5630501:+:5630059:- 592:-:5630501:-:5630059:+ 736:+:96125518:+:96125102:+ 736:+:96125518:-:96125102:- 736:-:96125518:+:96125074:- 736:-:96125518:-:96125074:+ 199:+:241591520:+:241591335:+ 199:+:241591520:-:241591321:- 199:-:241591520:+:241591335:- 199:-:241591520:-:241591321:+ 647:+:5862181643:+:5862181260:+ 647:+:5862181643:-:5862181262:- 647:-:5862181643:+:5862181262:- 647:-:5862181643:-:5862181260:+ 293:+:80226712071:+:80226712354:+ 293:+:80226712071:-:80226712356:- 293:-:80226712071:+:80226712356:- 293:-:80226712071:-:80226712354:+ 916:+:469828164088:+:469828164204:+ 916:+:469828164088:-:469828164196:- 916:-:469828164088:+:469828164204:- 916:-:469828164088:-:469828164196:+ 284:+:2605142246768:+:2605142246508:+ 284:+:2605142246768:-:2605142246516:- 284:-:2605142246768:+:2605142246508:- 284:-:2605142246768:-:2605142246516:+ 184:+:34424352670387:+:34424352670219:+ 184:+:34424352670387:-:34424352670219:- 184:-:34424352670387:+:34424352670213:- 184:-:34424352670387:-:34424352670213:+ 945:+:481207606896184:+:481207606896009:+ 945:+:481207606896184:-:481207606896007:- 945:-:481207606896184:+:481207606896009:- 945:-:481207606896184:-:481207606896007:+ 667:+:7569351753523602:+:7569351753523977:+ 667:+:7569351753523602:-:7569351753523979:- 667:-:7569351753523602:+:7569351753523977:- 667:-:7569351753523602:-:7569351753523979:+ 437:+:56628903025067369:+:56628903025067228:+ 437:+:56628903025067369:-:56628903025067230:- 437:-:56628903025067369:+:56628903025067230:- 437:-:56628903025067369:-:56628903025067228:+ 537:+:462940406999056501:+:462940406999057004:+ 537:+:462940406999056501:-:462940406999057006:- 537:-:462940406999056501:+:462940406999057006:- 537:-:462940406999056501:-:462940406999057004:+ 754:+:4425575451836522146:+:4425575451836521552:+ 754:+:4425575451836522146:-:4425575451836521556:- 754:-:4425575451836522146:+:4425575451836521556:- 754:-:4425575451836522146:-:4425575451836521552:+ 613:+:28460937440034491142:+:28460937440034490723:+ 613:+:28460937440034491142:-:28460937440034490721:- 613:-:28460937440034491142:+:28460937440034490723:- 613:-:28460937440034491142:-:28460937440034490721:+ 3132:+:99:+:3167:+ 3132:+:99:-:3167:- 3132:-:99:+:3161:- 3132:-:99:-:3161:+ 5963:+:525:+:5446:+ 5963:+:525:-:5448:- 5963:-:525:+:5448:- 5963:-:525:-:5446:+ 8486:+:6198:+:14608:+ 8486:+:6198:-:14612:- 8486:-:6198:+:14612:- 8486:-:6198:-:14608:+ 7913:+:20949:+:20284:+ 7913:+:20949:-:20286:- 7913:-:20949:+:20286:- 7913:-:20949:-:20284:+ 5119:+:893846:+:897129:+ 5119:+:893846:-:897131:- 5119:-:893846:+:897129:- 5119:-:893846:-:897131:+ 1944:+:3883084:+:3885012:+ 1944:+:3883084:-:3885012:- 1944:-:3883084:+:3885020:- 1944:-:3883084:-:3885020:+ 1773:+:83438933:+:83438520:+ 1773:+:83438933:-:83438522:- 1773:-:83438933:+:83438522:- 1773:-:83438933:-:83438520:+ 5729:+:543157317:+:543160868:+ 5729:+:543157317:-:543160870:- 5729:-:543157317:+:543160870:- 5729:-:543157317:-:543160868:+ 7146:+:2943890000:+:2943887802:+ 7146:+:2943890000:-:2943887782:- 7146:-:2943890000:+:2943887802:- 7146:-:2943890000:-:2943887782:+ 9140:+:64518215156:+:64518223424:+ 9140:+:64518215156:-:64518223432:- 9140:-:64518215156:+:64518223432:- 9140:-:64518215156:-:64518223424:+ 2182:+:691020593590:+:691020591408:+ 2182:+:691020593590:-:691020591412:- 2182:-:691020593590:+:691020591412:- 2182:-:691020593590:-:691020591408:+ 2042:+:5154803288144:+:5154803290026:+ 2042:+:5154803288144:-:5154803290038:- 2042:-:5154803288144:+:5154803290026:- 2042:-:5154803288144:-:5154803290038:+ 5222:+:40001032290771:+:40001032295861:+ 5222:+:40001032290771:-:40001032295861:- 5222:-:40001032290771:+:40001032295863:- 5222:-:40001032290771:-:40001032295863:+ 9187:+:436961676431193:+:436961676438714:+ 9187:+:436961676431193:-:436961676438716:- 9187:-:436961676431193:+:436961676438716:- 9187:-:436961676431193:-:436961676438714:+ 8631:+:2679909044249936:+:2679909044241639:+ 8631:+:2679909044249936:-:2679909044241657:- 8631:-:2679909044249936:+:2679909044241639:- 8631:-:2679909044249936:-:2679909044241657:+ 7163:+:19578536111848451:+:19578536111843320:+ 7163:+:19578536111848451:-:19578536111843322:- 7163:-:19578536111848451:+:19578536111843322:- 7163:-:19578536111848451:-:19578536111843320:+ 2406:+:355573006002105572:+:355573006002103682:+ 2406:+:355573006002105572:-:355573006002103686:- 2406:-:355573006002105572:+:355573006002103682:- 2406:-:355573006002105572:-:355573006002103686:+ 3244:+:8242023765324438191:+:8242023765324436995:+ 3244:+:8242023765324438191:-:8242023765324436995:- 3244:-:8242023765324438191:+:8242023765324436997:- 3244:-:8242023765324438191:-:8242023765324436997:+ 2336:+:12725143692311623988:+:12725143692311621652:+ 2336:+:12725143692311623988:-:12725143692311621652:- 2336:-:12725143692311623988:+:12725143692311621676:- 2336:-:12725143692311623988:-:12725143692311621676:+ 15263:+:30:+:15233:+ 15263:+:30:-:15235:- 15263:-:30:+:15233:- 15263:-:30:-:15235:+ 71678:+:143:+:71537:+ 71678:+:143:-:71537:- 71678:-:143:+:71539:- 71678:-:143:-:71539:+ 58752:+:2561:+:61313:+ 58752:+:2561:-:61313:- 58752:-:2561:+:61311:- 58752:-:2561:-:61311:+ 40724:+:93835:+:127391:+ 40724:+:93835:-:127391:- 40724:-:93835:+:127385:- 40724:-:93835:-:127385:+ 57464:+:935054:+:959734:+ 57464:+:935054:-:959734:- 57464:-:935054:+:959738:- 57464:-:935054:-:959738:+ 38241:+:4891703:+:4862294:+ 38241:+:4891703:-:4862296:- 38241:-:4891703:+:4862296:- 38241:-:4891703:-:4862294:+ 41657:+:63950631:+:63925662:+ 41657:+:63950631:-:63925664:- 41657:-:63950631:+:63925664:- 41657:-:63950631:-:63925662:+ 92924:+:442739204:+:442679544:+ 92924:+:442739204:-:442679552:- 92924:-:442739204:+:442679552:- 92924:-:442739204:-:442679544:+ 17561:+:9060340957:+:9060323396:+ 17561:+:9060340957:-:9060323398:- 17561:-:9060340957:+:9060323398:- 17561:-:9060340957:-:9060323396:+ 80351:+:40428861430:+:40428785193:+ 80351:+:40428861430:-:40428785195:- 80351:-:40428861430:+:40428785193:- 80351:-:40428861430:-:40428785195:+ 58675:+:758998255290:+:758998279049:+ 58675:+:758998255290:-:758998279051:- 58675:-:758998255290:+:758998279049:- 58675:-:758998255290:-:758998279051:+ 39965:+:3984939924353:+:3984939886492:+ 39965:+:3984939924353:-:3984939886494:- 39965:-:3984939924353:+:3984939886494:- 39965:-:3984939924353:-:3984939886492:+ 71093:+:52583270378953:+:52583270447228:+ 71093:+:52583270378953:-:52583270447230:- 71093:-:52583270378953:+:52583270447230:- 71093:-:52583270378953:-:52583270447228:+ 75406:+:684124042745518:+:684124042817568:+ 75406:+:684124042745518:-:684124042817572:- 75406:-:684124042745518:+:684124042817572:- 75406:-:684124042745518:-:684124042817568:+ 30809:+:7771831504258656:+:7771831504256569:+ 30809:+:7771831504258656:-:7771831504256519:- 30809:-:7771831504258656:+:7771831504256569:- 30809:-:7771831504258656:-:7771831504256519:+ 20530:+:78411849728418609:+:78411849728406275:+ 20530:+:78411849728418609:-:78411849728406275:- 20530:-:78411849728418609:+:78411849728406273:- 20530:-:78411849728418609:-:78411849728406273:+ 16938:+:650378023541304851:+:650378023541287993:+ 16938:+:650378023541304851:-:650378023541287993:- 16938:-:650378023541304851:+:650378023541287995:- 16938:-:650378023541304851:-:650378023541287995:+ 38837:+:2347698176440230954:+:2347698176440267679:+ 38837:+:2347698176440230954:-:2347698176440267677:- 38837:-:2347698176440230954:+:2347698176440267679:- 38837:-:2347698176440230954:-:2347698176440267677:+ 79273:+:47052649718833721736:+:47052649718833644577:+ 79273:+:47052649718833721736:-:47052649718833644591:- 79273:-:47052649718833721736:+:47052649718833644577:- 79273:-:47052649718833721736:-:47052649718833644591:+ 859945:+:84:+:860029:+ 859945:+:84:-:860027:- 859945:-:84:+:860029:- 859945:-:84:-:860027:+ 273455:+:980:+:274427:+ 273455:+:980:-:274429:- 273455:-:980:+:274427:- 273455:-:980:-:274429:+ 311852:+:6046:+:316850:+ 311852:+:6046:-:316850:- 311852:-:6046:+:316854:- 311852:-:6046:-:316854:+ 668055:+:46194:+:689637:+ 668055:+:46194:-:689639:- 668055:-:46194:+:689637:- 668055:-:46194:-:689639:+ 749464:+:175270:+:639806:+ 749464:+:175270:-:639806:- 749464:-:175270:+:639794:- 749464:-:175270:-:639794:+ 271663:+:9095340:+:9366915:+ 271663:+:9095340:-:9366917:- 271663:-:9095340:+:9366915:- 271663:-:9095340:-:9366917:+ 235022:+:15054416:+:15081566:+ 235022:+:15054416:-:15081538:- 235022:-:15054416:+:15081566:- 235022:-:15054416:-:15081538:+ 932696:+:543267448:+:544186656:+ 932696:+:543267448:-:544186672:- 932696:-:543267448:+:544186672:- 932696:-:543267448:-:544186656:+ 815965:+:4235792112:+:4235558317:+ 815965:+:4235792112:-:4235558323:- 815965:-:4235792112:+:4235558317:- 815965:-:4235792112:-:4235558323:+ 577054:+:44967236835:+:44967746301:+ 577054:+:44967236835:-:44967746301:- 577054:-:44967236835:+:44967746303:- 577054:-:44967236835:-:44967746303:+ 996542:+:667466872975:+:667467844657:+ 996542:+:667466872975:-:667467844657:- 996542:-:667466872975:+:667467844659:- 996542:-:667466872975:-:667467844659:+ 542865:+:3239856905154:+:3239857443667:+ 542865:+:3239856905154:-:3239857443665:- 542865:-:3239856905154:+:3239857443667:- 542865:-:3239856905154:-:3239857443665:+ 267128:+:14348606534586:+:14348606791874:+ 267128:+:14348606534586:-:14348606791874:- 267128:-:14348606534586:+:14348606791886:- 267128:-:14348606534586:-:14348606791886:+ 575997:+:302159467393288:+:302159466920181:+ 575997:+:302159467393288:-:302159466920187:- 575997:-:302159467393288:+:302159466920181:- 575997:-:302159467393288:-:302159466920187:+ 649493:+:1256468365839331:+:1256468365435638:+ 649493:+:1256468365839331:-:1256468365435640:- 649493:-:1256468365839331:+:1256468365435640:- 649493:-:1256468365839331:-:1256468365435638:+ 387494:+:98140123451012408:+:98140123451317406:+ 387494:+:98140123451012408:-:98140123451317394:- 387494:-:98140123451012408:+:98140123451317406:- 387494:-:98140123451012408:-:98140123451317394:+ 258290:+:672834818121044494:+:672834818120966908:+ 258290:+:672834818121044494:-:672834818120966912:- 258290:-:672834818121044494:+:672834818120966912:- 258290:-:672834818121044494:-:672834818120966908:+ 169562:+:5565528037116259665:+:5565528037116099339:+ 169562:+:5565528037116259665:-:5565528037116099339:- 169562:-:5565528037116259665:+:5565528037116099337:- 169562:-:5565528037116259665:-:5565528037116099337:+ 629866:+:19146220544643030760:+:19146220544642400898:+ 629866:+:19146220544643030760:-:19146220544642400910:- 629866:-:19146220544643030760:+:19146220544642400898:- 629866:-:19146220544643030760:-:19146220544642400910:+ 3427767:+:86:+:3427809:+ 3427767:+:86:-:3427811:- 3427767:-:86:+:3427809:- 3427767:-:86:-:3427811:+ 2685294:+:592:+:2685758:+ 2685294:+:592:-:2685730:- 2685294:-:592:+:2685758:- 2685294:-:592:-:2685730:+ 8502248:+:4713:+:8497537:+ 8502248:+:4713:-:8497537:- 8502248:-:4713:+:8497551:- 8502248:-:4713:-:8497551:+ 1599843:+:54526:+:1621405:+ 1599843:+:54526:-:1621407:- 1599843:-:54526:+:1621405:- 1599843:-:54526:-:1621407:+ 5998966:+:188851:+:5859525:+ 5998966:+:188851:-:5859525:- 5998966:-:188851:+:5859527:- 5998966:-:188851:-:5859527:+ 6660192:+:8503030:+:14950038:+ 6660192:+:8503030:-:14950038:- 6660192:-:8503030:+:14950058:- 6660192:-:8503030:-:14950058:+ 1160783:+:28830918:+:27679369:+ 1160783:+:28830918:-:27679371:- 1160783:-:28830918:+:27679369:- 1160783:-:28830918:-:27679371:+ 4401977:+:302601283:+:306872186:+ 4401977:+:302601283:-:306872188:- 4401977:-:302601283:+:306872188:- 4401977:-:302601283:-:306872186:+ 6605531:+:8381932173:+:8388536406:+ 6605531:+:8381932173:-:8388536408:- 6605531:-:8381932173:+:8388536408:- 6605531:-:8381932173:-:8388536406:+ 4237815:+:71696961271:+:71692740352:+ 4237815:+:71696961271:-:71692740354:- 4237815:-:71696961271:+:71692740354:- 4237815:-:71696961271:-:71692740352:+ 2266485:+:189705380601:+:189707384716:+ 2266485:+:189705380601:-:189707384718:- 2266485:-:189705380601:+:189707384718:- 2266485:-:189705380601:-:189707384716:+ 7319957:+:2891149282023:+:2891142314866:+ 7319957:+:2891149282023:-:2891142314868:- 7319957:-:2891149282023:+:2891142314868:- 7319957:-:2891149282023:-:2891142314866:+ 2523338:+:39600349254229:+:39600351777439:+ 2523338:+:39600349254229:-:39600351777439:- 2523338:-:39600349254229:+:39600351777437:- 2523338:-:39600349254229:-:39600351777437:+ 2260678:+:631101558755319:+:631101556551985:+ 2260678:+:631101558755319:-:631101556551985:- 2260678:-:631101558755319:+:631101556551987:- 2260678:-:631101558755319:-:631101556551987:+ 7846996:+:7508945949611174:+:7508945941915890:+ 7846996:+:7508945949611174:-:7508945941915890:- 7846996:-:7508945949611174:+:7508945941915894:- 7846996:-:7508945949611174:-:7508945941915894:+ 8458256:+:28240321649997082:+:28240321658447114:+ 8458256:+:28240321649997082:-:28240321658447114:- 8458256:-:28240321649997082:+:28240321658447126:- 8458256:-:28240321649997082:-:28240321658447126:+ 7527471:+:935184266120870482:+:935184266123929213:+ 7527471:+:935184266120870482:-:935184266123929215:- 7527471:-:935184266120870482:+:935184266123929213:- 7527471:-:935184266120870482:-:935184266123929215:+ 9895046:+:8475372858588261838:+:8475372858597773640:+ 9895046:+:8475372858588261838:-:8475372858597773644:- 9895046:-:8475372858588261838:+:8475372858597773644:- 9895046:-:8475372858588261838:-:8475372858597773640:+ 5165539:+:77501225909522158618:+:77501225909517059577:+ 5165539:+:77501225909522158618:-:77501225909517059579:- 5165539:-:77501225909522158618:+:77501225909517059577:- 5165539:-:77501225909522158618:-:77501225909517059579:+ 48547934:+:57:+:48547943:+ 48547934:+:57:-:48547943:- 48547934:-:57:+:48547941:- 48547934:-:57:-:48547941:+ 77692076:+:377:+:77692373:+ 77692076:+:377:-:77692373:- 77692076:-:377:+:77692371:- 77692076:-:377:-:77692371:+ 52353031:+:6856:+:52347599:+ 52353031:+:6856:-:52347585:- 52353031:-:6856:+:52347599:- 52353031:-:6856:-:52347585:+ 33258499:+:56559:+:33267948:+ 33258499:+:56559:-:33267950:- 33258499:-:56559:+:33267950:- 33258499:-:56559:-:33267948:+ 29174805:+:640366:+:28633467:+ 29174805:+:640366:-:28633465:- 29174805:-:640366:+:28633467:- 29174805:-:640366:-:28633465:+ 97667898:+:5277734:+:92455708:+ 97667898:+:5277734:-:92455712:- 97667898:-:5277734:+:92455712:- 97667898:-:5277734:-:92455708:+ 23175149:+:27513992:+:12733285:+ 23175149:+:27513992:-:12733291:- 23175149:-:27513992:+:12733285:- 23175149:-:27513992:-:12733291:+ 33689466:+:494960690:+:528650056:+ 33689466:+:494960690:-:528650060:- 33689466:-:494960690:+:528650060:- 33689466:-:494960690:-:528650056:+ 31275232:+:7106452912:+:7085155664:+ 31275232:+:7106452912:-:7085155664:- 31275232:-:7106452912:+:7085155696:- 31275232:-:7106452912:-:7085155696:+ 33956928:+:30773963180:+:30740270572:+ 33956928:+:30773963180:-:30740270572:- 33956928:-:30773963180:+:30740270484:- 33956928:-:30773963180:-:30740270484:+ 45312825:+:835889080255:+:835847998598:+ 45312825:+:835889080255:-:835847998600:- 45312825:-:835889080255:+:835847998600:- 45312825:-:835889080255:-:835847998598:+ 90815612:+:3940378509049:+:3940459856517:+ 90815612:+:3940378509049:-:3940459856517:- 90815612:-:3940378509049:+:3940459856515:- 90815612:-:3940378509049:-:3940459856515:+ 53791026:+:48072541021280:+:48072521411922:+ 53791026:+:48072541021280:-:48072521411950:- 53791026:-:48072541021280:+:48072521411922:- 53791026:-:48072541021280:-:48072521411950:+ 82688334:+:436401920368350:+:436401856112528:+ 82688334:+:436401920368350:-:436401856112532:- 82688334:-:436401920368350:+:436401856112532:- 82688334:-:436401920368350:-:436401856112528:+ 48908989:+:9423438731489126:+:9423438708827611:+ 48908989:+:9423438731489126:-:9423438708827609:- 48908989:-:9423438731489126:+:9423438708827611:- 48908989:-:9423438731489126:-:9423438708827609:+ 13862799:+:40574182583904276:+:40574182570110875:+ 13862799:+:40574182583904276:-:40574182570110877:- 13862799:-:40574182583904276:+:40574182570110875:- 13862799:-:40574182583904276:-:40574182570110877:+ 70269970:+:557798443186982870:+:557798443118834628:+ 70269970:+:557798443186982870:-:557798443118834632:- 70269970:-:557798443186982870:+:557798443118834632:- 70269970:-:557798443186982870:-:557798443118834628:+ 12775249:+:5387168131945468319:+:5387168131932815054:+ 12775249:+:5387168131945468319:-:5387168131932815056:- 12775249:-:5387168131945468319:+:5387168131932815056:- 12775249:-:5387168131945468319:-:5387168131932815054:+ 41055741:+:42159059185655658907:+:42159059185692494950:+ 41055741:+:42159059185655658907:-:42159059185692494952:- 41055741:-:42159059185655658907:+:42159059185692494952:- 41055741:-:42159059185655658907:-:42159059185692494950:+ 850143802:+:15:+:850143797:+ 850143802:+:15:-:850143797:- 850143802:-:15:+:850143799:- 850143802:-:15:-:850143799:+ 801024809:+:187:+:801024914:+ 801024809:+:187:-:801024916:- 801024809:-:187:+:801024916:- 801024809:-:187:-:801024914:+ 139909293:+:1453:+:139910400:+ 139909293:+:1453:-:139910402:- 139909293:-:1453:+:139910402:- 139909293:-:1453:-:139910400:+ 167496987:+:89043:+:167417544:+ 167496987:+:89043:-:167417546:- 167496987:-:89043:+:167417546:- 167496987:-:89043:-:167417544:+ 681795677:+:160860:+:681645057:+ 681795677:+:160860:-:681645063:- 681795677:-:160860:+:681645057:- 681795677:-:160860:-:681645063:+ 692016580:+:6224735:+:694267547:+ 692016580:+:6224735:-:694267547:- 692016580:-:6224735:+:694267549:- 692016580:-:6224735:-:694267549:+ 437576650:+:61545299:+:432011417:+ 437576650:+:61545299:-:432011417:- 437576650:-:61545299:+:432011419:- 437576650:-:61545299:-:432011419:+ 974460065:+:306026890:+:673746219:+ 974460065:+:306026890:-:673746217:- 974460065:-:306026890:+:673746219:- 974460065:-:306026890:-:673746217:+ 773683721:+:8392047825:+:7955089112:+ 773683721:+:8392047825:-:7955089114:- 773683721:-:8392047825:+:7955089114:- 773683721:-:8392047825:-:7955089112:+ 778107390:+:19204821638:+:18636516216:+ 778107390:+:19204821638:-:18636516220:- 778107390:-:19204821638:+:18636516220:- 778107390:-:19204821638:-:18636516216:+ 690368005:+:321174228263:+:321826841378:+ 690368005:+:321174228263:-:321826841380:- 690368005:-:321174228263:+:321826841380:- 690368005:-:321174228263:-:321826841378:+ 300576109:+:2339875774441:+:2340129911428:+ 300576109:+:2339875774441:-:2340129911430:- 300576109:-:2339875774441:+:2340129911430:- 300576109:-:2339875774441:-:2340129911428:+ 635694160:+:29399698607191:+:29399109099527:+ 635694160:+:29399698607191:-:29399109099527:- 635694160:-:29399698607191:+:29399109099545:- 635694160:-:29399698607191:-:29399109099545:+ 897560277:+:354128538129831:+:354127784180594:+ 897560277:+:354128538129831:-:354127784180596:- 897560277:-:354128538129831:+:354127784180596:- 897560277:-:354128538129831:-:354127784180594:+ 103125182:+:3858617646784316:+:3858617544249218:+ 103125182:+:3858617646784316:-:3858617544249222:- 103125182:-:3858617646784316:+:3858617544249218:- 103125182:-:3858617646784316:-:3858617544249222:+ 544507242:+:11843866892215789:+:11843866350329991:+ 544507242:+:11843866892215789:-:11843866350329991:- 544507242:-:11843866892215789:+:11843866350329989:- 544507242:-:11843866892215789:-:11843866350329989:+ 422106609:+:400693451328562270:+:400693451482165679:+ 422106609:+:400693451328562270:-:400693451482165677:- 422106609:-:400693451328562270:+:400693451482165679:- 422106609:-:400693451328562270:-:400693451482165677:+ 100017564:+:1389533140115166646:+:1389533140074410026:+ 100017564:+:1389533140115166646:-:1389533140074410026:- 100017564:-:1389533140115166646:+:1389533140074410030:- 100017564:-:1389533140115166646:-:1389533140074410030:+ 420678913:+:60312196578463030281:+:60312196578613039368:+ 420678913:+:60312196578463030281:-:60312196578613039370:- 420678913:-:60312196578463030281:+:60312196578613039370:- 420678913:-:60312196578463030281:-:60312196578613039368:+ 3932932024:+:35:+:3932931995:+ 3932932024:+:35:-:3932931995:- 3932932024:-:35:+:3932931989:- 3932932024:-:35:-:3932931989:+ 4081756646:+:696:+:4081757022:+ 4081756646:+:696:-:4081757010:- 4081756646:-:696:+:4081757022:- 4081756646:-:696:-:4081757010:+ 6249739925:+:7959:+:6249736578:+ 6249739925:+:7959:-:6249736580:- 6249739925:-:7959:+:6249736580:- 6249739925:-:7959:-:6249736578:+ 5626273606:+:58256:+:5626330326:+ 5626273606:+:58256:-:5626330314:- 5626273606:-:58256:+:5626330326:- 5626273606:-:58256:-:5626330314:+ 6288612045:+:608301:+:6289216224:+ 6288612045:+:608301:-:6289216226:- 6288612045:-:608301:+:6289216226:- 6288612045:-:608301:-:6289216224:+ 4298040381:+:3602965:+:4296547880:+ 4298040381:+:3602965:-:4296547882:- 4298040381:-:3602965:+:4296547882:- 4298040381:-:3602965:-:4296547880:+ 3144764677:+:55892335:+:3089470570:+ 3144764677:+:55892335:-:3089470572:- 3144764677:-:55892335:+:3089470572:- 3144764677:-:55892335:-:3089470570:+ 1333279741:+:409845720:+:1461027877:+ 1333279741:+:409845720:-:1461027883:- 1333279741:-:409845720:+:1461027877:- 1333279741:-:409845720:-:1461027883:+ 3910988972:+:4295280272:+:8205644348:+ 3910988972:+:4295280272:-:8205644324:- 3910988972:-:4295280272:+:8205644348:- 3910988972:-:4295280272:-:8205644324:+ 3905714172:+:66086672118:+:66771149066:+ 3905714172:+:66086672118:-:66771149066:- 3905714172:-:66086672118:+:66771149070:- 3905714172:-:66086672118:-:66771149070:+ 9064370215:+:822941259621:+:814019528514:+ 9064370215:+:822941259621:-:814019528516:- 9064370215:-:822941259621:+:814019528516:- 9064370215:-:822941259621:-:814019528514:+ 5857996920:+:6814442291134:+:6819355332550:+ 5857996920:+:6814442291134:-:6819355332550:- 5857996920:-:6814442291134:+:6819355332554:- 5857996920:-:6814442291134:-:6819355332554:+ 9415426900:+:80282248290634:+:80290585256478:+ 9415426900:+:80282248290634:-:80290585256478:- 9415426900:-:80282248290634:+:80290585256474:- 9415426900:-:80282248290634:-:80290585256474:+ 8133026244:+:133773825403051:+:133776446572911:+ 8133026244:+:133773825403051:-:133776446572911:- 8133026244:-:133773825403051:+:133776446572905:- 8133026244:-:133773825403051:-:133776446572905:+ 6795649360:+:5359286406761967:+:5359292664982719:+ 6795649360:+:5359286406761967:-:5359292664982719:- 6795649360:-:5359286406761967:+:5359292664982689:- 6795649360:-:5359286406761967:-:5359292664982689:+ 9062948851:+:35549457778011810:+:35549449658921297:+ 9062948851:+:35549457778011810:-:35549449658921299:- 9062948851:-:35549457778011810:+:35549449658921297:- 9062948851:-:35549457778011810:-:35549449658921299:+ 3716898632:+:483409700918688840:+:483409697655169792:+ 3716898632:+:483409700918688840:-:483409697655169808:- 3716898632:-:483409700918688840:+:483409697655169808:- 3716898632:-:483409700918688840:-:483409697655169792:+ 4225787255:+:1665175131078393357:+:1665175130451319674:+ 4225787255:+:1665175131078393357:-:1665175130451319676:- 4225787255:-:1665175131078393357:+:1665175130451319676:- 4225787255:-:1665175131078393357:-:1665175130451319674:+ 7533431327:+:51071894097609207006:+:51071894094404560577:+ 7533431327:+:51071894097609207006:-:51071894094404560579:- 7533431327:-:51071894097609207006:+:51071894094404560577:- 7533431327:-:51071894097609207006:-:51071894094404560579:+ 63438527751:+:15:+:63438527752:+ 63438527751:+:15:-:63438527754:- 63438527751:-:15:+:63438527754:- 63438527751:-:15:-:63438527752:+ 29025755401:+:664:+:29025756049:+ 29025755401:+:664:-:29025756063:- 29025755401:-:664:+:29025756049:- 29025755401:-:664:-:29025756063:+ 72498310146:+:3541:+:72498307543:+ 72498310146:+:3541:-:72498307543:- 72498310146:-:3541:+:72498307541:- 72498310146:-:3541:-:72498307541:+ 65680677767:+:25397:+:65680701618:+ 65680677767:+:25397:-:65680701620:- 65680677767:-:25397:+:65680701620:- 65680677767:-:25397:-:65680701618:+ 67373765428:+:655441:+:67373110117:+ 67373765428:+:655441:-:67373110117:- 67373765428:-:655441:+:67373110115:- 67373765428:-:655441:-:67373110115:+ 93506475077:+:6211493:+:93502919648:+ 93506475077:+:6211493:-:93502919650:- 93506475077:-:6211493:+:93502919650:- 93506475077:-:6211493:-:93502919648:+ 44135342241:+:36061098:+:44099821323:+ 44135342241:+:36061098:-:44099821321:- 44135342241:-:36061098:+:44099821323:- 44135342241:-:36061098:-:44099821321:+ 21635415039:+:373100595:+:22006410188:+ 21635415039:+:373100595:-:22006410190:- 21635415039:-:373100595:+:22006410190:- 21635415039:-:373100595:-:22006410188:+ 83088851430:+:1177642502:+:82112554976:+ 83088851430:+:1177642502:-:82112554980:- 83088851430:-:1177642502:+:82112554980:- 83088851430:-:1177642502:-:82112554976:+ 88041624924:+:24447347643:+:76480806631:+ 88041624924:+:24447347643:-:76480806631:- 88041624924:-:24447347643:+:76480806625:- 88041624924:-:24447347643:-:76480806625:+ 17629302017:+:318379704509:+:335982693820:+ 17629302017:+:318379704509:-:335982693822:- 17629302017:-:318379704509:+:335982693822:- 17629302017:-:318379704509:-:335982693820:+ 60952520552:+:6177611451062:+:6117767491038:+ 60952520552:+:6177611451062:-:6117767491038:- 60952520552:-:6177611451062:+:6117767491026:- 60952520552:-:6177611451062:-:6117767491026:+ 12089257751:+:19209212617741:+:19218617076506:+ 12089257751:+:19209212617741:-:19218617076508:- 12089257751:-:19209212617741:+:19218617076508:- 12089257751:-:19209212617741:-:19218617076506:+ 87967907025:+:507703737261554:+:507787669053731:+ 87967907025:+:507703737261554:-:507787669053729:- 87967907025:-:507703737261554:+:507787669053731:- 87967907025:-:507703737261554:-:507787669053729:+ 92027259148:+:3627522702930758:+:3627439710272074:+ 92027259148:+:3627522702930758:-:3627439710272074:- 92027259148:-:3627522702930758:+:3627439710272078:- 92027259148:-:3627522702930758:-:3627439710272078:+ 53154548538:+:49926479330426314:+:49926427249882864:+ 53154548538:+:49926479330426314:-:49926427249882868:- 53154548538:-:49926479330426314:+:49926427249882868:- 53154548538:-:49926479330426314:-:49926427249882864:+ 30687026960:+:779980346172385476:+:779980325285722068:+ 30687026960:+:779980346172385476:-:779980325285722068:- 30687026960:-:779980346172385476:+:779980325285722060:- 30687026960:-:779980346172385476:-:779980325285722060:+ 81818299768:+:7100983495253049453:+:7100983430899854613:+ 81818299768:+:7100983495253049453:-:7100983430899854613:- 81818299768:-:7100983495253049453:+:7100983430899854619:- 81818299768:-:7100983495253049453:-:7100983430899854619:+ 68593987843:+:33239733367882606114:+:33239733411511424801:+ 68593987843:+:33239733367882606114:-:33239733411511424803:- 68593987843:-:33239733367882606114:+:33239733411511424801:- 68593987843:-:33239733367882606114:-:33239733411511424803:+ 376591396032:+:90:+:376591395994:+ 376591396032:+:90:-:376591395994:- 376591396032:-:90:+:376591396070:- 376591396032:-:90:-:376591396070:+ 175431757919:+:673:+:175431758590:+ 175431757919:+:673:-:175431758592:- 175431757919:-:673:+:175431758592:- 175431757919:-:673:-:175431758590:+ 339064541748:+:6453:+:339064539905:+ 339064541748:+:6453:-:339064539905:- 339064541748:-:6453:+:339064539911:- 339064541748:-:6453:-:339064539911:+ 931884457510:+:44409:+:931884495711:+ 931884457510:+:44409:-:931884495711:- 931884457510:-:44409:+:931884495709:- 931884457510:-:44409:-:931884495709:+ 178009336248:+:498993:+:178008978569:+ 178009336248:+:498993:-:178008978569:- 178009336248:-:498993:+:178008978567:- 178009336248:-:498993:-:178008978567:+ 439761803339:+:9218045:+:439753129910:+ 439761803339:+:9218045:-:439753129912:- 439761803339:-:9218045:+:439753129912:- 439761803339:-:9218045:-:439753129910:+ 350602457653:+:74185642:+:350675470751:+ 350602457653:+:74185642:-:350675470749:- 350602457653:-:74185642:+:350675470751:- 350602457653:-:74185642:-:350675470749:+ 788718786390:+:719636315:+:788288589837:+ 788718786390:+:719636315:-:788288589837:- 788718786390:-:719636315:+:788288589839:- 788718786390:-:719636315:-:788288589839:+ 928010267293:+:5941108852:+:933948213993:+ 928010267293:+:5941108852:-:933948213999:- 928010267293:-:5941108852:+:933948213993:- 928010267293:-:5941108852:-:933948213999:+ 378231040618:+:76737473529:+:316984213907:+ 378231040618:+:76737473529:-:316984213907:- 378231040618:-:76737473529:+:316984213905:- 378231040618:-:76737473529:-:316984213905:+ 443439762145:+:354505319998:+:230673624287:+ 443439762145:+:354505319998:-:230673624285:- 443439762145:-:354505319998:+:230673624287:- 443439762145:-:354505319998:-:230673624285:+ 606035052462:+:6440651031725:+:5869311263491:+ 606035052462:+:6440651031725:-:5869311263491:- 606035052462:-:6440651031725:+:5869311263489:- 606035052462:-:6440651031725:-:5869311263489:+ 535855253296:+:48700544067971:+:48611410276019:+ 535855253296:+:48700544067971:-:48611410276019:- 535855253296:-:48700544067971:+:48611410276013:- 535855253296:-:48700544067971:-:48611410276013:+ 874522257380:+:287625330979279:+:287369286178347:+ 874522257380:+:287625330979279:-:287369286178347:- 874522257380:-:287625330979279:+:287369286178349:- 874522257380:-:287625330979279:-:287369286178349:+ 521291349898:+:3758352920953714:+:3758452424441080:+ 521291349898:+:3758352920953714:-:3758452424441084:- 521291349898:-:3758352920953714:+:3758452424441084:- 521291349898:-:3758352920953714:-:3758452424441080:+ 583667390601:+:14778357327212867:+:14777786712697290:+ 583667390601:+:14778357327212867:-:14777786712697292:- 583667390601:-:14778357327212867:+:14777786712697292:- 583667390601:-:14778357327212867:-:14777786712697290:+ 515704725897:+:366391316731195251:+:366390869758660346:+ 515704725897:+:366391316731195251:-:366390869758660348:- 515704725897:-:366391316731195251:+:366390869758660348:- 515704725897:-:366391316731195251:-:366390869758660346:+ 467205581078:+:7596170360210687040:+:7596170550203575638:+ 467205581078:+:7596170360210687040:-:7596170550203575594:- 467205581078:-:7596170360210687040:+:7596170550203575638:- 467205581078:-:7596170360210687040:-:7596170550203575594:+ 175789955705:+:91548642455416399139:+:91548642626633940826:+ 175789955705:+:91548642455416399139:-:91548642626633940828:- 175789955705:-:91548642455416399139:+:91548642626633940828:- 175789955705:-:91548642455416399139:-:91548642626633940826:+ 9072289676452:+:20:+:9072289676464:+ 9072289676452:+:20:-:9072289676472:- 9072289676452:-:20:+:9072289676472:- 9072289676452:-:20:-:9072289676464:+ 8275917403474:+:908:+:8275917403870:+ 8275917403474:+:908:-:8275917403866:- 8275917403474:-:908:+:8275917403870:- 8275917403474:-:908:-:8275917403866:+ 9338694072314:+:1821:+:9338694070503:+ 9338694072314:+:1821:-:9338694070503:- 9338694072314:-:1821:+:9338694070501:- 9338694072314:-:1821:-:9338694070501:+ 4223137945078:+:46601:+:4223137981439:+ 4223137945078:+:46601:-:4223137981439:- 4223137945078:-:46601:+:4223137981437:- 4223137945078:-:46601:-:4223137981437:+ 6098095995721:+:444390:+:6098096405679:+ 6098095995721:+:444390:-:6098096405677:- 6098095995721:-:444390:+:6098096405679:- 6098095995721:-:444390:-:6098096405677:+ 9559406749732:+:7241615:+:9559412660139:+ 9559406749732:+:7241615:-:9559412660139:- 9559406749732:-:7241615:+:9559412660141:- 9559406749732:-:7241615:-:9559412660141:+ 4204121943276:+:99596006:+:4204183575050:+ 4204121943276:+:99596006:-:4204183575050:- 4204121943276:-:99596006:+:4204183575054:- 4204121943276:-:99596006:-:4204183575054:+ 1025039807910:+:321930485:+:1025323987283:+ 1025039807910:+:321930485:-:1025323987283:- 1025039807910:-:321930485:+:1025323987281:- 1025039807910:-:321930485:-:1025323987281:+ 9524284055360:+:9494842981:+:9533728395557:+ 9524284055360:+:9494842981:-:9533728395557:- 9524284055360:-:9494842981:+:9533728395611:- 9524284055360:-:9494842981:-:9533728395611:+ 8019750024955:+:34533116992:+:7985217436347:+ 8019750024955:+:34533116992:-:7985217436357:- 8019750024955:-:34533116992:+:7985217436347:- 8019750024955:-:34533116992:-:7985217436357:+ 2572200815149:+:221136840881:+:2635496538780:+ 2572200815149:+:221136840881:-:2635496538782:- 2572200815149:-:221136840881:+:2635496538782:- 2572200815149:-:221136840881:-:2635496538780:+ 8958726112296:+:2057223238786:+:10974207635626:+ 8958726112296:+:2057223238786:-:10974207635626:- 8958726112296:-:2057223238786:+:10974207635622:- 8958726112296:-:2057223238786:-:10974207635622:+ 2155611395921:+:27098068800810:+:27834184647291:+ 2155611395921:+:27098068800810:-:27834184647289:- 2155611395921:-:27098068800810:+:27834184647291:- 2155611395921:-:27098068800810:-:27834184647289:+ 8104008598557:+:373226823667100:+:374024957004161:+ 8104008598557:+:373226823667100:-:374024957004167:- 8104008598557:-:373226823667100:+:374024957004161:- 8104008598557:-:373226823667100:-:374024957004167:+ 6690139196577:+:1465716792360002:+:1463563321422051:+ 6690139196577:+:1465716792360002:-:1463563321422049:- 6690139196577:-:1465716792360002:+:1463563321422051:- 6690139196577:-:1465716792360002:-:1463563321422049:+ 8686245070042:+:45294568452416982:+:45296365417341196:+ 8686245070042:+:45294568452416982:-:45296365417341200:- 8686245070042:-:45294568452416982:+:45296365417341200:- 8686245070042:-:45294568452416982:-:45296365417341196:+ 6374986998423:+:485613790030990016:+:485609098738526295:+ 6374986998423:+:485613790030990016:-:485609098738526249:- 6374986998423:-:485613790030990016:+:485609098738526295:- 6374986998423:-:485613790030990016:-:485609098738526249:+ 7688167407526:+:3085963332809882759:+:3085965970028610337:+ 7688167407526:+:3085963332809882759:-:3085965970028610337:- 7688167407526:-:3085963332809882759:+:3085965970028610339:- 7688167407526:-:3085963332809882759:-:3085965970028610339:+ 1284298090868:+:75677828727518268537:+:75677830011682137357:+ 1284298090868:+:75677828727518268537:-:75677830011682137357:- 1284298090868:-:75677828727518268537:+:75677830011682137355:- 1284298090868:-:75677828727518268537:-:75677830011682137355:+ 75181810312683:+:43:+:75181810312640:+ 75181810312683:+:43:-:75181810312642:- 75181810312683:-:43:+:75181810312642:- 75181810312683:-:43:-:75181810312640:+ 76924689640686:+:705:+:76924689641007:+ 76924689640686:+:705:-:76924689641007:- 76924689640686:-:705:+:76924689641005:- 76924689640686:-:705:-:76924689641005:+ 75753922764557:+:4463:+:75753922760290:+ 75753922764557:+:4463:-:75753922760292:- 75753922764557:-:4463:+:75753922760292:- 75753922764557:-:4463:-:75753922760290:+ 15733906017836:+:68910:+:15733905949442:+ 15733906017836:+:68910:-:15733905949442:- 15733906017836:-:68910:+:15733905949446:- 15733906017836:-:68910:-:15733905949446:+ 20489233071884:+:340543:+:20489232731443:+ 20489233071884:+:340543:-:20489232731443:- 20489233071884:-:340543:+:20489232731445:- 20489233071884:-:340543:-:20489232731445:+ 37045129627715:+:3447227:+:37045133005304:+ 37045129627715:+:3447227:-:37045133005306:- 37045129627715:-:3447227:+:37045133005306:- 37045129627715:-:3447227:-:37045133005304:+ 35693986172152:+:22079307:+:35693964110771:+ 35693986172152:+:22079307:-:35693964110771:- 35693986172152:-:22079307:+:35693964110781:- 35693986172152:-:22079307:-:35693964110781:+ 13025189674000:+:419398927:+:13025313700127:+ 13025189674000:+:419398927:-:13025313700127:- 13025189674000:-:419398927:+:13025313700097:- 13025189674000:-:419398927:-:13025313700097:+ 74537807243934:+:9659511949:+:74528693001747:+ 74537807243934:+:9659511949:-:74528693001747:- 74537807243934:-:9659511949:+:74528693001745:- 74537807243934:-:9659511949:-:74528693001745:+ 73114209109487:+:55039470252:+:73065630134083:+ 73114209109487:+:55039470252:-:73065630134085:- 73114209109487:-:55039470252:+:73065630134083:- 73114209109487:-:55039470252:-:73065630134085:+ 77146125433306:+:459149243756:+:77254047272118:+ 77146125433306:+:459149243756:-:77254047272114:- 77146125433306:-:459149243756:+:77254047272118:- 77146125433306:-:459149243756:-:77254047272114:+ 71388112015140:+:8961658851039:+:80040397160955:+ 71388112015140:+:8961658851039:-:80040397160955:- 71388112015140:-:8961658851039:+:80040397160957:- 71388112015140:-:8961658851039:-:80040397160957:+ 88433286375827:+:74608679965427:+:21675982928736:+ 88433286375827:+:74608679965427:-:21675982928738:- 88433286375827:-:74608679965427:+:21675982928738:- 88433286375827:-:74608679965427:-:21675982928736:+ 70085750248108:+:397682576364042:+:376096001212582:+ 70085750248108:+:397682576364042:-:376096001212582:- 70085750248108:-:397682576364042:+:376096001212578:- 70085750248108:-:397682576364042:-:376096001212578:+ 76187264923861:+:3319069336561033:+:3254450098986332:+ 76187264923861:+:3319069336561033:-:3254450098986334:- 76187264923861:-:3319069336561033:+:3254450098986334:- 76187264923861:-:3319069336561033:-:3254450098986332:+ 48308668102813:+:14042939316520508:+:14012266992123553:+ 48308668102813:+:14042939316520508:-:14012266992123559:- 48308668102813:-:14042939316520508:+:14012266992123553:- 48308668102813:-:14042939316520508:-:14012266992123559:+ 12607228622813:+:193016486021605983:+:193003941619735938:+ 12607228622813:+:193016486021605983:-:193003941619735940:- 12607228622813:-:193016486021605983:+:193003941619735940:- 12607228622813:-:193016486021605983:-:193003941619735938:+ 14426449603374:+:7325170645331759136:+:7325165244802218766:+ 14426449603374:+:7325170645331759136:-:7325165244802218802:- 14426449603374:-:7325170645331759136:+:7325165244802218766:- 14426449603374:-:7325170645331759136:-:7325165244802218802:+ 67448883889405:+:57414449231108330438:+:57414461154562578235:+ 67448883889405:+:57414449231108330438:-:57414461154562578233:- 67448883889405:-:57414449231108330438:+:57414461154562578235:- 67448883889405:-:57414449231108330438:-:57414461154562578233:+ 485765244207232:+:92:+:485765244207324:+ 485765244207232:+:92:-:485765244207324:- 485765244207232:-:92:+:485765244207140:- 485765244207232:-:92:-:485765244207140:+ 907967119459514:+:922:+:907967119460128:+ 907967119459514:+:922:-:907967119460132:- 907967119459514:-:922:+:907967119460132:- 907967119459514:-:922:-:907967119460128:+ 817514445229580:+:8779:+:817514445237319:+ 817514445229580:+:8779:-:817514445237319:- 817514445229580:-:8779:+:817514445237313:- 817514445229580:-:8779:-:817514445237313:+ 709406649523422:+:87318:+:709406649600456:+ 709406649523422:+:87318:-:709406649600460:- 709406649523422:-:87318:+:709406649600460:- 709406649523422:-:87318:-:709406649600456:+ 855925617444934:+:607748:+:855925617888834:+ 855925617444934:+:607748:-:855925617888838:- 855925617444934:-:607748:+:855925617888834:- 855925617444934:-:607748:-:855925617888838:+ 257789104819771:+:6734803:+:257789111029224:+ 257789104819771:+:6734803:-:257789111029226:- 257789104819771:-:6734803:+:257789111029226:- 257789104819771:-:6734803:-:257789111029224:+ 360937339219924:+:30564008:+:360937310761340:+ 360937339219924:+:30564008:-:360937310761332:- 360937339219924:-:30564008:+:360937310761340:- 360937339219924:-:30564008:-:360937310761332:+ 381857356220429:+:461904169:+:381857012814116:+ 381857356220429:+:461904169:-:381857012814118:- 381857356220429:-:461904169:+:381857012814118:- 381857356220429:-:461904169:-:381857012814116:+ 692702725782255:+:9515961579:+:692693883008516:+ 692702725782255:+:9515961579:-:692693883008518:- 692702725782255:-:9515961579:+:692693883008518:- 692702725782255:-:9515961579:-:692693883008516:+ 332436746038031:+:57303892052:+:332413854837595:+ 332436746038031:+:57303892052:-:332413854837597:- 332436746038031:-:57303892052:+:332413854837595:- 332436746038031:-:57303892052:-:332413854837597:+ 681503372661714:+:583803068639:+:680963628544781:+ 681503372661714:+:583803068639:-:680963628544781:- 681503372661714:-:583803068639:+:680963628544783:- 681503372661714:-:583803068639:-:680963628544783:+ 771758469838126:+:3557826017513:+:772773526293959:+ 771758469838126:+:3557826017513:-:772773526293959:- 771758469838126:-:3557826017513:+:772773526293957:- 771758469838126:-:3557826017513:-:772773526293957:+ 755032122866464:+:80104310771870:+:816284866915262:+ 755032122866464:+:80104310771870:-:816284866915262:- 755032122866464:-:80104310771870:+:816284866915202:- 755032122866464:-:80104310771870:-:816284866915202:+ 577026083216631:+:863893920403040:+:313883198263959:+ 577026083216631:+:863893920403040:-:313883198263977:- 577026083216631:-:863893920403040:+:313883198263959:- 577026083216631:-:863893920403040:-:313883198263977:+ 886749033548848:+:7686279537572856:+:6870707239483336:+ 886749033548848:+:7686279537572856:-:6870707239483336:- 886749033548848:-:7686279537572856:+:6870707239483352:- 886749033548848:-:7686279537572856:-:6870707239483352:+ 798063138229966:+:58932092016201000:+:59544848509944806:+ 798063138229966:+:58932092016201000:-:59544848509944810:- 798063138229966:-:58932092016201000:+:59544848509944806:- 798063138229966:-:58932092016201000:-:59544848509944810:+ 872932635037097:+:158462773414040118:+:158154718653734815:+ 872932635037097:+:158462773414040118:-:158154718653734813:- 872932635037097:-:158462773414040118:+:158154718653734815:- 872932635037097:-:158462773414040118:-:158154718653734813:+ 675310169204591:+:9192770945355235292:+:9192179204665481395:+ 675310169204591:+:9192770945355235292:-:9192179204665481397:- 675310169204591:-:9192770945355235292:+:9192179204665481395:- 675310169204591:-:9192770945355235292:-:9192179204665481397:+ 567634281030373:+:45914919026922553813:+:45914351947938652976:+ 567634281030373:+:45914919026922553813:-:45914351947938652978:- 567634281030373:-:45914919026922553813:+:45914351947938652978:- 567634281030373:-:45914919026922553813:-:45914351947938652976:+ 5650255930535416:+:81:+:5650255930535337:+ 5650255930535416:+:81:-:5650255930535337:- 5650255930535416:-:81:+:5650255930535335:- 5650255930535416:-:81:-:5650255930535335:+ 2054659327569150:+:366:+:2054659327569296:+ 2054659327569150:+:366:-:2054659327569300:- 2054659327569150:-:366:+:2054659327569300:- 2054659327569150:-:366:-:2054659327569296:+ 7192989758606056:+:4867:+:7192989758609899:+ 7192989758606056:+:4867:-:7192989758609899:- 7192989758606056:-:4867:+:7192989758609893:- 7192989758606056:-:4867:-:7192989758609893:+ 7603799253581418:+:65968:+:7603799253516250:+ 7603799253581418:+:65968:-:7603799253516230:- 7603799253581418:-:65968:+:7603799253516250:- 7603799253581418:-:65968:-:7603799253516230:+ 6110256391070612:+:531264:+:6110256390551764:+ 6110256391070612:+:531264:-:6110256390551724:- 6110256391070612:-:531264:+:6110256390551764:- 6110256391070612:-:531264:-:6110256390551724:+ 7888852821986680:+:8315888:+:7888852825747080:+ 7888852821986680:+:8315888:-:7888852825747096:- 7888852821986680:-:8315888:+:7888852825747080:- 7888852821986680:-:8315888:-:7888852825747096:+ 8011011345542139:+:29789229:+:8011011324667862:+ 8011011345542139:+:29789229:-:8011011324667864:- 8011011345542139:-:29789229:+:8011011324667864:- 8011011345542139:-:29789229:-:8011011324667862:+ 7712454700756628:+:474664193:+:7712454897443733:+ 7712454700756628:+:474664193:-:7712454897443733:- 7712454700756628:-:474664193:+:7712454897443731:- 7712454700756628:-:474664193:-:7712454897443731:+ 7534872505873762:+:8942244895:+:7534880772333949:+ 7534872505873762:+:8942244895:-:7534880772333949:- 7534872505873762:-:8942244895:+:7534880772333951:- 7534872505873762:-:8942244895:-:7534880772333951:+ 2515464387537885:+:84554831948:+:2515539236746129:+ 2515464387537885:+:84554831948:-:2515539236746135:- 2515464387537885:-:84554831948:+:2515539236746129:- 2515464387537885:-:84554831948:-:2515539236746135:+ 4952107177673640:+:992834010181:+:4951158383951853:+ 4952107177673640:+:992834010181:-:4951158383951853:- 4952107177673640:-:992834010181:+:4951158383951843:- 4952107177673640:-:992834010181:-:4951158383951843:+ 4702415483686049:+:1748792691678:+:4702908664186751:+ 4702415483686049:+:1748792691678:-:4702908664186749:- 4702415483686049:-:1748792691678:+:4702908664186751:- 4702415483686049:-:1748792691678:-:4702908664186749:+ 4402475726197357:+:62664586557376:+:4394720019162541:+ 4402475726197357:+:62664586557376:-:4394720019162579:- 4402475726197357:-:62664586557376:+:4394720019162541:- 4402475726197357:-:62664586557376:-:4394720019162579:+ 2180383669437468:+:853078530062258:+:1329116027073454:+ 2180383669437468:+:853078530062258:-:1329116027073454:- 2180383669437468:-:853078530062258:+:1329116027073450:- 2180383669437468:-:853078530062258:-:1329116027073450:+ 2838643051498349:+:3160981998579313:+:333557621859612:+ 2838643051498349:+:3160981998579313:-:333557621859614:- 2838643051498349:-:3160981998579313:+:333557621859614:- 2838643051498349:-:3160981998579313:-:333557621859612:+ 8339235931781204:+:36532224529204686:+:44026236351184282:+ 8339235931781204:+:36532224529204686:-:44026236351184282:- 8339235931781204:-:36532224529204686:+:44026236351184286:- 8339235931781204:-:36532224529204686:-:44026236351184286:+ 1619447191697544:+:772336347716658792:+:770717175740751584:+ 1619447191697544:+:772336347716658792:-:770717175740751600:- 1619447191697544:-:772336347716658792:+:770717175740751600:- 1619447191697544:-:772336347716658792:-:770717175740751584:+ 6668935011606922:+:1467813539926222672:+:1461710545645864666:+ 6668935011606922:+:1467813539926222672:-:1461710545645864646:- 6668935011606922:-:1467813539926222672:+:1461710545645864666:- 6668935011606922:-:1467813539926222672:-:1461710545645864646:+ 2671274930315946:+:92558663424269502076:+:92561093901858366678:+ 2671274930315946:+:92558663424269502076:-:92561093901858366674:- 2671274930315946:-:92558663424269502076:+:92561093901858366678:- 2671274930315946:-:92558663424269502076:-:92561093901858366674:+ 57203162854544014:+:42:+:57203162854544036:+ 57203162854544014:+:42:-:57203162854544040:- 57203162854544014:-:42:+:57203162854544040:- 57203162854544014:-:42:-:57203162854544036:+ 68213759157930405:+:324:+:68213759157930209:+ 68213759157930405:+:324:-:68213759157930215:- 68213759157930405:-:324:+:68213759157930209:- 68213759157930405:-:324:-:68213759157930215:+ 16863653159013750:+:5227:+:16863653159016733:+ 16863653159013750:+:5227:-:16863653159016733:- 16863653159013750:-:5227:+:16863653159016735:- 16863653159013750:-:5227:-:16863653159016735:+ 67167739929334923:+:59588:+:67167739929328719:+ 67167739929334923:+:59588:-:67167739929328713:- 67167739929334923:-:59588:+:67167739929328719:- 67167739929334923:-:59588:-:67167739929328713:+ 75766984138681886:+:745517:+:75766984138198579:+ 75766984138681886:+:745517:-:75766984138198579:- 75766984138681886:-:745517:+:75766984138198577:- 75766984138681886:-:745517:-:75766984138198577:+ 57911505791499192:+:5339830:+:57911505794711822:+ 57911505791499192:+:5339830:-:57911505794711822:- 57911505791499192:-:5339830:+:57911505794711810:- 57911505791499192:-:5339830:-:57911505794711810:+ 48782076314974691:+:60045179:+:48782076307885720:+ 48782076314974691:+:60045179:-:48782076307885722:- 48782076314974691:-:60045179:+:48782076307885722:- 48782076314974691:-:60045179:-:48782076307885720:+ 26932429183246467:+:186159987:+:26932429302232048:+ 26932429183246467:+:186159987:-:26932429302232050:- 26932429183246467:-:186159987:+:26932429302232050:- 26932429183246467:-:186159987:-:26932429302232048:+ 18134161278571156:+:6033674185:+:18134164057202013:+ 18134161278571156:+:6033674185:-:18134164057202013:- 18134161278571156:-:6033674185:+:18134164057202011:- 18134161278571156:-:6033674185:-:18134164057202011:+ 61524775483274683:+:76868931089:+:61524706270788522:+ 61524775483274683:+:76868931089:-:61524706270788524:- 61524775483274683:-:76868931089:+:61524706270788524:- 61524775483274683:-:76868931089:-:61524706270788522:+ 10258659716397811:+:329276619525:+:10258988716130806:+ 10258659716397811:+:329276619525:-:10258988716130808:- 10258659716397811:-:329276619525:+:10258988716130808:- 10258659716397811:-:329276619525:-:10258988716130806:+ 15708888944364062:+:1354916926014:+:15707751125604384:+ 15708888944364062:+:1354916926014:-:15707751125604388:- 15708888944364062:-:1354916926014:+:15707751125604388:- 15708888944364062:-:1354916926014:-:15707751125604384:+ 65537420756456620:+:24208331464778:+:65517611555779814:+ 65537420756456620:+:24208331464778:-:65517611555779814:- 65537420756456620:-:24208331464778:+:65517611555779810:- 65537420756456620:-:24208331464778:-:65517611555779810:+ 65956205434817874:+:386872943886744:+:66160956728151242:+ 65956205434817874:+:386872943886744:-:66160956728151238:- 65956205434817874:-:386872943886744:+:66160956728151242:- 65956205434817874:-:386872943886744:-:66160956728151238:+ 85030789747663854:+:1287485777224143:+:84026858920133153:+ 85030789747663854:+:1287485777224143:-:84026858920133153:- 85030789747663854:-:1287485777224143:+:84026858920133155:- 85030789747663854:-:1287485777224143:-:84026858920133155:+ 36190314827974417:+:58259056716133046:+:22070135709906343:+ 36190314827974417:+:58259056716133046:-:22070135709906341:- 36190314827974417:-:58259056716133046:+:22070135709906343:- 36190314827974417:-:58259056716133046:-:22070135709906341:+ 90069898448922361:+:843649547907054039:+:759631500439969582:+ 90069898448922361:+:843649547907054039:-:759631500439969584:- 90069898448922361:-:843649547907054039:+:759631500439969584:- 90069898448922361:-:843649547907054039:-:759631500439969582:+ 78003000688998919:+:9159355481905256941:+:9081946359799882730:+ 78003000688998919:+:9159355481905256941:-:9081946359799882732:- 78003000688998919:-:9159355481905256941:+:9081946359799882732:- 78003000688998919:-:9159355481905256941:-:9081946359799882730:+ 59156424182699604:+:55145675837783766037:+:55168785872708887105:+ 59156424182699604:+:55145675837783766037:-:55168785872708887105:- 59156424182699604:-:55145675837783766037:+:55168785872708887111:- 59156424182699604:-:55145675837783766037:-:55168785872708887111:+ 156185020741705756:+:60:+:156185020741705760:+ 156185020741705756:+:60:-:156185020741705768:- 156185020741705756:-:60:+:156185020741705768:- 156185020741705756:-:60:-:156185020741705760:+ 608256689016742644:+:768:+:608256689016742388:+ 608256689016742644:+:768:-:608256689016741900:- 608256689016742644:-:768:+:608256689016742388:- 608256689016742644:-:768:-:608256689016741900:+ 656096066452905823:+:7285:+:656096066452898602:+ 656096066452905823:+:7285:-:656096066452898604:- 656096066452905823:-:7285:+:656096066452898604:- 656096066452905823:-:7285:-:656096066452898602:+ 574130561778830449:+:40024:+:574130561778798633:+ 574130561778830449:+:40024:-:574130561778798631:- 574130561778830449:-:40024:+:574130561778798633:- 574130561778830449:-:40024:-:574130561778798631:+ 468689147944445404:+:470165:+:468689147943979337:+ 468689147944445404:+:470165:-:468689147943979337:- 468689147944445404:-:470165:+:468689147943979343:- 468689147944445404:-:470165:-:468689147943979343:+ 285894118848334233:+:3416081:+:285894118849128840:+ 285894118848334233:+:3416081:-:285894118849128842:- 285894118848334233:-:3416081:+:285894118849128842:- 285894118848334233:-:3416081:-:285894118849128840:+ 543377120374766414:+:24540595:+:543377120365465341:+ 543377120374766414:+:24540595:-:543377120365465341:- 543377120374766414:-:24540595:+:543377120365465343:- 543377120374766414:-:24540595:-:543377120365465343:+ 584498485642897397:+:831991377:+:584498485398112676:+ 584498485642897397:+:831991377:-:584498485398112678:- 584498485642897397:-:831991377:+:584498485398112678:- 584498485642897397:-:831991377:-:584498485398112676:+ 614021118323901113:+:9823424282:+:614021128147258787:+ 614021118323901113:+:9823424282:-:614021128147258785:- 614021118323901113:-:9823424282:+:614021128147258787:- 614021118323901113:-:9823424282:-:614021128147258785:+ 241888175076490376:+:51210010192:+:241888196883350232:+ 241888175076490376:+:51210010192:-:241888196883350216:- 241888175076490376:-:51210010192:+:241888196883350232:- 241888175076490376:-:51210010192:-:241888196883350216:+ 373998555794197135:+:975815520166:+:373998155609171241:+ 373998555794197135:+:975815520166:-:373998155609171243:- 373998555794197135:-:975815520166:+:373998155609171241:- 373998555794197135:-:975815520166:-:373998155609171243:+ 147765906949577224:+:5785275622427:+:147771123376389651:+ 147765906949577224:+:5785275622427:-:147771123376389651:- 147765906949577224:-:5785275622427:+:147771123376389661:- 147765906949577224:-:5785275622427:-:147771123376389661:+ 707520987502449331:+:17418411910948:+:707506326467949975:+ 707520987502449331:+:17418411910948:-:707506326467949969:- 707520987502449331:-:17418411910948:+:707506326467949975:- 707520987502449331:-:17418411910948:-:707506326467949969:+ 382701702428319041:+:181465124749963:+:382529033405046730:+ 382701702428319041:+:181465124749963:-:382529033405046732:- 382701702428319041:-:181465124749963:+:382529033405046732:- 382701702428319041:-:181465124749963:-:382529033405046730:+ 246560023851622492:+:6256237554331021:+:251584799757733329:+ 246560023851622492:+:6256237554331021:-:251584799757733329:- 246560023851622492:-:6256237554331021:+:251584799757733335:- 246560023851622492:-:6256237554331021:-:251584799757733335:+ 194459332161928629:+:84494942543682725:+:260914146372444432:+ 194459332161928629:+:84494942543682725:-:260914146372444434:- 194459332161928629:-:84494942543682725:+:260914146372444434:- 194459332161928629:-:84494942543682725:-:260914146372444432:+ 880023712521156574:+:470536415390019299:+:770632887095220541:+ 880023712521156574:+:470536415390019299:-:770632887095220541:- 880023712521156574:-:470536415390019299:+:770632887095220543:- 880023712521156574:-:470536415390019299:-:770632887095220543:+ 820532785786772371:+:3425122311749959444:+:2660330646865388679:+ 820532785786772371:+:3425122311749959444:-:2660330646865388673:- 820532785786772371:-:3425122311749959444:+:2660330646865388679:- 820532785786772371:-:3425122311749959444:-:2660330646865388673:+ 756509733034778673:+:67380706642515371231:+:67835454172334343406:+ 756509733034778673:+:67380706642515371231:-:67835454172334343408:- 756509733034778673:-:67380706642515371231:+:67835454172334343408:- 756509733034778673:-:67380706642515371231:-:67835454172334343406:+ 7055614711025964670:+:71:+:7055614711025964601:+ 7055614711025964670:+:71:-:7055614711025964601:- 7055614711025964670:-:71:+:7055614711025964603:- 7055614711025964670:-:71:-:7055614711025964603:+ 5542956444683838053:+:546:+:5542956444683837511:+ 5542956444683838053:+:546:-:5542956444683837509:- 5542956444683838053:-:546:+:5542956444683837511:- 5542956444683838053:-:546:-:5542956444683837509:+ 2111815128177774067:+:7941:+:2111815128177775350:+ 2111815128177774067:+:7941:-:2111815128177775352:- 2111815128177774067:-:7941:+:2111815128177775352:- 2111815128177774067:-:7941:-:2111815128177775350:+ 6223105689663185582:+:27508:+:6223105689663195610:+ 6223105689663185582:+:27508:-:6223105689663195614:- 6223105689663185582:-:27508:+:6223105689663195610:- 6223105689663185582:-:27508:-:6223105689663195614:+ 9070385172548006310:+:464977:+:9070385172548332023:+ 9070385172548006310:+:464977:-:9070385172548332023:- 9070385172548006310:-:464977:+:9070385172548332021:- 9070385172548006310:-:464977:-:9070385172548332021:+ 4187205364121932759:+:3730740:+:4187205364122517219:+ 4187205364121932759:+:3730740:-:4187205364122517221:- 4187205364121932759:-:3730740:+:4187205364122517219:- 4187205364121932759:-:3730740:-:4187205364122517221:+ 9133914735806764850:+:66164515:+:9133914735858040849:+ 9133914735806764850:+:66164515:-:9133914735858040849:- 9133914735806764850:-:66164515:+:9133914735858040851:- 9133914735806764850:-:66164515:-:9133914735858040851:+ 9576901575196972775:+:717105648:+:9576901574765100823:+ 9576901575196972775:+:717105648:-:9576901574765100809:- 9576901575196972775:-:717105648:+:9576901574765100823:- 9576901575196972775:-:717105648:-:9576901574765100809:+ 8248512270727811451:+:6646847935:+:8248512268375967940:+ 8248512270727811451:+:6646847935:-:8248512268375967942:- 8248512270727811451:-:6646847935:+:8248512268375967942:- 8248512270727811451:-:6646847935:-:8248512268375967940:+ 3148365835511635516:+:53646482113:+:3148365816663229693:+ 3148365835511635516:+:53646482113:-:3148365816663229693:- 3148365835511635516:-:53646482113:+:3148365816663229691:- 3148365835511635516:-:53646482113:-:3148365816663229691:+ 2298054251910936198:+:338060530010:+:2298054499048122332:+ 2298054251910936198:+:338060530010:-:2298054499048122336:- 2298054251910936198:-:338060530010:+:2298054499048122336:- 2298054251910936198:-:338060530010:-:2298054499048122332:+ 3092620541267490374:+:1805003941404:+:3092618738429415514:+ 3092620541267490374:+:1805003941404:-:3092618738429415518:- 3092620541267490374:-:1805003941404:+:3092618738429415514:- 3092620541267490374:-:1805003941404:-:3092618738429415518:+ 4057916043861540469:+:56135633828325:+:4057934761723348880:+ 4057916043861540469:+:56135633828325:-:4057934761723348882:- 4057916043861540469:-:56135633828325:+:4057934761723348882:- 4057916043861540469:-:56135633828325:-:4057934761723348880:+ 7808648598001250567:+:526085329144765:+:7808180724780841658:+ 7808648598001250567:+:526085329144765:-:7808180724780841660:- 7808648598001250567:-:526085329144765:+:7808180724780841660:- 7808648598001250567:-:526085329144765:-:7808180724780841658:+ 9152294583163130816:+:3026938368759106:+:9154053956418242178:+ 9152294583163130816:+:3026938368759106:-:9154053956418242178:- 9152294583163130816:-:3026938368759106:+:9154053956418242302:- 9152294583163130816:-:3026938368759106:-:9154053956418242302:+ 4861273710311130480:+:83968585622349203:+:4781950157732552931:+ 4861273710311130480:+:83968585622349203:-:4781950157732552931:- 4861273710311130480:-:83968585622349203:+:4781950157732552957:- 4861273710311130480:-:83968585622349203:-:4781950157732552957:+ 8478631541893941172:+:321334822217413386:+:8205481719675598014:+ 8478631541893941172:+:321334822217413386:-:8205481719675598014:- 8478631541893941172:-:321334822217413386:+:8205481719675598010:- 8478631541893941172:-:321334822217413386:-:8205481719675598010:+ 9698691799944775187:+:2608902127415703452:+:11721746575568695695:+ 9698691799944775187:+:2608902127415703452:-:11721746575568695689:- 9698691799944775187:-:2608902127415703452:+:11721746575568695695:- 9698691799944775187:-:2608902127415703452:-:11721746575568695689:+ 3197641698848591742:+:45057228853149308604:+:43606983850809022914:+ 3197641698848591742:+:45057228853149308604:-:43606983850809022918:- 3197641698848591742:-:45057228853149308604:+:43606983850809022914:- 3197641698848591742:-:45057228853149308604:-:43606983850809022918:+ 38137720903216630307:+:79:+:38137720903216630380:+ 38137720903216630307:+:79:-:38137720903216630382:- 38137720903216630307:-:79:+:38137720903216630382:- 38137720903216630307:-:79:-:38137720903216630380:+ 15252431543073028615:+:941:+:15252431543073028522:+ 15252431543073028615:+:941:-:15252431543073028524:- 15252431543073028615:-:941:+:15252431543073028524:- 15252431543073028615:-:941:-:15252431543073028522:+ 26204936206836169786:+:1434:+:26204936206836169120:+ 26204936206836169786:+:1434:-:26204936206836169124:- 26204936206836169786:-:1434:+:26204936206836169124:- 26204936206836169786:-:1434:-:26204936206836169120:+ 55070418445624430112:+:64418:+:55070418445624456578:+ 55070418445624430112:+:64418:-:55070418445624456578:- 55070418445624430112:-:64418:+:55070418445624456638:- 55070418445624430112:-:64418:-:55070418445624456638:+ 46915771899549822238:+:197069:+:46915771899549625555:+ 46915771899549822238:+:197069:-:46915771899549625555:- 46915771899549822238:-:197069:+:46915771899549625553:- 46915771899549822238:-:197069:-:46915771899549625553:+ 33765876830201361914:+:8327099:+:33765876830201559617:+ 33765876830201361914:+:8327099:-:33765876830201559617:- 33765876830201361914:-:8327099:+:33765876830201559619:- 33765876830201361914:-:8327099:-:33765876830201559619:+ 84181238884198555373:+:20458496:+:84181238884212716269:+ 84181238884198555373:+:20458496:-:84181238884212716819:- 84181238884198555373:-:20458496:+:84181238884212716269:- 84181238884198555373:-:20458496:-:84181238884212716819:+ 69831071992178009321:+:938781643:+:69831071991423782690:+ 69831071992178009321:+:938781643:-:69831071991423782692:- 69831071992178009321:-:938781643:+:69831071991423782692:- 69831071992178009321:-:938781643:-:69831071991423782690:+ 90717745393039534505:+:6864018407:+:90717745395067515470:+ 90717745393039534505:+:6864018407:-:90717745395067515472:- 90717745393039534505:-:6864018407:+:90717745395067515472:- 90717745393039534505:-:6864018407:-:90717745395067515470:+ 45466736709022063591:+:88825108438:+:45466736758777089073:+ 45466736709022063591:+:88825108438:-:45466736758777089075:- 45466736709022063591:-:88825108438:+:45466736758777089073:- 45466736709022063591:-:88825108438:-:45466736758777089075:+ 12108090572396290022:+:234890439982:+:12108090393877312200:+ 12108090572396290022:+:234890439982:-:12108090393877312204:- 12108090572396290022:-:234890439982:+:12108090393877312204:- 12108090572396290022:-:234890439982:-:12108090393877312200:+ 13566243618025302869:+:8609086179086:+:13566246591962606683:+ 13566243618025302869:+:8609086179086:-:13566246591962606681:- 13566243618025302869:-:8609086179086:+:13566246591962606683:- 13566243618025302869:-:8609086179086:-:13566246591962606681:+ 89305825117188238451:+:16590028486234:+:89305828513009932841:+ 89305825117188238451:+:16590028486234:-:89305828513009932843:- 89305825117188238451:-:16590028486234:+:89305828513009932841:- 89305825117188238451:-:16590028486234:-:89305828513009932843:+ 40946903377794592690:+:569596696540119:+:40947459702488521829:+ 40946903377794592690:+:569596696540119:-:40947459702488521829:- 40946903377794592690:-:569596696540119:+:40947459702488521831:- 40946903377794592690:-:569596696540119:-:40947459702488521831:+ 92554259757981941630:+:6465525927647481:+:92550151829797382023:+ 92554259757981941630:+:6465525927647481:-:92550151829797382023:- 92554259757981941630:-:6465525927647481:+:92550151829797382021:- 92554259757981941630:-:6465525927647481:-:92550151829797382021:+ 18744503315813138040:+:87778877068255352:+:18813224628884069888:+ 18744503315813138040:+:87778877068255352:-:18813224628884069904:- 18744503315813138040:-:87778877068255352:+:18813224628884069904:- 18744503315813138040:-:87778877068255352:-:18813224628884069888:+ 83826197385563743193:+:908962867733817653:+:83573072394983918316:+ 83826197385563743193:+:908962867733817653:-:83573072394983918318:- 83826197385563743193:-:908962867733817653:+:83573072394983918318:- 83826197385563743193:-:908962867733817653:-:83573072394983918316:+ 56375793263898899358:+:7255737518636080119:+:63045472941863774313:+ 56375793263898899358:+:7255737518636080119:-:63045472941863774313:- 56375793263898899358:-:7255737518636080119:+:63045472941863774315:- 56375793263898899358:-:7255737518636080119:-:63045472941863774315:+ 77515977371687351726:+:21276667904749096404:+:93712583316197226618:+ 77515977371687351726:+:21276667904749096404:-:93712583316197226622:- 77515977371687351726:-:21276667904749096404:+:93712583316197226618:- 77515977371687351726:-:21276667904749096404:-:93712583316197226622:+ Math-BigInt-2.005003/xt/author/lib-bitwise-_sxor.t0000644403072340010010000000652614536617520021442 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 69001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_and'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $in2, $in3, $out0, $out1) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in2"); | . qq|\@got = $LIB->_sxor(\$x, "$in1", \$y, "$in3");|; eval $test; is($@, "", "'$test' gives emtpy \$\@"); cmp_ok(scalar @got, '==', 2, "'$test' gives two output args"); # First output arg. is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' first output arg is valid"); is($LIB->_str($got[0]), $out0, "'$test' first output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' first output arg is not the third input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); my $strx = $LIB->_str($x); if ($strx eq $in0 || $strx eq $out0) { pass("'$test' first input value is unmodified or equal" . " to the output value"); } else { fail("'$test' first input value is unmodified or equal" . " to the output value"); diag(" got: '", $strx, "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (first output value)"); } } # Second output arg. is(ref($got[1]), "", "'$test' second output arg is a scalar"); is($got[1], $out1, "'$test' second output arg has the right value"); # Other tests. is(ref($y), $REF, "'$test' third input arg is still a $REF"); is($LIB->_str($y), $in2, "'$test' third input arg is unmodified"); } Math-BigInt-2.005003/xt/author/lib-bitwise-_xor.dat0000644403072340010010000070604314505066136021562 0ustar OSPJADomain Users225:956:861 536:589:85 288:997:709 933:4687:4586 793:6264:7009 498:3958:3716 204:87304:87492 978:60416:61394 146:15802:15656 886:962723:963541 781:417240:417493 728:577447:576895 382:4615683:4616061 224:6190429:6190525 164:3230398:3230234 361:61744220:61744437 776:85018356:85018108 817:63809096:63808889 353:966193761:966193920 719:998599474:998599165 548:801696624:801696084 710:4489757575:4489756993 584:5190381078:5190380638 856:5916359636:5916358796 898:18182229458:18182229584 980:83733933691:83733933487 556:41519475204:41519474728 520:934525436471:934525435967 121:637127160796:637127160741 484:146920055902:146920056250 132:9477218775645:9477218775769 630:1520484638343:1520484637937 782:4307808771651:4307808771405 862:48563155872812:48563155873650 691:83279082672962:83279082672625 946:26056429538315:26056429539257 152:735352198995794:735352198995914 291:692216577301688:692216577301915 683:753881061438425:753881061437810 455:4792931028180959:4792931028180504 145:8147296025462110:8147296025462223 674:3958042811002669:3958042811002255 733:61500469263150917:61500469263150488 923:51475739635504241:51475739635505130 612:85727329657436401:85727329657436821 340:808098066665524367:808098066665524699 971:998797770917132845:998797770917132774 211:280777880503514170:280777880503514345 388:5410982435248566270:5410982435248565882 277:1764655827856542094:1764655827856541851 343:9554766315392226872:9554766315392227183 618:14557563346828187753:14557563346828188163 843:93819843298602442492:93819843298602442167 835:50965296120499485683:50965296120499484848 673:609270529208775672704:609270529208775672097 708:934154644403970959606:934154644403970959922 387:370941196677623059873:370941196677623059490 454:7852515648950246896544:7852515648950246896230 721:9960396044618997328926:9960396044618997329615 885:1862169506403982839472:1862169506403982839237 972:89784023151966898539977:89784023151966898540037 631:88763684389979489523974:88763684389979489524593 146:20157960081468240697730:20157960081468240697616 984:135897494672754028442333:135897494672754028441861 467:934377333985926150641648:934377333985926150641187 243:896088211219398857405639:896088211219398857405492 193:1464538910190021243973550:1464538910190021243973487 859:9961079119303178350683329:9961079119303178350684058 818:4733018063316021636520901:4733018063316021636520183 783:804:43 361:688:985 690:438:772 997:6989:6312 430:5101:4675 690:4658:4224 389:21914:21535 255:30951:30744 797:92342:93099 109:346050:346031 332:351066:350742 143:407235:407116 316:8574636:8574864 283:3082634:3082385 325:4445957:4445760 645:18632686:18632043 640:30127035:30126395 211:97045007:97045212 985:818917806:818918007 412:279517228:279517616 717:645360252:645359793 670:2416043907:2416043293 855:7418744886:7418745697 799:1638743884:1638743123 661:63630973997:63630974648 425:52225502340:52225502509 736:20097901375:20097901023 810:412766811082:412766810336 608:189158164324:189158163716 954:801619154677:801619154255 924:6367793756216:6367793757092 385:6206921482341:6206921482724 436:8913515617020:8913515617096 561:42464409636892:42464409637421 484:45799185088860:45799185088696 106:29216265783303:29216265783405 848:445359261900913:445359261901601 228:156311183358488:156311183358716 635:741623922752573:741623922753094 165:4656262216947493:4656262216947584 628:9607936838403341:9607936838403961 732:7545057956986211:7545057956986815 954:25202952089786423:25202952089787277 370:14464317544963926:14464317544963620 611:90605975015396796:90605975015397343 431:340227114597188936:340227114597188839 758:281506415396535845:281506415396535507 390:504981424501460767:504981424501460633 754:7581730400705682509:7581730400705683135 141:5464982059470611569:5464982059470611708 148:2009096609713726404:2009096609713726288 319:77378385698236122818:77378385698236123133 173:81445687369425030256:81445687369425030365 631:58443151030236489388:58443151030236488923 929:124269946092937610812:124269946092937610653 197:922269290562686093944:922269290562686094013 983:328622591967916322468:328622591967916322163 230:6589238693598673680060:6589238693598673679962 578:7366432604802212388053:7366432604802212388503 402:6827894997039556381510:6827894997039556381396 416:82874750427079055666505:82874750427079055666409 161:47547669708128416447693:47547669708128416447596 664:95436424917114927399317:95436424917114927399693 783:846577380853028795024075:846577380853028795023812 743:506702357275513433604977:506702357275513433604502 167:846978938243699999134060:846978938243699999134155 258:8513754373481469224012798:8513754373481469224012540 536:9328337847319614979756192:9328337847319614979756728 894:6700897103614437836816532:6700897103614437836817386 141:813:928 228:655:619 718:476:786 220:5837:5649 159:1716:1579 576:3331:3907 590:22748:23186 177:97400:97481 345:43751:43966 246:724664:724558 460:656513:656717 655:641440:641839 846:6047440:6047134 849:6624629:6624804 344:9927631:9927319 477:90509702:90509403 589:80793370:80792919 200:71695417:71695601 909:453945621:453946008 715:322781594:322782033 539:692848740:692849279 890:7443754156:7443754966 705:5444176025:5444176472 432:1633904816:1633904896 864:15419231813:15419231525 590:66101633330:66101633916 845:59364460766:59364461459 309:977085670311:977085670034 424:669903061218:669903061322 177:649984449246:649984449135 853:7695336703341:7695336703544 520:4328358887610:4328358888114 109:9313071228156:9313071228049 145:36407001149492:36407001149605 580:55732705601419:55732705600975 212:73016089139817:73016089139901 967:815850731928647:815850731929472 333:144116267044915:144116267045246 819:609043635598109:609043635597358 121:4095801918747870:4095801918747815 971:9800909090205955:9800909090206408 775:8442474655081024:8442474655080775 794:82438172213887338:82438172213887600 906:32754349235067734:32754349235067100 496:55260735444684398:55260735444684702 457:462353188900115523:462353188900115850 992:540426708284644511:540426708284645247 169:388271494598875791:388271494598875686 457:6900245944611943210:6900245944611943139 939:2924451798957923356:2924451798957924279 155:3577319406482352942:3577319406482353077 313:51326720457393492154:51326720457393492355 923:26890335788021793309:26890335788021793158 412:57391685440103705118:57391685440103705474 660:577616387740723602742:577616387740723603362 945:121839594025224026988:121839594025224026333 298:791556831101791143971:791556831101791144201 848:6442796086846515159329:6442796086846515159665 757:7371316660548764539231:7371316660548764539818 240:9590869728684450704974:9590869728684450705086 680:84175335119730310571290:84175335119730310571954 417:43659714872752357581070:43659714872752357580975 770:34560901798097242421092:34560901798097242420326 691:474970807843666456564899:474970807843666456565264 442:508078432007414081520599:508078432007414081520237 501:524832714958149931740657:524832714958149931740164 872:1857506804983638490959529:1857506804983638490959297 964:2509617584557746084839117:2509617584557746084838665 313:1332555812122150367160600:1332555812122150367160353 2107:396:2487 3722:973:3399 5965:359:5674 7385:3699:4778 1758:6769:7343 3227:9009:12202 4989:66602:71511 8341:78642:70567 2331:57073:55274 9634:303328:296258 3041:753133:751116 8978:628265:636219 7818:2964821:2958303 4117:4167322:4163215 3294:6215938:6215132 8906:93304249:93296499 2145:72189755:72191834 8702:87921711:87930321 5712:756421418:756417914 5882:844384664:844390242 8114:312228589:312223071 6142:1012826312:1012832054 8036:2010942358:2010944754 7936:7473930912:7473937824 5101:15045619986:15045616383 7686:20620867951:20620863337 5267:46640642466:46640639281 3067:134147173572:134147172159 4552:277038146895:277038150791 4349:747748201935:747748197682 8846:8293964603961:8293964595383 7222:1304361472745:1304361471711 5854:8104249472066:8104249467548 1839:40116159807172:40116159805931 7778:75528054755098:75528054755704 5142:68093588139848:68093588142942 4507:641447821341802:641447821338097 2361:651970543263260:651970543261477 5190:337360538943432:337360538938254 5044:7719903192255990:7719903192260162 2087:4976302339556424:4976302339558511 7793:1605857057360093:1605857057363628 2179:37855741114287226:37855741114289401 4353:63250048710810653:63250048710806812 2520:59645956973189974:59645956973187726 6561:842524136628871737:842524136628878232 7169:850698905761524680:850698905761527753 2176:167492560017389602:167492560017387682 3265:6079409081336621818:6079409081336620603 1629:8092462595450604819:8092462595450604366 6106:3908792484150541669:3908792484150536895 8446:42098072442978979745:42098072442978987871 8175:31605742518398279529:31605742518398271622 9127:33693138826234834854:33693138826234825729 9176:112824415059329417420:112824415059329426196 5181:915523552055133620057:915523552055133623140 2410:446581642999700291348:446581642999700289150 3843:7486526607384168468926:7486526607384168472253 5661:5259650588432663761677:5259650588432663758096 7236:7633070187679299759385:7633070187679299760477 3009:30944773020362305881333:30944773020362305883956 6926:92989136752763795561059:92989136752763795554669 3878:93502320800310360794345:93502320800310360796111 7397:709352419857490530773482:709352419857490530776335 7278:724317449135707031227545:724317449135707031228663 2268:983241511925333714690217:983241511925333714692213 9868:9904728534394870453010958:9904728534394870453019778 3231:7932568011102927406178513:7932568011102927406181454 6366:3048018266019992055333805:3048018266019992055339891 1291:860:1623 3414:312:3182 2756:208:2580 5965:7290:2871 1571:7290:6745 9364:9931:607 8102:40923:32893 4308:10879:15019 2427:22933:20718 9555:185777:192738 1232:163543:162311 4022:308634:309804 7294:4207519:4206561 3197:8766526:8767555 9471:5389950:5380737 1652:26884685:26885177 4821:68856098:68860919 2416:79977434:79975082 6462:915502791:915501049 6567:134863127:134856880 6956:638146583:638141243 7585:7519025636:7519020101 7739:6756703957:6756696302 7121:3494811857:3494806272 1581:28582179914:28582179431 2069:19579677386:19579675359 1270:24265357273:24265356079 6777:901071514379:901071516018 9321:429214405762:429214413035 2245:253165021168:253165023029 3860:5803748550445:5803748550713 7195:7876300889678:7876300882517 1734:4750215304235:4750215303917 5732:21935774393199:21935774397707 1231:54995945571081:54995945572294 1368:27263766040361:27263766039153 2702:362337591286784:362337591285390 7620:931244979701623:931244979706547 1321:710032035410981:710032035410188 4963:6979636255000755:6979636255005648 9092:5015846101733012:5015846101740816 9424:5885915844704959:5885915844697711 7566:25262663660219248:25262663660222206 7031:83165024131967290:83165024131969613 4775:75702320072397428:75702320072392915 7754:375370641059496137:375370641059503747 2299:984342180768124453:984342180768122590 1822:839623109321701620:839623109321703402 6616:7937733962679440631:7937733962679438639 5747:4795422246555870210:4795422246555873905 6831:9100181382425604776:9100181382425602055 9451:12458212629840566408:12458212629840575587 6704:74694000763207745875:74694000763207752547 7890:44762225710938000132:44762225710938002902 4909:984791399029596279741:984791399029596274832 8920:167374985389592931351:167374985389592923855 5903:500155093448660393918:500155093448660388017 9584:6322756441626343572897:6322756441626343579857 2892:3004288809400250159032:3004288809400250156276 7430:8440285877847246163684:8440285877847246164962 9811:57224866623352125123236:57224866623352125115639 2055:89578981544385284569911:89578981544385284567856 4684:86529609670905820367615:86529609670905820371123 2306:170077635647091787492764:170077635647091787490462 4693:934648291824610095676527:934648291824610095672890 7980:288514923939193127678212:288514923939193127677480 3283:2412006772587812393188383:2412006772587812393185484 5508:9895737383012777696463696:9895737383012777696468692 2537:2195773998972556981220758:2195773998972556981222527 3937:708:3493 6718:990:6624 9560:814:9846 4696:5848:1152 6939:7021:118 5894:6870:3536 1054:40195:39197 1753:39996:39653 1880:60193:60537 3294:504624:507886 9513:660705:668104 4519:937999:934312 5569:2745608:2748617 3155:6099070:6102061 2958:1760541:1758867 6032:83973961:83968217 5918:75146068:75150410 5553:76945054:76940079 9139:452058008:452065323 7569:765065016:765061801 5436:487396628:487391272 6795:9253011363:9253004584 6480:2890268598:2890262246 1938:5405876502:5405877892 6717:82961533986:82961536543 4277:84005684222:84005688139 3405:79576225717:79576226552 5343:767610297899:767610292980 4291:701289977882:701289973977 5060:781203195997:781203200921 9620:1802499441340:1802499450664 3686:4180872281339:4180872278685 8523:5823104633048:5823104641427 9984:27756945557085:27756945563997 4589:24243745855439:24243745850914 4905:16907236339368:16907236343169 4483:691782340480760:691782340484987 5588:519403484521517:519403484525049 5784:795649314605720:795649314610176 1075:3523056848827988:3523056848826983 9497:7841288659194965:7841288659202380 3389:9497312930218987:9497312930221782 6002:94793825866242091:94793825866239833 3695:45649343662696917:45649343662696378 6798:38150932971826896:38150932971828318 6980:371352456534278961:371352456534284405 8360:167127324634758829:167127324634750469 5736:898636485668039984:898636485668043608 5281:6836105492199907203:6836105492199901986 3462:1810452266251796618:1810452266251799820 7827:3524345212955630017:3524345212955625298 2932:62571776943364513202:62571776943364511430 6889:42971332573900965092:42971332573900971533 6317:99933182169496484601:99933182169496478292 4436:902361809834802516288:902361809834802511892 9622:841782229710946778433:841782229710946769111 9589:808528538588613544021:808528538588613553440 5379:7293755156692748835569:7293755156692748832754 3068:5795548868620994929489:5795548868620994930861 6383:5566870160792055601544:5566870160792055595367 5508:22522692181659079394127:22522692181659079399115 4068:43944991344148247980298:43944991344148247979758 1000:29450155814768803098285:29450155814768803097925 2124:928129681001494373715528:928129681001494373713412 3794:748794944292363162132979:748794944292363162136353 6670:691064857489653625417405:691064857489653625418931 7717:2488673619132545602112386:2488673619132545602114983 4544:1474427769904237087017393:1474427769904237087021169 3025:5047926732628970438756361:5047926732628970438755288 91051:485:90702 33819:778:34577 20714:423:20813 31659:6869:24958 20052:8741:27761 92486:3559:91297 71291:95691:25520 90769:44972:118077 35271:35166:153 62381:583269:529864 31086:459689:490183 64558:137947:190197 68376:8878121:8811313 90659:5432219:5472696 34441:1748287:1715126 82578:10589659:10540873 25743:60196722:60220413 31318:83108895:83123785 67654:917624244:917560818 23593:587977081:587959632 13859:260194853:260207622 44696:8857920852:8857947084 98032:5112626011:5112661419 55309:4907021887:4907068978 44405:18776093952:18776119413 32026:56236922010:56236910976 27332:66605585472:66605612676 23059:800532719518:800532708749 24259:413317122132:413317109399 81096:146887408085:146887329053 20586:9520027158357:9520027146047 88670:5966457903755:5966457979093 26037:7077873933291:7077873925726 90466:39254602426067:39254602500017 75011:36403680625041:36403680568466 37730:58758717226968:58758717189306 36099:683427627794298:683427627758201 97466:262706204267892:262706204322254 70547:910756096642449:910756096712194 38526:5347556361803541:5347556361765227 56693:4021822624943948:4021822624895545 13311:6996093659125676:6996093659128915 35426:81137286186116156:81137286186085982 19422:84067869318036549:84067869318051739 97333:27965782345421035:27965782345510110 88996:496016339595562253:496016339595646633 10473:558230642487102114:558230642487108171 56061:711386676079279723:711386676079256726 33191:9014603495145620512:9014603495145653639 73515:6562823520921415436:6562823520921350183 51665:6688670754687287074:6688670754687235827 15299:19893400420584266735:19893400420584267820 53218:27030985816586286151:27030985816586304421 32625:97344919660938154698:97344919660938145211 31647:664690615825647024661:664690615825647026570 51546:575917309620032688185:575917309620032641379 39253:125257558497114592664:125257558497114623181 30537:1172011790621903549507:1172011790621903520522 75709:1136119774037927251126:1136119774037927193355 18164:4866035404574736690041:4866035404574736706957 50420:25102430746736763390455:25102430746736763342083 73336:70051406725470808666987:70051406725470808599827 52573:98033728468428887945283:98033728468428887899422 17112:315410848942492794671177:315410848942492794655377 14118:773714327509351501782144:773714327509351501786022 36742:725885273417530881354749:725885273417530881385595 85149:9454131886787544735163169:9454131886787544735248316 75399:6179961582637006393791132:6179961582637006393734171 96646:1129942041013673049146077:1129942041013673049078619 74171:608:74715 72238:957:72083 78653:822:77835 46652:5827:41215 99041:1933:99692 46736:7130:44362 41248:92747:117611 52721:77483:123738 67925:29016:96269 40984:246329:221729 80213:263946:343647 77990:486581:416787 69696:8965139:9034835 39062:7000633:6965935 23998:8759857:8779663 18695:78291142:78309825 42100:32136939:32176799 32618:32592815:32582853 88474:284710728:284757714 59382:338105237:338162787 82141:929084022:929165995 52352:5199017904:5199002416 31358:2358303833:2358289959 31688:3092964212:3092945084 14950:79225346073:79225348735 52165:93801373989:93801392864 87470:32174062078:32174009424 60812:819691894269:819691870321 71356:584275815732:584275753864 83309:875948631564:875948548961 90850:4894965955168:4894965995650 48624:7142210891250:7142210916354 28439:1859430832929:1859430822966 74245:82800133675831:82800133749042 45425:76634210244902:76634210281559 29920:36638965030655:36638965017119 11813:664412392822222:664412392831979 38657:150358819404455:150358819368358 11130:695677720674682:695677720685056 81912:6000114585828157:6000114585748677 98770:9544216157994671:9544216157896573 87528:2403410934883188:2403410934806172 48615:88967136540524786:88967136540507413 33610:79422515153998486:79422515154031068 54662:24177189961427855:24177189961448969 37591:682952560078272353:682952560078235062 48967:620075653427714767:620075653427750280 94152:191630676388813124:191630676388771468 44471:1616688514981817114:1616688514981775021 36196:2547095357838646596:2547095357838610464 66636:2781006665489306408:2781006665489241956 48973:61230171506091970475:61230171506092011750 87186:14705649669716565235:14705649669716478049 37402:92097367520080090228:92097367520080053870 75041:670532940213339837406:670532940213339911935 71312:505838218212180399591:505838218212180460407 37677:668406650624211502031:668406650624211538146 32967:4026380769765662399426:4026380769765662432005 40251:5207405264811602553780:5207405264811602589327 61836:2996200242688925526651:2996200242688925539319 20962:95029027536432850333149:95029027536432850320447 67888:61797679313669662324267:61797679313669662392091 60695:84395957586742876589706:84395957586742876611485 22704:861664433164850734027562:861664433164850734009242 57765:601172389695896696821423:601172389695896696813322 80808:970573143659625261980914:970573143659625262049114 74625:3629524756491484110683175:3629524756491484110741414 82395:5133629481196660198439800:5133629481196660198357667 55276:1179586594240007876609664:1179586594240007876596076 17057:635:16602 73370:115:73449 56511:158:56353 66438:7297:73479 27359:9977:19494 29223:6164:27187 94673:41772:119549 12485:27579:23422 70757:81015:10258 37941:109271:81634 50610:456247:406405 66224:130047:63823 68343:7029856:6966935 40577:7632976:7661265 75487:7395956:7470251 19306:29920383:29935381 33167:96970817:96938446 26412:41802196:41795320 85943:372927122:372974885 47790:455927266:455892812 52583:837663204:837645443 65350:6247984214:6247961360 43279:6121708944:6121682079 53150:8362320448:8362274270 83583:36637853737:36637773398 39115:37429105838:37429070949 34244:47404887493:47404918785 40450:517016844085:517016807735 22951:458167140168:458167150319 32633:675281474380:675281497141 42082:5596128417228:5596128457134 48636:7050707015191:7050707053547 68764:2061232771529:2061232840021 77198:11720173860373:11720173919131 88498:93229902808947:93229902732993 76449:28396968240448:28396968300513 34412:192087709238932:192087709204728 10857:453742733090652:453742733096245 61725:201745553092717:201745553031536 51202:3879687176018618:3879687176032952 54775:4233610953766744:4233610953810607 36668:1728280243905279:1728280243875267 78038:88698949513225970:88698949513156132 51390:39330275756275043:39330275756228061 30711:22759528309823062:22759528309842337 94330:381736637029733556:381736637029786830 74605:630339497461209716:630339497461283097 58739:331257229039562103:331257229039503364 30473:1350459894041287878:1350459894041308111 52550:1681972779881061804:1681972779881009386 14985:2743316006765816001:2743316006765810248 21887:27121065546922449432:27121065546922430311 57450:77567838761449963282:77567838761450004344 78950:61678032089371507937:61678032089371428999 48143:920343825623432680608:920343825623432652975 55717:502046821673004396757:502046821673004411248 34107:256832089557163940982:256832089557163907405 24197:5688581975871293775218:5688581975871293752311 91216:4096950429378330024289:4096950429378330082609 65157:6008055314858003740770:6008055314858003777255 93343:96169177399072799977752:96169177399072799890823 53863:88787973471088224771830:88787973471088224816273 85006:19395113226861464033874:19395113226861464114780 68350:428493233344569097066801:428493233344569097130959 55064:545189234295852394123220:545189234295852394109132 18719:734808545756216166854375:734808545756216166868984 19607:2830238508543955905656656:2830238508543955905674183 12110:2783657300887249491556709:2783657300887249491547691 83402:5292053597150698928705648:5292053597150698928657850 597497:789:597740 409906:262:409652 634123:870:634477 853109:6677:859744 744238:5481:740935 328076:1078:329146 840278:90870:897184 309678:12190:300592 837181:49598:788355 203103:309422:500209 712614:925461:311475 701620:115943:749651 249418:4910040:4793746 971918:2217266:3080636 782597:1165517:1718728 312596:27153199:26908219 893956:56731824:57412788 969536:78397439:77788351 396432:956216363:955824315 536392:266981275:266461395 719162:485017794:484585976 963763:7399650539:7398948952 625204:2832218394:2832839470 335477:5179036410:5179231375 376184:50328002550:50328363662 708388:57393321489:57392912693 263824:11540266378:11540527898 441687:791889679424:791889520919 818938:212750725699:212749913273 473030:903590099506:903590284788 802420:9489772360785:9489773136421 722934:1619197910479:1619198237241 658053:3382238760847:3382239151370 342360:24041826434303:24041826223527 396138:92997478882034:92997479272856 160856:71848095689915:71848095832291 972194:459086715967282:459086716895888 290453:660114535302604:660114535557977 880263:112925063033047:112925063372368 809337:1830952996189087:1830952996989670 940726:2454953763418841:2454953764087919 546205:1715823096975434:1715823097480663 493324:93708556707684540:93708556707981232 456884:37082311515805171:37082311516187975 448691:31724840197343274:31724840197165209 297328:357151766079229128:357151766078997944 471983:254177303609478007:254177303609424088 162111:282336671631284124:282336671631175331 364760:6460758375756180773:6460758375756348925 793885:8036096178639127714:8036096178638870975 735798:1320557904477465186:1320557904477917268 409363:87664217740596378241:87664217740595971474 232352:47182935918548127528:47182935918548288648 862598:69989414760147601485:69989414760147935691 213845:894892508809350905946:894892508809351119631 904747:298439660151733471297:298439660151732569706 504108:204624068115761888516:204624068115762105384 566654:6473594639390374404127:6473594639390373840225 421218:1383134724860973968891:1383134724860974334105 621078:4108738205222984457859:4108738205222984934549 304783:97271785659491410700006:97271785659491410395241 528132:40905668789823974057961:40905668789823974582509 984935:30935245768950412259007:30935245768950413240792 653505:767160798122284670814992:767160798122284671398865 957976:421416181555586421413401:421416181555586422032385 153216:178074894454819212370185:178074894454819212261257 385335:6727155471461429082270640:6727155471461429082507911 683606:9601338772321945733523114:9601338772321945733892348 924689:7808489410605626220113086:7808489410605626220507311 970982:375:971153 225848:383:226119 949155:668:948543 384022:4640:380470 700800:7964:700060 725869:5072:721085 468169:46412:496005 288942:85919:337713 711173:36271:677802 900452:819432:81292 706959:928046:319649 566364:102260:600872 233247:9527862:9628969 800876:9325443:8549359 653955:4330187:4974664 564440:59970869:60525037 940190:70266767:71202577 776072:30615397:30994669 839238:534974484:535813714 449610:683180131:683564073 533494:776645786:776114028 430305:5780774826:5780344651 591853:2655438865:2656030716 401162:5052210413:5052335079 630395:59285323290:59284889697 993704:40535188024:40535509904 862818:46368029726:46367168124 888161:222158901519:222159592558 226614:486875112617:486875320735 791518:425471547186:425471804652 923971:7584616865581:7584617252462 299931:2436628396268:2436628097911 887062:6959451955146:6959451657948 907185:39693898473299:39693898615010 673420:91393083139730:91393083777054 411771:29880068782026:29880068931505 126447:177532632971055:177532633078464 509271:488421121776363:488421121400764 658102:679829928184503:679829928837121 914205:1330957816103537:1330957816361324 585349:4468120845336159:4468120844783834 451229:6048430108835024:6048430108646989 414827:99765645362553795:99765645362149288 326032:27923465590268335:27923465589954623 751187:26004770002096214:26004770002806277 709618:501094435117396991:501094435116949517 378997:453674148039164550:453674148038888179 560599:158216227976119925:158216227975629730 618919:9888292756752644211:9888292756752058836 884930:6206679908740468722:6206679908740632368 104569:8021917684935670925:8021917684935566580 903303:37149634848910859067:37149634848909956028 545803:75065146261750501319:75065146261751012300 360095:66218809534404501919:66218809534404321024 624973:814072418229393571892:814072418229393148281 557391:742023888682935770917:742023888682936262250 812213:531245550796323185280:531245550796323423797 656050:6219562448695858584244:6219562448695859238918 745705:3457112548690798296803:3457112548690797583882 601195:4500236454857159853843:4500236454857159273336 377420:37030983146195870154583:37030983146195869777179 753999:11543707673919884159731:11543707673919883799484 480755:33823829731317602571597:33823829731317602615486 596394:782936605304675450032747:782936605304675450489793 740678:751616239107608089615131:751616239107608090056285 322337:579560814330204262161355:579560814330204262379754 426984:1452967989119736583567823:1452967989119736583993895 681090:7368687158246388956052961:7368687158246388956453219 347918:1018923566016791454135741:1018923566016791454350003 821367:662:821985 942372:581:942945 448373:878:447515 892475:6296:886435 916960:2065:914929 400028:4687:395475 832053:99642:866063 824374:23673:837711 783860:89667:699319 323953:694700:944349 870237:533789:352832 263889:155690:419579 688815:1662043:1302260 920107:3982469:3329710 427840:4673007:4311727 550524:65282263:65816235 464988:19491603:19821391 980177:63110669:63703772 113970:384187999:384271213 925205:304934127:304280314 202846:707496238:707301744 578871:2040656701:2041128458 802745:4471597857:4471854232 595542:6388234075:6388818189 344579:93661605247:93661949820 290772:54285172401:54284882277 670873:57588642781:57588240196 277578:686866295323:686866552401 624541:979373618147:979374109822 302285:720236074347:720236366246 388635:4108180967533:4108181257846 590339:9814344836062:9814344245725 288740:8916028984788:8916028746288 653315:11141687615780:11141688121639 385973:62970477200209:62970476962020 112958:53687680812336:53687680859150 196176:173518860579868:173518860388940 268740:614247878433684:614247878689360 380568:481398089060571:481398089440835 977781:3239276377700114:3239276378365031 603855:5678412960809313:5678412960364462 644570:3567171483092346:3567171482652832 401671:83379451570570868:83379451570186099 950267:89930971821018385:89930971821699818 638001:11932015751593574:11932015752004183 684323:796308195750999304:796308195750577195 200700:716071822658829870:716071822658761170 629226:473962587429457114:473962587428967728 722337:1951731388442339897:1951731388442931096 975384:6834584682898050482:6834584682898141098 801748:9371628056211244612:9371628056210472336 824926:89493579088514809300:89493579088515623818 515737:97183060491196514730:97183060491196866355 661558:83436529735656871160:83436529735657524430 791749:680763294915395865963:680763294915395606958 142765:910620435138639710624:910620435138639586317 311972:659687379398718690312:659687379398718936748 316537:2858186756181750419496:2858186756181750137937 523284:4147892908437783025744:4147892908437782815812 765497:9958625637980482170148:9958625637980481667869 615956:91366725676130575399449:91366725676130575866893 650158:32246619861999155990273:32246619861999155487919 231588:48511974404727920919380:48511974404727921150960 938923:402973742438660955371982:402973742438660955482725 665551:897820796880774232890969:897820796880774232504726 751180:744386935289509612102151:744386935289509611787339 417359:4569978183626566232029667:4569978183626566231910316 451753:8277186044640029539103181:8277186044640029539439972 742633:7940059916732626618212304:7940059916732626618649401 2436791:871:2436560 2812197:399:2812074 5728256:268:5728524 3838488:3056:3840488 3540552:8972:3548484 5972774:2543:5974729 6232824:28163:6255867 1266537:39919:1296518 2547020:28693:2534745 2024012:798001:1232765 6900237:891458:6606927 1586776:965376:1477976 4230527:7008873:2785046 2819046:5314448:8000630 3244759:4945339:8058732 1002737:82420862:82241679 6604977:80776117:78922500 9979201:85796106:92627019 5687505:141324852:138066661 3167541:865242385:866310180 7852524:558878237:557326321 1152029:4872829313:4871744924 7511224:4179790834:4182775626 8895812:5752141675:5743905327 7573535:79803106244:79806157787 4831485:35459978069:35464801192 7392732:53882509879:53885605867 9766311:778736338250:778745446637 6509388:599083764569:599086045205 6241670:885282311207:885278060961 6818164:5111056188996:5111058812720 6985227:7872734411455:7872740273332 3188387:1067053716313:1067054740986 4268100:19535124606649:19535128727293 7511628:85078656540336:85078661873916 4429232:11931266704315:11931262547467 6379964:558963834656363:558963832639447 3070613:190349528976254:190349530108395 6513759:516648381770578:516648379846413 8593566:5050782434201017:5050782426017063 6215710:1132152686333257:1132152690152791 1214854:5346037030332156:5346037031284602 3001518:88597209099126006:88597209097701464 5762724:77343972686877383:77343972692016227 2442772:32824197270740535:32824197272655907 8925214:775460647142895323:775460647150755525 9399928:846015749371612871:846015749362360511 1972981:797872119675192769:797872119675592500 1313339:5695353926572400322:5695353926571611385 9318196:4778325507473247881:4778325507482558909 4448555:2327148639224660452:2327148639228977359 3948836:69881979619871589208:69881979619874488956 1435498:27288288572004502047:27288288572005412213 6614398:74745838669851696770:74745838669854045180 8064922:435831037388942292371:435831037388937640457 9566876:529961762387073306204:529961762387080770752 7312604:766713072431308645190:766713072431301474202 1367719:5815512978659021046943:5815512978659022379576 2156851:8195279462998535009315:8195279462998532922640 7302328:4928270351510428508204:4928270351510435237012 4241387:10284705070052764884965:10284705070052769114126 8094416:58695496062626372791781:58695496062626379837237 1874826:19250405806123060514610:19250405806123059238072 8884770:853180622138733286837207:853180622138733295393269 2959739:380878183028594438913272:380878183028594435954051 1386516:524954514754282626285498:524954514754282625030062 7662028:1511615700362946898407661:1511615700362946894977313 6344896:4941056536654079044264943:4941056536654079046349615 3228271:9770126320424729587538380:9770126320424729590733731 2453795:695:2454420 7553366:368:7553062 8091809:714:8092267 6373033:2746:6370323 6268760:8123:6273251 2436478:9767:2427737 3816720:86023:3894551 2329430:58566:2322320 9050568:59150:9109190 7450944:282636:7725388 5935362:907362:5720416 9710870:160958:9853352 7178588:5616998:3685434 6206208:6099784:237640 3373631:5788605:7022978 1684858:43345162:42782832 4990763:82221629:78298390 6623525:63451102:61685499 2335583:567428283:569501668 3187132:605363610:606452774 3992203:635030526:635773301 2469594:8177266088:8174863218 2722445:4260606830:4258937315 1146500:4399532826:4398445982 8660509:65269074149:65277210360 1717703:24677388165:24678840898 5059565:24783457941:24787860856 8722233:982165717582:982157530487 6870655:453314718851:453316279036 6471869:961341000960:961334562237 4398071:2334848197648:2334844207079 8708524:8695056962629:8695048893929 2990148:5231180123935:5231178919771 8116499:75234882256283:75234876433544 2335081:98954713217530:98954715076755 1413534:31086203367254:31086202486472 9665209:697600879507794:697600870007787 3841319:706204014191370:706204013510189 6625878:236050393222821:236050390930675 3294346:6036942993471410:6036942992307000 6267177:3104952883733102:3104952888214343 9122234:9346009451766132:9346009460871374 2760101:62134036557561064:62134036555063629 6608439:41987139740093083:41987139737689260 9226134:85091826667107685:85091826658505459 4320609:530670149083273680:530670149087458481 9089790:777021492847890632:777021492855595574 2994301:436679904518325033:436679904519549780 2818834:8658482370974308556:8658482370972539870 8094312:3518063162378755343:3518063162370989927 2331676:1328130065123167502:1328130065120975122 6297905:30406137890365988441:30406137890363885416 8656634:66621576213828738987:66621576213820606801 2424939:32476485938811277965:32476485938813702886 1631754:899320333712587919349:899320333712588433919 5932002:981413606739117375412:981413606739123305558 5851316:573369438119773523524:573369438119769900784 5165212:8001148053694531154516:8001148053694534935240 2471604:3864087312582897399979:3864087312582894997023 3946060:1654882469997353769092:1654882469997356134088 4998220:99319186967662864060799:99319186967662859588915 2122317:55927244172742055738799:55927244172742057844706 3223632:41781855123833558684324:41781855123833555608308 6159364:127542258563207005533624:127542258563207011043772 3502073:289346898459191633395976:289346898459191636340465 6798254:588829641606838533140262:588829641606838539064456 5891962:5441082542400687865956708:5441082542400687861165598 6186050:1503694335053617621362390:1503694335053617615176340 9404108:2674875221510762644854546:2674875221510762652772830 2952142:981:2951195 3896056:626:3895434 6259465:533:6258972 4792572:4050:4796206 1407604:6236:1401384 5786886:6729:5789519 5373733:69075:5305078 7113762:19036:7128702 5622309:43110:5595715 7012428:226688:6845900 5377538:206159:5319501 5411184:198005:5346309 2756476:1358928:4109100 6085445:9468848:13410549 3737408:6290394:6749338 4057913:20788884:16833965 6904492:91886510:85149954 6616417:18236728:24293465 9615906:379267221:369726135 7423252:852781311:849685995 8179599:703581056:697500687 6618702:1160238092:1162029634 6779316:2104673656:2098574540 2110545:9103232251:9105340586 9929060:39634228219:39643894431 6410834:36452490681:36454600683 5349575:62970636041:62965286862 5348363:413377938760:413381122371 8526698:733592867465:733584345571 7538344:276938149302:276937296670 4383569:1222220011544:1222215973705 8824048:9497938453899:9497946472827 9555232:1156673231561:1156680587241 9692186:66679936383528:66679928790578 5687729:20298465864647:20298460963446 5053560:28269265005750:28269259960526 3298122:681084584670766:681084581406052 3302334:292910173776639:292910174669121 1775191:581312963270392:581312963854511 3113350:7942260418237476:7942260417025442 1559119:1906414120535323:1906414119604052 3886941:9135462995608050:9135462992907951 2267208:81092905241290855:81092905239097391 6834581:73954247969339300:73954247967751729 6388094:94647312306666888:94647312300279030 2510264:871765575161417375:871765575159726887 8727389:467007274485023150:467007274493225715 1976110:250448679100517530:250448679102491572 6936824:8757627823757777643:8757627823759360531 5558997:4677351119089561719:4677351119092916898 8414128:1716935321416563989:1716935321424928421 3655841:98313651220707155324:98313651220705826269 4036742:34650903782075084085:34650903782076888499 1366963:40852089309206533818:40852089309207792905 6450244:214080544980862914314:214080544980860674894 4253311:264556806244097420131:264556806244093234460 5928806:189211636500770423014:189211636500767963008 1491688:6562459390230692608362:6562459390230691150722 1834663:7177381560857431069528:7177381560857432468991 2043584:4681775816037883568066:4681775816037881803010 2482055:73034133550480038320230:73034133550480036038625 4733056:68130457327589326487028:68130457327589331191156 6095289:82045082858262652188437:82045082858262648845996 4746445:523391662045540781843998:523391662045540785490643 9706884:153519394498514530271584:153519394498514537880804 8034776:462359810325177395815024:462359810325177397230504 1883249:3090191158722904321076141:3090191158722904322873308 2593625:7846149259192735272240653:7846149259192735269655892 3778116:7635920040375915921474304:7635920040375915917780292 43617839:486:43618249 39601908:908:39601528 34881423:941:34880546 58483014:1980:58484474 78091701:1761:78091092 88922629:5325:88919752 78277472:31603:78254099 13647448:10779:13636675 51287335:19453:51306202 27377902:590196:27836826 78495008:984430:77772878 40342068:502026:39861054 74365036:4543203:69986959 48469771:4176540:47984023 48640973:9949387:41018118 28322296:99412395:73187411 13292099:54379953:66525170 44109322:87202571:127112449 48302113:504712724:485770805 95201841:880617590:835813959 85639179:827231577:877940050 50184535:4755587965:4723393066 84872850:5620719702:5537164996 92951677:6096586475:6155719318 57857901:96050570219:96074577030 73764939:81934598107:82003570576 68654540:17970779907:17904681679 41732614:266625192149:266663713491 64512274:858007507329:858035318931 34864371:717821549866:717853843929 89959222:8630829508720:8630751085382 42349084:6059412447949:6059454779601 13087949:1691644096486:1691631999787 56367351:43907494335580:43907480439979 55689763:88539437738935:88539457776020 94801648:41397115332437:41397075585445 75416679:437583948381040:437584013803287 69272224:972148692304402:972148757250226 21707265:906676916404074:906676904133995 80560825:6580091298324970:6580091234575187 68983390:7500347100736872:7500347035432758 73199270:5255272414441568:5255272342298310 23473990:67290906620019681:67290906605481127 14519484:61260225921584039:61260225909819163 40037568:76759612925140502:76759612952228566 14076317:344754175990521016:344754175984899365 15811256:786530922122322213:786530922106676125 33685146:661322277489848856:661322277456202882 84787800:7164582030059564943:7164582030109650391 31037075:3301172002023478686:3301172002018722573 60789618:3872936466312312288:3872936466370537106 72953129:94390138931614722253:94390138931552388580 90508416:29537431153860433440:29537431153770584736 79730869:38298186642453003265:38298186642398504116 29173914:837585658043456456106:837585658043485105456 57966012:527327306925040869418:527327306925017030038 71341106:722099809180528612115:722099809180457338657 91002071:7446538118748441149788:7446538118748384302475 53895506:6104947782257258148703:6104947782257307570701 57326118:3950629447929451421909:3950629447929508403955 27175876:85120555641219014786161:85120555641218989447093 52894859:87158249031572207268480:87158249031572158836235 30616402:69359788518411701982130:69359788518411713460448 62280731:845857242782929138375790:845857242782929176758389 84557968:417270229640862056626799:417270229640862006967039 51667506:273833416471937534837684:273833416471937584374150 87740509:5488774888725658140112483:5488774888725658226501182 46714284:4293278966919916304735243:4293278966919916343054759 42755079:2867988400035497895098655:2867988400035497937280280 18804465:482:18804499 39180994:857:39180699 74738983:260:74738723 97197133:7602:97190399 88098742:3910:88099056 21748396:4110:21744290 85716835:35899:85680984 19340282:63531:19391441 42446273:84242:42394835 49517737:138534:49383823 56838654:821037:57659091 99466097:694873:99033384 93817512:3290542:94748422 53290864:4518050:57268178 15982170:1770167:15260909 49109516:25922033:57070589 38601791:77449132:114344851 33903317:39505926:6259411 41010499:891711851:928494632 85497472:534693068:449204812 60763294:277994129:319747599 80021444:3056417067:3001564911 57744814:5492977474:5437469420 84212842:3400673213:3484867543 34156364:11038957603:11071917935 84519210:89364915172:89315199694 15368077:36743068555:36757095430 69325237:199065080348:199130203049 69326011:505945968084:505876781423 83295324:697659914983:697583240891 11613993:5416144359507:5416153868154 88183012:2969268600612:2969222426560 66334779:1909466032635:1909498796480 77944698:44981943268293:44981865325759 41215947:13599480559027:13599514940024 84943321:14680837051665:14680785679560 35850015:781754649042353:781754680695470 92308571:262333895366271:262333836677668 29386482:159001278720662:159001291312228 74018392:9734408175479524:9734408102511804 11567700:9624822677907176:9624822666405052 37226233:4956834535926476:4956834565811253 31780756:82508877723131310:82508877704475194 88648005:53549152276652879:53549152188074506 88795570:22838233585901987:22838233673336849 85930413:826795359435017029:826795359351077608 82956515:486765886048386758:486765885973917221 66395104:189847840126652766:189847840190286526 88357212:1881236622944740888:1881236622999527236 27337462:8941977321493148098:8941977321482720052 57426050:9301260338975980058:9301260339032881816 22048322:71160667433324389365:71160667433312865719 93019273:72653579641683339075:72653579641742506954 85947052:60311299079320011952:60311299079235302940 31217021:314850171597330646975:314850171597309956802 44919486:997006321094239477472:997006321094280164446 27607977:611683718981755705788:611683718981745433109 28001042:3388810725770009374224:3388810725770002607362 91533512:3215070958340651996925:3215070958340700988981 46908034:3056106817125722691789:3056106817125761079887 88808844:62829525711840472229156:62829525711840527481000 11940453:17626856956175415915979:17626856956175406073774 11612152:16799893153434775026240:16799893153434769708472 58333793:812613787550230014210133:812613787550230064933428 94845066:256118141776172162054158:256118141776172218466436 57525929:743290510314868164697524:743290510314868150328093 72376670:6382566111786325991962842:6382566111786326053837188 45567054:7142468032691834139363069:7142468032691834110708403 88070544:4916551601698888997726829:4916551601698888911631357 49511588:878:49512394 58005583:788:58006363 31290981:150:31291123 13749811:2880:13747571 29262868:9470:29270250 82691637:5509:82695088 27731359:88010:27685461 24044041:23817:24035072 42189318:54972:42144954 23851708:386717:23991329 62194391:197677:62260986 60096075:690553:60716850 64965364:3462523:65773455 54732772:5196895:51145659 16724527:3810369:12916334 98845043:64581721:104673578 91860991:63302667:113001460 23622777:15281946:25254755 81806848:836630735:893238991 61987757:575462364:570228849 32863355:245166761:258574034 78021304:8593420700:8666723108 76826812:5189314727:5131395099 36109368:9534489795:9569974523 84551343:16007465269:16090705818 83145178:96856975479:96801692077 63108984:11051933879:11030878159 40953176:666145243148:666175612244 56434004:340910852066:340854561462 34258981:229673996470:229707993235 69059166:2732784404393:2732718622199 64362673:4816629784514:4816643802995 46795321:8296339110808:8296376463777 68056779:59206161055968:59206228817451 23233143:62070885411241:62070874827742 19829237:23833359026040:23833373873805 17391134:827005561332380:827005578558594 42238193:240570691792050:240570650078275 69707812:472633619034831:472633550248683 96473570:5510381415813820:5510381352895326 92032485:4409343300157613:4409343221239112 16343565:8010715845017469:8010715850857840 27515045:98123829438830296:98123829411319421 22094777:12299709645811238:12299709659368863 82048845:72818970620021971:72818970546453406 72040579:502557023108399972:502557023171920871 41175500:249012669352328486:249012669383013610 27363422:668414606054814112:668414606065400318 73294788:1005607511389773272:1005607511451270684 58099353:8094876674114935313:8094876674132401288 84622987:3145609139808506993:3145609139758639866 32905859:68092736861391518832:68092736861378012915 69036530:96102276042473374747:96102276042541362665 46017417:65285313575569029075:65285313575597464666 13895304:177606100837393085997:177606100837406453925 84783373:299384415048935704100:299384415048851076905 94872650:583961525025837615088:583961525025793156026 72308319:2421491223324338660028:2421491223324266919139 67822160:4410274164921900486125:4410274164921833009085 76645402:3030824695851728531789:3030824695851786302807 90560894:29290394021823971461705:29290394021824049435447 21825495:95146641801731993545760:95146641801732013796343 40643530:91656201417472097470306:91656201417472069430440 11058693:971128255803718402204819:971128255803718409050774 83752619:873960475030928729949836:873960475030928783585319 81569168:234008137026881459283256:234008137026881530871976 14134110:4608088711705358666947227:4608088711705358669869509 51820143:5547800448931388234412816:5547800448931388250031487 26902386:5419706819385876821681175:5419706819385876829690725 856199855:462:856200033 237153245:865:237152444 143224140:464:143223964 656603358:1337:656604647 300589982:3993:300592135 486908616:8256:486900360 771377645:81972:771426777 659458880:43110:659432230 392293065:44441:392251216 776888906:283132:776614838 729007686:721252:729335586 345012203:985008:345993307 635404132:2837586:636760886 201350283:3659835:204965040 301642181:6076273:296093364 488255734:41015263:527165225 788059577:16293595:771771234 865566037:60485779:806194630 235031878:759888534:591968208 426039716:378215821:267371561 762843499:713525509:134191214 900445257:1952559531:1103758818 171242590:3649112508:3551919586 378486714:2795285168:2954073354 501874235:96738281333:97104755022 746935033:40405919789:39810513620 638541593:92751372506:93388734403 181640142:106070294075:106176423413 756955356:520769728429:521525352305 969096988:757249403928:757899711236 878621889:1868434293675:1869166573418 196764339:7664565551359:7664370147916 468428749:3436773835547:3436850750678 597648859:49440554317212:49441066324039 878580899:95284606356646:95284273305605 376760368:60563506929742:60563806079102 190547241:573247826326108:573247713572725 835969571:262110991352742:262110199931269 230742313:220647674325828:220647636562541 883200312:3184193708380589:3184193899511957 332503392:9456827595436116:9456827877468468 180642417:8877667301052465:8877667188060736 963674869:29874708168750917:29874708859729328 741806481:64173059551571354:64173060287085579 463721377:77575201525144162:77575201116309955 543252168:586811124932569819:586811124393653267 948996493:953184570043487026:953184569362995903 356761540:809810302088247917:809810301731489193 791971675:6046800571843364740:6046800571559493855 610624645:9733884202291215793:9733884202893433140 579901316:1033807645502357318:1033807646082246850 107216714:45161929291633469220:45161929291538946158 886291865:89973314160978712941:89973314161705346292 807100639:73404313051606302224:73404313052411289295 609474222:609230511403719771289:609230511403112796727 388885792:319565795775077562529:319565795774861923713 974348463:283567182933181406344:283567182932475804711 281171627:8599046727740291707411:8599046727740035703992 110210772:1973065748194279224391:1973065748194320145043 147487344:1145819353130669829813:1145819353130540438725 586421184:78338433690127750843252:78338433690127231539380 967205926:73449146120382835796581:73449146120382959668803 657806435:61626867454114377689886:61626867454113925545853 860325946:989935989383302672011347:989935989383302986618985 509318790:999331888364039647616265:999331888364039415450511 246681000:998248692509382382484046:998248692509382356531174 789513363:1075117531340313948645533:1075117531340313462565902 393574930:9759920727707744694083024:9759920727707744450111426 634581356:9053199269483763338279654:9053199269483762854759306 769963954:962:769963120 123314319:346:123314645 117484474:250:117484352 400690965:8151:400691394 454085142:5451:454090589 471376446:4084:471379402 646592860:73301:646653705 352257114:23322:352280384 468555003:72308:468487823 939370726:766273:938875303 337973377:374074:337683899 658372388:506610:658132438 546259063:7849698:553158293 219810427:7959325:224622950 678170699:3770552:676698355 245749232:73482914:180655954 859582805:53473678:806600923 778265825:47752825:750502552 634018862:717579280:252655678 609993341:301180270:900228883 933598322:291301794:653884880 374336286:6741086514:6568491564 993452068:8121244119:8038824435 400351123:2594341387:2373868952 480257341:95431853673:95102608212 113613878:24479696571:24526133901 986577249:90086963177:89176411784 493209039:729149788802:729503962957 746788592:831028914030:830299042206 160604457:994547323539:994388833210 144155178:4706964074658:4706822541960 179728589:1884296141721:1884190092116 443893675:4434162549074:4434333157113 474153701:43672134223251:43671937288054 400861394:95113861623022:95114131915836 701291418:60511684802495:60511000914981 568982737:108744738823761:108745257296512 132480310:432241400365460:432241427954850 520214516:879749949086290:879749429005734 978227101:4093618708857308:4093618603314753 743857465:1996902175585797:1996902774467388 372125931:6931492938199109:6931492571054254 822580327:66507442543859992:66507442258218367 192719253:80706982198749153:80706982111415924 306121239:27423087268601534:27423087506298025 822764205:352130377234038640:352130376948440541 356632471:369108817996699655:369108818219081616 269107425:125018997951451631:125018998220263694 971185869:9976812931162737590:9976812931047331195 547970186:6533720246177012913:6533720246719725627 662560139:6841159315359924800:6841159314835496907 313759928:79653139397178289263:79653139397485294807 158165461:31181843205469846990:31181843205581198363 863636418:73025689735505219832:73025689735222762298 634986234:468994644016655604783:468994644017104847573 439975289:861126306094770044411:861126306094603911298 975931126:608997438444286930785:608997438444926003607 229697115:3383203856011245634734:3383203856011204698869 195511174:8317457273908700984685:8317457273908594374379 161032482:6636545804292246752133:6636545804292405682855 941959995:72774619491437603842494:72774619491437739819653 285611837:31470987607502738250135:31470987607502453427882 762918996:70989819557995492504979:70989819557995006414279 459150558:410218711250178009209819:410218711250177861750533 791704522:680170578871117768380638:680170578871117412901652 703564829:882001849327271202395982:882001849327270810458963 215885756:2713768407055486903307693:2713768407055486704216593 552143434:4333021934297796617858162:4333021934297796091012664 918056448:7852991545732572430832641:7852991545732572252076545 856139197:839:856139514 951685085:475:951684614 463255478:688:463254790 436179595:2253:436181574 838469589:9686:838476291 676990348:8762:676999094 946106729:45907:946127418 700489126:47442:700458228 290693141:81607:290627282 669208514:697182:669641884 180901323:994957:180845382 736647500:286382:736888802 688756491:1205437:689959862 904504044:4831543:899685339 209118240:3255796:205998548 129459033:67322770:62136523 677697883:94407255:767841036 676273480:75394455:741437663 652993139:460011030:1031853157 228825141:187761010:110270791 672100691:815820896:414122291 771767029:3422706060:3791807353 468630129:8565572130:8143435859 367547550:9279349631:9613342689 428048079:83677530866:83249771581 774150674:94412829413:93773490423 809182724:64691834355:65495378935 202826784:451653586931:451587091411 362762449:495462429412:495234310709 428250794:826037612859:825878062993 347576958:5381489461457:5381282796207 910794858:9082128086902:9082501928732 742876407:9164984628350:9164652826761 130119081:31809972796276:31809901530845 184356358:51081042527071:51080878099801 852235171:21183326781710:21183087448749 708224700:685282301751176:685281663256884 993441089:339634802510429:339634621480732 784600330:529071219197393:529070459767003 482050574:4311484031986138:4311483703225300 645917746:5619616674932460:5619616039635678 384606161:7302460095081253:7302459845817588 319924151:95714913409453527:95714913693723232 836328017:96930132707292034:96930131931949523 910640622:16697483380326686:16697484155831536 793917150:598774337506073909:598774336991095787 262734627:876056407719239015:876056407678803524 671396939:441326831456752466:441326830785439513 820330533:5055705423663536065:5055705423397410788 452628858:9307966057381958660:9307966056941192574 501920171:8296220034504582555:8296220034837337136 520097464:43956220060483291537:43956220060802058025 431040990:78102266260802670433:78102266260694738623 658373121:67757769705941934780:67757769705286883517 166655264:924835908611828391262:924835908611670960254 726882652:498810290708875310090:498810290708148432214 489434448:614158107429032314950:614158107428946076950 414742728:8087552882645221502137:8087552882644809913457 434871221:5366506929185931322737:5366506929186037661380 781649578:7921217613908722211272:7921217613908007804770 465867534:51510701097877520506434:51510701097877675920716 691212374:63464311699842436240702:63464311699842823226728 688045717:23449941173543003632445:23449941173542584094120 369213457:168867542488837729201924:168867542488837964132117 828312523:559045306652303469617448:559045306652302643276515 319514898:978351738403053649432296:978351738403053868017658 707820881:2568182796582126851245149:2568182796582127485630732 455609479:9147428945674653886728798:9147428945674653805463257 301164936:2492070655633622195722133:2492070655633622477585949 2036377300:760:2036376620 5655649683:903:5655649812 6494653001:680:6494652641 4128832957:2747:4128831238 1050821663:5125:1050824730 1802996834:4948:1803001654 7019599340:92075:7019688519 3596616769:39531:3596656170 6750438008:10019:6750446939 1389531098:420315:1389684225 9583571393:645066:9582962187 8266370776:223711:8266295047 8368974889:7340348:8365829397 2111609020:3063999:2113034243 1476069938:1512161:1475090643 5795968876:75681141:5871352345 5171065951:39117372:5208069731 3687104399:83032493:3744876066 4872711237:640493785:4366435484 6136991650:558387865:5578644795 6376005388:299854704:6137672828 1829530729:2873195460:3326941101 3520997639:5287035667:8237607444 2941883404:4585990065:7482717117 7616509427:40060460204:36879509855 1479749337:90869738934:92080767855 2178719655:39771196310:41931559985 5254843571:233252785621:238232633702 9833116597:644373153571:636959290518 6587679300:853508240943:855531467883 1791663432:6126805320761:6128528562545 2009237687:1245688546255:1247672290168 7078432857:8997598469372:8999286164645 8637017028:91715204182279:91706659969731 9558639618:87464499735120:87472710266450 9596888788:65000722207517:64991796524489 7899106866:237647658780660:237642664528326 5464673850:540830009902105:540824582982179 9048790214:590482028686071:590473526345265 5354422034:4280612766014637:4280608892330943 1972378851:9937492377893763:9937492571875168 7502067849:9353307624718757:9353309686741292 4697022414:42657374669599518:42657379360025808 9550812544:35426471470830905:35426479914336441 7155211303:17601435951369471:17601428865470680 9464980946:868266666974625374:868266658051758988 4160322816:445403141459420367:445403144930810319 3357651366:517743543630695619:517743542693379429 3824709073:1372934539903763347:1372934539339132482 3277574772:8275992604362661868:8275992601120738712 6843496061:6655777489130382090:6655777491423008119 8566561957:72105845268017926740:72105845268393889521 6475932557:18125626915894507889:18125626913741888252 3478275306:61798540763865142534:61798540760531833324 2847113286:725931944774537566996:725931944773072477010 6316241831:704814147029884941070:704814147024919265449 6927142204:346819780166313108541:346819780173101738241 7022601335:3810644105303398958837:3810644105297534526082 7101964548:2220557399509161815027:2220557399516121025271 9002541103:7880308840065908235710:7880308840057174343057 9442097264:38501964053342748393996:38501964053350570080892 4577115248:82704520267785973836833:82704520267781415735377 2891254424:87697447007352716039337:87697447007355195727409 8918827782:449383130855543641449820:449383130855534823286362 9592722042:378173546912203563823313:378173546912194248450731 8681162629:947342452741965864454797:947342452741957325901064 2174412889:1852999890801680793302205:1852999890801682914188516 3990468071:7138228360351244748419780:7138228360351242907600675 6627765319:1064289978242710562182904:1064289978242708599945919 7288508304:319:7288508079 2241233117:565:2241233640 5726596809:871:5726596526 6552846776:2601:6552849297 5816429167:1722:5816429781 6735817692:4780:6735821168 2853815206:69615:2853751881 8311372536:15799:8311359311 2523373744:28818:2523385890 8648206360:610666:8647637362 4727993622:379320:4727684270 6877364700:280284:6877087488 2587487875:1310402:2586447937 4568834451:1902106:4568639369 3555636378:3269593:3554629443 9345309785:61469204:9373216333 8447525789:51717677:8398448048 2285952151:90216684:2367702139 5417974812:327563236:5660838904 7634961374:875023101:8375208227 6762173584:126505020:6786696364 1508799599:9518155983:10447879328 6273353669:1420883249:4854592244 5943829811:1392579057:5121684674 8726570937:36730971617:45188563544 4405485834:31832551385:27645202131 2040355420:69437078959:70117812211 8827936898:330556700969:339178248619 2609437331:504904374690:502866477873 8005042636:651868688272:644702637660 5966641499:6816280756921:6813602675682 2839419095:4071643923692:4074478885947 2529084011:1116585392152:1114259995251 1202046830:66246126185016:66247311256918 4151540672:51458182298528:51462262374496 9647499904:76699565911661:76691966280941 1499685177:528548353346000:528547697027305 1377556938:169381916177493:169381143915935 5389578600:335324455779332:335319072001388 6993232121:5438756575458205:5438753886139236 1440613266:9097951508233144:9097950605801514 6966851770:9129048494194265:9129054521493219 3092011986:16697414924442307:16697412914594065 5848503614:27784870629576945:27784865203652047 1372747434:34761480423670872:34761479095284466 5746127226:362613815271063173:362613821004550143 8193698739:909046326461799369:909046323645313146 6228532790:341148235852867732:341148230773192354 1861681566:3802420762918667800:3802420763292682118 7984869059:6273819267469218730:6273819274833198441 8027373529:9160419790210746733:9160419783056799412 4944025785:74604282742899933632:74604282747708299641 2896277756:40261240210198133111:40261240212003867019 6554495918:35295043507464009394:35295043501065297180 7108957065:468929589209554579207:468929589216626834574 4153286669:660506966307092370948:660506966310003619337 7680314710:502267620645638093863:502267620642252779889 4580945814:6815418060233080344881:6815418060237661224615 8752780457:3625526644023289199133:3625526644032041971380 9312519064:1300984611924980086836:1300984611917076954028 9789373732:51113486080074385208043:51113486080081921691599 9589971164:96311127206266186302462:96311127206274313378594 6021969895:60663343485903089481121:60663343485909097202246 7736645810:369330041906187018186449:369330041906194482198115 4669112682:515728575187394296649590:515728575187398294017564 9533702807:340656704562167549503275:340656704562159366399420 1819974956:4518225113787985439857880:4518225113787983620145652 8629386574:2866777191490786044526804:2866777191490794671586714 7719960413:9194427801555060502641990:9194427801555067949810203 1640673539:270:1640673293 9915072646:608:9915073254 7087400816:998:7087400086 4797536366:4183:4797532217 3233336560:5460:3233339812 4889406277:9215:4889397434 8008053576:21439:8008065271 7203271509:72692:7203203233 6232055758:32883:6232022973 3695716365:675535:3695339202 9264130064:321967:9263874495 4259051824:341205:4259237349 9469875289:6131874:9465447675 4078946480:9459328:4086275632 1985186655:2582544:1987371855 8679837588:36781177:8714384365 2014544455:88143084:2102621867 6196419454:68174293:6262463147 9108786453:449414324:8659437985 5401228546:735715935:6076110685 1163508242:519107582:1537821164 7532403189:3547719814:4622299507 1845662771:5680037678:5310835485 7897791565:2395772219:5778844022 2200109307:52769408985:54935832354 4208057165:17662448253:21039827248 9961584414:13370738217:5590282551 5588137395:152901791037:149597984910 4814892934:176448618393:171997220895 2083840495:256191408592:257060915263 9055671261:1018630208357:1027316508856 2113585007:8104558407509:8102466916410 7405008282:6252690247928:6246631400802 1458220224:61127512136875:61126197850219 6292601737:34096773479446:34100715145119 2104916131:86303519057938:86304816550065 9143368602:948731478657475:948740596265561 3125715526:428672775907857:428674558380119 6304796497:342181490667502:342184909381823 8577636489:6182914801670796:6182923101946373 4469269653:4332286389266462:4332282193087627 5105332935:6299864370244574:6299859265444121 5923777458:30153038410656479:30153033560621421 1158771577:17440655000739821:17440653842148500 7057742591:31437762836119776:31437765460482591 7346646756:467146530492671263:467146528175590395 7188055475:389527980359958788:389527986461689015 8346385994:245798684321394080:245798676520735722 6091831425:7951772213930801623:7951772217806897494 5627600760:1946976261267013329:1946976266680689065 9089446572:3300492327369444309:3300492335762635129 1595101249:90129908726694108710:90129908725736541799 8985428478:63071173234952399979:63071173243801218453 5114682544:47121095243447477184:47121095238360432496 7217913216:584156997917789235606:584156997924599182358 4869052587:830569801038949515874:830569801035221818057 2622774029:712188909758883749038:712188909761092814755 1685254433:5944674483987244719237:5944674483985566133668 5542873904:8799334523313788693463:8799334523316915642599 9990155186:9096467062359230191722:9096467062366453543896 1134499968:93515740817639575091778:93515740817638544925378 8880227700:12747757475854117416278:12747757475845808793634 4307358957:59145807667103963140006:59145807667099680430923 5940786583:870988973320292964734716:870988973320295684154219 4785949141:370925184571821552964077:370925184571816935020600 6859807237:198899935035908039106732:198899935035905746909865 2115014429:1312438003606005087117818:1312438003606004381396711 1498611760:3700214389310142683220050:3700214389310143913003106 1285718241:4364599549830693075329801:4364599549830692062503912 35294978480:211:35294978403 36832592061:389:36832592184 41780598716:674:41780598046 38386182979:6492:38386184735 52783991474:7445:52783994791 90745823796:6370:90745830102 75667733472:50445:75667685101 49938027293:38916:49937992473 61136218242:41067:61136177385 96522919281:356617:96522710136 99985692628:803322:99984922158 26331696505:957207:26331010670 77622772269:2820934:77620218219 43956109184:9761700:43946347556 44723104779:3566117:44719801902 84870786710:84595989:84955347843 54388073613:71073608:54458080197 78004337351:91643243:78049568684 38669039383:863774375:39521259952 20649094001:392353677:20831730940 38651251824:228913730:38427147826 59520445133:9560439343:68223062242 46399467145:5112217752:51492023825 50518445704:8811638775:42112164223 74706331565:66095426277:128970657096 43594295884:39548497112:13206423188 42260838539:12206547716:47267715983 43949975635:419723748320:461757434803 36118813247:898635547028:933383838635 23997510877:991524610048:976251786461 11106823664:6833655526233:6826910850729 52593663705:5655673465479:5673362125918 98037901435:7360395350885:7316112128798 56132140708:92408233412840:92386463135308 57191079621:33444980846160:33424860082325 85846428036:71015749160049:70941456991733 74223702580:770534455649859:770608410915959 27321399869:501267895970476:501243530907793 68838446289:510847812028070:510779007275639 42094829962:9117827469408672:9117787924715562 97161402379:7079521299372028:7079614165798903 26693913596:6110602308510693:6110575614666777 33708087980:48487031850768346:48487041360792950 70158846620:12175853840303202:12175784386367230 75970491691:74422671538330488:74422743213715027 55184465778:323401197349868698:323401142702279656 81994153493:689494289070203260:689494344550047593 48759342437:116647574982529724:116647543679883225 24942682998:4364781019991481524:4364781008068198338 18388183900:7581813707748428363:7581813691776835863 30102246604:1597460488471085165:1597460509914911905 82718929764:82608966993881165288:82608967074444205708 61898128621:23464934610402044949:23464934636857200888 39166173070:55393747541702166896:55393747580589381374 80665813620:801554642086591202688:801554642160814041076 98727559183:197612890593195580302:197612890501986573185 25606836338:136569151693776106174:136569151684276609740 77101669837:4413454113154849062943:4413454113226546372050 18123391118:4394152792332610384899:4394152792350732072077 66574536973:1015429115057265826548:1015429115025055484921 37710866129:70367088480130173533386:70367088480094852110875 16762050029:56093936274819726648203:56093936274824543319654 65838492411:95098778780958042628127:95098778780927244339940 56462622253:736250183121676330273964:736250183121724020634241 14643902976:543654664400753455164882:543654664400738838534098 64630090312:666279331221094030835842:666279331221115308600010 81473098535:4042598657352258537221140:4042598657352181096496947 99623136957:4642975382465077587388888:4642975382464979574900581 25838144954:9548887151938554530860963:9548887151938563052487193 57158812813:429:57158812960 41954154929:539:41954155434 22789101948:327:22789101627 98824407406:8081:98824410879 93001116400:1340:93001117644 22983176413:3904:22983180189 26375130561:93946:26375217979 57241076122:10730:57241086064 27745292448:45180:27745263836 79520357506:686963:79519950833 87794783551:925919:87794398688 62808234064:580419:62807687955 40286810675:6175214:40283786205 63778455703:7485125:63770998354 48529449793:3796718:48531066287 15998560894:69366873:16067649063 43018704284:99369813:42982250185 60564200278:20913526:60546303520 76931873010:904625239:76715148453 76345681152:267028388:76393226916 26423182452:244399880:26447248252 81882639077:3755087815:85081980194 85895657144:3788353989:82108352381 18141063059:9768680898:27901074001 47528662300:22631755826:61540459822 78190222911:85520470246:8018120409 13668263337:85132066705:72963398200 69508823702:986931720467:1056137972613 85652182145:574711963576:645298129721 75001008045:427466420267:493662470022 60149731600:7612873372144:7569941258464 62823647608:6284650871312:6295934808936 93675294444:7071547502169:7128411021493 15437035011:26085088147067:26091665735800 83259160945:57022521739734:56968270508199 30283620780:76521989985906:76552004745182 11100118792:500996267262525:500990169390389 78784158025:195498553344132:195559964367309 81314475258:399003693953773:399082586201623 81526656174:2740838709835742:2740901142182768 92420021239:5892150524462552:5892234332397103 99950973806:5050940790721254:5050995593058696 96424070175:92648955652178110:92648893621669025 81408002108:96229825326450904:96229905652121828 91887876790:79742326395885378:79742271034125812 78841179428:279861997945335040:279862075946516516 86006799807:550092298148504971:550092349786978356 27594330690:651996059070854892:651996034966185134 39642163272:7659448210189874631:7659448249467870607 92540194734:2376881014361605430:2376880969387313816 73008738832:9708290568348831315:9708290496985431107 37677173068:19517186017177990979:19517186050522971663 82024160142:78198099675263597870:78198099594078430880 29238477412:14469918701669677916:14469918689684797752 19047005191:936768803854054283929:936768803837523879582 48297798768:483125671493306160274:483125671513736476898 52393124413:413385703608998351904:413385703592059303453 41688909291:3269603113176509542318:3269603113204641376837 99629723736:8614096286353107456802:8614096286452737172346 59065196184:3116150335704551037159:3116150335761468475007 73387934906:48105268473975408399436:48105268473902632833270 54702638288:20518161256685592036233:20518161256733986441049 25682392017:31236152926147562069049:31236152926159192223720 80183328877:590534521514761587573141:590534521514820018651640 71290009133:715762798775134772770330:715762798775201496858679 29548878218:890138120302632952059524:890138120302639943962382 60278483953:1825534137221679968706417:1825534137221654075208832 59727438729:6160643615848106273789221:6160643615848155263776428 45485590057:3848506431297252293680103:3848506431297297640725966 74752814908:979:74752814319 72053969163:772:72053969423 39833831358:149:39833831211 83502747217:3404:83502744349 86005481933:6798:86005488451 90555120968:7725:90555114341 52047364839:69042:52047302485 67546669609:84330:67546721091 72882101464:45164:72882072756 36852004474:282138:36851726432 51557122984:819598:51556893222 26874253657:857720:26874578721 66735014614:5743861:66737677859 74440725599:1042738:74441342317 28856160444:1609000:28855672212 85649856429:65132025:85677097556 97389071093:38669549:97418561048 21854769853:27958807:21861747882 18393191549:406451588:18528870905 36930651148:869883848:37226830788 18853353274:316491473:19082121707 62530144233:2679371733:60408836156 48138104362:3539087494:51131915948 91914619516:2784889826:93473718686 15636184829:26343451880:23652471317 34882400978:28066080744:62679242042 45010343898:42120143021:15910909815 64406254822:558008481659:614533481373 24595119758:155462260481:144078432655 74656908296:627041810854:552431566254 88310345960:4040086849149:4089484539541 22630088908:5099562464137:5111300502341 46143759467:7997665108053:8025810994238 78982874165:89718057920232:89659577721565 10794501348:72791631675238:72802316991362 97470888485:93378147806058:93441222758735 78510248180:866213595399159:866154615935747 53429455966:602343244062730:602392915389524 76208076813:207790946220755:207728908927710 13772135822:3749915064076141:3749901984275171 66961802639:7494373404568765:7494375939238194 72377071878:5395523044169729:5395457109827847 30510716651:78072726146833315:78072730334022984 42503963608:62262179568866077:62262142611214533 13441590076:50516506390740110:50516501573722034 39591970054:837534503509271302:837534534484370944 52946226382:405470005286780431:405470055546417857 86862422591:376240895951350985:376240843457089270 50532832345:6494430322813819579:6494430304565595874 17680482427:8294713177010705018:8294713159884689921 11482603400:2472265765273355450:2472265775399885618 94755990775:49791902021551376588:49791901944054965307 70945672444:52755217792112021146:52755217721317474918 12214865468:20927143461148393908:20927143466920808328 88869994465:156256150842833039891:156256150892511399410 34785795614:331041661713924014185:331041661747858366071 75461057173:134640939607401032185:134640939540529918828 28190702485:2084435462389398845049:2084435462399871602156 11461059216:2045009238510003537839:2045009238520390624575 49422064778:7543471615630007644268:7543471615649347038438 66104728473:66243521495349242255017:66243521495303542820144 98613999351:96468369636899810930059:96468369636940382821244 74479729763:64013632281993340283489:64013632281930280343042 36074337651:109500147561858627639297:109500147561824705260914 58520704067:852019426738145463163571:852019426738194317037296 17953539048:292970427863922785723639:292970427863939396953887 30015211609:4564202690044246276205285:4564202690044241260552892 22886670961:5534472123447389593217741:5534472123447375300774076 91163730189:3405764486784419571682049:3405764486784363859274252 237486070806:698:237486071468 517762488252:505:517762487877 427657146356:523:427657145855 983874391784:9100:983874399588 680967413444:8744:680967421164 614743315424:7480:614743314136 693595727362:41814:693595686228 296326436158:77674:296326511188 491950535951:94898:491950442429 417319223502:160980:417319121946 580546817628:235038:580546918466 100160846745:369661:100160542820 825935155177:8645569:825926722600 206891959061:8801560:206883950093 246817269201:5221881:246813493288 947762908930:95361563:947824448793 516100889510:51151222:516084865744 387969091951:86608162:387921412173 639250980085:151595216:639402439717 356943975196:483987407:356605877459 964930252858:863533150:964642424932 775892427496:5736343960:781468257136 163882258374:9226333342:154850190168 449760125378:8572442671:452200495597 357874851157:77591640806:280310753203 345336463924:64552657149:409633235657 920499453707:14045663669:915216346814 593403893300:262994920981:786282631201 140116220363:857700718457:992898813618 360824063678:132615975533:321624306899 871597386884:4478489957126:5327194767234 862244153962:9153051494163:9465531444601 762107975715:9860136089646:9100176154637 980685245762:83268306268208:82872412519794 587563730109:19431600216766:18848600808963 312092001766:34830400023264:35069477318406 909042501382:460513008695714:459622392266404 649994143805:372619165733844:372126698249193 710806266016:839478717547787:839086849615275 283306733604:4201559606677767:4201277512638755 976934664367:9563729569648849:9564420702070910 675334956771:9077534004135109:9076902964322854 478008251494:29593134555222658:29592959711659748 449827508691:65618009564440525:65618114628023838 397451908079:36607567415380274:36607414779796189 201341339232:349678981893159280:349678784871956240 283736331597:841682445976353184:841682729712676077 939291693990:645588748921052248:645588496824160254 749600866172:1096261487239152499:1096262215111392271 653246862331:4351310725086012737:4351311308807042746 249773365877:8465234537837409145:8465234357035837708 773553632751:62395757168890784105:62395756808463916166 564945385361:11061381996350355490:11061382548096765875 856238150029:30692575259482225540:30692574972881414665 462299174362:216523303142068786139:216523303598960313857 775305261070:822199652136627183613:822199652632717225971 279496746724:414252997861932427228:414252998132268761400 892717098068:4487653605305447271412:4487653605556064563104 199596979103:7010587640803728927601:7010587640726837369070 134843169410:3922383346931243803563:3922383346833084291369 965772157158:88236644088768297074346:88236644087807105293900 196848473836:36962801578477607420335:36962801578562081969987 702421413993:97344061117777500567409:97344061117092580411160 365098714675:102995782185365119798850:102995782185695807916145 606152054617:291810900475563870812848:291810900476066902715881 401555492103:273161429554905645760162:273161429554711542641573 208133344377:2888955919756948332134265:2888955919756742535312128 617249847247:5086002945907033554866494:5086002945906519547963121 645832393791:9825530853530793492808170:9825530853530201887557077 623205374302:232:623205374390 341818248702:523:341818249205 410943422424:760:410943421728 580086519254:2678:580086521760 736858015396:7041:736858021157 661300966745:7898:661300964227 487965592493:49736:487965641189 359746789209:28892:359746776965 271187695999:15211:271187698196 284572085924:549551:284572584971 577507931882:549308:577508464470 270298850174:952957:270299801859 853147219391:7571159:853154657128 878584127045:8811526:878576118339 470915547305:2308886:470917725119 273769303857:40495256:273796163497 937536052396:77594569:937596756837 203595942556:89267402:203508782678 821252552461:628679047:820658542218 752254478442:385644558:752477016164 816165400932:661907162:816585660350 834893302167:1437864087:834132826368 877541454166:5570581365:880963461667 703702709528:3657712000:700313990296 858006488184:91690443975:904560451775 911582350085:31197565203:908336290326 762367576192:43863508108:806226889740 563273607410:323902001351:860329965621 262405362219:548681464565:286276102366 650651840471:953197757963:320291514844 903110916623:9399180406711:9200614102456 830266254129:6517514511378:5687436019491 771155451288:6299918468952:5537757747904 721400972682:76552350584541:76108119706455 690319748295:93092909048763:92403461853052 613943928192:94188251445627:93626406018299 127901766905:476132297712679:476191478952158 458042084704:977292510188178:977178099900402 606438159530:925933664263871:926529834134037 842817097499:2058034537872585:2057193675355090 430960619647:8129872520985539:8130300696562620 207453967470:9228420154867273:9228215253166631 526472661312:70553302208938729:70553051287669673 755258703380:82215673552965335:82214985164730563 378704961420:41463771600482097:41464011792347325 118687125909:905730216220855960:905730187803713293 399059470674:375727875656597804:375728273624467582 809618076032:973606687796377813:973607252599720277 466248765810:7171453475758947824:7171453113059880066 859956721588:9889936479868621256:9889935690250397308 663794316172:2474076400924144599:2474077060423467099 231330992772:95787442606856434912:95787442802879473252 396633331898:38326129257801566765:38326128861201797783 888761502042:97019249729079144046:97019249448133109556 581770015100:439308297707139221000:439308298244883494772 177145775276:796339037773320223983:796339037596462544963 680675696933:400786091200424433539:400786091638902830758 306574640432:3122110531940462545268:3122110532194390182980 838662958049:5890934178850698631776:5890934179687211872641 720931487132:8214843575437200153792:8214843575052109750620 281651861715:50181593267708175308578:50181593267981127880689 194441496074:37610298686146446360588:37610298686020860888582 114353199023:29502569698515980208645:29502569698419870408106 400193774420:969034333862784344367538:969034333862634332472038 667791085269:477486258622426508923822:477486258622878664154491 750037661735:319510031918335051611936:319510031919032436836103 136345505005:2184557782556573244445466:2184557782556665622994935 891198336591:5279543283418479789791514:5279543283417683971651413 596015402875:6060578839138900100408532:6060578839138396460493743 276861257063:701:276861257690 927860101570:541:927860102111 474677208095:586:474677208661 808377479843:3706:808377482457 514448780867:2356:514448779127 484635476053:4376:484635480397 318811772677:30081:318811792004 447389214057:49198:447389197639 811928913685:73983:811928987626 157027783719:914268:157027936123 300382106689:394489:300382236856 616424781335:691377:616425142950 383339781520:7134781:383337890733 576912350168:8764203:576903602419 385153287864:8530589:385145039909 416186822444:43031278:416145896898 424872352572:76615408:424812516812 886461979718:41757429:886495344307 521240161951:934972004:521501877499 494449705104:688294391:494835157351 401855618598:194091690:402047599756 524973170541:3058619255:526344784922 304725607724:8794930481:296339650589 608877373059:4757859078:604927446405 504796986482:47427739742:543361031212 687551949110:17249328864:704666793942 928692646813:24887463810:953231981599 872594244758:398078663405:650788068987 300354980358:694940515172:979842101602 190996459682:995709060450:874774803904 972870152496:3227954656174:2255168422558 850283292127:6567237528187:5759367204772 528828354882:7135546320311:6624971617525 252391209391:72203515002122:72095110055077 387758717435:20685436224479:20385998076452 343536159583:86492786847409:86749070763502 844457919240:316939373768237:317233521012005 537824814785:848778787721673:848309979313928 491947340044:416320930403931:416537998780247 317961838805:7745050851504102:7745368544890675 646166877942:9038788625219098:9038176903014636 906707443830:4352001801402968:4352745252756014 657204193698:85866076101691096:85865418901712762 455285601472:42138350211388536:42138719564046520 262050221745:27258753283155831:27258594346887622 170844984757:891533003986137454:891533149056984283 739451394025:164081493029240157:164081853375310516 829736510393:831681735191574650:831682554726734787 611665561202:8852492181052842581:8852491586903745575 355165355254:9484768422362568278:9484768772108741280 688975450753:7484221637130001294:7484220951711582479 273059579018:36715569571520690032:36715569302860674042 281976233167:28877458083749380799:28877458360287010416 852030219531:36035263799445095077:36035263550877231022 607876586103:314095205953512621453:314095205388854222842 300519230877:434028110471039941055:434028110180184650786 978269201405:854100246208385668818:854100245799380399407 175465993884:2356969649857773560954:2356969649964520010470 518052957808:2400530770604828531537:2400530770499372504353 659816565730:8775186221198431836179:8775186221857170297841 989266653512:28449114683528258819659:28449114682833889896195 645990259292:20388139800374386782899:20388139800864416033007 676860378384:91225087197744512331898:91225087198171459145066 579721865461:308574042784732888711340:308574042785260530427993 803901419291:975357924639620464158810:975357924638834816616257 535874812005:426958249686365532106331:426958249685836254942782 584126275447:9181182676316524382421772:9181182676317108491590779 849858596612:6403709316524761583091583:6403709316525561630126203 805607908969:3166720808244179526835835:3166720808244619509790738 2576011525642:527:2576011525125 2778699216011:568:2778699216563 2203637816341:135:2203637816466 3056708981615:9994:3056708990053 9345087111356:5032:9345087116052 6125859587924:9806:6125859594522 1516925759007:64167:1516925801656 5014194792786:92352:5014194864530 6501954894251:54199:6501954939420 6878937999400:927466:6878938123970 7339243291541:164107:7339243455134 6577328675274:627496:6577329228514 4307947817573:5053400:4307952734653 4981085920417:8079328:4981082037057 1369848985657:6280289:1369843133528 9574729684331:13376550:9574733089101 4692204604672:20808744:4692185565480 9255605958403:15583509:9255620394518 4533918382132:889119675:4533713820559 5539035036383:324351995:5539356609828 1978862976915:567355831:1978314626596 9752065743944:3110241429:9750331300061 4389129757680:4984791652:4384181764500 9062625529991:3704625654:9065908619633 2811879565278:46587559312:2767733168718 6490014466020:53822811526:6509477450338 8171680665105:57277105117:8125203926476 2257029582291:578979082313:2797309656474 1856445355500:957861264146:1577196646142 3716082295082:402709022517:3560336516639 6204091138686:9879799997906:14675120891820 4996548617571:2527215045229:7452577771278 2081087439477:9785123125609:9907628931868 3628964081586:74061164937656:70469045775882 8139582467602:22624200327679:21941906272237 5012153852266:22977847011811:18051912091785 5321186843292:933544712510064:938825082405100 7256019399334:284394193306382:286142577193384 7149702860213:211141980285108:218291608265985 3214301064691:2395491805872316:2392827302718799 3696533817442:6783986156075011:6784688809816161 3062668569131:6250611788642023:6252015886785740 9861887037759:31994873214604450:31986798109459869 4167531797323:10245755068472886:10244974118389117 1017509600742:23627751651441940:23628214035947762 5351461697755:656801547954802884:656796959461140511 8788762766777:754114435947435300:754107659681085597 1702657864367:706897087368557044:706896554216997723 1665874809241:6483062921711083710:6483062381818163495 4627337256278:2372196592585411366:2372192002847086192 5582458562220:2899613035469480286:2899609673516025842 7003941164420:38562037576123884908:38562043788176257256 6430232321099:80691956803785149187:80691960897537693512 2801892713229:22568362944280421130:22568360214062268423 6667608626564:525900423811878940459:525900430338680519343 4480668176302:268285542662439498935:268285538200029395737 3386437566149:554948076698161481548:554948073452494256521 6241535766503:1578526350651720577780:1578526355758831115539 1972689621608:5374977228583851498220:5374977227189286422660 8075921520953:5707627043949802433786:5707627043160365651395 8130004673684:11293801488128254515044:11293801495700651635696 8827265599704:85250381607176227967837:85250381598409159154565 3689533722233:37368669170343914612969:37368669169403473520272 5079495060516:790571033227636307474543:790571033222699934454859 5626546153189:447912194450135307670473:447912194444749556593964 7920828828841:123973175333736108313369:123973175325816894293936 2175140300347:7588238887648376251195241:7588238887647303311071570 4074730007644:6450386091647235034552624:6450386091645397985146220 2497525583069:4745986410749291900060490:4745986410746807259385751 6575332513792:594:6575332514386 4738776346743:452:4738776347059 1058907285209:197:1058907285020 4964706782109:1732:4964706782553 9630854689633:4791:9630854685142 7735747890999:1377:7735747889750 6838572965236:95827:6838573017895 5960214154795:84638:5960214234293 1183472923029:70866:1183472854343 6597428761480:663024:6597429415544 7159814868123:874079:7159814658756 6650640608221:899417:6650641486468 8742464501206:4526074:8742459980332 6627298434318:2290272:6627300618094 2730335943505:2933977:2730334158728 3396950878013:81665972:3397030967433 8211563223209:57581683:8211509917914 6886592281391:52249086:6886644497105 3342063994876:897070033:3341886272557 1931905493087:351819391:1932105236000 5416309310651:168320362:5416477596113 2590091859415:4830062486:2585878966849 5320580057208:3598572273:5317659529865 8628301420352:9569075574:8636450199094 3446990490943:33965692670:3459464534977 6493648035894:74411164274:6557221118532 5613038564626:52319093278:5595492873996 7701676754017:419827269538:8111315401667 3516232060430:667206537050:4028534128980 7006597584380:987231654524:7398120294272 5757474234834:4109839540874:7148464653144 7816039136187:7251945768593:1664997834026 3508971988884:6597994634434:5707074583382 8350453611207:74471185418447:74917406028296 7079819613968:37051623212373:43716978217541 4804337928786:15160405717159:10545592007413 2685875250288:537774019207728:540320303515200 9875712370063:366095721093972:356297924624091 6317198509183:477814283551323:482887887242788 6150826709778:5672034648118941:5668220334605711 3570704264258:5821836984837468:5820614101485854 5656859743844:1621906558119988:1625321310578256 2400265133615:11434321369728290:11432012121299725 6671207975088:75665926685487805:75672595722877453 4711482064177:43309783563079693:43305692238802236 7966149744885:150215673209245954:150214613451131383 5956423480577:131679151054232704:131682012198660481 1637341100988:390180467020683870:390179759276040674 8455642698623:3337960778012736901:3337965658783018746 8420709423019:1090764842398432765:1090763298242062934 2699393740479:8450671314664919767:8450673460002700392 1478229945782:17270056471864534190:17270057193901984024 5635156244731:66788808753327773411:66788811914277711384 3096297201905:20466232810305945207:20466230955556413062 3173867036588:590681820869043437760:590681818523340627820 9095044812783:292632947749360109164:292632956839571769731 4536650413096:820008879065778938205:820008883325269661045 8467852061591:3644920436744790449143:3644920441759413301344 3509435858343:1243725709068323605887:1243725708032811479256 6668787848065:3759097567497785633550:3759097574027516311695 4302428867097:65892925670526874894888:65892925671177634170929 8193067232015:19040353168612552737974:19040353163190287904697 8274202217849:94763592308439653598986:94763592305663819287155 1933490887706:399851644766532124469586:399851644767898377614664 7466944469174:732048482554903342628643:732048482552401649117077 2601745938204:554285558320215464115896:554285558322024783808932 6849919637619:2167011959592341279772036:2167011959585911025456631 5080413192563:5862226580928191865449125:5862226580931912916216790 5729219786534:1463866331173516799254083:1463866331179069384829285 4767439528841:857:4767439528144 4183640646111:103:4183640646072 8982904369096:592:8982904368536 4549873127520:5837:4549873125037 1131720112914:2906:1131720110152 5450937049521:4214:5450937053639 1605139704984:84087:1605139784943 3853613804710:41110:3853613829168 6418887602537:44280:6418887564689 1601286418821:616150:1601285838675 2234992995153:325093:2234992713396 2733906962426:444890:2733906816544 4442681489092:2728847:4442679809355 1422410511386:5751728:1422407120810 5367106928154:4492250:5367111415232 8887534144136:17967284:8887550009916 9824067332127:88079764:9824153949579 8584834812859:49335918:8584884078037 3984393654695:774070510:3984093688137 7399693994829:650779670:7399271028571 8124996329075:840459738:8124159065001 5830750309962:3267707381:5829630119871 7541491031562:6451101116:7535040340918 7244884055989:4748892810:7249094495551 2821107404696:99389417670:2782921287518 4726800181398:23584526792:4715714820446 4102001987816:41491509271:4066181193983 5998511311641:406566027535:5678116342294 4203712278829:822309272605:3769734876464 6891765322787:263756616286:7120857056893 7028329007252:1764595265183:8790508250635 2541655789850:4034556165130:2081317776656 5382234005128:9947907462068:15294568910140 3892816849103:80799684753980:82424607724275 5747196804890:76658559943168:70928862264602 9350133777626:86382611599059:77036605803017 6875338603089:592009177022494:593930268588623 8090089888361:730179360095924:738063278826717 3761721834111:310548147413252:309078598671227 6968358343264:5872667024480253:5870836521551261 4599539726952:4094895755427007:4090629378967255 2820267702895:2230961339408597:2233780532763322 5305441678450:17752563908106406:17756080476990676 7969519841354:82922412504297878:82927645722575324 3769037044716:31682439281430021:31679606681630185 2978818208843:794214913787828300:794213481569233927 6146239710382:972617436278010714:972614726290569204 9519993036100:197465405626761066:197455889995801134 5883500695359:8242755831667599551:8242752354259806080 3703898313296:3452063485807941101:3452064284109359037 2521753780455:6595242205108129095:6595244150258355616 9149807888872:51294716006639265929:51294724586490978657 7553828484682:60201784532905492828:60201783146751162134 9365565434310:66207676934101837869:66207668707340435947 1928441083178:248129044825843135162:248129043455747868560 3007544068749:972481046455120887541:972481044926458000504 1519685906120:853901708124405165560:853901706881744913200 5533735223748:1855788414195296121937:1855788419725405369749 3156262424946:2925792758843489900981:2925792760845604833479 1580181543210:6125743237977070352086:6125743236700757782524 9088764114971:48579538564758922988238:48579538556255366574805 6613486494503:98630964028956053928742:98630964022345336068097 9624757696190:16329799280344124345062:16329799289419117411416 9857211068480:811876669373848705633732:811876669364867886054788 7986790508630:522418921948132333022034:522418921953369790399236 2262424556264:397671199149046193759597:397671199151184064264069 5854637504229:6006522758290461653903591:6006522758285183633071618 7121151828836:2349017219802549255512327:2349017219795840458293859 5989819062730:3549392981499161955026254:3549392981494156656761988 24681204053503:221:24681204053282 98870252197099:570:98870252197585 94778621153352:557:94778621153893 13154968828691:7997:13154968822830 16763374577238:7531:16763374582589 98830004377659:7974:98830004373277 45615919498329:17456:45615919513705 46508670300691:19153:46508670318786 68574355337541:12777:68574355325100 47803333331912:736266:47803333670850 27645024263285:478518:27645024571715 11480219045084:875588:11480219881624 66914017309796:2757479:66914014553859 40927852653558:4285155:40927856888085 60722736470460:5085932:60722741412688 33635686619874:68554227:33635754383121 67120835483529:74218152:67120908086561 10921799598045:21265593:10921778365284 14831211429237:678334011:14830546727758 80880384125539:157246977:80880270822498 78879347574861:939281243:78880035717910 40326414589546:1927519178:40326714508704 89524444509738:1275219097:89525451029171 71026645715232:2775884165:71028164815013 53307219306142:11080108575:53296680397953 75836777737101:54066430376:75822122592805 67701008090628:69087189972:67631967313360 13459958206534:841197721654:14286123272304 72694592800194:793932832403:73278004927313 49530169949730:815229783593:50242180624395 44374325567059:4392783002515:47989643847104 60947099025977:9806425061578:69842179422963 11551899245727:8188868821274:15338339556741 81736129085375:41094934378286:122279933986961 59403642345507:35162006883486:46163246847165 29662956170547:18924507852671:12971965563468 73458354046842:797761539146763:729251325231985 99019414918781:893844703492051:975252603822510 29207161550183:549335372973665:537722552447750 40573888272781:3744310530579178:3775211344757607 73985886212018:2972983694531684:3039752827589590 46384174540048:4271980218190477:4230337959538589 94905744484831:35835421243817009:35754403481966062 30034985937514:87228845235340146:87254482169194776 99164915967031:96645919382431650:96546755542303637 69118574219677:556413356819001542:556469281251582299 18600853412748:527955287906479501:527972716225426945 12304075713376:603078867080569095:603088965690329703 13614016322101:9489600793163618156:9489605331896175961 88047175237976:7774637541386435121:7774725554050939753 12068470536171:8605421973147947860:8605414929793885375 30427994089879:52193966659659563216:52193944001269754183 82951414259935:42716896480144325320:42716832097000380951 95754600725382:34893276282644447401:34893193915805203247 86989279533605:420952776550970189509:420952830348605881568 34572305925093:759676336480499840944:759676364306552927317 70856475814664:264277743263255141794:264277813561383106218 74972869763339:4799192735288032266384:4799192801395476638107 96982072163360:9072694639118366381150:9072694542411336280190 93184183422292:4101062066338074393359:4101062008338263586395 74536106676861:37393601876814810110953:37393601803928240490900 51848676720976:18895960137931347291248:18895960158956077460768 98415715901861:92171427513852380809497:92171427435227900471484 20871885671866:179793576868960436113580:179793576885197741661462 58334415093625:455644078382374655319437:455644078361458266448628 61318796831689:161115821208420650168472:161115821197719252228945 32747889147084:1261999154415029284333241:1261999154438429705099893 63489198956305:3785388357209698369926365:3785388357147514946677708 56900693159201:4087777533484889410227450:4087777533500557038428635 92724077175590:413:92724077175483 96472601661376:663:96472601660759 55297995376250:729:55297995375779 60740938440464:6472:60740938434136 19369422602513:8375:19369422610854 73034539757008:1703:73034539756407 83458289547833:70813:83458289479332 74957295019488:92215:74957294931415 83591781848627:66598:83591781913109 57711026999452:117588:57711026920392 22547213655907:918245:22547213524358 34256201335515:955223:34256201503116 25883942105252:4298010:25883946329534 43396664410292:6273429:43396661770529 18941139082920:3100170:18941140439202 88533786755703:93603441:88533863580678 81044440805378:20293626:81044425365496 40716258807582:13519784:40716271797430 92721275263346:165826389:92721151645223 23668412028514:940434025:23667472299019 19480317196527:810466290:19480582046493 32850858717349:9894526571:32860291583694 14979035247772:3472767187:14978076445775 46868743392946:6241854342:46871225969972 67143659274257:51194666082:67185947270259 40843477472778:24988918340:40820669674574 54114958015348:99697895824:54016338580196 19831578990160:408115304397:20162248556957 93533800133758:685776675592:94068970870646 51560399995005:149098179630:51429576420435 28915672945692:3363941628453:27776876916281 32019430858888:7898510995143:28793884134991 58626289757233:3591831269384:59466892401721 66851910618607:97258378981316:110748269535787 25877192983476:59218020111038:37738903032074 95217841538103:28489066857345:87344621995958 37517297987250:100693892943310:133640902173564 49855767310326:239035227934277:268492541878707 37103169966003:205109110731914:170653796498233 15224055362633:9384390065724947:9388545980787290 14966405551144:2498948310578202:2512775399366706 90910350213041:7667706800666783:7721954638890798 33388431593385:47504589160738985:47529077883191040 87930365318982:88132670056814039:88193797609439889 51797733549594:14434562545271793:14468698550953451 55341159003324:161917043329788969:161862286961498261 57791511354788:224753626816838052:224696970334479360 32746184828702:942313578188412197:942335327086080571 36871225454168:3933585419165726104:3933549653903858624 22545635590939:2534522871372716941:2534536609640994966 62760461493217:7335676601908976204:7335719566496938413 36970462947445:11776606114676300727:11776571362665493442 30326921511195:89293339397491505508:89293345354457938047 14872256621100:16025554140323707521:16025559081324007597 96953701898612:641187039196871959766:641186959846125256098 65845355825731:618602063683839813831:618602122106954850948 66358265910243:301104259748154076820:301104202341952945527 97034519905065:1647999087929481249094:1647999043671520395887 95990142365887:4536762067241112887333:4536762147183635501210 53981441426133:7525414787001746981539:7525414838711150706806 42868640129830:75679176791314551820240:75679176820473587133686 79986060146698:41090426466297300764123:41090426527179344084433 67719239343993:89268043160155917950554:89268043224542128374051 29706814231622:819609925358246186071709:819609925332938763150043 72944086357859:213152398717863208313765:213152398790617510540486 22334493757837:274998663822041909966879:274998663799845073398162 36216852570504:4258543821228446785321004:4258543821194155302869412 58156380466682:2714305499273599839932116:2714305499216547278922542 89707592373716:3943466275388879539274191:3943466275302659629863963 52603290384167:621:52603290383690 24607543183537:122:24607543183563 78538246046422:407:78538246046529 39867111915972:2504:39867111917580 30389855079900:7955:30389855081167 67928570468736:5385:67928570465417 98273353420295:74622:98273353493881 92153458292739:92848:92153458201267 25352449635789:11453:25352449628528 29175231709591:136002:29175231582933 55056375876493:993790:55056375554675 79747561576120:376685:79747561417173 91024175235134:1910754:91024177014748 43588357381335:2507534:43588359069657 38849535660807:8139381:38849534878066 91643016426063:18033801:91642998791878 82734713762761:32158309:82734707098028 34653573342577:41391201:34653601427728 52202271235349:899464844:52203117732761 66418278590373:879436644:66417400333505 84139842094994:787408525:84140481880351 56077644311914:6068721971:56083442365529 46743868288974:4105121218:46744595661324 24206006840549:8893594116:24197651306209 66739587122944:39434320075:66770284445643 80270620844520:77651244533:80347589547037 16760264459910:42611503436:16731687614410 49319347469947:242499187475:49355486416232 50748799944213:756405378533:51230327413744 37320392606932:257978978199:37165492882243 26772144434808:4285290499061:30498011178381 94272721731494:5250324548494:89592945308712 87910753044519:2085040909119:85835578499864 26824832062341:64019881948698:37780390700447 39705363117215:51814617308305:12355141085198 12224580363215:77141042044609:84896700546318 98656285217390:500709870618576:456154202019262 94269542758259:276305268818138:192348029859753 84812967766788:952316196802498:896116645110982 33173354784217:9601992315409250:9573300827043515 94643702581446:6363120728370146:6418032090456868 30606870530400:3244371683732363:3269307934909163 95905005640151:37303875011182574:37384033767941689 42847904582924:34878572818271489:34849127363428365 45510442752427:67159859482998900:67185578396885471 78925162150335:119541736410173248:119615162873231103 51182638313977:789144523492134679:789172614165184238 23718527160906:652696642687219945:652685156294126243 43817369501176:2891158184641741419:2891120569430228883 13107349024127:8359893908402995931:8359882521478033316 11995396559226:2372067866709278928:2372075119377551786 93871394108533:88536194490445897187:88536241632494037398 36487842821008:34548182240703522481:34548218417815442721 33580535337328:12810628856701318073:12810596448788652745 78789574135445:953868907735036316215:953868974429963666594 47710913813725:778045250009576227648:778045297681298235293 29516748089584:452977743128201227508:452977719315346981892 66926560272255:5769841295082715879279:5769841316220325709840 77087486135008:6723854630197711342926:6723854566510528710574 25309712669142:5497511842018120372736:5497511856291901721558 25488537296152:89261683656138022656197:89261683672774593807837 12129786191738:66642578718096737323218:66642578730156629596072 97774988696864:86120521640484539384519:86120521595589236285415 61507446811478:811233461733057957956199:811233461682135458062641 74212343099638:963526379340154811679866:963526379272918571332748 92542690837564:460837287181773604238505:460837287089233200115861 53867464970057:8953538688786389735690556:8953538688804754729246325 95571254273547:8502087158632110636219109:8502087158546177640914158 65772595366646:2964485010968441415608731:2964485010996823098909549 975782529151292:638:975782529151810 765345784019440:796:765345784019692 624454047167092:363:624454047167263 480304458999651:1893:480304458997766 834120040045806:7617:834120040038703 793645352878404:4086:793645352881842 384969204292165:41187:384969204267686 286869660652593:39292:286869660683597 688573642118782:95356:688573642072578 790772319204459:309921:790772318965450 458278642497336:404778:458278642883090 126065095204302:284502:126065094920856 907047816359507:4683545:907047812208970 525964639469542:6238251:525964633231309 313237705732692:5706634:313237710643678 861292960809677:70062166:861292891411099 780446647788797:60506640:780446672512749 120516322696613:74030865:120516261380788 449306814450317:303663266:449307116012079 524548460473611:881326712:524547579221875 414213340796422:791940150:414213629418032 746224734068628:8726847275:746216008401087 629015483880936:5040668219:629020375641043 540068083335375:2302832988:540070377517459 217506468849901:53722641691:217560122498550 330903037498050:27447825584:330893843875442 952815710327540:88507462015:952727539016587 672255711801481:360403569530:672052111244275 324585070148846:481652150084:324654388130730 655276428041655:274376528410:655066476613549 575238302584181:1046909860756:576001723561697 127645403610629:9540258592526:137140474808587 687534688819603:7879188781836:693128815854239 474845111577523:11495236727751:463624803096692 669895885450718:95272858678776:624394739914790 714053252883813:53688752844565:767154600774256 376778393910678:767049878929754:1107265014529228 243026294967229:912877024603644:1094315946141249 741396236233462:518538756958411:973963109155389 665698725128934:7687429895851869:7057620454368699 794760192241641:1788161803168416:1276010555540809 232675336229608:7861979621523505:7667926250361561 396286478248262:67017954743310567:67395742730269089 283378111784440:75428146379491696:75145867802487944 533193001506779:73726074414648038:73194037944311101 641742302836885:929334206200065860:929974769394374609 769816351968409:647056104882748608:646392155924541529 800104381588665:961169661783547985:960415743869912296 515670638552303:3289772306819326115:3289398509825508428 345248827480809:2850645758911536333:2850423655439910436 716404290692279:4526580108874091066:4527013936117657229 167691502651122:46650181898606836394:46650015321384287320 463351687767128:15276869462824785911:15277321252175246255 353540673029944:60459029466712302619:60458818880342074147 381750240445838:206708140545363976820:206708341673860605946 842922824231931:419786603076315888672:419787107332261369819 766343290657432:795170328605684218663:795170811582599700927 410030623559700:1704836387470653864443:1704836224010919553519 622721140652614:4266808822873080448523:4266808283955891158093 444434576291612:5359017309114103341424:5359017718216096355948 974387368631488:39438057064283129817782:39438057888835572053622 291580460550319:30050432573176328779375:30050432844958315462336 246429809716042:75903298609741259427936:75903298785523948878634 420886802295287:355001973528711718159860:355001973188089801714691 358359643194306:766285141400909245145912:766285141184498545811706 614810481749956:311504305696133885613694:311504305163031944903098 135204062530132:1225296855771019954319128:1225296855864948170810700 386884114410411:4990424734397422116656000:4990424734619326602852395 109236585978836:4401459936894433370145905:4401459936785338988158885 356118796710378:438:356118796709980 633106818559114:906:633106818559744 780537193838288:662:780537193837638 154675067181343:6661:154675067175706 908776546601531:1702:908776546602141 740189906788125:9294:740189906795347 817990361568270:71963:817990361632021 510836003758589:36571:510836003729190 710381710484215:12870:710381710479537 764720533085588:187554:764720532996406 446750580932106:597791:446750580334869 689128000492154:811791:689127999730037 835448926436037:7323275:835448919508046 636239465268262:8481508:636239473585858 216181838461941:7054972:216181841304969 782818687088473:50802150:782818703792831 567995814864684:82014646:567995737052826 542407221060319:25477074:542407195663629 902907047097325:225240721:902906826085756 932476711491287:770455288:932476235702319 549709878256030:598386992:549710409451694 251159463687477:3058869518:251157487276091 874659593316000:5507693381:874656233119205 796380812635300:8238648171:796373649631183 284258309799285:90020694835:284348279600710 351097336184911:26477447002:351105291421461 624605600071095:11294660475:624599710329548 764329336647462:467930094616:764485796410174 300389590216177:548294806351:300494404413118 894913965218909:386222158661:894669766668056 633359487209385:8806205093021:642162672401204 948279522599256:5020857555506:944366847392618 543921612144459:8842206451545:535166395688978 550842248756646:33018933558859:539839361336301 703502285897421:15580777176568:688291282756405 160716638578286:80877345734208:241503784966190 204757828878856:832615812935165:650342276820981 572007055173464:593072316678487:21275885315599 657126748367167:887497491439472:407419035317839 380773628797016:9874403220744278:9656978090821646 414609005689104:8646391273245793:8953106137052529 555114982491447:5047296796925725:4528487285086762 888962550638644:64208701413870682:65080063154971758 298751916382946:13303695730388121:13031491603773051 662678247642348:45326717010225385:45971523897900037 667783987267443:513740631482810928:514381473070892355 848538849860149:140811825564691945:141652445813831644 305533165539360:758044573409998340:757739865206908452 450247407926779:2701722715894197851:2702136693367329696 917872559080018:3572894796215151148:3573107331257051262 180871277057703:3581405424467576942:3581225654855933641 564154647173038:29936685303310067884:29937249388958318338 739859481880895:16052130040462640921:16052588138681265702 839997306961853:43460342517624134343:43459979090562196858 617506800956538:928121234118962432238:928121849353675324564 199945320120166:169381737220016642330:169381619267778160252 196091709838301:689551929062669574120:689551803958185626677 525468245721159:2933514646652349027599:2933514264747684336968 458828630254136:3019537594543578529205:3019537771828478959501 895288951986914:2316847593707570826948:2316848413657888576550 676088102006166:14923983632929559104134:14923984163005750535952 531640894023172:17578634762146019548712:17578635222301125572652 660756444315058:16933171662712374578884:16933171161420013581174 405256805018059:439065204805645251824404:439065204963338467484383 473733133364209:518336367888426330643510:518336368268468942518215 615843190943862:808498964440677845447618:808498963930466439136180 868309381099635:4189058079458855690268807:4189058080316925862363380 725433093945415:6706345747664312631740278:6706345748350154564812593 960814205783082:5758412646641344030946606:5758412646826984917563652 468020832032623:167:468020832032712 732122370007961:764:732122370007397 520909974629777:424:520909974629433 262756032629981:3483:262756032627014 548943379528842:7211:548943379521697 874153025583817:5412:874153025581037 849117108975141:86958:849117108921739 442068441276108:55515:442068441253399 558854156458844:77459:558854156531151 354674979205503:301034:354674978973333 651420524054585:122112:651420523975993 880405912188390:182218:880405912072748 577721123858864:5037791:577721118832495 397968097987652:2031032:397968096244220 431086861842514:1423741:431086862713135 958840298751337:45978523:958840272770802 396659988156722:16327349:396659981415303 570539726344848:61500505:570539732270793 110855331814627:692371810:110856023596417 450152824150997:723457701:450153176796528 789840598103174:657889762:789841255198052 593704394772382:3761338959:593703860975057 504899956067282:5331882254:504903793990364 505583581961982:5061208876:505579733087698 636096926031286:46034567571:636120837544997 457754568249066:57986404629:457803956035583 209179114526534:90730058674:209088960922868 640254546081258:592939601835:640761561135681 208945152905791:224355540854:209168820342089 861816803313475:807457771956:861387305228023 335049243557072:6999805152086:341830000621446 583420461518976:1563724611912:584881064972744 381845019883606:6798791676545:384175418174167 269521439516293:10910820765556:277955354946033 805201639102260:74987538018478:730492202330010 713241411375374:29411542515598:723545701084800 599131957336195:757366185627089:158580007769426 640053299884273:722984932979532:237138189222845 535680555276473:352174036161609:184160436538608 619879754777536:7678510975847349:7164794239502453 763942246013367:5158564541892416:4755812138475255 659720255083508:2321296933985215:2928231801915467 466143075173113:97841937266069346:97457744449654171 627569587232707:98295068567221757:98811037587778110 519638644020239:26134429870143955:26179079465659868 253973921742266:253490003142741783:253456312993362605 596568538252509:962968847099535019:963552080401537654 802066704526753:683557827838802754:684165890702743267 948933008620047:9944465690206391817:9944662487442600966 724260007255835:8321856346551220792:8322580593673430307 663397897859182:7738609751732328744:7739237816276281670 761034976216806:79081780117021938315:79081054610125689965 725082835492703:95848221049603767979:95848943521073963508 689527795738830:88234043240897244780:88233461534004676258 470232282967375:287116010215217997542:287116106577168206761 111784987905450:887751963148587915145:887752073483210627619 173915416110323:278090539376509300384:278090677728905038419 912755161199589:1480555345613392108346:1480555567837967067359 326459916819847:3062853195645829559166:3062853450280769203961 308159883471404:6616498308651647678283:6616498599218799566183 829154196792597:40031368752521683770072:40031368279854076444621 965378660031242:16278849735311742233842:16278850630313064970232 910953346879325:51537221095385050530535:51537220827659448847802 962526118649915:403614950745789213620487:403614951472740087699772 791116137733477:155441106410838275157054:155441106748954941714779 112208357453864:744630787125316896313728:744630787233049619931560 751305380346754:6205201825714834985606751:6205201826089498239985117 584453383100966:4878277137921995923895036:4878277138506329047705818 307280871366048:6412636447223264457317614:6412636446930140000928078 9591859866820787:596:9591859866821351 4083076540002192:719:4083076540001631 8592488085108581:471:8592488085108402 7807578831869515:5440:7807578831864587 2699912039975500:2310:2699912039973706 7278155629433812:7778:7278155629432246 7774188573217074:28062:7774188573211820 6516606920895850:14278:6516606920891052 4962801442921879:70968:4962801442982063 3425957123546950:931187:3425957122894389 3498800300983210:704679:3498800301622029 3413109637921548:297405:3413109637690033 6698288718746197:4374015:6698288722849706 5939722276780528:6822580:5939722274153284 6412886364824081:1937378:6412886366694899 1819127969620430:60907690:1819128026317156 2180774946866987:80887833:2180774893274930 4499948938545976:94969331:4499948977805003 5713234588552649:798614231:5713235184627486 4579125250454969:653534990:4579124666127031 7319691880541261:579572393:7319692392546020 4975047310999829:6644517959:4975045231103314 6198343600928982:3574830662:6198344356785808 9396526869554762:8134824420:9396523057100718 2357642230827598:40986725934:2357674269394016 7818060532192676:72554940971:7817995628191631 4429763985199616:44803697692:4429737502244380 5939014279863617:120146162120:5939130122071177 6327686359975081:664707307591:6327026014756078 5495174098844556:114070248788:5495146032277208 8954420557319280:3971350853861:8950450498434197 9988806626427767:4935097518378:9984361425193565 1335026162258083:3326788327047:1333937723115044 8068959210660194:97965548283265:8149260591809763 4227570241977895:24692873138044:4242494194168155 4182544550478447:89053613876417:4095676035442350 7798582984363896:719751788507267:7101029907103739 4507155451004116:743453048964163:5250242135900311 2681977963854720:483864316428483:2321261638712131 1838183145366264:9895191538694781:10590833385183365 1087630439737509:9287732434331129:9889097951055196 6763362603681669:4153742016818045:6411185664322808 6742985099960742:60044231501687632:54787962703170294 2091586806197461:34494614347784699:35433835638590766 2313980519591093:70565510429514641:68269195123013412 3150362509082501:866372393779962516:868851847827414289 8186790310332917:154175518003911938:161751383574516983 9723462682454581:555080564311044132:546766950480943633 5980235940881214:3132764350731175179:3129137980631623221 5453409731899143:9177907429907648643:9173029757350199172 1403391532156054:4335745234218345863:4336778635524186385 6924698916237206:81084929308614410872:81091551435369967086 5498822658399156:77635755109951417972:77640389439139329472 8506789054721457:79768876030705715690:79776133765885846619 1799045677739074:422044109010850643957:422045696878873613239 5925392807701550:978345822751139310177:978349487470716192335 2482431816536812:831242800435083168115:831240496141349411743 4477446133266010:4145169643671562569815:4145169124743316733453 3794177929195319:7754890556361617755060:7754889141595642782851 7026518504942470:7734866689160725276244:7734864320180494831058 5475061220785003:66418823118191717531765:66418818804232196750110 6063167818769122:67741229512377906504157:67741235294042697040703 1162890028902394:54995532836321819804715:54995531744111218336721 1146287939001393:175284882924657975550535:175284884069775389163126 8725213092994559:563896489273043482120918:563896487376973351505705 4321763292391096:595051582956140797174655:595051581454716545893831 7280885247985537:1459834317953444294696327:1459834325205981053540870 7536337245796802:4886770511975018677202702:4886770504865311280961228 9456538519786617:7611948220755155379181580:7611948212160646323670133 4076166169790057:785:4076166169789816 2233768474376161:428:2233768474375757 2092322451057119:431:2092322451056752 2967278097830466:9052:2967278097838366 8747813484007958:1194:8747813484009148 9916244990514708:6332:9916244990512808 4273034204246284:82615:4273034204165051 9440220418036257:68959:9440220418105214 3909685018177869:29493:3909685018182264 9676352902458486:922713:9676352902330415 6450162621722490:644884:6450162621118574 4236847051770026:126489:4236847051761331 7398873825677121:4897684:7398873829258453 8800684385339790:9396471:8800684377827705 8788879436497264:8774279:8788879428330487 4911494028753440:37835428:4911494058158212 2670206683547895:91030411:2670206765009788 3249676661941849:55937806:3249676614921559 7768889473400800:273682599:7768889736589127 3999670391683544:583409361:3999670949652233 6985034113141368:179202661:6985034022035485 6371750907702642:2138413373:6371749910737999 4073198901297920:4677645836:4073194836440332 3373095146335310:8458252461:3373087225224419 2940512921888404:57224313343:2940561556184939 5805279527995776:49773619286:5805238567805398 3513533413563559:34150444561:3513548672332470 6875117562785623:453556362897:6874746214855110 2120309554941181:389469355041:2120080279777500 2240788909880300:812051953616:2239985447863356 8891042020733556:8638723098638:8885704651291258 2605463712457247:4693174749001:2610118131574102 4845971147006715:3721447860107:4842253023233392 8872058483692359:67499017270590:8928535866156665 4813987544503662:35589671785204:4848938825123738 2325730575271129:95197759820950:2275618299318351 7635972977760037:569243706031721:7077942361975116 3414337584619298:297865229324336:3711651915271954 5352536514742627:205279866746360:5557661711121563 3291956844065257:3525507622998029:2027956248240612 6587794945556986:1652688559935412:5269461068107342 9598031069683104:3509803579952485:13055043056881861 7365302192647572:28314268825510137:35673763809873261 6522230779377999:63947801824558641:68710409713223550 5253240502253807:57394084400319385:61166204490724214 9645303646640421:189797099013943615:180160679561127962 5531872299312629:608644071416196741:604029612724259696 7255789815888836:707502766540557439:704893737897818043 6963466223115133:2370303670339948270:2377266861143790995 8760544256780756:2708190591862599219:2705101337455003623 9102396379813285:3581963919546686258:3573016554306686615 8176737138300814:65539560561856334585:65542652999101914487 2342350142341370:58372648565243504897:58374845572617169403 3576837731378314:53003019769215275143:53006304064710947853 8511300317458482:478321122340558414913:478324996970171241587 7050466007405188:641201855643084738539:641199880561422900591 3519370874867346:400007742386220075956:400006475924409730342 9223883149587812:9652779685282624595132:9652770743034643272152 9152749001434961:1824241119302136351094:1824232257099086769703 9567964410422243:7650494678635001788052:7650485616465548514679 3822723412459893:78850427872326025025312:78850430841483740976725 9905219824260976:30555309491966717180888:30555318727098459466920 6617671243917119:95810223784632177664775:95810218856227576202296 2796042705819900:921929492155119692151137:921929489510159046025629 8102568582579567:185296676539124973853263:185296673241490991505184 3695299733539082:460026791748467497956561:460026794808661816393179 4619888762470215:5915438315379258242941935:5915438310921556455750824 8984826829425467:8313101417328877299225198:8313101409122547703454037 7918805195693027:6298248750913758328790353:6298248745321725920020146 8867628083360140:733:8867628083360593 7656967363150401:828:7656967363150205 6271739506916190:178:6271739506916332 7262882548235024:6832:7262882548228512 9366871148446108:2549:9366871148447849 7490149415945546:8963:7490149415953993 7324400477821207:32257:7324400477808406 7469874671875700:77401:7469874671802413 2536150404787168:63440:2536150404799536 9590027658633706:786770:9590027658371256 8285749908987090:921801:8285749909376027 8161908540229497:118618:8161908540246051 5071881978578382:8016147:5071881981351133 5333361474874941:2668535:5333361472281034 8546759400041284:4717985:8546759404082917 8897074449892121:35304961:8897074418087192 7674400775342576:30207201:7674400805020945 9928038080259411:15616367:9928038095088700 9097780744460957:737049123:9097780356899006 5247133054362951:973840250:5247133221452349 7610311711652134:569473518:7610312274641096 8517475249108046:6843719374:8517472746596992 5980095618999508:7169684835:5980089800937911 9213021321822672:5463805654:9213018023464710 4623012160776584:16053680724:4623005514535900 9436625894932715:29387808779:9436599246840032 9427105359702326:22776705488:9427085183506662 4196919203584828:848502757293:4197758914481297 8720452257073602:652438174224:8720928599454674 3523338657765697:203618821526:3523223375199447 1645831369272995:3064048894192:1647165552979539 3773326629724501:2962965904692:3770654061321313 9827390385687617:6895437047770:9833692043242395 1275723916058221:79952570684570:1338058243443447 3348708411961642:59397395840026:3328927815961904 9227415430425273:79653065994542:9148180454759319 5350878685446423:716566603881150:4935906048449449 7374310277990288:724539196150059:6931405153818299 9905823113773315:771472867886265:9443626683270586 6699247151502757:5589779299061357:1151403150285768 1388795870475820:3659713522483473:2796501675456317 6966097223854512:3798915526583003:6122867058133867 2192298193954901:60044646977027301:59280908123706544 9311026051802490:48710076252231466:39434922304270928 7168597269838437:53751004440758916:47148767657160929 3480103468153632:639230594340848546:635955274980505730 8188303248658934:319925070290355426:319066316706485524 2592067937482811:590907140553049699:592900173543095896 2530114190282878:1366182446344777958:1368349446131982488 1632580026671711:7043305209407567947:7042244535433026068 5325481624248854:4976405278022711125:4980230516282529091 1736537181967345:39290194470741976911:39290780755532805310 9724261353343089:31914529863534396367:31905087420962114494 7551562364086207:18349030800816976365:18356124871849694802 3363728776103537:272506986178228697359:272504016720009674622 5485846911526039:125927582162896085177:125923981025086063662 8185066138483761:600881030385538289723:600886963651304516618 3533419621966591:9670657697007759618149:9670658697152050074266 7792910968938552:1317311716785518821227:1317304286713722822483 4693624861550404:1338762514106821270974:1338766845965494303482 6573351259582525:18294394563244900287189:18294391402825582293736 4121742364980341:69719459078364004397205:69719457218324574602464 6099848325810295:70948436749449826466440:70948432904198282294015 9502146802158925:265326538773110600777709:265326529416118665425568 5818209765905410:214530204170418305417392:214530207431159528789170 3830254623626338:109851301223346555551886:109851298243014494131436 7849614258315115:5794599226331041313216910:5794599219260230661031653 2838636001186337:1991637730865652357735930:1991637733701881565968347 4084957351381163:2238958304111891968593808:2238958308196813362988859 35539359949716180:921:35539359949715789 42641499572711833:429:42641499572711476 27181708110205504:839:27181708110205191 41901742411702964:4003:41901742411705623 13757531273338755:5081:13757531273333850 77315492195459805:5088:77315492195463485 89551052954635828:30627:89551052954663319 44313394725726809:87926:44313394725682479 37739721642391174:67085:37739721642455179 59310969277319249:806939:59310969276553290 23945127074191303:122157:23945127074073322 84559331121709387:344999:84559331121496812 34016143610822384:4726176:34016143614485328 14418293169371070:3501389:14418293168659187 89744193259478474:3688145:89744193258969883 67880021586108087:10675432:67880021575776863 32396398331478756:10150453:32396398323704017 66266242609411919:66773416:66266242564986599 24774333112803079:471732036:24774333178204227 42250755832044028:983165244:42250755453071552 65455484139816615:684461765:65455484799109218 35721622557596993:3558186798:35721623295033967 37232642066066491:9759335803:37232651686775104 42877782429899656:8567960215:42877776563087647 78570519214151638:52476840130:78570502717628180 42645601846713860:84151086104:42645526906532380 90869293874968175:83311173030:90869375972928457 83911265326625541:646953098042:83910669947807807 25224843815016419:831317200058:25224021096667993 96037459170008059:718090545880:96037016528859427 63780707651561751:7668454287987:63787953484612452 56354547347451462:3974168494083:56354045890768453 68637011018426009:2045479675989:68637164562566860 37593043523754415:38487416205453:37627132750801186 94850335162501381:95386976397963:94768150941803406 48183817818713569:69367410817327:48151993081976014 82452541020887183:829070157001097:82784630307252486 73884049069154425:492332640473103:74242188676968566 82050243468546758:895771398103196:81257147569451610 66682758628735401:7730048581318900:69684769352073565 23900550028091259:4355664592862103:25772656750830828 39995142470935204:6075554441039432:43772595203288300 60448893443427338:73881741314720139:130809996369808769 65679613530997378:83859130213315811:126305496063391329 14506324828729275:54082625400052715:68586094531458128 82519812407079694:670607824868483133:606667732050940723 80239812549237575:716062300941376711:644832170786916224 80380294623026363:279104601366471102:198727192972262661 50000805714052750:8452347461694496912:8502064148742956574 79085992055938007:6013618883324700952:5939213032441934543 52471633723587015:3471430681960992969:3501150121549998350 63535178243347192:30243853382140105534:30216471249505911238 48917523248918413:50146642921864450184:50098429519061679877 90961217072875387:57504339571628983630:57595230058563568181 14462164855279411:905918003211990589979:905912621381294501160 34135797801511467:312729821613517190188:312695835381711330823 31211256518993690:910985437730513738321:910959016984980700491 60677128663573741:1614664396217443717716:1614607976454733641401 36786836126790879:2460322129734012835247:2460286821278633058672 16593656456270246:6901966360217472056086:6901981686630873328304 56743363430768142:79033526633175447726631:79033510739971823481897 75049404637915256:81757024218979455246785:81757098140274961975737 46459638898412627:18446841574542103467720:18446888024753529952923 38649694110302462:348697866868387844143082:348697904805460977153812 35393059523055238:145965854140422892044056:145965868906021499367838 36833268491065692:930650079252028184241907:930650114625140929937327 79238867761171797:6620964136807534922208503:6620964057569354902772130 88947259011223081:3543394302512227331786349:3543394357680289574094916 90390909589548608:4244601017688937348866827:4244601072051041027247435 25478894167028959:832:25478894167029663 67030287573751141:564:67030287573751633 90709777963194472:499:90709777963194779 65225436064373197:4724:65225436064369593 11698910506170529:8614:11698910506162439 23111045709013518:5790:23111045709018256 47166890408372867:59515:47166890408379128 47597709295321009:18214:47597709295302807 90007210221911511:13737:90007210221897854 90076230171027040:414521:90076230170883417 94100251158729234:853251:94100251158927121 23267941831016218:364805:23267941830651423 77502689474846254:4400942:77502689470724352 97291431836011158:4334943:97291431831695305 46018818991393945:7541284:46018818983861949 88259050109896112:44604489:88259050087324153 16399269626331126:86707443:16399269708444421 32856127375660267:84637691:32856127458812688 54076468066976244:791973509:54076468420120433 85866192546322267:468996895:85866192983819332 80612544022788261:850854501:80612544785169088 84567213787951887:1945308576:84567213000539823 70571428053013426:4939434031:70571424255679389 92317110290996639:7287141442:92317115965319645 56511140410423173:64613617078:56511162007058995 11620616692083031:93371745782:11620695836683425 50964920088788362:21988677647:50964933332264325 27497547648459451:360297027202:27497189503120441 98054780917460279:629050553191:98055407817760336 54804065663967212:998267599821:54805060706067489 23069691635362522:1346527768726:23068830449261132 84581201452577885:1401831839512:84582551644136261 19526594231624725:9607472940054:19518433424728067 77039985644968461:32364045228432:77034095983838109 95927881591973563:21989997749672:95945693593158419 25986829968208012:55872028030536:26001469504603844 90160430044300615:236445737833096:90220861040105423 97766147254330502:435621062497192:97630014279317294 15106196030661196:945652332636138:15471303528973734 19843112158666593:3656392532867074:20972414047364963 37228511948709517:7151327392746143:44239100774110226 52620572089688218:9541879681093078:43651059770010956 60492696239654338:75249292165271105:134473692074904451 62932963725436013:32161621342102932:48932530408866297 38043873323990296:71754729429300185:34274218418720449 44458072207645936:472176174215833418:436976548807736250 23785428814085802:822090140487633793:809563918586803499 99613195021840064:666232617463770557:603212580848337789 29639695113498781:5076598975802321227:5051630283115370966 81777997037860205:3787139348940003947:3867492068315852550 55874570183607445:8803082964894006265:8857547961077940076 59834645508833075:45757075864403335454:45816624628221404717 65863588288741326:11353002500769427802:11341199700447366804 90507317861082526:65704935796572884680:65615011229074320214 60579135837488815:468774037709331103620:468760782164920580395 34207054765844584:254384240029872430199:254377901489423217695 79003837500026981:269243998379032730095:269322711928281016714 66510990015760661:5057473583336203350378:5057463532268325271679 18247372108744706:8781781696006930862304:8781799484599206205666 20994486648313182:7725414862478510789247:7725430213618556733217 72183922174541804:82399908424611480324338:82399980461748698806046 91475018673054320:53661529298235371028381:53661440541281383063021 59623839659543948:65444028900193209376067:65444043199961124442319 36575618799896857:194788556652496585869388:194788592275250920014165 97071871937229148:217569253336075994077850:217569165601257085152198 53602088424891676:345408424821607427725573:345408396156448333839385 11216438842088494:1395718858590187312548385:1395718851492606009759247 99797137965078962:1017143441106015920824501:1017143504584072777824519 42781993092518917:7327162289554092872097914:7327162320580446909297791 92530494580210683:942:92530494580209749 36242916696669748:785:36242916696669477 83990309053803806:222:83990309053803968 43416784623052710:7150:43416784623057992 36987212165476570:9470:36987212165469220 21638802184404188:5921:21638802184399869 58217257144105610:28772:58217257144109806 58249214453650013:83321:58249214453733156 10979070602330872:93788:10979070602259620 99011104156749154:457928:99011104156676522 43505686442623735:916707:43505686441803284 60217832091858298:641779:60217832091385737 82360517595667553:1215468:82360517596551053 83750580229186445:2529193:83750580231451684 88143485426507089:2833402:88143485428278955 53486038583359485:55511514:53486038571236903 50874822738524095:98501780:50874822792065835 51011353999789337:52262633:51011353983728624 19855650673563723:397134124:19855650897351015 59519653493628217:392461556:59519653243789773 40874356016324295:801759566:40874356323090313 71901480732373013:6202560589:71901486880333912 40930879810944514:6764148565:40930877342288215 54361003760734849:8649541511:54360995145405702 83501778025112382:90975386984:83501833296993878 47779572547079651:94576961653:47779632724419990 35629554433980924:26466210946:35629546489818494 46551012696004225:768687857282:46550387900270595 73167892468743758:389247716106:73167644968678724 23458223021126305:543058745415:23458490126084838 52632612198344583:8699401503647:52630312434426904 95542697490340293:8406840944432:95534600894283509 62382758997969264:8930610858143:62391610147439087 38222740852853237:26527769885882:38231398530463055 29258824461506575:99585972594914:29176830675628269 10754185426294819:82350991291589:10834837757488358 41464770149002519:886746771511133:40648398566521418 40999544188216486:630335917925529:41541300690911295 29305880025977578:780848910591188:30077859535468094 88609716315797008:5974339901549078:85559254022347782 20416876198429910:1355773696270447:21488974517560505 67425520728537689:1929542086655110:65673622923413215 12031246804832298:34163333173297692:23609831070011958 18555650742233267:28221917045381588:10607998113149287 34070061539641520:24340435575226866:13356820339362114 99928609123973136:660821074605181589:596922450060817029 97599241975964558:412675497041003023:351460901006614913 35724741326263583:842642105058278021:850971358823772058 53674870027168215:5516682619220840495:5490310843686943224 10800849655744234:5160866061303397299:5168244536968445273 13958068638068951:1722760799385128381:1718667635597360490 36870095174649854:27459787608266270603:27496233228194947189 81690757688517134:64639141616669983826:64576663829325047388 97445507003333764:46037907523617318441:46098197989513910957 37239360877656834:106681171158251449808:106716147724064904914 43175655752676186:309838796516495178063:309809905733796268565 39947167008101241:101452107262249284173:101413078634741047604 10791573606078192:2172106501961505159413:2172117112940215021061 86541774835216847:2805775246048344681412:2805690615844268726795 47910525898389061:9654566926685717638888:9654613601132370942125 39080638646447947:98623354386776625190625:98623316894124828719530 66081801394748658:92307140470282487695557:92307075663951902143543 71185563790850317:70519472649059571989960:70519505549348148757701 73298071537084071:424326806566415150643906:424326735520315379031141 56048933633382516:223321341771542387481282:223321397187157323023030 73231489503084213:453081540975913929992113:453081467751045727705348 69966986994528780:2191537929170744340665896:2191537949276935625401380 95242402515736646:2111119126374721342245507:2111119041279029830013637 46241038718762355:4615772103665219716729595:4615772077701804278101896 695545287824481032:335:695545287824480839 775432785726777942:149:775432785726778051 977321490698823810:197:977321490698823751 471004490831406442:8626:471004490831398104 432535379443376920:6757:432535379443382653 174508065084088242:7461:174508065084080791 231227287540411623:89416:231227287540363695 773863918597556817:92983:773863918597480806 405285007785947570:51814:405285007785966548 164994212659042014:735085:164994212658586035 616743299923610914:224920:616743299923829690 684848783912130825:513858:684848783912537675 343133855370172057:9254544:343133855360933897 360343829932780593:1986149:360343829934236244 165093164507506380:9293757:165093164516731249 598275547746474918:16567119:598275547755696361 397467598631572326:38628348:397467598601910426 258623916673261177:45717186:258623916627675323 868491739021268951:526912382:868491738670521513 360696243958776059:361607755:360696244168209072 483954654676204867:304608778:483954654375889737 707821689374198928:6782136280:707821683130000200 502992909031298508:1850049557:502992908658168281 293743827771133377:4203353043:293743827947691538 311524859902402517:91700929955:311524771179444854 268964547636024875:88081020996:268964459556204143 603642183664610960:26362122181:603642157404463445 575016246647970576:759806592701:575016587695185325 838122432252573288:105777403259:838122469291221779 342306503544039491:983170261316:342305558005532935 213048262539603889:6023516507397:213044939651556020 770728268493445636:2611746723364:770730329942723616 247251010881694230:8526391759125:247256788476951299 529398231956260879:33320520972172:529404596983562115 818337236456070193:68089116896875:818367107037164122 261908309662250394:43712453164725:261872856703044399 534039981884706313:790103751283913:534666188877617856 694898384187793176:790269698870729:695252920847569617 284625112306610662:831355033693590:284224945289419888 369454847571235832:3464389094960229:372919082583457693 235697454042422009:5303228075842214:240813765123506271 928210928075694783:7301705211299943:934596116791012056 794806804230835650:32306186614065903:825705598473717549 952446176057693406:75313473927754852:881674136401387706 510852113841702439:29973819981253188:539469116877147235 106425363633267278:630299521847820942:704073777165983936 883807018762700724:850295490790656631:544710100836191683 355166585343667181:899173330252623005:619050616899569520 966073696233555262:5856755460516381864:6642614729886990742 913609489903574851:6144611935363093894:6479484705330793157 871996628033851134:2605769908630618549:2895948413610708811 160389702987314318:49098952293610178529:49241044875416974191 861852224317315200:44643987162664631439:43845541575040508943 346340321285557140:10377535009462982166:10721412323465387394 244510402516375258:798769366412013770156:798849194985442165622 632815000397315408:718394236003942437453:718950477973639720733 666136691236176799:412946124820022709655:413608847526964678152 690663215175775491:7041451873008203078255:7041924036804367298412 712060561819165816:8456665459134956230138:8455971804948926116226 573973445168661741:2630511697994479558322:2630848035589113698911 232364707453503115:18265696559741956142224:18265469547938213311003 730602615060708056:82263670822998811300346:82264401088887428049698 149745729596159100:54189096946595438187894:54189246690671436177674 821640467169398228:190315224504896866731799:190315719067826259495619 679864956241264228:836493088243388493590118:836493621563224854679554 612071878294569134:871208888481573008025770:871209488168274228062212 296451533803805331:2529793542973653213587364:2529793823590017028324663 326605522597823078:4715704038401569556010122:4715703788393679261783788 776961251358935678:2497080183353533788863580:2497079694622660203001378 630377663738416797:595:630377663738416334 142569441680281893:116:142569441680281937 992182220521955823:327:992182220521955496 416338401033612713:1673:416338401033612064 630403903837814534:4754:630403903837810068 223792063406695561:4245:223792063406699548 623376308822385141:69161:623376308822454236 232882612535416382:63490:232882612535373372 531666595691835503:58992:531666595691877919 560995148289971149:391080:560995148290286693 817687971021075520:524353:817687971021599745 890576866868923259:321093:890576866868718910 604521796159961643:9155415:604521796168042876 216086863976312330:8053968:216086863970388698 782723957671062105:1365891:782723957672328666 186482057522051125:25756207:186482057497344538 447255486845860959:12649406:447255486850121697 322031503552738318:23794643:322031503537465309 114688607144351759:354996157:114688606961358770 960666462016221652:157341398:960666462173488898 772005018855853227:677285714:772005018456179705 705407172580934217:7524003315:705407180098252730 210524811553797310:2578853043:210524814096979981 393765792125849710:3469668560:393765789008814270 915312915823218433:81294945609:915312840166220360 686731433152702620:79684896250:686731370801556838 520736433110379195:33391796412:520736408385325575 563961421924123305:792394413761:563960768113734760 309747975926603676:849984217789:309748787155418401 182399934253703772:337597172334:182399669746477106 622184820067488686:1047813194654:622184217522720816 813335715546997631:8310239788591:813334077560249680 385518203914358765:8217747837818:385521465043442839 879139460029999850:47202181700720:879185166857680538 898049859504937429:53740183730566:898102497492475987 149991478680713393:85975569140925:149936299948340236 363088280487416989:492824146548094:362595736056906211 598942825165565323:612266809914651:598402095371344016 619377338059110845:246047662191350:619429319486212939 664955433105272149:1859758053556797:665686128809095016 939161279062762279:8352739215409811:942728900679590324 945574332658097040:5654133983424158:939929334104732942 284360668949548876:70675110718173299:218800778381754175 570916556692210325:95480067707101436:486242562303631977 522370414859607068:33021555673097289:525379580520970325 723587640701702700:323131029883379091:1040699668653772735 712834656536050828:661099299860080553:56520500033116965 421647060203127545:694447001846814189:899266482898523924 767981962363922819:7817474993277183580:7409876663448817631 151150865634841191:7223616023850335339:7361008697629437452 585292501214208117:6696196730702656284:6121178178078331753 532513389207075637:17116153127298917849:16927646227338911468 983487725187122232:79406397127488455572:78424062790542034860 276574853058926090:44147730443365660005:44349946870823396207 368771876722449174:666120071145869458146:665910059954520760820 234783736964914841:163976568186297036636:163778983126992138693 995328043430285437:746308863852250845047:746574561440052764426 696489246477519630:5368358123788474336437:5368958761407792107451 445504998738183344:1343883832779916182099:1344021826039867983587 786409852430590586:2600145440978489676436:2600895676829100650734 796062221196528664:92657317847012150838440:92657821143706704054448 832329172539890852:83739003384733280933189:83739828944968628947425 238605791120518335:44928310298712727634498:44928396591339895172861 858787205112930472:698187577514520858604941:698187998889323255305509 451380950798442587:947468797112176656188177:947468922192015022826314 780968857810198813:303720504032434495221716:303720048752119871147721 243522490016235301:3120290533152273319649650:3120290578441320339906135 845317054441263552:6250349060446236662178373:6250348505136655853368197 266323986870986214:9267898116834223800739008:9267897923703087463399718 603683417713505301:796:603683417713506057 170170248916568994:394:170170248916568616 480809294559652446:960:480809294559652254 390173346147252022:3215:390173346147253177 900752487539610368:1735:900752487539611079 113696590959997437:8181:113696590959996424 963429089760117646:33226:963429089760150084 993967259594764541:80932:993967259594689753 532463480239835900:65131:532463480239862935 322456331409248597:827441:322456331409027428 122233112396634675:563833:122233112397185098 344202794156311559:958502:344202794157007905 461396228157237440:4743293:461396228161931453 277673349112375557:2952936:277673349109426157 159009718063135789:8099084:159009718055430433 451198867203860910:97550753:451198867282470927 640987923463365558:33698394:640987923429937644 740273446656394956:95996328:740273446732369764 331879405793710865:381211883:331879406087882746 271587804535207850:352692639:271587804216270389 226066301604347411:824067691:226066302426314872 586268501281557978:9326700319:586268510545078981 448623294710972146:7299239719:448623300296831445 501268813364764159:9197780233:501268821352145142 290310490142376123:91417081065:290310441956045906 710719685057899162:71258462548:710719751408923598 542304042119422060:45776581385:542304069364372325 161528544803652384:236902377387:161528618225296523 307207028418204666:623191413899:307207651304179569 795122573595311565:195213933266:795122733911557919 162948771540606981:6077448291396:162952624061424705 112523714585870814:9716091077281:112532192514179967 393671175127597095:5834323643036:393674191926414011 516183411950403415:19351692887933:516167441555355690 336077404112824466:85476717045400:335994414460898826 340090212899525882:88886752632768:340143717331913530 337247577285204750:782122813568942:336894435806358688 305969156485474663:602305794685862:305442786599686849 678845828290625877:169762059692409:678676622807099436 156683328750608524:6760373825338787:158930207331294511 271510050577710101:5039978593093576:276266756024466397 365162283211154481:7159089625863902:362607999891239663 896291623159168416:31397457679535475:873645180750246099 272339308222413706:91162135681398965:181362599768195903 415517201505927458:49477041551473947:390671505545313337 845279851980513794:571916443909570191:888567529209388173 573818218360236131:360122010752781132:218976187022205743 310515254509617526:762858507378372881:1069917447014772839 657881127064401239:9766713901883774028:10280334670977409307 560636009417521005:3091786019658709434:3256098656844582615 526617110189021888:9204305213852363143:8715214784754594631 976046351586945620:65767380264165038850:66671067993746714966 655718921938828872:12932763804953335285:13430856459486211005 497460682899104421:82712610061410989318:82810339762582443939 115790236318407225:203226421671251797687:203332482320579067022 486899016454894294:320823518141608991242:320697892285688735964 962266185061629959:961938829066172229684:962171431923474098227 822559923407090041:3468970520927402517427:3468476900833872450250 868672593271271976:3377338878290398884084:3377623197793817985756 643705527965180622:4623242589034469902926:4623832166666919618688 540045231030325503:80314271222791042361239:80314752368827930851176 431586352974041610:87999067507805481863372:87999444890433930435270 713279283523990084:92877205272485124109704:92877898244819674220492 960415675989501234:868600049599243346273645:868600287142786360819807 463573197804287746:255446268429710685922493:255446148785966404621247 683307743315489807:133684846901581010859416:133685322990414078771607 891116975919644388:1455550695018433719347362:1455549847534477270193734 122873335778416347:4880873495249606469152902:4880873525798838425773661 207798373671018058:5576565850483137774984436:5576565986087568602366654 6288365154507828761:258:6288365154507829019 5010022146868937143:438:5010022146868936705 7188903961101967595:755:7188903961101967896 9257982745240389784:2608:9257982745240388264 7214659215583850049:9772:7214659215583840365 7614485327688353491:6675:7614485327688359104 9450297544640507010:46688:9450297544640535266 4697066733370812215:55552:4697066733370867255 9084349300561390455:51403:9084349300561372092 8211596902173087007:869882:8211596902172774629 6357886008632983359:828562:6357886008632155053 8276724845610531876:951392:8276724845611153476 9320586981847192308:6806523:9320586981849565455 6329621106311260819:9389566:6329621106318651245 2822276616396475115:8054883:2822276616398234248 9143636823503753467:77971498:9143636823446819025 7855084490273837278:57420791:7855084490218011433 3440390626957442822:51578129:3440390627008887319 2809855547402003727:503147241:2809855547467354086 5858398000196175863:721247822:5858397999489620409 3073713506033510680:764259396:3073713506663466332 4529391295185440521:5022825138:4529391299864065467 8378543107461729158:7552492170:8378543110650865932 6950079873461504113:7514337230:6950079879826139071 8667521080178614810:48320655854:8667521031862424564 9373916366495948649:30206427907:9373916353477975146 1330917663144155317:10727429478:1330917672495844819 4900944398236081225:236594405745:4900944170974018872 8755830510869419996:454545191481:8755830127325554149 5483889414437825424:847936628034:5483889678121782994 4697589546735338895:2260393982589:4697591701576187890 4861166293721272759:7722670931521:4861165185300525046 3985994462278828242:6974162088574:3986000747089752748 6099698303931118225:11693215754011:6099687989706053002 8010226603511302461:77936415711433:8010298751114766836 4242320374148827336:63624309771513:4242256961915651121 5479519529783840382:994112416910905:5478806899504627783 3282859942481718773:557805254999088:3282830469743808965 1164849370553923990:755539059640252:1164408635459616298 8651604263191848198:9956425253946787:8661534161509589157 1127878616318452220:2101423705339381:1126023721724744713 7649886423214192346:2878345344110322:7648206169332594728 1133080846518675710:52818284254522441:1081469697723565239 7968543590406840117:25454020013793740:7984770431497109241 4029895082353236301:78950694014302462:3960191315697476019 3879678301860052144:276485600283532500:3891432151056490596 3374262249943970613:837126978555296856:2688045546417196909 4576403576673219620:413470647916642490:4196888193614771358 9997435274641584780:4808395211161492098:14412890577542637582 6053344243037074481:4605818435711605905:7776287134140885152 6787454009782845476:1917192598084480955:4948011194632712095 3275614081623342919:98420024597593926969:100930025346824540798 2825486413049904366:37664177774133498600:40173286038214274566 8998071328144472447:11249474609566289084:16195432154976761283 3020434609801559021:570541029713647901431:567539779969528258842 6559332278897879473:636349079632205647782:629790542439233562135 6248249969327994475:320792190868008117455:317437613679718519460 6376810037620760973:1846681772167079041133:1849548829750249748960 2233078512526702860:1892995345731470448255:1890821394719672201075 8117335743221246432:8760637994834024937621:8754916858935635841397 1946063400880116263:93081501110175945502326:93080997188423069318225 2793828634722537723:90189349239498010653585:90186880242504141792106 6509952580743612587:79838482799629166717084:79843836489838995464247 7158348558914829578:281901283901275245171399:281894308265197900722125 2784569208677029553:661564963715812907981372:661567442035564329684109 4727096855058736465:256080218385482536643671:256084867795215011186950 2160701980983094565:6827262357039250781917865:6827264474904251735785356 1136657272013117414:3042893406010003788334553:3042893820891216328774207 2358049381116932985:4073357707659312213697608:4073355359376713849984817 8704406182746349571:857:8704406182746350426 3190460834393563202:183:3190460834393563381 5961449463332123804:921:5961449463332124421 9648122694965821399:8236:9648122694965813243 3799206903420863828:2493:3799206903420865769 3550418624300212354:4671:3550418624300217021 8159807542646585743:93306:8159807542646658549 2416842897062556124:26011:2416842897062532167 7285395778694111080:53631:7285395778694123031 3534533018277103977:310574:3534533018277344327 2798094190300032209:518519:2798094190300169638 4570447727904552406:665188:4570447727904150450 4131659679651352182:5592928:4131659679647996182 6483387888382730352:6282280:6483387888384916568 3388597474597383186:6889210:3388597474598892264 6416784777000296154:71064102:6416784777063482620 3962519263788168402:45302590:3962519263810369516 8203874066761753361:37886608:8203874066723879297 1444515101639496718:549367848:1444515101093028902 8485684415872318561:325316710:8485684416193022983 8805829428394321738:987213173:8805829427499387455 6053379286558651118:7467992178:6053379280604870300 5551536782355649896:4526432308:5551536786420348252 5634641018113110019:9314022981:5634641010208441926 6778919716645118668:55121741121:6778919765139597197 7540858422398797447:54214536624:7540858407354886967 7542342358422526712:56758280938:7542342336259733522 8489427367654385908:698526798448:8489427774022744708 1949525477321084412:419901978783:1949525884202890595 2932359204623609936:235404959993:2932359164843085993 5694234279628742719:2580278802457:5694231841234901030 3156752694513947060:7881147426488:3156758301735974668 5712470347071806631:7224952804506:5712467659234478141 8818719827025622620:49632424324383:8818698802841721667 4397224519065866465:53635528364828:4397242359781426173 6763487146805726463:46626943418107:6763441069689451012 5640657886583362228:670840000352640:5640132182205956916 9381052720983099353:766644315674181:9381711595709796764 3907392778621469983:721657375351594:3907797711032231477 7176814898061490515:3084806354884718:7175323536462209341 3802899511576662918:1641477680649012:3801961809586897074 8603114005825252342:5687029835296960:8606469914205494070 4726302046397329967:92301128139698708:4670472268807438395 3173834980269879426:30030120120762263:3197848366535790357 9346484063283483529:56089929887528007:9327558194428422094 3733397042151307588:814161032961786450:4072322724042324758 6885461023715497449:723055595154639982:6162856585817299335 9388967584075794422:758422741859684715:9856731635400119965 5828937744895071544:2905924179928057202:8698528252224000074 2223200549986714945:5562694869117001914:6046307478016239099 8056039604570237826:6394317694738110616:3995224238423225114 8201751731949763801:32290072913539673679:31259233786986091158 5144778683870869163:73471124573336795182:68956921202878287493 2103320581313764827:11245119003099954152:9313108453763180083 9932593688763431336:792203664571619571303:783689212876463050703 4327778329882425348:673872986003364450814:677616839133865929210 9790797865325639427:411297584849852549184:420544277833851666243 5766794982011826661:8273156410707488733027:8267391878531756787334 1881628114632758629:5504123272038110118662:5505998143104034018915 2710178424689256838:3869634399267624193638:3871540656760486488032 6866766777391905114:84790143051390070980078:84783890251905931379892 6164090774126369432:49586331528585086626142:49589540102398616368070 1203848277880195650:54849355819604327147060:54850460233548149156982 9384305799464373474:833220835490321321776814:833211744059552969988684 3037220637252060267:481693768543046716707426:481690734700248822470153 5212463515167272056:427038240569821482708580:427033064283127238967836 3319097662698967130:1581640037474222579435174:1581638742632442197481212 1979884145504214705:7841257680285431411955194:7841258186529037703580491 9949434715220946578:4714510646319465848099872:4714520297377441671609010 5012741565667235797:778:5012741565667235039 5606382834037284349:101:5606382834037284248 6352120731479278446:501:6352120731479278235 2470601406472212828:2211:2470601406472215039 1964722440417106864:6770:1964722440417100226 2351766643307749059:2445:2351766643307747150 2452066662801438995:95418:2452066662801345961 6083232831387281662:25902:6083232831387291088 7908472006929921070:24611:7908472006929929229 8934989926992051638:817348:8934989926991234418 7861410849942422891:364696:7861410849942787571 8964290080063262629:990463:8964290080062935898 6011748303766965975:7708494:6011748303772045721 3593788840514987998:9039590:3593788840506116408 8603623740908313493:3354381:8603623740905239704 8704552229955600695:60805117:8704552229912792778 1016482058387327353:27103445:1016482058393983404 7018699151095642113:55394645:7018699151075014996 1863867659505748140:708205713:1863867659940762685 9991267654122470041:355346810:9991267653907370979 1466964740718153657:623417404:1466964741207349125 7090312403101878177:9171461814:7090312412267962647 9595335864340102441:3580241967:9595335865100965126 6330548739264849288:1831654172:6330548739849156244 2613007978613399901:50950898892:2613007947674576273 5717678377219665443:94392807481:5717678327660273178 2664351984475953019:35359839674:2664352018123424449 1893412195320681271:621845473101:1893412679714583674 1337522168363745264:662582236226:1337522674028342194 2944189727330346523:793920826222:2944189007266794869 3246784246446112611:8420327793030:3246781667278626533 1318780203258983696:9888744685452:1318771176965442204 8467642199798536468:5163512830335:8467645833494413419 4196031142903091042:10515887119119:4196023926641415277 8675613416457083330:72548135598017:8675544305547374083 8426234045827775334:18622912221173:8426217136875943059 7102173750479109925:819469114045517:7101354350254705512 5812634926498576844:887110445004393:5812324649354825637 6688340685449238077:995823135067336:6688491791454771957 3872046292687792109:5396331788418094:3868432074978401219 1054981169755357202:3600911887796881:1056306088213613187 4993766682845408098:3493065043081049:4990275065779035195 5046364459558742401:71663765277065703:5113503596242856038 3157742048292009769:87683081333620907:3090893099651676034 9956683368996873294:33368693591973433:9969758338892839543 6776602940950671253:374486412050191178:6573325885469703391 1151823045265585231:883669295555407358:270062595188595121 2685707413699898848:579901878642107452:3263338444079516124 3473350500815605016:4819241665121182432:8273872425884938232 6479125854234694187:2001973466329033310:4765383314158254197 1721896677484019179:7332537009926125161:8225543691533618050 9108541350478910073:37682284355147433200:45295612828805371529 8422875910623553317:21174346534887181477:24300987078964947840 9201675041067717457:68768552236773217551:69600901722486097502 7901639193327034820:982689488506534444127:980570472772400373147 7905035959828485035:430765481246851700567:428285075157169308924 2815426765565695795:762762772993615122986:765424996615189644569 8252806787588219253:4688481367195291168095:4692046067506127555626 3347810087901966389:1352453830838833361388:1355792049817255543257 7534430214038688966:2276300207458502020406:2269998101183860873712 1265730410168150563:55894943132961099649423:55893903013610184899500 7666686196997092234:36826011254230831567090:36824165471314580169592 7420176604230182025:31733289292717683685494:31731075845197680434431 3180286639831123385:843007224310665290032287:843010386510680292565286 9183043210488280884:703439248409104632251925:703447836974655839105313 9240582920082843093:718961654180378118096723:718952445195231920579206 4435198104118117576:4594025630039543633028066:4594025381159781596948266 2943155498369657869:9543910917561006787238860:9543909167930509030471617 6036329688497373031:1720437532081613312253989:1720440829603668961910594 69697104228539514444:560:69697104228539513980 52989844019464896395:995:52989844019464895592 63864134129969877166:859:63864134129969878005 58259662277744540826:1649:58259662277744540395 15526324331847395516:3491:15526324331847394591 69393320661540905924:2740:69393320661540907376 73839545892367664763:60704:73839545892367657819 94273182644588071002:41340:94273182644588112166 33779463542997610236:95690:33779463542997523254 75517827864178094256:681201:75517827864177415233 44514652134966370595:130395:44514652134966353016 79288940724040897944:303371:79288940724040676499 91154111088354419635:7087235:91154111088351528752 18937141039322129370:7325588:18937141039320507470 94618249265797888486:9299529:94618249265805434799 33611633686696589178:34134535:33611633686729633149 10049702803039133170:64085633:10049702803061130099 63146934933536158357:28172788:63146934933560054625 30771302135312931547:684078480:30771302134637784907 76529960300157613836:118551561:76529960300108366597 36109787201792819821:572839656:36109787201291293829 35599803153222043944:6205286311:35599803158839996047 67791822340323576268:1214941908:67791822339378381592 34835317261154075756:7557463497:34835317253676399013 97457485042509698286:54877730504:97457485026362647078 12548259077139182809:89775845573:12548259127119119388 51600567456198150519:93820110820:51600567364528672403 67547470792481818043:757579058129:67547470448361524842 14401453082683188836:514554094024:14401452989205792684 83122477548361662441:839285154028:83122476728705982213 18989353474145725496:8408228670404:18989353037416531964 27005205295380257792:1447502774769:27005204543670640113 62105149683355307853:3575400260824:62105153254785362837 87102032727209048151:32780289896146:87102018776055846533 29909126136480524187:86301486558117:29909181092179921982 18181850400403171492:49989145698468:18181812265367799808 39480310708682100803:646573280871027:39479804924519666224 82854118469882856421:680350834882403:82854586026384045190 72720158829092313321:183849366961756:72719975160255162037 66895600425767333630:6255075882827729:66890508265968177455 86168732826672036065:4339580557378979:86170678063186787650 44908735525400383465:5683760482228118:44905339518457780351 11195000943141996703:12368985028542101:11202514467239753226 94852482388692757431:51149216640231354:94891409158932237325 68701113107724872956:15912217389203939:68694507322109406495 53022110527278498177:451042406080208598:52572220718890295127 91313347940468237756:734893464920693208:91731836815787375716 78444063625652357723:877538559280873561:79303016036077619714 90131181591028363139:8746763525871126708:85005714591131150135 15343393617754840931:3333987104898724075:18062280764652613512 28533434075829047438:4041766467293763557:31411519080153237355 14034435237129493906:24925734053382655581:29628526032438891471 58185645438288952126:16715782477047904750:69213170271429182160 55038624034442258684:45956469531540322412:9662004053809352848 72170072727511644296:912184260343958304873:933476546302405984481 23377561776820332503:671454257108496138394:684988902673550403405 83022858162599036980:987159624746870028414:904159533321756586058 92103244956404224020:1468323516684613614936:1390938292630713101644 50550484504444718320:6655115920671615110640:6686642484567765319936 64121391658247646472:2611867587124703468712:2636672166520283525536 41437264113681591017:20690760970955874292559:20726858927096639961510 22877549650155791145:95251164007578573642103:95234634352264137112158 49324017719808526044:94323910381074796533068:94371503881832693945232 41876186480851272649:863111359186548632069184:863143433235251602384777 88946045364985564775:419663626583053868080484:419604673009276435600131 79370244040703842614:104896080875855468546847:104816775089946958254633 79229204306181738526:3028076696705514804721494:3028145330898057124013896 83719996422882394124:9203265332090714544821133:9203201293416239882523521 48200206656268168392:9479561616081138996204281:9479607433864763148058161 67131970859975884811:576:67131970859975885387 10988804961282370921:572:10988804961282371413 70380812006977392745:505:70380812006977393040 79502715428153411237:8139:79502715428153416046 35280196968437144524:3077:35280196968437143497 88426259896322020687:2870:88426259896322023033 57352926465871747220:55794:57352926465871724902 31176320613802556942:77821:31176320613802480115 11761406473338794207:48062:11761406473338751841 67008450054227076589:973051:67008450054227459350 40554897227242601034:315841:40554897227242285963 85065371549334932301:969159:85065371549334520458 76601704674583495322:6743821:76601704674577032599 29836944694977894048:7986313:29836944694981675561 82529393591063484872:3670224:82529393591059814680 33266712189589517700:78096694:33266712189646167218 94945583163556128427:20260152:94945583163574272915 75093599604582808657:74989341:75093599604655670092 33525492178471704981:738991184:33525492177868506565 93760335450243647722:890870039:93760335450426659325 19296311507300853457:620275119:19296311506815910782 84607117245109933529:8712791181:84607117253820297556 38148481423661501111:3012767095:38148481426623670208 93561130690941689833:1585012282:93561130690363474387 92405125566247579269:46973396001:92405125522975656612 23871177445685954171:32739725592:23871177469152008035 72761332538083448836:99773159988:72761332576099533360 92287235537779641540:911226666743:92287234799470260787 65725149677384275081:747555531302:65725150098462523055 42505845800260130685:875891621758:42505845502216349699 22735693016035598650:8245319256549:22735700516077234399 32283726974619945865:6135785033827:32283723214488771562 39141792926887652621:2758663786973:39141795682966699216 77047841570466840035:14152357602324:77047836892815383031 61114501865500974305:89036787285018:61114413602347016443 15355130893182054529:56295700051624:15355112000204703273 64175859443973079245:858457001179403:64175583196383410630 76592977279805090839:614011200722241:76593498931626326358 72661332832650564343:316487478990350:72661629355762533625 21028823940621756515:9787038828145713:21038467493157160018 82667999647248144416:4314661143817292:82663834519837766764 43672226571227172456:2627092931241255:43674712908405304143 87607436541519099944:63529051326490962:87562801507941863802 51418154390985790050:20837108755143292:51438986583600613406 43319910747752960427:72330734449751718:43248002509774087949 33081271968021832674:134004924382733404:33057649771574659006 26055519935477097535:184839184603458556:26158985911088713667 99351579970041948194:278707038716546268:99230516536342209790 51922056179859966206:9942974860749256096:43337217774485568862 45912705694530105680:4366829826735217174:41626958298375220038 58388766509783245171:8282553644182121872:61735092319140269283 54962256718891777727:41509937922473917788:13461758275557786595 56346367227514267754:13809632053193632965:68189891852470011055 52502051592397152663:99071753365460694343:138817075877007152336 59844209894422925356:280967073515317882593:221771538653025877709 86199048007142138686:474882385043575788161:536257589417310892479 97135363690566174084:839261717406797621139:742129807282271396375 20981304814910971086:9589488938672448404669:9573556207660166471795 28270631881779985518:3203855943128665749032:3175594952666823707206 64472073409960232679:4405132588984046725921:4384831858413748514246 24606748229210041026:40387768692480282140356:40365628054275449844742 46803696742170996840:86004846136945079745288:85977718742059915561824 51085823117143871040:70454058474063833854078:70422070185922571763262 93374182248830537237:147953520667149003728072:147898807099352545766109 41801065847928728143:564516961976772954145720:564484385983156980476407 89582045542389082211:262810322008683476009129:262721038365730285988042 58540647811529201673:4151656790994594047017431:4151678378461736652970462 92476025249192657732:2557781797559669794298971:2557837231154718313979679 47971078144183000068:2739880957659717703575845:2739925393130610703496481 64015771067836838363:271:64015771067836838100 47023018105444289433:115:47023018105444289514 24171814713162637532:827:24171814713162638311 18138285841459875777:5106:18138285841459878963 63837169759972468784:9766:63837169759972462102 93877870003325972195:4273:93877870003325976146 52891316039597218018:91709:52891316039597276895 71844183902345886478:79791:71844183902345809057 78496727207904183233:86879:78496727207904268446 77314998781558435297:186059:77314998781558553386 35573349078566489841:533957:35573349078565972788 80012062885197717380:237478:80012062885197807650 34664427811233865582:5009546:34664427811229954020 75561376962928776337:7456947:75561376962927713314 54355815879210007551:4987326:54355815879205544513 14460635917173797135:48861994:14460635917210067493 58148078484401348746:66147071:58148078484391965301 64146485532991789933:82157346:64146485532918023247 91204065489497231208:609909079:91204065489962169919 86153445372604633949:475871951:86153445372271520146 61579306354118142005:222513839:61579306354340389530 56556815126131303366:5936999091:56556815129908447605 63669999399544822148:1413910698:63669999400958200110 51933112938768973224:2741582100:51933112940335989948 28894532377103142372:81532144666:28894532300258165246 67642761825228904636:84809409572:67642761755049311384 73937845656725042349:39077740116:73937845695802755833 77051095239079090744:519180299194:77051094927182098818 10529002293149405271:390480658692:10529002057556791635 82676306175063466061:620319849806:82676306794038828291 30983534458891853839:1421136958070:30983535238994457209 72113939122683933512:2367875624520:72113941436331384064 92945251352327227156:5628344396699:92945245913536523407 75400354078180155513:28615089678809:75400325499337820576 21201361778533249585:35631807713634:21201397133986063187 56127437526621813376:24858520975351:56127413922240597367 37752445378285926192:702483206814434:37751951553717161426 28030507423534129065:177355978806716:28030681916646492693 29327801550795307512:869164348477328:29328107765188785768 24502680313507989260:9200450506200418:24511876911426425454 74017849540236380036:9491221191891246:74009202753759944362 54388041223647709642:9854352755683880:54397327532339543010 80158177200390244963:45428978277733783:80185016993275142132 87104097701791805509:64667876233189420:87057488232022943849 28643492912765879995:93479057902393934:28592856773194521845 45766966311731043361:430460370138018093:46035126945793584396 89896008071911871529:422320832453835341:89518794722913349220 87441066187528582969:435763989991105576:87293613939841831697 23524492451900525050:9772547007430946089:32419380200017093843 21556937878265249195:4844913945846534788:25946705683869953839 46732626374370370090:8687828634863907308:54194903992743629766 53609201235218950923:33810427974544203897:59000780650151889778 77089466659268762452:88865817091864304184:18200735688794571116 77130434191027587626:31913588699463971695:102935837601466136901 11387101001161036385:397164942142716552529:389237757979012527920 14895932100900696479:683749124513180935686:698550001479144298393 79176965055950192933:804906107209026256666:883758799553786265151 17579371993602276900:1123033078822925609034:1108155867980135175790 18246932392531856174:7562980390116383863606:7544742465073738102808 70787257395618896287:7707445969614860651665:7711032427613889942798 17790791320111607867:93833581249531537752070:93825644378469854179389 36134701880050805018:64166195229426166215535:64185567529093990079093 58139405812132045514:93672373476024459142141:93688385928344453660983 92125118515616094906:596750857744055879947639:596661358248455488294861 37999910394568420079:322665432108407972344309:322628166592902753295130 76663762557249188862:257235983559423810441230:257312302584369424065520 72778330344278126247:8074122605619087412566464:8074082397638526392792935 47251035883446055478:4571702308627310702385503:4571748038989048607927145 46153095450964930180:1903674275006474458388322:1903646568760653752334822 512031501568024469137:938:512031501568024468795 476871597245355659782:294:476871597245355660064 286529990589157736228:386:286529990589157736102 520975969605935500077:7205:520975969605935503112 963401646587532111494:4618:963401646587532115084 791036520952878644132:1682:791036520952878644534 912835688566349805088:24790:912835688566349813494 814943360168412222261:73045:814943360168412286560 878965362424463084265:26358:878965362424463076383 424320113785922738621:684740:424320113785923382137 716313868331442677627:605967:716313868331443263604 234567168944736798702:372468:234567168944736971034 594221406661439621830:9229378:594221406661447736964 195243360718493657240:6495827:195243360718491629259 293520162071225555084:7681042:293520162071218416798 568711691971254970040:80643154:568711691971200606954 688107888723608368083:24076296:688107888723627938779 631238838076602234644:57707392:631238838076586474644 946097385779595852321:120385348:946097385779514365285 844419670874412402551:180293234:844419670874303678725 519283041039208170188:649867100:519283041038697262480 971806969863164009547:2318545963:971806969860847577184 131913176049499897218:7820692307:131913176057320552145 342095839540195252963:1797228117:342095839538767322294 951032376576399407213:76084149437:951032376500454655184 802983235297975647693:78774698326:802983235238738017435 942524545193770415888:65417750621:942524545215936159565 734381221832194603045:817298363994:734381222460505353855 764720023187711285136:839464959813:764720023466548521173 540034066544202552846:107564470633:540034066583036659559 303007039006454606970:3325161250151:303007042314367824157 639244786503459855992:5915017274007:639244791583575653615 727160283533372009953:2313184333924:727160285687087922565 793815080680811916608:93616605128821:793815139113033631029 883295938766242694571:99979546763889:883296002682791880666 521618847889704047090:65309088708398:521618820838608021212 513651189898519139129:176693944398102:513651084005031305775 531662021961384045227:972734871417449:531661622350446663874 257128192706327058660:348172497532871:257128486718413385507 720334690836442848303:9110581053577488:720325628688205104447 194642297436267877059:9220212058870938:194633362492715812441 609766301179432434271:6218687829697643:609761216647108140596 643820490141004298126:50818832504110056:643796700194121174118 172376718172206531671:31823884245594270:172380923127996806345 143523451615759727929:95179512542058229:143438416198590835660 161356702969140904399:293871687071400133:161071839684053893386 799090020050869760532:833842243855787666:799697549607416370310 941357533164421950091:650646276870643715:941860949860516137608 207518820790719923028:2046951100726151203:205476397822512089975 794408884249658575956:7943614354126218050:802333773920688008982 625399324101326855861:6421159616912971536:622448188311104424357 818101551839419121334:75860145113641854296:742892950983820712942 790486040806503284773:82449893401772093809:860226456785923600724 563636220164838480733:66596615018401700128:536266318543944434301 288124714810977796152:543066064557163097157:349192967676059774077 987328779677332819267:573610880462723423870:786113253094106682173 476437523656757259212:870514864483597528175:1012495902011025983395 319176102761127074136:3241069389137484913387:3523304125753181782963 981465575491103889101:8728715184546559228529:9077803304581550501052 460587131296086933536:6515412090038937640428:6968577211080830361036 245217570257477307177:89053043672586663213856:88965777228123583787017 711772431483274484148:25294833206732541141152:25929889265524002486548 169783517889502184404:89553949457453755622239:89716788300747880161419 938380846251587455998:780652033241597435241778:781512877650655855259340 808718082530864972995:195345491016529432911845:195800979390421636176678 997020761805698478448:665600864583823264120596:664752048991109945577060 348347643280097039580:5297736475792174068486282:5297392777706080218055766 521890679931722581091:3609124461967094214317922:3609646037395013764682497 349945611571683628359:7088032624329742565315716:7087718455599776499401155 728879103582709863495:986:728879103582709864349 827439350193939264548:234:827439350193939264718 308574111613421416459:681:308574111613421417122 111835559867057150491:4617:111835559867057145874 260090685008438637226:3273:260090685008438640227 415875096903316610782:3720:415875096903316607062 295822590151625204448:94188:295822590151625248012 188725517579567519031:12811:188725517579567523644 601734695862792731993:95284:601734695862792669549 987691072389770219335:679076:987691072389770892259 672985231319621884819:981045:672985231319621968806 233671168616123579734:367393:233671168616123737719 733874593515915032254:2394439:733874593515916836857 490934304475823595134:7458400:490934304475818233886 666795027728603127481:8028545:666795027728606895928 152230278289786626002:50220402:152230278289817146016 562477972930604061018:69271403:562477972930534878769 137882534851683827513:20186291:137882534851670457226 331047561945218923441:440643793:331047561944778541920 928655820301776096795:861881977:928655820302559070306 850277603113947262111:883919170:850277603113081365981 337776170353148197033:1571344216:337776170352533223409 259821693325468579004:3746065604:259821693328508934264 873176194775778071718:2995865732:873176194773388450850 975623545404141983261:67327009438:975623545402715894915 142282275631683119181:74684171876:142282275558174141993 629944087211001335643:25683097789:629944087225669629926 450096985110530624554:384511516257:450096985275926975051 921252518800141463790:745880131461:921252518397913442155 804287983457292809133:938466322301:804287983279061325008 669635058630751519835:8858563152648:669635067472084406099 725709699304685190104:9975906015428:725709709257429721884 459007091740244026734:8902374293201:459007100637710834623 116799811745255245884:16354143014198:116799808694320448778 337826204677508094443:13314972508074:337826209160953464385 470806557862997655117:84617353694154:470806490975369885063 443845935686853033598:298502878110575:443845657151277948177 691423309610445426007:645674253881087:691423937651693896616 778553999885299225352:838487095712481:778553464944252881385 859760849033279790506:2403944595527328:859763252180600900362 737919801978336382636:6945641566830818:737917450132387860046 951406943946996265001:2422161388797577:951404821402695224992 254060675841517126032:45012634827137143:254026447772262932967 184322045859291028729:93307116784963010:184228761454652068155 337998791927559806582:18020585544001034:338016803437791967356 216439958936917217397:303149608650735913:216713270218022490460 367450071393349394960:623158436401245196:366899538472916749852 945010963586354080744:105031360360104152:945097346207169588016 485784360322670883299:6236177507421748570:479838247211894705337 291082050159918543039:4174333265922323059:295039004719976809164 500886282914372113535:3158009585486955563:498990408190816899156 392143904197743859723:49466994702308051258:441310281288158433585 915832266651693697658:73907663866488058911:989500817108987625061 626373134943199846548:24321990908275418809:602195858027810588205 253261543687538188784:853173875807577613088:663695406276530864848 331179889805984278142:836503595448521665276:1119260078235661569154 407135292349402925731:760110510910497689944:1164920251957580159995 193025052691989241013:1558858340367924508559:1751811282405277248314 461628034694612926742:3387427007399302865596:3221811692437779735466 611585065505383906436:3805108117240971458082:4415763962925237078694 141514275476856744270:15702181580578515846175:15727897609738003000657 194463752309163335962:59820068470511375629785:59625681297815118585027 105040897566040397899:12944943092820895823723:12839983317792105393952 826186600490377192785:156695821886944644114229:155888172198882426978916 601750826151647658760:266147582277826033598313:266730503483497081076833 729051908318319051913:591170523933801364042142:590460585332817885934871 559111489514316583468:2944130918211952637375400:2944098557868579795935620 413660793106109130369:1308174046728769291788105:1308430827969928125544904 552456455512685695382:9943815040896845683410191:9943878368712683644425369 570406652762774688735:727:570406652762774688008 736644041749598465932:788:736644041749598465176 944288159271616739184:523:944288159271616738683 149302704787095051039:8472:149302704787095058951 428825976930017503560:9961:428825976930017496993 291047560014863263007:4120:291047560014863267079 786747351270368936755:36172:786747351270368972415 646534442677913064671:86352:646534442677913011599 426297255992764661406:19290:426297255992764642756 607696591820189861032:423666:607696591820190282330 826150969870949337555:767306:826150969870950038681 235826862527958223098:881050:235826862527958579552 319459948402433878910:3518383:319459948402431083729 258792834787448599075:6507683:258792834787450650240 866086199828005645572:2157794:866086199828007682534 447331715932078219666:91967466:447331715932120903288 671646774130020975065:53243418:671646774130068451267 612286663516309743859:60672943:612286663516285903708 153611384507206886477:557745391:153611384506690625698 166180446595109506150:446936443:166180446595287742749 275919879371969835567:781181287:275919879372666524488 732203907087511537985:4492513996:732203907083413298061 265046654831898282867:4928090080:265046654836805919891 746621343166488461063:6637084339:746621343164147491252 270969448668227853248:16566186092:270969448652005813164 699699042698767225502:50286102746:699699042650126342724 357273367068704366484:13240452127:357273367064058043275 389407044203365856679:772833213770:389407043866472089837 865684655245794962543:431828461897:865684655127595582758 743799050594683160085:430018622887:743799050749018174386 549677481368243131686:5056271343317:549677476314127666163 408360518143518796060:1402861063265:408360517329102857597 613035319642169266284:3430259751347:613035316281983773151 209439902719681074736:64402652444625:209439965885376569825 261301892790497652659:47185115675269:261301917898407662902 815808049022547496363:81358558111007:815807971512366082228 485696456509824501112:722814295410634:485697141347482075826 344930895549497119010:580215358624046:344931463233214906380 440466605509431105616:210022410575179:440466402111073862939 645111772732227744858:2541953548172095:645109240983521873765 455201872497846583792:5659010777534340:455198501716833193588 527806927834234474039:6409420094696602:527811779761554989741 321599812267783366216:64058555716668898:321663861406784236458 912297161280676221497:48256140583960422:912249679370359680351 737398621290626082381:27913393676653508:737371271030781408649 808193633538701831316:139345186852239793:808062758989746689317 418412666727448916762:951096200043556056:417616154066183708610 987815484986177315310:977134812220389935:986990579785765166017 358849305866693618112:8761495139436156421:351469855061934538693 804100510175790072938:1319922773507432036:802826217721552460302 369030935407368827336:2993553911451946275:371879811111935311083 156503458486588394591:22678181034513921464:170727784223428721127 880576047546079488061:22210732564667323264:858372242102577789885 934494711760892747577:40198170319926827320:895055720693527463425 286679446573862976877:802160574313010652476:681831232589752965201 897150668800850159960:888626855116181958563:10257998613200570107 725265757535341670769:859704100894493520944:180711182462506386753 754511221279527811221:1411669091248076753121:1851603829863193260148 153547737731281899273:9775789675191119271641:9917481051011364723152 851355209370556140354:6134173632271636337841:6542698897359631949811 676754502371740868376:79503518435700925496787:80008946754735847416523 210138906807034709483:72218019208461354487137:72045352107079698434186 267454253932377915706:10460206522839641639760:10504496009099468180074 280346084457841448535:481330109276156128910698:481160804084918327937853 773703725102768381763:105195206227337612271120:105945815470117274403155 230002766736263830808:437102832098596322401357:436875660600964738744661 897686904811865038958:3512044472799577258367533:3511169849131391505955395 299707034987700670191:5431222460492900182821959:5430926071080356369613480 464961662966310194947:4740117697983151373501624:4740582587217414312037307 7127316790195088848757:336:7127316790195088848421 2248752502109316753495:109:2248752502109316753466 9900827639831604730362:239:9900827639831604730133 3469265803533656730862:3270:3469265803533656727592 7727496830560617924513:1600:7727496830560617923041 2657111257268854848244:6563:2657111257268854842199 3518037262474361604202:79391:3518037262474361683573 8364104838916190605420:84754:8364104838916190559102 5504428005765298914586:91453:5504428005765299003431 7939050609713800314597:295047:7939050609713800085090 5436527066443152748857:898986:5436527066443152901779 8439094680211491404705:862912:8439094680211492245857 7936577994774312031991:1471765:7936577994774312707042 6336303371556572628616:2964485:6336303371556570348173 2554183825499818317003:5863541:2554183825499812605118 9185455829684640479839:26269695:9185455829684614213024 8099987067979063012683:28693522:8099987067979037112665 8085312324126436455065:20554596:8085312324126449521149 4444520811712219361965:296868230:4444520811711924759339 5539285904294372780804:728283656:5539285904293691756812 6028274824102988511628:408190068:6028274824102859769336 6107786961228282226002:8740531596:6107786961219563915486 6364698898472529301462:1783777691:6364698898470754207309 8162816372605103163021:9181457553:8162816372613168835100 9049689016172852403946:65651408555:9049689016184778858561 1311341587247931332307:97770536129:1311341587208210475538 2177469098328605255959:13171546949:2177469098341776699986 4125518186397904191048:146518842556:4125518186544286704372 4164848163016169061170:138327984331:4164848162877976933369 3137018118072628701569:301203699597:3137018117822965079564 6929941545710231860031:6248860242452:6929941540599808516395 6710149540259780176066:7503918393769:6710149532781631947115 7045942687838599322679:2184025094323:7045942686547994551428 5292174624851917941831:46743575048711:5292174579233759796800 6521528210335589561758:57481705741570:6521528161688636074140 6952118628984103123655:15757092216312:6952118640341768890175 2728425744917716774197:623770420307550:2728425121834635971435 3127513765552865768804:162495279557669:3127513639357610924353 3441019802646762977717:652322471441468:3441019291680529911177 9582681569966685355330:2668632621954832:9582678960862885399122 5367413884423373480489:8059242707991851:5367410332668589432578 9263363028485040112709:5322966490761511:9263359042972114177378 9806268223584687454357:57764265253330378:9806282640677551973727 5581456992694341707862:90096170156245410:5581511022638709533172 9267776419232396854265:75649757797456662:9267845309192418842863 9680597595602746079216:440564249314328606:9681035235013422872558 1420878000707058411846:599152739336111633:1421476827989264494423 5499193385285128578067:225620571996697204:5499400145521525806695 8095337847844484349797:8950654105471111881:8091587787671459966380 8175142771815267770918:3553066226410281485:8174045299405490911275 7225498860898069666731:5878039728499618474:7228845522174828620033 3417119654710967404213:29238926909488124785:3406579673626690737604 1263137496676285697253:85530443408895000572:1196405150752979055385 2121610347299131578274:20252980247277217123:2104825702012313760449 1420984793184085721226:991740529408144831213:2228239858633411146343 6468262233340118257515:836037146926556020693:6861572696706213818558 6591011095570441710272:649250880243596702259:6022757579973757540595 3777545070979033098426:1729087526259870383219:2683717786411304473801 3199892297584374194930:1389483021463741891595:4245461869467831215865 5537748364366391308261:6534979686853918320998:1446969938048980584067 7806360824113619039810:72341907968050293930710:70660730868984960781460 5101248989351000962189:30251546049350442056517:35186769240165034627016 1555376439611652894414:36969164290969433197551:35423159851002322101537 9110817064258001279559:471104423311888293296017:463667758698504252714454 4408308845481597512780:738010383409260070370540:739814026332409057005728 9408989367110375063185:711683099769303499068107:714449675439825016384602 3289504942782392027097:1397367246420722999025505:1394670494609398632093880 9895520445006426554450:1324018489140014120386240:1333021699938299101150866 6245824338877528705540:4819491647723388727887206:4825146864623294344728418 7599688957385563347128:784:7599688957385563347880 6473721034364151099875:887:6473721034364151100052 4580573634941683691019:359:4580573634941683691372 4577277571823839874924:7454:4577277571823839875698 8477655619159050255634:9871:8477655619159050247069 4715235187108581213663:4599:4715235187108581217320 3218218243325910774094:77464:3218218243325910835158 2257437250907851901617:98447:2257437250907851934270 7374377057445518002609:12650:7374377057445518014683 9424700993647215354124:343958:9424700993647215550106 4485922423548556430977:293368:4485922423548556162937 7724642389206687512006:646821:7724642389206687984483 7650347910378018851131:3818427:7650347910378022636160 9822724412965401320122:7417513:9822724412965404537875 6107447979027132626471:5204739:6107447979027136240932 8591824166584351360136:87017115:8591824166584302256659 7733862168468159642452:78647436:7733862168468217310168 3143363268714635295420:74921595:3143363268714707438791 7653145827943891980244:759631127:7653145827944374125251 2462298313315595020380:943791742:2462298313315733370402 4630987355257552588018:263651214:4630987355257409352572 1907898021570827436115:4792735763:1907898021575430084672 7295423231696639939608:4592510550:7295423231692088341070 3389232695481692737899:6631773275:3389232695475129189680 3068298582621631682882:93912156190:3068298582577685451100 6383665313971170571534:69929608732:6383665313901245158162 3240057073865554602380:37534497538:3240057073833255752334 9740443590629538166418:265203025673:9740443590686569492891 2525834715384391026159:619260013868:2525834715864718878915 2023642039748424043518:424680360629:2023642039325900079435 9911562048162810266975:3363717563823:9911562049250155249904 3053847393648713273769:3651749681543:3053847397281804847150 9542581229109148212495:7590194404887:9542581227868350186264 5272815079803135699426:31043612786023:5272815110826195981445 2784223620701567883094:43010135099399:2784223648146716335953 2039141981929138068949:14701929940645:2039141970019441138544 9622961372451540341574:408466293714278:9622961527788030819872 8852724317305650153008:170769663901850:8852724201514793813674 2766173434754949876189:147136979488940:2766173579553507891569 4277486948765735960262:7293291019879500:4277489527315321748106 4495126323653697288966:2071196005705350:4495128247157382520192 5328804616564367084688:2235939229082549:5328804034454212570917 4125710113715884431926:53700989321846627:4125658683237405099349 6486099756070856565357:30105982385298409:6486110543487873104260 4943032193784909766918:25027383940046193:4943007676619462999159 5168873170305355313900:395451595086001857:5168689680637797925933 2994112585796962408069:695605388057683701:2993421062072858079344 4591228326585872784900:625518582541924429:4591850446577434142281 3623627978983460753107:2122362134991188488:3623813722730598071515 1819234801577417207581:2411315633062275982:1821580770479151940755 7796169888412645570259:8946196685693916743:7800500304223715565716 7588134699613405670338:90077250446669584934:7668699995803343548900 3383941610345755648133:80470340705435647891:3305236715879296720662 8280571209244433869980:58500832102523760413:8334460037981281715073 8087550908921528135629:336259529996170107223:7753962717193995302554 9094228459953381202877:902877615843355174709:8781673761735616560264 8805182197174287377604:581506855095269598811:8316199693060287136415 5589616012928599174854:8978285409294539539219:3720854914123700399573 6409838717098945859714:4569681564182699928002:7909290208053176809792 5749787775282852974964:6845026941200429086419:1266160424251486971815 6455536796584068233631:66609818791310180080962:72146981410041423881437 9091670996460193460120:18991256478909928843050:27916329945219922397362 3213304287612849067032:72206414131108922480020:75048327931403404886412 7779805424248136597082:567591184843372388811825:574146873599503936060011 4668858969184542927034:464806536800585836178929:465451638336150538847563 9655920287819579742431:589770359733037113454413:599315203190158331606930 9718181028980252031559:3753250212750972819603110:3743781179932271701837025 2298695326621710989059:9857311885012844398250297:9856195553615230489378362 5136709421511186685269:2200379513022290450872513:2195397295926832266732948 1210797360847426255069:191:1210797360847426254946 4223269227003005377264:978:4223269227003005376802 4920664899235663700739:496:4920664899235663700723 9006319063653481763939:1171:9006319063653481763056 7750986590353036723284:7987:7750986590353036729191 9210970238693341722422:5693:9210970238693341716747 3757083534381229494146:33803:3757083534381229525897 5468106638864966028439:72127:5468106638864965965096 8470044716191790866654:76095:8470044716191790795233 8101449980203969105150:383026:8101449980203968795852 7020758230713533078483:934697:7020758230713532176634 2209871368482093646649:848964:2209871368482092824445 8063730520785239751427:1198706:8063730520785238847857 9742692336535438235733:9782081:9742692336535448017684 7297187783250786758744:3541844:7297187783250789776140 4084634634188058475682:11649708:4084634634188051119630 4377085749083024879961:30672956:4377085749083046639973 9153506616511547795223:56717843:9153506616511537222916 5559682822222599430625:681482033:5559682822222206645968 5906841105037151412698:493036612:5906841105037203637662 2737008162725890639146:726765526:2737008162726307023612 7193159696073361826867:6590974331:7193159696067051121992 7226266538575988658330:7846985975:7226266538574670303341 4975720409379073321937:8237713068:4975720409375231438205 7107473932258225028092:27685631656:7107473932283763019092 7396822786037469135515:46124065127:7396822785991653368828 4951967454824442807631:26610203778:4951967454833805736397 6408719096840327610238:966474161483:6408719096432267387445 8268812315889785817864:442787775372:8268812315773958850692 7392741794088038559682:787513906651:7392741794839011097113 5594444007698390756678:7513954056581:5594444014478374294723 5225635021362633144571:4774905941627:5225635016619337905792 4345674562435720612649:8379561254863:4345674557535242327270 1476577107647298437007:66418765038490:1476577068168716483605 2142035720418934116482:22656789290607:2142035706566873927405 4964700603238809727588:60389261130262:4964700543709622093938 8630362720726786932454:744653877232393:8630361987085744946671 9463666897814613624966:839203448494210:9463666148771133296644 6699620902974374649148:304190756129451:6699621171702613350295 6234624489081190440026:5805108768479791:6234629968561039754869 7807067564601960202020:6585697851056375:7807063383606906118099 5333930672117261507541:5570294968682034:5333936101382251126247 9559166312085082684344:51970167188672823:9559208918629512112783 3721543669750163885683:55817910120767880:3721490253328621416443 4762851504118976539454:85391664301057904:4762788804211399806030 6388437417491628889485:132526770931583089:6388389333526189596156 1762980753931091144651:704806077920794927:1763646256832005551844 8655549306748134177947:192136750390890169:8655363116294140850722 4610757435403667355880:5217391578472271428:4606748638749166007980 5828963759087400732058:8360887830839088878:5820603187984900002676 9195174892245331915887:5380755420981125406:9190082509037571724657 2242546008037061648074:16898762754120035427:2240925758011353625257 1560726815942341041437:90954588688971395459:1484192815932649958558 2497902827977988363519:55564517132385896538:2442626717968796228773 9929458871684682519328:545949379973088760631:9589892302564606066711 6512723309794580547061:318685115689720034135:6793632125707044779682 2953809912768394728406:501839490858200525502:3450997185065436477800 3234137827108172726409:9359246732002870602457:6272977879615936178768 5467074249937157600235:5352430890723516557285:193187263096012182542 9262274781473049653820:6984123372933123869154:2592329634876605905886 2650781933049399119675:80967772365314713961893:83434005703702950529694 9702078124411802570278:21563078290574594281504:31232405600639693839878 6078917053494489339751:66687528065087685556081:72434218513590337216534 8905656491966965919301:702550609497126214883458:704363452289434086176455 2864510100813871045706:318418828964659244499844:320951288664732302368718 2142556428992089779258:387568576729868543383656:389116162611191517525074 6451469007015313546450:1743197645131034546910306:1740179589875539747907760 9044526526492762823202:8224174570078101178572896:8218747048816284974692930 2165485179281184284082:5399189917244764736467124:5398398735081990025538822 37468187235068457299462:241:37468187235068457299703 75457610150129986441352:530:75457610150129986441882 67231838420762585747108:760:67231838420762585746524 65161083655051500550162:7964:65161083655051500545806 80166004780242548957998:3340:80166004780242548960802 63604010614518953439525:3153:63604010614518953442676 24797665084149029547507:68853:24797665084149029609734 21481845178452344026469:28351:21481845178452344036314 57132968959539563674187:19842:57132968959539563689929 99303232984033735439514:138243:99303232984033735305369 95527338360710861356376:696660:95527338360710861708300 51117478611431882842488:708735:51117478611431883518215 11736380524183307984698:4855210:11736380524183304440464 77699486670062407959094:7273455:77699486670062406744537 26302956651098366519489:3141173:26302956651098368657140 90957404169193991176415:99935030:90957404169194088489961 26717034949692752645199:29323049:26717034949692761613158 41446099864075276748688:67513943:41446099864075210041799 99162006484265797980918:414517980:99162006484265922566186 89461570322956760613176:768524730:89461570322956403687554 31787169469778257608209:609615238:31787169469778867028887 30640271850498507657399:5530450010:30640271850495179237613 33347036841539139433177:7249604571:33347036841541555608834 17652233942834389680904:1755661582:17652233942833980950022 10503503838744765653030:20917262655:10503503838758552598809 48919535434701513298361:65021720938:48919535434654795606227 74714012542915480689041:20646119581:74714012542933557727500 31300444613308391203478:595688821261:31300444612799149355163 78084997626370109007362:592861694469:78084997626945781328903 90765731410924256929211:995851883907:90765731410205435326520 50788975592294966231971:9724179270861:50788975600850176200558 86005686209742733718658:5546551302752:86005686215193721990882 34330513347999435742857:4822942900191:34330513343730719785302 55786861362715695610366:63498906267543:55786861316810745386601 28179476685926434454282:17821686977017:28179476703564299758323 13509751572608625239446:92237137310053:13509751626345615758579 93820999828415322708888:376586205432003:93820999460627592663899 56446485897693742568250:791012269231711:56446485278831415336293 18753043187941382193859:390184139001302:18753043013972406439701 71833802169583959701548:3761484347658955:71833805330727969008359 91394770510403879465997:4814626435003303:91394765700180394117034 99063880057311013529899:3410467162449187:99063883465568342379528 40733030542800774026010:58918042792933902:40733044280768302442772 73438186100473839380282:37280874660071907:73438151178618657959641 75032130741710427293385:39251516445690574:75032092763516561034247 91167410347574734065019:580430533402541209:91167986255868348608994 12323877446964124940610:763044798617083365:12324636619144812471463 46041466852787827016069:811744153384267348:46040980988496959287249 78339234512114053798880:5159969002700326832:78334161176450008685648 59449549886882560465418:9841418011353254162:59440934945573813506840 75025767171996186551686:3312067081571121978:75023654505166012948156 89840432747282084645015:51557061429372965536:89808624625699460684343 28979181970319239886275:84572432293418054451:29042335205681265903344 50007551093825231116470:53505324531019044669:49954694870419502632843 48505177028874862971718:844953362596211032393:49155283675310457375247 46582169225930002808562:697665129871171732224:47093058679356411837938 26893048454253405695247:165764445084266753430:27026530480292323983513 24298733813995634799297:2276695484181898239793:25352155269314265427440 24713507015242292346721:5932658736972022274000:21142626874746089957553 65589121347705701796873:3940741700682009448798:62390864685495850933591 74212881702979440895939:92554670244694277279796:133082921881618502039543 20043760951791054467004:91518915565204279358214:110382080850070559055034 83135445951470658336003:68194854412415618180865:150711172508127946985986 36882060729603865044525:829486243232044191040013:795311445437857869997088 54520198291939440655269:575651893397677432668736:540372971033884381313509 21766581193677366881329:850615069268799134435708:833573241473079025526093 35210911673617461702705:8805534063205072705292230:8839388993363115421497335 78031274468453775075844:4149145361512673077066211:4222303754595834735301607 35486797437325825958817:1540615885186541158077559:1519408330575964891084758 48987720569259884323985:214:48987720569259884323911 60406744835476983785700:957:60406744835476983786329 83404704174377228443720:910:83404704174377228444614 60917074738687863024185:2159:60917074738687863022166 46071820787233868687552:6371:46071820787233868689443 72288431234215511652511:5732:72288431234215511650043 27063389431991918176337:59358:27063389431991918153615 81706733557681035028732:48926:81706733557681035057122 13902235279263929411009:16421:13902235279263929427428 72865821772828837395000:377016:72865821772828837051008 39879908897424716968967:545537:39879908897424717506310 76075147037346611588209:119773:76075147037346611478444 60521029531169552111831:5507176:60521029531169547129023 81998310462444169702272:9277399:81998310462444177204311 36072837247683643060530:1874490:36072837247683642829576 95023725003167018924912:60960466:95023725003166995715490 45413922796542101996051:25768393:45413922796542127764442 73334760948860346731127:95258891:73334760948860406793084 41628540972816937457468:988959983:41628540972816227451859 91898280361320618822079:331811710:91898280361320824013505 25748717478033700768623:927501329:25748717478032950544254 66073375625155679950635:3795649526:66073375625151958750429 18700501952508440287004:8367832943:18700501952508746393715 45977041556084637276859:6924220245:45977041556078523100654 28523182010452888654574:23793247750:28523182010442049533160 74889641810266736958836:37750724058:74889641810235698727086 58131114355806008362346:56481478346:58131114355853814346656 45941530490579452240811:676267123635:45941530490109344628760 10987135081091891517424:620186792294:10987135080611425789590 66358000795647042562776:327352976480:66358000795422819135160 12977344774935267724520:4485256825232:12977344779417969788280 10611039577463820314538:6786117747137:10611039575453710526059 46595424207489523646091:3981493224791:46595424203619739941852 90514133891119393656922:40104880006596:90514133931142501479838 34140088042465165812942:91569722938157:34140087993227060541411 24799430084774366439962:18158952539731:24799430067721918483529 62678202176800565688684:156920993933328:62678202306920963576188 59100647738920763342224:206726653316496:59100647584972967227392 40170102803076214426678:332777265051256:40170102493737861003854 68565061807328642816503:8618669931399427:68565070091453700231412 49712846347374099848669:5493276914160026:49712842270287055637575 80735109966502941085825:1907069790102667:80735111591958134158346 72299733081190757065733:33916184469012218:72299717350988809313023 56689415099748300281283:38043743109299866:56689378762483243314009 75979267675017360919981:31091796773486633:75979277337306736594308 97789638548954537497611:928586149449703849:97788728540553159357858 18856009663846955457723:364576322140501180:18855651860814275700743 34954629380136001533548:575895931086144104:34954494872739335992324 60897621506284349777916:8517392077602009260:60896338620256283711312 14404596943506403577745:5034084947252216784:14399569685601398901825 12541335934045145607132:4344934138318557539:12541602841128603957951 20575009537730759567326:97901730614860769376:20624699774118043439038 65136528554716563227886:58023428526013684761:65083272187655855266039 31083525269221012144626:45417321325115035608:31128654272140057333290 37354137988302067836396:788104158543293831578:36639982935641545014390 68492606171517386804838:309348143027942856176:68773554472184631057302 15490686388224384290590:827796161528225520092:16143175333810334406338 65201043736186938365765:7052904749103901998551:59930627711237182515858 31877300610867734351564:5004909466453995192437:36879904093574486363833 58003917048768786267213:4208507120456184512552:59846050246815147932773 64900462451111685110986:83245785303187707814657:132788995463490046779339 47678907445268903800743:82510882826356621408257:129279485557967065700262 96351620921000335254129:84063689301487914135317:26750180242277259873636 76190838103076531844503:286156424961091619755670:211229229645351058940673 50153925862338322318853:185173058569401863607842:215616632713573069279271 12355618485486685573870:483064756154789641323648:476206339490931615782510 82680711407052817653650:8137642642236197445534065:8059684300761197844422371 41035365079731748955682:7527382705193313383732550:7486365796183716733432676 70630815754987136879845:4704678041095416400706166:4735168304749444176934547 58221545572557111739340:414:58221545572557111738962 52566398560827857515679:969:52566398560827857516374 39922081339027910689845:527:39922081339027910690362 30784026099752556970151:5255:30784026099752556975136 39265546808816648629692:4226:39265546808816648633662 66505974453162640037255:5574:66505974453162640031809 68284685236725119310702:39385:68284685236725119271607 65213934677008971420526:63173:65213934677008971441579 98698593855617182709495:79448:98698593855617182630063 97817481388112037244307:903766:97817481388112037455813 34732949106827082505274:514340:34732949106827082155294 95523281523820018480564:616344:95523281523820017898028 77001229626938960582994:3432313:77001229626938961380907 78723738541921768923577:7447410:78723738541921761542859 21419368733790865650784:3717794:21419368733790869278402 57914454265883635640910:65862851:57914454265883692537485 18312560921077068739376:45356956:18312560921077027579052 93038906032792813319872:46431936:93038906032792783702016 31601196444033600261090:113943320:31601196444033714202874 43514223764642741279684:486084230:43514223764643075315010 31854974261228573829141:117331396:31854974261228538592721 73265792431099816042330:3311184849:73265792431096516408459 71056151361743338402676:1025610822:71056151361742350673714 71928109008516163400534:7262954855:71928109008519122818609 49528505969866238134246:93485286533:49528505969820135932771 82827788878063026813047:68178600383:82827788878044332644808 72647112990373198828290:13517621482:72647112990359738424296 37709415028046881586377:505146253310:37709415027546569270071 87275332864129428021159:287127491289:87275332863859551833470 83388375579456651379991:721165446993:83388375578739002354246 88091319602162040632854:7725918563287:88091319605472728538561 31476905484346666282378:3674937007857:31476905483485044077435 53108578697567043091780:2645270319405:53108578699932057840745 34801308502531295190905:25441419133799:34801308525764757199902 87328541294536322116523:74293934957127:87328541367589931895276 27911847154179274625832:35592811233494:27911847118758282531838 62743222013350883400947:822137887977072:62743221689710656909955 43592570734486471661299:765284157217320:43592570338642785111259 42197264367785837031504:121896216802486:42197264342759810057446 15155120428465298721149:9741232408092865:15155128757843935504828 39230569094016145341380:3423459256681016:39230572445920164149756 89289027630674844263055:5190938152651961:89289032645689777122870 97165404623604655802954:25646474231167061:97165379542460394992159 18771573728309862674324:71467179678402921:18771514166650730161917 88052796391305703827578:32014368445540234:88052828299794585227248 50786786092601617822309:557921267727853472:50787310161453990532549 14633821238346893605083:472171825950497494:14633716736612409516557 94848235552085653911935:925786063307269464:94847931272700902710311 98774899536403573031873:1532330402028236709:98773981547959806094436 13428542700314766668130:9407086505575698504:13419212546637787111722 31959173358208412016573:2763123247423530572:31961648215173748128241 74646717384345839872009:81536559195302189708:74579087940956693394053 59361395930462842889088:39987981405710761113:59395501471667697557273 29375445424404226040496:57170062624185413380:29430291196361390067124 74785939450964296542714:491844308463634862971:74608923778360863423105 69830651282308613633044:139778361414881953855:69914684083137185954859 40545263609372510845616:914551312671919618221:40811503389253076009501 86768360217730682881899:8934655995630436757968:93190764186443089360571 82868988429193740097452:7458170598528591287133:76002374649516759074033 53030608066420763004737:3293972397994589362433:54461312646915635353152 94607371293054458178741:49667301144231941102929:144268905555955294761444 35984283335388386105679:62201426585113793261766:50567428995026105723273 66964524917026469381478:26625153138263644497314:54556051498880884531396 85217138887053585281842:803217298182283715558105:869466413556488712735211 73803423026411762776547:228294819439631576508546:302065952496670907355489 60916716840440392317906:675328545560802331595666:622908430116170661488704 70423872403718908422297:9064323884811124684069371:8998918175472146224492898 29814900530466204514778:5641972254977299392215708:5652297483238564410868550 16205833294843836451860:1265647981976978842707347:1281761581487329967516039 953687759834901867495745:128:953687759834901867495873 886641247598790220480716:854:886641247598790220481434 290175807634400584670526:915:290175807634400584670893 804874452925179848099866:6710:804874452925179848102444 233883612523534940715983:9494:233883612523534940708569 713194466454676546706078:9369:713194466454676546715143 424398285901530996204026:98639:424398285901530996236469 516153364367824246343396:24401:516153364367824246364597 153883332486805656513769:49421:153883332486805656563172 619134637354503782171844:470761:619134637354503781853741 837192228949802687802252:488198:837192228949802688010378 104175750232680104538346:654399:104175750232680105037013 756571806920005709778678:3641073:756571806920005713346567 711800281900500309297394:4091155:711800281900500311254497 989425622045208239670480:2896507:989425622045208242566827 539260299008290220557130:91827961:539260299008290130980275 375369615614108821884294:40616075:375369615614108795391245 393446674715680471074258:22936615:393446674715680491223541 220869557108462531011134:115309710:220869557108462567366320 846185645231442061002199:554268339:846185645231441506792292 280939016757112625650530:392971977:280939016757112874409387 232256057292433730492349:8988373669:232256057292424815142168 649139390563672070881057:9402591135:649139390563680387127486 411859446066821317219131:7202108665:411859446066827310409666 226825454149241308994685:89835717097:226825454149192615206292 742221874215001906941252:84556892001:742221874215086093290021 370125296993772703108671:60224721303:370125296993781336285096 219841914686177349726315:682607024925:219841914685616428903286 516871380962639854222890:511680094404:516871380962987234959086 738202835453825441854298:604307429766:738202835454425403517660 927033107167155575614632:3019209378129:927033107168813250995705 481980542385101192281753:2986356443950:481980542386676644754871 607623078460215209967361:7575758785761:607623078453484357055456 724546201042678021144697:15506489664607:724546201027397017543718 895874277165361518605551:41540727291392:895874277135396945578735 965067297050577803370121:54549316390963:965067296996138012839610 528728995406786309586175:720371315691190:528728994974590123782729 225148290205970647630114:548297280770628:225148290572845270995814 797063453232504857196390:330527089949114:797063452910917792075484 803777429655840746197884:3511485053281158:803777426392922697330938 352856638269998071320593:6714682455059464:352856642005139172359193 452384427586169174814640:9812035692196918:452384435810080411884422 596804151059419764244743:60785021400090574:596804162866406865618633 797315079714342748273495:30110513380078161:797315050149188880402694 183838679146023463843717:70838074020267338:183838726322397991629519 956456502000690090689189:783237931729590602:956456095961445220604911 936111997289536691216979:944553359874504373:936111639369668302804198 370170917618820099347316:650609124895476989:370171422976847590317961 481801886380607257335158:4360430267478276999:481805093845172469706481 307381355954254618947064:2556277954437574640:307379123973416615674376 566779853010900029816981:9706111684916070891:566789198814785141770622 434268354706984988405529:47673757349219971408:434294690405726179417673 337232242773168846161047:35878916023578315967:337217176116966812190760 422530704660012874245334:84634993328912031922:422614473765941422965860 326304184145798175709637:891244312033483588882:326593570599355274255575 539112438383201288880637:725437563707142800556:538608858104280077239633 284462886345740067650741:761403880209084912873:283738957235802147694684 739242410897631444130806:1014233437797536441190:740167679665357099497616 469347601744661991398491:6199729904762995654554:463741122663125723423681 498047567382713444087016:1327438096764499194846:496748016794202721535798 122909320276401880059860:72455048653572613651375:100666673822837950182523 561096661536903094463136:65172444203425625217719:581369690132436449947671 780615473999813681902584:68790166713221811234792:811585311699080331334672 894464951017622815557624:328531942096237220350454:1175736262422624632737294 155151094114664103987709:754018677659979943680606:904069072485258373125027 398596180115598515181967:154253270453824584606576:551592745089146840152831 306669267197447478655574:6156324449311007928478307:6457090758298214068178997 193159216551088616959171:1991082363951601664625747:1876105646397360677806224 980445982906454169944021:1376198994203020537468387:2327941114730881114270262 744344900741821069426684:420:744344900741821069426264 660047123653590133516955:945:660047123653590133516586 439133032464590963228685:725:439133032464590963229400 220321194722586878826509:1999:220321194722586878828482 886363971168480500602128:1067:886363971168480500601147 587356544858765912850269:7099:587356544858765912843494 862390525449342977811851:11845:862390525449342977805262 399911880181902597556410:40615:399911880181902597592605 359340066355850378297026:14017:359340066355850378283011 539079578490147627234882:805400:539079578490147626433626 433998975855463804249442:496603:433998975855463804090041 859916382806316177144183:201587:859916382806316176943620 676702468394756746841467:3110927:676702468394756749292916 696420943437517985859195:4810191:696420943437517982245812 738743340905310122505923:2190864:738743340905310120319187 518836876742866415255655:81158875:518836876742866485666492 552590280072586680019197:80207723:552590280072586734663574 507770966565743195986609:46316882:507770966565743216863203 386872677566603714121244:938519559:386872677566604388393499 759026137012941015009313:998580093:759026137012941643962204 914145453285119521869724:376871945:914145453285119883269013 876783104493711894086811:6101481174:876783104493714472219213 554131956982102662139848:8918894902:554131956982111044028158 277876422359282440843290:2427913123:277876422359284851848121 750710702291148889639163:47483547459:750710702291127584860088 259294692990215741546902:27450088790:259294692990239970409664 348314809224948035912812:23461925396:348314809224959009232504 360750259150829804948061:521701570513:360750259150514471812492 909983754670378856606268:876152159176:909983754671243864904180 188179701284724451051419:870707339766:188179701284409405580909 439200445216589203504723:4644500319131:439200445212368891237832 465005426774565891344362:3714060095420:465005426771403568285782 914236086197466893956499:1041251339859:914236086198076161276864 330426363300752359122075:29532907659806:330426363277508435969669 453578944515235490668677:41982457902564:453578944557114558305633 184551696735923255565661:88450858006022:184551696648435035433819 438200933390459286429741:206905890452838:438200933535775345841483 905138524656096694125114:181612392603888:905138524553958846866122 428752836400314769737657:100458830640223:428752836465438766019558 820449734882418692385667:6755601239161070:820449732630818660045677 763347957327354731258603:3990756030368625:763347956717736543005082 137643865700700621491731:9642581240332444:137643875201991395872399 424193808776409357001185:11571374461199071:424193797820985282790206 835738742528821940168967:22855600493470146:835738729250036461930693 442273235077815827642187:11597318421960392:442273242164499037577603 949003076789739067290447:799215776806681039:949002279404667481819776 340400669052773560239998:424160287155086508:340401057107296791339986 137504679902144242074270:438021516495992548:137504539118238071256186 616767634436237836423118:7753133758171924720:616773932625815003023166 190736346792246864829450:1271742875820521132:190735238376122335275686 107181954637546919434998:7002225740751391497:107179708571900944011775 629832409680261099244733:65008317099426027893:629786732376071154619848 872743060975028782197202:58316848518487593642:872684787508842422385528 937823588083175182709785:38744147047641071546:937788472887764840811427 155313433617406444331709:564431250638233380596:155784478161985348944969 750357546025563396907503:607784733670204464064:749749788388269832895023 354846413364774408679656:531583482836992888779:355221026908176128835363 436371194023207680409976:4025825627495717569882:437953904667755625022498 430093701504679079113471:8016539457876363938061:428001281094066547293170 497874768690357770653280:4519678625994308745457:498668184738361895974545 825029516848537521077964:90540041582184561034815:895347306153519517366515 588539992181023463701415:65689982735442485741491:534990058971138070641684 816120530974506721277649:72241505129024176680051:772655983760827176360610 885235359853680789302461:350707836109328650236910:1139111564660881892466515 213493843142797074971339:962645394824092825600377:1090508875501660811557810 655859684116899067385565:776414422691901035728726:219806438510188150364555 603407408155730546159369:7487961920942539793782554:7623780881540165679593491 192653769264853375240960:2199988004932975005910540:2385207718140296739556620 391197543448462083935201:9129472005429650124379169:9519912037983703273168832 237206084329071811393463:553:237206084329071811392926 789181000726869737818466:936:789181000726869737818826 700536571739504472469001:890:700536571739504472468851 208741201003331109050343:9498:208741201003331109057277 398738133320876568173395:4989:398738133320876568168494 291454589648234412025837:4097:291454589648234412029932 475063482389308286548929:86536:475063482389308286495177 448364666844637879981542:88738:448364666844637879897924 664845872814755882028294:45921:664845872814755882073703 338682919044108188688971:599796:338682919044108188222655 574166367838023187771867:677974:574166367838023188441485 848392018775992285228063:470235:848392018775992284758212 261939974966578545078718:1511044:261939974966578544230202 865826614670717049048395:1342384:865826614670717048289019 444600126345840242093432:1385576:444600126345840241363216 564492059559801522033236:50193667:564492059559801562134359 823636675172227057942297:91066965:823636675172227004689740 613585010818306576786823:99180846:613585010818306637153449 910960460163102800706474:881380969:910960460163101919393219 145591499019273254833321:854868322:145591499019273476361675 815427057637386369039021:112511622:815427057637386273828907 442240426091715519525096:6378152266:442240426091711831069090 310715986364077284859233:4067597994:310715986364080737977291 342577584972741265171232:8513459316:342577584972736356726612 505642547463165408168427:53021183399:505642547463184068166732 887414770012582532847947:98088691975:887414770012506455879756 183506986003056822462391:93287199789:183506986003003267060634 979953950708793383161275:346387130208:979953950708997969259227 522902897855114796519267:817079638308:522902897854419861444167 902603495716459074497480:124309864483:902603495716404062923755 595738527748937502156338:5502086386682:595738527743435596133832 967763857480244994243888:5329475674211:967763857484268262841683 209019667745534325594027:8342784790756:209019667743928334534479 844081797458441134900927:24936828995080:844081797443417585352887 708354604896143146043166:20772406047662:708354604916056525075632 610987193599489497193276:18302588856086:610987193616692330101802 923115012840033600154941:383671691730660:923115012607961386546137 442992250320726557033075:972263965861798:442992249428212357637589 980057592066553885464537:171826639938757:980057592185019806888732 330744493910309504301998:6640257782378973:330744496286058011282035 718606200340795206991637:2673481442403095:718606197879553874779138 600974499122973634967402:3617205447278208:600974502456915116952042 364686466250888402324129:84426532766580023:364686387946457419036566 405302031984625377323096:20938936207018605:405302048411564604891701 272479400188866606417885:13895761477454707:272479414018571419716782 194250058916138332120866:528108405716615256:194250433824537880160122 379597184287735693644722:299834445598214280:379597461020152929835834 648092720676561808117731:589349944417979950:648092156118409869509069 981319852055288697479140:5808558081603151451:981314052504509533682111 275751902594908243987628:6615423969858060760:275757038575296940281204 435792065937320183760143:9587066518594468745:435800932427621302779526 380732843451802515969025:69570894662003333523:380673127048890978438546 257478573671346938375949:92237796293781046352:257386342808642218470237 161987832854424275092514:95195104643398722754:161893948515051451769056 974388719486131648511884:392409566370732440620:974005534875180433228704 951204965804725877620042:398924628973972993900:951433239842097233496614 730694760429356824459773:781352771240112589782:729925099301820834148907 542328872655119160524956:3613581702446510603606:538724587025621595209162 141499518830649518794377:2778897945635376369355:138720720333796545898562 540958248002349352794913:3282848529409435956699:539467062361422275301114 764119242562552847068546:72062546251955907036761:824282962624896245787611 109409085764158863906024:69036756886022342648957:121405617246589487558805 338083802294330917813368:77239880696831967047279:414620686462013256716823 999606254052942929742326:998418320908368344247024:3553224678247052321542 956419909200565855861656:592494671212016705996972:868630939632768194982708 488898604081127999438776:400978072727855841210625:242873259048493283839673 257622116143732759114004:4101483076302994406670493:4014167072494011354853769 444284811493319580119442:8494532033139951448244267:8882129988270470102692281 884425824123075589293447:8252105238960841292233310:7745775483850406475366361 8274281530775914904268209:197:8274281530775914904268148 6829019899981885751023620:981:6829019899981885751024593 9298426718868793834344199:302:9298426718868793834343977 3452105916811377403610683:2909:3452105916811377403612518 6338141679502772105337920:1452:6338141679502772105337324 7671315093654387556053614:1742:7671315093654387556054176 6506767260811159845796006:78255:6506767260811159845849353 8910286470170534551940316:74464:8910286470170534551998012 7244491422785497222341231:59852:7244491422785497222286243 1147030205515067183271951:291959:1147030205515067183555704 5021041191353608675365344:207387:5021041191353608675441659 6822605890847973730913067:547466:6822605890847973730406817 8931754633077101030022599:9183135:8931754633077101020840536 4812236000033447604824868:4633046:4812236000033447600724722 8242134975449290583621033:5125924:8242134975449290587146893 6810092437366910065812947:79446582:6810092437366910140016613 2637282450383064058965736:77945829:2637282450383064002163981 3641405698924241474436609:93526075:3641405698924241414596154 9370191638771493287875895:957478475:9370191638771492332512124 4884036966525841880850308:557511521:4884036966525841361202405 5088635024605855829096000:942036655:5088635024605855692890351 7499949353080320096877250:3605879132:7499949353080323497223070 3196691611908746253652974:1539642012:3196691611908745519841650 7883550470220603254393808:3738213925:7883550470220602672469493 8222091162542866247265394:28228603660:8222091162542890095436670 2075326968849592622356535:20321985983:2075326968849573173886344 2187080687688290531764475:27616057677:2187080687688283787686326 9551147214313478269377138:516064591558:9551147214313238399788212 6205126447336823750992594:541779825028:6205126447336454977827670 1335282569439829150763811:660332095703:1335282569440489146786804 4649452440129595021481315:9575820479760:4649452440121406521645171 5342553774981468589663660:6273602162647:5342553774986504819714683 4261830990554424929508641:3804726599835:4261830990557392024239546 3388101293366862820847688:41450030844571:3388101293405814581623507 9764512403542688570293698:31597172448947:9764512403574038708708209 2142646121394017956732251:13995382735603:2142646121381281152507816 6727551674081151551157941:667489266531799:6727551674555104202410850 7467297010751413878566372:489021321274005:7467297010396010130755441 1638043850915155002779198:210975933754546:1638043850776481639533196 4158407420321678197230986:7613209221926169:4158407423431215750152339 2730051054141741377286570:2273954636776809:2730051051868096582137027 8869789031443626068860036:7065627017733254:8869789029466832264574978 3649494771816312768777766:43441604076349225:3649494810752391998531855 8230001656482422244718877:98986258239371815:8230001752352302948385594 1319907034651554136405404:52875130459511758:1319907015046547367718482 6045873357793607328757144:244707231618078681:6045873170139038719468097 2305742043305462078262439:507403855640243295:2305741685998344229609720 6623521855946313226558289:725978867529370616:6623522282892540931199145 6710651503928494326411231:8080188700590300629:6710654971005522208010762 6569905500132569462372111:8839397440127868651:6569903655529064668457444 4598593266182579808914243:6155008266749243740:4598596394769353235642911 2252131461632377422010819:86868625646152513886:2252218252529659660214429 7907920821581165504781055:29466521632334978327:7907909913294168769218536 2672934327419408340770002:81621375469108473799:2672866622377894054097685 5215891357812295517840987:847798013669283984313:5216739003809479975785954 5632321130224891829151349:972997608369249248632:5631496002260003676816141 3539253993917754473039050:173315666445540811542:3539380446849708669380572 7052141948338241011691086:1551164209912905579601:7050741556925830599152159 6305096153733357009840524:7412299863104549015240:6302996561252528559286084 6656000271785394164746623:7505158393474766881095:6653236010076197391697976 1960357581831440079941481:49046843579115204790903:1914880930841045288232222 4648555253719638587679773:94149621359307956131481:4588691222830809468940932 9581128049300685319380840:50482947504552576854018:9550125097797727821346666 7671369559121063571370202:707883463144308409225897:8224586234368616978309747 8083369453304830562366938:419872914050623356459083:8421474579592605369478545 3940322729853216755967908:269931459690132480987186:4209036341235006484936598 5177174099985614860645787:8891583013415327032369207:3714482922235927846294956 1480846719616911957080971:8543004836268449798104257:7445288418533772350037834 2229476385185618457914404:4606414985610259845582067:2528502815546930737602775 4317803611959032594814043:315:4317803611959032594814304 8066209234705228429501676:536:8066209234705228429502196 8439438856909059483711466:265:8439438856909059483711203 9220483941877267920889682:5380:9220483941877267920892502 1914635256933799029300022:2403:1914635256933799029297749 8273638540021490338534386:6841:8273638540021490338531659 5415246020903869582829559:55432:5415246020903869582851967 8253923641485469532409226:48202:8253923641485469532385728 6025426765960985511709095:67749:6025426765960985511641346 2581316837824423735881795:145154:2581316837824423736002369 2114561505209928897860361:209943:2114561505209928897931038 2404045212862281409169504:554359:2404045212862281408675095 1153283296486691528849437:9673380:1153283296486691538379449 5402804105713109038573363:9952507:5402804105713109031680968 1076137288539453946872233:5691229:1076137288539453949908724 5247704558396984849970541:68897241:5247704558396984918736052 3852368108503137639903691:37302460:3852368108503137609023863 8342368368410428693764461:16305873:8342368368410428699547580 4373873771445267176310882:532331438:4373873771445267152630732 3195653557188677554575315:443506789:3195653557188677112297398 4957655727167824965552656:601436289:4957655727167825566988945 6107212555288290356257133:7764145234:6107212555288293816210751 6062763135656527493646411:2307946039:6062763135656529784782460 5044989582667304394190266:1553325269:5044989582667305140072815 4292973142447496558629045:43355100120:4292973142447470387856237 5200577854282603728966229:66011287648:5200577854282615312859701 8252086579645011723476176:54696477602:8252086579644958370226034 8756157672651407314859562:869838514144:8756157672650627670692298 7642538242464740043221272:205960069918:7642538242464577167043078 9898183885121570552122963:351835019915:9898183885121774948963544 1118698765805737058654084:6229735065617:1118698765802807200784277 8506889695077767464824756:3361418566732:8506889695074514499531768 7210756571156430384488789:5855851363210:7210756571159939782793951 8342835003373161789407932:87881615219844:8342835003308103641030200 6387850793763261461285939:28827427984032:6387850793787363081658003 7155228579840880210385780:38811907829540:7155228579873090749215824 6593820574086356493523356:374578487703042:6593820573852801699082142 8584172701198517799320548:681368332508733:8584172701784065272899033 3091329275678258023817201:112976221958508:3091329275578476495187613 9937421114593485263356902:6358622477415820:9937421109373957100844650 7798652337202647331508706:8530883695280005:7798652335585493960027751 8805097163598482889447487:9078809287096342:8805097172536279808958505 4674868807216781560932896:41213935586971830:4674868839188076226509462 3817630012482035642098822:94039260778698638:3817629955615107244028680 2228297164775189421287317:77672338960239996:2228297088369629861882601 8336198637457691902111937:234137946994605967:8336198430062071048507214 6443610314843389971307078:547084768380478253:6443610788669485291075947 7052006258661466303999822:401759874793333013:7052006073822797580619355 2604085635592869929178344:9117556652527548143:2604085169453883792892423 4872707497470318369311329:1953725988620612593:4872709441612053104966032 1760937359582496262257474:2786020666594328263:1760939856866942636557701 5083170410655810147721477:12360484396693102074:5083177001466124963986687 4687891577237046208581362:30979844195148178626:4687883861018546964294192 6582101642318461105310765:82720661116121997967:6582167945804199074524834 4370049169489952524805798:704142351062799613462:4369424704826949246179504 3695383039347911254361784:805791813240388941228:3696076340231319462949652 4949832999208784406731673:300212008660814540598:4950123409130647763776687 1522077099348579218236823:6842556556611069813240:1526451395073925549130863 5894166922880590549982543:8281107748490086550308:5902432851237705715553899 8450131859939902432187516:5974438225899629365810:8444205713812811270020686 8633358461706724610323447:99827993604994094892267:8694114447460603288499996 8172796829437719938582943:51463176754359073635312:8199465276313589411361391 8439629183804515478750458:12627331026731739085274:8431890385550456969379104 3901592719834714581443295:861016561771641619940354:4289717611467324679399133 4174428109072067975406829:617246143541944516253064:4766284182751032035373413 3559526758715030488583707:447590270619230889085390:3244371824868231521044437 7864090806446271891293647:1532635966092883470804567:9396428669559964834440088 9509293220474899424729409:2957155303394228272337400:6873854367271224303831225 7619226146768388696965520:9899801526965303144802250:17516184474582355524773466 2191856080468687182988695:625:2191856080468687182989286 8787489389108299866329487:215:8787489389108299866329432 6078858350905688301991247:152:6078858350905688301991383 4849489621575700339611092:9095:4849489621575700339619411 6092945734049754104442997:6666:6092945734049754104441471 1508728546845667660317004:5353:1508728546845667660322213 1006641083100663537173003:16671:1006641083100663537189652 2394050928910371259339143:69983:2394050928910371259400408 3963763961009592137195387:34392:3963763961009592137160995 7057322362788587388534320:621011:7057322362788587388962787 1763510631393129223571418:679867:1763510631393129223952481 7323621733328323429096657:919287:7323621733328323428440614 7855218795057379795640415:7161441:7855218795057379792709182 4956083103817234460942966:2539107:4956083103817234462612501 4453079995809081499981033:9947878:4453079995809081492364815 3260486500063732395499497:60020091:3260486500063732335807122 8429576342601598299640507:21033777:8429576342601598278656394 5583115281200720764349688:50017227:5583115281200720813039411 8715787412203544188660041:753019431:8715787412203543574315886 2031133855124661312481115:606811971:2031133855124660844482584 4520269325469710834880739:356083339:4520269325469711189882472 7441564989784887593052343:8598747153:7441564989784896175001766 9607175413221302343415269:2016511470:9607175413221302480678923 3431379603065172523769488:3088263773:3431379603065171046528205 1556973087179596423505521:19814366230:1556973087179611674450535 3722706015980064167209528:63473790585:3722706015980110324270145 2218659325379702005464361:10572519034:2218659325379711302871891 7321327843866909787200385:989202772104:7321327843866782264388361 4593147381791676348031027:108370440107:4593147381791577976950680 3266769479251147068602498:120093365755:3266769479251189244865913 2007313379831697939259551:7512410409754:2007313379832990480444293 8231687158935249759384831:5474980361735:8231687158930050730705656 8762320306009705023030296:5443072429305:8762320306014847435163873 2115585750804495031558431:63074805990572:2115585750849173519115699 7309639124364096438580572:41241213561976:7309639124332769624643876 3966153229433790541533317:78462702168583:3966153229360279979735682 1636789203377941891528093:966120637098655:1636789204260377464823554 2314499027957409277998522:128130526930226:2314499027978816779456648 6223004072924143215160345:819105336098953:6223004073723796625042576 2000368408044388807654082:9548986379734763:2000368416528493843166249 9597349208025840616513630:5384994379603426:9597349202714544121429436 7938016897462169361437951:5382104217104164:7938016892691778008972251 1751422488150047534099662:23345111965508975:1751422510368697973344673 1238402805410363328950237:55273387046133371:1238402824645467906847142 4554606022615936077198004:34465368334311391:4554605997373413027638635 8808735831380382486987413:143770617529765973:8808735871558207487447744 4551851405632443990653780:569021861641274694:4551851415925686451633682 9033144355916648073319724:444535612580632718:9033144217640653829426594 6996939343240960846040146:2457663810927652799:6996941511336936510284781 6207260825392667226924197:7553982967911335157:6207257922014478549983312 7634155101733436042528363:8163329798490923923:7634149425499240296998392 6061771020400787581848161:39613101731987020785:6061810388051655133172112 9873477268065897337685365:89124975687205869522:9873556546191203167818407 7988599084528084405920727:80107409900299208023:7988519700334327048627840 5542419743047038241564521:566693497939534246767:5542759291576036859843590 5136884258665852783612970:127239420070175961715:5136789337679516456920665 9831709804326051379947358:681414519158965219526:9831210625811877849405336 2638538716556468161804696:9027309788019221497724:2641318341152307332808420 3629091229769154295885154:8631571395193289291779:3634719149314628121154913 7757233841867754106007658:8044133855591999330703:7759372707202771867003365 7350678921765326954665608:13226039909599983490087:7359179135998721906655919 7898577591518806893295025:94726704260628354554136:7993077597838263534464169 9544483085721225371978036:10791649002944000951046:9554942085906743262841394 3994256641174512155647100:578096861475663085688050:3889969230362194178181262 7495972749058089497274362:764596411197161303059165:7946518818597159701581095 8553830535165159723132564:340810919661084488212468:8894345586256991313852768 3014500217644727595936927:9804038245433735689206987:12553481478134710377467988 5432678590283863392099919:4946193214365376858015562:496138104537899289434373 7899268309478540066548134:3234145585101621173420635:5007614486672208948489213 Math-BigInt-2.005003/xt/author/lib-bitwise-_xor.t0000644403072340010010000001254614536617520021256 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 35945; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_xor'); my @data; # Small numbers. for (my $x = 0; $x <= 64 ; ++ $x) { for (my $y = 0; $y <= 64 ; ++ $y) { push @data, [ $x, $y, $x ^ $y ]; } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_xor(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_xor() in list context: $test", sub { plan tests => 9; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_xor(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_xor() in scalar context: $test", sub { plan tests => 8; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($y), "'$test' output arg is not the second input arg"); } is(ref($x), $REF, "'$test' first input arg is still a $REF"); if ($LIB->_str($x) eq $in0) { pass("'$test' first input value is unmodified"); } elsif ($LIB->_str($x) eq $out0) { pass("'$test' first input value is the output value"); } else { fail("'$test' first input value is neither unmodified nor the" . " output value"); diag(" got: '", $LIB->_str($x), "'"); if ($in0 eq $out0) { diag(" expected: '$in0' (first input and output value)"); } else { diag(" expected: '$in0' (first input value) or '$out0'", " (output value)"); } } is(ref($y), $REF, "'$test' second input arg is still a $REF"); is($LIB->_str($y), $in1, "'$test' second input arg is unmodified"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_even.t0000644403072340010010000000452614536617520022046 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1597; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_even'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; for (my $x = 0 ; $x <= 100 ; ++ $x) { push @data, [ $x, $x % 2 == 0 ]; } for (my $n = 3 ; $n <= 300 ; ++ $n) { my $x = randstr($n, 10); # random big integer my $b = substr($x, -1, 1) % 2 == 0; push @data, [ $x, $b ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_even(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_even() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_even(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_even() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_odd.t0000644403072340010010000000452114536617520021652 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1597; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_odd'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; for (my $x = 0 ; $x <= 100 ; ++ $x) { push @data, [ $x, $x % 2 != 0 ]; } for (my $n = 3 ; $n <= 300 ; ++ $n) { my $x = randstr($n, 10); # random big integer my $b = substr($x, -1, 1) % 2 != 0; push @data, [ $x, $b ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_odd(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_odd() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_odd(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_odd() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_one.t0000644403072340010010000000423014536617520021662 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_one'); # Generate test data. my @data; for (my $x = 0 ; $x <= 10 ; ++ $x) { push @data, [ $x, $x == 1 ]; } for (my $e = 2 ; $e <= 10 ; ++ $e) { my $x = "1" . ("0" x $e); push @data, [ $x, $x == 1 ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_one(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_one() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_one(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_one() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_ten.t0000644403072340010010000000431414536617520021672 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_ten'); # Generate test data. my @data; for (my $x = 0 ; $x <= 10 ; ++ $x) { push @data, [ $x, $x == 10 ]; } for (my $e = 2 ; $e <= 10 ; ++ $e) { my $x = "1" . ("0" x $e); push @data, [ $x, $x == 10 ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_ten(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_ten() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_ten(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_ten() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_two.t0000644403072340010010000000431214536617520021713 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_two'); # Generate test data. my @data; for (my $x = 0 ; $x <= 10 ; ++ $x) { push @data, [ $x, $x == 2 ]; } for (my $e = 2 ; $e <= 10 ; ++ $e) { my $x = "1" . ("0" x $e); push @data, [ $x, $x == 2 ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_two(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_two() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_two(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_two() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-boolean-_is_zero.t0000644403072340010010000000431714536617520022066 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 81; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_is_zero'); # Generate test data. my @data; for (my $x = 0 ; $x <= 10 ; ++ $x) { push @data, [ $x, $x == 0 ]; } for (my $e = 2 ; $e <= 10 ; ++ $e) { my $x = "1" . ("0" x $e); push @data, [ $x, $x == 0 ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_is_zero(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_zero() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); ok($got[0] && $out0 || !$got[0] && !$out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_is_zero(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_is_zero() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); ok($got && $out0 || !$got && !$out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-comparison-_acmp.t0000644403072340010010000000621514536617520022066 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5385; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; can_ok($LIB, '_acmp'); # Generate test data. my @data; # Small integers. for my $a (0 .. 10) { for my $b (0 .. 10) { push @data, [ $a, $b, $a <=> $b ]; } } # Integers close to a power of ten. for my $n (2 .. 26) { my $x = "9" x $n; # e.g., "9999" my $y = "1" . ("0" x $n); # e.g., "10000" my $z = "1" . ("0" x ($n - 1)) . "1"; # e.g., "10001" push @data, [ $x, $x, 0 ]; push @data, [ $x, $y, -1 ]; push @data, [ $x, $z, -1 ]; push @data, [ $y, $x, 1 ]; push @data, [ $y, $y, 0 ]; push @data, [ $y, $z, -1 ]; push @data, [ $z, $x, 1 ]; push @data, [ $z, $y, 1 ]; push @data, [ $z, $z, 0 ]; } # Random large integers. for (1 .. 1000) { my $na = 2 + int rand 35; # number of digits in $a my $nb = 2 + int rand 35; # number of digits in $a my $a = randstr($na, 10); # generate $a my $b = randstr($na, 10); # generate $b my $cmp = length($a) <=> length($b) || $a cmp $b; push @data, [ $a, $b, $cmp ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\@got = $LIB->_acmp(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' one output arg"); is(ref($got[0]), "", "'$test' output arg is a Perl scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$y = $LIB->_new("$in1"); | . qq|\$got = $LIB->_acmp(\$x, \$y);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a Perl scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-comparison-_scmp.t0000644403072340010010000000516214760007464022107 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1765; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; can_ok($LIB, '_scmp'); # Generate test data. my @data; # Small integers. for my $a (-10 .. 10) { for my $b (-10 .. 10) { push @data, [ $a, $b, $a <=> $b ]; } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, @got); my $sgn_in0 = $in0 < 0 ? "-" : "+"; my $abs_in0 = abs($in0); my $sgn_in1 = $in1 < 0 ? "-" : "+"; my $abs_in1 = abs($in1); my $test = qq|\$x = $LIB->_new("$abs_in0"); | . qq|\$y = $LIB->_new("$abs_in1"); | . qq|\@got = $LIB->_scmp(\$x, "$sgn_in0", \$y, "$sgn_in1");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in list context: $test", sub { plan tests => 3, cmp_ok(scalar(@got), "==", 1, "'$test' one output arg"); is(ref($got[0]), "", "'$test' output arg is a Perl scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $y, $got); my $sgn_in0 = $in0 < 0 ? "-" : "+"; my $abs_in0 = abs($in0); my $sgn_in1 = $in1 < 0 ? "-" : "+"; my $abs_in1 = abs($in1); my $test = qq|\$x = $LIB->_new("$abs_in0"); | . qq|\$y = $LIB->_new("$abs_in1"); | . qq|\$got = $LIB->_scmp(\$x, "$sgn_in0", \$y, "$sgn_in1");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a Perl scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-binary-_from_base.dat0000644403072340010010000000111514505066136025074 0ustar OSPJADomain Users# Base 2 11111010:2:250 11111010:2:01:250 # Base 8 372:8:250 372:8:01234567:250 # Base 10 (in the last case, use a truncted collation sequence that does not # include unused characters) 250:10:250 250:10:0123456789:250 250:10:012345:250 # Base 16 fa:16:250 FA:16:250 fa:16:0123456789abcdef:250 # Base 3 100021:3:250 100021:3:012:250 /|-:3:-/|:15 # Base 4 3322:4:250 3322:4:0123:250 # Base 5 2000:5:250 2000:5:01234:250 caaa:5:abcde:250 # when base is less than or equal to 36, case is ignored 6Y:36:250 6y:36:250 6S:37:250 7H:37:276 121:3:16 XYZ:36:44027 Why:62:125734 Math-BigInt-2.005003/xt/author/lib-constructor-binary-_from_base.t0000644403072340010010000001554614536617520024607 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 19031; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_base'); my @data; my $max = 0x7fffffff; # 2**31-1 (max value for a 32 bit signed int) # Small numbers and other simple tests. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ sprintf("%b", $x), 2, $x ]; push @data, [ sprintf("%o", $x), 8, $x ]; push @data, [ sprintf("%d", $x), 10, $x ]; push @data, [ sprintf("%X", $x), 16, $x ]; } my $collseq = '0123456789' # 48 .. 57 . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90 . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122 . '!"#$%&\'()*+,-./' # 33 .. 47 . ':;<=>?@' # 58 .. 64 . '[\\]^_`' # 91 .. 96 . '{|}~'; # 123 .. 126 for my $base (2 .. 94) { # "0" is converted to zero, regardless of base and collation sequence. push @data, [ "0", $base, "0" ]; push @data, [ "0", $base, $collseq, "0" ]; # Increasing integer powers of the base, with a collation sequence of # "01..." gives "1", "10", "100", "1000", ... for (my $pow = 0 ; ; $pow++) { my $x = $base ** $pow; last if $x > $max; push @data, [ '1' . ('0' x $pow), $base, $x ]; push @data, [ '1' . ('0' x $pow), $base, $collseq, $x ]; } # b^n-1 gives a string containing only one or more of the last character in # the collation sequence. E.g., # b = 2, n = 4, 2^4-1 -> "1111" # b = 10, n = 5, 10^5-1 -> "99999" # b = 16, n = 6, 10^6-1 -> "FFFFFF" for (my $pow = 1 ; ; $pow++) { my $x = $base ** $pow - 1; last if $x > $max; my $chr = substr $collseq, $base - 1, 1; push @data, [ $chr x $pow, $base, $x ]; push @data, [ $chr x $pow, $base, $collseq, $x ]; } } # "123" in base "10" is "123" # "10203" in base "100" is "123" # "1002030" in base "1000" is "123" # ... for my $exp (1 .. 100) { my $sep = "0" x ($exp - 1); my $x = join($sep, "1", "2", "3"); my $base = "1" . ("0" x $exp); my $str = "123"; push @data, [ $str, $base, $collseq, $x ]; } { my $collseq = '-|'; for my $base (2 .. 255) { for my $pow (0 .. 3) { my $x = $base ** $pow; last if $x > $max; my $str = '|' . ('-' x $pow); push @data, [ $str, $base, $collseq, $x ]; } } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, @got); # Collation sequence. Make an escaped version for display purposes. my ($cs, $csesc); if (@in == 3) { $cs = $in[2]; ($csesc = $cs) =~ s|([\@\$`"\\])|\\$1|g; } # We test with the base given as a scalar and as a reference. We also # accept test data with and without a collation sequence. for my $base_as_scalar (0, 1) { # To avoid integer overflow, don't test with a large, scalar base. next if $base_as_scalar && $in[1] > $max; my $test; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= @in == 3 ? qq| \@got = $LIB->_from_base("$in[0]", \$b, "$in[2]");| : qq| \@got = $LIB->_from_base("$in[0]", \$b);|; $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); @got = @in == 3 ? $LIB->_from_base($in[0], $b, $in[2]) : $LIB->_from_base($in[0], $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_from_base() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, $got); # Collation sequence. Make an escaped version for display purposes. my ($cs, $csesc); if (@in == 3) { $cs = $in[2]; ($csesc = $cs) =~ s|([\@\$`"\\])|\\$1|g; } # We test with the base given as a scalar and as a reference. We also # accept test data with and without a collation sequence. for my $base_as_scalar (0, 1) { # To avoid integer overflow, don't test with a large, scalar base. next if $base_as_scalar && $in[1] > $max; my $test; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= @in == 3 ? qq| \$got = $LIB->_from_base("$in[0]", \$b, "$in[2]");| : qq| \$got = $LIB->_from_base("$in[0]", \$b);|; $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); $got = @in == 3 ? $LIB->_from_base($in[0], $b, $in[2]) : $LIB->_from_base($in[0], $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_from_base() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } } Math-BigInt-2.005003/xt/author/lib-constructor-nullary-_one.t0000644403072340010010000000416714536617520023632 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_one'); my $out0 = '1'; # List context. { my @got; my $test = qq|\@got = $LIB->_one(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_one() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. { my $got; my $test = qq|\$got = $LIB->_one(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_one() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-nullary-_ten.t0000644403072340010010000000417014536617520023631 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_ten'); my $out0 = '10'; # List context. { my @got; my $test = qq|\@got = $LIB->_ten(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ten() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. { my $got; my $test = qq|\$got = $LIB->_ten(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_ten() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-nullary-_two.t0000644403072340010010000000416714536617520023662 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_two'); my $out0 = '2'; # List context. { my @got; my $test = qq|\@got = $LIB->_two(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_two() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. { my $got; my $test = qq|\$got = $LIB->_two(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_two() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-nullary-_zero.t0000644403072340010010000000417414536617521024027 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_zero'); my $out0 = '0'; # List context. { my @got; my $test = qq|\@got = $LIB->_zero(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_zero() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. { my $got; my $test = qq|\$got = $LIB->_zero(); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_zero() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_copy.t0000644403072340010010000000643314536617521023472 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1597; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; can_ok($LIB, '_copy'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; for (my $x = 0 ; $x <= 100 ; ++ $x) { push @data, [ $x ]; } for (my $n = 3 ; $n <= 300 ; ++ $n) { my $x = randstr($n, 10); # random $n-digit integer push @data, [ $x ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = @{ $data[$i] }; my $out0 = $in0; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_copy(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_copy() in list context: $test", sub { plan tests => 5; cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got[0]), refaddr($x), "'$test' output arg is not the input arg"); } }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = @{ $data[$i] }; my $out0 = $in0; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_copy(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_copy() in scalar context: $test", sub { plan tests => 4; is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; isnt(refaddr($got), refaddr($x), "'$test' output arg is not the input arg"); } }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_bin.dat0000644403072340010010000011120214505066136024603 0ustar OSPJADomain Users0b110000001:385 0b110110010:434 0b110000001:385 0b101101000:360 0b100011011:283 0b110000111:391 0b101101100:364 0b111000010:450 0b101110010:370 0b101101111:367 0b1101100001:865 0b1110101011:939 0b1001101101:621 0b1100110101:821 0b1001010011:595 0b1001100111:615 0b1011101000:744 0b1101010010:850 0b1001100110:614 0b1111111100:1020 0b11101100110:1894 0b11111000111:1991 0b10101110000:1392 0b11000111001:1593 0b10111110010:1522 0b10111111010:1530 0b11110000100:1924 0b10001101100:1132 0b11110011000:1944 0b10010011010:1178 0b101111111111:3071 0b111001111000:3704 0b100110110111:2487 0b111000110110:3638 0b110101011111:3423 0b101001101011:2667 0b110010100110:3238 0b111100100100:3876 0b101100101011:2859 0b110111110100:3572 0b1001010110101:4789 0b1110010011011:7323 0b1001111110101:5109 0b1000001011011:4187 0b1100010001010:6282 0b1111001001100:7756 0b1101101101100:7020 0b1010100000011:5379 0b1010010010100:5268 0b1100000001011:6155 0b11111111101100:16364 0b11110011111001:15609 0b10111101100001:12129 0b11000011001011:12491 0b10101011110011:10995 0b11011011101000:14056 0b10010110001010:9610 0b10101111000111:11207 0b10100010101001:10409 0b10011001110101:9845 0b100010001111001:17529 0b110100001101100:26732 0b111011110000001:30593 0b110001011111100:25340 0b101101011010101:23253 0b110100001110110:26742 0b110100011100010:26850 0b111101010001010:31370 0b111111101100100:32612 0b111101111111011:31739 0b1111011000011000:63000 0b1000000101001111:33103 0b1001011101000110:38726 0b1011010011001101:46285 0b1001001110011001:37785 0b1110111110110000:61360 0b1101011100110010:55090 0b1110001111000111:58311 0b1101100110101000:55720 0b1100111101010110:53078 0b10011000111111011:78331 0b11010100000100000:108576 0b11100001001111101:115325 0b11100111010110000:118448 0b11011010011100000:111840 0b10110011110011011:92059 0b10100111110011011:85915 0b10111110111111111:97791 0b11010000011001001:106697 0b11000110000111110:101438 0b100000011100100001:132897 0b110000000110111001:197049 0b100001011010011101:136861 0b111001101111110011:236531 0b100111101101101100:162668 0b111110101110011100:256924 0b111100111011010010:249554 0b111001100001000010:235586 0b110011100100100111:211239 0b100110001010001110:156302 0b1010011111011000011:343747 0b1111011100010010110:506006 0b1010111000000010011:356371 0b1011011010010111110:373950 0b1010101100101010011:350547 0b1010000110001101110:330862 0b1101111011111111010:456698 0b1100001011111011010:399322 0b1011101100101110101:383349 0b1010011100111011101:342493 0b11000101010010111000:808120 0b10001011110111001110:572878 0b10010110001101010001:615249 0b11101100110011010010:969938 0b11001100001110101110:836526 0b11011111000100010001:913681 0b10111001000101111001:758137 0b11101010111101101110:962414 0b11100100100101010010:936274 0b10100011111010111110:671422 0b101111111001111101100:1569772 0b110010011101011001101:1653453 0b100000101100000100001:1071137 0b100100110010110100101:1205669 0b101100111010100101001:1471785 0b110001001010110110101:1611189 0b110011010111111101001:1683433 0b110001110111000110000:1633840 0b110011110110101100111:1699175 0b111100101111011110000:1990384 0b1101010010100110111101:3484093 0b1111011000010011011001:4031705 0b1100000110100001101000:3172456 0b1011001000110101101110:2919790 0b1110010100100110101010:3754410 0b1011001010011100011111:2926367 0b1111110000110101101101:4132205 0b1000100101110001001001:2251849 0b1100110110111000010100:3370516 0b1101110000100100000101:3606789 0b11101001000000110101001:7635369 0b10001001100110110100011:4509091 0b10011101011110010101110:5160110 0b10111000111101001100010:6060642 0b11000110001110101001001:6495561 0b11100101000111011101101:7507693 0b10000110111110010011101:4422813 0b10001000001010111011001:4462041 0b10011110101100110000111:5200263 0b10000010001110010111101:4267197 0b101010000011011010000101:11024005 0b111100011100000000110001:15843377 0b101110001100110110010010:12111250 0b111110100110101100111101:16411453 0b111011000001100010000101:15472773 0b110110000101001100110111:14177079 0b111110011110011110100000:16377760 0b101010000010101000000011:11020803 0b100101110001001000011100:9900572 0b110001011001011100101110:12949294 0b1110000101101100011111100:29546748 0b1101000111100000100111001:27509049 0b1000111011101000001011000:18731096 0b1001101110100010111001110:20399566 0b1011100100110010010001001:24274057 0b1011111011000011001000100:25003588 0b1011000010001100110111000:23140792 0b1011111001001100111100101:24943077 0b1101011010011001101100000:28128096 0b1101010010010110000011010:27864090 0b11001110001111011100110100:54064948 0b11000100101010101011101010:51555050 0b11011101110000100100001110:58132750 0b10001000000101000000011110:35672094 0b10101101001100101111100001:45403105 0b11001001011001011111100001:52795361 0b11011000000101101111111010:56646650 0b10111001011011010000001011:48608267 0b11010000001111101011111001:54590201 0b11110111011110000100111011:64872763 0b101000010110100111111001000:84627400 0b100001010111010010101001000:69969224 0b111110111000001111011111101:131866365 0b110001010001011001011010010:103330514 0b111111101010110111001000100:133525060 0b111110001011111101101000100:130415428 0b111111000001101110101010100:132177236 0b111110000111011011000001111:130266639 0b100101100000010110111111000:78654968 0b111000010110101101011010110:118184662 0b1010010010100100110101100000:172641632 0b1011010110000011110011000110:190332102 0b1100010001111100101001100100:206031460 0b1001101010011101011011001110:162125518 0b1100000001011010100110011001:201697689 0b1110011110100001000011010101:242880725 0b1111001100110000111111001110:255004622 0b1001101101110000111100001010:162991882 0b1011010100000000010111111111:189793791 0b1010101010000010100111111000:178792952 0b10010101000001101010000011011:312529947 0b10010000101111010001101110000:303539056 0b10011011000101110010011100010:325248226 0b10110101110101001110111100100:381328868 0b11011100111011011110110010111:463322519 0b11101010001001000001010111010:491029178 0b10110111000110001000010101101:383979693 0b11111110000110011110101110111:532888951 0b11000001111111100000000111011:406831163 0b11101011111110011011001111000:494876280 0b110001011010111011110101111001:829144441 0b110011000111010100000110100110:857555366 0b110011110010010011000001011010:868823130 0b100010100100001011100000010100:579909652 0b100110001110111010100000110010:641443890 0b110110011011111100111011011110:913297118 0b111011110011001010000111010001:1003266513 0b111001000010001111100001100011:956889187 0b111000000010111100011100100000:940295968 0b111111110100011010100101010100:1070704980 0b1110100100000100000011000110011:1954678323 0b1111111010110110001110111110110:2136677878 0b1110111100010001111000110100101:2005463461 0b1001110111010111011111001010000:1324072528 0b1100111110100101100111100111001:1741868857 0b1010001111111110000100001100011:1375668323 0b1111011100101101101001000011000:2073481752 0b1101110111010010110001110011000:1860789144 0b1001110110011011011001100111100:1322103612 0b1000001101000000100111001011011:1101024859 0b10101001100001101010000111000000:2844172736 0b11000110111010000110110011100000:3337120992 0b11100100000011110101100100100010:3826211106 0b10011011011001101111001011110110:2607215350 0b11110111111111010011011011111001:4160567033 0b10110100100100110101100001101010:3029555306 0b11100110001001001111110000001010:3861183498 0b11111010110100100101010001010100:4208088148 0b11010010001100010011101001011101:3526441565 0b10001101101101100110110100000010:2377542914 0b111001111001000000010111010110100:7769960116 0b100000110000010101111100110000010:4396349826 0b101111101100011100100111100000001:6401445633 0b100010001001000110110101111011011:4582501339 0b101001011111010000000101001111110:5568465534 0b111110110100110111111011101011100:8432383836 0b111110011010001011100111000001111:8376405519 0b111001100000100100011000001011110:7718711390 0b100010101111010111101101110100001:4662746017 0b111100001100000011110001011011000:8078353112 0b1101111010001111000010010001111000:14935663736 0b1110111010101011101111111101101000:16016932712 0b1010110101001001010101011000001011:11629057547 0b1110111101101100100000111100100100:16067464996 0b1000110110100101010011111010110000:9505685168 0b1100111010101000100011001101010111:13868610391 0b1110111100011101001001111100011000:16046661400 0b1010101011010011110111010100011010:11464045850 0b1110100010101100101001100100010110:15614515478 0b1110011001111001101010100100100110:15466932518 0b11011110011101100000001101101111111:29858208639 0b10110111011000100010100000100101101:24613306669 0b10010110101001000111010011011010000:20218881744 0b11111111001010011111001010011100011:34247513315 0b10100111110010111110011001001000111:22521262663 0b11010100011101100100001010101010000:28516160848 0b11111001101110011110101100101001001:33517689161 0b11001111011000010111100111001100000:27834175072 0b10111110100100010011011100110010110:25577503126 0b11110111101111110011000101010111110:33252018878 0b100010001110001011101001000100000010:36745154818 0b111010101000100110000010110111011110:62958087646 0b110001111111111010001110011110010101:53685577621 0b100101111100001100000011011011010100:40738240212 0b101110100000011001100101010110110011:49935701427 0b100111101100111001000101111111111010:42629095418 0b110101011000100010001101011111100100:57319938020 0b100100100011001101110011010100010110:39245526294 0b110100010110101010100100000000001001:56214831113 0b101010110100101010010110101100010011:45980674835 0b1000111010001010110101011001000011000:76526826008 0b1000001010110000111010000110011011101:70164221149 0b1111110111110000010100100101111011001:136332331993 0b1101100100100010000011111010001101011:116572419179 0b1011001000100010010100001010001110000:95634986096 0b1111111011000100111010001001011001101:136778158797 0b1011000111001111011110111101101010011:95461276499 0b1000000101111100000011110111100010010:69516521234 0b1001110100110000100111111011010100000:84390704800 0b1000010101010101010101101001110100001:71582798753 0b10010110001011010011010000100010001010:161250871434 0b10010010010100100010111111111001110000:157111025264 0b11011000101011110011010111001110110011:232663118771 0b11110100001110100110111001000000111011:262238081083 0b11000100101110001010000110110110101011:211227798955 0b10001111000011010000001000110100000100:153599642884 0b10000101110000111011000000101010011111:143628438175 0b11110000110101101010001001001011001110:258598277838 0b10101110100101100000100100101011100110:187460373222 0b10100101010100000110010011110000011011:177504599067 0b110000111010110100110001101100111111011:420212169211 0b111001100110011011100111011111010001011:494784462475 0b111111001010001000110011011111110110000:542526521264 0b110111000111101111100001000110110010011:473485577619 0b100100111000010010101001111101101010000:316792961872 0b101001010101001001111111110101000111000:355026856504 0b100100111101100101110011000111101111111:317504196479 0b101100000101101101111001011010001101010:378724463722 0b111010111101010100100111001111101010110:506446716758 0b110010001001000010011001111011001110100:430709732980 0b1110000011100010100000101100011101100100:965872895844 0b1000110110001111110100001000000110010100:608003195284 0b1111010111011010101100011100000111100111:1055936070119 0b1000011110001100001001010000001110110010:582171820978 0b1110000010011101100011010011001001110000:964715950704 0b1010110011101110100001000001010011011011:742736008411 0b1101101001110000000001111001001010010110:938182414998 0b1011111010101110000011111111101100100101:818964069157 0b1101000110001110100000000111011101110100:900038948724 0b1010100011110111001000110010010010000101:725700781189 0b11010110000111100111101110110011111101000:1839268849640 0b10110001110111011101000000010110100111001:1527861226809 0b10111001101010110100000100000001010111100:1594884227772 0b10111011001000111000101000011101111000011:1607510277059 0b10001000000000010110011101100001110110011:1168278209459 0b10101110001011010011011000110011000001010:1496165672458 0b10000111100010000100001100100101111110110:1164213373942 0b10110101011100110110011101100110010010010:1558650473618 0b11111100111100000011110001001000000111110:2172724482110 0b10101000000010001001111101001000010100101:1443398324389 0b111100110001110110010101110110011011000001:4176693651137 0b110000001110110111110101111101011110110000:3314504161200 0b100010010111011011001010101101001101110100:2361614062452 0b101111100001110011000011101100111010100011:3266105495203 0b111100110110001101101110011010110010001101:4181380934797 0b111001111101000101100101111110101110000000:3982602267520 0b100011110000000011110111101110000010101111:2456786231471 0b110001110101010000100010001100111010000010:3424440077954 0b110001100000101101111100111001000110111100:3402385035708 0b100000110101111011001010001100101001110100:2256924101236 0b1111100010001001101011001010100110101110101:8539693469045 0b1100010110001110001111000101010010110010111:6787959006615 0b1000011010100101110011110110010101000011010:4626459601434 0b1000001111010110111011101011110100000000101:4529973487621 0b1001010101100111000101001010000000100100100:5133436256548 0b1111101000000100001110110011111101011000111:8590502525639 0b1000101000101101100000010011000010110100110:4747751425446 0b1101011111111000111110111010101110010110100:7420761693364 0b1100110100110010100111101100100001011101101:7050540499693 0b1000111110010111110000010100010100110111010:4933810792890 0b11100110110101111100010101000101001000111010:15863400124986 0b10111101101001111110110110000110010100010011:13033058886931 0b11000000011001100100111000100001111100001000:13221601877768 0b10011011111110100111000000111100010000001001:10718745445385 0b10011101101101011011000000001111110101101110:10837729279342 0b10001010001100110101101001001010101000111010:9497072675386 0b10011101101000111110110010000110111111010111:10832960843735 0b11100100011011000001101111000100100001100000:15697060841568 0b11000100001110100101110010111011001111111011:13484683932667 0b11001011000001110011010010011101001111011111:13951987995615 0b111111101011000000001100100111001100000100101:35004009912357 0b111100110000100010010101111110100110000000101:33402275187717 0b101011110000100111101111110100101010101001010:24057151640906 0b110110111101111101010100011010110110010011010:30219030064282 0b101100010000010000101001000001001111001010010:24328928271954 0b110111111001110000011110011011110101010001100:30732702313100 0b100000100100010100100011010001001001000100010:17904182006306 0b111101011000000011101001101101001100010100101:33741753194661 0b110010100001110011011000111000010101100010001:27778155817745 0b111100101011101101011101001000100011110110000:33360816916400 0b1010001010010101111101111111011101111001011000:44691248504408 0b1000010000011011111110001100011000111011101011:36313918181099 0b1110111100010011100101000001101000110100100110:65716842040614 0b1000011001000110000001111101100101110110001010:36908834381194 0b1100001100110100010011001000111101101101110100:53657347545972 0b1011100111011000111001111000100011101000001011:51085312145931 0b1011111000101100110000011001001111011001001011:52274858882635 0b1001101000110100100100101111001000100111001000:42387648580040 0b1110101101010110110101001100010111000001101110:64689542361198 0b1110000111001010011010001110010101101111101011:62064864877547 0b11101000101001101110101011001011111001100000111:127901800723207 0b10001100110110101100000001111110001010110000100:77435580126596 0b11110000101111111100101101000101000010000011001:132353269859353 0b10000101110001011010110111011001011011010010111:73542035879575 0b11101010110111000111110101001101000011001101001:129116357953129 0b10101001010000011011101010101111101001001010100:93049885020756 0b10101101010101001011111000001010101011000111010:95289738614330 0b10000010000110100110110111001011010001101000010:71525011399490 0b11111011101111101011010011010101011000011100111:138398248120551 0b11111010110001011111101010100111110101101110010:137864110402418 0b110101101011101100010001001010101100001010001010:236098935243402 0b101001011110011001010010010100010111011000110110:182408642131510 0b100111100101001010010010011010000110001011111100:174077480821500 0b110110110111100011000110110111101010100010101110:241311779039406 0b101101000110010101010000000001010111110110001000:198347227233672 0b110100111000001001101110000010101010111011000101:232557145403077 0b101001101010001100010101000100011001011101010110:183219363354454 0b110000100110010001110111001111111001110110000111:213736753175943 0b101001101010000101010010001001110001110100111000:183211798240568 0b100010101111001000110010111110100101101000000001:152772841986561 0b1101110101101101101110111101110100111100100001011:486926746024203 0b1100010110110110001000011101000100110111110010110:434772084158358 0b1001101000000100111010110110111100010111110001100:338691840946060 0b1101011110011100001110101001000000010010110011000:474131994781080 0b1011010001100100001100101101000111010111111011100:396684884684764 0b1000110011000110110000110000111111100010100111111:309570608022847 0b1011010100100010101011101011100000010011001111100:398321129629308 0b1000001100010010010011101101000001111100110101000:288229309872552 0b1010101010100000110110111100100010000111101110011:375215717683059 0b1111101011000000010101101001111010101011011101011:551407987807979 0b10011100001100110001011001011010101010101011001101:686972929223373 0b10000111110101101000111010111001001010100111111000:597422349003256 0b10101111000001111101000010100111111011001000010010:769792401191442 0b10101111111010110010110101011101000011001100111010:773698452992826 0b10101000010101101000001010101110101100101001000111:740358052563527 0b11011100101100001100110010100010011001001001011000:970607622197848 0b10100000010010000101000001111010110000101100100100:704929793248036 0b11000101011110001000100000001110001001111111011010:868485877506010 0b10101101111100111001001110011011110010100110101110:765046660475310 0b10111100011001011010101110010000101110111011111000:828579424431864 0b111010111101011110011100101111001111101111010101100:2074490241015468 0b100001000011001110100100011010111000000111001001011:1162858693660235 0b100001111011010100000100011011101100101101101110101:1193692265601909 0b110011100011011111010101111101110000100100010101010:1813913666078890 0b101000111001001110101000000110111101101100010010000:1438836607342736 0b101101000000110011000011101000101000100110100100000:1583735318531360 0b111111111001000010101100100111000111100100111111101:2247974690474493 0b101000100001010011101111101000111110110111110000110:1425686428348294 0b101001111111110000010100110001010100011000011000110:1477608976560326 0b100010011101010000011111110110000101110111001101011:1212353282764395 0b1100100111001110011001101100011000100100000101001001:3550213195317577 0b1011110110100111000111011011010001001101110010000110:3336407288700038 0b1010001111100111011110011001000100001100100011000001:2883433157150913 0b1110100100010100010110101110111111010001000101001111:4100378148540751 0b1100111111011100011100001110011100010011001100100000:3656731103146784 0b1000000001001001100000010101001101100010110101010011:2256851051097427 0b1010100100111010011011010100010000101000100111101001:2977094502091241 0b1000111110111000101111000101110001001000110001010111:2528377550703703 0b1100100110100011110111010110011100001100110100100100:3547290101927204 0b1000100001100100101001011101101110111000110100001111:2399453771959567 0b10011011010000010011001101010101001011011101100101011:5462538764794667 0b10001000001001011101011010001010110010101110001010010:4790275026803794 0b11100101101110000010100011010010001111001000000011100:8082531891515420 0b11101110010100011011111001110100110110101110110010111:8385115362909591 0b10110100100100111110110000000101101100000110010000000:6353517215616128 0b11011111101110111110100000011010001110011001010000010:7871940669158018 0b11101100110011010110011100001001001010010001011010001:8331742115341009 0b10000110100110101111010100001100001100100101000000011:4736003017689603 0b10111100111010011011001011001001110010101011010000110:6646781215069830 0b10100010100001111001110000101001010111110111010101000:5718506375737000 0b110000010001101010101110011111001010001001001011000101:13588501805699781 0b101001001000111001010011100100101010000000011010100101:11579596443485861 0b101011000000010000111011000001011010110101110000110001:12104586884766769 0b111111010011100111101000001101010100100100001100101111:17819209649242927 0b111110011000011111011011111111000010110100011100100000:17559162024838944 0b110110110001010111001010000001001000010011111110100110:15416744325758886 0b110101101111101110111101001100100000000101110100111000:15128108755606840 0b111010110111110111011100001000101110010100100100000010:16571250989680898 0b100001111111110100110001010111001111011010000110110001:9569377577705905 0b111001111011011001000110010111010001000110111000000010:16305283236392450 0b1001000110100011101010001011010011011100101011011010001:20496908303619793 0b1100111111100111100011110001001000001010100101111100100:29259960924064740 0b1000110111101100010111111000000110111110110111111010101:19973933329510357 0b1001100010000001010001011001110111111011001001111111101:21463166231614461 0b1010101000110010000011010100100110100000011001110110111:23952889346012087 0b1110010100110110100101110011110011001101101000010011000:32258896427405464 0b1001001100101101110011111001000011110110001011110111011:20713595544999867 0b1011110101111000011101110111111001011111111110111110001:26665612607487473 0b1100101100010111011001111100001000110010111100011010011:28582577339726035 0b1111100011111101011101111101001000110000111000110101011:35042242646798763 0b10001000100000110101110010110111010000111110001110001111:38425031067558799 0b10000111010000000101001100110011000000011001110000101111:38069847938145327 0b10000000000000001010001101011001011111010001101100101011:36029498600004395 0b11011001111011110111110101111011100100001111001110111101:61343392169259965 0b11101011111011101010011010100001010010100010011110001111:66409018964977551 0b10010001110110010001001000010110110011100100010111111110:41052543338300926 0b10000100010100110011101100011010110111101011010001011000:37246210244785240 0b11000011000110111001010101001001110110001000001100101101:54917948461581101 0b10000111001000111001111110111110110110100011110101100101:38038290864684389 0b11001010100010101101111101111111100001111101110011011010:57010637817502938 0b100100101100001010111101100110000101110010011100111011000:82618932321139160 0b111100111011001011100100000100111101111011101101110010000:137190223992707984 0b110100110101110000100101100101001001000001111111000100011:118985073123982883 0b101011110110110001110010000101110010011110010101001100000:98754716389812832 0b100100111111000100111100011111100111001110010011101001011:83284127396603723 0b111110111111010011111000101111001011101101000110111100011:141839136619662819 0b110111100110000001001111101100011100101010010101111001001:125186680462584777 0b111100111010000001010010011110010010111100110000111001010:137149390843175370 0b101000111011100100001100001111000001001110001100010001001:92167766804994185 0b110111100001100101001001101101111111011100110110100000000:125030498479009024 0b1010001011110010001001111011001011111011011000010010001100:183460794190365836 0b1000001110011010011000100010000111000011111000100111110010:148171872852216306 0b1011010001111110101101101010110001010000011010100111100101:203219275392068069 0b1100010111100001001110100001101010101000010000000011000101:222792840334344389 0b1110010011001100110110110110101101000010001110110001011110:257606149837745246 0b1000000111111110100100101001001010001011010111110100011000:146360709891849496 0b1110101111010001000111010110100111110011101101010000111001:265506175155360825 0b1010100101000111110010001111011111000000101010000011111100:190592798158921980 0b1011001001100101010011100000111110101011011111101110010011:200855727196994451 0b1011100011101001101010011111011011110101000111000110110010:208193247667057074 0b11110100000011001110010100110010010010101100110011101001111:549552582785656655 0b10011011001001101000101110110011000101100101101101100001001:349368022696385289 0b11010011011111001100001110011000110110101111100000000110011:476227196887220275 0b11110111001001110111111010010111101001001100011110111001010:556541951288425930 0b10101111111001110010000001111100011001011111110011100110110:396097981091145526 0b11011111110101001000110001110110011111010001011110001001000:504020956439166024 0b11001110001000101111011101001100010010010011111110111101010:464178325876243946 0b11001110100010000100110011000101111000111011010110111000100:465069668170575300 0b10111000110011000111000101011010001011001001011001100100001:416129463448023841 0b10100011001001111001000100110100100010111101000100101000001:367391406473251137 0b111100011011001100011011010011001011010100101101100101011001:1088518387515185497 0b111111010000100111001101101111110110010100110111001100110000:1139583174269170480 0b100110111110111000100000010111010100010000111101110110100100:702247106580307364 0b111001100111000101101110001010010101010100010100101001011010:1037823401555741274 0b100110011110110110111000001010000110110100010000100101100101:693232746315712869 0b100011110010010001011001011111001100011000000010000000000110:644654214938632198 0b111011110100001100001010101010100010000001111010000111110000:1077539720269373936 0b100100100010111011111100110010110111101000000000011010110010:658352158082598578 0b110011111110010101011111001001011111100011001001010001001110:936280272013136974 0b100000000111110011110110001011100001000000110100000101000001:578659100729229633 0b1011000001100111001001011000010010100111110011101110110000100:1588896215619722628 0b1111100101111110011001111101010110011110100110100000001100110:2247240116212023398 0b1011010101111100101101000100101001100101100110001111011000000:1634690706200272576 0b1011111100010011101111111110000001110110001011111100111111110:1721069932072270334 0b1001000110011011010011111000101000000110001010001011000100100:1311508401389639204 0b1001111111110111101000110100110110000001110110100111010110100:1440857665570557620 0b1000111101011110101110010001010100100100111000110111010010010:1291362261962354322 0b1001101011111111111101011000100010011110101010100001110011011:1396114446003553179 0b1001101111011001111111000011001011110000010010000111001110000:1403785555191860848 0b1111101011111111100000110010100111100110010000101000101001111:2260789855565402447 0b11010111101101100011000111001101000001110111000010101111111100:3885916480144681980 0b11101011100110000001001111010101001100011111001011011001110101:4244085150440011381 0b11010100010010110111110011001010010001010011100001000110001110:3824364441870143886 0b10000111111101101001010001001110010100000100010100111000110001:2449295275866541617 0b11001101101010111110010001001100011110111000111100011011010000:3705047503983593168 0b11110100111001101000110000110011011111000010000010101111100001:4411736585662901217 0b10110111001100100001110100010101101101100111110110111110010101:3300161359217389461 0b10010110101000110010010011011111011000001010101100111101101100:2713640017177792364 0b10010100101101000111100101011101000001110100100001001000100010:2678830713470587426 0b11110111111000111000001101100101111000101000011110101011110100:4465566255174249204 0b100100111100001101111011001101000001000010100100010011101110000:5323744703790851952 0b111010100000110110111000001011011101001100111111100001001111010:8432669343264785018 0b110010000011100010001110000101100111011111100010001011010000100:7213718816716560004 0b110010000100100010011000100101010101001010101000001101011110001:7215976386506529521 0b110111101000000011111011101010110101111000010111100110111110010:8016545693437775346 0b101111010011101011101000111111110001011101010100100011000011010:6817733502061659674 0b101001101001111010010101101010001110011001010111111100100011010:6003099104633944346 0b101101010110110100001111000100001001000001111010110101101001000:6536560928572140360 0b110001010101000010101101011101101000100010101100100111101101100:7109027374109708140 0b111101001010010100110111110011111011011101101101111100111001111:8814278840843434447 0b1101111101000011011001000100010001010101011001011011001011010111:16087812538550825687 0b1101110101111110010101001001010110101001011010110101100010101100:15960287131216861356 0b1001011100010001100010011000111011001101101011101011101000010010:10885633020760341010 0b1011110110111000000110010000010110101001000110111010010010110100:13670704180985832628 0b1101111011001000101001010110111010110100111110011000100011111110:16053262766663371006 0b1000101100011110110101000001000010011000110100010011110010111001:10024682988321717433 0b1011001010000010111001101111101111110000111001010110110011010101:12863097455476305109 0b1000011000111000011100110110101100111101111111101101010010100000:9671607104216945824 0b1110110100111110101011101010000001010111100110011000111101010100:17095293239232663380 0b1011100110011110010010010101010000111001100100001100100111110110:13375208569428822518 0b11100001111010011110110110001011001000110000001010100101100101111:32557607019901963055 0b11101101100111111111010001010010101010100101001000101011001101001:34245345888335844969 0b10000101110011110110101101111111110011001111011010000000101000001:19284087047734493505 0b10010111101001010110110101101101101011111001010100011001101111110:21854520777498047358 0b11111100000010011000010111101010000110110111101001001011101000010:36322388425756153666 0b10011001101001101101000010001001111100001000001100011101111001010:22143532049602329546 0b10000000100111111011000010110011010001010111001011000101101010000:18536641684325108560 0b11000001111111010101111101000110011110110101110011001111010000011:27956867149499833987 0b11011000101010111000110100101001011100000100010101011101110110110:31225455484653452214 0b11001101110001100100110111010100000011010110101011101110010000011:29655248792634907779 0b100110001110110101011010010110010010010001111001010000111001100101:44078252808623951461 0b101111100110000010001010010110000000100011110110101001110100101100:54872466302730673452 0b111110010100011100110101100111001000010011010100100010011010000011:71849538340600817283 0b110010100100110101110100100010100111001111110100001010010110101000:58309742827471414696 0b111001101111101110101110101111111000111101111110110100101011000000:66576355942588959424 0b110101001111100001000111100000110110101100011001000110101011000111:61384377440112241351 0b100011110001010001101000100100001101110001011011011110011000010011:41239921673357878803 0b101010001011001101010101011110100001100110010101000010110111100001:48624615208426679777 0b111101001100011111111011001010100110100100011110110110101100100001:70553370500762659617 0b101011001011010001100101110001000110011100101110110010110110111001:49778734258202553785 0b1000011100011101000110100111000000110101111110111100001110111000111:77887736309513854407 0b1101011111000100000111010100111010101110000000001111110100001001100:124380672298829998156 0b1010110110101100110110010111011111101110011110001001101100010100010:100116932589447862434 0b1110011000101010100010001110001110001101011111011010001010110100101:132681752709264381349 0b1010010000110010111000010100110001110101110101011001010110001111100:94654135116531281020 0b1001110011110010011110100011110111011001101101110110001011101111011:90473888162760038267 0b1111110000000010010111011111110101110110010001001110001000010000110:145273439925628768390 0b1110101001000100111001101001101111010000001111111101010011000110101:135046966881437001269 0b1000010110001001000110111011100001001010100111101100110111101110010:76978020457549033330 0b1010010011111000011111111111100110100000010101011000101011010101100:95099135412463752876 0b10110100111110001000001100100000011100111100000100100010011101111111:208645070343288006527 0b11011100000101101000000001110000100001000101001000010000110110100001:253744069737223097761 0b10100001111100111110001110111000011101111000000011110010110001110010:186718743053848226930 0b11000110001101000101101110000101001011101011100110001011100111101100:228514255133942004204 0b11001101100010000111000011011000011101010001100111011010100000001011:236963383193404024843 0b10100001010010001011000110110111011000100111011000011011111111111110:185947747833897664510 0b11011100011111100110011110110011100011101000001010101101111110000010:254212008900758790018 0b11001100010100111101111111000011100011001011011011100011010001010110:235573722204427138134 0b11100001111011111010101011010011010000111000011011000010100010011010:260486704037045741722 0b10000111011011100100001101110001111000011000010100100010100001100000:156140985583238522976 0b110111101101000100111101100001101000110101101110101001100110011010110:513781817429128957142 0b100100110001100001010010100000011010010001001001000010111000110000111:339177998072863093127 0b101101000010001011001101010101011010101111001001000000001001000001111:415365211003941818895 0b111010000001101101001001000110111001101011001000010000001000011001101:535201344770567311565 0b100110101110100011100000101111111010011110000011101010000000011010000:357197401286130335952 0b111111100111110100011100101101010001001101111101010001110010111110001:586811034296453228017 0b110010111010110000011011111100101001011101101101010110001000110011111:469636352461765284255 0b100100000101101010010110011010001011000010001110010100010101111011011:332857333303950846939 0b101100000000001011010010010111110111000101100001101001110101111111110:405853785855830060030 0b111000101111110101111011111111011001111011010101011011110100111001000:523403704028839668168 0b1101011101100001000000110000101010011111011100101111010001000100111110:993260104643526857022 0b1110010101010010100111110010010000001010011111011011001001010100111110:1057564477434842879294 0b1101100110110100100010100111010100110101010010001010110100100010010101:1003988200835074705557 0b1000101101101000001011011011100001101010101000011100001000011001011001:642901071291911013977 0b1100000011011110110100000001110100101010001100000101010001000110001011:889457556722711597451 0b1001011001100000011010110011100111000000011110110111010111001100101111:693489830351362421551 0b1000001001001001110111100011110011001100011001111101000001000111011011:600849872060113228251 0b1010001110111000011110011111000110001110101000011001010011001101111010:755028051346179044218 0b1011000101000011001101010101010100101100000001101111000010110101011100:817479142917120208220 0b1111001111011010101010100100001011010001100110101110001111010001000010:1124578822406436090946 0b10101011111100001011111010010011111001011101011101001011101000010101111:1585870351017189953711 0b11011010100100000110001010011110101011011101101100101110000111101011010:2015897130313702641498 0b11101010100001101000101001010000101010110111001011111110011011100010011:2163116381546601199379 0b11000111100001100011111000000111011101010001001110110011011111001001010:1840287623958631136842 0b10011011110000110101000011111001110000011111010010011001100011011101100:1436659677435970504428 0b11100010001000000011011000101010101001100111111110110011100111000101011:2085642625105455074859 0b10000110001011011001111101100011110101001110110110111011100011000010110:1237575580948128187926 0b11101000101111101011011001100100001001100110001100000011100010100001101:2146693453264808166669 0b10010100101101100001100101010010101010110101011110001110001000101110110:1371619866397098054006 0b11100101000101101101000010100001110101110100101010011011110001011100110:2112974192344759657190 0b111110011100110111111000000110010010111011111111100100001101001100000010:4608080914615324693250 0b101100000010001101000101111100101000011111011111000111000010101000110011:3249168661202979269171 0b111101010101111011100110111110000000000011001010111000011100110001101011:4526290723825336306795 0b101111011010101000000010110010111101101101110111010101010100111101010100:3498685208010966781780 0b110101100010100101101111100101011110101100101110001010000111001111100111:3950589001689138230247 0b111001000000111111010101011101001110011001100000110110111000111101110010:4206998595419202359154 0b101010001100011000111110100001001100000110000101010101000100100010011101:3113338005417970911389 0b110100100101011100110001101111101011101010111001011100100100111010011101:3880099268143348862621 0b110101111000011000101010100011111110100010000011001001010000111011011100:3975717673626453216988 0b101101000111001101100110110001010011000111101101000001110111011111101001:3328729483847926249449 0b1010100000011011000110101001010110101110110000000101001111110001010010101:6202012084698813555349 0b1110000001000001010011001001001101100101010001010001011110110000111110100:8273551940569590096372 0b1100000011101000101000010011011110111110101001111001101101101000011000000:7117075205464557801664 0b1000001100000101100010100100101111011001000100110011100000111100001100010:4833845377137258821730 0b1001100110010011101001001110010001010000000010000000000111111001010010011:5665981445059400430227 0b1100001101100111101011110101100111000101010111011100101110011101000011110:7209172766768821123614 0b1000101100001011000101000111110111100011001000110110101011110001110100100:5129791655388168709028 0b1100100110010011011111101111010100000001010101111000101011000110000110100:7436847520744746617908 0b1010100101011010100111110110001100010001100101000011100101110011111001110:6248059590737554237390 0b1110011110000010001000100010111001001000000010110110011010001010110001100:8541149978576018019724 Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_bin.t0000644403072340010010000000533514536617521024313 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3625; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_bin'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ sprintf("0b%b", $x), $x ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\@got = $LIB->_from_bin("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_bin() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$got = $LIB->_from_bin("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_bin() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_bytes.dat0000644403072340010010000020735714505066136025202 0ustar OSPJADomain Users\x00:0 \x01:1 \x02:2 \x07:7 \x13:19 \x17:23 \x1c:28 \x1d:29 \x1e:30 \x2b:43 \x30:48 \x3c:60 \x3e:62 \x40:64 \x4c:76 \x4f:79 \x53:83 \x54:84 \x61:97 \x65:101 \x69:105 \x72:114 \x78:120 \x7c:124 \x7d:125 \x7f:127 \x80:128 \x83:131 \x86:134 \x91:145 \x92:146 \x94:148 \x95:149 \xa2:162 \xa9:169 \xb0:176 \xb4:180 \xba:186 \xbd:189 \xc4:196 \xcf:207 \xd0:208 \xd3:211 \xd5:213 \xdd:221 \xde:222 \xef:239 \xfc:252 \xfe:254 \xff:255 \x01\x00:256 \x01\x01:257 \x01\xff:511 \x02\x00:512 \x02\x01:513 \x09\x5f:2399 \x0a\x9a:2714 \x15\x60:5472 \x1d\xdb:7643 \x20\x65:8293 \x2e\x60:11872 \x2f\xb8:12216 \x35\x02:13570 \x39\xbc:14780 \x40\x43:16451 \x43\xbb:17339 \x4a\x28:18984 \x4a\x63:19043 \x4c\xc2:19650 \x52\x53:21075 \x5e\xd3:24275 \x61\x8c:24972 \x68\x9f:26783 \x68\xfb:26875 \x69\x67:26983 \x77\x87:30599 \x7b\x43:31555 \x84\x96:33942 \x85\x19:34073 \x92\x5a:37466 \x92\x68:37480 \x99\x06:39174 \x99\x19:39193 \x9f\xad:40877 \xa2\x09:41481 \xa2\xb5:41653 \xac\x1f:44063 \xaf\xa6:44966 \xb6\x34:46644 \xc2\x81:49793 \xc3\x81:50049 \xc4\x40:50240 \xc7\x7e:51070 \xd6\xab:54955 \xd7\x17:55063 \xd9\x01:55553 \xf8\x15:63509 \xfe\x07:65031 \xff\xfe:65534 \xff\xff:65535 \x01\x00\x00:65536 \x01\x00\x01:65537 \x02\x4f\xcd:151501 \x21\xba\x35:2210357 \x23\x3e\xd8:2309848 \x2b\x3a\xaa:2833066 \x2f\xab\xf2:3124210 \x35\x7d\x52:3505490 \x37\x77\x82:3635074 \x38\xd3\x2f:3724079 \x3f\xa8\x5b:4171867 \x41\x1a\xbc:4266684 \x46\x6b\xed:4615149 \x47\x34\x12:4666386 \x58\x2f\xae:5779374 \x58\xa2\xcd:5808845 \x5b\x8d\xd5:6000085 \x60\xc6\x9c:6342300 \x62\x7f\xae:6455214 \x69\x1c\x4e:6888526 \x6b\x13\xea:7017450 \x70\xbd\xbe:7388606 \x75\x42\x5e:7684702 \x7a\x82\xfb:8028923 \x7b\x42\x21:8077857 \x7f\x12\x72:8327794 \x7f\x4e\x5e:8343134 \x7f\x4f\xcc:8343500 \x86\x1d\x8c:8789388 \x95\x33\x66:9778022 \x9b\x9f\xf5:10199029 \xa7\x48\x66:10963046 \xa7\x67\x60:10970976 \xab\xec\xcd:11267277 \xaf\x90\x3a:11505722 \xb3\x10\xb2:11735218 \xb4\x4d\x97:11816343 \xbb\xae\x9f:12299935 \xc1\x6d\xf3:12676595 \xc8\x81\x98:13140376 \xc8\xcc\x97:13159575 \xdd\xd9\x96:14539158 \xe2\x42\x8c:14828172 \xe5\x46\xc6:15025862 \xf0\x4d\xa7:15748519 \xf0\xc9\xd0:15780304 \xf4\x08\x0e:15992846 \xfc\x96\x5b:16553563 \xff\xff\xfe:16777214 \xff\xff\xff:16777215 \x01\x00\x00\x00:16777216 \x01\x00\x00\x01:16777217 \x01\xfa\xa6\x20:33203744 \x08\x1d\x27\x06:136128262 \x0c\x7a\x43\xac:209339308 \x1a\x49\x9f\x61:441032545 \x1e\xf9\x7a\x93:519666323 \x20\x7c\x8d\x79:545033593 \x22\x4e\x3a\x7e:575552126 \x29\x3c\x3e\x26:691813926 \x30\x09\x67\x58:805922648 \x34\x8f\xe6\xf5:881846005 \x37\xa4\x22\x29:933503529 \x38\x39\x2d\x59:943271257 \x3e\x3b\x38\x43:1044068419 \x43\xda\x94\xf7:1138398455 \x4b\x71\x75\xd0:1265726928 \x4f\x87\x8e\xac:1334283948 \x51\x0f\xc0\xb3:1359986867 \x54\xd4\xaa\x04:1423223300 \x60\xb7\x02\xb9:1622606521 \x62\x0a\x00\xaa:1644822698 \x62\xf1\x09\x0e:1659963662 \x64\x54\x26\x7d:1683236477 \x6c\x50\x0d\x93:1817185683 \x89\x30\x67\xa3:2301650851 \x8c\xcd\x0b\x80:2362248064 \x8e\x6c\xcb\x5d:2389494621 \x96\x45\x45\xfa:2521122298 \x97\x56\x9c\x87:2539035783 \x9f\xd4\x08\x6f:2681473135 \xa1\x75\x33\x99:2708812697 \xab\x44\x4e\x1d:2873380381 \xaf\x7f\x7a\xb5:2944367285 \xaf\xa1\xed\x7e:2946624894 \xbe\x2b\x4d\x76:3190508918 \xc1\x99\xb6\x74:3248076404 \xc6\x64\xa1\xe2:3328483810 \xc8\x07\xfd\x6e:3355966830 \xe4\x05\x8d\x61:3825569121 \xe6\xe7\xec\x65:3873959013 \xe8\x69\x5d\xcf:3899219407 \xeb\x22\xe3\x3a:3944932154 \xec\xc1\xde\x36:3972128310 \xf1\x15\xbe\x2d:4044733997 \xf8\xe6\xdd\x35:4175879477 \xfb\x57\x2b\xf7:4216794103 \xfb\xeb\x05\x67:4226483559 \xff\xff\xff\xfe:4294967294 \xff\xff\xff\xff:4294967295 \x01\x00\x00\x00\x00:4294967296 \x01\x00\x00\x00\x01:4294967297 \x0c\x51\x8a\xb9\x09:52907653385 \x0f\x49\x76\x5b\xf0:65657002992 \x13\x28\x69\xb3\x1a:82282394394 \x16\x43\x6a\x0b\x6f:95620303727 \x17\x06\x87\xa2\x96:98893800086 \x21\xb7\xea\x00\xeb:144819486955 \x21\xb7\xf1\x98\xb6:144819984566 \x24\x04\xb1\x47\x0f:154697549583 \x30\x5e\xf3\xfd\xd4:207751478740 \x31\x0a\xf3\x75\xde:210637125086 \x33\xf3\x23\x71\x8f:223122518415 \x36\xde\xf1\x95\xb4:235668608436 \x38\x0a\x39\x95\x51:240689714513 \x38\x56\x55\x75\x2e:241966609710 \x3a\xb6\x4f\xac\x88:252166777992 \x41\x12\x9a\xfa\x00:279485020672 \x47\xc8\x59\x74\x07:308303983623 \x4e\x05\xe3\xab\xf2:335106255858 \x52\x31\x5f\xce\xb3:353015680691 \x58\x3c\xea\xbd\xd2:378979139026 \x59\x6c\x21\xdb\x7b:384066247547 \x59\xec\xf2\x20\xd1:386227380433 \x64\x14\xa5\x08\x01:429843089409 \x70\xeb\x51\x9a\xe5:484984330981 \x73\x3a\xcd\x0d\x19:494907755801 \x7c\x25\x33\xf0\xd7:533200105687 \x7d\xe5\x8c\x58\x8a:540722092170 \x86\xcb\xf3\x38\xdc:578947332316 \x89\x40\xd4\xa2\xad:589498196653 \x95\xbe\x98\x5f\xc8:643147784136 \x98\x5a\xfb\xaf\xe7:654361472999 \xa9\x0e\xff\xf9\xce:726101129678 \xab\x4d\xc8\x9c\xea:735744400618 \xab\x6e\x27\x57\x09:736287479561 \xae\x44\x47\xeb\xaa:748469873578 \xb8\x31\x95\xfd\x8e:791105895822 \xb8\x3c\x61\x16\x7b:791286978171 \xba\x59\x36\xf7\xed:800360691693 \xc3\x1d\x6f\x58\xe1:838012459233 \xd0\x4a\xcc\xfa\x37:894608144951 \xd3\x14\x5c\xd0\x32:906579726386 \xd3\x2b\x17\x53\x17:906961048343 \xd5\xef\x4e\x46\x3b:918842918459 \xe8\x8f\x39\x10\x88:998835294344 \xf8\xb1\xf8\x32\xa0:1068137722528 \xfd\x5f\x52\x21\x8c:1088225943948 \xff\xff\xff\xff\xfe:1099511627774 \xff\xff\xff\xff\xff:1099511627775 \x05\x32\x1b\xce\x94\x7e:5712773026942 \x09\x4a\x15\x87\xa8\x15:10213793441813 \x09\x86\xdb\x18\x46\x04:10474806068740 \x0d\x8c\x43\x70\x95\x7b:14896078034299 \x16\xd5\xe5\xf4\x44\x42:25107941835842 \x1f\x54\xba\x0c\x70\xa0:34448759091360 \x22\x8c\xe8\xd0\x62\xc3:37988596736707 \x2b\x4d\x6a\xe7\x76\x51:47611506030161 \x2c\x4a\x15\x0a\x4d\x0b:48696692198667 \x2e\x64\x25\xa3\x1a\xab:51007663053483 \x2f\xd8\x88\x15\x81\x9a:52607042552218 \x35\x60\xf5\xdf\x09\xaa:58690558167466 \x37\x17\xa4\x67\xf0\x90:60574682050704 \x37\x90\xef\x1d\xb9\xf4:61095626521076 \x3e\x44\x90\x6c\xf9\x50:68464201759056 \x42\xba\x2c\x99\xd7\x0d:73367379629837 \x46\x88\x3f\x2c\x73\x9e:77550989374366 \x4e\x11\x98\x63\x26\x30:85837478045232 \x51\x14\x1c\x4d\xb7\x4d:89146816051021 \x59\x8c\xee\xed\x02\x11:98461838803473 \x5d\xc6\x0e\xdd\xd7\x7e:103105234327422 \x5f\x2d\x09\x30\xfb\x2f:104647032372015 \x69\x1e\x69\x72\x52\x23:115579339035171 \x69\x69\x8c\x13\x71\xd5:115902042567125 \x6c\x4a\xeb\xab\x91\x8e:119069037269390 \x78\xa6\xee\xd5\x8a\x2c:132658366876204 \x7b\x63\x75\x4f\x9b\x52:135667100130130 \x7b\xde\x02\xc7\x4b\xa6:136193459571622 \x82\x11\x5e\x96\xc6\xf3:143011112994547 \x82\x6c\x2d\x5a\x01\xa6:143401128952230 \x83\xde\x14\xc8\xfc\x35:144989854694453 \x9e\x2e\x9d\xc1\xc8\x51:173923052406865 \xa3\x07\x5e\xec\x9e\x41:179252052663873 \xab\xb8\xf0\xde\x6b\x0f:188810803440399 \xae\x69\x7d\x11\x65\xde:191768093091294 \xbf\xd2\x09\x77\x31\x47:210908822843719 \xc4\x3c\xa8\x67\xef\xef:215764802465775 \xc6\x3c\xf4\x3d\xbf\xf8:217965098024952 \xd4\xd9\xbf\xa1\x2c\xd3:234031688002771 \xd7\xef\xcf\xd9\x40\xb2:237424984277170 \xd9\xb7\x80\x0a\xe9\xad:239382150441389 \xe5\x55\x85\x73\x60\xfb:252155473912059 \xe5\x8e\x52\xc9\x24\xdd:252399437030621 \xec\x5a\xc7\xee\x5e\x6b:259874645499499 \xf1\x6c\x69\x3f\x8f\x02:265447924535042 \xf3\x05\xa4\x1c\xb3\x0b:267205553730315 \xf3\xa8\x8d\x13\x17\xb5:267905246894005 \xf6\x44\xd3\xe7\x46\x88:270775473358472 \xf8\xa7\xb1\x03\x9a\xe2:273399113030370 \xfc\x2d\x1a\x54\x3b\x8a:277270645455754 \x01\x57\xf4\x4f\xce\xae\x9b:378181799292571 \x02\x18\x63\x3a\xe1\x00\xa7:589764422074535 \x04\xc1\xbf\xf0\x3c\x38\x28:1338930020235304 \x09\x44\x75\x80\x6b\x6b\x46:2608546246781766 \x0c\xf4\x69\x86\x11\xed\x2f:3646433778593071 \x14\x42\x81\x43\xa6\x1b\xd3:5702622487387091 \x16\x73\x33\x94\xad\x8b\xf5:6319114862562293 \x1a\xf3\x26\x60\x62\xd3\x18:7585695545873176 \x1d\x28\x44\x7e\x17\xf7\xe1:8207048962996193 \x1e\x5c\xfd\xa4\x0e\xbb\xcb:8546493750229963 \x1e\x98\x5e\x48\x66\x5d\xd8:8611780010335704 \x29\x5c\x53\xa6\xd8\x77\xf7:11641988396382199 \x2d\xd8\xf5\x3a\xb0\x05\x5f:12904921715180895 \x2f\xf7\x3d\x74\x81\xc9\x64:13501167225129316 \x37\x15\x67\xea\xf2\x85\x77:15504659786663287 \x37\xfd\x57\x4e\x5e\x6a\x43:15759675137878595 \x3f\xb7\xfb\xbf\x90\x34\x18:17935215411344408 \x4b\xae\xc7\x3a\xbe\x28\xcb:21302793960564939 \x4c\x12\x32\x3c\x01\x73\x6c:21412105194402668 \x4d\xc0\x18\x8b\x78\x69\x98:21884784858392984 \x4e\x2e\x49\xe1\x7a\x9a\x07:22005943033829895 \x56\x77\x85\xb7\x03\x27\x12:24338264181909266 \x5d\x35\x8b\xdb\x5e\x0a\x0c:26236047631190540 \x64\xf5\x12\xa5\x28\xd7\xf9:28416958100199417 \x66\x8a\xf2\x57\xf4\xbc\x8c:28863221086862476 \x75\x84\x69\xd9\x00\xcd\x6e:33078162422287726 \x7c\x95\xa4\x31\xfa\x74\xa4:35067429557793956 \x83\x1c\x34\xa0\x0a\xa7\x6f:36904234298025839 \x83\x78\xa4\xb4\x23\x3f\x9a:37005870741274522 \x8a\x53\xdd\xc9\xdb\x03\x8c:38935758825522060 \x8e\x06\x02\x2b\xfd\xd9\x2f:39976053090670895 \x91\x35\xfd\x30\xbe\x71\xa4:40873233183830436 \x9a\xa3\x1c\x10\x0f\x77\xcf:43526487337301967 \xac\x5c\x8d\x5f\x96\x39\x41:48515458258057537 \xac\xf7\xdf\x5c\x61\x95\xb6:48686234693899702 \xb5\x30\xe4\x91\xa1\x89\x37:51000729038588215 \xb7\xc2\x58\x3c\x9a\x57\xa7:51723604967708583 \xc6\x35\xb0\xcf\xe2\xfe\x01:55791078906985985 \xc8\x2a\x31\x58\x35\x7c\x95:56341386763795605 \xc9\x83\x93\x95\x66\x9c\x1a:56721140208802842 \xd5\x3f\x26\x08\xd7\xc4\x24:60023602629035044 \xdc\x55\xba\xb5\x72\xe3\xe7:62018755272827879 \xde\xac\x4c\x51\xf8\xeb\x43:62676888622525251 \xde\xd2\x0b\xd6\x25\x26\xf3:62718393108997875 \xe3\xfb\x87\x9b\x6a\x6d\x66:64171379559918950 \xe7\xd2\x5e\x13\x26\xeb\x71:65252021110238065 \xee\x87\x5b\x41\xde\xda\x7e:67139870474033790 \xf0\x0d\x20\x46\xc2\x27\x8c:67568426687801228 \xf4\xa1\xfd\xbd\x2f\x55\x55:68858005490193749 \xfe\xc2\x3b\xea\x2c\x79\x20:71708206672148768 \x01\x32\x6b\x42\xed\x09\x5b\x9a:86249278062287770 \x08\x53\x6a\x0f\x6d\xd5\x0a\xfc:599939789870140156 \x11\x58\x91\xd4\x09\x8f\x97\x5e:1249909236474812254 \x1c\xa4\xb8\x27\xb3\x2f\xf7\x63:2063977009892030307 \x2d\x20\x7e\x18\x37\x9c\x81\xa4:3251737573438816676 \x2e\xc5\xa6\x68\xbe\xfa\xbb\x4e:3370282864967596878 \x33\x8c\x78\x87\x8c\xfe\x88\x4c:3714476316255225932 \x43\x1e\x74\xdb\xaf\xa6\x25\xdc:4836431536736052700 \x43\x25\xca\x98\x2a\xc2\xd0\x67:4838496129580716135 \x45\x09\x36\x3a\x32\xdd\x40\x97:4974566886996787351 \x49\xc1\x86\x07\xd3\x20\x0d\x20:5314676403438882080 \x4f\xdb\x03\x80\x38\xca\xfd\xff:5754196798139465215 \x5d\xa5\x7f\x66\x53\x41\x11\x51:6747939694144721233 \x6f\x08\x6c\x3d\x86\x89\x35\x60:8000763749529630048 \x8d\xac\xc0\xbc\x51\xac\x19\xe9:10208746370398689769 \x95\xd5\x5f\x8d\xb4\xb8\x53\x89:10796640743917638537 \x96\x04\xcb\x95\x6d\x60\x9c\x11:10809988848241646609 \x9c\x15\xe2\x13\xba\xf3\xef\x60:11247144218796486496 \x9f\x6b\xa9\x9c\xd7\x6f\xcd\x08:11487461765633002760 \xa2\x50\xf4\x78\x65\x13\x92\x53:11696117030210212435 \xa2\xb0\xbf\x26\x16\x61\xd6\xa8:11723080000350574248 \xa3\xa5\x84\xe8\xf3\x10\x07\xb9:11791977335384704953 \xa7\x1c\xb8\x16\x56\x44\x6a\xd4:12041701909757979348 \xa7\x20\xb1\x7b\x40\x88\xbf\x86:12042820546510503814 \xaa\x45\xc7\x73\x94\x78\x4e\x61:12269432059066863201 \xb2\x0b\x3d\xeb\x3f\xba\x8a\x46:12829416044090788422 \xb7\x9a\x11\x33\x5c\xe3\xa1\xc9:13229905767653679561 \xbc\x35\xbb\x3b\x2d\xe9\x66\x5d:13561951715743852125 \xc2\x9a\xc3\xbf\x49\x55\xc6\xb7:14022735616107988663 \xc3\x98\x21\xab\x53\x9e\x3f\x2b:14094052053581971243 \xc3\xb7\x2a\xb3\x3c\x6c\x9a\xf3:14102787707435260659 \xc4\xb6\x11\x3b\xaf\xd3\x7d\xd4:14174535825245830612 \xc5\xc7\x83\xe4\xe1\xd8\x07\x28:14251504564902037288 \xc7\xaf\x37\xed\x24\x15\x51\x9d:14388780826124177821 \xcf\x7b\xd0\x50\x5e\xb1\x72\x14:14950772431591141908 \xcf\xf5\xad\x7e\x41\x17\x2e\xe8:14985074092914716392 \xd2\xe9\xe1\xfb\x13\x16\x4f\x63:15197926886011719523 \xd4\x7a\x4e\x74\x6d\x4f\x7d\xc6:15310636145156521414 \xd8\x10\xae\x05\x05\x32\x11\x04:15569135248405041412 \xde\xcd\x5e\xc5\x4d\x89\xf9\xcc:16054592448148142540 \xdf\x0d\xb5\x00\x16\xc7\x8f\x54:16072701657141972820 \xdf\xfc\x21\x67\xdc\x1d\x13\x32:16139811894547256114 \xe2\xab\x8e\x52\x76\x83\x27\x19:16333304958416004889 \xe9\x1a\x0b\xf0\x45\x9b\xa8\x6d:16796750886819571821 \xea\x8c\x38\x6a\xae\xd2\x19\x89:16900945532465322377 \xea\xe8\x87\x05\xe0\x49\x3f\xd1:16926927658779492305 \xeb\x66\xa5\xdf\xaf\x75\x96\xaf:16962427426677561007 \xf1\xa6\xdb\x2c\x2e\x6a\x38\x9a:17412845992078358682 \xfc\x69\x50\x6f\xd7\x9d\x71\x44:18188157011401470276 \xfd\x78\x0d\xb6\xa6\x7a\x36\x94:18264363366929282708 \x03\x77\xd8\x4f\x9c\xca\x4d\x98\x7c:63975972041439156348 \x12\x1d\xb3\x65\x77\x37\x22\x36\xdc:334181559137403549404 \x12\xfc\x90\xa6\x01\x9f\xba\x3f\xf6:350240621946881064950 \x17\x06\x5c\x73\xfe\x2d\xf4\xe3\x4b:424733482492934546251 \x17\xf5\x2e\x10\xa4\x9d\xe8\x4f\x07:441942190382750650119 \x1f\x91\x17\x0e\xa4\x7a\x89\x2e\x2d:582303907444553231917 \x21\x0b\x47\x5e\x42\xfe\xef\xa1\x98:609555276332016837016 \x24\x8e\x63\x52\x9d\x5b\xb7\xd2\xc9:674342921865426096841 \x28\xab\x0f\xc4\xe3\x18\x63\x38\x2d:750196050133164177453 \x2e\x64\x46\x96\x01\x56\xcf\xd4\x55:855775854975297508437 \x33\x9c\xd9\x7f\x52\xc5\xec\xf4\xdb:952086152492534789339 \x42\x27\x05\x2d\xee\xe4\xe1\xe9\x11:1220296812911258626321 \x49\x0f\x44\x1b\x9a\x33\x3e\xb3\x91:1347712351938881172369 \x49\xd2\x1f\x6b\x40\x07\x14\x5e\x48:1361753255775781019208 \x4a\xd8\x42\xe9\x8d\xc3\xc8\x85\xf5:1380642335910246516213 \x51\x7a\x23\x13\xf4\xbf\x23\x32\x97:1502987170009185464983 \x56\x43\xf6\x64\x38\x08\xf2\x43\x7c:1591317202175664472956 \x56\xf3\xb6\x9d\x3e\x95\x3d\x0c\x3f:1603981387028116606015 \x57\xe2\xc6\xd7\x40\xfd\x5a\xd8\x45:1621207719384819882053 \x58\x15\x8c\x4d\x51\x34\x27\x91\xe1:1624866179469139218913 \x59\xa5\x7a\x39\xec\xcc\x04\x84\xf4:1653684129212764816628 \x62\x9e\x1a\x44\xfa\xcb\xed\x8e\xfb:1819173413274877005563 \x66\x07\xe0\x7d\x7a\x37\x18\xb6\x60:1882135487035286795872 \x69\xa3\xf2\xf6\x6c\x22\xaa\x03\x9d:1948721903456347620253 \x6d\x93\x43\xc9\x69\xc6\x7e\xcc\x6b:2021306650637495094379 \x72\x4d\x23\xba\xec\x77\x23\xa2\x56:2108487316292768080470 \x86\x33\x55\x08\x91\x24\xfb\x8a\x6f:2475562577965518391919 \x8a\x2d\xe4\x2e\x53\x82\x2e\x3f\x1b:2548957501134516141851 \x96\x2f\x33\xd6\x92\xc0\xb3\x0c\x27:2770412909125814127655 \x9c\xa4\x3e\xc3\x79\x55\xe3\x05\xa2:2889527187295365694882 \xa1\xc4\x06\x56\x0b\x5e\x65\x42\xbe:2984050867755360273086 \xa7\x19\xf7\x7b\xb9\xc1\xef\x4f\x6c:3082477360517443702636 \xb2\xdc\xa8\x89\x6e\x35\x61\x9a\xef:3299420554711166720751 \xb4\x18\x4c\x1c\xcf\x17\xf2\xc9\xfb:3322164739298645166587 \xb4\x1f\x96\x4c\x88\xd9\xde\xf9\xe1:3322690024080056187361 \xb6\x0f\xb6\xd5\xf7\xa9\xf1\x87\xa4:3358439749031153469348 \xb9\xf2\xbf\x1f\xe3\x69\x78\x5c\xa8:3430139388175584877736 \xb9\xfa\x22\x1c\x3e\x52\x9a\x94\xd1:3430671653348956607697 \xbf\x43\x27\x7f\xfc\x66\x32\x6d\x90:3528167095125180312976 \xc1\x32\x4c\x4b\x14\x96\x5d\xe9\xd2:3563845960577864034770 \xc3\x8a\x50\x76\x06\x6f\xd3\xb3\x76:3607081690118751499126 \xc7\x5a\x5c\x98\x1b\xd9\x28\x6a\xb0:3677413317074846509744 \xc8\x56\x86\xf6\x8d\xd2\x06\xa7\x8c:3695583756565025826700 \xd2\xd8\x16\xa8\x71\xcf\xb0\x79\x91:3889387073447455127953 \xd9\x49\xb7\xda\xf3\xf3\x1e\x85\xd0:4008255419021770261968 \xdd\x91\xb8\x1c\x1f\xb9\xe8\xcd\x96:4087230613743613824406 \xdf\x9f\x19\xc7\x16\x04\x8e\x82\x44:4125088341661057974852 \xf4\x61\x04\x31\xb2\x03\x1a\xd6\xea:4507996321147342477034 \xfe\x56\xdf\x57\xa8\x65\xd9\x97\xe1:4691732813110069270497 \xff\x07\x2b\x8d\xe9\x98\x96\x16\x99:4704436401412626585241 \x05\x52\x4b\xb2\x26\xf0\x34\xbc\xcf\x8b:25129919893304227188619 \x05\x6c\xb6\x78\xae\x72\xf3\xf3\x22\x16:25617229225229708108310 \x0c\x97\x4d\xf4\x4c\x9f\x1a\xb3\x70\x9f:59459473348447354187935 \x13\x0c\xff\xb9\xfb\xa8\x90\x2b\x1a\x32:89964751139459528596018 \x18\x6a\x30\x10\x96\x79\xc9\x6c\x98\x43:115295613894247960057923 \x1f\xd8\x3d\x1b\x2d\x3f\xc4\x5d\x1b\x0f:150382260851692850191119 \x26\xd5\x4d\x34\x9e\xc8\xbe\xcc\x80\x56:183384646082771393740886 \x26\xd7\xde\x8c\x13\x3b\x1a\x48\x69\x5c:183432012538411796162908 \x2c\x8a\x2d\xcf\x5d\xda\x8f\xa8\x20\x9d:210333076888681487802525 \x2d\x4a\xc7\x75\x20\x08\x39\x04\xf3\xce:213885923219594052694990 \x3e\x24\xdf\x8d\xe7\x85\x8b\xcb\x7e\x60:293466913510574483275360 \x3e\xe1\x9d\xce\x84\x3f\x89\x1d\x51\x51:296948610526020227649873 \x40\x67\x8e\x27\xd0\xa7\x66\xd7\x5b\x94:304141712928544258481044 \x48\x77\x8e\x71\xef\x64\x23\xf1\x70\x34:342215813559625024892980 \x49\xbc\x81\x56\x75\x61\x9f\x17\x58\x25:348210060900882527508517 \x4e\x0e\x38\x8b\x82\xcc\xcb\x77\x41\xb9:368606914574968245666233 \x56\x1a\x7a\xbb\xa1\x4b\xe5\x98\xd8\x3a:406611976712346555439162 \x58\x30\xf5\x80\x12\xf7\x09\xee\x1f\x10:416471384368255381413648 \x59\xfe\xa1\xa3\xd6\x9f\xb0\xff\x03\xf2:424987737359163318010866 \x5e\x0a\x23\x45\x98\x4d\xdb\x98\x7f\x98:444089458435508630224792 \x61\x3b\x9f\x0e\x9a\xe0\x02\xdc\x1b\x69:459169368007093065096041 \x66\xac\x99\xbf\xd3\x04\xf4\xe3\xd8\x75:484865300039008451287157 \x6e\x52\x60\x86\xee\x50\xe9\x42\x12\x3e:520979901638410955264574 \x80\xb5\x0c\xff\x9d\x64\xbe\xb5\x70\xe2:607802707124959554400482 \x82\xea\x05\x31\xe4\xde\xf9\xb3\x45\xc7:618224555218192284468679 \x84\xe3\x25\x4f\xf3\x44\xd6\x50\x14\x25:627542475278504778798117 \x86\xaa\x10\x1a\xb1\xab\xf6\x30\x3d\xac:635934215632269211614636 \x87\x4a\x88\x45\x9d\xed\x4f\x31\xb0\xa9:638894353677061723369641 \x92\x6f\x21\x89\xde\x02\x5b\x77\x08\x3d:691515511797926728239165 \x92\x8c\xed\xd9\x5a\x20\xb3\x5f\x1b\xca:692065189498240968367050 \xa0\x7e\xfe\x0e\x4b\x29\x01\x8d\x59\x71:757921233664605437122929 \xa9\x29\x82\xb3\xc7\xb5\x08\x1d\x07\xe8:798845670202818233698280 \xad\x65\x06\x99\x52\x9c\x5c\xfd\x59\xf0:818832998189960479463920 \xaf\x8e\x80\x1f\xfc\xf1\xce\x64\x92\x2a:829042804536531281547818 \xb0\x66\x54\xd0\x56\x6b\x1b\xf1\x44\x32:833024180360288303924274 \xb6\xec\xeb\xa3\x89\xc7\x45\x9f\xd0\x99:863841111050179959574681 \xba\x01\xea\x08\x2e\xf7\xb7\x96\x67\x0e:878395476338273880008462 \xba\xc2\xe9\x7b\x48\xf6\xd3\x55\x91\x13:881955658285111580135699 \xbc\xd3\x7f\x2f\x16\x83\x0b\xec\xff\x9d:891706326347564834422685 \xbf\x46\xb0\xc2\x91\xc6\x2a\x69\xe3\xc3:903276007216238362747843 \xcc\x5c\x7f\x5f\x54\xb2\x24\x88\xa7\xc6:965069041107878600550342 \xcd\x59\x95\xe0\x57\xea\x65\xe7\xcf\xc4:969737688939408097005508 \xd8\xe7\xdc\xa5\x06\x83\xac\x67\xf2\x4d:1024308257302092376961613 \xd9\x2a\x23\xc3\x02\x29\xdf\x27\x97\xa0:1025530866939599459424160 \xdc\xb0\xb1\xaf\xf6\x1f\xb1\xe3\xa1\xfb:1042180056911176454611451 \xef\xbd\xec\xd5\xd7\xfc\x84\xff\xfc\xbf:1132149089819618864790719 \xf5\x8a\x46\x54\xb2\x0c\x21\x49\x9e\xef:1159530506856480861953775 \xf7\xbe\xa0\x62\xf0\xad\xa2\x34\x30\x6c:1169940959707029510041708 \xfa\xbc\xc0\x4c\x62\x6f\xec\x88\x44\xb5:1184073465161655060546741 \xfb\x1c\x92\x4a\x54\x3a\x58\xed\x0f\x9e:1185841037364832206917534 \x05\x5b\xee\xf8\xda\x2c\x2a\x2f\xc6\x5b\xc1:6478772704797252492090305 \x06\x93\x12\xc2\xb9\xaa\x04\x81\x09\x07\x83:7948088863495990037514115 \x09\x84\x0e\x41\x23\x40\x83\xc1\x6a\x36\xd7:11503947700353658954331863 \x0d\xd3\x4d\xf8\xc4\x49\x0d\x08\xf9\x5c\xc0:16713893307702087222123712 \x0f\x66\x63\x39\xf2\x6c\x3c\x62\xc1\x2d\xc7:18617399078654249814535623 \x10\x8b\xd3\x92\xd5\x9d\x4e\xb4\x10\xde\xd1:20003124898488361126256337 \x1c\xfb\xe3\x69\x05\x9c\x68\xca\x25\x5c\x48:35039431914941352656591944 \x1f\x79\x2d\x7a\x16\x4b\xc0\x84\x82\xee\xa3:38048945653266260760391331 \x26\xed\xca\xf2\xce\x42\x0e\x16\x5b\x3d\xdc:47062125740093134536916444 \x2f\xe7\xa9\x2d\x3d\xb5\x85\xb2\x5d\x82\x58:57913500939140207283634776 \x3e\x5a\xa0\xb2\x1a\xd9\x5f\x87\x71\x4e\x0e:75381378112426162892393998 \x43\x13\x64\xf8\xcb\xd7\x28\x21\x92\x2b\xfc:81089617479421357959818236 \x46\x6c\x12\xe5\x47\xd7\xba\x80\x49\x75\x8d:85135171515978244732581261 \x4e\x95\xf7\x17\x9d\x1c\xb2\xd8\x7a\x47\xba:95004404583222647700735930 \x4f\xc8\x2b\xa8\xa5\xac\xfa\x7c\xcc\x09\x65:96450418408434164719946085 \x50\x92\xc5\x0b\x42\x89\x8f\xb0\x5e\x81\x62:97407165895613956071784802 \x55\xc3\xf7\x20\xa6\xb8\x36\x7a\x05\x98\x2a:103684114829959666388539434 \x56\xe6\x74\x45\xef\xf2\xe9\xe1\xe4\xd2\x43:105055909639744272113914435 \x62\x16\x0a\x9e\xb0\x22\x3d\x47\x88\x0f\x1d:118578818286974628893560605 \x63\x04\x7a\x31\x8d\xac\x9b\x3a\xb2\xfd\xd8:119704799681256621721451992 \x64\xd5\x20\xde\x00\xf1\xfa\x0d\x5d\x3f\x81:121899052315176443295121281 \x67\xd6\xf3\xaa\xc5\x84\xd3\x06\x49\xa7\x6c:125534440711838419229714284 \x69\x9f\xd1\x3c\xd8\x9a\x8a\x09\x80\x05\x73:127691927084247897130141043 \x76\xf9\x71\x7f\xba\x5a\x6c\x8a\xfd\x29\x8c:143831209654609324172716428 \x7b\x04\x1d\xcb\x52\xa9\x9d\x2e\x55\x19\x84:148717314885068034988644740 \x83\x16\x70\x59\x00\x6d\xea\xe7\xd6\xf0\x38:158475246880722534605975608 \x83\xde\x91\xa8\xdb\x97\x14\xb9\xfd\x95\x4a:159420334674089104556004682 \x84\x3f\x8b\xba\x3c\x60\x35\xdc\x45\xc0\xfd:159878294794684858439680253 \x87\xd9\x53\x65\xe5\xd2\x15\x6d\xf3\x2d\x3f:164231277597021526467751231 \x8e\xc8\x60\xb9\x33\x88\x5a\xa7\x7a\xcd\x1f:172613723914442391735160095 \x95\x05\x41\x20\xa8\x91\x68\x90\xbe\xa1\xfb:180154760346649569970266619 \x9b\xb9\x4a\x73\x42\x23\xd4\xf6\xee\x73\x8a:188258513203899921358287754 \xa6\xe3\x8e\x47\x93\xc4\x78\xac\x10\xda\xb0:201756287842980340052318896 \xaf\xe8\x1d\xdb\x60\x53\x47\x67\xa9\x10\x32:212658158219890259057512498 \xb3\xf2\xb7\x53\x65\x41\x88\x9f\xfe\xa3\x06:217543916163319898113483526 \xbe\x66\xc7\x71\x78\x50\x38\x7a\x18\x4f\xf4:230181266186476242194681844 \xbe\xb8\x11\x1c\xa5\x3d\x83\x17\x92\x2a\x1b:230565136818400448440576539 \xc0\x18\xdb\xb7\x79\xfa\x96\x1f\x02\xd0\x43:232231147219423519215636547 \xcd\xfe\xe2\xdc\xb1\x60\x01\xa2\x81\x45\xf0:249033458974405848417256944 \xd1\xc6\x6a\x3d\x87\x83\x56\x88\x41\x8b\x3b:253602484651594266324339515 \xdc\xc1\x02\xb8\x1b\x86\xa7\x6a\x38\xdb\x7b:266875147206245588330404731 \xdd\xf7\x2a\x8d\x01\xe4\x31\x3d\x7b\x19\xa8:268339815580006080239573416 \xe2\xb4\xbc\xd9\x1c\xd6\x79\x41\xb6\x91\x55:274070744832323608877896021 \xe8\x6d\xcf\x58\x08\x5f\x61\x63\x36\xbb\x85:280989352916674964769651589 \xf0\x5b\x75\xd3\x58\x5a\x26\x72\x86\x7f\x8a:290574105555530024791474058 \xf3\x3c\xc9\xaf\x7e\x16\x55\xa5\xc9\x22\xd6:294056036596455244598682326 \xf4\x64\x13\xed\xd0\xdd\xdd\xa1\x77\xc1\x8b:295450504258834409742385547 \xf6\x85\x6c\x04\x56\x91\x26\x2c\x28\xb8\xf6:298025818928377217707194614 \xf7\x57\xd5\x91\x7a\x0b\x14\x45\x90\xde\x08:299019462968014029773135368 \xfd\xb0\x0a\x58\xa3\x3b\x6b\x54\xa1\x33\x9b:306689559717941004562674587 \x09\x65\x81\xdb\x38\x3a\xae\x10\x01\x69\x00\x4b:2908079825338167690332274763 \x11\x13\x85\x7d\xc4\x54\xb7\x72\x4a\x2f\x7a\xf8:5284845152267909030124419832 \x16\x17\xfb\xb7\x59\x0a\xf6\x8f\x44\xbd\x70\x87:6837664206078305467096723591 \x17\x6c\x25\x92\x0c\xfa\xa0\x3d\x8e\x40\xe6\x79:7248896636129053528878540409 \x1b\x7f\xf0\x09\x0c\xbb\x82\x0c\x11\x00\x05\x69:8510762379161430076430484841 \x1d\x4d\x75\x9f\x9b\x91\x1f\x71\xd1\x1a\x14\x4d:9068708034049912428981523533 \x1e\xb9\x1b\xeb\x60\x54\x92\x05\x83\x5d\x0f\x68:9508333417090286739290656616 \x20\x44\x8a\x46\xe3\x94\xc5\xf5\xf8\xb6\xd8\x60:9986380264262507957174327392 \x23\x2a\xc0\xad\x9b\x66\x7c\x3d\x6f\x50\xce\xed:10883660125020101681144188653 \x2c\xbd\xcd\x0a\x1e\x07\x98\x1a\x87\xc2\x55\x7a:13846795683806642337963201914 \x2f\xdf\x8b\xf5\xe5\x63\x19\x2b\x1a\x48\x6d\xf7:14816046864299780205844131319 \x30\xa8\x24\xce\xd6\x66\x3a\x4a\x7e\x8d\x61\x04:15058553829791583154901704964 \x35\x55\x09\xc9\x18\x8a\xe4\x20\x00\x81\xc8\x92:16505510426060913394485151890 \x35\x84\x87\x34\xa0\xc6\x1e\xc1\xad\xe5\xee\x6e:16562922219011279837127372398 \x3e\x9c\x9d\xd7\xa4\x0b\xcc\xa9\xb4\x62\x4a\x23:19377408426191829470254615075 \x3e\x9c\xe5\x0f\x62\xd8\xdb\x58\xf2\xc2\xa9\xb3:19377744742531698652350687667 \x40\xf4\xf2\xbc\xb4\x25\x44\x60\x88\xd1\x22\xf9:20103164822209650910919992057 \x66\xc8\x6d\x82\x19\xc2\xbb\xe3\xdb\xbd\x35\x58:31809773303579737802187552088 \x69\xee\x46\x0f\x0a\xd4\x65\x2c\xd3\x2e\x4a\x1b:32783981219444835819128244763 \x6d\xdf\xec\x45\x2b\x9b\xa7\x4d\x8d\x61\x82\x92:34004572282758262235737457298 \x7c\x1d\x18\xce\xd7\xf0\x85\x94\xdc\xeb\xdc\x8c:38411317219000564410565254284 \x7c\x5a\x6f\xae\x4e\xd7\x14\x03\xe1\x45\x6e\x93:38485471939706203965525159571 \x81\x25\x52\x42\x55\x3b\x7a\xee\x71\xc7\x99\x19:39968684979957597002078329113 \x83\x8e\xef\xa5\x66\xa6\xc9\x20\x25\x1a\x39\xe4:40715335449680479930937915876 \x84\xd1\x22\x28\x74\xd7\xfa\x83\xc0\x21\xaf\x66:41104848099466660557667544934 \x85\x15\x58\xa1\x1c\x0d\x60\x9f\x7e\x24\x84\x98:41187312288648467794972935320 \x92\x40\xf7\x5b\xc6\xa4\x55\x78\x04\x8d\xdf\xd8:45263350803860355300587331544 \x9c\x08\x12\xd2\x1a\x85\xbb\x0a\x49\x1e\x73\xc8:48289421817010834156822623176 \x9f\x64\x58\x45\xcf\x5c\x61\xd1\xbf\xdc\x61\x1c:49329425999573087676652085532 \xa0\xa3\xe4\x8b\xc6\xdd\x5c\x7b\x4f\x28\x35\x75:49715735757997627350220027253 \xb1\x13\xa7\x1a\xf3\x6f\x8a\x22\x32\x04\x3d\x7d:54802605461310131218908724605 \xb4\xd4\x68\xad\x64\xa5\x91\x2c\x41\x45\x25\x37:55964088366253719344562644279 \xba\x29\x32\x0d\x79\x41\xb8\x95\xd0\x36\x39\x14:57614014152243666725115410708 \xc9\x42\xa9\x15\xa2\x2e\x99\x40\xbb\xe9\xd9\xe2:62287074557188601443535935970 \xca\x13\x97\x9f\xc5\x1e\xb8\x0d\x3c\xbf\xde\x06:62539657599059595514737581574 \xcb\x57\x1c\x28\x4f\xc4\xe9\x35\x3a\xc8\x67\x5f:62930766509918780427038386015 \xd3\x93\xdc\x46\xbd\x67\x73\xc0\xfd\xe8\xd0\x16:65480089393333480939726622742 \xd6\x1e\x3b\x59\x78\x48\x75\xa4\x75\x40\x69\xaa:66266340146406302283638794666 \xd8\xe4\xfb\xb6\x8c\x8f\x3b\x1c\x16\xa5\x77\xdc:67125585889705671071277348828 \xdb\x60\xa3\x83\x3d\x06\x76\xf6\x5b\xe0\x65\x52:67894046196215088746269271378 \xde\x53\x32\x54\xe8\x53\x2e\x85\x08\x06\x28\x49:68806250707958040541031442505 \xde\xc3\x28\x00\x9a\x4c\x33\x97\x66\xbe\x1d\xad:68941601620941091037205372333 \xe1\xbd\xe0\x63\x49\x3f\x31\xe9\x88\x8b\xaa\x3d:69863673831307623642258188861 \xe4\xeb\x96\xfd\x41\x9b\xdf\x93\x35\xe4\xd1\x04:70847392833602412677817487620 \xe7\x05\xc3\x07\xe2\xae\xc5\x96\x2c\xd6\x32\xc0:71498002904754362265388856000 \xe8\x4e\x4a\xca\x9a\x13\x3a\x18\x01\x44\x39\x62:71895171684946313644024805730 \xf2\xc3\x55\x81\xbd\x92\x11\x05\x73\x6b\x1b\x20:75131516706031388083717085984 \xf4\x50\x36\x65\x6d\x98\xd5\x1b\x8a\xf3\xab\xda:75611313340785889769195547610 \xf7\x80\xa3\xf4\x80\x0a\x8b\xd0\x56\x2f\x61\xf1:76598314186751506760221024753 \xfc\x04\x28\xe5\xab\x67\x40\x98\x31\xd0\x64\x14:77995251309572035026141340692 \x07\xf8\xff\xc9\x19\x01\x47\x9f\x12\x02\x83\x0b\x39:631658645776469546496614927161 \x0b\x8b\x0a\xfe\x4b\x56\x4a\xcc\x76\xf1\xed\x0e\x31:914541494151081285838351175217 \x0d\x2e\xe2\xf2\xf3\x57\xd4\x46\xd4\x28\x0c\xdc\xed:1044476787674027593689838968045 \x13\xd1\x05\xd4\x4d\xb3\x60\xd8\x28\xd3\x6c\xa0\x53:1570024502027800837427519332435 \x1c\xd0\x19\x14\xa9\xfe\x92\x95\x0e\x68\xe4\xdd\x6e:2282791753170904886614526582126 \x23\x22\xae\xeb\x2f\xc3\xfd\x5e\xed\x72\xab\x3f\x03:2783719642063033487798481665795 \x26\x67\x0f\xb1\x95\x52\x4b\xfd\xd6\x1c\x97\xdc\x48:3042566104054300037411277102152 \x39\x7f\x54\xff\xd8\x00\xfa\x23\x69\xfb\x74\x71\xa2:4555412617517245954773795238306 \x3f\x12\x3d\xa0\xed\xc5\x30\xdf\x9f\x72\xf1\x2a\x61:4997019473015158679322645047905 \x42\xc2\x5d\xf2\x69\xfb\xbf\x3f\x9d\x22\xcf\x93\x32:5289212392715748654981598647090 \x46\x03\xff\x8d\x7a\xec\x69\x21\xea\xc1\x79\x23\x1e:5547208775233181443163998987038 \x47\xb4\xf5\x72\x9b\x6f\x5f\xa1\xd4\x0f\xe5\x57\xa1:5681203568323465355217588279201 \x4c\x0f\x74\xae\x6d\x30\x9c\x36\xe0\x91\xf2\x95\xf7:6026123685332450988425422738935 \x4c\x3c\xe4\x79\xfb\xc8\x6e\x13\x4c\x5a\x1b\x1d\xa6:6040185662811162188686502337958 \x67\x9c\x0a\x43\x6d\xb8\x09\xdf\xcb\xc6\x3a\x15\xde:8208792808182063582092476421598 \x6c\x80\x5e\x44\x44\x33\xb1\x6d\x86\x66\xc2\xac\xfc:8596369594203748714980894223612 \x72\xb5\x10\x6c\x89\xaa\xb0\x01\x70\x9c\x07\x60\x97:9088047168771995197355397177495 \x75\xd7\x42\x3f\xc3\x6b\xb6\xe4\x12\xbd\xac\x5d\x37:9336314381498576410683974114615 \x79\x2e\xee\x62\xab\x2f\xce\xd2\x7d\x62\x3a\xe4\x82:9601132164972588483754248037506 \x7a\x49\xef\xc6\x5f\x71\x56\xfd\x7d\x31\x45\xd5\xa4:9688718102517266561682607822244 \x82\xe4\x36\x54\x78\x42\xe9\x37\x2d\x6a\xc1\xc3\x43:10370289389985105048245022868291 \x89\x7f\x0d\x5b\x23\x51\xfc\x49\x32\x8c\x5d\xda\xec:10893579007124073725233043725036 \x8a\xe6\xab\xe6\xee\x5e\xaf\x07\x83\x0b\xcc\x80\x6b:11004875796083980885085821632619 \x8b\x41\xe6\xa8\x31\xfd\x51\x1c\xae\xa1\xc2\xc4\x89:11033109962339354703693139330185 \x90\x37\xa5\xb6\xb9\xed\x74\xcb\x9a\x79\x47\xc8\xa3:11426077413254933066724321773731 \x96\x22\x6e\x87\x6f\x38\x21\x9c\x72\xb0\xc5\xfa\xd8:11894880488884842446118078249688 \x99\xbd\x24\x1d\x9e\x15\xb3\x37\x77\x98\x85\x0c\x97:12180445192732961217799744982167 \x9c\x3b\x89\xc0\x47\x66\x37\xeb\xe1\x1d\xc1\x15\x4e:12378019498653432383117499372878 \xa5\x18\x14\xb2\x63\x85\xd2\x54\xf0\xcc\x40\x31\x63:13080099476022824754407083618659 \xa9\xd0\x66\xd3\x1a\xeb\xee\x3e\xf9\x06\x22\xb6\x3f:13454056654303057346073731446335 \xb4\x64\x14\xd2\x80\x27\x7e\x1d\x15\x96\x85\x6f\xe9:14292042926127097954347302350825 \xb8\x58\xcd\x60\xe6\x6d\x80\xa6\x29\x31\x4b\xa0\x62:14605464870879761463922823766114 \xbc\x4f\x42\x1e\x35\xdd\x39\xd7\xf9\x2b\x88\x33\x53:14919423800226289225358245376851 \xc4\x5a\xd0\xf8\x2a\x54\x99\x9e\x4e\x4a\x3c\x16\x1e:15556826132177958147785710376478 \xc6\x13\xf0\xb3\x87\xfb\x7c\xae\xd1\x4b\xa9\xc1\x92:15693347383019684345661258056082 \xc6\xd2\xe7\x3e\x3f\x18\x89\xef\xe6\x94\xfa\xbd\x47:15752447585701787309957308923207 \xc7\x39\xaf\x1d\xc4\xf8\xee\x44\x38\xfe\x69\x19\x02:15784256688498979601182355953922 \xd3\x59\xa1\x65\x82\x82\x4f\x3e\x4a\xa3\x94\x5a\xe1:16744881572807314190306198706913 \xdd\xc5\x6a\x32\x90\xbb\x8a\xd6\x3f\xa1\x30\x9f\xea:17570520847512271876701604061162 \xde\x4c\x82\xc8\x0c\x62\x83\x2d\x90\xf8\xa4\x51\xad:17612331043971411143134445588909 \xe3\xe8\x2e\x8b\xa1\x4b\x44\xdd\x82\x40\x5e\x57\x8a:18056649682988549580771341260682 \xe4\xdd\xd3\xd3\xf1\x12\xab\x66\xea\x78\xf2\x9c\x3d:18132673324637063407602140093501 \xe6\x23\xe9\xdf\x54\xa7\x5a\xef\x37\x9a\x3d\x34\xd2:18233592087989826328614995309778 \xe8\x47\xcb\x84\xe3\x00\x51\x4c\x67\x2f\x8e\x5f\x25:18403153178487833118308534476581 \xe9\xad\x28\x24\x2f\xbb\x08\xc4\xd6\x7a\xea\x95\x20:18513751300441135534434062865696 \xea\xd8\xc7\x4e\x3f\x0d\x07\x1a\x80\x5b\x96\x10\xe0:18606479736205038131601556771040 \xec\xbb\xa5\xe5\x98\xa0\x96\x95\xec\x1c\xce\xe7\xbd:18755920607200612891228241848253 \xee\x61\x47\x0d\x83\x5b\x5c\x3e\xae\x2b\xb4\x87\xff:18886408621894646414235594426367 \xf4\x33\x2b\xab\x32\x24\x49\x86\x7b\x4b\x56\xc0\x4e:19347508181241250943701777563726 \xff\xe1\x7c\x1a\x35\x7b\x46\x8b\x2b\x57\x59\xd4\x9f:20272965598916929871685128672415 \x14\x6a\x5f\x07\xfc\xa5\x30\x92\xcd\xf2\x8d\xcd\x52\xdb:414075788031042759889408496587483 \x14\x72\xff\x09\xb6\x05\xd7\x68\xa4\xeb\x2a\x8a\xfe\x90:414759133017074817928886074670736 \x15\xe4\xd6\xe6\x37\xf9\xaa\x64\xc0\x92\x20\x04\x7c\x6c:444061130839313301066039702092908 \x20\x37\xf2\x19\x94\x7f\xb8\xaf\xab\x46\x36\xc7\xb1\x27:653469582551926532012128285995303 \x2c\xf0\x99\xe3\x1d\x45\xae\x3b\x1f\x9a\xbe\xe2\x4c\x43:911488407334994665999908538043459 \x2f\x37\x67\xf4\x19\x0b\xf5\x5b\xf1\x00\x25\x90\xe0\x73:957662972362104389251060049436787 \x2f\xda\xee\xc0\x8e\x40\xf1\xaa\x09\x23\x9a\x62\x93\x36:970618881017607027585236164842294 \x34\xbd\xca\x74\x2f\x73\xa2\xe3\x02\x28\xfd\x43\x7f\xaa:1069722078536546146342082397306794 \x42\x17\xc0\xc5\xe4\x41\xb5\x60\x0c\x08\x97\xe0\x11\xd4:1340520941937022155998732576887252 \x46\xd9\x8d\x5d\xd0\x31\x75\x93\x1d\x40\xc2\xf9\x15\xa7:1437004934320862915793296041776551 \x47\x5c\x43\xfc\x44\x64\x04\xea\xf1\xf3\xb1\x65\x8c\x22:1447361113278511441769073958292514 \x4e\x84\x9d\x57\x9b\x61\x54\x16\xd4\xc0\xf5\x34\xda\x32:1592534761593563641562980112718386 \x4e\xbe\x66\x8a\x46\x3e\x02\x77\xb2\x09\x15\xac\x69\x00:1597113034597014930966402537646336 \x55\x55\x05\x57\x74\xaf\x7e\xae\x2d\x07\x28\x57\xbe\xb6:1730740863276731688437830926188214 \x57\xda\x05\x5a\xae\xde\x29\x9c\x9d\xed\xf5\x87\xee\x08:1781843031999967768169551852203528 \x58\x59\xc0\xcf\x88\x38\x8f\x4e\x12\xc4\xa5\xde\x5f\x18:1791963023597932067384648743673624 \x61\xe4\x4a\xb3\xbd\x88\x5a\xcc\x62\x24\xb5\xf0\xda\xe1:1985480871790955355816575219325665 \x68\xb2\xaa\x56\xf7\x2d\x43\x3b\x49\x56\x99\x87\xb0\x1c:2123525929293862361000536950943772 \x69\x99\x72\x3d\x3c\x2e\x1f\xa5\x3f\x3f\x6f\x1d\xba\x98:2141810272567895287494385256479384 \x6e\x30\x2c\x80\x6e\x2d\xc4\xf3\x19\xc3\x5d\x3a\xc1\xc1:2234881780805610093008401555177921 \x6f\x89\x78\x98\x8a\xe5\x67\xcc\x07\x97\xe4\xff\x66\x25:2262239046883611132530662588769829 \x7f\x1c\xb8\xc6\xb8\x1d\x04\xa4\xaa\x9f\x43\xcc\x2c\xdb:2578141593692731679489167738023131 \x8c\x01\xcd\xc6\xe6\x54\x92\xda\x82\x47\x67\x72\x99\x05:2839680257555778182601601547671813 \x91\x8c\x55\x26\xfa\x1e\x37\x19\x58\x57\x3a\x55\xfe\x3e:2952067688627654171763498592632382 \x93\x26\x56\x8e\x4c\x1e\xe3\xf7\x92\xe1\xcd\x20\x7d\x41:2984551669650118299882022435323201 \x94\xcd\x7d\x2e\xce\x1a\x85\x5a\xf6\x7b\x13\x61\xc5\x93:3018077136865983502438229111588243 \x9e\xaa\x9d\xd7\x04\x1e\x3c\x05\xc2\x7b\xca\x9e\xef\x3d:3218138354089429226026174490013501 \xa4\x4c\xa3\x0e\xf0\x1e\x65\x69\xa1\xd7\xb9\x37\x52\x6c:3332386979465449058796213556957804 \xa8\x4c\xf7\x3b\xfa\xb3\xf7\x87\x53\xa2\x14\x00\x17\x6d:3413542669072525374598754007521133 \xaa\x1a\xe5\xa3\xbf\x64\xf6\x1d\xea\x6d\xc0\x1f\xf8\x09:3450140634872146937277896254814217 \xab\x2b\xee\x0b\x9b\x39\xe6\xb0\xac\x18\xd6\x7b\x2f\xe2:3471772524676105397131223534088162 \xac\xb5\x31\xd1\x58\x81\xe3\xec\x5b\x09\xc4\xff\x6b\xa9:3502930167092111007469299646294953 \xae\xf4\xcc\x6d\xe0\xbc\xa4\x81\x75\x70\x86\x60\x19\x1e:3548534210465078978461724636616990 \xbc\x5a\x48\xc7\x47\x01\x02\x65\x58\x09\xd8\x12\xee\x1d:3820246063945049709910434694491677 \xbc\x62\xd4\x2a\x98\x12\x0d\xbe\xbb\xee\x14\x03\x2e\x1b:3820923027728011230980357665009179 \xbd\x2b\x5e\xe3\x58\x72\xcc\x7a\x78\xf6\x93\x2d\x0a\xe4:3836811592513049249138898660821732 \xc4\x7e\x9c\x10\x54\xa6\x77\x68\x0d\x70\x02\x27\x5a\x3a:3985383330196619501514384449428026 \xc4\xd1\x3a\x48\xcf\x4a\x3e\x19\x5c\xbf\x2d\x12\xd4\x5e:3991929006433336695643150553896030 \xcc\x41\xd6\x68\x8d\x24\x9c\x1b\x4c\x7f\x0d\x43\x7b\x3d:4142827745895283961734837265726269 \xcd\x25\x96\x14\x5f\xe7\x24\x4e\x50\xd5\x33\x3b\xcf\xcc:4160871858144498441323993219452876 \xcd\xff\x49\x1c\xf7\xd2\x34\xa9\x85\xa6\xbd\xdd\x46\x2c:4178119777615671882630567628195372 \xcf\xe8\x13\x5a\x97\xaa\xc4\x46\xe2\x02\x34\xb2\x6d\x88:4216845711393942903597740663664008 \xd7\xda\x1a\x09\xe7\xd2\xdc\x76\x7b\x31\x7d\x30\xa3\xa6:4377997862798562858066056154489766 \xd8\x38\xfe\xa2\x7a\x0e\x47\x37\x7d\x66\x07\xcd\x4d\xc3:4385516057104429110730533368581571 \xd9\x4f\xd6\xf7\x0b\x8e\xc1\xc2\xaf\x1e\xab\x54\x9b\x34:4407608437282398008208930670680884 \xe0\x72\xc5\x63\x39\x20\xc3\x18\x58\xe0\x41\x44\xcc\x52:4552352850244970499694560886967378 \xe1\x91\x4d\xa3\x38\x0e\x98\x1b\x64\x4c\x65\x8b\xc0\xdc:4575054272051580753016172183273692 \xf4\x73\x4e\x01\x40\x1d\x2b\x2a\xae\x0f\x41\x21\xe7\x94:4958043323322609387768044639610772 \xf5\x17\x2b\x0f\xb0\x07\xfc\xe2\x77\xd5\x47\xf8\xeb\xfd:4971025927453080796141494600264701 \xfd\x16\x33\xf6\x2e\x65\xac\x57\x0d\xc0\x34\x03\xb3\x62:5133208730649543344256059483337570 \x02\x83\xf4\xd6\xe6\x31\xd6\xd3\xde\x40\x62\x5c\xba\xa7\xb5:13060987554881903687783289085142965 \x0c\x9c\x95\x4e\x4a\x2e\x57\x10\x34\xfd\x3f\xf2\x0d\xbc\x08:65483447426312329123984155553414152 \x11\x0b\x17\x1a\xf5\x3b\x64\x19\xd2\x47\x8e\xd4\x67\x70\x14:88493983691547613457527398373748756 \x14\x78\xf3\x8d\x11\xb8\x38\x18\xe0\x93\xed\xbd\x97\xcd\x73:106299122425433793241733657527831923 \x15\x96\xae\xde\xb3\x0e\x6f\x25\xf8\x40\x24\x06\x9a\x1e\x43:112094450092194678262457320322244163 \x1a\x82\x75\xfe\x15\x44\xbf\xe5\x18\x29\x85\x1a\x60\x4d\xa5:137645779900299002014902460807663013 \x1c\x0e\x98\x0e\x4e\x70\xc3\xb5\x41\x1d\x75\xbb\xd2\x6d\x6c:145680312881747331814803974667791724 \x20\x05\xc3\xf6\x20\x82\xe2\x2b\x6d\xfe\xfe\x98\x1b\xeb\x66:166270437185439146025852797504449382 \x20\x15\x89\x92\x96\x68\x3b\x93\xd3\xde\x7f\x26\x59\x82\xbd:166590329699698155388924473669943997 \x23\x5e\x6e\xba\xef\x77\xe7\x9b\x8c\x4f\x53\x2b\x27\xc5\x01:183645709503050124771396164472259841 \x29\x0c\x02\x0a\xbb\x27\x6e\x6f\xf0\x93\x0a\x2c\x52\x1c\x8b:213127721892602217325687875256327307 \x2c\xa0\x58\x28\x15\x8f\x6c\xb6\x1b\x8c\x38\x63\x98\x3a\x02:231713231795883077028238025207331330 \x2f\x66\xc2\xea\x39\x47\x8c\xdb\xae\x3a\xf5\x8f\xae\xa7\xf3:246122200882976092512557669941159923 \x35\xe5\xa3\xf3\x19\x1b\xf6\x1c\x49\x8b\x9f\x9c\x30\xde\x74:279849394727284497835838840115355252 \x36\x35\xa6\xcb\x09\x96\xc1\xb0\x04\x17\x70\xe5\x03\xb5\x99:281472212781900852340062045048386969 \x38\xeb\xe7\x6d\xd3\xce\x2f\xcf\x2d\xc8\xd5\xa3\xf5\x94\xf1:295553326030272392695870524975584497 \x46\x2a\x66\x77\x3a\x80\xaf\x52\x12\x69\xf2\xa7\x11\xfe\xcb:364320759472809322399012704820002507 \x4a\xc6\xfb\x8a\x3e\x38\x0b\x90\x7d\x5a\xdb\x0d\xfb\x4e\x24:388265813686040777614464077866421796 \x4b\x55\xcd\x0f\x22\xd0\x7a\x2f\xd3\xf0\x93\x5a\xc8\x60\x50:391162515664101019679679374684610640 \x4e\x2d\x6e\x2d\x81\x8a\x71\xb7\xaf\x0c\xba\xb7\x75\x79\xda:405920592579188106254935052139198938 \x51\x34\x03\xe6\xd6\xb4\x98\x49\x80\xcf\x16\x72\x11\xc3\x61:421631039966313687041401287540327265 \x54\x7e\x51\xef\xfe\xea\xdf\x1c\x4d\x6a\x4e\x9d\xb1\x5d\x47:438715011483242941585234384338902343 \x61\x54\x55\xd5\x9f\x8d\x9b\x1e\x9d\x09\x3f\xc4\x57\x33\x7e:505363318191593745142336448353481598 \x71\xdb\x12\x7a\x71\x26\x70\xb8\x7e\x6e\x6b\xb1\x0d\x6c\x6c:591172856718521839681288559032888428 \x72\x20\xbb\x0f\x62\x7e\xae\x6d\xc0\x81\x29\x05\x29\xc4\x66:592585699408025483998355935885640806 \x79\xdb\xce\x51\x16\x49\x3b\xfb\x8a\x5a\x15\x79\xd0\x7b\x8a:632726113682619800125599714026486666 \x7e\x7d\x4e\x0a\xc5\xec\x8f\x71\x37\x69\xd9\xe0\x2d\x6a\xef:656770888506646461826166286216686319 \x7f\x85\x23\x08\x1c\x90\xaf\xe7\xfc\xac\x14\xfd\xa5\xa1\xbf:662122037007310047431715210089832895 \x80\x18\xa9\x9f\x34\xb3\x6b\xd4\x44\x39\x5c\x1b\x8c\x01\xb4:665114214554238484126421073057808820 \x82\x4f\x36\xa9\xd4\xd5\xe7\xa7\x2f\x52\x0d\xf2\xef\x73\xaa:676605232849260914817974415989371818 \x8b\xc8\x9b\xd3\xc8\xff\xeb\xa4\xbd\x8d\x94\x5c\x58\xef\xdf:725798091166591871958379717637763039 \x91\xcc\x31\x5c\x0a\x98\x5b\x40\x09\xf6\x96\x8a\xb3\x78\xe0:757024566712087790589439218371754208 \x94\x3e\xd9\xf6\xf0\xd4\x75\xbc\x2c\xa9\x25\x62\xfb\x0d\x9e:769734713394304414231277438515219870 \x98\xd3\xbb\x48\xe6\xa8\x63\xf4\xb7\x20\x5b\x2b\xad\x47\x76:793523549151823316505811802729039734 \x9d\x56\x66\x38\x31\xb4\xdc\x97\xb4\x4c\xc4\x2e\x57\xed\x06:816942992679710446636681960179100934 \xa3\xae\x44\x1e\xb5\xbd\xf8\x0f\x1b\x76\xee\xe5\xc6\x48\x06:849878924231526235216181173024081926 \xa9\x97\xb5\x73\x47\x63\x8d\x61\x16\x1f\x53\x82\x94\xd1\x67:880575188917032338216627923414471015 \xb0\x06\x06\x9d\x8d\xc4\x1d\x62\xa4\xd5\xb4\x84\x42\x74\x6e:913966465689257866641036773364495470 \xb8\x63\x53\x55\x60\x1a\xdc\xdc\xcb\x19\xdb\xc0\xb0\xf7\x9a:957397182881068052181026976094549914 \xb9\xe5\xff\x74\xc0\x7a\xed\x60\xca\xa4\x5d\xa7\x31\xc0\x95:965239829942575885417172129736147093 \xc8\x03\x28\x96\xda\x52\x43\x91\x05\x13\xf4\xe9\x1a\xea\x77:1038523434748962833601853020593384055 \xcb\x22\x25\x75\xda\xb6\x8e\x12\x07\x8e\xed\x99\xe1\xca\x90:1054728832125261262376663034231900816 \xce\x19\x93\x36\x56\x5e\xa9\xaf\xdf\xaa\x04\xd9\x3a\xfc\x70:1070131876454760563557172014034386032 \xd0\x89\x5c\x4e\x80\x8a\x15\x64\xc3\x30\xb7\x96\xf0\xa4\x1d:1082783749977121090094032659103654941 \xd1\x44\xe1\x4d\x26\xa2\x84\x56\x89\x41\xf9\xf0\x87\xc4\x20:1086587097500445399392617206724936736 \xd3\xeb\xd1\x1d\x12\x3d\x0e\x89\xd4\xef\xac\x67\xd2\xb1\x32:1100357571090786535529888380672454962 \xe0\xd3\xfc\x44\x44\x78\x96\x52\x5f\x6b\xa2\xff\xe0\xd7\x0d:1167374071362882566373753673585055501 \xed\x56\x97\x31\x69\x36\xb4\x9d\x3a\xf0\xa8\x52\x2c\x94\x69:1232330621443168877372248796519240809 \xfa\x6a\xa7\x57\x4f\xe7\xe8\x67\x8e\xb7\xe6\xc3\xa1\x66\xf6:1300237408176630014312789119651112694 \xfe\x92\xa2\xc2\x33\xfe\xc9\x94\x30\x88\x25\x62\x17\x11\x64:1321817528935256994053014057087603044 \x09\xcc\xaa\x1a\x56\x32\xf1\x4d\x37\x7b\x8e\x42\xda\x5c\x80\xd3:13025730617447490497535351399747715283 \x0e\xdc\xd8\xbe\x9d\x60\xcb\x27\x8d\x93\xfa\x64\xd3\x9c\x48\xc2:19755893352397913560620717911073114306 \x0f\xde\xbe\x01\x07\xe9\xd4\x38\x92\xf1\xee\xb6\xc3\xaf\x47\x97:21094963578870403128755930899539773335 \x1a\x51\x15\x0b\x5e\xd0\x36\x58\x00\x32\x25\x84\x5b\x85\x12\xdc:34980930767403902200200517966203523804 \x1b\x7e\x72\xcb\xf0\x3f\x51\x6f\x8d\x81\xbc\x4f\x85\x06\xde\x85:36545713642732872788915375477159812741 \x28\x50\x75\xe0\x42\x9b\x34\x50\x2f\x5a\x7d\x42\x7e\x47\x21\x3c:53586894389725092759543799468253454652 \x28\xe0\x9a\x8a\xb1\x5e\x7c\x40\x45\xff\x83\x74\xa9\x38\x84\xab:54335328807166898155168232879605449899 \x33\x26\x53\xb8\xda\x34\x57\x08\x3f\x6c\x33\x9a\x42\x21\x11\x31:67989633151165045962962856176150188337 \x35\xa5\xa0\x33\x15\xfc\xe0\x00\xf4\x8b\x84\x73\x30\x14\x87\x40:71309061991236552657862974313180989248 \x35\xe3\x6f\x47\xce\x58\x68\x76\x74\x01\x59\x14\xcf\x4a\xcd\xd1:71629992200014281790275475142901157329 \x36\x1f\x32\x27\xf9\xb2\x06\xc1\x3e\xee\x38\xe0\xc0\xa2\xca\x07:71940290262655545573481844114270112263 \x37\x35\x28\xb5\xac\x84\x53\xb8\xa9\x31\x96\x6c\x4d\x66\xdf\x6c:73383557191745675282954728615375724396 \x3a\x7e\xbd\x89\xc4\x35\x4e\x5f\xea\xe8\xb2\xea\xb2\xed\x3b\xa9:77753297450097368636916563951372549033 \x3d\xdf\x13\x2a\xa5\x1c\xe3\x96\x66\xa5\x29\x18\xa9\xae\xfc\x4c:82241178686798381084205496856443026508 \x42\x60\x78\x14\xd7\x4b\xf9\x27\x2a\xe5\x9b\xbd\xf2\x59\xae\xff:88229943760570602689556407506779614975 \x49\x86\xfb\xea\xec\xef\x37\xbd\xe1\x07\x4c\xb9\x2d\xe7\x05\x28:97734520968870729352863943252926465320 \x56\xf7\xe3\x03\x02\x4b\xe0\x3f\xcb\xd8\xf1\x6f\x97\xf5\x9c\x87:115600709306936082408993271000144911495 \x59\xa4\x4c\x49\xc7\x62\x70\x9f\xf4\x66\xf5\x77\x86\x5e\xa2\x4f:119154375618149489028226018824767316559 \x5a\x33\x33\x1d\xb8\x59\x79\x8d\xc5\xc9\x86\x55\x0b\xc3\x69\x82:119896363517987614145915708718255925634 \x5e\xd0\xdf\x52\x91\x95\x2a\xdf\x4d\x3f\xbd\xd2\x7c\x79\x24\x4f:126031958869463935521672629861106656335 \x61\x41\x12\x08\xe8\x58\x6f\x12\xfd\xfb\x8e\xe5\x8a\x8a\x2d\xd7:129272980676047201595406612703654587863 \x63\x38\xd5\xca\xa5\x25\x43\x33\x8c\xf0\x0b\x1b\xd1\x0e\x59\x06:131888676415229101677212708440881649926 \x6a\x91\xc1\x7a\x01\x7e\x73\x9d\xa0\xf2\x1e\xb5\x70\x11\x85\x95:141654974769040319689555982270701077909 \x6d\xc9\xe7\xf8\xa4\x17\xa3\x7c\xec\x71\x80\xc9\x72\xe3\xeb\x99:145934208145108196527995495448737737625 \x6e\x77\xdc\xf0\x79\x26\xd8\x6f\x7d\x9d\xfe\x94\x13\xca\xe0\x37:146837444044872844755476868527335071799 \x7e\x1f\x57\xd3\x83\x7b\x4f\x40\xa2\x44\xbc\x60\x13\x32\xe6\x88:167645469998983396269111499094368642696 \x85\x2f\x9f\xd1\xd0\x08\x46\xe4\xd3\x1e\x74\xd1\xb9\x50\xf2\x6d:177034602917940782327712103052904297069 \x86\x84\x3e\xcf\x3e\xbc\xdd\xed\x66\xaa\x25\x3d\xc5\x8e\x40\xe0:178803208549546787757640108677884952800 \x89\x0d\x59\xba\xd2\x66\x23\x11\xa5\xf7\x48\x53\x85\xd4\x86\x2d:182173555217702708103290800572965619245 \x89\xbe\x6e\x5c\x87\x98\x7c\xa4\xeb\x50\x30\xc0\xe0\x15\xf4\xa1:183093010221667266499437072403418969249 \x91\x6b\x5d\x03\x2f\x2b\x97\xd5\xf8\x85\x45\x1b\x9b\x52\x70\xb3:193295521669052151571697070502197751987 \x93\x37\x7f\xe0\xcd\x39\x77\xd7\x57\x9f\x83\x20\x17\x09\x31\xe3:195684685384244017512853397077393748451 \x9e\x1d\x27\xee\xcd\xd2\xe1\xd8\x5a\xe8\x72\xe0\x0a\xd7\x8d\xf2:210169409876890806689088569895397330418 \x9f\x5a\x3e\x98\xb7\x8e\xbf\xd6\xfc\xfe\xdb\x58\x44\x8f\x9c\xdb:211815827655954217051541800511784066267 \xac\xee\xbe\x8d\xa2\x24\x32\x3e\xe2\x8f\xd9\x15\x1b\x3a\x87\xdb:229866846806512757642609032856887527387 \xae\x63\x4c\x6b\xe7\x5b\xab\x78\x26\x5b\xe5\x40\xdb\xc5\x5b\xc1:231801258667715435633080846673523334081 \xaf\x09\x69\x83\x49\x95\x42\xc9\x5e\xd7\x7a\x15\x41\x03\xbc\xcb:232663769988757615055744012399071706315 \xb0\x7a\x04\x75\xdf\x56\x88\xf9\x16\x1a\xd9\x29\xda\x78\x93\x13:234577677943339643024680534647242265363 \xb1\x0d\x1a\x33\xce\x53\x5a\x9d\x91\x16\x1c\xfe\x89\x56\xc0\xe5:235341386560231726219858937704988721381 \xb2\x70\xac\x8d\xcb\xea\x4d\x53\xcf\xa3\x9c\xf7\x38\x0c\x05\x86:237187620306602379473641378166944302470 \xbc\xbf\xec\xe3\x53\xe8\xda\xa5\xf7\xd3\x94\x77\xe4\x15\xf7\xe2:250891396566972447857975790024890120162 \xc1\xfc\x6d\x97\x1c\x61\xde\x19\x94\xcf\xe6\x1d\x42\x21\xe7\xfb:257851684749722772635566756693943642107 \xcf\xcb\x3b\xeb\xdd\x9c\x48\x4c\x27\xf1\xc3\x65\x39\x43\x67\xe1:276205446739130083013948854635715586017 \xdc\x3d\xa6\x30\x50\xf1\xa4\x45\x49\x94\xef\xba\x2e\x91\xba\x18:292750259889049051040621882352688282136 \xdd\x99\x31\x31\x4e\xe9\xca\x50\x2b\x70\xb3\x1c\x16\x4d\x59\xb8:294554806232495244548644229956867283384 \xe0\x09\x9c\xd3\xf5\x25\x2e\x66\xf4\x29\x23\xee\x4a\xb0\x9c\x64:297796982576457205939045947543485717604 \xe3\xad\x04\x66\xc1\x66\x9f\xf5\x5d\x34\x2e\x22\xd7\xc4\x84\x81:302633111670468092102103517322713269377 \xe5\x79\xc2\x2a\x6d\xb9\xfa\x78\xed\x2d\xc3\x7d\x78\xaa\x40\x16:305025417103633083230664287805004988438 \xe9\x18\xa9\x9e\x02\xa8\x1d\xdc\xbb\xd7\x9d\x71\x6b\x21\xdb\x2c:309838178388585139213523871412785371948 \xfa\x96\x21\x61\x5d\x14\xcd\xf9\x55\x16\x72\x64\x8f\x21\xf3\xf2:333086520508465133873272936677305873394 \x01\xbe\xcb\xb6\x5c\x3e\x65\x32\x06\xed\x60\x14\xd5\x34\x0f\xd9\xfc:593893421089204273602839630668429777404 \x02\x42\xfe\xf6\x84\xed\x3f\x14\x71\x5e\xf9\x05\x71\xa2\x9a\xd1\xb4:769617624970053377142813828023525757364 \x07\xf0\x47\x6d\x04\x42\xdf\x06\xc6\xf6\x0d\x04\xd2\xb9\x8a\x3c\x9d:2701362151632160107701662065618888309917 \x09\x35\x90\xc0\x7d\x3a\x79\x39\x8a\x37\xfd\xf3\x28\x6b\x32\xce\x59:3133741980956936625334931467671409184345 \x10\x3c\xb6\xc5\xbe\xee\xa3\x7c\x18\x72\x03\x9b\xa8\x77\xfd\x5c\x46:5525220559272261576776370979049018580038 \x13\x82\x22\x93\x4b\xc5\x41\x44\xb4\xcd\x28\x67\x74\x66\x6e\x9d\x6d:6638344136560431430355558013042177252717 \x1d\xda\x0d\x1b\x46\x48\x25\x80\x76\x72\xa3\xb0\xe8\xa7\xc6\x68\x64:10158028396840846985694018364133318486116 \x1e\x71\x8d\xd3\x0e\x94\x16\x9c\xe1\xbf\xd0\x0c\x72\xf4\x65\x34\xa6:10359410165752354572612252297133461681318 \x22\xb5\xcf\x67\x85\xd8\x9d\xc5\x72\x50\x3f\xfd\x04\x9a\x11\xa1\xbb:11811267647691268526478640709829989081531 \x25\x08\xf2\xe8\x9c\x26\x02\xa2\x03\xaf\xa5\xbb\x50\x72\x9f\xd3\xcf:12602342653771152916143187859180026319823 \x25\xb6\x63\x00\x87\x25\x95\x05\x96\x71\x8e\xba\xd3\xd5\xc3\xce\x3a:12832881119404005826071802509897945566778 \x32\xaf\xa7\xa2\x3a\xe4\xcb\xdf\x38\x61\x64\x93\x36\x14\x23\x93\xdb:17247603649301057032847211149334866531291 \x35\x49\xe3\x04\x70\x7c\x6c\x27\x74\x8a\x79\x4c\x7b\x97\x59\xb3\x14:18133177831930624335885254441699173315348 \x36\x5c\xfe\x71\x04\x1b\xaa\xe2\x5d\xff\xac\x81\x58\xba\x92\xfd\x4c:18498857924982717677886147426946297036108 \x41\x05\x88\x5d\x92\x69\x11\xdc\x4e\x74\x09\xa2\x4f\x92\x09\x25\xd1:22125708040076607825867299724248086029777 \x4a\xa1\x85\x39\x84\xb2\x0a\xac\x86\x0a\xde\xca\xa9\x91\xf2\x43\xbe:25395592601563568979656012784204564808638 \x53\x3e\x3d\x1b\x8b\xc6\xf1\x71\x34\x8f\xcf\x4c\xd4\x9a\xb5\xe5\x02:28326165878984271681807472478013651019010 \x56\xbe\x5f\x39\x8c\x04\xf7\xa0\x93\xd1\x5c\xcf\x80\x7d\xb3\x19\x0b:29517331309792230145490996398488229714187 \x59\x25\xbc\xbe\xbc\xe3\xb6\x09\x48\x1a\x8e\xb6\xdf\x88\xdb\xe5\xb2:30335292112240162095191013453738729530802 \x5a\x4f\x9b\x5d\x6f\xda\x0b\x38\xbc\xcb\x12\x19\x96\xc5\x7f\x5a\xe1:30731228735690443440894441252265144572641 \x60\x17\x1b\xca\x8a\x8a\x70\x5b\x75\xb6\x66\x98\x90\xe5\xeb\x4b\x4f:32697823768351397125466529240514856438607 \x66\x60\x4e\x74\x82\x17\x54\x04\xef\x2e\xe6\xb6\x6a\xfa\x0d\xdf\xdf:34836814675752435792362489799250287648735 \x69\xb9\xba\x41\x3b\x89\xec\x07\xa3\xf1\x30\xe6\xfc\x30\x77\xce\x10:35976522796208206192700335869330728668688 \x6a\xf2\x7b\x90\x6b\xec\xa5\x2b\xff\x6a\x12\x3e\x8c\xde\x92\x92\x99:36392245650330661009876959710833062089369 \x79\x5d\x93\xf6\x35\xf2\xe0\xac\x36\x6a\x07\x32\xc8\x3e\x4b\x4b\xdd:41298552862426777971487868270546367761373 \x84\x26\xc8\x2a\xa9\xa7\x96\xd8\x27\x0c\x1c\xdd\x46\x41\xcb\x3a\xe5:44968822422078040120406892762936289999589 \x84\xc1\xbf\xf4\x42\xc3\xd0\xfb\xbe\xa6\x29\x5c\xcd\xe7\x3e\x0f\x06:45174810119647950331978445901408799428358 \x86\x6a\x4a\xe0\x39\x2e\x74\x6b\xad\xe5\xba\x44\x5d\x33\xaa\x26\xcd:45739124112716620299499665588488151639757 \x89\x9a\xbb\xb9\xb7\x93\xb3\x63\x35\x9c\x4b\xcf\xb8\x23\xa3\x88\xdc:46824360105822234130014115225518259538140 \x8d\x75\x01\x40\xa6\xfd\x00\x09\x86\x4b\xde\x2a\xb4\xe3\x33\x6d\x8c:48135339914960406403831409985626150497676 \x90\x57\xf1\x73\x8d\x52\xf9\xf6\x4f\x68\x69\x30\x20\xa1\x0a\xa7\xe3:49117557359465288604081826392282858432483 \x92\xd1\x81\x0a\x9a\xaf\x80\x9d\x34\xf5\xba\xf5\x7d\x5f\xaa\x19\x68:49959704242950362501179202320273681029480 \xab\xed\x63\x15\x25\x2b\xc0\x8c\x92\x1c\x03\xc3\x35\x3e\xe0\x1b\x28:58503826244746081584769578812068883077928 \xb7\x08\x99\xf6\xb5\xa5\xf6\x61\x41\x39\xb6\x19\xce\x74\xce\xe3\x3a:62283106395781796764445611055833177580346 \xb7\x69\x74\xdd\xc9\xe8\xac\x2e\x6e\xff\x63\xc7\x77\x40\x3b\x61\x89:62411848890934136769639586591653364457865 \xb7\xe1\x4a\x42\x27\x71\xef\x22\x74\x96\x2b\xb6\x2d\xa8\x08\x97\xa2:62571135017315069543603781714065618409378 \xb9\x38\xe1\x44\x27\x8e\xa2\xe5\x97\x51\x29\x14\x2b\xef\x7b\xa5\xd4:63027844297268636553783872656222363297236 \xc7\x1c\x86\x07\x51\xfd\x27\xb6\xfb\xd9\xfb\x13\x27\x48\xf8\xc4\xfe:67754105317400471649480485962712201348350 \xce\xee\x67\x71\xb4\x7f\x8a\x90\xbd\x2f\x04\xe4\xc9\xbf\x76\x9f\xca:70415060961499389115179366415379203530698 \xd1\x3b\x9a\x9b\xfb\x8b\x94\xb6\x95\x03\xa1\x2d\xcb\xc0\x55\x0f\x59:71198241915646618820496671933569523060569 \xdc\x71\x56\x29\xc4\x20\xf6\x46\xd4\x80\xfc\x1c\x67\x0c\x81\x4f\x67:75012770870777706303822461126094578863975 \xdc\x9b\x07\x8e\xeb\x2f\x5d\xd5\x28\x8c\x3b\xb3\x65\xae\xdc\xbe\x27:75068190306766574807600085838163642990119 \xde\x20\xf7\x21\xd1\x15\x3b\x69\xab\xf1\x88\x09\x3d\x2b\xe3\xec\x52:75586503935522288196062585874084725517394 \xe3\xc1\x0b\x4b\x70\x32\xdf\xf3\x70\xcf\x3b\xbd\xe4\x14\x9e\xdb\x57:77500696939574983318798136818724109212503 \xe9\x74\x4c\x0c\x52\x5d\x14\x51\xaa\x2e\xd9\xdc\x61\xde\xb6\xe9\x68:79440376804565392115193399199008535538024 \xea\x99\x53\xb2\xa7\x83\x2b\xd0\x23\x96\x1b\x4a\xa0\x63\x89\x06\x9c:79829880327034559062562108924690831050396 \xec\x7f\x09\x90\xc6\x8d\x39\xc3\xf8\xb8\x6c\x89\x7e\x13\xbc\xe6\xb9:80475500215875754830934801043134743373497 \xf2\xfd\x5d\xe3\x56\x7c\xc2\xdb\xd3\x2a\x3d\x67\xce\x3b\xc6\xa5\x85:82685114972367749329027109267613692634501 \xfd\xa3\x1d\x99\x20\x5a\xbd\x77\xb2\x29\xfa\x63\x89\xba\x61\x68\x44:86308256676691323315792342249629705922628 \xfe\x34\x64\xec\x5b\x17\x02\xb8\xc1\x46\xf8\xb0\xba\x5c\x13\x9f\x08:86501365077250589524001574728771445169928 \x0a\xca\x89\x78\x4f\xf5\x82\x20\x67\x0d\x58\xdd\x2f\x46\x18\x4f\xa3\x9d:940042626368439124467773598417435619206045 \x18\x19\x0e\x5f\x51\x75\xba\x1b\xe8\x18\x6b\x64\x30\xeb\xfa\x59\x84\xfc:2099221025647614401595220932805892343694588 \x22\x0b\x07\x92\xa7\x72\x62\xa2\x1c\x5b\x08\x09\x46\x14\x78\x61\xf1\xeb:2965570893783515489426559654843400759407083 \x30\xb4\xa6\xdf\x28\x95\x1d\x58\xd0\x32\x4f\x60\x6e\x26\xc7\x8e\x0b\xc7:4242862361322870974557447233418873784896455 \x31\x71\xdc\xfe\xe0\x1e\xb4\x52\xa0\x54\xc9\x02\xef\x70\x1f\x11\xe1\xc9:4307247671666485284678418694331124193288649 \x32\x79\xe2\x8b\x20\xa1\xb3\xca\x67\x2a\x91\x6f\xee\xa8\x40\xf6\xad\xab:4397089590903605097727192514445691407740331 \x36\xbb\x5f\xdd\x00\xac\x6c\x1c\xff\x6b\x43\x21\xa8\xa0\x11\xc4\xee\x72:4767823667100134818179792604260575199161970 \x41\x5a\xed\x7e\x7a\x90\x9c\xd1\xd9\xf4\xec\x53\x0c\x25\x94\x5f\x52\x83:5693239682337617054596274426377229368775299 \x48\x04\xf6\x7d\x9e\xf7\x18\xbe\xb8\x68\x82\xd2\x76\x90\xa9\x46\x3b\x2f:6273773358902689650293934143850426751400751 \x48\x23\x85\xbf\x2f\x9f\xc6\x48\x6c\x5a\xcc\x4d\x99\x15\x81\x03\x6c\x5d:6284172249947041873539002817993712236457053 \x4e\x41\xcf\xe2\x0b\xe4\x44\x89\x61\xbc\xe3\x10\xd5\xa0\x37\xc8\x1c\xb7:6817152980422569482776998327474422345637047 \x57\x7f\xc0\xd5\x01\xd3\x90\xe6\xbd\x2a\x59\x24\x55\xb4\x13\x79\xa1\x6c:7622241054433566611563832922392918887080300 \x68\x8d\x4f\x17\x6e\x2a\x81\x18\x5b\x0d\x9b\xff\xad\x2c\x62\xbc\x18\x5c:9107762681307845321489972096456243101309020 \x69\x70\xf4\xf7\x0c\xd1\x60\x50\xa1\xd0\x50\xe5\xdf\xa2\xdf\xca\x2f\x1c:9185227262318243992627273645515466340970268 \x6c\x74\x41\x8b\xf9\xe2\xae\x63\x78\xe3\x9f\x2c\x59\xab\x3d\x5d\x88\x65:9447686761810204382153649304172806021154917 \x6f\x4d\xc8\x12\xdc\x61\x64\x49\x06\x8f\xf8\x3d\xa5\x6d\x1f\x6f\xb4\x4e:9695931424208646357614218835839074341729358 \x71\x38\xc8\x2b\xac\xec\xe3\x9a\x15\xa2\xc0\x39\x81\x8f\x15\xca\x73\x23:9863010195211745062750049692525049087161123 \x81\x97\x6f\xec\xdc\x84\x82\xf6\x0f\x60\x4b\x6a\x33\x94\xf5\x86\x18\xd9:11289016296764353026053555862104925551335641 \x85\x81\x16\x20\xe2\x39\x05\x14\xb4\xc2\x8c\x5a\x74\xd6\xf3\x7a\x80\xd4:11629859868014662755197212785790804341457108 \x8d\xb6\x77\x71\xb4\x41\x46\x44\x8c\x4e\xab\xf2\x30\x80\xbf\xc2\x58\x1e:12344922475674854302989655215257979996755998 \x93\xe2\x99\x19\x39\xa9\xdf\x5c\x41\x10\x11\x60\x49\x35\x74\xb6\x01\x1c:12882613349753220938854352556981920663470364 \x9c\xe0\x52\xde\xd4\x3f\x5a\x46\xa2\x84\x38\x48\xb8\xce\xed\x65\xe7\x9a:13665850009235335799778142353771652966639514 \x9d\x2e\x2c\xf0\x3b\xbe\xa3\x28\x17\x60\x08\x58\x68\x2e\x02\x46\x9b\xe1:13692341613559548489513484429538465971346401 \x9d\xe3\x3c\x59\x8c\x9a\x0d\x87\xfb\xaa\xe8\x60\x1a\x12\x58\x13\x5c\xa7:13753953207223321928515181996330174641298599 \xa3\xcb\x5f\x35\x5c\x54\x93\xee\xd3\x31\x07\xc7\x28\xe8\x73\xb8\x1b\x60:14268506481085886413041815306183120266992480 \xaf\x63\x3d\x52\xda\xf2\xb3\xcd\xbb\x63\x55\x02\x39\xf7\xfe\x37\x10\xec:15278419505500095506222151220176859352731884 \xb1\x0f\xa7\x0e\xb9\x34\x14\x1b\xdb\xf1\x58\xb0\x1e\x05\x86\x02\xa6\x43:15424200902949201698348887212458337747772995 \xb1\x2a\xfe\x28\xde\x9f\x1b\x4e\x3e\xdd\xd2\xdc\xa7\xc8\xf1\xb2\xb7\x5f:15433504305450347442481511270307106454157151 \xb3\x6f\xa5\x34\x97\x9f\xd5\x0d\x3a\x1c\xe3\x60\x90\x9b\xe1\x5e\x90\x3f:15631090120207356538408906418407201090474047 \xb8\x2f\xb4\xb1\x01\xa9\x08\xc8\x01\xa3\x8c\x32\xe6\x14\x8a\x68\xeb\x51:16044894062798629423024733175504418934156113 \xc0\x9d\x33\x6c\x01\x10\x49\xbc\xb9\xba\x92\xec\xc3\x7a\x08\x77\x5d\xaf:16779051581921973328151170919652829578091951 \xc8\xdb\x6d\xfc\x61\xb1\x64\xd1\x5e\x9d\x36\x20\x6b\x38\x7f\xc1\x7b\xaa:17497125220999532077362485585474532589796266 \xce\x80\x1d\x6e\x4a\xf9\xe2\xbf\xd6\xd3\x43\x1c\xe4\x98\xbb\xfc\xa5\x1c:17988726165193719432586998724170033603061020 \xce\xd3\x81\x52\x1d\xd2\x93\x62\x61\x0e\xbb\x83\x75\x7d\x69\x1e\x1e\x77:18017102378147600884862174798477058889358967 \xd2\x14\xbf\x7e\xaa\xe7\x04\xf9\x57\x02\xbf\x19\x83\x2d\xa1\x6d\x40\x3e:18300640233250982536915336160829000431517758 \xd2\x26\x65\x79\x0c\xdd\x1a\x13\x11\x6f\x93\xd5\x95\x5f\x93\xa0\x3f\x4f:18306645656169048025441590330048388857347919 \xd6\x9b\x3e\x56\x34\xf6\xeb\x4b\x95\xcc\x59\x4c\x27\x06\x53\x3e\xed\xf2:18694855816016954990716176199935432379526642 \xd7\x56\xa1\x82\xcb\xb2\xd2\x7a\xd4\x99\x32\x77\x4a\x7d\x09\x69\x57\x08:18758620443721063620678926137455784072140552 \xd8\x47\x8e\x9e\x27\xce\xbf\xe6\xf9\x1b\x2c\x5c\x34\x6d\xd4\x89\xa1\xa9:18840603380877299380019918039258753523098025 \xd9\xb1\xc4\xcc\x52\xec\x48\x8e\xb5\x08\xfb\xd7\x15\x8e\xa4\xe5\xbf\xbf:18963857615734590504262219798877040103767999 \xdf\x10\xf1\x62\x52\x0f\x47\x6a\x9e\x4e\x89\xb7\x82\x56\x68\xd9\x2f\xe6:19431805135109714431017588804626774377443302 \xe1\x59\xa6\x92\x39\x64\xe1\xef\xf2\x6a\x3e\x1e\xa3\x6f\xcf\xd3\xfa\xbb:19630770876388750748723178383937978133379771 \xe2\xbd\x76\x9a\x19\x98\x57\xc9\x10\x3c\x1a\x44\xea\x06\x89\x5d\x88\x52:19751847636962222035228107232046270843291730 \xe2\xcf\x45\x1d\xdb\x3b\x19\x4b\xec\xc1\xf4\x54\x56\xfa\x0b\xc6\x9b\x07:19757906942285298054479947162224621351508743 \xeb\xca\xa2\x0d\x5a\x63\x09\x58\xc0\x97\xba\x89\x71\x29\xb4\x88\xf7\x56:20540339636350127193978003931671698663339862 \xec\x31\x50\xe9\x63\x87\x78\x2b\x2c\x8b\x59\xcf\xbf\xfe\x4c\xa3\x56\x63:20575280865938066568293899947190338338379363 \xf0\xca\x79\xd4\x7b\x2d\xd2\x28\x7d\xb2\xe0\x3d\x3e\xad\x20\x4f\xc7\xbb:20975847601593279438378404273759169704609723 \xf9\xbe\xd1\x69\x37\x40\x5a\x50\xbf\xfb\x58\x72\x39\xec\x53\x22\x58\xab:21755891201686199998515042828280700017465515 \xfb\xd3\xbb\xb9\x1c\x39\xfd\x69\x9e\x55\x3a\x25\x2d\xfd\xac\xfd\xf6\xc6:21937232875074772433862676873662965519087302 \xfe\x46\xbb\x9f\x34\x06\x87\x7e\x6e\x8c\xde\x9a\x99\xd6\x82\x7f\xc0\xdf:22150589784617183228678743143119230651580639 \x0d\x10\x32\xe8\xf6\x06\xa0\x61\x0d\x35\xf2\x86\x18\x3b\x7a\x96\xfc\xdb\x44:291320807932486762009174538808797715861658436 \x0d\xbd\x9b\x35\x1f\x1f\xc9\x9e\x5e\xc6\xfe\x64\x0b\x5d\x85\xf8\x0b\xd9\x97:306426723999563240704722866977634916407957911 \x0e\x12\xbd\x9c\x66\x79\xbc\x16\xff\x5c\x7e\x8b\x07\xe6\x03\x24\x3e\xf3\x5a:313842975185199161382140080825432529711330138 \x18\x7c\xa4\xda\x5d\x4a\xb8\xff\x64\x8b\xcd\xda\x82\x26\x7f\x00\x40\x98\x5c:546075904784550504177248998923557152229464156 \x1d\x0b\x12\xc8\x78\x4d\x90\xe3\x2f\xc9\x00\x05\x6c\xf8\xbb\x86\x01\x93\x32:647686237455490015423094101437828861427553074 \x20\x39\x4c\xf2\x1c\xd5\x06\x2e\x06\xfd\x01\x2b\xe0\x8e\x96\x4e\xa7\x4c\x33:718615429933856200759151858201200300132879411 \x22\x3f\x8d\xd6\x00\xd3\x0a\x1d\xb6\x36\x23\x55\xff\x08\x6f\x74\xeb\x77\x77:763761675036549422549637952887559364262197111 \x29\xd4\xb7\x0e\x5d\xdd\x53\xdb\xa4\x2d\x79\x1f\x02\x2c\x74\x66\x14\x1a\x9a:932860648526999858099015132710155900763249306 \x2c\x15\xc9\x7f\xb0\x43\x4d\xa3\x68\x76\x76\x2b\x5c\x30\x34\x1a\xba\x21\x19:983130713222830276409054931063810249849446681 \x2f\xb0\xa2\xdb\x21\x6a\x42\xe7\xba\xeb\x01\x82\xe9\x5f\x6a\xf9\xa1\x5d\x41:1063522203672802392515011383182220998381493569 \x41\xfb\xa5\xc7\xd1\x9b\xac\x44\x57\x8b\x1f\x0b\xc4\xa6\x94\x3a\x53\x04\x5d:1471470033868622907469966083705870442525033565 \x50\xad\xe7\x79\xea\x64\x4f\x30\x69\xc7\xef\x05\x1b\x24\x74\x07\xa9\xc2\xb0:1799208808629022580618119358875930772982317744 \x51\xe3\x9a\x0b\x23\xde\xc2\xbe\x74\x9a\x4c\x93\x8e\x7d\xb8\x3f\x8c\x6a\x1e:1826187268279752342797998090171536730336553502 \x52\xbd\x3e\x12\xee\x60\x9a\x2d\x34\x41\xc8\xc7\x8f\xc6\xe4\x81\x9c\x9e\xf2:1845146450991192785315628231646899538050719474 \x55\xc5\x1c\xbb\x05\xd1\x91\x2a\xde\x9f\xd2\xeb\x98\xa8\x0b\x17\x35\x38\xf9:1912734238705780742927074765982722422201465081 \x55\xce\x13\x52\x07\x56\x1e\xe9\x91\xb8\xed\x5b\xdc\xa9\xc0\x29\xf6\x7a\xf4:1913515047176805544400356049836721269445655284 \x59\x8a\xe7\x03\x21\xc8\xc7\x1a\x74\xe7\xcc\x8d\xb2\x1d\x9b\x41\x73\x2e\x76:1996866427517669150618380957506127098832694902 \x5e\xe2\x8f\x22\x5b\x37\x90\xd0\x47\x13\xc5\x1e\x8e\xdd\x80\x1d\x90\xdd\x4a:2116006131328303961902990807555137711050382666 \x60\xf1\x52\x5f\xd7\x52\xff\x42\x1e\xa6\x44\x95\x11\x05\x1e\x88\x02\xcb\xcf:2161893630517268363367269351802078946245397455 \x64\xf3\xd1\xb6\x1b\x81\x53\x0e\xdf\x95\x98\xc4\xff\x1b\x44\x79\x3c\xda\xd7:2251314166411476789642141290003857239023868631 \x68\x23\x1e\x80\x3e\xee\xb5\x9d\x72\xc7\xb1\xa8\x1f\xf9\x3c\x97\xb8\x7b\x50:2322336809593751511715632775644150741383805776 \x6d\xf0\xba\x19\x41\x5c\x82\x39\x7f\xe8\xc5\x4f\x70\xe5\x5e\x04\xba\x2a\xf7:2451751501353783165744389009433473047519177463 \x72\x34\xea\xfa\xd5\x59\x45\xb2\x38\xa9\x2e\xc7\x28\xd8\xe7\x9f\xa1\xaa\x83:2546894750989570904012802286184602521399569027 \x74\x5c\x16\xac\xb3\xbb\xcb\x0c\xdd\x2a\x65\x30\x39\x04\x57\xc2\xfe\x84\x9d:2594908489107791798333159385593608479616959645 \x75\x03\xfc\xf7\x93\x8d\x99\xff\x62\xbe\x48\x6e\x5d\xfd\x2a\x1e\xc3\x1c\x08:2609534605327796882572282337122529522043001864 \x77\xf2\x3a\xe0\x57\x98\x99\x36\x42\xab\x96\xe7\x3d\xff\x8a\xaf\x99\x80\x35:2674889886399807495437209547125161613753679925 \x87\xdb\xe9\x5c\x40\x23\x43\x87\x46\x26\xb6\xad\x25\x92\x1b\x49\x43\xa9\xb0:3029757600834180042431709059598691060731324848 \x8b\x4e\x97\x2a\xd1\x42\x45\x43\x6c\xfb\x15\x86\x37\x28\x56\x5f\x05\xe6\x54:3106649780449948970664429962023655192182253140 \x90\xd6\xd8\x7e\xff\xab\x58\x07\xe8\x9e\x5f\xbd\x70\xb8\x75\x93\x03\x74\x0b:3230023007579299782265549515624883821236941835 \x91\x18\xdb\x52\x80\xfa\xa3\xc1\xc0\xd7\x3b\xdb\xc8\x85\x1e\xa1\xab\xb3\x51:3235773380154051515776395925292576637377557329 \x91\xd5\x3c\xb3\x5f\xcd\xd4\x94\x2a\x45\xa4\x4a\x4e\x74\x10\x37\x8c\x96\xa5:3252183626061674727621054545463413051264636581 \x9e\x87\xa6\xc6\xe0\xa1\xc0\x41\x71\xa5\xd2\x7b\x33\x0d\x34\x5a\x90\x26\xa4:3535334651195033327177324844299084625309869732 \xa6\x17\xe3\x95\xb0\xc8\x2a\x69\xf9\x2b\x87\x23\x12\x88\xbd\x5d\x12\xb4\x63:3704004728602680441554312542381381901360477283 \xad\xbe\xa8\xf0\x55\xd5\x90\xdf\x12\xe3\x14\xca\x48\xa6\x57\xc4\x2b\x72\x3a:3874637740570870820504639569826986797812118074 \xb1\x31\x2f\x4b\x83\x53\x90\xb5\x00\xc2\x8c\x41\xff\x93\x4f\xf9\xff\x2c\xe0:3951516495795807309452253017834745185374776544 \xb9\xc7\x6a\xa9\xb9\x4e\xc4\x6e\x2c\x34\x46\x22\x3a\x9c\x65\x14\x16\xda\x7d:4143009502161182986989367085480761202813885053 \xbe\xbf\x65\x49\xdb\x1d\x11\x30\x48\x41\x46\xe8\xf7\xef\xf8\xc5\x23\x9e\x13:4253814501024189874803987443323088964052819475 \xc2\x45\x3b\x29\x56\xc5\x19\xff\x81\x36\x8b\xb9\x46\xd9\x6a\xdb\x9c\x82\x36:4332375447852763733332305454264343056267117110 \xc8\xd7\x89\x36\x05\xd3\x7c\x65\xab\x53\x82\x59\x94\x07\xc7\x8a\x5c\x4a\x92:4478924871674283950767422489489037194457533074 \xc9\xa7\xab\x02\xa5\xf5\x39\x49\xef\xc0\x5e\x19\xbe\xe9\xf4\x62\x5e\x90\x67:4497055728460161395584401495973287995692191847 \xd3\xed\x45\x65\x46\x45\x15\x27\x13\x72\xac\xe2\x28\x6d\x98\xab\x6e\x9d\x20:4726126462755995722594697767171366173117685024 \xd5\x1a\xaa\x7d\x5b\x5f\x45\x7d\x46\xb1\x00\x91\x14\x44\x96\x6d\xdc\x1d\x77:4752381661351555876766509711608838502934650231 \xd6\x7c\x16\xd9\x8d\xf4\x4b\x78\x68\xb1\x7e\x28\xe6\xb5\x27\x7e\xbf\xe2\xad:4783169171332707713219423611189914702794711725 \xdc\x4f\x38\x07\x9a\x28\xbb\x42\x36\x7d\xa6\x1b\x4b\x7e\x23\xe4\x52\x6b\x67:4913064880182929542428092058794433337680358247 \xdc\xfd\x43\xa4\xfc\x3f\xce\x8c\x48\x43\x05\xe0\xd0\xd6\x86\xb6\x2d\xd5\xd0:4928226370239200409715254165948093421677565392 \xe0\x54\x40\x6a\x76\x86\x5c\xb0\xe2\xbf\x55\xdd\x52\x5c\x15\x72\xb7\xa3\x34:5002706276074194153613494300441358982658368308 \xe1\xb4\x0d\x2a\x25\x6f\x0b\xba\x16\xdc\xd4\x9d\x44\x04\xc1\xc8\x15\x2f\x7d:5033352360829820106741853251136397766575861629 \xe2\xa8\x23\xaa\x22\xe3\xd3\x1f\x7e\x15\xb3\x6d\x6d\xce\x49\x21\xf6\x5c\x2c:5054615414937216994764590772106575885278534700 \xec\xb0\x18\xbb\xca\x8a\x56\x98\x50\x7b\xfb\x3e\x88\x19\xa7\xb4\x14\x64\x1c:5278316045571307977824963055004311605625512988 \xf2\x9b\xa4\xd0\xf7\x34\x20\x9c\x5f\xd1\x47\xa6\x3a\x05\x50\x0d\xd1\x7e\x9a:5410338826434986388706570632684025721390202522 \x02\x4d\x24\x15\x82\xa2\x15\x97\x8a\xc9\xf2\x62\xc5\x19\x8d\x4e\x26\x6b\x5a\x23:13138282283799015219080541225909941821678246435 \x04\xd9\x0c\x31\x03\x60\x0d\x41\x0e\xa5\x59\xa6\x9f\xc6\xdc\x08\x19\xca\x2c\x09:27676286817130076879052483800479082735532125193 \x0a\xc6\x3f\xc1\x99\x8f\x5c\x0e\x41\xf1\x83\x0d\xb9\xd6\xea\x59\xee\xb2\xac\x2e:61511009210174224178166612435596777771150519342 \x0f\xa0\x57\xff\x50\xd1\xf2\xe9\xb8\xeb\x71\x45\x54\x44\xa9\x5f\x8c\x9d\xfd\xb9:89210646442430477113652185145922754834939641273 \x17\x15\x7a\xa3\x18\x24\xb9\x84\x25\xfa\xb2\x83\xe6\x73\xe4\xf7\x5a\xb6\x5b\x5e:131785786575119092307788373937775665697074338654 \x1d\x90\xbc\x18\x97\x22\xe2\xb9\x03\x51\xa1\xd0\xa9\x48\xfe\x12\x91\x45\x02\x72:168788425139906296903555117836740632702349542002 \x20\xaf\xad\x39\xe1\xda\xcc\xc9\xdf\x9f\x04\xa7\x42\x7d\xdb\xff\x0b\x93\x31\x57:186605425197879206213785510638832076405848879447 \x22\x76\x92\x76\x3c\xf7\xb8\x9f\x7e\xcb\x7f\x4c\xd4\x7e\xd4\x15\xe4\x94\x60\x59:196749932769542412692416293179377063203198754905 \x27\x7e\x9e\x13\x5b\x86\xf7\x8a\x29\xb9\x55\x0a\xf5\x35\x84\x67\x35\x7b\x6f\x0e:225474304285347325674769562666848221227281772302 \x2f\x55\x0d\x2d\x3a\xf9\xc4\xc4\xd7\x88\x73\x4d\xaf\x89\x88\x04\x84\xae\xc2\x94:270219277421411281552432257031619622410101113492 \x3c\x2d\x3c\x0c\x24\x42\xc6\x90\xd5\x84\xcf\x96\xd9\x54\xff\x59\xd7\xd0\x38\xf9:343548210652107484994376159730111690422522755321 \x40\xb1\xd9\x59\x37\x4d\xb8\x18\x92\x0f\x65\x7a\x0f\xbf\xba\x3b\xb9\xa2\x43\x25:369341574957554578320342547458532947682627044133 \x42\xc6\x4a\x32\xc9\x22\x5d\xb6\xe3\x58\x4a\x4d\x8c\x75\xe4\x80\x72\xb4\x38\x42:381215402014313034286523416871650466674746079298 \x49\x13\xef\xcb\x1a\xce\x26\x9b\x00\xe5\x37\x78\xaa\x92\x71\xc2\x61\xe6\xa8\x23:417200929378200866813638529533632623622910027811 \x4a\x5c\x40\x7d\x75\x0a\x96\xe4\x95\x8d\xf2\x8d\x11\x30\x27\xb5\x7d\x03\x8d\x21:424522603476399098842534226717255975479833496865 \x4c\x5f\x06\x28\xc1\x5e\x8a\xa7\x69\xb3\xa4\x02\x59\x41\x92\x02\x75\xe1\x32\x11:436002405918514371766715825571489452291430363665 \x4c\xd5\x16\x2c\xf9\xe5\xe9\xc2\xff\x44\xb5\x17\xdd\x1b\xc0\xfe\x78\xd0\xac\x61:438635289084785017999336106954181960419507219553 \x4f\x8a\x0d\x3d\x70\xd0\x50\x94\xa7\x02\x8c\xe5\x18\x4d\x90\x1f\x9f\xce\x4d\x75:454088927099377211113112218850094201520547319157 \x51\x43\x19\x51\x28\x20\x3f\x9f\xe3\x7e\xe5\x10\x9e\x76\x86\xab\x0e\xc9\x10\xec:463924607788389131605908376191473992221892088044 \x5d\xb7\xd5\xed\xfb\x04\x85\xc9\x6c\xad\x73\x39\xaf\xd8\xf9\x11\xba\xac\x13\x24:535035813955432314631955032601930468964808004388 \x5e\xf2\xcf\x2c\xcc\x8e\x0c\xb4\x50\xdc\x83\x08\x7d\x41\xd8\xc6\x7a\x6f\xed\x7c:542059960282997419939560075106556416908902526332 \x62\x59\xa3\xe7\x2a\x48\x36\xb9\xac\x9f\x08\x4d\x6c\x58\x10\xef\x3c\x7a\xac\x8e:561480139827441665648966555367668710489114455182 \x62\xfe\xd3\x02\x26\x62\x64\x90\xcf\x4a\x0d\x5c\x95\x64\xfb\x20\x9a\xd5\x2a\x66:565163866245080935552649441176346340664578222694 \x67\xa0\xd4\xbe\x03\xf2\x5b\x33\x6e\x86\x4d\x3b\xf0\xe6\xb6\xd5\x64\xc8\x81\xf1:591612701090133688450492784947103442776164434417 \x6e\xd9\x05\x86\x4d\x84\x92\x27\x3e\xd8\xba\xea\x7d\x25\xc3\xed\x27\x2f\x69\x14:632828727761009222296262086567069604996331825428 \x7e\xa7\x00\xbc\x7b\x36\xc0\xd8\x98\x09\x92\x0d\xf8\xee\x66\xc9\x71\x7d\x42\xad:723057125708822714149329553477903796991233442477 \x84\x5c\xf3\xf1\xa7\x09\x00\xe9\xb7\x8f\xec\xbf\x80\x39\xff\x1b\x07\x84\x2c\x45:755659700822571304698680483479028612056693877829 \x89\xf5\x13\x74\x33\xc8\xa6\x1b\xec\x53\xf4\xe7\x56\x10\x10\xfb\x6f\xe0\xfb\x9f:787597112851525740012197238632581570141821664159 \xa5\x83\x36\x02\x67\x64\xb6\x21\x3e\x7b\x2d\xc4\xd3\x55\x77\x87\x9f\x87\x08\xbd:944909579688379489309319793416409323195605649597 \xa6\x99\x37\xe8\x07\x74\x6d\x1f\x2d\x04\x8f\x81\x5d\x80\x68\x90\x7c\x51\xd6\x50:951109352103277034493382562347081918471033968208 \xa7\x82\x8b\xad\x26\x1c\x6a\x8c\x0a\xf8\x2b\x6d\xfe\xeb\x19\xc0\x9f\xa9\xb0\xd6:956312723130642382734594117063861249499973923030 \xa8\x60\xfb\xd4\x67\xce\x54\x3d\x6e\x60\x99\xc8\xd7\x14\x36\x9a\xa8\xa6\x6c\x0b:961273258499076444261807420955386227828516613131 \xaa\x53\x8a\x9e\x74\xf2\x30\x3c\xc0\xcb\x8f\x7d\xba\x93\x3f\xd9\x52\x13\xaf\xc3:972391468307051278982529992277366676662737153987 \xad\x3f\x05\xc1\xdf\x6f\x9d\xdc\xad\x16\x0b\x06\x9d\xdf\x35\x2e\xb2\x57\x3a\xc2:989060851832955531326012009770962782377517464258 \xb2\x01\x93\x71\x74\x9f\xca\xb5\x74\x8c\x66\x14\x03\x3c\x35\x9b\xc9\x35\x29\x1e:1016235502064801530893609195414490737700708362526 \xb4\x11\x2c\x4b\xfe\xa0\x86\x50\x4b\x6f\x4f\x0d\x6b\x0a\x44\x86\x19\xf7\xc9\x12:1028001310216882054107829250839111854607524415762 \xb9\xb8\xe3\x83\x89\x63\xfc\x2a\xbd\x70\xa0\x48\xb6\x2f\xc7\x20\xd4\x0e\xde\x8f:1060286448967459910225061878693111267236934246031 \xb9\xf9\xc8\x56\x6d\x1f\xa6\x5d\x20\x96\xf5\x19\xd8\x3f\x42\x00\x0f\x61\xb9\xb7:1061733630023364531396880940323270162287744367031 \xbc\x51\x3c\x65\x9a\xd9\x17\x39\xb3\x70\xc9\xf3\x95\xe6\x10\xb1\x45\xe2\x20\xe4:1075101886587466086496018468903815572604800082148 \xbe\x65\x2b\x42\x25\x0a\x5b\x99\xf9\x3d\x09\x0b\xa8\x61\x5d\xed\xf3\x40\x9c\x83:1086964390057747601725082424932591912047343606915 \xbf\x39\x7c\x1d\xb6\x43\x10\x4d\x86\x10\x94\x61\xae\x30\x90\x96\x4e\xcd\x39\x2e:1091699191737581483408387367588341780727584340270 \xcb\x49\xb7\x28\x64\xde\x88\xed\xa0\x58\x05\xed\xf3\xa5\x80\x2a\x2d\x26\xb8\x47:1160569036170430614586826131912035422411575179335 \xcf\xb8\xde\x77\xd6\x8b\x3f\xeb\xd7\x45\xea\x46\xd8\x8f\xc6\x01\x78\x7a\x68\x0a:1185883806383320747379091415596530195911851796490 \xcf\xf1\xf4\x95\xde\xf7\x42\x0d\x63\x4b\x3b\x4f\xd0\xcd\xa2\x36\x6a\x9a\xf5\x49:1187156875549593134501423068487507312969783113033 \xd1\x2c\xa6\x2e\x42\x4d\xa8\xe8\x1f\x7e\x7b\x57\xdb\x5b\xd7\xfc\x63\xa3\xff\xbf:1194174780271503638962472989504813215823520071615 \xe1\xc8\xdf\xa0\xd7\x30\xf4\xfe\x68\x0e\x31\xca\x4d\xef\xfb\x4e\xa5\x25\x91\x2e:1289002553246049725872987622570525161619110334766 \xe3\xa8\x8d\x15\x9c\xfd\xcc\x1b\x9b\x89\x06\x23\xbf\x22\x9e\xf1\x15\xc0\x8d\x48:1299699720357288158469698116372762213996730289480 \xf1\xd0\x23\x5d\x14\x65\x52\x4d\x79\xe5\x84\xc3\x0f\x1d\x40\x5a\xc3\x4e\x8a\x0b:1380508411373218081403828343115886164182876195339 \xf3\xf7\x61\x26\x6d\xf4\xa6\x53\x81\xe1\x39\xd1\x03\x68\xaf\x33\x9c\xe3\xb7\xa6:1392801504342851537514365489400718531334955579302 \xf9\x12\xf9\x0f\x68\xdb\xda\x4a\x95\x1c\xfd\x57\xae\x11\x7d\x14\x21\x25\xe4\x14:1421961811551523356914068742717017053094471918612 Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_bytes.t0000644403072340010010000000520014536617521024660 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_bytes'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\@got = $LIB->_from_bytes("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_bytes() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$got = $LIB->_from_bytes("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_bytes() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_hex.dat0000644403072340010010000003723314505066136024632 0ustar OSPJADomain Users0xc36:3126 0x695:1685 0x26f:623 0xe01:3585 0x255:597 0xc49:3145 0xf01:3841 0x5be:1470 0xaa2:2722 0x4e7:1255 0x5130:20784 0xbe8b:48779 0x60b4:24756 0x5bc1:23489 0xeae2:60130 0x6e5e:28254 0xee80:61056 0xa0ca:41162 0xbab7:47799 0xf3a8:62376 0xed5f2:972274 0x3c13a:246074 0x5a9a3:371107 0x4b8b5:309429 0xb4b84:740228 0xfb21d:1028637 0xf0ec4:986820 0x2b8db:178395 0xfc2d0:1032912 0x10f09:69385 0xd85243:14176835 0xdd0d9a:14486938 0x5f99d4:6265300 0x61c96b:6408555 0xf5b2cb:16102091 0x6e55c9:7230921 0xc3c0ea:12828906 0x99ba20:10074656 0xd90333:14222131 0x184284:1589892 0xf1c8490:253527184 0x324c00b:52740107 0xa706c88:175139976 0xda5d1f8:228971000 0x335fc06:53869574 0x69d9813:110991379 0xf9f87c6:262113222 0xc1e9584:203330948 0x2bba3ce:45851598 0xa541e27:173284903 0x8b7c16b8:2340165304 0x4b0b2a32:1259022898 0x7f905a84:2140166788 0xead53991:3939842449 0x44d35d6e:1154702702 0xdb0d599e:3675085214 0x13fd24bc:335357116 0xd41a7e05:3558505989 0x8b32cede:2335362782 0x70c019a7:1891637671 0x79e602fdf:32721874911 0x94e147d9b:39964671387 0x9d6d32ff2:42258870258 0x9ae7a9623:41581975075 0xa915a55ba:45388289466 0x2ed759a24:12573841956 0x3c4b2bef9:16184950521 0x66500de54:27464359508 0xac3f277ba:46237120442 0x80885503a:34502692922 0xc2673985df:834955478495 0x11a86ea974:75840268660 0x38c013b750:243740686160 0x6b2693557d:460208690557 0x893d607339:589440250681 0x7b13b2c3ea:528611460074 0x6948857871:452188272753 0xcc6a465b8d:877956324237 0xda23641d32:936896634162 0xbe5d762dad:817611812269 0xbe5d96e9e84:13081823321732 0xc06afd79ec8:13222859480776 0x91db8b8764e:10023257798222 0x338b707783d:3542123771965 0x7a67cd761b5:8411640455605 0xa0feebc98ba:11063546124474 0x11bca605ce7:1218871057639 0x7a20ff04b6c:8392633502572 0x1675178faac:1543260142252 0x109be9fa96b:1141364468075 0x7f2c47bfd13b:139828159041851 0x65381f42ddaa:111291717049770 0x7246decb19ba:125648711129530 0x150c60ddfba7:23142908951463 0xa1813bdad31e:177576427049758 0x2efb7f5da2e1:51657708511969 0x886b7aace360:149995201028960 0x793fd9058339:133315130917689 0x6551e1bcda47:111402354006599 0xd84efd02401e:237833763831838 0x10aa12c11d6f1:293162322089713 0xa5ec693e63076:2918956744978550 0x1822f08528259:424613491409497 0x628033b849982:1732844208822658 0xca0ff984c5ef8:3554719352774392 0x2ea9618a66915:820880332974357 0xc5f785e1efb81:3482670300330881 0x9e88934ec466c:2788950786459244 0x8a7d1825be2d8:2436318090748632 0x900d54799d852:2534190819694674 0xb062b7d9ab7176:49648137671504246 0xe5c1d7a4c5c1df:64670901593293279 0x97de1ea62d3732:42746944701675314 0x8ad5cec72c5a16:39078630867622422 0x37674f403be6bf:15594713796830911 0x9c61a45946d287:44017454867206791 0x476d0eadf2a9d1:20104633161787857 0xe2ba27b798fa6a:63818024483355242 0x9edd6b31a2898e:44716498784258446 0xa5a1d07f05aa33:46621288013605427 0xb06b4f39124c6de:794521342482630366 0x80c268b60200513:579880832078972179 0x748b56466367047:524868799404863559 0xfb62ab2eeba2d47:1132139304327982407 0xdfbb7775b63d88b:1007600664909699211 0xae8ab0ab9b4e5ba:786066197529814458 0x92d606268b92d97:661290696073358743 0x8ba1f99e7fcc810:628849843854166032 0x98c1c9f1ffad467:687956312842753127 0x741d6868c67be3c:522934905121259068 0xef33a42371589aa0:17236300671009462944 0x793398cf28921423:8733492117907837987 0x39724f9de4a2832c:4139458547071222572 0xeeec52629b710081:17216226058998710401 0x6c30ebf5629b7e8c:7795990394132201100 0x7786d87aa752cd9b:8612809358697483675 0x3857dbb7e4eb6e7b:4059955171963924091 0x501b56fb0aed80cf:5772302983625539791 0xff3d509bec664f82:18391945083867254658 0xf2e0a26541e3f426:17501166707742602278 0xdc4e7e00cab19b5f0:253996228454293026288 0xcb4f3c9a854f22b50:234399915955499182928 0x3e6cd332f2a64c395:71971237497745490837 0x38dbfd6b3865184dc:65554350767569208540 0x8844d8c4819a8e153:157107382817185653075 0xfa3e361f3aeb53072:288510551452774903922 0xb80c65f91d744ec25:212193393973035068453 0xe2d89909a5e06c2ec:261535729828126704364 0x3ca48092dae73e9ec:69916142506918275564 0x86c9a0570e500ff13:155399525874622594835 0x3c1cf151238109b8d3:1108890181737952950483 0xf699be1265d026a430:4548977354494420886576 0x262821a92a8c16e3b5:703868053236915561397 0x8c0079a5a4905f74d5:2582578410917734610133 0xb57fd1cf5a016eb740:3348071048039856256832 0x8904a2052897ea219b:2527537773092492943771 0x951af2ae98537576e4:2750506673341331764964 0xd2049aeb61f882facd:3874148091807584680653 0x947c247d3faf5287aa:2739063535381356119978 0x720c031533272c7b71:2103794383265718893425 0x9fc4ccc71f5ff9b1ef7:47155411775745114709751 0xa5c5836afe2ea87ecd5:48927121744790943165653 0xdec9a8d5ed5b7dca2ac:65755332540426404799148 0x8346f595f907d170a59:38746186104075374234201 0x3d5af395af0b81bdddb:18108882159329307516379 0xd5d8e956251eb315953:63116585702389269485907 0xfe82fb84e3401bb8dba:75118580452446065888698 0x98bc10aab98d50d312c:45079305891144419586348 0x42b1759158d6b3e20a7:19684358326281024970919 0x50e02bcc74ccecfd0e9:23870284082996558418153 0x4a0bdc7bdb478d626c59:349673921450375391636569 0x401055a4260dcb227702:302532773908066735388418 0x447a86de9ea97f3d3d9b:323381141991625173319067 0x7c143fca0ab2b56f24cc:585946975255442546959564 0xc21691938a1a871edf9c:916555415926136398339996 0x508dcf8cfd47f821c63f:380405265150912801916479 0xaaf204f78a929401099e:807266772060734950017438 0x298bbd27ea4f30c798bb:196194753344324183234747 0xb65dead0755cafced12a:861203167233971395154218 0xde0890fa371670658420:1048523379872506067649568 0xe91799cbef1259e9eab1d:17611947965383885226683165 0xcf0c9bd08694c8d9e6e03:15644199208075931064102403 0x55f6609b54a46233ef000:6495136181388262768570368 0xe61e19cf8e82d5ab125b7:17387192851905494314460599 0x4277c39bed37a5acabd94:5022167128551201046183316 0xfe9f56ac13bf58759f512:19238725829521688044893458 0x5144014ba3dad1780e9ed:6140258512925296248809965 0xc8d87e1cd3673b4d1388d:15175470090631020203292813 0x7fbe91279c25c982d0021:9652094147180727307665441 0x884f07332469e775433f9:10299194452008226476274681 0x311e5b4fc56a1b08c4ab85:59380720557430790238284677 0xb5b73608ae60069735ef2d:219680763166335985685753645 0x1f8f3277bb2e5e3b623b4d:38152929779848042575444813 0xda69ed2fcbae37fb3c0a11:264046052479073837513443857 0x741d7606970531a6664418:140374520893954898218337304 0xefa4d72ba6f78644d73bae:289711708186536387940924334 0x7865e8d870bd36c38047df:145552352609323988237174751 0x6e9cc80ae3aa10c5cbecb7:133722219462409364888612023 0x193742857dc82c67dbd3f7:30484102751096896864637943 0x7ace1d1241320ae8af9c94:148462293759421632408951956 0xf95a58164b47f769214da6c:4823186671798979824729774700 0xcbdb55d84413d7be60cf290:3943163571173869888331379344 0x2da86d94d056a35b8f62e92:883152653920806719739801234 0x17fa5dd904ff70f25d988f4:463801866511318464236980468 0x75f76ad3dbae296048152eb:2281803456592625338488541931 0xc0d6ab22530353824482b7e:3730040010558460600189987710 0xc34ef7c892fac85a9441849:3777815203347081924144535625 0x5d7225d7de6df412485ef3c:1807506385403671009374367548 0x10850e0bc735bc8ff1b89b6:319538351346862404962847158 0x26a15cd51867b878232dec8:747219113675034788862549704 0x5c946873c7a9b7da4c2564e6:28652035186743730993057064166 0x6ef4cd440c9d51d87efab455:34339298320750485057956394069 0xe45fcd99898a2f42a6be5082:70678401109521682888971407490 0x1724da98ede22d1c535fc39c:7162708852336740748874466204 0x18a7a1183e4956aa8fc438c8:7630291595801738297687161032 0xa0d0c90a6e280fd88612ac85:49770007529963163165964545157 0x6399404b9a2dc0bd17bb75ef:30824285248784657027165812207 0xd5f9b9297979aa7205ccf5ca:66222204023899594966807934410 0xce2d2b30ec6aa8de45f06393:63808517649317835616061252499 0xe4e020a1fca7b9c9c3e5848e:70833535726719324595163595918 0xd5f910a902fa797178b27f7de:1059542532745738146154153506782 0x980f0538fb429c86d0d24f2ed:752958080689503326633185309421 0x739c20fe591f2fc7cef17aff8:572472389838990651749559676920 0x8b099b9e4a7efc3657d6239ec:688480505348830556362215930348 0x8a444ec67046f7e48baa57fdf:684664165059373296580850712543 0xade6877218fddbd834d5769ba:861113588188942568835618662842 0x784a02284a308a6b5f1e7cd88:595642750034584711120403549576 0x79fd16a48c8e72d3f66373be9:604058421571233033346568633321 0xc277c72cab087b4a4eca0b649:962958314444578407142310065737 0x335563ab8e11a068b869e7a0e:254191437991488359738306886158 0xcc2c6bb643c7adacd1c64584f2:16176292709125782899044011836658 0x3aaf37b29319aa9eb8ffe80f2d:4649460636760900566803540348717 0x3e3ae72aa926519be6b4193ca6:4930375669778011112568853707942 0xee0a20139a9f6de0224c3ba7c8:18859436306696603312621233088456 0xaac05337f7d329daeacea2ee2c:13528309354455381935873948053036 0xf648dc3c8f793508c9f0cb81bc:19512677148885086382813386342844 0x98f6f3877fd8e5958fc22a1bef:12119108423436237303304176671727 0x334e42f5c3ce9305eb0b61c25a:4064857068689429343293700948570 0x8168cb46c99165cae1f49efbf9:10252865151586827569307764849657 0x5c299ea48c7686f3d9acc0d214:7301871624053681460634101797396 0xd4fb16ef9a4cdc0bd04c248b9a9:269985262693586480188009208134057 0xb82bc27285f9a37213ee183c4d3:233464397287634328782986281206995 0x8702178a9a90f6520b31ed6ea90:171143189908431972027087675910800 0x76735f4615b02feb16673eb7c17:150154066107699855351875732470807 0xcd5e14de598aef2e86b12385e36:260334242158094698031907539017270 0x71bdf14963642db4fe0ca780c4c:144185067658509296468045954813004 0x64d1f5462eec5e6949bb872817d:127804722187778186523802290258301 0xa7f2e95f5ef419f387be73a02b9:212900490277620468263679199675065 0x248fbb189757d64215733a35a93:46347142274797115149419746122387 0x74c4d35191d85141df49498bbb2:148022102114074172742699755027378 0x490f38938722eee83a27bf3fc6dd:1481821833015095264245816011769565 0x280404e0bc2057175518e4a100ea:811614806423948223533497433784554 0xbca50f0897207ddc95f2aedb890e:3826170304961598236510376561445134 0xbc738a37d56e425aa9026d962cac:3822247020605827846968554206669996 0x6b3f640e7e92b43346097ba82aff:2175240167852795384017924154469119 0x9e6125f3a7bd9948fb262a2fe145:3212317594647317806476061054067013 0x8a900347e0e9f1eb3188094b3409:2810382396056872855405286447068169 0x6d608f486d17791402acdc6ebd62:2218432894313635863565165059292514 0x3e92ff1cb2dd66d79666df77f01b:1269155660525578926723695807819803 0x59a05c1e6fb8cdd60fd18d67caf4:1817839470143550826499378980047604 0xc321b44196d14385c6eb6ac343837:63323843018707324485265707207243831 0xf43ffedd62351dcaf1bc6f8dd4662:79263651109732459723889954359428706 0xbfae960df1a7db8066700eae3306e:62204357986938346365633702668742766 0x76895db7785af91e1863938ef246d:38467321526448829353081496574829677 0xa90e992da80dc49187384a98f1835:54862141179105729469972165637904437 0x7a33f91df6ded7e6d8167b750b730:39657147294813415136240704775305008 0xaa540d417698366cb8abd27733644:55274702411477363210494813093967428 0x41eeaf42898cf6133652928885d99:21396274675698252860091744863673753 0x1696b73b9d780b41aacf0be4a811a:7330463095752368345490602337141018 0xcdef1e84a9b467e33be0830d66e92:66829423112310596456131762561904274 0x4740e54a0c1ffba678020939fb59ac:369969317336371107170088727002962348 0xa93cd430b9d50f6600b8a07bd90278:878731925118995889652020173497500280 0xaa0ddcc0aa544f646b5097d63c1d4c:882971627098558725066015137379130700 0x484a925750f63da108720b73502307:375357866459977654494872065178346247 0x7bf9c742316aef41717b7eaaa896fa:643718620481186400552590262474938106 0x353d1491abea66926e5cfed72587fc:276430590134578566620225754555058172 0xf620b1296ef1a29c13d681602f0299:1277968100514657807634059564313150105 0xd61244deb902098d9ee81eb560e8a4:1111522067543702890473936707121113252 0x1473e285b6e42f8884f82ef6448015:106196361222453100210742761732997141 0x9d3f6ff842bb5647657ea1643e7b94:816477269753993290142556396827081620 0x78054a096d36aa4449bf3a9f54f1ca3:9970926413977916491585651750841818275 0xe9c0026a0148b493a1655485c3e76c1:19419193311132868720295451339855394497 0xab6776895a68dbb033e417589a92ee0:14239699878888850842587546676596649696 0x442a5b5aeb6898f13f046238cd46baa:5662964567756045534176482276167412650 0xf9f781475a4382fd56f9b75948f15a1:20766430647404739490644946933315999137 0x3099cd7ebe8a213c6de74d10b140606:4037595822044884781141980938337781254 0x7ec805d424d3909076835ec8d1e8d6c:10532581566276378948820565064800963948 0x4f59aa9a5bedbaa3cd9eff8fa1b62a2:6592161645414883393363297457963492002 0xc8ed40d394a985e57a8f4796d9c7bee:16692343021863848448147338606222801902 0xdb32ee1c9cab3950940ede66d27382a:18210335962511512222056519622491322410 0xd0408ac9d81e531b5aed7c915e910cc1:276814545086480122186899353213590375617 0xa602c43441f11adce9a832fd16e4b41d:220666211386567874644001250719341786141 0xa39ade337a7f94bebd1e0273c8930e6d:217468283802635356842472908041619705453 0x90fefbb509d19be585fb1a8b72803118:192732780023242430352371618142473957656 0x6bc3ae7769d2204293c2d53803bde2f9:143243432036572617173600914629531132665 0x8287f3b94269567eb0ec10493efc4897:173505542831238374021986182056608811159 0x7cfa96833f7e836c123c6c1a23f3c6c5:166125398451943613161984358939660371653 0x58b9cfc0a32f194c8fe6544d734caa3c:117936852268999694147228561167128242748 0x8769d3f3b5ca32f59a5ce93eaa2fdb23:179995269498240891653828219062243547939 0x2fa3d3c5604fd12df470197fbf303bbb:63324355416013662647374053087284050875 0x6d10e6bfe5a766aeeaa67a5c4f4cac4de:2319577735170475364259906679581360964830 0xa857b7df1fa7e50b864cd7151cffcbaad:3580252199635089810224160853795561847469 0x4309446c0a8ee93cf8c6a8fca10dcecde:1425702306449254332609107492341219650782 0x39cdfc46dac3ed4871f8ed0756da2b060:1229368534346174941630862176947703820384 0x989675dee8464837d0e7d9f7c57533641:3245182249448778085819468892795428877889 0x95d3a8e3cb7387a2c712868e4e75ea69e:3186463544026795870337666847009453024926 0x20d0f6809f8241da720ad6d61bae58c69:697924692400407041887818418618089442409 0x4fe5384d6cefbae88481ac1e422dfe6e2:1699187033549333512946938908017810204386 0xc2c610f1c94e827e0b27e84684ea45766:4142378394161692783983623101541737846630 0xe6c6599550f2fcd12ebed1d2b805275ed:4908037292368384655864393527512156763629 0x9f9933ee4ddf192968f9a44976a9dbab73:54308537864307192854024941092297389091699 0xc1b580a5a62b52728e6b42de0021d18f99:65915755056738952787573312134753377423257 0xb003af65ed08872eb6cf1ea043359c366b:59894594981325851702372304905704832775787 0xb6eeceec2a86630ab5833c5ecc957a0ac5:62248821445778308515514268276738148141765 0x86b612df6a1a16d075c7c6b61a3f69d7a6:45839854655365663451740807535536280033190 0x898181ddc7c1cbad3ced7739346edda965:46790828984158478219138978393476780894565 0x486c9937d441db1636089d177cd944e21b:24644682595620976151411351464983614775835 0x41ef55d2ab1b9b602b96c41abf31aae3a2:22436484958949146968800247992721403995042 0x385b89e27d0e0234dbe07f952c99bec3c0:19177488233591026766937100081923186672576 0xbf8f238f9de245a001bcec801ced58c9b2:65184196328579960830937039417899837082034 0xfbd00f5f4680a580a63592aae0f5a68d8e6:1370998933394342283803823015036300349200614 0x2aad060d8213ee122b6b26c1f765a985691:232349556507336177921618308988282808587921 0x9b33ed7e508381dfb1424b1dfc06a6934a7:845004650189576446493050292502521077904551 0xc85043c98e56221048acffbb16a9d56a103:1090610617532502305571050024106146515034371 0x23f02a63bf9ce7bf25129e13ab7f4dc4020:195665882573263585940281820589215687917600 0xb2d6c1c37ceab141bac252daf7bad571d9e:973691554900568229782817545047858197503390 0x47e6866a2c1e8be2434ddc0b176239c451b:391463494586033856332069212303663210186011 0x58131d06ac76b1bac7d901d1bbfea8c457d:479524069326877301820840786947036320384381 0x3842f0cfc68914a356f849ab6894ddebc88:306316671371660724641976919782873643269256 0xd5cf4f299b07826ff50e72b0c74dcee9ada:1164091286153610841253287445843015268997850 0x68d7a97dcb1b6ac9f3d162d5123e7f0682d7:9133063738478963748015187983327696666395351 0x22f943dc720f138095b4542f04c684b51f21:3046638233937577683331810687694900571741985 0xd64577a6a28b7490bab88db25fc2ea826eaf:18665667716063813603736024459748788796550831 0x273c6815d43b1d76e1f09e49e36adaa23e29:3417934446408256003856295094568383817072169 0xb595caefc796c47af8d4c696868104b5c795:15818295575382066760154867363171361734641557 0xfb421e569cc1ac7c97dad0a608489e7c44b4:21887682731645407543943062937752750251590836 0xef092fe7ff7d464b6edae4a955683529bde4:20822962557311303331694572167724765723344356 0xe65d4ff3732992f3bdd52a96f755564c2c87:20067578297504078576702558367734434424958087 0x272c178de869b6805accb19cd49ffe88765a:3412382884554825484640759580553596711237210 0x3bc142a143432614ea06abed7de842f0b591:5205387933161353220201265273140599866832273 Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_hex.t0000644403072340010010000000533514536617521024327 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2385; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_hex'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ sprintf("0x%x", $x), $x ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\@got = $LIB->_from_hex("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_hex() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$got = $LIB->_from_hex("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_hex() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_oct.dat0000644403072340010010000006417314505066136024636 0ustar OSPJADomain Users0515:333 0445:293 0736:478 0474:316 0772:506 0662:434 0764:500 0651:425 0447:295 0451:297 04313:2251 04454:2348 01124:596 06020:3088 02640:1440 07667:4023 02774:1532 04662:2482 02070:1080 06144:3172 044224:18580 017774:8188 073424:30484 066767:28151 015115:6733 021157:8815 060314:24780 064700:27072 054035:22557 046477:19775 0464171:157817 0747475:249661 0466403:158979 0772533:259419 0272447:95527 0315110:105032 0514042:170018 0535721:179153 0413747:137191 0277413:98059 07066734:1863132 02150733:578011 01206452:331050 07447632:1986458 05570624:1503636 07153711:1890249 03312764:890356 06266060:1666096 05651417:1528591 03375145:916069 027206715:6098381 047774015:10483725 025330357:5615855 022301417:4817679 033356477:7200063 026465235:5925533 030243567:6375287 036356664:7986612 056134123:12105811 075774727:16251351 0205236633:34946459 0341777164:59244148 0240550670:42127800 0267461520:48128848 0102001117:17302095 0654343200:112313984 0221626546:38219110 0441662275:75982013 0255731232:45593242 0727562745:123659749 06153633425:833566485 06270611552:853742442 04312424773:589965819 06545221706:898966470 04474326620:619818384 07504024701:1024469441 06047220342:815603938 01011424360:136718576 04027547567:543084407 05026351072:676975162 030647361022:3332235794 043162221620:4727579536 073203753621:7953438609 027020520246:3091374246 063223756711:6883892681 014373113044:1676449316 025342153344:2877871844 017242467424:2055892756 042007103367:4565272311 033444150601:3700478337 0713617436074:61710679100 0153737701474:14487094076 0244526645640:22101576608 0623332254640:54146980256 0366056357550:33029742440 0715501364643:61958646179 0375631056643:34064326051 0421075727666:36657672118 0570354652340:50527950048 0111424437006:9870392838 07635463421306:536548876998 02027524116325:140615130325 04034517125470:278723865400 02754767266756:203606027758 06706155747360:473280532208 01351067753531:100006877017 05505074604610:387234072968 01727366001351:132000514793 01615507721235:122089874077 01036101240434:72763130140 067373346654727:3813320382935 042106572553573:2345956726651 071765420652602:3984324777346 037231473000025:2150921666581 026674503110056:1571505868846 064355467734340:3605304162528 056717421054674:3223310326204 065645264207302:3698685185730 071452466412061:3957088457777 066655400703367:3768498489079 0136625640120771:6514098086393 0607720613333711:26931696089033 0460464041504740:20932068805088 0445627707036775:20189552590333 0253365205564631:11783948921241 0403160614470657:17813480829359 0570554433201370:25887452758776 0320221665357040:14313227410976 0667725670034332:30230913759450 0273620722363363:12904351524595 02354537445012413:86633727923467 07106757201030357:251167439597807 06170620577051516:219406357254990 01446135771243133:55400512964187 05174342047315235:184473419094685 01744535421276613:68491512479115 06367344246762547:228110588700007 05031471502575605:177681942117253 01223377335364711:45320418748873 04205303320630654:149903405953452 052515760472267352:1500693867884266 040505274303557120:1148259021020752 041307711354301522:1174820854268754 051100672067163012:1447016640865802 060253055447011767:1700607007921143 072142037244361510:2047432293737288 076066110510662051:2185151671133225 073501311771204745:2097964015487461 042232115311335163:1206861838006899 056727571646576444:1650898700533028 0201175664656064521:4547432565729617 0707261516322343736:16021097531688926 0345500305172273247:8079237913867943 0330446146716002726:7620041708668374 0444144557526431540:10280757945316192 0654610615443433574:15085902649767804 0214071726352100266:4929792246317238 0433542250726024077:9981526667700287 0221141244773757503:5108421886992195 0762152604024117230:17529153646534296 01663051316715362510:33322445636494664 07165231225340057663:130227895237894067 07245513437776523757:131928995762186223 06763523047566065410:125666693964393224 06213670103707115550:113007264458906472 06731472162445044607:124750192348252551 04445573174523301011:82392676473602569 02256616167154630510:42178244114592072 07100435230041705776:128372194840906750 07000452767210261744:126121335517701092 012373464767241757575:188996495641927549 070765045431065326140:1026436267297320032 040100363025532702367:578729253859460343 045761340602506253256:684034822835361454 036231070045206313275:545819017506035389 060134455274502435173:867948800567294587 037036261255614627665:559514071627673525 060400607654030312513:873725254476862795 061151153115240342366:886407249394779382 046711037066331457551:700628539013488489 0100630517750142771105:1167299814967996997 0545313247512352152176:6438294215924962430 0500773126546643053144:5782451957718079076 0610407070344607305645:7070901584571239333 0277734143127110101523:3457504691349390163 0773064005220637546077:9135129994689694783 0440057457564123407711:5189821308171325385 0747140233107567727440:8776400434985152288 0137673257573645102116:1726966612123485262 0577400715436764163625:6908553546582517653 01372557466743352711466:13739905696708399926 05611125001013071502571:53199509540338828665 05134666371410003362723:47789612748705228243 03266273320563141323346:30955330460342134502 05554501623273344652546:52685423144273663334 05463671203224355724052:51662805856954066986 03570455160152067461117:34454128156951339599 03362641016413361313043:32044273430992098851 07375447556503535410152:69131651665421013098 06602076646040371115152:62296000480837671530 060355305566701164354517:446998227298456557903 054504652652740100032610:411680052620130530696 037652500343550342703255:293609941554304878253 050511007255666727737431:374861876821795782425 052741235463452652164754:396052096314367338988 042217571321031731607170:316183987114046066296 076644203054375237651265:579419725869378130613 031200211207326061526404:232894973495424232708 026202304607436330166177:205262979661725494399 057506322714665010464632:439378600034018945434 0774070172033331323703533:4686486095416758601563 0502556424200130656020124:2976528785416421646420 0312016042160300245303125:1863374557014843033173 0275127262012132266426775:1744790831153431588349 0102674347567504153575313:616749100773896288971 0245541720761066146767111:1528231828464389058121 0631070176416726465063736:3773372421238439569374 0124663022131214722505036:782600153901069666846 0551364765126410124214461:3334050451856634747185 0477153352135524435435661:2944191459976877063089 01505740633202123621233547:7728623775853704460135 06273647057626345460314705:30066591240275636623813 03623061272046361471203143:17885007631925352138339 06254100371652730510273701:29921780599308083623873 05603352274654750501010755:27185499406001714237933 05052346770656263004747523:24003375114050241548115 01614456012341504340203023:8380262525163148477971 07700321665317056402445026:37192416451688714095126 05756021155145551133605433:28168488287414847998747 03725240362263661156402112:18495751764632319689802 073103141731260153617452453:279239352466750849307947 010446063346560341363053137:40491530093841059960415 051106725510346757077425256:194271122149482214337198 016567322122213556611160004:69575681192402310455300 040353122545625541650650435:153284709649867010691357 024303212142721217143362463:96248376671616134669619 075431160524132073617015461:290658152578916898577201 075313462633760573122414604:289942226879386458134916 064576403026202777155413341:249091051739572363204321 051753604133154574145257052:198152694263623420567082 0746263613337235501147501641:2296728217813602868822945 0323667773074322364410771741:1000477523635244928070625 0702763662127126676227610526:2129675201253694142091606 0442707146142727162014500753:1373684755258064644506091 0116156665327357722652176645:369367036461161606872485 0152220442534334267206233416:501904249192361598990094 0360300735226637551163066637:1135147441494102870093215 0547664605625345334261406152:1699357979424728533044330 0140707235456750305373755022:457546655552062834596370 0131415667074262663632143754:422779614497610905733100 03670314643351503540453367362:9333285294299115200311026 07007463414540751160524363673:16960854455477528840759227 07555163123033134001750106624:18649687424787844035546516 07134113356557723532245451726:17360115244303228205421526 07733731021461130437203506217:19172448525923416248585359 06217451172715657612535031562:15185149797927139987960690 06773440054320203110001550017:16904006773297970122510351 03013165206721357333034223647:7306582513834239802288039 04517573447335250264137353352:11256900308715208089392874 04522115020275602613561534736:11268276922680612605049310 062427176537070052323731167732:122211290680087308514160602 034733072100126424542575152711:69943506089326827632121289 074123162376163140306207065141:145464110815955930840853089 071034233527074475160204361222:137951205501325338691625618 035377242475106020551330777730:71323400890078603709251544 025044415611166403744052214206:50947377788103879949883526 033513363141177423267053457177:66847340596308776814796415 023475525677642571137512563201:47439324557459275001816705 022217574560640452074425553060:44200139438506851178042928 062530252762172613754215546232:122518652980306502118460570 0726022231613067025127142323615:1136476691327988723140372365 0665440733051410523360232021457:1057965589739872203808711471 0122564243442036345641566014503:200022063383315591739218243 0310260420744457340723145020013:484403981833675951140249611 0763301323466165055500314551021:1207421336426676779094299153 0251377603254440606040650251207:409824703036491131173032583 0657627402341151075016253710172:1044018443353262020245819514 0433217471336141641477224323174:684930203227016059767858812 0277200133454721227334112702522:462414970750141705164129618 0612602012507316245704002072604:954456477450403533900248452 01232760203120036330316617213465:1612632695206148515791968053 03701244664656542375370714714033:4800214001122140560311949339 06432051307240060437264516111435:8109669853335777851597165341 01513314135124612346455445265214:2039213153933457587027929740 03622245432057150376743031267273:4686578269137243989891968699 06611562717100251414234400757240:8379607477108181114519019168 06462536655436235373307401053205:8169159627569702086333716101 02612545070251616701647755041235:3430200028828774506817667741 07452022377547601226417056327331:9386187424525267356465344217 05437317061326106655455740222246:6884601602550456051476538534 061322753061467050405461611375264:61169129908713999813273057972 030005137734416175604656464314023:29723103221054547413517309971 074653656635025664317616414142106:75310859434307652010961323078 064116074133762464374165327216365:64561758660997508555899477237 075100622543041761612506306025762:75670986567554044887052069874 034570025620625734170016372532514:35571536182698391246750790988 023207346725377703006747241326504:23848361192380260652996209988 030411620454771572061331402171342:30353183349960213311076758242 014462311307450243212105770227441:15596094109480814990636166945 031561607423777674376316217100510:31842537227953212351739363656 0164773220370505512577312356642225:144827577652229460945450779797 0110102126522461323536041766102176:89291670283255625594481181822 0521757576126170412277077524302534:418384434539969186896024798556 0150410350063765046501417261735674:129385172986878645185798454204 0432570224722547557370352635407051:350008906509638371346155441705 0275130633706150715540535067775703:234185383451114152523565366211 0711520115765444425716214616006106:566551364352598370064356871238 0621107030151113153105421526157155:496585737526427269712993377901 0102647761475240243063330414261466:82729143779068038669701047094 0411403424430527073502642527052746:328681639947060629852751943142 03052157234031765255104076775745616:1953738500453071455284626967438 05074247435174772652300535424776357:3243808031178723644228297293039 01407206305244570134457701545650231:959728454391433244714089271449 01454656225121221243321226145622621:1006247692486914284089765209489 02256736203633426656754767037763635:1484208522573275483834142418845 01356324663373164272226005764354435:928969670558134463319667497245 01477477116212143354141453043051754:1029499836938267882443101721580 06734720110002076023712501411632616:4393333482575082694631716500878 03775606013761046744324105156062443:2532530399008650877765171045667 06537352655561141762205516471023126:4238036561057846687767994836566 032027541650235467161075205776146350:16508785929236258498473302215912 075332317421751360136433757365006660:38933716024535135633978279857584 037140766351063343431254057751141310:19768641409617726966883944809160 014144657506645601115426454062757504:7730741242735873561606023274308 057732766526164404402156353317374022:30377788061631495399631134521362 057172417704262445013771553372747370:29941475164107127577906189684472 066466001717040111763003403065472410:34610332222944463037046950622472 072031551623513753323465277206551337:36793690658218030168037616440031 047261533465566643662576360414616221:24939142548591145868270243093649 017652351613155723030525731775432725:10035307184227754803080562357717 0461163553661526471133206573036034462:193459959367412564717572799871282 0511340414055061362077777011153426721:208806470503545773864134267252177 0766305462001666556607302605222414545:318424914716395214318222373951845 0266221746607377611547667573626256276:115536882851166268087070057127102 0535507356475461606110633354304431345:221610413081172818192441042678501 0423722722156475455006611347433207333:174879964830941955371729865739995 0753565256063276553437067716050626015:311670394939468671442700443266061 0263363140110327226320766446352150104:113755780605726366116757715341380 0717444265273661703221260627533122656:293823030962537519978711427622318 0234122757064023325250373413423707510:98979454983326857155230856875848 05076554304102346205555342130314735700:1662341021286229884927590890978240 01604607223777536114515547304741303644:570927162498613614856646590564260 07510622547350050032130617156045117400:2480023095046906345907060072554240 03460304720166533314265226162532404116:1166482310901275022678118642616398 05057303747375447213221300621105766126:1652625134396388102686641269238870 05503734403020034477533171261313335544:1827908225987088960599648914750308 01176520457672214226117626046525377454:404797224023631715795884267929388 01420517324474666645542516134527010763:497334259283489286460524172415475 02656574417724557703577402431545466633:922053061032106080029206971313563 04436137506261010333712000123300255167:1479466643825646827122939190663799 072305603623145265217614152607673254621:18947419753979275836135815177394577 033772433564347517617345642723467444233:9083067788201154900632029288614043 065721115113721023436244100116424561221:17494307613367658588326500611842705 023031011232311404033301607545456631413:6181709666774060919119574891967243 014031347277354652651442265436220445114:3910354703481126917328674962426444 032152210025665023317376343543645231436:8504836289615271425188897674834718 060413456453257067203537050532607661174:15746496512391379617285494466896508 021706314145517764761163513017232752427:5804824884002705624189345427346711 041607137212043313054143126165165021577:10957055901207115124147153756496767 051422712346660643740034621035651776715:13479496366914568514416905713876429 0516122457372672211316626510501544671251:108441546298907250741244320967520937 0344701552655635421011263654474115023104:74275266967377961250655196327192132 0111260545203731605041411447670332103333:23801849933455092704232101613438683 0767372344412522656131125155547664131447:163391571710294792876265429523280679 0437661057060610601711012417017055407011:93411329556011334240536812749983241 0104726136705452410245013671137426260040:22365277002886839882112191658811424 0345767254620551326606714300267252475021:74633776808271288048675049431530001 0521101172201067136147722506762756133204:109404102568245477683870814780831364 0216232405476571161101353330524425674654:46179567588722619210580445359471020 0644251436056613436604551712127444112405:136405263176198901304112220887618821 07235616454226713315562631125373713634746:1214276543452478797731784193102264806 01330446164233502732521373262624143255045:236435995678904747970329887137159717 04312243556071255511676476220037401030772:730270512480070669780128205832991226 06614773637474756362207326437641777544501:1125752208026074249604587771763018049 02561070346354732024535127515655301644777:452090124762055435798176451936078335 06437504125522517423532734631014625331770:1090263287179614077193305447149712376 06570734124512617332220530550061141434065:1119241778643850250991447098901542965 03306631672446100617667672675151547662731:562974954472110282730331470454285785 03731164430232232605563306455666253102326:652031645030883522780843369644721366 01661041742527416654042362367241502613507:306691546959818057578762991097812807 017517410427270254644677261027225515417747:2601183883282492132597247729103937511 025764245635360125556364353743506671462556:3651587858789061758275794766559339886 011772172247110160255564135444262263403437:1659665417006410588839655955730663199 024704341654463675614324100736477411673677:3469895516991146615320853282436904895 015405143436352026621646551324171066040765:2244757938976785083962471581115498997 031715534063215525054030374365627741655327:4303661174746306353713268949988629207 050011413534422532412427773641353731624201:6649230308729897091410255017195022465 057550645631443343157770145104567717514175:7926308502026906322045787010081134717 016265036701010660561075637720212030401421:2384906421451245357678406556270592785 073265765566134037035011762456371260321371:9862112336813450676238148032287318777 0403274001567527247412207630532152032157656:43094766950507364659349850205702381486 0736420635046141171051745005235470113457067:79509903611869587500148438632548425271 0330672106076360113355417107266133264043651:36032637532013684367088397584547465129 0337121275724474342003217146044200141667244:37078636758453630878370808106936921764 0534411736475467613074245554030567063715725:57907718595037588305154187955666918357 0551122336103311711062244311512107013162776:60008164623841074487062367241272878590 0711260410610153051773564542062776563333512:75989432340067836295080645105397118794 0476306356033316661154232320304610720572642:52901218390420705881107480066455172514 0531344473265557051040605524334436417046615:57397147428382846840258224047259405709 0424657521302377700100011312657074216330631:45998447191111553991095672644254151065 05515006402311776717732433171400653473041657:480684184864030825605823341049324258223 07664624235323062430175315274422431333357322:668068273149497912738204454566386065106 07622460336366007755475757065551273426777723:662386643553915626417809673067494637523 02346261615052311166176023317047472030772077:208414179804407278143059039604917400639 06212225021377137610143715650170611430713504:533401097664128959537486616284344063812 06240027132071570525715702456010162650764122:537015631339590475780856282215881107538 01002737214747307143376207372231657105554663:85558432455283668679902708333236640179 07325704105252022154555356764377754312273103:631031563830108854325826517520792254019 02446142521673230576715104332703130533134316:219022329271726313386571069205785655502 03012476703735312172647731376242360215444735:256976793531695108412485537010342578653 050706570144051521525644664237335504017354532:3478379440380456162103545319145919600986 014335656420643166224632116052357172075552506:1057706740043911331558038857729659295046 051172346505413631673356373163453207073050332:3508239833467424178813492089825073582298 025742045337052245522670327237274101024153734:1866580561662889429154132716306134259676 057362173123542312156761100131726725707410375:4038566927021840250792540321954083508477 073340226053203174405176711045366675401056065:5056432001165827841899711711462237166645 057761166314776676155413645500400535457032333:4080934523681286061006782510481960350939 031560357303430244117141614442741103575224420:2187986964939249525677237489397692442896 057210425556123206713512743411340336231257774:4021004810971868927502297751988788879356 012565527376716212623444306427320717700463225:912792644033612798071550372946188068501 0474042535501637672711037302135126342014631010:26888069666684188598763778851029518594568 0702565373236374121464337727404704672752637506:38343823088522572717779204678685800742726 0250426474105064312411555517055056147246632422:14338152675194705605638367884779464635666 0631423724311246251021101315311052070274475706:34839716232308968583238163633152589986758 0740115332426361413666252406622314540556564552:40846748771519167585456655102814690404714 0663211771061176420040633054024776617351634602:37028634345163550052557267088778409228674 0233357770752357045540557242225671426033400645:13225816272781839519456029832506772423077 0157731732626441565266712331123540165112173656:9521580366792998846406970425404660709294 0456163107117011763141664720133065073216111600:25710449445872119044891282805938332406656 0310644653345615077454777052247277145741002653:17084041530885653072514200999050390799787 07114166651661632125342245653527045352053122472:311378110040935943361164371352818448901434 01764320763713060602003742703137244706125147061:86126160984632281807483920467017344536113 03751133321175342311551535432530107715062043653:172283136126063289816894241439399912425387 02112222263034365656734122642233625107013001307:93431826237593233431396214626161322099399 02263204404543346517241737401061604406125534416:102361938713520163684030918051418766489870 05005262002713505522314707450263612245526264477:218235644051324072857479721380418013456703 04170427722274704272171234726040473176441236643:184479551042866806577540349096788134018467 05614453154764567430041463024321350120214373274:251518384416297335569188496238876074047164 04737224535657543751755112152236250375506204231:214998089550819479748955725806961581164697 03343332360315525641040416777150076415024764143:150015752698098977225972048776162998216803 066307262513221445674334336105402621704634242257:2368990450742659282848721380961796104471727 014140620074715460472541161227001232372050670355:530906973560137026300117865284739818287341 032246113023010524741543001062345611525460133525:1146593903023907822413615671580176280500053 033561214200305061400762560153136675735742704056:1207430211580445871799875658315591548897326 043136020024470233477265420054741145130313575771:1532464304572755159701211722713317845695481 062414204707677312667217156504050551623045444011:2200628147079152444065840541179954270193673 063321602063773276736056301307570446003036031607:2239207197054333974692917929431592345285511 035502615615271205171542651767715416604271117362:1290586968438238372312482850511124303224562 020673456355726314262732520405611363755156740507:734634815156464869063641691340452229005639 055027705620475037342444675333143461745520301640:1962058454618045274040848069086938283475872 0403370143331425552004151325457022553363175005346:11302155054705041860280107262446024787233510 0523175121660423541727756564415555546320333003176:14776179888199853727809196898130372992960126 0513733146142417637417631475047246365533441054437:14457508832410227837375125007285284174584095 0456011517020267705605673135140620376631216527214:13154776477752541466465841689867470346301068 0653216712677550033305145272145407240555345635443:18610629314047269155475214273767689709632291 0240213310741601343674251735547625154122063622275:6980841073828946103196808130079362521179325 0335263324570214066011177167153221574151644237722:9641170578028886139670610409034463612846034 0174476753033676524173130275007136103630342343622:5428095766352699429202556552997669280794514 0726535170132127570750266474004062011567511353131:20501096798159725893228979370273489681765977 0535012515465777240673516100466112526107667624346:15202000030725106885022337836341977195423974 04042426571425460152707511353235410075554756766034:90707602009417177924448077699690384999574556 05320613164462737577356446062463601610441721463342:120597025986702317359580460492263262848968418 06137024201714035121622260506647417536312643770456:137944027767875404151548007991642756903596334 02171410446065551447267557324650027237775240704115:49894291198707028153190416989822884618930253 01635245613237464341411220564135744703554440460054:40303534573500842067950616400949410254708780 01367600641537537462133133133605026660613127546625:33091849018465568028181066476745983430413717 01754763221360366712262177505034762607563212531527:43772841933315395800891259706555223939658583 04540023062552307050154466300322630410762657154220:104536367884632041528642776748658707161471120 05673407706614654320736036201370121771037243717230:130821546454632705962444234363209166185537176 01720165043344346275141613427625704306605423206726:42520754683440163632830200041781100060413398 042525746202522016050212501300255107316275007640657:773119347518638328937190113371695105921991087 074026733310041170665113367540171002375542635405116:1339043388829644219739736547312602834410015310 047103160213653162055072417501344472630416041467032:872656875461660218167626289926619323418701338 020403646514571647004316445500465776607144236577272:368128919279936514569612750658396160633011898 070327621445663516147621506623144126544273675426154:1258240463987015689114597845353819407266491500 023464521574520213474575513216565217003613764743474:437158182842442534379575030563340485901141820 027445230563503100717443556150572652775503210037461:525692081932959140098578640123645248195804977 034710227367473762066432740561006217732604541566314:644295353553103476419431350197267039787609292 035366616743613402562146421247714166414466331541002:657470360402992274241715157994377590279160322 026216157225564020220543066403743402276207234602470:496810834382113386449812302914876443395818808 0774170234723025711343115325654372147035425673501314:11334018646622561170232033890698918811841495756 0331441412374242544612740374757233670254114673136234:4851872104099164823396002954096903150833024156 0477210356564326567062013253120043566220271666420526:7119881662454246795653881422984088122988044630 0626626062237037213225614513225327406712247423261102:9071790624605721615780989211040745070823039554 0713574357360320411411644556173467552356502036410472:10252613752268522020385241976689463014979146042 0243737626241530077036221202051775000435370553364505:3655919425363778392509471921543889460220782917 0136262554214166525131413435376034410407117032166344:2104054031105194403474721356234820404273278180 0432230571662563062541562610524407301332304717461335:6295462823560579087001658801315334651887117021 0330501101543227227662231204330103475241341115340337:4830948073396715443223444786269425031559102687 0314247036520776204072024724164221032726324162652476:4556628504486465030629725405672903131888571710 Math-BigInt-2.005003/xt/author/lib-constructor-unary-_from_oct.t0000644403072340010010000000533414536617521024327 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2985; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_oct'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ sprintf("0%o", $x), $x ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\@got = $LIB->_from_oct("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_oct() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$got = $LIB->_from_oct("$in0");|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_oct() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-constructor-unary-_new.t0000644403072340010010000000523214536617521023305 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2997; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_new'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; push @data, 0 .. 250; # small integers for (my $n = 3 ; $n <= 250 ; ++ $n) { push @data, "1" . ("0" x 3); # powers of 10 } for (my $n = 1 ; $n <= 250 ; ++ $n) { push @data, randstr($n, 10); # random big integer } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my $in0 = $data[$i]; my $out0 = $in0; my ($x, @got); my $test = qq|\@got = $LIB->_new("$in0"); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my $in0 = $data[$i]; my $out0 = $in0; my ($x, $got); my $test = qq|\$got = $LIB->_new("$in0"); |; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_new() in scalar context: $test", sub { plan tests => 3, is(ref($got), $REF, "'$test' first output arg is a $REF"); is($LIB->_check($got), 0, "'$test' output is valid"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-number-_from_base_num.t0000644403072340010010000000605714536617521024563 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 105; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_from_base_num'); # For simplicity, we use the same data in the test programs for _to_base_num() and # _from_base_num(). my @data = ( [ 0, 2, [ 0 ] ], [ 1, 2, [ 1 ] ], [ 2, 2, [ 1, 0 ] ], [ 3, 2, [ 1, 1, ] ], [ 4, 2, [ 1, 0, 0 ] ], [ 0, 10, [ 0 ] ], [ 1, 10, [ 1 ] ], [ 12, 10, [ 1, 2 ] ], [ 123, 10, [ 1, 2, 3 ] ], [ 1230, 10, [ 1, 2, 3, 0 ] ], [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ], [ "1234567890" x 3, "987654321", [ "128", "142745769", "763888804", "574845669" ]], [ "1234567890" x 5, "987654321" x 3, [ "12499999874843750102814", "447551941015330718793208596" ]], ); # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = ($data[$i][2], $data[$i][1]); my $out0 = $data[$i][0]; my ($x, @got); # We test with the base given as a scalar and as a reference. for my $base_as_scalar (1, 0) { for my $elements_as_scalar (1, 0) { my $test = "\@got = $LIB->_from_base_num(["; if ($elements_as_scalar) { $test .= join ", ", map qq|"$_"|, @{ $in[0] }; } else { $test .= join ", ", map qq|$LIB->_new("$_")|, @{ $in[0] }; } $test .= "], "; if ($base_as_scalar) { $test .= qq|"$in[1]"|; } else { $test .= qq|$LIB->_new("$in[1]")|; } $test .= ")"; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_from_base_num() in list context: $test", sub { plan tests => 4, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_check($got[0]), 0, "'$test' output is valid"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } } } Math-BigInt-2.005003/xt/author/lib-convert-number-_num.t0000644403072340010010000001007514536617521022541 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3397; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, "_num"); use lib "t"; use Math::BigInt::Lib::TestUtil qw< randstr >; # Compute parameters for relative tolerance. # # $p is the precision, i.e., the number of bits in the mantissa/significand, as # defined in IEEE754. $eps is the smallest number that, when subtracted from 1, # gives a number smaller than 1. my $p = 0; my $eps = 1; while (((1 + $eps) - 1) != 0) { $eps *= 0.5; $p++; } my $reltol = 100 * $eps; # Generate test data. my @data; push @data, 0 .. 250; # small integers for (my $n = 3 ; $n <= 300 ; ++ $n) { push @data, "1" . ("0" x $n); # powers of 10 } for (my $n = 1 ; $n <= 300 ; ++ $n) { push @data, randstr($n, 10); # random big integers } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my $str = $data[$i]; my $num = 0 + $str; my ($x, @got); my $test = qq|\$x = $LIB->_new("$str"); | . qq|\@got = $LIB->_num(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_num() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a Perl scalar"); # If output does not use floating point notation, compare the # values exactly ... if ($got[0] =~ /^\d+\z/) { cmp_ok($got[0], "==", $num, "'$test' output value is exactly right"); } # ... otherwise compare them approximatly. else { my $text = "'$test' output value is correct within" . " a relative error of $reltol"; my $abserr = $got[0] - $num; my $relerr = $abserr / $num; if (abs($relerr) <= $reltol) { pass($text); } else { fail($text); diag(<_new("$str"); | . qq|\$got = $LIB->_num(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_num() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a Perl scalar"); # If output does not use floating point notation, compare the # values exactly ... if ($got =~ /^\d+\z/) { cmp_ok($got, "==", $num, "'$test' output value is exactly right"); } # ... otherwise compare them approximatly. else { my $text = "'$test' output value is correct within" . " a relative error of $reltol"; my $abserr = $got - $num; my $relerr = $abserr / $num; if (abs($relerr) <= $reltol) { pass($text); } else { fail($text); diag(< 53; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_base_num'); # For simplicity, we use the same data in the test programs for _to_base_num() and # _from_base_num(). my @data = ( [ 0, 2, [ 0 ] ], [ 1, 2, [ 1 ] ], [ 2, 2, [ 1, 0 ] ], [ 3, 2, [ 1, 1, ] ], [ 4, 2, [ 1, 0, 0 ] ], [ 0, 10, [ 0 ] ], [ 1, 10, [ 1 ] ], [ 12, 10, [ 1, 2 ] ], [ 123, 10, [ 1, 2, 3 ] ], [ 1230, 10, [ 1, 2, 3, 0 ] ], [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ], [ "1234567890" x 3, "987654321", [ "128", "142745769", "763888804", "574845669" ]], [ "1234567890" x 5, "987654321" x 3, [ "12499999874843750102814", "447551941015330718793208596" ]], ); # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, @got); # We test with the base given as a scalar and as a reference. for my $base_as_scalar (0, 1) { my $test = qq|\$x = $LIB->_new("$in[0]");|; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= qq| \@got = $LIB->_to_base_num(\$x, \$b)|; $x = $LIB->_new($in[0]); $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); @got = $LIB->_to_base_num($x, $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_to_base_num() in list context: $test", sub { plan tests => 3 + 2 * @$out0, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "ARRAY", "'$test' output arg is an ARRAY"); is(scalar(@{ $got[0] }), scalar(@$out0), "'$test' output array has the right number of elements"); for my $i (0 .. $#$out0) { my $ref = ref($got[0][$i]); ok($ref eq $REF || $ref eq $LIB, "'$test' output: element $i is a $ref") or diag(<<"EOF"); got: $ref expected: $REF or $LIB EOF } for my $i (0 .. $#$out0) { is($LIB->_str($got[0][$i]), $out0->[$i], "'$test' output: element $i has the right value"); } }; } } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, $got); # We test with the base given as a scalar and as a reference. We also # accept test data with and without a collation sequence. for my $base_as_scalar (0, 1) { my $test = qq|\$x = $LIB->_new("$in[0]");|; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= qq| \$got = $LIB->_to_base_num(\$x, \$b)|; $x = $LIB->_new($in[0]); $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); $got = $LIB->_to_base_num($x, $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_to_base_num() in scalar context: $test", sub { plan tests => 2 + 2 * @$out0, is(ref($got), "ARRAY", "'$test' output arg is an ARRAY"); is(scalar(@$got), scalar(@$out0), "'$test' output array has the right number of elements"); for my $i (0 .. $#$out0) { my $ref = ref($got->[$i]); ok($ref eq $REF || $ref eq $LIB, "'$test' output: element $i is a $ref") or diag(<<"EOF"); got: $ref expected: $REF or $LIB EOF } for my $i (0 .. $#$out0) { is($LIB->_str($got->[$i]), $out0->[$i], "'$test' output: element $i has the right value"); } }; } } Math-BigInt-2.005003/xt/author/lib-convert-string-_as_bin.dat0000644403072340010010000011120214505066136023506 0ustar OSPJADomain Users385:0b110000001 434:0b110110010 385:0b110000001 360:0b101101000 283:0b100011011 391:0b110000111 364:0b101101100 450:0b111000010 370:0b101110010 367:0b101101111 865:0b1101100001 939:0b1110101011 621:0b1001101101 821:0b1100110101 595:0b1001010011 615:0b1001100111 744:0b1011101000 850:0b1101010010 614:0b1001100110 1020:0b1111111100 1894:0b11101100110 1991:0b11111000111 1392:0b10101110000 1593:0b11000111001 1522:0b10111110010 1530:0b10111111010 1924:0b11110000100 1132:0b10001101100 1944:0b11110011000 1178:0b10010011010 3071:0b101111111111 3704:0b111001111000 2487:0b100110110111 3638:0b111000110110 3423:0b110101011111 2667:0b101001101011 3238:0b110010100110 3876:0b111100100100 2859:0b101100101011 3572:0b110111110100 4789:0b1001010110101 7323:0b1110010011011 5109:0b1001111110101 4187:0b1000001011011 6282:0b1100010001010 7756:0b1111001001100 7020:0b1101101101100 5379:0b1010100000011 5268:0b1010010010100 6155:0b1100000001011 16364:0b11111111101100 15609:0b11110011111001 12129:0b10111101100001 12491:0b11000011001011 10995:0b10101011110011 14056:0b11011011101000 9610:0b10010110001010 11207:0b10101111000111 10409:0b10100010101001 9845:0b10011001110101 17529:0b100010001111001 26732:0b110100001101100 30593:0b111011110000001 25340:0b110001011111100 23253:0b101101011010101 26742:0b110100001110110 26850:0b110100011100010 31370:0b111101010001010 32612:0b111111101100100 31739:0b111101111111011 63000:0b1111011000011000 33103:0b1000000101001111 38726:0b1001011101000110 46285:0b1011010011001101 37785:0b1001001110011001 61360:0b1110111110110000 55090:0b1101011100110010 58311:0b1110001111000111 55720:0b1101100110101000 53078:0b1100111101010110 78331:0b10011000111111011 108576:0b11010100000100000 115325:0b11100001001111101 118448:0b11100111010110000 111840:0b11011010011100000 92059:0b10110011110011011 85915:0b10100111110011011 97791:0b10111110111111111 106697:0b11010000011001001 101438:0b11000110000111110 132897:0b100000011100100001 197049:0b110000000110111001 136861:0b100001011010011101 236531:0b111001101111110011 162668:0b100111101101101100 256924:0b111110101110011100 249554:0b111100111011010010 235586:0b111001100001000010 211239:0b110011100100100111 156302:0b100110001010001110 343747:0b1010011111011000011 506006:0b1111011100010010110 356371:0b1010111000000010011 373950:0b1011011010010111110 350547:0b1010101100101010011 330862:0b1010000110001101110 456698:0b1101111011111111010 399322:0b1100001011111011010 383349:0b1011101100101110101 342493:0b1010011100111011101 808120:0b11000101010010111000 572878:0b10001011110111001110 615249:0b10010110001101010001 969938:0b11101100110011010010 836526:0b11001100001110101110 913681:0b11011111000100010001 758137:0b10111001000101111001 962414:0b11101010111101101110 936274:0b11100100100101010010 671422:0b10100011111010111110 1569772:0b101111111001111101100 1653453:0b110010011101011001101 1071137:0b100000101100000100001 1205669:0b100100110010110100101 1471785:0b101100111010100101001 1611189:0b110001001010110110101 1683433:0b110011010111111101001 1633840:0b110001110111000110000 1699175:0b110011110110101100111 1990384:0b111100101111011110000 3484093:0b1101010010100110111101 4031705:0b1111011000010011011001 3172456:0b1100000110100001101000 2919790:0b1011001000110101101110 3754410:0b1110010100100110101010 2926367:0b1011001010011100011111 4132205:0b1111110000110101101101 2251849:0b1000100101110001001001 3370516:0b1100110110111000010100 3606789:0b1101110000100100000101 7635369:0b11101001000000110101001 4509091:0b10001001100110110100011 5160110:0b10011101011110010101110 6060642:0b10111000111101001100010 6495561:0b11000110001110101001001 7507693:0b11100101000111011101101 4422813:0b10000110111110010011101 4462041:0b10001000001010111011001 5200263:0b10011110101100110000111 4267197:0b10000010001110010111101 11024005:0b101010000011011010000101 15843377:0b111100011100000000110001 12111250:0b101110001100110110010010 16411453:0b111110100110101100111101 15472773:0b111011000001100010000101 14177079:0b110110000101001100110111 16377760:0b111110011110011110100000 11020803:0b101010000010101000000011 9900572:0b100101110001001000011100 12949294:0b110001011001011100101110 29546748:0b1110000101101100011111100 27509049:0b1101000111100000100111001 18731096:0b1000111011101000001011000 20399566:0b1001101110100010111001110 24274057:0b1011100100110010010001001 25003588:0b1011111011000011001000100 23140792:0b1011000010001100110111000 24943077:0b1011111001001100111100101 28128096:0b1101011010011001101100000 27864090:0b1101010010010110000011010 54064948:0b11001110001111011100110100 51555050:0b11000100101010101011101010 58132750:0b11011101110000100100001110 35672094:0b10001000000101000000011110 45403105:0b10101101001100101111100001 52795361:0b11001001011001011111100001 56646650:0b11011000000101101111111010 48608267:0b10111001011011010000001011 54590201:0b11010000001111101011111001 64872763:0b11110111011110000100111011 84627400:0b101000010110100111111001000 69969224:0b100001010111010010101001000 131866365:0b111110111000001111011111101 103330514:0b110001010001011001011010010 133525060:0b111111101010110111001000100 130415428:0b111110001011111101101000100 132177236:0b111111000001101110101010100 130266639:0b111110000111011011000001111 78654968:0b100101100000010110111111000 118184662:0b111000010110101101011010110 172641632:0b1010010010100100110101100000 190332102:0b1011010110000011110011000110 206031460:0b1100010001111100101001100100 162125518:0b1001101010011101011011001110 201697689:0b1100000001011010100110011001 242880725:0b1110011110100001000011010101 255004622:0b1111001100110000111111001110 162991882:0b1001101101110000111100001010 189793791:0b1011010100000000010111111111 178792952:0b1010101010000010100111111000 312529947:0b10010101000001101010000011011 303539056:0b10010000101111010001101110000 325248226:0b10011011000101110010011100010 381328868:0b10110101110101001110111100100 463322519:0b11011100111011011110110010111 491029178:0b11101010001001000001010111010 383979693:0b10110111000110001000010101101 532888951:0b11111110000110011110101110111 406831163:0b11000001111111100000000111011 494876280:0b11101011111110011011001111000 829144441:0b110001011010111011110101111001 857555366:0b110011000111010100000110100110 868823130:0b110011110010010011000001011010 579909652:0b100010100100001011100000010100 641443890:0b100110001110111010100000110010 913297118:0b110110011011111100111011011110 1003266513:0b111011110011001010000111010001 956889187:0b111001000010001111100001100011 940295968:0b111000000010111100011100100000 1070704980:0b111111110100011010100101010100 1954678323:0b1110100100000100000011000110011 2136677878:0b1111111010110110001110111110110 2005463461:0b1110111100010001111000110100101 1324072528:0b1001110111010111011111001010000 1741868857:0b1100111110100101100111100111001 1375668323:0b1010001111111110000100001100011 2073481752:0b1111011100101101101001000011000 1860789144:0b1101110111010010110001110011000 1322103612:0b1001110110011011011001100111100 1101024859:0b1000001101000000100111001011011 2844172736:0b10101001100001101010000111000000 3337120992:0b11000110111010000110110011100000 3826211106:0b11100100000011110101100100100010 2607215350:0b10011011011001101111001011110110 4160567033:0b11110111111111010011011011111001 3029555306:0b10110100100100110101100001101010 3861183498:0b11100110001001001111110000001010 4208088148:0b11111010110100100101010001010100 3526441565:0b11010010001100010011101001011101 2377542914:0b10001101101101100110110100000010 7769960116:0b111001111001000000010111010110100 4396349826:0b100000110000010101111100110000010 6401445633:0b101111101100011100100111100000001 4582501339:0b100010001001000110110101111011011 5568465534:0b101001011111010000000101001111110 8432383836:0b111110110100110111111011101011100 8376405519:0b111110011010001011100111000001111 7718711390:0b111001100000100100011000001011110 4662746017:0b100010101111010111101101110100001 8078353112:0b111100001100000011110001011011000 14935663736:0b1101111010001111000010010001111000 16016932712:0b1110111010101011101111111101101000 11629057547:0b1010110101001001010101011000001011 16067464996:0b1110111101101100100000111100100100 9505685168:0b1000110110100101010011111010110000 13868610391:0b1100111010101000100011001101010111 16046661400:0b1110111100011101001001111100011000 11464045850:0b1010101011010011110111010100011010 15614515478:0b1110100010101100101001100100010110 15466932518:0b1110011001111001101010100100100110 29858208639:0b11011110011101100000001101101111111 24613306669:0b10110111011000100010100000100101101 20218881744:0b10010110101001000111010011011010000 34247513315:0b11111111001010011111001010011100011 22521262663:0b10100111110010111110011001001000111 28516160848:0b11010100011101100100001010101010000 33517689161:0b11111001101110011110101100101001001 27834175072:0b11001111011000010111100111001100000 25577503126:0b10111110100100010011011100110010110 33252018878:0b11110111101111110011000101010111110 36745154818:0b100010001110001011101001000100000010 62958087646:0b111010101000100110000010110111011110 53685577621:0b110001111111111010001110011110010101 40738240212:0b100101111100001100000011011011010100 49935701427:0b101110100000011001100101010110110011 42629095418:0b100111101100111001000101111111111010 57319938020:0b110101011000100010001101011111100100 39245526294:0b100100100011001101110011010100010110 56214831113:0b110100010110101010100100000000001001 45980674835:0b101010110100101010010110101100010011 76526826008:0b1000111010001010110101011001000011000 70164221149:0b1000001010110000111010000110011011101 136332331993:0b1111110111110000010100100101111011001 116572419179:0b1101100100100010000011111010001101011 95634986096:0b1011001000100010010100001010001110000 136778158797:0b1111111011000100111010001001011001101 95461276499:0b1011000111001111011110111101101010011 69516521234:0b1000000101111100000011110111100010010 84390704800:0b1001110100110000100111111011010100000 71582798753:0b1000010101010101010101101001110100001 161250871434:0b10010110001011010011010000100010001010 157111025264:0b10010010010100100010111111111001110000 232663118771:0b11011000101011110011010111001110110011 262238081083:0b11110100001110100110111001000000111011 211227798955:0b11000100101110001010000110110110101011 153599642884:0b10001111000011010000001000110100000100 143628438175:0b10000101110000111011000000101010011111 258598277838:0b11110000110101101010001001001011001110 187460373222:0b10101110100101100000100100101011100110 177504599067:0b10100101010100000110010011110000011011 420212169211:0b110000111010110100110001101100111111011 494784462475:0b111001100110011011100111011111010001011 542526521264:0b111111001010001000110011011111110110000 473485577619:0b110111000111101111100001000110110010011 316792961872:0b100100111000010010101001111101101010000 355026856504:0b101001010101001001111111110101000111000 317504196479:0b100100111101100101110011000111101111111 378724463722:0b101100000101101101111001011010001101010 506446716758:0b111010111101010100100111001111101010110 430709732980:0b110010001001000010011001111011001110100 965872895844:0b1110000011100010100000101100011101100100 608003195284:0b1000110110001111110100001000000110010100 1055936070119:0b1111010111011010101100011100000111100111 582171820978:0b1000011110001100001001010000001110110010 964715950704:0b1110000010011101100011010011001001110000 742736008411:0b1010110011101110100001000001010011011011 938182414998:0b1101101001110000000001111001001010010110 818964069157:0b1011111010101110000011111111101100100101 900038948724:0b1101000110001110100000000111011101110100 725700781189:0b1010100011110111001000110010010010000101 1839268849640:0b11010110000111100111101110110011111101000 1527861226809:0b10110001110111011101000000010110100111001 1594884227772:0b10111001101010110100000100000001010111100 1607510277059:0b10111011001000111000101000011101111000011 1168278209459:0b10001000000000010110011101100001110110011 1496165672458:0b10101110001011010011011000110011000001010 1164213373942:0b10000111100010000100001100100101111110110 1558650473618:0b10110101011100110110011101100110010010010 2172724482110:0b11111100111100000011110001001000000111110 1443398324389:0b10101000000010001001111101001000010100101 4176693651137:0b111100110001110110010101110110011011000001 3314504161200:0b110000001110110111110101111101011110110000 2361614062452:0b100010010111011011001010101101001101110100 3266105495203:0b101111100001110011000011101100111010100011 4181380934797:0b111100110110001101101110011010110010001101 3982602267520:0b111001111101000101100101111110101110000000 2456786231471:0b100011110000000011110111101110000010101111 3424440077954:0b110001110101010000100010001100111010000010 3402385035708:0b110001100000101101111100111001000110111100 2256924101236:0b100000110101111011001010001100101001110100 8539693469045:0b1111100010001001101011001010100110101110101 6787959006615:0b1100010110001110001111000101010010110010111 4626459601434:0b1000011010100101110011110110010101000011010 4529973487621:0b1000001111010110111011101011110100000000101 5133436256548:0b1001010101100111000101001010000000100100100 8590502525639:0b1111101000000100001110110011111101011000111 4747751425446:0b1000101000101101100000010011000010110100110 7420761693364:0b1101011111111000111110111010101110010110100 7050540499693:0b1100110100110010100111101100100001011101101 4933810792890:0b1000111110010111110000010100010100110111010 15863400124986:0b11100110110101111100010101000101001000111010 13033058886931:0b10111101101001111110110110000110010100010011 13221601877768:0b11000000011001100100111000100001111100001000 10718745445385:0b10011011111110100111000000111100010000001001 10837729279342:0b10011101101101011011000000001111110101101110 9497072675386:0b10001010001100110101101001001010101000111010 10832960843735:0b10011101101000111110110010000110111111010111 15697060841568:0b11100100011011000001101111000100100001100000 13484683932667:0b11000100001110100101110010111011001111111011 13951987995615:0b11001011000001110011010010011101001111011111 35004009912357:0b111111101011000000001100100111001100000100101 33402275187717:0b111100110000100010010101111110100110000000101 24057151640906:0b101011110000100111101111110100101010101001010 30219030064282:0b110110111101111101010100011010110110010011010 24328928271954:0b101100010000010000101001000001001111001010010 30732702313100:0b110111111001110000011110011011110101010001100 17904182006306:0b100000100100010100100011010001001001000100010 33741753194661:0b111101011000000011101001101101001100010100101 27778155817745:0b110010100001110011011000111000010101100010001 33360816916400:0b111100101011101101011101001000100011110110000 44691248504408:0b1010001010010101111101111111011101111001011000 36313918181099:0b1000010000011011111110001100011000111011101011 65716842040614:0b1110111100010011100101000001101000110100100110 36908834381194:0b1000011001000110000001111101100101110110001010 53657347545972:0b1100001100110100010011001000111101101101110100 51085312145931:0b1011100111011000111001111000100011101000001011 52274858882635:0b1011111000101100110000011001001111011001001011 42387648580040:0b1001101000110100100100101111001000100111001000 64689542361198:0b1110101101010110110101001100010111000001101110 62064864877547:0b1110000111001010011010001110010101101111101011 127901800723207:0b11101000101001101110101011001011111001100000111 77435580126596:0b10001100110110101100000001111110001010110000100 132353269859353:0b11110000101111111100101101000101000010000011001 73542035879575:0b10000101110001011010110111011001011011010010111 129116357953129:0b11101010110111000111110101001101000011001101001 93049885020756:0b10101001010000011011101010101111101001001010100 95289738614330:0b10101101010101001011111000001010101011000111010 71525011399490:0b10000010000110100110110111001011010001101000010 138398248120551:0b11111011101111101011010011010101011000011100111 137864110402418:0b11111010110001011111101010100111110101101110010 236098935243402:0b110101101011101100010001001010101100001010001010 182408642131510:0b101001011110011001010010010100010111011000110110 174077480821500:0b100111100101001010010010011010000110001011111100 241311779039406:0b110110110111100011000110110111101010100010101110 198347227233672:0b101101000110010101010000000001010111110110001000 232557145403077:0b110100111000001001101110000010101010111011000101 183219363354454:0b101001101010001100010101000100011001011101010110 213736753175943:0b110000100110010001110111001111111001110110000111 183211798240568:0b101001101010000101010010001001110001110100111000 152772841986561:0b100010101111001000110010111110100101101000000001 486926746024203:0b1101110101101101101110111101110100111100100001011 434772084158358:0b1100010110110110001000011101000100110111110010110 338691840946060:0b1001101000000100111010110110111100010111110001100 474131994781080:0b1101011110011100001110101001000000010010110011000 396684884684764:0b1011010001100100001100101101000111010111111011100 309570608022847:0b1000110011000110110000110000111111100010100111111 398321129629308:0b1011010100100010101011101011100000010011001111100 288229309872552:0b1000001100010010010011101101000001111100110101000 375215717683059:0b1010101010100000110110111100100010000111101110011 551407987807979:0b1111101011000000010101101001111010101011011101011 686972929223373:0b10011100001100110001011001011010101010101011001101 597422349003256:0b10000111110101101000111010111001001010100111111000 769792401191442:0b10101111000001111101000010100111111011001000010010 773698452992826:0b10101111111010110010110101011101000011001100111010 740358052563527:0b10101000010101101000001010101110101100101001000111 970607622197848:0b11011100101100001100110010100010011001001001011000 704929793248036:0b10100000010010000101000001111010110000101100100100 868485877506010:0b11000101011110001000100000001110001001111111011010 765046660475310:0b10101101111100111001001110011011110010100110101110 828579424431864:0b10111100011001011010101110010000101110111011111000 2074490241015468:0b111010111101011110011100101111001111101111010101100 1162858693660235:0b100001000011001110100100011010111000000111001001011 1193692265601909:0b100001111011010100000100011011101100101101101110101 1813913666078890:0b110011100011011111010101111101110000100100010101010 1438836607342736:0b101000111001001110101000000110111101101100010010000 1583735318531360:0b101101000000110011000011101000101000100110100100000 2247974690474493:0b111111111001000010101100100111000111100100111111101 1425686428348294:0b101000100001010011101111101000111110110111110000110 1477608976560326:0b101001111111110000010100110001010100011000011000110 1212353282764395:0b100010011101010000011111110110000101110111001101011 3550213195317577:0b1100100111001110011001101100011000100100000101001001 3336407288700038:0b1011110110100111000111011011010001001101110010000110 2883433157150913:0b1010001111100111011110011001000100001100100011000001 4100378148540751:0b1110100100010100010110101110111111010001000101001111 3656731103146784:0b1100111111011100011100001110011100010011001100100000 2256851051097427:0b1000000001001001100000010101001101100010110101010011 2977094502091241:0b1010100100111010011011010100010000101000100111101001 2528377550703703:0b1000111110111000101111000101110001001000110001010111 3547290101927204:0b1100100110100011110111010110011100001100110100100100 2399453771959567:0b1000100001100100101001011101101110111000110100001111 5462538764794667:0b10011011010000010011001101010101001011011101100101011 4790275026803794:0b10001000001001011101011010001010110010101110001010010 8082531891515420:0b11100101101110000010100011010010001111001000000011100 8385115362909591:0b11101110010100011011111001110100110110101110110010111 6353517215616128:0b10110100100100111110110000000101101100000110010000000 7871940669158018:0b11011111101110111110100000011010001110011001010000010 8331742115341009:0b11101100110011010110011100001001001010010001011010001 4736003017689603:0b10000110100110101111010100001100001100100101000000011 6646781215069830:0b10111100111010011011001011001001110010101011010000110 5718506375737000:0b10100010100001111001110000101001010111110111010101000 13588501805699781:0b110000010001101010101110011111001010001001001011000101 11579596443485861:0b101001001000111001010011100100101010000000011010100101 12104586884766769:0b101011000000010000111011000001011010110101110000110001 17819209649242927:0b111111010011100111101000001101010100100100001100101111 17559162024838944:0b111110011000011111011011111111000010110100011100100000 15416744325758886:0b110110110001010111001010000001001000010011111110100110 15128108755606840:0b110101101111101110111101001100100000000101110100111000 16571250989680898:0b111010110111110111011100001000101110010100100100000010 9569377577705905:0b100001111111110100110001010111001111011010000110110001 16305283236392450:0b111001111011011001000110010111010001000110111000000010 20496908303619793:0b1001000110100011101010001011010011011100101011011010001 29259960924064740:0b1100111111100111100011110001001000001010100101111100100 19973933329510357:0b1000110111101100010111111000000110111110110111111010101 21463166231614461:0b1001100010000001010001011001110111111011001001111111101 23952889346012087:0b1010101000110010000011010100100110100000011001110110111 32258896427405464:0b1110010100110110100101110011110011001101101000010011000 20713595544999867:0b1001001100101101110011111001000011110110001011110111011 26665612607487473:0b1011110101111000011101110111111001011111111110111110001 28582577339726035:0b1100101100010111011001111100001000110010111100011010011 35042242646798763:0b1111100011111101011101111101001000110000111000110101011 38425031067558799:0b10001000100000110101110010110111010000111110001110001111 38069847938145327:0b10000111010000000101001100110011000000011001110000101111 36029498600004395:0b10000000000000001010001101011001011111010001101100101011 61343392169259965:0b11011001111011110111110101111011100100001111001110111101 66409018964977551:0b11101011111011101010011010100001010010100010011110001111 41052543338300926:0b10010001110110010001001000010110110011100100010111111110 37246210244785240:0b10000100010100110011101100011010110111101011010001011000 54917948461581101:0b11000011000110111001010101001001110110001000001100101101 38038290864684389:0b10000111001000111001111110111110110110100011110101100101 57010637817502938:0b11001010100010101101111101111111100001111101110011011010 82618932321139160:0b100100101100001010111101100110000101110010011100111011000 137190223992707984:0b111100111011001011100100000100111101111011101101110010000 118985073123982883:0b110100110101110000100101100101001001000001111111000100011 98754716389812832:0b101011110110110001110010000101110010011110010101001100000 83284127396603723:0b100100111111000100111100011111100111001110010011101001011 141839136619662819:0b111110111111010011111000101111001011101101000110111100011 125186680462584777:0b110111100110000001001111101100011100101010010101111001001 137149390843175370:0b111100111010000001010010011110010010111100110000111001010 92167766804994185:0b101000111011100100001100001111000001001110001100010001001 125030498479009024:0b110111100001100101001001101101111111011100110110100000000 183460794190365836:0b1010001011110010001001111011001011111011011000010010001100 148171872852216306:0b1000001110011010011000100010000111000011111000100111110010 203219275392068069:0b1011010001111110101101101010110001010000011010100111100101 222792840334344389:0b1100010111100001001110100001101010101000010000000011000101 257606149837745246:0b1110010011001100110110110110101101000010001110110001011110 146360709891849496:0b1000000111111110100100101001001010001011010111110100011000 265506175155360825:0b1110101111010001000111010110100111110011101101010000111001 190592798158921980:0b1010100101000111110010001111011111000000101010000011111100 200855727196994451:0b1011001001100101010011100000111110101011011111101110010011 208193247667057074:0b1011100011101001101010011111011011110101000111000110110010 549552582785656655:0b11110100000011001110010100110010010010101100110011101001111 349368022696385289:0b10011011001001101000101110110011000101100101101101100001001 476227196887220275:0b11010011011111001100001110011000110110101111100000000110011 556541951288425930:0b11110111001001110111111010010111101001001100011110111001010 396097981091145526:0b10101111111001110010000001111100011001011111110011100110110 504020956439166024:0b11011111110101001000110001110110011111010001011110001001000 464178325876243946:0b11001110001000101111011101001100010010010011111110111101010 465069668170575300:0b11001110100010000100110011000101111000111011010110111000100 416129463448023841:0b10111000110011000111000101011010001011001001011001100100001 367391406473251137:0b10100011001001111001000100110100100010111101000100101000001 1088518387515185497:0b111100011011001100011011010011001011010100101101100101011001 1139583174269170480:0b111111010000100111001101101111110110010100110111001100110000 702247106580307364:0b100110111110111000100000010111010100010000111101110110100100 1037823401555741274:0b111001100111000101101110001010010101010100010100101001011010 693232746315712869:0b100110011110110110111000001010000110110100010000100101100101 644654214938632198:0b100011110010010001011001011111001100011000000010000000000110 1077539720269373936:0b111011110100001100001010101010100010000001111010000111110000 658352158082598578:0b100100100010111011111100110010110111101000000000011010110010 936280272013136974:0b110011111110010101011111001001011111100011001001010001001110 578659100729229633:0b100000000111110011110110001011100001000000110100000101000001 1588896215619722628:0b1011000001100111001001011000010010100111110011101110110000100 2247240116212023398:0b1111100101111110011001111101010110011110100110100000001100110 1634690706200272576:0b1011010101111100101101000100101001100101100110001111011000000 1721069932072270334:0b1011111100010011101111111110000001110110001011111100111111110 1311508401389639204:0b1001000110011011010011111000101000000110001010001011000100100 1440857665570557620:0b1001111111110111101000110100110110000001110110100111010110100 1291362261962354322:0b1000111101011110101110010001010100100100111000110111010010010 1396114446003553179:0b1001101011111111111101011000100010011110101010100001110011011 1403785555191860848:0b1001101111011001111111000011001011110000010010000111001110000 2260789855565402447:0b1111101011111111100000110010100111100110010000101000101001111 3885916480144681980:0b11010111101101100011000111001101000001110111000010101111111100 4244085150440011381:0b11101011100110000001001111010101001100011111001011011001110101 3824364441870143886:0b11010100010010110111110011001010010001010011100001000110001110 2449295275866541617:0b10000111111101101001010001001110010100000100010100111000110001 3705047503983593168:0b11001101101010111110010001001100011110111000111100011011010000 4411736585662901217:0b11110100111001101000110000110011011111000010000010101111100001 3300161359217389461:0b10110111001100100001110100010101101101100111110110111110010101 2713640017177792364:0b10010110101000110010010011011111011000001010101100111101101100 2678830713470587426:0b10010100101101000111100101011101000001110100100001001000100010 4465566255174249204:0b11110111111000111000001101100101111000101000011110101011110100 5323744703790851952:0b100100111100001101111011001101000001000010100100010011101110000 8432669343264785018:0b111010100000110110111000001011011101001100111111100001001111010 7213718816716560004:0b110010000011100010001110000101100111011111100010001011010000100 7215976386506529521:0b110010000100100010011000100101010101001010101000001101011110001 8016545693437775346:0b110111101000000011111011101010110101111000010111100110111110010 6817733502061659674:0b101111010011101011101000111111110001011101010100100011000011010 6003099104633944346:0b101001101001111010010101101010001110011001010111111100100011010 6536560928572140360:0b101101010110110100001111000100001001000001111010110101101001000 7109027374109708140:0b110001010101000010101101011101101000100010101100100111101101100 8814278840843434447:0b111101001010010100110111110011111011011101101101111100111001111 16087812538550825687:0b1101111101000011011001000100010001010101011001011011001011010111 15960287131216861356:0b1101110101111110010101001001010110101001011010110101100010101100 10885633020760341010:0b1001011100010001100010011000111011001101101011101011101000010010 13670704180985832628:0b1011110110111000000110010000010110101001000110111010010010110100 16053262766663371006:0b1101111011001000101001010110111010110100111110011000100011111110 10024682988321717433:0b1000101100011110110101000001000010011000110100010011110010111001 12863097455476305109:0b1011001010000010111001101111101111110000111001010110110011010101 9671607104216945824:0b1000011000111000011100110110101100111101111111101101010010100000 17095293239232663380:0b1110110100111110101011101010000001010111100110011000111101010100 13375208569428822518:0b1011100110011110010010010101010000111001100100001100100111110110 32557607019901963055:0b11100001111010011110110110001011001000110000001010100101100101111 34245345888335844969:0b11101101100111111111010001010010101010100101001000101011001101001 19284087047734493505:0b10000101110011110110101101111111110011001111011010000000101000001 21854520777498047358:0b10010111101001010110110101101101101011111001010100011001101111110 36322388425756153666:0b11111100000010011000010111101010000110110111101001001011101000010 22143532049602329546:0b10011001101001101101000010001001111100001000001100011101111001010 18536641684325108560:0b10000000100111111011000010110011010001010111001011000101101010000 27956867149499833987:0b11000001111111010101111101000110011110110101110011001111010000011 31225455484653452214:0b11011000101010111000110100101001011100000100010101011101110110110 29655248792634907779:0b11001101110001100100110111010100000011010110101011101110010000011 44078252808623951461:0b100110001110110101011010010110010010010001111001010000111001100101 54872466302730673452:0b101111100110000010001010010110000000100011110110101001110100101100 71849538340600817283:0b111110010100011100110101100111001000010011010100100010011010000011 58309742827471414696:0b110010100100110101110100100010100111001111110100001010010110101000 66576355942588959424:0b111001101111101110101110101111111000111101111110110100101011000000 61384377440112241351:0b110101001111100001000111100000110110101100011001000110101011000111 41239921673357878803:0b100011110001010001101000100100001101110001011011011110011000010011 48624615208426679777:0b101010001011001101010101011110100001100110010101000010110111100001 70553370500762659617:0b111101001100011111111011001010100110100100011110110110101100100001 49778734258202553785:0b101011001011010001100101110001000110011100101110110010110110111001 77887736309513854407:0b1000011100011101000110100111000000110101111110111100001110111000111 124380672298829998156:0b1101011111000100000111010100111010101110000000001111110100001001100 100116932589447862434:0b1010110110101100110110010111011111101110011110001001101100010100010 132681752709264381349:0b1110011000101010100010001110001110001101011111011010001010110100101 94654135116531281020:0b1010010000110010111000010100110001110101110101011001010110001111100 90473888162760038267:0b1001110011110010011110100011110111011001101101110110001011101111011 145273439925628768390:0b1111110000000010010111011111110101110110010001001110001000010000110 135046966881437001269:0b1110101001000100111001101001101111010000001111111101010011000110101 76978020457549033330:0b1000010110001001000110111011100001001010100111101100110111101110010 95099135412463752876:0b1010010011111000011111111111100110100000010101011000101011010101100 208645070343288006527:0b10110100111110001000001100100000011100111100000100100010011101111111 253744069737223097761:0b11011100000101101000000001110000100001000101001000010000110110100001 186718743053848226930:0b10100001111100111110001110111000011101111000000011110010110001110010 228514255133942004204:0b11000110001101000101101110000101001011101011100110001011100111101100 236963383193404024843:0b11001101100010000111000011011000011101010001100111011010100000001011 185947747833897664510:0b10100001010010001011000110110111011000100111011000011011111111111110 254212008900758790018:0b11011100011111100110011110110011100011101000001010101101111110000010 235573722204427138134:0b11001100010100111101111111000011100011001011011011100011010001010110 260486704037045741722:0b11100001111011111010101011010011010000111000011011000010100010011010 156140985583238522976:0b10000111011011100100001101110001111000011000010100100010100001100000 513781817429128957142:0b110111101101000100111101100001101000110101101110101001100110011010110 339177998072863093127:0b100100110001100001010010100000011010010001001001000010111000110000111 415365211003941818895:0b101101000010001011001101010101011010101111001001000000001001000001111 535201344770567311565:0b111010000001101101001001000110111001101011001000010000001000011001101 357197401286130335952:0b100110101110100011100000101111111010011110000011101010000000011010000 586811034296453228017:0b111111100111110100011100101101010001001101111101010001110010111110001 469636352461765284255:0b110010111010110000011011111100101001011101101101010110001000110011111 332857333303950846939:0b100100000101101010010110011010001011000010001110010100010101111011011 405853785855830060030:0b101100000000001011010010010111110111000101100001101001110101111111110 523403704028839668168:0b111000101111110101111011111111011001111011010101011011110100111001000 993260104643526857022:0b1101011101100001000000110000101010011111011100101111010001000100111110 1057564477434842879294:0b1110010101010010100111110010010000001010011111011011001001010100111110 1003988200835074705557:0b1101100110110100100010100111010100110101010010001010110100100010010101 642901071291911013977:0b1000101101101000001011011011100001101010101000011100001000011001011001 889457556722711597451:0b1100000011011110110100000001110100101010001100000101010001000110001011 693489830351362421551:0b1001011001100000011010110011100111000000011110110111010111001100101111 600849872060113228251:0b1000001001001001110111100011110011001100011001111101000001000111011011 755028051346179044218:0b1010001110111000011110011111000110001110101000011001010011001101111010 817479142917120208220:0b1011000101000011001101010101010100101100000001101111000010110101011100 1124578822406436090946:0b1111001111011010101010100100001011010001100110101110001111010001000010 1585870351017189953711:0b10101011111100001011111010010011111001011101011101001011101000010101111 2015897130313702641498:0b11011010100100000110001010011110101011011101101100101110000111101011010 2163116381546601199379:0b11101010100001101000101001010000101010110111001011111110011011100010011 1840287623958631136842:0b11000111100001100011111000000111011101010001001110110011011111001001010 1436659677435970504428:0b10011011110000110101000011111001110000011111010010011001100011011101100 2085642625105455074859:0b11100010001000000011011000101010101001100111111110110011100111000101011 1237575580948128187926:0b10000110001011011001111101100011110101001110110110111011100011000010110 2146693453264808166669:0b11101000101111101011011001100100001001100110001100000011100010100001101 1371619866397098054006:0b10010100101101100001100101010010101010110101011110001110001000101110110 2112974192344759657190:0b11100101000101101101000010100001110101110100101010011011110001011100110 4608080914615324693250:0b111110011100110111111000000110010010111011111111100100001101001100000010 3249168661202979269171:0b101100000010001101000101111100101000011111011111000111000010101000110011 4526290723825336306795:0b111101010101111011100110111110000000000011001010111000011100110001101011 3498685208010966781780:0b101111011010101000000010110010111101101101110111010101010100111101010100 3950589001689138230247:0b110101100010100101101111100101011110101100101110001010000111001111100111 4206998595419202359154:0b111001000000111111010101011101001110011001100000110110111000111101110010 3113338005417970911389:0b101010001100011000111110100001001100000110000101010101000100100010011101 3880099268143348862621:0b110100100101011100110001101111101011101010111001011100100100111010011101 3975717673626453216988:0b110101111000011000101010100011111110100010000011001001010000111011011100 3328729483847926249449:0b101101000111001101100110110001010011000111101101000001110111011111101001 6202012084698813555349:0b1010100000011011000110101001010110101110110000000101001111110001010010101 8273551940569590096372:0b1110000001000001010011001001001101100101010001010001011110110000111110100 7117075205464557801664:0b1100000011101000101000010011011110111110101001111001101101101000011000000 4833845377137258821730:0b1000001100000101100010100100101111011001000100110011100000111100001100010 5665981445059400430227:0b1001100110010011101001001110010001010000000010000000000111111001010010011 7209172766768821123614:0b1100001101100111101011110101100111000101010111011100101110011101000011110 5129791655388168709028:0b1000101100001011000101000111110111100011001000110110101011110001110100100 7436847520744746617908:0b1100100110010011011111101111010100000001010101111000101011000110000110100 6248059590737554237390:0b1010100101011010100111110110001100010001100101000011100101110011111001110 8541149978576018019724:0b1110011110000010001000100010111001001000000010110110011010001010110001100 Math-BigInt-2.005003/xt/author/lib-convert-string-_as_bin.t0000644403072340010010000000456214536617521023217 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3625; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_as_bin'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("0b%b", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_as_bin(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_bin() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_as_bin(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_bin() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_as_bytes.dat0000644403072340010010000020735714505066136024105 0ustar OSPJADomain Users0:\x00 1:\x01 2:\x02 7:\x07 19:\x13 23:\x17 28:\x1c 29:\x1d 30:\x1e 43:\x2b 48:\x30 60:\x3c 62:\x3e 64:\x40 76:\x4c 79:\x4f 83:\x53 84:\x54 97:\x61 101:\x65 105:\x69 114:\x72 120:\x78 124:\x7c 125:\x7d 127:\x7f 128:\x80 131:\x83 134:\x86 145:\x91 146:\x92 148:\x94 149:\x95 162:\xa2 169:\xa9 176:\xb0 180:\xb4 186:\xba 189:\xbd 196:\xc4 207:\xcf 208:\xd0 211:\xd3 213:\xd5 221:\xdd 222:\xde 239:\xef 252:\xfc 254:\xfe 255:\xff 256:\x01\x00 257:\x01\x01 511:\x01\xff 512:\x02\x00 513:\x02\x01 2399:\x09\x5f 2714:\x0a\x9a 5472:\x15\x60 7643:\x1d\xdb 8293:\x20\x65 11872:\x2e\x60 12216:\x2f\xb8 13570:\x35\x02 14780:\x39\xbc 16451:\x40\x43 17339:\x43\xbb 18984:\x4a\x28 19043:\x4a\x63 19650:\x4c\xc2 21075:\x52\x53 24275:\x5e\xd3 24972:\x61\x8c 26783:\x68\x9f 26875:\x68\xfb 26983:\x69\x67 30599:\x77\x87 31555:\x7b\x43 33942:\x84\x96 34073:\x85\x19 37466:\x92\x5a 37480:\x92\x68 39174:\x99\x06 39193:\x99\x19 40877:\x9f\xad 41481:\xa2\x09 41653:\xa2\xb5 44063:\xac\x1f 44966:\xaf\xa6 46644:\xb6\x34 49793:\xc2\x81 50049:\xc3\x81 50240:\xc4\x40 51070:\xc7\x7e 54955:\xd6\xab 55063:\xd7\x17 55553:\xd9\x01 63509:\xf8\x15 65031:\xfe\x07 65534:\xff\xfe 65535:\xff\xff 65536:\x01\x00\x00 65537:\x01\x00\x01 151501:\x02\x4f\xcd 2210357:\x21\xba\x35 2309848:\x23\x3e\xd8 2833066:\x2b\x3a\xaa 3124210:\x2f\xab\xf2 3505490:\x35\x7d\x52 3635074:\x37\x77\x82 3724079:\x38\xd3\x2f 4171867:\x3f\xa8\x5b 4266684:\x41\x1a\xbc 4615149:\x46\x6b\xed 4666386:\x47\x34\x12 5779374:\x58\x2f\xae 5808845:\x58\xa2\xcd 6000085:\x5b\x8d\xd5 6342300:\x60\xc6\x9c 6455214:\x62\x7f\xae 6888526:\x69\x1c\x4e 7017450:\x6b\x13\xea 7388606:\x70\xbd\xbe 7684702:\x75\x42\x5e 8028923:\x7a\x82\xfb 8077857:\x7b\x42\x21 8327794:\x7f\x12\x72 8343134:\x7f\x4e\x5e 8343500:\x7f\x4f\xcc 8789388:\x86\x1d\x8c 9778022:\x95\x33\x66 10199029:\x9b\x9f\xf5 10963046:\xa7\x48\x66 10970976:\xa7\x67\x60 11267277:\xab\xec\xcd 11505722:\xaf\x90\x3a 11735218:\xb3\x10\xb2 11816343:\xb4\x4d\x97 12299935:\xbb\xae\x9f 12676595:\xc1\x6d\xf3 13140376:\xc8\x81\x98 13159575:\xc8\xcc\x97 14539158:\xdd\xd9\x96 14828172:\xe2\x42\x8c 15025862:\xe5\x46\xc6 15748519:\xf0\x4d\xa7 15780304:\xf0\xc9\xd0 15992846:\xf4\x08\x0e 16553563:\xfc\x96\x5b 16777214:\xff\xff\xfe 16777215:\xff\xff\xff 16777216:\x01\x00\x00\x00 16777217:\x01\x00\x00\x01 33203744:\x01\xfa\xa6\x20 136128262:\x08\x1d\x27\x06 209339308:\x0c\x7a\x43\xac 441032545:\x1a\x49\x9f\x61 519666323:\x1e\xf9\x7a\x93 545033593:\x20\x7c\x8d\x79 575552126:\x22\x4e\x3a\x7e 691813926:\x29\x3c\x3e\x26 805922648:\x30\x09\x67\x58 881846005:\x34\x8f\xe6\xf5 933503529:\x37\xa4\x22\x29 943271257:\x38\x39\x2d\x59 1044068419:\x3e\x3b\x38\x43 1138398455:\x43\xda\x94\xf7 1265726928:\x4b\x71\x75\xd0 1334283948:\x4f\x87\x8e\xac 1359986867:\x51\x0f\xc0\xb3 1423223300:\x54\xd4\xaa\x04 1622606521:\x60\xb7\x02\xb9 1644822698:\x62\x0a\x00\xaa 1659963662:\x62\xf1\x09\x0e 1683236477:\x64\x54\x26\x7d 1817185683:\x6c\x50\x0d\x93 2301650851:\x89\x30\x67\xa3 2362248064:\x8c\xcd\x0b\x80 2389494621:\x8e\x6c\xcb\x5d 2521122298:\x96\x45\x45\xfa 2539035783:\x97\x56\x9c\x87 2681473135:\x9f\xd4\x08\x6f 2708812697:\xa1\x75\x33\x99 2873380381:\xab\x44\x4e\x1d 2944367285:\xaf\x7f\x7a\xb5 2946624894:\xaf\xa1\xed\x7e 3190508918:\xbe\x2b\x4d\x76 3248076404:\xc1\x99\xb6\x74 3328483810:\xc6\x64\xa1\xe2 3355966830:\xc8\x07\xfd\x6e 3825569121:\xe4\x05\x8d\x61 3873959013:\xe6\xe7\xec\x65 3899219407:\xe8\x69\x5d\xcf 3944932154:\xeb\x22\xe3\x3a 3972128310:\xec\xc1\xde\x36 4044733997:\xf1\x15\xbe\x2d 4175879477:\xf8\xe6\xdd\x35 4216794103:\xfb\x57\x2b\xf7 4226483559:\xfb\xeb\x05\x67 4294967294:\xff\xff\xff\xfe 4294967295:\xff\xff\xff\xff 4294967296:\x01\x00\x00\x00\x00 4294967297:\x01\x00\x00\x00\x01 52907653385:\x0c\x51\x8a\xb9\x09 65657002992:\x0f\x49\x76\x5b\xf0 82282394394:\x13\x28\x69\xb3\x1a 95620303727:\x16\x43\x6a\x0b\x6f 98893800086:\x17\x06\x87\xa2\x96 144819486955:\x21\xb7\xea\x00\xeb 144819984566:\x21\xb7\xf1\x98\xb6 154697549583:\x24\x04\xb1\x47\x0f 207751478740:\x30\x5e\xf3\xfd\xd4 210637125086:\x31\x0a\xf3\x75\xde 223122518415:\x33\xf3\x23\x71\x8f 235668608436:\x36\xde\xf1\x95\xb4 240689714513:\x38\x0a\x39\x95\x51 241966609710:\x38\x56\x55\x75\x2e 252166777992:\x3a\xb6\x4f\xac\x88 279485020672:\x41\x12\x9a\xfa\x00 308303983623:\x47\xc8\x59\x74\x07 335106255858:\x4e\x05\xe3\xab\xf2 353015680691:\x52\x31\x5f\xce\xb3 378979139026:\x58\x3c\xea\xbd\xd2 384066247547:\x59\x6c\x21\xdb\x7b 386227380433:\x59\xec\xf2\x20\xd1 429843089409:\x64\x14\xa5\x08\x01 484984330981:\x70\xeb\x51\x9a\xe5 494907755801:\x73\x3a\xcd\x0d\x19 533200105687:\x7c\x25\x33\xf0\xd7 540722092170:\x7d\xe5\x8c\x58\x8a 578947332316:\x86\xcb\xf3\x38\xdc 589498196653:\x89\x40\xd4\xa2\xad 643147784136:\x95\xbe\x98\x5f\xc8 654361472999:\x98\x5a\xfb\xaf\xe7 726101129678:\xa9\x0e\xff\xf9\xce 735744400618:\xab\x4d\xc8\x9c\xea 736287479561:\xab\x6e\x27\x57\x09 748469873578:\xae\x44\x47\xeb\xaa 791105895822:\xb8\x31\x95\xfd\x8e 791286978171:\xb8\x3c\x61\x16\x7b 800360691693:\xba\x59\x36\xf7\xed 838012459233:\xc3\x1d\x6f\x58\xe1 894608144951:\xd0\x4a\xcc\xfa\x37 906579726386:\xd3\x14\x5c\xd0\x32 906961048343:\xd3\x2b\x17\x53\x17 918842918459:\xd5\xef\x4e\x46\x3b 998835294344:\xe8\x8f\x39\x10\x88 1068137722528:\xf8\xb1\xf8\x32\xa0 1088225943948:\xfd\x5f\x52\x21\x8c 1099511627774:\xff\xff\xff\xff\xfe 1099511627775:\xff\xff\xff\xff\xff 5712773026942:\x05\x32\x1b\xce\x94\x7e 10213793441813:\x09\x4a\x15\x87\xa8\x15 10474806068740:\x09\x86\xdb\x18\x46\x04 14896078034299:\x0d\x8c\x43\x70\x95\x7b 25107941835842:\x16\xd5\xe5\xf4\x44\x42 34448759091360:\x1f\x54\xba\x0c\x70\xa0 37988596736707:\x22\x8c\xe8\xd0\x62\xc3 47611506030161:\x2b\x4d\x6a\xe7\x76\x51 48696692198667:\x2c\x4a\x15\x0a\x4d\x0b 51007663053483:\x2e\x64\x25\xa3\x1a\xab 52607042552218:\x2f\xd8\x88\x15\x81\x9a 58690558167466:\x35\x60\xf5\xdf\x09\xaa 60574682050704:\x37\x17\xa4\x67\xf0\x90 61095626521076:\x37\x90\xef\x1d\xb9\xf4 68464201759056:\x3e\x44\x90\x6c\xf9\x50 73367379629837:\x42\xba\x2c\x99\xd7\x0d 77550989374366:\x46\x88\x3f\x2c\x73\x9e 85837478045232:\x4e\x11\x98\x63\x26\x30 89146816051021:\x51\x14\x1c\x4d\xb7\x4d 98461838803473:\x59\x8c\xee\xed\x02\x11 103105234327422:\x5d\xc6\x0e\xdd\xd7\x7e 104647032372015:\x5f\x2d\x09\x30\xfb\x2f 115579339035171:\x69\x1e\x69\x72\x52\x23 115902042567125:\x69\x69\x8c\x13\x71\xd5 119069037269390:\x6c\x4a\xeb\xab\x91\x8e 132658366876204:\x78\xa6\xee\xd5\x8a\x2c 135667100130130:\x7b\x63\x75\x4f\x9b\x52 136193459571622:\x7b\xde\x02\xc7\x4b\xa6 143011112994547:\x82\x11\x5e\x96\xc6\xf3 143401128952230:\x82\x6c\x2d\x5a\x01\xa6 144989854694453:\x83\xde\x14\xc8\xfc\x35 173923052406865:\x9e\x2e\x9d\xc1\xc8\x51 179252052663873:\xa3\x07\x5e\xec\x9e\x41 188810803440399:\xab\xb8\xf0\xde\x6b\x0f 191768093091294:\xae\x69\x7d\x11\x65\xde 210908822843719:\xbf\xd2\x09\x77\x31\x47 215764802465775:\xc4\x3c\xa8\x67\xef\xef 217965098024952:\xc6\x3c\xf4\x3d\xbf\xf8 234031688002771:\xd4\xd9\xbf\xa1\x2c\xd3 237424984277170:\xd7\xef\xcf\xd9\x40\xb2 239382150441389:\xd9\xb7\x80\x0a\xe9\xad 252155473912059:\xe5\x55\x85\x73\x60\xfb 252399437030621:\xe5\x8e\x52\xc9\x24\xdd 259874645499499:\xec\x5a\xc7\xee\x5e\x6b 265447924535042:\xf1\x6c\x69\x3f\x8f\x02 267205553730315:\xf3\x05\xa4\x1c\xb3\x0b 267905246894005:\xf3\xa8\x8d\x13\x17\xb5 270775473358472:\xf6\x44\xd3\xe7\x46\x88 273399113030370:\xf8\xa7\xb1\x03\x9a\xe2 277270645455754:\xfc\x2d\x1a\x54\x3b\x8a 378181799292571:\x01\x57\xf4\x4f\xce\xae\x9b 589764422074535:\x02\x18\x63\x3a\xe1\x00\xa7 1338930020235304:\x04\xc1\xbf\xf0\x3c\x38\x28 2608546246781766:\x09\x44\x75\x80\x6b\x6b\x46 3646433778593071:\x0c\xf4\x69\x86\x11\xed\x2f 5702622487387091:\x14\x42\x81\x43\xa6\x1b\xd3 6319114862562293:\x16\x73\x33\x94\xad\x8b\xf5 7585695545873176:\x1a\xf3\x26\x60\x62\xd3\x18 8207048962996193:\x1d\x28\x44\x7e\x17\xf7\xe1 8546493750229963:\x1e\x5c\xfd\xa4\x0e\xbb\xcb 8611780010335704:\x1e\x98\x5e\x48\x66\x5d\xd8 11641988396382199:\x29\x5c\x53\xa6\xd8\x77\xf7 12904921715180895:\x2d\xd8\xf5\x3a\xb0\x05\x5f 13501167225129316:\x2f\xf7\x3d\x74\x81\xc9\x64 15504659786663287:\x37\x15\x67\xea\xf2\x85\x77 15759675137878595:\x37\xfd\x57\x4e\x5e\x6a\x43 17935215411344408:\x3f\xb7\xfb\xbf\x90\x34\x18 21302793960564939:\x4b\xae\xc7\x3a\xbe\x28\xcb 21412105194402668:\x4c\x12\x32\x3c\x01\x73\x6c 21884784858392984:\x4d\xc0\x18\x8b\x78\x69\x98 22005943033829895:\x4e\x2e\x49\xe1\x7a\x9a\x07 24338264181909266:\x56\x77\x85\xb7\x03\x27\x12 26236047631190540:\x5d\x35\x8b\xdb\x5e\x0a\x0c 28416958100199417:\x64\xf5\x12\xa5\x28\xd7\xf9 28863221086862476:\x66\x8a\xf2\x57\xf4\xbc\x8c 33078162422287726:\x75\x84\x69\xd9\x00\xcd\x6e 35067429557793956:\x7c\x95\xa4\x31\xfa\x74\xa4 36904234298025839:\x83\x1c\x34\xa0\x0a\xa7\x6f 37005870741274522:\x83\x78\xa4\xb4\x23\x3f\x9a 38935758825522060:\x8a\x53\xdd\xc9\xdb\x03\x8c 39976053090670895:\x8e\x06\x02\x2b\xfd\xd9\x2f 40873233183830436:\x91\x35\xfd\x30\xbe\x71\xa4 43526487337301967:\x9a\xa3\x1c\x10\x0f\x77\xcf 48515458258057537:\xac\x5c\x8d\x5f\x96\x39\x41 48686234693899702:\xac\xf7\xdf\x5c\x61\x95\xb6 51000729038588215:\xb5\x30\xe4\x91\xa1\x89\x37 51723604967708583:\xb7\xc2\x58\x3c\x9a\x57\xa7 55791078906985985:\xc6\x35\xb0\xcf\xe2\xfe\x01 56341386763795605:\xc8\x2a\x31\x58\x35\x7c\x95 56721140208802842:\xc9\x83\x93\x95\x66\x9c\x1a 60023602629035044:\xd5\x3f\x26\x08\xd7\xc4\x24 62018755272827879:\xdc\x55\xba\xb5\x72\xe3\xe7 62676888622525251:\xde\xac\x4c\x51\xf8\xeb\x43 62718393108997875:\xde\xd2\x0b\xd6\x25\x26\xf3 64171379559918950:\xe3\xfb\x87\x9b\x6a\x6d\x66 65252021110238065:\xe7\xd2\x5e\x13\x26\xeb\x71 67139870474033790:\xee\x87\x5b\x41\xde\xda\x7e 67568426687801228:\xf0\x0d\x20\x46\xc2\x27\x8c 68858005490193749:\xf4\xa1\xfd\xbd\x2f\x55\x55 71708206672148768:\xfe\xc2\x3b\xea\x2c\x79\x20 86249278062287770:\x01\x32\x6b\x42\xed\x09\x5b\x9a 599939789870140156:\x08\x53\x6a\x0f\x6d\xd5\x0a\xfc 1249909236474812254:\x11\x58\x91\xd4\x09\x8f\x97\x5e 2063977009892030307:\x1c\xa4\xb8\x27\xb3\x2f\xf7\x63 3251737573438816676:\x2d\x20\x7e\x18\x37\x9c\x81\xa4 3370282864967596878:\x2e\xc5\xa6\x68\xbe\xfa\xbb\x4e 3714476316255225932:\x33\x8c\x78\x87\x8c\xfe\x88\x4c 4836431536736052700:\x43\x1e\x74\xdb\xaf\xa6\x25\xdc 4838496129580716135:\x43\x25\xca\x98\x2a\xc2\xd0\x67 4974566886996787351:\x45\x09\x36\x3a\x32\xdd\x40\x97 5314676403438882080:\x49\xc1\x86\x07\xd3\x20\x0d\x20 5754196798139465215:\x4f\xdb\x03\x80\x38\xca\xfd\xff 6747939694144721233:\x5d\xa5\x7f\x66\x53\x41\x11\x51 8000763749529630048:\x6f\x08\x6c\x3d\x86\x89\x35\x60 10208746370398689769:\x8d\xac\xc0\xbc\x51\xac\x19\xe9 10796640743917638537:\x95\xd5\x5f\x8d\xb4\xb8\x53\x89 10809988848241646609:\x96\x04\xcb\x95\x6d\x60\x9c\x11 11247144218796486496:\x9c\x15\xe2\x13\xba\xf3\xef\x60 11487461765633002760:\x9f\x6b\xa9\x9c\xd7\x6f\xcd\x08 11696117030210212435:\xa2\x50\xf4\x78\x65\x13\x92\x53 11723080000350574248:\xa2\xb0\xbf\x26\x16\x61\xd6\xa8 11791977335384704953:\xa3\xa5\x84\xe8\xf3\x10\x07\xb9 12041701909757979348:\xa7\x1c\xb8\x16\x56\x44\x6a\xd4 12042820546510503814:\xa7\x20\xb1\x7b\x40\x88\xbf\x86 12269432059066863201:\xaa\x45\xc7\x73\x94\x78\x4e\x61 12829416044090788422:\xb2\x0b\x3d\xeb\x3f\xba\x8a\x46 13229905767653679561:\xb7\x9a\x11\x33\x5c\xe3\xa1\xc9 13561951715743852125:\xbc\x35\xbb\x3b\x2d\xe9\x66\x5d 14022735616107988663:\xc2\x9a\xc3\xbf\x49\x55\xc6\xb7 14094052053581971243:\xc3\x98\x21\xab\x53\x9e\x3f\x2b 14102787707435260659:\xc3\xb7\x2a\xb3\x3c\x6c\x9a\xf3 14174535825245830612:\xc4\xb6\x11\x3b\xaf\xd3\x7d\xd4 14251504564902037288:\xc5\xc7\x83\xe4\xe1\xd8\x07\x28 14388780826124177821:\xc7\xaf\x37\xed\x24\x15\x51\x9d 14950772431591141908:\xcf\x7b\xd0\x50\x5e\xb1\x72\x14 14985074092914716392:\xcf\xf5\xad\x7e\x41\x17\x2e\xe8 15197926886011719523:\xd2\xe9\xe1\xfb\x13\x16\x4f\x63 15310636145156521414:\xd4\x7a\x4e\x74\x6d\x4f\x7d\xc6 15569135248405041412:\xd8\x10\xae\x05\x05\x32\x11\x04 16054592448148142540:\xde\xcd\x5e\xc5\x4d\x89\xf9\xcc 16072701657141972820:\xdf\x0d\xb5\x00\x16\xc7\x8f\x54 16139811894547256114:\xdf\xfc\x21\x67\xdc\x1d\x13\x32 16333304958416004889:\xe2\xab\x8e\x52\x76\x83\x27\x19 16796750886819571821:\xe9\x1a\x0b\xf0\x45\x9b\xa8\x6d 16900945532465322377:\xea\x8c\x38\x6a\xae\xd2\x19\x89 16926927658779492305:\xea\xe8\x87\x05\xe0\x49\x3f\xd1 16962427426677561007:\xeb\x66\xa5\xdf\xaf\x75\x96\xaf 17412845992078358682:\xf1\xa6\xdb\x2c\x2e\x6a\x38\x9a 18188157011401470276:\xfc\x69\x50\x6f\xd7\x9d\x71\x44 18264363366929282708:\xfd\x78\x0d\xb6\xa6\x7a\x36\x94 63975972041439156348:\x03\x77\xd8\x4f\x9c\xca\x4d\x98\x7c 334181559137403549404:\x12\x1d\xb3\x65\x77\x37\x22\x36\xdc 350240621946881064950:\x12\xfc\x90\xa6\x01\x9f\xba\x3f\xf6 424733482492934546251:\x17\x06\x5c\x73\xfe\x2d\xf4\xe3\x4b 441942190382750650119:\x17\xf5\x2e\x10\xa4\x9d\xe8\x4f\x07 582303907444553231917:\x1f\x91\x17\x0e\xa4\x7a\x89\x2e\x2d 609555276332016837016:\x21\x0b\x47\x5e\x42\xfe\xef\xa1\x98 674342921865426096841:\x24\x8e\x63\x52\x9d\x5b\xb7\xd2\xc9 750196050133164177453:\x28\xab\x0f\xc4\xe3\x18\x63\x38\x2d 855775854975297508437:\x2e\x64\x46\x96\x01\x56\xcf\xd4\x55 952086152492534789339:\x33\x9c\xd9\x7f\x52\xc5\xec\xf4\xdb 1220296812911258626321:\x42\x27\x05\x2d\xee\xe4\xe1\xe9\x11 1347712351938881172369:\x49\x0f\x44\x1b\x9a\x33\x3e\xb3\x91 1361753255775781019208:\x49\xd2\x1f\x6b\x40\x07\x14\x5e\x48 1380642335910246516213:\x4a\xd8\x42\xe9\x8d\xc3\xc8\x85\xf5 1502987170009185464983:\x51\x7a\x23\x13\xf4\xbf\x23\x32\x97 1591317202175664472956:\x56\x43\xf6\x64\x38\x08\xf2\x43\x7c 1603981387028116606015:\x56\xf3\xb6\x9d\x3e\x95\x3d\x0c\x3f 1621207719384819882053:\x57\xe2\xc6\xd7\x40\xfd\x5a\xd8\x45 1624866179469139218913:\x58\x15\x8c\x4d\x51\x34\x27\x91\xe1 1653684129212764816628:\x59\xa5\x7a\x39\xec\xcc\x04\x84\xf4 1819173413274877005563:\x62\x9e\x1a\x44\xfa\xcb\xed\x8e\xfb 1882135487035286795872:\x66\x07\xe0\x7d\x7a\x37\x18\xb6\x60 1948721903456347620253:\x69\xa3\xf2\xf6\x6c\x22\xaa\x03\x9d 2021306650637495094379:\x6d\x93\x43\xc9\x69\xc6\x7e\xcc\x6b 2108487316292768080470:\x72\x4d\x23\xba\xec\x77\x23\xa2\x56 2475562577965518391919:\x86\x33\x55\x08\x91\x24\xfb\x8a\x6f 2548957501134516141851:\x8a\x2d\xe4\x2e\x53\x82\x2e\x3f\x1b 2770412909125814127655:\x96\x2f\x33\xd6\x92\xc0\xb3\x0c\x27 2889527187295365694882:\x9c\xa4\x3e\xc3\x79\x55\xe3\x05\xa2 2984050867755360273086:\xa1\xc4\x06\x56\x0b\x5e\x65\x42\xbe 3082477360517443702636:\xa7\x19\xf7\x7b\xb9\xc1\xef\x4f\x6c 3299420554711166720751:\xb2\xdc\xa8\x89\x6e\x35\x61\x9a\xef 3322164739298645166587:\xb4\x18\x4c\x1c\xcf\x17\xf2\xc9\xfb 3322690024080056187361:\xb4\x1f\x96\x4c\x88\xd9\xde\xf9\xe1 3358439749031153469348:\xb6\x0f\xb6\xd5\xf7\xa9\xf1\x87\xa4 3430139388175584877736:\xb9\xf2\xbf\x1f\xe3\x69\x78\x5c\xa8 3430671653348956607697:\xb9\xfa\x22\x1c\x3e\x52\x9a\x94\xd1 3528167095125180312976:\xbf\x43\x27\x7f\xfc\x66\x32\x6d\x90 3563845960577864034770:\xc1\x32\x4c\x4b\x14\x96\x5d\xe9\xd2 3607081690118751499126:\xc3\x8a\x50\x76\x06\x6f\xd3\xb3\x76 3677413317074846509744:\xc7\x5a\x5c\x98\x1b\xd9\x28\x6a\xb0 3695583756565025826700:\xc8\x56\x86\xf6\x8d\xd2\x06\xa7\x8c 3889387073447455127953:\xd2\xd8\x16\xa8\x71\xcf\xb0\x79\x91 4008255419021770261968:\xd9\x49\xb7\xda\xf3\xf3\x1e\x85\xd0 4087230613743613824406:\xdd\x91\xb8\x1c\x1f\xb9\xe8\xcd\x96 4125088341661057974852:\xdf\x9f\x19\xc7\x16\x04\x8e\x82\x44 4507996321147342477034:\xf4\x61\x04\x31\xb2\x03\x1a\xd6\xea 4691732813110069270497:\xfe\x56\xdf\x57\xa8\x65\xd9\x97\xe1 4704436401412626585241:\xff\x07\x2b\x8d\xe9\x98\x96\x16\x99 25129919893304227188619:\x05\x52\x4b\xb2\x26\xf0\x34\xbc\xcf\x8b 25617229225229708108310:\x05\x6c\xb6\x78\xae\x72\xf3\xf3\x22\x16 59459473348447354187935:\x0c\x97\x4d\xf4\x4c\x9f\x1a\xb3\x70\x9f 89964751139459528596018:\x13\x0c\xff\xb9\xfb\xa8\x90\x2b\x1a\x32 115295613894247960057923:\x18\x6a\x30\x10\x96\x79\xc9\x6c\x98\x43 150382260851692850191119:\x1f\xd8\x3d\x1b\x2d\x3f\xc4\x5d\x1b\x0f 183384646082771393740886:\x26\xd5\x4d\x34\x9e\xc8\xbe\xcc\x80\x56 183432012538411796162908:\x26\xd7\xde\x8c\x13\x3b\x1a\x48\x69\x5c 210333076888681487802525:\x2c\x8a\x2d\xcf\x5d\xda\x8f\xa8\x20\x9d 213885923219594052694990:\x2d\x4a\xc7\x75\x20\x08\x39\x04\xf3\xce 293466913510574483275360:\x3e\x24\xdf\x8d\xe7\x85\x8b\xcb\x7e\x60 296948610526020227649873:\x3e\xe1\x9d\xce\x84\x3f\x89\x1d\x51\x51 304141712928544258481044:\x40\x67\x8e\x27\xd0\xa7\x66\xd7\x5b\x94 342215813559625024892980:\x48\x77\x8e\x71\xef\x64\x23\xf1\x70\x34 348210060900882527508517:\x49\xbc\x81\x56\x75\x61\x9f\x17\x58\x25 368606914574968245666233:\x4e\x0e\x38\x8b\x82\xcc\xcb\x77\x41\xb9 406611976712346555439162:\x56\x1a\x7a\xbb\xa1\x4b\xe5\x98\xd8\x3a 416471384368255381413648:\x58\x30\xf5\x80\x12\xf7\x09\xee\x1f\x10 424987737359163318010866:\x59\xfe\xa1\xa3\xd6\x9f\xb0\xff\x03\xf2 444089458435508630224792:\x5e\x0a\x23\x45\x98\x4d\xdb\x98\x7f\x98 459169368007093065096041:\x61\x3b\x9f\x0e\x9a\xe0\x02\xdc\x1b\x69 484865300039008451287157:\x66\xac\x99\xbf\xd3\x04\xf4\xe3\xd8\x75 520979901638410955264574:\x6e\x52\x60\x86\xee\x50\xe9\x42\x12\x3e 607802707124959554400482:\x80\xb5\x0c\xff\x9d\x64\xbe\xb5\x70\xe2 618224555218192284468679:\x82\xea\x05\x31\xe4\xde\xf9\xb3\x45\xc7 627542475278504778798117:\x84\xe3\x25\x4f\xf3\x44\xd6\x50\x14\x25 635934215632269211614636:\x86\xaa\x10\x1a\xb1\xab\xf6\x30\x3d\xac 638894353677061723369641:\x87\x4a\x88\x45\x9d\xed\x4f\x31\xb0\xa9 691515511797926728239165:\x92\x6f\x21\x89\xde\x02\x5b\x77\x08\x3d 692065189498240968367050:\x92\x8c\xed\xd9\x5a\x20\xb3\x5f\x1b\xca 757921233664605437122929:\xa0\x7e\xfe\x0e\x4b\x29\x01\x8d\x59\x71 798845670202818233698280:\xa9\x29\x82\xb3\xc7\xb5\x08\x1d\x07\xe8 818832998189960479463920:\xad\x65\x06\x99\x52\x9c\x5c\xfd\x59\xf0 829042804536531281547818:\xaf\x8e\x80\x1f\xfc\xf1\xce\x64\x92\x2a 833024180360288303924274:\xb0\x66\x54\xd0\x56\x6b\x1b\xf1\x44\x32 863841111050179959574681:\xb6\xec\xeb\xa3\x89\xc7\x45\x9f\xd0\x99 878395476338273880008462:\xba\x01\xea\x08\x2e\xf7\xb7\x96\x67\x0e 881955658285111580135699:\xba\xc2\xe9\x7b\x48\xf6\xd3\x55\x91\x13 891706326347564834422685:\xbc\xd3\x7f\x2f\x16\x83\x0b\xec\xff\x9d 903276007216238362747843:\xbf\x46\xb0\xc2\x91\xc6\x2a\x69\xe3\xc3 965069041107878600550342:\xcc\x5c\x7f\x5f\x54\xb2\x24\x88\xa7\xc6 969737688939408097005508:\xcd\x59\x95\xe0\x57\xea\x65\xe7\xcf\xc4 1024308257302092376961613:\xd8\xe7\xdc\xa5\x06\x83\xac\x67\xf2\x4d 1025530866939599459424160:\xd9\x2a\x23\xc3\x02\x29\xdf\x27\x97\xa0 1042180056911176454611451:\xdc\xb0\xb1\xaf\xf6\x1f\xb1\xe3\xa1\xfb 1132149089819618864790719:\xef\xbd\xec\xd5\xd7\xfc\x84\xff\xfc\xbf 1159530506856480861953775:\xf5\x8a\x46\x54\xb2\x0c\x21\x49\x9e\xef 1169940959707029510041708:\xf7\xbe\xa0\x62\xf0\xad\xa2\x34\x30\x6c 1184073465161655060546741:\xfa\xbc\xc0\x4c\x62\x6f\xec\x88\x44\xb5 1185841037364832206917534:\xfb\x1c\x92\x4a\x54\x3a\x58\xed\x0f\x9e 6478772704797252492090305:\x05\x5b\xee\xf8\xda\x2c\x2a\x2f\xc6\x5b\xc1 7948088863495990037514115:\x06\x93\x12\xc2\xb9\xaa\x04\x81\x09\x07\x83 11503947700353658954331863:\x09\x84\x0e\x41\x23\x40\x83\xc1\x6a\x36\xd7 16713893307702087222123712:\x0d\xd3\x4d\xf8\xc4\x49\x0d\x08\xf9\x5c\xc0 18617399078654249814535623:\x0f\x66\x63\x39\xf2\x6c\x3c\x62\xc1\x2d\xc7 20003124898488361126256337:\x10\x8b\xd3\x92\xd5\x9d\x4e\xb4\x10\xde\xd1 35039431914941352656591944:\x1c\xfb\xe3\x69\x05\x9c\x68\xca\x25\x5c\x48 38048945653266260760391331:\x1f\x79\x2d\x7a\x16\x4b\xc0\x84\x82\xee\xa3 47062125740093134536916444:\x26\xed\xca\xf2\xce\x42\x0e\x16\x5b\x3d\xdc 57913500939140207283634776:\x2f\xe7\xa9\x2d\x3d\xb5\x85\xb2\x5d\x82\x58 75381378112426162892393998:\x3e\x5a\xa0\xb2\x1a\xd9\x5f\x87\x71\x4e\x0e 81089617479421357959818236:\x43\x13\x64\xf8\xcb\xd7\x28\x21\x92\x2b\xfc 85135171515978244732581261:\x46\x6c\x12\xe5\x47\xd7\xba\x80\x49\x75\x8d 95004404583222647700735930:\x4e\x95\xf7\x17\x9d\x1c\xb2\xd8\x7a\x47\xba 96450418408434164719946085:\x4f\xc8\x2b\xa8\xa5\xac\xfa\x7c\xcc\x09\x65 97407165895613956071784802:\x50\x92\xc5\x0b\x42\x89\x8f\xb0\x5e\x81\x62 103684114829959666388539434:\x55\xc3\xf7\x20\xa6\xb8\x36\x7a\x05\x98\x2a 105055909639744272113914435:\x56\xe6\x74\x45\xef\xf2\xe9\xe1\xe4\xd2\x43 118578818286974628893560605:\x62\x16\x0a\x9e\xb0\x22\x3d\x47\x88\x0f\x1d 119704799681256621721451992:\x63\x04\x7a\x31\x8d\xac\x9b\x3a\xb2\xfd\xd8 121899052315176443295121281:\x64\xd5\x20\xde\x00\xf1\xfa\x0d\x5d\x3f\x81 125534440711838419229714284:\x67\xd6\xf3\xaa\xc5\x84\xd3\x06\x49\xa7\x6c 127691927084247897130141043:\x69\x9f\xd1\x3c\xd8\x9a\x8a\x09\x80\x05\x73 143831209654609324172716428:\x76\xf9\x71\x7f\xba\x5a\x6c\x8a\xfd\x29\x8c 148717314885068034988644740:\x7b\x04\x1d\xcb\x52\xa9\x9d\x2e\x55\x19\x84 158475246880722534605975608:\x83\x16\x70\x59\x00\x6d\xea\xe7\xd6\xf0\x38 159420334674089104556004682:\x83\xde\x91\xa8\xdb\x97\x14\xb9\xfd\x95\x4a 159878294794684858439680253:\x84\x3f\x8b\xba\x3c\x60\x35\xdc\x45\xc0\xfd 164231277597021526467751231:\x87\xd9\x53\x65\xe5\xd2\x15\x6d\xf3\x2d\x3f 172613723914442391735160095:\x8e\xc8\x60\xb9\x33\x88\x5a\xa7\x7a\xcd\x1f 180154760346649569970266619:\x95\x05\x41\x20\xa8\x91\x68\x90\xbe\xa1\xfb 188258513203899921358287754:\x9b\xb9\x4a\x73\x42\x23\xd4\xf6\xee\x73\x8a 201756287842980340052318896:\xa6\xe3\x8e\x47\x93\xc4\x78\xac\x10\xda\xb0 212658158219890259057512498:\xaf\xe8\x1d\xdb\x60\x53\x47\x67\xa9\x10\x32 217543916163319898113483526:\xb3\xf2\xb7\x53\x65\x41\x88\x9f\xfe\xa3\x06 230181266186476242194681844:\xbe\x66\xc7\x71\x78\x50\x38\x7a\x18\x4f\xf4 230565136818400448440576539:\xbe\xb8\x11\x1c\xa5\x3d\x83\x17\x92\x2a\x1b 232231147219423519215636547:\xc0\x18\xdb\xb7\x79\xfa\x96\x1f\x02\xd0\x43 249033458974405848417256944:\xcd\xfe\xe2\xdc\xb1\x60\x01\xa2\x81\x45\xf0 253602484651594266324339515:\xd1\xc6\x6a\x3d\x87\x83\x56\x88\x41\x8b\x3b 266875147206245588330404731:\xdc\xc1\x02\xb8\x1b\x86\xa7\x6a\x38\xdb\x7b 268339815580006080239573416:\xdd\xf7\x2a\x8d\x01\xe4\x31\x3d\x7b\x19\xa8 274070744832323608877896021:\xe2\xb4\xbc\xd9\x1c\xd6\x79\x41\xb6\x91\x55 280989352916674964769651589:\xe8\x6d\xcf\x58\x08\x5f\x61\x63\x36\xbb\x85 290574105555530024791474058:\xf0\x5b\x75\xd3\x58\x5a\x26\x72\x86\x7f\x8a 294056036596455244598682326:\xf3\x3c\xc9\xaf\x7e\x16\x55\xa5\xc9\x22\xd6 295450504258834409742385547:\xf4\x64\x13\xed\xd0\xdd\xdd\xa1\x77\xc1\x8b 298025818928377217707194614:\xf6\x85\x6c\x04\x56\x91\x26\x2c\x28\xb8\xf6 299019462968014029773135368:\xf7\x57\xd5\x91\x7a\x0b\x14\x45\x90\xde\x08 306689559717941004562674587:\xfd\xb0\x0a\x58\xa3\x3b\x6b\x54\xa1\x33\x9b 2908079825338167690332274763:\x09\x65\x81\xdb\x38\x3a\xae\x10\x01\x69\x00\x4b 5284845152267909030124419832:\x11\x13\x85\x7d\xc4\x54\xb7\x72\x4a\x2f\x7a\xf8 6837664206078305467096723591:\x16\x17\xfb\xb7\x59\x0a\xf6\x8f\x44\xbd\x70\x87 7248896636129053528878540409:\x17\x6c\x25\x92\x0c\xfa\xa0\x3d\x8e\x40\xe6\x79 8510762379161430076430484841:\x1b\x7f\xf0\x09\x0c\xbb\x82\x0c\x11\x00\x05\x69 9068708034049912428981523533:\x1d\x4d\x75\x9f\x9b\x91\x1f\x71\xd1\x1a\x14\x4d 9508333417090286739290656616:\x1e\xb9\x1b\xeb\x60\x54\x92\x05\x83\x5d\x0f\x68 9986380264262507957174327392:\x20\x44\x8a\x46\xe3\x94\xc5\xf5\xf8\xb6\xd8\x60 10883660125020101681144188653:\x23\x2a\xc0\xad\x9b\x66\x7c\x3d\x6f\x50\xce\xed 13846795683806642337963201914:\x2c\xbd\xcd\x0a\x1e\x07\x98\x1a\x87\xc2\x55\x7a 14816046864299780205844131319:\x2f\xdf\x8b\xf5\xe5\x63\x19\x2b\x1a\x48\x6d\xf7 15058553829791583154901704964:\x30\xa8\x24\xce\xd6\x66\x3a\x4a\x7e\x8d\x61\x04 16505510426060913394485151890:\x35\x55\x09\xc9\x18\x8a\xe4\x20\x00\x81\xc8\x92 16562922219011279837127372398:\x35\x84\x87\x34\xa0\xc6\x1e\xc1\xad\xe5\xee\x6e 19377408426191829470254615075:\x3e\x9c\x9d\xd7\xa4\x0b\xcc\xa9\xb4\x62\x4a\x23 19377744742531698652350687667:\x3e\x9c\xe5\x0f\x62\xd8\xdb\x58\xf2\xc2\xa9\xb3 20103164822209650910919992057:\x40\xf4\xf2\xbc\xb4\x25\x44\x60\x88\xd1\x22\xf9 31809773303579737802187552088:\x66\xc8\x6d\x82\x19\xc2\xbb\xe3\xdb\xbd\x35\x58 32783981219444835819128244763:\x69\xee\x46\x0f\x0a\xd4\x65\x2c\xd3\x2e\x4a\x1b 34004572282758262235737457298:\x6d\xdf\xec\x45\x2b\x9b\xa7\x4d\x8d\x61\x82\x92 38411317219000564410565254284:\x7c\x1d\x18\xce\xd7\xf0\x85\x94\xdc\xeb\xdc\x8c 38485471939706203965525159571:\x7c\x5a\x6f\xae\x4e\xd7\x14\x03\xe1\x45\x6e\x93 39968684979957597002078329113:\x81\x25\x52\x42\x55\x3b\x7a\xee\x71\xc7\x99\x19 40715335449680479930937915876:\x83\x8e\xef\xa5\x66\xa6\xc9\x20\x25\x1a\x39\xe4 41104848099466660557667544934:\x84\xd1\x22\x28\x74\xd7\xfa\x83\xc0\x21\xaf\x66 41187312288648467794972935320:\x85\x15\x58\xa1\x1c\x0d\x60\x9f\x7e\x24\x84\x98 45263350803860355300587331544:\x92\x40\xf7\x5b\xc6\xa4\x55\x78\x04\x8d\xdf\xd8 48289421817010834156822623176:\x9c\x08\x12\xd2\x1a\x85\xbb\x0a\x49\x1e\x73\xc8 49329425999573087676652085532:\x9f\x64\x58\x45\xcf\x5c\x61\xd1\xbf\xdc\x61\x1c 49715735757997627350220027253:\xa0\xa3\xe4\x8b\xc6\xdd\x5c\x7b\x4f\x28\x35\x75 54802605461310131218908724605:\xb1\x13\xa7\x1a\xf3\x6f\x8a\x22\x32\x04\x3d\x7d 55964088366253719344562644279:\xb4\xd4\x68\xad\x64\xa5\x91\x2c\x41\x45\x25\x37 57614014152243666725115410708:\xba\x29\x32\x0d\x79\x41\xb8\x95\xd0\x36\x39\x14 62287074557188601443535935970:\xc9\x42\xa9\x15\xa2\x2e\x99\x40\xbb\xe9\xd9\xe2 62539657599059595514737581574:\xca\x13\x97\x9f\xc5\x1e\xb8\x0d\x3c\xbf\xde\x06 62930766509918780427038386015:\xcb\x57\x1c\x28\x4f\xc4\xe9\x35\x3a\xc8\x67\x5f 65480089393333480939726622742:\xd3\x93\xdc\x46\xbd\x67\x73\xc0\xfd\xe8\xd0\x16 66266340146406302283638794666:\xd6\x1e\x3b\x59\x78\x48\x75\xa4\x75\x40\x69\xaa 67125585889705671071277348828:\xd8\xe4\xfb\xb6\x8c\x8f\x3b\x1c\x16\xa5\x77\xdc 67894046196215088746269271378:\xdb\x60\xa3\x83\x3d\x06\x76\xf6\x5b\xe0\x65\x52 68806250707958040541031442505:\xde\x53\x32\x54\xe8\x53\x2e\x85\x08\x06\x28\x49 68941601620941091037205372333:\xde\xc3\x28\x00\x9a\x4c\x33\x97\x66\xbe\x1d\xad 69863673831307623642258188861:\xe1\xbd\xe0\x63\x49\x3f\x31\xe9\x88\x8b\xaa\x3d 70847392833602412677817487620:\xe4\xeb\x96\xfd\x41\x9b\xdf\x93\x35\xe4\xd1\x04 71498002904754362265388856000:\xe7\x05\xc3\x07\xe2\xae\xc5\x96\x2c\xd6\x32\xc0 71895171684946313644024805730:\xe8\x4e\x4a\xca\x9a\x13\x3a\x18\x01\x44\x39\x62 75131516706031388083717085984:\xf2\xc3\x55\x81\xbd\x92\x11\x05\x73\x6b\x1b\x20 75611313340785889769195547610:\xf4\x50\x36\x65\x6d\x98\xd5\x1b\x8a\xf3\xab\xda 76598314186751506760221024753:\xf7\x80\xa3\xf4\x80\x0a\x8b\xd0\x56\x2f\x61\xf1 77995251309572035026141340692:\xfc\x04\x28\xe5\xab\x67\x40\x98\x31\xd0\x64\x14 631658645776469546496614927161:\x07\xf8\xff\xc9\x19\x01\x47\x9f\x12\x02\x83\x0b\x39 914541494151081285838351175217:\x0b\x8b\x0a\xfe\x4b\x56\x4a\xcc\x76\xf1\xed\x0e\x31 1044476787674027593689838968045:\x0d\x2e\xe2\xf2\xf3\x57\xd4\x46\xd4\x28\x0c\xdc\xed 1570024502027800837427519332435:\x13\xd1\x05\xd4\x4d\xb3\x60\xd8\x28\xd3\x6c\xa0\x53 2282791753170904886614526582126:\x1c\xd0\x19\x14\xa9\xfe\x92\x95\x0e\x68\xe4\xdd\x6e 2783719642063033487798481665795:\x23\x22\xae\xeb\x2f\xc3\xfd\x5e\xed\x72\xab\x3f\x03 3042566104054300037411277102152:\x26\x67\x0f\xb1\x95\x52\x4b\xfd\xd6\x1c\x97\xdc\x48 4555412617517245954773795238306:\x39\x7f\x54\xff\xd8\x00\xfa\x23\x69\xfb\x74\x71\xa2 4997019473015158679322645047905:\x3f\x12\x3d\xa0\xed\xc5\x30\xdf\x9f\x72\xf1\x2a\x61 5289212392715748654981598647090:\x42\xc2\x5d\xf2\x69\xfb\xbf\x3f\x9d\x22\xcf\x93\x32 5547208775233181443163998987038:\x46\x03\xff\x8d\x7a\xec\x69\x21\xea\xc1\x79\x23\x1e 5681203568323465355217588279201:\x47\xb4\xf5\x72\x9b\x6f\x5f\xa1\xd4\x0f\xe5\x57\xa1 6026123685332450988425422738935:\x4c\x0f\x74\xae\x6d\x30\x9c\x36\xe0\x91\xf2\x95\xf7 6040185662811162188686502337958:\x4c\x3c\xe4\x79\xfb\xc8\x6e\x13\x4c\x5a\x1b\x1d\xa6 8208792808182063582092476421598:\x67\x9c\x0a\x43\x6d\xb8\x09\xdf\xcb\xc6\x3a\x15\xde 8596369594203748714980894223612:\x6c\x80\x5e\x44\x44\x33\xb1\x6d\x86\x66\xc2\xac\xfc 9088047168771995197355397177495:\x72\xb5\x10\x6c\x89\xaa\xb0\x01\x70\x9c\x07\x60\x97 9336314381498576410683974114615:\x75\xd7\x42\x3f\xc3\x6b\xb6\xe4\x12\xbd\xac\x5d\x37 9601132164972588483754248037506:\x79\x2e\xee\x62\xab\x2f\xce\xd2\x7d\x62\x3a\xe4\x82 9688718102517266561682607822244:\x7a\x49\xef\xc6\x5f\x71\x56\xfd\x7d\x31\x45\xd5\xa4 10370289389985105048245022868291:\x82\xe4\x36\x54\x78\x42\xe9\x37\x2d\x6a\xc1\xc3\x43 10893579007124073725233043725036:\x89\x7f\x0d\x5b\x23\x51\xfc\x49\x32\x8c\x5d\xda\xec 11004875796083980885085821632619:\x8a\xe6\xab\xe6\xee\x5e\xaf\x07\x83\x0b\xcc\x80\x6b 11033109962339354703693139330185:\x8b\x41\xe6\xa8\x31\xfd\x51\x1c\xae\xa1\xc2\xc4\x89 11426077413254933066724321773731:\x90\x37\xa5\xb6\xb9\xed\x74\xcb\x9a\x79\x47\xc8\xa3 11894880488884842446118078249688:\x96\x22\x6e\x87\x6f\x38\x21\x9c\x72\xb0\xc5\xfa\xd8 12180445192732961217799744982167:\x99\xbd\x24\x1d\x9e\x15\xb3\x37\x77\x98\x85\x0c\x97 12378019498653432383117499372878:\x9c\x3b\x89\xc0\x47\x66\x37\xeb\xe1\x1d\xc1\x15\x4e 13080099476022824754407083618659:\xa5\x18\x14\xb2\x63\x85\xd2\x54\xf0\xcc\x40\x31\x63 13454056654303057346073731446335:\xa9\xd0\x66\xd3\x1a\xeb\xee\x3e\xf9\x06\x22\xb6\x3f 14292042926127097954347302350825:\xb4\x64\x14\xd2\x80\x27\x7e\x1d\x15\x96\x85\x6f\xe9 14605464870879761463922823766114:\xb8\x58\xcd\x60\xe6\x6d\x80\xa6\x29\x31\x4b\xa0\x62 14919423800226289225358245376851:\xbc\x4f\x42\x1e\x35\xdd\x39\xd7\xf9\x2b\x88\x33\x53 15556826132177958147785710376478:\xc4\x5a\xd0\xf8\x2a\x54\x99\x9e\x4e\x4a\x3c\x16\x1e 15693347383019684345661258056082:\xc6\x13\xf0\xb3\x87\xfb\x7c\xae\xd1\x4b\xa9\xc1\x92 15752447585701787309957308923207:\xc6\xd2\xe7\x3e\x3f\x18\x89\xef\xe6\x94\xfa\xbd\x47 15784256688498979601182355953922:\xc7\x39\xaf\x1d\xc4\xf8\xee\x44\x38\xfe\x69\x19\x02 16744881572807314190306198706913:\xd3\x59\xa1\x65\x82\x82\x4f\x3e\x4a\xa3\x94\x5a\xe1 17570520847512271876701604061162:\xdd\xc5\x6a\x32\x90\xbb\x8a\xd6\x3f\xa1\x30\x9f\xea 17612331043971411143134445588909:\xde\x4c\x82\xc8\x0c\x62\x83\x2d\x90\xf8\xa4\x51\xad 18056649682988549580771341260682:\xe3\xe8\x2e\x8b\xa1\x4b\x44\xdd\x82\x40\x5e\x57\x8a 18132673324637063407602140093501:\xe4\xdd\xd3\xd3\xf1\x12\xab\x66\xea\x78\xf2\x9c\x3d 18233592087989826328614995309778:\xe6\x23\xe9\xdf\x54\xa7\x5a\xef\x37\x9a\x3d\x34\xd2 18403153178487833118308534476581:\xe8\x47\xcb\x84\xe3\x00\x51\x4c\x67\x2f\x8e\x5f\x25 18513751300441135534434062865696:\xe9\xad\x28\x24\x2f\xbb\x08\xc4\xd6\x7a\xea\x95\x20 18606479736205038131601556771040:\xea\xd8\xc7\x4e\x3f\x0d\x07\x1a\x80\x5b\x96\x10\xe0 18755920607200612891228241848253:\xec\xbb\xa5\xe5\x98\xa0\x96\x95\xec\x1c\xce\xe7\xbd 18886408621894646414235594426367:\xee\x61\x47\x0d\x83\x5b\x5c\x3e\xae\x2b\xb4\x87\xff 19347508181241250943701777563726:\xf4\x33\x2b\xab\x32\x24\x49\x86\x7b\x4b\x56\xc0\x4e 20272965598916929871685128672415:\xff\xe1\x7c\x1a\x35\x7b\x46\x8b\x2b\x57\x59\xd4\x9f 414075788031042759889408496587483:\x14\x6a\x5f\x07\xfc\xa5\x30\x92\xcd\xf2\x8d\xcd\x52\xdb 414759133017074817928886074670736:\x14\x72\xff\x09\xb6\x05\xd7\x68\xa4\xeb\x2a\x8a\xfe\x90 444061130839313301066039702092908:\x15\xe4\xd6\xe6\x37\xf9\xaa\x64\xc0\x92\x20\x04\x7c\x6c 653469582551926532012128285995303:\x20\x37\xf2\x19\x94\x7f\xb8\xaf\xab\x46\x36\xc7\xb1\x27 911488407334994665999908538043459:\x2c\xf0\x99\xe3\x1d\x45\xae\x3b\x1f\x9a\xbe\xe2\x4c\x43 957662972362104389251060049436787:\x2f\x37\x67\xf4\x19\x0b\xf5\x5b\xf1\x00\x25\x90\xe0\x73 970618881017607027585236164842294:\x2f\xda\xee\xc0\x8e\x40\xf1\xaa\x09\x23\x9a\x62\x93\x36 1069722078536546146342082397306794:\x34\xbd\xca\x74\x2f\x73\xa2\xe3\x02\x28\xfd\x43\x7f\xaa 1340520941937022155998732576887252:\x42\x17\xc0\xc5\xe4\x41\xb5\x60\x0c\x08\x97\xe0\x11\xd4 1437004934320862915793296041776551:\x46\xd9\x8d\x5d\xd0\x31\x75\x93\x1d\x40\xc2\xf9\x15\xa7 1447361113278511441769073958292514:\x47\x5c\x43\xfc\x44\x64\x04\xea\xf1\xf3\xb1\x65\x8c\x22 1592534761593563641562980112718386:\x4e\x84\x9d\x57\x9b\x61\x54\x16\xd4\xc0\xf5\x34\xda\x32 1597113034597014930966402537646336:\x4e\xbe\x66\x8a\x46\x3e\x02\x77\xb2\x09\x15\xac\x69\x00 1730740863276731688437830926188214:\x55\x55\x05\x57\x74\xaf\x7e\xae\x2d\x07\x28\x57\xbe\xb6 1781843031999967768169551852203528:\x57\xda\x05\x5a\xae\xde\x29\x9c\x9d\xed\xf5\x87\xee\x08 1791963023597932067384648743673624:\x58\x59\xc0\xcf\x88\x38\x8f\x4e\x12\xc4\xa5\xde\x5f\x18 1985480871790955355816575219325665:\x61\xe4\x4a\xb3\xbd\x88\x5a\xcc\x62\x24\xb5\xf0\xda\xe1 2123525929293862361000536950943772:\x68\xb2\xaa\x56\xf7\x2d\x43\x3b\x49\x56\x99\x87\xb0\x1c 2141810272567895287494385256479384:\x69\x99\x72\x3d\x3c\x2e\x1f\xa5\x3f\x3f\x6f\x1d\xba\x98 2234881780805610093008401555177921:\x6e\x30\x2c\x80\x6e\x2d\xc4\xf3\x19\xc3\x5d\x3a\xc1\xc1 2262239046883611132530662588769829:\x6f\x89\x78\x98\x8a\xe5\x67\xcc\x07\x97\xe4\xff\x66\x25 2578141593692731679489167738023131:\x7f\x1c\xb8\xc6\xb8\x1d\x04\xa4\xaa\x9f\x43\xcc\x2c\xdb 2839680257555778182601601547671813:\x8c\x01\xcd\xc6\xe6\x54\x92\xda\x82\x47\x67\x72\x99\x05 2952067688627654171763498592632382:\x91\x8c\x55\x26\xfa\x1e\x37\x19\x58\x57\x3a\x55\xfe\x3e 2984551669650118299882022435323201:\x93\x26\x56\x8e\x4c\x1e\xe3\xf7\x92\xe1\xcd\x20\x7d\x41 3018077136865983502438229111588243:\x94\xcd\x7d\x2e\xce\x1a\x85\x5a\xf6\x7b\x13\x61\xc5\x93 3218138354089429226026174490013501:\x9e\xaa\x9d\xd7\x04\x1e\x3c\x05\xc2\x7b\xca\x9e\xef\x3d 3332386979465449058796213556957804:\xa4\x4c\xa3\x0e\xf0\x1e\x65\x69\xa1\xd7\xb9\x37\x52\x6c 3413542669072525374598754007521133:\xa8\x4c\xf7\x3b\xfa\xb3\xf7\x87\x53\xa2\x14\x00\x17\x6d 3450140634872146937277896254814217:\xaa\x1a\xe5\xa3\xbf\x64\xf6\x1d\xea\x6d\xc0\x1f\xf8\x09 3471772524676105397131223534088162:\xab\x2b\xee\x0b\x9b\x39\xe6\xb0\xac\x18\xd6\x7b\x2f\xe2 3502930167092111007469299646294953:\xac\xb5\x31\xd1\x58\x81\xe3\xec\x5b\x09\xc4\xff\x6b\xa9 3548534210465078978461724636616990:\xae\xf4\xcc\x6d\xe0\xbc\xa4\x81\x75\x70\x86\x60\x19\x1e 3820246063945049709910434694491677:\xbc\x5a\x48\xc7\x47\x01\x02\x65\x58\x09\xd8\x12\xee\x1d 3820923027728011230980357665009179:\xbc\x62\xd4\x2a\x98\x12\x0d\xbe\xbb\xee\x14\x03\x2e\x1b 3836811592513049249138898660821732:\xbd\x2b\x5e\xe3\x58\x72\xcc\x7a\x78\xf6\x93\x2d\x0a\xe4 3985383330196619501514384449428026:\xc4\x7e\x9c\x10\x54\xa6\x77\x68\x0d\x70\x02\x27\x5a\x3a 3991929006433336695643150553896030:\xc4\xd1\x3a\x48\xcf\x4a\x3e\x19\x5c\xbf\x2d\x12\xd4\x5e 4142827745895283961734837265726269:\xcc\x41\xd6\x68\x8d\x24\x9c\x1b\x4c\x7f\x0d\x43\x7b\x3d 4160871858144498441323993219452876:\xcd\x25\x96\x14\x5f\xe7\x24\x4e\x50\xd5\x33\x3b\xcf\xcc 4178119777615671882630567628195372:\xcd\xff\x49\x1c\xf7\xd2\x34\xa9\x85\xa6\xbd\xdd\x46\x2c 4216845711393942903597740663664008:\xcf\xe8\x13\x5a\x97\xaa\xc4\x46\xe2\x02\x34\xb2\x6d\x88 4377997862798562858066056154489766:\xd7\xda\x1a\x09\xe7\xd2\xdc\x76\x7b\x31\x7d\x30\xa3\xa6 4385516057104429110730533368581571:\xd8\x38\xfe\xa2\x7a\x0e\x47\x37\x7d\x66\x07\xcd\x4d\xc3 4407608437282398008208930670680884:\xd9\x4f\xd6\xf7\x0b\x8e\xc1\xc2\xaf\x1e\xab\x54\x9b\x34 4552352850244970499694560886967378:\xe0\x72\xc5\x63\x39\x20\xc3\x18\x58\xe0\x41\x44\xcc\x52 4575054272051580753016172183273692:\xe1\x91\x4d\xa3\x38\x0e\x98\x1b\x64\x4c\x65\x8b\xc0\xdc 4958043323322609387768044639610772:\xf4\x73\x4e\x01\x40\x1d\x2b\x2a\xae\x0f\x41\x21\xe7\x94 4971025927453080796141494600264701:\xf5\x17\x2b\x0f\xb0\x07\xfc\xe2\x77\xd5\x47\xf8\xeb\xfd 5133208730649543344256059483337570:\xfd\x16\x33\xf6\x2e\x65\xac\x57\x0d\xc0\x34\x03\xb3\x62 13060987554881903687783289085142965:\x02\x83\xf4\xd6\xe6\x31\xd6\xd3\xde\x40\x62\x5c\xba\xa7\xb5 65483447426312329123984155553414152:\x0c\x9c\x95\x4e\x4a\x2e\x57\x10\x34\xfd\x3f\xf2\x0d\xbc\x08 88493983691547613457527398373748756:\x11\x0b\x17\x1a\xf5\x3b\x64\x19\xd2\x47\x8e\xd4\x67\x70\x14 106299122425433793241733657527831923:\x14\x78\xf3\x8d\x11\xb8\x38\x18\xe0\x93\xed\xbd\x97\xcd\x73 112094450092194678262457320322244163:\x15\x96\xae\xde\xb3\x0e\x6f\x25\xf8\x40\x24\x06\x9a\x1e\x43 137645779900299002014902460807663013:\x1a\x82\x75\xfe\x15\x44\xbf\xe5\x18\x29\x85\x1a\x60\x4d\xa5 145680312881747331814803974667791724:\x1c\x0e\x98\x0e\x4e\x70\xc3\xb5\x41\x1d\x75\xbb\xd2\x6d\x6c 166270437185439146025852797504449382:\x20\x05\xc3\xf6\x20\x82\xe2\x2b\x6d\xfe\xfe\x98\x1b\xeb\x66 166590329699698155388924473669943997:\x20\x15\x89\x92\x96\x68\x3b\x93\xd3\xde\x7f\x26\x59\x82\xbd 183645709503050124771396164472259841:\x23\x5e\x6e\xba\xef\x77\xe7\x9b\x8c\x4f\x53\x2b\x27\xc5\x01 213127721892602217325687875256327307:\x29\x0c\x02\x0a\xbb\x27\x6e\x6f\xf0\x93\x0a\x2c\x52\x1c\x8b 231713231795883077028238025207331330:\x2c\xa0\x58\x28\x15\x8f\x6c\xb6\x1b\x8c\x38\x63\x98\x3a\x02 246122200882976092512557669941159923:\x2f\x66\xc2\xea\x39\x47\x8c\xdb\xae\x3a\xf5\x8f\xae\xa7\xf3 279849394727284497835838840115355252:\x35\xe5\xa3\xf3\x19\x1b\xf6\x1c\x49\x8b\x9f\x9c\x30\xde\x74 281472212781900852340062045048386969:\x36\x35\xa6\xcb\x09\x96\xc1\xb0\x04\x17\x70\xe5\x03\xb5\x99 295553326030272392695870524975584497:\x38\xeb\xe7\x6d\xd3\xce\x2f\xcf\x2d\xc8\xd5\xa3\xf5\x94\xf1 364320759472809322399012704820002507:\x46\x2a\x66\x77\x3a\x80\xaf\x52\x12\x69\xf2\xa7\x11\xfe\xcb 388265813686040777614464077866421796:\x4a\xc6\xfb\x8a\x3e\x38\x0b\x90\x7d\x5a\xdb\x0d\xfb\x4e\x24 391162515664101019679679374684610640:\x4b\x55\xcd\x0f\x22\xd0\x7a\x2f\xd3\xf0\x93\x5a\xc8\x60\x50 405920592579188106254935052139198938:\x4e\x2d\x6e\x2d\x81\x8a\x71\xb7\xaf\x0c\xba\xb7\x75\x79\xda 421631039966313687041401287540327265:\x51\x34\x03\xe6\xd6\xb4\x98\x49\x80\xcf\x16\x72\x11\xc3\x61 438715011483242941585234384338902343:\x54\x7e\x51\xef\xfe\xea\xdf\x1c\x4d\x6a\x4e\x9d\xb1\x5d\x47 505363318191593745142336448353481598:\x61\x54\x55\xd5\x9f\x8d\x9b\x1e\x9d\x09\x3f\xc4\x57\x33\x7e 591172856718521839681288559032888428:\x71\xdb\x12\x7a\x71\x26\x70\xb8\x7e\x6e\x6b\xb1\x0d\x6c\x6c 592585699408025483998355935885640806:\x72\x20\xbb\x0f\x62\x7e\xae\x6d\xc0\x81\x29\x05\x29\xc4\x66 632726113682619800125599714026486666:\x79\xdb\xce\x51\x16\x49\x3b\xfb\x8a\x5a\x15\x79\xd0\x7b\x8a 656770888506646461826166286216686319:\x7e\x7d\x4e\x0a\xc5\xec\x8f\x71\x37\x69\xd9\xe0\x2d\x6a\xef 662122037007310047431715210089832895:\x7f\x85\x23\x08\x1c\x90\xaf\xe7\xfc\xac\x14\xfd\xa5\xa1\xbf 665114214554238484126421073057808820:\x80\x18\xa9\x9f\x34\xb3\x6b\xd4\x44\x39\x5c\x1b\x8c\x01\xb4 676605232849260914817974415989371818:\x82\x4f\x36\xa9\xd4\xd5\xe7\xa7\x2f\x52\x0d\xf2\xef\x73\xaa 725798091166591871958379717637763039:\x8b\xc8\x9b\xd3\xc8\xff\xeb\xa4\xbd\x8d\x94\x5c\x58\xef\xdf 757024566712087790589439218371754208:\x91\xcc\x31\x5c\x0a\x98\x5b\x40\x09\xf6\x96\x8a\xb3\x78\xe0 769734713394304414231277438515219870:\x94\x3e\xd9\xf6\xf0\xd4\x75\xbc\x2c\xa9\x25\x62\xfb\x0d\x9e 793523549151823316505811802729039734:\x98\xd3\xbb\x48\xe6\xa8\x63\xf4\xb7\x20\x5b\x2b\xad\x47\x76 816942992679710446636681960179100934:\x9d\x56\x66\x38\x31\xb4\xdc\x97\xb4\x4c\xc4\x2e\x57\xed\x06 849878924231526235216181173024081926:\xa3\xae\x44\x1e\xb5\xbd\xf8\x0f\x1b\x76\xee\xe5\xc6\x48\x06 880575188917032338216627923414471015:\xa9\x97\xb5\x73\x47\x63\x8d\x61\x16\x1f\x53\x82\x94\xd1\x67 913966465689257866641036773364495470:\xb0\x06\x06\x9d\x8d\xc4\x1d\x62\xa4\xd5\xb4\x84\x42\x74\x6e 957397182881068052181026976094549914:\xb8\x63\x53\x55\x60\x1a\xdc\xdc\xcb\x19\xdb\xc0\xb0\xf7\x9a 965239829942575885417172129736147093:\xb9\xe5\xff\x74\xc0\x7a\xed\x60\xca\xa4\x5d\xa7\x31\xc0\x95 1038523434748962833601853020593384055:\xc8\x03\x28\x96\xda\x52\x43\x91\x05\x13\xf4\xe9\x1a\xea\x77 1054728832125261262376663034231900816:\xcb\x22\x25\x75\xda\xb6\x8e\x12\x07\x8e\xed\x99\xe1\xca\x90 1070131876454760563557172014034386032:\xce\x19\x93\x36\x56\x5e\xa9\xaf\xdf\xaa\x04\xd9\x3a\xfc\x70 1082783749977121090094032659103654941:\xd0\x89\x5c\x4e\x80\x8a\x15\x64\xc3\x30\xb7\x96\xf0\xa4\x1d 1086587097500445399392617206724936736:\xd1\x44\xe1\x4d\x26\xa2\x84\x56\x89\x41\xf9\xf0\x87\xc4\x20 1100357571090786535529888380672454962:\xd3\xeb\xd1\x1d\x12\x3d\x0e\x89\xd4\xef\xac\x67\xd2\xb1\x32 1167374071362882566373753673585055501:\xe0\xd3\xfc\x44\x44\x78\x96\x52\x5f\x6b\xa2\xff\xe0\xd7\x0d 1232330621443168877372248796519240809:\xed\x56\x97\x31\x69\x36\xb4\x9d\x3a\xf0\xa8\x52\x2c\x94\x69 1300237408176630014312789119651112694:\xfa\x6a\xa7\x57\x4f\xe7\xe8\x67\x8e\xb7\xe6\xc3\xa1\x66\xf6 1321817528935256994053014057087603044:\xfe\x92\xa2\xc2\x33\xfe\xc9\x94\x30\x88\x25\x62\x17\x11\x64 13025730617447490497535351399747715283:\x09\xcc\xaa\x1a\x56\x32\xf1\x4d\x37\x7b\x8e\x42\xda\x5c\x80\xd3 19755893352397913560620717911073114306:\x0e\xdc\xd8\xbe\x9d\x60\xcb\x27\x8d\x93\xfa\x64\xd3\x9c\x48\xc2 21094963578870403128755930899539773335:\x0f\xde\xbe\x01\x07\xe9\xd4\x38\x92\xf1\xee\xb6\xc3\xaf\x47\x97 34980930767403902200200517966203523804:\x1a\x51\x15\x0b\x5e\xd0\x36\x58\x00\x32\x25\x84\x5b\x85\x12\xdc 36545713642732872788915375477159812741:\x1b\x7e\x72\xcb\xf0\x3f\x51\x6f\x8d\x81\xbc\x4f\x85\x06\xde\x85 53586894389725092759543799468253454652:\x28\x50\x75\xe0\x42\x9b\x34\x50\x2f\x5a\x7d\x42\x7e\x47\x21\x3c 54335328807166898155168232879605449899:\x28\xe0\x9a\x8a\xb1\x5e\x7c\x40\x45\xff\x83\x74\xa9\x38\x84\xab 67989633151165045962962856176150188337:\x33\x26\x53\xb8\xda\x34\x57\x08\x3f\x6c\x33\x9a\x42\x21\x11\x31 71309061991236552657862974313180989248:\x35\xa5\xa0\x33\x15\xfc\xe0\x00\xf4\x8b\x84\x73\x30\x14\x87\x40 71629992200014281790275475142901157329:\x35\xe3\x6f\x47\xce\x58\x68\x76\x74\x01\x59\x14\xcf\x4a\xcd\xd1 71940290262655545573481844114270112263:\x36\x1f\x32\x27\xf9\xb2\x06\xc1\x3e\xee\x38\xe0\xc0\xa2\xca\x07 73383557191745675282954728615375724396:\x37\x35\x28\xb5\xac\x84\x53\xb8\xa9\x31\x96\x6c\x4d\x66\xdf\x6c 77753297450097368636916563951372549033:\x3a\x7e\xbd\x89\xc4\x35\x4e\x5f\xea\xe8\xb2\xea\xb2\xed\x3b\xa9 82241178686798381084205496856443026508:\x3d\xdf\x13\x2a\xa5\x1c\xe3\x96\x66\xa5\x29\x18\xa9\xae\xfc\x4c 88229943760570602689556407506779614975:\x42\x60\x78\x14\xd7\x4b\xf9\x27\x2a\xe5\x9b\xbd\xf2\x59\xae\xff 97734520968870729352863943252926465320:\x49\x86\xfb\xea\xec\xef\x37\xbd\xe1\x07\x4c\xb9\x2d\xe7\x05\x28 115600709306936082408993271000144911495:\x56\xf7\xe3\x03\x02\x4b\xe0\x3f\xcb\xd8\xf1\x6f\x97\xf5\x9c\x87 119154375618149489028226018824767316559:\x59\xa4\x4c\x49\xc7\x62\x70\x9f\xf4\x66\xf5\x77\x86\x5e\xa2\x4f 119896363517987614145915708718255925634:\x5a\x33\x33\x1d\xb8\x59\x79\x8d\xc5\xc9\x86\x55\x0b\xc3\x69\x82 126031958869463935521672629861106656335:\x5e\xd0\xdf\x52\x91\x95\x2a\xdf\x4d\x3f\xbd\xd2\x7c\x79\x24\x4f 129272980676047201595406612703654587863:\x61\x41\x12\x08\xe8\x58\x6f\x12\xfd\xfb\x8e\xe5\x8a\x8a\x2d\xd7 131888676415229101677212708440881649926:\x63\x38\xd5\xca\xa5\x25\x43\x33\x8c\xf0\x0b\x1b\xd1\x0e\x59\x06 141654974769040319689555982270701077909:\x6a\x91\xc1\x7a\x01\x7e\x73\x9d\xa0\xf2\x1e\xb5\x70\x11\x85\x95 145934208145108196527995495448737737625:\x6d\xc9\xe7\xf8\xa4\x17\xa3\x7c\xec\x71\x80\xc9\x72\xe3\xeb\x99 146837444044872844755476868527335071799:\x6e\x77\xdc\xf0\x79\x26\xd8\x6f\x7d\x9d\xfe\x94\x13\xca\xe0\x37 167645469998983396269111499094368642696:\x7e\x1f\x57\xd3\x83\x7b\x4f\x40\xa2\x44\xbc\x60\x13\x32\xe6\x88 177034602917940782327712103052904297069:\x85\x2f\x9f\xd1\xd0\x08\x46\xe4\xd3\x1e\x74\xd1\xb9\x50\xf2\x6d 178803208549546787757640108677884952800:\x86\x84\x3e\xcf\x3e\xbc\xdd\xed\x66\xaa\x25\x3d\xc5\x8e\x40\xe0 182173555217702708103290800572965619245:\x89\x0d\x59\xba\xd2\x66\x23\x11\xa5\xf7\x48\x53\x85\xd4\x86\x2d 183093010221667266499437072403418969249:\x89\xbe\x6e\x5c\x87\x98\x7c\xa4\xeb\x50\x30\xc0\xe0\x15\xf4\xa1 193295521669052151571697070502197751987:\x91\x6b\x5d\x03\x2f\x2b\x97\xd5\xf8\x85\x45\x1b\x9b\x52\x70\xb3 195684685384244017512853397077393748451:\x93\x37\x7f\xe0\xcd\x39\x77\xd7\x57\x9f\x83\x20\x17\x09\x31\xe3 210169409876890806689088569895397330418:\x9e\x1d\x27\xee\xcd\xd2\xe1\xd8\x5a\xe8\x72\xe0\x0a\xd7\x8d\xf2 211815827655954217051541800511784066267:\x9f\x5a\x3e\x98\xb7\x8e\xbf\xd6\xfc\xfe\xdb\x58\x44\x8f\x9c\xdb 229866846806512757642609032856887527387:\xac\xee\xbe\x8d\xa2\x24\x32\x3e\xe2\x8f\xd9\x15\x1b\x3a\x87\xdb 231801258667715435633080846673523334081:\xae\x63\x4c\x6b\xe7\x5b\xab\x78\x26\x5b\xe5\x40\xdb\xc5\x5b\xc1 232663769988757615055744012399071706315:\xaf\x09\x69\x83\x49\x95\x42\xc9\x5e\xd7\x7a\x15\x41\x03\xbc\xcb 234577677943339643024680534647242265363:\xb0\x7a\x04\x75\xdf\x56\x88\xf9\x16\x1a\xd9\x29\xda\x78\x93\x13 235341386560231726219858937704988721381:\xb1\x0d\x1a\x33\xce\x53\x5a\x9d\x91\x16\x1c\xfe\x89\x56\xc0\xe5 237187620306602379473641378166944302470:\xb2\x70\xac\x8d\xcb\xea\x4d\x53\xcf\xa3\x9c\xf7\x38\x0c\x05\x86 250891396566972447857975790024890120162:\xbc\xbf\xec\xe3\x53\xe8\xda\xa5\xf7\xd3\x94\x77\xe4\x15\xf7\xe2 257851684749722772635566756693943642107:\xc1\xfc\x6d\x97\x1c\x61\xde\x19\x94\xcf\xe6\x1d\x42\x21\xe7\xfb 276205446739130083013948854635715586017:\xcf\xcb\x3b\xeb\xdd\x9c\x48\x4c\x27\xf1\xc3\x65\x39\x43\x67\xe1 292750259889049051040621882352688282136:\xdc\x3d\xa6\x30\x50\xf1\xa4\x45\x49\x94\xef\xba\x2e\x91\xba\x18 294554806232495244548644229956867283384:\xdd\x99\x31\x31\x4e\xe9\xca\x50\x2b\x70\xb3\x1c\x16\x4d\x59\xb8 297796982576457205939045947543485717604:\xe0\x09\x9c\xd3\xf5\x25\x2e\x66\xf4\x29\x23\xee\x4a\xb0\x9c\x64 302633111670468092102103517322713269377:\xe3\xad\x04\x66\xc1\x66\x9f\xf5\x5d\x34\x2e\x22\xd7\xc4\x84\x81 305025417103633083230664287805004988438:\xe5\x79\xc2\x2a\x6d\xb9\xfa\x78\xed\x2d\xc3\x7d\x78\xaa\x40\x16 309838178388585139213523871412785371948:\xe9\x18\xa9\x9e\x02\xa8\x1d\xdc\xbb\xd7\x9d\x71\x6b\x21\xdb\x2c 333086520508465133873272936677305873394:\xfa\x96\x21\x61\x5d\x14\xcd\xf9\x55\x16\x72\x64\x8f\x21\xf3\xf2 593893421089204273602839630668429777404:\x01\xbe\xcb\xb6\x5c\x3e\x65\x32\x06\xed\x60\x14\xd5\x34\x0f\xd9\xfc 769617624970053377142813828023525757364:\x02\x42\xfe\xf6\x84\xed\x3f\x14\x71\x5e\xf9\x05\x71\xa2\x9a\xd1\xb4 2701362151632160107701662065618888309917:\x07\xf0\x47\x6d\x04\x42\xdf\x06\xc6\xf6\x0d\x04\xd2\xb9\x8a\x3c\x9d 3133741980956936625334931467671409184345:\x09\x35\x90\xc0\x7d\x3a\x79\x39\x8a\x37\xfd\xf3\x28\x6b\x32\xce\x59 5525220559272261576776370979049018580038:\x10\x3c\xb6\xc5\xbe\xee\xa3\x7c\x18\x72\x03\x9b\xa8\x77\xfd\x5c\x46 6638344136560431430355558013042177252717:\x13\x82\x22\x93\x4b\xc5\x41\x44\xb4\xcd\x28\x67\x74\x66\x6e\x9d\x6d 10158028396840846985694018364133318486116:\x1d\xda\x0d\x1b\x46\x48\x25\x80\x76\x72\xa3\xb0\xe8\xa7\xc6\x68\x64 10359410165752354572612252297133461681318:\x1e\x71\x8d\xd3\x0e\x94\x16\x9c\xe1\xbf\xd0\x0c\x72\xf4\x65\x34\xa6 11811267647691268526478640709829989081531:\x22\xb5\xcf\x67\x85\xd8\x9d\xc5\x72\x50\x3f\xfd\x04\x9a\x11\xa1\xbb 12602342653771152916143187859180026319823:\x25\x08\xf2\xe8\x9c\x26\x02\xa2\x03\xaf\xa5\xbb\x50\x72\x9f\xd3\xcf 12832881119404005826071802509897945566778:\x25\xb6\x63\x00\x87\x25\x95\x05\x96\x71\x8e\xba\xd3\xd5\xc3\xce\x3a 17247603649301057032847211149334866531291:\x32\xaf\xa7\xa2\x3a\xe4\xcb\xdf\x38\x61\x64\x93\x36\x14\x23\x93\xdb 18133177831930624335885254441699173315348:\x35\x49\xe3\x04\x70\x7c\x6c\x27\x74\x8a\x79\x4c\x7b\x97\x59\xb3\x14 18498857924982717677886147426946297036108:\x36\x5c\xfe\x71\x04\x1b\xaa\xe2\x5d\xff\xac\x81\x58\xba\x92\xfd\x4c 22125708040076607825867299724248086029777:\x41\x05\x88\x5d\x92\x69\x11\xdc\x4e\x74\x09\xa2\x4f\x92\x09\x25\xd1 25395592601563568979656012784204564808638:\x4a\xa1\x85\x39\x84\xb2\x0a\xac\x86\x0a\xde\xca\xa9\x91\xf2\x43\xbe 28326165878984271681807472478013651019010:\x53\x3e\x3d\x1b\x8b\xc6\xf1\x71\x34\x8f\xcf\x4c\xd4\x9a\xb5\xe5\x02 29517331309792230145490996398488229714187:\x56\xbe\x5f\x39\x8c\x04\xf7\xa0\x93\xd1\x5c\xcf\x80\x7d\xb3\x19\x0b 30335292112240162095191013453738729530802:\x59\x25\xbc\xbe\xbc\xe3\xb6\x09\x48\x1a\x8e\xb6\xdf\x88\xdb\xe5\xb2 30731228735690443440894441252265144572641:\x5a\x4f\x9b\x5d\x6f\xda\x0b\x38\xbc\xcb\x12\x19\x96\xc5\x7f\x5a\xe1 32697823768351397125466529240514856438607:\x60\x17\x1b\xca\x8a\x8a\x70\x5b\x75\xb6\x66\x98\x90\xe5\xeb\x4b\x4f 34836814675752435792362489799250287648735:\x66\x60\x4e\x74\x82\x17\x54\x04\xef\x2e\xe6\xb6\x6a\xfa\x0d\xdf\xdf 35976522796208206192700335869330728668688:\x69\xb9\xba\x41\x3b\x89\xec\x07\xa3\xf1\x30\xe6\xfc\x30\x77\xce\x10 36392245650330661009876959710833062089369:\x6a\xf2\x7b\x90\x6b\xec\xa5\x2b\xff\x6a\x12\x3e\x8c\xde\x92\x92\x99 41298552862426777971487868270546367761373:\x79\x5d\x93\xf6\x35\xf2\xe0\xac\x36\x6a\x07\x32\xc8\x3e\x4b\x4b\xdd 44968822422078040120406892762936289999589:\x84\x26\xc8\x2a\xa9\xa7\x96\xd8\x27\x0c\x1c\xdd\x46\x41\xcb\x3a\xe5 45174810119647950331978445901408799428358:\x84\xc1\xbf\xf4\x42\xc3\xd0\xfb\xbe\xa6\x29\x5c\xcd\xe7\x3e\x0f\x06 45739124112716620299499665588488151639757:\x86\x6a\x4a\xe0\x39\x2e\x74\x6b\xad\xe5\xba\x44\x5d\x33\xaa\x26\xcd 46824360105822234130014115225518259538140:\x89\x9a\xbb\xb9\xb7\x93\xb3\x63\x35\x9c\x4b\xcf\xb8\x23\xa3\x88\xdc 48135339914960406403831409985626150497676:\x8d\x75\x01\x40\xa6\xfd\x00\x09\x86\x4b\xde\x2a\xb4\xe3\x33\x6d\x8c 49117557359465288604081826392282858432483:\x90\x57\xf1\x73\x8d\x52\xf9\xf6\x4f\x68\x69\x30\x20\xa1\x0a\xa7\xe3 49959704242950362501179202320273681029480:\x92\xd1\x81\x0a\x9a\xaf\x80\x9d\x34\xf5\xba\xf5\x7d\x5f\xaa\x19\x68 58503826244746081584769578812068883077928:\xab\xed\x63\x15\x25\x2b\xc0\x8c\x92\x1c\x03\xc3\x35\x3e\xe0\x1b\x28 62283106395781796764445611055833177580346:\xb7\x08\x99\xf6\xb5\xa5\xf6\x61\x41\x39\xb6\x19\xce\x74\xce\xe3\x3a 62411848890934136769639586591653364457865:\xb7\x69\x74\xdd\xc9\xe8\xac\x2e\x6e\xff\x63\xc7\x77\x40\x3b\x61\x89 62571135017315069543603781714065618409378:\xb7\xe1\x4a\x42\x27\x71\xef\x22\x74\x96\x2b\xb6\x2d\xa8\x08\x97\xa2 63027844297268636553783872656222363297236:\xb9\x38\xe1\x44\x27\x8e\xa2\xe5\x97\x51\x29\x14\x2b\xef\x7b\xa5\xd4 67754105317400471649480485962712201348350:\xc7\x1c\x86\x07\x51\xfd\x27\xb6\xfb\xd9\xfb\x13\x27\x48\xf8\xc4\xfe 70415060961499389115179366415379203530698:\xce\xee\x67\x71\xb4\x7f\x8a\x90\xbd\x2f\x04\xe4\xc9\xbf\x76\x9f\xca 71198241915646618820496671933569523060569:\xd1\x3b\x9a\x9b\xfb\x8b\x94\xb6\x95\x03\xa1\x2d\xcb\xc0\x55\x0f\x59 75012770870777706303822461126094578863975:\xdc\x71\x56\x29\xc4\x20\xf6\x46\xd4\x80\xfc\x1c\x67\x0c\x81\x4f\x67 75068190306766574807600085838163642990119:\xdc\x9b\x07\x8e\xeb\x2f\x5d\xd5\x28\x8c\x3b\xb3\x65\xae\xdc\xbe\x27 75586503935522288196062585874084725517394:\xde\x20\xf7\x21\xd1\x15\x3b\x69\xab\xf1\x88\x09\x3d\x2b\xe3\xec\x52 77500696939574983318798136818724109212503:\xe3\xc1\x0b\x4b\x70\x32\xdf\xf3\x70\xcf\x3b\xbd\xe4\x14\x9e\xdb\x57 79440376804565392115193399199008535538024:\xe9\x74\x4c\x0c\x52\x5d\x14\x51\xaa\x2e\xd9\xdc\x61\xde\xb6\xe9\x68 79829880327034559062562108924690831050396:\xea\x99\x53\xb2\xa7\x83\x2b\xd0\x23\x96\x1b\x4a\xa0\x63\x89\x06\x9c 80475500215875754830934801043134743373497:\xec\x7f\x09\x90\xc6\x8d\x39\xc3\xf8\xb8\x6c\x89\x7e\x13\xbc\xe6\xb9 82685114972367749329027109267613692634501:\xf2\xfd\x5d\xe3\x56\x7c\xc2\xdb\xd3\x2a\x3d\x67\xce\x3b\xc6\xa5\x85 86308256676691323315792342249629705922628:\xfd\xa3\x1d\x99\x20\x5a\xbd\x77\xb2\x29\xfa\x63\x89\xba\x61\x68\x44 86501365077250589524001574728771445169928:\xfe\x34\x64\xec\x5b\x17\x02\xb8\xc1\x46\xf8\xb0\xba\x5c\x13\x9f\x08 940042626368439124467773598417435619206045:\x0a\xca\x89\x78\x4f\xf5\x82\x20\x67\x0d\x58\xdd\x2f\x46\x18\x4f\xa3\x9d 2099221025647614401595220932805892343694588:\x18\x19\x0e\x5f\x51\x75\xba\x1b\xe8\x18\x6b\x64\x30\xeb\xfa\x59\x84\xfc 2965570893783515489426559654843400759407083:\x22\x0b\x07\x92\xa7\x72\x62\xa2\x1c\x5b\x08\x09\x46\x14\x78\x61\xf1\xeb 4242862361322870974557447233418873784896455:\x30\xb4\xa6\xdf\x28\x95\x1d\x58\xd0\x32\x4f\x60\x6e\x26\xc7\x8e\x0b\xc7 4307247671666485284678418694331124193288649:\x31\x71\xdc\xfe\xe0\x1e\xb4\x52\xa0\x54\xc9\x02\xef\x70\x1f\x11\xe1\xc9 4397089590903605097727192514445691407740331:\x32\x79\xe2\x8b\x20\xa1\xb3\xca\x67\x2a\x91\x6f\xee\xa8\x40\xf6\xad\xab 4767823667100134818179792604260575199161970:\x36\xbb\x5f\xdd\x00\xac\x6c\x1c\xff\x6b\x43\x21\xa8\xa0\x11\xc4\xee\x72 5693239682337617054596274426377229368775299:\x41\x5a\xed\x7e\x7a\x90\x9c\xd1\xd9\xf4\xec\x53\x0c\x25\x94\x5f\x52\x83 6273773358902689650293934143850426751400751:\x48\x04\xf6\x7d\x9e\xf7\x18\xbe\xb8\x68\x82\xd2\x76\x90\xa9\x46\x3b\x2f 6284172249947041873539002817993712236457053:\x48\x23\x85\xbf\x2f\x9f\xc6\x48\x6c\x5a\xcc\x4d\x99\x15\x81\x03\x6c\x5d 6817152980422569482776998327474422345637047:\x4e\x41\xcf\xe2\x0b\xe4\x44\x89\x61\xbc\xe3\x10\xd5\xa0\x37\xc8\x1c\xb7 7622241054433566611563832922392918887080300:\x57\x7f\xc0\xd5\x01\xd3\x90\xe6\xbd\x2a\x59\x24\x55\xb4\x13\x79\xa1\x6c 9107762681307845321489972096456243101309020:\x68\x8d\x4f\x17\x6e\x2a\x81\x18\x5b\x0d\x9b\xff\xad\x2c\x62\xbc\x18\x5c 9185227262318243992627273645515466340970268:\x69\x70\xf4\xf7\x0c\xd1\x60\x50\xa1\xd0\x50\xe5\xdf\xa2\xdf\xca\x2f\x1c 9447686761810204382153649304172806021154917:\x6c\x74\x41\x8b\xf9\xe2\xae\x63\x78\xe3\x9f\x2c\x59\xab\x3d\x5d\x88\x65 9695931424208646357614218835839074341729358:\x6f\x4d\xc8\x12\xdc\x61\x64\x49\x06\x8f\xf8\x3d\xa5\x6d\x1f\x6f\xb4\x4e 9863010195211745062750049692525049087161123:\x71\x38\xc8\x2b\xac\xec\xe3\x9a\x15\xa2\xc0\x39\x81\x8f\x15\xca\x73\x23 11289016296764353026053555862104925551335641:\x81\x97\x6f\xec\xdc\x84\x82\xf6\x0f\x60\x4b\x6a\x33\x94\xf5\x86\x18\xd9 11629859868014662755197212785790804341457108:\x85\x81\x16\x20\xe2\x39\x05\x14\xb4\xc2\x8c\x5a\x74\xd6\xf3\x7a\x80\xd4 12344922475674854302989655215257979996755998:\x8d\xb6\x77\x71\xb4\x41\x46\x44\x8c\x4e\xab\xf2\x30\x80\xbf\xc2\x58\x1e 12882613349753220938854352556981920663470364:\x93\xe2\x99\x19\x39\xa9\xdf\x5c\x41\x10\x11\x60\x49\x35\x74\xb6\x01\x1c 13665850009235335799778142353771652966639514:\x9c\xe0\x52\xde\xd4\x3f\x5a\x46\xa2\x84\x38\x48\xb8\xce\xed\x65\xe7\x9a 13692341613559548489513484429538465971346401:\x9d\x2e\x2c\xf0\x3b\xbe\xa3\x28\x17\x60\x08\x58\x68\x2e\x02\x46\x9b\xe1 13753953207223321928515181996330174641298599:\x9d\xe3\x3c\x59\x8c\x9a\x0d\x87\xfb\xaa\xe8\x60\x1a\x12\x58\x13\x5c\xa7 14268506481085886413041815306183120266992480:\xa3\xcb\x5f\x35\x5c\x54\x93\xee\xd3\x31\x07\xc7\x28\xe8\x73\xb8\x1b\x60 15278419505500095506222151220176859352731884:\xaf\x63\x3d\x52\xda\xf2\xb3\xcd\xbb\x63\x55\x02\x39\xf7\xfe\x37\x10\xec 15424200902949201698348887212458337747772995:\xb1\x0f\xa7\x0e\xb9\x34\x14\x1b\xdb\xf1\x58\xb0\x1e\x05\x86\x02\xa6\x43 15433504305450347442481511270307106454157151:\xb1\x2a\xfe\x28\xde\x9f\x1b\x4e\x3e\xdd\xd2\xdc\xa7\xc8\xf1\xb2\xb7\x5f 15631090120207356538408906418407201090474047:\xb3\x6f\xa5\x34\x97\x9f\xd5\x0d\x3a\x1c\xe3\x60\x90\x9b\xe1\x5e\x90\x3f 16044894062798629423024733175504418934156113:\xb8\x2f\xb4\xb1\x01\xa9\x08\xc8\x01\xa3\x8c\x32\xe6\x14\x8a\x68\xeb\x51 16779051581921973328151170919652829578091951:\xc0\x9d\x33\x6c\x01\x10\x49\xbc\xb9\xba\x92\xec\xc3\x7a\x08\x77\x5d\xaf 17497125220999532077362485585474532589796266:\xc8\xdb\x6d\xfc\x61\xb1\x64\xd1\x5e\x9d\x36\x20\x6b\x38\x7f\xc1\x7b\xaa 17988726165193719432586998724170033603061020:\xce\x80\x1d\x6e\x4a\xf9\xe2\xbf\xd6\xd3\x43\x1c\xe4\x98\xbb\xfc\xa5\x1c 18017102378147600884862174798477058889358967:\xce\xd3\x81\x52\x1d\xd2\x93\x62\x61\x0e\xbb\x83\x75\x7d\x69\x1e\x1e\x77 18300640233250982536915336160829000431517758:\xd2\x14\xbf\x7e\xaa\xe7\x04\xf9\x57\x02\xbf\x19\x83\x2d\xa1\x6d\x40\x3e 18306645656169048025441590330048388857347919:\xd2\x26\x65\x79\x0c\xdd\x1a\x13\x11\x6f\x93\xd5\x95\x5f\x93\xa0\x3f\x4f 18694855816016954990716176199935432379526642:\xd6\x9b\x3e\x56\x34\xf6\xeb\x4b\x95\xcc\x59\x4c\x27\x06\x53\x3e\xed\xf2 18758620443721063620678926137455784072140552:\xd7\x56\xa1\x82\xcb\xb2\xd2\x7a\xd4\x99\x32\x77\x4a\x7d\x09\x69\x57\x08 18840603380877299380019918039258753523098025:\xd8\x47\x8e\x9e\x27\xce\xbf\xe6\xf9\x1b\x2c\x5c\x34\x6d\xd4\x89\xa1\xa9 18963857615734590504262219798877040103767999:\xd9\xb1\xc4\xcc\x52\xec\x48\x8e\xb5\x08\xfb\xd7\x15\x8e\xa4\xe5\xbf\xbf 19431805135109714431017588804626774377443302:\xdf\x10\xf1\x62\x52\x0f\x47\x6a\x9e\x4e\x89\xb7\x82\x56\x68\xd9\x2f\xe6 19630770876388750748723178383937978133379771:\xe1\x59\xa6\x92\x39\x64\xe1\xef\xf2\x6a\x3e\x1e\xa3\x6f\xcf\xd3\xfa\xbb 19751847636962222035228107232046270843291730:\xe2\xbd\x76\x9a\x19\x98\x57\xc9\x10\x3c\x1a\x44\xea\x06\x89\x5d\x88\x52 19757906942285298054479947162224621351508743:\xe2\xcf\x45\x1d\xdb\x3b\x19\x4b\xec\xc1\xf4\x54\x56\xfa\x0b\xc6\x9b\x07 20540339636350127193978003931671698663339862:\xeb\xca\xa2\x0d\x5a\x63\x09\x58\xc0\x97\xba\x89\x71\x29\xb4\x88\xf7\x56 20575280865938066568293899947190338338379363:\xec\x31\x50\xe9\x63\x87\x78\x2b\x2c\x8b\x59\xcf\xbf\xfe\x4c\xa3\x56\x63 20975847601593279438378404273759169704609723:\xf0\xca\x79\xd4\x7b\x2d\xd2\x28\x7d\xb2\xe0\x3d\x3e\xad\x20\x4f\xc7\xbb 21755891201686199998515042828280700017465515:\xf9\xbe\xd1\x69\x37\x40\x5a\x50\xbf\xfb\x58\x72\x39\xec\x53\x22\x58\xab 21937232875074772433862676873662965519087302:\xfb\xd3\xbb\xb9\x1c\x39\xfd\x69\x9e\x55\x3a\x25\x2d\xfd\xac\xfd\xf6\xc6 22150589784617183228678743143119230651580639:\xfe\x46\xbb\x9f\x34\x06\x87\x7e\x6e\x8c\xde\x9a\x99\xd6\x82\x7f\xc0\xdf 291320807932486762009174538808797715861658436:\x0d\x10\x32\xe8\xf6\x06\xa0\x61\x0d\x35\xf2\x86\x18\x3b\x7a\x96\xfc\xdb\x44 306426723999563240704722866977634916407957911:\x0d\xbd\x9b\x35\x1f\x1f\xc9\x9e\x5e\xc6\xfe\x64\x0b\x5d\x85\xf8\x0b\xd9\x97 313842975185199161382140080825432529711330138:\x0e\x12\xbd\x9c\x66\x79\xbc\x16\xff\x5c\x7e\x8b\x07\xe6\x03\x24\x3e\xf3\x5a 546075904784550504177248998923557152229464156:\x18\x7c\xa4\xda\x5d\x4a\xb8\xff\x64\x8b\xcd\xda\x82\x26\x7f\x00\x40\x98\x5c 647686237455490015423094101437828861427553074:\x1d\x0b\x12\xc8\x78\x4d\x90\xe3\x2f\xc9\x00\x05\x6c\xf8\xbb\x86\x01\x93\x32 718615429933856200759151858201200300132879411:\x20\x39\x4c\xf2\x1c\xd5\x06\x2e\x06\xfd\x01\x2b\xe0\x8e\x96\x4e\xa7\x4c\x33 763761675036549422549637952887559364262197111:\x22\x3f\x8d\xd6\x00\xd3\x0a\x1d\xb6\x36\x23\x55\xff\x08\x6f\x74\xeb\x77\x77 932860648526999858099015132710155900763249306:\x29\xd4\xb7\x0e\x5d\xdd\x53\xdb\xa4\x2d\x79\x1f\x02\x2c\x74\x66\x14\x1a\x9a 983130713222830276409054931063810249849446681:\x2c\x15\xc9\x7f\xb0\x43\x4d\xa3\x68\x76\x76\x2b\x5c\x30\x34\x1a\xba\x21\x19 1063522203672802392515011383182220998381493569:\x2f\xb0\xa2\xdb\x21\x6a\x42\xe7\xba\xeb\x01\x82\xe9\x5f\x6a\xf9\xa1\x5d\x41 1471470033868622907469966083705870442525033565:\x41\xfb\xa5\xc7\xd1\x9b\xac\x44\x57\x8b\x1f\x0b\xc4\xa6\x94\x3a\x53\x04\x5d 1799208808629022580618119358875930772982317744:\x50\xad\xe7\x79\xea\x64\x4f\x30\x69\xc7\xef\x05\x1b\x24\x74\x07\xa9\xc2\xb0 1826187268279752342797998090171536730336553502:\x51\xe3\x9a\x0b\x23\xde\xc2\xbe\x74\x9a\x4c\x93\x8e\x7d\xb8\x3f\x8c\x6a\x1e 1845146450991192785315628231646899538050719474:\x52\xbd\x3e\x12\xee\x60\x9a\x2d\x34\x41\xc8\xc7\x8f\xc6\xe4\x81\x9c\x9e\xf2 1912734238705780742927074765982722422201465081:\x55\xc5\x1c\xbb\x05\xd1\x91\x2a\xde\x9f\xd2\xeb\x98\xa8\x0b\x17\x35\x38\xf9 1913515047176805544400356049836721269445655284:\x55\xce\x13\x52\x07\x56\x1e\xe9\x91\xb8\xed\x5b\xdc\xa9\xc0\x29\xf6\x7a\xf4 1996866427517669150618380957506127098832694902:\x59\x8a\xe7\x03\x21\xc8\xc7\x1a\x74\xe7\xcc\x8d\xb2\x1d\x9b\x41\x73\x2e\x76 2116006131328303961902990807555137711050382666:\x5e\xe2\x8f\x22\x5b\x37\x90\xd0\x47\x13\xc5\x1e\x8e\xdd\x80\x1d\x90\xdd\x4a 2161893630517268363367269351802078946245397455:\x60\xf1\x52\x5f\xd7\x52\xff\x42\x1e\xa6\x44\x95\x11\x05\x1e\x88\x02\xcb\xcf 2251314166411476789642141290003857239023868631:\x64\xf3\xd1\xb6\x1b\x81\x53\x0e\xdf\x95\x98\xc4\xff\x1b\x44\x79\x3c\xda\xd7 2322336809593751511715632775644150741383805776:\x68\x23\x1e\x80\x3e\xee\xb5\x9d\x72\xc7\xb1\xa8\x1f\xf9\x3c\x97\xb8\x7b\x50 2451751501353783165744389009433473047519177463:\x6d\xf0\xba\x19\x41\x5c\x82\x39\x7f\xe8\xc5\x4f\x70\xe5\x5e\x04\xba\x2a\xf7 2546894750989570904012802286184602521399569027:\x72\x34\xea\xfa\xd5\x59\x45\xb2\x38\xa9\x2e\xc7\x28\xd8\xe7\x9f\xa1\xaa\x83 2594908489107791798333159385593608479616959645:\x74\x5c\x16\xac\xb3\xbb\xcb\x0c\xdd\x2a\x65\x30\x39\x04\x57\xc2\xfe\x84\x9d 2609534605327796882572282337122529522043001864:\x75\x03\xfc\xf7\x93\x8d\x99\xff\x62\xbe\x48\x6e\x5d\xfd\x2a\x1e\xc3\x1c\x08 2674889886399807495437209547125161613753679925:\x77\xf2\x3a\xe0\x57\x98\x99\x36\x42\xab\x96\xe7\x3d\xff\x8a\xaf\x99\x80\x35 3029757600834180042431709059598691060731324848:\x87\xdb\xe9\x5c\x40\x23\x43\x87\x46\x26\xb6\xad\x25\x92\x1b\x49\x43\xa9\xb0 3106649780449948970664429962023655192182253140:\x8b\x4e\x97\x2a\xd1\x42\x45\x43\x6c\xfb\x15\x86\x37\x28\x56\x5f\x05\xe6\x54 3230023007579299782265549515624883821236941835:\x90\xd6\xd8\x7e\xff\xab\x58\x07\xe8\x9e\x5f\xbd\x70\xb8\x75\x93\x03\x74\x0b 3235773380154051515776395925292576637377557329:\x91\x18\xdb\x52\x80\xfa\xa3\xc1\xc0\xd7\x3b\xdb\xc8\x85\x1e\xa1\xab\xb3\x51 3252183626061674727621054545463413051264636581:\x91\xd5\x3c\xb3\x5f\xcd\xd4\x94\x2a\x45\xa4\x4a\x4e\x74\x10\x37\x8c\x96\xa5 3535334651195033327177324844299084625309869732:\x9e\x87\xa6\xc6\xe0\xa1\xc0\x41\x71\xa5\xd2\x7b\x33\x0d\x34\x5a\x90\x26\xa4 3704004728602680441554312542381381901360477283:\xa6\x17\xe3\x95\xb0\xc8\x2a\x69\xf9\x2b\x87\x23\x12\x88\xbd\x5d\x12\xb4\x63 3874637740570870820504639569826986797812118074:\xad\xbe\xa8\xf0\x55\xd5\x90\xdf\x12\xe3\x14\xca\x48\xa6\x57\xc4\x2b\x72\x3a 3951516495795807309452253017834745185374776544:\xb1\x31\x2f\x4b\x83\x53\x90\xb5\x00\xc2\x8c\x41\xff\x93\x4f\xf9\xff\x2c\xe0 4143009502161182986989367085480761202813885053:\xb9\xc7\x6a\xa9\xb9\x4e\xc4\x6e\x2c\x34\x46\x22\x3a\x9c\x65\x14\x16\xda\x7d 4253814501024189874803987443323088964052819475:\xbe\xbf\x65\x49\xdb\x1d\x11\x30\x48\x41\x46\xe8\xf7\xef\xf8\xc5\x23\x9e\x13 4332375447852763733332305454264343056267117110:\xc2\x45\x3b\x29\x56\xc5\x19\xff\x81\x36\x8b\xb9\x46\xd9\x6a\xdb\x9c\x82\x36 4478924871674283950767422489489037194457533074:\xc8\xd7\x89\x36\x05\xd3\x7c\x65\xab\x53\x82\x59\x94\x07\xc7\x8a\x5c\x4a\x92 4497055728460161395584401495973287995692191847:\xc9\xa7\xab\x02\xa5\xf5\x39\x49\xef\xc0\x5e\x19\xbe\xe9\xf4\x62\x5e\x90\x67 4726126462755995722594697767171366173117685024:\xd3\xed\x45\x65\x46\x45\x15\x27\x13\x72\xac\xe2\x28\x6d\x98\xab\x6e\x9d\x20 4752381661351555876766509711608838502934650231:\xd5\x1a\xaa\x7d\x5b\x5f\x45\x7d\x46\xb1\x00\x91\x14\x44\x96\x6d\xdc\x1d\x77 4783169171332707713219423611189914702794711725:\xd6\x7c\x16\xd9\x8d\xf4\x4b\x78\x68\xb1\x7e\x28\xe6\xb5\x27\x7e\xbf\xe2\xad 4913064880182929542428092058794433337680358247:\xdc\x4f\x38\x07\x9a\x28\xbb\x42\x36\x7d\xa6\x1b\x4b\x7e\x23\xe4\x52\x6b\x67 4928226370239200409715254165948093421677565392:\xdc\xfd\x43\xa4\xfc\x3f\xce\x8c\x48\x43\x05\xe0\xd0\xd6\x86\xb6\x2d\xd5\xd0 5002706276074194153613494300441358982658368308:\xe0\x54\x40\x6a\x76\x86\x5c\xb0\xe2\xbf\x55\xdd\x52\x5c\x15\x72\xb7\xa3\x34 5033352360829820106741853251136397766575861629:\xe1\xb4\x0d\x2a\x25\x6f\x0b\xba\x16\xdc\xd4\x9d\x44\x04\xc1\xc8\x15\x2f\x7d 5054615414937216994764590772106575885278534700:\xe2\xa8\x23\xaa\x22\xe3\xd3\x1f\x7e\x15\xb3\x6d\x6d\xce\x49\x21\xf6\x5c\x2c 5278316045571307977824963055004311605625512988:\xec\xb0\x18\xbb\xca\x8a\x56\x98\x50\x7b\xfb\x3e\x88\x19\xa7\xb4\x14\x64\x1c 5410338826434986388706570632684025721390202522:\xf2\x9b\xa4\xd0\xf7\x34\x20\x9c\x5f\xd1\x47\xa6\x3a\x05\x50\x0d\xd1\x7e\x9a 13138282283799015219080541225909941821678246435:\x02\x4d\x24\x15\x82\xa2\x15\x97\x8a\xc9\xf2\x62\xc5\x19\x8d\x4e\x26\x6b\x5a\x23 27676286817130076879052483800479082735532125193:\x04\xd9\x0c\x31\x03\x60\x0d\x41\x0e\xa5\x59\xa6\x9f\xc6\xdc\x08\x19\xca\x2c\x09 61511009210174224178166612435596777771150519342:\x0a\xc6\x3f\xc1\x99\x8f\x5c\x0e\x41\xf1\x83\x0d\xb9\xd6\xea\x59\xee\xb2\xac\x2e 89210646442430477113652185145922754834939641273:\x0f\xa0\x57\xff\x50\xd1\xf2\xe9\xb8\xeb\x71\x45\x54\x44\xa9\x5f\x8c\x9d\xfd\xb9 131785786575119092307788373937775665697074338654:\x17\x15\x7a\xa3\x18\x24\xb9\x84\x25\xfa\xb2\x83\xe6\x73\xe4\xf7\x5a\xb6\x5b\x5e 168788425139906296903555117836740632702349542002:\x1d\x90\xbc\x18\x97\x22\xe2\xb9\x03\x51\xa1\xd0\xa9\x48\xfe\x12\x91\x45\x02\x72 186605425197879206213785510638832076405848879447:\x20\xaf\xad\x39\xe1\xda\xcc\xc9\xdf\x9f\x04\xa7\x42\x7d\xdb\xff\x0b\x93\x31\x57 196749932769542412692416293179377063203198754905:\x22\x76\x92\x76\x3c\xf7\xb8\x9f\x7e\xcb\x7f\x4c\xd4\x7e\xd4\x15\xe4\x94\x60\x59 225474304285347325674769562666848221227281772302:\x27\x7e\x9e\x13\x5b\x86\xf7\x8a\x29\xb9\x55\x0a\xf5\x35\x84\x67\x35\x7b\x6f\x0e 270219277421411281552432257031619622410101113492:\x2f\x55\x0d\x2d\x3a\xf9\xc4\xc4\xd7\x88\x73\x4d\xaf\x89\x88\x04\x84\xae\xc2\x94 343548210652107484994376159730111690422522755321:\x3c\x2d\x3c\x0c\x24\x42\xc6\x90\xd5\x84\xcf\x96\xd9\x54\xff\x59\xd7\xd0\x38\xf9 369341574957554578320342547458532947682627044133:\x40\xb1\xd9\x59\x37\x4d\xb8\x18\x92\x0f\x65\x7a\x0f\xbf\xba\x3b\xb9\xa2\x43\x25 381215402014313034286523416871650466674746079298:\x42\xc6\x4a\x32\xc9\x22\x5d\xb6\xe3\x58\x4a\x4d\x8c\x75\xe4\x80\x72\xb4\x38\x42 417200929378200866813638529533632623622910027811:\x49\x13\xef\xcb\x1a\xce\x26\x9b\x00\xe5\x37\x78\xaa\x92\x71\xc2\x61\xe6\xa8\x23 424522603476399098842534226717255975479833496865:\x4a\x5c\x40\x7d\x75\x0a\x96\xe4\x95\x8d\xf2\x8d\x11\x30\x27\xb5\x7d\x03\x8d\x21 436002405918514371766715825571489452291430363665:\x4c\x5f\x06\x28\xc1\x5e\x8a\xa7\x69\xb3\xa4\x02\x59\x41\x92\x02\x75\xe1\x32\x11 438635289084785017999336106954181960419507219553:\x4c\xd5\x16\x2c\xf9\xe5\xe9\xc2\xff\x44\xb5\x17\xdd\x1b\xc0\xfe\x78\xd0\xac\x61 454088927099377211113112218850094201520547319157:\x4f\x8a\x0d\x3d\x70\xd0\x50\x94\xa7\x02\x8c\xe5\x18\x4d\x90\x1f\x9f\xce\x4d\x75 463924607788389131605908376191473992221892088044:\x51\x43\x19\x51\x28\x20\x3f\x9f\xe3\x7e\xe5\x10\x9e\x76\x86\xab\x0e\xc9\x10\xec 535035813955432314631955032601930468964808004388:\x5d\xb7\xd5\xed\xfb\x04\x85\xc9\x6c\xad\x73\x39\xaf\xd8\xf9\x11\xba\xac\x13\x24 542059960282997419939560075106556416908902526332:\x5e\xf2\xcf\x2c\xcc\x8e\x0c\xb4\x50\xdc\x83\x08\x7d\x41\xd8\xc6\x7a\x6f\xed\x7c 561480139827441665648966555367668710489114455182:\x62\x59\xa3\xe7\x2a\x48\x36\xb9\xac\x9f\x08\x4d\x6c\x58\x10\xef\x3c\x7a\xac\x8e 565163866245080935552649441176346340664578222694:\x62\xfe\xd3\x02\x26\x62\x64\x90\xcf\x4a\x0d\x5c\x95\x64\xfb\x20\x9a\xd5\x2a\x66 591612701090133688450492784947103442776164434417:\x67\xa0\xd4\xbe\x03\xf2\x5b\x33\x6e\x86\x4d\x3b\xf0\xe6\xb6\xd5\x64\xc8\x81\xf1 632828727761009222296262086567069604996331825428:\x6e\xd9\x05\x86\x4d\x84\x92\x27\x3e\xd8\xba\xea\x7d\x25\xc3\xed\x27\x2f\x69\x14 723057125708822714149329553477903796991233442477:\x7e\xa7\x00\xbc\x7b\x36\xc0\xd8\x98\x09\x92\x0d\xf8\xee\x66\xc9\x71\x7d\x42\xad 755659700822571304698680483479028612056693877829:\x84\x5c\xf3\xf1\xa7\x09\x00\xe9\xb7\x8f\xec\xbf\x80\x39\xff\x1b\x07\x84\x2c\x45 787597112851525740012197238632581570141821664159:\x89\xf5\x13\x74\x33\xc8\xa6\x1b\xec\x53\xf4\xe7\x56\x10\x10\xfb\x6f\xe0\xfb\x9f 944909579688379489309319793416409323195605649597:\xa5\x83\x36\x02\x67\x64\xb6\x21\x3e\x7b\x2d\xc4\xd3\x55\x77\x87\x9f\x87\x08\xbd 951109352103277034493382562347081918471033968208:\xa6\x99\x37\xe8\x07\x74\x6d\x1f\x2d\x04\x8f\x81\x5d\x80\x68\x90\x7c\x51\xd6\x50 956312723130642382734594117063861249499973923030:\xa7\x82\x8b\xad\x26\x1c\x6a\x8c\x0a\xf8\x2b\x6d\xfe\xeb\x19\xc0\x9f\xa9\xb0\xd6 961273258499076444261807420955386227828516613131:\xa8\x60\xfb\xd4\x67\xce\x54\x3d\x6e\x60\x99\xc8\xd7\x14\x36\x9a\xa8\xa6\x6c\x0b 972391468307051278982529992277366676662737153987:\xaa\x53\x8a\x9e\x74\xf2\x30\x3c\xc0\xcb\x8f\x7d\xba\x93\x3f\xd9\x52\x13\xaf\xc3 989060851832955531326012009770962782377517464258:\xad\x3f\x05\xc1\xdf\x6f\x9d\xdc\xad\x16\x0b\x06\x9d\xdf\x35\x2e\xb2\x57\x3a\xc2 1016235502064801530893609195414490737700708362526:\xb2\x01\x93\x71\x74\x9f\xca\xb5\x74\x8c\x66\x14\x03\x3c\x35\x9b\xc9\x35\x29\x1e 1028001310216882054107829250839111854607524415762:\xb4\x11\x2c\x4b\xfe\xa0\x86\x50\x4b\x6f\x4f\x0d\x6b\x0a\x44\x86\x19\xf7\xc9\x12 1060286448967459910225061878693111267236934246031:\xb9\xb8\xe3\x83\x89\x63\xfc\x2a\xbd\x70\xa0\x48\xb6\x2f\xc7\x20\xd4\x0e\xde\x8f 1061733630023364531396880940323270162287744367031:\xb9\xf9\xc8\x56\x6d\x1f\xa6\x5d\x20\x96\xf5\x19\xd8\x3f\x42\x00\x0f\x61\xb9\xb7 1075101886587466086496018468903815572604800082148:\xbc\x51\x3c\x65\x9a\xd9\x17\x39\xb3\x70\xc9\xf3\x95\xe6\x10\xb1\x45\xe2\x20\xe4 1086964390057747601725082424932591912047343606915:\xbe\x65\x2b\x42\x25\x0a\x5b\x99\xf9\x3d\x09\x0b\xa8\x61\x5d\xed\xf3\x40\x9c\x83 1091699191737581483408387367588341780727584340270:\xbf\x39\x7c\x1d\xb6\x43\x10\x4d\x86\x10\x94\x61\xae\x30\x90\x96\x4e\xcd\x39\x2e 1160569036170430614586826131912035422411575179335:\xcb\x49\xb7\x28\x64\xde\x88\xed\xa0\x58\x05\xed\xf3\xa5\x80\x2a\x2d\x26\xb8\x47 1185883806383320747379091415596530195911851796490:\xcf\xb8\xde\x77\xd6\x8b\x3f\xeb\xd7\x45\xea\x46\xd8\x8f\xc6\x01\x78\x7a\x68\x0a 1187156875549593134501423068487507312969783113033:\xcf\xf1\xf4\x95\xde\xf7\x42\x0d\x63\x4b\x3b\x4f\xd0\xcd\xa2\x36\x6a\x9a\xf5\x49 1194174780271503638962472989504813215823520071615:\xd1\x2c\xa6\x2e\x42\x4d\xa8\xe8\x1f\x7e\x7b\x57\xdb\x5b\xd7\xfc\x63\xa3\xff\xbf 1289002553246049725872987622570525161619110334766:\xe1\xc8\xdf\xa0\xd7\x30\xf4\xfe\x68\x0e\x31\xca\x4d\xef\xfb\x4e\xa5\x25\x91\x2e 1299699720357288158469698116372762213996730289480:\xe3\xa8\x8d\x15\x9c\xfd\xcc\x1b\x9b\x89\x06\x23\xbf\x22\x9e\xf1\x15\xc0\x8d\x48 1380508411373218081403828343115886164182876195339:\xf1\xd0\x23\x5d\x14\x65\x52\x4d\x79\xe5\x84\xc3\x0f\x1d\x40\x5a\xc3\x4e\x8a\x0b 1392801504342851537514365489400718531334955579302:\xf3\xf7\x61\x26\x6d\xf4\xa6\x53\x81\xe1\x39\xd1\x03\x68\xaf\x33\x9c\xe3\xb7\xa6 1421961811551523356914068742717017053094471918612:\xf9\x12\xf9\x0f\x68\xdb\xda\x4a\x95\x1c\xfd\x57\xae\x11\x7d\x14\x21\x25\xe4\x14 Math-BigInt-2.005003/xt/author/lib-convert-string-_as_bytes.t0000644403072340010010000000452114536617521023570 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_as_bytes'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; $out0 = eval qq|"$out0"|; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_as_bytes(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_bytes() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; $out0 = eval qq|"$out0"|; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_as_bytes(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_bytes() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_as_hex.dat0000644403072340010010000003723314505066136023535 0ustar OSPJADomain Users3126:0xc36 1685:0x695 623:0x26f 3585:0xe01 597:0x255 3145:0xc49 3841:0xf01 1470:0x5be 2722:0xaa2 1255:0x4e7 20784:0x5130 48779:0xbe8b 24756:0x60b4 23489:0x5bc1 60130:0xeae2 28254:0x6e5e 61056:0xee80 41162:0xa0ca 47799:0xbab7 62376:0xf3a8 972274:0xed5f2 246074:0x3c13a 371107:0x5a9a3 309429:0x4b8b5 740228:0xb4b84 1028637:0xfb21d 986820:0xf0ec4 178395:0x2b8db 1032912:0xfc2d0 69385:0x10f09 14176835:0xd85243 14486938:0xdd0d9a 6265300:0x5f99d4 6408555:0x61c96b 16102091:0xf5b2cb 7230921:0x6e55c9 12828906:0xc3c0ea 10074656:0x99ba20 14222131:0xd90333 1589892:0x184284 253527184:0xf1c8490 52740107:0x324c00b 175139976:0xa706c88 228971000:0xda5d1f8 53869574:0x335fc06 110991379:0x69d9813 262113222:0xf9f87c6 203330948:0xc1e9584 45851598:0x2bba3ce 173284903:0xa541e27 2340165304:0x8b7c16b8 1259022898:0x4b0b2a32 2140166788:0x7f905a84 3939842449:0xead53991 1154702702:0x44d35d6e 3675085214:0xdb0d599e 335357116:0x13fd24bc 3558505989:0xd41a7e05 2335362782:0x8b32cede 1891637671:0x70c019a7 32721874911:0x79e602fdf 39964671387:0x94e147d9b 42258870258:0x9d6d32ff2 41581975075:0x9ae7a9623 45388289466:0xa915a55ba 12573841956:0x2ed759a24 16184950521:0x3c4b2bef9 27464359508:0x66500de54 46237120442:0xac3f277ba 34502692922:0x80885503a 834955478495:0xc2673985df 75840268660:0x11a86ea974 243740686160:0x38c013b750 460208690557:0x6b2693557d 589440250681:0x893d607339 528611460074:0x7b13b2c3ea 452188272753:0x6948857871 877956324237:0xcc6a465b8d 936896634162:0xda23641d32 817611812269:0xbe5d762dad 13081823321732:0xbe5d96e9e84 13222859480776:0xc06afd79ec8 10023257798222:0x91db8b8764e 3542123771965:0x338b707783d 8411640455605:0x7a67cd761b5 11063546124474:0xa0feebc98ba 1218871057639:0x11bca605ce7 8392633502572:0x7a20ff04b6c 1543260142252:0x1675178faac 1141364468075:0x109be9fa96b 139828159041851:0x7f2c47bfd13b 111291717049770:0x65381f42ddaa 125648711129530:0x7246decb19ba 23142908951463:0x150c60ddfba7 177576427049758:0xa1813bdad31e 51657708511969:0x2efb7f5da2e1 149995201028960:0x886b7aace360 133315130917689:0x793fd9058339 111402354006599:0x6551e1bcda47 237833763831838:0xd84efd02401e 293162322089713:0x10aa12c11d6f1 2918956744978550:0xa5ec693e63076 424613491409497:0x1822f08528259 1732844208822658:0x628033b849982 3554719352774392:0xca0ff984c5ef8 820880332974357:0x2ea9618a66915 3482670300330881:0xc5f785e1efb81 2788950786459244:0x9e88934ec466c 2436318090748632:0x8a7d1825be2d8 2534190819694674:0x900d54799d852 49648137671504246:0xb062b7d9ab7176 64670901593293279:0xe5c1d7a4c5c1df 42746944701675314:0x97de1ea62d3732 39078630867622422:0x8ad5cec72c5a16 15594713796830911:0x37674f403be6bf 44017454867206791:0x9c61a45946d287 20104633161787857:0x476d0eadf2a9d1 63818024483355242:0xe2ba27b798fa6a 44716498784258446:0x9edd6b31a2898e 46621288013605427:0xa5a1d07f05aa33 794521342482630366:0xb06b4f39124c6de 579880832078972179:0x80c268b60200513 524868799404863559:0x748b56466367047 1132139304327982407:0xfb62ab2eeba2d47 1007600664909699211:0xdfbb7775b63d88b 786066197529814458:0xae8ab0ab9b4e5ba 661290696073358743:0x92d606268b92d97 628849843854166032:0x8ba1f99e7fcc810 687956312842753127:0x98c1c9f1ffad467 522934905121259068:0x741d6868c67be3c 17236300671009462944:0xef33a42371589aa0 8733492117907837987:0x793398cf28921423 4139458547071222572:0x39724f9de4a2832c 17216226058998710401:0xeeec52629b710081 7795990394132201100:0x6c30ebf5629b7e8c 8612809358697483675:0x7786d87aa752cd9b 4059955171963924091:0x3857dbb7e4eb6e7b 5772302983625539791:0x501b56fb0aed80cf 18391945083867254658:0xff3d509bec664f82 17501166707742602278:0xf2e0a26541e3f426 253996228454293026288:0xdc4e7e00cab19b5f0 234399915955499182928:0xcb4f3c9a854f22b50 71971237497745490837:0x3e6cd332f2a64c395 65554350767569208540:0x38dbfd6b3865184dc 157107382817185653075:0x8844d8c4819a8e153 288510551452774903922:0xfa3e361f3aeb53072 212193393973035068453:0xb80c65f91d744ec25 261535729828126704364:0xe2d89909a5e06c2ec 69916142506918275564:0x3ca48092dae73e9ec 155399525874622594835:0x86c9a0570e500ff13 1108890181737952950483:0x3c1cf151238109b8d3 4548977354494420886576:0xf699be1265d026a430 703868053236915561397:0x262821a92a8c16e3b5 2582578410917734610133:0x8c0079a5a4905f74d5 3348071048039856256832:0xb57fd1cf5a016eb740 2527537773092492943771:0x8904a2052897ea219b 2750506673341331764964:0x951af2ae98537576e4 3874148091807584680653:0xd2049aeb61f882facd 2739063535381356119978:0x947c247d3faf5287aa 2103794383265718893425:0x720c031533272c7b71 47155411775745114709751:0x9fc4ccc71f5ff9b1ef7 48927121744790943165653:0xa5c5836afe2ea87ecd5 65755332540426404799148:0xdec9a8d5ed5b7dca2ac 38746186104075374234201:0x8346f595f907d170a59 18108882159329307516379:0x3d5af395af0b81bdddb 63116585702389269485907:0xd5d8e956251eb315953 75118580452446065888698:0xfe82fb84e3401bb8dba 45079305891144419586348:0x98bc10aab98d50d312c 19684358326281024970919:0x42b1759158d6b3e20a7 23870284082996558418153:0x50e02bcc74ccecfd0e9 349673921450375391636569:0x4a0bdc7bdb478d626c59 302532773908066735388418:0x401055a4260dcb227702 323381141991625173319067:0x447a86de9ea97f3d3d9b 585946975255442546959564:0x7c143fca0ab2b56f24cc 916555415926136398339996:0xc21691938a1a871edf9c 380405265150912801916479:0x508dcf8cfd47f821c63f 807266772060734950017438:0xaaf204f78a929401099e 196194753344324183234747:0x298bbd27ea4f30c798bb 861203167233971395154218:0xb65dead0755cafced12a 1048523379872506067649568:0xde0890fa371670658420 17611947965383885226683165:0xe91799cbef1259e9eab1d 15644199208075931064102403:0xcf0c9bd08694c8d9e6e03 6495136181388262768570368:0x55f6609b54a46233ef000 17387192851905494314460599:0xe61e19cf8e82d5ab125b7 5022167128551201046183316:0x4277c39bed37a5acabd94 19238725829521688044893458:0xfe9f56ac13bf58759f512 6140258512925296248809965:0x5144014ba3dad1780e9ed 15175470090631020203292813:0xc8d87e1cd3673b4d1388d 9652094147180727307665441:0x7fbe91279c25c982d0021 10299194452008226476274681:0x884f07332469e775433f9 59380720557430790238284677:0x311e5b4fc56a1b08c4ab85 219680763166335985685753645:0xb5b73608ae60069735ef2d 38152929779848042575444813:0x1f8f3277bb2e5e3b623b4d 264046052479073837513443857:0xda69ed2fcbae37fb3c0a11 140374520893954898218337304:0x741d7606970531a6664418 289711708186536387940924334:0xefa4d72ba6f78644d73bae 145552352609323988237174751:0x7865e8d870bd36c38047df 133722219462409364888612023:0x6e9cc80ae3aa10c5cbecb7 30484102751096896864637943:0x193742857dc82c67dbd3f7 148462293759421632408951956:0x7ace1d1241320ae8af9c94 4823186671798979824729774700:0xf95a58164b47f769214da6c 3943163571173869888331379344:0xcbdb55d84413d7be60cf290 883152653920806719739801234:0x2da86d94d056a35b8f62e92 463801866511318464236980468:0x17fa5dd904ff70f25d988f4 2281803456592625338488541931:0x75f76ad3dbae296048152eb 3730040010558460600189987710:0xc0d6ab22530353824482b7e 3777815203347081924144535625:0xc34ef7c892fac85a9441849 1807506385403671009374367548:0x5d7225d7de6df412485ef3c 319538351346862404962847158:0x10850e0bc735bc8ff1b89b6 747219113675034788862549704:0x26a15cd51867b878232dec8 28652035186743730993057064166:0x5c946873c7a9b7da4c2564e6 34339298320750485057956394069:0x6ef4cd440c9d51d87efab455 70678401109521682888971407490:0xe45fcd99898a2f42a6be5082 7162708852336740748874466204:0x1724da98ede22d1c535fc39c 7630291595801738297687161032:0x18a7a1183e4956aa8fc438c8 49770007529963163165964545157:0xa0d0c90a6e280fd88612ac85 30824285248784657027165812207:0x6399404b9a2dc0bd17bb75ef 66222204023899594966807934410:0xd5f9b9297979aa7205ccf5ca 63808517649317835616061252499:0xce2d2b30ec6aa8de45f06393 70833535726719324595163595918:0xe4e020a1fca7b9c9c3e5848e 1059542532745738146154153506782:0xd5f910a902fa797178b27f7de 752958080689503326633185309421:0x980f0538fb429c86d0d24f2ed 572472389838990651749559676920:0x739c20fe591f2fc7cef17aff8 688480505348830556362215930348:0x8b099b9e4a7efc3657d6239ec 684664165059373296580850712543:0x8a444ec67046f7e48baa57fdf 861113588188942568835618662842:0xade6877218fddbd834d5769ba 595642750034584711120403549576:0x784a02284a308a6b5f1e7cd88 604058421571233033346568633321:0x79fd16a48c8e72d3f66373be9 962958314444578407142310065737:0xc277c72cab087b4a4eca0b649 254191437991488359738306886158:0x335563ab8e11a068b869e7a0e 16176292709125782899044011836658:0xcc2c6bb643c7adacd1c64584f2 4649460636760900566803540348717:0x3aaf37b29319aa9eb8ffe80f2d 4930375669778011112568853707942:0x3e3ae72aa926519be6b4193ca6 18859436306696603312621233088456:0xee0a20139a9f6de0224c3ba7c8 13528309354455381935873948053036:0xaac05337f7d329daeacea2ee2c 19512677148885086382813386342844:0xf648dc3c8f793508c9f0cb81bc 12119108423436237303304176671727:0x98f6f3877fd8e5958fc22a1bef 4064857068689429343293700948570:0x334e42f5c3ce9305eb0b61c25a 10252865151586827569307764849657:0x8168cb46c99165cae1f49efbf9 7301871624053681460634101797396:0x5c299ea48c7686f3d9acc0d214 269985262693586480188009208134057:0xd4fb16ef9a4cdc0bd04c248b9a9 233464397287634328782986281206995:0xb82bc27285f9a37213ee183c4d3 171143189908431972027087675910800:0x8702178a9a90f6520b31ed6ea90 150154066107699855351875732470807:0x76735f4615b02feb16673eb7c17 260334242158094698031907539017270:0xcd5e14de598aef2e86b12385e36 144185067658509296468045954813004:0x71bdf14963642db4fe0ca780c4c 127804722187778186523802290258301:0x64d1f5462eec5e6949bb872817d 212900490277620468263679199675065:0xa7f2e95f5ef419f387be73a02b9 46347142274797115149419746122387:0x248fbb189757d64215733a35a93 148022102114074172742699755027378:0x74c4d35191d85141df49498bbb2 1481821833015095264245816011769565:0x490f38938722eee83a27bf3fc6dd 811614806423948223533497433784554:0x280404e0bc2057175518e4a100ea 3826170304961598236510376561445134:0xbca50f0897207ddc95f2aedb890e 3822247020605827846968554206669996:0xbc738a37d56e425aa9026d962cac 2175240167852795384017924154469119:0x6b3f640e7e92b43346097ba82aff 3212317594647317806476061054067013:0x9e6125f3a7bd9948fb262a2fe145 2810382396056872855405286447068169:0x8a900347e0e9f1eb3188094b3409 2218432894313635863565165059292514:0x6d608f486d17791402acdc6ebd62 1269155660525578926723695807819803:0x3e92ff1cb2dd66d79666df77f01b 1817839470143550826499378980047604:0x59a05c1e6fb8cdd60fd18d67caf4 63323843018707324485265707207243831:0xc321b44196d14385c6eb6ac343837 79263651109732459723889954359428706:0xf43ffedd62351dcaf1bc6f8dd4662 62204357986938346365633702668742766:0xbfae960df1a7db8066700eae3306e 38467321526448829353081496574829677:0x76895db7785af91e1863938ef246d 54862141179105729469972165637904437:0xa90e992da80dc49187384a98f1835 39657147294813415136240704775305008:0x7a33f91df6ded7e6d8167b750b730 55274702411477363210494813093967428:0xaa540d417698366cb8abd27733644 21396274675698252860091744863673753:0x41eeaf42898cf6133652928885d99 7330463095752368345490602337141018:0x1696b73b9d780b41aacf0be4a811a 66829423112310596456131762561904274:0xcdef1e84a9b467e33be0830d66e92 369969317336371107170088727002962348:0x4740e54a0c1ffba678020939fb59ac 878731925118995889652020173497500280:0xa93cd430b9d50f6600b8a07bd90278 882971627098558725066015137379130700:0xaa0ddcc0aa544f646b5097d63c1d4c 375357866459977654494872065178346247:0x484a925750f63da108720b73502307 643718620481186400552590262474938106:0x7bf9c742316aef41717b7eaaa896fa 276430590134578566620225754555058172:0x353d1491abea66926e5cfed72587fc 1277968100514657807634059564313150105:0xf620b1296ef1a29c13d681602f0299 1111522067543702890473936707121113252:0xd61244deb902098d9ee81eb560e8a4 106196361222453100210742761732997141:0x1473e285b6e42f8884f82ef6448015 816477269753993290142556396827081620:0x9d3f6ff842bb5647657ea1643e7b94 9970926413977916491585651750841818275:0x78054a096d36aa4449bf3a9f54f1ca3 19419193311132868720295451339855394497:0xe9c0026a0148b493a1655485c3e76c1 14239699878888850842587546676596649696:0xab6776895a68dbb033e417589a92ee0 5662964567756045534176482276167412650:0x442a5b5aeb6898f13f046238cd46baa 20766430647404739490644946933315999137:0xf9f781475a4382fd56f9b75948f15a1 4037595822044884781141980938337781254:0x3099cd7ebe8a213c6de74d10b140606 10532581566276378948820565064800963948:0x7ec805d424d3909076835ec8d1e8d6c 6592161645414883393363297457963492002:0x4f59aa9a5bedbaa3cd9eff8fa1b62a2 16692343021863848448147338606222801902:0xc8ed40d394a985e57a8f4796d9c7bee 18210335962511512222056519622491322410:0xdb32ee1c9cab3950940ede66d27382a 276814545086480122186899353213590375617:0xd0408ac9d81e531b5aed7c915e910cc1 220666211386567874644001250719341786141:0xa602c43441f11adce9a832fd16e4b41d 217468283802635356842472908041619705453:0xa39ade337a7f94bebd1e0273c8930e6d 192732780023242430352371618142473957656:0x90fefbb509d19be585fb1a8b72803118 143243432036572617173600914629531132665:0x6bc3ae7769d2204293c2d53803bde2f9 173505542831238374021986182056608811159:0x8287f3b94269567eb0ec10493efc4897 166125398451943613161984358939660371653:0x7cfa96833f7e836c123c6c1a23f3c6c5 117936852268999694147228561167128242748:0x58b9cfc0a32f194c8fe6544d734caa3c 179995269498240891653828219062243547939:0x8769d3f3b5ca32f59a5ce93eaa2fdb23 63324355416013662647374053087284050875:0x2fa3d3c5604fd12df470197fbf303bbb 2319577735170475364259906679581360964830:0x6d10e6bfe5a766aeeaa67a5c4f4cac4de 3580252199635089810224160853795561847469:0xa857b7df1fa7e50b864cd7151cffcbaad 1425702306449254332609107492341219650782:0x4309446c0a8ee93cf8c6a8fca10dcecde 1229368534346174941630862176947703820384:0x39cdfc46dac3ed4871f8ed0756da2b060 3245182249448778085819468892795428877889:0x989675dee8464837d0e7d9f7c57533641 3186463544026795870337666847009453024926:0x95d3a8e3cb7387a2c712868e4e75ea69e 697924692400407041887818418618089442409:0x20d0f6809f8241da720ad6d61bae58c69 1699187033549333512946938908017810204386:0x4fe5384d6cefbae88481ac1e422dfe6e2 4142378394161692783983623101541737846630:0xc2c610f1c94e827e0b27e84684ea45766 4908037292368384655864393527512156763629:0xe6c6599550f2fcd12ebed1d2b805275ed 54308537864307192854024941092297389091699:0x9f9933ee4ddf192968f9a44976a9dbab73 65915755056738952787573312134753377423257:0xc1b580a5a62b52728e6b42de0021d18f99 59894594981325851702372304905704832775787:0xb003af65ed08872eb6cf1ea043359c366b 62248821445778308515514268276738148141765:0xb6eeceec2a86630ab5833c5ecc957a0ac5 45839854655365663451740807535536280033190:0x86b612df6a1a16d075c7c6b61a3f69d7a6 46790828984158478219138978393476780894565:0x898181ddc7c1cbad3ced7739346edda965 24644682595620976151411351464983614775835:0x486c9937d441db1636089d177cd944e21b 22436484958949146968800247992721403995042:0x41ef55d2ab1b9b602b96c41abf31aae3a2 19177488233591026766937100081923186672576:0x385b89e27d0e0234dbe07f952c99bec3c0 65184196328579960830937039417899837082034:0xbf8f238f9de245a001bcec801ced58c9b2 1370998933394342283803823015036300349200614:0xfbd00f5f4680a580a63592aae0f5a68d8e6 232349556507336177921618308988282808587921:0x2aad060d8213ee122b6b26c1f765a985691 845004650189576446493050292502521077904551:0x9b33ed7e508381dfb1424b1dfc06a6934a7 1090610617532502305571050024106146515034371:0xc85043c98e56221048acffbb16a9d56a103 195665882573263585940281820589215687917600:0x23f02a63bf9ce7bf25129e13ab7f4dc4020 973691554900568229782817545047858197503390:0xb2d6c1c37ceab141bac252daf7bad571d9e 391463494586033856332069212303663210186011:0x47e6866a2c1e8be2434ddc0b176239c451b 479524069326877301820840786947036320384381:0x58131d06ac76b1bac7d901d1bbfea8c457d 306316671371660724641976919782873643269256:0x3842f0cfc68914a356f849ab6894ddebc88 1164091286153610841253287445843015268997850:0xd5cf4f299b07826ff50e72b0c74dcee9ada 9133063738478963748015187983327696666395351:0x68d7a97dcb1b6ac9f3d162d5123e7f0682d7 3046638233937577683331810687694900571741985:0x22f943dc720f138095b4542f04c684b51f21 18665667716063813603736024459748788796550831:0xd64577a6a28b7490bab88db25fc2ea826eaf 3417934446408256003856295094568383817072169:0x273c6815d43b1d76e1f09e49e36adaa23e29 15818295575382066760154867363171361734641557:0xb595caefc796c47af8d4c696868104b5c795 21887682731645407543943062937752750251590836:0xfb421e569cc1ac7c97dad0a608489e7c44b4 20822962557311303331694572167724765723344356:0xef092fe7ff7d464b6edae4a955683529bde4 20067578297504078576702558367734434424958087:0xe65d4ff3732992f3bdd52a96f755564c2c87 3412382884554825484640759580553596711237210:0x272c178de869b6805accb19cd49ffe88765a 5205387933161353220201265273140599866832273:0x3bc142a143432614ea06abed7de842f0b591 Math-BigInt-2.005003/xt/author/lib-convert-string-_as_hex.t0000644403072340010010000000456214536617521023233 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2385; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_as_hex'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("0x%x", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_as_hex(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_hex() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_as_hex(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_as_hex() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_as_oct.dat0000644403072340010010000006417314505066136023541 0ustar OSPJADomain Users333:0515 293:0445 478:0736 316:0474 506:0772 434:0662 500:0764 425:0651 295:0447 297:0451 2251:04313 2348:04454 596:01124 3088:06020 1440:02640 4023:07667 1532:02774 2482:04662 1080:02070 3172:06144 18580:044224 8188:017774 30484:073424 28151:066767 6733:015115 8815:021157 24780:060314 27072:064700 22557:054035 19775:046477 157817:0464171 249661:0747475 158979:0466403 259419:0772533 95527:0272447 105032:0315110 170018:0514042 179153:0535721 137191:0413747 98059:0277413 1863132:07066734 578011:02150733 331050:01206452 1986458:07447632 1503636:05570624 1890249:07153711 890356:03312764 1666096:06266060 1528591:05651417 916069:03375145 6098381:027206715 10483725:047774015 5615855:025330357 4817679:022301417 7200063:033356477 5925533:026465235 6375287:030243567 7986612:036356664 12105811:056134123 16251351:075774727 34946459:0205236633 59244148:0341777164 42127800:0240550670 48128848:0267461520 17302095:0102001117 112313984:0654343200 38219110:0221626546 75982013:0441662275 45593242:0255731232 123659749:0727562745 833566485:06153633425 853742442:06270611552 589965819:04312424773 898966470:06545221706 619818384:04474326620 1024469441:07504024701 815603938:06047220342 136718576:01011424360 543084407:04027547567 676975162:05026351072 3332235794:030647361022 4727579536:043162221620 7953438609:073203753621 3091374246:027020520246 6883892681:063223756711 1676449316:014373113044 2877871844:025342153344 2055892756:017242467424 4565272311:042007103367 3700478337:033444150601 61710679100:0713617436074 14487094076:0153737701474 22101576608:0244526645640 54146980256:0623332254640 33029742440:0366056357550 61958646179:0715501364643 34064326051:0375631056643 36657672118:0421075727666 50527950048:0570354652340 9870392838:0111424437006 536548876998:07635463421306 140615130325:02027524116325 278723865400:04034517125470 203606027758:02754767266756 473280532208:06706155747360 100006877017:01351067753531 387234072968:05505074604610 132000514793:01727366001351 122089874077:01615507721235 72763130140:01036101240434 3813320382935:067373346654727 2345956726651:042106572553573 3984324777346:071765420652602 2150921666581:037231473000025 1571505868846:026674503110056 3605304162528:064355467734340 3223310326204:056717421054674 3698685185730:065645264207302 3957088457777:071452466412061 3768498489079:066655400703367 6514098086393:0136625640120771 26931696089033:0607720613333711 20932068805088:0460464041504740 20189552590333:0445627707036775 11783948921241:0253365205564631 17813480829359:0403160614470657 25887452758776:0570554433201370 14313227410976:0320221665357040 30230913759450:0667725670034332 12904351524595:0273620722363363 86633727923467:02354537445012413 251167439597807:07106757201030357 219406357254990:06170620577051516 55400512964187:01446135771243133 184473419094685:05174342047315235 68491512479115:01744535421276613 228110588700007:06367344246762547 177681942117253:05031471502575605 45320418748873:01223377335364711 149903405953452:04205303320630654 1500693867884266:052515760472267352 1148259021020752:040505274303557120 1174820854268754:041307711354301522 1447016640865802:051100672067163012 1700607007921143:060253055447011767 2047432293737288:072142037244361510 2185151671133225:076066110510662051 2097964015487461:073501311771204745 1206861838006899:042232115311335163 1650898700533028:056727571646576444 4547432565729617:0201175664656064521 16021097531688926:0707261516322343736 8079237913867943:0345500305172273247 7620041708668374:0330446146716002726 10280757945316192:0444144557526431540 15085902649767804:0654610615443433574 4929792246317238:0214071726352100266 9981526667700287:0433542250726024077 5108421886992195:0221141244773757503 17529153646534296:0762152604024117230 33322445636494664:01663051316715362510 130227895237894067:07165231225340057663 131928995762186223:07245513437776523757 125666693964393224:06763523047566065410 113007264458906472:06213670103707115550 124750192348252551:06731472162445044607 82392676473602569:04445573174523301011 42178244114592072:02256616167154630510 128372194840906750:07100435230041705776 126121335517701092:07000452767210261744 188996495641927549:012373464767241757575 1026436267297320032:070765045431065326140 578729253859460343:040100363025532702367 684034822835361454:045761340602506253256 545819017506035389:036231070045206313275 867948800567294587:060134455274502435173 559514071627673525:037036261255614627665 873725254476862795:060400607654030312513 886407249394779382:061151153115240342366 700628539013488489:046711037066331457551 1167299814967996997:0100630517750142771105 6438294215924962430:0545313247512352152176 5782451957718079076:0500773126546643053144 7070901584571239333:0610407070344607305645 3457504691349390163:0277734143127110101523 9135129994689694783:0773064005220637546077 5189821308171325385:0440057457564123407711 8776400434985152288:0747140233107567727440 1726966612123485262:0137673257573645102116 6908553546582517653:0577400715436764163625 13739905696708399926:01372557466743352711466 53199509540338828665:05611125001013071502571 47789612748705228243:05134666371410003362723 30955330460342134502:03266273320563141323346 52685423144273663334:05554501623273344652546 51662805856954066986:05463671203224355724052 34454128156951339599:03570455160152067461117 32044273430992098851:03362641016413361313043 69131651665421013098:07375447556503535410152 62296000480837671530:06602076646040371115152 446998227298456557903:060355305566701164354517 411680052620130530696:054504652652740100032610 293609941554304878253:037652500343550342703255 374861876821795782425:050511007255666727737431 396052096314367338988:052741235463452652164754 316183987114046066296:042217571321031731607170 579419725869378130613:076644203054375237651265 232894973495424232708:031200211207326061526404 205262979661725494399:026202304607436330166177 439378600034018945434:057506322714665010464632 4686486095416758601563:0774070172033331323703533 2976528785416421646420:0502556424200130656020124 1863374557014843033173:0312016042160300245303125 1744790831153431588349:0275127262012132266426775 616749100773896288971:0102674347567504153575313 1528231828464389058121:0245541720761066146767111 3773372421238439569374:0631070176416726465063736 782600153901069666846:0124663022131214722505036 3334050451856634747185:0551364765126410124214461 2944191459976877063089:0477153352135524435435661 7728623775853704460135:01505740633202123621233547 30066591240275636623813:06273647057626345460314705 17885007631925352138339:03623061272046361471203143 29921780599308083623873:06254100371652730510273701 27185499406001714237933:05603352274654750501010755 24003375114050241548115:05052346770656263004747523 8380262525163148477971:01614456012341504340203023 37192416451688714095126:07700321665317056402445026 28168488287414847998747:05756021155145551133605433 18495751764632319689802:03725240362263661156402112 279239352466750849307947:073103141731260153617452453 40491530093841059960415:010446063346560341363053137 194271122149482214337198:051106725510346757077425256 69575681192402310455300:016567322122213556611160004 153284709649867010691357:040353122545625541650650435 96248376671616134669619:024303212142721217143362463 290658152578916898577201:075431160524132073617015461 289942226879386458134916:075313462633760573122414604 249091051739572363204321:064576403026202777155413341 198152694263623420567082:051753604133154574145257052 2296728217813602868822945:0746263613337235501147501641 1000477523635244928070625:0323667773074322364410771741 2129675201253694142091606:0702763662127126676227610526 1373684755258064644506091:0442707146142727162014500753 369367036461161606872485:0116156665327357722652176645 501904249192361598990094:0152220442534334267206233416 1135147441494102870093215:0360300735226637551163066637 1699357979424728533044330:0547664605625345334261406152 457546655552062834596370:0140707235456750305373755022 422779614497610905733100:0131415667074262663632143754 9333285294299115200311026:03670314643351503540453367362 16960854455477528840759227:07007463414540751160524363673 18649687424787844035546516:07555163123033134001750106624 17360115244303228205421526:07134113356557723532245451726 19172448525923416248585359:07733731021461130437203506217 15185149797927139987960690:06217451172715657612535031562 16904006773297970122510351:06773440054320203110001550017 7306582513834239802288039:03013165206721357333034223647 11256900308715208089392874:04517573447335250264137353352 11268276922680612605049310:04522115020275602613561534736 122211290680087308514160602:062427176537070052323731167732 69943506089326827632121289:034733072100126424542575152711 145464110815955930840853089:074123162376163140306207065141 137951205501325338691625618:071034233527074475160204361222 71323400890078603709251544:035377242475106020551330777730 50947377788103879949883526:025044415611166403744052214206 66847340596308776814796415:033513363141177423267053457177 47439324557459275001816705:023475525677642571137512563201 44200139438506851178042928:022217574560640452074425553060 122518652980306502118460570:062530252762172613754215546232 1136476691327988723140372365:0726022231613067025127142323615 1057965589739872203808711471:0665440733051410523360232021457 200022063383315591739218243:0122564243442036345641566014503 484403981833675951140249611:0310260420744457340723145020013 1207421336426676779094299153:0763301323466165055500314551021 409824703036491131173032583:0251377603254440606040650251207 1044018443353262020245819514:0657627402341151075016253710172 684930203227016059767858812:0433217471336141641477224323174 462414970750141705164129618:0277200133454721227334112702522 954456477450403533900248452:0612602012507316245704002072604 1612632695206148515791968053:01232760203120036330316617213465 4800214001122140560311949339:03701244664656542375370714714033 8109669853335777851597165341:06432051307240060437264516111435 2039213153933457587027929740:01513314135124612346455445265214 4686578269137243989891968699:03622245432057150376743031267273 8379607477108181114519019168:06611562717100251414234400757240 8169159627569702086333716101:06462536655436235373307401053205 3430200028828774506817667741:02612545070251616701647755041235 9386187424525267356465344217:07452022377547601226417056327331 6884601602550456051476538534:05437317061326106655455740222246 61169129908713999813273057972:061322753061467050405461611375264 29723103221054547413517309971:030005137734416175604656464314023 75310859434307652010961323078:074653656635025664317616414142106 64561758660997508555899477237:064116074133762464374165327216365 75670986567554044887052069874:075100622543041761612506306025762 35571536182698391246750790988:034570025620625734170016372532514 23848361192380260652996209988:023207346725377703006747241326504 30353183349960213311076758242:030411620454771572061331402171342 15596094109480814990636166945:014462311307450243212105770227441 31842537227953212351739363656:031561607423777674376316217100510 144827577652229460945450779797:0164773220370505512577312356642225 89291670283255625594481181822:0110102126522461323536041766102176 418384434539969186896024798556:0521757576126170412277077524302534 129385172986878645185798454204:0150410350063765046501417261735674 350008906509638371346155441705:0432570224722547557370352635407051 234185383451114152523565366211:0275130633706150715540535067775703 566551364352598370064356871238:0711520115765444425716214616006106 496585737526427269712993377901:0621107030151113153105421526157155 82729143779068038669701047094:0102647761475240243063330414261466 328681639947060629852751943142:0411403424430527073502642527052746 1953738500453071455284626967438:03052157234031765255104076775745616 3243808031178723644228297293039:05074247435174772652300535424776357 959728454391433244714089271449:01407206305244570134457701545650231 1006247692486914284089765209489:01454656225121221243321226145622621 1484208522573275483834142418845:02256736203633426656754767037763635 928969670558134463319667497245:01356324663373164272226005764354435 1029499836938267882443101721580:01477477116212143354141453043051754 4393333482575082694631716500878:06734720110002076023712501411632616 2532530399008650877765171045667:03775606013761046744324105156062443 4238036561057846687767994836566:06537352655561141762205516471023126 16508785929236258498473302215912:032027541650235467161075205776146350 38933716024535135633978279857584:075332317421751360136433757365006660 19768641409617726966883944809160:037140766351063343431254057751141310 7730741242735873561606023274308:014144657506645601115426454062757504 30377788061631495399631134521362:057732766526164404402156353317374022 29941475164107127577906189684472:057172417704262445013771553372747370 34610332222944463037046950622472:066466001717040111763003403065472410 36793690658218030168037616440031:072031551623513753323465277206551337 24939142548591145868270243093649:047261533465566643662576360414616221 10035307184227754803080562357717:017652351613155723030525731775432725 193459959367412564717572799871282:0461163553661526471133206573036034462 208806470503545773864134267252177:0511340414055061362077777011153426721 318424914716395214318222373951845:0766305462001666556607302605222414545 115536882851166268087070057127102:0266221746607377611547667573626256276 221610413081172818192441042678501:0535507356475461606110633354304431345 174879964830941955371729865739995:0423722722156475455006611347433207333 311670394939468671442700443266061:0753565256063276553437067716050626015 113755780605726366116757715341380:0263363140110327226320766446352150104 293823030962537519978711427622318:0717444265273661703221260627533122656 98979454983326857155230856875848:0234122757064023325250373413423707510 1662341021286229884927590890978240:05076554304102346205555342130314735700 570927162498613614856646590564260:01604607223777536114515547304741303644 2480023095046906345907060072554240:07510622547350050032130617156045117400 1166482310901275022678118642616398:03460304720166533314265226162532404116 1652625134396388102686641269238870:05057303747375447213221300621105766126 1827908225987088960599648914750308:05503734403020034477533171261313335544 404797224023631715795884267929388:01176520457672214226117626046525377454 497334259283489286460524172415475:01420517324474666645542516134527010763 922053061032106080029206971313563:02656574417724557703577402431545466633 1479466643825646827122939190663799:04436137506261010333712000123300255167 18947419753979275836135815177394577:072305603623145265217614152607673254621 9083067788201154900632029288614043:033772433564347517617345642723467444233 17494307613367658588326500611842705:065721115113721023436244100116424561221 6181709666774060919119574891967243:023031011232311404033301607545456631413 3910354703481126917328674962426444:014031347277354652651442265436220445114 8504836289615271425188897674834718:032152210025665023317376343543645231436 15746496512391379617285494466896508:060413456453257067203537050532607661174 5804824884002705624189345427346711:021706314145517764761163513017232752427 10957055901207115124147153756496767:041607137212043313054143126165165021577 13479496366914568514416905713876429:051422712346660643740034621035651776715 108441546298907250741244320967520937:0516122457372672211316626510501544671251 74275266967377961250655196327192132:0344701552655635421011263654474115023104 23801849933455092704232101613438683:0111260545203731605041411447670332103333 163391571710294792876265429523280679:0767372344412522656131125155547664131447 93411329556011334240536812749983241:0437661057060610601711012417017055407011 22365277002886839882112191658811424:0104726136705452410245013671137426260040 74633776808271288048675049431530001:0345767254620551326606714300267252475021 109404102568245477683870814780831364:0521101172201067136147722506762756133204 46179567588722619210580445359471020:0216232405476571161101353330524425674654 136405263176198901304112220887618821:0644251436056613436604551712127444112405 1214276543452478797731784193102264806:07235616454226713315562631125373713634746 236435995678904747970329887137159717:01330446164233502732521373262624143255045 730270512480070669780128205832991226:04312243556071255511676476220037401030772 1125752208026074249604587771763018049:06614773637474756362207326437641777544501 452090124762055435798176451936078335:02561070346354732024535127515655301644777 1090263287179614077193305447149712376:06437504125522517423532734631014625331770 1119241778643850250991447098901542965:06570734124512617332220530550061141434065 562974954472110282730331470454285785:03306631672446100617667672675151547662731 652031645030883522780843369644721366:03731164430232232605563306455666253102326 306691546959818057578762991097812807:01661041742527416654042362367241502613507 2601183883282492132597247729103937511:017517410427270254644677261027225515417747 3651587858789061758275794766559339886:025764245635360125556364353743506671462556 1659665417006410588839655955730663199:011772172247110160255564135444262263403437 3469895516991146615320853282436904895:024704341654463675614324100736477411673677 2244757938976785083962471581115498997:015405143436352026621646551324171066040765 4303661174746306353713268949988629207:031715534063215525054030374365627741655327 6649230308729897091410255017195022465:050011413534422532412427773641353731624201 7926308502026906322045787010081134717:057550645631443343157770145104567717514175 2384906421451245357678406556270592785:016265036701010660561075637720212030401421 9862112336813450676238148032287318777:073265765566134037035011762456371260321371 43094766950507364659349850205702381486:0403274001567527247412207630532152032157656 79509903611869587500148438632548425271:0736420635046141171051745005235470113457067 36032637532013684367088397584547465129:0330672106076360113355417107266133264043651 37078636758453630878370808106936921764:0337121275724474342003217146044200141667244 57907718595037588305154187955666918357:0534411736475467613074245554030567063715725 60008164623841074487062367241272878590:0551122336103311711062244311512107013162776 75989432340067836295080645105397118794:0711260410610153051773564542062776563333512 52901218390420705881107480066455172514:0476306356033316661154232320304610720572642 57397147428382846840258224047259405709:0531344473265557051040605524334436417046615 45998447191111553991095672644254151065:0424657521302377700100011312657074216330631 480684184864030825605823341049324258223:05515006402311776717732433171400653473041657 668068273149497912738204454566386065106:07664624235323062430175315274422431333357322 662386643553915626417809673067494637523:07622460336366007755475757065551273426777723 208414179804407278143059039604917400639:02346261615052311166176023317047472030772077 533401097664128959537486616284344063812:06212225021377137610143715650170611430713504 537015631339590475780856282215881107538:06240027132071570525715702456010162650764122 85558432455283668679902708333236640179:01002737214747307143376207372231657105554663 631031563830108854325826517520792254019:07325704105252022154555356764377754312273103 219022329271726313386571069205785655502:02446142521673230576715104332703130533134316 256976793531695108412485537010342578653:03012476703735312172647731376242360215444735 3478379440380456162103545319145919600986:050706570144051521525644664237335504017354532 1057706740043911331558038857729659295046:014335656420643166224632116052357172075552506 3508239833467424178813492089825073582298:051172346505413631673356373163453207073050332 1866580561662889429154132716306134259676:025742045337052245522670327237274101024153734 4038566927021840250792540321954083508477:057362173123542312156761100131726725707410375 5056432001165827841899711711462237166645:073340226053203174405176711045366675401056065 4080934523681286061006782510481960350939:057761166314776676155413645500400535457032333 2187986964939249525677237489397692442896:031560357303430244117141614442741103575224420 4021004810971868927502297751988788879356:057210425556123206713512743411340336231257774 912792644033612798071550372946188068501:012565527376716212623444306427320717700463225 26888069666684188598763778851029518594568:0474042535501637672711037302135126342014631010 38343823088522572717779204678685800742726:0702565373236374121464337727404704672752637506 14338152675194705605638367884779464635666:0250426474105064312411555517055056147246632422 34839716232308968583238163633152589986758:0631423724311246251021101315311052070274475706 40846748771519167585456655102814690404714:0740115332426361413666252406622314540556564552 37028634345163550052557267088778409228674:0663211771061176420040633054024776617351634602 13225816272781839519456029832506772423077:0233357770752357045540557242225671426033400645 9521580366792998846406970425404660709294:0157731732626441565266712331123540165112173656 25710449445872119044891282805938332406656:0456163107117011763141664720133065073216111600 17084041530885653072514200999050390799787:0310644653345615077454777052247277145741002653 311378110040935943361164371352818448901434:07114166651661632125342245653527045352053122472 86126160984632281807483920467017344536113:01764320763713060602003742703137244706125147061 172283136126063289816894241439399912425387:03751133321175342311551535432530107715062043653 93431826237593233431396214626161322099399:02112222263034365656734122642233625107013001307 102361938713520163684030918051418766489870:02263204404543346517241737401061604406125534416 218235644051324072857479721380418013456703:05005262002713505522314707450263612245526264477 184479551042866806577540349096788134018467:04170427722274704272171234726040473176441236643 251518384416297335569188496238876074047164:05614453154764567430041463024321350120214373274 214998089550819479748955725806961581164697:04737224535657543751755112152236250375506204231 150015752698098977225972048776162998216803:03343332360315525641040416777150076415024764143 2368990450742659282848721380961796104471727:066307262513221445674334336105402621704634242257 530906973560137026300117865284739818287341:014140620074715460472541161227001232372050670355 1146593903023907822413615671580176280500053:032246113023010524741543001062345611525460133525 1207430211580445871799875658315591548897326:033561214200305061400762560153136675735742704056 1532464304572755159701211722713317845695481:043136020024470233477265420054741145130313575771 2200628147079152444065840541179954270193673:062414204707677312667217156504050551623045444011 2239207197054333974692917929431592345285511:063321602063773276736056301307570446003036031607 1290586968438238372312482850511124303224562:035502615615271205171542651767715416604271117362 734634815156464869063641691340452229005639:020673456355726314262732520405611363755156740507 1962058454618045274040848069086938283475872:055027705620475037342444675333143461745520301640 11302155054705041860280107262446024787233510:0403370143331425552004151325457022553363175005346 14776179888199853727809196898130372992960126:0523175121660423541727756564415555546320333003176 14457508832410227837375125007285284174584095:0513733146142417637417631475047246365533441054437 13154776477752541466465841689867470346301068:0456011517020267705605673135140620376631216527214 18610629314047269155475214273767689709632291:0653216712677550033305145272145407240555345635443 6980841073828946103196808130079362521179325:0240213310741601343674251735547625154122063622275 9641170578028886139670610409034463612846034:0335263324570214066011177167153221574151644237722 5428095766352699429202556552997669280794514:0174476753033676524173130275007136103630342343622 20501096798159725893228979370273489681765977:0726535170132127570750266474004062011567511353131 15202000030725106885022337836341977195423974:0535012515465777240673516100466112526107667624346 90707602009417177924448077699690384999574556:04042426571425460152707511353235410075554756766034 120597025986702317359580460492263262848968418:05320613164462737577356446062463601610441721463342 137944027767875404151548007991642756903596334:06137024201714035121622260506647417536312643770456 49894291198707028153190416989822884618930253:02171410446065551447267557324650027237775240704115 40303534573500842067950616400949410254708780:01635245613237464341411220564135744703554440460054 33091849018465568028181066476745983430413717:01367600641537537462133133133605026660613127546625 43772841933315395800891259706555223939658583:01754763221360366712262177505034762607563212531527 104536367884632041528642776748658707161471120:04540023062552307050154466300322630410762657154220 130821546454632705962444234363209166185537176:05673407706614654320736036201370121771037243717230 42520754683440163632830200041781100060413398:01720165043344346275141613427625704306605423206726 773119347518638328937190113371695105921991087:042525746202522016050212501300255107316275007640657 1339043388829644219739736547312602834410015310:074026733310041170665113367540171002375542635405116 872656875461660218167626289926619323418701338:047103160213653162055072417501344472630416041467032 368128919279936514569612750658396160633011898:020403646514571647004316445500465776607144236577272 1258240463987015689114597845353819407266491500:070327621445663516147621506623144126544273675426154 437158182842442534379575030563340485901141820:023464521574520213474575513216565217003613764743474 525692081932959140098578640123645248195804977:027445230563503100717443556150572652775503210037461 644295353553103476419431350197267039787609292:034710227367473762066432740561006217732604541566314 657470360402992274241715157994377590279160322:035366616743613402562146421247714166414466331541002 496810834382113386449812302914876443395818808:026216157225564020220543066403743402276207234602470 11334018646622561170232033890698918811841495756:0774170234723025711343115325654372147035425673501314 4851872104099164823396002954096903150833024156:0331441412374242544612740374757233670254114673136234 7119881662454246795653881422984088122988044630:0477210356564326567062013253120043566220271666420526 9071790624605721615780989211040745070823039554:0626626062237037213225614513225327406712247423261102 10252613752268522020385241976689463014979146042:0713574357360320411411644556173467552356502036410472 3655919425363778392509471921543889460220782917:0243737626241530077036221202051775000435370553364505 2104054031105194403474721356234820404273278180:0136262554214166525131413435376034410407117032166344 6295462823560579087001658801315334651887117021:0432230571662563062541562610524407301332304717461335 4830948073396715443223444786269425031559102687:0330501101543227227662231204330103475241341115340337 4556628504486465030629725405672903131888571710:0314247036520776204072024724164221032726324162652476 Math-BigInt-2.005003/xt/author/lib-convert-string-_as_oct.t0000644403072340010010000000456114536617521023233 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2985; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_as_oct'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("0%o", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_as_oct(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_oct() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_as_oct(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_oct() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_str.t0000644403072340010010000000451714536617521022574 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 11877; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_str'); use lib "t"; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; push @data, 0 .. 250; # small integers for (my $n = 3 ; $n <= 250 ; ++ $n) { push @data, "1" . ("0" x $n); # powers of 10 } for (my $n = 4 ; $n <= 250 ; ++ $n) { for (1 .. 10) { push @data, randstr($n, 10); # random $n-digit integer } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = $data[$i]; my $out0 = $in0; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_str(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_str() in list context: $test", sub { plan tests => 3; cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = $data[$i]; my $out0 = $in0; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_str(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_str() in scalar context: $test", sub { plan tests => 2; is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_to_base.dat0000644403072340010010000000111514505066137023671 0ustar OSPJADomain Users# Base 2 0:2:0 1:2:1 2:2:10 0:2:ab:a 1:2:ab:b 2:2:ab:ba 250:2:11111010 250:2:01:11111010 # Base 8 250:8:372 250:8:01234567:372 # Base 10 (in the last case, use a truncted collation sequence that does not # include unused characters) 250:10:250 250:10:0123456789:250 250:10:012345:250 # Base 16 250:16:FA 250:16:0123456789ABCDEF:FA 250:16:0123456789abcdef:fa # Base 3 250:3:100021 250:3:012:100021 15:3:-/|:/|- # Base 4 250:4:3322 250:4:0123:3322 # Base 5 250:5:2000 250:5:01234:2000 250:5:abcde:caaa # Other bases 250:36:6Y 250:37:6S 16:3:121 44027:36:XYZ 125734:62:Why Math-BigInt-2.005003/xt/author/lib-convert-string-_to_base.t0000644403072340010010000001475314536617521023403 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 17739; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_base'); my @data; my $max = 0x7fffffff; # 2**31-1 (max value for a 32 bit signed int) # Small numbers and other simple tests. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, 2, sprintf("%b", $x) ]; push @data, [ $x, 8, sprintf("%o", $x) ]; push @data, [ $x, 10, sprintf("%d", $x) ]; push @data, [ $x, 16, sprintf("%X", $x) ]; } my $collseq = '0123456789' # 48 .. 57 . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90 . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122 . '!"#$%&\'()*+,-./' # 33 .. 47 . ':;<=>?@' # 58 .. 64 . '[\\]^_`' # 91 .. 96 . '{|}~'; # 123 .. 126 for my $base (2 .. 94) { # Zero is converted to "0", regardless of base and collation sequence. push @data, [ "0", $base, "0" ]; push @data, [ "0", $base, $collseq, "0" ]; # Increasing integer powers of the base, with a collation sequence of # "01..." gives "1", "10", "100", "1000", ... for (my $pow = 0 ; ; $pow++) { my $x = $base ** $pow; last if $x > $max; push @data, [ $x, $base, '1' . ('0' x $pow) ]; push @data, [ $x, $base, $collseq, '1' . ('0' x $pow) ]; } # b^n-1 gives a string containing only one or more of the last character in # the collation sequence. E.g., # b = 2, n = 4, 2^4-1 -> "1111" # b = 10, n = 5, 10^5-1 -> "99999" # b = 16, n = 6, 10^6-1 -> "FFFFFF" for (my $pow = 1 ; ; $pow++) { my $x = $base ** $pow - 1; last if $x > $max; my $chr = substr $collseq, $base - 1, 1; push @data, [ $x, $base, $chr x $pow ]; push @data, [ $x, $base, $collseq, $chr x $pow ]; } } # "123" in base "10" is "123" # "10203" in base "100" is "123" # "1002030" in base "1000" is "123" # ... for my $exp (1 .. 100) { my $sep = "0" x ($exp - 1); my $x = join($sep, "1", "2", "3"); my $base = "1" . ("0" x $exp); my $str = "123"; push @data, [ $x, $base, $collseq, $str ]; } { my $collseq = '-|'; for my $base (2 .. 100) { for (my $pow = 0 ; ; $pow++) { my $x = $base ** $pow; last if $x > $max; my $str = '|' . ('-' x $pow); push @data, [ $x, $base, $collseq, $str ]; } } } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, @got); # Collation sequence. Make an escaped version for display purposes. my ($cs, $csesc); if (@in == 3) { $cs = $in[2]; ($csesc = $cs) =~ s|([\@\$`"\\])|\\$1|g; } # We test with the base given as a scalar and as a reference. We also # accept test data with and without a collation sequence. for my $base_as_scalar (0, 1) { # To avoid integer overflow, don't test with a large, scalar base. next if $base_as_scalar && $in[1] > $max; my $test = qq|\$x = $LIB->_new("$in[0]");|; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= @in == 3 ? qq| \@got = $LIB->_to_base(\$x, \$b, "$csesc")| : qq| \@got = $LIB->_to_base(\$x, \$b)|; $x = $LIB->_new($in[0]); $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); @got = @in == 3 ? $LIB->_to_base($x, $b, $cs) : $LIB->_to_base($x, $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_to_base() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = @{ $data[$i] }; my $out0 = pop @in; my ($x, $got); # Collation sequence. Make an escaped version for display purposes. my ($cs, $csesc); if (@in == 3) { $cs = $in[2]; ($csesc = $cs) =~ s|([\@\$`"\\])|\\$1|g; } # We test with the base given as a scalar and as a reference. We also # accept test data with and without a collation sequence. for my $base_as_scalar (0, 1) { # To avoid integer overflow, don't test with a large, scalar base. next if $base_as_scalar && $in[1] > $max; my $test = qq|\$x = $LIB->_new("$in[0]");|; $test .= $base_as_scalar ? qq| \$b = $in[1];| : qq| \$b = $LIB->_new("$in[1]");|; $test .= @in == 3 ? qq| \$got = $LIB->_to_base(\$x, \$b, "$csesc")| : qq| \$got = $LIB->_to_base(\$x, \$b)|; $x = $LIB->_new($in[0]); $b = $base_as_scalar ? $in[1] : $LIB->_new($in[1]); $got = @in == 3 ? $LIB->_to_base($x, $b, $cs) : $LIB->_to_base($x, $b); diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; subtest "_to_base() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } } Math-BigInt-2.005003/xt/author/lib-convert-string-_to_bin.dat0000644403072340010010000010655614505066137023546 0ustar OSPJADomain Users385:110000001 434:110110010 385:110000001 360:101101000 283:100011011 391:110000111 364:101101100 450:111000010 370:101110010 367:101101111 865:1101100001 939:1110101011 621:1001101101 821:1100110101 595:1001010011 615:1001100111 744:1011101000 850:1101010010 614:1001100110 1020:1111111100 1894:11101100110 1991:11111000111 1392:10101110000 1593:11000111001 1522:10111110010 1530:10111111010 1924:11110000100 1132:10001101100 1944:11110011000 1178:10010011010 3071:101111111111 3704:111001111000 2487:100110110111 3638:111000110110 3423:110101011111 2667:101001101011 3238:110010100110 3876:111100100100 2859:101100101011 3572:110111110100 4789:1001010110101 7323:1110010011011 5109:1001111110101 4187:1000001011011 6282:1100010001010 7756:1111001001100 7020:1101101101100 5379:1010100000011 5268:1010010010100 6155:1100000001011 16364:11111111101100 15609:11110011111001 12129:10111101100001 12491:11000011001011 10995:10101011110011 14056:11011011101000 9610:10010110001010 11207:10101111000111 10409:10100010101001 9845:10011001110101 17529:100010001111001 26732:110100001101100 30593:111011110000001 25340:110001011111100 23253:101101011010101 26742:110100001110110 26850:110100011100010 31370:111101010001010 32612:111111101100100 31739:111101111111011 63000:1111011000011000 33103:1000000101001111 38726:1001011101000110 46285:1011010011001101 37785:1001001110011001 61360:1110111110110000 55090:1101011100110010 58311:1110001111000111 55720:1101100110101000 53078:1100111101010110 78331:10011000111111011 108576:11010100000100000 115325:11100001001111101 118448:11100111010110000 111840:11011010011100000 92059:10110011110011011 85915:10100111110011011 97791:10111110111111111 106697:11010000011001001 101438:11000110000111110 132897:100000011100100001 197049:110000000110111001 136861:100001011010011101 236531:111001101111110011 162668:100111101101101100 256924:111110101110011100 249554:111100111011010010 235586:111001100001000010 211239:110011100100100111 156302:100110001010001110 343747:1010011111011000011 506006:1111011100010010110 356371:1010111000000010011 373950:1011011010010111110 350547:1010101100101010011 330862:1010000110001101110 456698:1101111011111111010 399322:1100001011111011010 383349:1011101100101110101 342493:1010011100111011101 808120:11000101010010111000 572878:10001011110111001110 615249:10010110001101010001 969938:11101100110011010010 836526:11001100001110101110 913681:11011111000100010001 758137:10111001000101111001 962414:11101010111101101110 936274:11100100100101010010 671422:10100011111010111110 1569772:101111111001111101100 1653453:110010011101011001101 1071137:100000101100000100001 1205669:100100110010110100101 1471785:101100111010100101001 1611189:110001001010110110101 1683433:110011010111111101001 1633840:110001110111000110000 1699175:110011110110101100111 1990384:111100101111011110000 3484093:1101010010100110111101 4031705:1111011000010011011001 3172456:1100000110100001101000 2919790:1011001000110101101110 3754410:1110010100100110101010 2926367:1011001010011100011111 4132205:1111110000110101101101 2251849:1000100101110001001001 3370516:1100110110111000010100 3606789:1101110000100100000101 7635369:11101001000000110101001 4509091:10001001100110110100011 5160110:10011101011110010101110 6060642:10111000111101001100010 6495561:11000110001110101001001 7507693:11100101000111011101101 4422813:10000110111110010011101 4462041:10001000001010111011001 5200263:10011110101100110000111 4267197:10000010001110010111101 11024005:101010000011011010000101 15843377:111100011100000000110001 12111250:101110001100110110010010 16411453:111110100110101100111101 15472773:111011000001100010000101 14177079:110110000101001100110111 16377760:111110011110011110100000 11020803:101010000010101000000011 9900572:100101110001001000011100 12949294:110001011001011100101110 29546748:1110000101101100011111100 27509049:1101000111100000100111001 18731096:1000111011101000001011000 20399566:1001101110100010111001110 24274057:1011100100110010010001001 25003588:1011111011000011001000100 23140792:1011000010001100110111000 24943077:1011111001001100111100101 28128096:1101011010011001101100000 27864090:1101010010010110000011010 54064948:11001110001111011100110100 51555050:11000100101010101011101010 58132750:11011101110000100100001110 35672094:10001000000101000000011110 45403105:10101101001100101111100001 52795361:11001001011001011111100001 56646650:11011000000101101111111010 48608267:10111001011011010000001011 54590201:11010000001111101011111001 64872763:11110111011110000100111011 84627400:101000010110100111111001000 69969224:100001010111010010101001000 131866365:111110111000001111011111101 103330514:110001010001011001011010010 133525060:111111101010110111001000100 130415428:111110001011111101101000100 132177236:111111000001101110101010100 130266639:111110000111011011000001111 78654968:100101100000010110111111000 118184662:111000010110101101011010110 172641632:1010010010100100110101100000 190332102:1011010110000011110011000110 206031460:1100010001111100101001100100 162125518:1001101010011101011011001110 201697689:1100000001011010100110011001 242880725:1110011110100001000011010101 255004622:1111001100110000111111001110 162991882:1001101101110000111100001010 189793791:1011010100000000010111111111 178792952:1010101010000010100111111000 312529947:10010101000001101010000011011 303539056:10010000101111010001101110000 325248226:10011011000101110010011100010 381328868:10110101110101001110111100100 463322519:11011100111011011110110010111 491029178:11101010001001000001010111010 383979693:10110111000110001000010101101 532888951:11111110000110011110101110111 406831163:11000001111111100000000111011 494876280:11101011111110011011001111000 829144441:110001011010111011110101111001 857555366:110011000111010100000110100110 868823130:110011110010010011000001011010 579909652:100010100100001011100000010100 641443890:100110001110111010100000110010 913297118:110110011011111100111011011110 1003266513:111011110011001010000111010001 956889187:111001000010001111100001100011 940295968:111000000010111100011100100000 1070704980:111111110100011010100101010100 1954678323:1110100100000100000011000110011 2136677878:1111111010110110001110111110110 2005463461:1110111100010001111000110100101 1324072528:1001110111010111011111001010000 1741868857:1100111110100101100111100111001 1375668323:1010001111111110000100001100011 2073481752:1111011100101101101001000011000 1860789144:1101110111010010110001110011000 1322103612:1001110110011011011001100111100 1101024859:1000001101000000100111001011011 2844172736:10101001100001101010000111000000 3337120992:11000110111010000110110011100000 3826211106:11100100000011110101100100100010 2607215350:10011011011001101111001011110110 4160567033:11110111111111010011011011111001 3029555306:10110100100100110101100001101010 3861183498:11100110001001001111110000001010 4208088148:11111010110100100101010001010100 3526441565:11010010001100010011101001011101 2377542914:10001101101101100110110100000010 7769960116:111001111001000000010111010110100 4396349826:100000110000010101111100110000010 6401445633:101111101100011100100111100000001 4582501339:100010001001000110110101111011011 5568465534:101001011111010000000101001111110 8432383836:111110110100110111111011101011100 8376405519:111110011010001011100111000001111 7718711390:111001100000100100011000001011110 4662746017:100010101111010111101101110100001 8078353112:111100001100000011110001011011000 14935663736:1101111010001111000010010001111000 16016932712:1110111010101011101111111101101000 11629057547:1010110101001001010101011000001011 16067464996:1110111101101100100000111100100100 9505685168:1000110110100101010011111010110000 13868610391:1100111010101000100011001101010111 16046661400:1110111100011101001001111100011000 11464045850:1010101011010011110111010100011010 15614515478:1110100010101100101001100100010110 15466932518:1110011001111001101010100100100110 29858208639:11011110011101100000001101101111111 24613306669:10110111011000100010100000100101101 20218881744:10010110101001000111010011011010000 34247513315:11111111001010011111001010011100011 22521262663:10100111110010111110011001001000111 28516160848:11010100011101100100001010101010000 33517689161:11111001101110011110101100101001001 27834175072:11001111011000010111100111001100000 25577503126:10111110100100010011011100110010110 33252018878:11110111101111110011000101010111110 36745154818:100010001110001011101001000100000010 62958087646:111010101000100110000010110111011110 53685577621:110001111111111010001110011110010101 40738240212:100101111100001100000011011011010100 49935701427:101110100000011001100101010110110011 42629095418:100111101100111001000101111111111010 57319938020:110101011000100010001101011111100100 39245526294:100100100011001101110011010100010110 56214831113:110100010110101010100100000000001001 45980674835:101010110100101010010110101100010011 76526826008:1000111010001010110101011001000011000 70164221149:1000001010110000111010000110011011101 136332331993:1111110111110000010100100101111011001 116572419179:1101100100100010000011111010001101011 95634986096:1011001000100010010100001010001110000 136778158797:1111111011000100111010001001011001101 95461276499:1011000111001111011110111101101010011 69516521234:1000000101111100000011110111100010010 84390704800:1001110100110000100111111011010100000 71582798753:1000010101010101010101101001110100001 161250871434:10010110001011010011010000100010001010 157111025264:10010010010100100010111111111001110000 232663118771:11011000101011110011010111001110110011 262238081083:11110100001110100110111001000000111011 211227798955:11000100101110001010000110110110101011 153599642884:10001111000011010000001000110100000100 143628438175:10000101110000111011000000101010011111 258598277838:11110000110101101010001001001011001110 187460373222:10101110100101100000100100101011100110 177504599067:10100101010100000110010011110000011011 420212169211:110000111010110100110001101100111111011 494784462475:111001100110011011100111011111010001011 542526521264:111111001010001000110011011111110110000 473485577619:110111000111101111100001000110110010011 316792961872:100100111000010010101001111101101010000 355026856504:101001010101001001111111110101000111000 317504196479:100100111101100101110011000111101111111 378724463722:101100000101101101111001011010001101010 506446716758:111010111101010100100111001111101010110 430709732980:110010001001000010011001111011001110100 965872895844:1110000011100010100000101100011101100100 608003195284:1000110110001111110100001000000110010100 1055936070119:1111010111011010101100011100000111100111 582171820978:1000011110001100001001010000001110110010 964715950704:1110000010011101100011010011001001110000 742736008411:1010110011101110100001000001010011011011 938182414998:1101101001110000000001111001001010010110 818964069157:1011111010101110000011111111101100100101 900038948724:1101000110001110100000000111011101110100 725700781189:1010100011110111001000110010010010000101 1839268849640:11010110000111100111101110110011111101000 1527861226809:10110001110111011101000000010110100111001 1594884227772:10111001101010110100000100000001010111100 1607510277059:10111011001000111000101000011101111000011 1168278209459:10001000000000010110011101100001110110011 1496165672458:10101110001011010011011000110011000001010 1164213373942:10000111100010000100001100100101111110110 1558650473618:10110101011100110110011101100110010010010 2172724482110:11111100111100000011110001001000000111110 1443398324389:10101000000010001001111101001000010100101 4176693651137:111100110001110110010101110110011011000001 3314504161200:110000001110110111110101111101011110110000 2361614062452:100010010111011011001010101101001101110100 3266105495203:101111100001110011000011101100111010100011 4181380934797:111100110110001101101110011010110010001101 3982602267520:111001111101000101100101111110101110000000 2456786231471:100011110000000011110111101110000010101111 3424440077954:110001110101010000100010001100111010000010 3402385035708:110001100000101101111100111001000110111100 2256924101236:100000110101111011001010001100101001110100 8539693469045:1111100010001001101011001010100110101110101 6787959006615:1100010110001110001111000101010010110010111 4626459601434:1000011010100101110011110110010101000011010 4529973487621:1000001111010110111011101011110100000000101 5133436256548:1001010101100111000101001010000000100100100 8590502525639:1111101000000100001110110011111101011000111 4747751425446:1000101000101101100000010011000010110100110 7420761693364:1101011111111000111110111010101110010110100 7050540499693:1100110100110010100111101100100001011101101 4933810792890:1000111110010111110000010100010100110111010 15863400124986:11100110110101111100010101000101001000111010 13033058886931:10111101101001111110110110000110010100010011 13221601877768:11000000011001100100111000100001111100001000 10718745445385:10011011111110100111000000111100010000001001 10837729279342:10011101101101011011000000001111110101101110 9497072675386:10001010001100110101101001001010101000111010 10832960843735:10011101101000111110110010000110111111010111 15697060841568:11100100011011000001101111000100100001100000 13484683932667:11000100001110100101110010111011001111111011 13951987995615:11001011000001110011010010011101001111011111 35004009912357:111111101011000000001100100111001100000100101 33402275187717:111100110000100010010101111110100110000000101 24057151640906:101011110000100111101111110100101010101001010 30219030064282:110110111101111101010100011010110110010011010 24328928271954:101100010000010000101001000001001111001010010 30732702313100:110111111001110000011110011011110101010001100 17904182006306:100000100100010100100011010001001001000100010 33741753194661:111101011000000011101001101101001100010100101 27778155817745:110010100001110011011000111000010101100010001 33360816916400:111100101011101101011101001000100011110110000 44691248504408:1010001010010101111101111111011101111001011000 36313918181099:1000010000011011111110001100011000111011101011 65716842040614:1110111100010011100101000001101000110100100110 36908834381194:1000011001000110000001111101100101110110001010 53657347545972:1100001100110100010011001000111101101101110100 51085312145931:1011100111011000111001111000100011101000001011 52274858882635:1011111000101100110000011001001111011001001011 42387648580040:1001101000110100100100101111001000100111001000 64689542361198:1110101101010110110101001100010111000001101110 62064864877547:1110000111001010011010001110010101101111101011 127901800723207:11101000101001101110101011001011111001100000111 77435580126596:10001100110110101100000001111110001010110000100 132353269859353:11110000101111111100101101000101000010000011001 73542035879575:10000101110001011010110111011001011011010010111 129116357953129:11101010110111000111110101001101000011001101001 93049885020756:10101001010000011011101010101111101001001010100 95289738614330:10101101010101001011111000001010101011000111010 71525011399490:10000010000110100110110111001011010001101000010 138398248120551:11111011101111101011010011010101011000011100111 137864110402418:11111010110001011111101010100111110101101110010 236098935243402:110101101011101100010001001010101100001010001010 182408642131510:101001011110011001010010010100010111011000110110 174077480821500:100111100101001010010010011010000110001011111100 241311779039406:110110110111100011000110110111101010100010101110 198347227233672:101101000110010101010000000001010111110110001000 232557145403077:110100111000001001101110000010101010111011000101 183219363354454:101001101010001100010101000100011001011101010110 213736753175943:110000100110010001110111001111111001110110000111 183211798240568:101001101010000101010010001001110001110100111000 152772841986561:100010101111001000110010111110100101101000000001 486926746024203:1101110101101101101110111101110100111100100001011 434772084158358:1100010110110110001000011101000100110111110010110 338691840946060:1001101000000100111010110110111100010111110001100 474131994781080:1101011110011100001110101001000000010010110011000 396684884684764:1011010001100100001100101101000111010111111011100 309570608022847:1000110011000110110000110000111111100010100111111 398321129629308:1011010100100010101011101011100000010011001111100 288229309872552:1000001100010010010011101101000001111100110101000 375215717683059:1010101010100000110110111100100010000111101110011 551407987807979:1111101011000000010101101001111010101011011101011 686972929223373:10011100001100110001011001011010101010101011001101 597422349003256:10000111110101101000111010111001001010100111111000 769792401191442:10101111000001111101000010100111111011001000010010 773698452992826:10101111111010110010110101011101000011001100111010 740358052563527:10101000010101101000001010101110101100101001000111 970607622197848:11011100101100001100110010100010011001001001011000 704929793248036:10100000010010000101000001111010110000101100100100 868485877506010:11000101011110001000100000001110001001111111011010 765046660475310:10101101111100111001001110011011110010100110101110 828579424431864:10111100011001011010101110010000101110111011111000 2074490241015468:111010111101011110011100101111001111101111010101100 1162858693660235:100001000011001110100100011010111000000111001001011 1193692265601909:100001111011010100000100011011101100101101101110101 1813913666078890:110011100011011111010101111101110000100100010101010 1438836607342736:101000111001001110101000000110111101101100010010000 1583735318531360:101101000000110011000011101000101000100110100100000 2247974690474493:111111111001000010101100100111000111100100111111101 1425686428348294:101000100001010011101111101000111110110111110000110 1477608976560326:101001111111110000010100110001010100011000011000110 1212353282764395:100010011101010000011111110110000101110111001101011 3550213195317577:1100100111001110011001101100011000100100000101001001 3336407288700038:1011110110100111000111011011010001001101110010000110 2883433157150913:1010001111100111011110011001000100001100100011000001 4100378148540751:1110100100010100010110101110111111010001000101001111 3656731103146784:1100111111011100011100001110011100010011001100100000 2256851051097427:1000000001001001100000010101001101100010110101010011 2977094502091241:1010100100111010011011010100010000101000100111101001 2528377550703703:1000111110111000101111000101110001001000110001010111 3547290101927204:1100100110100011110111010110011100001100110100100100 2399453771959567:1000100001100100101001011101101110111000110100001111 5462538764794667:10011011010000010011001101010101001011011101100101011 4790275026803794:10001000001001011101011010001010110010101110001010010 8082531891515420:11100101101110000010100011010010001111001000000011100 8385115362909591:11101110010100011011111001110100110110101110110010111 6353517215616128:10110100100100111110110000000101101100000110010000000 7871940669158018:11011111101110111110100000011010001110011001010000010 8331742115341009:11101100110011010110011100001001001010010001011010001 4736003017689603:10000110100110101111010100001100001100100101000000011 6646781215069830:10111100111010011011001011001001110010101011010000110 5718506375737000:10100010100001111001110000101001010111110111010101000 13588501805699781:110000010001101010101110011111001010001001001011000101 11579596443485861:101001001000111001010011100100101010000000011010100101 12104586884766769:101011000000010000111011000001011010110101110000110001 17819209649242927:111111010011100111101000001101010100100100001100101111 17559162024838944:111110011000011111011011111111000010110100011100100000 15416744325758886:110110110001010111001010000001001000010011111110100110 15128108755606840:110101101111101110111101001100100000000101110100111000 16571250989680898:111010110111110111011100001000101110010100100100000010 9569377577705905:100001111111110100110001010111001111011010000110110001 16305283236392450:111001111011011001000110010111010001000110111000000010 20496908303619793:1001000110100011101010001011010011011100101011011010001 29259960924064740:1100111111100111100011110001001000001010100101111100100 19973933329510357:1000110111101100010111111000000110111110110111111010101 21463166231614461:1001100010000001010001011001110111111011001001111111101 23952889346012087:1010101000110010000011010100100110100000011001110110111 32258896427405464:1110010100110110100101110011110011001101101000010011000 20713595544999867:1001001100101101110011111001000011110110001011110111011 26665612607487473:1011110101111000011101110111111001011111111110111110001 28582577339726035:1100101100010111011001111100001000110010111100011010011 35042242646798763:1111100011111101011101111101001000110000111000110101011 38425031067558799:10001000100000110101110010110111010000111110001110001111 38069847938145327:10000111010000000101001100110011000000011001110000101111 36029498600004395:10000000000000001010001101011001011111010001101100101011 61343392169259965:11011001111011110111110101111011100100001111001110111101 66409018964977551:11101011111011101010011010100001010010100010011110001111 41052543338300926:10010001110110010001001000010110110011100100010111111110 37246210244785240:10000100010100110011101100011010110111101011010001011000 54917948461581101:11000011000110111001010101001001110110001000001100101101 38038290864684389:10000111001000111001111110111110110110100011110101100101 57010637817502938:11001010100010101101111101111111100001111101110011011010 82618932321139160:100100101100001010111101100110000101110010011100111011000 137190223992707984:111100111011001011100100000100111101111011101101110010000 118985073123982883:110100110101110000100101100101001001000001111111000100011 98754716389812832:101011110110110001110010000101110010011110010101001100000 83284127396603723:100100111111000100111100011111100111001110010011101001011 141839136619662819:111110111111010011111000101111001011101101000110111100011 125186680462584777:110111100110000001001111101100011100101010010101111001001 137149390843175370:111100111010000001010010011110010010111100110000111001010 92167766804994185:101000111011100100001100001111000001001110001100010001001 125030498479009024:110111100001100101001001101101111111011100110110100000000 183460794190365836:1010001011110010001001111011001011111011011000010010001100 148171872852216306:1000001110011010011000100010000111000011111000100111110010 203219275392068069:1011010001111110101101101010110001010000011010100111100101 222792840334344389:1100010111100001001110100001101010101000010000000011000101 257606149837745246:1110010011001100110110110110101101000010001110110001011110 146360709891849496:1000000111111110100100101001001010001011010111110100011000 265506175155360825:1110101111010001000111010110100111110011101101010000111001 190592798158921980:1010100101000111110010001111011111000000101010000011111100 200855727196994451:1011001001100101010011100000111110101011011111101110010011 208193247667057074:1011100011101001101010011111011011110101000111000110110010 549552582785656655:11110100000011001110010100110010010010101100110011101001111 349368022696385289:10011011001001101000101110110011000101100101101101100001001 476227196887220275:11010011011111001100001110011000110110101111100000000110011 556541951288425930:11110111001001110111111010010111101001001100011110111001010 396097981091145526:10101111111001110010000001111100011001011111110011100110110 504020956439166024:11011111110101001000110001110110011111010001011110001001000 464178325876243946:11001110001000101111011101001100010010010011111110111101010 465069668170575300:11001110100010000100110011000101111000111011010110111000100 416129463448023841:10111000110011000111000101011010001011001001011001100100001 367391406473251137:10100011001001111001000100110100100010111101000100101000001 1088518387515185497:111100011011001100011011010011001011010100101101100101011001 1139583174269170480:111111010000100111001101101111110110010100110111001100110000 702247106580307364:100110111110111000100000010111010100010000111101110110100100 1037823401555741274:111001100111000101101110001010010101010100010100101001011010 693232746315712869:100110011110110110111000001010000110110100010000100101100101 644654214938632198:100011110010010001011001011111001100011000000010000000000110 1077539720269373936:111011110100001100001010101010100010000001111010000111110000 658352158082598578:100100100010111011111100110010110111101000000000011010110010 936280272013136974:110011111110010101011111001001011111100011001001010001001110 578659100729229633:100000000111110011110110001011100001000000110100000101000001 1588896215619722628:1011000001100111001001011000010010100111110011101110110000100 2247240116212023398:1111100101111110011001111101010110011110100110100000001100110 1634690706200272576:1011010101111100101101000100101001100101100110001111011000000 1721069932072270334:1011111100010011101111111110000001110110001011111100111111110 1311508401389639204:1001000110011011010011111000101000000110001010001011000100100 1440857665570557620:1001111111110111101000110100110110000001110110100111010110100 1291362261962354322:1000111101011110101110010001010100100100111000110111010010010 1396114446003553179:1001101011111111111101011000100010011110101010100001110011011 1403785555191860848:1001101111011001111111000011001011110000010010000111001110000 2260789855565402447:1111101011111111100000110010100111100110010000101000101001111 3885916480144681980:11010111101101100011000111001101000001110111000010101111111100 4244085150440011381:11101011100110000001001111010101001100011111001011011001110101 3824364441870143886:11010100010010110111110011001010010001010011100001000110001110 2449295275866541617:10000111111101101001010001001110010100000100010100111000110001 3705047503983593168:11001101101010111110010001001100011110111000111100011011010000 4411736585662901217:11110100111001101000110000110011011111000010000010101111100001 3300161359217389461:10110111001100100001110100010101101101100111110110111110010101 2713640017177792364:10010110101000110010010011011111011000001010101100111101101100 2678830713470587426:10010100101101000111100101011101000001110100100001001000100010 4465566255174249204:11110111111000111000001101100101111000101000011110101011110100 5323744703790851952:100100111100001101111011001101000001000010100100010011101110000 8432669343264785018:111010100000110110111000001011011101001100111111100001001111010 7213718816716560004:110010000011100010001110000101100111011111100010001011010000100 7215976386506529521:110010000100100010011000100101010101001010101000001101011110001 8016545693437775346:110111101000000011111011101010110101111000010111100110111110010 6817733502061659674:101111010011101011101000111111110001011101010100100011000011010 6003099104633944346:101001101001111010010101101010001110011001010111111100100011010 6536560928572140360:101101010110110100001111000100001001000001111010110101101001000 7109027374109708140:110001010101000010101101011101101000100010101100100111101101100 8814278840843434447:111101001010010100110111110011111011011101101101111100111001111 16087812538550825687:1101111101000011011001000100010001010101011001011011001011010111 15960287131216861356:1101110101111110010101001001010110101001011010110101100010101100 10885633020760341010:1001011100010001100010011000111011001101101011101011101000010010 13670704180985832628:1011110110111000000110010000010110101001000110111010010010110100 16053262766663371006:1101111011001000101001010110111010110100111110011000100011111110 10024682988321717433:1000101100011110110101000001000010011000110100010011110010111001 12863097455476305109:1011001010000010111001101111101111110000111001010110110011010101 9671607104216945824:1000011000111000011100110110101100111101111111101101010010100000 17095293239232663380:1110110100111110101011101010000001010111100110011000111101010100 13375208569428822518:1011100110011110010010010101010000111001100100001100100111110110 32557607019901963055:11100001111010011110110110001011001000110000001010100101100101111 34245345888335844969:11101101100111111111010001010010101010100101001000101011001101001 19284087047734493505:10000101110011110110101101111111110011001111011010000000101000001 21854520777498047358:10010111101001010110110101101101101011111001010100011001101111110 36322388425756153666:11111100000010011000010111101010000110110111101001001011101000010 22143532049602329546:10011001101001101101000010001001111100001000001100011101111001010 18536641684325108560:10000000100111111011000010110011010001010111001011000101101010000 27956867149499833987:11000001111111010101111101000110011110110101110011001111010000011 31225455484653452214:11011000101010111000110100101001011100000100010101011101110110110 29655248792634907779:11001101110001100100110111010100000011010110101011101110010000011 44078252808623951461:100110001110110101011010010110010010010001111001010000111001100101 54872466302730673452:101111100110000010001010010110000000100011110110101001110100101100 71849538340600817283:111110010100011100110101100111001000010011010100100010011010000011 58309742827471414696:110010100100110101110100100010100111001111110100001010010110101000 66576355942588959424:111001101111101110101110101111111000111101111110110100101011000000 61384377440112241351:110101001111100001000111100000110110101100011001000110101011000111 41239921673357878803:100011110001010001101000100100001101110001011011011110011000010011 48624615208426679777:101010001011001101010101011110100001100110010101000010110111100001 70553370500762659617:111101001100011111111011001010100110100100011110110110101100100001 49778734258202553785:101011001011010001100101110001000110011100101110110010110110111001 77887736309513854407:1000011100011101000110100111000000110101111110111100001110111000111 124380672298829998156:1101011111000100000111010100111010101110000000001111110100001001100 100116932589447862434:1010110110101100110110010111011111101110011110001001101100010100010 132681752709264381349:1110011000101010100010001110001110001101011111011010001010110100101 94654135116531281020:1010010000110010111000010100110001110101110101011001010110001111100 90473888162760038267:1001110011110010011110100011110111011001101101110110001011101111011 145273439925628768390:1111110000000010010111011111110101110110010001001110001000010000110 135046966881437001269:1110101001000100111001101001101111010000001111111101010011000110101 76978020457549033330:1000010110001001000110111011100001001010100111101100110111101110010 95099135412463752876:1010010011111000011111111111100110100000010101011000101011010101100 208645070343288006527:10110100111110001000001100100000011100111100000100100010011101111111 253744069737223097761:11011100000101101000000001110000100001000101001000010000110110100001 186718743053848226930:10100001111100111110001110111000011101111000000011110010110001110010 228514255133942004204:11000110001101000101101110000101001011101011100110001011100111101100 236963383193404024843:11001101100010000111000011011000011101010001100111011010100000001011 185947747833897664510:10100001010010001011000110110111011000100111011000011011111111111110 254212008900758790018:11011100011111100110011110110011100011101000001010101101111110000010 235573722204427138134:11001100010100111101111111000011100011001011011011100011010001010110 260486704037045741722:11100001111011111010101011010011010000111000011011000010100010011010 156140985583238522976:10000111011011100100001101110001111000011000010100100010100001100000 513781817429128957142:110111101101000100111101100001101000110101101110101001100110011010110 339177998072863093127:100100110001100001010010100000011010010001001001000010111000110000111 415365211003941818895:101101000010001011001101010101011010101111001001000000001001000001111 535201344770567311565:111010000001101101001001000110111001101011001000010000001000011001101 357197401286130335952:100110101110100011100000101111111010011110000011101010000000011010000 586811034296453228017:111111100111110100011100101101010001001101111101010001110010111110001 469636352461765284255:110010111010110000011011111100101001011101101101010110001000110011111 332857333303950846939:100100000101101010010110011010001011000010001110010100010101111011011 405853785855830060030:101100000000001011010010010111110111000101100001101001110101111111110 523403704028839668168:111000101111110101111011111111011001111011010101011011110100111001000 993260104643526857022:1101011101100001000000110000101010011111011100101111010001000100111110 1057564477434842879294:1110010101010010100111110010010000001010011111011011001001010100111110 1003988200835074705557:1101100110110100100010100111010100110101010010001010110100100010010101 642901071291911013977:1000101101101000001011011011100001101010101000011100001000011001011001 889457556722711597451:1100000011011110110100000001110100101010001100000101010001000110001011 693489830351362421551:1001011001100000011010110011100111000000011110110111010111001100101111 600849872060113228251:1000001001001001110111100011110011001100011001111101000001000111011011 755028051346179044218:1010001110111000011110011111000110001110101000011001010011001101111010 817479142917120208220:1011000101000011001101010101010100101100000001101111000010110101011100 1124578822406436090946:1111001111011010101010100100001011010001100110101110001111010001000010 1585870351017189953711:10101011111100001011111010010011111001011101011101001011101000010101111 2015897130313702641498:11011010100100000110001010011110101011011101101100101110000111101011010 2163116381546601199379:11101010100001101000101001010000101010110111001011111110011011100010011 1840287623958631136842:11000111100001100011111000000111011101010001001110110011011111001001010 1436659677435970504428:10011011110000110101000011111001110000011111010010011001100011011101100 2085642625105455074859:11100010001000000011011000101010101001100111111110110011100111000101011 1237575580948128187926:10000110001011011001111101100011110101001110110110111011100011000010110 2146693453264808166669:11101000101111101011011001100100001001100110001100000011100010100001101 1371619866397098054006:10010100101101100001100101010010101010110101011110001110001000101110110 2112974192344759657190:11100101000101101101000010100001110101110100101010011011110001011100110 4608080914615324693250:111110011100110111111000000110010010111011111111100100001101001100000010 3249168661202979269171:101100000010001101000101111100101000011111011111000111000010101000110011 4526290723825336306795:111101010101111011100110111110000000000011001010111000011100110001101011 3498685208010966781780:101111011010101000000010110010111101101101110111010101010100111101010100 3950589001689138230247:110101100010100101101111100101011110101100101110001010000111001111100111 4206998595419202359154:111001000000111111010101011101001110011001100000110110111000111101110010 3113338005417970911389:101010001100011000111110100001001100000110000101010101000100100010011101 3880099268143348862621:110100100101011100110001101111101011101010111001011100100100111010011101 3975717673626453216988:110101111000011000101010100011111110100010000011001001010000111011011100 3328729483847926249449:101101000111001101100110110001010011000111101101000001110111011111101001 6202012084698813555349:1010100000011011000110101001010110101110110000000101001111110001010010101 8273551940569590096372:1110000001000001010011001001001101100101010001010001011110110000111110100 7117075205464557801664:1100000011101000101000010011011110111110101001111001101101101000011000000 4833845377137258821730:1000001100000101100010100100101111011001000100110011100000111100001100010 5665981445059400430227:1001100110010011101001001110010001010000000010000000000111111001010010011 7209172766768821123614:1100001101100111101011110101100111000101010111011100101110011101000011110 5129791655388168709028:1000101100001011000101000111110111100011001000110110101011110001110100100 7436847520744746617908:1100100110010011011111101111010100000001010101111000101011000110000110100 6248059590737554237390:1010100101011010100111110110001100010001100101000011100101110011111001110 8541149978576018019724:1110011110000010001000100010111001001000000010110110011010001010110001100 Math-BigInt-2.005003/xt/author/lib-convert-string-_to_bin.t0000644403072340010010000000456014536617521023234 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 3625; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_bin'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("%b", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_to_bin(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_bin() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_to_bin(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_bin() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_to_bytes.dat0000644403072340010010000020735714505066137024125 0ustar OSPJADomain Users0:\x00 1:\x01 2:\x02 7:\x07 19:\x13 23:\x17 28:\x1c 29:\x1d 30:\x1e 43:\x2b 48:\x30 60:\x3c 62:\x3e 64:\x40 76:\x4c 79:\x4f 83:\x53 84:\x54 97:\x61 101:\x65 105:\x69 114:\x72 120:\x78 124:\x7c 125:\x7d 127:\x7f 128:\x80 131:\x83 134:\x86 145:\x91 146:\x92 148:\x94 149:\x95 162:\xa2 169:\xa9 176:\xb0 180:\xb4 186:\xba 189:\xbd 196:\xc4 207:\xcf 208:\xd0 211:\xd3 213:\xd5 221:\xdd 222:\xde 239:\xef 252:\xfc 254:\xfe 255:\xff 256:\x01\x00 257:\x01\x01 511:\x01\xff 512:\x02\x00 513:\x02\x01 2399:\x09\x5f 2714:\x0a\x9a 5472:\x15\x60 7643:\x1d\xdb 8293:\x20\x65 11872:\x2e\x60 12216:\x2f\xb8 13570:\x35\x02 14780:\x39\xbc 16451:\x40\x43 17339:\x43\xbb 18984:\x4a\x28 19043:\x4a\x63 19650:\x4c\xc2 21075:\x52\x53 24275:\x5e\xd3 24972:\x61\x8c 26783:\x68\x9f 26875:\x68\xfb 26983:\x69\x67 30599:\x77\x87 31555:\x7b\x43 33942:\x84\x96 34073:\x85\x19 37466:\x92\x5a 37480:\x92\x68 39174:\x99\x06 39193:\x99\x19 40877:\x9f\xad 41481:\xa2\x09 41653:\xa2\xb5 44063:\xac\x1f 44966:\xaf\xa6 46644:\xb6\x34 49793:\xc2\x81 50049:\xc3\x81 50240:\xc4\x40 51070:\xc7\x7e 54955:\xd6\xab 55063:\xd7\x17 55553:\xd9\x01 63509:\xf8\x15 65031:\xfe\x07 65534:\xff\xfe 65535:\xff\xff 65536:\x01\x00\x00 65537:\x01\x00\x01 151501:\x02\x4f\xcd 2210357:\x21\xba\x35 2309848:\x23\x3e\xd8 2833066:\x2b\x3a\xaa 3124210:\x2f\xab\xf2 3505490:\x35\x7d\x52 3635074:\x37\x77\x82 3724079:\x38\xd3\x2f 4171867:\x3f\xa8\x5b 4266684:\x41\x1a\xbc 4615149:\x46\x6b\xed 4666386:\x47\x34\x12 5779374:\x58\x2f\xae 5808845:\x58\xa2\xcd 6000085:\x5b\x8d\xd5 6342300:\x60\xc6\x9c 6455214:\x62\x7f\xae 6888526:\x69\x1c\x4e 7017450:\x6b\x13\xea 7388606:\x70\xbd\xbe 7684702:\x75\x42\x5e 8028923:\x7a\x82\xfb 8077857:\x7b\x42\x21 8327794:\x7f\x12\x72 8343134:\x7f\x4e\x5e 8343500:\x7f\x4f\xcc 8789388:\x86\x1d\x8c 9778022:\x95\x33\x66 10199029:\x9b\x9f\xf5 10963046:\xa7\x48\x66 10970976:\xa7\x67\x60 11267277:\xab\xec\xcd 11505722:\xaf\x90\x3a 11735218:\xb3\x10\xb2 11816343:\xb4\x4d\x97 12299935:\xbb\xae\x9f 12676595:\xc1\x6d\xf3 13140376:\xc8\x81\x98 13159575:\xc8\xcc\x97 14539158:\xdd\xd9\x96 14828172:\xe2\x42\x8c 15025862:\xe5\x46\xc6 15748519:\xf0\x4d\xa7 15780304:\xf0\xc9\xd0 15992846:\xf4\x08\x0e 16553563:\xfc\x96\x5b 16777214:\xff\xff\xfe 16777215:\xff\xff\xff 16777216:\x01\x00\x00\x00 16777217:\x01\x00\x00\x01 33203744:\x01\xfa\xa6\x20 136128262:\x08\x1d\x27\x06 209339308:\x0c\x7a\x43\xac 441032545:\x1a\x49\x9f\x61 519666323:\x1e\xf9\x7a\x93 545033593:\x20\x7c\x8d\x79 575552126:\x22\x4e\x3a\x7e 691813926:\x29\x3c\x3e\x26 805922648:\x30\x09\x67\x58 881846005:\x34\x8f\xe6\xf5 933503529:\x37\xa4\x22\x29 943271257:\x38\x39\x2d\x59 1044068419:\x3e\x3b\x38\x43 1138398455:\x43\xda\x94\xf7 1265726928:\x4b\x71\x75\xd0 1334283948:\x4f\x87\x8e\xac 1359986867:\x51\x0f\xc0\xb3 1423223300:\x54\xd4\xaa\x04 1622606521:\x60\xb7\x02\xb9 1644822698:\x62\x0a\x00\xaa 1659963662:\x62\xf1\x09\x0e 1683236477:\x64\x54\x26\x7d 1817185683:\x6c\x50\x0d\x93 2301650851:\x89\x30\x67\xa3 2362248064:\x8c\xcd\x0b\x80 2389494621:\x8e\x6c\xcb\x5d 2521122298:\x96\x45\x45\xfa 2539035783:\x97\x56\x9c\x87 2681473135:\x9f\xd4\x08\x6f 2708812697:\xa1\x75\x33\x99 2873380381:\xab\x44\x4e\x1d 2944367285:\xaf\x7f\x7a\xb5 2946624894:\xaf\xa1\xed\x7e 3190508918:\xbe\x2b\x4d\x76 3248076404:\xc1\x99\xb6\x74 3328483810:\xc6\x64\xa1\xe2 3355966830:\xc8\x07\xfd\x6e 3825569121:\xe4\x05\x8d\x61 3873959013:\xe6\xe7\xec\x65 3899219407:\xe8\x69\x5d\xcf 3944932154:\xeb\x22\xe3\x3a 3972128310:\xec\xc1\xde\x36 4044733997:\xf1\x15\xbe\x2d 4175879477:\xf8\xe6\xdd\x35 4216794103:\xfb\x57\x2b\xf7 4226483559:\xfb\xeb\x05\x67 4294967294:\xff\xff\xff\xfe 4294967295:\xff\xff\xff\xff 4294967296:\x01\x00\x00\x00\x00 4294967297:\x01\x00\x00\x00\x01 52907653385:\x0c\x51\x8a\xb9\x09 65657002992:\x0f\x49\x76\x5b\xf0 82282394394:\x13\x28\x69\xb3\x1a 95620303727:\x16\x43\x6a\x0b\x6f 98893800086:\x17\x06\x87\xa2\x96 144819486955:\x21\xb7\xea\x00\xeb 144819984566:\x21\xb7\xf1\x98\xb6 154697549583:\x24\x04\xb1\x47\x0f 207751478740:\x30\x5e\xf3\xfd\xd4 210637125086:\x31\x0a\xf3\x75\xde 223122518415:\x33\xf3\x23\x71\x8f 235668608436:\x36\xde\xf1\x95\xb4 240689714513:\x38\x0a\x39\x95\x51 241966609710:\x38\x56\x55\x75\x2e 252166777992:\x3a\xb6\x4f\xac\x88 279485020672:\x41\x12\x9a\xfa\x00 308303983623:\x47\xc8\x59\x74\x07 335106255858:\x4e\x05\xe3\xab\xf2 353015680691:\x52\x31\x5f\xce\xb3 378979139026:\x58\x3c\xea\xbd\xd2 384066247547:\x59\x6c\x21\xdb\x7b 386227380433:\x59\xec\xf2\x20\xd1 429843089409:\x64\x14\xa5\x08\x01 484984330981:\x70\xeb\x51\x9a\xe5 494907755801:\x73\x3a\xcd\x0d\x19 533200105687:\x7c\x25\x33\xf0\xd7 540722092170:\x7d\xe5\x8c\x58\x8a 578947332316:\x86\xcb\xf3\x38\xdc 589498196653:\x89\x40\xd4\xa2\xad 643147784136:\x95\xbe\x98\x5f\xc8 654361472999:\x98\x5a\xfb\xaf\xe7 726101129678:\xa9\x0e\xff\xf9\xce 735744400618:\xab\x4d\xc8\x9c\xea 736287479561:\xab\x6e\x27\x57\x09 748469873578:\xae\x44\x47\xeb\xaa 791105895822:\xb8\x31\x95\xfd\x8e 791286978171:\xb8\x3c\x61\x16\x7b 800360691693:\xba\x59\x36\xf7\xed 838012459233:\xc3\x1d\x6f\x58\xe1 894608144951:\xd0\x4a\xcc\xfa\x37 906579726386:\xd3\x14\x5c\xd0\x32 906961048343:\xd3\x2b\x17\x53\x17 918842918459:\xd5\xef\x4e\x46\x3b 998835294344:\xe8\x8f\x39\x10\x88 1068137722528:\xf8\xb1\xf8\x32\xa0 1088225943948:\xfd\x5f\x52\x21\x8c 1099511627774:\xff\xff\xff\xff\xfe 1099511627775:\xff\xff\xff\xff\xff 5712773026942:\x05\x32\x1b\xce\x94\x7e 10213793441813:\x09\x4a\x15\x87\xa8\x15 10474806068740:\x09\x86\xdb\x18\x46\x04 14896078034299:\x0d\x8c\x43\x70\x95\x7b 25107941835842:\x16\xd5\xe5\xf4\x44\x42 34448759091360:\x1f\x54\xba\x0c\x70\xa0 37988596736707:\x22\x8c\xe8\xd0\x62\xc3 47611506030161:\x2b\x4d\x6a\xe7\x76\x51 48696692198667:\x2c\x4a\x15\x0a\x4d\x0b 51007663053483:\x2e\x64\x25\xa3\x1a\xab 52607042552218:\x2f\xd8\x88\x15\x81\x9a 58690558167466:\x35\x60\xf5\xdf\x09\xaa 60574682050704:\x37\x17\xa4\x67\xf0\x90 61095626521076:\x37\x90\xef\x1d\xb9\xf4 68464201759056:\x3e\x44\x90\x6c\xf9\x50 73367379629837:\x42\xba\x2c\x99\xd7\x0d 77550989374366:\x46\x88\x3f\x2c\x73\x9e 85837478045232:\x4e\x11\x98\x63\x26\x30 89146816051021:\x51\x14\x1c\x4d\xb7\x4d 98461838803473:\x59\x8c\xee\xed\x02\x11 103105234327422:\x5d\xc6\x0e\xdd\xd7\x7e 104647032372015:\x5f\x2d\x09\x30\xfb\x2f 115579339035171:\x69\x1e\x69\x72\x52\x23 115902042567125:\x69\x69\x8c\x13\x71\xd5 119069037269390:\x6c\x4a\xeb\xab\x91\x8e 132658366876204:\x78\xa6\xee\xd5\x8a\x2c 135667100130130:\x7b\x63\x75\x4f\x9b\x52 136193459571622:\x7b\xde\x02\xc7\x4b\xa6 143011112994547:\x82\x11\x5e\x96\xc6\xf3 143401128952230:\x82\x6c\x2d\x5a\x01\xa6 144989854694453:\x83\xde\x14\xc8\xfc\x35 173923052406865:\x9e\x2e\x9d\xc1\xc8\x51 179252052663873:\xa3\x07\x5e\xec\x9e\x41 188810803440399:\xab\xb8\xf0\xde\x6b\x0f 191768093091294:\xae\x69\x7d\x11\x65\xde 210908822843719:\xbf\xd2\x09\x77\x31\x47 215764802465775:\xc4\x3c\xa8\x67\xef\xef 217965098024952:\xc6\x3c\xf4\x3d\xbf\xf8 234031688002771:\xd4\xd9\xbf\xa1\x2c\xd3 237424984277170:\xd7\xef\xcf\xd9\x40\xb2 239382150441389:\xd9\xb7\x80\x0a\xe9\xad 252155473912059:\xe5\x55\x85\x73\x60\xfb 252399437030621:\xe5\x8e\x52\xc9\x24\xdd 259874645499499:\xec\x5a\xc7\xee\x5e\x6b 265447924535042:\xf1\x6c\x69\x3f\x8f\x02 267205553730315:\xf3\x05\xa4\x1c\xb3\x0b 267905246894005:\xf3\xa8\x8d\x13\x17\xb5 270775473358472:\xf6\x44\xd3\xe7\x46\x88 273399113030370:\xf8\xa7\xb1\x03\x9a\xe2 277270645455754:\xfc\x2d\x1a\x54\x3b\x8a 378181799292571:\x01\x57\xf4\x4f\xce\xae\x9b 589764422074535:\x02\x18\x63\x3a\xe1\x00\xa7 1338930020235304:\x04\xc1\xbf\xf0\x3c\x38\x28 2608546246781766:\x09\x44\x75\x80\x6b\x6b\x46 3646433778593071:\x0c\xf4\x69\x86\x11\xed\x2f 5702622487387091:\x14\x42\x81\x43\xa6\x1b\xd3 6319114862562293:\x16\x73\x33\x94\xad\x8b\xf5 7585695545873176:\x1a\xf3\x26\x60\x62\xd3\x18 8207048962996193:\x1d\x28\x44\x7e\x17\xf7\xe1 8546493750229963:\x1e\x5c\xfd\xa4\x0e\xbb\xcb 8611780010335704:\x1e\x98\x5e\x48\x66\x5d\xd8 11641988396382199:\x29\x5c\x53\xa6\xd8\x77\xf7 12904921715180895:\x2d\xd8\xf5\x3a\xb0\x05\x5f 13501167225129316:\x2f\xf7\x3d\x74\x81\xc9\x64 15504659786663287:\x37\x15\x67\xea\xf2\x85\x77 15759675137878595:\x37\xfd\x57\x4e\x5e\x6a\x43 17935215411344408:\x3f\xb7\xfb\xbf\x90\x34\x18 21302793960564939:\x4b\xae\xc7\x3a\xbe\x28\xcb 21412105194402668:\x4c\x12\x32\x3c\x01\x73\x6c 21884784858392984:\x4d\xc0\x18\x8b\x78\x69\x98 22005943033829895:\x4e\x2e\x49\xe1\x7a\x9a\x07 24338264181909266:\x56\x77\x85\xb7\x03\x27\x12 26236047631190540:\x5d\x35\x8b\xdb\x5e\x0a\x0c 28416958100199417:\x64\xf5\x12\xa5\x28\xd7\xf9 28863221086862476:\x66\x8a\xf2\x57\xf4\xbc\x8c 33078162422287726:\x75\x84\x69\xd9\x00\xcd\x6e 35067429557793956:\x7c\x95\xa4\x31\xfa\x74\xa4 36904234298025839:\x83\x1c\x34\xa0\x0a\xa7\x6f 37005870741274522:\x83\x78\xa4\xb4\x23\x3f\x9a 38935758825522060:\x8a\x53\xdd\xc9\xdb\x03\x8c 39976053090670895:\x8e\x06\x02\x2b\xfd\xd9\x2f 40873233183830436:\x91\x35\xfd\x30\xbe\x71\xa4 43526487337301967:\x9a\xa3\x1c\x10\x0f\x77\xcf 48515458258057537:\xac\x5c\x8d\x5f\x96\x39\x41 48686234693899702:\xac\xf7\xdf\x5c\x61\x95\xb6 51000729038588215:\xb5\x30\xe4\x91\xa1\x89\x37 51723604967708583:\xb7\xc2\x58\x3c\x9a\x57\xa7 55791078906985985:\xc6\x35\xb0\xcf\xe2\xfe\x01 56341386763795605:\xc8\x2a\x31\x58\x35\x7c\x95 56721140208802842:\xc9\x83\x93\x95\x66\x9c\x1a 60023602629035044:\xd5\x3f\x26\x08\xd7\xc4\x24 62018755272827879:\xdc\x55\xba\xb5\x72\xe3\xe7 62676888622525251:\xde\xac\x4c\x51\xf8\xeb\x43 62718393108997875:\xde\xd2\x0b\xd6\x25\x26\xf3 64171379559918950:\xe3\xfb\x87\x9b\x6a\x6d\x66 65252021110238065:\xe7\xd2\x5e\x13\x26\xeb\x71 67139870474033790:\xee\x87\x5b\x41\xde\xda\x7e 67568426687801228:\xf0\x0d\x20\x46\xc2\x27\x8c 68858005490193749:\xf4\xa1\xfd\xbd\x2f\x55\x55 71708206672148768:\xfe\xc2\x3b\xea\x2c\x79\x20 86249278062287770:\x01\x32\x6b\x42\xed\x09\x5b\x9a 599939789870140156:\x08\x53\x6a\x0f\x6d\xd5\x0a\xfc 1249909236474812254:\x11\x58\x91\xd4\x09\x8f\x97\x5e 2063977009892030307:\x1c\xa4\xb8\x27\xb3\x2f\xf7\x63 3251737573438816676:\x2d\x20\x7e\x18\x37\x9c\x81\xa4 3370282864967596878:\x2e\xc5\xa6\x68\xbe\xfa\xbb\x4e 3714476316255225932:\x33\x8c\x78\x87\x8c\xfe\x88\x4c 4836431536736052700:\x43\x1e\x74\xdb\xaf\xa6\x25\xdc 4838496129580716135:\x43\x25\xca\x98\x2a\xc2\xd0\x67 4974566886996787351:\x45\x09\x36\x3a\x32\xdd\x40\x97 5314676403438882080:\x49\xc1\x86\x07\xd3\x20\x0d\x20 5754196798139465215:\x4f\xdb\x03\x80\x38\xca\xfd\xff 6747939694144721233:\x5d\xa5\x7f\x66\x53\x41\x11\x51 8000763749529630048:\x6f\x08\x6c\x3d\x86\x89\x35\x60 10208746370398689769:\x8d\xac\xc0\xbc\x51\xac\x19\xe9 10796640743917638537:\x95\xd5\x5f\x8d\xb4\xb8\x53\x89 10809988848241646609:\x96\x04\xcb\x95\x6d\x60\x9c\x11 11247144218796486496:\x9c\x15\xe2\x13\xba\xf3\xef\x60 11487461765633002760:\x9f\x6b\xa9\x9c\xd7\x6f\xcd\x08 11696117030210212435:\xa2\x50\xf4\x78\x65\x13\x92\x53 11723080000350574248:\xa2\xb0\xbf\x26\x16\x61\xd6\xa8 11791977335384704953:\xa3\xa5\x84\xe8\xf3\x10\x07\xb9 12041701909757979348:\xa7\x1c\xb8\x16\x56\x44\x6a\xd4 12042820546510503814:\xa7\x20\xb1\x7b\x40\x88\xbf\x86 12269432059066863201:\xaa\x45\xc7\x73\x94\x78\x4e\x61 12829416044090788422:\xb2\x0b\x3d\xeb\x3f\xba\x8a\x46 13229905767653679561:\xb7\x9a\x11\x33\x5c\xe3\xa1\xc9 13561951715743852125:\xbc\x35\xbb\x3b\x2d\xe9\x66\x5d 14022735616107988663:\xc2\x9a\xc3\xbf\x49\x55\xc6\xb7 14094052053581971243:\xc3\x98\x21\xab\x53\x9e\x3f\x2b 14102787707435260659:\xc3\xb7\x2a\xb3\x3c\x6c\x9a\xf3 14174535825245830612:\xc4\xb6\x11\x3b\xaf\xd3\x7d\xd4 14251504564902037288:\xc5\xc7\x83\xe4\xe1\xd8\x07\x28 14388780826124177821:\xc7\xaf\x37\xed\x24\x15\x51\x9d 14950772431591141908:\xcf\x7b\xd0\x50\x5e\xb1\x72\x14 14985074092914716392:\xcf\xf5\xad\x7e\x41\x17\x2e\xe8 15197926886011719523:\xd2\xe9\xe1\xfb\x13\x16\x4f\x63 15310636145156521414:\xd4\x7a\x4e\x74\x6d\x4f\x7d\xc6 15569135248405041412:\xd8\x10\xae\x05\x05\x32\x11\x04 16054592448148142540:\xde\xcd\x5e\xc5\x4d\x89\xf9\xcc 16072701657141972820:\xdf\x0d\xb5\x00\x16\xc7\x8f\x54 16139811894547256114:\xdf\xfc\x21\x67\xdc\x1d\x13\x32 16333304958416004889:\xe2\xab\x8e\x52\x76\x83\x27\x19 16796750886819571821:\xe9\x1a\x0b\xf0\x45\x9b\xa8\x6d 16900945532465322377:\xea\x8c\x38\x6a\xae\xd2\x19\x89 16926927658779492305:\xea\xe8\x87\x05\xe0\x49\x3f\xd1 16962427426677561007:\xeb\x66\xa5\xdf\xaf\x75\x96\xaf 17412845992078358682:\xf1\xa6\xdb\x2c\x2e\x6a\x38\x9a 18188157011401470276:\xfc\x69\x50\x6f\xd7\x9d\x71\x44 18264363366929282708:\xfd\x78\x0d\xb6\xa6\x7a\x36\x94 63975972041439156348:\x03\x77\xd8\x4f\x9c\xca\x4d\x98\x7c 334181559137403549404:\x12\x1d\xb3\x65\x77\x37\x22\x36\xdc 350240621946881064950:\x12\xfc\x90\xa6\x01\x9f\xba\x3f\xf6 424733482492934546251:\x17\x06\x5c\x73\xfe\x2d\xf4\xe3\x4b 441942190382750650119:\x17\xf5\x2e\x10\xa4\x9d\xe8\x4f\x07 582303907444553231917:\x1f\x91\x17\x0e\xa4\x7a\x89\x2e\x2d 609555276332016837016:\x21\x0b\x47\x5e\x42\xfe\xef\xa1\x98 674342921865426096841:\x24\x8e\x63\x52\x9d\x5b\xb7\xd2\xc9 750196050133164177453:\x28\xab\x0f\xc4\xe3\x18\x63\x38\x2d 855775854975297508437:\x2e\x64\x46\x96\x01\x56\xcf\xd4\x55 952086152492534789339:\x33\x9c\xd9\x7f\x52\xc5\xec\xf4\xdb 1220296812911258626321:\x42\x27\x05\x2d\xee\xe4\xe1\xe9\x11 1347712351938881172369:\x49\x0f\x44\x1b\x9a\x33\x3e\xb3\x91 1361753255775781019208:\x49\xd2\x1f\x6b\x40\x07\x14\x5e\x48 1380642335910246516213:\x4a\xd8\x42\xe9\x8d\xc3\xc8\x85\xf5 1502987170009185464983:\x51\x7a\x23\x13\xf4\xbf\x23\x32\x97 1591317202175664472956:\x56\x43\xf6\x64\x38\x08\xf2\x43\x7c 1603981387028116606015:\x56\xf3\xb6\x9d\x3e\x95\x3d\x0c\x3f 1621207719384819882053:\x57\xe2\xc6\xd7\x40\xfd\x5a\xd8\x45 1624866179469139218913:\x58\x15\x8c\x4d\x51\x34\x27\x91\xe1 1653684129212764816628:\x59\xa5\x7a\x39\xec\xcc\x04\x84\xf4 1819173413274877005563:\x62\x9e\x1a\x44\xfa\xcb\xed\x8e\xfb 1882135487035286795872:\x66\x07\xe0\x7d\x7a\x37\x18\xb6\x60 1948721903456347620253:\x69\xa3\xf2\xf6\x6c\x22\xaa\x03\x9d 2021306650637495094379:\x6d\x93\x43\xc9\x69\xc6\x7e\xcc\x6b 2108487316292768080470:\x72\x4d\x23\xba\xec\x77\x23\xa2\x56 2475562577965518391919:\x86\x33\x55\x08\x91\x24\xfb\x8a\x6f 2548957501134516141851:\x8a\x2d\xe4\x2e\x53\x82\x2e\x3f\x1b 2770412909125814127655:\x96\x2f\x33\xd6\x92\xc0\xb3\x0c\x27 2889527187295365694882:\x9c\xa4\x3e\xc3\x79\x55\xe3\x05\xa2 2984050867755360273086:\xa1\xc4\x06\x56\x0b\x5e\x65\x42\xbe 3082477360517443702636:\xa7\x19\xf7\x7b\xb9\xc1\xef\x4f\x6c 3299420554711166720751:\xb2\xdc\xa8\x89\x6e\x35\x61\x9a\xef 3322164739298645166587:\xb4\x18\x4c\x1c\xcf\x17\xf2\xc9\xfb 3322690024080056187361:\xb4\x1f\x96\x4c\x88\xd9\xde\xf9\xe1 3358439749031153469348:\xb6\x0f\xb6\xd5\xf7\xa9\xf1\x87\xa4 3430139388175584877736:\xb9\xf2\xbf\x1f\xe3\x69\x78\x5c\xa8 3430671653348956607697:\xb9\xfa\x22\x1c\x3e\x52\x9a\x94\xd1 3528167095125180312976:\xbf\x43\x27\x7f\xfc\x66\x32\x6d\x90 3563845960577864034770:\xc1\x32\x4c\x4b\x14\x96\x5d\xe9\xd2 3607081690118751499126:\xc3\x8a\x50\x76\x06\x6f\xd3\xb3\x76 3677413317074846509744:\xc7\x5a\x5c\x98\x1b\xd9\x28\x6a\xb0 3695583756565025826700:\xc8\x56\x86\xf6\x8d\xd2\x06\xa7\x8c 3889387073447455127953:\xd2\xd8\x16\xa8\x71\xcf\xb0\x79\x91 4008255419021770261968:\xd9\x49\xb7\xda\xf3\xf3\x1e\x85\xd0 4087230613743613824406:\xdd\x91\xb8\x1c\x1f\xb9\xe8\xcd\x96 4125088341661057974852:\xdf\x9f\x19\xc7\x16\x04\x8e\x82\x44 4507996321147342477034:\xf4\x61\x04\x31\xb2\x03\x1a\xd6\xea 4691732813110069270497:\xfe\x56\xdf\x57\xa8\x65\xd9\x97\xe1 4704436401412626585241:\xff\x07\x2b\x8d\xe9\x98\x96\x16\x99 25129919893304227188619:\x05\x52\x4b\xb2\x26\xf0\x34\xbc\xcf\x8b 25617229225229708108310:\x05\x6c\xb6\x78\xae\x72\xf3\xf3\x22\x16 59459473348447354187935:\x0c\x97\x4d\xf4\x4c\x9f\x1a\xb3\x70\x9f 89964751139459528596018:\x13\x0c\xff\xb9\xfb\xa8\x90\x2b\x1a\x32 115295613894247960057923:\x18\x6a\x30\x10\x96\x79\xc9\x6c\x98\x43 150382260851692850191119:\x1f\xd8\x3d\x1b\x2d\x3f\xc4\x5d\x1b\x0f 183384646082771393740886:\x26\xd5\x4d\x34\x9e\xc8\xbe\xcc\x80\x56 183432012538411796162908:\x26\xd7\xde\x8c\x13\x3b\x1a\x48\x69\x5c 210333076888681487802525:\x2c\x8a\x2d\xcf\x5d\xda\x8f\xa8\x20\x9d 213885923219594052694990:\x2d\x4a\xc7\x75\x20\x08\x39\x04\xf3\xce 293466913510574483275360:\x3e\x24\xdf\x8d\xe7\x85\x8b\xcb\x7e\x60 296948610526020227649873:\x3e\xe1\x9d\xce\x84\x3f\x89\x1d\x51\x51 304141712928544258481044:\x40\x67\x8e\x27\xd0\xa7\x66\xd7\x5b\x94 342215813559625024892980:\x48\x77\x8e\x71\xef\x64\x23\xf1\x70\x34 348210060900882527508517:\x49\xbc\x81\x56\x75\x61\x9f\x17\x58\x25 368606914574968245666233:\x4e\x0e\x38\x8b\x82\xcc\xcb\x77\x41\xb9 406611976712346555439162:\x56\x1a\x7a\xbb\xa1\x4b\xe5\x98\xd8\x3a 416471384368255381413648:\x58\x30\xf5\x80\x12\xf7\x09\xee\x1f\x10 424987737359163318010866:\x59\xfe\xa1\xa3\xd6\x9f\xb0\xff\x03\xf2 444089458435508630224792:\x5e\x0a\x23\x45\x98\x4d\xdb\x98\x7f\x98 459169368007093065096041:\x61\x3b\x9f\x0e\x9a\xe0\x02\xdc\x1b\x69 484865300039008451287157:\x66\xac\x99\xbf\xd3\x04\xf4\xe3\xd8\x75 520979901638410955264574:\x6e\x52\x60\x86\xee\x50\xe9\x42\x12\x3e 607802707124959554400482:\x80\xb5\x0c\xff\x9d\x64\xbe\xb5\x70\xe2 618224555218192284468679:\x82\xea\x05\x31\xe4\xde\xf9\xb3\x45\xc7 627542475278504778798117:\x84\xe3\x25\x4f\xf3\x44\xd6\x50\x14\x25 635934215632269211614636:\x86\xaa\x10\x1a\xb1\xab\xf6\x30\x3d\xac 638894353677061723369641:\x87\x4a\x88\x45\x9d\xed\x4f\x31\xb0\xa9 691515511797926728239165:\x92\x6f\x21\x89\xde\x02\x5b\x77\x08\x3d 692065189498240968367050:\x92\x8c\xed\xd9\x5a\x20\xb3\x5f\x1b\xca 757921233664605437122929:\xa0\x7e\xfe\x0e\x4b\x29\x01\x8d\x59\x71 798845670202818233698280:\xa9\x29\x82\xb3\xc7\xb5\x08\x1d\x07\xe8 818832998189960479463920:\xad\x65\x06\x99\x52\x9c\x5c\xfd\x59\xf0 829042804536531281547818:\xaf\x8e\x80\x1f\xfc\xf1\xce\x64\x92\x2a 833024180360288303924274:\xb0\x66\x54\xd0\x56\x6b\x1b\xf1\x44\x32 863841111050179959574681:\xb6\xec\xeb\xa3\x89\xc7\x45\x9f\xd0\x99 878395476338273880008462:\xba\x01\xea\x08\x2e\xf7\xb7\x96\x67\x0e 881955658285111580135699:\xba\xc2\xe9\x7b\x48\xf6\xd3\x55\x91\x13 891706326347564834422685:\xbc\xd3\x7f\x2f\x16\x83\x0b\xec\xff\x9d 903276007216238362747843:\xbf\x46\xb0\xc2\x91\xc6\x2a\x69\xe3\xc3 965069041107878600550342:\xcc\x5c\x7f\x5f\x54\xb2\x24\x88\xa7\xc6 969737688939408097005508:\xcd\x59\x95\xe0\x57\xea\x65\xe7\xcf\xc4 1024308257302092376961613:\xd8\xe7\xdc\xa5\x06\x83\xac\x67\xf2\x4d 1025530866939599459424160:\xd9\x2a\x23\xc3\x02\x29\xdf\x27\x97\xa0 1042180056911176454611451:\xdc\xb0\xb1\xaf\xf6\x1f\xb1\xe3\xa1\xfb 1132149089819618864790719:\xef\xbd\xec\xd5\xd7\xfc\x84\xff\xfc\xbf 1159530506856480861953775:\xf5\x8a\x46\x54\xb2\x0c\x21\x49\x9e\xef 1169940959707029510041708:\xf7\xbe\xa0\x62\xf0\xad\xa2\x34\x30\x6c 1184073465161655060546741:\xfa\xbc\xc0\x4c\x62\x6f\xec\x88\x44\xb5 1185841037364832206917534:\xfb\x1c\x92\x4a\x54\x3a\x58\xed\x0f\x9e 6478772704797252492090305:\x05\x5b\xee\xf8\xda\x2c\x2a\x2f\xc6\x5b\xc1 7948088863495990037514115:\x06\x93\x12\xc2\xb9\xaa\x04\x81\x09\x07\x83 11503947700353658954331863:\x09\x84\x0e\x41\x23\x40\x83\xc1\x6a\x36\xd7 16713893307702087222123712:\x0d\xd3\x4d\xf8\xc4\x49\x0d\x08\xf9\x5c\xc0 18617399078654249814535623:\x0f\x66\x63\x39\xf2\x6c\x3c\x62\xc1\x2d\xc7 20003124898488361126256337:\x10\x8b\xd3\x92\xd5\x9d\x4e\xb4\x10\xde\xd1 35039431914941352656591944:\x1c\xfb\xe3\x69\x05\x9c\x68\xca\x25\x5c\x48 38048945653266260760391331:\x1f\x79\x2d\x7a\x16\x4b\xc0\x84\x82\xee\xa3 47062125740093134536916444:\x26\xed\xca\xf2\xce\x42\x0e\x16\x5b\x3d\xdc 57913500939140207283634776:\x2f\xe7\xa9\x2d\x3d\xb5\x85\xb2\x5d\x82\x58 75381378112426162892393998:\x3e\x5a\xa0\xb2\x1a\xd9\x5f\x87\x71\x4e\x0e 81089617479421357959818236:\x43\x13\x64\xf8\xcb\xd7\x28\x21\x92\x2b\xfc 85135171515978244732581261:\x46\x6c\x12\xe5\x47\xd7\xba\x80\x49\x75\x8d 95004404583222647700735930:\x4e\x95\xf7\x17\x9d\x1c\xb2\xd8\x7a\x47\xba 96450418408434164719946085:\x4f\xc8\x2b\xa8\xa5\xac\xfa\x7c\xcc\x09\x65 97407165895613956071784802:\x50\x92\xc5\x0b\x42\x89\x8f\xb0\x5e\x81\x62 103684114829959666388539434:\x55\xc3\xf7\x20\xa6\xb8\x36\x7a\x05\x98\x2a 105055909639744272113914435:\x56\xe6\x74\x45\xef\xf2\xe9\xe1\xe4\xd2\x43 118578818286974628893560605:\x62\x16\x0a\x9e\xb0\x22\x3d\x47\x88\x0f\x1d 119704799681256621721451992:\x63\x04\x7a\x31\x8d\xac\x9b\x3a\xb2\xfd\xd8 121899052315176443295121281:\x64\xd5\x20\xde\x00\xf1\xfa\x0d\x5d\x3f\x81 125534440711838419229714284:\x67\xd6\xf3\xaa\xc5\x84\xd3\x06\x49\xa7\x6c 127691927084247897130141043:\x69\x9f\xd1\x3c\xd8\x9a\x8a\x09\x80\x05\x73 143831209654609324172716428:\x76\xf9\x71\x7f\xba\x5a\x6c\x8a\xfd\x29\x8c 148717314885068034988644740:\x7b\x04\x1d\xcb\x52\xa9\x9d\x2e\x55\x19\x84 158475246880722534605975608:\x83\x16\x70\x59\x00\x6d\xea\xe7\xd6\xf0\x38 159420334674089104556004682:\x83\xde\x91\xa8\xdb\x97\x14\xb9\xfd\x95\x4a 159878294794684858439680253:\x84\x3f\x8b\xba\x3c\x60\x35\xdc\x45\xc0\xfd 164231277597021526467751231:\x87\xd9\x53\x65\xe5\xd2\x15\x6d\xf3\x2d\x3f 172613723914442391735160095:\x8e\xc8\x60\xb9\x33\x88\x5a\xa7\x7a\xcd\x1f 180154760346649569970266619:\x95\x05\x41\x20\xa8\x91\x68\x90\xbe\xa1\xfb 188258513203899921358287754:\x9b\xb9\x4a\x73\x42\x23\xd4\xf6\xee\x73\x8a 201756287842980340052318896:\xa6\xe3\x8e\x47\x93\xc4\x78\xac\x10\xda\xb0 212658158219890259057512498:\xaf\xe8\x1d\xdb\x60\x53\x47\x67\xa9\x10\x32 217543916163319898113483526:\xb3\xf2\xb7\x53\x65\x41\x88\x9f\xfe\xa3\x06 230181266186476242194681844:\xbe\x66\xc7\x71\x78\x50\x38\x7a\x18\x4f\xf4 230565136818400448440576539:\xbe\xb8\x11\x1c\xa5\x3d\x83\x17\x92\x2a\x1b 232231147219423519215636547:\xc0\x18\xdb\xb7\x79\xfa\x96\x1f\x02\xd0\x43 249033458974405848417256944:\xcd\xfe\xe2\xdc\xb1\x60\x01\xa2\x81\x45\xf0 253602484651594266324339515:\xd1\xc6\x6a\x3d\x87\x83\x56\x88\x41\x8b\x3b 266875147206245588330404731:\xdc\xc1\x02\xb8\x1b\x86\xa7\x6a\x38\xdb\x7b 268339815580006080239573416:\xdd\xf7\x2a\x8d\x01\xe4\x31\x3d\x7b\x19\xa8 274070744832323608877896021:\xe2\xb4\xbc\xd9\x1c\xd6\x79\x41\xb6\x91\x55 280989352916674964769651589:\xe8\x6d\xcf\x58\x08\x5f\x61\x63\x36\xbb\x85 290574105555530024791474058:\xf0\x5b\x75\xd3\x58\x5a\x26\x72\x86\x7f\x8a 294056036596455244598682326:\xf3\x3c\xc9\xaf\x7e\x16\x55\xa5\xc9\x22\xd6 295450504258834409742385547:\xf4\x64\x13\xed\xd0\xdd\xdd\xa1\x77\xc1\x8b 298025818928377217707194614:\xf6\x85\x6c\x04\x56\x91\x26\x2c\x28\xb8\xf6 299019462968014029773135368:\xf7\x57\xd5\x91\x7a\x0b\x14\x45\x90\xde\x08 306689559717941004562674587:\xfd\xb0\x0a\x58\xa3\x3b\x6b\x54\xa1\x33\x9b 2908079825338167690332274763:\x09\x65\x81\xdb\x38\x3a\xae\x10\x01\x69\x00\x4b 5284845152267909030124419832:\x11\x13\x85\x7d\xc4\x54\xb7\x72\x4a\x2f\x7a\xf8 6837664206078305467096723591:\x16\x17\xfb\xb7\x59\x0a\xf6\x8f\x44\xbd\x70\x87 7248896636129053528878540409:\x17\x6c\x25\x92\x0c\xfa\xa0\x3d\x8e\x40\xe6\x79 8510762379161430076430484841:\x1b\x7f\xf0\x09\x0c\xbb\x82\x0c\x11\x00\x05\x69 9068708034049912428981523533:\x1d\x4d\x75\x9f\x9b\x91\x1f\x71\xd1\x1a\x14\x4d 9508333417090286739290656616:\x1e\xb9\x1b\xeb\x60\x54\x92\x05\x83\x5d\x0f\x68 9986380264262507957174327392:\x20\x44\x8a\x46\xe3\x94\xc5\xf5\xf8\xb6\xd8\x60 10883660125020101681144188653:\x23\x2a\xc0\xad\x9b\x66\x7c\x3d\x6f\x50\xce\xed 13846795683806642337963201914:\x2c\xbd\xcd\x0a\x1e\x07\x98\x1a\x87\xc2\x55\x7a 14816046864299780205844131319:\x2f\xdf\x8b\xf5\xe5\x63\x19\x2b\x1a\x48\x6d\xf7 15058553829791583154901704964:\x30\xa8\x24\xce\xd6\x66\x3a\x4a\x7e\x8d\x61\x04 16505510426060913394485151890:\x35\x55\x09\xc9\x18\x8a\xe4\x20\x00\x81\xc8\x92 16562922219011279837127372398:\x35\x84\x87\x34\xa0\xc6\x1e\xc1\xad\xe5\xee\x6e 19377408426191829470254615075:\x3e\x9c\x9d\xd7\xa4\x0b\xcc\xa9\xb4\x62\x4a\x23 19377744742531698652350687667:\x3e\x9c\xe5\x0f\x62\xd8\xdb\x58\xf2\xc2\xa9\xb3 20103164822209650910919992057:\x40\xf4\xf2\xbc\xb4\x25\x44\x60\x88\xd1\x22\xf9 31809773303579737802187552088:\x66\xc8\x6d\x82\x19\xc2\xbb\xe3\xdb\xbd\x35\x58 32783981219444835819128244763:\x69\xee\x46\x0f\x0a\xd4\x65\x2c\xd3\x2e\x4a\x1b 34004572282758262235737457298:\x6d\xdf\xec\x45\x2b\x9b\xa7\x4d\x8d\x61\x82\x92 38411317219000564410565254284:\x7c\x1d\x18\xce\xd7\xf0\x85\x94\xdc\xeb\xdc\x8c 38485471939706203965525159571:\x7c\x5a\x6f\xae\x4e\xd7\x14\x03\xe1\x45\x6e\x93 39968684979957597002078329113:\x81\x25\x52\x42\x55\x3b\x7a\xee\x71\xc7\x99\x19 40715335449680479930937915876:\x83\x8e\xef\xa5\x66\xa6\xc9\x20\x25\x1a\x39\xe4 41104848099466660557667544934:\x84\xd1\x22\x28\x74\xd7\xfa\x83\xc0\x21\xaf\x66 41187312288648467794972935320:\x85\x15\x58\xa1\x1c\x0d\x60\x9f\x7e\x24\x84\x98 45263350803860355300587331544:\x92\x40\xf7\x5b\xc6\xa4\x55\x78\x04\x8d\xdf\xd8 48289421817010834156822623176:\x9c\x08\x12\xd2\x1a\x85\xbb\x0a\x49\x1e\x73\xc8 49329425999573087676652085532:\x9f\x64\x58\x45\xcf\x5c\x61\xd1\xbf\xdc\x61\x1c 49715735757997627350220027253:\xa0\xa3\xe4\x8b\xc6\xdd\x5c\x7b\x4f\x28\x35\x75 54802605461310131218908724605:\xb1\x13\xa7\x1a\xf3\x6f\x8a\x22\x32\x04\x3d\x7d 55964088366253719344562644279:\xb4\xd4\x68\xad\x64\xa5\x91\x2c\x41\x45\x25\x37 57614014152243666725115410708:\xba\x29\x32\x0d\x79\x41\xb8\x95\xd0\x36\x39\x14 62287074557188601443535935970:\xc9\x42\xa9\x15\xa2\x2e\x99\x40\xbb\xe9\xd9\xe2 62539657599059595514737581574:\xca\x13\x97\x9f\xc5\x1e\xb8\x0d\x3c\xbf\xde\x06 62930766509918780427038386015:\xcb\x57\x1c\x28\x4f\xc4\xe9\x35\x3a\xc8\x67\x5f 65480089393333480939726622742:\xd3\x93\xdc\x46\xbd\x67\x73\xc0\xfd\xe8\xd0\x16 66266340146406302283638794666:\xd6\x1e\x3b\x59\x78\x48\x75\xa4\x75\x40\x69\xaa 67125585889705671071277348828:\xd8\xe4\xfb\xb6\x8c\x8f\x3b\x1c\x16\xa5\x77\xdc 67894046196215088746269271378:\xdb\x60\xa3\x83\x3d\x06\x76\xf6\x5b\xe0\x65\x52 68806250707958040541031442505:\xde\x53\x32\x54\xe8\x53\x2e\x85\x08\x06\x28\x49 68941601620941091037205372333:\xde\xc3\x28\x00\x9a\x4c\x33\x97\x66\xbe\x1d\xad 69863673831307623642258188861:\xe1\xbd\xe0\x63\x49\x3f\x31\xe9\x88\x8b\xaa\x3d 70847392833602412677817487620:\xe4\xeb\x96\xfd\x41\x9b\xdf\x93\x35\xe4\xd1\x04 71498002904754362265388856000:\xe7\x05\xc3\x07\xe2\xae\xc5\x96\x2c\xd6\x32\xc0 71895171684946313644024805730:\xe8\x4e\x4a\xca\x9a\x13\x3a\x18\x01\x44\x39\x62 75131516706031388083717085984:\xf2\xc3\x55\x81\xbd\x92\x11\x05\x73\x6b\x1b\x20 75611313340785889769195547610:\xf4\x50\x36\x65\x6d\x98\xd5\x1b\x8a\xf3\xab\xda 76598314186751506760221024753:\xf7\x80\xa3\xf4\x80\x0a\x8b\xd0\x56\x2f\x61\xf1 77995251309572035026141340692:\xfc\x04\x28\xe5\xab\x67\x40\x98\x31\xd0\x64\x14 631658645776469546496614927161:\x07\xf8\xff\xc9\x19\x01\x47\x9f\x12\x02\x83\x0b\x39 914541494151081285838351175217:\x0b\x8b\x0a\xfe\x4b\x56\x4a\xcc\x76\xf1\xed\x0e\x31 1044476787674027593689838968045:\x0d\x2e\xe2\xf2\xf3\x57\xd4\x46\xd4\x28\x0c\xdc\xed 1570024502027800837427519332435:\x13\xd1\x05\xd4\x4d\xb3\x60\xd8\x28\xd3\x6c\xa0\x53 2282791753170904886614526582126:\x1c\xd0\x19\x14\xa9\xfe\x92\x95\x0e\x68\xe4\xdd\x6e 2783719642063033487798481665795:\x23\x22\xae\xeb\x2f\xc3\xfd\x5e\xed\x72\xab\x3f\x03 3042566104054300037411277102152:\x26\x67\x0f\xb1\x95\x52\x4b\xfd\xd6\x1c\x97\xdc\x48 4555412617517245954773795238306:\x39\x7f\x54\xff\xd8\x00\xfa\x23\x69\xfb\x74\x71\xa2 4997019473015158679322645047905:\x3f\x12\x3d\xa0\xed\xc5\x30\xdf\x9f\x72\xf1\x2a\x61 5289212392715748654981598647090:\x42\xc2\x5d\xf2\x69\xfb\xbf\x3f\x9d\x22\xcf\x93\x32 5547208775233181443163998987038:\x46\x03\xff\x8d\x7a\xec\x69\x21\xea\xc1\x79\x23\x1e 5681203568323465355217588279201:\x47\xb4\xf5\x72\x9b\x6f\x5f\xa1\xd4\x0f\xe5\x57\xa1 6026123685332450988425422738935:\x4c\x0f\x74\xae\x6d\x30\x9c\x36\xe0\x91\xf2\x95\xf7 6040185662811162188686502337958:\x4c\x3c\xe4\x79\xfb\xc8\x6e\x13\x4c\x5a\x1b\x1d\xa6 8208792808182063582092476421598:\x67\x9c\x0a\x43\x6d\xb8\x09\xdf\xcb\xc6\x3a\x15\xde 8596369594203748714980894223612:\x6c\x80\x5e\x44\x44\x33\xb1\x6d\x86\x66\xc2\xac\xfc 9088047168771995197355397177495:\x72\xb5\x10\x6c\x89\xaa\xb0\x01\x70\x9c\x07\x60\x97 9336314381498576410683974114615:\x75\xd7\x42\x3f\xc3\x6b\xb6\xe4\x12\xbd\xac\x5d\x37 9601132164972588483754248037506:\x79\x2e\xee\x62\xab\x2f\xce\xd2\x7d\x62\x3a\xe4\x82 9688718102517266561682607822244:\x7a\x49\xef\xc6\x5f\x71\x56\xfd\x7d\x31\x45\xd5\xa4 10370289389985105048245022868291:\x82\xe4\x36\x54\x78\x42\xe9\x37\x2d\x6a\xc1\xc3\x43 10893579007124073725233043725036:\x89\x7f\x0d\x5b\x23\x51\xfc\x49\x32\x8c\x5d\xda\xec 11004875796083980885085821632619:\x8a\xe6\xab\xe6\xee\x5e\xaf\x07\x83\x0b\xcc\x80\x6b 11033109962339354703693139330185:\x8b\x41\xe6\xa8\x31\xfd\x51\x1c\xae\xa1\xc2\xc4\x89 11426077413254933066724321773731:\x90\x37\xa5\xb6\xb9\xed\x74\xcb\x9a\x79\x47\xc8\xa3 11894880488884842446118078249688:\x96\x22\x6e\x87\x6f\x38\x21\x9c\x72\xb0\xc5\xfa\xd8 12180445192732961217799744982167:\x99\xbd\x24\x1d\x9e\x15\xb3\x37\x77\x98\x85\x0c\x97 12378019498653432383117499372878:\x9c\x3b\x89\xc0\x47\x66\x37\xeb\xe1\x1d\xc1\x15\x4e 13080099476022824754407083618659:\xa5\x18\x14\xb2\x63\x85\xd2\x54\xf0\xcc\x40\x31\x63 13454056654303057346073731446335:\xa9\xd0\x66\xd3\x1a\xeb\xee\x3e\xf9\x06\x22\xb6\x3f 14292042926127097954347302350825:\xb4\x64\x14\xd2\x80\x27\x7e\x1d\x15\x96\x85\x6f\xe9 14605464870879761463922823766114:\xb8\x58\xcd\x60\xe6\x6d\x80\xa6\x29\x31\x4b\xa0\x62 14919423800226289225358245376851:\xbc\x4f\x42\x1e\x35\xdd\x39\xd7\xf9\x2b\x88\x33\x53 15556826132177958147785710376478:\xc4\x5a\xd0\xf8\x2a\x54\x99\x9e\x4e\x4a\x3c\x16\x1e 15693347383019684345661258056082:\xc6\x13\xf0\xb3\x87\xfb\x7c\xae\xd1\x4b\xa9\xc1\x92 15752447585701787309957308923207:\xc6\xd2\xe7\x3e\x3f\x18\x89\xef\xe6\x94\xfa\xbd\x47 15784256688498979601182355953922:\xc7\x39\xaf\x1d\xc4\xf8\xee\x44\x38\xfe\x69\x19\x02 16744881572807314190306198706913:\xd3\x59\xa1\x65\x82\x82\x4f\x3e\x4a\xa3\x94\x5a\xe1 17570520847512271876701604061162:\xdd\xc5\x6a\x32\x90\xbb\x8a\xd6\x3f\xa1\x30\x9f\xea 17612331043971411143134445588909:\xde\x4c\x82\xc8\x0c\x62\x83\x2d\x90\xf8\xa4\x51\xad 18056649682988549580771341260682:\xe3\xe8\x2e\x8b\xa1\x4b\x44\xdd\x82\x40\x5e\x57\x8a 18132673324637063407602140093501:\xe4\xdd\xd3\xd3\xf1\x12\xab\x66\xea\x78\xf2\x9c\x3d 18233592087989826328614995309778:\xe6\x23\xe9\xdf\x54\xa7\x5a\xef\x37\x9a\x3d\x34\xd2 18403153178487833118308534476581:\xe8\x47\xcb\x84\xe3\x00\x51\x4c\x67\x2f\x8e\x5f\x25 18513751300441135534434062865696:\xe9\xad\x28\x24\x2f\xbb\x08\xc4\xd6\x7a\xea\x95\x20 18606479736205038131601556771040:\xea\xd8\xc7\x4e\x3f\x0d\x07\x1a\x80\x5b\x96\x10\xe0 18755920607200612891228241848253:\xec\xbb\xa5\xe5\x98\xa0\x96\x95\xec\x1c\xce\xe7\xbd 18886408621894646414235594426367:\xee\x61\x47\x0d\x83\x5b\x5c\x3e\xae\x2b\xb4\x87\xff 19347508181241250943701777563726:\xf4\x33\x2b\xab\x32\x24\x49\x86\x7b\x4b\x56\xc0\x4e 20272965598916929871685128672415:\xff\xe1\x7c\x1a\x35\x7b\x46\x8b\x2b\x57\x59\xd4\x9f 414075788031042759889408496587483:\x14\x6a\x5f\x07\xfc\xa5\x30\x92\xcd\xf2\x8d\xcd\x52\xdb 414759133017074817928886074670736:\x14\x72\xff\x09\xb6\x05\xd7\x68\xa4\xeb\x2a\x8a\xfe\x90 444061130839313301066039702092908:\x15\xe4\xd6\xe6\x37\xf9\xaa\x64\xc0\x92\x20\x04\x7c\x6c 653469582551926532012128285995303:\x20\x37\xf2\x19\x94\x7f\xb8\xaf\xab\x46\x36\xc7\xb1\x27 911488407334994665999908538043459:\x2c\xf0\x99\xe3\x1d\x45\xae\x3b\x1f\x9a\xbe\xe2\x4c\x43 957662972362104389251060049436787:\x2f\x37\x67\xf4\x19\x0b\xf5\x5b\xf1\x00\x25\x90\xe0\x73 970618881017607027585236164842294:\x2f\xda\xee\xc0\x8e\x40\xf1\xaa\x09\x23\x9a\x62\x93\x36 1069722078536546146342082397306794:\x34\xbd\xca\x74\x2f\x73\xa2\xe3\x02\x28\xfd\x43\x7f\xaa 1340520941937022155998732576887252:\x42\x17\xc0\xc5\xe4\x41\xb5\x60\x0c\x08\x97\xe0\x11\xd4 1437004934320862915793296041776551:\x46\xd9\x8d\x5d\xd0\x31\x75\x93\x1d\x40\xc2\xf9\x15\xa7 1447361113278511441769073958292514:\x47\x5c\x43\xfc\x44\x64\x04\xea\xf1\xf3\xb1\x65\x8c\x22 1592534761593563641562980112718386:\x4e\x84\x9d\x57\x9b\x61\x54\x16\xd4\xc0\xf5\x34\xda\x32 1597113034597014930966402537646336:\x4e\xbe\x66\x8a\x46\x3e\x02\x77\xb2\x09\x15\xac\x69\x00 1730740863276731688437830926188214:\x55\x55\x05\x57\x74\xaf\x7e\xae\x2d\x07\x28\x57\xbe\xb6 1781843031999967768169551852203528:\x57\xda\x05\x5a\xae\xde\x29\x9c\x9d\xed\xf5\x87\xee\x08 1791963023597932067384648743673624:\x58\x59\xc0\xcf\x88\x38\x8f\x4e\x12\xc4\xa5\xde\x5f\x18 1985480871790955355816575219325665:\x61\xe4\x4a\xb3\xbd\x88\x5a\xcc\x62\x24\xb5\xf0\xda\xe1 2123525929293862361000536950943772:\x68\xb2\xaa\x56\xf7\x2d\x43\x3b\x49\x56\x99\x87\xb0\x1c 2141810272567895287494385256479384:\x69\x99\x72\x3d\x3c\x2e\x1f\xa5\x3f\x3f\x6f\x1d\xba\x98 2234881780805610093008401555177921:\x6e\x30\x2c\x80\x6e\x2d\xc4\xf3\x19\xc3\x5d\x3a\xc1\xc1 2262239046883611132530662588769829:\x6f\x89\x78\x98\x8a\xe5\x67\xcc\x07\x97\xe4\xff\x66\x25 2578141593692731679489167738023131:\x7f\x1c\xb8\xc6\xb8\x1d\x04\xa4\xaa\x9f\x43\xcc\x2c\xdb 2839680257555778182601601547671813:\x8c\x01\xcd\xc6\xe6\x54\x92\xda\x82\x47\x67\x72\x99\x05 2952067688627654171763498592632382:\x91\x8c\x55\x26\xfa\x1e\x37\x19\x58\x57\x3a\x55\xfe\x3e 2984551669650118299882022435323201:\x93\x26\x56\x8e\x4c\x1e\xe3\xf7\x92\xe1\xcd\x20\x7d\x41 3018077136865983502438229111588243:\x94\xcd\x7d\x2e\xce\x1a\x85\x5a\xf6\x7b\x13\x61\xc5\x93 3218138354089429226026174490013501:\x9e\xaa\x9d\xd7\x04\x1e\x3c\x05\xc2\x7b\xca\x9e\xef\x3d 3332386979465449058796213556957804:\xa4\x4c\xa3\x0e\xf0\x1e\x65\x69\xa1\xd7\xb9\x37\x52\x6c 3413542669072525374598754007521133:\xa8\x4c\xf7\x3b\xfa\xb3\xf7\x87\x53\xa2\x14\x00\x17\x6d 3450140634872146937277896254814217:\xaa\x1a\xe5\xa3\xbf\x64\xf6\x1d\xea\x6d\xc0\x1f\xf8\x09 3471772524676105397131223534088162:\xab\x2b\xee\x0b\x9b\x39\xe6\xb0\xac\x18\xd6\x7b\x2f\xe2 3502930167092111007469299646294953:\xac\xb5\x31\xd1\x58\x81\xe3\xec\x5b\x09\xc4\xff\x6b\xa9 3548534210465078978461724636616990:\xae\xf4\xcc\x6d\xe0\xbc\xa4\x81\x75\x70\x86\x60\x19\x1e 3820246063945049709910434694491677:\xbc\x5a\x48\xc7\x47\x01\x02\x65\x58\x09\xd8\x12\xee\x1d 3820923027728011230980357665009179:\xbc\x62\xd4\x2a\x98\x12\x0d\xbe\xbb\xee\x14\x03\x2e\x1b 3836811592513049249138898660821732:\xbd\x2b\x5e\xe3\x58\x72\xcc\x7a\x78\xf6\x93\x2d\x0a\xe4 3985383330196619501514384449428026:\xc4\x7e\x9c\x10\x54\xa6\x77\x68\x0d\x70\x02\x27\x5a\x3a 3991929006433336695643150553896030:\xc4\xd1\x3a\x48\xcf\x4a\x3e\x19\x5c\xbf\x2d\x12\xd4\x5e 4142827745895283961734837265726269:\xcc\x41\xd6\x68\x8d\x24\x9c\x1b\x4c\x7f\x0d\x43\x7b\x3d 4160871858144498441323993219452876:\xcd\x25\x96\x14\x5f\xe7\x24\x4e\x50\xd5\x33\x3b\xcf\xcc 4178119777615671882630567628195372:\xcd\xff\x49\x1c\xf7\xd2\x34\xa9\x85\xa6\xbd\xdd\x46\x2c 4216845711393942903597740663664008:\xcf\xe8\x13\x5a\x97\xaa\xc4\x46\xe2\x02\x34\xb2\x6d\x88 4377997862798562858066056154489766:\xd7\xda\x1a\x09\xe7\xd2\xdc\x76\x7b\x31\x7d\x30\xa3\xa6 4385516057104429110730533368581571:\xd8\x38\xfe\xa2\x7a\x0e\x47\x37\x7d\x66\x07\xcd\x4d\xc3 4407608437282398008208930670680884:\xd9\x4f\xd6\xf7\x0b\x8e\xc1\xc2\xaf\x1e\xab\x54\x9b\x34 4552352850244970499694560886967378:\xe0\x72\xc5\x63\x39\x20\xc3\x18\x58\xe0\x41\x44\xcc\x52 4575054272051580753016172183273692:\xe1\x91\x4d\xa3\x38\x0e\x98\x1b\x64\x4c\x65\x8b\xc0\xdc 4958043323322609387768044639610772:\xf4\x73\x4e\x01\x40\x1d\x2b\x2a\xae\x0f\x41\x21\xe7\x94 4971025927453080796141494600264701:\xf5\x17\x2b\x0f\xb0\x07\xfc\xe2\x77\xd5\x47\xf8\xeb\xfd 5133208730649543344256059483337570:\xfd\x16\x33\xf6\x2e\x65\xac\x57\x0d\xc0\x34\x03\xb3\x62 13060987554881903687783289085142965:\x02\x83\xf4\xd6\xe6\x31\xd6\xd3\xde\x40\x62\x5c\xba\xa7\xb5 65483447426312329123984155553414152:\x0c\x9c\x95\x4e\x4a\x2e\x57\x10\x34\xfd\x3f\xf2\x0d\xbc\x08 88493983691547613457527398373748756:\x11\x0b\x17\x1a\xf5\x3b\x64\x19\xd2\x47\x8e\xd4\x67\x70\x14 106299122425433793241733657527831923:\x14\x78\xf3\x8d\x11\xb8\x38\x18\xe0\x93\xed\xbd\x97\xcd\x73 112094450092194678262457320322244163:\x15\x96\xae\xde\xb3\x0e\x6f\x25\xf8\x40\x24\x06\x9a\x1e\x43 137645779900299002014902460807663013:\x1a\x82\x75\xfe\x15\x44\xbf\xe5\x18\x29\x85\x1a\x60\x4d\xa5 145680312881747331814803974667791724:\x1c\x0e\x98\x0e\x4e\x70\xc3\xb5\x41\x1d\x75\xbb\xd2\x6d\x6c 166270437185439146025852797504449382:\x20\x05\xc3\xf6\x20\x82\xe2\x2b\x6d\xfe\xfe\x98\x1b\xeb\x66 166590329699698155388924473669943997:\x20\x15\x89\x92\x96\x68\x3b\x93\xd3\xde\x7f\x26\x59\x82\xbd 183645709503050124771396164472259841:\x23\x5e\x6e\xba\xef\x77\xe7\x9b\x8c\x4f\x53\x2b\x27\xc5\x01 213127721892602217325687875256327307:\x29\x0c\x02\x0a\xbb\x27\x6e\x6f\xf0\x93\x0a\x2c\x52\x1c\x8b 231713231795883077028238025207331330:\x2c\xa0\x58\x28\x15\x8f\x6c\xb6\x1b\x8c\x38\x63\x98\x3a\x02 246122200882976092512557669941159923:\x2f\x66\xc2\xea\x39\x47\x8c\xdb\xae\x3a\xf5\x8f\xae\xa7\xf3 279849394727284497835838840115355252:\x35\xe5\xa3\xf3\x19\x1b\xf6\x1c\x49\x8b\x9f\x9c\x30\xde\x74 281472212781900852340062045048386969:\x36\x35\xa6\xcb\x09\x96\xc1\xb0\x04\x17\x70\xe5\x03\xb5\x99 295553326030272392695870524975584497:\x38\xeb\xe7\x6d\xd3\xce\x2f\xcf\x2d\xc8\xd5\xa3\xf5\x94\xf1 364320759472809322399012704820002507:\x46\x2a\x66\x77\x3a\x80\xaf\x52\x12\x69\xf2\xa7\x11\xfe\xcb 388265813686040777614464077866421796:\x4a\xc6\xfb\x8a\x3e\x38\x0b\x90\x7d\x5a\xdb\x0d\xfb\x4e\x24 391162515664101019679679374684610640:\x4b\x55\xcd\x0f\x22\xd0\x7a\x2f\xd3\xf0\x93\x5a\xc8\x60\x50 405920592579188106254935052139198938:\x4e\x2d\x6e\x2d\x81\x8a\x71\xb7\xaf\x0c\xba\xb7\x75\x79\xda 421631039966313687041401287540327265:\x51\x34\x03\xe6\xd6\xb4\x98\x49\x80\xcf\x16\x72\x11\xc3\x61 438715011483242941585234384338902343:\x54\x7e\x51\xef\xfe\xea\xdf\x1c\x4d\x6a\x4e\x9d\xb1\x5d\x47 505363318191593745142336448353481598:\x61\x54\x55\xd5\x9f\x8d\x9b\x1e\x9d\x09\x3f\xc4\x57\x33\x7e 591172856718521839681288559032888428:\x71\xdb\x12\x7a\x71\x26\x70\xb8\x7e\x6e\x6b\xb1\x0d\x6c\x6c 592585699408025483998355935885640806:\x72\x20\xbb\x0f\x62\x7e\xae\x6d\xc0\x81\x29\x05\x29\xc4\x66 632726113682619800125599714026486666:\x79\xdb\xce\x51\x16\x49\x3b\xfb\x8a\x5a\x15\x79\xd0\x7b\x8a 656770888506646461826166286216686319:\x7e\x7d\x4e\x0a\xc5\xec\x8f\x71\x37\x69\xd9\xe0\x2d\x6a\xef 662122037007310047431715210089832895:\x7f\x85\x23\x08\x1c\x90\xaf\xe7\xfc\xac\x14\xfd\xa5\xa1\xbf 665114214554238484126421073057808820:\x80\x18\xa9\x9f\x34\xb3\x6b\xd4\x44\x39\x5c\x1b\x8c\x01\xb4 676605232849260914817974415989371818:\x82\x4f\x36\xa9\xd4\xd5\xe7\xa7\x2f\x52\x0d\xf2\xef\x73\xaa 725798091166591871958379717637763039:\x8b\xc8\x9b\xd3\xc8\xff\xeb\xa4\xbd\x8d\x94\x5c\x58\xef\xdf 757024566712087790589439218371754208:\x91\xcc\x31\x5c\x0a\x98\x5b\x40\x09\xf6\x96\x8a\xb3\x78\xe0 769734713394304414231277438515219870:\x94\x3e\xd9\xf6\xf0\xd4\x75\xbc\x2c\xa9\x25\x62\xfb\x0d\x9e 793523549151823316505811802729039734:\x98\xd3\xbb\x48\xe6\xa8\x63\xf4\xb7\x20\x5b\x2b\xad\x47\x76 816942992679710446636681960179100934:\x9d\x56\x66\x38\x31\xb4\xdc\x97\xb4\x4c\xc4\x2e\x57\xed\x06 849878924231526235216181173024081926:\xa3\xae\x44\x1e\xb5\xbd\xf8\x0f\x1b\x76\xee\xe5\xc6\x48\x06 880575188917032338216627923414471015:\xa9\x97\xb5\x73\x47\x63\x8d\x61\x16\x1f\x53\x82\x94\xd1\x67 913966465689257866641036773364495470:\xb0\x06\x06\x9d\x8d\xc4\x1d\x62\xa4\xd5\xb4\x84\x42\x74\x6e 957397182881068052181026976094549914:\xb8\x63\x53\x55\x60\x1a\xdc\xdc\xcb\x19\xdb\xc0\xb0\xf7\x9a 965239829942575885417172129736147093:\xb9\xe5\xff\x74\xc0\x7a\xed\x60\xca\xa4\x5d\xa7\x31\xc0\x95 1038523434748962833601853020593384055:\xc8\x03\x28\x96\xda\x52\x43\x91\x05\x13\xf4\xe9\x1a\xea\x77 1054728832125261262376663034231900816:\xcb\x22\x25\x75\xda\xb6\x8e\x12\x07\x8e\xed\x99\xe1\xca\x90 1070131876454760563557172014034386032:\xce\x19\x93\x36\x56\x5e\xa9\xaf\xdf\xaa\x04\xd9\x3a\xfc\x70 1082783749977121090094032659103654941:\xd0\x89\x5c\x4e\x80\x8a\x15\x64\xc3\x30\xb7\x96\xf0\xa4\x1d 1086587097500445399392617206724936736:\xd1\x44\xe1\x4d\x26\xa2\x84\x56\x89\x41\xf9\xf0\x87\xc4\x20 1100357571090786535529888380672454962:\xd3\xeb\xd1\x1d\x12\x3d\x0e\x89\xd4\xef\xac\x67\xd2\xb1\x32 1167374071362882566373753673585055501:\xe0\xd3\xfc\x44\x44\x78\x96\x52\x5f\x6b\xa2\xff\xe0\xd7\x0d 1232330621443168877372248796519240809:\xed\x56\x97\x31\x69\x36\xb4\x9d\x3a\xf0\xa8\x52\x2c\x94\x69 1300237408176630014312789119651112694:\xfa\x6a\xa7\x57\x4f\xe7\xe8\x67\x8e\xb7\xe6\xc3\xa1\x66\xf6 1321817528935256994053014057087603044:\xfe\x92\xa2\xc2\x33\xfe\xc9\x94\x30\x88\x25\x62\x17\x11\x64 13025730617447490497535351399747715283:\x09\xcc\xaa\x1a\x56\x32\xf1\x4d\x37\x7b\x8e\x42\xda\x5c\x80\xd3 19755893352397913560620717911073114306:\x0e\xdc\xd8\xbe\x9d\x60\xcb\x27\x8d\x93\xfa\x64\xd3\x9c\x48\xc2 21094963578870403128755930899539773335:\x0f\xde\xbe\x01\x07\xe9\xd4\x38\x92\xf1\xee\xb6\xc3\xaf\x47\x97 34980930767403902200200517966203523804:\x1a\x51\x15\x0b\x5e\xd0\x36\x58\x00\x32\x25\x84\x5b\x85\x12\xdc 36545713642732872788915375477159812741:\x1b\x7e\x72\xcb\xf0\x3f\x51\x6f\x8d\x81\xbc\x4f\x85\x06\xde\x85 53586894389725092759543799468253454652:\x28\x50\x75\xe0\x42\x9b\x34\x50\x2f\x5a\x7d\x42\x7e\x47\x21\x3c 54335328807166898155168232879605449899:\x28\xe0\x9a\x8a\xb1\x5e\x7c\x40\x45\xff\x83\x74\xa9\x38\x84\xab 67989633151165045962962856176150188337:\x33\x26\x53\xb8\xda\x34\x57\x08\x3f\x6c\x33\x9a\x42\x21\x11\x31 71309061991236552657862974313180989248:\x35\xa5\xa0\x33\x15\xfc\xe0\x00\xf4\x8b\x84\x73\x30\x14\x87\x40 71629992200014281790275475142901157329:\x35\xe3\x6f\x47\xce\x58\x68\x76\x74\x01\x59\x14\xcf\x4a\xcd\xd1 71940290262655545573481844114270112263:\x36\x1f\x32\x27\xf9\xb2\x06\xc1\x3e\xee\x38\xe0\xc0\xa2\xca\x07 73383557191745675282954728615375724396:\x37\x35\x28\xb5\xac\x84\x53\xb8\xa9\x31\x96\x6c\x4d\x66\xdf\x6c 77753297450097368636916563951372549033:\x3a\x7e\xbd\x89\xc4\x35\x4e\x5f\xea\xe8\xb2\xea\xb2\xed\x3b\xa9 82241178686798381084205496856443026508:\x3d\xdf\x13\x2a\xa5\x1c\xe3\x96\x66\xa5\x29\x18\xa9\xae\xfc\x4c 88229943760570602689556407506779614975:\x42\x60\x78\x14\xd7\x4b\xf9\x27\x2a\xe5\x9b\xbd\xf2\x59\xae\xff 97734520968870729352863943252926465320:\x49\x86\xfb\xea\xec\xef\x37\xbd\xe1\x07\x4c\xb9\x2d\xe7\x05\x28 115600709306936082408993271000144911495:\x56\xf7\xe3\x03\x02\x4b\xe0\x3f\xcb\xd8\xf1\x6f\x97\xf5\x9c\x87 119154375618149489028226018824767316559:\x59\xa4\x4c\x49\xc7\x62\x70\x9f\xf4\x66\xf5\x77\x86\x5e\xa2\x4f 119896363517987614145915708718255925634:\x5a\x33\x33\x1d\xb8\x59\x79\x8d\xc5\xc9\x86\x55\x0b\xc3\x69\x82 126031958869463935521672629861106656335:\x5e\xd0\xdf\x52\x91\x95\x2a\xdf\x4d\x3f\xbd\xd2\x7c\x79\x24\x4f 129272980676047201595406612703654587863:\x61\x41\x12\x08\xe8\x58\x6f\x12\xfd\xfb\x8e\xe5\x8a\x8a\x2d\xd7 131888676415229101677212708440881649926:\x63\x38\xd5\xca\xa5\x25\x43\x33\x8c\xf0\x0b\x1b\xd1\x0e\x59\x06 141654974769040319689555982270701077909:\x6a\x91\xc1\x7a\x01\x7e\x73\x9d\xa0\xf2\x1e\xb5\x70\x11\x85\x95 145934208145108196527995495448737737625:\x6d\xc9\xe7\xf8\xa4\x17\xa3\x7c\xec\x71\x80\xc9\x72\xe3\xeb\x99 146837444044872844755476868527335071799:\x6e\x77\xdc\xf0\x79\x26\xd8\x6f\x7d\x9d\xfe\x94\x13\xca\xe0\x37 167645469998983396269111499094368642696:\x7e\x1f\x57\xd3\x83\x7b\x4f\x40\xa2\x44\xbc\x60\x13\x32\xe6\x88 177034602917940782327712103052904297069:\x85\x2f\x9f\xd1\xd0\x08\x46\xe4\xd3\x1e\x74\xd1\xb9\x50\xf2\x6d 178803208549546787757640108677884952800:\x86\x84\x3e\xcf\x3e\xbc\xdd\xed\x66\xaa\x25\x3d\xc5\x8e\x40\xe0 182173555217702708103290800572965619245:\x89\x0d\x59\xba\xd2\x66\x23\x11\xa5\xf7\x48\x53\x85\xd4\x86\x2d 183093010221667266499437072403418969249:\x89\xbe\x6e\x5c\x87\x98\x7c\xa4\xeb\x50\x30\xc0\xe0\x15\xf4\xa1 193295521669052151571697070502197751987:\x91\x6b\x5d\x03\x2f\x2b\x97\xd5\xf8\x85\x45\x1b\x9b\x52\x70\xb3 195684685384244017512853397077393748451:\x93\x37\x7f\xe0\xcd\x39\x77\xd7\x57\x9f\x83\x20\x17\x09\x31\xe3 210169409876890806689088569895397330418:\x9e\x1d\x27\xee\xcd\xd2\xe1\xd8\x5a\xe8\x72\xe0\x0a\xd7\x8d\xf2 211815827655954217051541800511784066267:\x9f\x5a\x3e\x98\xb7\x8e\xbf\xd6\xfc\xfe\xdb\x58\x44\x8f\x9c\xdb 229866846806512757642609032856887527387:\xac\xee\xbe\x8d\xa2\x24\x32\x3e\xe2\x8f\xd9\x15\x1b\x3a\x87\xdb 231801258667715435633080846673523334081:\xae\x63\x4c\x6b\xe7\x5b\xab\x78\x26\x5b\xe5\x40\xdb\xc5\x5b\xc1 232663769988757615055744012399071706315:\xaf\x09\x69\x83\x49\x95\x42\xc9\x5e\xd7\x7a\x15\x41\x03\xbc\xcb 234577677943339643024680534647242265363:\xb0\x7a\x04\x75\xdf\x56\x88\xf9\x16\x1a\xd9\x29\xda\x78\x93\x13 235341386560231726219858937704988721381:\xb1\x0d\x1a\x33\xce\x53\x5a\x9d\x91\x16\x1c\xfe\x89\x56\xc0\xe5 237187620306602379473641378166944302470:\xb2\x70\xac\x8d\xcb\xea\x4d\x53\xcf\xa3\x9c\xf7\x38\x0c\x05\x86 250891396566972447857975790024890120162:\xbc\xbf\xec\xe3\x53\xe8\xda\xa5\xf7\xd3\x94\x77\xe4\x15\xf7\xe2 257851684749722772635566756693943642107:\xc1\xfc\x6d\x97\x1c\x61\xde\x19\x94\xcf\xe6\x1d\x42\x21\xe7\xfb 276205446739130083013948854635715586017:\xcf\xcb\x3b\xeb\xdd\x9c\x48\x4c\x27\xf1\xc3\x65\x39\x43\x67\xe1 292750259889049051040621882352688282136:\xdc\x3d\xa6\x30\x50\xf1\xa4\x45\x49\x94\xef\xba\x2e\x91\xba\x18 294554806232495244548644229956867283384:\xdd\x99\x31\x31\x4e\xe9\xca\x50\x2b\x70\xb3\x1c\x16\x4d\x59\xb8 297796982576457205939045947543485717604:\xe0\x09\x9c\xd3\xf5\x25\x2e\x66\xf4\x29\x23\xee\x4a\xb0\x9c\x64 302633111670468092102103517322713269377:\xe3\xad\x04\x66\xc1\x66\x9f\xf5\x5d\x34\x2e\x22\xd7\xc4\x84\x81 305025417103633083230664287805004988438:\xe5\x79\xc2\x2a\x6d\xb9\xfa\x78\xed\x2d\xc3\x7d\x78\xaa\x40\x16 309838178388585139213523871412785371948:\xe9\x18\xa9\x9e\x02\xa8\x1d\xdc\xbb\xd7\x9d\x71\x6b\x21\xdb\x2c 333086520508465133873272936677305873394:\xfa\x96\x21\x61\x5d\x14\xcd\xf9\x55\x16\x72\x64\x8f\x21\xf3\xf2 593893421089204273602839630668429777404:\x01\xbe\xcb\xb6\x5c\x3e\x65\x32\x06\xed\x60\x14\xd5\x34\x0f\xd9\xfc 769617624970053377142813828023525757364:\x02\x42\xfe\xf6\x84\xed\x3f\x14\x71\x5e\xf9\x05\x71\xa2\x9a\xd1\xb4 2701362151632160107701662065618888309917:\x07\xf0\x47\x6d\x04\x42\xdf\x06\xc6\xf6\x0d\x04\xd2\xb9\x8a\x3c\x9d 3133741980956936625334931467671409184345:\x09\x35\x90\xc0\x7d\x3a\x79\x39\x8a\x37\xfd\xf3\x28\x6b\x32\xce\x59 5525220559272261576776370979049018580038:\x10\x3c\xb6\xc5\xbe\xee\xa3\x7c\x18\x72\x03\x9b\xa8\x77\xfd\x5c\x46 6638344136560431430355558013042177252717:\x13\x82\x22\x93\x4b\xc5\x41\x44\xb4\xcd\x28\x67\x74\x66\x6e\x9d\x6d 10158028396840846985694018364133318486116:\x1d\xda\x0d\x1b\x46\x48\x25\x80\x76\x72\xa3\xb0\xe8\xa7\xc6\x68\x64 10359410165752354572612252297133461681318:\x1e\x71\x8d\xd3\x0e\x94\x16\x9c\xe1\xbf\xd0\x0c\x72\xf4\x65\x34\xa6 11811267647691268526478640709829989081531:\x22\xb5\xcf\x67\x85\xd8\x9d\xc5\x72\x50\x3f\xfd\x04\x9a\x11\xa1\xbb 12602342653771152916143187859180026319823:\x25\x08\xf2\xe8\x9c\x26\x02\xa2\x03\xaf\xa5\xbb\x50\x72\x9f\xd3\xcf 12832881119404005826071802509897945566778:\x25\xb6\x63\x00\x87\x25\x95\x05\x96\x71\x8e\xba\xd3\xd5\xc3\xce\x3a 17247603649301057032847211149334866531291:\x32\xaf\xa7\xa2\x3a\xe4\xcb\xdf\x38\x61\x64\x93\x36\x14\x23\x93\xdb 18133177831930624335885254441699173315348:\x35\x49\xe3\x04\x70\x7c\x6c\x27\x74\x8a\x79\x4c\x7b\x97\x59\xb3\x14 18498857924982717677886147426946297036108:\x36\x5c\xfe\x71\x04\x1b\xaa\xe2\x5d\xff\xac\x81\x58\xba\x92\xfd\x4c 22125708040076607825867299724248086029777:\x41\x05\x88\x5d\x92\x69\x11\xdc\x4e\x74\x09\xa2\x4f\x92\x09\x25\xd1 25395592601563568979656012784204564808638:\x4a\xa1\x85\x39\x84\xb2\x0a\xac\x86\x0a\xde\xca\xa9\x91\xf2\x43\xbe 28326165878984271681807472478013651019010:\x53\x3e\x3d\x1b\x8b\xc6\xf1\x71\x34\x8f\xcf\x4c\xd4\x9a\xb5\xe5\x02 29517331309792230145490996398488229714187:\x56\xbe\x5f\x39\x8c\x04\xf7\xa0\x93\xd1\x5c\xcf\x80\x7d\xb3\x19\x0b 30335292112240162095191013453738729530802:\x59\x25\xbc\xbe\xbc\xe3\xb6\x09\x48\x1a\x8e\xb6\xdf\x88\xdb\xe5\xb2 30731228735690443440894441252265144572641:\x5a\x4f\x9b\x5d\x6f\xda\x0b\x38\xbc\xcb\x12\x19\x96\xc5\x7f\x5a\xe1 32697823768351397125466529240514856438607:\x60\x17\x1b\xca\x8a\x8a\x70\x5b\x75\xb6\x66\x98\x90\xe5\xeb\x4b\x4f 34836814675752435792362489799250287648735:\x66\x60\x4e\x74\x82\x17\x54\x04\xef\x2e\xe6\xb6\x6a\xfa\x0d\xdf\xdf 35976522796208206192700335869330728668688:\x69\xb9\xba\x41\x3b\x89\xec\x07\xa3\xf1\x30\xe6\xfc\x30\x77\xce\x10 36392245650330661009876959710833062089369:\x6a\xf2\x7b\x90\x6b\xec\xa5\x2b\xff\x6a\x12\x3e\x8c\xde\x92\x92\x99 41298552862426777971487868270546367761373:\x79\x5d\x93\xf6\x35\xf2\xe0\xac\x36\x6a\x07\x32\xc8\x3e\x4b\x4b\xdd 44968822422078040120406892762936289999589:\x84\x26\xc8\x2a\xa9\xa7\x96\xd8\x27\x0c\x1c\xdd\x46\x41\xcb\x3a\xe5 45174810119647950331978445901408799428358:\x84\xc1\xbf\xf4\x42\xc3\xd0\xfb\xbe\xa6\x29\x5c\xcd\xe7\x3e\x0f\x06 45739124112716620299499665588488151639757:\x86\x6a\x4a\xe0\x39\x2e\x74\x6b\xad\xe5\xba\x44\x5d\x33\xaa\x26\xcd 46824360105822234130014115225518259538140:\x89\x9a\xbb\xb9\xb7\x93\xb3\x63\x35\x9c\x4b\xcf\xb8\x23\xa3\x88\xdc 48135339914960406403831409985626150497676:\x8d\x75\x01\x40\xa6\xfd\x00\x09\x86\x4b\xde\x2a\xb4\xe3\x33\x6d\x8c 49117557359465288604081826392282858432483:\x90\x57\xf1\x73\x8d\x52\xf9\xf6\x4f\x68\x69\x30\x20\xa1\x0a\xa7\xe3 49959704242950362501179202320273681029480:\x92\xd1\x81\x0a\x9a\xaf\x80\x9d\x34\xf5\xba\xf5\x7d\x5f\xaa\x19\x68 58503826244746081584769578812068883077928:\xab\xed\x63\x15\x25\x2b\xc0\x8c\x92\x1c\x03\xc3\x35\x3e\xe0\x1b\x28 62283106395781796764445611055833177580346:\xb7\x08\x99\xf6\xb5\xa5\xf6\x61\x41\x39\xb6\x19\xce\x74\xce\xe3\x3a 62411848890934136769639586591653364457865:\xb7\x69\x74\xdd\xc9\xe8\xac\x2e\x6e\xff\x63\xc7\x77\x40\x3b\x61\x89 62571135017315069543603781714065618409378:\xb7\xe1\x4a\x42\x27\x71\xef\x22\x74\x96\x2b\xb6\x2d\xa8\x08\x97\xa2 63027844297268636553783872656222363297236:\xb9\x38\xe1\x44\x27\x8e\xa2\xe5\x97\x51\x29\x14\x2b\xef\x7b\xa5\xd4 67754105317400471649480485962712201348350:\xc7\x1c\x86\x07\x51\xfd\x27\xb6\xfb\xd9\xfb\x13\x27\x48\xf8\xc4\xfe 70415060961499389115179366415379203530698:\xce\xee\x67\x71\xb4\x7f\x8a\x90\xbd\x2f\x04\xe4\xc9\xbf\x76\x9f\xca 71198241915646618820496671933569523060569:\xd1\x3b\x9a\x9b\xfb\x8b\x94\xb6\x95\x03\xa1\x2d\xcb\xc0\x55\x0f\x59 75012770870777706303822461126094578863975:\xdc\x71\x56\x29\xc4\x20\xf6\x46\xd4\x80\xfc\x1c\x67\x0c\x81\x4f\x67 75068190306766574807600085838163642990119:\xdc\x9b\x07\x8e\xeb\x2f\x5d\xd5\x28\x8c\x3b\xb3\x65\xae\xdc\xbe\x27 75586503935522288196062585874084725517394:\xde\x20\xf7\x21\xd1\x15\x3b\x69\xab\xf1\x88\x09\x3d\x2b\xe3\xec\x52 77500696939574983318798136818724109212503:\xe3\xc1\x0b\x4b\x70\x32\xdf\xf3\x70\xcf\x3b\xbd\xe4\x14\x9e\xdb\x57 79440376804565392115193399199008535538024:\xe9\x74\x4c\x0c\x52\x5d\x14\x51\xaa\x2e\xd9\xdc\x61\xde\xb6\xe9\x68 79829880327034559062562108924690831050396:\xea\x99\x53\xb2\xa7\x83\x2b\xd0\x23\x96\x1b\x4a\xa0\x63\x89\x06\x9c 80475500215875754830934801043134743373497:\xec\x7f\x09\x90\xc6\x8d\x39\xc3\xf8\xb8\x6c\x89\x7e\x13\xbc\xe6\xb9 82685114972367749329027109267613692634501:\xf2\xfd\x5d\xe3\x56\x7c\xc2\xdb\xd3\x2a\x3d\x67\xce\x3b\xc6\xa5\x85 86308256676691323315792342249629705922628:\xfd\xa3\x1d\x99\x20\x5a\xbd\x77\xb2\x29\xfa\x63\x89\xba\x61\x68\x44 86501365077250589524001574728771445169928:\xfe\x34\x64\xec\x5b\x17\x02\xb8\xc1\x46\xf8\xb0\xba\x5c\x13\x9f\x08 940042626368439124467773598417435619206045:\x0a\xca\x89\x78\x4f\xf5\x82\x20\x67\x0d\x58\xdd\x2f\x46\x18\x4f\xa3\x9d 2099221025647614401595220932805892343694588:\x18\x19\x0e\x5f\x51\x75\xba\x1b\xe8\x18\x6b\x64\x30\xeb\xfa\x59\x84\xfc 2965570893783515489426559654843400759407083:\x22\x0b\x07\x92\xa7\x72\x62\xa2\x1c\x5b\x08\x09\x46\x14\x78\x61\xf1\xeb 4242862361322870974557447233418873784896455:\x30\xb4\xa6\xdf\x28\x95\x1d\x58\xd0\x32\x4f\x60\x6e\x26\xc7\x8e\x0b\xc7 4307247671666485284678418694331124193288649:\x31\x71\xdc\xfe\xe0\x1e\xb4\x52\xa0\x54\xc9\x02\xef\x70\x1f\x11\xe1\xc9 4397089590903605097727192514445691407740331:\x32\x79\xe2\x8b\x20\xa1\xb3\xca\x67\x2a\x91\x6f\xee\xa8\x40\xf6\xad\xab 4767823667100134818179792604260575199161970:\x36\xbb\x5f\xdd\x00\xac\x6c\x1c\xff\x6b\x43\x21\xa8\xa0\x11\xc4\xee\x72 5693239682337617054596274426377229368775299:\x41\x5a\xed\x7e\x7a\x90\x9c\xd1\xd9\xf4\xec\x53\x0c\x25\x94\x5f\x52\x83 6273773358902689650293934143850426751400751:\x48\x04\xf6\x7d\x9e\xf7\x18\xbe\xb8\x68\x82\xd2\x76\x90\xa9\x46\x3b\x2f 6284172249947041873539002817993712236457053:\x48\x23\x85\xbf\x2f\x9f\xc6\x48\x6c\x5a\xcc\x4d\x99\x15\x81\x03\x6c\x5d 6817152980422569482776998327474422345637047:\x4e\x41\xcf\xe2\x0b\xe4\x44\x89\x61\xbc\xe3\x10\xd5\xa0\x37\xc8\x1c\xb7 7622241054433566611563832922392918887080300:\x57\x7f\xc0\xd5\x01\xd3\x90\xe6\xbd\x2a\x59\x24\x55\xb4\x13\x79\xa1\x6c 9107762681307845321489972096456243101309020:\x68\x8d\x4f\x17\x6e\x2a\x81\x18\x5b\x0d\x9b\xff\xad\x2c\x62\xbc\x18\x5c 9185227262318243992627273645515466340970268:\x69\x70\xf4\xf7\x0c\xd1\x60\x50\xa1\xd0\x50\xe5\xdf\xa2\xdf\xca\x2f\x1c 9447686761810204382153649304172806021154917:\x6c\x74\x41\x8b\xf9\xe2\xae\x63\x78\xe3\x9f\x2c\x59\xab\x3d\x5d\x88\x65 9695931424208646357614218835839074341729358:\x6f\x4d\xc8\x12\xdc\x61\x64\x49\x06\x8f\xf8\x3d\xa5\x6d\x1f\x6f\xb4\x4e 9863010195211745062750049692525049087161123:\x71\x38\xc8\x2b\xac\xec\xe3\x9a\x15\xa2\xc0\x39\x81\x8f\x15\xca\x73\x23 11289016296764353026053555862104925551335641:\x81\x97\x6f\xec\xdc\x84\x82\xf6\x0f\x60\x4b\x6a\x33\x94\xf5\x86\x18\xd9 11629859868014662755197212785790804341457108:\x85\x81\x16\x20\xe2\x39\x05\x14\xb4\xc2\x8c\x5a\x74\xd6\xf3\x7a\x80\xd4 12344922475674854302989655215257979996755998:\x8d\xb6\x77\x71\xb4\x41\x46\x44\x8c\x4e\xab\xf2\x30\x80\xbf\xc2\x58\x1e 12882613349753220938854352556981920663470364:\x93\xe2\x99\x19\x39\xa9\xdf\x5c\x41\x10\x11\x60\x49\x35\x74\xb6\x01\x1c 13665850009235335799778142353771652966639514:\x9c\xe0\x52\xde\xd4\x3f\x5a\x46\xa2\x84\x38\x48\xb8\xce\xed\x65\xe7\x9a 13692341613559548489513484429538465971346401:\x9d\x2e\x2c\xf0\x3b\xbe\xa3\x28\x17\x60\x08\x58\x68\x2e\x02\x46\x9b\xe1 13753953207223321928515181996330174641298599:\x9d\xe3\x3c\x59\x8c\x9a\x0d\x87\xfb\xaa\xe8\x60\x1a\x12\x58\x13\x5c\xa7 14268506481085886413041815306183120266992480:\xa3\xcb\x5f\x35\x5c\x54\x93\xee\xd3\x31\x07\xc7\x28\xe8\x73\xb8\x1b\x60 15278419505500095506222151220176859352731884:\xaf\x63\x3d\x52\xda\xf2\xb3\xcd\xbb\x63\x55\x02\x39\xf7\xfe\x37\x10\xec 15424200902949201698348887212458337747772995:\xb1\x0f\xa7\x0e\xb9\x34\x14\x1b\xdb\xf1\x58\xb0\x1e\x05\x86\x02\xa6\x43 15433504305450347442481511270307106454157151:\xb1\x2a\xfe\x28\xde\x9f\x1b\x4e\x3e\xdd\xd2\xdc\xa7\xc8\xf1\xb2\xb7\x5f 15631090120207356538408906418407201090474047:\xb3\x6f\xa5\x34\x97\x9f\xd5\x0d\x3a\x1c\xe3\x60\x90\x9b\xe1\x5e\x90\x3f 16044894062798629423024733175504418934156113:\xb8\x2f\xb4\xb1\x01\xa9\x08\xc8\x01\xa3\x8c\x32\xe6\x14\x8a\x68\xeb\x51 16779051581921973328151170919652829578091951:\xc0\x9d\x33\x6c\x01\x10\x49\xbc\xb9\xba\x92\xec\xc3\x7a\x08\x77\x5d\xaf 17497125220999532077362485585474532589796266:\xc8\xdb\x6d\xfc\x61\xb1\x64\xd1\x5e\x9d\x36\x20\x6b\x38\x7f\xc1\x7b\xaa 17988726165193719432586998724170033603061020:\xce\x80\x1d\x6e\x4a\xf9\xe2\xbf\xd6\xd3\x43\x1c\xe4\x98\xbb\xfc\xa5\x1c 18017102378147600884862174798477058889358967:\xce\xd3\x81\x52\x1d\xd2\x93\x62\x61\x0e\xbb\x83\x75\x7d\x69\x1e\x1e\x77 18300640233250982536915336160829000431517758:\xd2\x14\xbf\x7e\xaa\xe7\x04\xf9\x57\x02\xbf\x19\x83\x2d\xa1\x6d\x40\x3e 18306645656169048025441590330048388857347919:\xd2\x26\x65\x79\x0c\xdd\x1a\x13\x11\x6f\x93\xd5\x95\x5f\x93\xa0\x3f\x4f 18694855816016954990716176199935432379526642:\xd6\x9b\x3e\x56\x34\xf6\xeb\x4b\x95\xcc\x59\x4c\x27\x06\x53\x3e\xed\xf2 18758620443721063620678926137455784072140552:\xd7\x56\xa1\x82\xcb\xb2\xd2\x7a\xd4\x99\x32\x77\x4a\x7d\x09\x69\x57\x08 18840603380877299380019918039258753523098025:\xd8\x47\x8e\x9e\x27\xce\xbf\xe6\xf9\x1b\x2c\x5c\x34\x6d\xd4\x89\xa1\xa9 18963857615734590504262219798877040103767999:\xd9\xb1\xc4\xcc\x52\xec\x48\x8e\xb5\x08\xfb\xd7\x15\x8e\xa4\xe5\xbf\xbf 19431805135109714431017588804626774377443302:\xdf\x10\xf1\x62\x52\x0f\x47\x6a\x9e\x4e\x89\xb7\x82\x56\x68\xd9\x2f\xe6 19630770876388750748723178383937978133379771:\xe1\x59\xa6\x92\x39\x64\xe1\xef\xf2\x6a\x3e\x1e\xa3\x6f\xcf\xd3\xfa\xbb 19751847636962222035228107232046270843291730:\xe2\xbd\x76\x9a\x19\x98\x57\xc9\x10\x3c\x1a\x44\xea\x06\x89\x5d\x88\x52 19757906942285298054479947162224621351508743:\xe2\xcf\x45\x1d\xdb\x3b\x19\x4b\xec\xc1\xf4\x54\x56\xfa\x0b\xc6\x9b\x07 20540339636350127193978003931671698663339862:\xeb\xca\xa2\x0d\x5a\x63\x09\x58\xc0\x97\xba\x89\x71\x29\xb4\x88\xf7\x56 20575280865938066568293899947190338338379363:\xec\x31\x50\xe9\x63\x87\x78\x2b\x2c\x8b\x59\xcf\xbf\xfe\x4c\xa3\x56\x63 20975847601593279438378404273759169704609723:\xf0\xca\x79\xd4\x7b\x2d\xd2\x28\x7d\xb2\xe0\x3d\x3e\xad\x20\x4f\xc7\xbb 21755891201686199998515042828280700017465515:\xf9\xbe\xd1\x69\x37\x40\x5a\x50\xbf\xfb\x58\x72\x39\xec\x53\x22\x58\xab 21937232875074772433862676873662965519087302:\xfb\xd3\xbb\xb9\x1c\x39\xfd\x69\x9e\x55\x3a\x25\x2d\xfd\xac\xfd\xf6\xc6 22150589784617183228678743143119230651580639:\xfe\x46\xbb\x9f\x34\x06\x87\x7e\x6e\x8c\xde\x9a\x99\xd6\x82\x7f\xc0\xdf 291320807932486762009174538808797715861658436:\x0d\x10\x32\xe8\xf6\x06\xa0\x61\x0d\x35\xf2\x86\x18\x3b\x7a\x96\xfc\xdb\x44 306426723999563240704722866977634916407957911:\x0d\xbd\x9b\x35\x1f\x1f\xc9\x9e\x5e\xc6\xfe\x64\x0b\x5d\x85\xf8\x0b\xd9\x97 313842975185199161382140080825432529711330138:\x0e\x12\xbd\x9c\x66\x79\xbc\x16\xff\x5c\x7e\x8b\x07\xe6\x03\x24\x3e\xf3\x5a 546075904784550504177248998923557152229464156:\x18\x7c\xa4\xda\x5d\x4a\xb8\xff\x64\x8b\xcd\xda\x82\x26\x7f\x00\x40\x98\x5c 647686237455490015423094101437828861427553074:\x1d\x0b\x12\xc8\x78\x4d\x90\xe3\x2f\xc9\x00\x05\x6c\xf8\xbb\x86\x01\x93\x32 718615429933856200759151858201200300132879411:\x20\x39\x4c\xf2\x1c\xd5\x06\x2e\x06\xfd\x01\x2b\xe0\x8e\x96\x4e\xa7\x4c\x33 763761675036549422549637952887559364262197111:\x22\x3f\x8d\xd6\x00\xd3\x0a\x1d\xb6\x36\x23\x55\xff\x08\x6f\x74\xeb\x77\x77 932860648526999858099015132710155900763249306:\x29\xd4\xb7\x0e\x5d\xdd\x53\xdb\xa4\x2d\x79\x1f\x02\x2c\x74\x66\x14\x1a\x9a 983130713222830276409054931063810249849446681:\x2c\x15\xc9\x7f\xb0\x43\x4d\xa3\x68\x76\x76\x2b\x5c\x30\x34\x1a\xba\x21\x19 1063522203672802392515011383182220998381493569:\x2f\xb0\xa2\xdb\x21\x6a\x42\xe7\xba\xeb\x01\x82\xe9\x5f\x6a\xf9\xa1\x5d\x41 1471470033868622907469966083705870442525033565:\x41\xfb\xa5\xc7\xd1\x9b\xac\x44\x57\x8b\x1f\x0b\xc4\xa6\x94\x3a\x53\x04\x5d 1799208808629022580618119358875930772982317744:\x50\xad\xe7\x79\xea\x64\x4f\x30\x69\xc7\xef\x05\x1b\x24\x74\x07\xa9\xc2\xb0 1826187268279752342797998090171536730336553502:\x51\xe3\x9a\x0b\x23\xde\xc2\xbe\x74\x9a\x4c\x93\x8e\x7d\xb8\x3f\x8c\x6a\x1e 1845146450991192785315628231646899538050719474:\x52\xbd\x3e\x12\xee\x60\x9a\x2d\x34\x41\xc8\xc7\x8f\xc6\xe4\x81\x9c\x9e\xf2 1912734238705780742927074765982722422201465081:\x55\xc5\x1c\xbb\x05\xd1\x91\x2a\xde\x9f\xd2\xeb\x98\xa8\x0b\x17\x35\x38\xf9 1913515047176805544400356049836721269445655284:\x55\xce\x13\x52\x07\x56\x1e\xe9\x91\xb8\xed\x5b\xdc\xa9\xc0\x29\xf6\x7a\xf4 1996866427517669150618380957506127098832694902:\x59\x8a\xe7\x03\x21\xc8\xc7\x1a\x74\xe7\xcc\x8d\xb2\x1d\x9b\x41\x73\x2e\x76 2116006131328303961902990807555137711050382666:\x5e\xe2\x8f\x22\x5b\x37\x90\xd0\x47\x13\xc5\x1e\x8e\xdd\x80\x1d\x90\xdd\x4a 2161893630517268363367269351802078946245397455:\x60\xf1\x52\x5f\xd7\x52\xff\x42\x1e\xa6\x44\x95\x11\x05\x1e\x88\x02\xcb\xcf 2251314166411476789642141290003857239023868631:\x64\xf3\xd1\xb6\x1b\x81\x53\x0e\xdf\x95\x98\xc4\xff\x1b\x44\x79\x3c\xda\xd7 2322336809593751511715632775644150741383805776:\x68\x23\x1e\x80\x3e\xee\xb5\x9d\x72\xc7\xb1\xa8\x1f\xf9\x3c\x97\xb8\x7b\x50 2451751501353783165744389009433473047519177463:\x6d\xf0\xba\x19\x41\x5c\x82\x39\x7f\xe8\xc5\x4f\x70\xe5\x5e\x04\xba\x2a\xf7 2546894750989570904012802286184602521399569027:\x72\x34\xea\xfa\xd5\x59\x45\xb2\x38\xa9\x2e\xc7\x28\xd8\xe7\x9f\xa1\xaa\x83 2594908489107791798333159385593608479616959645:\x74\x5c\x16\xac\xb3\xbb\xcb\x0c\xdd\x2a\x65\x30\x39\x04\x57\xc2\xfe\x84\x9d 2609534605327796882572282337122529522043001864:\x75\x03\xfc\xf7\x93\x8d\x99\xff\x62\xbe\x48\x6e\x5d\xfd\x2a\x1e\xc3\x1c\x08 2674889886399807495437209547125161613753679925:\x77\xf2\x3a\xe0\x57\x98\x99\x36\x42\xab\x96\xe7\x3d\xff\x8a\xaf\x99\x80\x35 3029757600834180042431709059598691060731324848:\x87\xdb\xe9\x5c\x40\x23\x43\x87\x46\x26\xb6\xad\x25\x92\x1b\x49\x43\xa9\xb0 3106649780449948970664429962023655192182253140:\x8b\x4e\x97\x2a\xd1\x42\x45\x43\x6c\xfb\x15\x86\x37\x28\x56\x5f\x05\xe6\x54 3230023007579299782265549515624883821236941835:\x90\xd6\xd8\x7e\xff\xab\x58\x07\xe8\x9e\x5f\xbd\x70\xb8\x75\x93\x03\x74\x0b 3235773380154051515776395925292576637377557329:\x91\x18\xdb\x52\x80\xfa\xa3\xc1\xc0\xd7\x3b\xdb\xc8\x85\x1e\xa1\xab\xb3\x51 3252183626061674727621054545463413051264636581:\x91\xd5\x3c\xb3\x5f\xcd\xd4\x94\x2a\x45\xa4\x4a\x4e\x74\x10\x37\x8c\x96\xa5 3535334651195033327177324844299084625309869732:\x9e\x87\xa6\xc6\xe0\xa1\xc0\x41\x71\xa5\xd2\x7b\x33\x0d\x34\x5a\x90\x26\xa4 3704004728602680441554312542381381901360477283:\xa6\x17\xe3\x95\xb0\xc8\x2a\x69\xf9\x2b\x87\x23\x12\x88\xbd\x5d\x12\xb4\x63 3874637740570870820504639569826986797812118074:\xad\xbe\xa8\xf0\x55\xd5\x90\xdf\x12\xe3\x14\xca\x48\xa6\x57\xc4\x2b\x72\x3a 3951516495795807309452253017834745185374776544:\xb1\x31\x2f\x4b\x83\x53\x90\xb5\x00\xc2\x8c\x41\xff\x93\x4f\xf9\xff\x2c\xe0 4143009502161182986989367085480761202813885053:\xb9\xc7\x6a\xa9\xb9\x4e\xc4\x6e\x2c\x34\x46\x22\x3a\x9c\x65\x14\x16\xda\x7d 4253814501024189874803987443323088964052819475:\xbe\xbf\x65\x49\xdb\x1d\x11\x30\x48\x41\x46\xe8\xf7\xef\xf8\xc5\x23\x9e\x13 4332375447852763733332305454264343056267117110:\xc2\x45\x3b\x29\x56\xc5\x19\xff\x81\x36\x8b\xb9\x46\xd9\x6a\xdb\x9c\x82\x36 4478924871674283950767422489489037194457533074:\xc8\xd7\x89\x36\x05\xd3\x7c\x65\xab\x53\x82\x59\x94\x07\xc7\x8a\x5c\x4a\x92 4497055728460161395584401495973287995692191847:\xc9\xa7\xab\x02\xa5\xf5\x39\x49\xef\xc0\x5e\x19\xbe\xe9\xf4\x62\x5e\x90\x67 4726126462755995722594697767171366173117685024:\xd3\xed\x45\x65\x46\x45\x15\x27\x13\x72\xac\xe2\x28\x6d\x98\xab\x6e\x9d\x20 4752381661351555876766509711608838502934650231:\xd5\x1a\xaa\x7d\x5b\x5f\x45\x7d\x46\xb1\x00\x91\x14\x44\x96\x6d\xdc\x1d\x77 4783169171332707713219423611189914702794711725:\xd6\x7c\x16\xd9\x8d\xf4\x4b\x78\x68\xb1\x7e\x28\xe6\xb5\x27\x7e\xbf\xe2\xad 4913064880182929542428092058794433337680358247:\xdc\x4f\x38\x07\x9a\x28\xbb\x42\x36\x7d\xa6\x1b\x4b\x7e\x23\xe4\x52\x6b\x67 4928226370239200409715254165948093421677565392:\xdc\xfd\x43\xa4\xfc\x3f\xce\x8c\x48\x43\x05\xe0\xd0\xd6\x86\xb6\x2d\xd5\xd0 5002706276074194153613494300441358982658368308:\xe0\x54\x40\x6a\x76\x86\x5c\xb0\xe2\xbf\x55\xdd\x52\x5c\x15\x72\xb7\xa3\x34 5033352360829820106741853251136397766575861629:\xe1\xb4\x0d\x2a\x25\x6f\x0b\xba\x16\xdc\xd4\x9d\x44\x04\xc1\xc8\x15\x2f\x7d 5054615414937216994764590772106575885278534700:\xe2\xa8\x23\xaa\x22\xe3\xd3\x1f\x7e\x15\xb3\x6d\x6d\xce\x49\x21\xf6\x5c\x2c 5278316045571307977824963055004311605625512988:\xec\xb0\x18\xbb\xca\x8a\x56\x98\x50\x7b\xfb\x3e\x88\x19\xa7\xb4\x14\x64\x1c 5410338826434986388706570632684025721390202522:\xf2\x9b\xa4\xd0\xf7\x34\x20\x9c\x5f\xd1\x47\xa6\x3a\x05\x50\x0d\xd1\x7e\x9a 13138282283799015219080541225909941821678246435:\x02\x4d\x24\x15\x82\xa2\x15\x97\x8a\xc9\xf2\x62\xc5\x19\x8d\x4e\x26\x6b\x5a\x23 27676286817130076879052483800479082735532125193:\x04\xd9\x0c\x31\x03\x60\x0d\x41\x0e\xa5\x59\xa6\x9f\xc6\xdc\x08\x19\xca\x2c\x09 61511009210174224178166612435596777771150519342:\x0a\xc6\x3f\xc1\x99\x8f\x5c\x0e\x41\xf1\x83\x0d\xb9\xd6\xea\x59\xee\xb2\xac\x2e 89210646442430477113652185145922754834939641273:\x0f\xa0\x57\xff\x50\xd1\xf2\xe9\xb8\xeb\x71\x45\x54\x44\xa9\x5f\x8c\x9d\xfd\xb9 131785786575119092307788373937775665697074338654:\x17\x15\x7a\xa3\x18\x24\xb9\x84\x25\xfa\xb2\x83\xe6\x73\xe4\xf7\x5a\xb6\x5b\x5e 168788425139906296903555117836740632702349542002:\x1d\x90\xbc\x18\x97\x22\xe2\xb9\x03\x51\xa1\xd0\xa9\x48\xfe\x12\x91\x45\x02\x72 186605425197879206213785510638832076405848879447:\x20\xaf\xad\x39\xe1\xda\xcc\xc9\xdf\x9f\x04\xa7\x42\x7d\xdb\xff\x0b\x93\x31\x57 196749932769542412692416293179377063203198754905:\x22\x76\x92\x76\x3c\xf7\xb8\x9f\x7e\xcb\x7f\x4c\xd4\x7e\xd4\x15\xe4\x94\x60\x59 225474304285347325674769562666848221227281772302:\x27\x7e\x9e\x13\x5b\x86\xf7\x8a\x29\xb9\x55\x0a\xf5\x35\x84\x67\x35\x7b\x6f\x0e 270219277421411281552432257031619622410101113492:\x2f\x55\x0d\x2d\x3a\xf9\xc4\xc4\xd7\x88\x73\x4d\xaf\x89\x88\x04\x84\xae\xc2\x94 343548210652107484994376159730111690422522755321:\x3c\x2d\x3c\x0c\x24\x42\xc6\x90\xd5\x84\xcf\x96\xd9\x54\xff\x59\xd7\xd0\x38\xf9 369341574957554578320342547458532947682627044133:\x40\xb1\xd9\x59\x37\x4d\xb8\x18\x92\x0f\x65\x7a\x0f\xbf\xba\x3b\xb9\xa2\x43\x25 381215402014313034286523416871650466674746079298:\x42\xc6\x4a\x32\xc9\x22\x5d\xb6\xe3\x58\x4a\x4d\x8c\x75\xe4\x80\x72\xb4\x38\x42 417200929378200866813638529533632623622910027811:\x49\x13\xef\xcb\x1a\xce\x26\x9b\x00\xe5\x37\x78\xaa\x92\x71\xc2\x61\xe6\xa8\x23 424522603476399098842534226717255975479833496865:\x4a\x5c\x40\x7d\x75\x0a\x96\xe4\x95\x8d\xf2\x8d\x11\x30\x27\xb5\x7d\x03\x8d\x21 436002405918514371766715825571489452291430363665:\x4c\x5f\x06\x28\xc1\x5e\x8a\xa7\x69\xb3\xa4\x02\x59\x41\x92\x02\x75\xe1\x32\x11 438635289084785017999336106954181960419507219553:\x4c\xd5\x16\x2c\xf9\xe5\xe9\xc2\xff\x44\xb5\x17\xdd\x1b\xc0\xfe\x78\xd0\xac\x61 454088927099377211113112218850094201520547319157:\x4f\x8a\x0d\x3d\x70\xd0\x50\x94\xa7\x02\x8c\xe5\x18\x4d\x90\x1f\x9f\xce\x4d\x75 463924607788389131605908376191473992221892088044:\x51\x43\x19\x51\x28\x20\x3f\x9f\xe3\x7e\xe5\x10\x9e\x76\x86\xab\x0e\xc9\x10\xec 535035813955432314631955032601930468964808004388:\x5d\xb7\xd5\xed\xfb\x04\x85\xc9\x6c\xad\x73\x39\xaf\xd8\xf9\x11\xba\xac\x13\x24 542059960282997419939560075106556416908902526332:\x5e\xf2\xcf\x2c\xcc\x8e\x0c\xb4\x50\xdc\x83\x08\x7d\x41\xd8\xc6\x7a\x6f\xed\x7c 561480139827441665648966555367668710489114455182:\x62\x59\xa3\xe7\x2a\x48\x36\xb9\xac\x9f\x08\x4d\x6c\x58\x10\xef\x3c\x7a\xac\x8e 565163866245080935552649441176346340664578222694:\x62\xfe\xd3\x02\x26\x62\x64\x90\xcf\x4a\x0d\x5c\x95\x64\xfb\x20\x9a\xd5\x2a\x66 591612701090133688450492784947103442776164434417:\x67\xa0\xd4\xbe\x03\xf2\x5b\x33\x6e\x86\x4d\x3b\xf0\xe6\xb6\xd5\x64\xc8\x81\xf1 632828727761009222296262086567069604996331825428:\x6e\xd9\x05\x86\x4d\x84\x92\x27\x3e\xd8\xba\xea\x7d\x25\xc3\xed\x27\x2f\x69\x14 723057125708822714149329553477903796991233442477:\x7e\xa7\x00\xbc\x7b\x36\xc0\xd8\x98\x09\x92\x0d\xf8\xee\x66\xc9\x71\x7d\x42\xad 755659700822571304698680483479028612056693877829:\x84\x5c\xf3\xf1\xa7\x09\x00\xe9\xb7\x8f\xec\xbf\x80\x39\xff\x1b\x07\x84\x2c\x45 787597112851525740012197238632581570141821664159:\x89\xf5\x13\x74\x33\xc8\xa6\x1b\xec\x53\xf4\xe7\x56\x10\x10\xfb\x6f\xe0\xfb\x9f 944909579688379489309319793416409323195605649597:\xa5\x83\x36\x02\x67\x64\xb6\x21\x3e\x7b\x2d\xc4\xd3\x55\x77\x87\x9f\x87\x08\xbd 951109352103277034493382562347081918471033968208:\xa6\x99\x37\xe8\x07\x74\x6d\x1f\x2d\x04\x8f\x81\x5d\x80\x68\x90\x7c\x51\xd6\x50 956312723130642382734594117063861249499973923030:\xa7\x82\x8b\xad\x26\x1c\x6a\x8c\x0a\xf8\x2b\x6d\xfe\xeb\x19\xc0\x9f\xa9\xb0\xd6 961273258499076444261807420955386227828516613131:\xa8\x60\xfb\xd4\x67\xce\x54\x3d\x6e\x60\x99\xc8\xd7\x14\x36\x9a\xa8\xa6\x6c\x0b 972391468307051278982529992277366676662737153987:\xaa\x53\x8a\x9e\x74\xf2\x30\x3c\xc0\xcb\x8f\x7d\xba\x93\x3f\xd9\x52\x13\xaf\xc3 989060851832955531326012009770962782377517464258:\xad\x3f\x05\xc1\xdf\x6f\x9d\xdc\xad\x16\x0b\x06\x9d\xdf\x35\x2e\xb2\x57\x3a\xc2 1016235502064801530893609195414490737700708362526:\xb2\x01\x93\x71\x74\x9f\xca\xb5\x74\x8c\x66\x14\x03\x3c\x35\x9b\xc9\x35\x29\x1e 1028001310216882054107829250839111854607524415762:\xb4\x11\x2c\x4b\xfe\xa0\x86\x50\x4b\x6f\x4f\x0d\x6b\x0a\x44\x86\x19\xf7\xc9\x12 1060286448967459910225061878693111267236934246031:\xb9\xb8\xe3\x83\x89\x63\xfc\x2a\xbd\x70\xa0\x48\xb6\x2f\xc7\x20\xd4\x0e\xde\x8f 1061733630023364531396880940323270162287744367031:\xb9\xf9\xc8\x56\x6d\x1f\xa6\x5d\x20\x96\xf5\x19\xd8\x3f\x42\x00\x0f\x61\xb9\xb7 1075101886587466086496018468903815572604800082148:\xbc\x51\x3c\x65\x9a\xd9\x17\x39\xb3\x70\xc9\xf3\x95\xe6\x10\xb1\x45\xe2\x20\xe4 1086964390057747601725082424932591912047343606915:\xbe\x65\x2b\x42\x25\x0a\x5b\x99\xf9\x3d\x09\x0b\xa8\x61\x5d\xed\xf3\x40\x9c\x83 1091699191737581483408387367588341780727584340270:\xbf\x39\x7c\x1d\xb6\x43\x10\x4d\x86\x10\x94\x61\xae\x30\x90\x96\x4e\xcd\x39\x2e 1160569036170430614586826131912035422411575179335:\xcb\x49\xb7\x28\x64\xde\x88\xed\xa0\x58\x05\xed\xf3\xa5\x80\x2a\x2d\x26\xb8\x47 1185883806383320747379091415596530195911851796490:\xcf\xb8\xde\x77\xd6\x8b\x3f\xeb\xd7\x45\xea\x46\xd8\x8f\xc6\x01\x78\x7a\x68\x0a 1187156875549593134501423068487507312969783113033:\xcf\xf1\xf4\x95\xde\xf7\x42\x0d\x63\x4b\x3b\x4f\xd0\xcd\xa2\x36\x6a\x9a\xf5\x49 1194174780271503638962472989504813215823520071615:\xd1\x2c\xa6\x2e\x42\x4d\xa8\xe8\x1f\x7e\x7b\x57\xdb\x5b\xd7\xfc\x63\xa3\xff\xbf 1289002553246049725872987622570525161619110334766:\xe1\xc8\xdf\xa0\xd7\x30\xf4\xfe\x68\x0e\x31\xca\x4d\xef\xfb\x4e\xa5\x25\x91\x2e 1299699720357288158469698116372762213996730289480:\xe3\xa8\x8d\x15\x9c\xfd\xcc\x1b\x9b\x89\x06\x23\xbf\x22\x9e\xf1\x15\xc0\x8d\x48 1380508411373218081403828343115886164182876195339:\xf1\xd0\x23\x5d\x14\x65\x52\x4d\x79\xe5\x84\xc3\x0f\x1d\x40\x5a\xc3\x4e\x8a\x0b 1392801504342851537514365489400718531334955579302:\xf3\xf7\x61\x26\x6d\xf4\xa6\x53\x81\xe1\x39\xd1\x03\x68\xaf\x33\x9c\xe3\xb7\xa6 1421961811551523356914068742717017053094471918612:\xf9\x12\xf9\x0f\x68\xdb\xda\x4a\x95\x1c\xfd\x57\xae\x11\x7d\x14\x21\x25\xe4\x14 Math-BigInt-2.005003/xt/author/lib-convert-string-_to_bytes.t0000644403072340010010000000452114536617521023607 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4001; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_bytes'); my @data; # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; $out0 = eval qq|"$out0"|; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_to_bytes(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_bytes() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; $out0 = eval qq|"$out0"|; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_to_bytes(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_bytes() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_to_hex.dat0000644403072340010010000003576314505066137023563 0ustar OSPJADomain Users3126:c36 1685:695 623:26f 3585:e01 597:255 3145:c49 3841:f01 1470:5be 2722:aa2 1255:4e7 20784:5130 48779:be8b 24756:60b4 23489:5bc1 60130:eae2 28254:6e5e 61056:ee80 41162:a0ca 47799:bab7 62376:f3a8 972274:ed5f2 246074:3c13a 371107:5a9a3 309429:4b8b5 740228:b4b84 1028637:fb21d 986820:f0ec4 178395:2b8db 1032912:fc2d0 69385:10f09 14176835:d85243 14486938:dd0d9a 6265300:5f99d4 6408555:61c96b 16102091:f5b2cb 7230921:6e55c9 12828906:c3c0ea 10074656:99ba20 14222131:d90333 1589892:184284 253527184:f1c8490 52740107:324c00b 175139976:a706c88 228971000:da5d1f8 53869574:335fc06 110991379:69d9813 262113222:f9f87c6 203330948:c1e9584 45851598:2bba3ce 173284903:a541e27 2340165304:8b7c16b8 1259022898:4b0b2a32 2140166788:7f905a84 3939842449:ead53991 1154702702:44d35d6e 3675085214:db0d599e 335357116:13fd24bc 3558505989:d41a7e05 2335362782:8b32cede 1891637671:70c019a7 32721874911:79e602fdf 39964671387:94e147d9b 42258870258:9d6d32ff2 41581975075:9ae7a9623 45388289466:a915a55ba 12573841956:2ed759a24 16184950521:3c4b2bef9 27464359508:66500de54 46237120442:ac3f277ba 34502692922:80885503a 834955478495:c2673985df 75840268660:11a86ea974 243740686160:38c013b750 460208690557:6b2693557d 589440250681:893d607339 528611460074:7b13b2c3ea 452188272753:6948857871 877956324237:cc6a465b8d 936896634162:da23641d32 817611812269:be5d762dad 13081823321732:be5d96e9e84 13222859480776:c06afd79ec8 10023257798222:91db8b8764e 3542123771965:338b707783d 8411640455605:7a67cd761b5 11063546124474:a0feebc98ba 1218871057639:11bca605ce7 8392633502572:7a20ff04b6c 1543260142252:1675178faac 1141364468075:109be9fa96b 139828159041851:7f2c47bfd13b 111291717049770:65381f42ddaa 125648711129530:7246decb19ba 23142908951463:150c60ddfba7 177576427049758:a1813bdad31e 51657708511969:2efb7f5da2e1 149995201028960:886b7aace360 133315130917689:793fd9058339 111402354006599:6551e1bcda47 237833763831838:d84efd02401e 293162322089713:10aa12c11d6f1 2918956744978550:a5ec693e63076 424613491409497:1822f08528259 1732844208822658:628033b849982 3554719352774392:ca0ff984c5ef8 820880332974357:2ea9618a66915 3482670300330881:c5f785e1efb81 2788950786459244:9e88934ec466c 2436318090748632:8a7d1825be2d8 2534190819694674:900d54799d852 49648137671504246:b062b7d9ab7176 64670901593293279:e5c1d7a4c5c1df 42746944701675314:97de1ea62d3732 39078630867622422:8ad5cec72c5a16 15594713796830911:37674f403be6bf 44017454867206791:9c61a45946d287 20104633161787857:476d0eadf2a9d1 63818024483355242:e2ba27b798fa6a 44716498784258446:9edd6b31a2898e 46621288013605427:a5a1d07f05aa33 794521342482630366:b06b4f39124c6de 579880832078972179:80c268b60200513 524868799404863559:748b56466367047 1132139304327982407:fb62ab2eeba2d47 1007600664909699211:dfbb7775b63d88b 786066197529814458:ae8ab0ab9b4e5ba 661290696073358743:92d606268b92d97 628849843854166032:8ba1f99e7fcc810 687956312842753127:98c1c9f1ffad467 522934905121259068:741d6868c67be3c 17236300671009462944:ef33a42371589aa0 8733492117907837987:793398cf28921423 4139458547071222572:39724f9de4a2832c 17216226058998710401:eeec52629b710081 7795990394132201100:6c30ebf5629b7e8c 8612809358697483675:7786d87aa752cd9b 4059955171963924091:3857dbb7e4eb6e7b 5772302983625539791:501b56fb0aed80cf 18391945083867254658:ff3d509bec664f82 17501166707742602278:f2e0a26541e3f426 253996228454293026288:dc4e7e00cab19b5f0 234399915955499182928:cb4f3c9a854f22b50 71971237497745490837:3e6cd332f2a64c395 65554350767569208540:38dbfd6b3865184dc 157107382817185653075:8844d8c4819a8e153 288510551452774903922:fa3e361f3aeb53072 212193393973035068453:b80c65f91d744ec25 261535729828126704364:e2d89909a5e06c2ec 69916142506918275564:3ca48092dae73e9ec 155399525874622594835:86c9a0570e500ff13 1108890181737952950483:3c1cf151238109b8d3 4548977354494420886576:f699be1265d026a430 703868053236915561397:262821a92a8c16e3b5 2582578410917734610133:8c0079a5a4905f74d5 3348071048039856256832:b57fd1cf5a016eb740 2527537773092492943771:8904a2052897ea219b 2750506673341331764964:951af2ae98537576e4 3874148091807584680653:d2049aeb61f882facd 2739063535381356119978:947c247d3faf5287aa 2103794383265718893425:720c031533272c7b71 47155411775745114709751:9fc4ccc71f5ff9b1ef7 48927121744790943165653:a5c5836afe2ea87ecd5 65755332540426404799148:dec9a8d5ed5b7dca2ac 38746186104075374234201:8346f595f907d170a59 18108882159329307516379:3d5af395af0b81bdddb 63116585702389269485907:d5d8e956251eb315953 75118580452446065888698:fe82fb84e3401bb8dba 45079305891144419586348:98bc10aab98d50d312c 19684358326281024970919:42b1759158d6b3e20a7 23870284082996558418153:50e02bcc74ccecfd0e9 349673921450375391636569:4a0bdc7bdb478d626c59 302532773908066735388418:401055a4260dcb227702 323381141991625173319067:447a86de9ea97f3d3d9b 585946975255442546959564:7c143fca0ab2b56f24cc 916555415926136398339996:c21691938a1a871edf9c 380405265150912801916479:508dcf8cfd47f821c63f 807266772060734950017438:aaf204f78a929401099e 196194753344324183234747:298bbd27ea4f30c798bb 861203167233971395154218:b65dead0755cafced12a 1048523379872506067649568:de0890fa371670658420 17611947965383885226683165:e91799cbef1259e9eab1d 15644199208075931064102403:cf0c9bd08694c8d9e6e03 6495136181388262768570368:55f6609b54a46233ef000 17387192851905494314460599:e61e19cf8e82d5ab125b7 5022167128551201046183316:4277c39bed37a5acabd94 19238725829521688044893458:fe9f56ac13bf58759f512 6140258512925296248809965:5144014ba3dad1780e9ed 15175470090631020203292813:c8d87e1cd3673b4d1388d 9652094147180727307665441:7fbe91279c25c982d0021 10299194452008226476274681:884f07332469e775433f9 59380720557430790238284677:311e5b4fc56a1b08c4ab85 219680763166335985685753645:b5b73608ae60069735ef2d 38152929779848042575444813:1f8f3277bb2e5e3b623b4d 264046052479073837513443857:da69ed2fcbae37fb3c0a11 140374520893954898218337304:741d7606970531a6664418 289711708186536387940924334:efa4d72ba6f78644d73bae 145552352609323988237174751:7865e8d870bd36c38047df 133722219462409364888612023:6e9cc80ae3aa10c5cbecb7 30484102751096896864637943:193742857dc82c67dbd3f7 148462293759421632408951956:7ace1d1241320ae8af9c94 4823186671798979824729774700:f95a58164b47f769214da6c 3943163571173869888331379344:cbdb55d84413d7be60cf290 883152653920806719739801234:2da86d94d056a35b8f62e92 463801866511318464236980468:17fa5dd904ff70f25d988f4 2281803456592625338488541931:75f76ad3dbae296048152eb 3730040010558460600189987710:c0d6ab22530353824482b7e 3777815203347081924144535625:c34ef7c892fac85a9441849 1807506385403671009374367548:5d7225d7de6df412485ef3c 319538351346862404962847158:10850e0bc735bc8ff1b89b6 747219113675034788862549704:26a15cd51867b878232dec8 28652035186743730993057064166:5c946873c7a9b7da4c2564e6 34339298320750485057956394069:6ef4cd440c9d51d87efab455 70678401109521682888971407490:e45fcd99898a2f42a6be5082 7162708852336740748874466204:1724da98ede22d1c535fc39c 7630291595801738297687161032:18a7a1183e4956aa8fc438c8 49770007529963163165964545157:a0d0c90a6e280fd88612ac85 30824285248784657027165812207:6399404b9a2dc0bd17bb75ef 66222204023899594966807934410:d5f9b9297979aa7205ccf5ca 63808517649317835616061252499:ce2d2b30ec6aa8de45f06393 70833535726719324595163595918:e4e020a1fca7b9c9c3e5848e 1059542532745738146154153506782:d5f910a902fa797178b27f7de 752958080689503326633185309421:980f0538fb429c86d0d24f2ed 572472389838990651749559676920:739c20fe591f2fc7cef17aff8 688480505348830556362215930348:8b099b9e4a7efc3657d6239ec 684664165059373296580850712543:8a444ec67046f7e48baa57fdf 861113588188942568835618662842:ade6877218fddbd834d5769ba 595642750034584711120403549576:784a02284a308a6b5f1e7cd88 604058421571233033346568633321:79fd16a48c8e72d3f66373be9 962958314444578407142310065737:c277c72cab087b4a4eca0b649 254191437991488359738306886158:335563ab8e11a068b869e7a0e 16176292709125782899044011836658:cc2c6bb643c7adacd1c64584f2 4649460636760900566803540348717:3aaf37b29319aa9eb8ffe80f2d 4930375669778011112568853707942:3e3ae72aa926519be6b4193ca6 18859436306696603312621233088456:ee0a20139a9f6de0224c3ba7c8 13528309354455381935873948053036:aac05337f7d329daeacea2ee2c 19512677148885086382813386342844:f648dc3c8f793508c9f0cb81bc 12119108423436237303304176671727:98f6f3877fd8e5958fc22a1bef 4064857068689429343293700948570:334e42f5c3ce9305eb0b61c25a 10252865151586827569307764849657:8168cb46c99165cae1f49efbf9 7301871624053681460634101797396:5c299ea48c7686f3d9acc0d214 269985262693586480188009208134057:d4fb16ef9a4cdc0bd04c248b9a9 233464397287634328782986281206995:b82bc27285f9a37213ee183c4d3 171143189908431972027087675910800:8702178a9a90f6520b31ed6ea90 150154066107699855351875732470807:76735f4615b02feb16673eb7c17 260334242158094698031907539017270:cd5e14de598aef2e86b12385e36 144185067658509296468045954813004:71bdf14963642db4fe0ca780c4c 127804722187778186523802290258301:64d1f5462eec5e6949bb872817d 212900490277620468263679199675065:a7f2e95f5ef419f387be73a02b9 46347142274797115149419746122387:248fbb189757d64215733a35a93 148022102114074172742699755027378:74c4d35191d85141df49498bbb2 1481821833015095264245816011769565:490f38938722eee83a27bf3fc6dd 811614806423948223533497433784554:280404e0bc2057175518e4a100ea 3826170304961598236510376561445134:bca50f0897207ddc95f2aedb890e 3822247020605827846968554206669996:bc738a37d56e425aa9026d962cac 2175240167852795384017924154469119:6b3f640e7e92b43346097ba82aff 3212317594647317806476061054067013:9e6125f3a7bd9948fb262a2fe145 2810382396056872855405286447068169:8a900347e0e9f1eb3188094b3409 2218432894313635863565165059292514:6d608f486d17791402acdc6ebd62 1269155660525578926723695807819803:3e92ff1cb2dd66d79666df77f01b 1817839470143550826499378980047604:59a05c1e6fb8cdd60fd18d67caf4 63323843018707324485265707207243831:c321b44196d14385c6eb6ac343837 79263651109732459723889954359428706:f43ffedd62351dcaf1bc6f8dd4662 62204357986938346365633702668742766:bfae960df1a7db8066700eae3306e 38467321526448829353081496574829677:76895db7785af91e1863938ef246d 54862141179105729469972165637904437:a90e992da80dc49187384a98f1835 39657147294813415136240704775305008:7a33f91df6ded7e6d8167b750b730 55274702411477363210494813093967428:aa540d417698366cb8abd27733644 21396274675698252860091744863673753:41eeaf42898cf6133652928885d99 7330463095752368345490602337141018:1696b73b9d780b41aacf0be4a811a 66829423112310596456131762561904274:cdef1e84a9b467e33be0830d66e92 369969317336371107170088727002962348:4740e54a0c1ffba678020939fb59ac 878731925118995889652020173497500280:a93cd430b9d50f6600b8a07bd90278 882971627098558725066015137379130700:aa0ddcc0aa544f646b5097d63c1d4c 375357866459977654494872065178346247:484a925750f63da108720b73502307 643718620481186400552590262474938106:7bf9c742316aef41717b7eaaa896fa 276430590134578566620225754555058172:353d1491abea66926e5cfed72587fc 1277968100514657807634059564313150105:f620b1296ef1a29c13d681602f0299 1111522067543702890473936707121113252:d61244deb902098d9ee81eb560e8a4 106196361222453100210742761732997141:1473e285b6e42f8884f82ef6448015 816477269753993290142556396827081620:9d3f6ff842bb5647657ea1643e7b94 9970926413977916491585651750841818275:78054a096d36aa4449bf3a9f54f1ca3 19419193311132868720295451339855394497:e9c0026a0148b493a1655485c3e76c1 14239699878888850842587546676596649696:ab6776895a68dbb033e417589a92ee0 5662964567756045534176482276167412650:442a5b5aeb6898f13f046238cd46baa 20766430647404739490644946933315999137:f9f781475a4382fd56f9b75948f15a1 4037595822044884781141980938337781254:3099cd7ebe8a213c6de74d10b140606 10532581566276378948820565064800963948:7ec805d424d3909076835ec8d1e8d6c 6592161645414883393363297457963492002:4f59aa9a5bedbaa3cd9eff8fa1b62a2 16692343021863848448147338606222801902:c8ed40d394a985e57a8f4796d9c7bee 18210335962511512222056519622491322410:db32ee1c9cab3950940ede66d27382a 276814545086480122186899353213590375617:d0408ac9d81e531b5aed7c915e910cc1 220666211386567874644001250719341786141:a602c43441f11adce9a832fd16e4b41d 217468283802635356842472908041619705453:a39ade337a7f94bebd1e0273c8930e6d 192732780023242430352371618142473957656:90fefbb509d19be585fb1a8b72803118 143243432036572617173600914629531132665:6bc3ae7769d2204293c2d53803bde2f9 173505542831238374021986182056608811159:8287f3b94269567eb0ec10493efc4897 166125398451943613161984358939660371653:7cfa96833f7e836c123c6c1a23f3c6c5 117936852268999694147228561167128242748:58b9cfc0a32f194c8fe6544d734caa3c 179995269498240891653828219062243547939:8769d3f3b5ca32f59a5ce93eaa2fdb23 63324355416013662647374053087284050875:2fa3d3c5604fd12df470197fbf303bbb 2319577735170475364259906679581360964830:6d10e6bfe5a766aeeaa67a5c4f4cac4de 3580252199635089810224160853795561847469:a857b7df1fa7e50b864cd7151cffcbaad 1425702306449254332609107492341219650782:4309446c0a8ee93cf8c6a8fca10dcecde 1229368534346174941630862176947703820384:39cdfc46dac3ed4871f8ed0756da2b060 3245182249448778085819468892795428877889:989675dee8464837d0e7d9f7c57533641 3186463544026795870337666847009453024926:95d3a8e3cb7387a2c712868e4e75ea69e 697924692400407041887818418618089442409:20d0f6809f8241da720ad6d61bae58c69 1699187033549333512946938908017810204386:4fe5384d6cefbae88481ac1e422dfe6e2 4142378394161692783983623101541737846630:c2c610f1c94e827e0b27e84684ea45766 4908037292368384655864393527512156763629:e6c6599550f2fcd12ebed1d2b805275ed 54308537864307192854024941092297389091699:9f9933ee4ddf192968f9a44976a9dbab73 65915755056738952787573312134753377423257:c1b580a5a62b52728e6b42de0021d18f99 59894594981325851702372304905704832775787:b003af65ed08872eb6cf1ea043359c366b 62248821445778308515514268276738148141765:b6eeceec2a86630ab5833c5ecc957a0ac5 45839854655365663451740807535536280033190:86b612df6a1a16d075c7c6b61a3f69d7a6 46790828984158478219138978393476780894565:898181ddc7c1cbad3ced7739346edda965 24644682595620976151411351464983614775835:486c9937d441db1636089d177cd944e21b 22436484958949146968800247992721403995042:41ef55d2ab1b9b602b96c41abf31aae3a2 19177488233591026766937100081923186672576:385b89e27d0e0234dbe07f952c99bec3c0 65184196328579960830937039417899837082034:bf8f238f9de245a001bcec801ced58c9b2 1370998933394342283803823015036300349200614:fbd00f5f4680a580a63592aae0f5a68d8e6 232349556507336177921618308988282808587921:2aad060d8213ee122b6b26c1f765a985691 845004650189576446493050292502521077904551:9b33ed7e508381dfb1424b1dfc06a6934a7 1090610617532502305571050024106146515034371:c85043c98e56221048acffbb16a9d56a103 195665882573263585940281820589215687917600:23f02a63bf9ce7bf25129e13ab7f4dc4020 973691554900568229782817545047858197503390:b2d6c1c37ceab141bac252daf7bad571d9e 391463494586033856332069212303663210186011:47e6866a2c1e8be2434ddc0b176239c451b 479524069326877301820840786947036320384381:58131d06ac76b1bac7d901d1bbfea8c457d 306316671371660724641976919782873643269256:3842f0cfc68914a356f849ab6894ddebc88 1164091286153610841253287445843015268997850:d5cf4f299b07826ff50e72b0c74dcee9ada 9133063738478963748015187983327696666395351:68d7a97dcb1b6ac9f3d162d5123e7f0682d7 3046638233937577683331810687694900571741985:22f943dc720f138095b4542f04c684b51f21 18665667716063813603736024459748788796550831:d64577a6a28b7490bab88db25fc2ea826eaf 3417934446408256003856295094568383817072169:273c6815d43b1d76e1f09e49e36adaa23e29 15818295575382066760154867363171361734641557:b595caefc796c47af8d4c696868104b5c795 21887682731645407543943062937752750251590836:fb421e569cc1ac7c97dad0a608489e7c44b4 20822962557311303331694572167724765723344356:ef092fe7ff7d464b6edae4a955683529bde4 20067578297504078576702558367734434424958087:e65d4ff3732992f3bdd52a96f755564c2c87 3412382884554825484640759580553596711237210:272c178de869b6805accb19cd49ffe88765a 5205387933161353220201265273140599866832273:3bc142a143432614ea06abed7de842f0b591 Math-BigInt-2.005003/xt/author/lib-convert-string-_to_hex.t0000644403072340010010000000456014536617521023250 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2385; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_hex'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("%x", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_to_hex(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_hex() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_to_hex(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_hex() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-convert-string-_to_oct.dat0000644403072340010010000006322114505066137023552 0ustar OSPJADomain Users333:515 293:445 478:736 316:474 506:772 434:662 500:764 425:651 295:447 297:451 2251:4313 2348:4454 596:1124 3088:6020 1440:2640 4023:7667 1532:2774 2482:4662 1080:2070 3172:6144 18580:44224 8188:17774 30484:73424 28151:66767 6733:15115 8815:21157 24780:60314 27072:64700 22557:54035 19775:46477 157817:464171 249661:747475 158979:466403 259419:772533 95527:272447 105032:315110 170018:514042 179153:535721 137191:413747 98059:277413 1863132:7066734 578011:2150733 331050:1206452 1986458:7447632 1503636:5570624 1890249:7153711 890356:3312764 1666096:6266060 1528591:5651417 916069:3375145 6098381:27206715 10483725:47774015 5615855:25330357 4817679:22301417 7200063:33356477 5925533:26465235 6375287:30243567 7986612:36356664 12105811:56134123 16251351:75774727 34946459:205236633 59244148:341777164 42127800:240550670 48128848:267461520 17302095:102001117 112313984:654343200 38219110:221626546 75982013:441662275 45593242:255731232 123659749:727562745 833566485:6153633425 853742442:6270611552 589965819:4312424773 898966470:6545221706 619818384:4474326620 1024469441:7504024701 815603938:6047220342 136718576:1011424360 543084407:4027547567 676975162:5026351072 3332235794:30647361022 4727579536:43162221620 7953438609:73203753621 3091374246:27020520246 6883892681:63223756711 1676449316:14373113044 2877871844:25342153344 2055892756:17242467424 4565272311:42007103367 3700478337:33444150601 61710679100:713617436074 14487094076:153737701474 22101576608:244526645640 54146980256:623332254640 33029742440:366056357550 61958646179:715501364643 34064326051:375631056643 36657672118:421075727666 50527950048:570354652340 9870392838:111424437006 536548876998:7635463421306 140615130325:2027524116325 278723865400:4034517125470 203606027758:2754767266756 473280532208:6706155747360 100006877017:1351067753531 387234072968:5505074604610 132000514793:1727366001351 122089874077:1615507721235 72763130140:1036101240434 3813320382935:67373346654727 2345956726651:42106572553573 3984324777346:71765420652602 2150921666581:37231473000025 1571505868846:26674503110056 3605304162528:64355467734340 3223310326204:56717421054674 3698685185730:65645264207302 3957088457777:71452466412061 3768498489079:66655400703367 6514098086393:136625640120771 26931696089033:607720613333711 20932068805088:460464041504740 20189552590333:445627707036775 11783948921241:253365205564631 17813480829359:403160614470657 25887452758776:570554433201370 14313227410976:320221665357040 30230913759450:667725670034332 12904351524595:273620722363363 86633727923467:2354537445012413 251167439597807:7106757201030357 219406357254990:6170620577051516 55400512964187:1446135771243133 184473419094685:5174342047315235 68491512479115:1744535421276613 228110588700007:6367344246762547 177681942117253:5031471502575605 45320418748873:1223377335364711 149903405953452:4205303320630654 1500693867884266:52515760472267352 1148259021020752:40505274303557120 1174820854268754:41307711354301522 1447016640865802:51100672067163012 1700607007921143:60253055447011767 2047432293737288:72142037244361510 2185151671133225:76066110510662051 2097964015487461:73501311771204745 1206861838006899:42232115311335163 1650898700533028:56727571646576444 4547432565729617:201175664656064521 16021097531688926:707261516322343736 8079237913867943:345500305172273247 7620041708668374:330446146716002726 10280757945316192:444144557526431540 15085902649767804:654610615443433574 4929792246317238:214071726352100266 9981526667700287:433542250726024077 5108421886992195:221141244773757503 17529153646534296:762152604024117230 33322445636494664:1663051316715362510 130227895237894067:7165231225340057663 131928995762186223:7245513437776523757 125666693964393224:6763523047566065410 113007264458906472:6213670103707115550 124750192348252551:6731472162445044607 82392676473602569:4445573174523301011 42178244114592072:2256616167154630510 128372194840906750:7100435230041705776 126121335517701092:7000452767210261744 188996495641927549:12373464767241757575 1026436267297320032:70765045431065326140 578729253859460343:40100363025532702367 684034822835361454:45761340602506253256 545819017506035389:36231070045206313275 867948800567294587:60134455274502435173 559514071627673525:37036261255614627665 873725254476862795:60400607654030312513 886407249394779382:61151153115240342366 700628539013488489:46711037066331457551 1167299814967996997:100630517750142771105 6438294215924962430:545313247512352152176 5782451957718079076:500773126546643053144 7070901584571239333:610407070344607305645 3457504691349390163:277734143127110101523 9135129994689694783:773064005220637546077 5189821308171325385:440057457564123407711 8776400434985152288:747140233107567727440 1726966612123485262:137673257573645102116 6908553546582517653:577400715436764163625 13739905696708399926:1372557466743352711466 53199509540338828665:5611125001013071502571 47789612748705228243:5134666371410003362723 30955330460342134502:3266273320563141323346 52685423144273663334:5554501623273344652546 51662805856954066986:5463671203224355724052 34454128156951339599:3570455160152067461117 32044273430992098851:3362641016413361313043 69131651665421013098:7375447556503535410152 62296000480837671530:6602076646040371115152 446998227298456557903:60355305566701164354517 411680052620130530696:54504652652740100032610 293609941554304878253:37652500343550342703255 374861876821795782425:50511007255666727737431 396052096314367338988:52741235463452652164754 316183987114046066296:42217571321031731607170 579419725869378130613:76644203054375237651265 232894973495424232708:31200211207326061526404 205262979661725494399:26202304607436330166177 439378600034018945434:57506322714665010464632 4686486095416758601563:774070172033331323703533 2976528785416421646420:502556424200130656020124 1863374557014843033173:312016042160300245303125 1744790831153431588349:275127262012132266426775 616749100773896288971:102674347567504153575313 1528231828464389058121:245541720761066146767111 3773372421238439569374:631070176416726465063736 782600153901069666846:124663022131214722505036 3334050451856634747185:551364765126410124214461 2944191459976877063089:477153352135524435435661 7728623775853704460135:1505740633202123621233547 30066591240275636623813:6273647057626345460314705 17885007631925352138339:3623061272046361471203143 29921780599308083623873:6254100371652730510273701 27185499406001714237933:5603352274654750501010755 24003375114050241548115:5052346770656263004747523 8380262525163148477971:1614456012341504340203023 37192416451688714095126:7700321665317056402445026 28168488287414847998747:5756021155145551133605433 18495751764632319689802:3725240362263661156402112 279239352466750849307947:73103141731260153617452453 40491530093841059960415:10446063346560341363053137 194271122149482214337198:51106725510346757077425256 69575681192402310455300:16567322122213556611160004 153284709649867010691357:40353122545625541650650435 96248376671616134669619:24303212142721217143362463 290658152578916898577201:75431160524132073617015461 289942226879386458134916:75313462633760573122414604 249091051739572363204321:64576403026202777155413341 198152694263623420567082:51753604133154574145257052 2296728217813602868822945:746263613337235501147501641 1000477523635244928070625:323667773074322364410771741 2129675201253694142091606:702763662127126676227610526 1373684755258064644506091:442707146142727162014500753 369367036461161606872485:116156665327357722652176645 501904249192361598990094:152220442534334267206233416 1135147441494102870093215:360300735226637551163066637 1699357979424728533044330:547664605625345334261406152 457546655552062834596370:140707235456750305373755022 422779614497610905733100:131415667074262663632143754 9333285294299115200311026:3670314643351503540453367362 16960854455477528840759227:7007463414540751160524363673 18649687424787844035546516:7555163123033134001750106624 17360115244303228205421526:7134113356557723532245451726 19172448525923416248585359:7733731021461130437203506217 15185149797927139987960690:6217451172715657612535031562 16904006773297970122510351:6773440054320203110001550017 7306582513834239802288039:3013165206721357333034223647 11256900308715208089392874:4517573447335250264137353352 11268276922680612605049310:4522115020275602613561534736 122211290680087308514160602:62427176537070052323731167732 69943506089326827632121289:34733072100126424542575152711 145464110815955930840853089:74123162376163140306207065141 137951205501325338691625618:71034233527074475160204361222 71323400890078603709251544:35377242475106020551330777730 50947377788103879949883526:25044415611166403744052214206 66847340596308776814796415:33513363141177423267053457177 47439324557459275001816705:23475525677642571137512563201 44200139438506851178042928:22217574560640452074425553060 122518652980306502118460570:62530252762172613754215546232 1136476691327988723140372365:726022231613067025127142323615 1057965589739872203808711471:665440733051410523360232021457 200022063383315591739218243:122564243442036345641566014503 484403981833675951140249611:310260420744457340723145020013 1207421336426676779094299153:763301323466165055500314551021 409824703036491131173032583:251377603254440606040650251207 1044018443353262020245819514:657627402341151075016253710172 684930203227016059767858812:433217471336141641477224323174 462414970750141705164129618:277200133454721227334112702522 954456477450403533900248452:612602012507316245704002072604 1612632695206148515791968053:1232760203120036330316617213465 4800214001122140560311949339:3701244664656542375370714714033 8109669853335777851597165341:6432051307240060437264516111435 2039213153933457587027929740:1513314135124612346455445265214 4686578269137243989891968699:3622245432057150376743031267273 8379607477108181114519019168:6611562717100251414234400757240 8169159627569702086333716101:6462536655436235373307401053205 3430200028828774506817667741:2612545070251616701647755041235 9386187424525267356465344217:7452022377547601226417056327331 6884601602550456051476538534:5437317061326106655455740222246 61169129908713999813273057972:61322753061467050405461611375264 29723103221054547413517309971:30005137734416175604656464314023 75310859434307652010961323078:74653656635025664317616414142106 64561758660997508555899477237:64116074133762464374165327216365 75670986567554044887052069874:75100622543041761612506306025762 35571536182698391246750790988:34570025620625734170016372532514 23848361192380260652996209988:23207346725377703006747241326504 30353183349960213311076758242:30411620454771572061331402171342 15596094109480814990636166945:14462311307450243212105770227441 31842537227953212351739363656:31561607423777674376316217100510 144827577652229460945450779797:164773220370505512577312356642225 89291670283255625594481181822:110102126522461323536041766102176 418384434539969186896024798556:521757576126170412277077524302534 129385172986878645185798454204:150410350063765046501417261735674 350008906509638371346155441705:432570224722547557370352635407051 234185383451114152523565366211:275130633706150715540535067775703 566551364352598370064356871238:711520115765444425716214616006106 496585737526427269712993377901:621107030151113153105421526157155 82729143779068038669701047094:102647761475240243063330414261466 328681639947060629852751943142:411403424430527073502642527052746 1953738500453071455284626967438:3052157234031765255104076775745616 3243808031178723644228297293039:5074247435174772652300535424776357 959728454391433244714089271449:1407206305244570134457701545650231 1006247692486914284089765209489:1454656225121221243321226145622621 1484208522573275483834142418845:2256736203633426656754767037763635 928969670558134463319667497245:1356324663373164272226005764354435 1029499836938267882443101721580:1477477116212143354141453043051754 4393333482575082694631716500878:6734720110002076023712501411632616 2532530399008650877765171045667:3775606013761046744324105156062443 4238036561057846687767994836566:6537352655561141762205516471023126 16508785929236258498473302215912:32027541650235467161075205776146350 38933716024535135633978279857584:75332317421751360136433757365006660 19768641409617726966883944809160:37140766351063343431254057751141310 7730741242735873561606023274308:14144657506645601115426454062757504 30377788061631495399631134521362:57732766526164404402156353317374022 29941475164107127577906189684472:57172417704262445013771553372747370 34610332222944463037046950622472:66466001717040111763003403065472410 36793690658218030168037616440031:72031551623513753323465277206551337 24939142548591145868270243093649:47261533465566643662576360414616221 10035307184227754803080562357717:17652351613155723030525731775432725 193459959367412564717572799871282:461163553661526471133206573036034462 208806470503545773864134267252177:511340414055061362077777011153426721 318424914716395214318222373951845:766305462001666556607302605222414545 115536882851166268087070057127102:266221746607377611547667573626256276 221610413081172818192441042678501:535507356475461606110633354304431345 174879964830941955371729865739995:423722722156475455006611347433207333 311670394939468671442700443266061:753565256063276553437067716050626015 113755780605726366116757715341380:263363140110327226320766446352150104 293823030962537519978711427622318:717444265273661703221260627533122656 98979454983326857155230856875848:234122757064023325250373413423707510 1662341021286229884927590890978240:5076554304102346205555342130314735700 570927162498613614856646590564260:1604607223777536114515547304741303644 2480023095046906345907060072554240:7510622547350050032130617156045117400 1166482310901275022678118642616398:3460304720166533314265226162532404116 1652625134396388102686641269238870:5057303747375447213221300621105766126 1827908225987088960599648914750308:5503734403020034477533171261313335544 404797224023631715795884267929388:1176520457672214226117626046525377454 497334259283489286460524172415475:1420517324474666645542516134527010763 922053061032106080029206971313563:2656574417724557703577402431545466633 1479466643825646827122939190663799:4436137506261010333712000123300255167 18947419753979275836135815177394577:72305603623145265217614152607673254621 9083067788201154900632029288614043:33772433564347517617345642723467444233 17494307613367658588326500611842705:65721115113721023436244100116424561221 6181709666774060919119574891967243:23031011232311404033301607545456631413 3910354703481126917328674962426444:14031347277354652651442265436220445114 8504836289615271425188897674834718:32152210025665023317376343543645231436 15746496512391379617285494466896508:60413456453257067203537050532607661174 5804824884002705624189345427346711:21706314145517764761163513017232752427 10957055901207115124147153756496767:41607137212043313054143126165165021577 13479496366914568514416905713876429:51422712346660643740034621035651776715 108441546298907250741244320967520937:516122457372672211316626510501544671251 74275266967377961250655196327192132:344701552655635421011263654474115023104 23801849933455092704232101613438683:111260545203731605041411447670332103333 163391571710294792876265429523280679:767372344412522656131125155547664131447 93411329556011334240536812749983241:437661057060610601711012417017055407011 22365277002886839882112191658811424:104726136705452410245013671137426260040 74633776808271288048675049431530001:345767254620551326606714300267252475021 109404102568245477683870814780831364:521101172201067136147722506762756133204 46179567588722619210580445359471020:216232405476571161101353330524425674654 136405263176198901304112220887618821:644251436056613436604551712127444112405 1214276543452478797731784193102264806:7235616454226713315562631125373713634746 236435995678904747970329887137159717:1330446164233502732521373262624143255045 730270512480070669780128205832991226:4312243556071255511676476220037401030772 1125752208026074249604587771763018049:6614773637474756362207326437641777544501 452090124762055435798176451936078335:2561070346354732024535127515655301644777 1090263287179614077193305447149712376:6437504125522517423532734631014625331770 1119241778643850250991447098901542965:6570734124512617332220530550061141434065 562974954472110282730331470454285785:3306631672446100617667672675151547662731 652031645030883522780843369644721366:3731164430232232605563306455666253102326 306691546959818057578762991097812807:1661041742527416654042362367241502613507 2601183883282492132597247729103937511:17517410427270254644677261027225515417747 3651587858789061758275794766559339886:25764245635360125556364353743506671462556 1659665417006410588839655955730663199:11772172247110160255564135444262263403437 3469895516991146615320853282436904895:24704341654463675614324100736477411673677 2244757938976785083962471581115498997:15405143436352026621646551324171066040765 4303661174746306353713268949988629207:31715534063215525054030374365627741655327 6649230308729897091410255017195022465:50011413534422532412427773641353731624201 7926308502026906322045787010081134717:57550645631443343157770145104567717514175 2384906421451245357678406556270592785:16265036701010660561075637720212030401421 9862112336813450676238148032287318777:73265765566134037035011762456371260321371 43094766950507364659349850205702381486:403274001567527247412207630532152032157656 79509903611869587500148438632548425271:736420635046141171051745005235470113457067 36032637532013684367088397584547465129:330672106076360113355417107266133264043651 37078636758453630878370808106936921764:337121275724474342003217146044200141667244 57907718595037588305154187955666918357:534411736475467613074245554030567063715725 60008164623841074487062367241272878590:551122336103311711062244311512107013162776 75989432340067836295080645105397118794:711260410610153051773564542062776563333512 52901218390420705881107480066455172514:476306356033316661154232320304610720572642 57397147428382846840258224047259405709:531344473265557051040605524334436417046615 45998447191111553991095672644254151065:424657521302377700100011312657074216330631 480684184864030825605823341049324258223:5515006402311776717732433171400653473041657 668068273149497912738204454566386065106:7664624235323062430175315274422431333357322 662386643553915626417809673067494637523:7622460336366007755475757065551273426777723 208414179804407278143059039604917400639:2346261615052311166176023317047472030772077 533401097664128959537486616284344063812:6212225021377137610143715650170611430713504 537015631339590475780856282215881107538:6240027132071570525715702456010162650764122 85558432455283668679902708333236640179:1002737214747307143376207372231657105554663 631031563830108854325826517520792254019:7325704105252022154555356764377754312273103 219022329271726313386571069205785655502:2446142521673230576715104332703130533134316 256976793531695108412485537010342578653:3012476703735312172647731376242360215444735 3478379440380456162103545319145919600986:50706570144051521525644664237335504017354532 1057706740043911331558038857729659295046:14335656420643166224632116052357172075552506 3508239833467424178813492089825073582298:51172346505413631673356373163453207073050332 1866580561662889429154132716306134259676:25742045337052245522670327237274101024153734 4038566927021840250792540321954083508477:57362173123542312156761100131726725707410375 5056432001165827841899711711462237166645:73340226053203174405176711045366675401056065 4080934523681286061006782510481960350939:57761166314776676155413645500400535457032333 2187986964939249525677237489397692442896:31560357303430244117141614442741103575224420 4021004810971868927502297751988788879356:57210425556123206713512743411340336231257774 912792644033612798071550372946188068501:12565527376716212623444306427320717700463225 26888069666684188598763778851029518594568:474042535501637672711037302135126342014631010 38343823088522572717779204678685800742726:702565373236374121464337727404704672752637506 14338152675194705605638367884779464635666:250426474105064312411555517055056147246632422 34839716232308968583238163633152589986758:631423724311246251021101315311052070274475706 40846748771519167585456655102814690404714:740115332426361413666252406622314540556564552 37028634345163550052557267088778409228674:663211771061176420040633054024776617351634602 13225816272781839519456029832506772423077:233357770752357045540557242225671426033400645 9521580366792998846406970425404660709294:157731732626441565266712331123540165112173656 25710449445872119044891282805938332406656:456163107117011763141664720133065073216111600 17084041530885653072514200999050390799787:310644653345615077454777052247277145741002653 311378110040935943361164371352818448901434:7114166651661632125342245653527045352053122472 86126160984632281807483920467017344536113:1764320763713060602003742703137244706125147061 172283136126063289816894241439399912425387:3751133321175342311551535432530107715062043653 93431826237593233431396214626161322099399:2112222263034365656734122642233625107013001307 102361938713520163684030918051418766489870:2263204404543346517241737401061604406125534416 218235644051324072857479721380418013456703:5005262002713505522314707450263612245526264477 184479551042866806577540349096788134018467:4170427722274704272171234726040473176441236643 251518384416297335569188496238876074047164:5614453154764567430041463024321350120214373274 214998089550819479748955725806961581164697:4737224535657543751755112152236250375506204231 150015752698098977225972048776162998216803:3343332360315525641040416777150076415024764143 2368990450742659282848721380961796104471727:66307262513221445674334336105402621704634242257 530906973560137026300117865284739818287341:14140620074715460472541161227001232372050670355 1146593903023907822413615671580176280500053:32246113023010524741543001062345611525460133525 1207430211580445871799875658315591548897326:33561214200305061400762560153136675735742704056 1532464304572755159701211722713317845695481:43136020024470233477265420054741145130313575771 2200628147079152444065840541179954270193673:62414204707677312667217156504050551623045444011 2239207197054333974692917929431592345285511:63321602063773276736056301307570446003036031607 1290586968438238372312482850511124303224562:35502615615271205171542651767715416604271117362 734634815156464869063641691340452229005639:20673456355726314262732520405611363755156740507 1962058454618045274040848069086938283475872:55027705620475037342444675333143461745520301640 11302155054705041860280107262446024787233510:403370143331425552004151325457022553363175005346 14776179888199853727809196898130372992960126:523175121660423541727756564415555546320333003176 14457508832410227837375125007285284174584095:513733146142417637417631475047246365533441054437 13154776477752541466465841689867470346301068:456011517020267705605673135140620376631216527214 18610629314047269155475214273767689709632291:653216712677550033305145272145407240555345635443 6980841073828946103196808130079362521179325:240213310741601343674251735547625154122063622275 9641170578028886139670610409034463612846034:335263324570214066011177167153221574151644237722 5428095766352699429202556552997669280794514:174476753033676524173130275007136103630342343622 20501096798159725893228979370273489681765977:726535170132127570750266474004062011567511353131 15202000030725106885022337836341977195423974:535012515465777240673516100466112526107667624346 90707602009417177924448077699690384999574556:4042426571425460152707511353235410075554756766034 120597025986702317359580460492263262848968418:5320613164462737577356446062463601610441721463342 137944027767875404151548007991642756903596334:6137024201714035121622260506647417536312643770456 49894291198707028153190416989822884618930253:2171410446065551447267557324650027237775240704115 40303534573500842067950616400949410254708780:1635245613237464341411220564135744703554440460054 33091849018465568028181066476745983430413717:1367600641537537462133133133605026660613127546625 43772841933315395800891259706555223939658583:1754763221360366712262177505034762607563212531527 104536367884632041528642776748658707161471120:4540023062552307050154466300322630410762657154220 130821546454632705962444234363209166185537176:5673407706614654320736036201370121771037243717230 42520754683440163632830200041781100060413398:1720165043344346275141613427625704306605423206726 773119347518638328937190113371695105921991087:42525746202522016050212501300255107316275007640657 1339043388829644219739736547312602834410015310:74026733310041170665113367540171002375542635405116 872656875461660218167626289926619323418701338:47103160213653162055072417501344472630416041467032 368128919279936514569612750658396160633011898:20403646514571647004316445500465776607144236577272 1258240463987015689114597845353819407266491500:70327621445663516147621506623144126544273675426154 437158182842442534379575030563340485901141820:23464521574520213474575513216565217003613764743474 525692081932959140098578640123645248195804977:27445230563503100717443556150572652775503210037461 644295353553103476419431350197267039787609292:34710227367473762066432740561006217732604541566314 657470360402992274241715157994377590279160322:35366616743613402562146421247714166414466331541002 496810834382113386449812302914876443395818808:26216157225564020220543066403743402276207234602470 11334018646622561170232033890698918811841495756:774170234723025711343115325654372147035425673501314 4851872104099164823396002954096903150833024156:331441412374242544612740374757233670254114673136234 7119881662454246795653881422984088122988044630:477210356564326567062013253120043566220271666420526 9071790624605721615780989211040745070823039554:626626062237037213225614513225327406712247423261102 10252613752268522020385241976689463014979146042:713574357360320411411644556173467552356502036410472 3655919425363778392509471921543889460220782917:243737626241530077036221202051775000435370553364505 2104054031105194403474721356234820404273278180:136262554214166525131413435376034410407117032166344 6295462823560579087001658801315334651887117021:432230571662563062541562610524407301332304717461335 4830948073396715443223444786269425031559102687:330501101543227227662231204330103475241341115340337 4556628504486465030629725405672903131888571710:314247036520776204072024724164221032726324162652476 Math-BigInt-2.005003/xt/author/lib-convert-string-_to_oct.t0000644403072340010010000000456014536617521023251 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2985; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_to_oct'); my @data; # Small numbers. for (my $x = 0; $x <= 255 ; ++ $x) { push @data, [ $x, sprintf("%o", $x) ]; } # Add data in data file. (my $datafile = $0) =~ s/\.t/.dat/; open DATAFILE, $datafile or die "$datafile: can't open file for reading: $!"; while () { s/\s+\z//; next if /^#/ || ! /\S/; push @data, [ split /:/ ]; } close DATAFILE or die "$datafile: can't close file after reading: $!"; # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_to_oct(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_oct() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_to_oct(\$x)|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_to_oct() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-misc-_check.t0000644403072340010010000000610314536617521021001 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 137; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_check'); # Generate test data. my @data; push @data, ([ "$LIB->_zero()", 1 ], # valid objects [ "$LIB->_one()", 1 ], [ "$LIB->_two()", 1 ], [ "$LIB->_ten()", 1 ]); for (my $n = 0 ; $n <= 24 ; ++ $n) { push @data, [ qq|$LIB->_new("1| . ("0" x $n) . qq|")|, 1 ]; } push @data, ([ "undef", 0 ], # invalid objects [ "''", 0 ], [ "1", 0 ], [ "[]", 0 ], [ "{}", 0 ]); # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $in0; | . qq|\@got = $LIB->_check(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_check() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); if ($out0) { # valid object ok(! $got[0], "'$test' output arg is false (object OK)") or diag(" got: $got[0]\n expected: (something false)"); } else { # invalid object ok($got[0], "'$test' output arg is true (object not OK)") or diag(" got: $got[0]\n expected: (something true)"); } }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $in0; | . qq|\$got = $LIB->_check(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_check() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); if ($out0) { # valid object ok(! $got, "'$test' output arg is false (object OK)") or diag(" got: $got\n expected: (something false)"); } else { # invalid object ok($got, "'$test' output arg is true (object not OK)") or diag(" got: $got\n expected: (something true)"); } }; } Math-BigInt-2.005003/xt/author/lib-property-_alen.t0000644403072340010010000000526114536617521021600 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4393; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_alen'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; # Small integers. for my $x (0 .. 99) { push @data, [ $x ]; } # Random large integers. for (3 .. 1000) { my $nx = 2 + int rand 35; # number of digits in $x my $x = randstr($nx, 10); # generate $a push @data, [ $x ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_alen(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_alen() in list context: $test", sub { plan tests => 5, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a Perl scalar"); isnt($got[0], undef, "'$test' output arg is defined"); like($got[0], qr/^[+-]?(\d+(\.\d*)?|\.\d+)([Ee][+-]?\d+)?\z/, "'$test' output arg looks like a number"); is($got[0], int($got[0]), "'$test' output arg is an integer"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_alen(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_alen() in scalar context: $test", sub { plan tests => 4, is(ref($got), "", "'$test' output arg is a Perl scalar"); isnt($got, undef, "'$test' output arg is defined"); like($got, qr/^[+-]?(\d+(\.\d*)?|\.\d+)([Ee][+-]?\d+)?\z/, "'$test' output arg looks like a number"); is($got, int($got), "'$test' output arg is an integer"); }; } Math-BigInt-2.005003/xt/author/lib-property-_digit.t0000644403072340010010000000524014536617521021756 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 41897; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_digit'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; sub add_test_cases { my $x = shift; my $n = length $x; # Digits from right to left (positive index 0 .. N-1). for (my $i = 0 ; $i < $n ; ++$i) { my $digit = substr $x, $n - 1 - $i, 1; push @data, [ $x, $i, $digit ]; } # Digits from left to right (negative index -1 .. -N). for (my $i = -1 ; $i >= -$n ; --$i) { my $digit = substr $x, -1 - $i, 1; push @data, [ $x, $i, $digit ]; } } for (my $x = 0 ; $x <= 100 ; ++ $x) { add_test_cases(sprintf "%u", $x); } for (my $n = 4 ; $n <= 100 ; ++ $n) { add_test_cases(randstr($n, 10)); } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_digit(\$x, $in1);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_digit() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $in1, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_digit(\$x, $in1);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_digit() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-property-_digitsum.t0000644403072340010010000000550114536617521022503 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 593; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_digitsum'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; for (my $x = 0 ; $x <= 100 ; ++ $x) { my $str = sprintf "%u", $x; my @digits = $] >= 5.008 ? unpack "(a)*", $str : split //, $str; my $sum = 0; $sum += $_ for @digits; push @data, [ $str, $sum ]; } for (my $n = 4 ; $n <= 50 ; ++ $n) { my $str = randstr($n, 10); my @digits = $] >= 5.008 ? unpack "(a)*", $str : split //, $str; my $sum = 0; $sum += $_ for @digits; push @data, [ $str, $sum ]; } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_digitsum(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_digitsum() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), $REF, "'$test' output arg is a $REF"); is($LIB->_str($got[0]), $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_digitsum(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_digitsum() in scalar context: $test", sub { plan tests => 2, is(ref($got), $REF, "'$test' output arg is a $REF"); is($LIB->_str($got), $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-property-_len.t0000644403072340010010000000442214536617521021435 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 4957; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_len'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; # Generate test data. my @data; for (my $x = 0 ; $x <= 250 ; ++ $x) { $x = sprintf "%u", $x; push @data, [ $x, length($x) ]; } for (my $n = 4 ; $n <= 250 ; ++ $n) { for (1 .. 4) { my $x = randstr($n, 10); push @data, [ $x, $n ]; } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_len(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_len() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, '==', 1, "'$test' gives one output arg"); is(ref($got[0]), "", "'$test' output arg is a Perl scalar"); is($got[0], $out0, "'$test' output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_len(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_len() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "'$test' output arg is a Perl scalar"); is($got, $out0, "'$test' output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib-property-_zeros.t0000644403072340010010000000515614536617521022026 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 20993; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### can_ok($LIB, '_zeros'); use lib 't'; use Math::BigInt::Lib::TestUtil qw< randstr >; my @data; # Small numbers. for (my $x = 0; $x <= 9 ; ++ $x) { push @data, [ $x, 0 ]; } for (my $x = 10; $x <= 99 ; ++ $x) { push @data, [ $x, $x % 10 ? 0 : 1 ]; } # Random numbers. for (my $p = 0 ; $p <= 100 ; ++ $p) { for (my $q = 0 ; $q <= 50 ; ++ $q) { next if $p + $q < 2; # small numbers done above my $in0 = randstr($p, 10) # p digit number (base 10) . (1 + int rand 9) # ensure non-zero digit . ("0" x $q); # q zeros my $out0 = $q; push @data, [ $in0, $out0 ]; } } # List context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, @got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\@got = $LIB->_zeros(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_zeros() in list context: $test", sub { plan tests => 3, cmp_ok(scalar @got, "==", 1, "'$test' gives one output arg"); is(ref($got[0]), "", "output arg is a Perl scalar"); cmp_ok($got[0], "==", $out0, "output arg has the right value"); }; } # Scalar context. for (my $i = 0 ; $i <= $#data ; ++ $i) { my ($in0, $out0) = @{ $data[$i] }; my ($x, $got); my $test = qq|\$x = $LIB->_new("$in0"); | . qq|\$got = $LIB->_zeros(\$x);|; diag("\n$test\n\n") if $ENV{AUTHOR_DEBUGGING}; eval $test; is($@, "", "'$test' gives emtpy \$\@"); subtest "_zeros() in scalar context: $test", sub { plan tests => 2, is(ref($got), "", "output arg is a Perl scalar"); cmp_ok($got, "==", $out0, "output arg has the right value"); }; } Math-BigInt-2.005003/xt/author/lib.ini0000644403072340010010000000005614505066137017150 0ustar OSPJADomain Userslib=Math::BigInt::Calc ref=Math::BigInt::Calc Math-BigInt-2.005003/xt/author/lib.t0000644403072340010010000000211614536617521016636 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1; ############################################################################### # Read and load configuration file and backend library. use Config::Tiny (); my $config_file = 'xt/author/lib.ini'; my $config = Config::Tiny -> read('xt/author/lib.ini') or die Config::Tiny -> errstr(); # Read the library to test. our $LIB = $config->{_}->{lib}; die "No library defined in file '$config_file'" unless defined $LIB; die "Invalid library name '$LIB' in file '$config_file'" unless $LIB =~ /^[A-Za-z]\w*(::\w+)*\z/; # Read the reference type(s) the library uses. our $REF = $config->{_}->{ref}; die "No reference type defined in file '$config_file'" unless defined $REF; die "Invalid reference type '$REF' in file '$config_file'" unless $REF =~ /^[A-Za-z]\w*(::\w+)*\z/; # Load the library. eval "require $LIB"; die $@ if $@; ############################################################################### pass("Configuration loaded OK"); diag("\n\n$LIB version ", $LIB -> VERSION(), ", Perl $], $^X\n\n"); Math-BigInt-2.005003/xt/author/lib_load-mbf-mbi.t0000644403072340010010000000413014537274605021145 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 10; use lib "t"; # First load Math::BigFloat with Math::BigInt::Calc. use Math::BigFloat lib => "Calc"; is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", 'Math::BigFloat -> config("lib")'); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", 'ref Math::BigFloat -> bzero() -> {_m}'); # Math::BigInt will know that we loaded Math::BigInt::Calc. require Math::BigInt; is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", 'Math::BigInt -> config("lib")'); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", "ref Math::BigInt -> bzero() -> {value}"); # Now load Math::BigFloat again with a different lib. Math::BigFloat -> import(lib => "BareCalc"); is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", 'Math::BigFloat -> config("lib")'); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", 'ref Math::BigFloat -> bzero() -> {_m}'); # See if Math::BigInt knows about Math::BigInt::BareCalc. is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", "Math::BigInt is using library Math::BigInt::Calc"); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", "ref Math::BigInt -> bzero() -> {value}"); # See that Math::BigInt supports "only". eval { Math::BigInt -> import("only" => "Calc") }; subtest 'Math::BigInt -> import("only" => "Calc")' => sub { plan tests => 3; is($@, "", '$@ is empty'); is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", 'Math::BigInt -> config("lib")'); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", "ref Math::BigInt -> bzero() -> {value}"); }; # See that Math::BigInt supports "try". eval { Math::BigInt -> import("try" => "BareCalc") }; subtest 'Math::BigInt -> import("try" => "BareCalc")' => sub { plan tests => 3; is($@, "", '$@ is empty'); is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", 'Math::BigInt -> config("lib")'); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", "ref Math::BigInt -> bzero() -> {value}"); } Math-BigInt-2.005003/xt/author/lib_load-mbi-mbf.t0000644403072340010010000000414614537274605021154 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 10; use lib "t"; # First load Math::BigInt with Math::BigInt::Calc. use Math::BigInt lib => "Calc"; is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", 'Math::BigInt -> config("lib")'); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", 'ref Math::BigInt -> bzero() -> {value}'); # Math::BigFloat will know that we loaded Math::BigInt::Calc. require Math::BigFloat; is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", 'Math::BigFloat -> config("lib")'); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", "ref Math::BigFloat -> bzero() -> {_m}"); # Now load Math::BigInt again with a different lib. Math::BigInt -> import(lib => "BareCalc"); is(Math::BigInt -> config("lib"), "Math::BigInt::Calc", 'Math::BigInt -> config("lib")'); is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc", 'ref Math::BigInt -> bzero() -> {value}'); # See if Math::BigFloat knows about Math::BigInt::BareCalc. is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", "Math::BigFloat is using library Math::BigInt::Calc"); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", "ref Math::BigFloat -> bzero() -> {_m}"); # See that Math::BigFloat supports "only". eval { Math::BigFloat -> import("only" => "Calc") }; subtest 'Math::BigFloat -> import("only" => "Calc")' => sub { plan tests => 3; is($@, "", '$@ is empty'); is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", 'Math::BigFloat -> config("lib")'); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", "ref Math::BigFloat -> bzero() -> {_m}"); }; # See that Math::BigFloat supports "try". eval { Math::BigFloat -> import("try" => "BareCalc") }; subtest 'Math::BigFloat -> import("try" => "BareCalc")' => sub { plan tests => 3; is($@, "", '$@ is empty'); is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc", 'Math::BigFloat -> config("lib")'); is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc", "ref Math::BigFloat -> bzero() -> {_m}"); } Math-BigInt-2.005003/xt/author/new-mbf.t0000644403072340010010000002453114760276577017443 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 222; use Scalar::Util qw< refaddr >; my $class; BEGIN { $class = 'Math::BigFloat'; } BEGIN { use_ok($class, '1.999821'); } my $LIB = Math::BigFloat -> config('lib'); while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; my ($x, $y); my ($test, $desc); # new() as a class method: # # $y = $class -> new(...) $test = qq|\$y = $class -> new("$in0");|; $desc = $test; eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 3; # Check output. is(ref($y), $class, "output arg is a $class"); is($y, $out0, 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } }; # new() as an instance method: # # $y = $x -> new(...) $test = qq|\$x = $class -> new("999"); \$y = \$x -> new("$in0");|; $desc = $test; eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 4; # Check output. is(ref($y), $class, "output arg is a $class"); is($y, $out0, 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $y = $class -> new() { my $y = $class -> new(); subtest qq|\$y = $class -> new();|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } }; } # new() as an instance method: # # $y = $x -> new() { my $x = $class -> new("999"); my $y = $x -> new(); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new();|, => sub { plan tests => 4; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $class -> new("") { no warnings "numeric"; my $y = $class -> new(""); subtest qq|\$y = $class -> new("");|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); # is($y, "0", 'output arg has the right value'); is($y, "NaN", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } }; } # new() as an instance method: # # $x -> new("") { no warnings "numeric"; my $x = $class -> new("999"); my $y = $x -> new(""); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new("");|, => sub { plan tests => 4; is(ref($y), $class, "output arg is a $class"); # is($y, "0", 'output arg has the right value'); is($y, "NaN", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method # # $class -> new(undef) { no warnings "uninitialized"; my $y = $class -> new(undef); subtest qq|\$y = $class -> new(undef);|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is '+' when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } }; } # new() as an instance method # # $x -> new(undef) { no warnings "uninitialized"; my $x = $class -> new("999"); my $y = $x -> new(undef); subtest qq|\$y = $class -> new(undef);|, => sub { plan tests => 4; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is '+' when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new($x) # # In this case, when $x isa Math::BigFloat, only the sign and value should be # copied from $x, not the accuracy or precision. SKIP: { skip "This test reveals a bug that has not been fixed yet", 2; # Fixme! my ($a, $p, $x, $y); $a = $class -> accuracy(); # get original $class -> accuracy(4711); # set new global value $x = $class -> new("314"); # create object $x -> accuracy(41); # set instance value $y = $class -> new($x); # create new object is($y -> accuracy(), 4711, 'object has the global accuracy'); $class -> accuracy($a); # reset $p = $class -> precision(); # get original $class -> precision(4711); # set new global value $x = $class -> new("314"); # create object $x -> precision(41); # set instance value $y = $class -> new($x); # create new object is($y -> precision(), 4711, 'object has the global precision'); $class -> precision($p); # reset } # Make sure that library thingies are indeed copied. { my ($x, $y); $x = $class -> new("314"); # create object $y = $class -> new($x); # create new object subtest 'library thingy is copied' => sub { my @keys = ('_m', '_e'); plan tests => scalar @keys; for my $key (@keys) { isnt(refaddr($x -> {$key}), refaddr($y -> {$key}), 'library thingy is a copy'); } }; } # Other tests where we must use the scientific notation in the output. for my $str (qw/ 1e+4294967296 1e+18446744073709551616 1e+79228162514264337593543950336 1e+340282366920938463463374607431768211456 1e+1461501637330902918203684832716283019655932542976 1e+6277101735386680763835789423207666416102355444464034512896 /) { my $y; $y = $class -> new($str); subtest $str, sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y -> bnstr(), $str, 'output arg has the right value'); if ($LIB -> _is_zero($y->{_e})) { is($y->{_es}, '+', "exponent sign is + when exponent is 0"); } else { ok($y->{_es} eq '+' || $y->{_es} eq '-', "exponent sign is valid"); } } } __END__ NaN:NaN inf:inf infinity:inf +inf:inf +infinity:inf -inf:-inf -infinity:-inf 0e-0:0 0e+0:0 3e-0:3 3e+0:3 # This is the same data as in from_bin-mbf.t, except that some of them are # commented out, since new() only treats input as binary if it has a "0b" or # "0B" prefix, possibly with a leading "+" or "-" sign. Duplicates from above # are also commented out. 0b1p+0:1 0b.1p+1:1 0b.01p+2:1 0b.001p+3:1 0b.0001p+4:1 0b10p-1:1 0b100p-2:1 0b1000p-3:1 -0b1p+0:-1 0b0p+0:0 0b0p+7:0 0b0p-7:0 0b0.p+0:0 0b.0p+0:0 0b0.0p+0:0 0b1100101011111110:51966 0B1100101011111110:51966 b1100101011111110:51966 B1100101011111110:51966 #1100101011111110:51966 0b1.1001p+3:12.5 0b10010.001101p-1:9.1015625 -0b.11110001001101010111100110111101111p+31:-2023406814.9375 0b10.0100011010001010110011110001001101p+34:39093746765 0b.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN # This is more or less the same data as in from_oct-mbf.t, except that some of # them are commented out, since new() does not consider a number with just a # leading zero to be an octal number. Duplicates from above are also commented # out. # Without "0o" prefix. 001p+0:1 00.4p+1:1 00.2p+2:1 00.1p+3:1 00.04p+4:1 02p-1:1 04p-2:1 010p-3:1 -01p+0:-1 00p+0:0 00p+7:0 00p-7:0 00.p+0:0 00.0p+0:0 #145376:51966 #0145376:51966 #00145376:51966 03.1p+2:12.5 022.15p-1:9.1015625 -00.361152746757p+32:-2023406814.9375 044.3212636115p+30:39093746765 0.p+0:NaN .p+0:NaN # With "0o" prefix. 0o01p+0:1 0o0.4p+1:1 0o0.2p+2:1 0o0.1p+3:1 0o0.04p+4:1 0o02p-1:1 0o04p-2:1 0o010p-3:1 -0o1p+0:-1 0o0p+0:0 0o0p+7:0 0o0p-7:0 0o0.p+0:0 0o.0p+0:0 0o0.0p+0:0 0o145376:51966 0O145376:51966 o145376:51966 O145376:51966 0o3.1p+2:12.5 0o22.15p-1:9.1015625 -0o0.361152746757p+32:-2023406814.9375 0o44.3212636115p+30:39093746765 0o.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN # This is the same data as in from_hex-mbf.t, except that some of them are # commented out, since new() only treats input as hexadecimal if it has a "0x" # or "0X" prefix, possibly with a leading "+" or "-" sign. 0x1p+0:1 0x.8p+1:1 0x.4p+2:1 0x.2p+3:1 0x.1p+4:1 0x2p-1:1 0x4p-2:1 0x8p-3:1 -0x1p+0:-1 0x0p+0:0 0x0p+7:0 0x0p-7:0 0x0.p+0:0 0x.0p+0:0 0x0.0p+0:0 0xcafe:51966 0Xcafe:51966 xcafe:51966 Xcafe:51966 #cafe:51966 0x1.9p+3:12.5 0x12.34p-1:9.1015625 -0x.789abcdefp+32:-2023406814.9375 0x12.3456789ap+31:39093746765 0x.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN Math-BigInt-2.005003/xt/author/new-mbi.t0000644403072340010010000001674314760276577017454 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 208; use Scalar::Util qw< refaddr >; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0) = split /:/; my ($x, $y); my ($test, $desc); # new() as a class method: # # $y = $class -> new(...) $test = qq|\$x = $class -> new("$in0");|; $desc = $test; eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 2, # Check output. is(ref($x), $class, "output arg is a $class"); is($x, $out0, 'output arg has the right value'); }; # new() as an instance method: # # $y = $x -> new(...) $test = qq|\$x = $class -> new("999"); \$y = \$x -> new("$in0");|; $desc = $test; eval $test; die $@ if $@; # this should never happen subtest $desc, sub { plan tests => 3; # Check output. is(ref($y), $class, "output arg is a $class"); is($y, $out0, 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $y = $class -> new() { my $x = $class -> new(); subtest qq|\$x = $class -> new();|, => sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, "0", 'output arg has the right value'); }; } # new() as an instance method: # # $y = $x -> new() { my $x = $class -> new("999"); my $y = $x -> new(); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new();|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $class -> new("") { no warnings "numeric"; my $x = $class -> new(""); subtest qq|\$x = $class -> new("");|, => sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); #is($x, "0", 'output arg has the right value'); is($x, "NaN", 'output arg has the right value'); }; } # new() as an instance method: # # $x -> new("") { no warnings "numeric"; my $x = $class -> new("999"); my $y = $x -> new(""); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new("");|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); # is($y, "0", 'output arg has the right value'); is($y, "NaN", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method # # $class -> new(undef) { no warnings "uninitialized"; my $x = $class -> new(undef); subtest qq|\$x = $class -> new(undef);|, => sub { plan tests => 2; is(ref($x), $class, "output arg is a $class"); is($x, "0", 'output arg has the right value'); }; } # new() as an instance method # # $x -> new(undef) { no warnings "uninitialized"; my $x = $class -> new("999"); my $y = $x -> new(undef); subtest qq|\$y = $class -> new(undef);|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # $class -> new($x) # # In this case, when $x isa Math::BigInt, only the sign and value should be # copied from $x, not the accuracy or precision. { my ($a, $p, $x, $y); $a = $class -> accuracy(); # get original $class -> accuracy(4711); # set new global value $x = $class -> new("314"); # create object $x -> accuracy(41); # set instance value $y = $class -> new($x); # create new object is($y -> accuracy(), 4711, 'object has the global accuracy'); $class -> accuracy($a); # reset $p = $class -> precision(); # get original $class -> precision(4711); # set new global value $x = $class -> new("314"); # create object $x -> precision(41); # set instance value $y = $class -> new($x); # create new object is($y -> precision(), 4711, 'object has the global precision'); $class -> precision($p); # reset } # Make sure that library thingies are indeed copied. { my ($x, $y); $x = $class -> new("314"); # create object $y = $class -> new($x); # create new object subtest 'library thingy is copied' => sub { my @keys = ('value'); plan tests => scalar @keys; for my $key (@keys) { isnt(refaddr($y -> {$key}), refaddr($x -> {$key}), 'library thingy is a copy'); } }; } __END__ NaN:NaN inf:inf infinity:inf +inf:inf +infinity:inf -inf:-inf -infinity:-inf # This is the same data as in from_bin-mbf.t, except that some of them are # commented out, since new() only treats input as binary if it has a "0b" or # "0B" prefix, possibly with a leading "+" or "-" sign. Duplicates from above # are also commented out. 0b1p+0:1 0b.1p+1:1 0b.01p+2:1 0b.001p+3:1 0b.0001p+4:1 0b10p-1:1 0b100p-2:1 0b1000p-3:1 -0b1p+0:-1 0b0p+0:0 0b0p+7:0 0b0p-7:0 0b0.p+0:0 0b.0p+0:0 0b0.0p+0:0 0b1100101011111110:51966 0B1100101011111110:51966 b1100101011111110:51966 B1100101011111110:51966 #1100101011111110:51966 0b1.1001p+3:NaN 0b10010.001101p-1:NaN -0b.11110001001101010111100110111101111p+31:NaN 0b10.0100011010001010110011110001001101p+34:39093746765 0b.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN # This is more or less the same data as in from_oct-mbf.t, except that some of # them are commented out, since new() does not consider a number with just a # leading zero to be an octal number. Duplicates from above are also commented # out. # Without "0o" prefix. 001p+0:1 00.4p+1:1 00.2p+2:1 00.1p+3:1 00.04p+4:1 02p-1:1 04p-2:1 010p-3:1 -01p+0:-1 00p+0:0 00p+7:0 00p-7:0 00.p+0:0 00.0p+0:0 #145376:51966 #0145376:51966 #00145376:51966 03.1p+2:NaN 022.15p-1:NaN -00.361152746757p+32:NaN 044.3212636115p+30:39093746765 0.p+0:NaN .p+0:NaN # With "0o" prefix. 0o01p+0:1 0o0.4p+1:1 0o0.2p+2:1 0o0.1p+3:1 0o0.04p+4:1 0o02p-1:1 0o04p-2:1 0o010p-3:1 -0o1p+0:-1 0o0p+0:0 0o0p+7:0 0o0p-7:0 0o0.p+0:0 0o.0p+0:0 0o0.0p+0:0 0o145376:51966 0O145376:51966 o145376:51966 O145376:51966 0o3.1p+2:NaN 0o22.15p-1:NaN -0o0.361152746757p+32:NaN 0o44.3212636115p+30:39093746765 0o.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN # This is the same data as in from_hex-mbf.t, except that some of them are # commented out, since new() only treats input as hexadecimal if it has a "0x" # or "0X" prefix, possibly with a leading "+" or "-" sign. 0x1p+0:1 0x.8p+1:1 0x.4p+2:1 0x.2p+3:1 0x.1p+4:1 0x2p-1:1 0x4p-2:1 0x8p-3:1 -0x1p+0:-1 0x0p+0:0 0x0p+7:0 0x0p-7:0 0x0.p+0:0 0x.0p+0:0 0x0.0p+0:0 0xcafe:51966 0Xcafe:51966 xcafe:51966 Xcafe:51966 #cafe:51966 0x1.9p+3:NaN 0x12.34p-1:NaN -0x.789abcdefp+32:NaN 0x12.3456789ap+31:39093746765 0x.p+0:NaN #NaN:NaN #+inf:NaN #-inf:NaN Math-BigInt-2.005003/xt/author/new-mbr.t0000644403072340010010000002043714770455336017451 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2421; use Scalar::Util qw< refaddr >; use Math::Trig qw< Inf >; my $class; BEGIN { $class = 'Math::BigRat'; } BEGIN { use_ok($class); } my $inf = Inf; # (positive) infinity my $nan = $inf - $inf; # Not a Number # CPAN RT #132712. my $q1 = $class -> new("-1/2"); my ($n, $d) = $q1 -> parts(); my $n_orig = $n -> copy(); my $d_orig = $d -> copy(); my $q2 = $class -> new($n, $d); cmp_ok($n, "==", $n_orig, "The value of the numerator hasn't changed"); cmp_ok($d, "==", $d_orig, "The value of the denominator hasn't changed"); isnt(refaddr($n), refaddr($n_orig), "The addresses of the numerators have changed"); isnt(refaddr($d), refaddr($d_orig), "The addresses of the denominators have changed"); ############################################################################### # new() as a class method: # # $y = $class -> new() { my $y = $class -> new(); subtest qq|\$y = $class -> new();|, => sub { plan tests => 2; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); }; } # new() as an instance method: # # $y = $x -> new() { my $x = $class -> new("999"); my $y = $x -> new(); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new();|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $class -> new("") { my $y = $class -> new(""); subtest qq|\$y = $class -> new("");|, => sub { plan tests => 2; is(ref($y), $class, "output arg is a $class"); is($y, "NaN", 'output arg has the right value'); }; } # new() as an instance method: # # $x -> new("") { my $x = $class -> new("999"); my $y = $x -> new(""); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new("");|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "NaN", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method: # # $class -> new(undef) { my $y = $class -> new(undef); subtest qq|\$y = $class -> new(undef);|, => sub { plan tests => 2; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); }; } # new() as an instance method # # $x -> new(undef) { my $x = $class -> new("999"); my $y = $x -> new(undef); subtest qq|\$x = $class -> new("999"); \$y = \$x -> new(undef);|, => sub { plan tests => 3; is(ref($y), $class, "output arg is a $class"); is($y, "0", 'output arg has the right value'); isnt(refaddr($x), refaddr($y), "output is not the invocand"); }; } ############################################################################### # new() as a class method with one argument ############################################################################### # Arguments that Math::BigInt, Math::BigFloat, and Math::BigRat can handle. my @int = qw< 1 2 5 7 inf >; push @int, map { "-$_" } @int; push @int, qw< 0 NaN >; for my $int (@int) { for my $ref ('', 'Math::BigInt', 'Math::BigFloat', 'Math::BigRat') { my ($x, $y); my $test = '$x = '; $test .= $ref ? qq|$ref -> new("$int")| : qq|"$int"|; $test .= '; $y = Math::BigRat -> new($x);'; note("\n$test\n\n"); eval $test; die $@ if $@; if ($int =~ /inf|nan/i) { is($y, $int, 'output has the right value'); } else { is($y -> numify(), eval($int), 'output has the right value'); } } } # Arguments that only Math::BigFloat and Math::BigRat can handle. my @flt = qw< 1.2 2.6 5.25 >; push @flt, map { "-$_" } @flt; for my $flt (@flt) { for my $ref ('', 'Math::BigFloat', 'Math::BigRat') { my ($x, $y); my $test = '$x = '; $test .= $ref ? qq|$ref -> new("$flt")| : qq|"$flt"|; $test .= '; $y = Math::BigRat -> new($x);'; note("\n$test\n\n"); eval $test; die $@ if $@; if ($flt =~ /inf|nan/i) { is($y, $flt, 'output has the right value'); } else { is($y -> numify(), eval($flt), 'output has the right value'); } } } # Arguments that only Math::BigRat can handle. my @rat = qw< 3/5 7/3 13/11 >; push @rat, map { "-$_" } @rat; for my $rat (@rat) { for my $ref ('', 'Math::BigRat') { my ($x, $y); my $test = '$x = '; $test .= $ref ? qq|$ref -> new("$rat")| : qq|"$rat"|; $test .= '; $y = Math::BigRat -> new($x);'; note("\n$test\n\n"); eval $test; die $@ if $@; if ($rat =~ /inf|nan/i) { is($y, $rat, 'output has the right value'); } else { is($y -> numify(), eval($rat), 'output has the right value'); } } } ############################################################################### # new() as a class method with two arguments ############################################################################### # Arguments that Math::BigInt, Math::BigFloat, and Math::BigRat can handle. for my $xint (@int) { for my $xref ('', 'Math::BigInt', 'Math::BigFloat', 'Math::BigRat') { for my $yint (@int) { for my $yref ('', 'Math::BigInt', 'Math::BigFloat', 'Math::BigRat') { my ($x, $y, $z); my $test = '$x = '; $test .= $xref ? qq|$xref -> new("$xint")| : qq|"$xint"|; $test .= '; $y = '; $test .= $yref ? qq|$yref -> new("$yint")| : qq|"$yint"|; $test .= '; $z = Math::BigRat -> new($x, $y);'; note("\n$test\n\n"); eval $test; die $@ if $@; my $xs = $xint eq 'inf' ? $inf : $xint eq '-inf' ? -$inf : $xint eq 'NaN' ? $nan : $xint; my $ys = $yint eq 'inf' ? $inf : $yint eq '-inf' ? -$inf : $yint eq 'NaN' ? $nan : $yint; my $want; if ($yint == 0) { $want = 0 < $xint && $xint <= $inf ? $inf : -$inf <= $xint && $xint < 0 ? -$inf : $nan; } else { $want = $xint / $yint; } is($z -> numify(), $want, 'output has the right value'); } } } } ############################################################################### # Miscellaneous tests. ############################################################################### my $cases = [ [[ "000377" ], 377 ], [[ "03_7_7" ], 377 ], [[ "-03_7_7" ], -377 ], [[ "03_7_7e+2" ], 37700 ], [[ "-03_7_7e+2" ], -37700 ], [[ "0018", "0012" ], "3/2" ], [[ "001_8", "001_2" ], "3/2" ], [[ "001_8e2", "001_2e2" ], "3/2" ], [[ "0_0_1_8", "0_0_1_2" ], "3/2" ], [[ "0_0_1_8e2", "0_0_1_2e2" ], "3/2" ], [[ "000" ], "0" ], [[ "+000" ], "0" ], [[ "-000" ], "0" ], [[ "00e2", "000e3" ], "NaN" ], [[ "01e2", "000e3" ], "inf" ], [[ "-01e2", "000e3" ], "-inf" ], [[ "00e2", "001e3" ], "0" ], [[ "-00e2", "001e3" ], "0" ], ]; for my $case (@$cases) { my ($test, $z); my ($in, $want) = @$case; if (@$in == 1) { my ($x) = @$in; $test = qq|\$z = Math::BigRat -> new("$x");|; note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want, 'output has the right value'); } if (@$in == 2) { my ($x, $y) = @$in; $test = qq|\$z = Math::BigRat -> new("$x", "$y");|; note("\n$test\n\n"); eval $test; die $@ if $@; $test = qq|\$z = Math::BigRat -> new(" $x / $y ");|; is($z, $want, 'output has the right value'); note("\n$test\n\n"); eval $test; die $@ if $@; is($z, $want, 'output has the right value'); } } Math-BigInt-2.005003/xt/author/nparts-mbf.t0000644403072340010010000001241514537274605020147 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1840; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| (\$m, \$e) = \$x -> nparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my ($mant_got, $expo_got) = $x -> nparts(); isa_ok($mant_got, "Math::BigFloat"); isa_ok($expo_got, "Math::BigFloat"); is($mant_got, $mant_str, "value of mantissa"); is($expo_got, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigFloat -> new("$x_str");|, qq| \$m = \$x -> nparts();\n\n|); { my $x = Math::BigFloat -> new($x_str); my $mant_got = $x -> nparts(); isa_ok($mant_got, "Math::BigFloat"); is($mant_got, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 0.000000000001:1:-12 0.00000000001:1:-11 0.0000000001:1:-10 0.000000001:1:-9 0.00000001:1:-8 0.0000001:1:-7 0.000001:1:-6 0.00001:1:-5 0.0001:1:-4 0.001:1:-3 0.01:1:-2 0.1:1:-1 1:1:0 10:1:1 100:1:2 1000:1:3 10000:1:4 100000:1:5 1000000:1:6 10000000:1:7 100000000:1:8 1000000000:1:9 10000000000:1:10 100000000000:1:11 1000000000000:1:12 0.0000000000012:1.2:-12 0.000000000012:1.2:-11 0.00000000012:1.2:-10 0.0000000012:1.2:-9 0.000000012:1.2:-8 0.00000012:1.2:-7 0.0000012:1.2:-6 0.000012:1.2:-5 0.00012:1.2:-4 0.0012:1.2:-3 0.012:1.2:-2 0.12:1.2:-1 1.2:1.2:0 12:1.2:1 120:1.2:2 1200:1.2:3 12000:1.2:4 120000:1.2:5 1200000:1.2:6 12000000:1.2:7 120000000:1.2:8 1200000000:1.2:9 12000000000:1.2:10 120000000000:1.2:11 1200000000000:1.2:12 0.00000000000123:1.23:-12 0.0000000000123:1.23:-11 0.000000000123:1.23:-10 0.00000000123:1.23:-9 0.0000000123:1.23:-8 0.000000123:1.23:-7 0.00000123:1.23:-6 0.0000123:1.23:-5 0.000123:1.23:-4 0.00123:1.23:-3 0.0123:1.23:-2 0.123:1.23:-1 1.23:1.23:0 12.3:1.23:1 123:1.23:2 1230:1.23:3 12300:1.23:4 123000:1.23:5 1230000:1.23:6 12300000:1.23:7 123000000:1.23:8 1230000000:1.23:9 12300000000:1.23:10 123000000000:1.23:11 1230000000000:1.23:12 0.000000000001234:1.234:-12 0.00000000001234:1.234:-11 0.0000000001234:1.234:-10 0.000000001234:1.234:-9 0.00000001234:1.234:-8 0.0000001234:1.234:-7 0.000001234:1.234:-6 0.00001234:1.234:-5 0.0001234:1.234:-4 0.001234:1.234:-3 0.01234:1.234:-2 0.1234:1.234:-1 1.234:1.234:0 12.34:1.234:1 123.4:1.234:2 1234:1.234:3 12340:1.234:4 123400:1.234:5 1234000:1.234:6 12340000:1.234:7 123400000:1.234:8 1234000000:1.234:9 12340000000:1.234:10 123400000000:1.234:11 1234000000000:1.234:12 0.000003141592:3.141592:-6 0.00003141592:3.141592:-5 0.0003141592:3.141592:-4 0.003141592:3.141592:-3 0.03141592:3.141592:-2 0.3141592:3.141592:-1 3.141592:3.141592:0 31.41592:3.141592:1 314.1592:3.141592:2 3141.592:3.141592:3 31415.92:3.141592:4 314159.2:3.141592:5 3141592:3.141592:6 # negativ: numbers -0.000000000001:-1:-12 -0.00000000001:-1:-11 -0.0000000001:-1:-10 -0.000000001:-1:-9 -0.00000001:-1:-8 -0.0000001:-1:-7 -0.000001:-1:-6 -0.00001:-1:-5 -0.0001:-1:-4 -0.001:-1:-3 -0.01:-1:-2 -0.1:-1:-1 -1:-1:0 -10:-1:1 -100:-1:2 -1000:-1:3 -10000:-1:4 -100000:-1:5 -1000000:-1:6 -10000000:-1:7 -100000000:-1:8 -1000000000:-1:9 -10000000000:-1:10 -100000000000:-1:11 -1000000000000:-1:12 -0.0000000000012:-1.2:-12 -0.000000000012:-1.2:-11 -0.00000000012:-1.2:-10 -0.0000000012:-1.2:-9 -0.000000012:-1.2:-8 -0.00000012:-1.2:-7 -0.0000012:-1.2:-6 -0.000012:-1.2:-5 -0.00012:-1.2:-4 -0.0012:-1.2:-3 -0.012:-1.2:-2 -0.12:-1.2:-1 -1.2:-1.2:0 -12:-1.2:1 -120:-1.2:2 -1200:-1.2:3 -12000:-1.2:4 -120000:-1.2:5 -1200000:-1.2:6 -12000000:-1.2:7 -120000000:-1.2:8 -1200000000:-1.2:9 -12000000000:-1.2:10 -120000000000:-1.2:11 -1200000000000:-1.2:12 -0.00000000000123:-1.23:-12 -0.0000000000123:-1.23:-11 -0.000000000123:-1.23:-10 -0.00000000123:-1.23:-9 -0.0000000123:-1.23:-8 -0.000000123:-1.23:-7 -0.00000123:-1.23:-6 -0.0000123:-1.23:-5 -0.000123:-1.23:-4 -0.00123:-1.23:-3 -0.0123:-1.23:-2 -0.123:-1.23:-1 -1.23:-1.23:0 -12.3:-1.23:1 -123:-1.23:2 -1230:-1.23:3 -12300:-1.23:4 -123000:-1.23:5 -1230000:-1.23:6 -12300000:-1.23:7 -123000000:-1.23:8 -1230000000:-1.23:9 -12300000000:-1.23:10 -123000000000:-1.23:11 -1230000000000:-1.23:12 -0.000000000001234:-1.234:-12 -0.00000000001234:-1.234:-11 -0.0000000001234:-1.234:-10 -0.000000001234:-1.234:-9 -0.00000001234:-1.234:-8 -0.0000001234:-1.234:-7 -0.000001234:-1.234:-6 -0.00001234:-1.234:-5 -0.0001234:-1.234:-4 -0.001234:-1.234:-3 -0.01234:-1.234:-2 -0.1234:-1.234:-1 -1.234:-1.234:0 -12.34:-1.234:1 -123.4:-1.234:2 -1234:-1.234:3 -12340:-1.234:4 -123400:-1.234:5 -1234000:-1.234:6 -12340000:-1.234:7 -123400000:-1.234:8 -1234000000:-1.234:9 -12340000000:-1.234:10 -123400000000:-1.234:11 -1234000000000:-1.234:12 -0.000003141592:-3.141592:-6 -0.00003141592:-3.141592:-5 -0.0003141592:-3.141592:-4 -0.003141592:-3.141592:-3 -0.03141592:-3.141592:-2 -0.3141592:-3.141592:-1 -3.141592:-3.141592:0 -31.41592:-3.141592:1 -314.1592:-3.141592:2 -3141.592:-3.141592:3 -31415.92:-3.141592:4 -314159.2:-3.141592:5 -3141592:-3.141592:6 Math-BigInt-2.005003/xt/author/nparts-mbi.t0000644403072340010010000000516014537274605020151 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 784; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| (\$m, \$e) = \$x -> nparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my ($mant_got, $expo_got) = $x -> nparts(); isa_ok($mant_got, "Math::BigInt"); isa_ok($expo_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($expo_got, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| \$m = \$x -> nparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my $mant_got = $x -> nparts(); isa_ok($mant_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 1:1:0 10:1:1 100:1:2 1000:1:3 10000:1:4 100000:1:5 1000000:1:6 10000000:1:7 100000000:1:8 1000000000:1:9 10000000000:1:10 100000000000:1:11 1000000000000:1:12 12:NaN:1 120:NaN:2 1200:NaN:3 12000:NaN:4 120000:NaN:5 1200000:NaN:6 12000000:NaN:7 120000000:NaN:8 1200000000:NaN:9 12000000000:NaN:10 120000000000:NaN:11 1200000000000:NaN:12 123:NaN:2 1230:NaN:3 12300:NaN:4 123000:NaN:5 1230000:NaN:6 12300000:NaN:7 123000000:NaN:8 1230000000:NaN:9 12300000000:NaN:10 123000000000:NaN:11 1230000000000:NaN:12 1234:NaN:3 12340:NaN:4 123400:NaN:5 1234000:NaN:6 12340000:NaN:7 123400000:NaN:8 1234000000:NaN:9 12340000000:NaN:10 123400000000:NaN:11 1234000000000:NaN:12 3141592:NaN:6 # negativ: numbers -1:-1:0 -10:-1:1 -100:-1:2 -1000:-1:3 -10000:-1:4 -100000:-1:5 -1000000:-1:6 -10000000:-1:7 -100000000:-1:8 -1000000000:-1:9 -10000000000:-1:10 -100000000000:-1:11 -1000000000000:-1:12 -12:NaN:1 -120:NaN:2 -1200:NaN:3 -12000:NaN:4 -120000:NaN:5 -1200000:NaN:6 -12000000:NaN:7 -120000000:NaN:8 -1200000000:NaN:9 -12000000000:NaN:10 -120000000000:NaN:11 -1200000000000:NaN:12 -123:NaN:2 -1230:NaN:3 -12300:NaN:4 -123000:NaN:5 -1230000:NaN:6 -12300000:NaN:7 -123000000:NaN:8 -1230000000:NaN:9 -12300000000:NaN:10 -123000000000:NaN:11 -1230000000000:NaN:12 -1234:NaN:3 -12340:NaN:4 -123400:NaN:5 -1234000:NaN:6 -12340000:NaN:7 -123400000:NaN:8 -1234000000:NaN:9 -12340000000:NaN:10 -123400000000:NaN:11 -1234000000000:NaN:12 -3141592:NaN:6 Math-BigInt-2.005003/xt/author/numify-mbf.t0000644403072340010010000000463314536617521020147 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 12; use Math::BigFloat; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; # Compute parameters for relative tolerance. # # $p is the precision, i.e., the number of bits in the mantissa/significand, as # defined in IEEE754. $eps is the smallest number that, when subtracted from 1, # gives a number smaller than 1. my $p = 0; my $eps = 1; while (((1 + $eps) - 1) != 0) { $eps *= 0.5; $p++; } my $reltol = 20 * $eps; ############################################################################### # Check numify() on finite, floating point values. for my $entry ( [ 'Math::BigFloat -> new("+1234e+56") -> numify()', +1234e+56 ], [ 'Math::BigFloat -> new("-1234e+56") -> numify()', -1234e+56 ], [ 'Math::BigFloat -> new("+1234e-56") -> numify()', +1234e-56 ], [ 'Math::BigFloat -> new("-1234e-56") -> numify()', -1234e-56 ], [ 'Math::BigFloat -> bpi() -> numify()', atan2(0, -1) ], ) { my ($test, $expected) = @$entry; my $x = eval $test; die $@ if $@; my $abserr = $x - $expected; my $relerr = $abserr / $expected; if (abs($relerr) <= $reltol) { pass($test); } else { fail($test); diag(< new("1e9999") -> numify(), "==", $inf, qq|Math::BigFloat -> new("1e9999") -> numify()|); # negative overflow cmp_ok(Math::BigFloat -> new("-1e9999") -> numify(), "==", -$inf, qq|Math::BigFloat -> new("-1e9999") -> numify()|); # positive underflow cmp_ok(Math::BigFloat -> new("1e-9999") -> numify(), "==", 0, qq|Math::BigFloat -> new("1e-9999") -> numify()|); # negative underflow cmp_ok(Math::BigFloat -> new("-1e-9999") -> numify(), "==", 0, qq|Math::BigFloat -> new("-1e-9999") -> numify()|); ############################################################################### # Check numify on non-finite objects. is(Math::BigFloat -> binf("+") -> numify(), $inf, "numify of +Inf"); is(Math::BigFloat -> binf("-") -> numify(), -$inf, "numify of -Inf"); is(Math::BigFloat -> bnan() -> numify(), $nan, "numify of NaN"); Math-BigInt-2.005003/xt/author/numify-mbi.t0000644403072340010010000000657314536617521020157 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 15; use Math::BigInt; use Math::Complex (); my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; # Compute parameters for relative tolerance. # # $p is the precision, i.e., the number of bits in the mantissa/significand, as # defined in IEEE754. $eps is the smallest number that, when subtracted from 1, # gives a number smaller than 1. my $p = 0; my $eps = 1; while (((1 + $eps) - 1) != 0) { $eps *= 0.5; $p++; } my $reltol = 20 * $eps; ############################################################################### # Check numify() on finite values. cmp_ok(Math::BigInt -> bzero() -> numify(), "==", 0, 'Math::BigInt -> bzero() -> numify()'); cmp_ok(Math::BigInt -> bone() -> numify(), "==", 1, 'Math::BigInt -> bone() -> numify()'); cmp_ok(Math::BigInt -> new("4711") -> numify(), "==", 4711, 'Math::BigInt -> new("4711") -> numify()'); cmp_ok(Math::BigInt -> new("-4711") -> numify(), "==", -4711, 'Math::BigInt -> new("-4711") -> numify()'); ############################################################################### # Check numify() on finite, floating point values. for my $entry ( [ 'Math::BigInt -> new("+1234e+56") -> numify()', +1234e+56 ], [ 'Math::BigInt -> new("-1234e+56") -> numify()', -1234e+56 ], ) { my ($test, $expected) = @$entry; my $x = eval $test; die $@ if $@; my $abserr = $x - $expected; my $relerr = $abserr / $expected; if (abs($relerr) <= $reltol) { pass($test); } else { fail($test); diag(< new("1e9999") -> numify(), $inf, qq|Math::BigInt -> new("1e9999") -> numify()|); # negative overflow is(Math::BigInt -> new("-1e9999") -> numify(), -$inf, qq|Math::BigInt -> new("-1e9999") -> numify()|); ############################################################################### # Check numify on non-finite objects. is(Math::BigInt -> binf("+") -> numify(), $inf, "numify of +Inf"); is(Math::BigInt -> binf("-") -> numify(), -$inf, "numify of -Inf"); is(Math::BigInt -> bnan() -> numify(), $nan, "numify of NaN"); ############################################################################### SKIP: { skip "insufficient 64 bit integer support", 4 unless ($Config::Config{ptrsize} == 8 && $] >= 5.008 && ($Config::Config{use64bitint} || $Config::Config{use64bitall})); # The following should not give "1.84467440737096e+19". { my $x = Math::BigInt -> new(2) -> bpow(64) -> bdec(); is($x -> bstr(), "18446744073709551615", "Math::BigInt 2**64-1 as string"); is($x -> numify(), "18446744073709551615", "Math::BigInt 2**64-1 as number"); } # The following should not give "-9.22337203685478e+18". { my $x = Math::BigInt -> new(2) -> bpow(63) -> bneg(); is($x -> bstr(), "-9223372036854775808", "Math::BigInt -2**63 as string"); is($x -> numify(), "-9223372036854775808", "Math::BigInt -2**63 as number"); } } Math-BigInt-2.005003/xt/author/objectify-mbf.t0000644403072340010010000000466114537274605020622 0ustar OSPJADomain Users# -*- mode: perl; -*- # # Verify that objectify() is able to convert a "foreign" object into what we # want, when what we want is Math::BigFloat or subclass thereof. use strict; use warnings; package main; use Test::More tests => 6; use Math::BigFloat; ############################################################################### for my $class ('Math::BigFloat', 'Math::BigFloat::Subclass') { # This object defines what we want. my $float = $class -> new(10); # Create various objects that should work with the object above after # objectify() has done its thing. my $float_percent1 = My::Percent::Float1 -> new(100); is($float * $float_percent1, 10, qq|$float = $class -> new(10);| . q| $float_percent1 = My::Percent::Float1 -> new(100);| . q| $float * $float_percent1;|); my $float_percent2 = My::Percent::Float2 -> new(100); is($float * $float_percent2, 10, qq|$float = $class -> new(10);| . q| $float_percent2 = My::Percent::Float2 -> new(100);| . q| $float * $float_percent2;|); my $float_percent3 = My::Percent::Float3 -> new(100); is($float * $float_percent3, 10, qq|$float = $class -> new(10);| . q| $float_percent3 = My::Percent::Float3 -> new(100);| . q| $float * $float_percent3;|); } ############################################################################### # Class supports as_float(), which returns a Math::BigFloat. package My::Percent::Float1; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_float { my $self = shift; return Math::BigFloat -> new($$self / 100); } ############################################################################### # Class supports as_float(), which returns a scalar. package My::Percent::Float2; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_float { my $self = shift; return $$self / 100; } ############################################################################### # Class does not support as_float(). package My::Percent::Float3; use overload '""' => sub { $_[0] -> as_string(); }; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_string { my $self = shift; return $$self / 100; } ############################################################################### package Math::BigFloat::Subclass; use base 'Math::BigFloat'; Math-BigInt-2.005003/xt/author/objectify-mbi.t0000644403072340010010000000673114537274605020625 0ustar OSPJADomain Users# -*- mode: perl; -*- # # Verify that objectify() is able to convert a "foreign" object into what we # want, when what we want is Math::BigInt or subclass thereof. use strict; use warnings; package main; use Test::More tests => 10; use Math::BigInt; ############################################################################### for my $class ('Math::BigInt', 'Math::BigInt::Subclass') { # This object defines what we want. my $int = $class -> new(10); # Create various objects that should work with the object above after # objectify() has done its thing. my $int_percent1 = My::Percent::Int1 -> new(100); is($int * $int_percent1, 10, qq|$class -> new(10);| . q| $int_percent1 = My::Percent::Int1 -> new(100);| . q| $int * $int_percent1|); my $int_percent2 = My::Percent::Int2 -> new(100); is($int * $int_percent2, 10, qq|$class -> new(10);| . q| $int_percent2 = My::Percent::Int2 -> new(100);| . q| $int * $int_percent2|); my $int_percent3 = My::Percent::Int3 -> new(100); is($int * $int_percent3, 10, qq|$class -> new(10);| . q| $int_percent3 = My::Percent::Int3 -> new(100);| . q| $int * $int_percent3|); my $int_percent4 = My::Percent::Int4 -> new(100); is($int * $int_percent4, 10, qq|$class -> new(10);| . q| $int_percent4 = My::Percent::Int4 -> new(100);| . q| $int * $int_percent4|); my $int_percent5 = My::Percent::Int5 -> new(100); is($int * $int_percent5, 10, qq|$class -> new(10);| . q| $int_percent5 = My::Percent::Int5 -> new(100);| . q| $int * $int_percent5|); } ############################################################################### # Class supports as_int(), which returns a Math::BigInt. package My::Percent::Int1; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_int { my $self = shift; return Math::BigInt -> new($$self / 100); } ############################################################################### # Class supports as_int(), which returns a scalar. package My::Percent::Int2; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_int { my $self = shift; return $$self / 100; } ############################################################################### # Class does not support as_int(), but supports as_number(), which returns a # Math::BigInt. package My::Percent::Int3; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_number { my $self = shift; return Math::BigInt -> new($$self / 100); } ############################################################################### # Class does not support as_int(), but supports as_number(), which returns a # scalar. package My::Percent::Int4; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_number { my $self = shift; return $$self / 100; } ############################################################################### # Class supports neither as_int() or as_number(). package My::Percent::Int5; use overload '""' => sub { $_[0] -> as_string(); }; sub new { my $class = shift; my $num = shift; return bless \$num, $class; } sub as_string { my $self = shift; return $$self / 100; } ############################################################################### package Math::BigInt::Subclass; use base 'Math::BigInt'; Math-BigInt-2.005003/xt/author/relop-mbi-mbf.t0000644403072340010010000002355014536617521020525 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 17642; use Math::Complex (); my $scalar_util_ok = eval { require Scalar::Util; }; Scalar::Util -> import('refaddr') if $scalar_util_ok; diag "Skipping some tests since Scalar::Util is not installed." unless $scalar_util_ok; my $inf = $Math::Complex::Inf; my $nan = $inf - $inf; my @table = ( [ '<=>', 'bcmp', ], [ '==', 'beq', ], [ '!=', 'bne', ], [ '<', 'blt', ], [ '<=', 'ble', ], [ '>', 'bgt', ], [ '>=', 'bge', ], ); my @values = (-$inf, -2, 0, 2, $inf, $nan); my @classes = ( 'Math::BigInt', 'Math::BigFloat', ); for my $class (@classes) { use_ok($class); for my $entry (@table) { my $operator = $entry -> [0]; my $method = $entry -> [1]; for my $xscalar (@values) { for my $yscalar (@values) { my $expected = eval qq|\$xscalar $operator \$yscalar|; note("#" x 70); note(""); note(qq|"$xscalar" $operator "$yscalar" = |, !defined $expected ? "undef" : !length $expected ? '""' : $expected); note(""); note("#" x 70); { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = $class -> new("$yscalar"); |; $test .= qq|\$xval = \$x -> copy(); |; $test .= qq|\$xaddr = refaddr(\$x); | if $scalar_util_ok; $test .= qq|\$yval = \$y -> copy(); |; $test .= qq|\$yaddr = refaddr(\$y); | if $scalar_util_ok; $test .= qq|\$z = \$x -> $method(\$y);|; note(""); note("\$x -> $method(\$y) where \$x is an object", " and \$y is an object"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($x), $xaddr, 'address of $x is unchanged') } is($y, $yval, 'value of $y is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($y), $yaddr, 'address of $y is unchanged') } } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = $class -> new("$yscalar"); |; $test .= qq|\$xval = \$x -> copy(); |; $test .= qq|\$xaddr = refaddr(\$x); | if $scalar_util_ok; $test .= qq|\$yval = \$y -> copy(); |; $test .= qq|\$yaddr = refaddr(\$y); | if $scalar_util_ok; $test .= qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is an object and", " \$y is an object"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($x), $xaddr, 'address of $x is unchanged') } is($y, $yval, 'value of $y is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($y), $yaddr, 'address of $y is unchanged'); } } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $yscalar; my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = "$yscalar"; |; $test .= qq|\$xval = \$x -> copy(); |; $test .= qq|\$xaddr = refaddr(\$x); | if $scalar_util_ok; $test .= qq|\$yval = "$yscalar"; |; $test .= qq|\$yaddr = refaddr(\$y); | if $scalar_util_ok; $test .= qq|\$z = \$x -> $method(\$y);|; note(""); note("\$x -> $method(\$y) where \$x is an object", " and \$y is a scalar"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($x), $xaddr, 'address of $x is unchanged'); } is($y, $yval, 'value of $y is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($y), $yaddr, 'address of $y is unchanged'); } } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = "$yscalar"; |; $test .= qq|\$xval = \$x -> copy(); |; $test .= qq|\$xaddr = refaddr(\$x); | if $scalar_util_ok; $test .= qq|\$yval = "$yscalar"; |; $test .= qq|\$yaddr = refaddr(\$y); | if $scalar_util_ok; $test .= qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is an object", " and \$y is a scalar"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($x), $xaddr, 'address of $x is unchanged') } is($y, $yval, 'value of $y is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($y), $yaddr, 'address of $y is unchanged') } } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = "$xscalar"; | . qq|\$y = $class -> new("$yscalar"); |; $test .= qq|\$xval = "$xscalar"; |; $test .= qq|\$xaddr = refaddr(\$x); | if $scalar_util_ok; $test .= qq|\$yval = \$y -> copy(); |; $test .= qq|\$yaddr = refaddr(\$y); | if $scalar_util_ok; $test .= qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is a scalar and", " \$y is an object:"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($x), $xaddr, 'address of $x is unchanged'); } is($y, $yval, 'value of $y is unchanged'); SKIP: { skip "Scalar::Util not available", 1 unless $scalar_util_ok; is(refaddr($y), $yaddr, 'address of $y is unchanged'); } } } } } } Math-BigInt-2.005003/xt/author/relop-mbr.t0000644403072340010010000002040314546553333017767 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 8821; use Math::Complex (); use Scalar::Util qw< refaddr >; my $inf = Math::Complex::Inf(); my $nan = $inf - $inf; my @table = ( [ '<=>', 'bcmp', ], [ '==', 'beq', ], [ '!=', 'bne', ], [ '<', 'blt', ], [ '<=', 'ble', ], [ '>', 'bgt', ], [ '>=', 'bge', ], ); my @values = (-$inf, -2, 0, 2, $inf, $nan); my @classes = ( 'Math::BigRat', ); for my $class (@classes) { use_ok($class); for my $entry (@table) { my $operator = $entry -> [0]; my $method = $entry -> [1]; for my $xscalar (@values) { for my $yscalar (@values) { my $expected = eval qq|"$xscalar" $operator "$yscalar"|; note("#" x 70); note(""); note(qq|"$xscalar" $operator "$yscalar" = |, !defined $expected ? "undef" : !length $expected ? '""' : $expected); note(""); note("#" x 70); { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = $class -> new("$yscalar"); | . qq|\$xval = \$x -> copy(); | . qq|\$xaddr = refaddr(\$x); | . qq|\$yval = \$y -> copy(); | . qq|\$yaddr = refaddr(\$y); | . qq|\$z = \$x -> $method(\$y);|; note(""); note("\$x -> $method(\$y) where \$x is an object", " and \$y is an object"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); is(refaddr($x), $xaddr, 'address of $x is unchanged'); is($y, $yval, 'value of $y is unchanged'); is(refaddr($y), $yaddr, 'address of $y is unchanged'); } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = $class -> new("$yscalar"); | . qq|\$xval = \$x -> copy(); | . qq|\$xaddr = refaddr(\$x); | . qq|\$yval = \$y -> copy(); | . qq|\$yaddr = refaddr(\$y); | . qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is an object and", " \$y is an object"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); is(refaddr($x), $xaddr, 'address of $x is unchanged'); is($y, $yval, 'value of $y is unchanged'); is(refaddr($y), $yaddr, 'address of $y is unchanged'); } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $yscalar; my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = "$yscalar"; | . qq|\$xval = \$x -> copy(); | . qq|\$xaddr = refaddr(\$x); | . qq|\$yval = "$yscalar"; | . qq|\$yaddr = refaddr(\$y); | . qq|\$z = \$x -> $method(\$y);|; note(""); note("\$x -> $method(\$y) where \$x is an object", " and \$y is a scalar"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); is(refaddr($x), $xaddr, 'address of $x is unchanged'); is($y, $yval, 'value of $y is unchanged'); is(refaddr($y), $yaddr, 'address of $y is unchanged'); } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = $class -> new("$xscalar"); | . qq|\$y = "$yscalar"; | . qq|\$xval = \$x -> copy(); | . qq|\$xaddr = refaddr(\$x); | . qq|\$yval = "$yscalar"; | . qq|\$yaddr = refaddr(\$y); | . qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is an object", " and \$y is a scalar"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); is(refaddr($x), $xaddr, 'address of $x is unchanged'); is($y, $yval, 'value of $y is unchanged'); is(refaddr($y), $yaddr, 'address of $y is unchanged'); } { my ($x, $y, $z); my ($xval, $xaddr); my ($yval, $yaddr); $x = $class -> new("$xscalar"); $y = $class -> new("$yscalar"); my $test = qq|\$x = "$xscalar"; | . qq|\$y = $class -> new("$yscalar"); | . qq|\$xval = "$xscalar"; | . qq|\$xaddr = refaddr(\$x); | . qq|\$yval = \$y -> copy(); | . qq|\$yaddr = refaddr(\$y); | . qq|\$z = \$x $operator \$y;|; note(""); note("\$x $operator \$y where \$x is a scalar and", " \$y is an object:"); note(""); note($test); note(""); eval $test; is($@, '', 'is $@ empty'); is($z, $expected, 'value of $z'); is(ref($z), '', '$z is not a reference'); is($x, $xval, 'value of $x is unchanged'); is(refaddr($x), $xaddr, 'address of $x is unchanged'); is($y, $yval, 'value of $y is unchanged'); is(refaddr($y), $yaddr, 'address of $y is unchanged'); } } } } } Math-BigInt-2.005003/xt/author/req_mbf_binf.t0000644403072340010010000000035214546553333020502 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling binf() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> binf(); is($x, 'inf', '$x is inf'); Math-BigInt-2.005003/xt/author/req_mbf_bnan.t0000644403072340010010000000035214546553333020502 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling bnan() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> bnan(); is($x, 'NaN', '$x is NaN'); Math-BigInt-2.005003/xt/author/req_mbf_bone.t0000644403072340010010000000034614546553333020512 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling bone() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> bone(); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbf_bpi.t0000644403072340010010000000047114546553333020340 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling bpi() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> bpi(); is($x, "3.141592653589793238462643383279502884197", '$x is "3.141592653589793238462643383279502884197"'); Math-BigInt-2.005003/xt/author/req_mbf_bzero.t0000644403072340010010000000035014546553333020703 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling bzero() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> bzero(); is($x, '0', '$x is 0'); Math-BigInt-2.005003/xt/author/req_mbf_from_bin.t0000644403072340010010000000035714546553333021364 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling from_bin() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> from_bin(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbf_from_dec.t0000644403072340010010000000035714546553333021347 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling from_dec() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> from_dec(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbf_from_hex.t0000644403072340010010000000035714546553333021400 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling from_hex() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> from_hex(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbf_from_ieee754.t0000644403072340010010000000043414546553333021757 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling from_ieee754() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> from_ieee754("\x3f\x40\x00\x00", "binary32"); is($x, "0.75", '$x is "0.75"'); Math-BigInt-2.005003/xt/author/req_mbf_from_oct.t0000644403072340010010000000035714546553333021401 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling from_oct() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> from_oct(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbf_new.t0000644403072340010010000000034514546553333020357 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigFloat and then calling new() works use strict; use warnings; use Test::More tests => 1; require Math::BigFloat; my $x = Math::BigFloat -> new(2); is($x, '2', '$x is 2'); Math-BigInt-2.005003/xt/author/req_mbi_binf.t0000644403072340010010000000034414546553333020506 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling binf() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> binf(); is($x, 'inf', '$x is inf'); Math-BigInt-2.005003/xt/author/req_mbi_bnan.t0000644403072340010010000000034414546553333020506 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling bnan() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> bnan(); is($x, 'NaN', '$x is NaN'); Math-BigInt-2.005003/xt/author/req_mbi_bone.t0000644403072340010010000000034014546553333020507 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling bone() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> bone(); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_bpi.t0000644403072340010010000000033414546553333020341 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling bpi() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> bpi(); is($x, 3, '$x is 3'); Math-BigInt-2.005003/xt/author/req_mbi_bzero.t0000644403072340010010000000034214546553333020707 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling bzero() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> bzero(); is($x, '0', '$x is 0'); Math-BigInt-2.005003/xt/author/req_mbi_from_base.t0000644403072340010010000000035714546553333021531 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_base() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_base("1", 10); is($x, 1, '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_base_num.t0000644403072340010010000000036714546553333022411 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_base_num() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_base_num([1], 10); is($x, 1, '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_bin.t0000644403072340010010000000035114546553333021361 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_bin() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_bin(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_bytes.t0000644403072340010010000000036014546553333021737 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_bytes() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_bytes("\x01"); is($x, 1, '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_dec.t0000644403072340010010000000035114546553333021344 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_dec() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_dec(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_hex.t0000644403072340010010000000035114546553333021375 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_hex() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_hex(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_from_oct.t0000644403072340010010000000035114546553333021376 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling from_oct() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> from_oct(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbi_new.t0000644403072340010010000000033714546553333020363 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigInt and then calling new() works use strict; use warnings; use Test::More tests => 1; require Math::BigInt; my $x = Math::BigInt -> new(2); is($x, '2', '$x is 2'); Math-BigInt-2.005003/xt/author/req_mbr_binf.t0000644403072340010010000000034414546553333020517 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling binf() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> binf(); is($x, 'inf', '$x is inf'); Math-BigInt-2.005003/xt/author/req_mbr_bnan.t0000644403072340010010000000034414546553333020517 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling bnan() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> bnan(); is($x, 'NaN', '$x is NaN'); Math-BigInt-2.005003/xt/author/req_mbr_bone.t0000644403072340010010000000034014546553333020520 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling bone() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> bone(); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbr_bzero.t0000644403072340010010000000034214546553333020720 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling bzero() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> bzero(); is($x, '0', '$x is 0'); Math-BigInt-2.005003/xt/author/req_mbr_from_bin.t0000644403072340010010000000035114546553333021372 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling from_bin() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> from_bin(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbr_from_dec.t0000644403072340010010000000035114546553333021355 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling from_dec() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> from_dec(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbr_from_hex.t0000644403072340010010000000035114546553333021406 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling from_hex() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> from_hex(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbr_from_ieee754.t0000644403072340010010000000042414546553333021772 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling from_ieee754() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> from_ieee754("\x3f\x40\x00\x00", "binary32"); is($x, "3/4", '$x is "3/4"'); Math-BigInt-2.005003/xt/author/req_mbr_from_oct.t0000644403072340010010000000035114546553333021407 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling from_oct() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> from_oct(1); is($x, '1', '$x is 1'); Math-BigInt-2.005003/xt/author/req_mbr_new.t0000644403072340010010000000033714546553333020374 0ustar OSPJADomain Users# -*- mode: perl; -*- # check that requiring Math::BigRat and then calling new() works use strict; use warnings; use Test::More tests => 1; require Math::BigRat; my $x = Math::BigRat -> new(2); is($x, '2', '$x is 2'); Math-BigInt-2.005003/xt/author/sparts-mbf.t0000644403072340010010000001431114546553333020147 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 1848; use Math::BigFloat; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; my ($test, $x, $mant, $expo); # List context. $test = qq|\$x = Math::BigFloat -> new("$x_str"); | . qq|(\$mant, \$expo) = \$x -> sparts();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; is(ref($mant), "Math::BigFloat"); is(ref($expo), "Math::BigFloat"); is($mant, $mant_str, "value of mantissa"); is($expo, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); # Scalar context. $test = qq|\$x = Math::BigFloat -> new("$x_str"); | . qq|\$mant = \$x -> sparts();|; note "\n", $test, "\n\n"; eval $test; die $@ if $@; is(ref($mant), "Math::BigFloat"); is($mant, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } # Verify that the accuracy of the significand and the exponent depends on the # accuracy of the invocand, if set, not the class. note(qq|\nVerify that accuracy depends on invocand, not class.\n\n|); { Math::BigFloat -> accuracy(20); my $x = Math::BigFloat -> new("3"); # accuray is 20 $x -> accuracy(10); # reduce accuray to 10 my ($mant, $expo) = $x -> sparts(); cmp_ok($mant, '==', 3, "value of significand"); cmp_ok($expo, '==', 0, "value of exponent"); cmp_ok($mant -> accuracy(), '==', 20, "accuracy of significand"); cmp_ok($expo -> accuracy(), '==', 20, "accuracy of exponent"); } note(qq|\nVerify that precision depends on invocand, not class.\n\n|); { Math::BigFloat -> precision(20); my $x = Math::BigFloat -> new("3"); # precision is 20 $x -> precision(10); # reduce precision to 10 my ($mant, $expo) = $x -> sparts(); cmp_ok($mant, '==', 3, "value of significand"); cmp_ok($expo, '==', 0, "value of exponent"); cmp_ok($mant -> precision(), '==', 20, "precision of significand"); cmp_ok($expo -> precision(), '==', 20, "precision of exponent"); } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 0.000000000001:1:-12 0.00000000001:1:-11 0.0000000001:1:-10 0.000000001:1:-9 0.00000001:1:-8 0.0000001:1:-7 0.000001:1:-6 0.00001:1:-5 0.0001:1:-4 0.001:1:-3 0.01:1:-2 0.1:1:-1 1:1:0 10:1:1 100:1:2 1000:1:3 10000:1:4 100000:1:5 1000000:1:6 10000000:1:7 100000000:1:8 1000000000:1:9 10000000000:1:10 100000000000:1:11 1000000000000:1:12 0.0000000000012:12:-13 0.000000000012:12:-12 0.00000000012:12:-11 0.0000000012:12:-10 0.000000012:12:-9 0.00000012:12:-8 0.0000012:12:-7 0.000012:12:-6 0.00012:12:-5 0.0012:12:-4 0.012:12:-3 0.12:12:-2 1.2:12:-1 12:12:0 120:12:1 1200:12:2 12000:12:3 120000:12:4 1200000:12:5 12000000:12:6 120000000:12:7 1200000000:12:8 12000000000:12:9 120000000000:12:10 1200000000000:12:11 0.00000000000123:123:-14 0.0000000000123:123:-13 0.000000000123:123:-12 0.00000000123:123:-11 0.0000000123:123:-10 0.000000123:123:-9 0.00000123:123:-8 0.0000123:123:-7 0.000123:123:-6 0.00123:123:-5 0.0123:123:-4 0.123:123:-3 1.23:123:-2 12.3:123:-1 123:123:0 1230:123:1 12300:123:2 123000:123:3 1230000:123:4 12300000:123:5 123000000:123:6 1230000000:123:7 12300000000:123:8 123000000000:123:9 1230000000000:123:10 0.000000000001234:1234:-15 0.00000000001234:1234:-14 0.0000000001234:1234:-13 0.000000001234:1234:-12 0.00000001234:1234:-11 0.0000001234:1234:-10 0.000001234:1234:-9 0.00001234:1234:-8 0.0001234:1234:-7 0.001234:1234:-6 0.01234:1234:-5 0.1234:1234:-4 1.234:1234:-3 12.34:1234:-2 123.4:1234:-1 1234:1234:0 12340:1234:1 123400:1234:2 1234000:1234:3 12340000:1234:4 123400000:1234:5 1234000000:1234:6 12340000000:1234:7 123400000000:1234:8 1234000000000:1234:9 0.000003141592:3141592:-12 0.00003141592:3141592:-11 0.0003141592:3141592:-10 0.003141592:3141592:-9 0.03141592:3141592:-8 0.3141592:3141592:-7 3.141592:3141592:-6 31.41592:3141592:-5 314.1592:3141592:-4 3141.592:3141592:-3 31415.92:3141592:-2 314159.2:3141592:-1 3141592:3141592:0 # negativ: numbers -0.000000000001:-1:-12 -0.00000000001:-1:-11 -0.0000000001:-1:-10 -0.000000001:-1:-9 -0.00000001:-1:-8 -0.0000001:-1:-7 -0.000001:-1:-6 -0.00001:-1:-5 -0.0001:-1:-4 -0.001:-1:-3 -0.01:-1:-2 -0.1:-1:-1 -1:-1:0 -10:-1:1 -100:-1:2 -1000:-1:3 -10000:-1:4 -100000:-1:5 -1000000:-1:6 -10000000:-1:7 -100000000:-1:8 -1000000000:-1:9 -10000000000:-1:10 -100000000000:-1:11 -1000000000000:-1:12 -0.0000000000012:-12:-13 -0.000000000012:-12:-12 -0.00000000012:-12:-11 -0.0000000012:-12:-10 -0.000000012:-12:-9 -0.00000012:-12:-8 -0.0000012:-12:-7 -0.000012:-12:-6 -0.00012:-12:-5 -0.0012:-12:-4 -0.012:-12:-3 -0.12:-12:-2 -1.2:-12:-1 -12:-12:0 -120:-12:1 -1200:-12:2 -12000:-12:3 -120000:-12:4 -1200000:-12:5 -12000000:-12:6 -120000000:-12:7 -1200000000:-12:8 -12000000000:-12:9 -120000000000:-12:10 -1200000000000:-12:11 -0.00000000000123:-123:-14 -0.0000000000123:-123:-13 -0.000000000123:-123:-12 -0.00000000123:-123:-11 -0.0000000123:-123:-10 -0.000000123:-123:-9 -0.00000123:-123:-8 -0.0000123:-123:-7 -0.000123:-123:-6 -0.00123:-123:-5 -0.0123:-123:-4 -0.123:-123:-3 -1.23:-123:-2 -12.3:-123:-1 -123:-123:0 -1230:-123:1 -12300:-123:2 -123000:-123:3 -1230000:-123:4 -12300000:-123:5 -123000000:-123:6 -1230000000:-123:7 -12300000000:-123:8 -123000000000:-123:9 -1230000000000:-123:10 -0.000000000001234:-1234:-15 -0.00000000001234:-1234:-14 -0.0000000001234:-1234:-13 -0.000000001234:-1234:-12 -0.00000001234:-1234:-11 -0.0000001234:-1234:-10 -0.000001234:-1234:-9 -0.00001234:-1234:-8 -0.0001234:-1234:-7 -0.001234:-1234:-6 -0.01234:-1234:-5 -0.1234:-1234:-4 -1.234:-1234:-3 -12.34:-1234:-2 -123.4:-1234:-1 -1234:-1234:0 -12340:-1234:1 -123400:-1234:2 -1234000:-1234:3 -12340000:-1234:4 -123400000:-1234:5 -1234000000:-1234:6 -12340000000:-1234:7 -123400000000:-1234:8 -1234000000000:-1234:9 -0.000003141592:-3141592:-12 -0.00003141592:-3141592:-11 -0.0003141592:-3141592:-10 -0.003141592:-3141592:-9 -0.03141592:-3141592:-8 -0.3141592:-3141592:-7 -3.141592:-3141592:-6 -31.41592:-3141592:-5 -314.1592:-3141592:-4 -3141.592:-3141592:-3 -31415.92:-3141592:-2 -314159.2:-3141592:-1 -3141592:-3141592:0 Math-BigInt-2.005003/xt/author/sparts-mbi.t0000644403072340010010000000742014537274605020157 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 792; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($x_str, $mant_str, $expo_str) = split /:/; note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| (\$m, \$e) = \$x -> sparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my ($mant_got, $expo_got) = $x -> sparts(); isa_ok($mant_got, "Math::BigInt"); isa_ok($expo_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($expo_got, $expo_str, "value of exponent"); is($x, $x_str, "input is unmodified"); } note(qq|\n\$x = Math::BigInt -> new("$x_str");|, qq| \$m = \$x -> sparts();\n\n|); { my $x = Math::BigInt -> new($x_str); my $mant_got = $x -> sparts(); isa_ok($mant_got, "Math::BigInt"); is($mant_got, $mant_str, "value of mantissa"); is($x, $x_str, "input is unmodified"); } } # Verify that the accuracy of the significand and the exponent depends on the # accuracy of the invocand, if set, not the class. note(qq|\nVerify that accuracy depends on invocand, not class.\n\n|); { Math::BigInt -> accuracy(20); my $x = Math::BigInt -> new("3"); # accuracy is 20 $x -> accuracy(10); # reduce accuracy to 10 my ($mant, $expo) = $x -> sparts(); cmp_ok($mant, '==', 3, "value of significand"); cmp_ok($expo, '==', 0, "value of exponent"); cmp_ok($mant -> accuracy(), '==', 10, "accuracy of significand"); cmp_ok($expo -> accuracy(), '==', 20, "accuracy of exponent"); } note(qq|\nVerify that precision depends on invocand, not class.\n\n|); { Math::BigInt -> precision(20); my $x = Math::BigInt -> new("3"); # precision is 20 $x -> precision(10); # reduce precision to 10 my ($mant, $expo) = $x -> sparts(); cmp_ok($mant, '==', 3, "value of significand"); cmp_ok($expo, '==', 0, "value of exponent"); cmp_ok($mant -> precision(), '==', 10, "precision of significand"); cmp_ok($expo -> precision(), '==', 20, "precision of exponent"); } __DATA__ NaN:NaN:NaN inf:inf:inf -inf:-inf:inf 0:0:0 # positive numbers 1:1:0 10:1:1 100:1:2 1000:1:3 10000:1:4 100000:1:5 1000000:1:6 10000000:1:7 100000000:1:8 1000000000:1:9 10000000000:1:10 100000000000:1:11 1000000000000:1:12 12:12:0 120:12:1 1200:12:2 12000:12:3 120000:12:4 1200000:12:5 12000000:12:6 120000000:12:7 1200000000:12:8 12000000000:12:9 120000000000:12:10 1200000000000:12:11 123:123:0 1230:123:1 12300:123:2 123000:123:3 1230000:123:4 12300000:123:5 123000000:123:6 1230000000:123:7 12300000000:123:8 123000000000:123:9 1230000000000:123:10 1234:1234:0 12340:1234:1 123400:1234:2 1234000:1234:3 12340000:1234:4 123400000:1234:5 1234000000:1234:6 12340000000:1234:7 123400000000:1234:8 1234000000000:1234:9 3141592:3141592:0 # negativ: numbers -1:-1:0 -10:-1:1 -100:-1:2 -1000:-1:3 -10000:-1:4 -100000:-1:5 -1000000:-1:6 -10000000:-1:7 -100000000:-1:8 -1000000000:-1:9 -10000000000:-1:10 -100000000000:-1:11 -1000000000000:-1:12 -12:-12:0 -120:-12:1 -1200:-12:2 -12000:-12:3 -120000:-12:4 -1200000:-12:5 -12000000:-12:6 -120000000:-12:7 -1200000000:-12:8 -12000000000:-12:9 -120000000000:-12:10 -1200000000000:-12:11 -123:-123:0 -1230:-123:1 -12300:-123:2 -123000:-123:3 -1230000:-123:4 -12300000:-123:5 -123000000:-123:6 -1230000000:-123:7 -12300000000:-123:8 -123000000000:-123:9 -1230000000000:-123:10 -1234:-1234:0 -12340:-1234:1 -123400:-1234:2 -1234000:-1234:3 -12340000:-1234:4 -123400000:-1234:5 -1234000000:-1234:6 -12340000000:-1234:7 -123400000000:-1234:8 -1234000000000:-1234:9 -3141592:-3141592:0 Math-BigInt-2.005003/xt/author/to_base-mbi.t0000644403072340010010000000304714537274605020260 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 30; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my @in = split /:/; my $out = pop @in; my ($x, $xo, $y); my $test = qq|\$x = $class -> new("$in[0]");|; $test .= qq| \$xo = \$x -> copy();|; $test .= qq| \$y = \$x -> to_base($in[1]|; $test .= qq|, "$in[2]"| if @in == 3; $test .= qq|);|; eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2, is($x, $xo, "invocand object was not changed"); is($y, $out, 'output arg has the right value'); }; } __END__ # Base 2 0:2:0 1:2:1 2:2:10 0:2:ab:a 1:2:ab:b 2:2:ab:ba 250:2:11111010 250:2:01:11111010 # Base 8 250:8:372 250:8:01234567:372 # Base 10 (in the last case, use a truncted collation sequence that does not # include unused characters) 250:10:250 250:10:0123456789:250 250:10:012345:250 # Base 16 250:16:FA 250:16:0123456789abcdef:fa 250:16:0123456789abcdef:fa # Base 3 250:3:100021 250:3:012:100021 15:3:-/|:/|- # Base 4 250:4:3322 250:4:0123:3322 # Base 5 250:5:2000 250:5:01234:2000 250:5:abcde:caaa # Other bases 250:36:6Y 250:37:6S 16:3:121 44027:36:XYZ 125734:62:Why Math-BigInt-2.005003/xt/author/to_base_num-mbi.t0000644403072340010010000000302614537274605021134 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 14; my $class; BEGIN { $class = 'Math::BigInt'; } BEGIN { use_ok($class); } # For simplicity, we use the same data in the test programs for to_base_num() and # from_base_num(). my @data = ( [ 0, 2, [ 0 ] ], [ 1, 2, [ 1 ] ], [ 2, 2, [ 1, 0 ] ], [ 3, 2, [ 1, 1, ] ], [ 4, 2, [ 1, 0, 0 ] ], [ 0, 10, [ 0 ] ], [ 1, 10, [ 1 ] ], [ 12, 10, [ 1, 2 ] ], [ 123, 10, [ 1, 2, 3 ] ], [ 1230, 10, [ 1, 2, 3, 0 ] ], [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ], [ "1234567890" x 3, "987654321", [ "128", "142745769", "763888804", "574845669" ]], [ "1234567890" x 5, "987654321" x 3, [ "12499999874843750102814", "447551941015330718793208596" ]], ); for (my $i = 0 ; $i <= $#data ; ++ $i) { my @in = ($data[$i][0], $data[$i][1]); my $out = $data[$i][2]; my ($x, $xo, $y); my $test = qq|\$x = $class -> new("$in[0]");|; $test .= qq| \$xo = \$x -> copy();|; $test .= qq| \$y = \$x -> to_base_num("$in[1]")|; eval $test; die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 4, is($x, $xo, "invocand object was not changed"); is(ref($y), 'ARRAY', "output arg is an ARRAY ref"); ok(! grep(ref() ne $class, @$y), "every array element is a $class"); is_deeply($y, $out, 'every array element has the right value'); }; } Math-BigInt-2.005003/xt/author/to_bin-mbf.t0000644403072340010010000000232414546553333020106 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%b", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "2 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> to_bin("$want");\n\n|; my $got = Math::BigFloat -> to_bin($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> new("$in") -> to_bin();\n\n|; my $got = Math::BigFloat -> new("$in") -> to_bin(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_bin-mbi.t0000644403072340010010000000223714546553333020114 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%b", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "2 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> to_bin("$want");\n\n|; my $got = Math::BigInt -> to_bin($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> new("$in") -> to_bin();\n\n|; my $got = Math::BigInt -> new("$in") -> to_bin(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_bin-mbr.t0000644403072340010010000000231214546553333020117 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigRat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%b", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "2 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> to_bin("$want");\n\n|; my $got = Math::BigRat -> to_bin($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> new("$in") -> to_bin();\n\n|; my $got = Math::BigRat -> new("$in") -> to_bin(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_bytes-mbi-mbr-mbf.t0000644403072340010010000000500614762525241022004 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 57; my @classes; BEGIN { @classes = qw< Math::BigInt Math::BigRat Math::BigFloat >; for my $class (@classes) { use_ok($class); } } my $cases = [ [ 0, "\x00" ], [ 255, "\xff" ], [ 10000, "\x27\x10" ], [ 51966, "\xCA\xFE" ], [ 3405691582, "\xCA\xFE\xBA\xBE" ], [ 3735928559, "\xDE\xAD\xBE\xEF" ], ]; for my $case (@$cases) { my ($in, $out) = @$case; for my $class (@classes) { # As class method with scalar input. { my $y; my $test = qq|\$y = $class -> to_bytes("$in");|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($y), '', "output arg is a SCALAR"); is($y, $out, 'output arg has the right value'); }; } # As class method with object input. { my ($x, $y); my $test = qq|\$x = $class -> new("$in");| . qq| \$y = $class -> to_bytes(\$x);|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($y), '', "output arg is a SCALAR"); is($y, $out, 'output arg has the right value'); }; } # As instance method. { my ($x, $y); my $test = qq|\$x = $class -> new("$in");| . qq| \$y = \$x -> to_bytes();|; note("\n$test\n\n"); eval $test; #die $@ if $@; # this should never happen die "\nThe following test died when eval()'ed. This indicates a ", "broken test\n\n $test\n\nThe error message was\n\n $@\n" if $@; subtest $test, sub { plan tests => 2; is(ref($y), '', "output arg is a SCALAR"); is($y, $out, 'output arg has the right value'); }; } } } Math-BigInt-2.005003/xt/author/to_fp80-mbf.t0000644403072340010010000002060214775747130020116 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 26; use Math::BigFloat; my $b = 2; # base my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigFloat -> new($b); $p = Math::BigFloat -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigFloat -> new("0"), }, { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 1)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "second smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "10", asc => "$b ** ($emin) * $b ** (" . (2 - $p) . ") " . "= $b ** (" . ($emin + 2 - $p) . ")", obj => $binv ** ($p - 2 - $emin), }, { dsc => "second largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 2)) . "0", asc => "$b ** ($emin) * (1 - $b ** (" . (2 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 2)), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "second smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * (1 + $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 + $binv ** ($p - 1)), }, { dsc => "second largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1) . "0", asc => "1 - $b ** (1 - $p)", obj => 1 - $binv ** ($p - 1), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x $p, asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("1" . "0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "second largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1) . "0", asc => "$b ** $emax * ($b - $b ** (" . (2 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 2)), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigFloat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigFloat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigFloat -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigFloat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigFloat -> new("-inf"), }, { dsc => "NaN", bin => "1" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigFloat -> new("$x") -> to_fp80()|; my $got_bytes = $x -> to_fp80(); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } note("\nRounding close to one.\n\n"); { # largest number smaller than one my $lo = Math::BigFloat -> from_fp80("3ffeffffffffffffffff"); # one my $hi = Math::BigFloat -> from_fp80("3fff8000000000000000"); # compute an average weighted towards the smaller of the two my $x1 = 0.75 * $lo + 0.25 * $hi; note ""; note "lo : ", $lo -> bdstr(); note "hi : ", $hi -> bdstr(); note "x1 : ", $x1 -> bdstr(); note ""; # this must round down to the largest number smaller than one my $got1 = unpack "H*", $x1 -> to_fp80(); # must round down is($got1, "3ffeffffffffffffffff"); # compute an average weighted towards the larger of the two my $x3 = 0.25 * $lo + 0.75 * $hi; note ""; note "lo : ", $lo -> bdstr(); note "hi : ", $hi -> bdstr(); note "x3 : ", $x3 -> bdstr(); note ""; # this must round up to one my $got3 = unpack "H*", $x3 -> to_fp80(); # must round up is($got3, "3fff8000000000000000"); } note("\nRounding close to boundary between subnormal and normal numbers.\n\n"); { # largest subnormal number my $lo = Math::BigFloat -> from_fp80("00007fffffffffffffff"); # smallest positive normal number my $hi = Math::BigFloat -> from_fp80("00018000000000000000"); # compute an average weighted towards the smaller of the two my $x1 = 0.75 * $lo + 0.25 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x1 ≈ ", $x1 -> bnstr(40); note ""; # this must round down to the largest subnormal number my $got1 = unpack "H*", $x1 -> to_fp80(); is($got1, "00007fffffffffffffff"); # compute an average weighted towards the larger of the two my $x3 = 0.25 * $lo + 0.75 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x3 ≈ ", $x3 -> bnstr(40); note ""; # this must round up to the smallest positive normal number my $got3 = unpack "H*", $x3 -> to_fp80(); # must round up is($got3, "00018000000000000000"); } note("\nRounding close to the largest normal number.\n\n"); { # largest normal number: 2 ** 16383 * (2 - 2 ** (-63)) my $lo = Math::BigFloat -> from_fp80("7ffeffffffffffffffff"); # 2 ** 16383 * 2 = 2 ** 16384 my $hi = Math::BigFloat -> new("2") -> bpow("16384"); # compute an average weighted towards the smaller of the two my $x1 = 0.75 * $lo + 0.25 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x1 ≈ ", $x1 -> bnstr(40); note ""; # this must round down to the largest normal number my $got1 = unpack "H*", $x1 -> to_fp80(); is($got1, "7ffeffffffffffffffff"); # compute an average weighted towards the larger of the two my $x3 = 0.25 * $lo + 0.75 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x3 ≈ ", $x3 -> bnstr(40); note ""; # this must round up to infinity my $got3 = unpack "H*", $x3 -> to_fp80(); is($got3, "7fff0000000000000000"); } Math-BigInt-2.005003/xt/author/to_fp80-mbi.t0000644403072340010010000000750414775747130020127 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 11; use Math::BigInt; use Math::BigFloat; my $b = 2; # base my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigInt -> new($b); $p = Math::BigInt -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; #my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigInt -> new("0"), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigInt -> new("1"), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", #obj => $b ** $emax * ($b - $binv ** ($p - 1)), obj => $b ** ($emax + 1) - $b ** ($emax + 1 - $p), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigInt -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigInt -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigInt -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigInt -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigInt -> new("-inf"), }, { dsc => "NaN", bin => "1" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigInt -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigInt -> new("$x") -> to_fp80()|; my $got_bytes = $x -> to_fp80(); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } note("\nRounding close to the largest normal number.\n\n"); { # largest normal number: 2 ** 16383 * (2 - 2 ** (-63)) my $lo = Math::BigFloat -> from_fp80("7ffeffffffffffffffff"); # 2 ** 16383 * 2 = 2 ** 16384 my $hi = Math::BigFloat -> new("2") -> bpow("16384"); # compute an average weighted towards the smaller of the two my $x1 = 0.75 * $lo + 0.25 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x1 ≈ ", $x1 -> bnstr(40); note ""; # this must round down to the largest normal number my $got1 = unpack "H*", $x1 -> to_fp80(); is($got1, "7ffeffffffffffffffff"); # compute an average weighted towards the larger of the two my $x3 = 0.25 * $lo + 0.75 * $hi; note ""; note "lo ≈ ", $lo -> bnstr(40); note "hi ≈ ", $hi -> bnstr(40); note "x3 ≈ ", $x3 -> bnstr(40); note ""; # this must round up to infinity my $got3 = unpack "H*", $x3 -> to_fp80(); is($got3, "7fff0000000000000000"); } Math-BigInt-2.005003/xt/author/to_fp80-mbr.t0000644403072340010010000001443314775747130020137 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 22; use Math::BigRat; use Math::BigFloat; my $b = 2; # base my $p = 64; # precision in bits my $w = 15; # width of exponent $b = Math::BigRat -> new($b); $p = Math::BigRat -> new($p); my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'fp80'; my $binv = Math::BigRat -> new("0.5"); my $data = [ { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x $p), asc => "+0", obj => Math::BigRat -> new("0"), }, { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 1)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "second smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "10", asc => "$b ** ($emin) * $b ** (" . (2 - $p) . ") " . "= $b ** (" . ($emin + 2 - $p) . ")", obj => $binv ** ($p - 2 - $emin), }, { dsc => "second largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 2)) . "0", asc => "$b ** ($emin) * (1 - $b ** (" . (2 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 2)), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . "0" . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "second smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . "1" . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * (1 + $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 + $binv ** ($p - 1)), }, { dsc => "second largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1) . "0", asc => "1 - $b ** (1 - $p)", obj => 1 - $binv ** ($p - 1), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x $p, asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("1" . "0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . "1" . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "second largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1) . "0", asc => "$b ** $emax * ($b - $b ** (" . (2 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 2)), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x $p, asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "1" . "0" x ($p - 1), asc => "-1", obj => Math::BigRat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "2", obj => Math::BigRat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "-2", obj => Math::BigRat -> new("-2"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x $p), asc => "+inf", obj => Math::BigRat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x $p), asc => "-inf", obj => Math::BigRat -> new("-inf"), }, { dsc => "NaN", bin => "1" . ("1" x $w) . ("1" x $p), asc => "NaN", obj => Math::BigRat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; my $str = join "", map "\\x$_", unpack "(a2)*", $hex; note("\n", " format : ", $format, "\n", "description : ", $entry -> {dsc}, "\n", " value : ", $entry -> {asc}, "\n", " binary : ", join(" ", unpack "(a8)*", $bin), "\n", "hexadecimal : ", join(" ", unpack "(a2)*", $hex), "\n", " bytes : ", $str, "\n", "\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigRat -> new("$x") -> to_fp80()|; my $got_bytes = $x -> to_fp80(40); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } { # largest number smaller than one my $lo = Math::BigRat -> from_fp80("3ffeffffffffffffffff"); # one my $hi = Math::BigRat -> from_fp80("3fff8000000000000000"); # compute an average weighted towards the smaller of the two my $x1 = 0.75 * $lo + 0.25 * $hi; note ""; note "lo : ", $lo -> bdstr(); note "hi : ", $hi -> bdstr(); note "x1 : ", $x1 -> bdstr(); note ""; my $got1 = unpack "H*", $x1 -> to_fp80(40); is($got1, "3ffeffffffffffffffff", "0.999999999999999999959342418531793583... -> 0x3ffeffffffffffffffff"); # compute an average weighted towards the larger of the two my $x3 = 0.25 * $lo + 0.75 * $hi; note ""; note "lo : ", $lo -> bdstr(); note "hi : ", $hi -> bdstr(); note "x3 : ", $x3 -> bdstr(); note ""; my $got3 = unpack "H*", $x3 -> to_fp80(); is($got3, "3fff8000000000000000", "0.999999999999999999986447472843931194... -> 0x3fff8000000000000000"); } Math-BigInt-2.005003/xt/author/to_hex-mbf.t0000644403072340010010000000232514546553333020123 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%x", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "16 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> to_hex("$want");\n\n|; my $got = Math::BigFloat -> to_hex($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> new("$in") -> to_hex();\n\n|; my $got = Math::BigFloat -> new("$in") -> to_hex(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_hex-mbi.t0000644403072340010010000000224014546553333020122 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%x", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "16 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> to_hex("$want");\n\n|; my $got = Math::BigInt -> to_hex($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> new("$in") -> to_hex();\n\n|; my $got = Math::BigInt -> new("$in") -> to_hex(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_hex-mbr.t0000644403072340010010000000231314546553333020134 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigRat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%x", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "16 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> to_hex("$want");\n\n|; my $got = Math::BigRat -> to_hex($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> new("$in") -> to_hex();\n\n|; my $got = Math::BigRat -> new("$in") -> to_hex(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_ieee754-mbf.t0000644403072340010010000001651614762552050020510 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 66; use Math::BigFloat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigFloat -> new($b); $k = Math::BigFloat -> new($k); $p = Math::BigFloat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'binary' . $k; note("\nComputing test data for k = $k ...\n\n"); my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1), asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1), asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigFloat -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigFloat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigFloat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigFloat -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigFloat -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigFloat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigFloat -> new("-inf"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigFloat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; note("\n", $entry -> {dsc}, " (k = $k): ", $entry -> {asc}, "\n\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigFloat -> new("$x") -> to_ieee754("$format")|; my $got_bytes = $x -> to_ieee754($format); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } } # These tests verify fixing CPAN RT #139960. # binary16 { # largest subnormal number my $lo = Math::BigFloat -> from_ieee754("03ff", "binary16"); # smallest normal number my $hi = Math::BigFloat -> from_ieee754("0400", "binary16"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary16"); is($got, "0400", "6.102025508880615234375e-5 -> 0x0400"); } { # largest number smaller than one my $lo = Math::BigFloat -> from_ieee754("3bff", "binary16"); # one my $hi = Math::BigFloat -> from_ieee754("3c00", "binary16"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary16"); is($got, "3c00", "9.998779296875e-1 -> 0x3c00"); } # binary32 { # largest subnormal number my $lo = Math::BigFloat -> from_ieee754("007fffff", "binary32"); # smallest normal number my $hi = Math::BigFloat -> from_ieee754("00800000", "binary32"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary32"); is($got, "00800000", "1.1754943157898258998483097641290060955707622747...e-38 -> 0x00800000"); } { # largest number smaller than one my $lo = Math::BigFloat -> from_ieee754("3f7fffff", "binary32"); # one my $hi = Math::BigFloat -> from_ieee754("3f800000", "binary32"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary32"); is($got, "3f800000", "9.9999998509883880615234375e-1 -> 0x3f800000"); } # binary64 { # largest subnormal number my $lo = Math::BigFloat -> from_ieee754("000fffffffffffff", "binary64"); # smallest normal number my $hi = Math::BigFloat -> from_ieee754("0010000000000000", "binary64"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary64"); is($got, "0010000000000000", "2.2250738585072012595738212570207680200...e-308 -> 0x0010000000000000"); } { # largest number smaller than one my $lo = Math::BigFloat -> from_ieee754("3fefffffffffffff", "binary64"); # one my $hi = Math::BigFloat -> from_ieee754("3ff0000000000000", "binary64"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary64"); is($got, "3ff0000000000000", "9.999999999999999722444243843710864894092...e-1 -> 0x3ff0000000000000"); } Math-BigInt-2.005003/xt/author/to_ieee754-mbi.t0000644403072340010010000000554014762551114020506 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 32; use Math::BigInt; use Math::BigFloat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigFloat -> new($b); $k = Math::BigFloat -> new($k); $p = Math::BigFloat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'binary' . $k; note("\nComputing test data for k = $k ...\n\n"); my $binv = Math::BigFloat -> new("0.5"); my $data = [ { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigInt -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigInt -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigInt -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigInt -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigInt -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigInt -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigInt -> new("-inf"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigInt -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; note("\n", $entry -> {dsc}, " (k = $k): ", $entry -> {asc}, "\n\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigInt -> new("$x") -> to_ieee754("$format")|; my $got_bytes = $x -> to_ieee754($format); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } } Math-BigInt-2.005003/xt/author/to_ieee754-mbr.t0000644403072340010010000001643114762551176020530 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 66; use Math::BigRat; my @k = (16, 32, 64, 128); for my $k (@k) { # Parameters specific to this format: my $b = 2; my $p = $k == 16 ? 11 : $k == 32 ? 24 : $k == 64 ? 53 : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13; $b = Math::BigRat -> new($b); $k = Math::BigRat -> new($k); $p = Math::BigRat -> new($p); my $w = $k - $p; my $emax = 2 ** ($w - 1) - 1; my $emin = 1 - $emax; my $format = 'binary' . $k; note("\nComputing test data for k = $k ...\n\n"); my $binv = Math::BigRat -> new("0.5"); my $data = [ { dsc => "smallest positive subnormal number", bin => "0" . ("0" x $w) . ("0" x ($p - 2)) . "1", asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") " . "= $b ** (" . ($emin + 1 - $p) . ")", obj => $binv ** ($p - 1 - $emin), }, { dsc => "largest subnormal number", bin => "0" . ("0" x $w) . ("1" x ($p - 1)), asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))", obj => $binv ** (-$emin) * (1 - $binv ** ($p - 1)), }, { dsc => "smallest positive normal number", bin => "0" . ("0" x ($w - 1)) . "1" . ("0" x ($p - 1)), asc => "$b ** ($emin)", obj => $binv ** (-$emin), }, { dsc => "largest normal number", bin => "0" . ("1" x ($w - 1)) . "0" . "1" x ($p - 1), asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))", obj => $b ** $emax * ($b - $binv ** ($p - 1)), }, { dsc => "largest number less than one", bin => "0" . "0" . ("1" x ($w - 2)) . "0" . "1" x ($p - 1), asc => "1 - $b ** (-$p)", obj => 1 - $binv ** $p, }, { dsc => "smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 2)) . "1", asc => "1 + $b ** (" . (1 - $p) . ")", obj => 1 + $binv ** ($p - 1), }, { dsc => "second smallest number larger than one", bin => "0" . "0" . ("1" x ($w - 1)) . ("0" x ($p - 3)) . "10", asc => "1 + $b ** (" . (2 - $p) . ")", obj => 1 + $binv ** ($p - 2), }, { dsc => "one", bin => "0" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "1", obj => Math::BigRat -> new("1"), }, { dsc => "minus one", bin => "1" . "0" . ("1" x ($w - 1)) . "0" x ($p - 1), asc => "-1", obj => Math::BigRat -> new("-1"), }, { dsc => "two", bin => "0" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "2", obj => Math::BigRat -> new("2"), }, { dsc => "minus two", bin => "1" . "1" . ("0" x ($w - 1)) . ("0" x ($p - 1)), asc => "-2", obj => Math::BigRat -> new("-2"), }, { dsc => "positive zero", bin => "0" . ("0" x $w) . ("0" x ($p - 1)), asc => "+0", obj => Math::BigRat -> new("0"), }, { dsc => "positive infinity", bin => "0" . ("1" x $w) . ("0" x ($p - 1)), asc => "+inf", obj => Math::BigRat -> new("inf"), }, { dsc => "negative infinity", bin => "1" . ("1" x $w) . ("0" x ($p - 1)), asc => "-inf", obj => Math::BigRat -> new("-inf"), }, { dsc => "NaN (encoding used by Perl on Cygwin)", bin => "1" . ("1" x $w) . ("1" . ("0" x ($p - 2))), asc => "NaN", obj => Math::BigRat -> new("NaN"), }, ]; for my $entry (@$data) { my $bin = $entry -> {bin}; my $bytes = pack "B*", $bin; my $hex = unpack "H*", $bytes; note("\n", $entry -> {dsc}, " (k = $k): ", $entry -> {asc}, "\n\n"); my $x = $entry -> {obj}; my $test = qq|Math::BigRat -> new("$x) -> to_ieee754("$format")|; my $got_bytes = $x -> to_ieee754($format); my $got_hex = unpack "H*", $got_bytes; $got_hex =~ s/(..)/\\x$1/g; my $expected_hex = $hex; $expected_hex =~ s/(..)/\\x$1/g; is($got_hex, $expected_hex); } } # These tests verify fixing CPAN RT #139960. # binary16 { # largest subnormal number my $lo = Math::BigRat -> from_ieee754("03ff", "binary16"); # smallest normal number my $hi = Math::BigRat -> from_ieee754("0400", "binary16"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary16"); is($got, "0400", "6.102025508880615234375e-5 -> 0x0400"); } { # largest number smaller than one my $lo = Math::BigRat -> from_ieee754("3bff", "binary16"); # one my $hi = Math::BigRat -> from_ieee754("3c00", "binary16"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary16"); is($got, "3c00", "9.998779296875e-1 -> 0x3c00"); } # binary32 { # largest subnormal number my $lo = Math::BigRat -> from_ieee754("007fffff", "binary32"); # smallest normal number my $hi = Math::BigRat -> from_ieee754("00800000", "binary32"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary32"); is($got, "00800000", "1.1754943157898258998483097641290060955707622747...e-38 -> 0x00800000"); } { # largest number smaller than one my $lo = Math::BigRat -> from_ieee754("3f7fffff", "binary32"); # one my $hi = Math::BigRat -> from_ieee754("3f800000", "binary32"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary32"); is($got, "3f800000", "9.9999998509883880615234375e-1 -> 0x3f800000"); } # binary64 { # largest subnormal number my $lo = Math::BigRat -> from_ieee754("000fffffffffffff", "binary64"); # smallest normal number my $hi = Math::BigRat -> from_ieee754("0010000000000000", "binary64"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary64"); is($got, "0010000000000000", "2.2250738585072012595738212570207680200...e-308 -> 0x0010000000000000"); } { # largest number smaller than one my $lo = Math::BigRat -> from_ieee754("3fefffffffffffff", "binary64"); # one my $hi = Math::BigRat -> from_ieee754("3ff0000000000000", "binary64"); # compute an average weighted towards the larger of the two my $x = 0.25 * $lo + 0.75 * $hi; my $got = unpack "H*", $x -> to_ieee754("binary64"); is($got, "3ff0000000000000", "9.999999999999999722444243843710864894092...e-1 -> 0x3ff0000000000000"); } Math-BigInt-2.005003/xt/author/to_oct-mbf.t0000644403072340010010000000232414546553333020123 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigFloat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%o", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "8 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> to_oct("$want");\n\n|; my $got = Math::BigFloat -> to_oct($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigFloat -> new("$in") -> to_oct();\n\n|; my $got = Math::BigFloat -> new("$in") -> to_oct(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_oct-mbi.t0000644403072340010010000000223714546553333020131 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigInt; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%o", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "8 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> to_oct("$want");\n\n|; my $got = Math::BigInt -> to_oct($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigInt -> new("$in") -> to_oct();\n\n|; my $got = Math::BigInt -> new("$in") -> to_oct(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/to_oct-mbr.t0000644403072340010010000000231214546553333020134 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; use Math::BigRat; my $cases = [ [ "inf", "inf" ], [ "-inf", "-inf" ], [ "NaN", "NaN" ], [ "1/2", "NaN" ], [ "-1/2", "NaN" ], ]; for (my $in = -300 ; $in <= 300 ; $in++) { my $out = sprintf "%o", abs($in); $out = "-" . $out if $in < 0; push @$cases, [ $in, $out ]; } for (my $ndig = 4 ; $ndig <= 50 ; $ndig++) { for my $rep (1 .. 5) { my $in = 1 + int rand 9; $in .= int rand 10 for 2 .. $ndig; my $out = `dc <<< "8 o $in p"`; $out =~ tr/0-9A-F//dc; $out = lc $out; push @$cases, [ $in, $out ], [ "-$in", "-$out" ]; } } for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> to_oct("$want");\n\n|; my $got = Math::BigRat -> to_oct($in); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; for my $case (@$cases) { my ($in, $want) = @$case; note qq|\n\$x = Math::BigRat -> new("$in") -> to_oct();\n\n|; my $got = Math::BigRat -> new("$in") -> to_oct(); is(ref($got), '', 'output is a scalar'); is($got, $want, "output is '$want'"); }; done_testing(); Math-BigInt-2.005003/xt/author/upgrade-mbi-mbf.t0000644403072340010010000000255614760007567021040 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigFloat; Math::BigInt -> upgrade("Math::BigFloat"); my ($x, $y); # new() $x = Math::BigInt -> new("2"); # doesn't upgrade subtest '$x = Math::BigInt -> new("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigInt -> new("2.5"); # upgrades subtest '$x = Math::BigInt -> new("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 2.5, '$x == 2.5'); }; # brsft() $x = Math::BigInt -> brsft(0, 7, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(0, 7, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); }; $x = Math::BigInt -> brsft(32, 0, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(32, 0, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 32, '$x == 32'); }; $x = Math::BigInt -> brsft(32, 7, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(32, 7, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigFloat', '$x is a Math::BigFloat'); cmp_ok($x, "==", 0.25, '$x == 0.25'); }; Math-BigInt-2.005003/xt/author/upgrade-mbi-mbr.t0000644403072340010010000000253214757670206021050 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 5; use Scalar::Util qw< refaddr >; use Math::BigInt; use Math::BigRat; Math::BigInt -> upgrade("Math::BigRat"); my ($x, $y); # new() $x = Math::BigInt -> new("2"); # doesn't upgrade subtest '$x = Math::BigInt -> new("2");' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 2, '$x == 2'); }; $x = Math::BigInt -> new("2.5"); # upgrades subtest '$x = Math::BigInt -> new("2.5");' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); cmp_ok($x, "==", "5/2", '$x == 5/2'); }; # brsft() $x = Math::BigInt -> brsft(0, 7, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(0, 7, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 0, '$x == 0'); }; $x = Math::BigInt -> brsft(32, 0, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(32, 0, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigInt', '$x is a Math::BigInt'); cmp_ok($x, "==", 32, '$x == 32'); }; $x = Math::BigInt -> brsft(32, 7, 2); # doesn't upgrade subtest '$x = Math::BigInt -> brsft(32, 7, 2);' => sub { plan tests => 2; is(ref($x), 'Math::BigRat', '$x is a Math::BigRat'); is($x, "1/4", '$x == 1/4'); }; Math-BigInt-2.005003/xt/author/use_accuracy-mbf.t0000644403072340010010000000044114546553333021300 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigFloat accuracy => 42; is(Math::BigFloat -> accuracy(), 42, 'Math::BigFloat -> accuracy() is 42'); is(Math::BigFloat -> config("accuracy"), 42, 'Math::BigFloat -> config("accuracy") is 42'); Math-BigInt-2.005003/xt/author/use_accuracy-mbi.t0000644403072340010010000000042714546553333021307 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigInt accuracy => 42; is(Math::BigInt -> accuracy(), 42, 'Math::BigInt -> accuracy() is 42'); is(Math::BigInt -> config("accuracy"), 42, 'Math::BigInt -> config("accuracy") is 42'); Math-BigInt-2.005003/xt/author/use_accuracy-mbr.t0000644403072340010010000000042714546553333021320 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigRat accuracy => 42; is(Math::BigRat -> accuracy(), 42, 'Math::BigRat -> accuracy() is 42'); is(Math::BigRat -> config("accuracy"), 42, 'Math::BigRat -> config("accuracy") is 42'); Math-BigInt-2.005003/xt/author/use_div_scale-mbf.t0000644403072340010010000000044614546553333021444 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigFloat div_scale => 42; is(Math::BigFloat -> div_scale(), 42, 'Math::BigFloat -> div_scale() is 42'); is(Math::BigFloat -> config("div_scale"), 42, 'Math::BigFloat -> config("div_scale") is 42'); Math-BigInt-2.005003/xt/author/use_div_scale-mbi.t0000644403072340010010000000043414546553333021444 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigInt div_scale => 42; is(Math::BigInt -> div_scale(), 42, 'Math::BigInt -> div_scale() is 42'); is(Math::BigInt -> config("div_scale"), 42, 'Math::BigInt -> config("div_scale") is 42'); Math-BigInt-2.005003/xt/author/use_div_scale-mbr.t0000644403072340010010000000043414546553333021455 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigRat div_scale => 42; is(Math::BigRat -> div_scale(), 42, 'Math::BigRat -> div_scale() is 42'); is(Math::BigRat -> config("div_scale"), 42, 'Math::BigRat -> config("div_scale") is 42'); Math-BigInt-2.005003/xt/author/use_lib1_mbf.t0000644403072340010010000000074014546553333020421 0ustar OSPJADomain Users# -*- mode: perl; -*- # See if using Math::BigInt, Math::BigFloat, and Math::BigRat works together # nicely. All t/use_lib*.t should be equivalent. use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigFloat lib => 'BareCalc'; # loads "BareCalc" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigFloat -> new(123) -> badd(123), 246, 'Math::BigFloat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib1_mbr.t0000644403072340010010000000071114546553333020433 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent. use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigRat lib => 'BareCalc'; # loads "BareCalc" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigRat -> new(123) -> badd(123), 246, 'Math::BigRat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib2_mbf.t0000644403072340010010000000101314546553333020414 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigFloat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt; # loads "Calc" use Math::BigFloat lib => 'BareCalc'; # ignores "BareCalc" is(Math::BigInt -> config('lib'), 'Math::BigInt::Calc', "Math::BigInt -> config('lib')"); is(Math::BigFloat -> new(123) -> badd(123), 246, 'Math::BigFloat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib2_mbr.t0000644403072340010010000000100314546553333020427 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt; # loads "Calc" use Math::BigRat lib => 'BareCalc'; # ignores "BareCalc" is(Math::BigInt -> config('lib'), 'Math::BigInt::Calc', "Math::BigInt -> config('lib')"); is(Math::BigRat -> new(123) -> badd(123), 246, 'Math::BigRat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib3_mbf.t0000644403072340010010000000074414546553333020427 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigFloat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt lib => 'BareCalc'; # ignores "BareCalc" use Math::BigFloat; is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigFloat -> new(123) -> badd(123), 246, 'Math::BigFloat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib3_mbr.t0000644403072340010010000000073414546553333020442 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt lib => 'BareCalc'; # ignores "BareCalc" use Math::BigRat; is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigRat -> new(123) -> badd(123), 246, 'Math::BigRat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib4_mbf.t0000644403072340010010000000112214546553333020417 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigFloat works together nicely. # all use_lib*.t should be equivalent, except this, since the later overrides # the former lib statement use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt lib => 'BareCalc'; # loads "BareCalc" use Math::BigFloat lib => 'Calc'; # ignores "Calc" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigFloat -> new(123) -> badd(123), 246, 'Math::BigFloat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib4_mbr.t0000644403072340010010000000111414546553333020434 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent, except this, since the later overrides # the former lib statement use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigInt lib => 'BareCalc'; # loads "BareCalc" use Math::BigRat lib => 'Calc'; # ignores "Calc" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigRat -> new(123) -> badd(123), 246, 'Math::BigRat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib5_mbf.t0000644403072340010010000000074014546553333020425 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigFloat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigFloat lib => 'BareCalc'; # loads "BareCalc" use Math::BigInt; is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigFloat -> new(123) -> badd(123), 246, 'Math::BigFloat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib5_mbr.t0000644403072340010010000000073214546553333020442 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 2; use Math::BigRat lib => 'BareCalc'; # loads "BareCalc" use Math::BigInt; is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); is(Math::BigRat -> new(123) -> badd(123), 246, 'Math::BigRat -> new(123) -> badd(123)'); Math-BigInt-2.005003/xt/author/use_lib6_mbf.t0000644403072340010010000000066014546553333020427 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigFloat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 1; use Math::BigInt lib => 'BareCalc'; # loads "BareCalc" eval "use Math::BigFloat only => 'foobar';"; # ignores "foobar" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); Math-BigInt-2.005003/xt/author/use_lib6_mbr.t0000644403072340010010000000065614546553333020450 0ustar OSPJADomain Users# -*- mode: perl; -*- # see if using Math::BigInt and Math::BigRat works together nicely. # all use_lib*.t should be equivalent use strict; use warnings; use lib 't'; use Test::More tests => 1; use Math::BigInt lib => 'BareCalc'; # loads "BareCalc" eval "use Math::BigRat only => 'foobar';"; # ignores "foobar" is(Math::BigInt -> config('lib'), 'Math::BigInt::BareCalc', "Math::BigInt -> config('lib')"); Math-BigInt-2.005003/xt/author/use_precision-mbf.t0000644403072340010010000000044614546553333021506 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigFloat precision => 42; is(Math::BigFloat -> precision(), 42, 'Math::BigFloat -> precision() is 42'); is(Math::BigFloat -> config("precision"), 42, 'Math::BigFloat -> config("precision") is 42'); Math-BigInt-2.005003/xt/author/use_precision-mbi.t0000644403072340010010000000043414546553333021506 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigInt precision => 42; is(Math::BigInt -> precision(), 42, 'Math::BigInt -> precision() is 42'); is(Math::BigInt -> config("precision"), 42, 'Math::BigInt -> config("precision") is 42'); Math-BigInt-2.005003/xt/author/use_precision-mbr.t0000644403072340010010000000043414546553333021517 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigRat precision => 42; is(Math::BigRat -> precision(), 42, 'Math::BigRat -> precision() is 42'); is(Math::BigRat -> config("precision"), 42, 'Math::BigRat -> config("precision") is 42'); Math-BigInt-2.005003/xt/author/use_round_mode-mbf.t0000644403072340010010000000047214546553333021645 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigFloat round_mode => "odd"; is(Math::BigFloat -> round_mode(), "odd", 'Math::BigFloat -> round_mode() is "odd"'); is(Math::BigFloat -> config("round_mode"), "odd", 'Math::BigFloat -> config("round_mode") is "odd"'); Math-BigInt-2.005003/xt/author/use_round_mode-mbi.t0000644403072340010010000000046014546553333021645 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigInt round_mode => "odd"; is(Math::BigInt -> round_mode(), "odd", 'Math::BigInt -> round_mode() is "odd"'); is(Math::BigInt -> config("round_mode"), "odd", 'Math::BigInt -> config("round_mode") is "odd"'); Math-BigInt-2.005003/xt/author/use_round_mode-mbr.t0000644403072340010010000000046014546553333021656 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 2; use Math::BigRat round_mode => "odd"; is(Math::BigRat -> round_mode(), "odd", 'Math::BigRat -> round_mode() is "odd"'); is(Math::BigRat -> config("round_mode"), "odd", 'Math::BigRat -> config("round_mode") is "odd"'); Math-BigInt-2.005003/xt/author/_bin_str_parts_to_flt_lib_parts.t0000644403072340010010000000613414537274604024514 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 36; use Math::BigInt; my $LIB = Math::BigInt -> config('lib'); sub try { my ($in0, $in1, $in2, $in3, $in4, $out0, $out1, $out2, $out3) = @_; my @out; my $test = q|@out = Math::BigInt -> _bin_str_parts_to_flt_lib_parts| . qq|("$in0", "$in1", "$in2", "$in3", $in4)|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 5; is(scalar(@out), 4, 'number of output arguments'); is($out[0], $out0, 'sign of the significand'); is($LIB -> _str($out[1]), $out1, 'absolute value of the significand'); is($out[2], $out2, 'sign of the exponent'); is($LIB -> _str($out[3]), $out3, 'absolute value of the exponent'); }; } note("binary"); try qw< + 0 + 0 >, 1, qw< + 0 + 0 >; try qw< + 00.000 - 0000 >, 1, qw< + 0 + 0 >; try qw< + 1010 + 0 >, 1, qw< + 1 + 1 >; try qw< + 1111 + 0 >, 1, qw< + 15 + 0 >; try qw< + 0.1 + 0 >, 1, qw< + 5 - 1 >; try qw< + 10 - 8 >, 1, qw< + 78125 - 7 >; try qw< + 10 + 8 >, 1, qw< + 512 + 0 >; try qw< + 11000000001100 - 0 >, 1, qw< + 123 + 2 >; try qw< + 1100000000110000 - 2 >, 1, qw< + 123 + 2 >; try qw< + .00110011 + 5 >, 1, qw< + 6375 - 3 >; try qw< - 1100.0011 + 2 >, 1, qw< - 4875 - 2 >; note("octal"); try qw< + 0 + 0 >, 3, qw< + 0 + 0 >; try qw< + 00.000 - 0000 >, 3, qw< + 0 + 0 >; try qw< + 12 + 0 >, 3, qw< + 1 + 1 >; try qw< + 17 + 0 >, 3, qw< + 15 + 0 >; try qw< + 0.4 + 0 >, 3, qw< + 5 - 1 >; try qw< + 2 - 8 >, 3, qw< + 78125 - 7 >; try qw< + 2 + 8 >, 3, qw< + 512 + 0 >; try qw< + 30014 - 0 >, 3, qw< + 123 + 2 >; try qw< + 14006 + 1 >, 3, qw< + 123 + 2 >; try qw< + 12300 + 0 >, 3, qw< + 5312 + 0 >; note("hexadecimal"); try qw< + 0 + 0 >, 4, qw< + 0 + 0 >; try qw< + 00.000 - 0000 >, 4, qw< + 0 + 0 >; try qw< + a + 0 >, 4, qw< + 1 + 1 >; try qw< + f + 0 >, 4, qw< + 15 + 0 >; try qw< + 0.8 + 0 >, 4, qw< + 5 - 1 >; try qw< + 2 - 8 >, 4, qw< + 78125 - 7 >; try qw< + 2 + 8 >, 4, qw< + 512 + 0 >; try qw< + 300c - 0 >, 4, qw< + 123 + 2 >; try qw< + 1.806 + 13 >, 4, qw< + 123 + 2 >; try qw< + c030 - 2 >, 4, qw< + 123 + 2 >; try qw< + 0.0625 + 16 >, 4, qw< + 1573 + 0 >; try qw< + .0123 + 0 >, 4, qw< + 44403076171875 - 16 >; try qw< + 12300 + 0 >, 4, qw< + 74496 + 0 >; try qw< + .00120034 + 5 >, 4, qw< + 87894499301910400390625 - 25 >; try qw< - 1200.0034 + 2 >, 4, qw< - 18432003173828125 - 12 >; Math-BigInt-2.005003/xt/author/_bin_str_to_bin_str_parts.t0000644403072340010010000000251514537274604023327 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0, $out1, $out2, $out3) = split /:/; my ($ss, $sa, $es, $ea); my $test = q|($ss, $sa, $es, $ea) = | . qq|Math::BigInt -> _bin_str_to_bin_str_parts("$in0")|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 4; is($ss, $out0, 'sign of the significand'); is($sa, $out1, 'absolute value of the significand'); is($es, $out2, 'sign of the exponent'); is($ea, $out3, 'absolute value of the exponent'); }; } __DATA__ 0:+:0:+:0 0p-0:+:0:+:0 0p-7:+:0:+:0 0p+7:+:0:+:0 0.0110:+:.011:+:0 0110.0:+:110:+:0 0110.0110:+:110.011:+:0 0b1.p0:+:1:+:0 00.0011001100P0056007800:+:.00110011:+:56007800 +1__1__.__1__1__p+5__6__:+:11.11:+:56 +1__1__.__1__1__p-5__6__:+:11.11:-:56 -1__1__.__1__1__p+5__6__:-:11.11:+:56 -1__1__.__1__1__p-5__6__:-:11.11:-:56 1__1__.__1__1__p5__6__:+:11.11:+:56 1__1__.__1__1__p-5__6__:+:11.11:-:56 -1__1__.__1__1__p5__6__:-:11.11:+:56 -0b__1__1__.__1__1__p-1__1__:-:11.11:-:11 -0B__1__1__.__1__1__P-1__1__:-:11.11:-:11 Math-BigInt-2.005003/xt/author/_dec_str_parts_to_flt_lib_parts.t0000644403072340010010000000417214537274604024477 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 30; use Math::BigInt; my $LIB = Math::BigInt -> config('lib'); sub try { my ($in0, $in1, $in2, $in3, $out0, $out1, $out2, $out3) = @_; my @out; my $test = q|@out = Math::BigInt -> _dec_str_parts_to_flt_lib_parts| . qq|("$in0", "$in1", "$in2", "$in3")|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 5; is(scalar(@out), 4, 'number of output arguments'); is($out[0], $out0, 'sign of the significand'); is($LIB -> _str($out[1]), $out1, 'absolute value of the significand'); is($out[2], $out2, 'sign of the exponent'); is($LIB -> _str($out[3]), $out3, 'absolute value of the exponent'); }; } try qw< + 0 + 0 >, qw< + 0 + 0 >; try qw< + 00.000 - 0000 >, qw< + 0 + 0 >; try qw< + 0.01230 + 5 >, qw< + 123 + 1 >; try qw< + 0.1230 + 5 >, qw< + 123 + 2 >; try qw< + 1.230 + 5 >, qw< + 123 + 3 >; try qw< + 12.30 + 5 >, qw< + 123 + 4 >; try qw< + 123.0 + 5 >, qw< + 123 + 5 >; try qw< + 1230.0 + 5 >, qw< + 123 + 6 >; try qw< + 0.01230 + 2 >, qw< + 123 - 2 >; try qw< + 0.1230 + 2 >, qw< + 123 - 1 >; try qw< + 1.230 + 2 >, qw< + 123 + 0 >; try qw< + 12.30 + 2 >, qw< + 123 + 1 >; try qw< + 123.0 + 2 >, qw< + 123 + 2 >; try qw< + 1230.0 + 2 >, qw< + 123 + 3 >; try qw< + 0.01230 - 2 >, qw< + 123 - 6 >; try qw< + 0.1230 - 2 >, qw< + 123 - 5 >; try qw< + 1.230 - 2 >, qw< + 123 - 4 >; try qw< + 12.30 - 2 >, qw< + 123 - 3 >; try qw< + 123.0 - 2 >, qw< + 123 - 2 >; try qw< + 1230.0 - 2 >, qw< + 123 - 1 >; try qw< + 0.01230 - 4 >, qw< + 123 - 8 >; try qw< + 0.1230 - 4 >, qw< + 123 - 7 >; try qw< + 1.230 - 4 >, qw< + 123 - 6 >; try qw< + 12.30 - 4 >, qw< + 123 - 5 >; try qw< + 123.0 - 4 >, qw< + 123 - 4 >; try qw< + 1230.0 - 4 >, qw< + 123 - 3 >; try qw< + .0123 + 0 >, qw< + 123 - 4 >; try qw< + 12300 + 0 >, qw< + 123 + 2 >; try qw< + .00120034 + 5 >, qw< + 120034 - 3 >; try qw< - 1200.0034 + 2 >, qw< - 12000034 - 2 >; Math-BigInt-2.005003/xt/author/_dec_str_to_dec_str_parts.t0000644403072340010010000000250414537274604023273 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 22; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0, $out1, $out2, $out3) = split /:/; my ($ss, $sa, $es, $ea); my $test = q|($ss, $sa, $es, $ea) = | . qq|Math::BigInt -> _dec_str_to_dec_str_parts("$in0")|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 4; is($ss, $out0, 'sign of the significand'); is($sa, $out1, 'absolute value of the significand'); is($es, $out2, 'sign of the exponent'); is($ea, $out3, 'absolute value of the exponent'); }; } __DATA__ 3:+:3:+:0 3e+0:+:3:+:0 3e-0:+:3:+:0 -3e+0:-:3:+:0 -3e-0:-:3:+:0 0:+:0:+:0 0e-0:+:0:+:0 0e+0:+:0:+:0 0e-7:+:0:+:0 0e+7:+:0:+:0 0.0120:+:.012:+:0 0120.0:+:120:+:0 0120.0340:+:120.034:+:0 1.e0:+:1:+:0 00.0012003400E0056007800:+:.00120034:+:56007800 +1__2__.__3__4__e+5__6__:+:12.34:+:56 +1__2__.__3__4__e-5__6__:+:12.34:-:56 -1__2__.__3__4__e+5__6__:-:12.34:+:56 -1__2__.__3__4__e-5__6__:-:12.34:-:56 1__2__.__3__4__e5__6__:+:12.34:+:56 1__2__.__3__4__e-5__6__:+:12.34:-:56 -1__2__.__3__4__e5__6__:-:12.34:+:56 Math-BigInt-2.005003/xt/author/_flt_lib_parts_to_rat_lib_parts.t0000644403072340010010000000322514537274604024466 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 13; use Math::BigInt; my $LIB = Math::BigInt -> config('lib'); sub try { my ($in0, $in1, $in2, $in3, $out0, $out1, $out2) = @_; my @out; my ($ms, $ma, $es, $ea); my $test = qq|\$ms = "$in0"; \$ma = $LIB->_new("$in1"); | . qq|\$es = "$in2"; \$ea = $LIB->_new("$in3"); | . q|@out = Math::BigInt -> _flt_lib_parts_to_rat_lib_parts| . q|($ms, $ma, $es, $ea)|; note "\n$test\n\n"; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 6; is(scalar(@out), 3, 'number of output arguments'); is($out[0], $out0, 'sign of the significand'); is($LIB -> _str($out[1]), $out1, 'absolute value of the numerator'); is($LIB -> _str($out[2]), $out2, 'absolute value of the denominator'); is($LIB -> _str($ma), $in1, 'abs value of mantissa has not changed'); is($LIB -> _str($ea), $in3, 'abs value of exponent has not changed'); }; } try qw< + 0 + 0 >, qw< + 0 1 >; try qw< + 1 + 0 >, qw< + 1 1 >; try qw< + 1 + 1 >, qw< + 10 1 >; try qw< + 1 - 1 >, qw< + 1 10 >; try qw< + 5 - 1 >, qw< + 1 2 >; try qw< + 78125 - 7 >, qw< + 1 128 >; try qw< + 512 + 0 >, qw< + 512 1 >; try qw< + 123 + 2 >, qw< + 12300 1 >; try qw< + 6375 - 3 >, qw< + 51 8 >; try qw< - 4875 - 2 >, qw< - 195 4 >; try qw< + 44403076171875 - 16 >, qw< + 291 65536 >; try qw< + 87894499301910400390625 - 25 >, qw< + 294925 33554432 >; try qw< - 18432003173828125 - 12 >, qw< - 75497485 4096 >; Math-BigInt-2.005003/xt/author/_hex_str_to_hex_str_parts.t0000644403072340010010000000251514537274604023357 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0, $out1, $out2, $out3) = split /:/; my ($ss, $sa, $es, $ea); my $test = q|($ss, $sa, $es, $ea) = | . qq|Math::BigInt -> _hex_str_to_hex_str_parts("$in0")|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 4; is($ss, $out0, 'sign of the significand'); is($sa, $out1, 'absolute value of the significand'); is($es, $out2, 'sign of the exponent'); is($ea, $out3, 'absolute value of the exponent'); }; } __DATA__ 0:+:0:+:0 0p-0:+:0:+:0 0p-7:+:0:+:0 0p+7:+:0:+:0 0.0120:+:.012:+:0 0120.0:+:120:+:0 0120.0340:+:120.034:+:0 0x1.p0:+:1:+:0 00.0012003400P0056007800:+:.00120034:+:56007800 +1__2__.__3__4__p+5__6__:+:12.34:+:56 +1__2__.__3__4__p-5__6__:+:12.34:-:56 -1__2__.__3__4__p+5__6__:-:12.34:+:56 -1__2__.__3__4__p-5__6__:-:12.34:-:56 1__2__.__3__4__p5__6__:+:12.34:+:56 1__2__.__3__4__p-5__6__:+:12.34:-:56 -1__2__.__3__4__p5__6__:-:12.34:+:56 -0x__a__b__.__c__d__p-1__2__:-:ab.cd:-:12 -0X__A__B__.__C__D__P-1__2__:-:AB.CD:-:12 Math-BigInt-2.005003/xt/author/_oct_str_to_oct_str_parts.t0000644403072340010010000000252214537274604023357 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More tests => 18; use Math::BigInt; while () { s/#.*$//; # remove comments s/\s+$//; # remove trailing whitespace next unless length; # skip empty lines my ($in0, $out0, $out1, $out2, $out3) = split /:/; my ($ss, $sa, $es, $ea); my $test = q|($ss, $sa, $es, $ea) = | . qq|Math::BigInt -> _oct_str_to_oct_str_parts("$in0")|; eval $test; die $@ if $@; # this should never happen subtest $test => sub { plan tests => 4; is($ss, $out0, 'sign of the significand'); is($sa, $out1, 'absolute value of the significand'); is($es, $out2, 'sign of the exponent'); is($ea, $out3, 'absolute value of the exponent'); }; } __DATA__ 0:+:0:+:0 0p-0:+:0:+:0 0p-7:+:0:+:0 0p+7:+:0:+:0 0.0120:+:.012:+:0 0120.0:+:120:+:0 0120.0340:+:120.034:+:0 01.p0:+:1:+:0 00.0012003400P0056007800:+:.00120034:+:56007800 +0__1__2__.__3__4__p+5__6__:+:12.34:+:56 +0__1__2__.__3__4__p-5__6__:+:12.34:-:56 -0__1__2__.__3__4__p+5__6__:-:12.34:+:56 -0__1__2__.__3__4__p-5__6__:-:12.34:-:56 01__2__.__3__4__p5__6__:+:12.34:+:56 1__2__.__3__4__p-5__6__:+:12.34:-:56 -1__2__.__3__4__p5__6__:-:12.34:+:56 -0o__1__2__.__3__4__p-5__6__:-:12.34:-:56 -0O__1__2__.__3__4__P-5__6__:-:12.34:-:56 Math-BigInt-2.005003/xt/release/0000755403072340010010000000000014776770354016033 5ustar OSPJADomain UsersMath-BigInt-2.005003/xt/release/cpan-changes.t0000644403072340010010000000026714537271645020546 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::CPAN::Changes'; plan skip_all => 'Test::CPAN::Changes required for this test' if $@; changes_ok(); Math-BigInt-2.005003/xt/release/dist-manifest.t0000644403072340010010000000030314536617522020752 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::DistManifest'; plan skip_all => "Test::DistManifest required for testing the manifest" if $@; manifest_ok(); Math-BigInt-2.005003/xt/release/distmeta.t0000644403072340010010000000027114536617522020021 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval "use Test::CPAN::Meta"; plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@; meta_yaml_ok(); Math-BigInt-2.005003/xt/release/git.t0000644403072340010010000001734514537274605017006 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use IO::Pipe; use IO::File; use IO::Dir; use File::Which qw< which >; use Sort::Versions qw< versioncmp >; $| = 1; my $testno = 0; my $failno = 0; END { print "1..$testno\n"; exit $failno == 0 ? 0 : 1; } ################################################################################ # See if we can find a "git" program. ################################################################################ my $git = which('git'); print "not " unless $git; print "ok ", ++$testno, " - found 'git' program"; print " ('$git')" if $git; print "\n"; # There is no point in continuing without the 'git' program. unless ($git) { print STDERR "# can't continue testing without a 'git' program\n"; exit 1; } ################################################################################ # See if we can get the "git" version number. ################################################################################ my $gitver; { my $pipe = IO::Pipe -> new(); my @args = ('git --version 2>/dev/null'); $pipe -> reader(@args); my $output = <$pipe>; ($gitver) = $output =~ /^git version (\S+)/ if defined $output; } unless ($gitver) { print "not "; $failno++; } print "ok ", ++$testno, " - found 'git' version number"; print " ('$gitver')" if $gitver; print "\n"; ################################################################################ # See if the working directory is clean. ################################################################################ { my $pipe = IO::Pipe -> new(); my @args = ('git', 'status', '--porcelain'); $pipe -> reader(@args); my @output = <$pipe>; my $ok = @output == 0; unless ($ok) { print "not "; $failno++; } print "ok ", ++$testno, " - working directory is clean\n"; unless ($ok) { print STDERR "# expected no output from '@args', but got:\n\n", map(" $_", @output), "\n"; } } ################################################################################ # Search for changelog files. ################################################################################ my @files; my $dh = IO::Dir -> new('.') or die "can't open the current directory for reading: $!"; for my $filename ($dh -> read()) { # changelog, changelog.txt, changes, changes.log, changes.txt changes.log next unless $filename =~ / ^ ( changelog ( \. txt )? | changes ( \. ( log | txt ) )? ) $ /ix && -f $filename; my @info = stat(_); my ($dev, $ino, $size) = @info[0, 1, 7]; push @files, $filename; } $dh -> close() or die "can't close directory after reading: $!"; unless (@files) { print "not "; $failno++; } print "ok ", ++$testno, " - found changelog file(s)"; print " (", join(", ", map("'$_'", @files)), ")" if @files; print "\n"; ################################################################################ # Read all changelog files, and sort all version numbers. ################################################################################ my @vers = (); for (my $i = 0 ; $i <= $#files ; $i++) { my $filename = $files[$i]; my $fh = IO::File -> new($filename) or die "$filename: can't open file for reading: $!\n"; while (defined(my $line = <$fh>)) { if ($line =~ /^(\S+)/) { my $verstr = $1; if ($verstr =~ / ^ v? ( \d+ ( \. \d+ ( _ \d+ )* )? ) $ /ix) { my $vernum = $1; $vernum =~ tr/_//d; push @vers, [ $verstr, $vernum ]; last; # only get the first one } else { printf STDERR " Ignoring version number '%s' in %s line %u\n", $verstr, $filename, $.; } } } $fh -> close() or die "$filename: can't close file after reading: $!\n"; } # Sort the versions. #@vers = sort { versioncmp($a, $b) } @vers; unless (@vers) { print "not "; $failno++; } print "ok ", ++$testno, " - found version number(s) in changelog file(s)"; print " ('$vers[0][0]')" if @vers; print "\n"; ################################################################################ # Get the all the git tags that look like version numbers. ################################################################################ my @tags; { my $pipe = IO::Pipe -> new(); my @args = ('git', 'tag', '-l'); $pipe -> reader(@args); while (defined(my $tag = <$pipe>)) { $tag =~ s/\s+\z//; if ($tag =~ / ^ v? ( \d+ ( \. \d+ ( _ \d+ )* )? ) /ix) { my $vernum = $1; $vernum =~ tr/_//d; push @tags, [ $tag, $vernum ]; } } $pipe -> close() or die "can't close pipe after reading: $!"; } # Sort the tags. #@tags = sort { versioncmp($b, $b) } @tags; @tags = sort { $b -> [1] <=> $a -> [1] } @tags; unless (@tags) { print "not "; $failno++; } print "ok ", ++$testno, " - found git tag(s)"; print " ('", $tags[0][0], "')" if @tags; print "\n"; ################################################################################ # Compare version number with git tag. ################################################################################ ++$testno; if (@vers and @tags) { my $ok = $vers[0][0] eq $tags[0][0]; unless ($ok) { print "not "; $failno++; } print "ok ", $testno, " - changelog version matches git tag\n"; print STDERR <<"EOF" unless $ok; # latest version in changelog(s): $vers[0][0] # latest git tag: $tags[0][0] EOF } else { print "ok ", $testno, " - skipped (missing version number or git tag)\n"; } ################################################################################ # See if the commit corresponding to the most recent tag is also the most # recent commit. ################################################################################ # Get the commit corresponding to the most recent tag. my $commit_tagged; ++$testno; if (@tags) { my $pipe = IO::Pipe -> new(); my @args = ('git', 'rev-parse', $tags[0][0]); $pipe -> reader(@args); $commit_tagged = <$pipe>; chomp $commit_tagged if defined $commit_tagged; unless ($commit_tagged) { print "not "; $failno++; } print "ok ", $testno, " - tag ('$tags[0][0]') refers to a commit"; print " ('$commit_tagged')" if $commit_tagged; print "\n"; } else { print "ok ", $testno, " - skipped (no tags found)\n"; } # Get the most recent commit. my $commit_newest; { my $pipe = IO::Pipe -> new(); my @args = ('git', 'log', '-n', '1', '--pretty=format:%H'); $pipe -> reader(@args); $commit_newest = <$pipe>; chomp $commit_newest if defined $commit_newest;; } unless ($commit_newest) { print "not "; $failno++; } print "ok ", ++$testno, " - found most recent commit"; print " ('$commit_newest')" if $commit_newest; print "\n"; print STDERR "# no commits found\n" unless $commit_newest; ################################################################################ # Compare the two commits. ################################################################################ ++$testno; if (defined $commit_tagged and defined $commit_newest) { my $ok = $commit_tagged eq $commit_newest; unless ($ok) { print "not "; $failno++; } print "ok ", $testno, " - the tagged commit is also the most recent commit\n"; print STDERR <<"EOF" unless $ok; # newest commit: $commit_newest # tagged commit: $commit_tagged EOF } else { print "ok ", $testno, " - skipped (missing commit(s))\n"; } Math-BigInt-2.005003/xt/release/kwalitee.t0000644403072340010010000000033414537271645020017 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More 0.88; eval "use Test::Kwalitee 1.21 'kwalitee_ok'"; plan skip_all => 'Test::Kwalitee required for testing kwalitee' if $@; kwalitee_ok(); done_testing; Math-BigInt-2.005003/xt/release/minimum-version.t0000644403072340010010000000034214536617522021344 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::MinimumVersion'; plan skip_all => 'Test::MinimumVersion required for testing minimum version' if $@; all_minimum_version_from_metayml_ok(); Math-BigInt-2.005003/xt/release/pod-coverage.t0000644403072340010010000000326014546553333020563 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; # restrict unsafe constructs use warnings; # enable optional warnings use Test::More; # Ensure a recent version of Test::Pod::Coverage my $min_tpc = 1.08; eval "use Test::Pod::Coverage $min_tpc"; plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" if $@; # Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, # but older versions don't recognize some common documentation styles my $min_pc = 0.18; eval "use Pod::Coverage $min_pc"; plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" if $@; plan tests => 4; my $trustme; # Math::BigInt $trustme = { trustme => [ 'fround', 'objectify', ], }; pod_coverage_ok('Math::BigInt', $trustme, "Math::BigInt is covered"); # Math::BigFloat $trustme = { trustme => [ 'DEBUG', 'isa', 'objectify' ], coverage_class => 'Pod::Coverage::CountParents', }; pod_coverage_ok('Math::BigFloat', $trustme, "Math::BigFloat is covered"); # Math::BigRat $trustme = { trustme => [ 'isa', 'objectify', ], coverage_class => 'Pod::Coverage::CountParents', }; pod_coverage_ok('Math::BigRat', $trustme, "Math::BigRat is covered"); # Math::BigInt::Lib $trustme = { private => [ qr/^(un)?import$/ ], }; pod_coverage_ok('Math::BigInt::Lib', $trustme, "Math::BigInt::Lib is covered"); Math-BigInt-2.005003/xt/release/pod-linkcheck.t0000644403072340010010000000063714537271645020733 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; foreach my $env_skip (qw( SKIP_POD_LINKCHECK )) { plan skip_all => "\$ENV{$env_skip} is set, skipping" if $ENV{$env_skip}; } eval "use Test::Pod::LinkCheck"; plan skip_all => 'Test::Pod::LinkCheck required for testing POD links' if $@; Test::Pod::LinkCheck -> new() -> all_pod_ok(); Math-BigInt-2.005003/xt/release/pod-syntax.t0000644403072340010010000000031614537271645020320 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; my $min_tp = 1.22; eval "use Test::Pod $min_tp"; plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; all_pod_files_ok(); Math-BigInt-2.005003/xt/release/portability.t0000644403072340010010000000117514536617522020555 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::Portability::Files'; plan skip_all => 'Test::Portability::Files required for testing portability' if $@; options( #use_file_find => 1, #test_amiga_length => 1, test_ansi_chars => 1, test_case => 1, #test_dos_length => 1, #test_mac_length => 1, test_one_dot => 1, test_space => 1, test_special_chars => 1, test_symlink => 1, #test_vms_length => 1, windows_reserved => 1, ); run_tests(); Math-BigInt-2.005003/xt/release/unused-vars.t0000644403072340010010000000026314537271645020467 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::Vars'; plan skip_all => 'Test::Vars required for this testing variables' if $@; all_vars_ok(); Math-BigInt-2.005003/xt/release/version.t0000644403072340010010000000071314537271645017700 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::More; eval 'use Test::Version'; plan skip_all => 'Test::Version required for this test' if $@; my @imports = qw( version_all_ok ); my $params = { is_strict => 1, has_version => 1, consistent => 1, multiple => 1, }; push @imports, $params if version->parse($Test::Version::VERSION) >= version->parse('1.002'); Test::Version -> import(@imports); version_all_ok(); done_testing; Math-BigInt-2.005003/xt/release/whitespaces.t0000644403072340010010000000016514536617522020530 0ustar OSPJADomain Users# -*- mode: perl; -*- use strict; use warnings; use Test::Whitespaces { dirs => [ 'lib', 't', 'examples' ], };